From 5d18960b1a1dfb79246a7ecaa1ec29ab9b9b52c6 Mon Sep 17 00:00:00 2001 From: Stefan Bratanov Date: Wed, 9 Apr 2025 16:19:21 +0100 Subject: [PATCH 01/33] Add read functionality to blobs archiving (#9318) --- .../BlobSidecarSelectorFactory.java | 24 +- .../BlobSidecarSelectorFactoryTest.java | 49 +++- .../metrics/TekuMetricCategory.java | 1 - .../services/chainstorage/StorageService.java | 22 +- .../teku/storage/api/StorageQueryChannel.java | 7 +- .../storage/server/kvstore/DatabaseTest.java | 38 ++-- .../storage/archive/BlobSidecarsArchiver.java | 46 ++++ .../teku/storage/archive/DataArchive.java | 35 --- .../storage/archive/DataArchiveWriter.java | 27 --- .../FileSystemBlobSidecarsArchiver.java | 209 ++++++++++++++++++ .../fsarchive/BlobSidecarJsonWriter.java | 44 ---- .../archive/fsarchive/FileSystemArchive.java | 137 ------------ .../nooparchive/DataArchiveNoopWriter.java | 28 --- .../archive/nooparchive/NoopDataArchive.java | 30 --- .../client/CombinedChainDataClient.java | 58 ++--- .../teku/storage/server/ChainStorage.java | 25 ++- .../CombinedStorageChannelSplitter.java | 11 + .../pegasys/teku/storage/server/Database.java | 10 +- .../server/kvstore/KvStoreDatabase.java | 21 +- .../storage/server/noop/NoOpDatabase.java | 34 +-- .../server/pruner/BlobSidecarPruner.java | 20 +- .../FileSystemBlobSidecarsArchiverTest.java | 171 ++++++++++++++ .../fsarchive/BlobSidecarJsonWriterTest.java | 99 --------- .../fsarchive/FileSystemArchiveTest.java | 153 ------------- .../server/pruner/BlobSidecarPrunerTest.java | 32 +-- .../pegasys/teku/storage/store/StoreTest.java | 4 +- .../storage/api/StubStorageQueryChannel.java | 11 + .../storage/storageSystem/StorageSystem.java | 4 +- 28 files changed, 658 insertions(+), 692 deletions(-) create mode 100644 storage/src/main/java/tech/pegasys/teku/storage/archive/BlobSidecarsArchiver.java delete mode 100644 storage/src/main/java/tech/pegasys/teku/storage/archive/DataArchive.java delete mode 100644 storage/src/main/java/tech/pegasys/teku/storage/archive/DataArchiveWriter.java create mode 100644 storage/src/main/java/tech/pegasys/teku/storage/archive/filesystem/FileSystemBlobSidecarsArchiver.java delete mode 100644 storage/src/main/java/tech/pegasys/teku/storage/archive/fsarchive/BlobSidecarJsonWriter.java delete mode 100644 storage/src/main/java/tech/pegasys/teku/storage/archive/fsarchive/FileSystemArchive.java delete mode 100644 storage/src/main/java/tech/pegasys/teku/storage/archive/nooparchive/DataArchiveNoopWriter.java delete mode 100644 storage/src/main/java/tech/pegasys/teku/storage/archive/nooparchive/NoopDataArchive.java create mode 100644 storage/src/test/java/tech/pegasys/teku/storage/archive/filesystem/FileSystemBlobSidecarsArchiverTest.java delete mode 100644 storage/src/test/java/tech/pegasys/teku/storage/archive/fsarchive/BlobSidecarJsonWriterTest.java delete mode 100644 storage/src/test/java/tech/pegasys/teku/storage/archive/fsarchive/FileSystemArchiveTest.java diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/blobselector/BlobSidecarSelectorFactory.java b/data/provider/src/main/java/tech/pegasys/teku/api/blobselector/BlobSidecarSelectorFactory.java index 26ecd633d5f..59dacb11089 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/blobselector/BlobSidecarSelectorFactory.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/blobselector/BlobSidecarSelectorFactory.java @@ -178,12 +178,32 @@ private SafeFuture>> getBlobSidecarsForBlock( private SafeFuture>> getBlobSidecars( final SlotAndBlockRoot slotAndBlockRoot, final List indices) { - return client.getBlobSidecars(slotAndBlockRoot, indices).thenApply(Optional::of); + return client + .getBlobSidecars(slotAndBlockRoot, indices) + .thenCompose( + blobSidecars -> { + if (blobSidecars.isEmpty()) { + // attempt retrieving from archive (when enabled) + return client.getArchivedBlobSidecars(slotAndBlockRoot, indices); + } + return SafeFuture.completedFuture(blobSidecars); + }) + .thenApply(Optional::of); } private SafeFuture>> getBlobSidecars( final UInt64 slot, final List indices) { - return client.getBlobSidecars(slot, indices).thenApply(Optional::of); + return client + .getBlobSidecars(slot, indices) + .thenCompose( + blobSidecars -> { + if (blobSidecars.isEmpty()) { + // attempt retrieving from archive (when enabled) + return client.getArchivedBlobSidecars(slot, indices); + } + return SafeFuture.completedFuture(blobSidecars); + }) + .thenApply(Optional::of); } private Optional addMetaData( diff --git a/data/provider/src/test/java/tech/pegasys/teku/api/blobselector/BlobSidecarSelectorFactoryTest.java b/data/provider/src/test/java/tech/pegasys/teku/api/blobselector/BlobSidecarSelectorFactoryTest.java index 030618f3769..b725db051a5 100644 --- a/data/provider/src/test/java/tech/pegasys/teku/api/blobselector/BlobSidecarSelectorFactoryTest.java +++ b/data/provider/src/test/java/tech/pegasys/teku/api/blobselector/BlobSidecarSelectorFactoryTest.java @@ -119,6 +119,31 @@ public void blockRootSelector_shouldGetBlobSidecarsForFinalizedSlot() assertThat(result.get().getData()).isEqualTo(blobSidecars); } + @Test + public void blockRootSelector_shouldAttemptToGetFinalizedBlobSidecarsFromArchive() + throws ExecutionException, InterruptedException { + final UInt64 finalizedSlot = UInt64.valueOf(42); + final SignedBlockAndState blockAndState = data.randomSignedBlockAndState(100); + when(client.getChainHead()).thenReturn(Optional.of(ChainHead.create(blockAndState))); + + when(client.getFinalizedSlotByBlockRoot(block.getRoot())) + .thenReturn(SafeFuture.completedFuture(Optional.of(finalizedSlot))); + final SlotAndBlockRoot slotAndBlockRoot = new SlotAndBlockRoot(finalizedSlot, block.getRoot()); + // not available in DB + when(client.getBlobSidecars(slotAndBlockRoot, indices)) + .thenReturn(SafeFuture.completedFuture(List.of())); + // available in archive + when(client.getArchivedBlobSidecars(slotAndBlockRoot, indices)) + .thenReturn(SafeFuture.completedFuture(blobSidecars)); + + final Optional result = + blobSidecarSelectorFactory + .blockRootSelector(block.getRoot()) + .getBlobSidecars(indices) + .get(); + assertThat(result.get().getData()).isEqualTo(blobSidecars); + } + @Test public void blockRootSelector_shouldGetBlobSidecarsByRetrievingBlock() throws ExecutionException, InterruptedException { @@ -153,6 +178,23 @@ public void slotSelector_shouldGetBlobSidecarsFromFinalizedSlot() assertThat(result.get().getData()).isEqualTo(blobSidecars); } + @Test + public void slotSelector_shouldAttemptToGetFinalizedBlobSidecarsFromArchive() + throws ExecutionException, InterruptedException { + when(client.isFinalized(block.getSlot())).thenReturn(true); + // not available in DB + when(client.getBlobSidecars(block.getSlot(), indices)) + .thenReturn(SafeFuture.completedFuture(List.of())); + // available in archive + when(client.getArchivedBlobSidecars(block.getSlot(), indices)) + .thenReturn(SafeFuture.completedFuture(blobSidecars)); + when(client.isChainHeadOptimistic()).thenReturn(false); + + final Optional result = + blobSidecarSelectorFactory.slotSelector(block.getSlot()).getBlobSidecars(indices).get(); + assertThat(result.get().getData()).isEqualTo(blobSidecars); + } + @Test public void slotSelector_shouldGetBlobSidecarsByRetrievingBlockWhenSlotNotFinalized() throws ExecutionException, InterruptedException { @@ -228,6 +270,11 @@ public void shouldLookForBlobSidecarsOnlyAfterDeneb( .thenReturn(SafeFuture.completedFuture(Optional.of(block))); when(client.getBlobSidecars(any(SlotAndBlockRoot.class), anyList())) .thenReturn(SafeFuture.completedFuture(List.of())); + when(client.getArchivedBlobSidecars(any(SlotAndBlockRoot.class), anyList())) + .thenReturn(SafeFuture.completedFuture(List.of())); + when(client.getArchivedBlobSidecars(any(UInt64.class), anyList())) + .thenReturn(SafeFuture.completedFuture(List.of())); + blobSidecarSelectorFactory.slotSelector(block.getSlot()).getBlobSidecars(indices).get(); if (ctx.getSpec().isMilestoneSupported(SpecMilestone.DENEB)) { verify(client).getBlobSidecars(any(SlotAndBlockRoot.class), anyList()); @@ -273,8 +320,6 @@ public void slotSelector_whenSelectingNonFinalizedBlockMetadataReturnsFinalizedF when(client.isFinalized(block.getSlot())).thenReturn(false); when(client.getBlockAtSlotExact(block.getSlot())) .thenReturn(SafeFuture.completedFuture(Optional.of(block))); - when(client.getBlobSidecars(block.getSlot(), indices)) - .thenReturn(SafeFuture.completedFuture(blobSidecars)); when(client.isChainHeadOptimistic()).thenReturn(false); when(client.getBlobSidecars(block.getSlotAndBlockRoot(), indices)) .thenReturn(SafeFuture.completedFuture(blobSidecars)); diff --git a/infrastructure/metrics/src/main/java/tech/pegasys/teku/infrastructure/metrics/TekuMetricCategory.java b/infrastructure/metrics/src/main/java/tech/pegasys/teku/infrastructure/metrics/TekuMetricCategory.java index 2a0966c0e37..5970bf7a8ed 100644 --- a/infrastructure/metrics/src/main/java/tech/pegasys/teku/infrastructure/metrics/TekuMetricCategory.java +++ b/infrastructure/metrics/src/main/java/tech/pegasys/teku/infrastructure/metrics/TekuMetricCategory.java @@ -27,7 +27,6 @@ public enum TekuMetricCategory implements MetricCategory { STORAGE("storage"), STORAGE_HOT_DB("storage_hot"), STORAGE_FINALIZED_DB("storage_finalized"), - REMOTE_VALIDATOR("remote_validator"), VALIDATOR("validator"), VALIDATOR_PERFORMANCE("validator_performance"), VALIDATOR_DUTY("validator_duty"); diff --git a/services/chainstorage/src/main/java/tech/pegasys/teku/services/chainstorage/StorageService.java b/services/chainstorage/src/main/java/tech/pegasys/teku/services/chainstorage/StorageService.java index 4f74c2c0f1d..e077e8b96ec 100644 --- a/services/chainstorage/src/main/java/tech/pegasys/teku/services/chainstorage/StorageService.java +++ b/services/chainstorage/src/main/java/tech/pegasys/teku/services/chainstorage/StorageService.java @@ -37,9 +37,8 @@ import tech.pegasys.teku.storage.api.CombinedStorageChannel; import tech.pegasys.teku.storage.api.Eth1DepositStorageChannel; import tech.pegasys.teku.storage.api.VoteUpdateChannel; -import tech.pegasys.teku.storage.archive.DataArchive; -import tech.pegasys.teku.storage.archive.fsarchive.FileSystemArchive; -import tech.pegasys.teku.storage.archive.nooparchive.NoopDataArchive; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; +import tech.pegasys.teku.storage.archive.filesystem.FileSystemBlobSidecarsArchiver; import tech.pegasys.teku.storage.server.BatchingVoteUpdateChannel; import tech.pegasys.teku.storage.server.ChainStorage; import tech.pegasys.teku.storage.server.CombinedStorageChannelSplitter; @@ -159,11 +158,13 @@ protected SafeFuture doStart() { pruningActiveLabelledGauge); } - final DataArchive dataArchive = + final BlobSidecarsArchiver blobSidecarsArchiver = config .getBlobsArchivePath() - .map(path -> new FileSystemArchive(Path.of(path))) - .orElse(new NoopDataArchive()); + .map( + path -> + new FileSystemBlobSidecarsArchiver(config.getSpec(), Path.of(path))) + .orElse(BlobSidecarsArchiver.NOOP); if (config.getSpec().isMilestoneSupported(SpecMilestone.DENEB)) { blobsPruner = @@ -171,7 +172,7 @@ protected SafeFuture doStart() { new BlobSidecarPruner( config.getSpec(), database, - dataArchive, + blobSidecarsArchiver, serviceConfig.getMetricsSystem(), storagePrunerAsyncRunner, serviceConfig.getTimeProvider(), @@ -183,13 +184,16 @@ protected SafeFuture doStart() { pruningActiveLabelledGauge, config.isStoreNonCanonicalBlocksEnabled())); } - final EventChannels eventChannels = serviceConfig.getEventChannels(); chainStorage = ChainStorage.create( database, config.getSpec(), config.getDataStorageMode(), - config.getStateRebuildTimeoutSeconds()); + config.getStateRebuildTimeoutSeconds(), + blobSidecarsArchiver); + + final EventChannels eventChannels = serviceConfig.getEventChannels(); + final DepositStorage depositStorage = DepositStorage.create( eventChannels.getPublisher(Eth1EventsChannel.class), diff --git a/storage/api/src/main/java/tech/pegasys/teku/storage/api/StorageQueryChannel.java b/storage/api/src/main/java/tech/pegasys/teku/storage/api/StorageQueryChannel.java index ad6bc10ed6a..4c895e03979 100644 --- a/storage/api/src/main/java/tech/pegasys/teku/storage/api/StorageQueryChannel.java +++ b/storage/api/src/main/java/tech/pegasys/teku/storage/api/StorageQueryChannel.java @@ -56,7 +56,7 @@ public interface StorageQueryChannel extends ChannelInterface { SafeFuture> getHotBlockAndStateByBlockRoot(Bytes32 blockRoot); SafeFuture> getHotStateAndBlockSummaryByBlockRoot( - final Bytes32 blockRoot); + Bytes32 blockRoot); /** * Returns "hot" blocks - the latest finalized block or blocks that descend from the latest @@ -109,4 +109,9 @@ SafeFuture> getBlobSidecarKeys( SafeFuture> getBlobSidecarKeys( SlotAndBlockRoot slotAndBlockRoot); + + // Methods for retrieving archived blobs (when enabled) + SafeFuture> getArchivedBlobSidecars(SlotAndBlockRoot slotAndBlockRoot); + + SafeFuture> getArchivedBlobSidecars(UInt64 slot); } diff --git a/storage/src/integration-test/java/tech/pegasys/teku/storage/server/kvstore/DatabaseTest.java b/storage/src/integration-test/java/tech/pegasys/teku/storage/server/kvstore/DatabaseTest.java index 237a17b53df..fef61a7934d 100644 --- a/storage/src/integration-test/java/tech/pegasys/teku/storage/server/kvstore/DatabaseTest.java +++ b/storage/src/integration-test/java/tech/pegasys/teku/storage/server/kvstore/DatabaseTest.java @@ -82,7 +82,7 @@ import tech.pegasys.teku.storage.api.OnDiskStoreData; import tech.pegasys.teku.storage.api.StorageUpdate; import tech.pegasys.teku.storage.api.WeakSubjectivityUpdate; -import tech.pegasys.teku.storage.archive.fsarchive.FileSystemArchive; +import tech.pegasys.teku.storage.archive.filesystem.FileSystemBlobSidecarsArchiver; import tech.pegasys.teku.storage.client.RecentChainData; import tech.pegasys.teku.storage.server.Database; import tech.pegasys.teku.storage.server.DatabaseContext; @@ -122,7 +122,7 @@ public class DatabaseTest { private StateStorageMode storageMode; private StorageSystem storageSystem; private Database database; - private FileSystemArchive fileSystemDataArchive; + private FileSystemBlobSidecarsArchiver blobSidecarsArchiver; private RecentChainData recentChainData; private UpdatableStore store; private final List storageSystems = new ArrayList<>(); @@ -139,7 +139,7 @@ private void setupWithSpec(final Spec spec) throws IOException { this.chainProperties = new ChainProperties(spec); final Path blobsArchive = Files.createTempDirectory("blobs"); tmpDirectories.add(blobsArchive.toFile()); - this.fileSystemDataArchive = new FileSystemArchive(blobsArchive); + this.blobSidecarsArchiver = new FileSystemBlobSidecarsArchiver(spec, blobsArchive); genesisBlockAndState = chainBuilder.generateGenesis(genesisTime, true); genesisCheckpoint = getCheckpointForBlock(genesisBlockAndState.getBlock()); genesisAnchor = AnchorPoint.fromGenesisState(spec, genesisBlockAndState.getState()); @@ -300,9 +300,7 @@ public void verifyBlobsLifecycle(final DatabaseContext context) throws IOExcepti List.of(blobSidecar5_0))); // let's prune with limit to 1 - assertThat( - database.pruneOldestBlobSidecars( - UInt64.MAX_VALUE, 1, fileSystemDataArchive.getBlobSidecarWriter())) + assertThat(database.pruneOldestBlobSidecars(UInt64.MAX_VALUE, 1, blobSidecarsArchiver)) .isTrue(); assertBlobSidecarKeys( blobSidecar2_0.getSlot(), @@ -324,9 +322,7 @@ public void verifyBlobsLifecycle(final DatabaseContext context) throws IOExcepti assertThat(getSlotBlobsArchiveFile(blobSidecar2_0)).doesNotExist(); // let's prune up to slot 1 (nothing will be pruned) - assertThat( - database.pruneOldestBlobSidecars(ONE, 10, fileSystemDataArchive.getBlobSidecarWriter())) - .isFalse(); + assertThat(database.pruneOldestBlobSidecars(ONE, 10, blobSidecarsArchiver)).isFalse(); assertBlobSidecarKeys( blobSidecar2_0.getSlot(), blobSidecar5_0.getSlot(), @@ -343,9 +339,7 @@ public void verifyBlobsLifecycle(final DatabaseContext context) throws IOExcepti assertThat(database.getBlobSidecarColumnCount()).isEqualTo(4L); // let's prune all from slot 4 excluded - assertThat( - database.pruneOldestBlobSidecars( - UInt64.valueOf(3), 10, fileSystemDataArchive.getBlobSidecarWriter())) + assertThat(database.pruneOldestBlobSidecars(UInt64.valueOf(3), 10, blobSidecarsArchiver)) .isFalse(); assertBlobSidecarKeys( blobSidecar1_0.getSlot(), blobSidecar5_0.getSlot(), blobSidecarToKey(blobSidecar5_0)); @@ -359,9 +353,7 @@ public void verifyBlobsLifecycle(final DatabaseContext context) throws IOExcepti assertThat(getSlotBlobsArchiveFile(blobSidecar5_0)).doesNotExist(); // let's prune all - assertThat( - database.pruneOldestBlobSidecars( - UInt64.valueOf(5), 1, fileSystemDataArchive.getBlobSidecarWriter())) + assertThat(database.pruneOldestBlobSidecars(UInt64.valueOf(5), 1, blobSidecarsArchiver)) .isTrue(); // all empty now assertBlobSidecarKeys(ZERO, UInt64.valueOf(10)); @@ -372,8 +364,9 @@ public void verifyBlobsLifecycle(final DatabaseContext context) throws IOExcepti assertThat(getSlotBlobsArchiveFile(blobSidecar5_0)).exists(); } - private File getSlotBlobsArchiveFile(final BlobSidecar blobSidecar) { - return fileSystemDataArchive.resolve(blobSidecar.getSlotAndBlockRoot()); + private Path getSlotBlobsArchiveFile(final BlobSidecar blobSidecar) { + return blobSidecarsArchiver.resolveArchivePath( + blobSidecar.getSlotAndBlockRoot().getBlockRoot()); } @TestTemplate @@ -473,8 +466,7 @@ public void verifyNonCanonicalBlobsLifecycle(final DatabaseContext context) thro // Pruning with a prune limit set to 1: Only blobSidecar1 will be pruned assertThat( - database.pruneOldestNonCanonicalBlobSidecars( - UInt64.MAX_VALUE, 1, fileSystemDataArchive.getBlobSidecarWriter())) + database.pruneOldestNonCanonicalBlobSidecars(UInt64.MAX_VALUE, 1, blobSidecarsArchiver)) .isTrue(); assertNonCanonicalBlobSidecarKeys( blobSidecar2_0.getSlot(), @@ -495,9 +487,7 @@ public void verifyNonCanonicalBlobsLifecycle(final DatabaseContext context) thro assertThat(getSlotBlobsArchiveFile(blobSidecar2_0)).doesNotExist(); // Pruning up to slot 1: No blobs pruned - assertThat( - database.pruneOldestNonCanonicalBlobSidecars( - ONE, 10, fileSystemDataArchive.getBlobSidecarWriter())) + assertThat(database.pruneOldestNonCanonicalBlobSidecars(ONE, 10, blobSidecarsArchiver)) .isFalse(); assertNonCanonicalBlobSidecarKeys( blobSidecar2_0.getSlot(), @@ -520,7 +510,7 @@ public void verifyNonCanonicalBlobsLifecycle(final DatabaseContext context) thro // Prune blobs up to slot 3 assertThat( database.pruneOldestNonCanonicalBlobSidecars( - UInt64.valueOf(3), 10, fileSystemDataArchive.getBlobSidecarWriter())) + UInt64.valueOf(3), 10, blobSidecarsArchiver)) .isFalse(); assertNonCanonicalBlobSidecarKeys( blobSidecar1_0.getSlot(), blobSidecar5_0.getSlot(), blobSidecarToKey(blobSidecar5_0)); @@ -535,7 +525,7 @@ public void verifyNonCanonicalBlobsLifecycle(final DatabaseContext context) thro // Pruning all blobs assertThat( database.pruneOldestNonCanonicalBlobSidecars( - UInt64.valueOf(5), 1, fileSystemDataArchive.getBlobSidecarWriter())) + UInt64.valueOf(5), 1, blobSidecarsArchiver)) .isTrue(); // No blobs should be left assertNonCanonicalBlobSidecarKeys(ZERO, UInt64.valueOf(10)); diff --git a/storage/src/main/java/tech/pegasys/teku/storage/archive/BlobSidecarsArchiver.java b/storage/src/main/java/tech/pegasys/teku/storage/archive/BlobSidecarsArchiver.java new file mode 100644 index 00000000000..5c8dffc509f --- /dev/null +++ b/storage/src/main/java/tech/pegasys/teku/storage/archive/BlobSidecarsArchiver.java @@ -0,0 +1,46 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.storage.archive; + +import java.util.List; +import java.util.Optional; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; +import tech.pegasys.teku.spec.datastructures.blocks.SlotAndBlockRoot; + +public interface BlobSidecarsArchiver { + + BlobSidecarsArchiver NOOP = + new BlobSidecarsArchiver() { + @Override + public void archive( + final SlotAndBlockRoot slotAndBlockRoot, final List blobSidecars) {} + + @Override + public Optional> retrieve(final SlotAndBlockRoot slotAndBlockRoot) { + return Optional.empty(); + } + + @Override + public Optional> retrieve(final UInt64 slot) { + return Optional.empty(); + } + }; + + void archive(SlotAndBlockRoot slotAndBlockRoot, List blobSidecars); + + Optional> retrieve(SlotAndBlockRoot slotAndBlockRoot); + + Optional> retrieve(UInt64 slot); +} diff --git a/storage/src/main/java/tech/pegasys/teku/storage/archive/DataArchive.java b/storage/src/main/java/tech/pegasys/teku/storage/archive/DataArchive.java deleted file mode 100644 index 201a1fd4ef0..00000000000 --- a/storage/src/main/java/tech/pegasys/teku/storage/archive/DataArchive.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.storage.archive; - -import java.io.IOException; -import java.util.List; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; - -/** - * Interface for a data archive which stores prunable BlobSidecars outside the data availability - * window and could be extended later to include other data types. It is expected that the - * DataArchive is on disk or externally stored with slow write and recovery times. Initial interface - * is write only, but may be expanded to include read operations later. - */ -public interface DataArchive { - - /** - * Returns the archive writer capable of storing BlobSidecars. - * - * @return a closeable DataArchiveWriter for writing BlobSidecars - * @throws IOException throw exception if it fails to get a writer. - */ - DataArchiveWriter> getBlobSidecarWriter() throws IOException; -} diff --git a/storage/src/main/java/tech/pegasys/teku/storage/archive/DataArchiveWriter.java b/storage/src/main/java/tech/pegasys/teku/storage/archive/DataArchiveWriter.java deleted file mode 100644 index 1331365fab6..00000000000 --- a/storage/src/main/java/tech/pegasys/teku/storage/archive/DataArchiveWriter.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.storage.archive; - -import java.io.Closeable; - -/** - * An interface to allow storing data that is to be pruned from the Database. If the store function - * is successful it returns true, signalling the data can be pruned. If the store function fails, - * the data was not stored and the data should not be pruned. - * - * @param the data to be stored. - */ -public interface DataArchiveWriter extends Closeable { - boolean archive(final T data); -} diff --git a/storage/src/main/java/tech/pegasys/teku/storage/archive/filesystem/FileSystemBlobSidecarsArchiver.java b/storage/src/main/java/tech/pegasys/teku/storage/archive/filesystem/FileSystemBlobSidecarsArchiver.java new file mode 100644 index 00000000000..cf43ee28080 --- /dev/null +++ b/storage/src/main/java/tech/pegasys/teku/storage/archive/filesystem/FileSystemBlobSidecarsArchiver.java @@ -0,0 +1,209 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.storage.archive.filesystem; + +import static tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition.listOf; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Splitter; +import com.google.common.collect.Iterables; +import java.io.BufferedWriter; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Stream; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.tuweni.bytes.Bytes32; +import tech.pegasys.teku.infrastructure.json.JsonUtil; +import tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.Spec; +import tech.pegasys.teku.spec.SpecMilestone; +import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; +import tech.pegasys.teku.spec.datastructures.blocks.SlotAndBlockRoot; +import tech.pegasys.teku.spec.schemas.SchemaDefinitionsDeneb; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; + +public class FileSystemBlobSidecarsArchiver implements BlobSidecarsArchiver { + + private static final String INDEX_FILE_SUFFIX = "index.dat"; + private static final long INDEX_FILE_SLOT_RANGE_SIZE = 100_000; + + private static final Logger LOG = LogManager.getLogger(); + + private final Spec spec; + private final Path baseDirectory; + + private final Map>> + milestoneToTypeDefinitionCache = new HashMap<>(); + + public FileSystemBlobSidecarsArchiver(final Spec spec, final Path baseDirectory) { + this.spec = spec; + this.baseDirectory = baseDirectory; + } + + @Override + public void archive( + final SlotAndBlockRoot slotAndBlockRoot, final List blobSidecars) { + final Path archivePath = resolveArchivePath(slotAndBlockRoot.getBlockRoot()); + + if (Files.exists(archivePath)) { + LOG.error( + "Failed to archive blob sidecars for {}. File exists: {}", slotAndBlockRoot, archivePath); + return; + } + + try { + Files.createDirectories(archivePath.getParent()); + } catch (final IOException __) { + LOG.error( + "Failed to archive blob sidecars for {}. Could not create directories: {}", + slotAndBlockRoot, + archivePath.getParent()); + return; + } + + final Path indexFile = resolveIndexFile(slotAndBlockRoot.getSlot()); + + try (final OutputStream output = Files.newOutputStream(archivePath); + final BufferedWriter indexWriter = + Files.newBufferedWriter( + indexFile, + StandardCharsets.UTF_8, + StandardOpenOption.CREATE, + StandardOpenOption.APPEND)) { + if (blobSidecars.isEmpty()) { + // empty list + output.write("[]".getBytes(StandardCharsets.UTF_8)); + } else { + writeBlobSidecars(output, slotAndBlockRoot.getSlot(), blobSidecars); + } + indexWriter.write(formatIndexFileOutput(slotAndBlockRoot)); + indexWriter.newLine(); + } catch (final IOException ex) { + LOG.error(String.format("Failed to archive blob sidecars for %s", slotAndBlockRoot), ex); + } + } + + @Override + public Optional> retrieve(final SlotAndBlockRoot slotAndBlockRoot) { + try { + final Path archivePath = resolveArchivePath(slotAndBlockRoot.getBlockRoot()); + if (!Files.exists(archivePath)) { + return Optional.empty(); + } + final String blobSidecarsJson = Files.readString(archivePath); + final List blobSidecars = + JsonUtil.parse(blobSidecarsJson, getJsonTypeDefinition(slotAndBlockRoot.getSlot())); + return Optional.of(blobSidecars); + } catch (IOException ex) { + LOG.error( + String.format( + "Failed to retrieve blob sidecars for slot %s and block root %s", + slotAndBlockRoot.getSlot(), slotAndBlockRoot.getBlockRoot()), + ex); + return Optional.empty(); + } + } + + @Override + public Optional> retrieve(final UInt64 slot) { + final Path indexFile = resolveIndexFile(slot); + if (!Files.exists(indexFile)) { + return Optional.empty(); + } + try (final Stream lines = Files.lines(indexFile)) { + return lines + .filter(line -> line.startsWith(slot.toString())) + .findFirst() + .flatMap( + line -> { + // lines in the index file are in the format of: " " + final Bytes32 blockRoot = + Bytes32.fromHexString(Iterables.get(Splitter.on(' ').split(line), 1)); + return retrieve(new SlotAndBlockRoot(slot, blockRoot)); + }); + } catch (IOException ex) { + LOG.error(String.format("Failed to retrieve blob sidecars for slot %s", slot), ex); + return Optional.empty(); + } + } + + /** + * Given a basePath, block root, return where to store/find the BlobSidecar. Initial + * implementation uses blockRoot as a hex string in the directory of the first two characters. + * + * @param blockRoot the block root. + * @return a path of where to store or find the BlobSidecar + */ + @VisibleForTesting + public Path resolveArchivePath(final Bytes32 blockRoot) { + // For blockroot 0x1a2bcd... the directory is basePath/1a/2b/1a2bcd... + // 256 * 256 directories = 65,536. + // Assume 8000 to 10000 blobs per day. With perfect hash distribution, + // all directories have one file after a week. After 1 year, expect 50 files in each directory. + final String blockRootString = blockRoot.toUnprefixedHexString(); + final String dir1 = blockRootString.substring(0, 2); + final String dir2 = blockRootString.substring(2, 4); + final String blobSidecarFilename = + dir1 + File.separator + dir2 + File.separator + blockRootString; + return baseDirectory.resolve(blobSidecarFilename); + } + + /** + * Given a basePath, slot, return where to store/find the slot -> root index file + * + * @param slot the slot. + * @return a path of where to store or find the slot -> root index file + */ + @VisibleForTesting + Path resolveIndexFile(final UInt64 slot) { + final UInt64 lowerBound = + slot.dividedBy(INDEX_FILE_SLOT_RANGE_SIZE).times(INDEX_FILE_SLOT_RANGE_SIZE); + final UInt64 upperBound = lowerBound.plus(INDEX_FILE_SLOT_RANGE_SIZE).minusMinZero(1); + final String fileName = String.format("%s-%s_%s", lowerBound, upperBound, INDEX_FILE_SUFFIX); + return baseDirectory.resolve(fileName); + } + + private void writeBlobSidecars( + final OutputStream out, final UInt64 slot, final List blobSidecars) + throws IOException { + JsonUtil.serializeToBytes(blobSidecars, getJsonTypeDefinition(slot), out); + } + + private DeserializableTypeDefinition> getJsonTypeDefinition(final UInt64 slot) { + return milestoneToTypeDefinitionCache.computeIfAbsent( + spec.atSlot(slot).getMilestone(), + milestone -> + listOf( + SchemaDefinitionsDeneb.required(spec.forMilestone(milestone).getSchemaDefinitions()) + .getBlobSidecarSchema() + .getJsonTypeDefinition())); + } + + private String formatIndexFileOutput(final SlotAndBlockRoot slotAndBlockRoot) { + return slotAndBlockRoot.getSlot() + + " " + + slotAndBlockRoot.getBlockRoot().toUnprefixedHexString(); + } +} diff --git a/storage/src/main/java/tech/pegasys/teku/storage/archive/fsarchive/BlobSidecarJsonWriter.java b/storage/src/main/java/tech/pegasys/teku/storage/archive/fsarchive/BlobSidecarJsonWriter.java deleted file mode 100644 index 2c85a310235..00000000000 --- a/storage/src/main/java/tech/pegasys/teku/storage/archive/fsarchive/BlobSidecarJsonWriter.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.storage.archive.fsarchive; - -import static java.nio.charset.StandardCharsets.UTF_8; -import static tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition.listOf; - -import java.io.IOException; -import java.io.OutputStream; -import java.util.List; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.json.JsonUtil; -import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; - -public class BlobSidecarJsonWriter { - - public void writeSlotBlobSidecars(final OutputStream out, final List blobSidecars) - throws IOException { - Objects.requireNonNull(out); - Objects.requireNonNull(blobSidecars); - - // Technically not possible as pruner prunes sidecars and not slots. - if (blobSidecars.isEmpty()) { - out.write("[]".getBytes(UTF_8)); - return; - } - - final SerializableTypeDefinition> type = - listOf(blobSidecars.getFirst().getSchema().getJsonTypeDefinition()); - JsonUtil.serializeToBytes(blobSidecars, type, out); - } -} diff --git a/storage/src/main/java/tech/pegasys/teku/storage/archive/fsarchive/FileSystemArchive.java b/storage/src/main/java/tech/pegasys/teku/storage/archive/fsarchive/FileSystemArchive.java deleted file mode 100644 index 0839207063b..00000000000 --- a/storage/src/main/java/tech/pegasys/teku/storage/archive/fsarchive/FileSystemArchive.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.storage.archive.fsarchive; - -import java.io.BufferedWriter; -import java.io.Closeable; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; -import tech.pegasys.teku.spec.datastructures.blocks.SlotAndBlockRoot; -import tech.pegasys.teku.storage.archive.DataArchive; -import tech.pegasys.teku.storage.archive.DataArchiveWriter; - -/** - * A file system based implementations of the DataArchive. Writes to a directory using the - * PathResolver method to decide where to write the files. - */ -public class FileSystemArchive implements DataArchive { - static final String INDEX_FILE = "index.dat"; - private static final Logger LOG = LogManager.getLogger(); - - private final Path baseDirectory; - private final BlobSidecarJsonWriter jsonWriter; - - public FileSystemArchive(final Path baseDirectory) { - this.baseDirectory = baseDirectory; - this.jsonWriter = new BlobSidecarJsonWriter(); - } - - @Override - public DataArchiveWriter> getBlobSidecarWriter() throws IOException { - - try { - final File indexFile = baseDirectory.resolve(INDEX_FILE).toFile(); - return new FileSystemBlobSidecarWriter(indexFile); - } catch (IOException e) { - LOG.warn("Unable to create BlobSidecar archive writer", e); - throw e; - } - } - - private class FileSystemBlobSidecarWriter - implements DataArchiveWriter>, Closeable { - final BufferedWriter indexWriter; - - public FileSystemBlobSidecarWriter(final File indexFile) throws IOException { - indexWriter = - new BufferedWriter( - new OutputStreamWriter( - new FileOutputStream(indexFile, true), StandardCharsets.UTF_8)); - } - - @Override - public boolean archive(final List blobSidecars) { - if (blobSidecars == null || blobSidecars.isEmpty()) { - return true; - } - - final SlotAndBlockRoot slotAndBlockRoot = blobSidecars.getFirst().getSlotAndBlockRoot(); - final File file = resolve(slotAndBlockRoot); - if (file.exists()) { - LOG.error("Failed to write BlobSidecar. File exists: {}", file.toString()); - return false; - } - - try { - Files.createDirectories(file.toPath().getParent()); - } catch (IOException e) { - LOG.error( - "Failed to write BlobSidecar. Could not make directories to: {}", - file.getParentFile().toString()); - return false; - } - - try (FileOutputStream output = new FileOutputStream(file)) { - jsonWriter.writeSlotBlobSidecars(output, blobSidecars); - indexWriter.write(formatIndexOutput(slotAndBlockRoot)); - indexWriter.newLine(); - return true; - } catch (IOException | NullPointerException e) { - LOG.error("Failed to write BlobSidecar.", e); - return false; - } - } - - private String formatIndexOutput(final SlotAndBlockRoot slotAndBlockRoot) { - return slotAndBlockRoot.getSlot() - + " " - + slotAndBlockRoot.getBlockRoot().toUnprefixedHexString(); - } - - @Override - public void close() throws IOException { - indexWriter.flush(); - indexWriter.close(); - } - } - - /** - * Given a basePath, slot and block root, return where to store/find the BlobSidecar. Initial - * implementation uses blockRoot as a hex string in the directory of the first two characters. - * - * @param slotAndBlockRoot The slot and block root. - * @return a path of where to store or find the BlobSidecar - */ - public File resolve(final SlotAndBlockRoot slotAndBlockRoot) { - // For blockroot 0x1a2bcd... the directory is basePath/1a/2b/1a2bcd... - // 256 * 256 directories = 65,536. - // Assume 8000 to 10000 blobs per day. With perfect hash distribution, - // all directories have one file after a week. After 1 year, expect 50 files in each directory. - String blockRootString = slotAndBlockRoot.getBlockRoot().toUnprefixedHexString(); - final String dir1 = blockRootString.substring(0, 2); - final String dir2 = blockRootString.substring(2, 4); - final String blobSidecarFilename = - dir1 + File.separator + dir2 + File.separator + blockRootString; - return baseDirectory.resolve(blobSidecarFilename).toFile(); - } -} diff --git a/storage/src/main/java/tech/pegasys/teku/storage/archive/nooparchive/DataArchiveNoopWriter.java b/storage/src/main/java/tech/pegasys/teku/storage/archive/nooparchive/DataArchiveNoopWriter.java deleted file mode 100644 index 00a631f5baa..00000000000 --- a/storage/src/main/java/tech/pegasys/teku/storage/archive/nooparchive/DataArchiveNoopWriter.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.storage.archive.nooparchive; - -import java.io.IOException; -import tech.pegasys.teku.storage.archive.DataArchiveWriter; - -public class DataArchiveNoopWriter implements DataArchiveWriter { - - @Override - public boolean archive(final T data) { - return true; - } - - @Override - public void close() throws IOException {} -} diff --git a/storage/src/main/java/tech/pegasys/teku/storage/archive/nooparchive/NoopDataArchive.java b/storage/src/main/java/tech/pegasys/teku/storage/archive/nooparchive/NoopDataArchive.java deleted file mode 100644 index 6de2de80585..00000000000 --- a/storage/src/main/java/tech/pegasys/teku/storage/archive/nooparchive/NoopDataArchive.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.storage.archive.nooparchive; - -import java.util.List; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; -import tech.pegasys.teku.storage.archive.DataArchive; -import tech.pegasys.teku.storage.archive.DataArchiveWriter; - -public class NoopDataArchive implements DataArchive { - - private static final DataArchiveWriter> BLOB_SIDECAR_WRITER = - new DataArchiveNoopWriter<>(); - - @Override - public DataArchiveWriter> getBlobSidecarWriter() { - return BLOB_SIDECAR_WRITER; - } -} diff --git a/storage/src/main/java/tech/pegasys/teku/storage/client/CombinedChainDataClient.java b/storage/src/main/java/tech/pegasys/teku/storage/client/CombinedChainDataClient.java index e4193a5cf2b..78309233c5d 100644 --- a/storage/src/main/java/tech/pegasys/teku/storage/client/CombinedChainDataClient.java +++ b/storage/src/main/java/tech/pegasys/teku/storage/client/CombinedChainDataClient.java @@ -177,15 +177,15 @@ public SafeFuture> getBlobSidecars( public SafeFuture> getBlobSidecars( final SlotAndBlockRoot slotAndBlockRoot, final List indices) { - final Optional> maybeBlobSidecars = - recentChainData.getBlobSidecars(slotAndBlockRoot); - if (maybeBlobSidecars.isPresent()) { - return SafeFuture.completedFuture(filterBlobSidecars(maybeBlobSidecars.get(), indices)); - } - return historicalChainData - .getBlobSidecarKeys(slotAndBlockRoot) - .thenApply(keys -> filterBlobSidecarKeys(keys, indices)) - .thenCompose(this::getBlobSidecars); + return recentChainData + .getBlobSidecars(slotAndBlockRoot) + .map(blobSidecars -> SafeFuture.completedFuture(filterBlobSidecars(blobSidecars, indices))) + .orElseGet( + () -> + historicalChainData + .getBlobSidecarKeys(slotAndBlockRoot) + .thenApply(keys -> filterBlobSidecarKeys(keys, indices)) + .thenCompose(this::getBlobSidecars)); } public SafeFuture> getAllBlobSidecars( @@ -193,7 +193,21 @@ public SafeFuture> getAllBlobSidecars( return historicalChainData .getAllBlobSidecarKeys(slot) .thenApply(keys -> filterBlobSidecarKeys(keys, indices)) - .thenCompose(this::getAllBlobSidecars); + .thenCompose(this::getBlobSidecars); + } + + public SafeFuture> getArchivedBlobSidecars( + final SlotAndBlockRoot slotAndBlockRoot, final List indices) { + return historicalChainData + .getArchivedBlobSidecars(slotAndBlockRoot) + .thenApply(blobSidecars -> filterBlobSidecars(blobSidecars, indices)); + } + + public SafeFuture> getArchivedBlobSidecars( + final UInt64 slot, final List indices) { + return historicalChainData + .getArchivedBlobSidecars(slot) + .thenApply(blobSidecars -> filterBlobSidecars(blobSidecars, indices)); } public SafeFuture> getStateAtSlotExact(final UInt64 slot) { @@ -514,15 +528,15 @@ public SafeFuture> getBlobSidecarByBlockRootAndIndex( public SafeFuture> getBlobSidecarByKey( final SlotAndBlockRootAndBlobIndex key) { - final Optional> maybeBlobSidecars = - recentChainData.getBlobSidecars(key.getSlotAndBlockRoot()); - if (maybeBlobSidecars.isPresent()) { - return key.getBlobIndex().isLessThan(maybeBlobSidecars.get().size()) - ? SafeFuture.completedFuture( - Optional.of(maybeBlobSidecars.get().get(key.getBlobIndex().intValue()))) - : SafeFuture.completedFuture(Optional.empty()); - } - return historicalChainData.getBlobSidecar(key); + return recentChainData + .getBlobSidecars(key.getSlotAndBlockRoot()) + .>>map( + blobSidecars -> + key.getBlobIndex().isLessThan(blobSidecars.size()) + ? SafeFuture.completedFuture( + Optional.of(blobSidecars.get(key.getBlobIndex().intValue()))) + : SafeFuture.completedFuture(Optional.empty())) + .orElseGet(() -> historicalChainData.getBlobSidecar(key)); } public SafeFuture> getBlobSidecarKeys( @@ -817,12 +831,6 @@ private SafeFuture> getBlobSidecars( .thenApply(blobSidecars -> blobSidecars.stream().flatMap(Optional::stream).toList()); } - private SafeFuture> getAllBlobSidecars( - final Stream keys) { - return SafeFuture.collectAll(keys.map(this::getAllBlobSidecarByKey)) - .thenApply(blobSidecars -> blobSidecars.stream().flatMap(Optional::stream).toList()); - } - private Optional getFinalizedCheckpoint() { return Optional.ofNullable(getStore()).map(ReadOnlyStore::getFinalizedCheckpoint); } diff --git a/storage/src/main/java/tech/pegasys/teku/storage/server/ChainStorage.java b/storage/src/main/java/tech/pegasys/teku/storage/server/ChainStorage.java index 85b446b5dac..7b14357ceab 100644 --- a/storage/src/main/java/tech/pegasys/teku/storage/server/ChainStorage.java +++ b/storage/src/main/java/tech/pegasys/teku/storage/server/ChainStorage.java @@ -48,38 +48,44 @@ import tech.pegasys.teku.storage.api.VoteUpdateChannel; import tech.pegasys.teku.storage.api.WeakSubjectivityState; import tech.pegasys.teku.storage.api.WeakSubjectivityUpdate; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; import tech.pegasys.teku.storage.server.state.FinalizedStateCache; public class ChainStorage implements StorageUpdateChannel, StorageQueryChannel, VoteUpdateChannel, ChainStorageFacade { private static final Logger LOG = LogManager.getLogger(); + private final Database database; private final FinalizedStateCache finalizedStateCache; - private final StateStorageMode dataStorageMode; + private final BlobSidecarsArchiver blobSidecarsArchiver; private Optional cachedStoreData = Optional.empty(); private ChainStorage( final Database database, final FinalizedStateCache finalizedStateCache, - final StateStorageMode dataStorageMode) { + final StateStorageMode dataStorageMode, + final BlobSidecarsArchiver blobSidecarsArchiver) { this.database = database; this.finalizedStateCache = finalizedStateCache; this.dataStorageMode = dataStorageMode; + this.blobSidecarsArchiver = blobSidecarsArchiver; } public static ChainStorage create( final Database database, final Spec spec, final StateStorageMode dataStorageMode, - final int stateRebuildTimeoutSeconds) { + final int stateRebuildTimeoutSeconds, + final BlobSidecarsArchiver blobSidecarsArchiver) { final int finalizedStateCacheSize = spec.getSlotsPerEpoch(SpecConfig.GENESIS_EPOCH) * 3; return new ChainStorage( database, new FinalizedStateCache( spec, database, finalizedStateCacheSize, true, stateRebuildTimeoutSeconds), - dataStorageMode); + dataStorageMode, + blobSidecarsArchiver); } private synchronized Optional getStore() { @@ -363,4 +369,15 @@ public SafeFuture> getBlobSidecarKeys( final SlotAndBlockRoot slotAndBlockRoot) { return SafeFuture.of(() -> database.getBlobSidecarKeys(slotAndBlockRoot)); } + + @Override + public SafeFuture> getArchivedBlobSidecars( + final SlotAndBlockRoot slotAndBlockRoot) { + return SafeFuture.of(() -> blobSidecarsArchiver.retrieve(slotAndBlockRoot).orElse(List.of())); + } + + @Override + public SafeFuture> getArchivedBlobSidecars(final UInt64 slot) { + return SafeFuture.of(() -> blobSidecarsArchiver.retrieve(slot).orElse(List.of())); + } } diff --git a/storage/src/main/java/tech/pegasys/teku/storage/server/CombinedStorageChannelSplitter.java b/storage/src/main/java/tech/pegasys/teku/storage/server/CombinedStorageChannelSplitter.java index 163a5066a15..843f0b12a92 100644 --- a/storage/src/main/java/tech/pegasys/teku/storage/server/CombinedStorageChannelSplitter.java +++ b/storage/src/main/java/tech/pegasys/teku/storage/server/CombinedStorageChannelSplitter.java @@ -249,4 +249,15 @@ public SafeFuture> getBlobSidecarKeys( final SlotAndBlockRoot slotAndBlockRoot) { return asyncRunner.runAsync(() -> queryDelegate.getBlobSidecarKeys(slotAndBlockRoot)); } + + @Override + public SafeFuture> getArchivedBlobSidecars( + final SlotAndBlockRoot slotAndBlockRoot) { + return asyncRunner.runAsync(() -> queryDelegate.getArchivedBlobSidecars(slotAndBlockRoot)); + } + + @Override + public SafeFuture> getArchivedBlobSidecars(final UInt64 slot) { + return asyncRunner.runAsync(() -> queryDelegate.getArchivedBlobSidecars(slot)); + } } diff --git a/storage/src/main/java/tech/pegasys/teku/storage/server/Database.java b/storage/src/main/java/tech/pegasys/teku/storage/server/Database.java index 4b1ddfd3f89..182f98ff894 100644 --- a/storage/src/main/java/tech/pegasys/teku/storage/server/Database.java +++ b/storage/src/main/java/tech/pegasys/teku/storage/server/Database.java @@ -40,7 +40,7 @@ import tech.pegasys.teku.storage.api.UpdateResult; import tech.pegasys.teku.storage.api.WeakSubjectivityState; import tech.pegasys.teku.storage.api.WeakSubjectivityUpdate; -import tech.pegasys.teku.storage.archive.DataArchiveWriter; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; public interface Database extends AutoCloseable { @@ -74,16 +74,14 @@ void storeFinalizedBlocks( * * @param lastSlotToPrune inclusive, not reached if limit happens first * @param pruneLimit maximum number of slots to prune. - * @param archiveWriter write BlobSidecars to archive when pruning. + * @param blobSidecarsArchiver write BlobSidecars to archive when pruning. * @return true if number of pruned blobs reached the pruneLimit, false otherwise */ boolean pruneOldestBlobSidecars( - UInt64 lastSlotToPrune, - int pruneLimit, - final DataArchiveWriter> archiveWriter); + UInt64 lastSlotToPrune, int pruneLimit, BlobSidecarsArchiver blobSidecarsArchiver); boolean pruneOldestNonCanonicalBlobSidecars( - UInt64 lastSlotToPrune, int pruneLimit, DataArchiveWriter> archiveWriter); + UInt64 lastSlotToPrune, int pruneLimit, BlobSidecarsArchiver blobSidecarsArchiver); @MustBeClosed Stream streamBlobSidecarKeys(UInt64 startSlot, UInt64 endSlot); diff --git a/storage/src/main/java/tech/pegasys/teku/storage/server/kvstore/KvStoreDatabase.java b/storage/src/main/java/tech/pegasys/teku/storage/server/kvstore/KvStoreDatabase.java index 5e1107e433b..805a5f523dd 100644 --- a/storage/src/main/java/tech/pegasys/teku/storage/server/kvstore/KvStoreDatabase.java +++ b/storage/src/main/java/tech/pegasys/teku/storage/server/kvstore/KvStoreDatabase.java @@ -71,7 +71,7 @@ import tech.pegasys.teku.storage.api.UpdateResult; import tech.pegasys.teku.storage.api.WeakSubjectivityState; import tech.pegasys.teku.storage.api.WeakSubjectivityUpdate; -import tech.pegasys.teku.storage.archive.DataArchiveWriter; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; import tech.pegasys.teku.storage.server.Database; import tech.pegasys.teku.storage.server.StateStorageMode; import tech.pegasys.teku.storage.server.kvstore.dataaccess.CombinedKvStoreDao; @@ -943,7 +943,7 @@ public Optional getNonCanonicalBlobSidecar(final SlotAndBlockRootAn public boolean pruneOldestBlobSidecars( final UInt64 lastSlotToPrune, final int pruneLimit, - final DataArchiveWriter> archiveWriter) { + final BlobSidecarsArchiver blobSidecarsArchiver) { final Optional earliestBlobSidecarSlot = getEarliestBlobSidecarSlot(); if (earliestBlobSidecarSlot.isPresent() && earliestBlobSidecarSlot.get().isGreaterThan(lastSlotToPrune)) { @@ -951,7 +951,7 @@ public boolean pruneOldestBlobSidecars( } try (final Stream prunableBlobKeys = streamBlobSidecarKeys(earliestBlobSidecarSlot.orElse(UInt64.ZERO), lastSlotToPrune)) { - return pruneBlobSidecars(pruneLimit, prunableBlobKeys, archiveWriter, false); + return pruneBlobSidecars(pruneLimit, prunableBlobKeys, blobSidecarsArchiver, false); } } @@ -959,7 +959,7 @@ public boolean pruneOldestBlobSidecars( public boolean pruneOldestNonCanonicalBlobSidecars( final UInt64 lastSlotToPrune, final int pruneLimit, - final DataArchiveWriter> archiveWriter) { + final BlobSidecarsArchiver blobSidecarsArchiver) { final Optional earliestBlobSidecarSlot = getEarliestBlobSidecarSlot(); if (earliestBlobSidecarSlot.isPresent() && earliestBlobSidecarSlot.get().isGreaterThan(lastSlotToPrune)) { @@ -968,14 +968,15 @@ public boolean pruneOldestNonCanonicalBlobSidecars( try (final Stream prunableNoncanonicalBlobKeys = streamNonCanonicalBlobSidecarKeys( earliestBlobSidecarSlot.orElse(UInt64.ZERO), lastSlotToPrune)) { - return pruneBlobSidecars(pruneLimit, prunableNoncanonicalBlobKeys, archiveWriter, true); + return pruneBlobSidecars( + pruneLimit, prunableNoncanonicalBlobKeys, blobSidecarsArchiver, true); } } private boolean pruneBlobSidecars( final int pruneLimit, final Stream prunableBlobKeys, - final DataArchiveWriter> archiveWriter, + final BlobSidecarsArchiver blobSidecarsArchiver, final boolean nonCanonicalBlobSidecars) { int pruned = 0; @@ -1008,11 +1009,9 @@ private boolean pruneBlobSidecars( LOG.warn("Failed to retrieve BlobSidecars for keys: {}", keys); } - // Attempt to archive the BlobSidecars. - final boolean blobSidecarArchived = archiveWriter.archive(blobSidecars); - if (!blobSidecarArchived) { - LOG.error("Failed to archive and prune BlobSidecars. Stopping pruning"); - break; + if (!keys.isEmpty()) { + final SlotAndBlockRoot slotAndBlockRoot = keys.getFirst().getSlotAndBlockRoot(); + blobSidecarsArchiver.archive(slotAndBlockRoot, blobSidecars); } // Remove the BlobSidecars from the database. diff --git a/storage/src/main/java/tech/pegasys/teku/storage/server/noop/NoOpDatabase.java b/storage/src/main/java/tech/pegasys/teku/storage/server/noop/NoOpDatabase.java index 185cc19e865..268eeebb543 100644 --- a/storage/src/main/java/tech/pegasys/teku/storage/server/noop/NoOpDatabase.java +++ b/storage/src/main/java/tech/pegasys/teku/storage/server/noop/NoOpDatabase.java @@ -43,7 +43,7 @@ import tech.pegasys.teku.storage.api.UpdateResult; import tech.pegasys.teku.storage.api.WeakSubjectivityState; import tech.pegasys.teku.storage.api.WeakSubjectivityUpdate; -import tech.pegasys.teku.storage.archive.DataArchiveWriter; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; import tech.pegasys.teku.storage.server.Database; public class NoOpDatabase implements Database { @@ -305,6 +305,22 @@ public Optional getNonCanonicalBlobSidecar(final SlotAndBlockRootAn return Optional.empty(); } + @Override + public boolean pruneOldestBlobSidecars( + final UInt64 lastSlotToPrune, + final int pruneLimit, + final BlobSidecarsArchiver blobSidecarsArchiver) { + return false; + } + + @Override + public boolean pruneOldestNonCanonicalBlobSidecars( + final UInt64 lastSlotToPrune, + final int pruneLimit, + final BlobSidecarsArchiver blobSidecarsArchiver) { + return false; + } + @Override public Stream streamBlobSidecarKeys( final UInt64 startSlot, final UInt64 endSlot) { @@ -333,22 +349,6 @@ public Optional getEarliestBlobSidecarSlot() { return Optional.empty(); } - @Override - public boolean pruneOldestBlobSidecars( - final UInt64 lastSlotToPrune, - final int pruneLimit, - final DataArchiveWriter> archiveWriter) { - return false; - } - - @Override - public boolean pruneOldestNonCanonicalBlobSidecars( - final UInt64 lastSlotToPrune, - final int pruneLimit, - final DataArchiveWriter> archiveWriter) { - return false; - } - @Override public void close() {} } diff --git a/storage/src/main/java/tech/pegasys/teku/storage/server/pruner/BlobSidecarPruner.java b/storage/src/main/java/tech/pegasys/teku/storage/server/pruner/BlobSidecarPruner.java index fb37cb1c9e6..c35f2b8ab09 100644 --- a/storage/src/main/java/tech/pegasys/teku/storage/server/pruner/BlobSidecarPruner.java +++ b/storage/src/main/java/tech/pegasys/teku/storage/server/pruner/BlobSidecarPruner.java @@ -13,9 +13,7 @@ package tech.pegasys.teku.storage.server.pruner; -import java.io.IOException; import java.time.Duration; -import java.util.List; import java.util.Optional; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.atomic.AtomicLong; @@ -33,9 +31,7 @@ import tech.pegasys.teku.service.serviceutils.Service; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.config.SpecConfigDeneb; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; -import tech.pegasys.teku.storage.archive.DataArchive; -import tech.pegasys.teku.storage.archive.DataArchiveWriter; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; import tech.pegasys.teku.storage.server.Database; import tech.pegasys.teku.storage.server.ShuttingDownException; @@ -59,12 +55,12 @@ public class BlobSidecarPruner extends Service { private final AtomicLong blobColumnSize = new AtomicLong(0); private final AtomicLong earliestBlobSidecarSlot = new AtomicLong(-1); private final boolean storeNonCanonicalBlobSidecars; - private final DataArchive dataArchive; + private final BlobSidecarsArchiver blobSidecarsArchiver; public BlobSidecarPruner( final Spec spec, final Database database, - final DataArchive dataArchive, + final BlobSidecarsArchiver blobSidecarsArchiver, final MetricsSystem metricsSystem, final AsyncRunner asyncRunner, final TimeProvider timeProvider, @@ -77,7 +73,7 @@ public BlobSidecarPruner( final boolean storeNonCanonicalBlobSidecars) { this.spec = spec; this.database = database; - this.dataArchive = dataArchive; + this.blobSidecarsArchiver = blobSidecarsArchiver; this.asyncRunner = asyncRunner; this.pruneInterval = pruneInterval; this.pruneLimit = pruneLimit; @@ -152,10 +148,10 @@ private void pruneBlobsPriorToAvailabilityWindow() { return; } LOG.debug("Pruning blobs up to slot {}, limit {}", latestPrunableSlot, pruneLimit); - try (DataArchiveWriter> archiveWriter = dataArchive.getBlobSidecarWriter()) { + try { final long blobsPruningStart = System.currentTimeMillis(); final boolean blobsPruningLimitReached = - database.pruneOldestBlobSidecars(latestPrunableSlot, pruneLimit, archiveWriter); + database.pruneOldestBlobSidecars(latestPrunableSlot, pruneLimit, blobSidecarsArchiver); logPruningResult( "Blobs pruning finished in {} ms. Limit reached: {}", blobsPruningStart, @@ -165,14 +161,12 @@ private void pruneBlobsPriorToAvailabilityWindow() { final long nonCanonicalBlobsPruningStart = System.currentTimeMillis(); final boolean nonCanonicalBlobsLimitReached = database.pruneOldestNonCanonicalBlobSidecars( - latestPrunableSlot, pruneLimit, archiveWriter); + latestPrunableSlot, pruneLimit, blobSidecarsArchiver); logPruningResult( "Non canonical Blobs pruning finished in {} ms. Limit reached: {}", nonCanonicalBlobsPruningStart, nonCanonicalBlobsLimitReached); } - } catch (IOException ex) { - LOG.error("Failed to get the BlobSidecar archive writer", ex); } catch (ShuttingDownException | RejectedExecutionException ex) { LOG.debug("Shutting down", ex); } diff --git a/storage/src/test/java/tech/pegasys/teku/storage/archive/filesystem/FileSystemBlobSidecarsArchiverTest.java b/storage/src/test/java/tech/pegasys/teku/storage/archive/filesystem/FileSystemBlobSidecarsArchiverTest.java new file mode 100644 index 00000000000..0c3b76d1f6c --- /dev/null +++ b/storage/src/test/java/tech/pegasys/teku/storage/archive/filesystem/FileSystemBlobSidecarsArchiverTest.java @@ -0,0 +1,171 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.storage.archive.filesystem; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.Spec; +import tech.pegasys.teku.spec.TestSpecFactory; +import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.Blob; +import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; +import tech.pegasys.teku.spec.datastructures.blocks.SlotAndBlockRoot; +import tech.pegasys.teku.spec.datastructures.type.SszKZGProof; +import tech.pegasys.teku.spec.datastructures.util.SlotAndBlockRootAndBlobIndex; +import tech.pegasys.teku.spec.logic.common.helpers.Predicates; +import tech.pegasys.teku.spec.logic.versions.deneb.helpers.MiscHelpersDeneb; +import tech.pegasys.teku.spec.schemas.SchemaDefinitionsDeneb; +import tech.pegasys.teku.spec.util.DataStructureUtil; + +public class FileSystemBlobSidecarsArchiverTest { + + private static final Spec SPEC = TestSpecFactory.createMinimalDeneb(); + private final Predicates predicates = new Predicates(SPEC.getGenesisSpecConfig()); + private final SchemaDefinitionsDeneb schemaDefinitionsDeneb = + SchemaDefinitionsDeneb.required(SPEC.getGenesisSchemaDefinitions()); + private final MiscHelpersDeneb miscHelpersDeneb = + new MiscHelpersDeneb( + SPEC.getGenesisSpecConfig().toVersionDeneb().orElseThrow(), + predicates, + schemaDefinitionsDeneb); + private final DataStructureUtil dataStructureUtil = new DataStructureUtil(SPEC); + + static Path testTempDir; + static FileSystemBlobSidecarsArchiver blobSidecarsArchiver; + + @BeforeAll + static void beforeEach() throws IOException { + testTempDir = Files.createTempDirectory("blobs"); + blobSidecarsArchiver = new FileSystemBlobSidecarsArchiver(SPEC, testTempDir); + } + + @AfterEach + public void tearDown() throws IOException { + // Delete the temporary directory after each test + if (Files.exists(testTempDir)) { + try (Stream walk = Files.walk(testTempDir)) { + walk.map(Path::toFile) + .forEach( + file -> { + if (!file.delete()) { + file.deleteOnExit(); + } + }); + } + } + } + + @Test + void testResolveArchivePath() { + final SlotAndBlockRootAndBlobIndex slotAndBlockRootAndBlobIndex = + new SlotAndBlockRootAndBlobIndex( + UInt64.ONE, dataStructureUtil.randomBytes32(), UInt64.ZERO); + final Path path = + blobSidecarsArchiver.resolveArchivePath( + slotAndBlockRootAndBlobIndex.getSlotAndBlockRoot().getBlockRoot()); + + // Check if the file path is correct. Doesn't check the intermediate directories. + assertTrue(path.toString().startsWith(testTempDir.toString())); + assertTrue( + path.toString() + .endsWith(slotAndBlockRootAndBlobIndex.getBlockRoot().toUnprefixedHexString())); + } + + @ParameterizedTest + @MethodSource("testResolveIndexPathArguments") + void testResolveIndexPath(final UInt64 slot, final String expectedIndexFileName) { + final Path actualIndexFile = blobSidecarsArchiver.resolveIndexFile(slot); + assertThat(actualIndexFile).hasFileName(expectedIndexFileName); + } + + @Test + void testArchiveWithEmptyList() { + final SlotAndBlockRoot slotAndBlockRoot = dataStructureUtil.randomSlotAndBlockRoot(); + // archiving + blobSidecarsArchiver.archive(slotAndBlockRoot, List.of()); + + // retrieving + final Optional> blobSidecars = + blobSidecarsArchiver.retrieve(slotAndBlockRoot); + // empty list + assertThat(blobSidecars).hasValue(List.of()); + } + + @Test + void testArchiveAndRetrieveBlobSidecars() { + final UInt64 slot = UInt64.valueOf(42); + final SlotAndBlockRoot slotAndBlockRoot = + new SlotAndBlockRoot(slot, dataStructureUtil.randomBytes32()); + final List blobSidecars = + List.of(createBlobSidecar(slot), createBlobSidecar(slot)); + + // archiving + blobSidecarsArchiver.archive(slotAndBlockRoot, blobSidecars); + + // test index file exists + assertThat(testTempDir.resolve("0-99999_index.dat")).exists(); + + // retrieving by slot and block root + final Optional> retrievedBlobSidecarsByRoot = + blobSidecarsArchiver.retrieve(slotAndBlockRoot); + + assertThat(retrievedBlobSidecarsByRoot).hasValue(blobSidecars); + + // retrieving by slot (using index file) + final Optional> retrievedBlobSidecarsBySlot = + blobSidecarsArchiver.retrieve(slotAndBlockRoot.getSlot()); + + assertThat(retrievedBlobSidecarsBySlot).hasValue(blobSidecars); + } + + private BlobSidecar createBlobSidecar(final UInt64 slot) { + final SignedBeaconBlock signedBeaconBlock = + dataStructureUtil.randomSignedBeaconBlockWithCommitments(slot, 1); + final Blob blob = dataStructureUtil.randomBlob(); + final SszKZGProof proof = dataStructureUtil.randomSszKZGProof(); + return miscHelpersDeneb.constructBlobSidecar(signedBeaconBlock, UInt64.ZERO, blob, proof); + } + + private static Stream testResolveIndexPathArguments() { + return Stream.of( + Arguments.of(UInt64.valueOf(0L), "0-99999_index.dat"), + Arguments.of(UInt64.valueOf(42L), "0-99999_index.dat"), + Arguments.of(UInt64.valueOf(99999L), "0-99999_index.dat"), + Arguments.of(UInt64.valueOf(100000L), "100000-199999_index.dat"), + Arguments.of(UInt64.valueOf(100001L), "100000-199999_index.dat"), + Arguments.of(UInt64.valueOf(199999L), "100000-199999_index.dat"), + Arguments.of(UInt64.valueOf(200000L), "200000-299999_index.dat"), + Arguments.of(UInt64.valueOf(999999999L), "999900000-999999999_index.dat"), + Arguments.of(UInt64.valueOf(1000000000L), "1000000000-1000099999_index.dat"), + Arguments.of(UInt64.valueOf(1L), "0-99999_index.dat"), + Arguments.of(UInt64.valueOf(99998L), "0-99999_index.dat"), + Arguments.of(UInt64.valueOf(99999L), "0-99999_index.dat"), + Arguments.of(UInt64.valueOf(100000L), "100000-199999_index.dat"), + Arguments.of(UInt64.valueOf(123456789L), "123400000-123499999_index.dat")); + } +} diff --git a/storage/src/test/java/tech/pegasys/teku/storage/archive/fsarchive/BlobSidecarJsonWriterTest.java b/storage/src/test/java/tech/pegasys/teku/storage/archive/fsarchive/BlobSidecarJsonWriterTest.java deleted file mode 100644 index 974e47d87c9..00000000000 --- a/storage/src/test/java/tech/pegasys/teku/storage/archive/fsarchive/BlobSidecarJsonWriterTest.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.storage.archive.fsarchive; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class BlobSidecarJsonWriterTest { - private static final Spec SPEC = TestSpecFactory.createMinimalDeneb(); - - BlobSidecarJsonWriter blobSidecarJsonWriter; - private DataStructureUtil dataStructureUtil; - - @BeforeEach - public void test() { - this.blobSidecarJsonWriter = new BlobSidecarJsonWriter(); - this.dataStructureUtil = new DataStructureUtil(SPEC); - } - - @Test - void testWriteSlotBlobSidecarsWithEmptyList() throws IOException { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - List blobSidecars = new ArrayList<>(); - blobSidecarJsonWriter.writeSlotBlobSidecars(out, blobSidecars); - String json = out.toString(StandardCharsets.UTF_8); - assertEquals("[]", json); - } - - @Test - void testWriteSlotBlobSidecarsWithSingleElement() throws IOException { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - List blobSidecars = new ArrayList<>(); - final BlobSidecar blobSidecar = - dataStructureUtil.randomBlobSidecarForBlock( - dataStructureUtil.randomSignedBeaconBlock(1), 0); - blobSidecars.add(blobSidecar); - blobSidecarJsonWriter.writeSlotBlobSidecars(out, blobSidecars); - String json = out.toString(StandardCharsets.UTF_8); - assertTrue(json.contains("index")); - assertTrue(json.contains("blob")); - assertTrue(json.contains("kzg_commitment")); - assertTrue(json.contains("kzg_proof")); - assertTrue(json.contains("signed_block_header")); - assertTrue(json.contains("parent_root")); - assertTrue(json.contains("state_root")); - assertTrue(json.contains("body_root")); - assertTrue(json.contains("signature")); - } - - @Test - void testWriteSlotBlobSidecarsNulls() { - assertThrows( - NullPointerException.class, () -> blobSidecarJsonWriter.writeSlotBlobSidecars(null, null)); - } - - @Test - void testWriteSlotBlobSidecarsNullOut() { - assertThrows( - NullPointerException.class, - () -> { - List blobSidecars = new ArrayList<>(); - blobSidecarJsonWriter.writeSlotBlobSidecars(null, blobSidecars); - }); - } - - @Test - void testWriteSlotBlobSidecarsNullList() { - assertThrows( - NullPointerException.class, - () -> { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - blobSidecarJsonWriter.writeSlotBlobSidecars(out, null); - }); - } -} diff --git a/storage/src/test/java/tech/pegasys/teku/storage/archive/fsarchive/FileSystemArchiveTest.java b/storage/src/test/java/tech/pegasys/teku/storage/archive/fsarchive/FileSystemArchiveTest.java deleted file mode 100644 index 59f81ab9717..00000000000 --- a/storage/src/test/java/tech/pegasys/teku/storage/archive/fsarchive/FileSystemArchiveTest.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.storage.archive.fsarchive; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Stream; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.Blob; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; -import tech.pegasys.teku.spec.datastructures.type.SszKZGProof; -import tech.pegasys.teku.spec.datastructures.util.SlotAndBlockRootAndBlobIndex; -import tech.pegasys.teku.spec.logic.common.helpers.Predicates; -import tech.pegasys.teku.spec.logic.versions.deneb.helpers.MiscHelpersDeneb; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsDeneb; -import tech.pegasys.teku.spec.util.DataStructureUtil; -import tech.pegasys.teku.storage.archive.DataArchiveWriter; - -public class FileSystemArchiveTest { - private static final Spec SPEC = TestSpecFactory.createMinimalDeneb(); - private final Predicates predicates = new Predicates(SPEC.getGenesisSpecConfig()); - private final SchemaDefinitionsDeneb schemaDefinitionsDeneb = - SchemaDefinitionsDeneb.required(SPEC.getGenesisSchemaDefinitions()); - private final MiscHelpersDeneb miscHelpersDeneb = - new MiscHelpersDeneb( - SPEC.getGenesisSpecConfig().toVersionDeneb().orElseThrow(), - predicates, - schemaDefinitionsDeneb); - private final DataStructureUtil dataStructureUtil = new DataStructureUtil(SPEC); - - static Path testTempDir; - static FileSystemArchive dataArchive; - - @BeforeAll - static void beforeEach() throws IOException { - testTempDir = Files.createTempDirectory("blobs"); - dataArchive = new FileSystemArchive(testTempDir); - } - - @AfterEach - public void tearDown() throws IOException { - // Delete the temporary directory after each test - if (Files.exists(testTempDir)) { - try (Stream walk = Files.walk(testTempDir)) { - walk.map(Path::toFile) - .forEach( - file -> { - if (!file.delete()) { - file.deleteOnExit(); - } - }); - } - } - } - - BlobSidecar createBlobSidecar() { - final SignedBeaconBlock signedBeaconBlock = - dataStructureUtil.randomSignedBeaconBlockWithCommitments(1); - final Blob blob = dataStructureUtil.randomBlob(); - final SszKZGProof proof = dataStructureUtil.randomSszKZGProof(); - - return miscHelpersDeneb.constructBlobSidecar(signedBeaconBlock, UInt64.ZERO, blob, proof); - } - - @Test - void testResolve() { - SlotAndBlockRootAndBlobIndex slotAndBlockRootAndBlobIndex = - new SlotAndBlockRootAndBlobIndex( - UInt64.ONE, dataStructureUtil.randomBytes32(), UInt64.ZERO); - File file = dataArchive.resolve(slotAndBlockRootAndBlobIndex.getSlotAndBlockRoot()); - - // Check if the file path is correct. Doesn't check the intermediate directories. - assertTrue(file.toString().startsWith(testTempDir.toString())); - assertTrue( - file.toString() - .endsWith(slotAndBlockRootAndBlobIndex.getBlockRoot().toUnprefixedHexString())); - } - - @Test - void testArchiveWithEmptyList() throws IOException { - DataArchiveWriter> blobWriter = dataArchive.getBlobSidecarWriter(); - ArrayList list = new ArrayList<>(); - assertTrue(blobWriter.archive(list)); - blobWriter.close(); - } - - @Test - void testArchiveWithNullList() throws IOException { - DataArchiveWriter> blobWriter = dataArchive.getBlobSidecarWriter(); - assertTrue(blobWriter.archive(null)); - blobWriter.close(); - } - - @Test - void testWriteBlobSidecar() throws IOException { - DataArchiveWriter> blobWriter = dataArchive.getBlobSidecarWriter(); - ArrayList list = new ArrayList<>(); - BlobSidecar blobSidecar = createBlobSidecar(); - list.add(blobSidecar); - assertTrue(blobWriter.archive(list)); - blobWriter.close(); - - // Check if the file was written - try (FileInputStream fis = - new FileInputStream(testTempDir.resolve(FileSystemArchive.INDEX_FILE).toFile())) { - String content = new String(fis.readAllBytes(), StandardCharsets.UTF_8); - String expected = - blobSidecar.getSlot().toString() - + " " - + blobSidecar.getSlotAndBlockRoot().getBlockRoot().toUnprefixedHexString(); - - // Windows new lines are different, so don't include new lines in the comparison. - assertTrue(content.contains(expected)); - } - } - - @Test - void testFileAlreadyExists() throws IOException { - DataArchiveWriter> blobWriter = dataArchive.getBlobSidecarWriter(); - ArrayList list = new ArrayList<>(); - list.add(createBlobSidecar()); - assertTrue(blobWriter.archive(list)); - // Try to write the same file again - assertFalse(blobWriter.archive(list)); - blobWriter.close(); - } -} diff --git a/storage/src/test/java/tech/pegasys/teku/storage/server/pruner/BlobSidecarPrunerTest.java b/storage/src/test/java/tech/pegasys/teku/storage/server/pruner/BlobSidecarPrunerTest.java index 378e7306035..ed6065df9c5 100644 --- a/storage/src/test/java/tech/pegasys/teku/storage/server/pruner/BlobSidecarPrunerTest.java +++ b/storage/src/test/java/tech/pegasys/teku/storage/server/pruner/BlobSidecarPrunerTest.java @@ -23,7 +23,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import java.io.IOException; import java.time.Duration; import java.util.Optional; import org.junit.jupiter.api.BeforeEach; @@ -38,8 +37,7 @@ import tech.pegasys.teku.spec.TestSpecFactory; import tech.pegasys.teku.spec.config.SpecConfig; import tech.pegasys.teku.spec.config.SpecConfigDeneb; -import tech.pegasys.teku.storage.archive.DataArchive; -import tech.pegasys.teku.storage.archive.nooparchive.NoopDataArchive; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; import tech.pegasys.teku.storage.server.Database; public class BlobSidecarPrunerTest { @@ -57,13 +55,13 @@ public class BlobSidecarPrunerTest { private final StubAsyncRunner asyncRunner = new StubAsyncRunner(timeProvider); private final Database database = mock(Database.class); private final StubMetricsSystem stubMetricsSystem = new StubMetricsSystem(); - private final DataArchive dataArchive = new NoopDataArchive(); + private final BlobSidecarsArchiver blobSidecarsArchiver = mock(BlobSidecarsArchiver.class); private final BlobSidecarPruner blobsPruner = new BlobSidecarPruner( spec, database, - dataArchive, + blobSidecarsArchiver, stubMetricsSystem, asyncRunner, timeProvider, @@ -118,7 +116,7 @@ void shouldNotPruneWhenLatestPrunableIncludeGenesis() { } @Test - void shouldPruneWhenLatestPrunableSlotIsGreaterThanOldestDAEpoch() throws IOException { + void shouldPruneWhenLatestPrunableSlotIsGreaterThanOldestDAEpoch() { final SpecConfig config = spec.forMilestone(SpecMilestone.DENEB).getConfig(); final SpecConfigDeneb specConfigDeneb = SpecConfigDeneb.required(config); // set current slot to MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS + 1 epoch + half epoch @@ -133,18 +131,14 @@ void shouldPruneWhenLatestPrunableSlotIsGreaterThanOldestDAEpoch() throws IOExce asyncRunner.executeDueActions(); verify(database) .pruneOldestBlobSidecars( - UInt64.valueOf((slotsPerEpoch / 2) - 1), - PRUNE_LIMIT, - dataArchive.getBlobSidecarWriter()); + UInt64.valueOf((slotsPerEpoch / 2) - 1), PRUNE_LIMIT, blobSidecarsArchiver); verify(database) .pruneOldestNonCanonicalBlobSidecars( - UInt64.valueOf((slotsPerEpoch / 2) - 1), - PRUNE_LIMIT, - dataArchive.getBlobSidecarWriter()); + UInt64.valueOf((slotsPerEpoch / 2) - 1), PRUNE_LIMIT, blobSidecarsArchiver); } @Test - void shouldUseEpochsStoreBlobs() throws IOException { + void shouldUseEpochsStoreBlobs() { final SpecConfig config = spec.forMilestone(SpecMilestone.DENEB).getConfig(); final SpecConfigDeneb specConfigDeneb = SpecConfigDeneb.required(config); final int defaultValue = specConfigDeneb.getMinEpochsForBlobSidecarsRequests(); @@ -164,7 +158,7 @@ void shouldUseEpochsStoreBlobs() throws IOException { new BlobSidecarPruner( specOverride, databaseOverride, - dataArchive, + blobSidecarsArchiver, stubMetricsSystem, asyncRunner, timeProvider, @@ -200,14 +194,10 @@ void shouldUseEpochsStoreBlobs() throws IOException { asyncRunner.executeDueActions(); verify(databaseOverride) .pruneOldestBlobSidecars( - UInt64.valueOf((slotsPerEpoch / 2) - 1), - PRUNE_LIMIT, - dataArchive.getBlobSidecarWriter()); + UInt64.valueOf((slotsPerEpoch / 2) - 1), PRUNE_LIMIT, blobSidecarsArchiver); verify(databaseOverride) .pruneOldestNonCanonicalBlobSidecars( - UInt64.valueOf((slotsPerEpoch / 2) - 1), - PRUNE_LIMIT, - dataArchive.getBlobSidecarWriter()); + UInt64.valueOf((slotsPerEpoch / 2) - 1), PRUNE_LIMIT, blobSidecarsArchiver); } @Test @@ -228,7 +218,7 @@ void shouldNotPruneWhenEpochsStoreBlobsIsMax() { new BlobSidecarPruner( specOverride, databaseOverride, - dataArchive, + blobSidecarsArchiver, stubMetricsSystem, asyncRunner, timeProvider, diff --git a/storage/src/test/java/tech/pegasys/teku/storage/store/StoreTest.java b/storage/src/test/java/tech/pegasys/teku/storage/store/StoreTest.java index 8c7aef79f74..d5153c79b59 100644 --- a/storage/src/test/java/tech/pegasys/teku/storage/store/StoreTest.java +++ b/storage/src/test/java/tech/pegasys/teku/storage/store/StoreTest.java @@ -51,7 +51,7 @@ import tech.pegasys.teku.spec.generator.ChainBuilder; import tech.pegasys.teku.storage.api.StubStorageUpdateChannel; import tech.pegasys.teku.storage.api.StubStorageUpdateChannelWithDelays; -import tech.pegasys.teku.storage.archive.nooparchive.DataArchiveNoopWriter; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; import tech.pegasys.teku.storage.storageSystem.InMemoryStorageSystemBuilder; import tech.pegasys.teku.storage.storageSystem.StorageSystem; import tech.pegasys.teku.storage.store.UpdatableStore.StoreTransaction; @@ -396,7 +396,7 @@ public void retrieveEarliestBlobSidecarSlot_shouldReturnUpdatedValue() { storageSystem .database() - .pruneOldestBlobSidecars(UInt64.valueOf(5), 3, new DataArchiveNoopWriter<>()); + .pruneOldestBlobSidecars(UInt64.valueOf(5), 3, BlobSidecarsArchiver.NOOP); assertThat(store.retrieveEarliestBlobSidecarSlot()) .isCompletedWithValueMatching( diff --git a/storage/src/testFixtures/java/tech/pegasys/teku/storage/api/StubStorageQueryChannel.java b/storage/src/testFixtures/java/tech/pegasys/teku/storage/api/StubStorageQueryChannel.java index de8d78bb2d9..ca24a9dbdd1 100644 --- a/storage/src/testFixtures/java/tech/pegasys/teku/storage/api/StubStorageQueryChannel.java +++ b/storage/src/testFixtures/java/tech/pegasys/teku/storage/api/StubStorageQueryChannel.java @@ -176,6 +176,17 @@ public SafeFuture> getBlobSidecarKeys( return SafeFuture.completedFuture(List.of()); } + @Override + public SafeFuture> getArchivedBlobSidecars( + final SlotAndBlockRoot slotAndBlockRoot) { + return SafeFuture.completedFuture(List.of()); + } + + @Override + public SafeFuture> getArchivedBlobSidecars(final UInt64 slot) { + return SafeFuture.completedFuture(List.of()); + } + @Override public SafeFuture> getBlobSidecarsBySlotAndBlockRoot( final SlotAndBlockRoot slotAndBlockRoot) { diff --git a/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/StorageSystem.java b/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/StorageSystem.java index a986d5cc950..a6c30d7683f 100644 --- a/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/StorageSystem.java +++ b/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/StorageSystem.java @@ -29,6 +29,7 @@ import tech.pegasys.teku.storage.api.FinalizedCheckpointChannel; import tech.pegasys.teku.storage.api.StubFinalizedCheckpointChannel; import tech.pegasys.teku.storage.api.TrackingChainHeadChannel; +import tech.pegasys.teku.storage.archive.BlobSidecarsArchiver; import tech.pegasys.teku.storage.client.ChainUpdater; import tech.pegasys.teku.storage.client.CombinedChainDataClient; import tech.pegasys.teku.storage.client.EarliestAvailableBlockSlot; @@ -97,7 +98,8 @@ static StorageSystem create( // Create and start storage server final ChainStorage chainStorageServer = - ChainStorage.create(database, spec, storageMode, stateRebuildTimeoutSeconds); + ChainStorage.create( + database, spec, storageMode, stateRebuildTimeoutSeconds, BlobSidecarsArchiver.NOOP); // Create recent chain data final FinalizedCheckpointChannel finalizedCheckpointChannel = From 2477b9a70304f90457a1df763ce1e10139d9bf09 Mon Sep 17 00:00:00 2001 From: Stefan Bratanov Date: Thu, 10 Apr 2025 17:46:49 +0100 Subject: [PATCH 02/33] Schedule Gnosis Pectra hard-fork (#9340) --- CHANGELOG.md | 1 + .../teku/spec/config/configs/gnosis.yaml | 21 ++++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 935cc45f0c9..f65e6ee199c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,5 +11,6 @@ ### Additions and Improvements - Updated Teku bootnode ENR on Sepolia and Mainnet - Scheduled Electra for Mainnet at epoch 364032 (May 7, 2025, 10:05:11am UTC) +- Scheduled Electra for Gnosis at epoch 1337856 (April 30, 2025, 14:03:40 UTC) ### Bug Fixes diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/gnosis.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/gnosis.yaml index d912ea5c768..e64bddec408 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/gnosis.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/gnosis.yaml @@ -45,6 +45,9 @@ CAPELLA_FORK_EPOCH: 648704 # 2023-08-01T11:34:20.000Z # Deneb DENEB_FORK_VERSION: 0x04000064 DENEB_FORK_EPOCH: 889856 # 2024-03-11T18:30:20.000Z +# Electra +ELECTRA_FORK_VERSION: 0x05000064 +ELECTRA_FORK_EPOCH: 1337856 # 2025-04-30T14:03:40.000Z # Time parameters @@ -129,15 +132,19 @@ MAX_REQUEST_BLOCKS_DENEB: 128 MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 16384 # `6` BLOB_SIDECAR_SUBNET_COUNT: 6 -# `6` -MAX_BLOBS_PER_BLOCK: 6 +# `uint64(2)` +MAX_BLOBS_PER_BLOCK: 2 # MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK MAX_REQUEST_BLOB_SIDECARS: 768 # Electra -# `9` -BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9 -# `uint64(9)` -MAX_BLOBS_PER_BLOCK_ELECTRA: 9 +# 2**7 * 10**9 (= 128,000,000,000) +MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 128000000000 +# 2**6 * 10**9 (= 64,000,000,000) +MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 64000000000 +# `2` +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 2 +# `uint64(2)` +MAX_BLOBS_PER_BLOCK_ELECTRA: 2 # MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA -MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 \ No newline at end of file +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 256 \ No newline at end of file From 6510fb350edf28ffc488b94c05107f0953449b2b Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Fri, 11 Apr 2025 09:07:25 +1200 Subject: [PATCH 03/33] Updated ref tests v1.5.0-beta.5 (#9341) --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index d6e1ce4fbbd..eef80c4b8cc 100644 --- a/build.gradle +++ b/build.gradle @@ -324,7 +324,7 @@ allprojects { } def nightly = System.getenv("NIGHTLY") != null -def refTestVersion = nightly ? "nightly" : "v1.5.0-beta.4" +def refTestVersion = nightly ? "nightly" : "v1.5.0-beta.5" def blsRefTestVersion = 'v0.1.2' def slashingProtectionInterchangeRefTestVersion = 'v5.3.0' def refTestBaseUrl = 'https://github.com/ethereum/consensus-spec-tests/releases/download' From 023fa8a7e764d42b47dc221cfdda961f658153a1 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Fri, 11 Apr 2025 10:04:12 +1200 Subject: [PATCH 04/33] Created Fulu skeleton (#9325) --- ...ergedGenesisInteropModeAcceptanceTest.java | 36 +- .../acceptance/dsl/TekuNodeConfigBuilder.java | 12 + .../v3/GetNewBlockV3IntegrationTest.java | 5 +- .../handlers/v1/config/mainnetConfig.json | 17 +- .../teku/api/SchemaObjectProvider.java | 4 +- .../tech/pegasys/teku/api/schema/Version.java | 4 +- .../teku/api/schema/BeaconStateTest.java | 2 +- ...toneBasedEngineJsonRpcMethodsResolver.java | 13 + ...BasedEngineJsonRpcMethodsResolverTest.java | 22 + .../ethereum/json/types/EthereumTypes.java | 6 +- .../networks/Eth2NetworkConfiguration.java | 8 + .../tech/pegasys/teku/spec/SpecMilestone.java | 6 +- .../tech/pegasys/teku/spec/SpecVersion.java | 17 + .../config/DelegatingSpecConfigElectra.java | 136 ++++++ .../spec/config/DelegatingSpecConfigFulu.java | 121 +++++ .../pegasys/teku/spec/config/SpecConfig.java | 4 + .../teku/spec/config/SpecConfigFulu.java | 63 +++ .../teku/spec/config/SpecConfigFuluImpl.java | 208 +++++++++ .../teku/spec/config/SpecConfigLoader.java | 2 +- .../teku/spec/config/SpecConfigReader.java | 11 + .../teku/spec/config/builder/FuluBuilder.java | 210 +++++++++ .../config/builder/SpecConfigBuilder.java | 14 +- .../logic/common/helpers/MiscHelpers.java | 5 + .../logic/versions/fulu/SpecLogicFulu.java | 219 +++++++++ .../fulu/forktransition/FuluStateUpgrade.java | 47 ++ .../fulu/helpers/MiscHelpersFulu.java | 64 +++ .../spec/schemas/SchemaDefinitionCache.java | 5 +- .../teku/spec/schemas/SchemaDefinitions.java | 5 + .../spec/schemas/SchemaDefinitionsFulu.java | 40 ++ .../teku/spec/config/configs/holesky.yaml | 17 +- .../teku/spec/config/configs/hoodi.yaml | 4 + .../teku/spec/config/configs/less-swift.yaml | 3 + .../teku/spec/config/configs/mainnet.yaml | 17 +- .../teku/spec/config/configs/minimal.yaml | 17 +- .../teku/spec/config/configs/swift.yaml | 17 +- .../spec/config/presets/mainnet/fulu.yaml | 10 + .../spec/config/presets/minimal/fulu.yaml | 10 + .../teku/spec/config/presets/swift/fulu.yaml | 10 + .../pegasys/teku/spec/SpecMilestoneTest.java | 202 +++++---- .../pegasys/teku/spec/SpecVersionTest.java | 8 + .../spec/config/SpecConfigBuilderTest.java | 4 +- .../teku/spec/config/SpecConfigFuluTest.java | 138 ++++++ .../logic/StateUpgradeTransitionTest.java | 9 +- .../pegasys/teku/spec/TestSpecContext.java | 2 + .../pegasys/teku/spec/TestSpecFactory.java | 137 ++++-- .../TestSpecInvocationContextProvider.java | 13 +- .../teku/spec/util/DataStructureUtil.java | 2 +- .../forkchoice/ProposersDataManagerTest.java | 1 + .../json/types/EnumHeaderTypeDefinition.java | 28 +- .../types/EnumHeaderTypeDefinitionTest.java | 39 +- .../AbstractRpcMethodIntegrationTest.java | 12 +- .../eth2/GetMetadataIntegrationTest.java | 2 +- .../eth2/Eth2P2PNetworkBuilder.java | 21 + .../versions/GossipForkSubscriptionsFulu.java | 79 ++++ .../topics/Eth2GossipTopicFilterTest.java | 1 + ...arsByRangeListenerValidatingProxyTest.java | 1 + ...BlobSidecarsByRangeMessageHandlerTest.java | 1 + ...carsByRootListenerValidatingProxyTest.java | 1 + .../BlobSidecarsByRootMessageHandlerTest.java | 1 + .../BlobSidecarsByRootValidatorTest.java | 1 + .../eth2/Eth2P2PNetworkFactory.java | 21 + .../teku/cli/options/Eth2NetworkOptions.java | 11 + .../handlers/ProduceBlockRequestTest.java | 4 +- .../newBlindedBlockFULU.json | 391 ++++++++++++++++ .../newBlockContentsFULU.json | 421 ++++++++++++++++++ 65 files changed, 2774 insertions(+), 188 deletions(-) create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/DelegatingSpecConfigElectra.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/DelegatingSpecConfigFulu.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigFulu.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigFuluImpl.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/FuluBuilder.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/SpecLogicFulu.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/forktransition/FuluStateUpgrade.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/helpers/MiscHelpersFulu.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java create mode 100644 ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/mainnet/fulu.yaml create mode 100644 ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/minimal/fulu.yaml create mode 100644 ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/swift/fulu.yaml create mode 100644 ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigFuluTest.java create mode 100644 networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/gossip/forks/versions/GossipForkSubscriptionsFulu.java create mode 100644 validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockFULU.json create mode 100644 validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlockContentsFULU.json diff --git a/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/MergedGenesisInteropModeAcceptanceTest.java b/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/MergedGenesisInteropModeAcceptanceTest.java index 2007f3a32e3..093b160d28a 100644 --- a/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/MergedGenesisInteropModeAcceptanceTest.java +++ b/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/MergedGenesisInteropModeAcceptanceTest.java @@ -75,28 +75,22 @@ private static TekuNodeConfigBuilder createTekuNodeBuilderForMilestone( .withInteropNumberOfValidators(64) .withValidatorProposerDefaultFeeRecipient("0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73"); - switch (specMilestone) { - // We do not need to consider PHASE0, ALTAIR or BELLATRIX as they are all pre-Merge - // milestones - case CAPELLA: - tekuNodeConfigBuilder.withCapellaEpoch(UInt64.ZERO); - break; - case DENEB: - tekuNodeConfigBuilder.withCapellaEpoch(UInt64.ZERO); - tekuNodeConfigBuilder.withDenebEpoch(UInt64.ZERO); - break; - case ELECTRA: - tekuNodeConfigBuilder.withCapellaEpoch(UInt64.ZERO); - tekuNodeConfigBuilder.withDenebEpoch(UInt64.ZERO); - tekuNodeConfigBuilder.withElectraEpoch(UInt64.ZERO); - break; - default: - // Test will reach this whenever a new milestone is added and isn't mapped on the switch. - // This is a way to force us to always remember to validate that a new milestone can start - // from a merged - // state. - fail("Milestone %s not used on merged genesis interop test", specMilestone); + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.CAPELLA)) { + tekuNodeConfigBuilder.withCapellaEpoch(UInt64.ZERO); + } + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.DENEB)) { + tekuNodeConfigBuilder.withDenebEpoch(UInt64.ZERO); + } + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.ELECTRA)) { + tekuNodeConfigBuilder.withElectraEpoch(UInt64.ZERO); } + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.FULU)) { + tekuNodeConfigBuilder.withFuluEpoch(UInt64.ZERO); + } + if (specMilestone.isGreaterThan(SpecMilestone.FULU)) { + fail("Milestone %s not used on merged genesis interop test", specMilestone); + } + return tekuNodeConfigBuilder; } } diff --git a/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNodeConfigBuilder.java b/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNodeConfigBuilder.java index 89aa22bd3eb..e21ecdd8856 100644 --- a/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNodeConfigBuilder.java +++ b/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNodeConfigBuilder.java @@ -173,6 +173,18 @@ public TekuNodeConfigBuilder withElectraEpoch(final UInt64 electraForkEpoch) { return this; } + public TekuNodeConfigBuilder withFuluEpoch(final UInt64 fuluForkEpoch) { + mustBe(NodeType.BEACON_NODE); + LOG.debug("Xnetwork-fulu-fork-epoch={}", fuluForkEpoch); + configMap.put("Xnetwork-fulu-fork-epoch", fuluForkEpoch.toString()); + specConfigModifier = + specConfigModifier.andThen( + specConfigBuilder -> + specConfigBuilder.fuluBuilder( + fuluBuilder -> fuluBuilder.fuluForkEpoch(fuluForkEpoch))); + return this; + } + public TekuNodeConfigBuilder withTrustedSetupFromClasspath(final String trustedSetup) throws Exception { mustBe(NodeType.BEACON_NODE); diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java index ae150f77fa1..9b0564aee81 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java @@ -28,6 +28,7 @@ import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; import static tech.pegasys.teku.spec.SpecMilestone.BELLATRIX; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; +import static tech.pegasys.teku.spec.SpecMilestone.FULU; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.io.Resources; @@ -55,7 +56,9 @@ import tech.pegasys.teku.spec.datastructures.metadata.BlockContainerAndMetaData; import tech.pegasys.teku.spec.util.DataStructureUtil; -@TestSpecContext(allMilestones = true) +@TestSpecContext( + allMilestones = true, + ignoredMilestones = FULU) // TODO-fulu eventually we remove this ignore public class GetNewBlockV3IntegrationTest extends AbstractDataBackedRestAPIIntegrationTest { private DataStructureUtil dataStructureUtil; diff --git a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/config/mainnetConfig.json b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/config/mainnetConfig.json index 24f5a076229..c64fb39aebe 100644 --- a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/config/mainnetConfig.json +++ b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/config/mainnetConfig.json @@ -144,5 +144,20 @@ "DOMAIN_AGGREGATE_AND_PROOF" : "0x06000000", "CHURN_LIMIT_QUOTIENT" : "65536", "BLS_WITHDRAWAL_PREFIX" : "0x00", -"MIN_ACTIVATION_BALANCE" : "32000000000" +"MIN_ACTIVATION_BALANCE" : "32000000000", +"FIELD_ELEMENTS_PER_EXT_BLOB":"8192", +"FIELD_ELEMENTS_PER_CELL":"64", +"KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH":"4", +"MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS":"4096", +"MAX_BLOBS_PER_BLOCK_FULU":"12", +"FULU_FORK_EPOCH":"18446744073709551615", +"FULU_FORK_VERSION":"0x06000000", +"NUMBER_OF_COLUMNS":"128", +"NUMBER_OF_CUSTODY_GROUPS":"128", +"DATA_COLUMN_SIDECAR_SUBNET_COUNT":"128", +"MAX_REQUEST_DATA_COLUMN_SIDECARS":"16384", +"SAMPLES_PER_SLOT":"8", +"CUSTODY_REQUIREMENT":"4", +"VALIDATOR_CUSTODY_REQUIREMENT":"8", +"BALANCE_PER_ADDITIONAL_CUSTODY_GROUP":"32000000000" } \ No newline at end of file diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/SchemaObjectProvider.java b/data/provider/src/main/java/tech/pegasys/teku/api/SchemaObjectProvider.java index 3a52d31589b..414e186caaa 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/SchemaObjectProvider.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/SchemaObjectProvider.java @@ -98,7 +98,7 @@ public BeaconBlock getBlindedBlock( block.getParentRoot(), block.getStateRoot(), getBlindedBlockBodyDeneb(block.getBody())); - case ELECTRA -> + case ELECTRA, FULU -> new BlindedBlockElectra( block.getSlot(), block.getProposerIndex(), @@ -147,7 +147,7 @@ public BeaconBlock getBeaconBlock( block.getParentRoot(), block.getStateRoot(), getBeaconBlockBodyDeneb(block.getBody())); - case ELECTRA -> + case ELECTRA, FULU -> new BeaconBlockElectra( block.getSlot(), block.getProposerIndex(), diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Version.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Version.java index 18f1324edd5..a23d273a2b5 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Version.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Version.java @@ -22,7 +22,8 @@ public enum Version { bellatrix, capella, deneb, - electra; + electra, + fulu; public static Version fromMilestone(final SpecMilestone milestone) { return switch (milestone) { @@ -32,6 +33,7 @@ public static Version fromMilestone(final SpecMilestone milestone) { case CAPELLA -> capella; case DENEB -> deneb; case ELECTRA -> electra; + case FULU -> fulu; }; } } diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BeaconStateTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BeaconStateTest.java index ed72de4e19b..aa4206c5902 100644 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BeaconStateTest.java +++ b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BeaconStateTest.java @@ -41,7 +41,7 @@ public void shouldConvertToInternalObject(final SpecContext ctx) { case BELLATRIX -> new BeaconStateBellatrix(beaconStateInternal); case CAPELLA -> new BeaconStateCapella(beaconStateInternal); case DENEB -> new BeaconStateDeneb(beaconStateInternal); - case ELECTRA -> new BeaconStateElectra(beaconStateInternal); + case ELECTRA, FULU -> new BeaconStateElectra(beaconStateInternal); }; assertThat(beaconState.asInternalBeaconState(spec)).isEqualTo(beaconStateInternal); diff --git a/ethereum/executionlayer/src/main/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolver.java b/ethereum/executionlayer/src/main/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolver.java index 86b7d89599a..a301d81615f 100644 --- a/ethereum/executionlayer/src/main/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolver.java +++ b/ethereum/executionlayer/src/main/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolver.java @@ -76,6 +76,9 @@ public MilestoneBasedEngineJsonRpcMethodsResolver( case ELECTRA: methodsByMilestone.put(milestone, electraSupportedMethods()); break; + case FULU: + methodsByMilestone.put(milestone, fuluSupportedMethods()); + break; } }); } @@ -120,6 +123,16 @@ private Map> electraSupportedMethods() { return methods; } + private Map> fuluSupportedMethods() { + final Map> methods = new HashMap<>(); + + methods.put(ENGINE_NEW_PAYLOAD, new EngineNewPayloadV4(executionEngineClient)); + methods.put(ENGINE_GET_PAYLOAD, new EngineGetPayloadV4(executionEngineClient, spec)); + methods.put(ENGINE_FORK_CHOICE_UPDATED, new EngineForkChoiceUpdatedV3(executionEngineClient)); + + return methods; + } + @Override @SuppressWarnings({"unchecked", "unused"}) public EngineJsonRpcMethod getMethod( diff --git a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolverTest.java b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolverTest.java index 58eefb1c7bb..198d6d6430c 100644 --- a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolverTest.java +++ b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolverTest.java @@ -200,6 +200,28 @@ private static Stream electraMethods() { arguments(ENGINE_FORK_CHOICE_UPDATED, EngineForkChoiceUpdatedV3.class)); } + @ParameterizedTest + @MethodSource("fuluMethods") + void shouldProvideExpectedMethodsForFulu( + final EngineApiMethod method, final Class> expectedMethodClass) { + final Spec electraSpec = TestSpecFactory.createMinimalFulu(); + + final MilestoneBasedEngineJsonRpcMethodsResolver engineMethodsResolver = + new MilestoneBasedEngineJsonRpcMethodsResolver(electraSpec, executionEngineClient); + + final EngineJsonRpcMethod providedMethod = + engineMethodsResolver.getMethod(method, () -> SpecMilestone.FULU, Object.class); + + assertThat(providedMethod).isExactlyInstanceOf(expectedMethodClass); + } + + private static Stream fuluMethods() { + return Stream.of( + arguments(ENGINE_NEW_PAYLOAD, EngineNewPayloadV4.class), + arguments(ENGINE_GET_PAYLOAD, EngineGetPayloadV4.class), + arguments(ENGINE_FORK_CHOICE_UPDATED, EngineForkChoiceUpdatedV3.class)); + } + @Test void getsCapabilities() { final Spec spec = diff --git a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java index 9c6901fa738..dbcb61af7bf 100644 --- a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java +++ b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java @@ -95,7 +95,9 @@ public class EthereumTypes { public static final StringValueTypeDefinition MILESTONE_TYPE = new EnumTypeDefinition<>( - SpecMilestone.class, milestone -> milestone.name().toLowerCase(Locale.ROOT), Set.of()); + SpecMilestone.class, + milestone -> milestone.name().toLowerCase(Locale.ROOT), + Set.of(SpecMilestone.FULU)); // TODO-fulu eventually we remove this ignore public static final EnumHeaderTypeDefinition ETH_CONSENSUS_HEADER_TYPE = new EnumHeaderTypeDefinition.EnumTypeHeaderDefinitionBuilder<>( @@ -105,6 +107,8 @@ public class EthereumTypes { .description( "Required in response so client can deserialize returned json or ssz data more effectively.") .example("phase0") + .excludedEnumerations( + Set.of(SpecMilestone.FULU)) // TODO-fulu eventually we remove this ignore .build(); public static final BooleanHeaderTypeDefinition ETH_HEADER_EXECUTION_PAYLOAD_BLINDED_TYPE = diff --git a/ethereum/networks/src/main/java/tech/pegasys/teku/networks/Eth2NetworkConfiguration.java b/ethereum/networks/src/main/java/tech/pegasys/teku/networks/Eth2NetworkConfiguration.java index 81c416fe4f1..c2e4112bb1f 100644 --- a/ethereum/networks/src/main/java/tech/pegasys/teku/networks/Eth2NetworkConfiguration.java +++ b/ethereum/networks/src/main/java/tech/pegasys/teku/networks/Eth2NetworkConfiguration.java @@ -389,6 +389,7 @@ public static class Builder { private Optional capellaForkEpoch = Optional.empty(); private Optional denebForkEpoch = Optional.empty(); private Optional electraForkEpoch = Optional.empty(); + private Optional fuluForkEpoch = Optional.empty(); private Optional terminalBlockHashOverride = Optional.empty(); private Optional totalTerminalDifficultyOverride = Optional.empty(); private Optional terminalBlockHashEpochOverride = Optional.empty(); @@ -452,6 +453,8 @@ public Eth2NetworkConfiguration build() { builder.electraBuilder( electraBuilder -> electraForkEpoch.ifPresent(electraBuilder::electraForkEpoch)); + builder.fuluBuilder( + fuluBuilder -> fuluForkEpoch.ifPresent(fuluBuilder::fuluForkEpoch)); }); } if (spec.getForkSchedule().getSupportedMilestones().contains(SpecMilestone.DENEB) @@ -699,6 +702,11 @@ public Builder electraForkEpoch(final UInt64 electraForkEpoch) { return this; } + public Builder fuluForkEpoch(final UInt64 fuluForkEpoch) { + this.fuluForkEpoch = Optional.of(fuluForkEpoch); + return this; + } + public Builder safeSlotsToImportOptimistically(final int safeSlotsToImportOptimistically) { if (safeSlotsToImportOptimistically < 0) { throw new InvalidConfigurationException( diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecMilestone.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecMilestone.java index c9408a066b5..fd799579961 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecMilestone.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecMilestone.java @@ -28,6 +28,7 @@ import tech.pegasys.teku.spec.config.SpecConfigCapella; import tech.pegasys.teku.spec.config.SpecConfigDeneb; import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.config.SpecConfigFulu; public enum SpecMilestone { PHASE0, @@ -35,7 +36,8 @@ public enum SpecMilestone { BELLATRIX, CAPELLA, DENEB, - ELECTRA; + ELECTRA, + FULU; /** * Returns true if this milestone is at or after the supplied milestone ({@code other}) @@ -135,6 +137,7 @@ static Optional getForkVersion( case CAPELLA -> specConfig.toVersionCapella().map(SpecConfigCapella::getCapellaForkVersion); case DENEB -> specConfig.toVersionDeneb().map(SpecConfigDeneb::getDenebForkVersion); case ELECTRA -> specConfig.toVersionElectra().map(SpecConfigElectra::getElectraForkVersion); + case FULU -> specConfig.toVersionFulu().map(SpecConfigFulu::getFuluForkVersion); }; } @@ -150,6 +153,7 @@ static Optional getForkEpoch(final SpecConfig specConfig, final SpecMile case CAPELLA -> specConfig.toVersionCapella().map(SpecConfigCapella::getCapellaForkEpoch); case DENEB -> specConfig.toVersionDeneb().map(SpecConfigDeneb::getDenebForkEpoch); case ELECTRA -> specConfig.toVersionElectra().map(SpecConfigElectra::getElectraForkEpoch); + case FULU -> specConfig.toVersionFulu().map(SpecConfigFulu::getFuluForkEpoch); }; } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecVersion.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecVersion.java index c903347c358..4b653b88024 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecVersion.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecVersion.java @@ -22,6 +22,7 @@ import tech.pegasys.teku.spec.config.SpecConfigCapella; import tech.pegasys.teku.spec.config.SpecConfigDeneb; import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.config.SpecConfigFulu; import tech.pegasys.teku.spec.logic.DelegatingSpecLogic; import tech.pegasys.teku.spec.logic.SpecLogic; import tech.pegasys.teku.spec.logic.versions.altair.SpecLogicAltair; @@ -29,6 +30,7 @@ import tech.pegasys.teku.spec.logic.versions.capella.SpecLogicCapella; import tech.pegasys.teku.spec.logic.versions.deneb.SpecLogicDeneb; import tech.pegasys.teku.spec.logic.versions.electra.SpecLogicElectra; +import tech.pegasys.teku.spec.logic.versions.fulu.SpecLogicFulu; import tech.pegasys.teku.spec.logic.versions.phase0.SpecLogicPhase0; import tech.pegasys.teku.spec.schemas.SchemaDefinitions; import tech.pegasys.teku.spec.schemas.SchemaDefinitionsAltair; @@ -36,6 +38,7 @@ import tech.pegasys.teku.spec.schemas.SchemaDefinitionsCapella; import tech.pegasys.teku.spec.schemas.SchemaDefinitionsDeneb; import tech.pegasys.teku.spec.schemas.SchemaDefinitionsElectra; +import tech.pegasys.teku.spec.schemas.SchemaDefinitionsFulu; import tech.pegasys.teku.spec.schemas.SchemaDefinitionsPhase0; import tech.pegasys.teku.spec.schemas.registry.SchemaRegistry; import tech.pegasys.teku.spec.schemas.registry.SchemaRegistryBuilder; @@ -85,6 +88,10 @@ public static Optional create( specConfig .toVersionElectra() .map(specConfigElectra -> createElectra(specConfigElectra, schemaRegistryBuilder)); + case FULU -> + specConfig + .toVersionFulu() + .map(specConfigFulu -> createFulu(specConfigFulu, schemaRegistryBuilder)); }; } @@ -149,6 +156,16 @@ static SpecVersion createElectra( return new SpecVersion(SpecMilestone.ELECTRA, specConfig, schemaDefinitions, specLogic); } + static SpecVersion createFulu( + final SpecConfigFulu specConfig, final SchemaRegistryBuilder schemaRegistryBuilder) { + final SchemaRegistry schemaRegistry = + schemaRegistryBuilder.build(SpecMilestone.FULU, specConfig); + final SchemaDefinitionsFulu schemaDefinitions = new SchemaDefinitionsFulu(schemaRegistry); + final SpecLogicFulu specLogic = + SpecLogicFulu.create(specConfig, schemaDefinitions, SYSTEM_TIME_PROVIDER); + return new SpecVersion(SpecMilestone.FULU, specConfig, schemaDefinitions, specLogic); + } + public SpecMilestone getMilestone() { return milestone; } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/DelegatingSpecConfigElectra.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/DelegatingSpecConfigElectra.java new file mode 100644 index 00000000000..c7e81bbfa1d --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/DelegatingSpecConfigElectra.java @@ -0,0 +1,136 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.config; + +import java.util.Objects; +import java.util.Optional; +import tech.pegasys.teku.infrastructure.bytes.Bytes4; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; + +public class DelegatingSpecConfigElectra extends DelegatingSpecConfigDeneb + implements SpecConfigElectra { + private final SpecConfigElectra specConfigElectra; + + public DelegatingSpecConfigElectra(final SpecConfigElectra specConfig) { + super(specConfig); + this.specConfigElectra = SpecConfigElectra.required(specConfig); + } + + @Override + public Optional toVersionElectra() { + return Optional.of(this); + } + + @Override + public Bytes4 getElectraForkVersion() { + return specConfigElectra.getElectraForkVersion(); + } + + @Override + public UInt64 getElectraForkEpoch() { + return specConfigElectra.getElectraForkEpoch(); + } + + @Override + public UInt64 getMinPerEpochChurnLimitElectra() { + return specConfigElectra.getMinPerEpochChurnLimitElectra(); + } + + @Override + public UInt64 getMinActivationBalance() { + return specConfigElectra.getMinActivationBalance(); + } + + @Override + public UInt64 getMaxEffectiveBalanceElectra() { + return specConfigElectra.getMaxEffectiveBalanceElectra(); + } + + @Override + public int getPendingDepositsLimit() { + return specConfigElectra.getPendingDepositsLimit(); + } + + @Override + public int getPendingPartialWithdrawalsLimit() { + return specConfigElectra.getPendingPartialWithdrawalsLimit(); + } + + @Override + public int getPendingConsolidationsLimit() { + return specConfigElectra.getPendingConsolidationsLimit(); + } + + @Override + public int getMinSlashingPenaltyQuotientElectra() { + return specConfigElectra.getMinSlashingPenaltyQuotientElectra(); + } + + @Override + public int getWhistleblowerRewardQuotientElectra() { + return specConfigElectra.getWhistleblowerRewardQuotientElectra(); + } + + @Override + public int getMaxAttesterSlashingsElectra() { + return specConfigElectra.getMaxAttesterSlashingsElectra(); + } + + @Override + public int getMaxAttestationsElectra() { + return specConfigElectra.getMaxAttestationsElectra(); + } + + @Override + public int getMaxConsolidationRequestsPerPayload() { + return specConfigElectra.getMaxConsolidationRequestsPerPayload(); + } + + @Override + public int getMaxDepositRequestsPerPayload() { + return specConfigElectra.getMaxDepositRequestsPerPayload(); + } + + @Override + public int getMaxWithdrawalRequestsPerPayload() { + return specConfigElectra.getMaxWithdrawalRequestsPerPayload(); + } + + @Override + public int getMaxPendingPartialsPerWithdrawalsSweep() { + return specConfigElectra.getMaxPendingPartialsPerWithdrawalsSweep(); + } + + @Override + public int getMaxPendingDepositsPerEpoch() { + return specConfigElectra.getMaxPendingDepositsPerEpoch(); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final DelegatingSpecConfigElectra that = (DelegatingSpecConfigElectra) o; + return Objects.equals(specConfigElectra, that.specConfigElectra); + } + + @Override + public int hashCode() { + return Objects.hash(specConfigElectra); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/DelegatingSpecConfigFulu.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/DelegatingSpecConfigFulu.java new file mode 100644 index 00000000000..f00052b96f7 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/DelegatingSpecConfigFulu.java @@ -0,0 +1,121 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.config; + +import java.util.Objects; +import java.util.Optional; +import tech.pegasys.teku.infrastructure.bytes.Bytes4; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; + +public class DelegatingSpecConfigFulu extends DelegatingSpecConfigElectra + implements SpecConfigFulu { + private final SpecConfigFulu delegate; + + public DelegatingSpecConfigFulu(final SpecConfigFulu specConfig) { + super(specConfig); + this.delegate = SpecConfigFulu.required(specConfig); + } + + @Override + public Optional toVersionFulu() { + return Optional.of(this); + } + + @Override + public Bytes4 getFuluForkVersion() { + return delegate.getFuluForkVersion(); + } + + @Override + public UInt64 getFuluForkEpoch() { + return delegate.getFuluForkEpoch(); + } + + @Override + public UInt64 getFieldElementsPerCell() { + return delegate.getFieldElementsPerCell(); + } + + @Override + public UInt64 getFieldElementsPerExtBlob() { + return delegate.getFieldElementsPerExtBlob(); + } + + @Override + public UInt64 getKzgCommitmentsInclusionProofDepth() { + return delegate.getKzgCommitmentsInclusionProofDepth(); + } + + @Override + public int getNumberOfColumns() { + return delegate.getNumberOfColumns(); + } + + @Override + public int getNumberOfCustodyGroups() { + return delegate.getNumberOfCustodyGroups(); + } + + @Override + public int getDataColumnSidecarSubnetCount() { + return delegate.getDataColumnSidecarSubnetCount(); + } + + @Override + public int getCustodyRequirement() { + return delegate.getCustodyRequirement(); + } + + @Override + public int getValidatorCustodyRequirement() { + return delegate.getValidatorCustodyRequirement(); + } + + @Override + public int getSamplesPerSlot() { + return delegate.getSamplesPerSlot(); + } + + @Override + public int getMinEpochsForDataColumnSidecarsRequests() { + return delegate.getMinEpochsForDataColumnSidecarsRequests(); + } + + @Override + public int getMaxRequestDataColumnSidecars() { + return delegate.getMaxRequestDataColumnSidecars(); + } + + @Override + public UInt64 getBalancePerAdditionalCustodyGroup() { + return delegate.getBalancePerAdditionalCustodyGroup(); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final DelegatingSpecConfigFulu that = (DelegatingSpecConfigFulu) o; + return Objects.equals(delegate, that.delegate); + } + + @Override + public int hashCode() { + return Objects.hash(delegate); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfig.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfig.java index eea00241ae5..3bfe8371027 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfig.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfig.java @@ -190,5 +190,9 @@ default Optional toVersionElectra() { return Optional.empty(); } + default Optional toVersionFulu() { + return Optional.empty(); + } + SpecMilestone getMilestone(); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigFulu.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigFulu.java new file mode 100644 index 00000000000..e4e271cb8c8 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigFulu.java @@ -0,0 +1,63 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.config; + +import java.util.Optional; +import tech.pegasys.teku.infrastructure.bytes.Bytes4; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; + +public interface SpecConfigFulu extends SpecConfigElectra { + + static SpecConfigFulu required(final SpecConfig specConfig) { + return specConfig + .toVersionFulu() + .orElseThrow( + () -> + new IllegalArgumentException( + "Expected Fulu spec config but got: " + specConfig.getClass().getSimpleName())); + } + + Bytes4 getFuluForkVersion(); + + UInt64 getFuluForkEpoch(); + + UInt64 getFieldElementsPerCell(); + + UInt64 getFieldElementsPerExtBlob(); + + /** DataColumnSidecar's */ + UInt64 getKzgCommitmentsInclusionProofDepth(); + + int getNumberOfColumns(); + + int getNumberOfCustodyGroups(); + + // networking + int getDataColumnSidecarSubnetCount(); + + int getCustodyRequirement(); + + int getValidatorCustodyRequirement(); + + int getSamplesPerSlot(); + + int getMinEpochsForDataColumnSidecarsRequests(); + + int getMaxRequestDataColumnSidecars(); + + UInt64 getBalancePerAdditionalCustodyGroup(); + + @Override + Optional toVersionFulu(); +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigFuluImpl.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigFuluImpl.java new file mode 100644 index 00000000000..e434136628e --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigFuluImpl.java @@ -0,0 +1,208 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.config; + +import java.util.Objects; +import java.util.Optional; +import tech.pegasys.teku.infrastructure.bytes.Bytes4; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.SpecMilestone; + +public class SpecConfigFuluImpl extends DelegatingSpecConfigElectra implements SpecConfigFulu { + + private final Bytes4 fuluForkVersion; + private final UInt64 fuluForkEpoch; + + private final int numberOfColumns; + private final int numberOfCustodyGroups; + private final int dataColumnSidecarSubnetCount; + private final int custodyRequirement; + private final int validatorCustodyRequirement; + private final int samplesPerSlot; + private final UInt64 fieldElementsPerCell; + private final UInt64 fieldElementsPerExtBlob; + private final UInt64 kzgCommitmentsInclusionProofDepth; + private final int minEpochsForDataColumnSidecarsRequests; + private final int maxRequestDataColumnSidecars; + private final int maxBlobsPerBlockFulu; + private final UInt64 balancePerAdditionalCustodyGroup; + + public SpecConfigFuluImpl( + final SpecConfigElectra specConfig, + final Bytes4 fuluForkVersion, + final UInt64 fuluForkEpoch, + final UInt64 fieldElementsPerCell, + final UInt64 fieldElementsPerExtBlob, + final UInt64 kzgCommitmentsInclusionProofDepth, + final int numberOfColumns, + final int numberOfCustodyGroups, + final int dataColumnSidecarSubnetCount, + final int custodyRequirement, + final int validatorCustodyRequirement, + final int samplesPerSlot, + final int minEpochsForDataColumnSidecarsRequests, + final int maxRequestDataColumnSidecars, + final int maxBlobsPerBlockFulu, + final UInt64 balancePerAdditionalCustodyGroup) { + super(specConfig); + this.fuluForkVersion = fuluForkVersion; + this.fuluForkEpoch = fuluForkEpoch; + this.fieldElementsPerCell = fieldElementsPerCell; + this.fieldElementsPerExtBlob = fieldElementsPerExtBlob; + this.kzgCommitmentsInclusionProofDepth = kzgCommitmentsInclusionProofDepth; + this.numberOfColumns = numberOfColumns; + this.numberOfCustodyGroups = numberOfCustodyGroups; + this.dataColumnSidecarSubnetCount = dataColumnSidecarSubnetCount; + this.custodyRequirement = custodyRequirement; + this.validatorCustodyRequirement = validatorCustodyRequirement; + this.samplesPerSlot = samplesPerSlot; + this.minEpochsForDataColumnSidecarsRequests = minEpochsForDataColumnSidecarsRequests; + this.maxRequestDataColumnSidecars = maxRequestDataColumnSidecars; + this.maxBlobsPerBlockFulu = maxBlobsPerBlockFulu; + this.balancePerAdditionalCustodyGroup = balancePerAdditionalCustodyGroup; + } + + @Override + public Bytes4 getFuluForkVersion() { + return fuluForkVersion; + } + + @Override + public UInt64 getFuluForkEpoch() { + return fuluForkEpoch; + } + + @Override + public UInt64 getFieldElementsPerCell() { + return fieldElementsPerCell; + } + + @Override + public UInt64 getFieldElementsPerExtBlob() { + return fieldElementsPerExtBlob; + } + + @Override + public UInt64 getKzgCommitmentsInclusionProofDepth() { + return kzgCommitmentsInclusionProofDepth; + } + + @Override + public int getNumberOfColumns() { + return numberOfColumns; + } + + @Override + public int getNumberOfCustodyGroups() { + return numberOfCustodyGroups; + } + + @Override + public int getDataColumnSidecarSubnetCount() { + return dataColumnSidecarSubnetCount; + } + + @Override + public int getCustodyRequirement() { + return custodyRequirement; + } + + @Override + public int getValidatorCustodyRequirement() { + return validatorCustodyRequirement; + } + + @Override + public int getSamplesPerSlot() { + return samplesPerSlot; + } + + @Override + public int getMinEpochsForDataColumnSidecarsRequests() { + return minEpochsForDataColumnSidecarsRequests; + } + + @Override + public int getMaxRequestDataColumnSidecars() { + return maxRequestDataColumnSidecars; + } + + @Override + public int getMaxBlobsPerBlock() { + return maxBlobsPerBlockFulu; + } + + @Override + public SpecMilestone getMilestone() { + return SpecMilestone.FULU; + } + + @Override + public UInt64 getBalancePerAdditionalCustodyGroup() { + return balancePerAdditionalCustodyGroup; + } + + @Override + public Optional toVersionFulu() { + return Optional.of(this); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final SpecConfigFuluImpl that = (SpecConfigFuluImpl) o; + return Objects.equals(specConfig, that.specConfig) + && Objects.equals(fuluForkVersion, that.fuluForkVersion) + && Objects.equals(fuluForkEpoch, that.fuluForkEpoch) + && Objects.equals(fieldElementsPerCell, that.fieldElementsPerCell) + && Objects.equals(fieldElementsPerExtBlob, that.fieldElementsPerExtBlob) + && Objects.equals(kzgCommitmentsInclusionProofDepth, that.kzgCommitmentsInclusionProofDepth) + && Objects.equals(balancePerAdditionalCustodyGroup, that.balancePerAdditionalCustodyGroup) + && numberOfColumns == that.numberOfColumns + && numberOfCustodyGroups == that.numberOfCustodyGroups + && dataColumnSidecarSubnetCount == that.dataColumnSidecarSubnetCount + && custodyRequirement == that.custodyRequirement + && minEpochsForDataColumnSidecarsRequests == that.minEpochsForDataColumnSidecarsRequests + && maxRequestDataColumnSidecars == that.maxRequestDataColumnSidecars + && maxBlobsPerBlockFulu == that.maxBlobsPerBlockFulu + && validatorCustodyRequirement == that.validatorCustodyRequirement + && samplesPerSlot == that.samplesPerSlot; + } + + @Override + public int hashCode() { + return Objects.hash( + specConfig, + fuluForkVersion, + fuluForkEpoch, + numberOfColumns, + numberOfCustodyGroups, + dataColumnSidecarSubnetCount, + custodyRequirement, + fieldElementsPerCell, + fieldElementsPerExtBlob, + kzgCommitmentsInclusionProofDepth, + minEpochsForDataColumnSidecarsRequests, + maxRequestDataColumnSidecars, + maxBlobsPerBlockFulu, + validatorCustodyRequirement, + samplesPerSlot, + balancePerAdditionalCustodyGroup); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigLoader.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigLoader.java index 7cd3407afe9..2ad83a6ce88 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigLoader.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigLoader.java @@ -32,7 +32,7 @@ public class SpecConfigLoader { private static final Logger LOG = LogManager.getLogger(); private static final List AVAILABLE_PRESETS = - List.of("phase0", "altair", "bellatrix", "capella", "deneb", "electra"); + List.of("phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu"); private static final String CONFIG_PATH = "configs/"; private static final String PRESET_PATH = "presets/"; diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigReader.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigReader.java index 1831cb15c29..bfbe701b5db 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigReader.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigReader.java @@ -49,6 +49,7 @@ import tech.pegasys.teku.spec.config.builder.CapellaBuilder; import tech.pegasys.teku.spec.config.builder.DenebBuilder; import tech.pegasys.teku.spec.config.builder.ElectraBuilder; +import tech.pegasys.teku.spec.config.builder.FuluBuilder; import tech.pegasys.teku.spec.config.builder.SpecConfigBuilder; public class SpecConfigReader { @@ -209,6 +210,16 @@ public void loadFromMap( unprocessedConfig.remove(constantKey); }); + // Process fulu config + streamConfigSetters(FuluBuilder.class) + .forEach( + setter -> { + final String constantKey = camelToSnakeCase(setter.getName()); + final Object rawValue = unprocessedConfig.get(constantKey); + invokeSetter(setter, configBuilder::fuluBuilder, constantKey, rawValue); + unprocessedConfig.remove(constantKey); + }); + // Check any constants that have been configured and then ignore final Set configuredConstants = Sets.intersection(CONSTANT_KEYS, unprocessedConfig.keySet()); diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/FuluBuilder.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/FuluBuilder.java new file mode 100644 index 00000000000..490876d9208 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/FuluBuilder.java @@ -0,0 +1,210 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.config.builder; + +import static com.google.common.base.Preconditions.checkNotNull; +import static tech.pegasys.teku.spec.config.SpecConfig.FAR_FUTURE_EPOCH; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiConsumer; +import tech.pegasys.teku.infrastructure.bytes.Bytes4; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.config.SpecConfig; +import tech.pegasys.teku.spec.config.SpecConfigAndParent; +import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.config.SpecConfigFulu; +import tech.pegasys.teku.spec.config.SpecConfigFuluImpl; + +public class FuluBuilder implements ForkConfigBuilder { + + private Bytes4 fuluForkVersion; + private UInt64 fuluForkEpoch; + + private UInt64 fieldElementsPerCell; + private UInt64 fieldElementsPerExtBlob; + private UInt64 kzgCommitmentsInclusionProofDepth; + private Integer numberOfColumns; + private Integer numberOfCustodyGroups; + private Integer dataColumnSidecarSubnetCount; + private Integer custodyRequirement; + private Integer validatorCustodyRequirement; + private Integer samplesPerSlot; + private Integer minEpochsForDataColumnSidecarsRequests; + private Integer maxRequestDataColumnSidecars; + private Integer maxBlobsPerBlockFulu; + private UInt64 balancePerAdditionalCustodyGroup; + + FuluBuilder() {} + + @Override + public SpecConfigAndParent build( + final SpecConfigAndParent specConfigAndParent) { + return SpecConfigAndParent.of( + new SpecConfigFuluImpl( + specConfigAndParent.specConfig(), + fuluForkVersion, + fuluForkEpoch, + fieldElementsPerCell, + fieldElementsPerExtBlob, + kzgCommitmentsInclusionProofDepth, + numberOfColumns, + numberOfCustodyGroups, + dataColumnSidecarSubnetCount, + custodyRequirement, + validatorCustodyRequirement, + samplesPerSlot, + minEpochsForDataColumnSidecarsRequests, + maxRequestDataColumnSidecars, + maxBlobsPerBlockFulu, + balancePerAdditionalCustodyGroup), + specConfigAndParent); + } + + public FuluBuilder fuluForkEpoch(final UInt64 fuluForkEpoch) { + checkNotNull(fuluForkEpoch); + this.fuluForkEpoch = fuluForkEpoch; + return this; + } + + public FuluBuilder fuluForkVersion(final Bytes4 fuluForkVersion) { + checkNotNull(fuluForkVersion); + this.fuluForkVersion = fuluForkVersion; + return this; + } + + public FuluBuilder fieldElementsPerCell(final UInt64 fieldElementsPerCell) { + checkNotNull(fieldElementsPerCell); + this.fieldElementsPerCell = fieldElementsPerCell; + return this; + } + + public FuluBuilder fieldElementsPerExtBlob(final UInt64 fieldElementsPerExtBlob) { + checkNotNull(fieldElementsPerExtBlob); + this.fieldElementsPerExtBlob = fieldElementsPerExtBlob; + return this; + } + + public FuluBuilder kzgCommitmentsInclusionProofDepth( + final UInt64 kzgCommitmentsInclusionProofDepth) { + checkNotNull(kzgCommitmentsInclusionProofDepth); + this.kzgCommitmentsInclusionProofDepth = kzgCommitmentsInclusionProofDepth; + return this; + } + + public FuluBuilder numberOfColumns(final Integer numberOfColumns) { + checkNotNull(numberOfColumns); + this.numberOfColumns = numberOfColumns; + return this; + } + + public FuluBuilder numberOfCustodyGroups(final Integer numberOfCustodyGroups) { + checkNotNull(numberOfCustodyGroups); + this.numberOfCustodyGroups = numberOfCustodyGroups; + return this; + } + + public FuluBuilder dataColumnSidecarSubnetCount(final Integer dataColumnSidecarSubnetCount) { + checkNotNull(dataColumnSidecarSubnetCount); + this.dataColumnSidecarSubnetCount = dataColumnSidecarSubnetCount; + return this; + } + + public FuluBuilder custodyRequirement(final Integer custodyRequirement) { + checkNotNull(custodyRequirement); + this.custodyRequirement = custodyRequirement; + return this; + } + + public FuluBuilder validatorCustodyRequirement(final Integer validatorCustodyRequirement) { + checkNotNull(validatorCustodyRequirement); + this.validatorCustodyRequirement = validatorCustodyRequirement; + return this; + } + + public FuluBuilder samplesPerSlot(final Integer samplesPerSlot) { + checkNotNull(samplesPerSlot); + this.samplesPerSlot = samplesPerSlot; + return this; + } + + public FuluBuilder minEpochsForDataColumnSidecarsRequests( + final Integer minEpochsForDataColumnSidecarsRequests) { + checkNotNull(minEpochsForDataColumnSidecarsRequests); + this.minEpochsForDataColumnSidecarsRequests = minEpochsForDataColumnSidecarsRequests; + return this; + } + + public FuluBuilder maxRequestDataColumnSidecars(final Integer maxRequestDataColumnSidecars) { + checkNotNull(maxRequestDataColumnSidecars); + this.maxRequestDataColumnSidecars = maxRequestDataColumnSidecars; + return this; + } + + public FuluBuilder maxBlobsPerBlockFulu(final Integer maxBlobsPerBlockFulu) { + checkNotNull(maxBlobsPerBlockFulu); + this.maxBlobsPerBlockFulu = maxBlobsPerBlockFulu; + return this; + } + + public FuluBuilder balancePerAdditionalCustodyGroup( + final UInt64 balancePerAdditionalCustodyGroup) { + checkNotNull(balancePerAdditionalCustodyGroup); + this.balancePerAdditionalCustodyGroup = balancePerAdditionalCustodyGroup; + return this; + } + + @Override + public void validate() { + if (fuluForkEpoch == null) { + fuluForkEpoch = SpecConfig.FAR_FUTURE_EPOCH; + fuluForkVersion = SpecBuilderUtil.PLACEHOLDER_FORK_VERSION; + } + + // Fill default zeros if fork is unsupported + if (fuluForkEpoch.equals(FAR_FUTURE_EPOCH)) { + SpecBuilderUtil.fillMissingValuesWithZeros(this); + } + + validateConstants(); + } + + @Override + public Map getValidationMap() { + final Map constants = new HashMap<>(); + + constants.put("fuluForkEpoch", fuluForkEpoch); + constants.put("fuluForkVersion", fuluForkVersion); + constants.put("numberOfColumns", numberOfColumns); + constants.put("numberOfCustodyGroups", numberOfCustodyGroups); + constants.put("dataColumnSidecarSubnetCount", dataColumnSidecarSubnetCount); + constants.put("custodyRequirement", custodyRequirement); + constants.put("validatorCustodyRequirement", validatorCustodyRequirement); + constants.put("samplesPerSlot", samplesPerSlot); + constants.put("fieldElementsPerCell", fieldElementsPerCell); + constants.put("fieldElementsPerExtBlob", fieldElementsPerExtBlob); + constants.put("kzgCommitmentsInclusionProofDepth", kzgCommitmentsInclusionProofDepth); + constants.put("minEpochsForDataColumnSidecarsRequests", minEpochsForDataColumnSidecarsRequests); + constants.put("maxRequestDataColumnSidecars", maxRequestDataColumnSidecars); + constants.put("maxBlobsPerBlockFulu", maxBlobsPerBlockFulu); + constants.put("balancePerAdditionalCustodyGroup", balancePerAdditionalCustodyGroup); + + return constants; + } + + @Override + public void addOverridableItemsToRawConfig(final BiConsumer rawConfig) { + rawConfig.accept("FULU_FORK_EPOCH", fuluForkEpoch); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/SpecConfigBuilder.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/SpecConfigBuilder.java index aa77317929c..7a9f6bb6935 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/SpecConfigBuilder.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/SpecConfigBuilder.java @@ -29,7 +29,7 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.config.SpecConfig; import tech.pegasys.teku.spec.config.SpecConfigAndParent; -import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.config.SpecConfigFulu; import tech.pegasys.teku.spec.config.SpecConfigPhase0; @SuppressWarnings({"UnusedReturnValue", "unused"}) @@ -131,14 +131,15 @@ public class SpecConfigBuilder { private Integer reorgParentWeightThreshold = 160; private UInt64 maxPerEpochActivationExitChurnLimit = UInt64.valueOf(256000000000L); - private final BuilderChain builderChain = + private final BuilderChain builderChain = BuilderChain.create(new AltairBuilder()) .appendBuilder(new BellatrixBuilder()) .appendBuilder(new CapellaBuilder()) .appendBuilder(new DenebBuilder()) - .appendBuilder(new ElectraBuilder()); + .appendBuilder(new ElectraBuilder()) + .appendBuilder(new FuluBuilder()); - public SpecConfigAndParent build() { + public SpecConfigAndParent build() { builderChain.addOverridableItemsToRawConfig( (key, value) -> { if (value != null) { @@ -746,4 +747,9 @@ public SpecConfigBuilder electraBuilder(final Consumer consumer) builderChain.withBuilder(ElectraBuilder.class, consumer); return this; } + + public SpecConfigBuilder fuluBuilder(final Consumer consumer) { + builderChain.withBuilder(FuluBuilder.class, consumer); + return this; + } } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/common/helpers/MiscHelpers.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/common/helpers/MiscHelpers.java index 6f580b5a276..45b252d7b00 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/common/helpers/MiscHelpers.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/common/helpers/MiscHelpers.java @@ -56,6 +56,7 @@ import tech.pegasys.teku.spec.logic.versions.deneb.helpers.MiscHelpersDeneb; import tech.pegasys.teku.spec.logic.versions.deneb.types.VersionedHash; import tech.pegasys.teku.spec.logic.versions.electra.helpers.MiscHelpersElectra; +import tech.pegasys.teku.spec.logic.versions.fulu.helpers.MiscHelpersFulu; public class MiscHelpers { @@ -459,4 +460,8 @@ public Optional toVersionDeneb() { public Optional toVersionElectra() { return Optional.empty(); } + + public Optional toVersionFulu() { + return Optional.empty(); + } } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/SpecLogicFulu.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/SpecLogicFulu.java new file mode 100644 index 00000000000..337ecec24fa --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/SpecLogicFulu.java @@ -0,0 +1,219 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.logic.versions.fulu; + +import java.util.Optional; +import tech.pegasys.teku.infrastructure.time.TimeProvider; +import tech.pegasys.teku.spec.config.SpecConfigFulu; +import tech.pegasys.teku.spec.datastructures.execution.versions.electra.ExecutionRequestsDataCodec; +import tech.pegasys.teku.spec.logic.common.AbstractSpecLogic; +import tech.pegasys.teku.spec.logic.common.helpers.Predicates; +import tech.pegasys.teku.spec.logic.common.operations.OperationSignatureVerifier; +import tech.pegasys.teku.spec.logic.common.operations.validation.AttestationDataValidator; +import tech.pegasys.teku.spec.logic.common.operations.validation.OperationValidator; +import tech.pegasys.teku.spec.logic.common.util.AttestationUtil; +import tech.pegasys.teku.spec.logic.common.util.BeaconStateUtil; +import tech.pegasys.teku.spec.logic.common.util.BlindBlockUtil; +import tech.pegasys.teku.spec.logic.common.util.BlockProposalUtil; +import tech.pegasys.teku.spec.logic.common.util.ForkChoiceUtil; +import tech.pegasys.teku.spec.logic.common.util.LightClientUtil; +import tech.pegasys.teku.spec.logic.common.util.SyncCommitteeUtil; +import tech.pegasys.teku.spec.logic.common.util.ValidatorsUtil; +import tech.pegasys.teku.spec.logic.versions.altair.statetransition.epoch.ValidatorStatusFactoryAltair; +import tech.pegasys.teku.spec.logic.versions.bellatrix.helpers.BeaconStateMutatorsBellatrix; +import tech.pegasys.teku.spec.logic.versions.bellatrix.helpers.BellatrixTransitionHelpers; +import tech.pegasys.teku.spec.logic.versions.bellatrix.util.BlindBlockUtilBellatrix; +import tech.pegasys.teku.spec.logic.versions.capella.operations.validation.OperationValidatorCapella; +import tech.pegasys.teku.spec.logic.versions.deneb.helpers.MiscHelpersDeneb; +import tech.pegasys.teku.spec.logic.versions.deneb.util.ForkChoiceUtilDeneb; +import tech.pegasys.teku.spec.logic.versions.electra.block.BlockProcessorElectra; +import tech.pegasys.teku.spec.logic.versions.electra.helpers.BeaconStateAccessorsElectra; +import tech.pegasys.teku.spec.logic.versions.electra.helpers.BeaconStateMutatorsElectra; +import tech.pegasys.teku.spec.logic.versions.electra.helpers.PredicatesElectra; +import tech.pegasys.teku.spec.logic.versions.electra.operations.validation.AttestationDataValidatorElectra; +import tech.pegasys.teku.spec.logic.versions.electra.operations.validation.VoluntaryExitValidatorElectra; +import tech.pegasys.teku.spec.logic.versions.electra.statetransition.epoch.EpochProcessorElectra; +import tech.pegasys.teku.spec.logic.versions.electra.util.AttestationUtilElectra; +import tech.pegasys.teku.spec.logic.versions.fulu.forktransition.FuluStateUpgrade; +import tech.pegasys.teku.spec.logic.versions.fulu.helpers.MiscHelpersFulu; +import tech.pegasys.teku.spec.schemas.SchemaDefinitionsFulu; + +public class SpecLogicFulu extends AbstractSpecLogic { + private final Optional syncCommitteeUtil; + private final Optional lightClientUtil; + + private SpecLogicFulu( + final Predicates predicates, + final MiscHelpersDeneb miscHelpers, + final BeaconStateAccessorsElectra beaconStateAccessors, + final BeaconStateMutatorsBellatrix beaconStateMutators, + final OperationSignatureVerifier operationSignatureVerifier, + final ValidatorsUtil validatorsUtil, + final BeaconStateUtil beaconStateUtil, + final AttestationUtil attestationUtil, + final OperationValidator operationValidator, + final ValidatorStatusFactoryAltair validatorStatusFactory, + final EpochProcessorElectra epochProcessor, + final BlockProcessorElectra blockProcessor, + final ForkChoiceUtil forkChoiceUtil, + final BlockProposalUtil blockProposalUtil, + final BlindBlockUtil blindBlockUtil, + final SyncCommitteeUtil syncCommitteeUtil, + final LightClientUtil lightClientUtil, + final FuluStateUpgrade stateUpgrade) { + super( + predicates, + miscHelpers, + beaconStateAccessors, + beaconStateMutators, + operationSignatureVerifier, + validatorsUtil, + beaconStateUtil, + attestationUtil, + operationValidator, + validatorStatusFactory, + epochProcessor, + blockProcessor, + forkChoiceUtil, + blockProposalUtil, + Optional.of(blindBlockUtil), + Optional.of(stateUpgrade)); + this.syncCommitteeUtil = Optional.of(syncCommitteeUtil); + this.lightClientUtil = Optional.of(lightClientUtil); + } + + public static SpecLogicFulu create( + final SpecConfigFulu config, + final SchemaDefinitionsFulu schemaDefinitions, + final TimeProvider timeProvider) { + // Helpers + final PredicatesElectra predicates = new PredicatesElectra(config); + final MiscHelpersFulu miscHelpers = new MiscHelpersFulu(config, predicates, schemaDefinitions); + final BeaconStateAccessorsElectra beaconStateAccessors = + new BeaconStateAccessorsElectra(config, predicates, miscHelpers); + final BeaconStateMutatorsElectra beaconStateMutators = + new BeaconStateMutatorsElectra( + config, miscHelpers, beaconStateAccessors, schemaDefinitions); + + // Operation validation + final OperationSignatureVerifier operationSignatureVerifier = + new OperationSignatureVerifier(miscHelpers, beaconStateAccessors); + + // Util + final ValidatorsUtil validatorsUtil = + new ValidatorsUtil(config, miscHelpers, beaconStateAccessors); + final BeaconStateUtil beaconStateUtil = + new BeaconStateUtil( + config, schemaDefinitions, predicates, miscHelpers, beaconStateAccessors); + final AttestationUtil attestationUtil = + new AttestationUtilElectra(config, schemaDefinitions, beaconStateAccessors, miscHelpers); + final AttestationDataValidator attestationDataValidator = + new AttestationDataValidatorElectra(config, miscHelpers, beaconStateAccessors); + final VoluntaryExitValidatorElectra voluntaryExitValidatorElectra = + new VoluntaryExitValidatorElectra(config, predicates, beaconStateAccessors); + final OperationValidator operationValidator = + new OperationValidatorCapella( + predicates, + beaconStateAccessors, + attestationDataValidator, + attestationUtil, + voluntaryExitValidatorElectra); + final ValidatorStatusFactoryAltair validatorStatusFactory = + new ValidatorStatusFactoryAltair( + config, + beaconStateUtil, + attestationUtil, + predicates, + miscHelpers, + beaconStateAccessors); + final EpochProcessorElectra epochProcessor = + new EpochProcessorElectra( + config, + miscHelpers, + beaconStateAccessors, + beaconStateMutators, + validatorsUtil, + beaconStateUtil, + validatorStatusFactory, + schemaDefinitions, + timeProvider); + final SyncCommitteeUtil syncCommitteeUtil = + new SyncCommitteeUtil( + beaconStateAccessors, validatorsUtil, config, miscHelpers, schemaDefinitions); + final LightClientUtil lightClientUtil = + new LightClientUtil(beaconStateAccessors, syncCommitteeUtil, schemaDefinitions); + final ExecutionRequestsDataCodec executionRequestsDataCodec = + new ExecutionRequestsDataCodec(schemaDefinitions.getExecutionRequestsSchema()); + final BlockProcessorElectra blockProcessor = + new BlockProcessorElectra( + config, + predicates, + miscHelpers, + syncCommitteeUtil, + beaconStateAccessors, + beaconStateMutators, + operationSignatureVerifier, + beaconStateUtil, + attestationUtil, + validatorsUtil, + operationValidator, + schemaDefinitions, + executionRequestsDataCodec); + final ForkChoiceUtil forkChoiceUtil = + new ForkChoiceUtilDeneb( + config, beaconStateAccessors, epochProcessor, attestationUtil, miscHelpers); + final BlockProposalUtil blockProposalUtil = + new BlockProposalUtil(schemaDefinitions, blockProcessor); + + final BlindBlockUtilBellatrix blindBlockUtil = new BlindBlockUtilBellatrix(schemaDefinitions); + + // State upgrade + final FuluStateUpgrade stateUpgrade = new FuluStateUpgrade(config, beaconStateAccessors); + + return new SpecLogicFulu( + predicates, + miscHelpers, + beaconStateAccessors, + beaconStateMutators, + operationSignatureVerifier, + validatorsUtil, + beaconStateUtil, + attestationUtil, + operationValidator, + validatorStatusFactory, + epochProcessor, + blockProcessor, + forkChoiceUtil, + blockProposalUtil, + blindBlockUtil, + syncCommitteeUtil, + lightClientUtil, + stateUpgrade); + } + + @Override + public Optional getSyncCommitteeUtil() { + return syncCommitteeUtil; + } + + @Override + public Optional getLightClientUtil() { + return lightClientUtil; + } + + @Override + public Optional getBellatrixTransitionHelpers() { + return Optional.empty(); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/forktransition/FuluStateUpgrade.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/forktransition/FuluStateUpgrade.java new file mode 100644 index 00000000000..e461af0cf2d --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/forktransition/FuluStateUpgrade.java @@ -0,0 +1,47 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.logic.versions.fulu.forktransition; + +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.config.SpecConfigFulu; +import tech.pegasys.teku.spec.datastructures.state.Fork; +import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; +import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.electra.BeaconStateElectra; +import tech.pegasys.teku.spec.logic.common.forktransition.StateUpgrade; +import tech.pegasys.teku.spec.logic.versions.electra.helpers.BeaconStateAccessorsElectra; + +public class FuluStateUpgrade implements StateUpgrade { + + private final SpecConfigFulu specConfig; + private final BeaconStateAccessorsElectra beaconStateAccessors; + + public FuluStateUpgrade( + final SpecConfigFulu specConfig, final BeaconStateAccessorsElectra beaconStateAccessors) { + this.specConfig = specConfig; + this.beaconStateAccessors = beaconStateAccessors; + } + + @Override + public BeaconStateElectra upgrade(final BeaconState preState) { + final UInt64 epoch = beaconStateAccessors.getCurrentEpoch(preState); + final BeaconStateElectra preStateElectra = BeaconStateElectra.required(preState); + return preStateElectra.updatedElectra( + state -> + state.setFork( + new Fork( + preState.getFork().getCurrentVersion(), + specConfig.getFuluForkVersion(), + epoch))); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/helpers/MiscHelpersFulu.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/helpers/MiscHelpersFulu.java new file mode 100644 index 00000000000..f9b2a76b7f7 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/fulu/helpers/MiscHelpersFulu.java @@ -0,0 +1,64 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.logic.versions.fulu.helpers; + +import java.util.Optional; +import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.config.SpecConfigFulu; +import tech.pegasys.teku.spec.logic.common.helpers.MiscHelpers; +import tech.pegasys.teku.spec.logic.common.helpers.Predicates; +import tech.pegasys.teku.spec.logic.versions.electra.helpers.MiscHelpersElectra; +import tech.pegasys.teku.spec.schemas.SchemaDefinitions; +import tech.pegasys.teku.spec.schemas.SchemaDefinitionsElectra; +import tech.pegasys.teku.spec.schemas.SchemaDefinitionsFulu; + +public class MiscHelpersFulu extends MiscHelpersElectra { + + public static MiscHelpersFulu required(final MiscHelpers miscHelpers) { + return miscHelpers + .toVersionFulu() + .orElseThrow( + () -> + new IllegalArgumentException( + "Expected Fulu misc helpers but got: " + + miscHelpers.getClass().getSimpleName())); + } + + @SuppressWarnings("unused") + private final SpecConfigFulu specConfigFulu; + + @SuppressWarnings("unused") + private final Predicates predicates; + + @SuppressWarnings("unused") + private final SchemaDefinitionsFulu schemaDefinitions; + + public MiscHelpersFulu( + final SpecConfigFulu specConfigFulu, + final Predicates predicates, + final SchemaDefinitions schemaDefinitions) { + super( + SpecConfigElectra.required(specConfigFulu), + predicates, + SchemaDefinitionsElectra.required(schemaDefinitions)); + this.predicates = predicates; + this.specConfigFulu = specConfigFulu; + this.schemaDefinitions = SchemaDefinitionsFulu.required(schemaDefinitions); + } + + @Override + public Optional toVersionFulu() { + return Optional.of(this); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionCache.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionCache.java index 6f67aa33b1c..4b966af2285 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionCache.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionCache.java @@ -61,6 +61,9 @@ private SchemaDefinitions createSchemaDefinition(final SpecMilestone milestone) } public List getSupportedMilestones() { - return spec.getForkSchedule().getSupportedMilestones(); + // TODO-fulu remove filtering up to electra + return spec.getForkSchedule().getSupportedMilestones().stream() + .filter(specMilestone -> specMilestone.isLessThan(SpecMilestone.FULU)) + .toList(); } } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitions.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitions.java index 59b83cbdbdd..45878f276e9 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitions.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitions.java @@ -116,6 +116,11 @@ default Optional toVersionElectra() { return Optional.empty(); } + @NonSchema + default Optional toVersionFulu() { + return Optional.empty(); + } + @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @interface NonSchema {} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java new file mode 100644 index 00000000000..723fd9fa824 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java @@ -0,0 +1,40 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.schemas; + +import static com.google.common.base.Preconditions.checkArgument; + +import java.util.Optional; +import tech.pegasys.teku.spec.schemas.registry.SchemaRegistry; + +public class SchemaDefinitionsFulu extends SchemaDefinitionsElectra { + + public SchemaDefinitionsFulu(final SchemaRegistry schemaRegistry) { + super(schemaRegistry); + } + + public static SchemaDefinitionsFulu required(final SchemaDefinitions schemaDefinitions) { + checkArgument( + schemaDefinitions instanceof SchemaDefinitionsFulu, + "Expected definitions of type %s but got %s", + SchemaDefinitionsFulu.class, + schemaDefinitions.getClass()); + return (SchemaDefinitionsFulu) schemaDefinitions; + } + + @Override + public Optional toVersionFulu() { + return Optional.of(this); + } +} diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/holesky.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/holesky.yaml index d44d4ec21a9..348061075bc 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/holesky.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/holesky.yaml @@ -41,6 +41,10 @@ DENEB_FORK_EPOCH: 29696 ELECTRA_FORK_VERSION: 0x06017000 ELECTRA_FORK_EPOCH: 115968 +# Fulu +FULU_FORK_VERSION: 0x07017000 +FULU_FORK_EPOCH: 18446744073709551615 + # Time parameters # --------------------------------------------------------------- # 12 seconds @@ -136,4 +140,15 @@ BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9 # `uint64(9)` MAX_BLOBS_PER_BLOCK_ELECTRA: 9 # MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA -MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 \ No newline at end of file +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 + +# Fulu +NUMBER_OF_COLUMNS: 128 +NUMBER_OF_CUSTODY_GROUPS: 128 +DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 +MAX_REQUEST_DATA_COLUMN_SIDECARS: 512 +SAMPLES_PER_SLOT: 8 +CUSTODY_REQUIREMENT: 4 +VALIDATOR_CUSTODY_REQUIREMENT: 8 +MAX_BLOBS_PER_BLOCK_FULU: 12 +MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/hoodi.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/hoodi.yaml index 5a35dc27549..acb12a45ccd 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/hoodi.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/hoodi.yaml @@ -40,6 +40,10 @@ DENEB_FORK_EPOCH: 0 ELECTRA_FORK_VERSION: 0x60000910 ELECTRA_FORK_EPOCH: 2048 +# Fulu +FULU_FORK_VERSION: 0x70000910 +FULU_FORK_EPOCH: 18446744073709551615 + # Time parameters # --------------------------------------------------------------- # 12 seconds diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/less-swift.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/less-swift.yaml index 982f8c48748..09bb00ae9a0 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/less-swift.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/less-swift.yaml @@ -38,6 +38,9 @@ DENEB_FORK_EPOCH: 18446744073709551615 # Electra ELECTRA_FORK_VERSION: 0x05000001 ELECTRA_FORK_EPOCH: 18446744073709551615 +# Fulu +FULU_FORK_VERSION: 0x06000001 +FULU_FORK_EPOCH: 18446744073709551615 # Transition # --------------------------------------------------------------- diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/mainnet.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/mainnet.yaml index 51fe2f82114..885d89dea4f 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/mainnet.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/mainnet.yaml @@ -53,6 +53,9 @@ DENEB_FORK_EPOCH: 269568 # March 13, 2024, 01:55:35pm UTC # Electra ELECTRA_FORK_VERSION: 0x05000000 ELECTRA_FORK_EPOCH: 364032 # May 7, 2025, 10:05:11am UTC +# Fulu +FULU_FORK_VERSION: 0x06000000 +FULU_FORK_EPOCH: 18446744073709551615 # Time parameters @@ -153,4 +156,16 @@ BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9 # `uint64(9)` MAX_BLOBS_PER_BLOCK_ELECTRA: 9 # MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA -MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 \ No newline at end of file +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 + +# Fulu +NUMBER_OF_COLUMNS: 128 +NUMBER_OF_CUSTODY_GROUPS: 128 +DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 +MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384 +SAMPLES_PER_SLOT: 8 +CUSTODY_REQUIREMENT: 4 +VALIDATOR_CUSTODY_REQUIREMENT: 8 +MAX_BLOBS_PER_BLOCK_FULU: 12 +MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096 +BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/minimal.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/minimal.yaml index 2f8b8fdd1c8..6b4a6e71729 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/minimal.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/minimal.yaml @@ -52,6 +52,9 @@ DENEB_FORK_EPOCH: 18446744073709551615 # Electra ELECTRA_FORK_VERSION: 0x05000001 ELECTRA_FORK_EPOCH: 18446744073709551615 +# Fulu +FULU_FORK_VERSION: 0x06000001 +FULU_FORK_EPOCH: 18446744073709551615 # Time parameters # --------------------------------------------------------------- @@ -153,4 +156,16 @@ BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9 # `uint64(9)` MAX_BLOBS_PER_BLOCK_ELECTRA: 9 # MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA -MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 \ No newline at end of file +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 + +# Fulu +NUMBER_OF_COLUMNS: 128 +NUMBER_OF_CUSTODY_GROUPS: 128 +DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 +MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384 +SAMPLES_PER_SLOT: 8 +CUSTODY_REQUIREMENT: 4 +VALIDATOR_CUSTODY_REQUIREMENT: 8 +MAX_BLOBS_PER_BLOCK_FULU: 12 +MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096 +BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/swift.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/swift.yaml index a1aa39d3503..026f37c25a8 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/swift.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/swift.yaml @@ -46,6 +46,9 @@ DENEB_FORK_EPOCH: 18446744073709551615 # Electra ELECTRA_FORK_VERSION: 0x05000001 ELECTRA_FORK_EPOCH: 18446744073709551615 +# Fulu +FULU_FORK_VERSION: 0x06000001 +FULU_FORK_EPOCH: 18446744073709551615 # Time parameters @@ -148,4 +151,16 @@ BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9 # `uint64(9)` MAX_BLOBS_PER_BLOCK_ELECTRA: 9 # MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA -MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 \ No newline at end of file +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 + +# Fulu +NUMBER_OF_COLUMNS: 128 +NUMBER_OF_CUSTODY_GROUPS: 128 +DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 +MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384 +SAMPLES_PER_SLOT: 8 +CUSTODY_REQUIREMENT: 4 +VALIDATOR_CUSTODY_REQUIREMENT: 8 +MAX_BLOBS_PER_BLOCK_FULU: 12 +MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096 +BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/mainnet/fulu.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/mainnet/fulu.yaml new file mode 100644 index 00000000000..080f32808b3 --- /dev/null +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/mainnet/fulu.yaml @@ -0,0 +1,10 @@ +# Mainnet preset - Fulu + +# Misc +# --------------------------------------------------------------- +# `uint64(2**6)` (= 64) +FIELD_ELEMENTS_PER_CELL: 64 +# `uint64(2 * 4096)` (= 8192) +FIELD_ELEMENTS_PER_EXT_BLOB: 8192 +# uint64(floorlog2(get_generalized_index(BeaconBlockBody, 'blob_kzg_commitments')) +KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/minimal/fulu.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/minimal/fulu.yaml new file mode 100644 index 00000000000..f250a4b29ae --- /dev/null +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/minimal/fulu.yaml @@ -0,0 +1,10 @@ +# Minimal preset - Fulu + +# Misc +# --------------------------------------------------------------- +# `uint64(2**6)` (= 64) +FIELD_ELEMENTS_PER_CELL: 64 +# `uint64(2 * 4096)` (= 8192) +FIELD_ELEMENTS_PER_EXT_BLOB: 8192 +# uint64(floorlog2(get_generalized_index(BeaconBlockBody, 'blob_kzg_commitments')) +KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/swift/fulu.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/swift/fulu.yaml new file mode 100644 index 00000000000..d9e4cafd48c --- /dev/null +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/swift/fulu.yaml @@ -0,0 +1,10 @@ +# Swift preset - Fulu + +# Misc +# --------------------------------------------------------------- +# `uint64(2**6)` (= 64) +FIELD_ELEMENTS_PER_CELL: 64 +# `uint64(2 * 4096)` (= 8192) +FIELD_ELEMENTS_PER_EXT_BLOB: 8192 +# uint64(floorlog2(get_generalized_index(BeaconBlockBody, 'blob_kzg_commitments')) +KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4 \ No newline at end of file diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/SpecMilestoneTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/SpecMilestoneTest.java index 3adaf3955cb..2a892559fba 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/SpecMilestoneTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/SpecMilestoneTest.java @@ -20,8 +20,11 @@ import static tech.pegasys.teku.spec.SpecMilestone.CAPELLA; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; import static tech.pegasys.teku.spec.SpecMilestone.ELECTRA; +import static tech.pegasys.teku.spec.SpecMilestone.FULU; import static tech.pegasys.teku.spec.SpecMilestone.PHASE0; +import java.util.Collection; +import java.util.List; import java.util.stream.Stream; import org.assertj.core.api.AssertionsForClassTypes; import org.junit.jupiter.api.Test; @@ -36,36 +39,42 @@ import tech.pegasys.teku.spec.config.SpecConfigCapella; import tech.pegasys.teku.spec.config.SpecConfigDeneb; import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.config.SpecConfigFulu; import tech.pegasys.teku.spec.config.SpecConfigLoader; import tech.pegasys.teku.spec.networks.Eth2Network; public class SpecMilestoneTest { - private final SpecConfigElectra electraSpecConfig = + private static final SpecConfigFulu FULU_SPEC_CONFIG = + SpecConfigLoader.loadConfig(Eth2Network.MINIMAL.configName()) + .specConfig() + .toVersionFulu() + .orElseThrow(); + private static final SpecConfigElectra ELECTRA_SPEC_CONFIG = SpecConfigLoader.loadConfig(Eth2Network.MINIMAL.configName()) .specConfig() .toVersionElectra() .orElseThrow(); - private final SpecConfigDeneb denebSpecConfig = + private static final SpecConfigDeneb DENEB_SPEC_CONFIG = SpecConfigLoader.loadConfig(Eth2Network.MINIMAL.configName()) .specConfig() .toVersionDeneb() .orElseThrow(); - private final SpecConfigCapella capellaSpecConfig = + private static final SpecConfigCapella CAPELLA_SPEC_CONFIG = SpecConfigLoader.loadConfig(Eth2Network.MINIMAL.configName()) .specConfig() .toVersionCapella() .orElseThrow(); - private final SpecConfigBellatrix bellatrixSpecConfig = + private static final SpecConfigBellatrix BELLATRIX_SPEC_CONFIG = SpecConfigLoader.loadConfig(Eth2Network.MINIMAL.configName()) .specConfig() .toVersionBellatrix() .orElseThrow(); - private final SpecConfigAltair altairSpecConfig = + private static final SpecConfigAltair ALTAIR_SPEC_CONFIG = SpecConfigLoader.loadConfig(Eth2Network.MINIMAL.configName()) .specConfig() .toVersionAltair() .orElseThrow(); - private final SpecConfig phase0SpecConfig = + private static final SpecConfig PHASE0_SPEC_CONFIG = SpecConfigLoader.loadConfig(Eth2Network.MINIMAL.configName()).specConfig(); public static Stream isLessThanPermutations() { @@ -105,7 +114,14 @@ public static Stream isLessThanPermutations() { Arguments.of(ELECTRA, BELLATRIX, false), Arguments.of(ELECTRA, CAPELLA, false), Arguments.of(ELECTRA, DENEB, false), - Arguments.of(ELECTRA, ELECTRA, false)); + Arguments.of(ELECTRA, ELECTRA, false), + Arguments.of(FULU, PHASE0, false), + Arguments.of(FULU, ALTAIR, false), + Arguments.of(FULU, BELLATRIX, false), + Arguments.of(FULU, CAPELLA, false), + Arguments.of(FULU, DENEB, false), + Arguments.of(FULU, ELECTRA, false), + Arguments.of(FULU, FULU, false)); } public static Stream isGreaterThanOrEqualToPermutations() { @@ -145,7 +161,14 @@ public static Stream isGreaterThanOrEqualToPermutations() { Arguments.of(ELECTRA, BELLATRIX, true), Arguments.of(ELECTRA, CAPELLA, true), Arguments.of(ELECTRA, DENEB, true), - Arguments.of(ELECTRA, ELECTRA, true)); + Arguments.of(ELECTRA, ELECTRA, true), + Arguments.of(FULU, PHASE0, true), + Arguments.of(FULU, ALTAIR, true), + Arguments.of(FULU, BELLATRIX, true), + Arguments.of(FULU, CAPELLA, true), + Arguments.of(FULU, DENEB, true), + Arguments.of(FULU, ELECTRA, true), + Arguments.of(FULU, FULU, true)); } public static Stream getPreviousPermutations() { @@ -154,7 +177,8 @@ public static Stream getPreviousPermutations() { Arguments.of(BELLATRIX, ALTAIR), Arguments.of(CAPELLA, BELLATRIX), Arguments.of(DENEB, CAPELLA), - Arguments.of(ELECTRA, DENEB)); + Arguments.of(ELECTRA, DENEB), + Arguments.of(FULU, ELECTRA)); } @ParameterizedTest @@ -188,75 +212,45 @@ void getPreviousMilestoneIfPresent() { assertThat(ALTAIR.getPreviousMilestoneIfExists()).contains(PHASE0); assertThat(BELLATRIX.getPreviousMilestoneIfExists()).contains(ALTAIR); assertThat(CAPELLA.getPreviousMilestoneIfExists()).contains(BELLATRIX); + assertThat(DENEB.getPreviousMilestoneIfExists()).contains(CAPELLA); + assertThat(ELECTRA.getPreviousMilestoneIfExists()).contains(DENEB); + assertThat(FULU.getPreviousMilestoneIfExists()).contains(ELECTRA); } - @Test - public void getAllPriorMilestones_phase0() { - assertThat(SpecMilestone.getAllPriorMilestones(PHASE0)).isEmpty(); - } - - @Test - public void getAllPriorMilestones_altair() { - assertThat(SpecMilestone.getAllPriorMilestones(SpecMilestone.ALTAIR)).contains(PHASE0); - } - - @Test - public void getAllPriorMilestones_bellatrix() { - assertThat(SpecMilestone.getAllPriorMilestones(SpecMilestone.BELLATRIX)) - .contains(PHASE0, SpecMilestone.ALTAIR); - } - - @Test - public void getAllPriorMilestones_capella() { - assertThat(SpecMilestone.getAllPriorMilestones(CAPELLA)) - .contains(PHASE0, SpecMilestone.ALTAIR, SpecMilestone.BELLATRIX); - } - - @Test - public void getAllPriorMilestones_deneb() { - assertThat(SpecMilestone.getAllPriorMilestones(DENEB)) - .contains(PHASE0, SpecMilestone.ALTAIR, SpecMilestone.BELLATRIX, CAPELLA); - } - - @Test - public void getAllPriorMilestones_electra() { - assertThat(SpecMilestone.getAllPriorMilestones(SpecMilestone.ELECTRA)) - .contains(PHASE0, SpecMilestone.ALTAIR, SpecMilestone.BELLATRIX, CAPELLA, DENEB); - } - - @Test - public void getMilestonesUpTo_phase0() { - assertThat(SpecMilestone.getMilestonesUpTo(PHASE0)).contains(PHASE0); - } - - @Test - public void getMilestonesUpTo_altair() { - assertThat(SpecMilestone.getMilestonesUpTo(SpecMilestone.ALTAIR)) - .contains(PHASE0, SpecMilestone.ALTAIR); - } - - @Test - public void getMilestonesUpTo_bellatrix() { - assertThat(SpecMilestone.getMilestonesUpTo(SpecMilestone.BELLATRIX)) - .contains(PHASE0, SpecMilestone.ALTAIR, SpecMilestone.BELLATRIX); + @ParameterizedTest + @MethodSource("getPriorMilestonePermutations") + public void getAllPriorMilestones( + final SpecMilestone current, final Collection priorMilestones) { + assertThat(SpecMilestone.getAllPriorMilestones(current)).containsAll(priorMilestones); } - @Test - public void getMilestonesUpTo_capella() { - assertThat(SpecMilestone.getMilestonesUpTo(CAPELLA)) - .contains(PHASE0, SpecMilestone.ALTAIR, SpecMilestone.BELLATRIX); + public static Stream getPriorMilestonePermutations() { + return Stream.of( + Arguments.of(PHASE0, List.of()), + Arguments.of(ALTAIR, List.of(PHASE0)), + Arguments.of(BELLATRIX, List.of(PHASE0, ALTAIR)), + Arguments.of(CAPELLA, List.of(PHASE0, ALTAIR, BELLATRIX)), + Arguments.of(DENEB, List.of(PHASE0, ALTAIR, BELLATRIX, CAPELLA)), + Arguments.of(ELECTRA, List.of(PHASE0, ALTAIR, BELLATRIX, CAPELLA, DENEB)), + Arguments.of(FULU, List.of(PHASE0, ALTAIR, BELLATRIX, CAPELLA, DENEB, ELECTRA))); } - @Test - public void getMilestonesUpTo_deneb() { - assertThat(SpecMilestone.getMilestonesUpTo(DENEB)) - .contains(PHASE0, SpecMilestone.ALTAIR, SpecMilestone.BELLATRIX, CAPELLA); + @ParameterizedTest + @MethodSource("getMilestonesUpToPermutations") + public void getMilestonesUpTo( + final SpecMilestone current, final Collection upToMilestones) { + assertThat(SpecMilestone.getMilestonesUpTo(current)).containsAll(upToMilestones); } - @Test - public void getMilestonesUpTo_electra() { - assertThat(SpecMilestone.getMilestonesUpTo(SpecMilestone.ELECTRA)) - .contains(PHASE0, SpecMilestone.ALTAIR, SpecMilestone.BELLATRIX, CAPELLA, DENEB); + public static Stream getMilestonesUpToPermutations() { + return Stream.of( + Arguments.of(PHASE0, List.of(PHASE0)), + Arguments.of(ALTAIR, List.of(PHASE0, ALTAIR)), + Arguments.of(BELLATRIX, List.of(PHASE0, ALTAIR, BELLATRIX)), + Arguments.of(CAPELLA, List.of(PHASE0, ALTAIR, BELLATRIX, CAPELLA)), + Arguments.of(DENEB, List.of(PHASE0, ALTAIR, BELLATRIX, CAPELLA, DENEB)), + Arguments.of(ELECTRA, List.of(PHASE0, ALTAIR, BELLATRIX, CAPELLA, DENEB, ELECTRA)), + Arguments.of(FULU, List.of(PHASE0, ALTAIR, BELLATRIX, CAPELLA, DENEB, ELECTRA, FULU))); } @Test @@ -287,107 +281,119 @@ public void areMilestonesInOrder() { @Test public void getForkVersion_phase0() { - final Bytes4 expected = altairSpecConfig.getGenesisForkVersion(); - assertThat(SpecMilestone.getForkVersion(altairSpecConfig, PHASE0)).contains(expected); + final Bytes4 expected = PHASE0_SPEC_CONFIG.getGenesisForkVersion(); + assertThat(SpecMilestone.getForkVersion(PHASE0_SPEC_CONFIG, PHASE0)).contains(expected); } @Test public void getForkVersion_altair() { - final Bytes4 expected = altairSpecConfig.getAltairForkVersion(); - assertThat(SpecMilestone.getForkVersion(altairSpecConfig, SpecMilestone.ALTAIR)) + final Bytes4 expected = ALTAIR_SPEC_CONFIG.getAltairForkVersion(); + assertThat(SpecMilestone.getForkVersion(ALTAIR_SPEC_CONFIG, SpecMilestone.ALTAIR)) .contains(expected); } @Test public void getForkVersion_bellatrix() { - final Bytes4 expected = bellatrixSpecConfig.getBellatrixForkVersion(); - assertThat(SpecMilestone.getForkVersion(bellatrixSpecConfig, SpecMilestone.BELLATRIX)) + final Bytes4 expected = BELLATRIX_SPEC_CONFIG.getBellatrixForkVersion(); + assertThat(SpecMilestone.getForkVersion(BELLATRIX_SPEC_CONFIG, SpecMilestone.BELLATRIX)) .contains(expected); } @Test public void getForkVersion_capella() { - final Bytes4 expected = capellaSpecConfig.getCapellaForkVersion(); - assertThat(SpecMilestone.getForkVersion(capellaSpecConfig, CAPELLA)).contains(expected); + final Bytes4 expected = CAPELLA_SPEC_CONFIG.getCapellaForkVersion(); + assertThat(SpecMilestone.getForkVersion(CAPELLA_SPEC_CONFIG, CAPELLA)).contains(expected); } @Test public void getForkVersion_deneb() { - final Bytes4 expected = denebSpecConfig.getDenebForkVersion(); - assertThat(SpecMilestone.getForkVersion(denebSpecConfig, DENEB)).contains(expected); + final Bytes4 expected = DENEB_SPEC_CONFIG.getDenebForkVersion(); + assertThat(SpecMilestone.getForkVersion(DENEB_SPEC_CONFIG, DENEB)).contains(expected); } @Test public void getForkVersion_electra() { - final Bytes4 expected = electraSpecConfig.getElectraForkVersion(); - assertThat(SpecMilestone.getForkVersion(electraSpecConfig, SpecMilestone.ELECTRA)) + final Bytes4 expected = ELECTRA_SPEC_CONFIG.getElectraForkVersion(); + assertThat(SpecMilestone.getForkVersion(ELECTRA_SPEC_CONFIG, SpecMilestone.ELECTRA)) .contains(expected); } @Test public void getForkEpoch_phase0() { final UInt64 expected = UInt64.ZERO; - assertThat(SpecMilestone.getForkEpoch(altairSpecConfig, PHASE0)).contains(expected); + assertThat(SpecMilestone.getForkEpoch(PHASE0_SPEC_CONFIG, PHASE0)).contains(expected); } @Test public void getForEpoch_altair() { - final UInt64 expected = altairSpecConfig.getAltairForkEpoch(); - assertThat(SpecMilestone.getForkEpoch(altairSpecConfig, SpecMilestone.ALTAIR)) + final UInt64 expected = ALTAIR_SPEC_CONFIG.getAltairForkEpoch(); + assertThat(SpecMilestone.getForkEpoch(ALTAIR_SPEC_CONFIG, SpecMilestone.ALTAIR)) .contains(expected); } @Test public void getForkEpoch_bellatrix() { - final UInt64 expected = bellatrixSpecConfig.getBellatrixForkEpoch(); - assertThat(SpecMilestone.getForkEpoch(bellatrixSpecConfig, SpecMilestone.BELLATRIX)) + final UInt64 expected = BELLATRIX_SPEC_CONFIG.getBellatrixForkEpoch(); + assertThat(SpecMilestone.getForkEpoch(BELLATRIX_SPEC_CONFIG, SpecMilestone.BELLATRIX)) .contains(expected); } @Test public void getForkEpoch_capella() { - final UInt64 expected = capellaSpecConfig.getCapellaForkEpoch(); - assertThat(SpecMilestone.getForkEpoch(capellaSpecConfig, CAPELLA)).contains(expected); + final UInt64 expected = CAPELLA_SPEC_CONFIG.getCapellaForkEpoch(); + assertThat(SpecMilestone.getForkEpoch(CAPELLA_SPEC_CONFIG, CAPELLA)).contains(expected); } @Test public void getForkEpoch_deneb() { - final UInt64 expected = denebSpecConfig.getDenebForkEpoch(); - assertThat(SpecMilestone.getForkEpoch(denebSpecConfig, DENEB)).contains(expected); + final UInt64 expected = DENEB_SPEC_CONFIG.getDenebForkEpoch(); + assertThat(SpecMilestone.getForkEpoch(DENEB_SPEC_CONFIG, DENEB)).contains(expected); } @Test public void getForkEpoch_electra() { - final UInt64 expected = electraSpecConfig.getElectraForkEpoch(); - assertThat(SpecMilestone.getForkEpoch(electraSpecConfig, SpecMilestone.ELECTRA)) + final UInt64 expected = ELECTRA_SPEC_CONFIG.getElectraForkEpoch(); + assertThat(SpecMilestone.getForkEpoch(ELECTRA_SPEC_CONFIG, SpecMilestone.ELECTRA)) .contains(expected); } + @Test + public void getForkEpoch_fulu() { + final UInt64 expected = FULU_SPEC_CONFIG.getElectraForkEpoch(); + assertThat(SpecMilestone.getForkEpoch(FULU_SPEC_CONFIG, FULU)).contains(expected); + } + @Test public void getForkSlot_altairNotScheduled() { - assertThat(SpecMilestone.getForkEpoch(phase0SpecConfig, SpecMilestone.ALTAIR)) + assertThat(SpecMilestone.getForkEpoch(PHASE0_SPEC_CONFIG, SpecMilestone.ALTAIR)) .contains(UInt64.MAX_VALUE); } @Test public void getForkSlot_bellatrixNotScheduled() { - assertThat(SpecMilestone.getForkEpoch(phase0SpecConfig, SpecMilestone.BELLATRIX)) + assertThat(SpecMilestone.getForkEpoch(PHASE0_SPEC_CONFIG, SpecMilestone.BELLATRIX)) .contains(UInt64.MAX_VALUE); } @Test public void getForkEpoch_capellaNotScheduled() { - assertThat(SpecMilestone.getForkEpoch(bellatrixSpecConfig, CAPELLA)).contains(UInt64.MAX_VALUE); + assertThat(SpecMilestone.getForkEpoch(BELLATRIX_SPEC_CONFIG, CAPELLA)) + .contains(UInt64.MAX_VALUE); } @Test public void getForkEpoch_denebNotScheduled() { - assertThat(SpecMilestone.getForkEpoch(capellaSpecConfig, DENEB)).contains(UInt64.MAX_VALUE); + assertThat(SpecMilestone.getForkEpoch(CAPELLA_SPEC_CONFIG, DENEB)).contains(UInt64.MAX_VALUE); } @Test public void getForkEpoch_electraNotScheduled() { - assertThat(SpecMilestone.getForkEpoch(denebSpecConfig, SpecMilestone.ELECTRA)) + assertThat(SpecMilestone.getForkEpoch(DENEB_SPEC_CONFIG, SpecMilestone.ELECTRA)) .contains(UInt64.MAX_VALUE); } + + @Test + public void getForkEpoch_fuluNotScheduled() { + assertThat(SpecMilestone.getForkEpoch(ELECTRA_SPEC_CONFIG, FULU)).contains(UInt64.MAX_VALUE); + } } diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/SpecVersionTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/SpecVersionTest.java index 211eb44ece0..e594b23e9ca 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/SpecVersionTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/SpecVersionTest.java @@ -24,6 +24,7 @@ import tech.pegasys.teku.spec.config.SpecConfigCapella; import tech.pegasys.teku.spec.config.SpecConfigDeneb; import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.config.SpecConfigFulu; import tech.pegasys.teku.spec.config.SpecConfigLoader; import tech.pegasys.teku.spec.networks.Eth2Network; import tech.pegasys.teku.spec.schemas.registry.SchemaRegistryBuilder; @@ -84,6 +85,13 @@ void shouldCreateSpec(final SpecMilestone milestone) { SpecVersion.create( SpecMilestone.ELECTRA, minimalConfig, SchemaRegistryBuilder.create()); } + case FULU -> { + expectedVersion = + SpecVersion.createFulu( + SpecConfigFulu.required(minimalConfig), SchemaRegistryBuilder.create()); + actualVersion = + SpecVersion.create(SpecMilestone.FULU, minimalConfig, SchemaRegistryBuilder.create()); + } } assertThat(actualVersion).isPresent(); diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigBuilderTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigBuilderTest.java index f4b0045ce73..e807e2948e3 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigBuilderTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigBuilderTest.java @@ -35,6 +35,7 @@ import tech.pegasys.teku.spec.config.builder.CapellaBuilder; import tech.pegasys.teku.spec.config.builder.DenebBuilder; import tech.pegasys.teku.spec.config.builder.ElectraBuilder; +import tech.pegasys.teku.spec.config.builder.FuluBuilder; import tech.pegasys.teku.spec.config.builder.SpecConfigBuilder; import tech.pegasys.teku.spec.datastructures.util.ForkAndSpecMilestone; import tech.pegasys.teku.spec.util.DataStructureUtil; @@ -50,7 +51,8 @@ class SpecConfigBuilderTest { BellatrixBuilder.class, CapellaBuilder.class, DenebBuilder.class, - ElectraBuilder.class); + ElectraBuilder.class, + FuluBuilder.class); /** * Ensures Builders have actually non-primitive setters, because primitive setters are silently diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigFuluTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigFuluTest.java new file mode 100644 index 00000000000..9f631799ee8 --- /dev/null +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigFuluTest.java @@ -0,0 +1,138 @@ +/* + * Copyright Consensys Software Inc., 2022 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.config; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; +import tech.pegasys.teku.spec.Spec; +import tech.pegasys.teku.spec.SpecMilestone; +import tech.pegasys.teku.spec.TestSpecFactory; +import tech.pegasys.teku.spec.util.DataStructureUtil; + +public class SpecConfigFuluTest { + private final Spec spec = TestSpecFactory.createMinimalElectra(); + + @Test + public void equals_mainnet() { + final SpecConfigFulu configA = + SpecConfigLoader.loadConfig("mainnet").specConfig().toVersionFulu().orElseThrow(); + final SpecConfigFulu configB = + SpecConfigLoader.loadConfig("mainnet").specConfig().toVersionFulu().orElseThrow(); + + assertThat(configA).isEqualTo(configB); + assertThat(configA.hashCode()).isEqualTo(configB.hashCode()); + } + + @Test + public void equals_sameRandomValues() { + final SpecConfigElectra specConfigElectra = + SpecConfigLoader.loadConfig("mainnet").specConfig().toVersionElectra().orElseThrow(); + final SpecConfigFulu configA = createRandomFuluConfig(specConfigElectra, 1); + final SpecConfigFulu configB = createRandomFuluConfig(specConfigElectra, 1); + + assertThat(configA).isEqualTo(configB); + assertThat(configA.hashCode()).isEqualTo(configB.hashCode()); + } + + @Test + public void equals_differentRandomValues() { + final SpecConfigElectra specConfigElectra = + SpecConfigLoader.loadConfig("mainnet").specConfig().toVersionElectra().orElseThrow(); + final SpecConfigFulu configA = createRandomFuluConfig(specConfigElectra, 1); + final SpecConfigFulu configB = createRandomFuluConfig(specConfigElectra, 2); + + assertThat(configA).isNotEqualTo(configB); + assertThat(configA.hashCode()).isNotEqualTo(configB.hashCode()); + } + + @Test + @SuppressWarnings("unchecked") + public void shouldOverrideBlobRelatedValuesValues() { + final SpecConfigAndParent specConfigAndParent = + (SpecConfigAndParent) + SpecConfigLoader.loadConfig( + "mainnet", + b -> { + b.denebBuilder(eb -> eb.maxBlobsPerBlock(4)); + + b.electraBuilder(eb -> eb.maxBlobsPerBlockElectra(8)); + b.fuluBuilder(fb -> fb.maxBlobsPerBlockFulu(12)); + }); + + final SpecConfigDeneb denebConfig = + specConfigAndParent.forMilestone(SpecMilestone.DENEB).toVersionDeneb().orElseThrow(); + + final SpecConfigElectra electraConfig = + specConfigAndParent.forMilestone(SpecMilestone.ELECTRA).toVersionElectra().orElseThrow(); + + final SpecConfigFulu fuluConfig = + specConfigAndParent.forMilestone(SpecMilestone.FULU).toVersionFulu().orElseThrow(); + + assertThat(denebConfig.getMaxBlobsPerBlock()).isEqualTo(4); + assertThat(electraConfig.getMaxBlobsPerBlock()).isEqualTo(8); + assertThat(fuluConfig.getMaxBlobsPerBlock()).isEqualTo(12); + } + + @Test + public void equals_electraConfigDiffer() { + final SpecConfigElectra electraA = + SpecConfigLoader.loadConfig("mainnet").specConfig().toVersionElectra().orElseThrow(); + final SpecConfigElectra electraB = + SpecConfigLoader.loadConfig( + "mainnet", + b -> + b.electraBuilder( + eb -> eb.maxBlobsPerBlockElectra(electraA.getMaxBlobsPerBlock() + 4))) + .specConfig() + .toVersionElectra() + .orElseThrow(); + + final SpecConfigFulu configA = createRandomFuluConfig(electraA, 1); + final SpecConfigFulu configB = createRandomFuluConfig(electraB, 1); + + assertThat(configA).isNotEqualTo(configB); + assertThat(configA.hashCode()).isNotEqualTo(configB.hashCode()); + } + + @Test + public void mainnetShouldHave12MaxBlobs() { + final SpecConfigFulu specConfigFulu = + SpecConfigLoader.loadConfig("mainnet").specConfig().toVersionFulu().orElseThrow(); + assertThat(specConfigFulu.getMaxBlobsPerBlock()).isEqualTo(12); + } + + private SpecConfigFulu createRandomFuluConfig( + final SpecConfigElectra electraConfig, final int seed) { + final DataStructureUtil dataStructureUtil = new DataStructureUtil(seed, spec); + + return new SpecConfigFuluImpl( + electraConfig, + dataStructureUtil.randomBytes4(), + dataStructureUtil.randomUInt64(999_999), + dataStructureUtil.randomUInt64(8192), + dataStructureUtil.randomUInt64(8192), + dataStructureUtil.randomUInt64(8192), + dataStructureUtil.randomPositiveInt(134217728), + dataStructureUtil.randomPositiveInt(134217728), + dataStructureUtil.randomPositiveInt(262144), + dataStructureUtil.randomPositiveInt(4096), + dataStructureUtil.randomPositiveInt(4096), + dataStructureUtil.randomPositiveInt(4096), + dataStructureUtil.randomPositiveInt(8192), + dataStructureUtil.randomPositiveInt(8192), + dataStructureUtil.randomPositiveInt(8192), + dataStructureUtil.randomUInt64(32000000000L)) {}; + } +} diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/StateUpgradeTransitionTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/StateUpgradeTransitionTest.java index 6625a5f7482..06049ed5578 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/StateUpgradeTransitionTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/StateUpgradeTransitionTest.java @@ -47,7 +47,8 @@ SpecMilestone.BELLATRIX, SpecMilestone.CAPELLA, SpecMilestone.DENEB, - SpecMilestone.ELECTRA + SpecMilestone.ELECTRA, + SpecMilestone.FULU, }, doNotGenerateSpec = true) public class StateUpgradeTransitionTest { @@ -93,6 +94,12 @@ public void setup(final SpecContext specContext) { afterBeaconStateClass = BeaconStateElectra.class; yield TestSpecFactory.createMinimalWithElectraForkEpoch(milestoneTransitionEpoch); } + case FULU -> { + beforeBeaconStateClass = BeaconStateElectra.class; + afterBeaconStateClass = BeaconStateElectra.class; + // TODO-fulu eventually we should have a BeaconStateFulu class + yield TestSpecFactory.createMinimalWithFuluForkEpoch(milestoneTransitionEpoch); + } }; genesis = createGenesis(spec); diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecContext.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecContext.java index a127df265ba..89f2aa39f3d 100644 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecContext.java +++ b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecContext.java @@ -31,6 +31,8 @@ boolean allMilestones() default false; + SpecMilestone[] ignoredMilestones() default {}; + boolean allNetworks() default false; boolean doNotGenerateSpec() default false; diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecFactory.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecFactory.java index b763973063d..7caa238790a 100644 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecFactory.java +++ b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecFactory.java @@ -44,6 +44,7 @@ public static Spec createMinimal(final SpecMilestone specMilestone) { case CAPELLA -> createMinimalCapella(); case DENEB -> createMinimalDeneb(); case ELECTRA -> createMinimalElectra(); + case FULU -> createMinimalFulu(); }; } @@ -55,6 +56,7 @@ public static Spec createMainnet(final SpecMilestone specMilestone) { case CAPELLA -> createMainnetCapella(); case DENEB -> createMainnetDeneb(); case ELECTRA -> createMainnetElectra(); + case FULU -> createMainnetFulu(); }; } @@ -118,6 +120,12 @@ public static Spec createMinimalElectra(final Consumer config return create(specConfig, SpecMilestone.ELECTRA); } + public static Spec createMinimalFulu() { + final SpecConfigAndParent specConfig = + getFuluSpecConfig(Eth2Network.MINIMAL); + return create(specConfig, SpecMilestone.FULU); + } + /** * Create a spec that forks to altair at the provided slot * @@ -179,6 +187,19 @@ public static Spec createMinimalWithElectraForkEpoch(final UInt64 electraForkEpo return create(config, SpecMilestone.ELECTRA); } + /** + * Create a spec that forks to Fulu at the provided epoch + * + * @param fuluForkEpoch The Fulu fork epoch + * @return A spec with Fulu enabled, forking to Fulu at the given epoch + */ + public static Spec createMinimalWithFuluForkEpoch(final UInt64 fuluForkEpoch) { + final SpecConfigAndParent config = + getFuluSpecConfig( + Eth2Network.MINIMAL, UInt64.ZERO, UInt64.ZERO, UInt64.ZERO, fuluForkEpoch); + return create(config, SpecMilestone.FULU); + } + public static Spec createMinimalPhase0() { final SpecConfigAndParent configAndParent = SpecConfigLoader.loadConfig(Eth2Network.MINIMAL.configName()); @@ -221,6 +242,12 @@ public static Spec createMainnetElectra() { return create(specConfig, SpecMilestone.ELECTRA); } + public static Spec createMainnetFulu() { + final SpecConfigAndParent specConfig = + getFuluSpecConfig(Eth2Network.MAINNET); + return create(specConfig, SpecMilestone.FULU); + } + public static Spec createPhase0(final SpecConfigAndParent config) { return create(config, SpecMilestone.PHASE0); } @@ -241,37 +268,39 @@ public static Spec create( final SpecMilestone specMilestone, final Eth2Network network, final Consumer configModifier) { - final Consumer defaultModifier = - switch (specMilestone) { - case PHASE0 -> __ -> {}; - case ALTAIR -> builder -> builder.altairBuilder(a -> a.altairForkEpoch(UInt64.ZERO)); - case BELLATRIX -> - builder -> - builder - .altairBuilder(a -> a.altairForkEpoch(UInt64.ZERO)) - .bellatrixBuilder(b -> b.bellatrixForkEpoch(UInt64.ZERO)); - case CAPELLA -> - builder -> - builder - .altairBuilder(a -> a.altairForkEpoch(UInt64.ZERO)) - .bellatrixBuilder(b -> b.bellatrixForkEpoch(UInt64.ZERO)) - .capellaBuilder(c -> c.capellaForkEpoch(UInt64.ZERO)); - case DENEB -> - builder -> - builder - .altairBuilder(a -> a.altairForkEpoch(UInt64.ZERO)) - .bellatrixBuilder(b -> b.bellatrixForkEpoch(UInt64.ZERO)) - .capellaBuilder(c -> c.capellaForkEpoch(UInt64.ZERO)) - .denebBuilder(d -> d.denebForkEpoch(UInt64.ZERO)); - case ELECTRA -> - builder -> - builder - .altairBuilder(a -> a.altairForkEpoch(UInt64.ZERO)) - .bellatrixBuilder(b -> b.bellatrixForkEpoch(UInt64.ZERO)) - .capellaBuilder(c -> c.capellaForkEpoch(UInt64.ZERO)) - .denebBuilder(d -> d.denebForkEpoch(UInt64.ZERO)) - .electraBuilder(e -> e.electraForkEpoch(UInt64.ZERO)); - }; + + Consumer defaultModifier = __ -> {}; + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.ALTAIR)) { + defaultModifier = + defaultModifier.andThen( + builder -> builder.altairBuilder(a -> a.altairForkEpoch(UInt64.ZERO))); + } + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.BELLATRIX)) { + defaultModifier = + defaultModifier.andThen( + builder -> builder.bellatrixBuilder(b -> b.bellatrixForkEpoch(UInt64.ZERO))); + } + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.CAPELLA)) { + defaultModifier = + defaultModifier.andThen( + builder -> builder.capellaBuilder(c -> c.capellaForkEpoch(UInt64.ZERO))); + } + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.DENEB)) { + defaultModifier = + defaultModifier.andThen( + builder -> builder.denebBuilder(d -> d.denebForkEpoch(UInt64.ZERO))); + } + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.ELECTRA)) { + defaultModifier = + defaultModifier.andThen( + builder -> builder.electraBuilder(e -> e.electraForkEpoch(UInt64.ZERO))); + } + if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.FULU)) { + defaultModifier = + defaultModifier.andThen( + builder -> builder.fuluBuilder(f -> f.fuluForkEpoch(UInt64.ZERO))); + } + return create( SpecConfigLoader.loadConfig(network.configName(), defaultModifier.andThen(configModifier)), specMilestone); @@ -423,6 +452,46 @@ private static SpecConfigAndParent getElectraSpecConfig( })); } + private static SpecConfigAndParent getFuluSpecConfig( + final Eth2Network network) { + return getFuluSpecConfig(network, UInt64.ZERO, UInt64.ZERO, UInt64.ZERO, UInt64.ZERO); + } + + private static SpecConfigAndParent getFuluSpecConfig( + final Eth2Network network, + final UInt64 capellaForkEpoch, + final UInt64 denebForkEpoch, + final UInt64 electraForkEpoch, + final UInt64 fuluForkEpoch) { + return getFuluSpecConfig( + network, + builder -> + builder + .altairBuilder(a -> a.altairForkEpoch(UInt64.ZERO)) + .bellatrixBuilder(b -> b.bellatrixForkEpoch(UInt64.ZERO)) + .capellaBuilder(c -> c.capellaForkEpoch(capellaForkEpoch)) + .denebBuilder(d -> d.denebForkEpoch(denebForkEpoch)) + .electraBuilder(e -> e.electraForkEpoch(electraForkEpoch)) + .fuluBuilder(f -> f.fuluForkEpoch(fuluForkEpoch))); + } + + private static SpecConfigAndParent getFuluSpecConfig( + final Eth2Network network, final Consumer configAdapter) { + return requireFulu( + SpecConfigLoader.loadConfig( + network.configName(), + builder -> { + builder + .altairBuilder(a -> a.altairForkEpoch(UInt64.ZERO)) + .bellatrixBuilder(b -> b.bellatrixForkEpoch(UInt64.ZERO)) + .capellaBuilder(c -> c.capellaForkEpoch(UInt64.ZERO)) + .denebBuilder(d -> d.denebForkEpoch(UInt64.ZERO)) + .electraBuilder(e -> e.electraForkEpoch(UInt64.ZERO)) + .fuluBuilder(f -> f.fuluForkEpoch(UInt64.ZERO)); + configAdapter.accept(builder); + })); + } + public static Spec createMinimalWithCapellaDenebAndElectraForkEpoch( final UInt64 capellaForkEpoch, final UInt64 denebForkEpoch, final UInt64 electraForkEpoch) { final SpecConfigAndParent config = @@ -465,4 +534,10 @@ private static SpecConfigAndParent requireElectra( checkArgument(specConfigAndParent.specConfig().toVersionElectra().isPresent()); return specConfigAndParent; } + + private static SpecConfigAndParent requireFulu( + final SpecConfigAndParent specConfigAndParent) { + checkArgument(specConfigAndParent.specConfig().toVersionFulu().isPresent()); + return specConfigAndParent; + } } diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecInvocationContextProvider.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecInvocationContextProvider.java index 95a1e188ef3..5a0c2b79b6c 100644 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecInvocationContextProvider.java +++ b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/TestSpecInvocationContextProvider.java @@ -14,6 +14,7 @@ package tech.pegasys.teku.spec; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Stream; @@ -43,13 +44,17 @@ public Stream provideTestTemplateInvocationContex Class clazz = extensionContext.getRequiredTestClass(); TestSpecContext testSpecContext = clazz.getAnnotation(TestSpecContext.class); - Set milestones; - Set networks; + final Set milestones; + final Set networks; if (testSpecContext.allMilestones()) { - milestones = Set.of(SpecMilestone.values()); + milestones = new HashSet<>(List.of(SpecMilestone.values())); } else { - milestones = Set.of(testSpecContext.milestone()); + milestones = new HashSet<>(List.of(testSpecContext.milestone())); + } + + for (final SpecMilestone ignoredMilestone : testSpecContext.ignoredMilestones()) { + milestones.remove(ignoredMilestone); } if (testSpecContext.allNetworks()) { diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java index 0a30270089e..55ec0f3d2c4 100644 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java +++ b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java @@ -1924,7 +1924,7 @@ public BeaconState randomBeaconState( case BELLATRIX -> stateBuilderBellatrix(validatorCount, numItemsInSszLists); case CAPELLA -> stateBuilderCapella(validatorCount, numItemsInSszLists); case DENEB -> stateBuilderDeneb(validatorCount, numItemsInSszLists); - case ELECTRA -> stateBuilderElectra(validatorCount, numItemsInSszLists); + case ELECTRA, FULU -> stateBuilderElectra(validatorCount, numItemsInSszLists); }; } diff --git a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/forkchoice/ProposersDataManagerTest.java b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/forkchoice/ProposersDataManagerTest.java index 6d6c6119f95..376c608e7c3 100644 --- a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/forkchoice/ProposersDataManagerTest.java +++ b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/forkchoice/ProposersDataManagerTest.java @@ -58,6 +58,7 @@ public void setUp(final TestSpecInvocationContextProvider.SpecContext specContex case CAPELLA -> TestSpecFactory.createMinimalWithCapellaForkEpoch(currentForkEpoch); case DENEB -> TestSpecFactory.createMinimalWithDenebForkEpoch(currentForkEpoch); case ELECTRA -> TestSpecFactory.createMinimalWithElectraForkEpoch(currentForkEpoch); + case FULU -> TestSpecFactory.createMinimalWithFuluForkEpoch(currentForkEpoch); }; dataStructureUtil = specContext.getDataStructureUtil(); defaultAddress = dataStructureUtil.randomEth1Address(); diff --git a/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/EnumHeaderTypeDefinition.java b/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/EnumHeaderTypeDefinition.java index 853c54b78e5..72e79d7a684 100644 --- a/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/EnumHeaderTypeDefinition.java +++ b/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/EnumHeaderTypeDefinition.java @@ -16,8 +16,10 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import java.io.IOException; +import java.util.HashSet; import java.util.Objects; import java.util.Optional; +import java.util.Set; import java.util.function.Function; public class EnumHeaderTypeDefinition> implements StringValueTypeDefinition { @@ -28,6 +30,7 @@ public class EnumHeaderTypeDefinition> implements StringValueT private final Optional required; private final Optional description; private final Optional example; + private final Set excludedEnumerations; public EnumHeaderTypeDefinition( final Class itemType, @@ -36,7 +39,8 @@ public EnumHeaderTypeDefinition( final String title, final Optional required, final Optional description, - final Optional example) { + final Optional example, + final Set excludedEnumerations) { this.itemType = itemType; this.serializer = serializer; this.name = name; @@ -44,6 +48,7 @@ public EnumHeaderTypeDefinition( this.required = required; this.description = description; this.example = example; + this.excludedEnumerations = excludedEnumerations; } @Override @@ -79,6 +84,9 @@ public void serializeOpenApiType(final JsonGenerator gen) throws IOException { gen.writeArrayFieldStart("enum"); for (T value : itemType.getEnumConstants()) { + if (excludedEnumerations.contains(value)) { + continue; + } gen.writeString(serializeToString(value)); } gen.writeEndArray(); @@ -108,7 +116,14 @@ public T deserializeFromString(final String value) { @Override public StringValueTypeDefinition withDescription(final String description) { return new EnumHeaderTypeDefinition<>( - itemType, serializer, Optional.empty(), title, required, Optional.of(description), example); + itemType, + serializer, + Optional.empty(), + title, + required, + Optional.of(description), + example, + excludedEnumerations); } @Override @@ -163,6 +178,7 @@ public static class EnumTypeHeaderDefinitionBuilder> { private Optional required = Optional.empty(); private Optional description = Optional.empty(); private Optional example = Optional.empty(); + private final Set excludedEnumerations = new HashSet<>(); public EnumTypeHeaderDefinitionBuilder( final Class itemType, final Function serializer) { @@ -195,9 +211,15 @@ public EnumTypeHeaderDefinitionBuilder example(final String example) { return this; } + public EnumTypeHeaderDefinitionBuilder excludedEnumerations( + final Set excludedEnumerations) { + this.excludedEnumerations.addAll(excludedEnumerations); + return this; + } + public EnumHeaderTypeDefinition build() { return new EnumHeaderTypeDefinition<>( - itemType, serializer, name, title, required, description, example); + itemType, serializer, name, title, required, description, example, excludedEnumerations); } } } diff --git a/infrastructure/json/src/test/java/tech/pegasys/teku/infrastructure/json/types/EnumHeaderTypeDefinitionTest.java b/infrastructure/json/src/test/java/tech/pegasys/teku/infrastructure/json/types/EnumHeaderTypeDefinitionTest.java index 4fec720f50a..c2e050a664a 100644 --- a/infrastructure/json/src/test/java/tech/pegasys/teku/infrastructure/json/types/EnumHeaderTypeDefinitionTest.java +++ b/infrastructure/json/src/test/java/tech/pegasys/teku/infrastructure/json/types/EnumHeaderTypeDefinitionTest.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.io.StringWriter; import java.util.Optional; +import java.util.Set; import org.junit.jupiter.api.Test; import tech.pegasys.teku.infrastructure.json.JsonUtil; @@ -56,18 +57,44 @@ public void serializeOpenApiType() throws IOException { "Color", Optional.of(true), Optional.of("The color of the object"), - Optional.of("RED")); + Optional.of("RED"), + Set.of()); + final String json = getJsonDefinition(definition); + + final String expectedJson = + "{\"Color\":{\"description\":\"The color of the object\",\"required\":true,\"schema\":{\"type\":\"string\",\"enum\":[\"RED\",\"GREEN\",\"BLUE\"],\"example\":\"RED\"}}}"; + assertEquals(expectedJson, json); + } + + @Test + public void serializeOpenApiTypeIgnoresExcludedElements() throws IOException { + final EnumHeaderTypeDefinition definition = + new EnumHeaderTypeDefinition<>( + Color.class, + Color::name, + Optional.of("color"), + "Color", + Optional.of(true), + Optional.of("The color of the object"), + Optional.of("RED"), + Set.of(Color.BLUE)); + + final String json = getJsonDefinition(definition); + + final String expectedJson = + "{\"Color\":{\"description\":\"The color of the object\",\"required\":true,\"schema\":{\"type\":\"string\",\"enum\":[\"RED\",\"GREEN\"],\"example\":\"RED\"}}}"; + assertEquals(expectedJson, json); + } + + private static String getJsonDefinition(final EnumHeaderTypeDefinition definition) + throws IOException { final StringWriter writer = new StringWriter(); final JsonGenerator gen = new ObjectMapper().getFactory().createGenerator(writer); gen.writeStartObject(); definition.serializeOpenApiType(gen); gen.writeEndObject(); gen.close(); - final String json = writer.toString(); - - final String expectedJson = - "{\"Color\":{\"description\":\"The color of the object\",\"required\":true,\"schema\":{\"type\":\"string\",\"enum\":[\"RED\",\"GREEN\",\"BLUE\"],\"example\":\"RED\"}}}"; - assertEquals(expectedJson, json); + return writer.toString(); } } diff --git a/networking/eth2/src/integration-test/java/tech/pegasys/teku/networking/eth2/AbstractRpcMethodIntegrationTest.java b/networking/eth2/src/integration-test/java/tech/pegasys/teku/networking/eth2/AbstractRpcMethodIntegrationTest.java index b07520f3164..abf363d6b6e 100644 --- a/networking/eth2/src/integration-test/java/tech/pegasys/teku/networking/eth2/AbstractRpcMethodIntegrationTest.java +++ b/networking/eth2/src/integration-test/java/tech/pegasys/teku/networking/eth2/AbstractRpcMethodIntegrationTest.java @@ -84,7 +84,11 @@ private void setUpNextSpec(final SpecMilestone nextSpecMilestone) { checkState(nextSpecMilestone.equals(SpecMilestone.ELECTRA), "next spec should be electra"); nextSpec = Optional.of(TestSpecFactory.createMinimalWithElectraForkEpoch(nextSpecEpoch)); } - case ELECTRA -> throw new RuntimeException("Base spec is already latest supported milestone"); + case ELECTRA -> { + checkState(nextSpecMilestone.equals(SpecMilestone.FULU), "next spec should be fulu"); + nextSpec = Optional.of(TestSpecFactory.createMinimalWithFuluForkEpoch(nextSpecEpoch)); + } + case FULU -> throw new RuntimeException("Base spec is already latest supported milestone"); } nextSpecSlot = nextSpec.orElseThrow().computeStartSlotAtEpoch(nextSpecEpoch); } @@ -209,6 +213,10 @@ public record PeerAndNetwork(Eth2Peer peer, Eth2P2PNetwork network) {} protected static Stream generateSpecTransitionWithCombinationParams() { return SpecMilestone.getAllMilestonesFrom(SpecMilestone.ALTAIR).stream() + .filter( + specMilestone -> + specMilestone.isLessThan( + SpecMilestone.FULU)) // TODO-fulu eventually we remove this ignore .flatMap( milestone -> { final SpecMilestone prevMilestone = milestone.getPreviousMilestone(); @@ -261,7 +269,7 @@ protected static Class milestoneToBeaconBlockBodyClass(final SpecMilestone mi case BELLATRIX -> BeaconBlockBodyBellatrix.class; case CAPELLA -> BeaconBlockBodyCapella.class; case DENEB -> BeaconBlockBodyDeneb.class; - case ELECTRA -> BeaconBlockBodyElectra.class; + case ELECTRA, FULU -> BeaconBlockBodyElectra.class; }; } } diff --git a/networking/eth2/src/integration-test/java/tech/pegasys/teku/networking/eth2/GetMetadataIntegrationTest.java b/networking/eth2/src/integration-test/java/tech/pegasys/teku/networking/eth2/GetMetadataIntegrationTest.java index 1adee280426..f0ff615963b 100644 --- a/networking/eth2/src/integration-test/java/tech/pegasys/teku/networking/eth2/GetMetadataIntegrationTest.java +++ b/networking/eth2/src/integration-test/java/tech/pegasys/teku/networking/eth2/GetMetadataIntegrationTest.java @@ -147,7 +147,7 @@ public void requestMetadata_withDisparateVersionsEnabled( private static Class milestoneToMetadataClass(final SpecMilestone milestone) { return switch (milestone) { case PHASE0 -> MetadataMessagePhase0.class; - case ALTAIR, BELLATRIX, CAPELLA, DENEB, ELECTRA -> MetadataMessageAltair.class; + default -> MetadataMessageAltair.class; }; } } diff --git a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkBuilder.java b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkBuilder.java index a8eabeee53b..308f551ad6e 100644 --- a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkBuilder.java +++ b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkBuilder.java @@ -39,6 +39,7 @@ import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsCapella; import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsDeneb; import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsElectra; +import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsFulu; import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsPhase0; import tech.pegasys.teku.networking.eth2.gossip.subnets.AttestationSubnetTopicProvider; import tech.pegasys.teku.networking.eth2.gossip.subnets.PeerSubnetSubscriptions; @@ -325,6 +326,26 @@ private GossipForkSubscriptions createSubscriptions( gossipedSyncCommitteeMessageProcessor, gossipedSignedBlsToExecutionChangeProcessor, debugDataDumper); + case FULU -> + new GossipForkSubscriptionsFulu( + forkAndSpecMilestone.getFork(), + spec, + asyncRunner, + metricsSystem, + network, + combinedChainDataClient.getRecentChainData(), + gossipEncoding, + gossipedBlockProcessor, + gossipedBlobSidecarProcessor, + gossipedAttestationConsumer, + gossipedAggregateProcessor, + gossipedAttesterSlashingConsumer, + gossipedProposerSlashingConsumer, + gossipedVoluntaryExitConsumer, + gossipedSignedContributionAndProofProcessor, + gossipedSyncCommitteeMessageProcessor, + gossipedSignedBlsToExecutionChangeProcessor, + debugDataDumper); }; } diff --git a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/gossip/forks/versions/GossipForkSubscriptionsFulu.java b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/gossip/forks/versions/GossipForkSubscriptionsFulu.java new file mode 100644 index 00000000000..998ecfdf91b --- /dev/null +++ b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/gossip/forks/versions/GossipForkSubscriptionsFulu.java @@ -0,0 +1,79 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.networking.eth2.gossip.forks.versions; + +import org.hyperledger.besu.plugin.services.MetricsSystem; +import tech.pegasys.teku.infrastructure.async.AsyncRunner; +import tech.pegasys.teku.networking.eth2.gossip.encoding.GossipEncoding; +import tech.pegasys.teku.networking.eth2.gossip.topics.OperationProcessor; +import tech.pegasys.teku.networking.p2p.discovery.DiscoveryNetwork; +import tech.pegasys.teku.spec.Spec; +import tech.pegasys.teku.spec.datastructures.attestation.ValidatableAttestation; +import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; +import tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing; +import tech.pegasys.teku.spec.datastructures.operations.ProposerSlashing; +import tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange; +import tech.pegasys.teku.spec.datastructures.operations.SignedVoluntaryExit; +import tech.pegasys.teku.spec.datastructures.operations.versions.altair.SignedContributionAndProof; +import tech.pegasys.teku.spec.datastructures.operations.versions.altair.ValidatableSyncCommitteeMessage; +import tech.pegasys.teku.spec.datastructures.state.Fork; +import tech.pegasys.teku.statetransition.util.DebugDataDumper; +import tech.pegasys.teku.storage.client.RecentChainData; + +public class GossipForkSubscriptionsFulu extends GossipForkSubscriptionsElectra { + + public GossipForkSubscriptionsFulu( + final Fork fork, + final Spec spec, + final AsyncRunner asyncRunner, + final MetricsSystem metricsSystem, + final DiscoveryNetwork discoveryNetwork, + final RecentChainData recentChainData, + final GossipEncoding gossipEncoding, + final OperationProcessor blockProcessor, + final OperationProcessor blobSidecarProcessor, + final OperationProcessor attestationProcessor, + final OperationProcessor aggregateProcessor, + final OperationProcessor attesterSlashingProcessor, + final OperationProcessor proposerSlashingProcessor, + final OperationProcessor voluntaryExitProcessor, + final OperationProcessor + signedContributionAndProofOperationProcessor, + final OperationProcessor + syncCommitteeMessageOperationProcessor, + final OperationProcessor + signedBlsToExecutionChangeOperationProcessor, + final DebugDataDumper debugDataDumper) { + super( + fork, + spec, + asyncRunner, + metricsSystem, + discoveryNetwork, + recentChainData, + gossipEncoding, + blockProcessor, + blobSidecarProcessor, + attestationProcessor, + aggregateProcessor, + attesterSlashingProcessor, + proposerSlashingProcessor, + voluntaryExitProcessor, + signedContributionAndProofOperationProcessor, + syncCommitteeMessageOperationProcessor, + signedBlsToExecutionChangeOperationProcessor, + debugDataDumper); + } +} diff --git a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/gossip/topics/Eth2GossipTopicFilterTest.java b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/gossip/topics/Eth2GossipTopicFilterTest.java index 0e5fcc23991..c7e5cd007c0 100644 --- a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/gossip/topics/Eth2GossipTopicFilterTest.java +++ b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/gossip/topics/Eth2GossipTopicFilterTest.java @@ -72,6 +72,7 @@ void setUp(final SpecContext specContext) { case CAPELLA -> throw new IllegalArgumentException("Capella is an unsupported milestone"); case DENEB -> TestSpecFactory.createMinimalWithDenebForkEpoch(nextMilestoneForkEpoch); case ELECTRA -> TestSpecFactory.createMinimalWithElectraForkEpoch(nextMilestoneForkEpoch); + case FULU -> TestSpecFactory.createMinimalWithFuluForkEpoch(nextMilestoneForkEpoch); }; final StorageSystem storageSystem = InMemoryStorageSystemBuilder.buildDefault(spec); diff --git a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRangeListenerValidatingProxyTest.java b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRangeListenerValidatingProxyTest.java index 027bf4244ac..49951567f8b 100644 --- a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRangeListenerValidatingProxyTest.java +++ b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRangeListenerValidatingProxyTest.java @@ -68,6 +68,7 @@ void setUp(final SpecContext specContext) { case CAPELLA -> throw new IllegalArgumentException("Capella is an unsupported milestone"); case DENEB -> TestSpecFactory.createMinimalWithDenebForkEpoch(currentForkEpoch); case ELECTRA -> TestSpecFactory.createMinimalWithElectraForkEpoch(currentForkEpoch); + case FULU -> TestSpecFactory.createMinimalWithFuluForkEpoch(currentForkEpoch); }; currentForkFirstSlot = spec.computeStartSlotAtEpoch(currentForkEpoch); dataStructureUtil = new DataStructureUtil(spec); diff --git a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRangeMessageHandlerTest.java b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRangeMessageHandlerTest.java index b93797e0d32..2ae6a1e6ed3 100644 --- a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRangeMessageHandlerTest.java +++ b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRangeMessageHandlerTest.java @@ -110,6 +110,7 @@ public void setUp(final TestSpecInvocationContextProvider.SpecContext specContex case CAPELLA -> throw new IllegalArgumentException("Capella is an unsupported milestone"); case DENEB -> TestSpecFactory.createMinimalWithDenebForkEpoch(currentForkEpoch); case ELECTRA -> TestSpecFactory.createMinimalWithElectraForkEpoch(currentForkEpoch); + case FULU -> TestSpecFactory.createMinimalWithFuluForkEpoch(currentForkEpoch); }; dataStructureUtil = new DataStructureUtil(spec); diff --git a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootListenerValidatingProxyTest.java b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootListenerValidatingProxyTest.java index 86a911ded9f..2062ce1ea75 100644 --- a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootListenerValidatingProxyTest.java +++ b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootListenerValidatingProxyTest.java @@ -67,6 +67,7 @@ void setUp(final TestSpecInvocationContextProvider.SpecContext specContext) { case CAPELLA -> throw new IllegalArgumentException("Capella is an unsupported milestone"); case DENEB -> TestSpecFactory.createMinimalWithDenebForkEpoch(currentForkEpoch); case ELECTRA -> TestSpecFactory.createMinimalWithElectraForkEpoch(currentForkEpoch); + case FULU -> TestSpecFactory.createMinimalWithFuluForkEpoch(currentForkEpoch); }; dataStructureUtil = new DataStructureUtil(spec); currentForkFirstSlot = spec.computeStartSlotAtEpoch(currentForkEpoch); diff --git a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootMessageHandlerTest.java b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootMessageHandlerTest.java index 9fcebd3560e..bdb2aea5128 100644 --- a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootMessageHandlerTest.java +++ b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootMessageHandlerTest.java @@ -102,6 +102,7 @@ public void setup(final TestSpecInvocationContextProvider.SpecContext specContex case CAPELLA -> throw new IllegalArgumentException("Capella is an unsupported milestone"); case DENEB -> TestSpecFactory.createMinimalWithDenebForkEpoch(currentForkEpoch); case ELECTRA -> TestSpecFactory.createMinimalWithElectraForkEpoch(currentForkEpoch); + case FULU -> TestSpecFactory.createMinimalWithFuluForkEpoch(currentForkEpoch); }; dataStructureUtil = new DataStructureUtil(spec); messageSchema = diff --git a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootValidatorTest.java b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootValidatorTest.java index 6f754303dc9..9930abd4f0f 100644 --- a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootValidatorTest.java +++ b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/BlobSidecarsByRootValidatorTest.java @@ -60,6 +60,7 @@ void setUp(final TestSpecInvocationContextProvider.SpecContext specContext) { case CAPELLA -> throw new IllegalArgumentException("Capella is an unsupported milestone"); case DENEB -> TestSpecFactory.createMinimalWithDenebForkEpoch(currentForkEpoch); case ELECTRA -> TestSpecFactory.createMinimalWithElectraForkEpoch(currentForkEpoch); + case FULU -> TestSpecFactory.createMinimalWithFuluForkEpoch(currentForkEpoch); }; currentForkFirstSlot = spec.computeStartSlotAtEpoch(currentForkEpoch); dataStructureUtil = new DataStructureUtil(spec); diff --git a/networking/eth2/src/testFixtures/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkFactory.java b/networking/eth2/src/testFixtures/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkFactory.java index 053dd13ba39..f2e66ed2cb2 100644 --- a/networking/eth2/src/testFixtures/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkFactory.java +++ b/networking/eth2/src/testFixtures/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkFactory.java @@ -55,6 +55,7 @@ import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsCapella; import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsDeneb; import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsElectra; +import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsFulu; import tech.pegasys.teku.networking.eth2.gossip.forks.versions.GossipForkSubscriptionsPhase0; import tech.pegasys.teku.networking.eth2.gossip.subnets.AttestationSubnetTopicProvider; import tech.pegasys.teku.networking.eth2.gossip.subnets.PeerSubnetSubscriptions; @@ -457,6 +458,26 @@ private GossipForkSubscriptions createSubscriptions( syncCommitteeMessageProcessor, signedBlsToExecutionChangeProcessor, debugDataDumper); + case FULU -> + new GossipForkSubscriptionsFulu( + forkAndSpecMilestone.getFork(), + spec, + asyncRunner, + metricsSystem, + network, + recentChainData, + gossipEncoding, + gossipedBlockProcessor, + gossipedBlobSidecarProcessor, + gossipedAttestationProcessor, + gossipedAggregateProcessor, + attesterSlashingProcessor, + proposerSlashingProcessor, + voluntaryExitProcessor, + signedContributionAndProofProcessor, + syncCommitteeMessageProcessor, + signedBlsToExecutionChangeProcessor, + debugDataDumper); }; } diff --git a/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java b/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java index 5571901ba98..a1eee6dc3f7 100644 --- a/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java +++ b/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java @@ -158,6 +158,14 @@ public class Eth2NetworkOptions { arity = "1") private UInt64 electraForkEpoch; + @Option( + names = {"--Xnetwork-fulu-fork-epoch"}, + hidden = true, + paramLabel = "", + description = "Override the Fulu fork activation epoch.", + arity = "1") + private UInt64 fuluForkEpoch; + @Option( names = {"--Xnetwork-total-terminal-difficulty-override"}, hidden = true, @@ -340,6 +348,9 @@ private void configureEth2Network(final Eth2NetworkConfiguration.Builder builder if (electraForkEpoch != null) { builder.electraForkEpoch(electraForkEpoch); } + if (fuluForkEpoch != null) { + builder.fuluForkEpoch(fuluForkEpoch); + } if (totalTerminalDifficultyOverride != null) { builder.totalTerminalDifficultyOverride(totalTerminalDifficultyOverride); } diff --git a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java index 3047bcedd3d..1ecdccadc46 100644 --- a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java +++ b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java @@ -25,6 +25,7 @@ import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; import static tech.pegasys.teku.spec.SpecMilestone.BELLATRIX; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; +import static tech.pegasys.teku.spec.SpecMilestone.FULU; import com.google.common.net.MediaType; import java.util.Optional; @@ -48,7 +49,8 @@ import tech.pegasys.teku.spec.schemas.SchemaDefinitionCache; import tech.pegasys.teku.validator.remote.typedef.AbstractTypeDefRequestTestBase; -@TestSpecContext(allMilestones = true, network = Eth2Network.MINIMAL) +// TODO-fulu stop ignoring FULU after Electra release +@TestSpecContext(allMilestones = true, ignoredMilestones = FULU, network = Eth2Network.MINIMAL) public class ProduceBlockRequestTest extends AbstractTypeDefRequestTestBase { private ProduceBlockRequest request; diff --git a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockFULU.json b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockFULU.json new file mode 100644 index 00000000000..60edc542679 --- /dev/null +++ b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockFULU.json @@ -0,0 +1,391 @@ +{ + "version": "fulu", + "execution_payload_blinded": true, + "execution_payload_value": "52335047088093692175629908587741169571103578927521980677976976500308305025762", + "consensus_block_value": "60987255743756591490802410911397502078420277537860810465656654307850393571949", + "data": { + "slot": "1", + "proposer_index": "4666673844721362956", + "parent_root": "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef", + "state_root": "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e", + "body": { + "randao_reveal": "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71", + "eth1_data": { + "deposit_root": "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f", + "deposit_count": "4658411424342975020", + "block_hash": "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379" + }, + "graffiti": "0x0000000000000000000000000000000000000000000000000000000000000000", + "proposer_slashings": [ + { + "signed_header_1": { + "message": { + "slot": "4661716390776343276", + "proposer_index": "4600574485989226763", + "parent_root": "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b", + "state_root": "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb", + "body_root": "0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486" + }, + "signature": "0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483" + }, + "signed_header_2": { + "message": { + "slot": "4661716390776343276", + "proposer_index": "4600574485989226763", + "parent_root": "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6", + "state_root": "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26", + "body_root": "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + }, + "signature": "0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1" + } + } + ], + "attester_slashings": [ + { + "attestation_1": { + "attesting_indices": [ + "4590659586689121994", + "4589007099177470570", + "4580744678799082634" + ], + "data": { + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", + "source": { + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" + }, + "target": { + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" + } + }, + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" + }, + "attestation_2": { + "attesting_indices": [ + "4590659586689121994", + "4589007099177470570", + "4580744678799082634" + ], + "data": { + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", + "source": { + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" + }, + "target": { + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" + } + }, + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" + } + } + ], + "attestations": [ + { + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69ddb8d7fcc3929148c9c5995e8b893997b8d9362a715543e06361e29e0c194d3b2d59319837ab6dbd209d099fa04236c25d177a02c92c0a3c5135f246bf9fd884203bc47005fd46b235bf0b462dc754e99647a2302e0c032308b592b1f7453084e93eff658eb16115cf4d24f229ed8b13e073e1233b0bf4eb9ba69438b310735b100f5c49673995ae6958b9382a2070db0cf44b200ce7103375f72fa72c5a51a38760f68db7a789f68fa7bfb672ec0678c7c352dc9c5c1805fabb2b2e1dd89e2e748bba9f11681e33321784b89e8a3beb8600e4ccb4d72a05d067a96a9c39e5b10f379b95649134f15a22e6f181d1e44b46a122a8b375d43dc2f41517fbf2922ed696da5cc61c267e64317d467ed0d0464f06d2d82c110134401f612203c6f33984c615224478b3a1774ccf7c8b1cf3ef697296412c020f5a695f1e04fd7c963df5abec644f339e043bfc42d90ab6236cd0e9a4f7307063b65d447aee56bb116a0197ed4a9052ed97f11e5b989311b6d224ec284f94e02c864cdab368d6e00aae2405364ae9087f32f6ea4a6b80e83fe329db9c4c5eaefc0190847c1ad6087dced29d8ec7982cda88afe31468c8df32062746a2a07e8b537a93c3bfb5acfb111310516ecde7e0ccd7bb78fdc036de4ff5391a596df325e3d0a5ddab556052bab500dae358d641874703557f3f480596b0af14c56aab3e5ee6cf8f4c831d2dcf61f6e86a53eae177c3d917052448ca02e4f287d0f15ada519f3780d118377825c98f0ad02a05dafbda86c240aca3dde537dd9118a0baaef8a2d86a8c1dbdbb8f9ad3f034c592622a9341ce3ffae459d1bae3cab2a9dcf8f3bae9d707b01bdc8e0b3d7887c82e9d39312f2e5ef95017908b0fd0976b0216b1af40d5ad29e40271492e3d2befa613b2cbc0965ceb84c76ce4c8c26f231e5276a628dc5d641e0661b794bcc6b7669438a4155375913694480b2ebdb8b10cf35167e059e00cf353e11dbc7ed643cc8ea70edc14bf61d9c63c8b697fbde0b7af9fa92ebf0223662fca9a14bb4c614ed36e45ebd98f81725a11da173ff839ea8305dde22150214a80e4737a01", + "data": { + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", + "source": { + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" + }, + "target": { + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" + } + }, + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef", + "committee_bits": "0x0c" + }, + { + "aggregation_bits": "0x5af41da977c357436d6d5cb611972dd4dfe8f24fd986cc3f62b8b2cd6df1ec5d9fffb58969a144cf75aa90897ecee335edb4c087e9cf844a5ba6e2acffdbf07aca6115072cf6fd1e908678cac3bcf3c62d52094d87dcbe66db7b6dc0ef11c7f20a749a5a9cea6b85febb7bab94425c81a2ed6d53d42193e9dcfb3d415dc53b6f872f5aadb7d10201f85dde8eacbc9e87b72f9276e6c0dd3a244a3676c184eb46a216ccba47432d0215454f42d2777ba28c79e38f492e6d46d1b065553f901ed99d7375c5ded4343dfe42a0c6b83cdab8e223ad328b39f46d8a06e1ddfc6a3ce6cfba7a8091749b4de6a9308bf9b3a3c418702fa32bbda084033b12c09924304b14b96ec1369061fb13a3aa0f2233b2524c86f0ecaa7f282aa0ae59437049b8032f60be842d4e0a033509f61cfb418da0af682a173cb8c1cfbc4876d1eb14ab9a440068bcf38a31f4a9021a7129ca37b456c95f016272a17360123acabba0f54923fd5d1bef78786c92215fbdf2146838e8f752a20da1b2472d7ef6d80cbf0455253c9135ab6906022beff98c7d2f98c6e64b5b2fa0dcc78e46b76405edde55eae1e077e4fff69b5a892e10ed73d4767aee874d2d3e0c3fa226f35fa7ce21cd0480b839534220b3cdb7dca9d7dc4f3a3762f82e7bb54a57c2fbea1063637e01c5242b1e0bf51473233ca9bff61513432a56e34ae6ce73bd6225f3847815676c06bde9f686abde54e8930700f645dcc9ca8af8607bc0d1c490d281449bcf65fa22374631272eb06bc53e63c06082c648a356f3bfc450cd3636983d04903a36680c965f2af41323729233480b6f8e7640dc4d0a3c4cf619b86dcdc62410c3400c2004a2f157338766e3d2fe039e733042f3aea833abaafb5ef7dc4c1ed72ec4881b7c7c178bcfeade55329e93ac81842e6758136d73335774d66ff8c925f77e1d4b7a09ee44c6e30d506cf487c747ac10b92528e85f5702dac422013541228c6e0099e1df1e7018dcee8f3d36d5fa51394c95d1a18f51c6db2581a3f71cf21882713ac1c5cd58db94168db50c2017c2c8c81071d6cf68a1d0458b4965908d1fb6c4710c50b74b3cef02e77919acc9029d9f9b866e2a90dcab36cbbe84fd9e4b5b9036d9baba000eef655ffe64b9af0e79b28657fefdc30a107f896b81d64b92f01b71f3ccfc4f8cfcad286ac1e93f52d08b5c9b00b0853b64b4f2591cd55042ac5635ebd811f4934ec05a3ff82a80b8029779d09f1d6c3249037381d16363107158a53548d75a80fab67a4f7374855feb3ee3e8c7109afc0d58a9a5309a601ae0435dac5bf21f0d38d7c811dcc413781e7702f0580bfc9d4dd18639bacf84c7a2d197341bd53ddb1e7fe0ec44bba8c45a4ae2dfa564414fd91b436919f251619df1b0eb2899ce45720e7f542b437b902bbbfcdf1e778af073d08fd2e6504c9b9c8501", + "data": { + "slot": "4537780097985426121", + "index": "4536127614768741993", + "beacon_block_root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8", + "source": { + "epoch": "526920509", + "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" + }, + "target": { + "epoch": "527305258", + "root": "0x51977a3f0ab3110e2a10e9c6bd0e89b1410ca45142ac42171bb2b169efc281bc" + } + }, + "signature": "0xa17225b5e5319618e77f5b93350430acfadd8ae12a279f1a4176cc7ad1de7ecfc8670988519713fbac8f702cca29bddb14ff1463dae3abb53ddb0c025cd69c8cfb0f5298ab241c06ddb840c7a260f3dbd37120826b13b17e22d086148ebdbab1", + "committee_bits": "0x02" + }, + { + "aggregation_bits": "0xf8d3f62925333e71c92b5989e48786f9ea8582ce5679c63ca0dae6a3948750814066f18bdb3cc2fded5d81f2ed6c784e8c2e8c42fa6b0c3d1670b4069c78cd8594c1547facc8fdb19696b11475dc3dd1c7499aea330b9953f0ccc4fd30f3de2c71ea6c42d470865d80771c74e3110239efcf4108a58bb05efef3d73a2363dfa582352640000c12f848be2c6d52be43d4fa5cab16a2d0145bb687d29ec894d64b389bd2fc97a558570aa151b89194980ea7b2684b935b51e49b71f6cd0641fdb62abb914bfa03b7502414b5c792be5472d6be3c130e030f194fd234650e4f1f3f1ee6c722096fa58c3091e5119eebba839baab03347552015fe40ec788f2b52815cac78de375b46ce120ce3eab28e05810094a1a8b461829a28c89c55abd7e8a0d0a42c23e127da6bff2b17fb7bf6c7cf4c4d5cb2dfe9030c3d2b01dd8cfbc0a387f8309c9ca604eb42aa8105a78199bec145010ec3e8e7b7948a10105c1885561045a3c4449b516d2734d8764320e3670187797901ee459ba0c22bf44cb7975134eb59de969155812ca98fbd1a37ed645720a1fa76f565291b3bdde819dbc89fc2e7376b8945ff35bc69dee5e2f99d9568dccce8933b85f8ff52ee4134ff55d319814b6c4b9a89fd9471fd16e4f90cf6ebb3db3051cd0a08021eb8bf3b56698876d79ed5af7054d75a0e3affc78f84e041dad2045805d90764e34244a32620a2cec1c7983f541e1c7eef01f57f8dd4ce9efbb685910b0bb79cafb313cd33bbf03eafb006911d75e1da95c6a84b34ad6f2af08a27bfd27af4b355161362a3e9735175eed49de10158098dc86767aa7e64b77a9dc2b597ff61131d32acd2471af3140229c8b80831be7ff99724684ed7a348f28e55e9ab05cf80a96779c510ce6ed83da51d98f4baede14ab484100f343e5575e94765738b54768ed2e723cdfed7bec02d4eec688946a82bd59a6d21f7e52eb81edcecd680e217ae57ec734138832305149e67992faf46c0835d4befa0b29c48a2a651f289aa3f32417adcfdff9ac79e272abbe61321e11a3f28d6f34c929b5990c3543573bc8d4f8c28b9d350fe2b3a8490c3e5c66849baaee592d4adc83330b17ea4494aff7af5b793c94df8fd58b4ce2012d08a60146d7f7904d1607c989b791650cf34d91b4710a9a953a628098c96026eb949e0778407d0bb2d13f1162d4d99f8db17cfec40ff447434ba34dadc4f4172e1c5490afc529acf3c5fb2965836307bb0db66c1f50a6e8d6dfc874f7391f6dab98d37fb1380e3cec43a338f523b3e7337730fbad50f1dc399e6f61c47b93f65ff7d841308b2b82b2d72b744761e3c68202699e2848abd5b5e598ae8d0e8dc78418f5741239d79a62389e6a61802fe83998583ee089555cc1207b61b26dddcb2fdff3912a6d85ed4671bc71fef7e1260b8e11aae5c343796d5f64f01", + "data": { + "slot": "4565872325553958186", + "index": "4570829775204010570", + "beacon_block_root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c", + "source": { + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" + }, + "target": { + "epoch": "531345121", + "root": "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" + } + }, + "signature": "0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e", + "committee_bits": "0x06" + } + ], + "deposits": [ + { + "proof": [ + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27" + ], + "data": { + "pubkey": "0xa56023832292eec3040299a0164c844769e854beba275c44e4960ab2da7ee11db36674e1e2fa2615bc5e247a2759a472", + "withdrawal_credentials": "0xe5ca603e08e1eff7259e45ea6bb662256d9d74b1724ee8feb0ea59f6e2ebe3be", + "amount": "32000000000", + "signature": "0xa9900942897c434e743c2b0210ec3266920ec6a624ed13b3637c640c7f79ba57a240a7e6a48cf587f71b9007616972821680ff0ca62c4cd47d50145bac76df28d9fbf3f56c98a5e8bd61b8cb41bdc02e3179ea961c2949c0803c108425dfa29d" + } + } + ], + "voluntary_exits": [ + { + "message": { + "epoch": "4498120483605137864", + "validator_index": "4493163029660118184" + }, + "signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" + } + ], + "sync_aggregate": { + "sync_committee_bits": "0x01000000", + "sync_committee_signature": "0xb2c1728d5efb4c0577aff84d84d5b0b2a89c22e1a97f2fb468442a8c2f84eb0912077b32ddd66ac5ce05168ab26168e40ddb8dadbed42b229c34e78cc757421908ab6159082952a43133f5333ad2f8382930bead6ab4f0e91c95ed9c66f634f1" + }, + "execution_payload_header": { + "parent_hash": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "fee_recipient": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3", + "state_root": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "receipts_root": "0x6bb2373e68f20adada72181a3474f2c098b26daf6fcb0516f0723270da91e789", + "logs_bloom": "0xcb571a3e876c6732a4c11cf3562059c2b8c16889ffb6d1b8d5f883591e767c3fb46dd46047448da9f4783626721bdf9308a2cefba364d5b6b2653a014d0c2bf6f7722e4c3bbe594bb639fb9b0489d49f463e19d5547ce33fc497f70c977a3205fedaf8ccc0bdc1801c8a18154948c8e670813e0c98f6e92e20d4327c71f2de5e7aaf1df92739504e383a1977928614c2078d5a61289ac612f9e3b08ea9406604db94fb2a3424f245843ce722c6edaaf79085661b750ed7b62cf57a68de63b899dbde6c169f2a65bd5b0e808bdf22c850136f4c1421be8865b50aa17c03735c41f4b4ec5a973ad30c7db09d4a6894284b9f19eafb8189121738fda9d6e0d393f7", + "prev_randao": "0xde78143e27b846779904841e2aa96d8fbec4671bb57ffa72037ac721f8d633ca", + "block_number": "4478290672120026440", + "gas_limit": "4476638188903342311", + "gas_used": "4521255257228650249", + "timestamp": "4519602774011966121", + "extra_data": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd", + "base_fee_per_gas": "73092283800700793286468708950267523415056945357667839430375913972420161943176", + "block_hash": "0x003ea73e885578bda77a6ee17f4c6c88227980d9e6e5fe448bdc2f93a5614b3e", + "transactions_root": "0x135fa13e28a157029cbdd50c53d58055287c7f6b9dae27ffb95d735b7fc202c9", + "withdrawals_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "blob_gas_used": "4517950290795281992", + "excess_blob_gas": "4516297807578597864" + }, + "bls_to_execution_changes": [ + { + "message": { + "validator_index": "2996764", + "from_bls_pubkey": "0xa2cd8bc71b19dea2f97e5918a5ad8205b4937a07537f9d84206f15ad383c25e65249dbb53d559acb700bb4f59297896c", + "to_execution_address": "0xac67723e28fe512946d50f68f01b25be5a9477fb" + }, + "signature": "0x99f5bc997861976d73013dd4c06f42a2318912e5e075a2746840bb34134e7f4765ba88dec12f4bd5d2fa24d7bc2c17ce105bfb796108064499faaa4d4b3e17db6e62bc88f8e0a6243105b01c00302c3d9f81f5e790d6a6951532ac94c19d1114" + }, + { + "message": { + "validator_index": "2164897", + "from_bls_pubkey": "0xaa4811100ca7dc5c90d84205000ffd9d70eaa3c650ff0391ce7c3f5eed59f12e4ac5e080f4ee6e30354294ebca28c93d", + "to_execution_address": "0x1cb989437169ae6f9cc483c46a7456e6eff45260" + }, + "signature": "0x833c3424606fa52c035536e38b8c677a1b922a8d35cc38b55e6f057725893ff621d9f49153fcda3af9d7cde737ee0c830e3189e94a62a8d655c328f7b3c77142c53a3e9f6029e16d22ace761f8e60f4b28f2b487821be3272e1905598649f1a0" + }, + { + "message": { + "validator_index": "1780148", + "from_bls_pubkey": "0x98d6103215e3916a0cff3af6b6f29f22374a32d87d440a302e18a9e2daa80b32a2824798030f6a2e06ab612b07c41f74", + "to_execution_address": "0xdb034f43b15d672031628c76afcc23e92d134914" + }, + "signature": "0xa2f3dc0cbadf0807f2d864d0c98c2e474972419b1ef936d0c68976eb732a146c8bd86194e95381d1b9245530b1f138cc0de425bd6478bc56a394619e1192a114680c4e9f8b0278816bd4f5df9e24cc31ca73cf5eb26da54eebf958966d4a957f" + }, + { + "message": { + "validator_index": "2856403", + "from_bls_pubkey": "0xac60d2ec631e27b37f4f5541319b94c8cf82299d71ae4139039cbc1d0c30c71a075cb62166801ccd0a56f0bc29edcdae", + "to_execution_address": "0x01464343f1f425aa1be85acd56de4c833a194738" + }, + "signature": "0x818852c88a6e16f2294cb51803a155dcac4f6ec5ee0d095e8890be8907201ee1c8790abb6d5f05faa2b3d8d9a03972800a04fc1666d877c7cbfb62c387d6e119f8f827ea2ba94d5b6429b33d6f3770b79999da3cb8ed17f2c8977234bd2a1cdc" + }, + { + "message": { + "validator_index": "2627637", + "from_bls_pubkey": "0x92f00f85478ad1224c1be3a9b9230444411e9a2beeb6304e5c1fba1b7b54c9ecc3965abeb3385e4916040260544b2580", + "to_execution_address": "0x5d6ec4433175f5be08277b12261c89e3b0d65cac" + }, + "signature": "0x8b13ef837950d00a469eae427c1fea111ea85e0dfd63c09bdc02aec208523ec4c805595639d50e183dc893022f60abd8118d62c836b6d4de057967f80184532c1c3a25b26c51926a07e55d2ba264de6fd22eb0665668cc7280bbcdfdfdb3c0b6" + }, + { + "message": { + "validator_index": "703892", + "from_bls_pubkey": "0x8939b0ed4fd0659427739e525d6990c02614d703d12c5adaa5f8aeedf64fb9ce66e769d83f9ec61ec05c6074d5095955", + "to_execution_address": "0x83b0b843710cb448f2ac4969cd2db27dbddc5ad0" + }, + "signature": "0x8f65a298124021cf26323bea9328da795a7f2134f42c21e28617a1b663c568058fa3ddff9a71948362e7380cfb591ec9062f735067b1a32bd2b88e9c2d5c3404348a194098c30f55f8cc050b305bc4c2baeb2a6e4ab1d49833bd7ec4943367f0" + }, + { + "message": { + "validator_index": "319143", + "from_bls_pubkey": "0x8f5f289f8ae538eca9f393fd7ed1a5432ba4c145b700075d1a8ea9530ec8cba3b91511e78662d0f2bed026a1b86d6d2b", + "to_execution_address": "0xa51dc242b07456952ea93a8886a01023c35b31c4" + }, + "signature": "0xa23a1e6d9410ecb12fe95fbdb3b12962bd46855fa46ccd7b2fe75696cd4b1788302d6fc3bc1c1bc6f8080d0025b3fdc9139a3b141407213b8123563622773e9b385473bcd03f149b0ea21e52626382dba56b95a2204178c2c454001c79289afb" + }, + { + "message": { + "validator_index": "1239417", + "from_bls_pubkey": "0xace9988853ce03390f8d5c93fa51e3a5f5b056bef4ed1f437a86c59fb687be25d0e6f4be5beeec4bc04806e93c3eebf7", + "to_execution_address": "0xcb5fb642f00b151f192f09df2db239bdd0612fe8" + }, + "signature": "0xa0053dab17b7e0ba64416b1c95b6c56ecb7f39ccc272cd57a347054fab6781ab8d834eda1a4e57ac5b037d3b71945d1805216ba518aefad29922f57f1b3149151d4266ae944b579de5399a209e482a19d3fd7e9c02069e7a01ab2e9a59477326" + }, + { + "message": { + "validator_index": "854668", + "from_bls_pubkey": "0x85a2763ffc316d21106869ce72f88e6e5aa3ffcb84689aea186a7de5056f0fa98f50ce3bcfb8a96d33585c472748b014", + "to_execution_address": "0x8aaa7b422f00cecfadcc1191710a07c00e80259c" + }, + "signature": "0x84ff1208ba8c36a14bcf8c5d3c9d9e22dd6d69f7053eaba3ce96cf7ca324ec3c3a2bd097053788b7dc64d7dbccc30ebd07fbaf41e95ae397751f8aadbc4d84219038b55e1fb3785a8f7ceebe05d629ce2c9c407bb9be6c66c0d26c14b3a7c3c2" + }, + { + "message": { + "validator_index": "2086906", + "from_bls_pubkey": "0x8f220bb09673d250a17cdd562f33ca615e83e293a43e1313a9c3e9438c218cfa9a803426d29e9bffdd884daecf7e0ac6", + "to_execution_address": "0x4dca2b437023a3bdf0f3f77aa4019fb753254380" + }, + "signature": "0x81d6211b8ee9652820795832982520799ba2eab947083a2c6e56d9cdf1e678b1c1a6c8a108ece8b1c23b234a208e6e281477d55c41fc3d04027032277fa0922a0370e76db742037a0688697f618b8b7780cbfb3725f78bf9c5f94876d9d1957a" + }, + { + "message": { + "validator_index": "1702157", + "from_bls_pubkey": "0xb63a024e98bf28daf9bf8bdcb7c89d823f29e65e362a923afec6c78aef21559a12d2c5cdf81998630ac418034c0e58ed", + "to_execution_address": "0x0c15f142b0175c6e8491002de9596cba91433934" + }, + "signature": "0xa386f611424c8ec936f7ef72da9d526823e3bd03f3452131910b7c5ae646a989c276001faa9398ff3ce9050cc0282c5003ee9357b8485f4c52a4321e9c5150d39cebf18546badc0a22d7d881a08bfcd1e76c4a7c9c8cd7f85da5270877698c7a" + }, + { + "message": { + "validator_index": "2778412", + "from_bls_pubkey": "0x90961673ed2682e726960a035e0d1e050ff0754225f97fb7501110e474cee35f7ed1bdeb70eebc97a59abbd7217bc691", + "to_execution_address": "0x3357e542f0ae1af86f17cf83906b95549e493758" + }, + "signature": "0x9590d1d0c5216aeacaa19bb58a4a66a6430e554a0b020e2977be2421bcd089fb47bccbe10f2baac88dee33fc625dd5441217042918ac793c0aa2aba45a379decdb018b7bdd277f2a66b122a95aa1974cb05208e00801ed52f7f86b671c372e2f" + }, + { + "message": { + "validator_index": "2237681", + "from_bls_pubkey": "0xa63d491bd47a8f4caf987b7a22f228dc709f8f4a0d8ac25ed72a18cbe2b2da7662daafbe182b33c81e14eac70bc2f0d5", + "to_execution_address": "0x55c4ee412e17bd44aa13c0a248def3f9a4c80d4c" + }, + "signature": "0x8e4e43252f668d04559aa2ecf1ae7605a054c1fc2d5b0a9b77f9b091b8fd851ef5a02d54ed31a66053144d0319d8f4ac11185d05cd68099841cc554c99de314a291e83c4bd166b924240d4851d8ff63a05c62def40f8b839f087a60db6ef5172" + }, + { + "message": { + "validator_index": "313936", + "from_bls_pubkey": "0x856c75ede282fb092c2c5ce1511945d4eb5026a095e7ebb8ab6a231ef8884390141d100ecc904fdd58b1f2f0e07b1630", + "to_execution_address": "0x7b06e3416eae7bce95998ef9f0ef1c94b1ce0b70" + }, + "signature": "0xa31249a2500d0428a2b38100b6db1191f1014087af8e58cdc025e28fc9e2aa5f08c74036c1c99b5e6b9f96c250700e2505201e2d4657bff1de53e01ac3c28f2f6624da4e953c9d08b0011e547902197fc5317daa051526f68684f16e1608ff33" + }, + { + "message": { + "validator_index": "2929187", + "from_bls_pubkey": "0xaa842a4b0acf1250c953110bfa6025bc646043fc268749af5274dd0197f06eafd7f5ec00e2d21a01b8a420e8178bf74d", + "to_execution_address": "0xd72e6442af2e4be382d8ae3ec02d59f4278c21e4" + }, + "signature": "0xa29e82672b9b023ec4496bc5ba26cd0e12ae4e168591a2412dc2c62cfbf0466710810999921e34e7249e3a4700c837ec115bb6bee111a50c55a1af9d2f996bb6600a4767e23781cf4eb177845372b39df6156906f9e24c5b908920161a44d8fa" + }, + { + "message": { + "validator_index": "1161425", + "from_bls_pubkey": "0xaf50133072b8d7a0ab9318facb15087021cdde3205929004ecae6df99d4cc111517fb629146398eb345a028d413624ac", + "to_execution_address": "0xfd705842efc5096d6c5e7d95673f828e34921f08" + }, + "signature": "0xa34048285c5a03bac9edfcf306e845a8cc0f8e7f7b4c5590dce0146b30b5a4d6340855b4384b53cc72b4ac5bb9b372590a7f7eca40e78ef3ae9b0e9dfe020abc94d161627ff642df1386143f221aee8ba432f4e7affa7736c65a01e6f342cd4d" + } + ], + "blob_kzg_commitments": [ + "0x36d44642cfa8a73b4c27b317e2d9bff5469b1cbe5c05d35f4b2286f9dd9a1da1edf7f9ff3b52088c513683aed613efc8", + "0x49f540426ff48680416a1a43b562d4c24d9e1b5012cefb1979a3c9c1b8fbd42b8517c05e35b3e879984ec65a9ddb52af", + "0xa99a23428f6ee3d80bb91e1cd80e3bc46cad162aa2b9c7bc5e291babfcdf69e17bb59e3819984a1ffcc715b881c2452f" + ], + "execution_requests": { + "deposits": [ + { + "pubkey": "0x82265d267f8473b8b95581d5cff9b19c81ca410538259c96c7418ef433e3c0a89d8ce7f7b91dc0789ceddd7e5f8f1f45", + "withdrawal_credentials": "0x010000000000000000000000594150410d114a888823a4369a4c1e9b4d1af3b1", + "amount": "4704680975884967085", + "signature": "0xb710f44c80db8d91f996614df20b5e9293a578f28f55e4cd65f017063fa9e36eead8417ff871fda70f6f8238fa906376066788d928178215cf5b285a0630956453a2b53fd2ecdd614e247a7c89502de682385310134924ee896501d9a1a5265a", + "index": "4707985942318335341" + }, + { + "pubkey": "0xaacb0e7f3717c59e23c32cb07ce03be33c2bb8366da2d27a9954b77f2c9198a1b5f3aea585faffcdfa4800b592c4d5d8", + "withdrawal_credentials": "0x0100000000000000000000007f8344414da8081272a9728d415e47355920f1d5", + "amount": "4701376009451598829", + "signature": "0xa9bf2689fe47ca9ac1fb90da3b08259115adab480b4f387669f209ee7747f7451af8f61e4a9c057bc33ffc18f0b08c3407be0a59b8c61c741572f5d28e2a1f6af0fc17db7c3f48901c9267606c3d7831a3d3647b885946fc95fb5689d24f7b8d", + "index": "4691461101561559469" + } + ], + "withdrawals": [ + { + "source_address": "0x3ece09418d9cc1c206477b3f86b61438983ee789", + "validator_pubkey": "0xb7fbe0486f002e790bb3d674b4259c18c6bf66510576e381e128aee6c2de771d3d5c9dda65b4078b058b2667f30e1637", + "amount": "4689808622639842637" + } + ], + "consolidations": [ + { + "source_address": "0x3a51a841aea2347f293797ab3448ea96efec0124", + "source_pubkey": "0x88f8fa6c349ee56559e614799a5788c17fdcde24ea5922a7c7fe6bed8df5c0140aeebbb46d0cadc7a9107e98344194f1", + "target_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b" + } + ] + } + } + } +} \ No newline at end of file diff --git a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlockContentsFULU.json b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlockContentsFULU.json new file mode 100644 index 00000000000..630aec15fd5 --- /dev/null +++ b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlockContentsFULU.json @@ -0,0 +1,421 @@ +{ + "version": "fulu", + "execution_payload_blinded": false, + "execution_payload_value": "108477972351052331695947002912406997250600692969108946699443471459098753735725", + "consensus_block_value": "1339858616463813965601097196322078011440769170848634627274135136300100178872", + "data": { + "block": { + "slot": "1", + "proposer_index": "4666673844721362956", + "parent_root": "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef", + "state_root": "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e", + "body": { + "randao_reveal": "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71", + "eth1_data": { + "deposit_root": "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f", + "deposit_count": "4658411424342975020", + "block_hash": "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379" + }, + "graffiti": "0x0000000000000000000000000000000000000000000000000000000000000000", + "proposer_slashings": [ + { + "signed_header_1": { + "message": { + "slot": "4661716390776343276", + "proposer_index": "4600574485989226763", + "parent_root": "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b", + "state_root": "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb", + "body_root": "0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486" + }, + "signature": "0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483" + }, + "signed_header_2": { + "message": { + "slot": "4661716390776343276", + "proposer_index": "4600574485989226763", + "parent_root": "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6", + "state_root": "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26", + "body_root": "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + }, + "signature": "0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1" + } + } + ], + "attester_slashings": [ + { + "attestation_1": { + "attesting_indices": [ + "4585702132744102314", + "4590659586689121994", + "4589007099177470570" + ], + "data": { + "slot": "1", + "index": "4580744678799082634", + "beacon_block_root": "0x17348c3f2ad0733f4b47b34442744b4a2e03a79b1f52c8e8922ee71060a05b1c", + "source": { + "epoch": "533653615", + "root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06" + }, + "target": { + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" + } + }, + "signature": "0xaffb36fe3e48b5c29794f85515b9a3adcd4206fec6dddac6926d0e985d96a9ade0e427f911d56dd90f2644af13e9740509147d149defa9b0763eecba616e0815e9a91c25178860be7d4196a9814781a4576ba7bc6398ef16b9bd5f88c4143bfb" + }, + "attestation_2": { + "attesting_indices": [ + "4585702132744102314", + "4590659586689121994", + "4589007099177470570" + ], + "data": { + "slot": "1", + "index": "4628666713557758827", + "beacon_block_root": "0x3af91e408b6da58558bd9d0797174a4392b7bf5950b8ccba1a914f820d2b7390", + "source": { + "epoch": "537693478", + "root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b" + }, + "target": { + "epoch": "538078227", + "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + } + }, + "signature": "0xb7720f152c38d7172a82186892a68440bc4d285cc8aa92c1f017f93d5f61a29cf51670e4f944648bd8df82d4d6eae00615073d439389cdf35fbd7670a07ef8407c7c71a16be062fff16f351737ac99f006817ba43a295fe5286dfb4ba7116e07" + } + } + ], + "attestations": [ + { + "aggregation_bits": "0x88e3aeac2cb7509e753b73880be4e95da67b35193a1a8d916d3a5f3b61c59b6d90d866ae7ee81a10a9ea025ade39ad5b978bd20bd2d2031d61e8aa7b5090b08248dbcac0698c25ea7b858ae37e5347010aa764962e4f70513d9e2488a9808d0510dcb3dc9385cc9c28ba4a1eae314e5c3372b3d2387836dc0750553f84b1b490b7fffcb2824b614596050fa2ffed45b30b7db4e67cd782cf0446b5448ed43cb01991cde29c15b0a29dcafdbf29840045c4a3d7e58b93ff391e3ae281185e49aeeed12188548d0dc8e904edc1c8a9831577d08b0c708dbb1784cef981e8363efb46d26f039c2561792d1a2e81218eec593aefaa25bb280fbdd25f8103381a51c68c23274f6823e00a776cf24cd4a2e4f71b6bebb58a01260798a8796d4b7af980315e35b8f0972907a4230ac6548fe53526e689dd107cfce096ba37d3b7c44a0455c0b9b91438772c83163954ac65667fe06e542696b01ee07a901c63648476bdd98c6c6f2a0e399a6f665f52e03908ad32ab30aff1b9311778645415ce6eea979da08bb81cfb630e182488c2a11b91eae07f6565fc214f5d1e4b1c0503a250a326b669a4086e9e84a703915977674e887149f71bc51cce3832db04fbdffa54d0cd93dc9586c1f9e58c9a47d6182e598cc16181b0573e46db02d9fe9c67cf8ebd732f30e4244405daf5d33bf5c1e5cb3a8b669284f83ce44668812eb3afa0840d35d418b3e3ff522f7d6fe70740d4b4eefa59b793e0e8b32b606c8f59187b387cc603d78083d2591f47bb5e0049352a4dfa1d962c817775887693bb8e38086cf7c507795662d237d8aa34b910e9fbe4bc8e5b7ab44ca62e71936918435b4e90c9107d5ba3d83f43bdbff6fc028f100025b118ac2849a1f5f8d6870f4050162783c2ab7ee69c4f50c89474010aeccb0df10375b21e9d059bfac0064be1686f3c1fee2f31a52aac5a3af5762c3c5f8ccc7138685331831fd53ca19f61e7f0616aed8e7b60b66244a7734233b4d607ba4540910c742f522e9dacea4e30c7adf86b826295f93e1fac0b201fa3e69c709add5810e1bbc857af6378182e8ef0db4e9a82610c29890734f1d9d2fe91f68c85fffc0c397de09540abe76303a56715e183698d770b190df0eb1a3fba85d2619abac01f717c2061b6ede95c0b69ce21d13b1784f6f86128d015269aced183dc083c68aa2f932d5d7a13e75444c00671e3594287c5631cbed286a1ea25aee7613d09b0cbd7265df0bf07e0cfba012f834615d2a9ec8440611d065ba1e391ffe9f85f60a7cbd945057c2dea25dc1385380573b1725cb6866eebd2594e02b020f45caf16c8f87cb9e11309991c8d24664f7e725e96e2c646874ffdeeb6ba938a92b94e574077ab719d8d2e7cfcd6ecff73913bf27c3c82e868ee829741fcd85b0ec6a1f2a18c887a1121f384a32bf6e4d182da0301", + "data": { + "slot": "1", + "index": "4615446843529318507", + "beacon_block_root": "0xd301f03f8bca9fac02d5d762345eeeabc4cfb7e903fe128c889a6bc4e0312ee6", + "source": { + "epoch": "536154483", + "root": "0xacbffb3f4b33e122174f090c8d4cc511b7c9b9c5966cc1172c98e4332b70bfd0" + }, + "target": { + "epoch": "536539231", + "root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767" + } + }, + "signature": "0xa9aef1e37252740dedc5fc9886810459f7484555aa59fb3876803fc4924149cb471ffbbd9be5324d952efafc3de4c5f705dd02134916b2afa02194fe90a8d1e8f58ebcfe0d33d0b8a97e71a3f7591cb82c37ba531c059a684b581d3857f05e3c", + "committee_bits": "0x0a" + }, + { + "aggregation_bits": "0xb8170c02376e2616e3bf89fd01dddeaf95362e5081d185fa9adb69f5bec17e22840f28947369dcdf2269436a8ffdfe7b90995dac664172d05e4992d1d40e8c59a5fc24b8bcdcd436af3f4fa98c1d3ce3a706e03f3c56085c1cc79dbbb84081cff70d85f6acbc292291bd8a96de104b9eb8d9d2235f6299a563224628dd3650ce817ca853e56f60ebc3ab6b0b3de977a673e84a07a823aa64628753bf0345297e7bcb6830e95c8e42b77896fab98d0b7e82217680a3aece1b571fd3c9beb57795ad8cb4f084da376677f2a65ae2c54b0a3ff1e02d0be7e8fac52df9b5ea009d5304e3f8a8c09dd9ae7c61a5e6f82c52b1db4395c1bf2ecbb3fb1fcf9a3eea17837e47e2a0bbe84bb1371d9794f0790339553ad1b34e3b129430543bacfe84810ce4f6318dd6b342ba6a036de629acddc0f3b7cf33459afe859f98518dc5fd957054ac06bdb00cc850df69af9da00165b4c033d0ec5f7ef59eb9350d2874a994d87fde6d5ae3ffd02a0d6cd5adf641d4c0d4eb91963be74207b6a0caceba9ad8d89c1eee8185f8a80f0b996d7291e63fd901fefc1885d47ff8a9e1d4dc14088747cf81390dd611b5034aed4f4acdd1de69b8bedbc61ae7b4923f5dc2c8fc38502710b3df2b698d8df9af14d1d84ead26198297827219b4291a8c607f2909d6b040092f8b2fdbb355e07eeeb9ad18717f4242df7e32dd6ae4e60d590726aba4cc07eb9a1d815a0cba65c01fe307b637d599001347461813883100b7044acf4479342221008109a9c157ee03412e36248817dc01cb6f9fde03baf9402091ef049b2262aad08b6f15a52c43a54139cd8b7bf9170bced776ecf26464571698fca1194a0ae8667d397ecef7f032041615b38cd3057cd4d88fe194359dd1dca27113070a02a1625ac9288ff91623d42a9e501f92d17af6c792417aa84e11e8d87230afcaa14822bf5da46f24c8d73a5b90117a15ee1193406ae76a740f8a5d03457dffebb9177f352f44f25b398e6700e19c1a34489fd4a74bbcb73506dc2e33650b28beeac3bbf01bab493c1c957662111cdcdb72a0747e91790b6f07b0b702445e3625b4ac5026bd8877f3754edb6cce9ba0493bdff31cef986a94b742bf6bd8f7c64c169c9a3fde5a2e188ee7bbe05d3069dc70410c0f821b219e6be67df002b9d007aed308a53bf7885d2605718f30e2e66658fb582c4b2aad2ab00b2478b44d82b367325ad781dcb7a5a55ec9709c424cfd2a052dc169c8a52123424ec478d52b3db0adde4e94920eae0368bbe1295390690b69d99952626204d60150612e3780c62bf30b0fa3afef3bca3087f7d04c712142dcbe0cf9892ea2733627c7b7eef4c0a1b68be0decc608c759725c80307633b0fb5fa877c98da3e995af305add93948a2d6764a527b9020849e933be3f1bddecfe2f98cd9714f3fbd649896327afdf001", + "data": { + "slot": "1", + "index": "4541085068713761673", + "beacon_block_root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d", + "source": { + "epoch": "529036628", + "root": "0xbb0b0b3fe94fa42a5e0893ff71360feab7459127ca9149e88148b44625f31d08" + }, + "target": { + "epoch": "527882381", + "root": "0x2ed2e73ea915e0c71d9afe03676b8ab8dd578b9311463e45934f49f843386a48" + } + }, + "signature": "0x958ab38cce5390fd750e87806f32ed8993a175bc3ccdab7ce2a40c23ac6117b603d5ae98d44a9780cca1f32d28bf5176058ef667b17fd95f13e047cd9cdebbf19f5270ec5a154e2ce2283da513c9ad05c26f10b0a65755eab4b1ed6f42175027", + "committee_bits": "0x04" + }, + { + "aggregation_bits": "0x868f9ed4683f5e22d7f519918cf80cb113af7b692fae23a694f588d43d90507f7c44071a3fa92c8830bd85bcc71e557e95c6ff3fa09d88a7371fa035cc9609c4ad9193d7bb76bc321428c79447829a3b275a75f146e1f20f1c2a0cca8d860475c19337d97b5dd3653cde512f97b986b147b32a524a01904c7724ec100dda5b03615d462d4732b4a58ac6fb1d0c935642316e3bdd31f285f937e40c3cf291604ae7f3a5b8b1937e71739649662d99639774b653aa12d7fa990e0d48d7dc7ee51cef5ee98b7a420bd18719971894792effa5f6fb49f3218005b08b00fa513fe2f5ced76657341c32b69e00885d685028194e2d5e6c76b4185f776000dceb810c56992ef14c7bed46f600876655a7ede2fea688c7d538f8cd0dd5b61fd5bbeb2353e891ae362063cab720d1030dfb8605821bbfaf8d71e744d1e12cd713e64e220c20c670f36de2d6f865d900c335612fbe9300e151eaa0aa37e0da6a7653bf5826cad00a21e7efccc06bb6be8a63b520a77059efe58b8e4e2e1ab86bbf4384d076ccfff6625014eaa83d724b7743e3083d55e7ca0787f6c5a05f850ad4006e2bbc7fc851f2be69c7ea652c91fd40774e92358986ca6ffe9b9f5d43005b9abccf3ac6b4d9895fb0a6954ae2f8485b2b846e33061f85529dc6f34adb6ffe68a42e7ca9d53f7e0fc6fd236ab3992dbeb8b1f2906a820ecc42135a51d8dff9f654e8d68b27849e2562ee4c7df7cddbbe43e855a933edb42b86965a96e4b6388ff9f4da8d4fd1a3b63ee253e5d855f88faba1ef8d8a24cd35589c9a8bcad8f87ab20e6f83ea5fa2e2c990080cad4bc8b90fe46247f902563ffd31306b242c34293e3c49fcd42789adaa6462457e621c8435513bd566a65f76b44088203143735e78a1d3f6e93704df14f36b1cbb8607ebf1e701ae19983b073db1417d5f75c52a3d95761f871516d76901f6b402e4dacdf9585b78d1843d7019cb5ba4257b42f6a331d734d6bc0ca38d882dce58989d7de27e0631759acdd9543d4fdfb10adea96300bde9461e8851d8dd6baef39961a7a3c73930bf6abed670a19ebf82127de6e1a861d083c582983cabf0ca51842b16ab6859f12472f355126f6c32cde777a0efad8397cf240cedcf0ee04d64d210e8dd09d4ee9af1a46e68eabdfb6264ca1f6642425a488548bc0f6984a93a9f40a44671abb9d1daf85020325586b3f94f671c8ff365d5efdb7db5b847a6856ff427fd8e362f92a9c3eb7c9555908a22a34872375ccc47b31fa7e7a189c2968a7ec16888bf026926f82d27ccc6a4bbe81a6bfb2cec4c61f589048779351a96b2acb1b4162ba942dc85a486a39816ec0708d0cf40536ed3e26f82b7aeb3cd3cb1150b8fbf64904a548414ecb707c10c5309dc9ae4cb07e1cacd32abee77c0864eb02c0a828e14bfbb190429e51d48c71832e4cb3f9001", + "data": { + "slot": "1", + "index": "4526212706878702633", + "beacon_block_root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3", + "source": { + "epoch": "527305258", + "root": "0x51977a3f0ab3110e2a10e9c6bd0e89b1410ca45142ac42171bb2b169efc281bc" + }, + "target": { + "epoch": "532306994", + "root": "0x2a55863fca1b5384408a1a7015fd5f173406a62dd51af1a2c0af2ad93b0113a7" + } + }, + "signature": "0x8ce27ee66d80548b04b029a68bf714f7918fe9b91c706050317b117786daa0dde1ea1ef9a8cc79bb41d6b7a4d661e30d0023df755b5f24daddfe6eda547945d49ab8796bdc3e63d75fcefabc8dda7f9b4d78292e8827948a5ebfa1f662db6ed9", + "committee_bits": "0x08" + } + ], + "deposits": [ + { + "proof": [ + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672" + ], + "data": { + "pubkey": "0xb94235fc2765496162b52009ab14fa6d0d0ed1debc25fbbd1fa6da8c64b58e5edaf39419489b556cb563cdd1d08c2eb0", + "withdrawal_credentials": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c", + "amount": "32000000000", + "signature": "0xa8d1b8a3f2e7d1f9cacf864d93be09c810406e24e9074c43a1a4323b16b045d428d23fa0762b8bbf203b452d9c8495340e065df1fabb6d1b56b3435d227afb2470f722aeba88fe4542eb8abc2329a6bbb965502fc5ee6ed7837ef9c938573fc3" + } + } + ], + "voluntary_exits": [ + { + "message": { + "epoch": "4559262388392254378", + "validator_index": "4560914871608938506" + }, + "signature": "0x8166b2ed13e982e6b9f05d30f42681b826099135a533d2614ef5f4f59811714245db0e1821a644859559f97ec1e614bf08b2edb294fa2edc1527f46596399534af23c98613e1b74c01871bf1dd2af9618bc0ba23ddfce8026b897cdbba8c1bce" + } + ], + "sync_aggregate": { + "sync_committee_bits": "0x01000000", + "sync_committee_signature": "0x8077d47ad0fe431af45ca6ed24efda0fa9c84364ee8af5f9e83f53b3e5934961197cb31b062dcc3d5dc793ec6de565960924b65d0535f3833ecc51567572959e2849e470be8b6a1f21e2c735552595e9765e66a599d645d33fa3746d409fa122" + }, + "execution_payload": { + "parent_hash": "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "fee_recipient": "0x23033a3fe9f2a903b4f058a4d4ef6a81852d9997", + "state_root": "0xe5ca603e08e1eff7259e45ea6bb662256d9d74b1724ee8feb0ea59f6e2ebe3be", + "receipts_root": "0xf8eb5a3ea82ccf3c1be1ac153e3f77f273a07343291711b9de6b9dbebc4c9b49", + "logs_bloom": "0xbf886c3ec849316e3b187793c3a4398b6097768d06bd968a54e8d2652d2a75a96ab3fe3195f647a70f258bba8e2e6afac13b68e2faa5061068306ca2a652ccf6becd6c58dcb63addb97feaaafc56cf440e920f1f1ee6ced53f0d6efd1209f3f0daf37dbc30149935d6dd2451da4f84d128262214a2e844c3079f5133690bbe15801b8e32f99a0c4144a1d705eabbeb18d2d32bd6c6f4f48b71b21578d4239b6197240a4ff3e0fe9aa69c35af5f59090c355feb7b601c1284334d2e5933fbca40a7792d1daddb890ce4e7124d627c763c5d9d79b5597a8580854a297498bb127e6040a3260c87ac53a8c4e69591597b0fb92cfdf430c136b9a5079a5dca820f58", + "prev_randao": "0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34", + "block_number": "4488205580010065800", + "gas_limit": "4486553096793381672", + "gas_used": "4491510546443434056", + "timestamp": "4489858063226749928", + "extra_data": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "base_fee_per_gas": "66016772192738304600348427229332912155053403334447944293225380805794998736543", + "block_hash": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "transactions": [ + "0xde78143e27b846", + "0xb736203ee72088", + "0xc7dab83ea972da", + "0xa198c43e69db1b" + ], + "withdrawals": [ + { + "index": "4517950290795281992", + "validator_index": "766262", + "address": "0x4dc28f3e0884f5d07b860b8fce6fbebc3b857c21", + "amount": "4506382903983525800" + } + ], + "blob_gas_used": "4511340353633578184", + "excess_blob_gas": "4509687866121926760" + }, + "bls_to_execution_changes": [ + { + "message": { + "validator_index": "2227267", + "from_bls_pubkey": "0xaf8e9748b8dae2368d451ff7e57388b5a9de96c48d5421573713a104bd1d7d19a8fedc6c40cc0c63f030cd788d4b79c7", + "to_execution_address": "0x42fb7d43b1006df9874a521b12867f80fbfa5084" + }, + "signature": "0xa8709cb09f500debf2bbb6855e09542e63ef41d16f12fd72cffe162f228a3bd53079d54205623296544d6a4e803d7cbd03b452f30def23fd44a939ec651d16f8b2380c6c05ed8de42f6332456e214a3327bf9081373cd174c5fd88c73f7067be" + }, + { + "message": { + "validator_index": "1395399", + "from_bls_pubkey": "0x849eaedbe546193c419188b4aa3f2d222b377a136c5defe659dfa84b5ff83153490a330f25a7ca39243bcd11ebace030", + "to_execution_address": "0x683d7243f1972b8371d02072b997a81a08014fa8" + }, + "signature": "0x860ddd021623b0457093e3e33cec56fe571fbbe8a52a68ec6660579165513eeea8dc706ba31cdd09c5c7ab60765182cd084061dcb29dde1dd5d5956b404b389f599a34da02cd3a50385a148dd804110335507c0f05bdfdc495e4a4953dafac94" + }, + { + "message": { + "validator_index": "1010650", + "from_bls_pubkey": "0x8485b34d0bf20fc4d60d681351091329d0897bac95042cb32b979891d0d5f7f752df602f71f63b1d466017ad2a09b8a0", + "to_execution_address": "0x27883743308ce433056e2924fdef751d461f455c" + }, + "signature": "0x98536cd2647e9ae4add0f9ee0897f9c2bc423061a913bb3f1d5b79d2e3ac3090728c5023a892b7440c6cfc2fff73dd4210b61a2c7ad48282924dfe7c6c6f4884353d98d629b374df14b429a91ee58d18a80defab79fdf5cb71224fec86c022f9" + }, + { + "message": { + "validator_index": "2242888", + "from_bls_pubkey": "0xb62392bd8fa27ebbf0cf05be5bda4d08cc63c65e26ee59edc9a002682513972e9e5810163d19e720b078ad5e45dea8ad", + "to_execution_address": "0xeaa7e74372afb92149950f0e30e70d158bc46240" + }, + "signature": "0x895d52f7e0948110bfcd91fa281928e1c76841a86ae348b51e1c0bb9d10bce59917d950c415ac89c1099eecf840f62f0015790d194a97cabb85ba45d5ca678a2c7acfb4d86f22f430c7292bec30f1f0a24125aedf3132afd0a76b6ae0abef7a7" + }, + { + "message": { + "validator_index": "1858139", + "from_bls_pubkey": "0xae7908cd2718d6801bc1045d733f3c8367e3125c163784df4d34f356f899dad12024a9219f126e63dacb03ac068101ea", + "to_execution_address": "0xa9f2ac43b1a372d2dd3218c0743fdb17c9e258f4" + }, + "signature": "0x9846a460e26f9b19bc8a79f50838489e2764fcceed280b9f8729d38d13b6154bb69a8ab360a7cbe0c80a3bc7e92f5fee0212311895f198f7ca04e838530bd79c2814c2d0b4417c3f760727b92d279c91ccd6c94a08924d7402dbda81a2872ba2" + }, + { + "message": { + "validator_index": "2934395", + "from_bls_pubkey": "0xaa7ec4a37dae722143cee2fabacc1e11964fda925d7dc00efc1c3b3a537f414237ee98b5af27a6231ae5097e4a133529", + "to_execution_address": "0xcf34a143f13a315cc7b8e6161c5104b2d6e85618" + }, + "signature": "0x86c8e92840bfb3b3ab773a6c3f4bbdc36416746bc710630dec288404296db89f63eb25d648a0795e30e6870ea5a6f5b70bf684cbe96b72671398e89a8510991dca3110bff970cf1abec6c3bb3bfd7ba1b37ac1b973ac024bcbad0287d47aa65d" + }, + { + "message": { + "validator_index": "2393663", + "from_bls_pubkey": "0xb4de3568fdbb0af339856e6106dfd7808879d0564325ec1deab8e8932c4d173a8d7b04a546a9de867619730b512748b1", + "to_execution_address": "0xf2a1aa4230a3d3a803b5d735d4c36257dc672d0c" + }, + "signature": "0x8a5025a2a1543e6fa0fd574add3bcb06f96df170dbd82f51995a261559948009eefc0c8fc2c474c387cf52a8c5a698940eeb1fff88b70b5331be065192f46e47c765cbb3678d19a6a84f713e9c9464730649720a6182ea2964188a8dec26c2b4" + }, + { + "message": { + "validator_index": "469919", + "from_bls_pubkey": "0x8678ff3eff860e3ea75396d0bb0d548326928ecc62c8c9b30b58f8f3be02e3099ef80f47a13c7fd828412ba9f990c25d", + "to_execution_address": "0x18e49e426f3a9232ed3aa68c7bd58bf1e96d2b30" + }, + "signature": "0xb47bdd50d8e3ee31806068b3555ea1fc6771e2caf4b06d07394444468feec69e9d153e52ced5b5cbb5f8d44f2e981a060a691dd8cd0d86c4d7928bb908eabca9c2520e9033cfb4e5f13a80d30d4e8de24eb5a09a0e0b734a55811f13edd2fe6a" + }, + { + "message": { + "validator_index": "85170", + "from_bls_pubkey": "0x82b07707a61c37b860d0d290ec1c330ad73d0f5970b72c198aaa567ecbd2d2d08e884f2322519c2e17ab2cc3e9bb26de", + "to_execution_address": "0x740c2043b0ba6147da79c6d14c13c8515f2b41a4" + }, + "signature": "0x8008c559949fc9cab7b9b663aeecf3583273f07c7081afc5327ea39297f5adc1f1d8bb8d9485f1fb157a8bcc291625fd087e435b653ef0020f3fb8e4dc7ba04b6ebc64368aed53b868638cc39a536c0c077d6a08a4831f06e9145d328a52774e" + }, + { + "message": { + "validator_index": "1317408", + "from_bls_pubkey": "0x8a5997a79613125f1de5bd526981865c391f914492bf08bea98d89e0b212f554bab770783c094dc2ef1229e5cf6febc0", + "to_execution_address": "0x9a4e1443f05120d1c5ff9428f324f1eb6c313fc8" + }, + "signature": "0x877005ef02509214e9ede55f546c2b003c0209b7d885ea680d76369fc415180ef4fbbce332fce18608d3533b8d6d284603e52bc79193b0b2128c624332fe1bb1d1e1956361333e0ab171f1bdeee927a169d2ab78498189a9e8f4036cb47b77cf" + }, + { + "message": { + "validator_index": "932659", + "from_bls_pubkey": "0x8af5874a9623513bbb3200f80c2679f001ca294967e33f1e201f6720e30f3c8ab69492f3dab696b485436280bd5da4b3", + "to_execution_address": "0x5999d9423046d981599d9dda377dbeeeaa4f357c" + }, + "signature": "0xb21c09e06746c9cafbb504cf0aced08a807b87f62d57b526d28277802395a420321c8510b91b5e835a9fa47e6cc27d240d0991f1a05798ec502acd18dd8566ae675a05579e71bc8ba327ffb5f92c66c1f58ed89bf2804863cf50b958e79add78" + }, + { + "message": { + "validator_index": "1852932", + "from_bls_pubkey": "0x95e6bd6d5246d58b9d56e43c1490b8dfabe87ffc399721bd63de8a38a7a6bcab8399085f3ed777a668f857f591154b73", + "to_execution_address": "0xe2fd11426e5181a7eb81549e52a9782b7fb613e0" + }, + "signature": "0xb33229dc7bb509bee6290ece9d436db0477fc49ec3cc26e1e298eb72d62d0b4d28e72b271c0c3a9b9f86c44c883086680dc51747dd535a7b0b693302eadd8bf44f802fac281dc91025509a5c6df8bbe7455a3f30d32b2cc27c2322c7f00212d0" + }, + { + "message": { + "validator_index": "1468183", + "from_bls_pubkey": "0x98b245d4ae533c7648fd14a7858d17a792e7919a81c31f1db0dd1c0beedaf0fe7c7fc60be0b446238fd5e5c94220a538", + "to_execution_address": "0xa148d741ae453a587f1f5d509701462ebdd40994" + }, + "signature": "0xb6df5347cf18c72adf3ee1e2e5e942d8b3b7ab160b1f66d4991bab95e7050f302d723406d3410b9275700b3b998f2cd517c4da35e0294235f656d5c53cabc553f02b6a8f0e14a74571029f380c52a935c0230f4507ac486e4cf01ede4d04270f" + }, + { + "message": { + "validator_index": "2544439", + "from_bls_pubkey": "0x9866c028838d222cfed5b1ff8215618a8d6a81c3e96a34759e78172fd2d18521fdf686d1601a860a38d3c1fd8c9e22af", + "to_execution_address": "0xc78acb41eedcf8e16aa52ba73e136fc8cada07b8" + }, + "signature": "0x98ffde69b4d92a4510b5d42ae9bcc05315ed0a20fab2ff6fc8e416678f150d7bfb961da6774e86213ee711a2b065c3d300a13fcf630d7f303c59d848ec47905d2b439e7bb4f3348b6ddc448aa00f7c6eb6f64513182a3d335e2753f66cbec83e" + }, + { + "message": { + "validator_index": "2315672", + "from_bls_pubkey": "0x84768946243cfa8d15223bd7222c94a5ce4a610b7aea979ac29d5b6f30e721213ed5b3cef3b4d2e700251be6a3d4dbfa", + "to_execution_address": "0x23b34c422f5dc8f657e44bec0e51ab2840981d2c" + }, + "signature": "0xb9014738ce2ebfe44a8255a53e34b604f223702435a966b81276bd7967cc1e172a4dbace09be70a1f73b300d83a7a8ec161cdc911b167a8a6489def11edca95a3587eab704e98325ce29eb4f86a477755421b480ca39020c82f07e4977d9e859" + }, + { + "message": { + "validator_index": "391928", + "from_bls_pubkey": "0x8b37bcb9abb306bad986453fe618bd0161b29c9f5f1eee2aa91f44ad2ecf75604c38975532425ca87de0e7cdf3cbe44e", + "to_execution_address": "0x49f540426ff48680416a1a43b562d4c24d9e1b50" + }, + "signature": "0x954da68af7adf486693e9213a63a082fcf1b1ed99c320314b73e64c322470329df27c891348c17b92dc7972dbc7d9b4215c7746c756c1aa2194c7217ab902459290981a0905683fa8563a2a7241f2bc3a3d6e4fca48d9fce1c6c322c4835dc1b" + } + ], + "blob_kzg_commitments": [ + "0x83582f424fd7244f213350c530fd112a5fa71806352876480227941a471efbcb4c76127b24d689436e978f5ff3327e62", + "0x96792942ef2204941676b7f0048626f766aa1798ecf09e0230a8d7e2217fb256e395d8d91f376a31b5afd20bbafae148", + "0x594150410d114a888823a4369a4c1e9b4d1af3b146f383eace5399d4b17e3363cc267b8c513bd892003285f184da4d95", + "0x6c624a41ad5c29cd7d660b626ed53268531df243fdbbaca4fbd4dc9c8cdfeaed644641eb4c9cb880484ac89d4ba2b17b", + "0x32ff5b41cd798bfe9d9dd5dff33af5004014f58dda61327672511244fcbcc44d9de7eece5c7917b77201ff98f64a86c8" + ], + "execution_requests": { + "deposits": [ + { + "pubkey": "0xaacb0e7f3717c59e23c32cb07ce03be33c2bb8366da2d27a9954b77f2c9198a1b5f3aea585faffcdfa4800b592c4d5d8", + "withdrawal_credentials": "0x0100000000000000000000007f8344414da8081272a9728d415e47355920f1d5", + "amount": "4701376009451598829", + "signature": "0xa9bf2689fe47ca9ac1fb90da3b08259115adab480b4f387669f209ee7747f7451af8f61e4a9c057bc33ffc18f0b08c3407be0a59b8c61c741572f5d28e2a1f6af0fc17db7c3f48901c9267606c3d7831a3d3647b885946fc95fb5689d24f7b8d", + "index": "4691461101561559469" + }, + { + "pubkey": "0xb8fa03e47468016f15b89212a91f203194684e0cbbac07b6cd428fc7e10cb7d8a363985b46972eedd7bc434fc701c4b3", + "withdrawal_credentials": "0x0100000000000000000000003ece09418d9cc1c206477b3f86b61438983ee789", + "amount": "4684851168694822957", + "signature": "0xa529495633ab9ab138c0756646074fc7753fafbb44389490ddd46048f29267f6b85e46abbc1fe71c42fc98513ed0f6f800ebc9eaa04b484e29af7d7bb0c38b5e088435aee8583a812545b3057c184a4634957604ec0647d1fa81da2d15a5f198", + "index": "4688156139423158509" + } + ], + "withdrawals": [ + { + "source_address": "0x01eeb941cebf96b04a6e6129b9adac2fdce3046e", + "validator_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b", + "amount": "4726163266291795342" + } + ], + "consolidations": [ + { + "source_address": "0x60939c41ee39f30814bd6502db591331fcf2ff47", + "source_pubkey": "0xa4a90125ab79fbbe706de307f1de84a6b0dc21adef413c6a5e91ab58e575164bd13c0517a318394a56adab9326607e82", + "target_pubkey": "0x83feea64397a7a9d3fbac0b9a16ccbfd63c4d4fa5d0fd8bbfa13739148e752ce1e9b1e01654b56cb56a196fd8d64db3f" + } + ] + } + } + }, + "kzg_proofs": [ + "0xf99b6d41ed96ed2fbed49f5d78a0b7992e0bf8d7b707b847e9cd47eb6d9a9eadd6889cb26d5676ed9cb83594a0f35a15", + "0xa250734616e5e744f48c493c6d932629d574d0f2b953d406c14b88999cbfbe0227821f9f2e60836eaef3cf363a0cfffd", + "0xb5716d46b630c789e9cfb067411c3bf6db77cf84701cfdc0efcccb617720768dbea1e5fd28c1635cf50b13e301d462e4", + "0x7c0e7f46d64d29bb09077be5c681fd8ec96ed2ce4dc2829266490109e8fd4fedf74293e1399ec2921fc349deac7c3731", + "0x8f2f794676990800ff49e2109a0a125ccf71d160038bab4c93ca44d1c25e07788f62594033ffa28067db8c8a73449b17" + ], + "blobs": [ + "0x9af68a41ce1c91d7f3859b8456f450980efcfcfd271ceca40448f60129b609f8e0eabdd889711448383fe636bc0c68955ca3ce341bfc9bbb99e14fc047900f4627648118f3dc311db2defe3bd0272ff5a52dd67fa7a074189acbec41e4ded3509e77afae24eec4ed310b789883e2a6701f1deaa9bdce93ada976ea935bd9594f9ea2ada986e3c4e4488aa3b9390b8464613af844e31b6eb76b1a320abc0be6a11f2bbc885bc1c3f9cdd4e56f4bdc3064e77c1a4ab1ec9804091221e948b9c8974010a11535b8c9e85dbb37138506cbe4918330d357c365f4b04830b4f70e225ec38a90e17cdbc6bad51a8803a88be814249dff4314de289711b66c7cf2250a6f8e1d75d9ec2715dddaa0ef7ae9682d05c7601b37c025451ce1ead25119d6c69b2b36f90714dac45b52a0e8b37011fcfc88d61809436c57635aaddf8a7d58f9b7485df445d714adcfe9f5fcb9dbb8ca35d52fceea1bfb1a17b9a5e7ede7b9edfe38f71d4cefd77af68efc9bd7b86de73e0310a1f9db71e131be1a08e8501d768771942753654638b8f3910a780e04b5facb6425fba6f4b72c2fbec2e567cefb7d0cd2a0311a3d0693102b9f80d5cfaa7dc8ce8effb8aa9363548996910e24b06749ca46b142390203a0f8bb98792fa116fa99b65cdd8c1f6a7ca92735dd3207650815a1a7e48e9281a21b39945be6346f4546b829f8830526787cc8b99e4fe64450580e385bef9224d9e9303850474b02f39f66a17ed7cc841b9d75cdcf61303dcb68a287d83f1bbb4d4260de202f011e2e681b98f8eba78cc0ff968123069a4848fa7715ddbfda82c8f18c0f08cf8e45878da37f8551cb58c31e18510181ef7c39e057dcc37f41365a27a4093947ea0e72f4494a5522284b0637a9db0381362832ded75c3527f240d6f8824a56113387c7cf42dc2fb1a35e6e943bcc79b15526700853b1b30b365d52f79aa4fa3a30c04389f9a0ec87260e64ee0a51e41c2cac50b45dd710976dbaabd3e41630706b68053a0348f9b51cb655d4c5437b5f42b8d3f8966cf5fdb611ff12d39df9d5b23611b3b7a3d96e41af322aa7a0a9a97f7421bff9365c4645bb31d33677cab40b81d015b321a1f8cfa2f1b492338d928c1702630ff3159e21ec689f48df0bf35f8e8efcc15b7bea73c10ab7867278bacd3f66e3a50c440151c190544721995f7011fb32facd23bb9297fa9cf454733d2055dfa2eb18e13098a2d7155ff244ccd5c2abfe01d56d9fc832c4b9d297b6f5c13922b8122336f957d43151ca7152f81a3f96f7c7b5bdb8b22d6a137946328e0f768acedd1e65c83bc5d5d35ed5fa4a392598702d968d936000783f9b90086502169596b81ee094b4c1beeef8bdea5d02f1f26f65fcebf506a57a4ff1ed103e98a265c63d3def137a3c2cab766bc2574034c7370aa1f8fdcd3982cd615053c58efc3faa4c842e408cc8200f358c971697a0a05e2b1e6a90d4c9a3c8bead91e11c610f45107e0b306f36e3714130712a70cbe977d64b0a17c3d078f1677abcd6938ce3009a864c3c9b037fe0b07ccc9f7bb4714cdce8378f875d9ec663c67b3812c26ceff16687765b704492cf171b9a8fdeeea2d48462e814f235d1c18ea8acb27a809abe3ca96f941d456d1aeb40bef0397798a27e90b23f5f63f1577dd37de0a19a64e633704e2d09d99a34c4166d4d360889fb50db1c12e5d1ba2cc1bcfdbb8f5879cc21f135151d1a2c4b92e8cdf5110288b254f14331d12ce120e2dcb7b865fc4d0ba412fc1e4a69ce9879f6a81ae3a868ca9693d02daea5b4a972dd73df0cecb1cefe11302d55e88ffbbaf7111de7a256905e18e6d9d772aeae4a1e085ed8336f2f99fb706812feb3ce7992e2385b7efe4086e760fef14b0ddc8630fc4ebafd7a32a036147ac7d7977abee40414812a46fad600650950ed81fcdf5bfbe20b1fb64d0bf81b05d3e2a66cb0fd8dfc787c95fb2e743c90d59aeb2b0e1a1756258c3d94f7cd7dd784515f69e662a8df4aaaae7657e885be389724f5d39ad95a65e14aec1015b98d479c666ad88d4e43ced216731517b30cd9addeacfd4028e5d2daa4f08a83bda2d9fead7af268d5cc20730e862f4dd7d78da98f9b1920f67e37da9f5ffd9f212659f6a64284d6461e02f21961d8ecc5b4e9dd6dc8ed86c6906b68ae395245a99252c88736cd2b8c14bb171a792ceb8098709c7c77b871ff4791ac81f1d5241c7fd8fa9f98b1ae68b02d8df4473752f72f28c1a8ac18130c0526f6b94f64406c23e7d7bcc1381e44344a65ccea42bf1301bb29f54514524f7b253827ec9e712cecfbef9d61d12ac5406d93ca1e0be41a2f2034b77e114ae6ecf487995e14e25696d69579a97cf83bfa197076deca065afc5a48e3edc1c93a2c709e41894192638dce6091926d9fdc801a369e21028025636e4e6951edd2654d3d5aa19e60d6ae8504aad6b25dacc9455087cf813f3e27601233a1b8c21b62317f3f0cc50bd52f8dfd149f51d5a1ee0665e75fc52f43fdc71169c7dfd68e0e551af1b779d30b7f0ce20069aee871aa7b1c3d0593b32328c2786389ce3ecc008e02bc5c150bc62c72b016b0ab78064afc3d56fecfc1894943e51ca20b46a5279f730d661438ac678230c0d14fd9bc52aeec62cb6a6bb2b2205c9186f717a13dcf89f7b204c334f38459ad01cedce39cffcb7576946bf14297fe422220547a0beb6aafe63ac3286ecb2a524e09a6403e7a7d076caa4d29965fddb5a39feda07a5d131049b10029e949ab64b5c3518c443bdc75e352585683a9eff358d8e5b47747e61837b2912bcd3be25f48eb79f43f96d97ed78d1b04eb98e5099c1f6b0da5c152692330ccf4110f200261b7d2979daf05c68ebcb5d6d51d2789cf29a436ddb13bc926ed9ca2c40fdcd1e587a50bd2179e56b4e1a101e341d1066b49f96e85de52a220d4b822de8dc0929eb8b9d953b1731a009c27ce0645ed9b17d3fc26b0294383672587b969773cd098da4ffd656b18626f9d531b99236e65dc382c870f1e599d0959157ffba0165b9c053067b29b8c610da1b5dbb35fba045baea3e9b73754469dd8dfdf76360cc6af33707cb40013b14b21ff91e127a91f1c68865db2922e7aa1f2bc19250e79e8acd88395f3b6e9ceea5004d91b35e3ddebc74d255fe9f3556ea9c1c01bd8655ce5275a7e0dab659672188fe019fa886c46086a36a80c349ab53f8a3df3631d01d7b9ccf9905255cf3a1aeae7eefdd87dd4389fbd0340382f93a4ea4acd76977af0836439a8b59ea103ff07c3f87b52c6f79d51974623e69f2d21ad77abeb9cae655487679313c4181e8db1601ea3797f67c584d746142696e6e9afa81518864914447421f3ab59a3244c33395e0ef4e6dce1a8444e32b6691b75649410afd93a78d011f6e2767e9843b799e2ac502dbbcf3f72d85c6d8e8c75b96d48649cdf33b08f74ebe3d518ae1140a97f23ae14c442e5de423b4b5d19cbb5dca33292702c92b031f99687ef81f8a3654a7e5cce4aa0ae3e655d4c30508fe454d8dd42e8e1cfb8048c4768b6112d562a10ebe4639aa67a8ad7941a0e11d37c34ee3e81254f2b330c0546c9cd4338000cb5278198866437976393eb2364d5a2b6432cc1f03bbb3fe5391269c25e0f5b79abf08d07e245e2b9873dc12af123eae70550b2f6ab3f383af155569390bce2d77fbf6c9c0730cd41f7cc71d4884bcb2fb84eefc16a86daec68af4762679726274dd96e4452aebac618c3a1639b18ef23b33dfbc388dfaae0d04b327a590db88b46ada374a62ea3a885ab190dbf677154a269078bd8a1808ecd5129873cfaf9003183a4bee64d35478eae21642f867dc2056d3bb771bf6ef6f81bd071ce905257e879b7387c346367b4f3ccde4922e6bcb096791f2e6a7a395d43e98f2ed38112d6d5e3eed5028ff52fd45e720ecc9af049a0d9da2ec8d120fd79ccc2619b1eb2809fd1ebe34d28d368dd3363a6051d95ceb4539154b8741c4d35cdabce337c6cf9918ea99aabcca67fa3d8a6dae356bf0cc7558bc8a681cfb528dc55c27f7a6a6c5992e3734f3db6c66338a2993e750f28383d75747198141390ed92edb3022195219cd4ebb6bba943770da17371a7201aceeeb0875c0581354aeed2e39e327b487443e405669fb83295fd1e21ace65b2dfa065df616a6d162c351699d817826e96756a9c4b3362781e50bdefbd22611816f5ceef6ceba58d2af820df5772178f31d5fefb2a6442e53e34ad180ef92048909cf55835615783196c0e12d711c127291ea1e5ce1ad5c7e0ff815d230b7ef8e029d31dd57586f202a347369b8f3a288b56a01d49e26440c736b90377cbad0297ab876069a384ab47644f5300d3fdbebe3cd5a2ebff3c9bef18445998d0944cd4bd7534555f286f5d87671ef4b10f9659b253c03e410c5846c813407a8158f3b3537cda597642161ca63c476a61c18538ef643f19c4dab06b4614832d608750b4d50b576b9840b667b8a07796ca4cb27010c3a18a433ef1e4b4df3f1ba91682ac9ef33cbe11bc0eb3d0d7710645b65e778e8959e2ac8585cf99a29bdf1283056157502fb9a0089c8bfa0f937b2d3b2abb92d882d357a13812d69bd35ff719ca4392be121773e46491538304f532de9221596107008d0630430f08e9cd19982fb90f88e9cc4ddffaf93375a9b230ced0e09598399a5a5f79025f8a056d1d4c697cfdeb98f523d50af7b386ac4771623c32d15a2de560e8c84e11ce46f815ee5865905f4624530c1f173a75e56457e7bac749915f74b2b347188c97614b09c122ee947b63ffb518a92d3c75040db5679c6b627a7a24689e4a002162b173748bdc58583de960042bba2bce5b3582ab98c24930a112057d7068a3ef05e6f4cbdf7d8c91be59914bac0a706c1edd59df834699d989fb5a808c25e433b96b662d50fc579723ac13db05f18f97ac8d3836a0651dcfe242b5e33537e13ced1a999ec66406a4bda47eef6b5e3d5903dd30582dd28986cf3507ebe4b025f7c51acbef46dd2b65628ac380d8ce833adc038b1423f51797aaa73f0b0c93306934a43ddb78355485b96311411487c295a80ca8f4b25c0f6e6a5eb8833c7116c721f9a5fac5579abbb6960b1051ee746de0937d0fc39801402c59025986ece9830d0febefc4d43374f3381dedfade660ce5c8dfe79d72f72621340da77f8512c6daf62c4a48b8983c931257c0a1c292b1ec2c2cc8af27da9bd945b2dbaf9b420c1e1db58c6db772f2ae4a00155d5d6a2b9a92c6b9c78b1fcfd164864972fc75c74d124e6972d0cf8ee8686117e9b0549f1680971658e2455ef76eedfe7c78a16638b1b478e049e1e0214351ecc2b412d43f3f954ee8ac3911d353b8952dcb6053ded4248a47e521f9fa24b1e66cd0dc84a8e7e7500819125be91a14d2c57356688a83fb8e19ea5b7a7b12c515e595da5e11083b13da72306bfa794ab1ac1a6ca12615c0884aee63c23fc7d13a1da19dfba74d29062f522ea54280d4fcb86dabeb998087d6ab1b942e2f4acc339b89e6703619cfc74dbcdd7a2690abe521e5a3ab5ad54eea71c959180eb65b69f783c24d1dbf687e10d740355740b150414dee2cdeb76185c38476d3f2a1e3bfd90b9d76a7f5648c9fffefd489d97d3d36ed71e2994497c36d86d2b72118cb0a25fccdcb2671a3e02cb64339d01b5b8970ce6f794cacccf4460fc1977522ca91765a3b03e8b014d8cf333b9c1ec74afb58e63cd7d8a9ffeee5dbbb576f1bb1f7c0b5e4de55ab0c47caa0e6d64c963cb1330d7d6f72089ba4257c53063a2bebb2bd09154ce512e79a2f22a6352bf19555b658276862cf49bf0d40b49f26afb25d56fc6094c97686b644fd1a4a889aee6e078d65b8bce6fd29c15d06e8b30fe6c77c9f91c0af3ae019d74df3eee614098c36bf975878d2b65654b2b3b64fe9679f7881a455b1b34d073c448a0f115703c154647b697627f03c0be8836455d55933f4e8eaaafd492f177469048837fe2ac1da8cea2d78f656511b427efb00b13f51af2af217e7045ef7c2951c6679ec1260bdfd1b89328fa3ba07b9c5f67c26b713fbe47352af92b3afccfb9051b8638b7a1f7469f75a701b2c5a54da57f763c2737ea1901b1bf0b33fddc09ef3e2afab7bb495829148a617c7deff80692b729461c7358dc260f0bc3c5b51755cfd5ba5badbfe52891aca37ab71d2a4bac5d1ae358702ed44f813884d572cd3375c2b44addac00112f0b75e70ca8c85e0ab8b9dcdc5b37f6dcce027aed48a83e93d6234f245f706808a32919bbc58a4bcdd2f6cf7b60036b18fdbc59260939bfe509c811c6b6300c536636d2052a7b7e2a37841c65a597600a7a20635775a7c3cf516ae614f9ed41d99bb621637f7b5ecdbe59f9e7b9ecc4600fcac84fcc2c9daf3f50a812c28b9a928ce7d3127bbd3265b03299f5b86fd0a393b8a8a41f94aed4acc9a6a071a0a48615aa720335495999600c5f1378806081e8d09415bbc18af0e8a4a110b1f86e638f07d6264a7bcdddffac22af19f32139245aabc92329631de1b8d528b60fdb7180a744983182fee112188507a7928b73bb823fe7fb56c6d39e5e19edb89abfd1b859243617e2f593501c551aea98a80d20d711486565ae694ff108bfa9feda27cc8d3a9180f2cdf145c7034b9c37b3a390cf184c5488dff4bd5543a795d7952757dc7c53fb5f78232deb28b322137fe4c341d90ca28496aaca6eb6d94e7395a2227e718016a8d496daa0174f7dc5b3f7b1e94e7393338716f4a4fbc6df551e0801d21f31f29f161880c18278c25ad780fde764f2f8042bc37765c44c07b2467e36da90adc3ee7c204b6d31617cd228096540fee700765f2de9a356d77cf7f8fe56bcdf05c69057d59087c37f82a14ada345c8ee654a0541d5f5219860341c622c942da8c31535e714f3786207530bd93e886416920accbbe80eb30a563e38883875b31d6fe5d57124a68588cd55d29050b70b5b42d58a512cdec2b0e3ae4d6e04d98391a6ca40d25e9479f77d1f77a17eaac41e65b74c0937056bf412d7e44701aaf3b21767497e956ca4aab3c43cbcee333d0734f662829de2e934c80a07603cffc5418b8edecc90427ea19e07a1bafe8e2459e64a993bf29fc1ec92b6d05eec8fbe7f16f83ce7ce358d0d23948df0d4ff97a9899493224d44f96909dbb2ed579cf9c33b77cfb2e1d9e4885054f571a3a9ac3645c68ccfa5036e5ecff9558d366bff1535a75b82c0efbda8569a2bba6a65008abe6bd30e910c8bc5d71ba639976b35b091bdea5c58db6a087704a36fca6856e091810f351439eaf42e61bce7722bbf62c9479e66456dba87b8cc5ad43760a91a18dbf7a38d4545efc8561a579f188c61268df951781b96c483b815f4dd39348e40b3d6128640bb456356449fb9ff18679dcfb8efb9562544b8a664ac1813804de2d8d203a19ea324ea8b5fe6679700c74898d8250a82e4bd621496902e8f6b185b3cb118f31985082c5155101b5a334ee4aa85d255238641bb67abd4e7f2c37d0b6a3bbde30c4e2e65dfc45ef19cb66af363400dc28df8e38373729e6321f798a85d870ef5b9e9b863b135fe0c950a4fcf26d43fd70475b55de361a42da76f53bdcbf3e14f65b966852ba6c06d53b293c6c6250176dd6ce04421f04a8b1beea93c4c12b0a5eb4f3ea6e83304525ba9c3c927746a0a0b7485df010aba013e7102368ddc5ceb867862415b5cfc3619fd10178e33117c55a7678a9173e1ebdc5e163be23014a52b58f1f65ca154aa7e21639eb3352ddfcf2574d39bb415b959071531b3a66e53ce38bffbff18613551b18b75ac5b08104f554161c744abc4964d71c4adb906a02b90e649a8c4202b9084ea1ad4e0779c0a060b58c2e873e0dc225990d53fec26906b09a60b3b55b190dff247f55f67b8a712ec858cb1b3d720df3a596052c736e19087291b01d7975afcfdd0cb58b050fab765eda9e4b97a40e7294bee605eb8749bcbf3c81da155a18e34d081f19ac60d54a84c3f0738141711a339affa405486f9bebe25a912551978b0966955a4e243b7a12fc7ed68aa946e13348ef5d522967ca114b201f5cc81d8b7837f0ec4e5e6c0677aef933a2f08001f1b3661f011f93008e45ee5ad1c4c0e34e965c145876baa767c48536237f7954d263ab208c1957d4017994a86a5d3b381fabd7d2617cbd61b0803aac360e6c3ad55017e0783c9e172848135bf4c06cbca8e2b54ef496d0279097a6910fe9fa12f9329871caf25344079722e71480d5b5c2771f89e0c7939155234aecce43a64592a42f1dff68e9f854b6ace583ee1d8c07928f64e9e1679f2d171875180859dac5fc724db334d4841c0450e62eb28c69a15b55fb169ff58e565efc12a2aedea1afc70bce431b0e85fae0e0113602926bda9a1546ae44a8bf28aa5025489c67eef450375a09fa93907f71e29ceaaa4063528e471207272ea7a70d659e700006dcc5cb477b07cce5f48b43120a39a7cd25fc04b648baacfad58ce901eec66135298f4122b728aa8882b657de3c2903126d44ed0284e225c50bff57dcbb9add4f9fde96c20e626c8769103fe85b5ec60f4804e11ef768e9095c673b22726b9d140b3ca4b2cc5743ee25d8f58883c0d8641b2186d2a398af85621650f4976a2d29c5f89697a35d3b4d7cede34848ba2ed831fcf539e1710ebc87ab24e7fbfe2d96ca378ca41cec1a3c8618f46609b40dd6dc13c044327851755570a983ae92514665b09e2456e577d1ce75035513b7e4eb247886366cf4a33cdb191bc5cc35b78a64ed6df41143302b7f99023c9262084a0af5a4272de5a9e022a2699d1ae07996e50a7c051408aceb9a3b0275549c9c485514ce81a21731f3b42be0716d5bbb03ac349ddfd08e6fb64c7f0d105da719dff6580b869f22994d2d21bf98e620894c0a671a196c8f8eb44227244d468a252ff95518c7033eee8adf02aee0fdb2b8515a3417e2067781141b49df2674efedf9ff82a2ae713078878b9466095c3e40d60591407b5eeab786e0514bc316e9c92359f091f654cdabe9215dbf48858b9f051fe8c8bbba8d04bf966d4a03fd42ae369d3c212d39bd029698aa47c5538ba4e888fa3b8a2c6ca7f9d6a362fa364ceae3df6d3539708a3a39cf8bfb1d420836f0af4ac3661c984d707c3b336d8842b67a709018d0082ce1c2837232e08546d671d2160ae128dfd5e66037ed58abc957712a3d74fe1489e2e4566fcf14fa9c3e23d9230e2055ab0b1f29fe1268621804e355692ba340aeff96e039e6b0d950cca3bfdad05d876bd266217f73825bc5320e18227df2b7afb593d4767c224a3e76ef8c7a0a67571d6d072a66cd3ae25dc7d47315acf45d711fd936eecacab517aaeedb60b71d2dd2a6d3b330c75d6230533bda0a410353cfca2ea0a3667cf645bfe6f3aa95f7ae49a29fcc35f167baf4b3ed4aade04fcbe04e969202060250b3a40471b16f7d80fbffc43bf3560d5e3c7fb90449975c354faededd902a983a0b0ed87c205ecd502adba1ae31bdb548d4fd10c65e6f82b0fb351514d9d36efd38acd696ae021939dad714f5d10af9bf82f5889d2e226cd36c950d0e7f842a192fecd6ecb31a276bc41c054e558228e6ca225d4a9cb39ac2be63de7fb04e6382414e944324afcf2fa29ddcc37262c51ca00feb2c0fd5df960f21649d635127ac9ca7306fad958135698b06994b3c063733e735c72ffde313a209bcce150c7662a386b05bfcecbc2e531973c410ce567c430261cda43ca2ae30bdcb74fc32c4743d827aa56abc98c0ca061b7e2b79d37a9d2a3ac631faebe32ad2b7bdd9397b306173dac196e53dc1978774db3a7bd0a9b1ffad3bd9eae1ded6e96c89e79f77ab617782b7a8246ac6e434fe7b78e955dc6c794c7be4cc7e6f91bf185e8a2388decb20046745f2ef03f8aab745560e9a83bc41cee6f2a60b51a6faaf6cbe68f38fdc6b5a6372b8337ab958a731673190c168808dd4728eaac07a3f67a57049f20dd9e25f5aecf1ae7460cf5628e501584b2ec006002643cc63041a3ddc35fb2fb9d4dd540db2797058e29151ee65d4c91b42c75d8a933fbb7ec6e06ffd11724d5fadf05cd9c58699c2fcfca92091a4eef5a898d68a8938117bcf9c005241ec5f654869ffcf678edff6f4617341e95386b70c575d2f10683fbe705838d4355f6fc25a37ab5f4a8d0b9e66d749d4f9ee837bf96cff6c706a08d0aaf321943a92f9c945b62e8c83067cd4bb94c78a7cda8b8cac316f4030e603d187c20b2c6f0f6dc6d2983eb73c5da28828e60f8147aa7a27df3c827e26b21c41dec608450db8b063d7a5f1f8620c842943e8468a160cde0d37bfb33408af1316364c712b2ab59be90c0c4508daa53ba59443148d81a07ae84680a0991114fb21ca095f7366b27b46a4d299b3f37074b7b91128f0b1d4c37948968a8dac80bdc9dfb333ad3dcc8fe9605332e92df6f287efeeb216a9cf66a0fa86d9aa36bf930bef120e2ae85f8e6d44bab84f79c40a9925fce7ec294ec0294d4496e648c78dd5544c59d000f71e13153eb66e8a422606ef3e818497d86474c462f0c022380fac89053f0061dd5e0b49241d67f76c4312ed5d3cc15a1699e2befab8051b3651a016702e88e48b5d9220aac13b24f872068d315a15a122da1c06e1e41c3850de96c2195aa907f7a0d9f89bdaa93f6b5a603302204e86ae542456460feb51d515deb1913a2c91fca0c221bb8591d26fb4502e965770fb6c6b35c458f7415fcaab1472900985ba9f4a69c01141eea3bfce890963cca4fcbc357a2f35ffe0d08527602c564608887f7d7e88fb735ff3d0095e1d4fd034e8c6fd8c2552ab051cce65f3775f342f43f78f7256f9e2404c9f5b2e7371b896084ac1cae490268cd63b14e586665bec48a5c96ff45c3b5373b5ce2859275e8aa327b575664cbf9f068a3856a7e305109ea8e62494798ef430ebff563fa89e452051bea79a1167fb8771a8e852e5c2bcfbc1985fc74ccfe8f91fa0fcb7f9dab0161ff814402735baa8a691854625e4eb45a90377018356b2b899f645b5c677b3593f319e01afe2b75f92f1735cb504029e544086eb515f7a39955b465e265e904e586bb3c3f44e81be6a1dbf227c7b7383a2dc7615e28b89fa03bd4615d07c5223385e864b74f9d480603bed67feea78b4d456dbcde85d5063691e6489934249b6e6f30caa388ab3dbb1c90538a0b3d3c08da4992aa2beffa347127eed2c25954039cad3147c4c00ee9414e8039d7da2808fae658c927ab1bf924475aeb61fc41597b5a016daacb17416c2f1ec73b345e14cd20b2756c120832ef1b9420b2c7e0a773be541f9bc91a43b49f56e6a0654ba7d5f8b584ca7f269926b2aed62ce4154bd1601cf4cb38e4bf07580e214e79e9c471a01d91ba48eb44c97418d5a8a30f489b554d0716b9b9b8ce67291890e47cd3abc610de4148730446f95d65969ebfe37bb23e6b6e21f41088fe45700f6e0de567104076fb791754682a58900787f53467e479c90b9f9a642385c0b265ea99a865afdf9de331099a66ff987db486293a289b1db17b80c8a22fd552258c9c92b870c4834218d289a6e6d8fdd236e7e6d571abe193348633eb1ce195652ffacbefa0fc2dfe7b46d08ecc69a19b304508eefa4562fb6f7de47c0ede138958a63067b61f5180bf617a72e589290a92611c7f64fe40198f878281a7351faf13a185adcf0b224f989cd0e66138f617c76f63de373126858a01286b9ca3ad434a2945c76237dce4c04fb8fe97dfa5842997bb9582161f4d3ead5090434b6d9dc98d55f3352c239b8e3bbd71b318d0a20b8bf58289a878f0ef4259b904388222db8aff65b49e7af310653194a5b9dbca400f24aa7d5a60cf1801fd8925fd88ca8e2836690ca2135b73233be1c3ebdfec222ce57f7fd4b219174a9ed9f44378f36b803eb250723ee0c8e97de2daea905d1d4284ba4f1426b5e5a15312380f5d4c42106fe292c92a09128ac04e0968826a64d8c9589c3386e7ae14f1d83f9c99e36c96b15a2d356d8a36e46fc9d74770b7ccde4b34b3a2eb3945aa195a966c821d89e13893a8db37b19b52db142d8697bb3133d30d150ba73df3cfe8f5cd1a75e5954df927b6030d8fab6f35d86e957cffde58a4d0fb31c7b14a0e788961b592b89e2c79ac7445572090c5d8df4dfbc6eb58c8bb02e4820270dc5db62d878ed68a6030241daa534229ab759b01c8a65ed6055b09784a4cdb2238d569340efcc9f22b732d83be4c546f19b8d4a65ca8ea475111b741d91ed346ffe61bf0ddb3c7c1ebfb34121d60f1a9f0269f7271454e16f95aaf59d905bfceec3b629156d36e5bd24e85d7c4323705116d1c982f46d02403b17dc0f512834e5a96c949f278da7aeb0a0829568e56a2f6858c89985401fdd601f1fc83c8cf9f3223b78116265efe17390a96276aaec1a6c0788d9fa391287e4c33ff4eba94d0bc549b3bdc9fa098640d148f510a0d322fab4272a198100e3ad94d484ad208dd9cc901144dcb629c32d7807c4d1074808cfee2de8bbf3b8a6240da31b056f573b94c950e76e97269b173ac049c441a7f80a720be74e7584f8b600d85b2a25101b21ef815828e574911b20846feaa6d584af3344b7538d41025417317b85e7634b974eea8f043acc6d1e4c8f7bb833016e27f980e8e055e577f359293b35417b2bc227c66dd2d7388147cd61cb96021f17be800b061ebabbfa0dcf7a818e46c54e8fdd8e07b64e91527f846e736196ad49243a779acc0401541f27879f950784f591b6a6b8a8738a7cf81812fbe9f48583ed8e789dbabeae7a297979f886d284de7d2d8c47f2a6e3d4a3fcc3cf7491c53211bb2c4d4fdd9539310f331e4f46aeddaed1f6b2b66a65a9b880b3b639071b1c6c35549a04412014c04255ad12354eaea1b77f846649acfc32fa4278e6a3ffa63fa841fde78353b96369fa28a75651ab7a79b7d84a0cfa3150f6123d1bc2a7f2ad797fbf1918efed2bd1efd617cbce727ec7cba6fd418784167f8f98edf3b3653fe46d8450b6bf572dcd8225226d91fd97881e34f0140ffcca6f310964fdece1619f5b21561c82fd03d23274baf4885ed38a700ae6718f4d77d9e5cafd9e94e4e317dba3881bef9f4aa2da3086e94c31e5c38139767e773c6d774d34283015a3783856bb57f7ca49228b221b60651bbaa32149278d5fbe9dbf33c67bcb091aa33ac22299ca131296b1b04d28d7a6fddc86ea25b4e94f9c13c3bb70adbdc05a64243599c0fbf39c34a06ab4f1ae73fc5c2daeac029f06e0f59624a4cf4c30a3719748f02e9688d5269cb07dd05b4b8e47dac5f1c4956d1aa0969f81afb854e295d6f3deb85dce5707d69669c98969a90bf364738b09a81a8ce63e9a93b5f549018906477aa6bc977084dabe339698237f8239053408697434edc9d81eed20c9e13e516abadb83e63f5e7ead9616d44900b69c5f41f8990ab8d7a121027c746b51e35d6cb5f91b71032177b8904ebbd9f4605334960e51d89c12b65ab7723967844eb822521223125b1068f8bcb9d3c62277deeac8d91772ddd388cd64554ee4cfb5c675e9cb0b11756e6f4972879b75c2945b6607b581f9a18f4315349ce1c5793632d4eade9b28190503b6e8196c56b577f5764c59127da282db0adc35fc004150df7a5799ba6ee5a2dcb0c9872c0aff80e4d87a4a74fe352b4661d9ffdb4935687693c45e8ff77996f6ef6f1ad47a7a36ffe2cb65ff987ecebde3d5511e22c4467c6bd221f04d513798fa23d2bc91c7c4da46e2598f82f8f115880a71ba91d895fa45cded1f1bed5d72bc72e1c57599777b84bb2aaae0eedf1fc7fc1ecc148a66b8897a5fdd97cfe5cbaf532d467be04195f3acb0f6abfe281fedd3072e881ead024eeb29c1a07331be7034d2ce2fc6395c849316031cdd1f4e54a752e41e12c304888b91ec8716a681cb279ebd2b1519e5995f5b5b550c5b72bb921657aa6fe2b05a8bef07feaf2eca9766949f9371bf15a030d4ef530636812a12e15cbf02ac384b2e3291ace5b433f308696373baac253f46a8cb4bab51541723321582d4a5155c825c7a5b21aabeac5e0a5c5d0788ae4e27531bfa6d0e6ebcec009322f3b4a1507f0118bc31855cf3951413f7f89c4cea802383a0cd14ced33d315754bba63f9b94cd5f3307408c996f5beb5d7e56cf496abec5a42acfd52702249b4abaab13b83afb763d2fd506809864938dc4c9f93eec9aba0ee8ee3cacee286b03c6d74bf632de9044aac77bf9dfea4732c02ad37ae584945e19e31511070291eb18a2f8f1be5c1d05999c5d39eb5ce690a55487fca61a7875b166e2014c6b4e25156975403f6d47d9075bbe1f365dcf6ead45d74bee51628a44f3b782d590e7fbd2eb601157a1c385cf123cf429449923b99f196135ef5e65f447741dd990fd4dc5cc25c6e897ee611c52fde1d29a923ec328cb5caa110f5b0be701d19f02b9f88d1513c2fd873bf5adb1bd46459e146a8d4aaf7083a77fc21f99acf43b6cc48d93b204f5f1b9f2634a47ea2614c4a576a793809ccdf34fdf56e88581e3cd16de08f39be2090c40453231ce585231ecb7be363120470e287a83a4d9732f148e23de0b0828f07091bc9a12cf387841701d2089bbc550637fa16960b23625a659d382945ec2756c45f0548db9f82f022fb17a8582648332b34c66f36d4bdbdc3463760a84975699a937d3cc1ddc7ab6fc653b494240010e6ddb16f7619fbe82718b654ba403b224499aadfcbbf3d955b75f4e9890252d6059ab614d9041fa5ad2cff81d3b6d5d508b7aa0ce002a2508491fad56ed650be22d3e6e976b6a4797355988a8ac2135f2a185c1f891b283af7a3ce40e6315332400aab0bdab0778620f6aa0f86dfc15f3c74250b2ea2e895c9697a66fb72be00aec4d2969323e6259b4f7a07cbd9a38d2cfdb183a081ad3d6d92c97ca2b6b694b0a055f8bff936f0b7432ca8aeb1d3d1f02f9d850264da217b9f3ad96cd2e17f4b65167d535b4f67d8306b7d932be54014cca77ba8bafd4cff073ffed56821ae4273b853f2fffb2a8b7df9d0521b09cb1bd972bc2666353de68fa390c9f252e4d53d78484a15821f80f3aaf0e8f1eecfd5873d8b3b90182dde697ded79a5d3d3926bbfea4d2e545ce10c990d9293b0dc62fe60c5f57b77b9690531752edb446030bcb1b60ddad6200ee3f43ae8aa79782d2b2029cef54f3883e3b0f29080e93dabf2547c1054e73548504b8b8dfb868ba0e07f3c22ba45b649e3bdc29dca843417d2379921d34d6082957fb882458048dfdb6de2fdb93959225ea5dc419fe2b926ca36be1f810684d3ab91e93ea80ff2c625ba4c32f0dc2add3aaef920192e6766e211582f2747ac7939cfeafb1a0f35c586ddf640a84fd03c5db6fcac420166e314e3d8c80c87a0fc4a5959ad05860f752b9947b5794bb1695f0e8cd75c6ce4e9823dbdad812d331180bcf73ed644f6b6ac321767b3e311d91a71c9c880435bc70af318ba5408a2e76dab03f06a88439fbf63d44cf94bc84bac24c5de3c67ab6790e4e82c9dc6d7b0730466509a2827794bb1ddc2cec806799eedfda7eca8409ba519ee6346d1b81b3a7e832fecfb14f36c9f0b68be17e1bdfc0ec019707adda2648d6a3c9e5131b6a936756bdb8877ee0550650adc647a6d8f847656b0149219a663ce84fe31f1b3ec0126539a8a0d670f6daaad9470c42b16b6ebb8f1dd5291948c6a87aa0afc44fd4dd58575b5dbcd14c35caab5c2ede8446865ecc64e8126b802119fcd68d51878fa809571ebcaa78dd3f3aeed5ae9d4290becc8e4f5e4fffbae237aafe306d1f7937bacb1fd3ae34a63f85871ac7545f158727ea7f762924609a42b39c32baffc38f8f24fa87ea4c5020bd76e5bf10582776b6278b04398d3a7b3be294f84ae773380fc5b5de12ef1790f8df169e8e04da3461e7342cf229d7946bf3ae6829670d5aa7adc580f1edc2cece28ea8ec2b9a87537d0bd90154c9960ddf8c192d1ac5ad527b4c0eae4cf40a4dd242315513cadccecd027503a1ebd85dfce379ab31c0f31434cd9055d2dce2c455204d91683d23b53f0919d4e6ac24585a0dacbb5bc53ad13e055d0615fb5492d2620a5a049ad68e9ad0d500fb0f9f7267c1eb9af6e86e393b88b1e0b7e068f3c69578ab272e4bc4af28f45928b2d58ddf75866edfab51724761e6c07afe07720a4965dc33a5325b98fdf0bbe6ba23109e69815b0eaa4c80919862b17c426840b9c24c27c3a4fbf9d52a3dbcf98e61ccd1910fcad325d1aeb991d009229b9a330df93bb3c39bc86fea1f193d38a2c9c913b413c8cad9e6e56123cd5e0248ffc4b61a95297cfd7020cb0030f309029df7fad63d36a66b2dd39751ad3ff6249aa1628ca30d3d9e602983aeeda1cc4b2dc0780afc457b36c496ad787c801d7178fd507c23569ba2eb799db811b2455923d5b7683b1d91f68732048aebe8ce80cafcb6ff5f38a6ce4d5a9e9b41ca61b4fc9f41a97396827c3d677396a1258f237d8c24650af9866fb0686e838e75680e0a20be4aaf2f0bfea04f078f69cb410218b88d783f3a84cfe8491891dfbbdb288a82068688352b43beceeb7ee2b024080306ccd651607735bbc523ca32eb52f4fb777a26471e2ce84be39a4eac637cb49aac5408203b230cfb5f24e9f91ee97d5679647767eead3b3247f9033075c0a6a376bd3327edc01d643bf9e13206dd68017c929d205264c370cceac56140f71ca723cddcc9f6c7a503eacd8db00089730b69ead9fa5471fdfa11ccf95ae03ed79ef99a8b8b77c08c392ce499207eb0cffdd694ef7a570fe45fdbfcb780e7b941295e6be83dbdb86db92e03f0e331509c32fc1327dfabc9e0d97f55d0147d3a4b6680d4540658c9f26b6c0f91decdb604ecc01d10970b6c377e35ea04346f7d03ee0fc67c35645fe1ef7f0275eda65a4a207c8a31294df1926527c156586eadf733622d99418f152000f16fd503f2d2596207aeec4272be10a833a4044ff419b6d78f65aa1532e2408177cce16ea834ca3dcbc91047d8467d4b762cc4aefa50d712d705d02b5d0710e8190446a000b42dc64fbefc0ef46535d6826472ca05511e88b8eaa6c435c27a0ec651bc20b3ce23ca6e6e151cac1bdeb6798679362a12e4c27d122188e8e5e05193173baf3e304d5c4f0bace47bb1d493831e7ff9970ca1ee4bd893265d371dd17cdb027d19e1385e6cf5d9113eb01fdfe4eea56d8bba448c85c622ffcd0de3aef38ee74cf62f046b7006157997f9b3410aef8e7b610a77aefbcdb864ed9f8680d14fb2fa4f62b3d8e4043b3b59718212af685e85010036a846ccdb55f7b6bc54b27ede47e758c020814b0bfdac7ced64a2d0aa801f1a0012103c49077f28c57c1dc40abb5d0e3f33f42d446899935f78140aafe4efcdde2609a1d3cccb3800f51c08906dd4a366e8f56c2cf1209b1af3e7f70b8b6109bcfc24c365b23e429d7b205b3fc6bfa303bdf1ee743f5072cd7611e15ff6b1d9bd72ebda448d4dfeddeb102d083874cf0a5242e8e1ec5f88234cbb55604f0aa3163989086693db346d07db07ca9128016f2985d76588736be3730c1e26ed75041753cf0dced2ea325d0372fce15ab2a322f97467681908b1cb0c920ce4bfc3d8abeed08f98f05a5257b573fd3cbcbb074a2d1c830ba7abaed48cd999d86d2b2485cb98bf82430e38d451fc7a449ead0b840bd87d97f88f63cd7b652de299385235cf02d5210a33d24e91a52066a0417d9f2a669097cd6694bc21c584eea78a06a5f4b2772ec4cc6cfca8d8d96a9bf6a569ee319a3ca12afda102a1b95be5680a5f76eb766faf7430b82cacb8fb1ec814e2cf187c7670c5847e5dfee8b8567b77196909e9c2a24af27eca781184afc67c2082c65dab751697372ef8b16fd536ab12a5da0abd04dba5e75abca2316b5fc2cd4f1ac965b41dc80b3548e8b8b12d309c58b073354c545b5810be3e1ba43736941a71533c2641b5c70d9f5ac9d72c0b1ddb721c670b4e7ad1f60b0c05491d4e9591ca1962ba88916594fa6309bdb12901538bde8d62d6bcb6eb336fc5ba67b3da237129d0c08f910429fe9d8b30540aa8ca7b21b402c50e363a61fbf5ac297e7d8a56f6b079835f6cac2ea1c0739d1e227c159f947364840d58939d316bbac85498984d4e95b7885fa5c3861e8ede50760fd0e629cf4b994f89ef7e110281146eec85fcd6347f42c99ed49c0417fad31741cb2b856683fbdbc2dee447bd973aed9acd5f167dd4e74548af46257feef7019682c2f90972853a9c259660a1c50b2a2eafb1868541d37f59ff5686d1d83cd0101e3228376f60e2eb196b140557d19cd21adf9dfd86eaf327d6c611295d894d4fd4689cb8be1fa8beaa7131896a136680d0adfdf834350ec4f5e53105e6ff8717a446c984e5275c254b20b2bdcb8ed5d5df56c89df0f70d4cc335646985ffc9bf7d476e0856a032a10824bbfdb900a2c3f9674b05f3bc3d5f036baecfcd0b55e946f91ebff79f3a68503e853574fe7011bd7d81109a5a6bd2a19c1054980d9d1bb918ec3d187cf9daac919953beb627cefe882d29d1c3af5c26ee6fc22419a0ddb3be75deece9f13a38a8dd7f0b0277a03bc66380ae54a53862fb8b69c78d76c947487904d3dfda3cd9f447d95be41c25a8a97cf78390e5190363f9399a09b76aec3aa230bf7f336508805e61e890577774c6c6d69c4ab2b90c6f7240ec5ea08aeb7c892ded2b5a06f655ccdb057468f7743b4c3622898bc0b005a9e450ae19ea460914e0cd91c95577d2b38d5c5dccf8a71fb755a78bf12f26ff237172321cc3cd3f99179cafd987bbbcb53a1437dff121ddfe2bbbd7f16477d0a113cdc924778a9581cdc994adb642cbde83d93de4e7d5372130a7573c2d0fbe04cc490711fe480926217eb04209482e742bc4e302f0961b282750f0cbb759d726e00b2aaf040795609b99c00271a946ab19a5fe1103e5c0baf6270fc4e6c7bd23412488c3bbeb86aba2e3a7638acdcfeffdd85b6c4c699eca7ca71732a7092127abe6ac32ff1e808a7bf8765c145f7e58b2fd63079c6346d09935e2647f441bcd607c8aa89a0b44a498cfac729db296bd60137448e808c001877782be3adcdd80b9022e95a584fa636d73f934e3dd6f3b657e45db959c53aeedf74a488e4dd8975bccd5fd879ed7a15a2b38b49100aa08e6cefba33ce44a5ee15fb3870aafe3108203569872447ad073ae9e670a3f27a1f26b80eedf537a3eb892861c87f202d9abb556764e71c541ca727beb88b613be9ea7a79fc940b66b7900d80abea17197c3b40a2dca1aa749a12e950e01c4c942d32bfcec983f4f10dd02ecece3c1baea1779c76b55d39cf36205d1715414e15fee4e62ba96f68320bc8031434174827dd2122d43a3490bb86e6e6a4f5b9259bf571a4dee291a41e9f587b34683b1f3befbb200c4f827e1542ab9a5a1e8933507f477f9b610026eeb1de748718e103a46da5f6ef35c8533926c8c4e9a919fe3ccd42550481a8315dea8844040916bd38c24f9c3f359364108c2562a64fc7b068e083d47eb6d94c0148d0333cb5a5f994c46c1b6864b88a2d0388a7a9098b97894401ff5a0e83c3ad0395fe2426a5c751b03a0f9245f9a3f983867ac46ce8a6456128af49b7eb24e8673c56b3c6061ace79e62c0002e410f00a5ff6411cb2f30283d1102316bcc46c93505f4541894c87c35bb6bd636236ebae07e87903df3748fdd020fd1ba238c3578f32ddafeb9801f6bf079de6f3fd8084ca54333f7551ad08793392d8b8dce2a5095b2ba9909f403c440d867a00546fe072f1d6e082c35b3e7271f782204fe73af15b69f4a0e4cf66f0c914d10aab18cb92a871f537331fd36a56a372e1f5d47ef62704ee4d505bf786d18750ca7710b7af19877a78ec05f43e32c4c249746dc7a4a716e70aaed7d6a8cefe055eb1b7cc3515b42aa85a91e666a7e69972371471ff38b40974303b78edff0831db57e95ce925214c059176cea92eec4f7feec27fbe2a038c20e8c569bab5834273eab64c2e02c5eaa2c7ee3a4e9251ec750c0ebaed43273ccd50da9643d5c8684eef348ce51b7728f6d697dd4372c5b6454839705d3bfcae23c365bc43592d03016e57ead012d28cf5bbe40c0cc40ed4ad1d5c61483ea09be101d9d1aacfcf963376ded7653fe67efc1a1ef4784d43293b499670ce6dce2d4bafb068b6d8b61eae9752ebb72bbc5200b7f292b5294eff8152541c685d0959a2d58d44a6aa3fd178661138ac17a79427fe97ee6a49c6200dfca3e942969576d45edead858fdcb42dfc69caf673677c7f7c7a1641f0146c39d498358b1544b8ae9b15415064239ee778c9da7b671db25e637ede6c36ec135aa9c01e04ca0c3ab1c0743c0f1b2c717478f7898e4d0bcfff0ad07075850d080f0da878f21b79bc0766638e6a393fc091a462382f342844016b4419df1f6040acd86efb4b5fde51460858268f58d42104247dcadb5f8290c3a449ecf29557e4eda56c21506468884786504a3aa6e0d74a24296cbcc471f11176672b6d51aa88fa54e5642ceaf3daf0a4daf22f6575a28a5735a5f78e9af61cc94f89760d58fde186cdcf1126b972b18cac6f6069aed70b71e9d0c09cbfa391267fafee5a00665c249f0f2e40c6834648cdd6879df01a51aca24a44ff640a833b6da7b81b89968ad93d7f4ed549ceaf494d00207e784d5d4480e1ec804285ef5b4d096c0715eedd93ebd88f75ad0e46e38e10149e389238fb1f659e1786ffe5fb5e12882a4a2a1b064d826126806694ce1ed3c222087f25966a5d6975e6f1b237ce040864e8eca0297ea44fdf3008eda71c68834521d5405d703fec7b85ff074a247302e8afedb7b636827b0e99afb06c33060ed3ef5a779f55b10ec1a25cc4194859cfbf9712b8aefebd651357b1e70422d3e0af2fb1d62c4faf03101e69dfa90e250b4354e83ad37282b2c3f8aa1ab5d314f74d5b3d3fd9aea387e8c928faa55b10afa42d35692d99bedbe5f51d50ac083def386a83660000c41ffb8d8347d9d16e616626a0ae8645e859b87a7fb3798e910a8ddf88eafd3345b8b05977ceb913d112e171a6c3ee8df6a76c0287b1900873477f281bf0b2de385fa1e6a584db931ff7c03a590b374f86aba4c1c544c9488435d14a1367038325021d4be86278f50eec83b99db779c15a76fae0d0c4e03734095fe3f0985befab04a75cd260effc8f68fd9ae903901cac0a7b8788c9f64d6ce29574661726aacb3e75e24f3743101d23d6b6b51b994cf6c727b5459b0e9b6530f604b179556e9871f197c5e5984707b7091621ef79b6396a72edf837915fe69a960dd598ddb772893cff5f38b90d25b367497e4d560ce011c6b1832cca346adfa1b81a2438601515a6037af9955084a61310c51a1b32b79effcbd6606bc5f69ed26f6378e24a0a31376c450bbe4102f2054e225af831b4c4ed689f7c07169f2ffcba329edd2158c72a1e1f62e9a6ea5f87522015e04070a5d6028db9955df722856e84332d227b6b6c2f39bb70ba00c5bb6e21dc0ad39165f11b7acff36dfb58e629cacf5df8fa4a21c984f6d39b933812dc26ba71c09329ebc8012661ac29252c26aa21f9ac2fa320da052e325080c3d6f21dfb54799c21660b4c9e029ad4417a54599f12a107ed7299faffd55243c0a1b02d11b64a57d075fc1a175eecec0b85ccaa23bd9ae077d7d88004a5b57b88e48ebe3adfb2018522c76244e335c6c7168b2e3b94e1c57c4027a312b0d1817662a93648d9c51e15e972f6925f1e987d8c80f935336ba5cb56c3f7cba887f3b3b234a405f4a1823e3a7e1398882bbe5257eff04bbc174e14f25d3be1651058c8c044d05942f4a7befa48d6fb7419f8227e1ab34254fe4875a3ac91a55e5d3d5d4ce373211b8d8118024fe1e421c32c831a44770da4c9df6a2bcc55d1340971376976892a9b043a369f32c1aaee9a7145d9fb7ed05824e2700273a4c828d836f7ff76f4781f6f93901197d7fb20b3580c7cbdf28aa335fca9d2f30955a0c89ecb4a77f92acc21d9490ccbd6b25f56c77959df436bba2db0a7f90ffe84a6b35ce75a7940e9088795b63943184f3630d70bd9d06d7b54e244fe0a9a174f687dc32f91955bcbff027e22b6e45762960584c8fba8b0e3317b3ba84ce821aab9d5c55028f10bff1fe8463c921f9e4d53fd276fd0049f7b902e1e5d39177e068f881e1baa04bf4d9c7b517752d96256a5780805fd3599c2b60dbae7011c7a78835e02d47632fed0ed0966de6f273374a97b75383cc10fa26ee1153804a7876e548dfde741adcac34d0bec46d6d96336dea53d44db2c278d8416b8655cd67c8164b8de4492ae1f643b58529066d59ac8a9ba78b33b1f97aa49ba0d1751b848c83981d17845fd1445fa6d999f753e396cd1b9eaa352cddeb6128704cbe29dc51bfea70a9709c45b4712c331134c73f0b3038881eb2ab92836b9002a52433d93e2ffbba7cce2b70fabcd2ba03fa6d60b6e4f27afd35fc0775e1aa1e15c59a42250305ca482a78e1653bb4e9ae1356a3971a97fa2f3a57af7db9714846440fb5d7da70707e485c5875f2e298d161d39db6e69b7a01040e889329586795dc61696641e7ea7a17ab7d6b9bfa3bf9877922b85cb1b01d28b70ec08fdfda090edda9f9572b030d7da03b90ac73683f0d013be8a70998d8472300e1bbcc996b26c6d4b6a26414007ce4403d7e79e2448a78327f4dcc4491ff79871ea43fdabcf2f389f9ee194c53ed015f62d80a18ed4f27bd6c3f672e239b05db38407fda0ebd3bb8073eb720292316ab5683ce1d0509ae4662b8ae147ab47b390e1021b75442b32b5edb435cf4f9433e4f783c2fcdefa3dfa64ca6f3415f9dd066b3043ddffbe0064564e8b047a70589e2107600abd64bb5ed2c9e6a1b71810663b13b833ab46fb84ddeec52c4c91fa4adf398fb7a09c2d0f9fff516f858998717e30dff25d3276e4216fbcdedb970d01c0d1f492395bbd55f9c867b9994761e72b901d0d7f2529a76dce3a6428753d78d14a29a54ccd751b76e481a7dbdebd080340c4b32575e177a9af028e41f324c01663ed6919139f2e5af925afd4f089fe47d10c5fceac04c963d75bd7872dd437019f6e0b3cc2e809530c1e907bb4973245d82529a50be3d3ccb0343b6a13a77fb5c69b110d636466a00c218bfc726ef8fb6f4fcef602da3f33c8d25c70e76b5fa36289f792f14f22cf470b955508591fc1b307e471b9469b605213e6d1c1d9da1c43e658765eb046edf3a688f368c447bb444719c28b481030a33b3d560e57ee25fb7fa90d0ebc358ea704995b18ee155ac8cd91b78553ffdcb659f4b90d10aeab63d7a88159154c0ddf638652b0e29be6677eae9ceb9269d2a9349461515dc1ae14c503400dd57e3c7bab57e15fcc943e50ccd494b41b55373ecda4b3427a74b2ef2dd66deb64c01340729a0d67914ba5333707df09ef940f5b6e150e9b8bdaee96c7fecf262a360555976b199dc24656c6d7609fcacc9e8b8a4d66ededf5b959f0ec76abe7ff8851c86acaa5ead9132f41fcc56209d6580d79bb35861b043d97a9822074cb81da160766f81fccc8cb56e1d45be88cff087b7be412c4dddda048afebbbbc632629dc6774e778d5d62a43683099dc4f54d0b40621b85a3dce5cfcb60df8beb2292d0aa1cbf8432bd055dc9b48021a00085c6433d60e591cda7b38b565cefeb347f81950548e000784a6c9c39ee1b38259b6e942e69e77aea622b5672c9d00d146e24074a23080369319232de88f876a4561db13b14b2efaaf7be2cb8ab1c56d528c08f17d4b119b8e37dcaa0a1d518508256bada480775bcf8342a5de33c75c25059111fbc254ab65933e10296c4850723c04ba5d2f09011271f4fb0ea87366045832fe22e36aef2438b3b6bf141c7e07c9a2095841b671dfad0c98f073c7c88810d2492c6c728604a0ebfcd09ab776f4b8b70c2f5f9d0170a2f98cba1d75b33a7d886643bd2aa0c60e34c121d0a2d3cf88e7586e2fc45d93c642a98a3436cbfbba202de35fe80466695aeb8570f0e22c8b9527f26ec005c7b56408fa144aa841d3955bbd75f18b14e51de33c4ba227fe9ff8d9d7841acc9c3f6a83c1fbdb582077ee0f33cbc5a289278d165e8b21d8c785696efe73275a71ae27386e1806db2421c04d5d90cccca0b2117555f1e960a22eb60e174c32ab72beaa0c26926ba6ffa7317ea5fa5f1e48b528f56f0fcfde0cc38881457cef8ff6fe86257cb0ef21ff8b8ceeed5035c2be9bf21078db52a48f3c5cb750a95e282198236f559ae4295a894b4d4a24ae7423f9d34362275db82ec20b4263e9716edbae1419dd5c288e4a391c2f48b7b50853a45b8e09d34356ac30c5d75b870bae19e1d715892c0b96f7cb788cc7d56be2162283f7fbc87b6b9b780ad1adaf25077294009b2e12867930255640639f047ca3b6270757187b1c42bc78aed1a841ec0211fea626763de2f6e5e18c6906f3e366b84b4bb4bd4c3d4c573f9045798ea5a9a22a75823b0774d92c73936405aa3b27fe48d425ed16db4d3a8cbc1d1d91cd883ac00c505d30431e17a0de32cdfe3771829eb842ef5cb31544b61e25ad7ad5de4aa4b1ee3f8a57bd4ce1d9af6d7ca156966c8f43e315b8cf8299c48d19c3802cd7b96f73285c2d2b214c54ecbac7d87c3d04f62ef8c991f7866c5f315a1165abf28d961d8cb135f312b302f770884d7b8d270f16efc7181b3251c56136f4711427c039db29225522b4ebfd34d82a058a2abaff60f82cdc6cab067149067162b67d7daedd1f1d64814510404a6c331a803baa6f2b3ee9a026646d01dc0ff84ddc24c2123e6ff4b09f8e522c9247cc3a226fcb0cb1ad23dabb5501b75661e01884ebdac2b19f6279adbc5c042855aa26c1ec3608cad15f35dce309f9504b2700650dcde34e75087326524c707f8b6634284a849677d0900f460c02d25cdcd1154609e0dc60ea6c484c710afe8cb1edcedbe0d87180ddd4fb68cea66e3700f9b9a47b82d74cdf5d14710b249c7e70b7f1a71c5c561db4ec41d8f42ca289243b25ab37284386322ce711bf4b2004b40baf7e9d1885b5e9a2598daa5a61388508e476188d5493322247c16e5ec0279bbbada646b344ab2b3f74fa85a44845820156af44fd82219cbfabe1da1a9ab67b59a63995aa5c38bad1f3ecf3f8133fa1682f6cdee0062a96ba0130c8bb2d39ba29e6f2d7019a5ab29bed3f2c9825421c7cf56b59ce60265e81281e7d4bde7b78bccf4d22554fd0f818ae5e1a3205892065859af1d3d45496fc77fd9fd675a75c5e58f41454d124d8383297e386db8c1e4d8ee7fb7de70c689e35f9bf9b9de9f254887dd58af8cca322ae3cf5f1f7b5cd13146d0b5de723ec5e1ee112f467ad6b29007ccf31a153f27b089ac49a4b9cc512efe5247461618b22e5c331f9c763b81a6fdc18762f9640865ab4aa81ecd7ce5549747a04a903492bac59deda16dc482e1b94934d0511109273dd854295614db124b869a1555429a28d3e1b6f8e2ceb3c5f9f26730d3cd23555160b322383662ad235b654c24c26fa15fd20c6d12a90c72750a89834f7326fb841f16d1a58c4367b0c3ae08e4a64eac3e8f9726374f65575ec5335eb069455862660931ede18749afc86d71cd498018ec8cec82b077e9fe09ce498a8a0cb4c5d424d127b95c29980be3161136dd5605c512e84f669a6c410abaf14630778b7106cb07f9fb13491d0a8c1ecdf7a28008c70d936f464f96d4310581d19387a002646badb9ad904d401a77e0f2f39c6fb6d66de53394a64bbcb53f5404da669735a81767ca578c068e07f970775beabccc4b00ce93dce418d8eb9c7ae820813c419ef8330989eeb190b6c5a1a6910eefb4ac50bea5d7096d685c0d3d6c23454550764cc387170cbcc76fc791f864827d42c9c9e70587341563df1fe581a0de7477a6a66ebd428de2fea5098108cc8b3d08a0ade7cd265244b59fc87141b7ced19fdc40a2d86a82253819e9261fc7eb10ef8ec738fd43a83750d29f4a95b815028cfc0c771f196911e2c06473b9f3bf3cfff2121ef4af21efea513cc2af24d44b36258dca0a4126a052dbbce6f00145a349d54188a84d1cca9fcbbc103fe70831fdc25e50ad0f133c79d796624edd746aac196f72ab52b8c1605e419671f14130e9925c59ccb929989e74c7fbafa95153bd0cb6a2877ba5c9d46be729efb47a28ca648f49c913c7b184ba6b176fd2fd5c423e3c0cd468657da58ec41b4bb60d61048d71d8c3e0fdea35cc38cc193ffac6686e2fd79005fccca69cda3d68c62162974a33835958498e583647ca39a8aa2e1bbc033da6be465e7b91c56ae207ea7cd540b83947c80de3279d33e4ab547b173f50f2cb3af1e969e20e0f7a52a9d2c05c8cb0c007ef10ea0d139a5fbcc7266bf5e78ac65d8a6cd1987a6e8c6e6feda1fe2a2b8e7480165076c4798d689f172a69102e0b7555f3f466a1661628ee4f52469c2df952cd56e7502299b28db47e5992032af757cbc32b05dcc9e36e64d632e57120195a1de6b38a0ce46eb779cfdc60ff01029049d26de84893d21b1c56b565b4326c2c0bbf4912482773252cdcdb357459e8289b2467f19b217b9393ef78b58b1e89ec9a78ed4c3cd26f12894175364e5f2090b7af5eee91b485bcbfdd819e41540299c7b0c8984b22b80f9ba1a539888a4546fc46c45d72c2750389bfcedca0a855a413edf11c32e5bbf8660456fc616db51fdceb66b58495dae560a86b5885c51726045b824af14c37ed84cf8d8b7a1d32fe0eb816ff692648b7db836b3d22c285dc9e51e5dcb30f91aba55d15fa82fd8ffa9ba90a1cef613da0bb9a9cd0de50fdaeeb3db1c71c0b8dc3ad32ddeca557684cdf0c8df118c0d11e00139b3d5f8877d64545be94a3848b92c24d792c1a2fe8422b222ca86422a54e3b79d197778845366dc6a77d75a6186a7420b7d26d996986679fa8706e13c657b8b9d0f777359ad52c2efa0ec9e95918568538405fa689ab8908731ff53c6111625570f0c2bc09b295e7d922fe668d0e7c3da31601fb9df1d1a79e7f24b752ca5a1ffff9f1460b013fae9989d839c8bb03b3705a926ecd7fca7fb20f62b8b621e1f239e50ac85e5d97245190692647d0544d6fa4c2bc9f5a265a9be32488066f958bad17117f1f56a68d3678c9a81d7d3c27fae23d17fa0bfcf26ff667481fab454a7510997e60156feea64288b788b4904a1a0005f3d72e8fc6d8863e2a05e4f1e6b9452caea19562cde0025fd627c59bf518927a95a3913760a578e50d487d19426763bc1d42ac29e4a0aa3cb11f73c2a4550d0cb6c081d9fc78a62881a4ec146382ce6de1fd2192776f415fa7beaeb1e1935a9b5c22047af93b6eb2c6271ad5e09172b8ca7d47dbc9895c3eab3dfa64fb5ef538219aab539998f4bd90beea79fdbc214ba364d340c363749e5dc9d718bac14e1a491f9ee45d195388f219bc271aaf05f34952b289ae8b416eddabb9212d2d55ce22ea15ff88f967c759d7599fe70d0ffc3fc47687140d0eee7b61e15fb744b411c6da0d8cacdb774e6594dc95d67ae9b212022a56497526914f18848a5f3ce00ebb3d50d552f1192ce84c173d108350eb82d5eb6defc0f72d03bec3f4099937f08b33f16a50db6db5ab09bbb12f50de536783514439b60c8af5824515ef796968af1b4ef27017a6af7daa14baefe1be4f4ae5b5fde383080e2111f99992d3691ed1977f921b1a7eb9d08e9d070f8c08122d04cd766b65581eb893a7648d131b1eecc6e77b7e9572174478b7ce313a267cc3e93e30cad7e06a75bd00b4267aeab3605ec12853a1560ba396583d8e225f5ada6588e1b8e9d20a14479c0b2a1cb27d4557e56c89ffe130a7f289e074e77bdd3977f0529e67232bc5392bf00d4c042868dd73218f8a937e496a18bba1231050e04971ad7a57c7327d6f177c04e090dd788b27cad489dde8f16898a8999f549330834c42392506fa57c871db9950f0b063d676b3b1254ae484c99e227381fb732aba19d493e29872273d826f9a1f2b7c2452c1b58386c60bda9ea5a403065b1f67c61623031376c9b64e5cffaa174fcb67f050d753dc441de8fcac061fdc94f173fab776d181aa853a50d95d8e9debbe17906a467d50ab3fb555966fbc367da5c01f560d42ac0155cfdefbd9105ab48c1c7dea881107ead34a63d9f69f3b752125c9049971ccc6369cd1ecd5e1f0ded4d7e9dc739a15e373589a447126dc3ea27b29480f7468c97fa87ba11162c1066c465380f64fee9f044bb963891c2408625a5a1f585e57f86cfb8aa17a08fd06440aaaa76fa638488a52465d6f45c0644ed2480c0f38a615eaf143b337c2b860a27156e5275f41946418f8f840a9f5ef04dc54b9b722fb01e7f4b57fc54097b736119a9e1b37ca482a9f3112dbb54bc8e65439964a57aba19a8967dcda413c02a673cabc3749c312c65f775bc770106d4d364029d202b4278ce3dc5456a8e6db018a6387b5e55bb448f765fa3b5df2eadbc9a9aec7abde7b4d78b03c7ec4181f969e1b4f19742a35fc5328c587ba31cb79a12139bedb4b02041ee2efb9089f8efdc1774f2f0faa629660168d4fc51e9c6e11ec0198527255dc6389d4bbdb898eecb5159af9a5fb2dd1f13681248c0685f71214577e16fb3e357479f67ce87f44684856f3a70d90acfce2e5996018b793ed76167eb8626437f617849c21b7ba1bd307f5a0ccfc6ece3abf9ade3309911d061796b50bec422cf60b9ed120c763c0a94eb5382ff9bda12cba6a3041d7c26b9023f6ca50593c5c8cb1fe9d339ecd05b930fe85b2d788bece9a7c404393e8a50015d4d8a10c519314748ecc5a76272d090f6cc3cf0309d118e39ea762073951e7dfa46c658e598252df6d26a05335cfd9521fe2c6416ecb773e45eeea39aff63c0228bc33ef2969563ad748903c3b76c4e01be18d2f1b8284c4e2d85e528979162d43010bacebec4824095aeb8a13d19d2c43d50e8009440ccf3f75985c5a2cf3ae263de99e81cc94b8d41a7153d42f43f47730883ef59f30aa6ef0ade9395772210d484553693106fe171086a216363282614d804126ec52fe59f3f51966898871581fc6cee13d9a2c1c0a8f8f4f5bdc74ac43d3f62c3507172511fa47e5b74cf6f4c63599a8ab8090d62229ca18ed010704515eb0034c263b3b4d86b7d1703892e2d7c0d67ed13e9b64b557b5e6e5b876fdc27b13d1d5c97c05e1c8ae22e6f6f237d2e06d58aa7af90aee5cd8b7195ea5e3099c26734f48639659fb9a0bc963c209a02eb294a044cde72b7b0921ea4afc89e7801e90e73d6370e9a2a06778b4b2c01a6be453f0cd3ae69790a3bcc274c895f34b96de658e1fb1a4b2f3ce1160bdc1c6c9fbda47876334918802972ad501bda20e71ab834992cad73f85f672f40343bcb175e0953cb8e574779779a3c535c3df61215fc2cb4c427d66146198618c382ddfe76407d60d6dcff349717cba914c252b7d9d87a2b07b6bfce3c68fe0cd949e0e8926e29a54012f9edf595c7f4cbff323a2de4ec091554791659c42e940be6b6277c5e5f1fb949360f0edd9279b4627c759f39648afe4dd7802a36dfa46be5645bb1247bf254767878db97ff4cb72078cfe8ec5686692badd2dd1991081aa69692abf9acb56113c6d2e3c8d84deb0252e3a1a44d3427e7546a26f1f57d236c1afb971d769a08a5ecf444a258ef00f89ab91778663653232a6c7ed974abce686022678a30e3bfb2f8577b56b1d36cabc3903e01d3f8d5c310ff8f94a7e1c5a101c6533387a90429be9bd29a88365b4ca73505f2596064faea98d938dcadc64935344393f9f41685551bb2007427b64601ec8a62d2c85658235bdf90983cc1e75b3ca1555b21b20a989137ff8294c8eff1e6f97bac53f1eb267f7be7108c919c75af99f75495fb88a7cdd182b424480f7c51081a6986f7c7e6d21f80ae6ebcf2a970d159dfc821e16377cd1c7de2cfbc0ae7617b1d39a59557451a42925ddae6c115015dcd9b6596f5e3057947b61541e61b7c1ff3d466faf2822e2e0e1b9a42ac1713ce41fc872c47fa2b94edb06489c2d5967ea8e2eaab35a2160e292585f7fb92a71832ddd5fe892755494126264330b4eb5e0ee9660621e0bc6d1df8efe164981f71ec7c4c87ae63c431879783e42ae94d288b9b29daba6c4056da20c03f430d92698ffb8fc2ec451f7ef86d6bbe8aa1bcbd9758d4ee8b471773811ff231141c4c2f8f41ae7a40298164418582b393fda91242f8d56b1f2cdf41e91909d3fa34bf003236e8c7e8601efb0186cc566699f8e7abea00ef898eafad1d5ed2c73c9efec51546fb03e77c69db4e1015048ea5f1da8aa6569bdda7fefedbb426b3c2942e18a839a5c1849eecb531b663fb758fb536a76762d3b4926b59178493a09cfc866ead5b5c17cbdc481325c604a8ec39e9c6603dbda3ac77ff1876c1154d7ba1cb99bdef75b10ab90ddb9ce5f002a7c5a1402769951be6c9b740d4b4503036075c31c3f834ad55a35add7a7b9d6fbfe9d0b4020d53f287936bd4be8aea4b47ca3c177e4f7b33048f7c8898ea7f892edcb3e50a2ab4e237d25d68f9b6f8114c90bcc2040917273097f927429ccd1756ca0647eceef914a5e30e69f926a626868896933a2de6ff39b3bc86b9da42c47be1fee66b5601cb00021f9e6a447d5c5d7cb4095cbd4a19427b5392b27bfa4044e74c7cdc1561427fd05333abc7ff0dda6ff25f7b0aa94fb3fc6fa9d65aa0403e62aa5ba8dbe669dbf712234e5a76e22bd285b2fa5beac5b79e209440a488035952b325cddd0d99d0d2e3359a09221f223eea8b11e63d11bc1670c002ef754369790e945eb848f1a02acaea098939e1b7ca756d4a1092d6f56c5f42a02718f7a63326ebff9b38728f038c84ca445c0082ebf6aa070c801adb106c42934a8ebd2ce0f33b69cc2b1368793428404465e441e1fdbafabaa321a8fd13fac7ee74c17cd99fcfec6e7d65f6ab657181dcc74c58bab3efaae599c4daee091a1da04b8af9fdf7cce8a8b05c8cbb4b21d732e0e24ce36066f5c11e88b6a40b7aea093b826cc8fe65530e61da7ed54295438fe173474705de88c9069fc3388c3e76f185ed81f814a236606285a5508282f57e4cda9800a40f69e00b394b82a4347e002fb048cb7f27309ba944e0d95e0cd5c616f2309924156ecba826dd8afb00b35f9d85b4c34d3df155d96f8db0f5aafe25ef6d25dbeb65c3f67ce7ce1299e239214a3d1f03dc9cc06f8b6814f352803de8460732318ef2688cf2adb325d436297bc026c4317e90f60eb2d85cfb64aa96480b4e35973df3b1da20c0e8becf9f0fd27a1644f70a4b81efa94354cb4ed8bfa33850b11ad50ec40a25e30c7e37ab6c93665422034f5a6201d8f06c89ebe9a47ab16c4aeba39a1e276b2b836b2e1b35e0185447a5a8942f57ec77190d95a8e14403e84bfb59d50f72a1a1f3cca17f5207fe4d7ef64de892642460547b7fb84b1303452330b829390c50a9c70972a220d00db0f990ff00c78c26551cf33bba68026cf6e322e6b715eb4efbaf9f2365f094cee3cad829cf2201516def493434f17ce9b9c2708f9e6e1f94531e270a13852db1166bd4b69987ef95de55d83144574e37d0999b2abfe36b14a7cb671fd79aa90f893795126af0003f48565641493c854151687a0b03692bb0d3307df8f85adb5867ee2f2450eb273269fec785aef6256e0ecf392379c88766410e0b8bc0e6b1325835453d3219bf91b3e079ccbf0fad7ad095ec8ffe190049d9e781b464d3639db9141a429bb1f7d1af900df4f8c761974125ac5d864e3fe90b8373b534a96961fe76408c3ffa979d8a289678919078aa7f0c491b7faa423b5e6cf71241654852bcaccf49bfd409247ac4c4b61d9105e5257d8b244745d02519711f9024f72b30c3ea2c5b8330b9aae00625b8ff25bf1398cd03c41a893d3b45277c3132c5513203c963f16f93c27b3392699a095990557df76a8e69b885541163b17c3927438421c40e6f8e98f18bb693c8e32371fb21a31893990a63b00820c11a6646e9df3f58bbcf4dbe6b0f720e35685602634cc9f4f4e77059f4873afd20809e3ecc38aea672580af34e81898328db14f25a9bd8ce707fe9df25a0362a24da3202043ad9651303598317375a9224ad2994349f0bb916ba37d387ac1bc4b326b0c1bb25b80ca8fa2494b0e99f0e5fffc3e70550b67c9473e854fd2687c5794d3d908dde804ea2f31bb896a98aaf1835bb5f9259d0a03dc39f1a3e46c04964145dd40a02e8c45574c8725bbd125510b02bdfd75d0c90864cbfd95644db0428244a1e38d3590779ad7c6c25d079b70c9d3e618207a5108a1f569625f58e59bb1c1f170ef57567abe28fca2c70537b54d06ec075ecc9408729fcbedeacb612dab93cb0faf4578aea62b04d3fddaed537b2dc894740d6fd5f357bd18a76bacb8307a0765ca576bd1a114c8e40273c05853b8309c456bb77187c671e839a578079a61af209482435847c51eda49c86e6130260c469f648b55cc50924f9748391c4209f44c988f9595489cb95f4889ed23b55e065e97a3df9fa173de3709c62ca2e4e13d2d847b5e91aa9193a4e43ccc8596a25beaac7474b63fa218340588e95c6c85a9569345bf74aa3c60de48c269d4f99f1ce490a65e32d43c992146722a061718beb1e379bc5bced3fdb7c3f268702a9500d124d44d99479383a6c154d9d14047e0a92accb0d2c95effaee4b91f4da2b4dee88d99944f4c569b61ba45bbabbbc2c0ccf6f0085bbb57a5faa0857f646ec448de36a8cee5072298ec9fe7c98760b9274d8b408586c8326e12fd037f63669aeba8d30a6cfcefaf20771c2b44e2659f95b21b35de6a8e2a57095ef51a59f62610aa4a0f3d839ae2f8be493b80bf5dbf3f311204c3bba90d1df04e5ed3cfb75b4887c1a3af27ede78c145c6b16ccb7b63f18779e2a354dc0c7d3aee233cc6ca01961a5970aa2fa1bf7e8c511d83d9c64d8252206e4709ee58d40ae734c602cf6408b9b5e2d203207cb1031944d112f668dab84291d7d0a05887d777b0a6b403c31b493aad20547946decb81053aad01950df0963b4487eac6531d94c2c964d971e8eb8375fb9f307bf45859eefda5c5b2e3a8e50fdf6ed4210ee94842a8a19c0b1176758ed3082fcd9bf10bd66439368b8d7f640081a8038c8c5cdb5bc07b724518f6b9efb4d353e774312b7ca06ca4b8a68ce02b14bed1263c2b37f0b40765d8572717ab4fec947f298944e0c98612c4bcd5b8455b1bf5666122ad0317df7fcfe1fe8fc95960af7d92bb074e989198e8a7d9a812ef90b925d29c01d62d9ffcccad2157ba01e26717ad60bd5796dcd82e5e0763c431d2c8704e0dcb7d4b697f18546a91bd23475b0492640d39267c84d28d44fb3d67f7825a7b7920215d6263884067e8f4170a5f2b2485155c9cc6ef23386a218b38fde64ce9fa97256f331798b7ddec033ac9716bb6d7cffa13d7b657bac32b14a8430ba17d3d95f1ce89893d4041496abec63b627a42c916670c72f62d92f158e30e267d0d05e8184d95a54f053dc40105661f5224022841e08a7adece8a753c6e06263bf6a7ba0ee48cdf8f8931134a5bb5d989d22702edd1b7be092155602bdbb6dad9058dd0b6b028d1a899b07c6c0ce1b2eff01304463cbfa689e40e4ba7a20fad3a14b41470bb25e6b3bfff4a21b0bb3e9283ff66c50f10096b82c7d900b4e5e72d442d787289c518189c990ee1e439ad60fd7537ff67de2e748104a64a0871908f019f209acf4dbed36fadb00b05f6aa6c8ad7eb614fa0e8eebd3ef9ced7cdcef677c3e6f9e8856383d49e55eff1b1d1577fd74ae23991b2f093625792117be6b96be724cfe43cb9b716820fd9c2caa8ce71fda1cd6930e9d2e74fd9ac5bdfbe48156cd5b018c2906ce7a4609901c8353358254c3cdfc00dcdfc5c578432c0fb1fdd480114256de8b221038e2621d51cd9f0fe87de47c91ae355cf6331b4cba5d69c857e7f431408e031d0c146064051759b8c9e1da295e899716615994410630858c0fe088797add343f4fd6bcdfa55a3c1a659cbebb3a1230dd2a1057e833f1e36ab6df570554927be87de2b741a0ea2e578cad9417847f6bf38c847d17c0538e48b9f96dcb34a58b85a2cfdaf591daa700360d54b7946fe2cae0babcf3726b86cba4fc0ce9c7c3f0a6f3f250797d87f64984d1bab131bdfbac4bd465855323400266f6e26fc71674b7b31ff3354c622266141066be305f4c0f8d875c95ae2cb21d0c27685440214996be006f637afbcb1d86a8b1c4ed0025b40ab7fe62daf28274fd25f09e9d50c42dbc051b78b3e32aa4ed1015dfaa0d2a18550bb589afaa7024a26b795e5027d87a0805fd8bd32f7e065fa0d0553e018db22fdb792d3c771dc02d7808235b9797a40796c07df1d082596e0eb21072d6e4f69183463eb037e15c56a9a7a59ff019e75f2afc328b62b62ad3991288a603dd91e27edb45a5ecaed7c042b37d77e895dae34301072b6dd5b480d628793a3deebfa8592cf7cb1422d1ee27a8eb76060988e6b1665bb4e85995b9b71d89d9250c629f464ed11fb1ddd3a2bccfd083a8a7a6b58ac21a424d96bae92897b677241c1cced4c20bfe4b155720f0f6f5a08d69bd0d46d1cf5e3924d5d97714c75745a2c78d671508bdcfea2fa348b7c433e49e6fb24d871175fd4435819317f8c0bfffab6f39b9564bd76881d77d8dddbdf2f15601ae15d983fe04ce17a45693a50f2948137eb4b9807c03ab8f4c0fa3faf63b6240640bfab46085e108706244c75947bcbdaac0b5da9773cbd6ee6d911699c77a27bf2dea51df3eb5238b381554caa18f8c7591b4a5733a9b2f644c2f610db31eae2a63981b69b7ae6cee0c32edae0f760d5070adb7446a030edecef174e42953ddbf6535d3cac3c5f3746df70fb7ee0d2cfd7dff08c0b6f64508eada1d7ed8f936d9b15fb93165c25c11ddefc18f7c00c552ab94e5ab490905aaffd45f19a8a150f05c3416c0c20f324971f74ec4a22447ea5b01c60e2978b70a8bfb8f7335ea2730170b9deb8c65adb13c8bf5473e5a25a55b368128a9c3d60bfe534fd90754e3059b112a05d933dc327b3893a3e61c3397139a08ee2d625effbe2f575ffe6df2d8f669dc0b5435318989dc084549338c68fe519e463a6d3b88ff0bef462714feb2bb0d1fcbfd9a9b9d20a181d5afb05f053bb8cec15626d5deb2b51f700314d903e8ac79d52691dc0979e88045ae322a7dcf594b4b1f52e00dbd7fac24990bbcffd0dbee91a63e464cf40cb77f04cfd6581853174577de315443c05513071319ab2109824eaa80438c666e023e576f68ba5e34717dbc76c835eb9434be3cb79a056b15c207291dba6494a8b6a27f3e287ac3a2056e9e5410c83a48a18f90711a69069b25dd3e396d25eacd1b65e9189d258d7e65d87b2ea10e96d32f96025aca3f8616abc9ebdbbb68dfe80e180f628b91f782a09af8f869ded5f9833ab62b1b9cd1cf5bb2c48a09ffa72a5a52096f0f73b5660a8096845c8bd019e507a6ebaf28705ea4b6c1cf1f0c780132566e6852489b3605a0b65ee5f7ec829682f5a17d6ef16832c8b362e3c7adfe37ce3137fe8714fe7f4f0ae5aea4a4ba27d237449caa5941ddf19652aa758d9ee69b72eec0b7b64147d62faf7f2a59f76ecffe7874743c8bc268d318da2031a55fdafc6cc4f35b7eb2fbc9d46a934dd96e407843cda7fcd84183f5a53f0bbcbfa605f309418a0ced51a40665ccfdf08f8f6644a87f503bc41bc51184cfa13eb04ac5439ace846a51e44b26b65f8b3d014b2c885b995d3e8e03c15969a7805365fc7eae5f1aaa301766321af1d171b93674ef5f0dbb27a8cf4a8d32c3568a50039625fef34cd8f2b712ade67555c4925f36aff20258365d63243243b6a51f08687f6231db82acee3071de37f7465f7adbdd95aca888d0e59f56228a758de68087edd9a40b8c6f75914fa2ee7f3bac3b24e7c04a9258cecc5bae4536a72c182171a74b28edf56555cd9b3d313e09ed52733305bccd41e4a23a52aa3d600ec130c9a4f104fce9d6f2479f8bb3a5c2b9bea7dcb79c79e4d7101fbac609f9d1446750182be5c999560f27d4a698b1dc1bc91422924cf43dbd4b7a61adc11ba8dc2bc97ee8cc04a6a2f2051a92cffedc59fe51a46991eb567215eb409b5541a6c12ea67ae98c15d44c175c5c99b1a28b312a6a26cdc149b626008d8379bf654fd6c9abf84ab2442e3284d8cde44564274fc7afd71475ccfcd96c8e85aa68f558e6eceb26365f7df075f86c0f0e2c13f15290f4e027816e1cf891b5d81a7badb817124990062300bafad605cc894db39c18d5d3ffde976911693b1d6021636fab683738e78cca1141c580fc164d882de109e2a7de2d06e5809aff795007a8e9b3f3280ef0413383ab3494632054d65f0a88c7c394e020de0cb2e600076764ef866a5b1e1bfac4231a4d50a57c17d41c32891a6a88503fd8810b82d21d9d4522208c742cb782391a364d1cbbeb136e2c2688d2484138c20e1ba7c6e274b348b7b346d68d698d382acfa932355a826c3ea08ac158a740f973352d4e8e3583e223c2ac34a741714c45c17a4adf278cfe54c4fd29dfad31fa7f943a1f54c4b83c2f09a6a7dd67eb85739011f09cbd1067c9056ffd61ad8bbe560f62ba8fb07606ff7410fd774001fb8ba4e2278fea389b36d8cf244b37ed9a7cdaa5d2eb0818f3305cb66268a993c4fcd70c28b0a1c641c3280b3ee9209c04254308507cbb849b9a008d74795475941520d58f3542a30da4101d55a09fb02e041660f8bd34b12baa57a3c8cd94c6e8a9d292ed5a49b6c0e8e8d8dac6b2230b2938edd3bf3979816c3248b36de8458baf824db0da5c16eb02410ff0893b882277c70239078694b51feb44313efc850301e83ce5268abb055a0ef473d5e8c2d50e24af728543c82182efaf6d19a645c92c286dd7be1ed7d43b46c37572c3f0e0ee196fdef9e0c5e877daa51d6329aa761069cd82669fc4081a550bf836391dbcb479ada3410b7c3c6ed796aab5037fcf80493737f3a11f388ceeb7c0fecbe206a17ca53af88e911c2d0804c214e39c6f649aa0a35f6a570a11b64f3d6b4eb97c807fd4a3e87a374b54ef2f761cb81581055690e8f217cb4e48f5351cd2ca0b5d2016efd56b546f875e22253f82a9b63901c4b2020a2353b72beb6db81ca55773ea68e305b5b37be75dddec5d8128dd04e88382acf467d1154532b58b58613c73cc6a93678e70cf5b0e21079f8efc071c4f4d2facc3dbf4e2b8c7e10225e1a0633e955f5436c5276e268b874e570f63bf9b28e30949b71feceb98b4992d2a19035c9b757081fd72b993c30161f0748f96f879d7d40d8ecb9a6c06a474268a44c63d694d690db8e9e09fcc498a36c3fa8de2aa98e6151d474b09cee385429bc9572b13500599e0251c19c9baa441afaf876c85d1eedc50e3ecfd973a4cd220f18b8b1182a2e0a51c7b3e5e747dad15d9abe83c4ff1ad84ef7361aff2f2fe54b6cb06174b6b1e5be5e73f1725658125d497bee6d29c5932b458794abde3805b6869dff8997ac99d756cab171bb20a64bd402926c0b5de2c8396e90691dd69d424b19ffc7facfb41dae5267abe5a8184384536d1fbaa615107c79ed0c397ecac4d89687bc4552694bb41d2cf005af36979eb56eccb7315f78ed129bab178f2c2a5dacf0d7ced20e2374f66bdf6fc8945af04afa0a67f65a5f1084214c4f4969c784a74bfffb119ccf564c64fedc0708f395dd6afe6f9682f1b04117e4f31dabb4d65edaeeb05632d5a25daa1e8cd72fbe70738b60a27db5a292afada6b6ef1d3a906a926c37cd9391b8cba51477e8e7c5fca71c5c1e88b936240223a330c2714cd1efa04a0bc7a34c2e5d11be1845d38478925337cee1b6597ce24fb372135d192cf1e1393486edd82d547e587d2bdaba900a59ce7a8ab8c820ff1aba34c519a4e9a7686c172a20c4b569ce27974fa8510272c9dd04492e0a5ac203323e0ce27195c1fc07eb668d17a030b96c118c2c51e4c5351d8ddf6eb615fd9a0be2557b46a27d976835ecaba8905d4cab1bd518e48b9ea12995012f50997306dca774a7f0398fe83202c294f92c336541e775656c3cf1064063e40dad87df805b7caeb0268a57d236b76f85a93f1c394dd13ecca715dbd0c7324108eefa28d6330378e3722085eb21b3726275a94fcfe3724f4de4f17861adfb470508b54ee91ee4c112302765fe0120662fc8413483971195ac4426d48c8cda504cdca8b32f552dbe1096953b8997a34098db081d844e2aebef1457381aab631108e15d4e314c25ed39d6a4c74078d7376a684de055691009e22ed2da48c36abaca59f0840ec52512e7471cb28801b32c18e7a7be4f39db0c936e2198479e09aa0720b056f72a5a6afea44603fc1a51ff3760ed081ec71b81d636c7b0bb7eef4c95fb9fd2b1417b206156a2e6ecc8bbcb02cd7bf640e91430c10557da3d5b4361328b57c01624e2817ad09ef2d98ea7dcd60782278aaa6ff431195caed9e8a20cfdbc09cf94928ceab6fff8e2fba14814b74c2561a200a6fc4423c07c9175081efbd6b194ac91ecb607c58834bbebaba6ca49a62b85d29da3dd0ea4cbd892a163930fa92574589dcb6082915939dc3d44d9bfe71c034f2e1624d4dc5a1790e03312b62613168f576c3db7e74dc70c693ed2b2f8c33e93897a035d86552bc5522828eb6c2d4fddbe2c18ad7d2a6bb276c3482a845c2fa1c433aa795e78e5ac05906ae9a37cf0c8e2bef53329f861e01a0af08148ab21a6f7280be5d95789cf844ecedda58161e48c44d76eb469979a5628264af8a63491b0ac5e59259d4f7dbab331503df6194db69148b08b5530b8995c66b826dbdbf9b1be9fb48405e6583d58d41b98f2277abe7fd5669abf02964ec3d3a721c55e5638e70b2dc22becb1d430dbf7f093ac5a3d0a90192904179939ceb329dbc459823fd8a7959fa777af3ddbcd8fb1fe5fc48a6f8d74ce3c30815656f0a5449e3b958256b9b27bdb8f4a7b9d172c8fdc073255f86565c5483d8b1dcc998bbdf1c80830a94d9e9ddcb1183bb089ea634505d2e15ab6473afae6635add5f917784982f8cf4b13cd83e4ee61834d786c657c7e4cfe7a02161ca05eafee21886f2ab96fbfb70f9c077304921cba019b3a2a4566b79cf49f0661e2ac19b8c40b1f1b1811432657c41ab3f7d1382944b0054f7c9254bd85a04909716b4688a73c38c906e3e7827545cdc5635ed03a9ce5605f2cfe1adcf816e152140e7066af4563ef844104f2fe2eba6f9b29f4f5be5fe566c2a195bd8ed7b936e53db66752a00122c3efadd6d49cb6290a987d02139398d802ee0367ad5421b66ae3f7c261dee53e26d9cedb8eeaa719cc2e76c845667c9b946240901f13e3981e294a9adfd1a6402346d6611fef4c2031a33f9682cc40fe4703ab048fffd8288389f0d1c9c0c8fcacaaf8df3e8c13f3ec227dacd8eac1b95bcbda68e40dc7d2d29a91cfeef240ea3bbba7aacdfdc10143db9dfdbb67744a3d0bdf641f8d0f0eee4952f96908291a5678e7ee559d8f0c706cba28fbfdff465673df413f14af363cbc3f2713f71f5aa82bb77339232fcfc08bbef392afa76c9cd0059bdf81c4b82f6bedec85c6a058393994c7d0a8ab16324bc07be5ac016f665ac9b045f7aebb4aec324ed6fa56ed475cd057a03e2133eaf00c3c31728dd8824339c937a03a79ff310b91ba1384405d81f435c04f72017f1b4dd0a0fcc65221395ff1322e2663df70a652340c9b676c0a304fe59a30d9ea7c9f9ab5024915ed0edd4da35f6789ea12d0bae3fcce150052d02859053fa71818e1f5bd04e151e0dd35d251312c7ec0bcf8672b356d015d2160b85fd8a11cfa51cc7aee5672f691003148a2347098405b2d138577e1b35275a281b3778427a2a91b405cd72f718326346ca4c4245dc8f685965094ac4e357f47a59999909fd9e1731e528d218e3604ee7a17cb82cbd6286aeb34b322b8e8a9d10a1c271f93e81c46a907950f1599d33668c25e32cb168a3f7e3c33147543ccf2834154cf5cec73f0529a8b858f17e84aeb6bb0c41f7402ed261bb657e22bc1aa4603a1150ba5a3f25e082fe921eacf3a57f372dda42bb0e8b56a13ec223aecf971f9b2b41a496d1809e38f72e386603c4f997966d716218d92b8840d17b8af23fece87b61eccc773e11dca1d3d0fce39cd95bb17cfded4c833fa653c0721b83c9e1935d2217bf10ad38e7ff3de655a2791e0ac9275fcdee9c6bd4a42d7d0013afe455bb705729931e6db67df1636aa6578babe89dbaa36341121116bfd62eaca1b9a733f60c37986f4d08eb5c27c981e9b74cc7fb34c6e6f98eff3eceb66c0738714a4daa4609b60532820376e9120e731a7fc46b08c20b374b64fd6381d512de7cc0bba5dd33aa4e8e2b870d307ddb9aecd8f498f8d4108836ab95e5b85ac8be16d0b369883f540a22f0e25daf53ef8a36703ec7186f017a0e616315df3e54a26306500d5b2980e9fa2169965271d2fa9c658522edb9a848b5b81949e6988bfada30050385e1804b0ef2196578c8effcc758e816d10e54cbd10794f74dd4b2970ee22668c1cd9a24a2fbfbc0cedf42a959ed0cc4347c654716473600883294bfe0f37b10db443e57d3b904779f4f56ff744e7cddb346b612d798dd4dce46e6a094fee2bfd914120a470b913b4d469299c6a90f8a4062c92f0dba60b72276025deae20644eafccdc47bb56d423705db0bdaad6c149dfbcd4d7c94a03fcd7feb21a5422360d733e55d3ee06f9f37627f074811927e27ef71d676b128174ff1a30e6f06d9bcf5e000037e989df17647779ef20e744a8a5184f3a5be5f016baed4db0bd8124eb99f4ae6194de61a5e31f23f16e0a8093ee867b64e0e48ff956fc38230a8f9e0c602875a4a526b0605b135486f482586e7af55cbc816d061dd3f995c2329f9c3380e0068f66158bf9befcb3d150d099686536f623ef1b2a511fef8737d51d4baf9ba3f249e164c5af1220216f6767bec19b8a13858dce8bacfdfe50203ddc9b08d739a56816f50736a19b71a0dd19779d47457ea2bbba799d4eaf9568ecbc8da5b9b8933515263426fb5794b8af0692b4153fbf99d93f346e17bec9575ddb43b9205d6380b078f88976cf75320a7fa21bad14a346c0ebfaa57c1681ca91dbbbc067b927492ba92d7a0c8ba71984f6ca868a3785c40fa9bd9a24034710554b64b0e39e6c03bfb1af689e639e39c4627859b2e1f4a7ecafbb36f4fa506f991a3b11e6fa7bec83d8a6204f834ba636d1673a10e03e3fb1300fdb49b6944aba8261334c2c5983c5a5136cbc3642b85a8f3d57d91a59a7410db4a8ca29c9347b01e4d5fcb84da8c0dd8eb542279b5d162a4fbbd3aa761551fc072e7392e67ec844a9f969686e26f76f5c8c38167b96d06a67c6d3efa2e714264524007997a0343fd56de25a6bc719af8efee62095ed1878a8da80ae58c499f0e197b07e9c075d1e26b23eba16c07e14059dcdc0ad98cd9845393bbd4d3d9013972550a12be4254d440ae5296f38f9666370a172977da75058e8da4fffc3e54c033e733964480b7bcfae735489a116bf38774d1c0fd18d9662752ccd736292ca571eb797cd1ac2a8d1f49663f4a09f2aad259dcac3f4206aa7e526d4da5bf3f5c19c32897008ca0416fac29b1ffd0256359609d74ff5200437c0576e1f781e6ae7664601ad3794ff528edb73a9ef9de6c3ae38fca786252f5c3120a88bfbea12b44b59582c23e34072eacbd6bb273608c47ddbe5a2bd987c0953aff5aae689026291f0dcbd9f38c4eb553da20ea89cc81931d4de9c0cfb2dc2f9b601c2b70fa49c78865f44e735c5f80f524ae4d7fad21f82ff0c02820e7c6c37cec88e249cab6b93f0ddb5627ebdec46ba4d9831a6dfd16aa7271421cc05d501d947a40f60db527cac75d2dc643e83b39d5a5aa86dd9b965b31deb12ed90df30d01dbfab075f4cc082cd48bafb380090129ec8eb9b1419e369d9cb6e3530e82930b66186bd95c998c27d5072d4f1c6e1384c74cfe024ad2a3bca220f955ad8124433c1d55b36e4a85774d14cc6e327478bfcea25aca0e535ba945bc1d86acc68e6a45470aa033a03831e69e652be20b16261f82446b6180ca1188cff995ad5787f8620461e4be0f843dbb832ce6a6460bfb36a58429938384b4b882f3b2ae5f6796720c80e33d1585d4615149c01ca51ef19f3732ab0de239ea604ee3129743a1a420c99aa9988726083f171f22d5a829b169d86a7e7b9a391b83c8956ed32c09b48af5a263a28ffb3c2e3852363b1cc0587481c992808e8c46296b8984029b640db29f50e4d92483a8777b0f6c88c2edf78a1da6bb023b527b432ed095b1ced429bef51c21ba31a9d616d6def7c861c9124ed7d63102012461d60e5ee5281f98370f892fb59ac11c2851a6824ef058c822ee6a03100281eab179dd563f488d4e9920f1c85e20dadc4f9c5b01abfd333213b6049ad900cbbeb826ee1e6e732566673bf8687e3de22fd5d4c4fc8f30f0cfc665761cef006527d956830bc58e0294ebf8bbc99bc2b81395c47ee73c4de2f6905ccdcb1b216a3f09720e91980b044723956bccdf7edc163df93c7e3af1705bb99393af0945441c528d9fb6c10489d143118e9f98f04775d3eae627d3f714acff684595c94dc21450791e671c6bc29f3026fab9b985e2452d72c38496ee51d11039c6eb4ee28c62b72027f20b426e300507eac0586ca97f778f2c82d79998d313cadd4df2c73bf5cb36a3aff2eb0dae92f3d4122ef3f19fb18085bd2d8945d420860826f0ca8d34e6357b42bc86e9f6d89af87b1a7a67c52f286ddef4bb2d3bc3852415e93685ddf5adf8675458729a8e4dbc8c9ef2a62517c366d5c9556b367d6ac5ac60df6a1cfbe2b39a2d4bd6d29f00582560f099dde6ef729911635cee4309399d3eb8f9838dbb2611bb7ad6c9aa1f690dab49f33eec04531471ad055cfde486ae4efe348855ff3ec9f8cf3288812f5fd9eb476fe7cbb6706a57a04b840879f4bac2efaab190e58963e0ad3cc7aa40eaf23568b920fc0ea4b0703db3f6b553d868ac1426d48ff3d289f5ad627ce131d554bcab19424ab2516f30219dd2c800c69086170f323a2b507ebb6cc75e94c2f56d5d784b0f54779b074d972c42f9c35c14ab2d019c8889b5393d6635d765751caa1409205a0f4d9d2c44bf4c4e76234369db0f534a08d5c92f86e201c3ac422e53856ece7e4271f027d3c0852b5f421943bb8296645bbc566b29f2b032f31ad2d7741f13ad09f7ee8d7d1094a3490b6c96536f50e9b7448e33ba7a6cd578395c084d198152539d715b0ac4f30bbc2af3a58e8b6bee66883fd65353a012ae46e1859d90a66464f5013403f7d14db5d9a3eabd92270145c5748310714debbc4a9b729631e7bb54d9ba9c3a3f16e02578626e150e87c246bb54609323e69cfc6f0a6e8ff02d2a8d32519d403176386ff75ca02cad7dbbee5a61188161c5a77d957b0a826ad87a5010ff25eef4c424ee1458c1802e61cad7c36d3d0225934b82b1de348dd57d13310e4bf6dde9f0b16d6479c5f0d75e792f93e5b745d827c40104177b7181737f970ae685ed5b61c2ad2a58f0407ff70338823f62fad1c09125192fb816e830ca3d2d199ec247a639e2075f7f9a22c4cfc654b5abd6e197dfcd9b1a71054ef52eb43d7ee7422facaf3672c86d081105a3c4179bc712ed2fac0bf8ef17ecf2504edf49fcac18fee5f14500c0bcfba2bdf1afafef7fed9ae8aea5cdc37e1ed273cc759c427a34fe1e35a08372b1c7825e3019b7003b2511ab16973290fe10f363f582033c0949dce6be4af3162a2485403927ad3b2582c0c1258ec5d139de497dc6e66634274ebcc9f93e263a82af117278147486b94c412d5f6f90c4edc427dd86d4aeaad7fe5dc65be65dd77d671b99bfac1fb913cf3f0872ceba6af8a43b9bea55fa08005851b442a5a0075a30a9eb59d1131392de78cc4f770cc7948622f296c325bd541f3b8cee4fe4517153ee8036fa72c54b4ec68ae2e93ff5d11488b9bf4ea16b155a29c40dac08e6d8fcf27cc5afdceccb763b68a8d6240a751ad7d3807a973663d5f731e4f9a14cfbbbccd8720e7c9451b551f211a592e5c80c7a71889f6353a19fc425f16693557c0467c97f49669c8eec241ce1f02a605a80ab4ba16858685d8b74ae1d98794fa1afdb065a26499d8000c0f6ee06ec7e42afd638ae54d66cb2af473ae829e5d10f785b76767e6923885a7976ae6a93966bf987bcb239b205f6e77d05b72365a4f480a6f822bef1da53665fd77a52d088315eed7496bceb97c5530b097789618c8bca145fb96990878e17b57240294685d805e7876bd9b38b35d45c5bf1cfc50b90bf2ec91b9366e17f617e17570d5ff898b9a7712261c379fa932c35cd5c7b5a56aad5ec686746b1f9be1c387551ee916a66e5d6bf77013de17b660c090fb4242b3dfc0a65a341c6fbaafb7e7bfda28d4ba1993c5b137a22d0ba1c77d1b704d81f0bef922a17889e72274d9c78494aa77c1e52c7677fa4b1d8448cc8009a4f89980b2db6532a96dd553ad65ead26e2640d3711640adcf9c69650319a3eef7ebdc71bd06ef455b3e9346ccb6989b57ba01f6cbefc8a9edbfa36d9ebb2aa640f9fc37b85ba6aa5c04af149bd1991cded7b7cdd269a400cca8e031e34fe3a986a6a074e160c413d57a4ffe4946add79572870d28d95b2c1ea5a44225f8578a2111b031d80351dd236650952a0f06e78722b6534cd3b0b2edf75932cf39c138897a3d2539d4cfc2d0486322aaf36ddbcb50c631106846215eb9085480cb8dbc96b3a55c15d4ccaad57f1970c3f1304eb4794671be1bbd90f6b42aac5d09303d47485a41c8f74bac21b6fd417b8c630e1c1058d2a5f4bfb089bb875b6f5ac3e8f7aae5a7a35aaa3733b2d7b70b9f4f82cc10013b639f253beac8e9a71533131d160aa2dd9735a0ad9a03f80c275ca558f4af1aa5dd320c5452ebeb7128adfdfe7313d259804a26fa283b178b91fe4d57ffc39dc63b84ea285c0e603f9b5864913f98418fc41bbf38f0702758666c3b8a91182ef2daf7045ba1d66cc48341818086d152fadbef457f62a26fa5e02e98e6a33d193c558f068f46ffa3366777d63706aeed8366eb2f240056a46fb50e389551c635b5961c73f95f7e8997eeba3d4663ed70f885d3b366c55cba01902e4ffb10a5d41bc40a0f6d501e37701eb7013fcc0e8bb77fb55018a60a7eafad3aec6f902cfa4e48a1e03412f235220c38f4eb63f50c43cf1f40e4220d60ce35ff3f15ae2aa886ad0b068380a7d8a52c84bd80e3895acf18a76804bc18c229df6633138419b730d0f8ee46ded5884d47ae847eee1eb9d18b038acf371a175f58c1b83a925e4fd2fb2c0c4683ad68c24bb294b388a5e63156c83109e800a793cb8242ff885b7f65623610805e08d67860efe5742bdd72eaf060c893fcab2efc7ba3309239ba70dadea6149f330af357ff37cba524157f493ac92abe078fd5670a0e5c55e032118805f8fda350a71aa5c46ab0f27e1dbc7d1a75c7e2012937d136b16c98eb4165ec3e8a476a5491125acb5b7197006ccf15d288d91b0d551e8124f2033cfbe49d48ccd99d76c94dc55c246a1fe5224e75c8f9c9ee2d56b7b48d2ff151befded6cd9595878f8c6df88834ea796ee6f10998a3997ed7e9e379cf3c0c4ad4f0e0f379bbf9cb86569ce98e5f20b7e2b8744fe53a540e0dda02d69d3c4bb5d58ad2067681644895f4e21080e0ad422449db58b7d8a809abaae138e445580e5aa60581d78e02e1c6e00498451c603d8a8e27c68c64b4966deddb928ecc1fa417e4e227542a639dfd6b1d89e7b9e1a5ef70a92951aafcff9a4ecec17ac97b4d7f168cb59ac5a80cce37460a1d239f55324a49004adc285baa0aa5504d39e0ffc9c34efb807149cfa4bd8df78008bb052a6ea2781d0d4a1e76733a2af09e17dfbca5e6ef67635f687ec93d551adc124e6aa0ed12b0b5b3e5736e8559a87d0fd8732b9053197689b8bcf871549d5653d0ce99bb636d3064ec90f6173179dfb418b3f8ead36da75bc4ef41fee3e6f11c01c5857f830f3ffdf80097ed733cd1e0f63762acd93d9a5fa8b969a507ba6c38418386e9f41f854cc183f3895970e4541842f4216a7a14a5dc4f8d9f6fb34bdb38e12f110c3c0a6406634167873dadc7ed15ec83c6ce7fe2297e9c700abd53fca6510970209ebc42ebb1c9b459a04601d389bd17b3d66925f279db0e8b0811b8169211ac138ce90c4824696515f2cb0766c78f2290c80513af465f591dbd54c52c013832f712c7d4fb2a138edd47de5be74abaabae6da8b8c7e696dec211aff97e30e2a0dae6edf27ee04c14863e2445b5d24f0f8b664dec1f16bff21183f8dd273368020d55d7ee37b7afac9dd3c62e34618f60d703123d03d66d165130cc52885e96d75af665f754c9682949ddf113b6ab719c7f70b9734da408ad28310845e9ae2df212365ceb2b20ba18ca8b56fc325120ac118428a3f2d14b0365e25172efc5621fdcd1e4f1624779b3ca20aa88e4fb7b373358e9c8480fc7a582bd8e3d13855da2a52d08a36306911bc9b1278f162194470fa7aafdb4ee5f07ff4b68938e9abb7e3cb639c0da287dea3b5c0ac8be6a32b9e50bbf359ed0ca77a72cd1de72f30d934f94cb7c46d5d00f4acb138aadf64e7f267a9b91c765156a60ee7a0dd9e95783eca07756d50eb0ff2f500897697f99b5c2a25a3e74b71e0b1fb95ba45d329173bfe3d87d17a65631ac1732f80833f5829d8a3be6f66e1a280f5b2fe45a002a929fe2eece440a8fed0c38deea9874f8cb46481eb18ee80f651f55f5fd9294807232b19e5919233e6db96cdddce6046cb569ba0ad5b3775bc36def70573c6e6837b0fe2f7a8a99d84750550479bc17d2f6980baab635252b784e33a8dfa1a2ad8d1257ce81d6bbe631b5f7adc3e0aadafc6203ca99cc190513e7e56773c9738976386c0befb077860ba8153447700cecdbd777dfe100da3ff49743bd51d21a2de2c8825a368dbbeb3ebf9f7c505edea212ebad7de289728513ae497da0fdde3f1ade0d931a4aeed96edf30683b310d4b1c5b1ade3f86b6571617d1be0093fe57fcc31b7395bf1229758a0661cf4b206ad308c062df2fbb88b6119a5a3313a3810453751950f19a4bb19f5bd6ab550236a4e85b0968edcec07814ae72cd6a16be27b23889abe7e4bfa66764b8c494e0188ff7a9fb52e343fbb2642ae8fc16b3827e89472c5971d99beb046cfaee49082ffbdd51008c668808e3179be35c6e9537bfef174e834f2b0867a4bc177d62b9cf582a7509a2f2310c55798b4fda7fe8b9889c569f858e43c5df060d8beb10befd934d6ca58785d1fc190ed65aa839c5d97c2950b3350dfea3da3d27599d1e37f556c3fa8ce382a2264eb18bf844cafeda2a6c4682bb74f706c9b55d84a80875a51c102618f18067a9af82fe608d6de3f7c932aee8f922546b87e72c96b239e62f137fe6c7f0a012f884a19a8ee217eddbc3edd02687c995dc2b4b191cddf21a6bcec91bbb2855295bd3edbbbf5db199270f10755f35c34b7d24667227c2b59f62ca138b3975b62d6de5499df714d326ef5930ff1c2b622803a60e25cc8041f7d4bde32e2e69cbb99f2116d37e6f38b93d0435f5c98bb84b386a3e30a5d9744db3bc04cda5fe6263b430e17f5e8a568c8dea14ec36b09d6279be0ea14f5ba794a62a799952d764f143748697e7accb225000f7af16eff18e38e2b733ea9e4b9f877de9a80a0db9e539cd34122ccd981469babae583f562ec7ab5add89c94ec6fe5cf3818489229e154b217e684245704b249337c78af32eb59b733660ee0d7698343291aaa22dff0a8969cfb09d4db7878a59f0256c0c2a8835402b0ed440745d7333a8f72c35b671ea08e151c99fbd4fb652961608be6e3b985d7176a231ba88c382a6707d4147df0ad82d3df91606bf06e747f3ecc3d2951be0c6bbb04781300f8c6ce71ae0e972faf4d8ab911a4b8fe69891c7ebf195ab52a8c8a9837d958c7c9f417e0d71bbc3d497fabd6851e224411a57a0edbaebee23ebfebbe7cea322629185d25c1a17353ce1adaa5691f34d249b688c416956aea94507a6fc3bab098f74a1c36170503fc830898584b7f3e2b0e95e2d6c4d8d8721bdbc3f1f519114d8f076aafa31fc19839f9ac67e0bd5ac9283c5862fa1d4b3494e09f0bd6335aa6a533e64cbd6101da2eb6040d2a1e5b99be8fabe78798a57f62a1b78be9f971bbfdb451714881ea4b4a17c8caa972de7ba97adbca81da37b2a9af6ac2762ebcd5eaf97da247d866c59f19e1dfa58bc8c3a26ca2d358bb20c4bb578e0591224bf4a21f530afcd43ef846d0efd57d79abbb3d83c5ad82d9c1bfd7376f2e3579804961a0d4f8951d58e88129f3f60e15421fb2e77069b278054038a14d1a768193bd58b35f5e7549066d33c28dd22880f89f762b25fba0be0ff9719c4629b9f9d26976c8d951fa5154b1a541dcbc1190a360abada8bc6590523022ab3cc1024ea01cf4c9288ce51c30b6a0f7474b1b54f47b545307e65e92e13deda0dccb52a312d9ba0d1aec48c26bced0b69dda462ae97d641cea1baa0c5210cd2d4c341142e8559520d0f507709a217d25f607fa137ae6965f77df2cb668a8aff3686e8a31ed7d32d5ea4be80ce92a8efea937c33c02aa1ab77b192da8559d6541c0ec7b1646eef740e03a32fd343ae4fca1112ee574b30ce8d29679fc4497e0cc90a9b0a61e7ca4906830e1aacdf4fd6acfffa723405cc24ee78622d898d4c10639a2ad4313acc2de713d64b37fcfee907fb0742ddcf7e399a5fdc1e437a638e16d576e8e4d39eb75cc9aeedcc298a57a8999b2196a4957de7173547af9f33024774e3106b492d728a31f583526ed82d00a6f6f507109fa4d8245a1fb5eb3d1a877905404bd5a44aadeca8dfc5fc23fbc85aecc17bf642c1b8332332778764b16792b42a76de7a30ec63f923cb9e02314b71534f1a77c2b538edee05e06dcf6f98bae6c7ecdc5a0e189430e31e7618c4669289cb86ee43bb95152e527b11ac354ceb05b09a0307079ea4071e0c636c2bfddaddcb76126a4ecb37a8865647bf4f79349c85b859df471d5c5a188d9a120c4232f1320523d776369a65710bfdd324b3d96c978bb31b079a9033ec1d2bb8bf8d87e179b661b2f04b10aee6bcf30e855823a11379a4887daca516c7503ef36135d2d00e7ed241768df3d4dfd37fbee2519d837c08bf0526856a83b17ef7dbb6e7713b7adc2b1861077bec5c33ed790eda79a19fdb36b43bf0b2794aee2f87e79cacb9d0a068feb184b6a6f7636f1d472e4ad4281b1b112fcfa90b7a5f7c8693b36344270727da42f910732c8278c1eaa9bc26bc7e2eb06581dc9517586a9ed6b78f122e04cb1abdfd6bd5df49e7d1b961d8f06d162f9c452c35d1992af2a5cd2ede983a6065411758598d31508ad02c7324cda7a80edf253aef9ff3d4b2f8dea55c8520cf6014606ff07be0a139b22135237b018cc8eaaeebeeff21e4370d507df7d1bb1284a356c6660d9e62dd8bf624610102af7d6bb305cb62bbd12f84c708eba0c7f36333033d35a4c36438843a9d59d0c3aaa75bfa71b67104beea6652a4d780c6b28b5a7ce099110938fe7b9654327203c254bf905bd42a458d9afd1767f70dc72fa3db799cf05eb4e90c2a044bafc18f8f6f10a913f278854c91aba3012a24e8bfc2a7f6e999bf433c3fa05bdc1eb1557583176c4b21e8bfcc943458e56d289705a524fdea29bb29d2d05f6c2e5cb92a3c08aefd166cfca1ffc586dfbd9065e8a5e7da1547330bf6c676d3ae99ff4840e18ad80e94c0b645431df2609a509a95698e9e3ae75eb0197344e688c62c4870b86027b73aa41b382d92ed7aaf1ecca0bebc413138e4178568edc3ee15f1b195639243aa6bd092568f1f21a3c767f2a65adb5270f89088e385bdb550048dfe5b1af61b621959d9673a3a9dc08d8dcc9cb6f544a4bd6fe0590fb251c49c27926b8f33be77a275b469d5627bb51b5ddea4cb2aee4584042720b3e2826b6d7560b44ffe9f5e0aa44541cf915c006fca1c310d0c278683ad93c724665ccfcdc683950f1d73f464880d21b6f6d66b2ef0b4343aa064cf0eb2a40ca6ef21992aca356570e2129b788d865d12f00f14e5643e5a028e2e18d5982ef6731f90aef2980a689921cbfc8463b769745f01000c13398197a3346ace9910fabb8371bae187db66935ce2a498139efec1736dceaca0ab03b1cca27b90aecfe69c77e245c4b9a1aa2de71f39b278b907ca01d14a675bdeb5814ebc2f2ef898e4d4b338d160fdd392674f4106cdb89ce8deec5bbfc7f81899771cf9b1831456a9f10d0c65082cf2af0d979ce9daeb2428126a1fefcb0536b61232209899861114dbd631c5b36fe9fed33d87caa1728ac3a7df9668d96704be36b858e9592015f216f0ed1841479e4ed3a1bf5cfb131809a0969640224dd008eba0d071880aca27617858ef30057e8a2fd00ebbde1b70a69a860226ef2e0d3cb86c29f92a5cf48e3f493238a1e305d07b77b0fab22c91e5599a2aea4a184e25bd721a2648f3a13a359959278e8a2e2bb7b3103fc921857e8edc76f2efe1a95057f9b0ede8aa1e1be43fd6f4f8fcd422d60fd18e6527be6925dbaeba21db32296bb14073c431c0a352ad090b028d8be95616ee8b76a6bf830943ade2598a6255ad06409d8a8a741a4c82909f7496a6b2bcc47b0b13988a1ab9a5c9f006310408569d9f91308a3143ba1b47a7097319d0d11ff8897e11260978b07da91954fd03912b3fdcc9c53efed6233b301ab5e65c3fe3f6767be702cf25f76920d8f86b522cba7255ffe60b63560fd9a5076271e5d1766eedcbcad196342ba7cc7881d24d1db5de8837756efd8c87a73cded44078b4f0813ad4df6859d8136a3019e3e8a504df26c95bc25798167a865355b73f23ada6b8da3c61ddbc9ec215d79b75984a21877a5007aa0d4203a9960682ff5ff8ec4081c0c3e19df151f07952c96a0e114f87039f0e301fd645af347ac8c0e6b3f0e109611508494ce01485f116e8cb8a3f655407ac763d0bf516e72b70b8866b99ae5cdfcc81baba59698e0b91e568bd94c14ccda9c4708c3225a781c6f31098dcf9c437de2428004ee7d841e1d7f7cdfd68d4385c110c2d2071652f111584afcf482a7659d7eaf8e07d583088f4993af73158d1650879770259ac6cbdf540ebd75942c86c4f832363d4dbbd6ed3b109be9f40872035747a134ee296d8dfd4240eb05ab8e50011483c3ead196c3a0d19680e75b933191ed2e78b16bb79a310c107cbc92223888abf0bb84afacba09c8ff5e9e09df312accc9259375c55f51001772d3ad8832a672825046438245c77ac9d93fdffb7179a349cadad94008c174e21619b3a0961363f251309af998729c4855e12d7f13b99a9116e1d14ee96bda31d491a8084bade71adc95459b9164af0b0812d5f52b8db8d8f0958cae0f3d2a654ff1159caff85c7e969d11bb603fba73ed521d14a877eb589cf6cce23ca6619cb62407b78399210e41c40b0d8c630cff79966216625fa2a6479cd880cb1d0f9abec8dee60fda36935f59d964df7912782fc58e9c3212f5325830b6fe1b9aeebae0b1f8f2442a715a00005e996deb3a7a033e648aa2c15cba57eebb9a3c1b969440641c67159a3806cd31b2c6a269eafea65198b66b7efca17e2a6e367821320d419dbf090a60d9a7ceb76968b76580e421c1bd7225c2798574c7ad3e593052fe38c918e8f458648290312a0689986ba1e149ff3551ea647706c136fb7652c5b4e78d01e2b17e1f199794916cfa7b4e954e13aaf47ab531b640a56edf149586df413da9df1675866b73a76cac82cf33aa374288ee47c8bfd78f1483b63488b9bfef65171b9103db8014853d5a7f15d337e86a0bfe1d2a73ad4b44d8c43dc2b6ab5d447e27709245a55b1f12c83317e55a881247b284c8dc62547ec738c45b2837904c5da08ab185fa61b8aa331c5d88327c39bbbd80f2f29838a1ad844d71369205a473aabb91323e5067f02261b9b5b5d2ceee83f1dcd97fb19e497c27a5c3f1cda682b0b3898be72398bb68c4bcc4127937dacf671e3c3120fa6a4f899bb912ad61e005ba93d8fe3e8bea8b563e00cbd3cb21fd033533cd1d4ff0bb3e7e652a8718da5848cc5a502ad4c78aa0da4afc9258201ea900c01b1eca15110f79e4d593c0e61edcf8ccdc83d9c034b36fd38a139ec1e83943d3b49aaf13deea3fa0dad186a964f5fb73a9ad576c94baa0d91c63d12c74a327e6f03ad10c66ac84dbc9fe47c4abfd61bf5173dee0234955821a091b3f1131b82224f31a4d33e0814ed9e5177ac0bcd779fc86505bc58b38bc230b17d6c703661ce62309d8639c74d38231bb21b114af8996686635bafc3934ae3f57ea428f841868582f4789e61d23bd0b2e6851f9604175042b2c12f90b5abde5e07935adcce61b61b1f8358943a1dfc02063f3fa0440c2187ff64cd1a474e6a4a942822fda492d2ec98d91832d39834972734047d9e1523b952b288bc1c6128d204db0d8acef8ffb45b98e6e2a4af217bbf75bb6c140cd2b7579d38f5fc3b169a446764929faa316065e9c4c09a4f9c5c6ceb955c1c43cf87b2b05ef43524dc00cac66c19617b3c383fdeb39a1932c4812aa52e58544785cd600a9b47424b21e1ec40688222bc88f4476a75c4bffed1b513020e7dbb5fbae0a53230cbb181ef1196ada725c85a3a96712b0456393d07de9ef0a34336e17a06e8c62912ab026f52ca82e44b7accdb21de6c0abcafe1f167621b48426f3960aafee383d92924982fc21ad8d0db60ad82e7e0e0c673fa5b1463ac5ffec5a41174ba9b8cf0b23594d224f0259192db0e671debd44a1fef78cdb4eafaae43cd5fe17408c7870243700ab852018fb8c9f8255d0ccaee7fdee706d45048d103262c8ba4185c2e06d8ffb96d4e945b848e7965c8145962893015f65d8d37196e5217c2f4edb743faf84dc59ae4aafb8634c999a71d7305b35acd4e368b67540b53265476dd531b24581ec5d630f94469a3e3f3ab22f5cf9182abd3aa16ffbfde1d52625b5d71727209e757d6cfead141af9d0f973aa7e7edc15016fe752345e50139cc0400f8fcbb351128b8501b4b4cad15da9e537deeb44c343bd9fd3241ad9e4b2647636bb91005973cb97671e2026f9b2b0628ea2470a64c6133febf08a294bb6319e2bbeb2a50cc3767489c832a12c1c86f1038119b44999942d3f472d34eec49bc85315270694c1395f5b8b2da41da43a12a9c1f085d63b167930f525312b84e80404e1317da8f1b368b51332138fc0eedc7ee6db7bef8ba4573f09b92eb279b5e76ad2d2a2dab1fa985c06cc666b145770e2bef156016efc796c6cd13115d87161b4d151a08bea17ea16fb655455383eb0871acbb9eae6122e82867de6eaf4e1e4612bba940c0d851254f7ce06754801549da005555d798b516f546fe066119bdd10395c09967cb61f35d8bbe6834c1245f488c123887843141e537b6b89988a7629074976091e8ee0fc8a45f3586d774d441623b81caac88a70c41eec487870b02f6ed9d6aeb7e61f330a66aa77514916e8b9d6970102dc104d1ff5cf56c55fc8b073274e60fe0aaf04d5808163e83576aaba85a8437af67be4ee410e626b3fee068c92dbd5a93c40aafdd7edb962fe0f7f1163ac180ac21d9c006a38f9454c4b6d833e1f03ae2f11e0fa12fd5413f84040f0a4ce04879d964583791a6ea095581e6a912eb9c38c65b81fbe7df87b8f5fcc0f014075cb1a788ea59ceb5cc57e8576dcb678febe70d152fccbb74bd6be491c7438e361d67fb7d154a50eb9f83f2e55651dbbcecdec5342f10db5210099432dce8a09c8b748f0b4f88c6281f162e23586f905359e8441aceebc1952d0c325d8043c3f1006a3763b6be9227eaa49fbbb25c1d0f196b1fe69aff48ca47ff8dbefb61628b148f33939f87a58aa2ba582aac2af1e1fc25f8ab7bf36b190ff853341bae76ba13c4e774fe2a3d92ac0006982ce44b384c56fd83846e5acd4cecbf94db4feb26a17ff3bddc6e9daf4e6350c4100c2568e4836fc5fd5ca42241ac06addeab3b2eff504b88d3d760f862ef20df944b02a1674fd227e82917a72bd6defbb53dc49377490606e3b995950163d7a3f315a0e75cc7f5e091f4ad99708712c44bc58adce038ae2b614430bbb02ec3da77b4f138b826d3fe1b7e82957007c608b9a88a494f60de5ac738ab6db4a2bedc415e101b27ced3f9c6dc5d50233d5124bbbd0d5ff5be69b4d3e298e4869fad974eea8edcbc417fe27501ccd441ed511e2881b2332bf192aa72ffe55a663ad7a5d45ffd9dfbc774646278effca916ac1061955166b8c5dd40bdd8ce3d38e6a20e8bc866ef6778eeeb0f89e64da7095b90488ee5dab649b0389fa772ed5efaefd29059ebb28d9517feeab35940ab3ecb49f695d599bee73174cf50af1df9bc97c770ff00e13a7a8af21631eefab8a18cff5409bb506c4b608df65b4d82ba45de69b37e7d71d96f0ae5dff8b579a255813fb01a4197ff3eddb666f8646684ce357efb4319c4e687a3f49ce8e797e93fd5a6898fae2f72dd1e34ddcb79ff984250ac5f242fc92a50aa11a8ea1a3bffaec7b375122f26c20d1d303ac202e60e4c5e7eb24d0c7b71b584b36cc1f2fa86b1fc706cd2487e6a98fa2bdd0c1906aa5b5733b8a58227e499278fa21c8787e4f24d7fdd20f2e6c96633c5f0f3abc1582bdff665498b78014d87f81fa416994a79cae0df573bbb847d605f94e538b3c9df93291191300dbadbfff645b928d8f0ebd26a677e558c13c282e832874df780f58e059099095c455cfd8cba1a6bf6bb4d1ad3a587ea161b9ccd1c0322d51d8151e2d60dc9b9792c205f84c44ce5efa5bb555309f5ccebee7e7ec7459b07046536207739a0320d14b52f170713f18e0b65b320f6320f333add41d538a5296ce0f91ece9e05ac7669e196adcd18f3f535b480811046f4ad914a23756250e4317e3e9ffdf477839f4aab5536dcc3cb71cf5174b67307192f8a194a466e90111b9c1ff704be2f9d9e1b3f1f5d46925699d41f46bd23255790015a0987a89ef3353f73a322b9aba78cddc8ec9785c0e4fdadc217864e6cb19c92df1139ab1bd897f3155ff445760164a61c022a4c0210bd1e37407896b88873bbe66b57006f53a0862e1b32d74d1b823a5b1ab54e0681097f6d77aac63c66baef0105d579545eb00e9c0f19502b84f99a4fdae2ba5545b0533c78a1c0ac1b189fdb89eff3d007aa529ac1715c505a93ee735324e6a39baf256d625fcf93b4303ac56042bda9b522067ae87ec916b7578fc5ce03d8fcfa53e572a9f64d2f8d406e29b20184b314d9a88a73d7d07e15cc4b46dc4f483b3a92e5ffb2c0e3343c39a3768718f1f001f362ecab5691822233fbfd3d3cd05e45ce05918b719bd68fe53fa5512ba38ea5ad95220239efa2ddc1a0fef4804ec46ead1dd63f5d5dc3807ab4d2b3f2caff501e59003f6b871c530f77095cdd3312229c39050de992288fb431d6aa6cd3ccba33f02a3b28d42f1b24d048f7583e3a44571e06a650edab1b27b66c48b899b3b0f539e8417bcda7d4264e11989e5325cf9ee3acf89816012eacbf6a0baf09bb692dfeafe9395dc78817710631f163fbe539bc7afb41c748a81d81c98483732d2ccc6cebc0ecb4cb4580f1b1389820aa212f9ffd0671857fec737f2fb27385bcb0c30583dfc9c944a8cafecc08a83b1c48ae86d0d3c472bd9d747d44c8a6886fd42a85156c587681360566c7867143345200643d22f925b8703a35ac112e5246b811f94ae7da6e82f4c7b343abb7004284f2f73a2454042f951059ac4d802193c0ce61d41ea45fd82c17f137d25a337d643707a9272237c240bb5ca763a0e0538fa0a19ded7610732fec38aa8c34e349a03dcfccbdc04828154c079277f21e34f65be25a9c1067a2bf2d156977b3de1262511fd0b6aea328fdda144df493de3122b996f99c7d1d69b3350271d167da40d196d7c259e0ff34d9c1ebfd9db0c48383dec4efbf408d57603af117c2915cf460230f67cc9abe4c0996e8b022700de1b827979edd60530f361c1f5eed39fe0af1e134d8c87df8873ce02dd7eb0a5b338453810e462ecb60c33b4ff20464f8e88bf1371628d63c8f20e7a9624436eedb337072a272de8bc027315afb21d2aa0f4d174391ec8d2fc4e0897f3fd7144ead0006ed551ef69f6d87add4eb88f88867cf738ad78cba9149c4c4938c9eaa1717b5ed0edd35e1f25d354ac963c631c018b2e973a39905555766f1b2e79980c4fc1d5b48a6f539fb10021ad41b9bb0d50f20a2c2cbd82eb8f78329851b695259255f30042be3d0477ae89d1c3a1b3f62e667ee90078e164d6c4c1787159efb3a50c1c4df0abedee91ef4757ead9c6c748fd30072a6d6b77e07f00ae29f136559361edb13cf6a8abf91cb8c920380ddfeab5697518b85e655851e5961440e5bd14f22db197b39173074e7ef1470b45dc7ced86947106c75e39e9e6f5c4be8cb386014e1c07c85c04d5e63a648894adfba9ea0633b9181c4e427778779b15dc2a6df3771aab72580889054fa64e86b10138542014bd44302a413096db52a37033fbd530b08ac0c2083d14b110ab8b61013fb6ea8094f46e27a4ce6114aefb789bfcd2886ae01770e4253ed1eca3bebe87d40117a614246b624f0dcfeb0b64277592bedb0fd2acc1040df18d78a431d5f5430938c030e8bddd2e2f6002c458f4e76e8e2178380deccaf56138c41769a6139d079b58dbe434ed5d79f2381906b1f79fdeceeede998defff05a99c6adde325b915b014a4d2506806b49ad73dd1692b846a45c06b0395ce341864f3237a7910d6b502da7b00143e4bad91035ed0183e3795d4d4f5d377d9f219ce767f22e84f8e4bc248bfcf2044abb53056e54c2843a0e5497b25e5b8a9174b704cfa2870d3439edacee535285b4a21fea63c44c5e84d8411c5a0e8be6dde364d1f8ed50b020b5b9cd5f93ca84278cbc95a0dec01c278c1e6156edffaa9a52445f4eae73974c292f5cb4c81fab59d8fd9c9af29c8c2d68d14c9e9a45e8874a58a76dc0d982c4b373a0fb0b5b2ac71cf258fca179c5766ff450ee6602330250c27ae2b6c4d59c4a27cf4d9204dd8f9f0a5d250842ec3fad0e65f8e14e0df8eef8e52ba1d45e8440f767484192db962dbace0fd72bfab1ee01335b214f0c3e7aa462b49ac3878cc1fff3b418febe42c7d55a024985002d5af1bd12c8729c3dbdd9630579b8a700c561823f583f5578647ffba29e2a7addbe48e523ae8e3bb82ea505ecbddf049399b824c6b8b7aece7aeda8647ed21a356cae063ac884eeb7578a36aa75bef514bbae76f7651ab5038ac85064b8c545735ce972f1b091779c1f3fed2d5722273f5e59210a5124816c73db88fd14681b037020e7a61e45f6154090af1417359cc1f2fb9a2a3207fb56be300eb2ed5d7e4329dc102ede40637de2ea609cd228120e31052e105611b9df52391fe8ba888ee1979358faea93b78bf1904885f385e69d9e47fd656cd02aae3061a56fe62a77f58946141bf27666fce45c8d649e11717176c8858fdf304a00a99b8195158dd9f428fb31b23245dda37713f89643f92c6474b5dfdb875f97d6b6df245f817ec5db6329fd46abdecd1af20a3c6e3e598783889b4c639872ec7fb17c2362fddff3e90e6be5b59e1acab7c1a6e299e5cd9939014b1089b74271c8bb1b3d7931bd2553e3984b21bd427d0a2e9c0849ba1ad3b9a3b1b4d5819abbc4257110ba8f99b2b915e78fa13ae50bf9d5dd6411ca5b6c5c1312935a96822cd74ac1f1a83d2d8e4e4aa0cdbb2da49bd9f098847eecc4658e390d79b0fe7467992526a40a5b3d84be019fba05c987be146c3e29dd06f9cfb94d3d17a492e214e297520a44fe022ab52c636b9e17bfa811328cb3fdb5aeca75adaea53c66d5765b941814dfb50a8a12c766c69a4eb3d35b115b2cc5c4e3c1a196a252136e3cb3b0f6758ef892cc65a2b0e13e81fa326e4502f590c64800d7a2bab4c0dc6688b4d8d9d8a92935418d490180c36273455a6e75ca7763718d71937a81c7725e40bd17a1bb276c4da1b1b2f43d45bdc81d06223488d3151b350dc37d2fa007cd5ba2bfe1ecbb99684a1ac1fe043ec1241fc6e4be1f93612e28c08477d3eaf0fcedbf9e268f098d34e1060bb66dfee8a81dfa510dcde9443a9e3964d62095778f2b6c3acbe275c30e67788caeeb793331fbbb1852e45f9a801ad402a1cb0dfe37d17bac0693e3f0b2f733570b7db526f50f081159371fc5b56cbdcd2abb2181d3b1a14a2b6b5e9c4bedabd06a35659251a3727530a19db630906d39ff44426bd0f4ce85576bf47736047fefeb9c26546db2490eb56a59201ef33b03f3e67c62d6e189b047e4ad6b29264f5d6a168764dc002e0d67f899174d03525c8b68ef0e8e1873cd8281fb42b0713a8672bf0ea2e4ff459244fa66d90e9c0faf8ecdd91b0874e6fe8d10b0af8265b771dc8a0fb1ade6d1a61d6be52586af9c30c54ed674f902ab3bd59219c798a2f52290f32a87219fb18a7e7fc1af9f9dc5962c6233cd2c3922c97a6ff955480ff6c5c3a2c805080552cd7988543e72e7d69e1ff9e010ff9b443272132e4358c19692ba6d8e610e6ca0a5ec61d2f9a150a9f3b1eac97bd9fc4b4ec379cacc3e4dd154957c2b457f3f380298fde685aafac371327d0325c3899eba6d9f5b796f3c0356471c6582ba3ba5820d5f9d8dc7031049f8360ae97d99cc4a5fc57de63d81df1d6c0b4dadfc5b0aa84c28e1df1c282269b7eab48f6ac0a0dde1ad9c88ce4d8e081318061b67eb693253f8e795d81f31335c8b08b116d7d5cbdb0399a2720d2da9f57ff1e48c3f0882a7baf0b1f7e59a628f56964c2f0cd21b1bea0502dc527ea1ae73cc30de20fc48f6a743fa9fdf74573fda2aa409941fd354a68f2e6c1481dce3c58d996fae58120433eaa6b363a76d9bc629b5de208c20dddf9d7e139d7132bd3f5af4e7d4d0dd90172c6d9d73d4ffa73e307afd90db9eb04bba4ab015b76edd03faffeb55fd01fe4ac3e6c802daed3451b3bb79f12ff7fd009c15626c4c1e178763e983dfbe531ed08bb97456b2669bbd4d7d3ea1f184c5749675065bd1048b5109b32849ae57465716281308bfdb6415731048343121430fe9561b1cecc06956c43934e7ae31c5607824dbd1dbc39a79fe065c99ed110fbfa78ccb14f71b4cb0fd7093210dfba10960c415d4a1d1aa028989c2dc55f41d79c1b583f2aca7a2d788ee21cd119d5a617e492f339677c46437838b46a585aea1776c4ea6c58f9347cac34cd4710a06e491fb65a51768994ff65947862cddbddd3279175adc6977f3b8b5c567b0f4c8550bd1adc3b0587eba4269427ed3bc75dd87039563b972c509f2603a1a5a020496e79debcc5fbbb8eba412082576d489b493c08382276770d6b462fe83945ccddc4b0abae86ceec25a0eb3be0e85c65cdf44d6f79fcd8b1c0dca97e3c3b3de4a82b8c105a5c39f33eb67a17a8217d72abece45cac95d66398ddd64fffe2518dd613e0ecdcb4de53c7162990da49f699f3356563195d60be66c26e576a97deabd67c743147a995bb96dd2424874fb83de583daa638a847f7219c2ad6083292c6daf8a60f1de870fde100318055f5795dc704666c3ac5b8866218e1663996a2fc5ac198e4d86fc881c6b95872fc50ff72623ee9d780dd15b1e9f13726b0976c0d91db5a9f6519d015c47c773bcb99416883fa7fdc21a85b7b16f1e2c7f630ba74fe4cca1da4f284b2408297ef234752647b439ba469ec7903707c9207e509290ce55f0e00e968fb2002df68d3fb7e132da070cfbe54d4493922b9f3c52d4e6b77ccf7eabe7e435859b52c536b5bd41fc5ca42a72c170f0c20793b640cd2d35cdefef558651f6efe186ac2e33ee1557bbed6100e0998c3981367473b24ab91261d0bae162a7c93bb73157d9a293fece773270423dcf152ab0703a1cae8e565ea9f466a224aba87fd120f185770ba08f7fb206587daf1eaf35a07ed787d7f2cb194460051f1f3825a6d9215e9b8ada33232abf7793e9ae8d8a251a1979bcc2595fb657572b2b12bf67f4137846f048bf7a3b56751a1a40a12c86285d6bdf4ac626244b3b60c77718d7a9d861b1cc200db87afc527bcf97387e7e2c27689723e29c6454c44c03837335e90ede4a77ba9b5270f13c93e377e1eae1a869ff797ce762a10503340decd07c6e65e8799dacaad4ecdde367c315c5e51782e76eb067037f30f305e64c43e75f0cf8eb5dc1cdada5de6f152846e8c16da0f0fdc13364a73f3f1b3ba993d66baa65f3b37c0945a5ca3dd0b83e2a91b713114bff331f3df64702afe2c340bdececf0f05a373250cfe7035af5fa14fb71a4462facf1fdea5a10d72a00631e8b7e95239d74a74cb69c338f8fdbf6304906a9af711ee3ce8e84eb442c0a3ad0008356d9fe01c071278f4a633a6b45b1e0cb4f775ec5d38db049d0c5a4bd891753f78c5e41b7b139de3854a77de43a8284a2ceea296b98ad1ea020e3e3c1f72da56c35711684b71a16ff6dd5a72f82a61730dd8e8634e54bbf7f37fb4eebd79b9c864ca1231c20267b4fbabf4de95363adee151d69e19bedb1a0a0247844d410d5cb4dc37a8a9c0cd2d98dc637f8390dc0021259cc97a6e4a4cde57c7585cd2c8be7c67b48c2736c69974b047c9c01ea033888d936ebd1c73530942c78619bd4ff00dd6208443c7d5a696d1469974449443d9e6b380dcd096dd06231e7c3c11f97b4216fa02b08396f2cee9898f695ffdd4e81b1c4c21e746e4f40b679e9a3f938301bd1fc59735365878a03d7c0911cf9526a38ef67f81eb63699280ff1c66de99078455d671d2f68e62fa14dca9fd37400970f08fd3aa4162d8fd0f22084c106d0055c42a1e72ab1802d8c1643b75126d0804ccb25b12d74444f0f8cdc7604f413bcd78c7cc7641803ff77fa1ae0873360eb5d1b41df0917732abe8f4b063393b8484e07a719e33e87f6f8b9f9f6721aa8a5250670b5527631e77cea66bf75f7aec685225c64c15e9c017a5aa1a02160c938dc06711e4a4b3e4805c16f747c5038b3085911d7b0bc0e1a794198cd201e9b6eb3b006fb3e7eee0b58aad7916647c803915dd88614fcd73af9f2a2d64c5f87497fe97f9df255bb7c414324ff2a9b3c72f0271111baf62acad14f07fa2f8d07914edb32d2e6535056ef7f90623f3fd9c77318a093d0ce251afc44cac3e656712b90c872fef033871bdf82f44cb185f86aaea51b597dc2bbed88500d07f8a647cd107131d422d71d6981d28b218e184466c5886ce1ca85d502bafc493231b46fe7cabd853b46969835031c47ee98991447c0cb3a4368fe0e7a6a078978c7d51f1a76b188c350d9ac78044e80c2c42b6322f7bf9dbb0c1c742a1385e87dc4c562701dca2eb4ec63349a229ffd061b09dfd6b7b690cb2067f59ce5d66ecbfd540566c3939728e1235dd1bf78e891a6ba64edecae9c32b35c911fe798d09a29c7c733edf7d6122c5d0db8589dd45f182ed2a5087b0ac94bd0ee304f74758b7d8262984d27482b288242b14fea4ec90f3287903b74bdab61ffc459ec9fe75cdf210cfad37946a9f553f7ac939d8348a34527873c1397fda71700959e59b94170a93913fd86422f2fd77662b61774251ad20711df2118d9bddbbe6c6c326c03e722eb08fa3b2cf70a21385ac6374598d3b542ccffb3c0147202eef39e1708bd53100fe2f2b4d457f3d3c8be66ba75801afcff7806e3de0b20bf5ac533fd2f5ee81030e5b25589aac19470e0c6fd3eeb74d8344f044882122054b118be3f59b005124b5a0ed2b2b11564b96aea4babbca4e27270759ed0dec88f5899757b68568c321cc18ffc5a5ea6708fd120643cf0f5ec6459cee8fd24ca013d860260a23e7af405b967ec90336941c53d3d5aa38351e18fc3d276f4afb6f3c82ac62004a1e1fce99b0b00f9461798bc57a12cd9756a3abc08a8b7e40deabedfb4221cd47aed1716bfa7fc8759385943d1d0776e2e4f5e11410874eac811e4adcaffbe556dab850456cfa2a276b7cd9b4a9bcc7cfcc91b889c8eb44abba2528be118e2e0cb67bffa4d7d2b50997f6d477db82ae9b24e863a3186b65383f3270a3a7fb348dbdf5448336ddfffd10dda0d03b6c65144edeb9a5991faae4d44bcbf5ea667ea162b3ac6ccc97187957f30cd49ad10a24664b6c931803ec112088a17e0e79e3f08879e9295a9c78b5824a054bc3cc44480f7d13eaee785b720b9868f0abe1fc0024bd0722182f82e1a7ca48f2f2bcf5a920b508e541c188ce353d42db42d09fc3292a70e0c6b7916d96ae6f8acdc400c787a51051c487fc53d2cbea26ed7a6ac8d41fba68e83c9edb9d074272164c1ee0b6f8d53a4e5660eeedadf76b56986063c12e4e4220ee69b2b4385ec5797ec09c4eca3302fd1e376d1ae165c694e8975ac99dd865cb9f42760b782f3913ca07974d2c509c95b22578167778fbfaaaf4eca1e88b761c4452c9d05334322e62c7c1f4a2860e924ccb932715e70c5d24f643283d33f16b777f15ae2995cbefbf99dabba4226c9a072ab981765c93892093a2f8fe143bf7f8dd614eae0acb381a055a2520eae028649f4146e6447aeb6926e36443a5bafc27af35136814bb12f4af93fdf67792bfc66c295ac8ecf660516b161f550864fe8cf2aaf5357fa5688ea5f8947b666266f6cfea9110efd4552e8a55f5346563f750861274c23b28a171aaadd1f749db1d9fab7377caf37118d93419cc1308cf7cc1d7cb561485deece8a0e788277bd293d2bff73c91be02322dd3a79cd6548b14d2233209035758c181fdbf6cbbb188ad8472a145188dfb438ebf6c9d9b89ca889847c13dba341a06904b73ffd96e536a0c28630ba5c5b58d5f934ae22e51d2a1ce20d496393f5feeacc13b6998371939a52b6b0f91f5acc68a833ab39325f17a527e9e17d39b975730e639c2869f2a1af227fcf0c91fed6afdccca8f8082cd9aa6a04433b02addc9bb431d5e232342ce752facbc505b8cf027314e56e0e77812704a326a4c8dd8e4b12d7feb64d2b4e216554c04bbc1499e7f82ce4d51acf029fa601388f67cd018b79421c531cb1da2a2d4fa55b3adabe4fd4014e2a79ff68bb21c10bf5271dd083aeb83a7e6830ed04acb21377749372c9f4655b9677d6b76abc92e0fd8967bd8e9198019d6e58d9d208064de576d9b04e6835c6b4c2f952f1b18fda25215f5f33784e13ac33770739d3cbd853acee88156cc3c8ac6dffae3dbfce20c62a65e98da1c285868d8d1061eb54d54197c315efab2e0dc76dcc01bea21c19afa7b207d4f8ae996efc83eab6201a48d81b02927dd7609a4b448ae29eae6bc47e2764586535b824a7b0751fd0e2576ea15eda35892ff8e8209a04651a1f15b2e35ad0a546b4b0905a0b9cfcf292816bd0a6a02c6ace9f229b508a1e47a4e51bfe44069d95d97b644e62699bca0bf20caaad4f71d47a3983c2a76e74502219e6b318694e0b56131b24983e1d9c385288cd15d31a57e9834ef8f9ba78b6be4e7e2367aa68941277540bc8990dbc6c25fef7318c47df26f44d33eae5f820c3c26815c89f45c96434123a1e6c75741c5827014a877f24a57a2dc46f8f0e8de530a09e4a5c67f8985447d5272dcfcb1ca84f04e3f4846ad5f8524e93ae21001d1c15261ae6af7b6d376db9c3b4c46f577c17c4feeb97949ea80241fe19b7e3552f7283c24deabfce0520f3f627ba5d1e1b4c15841d750d0245524120208c1628032282f328808fef0e1bd6fc141226e257cdc3f2ff5a5f695a25da033407b10aff916cb02beaea4accb05566a932ed890a0c5ee5796bef4b9d2e8dc2c3386ef0c57d7f2660bab9806dcf28feecdc77f5bef9de29207e908afc7de8e386c235164a3c45dcc7903ca2fb111ad7a7407b6ee5fbcaccd8f22f3f1243bae776675ab6bb80a17844f42ec9b835ab2c064f437be4a7a733a4de7792a43f3ecf315d518a6ec45ff5801d6f7153ad698b2cebc9eb0726171ce1996e50721662b829027d5d37a854b7650bca5e43bd5cc0c7980e917a38d72101104822de3c10275000ac6f2369c009ecef3f4feb24badb01c7aff39e4c9583791f4232fb53b3a1f4b85f0ceb2857baf429ca95030eb12cfe0a52569882f9998d12b9c9d1dff532615fefd223488eb7da783ca0ee4ddc1e241fa8aac93d3bf6668bb4623178afea40e41bb481ea6d4f6be1a231cdc9bf97aede7bdf83f5de7bf59f97fb080c3a41db1de9d79b1e38d987371c37dfa2ee9d55c1c31f89f36430c8a4b28b8b679de3cd984389f41e0c33882e87cdf955e364b3872c063a26698acad92257c671ffa6be6a7c7b34644f41a26bb6628f6a77986cd9125ebf709c1f80f89e069f48c7d334a98a8b2e88ff556c1605c1f1f9dbf91220380ad9dce2a8ecbdac786f2449c6db114dd18e9e76d8fbb0b7d1f9b3f07b06f5ad6410ecc55ee4d16caec9b3ac14831848cf50b9957f81038acdc3731c8070ab78f4f5b90586d40d5dd5644610c1a2247808a622c84ad4b511138e720681d0904f6b6b1405d7030a77cbd225ccfff91f8a57c19111659e1f4962436aec51d3149bd490a3a22fc90582203027e1154790d8f94ac12072a2f3b6b9b0b1ab0f8ebe1761309b57793ef29d1b0aae80cef1afaf40ea20ca01a8ebe83a0a17f6e4b5b9f1b324d8ec265766c8dc21704b0393ae92d7d2f8f028739cd1557eafc361bcdb1863eb37a7ecd15c2e083c8b51e10111cba356a72a01302501b26d325b55f1db5fa444c9db71eeff0587cc1b82d742f3dbb54e5a7c3e30675d6ec175a8c5dce62984d0bab8fc5dad2056c0e37e80faf4b774cdff40520ef1a48479819d1d0e13beb746b86bdb4236bfc57d74d0d886447d90561a1d6cc5d4eb8e2603f8ae7bcf35d9490830924d295d6a65a75909ef871ee90f092fbf099e832e2da1f350ca184bf7aa453d19e1f15314d5ede162513cc6865b9bb090ca5830553d3e24380839dc5b472ec8862eefa2e0aeab67bbf01711e334c41eedc398543b14c1698c64d8888e5849f310d5e8df1b35cf04c7684968a42584069786df7447c4c630dded0be02af41fae89bd7ce25942e914d19aa414965009d8dafec4223db1682ef4bf523952ad0f659b92ac375d4f2d4f571e6349f76ade142c60fa43f518a077df6f13d85f1c17b475c966414fb695ded45cc36f06b80c8c4793e61bc828d696dcf93dd79b5c52607b6d6fc3677b77f9529159448f5c5ad22575e5e0009c1a4674ee055fe68e4e40271923f953d0c497f22e1aad4ad0dd4c06145a63657e74188bb9cc604f80ae9373fc114ed74582ef219586067dcc614d6096be8ceaeb415e14984035f90e227b6b8e57a7f32d67a681f179df6c38452ee7251b6fb23f9f9f6013751477a399e268a344a92467f79107b13501c844cc46a0a618133b256eb407c2b88d8807e4d40f302ebed18c0054d90dd0297898efbfb6d30f7b360f56aab6b2d2d93ea1008519516435f95f9a735906dbdc98ead582ba2725ff976e7bf19f832b6db0167ddbc91b0363828a4a212fce3d2382c357cd498050c48c12fb8dce89281792d4d3476f86d1bcdca255de5f7e7330ef92125a707dbc027e59bd5409fe5fc1999bf6788865764f71fad69de6c8d0e993bddd6a78eb536e2c5e466ffe01a18cb6d200991b4ba9f94a0a3fbe5fbecd6cc29ce93ab2ef48008f9c6e9cb728e68829accc04115a69805d8880415c0d74ebdb9a2f3df0fe62beb4a0537c782254f982c5124df03230fafb048553be150c62502b2de4398605e235387650ee3be0b4838c3bfc4a286037ad05e125bf6b699e32a1a422bd291260b1906062b1480e73351fcfdde297402550559812b38c7e579ed7b22bd22495f43c8f8549f1fc986dc92bd912e856a38b0c18ab69783e4848da5758d765030482c75b3445f42d9022c39fb7f4a43f75400a903f23b2c4cac6af13f0ca5d9ae006ff1e9cd53676ea2eec8d2f1dcd3e86e3e2c1b8bec9e22eb7ce20d64ef9a719276b008c9d871e9e754c8ed8221161a2c6836232230d481e0d8bd12a3c9c5d01df2bb15af3f58c132700753d76a37b168ffe81370c092f3b8b14c4fb301278e0753b80b054c0e4f61bc78e8e19ee1eb7a886842740d820167e4bc88ee36bda5bc53f9e0e0b73f3cb79399276bb7b9d2f90bb974f0b90cc5956d110b795b9f2abe6ca6acebafda1eccb56ac615402e6e9e97aae41b1913a187f022197b38336a2c5def9b80526a0b6dc7f85655de955670bcd50336ba6d8f6e31302cabe9b3cff5a950a90c3541282bd1741f89c49db9ef0fa8122ad93fac4e9cfe64fd5d08422317e8479fe2738bc8bedcacb33d082f58aa80dcc4e919e926be8ad0b6d8e9f57833d974b055a3edd3df33e21526bbf668a9dc2a1611ec11efc9486295715aeec7ccc1e07c7f97fb8a694b864a701e7a58ae93c177acc88df514f5c537956ba5d9743e23fdc4a9508af21a925da3ca2aba5d24f65bc776854a99f46a72825497d4037f2a697cff63e9f8a8c1c056871827e1103476a6d4593176456bc9cdd8a95514eb586d7594f21f5a8329edb899d86a654b00083f0a94046cff2fd9ddfea93f87d602b36f15b079ddc7d2f70a6398cf9cb24d1dbd8bb9936364f5116d165a6ffd453e229f8a48eca8bc9f5d234f75e53a9e344bfeebadc5e48090cc0e0fca175fc3364f2dd2fcdac8f8fad0eb1274ca797b5f14167f8c359d5c1869a21ef487584277d9b5ea63b2ad1c13e2e03ab1899579be6ecacc2393e1ba54dae2b7d77fd614dc1fca0d1b4eab1aa5f09409a5a15046540616d37ccb266b14bbdad08c088def1e906f9a6ec97a0f97f42ca694226fda2dc1a81818618529cdcc687909f874fe2e059ccf45b3b7aae550e39a8a1f3a56d7b8628fcae63d0f2789c0c193e64509c71bbf56db9c6127a61285a3705d00eedf55db4664432f935542eaf0196101a8f320389e0ca25cd41eb4f4cb244591e63e7adfee8a3f631a6028420beb906a877b42db034ad9f12c38baa7dea31ec2a1abafeb2972e28318bc6bf8a8896688bd5bf572cf71904c81c8482623a384edba3a1fb2af5b4d5bc0da9f8e1c9392252eca1a39fd1fdbfd2e7c188f6c33d16e33d2af9a3f09195f448c725de9f43c51ff6f4860d83c3e78695c0f147847fd27af460940638ab325a75ac7108aea77de1dcebc8d65d4339592361b7b9b370efdc03362f00010e0e61b3e4826877de1e4d1fdf4579d80d9102366d39cc39cb55847e1ee2dbeaf4502f74c8774dd81c33f633f8dcc76f05a0a23c3d5e7c21c39a7d8c77f2f3241ed792e49dfa1b448470cce0812ecc155918632b7c8dbef0111da3f865e60e8bea9726a2d5ba96583ff308786ab2bd2c3dfed21bb6a9013b8ede6085ac0de32d5a9b8a51b0f5bd11020d150c019f3f8c88b8a1abf1d2ea888fd451d6d35fdcc88dc375e4f77db06af38da1ed44b20d0ccb00f573feb7467305d73708a54c24d1f668455f5a3203acb2c7c0bf9f88254fd730f6c07143229289772bc0b83686ab31d53e10a33770aea6fa85b3c065ed0d44d8120e6dccf11bbf6474e1221df081feffecba65bfe18624395932a30ed95821543d6d36fc310443d7ae25c924822250805c54d982aef62cf409bd663dc89c0f995824d571eaf2cf99a914c947a7505eb886134d042358276e7f2f06ecb7ddfb99a36e64f002e8757b7ccea118109e4dbcfac9039e13849b08df7e032ce5a1441db3751ea1ff55dcae669022f1980aea1c3485d9178c37c0c7a371253ef1b503dc3a866be44511247c1c09d933738693e721e30afc94019beb8d6e76aa9982c6a23c1e4bdce826431e4d67b1981400e168e9e06ee6d353d32970308346f1fb80fb096ef8b2d1cff40719c4eddd01968f6ef91295d4f057cc4297bf1a923e029a48075919c68b09fd08d38d45db54992950d7a8a2e2f0a5397c71d0d249f26c99691c8bd4598d1360fe1651dc3f2bc096886813c6221fabaf48a93ad9330659109429298d96b5f997c19df92a0fdf976229efcea400b9e0f60d200af8f150f5da6d8740458a2259df468db8b8480239cd6ba796fd12ad8c7afc3caa89b0443a1cbfb4ab94392caba4c039b8770dbca105ee461e9178dfab71ac36be324a6450404365065ada70d8f31a1035ce5a192b5b04a29f996996dd821fe57840317cc581b7ad99a95dd55d582024deb8617a109d8bf0f013e83a6caa4e2f1a1ea6716c82a9b9d8c5c4590b5e565bd327bb8e2cb6b39718da9d96d963ca38e31161bda34a5d28dda14865e7fa61076c490b31c92e751a6465dfa75592db88a01b2acfc20c4393ef13459952c4ccb4ffee86bcf3fb4c6740e699941e3dc5c6e31e9061ea0b452debd500c0b457165c78f5af6e88673fa0f2bbd3e5a77c10e22da490bf3208b81c1b83b00b6fd8e2efa20019f47dcf673a9a14bc4d62f291133d82c0e7017548d7788312c1bad687bb22c77650c8a4e5c9122f7dc31ba0fed27ea1d58c3d18e2375bf69970cefae26845f0779bdc98801e7283a89706875ece494d4a71f02ff534c76c9e1b711430bf90dbbc438100c57d92f63a398d04f9e20802aaa56c7081175c43bbb04a63c8ccd938b5e76f5f271771f3d5477743955e83ca086433ebab5a559986a434d740e3dae24181b62730c1153fd9db72b7baa34a86d5405e63c7bbbb9e5482b1ee07a5e2396f3daec250427db5ad2484ae7f68d5bcfa00961a80433dd3243293b7fbd90480ba7ab91f5dcebdcc41a15bd43dac0dd3eece65c17d430383a5dfe73eb48f7391f1dc72c9b3b5431c8f00797adb8a285872b07ab6ed2196a7e2aae0ce99006d5acf57d63cb6ab7a5d6a564c87537e640364622d47dcabb179755bd03768f20c80901dae4a8d7ff7fccdb6cfa73c2ffb0b69b88b0ffee05b2f21bc071eb41414974c8102ca0946b28c30b57c9b10a1a508c783dcf8851512b68ce38dcbc29bb451b04c62e8dd8dc1afa0095d69d801a907aa4e1b5a06b39dd9153c69542c9031d91241ea1ee7dba81e15a6a6dabdcb5251bd76d431a98042111a4a285c52d9038a9cba0b9f580601c9c0dd3b3609994f1553ebdbf3e999c5c885071f0b361c112b94feb9e74852053a0dfb9a15a7687396af8e761861117864ff65d1c80f6e07ef53b33e90851d29a7aed7e38bbf6cb23bd9b6d576808ce5fa5cd8aea2a822d442dcd98e1624ef4891526ceb4cbe160a66daf2f96436c08ef651fcfbfe51cf75d72794969350a5c4156cec5b459c16a5cc2313c03818c32ef1ccac55688e4cb725b6472b22db8760a4efd6c8c7b66a8f3e11268b8d69ba643a1be2b55d079b45467e902354dad194dbc1e7a42f562f723ebb6b972033305aa44818ebe8181809cb4183f8923e4e23e1e7069ef6c8ee8626d76a37370cf1d2f09ae4a9e882523b2af322212b17b29ee1388e378fa8364c5771e0e5fe74f67283c71da822d911fd4912e91a12e347e8a74cd73e3632260c1ef6f33e0f07808b44c0d74a4477905f08b385d8091f5bb0c06fb8eb4840da1c1a59e481f80727001b256f8d0188ffd5d402c16846648a8a06ea1e91ef42b92bda9d3f85146487fe43b373177280e66d1be1fad1c8adc2372a0a31ef3fa282847b6acaff0686b3e75362e606b04327f108ed7e6835602ebbfb2b8a58e4ff2d5c024b7b35a5c3029be5fcb1c3f47bd27456f4e9e781c30e655d5ed1943db3d91adc1fb10f3534d05bbcc358346a574a9f86e33d72f1e820ad1cd20d0ef0100e74c0470530010604b2a81a4b2a40aa0950c8868a065cf34ca4e3885bdc781f61ff5a08211d9d0681ff3abe89bf9058eb1429585c6b7d029156a9725ae7d061f75dd29924627de4ad92130e11f8bd40ff3258e5456b4f767e9a7195acb50f83c544a76757d4c604d1dbd60047e0366f98c661453ef45b89973b5dc5572b3e456b44dd4f3ca30419e84f59bdd121f97a40bfb2635e6676f8bbf1961985a861b377a8d9d49980669cdd571c08766e3b36d81986861374c62b2f83cd37c0c22c1efecc1a3a83dcdf24ecdb94d368b390b36c353c771495dc0a23ae7c8ada7a8a2513ade0db36c9ce3f975015fadcb05ffe4b47d7bb57fc59995f19814a9f9598f730b15ab056b02878b11d795c8a91685e0a50c44ae9c6687ebca5e5a44e4e3d632292b75a91cffd123917578f42c857e97bd247f93f46ab4a43503242614e9d1ab30caf7a0de6515c59dbdbdb28060a4fa77913dcf6fda14e872bf4c4b073807c357c5965f31b0d7db30177f18e3be09ff3142b8805dddd77f36cebe82636c95a14182394e338be5aebcbd4e4fe38d5c1ec61b9ffa15978f5ad781a7ef9cf4052ee3f7b54aeba987f1e438bf16f0bb1fd438b190436dc21b0810c0788aecb5939c77f5712363a65337c703ff3d3695122375b5aa94f5791f414f05499e96c83cdc84a3151f92fb3c78d3a4c92bcf6dda1019388bde11d6ad5f9851654a8106ac26f070d6751762629034b815593ff3cc2452ff4a42d84ae4e0f3a032031b66247522ded5d3c41993c0c8ae95d544bf6aecc990f198c4ef5ce66fd1ce10915b1d083dd84bd9f8e9ae2baa4357c0f505b379a2bba3e93a1bbeb7b0183b0d56ba2ce35d96b89cc9e2d25a47ea8bd02e79fae182b555f5d9fb2f3d116b3c69f8d02f4cf42a2624ff28bcb90bb7cacf51bb58bcb31c1aae9d192c86537688e848b9624e253b96eddd56e9189884ea1a54fb10a74b713fbbd1e8ed45e1114821d1163a39408e146ac13bca2a8b57e9221d9493c46bd74df6d3d8c64f9c4672009abd602043678b7d8604bd09da4234ee34c9d7398c349fefa688bb1f3f50054642fb2f596fda6201c616afb0b84e0998c2fad5acd8f9bb66540b1b544d3aad04657c5601ee902841df28f78012249bccdaeadbce9c2ddfd41f66342e94faf9245008277684acf97dd26065bc927e144c1eee4dcdc08504e388b2e9143b2be1e00a8d35db58bd2c6ceb83950c3da7976ea82129df55a5abf21d8ea31064c6e949ac357e97c6fbc5b53b8146fe9579dc9c4d0044be32cf0b921ec212515c850ac101854fd642389475e5e0d9805bb51dd329f1db27a09fcb0bee4c41a85cc5f58185ae9506513371bc35e22468cd9e9c257fa9775a159f70d85537af0cda134814a5a7f25c874f040f8f526cec852f2037e47b879d04c0a22698df9a1666c4d0da57ab434da3cf92e82367bb2ae2597bc3c2ee75b9b719105952a41f851f32f686052ad215ae12dd318123c5a2fa20541726340c7b3c7235882f1989bcb28e09a1bc5f73333180c4cde81627b62b871b95d95c2734616990fc6a2f143fea603804b90a47eb7a167a107c7a33312e956431d760bc3ac156c8b522fc5a3acf14ac623afc9ac3f2cc414136fa5fbdbffb8ef605571265e12c2be57906d3fa593f52bcaa7db6067e3c6b1fb7b2156bdb1108814876eb935cf373728b471971b277baea14c4f544f43ffc59dd2de62f82313b84dbb90e2420aa30782c4642b600e87019ebebaad0a37eae153168186213b5a8450443457eb8a745c57ef80783cdf73e481d37af40e6124d6a1e29183e3517811c0fd2678aadc4fc5c53557ab5f2b1c5ca7f876cf1c4be33e5ff3791664df78ff89df08935efe5c6f35cbfcad01bc8f7c6814f6c81ad60ad08f937e75b890439db46a7a9f051b8567432b4e579d65513ba33732653369a33c6a0344a077711c75982d88b311baf03802169d1f932c5ddf49dd3df0ef3da1d097c29df362dd2531eea9a96f09d9774e7d03f33c1f4760e18677ee51e5941222d480e531804071d65c72c8c2be7536931b33cf1e05210079dcabb5632b40327821532b6c1dd153281f15a02627a8e1b1849e99f8f4890324fdf74fdbc2a5347cd31efacaafe530358fc74531b1e79160c344c50a6758ea6cf2dac6974d2ea9ac7e201da2d768282e2b6288f5fb8e895ae18e15c248f45ec0e9702a2d6d4bc439df00be60c173f32aff9dea23b3b60755551ba07aa5f4b29d68a82409fa36f816e000fafeaff6bb85ec5738a40a1dc778c7036170058183a418e2bc0543d9d0ed0bee7f9d0b3cf4527b163db04fa73399193f32190afc0b23f12f814ba8106d84cda1377aac26f6b52a9c8659f86196cd884eae5e6148124159a57655f962c32ddcd4c0bc80168c4befdbff72fe6181987aedbd936ee0079d93157e1105b020e757bc1135e5440315bc0138954521a81f7dc7723d6296caef734f24061eea7517996f8cc04040340b0734136b4ebc1dc39d1ee3fbf9ec6c1af6445682942626640dea51a36a995c25609387b78163cb08fa3cdf710fd1a1f944e9e0d02c040419728fcadd4a316837a30670fcee6489ceef556aa8b4e67810e03a102cdfd22a8403c46efa423417c5ff4f99d659d989783f6be97160769c6d91bfeee2c8210396e7bd01ecbc019fadaaa5656f4338b432b32f5943ca5aadc841273e0079914c64a5e6dd858a4658dd4323efab3f9a49ff936e67eaae2749cf3e60e11083810ec72bd1e84b940aecacc8224a0df3f4ab7b4065fd6b274850ede15f5a91ef3336775ecad45449ad36352879cd93b1694055659fc28cb5cad5d50df1816fe00148c58a43cacb01f6f498d51f14e8a1750338eafcf4e0ec9b87228ddaaad9d4f887814be18ba99128927b695462a16467d833f35a40fbb8442049be93220b7a8ca0315bd5cdcff7f62bf9b79dadd2cf8d7baff730d76b2f854b6b05590084ce68431bc292711c7c855561db342ea9ed4468f99d5a9f1fbbbfabfc26f5a831d37c1efdebb72ca39ba0fb0b2f6be4a3fdf3ab48bf6426d3eb4206f025a5b753373ee334455d9128036a3d0e3b5fa166a95546988c8b5a84cc66bcdf3301f6d59806a1f29cccb182d6d3911cf2dd8ba7c1ae008f884cc799416e49aec81d1af9dc644b0bf85088cb5a360e8a7c51ede5574fa73736f7412aed997cd9a11e30ed3b42aa7aae05a28ee8d3b2530bd26b7dcd771624a68f90dd4b497c77bf231991255b0b7836fed5f96361343442bdc0c7805b38cfe4e31d264aeee7e63ebad1735f166cc5603b956cc770de9514cb39d97b5555ec734c1c460ae77e5fb2db38a5bc773242486da4795030aa0d82068fa2a151a600e5fe6efed8eb2f83d5d958a67ce985462a5d9fc58fce746ef5ba324275269d0f3196df5d7bcfa03fae31483808ae1c1784c2a36621db6d3c0a1de6a0638abf1c85abf990c68c1c9549bb83e92f1650044ef72c364738f7e0816220c45dc026e933235c41d44ad7a44c1451ccc5fd59c94a46191f0a42689993a7527e55a44d09010118dc0d8c19b153fd095209cbb3baf101a22ffca4174d81d1d5ceaa2357aadd4d1d45062f03ee73f1d76c7ecb1a5cd1f86bc6dd9a89a3fd90149de526cb00db2c4eb4b42b43b2d175236ba3bee4b9a90131e7b9748d7dc5fd5ca4ea55a4c86e10004d3ff9c672f7729833a4be20cb74ea8a14d288c12d19cd5714c6d5d65222437832ed8e72889f728d648fadc84399dd79d6a232f51d2e14329eb22ddc9a215ffcc46df8a1faaeb90642d99df022811a2333f3d0a25aaa5eb73c7ffd371f64e8cc92ab0530b56890063f44d194e015c4ae69c7f9c2eb69252f27a2b4b2cc658f53f8badfb87255f08c2eb88bac435e6081c351253b468e56b2028f8a0a9ec6d761640d253b2011b251526891201a839a8162293d132c51ae959f42eaaacf80d5aaec211ea4baca0dc4afcf0281e333c540a5fffbc2fe8ee813d886c009dab5f71dcb148ca7c3870f739886a45e9223a26b84d2bcb867dabcd78928d0fed7c6346724dbd3ce58d5c10cd295c17cab6c037592fcb18df46c687df412bb4c616f671e7fd2fa44be691f4c202ad6fefa44846b6ae0b08f59acf5972cc277d39d8a2bf75cc7bddd454ec8d8f7b99be5a94b031ff56ba29ebe1b084a2eb4ae2b5534609e6e7c6c25f3a9e51e6be97c7b8a387df5417fef2e2193b03b15cee01f9d080f45e2043b44ecf266ddc3b4c3d92e1274dffc49f41b4540500815fbab7acc8f8fbc16e7e48c49f982b5e248e3743d4a0daf897e2f0b8389bb8963b721ee8696d6e866b43861a0a304de8f17bb554f37118cfabec00487dfb2745b7d0ce6c18994d8dd4094a26c4394b13de9f9d472c15a2d881bf12aa7266123ea1746df5eae3361c0df7b8aa5349c2836824ee9c5f59cf667cc03a07797c4cd14bdd592a29e6bf089b6ee33a94bf7c40d4180febe18c46e965d16b0c87ac5729097790d9d5baf020a732f9a937a1d743a8c5781cfa77b9f0e7f8fccca5f2adbcb4b711df2022c6088214b1143ebd7b5b301120886727579d149b0bb371e656fc2a4b60c3f173e5171b35c6808223a50efaf35a70d886bc4cde41bc279e19a001cb4fe8756262ec3d8bd5ac092eeb72505afd2e9973cb6d4a9ff59bfa6fc6129efda261b1428c06978ab7e0934249f938e7e73b1350ae22dd9125a47540ce00baaa3d7f8894dfb225f60d6f0a11f70fddfc3db40cfa766f4a5720a379fd07435fbda07d510ecce21953fd9d3cc3e816a2380e1676f4d59451731c0bf5a9de0227a95162a79b45dd2846acd38bd4532b18feaf958c328f802dcdd06985d93fa902e166fe7fda968fbc19e41ebc9305877af6976ce89cf44865329d0a1a36da4c81612406669c03362c3b410364a40904738a3c7e818f30ad91d34285fcffab39c424a8cfbe6a3b86c3bdf36aaa7fa0fea26a0a05395b6064c5c22c3bba84e16b4eaba68aa3fc9bc518d50fe03bee850fc1096939dbc67e457578480508ac0318bc7d37033ec34375155f6e6fa2938758d01dcf2438871e9294526e94df70769a38a1b141c960f47d20571dd775606b5d1323e712e7ccf4ed180f5a46c45e47683a2598994e2ac5050c6060e22b1c26a3e1d8c35284b433cd4054337153174cdba59b96f9f7ada559c4404115abe5618f74c1243abdd6b463c628a66702d190f3f8978d8e5826b0944061b00924a9544215a4ca9c4ab9f35ea0788bb732d516688b32af0b5d084cefe052352020abe664d20ddc290e59d8f4109421659302e3a03f8aab29ad7920e039442f66260529250aca5961e3a951118bb0d4241c485c743a3fed2e28d5d678468ea5d3d1201cdba16fa313590bc0ac646497d5cd2efac158f8e592ce2aada81f2aa842b63dc60fbad30b9d74d92f95642dcbbdc94d434423dc6a0edbbbd84ea13540c2fbef99e00a917d4fd4e06334f9eab84c3fd31b34f21a21ab057eb846d973f0262a9f2cf9d9882fbc02e0af1c4d5f996226016497cb61faa3eb9ed7d7b7c8c5fa38073d9da85c69cf900da3667db52d61baade6544868c1285ff9bf333cc0f72e9ab7097d4df357f098918229edf8e78630c197677567b656f2a29ceb42081931a094f74d2bf8f196a10894981098a35632ba22cb379c3bf86860ac872ff2d745525488619a5bec097202388f11e9ed0d3b2ac9fb32c891dddc2e84aae5f54e4b7c03a1b468cebe365084d4955ea2de6b1536912393afa4e048b9216ae92be54489802031894ab8d54a878fa98c62804a5d18c44e659ce7e5dee5cdc809d2be528200c61ba888234ca778d950f326c9cc169ebc4159da416c0548cf77abccbdf65d8b67e85f897bfe46b7c7c611d5222323a905cae13c0b7e19aeec4da51e12c9a57a78ee360fb004dc183f471bb4832899b0c8a4a99618151a93bf1ba3745afe5affdfb763217a721164eec5fff2165ace3a8c543c41d84332acd6c72e9c5461ec9d1fe4928bc0a55fd9189ae51e75eb2a674280939b7eb5af5ea8dcd2071ea202acc9d98e5b0c4d21a630e94fab6cf9b968a7b5f2854257534555f2444b041de2d747c0b6650d18a27041da1c735a1dc503f0a81ce3a93c12af3a9e29a3e57a239df17ba7c02e444cd02adc1d3112e3b010c84b7620e6104d1f55d2ce6d21cd8ed372a656483b77ced3aa884b0557e3bdfea0551da740a73cca72d62cab1807f72082bd241a129a0f7838ee7df4e384484e5017516b977cd21d364599833ef70d7fe701191a6ba50a36ae4a216604a69f17feb3cd60e93b9435e8b6dabfb8214bc1d2c08e70ab923873c48096a6bcb090816319e3fff29709651b04b74e901e2a0882011906cae2020e5cd2cd6682db554a595122c6da0b2cb41d4aa9c1715d374e38d1460c446dd5d698a931388598a944b60675b6ed54e85c3b1b28cffd709cdc83a73f752169ca10cc7a2616877560d47d5754d36bb7294cd184c7d1a9431fd3d49ce47709e297f52e093cda44ee10755e4e9da8646017a72fd58d4630d8d1a6636d400f670b5a316d98abc76ef3fe33809d32c0a37624434c4b05509177029e6782957b9d231266ffd4e5fe3028b731a374342eadac532b451af036a36e56559d7b46be4cd935a7557dc20a4c1884238e8c1806ca65971eb36a07e032bd5b3b1df32a1fa66477fdd1155b55bde82dd5ccc155e124c0870dcc43d95eb458481582759faad0c602e59231b9b0f74443a2bed8a75df615c0a15586ac6283e40f785fe8c4ad5de1c8d00d1a48cfab8a80fdf444299bc1c715b267634dc1b301735208d9f03dcd5715a279df68cb2076c8ece10da2c0a06182d1fef8c7f571982d62a56d45af226d9834091c9f9e1cd18787d62a7474a16d0bbf5efe619ef3bcf3bb9bf2c41f894f42d3f5f38baa5ce64b7e51f07e6631852af444aa97fcf7117f45433efaec0784c9be591c54339ebbc9919d682cc59a733819eb3c7b77d8ca883ced647c3947647aabdaf21ce036549215c0b19cc8907b268ed9d7991829af2eaf3a77296e64e0f94224f0033e3d7e3676b7ba8c28cc1161e5898d730de9c1eb02c344f1b6d6f6f9a132ff523d41ecaaaf09fa26a1b79e0f65d9d2a729436eff6c0a5d6e7f63947ad66c83bbb1949d53d3a2f765752c1905884bbc3261de5bd87ac8c858fc22ce15688f1711d223d73b8803c411e83e8c9d7d1cb17a50be4cda8a7e3513a694a702cf664f54bcdd2ea687bfb6aac51ada74a6237e79b4b3a6a0515e8d30b7c3d6edf75906ddf0ac6b4e1e4c0ec5d7ef4d5b1b86f2feee5c8ab1568035d5ae7b3884c2c4041bd1ff3b6dad1e4b7271eece2c263970e686b6996f746a6c44ce8ce68e832206b328e104cc2c1b6056e753c637c5541a1ca53bd0fa5ce682bf9e2022cd83086ab5a1a04bfda45212f013870ab12c368b799a960e9b1128e9196a1e844c7ff0194b4c0b7c1cb111226dd144614a40723cd556e13b416a444a0ac09f25dc28d36d7c1c340d4e073f171c82dc6a611c980a1bef751ea693f72f4ef574b25ba29219a56bcc4697ea09cb2e8d7c086590c37ee7204f4e908cbbe82a9eb9971305356dbf740c298bb4e8080ada8e8fff9dffc7eac8f8e2d4a92eaab31779c0f7dfee71f0d82b39b853e7e0cf55255c4cfa788e4b6710bfb810ca2982ff6292b2b1fdada51a6a34b9c845852b717694df92800a5da4559b723ee8253cba8f1c9a6d52992423a7eb48a966cda6a2692faf045e093fc94a33b0821b9955ee54aa3dff0b0da3be8bc9bf9f0db8fae23390fc22f2c9694565352b81d491fc062a2c0ec1c137df1d42c5efe9ed86dd2d0449367229dbba29ced88cb058e800b29c28c0049ee0b452bec369d8884dca04c0d669b03e6653acb23a19dd084dd76555276a8e48035dd796a9d5515c0d1feecf67454acd8e7ba724e5dda7f7688cd62bc80e17a10edc076d9f2c4e61b9b7f3fbffd9e2b3d2c91a8b216901d00a9a7f4bf835cb4950a2a2e54a535ddabadd1f588b46d0c69300a5a2f861b30b9a152168f774cb0157894d31fec71f72d1fc0541b2349e52356f100e02b3d9794a9c3e021f49abcf5528102520d7caa9680f396880988a6e7727c376655c6215cab69ebb9d75f6fbd1f0d6e24e0ea897bc1dd5f03074071ffa024e3daf6b922b632bcbbb9828a6db25a4f011ff7496f5677cf59bb1793c481248e3b95a0a80d2ccda94246588ac6aa27993a79967867f35b03b05af4383705ab8d70c340e99af23518e96cbed6eb659bc553f5ad0fda14efe4bef3b88eb52a9f6257ff3f81b0ec5298ec587fc4318dcbeb40370df957821b950a06517b741587dea72b4de9b4506c2301d76fff93f72c28f2623527c1c984b764e47b0dd5803d1eae3293d8070027c5475216a500e9ed6abe900cff4427bdd6e9c6eb788802d370a78b2678572f8ff9bd6a2257d3fecc42f3750dbd12b1a2ded25a3a1973f72fbd41faece3b4ff37fee4e055ba8e560d428ca5074fedf91e32c1c63761c5e2f39f646b71284d0b6fef8d59fc16eb3088f06e70665f8bf4d3a69f2a625dd57d032c394a186197d2a00a74117145f1679bb1da4950751629b41651abe8cd69e257bb03c607d06dfbcd6af4afa328121496b25c2693f2ec26b79e5d056eeb4ad7198d8de3583291a79f606a129a8cb47cd56bb14b71fcabd9bb632fa02525cea155479f8cf6bb6d2c85369107eb2abe69fbdde7a0ae0f1e45d80980eccb76258099d75e42ff1b5631cd9d6b45ebd81a0c0aa7267f27686979f2aea16a84c921b83bed26b83798265f36b103f392c218754cac0f9ff70fd7383f3fcb8e1d46bca82af3ae64e7c4d84ffce1f490eae551651f6f4a5a260e1154b532854c5519f90206b7cea8ae998a65beccdba83e159fe9b3e9e6da0914f244a7fca2d25809521cf94098f97e7bc6311b8293e2fee5dbe697832a82c817ab0bcd9c4ad862de77af926783a273764ca66e808c40adc070fe54f885bdff925e49aa9fbaa0a8ae476a68d0204838e0f77ae367f1845deee1c696e5c240f992c00c4fed7c7628d0f2f0c5a06a4ca4792fa93b86a87e07a2093d886cfae4ff1fbaa1a18c7de653d9e2e3daf86f411d094901e27e990d1749d75db00e4be1674158f6cfabb7e1525fc7459a3a9017e5f1126e495dead8fa2d9cb0d8b04c9c9ca8e493f28a87726934748ed1337aac3a4d8af263270244a673e1b69137a1ab64d92a8dc9308775e47d2d767d720d0a9380dd1d51e8aec3259a8b17284f891b5d5dc3938f657b4580ea5aed3c8f51871e0a7d1ae675ca491bbe7bff82c11e8813b3f2988ae97ad836bf8f53ae66d3e43e0f3e4f452d99490d7404468e7bc87f875216fab2fcdf369d9bc87619de2ee0be10fc07b0e38c6f5eaedc405edd7f6d06efb4eb7c98207985812d1be6dd13d5d377080fed174243a5898da92c0a2ce8753da25464f4245b1fdd184e1395ea441ab5de2fc15ccb3b0ffe48a2ac34044805ee18861af20e285ef041ea7fdcd911d3b71c7986b43d5af2de4725ed53a419ed2c5b3211e31f83bce6a32f1210a8c02b61d0d2ed7219bee55a2c1deddfb0bdb294f475ccf0ca3ddccf594c25122e0157423b39e4c702d88e89a02372e54809645de57fc97502cdede4b48ee87c8e2ece51c528d11803e57e93cb86985fad7a6c5e2cbdd031e48683b4841c207d1c0002ef3e1ff56638f9b966dc674df03036989620a468f9b6187207af95716b8df9b7968d0245171841b5806ad08586d9053c477f953bc70f77d30a4d174951bcee2588f673471c6c933645492fc259826cefdcf4c01ae4a08dbfb3b4424143cc4dae74e84a82abf078704961d491cc68b4fca2b248fcb5a8f204bece7758481b48f34e29c44da81a73f288321942ca23e040ae1f977b0d5100d8314420989f4ebbbf05a17a8fa72a715fec116971eb69e7fff5ae140567536da0e46695138c34293271af064cfbe7f8aa46f66ea0ef3a4399f9515c4f6f67b0214c977ba46c1dc93625ab0d414d3160d9b9c84ff4e2d2cdb0ea3d7ce9e9aeb5fd317ce1ac4e3797e62a5b42510e5c5f782cdda53ef9dc99a69299d2ccaa6eab50360251afcc556d8535bc35a906b6d9aeb7b8226945d352c85e18e79abe315f82105727894239d98302ff3360ea099c25892cf3a34ef4204a1195756f31d2ee02b1d965eb76064e3d2a9e14f1e03b7736ff4aa7108b769f39f3240d703a714a579f3e322f30242f416a439c0d5d756c138f4bc43427cdd58aa22a3487ed6d7e47385702b7c336a9a4cd1893497a483fdb6dc676616eb3670ddf3a5a20281cf13b30736d8a84260e822336b4cfbb425ad9d6792254814ac7bfa424a46c988c902ae5e069fd22037f92aa2f7892c9777f4d847423ca9ebd8ccdec0cbdd784a464e7da64dc342e461ed084890491c9f8a6db5a00636f1c817eeebb44e7a3b2dc5c861ada453744714816c26f47b6b65db9ae58b32a3e6e8696e6d78de489f192132ac753357c02933def490a61cbf42f6675694e7a913e9ef1178f8bb7840fdfccd5cb6e3547c0ad58b35ada59e7dd62b6ac03df0bd2652f268b436fc2c934940ab5159639eae91529d2cf870c99f8555d327796a89af097a0f05c876936573a3ae22fef608bf09e7829cc25fc054f5a948093142501fda7817ff58047bdb724cb2da771cfef5dfe01de6ad472eb692a10fc6c37b58d3f7815fb9230d03b6467b4c954bfd0d2f2662fa313273cfae0aeb42fe7e4e21777312d88d7b673eb36e460fa934b16ddf13b1d0f11ce8d382d26f01ec270f733bc669f9054586e3b27067536ea1500b748018b0050bfed31e9e68c97e76ea91364cf2eb517cf763165417e0e235d721166d58751af344516fec8171ea9a6f1dc1c6392558ac32058429fb016346d676187ba66e299abbfd877b107299b1ea66cad7797ba177b7d4cd7f20e3705ff7abaa6f3e4f5b1d56434fcc5570f6518f48ee88b0f123147c913eec09360bbe4e4ef3b582d4f26bd4c5b7a8d43d4d0273c78dc448be34cbabe4f788cb8564d67d8d5cdaacbe4dc8e8d84e99b5bd17c2570a4bdd524eb87ab5835e7037bde4cfa5c4b2110eff7c4cae240c6f3b62677f466f10054d47fd13aa15ca461ab73e012a3fafb0df3d6f626ff2dbbc4734c0a0f9c939d67bc98d1cebf5cfaf87e90b7d42e3acb0a3192b49bcdb5259ef96a67d17158ecbd274a82d292e89d4367ed0845eac8f2f15c22096d1d556df1e3955e23c2077c46cf20075b24125e2ee69820d571f5bf1a8d02cb04ed34e2f4fe78c90d7044c869404de3611a4f48a0355ae4371228fdb9d8080533c7697eb492f34bcd06b92395d5fa945faf4d681e1661d0531e325789da8450e638c90fafd07898f07eed1e8cacb8b8b8b5ba201ab466f65fbb3f874ec177fc5f14f940864effaa49b19f4048b57be86da9aaa47e4e2732a890b65232b39582f74a68e037330608c07e632e23c93cfc8d2b9071330d2304d291046fba51cd15919d8b79f24431d4d0ba146384a213a7764589d2b1c5f667fd358ba15364c76214a792bd3897801df669edba44f1750cc020c2dd7fd9018a20aceb8b0b10a9ebb8f80b15aef6410ae6434572515f4ac94725def66dec3184c8fd42aaeece07630cac2143312ba2b1b34cf9aa0162c16b2e84148a977a1cc47e22b1d16499a0ddab64fcf22648395fb1325c35c9c8ef09b78292d73408d7713972a9c90d71253eac668aa2c60f68e164dd5d886630537d8d2fcbb1f89d51b637642fbec077914e2450c2d1fef48eca9fcfb06aed6702d8853a45309a83ba19c70f69a9be9e4ca1bd04e5908dc3f52e5ae843348d6a2e0db60f2371336a54e5960acbb34fc66214119fd45ba5867f66dc945c42c11bae298190b6c225b08cde99c048ff18ff012d10240974e922727dcc52ef317ed5f999853a3f79f2ae5d9cf5ca1842fb6b78ba2023db69d5527953d3c135328ffaae148eab03cf70fde8742e887c2f2c1f88b59d9ececc8c3ae5391bddc0d6314a8c32b5d665c1b4b416cab9b85d45e5837e4f398a238b116fcc94d7e2df432cacb6d56be93eb017d956029ba42e13f1161c53ffbfcba7f75bc5bd9d0bdaddeb6ceb6f3f0c65f21447b8f1010ed1e82a7738961083c2e1ed91a631270fe381a22b6f2be37c5aff8e8755c6565a4d4bab9884b510d35a7bd001733c899c96f794d0bfe8b13389b881a6d5664c012f19c1a69205ae25e3c4e76163d41f92c76f34c8300be71a7eed6baf9ccfb77da2183b109039b81b0de09a3e120b46196cf656f998ed12a1be26bbbcfd04c16c462edea93d289ed4bcee9f37e62cf58ed550d37de7fd1d0fd61d409d75f2f0bd62efbb8db116b672f9a2d0e9ebd3271637511e2fc05e2cd1aab238cc53dad2ec0d8f5236572ddf56687d9138592f27405dff982b94eb7d2d1236b2d4c8286134513c46a5b974e3b789132f8b1b41760575b31a969411a95d9c547fa2836ac298b5d77b31be7829c02f346e4a1f71e2b85858999a9b66ade2bbd544db070c6b07fdabe4b35b410b7cd4a62ab70327765f2feb41650df18eaf419b20b9f47ae7ab51572790181e427c0fe994f421708a0321accb9e26d2914a09487f1478bf37d695b0bdb34a3bea178734496a827a8a7b413ccda0c7cb7d75b6c7cee6db95838979428580c17b253830c7dac7643a58faaad1509db13701daf593e925dc953e1460b0ba2f7e3a79f65aea2dbb4cb3f8cf86bea13bdba15daf967fe8817748f6c7f161a44e30ed820faa8d84da6172a9d34bcf3a2905afcfcfa49f2279e636a5c86705f4484b85602d78586e212061008010dbe5e366b8faeb566d209b844786457e5095447b083a5b833d61247c90da34b3739a9734dcbde4f6d5bbbb90efedb7d1ae98fc57698982a6d37e67ba831ef3ba33ae6225ec223c4b7cf7728f57700ba6cf6d0e06420dde805ddf698550103da41f753f46619e8802573f5475f13081c43c98ce96e7b7eb3ff408682a2f744b8cb8e7341b88be94e601042e5f133047fc2224670c55c788ee499a165d5fdf529b47f01b565640719af73aff02fef938d7f618da4674beda7e96856b497f68bd0e72c7ec9d506616f93eecfb8769066baa80d91639524ad5ecbf0f6c37f36dc89bc6046601268c4df6fd482d822168ed624513e58f1970b2328b96e3f8104160970c53bf30e916c7d5e00112a7bb2a12f4e7af1ce0da6062c5d0ea7df241f8da4316cfd2267221032304f5951974db05f457ab61e1129bd3a8d7dfb1b44365422fb49b0a3eeca3fb246210dafd7000339526819ca184d35e6865abec4296fa78d6bb557cac9cf142f9cdcfcceac9aaf776cfe86b904117329b53bcdb964e1265f6eebbd3cac8c2f1fd56974a35c1efb22d11a3d315ec7de2d227d352f4e19e181b88bec8549ed05b9a9b5a71f2c418cc87c3dcb642099fb8bd9bee83141992dff0b193591f9f481f84d322f03d4f06dfb7d0f23ca42026e7ca461815ec555575bc27ec94d1138f049c05394e86fc8e1c056d9388e075152b32f0d17fc7a3417ed5486e4fc75613e341013eee8269c02d50e0934cd3a2ae3df272e23ed6a95deb9796182ec7fad899cbf6f8d66a5f436f12bb22f70c104700abf73752879c7f1a0f223a9a0576efd7c5ae7b9d01f88737e80098bd210aba34a5a4e38ac1c8f52df5b4541ad968a012942017e72fec84d5da4e9c9906abf1a90dc77051d2ca67a361e217ec21bfab87872c6839e8257deadf650052302344a7720690a838239e63f2879d6adaf4bd075b84301caad8b73c13ae0eb2484d1b564b8e43cd77b676eb739f08c514f209c636b0ab56873f013a03d5f526dd1b17660f9699f52cdc773c65a8fc8d4acad873c3aaef29bc6c2d0cb7437545722c4116caac195b109dfd89990423d8ec03ed3fe084abf066576e82b32f703df304f9e4c6f7749dd35aeccccff59646b10aea2622afbfd585831b949dcd0ab737a683c032b591ead2e236572740845d6aaf05bd37b61ac63084f834995189ea1247bdb6d23fb36b244a309c8b6e7cc5bb08a55c60a232fc85fdefb48deca95f591c850caa433093f5f87adda2a72b894ad15d5c8f368ae94f520af0d1005a7bb3ee2bd15419e021d2c9bdaa8f8890b13f5bf5ddf1c5e825f660d332df589bf7b0f3147828c1a3da25da18b8b61f219569fc84e1046b6afb307ce29196d3db755d5711a7d654a4319bdccd6eff6d21f07d508d233ac2674e0e84314b9c2abf09e6e31c5fe6b16e5ace34568ab1d386a008e681a6323e6e27da47ef47b4c8289639455db1f49281c4ac0aacc75a8920fe1fd64f2a01f349138de46c00bff131bad1795ed2bcd6f002aad8a8b505b36382f7d909a959bd052b66895a30cd7d50ab10bfccfacb7a0ccf5bbea11e8d8dbf64adc10f8772e8006a6f71b139261e26a481c69302832b0f2b60bc36c37d21db1b3b31e137eeb8d724cf2b8ae3336776a531a117d89a35b40057081d3f84ffc17627387e56ed64431207305f4ebe87856ea99fb1a7287a113256d8502ad945db038a92e792fd277ad46c1ccc02ad5e9297e5882ece961439f0791a465436588ebcc34885665effa2e04998ca5c52676ae4a03d7272abd4a3f5f7da712ad7da8cf0ae51f4388ea26f77068f607b0b0ec2cbce07d7d7c5c81dd398bc993e4954e30754a1050fd79586d053e7215a574beadaad1cb8e6874f665d3cc3c8234a3ef76045f8c3815c6735bcf869b852d3a81c98c196db4a9c57d4b9256a4f0c6f061fbe5025a1008065a3a62e2bf2cab367009045fe414a7ed2d1c60249aa5c74162ec9d33534248c6778ed442605e5493e8d76460010b681ce025d0a42a26a36e11c84d51e5dec6cd37545c47b51f4991ed001cea6edc3ea5b72ac6ef55902cd6736421bc923a03f18c7c5c402a2a2c27a4c213b725c0a38c94258ff29045b48aef8724926edcff626979f593dbbde936d76d7a05f634fa4a9f1e9e674465595ad211035ca3bc763d4ada6a4a1d4496e574968cd406a83a79c20f5f444c1720b1cdb27505f0d2e60aa9f8ef61f6c18e320ed444f24b6bba012dd9d16379a696da72355d9426f554168ab4ad29a01a45a65b12133a11fc8bbcd245df98116b1358ba56ceafaa05da25f040134c0a2262d4b471fda778993114ea1f9aff4c85d5d7822e902ef771580e6500c460567f277898b7cc2df32a9c6c6e55de58d66792d80828cf921901f33f7671b4d65c5f3b25294f268aca76b08b9e2c007850323a2c738a068f32f21e04352b48c726f747e2add9b5bb99a8cc2f7e887d4ecfdbfc5b4991626ef86a6ba7b6e982cb72d618860e4fc80ccf270856543de3ed5c2dda66f7141d813536583292aa9e3c340a205b5baefa1d30be276f2c7558ec728c46734dc3967b46d2d5a567d99861110f8d60453edec8540e80e7542482f48295aed3ffe72e0d9dcf48e9558c88ebe4935f7ba25db42d255a40f3e08db0ed7286e32c25c51bd23f7f2ab982d0cfca3c0c200deee3a3c16599df8527d888151a79baa4bb7bc52947f1a0ee98067ad7dc1228b1c5110abd26e0a5b844b19c98c66d68be228465696143a869424f59ff3b9ca4546a11c9db4f158ca99603a2b3b72565f19db6ec58503fa7c0b207b5ac02f9bb784407b6fb1ef9eb0840ba3c2ba2cdde16d5e371e6684989991e569be090a881315bb288c7a17bba21a9958cf42f78088156fdaa82149fb7393ec6270c79fba15fdf9cee463b634625fe0ff13c7b68cdee10ce32a751e58b6bd0f5500c0386efb5a2dca3de2643b5e8ab51b59b962cb395d6429d9d3107165115510fcca7623c579963b305ebc1b80fe635961c0688f42ae2429cbc5a644f1d51dfeef89644293c5ee040b7eb2f36d5245f54fe432e1f2c4f18b7f6854f15f64e1f5ee6325ad41bb12e7e72da6dda3fa25bc474394dbea69e6856c4ffdc8472d9f34b3490ff9145f257ae6c3e23d495ddd90e7ac9e7db6532bd26292b01924244a0e60dfd4019b5a9235873f4442e501aed12bf470063bbd49b13d3fdfef38de3d48ddd762dceadff370adfaceb84a3df611c17fd92ac122f2f5d178026c1818fcb49232ef9135542ca52e1687a0ef17822604fa760c118557f8ae052e35355267459b30cf0d01665dfcc6a0115331873abf03ef6881a8e383a3a76231b53c808b1a9022a388e1a7d1c65e0a2662cae24901c000df5eac4320c14663adcf7bc9ca3474f5764ddb2452738d94bb86796220f69b007923b667e885cbbef5bea1ac908206396d6ed7b9b96ac284f57a453c8b69ac86f5b6457bca1ed20324550987da59d679df27bd10173aa8ad64b08afb5197e1ac535ac8071b2957f0357e65f2ac3f8c05720845f1d4712625c5fa5ff4c9362c6009919c584151f29f7523fcc44bc4930629e63d439c0d51b30732872351c7906070bbeb2c24e82a6ba3b8299c498b08b92245126c3de53f3f626ad2dda2e8982376a06525cc304ce87e34100a8ba23346c565771ceb6da0626cfef17ebbbadfae007da01640246dcb2ca4725709ab710ac053b2e90c070e58abb5748da2e0c7cc892927d539d7de91f4e6c2ba393713fbf44f765e2b84701c4cd93ee6082b7fea6d1160186906b3ac825d6fd48c1f7db4a49b990c3117bbcc55fc38ef6643140a82da2febc3bbd9a3a333b9a6eeaaf34a11e8602d5f2fb17577a65fa5d6d3beaee0c03019aeae82418a0fc3ba47e1f875028f422dfc9cc66955b885a175fea990cfd592427edc199974c384a81a29ee49674a230496beec96e4df3f4eb7e2d278cada306504047b0018e29541d4cb030e5de57fca3c2a0a325cc441365f73ba16aba973065c66e94323d73b8966f91426402f4da1e13d9a2d3fc3e98534d9ad09646a6be9a0fef211e152dcd8d3bd1136dfc9b0811c80f82e473bc5c49e4a9b375661e8187b249464961ce7fa665048e0fffccda75d5c716964b07631e93f456615ac7e1a934985b4dfc4f6d0b87e5f98db33e6a6aa871d97d8a8c4c6d48a69e2499769cdf82dd3b589e1f64ea88744adc6cbfd0b0a78b9f02da254315bfe61281aa6cbfedf9dd42ab7bbe1af220e77e292a74b22f4422dcdf8c73b4ba420585abd18277fcfebf721c3325a7da5d7c1e5169268d6f99115da4f500d34184a86fcc8773e31828f775950c47ecdb43856168c98933209eaa25360d2dce587e744880c6c788b1f43b4792874ec4317934f3337da3ed94e49db94b691117eb69d8955722330c1b1692dea7396d279d020758ad8dbdf240eb4de5ee82e1d5b0c2f67f56b5687e0e489f60f8fc58f0e60fd8ec86ec8f543ffdead2014d7ce89d5bd9bf76d9b2e526b9d4f3bf6ed02853d8f1229f5689fecfa2fa05b61a2a606c83634424b3d7ab63032d8dcabdc0f93387ad158f06621fd1a12ca916d6c0791e39b4a0c08b143fabb480bcfbc8e673553874d62137622e4d8e9f747a86a8787570ea5b1efc39844367b3bec68d0567900433d4d47506c1eceaf65414277aa278667d8608e732af5a6a3be2b6e60b673c1e94935ac5eb907cd9e4e567cd32d6f3059b8db94380b67ffac598e899c3efb7fd8e8519902d65705b09c5cb1f35dff45b3e2163b873dd250afa668eb7e350e29d212aad6a9f0d5d2249bcea1b93b14f1cf025aa0433c0269a9b416d48a0ada2c844d564a68c417ff0fdc4462d5a321b366317283ccee33da291cd5f4c11e45f736d5cc0b3e7fe3289a2efb193db0b33785ff5e7d0f20b8a899066d2080ba2872b2dabf95413fa7831dc4dd2192b53b645acd0ea6d057f122f6bc648a741460c93c3bd78a0afc97ac00317a71b4e71885aed51a4a1acf03d824ca5d523d26de2ecb2c85dd314bdff3f9061fedcd4d7cf9fa3207e58160256ab5bb1a48b8a3782b9a964fbf365b7f61c05f6fa2fd8857610c4e4562782260fc48cca728b8b576a63536e574465fcf2e745f2946b9547adad96b9fb65da41fa1fa085114e1d0f9bfbe1e9ac847497a9a5712e18b222e86783cf4cb219668611259297e7aad1fd1a0663a2e9056be875afa796a487f541dabc1391b4afdded2fb4fdf06ca44d8a6f56316d318c2bedd32358f7acb8353803c95cdfad876c29942133ffb036545229fc15f25a012412e6e6010c79901628208feb9e3f4e690b64bd05bfd275ecaa573fea986ff720aff43280faa55fb04e33b3bd0f7d27cf3c29ec910b8afcbcba10adccc52efb1ed9e8b849c7a05214f586eab69f70a9c1874dcf7dd9a0aaf621ed333bdd8bb603ddcf5043b92e9894f12260f04696a6a51fa17d76dd72b368748a50a4a12be3688a5b3a0816e7d77a325629e0c35ec89816d9cbeb7272fc9703084a415cea0ce37063edc919b6f8a69336ca4a34adf9519f0ea54c76a6cbf3978e7e4beb56246e55617a29905b37d03519ca30745ca1b4d13af3452c27c681c1c3bfde3f31e1e970f27aacfde98c62eb1b582ae0b7aca067bf17c63da23e9b5956bf1a0ef2f4cf7b5a92afdb4865321499ffe294ff69c94ee1f3c646dad395a8778b5572450d8e26fd7df802b4a5806eb76ca709e9329dfb47812074245f71635b1b711687a62d61e7b549033c0309f9dd4037f01ee787207efae532e932e55ebbeba5f24aae33c0459d99d044a914ff36f74c98b9361acc76930f0227a9666655ab541dd7f5e15fea42cfe00330cbcc30d98db1ccbcdff703c2720df101031f6af7b03da77444e2cbb1268f06e33b57fe02d42adbe9ed405d164b57eb91263f3e28571de95ab48783d19e5cab57d9581978041a5ebe75daa0a3d5dbce40abad9c2d1f8500f4baecd0d6126fa7536100bb47e30b4455e2c94df8c048ea57c84b507bbe0902597eab1444e18281036b5562c197d76b3e4e23c7a673989fa0bd46aa050bad3af321fad579425d148115e353b9d21529a9594cd75d6b1fe3d253cf014ef140a6cec4623dd7b0af11aa900e15ddc8a7c65eab4229913660bf538cfe2e7f6f4979bc07dd9a6a04477b467abcf217734eff8ca682cdb1ca48d2431a800d9a27b39a4545e4df312453297f498d7907c72e85601f72b7f63852ccdd7e5400b25a14246de5a022eb6e8e47a44206fe7fd9437c6f18223eb5035af424e39d6b395f56e44277de1c753d0ed543ad7119211d2cfcf3d2d1a14996f2a3e308f4395ee495de457a53acbf20902690461e23fa2e7394d6bbdc7d8fa156c7f9ec2c557694c0c99601b3544cbd2963162aebbc3ee375c288ffa358ea5e2161fbf4e0327ce8f68efa9a1bba3e665b06c5aaba480b84427cafce931adefb6b071fc232449b3e01cdac23ba29fdd9a75f42d67b6d397463aa9d9d9b8e37b0f6637c038c85cc8537570275e20d61c2fd13939cf79644a856a99ee84fe6c44092b19ae111f1821013b5db12737b77da719710d673733ea790c9104773349ef014454fdd8c0a686042a0e74514a6d1db02b9afa18b77d3054ed04fd7d3f2fd22c403ec3b615428fd7e87b54bc66b6595621897d551595f8d22766f4d417ba92f42e5bd5afeda4fa8950c98863dc6fdcd09a7057cef93118129e7c52edf8fe92bbe79db83dca83680098757d7be5b3bd42e2e899675e621b3f64446043ed312aa5960431eba4efde37a81b48a89ee24de90c984a186d4145cec22ab8d754f9eb176d14a534a64992a833aba845feb479a6c670792d12510e66509713ff1eed171e6135c83f000f27e0625e19367df6894584cf24715633f1e3cf6a095bf01f970bf06052475410c731567011679fcc34f3a8f6fae885d487e83d96a05fcbd2c3af89b55e1d9c8471c585b1559db99dd38ff9db80411a8cf7f091890975ab8accbc1578e1c943aabcaa410cc61a6b0e2d046b42c09a5190d2c020a9e75f370c74703d51e227ebf40add4c9eb013e5f99b4b569b700994c70598b7df8f32bc452aa4641f4b0c08682f5207c8468d368e1603b2387d4542055492731b4e20179b484dcdd17adcf3fd74b5354f29574b0c4d62e9d13c02239c897145b412f0db67a02fb7f9d17569f1ea7dc30b05df4c31781c86874495a7d5baf7523e620438884b82211e2a596e04dd97521fadfe04eaafd2966077e28970a338e2609bae55fba0022101a92573e1c6345f03fa5d1a407acd65067ad9b782f10f9f44b08118f56e4a50e307fe97bbf60a69567c5913bc7233a31b21c66d0862a9e93756d07d0bdd66531f3893a5bb8a194c1dfc40d2c6df49be91f6c009944d45afa2c2bb5bfe7c29db195e12f29af3d7255821178b6da50aaace8a8718d3884c49783bbe25b572db85e7b81b131603853e94649cabb4e8897807b4508ab027c29ca4fc03488a36cc01758e6ec4398063c46c5b4a441f66ea0c20472bcb65750f7685793678f8f3a73549ed854374106c8ec879f90f20c18b4a2448fc9b65585fb384ac12b9cb31f8a9d3da6cd637e3b7d8d2e78d59c8d83dfa2b5b54975e8b086798cf9a73fb57b2c10b1654627d9e4aa9060e263b27221121b038b43023ed5565bd13cecec0f2c47df5d1cb9617db8108f8f24d5ca864ccab7cfdfa7324be551818554917b6d13ead041e22cf985dcb4d9899b201dc51e3bf8cbcf311a60a5858509dd56a88e03b1bbf15cde5759ec3ef1dc1d740b4a4187b01c5ef996cc599674bc6cd194c3cbab10e82b24e7159de60d08798f94d399be8711c8cdc694f5c14ed6a12142f46d2f4e2320fe9c0ed384977e721edfd1f766792b081a8b35bbe18712213c1b39bc788d14597f6b573a9eb07af6cfb707237a5573432b0e798160892acf816a03e10ef5dda06ccb61b44ea89f5e5409bbeded3f201b2e3a5b0ef03020cf46e1d5936245e1a1793ca92cd5876cfaff67752c0d2e8e1c1d3dfe39e44c580f6e138dfc3c4d9ecf88bc6fa61f887e438a8854b5226f84c9270bafcb7e22856f6ef737872f73e11c33538a951f98a36745c5eac83920ccf2cedbf94223ec60c9ed6c802a5c3242d9a5893dd4dedbbc12359eaf8601b6165f10a8cefe5d5438669dafa3e29b97f14f96eb29c8452871a29e33004f337734f880b1b574e6fd44ab2ae6fa623fc3d801a48a48884388af2d08ccaf3436019bf821f9136a48fad706e6991340646b0795037bf71591bb010a1f5228e01bc13bd312c77f61ac555468393358141f5b72d3b55816fb98b2aeb8a9d31a867d7daacffe2825ae4b8af9cc2685486189ee0153dfbd32df2416ad657c02c0d331cb93944a683adf78097eabce44422f1898f0a00eccc4e552c0656262b4a8f24e97831a939d8475c9b779486d86d9ad7e5d790a60a97be7fc3f464612641e066ea1fbc0041cec14da6da03d5549c156c657d65c77ff99d82b55239f8daf13c4affdd97f6e0121a45a78ccbd2ced435534338f36397a62ee697a6b5bc0d9a40b94910f6fbaac4f0c8c17d95f1ab44b340ab417c4064b9455c6582958cf47289b509aa61ea23fe58a1d014d7a9d49fb142e2fbe0100a7f78b254dd6bc4803cf47f52719790a2164c763dcd4598536d6ef4c0eeadc7948faae09ecfc0e543cd558569cf729707d481f38c78ddcd96c79a2174eaace66ea5b51567cab2713c242e86731dfc232c4fcd96ad11f3c8fbfe3cbd10094c9e9cfeaa9b377b674a08e3b6b6f71c0185a27de36977fa8108e684eb987cbf094ac3c502d1d0ccb2f7a38e0c332bc7593a61e5187544a75d6ef8195e5e6683defdbfaece4d79e5175b57fbe7e16c5a9695ae3e5c6331f8e804f8c30cde225f811ddd6c5148544206507c5d11def140e032ff88c63b5dd0fe2b4edba180663bf70e92180024647fdb68d9013932384e1fa569ddb2767da56f8f06b0c608e18c0cdbe306eefeda6f16c430b9c4ca1c6c67c425a6079a65ff95f38b3e107374e74fd7addab970f956b8d398252740cddeaf5187c075d1727927e68d514fce5a2b1f38b044bc84bf9300fffea2d4589a07b54808f8ff3bce45a2babc5654843c607f4550790dea6ee21611e560598753c6e4f57e90d60c4ba96e01bdbd2d1a2ff6effd24b3e42d341cb373a83f0096caf95707d1f834a7fc2ccbfa85481b28da746d9f7b9f42c4ff7c88a1e4d385ef44e09dba08e7f70bf89d2f2a8ce35faa6aca33d1c3e9a50ecc4f8eb0d38d7fd5640db074fd3d7f5c08ea63389d05cd59d0fef22fd4bda2ed8957ca2aee889b623001ff33253696715c71a857e40a35c5d67d4203155b13384078d333ea96f1b1edf3f7380b4eea18d1d4f6666eb1e8fb05c8056105609e5dced1b431de83a296c7fa7b40962e40ef5ebfb0adb0007391f2c2f6a224a66b917ce46f658b7f10f1659b413610b7de98c838c620995fcc8de280b7c1eb3a267ff649941924d3e44203800cfb623a67d9aa909f80521e35550385b266a16bcc10e1e20cd86844f3acbbcf64bd7611c930716d4f434004957ab5301e5cd7caf6cda9e4a588a59496cced8bbe7cb40907608f62ed0d8f35fd22208497ec6f26507423c9ec77270458eb655628e257fda52f76a9a75029d85fd08f905477409b192a1823846d48ee311e94d7292e5a240cc1807feebec075c9c335a025caa56572cc4af2125ee1d6a5b31b0bf7e4e6ec90fca55a3c7451c72962976bd2a09f3306fa9346f6254ab764a26c290dca371a1c8ac5200f1022e7c8a702a7ae360fc530a47393602356b3ef8289b142805778fadc1ec518a2d6f1c60a7689daed113516150194ea313b25ecd37a6296d1d167998068a06fe78793b1af9b65cbf40dd7f47b6e1e2f9f87b3d51532274465623f7591984f87f94c7f06bd9adbc9dc2835b2801d5d7195fe4f954bca4c4389a3bfaba94a6788be439fbd1ea7adf418c32ef2ee0ecf9ba96afec5be593cea4773c7f5e59b22828b994c932645fa3dad59b523e484f02e1fcc2b8638bab2ec9a2c85375b8dba5ff240013474a339159db7436cd45de68911ba7eb6d0c7bc18e6ac9ea75824a038e5088ff4c57de1a1ed0f480f634ab0681bb0d2e6dbce74919b1e7404a509c14f7839de0c779df295a2c5bfa506b7c88e3ff450478aba667565e14d1a5f962884a2994794e69c6fd09346809607f4db1c6e0c51e630ac4dd04100199750f9fd240b823d8a9eeb95a99f8e17faf41cc6ca3bba93a251d2229eeffa62d9c5d4ee7bad3e8bcc622f307905f0f77ec2bdcb10e3d2d92a674f1664cb6bedf6bebdac48ee0e2933b16419edfe93f3c8d821235b49934ddddfb3b8b962348f090aea4ce6a04f6fc640983a6ac10424ddaa53beb04e8c4e15c3e5ae72c2a07d55d2881f7d9ca6be45a9b3108ad0ded646a17d45b436f8894ae307f00a075038dab7139bcb2a56e2b401cd3c775ce9a97638990c3d7eb4dc928ad2cb68bba0705c0cd09ee7a1d8fe0ae7d881552a3a67f13e5d606161c857313cabab8401f208cecb8224d8acd4208433280ab7df3f179b0964174df63c7764728d44fb69a2458d68b28f3f53660f585ab827cdce161f255941e57caf84c07a75bfa707e8c291a9b38b38d8e0ca331bc0b67b289565fc08d86f159b9d3749a11990026b6ad09a3435bd1687bd92df6570f9dfcd7525893f830f0b80c983f67b5e78c432cc0e59736d382493ccb01341228a52e9dce3d6fe7b98644d7bbd576e02d9b6f380e9f369d5f3b181cf7892cec41942ee39e0339f8b7d233c17fff44b393fc77fce25e2aec44645b5eaa0f9a9bb09633580f245307fd25c782b0abf056e0d3f809a00e7002d6da81b13343682352675418e91d4a08ee88ba20bf6bfc98a81853a6fadd4a90d76dfdaf1bbbfc9a09d865aa9aee9097d734885478f69e0e6016f32638c048b818632d7af16e0f665350294a169d4d5717177bca86a6a321a0ece61ff6ec561c48f318b3a739135fda48cbd9c4b335692256911ff7f9daa8420fc55e285de6c800cbf969fd5a2eb6a3ceb1149dbd7a9769c52ec927111bee3fc6e2eb7b5220b0468b96ba95f8c2869d039bdd07ccc6fedb719f50ea34d0439aadda8b3bce2aa72e486d2e309887651a9d0bc2bbf5484b51176a8c1e4c1d8c0333637b27197d173a0aae28eba92f690a660d0d23d2d1da74aa72c1bb678c53531b755f6f3e44d6024e05e798faa36f90bb3d0331000056e3d1ecd50e384f6156ffc1a3228bd7d32f8436e1f63ecba1e80d2c22c49f7c920c661e00f0940fdffac87ac1f8133d954f928691068fe2777363087dd4d547d013f8f19ad5f74f7a5e376628482fbea9214ff6efdde865c01ed7a190b64b15a4584a590af5fd5b21ce6047c45ff88b8e0c094d2a05aa886b5414b528acaeb8208bd27fd915e9c83d592a94583ccf73b2f900f362de183e1d0ddf8a30d62fa2112e3acd7c5621868e34d07b2cc0d6a38b95e89b80a3dbd1c7a28be6885b046b5832e3b761e5af7d03cb623dc128757ff1fd6bc1583d7e10d18583443d42e571bfe65d67369cc2c43c0545ce8c7bd5832c3da5edbe96f2ff8305c468b2098f87d3cff126937e2b5c8f02afd0f207683c6e8ca6d542150c28d1f25f3da88d45ab961b17a86f58e180b1382cdaf5e95f47a33cf443a790026b9f02fc00291b4ad71d4d00150e1c7d8c70b11c0a5bae326ad15006d35b79f26d2f7b52c5bfe968dd6b6c0df3452abe6512e832f039d61cb67349ca7783dd5c9153e6b03d905c6c531b7f55d558630781449af6c232fd9dbc865c1fdc51a3a2797e3878dd2988a78fa94e23dfbab9dc70baba44e6c4d2f6d3365a5c89c99e8f27ea1a9e46307b6fb57489761679036906de95cbc17fecb06b62cac8e22420cda059cd2d0833b19cd1be1b808627f2fb01332390e707b4167162631ff073376d283762c2ac4ee80b0748362832816c84535070688a2a59b6c3cad613f83831640711ee0f19714b1ecb51d888d623001beb900c814479bde3b91415c9ea0dbf08e5b6a1593a5b843a321ddb6f7d11c57a19de5ed92d28c436b56595589c9cd697af79acfb04bad1484c366ddfdfe1d77e8035d9c542284e09c7e3e24ecf7390b0145032e1c2f0ae36911ea49098cd82ab93cc0f6c1ab86ffa644aad2a0f8337d789e1970eb26ef4735d284b6c26fd48a6a8f3d34aede4196f2db1dee35a4749f5e4b9e416f3a998757e955e11bfc54ab8971a95aeebb5870cbcb6c45f9ff25dd7842702a4c7196337cf4ab252f1bde452ec98743be4fb3b3e8e812ffd0118cfaa09862bf620caf3b3e4aa1bb617d4fe83a51bab6b3aff41b3f748850cfba67a859df7fa5c7e627b6cca6916f89ad03b8486da18072d86b0e026582d51403f2fe0ccce1bbc1bba60e8ce6b448504ee1c2df7f61bb06ced237a39bd61857f272615ef2ad2117053da2e60015901e170387d74a6125a024d01fd60166bd5e8706ee61e8935e7fb58334cf811f8c27269d515910a41cc85e3d928172f8660891154f6c24b32e167f50cd31908d25334099abd85d82c21a441337f625f37bd75ff9c4ea67a2434f3206e595c90cdf32a367ddf5132e349f6ef4dc82adf9b72c496eddaa03d2429323eddf6887d60130946d7076c5307892789418f9d7f5d7e58d4c4eacfd3ea9f1c2010c7c66351dc200b416902f3faf76b82eaa2a27c49d07b2f48b25e098d866c53f86fd7bcfba7269deb5bcb7debff461cb39460582fcd491c86cade6d26654cc5129163a7d882c3873ed6658911e0a135363ed1f298cee980edae30cdf6d45521eb5757937eb2f748d5f94923fa3032fb173a664f219f99a7773efcac6103e080b4ee4e6d822b4d49688649dd435430ad3567bdbaab0288776940b9d0b5329e45b207131ba51adab7c863a0b9d3095ef57a686542812a7ffe9fd94706a1378e39ed58255b805c13f4d91b955828de5c874024b2b066415f95131819bdbafb364e5a195d5976046f6f5e5ba9091cb754051547a17e11e268299c6ce7299efd36952988938affd9d63081755aa2184cea6236c0ce6dfe9f57740828fff8a2cd224c6d6560a192d5ea6340e0713c7aa78540cf4179bc907c4c2d490617d16192b315aa76e6ad4aa7139e40b5e53da0aae8f840c396258d72887cc8a1b828d88545ba2a05b0ba1f3265c31b34494cf687155b60fff81e78edf63b05f938302d74a609235d9b78fe0c51b5f13dcd0d1146854a90f581071b4f88ce30f340d2cf4034b8c650d7cb4b002935dcd8d0d9d442aebf12696837786b5c98ddd7e50ce45f4b517ab4ef4b698c71a4eaae01bb7eacdae2bd618c24c20abd61c3d05125bc5a05992de1e908a064048d758d0c6552074f3b80a8db0c7e69e82e3e6ffc77685047f7bf3571276fed021bede7ddffa1aac02cc44fc6d8d6b9ab56732973e73e7220c6089013269cc398f2c05372eade411c3dd027c327499ecde1f7d4b12b9985789dbed88ddd8a338e0ba30b37d7644d9cdcb647e4b83db1487d6a2e0b84ef630ef60176288e53c1aa7c326dfae3ba9f2faa458c7ba1dbfe5589b256a18de37ac6bdc0d8238cc5a4e7600e7b6c8f18e12f6ea914cf035886470f7d516e40c54b49b781ed345d054572406c5a2fae160d684529c2dd374dbe32a81f86dc549aecf1be67ac1159bdc47ea790d677c196f36ab670be33982f0f6b9e4043ef93b6870c4f668d0d1fe873ead4f3dd3d5115b839ab5df2ce64ca54ccd38236fbd381d964ddb10ec6721459aeaa6f00fd2bce523a892c8e136ecb5fd536fbf4eea31eb324ec6f2fdf51a2b0214a8ff504ae530d7ee12984d079c87492d064752be7427d02e88bf6cf54e1660c06fc175a727c085873c60c5494d5cb57b5df96ece3b9aebf2d5fedbeac28a089940ee4250fd5b9437b072290bfb7124c6286964186b555f7d08b9f6e50f933baaabe7eb7bf15651b88d2034fb2fbeac2514c9995d94a933cfe021e3a2afb2a476c862b141e76a99e5081b47799bc6567d06728c8fa331f8912b18021592e43b45852d6174e1bf448437f7b620db38f365d00afd50438c1fbc1b25de6d6f97182a0418b253c470a78ca6f633dad38e2491efafe0fba67d7e6e747533815d95b220ccefe67d16182e27e81bd801249cf71347ec9e6ebb3d32edaf182f1634adcb6deed05a23f6f495ec21f9a730e2d3ca0f74e2840e340baf8594c1163324881a75ee5198fc6081ef77c2952c063690123660e17614b40a6a87b39a7b17d070e03eec8dad394771355f630ff186ebe6aae505cf7656109463020eaf241feedf9b1dc23887ea6231273050e02ec6982b8370d190b4b6a9d59add9252435e6b2ed785ed38a17c32256a510397e284e64a09fba28fc84b1c4365855f670f5426549cb4ee8eb41fd55eeef97fad8126ab1ca2c5fca5629927648c2a48392d253a39f6dac4dd8eb552e3dad43783d29398c53d66bf509a74c4d8a64008044ae67a635e8f604230f65e37d84b10d1c181f1f4b5e6e37e80eab5c0f7eddfacab813e787c9d704c3012aa137b0792ca8befdb9383cfc3a2decb5e07c4271d4673dd505c3b8c129525665f4cc9426345743d7f592572078f3acfbdf8c58fb53e57e70544b586f338d4c1e87f0a618506538ee6d4592d58dbb9a2c0b8ba8719412a49ed437f86b7dd8d1351129a2906e52d0155a3223586be8620ddadc7a67943db4dcc0d01810fcb811293b540f5ad16022245aadc057bf432f022474e649b7bda36dbc16bd9b0a56966513211bd08d167fb80e009b541a774eb4385c8f4b6f6a70e1973c8d58c203f9d0a092bc368fbfd4c7afe726b1d0966c94cb32b59998224eb32f26c9ede5ae22660f802ba253ec23a1ad13b842f0925b3bdba891b4c746e3d04af20a50e7701c0aee16a7e6a8ee035c8da7eb6a8cc56beb1b0407056e3a951c876cd9f6310170faf6548c4a245d37e39dbee2033b6a54b4529f9e0941e8e43c52980a42ae3f1877e68dbcf4ec94500dd7e34ca9db21acfb7c66d7b4c13edb4aa52cf63866ae018af5e95351b632667530974228aa6ff16b965cc4d61aab8531ba13780d4ff31a0ea9e4afe6749ad70502ceef1f2c3b238c4d16fbabcea682d039ebc20c7e58f557c7cdc5546d7421678c720e1dc153e981fd3dd2ebd4279e33728802e87a4cf5217148c978ba2ac2c49bdf30ba7be54cc0d110f0efdb2c7e71fc6fce7ef4e0129e8ccc22ef4c6c2e9a5365dc8e710601a50edf28cf58365f03da5b6c95d84a2acfeb26b66db3acd57996ca73f7de2e3b461891ad85f3c9e0a779bce220b266dc8bd9f578b0b0a3360029c5f1ff52ba1bf3f61f8a84a5efe1224433db123d30ffcc022b59f2c0ca0365a38473fb9669a628c717744292b66d6c491855cf514b9e290492732c36e2575c812793922ce04afdb81ae9a73aadb72067f427b6a57d8ba23d459a957f6dfa39244292520c26fd44015d9d702d6b2843c907566a61307f1ff1322b1c8632b488675f5407c628deef642c3adcbf097aa6f6c32ec138f3c83f1a9f36d4c4bcb3877c7a296a43367465d5636c48aba2e48bb24f418383f78f60e0a2f593e9dc01401d8368ef348473deeaf3428ea5da5a4bdd051f69d193a3fafda8903857230624cce0d9bc9faa16ffe763dd3c2b54d61626f4edfd96c1dbb9faef354dd8691b6bc1e8f1121b250734584c6a0bbc3bb42ad05ecb51dc9e09f09f0b800e2e49349b5b68dbb20ad4d59348dc751cbbba21fd053bfea549ee7745a1652c04eda28ff26422520b8b7b0347915488ecfd84983e35b5f97c8995fbc80db721ab45177da3434a4d36d34399b8a38a1406d64d6bbdb6aa2fb8ba1f94c1bf91c6e9ec90311437077a1188385111d868b6d40a4e627e952db3ad98399ce3abd8a74855b7ab9418f885fbdaca4ebf426bc131cac5679ca005ab5f12358acba2416f29cf7ca83cb2ac3900564d670cb1241f840f7344c1132d943f458b40e0d1da2976f392a7e3a228637de679fa048abb7d8d621c6c490a5254273352eefe1282de82f1efff64f266908a0eea5a31f767ce3e180ada64a1581c7216cb7f92e46c741bf65004a2edd099ad24a0c6e3e6f7132e718bfdc625d61a5fead79ef8b5a0e9f7e6b237f49dc9fca53081ef1c304c81870a6eb6b7e995fe27997b43560e7ad9101bda91013424065943d313495edce793178a6197681449754463d43df629538e8dcfd3240aabcc281fc2a6577131762ec338f5272d07711a485dd7c8f631004b465aecdb7699fb3fa5e088ef2c68c6c3e9d42d2d88d4d443eada3107f3ea9a25588d6cee83206d9cc39fd0c167b33cb4153fca3585157d802770f9e51afeb49ae2390c3ec3e594e28ed9223d2ad7b5334960d89fb318af51ac5ad4ef38efcd60f9763e73e67fba43ca499b2352af8500aa9e112a4a624f2ad9f6e988a68fb900321fd6f772fb03015f0f45c5dea7c58b946847a4e3281408a1466388448556a4dc53baf1e75b50552c3023e1ff41f36cf5addf9093d487102e707b51f0cf94959af6aa2ff012e2cf2714c96e7f94de3a096461c95986dbdb7a3e20ce0f3bcc271a2d153ac689d969fd0783d224c8e823cc0611780c9089577a9f22edf8ec62053de6f7f9c49e7fe03db80e3e3e9b92df730f9df8a7f9c76afb24f7852bdbc31bd34ed8a73b20601eb1bce33f93df5ad34780da7194fbcac6308406c48e54a59f6158c6f4ff5434bd910c0cc3a1f9ec840c60913ad986d78ca8188e7b25759fe3223d719fe5739dea4d838c012d649fb30036595b66bb25b48a5f100af7b212fb88f74be73629af39e9615d2bd42c42b31b9185bf94719359287c55a43c545e6312c4c18f85184a2b42cbf2c39c743de2d58122e7bdb3266341b3fb333df5662d2da97a65b05346774d4855f81af0ff54451b012c543f6021e9ef9726a4056d613aedaf77c5e36d60d045ca6f286bbd10c2f8d3eb34095ed89d3f66d089483397809990777d46479d42920c59e8437d6f96b65b2906b6cd5afa558a44d65675fc01ffb5ef68ebaf9f47e314b62de878877976a3765122af206406e0c4211aae43b730a8458cb746459e5172283761caafb25c4d3ab6dae6833bcc5b2bb8542e35a68472b71383a63a7dd632c019c66a7cce13efa1fda2a00c5f47fbeeee1783dca71648c7fc9b709b11d45b8f22c780cbbe467ed312f181f745b745a68f4b2c8c774638c70e4027993c8ff203ed23ffbd1828cd2fe270ac5f91845c29b32ca331d135f3764027d832bcae944aea3293b5e4ed16b8ea7f90b6b6b79bb50bc9b0b3fa4c9ee5b4f99647a2bea03b9c5ce3b11d4e9ce8dcb08f73517ecab44686145511b5b809ced1c78d5cafee94d4a01da78e09509afa4a6f25bdacdb09e19a7a55d9e00fc16fc1393997551882df0ed6a7355f93bd0bc79a4fd4363e058392c24a9b00c42a724d115af3e851b59e4d35fcb5950200a45636bd13b7bd62bbcc95eccf8c5c8d6eee823ee184d29240167780ab7351af255a0134ededf2f2bafd4d4cf8beec3a86905d61eeaacc306db6b8e4e2c8376b66e908b1c73944d284ac2bb3051748257f1465af7dbdf62d799017a893e46d781a4d2a990623764fe1b4dca021d9461496cf7c2d3086a3a06c991fe9b91cb9c63387658774d4cbe343c652a47b8c1ab0b209a2493bb16aa072db8965974908fc31c7ffa2999bb7debee5e9080079b2d13d7fb660894e612c94f24a433449a016f9f575a7d8691ba711e8de917f3230cbb6e21a43c851e26f7792f17c717d5878242c3f08a95419b4d8fb15bedd086c9a485619c27811e7a73aff540be04ae76cf4395fdae718749fe81e314e509389370cf41f90a9cdef2a6893932619983e7de420c96d04917ff3e7a4f606982f9c715948cbfd46227c556f3b6138c556f821b19791c0c042a1964db607ea5f795b0b84d3c05dd096135d04faa559d8f4d2a6138af13559d160f603cee65e9dd5e709a78a5919d311de4b47656c75cce73d51c395183b2a880854133c4e06e1eb9e67ac551cc0c25fcca69826206bca28f61b5b8dcfc355d6d5d4dfa4d6310526009d9391089ca4af5080907a1ccac4b5b2999bf7eac87dccb937ba7eed398c34a1b1158fb0948c16a7f9a2b38a00800fe1d0208f8d3264a1a952bc951b2c4e8932c72912246b180dae749bb6901765bb71220cc33ad8232f7fb92c899b8bcadb935099d5aa98edef4ef83d7dcf56c5c1b48d5236b980c1736930ef4d401e90a7f866c7034f5abd7c76890c963169e63046e3573dc50b0710edcbd9a9abffb1ab1cef0abd37b379599d7a64a209ddc7980ab93f65932ff6cd74e020b9d4742e6a88807f98d36f358ee0f3e5d78019148e3b31e5eb2274a31272236e6cde3981abe540fd1cd373a006aa355e7f5523182b84e6ba426056f56f0da0a1063e4458fa6325fc46f3dc3012e9573b77e9caee8e2d8fec9117bd96166761ad9e313387262d4c830698c4d0e7da87e6b1a01d45555b29fc32b729675c67f476a186e8e2c1e95fe9c236aa571b630640b28f343f2858c2bc35e24ed63c1f232c4db003a4a4553717d290d02d2cf468de147aba0d2ff22afddbd2f6e3d3b88b02372e394c68e4223201be1737f907dfa00521c3b596e72a6d1b8d63f0e5f7f4ebc542c0cfed759a0f12071e8a47287e9ac7e1cd651063054820e19224574a8263b5f950f1d71a3d983990b1873d87d65a2ea40d7451886017c83d10fdb368291a947e6c540ce9544c9ed3dc9de827521e251950cb9310e27127533e6da7860bf348c3e9c637e05070deeb1761b896207f29491e1d12f712f10285422486139472877600a848dee60389ae68ad0132b1d5cc72f0a890355cba552dfcb7c50a7f7d5d4a4c20f2a3cf8aa5967b307b02fe9533398fc9d2902edfceaeb1dd7fd42807aa8a82132ce94eda297fff14c323299d9922fcc22075a7884f575d63f2b5c918a203d451b181f992832dce86d8bc2e91ca667b7cc9e2445b6f12c44f00d27e6d4b38359480916baa13acab6e9e88ad2aa80d99eb9d6a7abffaebbf6aafb942b902e9063c5cd1e06cae74a6135eee077faa5d43f6713a39c46d626872a98c3793f7e9d8a34ce3e0aa1c6b624744aa5f27589a547b9f39bd207b89026dbda9e4e5ac49410c1cb7715b99a7d861e0052e6fd0122602833531738afce2da5cef49ba79c701d5dbfe81d758115698a6a07a8b4480064bff1dfc3936a1ab061d8cea2c0b9af5bf5bb37df7fbc8c22a6ec8f2397ab4ad9bf751c92dce398f55395f315ee1858170b5a83ec81d637c79f461630d4b98072cd6fb9d92d2c784440fe9d039ce438037c232cb40c8f24c555961571b247af088087e8dce7bbe94b2a1cb00037a37e580a2d9945effe348c2a0d2dcb488acbc1b7eefde143305aa3316dbbaade1758fe5391e295236a69df53272b2528b74a5462da8b53c18ca906a36be592fd21b07f9ad4e86f2d4269b8d5bd55fe3584875af8fdd8eea7e240dd4f11e3b1b71f41e68ea6a8681b81b82e2ca22fa37ad5d0d63204f260c6a873300d86a4712b56fb4e21e1912e8b11de1d5155b97625a889e75e202944617046df2a22381c6ebe807983daa0df505938ab53331b277c668afa4d911b55e755cd143a9bffd95313d67c27e2e32d6eb696d9e0073004a6aea4949908431d4a5e5c0ae6a1aea0afcb124dcdc9944f611a3da4abc017e665312ea99933fb1df7e3ae8dd09757ce0922b149d95f85ca816ac015f8c5aaecca41d08d5f3ff11c50bbe17b4ca06f68691b308cdafb32f8c118aad15f8ae569d12f0576ec567b0f20bee98c5991d1683664f0c4d6ee58a6308d48ca66b8d324066d217c2a31a16b77085eb6683cea06fd7264c76dfbd79257a7d8edeb719654fff80082329ea9e6ee16e14883b36dbd97afaf21251f7bf77d6701d2a8ed5a8ed4d8ae8507912e7ea3787e88e96491fac3bea6bc2d75a9f5b01fa44c009f97f0a57fd8c86b886147e0330fd850f36e95bda8bc78fc75419c7d40008b5255be77d3668f1578e4d4d8407b228414452009b6a513dde3d991e189c13757842ea4dd39826d989aaedec7db96fbc8b779e9dddd43f039599d85ecb994141afa2b4d2113e00dce53cea4acdc3e7e20f0ed5b1a152f5f5a0fc83aaa47fc5f360f0800bce7e17f8ce7a4f24f38587cb69130bad05f4ffca77d0a11883f77fec2eb6f6d557c12703041b4ffab4924d8ec4b4e069e71e84c7453db2626f1f42cfa6e556f5e40614958edfecf7f02e3cf171c4411e76083335d4b4a3280f06e81dca51c47e2f5ec5455605bb3003d79b792938b673dc3d910f0468d70e8c31430b94331c561d6e595831d2a64a88b90d73feac42296a1c8da3edd035e82919d5d09da55e3dacf0a02d9511d5e4f9386ed6a7dcd8e06e5a651b5327535e3bab59110129a7388c31ee173a8e8e4d196a873a682b58fac97fdf3019eca3c9e0c621123f23b5488895336a1f9a3c595d9a9338bf1f1e9e0d64ce7fe663c12b01c03dd5425a04be1b0f72dc5d8a756ca0c78fee10e22659f5bbe832df11be7d39e2775e8b7b75a658a9779f1f38190b1c225e899bc3bdecda87ef04b0438ac412e71ead2a9686179202eeb9e6807d7e5794b80066b3bd33c69f24d0c088689dab81a0348d9f1b5713cbb88803c4aa640f35f36e4ec9613faf3011267433723426d4f3ddeceed6248b49a47cbe69a83a44d68eae01bea50d8c389ca9ceda2bd797f9d3dbe9c001a6b8d7636f4158d9338e789b277172367bcd0c7125beda2995eb7dcadb02b304b65560e029be7e68f08cd3eaf64e65f25201d2b5987dd0c4a025df095e8d4e709d30e9d6f5a84cc5e4c9d012d9333efa9c690812b44021de61b915183e5e779571e505c7541f373084ac0f40835548518f7bfb04816673b46c300849b689fbad9ead5f3136bc3957802f62d8531ff00dc262518c2df032c8ce341309688109955e4a3426472c4e02b0de50ed8492491a89d7801a36de0cd0632d88f7325eb70f1e25d62335cef8cf6e45937e4a0e888495d154dd676375bd24ff2bd1e4527ca5125f2a45fe8bbc01885d9a8c8603875f40e26d54759224d1a232b52a0c1cb40883af2bc0a8e3a358febe08fbfc224633214cbe37174894bf20b152fb77c0200f849e65b4fbc6ba014349334331c866fdd13f10aef39884e5fb8823f72d1d633a2ce07a4913939292adbea6f657beacc102007dd3c5f7778c57adbdb9e18686d07f52a11deae1c01547539f11060084aa3e11f58f7f9d353f3c71a9c0364274849766220432615e273a80921d88bd7bb90404bcbd5f7a482e9d92e23557b37faec38bdb13162b89217a85a4230bc9c40716daea9f361c80a4f5055a8aa9ecd914ae89be05c056e15873e3306f0183b5961b82eaa85283708b705775e0aeb31c44bc9450e3ba970c69d6be46206d8447b00567fb90cfd4eeffcb628b46542ac377344e2c058dcc3291d090278efa8f99d7c69ab2bc413697f66a576bc1400aae12e7cf7e61234e822043beca7914c66c494cb676f3f7e348f0467ad326eac6a2a75e59892ae8aaacf2cbb05b105cb3a80cd62203664dc0a6beb3dbf9c77afac791d83221bd9e3966fcb0d4b6bd2e94d7921023e804c62f9758274305ecd138281d88e032df5e99e8e7006ff0ce2313a5e8919c0927ef12c7be77e7941a29c3363fe6ce374e49c56fc17a97cfe4abdb66769c541d803e1425f040263736289e46df0f37c39dcfdbbdb30ec24d363c959050490d3067694d63ee6451f266723b0eaf7418fc65a91a97d4092c19a3af3e3c187cb2236dee7c79d2d7d5bdd4f53e2c9358cb1bc2d0d946013f311596c76ca96b42902743cba122f12973063288e79f9be9dded1e208117cbbe05d9b7f6a1b9e6805e46f198d85d0f82f72d169a494c8ceca355596b8ddb73f0902f71dfd073b30fc8da5c88c2eda6f9f707280bda7af5411fc82c2ebb68fa1d2f953d301e7faaa8f5141ff993da3a8d495c1869be56dcc5adcff129561537c5eebecdc721ad03498f76aba425eebb1293696c23f770f34b3788ac8c7e4208407711fa4a3a6e96e89859c6970839fde72c5f187ebf3c63ba6c266b7bedce8e95262885960159aaa889684b74aa8e384ba7e2e94c6e932285076df419649f7a861c53aeb693a857dcfe2344b50c03a38fbc8ac2c1b92fdf0bdf36c669791e6726d913944e25b8778c765e4eef6e7511a02865a2d77f32769c17f1639aecb84794cd9f6699598d25598fbf52479102ad81db7382241c9ffc1ba51ef5a4fa5ee4a3bd626a6fe34bceda65438b99e18db7c84029ff1be3e05798d9d3334d7705668a197acaf83fbed1e4c9b9d90afb3d6031e2efd20c923f6644be39abe19227f3df863b3bf8c4d3b24b30456efe5cfea7ce7fa22063626cb7a0830f465547415c88a8aa6cd7cf1dd81078dfbda923fe5581d4138ef9f5fdd4d26b262d8c6053d854d5034ddf9d51dc15d4d2c8c0d931fca8a1852e8381e91a6d30e3f5f5f463d170d5341b4639ca6eb96c3db1f42fce0b4149333d58710d20290bc020cfecfac0ebee5f49fdf106c4ff9695a13e84d0f9db31c8a72f44a7ae5637cae7a3e7a51cf2815c2f690c269628d1210331a877732e6ce4688f7ede4c01f8245dee6875528735348d6cab72b5d40e7d04c942c4a21c969eb2fd6837550eed83d9e9b580d5d23da7dd717ed3281d4118707a7f00837bc3fde83cc2219fd5c7b1baf5375e3a5295a7785c6758de3d71b5d26f793545f8487e6c1cae6bb7f63d0b722188ac63821adb858b1fb1ebb536eef138f7b3c4d7a19134a8f0c8a86c6f03e3bb818cbed1631dbf58deb75effcbac9261988d0b804d1c3ac1f4525422d39e1100db238fedc3fd02bd26e29d4087b08faa8b1ae7fd6df6b16834045a8923f62039cc1a4dbc683bb7042dd15899060e40df41748cf8246d1748583f91f5b2b9a1f73e1e1097b750fbbdb8c608edf1ad2d8156fc4cc528c10640cb4611bf05a83032d8610c9409e6aa4a0227014dcec81bc414d45a8dcfa6e7078ec2c96c8e19656bf1161ff4b25b30c0ceff0f64016f5d9494639db7dac66728ce3eab69ee760f373ef86a05d14327fff77aae85cd077ca168d59508a13dc5da22ab5f062cbcc7b86cc4040db2e3ce2ca26cc142c1c62da73b99532ad21be99659de92c9e4fdcbf588baaf09cbb74cf89acbe9a5cf389c6e88e1788ef2e6515a6b0dcb50a1de2e144c20aa6117ecbe55c231657908bdfa41cd254fdcda15cef18a56d143161a56e1c9bf89cd6ee61e99e75b7e38b2086dcc38a0eb5cfa9606d03b39aa1c4cfdc83920642812d6bcf31a39ac8d8e59a13da0d3d16317d849d93a08181ec65de94e2ce560a05b0fb7d4d03fab8985446464dd96fc118f528283d9bcbed152bcd45df21109594bb7d7bb83638027c699005db2b5a7e9556a8b9ced06d5ee4eacc8d8171237230b0c4e288e1f7b8b8b76794db19c1ddce4f71fe0c0f16e5c6eff621e6c6fc765f71302114c638e892c20a77c33cfee4c6c89f1c811077e8799e35467964c1c5ab2390fa7a614ce755c78b51845d86d968ec923fb88c55bbb9afee47467819958b29b43e8654ef58485dda24dd3f9319e363ccf7e81b7430aeef36a8f42b528359d3da10132bfe3bcdeaac3ab16229479fcd282caadb3d5c575e0d6d43745b6ab0202df816e8118751f9e3fde73f43722cad6bb9d63b89587154e27d7a91cb4dc47d3e75b59df3c67f28292b14c607c3ab2e871ab98616cc9759ff58a98e898d9d5aa5ab917ba984f8aa60b6a7b550be22a688a14da30270e72fae885eb365a41dd35089d9ab59a1dfabf4d6a72a34e9a1e6165b2c8bdf399f3453e8d5524f7ec40af795585de55b4322cd2293af5f43a85405131e46ce7ba3ae64974ab34f2ab792667bf7f3afe3ac896637bc72972f676f213fbae797ba1d880ef4ac8d2ce1085d342589e9670fde06aa12364fd7d6eebb865f174f809c9db3728dc58be954d3148ab20caf2a9dcefb180bf231691d896fe71f83ef353f0f079847c285f54205847f94e521c4b4f1c58c6fa9e0a6d3297a55a51bdecfca17abba328c98e9ccfdacab7d111651cf2792891166fe79586e3d5b3c432e30d4de12abaf3b0ea0337714923a2d2e786a87135cebf230dcf40af1b059daa6472ed9db815c6262aa1e39d9db1e6d875184dfecbc335adfda69233ba4e7103657b44c1998f6b98449440590787e5bf1c03f29e8285c074d5eae790737dbf984d5ca1f9c11bf2336e7cd345a2fec6122f9db1206f83779db92e6bbaaaf756952dad3959b03f58de11ff887f5227284bdde20ea210f957277a499a9db015933809ea115f50948be1f84611589a437d1fb8eee571057eabee03d6eaf741a4659805f375049f47b7ebc17e4c92034a444be884ecab3677bec103b47e8cb76331aa958e01d1399be239a259c7eec666073b838ac2b4bda1e6064986e8ab2e88749cdce03837fc65df072d8a471b25752f46278a92f7698bd9ac0b330040fc3c43cb30f8b0bb558e889f864c6857748aa660f53342877719535f3667c7cd101a92d90945c8a8119550a1f9dc46603e6b4a6e11d73285b9030c3a3b115e1f90b450b9ab1aef50df0b20605efb3e75ea152fa20dea916f35530074c6e30688c30e54ac8f3180210814846a256db7875734b193088939b9eeeb05bdd7d53bf4b9211188e325290867ec2c9b1f7cfee77aac58f3d0f0204d6cfdb24768a3d2375d5927c676f6e2ece260bc4a4f75360190138b0915035ddf539194b9c84a314c8018bb2b14897a426451e47c272952f6a5340e697fc6b02d5102b57b4f8f92706e31a0119626a9ef7b35d5229f6e2132608d5a7fa5e5ad9161817225c5785a5ecf6d5497faf8bc12b896fccc679c6d3c8fd1bdecd72d65868691a5fb39d07a034909ca4a5c90d161f190136668112666df684dce3711a703d48917be94a7e7742336020ffb639829b2577dd155ad9c1e3beaa863ef26d4d0c915493d38d01b0b5898774b7047b12c36aff586e457d203a7a88cba0fa73d31e9b588729262addae0c858aec0fa92e568728f859776d3ff4d23344a60f1158c823d59144538f2fad1d2920b3d9b03edb50e0338a27824052c938ca86008f1f1c85428e1dc71b44cc2b8ab220b2f218775044d24ac4e3e3c466137c3d711d5a153f5541abaf0f6b24ded6c55be1dfa983d6a9c8086ee1ab4a7ad5c468fd6daef57f085e9e1ddc9ef06da5d999fb3b588656a91070dd0d1e769c94d1b45455e2f106a50aaed222f97035c0e2e239f4cca99c1cba57c7244abe8bbf72870f1be82f6592e5232ee0eca484431e29176d11a7241c9da83d4da50e1bf25c03090b0b2b409c57087363cabc3d686f11a3049ac9b4f14e731fd4f1aa5c3935da87b1b6fec997b82ca2f89c0244a97c55aaa13c44e65c221b3748e46b7ead0abff318d9b457f618f58d5ebb1e94f3d23e223e48d7591420f7ac79c4e270af2ee94d43889820065503d68b2181d83008f70bf492520f57b130e079a23b82d144428aa8740b4b9d954c4eac750d8fc3ff26307c817a0453cd9394aca7f6d14af5e5e9d393c0b194fe26da2087e5fc22ccb56677fe1eb4cf6c8bc28b39c68afb7ad9dbc15382be4b688069ba637c452947105af6526b967d028f43f48e015a692121db82af55ab1dba4c5259e8b571d7b3a5a930eaa120803c029b027538dd3d693f6689f15636d274be4533a4cd8068784ef2b04480d348717579fe6f1afc6dfb53345137271d7b954137ca9d936e839f76d73af6ea50615b235b66d2bfc40306314ee8e8ae001cf8894bba1d9fb0efc7eecccd0debc2a72d565a2651e4cb8a48e44a504f554d5751c806f158fdbb9f6cfde7988b1a66210bf4e95b367b0d975f94fd160eb3c8e9602edbbf7c3c39ebe792e23efe6ad05fc5d1cc3059462020bc7667a2a5b603b49c647071177be65ced5d1563eff887b1aece7e56f865ac49cc870d0b318da3f7ce9207de3bf572bd15a93028960bbc2b800aab917666a68a7aa80a5da1785d3ea01218d9f9ad101bd1ec3fa038b7bec69f60d7ff1e4e4672d6ef3ee58cca283630e9e69288e546abd913b78de5dd39f35be9f7d8cf1b9efc9d7eb45a51342ad5ebe828a285e78e1edbb7997aaee5593167a167def25a66593be646a634ab805e5a5d529363bf451e48788d855b5f418c978af4a858589decd64c8be646f5014c69733c70723029b0be4259eb10e348de96ca637195c3aa46d44d6c638762eb41ea0fda5b8620514cec4d7b28b573dea62f9d897e34f31b769f9a3ae4d2b47962f59d04d1d6d500490519ebf562213372ded8c46a6f83b49de33b1c3a04b37bc8394170728777a277ac68fd762497a135cc8211ed98dfb41ffdb59f8feb1b6ff669236655d8c913014d5f1eca5df002e7d642f83e67d55b9dad16c62d5bb5e8aac41cab8580d9a42af8d53581442eace46da34d877002480ebf250bc91477d5dc541009760ca3875a01bc25689cbad4e96fe8308d2f564997b4fede492eeb7cb26a1da5f0b2c19574bde71863fed239bbe1087fe41a5ddbad6b97c5ca95c55fc00927daef31b9d68fca81c6dd9ad73b62674d72c992caace4c1990ca27e71c6c458f51e87c9fa89c9333e5f2f9d05034388fdd08bab27774042bc67883c5de6afdabd9b2a756e7ddfe05c7e36c2921c19d29db8b34af387d9d9a2ad4848de19af0069b7af650be878468796edfd72d98d1e352b0f2d8fa71a39cc1f107d5a3739b9c57ec61ea38eadd2233a828781b0dfca1b8fbf48d260bd07480054d1b9bc275f12b7e5da2a3cc2114ec09227f8203220438ef1ec6d7b91d92d6e9d85bdb25894ed4e5eb1e34e47eed90ee0f4ba776a345279713e3301daa2af69ce5ecdc91578a7b9ec3cd1160c6991c169aa8fff3091e6efe21ef7f8e68813ec0628be8cd1198fa6683d54e60c61bb22654ce691b277dc1b7411dcf98a43f851c86b60bf51d575dc2f648e57874eda025d610b724833c16561f9c0178548c7f18ecbcd9f7ed5cd6796ace9832e829b50065d172571b2016f4380eeea13bcb3644481da81926b30814112db18a250c54072b699c9370c0b3af0a390039dd2d48d1a51c677113c4b3657772de70b78cac6e001361c9e53733274bbdcb9c3e80a91638b4b16c72ef5afd08a23b4a1a28b3cdc315c17e6ead1e0338eaa1d879dbd00cbb383248858177b4a420516ff617b7a142b1714c8d16a76af2fdac30202868d3635d03997a062125414e2cad2a891ec9b18f3b60a2cae28aeb644b9a6c9a282b617447c82334dd2fa1ff1dc3a6983e09b6bd8bfe89c1341561ca6541469215fceb0eca8ffbe3757518ca75e81521538afc6aebf98a97e8bfe90b4303138911cee75e227e7cd748df5f539c4259a3515863f5983b95b0b8c11162edf359f7b25113fc7679c74082177a174370d2d3b1e3b1008b43d0148559075094d8355c52d7c8eeb5389a49180da856fc017e964d7fe19cbca279e0fa48572c77ad97d085d54e22cec695122b746d1d72fbdd7329e4f5bcbf7d13614d52b954cc1f59d0a166b8a03903d5e4a142a5989f55b4d04dae6580390ee3396bc2ec5ec9121f2362c8553af222d38f7b34a627e47c8d72d8dd12111a23bf294be3a4d8681c0c0f91dcb47abc2ba22d4d4777de83d21a1b1557d317189e2e4c05888568ca08433f5eaa310d8f7a71c7d740146a2d2a5d44bb62890936f3d6ef6e852f62125539081adb16f3be3e64947225c288694e9f47662accceddad3a5cd8335d1f7eb5d9f3343d4e2d83fbb7cc44c273886c794079fc4120886de9c7205df00eb0fa8e76bfb643a1bb54093b4bef263e7d9ede4e030119c070e6d836c7f09dc7b3eb7c8c35db828913aa1213775323dd21531ff288bb8cf421cd423803f31ed96df8cd548d263691708f98d32f9ad1479496d6a5dcb755fdb830fe73b99fddc066a503283a0ebb43a0a76ce4b57a0b5560a80f44535f9589a13c7bd7772048942c3956b0544614ae2b333838c906f06f8abaccdf7d544ec006af3b34395e4f7d04eb30ec07df676f00d6f75278ee635c8cce806f54c9ebd82c0c522e8ef3e7469fa2af00aca07e59fbf577a059438c0b761695471b3fb743356deb7a85c889f922a026dc788047a1f6b6de1a29405680a414e6648dfe61620f57c36eedf2b3871b3c9ca8fa9a569f3dcb2241047fefc3c0d04587151e7ed0971cacdcc86e668a248f4b0eb2dc5e208889905dbe554aeaf8dcf61b201b073c28ed0c441124a60d5e3922468a64bc45dffb461c07c5a026a59232f8cfe2d7cd19d75b4f2078fe6cfeb144fc0eb7ecf50de5b8715d84eaefcae1a6e39fa52e22fcb3a9a25a5af93f937f87028c0c11dd7e0c2fd1083a6935304bf1f2baf831d1822a15faf554aa56c379f6d2805f71fda97a45b392db1fa3f02029b2159767876bb05798f4ab25c6a3bd50e21164f7cf73b26a6c7a8853f6c6f5571f928b3daedebc3705b0fd0305f24d86c2613cb0f41f5e62531dee11627c37f674b8ac83a40c2a131c8d29e217c5704115fc904e73b958c5370d69a803304d78c4ce19ed86091b5d6ab37ae3cd87bc594ebcafa88b12777e284fa52a676836c16059d8948829991bdee1352a0d4e6e5f46da763816bef54d8a3c74ef1b2194aa184ec872db5f8266c4bab2622fd713149d061d9b74a4fb457e00ec125946397f4184e4e9286250eb17211a366ecfcbf0ebc05a151216334e98eba9f2b150dc81912b2c3d9a92b66d1f81bcd95f225f9cc851140a747d15a4e5173eb3daf24766ca53a11571f212405c1eb47f83703e7897126786da12285643175cbb7c0b75d433cf7ffe2f9f34d0c8c030e2ddf9fe162eede7b6703312c804a669351b4d4ce9e5f92ee8529c0818675b5bbea58f4abc453df46d0d3e2831ea9b6991074e6ab6e32f78a797eb532c1f863955005f56e7bd7d31a08317c01e67950e0266f224bf05fc3a73d635c0afede459ebcda6dcc3ae6bbbea82b866ed380ff6fe41623d7db4492f686a86265d62d65b4b86aa45b34b890b090867d8534deea9c2b2fd1ddc722345072adb31836e039640257424cf952a585f5d7d6fd7f8ad0bcc0f0140bd38c8d8b3ef8a298283aa381d27376c61de750472abe097547dae395f35cb58759d214135b2c4f15001c049369566cb671902be6c1989b77be05dd402d9f73a4cd2e435392da916f6f43dc26422d0691500fd0f9b7dbde64e1235c601eebfebff6ce829cf19c10413273de586574edf50030387f29de4c4a763c356eb1952493f0279fdebf6d167577ab1a2facfe398330e13fc87000eb1af4c425e123915c33090b65be4615307099ae3782886510a8e184840134c94af67836be40ef30611ebb844adf9fe065e82f801d1f72f7afa6289422e75387b5022628b523a5fa88bfcccd7c9c7f17498b01d634456ab24f166696b192f0f6bfc099e09a636b92ac2e4a56879d4e54e9c94455391b57aef4c85657baee7bb6b28964de2bd6325ce309850196508a7fb38c44e8747895187d05ea1ef9be86cc112193fc9f26a85a4850088144f2f4acda7e9f88e5dcbb07286c35956c49fc38cd5369ff1a6b65c2ab679fff14778e5a3104273e0f17a9304b33a579d4f1e9510ce65efb35ff5c46744547d691ff9d8fedd203b5773142b482c7f30ccab9c3abf91714c8c489a728b7655c55e7d28a7be49684a404e21acf7d7005dd470f27171ecfa042bb45ec931f0345390e7635d19b214964d04a92ad03f5f1761261fce68adf37f914dbb00ca101fe57277698c83f4b2dc0a47b886d424f40fd11dc6b7ff5a247375307058cbb636d6032bdfd08f42e3c4ad45e16851ba49efc3edabfd283fa969640d005dac8b0e499c8acdeb06a3dd4b5be0b84eb4b99ca8e59f3af520a1719a61d3323ccec82f220fd51e6bba97ea833cdc57a787d0609ce14c002bf26ac00ef8159229ce7996d29b0223e2d32ee7a2fc84daff2502bc8aa7b52fa3afebad18fb8befd2ee9c34f27fb611b2a21cc6608a61e33ff6760a566c641eaa86e1a5196f90dbe48b266caa31a67e622a590ca636c316f642db59951003c7340a79e69854842e9fc9d899f08c14e889f322548a8aff9eb4fedfecf6d6df48d1597905aa4f4d8479f21486907dbe2e46e136caa26e16a77d07a8b972940c6327066768a365f2bad73448f406f0fd15450d83b0a07d5fe13fbbeceb4cc41ffd08d501cd244b8575ceb259172c13f7c45cec98dc3f9c9a0463ef6c61e82962a212c723c16dfc1b9bf7158c19ae345b48b43da93885306946649dc92c69ea1e00dc00b22a049a9bd7561999965bc2ab117c86e2414d92c6e682d64b152748df67b87902beaac37a194ebb691f3e3aef73361ca1892a8f8fa57cd02f15f06996500792d389a7eb6e14a209b2b78413792690fffd36941b8a485a1df9da1ad824d314f3b46b5a5c2dbf8eb9e3593eeabcc7c809f080648ba7174c6004486999262f8a5a8b9823ea05d5ebfd5e6fe4772455ab2e6136a7eb6c61961103f6ba19b2466e33ab169a8b2254614d855cb52287b416d54f3ab85786f68d234ead8f44891eb61ee0421252a402ac0a56f4de2d312d16885200b2638baba49a04ed597d416165cd994b747cabe3f14089ff78d45fec89829a132cf6e3da856abb68a15f12dd3ece60b6629e95c426e6b0b94fd9b6815fd7df91492b8edf422a1c85f5704e050531a8d8b01562b48055c5557e557b605a3878aa171b3f9c8f7130deaf2e046f4a210b5f29483a85fcf3a575d9cf4e616c9d37243c9df9f60ef13fc28621e955d2da07caa4639050f23083b429e7bc409e4ea0daf363bf55af9717b4efe07b14819953ec6f9a24eeb954db1c36192d1e8812563861087228175748ea51303dafdc66f56d0216867f5fcfafb09e70b1fe5983bec12ae2525f21596ccf08a0fb4c1de76f49051a52e767f9dce48623ba4974cc368a69c4d1ef69b8c981365c70b6cd87644fa911894ca5780a1f106ded4b90524dbce7f98352ea0dba536613d7dafbb144a34d81ce9a1bbb7e40a42b42b37808fc15af1a2e04a665164cff1ebe4af9e1d73c76164efff4393c16100e03175272f668e794c407676c87a7865707bdabc6976712504d6f867633e76d598f6e7399bc18050328608ae80151b23ef58c6dca25421379262064e300eadf918594ce724aa147a92b97dccfe76f4b692b377ea7674252ef860f862ba2cd1a9083c9e879e91088b4253b868c3ed5e052bcde02ea2aadc7f04f7a7c89ca2fc0cdce326382e0855714e25c08432b8f4905bac99681892111696664b420022789f2065713027cb86d0a520f492b6e5cf73d42e16bc4ab0b48791315cc8a88bb40ec7ba3ab552f7267c9bbeeaf4ee62e19fba934fb85ee3128b45497f70a076a8e1be0e8f3c15d0fd5bc7e95523d3fab8d9a3f754523e6298648a03a75197ba3905fd6d89133b0039954ba26318ccaafa5f41579a3a631df15942e101239664b470a4b8d61ffba52966d46c6822e2fc8b61c6ebb2665931381d8cf72be483c3cce079e015e251d15afb1751e12fc08b97db1a0d989b74ed8cd0cb27932c33dc067c2639719d830fc12890bdba9f6caf750e7da14b1b05c1715054086a29e671a578de990c64adbc7dd76a82e9120372f23b69ed4baf3a30a896a70ba83bee6fd8aa0b997cf0708cc05fbb04c18f686be55d5b822a00b02c1cb3d707e6029891318ef11360052e2759a535cef34dcef375b6f4a2d65e69ea095dd91fdbc74fb778362a05e3d52edbe52b729d32e1687e129b797c6d955b5dfabcbcea50b193d3bdd44dee3cd13b2bb6be3733a5c14a9367ec987e3e9b7b50927aaf7aab19f9ae3aae313fe3291d810d7163c69ee2df066ed83251f7e286a7d092be3831bdda8e8a1b564c990532777b9d48e28ce1777d2c73bfc38ecde8df025ec896be1a83037328d43c6a666133e3908164688aa9b91cb7ede90f7981be9557902e1fbc5b6afe0a1555958a340c69c6385134ac9b6eea64780ad6135714400efbd2808ed4fa7717a1a49c5929005b9148fe5ed7b46e74a5051ba0ae048b0eff63ac89c2abd65e301a643f26b2405b028f893178ed7b00d6c2f03a27172317919a20bae0361a83851595701ee0463ff3835fd6045942e9d13dc7de6e4299ef29c638102127a1e13f8cd79fa18f9d0de3bb1829600be7dc18c9b3b7703e224796dfc7cb70a34ef1dce160124077394ee91818703d27f6bef5707fa33ac5cc107c77c95d5608c314897102ceb68600636abd3f7ce6678faaacde8962d55f4cadd9b4825f5f5bb71cf04bc985c651a1572ddd1be67cd11e2b915e49326ab0c6535f1cecdf28ad3301add81cc2ce1a6c2b345164d01ed3d0c26e2d695a370ba104aaca2efb3e27c636254d1ae506efba34ecf031920c07618109811e88bfed418af897432fbc85ef32fe0bf0b2666f86217ba861c36a4f1d851d0fcf95908ce23f638eb024d6f763ba30f31122cf0603cf239cf534f50cdd3f05950dadb85dea7a5d63b0de4d1d48d8f3294d94bf72a83b109923ece44a2c36028bcc283e451707f3eb2c7b51693ad65d974d7b04f201d440b3c6338c6451796d7c68b48e2fa1e17f00de786187d54ee77f268318ff002344f4fca12b5bf72e8afb03316b427a4b87fb5e80f90e5aed4b4b24d475a81c1741dd182ced46b2ac5535d5bce59bdcb9ecd4789318d53dd00300929982781fc81d9491bc553ffca3181a1cbd8417cad797dff4d39323d74c2c9de050ebcfee7cddb582b45a6b3901e91d5ec439ed23a4568b2fc35e3cffccab459cc7fe10dcd7f9a47c9ae0628ef889e384c750d0bb66f02f4205c5bda72f8dc66d0e919508b82bb5815a02ca30f6e7f831e6a78183950f006897a5a49c7ef6c0c4336518e13e3e9c8ae310d3f488df905b78748ba2ded42d7ca7edc4b5f877cdcbf95cf6eeb7e88983a43b630abfadccb12fc5636d412172cb9090d20930132f6bf67eeb8ab029c3ee2d796ce7981ee924dae3770c0b9909cf31369be2f17e0c223b3518683388656d382c62fa9d6cbcd2abfc1b759bd6c9955a2c014f4d1ea03b02ea837b2a66c33bee31d3f669b338b8f99f7425be2a209848a0a4717377dd58ed93301107e6405583332e58f2f5bdc0693b0e9552dd28d66473c78c0c15901c8239d6985d8bde5dbdf857c36543c403e1ca6632a89717ba7dd97f18cad4f5ccfa6d2238f4708b18339801b219e04ad8881c6fb94bdfe0535d0211b0c111ff0f86df742c1b2aa0e122ffe5f4cb8100c5a3bef659cb5a5d9c424319c44c8d562f9cea1e53e8628674d1a8e5065761d60d0ce702623161aa04c784b272c2fef6370d2ec1b42316ed37d9ca8974fb79858263efec45d249d858623bfe832acc0e65c2c1efa99f4be40ef8a78d5a0173cc83f09ead651fc69d9726fad4bb70afd98a2c4e27f26011e1e74eb030522745b5021bed2c65a170252d3d976cd8da5585389cf633a5ee64ce9e200c8f9553c919577192122a9221453b169bbe37f6198393e76b64dca50b9da91671acbec94b27d0eb7f91ec025f7cfd613618dca7795de510f68e08918f4c0de41e19a4c4a354a585284fff8f8f30a522f52039c10000836e728bacb9f8bd5ab747485109371ddec96aaf1fc0bd77ef8f9e5219cadea9cc698d744578163f6ddf3b9b087a2691c0381b00c4c7c84b5de2c2590616468e1bbf56e05068fe337dd1ecf60340b012afd4d4818bb7b88abe1a05c5ef9e8c760377f981045209835182dd1b04ef1cd2bdafc03dbf206dea51e03b0d1646835cf3e6ee5f497b01de07faa960e3e0dee63c25e46c8ebeb650c7a999e561733cdba374cf01211ce71c808046ce0237e89ae7eb715087620c8f01c17ac207a37691b6f1be961dd5703122b2425cc516ceddcfced71fdb768b966ed809fd16a4cb3af950f4e2db70c1c46651f16efcd7b68fbce4c10a2a64ddfb71f220a9fb84b469d3fd6d26e73697d3cb8f0c4f6d30e534aabd29e488d63cccaa39008d1a7fce7f8646fb80575d74a2e294666725158ed95ed12f1988ee0cec9b1c16f2172ce25b3e1951733372b9bd1415d77e5693efda312a6b8e31b838b33442ed876c462dee4f4b7df70c7724b0d8def061cf30c56a13c2aab3d7cc89e049b0739b33ee8819ec47f8cef4614ed6d1e2f7f01f8f7b3d4b1d3372c4d73be96ba7b05d2f444132cd6ebd3c46a3ce9050ad302c3386e955f5b8d2e10fc611527e709fe5df010343799f7ce1bfc9c33cce933af56a53bfc8048a9fae44fb5d3b22de7275bae60c54fdcd35e855b7b26de58785599e67b40a12b21535ddd462dfedc729c1d9e5fe72a52afd0ddf80e62427ad17c14d55c5f69d96682e0906f402707bb222aa6ba6157150f021bd82fc9eb72c7bf2601b16f4bcec4a76d291e9f1b0411c5299ddabe3d20b787bc1555f5c4ea95d6b82d52262da64e94f4bc3d74a4f0add42dd1eea301d42299855de3bb7d8f98e0e1cf539458a46125462f6c7f8229670dfe82c72f41748dc29e71cb9ead92c7bedd920589722eb53e58c0006140d272cbee65806abea98a9f3ba878429f28449180d4c541f94efbc53b7c62f0f6523c85c921fb0fb6fe2e2067690f43c20bf5a9e229a451b9331142cdc9ae963cd548fba5d5293f0664c81aa7b4fb0252f8328658d6d3eab9aebfffdaddafe7ddc92bd02e9029d84eb0262cbe9acf4c392f85a1ea56eef35cb60bde354423f3ca638b7ab0d82c93e4187428f1c171e29bf66d3369d90593d2e41624e45e5008da1835c37d24361ac7ba9d9edbe19b53b816472ae8c087188bf78f0278deeee59d244241a962a2afc9164c300d49a9b5055c2ef5e723ef730552b3a25d4c5d9092064c86cf72832bc58e6bc05f5ab5168a1a02efaf4b479c3379dbe4ce8427485102b1ecb1a8ca59f9ed44ba340b0ac667a36d7c67387e96b198a130fd35dd5a519ee839ae4e4303bbdd25f38d64decb88d2052f4b1b870337fc8df8eb6338c8f825e886b3205d2b2b6f99e84403652a2184757ff3dd4c60fe9758d368e693f56427972031cec64cfb98305d799a2ac27919baf0029774615880b94c88e9b1e960f75352a07dd89e31aeda95ae6ec4f316f76faeb918f0144571c9cf106bd2ca732c884cb646cead77efcdb9f4dace58d7072ff8dc6360b3b747f24c47c11999cf204d99ffb6d2cfbcfaff16eaca3b2e1836f7eb182d484b1d866f7da312475f2d7420d1a24dd940dd532e4d5641f14946f5ac8183630eb0d9d35ee60bdaba53518aa8814cff48ef8de476a19fd3b7b583baa5c92fa2d056b17860fd5b68cda3060a8978d2b67643047780fc602b7949337d44c0d0bd050b82e3c710215f75e3df5d47e4f0cdef6bb03d3355f586cede4c3ca648433bf0a43f265cd5ac393e5bee353ffd9f9694f8e74a018ae337dff755775e2077d7e02be579a8bbd6bf8eaeef03a728e5d682ce8d16bfeab3218ff3bbb443de96fe480eeeb4dc6e07923f942680a4c7ae44d0be9bfd0bf5de40fd2816fc4b4e7f549d59f6d63d1f74a6819b302571243e0d154af1c04a0533205284875c79bc8e2f081c5481267ac1c11437b0b28e2fdf53c65af2022afe4464de7e1066d600951bec59d77a9771a001ce888fab0bff31a9600050ccbc283e41898c23ad825e35543641612e583559536ea7f5d6d74116996275cc0a23cf9f008f58374ccf875b4f8184ae28a7ffa2fcc858c5be28195d1e17faea0cc253637f8f6b63606b597d310708849c7a9799143a7aa133ee09c22a304e43060dc733b1ec144d89a01e4356644a68e050aa1b066d9100c856f84f2131d39f90dd3d5c1979b1cb6d9f70d8cc293337ed905f5f12733fce54645f435ca9a124265c6a6c5376a9b436dc0298d53f3129e27ac714cc299076719036afa83e1b7da87839838ce3bf300f7beefc6918d35981a807009af15ffc008137a6c487c374dcf276a5051c8dd5aacc4ec4b1b14275b11d678f39b451e9a3cc756ee6b6696fe7f2b98493c53e7fbdda40f28d684ff7fae89b93383b0f7b42cf7a513714edebd8311ca1220ff78f800498fd0f9bef510c54fcea7bd6cd6e878e57ef5248269c1eb27dbe2e3f65cb30abd9bdfe1a646438a475a2b952513162ae5e97c976bfa30c08573c4892717e90ee51d7547067e7f56a6ac9ff3fe7068575780da028053f5c325cfd9769160463795349c1eb12d65d66daf72c8814f4e8e1424fd006fa69a902723254c9c001f35df47225896366adf175507355efcc46cd6f60c564371ff315b88a4d27d2e68d02da5a19a288d7c8057f9adc485fd69f2113e2e19a646d1f5da90063891d54031ee64667706637b5c999e9c200bed1b51dd33cf7304ff1753595ba0cf4791128c4d6b88e60f6431db3ee2b56ef91208fa92c72d0d8ed392011f33ad128c42058822bb53f346fb8ce3640e11b815debf8ba3d3daa38d83ab1af526bd1b4e94eed8be1d1e2f45ea93a09d62f6893bcdb00cac707b385fd389de6eae23c4fd75ccbf6d8ea12b6200ef8ee5f86e93a4a077a555c5c92eea38cbaf90828da87647bd507f5811d285839421d32fc1eda081e7d77e5eadfd5fa2ac683e29182c5965e758f49c185fa5ccd762a7dabdb8746cce489fce8a6dcc928e0ee8bdea394d59d1856e7cd810ec0ac968e6353c6c53785cedac093e9bc064f0d7d1587be45ea6fb098199a7c795482c7b30eaadd86c2981e7120dd1bf45b69b4e0105ae9dbe412309526ae955766bfd59625e9ed85338cfbe0c4daa53dea2d236501eb4e4b40591327e56e1e6e095aaef746491cecd72a5130166164ddce7c08a778f3aa07e0e6d673b9411e9ea928e31969535f47b5a84fcb055129ba383df8dce1d8cee2c0a17aa7ca8dcf2647732a15412904d1d97ee88893833848164debaf3d28223b77bb03c1830220b80836deb513282a04ff5d52bf3eeaca43a6cfbea350ff1d7ad481fb6eb1bb33550d9c7ded9193448478b18968d56f8b3b75a6b00f0609cee24dd6effbced3e006a86c29d3a2489b53a9b1cd5653611ceb9107e5a609e956b0fec4f14a54b5315e6f8028343dd2c95979f21f79c3aa926502f3e690d9b06b845f3515e41604e4c6cad665b4b29c3e3a85afc82f5500f50fc4c01f12d33ed7250d18f4101048eca9e78fec7e0e6ebe7a02d5d3b01720c26be01f60c4fb35f78e38c62b091a9bf15f40e2718669bce0f991e98e7c0db56ab160a65d5f89933d4c9a80dd2e767bcbf31e1eca5556f591b57a8a0de28908d13a2a812e116ac5af2a031d2d5b2e8d0ab5c5f47070c64b8fe10621a7930a9bcfbd0deacf664f8b6536e4fac53aa384719a278403430b2cef4dfdd4774bfff1b25693c9a1c4fdd90e09684853bad9ac77745a1bc3a3d407981d7185dc7f3164ba624d51e76ee26e6c68f77a0683597cc5ef2c4717e34ec6c6cc61bef927be729c2abc6a4a2232c0d334439f1587ae73ba678a790a6cc2c68787e5363690d348005d0c8e563c127caea72dce389edf10ea889689c9f4560e41d0d760bd3ea55003593af3fb738ed7fbe12ca52d326cfb9ac3aa5d263fdceb2a7646f8fee74768b64864170c225d84caca001a34fba2ac468e9f4b1869ba16cfdb164e2b7367259d0b553fc319b442c13dd66294cc63c01c780b1f39cd6b108e8d9d3ebd0e09c330f191f73b11b0aa9b8931f514719eca7f0b62404773225a1b282262ed54cbc85d437591f59910f7a43e3acf8297200684801c2ba3107be2ff8e890a3b80563704a11f4454a94a513f4d425830cf8471783f563cd5985fe91473a00eebafee097a284ae721b1335d6074a226729454f7583387e6065e7b7a0a29c038833c5a29077243350748c788130046e2216daf0e57ec458284c1e288e6cfc76b4f1c8e80685aa1201862c9f2f3d77f4c1b1509da5c923b474174d0a87ec7a336dd57d2bf4d9d711146194791b3dd022fc0bad02981a7b37355479a5efe76dd9b818e507fdc3ff3cceb05389f999b1795774b13f1959a714c788c3ffc6563ed47d28a3ede2ccb22624227c23efe42693b27d06aaa9b29b669890633110996494e2be71670cb56a3b4eb5be2abcffa0394bed9cce349949eb9096a42820f536aca2bc291453963ce266b6a7b510f7e5e15aefd09a88a9e47bba06dbd79f41f3f6f36834f236b84f472a9990d91530a89cc6b6210c5fc625eb9976a3e82071ace24f1ae678448dc18fb73d99813449edb53ee5b43fe73f508365d8db648ec9cf750c9cb4ddb2f65b1b5f77a6b082188bd6035187a1274d5504d03969fb41a39984d6d56be9f700c36654a79dfcc3a446014c05b771dbb30798ebf28753f5efa82db50c6a51cce9c88f7e451481676ab871c164eec44b5f5eaaf6daed7b656fe0d1728a2339d03797fc1226d93ddce71b97a3e5658d107b6a08c09c5fadef75a2b9072a48b8c3c261dcac3165dfacff46d79460758cb05593c0d364041bd085548adebefc65799a63e806c067c911c5a1cf0c01c35f63b9e30fabab928ada5e66c6d18543766afa3ca0424784539eafd3b784087c988e86fa83700b2e6c3bc9555f3bfa11e480569abaad8d40bfc8331959edf8807567e05169794405971939a81006c0f4c509aae1d6dd8ea992fc3497b6dbbe1b82e24d6933dab542dbf40566facedad51295d331ee458b6ac6e9efdc9e5750c4726345b819998855c092f198131d6ec439bb42700aef0b9addf9814c01db18a9e0cbda205055873648da139449efe2e35a3f667765c1de72f5a4b6511c699417fdf02b2617e07b7d9b7277a1497006fdf31f18699b2be16f1eae523cac65be6cb2df8b73c52696338aa2bc05519bcf32d6364a8b468971162aca780dd7ea67aaa67cc0f542f6215140d671abe5ed31499c4862be3b9d128f7e7679679f231d987de5b1339de7e9409e56b176a942e0f864c7e25c9b6785ec3fa0fa97add355250c8b9bd06c36a0314cb1b6cb51677e91cf9e8abf0b7fc1d20861cb49730ee576ff1ab1d396278a0279b2fea11489e6846a956ef9551b184630b1f4922f91d3b68e92c98105d20163466b2c656e65514c4a6cd25ecd94f3ae72f3fbe731489f7195eecfa2abd795bf036843042f7954b9484444525ea72d9e18cb6ac61597910000acc5e3cf2c4241203d836270217691469298ec6411be8d41c50bf53133b7d021263da1198e2e3d2f4b6ff0152dcf79297dbe5131b2d60910eefd0d4c3a1a5a6ef7c0448f6d958e4127a4e6c68a6f7431130019c4ef1c71404095bb9207f6eb30c96465f2e53b2362f535a2c9f7c31c971f15e2f9b92dac0892834352e2e569a0563ff17381e3e32efc5f457332a9cc0bf5a12cc06a2c0afe0699e7a250ca137204975401fada946b22800469abed00ac69b5d489493d8260dfea5bc91fa95bbe4e4985e7195d2f1152636c80d0d8fbbae591cc6783f0f6a78accfaeaedccaceee8297df6c1127a0d8413e67b22c52e6042dfe389361c8715b4e17dc9c1d8143fda53db74e7f9608e74a149b97f7f4b8f6249189271a574596503e6f712812e6fe8529990ee111e671ebbe39178d6696ad3d1c1fc66d06fc8d346a4680f06b3e5b8bcd35f55d9c30041f5696c6d16e23d6ee49dad7c2b1a62910136c80699d54fed74225bbbdeb37b4b4590a41eb8277fea0a2ca7d67eda30c0e424f540c73cabebceb694af09841b4d057e390c5a9e3442ed728530abf20bbec1f55505723dc8d3ee6b4cf87e08cb969e3eee08f7001ee6adb5f2740e6c76b7ad39dd34b0b1a819b4ed68339f3ddeacbda1e6e3ceffbdc98d02ef502b5e1e71eb016e8ec7aed2dbf5103795fd6f24916feff6503dd4495f1bf2d332b78660153b43368c5913affce0fdcc278d483d5bed5fc7bdeb4276122253f19fb6fc5d42558ead9612bb1259e4e5b83a77db1f309e9a6840eeaec74ca48b89d97586242b7abc7c7d3db9e833afc19c23038020f95448053952c7f6aff6a4abc86820bcabdc53be22ffc537d60819076fe6051b2cf50ff6cbabdc43dcabdf60f357bea380282749c0fc76de704e43fd920fc51da7cf8c6db89d41e06a62f97e87445b168e48f61490f859764cbb9ece248f586a5341f4d9d5012c1050506c6cbf72106a5d3d0bbf650c9946491ea55dc4bf0d205e26769a72407d34bcb472ec0d7e76f2ad5062a65f9bda69ee3421104a3a90199464b867d5ac68d12d1f78ed90eed449805d3dc85b1809e5186d6779bf0e6ec57737e6ea90e8bc736631ffb3afe7e5e1d0f043cd7278f2eccee32cc1e72f71e5e51a9f0309f6c9fa2c3a8202cebea929db6347fd38a434dc0c861040891c414a61c6dd34e31233b49a409a0ed7c16380c4fba4b651261baac70bbe13e56728138e3bad34a29dcc85dafbdbeaf3ea830be43e3b1ff75b0f9377b894044ef8f35f70a7aa749b51e37c40191fe6d21c045849185238872ac54b02f79c9392fd88bdec87e3e5342c05456abba6379f93fcff449dd3dba4a3eb50406de6e220b827d52aad0bb9a04e94a7c31c7732afea3ec6912bb800e418a6b722fc45f1b1e21c0ce0e41e1487128a3c30c53378b4c6bd0dfa5024d7622cc30d40dd35ad826168f1ba951e7a6c6994b942895c8c86410e00c4f79c470b843f9f6b6ff8a61848f02fb026bfb8c81184bdf66b938e3a991aac373e4641556316799750f58ecc019161df462de64e58417a71b0bd661e489f7ec067878b250e2f0c248ead4ab03c0c00a30535de67918c08d8fef1cc9c1d8702e1195b58680cd0bf062bdb5a09cbcc0a2b8bf9ef089ca5d2980b0dd2e50dba8a033d8a7eec2bfee28aaedf7c37cb9fcb4650d7e88a4c47bbb9c16619085347fcd1d78bc177818bd783bdaa562b9a09c4363486f111ce7690c0ad4957db725268e13f40bec06162d63e26e60240ffd3bf3b03aa54b895dab97e2be904325774a4671123b735732fbe6a38698015aead73da0d2737f4643f3eab0dbe9ff6cf01f68242f0d56568fbc53351ea2611d965a0e5cd92883f2576115f537c0ed126154232dda818b7673e2b981560bb4fe4fe6845ef9d4f5f1c3f048a6946eccff382b9f22c697772bd600042747e11b472a42c6f614bf1ee9ec4a5cabe03a77ffb04326ad060fed6ffca9d8f8a0cc2e672a0ae3c8ec7b5e455a70af61838aa44183cb380b9fc4943e25713c7d20305d6f0985154c16e403b5a9e9111977654adb3320908d6081361a46e68b6fd0b253968441cf4d4262a4ac9372ad9733525543e920bd1a19564087d79ccd3d1ce089b63ddd516bd353cce1ff50a49368d435d7d4b230ac11dfb290b18f8c89b2c73ccc2b97d899c475f9cf29ca063b881848562b3a2ccedc084a40f87363ab37c7477b9b8faa9fdf975634d567ffaf21964065ad094e257530532a18cd212cc8e7a88abfd7c79943109d9692ff99840bb3970cc00a2ce4abb822e2d2d3fb4c4b790161d1b245763ba9d5b913ae55425eb165361520b556e76e84825b82867e95d50e90c1aad8796403702a9038c6e63e723f34e404e0583159d326835759e75a75ea49785a7dbc24a64cb83986e56179d76b3bb2aa84db95c79e70f5a20fe2f1c0dbe1a50faba87138e3f5c0235a16ebcd38e1aa571b67d1c2e305856c0b7ee546a95323a6fd7fe69ba3b9e902e460bd4a4ea4880783934f32eb0d8848ccfe5742a2bce23eced22ae40d9f2fe8540a70c59c630dd1de8e7953ceb744abe458359b0ce06fb4c40ba964c2877a38f6d5b3f8ebe30a521099545c7cb36d8d98b735ca3ea400ef05e5944ef812e31802f514f41d4bfb63538b7063ddb6ae73f8faaf4a7092157a45ee41995e298712e29475c8f1a8299b054c26e757f9482bdc323c843658aafdaa0cca2e68776eac394e5859706a6a52b25a268e8fbbbfcd78272656b749f67c2ef5039769ea7ead5fb4fa1c35e56345124757fbacba94dd6dd4afaed5dabc7cc8b5c99abb3681f8ccc93fd573d166fbcb3804cfdfbe148e0de723d8ff262e73952c8f994b52353434886a8bf3cbd68468685b2f150f34885442b865d26b5723d68e488b9ff876b1695ca85836d2224d1ea33c720ef97abe7d7d40ea758b23c688e1a0e858297241ffa56bc5acca4d03cacb57c21c4f02225f61b0e2788ceb22318280f3aea7e7ed7b3a96c922fc06dbab579bd9c7e67f4ac46e6e7eea1897f947a0e3192e7a81c563e273b78b9452a845cff22a8f156363cc56762fa6fe4c60b4c0006d476c372ed8da849bf122c29704515515c63b01f0e8804b2c13afb3f6a337bf66e08dc36f755218db931a3d85370f24fa4439d2387b86bb4d16c2c11011b37d7720af266836f0b61b3054593331cfd8504af4bc7336b770f297701e3b48b328162fea3c9c934b5dbd078c43e55b69041270d573f95c9654d2ca1812bbc80aa14c721a6216c771867173e3371d724d9d130b48e119a759c2eb53bc06eced6072fa225c26c51a6106b9bd5c8a8106fa9d30a340a461226a89f48e83989ce9b1d947b995124c6b92b4528c603f2a0388f35574b19c62a0eabff86d3536cdb9cc1b03c9eb7c78956be6e4573b34d9ce1fbcce111588515c296511dec25172eed42be262496dcc58c8b96b509cd7de547ed56956e8ad0a572fd45c2ebb201c46c3a1e2f4e091d1557c2f36941972ad4275bb52c52c9c4f893706a3b1d7eca562e20042f1a0432633c9157ccea9fe5c6c6bb6b760e6f34f742ea54fb670f44e19534ec838c39a76a0e9c2d6292893a16fd95997c49f45cfc838eeabfb04dbde2b87f75e624393d3e2899f2602d658f65acc524f05e3fd79d52c6482feb4a9b78ac8082e7f5f411ad24981afe8d814ff546786c66ac5613b2d135296d2c85ff799b1b3b9e71a165db33dd5755cb64062fe5f804ca25a9ba67eac1d99c128130b56b025baf3bc3381286f9a2610dbb29d8e7d31886a39d6c4e5eb698793e4a0559e8baea73b4fd281815a2c14b619d7977a20fe0f0e026cda1976099837aeedcb5ed836352823b40b1870dd11122277efc9b81c853ad420f5b827c126805bb6a8cb830633214aaa62029661388010134c1e4c444ce3d46f559b8dda44c766f099644cdb93a21c29c356a308dd36ddc930d6f5aa3de8ade704896a86d99c6dba09ff464f8edbb5ecb16ce4c84549ecd113a36154e6290b972be4360f7c12b2dc64a95a8f144172adeb059b19e4d77e81bc6051b0348e1f89f6da9bdb71d49bd980d3c2611caa78e4e60c7b9d20ea3ee729fa1a89aa391e52217cf7407a02328e83ca8e7c71212da019a32e9d0125b6f283ae28426eeac2ab7499dd2552a6a562ee40222c0c96bd68758dcf5136f1d72cd9167766d5f3c721ccbb947419b9c70aaf4db64926f89634cba970ff50aa7500abe3188742d26fce748c965d04e48ed65707d581881eec6c09fc96df3920c9928a67b26970b0ff26f7ff126a028c9392e1a2deeac9043602860eb8db240bed2b48aafe86848040d89d3e6b5e454395f898c786eb7b90af90c6d4c3179411632f77ee4ad9827cfeb24bbfb8ecd16ef6af199c54717c10d69478fc994c31a78fa44849f7fafcfa8ca87249423784c93cde78ea2477e816eeaf8b9c8df2875a384ffe2afc9416863fd73d9b082332719147019ca5db68237ffc9f7ee83bea1e0b58787c601d390cefa640413e7ad55544ff22b7db87d3d0d3723ad368df0abf18859f44c3e510d379f53cc5c9dee73546a878fc9de55ade7a5d71fdbcb215ec5302ae9ed679ad8e3f53d2b9c58c5aceae45043a18a6c579c6dd02470915514c14ba9828de4ddf9fa64f2851ffecd387359b056e4ad868a5508007ba68299283983d1bf735bd2c0697d5e51c7cf71cb6bb1d0cdd884fde7171e1b21165e10d6f7d3d288bc958f802fe97074ef065e871c0732651f859b108ca61d4af81d750b54a92c03a9c85b2c44e8e674b48b65d30ec8551d218c77b32bcea09c9b2f9675ae5d472fd426b30b2fc8007be21fd117f871f894a353e2d18f1c2d685de03843f1b8705936632821700a670424e8858b6011f1cb2f5e4767cd17210ab63caa1541bcc0d894593e206574dbac6555115076c362693ce55958f0eb95378925401cafbb074ba31b49939839d093df33f7b04fd3b51ed8ce6f2cc198f73cf2fc775be32052d820f58ed9d09609cb2943c60ad8e0a40c5cf3e5c07aa3d1464f31ed8be1cc39b00d95c7808f2ddb00bdb1211041ff244f58a3ec1e53c81e4a60abb26ea7a0875811e8a83304accdc9c2024cf7651b845278634bc978ebe265c96b71bb5ef9e0f467daf39b8a548a59aede961b6e928ef39dc64597623477c512a184417841471b62d13d18295e569e08148661b53369ab57fdfd89ac3ad24734fc2e162246494417830040435c7f4df4db145661daa845fb0a66432f82a239502482228212ead033cc67385a1cf41a37915ff7877653f6c8825f57a9211fca03482744bad80699f6935cc977bdb4eaa60a82ba5ba31744c71f6dde22353fc7c49fb06e662307495852fc806680e07170f72e94bde206591adf9bcb984143dee9a29b99ebbc0b9cb2bb56ab0912f9b09cab195d8027ec7f0cebbc53e4e52d5eaf37909e998dc31e487640a912316d94788108192e74ddc013c2ca39d6295eb4d152acafebe5e2f79dc17082fcf25544a72a3075d755fe8e7b3a3699862b799a335f3a67855ea7853fed34a524adb709268beb64036ec6dc0c23a533235b7d4ce7b84c5206813ac34d806db9cce68a5bc7c966a83d6c8c9554c7040ac879dca9f84cd0afa6817addee815372b9862811a74b48d28a92516490b2037894671680de118cf7daa252597be3c3bdc687b4ec04c37e4ed25df74a008c9591e263cfaa896f60ac1e437518481bbb64104515cdab2e68c3c635e2369242411671e1f170f9cf64689b47aa3e669550884b54849ce89152211a209fae6930a6273e9764b8d5f33d8581946f960461f5cb4c87bda2466542491c544399d5caca9cb861033f040ac3321f8a56737f89d64220eb4347916f418dfd001c656da163a92b96df571147062999872e0aaf434a94b5c7888b2165806c26ee137363e0b91008819560da397e02d26f9315ec6e4c3e30c29839d191938e06ee35ac00a25231bbe0ccb0d2a10711e323423ff895928467a2c179386f774a041a706c69750f51b6b224b91d935b0a53094ae4471494e5b892b6d3af89d10407e3c6d0c90917e21619cc6d4563e6ff5f9579db14123599c1c5e109cbc33834f5f83439575198c24b9b77b903973226a47750571d50c97699ce7a7ac56bf7092411d657219ae21154d51995d8e3cec963c116c109a3171597843cf2dfc584a3328edd522256090433b9ae11a56fb0eb3dc888ed11161a77ea1c1df43192df3553828439193913de868dc3e8a05b4cf808e0914cc50fdf0e50a13bd67cc4e13583df665ee334cd4b1fa4e7ced058913fd9fb9a91d80395db42ee6f66b665a027924a2e9cb29e8dabeddfa943c32054206be704bf560a80c618993d124f0e77336805ab70e6d02e74c40af4aac5d3636b08100bb5cc01a1e7e1eda07e3a3cd4f660682c98949c3e9b41506f79fc997482adf0c684107cee865f0ab57596d3260f91190e854df744e019478c8cdb1ccbbf3b5744a64aeeaddea890a2cb57370bf5d1f81f33ca169e587b883dd50c02a169a414a7186c352abd976f3f5aa89c72fab51d795fdd732d576c0dcefa097143264aa5b485e67c079b6c85c06f7bcdfc61eef2a8d4e1c270c31b0b581eb4a240f1c764bd69f5034609f9441fb5bc91b97eee24ae030e138ecabce11bf16e325aea0113975a848b466a774be1178a3bb402939eda952e91c2bbd252a85cadee181084df9c72cac59b24e053eefe2f1ce9428a4ef58d2cbc0206d05e24138acb73ee4dcdeed9dedafb4f567b5b3e58df7b319fc2788247411feee814b9dfe300813a1d81237d91363784ac0f066c706fc5240b9c4cf61a211a6d5ef3b1f72457092203c7ddb1b353e65b8b9ef12181f2a0fe67a3d32cc6a4023796cf042c835d3dd5b693d7622027a15d4ff511d9d4e89fc5981d306eeb24ff34556c2aa1e4335d24ea2b247d23b5b1696c3d3b1813dddd7ff34a2834eb82aa3dcd0eb651c23664877901480c83621aef83bda4f364d7886319e3f495a894c757d415c7af77d7bafebbe9b14b25d4401361f10cdfa0edecda0ebec91c88b660c39d59c24fd6d1b8c6b1d3ae15cad0431752c125f66c8356dfaef56e677f45654c4fac47f570697a6d382e3180938484d2ea42b7e61f68c02c7a0e67977506f239be57e87afcad4f10e246646a0a3c933eecc22b3edc6e965e998a190b4ff0a4e520b1ca676330b75f41ed35f1da896b66c6d15a2c79a2d64a5949a908db4752697a8b940172e4bc281f376ae9f95dea3185565e46789c703cdf7f1a05ef721a35f3b75f3079bdac38804628d58cc108956d3b48327de36bd8d4866f8f5a42fa53b08b16fc1ce5eea361c8140c2414b4bb03df32755985d515aaf743dc06a42198d94682ee311d705d3e5456654ff18ef1c6d794ad8e9a227997c099a674da8eca92d956867206753ae70dfc538a380295940360098b8e55d12a1c0649225d0109060a207a3abf1898cb2027c59df62940216eb2c3b1f3ff49333b681681d1007e181f27ff2d782efb50143c87ff928a0c855783100ed94bee5ece6dc8834bcae4f2673c760be8ac17d9bfafc2049c39c8fe639675a24fc05f2ac20a022bf8c4f88ac41da49eae779461fc353e5bef773d3b673fabb7ceb03fbf48206f8e5541ae0b15f7ff6dec1baf4117ea8ea5a00eff037cef572df3da1d0698fef2a22099ac698773f738d33eb505bed5c43b179a13ddce290c8eb04233d57ca93d5c415cf0808b1bf70e1c5ce0ec7dbe6376fa1d3ffa0d813a2732baf4a2bebfc9b7105ef726d95f2cf35baa11186d5ca5fcfe405698010e2bafee7d296f89c23959f7702437604d198db24840aac7005bd24bfe7aefce17d2f47ff74a4f3ced4241b67db2b95388d7e98d73dbeb12525a354e8db3f9a679779bbd6ddfff794c0a183c01d5d82db71c0231ca516f1b7965957d363d9635b782dfe56bf13029854edcc485422b92adf2aa93e32a32d2ee616bd7c0cf865035fc1669e66c1b6164475bcd34b30f72b18384ce88953085bf6282589b6b12f2e9a677e838129d975df7070ca2ea5c0f1d1d49f4908068bf570dcc7b3538c583f788c85e72196d5609d8ed8011b15dcefb6182c1597fba241f1fbeb8c734cf84b5bd9ecd8e821397a77b036e12bbad65f5057ee4958619d48ab8d708839082c4784b6dc85838b369cfcc7a3d832047cb5074ad7cdefe7b0a191cc465c9604973e6725aefee39f22a93a5d8a279851622332b84bd875cf73ca3b38f4aede03dca69a7570c8dfc8f9ebe1cd2bf31d905f2f58eea32c5ce6620f0ffd131619b625b8b3c6673f1e99d70844dc19ad7fe10d572b8aac24d0b85e046ce4d0649dec9fdaa18187c980a17f7d10b8bdc927254dc4db9c258b63952a8de2726e4adf0bfb225bf4fdd86e77d7b1f044d1c67575c111c0e94546061bee75aed8c2407ef7efdeeb02a6beaf966a986505e5814e3c511f811332d29abbb89bfedeb5caf45db3313b71954cbcb4e4de88badddef07fa7f63bde8a8baffdf7a4c80ac60281da85c016a19148b22e9aae937b70be486eb2bf4b49dec9264ffe492bc4857920dd256f57c094ae5376fffc4cc2ab443afa27c5ad2732cad7e9872da16f1964b9a9592c314b4dc3bbc5306cc1ab6d6f9f93fb88310a7f6972a22d45860cbb1acb086aceff769ff6b3ec6abbe676e9fcf19feae8e6c232af2f79f0d1b11a39e73f75a6ff22922096d2bd8ec70c1d26a2db5ef4527c85aa27196bb5e8263f74233aacdc3abba59b4fcd7ca31b3eba82912653da097facbd0ef151c48a1d5ee2a7f684e3d759ae8e83a9b25411f25d2b51c81da579af77334a0598484ee6a60d8a1ee01328f690ad67b4f76e81b2c6a5e100f6209cdbab4a347724d3966a5c112b224fc9a2b9895df96c966404977d4734c88e596df1d83136c22bd75d4bfb229677cde82175323ac0c965cbc2b7c0bdf1034724703b2f8d328b7f2d8be0bc042fd686532ed166916084dcded5f9ad87903ff79842f938f6bf029092dd9a5c91b0c92e745c8b3ce6fd542afb37d72979bbe08c8f42c6817b33649025638a73377b36dfb8b852fe706d471723450410390812e82a4280311a7b5b17eb810bb47733a9cc11441598983894847ecb1456c5fddd1e4c4ca0e449c85b234b90dccd67b08b607380d02b7e6fa7add5ab82eaea6a345d1a793798700a31a293fd1dc9313a9972570d3796744b3fb3160ab844cd0cd41681d201546c39567a710aff3492182c6c3a54bd8280a1cc8dd40dffcc66855225b04841590e70da9b7a11199d5c713e191f45df4ede247f3fc532797d00a2bcb999b652019ad6decda65fbb56f47638cc0923b1647c79a7014229805fbbf188be75f62e23495df7c4d29ca9ddd4e6e54282600de57d165934ca4612d30aacd6633d064acbc746f88d3dc40ea60ad82c6c188cf171b7f8750a7f862ce036e73215313c824db582fa7f0bada67fb8d95fc7da4cdca935258e47a719342cd81e5e05558b113d28d8a0b7c522606492614597df6e3e6db5fb3ce82c88d18f630accd1efd7b2a228e0e794d78df9d2638a2e8cbfff50572a59ee381d61dfb398c3d77c0b5c6ddd32d00ad4112c5aa48822b7d9187be2eb3b8a35b22b7b4e8e0f3de622f71bb8f6b71447a127d9a9a0730a09e60a07eddbc30d20ed2dc52112b508f15bc76ae7d69bbb8876316769f729e3bce1bbc0076b4f272e259ca6e3e7486e3330d27e16b3b6ae49a92b870d24c50cb2a0d5180570a341db0817f0368eddd1f3e33316ff4156be2d4e7641deb6f3f477fd034050a33521e00ce15b65d45b6aa3a3492b71c1bc7b257f55fe1cf075b522ea77a3dbedb0e698115e9e0d3bfe47ce4637b95c9a9ae32120711eb319a202a5126779b23373e138ed99065369d4aa95f565909f7d9bd8a2f55623eb11e269099e8b5d7fa51032b658c1ae308f43a9ae79fd3a0928db6daa3ff467f68733e0242da1fd99fccd3c97d0a83cd23f81261f696ef146986b01df121e694101a7a09caeead56d2526ec0b36433214091b193326ed9ea965cf26e6580e9ed8dce45a5901aafd4bc449c3fc5f2dce8dcf6f2164e5eff5f7127f6142b8dfe05f30a2b1c1a7ab03fab098c0f956237cc6c031702d87b194beac69af3da312675e88310956ffbbda8ffd2b1033aa89d5787feafc0519b039d0be6de3aa740a4ae14bf0a5878929d6765d4b8ee526e3310508740cfb3d3108e8b0e0cf87d0909fb6c1d71ae5d34cb69bc9f819e53e5dc775ad7f07a594badc9fe60a41ca754f22c37bee07f676fcc4250f64b72e96445bb67910a1706d97b12c93a8c7e14d596a343bd32860741702458e7682ac828b82e12dfd4c76c95613930d6a53b8cda0b5913639b32ff6fe5fe9ce497195c44772c51972065aa74ba54596769d3bab7e40ed0863055d12151075b9aae61261336002046e66ed180db65febe362b9812e2eb877ada4e9be46dfbb319d1416542d736466470a8e79f7e3edbc3f6f983e5001fbaa048c2e947ea2e18ad82e87c1b7435b54224a7a62a8d1f60e0a77381769a4f46968ca35542fb3e9ca466d386977ecb07b7c3f96a783ea35db39c202586002626c7171396fcd7b09fd85de4664b7aae2d1a41b5bbc3037bad0b4a6f593032ff0d6c7d3a1e6511410e2690ad39de50ebdaa3eceea5d1942dbe3d7d2349b801f9b87a9131d01b9ee742677643b0c14bd1d27c1fb8144ee0b367df5676826ecf2faec6701aa3b8693dfe56a8e426b7abdfc24fa43c2eb2210a47ad0e4f453bfcac1c1e849b0c43c6e3aacb26acb1af05c1f1c87d88e366b595ee123e055eb5633ec2b25f57f97e5a9a254f0fe14d1759d169d5d6375d045a6be14189325da701c666dac34d2ff8f1dc71e7c26a002ab366b7a433dddb3709d50a1d2339b85b261268a1e8225e6c9488813df14293d592619fe54f476296e122530e51f8a5a23e30206b10d0fc72a60eb5959a85e36e7d0bcef8122a6ea065a9902d9d62b7db02dbf22ae7cdba0ca69b26d5c8c41fae5b1139a0d94dfcdc4ae046baac43e99a9b317d5f4f71874c7692b410f2c5578849cb2700fbe358976a5fd124bdc439a4295cbfd738ae42cc29e0834cc740caa1b8c1371f3848da4b0b129841e02e58213f9e651b2cf14ec5fce5371a2681cb0a3045ddcf95235aa49bac8547d46ceb199f4cfc34bf29bb0c9a1ceb6d3809e8f3c038571b57ed801dcbd6e8d35f083a1b304d82c69faba522b1252c057e02caba67eb1e18d0109a748879d590657ff972516546d506ce09b38e5fe91585662afc977f8d23f7ed919317230d9248e1cca181e7d37d5364c07a43951a4b430686d2d9ae1675897417d7c3fccf4b9de222e98429b3fe2f1d260a82369857ede7b09826c4becbd9546d4d7f9c46b6012f29715933d9af46c5a0882591adb7d6296f61a1196fa265f22b42fea2beeac8d9ec0e35080a79d8de919f2ef94d1ac959f736a9635269ebce28e379cf7f99f3a868abac7a308027e651bbf26b9eab839d7a18dd70dfb05f13aefe8f2775e3343282a36b675c35d2b561a304568d285db5dd7c1ec39eb8e9f819bfb4c88bdd59b49db58464fe57c144c5594866454aa850784e72b21974102159b71b9311ee45d30710396a9ad4068c1a5ba1692d0f042e2d907b9fbb57a709f860c3cafa837f2ff5f80cf8a86207490e0791eab92d6701a6ecaa628c76835f660d32106f0940b80d4fad14dd7a362594c2ae0b84210e22632fea6f79e8fb68c739265a4c13a71d80e036a860ce949711e29e4e33b04d16678164bc8d346eab54e5724b74f58990b7c0d1a0406238a34a857356df74ca29b32a8d4a00a3a1e2e1bf6212baf93133af9f272357a177cd67f9bade2e13677e83bed959e24e90da7df865d890e84c3f8426dfc6dc49d6f08795c52e0e04790414b44e2e1582849503ae2b521bf38eb43d29fadd00124fa11b309c1f087b37f751eaf8ed7589eea95532a9e3526ae05d94f8bf5e0562d95345b91ab5e7be72b3a89540202b7479e8f7c3fe214f05c7101569953fcb5cf8c7403eb6409c800a2e756fdd6a3eaf1f7d9004a7b5e6babea177017803e85323e2197907d8e0751b8ca589909ee74c219d4303574d7c676d65226b324921014a6b607fc6f5a00e180398eb9ba93deb0aa7b8e30de89088f5c9d6b0225f0ca473ff2c5305d7211ea8bd30e137fe57e071d61542ed51df93b5289f2fd760f00313135fc33d908225cfa97420340d63fe7446e4365949eeab1f4a3c57f8b07be4ace8d488cc72ffd5760bbfe05ac8bdcc43e79c1d29a1d369e73b7fec846a76ca1620266ca4739fab57767513c375c6ae4a5ddd7b3dfe587a34bc39ffd8882be5852f7cdfcb199927ea2ce21eeab5c56e41a968e0b173196d670b55fa546f8652388cadb39a35c0e713d3d4d064bdf63341a9075210691aa3d492eb42d31b33ece33fe651a1a7fc082c21295917c86a2962234eb01e87e7a5677d98065ef666ab4d88c113ba3c06456bbcc844110cdc4a32b5cd4f9e1c2279274259c01e6cb3548ac40ddbe95bd10c9838d72ed0d26ba466c32071d88a5e5d5fb63c81a901b7990442884c75f64d268dcc8df0f1616f23f71b29fc5711dacf8439dd7aa678f8da496825f01e31786f74c00cb4452e837a183c6d10ade6a96470aa06f135ea4df3445bc6117e110a7ed56b9f6d0f5e0a8545f3b924c68d306046d184b99e4249c003f589d3c78d0dcf37717c5184e0fe19439049daecc6f6de295b7e3e3843bf45daddd8ba4afb5d069fcc30a2563211d701789f498bc3d9c8a34b6287e0910fbb73225f208140867e1a10d272828dbb94c74f9f235c3e7e619c93b445a36b12d09799fd0266409cfa2096ac2f03b132c5f38dd6bf339f5e8a0be74794b114d4c66106f473f4de0fd26fbc2cf7539574636ff5d29054d54b1a35561d489baf949749d6fb798376e109c7639d0519899632fae0246e40f703e9b5ea7bb30d590beec5784b2f92262c0679748e4421d8bd8ff5ad780caa144aa74c4f073c17f5f741cd9c77e31931a919c4672e8aada81df2d823baf356223220fe7a04ba0dcac61653a77098f8c289988bddfb60fc10f0d948dd0dc6a3519cac1c5ea74932a599cbc83b2276ba085d529d89faa9bbfaa3de5aa427ff0d828f8d3f9918b496d179c2d6a6cec9b09cfc3b0376dac9c7408d722f2e5601148cbc70081e062d1a5036e535e23acfed8179905352664056e0f2a24dc618a5c3068e2fa579bff1f9b9752e2ea3d00f53124cb42a360a5ecf97fbc1709e5802676b87de4e4ff908a32409d1e6324bde4961fca3762c3d00a87b643f9569ba304c944fdd93114d35158159361e17157b64520b9e5c00faf3e9529241e4860505248725864f7d383117876749995d6a557a409ac03b0043e0a36855baeb9e7bcaf37cf620677047c50858dd3c763854637bd9f717dc48502141d86d526ead61e7fc39158b425b98bf693fad781d24630cdcbdd38ef09b0b6a740f64dd3cf87d268d57a9d5626d371cf002a1670498b2012d9e1702ea5c695300a6d0c5abf70add5f88e70499405250a2a172fd39f16a90268ff1abf46211bc116b5f833626a8e764f5773de9d282cbdb77d83fbfa1e991f32cb665e6d86c49187f9c029fd4d8bbe959c47d96ee5f25e74bbe3cdfcf85eeef331d879789b4b79e21c0ddc06a6d06437ce32f2ea04df4bb5e44b4342abc87749ec67b38a54d57882db043f0e6b65e27387aa5738eb694353cd69eb31033bc99ae106613c8ec931989bc01af1068af992e4e9291a0aa9eb3208e1661a051074184cad101e3b6068ba0c97886218572b299a33fa1a547f4b5d1fffeaa0d14e0dc8afa6fd0acf748906f99b7ac1b095406c00315587fa284ea886d8c17f5a58ada0f61b9b4bd2db21d1e90e333f0688c29784f2363800f245ef0a95c894807572b743f51188c64962e681eacb55d47e806132728e2d6baf65dbbf08f13f756cfd7b4f0db98ac7d5a45aaf3fac8ee4a40f7e471dc1f81e02443cae94c1117964f3045f58a3d29145deea168a1899795f443503d627f7a98160f0c4b0d2c951687c6c281110f6d89b31ed5ab5a0b096ffbb0624138e5c8fac985dce6e52a511c9c73c3636f7d417d55ed11f1dae535d45545ec53eb60dd8e2b1796cbc83fd097c84ec9ba2839b445a4a31f06bfd49fb63b0588f3ad44af4bed2625d2839360350686b0dd592941274817162df1bfbe2c9b8976afb102a38d808888a755ffc137fadbeab0838ccabf4b1f12122ee1448ee17272a8306e27c59c361a45472d4b1b38fad189b3a820c612acdbd9e2c821acabb70dd1a49e4b0dd57ba4c3304f9d410d07da3db946c6a1e652b5fe8e1b0f96f5841bc94dbc760b37c86112e3a89492e34c0a047f4c9518b7a20c998ed28da6be4dcde88b70383ffcf4dbad84f078843062d3fe83c446277a81d44cd837257301c2334f4487910374f23aabe0f27afec92906bfe03a3d51fd1f1563eac4cecdcfec3675defce330ee02d58335dec780ea9c79569154e3ab2fb596fc8c2338b154d84aaa7809a194bcbc02049ad19455f20cc683eef9f0b5ad021dc1df537517911928e07c55babe13c04f18a8aee920450d1c7d2440812091ed4ba44c9234d8314e96922fa46bf5cc32d8f63123684859870a21c7afeb47d59fbba7596f2944565c7f03c4fdf86e0d44881f375a5430cd7e571a12dc4a88514f2d8ea0797237cd931fa816a614601478fd474798a6891f25b715cacf7a11e8c43722f9c1139ea8588a0d6e2fd9e40d8514732f9c9b1155449e3f177f6f8e11d9c558d28d736d2452b3065c5e3f542a8709785612eb27f69dcf53dc70f671bca49b0445387329d392e9604131bc2b5ba63f7463406480c227818ce06874706b94cfb5619f3b874421e41e6402fcb6e77d3eb958612fa817440d41b526606f0b5f749cf49737ba68ad5a580b6a9a2832bc113ea83c59380d8b67970ff20a769ab209c9c068fe126f95fda80505ce2f7853f9de8e6d09a57cd66353112068d452de115454af2b86cc0eff8a9e17bf9271bbb6891820478c752a25df3c682efd9f2e63ef35eb47d2dd2e13cedab8a9245e4d21cf5bd7c6df26c4e0b210b35a4e35454aba064eef43666d20bb2e812dc11bcc0accb1021b48ba6bf4f2602ce2870d030b06bcda113c077c15c3945313e81e35113f188725a048ca6991782c416698a690578e3ee6b1044472f4462ef461b7e6f440448aabe0e2f0c1b8296d76ab6c6617714409b9a4ad0d804a9536ed7b8153797220528be52a45e429ffd604a7070130a4255e86e7b631c8e5022e1dbb913a32a008830f495858d9874a977304495bf2f23e5b9c6cc074efe254a5718eb4ac3066c30fca1ec6e36968141e2ac04e82ef54b870c59e00bb4b6e33d57d41b6c85fca46d151ac181e1417d9ed91e563e82456627bce8e384233c49e0486fd2930d86c24607c9a0e34da94d519b158e1293a71f859a99e5c794a8330ab027a6b99e29dbd45b35c73cce87d31ccc402602e416e0b4d5614cf1c70a4608379f8341132180c5ea90503bb5ab5c75aa1a974f21da5b9daed11d5ff9654b1c89e5886ce5479cda77b5d610d2ec8f0611b609613179ac7a7fabe736a64340f9fc1335e5c791c269a1a6fcf0fcc56d2f495a1341d5343f5b1206b9dc6009fe490fc45e36ce8b7edb1ef31595b3e39083add6981ed9a191a447f3937db584d627adeac35025aa472f4f8fa8bbc53932461cb80ac9d449678d0ce525871e5f0aa64ee20c075c644e76170301a4117294f639ca66387c73dda1a14a622e096ce948e1adcb943b6278551105729550c662bf838ece068074843f3120d0e9e902988782be5711303b878609dd2157f3963f0532930df1fd2e701cb66af8f360d7e84f0ac66500418a9357ce2779b70e5137deead31d5b819c03bf31da68cb6e0177826560e2c59958bc294ed65f0658750c95448e93cb93881504330c2bb4b8273073c09de527a22029f20582769931d259291834dd69dddcee9aac286636ddfdca6b81b78cd3a6eb42bcbf70634ac74258cba3656f85d5208d851bd31d9bd8883a28137a26d9114c5724a1e11bf53a85ad647d1d4810030f869cfda9a67279db0a597f2d662d3336aedb897dcbfce0f9090c5578af21cd61e30c98ce7510e53cb823d906402799f97928c2049dc48c5d839487c2bf71db3950d30d2f660a2ceb7d9f776ca904f9dcee65f9933036edd08afd80b509df06c0fb46c68c6bbdeeebcd590097b662a71e3e7e941afd3ff9be14ffee0e9deed9e4a68b2379f0c6119d9fd3415976c8a05b26754cdc33506c740983c3ebd842a15f6d2089c2c98a82f70600de187c1c229f49e01c18fede527a5d290791aa270c4ffc52b20bbfaf0bb612c9c4413f2bd19c7f69822e16e3a60541c37b8c4c0a5d1d13c7588725a139d2c38b7ebe562475d7e84d09e1ce5bfc0daed80e572bfd298a5df52a12ef0e4f090d97463f1e1d3fb69dde2b8594c83ddd3c221ce34f37adfbefa81225dd6a495b2db1f559828da2ca72018144d5af782a8f1080c09392a579f180cb593c6cf5b56492bccc87d0bdc871b13ac40619ba11d2457ac0ed0cc7f34870c97baa8f133ef666ae6da1a752f4547af4cd3013fb7acf1760435946bbb575406f5fee928ce8a74f1b910fb54e0489fed1d3fd2e1dc2c7111f9a3508b22a150c95f9d5f9b55573e0baf05203e4bef774ed69d3fff6b1d4718f257ebb8152fac45e716489a620e8a2a65d347c31d02324160fdea07024e7ab961de7ed578a25aa622657d09a14d49224c701727b9dececdede4c2db0d988e4192abed1f98a5dd61fe52d9b69fa21a141606817f416a7befc06334956586c77c03769bc94bea4b5c4c36f7d08f083333ceec20514ca1620f519a696cae87c74863281a91e5048864561db4f207c6aa1be89cab782b638aa1c99b94098fd901c1f90d1b64696d0dcc2808eaab1cffdb7e95c570d8fa7bf8be54fe973da9a196627d4f8a5f5bbac1f403bf66fc9e74a362f2846cc371498057e5a5de0b88e297e2878015c5ec80d0baa41864045819a53fc97a61cc4c7c7edbef1333df48cf7406ae10d659e68072e2de9ca04a810f43634b50d08ecd4832c6a56a6c2827f8ec1954e1d6fee1cb76edcfb6667fe2f237c7afa460191956540b9756fac3c9eb7c727e702cb62abe482a787f357d33432b64dd8a55c06b93dbb3b2154bd981f4a4cb356e3ef3bfa4874a125858834e030e8f1b1e8cfe9a222c305f40dba7894f4fff39df0f7c6b36a259773cff1c65a4a0b2b9df5f88b9cfd912e3f23ec054144c2b003a71fce55cac9f5b97c4debeea18bc76eb8d6e89a08f29e9767a09d04272d6e4f814a998ee96701f8549bf2322ac9fadd104e309b64c92fdff9a7cda2640af1b7f57e7e09945a5bd03c9f6295ae9a87c80ea7ded72e8b18e395d6607f94d7902f9066020db2d2d80fea5e4a7d93c6bae1b10e655841c1ade9f8877b1fe5475af829cf888cd754a9c868a6a670658a35560113629d198a6fc9e917c801a3c101aa912b958fb436cd3b3184d6f22b16882e972a6a6b361668632e66b39fccdfa51372119b108624dc0a9ccb1f0d99109c7aaa2c60f69b2cda9a595ab9a929f161a3e9ba5eb5a89e1b6cf79443b39a10ef8f3ad35def13a53f24e65cc1d04b78b03d0f86e5027977e55a5db8227687229de43c412c372dee97c583d98aae97ab9dae9475f6eebe585efeaf5872361c473b51967a4c37f58a06e2d5c2299ff4f5c91ed2af2af1fc3b7cc0ce5680c9c4f481c337e58f23e38ec16a230c939d0a743c36c9fd8df51cf05ccf2bd907c23591c7abedcf40a67324508fa1313975057c05d7194dcfd21f9bec0267cd15cf31fa4aaf50e7dab8810819c713aeb8daac12b19975310126a634dc607860fd6271024e69cdc353ab7f0e410e7583943d41728975da61eab56305e8b841875c9407ecff44e85af39b519ad96f3fb60265f58aa93ec034e6bfd0306e131477306b4bf037bab989bce1b0265f37b0d0c8290d7cdfe36f2b55d0b62755ecd22cfa0b41bcff761e8e652baec08763185e28dfa1205f96ee679d0889324274e4e5f272baf0ed3f3e90e0541e896134e271db3ccd7f4445422ebbf4d1ec1f520ba550b1eba15091db1574357c37c1ee751f21dc8359e616586a615263c6f49e9bb49adefad7274b558963e80f93002f91ffd999b8a0f8c98029aa6b5e8309163a1d0e30280ef0f162be2752fafc0c65f5b1b46f7afb7e284a1e57e79dba5fb3792e12e886b93c4e5b6737e419e3c5538b546a969e448ff6771ea2308458783a39fabc0fe4ba2275449b5fe19b4dabad3a0e0b03310ae40602a59dd8b31b6a5f97da672c64ec72830358aca47354dc28be885a9155103f5f484f2593c118488cb1e85363959ac495c1fee0acdfa665a4ad6f3c6d7ccc9b96215f5eb18135d87c26825ebd2f0450c702d0806e9a04e038d1f4308dcce931d7023bc83b2db0992a83cdc57c81e19841fb77672e53c45e4e914de14f6fc5472e44eddc0d3d961bc35530fdb691d8e8a6657ef1669150ae110132bc8ef8f4d4136fa44195834ca3a29fd591a457059a617dd7b47933a5e2e29160a2b77ebbf45398318716c00a238dc42b1f59017b31a2c654c9af4fd53597f71aa3bf169628c4018b7a99a05c809fe26653d528bc4916fd2fa1ca5c8536a826a3c80050b26a6ea34b05dfe99f2ab3b3fd03a502434da2d98271a72d7046aa9ec5f454fc73101cc7309e02478a012eb62c527b05fa00a85ed02ab779e268a4644dcdff08f07c6a949d49a914a28b786070df7e46c4dea3017b014d623d61232a8cb8396d72a3d346162ae055c47c948f0d1238caf43f2b584b8605a37821221fd8e96d3bf95954cac7a00ce39f8c8d368b695356d45795e5ed4ec8e19b8821d6097e7db2b77b9aa6fdfd8fcd379dbe9135e3a9e420fed845712e26e144710973fca799c492dbe473aac100e5643125c6996e41b488496939ccfd152e2510ad1614ed86e9a606ff8fe56b1b4551333de20a72371931fa1a0554f4514083a20c1ab4715b3ac1d6026d68ddccd5fd0a1fab215fc79835b45c304790d7eab96cae35c6550ac5e6d4c99e1048f8b0bd04da7d3857df921e0a4ceb440f4c68b308a92237214ebecb6b38bf61afda73b80745d2eedff4b66f57714dcf7647457304399c7840c4b85aeacc5c00f92d9c6a9cbf99a6a70bc61b6b2c2dd22cc8e890d0fbe9ff904b5033561c6a378d6d3321439dc9075a20b00c021c8717205181b2fe2944c4fdf7c8290e27107487de34831a35de7d8469ef9d110a4ccf8074ab17d06a74c42b2df9c13caf58ca763d4d06d6cf08b78a202021e226f30e09cd3c11141b0f8236b276b61afbe06eae33cd7704ee0727abc4375af99c5d4cd5a73c86562182817cd0667801ada83b26f6e974a6a05e85130a6b02d5c76fe5cce0396f5ea9ffcb7bcf81a84d9b1b2febafb1f214eebc4c05e7c5467597439a9ab3db59fc60fc6dbe5fd29d11d2a8ec1f9a6bb7377df03c0a71b545b7eafe0e3583c1e7281092f8d6c679e2972894388de375e00b01a2d6387c47957fea274af7d9834d73a698026dde49b5b514337dc2c9155d7a1e79e3882eb0bfb4afc83a4924efd7bf17b1a35938568aeda57049c68518707ec6fdee37f9b9be09bed22ed8e75e6056a2cef9d3f9b58761d247cf56ee95329c3eb3c53daa2084981dfa5a5f7976db405804a4ad3f9005967fde65baf19f0ea75176fcd0877c764c1daf56007352cef9057e4a9f1d351504f10e0420492c44d8621d69fba74eeb1c08f59e2b6db4d26ad09414a58a75f87b8678cb8f071067355db6a93ef6f3b01757931319bc98153b24e12f6bcca4a657f4a37c6be676e046b9839a4899c0873b2a8678d0331cd76dd0044dca33ae497d5f62fe7e71da691e1307dfb7aa49a32212a2f6c13496f05066a921543c72bf310752d9a0741f92ad0afd60f072ef2d7d741698ee825149bb38d8e6ef602e1bbb665ebde24c2a3f6c682bc7ff9a0ec35b15d9d0a0a95c5e9b9462d986370b23d3f824fb51ffec274fc047039206dbf3498f0cf0b4ed80c3d50c8abac0a50cd4e906630a4837ac570e0d0ac9f547cbc538c422b271108d9c73f37950d04088da372ef4044b8efaaebbfdb30e31e0a72e3991d3b1f064c723215a6ce24f2af619a18474267ebfb35ea9eff28e25bdc59e064fffed16fa8825fc3386be2dfc682767874c53a2a81371a0ce0748c5a7af7361e93b4b1ddbb985b2728fb5a89539cfab3dc892a63adf4267558d005794868339971a13a9a824b8f038ad9d5cdb7b8fc338de8cc8bb770098680abcca06ad97a87d2b70740c5e48207c2dce5ebca11a585c760f45fd9a2ec785bb481efde5eabcc763f486c94a5276af44a66a0e4ad85a98538d98668526fa80a3b2d111ecae13fdd111fe6a2507525257051e139961c7fe3e9d4ff824916d0a01ce6bc8a98743a17ba065d3422eeb7b0ad145b8a00636dfb57967a80ef0abb6bbb20e36a80e1766d65ea02ebba150bedf743ae54e483ed2277f3ebaf117f482383b1c78fd4f977a8e6a60088bcbb6fa91594c67105ea9dec4b114f456acef0f4b87eaaa004be6c032c92f89b6311601c272404fd7b47422f7351cd493acb90ca67988524d77e9f4eee2081c77e61915c3b5dcd17b67a4a9e6d51927fce7348c423992672c3bc40db3037ffe81145eb2809a84fd7ec9e55cd17f95a2867fb23eb3b1157a4d75226406da767d047afe29889fe5d60ee3013294c69a644b6de8c93d11879cd6f352674cfc6ee008e974f339c4b3aecbee1f087e5f097b7dfc37b9e14bc50836fc31eb6f61584595c6c7ca070f76c236d9d7d967a575d4c24c44c029972eb1ccc8e358c1e6feeefb8c08f66d0a637ae2c7142f1916993c18d0d849c1f1c42f7d035f4c53ca01c88247224c07404dd6748ec7f832d45246c1d11f8d4d9662c5664ec76848315c1cbe19f8d6b4c39fdb4c386940362538451ee828a3f68bfe5a98be976d54a47dcbb8b8d32a53a96a1624854d55bff4b4b8a488bf56621601b7535b9dd6298ff2744aee23cde08a7f7f5568c561b94dbccaa07291a89f43a8588da2c190acc29c61ca188b444a049e598b86119221e408c4d83ea541a7607cabb104a58d89f17b2ba4a83dac4937b0d775ba2437ec8fed97a5d9204ea281d4845c6509404234066631a4b0e4e84a179ed494368fc1c8b5e99501607a1efd6a1d9c9e0c4bd28710c9a12498bb3ee407718dd5251e932c962d3bcb5a0cb3ef01f98cfb32eed44b47a0a9d735a5f0b3f6a1c2f4aabf7dfe2cc7521e5c5360b5176e98bd41f876c33681247ff7e0dbe9140edc9c5add07a49247173508e81f75abbf6398e94a9198e389d87065230abadcbf3d2c78728e29fa2c2821b376b19311fb89374139ff56f3a90c15611fbfdfad85f73598c79ebae1c52045070ead3cd80b8fb40f4ba3ed64b8b26bb388fd167a0f110013100e29d319a9d8fb2b49dfbbb71620e72e9430d9577c84eb695b9f816536064753db6db4f985671b0310afab744e010fe59a596beb4f068de75ec01fca7075ab4b4b20a899ef501ab2f422de4aa5ce3e6d8283191e39aa8ecae543a75848b2b22539007e564047bd67d675f53461752881b82fbdbe1ebd286c4bf34ef322d17c484a6eb388dfd50fad842534b05dd6d22566c093f23da2f3dc19222e52f51f5a928ef2038726d4ea4fc577c16e4346c41d76ff5600a94d56611426494563991db319b5893ae0f4caa7b1f1fd5dd50dfd85f697e535cec9449d52d7ad7b3c723f8e4d056ee6ed3af72efedfe77283e8c127e29a7baa59b44e09f513a061db91cfcee0d529058e7cf7a964cf8fee4f873649a5fa7adf9abefd8ab43bd6e74b103817283a565dbce65a5776159d0c3810c806a111c481f52e844a30b3c54548becf76cbef0cb02477cee19048e24dbd9a677f871a9ecdca5cbb1f6665ff080a9e3c0fddd2d8a22b84830e8ec301d1e0b3945daab52f57b7387230333f9c03a666a613396436c7a335e6610b25226bdedb37873c678739f7c20b9a13b0b9eb2901b98b324da4e1de03a434d4d1b27239074dfe161734ee408f6d40992f06befa0e7784d3d643d2ed4102f30d6f406e391f5e3cc8936d4f6d4b3e1c3bb45d35035edc98626e09c10b90848043695919c980cd929409cd86d13174a22f3d76e9197950fc72267d6f6368e3f9516f8271c67af059958e95ea4595331ffe4b9ce6a61ae9707f340bd29796524f86f33abd36d2f9f8539a8c0b735bfd1d54627fd0f8af7cd3f374e452bbb81771f0ae11bf7d42b410158a6275247d2d39758d0ee2e9da842794e26e60abc370080e19c986abf50c53871dabe30e88c9ea4cd7645c6df2d04c63214629187ecaf673f58b92300b6ed1b0f865edad1f9f38c3d2c5365e8308c986f7cba7da0447150bc43132cc1be9cbc42217699b77b2557614aa2170cafd4e28cf485f9d4694eec94d935e55ac314b03886f0b09dafc9264b6db2e7439d0ed00359c6c4687126d921cef7612ba670fe37a8502d3247b3963d4a2b03af9de110d5e7dcc03de4ab7ffff5d96b038b29d8d2c9d8ff8498c27780f02223c638bc1e39d4bf954b7b5b47d8a57738f88a976243681e125cd9f4b4d0e032adb86cbbf4eef6e42ef52d1f4f89446fb020492bf5d156bb1604a3456fef8120c82a58c7e0c70487fe44388f2d2b82d1c607966e8c5a87b64d7ee253d72fb6e1716b6e50a18e4b2ff05f0e7ed8bd55b6e26a7b2185bb3c3b348fa4c6a4bc9a0e73be3195d6e2f13dc171627d6c08e30b05cc23d6d465fdc1c78446caf3a160b88af0d6bb60bddf8060b45fcfdb0cbf04542f484502eb80f9da9b66f592a1b86cc8344bcf6c69b4ec21e5f44947c36ab2fccd90578fc2e11792dccfafc47160c7174500414c4bc1a5a7c1df91ab2bf2c2700015950f91546139b1a47d66cc875d2962c901d72b5cf469a8a77568e1905d824711ce2cd259e1278c452d6c5f546529d8515756ca02c197686166f873a9b63ea22ae7954fafb5baf055fb7e5e78ab7913f952722bdadd17e440d3f59df51a32281b69b1f952da069a8beb29cecc01e63f00d90d9ed8c85dbcca906ce06bcda5ced821046d974808f92f4b10ad4d84ae463fead81365273947ad700ec72e1cbbc3d3010520fa08b7b36221562743f69df17b8d9c542f4e8067df591052a935fb137a5d92862b295281fc668ba25fb9ab4be81c003df889df659fd0a67facf53c31a5d3e5f641c2c776acaa42345d8d490be89d2168085608165f93a02f038a2901502edb6878428fb49e3cee3b4a5e8aab3a88c67ba8f40344ecb4885e095902dcdd7846fa51fa420813d1a6a5981c91cebf34750c8dd8b8392428fbfe1699d90dbf5bbad7999cd5dec7cde0b9b345ddfe81f79b408274cf106837514ce97ba624c52227a248d6395f80a0011e9a06c27e2b2899a7c24204051bb7d01c61688891f9c4bc0a98dd5c327b5a3ee323c85e24307b5b34aa1942a6e2b046aadb68005cbe5694670be4d8f8d9b47d06d9ddd5a291e93003c1b5f392e7b6870a9f44a4ab61fa3ccc7fb2459556f9bb813198f19e7413b2c41f31b7db4609b21a5df9f0bbf62ab625c9383fd3c01b294a06db6f6847828cbea2d7222f7964a1dd10c7a95b50a6e89c48c30841420669516804de73ac64966eec3be11432425b2209c7e2adda0cfe5f881d1a343c70c047928d080f83fe81da682a90db8f0f19ac84cd28f7096d220d3071d1f419dce90530efe5ae1ed4cbb917c450ecaac72a6c6a1cce11acfa81095a6c1b11ec242ca32954b70cb7d503bd2099fe8bf074d1957163b097dfb7b6d63620379f9ed240726d9d35dc1c53e37ad58d9ac34367486806226adacc3f623c4d351828adf408c44bbddeb8216b8140e8e3d8799c8cc2f88cf4b49b0c1d8ce25d05870991aed2125fe4598ff5d7a900176dd5ab0d104be799cbc25064c1f0056a24df584f6ae9d677260f4e0193c0b3bc4abbe125dda43a27255481f108dc90cd37a37befce11d2b332288001a03fb90e42b80aa354a0e17eaff1cdf7c9a635d814c134a977cd695f2a694ed12a1067a5b1b5137fc60b82f1ef07d1ffd18e9464b5f94440f4c57505663806900409c99b6b6cfcf8da856055250f92c0213dd28c653ed58db4125076496efec5728472d0d7cab57ba6b53f9a40cae45deb297478768ac493eac59edfdcb8b1f0b2ba49e108d420b4b4ac22cd7b0dd206f3ac64abc1ce96c3574bb366f8245625a5997f5ac12b6fd58d786071e8a5d659855e1be535dad2ab7ba6f9c08456b4777f4506039441e8df33ba7b4087f65328e51dc93b5feea81416ff0dbcccd4914f7bec2b238f438f6161889a3744fd795ef02579d0b85e484b8b970342d002946151a62e0a9c4a7c1f21ba407922efd15b1644b141a7d0ed7945138eed5ce6109c6987685e864955080136b57f8e8ea2ad7398714a8e71433621cc8d08a5ef9c098f2bf5f1d7b6355695ec9cdca0821c0003c411e7879dee88dadcba913f8a5836a80f1d03e1bd5573e0e98eaeca9cdb9c1a0c096d0b11d568581f4c9389b629ce8ac5c5da1ed0334fd24dbf046f00a68cdff5c4394093e73240edd85cf44be09e30227331867509ae7ad6c671a52c716f1e313d1eabc41487402fbb6d639e4fe6ec3939da5b4678ca9aaf89966289880de90905279f17274b94f793aa3e9f260d92d3c8fbb3c6ce3cf0ed2155d379357c6c7c9b92a3ba1a7d2d58b721c39974a69e38c1e0cd847ca8e43362fe62070bfc294485e88c10228e7cc6fc308490a8cf2108206ea233142d8ed097f35f39ed0116fc27da287b6506546d5156a098027384867233990779cc2f0f65e6e45b5182036f0b68898530d515fdf57ea2bcdd21e3353f8ee0abc013fe6186c58948f1863d5728e521ae760e2fd41f957478b78af8a322b236bd6ed1f88120d24d1c8c2039925edb78941df73344570323e4ab8e9fb7806b0fdc9b06fc37be63e54b602597d759f39a07934c1a39fb5463a6e6466e4f9f862d555ec1670156538a6ea32320334d3d9a6199b75762ac65bcf3102ca10fe12bdc0df1ad3e61437b6d05da3f152e39f643782680ad06a24ef16e44e07e7668b4307b3057def26d07829be1b77b8a87948aeab7ff5c8cd5401d7e2b671a6923d6050ce4c9fc17ee66fc91852dac1e9bffece95da27523d5ef20501dc9fa7c025d255c6e45c1163f6de21fd74f58a1731045d6307dc9965516e3d02181ec6e7e6ad439595a76230be91617ba2bfff527161ab55a7b4cb9bbd69ee93f4f05d4c47eee78878c61cb5c1209ce170771f648ac3649af12a46d8372e68b5aee786a6b09413e47f2c1821c745e5e7689d8af566240e242c4d9f9fd97604d0b9be7754b159cf31ed9ea07f5a40d20f86bee5245703069438cd1207bf9c0ad93c123be87ced45bbdaab25d8494a1358bb0edb3f8f2d0293065f333a8ad31bb79120205b66c8850bb070139f281c17096bd3c4f4a7164ed31b67f908e1753acdc75c91546a8b7ceeb1b08d15cf81ea4bee9d4a551cc14b5e12f9880eec61befd21d13a3da6f0cde26e3b0794d7fec57012567bc8cd36f9bc172649f2d765c8af9551aa4adb4b688851a3ef802083fb4697142e717f917c016c9b261e55bc06624e7ed34af19af82f1444f1e14e2f36acb2cdb39c5993f8b5e7901b061a99dc1d2b9621ba7126a0514899790b47293e858bcb238568cf2b3b720757c660c53eae3d19019a09b28d5bd0e485efb680b2a6bff8cc111c629c2f8b579d6e634cd7d54d3b0b910c3d5cfb6325eef18c236bd0defa9547c939520ec10fbccae53742e053263d19ef5259bf0d5da8f579e274c2ee1c56ca27ef61523d232bd9ab5c75d2000de5e3cdeb14afae27be8b7785d99ee6097127d32dca123668356afd36a52e350d2f26e4dcdc4479a1eec940f0a53f34573fa1ccac65387c6642932ad738b88ae27b3416d90504779d3654d356e0e438df0ddaf6b6f325ee751bbb02de9ee4c868ebad690124c2022cb991f38160a2c6ebbd0c9a4379e8042d46055a8915ae6feec47c8705959b4a71c2daa723bc41a8305078e49e7ccc461fcecb8cd0b74d3157a71b3fd4fd75d3cbdeaabc3bb9e01a96e44264a2dd82d2eb17a8f49061fa750eabe202dc9de5f54a40873e8cf8704cd3f85f8e7d4cd6da9b974474ca3c2ad5c9df9a67db99445b75ec56031eca61e4d8eff43a0ea150245184d2f1eb09fda01bd039a741a0cd855f6c5f20d55d29790b2c4e24c994158844e387d32f756559d5f471211f89954612f9f57115c216194e46b66d32a1a6761484fb89080b60363a42b8d8a5d35146415e3a167762d2c4dc2b6818e6043a6d63c88d039d9d06a201397af03923f480510ddef08af836eef62c648e3031cd85c6504e36552d97bb29258334121e45c5af1a0f28af20b9015a46271b372221e603e9f79c76a695d49974fa93684fd338771f1ca9f30468d98b2f236eb0635d4fa14dadb1d00508f4944ff89e3aefbcd167394ba10ed0ad46f5f75c1d2dc42c90c2a41a7779b66c56fcdc680c9ab115da2ca3ab0461da5a8dcc3cc71ff0f8c41058c480f3993a73e761dcd9378dffeb75f39e5e090bc332e7cf41c45057b470479d9ff8ad4a71afccea7fd99d7f3b3b1351adf1ab10e72601d076bbf0d3f0e145e775ee34800b78d901b0c05f42f36afe794ae9298ee8a57b0a34d5247372c82ac39c6d980702e11ada221ec59c2155d0c7ab8886fc37ec6954b7be74f6c0e6ab64ff56ee921e4b4ec1f17ab76ce12ffa8f37380986d10dd514accf4b7c1c269464ad05d0d5e951674296dc465734213e4ab1a9be6aa0853a0fc8097bb82ef840cf1236dab190f90b18793b2109bfb5360754fef4743a730bfe4632b6bc7aab2383b33d2e7392de16ef7c2020079dedcb3655c0be7de5532afd4eb41651cd3541df83c2f11c4ad116f92ebfbd0eae14bebe8976720119f071c4871295dc2f5eb4c1382accc5a4b7cd4e872d9606ff25226127f62cc4ed6a2db26e6d96dd1f1e29d628eb6b0497c7b32263cded7e300cdf72dc5b4c862ddd9da5310b5af20c88633499c1016c232d72c3229728c2fcaa31e2b7c2f4c8f4a978a91add8c715f7fb74e8f8dc31804f7686e15b851753f40288d9b648ba218c7646ed6b5b69289148f308246684c49b528f29ce296c8205526e832cd3ca3c28780951f43c926e565e80c8503b01a7f8df92033c1ca37462a64f4a72d78c9f413dbca98e499e05f7cd31cc58fda252ca85513bb38e3da2a446c8690ac7086e79bfaafdf285f2d38b9f7cd74642b6bbbc36c3ac8897a46017fa0dccdc29cd2738256962211359d4c100d417e2a6e1f23699f42c5eb4efcc0dbb28558533652fb2ddb09c33a9ddbbf78631897176f9bdab605c624f0c16b410a2a973231bf8980eb6b2bcfb5fb37f3b35a968f937f58f1f6e9ce05d75982848ee433fa337a22e15359db5b9e16be19c9e80bf793f3fc583d492af60140cc92418f62d6d0ec3e64efefb309869bdee55917976f05a578b41b598abcdcc5248bd82f34b86a62df0e68e8d33e5a9aa7134384314b6b71313e10fe7854e7d9f6c70e9b3a2a326b567077f678dfba078dd1d1e10e4c97b93f97b5541a8607930d3c0aff4e287a5acdd8e03d6a8fa43ac14935734ba2fce2ba91e129bfc3ebadf468935ca8b9dcc5d82b35d632c6e8701dceb994ea80aad51548d17f47371404e990c403424767091dc1d14d2c402d489a68c93225e46b7f8b13390e55290a1b5906e61e92e84bc3020588245996134658d2a34e0863e3519b338fbf4d2c6999f5ba4727902042587bcb9f4e0f07b95338133e7f6326bbc0953830322eb5a0c651700a6f0bc5d66ed58672b472b9f53b044cc06d075f2ac638830c392c0cc012142cf599510a6871a1d4b1b4bf05a22d276da65654d5225f5c6b665b29bf318fb6d1a51c25ed6f0fa612889c658caf3ff6db9e8b186c720eafdfc852f5ff0672d703a6c403750cbce4ed2534f12513e88848e0f4beb005558290c68d6098569619af2f31bd886a2fae1dfc31c7f553842136d688cdd24140a7f741af1e5e3ef894e0b656594fd5e3c6bcd4c3ae2913d425f8b1d6b39c1ddb5acff60e7950493cd7c9a0fb4e57b1979bf23b082c30077ba725a480e9473ab742cabd35d1c957267414ea3c0afe97cf85de2b96aa6fb4827cc540ba5c46be69799e8b62f36eaa2226e7e009c3d11c5020f7bbf577c8a4d4e7b4d6cf305b1d0babb57c0839c65bbe7e3e81a4a3e783a7ab4fa8228e6bfec3d10a519ccc9c4aba4114574e7ba0672a277b74253f60d5a38275e10e2ed0218190798f14393a0a16a249cc8fd5bd5abfb0472ff9579447d79ed7f91d4ad265a840f100bacf1d3ac5777b6dd93758e875f5372b5ff6a3ee192dea31a8c04320b3ad04b22a39c7f1f011deb36ec97dee6b08c4c3eace61fd063278187b667ae882cad2ee90bbf64ac3cf2bb8451b65e563b680d002f9d4a87b3ed53057e1a468dab9760e2fd9037ef29ced33892a25514396b7b062f5caec1d34e1d47152f021e36640fcdb3ef9bd2f7ea62f19337b9095a9c01e9b043405d3191095f1d0c83ea8ad37997f02d0e9b52d34510752884e078dbfcb90cd436d4600e8ac75b4beed9a13ac1e993164b9c0c7f61519f8b0f0ec38a676f853909a68f6a6be8bafdac60e10d340b9affc85128791644b2c0895ba519febe03ea977ea0d03ed3aba6a6cbae4b6ee0565802f709156ca4b9ef0988a08421b266fe1d6c46f36967acc91ef3c06f832b8bcb2e823d4af68fc88dd2a9b8b3143ffe544b3b180c967b7682480931423e79f7311e678f0160ff4645d1dd0060af472fbf41ab015cd3e52f69b96a4639da19ab62d0440386e3efd6ad80c2d34bd9adae4640b84b8764c20ec2a16b6136a8421919a7b51baccda97e6acec5d7cc015678b305d35fc5043e9ca3bdcf6b94959bcabcaa1035f0f217558933b2fa7aec89eb2871a8de171e5eae7e4d1f498f6b58a5a7787b314c10dfc687472141c3f93d56e67409c4b692854071bdb24697fb9bbfb6afe430c2cc3c7aa1abca3b2b40ab8eb1bf83584d947cac6acee5fb1025216a6c8319805a6a4252d6aa716132657c782c4cb6fd0eb8be7d750395faf4ce074272b851bac69cd99de0751caa64120d521d4352415133db60a516d46d0197d435335e039038f4159bf9a74c3186f078a01c830758bce3a38289c4718b9ff1904a16de5e3e2f4b7d1e310f125667047e2ab8e1944855eefe29c48e23cdf3e36cc1a7fd40f842d241d47928ebc7ee433ad52594cb8419de61cf3d1a3ffb0fee5c79b3901351dc037926d0b4075754d7d0d76d160bdd16d22c31d9b79104eb678b15eebd9d28e51ea35d779ade3407c50fadaeccf810c7363a7927f9305d0c3215bdced70e81f86b84242648fbb0b84a2c1d1d91af89300010e357d05d52274a42cfa7f5e7c4aaeb1a7bd28475815973c81ccbd3f5ae977972f10c18b5d6dfd2a9d8847991798909c868b0a2b38226f65ad454066a09183c8b8e1a02cdb092e1ebc111495468ee273b7d329307c7c23588df61b330a4ae28449744b9b760ed209aaf7bc901aab423b4326cff76c848e12bc5d301f9b4cb4dbf7c9390db46511581de3347da971c5b5eacdb4c8f1d0a467ab95cd839ba47c17ca16abab017748f4df812c518b8667d79ef237a81ae05fac1d7b34cb149348053f8bb5e92f5f1db44d95deed5ddcf6e2068c9b9a98571ec8a92385595603af9ec6eeb5cef1b8d3bbd850dff241f04406fc23c70c41d59beb3ca4954f740f9af3440a28b45ef520f1870809005c16b4ee0f692b8d904fe2b394276b3ec5940c1d93e2310d744403f6742fe0ed57d671400291b6442306d708c6544f3f63d85536fec26b8d930d5d134aa60876df57f0124b8b02143c024599b805bca9af3b65d6c617af6bfef756f1ce59a69e26df7095950327d441278770a74d97cdcb0030479f18f68c5e83caf95331c3fc5f59b1c63e34d9fd3dd333c4a3cf79ad1e1f5bc53343961a3e3037c7444d148b45f90ebbda88c3e45c0f6cc20e65f9b1d4279b669ea55f66903804119e95b86395e3af44ae103fc87250b0db211432b45c3a7ce1f0f86a0626d8101c7298ca248feb85f135c1d83575c75cbd6756078be8088455ae8ba0c13a25d5d468b8df28795f3c3b9f884c9dff412ff440afd77bf0ecdf5e52fc413de678955e37abce051ce562754d30e080cd9a78f860929c8caf0b1135c6c3005bad676a112e4857f54566677e560f486042badb374d9ab0baa58a4850ed8f6bdef1491f97afa685e4450d3178068d7f57e526bc8ae40eb68613d465151b6ebc3f7a542915ae8ceae772516ed55a733f6ede25be65d4bb571b82ebc85497c55189f5403918362d03bca413e8d88411fcbf7d6bfa012117de913cd26afc20225cbc72862944e4366acab9ca6b3c6d2e95f7b45bc7a8a3b7d27cd1fbed3965ce8a80e6214ba16a32ace511c01e152ecb211598da394a841b2cee94d2986d8c3ec1d1a7ee52be0d31d98e125c4c3396b58117e3acbf87c6bebba31c4c6cbbac4a1ff6f38e69c428cb2d21a582012ca8ea9eee75687566bb81d8e1c48dc8bb5239e64569e41f09a76e6db1b7ff06f319c9880ecff419ef8b5f7fc92aa151c9009a04368d184aa08dfdc7c7b9030d6cd613d316969bc11bb17464a4b33806aea9ef52a5493503ee6ebc645c21b019a27cc4e24416a9aa957e55aeb60684bafd372bcba3674d5b3ff590eca7e7b38c64dead12d3bc9cd5ef95b455a38d14694006f644ca183572fe6090ad6a09f849e183eed9f99be9423d6d596355f7d10b2b66cc80c070ca002dffdd3146075cdd7326335e03e846f81bd36686adb9feee891ce88bbee7cd926eb8d963a66782a94934c91bc57e902f9065f1bce8884cb02be1fac6add94af311869e998032ad73ab51818dde5b37515517e608d2e0005c10e2b8190d07908d37f5d021e075aadeb4d361fe4e21429c9cb2406b5680295a5c3e331de314b8c468a8bd2bd1c1d0a6024529ef4f96dd9d8b50929fffece01d138c0247d809c283b2d4c724bcac0bb168e6a0b9e4247dda2ee2d7512feaa2c86952415f0ad239889bc227e5ac4ef83e1128bf5b3b5a8b4affaaa0c8b105b133968f56cb49bf70291d51f94552c511da7e319a94cd69aa8c8bc1843d640e87115b3290773804469e1b719afabbb1edc7ca5d2abd2ca784ef4f92eb5d38955f1936a08d6931397f03b9a959c7fdb8881922badc0686102db54a5d22aed374c86e01327a45f7dab0a44491746fe803a3a7f38af50938c00f3264b5c2c8664547b70db41750e7c8b649765966f4f9c02c8e79c5c2cd457a72a9540369b41de70d9036e898b7d5c6bc8a1b418600809ec2f848949eb40e2485094c00bbc9b7fdbe5537014c2dc7fdd66c5b1ff696a8543a525bd7c1f5754902e9413fbee36a6e42709228151a73782ac93adce062e61a3f2994a0e68e8f955f687ea17ed432e6a994b1fbb8f7d8a9a5401af708409f2dfe5b1fb6bad7fb5d8ed89ede0458135425af8109f7983ae248be7c00a7d69450e35c2313222156154c4913039dff9f6a0767b157746a7cddfec9831e9864d84665a22b66490a7ed70261d4ee6ccf5221da6ee5de75f64335052e358adc0d6459e2935f9288750ee33920dbd45a88d7328312aa0a6b352ceae4b0cb12664ea5d68c85122d154708199672b6bc43d8769d78b5a53c48750ee1fae50a9736675d8f67957902855792806aaf740282ea392605339449b1e1ad629056cc8fcee03d57527b5c902044b3c3d86bf9d5c31234d39c52dffaf3f60a988385c283eb7c9089269e6688050715af8140c2b8318c9d6f41c23c8ad2694315808fbc9296310b82e3ff5552198135b7c5640f05e5860f0bf748962b1e4e2a4bc7698bed8207aa22ebd2a589cb5fe27095415f65aefd3e774823a5812186b31389010859bcf509504eca7a7ba8088215d25d2e592c0e09cddbbb1525dbc4e42accbd9fb0a5144973297787aabb7476043e46f7b531cd80e71632bd2308ad3dafe6253b6047c2e1f91045574dc225da3efd52801f7cd1f3e4d360667cfed66fa786ae48eaed914fd38de7eecf2d9ff2eba56c9f94baee87a7255700a557c7ce794aef336418218ef7a94af94ff60cf7d4e032bee4e3da29582c7584066b201773e9c297f8b62babdd8c58c81f3d0235e799269331ddb701e1f99ebe7d98980b43ec130863b979b60328264946bf7930b7c0b9b67470bb877186373ed8627fed7ef5576677ed7f5369f358abfe178217fa9866f5f8926fa0fdb4d51a5e5adb051c9afb51992dce1116bad7e336d33fc5099b3082ddfb44ddba67e5e347d76a4bfac9406c43dfa47a9176186310502f9b63e43077960a721ba5a4a6063f8411b157c851d583c14b73683f9d4f6473d0aa2a3810646bfd5740fbc93c32e7b87ccf57b48a7e7a0b042dad4372553c2a2605a48f9004f877e8bfc1d2bfc554a4086c83a13bacdfdaaf5c73d7bea356bcb388bb3a889bac59c5ee3dab81208e4730d6474065477af288dd5690bb01a5eee1317e90f0d84be414df7a95f9c0134012347316326ea9c88033f0719ffcd0f5f5c49e2feaa36d3244acc99d077b5162d49dbb472e08dee5239b652a5610b23804a4f2ced89bfdfd31a73b1f82b22f24f05637ee7f011e931a76d85e1155d8e288c6f39df8a5bab67bc927583f7385d7b18be302a23683d8a0ecf30707ac0647901340350f67b9e8e633aa0e0d749fb474b820d66308bccb8f8d64deee9db31199d21c171a1be1f220412245488ebeb4654731182f06882ed28f5ad7101e884b9a82ebbf1cd76d0d4fe3b3fe06f8973cd700bf71d61a3e5d5e190cb1f62ce42bd729b94670e36ea02898c213069bd2966fa156ac6e2e498d0f99328f12e65bbb6a1cb28d368747ea953c7c16cd368c3ebc48e66af43da45bf8d18aa7ecdb3246b54aab02d34f2ff60c6e5047ba98d5f9f3794272c07f62ab08b054fea9c6e59e156498ef8a99b2e226f57199e81833c4f117a4810c4a28d4205fd732fe70a230987d145bafe0317827ea55c721b71e89b21c27bb0a17b120ec66da5bda7fcbe18577dc78f22c5d0f71e138774ea781aedfcb4c9c5130499d1cbf2bf46a2978c6fc0f54aacabac0c71e739a6f16d93f6f30c776869e415336e2e81cd73630f3a2fc6b000f05e1340e3fdebddba20aac05acba6ed73051c426b71b004d717f3a3e91e30ca5e9126973685d28a0b44210a6164edf913f62a5b6db7cb327d19580840409c5f992c964d2a2ff26bf8022284913a8db954b5494491b2a10ef7e84ac7942361e6a5b11fac6de7d48cd045ca546c4165469506843bdb499781deca7d8fbd8662cf3817259747592df75c5bdaabff460a4901533f8178072516ca568d3553dc8aa9268ee809b6acd830f29b152d914da067722aa0c87ab8885307242a0a1413576370ed5c2016bbd8f40e0bc27c792921ae716676cada91cffc65208f5fae3c41242a6484827c18aa2b30e99aca55ae565136a331b422bd3321130dcbd81e1af24956f5f8b4dbace1fdc25a7d5248732ce2ed26caefe3d1e91014e99962cb713f6352df6ddcd3587aecaa32b8a028dce2395d6d8ceddeaf81838d380546bfa84f67ce26fe1bf5883b911287c28556b0c92834e0cbaa9ede7c2aef7cf7c9933f637d6b4d10ff09f8bf0b99070ffa5aad03061cea1c2da5f2b1076ac87ca40a433ef1115e43226cad4c54611cad5db344a76974518cdc570ee8981ce15ab2ba317f7449244e9bb5402f1ca75ef61f54f45befa4e59d41a850b348436c0c44778a64e39f89d2983841aed0c0452d193450ccac2f59465b357ac1fdd37aa6958e273976e9b8eb9fc34537abbac0a455581f03e13f15621b1f5a6dc93600d2679b00f96aaf41eb4dee78b19b27ec351ff2f66211498773decaff9ff648cc63a7019bab619ee0c0bebce9e944d8ecd7f79a913609a10d105b25b31a1de9ca817d1ba4b86ff839a0116ca6f73d0c257cb972f554b607a6f55d37cd6e08c681ee4ee691037f79a00adfc93c588d73b1725b5cb7c16ce18491e0333375c36b385fb9e404f20c42d217bab968664de4056f21d55855952bd69e7840405bc2841556bcb8f5d3bb23496abb422e8dfd3ec4a8c4aea06914af4e2492be0462795579077d5a165a586e8c4d196027c94be07cbbde966fa9d7bb6c072a6f010ccfc3b4214c8767d2100432f5373a4cd6271c0ee48bba040411aa1b8a3221b4d5aad84bc6f5ae44496e7ded7ee14546dec4f38f8603a75f1a663f647b23643a0884d4c1b65c2c3058cb0992e32463fdd1a2313e22f18f22dd8c5e87a8922ae218e799a220a57173cb4a998a601783ed196fd7c4b518622904798f2a5a55d1f2baa6f93e02303527f5dbd93c814b89b975030581456514b5a47643cf0987588019dcc40a0ab872a01ffc1874e76f7514efb4e85e043cb9f3690bd53ac873c66772b5805a1528ea439b45a329807a17ebd8d4477e51186b9afbeaab422ac4725f39fe10db7f98b39e3ba67f991fa7fff4cc37785d92dde5c89d29de79fd5bd2775442c517137734b1df20620fa57f676909affad98f75454c8affc354ee3754652edebf0a1d7364b6664246bca7a833052d7e7b91643bb6c879e3937a14c65e7586ed10d2e581c3d22b99a976e929a9fda8185f582db2bdcaeca7bb8df9a5e030020a760da6cde848dbfe3435a23c9726f61dbee15fad59d42c5d7c0a6ea1fb510617d2a62799f234fe9582f83842d75aa890eecddd2978c430118b4166eb12bf412e74d861bacd158cd03f13e623db855caea0b030769460e5815d6b9eb131a711746a3eaa00d9e66a4fe87053bdcbfef3c774268339522ba859fb0193c3ffe2cdb27da878aecfd3acd6467a4e4c1aad7ba9aa34260c6c439a9f51d67cd70d9b6c9b1793011c375a74ad3df7f0431916663d0ad3c91df16e6c7cef98e20ca333ad41dd2279e5f468d4179089b96fd93e81bec86ff39a7b3ab47f2ba934c3f853af046f11151b7c7447cb889406be3557d07ef5c88c1410c4a7760770a79d55de09645ec937d885b45ea55eb50a62cd96415ec5c84077cd2f2050b15286531e772441c10d426cd217b1c3a486d3ea8fb2272fcf109dae5711f861da9e1e2759991fb73cba98afdd872c8c1896f7ff00a3111443e6a7fbca1a1f3d5474155723da3bf6863b5952294674a9e8ce389012baa2b0600822fa559cb27edc636392196b81b66c5c76bb830491e46d17ed01f897cb9c954e59637b309628f34da9a764bd29a1308fbe260b60567f599e69a0e952efc8d0c7e56588275c9e4044c9b7ef0124f516d9c05660abb6c3e986e8496ba34f60e7fb88263aeabe329381df0cb3ee74e44f790920ca1f9152a8cdcfe5b5529ee191527232796b61d58fb6f6436e1973073e22d7db616ec72e876a7ca05d9f5f0f1f798b7ad08f1475e85cf55e9670993f296966bd5da0a3411439b81b367214bc498fcacd89c9216e9321433c23fa898a1e29138ad56fe327404440ec45006112d020beaca7104a0bb228705ffc69f64768e7071e63975e679310630ec31a59acb25a54623a234e297d4dee33cd9849fdaa00fdbf0d6ffed137853fc9cb42901e797001007f4dd3db78c9c7dc66c8df817df38ea35b9748b3d10fe5aba21faa5226b3d86fc8f20f5d27dc892321b489ed45fa44b1bdffd250cae4683a14558aa421ec35e95c8d7b1bcfb087a52af87c89f40a65ad541b1c44f75e3897f5e2f7600cece40e93cd0fe8638979d7012e02f8ed023ac09958299c390e8cff70ea834ef1cf14ae0df60cc3d4ea2fade32a38fe6c1c38741686f73ce4e2d8d1a8f80547083d68b4daef0ef2e9747a1d5bdc52ade346d652c14024ad3e5824dab95f409b8f99888d91da29fc2966539a1c6744465ad1175b21dabb81142d471b7b335cae12d06b9bc8eb4f8e3f4347b21b56ea803466e1ad7f8fb7b167f10ab7c1c12d114b8b90d4a4a2b7bf94dc1b497156321c5b1e86a6b5581f5bbee93829f136d9fb8fea66249d8f08c6dd91147c523b60236dfecb0905fd6acbacf9dd4b17b9976b9bcb20e22b5fcf2c62810295a2b069f6f4e38ea0a9e8dcac915434e093f7cdddc5b4859d5b2f85951810164b317bad2346c504b6358b79d4fe538f6e58c992026956b00c98e82d35592b594e9ccb1771e84f9badaae2018a2a4c3a2e824d5ce4a09a3b461866d53e389636d2f24eaefd71be4522ccee151d7c4117ed92abb3937c33c996df4563127ca8c3380a587a16bc9eee01fe9740126a44b8abe3c9cf9a2d6d9c75e4178a955c122409e5844759fd64a68ece15a07d62bac1a42c5a469b58ce2cd55b0df5b22a69b816147ae5761438aa16acd45e5c00b085469c45c29bad08029fcd220ccc81a98f9558bfdba43f91d7417badc4262b543b59a88aa9ae5ce02d12eae1ce4a4f8393eaa008a120a421380e6646f6678785a8df411886529f713ad78d9b86f5bc652f76df8115945d3ef99e4c55bc13463c37ef31918f518d60e1a5d233c9c929a1e642084148b00016445aa9e7a64fcc7320169f9acf8dd75c66872848e813a6d56d68e347b297de92a3e9e74a386b88af1e1c1e6a0e23c398a5d4c6bc994651903320366b0baffabd8f307a13b00b79745bd9c469469a962d3b136ab5c33b191a072c2730846acfc8606f260cfd21a26b18ab008c40a6bb9ff90bf978b1e3e09cf24db6c15d972a748cfdc0ee79cdca7200f034baf83d1feb81b12172df7381306e9432416060cd40cd740f0a5255b8979686fbd305779252de720b568c9f2fa7bf749b63261051d235ee14043d87b225e847c7f854da07c077ca001a27e89d6b9984fdda104decbe1d7ee6519425b7b65a7837278f189412fd7d1c2e268201623a9daaf230b33cc0766f972da968dc677e9263a0e12f448ace81cc7dbb9a8910d1cf3a17718fc275469b36a7429efb27ab417659b429bb2b6157b5f030a3a57e576d1e394cfd71e75ec83e552f504f7fa492d782359cfd8e2b5b1cc6fd8fabb3d51dd77755b682ae133e907f71aedb70a3ccbd53cf317ee8e965c29cb0299719fdbfb9935e8bf816434abf25159dfad1ef497bb7aede8fa3378c89a254d52a259562e522226dded2d1ade16e9973d284e2c83d08bec662d00909dd279e08c559a96804c13cd3701eec4b4178f603453fc751cfdd0d63bad2c065a2b6fc8ff9e9886475015135d042c4323246762eb609bb239882d567b65d5779ce943756b5aa9a3aff0fb379c294c5f51f2fbed4578ec9aedb1365c9776b5733e6cd13be275ad7f9b50eafac2d9e213ddc66e7a338bd939ce46b69b64420f003f554bd2a00c673fd2134421ea2bd90ded3126219076c86f8be5a80a2f4433157df5b1d776d4e81e7ed7c0f551da962f136cef21950d116fd5f07d64de268d204285ef49bf9f81e8facb8dc24e46de11ff7c385cd9f21142936764a82acbda819cf33e0ce9f53b7ff449825b455d477c0096e4d8e1603a42691ddd99e02f350c8a56ca698f04485ad57c6d94b7704ef0594a3f3f4244419f8f0da03e366edf8bf245668c226b6c01857c6cc76053bc1f638fbe604d49acddf8c11f632f3c643a72abee0520a3e89276700950624dc5707bae96ac55bfbb54c8089b1712a76649f4d01048db060a3f07969d1180b99c7dcc929eb97d73caaf1872ba2cebf7ae5e1db83d2dd6b812ce2c4411ef6c5d6395dc1ca6c318e5326e12502cbb22f4681086041770a9edf71874469e5227cf463bf1652b269b75d56452338f9d20ec3c6dc502e8327d5aeb8a4f29aaa9657960a4411d4fe51a766d39a01d40f2004ae9754b96a37611ca99a7b55127e41211633df96803266034fde8f4e44e9e5892469c0b186fa5561a87830ffa2cf8da8d6d240af5b3b48569bb42d180f0c709092c4cf76ff90b9624f64a776e9f5fc7f76aaacf19117c29ac166ae43b4459286c7f6148f3bc572a5259b74622d395eb9b3ed780443b102dc8955802042682ee76d6ab9bd1d11fc8df5e9df5780e9c217a9ce6720b4727061e96566a521536c11e756fdb1a265a56114a62485caf79d6fdd5c42b98f51b9f6b2b855d66edac44bc1fe7f9a7c7e456d8707fcef982b5e653139544518869c7a0ae5905cc48de80922cbd7b706bfddeae6301b1418fdc8aef69301ceec93534a1db19aa69ef0d16667c94d21685ca1fa97b0bd10027015410019e595ec2c31016b860398d9b3c8116867f87b510d37eff485236b0a238385bfd9e3e2f0eff1eb1df9f1cb4b7b0706b6d883537a8833e93a29fcd53811bafd83c24ca587df667833c985f0774762888312b54c39cacb62fe55177020646dee904d6aa9c705b7c49a4e426c6b7ddf6b65bd8d10994001d8a47d865f19fdbd506a48e01e1670345cf4d6f761800f7b87e3b747e779899dd41063bcc1c8cffdc57b1dbf330576963cd93f74704331d6f34a9d8459da27183639193dce7285bce7b047f0e4da32b22e20490f17eca68e17a7c513a5461eb3030d38e164e659c840db8f277f5198af5875222dcd480395462601e6f686d49a82b1eede57f8ef356ba89def257d5ee8b2b4be989e1d4b14c1a73f6a2d42433e4b24e0691048095a5fbb2a1b04bbd606ec3adf5ecd1513a65672b7fbad82036409d324277bbe33c76c5e5cef344440f318b4fa80d6b83fc314f52d80a75994231aa57a09f56c0a420bc70ac822a11cc33c4be3b010fe56835ac7b107414102c8ebdf73197280e0f0bc3aeb5e976828df29d473830fae6b1e49b4cac4b6f4a2a682cd89a9f5f6bc276f6cd188e4f5aede5a70201ed725a4ebcf80a2517f1fd59739c97952d0852865c62aa38907b6eaaf36e5e485ae5327a64526568162b8b3bff371470b77063275908f12b7e64ea266f286895a1258fb4e5151f549e1dd0317f384a8cd3c875f8a906003cd68a8ce8a98cf1c479526b3fedd7503f43626705a30949dfa615124e39f2006a59184c1814439484fd1131a321f33872d380a163ff86a372a3d5f900bbb58ae72d7afe06ed817dd9d122992a87ec2ca821f9245b46160ee496ed1ceed887b099d12ce8a383c3de9a9c7bf664f44f18939fcb68e10fa0b3e608b921776fcac39cdc239f0607b3daf3ca7210a496f61957c88a2c4d32a928bde9574201dae436bd937748e8e6b2c7e5a7a8268086e93c0d5b3fa8dcaa0ecac49093cb744f6bff014b420628c49eabc1c2ad96546c52fe4265a96d2d1626c3e70af5fabf4e258e1c98d75d49f1aae6b1a59fe0c0342c4e751da8dbc4b844ed28b9e652521bc5f3fb54bf79ef82831d2fdc357526d5a5fc9c8dd2938a17ef381d3ffbbca34962113b721e6e66f00c958c49f9cc2d2069129f0d8b994b20335770c1b3fba95b09c4af9977111b44685c6acf9fc541aa3766dc8d17a136e2eee75e745ffe646df2d2dda0ed8e20dc1cd44244c62710be8fdea2b1889c61d60588397aeea253f1300882cb7192acba895be0b982840e614b32b6b979c343b8c6b8e611d252fc7cee430ade87d299660030e213894ff2676ba7d13ef32938ee03c0601544b167a5828a18008ac6e55b2bd33ceedb37379b80431fbcfa790182a04e33c88f42a3ebf905046f968b310ca2a0b6d343469ceb641dc1e9988a41a993f101f6358d40b9ddb358009155456fcc946cc40636a4b636044ce7605e01dea40f016106b7d46c4f005374e24c8a2378a94d0c9ad1171bc87b4836c28a2c87627c7b8088097776c8df6698df648e1ec1969e6948da7f5df422b384af28143115774d8f4d1a46841111b939028a84ed2f3974830627ac5c8df47b476436eb55b14269ea058de3be4211a7e75d82c1852f583db0ef333116d377072553c14bb6096254bf7386f315dff33d86fafd40a53c0a380c2551e43aa7e1af2f8746af41c4e9a90a95f09f9c5cc1bfb0fe9f1fc3707ef8df08fd62d3ee5b3ff00177f78ed34794e69ea114f6ab3624ecd33c20904a85e55610bb88f4d3247940e0f4e8e476565829a45003d290c095a9ae242907d6ccba85a5e5fb83d9fb8ff54fadaad2028fca5301042179dd55f2182415c40d966608c1d38ea10cf35ead5aa02a4858f4b6d3cfe74ea869e3634dcbb757a0a4d1d7b243b88026a3126e6d7bf798339f1070f17ea244d503ab586c258ba60ea826a76f25f1d378dadee7603e763fc04293aab6986d816846c4764ba298ab842084144ca1845f4cc882968c4fd5dea528ad1648d9fb09279bc28698e524521e23ee6a27acfa7a9719caafe9dac4bd80e9d558e0ff020c5ab3b5aa369e4fad1842ad2535dba2281537fb1fe316992a50c9b1f24b9d69bb50743110ba38eee9558dcbf47c9a40c3c5792173db9e0de1fa3f8e886c32f0a0d9f3b67df1611a9ddb2201875ab397b76a6fb914a69d2912c511b769b89e6fb0cb8490c058591ec4554f72e1fc2293a70c2ff1e90cc88ec3def72508b8de06667ed372d0a213a9f5903ee1f7e840009275bdeede4a27bddad5d84e5a8a1ad2fa4f127516362d7497fe3b352a7435183fb581cedb91b315701e910af86104057b203632a5afacc566368379464cc0513f9fc94bba85bea5f4924be22101878228d64225585a95774572a0b5b0f04e353f495e4541be2d054deb693dc843c44b1edaa792c0bb496f080f61415c33632d50902890df4a85d1424bfd33169763609a99ac907e08beaef710547654bd498d0b92e5c9db29c28f95b6ce07fa7d30eaac04ed0025ac7a69cb9cdae0ac8a20482231eb1df3d004ff8293f785a30b09ce4c11e68c0fc66ec7347cc852d36a2d120197fc2deda70b26d62f0ad3f66a1cfcfa3892f7a1a7923f6c9e9479687f84e6adad2e917f8b7da56b3aca63805979192ff6155640585ab4d29419daf5c1fe2ae9a2dc9af74c0419a14775248da9ec5cc14d7c01f012f8bb6d16e653127d80ece96aac5b8530379154509b10a8bf2fb966428353f9c36ebeea7b1d8ec8d28fedc13ca30eaf6e5570f03187bde41567ae1d5e7880129074d3df44e8ef5c333b8193134a6468b4d0337f2837990cb8f05c1b2e2520944d258a34927406e3e84f6c482fe25d85a2a7f4e95ce5dffacb82b361c4cb37f8078504f8ab867a6c8ce0466691a9aac44d90a85353208a31039ad2a83333d76c7bd2106d7999f7fd901b18f2822fb979bdf26dfa7973b5f72a38ffae16c49a939ca92ac00a8fa6e0b77126120cb9eef26fb36c27a09f49209df2be530ab5a49f10f68dae11f11d59980c36427fb5b614d3cd157d7b63dcedce50f71b2f47dfe3b4b5c56064c1e9462095af7bee425c46cfbecb6221d41567c27a2adeab129a8b148b60de7cda0cb20d4a69a8b0c2dfb93abf3d64904517d593372b5f2763d4a7f41fb5cbf8df1dd673660c14df7d3a4c62ceff1928c3a613ef3be29850a4c6f3ca57e0951abfe1cc3bd85055dc59c2b7878c29982c1821d197c8fe3d57de7cb3405267cc48bf85949f468955c99c9f965de5056f456874dae198acce724294d7b73d272b8c22dbcfb06839b20dc286bf8e8a1d01fe57a5153721a93b58c76d21bff97cc215563649d0abb0b1d45e28db363e265149c5a0db961d52a6c9d5675ba089cebeb4b2d3f2382ae3688d1609ad65eda071f80f5cf8107087450405f1d8d556e08b60cde3d973f1fa7d6a9fb36ea19a306f45f285b64a4f7ad84fe7855a8c43a073b257a143e1985b28e3d676c86118f4e54ae94902ffc4c35973e6eb21278d50636a9012f6352812ac33e6216793936c718a2de8dc7b7c5cd63d303b7bbd7e3c35e8435880f84deb93d97670ea16eebacd673b241120e14f65ffb2893f99f360b8b35cac3004e6a95a19f718ec41e93dd0a9ebcb56e48c443e0c2a49debaa9b2b2f603724809d0170979eeae2b5b20db54fd1bd9d9d10634d63f3aaa4a5264ec45fe51f9e80b16eb8b4462cb7f20d37cdc73e7ef6784d1ebba759e96c248de0e72bd8ed825e262b9290a4a2d0942808ee0006f3b5dafc9319f0e6414c5b68cfceb4a02fda3b8c8738e1e14c448e64f82cefa31ebc798d4a5aa703724b66b31db215f55d52e8fd72457173ad625234ea9359ff6d21f97debaa984c06c9e693d2512da8137b7b903ebe54fe5b5a58775e8f08e42ef5d9c29612b370f452d6803958d3c53e4415e5c698b67a3b512918914fd4b63d035a6eb3bf3fb17f0a352ba53972d77ca65f99128c0c12a4f9438c1fe3bc0062eb14d3d7c6843401b99c54f16daf61d6b1cdb4ca23d052faec662417c9bb76325743958bbd20afbf193940a1294052b02d1a7d3f0439d4511b46e67f2f661f2e37ea8256e474d75585646fdf2ee6df553cdd4015d3e38dab2aeabe33191d2b4c057ec1ccc238c521f4e95483e746398425d2f8e44464a332ceedea3aa33820f0627eb7143d04d79420df12dca31c2d38c4456a112b98b86847fc08d42d7cd31ee739e93d45399ef84d9fbf1352d887c586c3dbc4433741d5e0b7e09593a740e94e092faeeee7dc7fb5b0a8f8bf8577d6a00adeeb5c7c589f331375cc1ee1ae4da786a47a98e8b1b5a39a9377595f5662e8ec05daa3702ead6c082d2bd39c8558ee65ab16e6a561b10e417a9b057cc90ef19671a5545f13da5d2e5ba45976a133d23aec47b87f9278f49c54daa226ac9e588e447d2f71dcb1ffd5f3020d15012900e4171c42e91004514dc2f6a310297f7305092cfcc56915d0edfb49d61ae5520a606691d9bbefe1f1cb5bb3c93ea0754d916f55c612fcf067eca9bfa481c470d7a83cec2462763ae475e52c1aa1b1346f976d19f107f96cca37944b493169fd55f51339648f3b12a901cac4848b488e38c03556264e1708ef8b8245b8f7ddd34539de6ad22501f0713e30aad6b779279692530b9f83314e02349a3ab12145207ebaa930f3def0bca1be03c0e554bc4d895989c39a11b27e15b5fc2f74c04b576c64d30b00886914dd9f06e1b4fb8bce2ccebb379337d1599a9239a2b48584ff1dc703b13704d1fb40126cfd4886e55fbfa0316d55706f548f833a3f6a782b3ada98f4b23cc8226a40049ffee67be633f3995dfaf26a57965721ed1e337d405bdc13eed1d0de5d69c6b535742f81f09a383aff0b1250cfa2a93e97c6a8908d5ed81a0d1ac283ceb7560f3f7ef7fab9359292f83b46d3384fd7f8d1f423ab9820128f14c8627d0855c220cad26cb9fee28c14a115c5fd60107b176dc827ae73bf6d8fe242f5eee1cdfc134a0b175dfa28a3d078c9851f26cc5ac05dc5c11778167cca8afb7756877dadc36dbba536f67bc96c2e185124c147b9e1076706eb140471365418eea11b9598b909a6b1efb412263aad466e8eaefb2db5d2c114dc07b7136bfebc090457fbb5ef66f54b450379ca04221b4fd97054b012a75fd0d3682dc37d38b487e5e0daef0cd34c790e08bb1e3e3f479c863ddb62ca855553385b96757d22837754089d4dfb1cc8c984394b31b39b47d0a21066cfa7bccd95986f58a5a83a2e388ce472740efb7a0fdb0153a1dc211e67ce8a9aa5e3c0cbfa1f66068fcbfaf6c42722961750b76dcc688369b2e53745f1793321422f7859bb8f4f5029af42c2dfa99060c263cb8bc7bccfe40e492adf62741fec1c7adc33d9d85869b24a3bafb74352cfe75eb63aa8fa268feb47c00241ed523cee6d31273c5115576e2e3ab4f1539e85aff3865716bd400c6d0e177c0007647808dd2fe0885e33c8b8cdb44a519212668117551cf5e501764eee38cdf03117f9018859b9374ac6ae2e54b49bb72671bcb94a8d94357a97f1ef77b1dc798d2463205be9fc21d00a59fff04db83b50f04fe940d0d8df494e15bb1f4b27f9faf85d9a8c04f4f62d724fefa6ba8e28d1cef10d7926b79766c99b4cd6e18b716dda1eb65c637cde90efebe40fa6a92e0189b07165ac8f90aaf280f045c41efc358a5cee87bb6e761e417ccd3bfb5cb7b906266753bfc9c367f36aa40068033d3607208358157d6837db5119bdc1387cf9638c07a4068df6c2220363b080cce5af60760ceeafd11a1628ed03c057774a73eb557672748f87083196034d1d8b70464d63216c2de94f0ff76ea6b05f6014a2132251be3d40ec3aedd700025bcbcdcb2237009834b2ff52499eb5539db0bb1ddf6d3c21b37013157efe0f79ce48d673180ece79e4cbb1c853cd236130310ca92758872aa49279d546904e121a03cb4f44afff1f90b39273a1fd7f5988afecc669781771d2cbb301f5f30687372d70e52469c556c0f1efc3f5eb814e3cd01c20319e79a38a5d17a55cdfb45a77b2358663c5b9843436153f5ed4829a0b6d73f14f756c871550c70391a7ec5a42eaccb8fb31f48bfd40dffa0a2468f915a9645cbea038b73b96fda3226adf6a557a32af0b2528095dc66b1e6c8b8fe0deaf5d35ef6769c9dfc068c48ec3c7bbb724bd7f196e0dd6dd9e5d2564e59397cee799385014650819b3f92abb2a2864952e669bcf56cd064fa9d5adf79ca0fdcd81366fe85510065d626bb2ccb1d5c861562adc1936ed38a39cea255349b953fe0183c0a4c5bbdc5f3f2f8c2e3e74ffe6e3ebf326825fe6546ace2efe05b794b30a5e5ed360870cf52829307e7ee12113b644388b19c856d40b24dcbc5451cb867c6e271219f46e54dbaa2b96cbada7366e939fc192b408e41f9d769043733d666076663ca16c41fedefff39ba5ec9aa24fb090fec22f6a9b86a462c220571046e37d615d14405c668c4b70f539fd3947668c20257a44f1294d280dd2068f83a8c861ddbc13fd9da7b1f096419a345de0087655fc3c37b133c1c132727001a805d51fd8e32461a8d86312986fedbf08d326c536e377641685d446a1cb937317519366f0cefbc4cc680a7576843040079bbb48ac0cbf506c283c9a0ae800449c9f14cd5b53516eaa0bc7a491f495368cd525485a82f90804484a59d37a6c88fc2c09d5cf003b4e5e878069466f14bf189cd27ecbd3d112409b819e0f2b8d687bb072d7ea47217eaa2434d8d1b8fc6d6008543395aa03b329c06d8917f275a50a13d3afcbf22ef84842c9809bf66181b5a0d38a61e8601247ec052606348a658756d8912b3b9d6f879c7d979fabe7ab9133cc7706d666f8da3493d2d85f22d4ecc24d2d1f46dd9b31fff7e311681130b7a7ec395ecd57a14f59387ddb3a5a51b52b2adc77ba3097a4ab797057f6941db3380139f096b27eed0695e6d1b43125e42b49e254698bf2b7f3f810a49c80ddab621140770b2b3708488faf6d255c6caf0f60b93d52051af79957cf0aad1e555cebed2009733c0add78a488951eb8f9f3fa348b7af7454eea877da627b7efd671ac5d9293385a2b380a3b382f2fb985c2bbd0352db0ac006ad47a7d8bbfcfd088f9a89c7c1715609ad279da37763bcb541f2b869678679c8e0bc00790cb0e1d5f4d337b7fe2bbf347ee94a33846951df22b8fcb0e5b22558ca667f1034c21fa764bb8e256f932a9f8762566120daaf1804bbbdc4e9904b58abff5d989e43897ed026e776da8848f852aee68438aeee9c309cd54e8c721c4af58e487bd6db79ba7b9e9687cb52084cdb543ffa1c449ff085008369ec2773efce5bfd96110a3eef7cd36b9010120e5c12e56d26002887d9f4eea6d9aa3bdc5793af29f5a2f5d0413f66d3883e46b2715c5f20987d6c9a2b027fdfd66a3fb9ea50682c5986ce53a104fd5ed52a62bdc91370ee530d93b8fc49d7d9215628d130485ba80bd9bde0c65faaa86e707051ef017a9f199204eebef77b751a9cbbdf57738710c05f669b75b6a3cc71efc7b3d7e97037d7cf193c374ded9260eb0af66afb17980bfcf4200fc647f3384ad0e854ff83d48dedb329452196a74bfa00be02be3630a83cc1b9321f75a5af69d653816a98a7a3f8649ef55c0a712e02fef2c0cfae7da9cc7deec7a330e593f6f0cc1ac99391fd6028ca697d9561ed3f84a142f55ef0dcfff862870b9c44bae1f4de5fab762f4279ab1bb11519a0e772f4ff542b7c66c94a6d18cf623c7538dd791fe615475f57fb2587d3493bb593625af2201ea40526c86179518890098fe0eed20c01cb878282c29fef53e53f7a56498bb1b2bf332bb61ad1f8b0f76288a7be4e23d9122d930f97457e01124b6a9cc81bb27eb5d9d3f899102be2e705882f84cb1600d49b26852dea8335ec1edc0650a4804bec5900932f03747a74ce723d4f997f4993b5622d9cadb5633da77868d4b8b9989de46f319a547ea724bf2dd7f8e7317e9f277d322ed65e162cc9a41be4293319f813b0a0b70a2eed1964eec987950adadb9603269c64216b4a42c17dd304f33412fa7553c554a1a386043d22a5b48c8f5a8a207bd4c68293f4ea886ff9bc1082ac0a4fdf30d2d676741c96b420bd0842c71e080b54eb9356ff7598d6fb8f9654c48a3b7ff8b2bae4dad80d978598728aa1cc4e910e37ea8bb607b41a2c77692cf66f8f919b5366c2059035a6befcbf7447cb2b2ee71f8da12b3ed0a9f337f63fb0d969179b3670b74b70c800cbc6a402d0da8fe5b86d721ad4843d755065e2fa348e2e378a7d44be14df51888247c7a7b57e881eef63a10a78cd95726164487a6d25b0bbae43a0a8304215666ab412cc50f39e27ae551b9c7008361903c615128ccb2492317c74987d2dfc84992ea24f2268c1ae8b66368d36f61de87b87fbc97ec5924ddf35a785de2e3512ad11dbffed48cc48d7792daf402c0ae0380c00d931211da3786664bb81b27a03cd7cb121a59ff8ee7292466832677d069ae22a32a23b7ced929ff15a77b9ae8ec047beee20d94b7b3b2517305a8437e2cea5f2f4bf06f9ab084f42d6975c95ad12d6c112ad76a42f01201c1780bc4903c38e0df9203975fdf96cdc75ba55fda1467a6b2f6276262f10a7113c04fa90781a86054983d1652a5db9f7d43b09936c1c5bc158507c990249cb34574d64e0583ec978a31f98281d1feb2363d4c9ef55e50c51967906c215c9badf30877a8f3c797440fbcb87c8e2d3722ce4be503468e85065679c35de38232ebf25b15770c02384cef6ed48182ef7b262f02ea4a2f4d6acd93acef43520281436a8fcf96b05e11ef56f3d2805d5bccff17217e6380b51ccc8f4e5891de33ebe62bf7ba72332eb3af1f6563328517178612941c543057ade3e6eb6d8e07e4d0f9f831fcaffee6ff0024c1e65e6426a4cf72ab18a3cfd9c614df418e3cc52316f43a106dd05e8fc0a16e9f00be4e986bd385d5ffd0b52e10e5ac7c74ff4a3c784eadc1b45a850fcabfd76a8d32aab409269fb3c96f8280fd8469c08025b1886f87189042f845b41108e536d1d25944b6985168bbe1be563291d1c270cec3ea3c17a115fccaac2a4ca6f12598f7cd1c6e0dc11811237b476e13a62bf86fc05cfbf3972518aa443b105e0fae805fd35fd42312443e227052db19b80d81625417ba3ffbf671bd61f609eb1854051d8b5b5dae3d9286b040bbfd5bdface2ceb2ab466fd9bc26e509ae529cbe23b680aec135190925383233ccc5ecd480f460adc88d870c295ee5d7f8d380e7452fb289808b7330095b1ecd57f723559a0bb2cd803fd9281f69f509aa7670c5049919c1b521cd4ada5eb5354c541730b7ee78a82b3435839fafd2d3b84142fc3b5971cfa0cd67674ab7451fc8c9e0ab4c3aa36a1c2d650e024aad6b980c2feca4f114b62d4d6150310967b542066c89ca69ed0e1a084bd7f274c31ed2386079914cc779e72ba2e60a72c25a886311380407a03543b063cb5ee3ab1b34a0770153949e6a22167786126440987f9fde6112a7769edc4a3433201c94a6d64ecb859ecc06c835b664632e93a994369bf3c73e5be6e040f7a093d2e4e887fbfc04235eaebe5fd3a5723d309287874110f0bbf182b5bd571e2492f8c48fcd4e5a728aadd7cbaec6b1c3698c67d8b751d68c18198e2ec0045bfe2f6c62ebe570970b66f9373bad3aba717a738224ee65ca41b3a429dd40ae8ae2093becdf87b80d5406ffcb39958da84d97d5a78c02808ab6fdfa698f3db5a671f9c754bd2b452096f49008ba6c599861f6a5e1365e4948323588587723f66bca3bb4f291ffcd4cc14cf1f0bbc897f365910550e37849a3ece021506a8655412642ca0df624f56b49487e76a05b5d4ea59e823426cb9c666a22e205d4c63393fca4388ec992fdc62622d32cfe280e6a3c8bdcbd322f3e1eb249fee9da7afcb1cd8e425702a20efd0a42f3b2b23c4e612232effd4ceece3b9df1000613ea7cc4cfe0912b0212d77f028308120d27e5c6c593009f1591e186eb3ac96b1000b01f262402f1c9662a83fcd8578080c5124e85a8a03606c4852dca79411f0257db95f4c2ac8ae9e4fff1c4fbb0d92a504011145585d9a43ed32569f5d17b5af08eb0122fdfdc1d18b4deeea0ff89cf700bc454a89b186d0d47be61c8f90ff0496d7ffbb0387b4a62fd66c90f4db3ccbd3d50dce61ed1b948974f2612772373679465b8819bdf766577aa884913d0e35afc623a8f7c6b1d6db5ef3831558cf41e34c8e6231fc6094a5f5932b4043472aebce56f9b88379635cfb39bfbfef8e206da6e9d8d050d8cbbe2a2c5b11482ebd8157a67fe20ed9e6e41dee377c32d077949d35019176be34ca7f8c0a453ee0398fe238e10a60a26b0e52bc8e1a70398f378457eca026a47ef84a8267d3e190cfd68b10f897316138ba8fe32a5929be8e1bbcfd3e3fb62c48f84e715de6baae0d3e199fc24407397b89ff94df6ebaf018674f94734405368b7f479b605cf0943f509b9b3fa2840dc864cfd79e81d5ee0c281904d099bc9f53c7851ce149eab49cba9dbb259313ef69f61663402fcd729ace7dfe27bbdc4b970c9d2f2172c46156cfe7311ad1da05ee2dcc1fff08afd3d9adb3d71a3c9c327f101f8a4ad390a7c704cd14c36504751bbdc74434122efec87d9b319a4296a3d29768e486196ad86e740d0ed53054f0c09dd93e03445db0e5db28f92c05490e7fec7dfe8f2956b9e35d46f605650efe5d87edd61d0c3a829cc65a789054e4eb675bf7b3a397f878b0a1f23da00d2e1fb37c3f4884ca06856b22c47e0f1168a4c3b4fdf0083015dace46fb454d82eb57b13fa03829537583e638a4e225b012894bcf569a5a71e23b8ef7d7098ff492d216d5c9c4ad6ea12cc2348fdcccbc1f3e6e0282ba9d0d2c6ad2803fbd4be7aa96430bc412fe5adbb3aaa6a6ff1a53d62d85ace485c06a455fee55683fc0b36a8e76f0581c734742aff10262d0b8a5e7dec6ae06088024cc61d90cd98528038154b05699a342d82e3f0e20e73b09781d4851edde8bda893a2820dec8606f562a84ee55718372a76dc881bcf271cba7587b30d22f11251c4aecbe2a103b418197854fc94cce38c149cbf2f750e3699edf41b7c9f3609213269804f3a8b7ef2ca410f4cfcb6cae2667a136d4e56620e0fc83d8c5d9927ad96d77ba5dbf4eae50dddf204c872efe4a6d2c92bc45c7a182ed9571bbd115fa8c07160f33524cd2bfd74d3866e57ec69781bfb0fbdd3aebad1fc49e22a98d8f80c2362e6463d2ea9cd6d6a008fe2f38e991cdaf40ad88821fc1b84479b71738bac90b0382b8c0b7dfc1b892638f0d99106f2625218cdb71ab9d94f2c19ac82975e61a5d412ba440d26c2b1468022a3552b7cc34950586f2b44dd521ff0375b4a1927793fe890f8f962ceb204e7f1776e690aea278bf38deb6b462a2bc9317015fdb3ccd360800da9fbe0f1712127fcb7934cb4b0a736dacbecf5db285c66560861371490a3f2f42347f6908f2dec74cad478f99707508f8ecd38ada6bf165992156bd5bc2bd7499f0efde7cf166c07f9607725132d07247f89c7029834e1831efd8a256462a9911448e848757dc7b7c3b431d9abbe9ae17ab6b87d0661985f4e20e1847a7f13c19f2f968cd2e87d5ba1b26aa2eddbd29f961f41078b3bbc126a09ab7389488b41f936b4f42c6394c32a5d2bc7f4aa64ae38ebd73d78909bf940511ebb4e53bfc72137bd2ec31d52719becc88f11cb303c236ce33410d8ef2789f8bbb52149125ed3036a9f8c8dd1a7c3f34087d4d93e4a672ace2daeae72c89310b3278bf36e0b0fe8608bba41fd21b75cfefb9400d72f5f2aba02acc352fc131aa71e1288500c765ea5a122563247aa0e529be3707c458768c097de492d17c499ff51cb58e2509a176c8b76f31d4c474e9e14eda1fac4e5468a66767a3cc3cd90f9def70c0e067c23149aee8a815589af36a96b6d6e69af6f23e550f31780173b26e7e871201452ab83bf8bc614ae7300d8bf1bb4419035807a49a98d7107f5e413e2fcdc8e34c1133ba215962a5f6454af56dbe649d4a8e86cd0b44c1568f15bd9d6c38c3ecf3049f27fbf323a9345eb4fc42f5eb5e833c86656a5873972cc57ec4dc615e887f6262af1401a7b16ef404cae47eb24a6f1ccf1a509daa74f2d21a562607e4584cde33b128be97fc4ff42f9e51d8ab12dc7cab5468e047fa98521333118c8b71d5005153a8a982e1d63dbeebdf676f4899bd0522e6724cd51e905abdac760ac1daa404b50a05192c7025f85023f45010e7d5d67d24a8e6bd5f8ba53a28efb40de7797d7b545a85caf4f5dfbc752b09ef01cee442485c8e66a4748e3e35462e256082f4b28af2cf415a68fc48511cee73be45d1688c6a3182513487461f6ca9213e99233e695d539ac230f391eebbbbc1fdec77649a3470b33be39bf13e78b9e680e70b4ec2ed40b6bc71f3988a60ec3722089dc5f11fea764e52057e1224b2377d6e0c9c613b3544f244f0774e48a1be91f3eb6beb149a5a24828b76104d9809257f48602ba0dcbf3436ab7212121b77c19b45ed55ff4214e72bb8b93c76a2f280445e3e74bda732d7c68e2e1d42c2d23c015f070254ec484e36d944a34649d9aa376da23cf48fa686ea581b8fc1bf5298bcaf36d7856e17dc43d36c1f05e844bca96c480feceb7c5f8b9556615b25724673b0cc318d0fb88624c46e4123edf14c3cd2e7bf10541bd204e993be3fa67cd366691f5d682fc3d6607582b7b29a8b5069883d2c1197a005a72ad40383df5323e650acf59804f121b19ed85ae756ad5cfc34ee6e60be93cb384ff5e59e3065ead97948e0a26864f286f82ee49d8c8da292cffaa8b522bfe370236510ec2352c13712b84c8fb4d2da821ee456d11bf4312288c1a38b90a9437bd680102e670de18f3147eb6cad1af0fb41b564275a5e6d71fdc412a17c5f517a546b8807546ecb83f73d16ca801ce17cac8f6764a372f19cc3b3297a487e850271647380087de247fa49313ed1e42d43122012f1792594923a6a90de96b3b49ce1eabc840ff936260537eae2d27c4fc4b409a35f37328a98b4e87b57b022554308338b6599dca4fd269157d277f1b92455ef39dd4cc933c3ec77d8b5f76170e98dbc645544deaabe100a2bb0ac6382bef6b7e8c413968b81cd75fe8a6e0297f2cc10c8ee743348efc3bb4e21a5331ba271b93e0c2e7eb511878460af49d316b60bf4e3ab3e15922891a24d4e38990811d5b256d476bcb406f615ffbd9553e9038793dd6cdcc9a09966e8d8644d3ba8029ac0e3de8239e3c8598d3295eb034c9a4c7a79f6b834ea816edb9414589826a1a5b45410b1435e125b718ad9348ab8aee5560b71072f1eb8fda91914e55185ca1b7ce8f4ca083f756268157080d9fe68d1db47e8eb2a1f26d23dbd9b36ad2592017d793835731fd43ef96206e7cf9765cf44f3cc33e3bf49a1d04ce9f0daa2bfaf15d92fb04c1ee61b4af5897ffce236fa4a6e729e1985b4f61356bdd6d7e74b15a8cf4fa8c84fb8c857a6ad637fe6deb191d290b5a5c88a620601dd95f854e5c9da38b116d849284e5fb969c435545856d6a6c435564107f8cfc492a372796ff0f93e94f1e8456bd573ee780ea40b0fd26c320d076721f71b40732929745d81e9a16bdb2cf32387de7af3da1e500c64f4d21e50c58db33da3c62f73009d99e5d51d1f8a4af574dac608fb50877dd02c9c6465d4d8de9c4e4102e845c0ea8019e923034c7b4295919fd716e3e27d542fb27a7ec61e0db0b3463ecdf9d86972d08bd938f04e44c93254d2305d3a07a3aaf37e66b621c68c8baf791fecc03d00714e4955e8f491411321ee22ce78429bce8cbe5418e22c1c0682d153fe30d2f996abb4bac80c7fe5e0594c7b09f083c93f8305efc52eb559eb7c68411571478f8f9a6b80cd0684c519805eef24eddf9795f04c5c778de1bd131626899ab46bb4ddf113e65414222191a9065efc5c0dd0de0c06d850b3a50eebc8e6ddfa86d3a1b7998a425ea824fef036ee85ae8048641a09cc4e548d6f4ff6b4f72b2648e3d2888ec8791288626932da8c421fb227b9beb9861cead81809498cf7df13b9db276eb375483b6b609b26ed9937763894363211483b5f4c43280ed276b63b983be3bd74131fc62c7765f117e24f9c2c59ba536a6e11634fe13e0169f18e1b4e08127a3ae9d9468b5f7e8847bb59c36dfaa2f1a2d5948943ed0bf671fbb5b3a9cf8ee1aa1c5e7079457f39f49058dca5c58d520621a8cb5c91ca517abbfb09ad7437e0bc9f079ffec4a423b842d81f5e4f8fae07686e050a42f08cfa0bb5a669191e999adede51a772b1b9354fac8723cea1b0cccfd075ed8cafb524de7617edb775e45357c0a785d1a1424e050a53bb0541fb87db9842659ecbed02b8f46d3d3cbbca6085fbe9c1d83b5ca835da8767b4afa3a37d51f2a3bf06eae567ecbd6531240bf4ca7100bb6ae675861e74693bb42eb0bb3398f1584fbc76234772a19253ac991d42e9fbb65f9f51ed8bb0048042829f68b7a611e9f604ed24a642b63e99331bbd9f1a8b230659871a6669a8281f7ee0d90da505371e1ac3c53bf61c6f85fe6b4492fc86663a82044b2807685776f5594000c3e4fbdf8bfc01b218f9ffd492184a46f2673e78fe86d1f9b29af1c557e108472fadaf0043b2f4a929f600d95ae5ebfacdccb2875d217d63215b443178c6e6f1c1bd01aa369326d181c02110b24801d00bf794a7b4be4fdbae09b9f47848aed6965ae1ec33612ce2ee882ed1fdec1d38444e9057159784a0b4c799eb981bff10e42c164c137095aa9a849c183d2f64b898dcca2340bde6a191fce559ade9bedc0fbe68d13e2a2a707a6c26cb0aa527e0c8cd1514dc927768e0d4366c66ce635568025b6f798e7a4f15fd78ff65935fa2b0f6ada02d4f6540b8bdb31f19da0ee4e6ca70b16eadbc6de97aef20b475e97a2c4a8c4e027f511aa5ec1684ad937666185008fdaf2dfb17192660fd58789b09c36646554882e7de36d6c1897c70a1589aafc2e46ac6932952cbf80ff100270dff067ff0930bc32ea6b7e1cd5c5f708b9c677c5052c7055413362b9bb224cbe7178de63ea6a3a6c8110ea416da40f9317eddd57bea9110228cb8a963ba2dd7176282cbd0e3240210451f7b719767b14fecd84b0da61b22d055a6731e111bfd4d040d3b488b3ec96dcd707225281e68d1de05e0c7086d15542cdaf1e30620740b997eb1ac66f59985614c93eb3f2011db707551995225412ea031233a1a22ebf1b7c75a54a42133794243591ff7205f14d81ae5060cf5d5dd720bd987003d4b2fddfde2847eec3ab44ca836d903402efead4dbe3a2b228d12f1ce03038e3f4aafc8dad62d5b5855fae2112925359abe9a554bc7336f07a7f526630f6c2b2bcdfc393e945e17b78ab1bbdb5dc731bbbef286b329dafc9039243cb84f2840b71afde0aaca594431fea2dda4e64078222641f10957fa3fc0ce349e3c7d8d77cdddee76c38b683641f4abc6cf7d06e2c6dfcf7337a168902b53e2e1654170100df85636d5ebcee7382919cc035b1b788d44cfa40763cf217c54366c2dd347764a24c5534d3284dcb977a641ac17823bd665b23caab8e952f18f4c0691a3783b09699aac3e9a90653bcf5cd979a335a0f027da8334c82c87dad08977111a982c055b3b9cdda232dd8b7ac8fbdc489cdda02c990f1d9a21541d1f60233461bb9cae2f58cb05f02db747b6418d8dc1a6e39f8ddaf2c181f1f1b53dfa700143233ba49f34d8b4bae58a639741b2085b0db81a67f505e115e78c2e7968748615d7ba419919ea8cd1248fa841fda90a2b5d3b3132771020b9e54b2bc628ea54b700550dc35a9d5329b559306ec1c31854c7d978efee6e88b2199ee12f2417019c1bb747ce993873fd2817ec41c8c8f859e4777821034602d662a899967b88a5e8483e639931c77b8077d91e7483f13586ddff2f975c73e1bc3b7931bebdff5da05a798622f3879c1c4f0edfc494a29f5cae4f8c063034588e1f009cac6011cce067cb0c4a9e1a2c443fa89ac3eebac91f70edf47670e8ff57b0a35d58981c952efcb00365c0f927d21b088fe5d7318a65e1d2c07bf47052f61fb810a7e44ce2d1339aad9fe219a9fa3b3e51ecc9207cbb9bd5bd3e1866328d9d05e2bbf046e0425784023032fa75cb76cd489c671a805ba9adaa5aa6cb6290c90414969dfb40a6c77d2c580c0e713cffb330c302dd38f06c60bd8511f60b5c72757cff51ddb8594e070939182a28d08120988e6c048c690de21f0c490c385d1b7a03cbe95c809021d6ac74d88a46c425e464320a5c26e1d7136b1ab2f05bca10712863de24d6ff2fd2dba0de1d20d253644cdf67d7f58e49e233d80f63c6eb095a7ba882027a9b854c93890af22a7f64895b09c404aecdb3297b5264dc33f49bb523206cce3262db5180437f167efd97e970fe4c02462fac343c3614fd3d69ff71597263ee483aa4ad860e38bb5c9cf939c0cc0a9c79a1ba1be25ad764e41beaa6eb38763c07de28aa3b086719a4c810e15279af3d47a2f709cf1c40730db17f98ba1d043841d884da6aae07855e9d81618286c7d071848c6ed687e3be00ba9ab73c49e166cc90964391314f0c3204ff347eca047500c4476fc0516c08e85cf01bfa20e8b5006934096397e434f065309acc959d3dbf6ab784caa4220e578dd042135694793be8385d48ad0aba0aeb6ccac229fac3bc847b0425bab2ebbfd484b3b84381685df837ced8ca25aa154c6e060d7f2a6dcba4c28275443ca1f9aa8f88ae9de58a4c32ef3b646447e54c325deb2b5cdeb40379226053aaf4f3c25e4ec3cf6e66a3713ac3a76d6da9c90d28d98bf0bbd9ad3f6f3e8dcb10e619398ebfbd8967db063a2ddccf2a8b43ce5919deda05841f2d9e69ee89df359589632f70045d7cde31961bb3030717e4e65864a910648b4cc20383d7e9021b98d5a828d16061d440ac7c9722e921f176d0d37900d4def0dcb495e3a8349d7f67b3537977e2bf07bff364504cf9ca2264cfb80d7b1c95c155bb40a56ecc8d2bf52b15f2084434ae8e38ccbfe5540b5130fd9ad7b2f482ef8c0633c8aca0a309d17b827dd71e913d9fafb4e5bd2f1dffc8fd2fe37a7df0978988603734d92312e75792f86cfe3e38a81f22158e7befa026d8d07080d5ff99b61300dde34f45052023229b898bb2ab5e179fd067aaa47d2eb9fc65f7d2227d610c0cc7c7a4b8f56e2071f056b4fcfe6becb9b651591262fe9ad54d34cfa1a7bfebc55b48f41aa315d4a35fd1ed3d11003c7f7ee57343230c26a1e9551e18e5f3c02c9e5bbb81a429964144aa682ba81827080401eaf7f0c2a44a51602ff63cce318a82ea41f562a4cfb796245a902ed8edec64dc602178888ddfa36bbbff18403aea52dcf7f3e3877ad524ae47c9c285dec92c176166d553fa1148c8dccbbbbe0e9a237a8dec63e2444f5a379a489510c6bf918e63a1574060b7bc3a6144070e13ae571c34c3c0ba253d998b9c13973031f5c00ec76212c6fc4af9b02c2c932dcc7d35546053b42f4a9c222c6e42787ed6123b31296a4082b9695e130c95136211228b039be7de5300ca8e6f6284f61c73c440fad43076b9ba573613ea670f9585fc62146bc0a190ac0ed6e7b99b7bcd3c3d4f07fa5fa4fd6778c518f2dde6848f2ec8c22593c999e50ee950a2db0b8acdb0ac602756eaa181d8eab2cf082a7f9c209baa7f08093c8a56d989efaf84fe15d9044015a638e6c0a4502ae34b3f9f76fc750b0d3c439003d8915a0e152b7b7572155e2198c30494ae2c1af6dd59cbdc32a1f47b40a65ded671f08481d8a3a8fbf6a9901a5458bc2ed9030b54ac0e957f4174b379795b40d3a89f98b6da114d6032c0819fb11aa29fb4b78f6f262087eba9cdb4dbc640cdc7039ef9ac063f91008f8c68bfff6624b9559ce9d89c27071c0ddeaec9ae16dd786f58e9d6285cc4b9cd116a6c5f0c11e1fe364c39526e26e83a9f57912af7492e26646e6b69a7cc10e1c9c6b9aab896a1dd0759af4236cab4833935b786f31ab4c33c6dcb0866f4db5a7d02b7bd6fdf6bbe686785373a3979567abcd16bf36dc6fa597d75c399edb69cefac89b45b50e467ce147b7172bdbb65073b1a8fe5af35de58ef655bef91f08a03bf7e1e49d19b1b51fa2f8d4cb00398be125dfedf8c108c11be74e9bf396f31e8619677a9c981158f1c941f693d872ca8cd9de15b909ca04bbd98d7e43728e8c918afc38726b21297abd9264b90af86c2673c0032e00de630ad66b3d449ec3c51810a322d215bfdfeba43e0d3833262103221053cd42e4f04009d522827d80aff8ee123bd0ab6da43df36d9866239b9963644f880ffc61260ea1ce8d545134b3ff96348a1429d12123a99b6ffb93ba516f5571bbc0893c7f2143ebdf9c87564b8025a8ee7b393525a54c17143ca72b6213616012cc2b439fdc37d5bb044fde9ff80d3fc010e508cffd5185c5501858653710780b0c22a40bf2eccb9355e4ca326110814285245b539ae45d78f6d9f16bfabb0998e9267473f28a1d88c3049b9cf44429e7991e644a6439691c09346901ea5ad906d4632c880af7b29545d2d558826da56019b2fe90b4d54b33a024764065479fbedbd3266673c08314554082a29eec978454fb27b99180f5b6b7e695f79dd289c8f987248d57271d86aed0b06041bb56fe47b7820a1ce62f509f0583dde9b3b72ace67ca682ea123b4ed00ee22a6756ed1d5c1d312494f14dda951c5d555e8bd12dfd81f69d0fcca1e1f4bd32d7f201cacbc6f85c650329547d75f2145ad6225d0a22d10abc58e5cbba0047897cd97d209373027316ecaf4ab72fb23766700eb9ededced30919cb602ecb7f873f0b0b9256cb5eab5d5574bcfde15990d2d94ff412449eaaafa93c94f23cff711bdf92abd1cde25e0022303e60a4e178fe77ac76d784fa0cf98791c8e7c861847b2a634a235bed2c3bfe05daa491e74f18c1c9a026ceb89441e604838e32686cc98b21a1e326f0eee879eedc2841c4b4319ee461732fe87162ba87ba66b7a6cab226ad22378c49ce528f11979067e7b5f68068ad37cad5dc2a43ef6ac71457db95b9e8652189b633bc2b99ebf533da8b1e11b9d1a2bde34cdd60d8f8a7c506d25fd8017c89b3fec2a87770c89d0d5b80a28cda505110618eddd5b302742387513f6bd95c3c94fe5cae3c6456e288656853f6b412e65ef79c11fdf56a263cad349bbbdc8178f91a0cde76002a5b56f727adb1700c99c0fab1bd1e79231bd2e48ed2f1cab6d717394d118a84e4660b6be85c6eee88fc0c266d7cc1b0b4f637e984d3948eb56384edb410e9208e5aff9339a961df07c841346433de8fb37a7b20dc24ff06c30b60ab3c678876674091d8a261f418554acb74c19dafa2ebbbc07f5959e58c4d4da81fd4577a66d7e535ac449531c0900878f5b07bdca8657db071f0585f7be1e7ac8c1735bad7aaa7a07a3178ac04fb88a46bcc70e7779aaf47462488abdd93b709ba8f23fb6bc93904c2eed568b21005caa9ac90e08912e5a3017b2163ec7ce0d4c800412d6b7ef7e4531d567f2ba6ec9ec8769376deb49ec109ada8386eee1f5dfbccaf0a3c20489afbafc1bf24c4a864cf5b98069b9acac51ccdc55d1eaa9d792f21604a88a7015509d37c4177cf2ad8fbedb03fdc0ffcde394a2af6b0918ae8b5bcb2cb38d3e7ab7f294bf8ce11a5a529de680c1dbe29a7859415413cd3c6f6256cb302ba04ec5df9203e63b88d5d56ab361891d763bce888a66c7cb6e7a5506e57b44696a0bbb6c9d06f326736d378c034c512813d336f816d45ea956872cb02ed41363e67085fff679e24515116bdff5b46896c945c035f4ec5659a3404ccffbfdacf8e562cd25c56671d6d84cf881d7e4df0dbf403be19d513c3ea84c2b4b3b86ee6b8a5338e9f4e734d697550cb9571598ceb6107f118d8c3cd06c8db3067f1d5bb8cc3984e9b31ef97d2423932e0abac2b17d80be4ec5ce2f912963c24d7de874bcf7d7bb38f5365af9c35a69bde958d1217a072a364cbc6d4ccebe7eb8916002682b523de6f07bc941ad09f128cff257d228483985a948bf8a7e046f1b37c4de6cdb148d42a17c70f88f2f939bfcfba3ad93de35fc6ba3ff1a0fbe784e92173842500b2f6b4640a4560819f8ee95e409a4de7ee120a1343e508c1d34f0e9b45ca42426009be28adad02e8a009021312bc7bd63516b62a9731eb44f3dce246d7a1dc731ca10bc3153d40ab9c9470d23b761fb0c59d047101c8f789e6d465338f18dfefc0b1be07fe71b1718465229f1678af64d1eeeec05481f806326c827761b1d5fcf2ffd9caab174c7f034f22a903e071eacb05873f1f678a7ca179877bead75d52faaef05567e6ffecd8221260b3f34790dbea50051cca17b642d1cbd4110b322fbba7170293a6895b65c141b6c2f0722b7bedf3e167229be888a4097b953ef58caca80f973cd80d837800468341b38c59b32fad8123a1ae888c0f946e9a3f35fa99e0effe017a90840922151659d0c25fac9b90175d06ea2b2a88332ae5927731ddc3ca63cfe91dac886927f183342974b9344ed5311984c228cbf63a00e7ca37b97795348bc75f751632b7ea8181a84828837554c532e786583ff0a4354bf538fe695349fecf37a2be6d93e697397eb9815b0f72cb9416ced37a0f6c4f06cbb90b154b6aaf8db7590dcd293f0c996dc6e723114b35cdda451710d2051c3d6656b3cbd0da7e2a46c913139b5ee0c84fef8e9aef15664394f62183120efb139b35422b2afb79b7dd8ceff4ec196b21a0abf684d562856c8cd0a9ad7b4f3422156b2bdead90b5855a50330403597a6c94daaec9f12bb39c43704d4474001c44dd8503672091393f7b45f6e3d78a2100b2a24b03b75235b20d757f5274998202b14eaaf3c82c1b55b5ab280ed5087333e96842a82d402c1ccabb1fccbf937cac8b8fb5238cbe49094df64473269d9e6579ad03f6808a4a708e782be359f0e542dcaed297d30881d600045f3ddd5296d0cd5c839d3ef27931970f49c612b3aa4d220890ce43f6935346e1f3a3c87cfa8ebf84764ddeac1ca1c61a95bf6b698dc11e6bd135a4d7c35c94d2a9442d73ff14647f166f55e044fd18a51b911f8285d481cba4fbbef80bc8fb63fccd101f70a9e1f2fb654333d9d28ec0bb9b6d0fa81891650badc81a6f73235e86cb2a5f003bf6a81b5ba58e2d1243e99c555c0affec2faac9fb2a2402f454b35d4dc48b0f6ba2c1c65b33c0efc0a6b5e18026f8bf953455ff72db68b8578ed6bf82cd2d9f54ffad5b4f1570cb43812370e2b2514483947ad678063811952037f27d90f5aa26e7e66d66e9ff546fc0518541b52436f1ba23bedf314bdff19ea594be22e1f2e10f5f42811135d09a7ca811513074649bdcf0361687970c3e6f3fa7c3b4561cda7b0f69796340ca3b11dc3968d7bcd7284989a56d605686107e15df095ca7ad818965d875f87cf65326c0be52587efe1169fc60cec6f1fefba6f3683951b512041a116a78014530116594d86992b974853d6666af632e65f19c87a78b1f84c37d55dd84733ea0e26833cf1529b0785243c05a941cd0c141a4d0dbe2a2c04e3b0826c410b559943e9919f57e383e2df9ec748905367824d4ec1d35abf5b47ac990a04470929b606fc07c02b3b7027559de88ecbcd0f5bd842b5a26d24f5ae0eaa4c6ff3c4f55a5f071b12869c0a63c9a68f1bdc3cf4210005b9779fe3298a75f5098a748a6ca372bf52bcdeac0cc9987dd4068c2ce7a38a32f442c093300d1a187c467a100032c07f8418d05585ae6791f3bcb4f0c0763ccdbb6931f33ed05b25bc2be57671ac6e828a35a90b100c83aa4c7b5550bd6f6d4ae84420f51350a9d85ad0c4fce33aa804c956d0637603d1701ad8f90c922aad50919f904bef6cf8ca7964a607b90807eacb71f524a85451b02c3a7080bf8777d5503b37383be9ceae2b2833564fc911b147b1143b91e42d7d895cd0cac927f98cf34c24ae3ceedad4dff31e788131c8ca90f54839183f5b997bcfd14a9ef3e3dd88fc3d0ed5881b7b23ad66e5687a3fa72c4e6e537b13c9bd3e75725a669653cb18e78a08c02799a811d4de4e7ce04e09788594f954b022a92c07ed896dfec186e29d4c6cbf1fae9760fa110299254c737e92417fcc8f1f160891ffd28edf0b9cea24eaf0d529dff019446f7ae80ed8be06268478dac863fbc4f1817ed13085e9cb74aa4109df4358b1edc879dce3ba318922d6b6139af0b6f75b4cb67bab1dd632f83ed622437f0f5bc12242adf3d0a13b1ecf0f21e72407e7d76dfde551957726131e628e3848ae3aa2d0cade0e077aa0e3a657e5b54df316c2b208c8e4c09a4799ade4c30782334007e50a530967b20df1873956aec60505497bb18c6cdedf79523da4a2dce4f04f78efb2583e340d71fab1d737a1aa79b8f1e1fc77b3f95cff7ad19dc1473613a0130bf0f609182b2f656c5d3eff133ebb1232710fc96078eb44bd3301bc11c90c0a3d12704c5e485bccc8ec935eedf00a57ae33428028edf5520d259913414a8223233096eb41b5ad7e359264fa5133933fa7a843f0c02b233fc2177508a5418236f2211651495b8ffedf27dd2f7ef9cc9fe18fe8f599886b15db3ff1bcad5b38b3c46d4eeab2e14882e752fd0050b8301e4dd79bacd7ea86d72fedef3263fb871939ffa0a7f142e4755f04b893579243b80a9eadfa16ed46f91b0ad0d3fd57fb8060c46f7d39e597f5212821b377e6293cc321d40542a275e2f8d403eb0e858210fd891de61b88a255726bd24d16e2d3ce4d9033b874700371685ee62939277f8810b17d5e3499579c6f4544f3dcf80a65a6f72643f1b36a756f96f52379d7afb8ba9716e7e4c1bb0557ab935c0964e14e34ce5199241c943460f2c5d0fd762c0768cf7b8522c0797d961a10e24d0b47a760cd36f1baf432e594f5db0c91f5caee4f7acec351dc2729afe2f8024279d1e57c18ae46c4cc8436fa261717904cf27a436a232d338ecedde7d803e062bd164ff9e919d7e82d9cc6693d811674b017cecbda27d4df2261a5cfdfa2c0a35d5580eb4026a7ad55e2acd48c2391ea3ae09f98e0decdd575614090ec808e8eb985e9e44835fec82248ee3dfefbf37d8f27b63ee8bab2140f38a010745a57f4805b4c197657e686a8b20b851c4a0ece3cfa7246dea71f4a38e26be76928ce2d203042d58fd3af3d1a8c720000349458dce8438adad3360edb777d1d3b90c8eb4349b64423d06bd2000608e822329fd132f730e568251c303ab364c06eaec097d670688918a5724dec85a78f68c82a0cd3d05231c9577912d814e244d69c5444195e6c2164b9e07e13ea9971e1d1957205db5796c0a6fc171c766fb97788c52dba01a89d0e9612b393cf2109160c250ff6310028d6ccd51f89ddb5c89bc67bca0a6159a80c052d7742c8f27ce29d81246b9da3d414d83a12972f128ca91b7f6bb74e8e5ba1a7976d437ab6192d0d3656860fa9a3ac02e27c81e7192eba51006da2f9ace7446d7c32d4f7889c01763461524e11440d4e8d3f9d5b115d0e50cff6c4fce88949b94a50003a7a4ddbdc50641fffebea53187a480731748dcf1fe24c3755d0d2b8d235442f8d10ea2725c0b8ef68de812645ee60be8a720cc7add4afc265c33c236fb492beeac35f4d8ca25a77e9a42556dcb4097a306ce2f4a363cd9ef974125cc602ec19af8056bc8875e16f4688f4e2319867d06179853069f1c03c0a6ba55ba29e6003d8268bd9939d0843bbee2c3bc4eb3f7d4ae45b3d3005a441e684d4c14bcba5fdfa0cfac7b4e3c74de1cc9bcffe0205dc14ab0efd02c7ae123a6de2b208116a0a7078d95d99f3fb3d57295b57f8b7f2e66702aca9e187e894642c9c0821bab92ec12864cea9dd9e4c5aa5e05c15e63a4db6ce9941613668027598cf110056736f4bcd73d2ca9590565af15bee30f14172242b588fafeb24f728db115a1937cc37228ceb597173ef15f052658b8e3deb67f3e71377865f561744f6d533abf6e45bb27bf20f42b400fe8222fca961b3f5354f040974637165f1a43dd3fe56ec6d29562afe3bb6f7a87b5a4fd56c28406800173ab56f4ba46cfd8cd7bb64ccba5b380817adc926c0749cccdbf96470550edfb572da5c7e9c48dcab3f430672c1abeda63871812df8305eba5ab578dd6704786b4c5140c1a53838a0c674520bab38e2c6760abc836b13299077d449747054af739aab91502c0fe9ca0e5a82d8e09e9fe62cd11a654873368f6f33b53a6ca2fd54e3a61d2043f23d8390f1f292123165f2acd00e04a511e63a949c453adde83f3de16ed4c821ac8ef5177557f5b2fce66abab138cdf9f14363cbf6b3d1484512bd03b02d68a08b763743f07d3478de382e0f75eb0da0c2406c0ec4ce0bb6d40762ec790cc0bed45a670827a0eadea657d6d7fd5b115bd55e1fecef626334a051a8f2f14c191cc11eff2ccc7a7ca64e02dd336c47efcda7d58b04eefff45399a67ca0d565c6", + "0xad1785416d68701ce9c802b02a7d656515fffb8fdde4145f32c939ca0417c182780a843783d2f4357f5729e383d4cb7bf33ce8c84c2e86471e53ccb4d32f4dd8cfa6ea29e7387d0069c7ed3a1a19d4441703209fd08651b27f55e47924b06a1b6a1a6fd4898cb59736052e144274994d12ffa23b2a2b44354fb143626e0e93545476dc371c01dcaeeb82ba41b31950de0923a03c218358533e303d67cb8df4886d45043d9621d5bc82f24dc109b04e8736245a8cfcfda6e32d675db379aed90be872dc02b4f4fd9965d0d1604549acc16749adc709ffe54db3685d595a2e5efecd80035374316e23f7bdb9224aeb742b7d8910e91ada4a799b47c9f2739993c3780e252599839c7b0bac7f7f61a8b625eff92bee03e0dd52646904db706a771118aff8ee2ae096cc6bd58a99b647e960448d5e171d7b93a0c0a895e61fbb5c313110d5bbf3e9400452890b18d87d72329c21cd31c65bbc6e1548e5c9f084abf41b7011ac02664adff2c595a43db5486428dfd415dfb49ec5ffb3d6dd7c7117dd8064af892bc0cfbbf0a284f6bb66f68daee6fa244c884a7dcc15e893fb3ab0f9e2f00695859fd618e38b70ee100280ec0650b31b7803fbf5feb5c1b6cc9c6d0412ed6e89eb8a185cd84a42835c66ee1c9f7899fcceeb9633cd2e5f87f1d3185ebabb1b1f7c9dcd73d1e2ac29a2ea7f13fba1f333411b225ba36e3ce290afb5a0d550aefc1c4b692e413a18ee4bf6c1272ee09b53c50c32d99e8a30db7331cda231882d20f1347bae929546b0a22915146358a8f0d378b7881161e0a989be3bf0f4cb6344e60d26359fe13ecf58165e5557cf6c3de901af09030cf35363df64ef140bdbac2b8fde993ace451b0288e46ddc87aff308f18a17ae23723db890ee23ddfff00fb37c642aa7b8ef12965ca32c58712b043502681701d1ffaae12366426fc6bd0bb4b9275a1f669547f2ec8a4043a6b949f8405f461fb0cc4c5daf70123ec3c6af2b6d8b9c4e8eb5445505780dac3abc2fdff486e8de82771c4e0f696f90d9b72a5536b901d6350d7de46de1eeb55aa4d4fc9d749949b34033fb758d1103f29c983771f6b1cad8708f26037ed213b9adb2630152671fa63bc14c8c1e2c04d15543188bad2f3365b0ac895e655b8f4d2942ae45d7b151dd67f951221257583d3e6402679d5c8f051007db0e6d8c8763f159791fbcde87eadb99bc6f3bad9776449b44d2e09a4dbb1ffbd160c44e6df8e04be50d72d59c316cb262e40a82acfbe7dcf208c00652c9fb1083b71008476a68dc19a739dc1e7b776fbd88479457a1da8d634a7eb277ee3f0cee748cd92d76993dbcf4e4e0cf56c3f96dee632dabf83de0b27d9501087037007172ea0fcf8644277de0d86f264e92efb2b0502f9005b74b3fe611bd46f413c5500900c2ed5201ff8cb01f9ccfe65d96f484eeac4245d2262be8ff3ee62c353a34ab779adccb3cc41e949ee32775dea73cdb814bd00472fddfdc1d1f9151cb78a90a0e4f085ca61dec3fc0aac1be4a88b80eca559e07413d85f7431f626a5e799fd31b566c759676b49a2643e36cf9c63a269e1be37d63368d3934b26b6a04b6eaf36d011b704894b7793591094fce05ba2431f32c4be03b2a77c45b301a5002c273ae43bbb8016c396d884c616d1dc7d0e95ff3d79c7ce4d36b94552ad2422944dedf0b054f804c059da5874eebed2c3ba2aa4899d0030ac2dec1574505cbe0ee39ad5047944a9ee6b47fa3e6b9c6675cc8bbd8f9aa352a78d74c21629b99492791909be269ba972fe19813741a6f6ebbb49ec2d2ddd43937e21d60d61b5881b50a1222cb9fdd4234dbd85ff6f04c9b81be072cd5de8fcf8764e0e4e9a789c44592a1410eb3851ccf0568a19fe64af7fdeb4fb6040ebec9b20123a358c5a03ce610cd8047dc2065dc992150575c704d203306e8382c2b37470f70dad4f813de8e35d50e276e36f5bde26e96362d959d004a38d29d216b589a1950e981307ba994cde218f583a008d68a9d890d41db275807d53a31147004437868b778feff3934ad5e320a00ddfc12f80295ddeed7150753ca9f48ce5c989bf2275845a3aaca0f282e7c54da0f705cb87e1e5d2f97b98da6c0780b75cddf4274b38369e855c3a819d62cd4be908727fe2deb789fe275911d9637f48e10109cd104c8d9ca536de77dc69920fc1d66e72c6213cd5276a65d16fba9535a0a064f9c6de07df50ca79a9950e8e1c10e0396752c652e760d4a6062d288cc73bc73c607f075b20b254defb2091b56af1ea5308310ed21c270c3ab063734d7ccab8fb1dd1fa7c9c3ed96fc599c46d0b1ac3c3737b0fc62bdf0c1758c49d53ff29e2583827d1a85d132d338414a57343387ba2f76826f5fcff54497e12661a4a26e9df3097d0aa1a0a8c9fea5a0f67c989f492304e71dba2290b911c9aa42f9b4e2a97b5babae48df8784114921cf36103f031f712967cb57316483dbdfc2064fd5d6dc66a3a19bd81f6d13f7e1a103b1964eb315457b1c07faa3b5173fa2e66b161b9868c5672f9f69750ca1646019e8c49d761f7c95eb1345200f0321b78ab2c9e7773ee2068c07e67fea042ac3c237aaa381ad13a9abce5a9c215a02d0359c38ec03cc4cb3af725056fbe5c0a3db45276ff0fcc61983e775001d517e8affea52ea0b6f03f38868f04674d553b7563a9e1165a5c3f9cd3084225864204a527057852384e33b7d0294efed8af724b86dd19785e540ef98314dfccdb86ffc70235fe923fb18fee6257dd4e3cc3bd99b67792578ff03542788e847990cd6e1ea87c487a4fb3b408f8ecb2035e9c0662d2d2cf56da56359701caeee803744252a64a1e98699ce6e39a92d55a8bdd3b9b0df6fd714769cfb9e220a52673bb6a6ebc7dcc66d990cc5183ee2b8635052e3f8aa128d2289885790edde38d8e4f8febb6283253f453fc156eb541873f85ac5f0032202d10b0c8657915e1781fb526d802a6442a750076b8f6fdfbb4816887a15371b005dedc878bc55867ab502f411f0512b6996cd4ece53c47988375cbae6f9462f67889beb73b7f8a59be9894a92178f75afbc30d5f1a80863ebf6a6b3fec21ab45f16cf22a9f9c09c83380da406d5b195bb136687bc853b0d89226604faa8fc1c3e526814286360b6b0e065b8da5e8a065d55f515b158c6d5a6bc940dd17a681405885be1d08da651e5c3ca021db81fc3c181367b2381d754eea841191f1a2a918a88ad8a354003bba0e7600a934036ff805a966390d58c4d782da8cbbefccb00462a80495ffcd8e4c6f65bfcca2526fa88e8eaa90a1cee880478d86e3dab55e1b6c42e2c3d739fe726bfae394dec01e63af5d7594792b725e318f0da8f455a6424b57a8a190cd673e3b34bba02ea0c1da59043eaac6af4265b83e2fc49fa56f52fdec722d461c69f3b69f567dfcd811fd98edaa1ee46694b4990d13df89061bd552469f2c6c116bbd51a9fd2e114a913d004a55729c1ce7749fbf54c20e2267efff0fc1a2caf2c1279255de083923fc22dceaa012be5db3dfce5170edd5c395e3faed96693615fcb168ce55acaef2c49770ca8c38ab5204ae15197aeff81af80a1518a3e7642fa471d76a07c3b278afeff9fd16f7ba5b0c2cea804231e661282c4ce5a2141700fb354ab48df2609f83de4b0a9abce1c9de04436498ffd349c34929cf4f2393e1aa8ee1b1c6ed3b8451ae72ae42a73f93f4ebcab5f5b55a9c635033a0bb082b3711b06579c3d5a2e672ded3b5bb2d40b5614959a9cf6fd97293751a9185c180a8bee8716df6a2fb4bb001cd713d5e898e91f7bfd868b3c64a9145dee293a16300cda5fb26e649c6ca4c75a35529d5fd70cabecaf40260389f511d792bba2b549ae97d0a8ba3eb9c76a660e50be93637664120ef07e0fab1357d96822a6087b2cf075111c18f6c40f77ff6f6798d6901482e11de5125ee525cf15baae1affc0e298bfa65252c016ded680ca7dfd324fc80e20ab1602015c7485c2a94eaf525a2b0aa16d36cbcf44a513ec40d93b728798c52927ef2ec4c3ca86897f987b8754f96275ffd52b2a872759527c88374dc0033e9b8b3f9111ee83d3cb292c454efcf271a5e3e2a474cffbebbec5d6deb70b78861d94bbfe70bf13be2cd629bcc225f277820232bfd7880df0899dd9ae76d1dc8e1a7b7c8308ce7d99ba53b4c7846287bac6ee40bc5c751d7fcdd6e64730700863a43f7d4a9fd1ddb70eb778e2fe3f73e6a5e6aa8666a83e0ff79a19126de24935193a1e16e5fce0b8fea921876be02e4297e0b23228305929af7ed2f13611df384e2ca44800ce4728b9a9e0ac6b4162b04393bd0e3b9aa86f91fe330c4b427e4c4b09b67ca4e2686c6737ea53404b6d82412bd843b6213bf46e4fa39b0f1cd074e167e1ad33e2ac04afa8f921f953e21a884c2e066aff76df146b4dd4bf0df026a6f216f1ab9e1218acd6c90e2a1a0860c510935520079166d1a7a2d87f86f0621d2f27bd6323ab533f639c20fa5a59fefeeefc4d0577171231f6d3bd4a4a549e1ca54dc3d6861c19c9adb7389d0f057b29dc050899a06754ae1558a0ec5f957eb0c6a55705fb1ffdabd9e3ef8a0e6d169f7f6a09cddc36704dae6bc87a87a0630ff8ae6928c60296307aed820445a87ea0098e452f0f0baf5e428ddefbe454c262becc0cbc83269aa49026cfbbfd01524915f7ad44d6c2e7e0580130328f074f716bc990224c814ecf8ae35eadb17671a202cf5275690a553e164c03bafe02f873934f2a62271d4515d9fe857fb03b23bc6065132c0fe7bb5db6bcfceded00b09f396e2bbf7d976be584538ef8853505fa52aade0b0830e24100dd924316b3082ee71ccc340fa06949e944f45d6280cffa57b5835cc61255b1d80593115c3f9deecfb1820e59804fb35036b3cef3eae6c57b3f12114b8b7fa08ec9b5f265bd4cabbe67ec23378e9462c412a2ea0e75bf28ca28cb098cf010585986433651ba44e9c2e04579fcb965facac4df583dd90e6ec9f0a073d967b391c5d9c81031b5dbd0809f7346350244232dbf4fffc8ffced8e03e4867526e12057c27db7e4aa43b46938d9aa6c2fff251187826fd2287108dd15dd8299b52311fe116ed0b8b70dc7ca7764872065ab70d21e785ba95439dd0d3bafbb031b911de8a1233ef8c74ce8fd88a2c066450e54fb7092a9f09ba6acd7d67b04cef19aa0a6fc997309702d5e858dc5ff87033bfd69860254244a6dc3f549c9898803e2c4bf9afc0c76cde5080a6e63dfecee8a385ae71ad247276d7bac830db16dfc89bc7ed7b22e769c1fa3f5e03cd84ce6a8d2c8b45f749fbcda26b7424941622aab45a1aa825e562d76d1242f4b6bda745df5073e9233e9b019c879119d5c74eac21895df55a75f44182692c5cd1224e1c85d16eee3c5e759cb8cd10d4359f29ea02b977e6bf23799477457b4436b2a023618066e9407366dfd8c52bc1f46a6d54c46370401344a459ef06f498ec64ffa50a0bb9f43ff2243aeaa7ff6da7bb362c443c169139c7d68bb79540a720a21c7fdccc032b8873d9d5d914900b7b82e48b498346a5b1a89e1c65a6eda7ecb037a353641530e232b90b570b8cf0040729db4a04351219e67570be28412eb16acb97bd2521a8ddaad4e965c25218a396885e8474e3adc032c2dff52857bafdaf22f336c553bc2d9dbcb4c153019e6c8f0da65e2e541351d94a38b4adb22b096232e7f9d1da99151ad8600f60c547b2a88b1b2583c9227f7dd639f35cd744bae28eb2fcdc49f0e4584619e0164cf80e9b66790c1d907cd0af6618a8f18f2d405d512ce06409768473efbe834ce83c088a724f892b680b708593fd3dcc3cf33a59473d2ee124651257f761ab87f5bf3ed12e80f6539e7712a6dd85e027e507745ad563e8865efa8e7b1ec8db3011d52e174ec68ba04ab2ea81694196beccbb268f8b3066a0e8f59834bcefaf4dfef480c7382aa4e7f86daea17a352be6fec8d8ce89ca8392851c3aade684eb716b35ea56f98d546533a0aa423259eb6f97cbc26b766a20e918b8c3e00c6a5dd05dd79cf2cb2352810506e8b0881b2dd590c3c898f9ddec04e516bb22bf379295b7bc487d5df328fb919e5f1135dbab7a8695026665068a44ca07d607a3b556f62aebabfb9f58c2f6442b3f8e3b6eb2142988d495705af7c2dd6007c297640a9cee0cb3d2fc833ba3ffb53d17269c15761aca97ccb0625105977b9b41e0f7c158b3ef297997f60b76d806002880a2fe5385e9d2dcce3de031a5b564adc0d3394dae05fc7e450a7c34b02e8d460ab185c80c5a0232461b76aa35eef7035d9398ea05e5040cdb6a6b45e900d32b3e6d1c9e9ef5f09bdec31d24170cf9f7ce86017a93c970386d96670504933ac8286ec8ad4a76a0fcf50e1996ad787759592ff713b60eade035611217c0c14c9653c22dda80fec19a1d692f9a1c9e5a9e57c48d31e7b8e8d6d674d8e9a7ab66ed72696971fe91be1a85574c186772de5b08b06d41dceb2494d4c9f7f098337e46d3d8bbff42964f602bed6d5784e61fc39912a6ea4373d5ca4230d644f080f6a40b7703dd9b5aa7dad355e3cd9375b972ef3c4fe7983d117dc7cda7a8807e84954f2307ffb48d29fd4c4bdb4a6a9c6f2f7134fda017dc52784b98652e5c5b2375d7ad90da24c3b3e6aaa34253ac5bed55d23602f99e05c958e9db13f3c80b19f23958575d98f47579b7c1f2cb8ab890172a3081e627133776eeb858ad6dc60af93d5fba4a1bfc5a65ff1f304b003c47d4e44450d48a83655c0ba16208e0852180a06d4b85781c01e791cb78ab1e747a230f49abe87c7922b123de1e0544883ee28523290fd577423dbfe6a2b995710c5e3b4bb6a00a3ad2a9870ac0db98d23fbcd29529cb77964d17e0264b181d4864bbca07d06958b08f72c3969417a5ab547e74cdd44827e54d7d765493b2d4938a53b370b4221de9dc289b452de7301d6223b6472f25a633a4f5c6cf305800ef5598f42d6fae1d98e34b3caed3da627877c0197354ca9d36afe85e08cb5cbc7ca717cc181e03ec9345c427be508ba0cf52ded337e197b6052485db04aa546a60b79864c0835e4f537de5d93303e34979f5cef16a2ebeb39cf6a6aaddb4489e4471e629e8698a0677ce0ac022460303904871685a5b56285bd2826d41c0fb45d5e0d82306d45a0841c6b19d7127000675d114c5472881c28722181bf12c1b9d44ae6fbbc501d001174c341d5e6eec224a766ffee5a09638c8aaabfe44d67442c7aa0f1583418694034284eaf6f1efa97652d7efde96b09ba9afcc34a1508c6b166d35bbd3925dc334b58a609f3f6278259b325d4eec19321cafa657087829c5eefd2eadfd18830e7b9e0c848f9123c7c6934ffa45ae6c03f3a8a1a18a4eba089294ae05795d46fbcf3237c15215ae258b9296d449ff68ef68f792ebcc2aa2af4563485578626427c9c335a347829942ec1448aad1d1ce7f96b700928936d076d1732d7d5b85b2922930738724008bbf24e4b82ecb72c4a4fdc1397b0d3d37960394b54e3931537d4fe468206e5dcb53b3493ef717e493320233442ebac900a92c528a745e61de13c26a1d760296fdedda53bcd00907c9466c83e42887969544a1098532c6f32726ad8cb4f48fa9af5a222a088aeb96fab1e9303f697c4ad5253cff9159a6cb8d505d02b30319c2bf32d57190d378f3c72287f6d66d378817adda8d2a65e4c3f752c4b3d79278aacf7983c2fdb063bbd5153b95e9c46a4cd01adb6238189a71f3cbf988ac03d79440627f2abd1dce36d37d5d2c6da25a9cf19fa5ca731797b69531b6ca30d93531712160c3a6f1d391d2ad2a2230da628464de210d8fefdd230cadd9123fa1e713389c815632c7ffe67d4f419cdd096e6633e73ddac0ad242c0871e3cc909d146cd4f88011eca0d219f3152788e8b480983f1d68c67fb156266e3e7c4681cc380acfd0c24a1b504081506dc3339f922f539ca418d780a61120f20ded4ff213a1b685d2ee55cd2a32623c9ee275e95423f0e82f471f4ba628808c40a46cf47af5d75a1f6e68b673063af1bbb46673bc9a78440ef26bf2582279f04bb4931491aa69c398f18d9af20bd9983a4da846e5e683b4559900cb8cba4b6e935280715c8d42ad9becac30a0064d003b253f1455ed6519e7c26328255d59eb005992fa693cabf75e149bb1f4b19bee6f98fab07aa8ad09d2773b7970af06dafcc73e7ae5ac44f846e541855c364da800676d86fca4f32e50c33952ee066e5b973e104ef1a33e46051ed3bf92b8c669f33676fa6984f8fd2838193a4eede1f40f8437eecf3ede4549430d6125ca74e2790c580fa27d13e4cf6ca948f8a33f836c03aca6d36d542e1b1a908733f5c5faf0d662be87d8f043f877ebeac09a11567b4adc237372e483b82e410a8a37f56e84e32bcf6a73a0dbab763e5e81f8819c6f8aeeb453665a40ee50c0299f7fa4082e69562de241f46d290c9cb42e191d8e4219916594b4d1237a10ec4b9232478137ffebfeb2c52ec9f2dce473b10b64f926f25a51279ccbe7f14876f340a95c577d2145fdc59b01857a103d2230102f22a834bcd290b1954e0c928865b6b17a2070b081d21af0db11d3d57851b720e019809f7e6ff65c0049edcd78afb7092822396f917d1f0589f399dc98fb296465fbcc1ad6a4015765ac439c8dfef1e7863b7687ccfecfaf1e411bdb56422dbc0bb50f2f01f5bc32fe329ce6d27b5d74cf69b8031ccf88da3bc4520ac2e3523a214a4a8d79d83bd18ac04a57fe1dbb4b9a714f55b2e38401975101a7ebf51da567b6a685b47490eb4725b0de6323b0fefa76f4d0534096b8dc348672a3bb9df756dd4a8e733a4c8d35d96f2dfa25e6916a8e942b2f5ac623dec98d3144a442df2f2f61c2a4cd8a96ad695e3d6ffbc2fd8190d30446cd317c0f9def2d90c84140deede85ed3d850384a938ec74cd3bfae84bade5b6526a19056ad47b49d7653b0ab3b944628aeda7d1c42e8cb2c452306bbe5cd13aec3164229a9ef95d39ed9fac15dd57efad750c032f2210dfe40e6d89c5f2174ad0dc807fc40fea7f533839c7ddc3fb2effa3a306f2aca935813d8edcbace1ac058bbe6900e9db4241d0514a906b8dafacabf350ae0b4c28e2efa982dec08549a690ab8533a4cdc499317f69f3c3e9e8151a527a3d2e7fddc2b366c8f9740bc094904f8cbcb28f0dc55e2095aad9a3f21fb4b857a147608329d2ff633c479dea444934459b3dbb03b8878c1b561706083022ba68ac520531e09c04ecf8acb78181575f8aa6593b0ff3f27d809589e2870c3f9081e533bdc4f05a4d6fc081ffa8e4ec10c6dafb869fee899bf8392453735dedb2483e14905a59df5fee3c5de260e0ac987ef8b8aea297d699ef488b49f1bcecf6bb19ec02d6d09197dcdbd9a81457f2c8c5726a8e0fdc836a84ce09cdcb5710bfa7a2f815609b1ba7a24816da0ec4ff96c5ad129c5e47b3010980a030ef1d79f4317215f3e26e2ade1db7fbaefff3db043d8d9ade0dafb910852e561ef082b5ac518634a68b67fbb91efe12db7b4ddd87fe5242901cef14b63209341083cee89e52886e87500ca0abe981f21f7aa925bd6dcddfd191b6ac8affaf97b204fd5bcb546365b366632fabb6ee8ef7d9bb906305d6439df563b0a40e16c5b6ef2f1a03ca2af30bca16552334c3f820d70bd740d21f61d6d6f1a3203734e2cf67ae7a4ffd505fc0b9a8f0fc01ab5002987ce7cdf6550ef443f36d81848bc6efb275ba93862d944938b8b61633a9fca1a665b944278a7d3a53a078c0b377485cba590725d8d30e1c8d550641d21268706b3b19f02ff3c2ea9ef23737b751f2e08eb59e7fb439830ec36664ea5b59d83ab7c7316c6bfb041cc2d1a6a337624934dfabe1b1b2ad6e992b1c4f053fa5206740f2d3dc4d9f2f2cdf4f8d690ea410a383f78090bf9d12a1d6745b5461403e071d19bffcdb1b45d71cf6a1dac9563137f64b224999ad91701bd3ce359cd0276b4bf96b4f2deda50d2021d8bf2c6133dbd4452173551d29ea17a1263c3b62599628271cadf21cea92996d6d96ad836f6e60eb4d50da7fc0b52805405d7f42e765fb1630d7ece02548b93488f3f85a655901bdca8964c1496472a611461daa21436ab505c16f89b3c5b31879496932dff4bf556c57017eab135a81296dbd3713f60190e1bfe6bfdc9143a1f1d995a6cd01ca9b3caa17a82f1c0dcc60d27c3a648ab28da4e24e15fdd223e8c1f8c1170583f48003a5dc7eb0b5faea77f66bcc6c4050375048bae0f7d49755efe269ec46853253f767ddd4fd4f54758c790dbd7f3313909b6acd6d1b1be26c3656bba340c51e9df6f678a6348f91499bfbdd4bb8b5177e1af8437bcb00cea849c519b86aae7896edcb6100037aedb1804ec6b2d460dcc2b90768098d1c29685f7d9b51f1e0a02449792136126de89828c5a980e782c78391259f784db242eae0518bc810481e6b999a926811d4c4cde06fdbc3e9dca06250f7dcf7fe82705b4c6be7f78fcd1becc533645c1a7e0859ff61a40478a01326c1fc2a43e4308bf19ba6e25f42e2e53875899ca06aa0ffe04eb1c00f44392ff22c3f27b225417118c48a6318bc666f328a6f1005ab3f3a1ef3bbe29005b6e9109c988396897c83ae1a3a8493a1faced9d804ec603fc50a60b7652d7df3939a4a379a85ea69122551b9ed14303d5cbdb074d52fa958fb0721f969b94d10477dce4bff864f416a41b92c79169c444d1aaa3a672f57c3878caba093140ad31832abb308735c6901c527030d4007f86467aa7846111fac4238ced9a8be22f7dd3ed7a4124f3ce40b20e20bef7d2505534a98d4c252f6d4736ea07e1cab1b7d9389c92835af9c4bd0c9be59276b01d8590dfdd4ae416af415d6566623c506262adea1bec53cec3ee0b8c15a31de9e43321e35ad9e824639bdda270aa068cef3a66ee1e91e34e9ea5febc896985b6dac1d90302f558c8b2ca32a403273e44f78464db3af28ea7f8488e348e7089e8a1ea799c304482cb56ba738c79c24ff45fd7ff4c444bb42f9d07224193ac214d5f976128792660051f5c9bdf3d0827003cf9cbdae6d1b36791500b850319061ce1da8fa482699fde401c1323090cd65fd33176bec537e53cd0769ad32325edc4dbf40f30c53c0ea25a3d1584f973afe25db1b9f65d1b83c8b9a93922ab5400e0352ccc39c9c56e27da3ffb0d0a128cf16cb57648674fc267fbed1fed8e85437c82f97d5a8d438d6e25ffe0435e120620b1cb4a4e7beca5b6a73140930fa27c9c4e7b7b678cb8309fd9509dc625adbb3ab06c0b0876015b711c2efd19f936feb5f5fe5982b36e8929d60f20a1bdbd6b2a61151bc9271d82e9c7905f75265bdf7022f14d288ec4fdd84dc391f7d79b9c51c685060bbec594441ca8d1f7bc87ffcabe4f85d60e0312a792f08f39bcf9a43daa2c31823ec9f934717be74adcf113c5016d8597b707c0dadeb2b2122658dfa618edec5d26a9d49539abf214f56d5af0e6e80861cf98fec7509138806f938a9c7b7522bc38c0ba704b2c0d911e1517f321ae6cc10c45d8552f1dbcb509d1b875aca207175afe383e6f56c5080611b8a054b9ab34fba6165415032d2edd613ba1f08e7a31bc5f4c7ac69c1bf9a2ed4e472a844eb2b79d77167b0a84794332ae11c67073351bc1cefc269c36483c4f55279e957c613ad3d610610a51ab9072d8b721d077463f6448f2a2b1a003b1d2ccf6df775b9e1d3f440c3f0c3fe934695be46a6381e2a0e5fcba9e8eb576db4f70b0e475bdfbcc888ee3c99cae933a657717f8918cd6f7145de4917a9b34d88fae76251b47589bbfe9ef282de98a381b9114d70c482ea8e9194253ca16283a9ccfa7256f35fe97553587a2ebd081e2bfd0085509b20c49a2fcf873d5633262c750fc5d317a2cc0f307807d81cfe52a0bd11ccb864f0b22bb6055a4984fdca8baca5b2585ce89175bd2d41c63381bbd21d0e9187541ea2324ec0e2aabd19a0d4dd6d8aa2eaffb66169fb682da15afef58332d796df39ea0e461dd4294be3992374d0822a095a19ac6139d1e0979b648675b0d0269db719c1404eaaccba3caf4f62677c8fb08ec6108594a34c38155ef94c2a4911606e4d7e50185a18280b26cefa8194851ad75cd08a8af7717ce0154aee3ae00f4a1c192632554f27d2b7ef231ea08735a790fbcb2cf038dff5d716d453ec139fdae1ff5c4d74bb3105af15767efce33569bec3fe316ddedee219002ec9421b48e2c07c4d13f43361b6e2350b37fe0b88c386e87651fd6f56cd8a49f6edaf905bd2229b51d4eca00972470fd03ec60843c8b34f30086edd0ffb4f18c4269dec6618521f072b867ba165571e314da62cd67131c272a6e62467745623aef6e7cfee13013f90a9805c13608e49dba0a5850d6494ac950b5b49964bcca719d85f1e38bcc4e9028caada429ced9d35b8fe1f429d926f4bc11999191ca46dc38f49e9293b91a148d16ab9de0a7b1ba6739e1860638540d6694044e66e17dc34a1de29929946e3f0413b67da99bf91f349a97facc3ea99c8be44436dcd1f1e1780cb4b5718221fb89a29cc28a9488c562ff50a752fe43b33b06b8da4d2fa561656af8760f94a41c54656689275254f0b908d98131bb9bc628e529f9076ade646b9a00d3f4a45cadfd379c2c0c36de376472f81ef0754a98e8a695108267fbe3e7ba7ffe1b9817720915a26d97eb93331cdcfba660dc2351c4572feacf579c554cd3f3cdfa1cc7bde9657b3404fa53886e912cbc8c7b57d569206fa5064ed4cb852daf81a33db47dbcce3ba636753354023d489cd8f0455be18105746aeec94525d5c2cd824c6e2ee61016f9ae5e703cdc0a2b3310029a853ee50fe4fa8ce60a47e9ec97b5c8ad2b68ecde084330c7210a7414c631ac16c7ae4d9142f76ae9b11caecc98cc38694096bf34e78bc6dad759825d167ce10225dc493b20636ec0c4da28807bbe8fea5301436c4d72d3dc01157fa3b66457ae1ee57bae80fe7a91cd6af25e8f6179b1c2b60eb057235b01de9f41fd57e110bffeebd5d1858674ea8baaa6cd7e34ce9ce7ae07bd23e5b7f3eaa2d26d6da50f0399031e098836105e70ef67a912fc2d80c3e05e56f1525684d6ffd56dc1de5fc7ca5207aaece683e5ecda7603d98e73ce897c7398a362cace358c8292ba31b242f7625b8d0c64e2ce6107ca257ab374d0da9601e62c32d90d5134fcebe308603149c3bf84076f346beda5eb96c87bd282b9b384d4b7c68dc0e9c5ca82e0a4f57bc8c51eff0fb6dc6b1d6ab91a32a1a4cec8067137b60cb5f7fce91cd5f8d068286b02a23b9c9702d4ccfff0b1818801d7f0cd8d326099269179cf38707c3c30a2f296072df023abd1dc47b7c055e6b64ae5e5a82f2d9ec4fd4efe8d7fd8c7419f1a9308aedb435fd0fd4a52cc146d3cd8970bb29af603ceadc9925ed5f5c65fd3603ba6ed7e4b439ca6da8d9843e32679ed94367697e3818aed197b182995ba9da4329f771aac10026788c3109b80728bff4d6ecc733153a5721ce3eb5271933f691685139d425a4b3642f5bf01967675da549ffb92a58b5c6cb7361d3aec254441dd47a67cd2ebd4e5e226f00ffbd60713f6ef975579b712600721ea8946deb10cd89c65ac096a7c20554f92d533bb4f253c1c8c74aea5d486cfc2c20d00d7ab98bf95d4c2f40ff7e6e627a761728e6e063996daf0fc1e8220050744c0017a7bd5176bc567d1e295c4db7e78ad611dedbbb397e4faef48a5df43295347167bd5f52aa30cc21bbcd6f8b1c284a14de6a4cfa2ea52baef639ed65556379f87e28d5ebfa5edd7f4456f1ae4b9a0b42bdb81c02ea1fb731f6f4c0188a64c7d396fd063d1bbe8f9cf8722ecc168eb9017bde005ca43d33855a3c7e336f5219f3ea6fe282461b042d0b958ff02dc8bbc1d8534f4837e6dd3af4964d06879bca58685b399fdd140db7db75ac393000b2fb76726903b513702e0b0ab72ef1e47979ffbd326b6d9f15be6d8f700aac64fe9f50feb3fe4152ec0921a78eaaec82bbc50c394bb7758157369aa14f10ee142078f3991f10e245bd25d9fdf0ab0bff9bc7a493e51aa3d661b85e2e8a0a03a5dd896f4b41daab2024def7a14f408a9bf27d14376bf58f8fef2e04fd81851c9f3fc56e02fbee1a2df7b7d4ac8d1c89c883df91b2fc428bef0df9939a1efc9cff5a87050cb46e074bb0eeeb3c2c2006adf3afeb36b226560e93ba37d441116cb6ebbb939e2126206bcb4575f286614ca58810031a6c4c4356e454ad3d4cd3d727bfa77d519f6ca2127537077320d53dbdbd76fc583384a5090dc2edaeb13b34adeea59a9f174571db88da56e8fee14839a5f2600e2a3905b824cc82c09d5c9e13ea61f76a7c839bf2df19167d1875140f1befdbfd0ba626cd05dbcc53a8eec41a5258f076cff8d699ef16cbe5cf65ed6ac7d5dc0d3fe984035452a70b9a305cf6a2a8b8eabae774a7b7d13cd4803dc828f14027c7735a88e8d2396fce404befd1ae8118d3b943da030170ba841cb43a5d20a547d9d5c368620c2a6d4754ab1547e8b28da1d07c942eecbd1331d67328ce909cf596cc605e2747b708666a03afe97c2c00a9d5d9b9b7cfc1929ddff5fe77743ea8744bc47e43cdd4f8defbe7acba3f78eba149a362c4667da78d358a4406062c048cb208659682ead9a678371db563753526c0a0ae8f4f3640497cdcee5d6b3d561d3feb8e53cb962f796cc09c4406e1e939d8aaf8e7d9dff920ec876d1468f800090cb52a83c256dd56b3d715ca8975b9bec45390ab25806de24d8c95f4df3a9e56a213ec80c08e8e00bed0b21bc0aa6afc64e88f5391aae06407b6a27d29c399ae1943607a31ad5b7ee68938ffe4606120ed4b2b6778698800384b5461308034dfc82b24f5bb61379cd47e91b3680002b91e70220542315f12e58fc20768d3335c86555149b7225469f2122e678ad8fb3d116cd85fbfb6477c36f3ea098e2efbbb78d27021f27abfb7f00503c0c2c675838a73ee3bdac2d722c3f718b63cb77135778345fdc8d9e59f5b445b58fe70af47e7302871935daf6fed2842904ddae02afa57c9b08cdf8efa3e866639a89ce8aa9343cd7151eab1cf4faf23cf0bf9eb9a9b6bcbe2386027e8da6d6a66846c47af13e5b1ba7e0fd033395670dd369adcac2723b78f7a96db4d6818c0535a8f05bf9bf68e64788352903914a6d8d4c8c12b3dab2e850641194fed5254676fa9632639f95797cc18bf5fbe683214d58a4c037e7a4dea3fa48eda21e53481d182c1948ab2cb12c9a3821fbf2065968299e6c94fb999b52eaaa01c64a4d17071c4c09c088092a5599383cf7954519ac6c53b312cb1e530c69a9f09bd40fc7a0d4e8738de9adbb73657a2743fb0240d3bb2519581a5a47d7b26b7d8f4fd5dd6eb6e0d4351ce90c063edf599505aad130dcd547523b8800d2cbdb383b7ca0e32658be3fdba62e6d0fd3044cac907bf82afb374f14abb512a546b3c4bc967352d3ff9018b103f43075ac4ce18a012e8665d6a85512713ef6e95b70d334b911cded61c0575fb823b1b74b00e98ada26f7b6c119e7efe08b94a8d3a17800f5cf54b1b11af27821b9ed5ac1362e4cd3be6b66f029986dd312081fbea1a3ffe3893f35764a77040146493d87900980a43aabd297f2c1bd9cae3aa385892bf8950ca45cfb3380530a7a6c89db7c3d6d74ca26a4f5c4e15de2c3ab1fc4c2b133328bd2725303bff004d9f78236374c36046174c1a52b8ec11ba9856759422911ec452709954725902501bbd0f445207e4cb0825abdcad3ec3e65aacacdb2055b8b6426d125b63739aa3ba44d6548251203e8e6d3cd6974fea3f1a9b3fe902bf68d0a060f73611924f02c8d0562fe5d1d068d7cd2435a5843991236064a523f0586196fcda201a5d609476b6cbfe99bc39cc27a6a99763e7bd8c170841ac5352473f03ebf5fc6961eca0d76008511bccc4dbb788a1872da70f966ff89164a70d6c0115487126148fac0be9cb076174bdadc3bfbbe69f5f9412935168a0d4a9926d247f258169eeb93ba1b308cbb486d1be870fb999fd80a746e4d7e388af4f146508e3064f363618ef738ebe8728b94d1d8d80b133a7ee78a8e6b4c8d1543b0af3fa2264b456e0c93ecb42a626c1b2fa25e13c0669d324c621a1e3cc51bc7faf63bfcf2cc5b0324bbe67fa0e12e0f4a559cf50cedb3974f3897fe97666881582e3469c3d2ae0ee02a51d985754b2419f59983b549ed7cc85363d07a27ab8a2c6c38ac7ee4bb0a3b8e607597706f5bc3df45b3c9785d14aa71b6199ffdcb50a03cfbab8854cc1b217dcd562780e699e594188e8c94b5e5da57cedd291e6b47983ad319ec1d2e136307bf531f72d901ecfce5f31d082e2b2742c25ef2f71a443d659e1bb51a4e73ef61f9cb0a6608dff01dd685ec856a890275e88f1069e25fc4fa5293a5a1011c0c4e4ef1dca8a42b554abd7aa7e20dddf7b056b0d14ec45a284cc4ab2f529393ad38ad3d2bd7705b9b1d44524f7c7be044cc7c6d8ad9ef597d11be669aed26847c5f216606d28860605bc4821e7f622881e7a2a80fa737462d6a33e2b06958e371d250e78db71c018c108b9263b1bc2b69536e94b75ab2edef5fd2becf24e6768c4ead0939eeb12ff5a33bd5a9039f09cfdf7eae86f5cc4a5d520f1015bace14086f5a44a5e2ed54bca21e9b4b98fad30c3ccc0118b1c35e9e24469749c718696939854e0596207af0dd404f33c07390ff996de6640f669d7cad83c1f0796afcafe1074a5e11df508a5204cfad5778eeed65c1c7f5aaf9709018610b4602e981c415ed762db93e5a1178139b5f3b97ac63429e17b795f33153e45e05c60278f84b8aaba2f411233fd6cee2dae36892fc0107c99b690567386fc82f8b133d0d6eb21445fc0a1d0636fb1cd879ff736812e0e4b5b6f6753960afa533ff3fb34fbbb22241f719d0e1e3877ecfaf1c02c382cf391d9be1a0a6b7ebbb9bff84b49a98fc308391069821162538d3baacf3e20012973097099fad1ea07f7a81aace25046f01cd7ae501730145f844e9798cebf193ee81ad02697333668f433651b831bdbf830129030fccf50b86310ab40bde0306502a7f5d9ba2477aeb420c989f301271183f3a2f9019158feb7c546232e5545f3ba357a1f70b3616cd9bd9d5aae0a25d117b7d2314a1f08d754c6ed4e19a219e3537d233707163e7837acb5e719fb66b6a2d0de73452d916bb1954005ae79465348fd83b47cb6346f7bd07bfc920528a0fe745aeb013fe0e954fa5a3f852f5c05cdd62cfe2fd4802ede240a5a473ed25236aae9dcc920da0153e6af25a4902adfe004a5d0e935485ae95cf036e0e0daf41c20d01a12235d69d84246974ec9096bed55fcbb32a66bd94b8d6cb8fcb0909376536c90b8759b59c7f0c9a6a942ea58f7c87aa2f933a157be492c7d7cffd6a0b0bd47bc923cf50e64903c1b2ea204f75e309f3d8a718ec3f7ea48169a1ecf6d2a13fb2e4c37f24a11e231efea543ebe303c5a96d32b66cfb1ee1587d54e21b40dd2430d95165cd21cd26bd19750bac9054e358efe53c273bda384c8ae6eed0fb7a34e91a0d8c3ef9b815aa377f4985474b8de595415106a2794544730f76a80ae52688af3c6edee57de7cfd0a349d42104c67fe7451e9b36c5f0465490fe7eb2f57fdd882efb8a0ca9bdea992754899fb5357d8ddfc2311bff67af4f8bf1e97433c0ef0213318da2a9ff82562ce01040764a317c015358c596dadc04793eab2665f055e41439cf6883009240287084f629a7340272fc2eee4ce19031328d0cac3cc283dfd28df51fb82910d231145efdc36a2a96fcae147ecadcbeea6845554fb39b9c07b2fdbcbda65067b5fd98678b6a9d0fe0cf9976a615cc3272932e1287c612dad9b4bd84a0f31eabbce9e6024ff7bf4bfa000926d31000545d36a89036c40dfddf25a24376c3e7651673aa05388b347bf60fb002de9f54856fde4730320f9eebe1cd43bff1c82b2733100520565949aa7cdaeb8c86933435bf8044f2f255c15d158c2619321145a8c49245b62fae11e70b9126521ad9cbbc6b87ffcedd8599e2c7926e7e8dabc33bbb2cdf933a001e7ed9d42be5f9a7c3d0251b8bc8a91dec9f820178b78a7d69551f9c0e466d1a07d3f43d31f6eea93f8eb3b6209b656db5ff4523a6ec08f16a557a5cc578decc02c5eb6c6cd7c1c708a527732d5052a7d5af04f720dc0020e7e057d61155f844ac5978f987e7d7afcca7a6ea9156fdfd42753c5d7987ea277e14c97004936408afa09891c77a82d7f639eb43f53d085712a964b5bc58320a12b4e3e6941904c39af276529a2f86274eb698f7f7b695fafcec734a8e85c2a8457e0a1b02c8f5bf3e339254a93ad7ff9827c51d5575d6abdc007ab22c81a66608e0f5aad5b79353c51da8fef50c865ba66eb8420db35799b8d0c1f1b05d37ee84c98b9601538d976197b07dc1792c892c5c0e54fef5ddb923fa00691791f4154776ef047aeda2c7069dfb0c30615915534772c928ba495eb5420eb1e2a9bc7e9cd37febe6a123e5f509de95ac6a1526c7880a8e5a2c02ae0c5fdc7e9aa69b7cf13d074dfaeb5127d92a20e4dcf49cf4006c1aa10eac8f311ad3eb9adf6ae8c3ae2c50a85213f0996bbac92d5e4648ca27c11c04c8bb808008cfdf941c013f74692d9fd61b34cc93641d064f5b70c779a9abebb2e9df0b84213e6322e38454613e084454dee1fc45616f4a67e6ca2985ea908929599b5938dccbb182b1976e6e9e97095348c1e45a2ac55b470e648db5718a402aa20af00ba02d25aa88fd9ec8ef6fc2f5c185312c60103785e5b65de6b153913390b69685cca95e1b13929b402feb988d648ed9c5e016013d9a025dbfc3fe659f32ed5eca51b015dce0d23894b48efb65dd1bdc16c36a5d41816f7985131bb175b3ec5b194842823b1700767189619b8f8abba1972815e7d5ed40d7257793b236bdd73b5b418af5ed9221bc44e2f648216377dda964ae8d8c606df67f0dae0a2405bfa38f3e9508d78f8286ed5e335e70814c5467b71faa28ae7a8473f0797975180dab84684594e3a7ffb762e83a0450964f5ae960e19bee4e5e7dea3d34037fa8778752d9c2c81c7cee530b28ff10c31dd910146f422ba18e5e03f59ea2f176bab9b8b445ebdb31ec23c3b7dfa270f1034c5ebebbfc4aa535a1916e841ae26429bf19c799417e11bc1d89e638574a3ca81de89c435034e614cdd0adf3b797958e488089923d77fc91296fa7a00bf98e9a1cea74e94b7826fddbc39832740e28e8355b33a3aafe0546ad9bf0df922f845feac916c860b0f5a1409b56a09285da3dbb0604fe8e5dcbf01047f09986b97bae232749e5dfeb638105b1a33f54a4a59d7d69ad0bcd1d4a91e01443a5e9f7b853d3d4df847e5a229ae0c37c6fa33787e41662b557562fec94ebd02e524730b83a4516cb547e71592eebdbcdea463fe9643e5238cc19a03f502a9139349d211ad9213838bcc7f744f14d005bf4acee7398b3a76e09a0df1c7703bc020345a908714cc451ff1fe9a928dede94b035ead68cd321dc7b6667452cc6bdf6076de616585ed9b3c8907845f337ea2fddb6e806b3efdd47928e36a5afc3682e79ce5acae928560b45f113feb5132bf58125065fc1baf63205dd4bf12e51fb0cd6829269375cdb2013de93652397d2ae172c91dcb96c071aa3b1f9b5f46a93380921a23d2369dd618922dc860cb173eb9ac90e3a33f8df2db57bfdf01f4de76eb65597c82dbf4a401edd227689879e75e5dd2f2c29bd41c4ed641fa43dfcb6f96803d40048d738c1faf9e9959a263dc38d4b1e41eab3cf366d545ff0103019d7eba51358629e22149d7aef6a1ca59dfe511c0d9b3facb5c89ed031a27c41612c7cad42cc92dab401114f2837f4421148053897419546ecdffa0c34afac122948c8937250b945abbe3bcac18cc224664468e07a4ed3a747e63626475d46243c670c8a33c4417239cd7c2f594753d98f35d9c2c3ede2f1337822ed6bf19a31966ae9b71731f455cf5582438a81e38aaa49d7f5c6a5b20e2a40495a04090cd4a98c895af3e59ecfe410cf1b5e7a16853ad950bf0db3c815d4457715bfd6dcdff4427e8a2ea6dc028568d75ff3471b92e3b457cb5dce35165d997833439b8bb658432933ecdc17e9cdfebb87f740b69192830fb6a27a4acbd77898f6e13ce222e1bbfd0b048ad7c40760710ee9302b5babec6d845927d988e1bd1a5de7538340d07deabd59d16499f3c2d2ddfe04b14f58e514c6f897087e3d1fcc16d5319d63d1b6149c08e83f7661099bc33afd4a17752d3e08359f74b2e7117f69a36d4fefbaca6bc38d1ccbde74abc50a24f95bd2fe19251134a6e57c2e1caf2f51fca4e07507e643751ddc899116c1b39569cb7cf353f7d238874c256f652d9a5b4423928a338b46c432790953659b3d630cc8d4f82df42ace08ff788d4c2eae3bcdc56a52c34fdba07b97a1ba973efae0d45626b5401901b4b9dd758ed5ed67df21fadcc467945b7db1b5c0b761bb4c811b55520cad6a3cf43d8d6a9850d1f541f0ad06e1c37782e5d662a6d58416880df08de33d6368f9ef682e0c3ce1f4ede8bb1c361b533459ddc2c52ead9d8aa056d3687aa94b145503979c6d48ef56fa4bd566dfd1281d4b87f393850033ecbda2a1c4950af2a28235638a16a593da5c5857f34a05c090ce43336cc119d7079597aae4235d2abcd45a625ccfa57d369725ff52d2a1cc484bc70b28ac4ff461d2b74edb72c3061f35dfc1d195da28090701ec1cb818aa67590ca2ef0a374fa45d1fe5ca54c17f2e803df976d4e271dd999ed7d960feca0cae154182a0c26afad1f35f9187095a7824493e23aed24d6745b9d9de53ffd3a56e7d4ddc501a0d95ebb1ce1c5b72c13971ff74b2a3e319bc2374278e5036fa18c0bc48839a7e0a3a3a2ac31f5049827520a2c37e5abd2f30b4323417b5173367f6d228464caf8b389a423cb0b7f9ff5336d116e187ea8bf10a9f83ac0a159f7df5f197b92583cf6eee3aefa5912fd7e65258f37b16823a3be267ac5de713b49ace76d791de2024d3e586042cfec50512a03b0fcd9fdcd22878c3d1e15c1b8febe41c3b7871ef8473d4e75b9790226db994b8c866b3525af6540e5ee8298c4a8f15badbdc867fc448ee5ecbe6d8906ad7736041f5fed0023cdbc9e02307d8184a55893c3943b959cd4906ef8cf7da018f6704a1e4d648c76620ef1bc6bfe2d98840e627e98bcedbbba9780d7401efadf6a9a3eaf2abecea8a057db2b3e2c21d10b880ebffe30674e74960e1fd66eb6e681c997d44885c321404e43cf241dd734f784e88f1881b9d8b8fc3f2324b469174605dff80d23030f82bbb36fbe690d77f9f5bcb9abbea3679d8d9ebd95fbfdee6ccb39930268fb7c4efc6a9e5aaeef864082c8da3e982c3426e18c2f77932760ad8c04ab900ab82e6a83b9b89a0d54e528057a79b5e6725fe3e30c6da58fe9008f2c3d4445203b76e755b08873aa07d6290e05bdb1210e286e52d689c8462ab40a83bdfe79a7658f5b8c1fdde72f2bbe745ec4b57ce9fe3a2643bd425dd357418adf45720cfe6f3f50d7e4b2c5499f41fa6c6c5fa97e2f02219d68dd96951c8c508057113069f2badff589c9882a81f187e30dc741478412d79b58d84faf235e181bdf9c76917d14673e33bd4606b79d7922e8fe104f7c1bbe4e3d25d589edf4c358af72e201c3b5c11adeff31968c9b09bb0bca87c361faa7199de7544db4c54b54cb4035ab4da58e87ef4bd2985f93a3f4cc29cd750ad37133cbf11e6b6029b72081e7b462ca9a9697126a8a4c5ca7bd490637c75c285048282e7ab2158de2cd4054944f5ee02388ef666464f84905a4e82af14b122a6d8859d6c2c9c49caf5d2cb85f5fbb995be54aff8066666735533329ed3454ab6b0e7764ad31b1dd5a63d29af74cf95bf62cf4af9de46157b8f5421d0ec48675d6960c4075405dbefa2212bf20f87d70a4fe502dc75a3b1dc6d95ed3b1a22d10b4aff21d0a2c0912543f41e7181c0f1d0d39537a255f4a2940bc871afbc772e14a9ad9d6c4553f65902ca7cf23dd5b4ce4d506a7972267752816efe623bea6de1868c68d70de4762baee01f9cc4b70c6dc9607df98c86db12fb27d440112b8cce08f8e26e27ab245b2f0ff42a8f143f9786c08c84898c07f2c304b192333c110ef315f0c988ed4628ce4c7569b6a2d51fcdd4f30b1a9c3c18d4429b839ae7910f84438481c0741b88b0a70e1f9a46921ff9f350da33b61f419721743ab76be2232ef6ce7225057942af0889efea1971c67f5a7c9c44f859c8db4cfdd82e714108d6124b29efdb449e3b48f326b773c5dc66ca8e4ab83a1c3ea1238b0233f202329a5d9314676bcf3aa267ad558e240fe620acddf1b5f2b848b58f4b8699c2cc96fedde0743fe144b509430cd83f26e4369f5bf7dc4781ca64944d36f22efa7c26f2bd49305ff2a8a300810b89b34f7510a4dbd5019e46f4b4d555e3807e1a2e35ed133ea764eaa61f4b96aa76249ef7889e017991c54a8ac54fd4da4a377536463efc81a03850afd46ea010aa506cf097a23b47337404ae586681186d11296c1061531c73527ff16b90790665416f2c0afdd8d58792160d0233b4bd3b476672df4ac6309e384061e42f041e64e8718bea3c430e9d88ff5f4a29d535761c3698fe4da25aa16b5dc68115f37af9deae50c50623e0f50a09c8213b0b23594976215da3d92a74303067ba11a060f346763bdc36bed6aed65e85dcf05a83c2b1fbc530d5b9b0b6e774a593f43357579a57c8cf1ef861135e1f53cd31aa707447906f62de0831249e034ee7736c33d2893811c7b95e89b6afaded34dccd5f12cb571ffd85d61a183eb937e1dd89f4b4bc7a6bd7a7403859e5c441138be8ed891a0549b6695a10cbd65f92dd7b52f7364bd83c68df75ed89828ce6a0840e0ad8ec4a97d71f7832edcb03e936c66cab40536947ca1959230fb7fa339d3b20edb913a8dd3b97a9bcdc2dcfd5c3fba3e4767caba8c4424cd0534daf1266aab0e733875c4c345854f5397931506a5ce4b72c427b9137ff8504c1dee6aa84c0b0b358eb4327fe13b5cd21e38299a12da25398976b836730af16260bcc28c7b13e35e5ba063e1602e525de129218a4c93f6d49a28c34b48d69a51f9ef32988104a94f6a6e04a1440113ad1220a7900c6a59ff44c94c9222c3c857735bf830433724faee0d6710a567581779f1aba6cf63e00c9670a67b296f0dcbb8d2d51b67ba4f277a0c036e847a2cd5ccece007be5390d7332b8983de5d8e4590028d486a68d788224cf2c4ea3c6f99491a3c47df506079f3fe9198462c852421306baeb01aa09bcd2d725d6de654776c5c7c730cc2bed6bd33bf14a89cc05619fcba382516415ac28565bd0360e318186b9d4b521309f98a2ff645df81207b4e5e4dc33a0e83bfef8bd0384c39784599116483b52c17397e837f868bd01b4ff40ff8266023e51891fc5f12a23e42b845edd7178b0eb1396dbf86e596e23b6dc283145639121b291ac9e02ba7c2c546af27c2b3d68b13b25b409a5fda479d5ba35cff882f618b1a950cc44623a05857a54c342461f76d08b67531a7e05473eac60c9a7a2abace41dc71a1d45af3a8a77e69ffdc78bc64bc5408217d09ff82e231e8c9b484c635b059ddb2573f8c336365183b8d8e4891a192e529998f7ba503257ff6ec8cd3429636f755531b25ce899ff7c3c31f5f01eaff6f662233854853f5858f70263e2a7624268ccc9b7b20a60d52b6a3a1edb3007cfedeb78a22edba2fe984a15a245a262aa67d5a598424d4596bf7a85db91d34c061f9083d45abf621eeca82ed23efa31eaaf2c64213ab1791f7ae7c72cda830a55f02fea4a0aad32269da5447fd3cb5bbe1da3e8b7dd80221c3c6d96a632f4badf2aa70a2a4a8be3324324245ca485c7251c612feeba2ac73756c811c1d849b9da38674999f77a2d589d31bc3184d196b246d07da4e55f7a3a5963fc1caebe62f828c2fe2a87c162b89c125f0a03bfd5b04283696261127042e7aff7ba49d5a27199a422b1b32ddc17187f3c07f328c1e8e767d329f4ac870c812f0bbd247165239efc19014a5b29d36b05410d60b702fad7a81f5cd46e6a9829fb82f5d8886419eb0bd69a8f86a5e214f51416dd0fa8103783cba3ba2912c8723bd3a1c768fc33e645a0e2ddf609b7f7836748a407951065b1f2f48ceb6460ce5721e151a876692797918562534ce3dc4b2a0694c55da2332c2a85c8c445ff8f1c449bdefff9134bdf1e09928d866b4d10227f29d082519af246a5775a2acef968880fd6763fe14e5573bb758f2e224c02daa160bdf4c9aa77e84127477d30ce601cd71665c95d40957b20ebc880286b55145fa2789ec9294a0b06b48c0277b39786d4fc51105052699c6e86c0074475b006e65b27e9a8f16e4c3bc07368a86aada2f8ed03090c09b3ff2b0186c91a65dab154d24319f546daca24696041c7a9874ed6ec9c7e476aceb72a37f2a0907ee20dc2e260e4f410177d2aa31d142d427b2183d63f003db03571c6af9d48b83421865cd1852b2e2db7b0d32e910b7ebbdf48e35474a8495297cb5aaee7dd99313ce22688caa640329de794821af961e857720d19245b9bd114fa2975d3fc8361db127e2c9a8d699be6c664a1104b609ef43804d553d89238e05dc2956191e88a11ed16b49045b318ff2ae76431ba9132e368e331462fc22d8ef79c98020580be62e5d2b3bada9cd37172a9e194a3fccb8112dc64874ce110ce14cd094fcb83db391bd1001afc2d374cfc2f145166b3ecaa516b9dd4e8d56a9274f80dfb63833d77a3979b3e25a36a75d1f234e6cd057e201604bb4410ee01316ebbdc4d82f1ba29eb0879b713cff58e2f7e5122673f643ba9fe5223c4403131b5a1c38dad78a693e911eb7274552b07c7ec23fe13f02743ce8a770c7c0bc556a9e9045e0fa540545d3383b96ec31fefa7a13d8256935c13308e859d169f2e834d96d87cb6c8754738af70c067ca0331bfcfcb6dcd2dbb9fdc27c8e462e99c271ff23b29627e0b79ce119453a6234655bc022041606dfae2ef3d6357dc3913a362f980a0525ad93f390bdb6024dd94f5ab8e7c21f67e93826c955666fb5a68c9e27d4e9a04f93d0652136609ef242d0c7440a44eca748b2b397f7adc553555946a5383c0a252a5d098f81faedb48968e51183b0c8b07cbccae0848bb145f22451a5540795e3b2aa981c616f768884be96b2a68363790db7479497f597ce49d502d101dd375d732cff69655e33c9b61c025dac0d238c574cc4b26cd38b0d133ae8936c68cac965dcf51f4d9939e713f1c06ae6f0cb2d7ce57bc6428298c16c818f9e3ce7933200b8afc2eda629156e4ea07e2ba57763873340e42353dc5c21c0d0d728ab2951cf41967d7e417262206af17129f7da502ba67d265e0a73709f6ea6fedf999dfb81fc15fa84d862eb671e6a6b9d85dca825f84fd4995f30bb6ae7957e55abfc77cbf17a93d40e0e09eb6a95c1b6447b2a81a3a6a670802a6549eba738306f1d51342fdd790838fcaa20eed38a3cfc04646a6679dda58d1432981ff1424f86be868a461d96a1e3ad44a572ecfc67c69c363cc40c17a31b69b4ff8aaae01626f53223cbf040794ceef80d5e2cfec79411d4bd84461baab264cb3b1ada347e99ebfe88d8fe1e8ae6f5ec7542188aeca904314932120d404fd0f5c51d8b71a4bcef0084890cb428d85cedd450accb0a1d6025b69dd5b3b2e39b43fac896850a81d1dda080397fa57cddce29dd2c0f455a1db57357f5ce3cd148f0bdb4fc8a6c6d91477e614cb2fae2e634a6e486edc3a25b3b2e3869a53a7424f0c55bcb779c1a5f3331570fd6974affa7548240535886c671bedc6043149752fa5a9f98d3adb6e760018dbced95aef625257bf944f0704c8ee220f817fffba7d9df448a733883f40c99b67aeb9e36e995e7b47b83c21a25f16fa8fbe47cd4540e6e71ee7e765559e98386e9879bc111ca7eb75b71b715281d415cbd328a4c5f0a9433643e881733b48237bececa636cf9813229dc3f4473f420e7f8b9c2ffed929ffb937736467608ca0570f23ee128db95782f8b7c5e61735937c8755e7e6210e61b78572274cd41bcb2f438db37edcd01fec5b5536fd0635900a84fcecc43d72b4c352d70c6c78d0f038d13d712e8b468df30c3d357b8c219398c97ebe4f8b3a22a8377a07757849a40a1b37a57b374185911f60c4911d2889d04ba21315343f7b6a4067953a0e132b8adae419a063a164e66e55d4e0a11462a71e6b513e9e18bd4f034963d163b233b3f83d0a839f4e8c41ce508c08f9467a646975461403c4fcbea777aa9ebc9bd9eff1032fd96ad266530c0cacf217ad615632e59e2c8c993c8eacbb822d0a47b3bd255a24e7eabf4005c6615fffa6e0d447217d8d3a6bcec5a56bc24c5fe02e96e0002c4015780fd065a6f83a88685a942622250644d305cf7680ac9c49c62581976b57eb05279db0eb595137527d34ae1e7070c3be9a00d768c34c4e567acf7210ef8ebaaff119951288bbde64d90b739134aa9ef9af56e9441601001b5ae6beeee3ea972ab57b42e90c8fbcedeb41126f4e2ed8e81a7b96f9868aa85be8987eff6909d3e956605a76a3bf8d5e94a34c54e73121795cfe40d391382f442e70e14399cc179f06a03e3e7f223f6aff1fafb5fe3ea01512588d6fbad1b627317b352894ec141b7cf26aa8a2e2402fa4a4beeb1a7e3b32e386f161297d1fb316da42319435eea4c8592ec5870291cbf4c3589001c9e09f06d7b7dbe71327aa073220324975279f089c13a9c74f73c1bb164fd2da612d6b98ffa9e9d090fb2fed66ef4abf71329ff1db14b32311fac95fe6a3b4793835cfeefc6737e266909d91a68fb45fa3eea064ee3796d3e2e8eb7e21e7a98e037d537735dd7cad29af88677daa0f612a3dda8bca041854be153f2d86ab7d162e9ee7205950b80d6bb8cf97846721eb9dfd94bd613c79680b945d6576a303bfd0d47a946ca32b76881e8d9387681768d43e99ed8324f35f0aefe98fea1e8f9daa7f4eb7721d4bd5992c1f74dbbe21c9326cceb57f1c58a7a1cefeb7c742764dc14ff5df3f75fbe3790e007cb182fb1cd4874392cdd3608c46bda222fb3f765aa69e3feb8bda1f82fe4a4b2e6ed0481d6d6873ef01d55a6217a59aaa84ea8f521411245da364f8aaeb47df226ef83c43a96e1237cc9f7b59c2955cea6b84c98098d7188ce9382c7fe4672c2295dd1eab463101706a3974070138fd0257e3cf642e1d73cfae635236e769c1c657197f6929dd7acd2a5d3f8a1db1a4f92fd917feae691fcf23cc8a7b3d8a94878ea81eadb4cab139f2fedba9837defa50e2ab201721e1624a0480ff9d9d5a7ae87ac24506e039162f3a4b9dd253179e163cae062cf17ab6e980040d4a3605c0629e8f905112deeda8d6f7901ce7d572ca9d0074eed4066448bee21364561341dd029ff8142b2de5a8081f92edeb7ac9ecaccda4d12ca04807d3087135f083cc3144b2fd94186dca36329668c7aa3fffbbef83c32a755accba4f4be3806266b70b32072e320a1932077d51f8be7aaec4917556ed3ec1b9cced61e3636f2d610b4339e4f202165e89b210ec218e5f29b4322abd465d733457a78bed8e0f2a2e05ffd2116d2a26a0f8cb702333d17662380a42f31f77a1b833fdcee89b296e1be3390d5d617ee2f515021159e751f8e1c28c327729e851273f7dd438e669bc8903805918354e8ba867b30814f8816782523a178cb860c0d49577e2a705249f6e5304d097fa5cc2b8b6a0d27e3d8776f449fb38ba1b2427088e7372df763012d40c64feb48d600f5631a730e65e7b053b96d1aa4bff0c1d818259d1f1d3a6ee57c5b32a4cc097856b5dac9e3d13c19a2e251894cfe10975ee6c1b7ed19c7621abccafacbf9649500fdb253b9af190abf9abcacd989803b07450e6e9d78f201414db29a072943f1413f7e6aeb6d11f0e9dbd8fed3fe45f7e2c7426d43f921295ed0f0ebd50188d04780d1e6971bc00f96b317fb61d159282a26de8bbaa2868fb2240999245c93541f6bbab774b6ca4058dd9de2cd3bf6b8258fb60c79b7f1138b5949abcc212859676e43d5feb5d18c67d894f37c3811f7941afa511fb03a3043c79daea3cb128fc987fd8999c7067a08c6c24cd94d527884669e085968b4f6661da00bcad4e60432e3fb6cdcb163ecc5dacde2eb1f78399c4a1874e9c0dcf4961b4947e122fd43bbf00ab618b16b4816767078bcbdafca10c84656620eb33138ef1eee3ebece436051072cf11da5da276f7e1be532c64d6e2d877089cc7f09acd983a92bd4586396f3992f7375007682a88b0970169ffd2ffc0f2926cf19037194cdc4b93f6f65ca0acc1c5fd5cbaee76fd8416500191a88f3ff0f04e5ae521fe16db1379a8e7d6eeaef3a704daf2c1222ad8bdff8db1feb49496c5e81fa8b71e8d245000ede2e1e41d7ab5112722ef4a5661dd91146bff0168bf6242a4d8deb038c66bbe4a0847c0c1e4e6904ae481de15e825ce5b488cffc2690c48365212fc5876e4ca596c9af66f886a0ea288b8206f0a8c40504a51abdb8029494a5f6ee0f0050044f0af53abfdd7f4be22d0b1285131a6b77875a6f6aec1c97b424b6a4e25969fcb5ea0cc3a02f9e6f62903cf635a2d3fc67ae9d4446bc95774c734cacbebaac705bdf2d7b3693e49afddc08710ef35cc43afb440eeaa9665b2b0a2baf208757d1b466c1257d772e2081d2af7c29f44d2cac6d52cc07e0741157d9df5ef5eed8a3ac509491dd81c28c2004afce1df060c3b7e1d4b7b481e65605b4f47058c9b941312f84e31e5265fc5ebdd61280ce04e3863e20d546517ecbbc26cc609d921ad5b9d6f666f3695079b2bdf2328c1b5c2a8a8b8bd73a899dd349be79ae477e83b4c0dc5efec643399f0287093c48180fd370ba0a975a58b9339f6ae3b1412829d22ea406a6edd63aa18280fccb3addaf8d3c55964ebca57771f577da22ba7a35d9f5a90f2ef227bd5899930a702c807a53096d8e5d94ca9089f8bf7124fbbc94b88f0e0521ee150145cfaa21d8f0d2e1245d1fc9338dfeb7553149eb8b9d5e4f42685f968ddcef0d4d0445ed08f5bbcc5cd870eaa7440180e3d1d538d364fa73dc625e21ec46095bdc7f0a044086636d7c8baa732ee93977a410677b0a9704ef23910ed729d4b56f148847c39583ee1dcf79f00cc7b8c47ffa67bdd9487e1002255bf3214e6d634aafbb3335fac290a8663f6cfbae366e9f59a1e1d3259661c057207d3e852ff6f28b0130ca38ac7e1fdd66a316463b48559abbdfbb33def0cffed428d6b48694a4ad8567534488825d7600c44232bf58e7d4e1df9f866f68605a88e812e6223ac9a0a21a8629273114ed4d07293e102cdfb5b503a8f982e3f5888162df9f0384a4880661e74e83e5423482999d41d4b5b7b8fa057c5ad8179fdf671f3e773143e42975c87a31db4ff2f99a67502ebd943320807cfd2125f09e95f10c7ab22b236aa53fa1880d967af17e4ad1c154c3481eacd341d124a5a9d0cb4b5c28868a2ade7d808610918c05f2b0e3d5da4b40271e2442bbfc46a1970d1eb06c6fa63dcc9eaf2c3f700aa4aafa43ebf49948d8b0118ba649edf9b93b8a47c2667f76760da988e0ab616b16384de5df15685b3fd236ddf8ca9ec9c9f7351e460cb9c79aa92ef3f1f51c6252c51159dd6c2fef78a4d9b47c99b243ed260db25e938bdd5f47227baf87df753d06f86efbc35ae9d52111bea913482e6ac4c7044a5731f694a06015a22feb35a1e517b8b51cfc3dd1b1dfca41962b60e1c02ceca0a377c5769e0739d2c3891ad6c77ea6cc5116665e02229b6462093c3457d2c440b5f3977758529a4ad3dbd94d077ddd1015d75d52679ba433b0eb928a83955c31092a3d27aa589b7d160f9aaa47bb8beeceb5a412d7cc9d46dfc11f387b5115d0a7eef28c055a0bf7bbb2e605ffcd479bd856bb3e3f9add551f5e8ebae8484aa88fa9b6be931d2cbf549b379b9b39e0d61557aa7b632ae1590823e707a8c5147eaa1e642ea8e258b317bc88c24fa86caee98948e2939f14acf304ef33943b35798b3e487c829e3d898585686910db0c32c1b834b41baf28b0c941879dd0cbcfd52517ac92efc732a6ea7682587fa264e24a99ab9be78ced4834e2b1cf40e0ce38d69dacbce20ad20bda57d7d8821e088c6f598222905798528dcce8afa1535b6dce0710394f12dfcda444877cb926fcfa09dc7c9a87c62e3ad243884f965dfa76fcc201ca6c90f247703224d3fbaa346a13c6362b1580f961f165a60749083eb9fcf6c743b15eaa33bc90a10e315be54ebc750957c99ea2a0aca7988a7a9363c8ceee79f3b9918a5fd65bf226cf00225bc9d7f7e54d5f38e33f7b5f916779757c5675fe2b11c45fe7d9621bc3c5abe275ffdf230aef6f297e3b148c56c71647c0a6786b90fde70a4b9b0e669aadaa98f32d9512d14b38a7ebcbc6891a7b3a3f115a3b8513f7e1d31ca5944899493d3d2bb3408efe004da5e23ec551899318f7f7938210e864bc06256e71cd04ad1c42ccc807963c9315cb7385e4aa6b4cfa8f38a530a0737165e9a924effc4c340ab1cb5a77f6937285eee6089c09d2d36739e607b5a8535f90860d1c228422346b5e68cbb7655743dafca5c63bcf365794dd6dd8f4c8847c0fcdca36598f9902da71083786171a3962af9f1228cb2acf1d873cfcc3f4238d6415e8aaa2fed5e30ece5440d47798cc65589235ec3784cdc215318641599cae411d73450ccf67f880bf571dbc61d366a986ffa8609f5e99f7cd6ed80f1a97b90b45f5311433e4e0c77932022038250ce7f03de08b36f32ceaa6224c65d4015fa2dadf66e24c7a10c1e5672c46fc26fe718827c880240da3c64e08b99bb6110f0e3a280363fe3366f0c98389ec6671627aa8b43085e57ebcfd13d5cceacc2c7f951be24a5e6ba643fa3faa8185ff48ff7fda368f3b9b363cfe0eab180994d7aa6ffa9f84a1cc7232fa5de21f16a5c9be8fdb18151faec23e2965d1a34c2a21dca2fac940fe05b64c266ebfe632689e5d69582ada410aa2d08b88e30875d9400922a3544fa1219b51eef8d7d2dded65398b5464c342b2b322e217b490e19a83d9b9757c69f8b7839b9bb73b112ca951ef7ce1148c660c1703433a43027f599fd7418479e573545f05c260f89e41e8bbb055d5bed08e252e5828b8ff4d7dbd6893837e0f39a551e4a432219e22e676f9815d981532fe0d7c6841045c30a83022f21c820042f5df70f39220dae05266ea5da0041558206dd55a509d3d6b82274ef4d10a921fdfc9999097fa826a203aaaf85784219e89a07fba793cb71d647b505175f4145ba901e54aaa26f12c247b68bdfa28a2aa41789b57543c0eb11950437a14a522ec0537798e0912819fb311c10af000621d256afd9b932cdcdb792d5f5986b6b13ba3ee6d15b2b5e2874d4d7dff38705da5c36541fe8020fff4dc74d543f47bde206df84f47d98e1e7b671d904c02abd4074f16b00869c2601b832c8c632129e12f3f2bc434cf9443e8b02865aba34c5a6c34a7a67d191b83cf6ed54b69d1909022c18ce68424a5ee50e7537c8933d99acea081aae1e15ee5dd22133e3b4eb1de90e644dd901e0c90e7b6ab94bf92d1abafa3478eb8764f6c00abf5d97afcb9a59b54fa18d179a66184ab5cbd3cc3b0b07fb00d792c7657feece62fba8a398674fe1fb8607521bd750af9da4eaaed19533b53a0c6258ee40289f9aed4cef110ed12a738ca861eb04cc92fe6a30230dc4704cb501a034dd7105e14a46b91a4f3e20113b9558bd62974783a1bba5d9dd0739612232abcebc4f1fbb53ca975b54497ad136597c05a7801f50dc28c6e6d7b498c36933d81c1d9dcd09b0774824e8a3682599e53b5fcb71523d57b572f4798106f6ac28a0d2361ef37e32f9f3683169a14a641719825d6296030f5bacb5ff0ccc02ca4b1f21b21cda3eb5346e8431d777f6c124d671450e7d0e1a871e27d855fe655f69e3989ce4208c08bee8e6dfd1dc164f13ac1ee375a8aa749879667e3f060e09650a07b348b6542d6175f8885bef825140d165c2580f161c649d2ac312b9b4ccb4b067251be6b1709e58d914211dfdafda4f2c13c051a40cb393268cfc001372e0af47e4b875adcd252cea05f0d2286f642c8e50781d694bc35ae1ad8b15b1d106ad2f587cd0dd925fd145523bbd556838dc5b278ea21a00c37fcccb344455fb5777f21c4844aba9e43397b6979842e9ff0b60b9d6171ec85889a319d04853739ab6f8fb004e500505dcf4c33f9239ee3ab627d0674ff0d71a325e701a363eaca8e9e3e90ef6e6af4351acb5903828b2bd89466f1c5b5c3418733f6832eebe50efb4223ddf3c15a4d54c270f8efb94622ea0517b14413249505ecb101c2b91e7f08050ac65972a2227bc541d5e3d94df8a840ad832c06f6738c9ad6e4217e9d9c2687ae4937bc07755933fbacaf21e92a18974759d240d4138c7db1eee75c3ea8c78a3b0e4fc2f41b46fbd1cc0d36c8d9570ce40412ce04c2df4795dd15be2bb0e3c22bdd5786e044a0a5f11d31b34625f5faad34dfb4619e88e51367f777813199db1fa675323a5517a0cb5b9daf0444a279e08b3208df8ad63ded3f0e9c43312124f869ec3089ab847f7accbd4956a76db4552acaa3c1eb5863fb901af21bc741c40c404b0e9fba24dcce288f348c956b792ce314bcd38acde9432f19546394b17d90d269bce7ee46c4fff12460dbd3255a095838c63cf337f936ee5c9c2c0b955dfea16a02b268b0ecb38af917c6aa6348ab0a315922f5fd35a8364eaeeb17491a050e77e210d5476fd8d4972f21b2191fb79dafe4e833898d417dbb3d9fc46a919ca35b923ec33e56d31ef0acb3f678873e733368fbb3ba7298a1a38f11d8cafc6bd9abe951dcd8b53bc524697201091775ffcf33958d9901533d4a66a53b848f63e3a2931c3fd4c78bb48a768ea07412e4e493f66baf60623d523a6aa6fcf59baf9380a47565350c14b4da996120b641c9f7182149a6a171b5e033b3012ec06d0d13e462e5d906447c7fdb09fc13162fe9f8f2fd66c833631e0d341c4febb0119befa0171382b3229f79b8c077160f6f795027515078219b60fd776efc0ff2780439b1e8bfacf3d81d98e845589d334947bed01ef8519615ba1b80ef9c70c7263b358c64b05daba29cedefb936e9be14ff3b8dacf9bf313529c02dfefad4d31ddfae9082cb8e02d38e8bba0f3131b17a8778d3d49ae2ce9cd12a416806abf9e86610c882cd327df5a35f72c74e18a3ce736dc96cccfd562b7ba748697c874b98d0f01340c52281d820787b6b470744c2ad6d785418472b8968fa9791a94127538940f18ea6b144f7fb005904d683a6b588cf6f0a76b7b9101fe5f1e2b9b51382feffd36a4134dd783aa31b955878dcd06a3752a3862de8f1518167ec5cc81ab28d0997785cde8c5a9db6cdff5c4f7ee8270d124b3617baac9f93306b27401d7d0d935a114ef325bf07d3bee2a4252187d4b4fb7d473a75720d37ea010d3c99105b625681666285a5638ca2f1aae4e360dce75f21952aa878405a35bfe13e13fc2b2428a14f4fd2afc2066fd98a7f0ff0bfb8f844de3416fdb60b1a317fae8e054706afbfb6398cd77b30200ca980d6dfa7d2b2e8ca31c2215d49e0ad9648e6eb6e2fd21a49f139cc441b300f283d37cf14a9d46b32761fd45d4c0a0203a1a8b2089622351b33ddd78093449e63a414c54597c506b5927e2925455dd5120e47f3a48804083bd19272be26394b684aa7c3e11239e40bdfc3f7a68fc16dee4dc8b77c44542a5815d91316dc28e74c737eae84831067c1060ef43913a8c33610282807323f66bd4f4b724caf7e63ae661b27e5c09a8add048dca146f7fb542eebb7c2dc8ebaf8607d8dd0164ceed5257a8a1c0053c01bcb9c80cb81fecd9b7d43447eaa7f1b1156c9fd7c6c2fc9af142566f4e8798d87a6b82e9ef180cb66fb458ded3df47efd626060b89fb32fe2a4da6dcf4f2b44fa75ef2b8c059167b7b6452760726de1e00bfdba0dc30ebe8fe16445689cdc138cc7039b642caa97ffa62703631c71a29bc50ed4505019d5e6ea62a2573e423b574eaf363e7b263ca28fe4ec4f9b07618b7935156ae7d30a702ec9328dd5da2c093b1ddc0e70c518e8ae0c5ade843de8b909c93dccc4de2a8a2360d38e5161c3c39270e5b9aa2b5d6bdc3f888f0ba52b4d2e56e5fd6c01c7352e4216f89b5c8640583c549f4662bd3b79b3eb0f42d3534a8d18cee08da45792ac6019f4b791fe672709ccf5f5541a3ddab1ede7c6e0dafd3d8407a1c157ecae9dfdacabfd8c1acff7d35c791f52ba82a318fb15b5eab89a01c0e075b24b6c90c230cae13d1ba3cc168d1d39069011a9e1d9e26bef92a0e25a26ab9e19d7668f9465593827d2bf180e99968d72a61a708c7984c9fd7c4be956c54c4537f4736feedc48d73b888b281851fc816a103f188492ce8ebcd2d64449e0a230acc224d2cf29f36f03d8b8b7f782393a47afcf4309520ddf0fc22f3df66db470110184e734b2d5d6eaa1463284ecc91fdc470d5f25fa888fa5fb8fcca596b46e4599267e963497ad6f8744f000c364df73ffc0d0776074db91340a83623cd50a2912ccd4483f5ed7cb70a775613177811ee46475626d2b373ca6269f376fe9b1721c8fcf99b577b151072e28f1d16e272b65dc269ea0c1dca28c8fed99f7d7945009a672414f4d4a0f3c552d7136d437afd8bc52d68ae0eb74aacd4147cedd6bce4eb3c47118ac101cc15c62a3623503acf425e10850f636e4c3149ad0a4a06f5606a67a95f05ab5298f5ba0654fe02bbb552aee0d2cb41759222040b35a1172306f2a0f970a01398e5f64bef46a6d5a29fcc717d9ecdce463121f795d871e41956aaa275c6e5c600232ba03ab121a090ecc7062bc7263e36066b196bbf636bdc7ffdd68fb78c808bdca14fc911ef36f3e0e23f63232d9cc44f2f37af2269c4da8d7eb1c15571417692ef5df6b54cfdbf0ee113680b72c45f10f9de1bcc9849c62c0194da18fa9fab02a0a036df319fa84fbddf4bd1eb8d9411b290079450fc5282d0d31787702ffbfcca4fab92a6de32cab5dc7ca999f63bbf7164f5436045d6ab39b15d4bc70e526e93c6ee39efcee21d5f5b7e7ed7fe76887348e2bea6804998e2b1d0edc3381069605c404e8cf98a73582dcbaf46c4cfa36fb55a5e3e164571aa47be1acdf4f40af911bdf15cd045eebcd90da1c4084aa6ffcc7c559e5cae259ee0f93d31248b2538848462493e84cfc9b57fbe736ffcb255e30bab6bdc2a274057d754c7d58306569bf798b24e69ed03fa45869e1841b4c67aae3185c630d32972464e83651030d62a68fb361a13cb2c50ef7cd60cc225d1c1a38d2fa307a8234a5f9ca65313235317cec77531a5653abb4ecd0f56d05d6eb0ce9eb8fc110f711be78e93413c00d1c07dea94516704828c8f244df070cb86a53e09d0f8dbb4758ba98911a305688f27dd48eb1a1ba870690218f88b0220721660ad77e93eacc04c6a8e26eb786dd231d615df8f44cee0a5ade290810494e66e796bcd5c2fc035acec7505271f206e39915c3ed4562bced21b122eebaa3184ed44f22b2465a0fe0cf4021e46720445b259c613250da16e3eeed9962a87778a436e814da2ba536f5b375f2c810c499f4f1e34d5e9e0f83b329dc4694ddd982fa69ab518e01e963ee1f253301b1834ca86c0a8dfbdd8c71646d4cf176a846cfc24546caac625da3c7d741a60ff50d69659cbd9f50c849ae70945bf8d103a5fd7dbe7b27a39022a8649604e46ff7723e855930f4fa69dfef900478cd9efe732df7cf7643318a5a49617d5bd85c2f42e04f4f5d7059d3924c147b9c76b740018490c213acfb472400727e5c41e701e4a490f941ecc67b2cc2c8db190cd50691aa9f1deb24ee084a6a5460ea345cef02a63a10efb4a4e151b073c4373cde2f514edad820226ed8e6cb4f414e99fb969d451d13c80a35317e5adae669c98535ca9fd29efa525db8e28745b921a9fe0a88a5a8e70fa145fcc56a5a6bd608392a42d483320811ec18e8aa51fd8776ee2eb82bc2baec22aa4c496a12de6f625e162fa6ee4939f23b886061fba65e634a1ab605a99861aa869b964a9a68f3d5e34e67d1c56f943bd2c3197ff500c1a87eb9eea0ea6c584a6a7748e04b5ab2741d9f37972abe6268da956ff96efbf2cf2a277430675cbb8639e3d6631b412ce2f35fe83c79848ca738283a6af3298b3ab877ec2b66abc8d7e8b7ecf0ff1425db62d6838b252a935b6cb74b90db6c7d9b40f10ccebaa1402907939006ec3711ac4773e14fa7e00c9a42cffbcd4d287a79c4e90497f81ec95d181c1809564c67b67fce12db76f6c6af587b19a7ce2af0b2b1c5a8c9b7d0e6c8bfaa2bc25024a6ef5677508319ddbb986e15a14861a5e1f3b9d002ebe93c38b3ba9717dd334ba36046f46d213e34da88899bbdfe37d7a642f9ea2c493e1233d9aac24769d4eb04a8028cad91e96b3267e6b7f0bcf44eab756c44fb71967080ecb016115c4d15a077dab18535b3cf804dbce4b79879e32cb8b7a00db88a1b390fd717dc0d58a0d214652f8b71110d320acf55a84b49c6050b3ddd51b3fec8ae5d4bc35ab83437d6d880653c30b686f0a2d191c6b4775195c282b3dfbec5fd23616a4cb3fe224278b1a13edb5dfb0681c998e5d1552a73ed03eaf15a78572ad09c998070626aba98a06facdc6b5fa3356b1d1b57d4a8d8844bb5a4b64594f9d103f2db97ccf225503bb5cab5ce11e385274f1ea17cfd3ad0ea5ee948cb99033e7eba987c0a6d3da32c9e01f8808f7a6bceb67909b9256f4f823f669c75a7564c6ab243c64a0bff38af45c1be7d4f2efbe9e8d4bda0d21bcd8c84a051f31288c3182c9fa8a2c92f9e1895b06a477fae5131c8deca64b936cad376aaafb84c3f244cf7de7989468d3f4b72698762cf7d5415984d20e273ab50f610e4387bf46cc4be1b87ab5b2b326a423e1c82d94f35f737dfde4c16f1cdb2eae5c7b5b7fd9ffd9c6377a9d824ef4f8ba3b488b75cb7adef1981e4a4757a0f7657feac2ae42ace07b6ed49a56b9a43c7b459828f9a2374c73c11de502c05cdb61c312d59f00ad191418948c9dc971f2d5b6393f5029e5dfd0656b986465b9f991859220b8cc33cc57698bd32a21b0f04151f0803013beb042523e9d3acf7176380802dcaa69fad9fd23ba22e6be9c02c04fed2d59da2840323ced0693f8d302c52331b652a0bdc10792739f2349260964c06040dbd3c4c542f5f9f9fa688bb5e1b18a2717ff6037c9f0da317a37291c7c2a1c04f69f83006ad27766fb3cb273a0f6b08c32176ae3bc7fbfc17e8f30c5aea234cc63000905c96a893f74f448f546d55acf74410c31bc83426d43dd1737b44a1a29e91edf04caff2aef9ff409a13385b30ed886a42dcaa51b212ee63586ceef10088764d670188ea4a5af1a45b323b593a46be49d0b353b39bf8ea37860390f97539c387ec5a4f1a8ca69c5dec4262cd48ebba153fc8fc8e0194f76a112a9a8e42eaf07b956875fb068bf5bb36265f631f873e53a3b7801f9c546098c65ed59a5edaba64dff41de20f592b931495a0ffb008e7c5111375c5988d43532a31404ff3c7dad46ff662f45089f93e9d9b98c23a22352c0fdf14203ff7697155c93d85fb79d5de8b1f67d7cd3388f3421853be78cca0c7e413fb68172eafa8a15e14a78438d7b93a5038fc0796dcf8283f5c587ac0bd22811dad9c4933fa4048bfbbb93b50a075802182b6a994d9b3ee19f791a1ff6fc7485df53994eac5dccacefb610b94818f5d5b1087f933d09e0500a4b0c54b30d73ea70da2889a399a3cffdafe90d8687a487e21445a1da0938a24f70047ac60b739c59963b270d10e48de5c331876fd6ba63c8909482068098509bfad1eecb0436cf371faedfb96df1c8690799dcacc0061fca21a95afc62761077be59a1b933868613dce7ab1e9f7452aef9811b68689165814202560aad173c921c8840bc0c7e2b5dc794369d7a0c78f0a1ab91f4a138b9f5f6b086cb2095acf37d7e2d4cb88f086a4a56ee004fbca908b110c6e017df054462aa4331f520fec35e26752ca3722e267fe8934269d8a9980dceb0fcf2b54adfbb387b552eaa8c83fa9e3a203f4e7c95213886b07592a2dfca75df589300114275aaa19e10bbe5e2ab0b7a9b8f0e4af942459ed2469a26103de39144af0edaab667102a3189a77fd2fb678df7c969feda2c1e06d488ec5eccd169e604a25cbf813741d5ac6feb4ec3b3dc3980ef1f919bafd466fbb82fe24c455ee73933ae5bbb8c8bac818f5bc32ce2ceddb8d70c3b2f16e1a05bb3bdc018a26219af6507b93497d066f10aa8282acc276cb2ec773ebca50cae674e535b90ff51813d38d0c66f4d715c324f699e589ccf1d3d65ead4f057636bad53332f5f50fca8adec45a68106050ee018ef99bd5985eb0c7c74aa8d20dd18ce8a61494a513b1aa43c5030c57db39cfb657460fd64df15eeb69f60c069e5d806fb79ca4e1350ea9d8f8a6d5daa674e7c77b28ee1f5809e0930fa0a4ed1a23349a55e67103ba32dfd43fa1d8814940d70442f942f53e6ce3913f3b28d705897e3383cec974f6b7a255d3b31c092ece7ab000e34cfbee6af6ec1d4d3323959d2b98434b461b20d71a8280552b0984c8f0c999a0741503091224c05e0e730cd990da75333bc1a483182acc859f581fcda464743f964378f86de3a5abbb895f705d73d536d76ae51df65f0d2d5b082ab43489f35c89021c7e6cecc383e4d35c411ad19157cde112c261a74cd88eb27bf6727b85e88f6ba22cd672870b6f380211d3e35ad0d10094eb2e564afeac7910c8aa45220215b86a298192b37627b28146e58f348e39284aab40b6432a584d1aa113a1fa7cf1c85e16c15cb7bf8de4580ab82e53f534933d86158f0a5174f155106bd8570a289695baf213dbe21bf635b62249d20c7aef3c673bdc48cd3e58b9e988d9038fc854dbd8d7e5006f8ace859813e499a3b66be01a6febdc7200b2abd9757dd3a1583274f74dab21d9044b131ddb322bac318e4f43c6e193278c7bb0bfc62b56b7ac5775198560e1e6b17e33aae21e91103a4b8117ab91e7b0b7cebde5f74af108afbe75f709b338e0367428f1148f202b59805f229c586b93ac528f47f3d7deaf823d78637fdc1bd44af94c785028e972709dece159a31ad1c2d99e4be5dc6f34cc40bbf6cb0ffca1001da1d6ed0c00abaa7adb79161fde3fcad7cc1a2f23293626f06f0520ed4c2ba2c670a96ed965c64359df7f271d0fed804b00656b80701e99bae6e71e915978bbc2a69a7fa91172f40a6000f6b2824e4d3363b26baf58ae4ca532b13f29f3b41bfa6d3b235f3b9b831f004c862c0450595f7ea0793ff522dfe3c67c82add168b626923ab42e40bb1ad50207c21203f575c13200c3e9620ed7e40d7e26cbf168e5d0e00ea83c0095f400995916e26fba86a8325f2764fdd26f41d8efafc5127632b13f3ab0201f01c5d1c28ef6ce0befa8fe62795aad76029c994e6692f5a7c961508bb8fe78c64d6acd31a85074070055ea83c7977014220e470ead01cb81ba90ee87e198370af8eac5198c36d832fb22aec7242be147d85ac07619066795a8f5ca11132e63c73db9b48af1fa05fe2a1e2e5d43c42bfe1a961dfc4530bd08a311319ada60a925b64bb3019900c4060a4ab8aabd4d948652ec17add814b5fedec5e336ba58b95c669db9721163b2dc74257c3e91c2feda78dfd829fcc9d9014119faa4a42ee57843b3a64f9308a2c2135a58a5f4b107d369204ca42a5b3e24c6450bfbcf7796a65c0b224a364fb2aeaec55a1383b50a953db15df32c48d64499ec70a9020a12778f03ac86ebb0fc5360a0dc255ea36995e5ca92f9ca4a0ce47ecbbfe8b7bf96f825ab256ac41b47d34e5037f42f981ae3edda5eedc0409ec1b6da1db37aec4dd7ba00085d6893e367c078c33e530f598967ae73b0e67d04516b7d32717c108b18af6833ef72879f937b161b389f87a1be32216462f954142865290f11ca038f64ba7cf7d7136c06b6d53cea192dfd424141acc6039184d2aac3bc165369a6ca9fd90ba0eadd02d72d6159b9af018dc1da1770c4989c0fdc64b63978594e52ad877a3bd135a98d6e29152d39679f8518f93a70912971ffd88b42ef504cc17c003c066a268233316509e1757375e7a408185e93b74eb0e286c00f5a89bf9ae27466871813cb0caeb4081a93ddf45bcea351bd0c7789e2633097f847753d88a84fbd9f4107dc68a6668b5fc07c80d804d2212c434bb70485f87be9cf69c1e6e29f2212e43ed382422ae7a3ca379c2ac2f46998073bbbd163e606872373586823163d2f734010d4dd3196b483b502ecac245499534fa1a778627342e41269ad4a83515376cd9ed3fe4f3c732ddf94289d3e6bce68ed97417f9c8866e5b6cc5d2444e176c66f7923721adcac0e915b73a8ad37c2af67bdfe454eef0c0280a24d1aced8b2977853af5745f65ee57606c53bbc4ab6e811b1f925b7fa32b9195478a525f2591f64bb83fb5f9c66ac71296f0c775a29081932018e66d1da77c877797da7a86e0bfade35e7f68a7176365224d0e0475c5671638310940caa05dd8f4fa14ba5ee3ff45609e244ed88b93599d4dea9b2d13fc4901dc490a05778bb36f9785e5187a5301d6d3a61bd79081389ef6459562d8e34329dde1cbf7016d4b2db67c99c21d36ccaecfc49c25a6686fd4f3b961b0417820403a145f1b0673185382bf259954c03059ed1649fe80b9b3f3113eee89d4ec2dedbe916fb0c3e20c6c8cc089f63eb67de0893bec91830c9912c2695ac4e7c5e58579ed28666870878348688f2f0be650648513775c4ae4028a9d44273d269f2e153d218f879ba90e218e6d465282d69e9ac60e0c4724401c07dba63ffc1142a0552322b374f42f1f071b3e629a7cc59110b588983d94febe4cdc297c3d7b0cc4fe048535e17fc396d60e773cdf67f6d94fbf348d96d00f7514a0a884df0ca78b0a0133c94d3d1d869f6bed7d35c3504967d59a872b43787d9a4f5031d0c00b7845fc2da876a39973f79b46b07ca84ed496eda3fe490c237fa3b240cd3067dc2a911c652cfd19b35864ea203a973f3b52087f3644b37d84d335b7bcdc1623095cbe4d99fe667c4ce4ca08cc879945c1968f08e36dbb9c0c93d3f0ea4800ecc66dc8be518da99ccbcb15899162538bc9be658ba0f636a569cdbd1426134c0fd6188a61e0bddcbf03357b658db83478a9cab40b992b4f859a97ac7dddf14aab18ebb76e76095c1cf0829c781657b585a1df911106b68561d1d972a90579c53379920ae0487891613e0f3c03b75915c0abcab52c1dd4270d260738ba18b027ef202e08f6c42ce22ea99a6b29b54f824a9a9edc6d0c13329618294df6a637dc7afe1fc9b4d470b898227ee5732b5a6bd9858736e7069c2db9e3e825477760c3459c186a5f337773a7cee6b94db1c414378c2dbd356166e0699f80a9bb37d61c1347579a05d24219d7cda6988693da49c0de4092f4bde0c14d33bee205bebfac7b8458daf34b66039bd764c7d49cfa61e82009c5444ae3053f198211fad7765f6ad96c8c3d6b8d63d5a434434e6e2bacb31612fe4b0afdb7ceef634316ac39319ee0f1ed39bd0269602ae2a3f067b2ba3ba34f99b2356ed1bddc66e4f5a977a92bb1276d0437a30487a379161a216ff62e1753a826a4616c82bfe72bda0a9ccbfa94dc94fbe9f1c48a6cd62b1171fd574ecf6b2fd8493737c8332fe52be277f9450f69f443c83d0820ad42477d07e022ef22cdb1fec3f112ed6351d6f2bdade51d33b6ff43790bcff0d27130ea9435057ca213ca50f5185884ab45f35ed7c05ee44948e0253e35cd17dc5fab4783ba0cf2a5c31d8bb2a395d509609e40d3a96dd3c9879558e672f4a571dfff693e1978622b9b73f17ebabd586496728f1213fd759cc28f10d43b971fd2e009890ccb897405d115c758659c3e993b77e4929e002ab59f26c510356fff8bbbc2c2760b28df599bf2d6957624e8611a28fe5ed7dda5f7fee8b0719d462f0805339441a043f26f971eebcf44976d051a70408fb0aa6f6e7fc951cc69c092e4bd6364f577b50ecfec7558e105cc19dbd68f2edab3af62d12598ec3a03bf7c1ee034f9f660812aad451a70f1dce3e89cd8ecf4b4417e2e5cdd0e0671d935340d98f601305b324eadf6740e91ed870f8a50f1df0385d5d7f4ccf3ed1f3bc6792cb2418a47465318eeef350fe7056774598977e15afc8235a2ba792e6b2664fab607d3896aeedc3a685181d3ecb10831fc72b711ceba657252f7131d6d0364dd10f41c56a4b9d0f99cbc1ec0bac9331530f44f2952c2bd90f18c6850cb7abe39021dd92ec7771db094bd06bfe4cc1622e2ebd006ad19fbe1cfa8e8245bda0b9bc11724b0e4165a4b2de51bbde69c1810610c1e2cf67f528d587cdc37d6b9b485ceb49361563ed8cdb86e362ca168b8c95ffa1d40a7df770f180e5dec9ed119ea9bfc472856120fcaeb8aea7fe5da2bebc7596c8c3ce300b812b5cbea943501b40a272ed226a264ed1baa9ab112de7a495cb2307e654d1c2b6b38d49df9656b3fb4178c8fccc2ea74ce5f78bfc186b06a2b56cf28c5f67cdf58cdebb464e80edb042972735558baaf96b90f2982f75809d2b3e4c2429391a16e6d8ca1c85a1d4d2650e0f6b14f36844423da75a64fec938dbede24eaa0640f313f211c8732a14ebae342751dcba5ee62321fac20f7f6ac1e56934d5c22ca1dfd0ab6a09599b70b658f6aae1643437906f31adb6ed9c7aa7bd865dfcf06d3943ef600edb11b26a3273e4a48e89d14c8eb8ffa9497612d185347e99fa161d88ef6fe4a84a61550ac8a059549c17f9e10e66fc16a364952355eab6ffa74d3d2fc91f1102e9f185caf985bcd9e5d55cb9a9d229279988c1b73839fa27be4c61c2010d3f3768db36da7a82176963edb2c449eb627dbe81581f8c82d1456c262301379f9b42a9d543486f84ddd6773231501b65285336df13a201768b2e1e8536c40a44c87deb834b4b1173e67a8f15be255a32c0327d21cc5f9ca662b159bd06ce74e69f4681e7f1a7f21fc58d57dd73ed91337e9de87432cc518979a117577109b82a0f1650327a2bdc700dfcf231b05bdf220b9862efa4d7c3e834b97ecebd2c44b0d86b3491d0b2d2d3c75593ff2ed41078022d0124b3747867ef98e6152c11ec03a90f543d8e902906fe49c14cb2c3be3405d72baa5140619dfb67ebe0def385514cf138a5f2165c421c0a4f8dda49421b64fa48083b6cba0af9117a960fbf7861a4fb7dd4d2ef47eb8afe009e16fcbf4e076a44253065dbb021faa42d4ea10ce15c2d01e7b853d6f80d4a6784a057005cd00321c7ee7b63c5251ae78865191e6c1141350402d482aae4dac5f636faaa019ea143497e8854194613de5c18d58662bcb75ab87e40ae5a132902cada1b2360a39939808d9ad11f01d943f819c9aa3b949b2c61a9ff3fef75a52985b325629b8a1fd2bcfcfc4d23ca4965cc0e35eeb1e36cac7e0da615c30f3d52fe56e77ea3ff821a11770950ab4694abfbc280008a9887ea9fe552a91f62b616cec018b6a03d7d687ce409ef1817459b987caae17acbbd78f0bfa17db5449245c03271bd75bc8746975bc93951dd7911b8c43eeb201c4a02ccb6463ec5bf6acda0bb746a9541458f5ce56d9cb92d06476e9e61663d622e7332053408609096e59362e3d044a0c653d34160cf4277069eac6c8d3683f6e80e0285752e377d14338e12ac563844f7e02a586798a093eda88ffc2a3d252238288b7ae32f29fa6e6addacab89a2b0d0d11e5bca58ae5351544ca915be3bb71c74199c3ec5f38a27740c7ba84212bb97fad38d8c4a1a0531c703f16a1c805f670965cdb81727b64facdaec1aab4e102c61092f142318f0d14d3dde672a1160560498ac066b3dd47d924f2104043b61dd6f441af3e21dc5ac94571789ed49440bc2a82bb036affa35e2c2ba7702dec9428317dc40a83075029e4fc5347b730a971fc6d0536e6629e3a9db9a2f7d250f53967497cad03a7eec5cd8a0066830c49ae66fcfbcd9ab18e014afe76a6719c900cbfa20f612ed28053760382469ebcdd65fcd5c00f089a2bacf78695e553a07fa4b3ecee157fe4bb2e866e90072f9a9ecf4ffe9b3476908c15c6ac422b4f9cd18befff56eb447ff1d44a3ff51c056259e516936ce87ffc8b7e2867fb879255884f396782bb54f5c867b78ececdce59a4e75f9bafcc6c9d3c0b6e55081ac5c899ff6f9d878f8b8a562df564d2b69f75d2d9d5d828f55b2ff443da40989b7491b1b2975e7d252131e91184740e46c737ab0115cd056b3e9be4934d9902d1d360d500f65dce70caae921febe80a41f744a56b0f6567aba13b5ccb7daea01dc91d61873ef3bd17ac53410bf92aa93fbae6876581fc9a264a008d9ebea702ed4c880867cf90fff51cad3dab94bc912b3af6e40376abefc09d7a29265a7c234a187aadc6fd14eb9738de01781d8e86c456e9d19cdb0f0152de1c3e5f796ea54ba31ee34e724848c14188ab125c6f791f0cfca34b2805852834366ca89cca0e9f73bce7aa951be4e9d46cbcb9027ed82329b0386f0efc258388751345a4ed7408bbe9b70c0d7522bbea3379d4bdb31c0b561d812b41e4b71730fd05df68d301da45469faa46a38793aafff86ed4f548e86acb9be748da218f65511a02e4af4680b914543c16c3c4060db8e3b45848b21d1611c6cd670bab0594ab4d9de8545cf8224d3c8061ad2a594e38f078e8061ce1d230d34c8e81f58a717c30866b666852d502f4b7dc3d870831c86eb1fd44edc02faea4995fc9d5a4e92606f45b9f3c3498378e25d7045941108b8ff9ceb7061a6595542946a462cad73d58030ca96b592676529417b6f566c2ce9f0ec0cb8aa33baf5f3998380cea91cebc3329475d0dfccdead2c8e6b78f4b642c5162c7bbe142db2246cc7146e4428236e944daa1b3750a0f2e76ec8806606cd24a051eeeb2570a6c95bd82560d15a0e4edec7a033f3e3fbbff17ef23c9b6418b22d7536fc37a93b4ac00bc1fad2c3ab0eb532f99bd0d04e91d30803f0b2c6b6b2795152c19f7dcd7d747286081720f43f289fd6ec8b7f99366f64863b3b3bf1f4bcc65d28cd893bea4d7a0a9392eecdbf844dc2b138a728b3a95a18fdb1b26efa6a9012747b2eb83670b4c88fb7093835339c47ce4fa573400762305529f9aaaf05a5f474ab5a00fb7e9b7b3de4f7bbc410264f294a7a7e79f9d886a1b4864c008ffe79be816b6fcefc802dc70eee506619a386d10a3210b05196a47ec21a49a6f264f5049c72aeaae03c4a03159217a38640c2a5b14025ba479af4ab03ca88ccde32942e9771e0057bda6831630f842aec21eff0a25e01cf061c11b057facd56b6c277817f2208992b6e83407219d0e8e417660c63f0c1de221d185bf48f3aab8488d5e77bda5fcc9312f6c61329b48094e1f50ce9e07697863c7a463e55fcec514d9378116d6bcace7639c74dd9499337f5975722aefb233e7ab5badcefcf1c8d0a96a00353b17ad0b8c3505f9db43856ef53399a7f32a975098c40abf170c9dc1529893e2facc8560cbd3ce732cd25a2065c33c363965ae02887a1e94ddca40e1b9b12f61a084ad5c05affade130c72fc40f3e81fb893860c97954001a08954df63929ba1ab0ce65ecedaa9c8cf4a7156438140f6f8f4ae2582f2f9112f859fb1cf03f2c96043b2f29e6a72e6ac186186fca27901c6d9bdba79e6897cf08f8bb4836d250c92cdd8247b5adc0f317c2c91c1abddfe2b0dcb099ad062c49e31a75b6ee077cc5d83e4e77f30e3089a6f23619785492f64bbf64e9a12ab2cdaf125727c9eff171b9fa48808a87a1c7bcc7a8e1c0aaeb5812ddf0085dabe7af58759eb86b9296bee47ac325e5b03878362c9b7b3269345fcd02a1d8bcfaa88a8cd4043fae635c8c006d384234dd8b0b7078c6a701d9121720b02854424b1a7929df66ed92fb71d9311b435ee66c638a72fa49b8822d6693b4c9269efc8cbd2b6393f5dfeb615fd671e2ec8c07e8dce69fed5af4c0ca3baa8a68dc8807822b15b71ff06ba690ca13d9ce54f563961dd6cdb4614e8c9ce1a0701a6f897239468f980c20f36112c44d2c5be45722b6c065c3f04676cdb413ac38d1946a7cc35401f9235f639e557c72cff676ca6f04a6baed77e2fe913790046d5219fe340ca127bd4aad4357346a82354ccc4408a8bc8a2210a279284076b64107f50cd394e916c6499b1b46604485cbba392533d3460b44d5f11368e13bc7cf4fad1635b7155ce961960988271817cf6e27009533eb4d293192588bcd4f89a5bd9a2563314c4decc6bf0c0e4c08f88854376b7921611e61f3904fe3c19b83e646b36c5d5cebf72a670b00180f944a728c7695f091be86a65a2444479c3409cbd7ff05ff46a2bdc432dbc85927890c6d8300794b624fa2df89d888b9b48f872d6ec31fc54673c2e4c4e1e06c16c55daf48553f102f75173ff562730893221d38d0b75ed5c769dc997a18073695991af9e92019b78d30e12f85c657e2e9ee96cd6377ab5fe00615ab2976cf5b196d28de765e67212e7fe4ec1253d95ccbec942765484ddb79ec3b1e2c61b61d3d0fe207ad27df99ad80980df88b7a9585732d9ad46a50a759fbe250a69d88920856965e4f07e0a003f6bc27641d42ce2448b3d1b751a9f22856a6078deed0c568a3a90819a80e73429bd4dbf70029663f1817e9e4fb97a688831c9c327297bd086242e49f0ad423895d22d9c1a29d457e0a76f5ec66bac8f11d2f1d16ae90161746bf275d38a3b18fa616d8ca73fa7ec2861d24dcebc26d94031b17e71c0f59a253bf00b6cc87f5abe7ffb65627664b0f1223ebae174c99c67fdd5bb2ba3e09ebc4d38c3a5290203c0e8d528fceee627f901627f7b4652608d209b9629aaf59930e214c1ae77f98fcf1c42c00a05afcf129179729d8a06b6ed02484b22620c6bcd025ed77a8619a630491fb7822672a9a10f0f7b4e0d281b749da6726fac8520b31ba0b63f4938d41c039bbb423c9d9d21e8649715ea863e465c39608f2fbc4c56e10e9dfaf6d0c93fd2d24d89a28ba69e7e20bc8178c20f39d15afba557e280fc867e91e93e17983b8b2c1c7cb174f13b4f1018a1480bb85836b1b8f5e66f984245dd260f8d8c19237a6f5fa2d551dfac5c27c68c2f782561c09fdc6a1681e19830e719b35e4968005de8ff69383f16bcee0761db63402248c19fda1346c998c05f0ed8e1a66c5f4f2e226c9ff818a2c9a0b73c2aaa6c09b29aab78a23dfba15362d123e742638081bffdd0f9f2567943c056449a91d10a7b802559ecfcc8df3c07fa97d97ef9387a2332d28f1a699930fbf49a52c06498300be4b06b1cdd103a737ec00faa687313e97ff95e611654ab5edd27f94f3f07969a4e3abfbd6fa16287fedca2bbd28d992521d2c530a05561a5f3273e3adfa62188b3e9280c59739b971726f206de524b4f400d0872ac6112d6fcb651d579917d2942820e4dc3382171089c22006351dfe77f1bd12638c31632ed046760714009a352ee7a80de9f03b15ffa9a105efdfdf6dc5eaa9114f2d573959439a03f80578ae5289a913738a56aae69857b9758c354767783eeb0fe4e5d4972858b67b7ae588599411795ac3f1e79ed5152b37d3fc4023532bb32eb919659ca8c07409488adf3fe64a47ba65bffe05931799b4cf8ddff65ee8f1e3745dc7aa893b4a91d14614c689ea8bb725b8bbfd19ebb75a366cae314d4871389237e74f262ca01d3b5668847ade0aa48f06f2e6bd2f0970375ccdbc263395b90782db0e1c804e4ff817f8a5bf256ebe7a4c1b59d4b302c3e079ce1d6ff3e50eea71b855814a08da8c2bc1f0bf5f3e11a52829a8a4e1677c86f9031c7714fdd35a56858719d65f37b79d29dcddf9e3e8ea87707056218f2a3f69a6b7a65e696d57be1ec8e3cc8dc08d6390969ffed3758ac510a7dd1e9ab5a5911e9fcea7c310fc80e7c06cd10960bc123ed2046675c7c34219f952af0a06c494811eef65156f53d937235b29a0b0a553b4f6cca501bb36c1e443bc2c7fdaeeafdb6f8e0c218c71fdae9754f20609c5f38696c471167be54bfcf852ed87d8a5494c840e4338ee6c81539ee8f1750b0e34112299920139f401e838dcaf857ba151cddefa3884a16258e37a95e1ef4cd9820028b4388cf1056b092a035256b29ae2e68f1a02cc39f393f0abe2c77b4e467415827ebf3e3cc134c9ff3d3419dcf11999e7ec4abda8299c7968f70957f6fef871033db510c36c77fd9fc4af09dfd2ad65551dada16d5efa6f55423ba95cf04f14f608203193a1438c92605747f59535968341490430578cc7d2d41a07b952c05b3faf19d346873b6f36cb4a6d7eadda8682f84eb83ce857543fc4c39e60f211b08535f3af174afd7d9c1cafc5af98e48adbaa42f1444fe5b2428c879b1e0516a1f6ea6567fa767aa08d3fe99232d1e74ff3fcf293e85da34bb26c035348861ed9af5c345b0f5905536ddca751654b9a976abc52a4257a87ed469400d83cfa614e89c5930a6e6f14ea5c7ef8f186c80044bf72b8f361909a03ee0d86874baaa48cd872fa553aea6e147abef3406160767a86c08d81f4433560fbc20867732ad3c35c3adb92c569e045e3f92529e61d975ccca4a53c3ef7073b8992e9490eb2111228c63baab311d81876262dcd3f6ef61f9a43f54f6a29ded857421e00b1d2d46f2f3836b8b4f3a69841c2e4037fd3d83070f1cfc6b0cab3c5f0e9a11ba872c7e616c62d9d81262de1d028bea69c626c39f1f7a92431f2209e6913e77c7eb2b10efe8fbb83ea1d327f1d94edbcd2c02d768e6d36dd974992a4c3f356380806e6a948e6b582c5e221917be134ae3cb9f4ab133096c9cc33ff67ae5ae979438eb44f55d761fba3cb6c8e1bbb95a06b4bd5a60f6e0fae9b055dd65c259c3ab9dcda373df01a06d4c4a962a20e4e17eff919f37047fb03242b25ba226eb0d5dd6f2a9d19b96363f876f81ea337a3914bb4387afd7f473e9b73e369fe19eb4dbf96e3b4b17e33a839107d0162a272597e870a0f82dad35ffaa7709150daeb6ea2c067051183bc098cecc04fc64d9c613fea8b4eb76ff37eddbef278a47dd91e923b6d5513e13e67fe7c725910644a39d28f1b2f2b7a2e78f40cbc803cfef0e0c8e2c83335086b8b9a2d9527df45eb6e7c5426a34da3244548446863e362f1e0f9e4afa7335d2a013b735acc915e4971afc09148d5bb0d8795c2c2c08a0e9c3fc5ca8da0d40d9654015e4887995d4af9a13a6ae1d0100446bc85fd69485ee14d1b30f649348a1bc60fe40fd8262f17ab03aed277c7969516f94565fe90d13431221ffc82621d468dd1f79b1e1fa43df44a7a857ced318a1343b991eb5e5b1b9addf2a513a0f41ed34d71308becc9490239f13ca59509ce0f99046f73458274aacdcf74b424f59cc9eb26694e21df38475cb5e5a52566b9354798fb6f92253688f3900d3c220b358a63d1de1f976357965602f9df1495c6bd8463ac2ab1f1d776941945c637c88151f2bb7864e056f85200e1d1b21952c31214a20172668ed2403a7351ef26037a714f8099207437dc1a464365b4174f93c0184ae97820a30d89f9a1b3f8197c2539835bb3a1b7b7ff90f507abdd7ffca7ed66467aaf1bbd62b33c6b0da07ea50138ec1c6e9716b567260975d252d7b041748015f28773ad77b198712d3300ba930db58fc8ff35c2bbed9d349742727f67eee2ac19be636a981a5cc957341d9bd799817804c7986e9a07f2b1ad4e7b74f41a8694bceb8b1cc0015db3ee341391d002aae4963dd74be045935a0d1f712a2429de8cda794ae3e83bed24867d18280695e4ca483a37f9efe6cd220470f2be9993208ae5ca50307268a43a375505840d0f785af5ef306c0e2ab72d416bda5fff8706c67ec17d3af75074570974ad2da3340bedf8ddf541f69363166b57c7625a59f0d05f059eec35ab283861b4a1872798bfa7bc93281fae1b46f798402c27eff1507abb8f3fb54163974f1987fdc4dfcc8551e6f3da4547ab01c20fdc82b929d859e0ebe17ba774ed5656d41e7b254ae86b139585dfa7590209d65aa2827cff13e44f75c4121c62a0a7def03d6e797c807ab8e003a5767189e65c4f384040384321bc5e57c7bdd8059b81d7f184dc80b514db6fcee6c7910efabadb7573ae3b9b0ede8fa32bede10c200d1c30d70bc904c739dc09ef8c005dc3d05b625d9882f2a52673f9195eed118f09ae767ceee28674f00b627db91a88176a5caa530ed9f72295b55ea99b54e8f673a677ceafc4e4918f6a2f5810971907fdaf7a46b725d488e722ca718e211f94829594e9328a78d6c646029c985532c88e340714f5c5a22c46da0a3b3a522a2a51070bc4fd80f979987e090ad2a855e5f7754d55a52c186b1a26710db3391c87d4fcd7c9f1642e8936f8529ba5e504bec3c07ef37e21d6cf87a5134cf46130bbc79a3d0af10029f197ec7261a4df99d52519e6ad3fa1467cdf4d4a6689ab05e70d3a8193599dff429ec2bb79d65b2dc2dc5e9ec726fada64420efdd5e717f5d6ed859bb55a686e7b6468b01cddaa096321d2fb6d3792801eaa55129261071005bb70bf2f5d39f6a38eba7145a23f19db0d2e3c7b1356a931f3de174c7402e16e6d3ce893fdc40c5928e14c3df7bfbbfe5d037171722f2b4ec33846c45ce03096442219ff324edfc93b76aa5e06178adccf96f9679a463429dec40db3b0bdfc53c4f71d3ef3126702642d1bc6618c50418a0101ffe859e80cf5bac5f674c5ad6acf96f9f532d8c0239ded26f792738b0550fd8862d6f671a558aa8cfac6bd9ff257133addd678e7c478e84dbdcdb850acb0189690873a0fa991873e50844b6f934a029646cd0ab00602cfcb232c0347b76288571ad8511051ab603108a397d0c329fda10087f43b87ce11627a22c227dc7a83729b5fdc0efcca9ba8017af39ac2a3c7b52802df5190baf8f90a1b416410a9a4f9ffd17dcbe554b5fd0518fd25f627c4fb871ba916b84e765d659b56a5e388aca67df742fa5318a6ed54ac676878113ddb87ba69b610db393ca60ccba43dcfacec3ac972f4b1868b9852bc519d408eeed6c8a9957fe2c8d14f7345eac59f9dd56faea6991be3d7953fd1f010082e8aa62b85adb6c12cdc63b95fa11c209771caa2bedb6728c2c68d1040b745ba82a1ad5cacadc1501e1005ba97651401b6115a92957ae12c87c72d7b0931af82f78c40a221caee0a941b4b87c2acc21186c17e71e96651a00c3e9f7f41875f842e06437780786ff9987add6efbef61bac90e7940e8c527564b0b2e143f80aa247b2690f48663e29e7ee8b085fa486b32f3d3d3b7782d4b99e83c8de965de239b86a73aad040d609569a425a13e9f760d1904845a2f7a8211f98b7a276840af169abdb35c342ef42aedd98c679cd08c50e50265b6a017412e0172169dfea13e114f82b7704f44efc5d91aabd9a8a3ded6fc66d8c82cf4036e2913d641a7892182f78a11e2c965f04cfd367fb8b145ba8b695a54a884ef823e37d537be602a1b76c4fb1e9ab32b0800f0714aed65ff0eaf386cc336a0ceb97108441598af35c1c77368095c838712eb04bc6ec0bd6c84335ced0aced454f3cbab5f9caa9f7651faddd6aa1ce05fb32fa33eb7d01337960bcd5184c5d74ba0144c2006ef8de6160fe4b7ce12cd5467cdeecc2ed70f9d9a1f291fc13aac9aa07db99f1ae23c179a233dcfae05ee171b140a4def4f20a82c08a93487d89c8ff14afddf8178e7eda3836b3db14d1f13db37f86a72e91b455818289bd515a8d7ca0b2f358efb5863583288a48de282d92ac5d47d81f68aef479f6a89056da6b49692392e5256190407a616f215d9acafab2a9cc028d132246e5f97ceac6f63c749f5d1d8b95e898324c9db17712362821f74c3b0821dfc8f687e4f4669e41176b9cbb40c58f3c114b09f580135358df5b859d59a163f597f5a4c82395b3d533832b84c126bc7c984a606ff1ee89a4ab1e9618f4daff063ef40103087da2b370756229a9d4463d05f56a3cf3b74a365c836ee6b3915a24ebebfb16de1687e138db095a8a075fd3c7958aee845034f291c9d0c9a0fb78c37895ab48f6cc87d799b895a7d28f0543e1775442dc51a320c1d2fc5c5a1e372c0df119a7c0003003f5edadc2d04c2ba8c36c8e47828434bcc7a540beee58cec4c2c38478c7879a6b0bc5469055b31f3572493bfd6767171e6dea180e17d6abf8b010b33a9c296cc0186a49999c504f202068b7b2c8ad30f24a71e1608c1e97b3f1a659a94f239e5d526dcc96763e521b5f26e5bf47bd0c9df2ab15061a8628abe3928f7ce9a6180e6642dc1c87b14a2da76369661732a27d9d2f21470cba8ff0f6a752d178551d9783c1d3a5c46c930aa305f8ed1e59e4b45937c0ff9c3aaa84c6fe1b6ec2cb815613a74480504bbe433575b04d06b6255d7020f0b109d969e81e7084554613ba7d7b1370612abbe2e59b208af4c57f4a5bb5ee6ff7103f8be3d61ef958522eb3b33c094f9e393d3c6671f7d082d91fcb338cc5d072af689cfb0cea7f9d1b917d273ef22a4da4e718f38aefb1867cb5868db07116a21623535571fb8b4465a4c75d581ac6d172e21784dd82d78d6892654c3cdfe734029533fac03de2aa0e4428430d3114960cedb743a42d161e64bfcb6df8a24fc8c2b386bc7cde8defff41394de3cb82f130d8352cfcf028679274db10c16f0c2a8fcba03333d3e4b44fe181b408e0d180ad0abbf109d17dbfdba28754a8a17185effc778a6a519c4d295b3111bb4c7c7039fcdb938859123ef76b76f58eb6d71b60b88a1a5454edc7ee5da9e46e50b07b8bbc66305015600396a4b3d51ccf9c6a9b49160df91bc9884e87d8d9d90fd8a1f66b81f1fd165903f15a33d85e34b5e0554a9d7c7ca91d6988ee64c6d112b2d497bf183167717462824a24bad2cecb85972abed064462a87ea9aa6b669c5f92065829e2bebc0cab7036712d454acf2344aad594e9bfde33da208728ed5f79f133d1118dc07a042c6e257d9ec367ee34c056a0916f61c6af459a8b208645e935d6bdd7cdbcf31cd7e3ef76688c21dd0f7994de60aaeb68ab7c060d51f4e1119f8f5ee645d0099b25d26d34d5c8c01c36c65179f5b172457cf04070329320cb54b6c5b07a47f81ee7446ae27d449c98fccf8d9dea75080c8c27eeb2a2cd0afa21be0d38885fd969cb56200c8cf4cb7537c387d03fc6128747b464cdd42043fdd3726179adc4809754a04733e056531861faf3d241d7241507b30def5070b64b8377b7d66fead1059158466a9b0a9429993722a68df4d328856bd4b1662d3aa08bf2e6fd28f5b63efa12d6ad87b99162a8fa3a6ac807a2461e3d9aff0328000dc0f06ea09545cbf501f8ec7bec71181c1c642ea7b4171892ed2ea1a62b5433bc2ea9c005fce2d67c43223f8b5c1d97924b9d08153b66f92569f82115d946d94a5ff295678d15c9e8cb5852a90eee0983485efcb3a8b7db766114d0ea404dc263371b2a6cf55da2ec3afdcc27a15dc9b606b087ba9b3e53338b52ffb536bff71d32ce63e8031ece44522ddd4b0b49ee5a4dcc81abe406686240a5bbb3e5b47da32199580658bb611b371dbacfd696afd1b392582c457c7f149500ca215f31e285a5deb6089235c0b76847b490ff9700b1fa071630c035ffddf2a0cf763e69509574269e9e2ca9caae3e55cdd98d9f05ff6730bc10fd744f59b888a7959bb728b7471d9b864a4aacb6680b84f4577a7eb19730073e9a59d672584d4d76407b2a303915e7f5b09a8d0bcc045b8798dcfc401891aa61bbb74a69a2e85379eb465a9b3810f841c2be11f4234e5e9e74885a486b8b959a6590d4b25763eb0019a7eda7abe7f1f04cc5d9f4ef47ee4f018356bd2c1efdf6d7674b09e9aabcf79f049d50ea1ff40c4a9d83ea2703b5fd75aad99e0656360f1e85f7444e28a16ba6e531fed8c56e60273836de16abd45c24886d68e699b57518c15fa7c80c078e915ec9ff34237a948623fa221354c348fd6d66b3dba7315a60a2ae9abe000df1cf9cc2289dfb4313fd81bd58585edff746698c6ff55a93da64c64ad16c774a7a1892cd855458dbc3f8ffd03eb70462d767faefa5cd99b469dc7f7f5d8f9d520183224d58bf6339c31424aaea45ebb78a3ef423ca0d49dfcb1239533e963e70f5e4a7391bf9e26b7b8e0555c4907af502e040a67b94a6f007df4851f2de4d72d49ae836950cf3a05b4aa17148fd0f0564bc10d79adfbc743ef7d25349e3a13a73181131b61b042160ccd5ee4371863e1e443d214975c298f88bf8d327ec5409c4ce80e4e60a89c89d159575d0e40a27c1db700fe365f8afedd3f3d9a9b00b4a3d6c5f308213c0096abb5b115f28cfd66a28749a1146bd1817052cf35a6f85e420ebf903683a9208596d42724f42a6310cebed98c2e2a7b5ad3d19d8e93246b78fe161027acfe8b35f2df6ca783e8f8a39aaf92f03a0b3fa2228848731357f93419280611cfaf8396e01fcd41aa7afb77645f2e23789bfcc4c9bfab7814ba2ddba186aa8b85ed692ff441e595585c269d7c549e210d1abf009ab6c473580699c6e7157a11b83dc5992e57e1cdc29a56578bb43d06fae62ee930ed5f01196944c1509a3f841619ca014f23a516cd20539ac2dce29598af5ae7ae8c3200bcc9218e3392e7a7208fd0aa709718228853a593e0dd77b4ac7a5cb6bd5c2d1398616660825f93a3be321a69f99194a4bd11351f028684ee04f600e5e6036d21c9d76160450c178469d1d227d83d15d78c68eb5145e2ffefaaa741583a8c28d61453b82ce5336cb9e3b6446313ab68f8168ff7f03b62d20ca4e414c744666421df33825345dbab98817fcfada77a09c73bfb71f62d07adb841afd03d5664fdb42e68b8daae41d0d701bb4e2cb6b7b60a66a101122c493d1002df1f991868d488c18b80ba8af4d614f6e143190338230b68b1d727f29b50500034531076bc80563146605fecafda4fbb5f4542c41d48156862cecb99bd2d5cf537aaa9cf55f41e28991b2aecd5636b02b3ea88bf54fffadc9fb7c91c394538c80e0ac08372eaa4a41006f0d1867db0e8e6ab61b9248c909aa9f09fa7c65d90ae987a83c455ceee4e07db7a0fa4144ca0e6f0573333a12feef81f01bc738c31dd87ac78be1605c8dc70c5030b48c5cda86ddb867a8e4435cbfc9a5423bd9b8ec84bbdf50ebe2a4086dc1bbdb97c82a897962c22069cab82077f5133b104003cf5f367a78a2be02a8aa1794c0a3b73b6704a05ef2504cafca7c444eed50c1b76586cd40c547e3c9cc2674a491ffdf6b28e1227c700f5d70c3dbb800601645b9948b540f841f9d173497e91c0596d03bc1b0fc918e35685204fc545b3d3e9b7a9fdf8d114969d7bcd2cb2b2b233fcf3d919140b63ddcbe827dbf7915e23d822cba1a0f55a03f6d58d33974694ea667370fb2e8fbeb2947a18dfda8027ccf9d2c9f1cadc9b04cc5adbb17490cff9785ececb16c85317b5946bf6fe086053f9ac916dc6c6f982c194a16d48003e65925ea3e74819df3ef1029e06fa760f5af1a9b61871016dcc08c50f939147b2d3bc818345d4fb34bb7e26b1fb9ca570dfa8d3eeca9fc042dab4a217b9d5eb71795945674e15f9b7aa8212aa94745b715325529210ef2f98e75b90f1f511eeb3d2b15f2946e472e236b7cf1340e76535797c11219b9f6ce25706c299038a12242ef5130b44f8dec362d2a677088202921910babd41606768eda3524c74a79065076d0331bb80517c2988eae89046e792859d10ac912708c64f81350ff7da768b31f23d229337f1c1ec413b7c210cc3f6e8ca56d8ee7e506be2774528acb1da9ed1ecca4bd06d355d33e5a7cbc3455fae6c1cf05044e1a21bebd170a38990011c2969037cccd49cadb74360736fbfa462297b62c5440fc86e081d26cecfc70a73300bdd68ff05e223c60ee7944624a5ece9b7c40e3b7bc54ef864b3bd8df0478a01ebb42a570b91c4eb67d255e25f73dcbdb3d0a46a2e1a7dae903ec735c65c3912a440bb206a47abf468335daf2c05f35b181a2600ca810dbbdb5a0642ee73cc3e210b7d8072d6843a3dae5a5a6190a854ca5dd79185efe600a604dbe85f5284a4ef49b37ad5f51143a6257e4ccfd6a6147f791b304d0d43bc13fa69e15dd7164c22e7068cc332a9ae059efc37c49b4cb7205efd05612d35d937fc153834832aa4105302d2154eb47646a590b4800e2ca9e93aac8918471f9ac2810c332cf3ddcb791096c3434a307c3f1ef4eb354d8c1a6232fa3cab49388e6ec9bd4668dd3fadd6f4987927002f6669c76c565c44e841a925dcfd20ca0cd8a5075b1a9afbd6e7e4c53f87d22f57d001363b8775166e6eb485ece6cbd3fbc319a05c9cc47f1a8bb434a762f5a860c9f5472c098be880ea6da5eabfed6cb9ae46f9fc267c22f6a0c235505d9b549aa12d400a4bfc6736aeddba37fe6a33cc3b1e7dbbb456964e88ea5c9f2c3da0640914da279c6d9ed9e1c5985855ad4f12dc51c7db247e30731f38335c026c08b67f72a2d938eab069305d2d79d717de38a4f7d6e38f96e2b0bee473333597479810fdccf8668bf718ea10fee7a5aed9437383561fac6a36c10209bd3379aefba863278f62a23673cdf6782b9531d4840b694eb21d4210d85767cd8752a8a26b991a1dc278d94407a298e703980b3e47bbac26c331b1765f95b1232be61a0774ae7ff72e9eb9240567fe3eceab4583fa5383a147f2839176962a53432d90558843848a71be0b4a881ca6f641ac62e6a826b62944bb14912de5a9e117c6a69624450f63cfc620fcd87b8f7a141dd73cd45c4904a72b42db4a0270a38036e57001b49bd0b9254ed58c6b3e4e1fa41916757182c53aa533b6a8e4d0fb596552e0da282714f3527a05648e8d9de58b438404b43ef006d12dd73e72ae98cf1e9e18a04a700e7845b9a9f2b45025ab4041280dc999b9bb1977474a09c332a492d9537156850761fcf8cafd66c79de1d69263f228e42aab2d4c5122f9bb1c24d6bf8fe69fa269e5f8bdd5135cdf106d839cd1d69be91b1f7fe466ad0824ab9f608e7bb80b61898fbdef9c500747c62220876acdc487bf90c8863515ed1dbf218e6d180b9334d57655b5396d0850aff1acb0f1ca9594bc6381ad564dd6eefd951f69ce47c53a0608ce615a34b7a17c56c9ac911fd6140d4c6b3b513ce3587fb9b7f8f7aa42592c7cb770d2339dbbc7183ed5c79aa2c21d7308c0dcdaa8c5fcff6018266740acafa0a7927d0cfa47fad1736a01deeae3e7c51fcc9869af40cb0e04f19e860845a1fbb7c9c711403edd69f8438cccf070ff923c56aaf1f4412a8ef410d9817938f5a803966c0295d5f987fe10bd79ce8acfc42d2ff1a06748b1d86434f5d784fd7f862c323f84554736f4dc286d70ed417f918686c7366d44e67fec9d78d4ae1bd165d8df0db58e6158048beb31b18eac386f1e7f7da260d246b408ffc913912945043144f29283e9577f2bb2ef4e454dcc7890d302290a454e5e99f032465a1be97a62d4a0362aceaad27c4faa2378c9ea33bb8a70e32e80421d63fb67274de108b11e5289daae2af5106620b5b1e4ef6ed742bc642cffa2d16f8d30d99e3d56831d1958da71ed18c7f471aca4e7190f72c50d65629ea782ca0124524d83147e3dcc8cf6b922fa53520d4dd6a327f99b24eac64ba799c2f47979978b898a51144f2eb55f454f9caa414e4c9c0ea53d28a5155df529e4e0e976263cba0784856ac2b455a429f9ce411c77e36874e5f0a84f3485a9b1da0658e7a2ca45fd1bd59601973080e7333da7de292df363f4f10c3f7e34873ad62df587cfdd88340a7bf24a6f9036140acdb3b31368afa2a37623fb5327a917ddc2c1009276c97abe45e8c688c37e29b2153ef73d75cfb10384d28c835c5a85732563506478c1a452141319d49880b62fde9cec785cd3c21a789d721e955a9d632a4e58132cb76bc85fac8678e6e00386a7f9d2d4c6a97dc2817b2fdedc32dfa09bc1d301be25a55fad4a0ce106de7c712473414981603a7f23fe6d52fa99beffb39043e4bdf5961f1ef0fcf5547c6f35bb0ff5fd00659015b5c7f1b8fee8e955a4bd98319f456a84e36804edb1c2f56b05807a23d9545d9de451d16cbc9f3abc12e4a7733bc2fe9fc2f9a6ba04071aee53b15ded455ea5d32e04b24f4bf981179773af394d8fa0e3935e98b9b44a88da2730c90aa330ef76689a006d8690a3c13dba7aaef5bf6236c518848d30a75e79b65abfedf57cfd8b39db5f5c8c14b02807bfebba385f20f2da0d21a067caee3b6d63574c610608839c9ec795410df27d68ecf52c7e0866dfe675aad85083825f6923a88ab142d65762240effcbaf1e1bc98a53921210c64e141a1857645e75cafdbc4a27d38a5df1aebad57715c31c18080b8055a53b59fc21e3af0d1f523593300e9fd75bdbc43777b4180e4f9413a8f420c132cc0a6e80dfb7ca0c827bfc403cf33bbcfc24f09109b0cdd26cfbb338d2ad484a7d8fa8aeb4abe63594ea553e105935f9132df5bd842d5efba26fedfadb7ab9eb96d6146b187d60d4dc7ebf25cf1f22091cfe1b425b75e919ee2b8170bbc398b656e0ed2a1a646e4be9d3fa884fcd0b553ae84c06d7ce8dbb8d6325d6149176d2e2281b8ddc3036a2cb3ddf939b0fb2f6b3110e00920632a984862ac6f9e2d6d0c2c0a63413ba183897d5be73720fcc0d7297723dfc44895c1a96d43b73ab254261f5ad55889b8c54e695b0bcc59231bc843d9d05da344bf85889da3300993f2690898e33994422975687511e3def15b09bafb837c179da3790c1bd820fb15928037e5225b8568b8508fdce99b2ccbe1e8e51878b9f76d357d38eeb1d85ba5105d2699c93eb53bf9620e14b13b5b76035d79fecd833643dee79c4da003a78b192fa6296c94b9d97234911f38807840b511320121690b757069d5d970b7db3ee9bda76a56085c17c962ecb4872207fd0c186e1094e9ed83d999f316eb48c16b232b6b2e3845c1bff0c02298dcaa9728c78958d106c9928dba9a0b8aa2a1dd72e1e38bca24e24c0745ff9ad41110277ffc14908d1599058e9df09e09894d830d5cceaf978f349bef62bcde2231cbd951c1dd3a04b99e70ff37a04ef3c67dbafe98abc4b9b9fc6ab57133a022fee213cbb4d02d24235d6e294db017b7372354bcbc78453855eae84edcf81b576e7a87d1408ce924f9de79876ae336c6b206b4ff2e2794d3298a7d9482fe9e0ec898126b6f4d136ffc47cc3b6f91112ac93f518f250b878684e6a4e3341398064bf0e9ed557c9de9ca746a4c2ead54719c3c29e07e8c00fd97345688f3f4093630567992c5a18798824cf63d44700a9a76fb0ccfecaf5d0166d99acf3cb4e1a9623d69dc9cc44523d02f29791d5d4d5b2d315ae78b82017a5095b0f1b21b822f41959537e4477356ac85d1a84d6d9c727383968dc7bed81a10997b184bf57e3ecc324a7d594ff1cbd0b162f67075836f52fd9047ddc6b2eca92e9efdced09e928461cbebb05cf7244b8f3fa8220e30a7416a60cbeae907fe2cd02c1091f2f53b5bc5cb7411afde087e1204a90f1cbe5b991c4f1409ab376b8432964f4f02e20aac7b43e276242b2baa19da6dea2a8b207464b4a65bf109c4c77b75f6a00ee899d8425ef139b7dc2a99bbebeb683d64cc69bcadaa5a54877dea89acfaf3f5e72763b6685aa5930ff46c5a91b3313f233c375bf709cc3de97dfa3d3039dd6eedf6f8562e2df8d0178f43adb27099e60509ff9208db680bb2d0ff8f86e61d4138a5ffdb8dd3f793bfff0fda485fce0c8c7a118d5dee4c7aa314004b2e44524c67591983ae809194b5a88aaa6b5f69c95e1605b3b8dcf21dd1d8cc74028084805a2ca9f6e7e4f994302e9645a0dfdee75fbf28ea25259d46636f483f3caa95351c444e0106b7e215a74c1758afd7e8bdc8d9956d0667bb4bf61b3dbb05acc872f15b5148ed9002e69120752d8a8b6b1804018517d39c42e4391c23871e0f4b0a72cb0b68b38ddb56f93881336ca15c9de0e2a75d5fc028ab2b951fcc4ae5023c8eefc605cec7f8e0f042eba6cebf81fb47cc684f9ffe98eb15b372a4a80d5c32288a8ab8ed118db0d5708e896eb1a3085da28fb7ed9b18e479c980239e6d6104a7aedf25e8f36d8d585922ca3d58222189acba5ec61073a62ed4b42db066b8559b83fca3fba89fff440c65dd706e609f9b2c92c407eced85046b8900dac38046ed30ff558c6f9529c30e6ef49a5b86ff716582b6aba833a46ec32f8c1a1882f2737179f03ca759925c51fb76666665da436491dd0b34626ddca1d247c64b4b52c763f3650102b7b869766006ca56d00d995cc52c953d7288f5c4886d81f4ca2a5a676b87f7b0bb6e0592b79f0c956652f70dc4f23da0f5e3e23557303fd8db5bece02808ab7cd16f457d0ef59fec18a866d0b799eb7a53aaeb025bc3fc1089d2a612699993cd17da787fd906236053b8266a4b36f383b6a063f8f4860bc83a99dc927748b2190fa852936e89c8514b009394eabbefe0b8d54d9d9bd5107864751090e5774be88f33cf95194e9c5ae02c6aca5c3284dbeff0614cc498f1217118263a44a191fc9631ceebb52028e08cba9677f583d2123df71554541ac8492c8f219975e764586729e8b98bef3776f2665f2c3d3031eef284daea85fce68a9ed6639bb08383c690cdac135e39ab79f8af1cc174c7146b63136429a1a2dadeae62676d31344f97bb10f5e668b2b01c66c0893c1d3f587b4a72d40d1ab98f16ceb8118640a2e10e05d1f0bab09aebf67c7a930805bef142d01166b0029f1a573f147f9674ac334b94e10e24a0f809babf797264311348f6a8438321740ac7829e84d8ef8f67f8df5678c8abd0ace50bc3fd9def66e8b02aa0ec0595df45415ca6bed063bcd17d6dd2a61eb08701dd63f793b11d7c133af7a5e3e332b070733d5f48378247af1519780036bf43fc5d21c28cc37f9ce5ba45ced2566408df5f2243cf11ae76ea78e011705c0331d7165082b5f13015ea92aa8534f48fb8fe48e012f1b951a5a88f699b1a451eb40a03a96bc0a4031dfb4fe07c978c6f27faf578c576c59f15b17334f9b3c2830aa27f3c454a9d949168a5b1093bedcb4acc2031c0f50120dc48a5f6e59d06d65f6adda40405c30e7af2bd5bc1a289fabeba04d6429b81ec4a74c0b14db867e996a2eeed66f048d52eb0b03dff01bd26a165ee28208991eeae77b0ccba3298944d87932d217ca05f70e94fac740e612e80e25a04b336d8f6d4d6b2243dba6bf0a32b25a3d349962ec31a299b60f38905f86b3246e98b0785c3c216849bf8f1764d7d0be42ec9f114a0105a1d42ea452e7d9daab4ea26428221dd8966cb09b9a4bd820a2241cd02b348c029fccf42415f3f5003eac208eff0f048018f7f4244758b4c0c987026389d4cdd3a942ab93ad4a589e2e6ed6b64e834f3aea2859a780e16225630a2b53e6b1a022eab91b320535f6c2ea322b6b423aeddd4edb06471011c4963a6135df16170392f5b0ce24a1d9028c177a19bddfa9b77451f8494bb504f5ae4175050a4c7c1836f9fe5ef1ba1a50b40084f3c11067e4be17707a9c456163de653b3e1b68242018b4bbba07e9694a0357400211c1f4ccad0496ef485ef9e6e8b640a61e6360adb4413c4a3457595ed53ee652490a8973e7aa0fb402a4699a65dd243a62bf2aca7ab4eebc2d8febec9eae0f418b709b05488fbfac9f93cca540e17c3efa0d0d514f801eab0bd1e3d1611d726cfc2e4e465ebb55089ae2e7b03940d8973c8381b70cb5eb52c9fb98e53a818ed24594043bec1f7018916f753c6454e20c449b42b6fe08ff75c7050dd2d69df2b5126fb8ac67c77428c5c269b4a70adadb72ce3ab964b3c4c44a054b09f6a2e5d5968ae0107cd88f819e1e5aa73fe9d939e85506c5f5163853f9c84da9f01a9a3a063bfa3488687f8e252064313b66aae70d00398c573c8a4a6200f19f2e293f8319fa07981e1e17fd89ef3853008e18050c15dac2a91c2d6a73f4ae6fac188b348f1397b585a3a5ce9b002ea0c3f90ab1564bc85afabb0df201d02c8c7e3a99ffa7611ea638e9a583516375681216cfd11cccf737cf13073f4478d7634814355aa619c860643866f246a4df464cb95896d547bc17a1cdd7b959f512d2c4deec0a57a8f89a6d158fe3383dc9c3240a6edebe1a91da5dcd24b8bf6abee34054857c869e24ba69f2b3428995159122b6f9bc5581111ce28b5296da9f0e8e1dcfa8c584adc78ca3b1578cbf9259bd2278fdb4dedc120986413fa07418013651b8eb52a6b38e871af80e2605b9971ed2eede26de0713b092e0275637bde9ace645800ac6d80614ff4faa78a8db2f1f38c308a1a2ba6c9cc1df413a3414dd9479893392c0ba63163b1b92f79a5de4092b1f1a6cb9ff0369c5d4d39a5f09f9f5bbce8d19f6a92e30e655bebbf10117ecd5731eb876b85c1bc2ded6bb1047ce2bf44930abcdf5f06dd128f4fb694c9f27379087456f314d84d1e06a5a831e6c387b16ca912e492bfefd4b3377de71dcd7a507e44101c7be977f8ca7c35900d1f83f853ece06172c4822397dd9d4d8e43f46e88b55c9992ea94b3c949f1585c1ac41bbd6f5c6169739292e603eef29f59195c1bd8c2c53e0be2b9e5020a00548c217a09810e3d0afe9b2ffef377bf08082e3fae5dbd0f9f4b9072eb87cc6c35edb6b1c1d39573bb9c18fbb162ce5ca8643d2790a7c21d6d7e53d800a7db7a286927aa87fd01e66fc31471b676d3f2b0ab7db989441cd66b39d1c5c6267876f4c99962a4112ba37489b94c6da2fc0a7d4e1c96df35c4865e01a69a605c9adb9fe69a52538b5b039fc7ce565265d42dbe0e93c60d0a949da802bdd1bd870883b16ec9f37e80f0975f027dd848d57c3d510362810d0ce4b42b984a4db7a6ed5d2121913e8dae7d25ecc2ed24460ede41c1297538c19f50dc239a0dfc1e2103a09cfe5a3c6d3ac9cd49e8c4fdf8c1a6d3c91bbdad81dcc126b099923926faebf2c8c7283d9f961fc28c90292f8eeb8c7e61e94acc559e32290c547f8f1cd7750f838cafe5b50e00c408f7f0fc246eb80a568b50d150c21c729c7f25c332eb63cccb447f1cc186fe9bbde76ebec01e2cb19a73915f21942d14ae0423def999cb976110e4e4df8e733391ff7816c4094fdcc631c2fb79bdcd3a4a3d1027072435d8c15df9b4efabd909b1dece108bf2a1191f88d9a04cc53a31c689203ec617ca65081017091ca47286a64724cc1912525716a46eb265389de6e7a8b0c9049ec742ed8d6fd73c09e2a3c9355b9fed7b8fb31827189cd28dd61e42ed1df59f63f8ac0b0368190953d463587d45396d477796244683011863ad116c578aec2a65f106acda3d4abe14a3292668ef99b132929fc2a0e6fcaa18515c54f45a539ab3c147f7ff5def3b5242645e10bbd048889ba93c2522a3831bbd6b712255e6eab3304fd161e1d8ef1535fa238b06619cbd77d198d0a18f6e67706b608326a6b5a0535d3604d247629879f1ce0fdeeb8e73be8294c0c46436a6b568983cccf80a31660bb75cc16ac3d96ab11c902046b5b8317ee14429298806fbe12189385fe99001fa25b962fb3f5d8cca6ab708a423734468ccf27318f6399f96e486ff8beb577759f3bdf3b603e4c4fb5de5d18908aad5828040329177da0062b9eaa89812639437f2e721df8e21a05c790eb776481e6537417fad7fd0363a88826040d1548fcd4d9e10b4a9edb1fc422741628e3e060e2d058136bc43226e7d2820a4c52815d52bc979e4b138be1e3e82fc7db64cb0ed2fd830e68c6126d8dc2fe9283e617574ee142ba3fc38556c23f28d0f869f63e955a98fd25b015e6aaf25e02e3edc2233c79c1295624bc7d40906fe6195dbc1dc2b6277c4e45f7fc11655940105e0656f48278345765227543d2f2cb8e25b4fc92b27e666377a113d916ea9aa240a18633b4d1d91b6c2f4334e932d1d789b85d65af48fc37cc0c42dca4f592a7bd983b18f25dca0f24cdf880101d8d2e6289b13b50916c721457c23b00ec871ff6a990a7599ed8b61c942a1858d429fb9a70d53c8a45e310728adbd8325d7c7fae2cb949d8b51925786c01f2307eed5d07959e31459652e0aece32da33b2b92fc9b0aa4a5485f48629ee4b850964b6a803e52c088cde5c06e3fee72dcc7bed0c91e01e5a65f4eb95831a0b51fafbf9e1e7c252534deff57a6bddc7ff8a0977e6d371a20d9d6807261749ee5582aa76444add19c9abe28c8730602b44ca3a0003cd2f965b5fad5a9de1611397534f30bf11dd50c4ded8d14c3ccfd033c3bb289adf67de204bce5474cbbe29a02fef7f7458d318c2a240753ea1af18c8b220ff5921437c9d32a62bb9764ec7fdd30cf73b1e919ce5398d90a4b0b495400e913fe0b4d673f5a324f08d5dd258bff682971dcb527773fc7bc21a8131cc9fc7f4d344f4f430b1018c95a6405297fc52f168da8169d356794b6b0fc5c4522da2d5dd8d6b09143d2b2a7ccde51ed64cc50ec56442ccf49c2686df47f13843f49666a638a389ef68b54dde6126fecd4c7872cc62dcbab6f8a142da59b3d20f4449632db5bac405e8b279d4d34d5ac31e21a655aeb1dc7e3f81fbf131b8875e308bb9b3ead21b86d40c1a8428c88e06e74b9350d748854bedb2605590c2d7800ff22e8bae48ed9f286b3a727a20acd650b89d08a0af08ce9e6ec49f8711427cfb7a74a84fbfbc0044ad01e2774f4da006c6fce77fad49f595b505270017915c553f5af10dfb61fa6df2f39ce059586b3bf1255f1fc6ebe738631abf357e76b63f3915059c8b489d4b323d810c3fc40b225f5a5bde0bd33091cd9a91378231d62018c948a6460aca6a6586b86237be52767aa94750c2dbcbcff5f051689439132425c8564792ee9cb93d1788e242c80ef49ffaebbad0f3d3c3480dc901532727ba373b8b8f7f189d0d6f46419d07ab22dcdaef9d980400cf64efc26d8dcf553314ba234d04b56dc89f877af73800555c74b1b31f172437f74baf2d816c25f655aabde9de1d2980ec8a583d476efa00fe850104399bd0dc6c375bc3f051608f4cb71fe8f5c8ac04bc4eee23a88be53d1ddcec0b8f3b3986ee8bd3f211c5b224a7bbbda814e445a0b750198d79f1f0b114cad5de7f409d5291cb967225a1fc7b7cf7b9c2a7c85916505786783897fab246a56ba6ceaa9ec1f523e2a07298a13e65f4cf8c31bba7219f1167f812854d0e5845c7d5bdab6411a1e06197b5abafeec0fcb81565791382b38caaff5b59b099db8797f3cc298e4e76f471d48cb255eaec9fa014edb43f09b4bdc58e38c5c36720ce5dcdaf40f47fc576ee9b8ddaa9f72230a9c3bf91f8af0cfc0b813d0eb1b9757dba253dbe3c980a209471a822c0122a4680d64c276efe6f86977c9b8f2808c17ec92f03a63c1741cff04e91dd1078e13c03ff86043f51b6fac1c6e434b0bdb3be8e69e8ae2a85a407e476f1332f25f3b0f3b1c6a752c58bdd2cff6eff417c47ae72a7bfc0a131d16daf08439fcf49a807bc1dc80784d46c165a03d1873a0869c4ce62fe7c73e07b4b97b458721e63efe84385920a1ceda872d47c03749732e3f8899dd4b54a4e620f1334be4f66fb20bdd470eb0f1c8e0121e8db3804865cac47c5ecbdf01db7a9cc8d6750ad0648f5350e67146558b20337ebc0978a416eb234987c43e871c89bb7b63ba658ba1f6ac5ea1ff6d16294682c1616a1e9415b2242dd1e0f0c6ca995ab61b825f12d030e22d463880c4515a25dec5b311dba8df17b0eb79fffb40208a6f7daea69e63142c8c7083a430b50368834eabab266d320ec3195e7182b309a4a771ef88a77058b768bbf58951e24b55481278d4baca5c926d691dde06406de5d05d3826e0a0df3b0f1a2fc996fc0e1c749f9ba1d06e787bf1efd919603d684490da78f0534a3da3c2ebbc7d5707921ce91ee7871c46f3bcfe0b2a8aed596b19cf1037e941bf84aa53ae7dd48e17360b822e799251b046e74cfe5314dc964d7894c209331f1c908bb4aded5e166ee63bb5339272c808de34eb873bbcfaeb88e66c0e90f48b4453011513b0805f933f16e6298ef095ab1fb03d0d41c42cb06ef2c5828df194aca187e93c48d0d1b81474d5b3d4e58fe1e95bc0ef8efe83aad45fa777d7337e4879c9d4f6172c5e6652a3992145a46002f14a69c9ee1b9235c76925d20ff0ab735a54d6f6f1eefe66e21f5aaf12214cfad07734e0804deb761ecdb307ac94e00580c314d6bbcbec11ea1aa310ca197a4eba7d6310317370884c75da40309925dd07230891b6d5bb3828864c34681bbc36b150b2ab048d6a652dac8250652ba72b2b0f6ecb27064d8ebbd92c60207fb06cdcd4c9c8e4a82191a236d9e225d7ee096e372609a07684897bc8ab382d2ebbec5465d2ca1b6351ce3a3c3c3bfa2e98ae6ee56eed4b16c004f9402ed1c79afe04c000189bda89fb327e1e4f7c10ada2fd8769ad82fa0699d4d339828c18281844aa882485920a00f28da0dba2eba864d1afcfabcb09ecbe6eed14c67928e2eb4691b2dd56537d23d090121a79ddaf45863c373c9f37bf428f7fe017e97169989e527d3690d7bfcab2794270a99117f4462a1ca006cf5b75f7b1aff2dc488379d6bf84a1e63bba07a47bdc8fc4f405856c998058fb77cdd30b40474cddc3192c46df6ea0358776e9f8c06d2173c0e024f6d75ef2d7abea3b64565ee7ff6c4c7207dc4115287a2cfd76408b7b39cb3d4dfb23498996faf3a1ac636e2fe9520077d88aa9fa2abe25b6bcdae0eb9e9727b71c418d314a80846fe8c3129f2ae5019fd176f7b3ecf8a63be9e171101a032753a4ab9b7fd208860b915487ed805b3d71be0210c7a898a68b4c7d61e4609b396a59e411f722bff94607ea60180b691acf945cdc021db3fa1e2a26037a4e1ed8708b9512a045334e3a1ed8db70ee17d1dfbae5d88f67b9a7a92cf7581a9fc4742aa48a4bb7eb6e2c26ee9f3079bbf323db7b54e5a3aab470f9438afc9f64b5f9819bab1fab904ad9a76e8043e54a6cf37369ed7ae4cd5adb5e032b4fa6fe969abd32005d17f8fae4671a8880c3bb0c5c77fa3610257a057720dde37a8fc064d743a3fdd6f802671983913ae056a1aecc179f80b5609320e808d309688d8e5cc3edb2601c956ac72d4b7bcf322ee8fcc891696e2b166c04acec459ccf573377929052b65149d9711329c43b93d2fe85e9ad330369aa1bfd77fea63936de48943a8af1f5a4c11d2ab60e91e8598e8191a0088ef349f083f7268bb3f9712e5a1ff03b11e86b1c9a7f7ff4ea23157b16476dd82bd7cd20247fc96fca31f2a67e467d6444dd34579b822215443030115f3bae7f951e1461c4a59c6cd6a03a0b231a290e25bd64fc41c0fd2516921033c7737e8c746099622fb5deccb566a8016d4abf563baebdaa4311b8c3d520a2d2484d83d7bd8d65f511a55ad036ab47e2964859d7bba6f37dfbb3cc043d6613269a55b58b429cac28e0b7be4b338d9709ac471727b1a03778655dc543214ea2d9d77463fd423ace3b7477a20e0e1b4d090971d366bb2c2f19057ca20b3508c1731432a0afb4eda6cfdfa6225b397033b9dcf0efb6e3db6c27cb1da7056921752eddbab68563b7d0a5062d067b1e13ff4393e4ea97d797f48046131856dc4c121fac63d1bc055ccefdcb9ee92bb023361db41d77b671780a6e27b0d14b56a872d78e97877ac41434f9acedc04e12cca8d90f5fb822c354244a8fdecc5cf2f3d02a94186e7681256e3e3847451026daea533849621a35cec4c9fcb37b590d8858fa76c1a68aafdc26927e6ddbf4378307b2a81928f6e40ef2ec0a03cf41566e6aab0fa190d6c611921a18770c74fc55406b768135845b1e81cb6d32e08b370e18afbd31b791d376f52285c4f9a699b2fe0d7a93fdc8785ec8ff3280069ab055a4b2230a568214e87c30b43db9a4f014cc7b8db81cf266d01c0d6226603bd917d6d1ae228269ce7db42fee590dcedb58b1cb300e4b7d9eba430de8116b77aa21b55bdfa8916928d1a2113b826ade09cc967def80271a5f39621ede64ad97688a1cbe003202c563f9fb3ca27c80ac7488bd13086faadb2d9021aa0c9e7b33d24e77bff550173484d66d42e561b26658d39a82f84946d749f5866b134370120689974714aa689e47dbd5fffe456e89643abde2f35f88a1ecace966dfa0374cd5856ac344cce1e2056b6b5eead0d6a12a9488b26c7102f6c4292fb3753062fbf967d794509ee79199ffc3cee747e7bfa05b1670972e45cb6f61e2d1f18ff4d72ba4f19874654f315833dde8ae7251e41829751bfd11f645a391986810b9359720d362b3c18a179d0dbbc86597b0909da547fcaa05d2b6f701545a8c1e1f3d4336af3340f81210e188c0fa773fdb127bdb61a7a881f3bf9d113e6f30afca8b2be4c0e1cabb91f47befe32b403e51417b94353aa730ceb51702ae70f260756dd285efbaee3a23ecdd52463a9e1babbaa15b36dc9b2a0241bfbcfa7695df031b1e0046f1b6e2485de408d21813f28516806124ee8a9a13ccfd66d30ad71e2fc7ec7c3c378297ad4cd8f6fd9bd657e5b0cede99c3d2127723763aadd519e3ca80a1c72923bf7b1227e2fc46de37fc954046cfc70a4254e3af59145470baeb58f0c359670c223dcf8ebe7c3c7fd78c080f2487f2c1979370efbcc8144551f1d17b20b6d48cc5eb062a1aa682d16e823d92d1f02703f9333c3102d5375f0586cbc1c9668e5fd43a9b343b1c9c0c10c5e2941e26760dc313ecf5200cfa45dee1932def12e1f5f73d84306ec6c0a92db75fa6a309e005b792b3eafa095ae66f4e0e1825e6484dc39f58c34c0e7d9a21aa7401d75fc0a48a528866a9a304e93656e4c0408ca85c5c967dea91669190f8e31d480db7489d84872dc9d229f64b696a61654a17be94e03533559ba066a7934319fed1001675e1f6225b1dd8acd60bb7439d7ce55bd0fcddea3c806e87f8793911273d7f457d76c361de7f5ded2697a56b5e760cf1684fc441990e6a73e60146ee4556820c25fee34e1d281bbaa6c92155f4e5ecfad8ece624adf2188873370715289a6ecc0ba5a0b93db3aff30488e61d7cfde49c7f1efd0f0f6fc4f84af2c06233921dbfccc728f6abc83e13aa0893b839eb5adf3d415c494ab26f0fa8b286a6846e613d121a2402c05bf56785c056667e2eb6cdc4426389ce8f645dfff37f798c024eb24662f2da59bf538d426cc4a1d3a0b2abbb0f027682afd97e949d132e86f9f8872edfc1c7f34cd6ea9eee608b43538541c6e76d3de02dfa5712ac976ec4def1aaf2ed9237adcce8af067a19c34d81c3c3e35c356e09786652f661f45850a96402c405ffdda72fd9cbe879e53ac1da3ebb4a15513c923a1c7cb48db98a687e090156467d4a72bbc300b0bfdfe146e7f4afab317ae53726d1d5d1bf8c5255b996ee07b07581f0f05b1b8f08b952e2e8b59394ee7a3e266daf903b261bae4518b8edf8b2340b077efac47fb0e386230ef8ef2bbaeb67775f5a7dee100b2c0e8d3db2e3e8ea3999686b6723393c9123e1e9d0e260db56529a9907201d8af79d205a45762b9c146ecefd52d61d38d53939f2e941e8f5e179fcb297c702f4e60751b35606af6216bd4e1ca2997ac7fd961a9607c1977661c097d48cf0fd2b7f76d395775eb462adef8699608a6a251204d8b0611ee15d70b2cd6f092c259dce108414cff20bd8f37d70307e6a6744a28eee8ffd659b357b1e2e6fcacf48b315cc8323fbf676c423846ff40b472c16fe651c42b467a0617699a0435a310c6934be5604d85c2e9b61dec367d3129bcb07c7858c277563e5c84d368b390097a1756c971932a575caf17c41678e9aff00294d6c31f83559a000fa41fad0fd3baddd19232e8bdf01de63a9ff24aca2918a3bed4824978c29253543746fa20e7d83d6093392f3d7ceb3b759faca95185fdeb9c50bab8c64e912b104a99f72bc30ed6e4d3586dc88ca54b3abeabbe3cf071759b195233668e39254fad539b2a683d55288ce008f7d7a085d945221ff25d516d8574dfbd467841539fc65cd7f6dab80fdfadb1dfdab68634b155a4919205975cd29a5ff063ead9e05810c7a277a424b1fb59201d48a8c50dbc610ea1bae181ca8a37c2375723a76874979e441d51609d2e66a6f92bd0912f49b2bb358432c96fdbed43ce6b4849029b7d07bab5f483d232df65ce177275ae08e20caf44fae0ebf2cf987406e17448da79ac5123a1ec5d11827b26a97a7114f9613e37d9804e2e92e6e635aa599bd9ac537dd6e8f158b6d44321b822f4ad732cf48e4b10d00c06ccb090c002812315d669bde3cf82158d3dc7a06f5d95baeecd30b6b2e4390189cc9ccf1d240d3217e62e623c277539e8eaea15f633315fd84a03ab5bcbcd7f45258f1ed29e15023519a5c13f38eff2970f3a015eae42fccc042cbade4ae4df6f076274b01e96cd7bacea90d59b98e3583f79aadf7e687b677cbeec9a7099207e09614eea09ef45f4aea9326b081f8d35161e53cfd3e3cf7376a1bea97c4b9de391cd8a26fd649caccda555dc0bb3cdf87cd538371e1b07c1371125234b1ed2dec45b13a9109f1acb9633e360e58b6cc315fb67bf2f19e9f4951de56b9678308bdfb457d5892a4b2b36bc3dda5c60b616ec235ecdfd0b290346293a882b8403a93ef39795fbf6b147bc3fcf1906ee29e6db937c056bc4252a836cccac8eb264cdeb2aff70dfd6147296cce7fad777348243c74a98b3393a97e373f7875b3540ec6fdd8d5a6005549cfd0aec69603ffe6d7ced88057c059e14f29c60fde184696ed684d482679cd233c7b2d3b2271147724768123f0de6d562ee9cdd4d1dd9bf45400e7eb6fa1d6fd13111f8b006b8527fd04e9055fc3db41fe8faaae528b562b12259aa13a3eb0bc0fd8a32ba4c87e52f2feafb185792e95c4291f24ac35af6a351bb1820e2cfa79b5f124b5f93d250ff503af156720e25489012a2e6444ff8fd417c228ab275068b21b2b65b07738f840a71d1a0a100c586a58091a1ade0230e8459851eb1ece8d59509a64ebf467244a577b5c373591727a7b2f98f119ce6095303febcd12ad6d9d3c7631772acdcec9f64305c8a2f2a49e4d43a25bad5e46f3a9eb2557386739f163303ef7f0c110b7f08e22fc63e2ce13fe6f2a9c6238e863e436d393d3c6d92faa65e99ca4d0d8f7c67d9364d625d35ff3c64eef3e1c168a97ea6466fedee1dc60e66474a5ef7ad9c35c77ee21e8ff9e2fc2b7378af83529ad05fbd351cac2fdf6cbd04a6af99f52e5e00522318352a8ba348828feebf1fb92ecec320b278e30d56abca57b5efa20a81504c809a0509488070f26247202ffc80d4e5167a71d9327657920d69c28de56f9c4734132adda438b88e8025f01a43234e19f9a6b4f8a50959000aca543bfdb1544a0e94ff582b40895ced3611faa4682911b648aaa088609583405620eae900b8e19e5467c71866e83936eeff1ab51252e9b9dadc8af4626e01ca95a1a8dbcbe5913c2da76200490c8e9203e86aaddc6b757eb761df16084169188f34c9b1b4c0455e1cda76a0dc43064bf2c8fa61f15cbc7f9fd13df5e033c9005001455513a1e8fdc4f03182e72c991b79aa541d72a86aff37d1bcd08c55be4c6bf8df7e71d79310ec414356863a4a351be19209f49845d1862922d9400b5a0574df1f9a0ffff9a4fcaaac62a88b67d99f626b96ff3ae9e17a70d52847cfd612856d68c65d20fae3844067c091113c45912aa16090275b4861414fd07d3fb61dba77ce0f83a38402b68ebd99580670cac0ae8d7b971e3c7a7005070ed67b22d7b52d74d9db123c2fe7697d146ab3917dbe63b4a17a71a2a9404c21aed7d4acef1a66801b74ad7ba9124f6315058880d9635192bd913de76a4bb460f318cac30c14fb028791c9ad7a55546194be7fb4134bb71b70a776f07f74631b59c8587afecf3658da28071cbe71a9a3cbfcd89ba253c199b67fc1c10d7c0f37f4289a7a50fb4fddb06452a3fe4ea874257a1b89a4204cda954d1e5e908e966d370fb23d1250f607e124b6f5f47575626fc96eeb6a98b9e3bc39634498b4275c65640de35b04ef320c79fe53dc94304883cb40cb6a66d59e65e08610bc5ffb1e09a8f040a656c1b15b2c2be9a6feb41c49393cc5387ac92856d2ba0b30e39b7b646a5608860773fd8635b2319628eaa8ae1f8ffd038722bfc91556b524f8bddbe0d01d16bbdc540c274592181f2da487f45b81c53884e47734a08f8e643aa99a3614894bce1edf260b3d35b48c4b14117a215bed902caf3749e108b3a8aa30672c050c88a9199ecbbbb522cd8764c91304799bfcdc7ef29765382808c32c3bbc86826a9eaea02e7498768298847e407d54bf7eca3e3d33af8b7a430d0c07dcb1fd03275fd3874a4d05006f501b430554cb23d53063705fed5d6f9a967968fba8d51041123228e533ee0518947b8262a5b32729d385e3327e255321fd62df8e9305c743fa4edf57897cecb4b97daca248d1243634afa5abe3c7591b8d3edf61dbab5aa4ba0c8e9eb03d4f477c5058e099bec5ae93aa888ebab423853d93426e29f18f70bbea1aa446207d2daf64bf668eab89534ea6a5fbda404b4ffaf0c4c48f5e3e4de4b1eb9e679ef984e10340a2c4194559ba4ed5124798de680b018305d81ad7c44825707d9323f95c1bf2dda07143a01fba7838a8996cdc9962a78668f878d9e59fa59962033de7b81e96bd224ef596377f1eb208e7c9b92ddabc3256f1bf5c31a1f75b32826be462d666a83ae5c5f6b9378669ce4108df6dae21d68f951a88d9a086302e1a7e408edcc78e7ee6bee4ed9fe749c555a42aecbbc621e8fe2b1c50058e94a12935034a431200c85dbf573fb2ca80dfcae56a9d4cd3a68bb1dbe824708d899eb08d68c30842b584f2179c85efa6023a629ee5c37d3c5fd9af8a5334b44c14cae97c5c58e1a307979024d199f9ff0631fff8d2a988fa27cb0009d525f37dbd388014037a41ea74c61cf16b3d7a5986840e44de2b78873fee6a517e3a7cbd135bf4ff345fd1431dc01649b15090e1c38cfddeab13157acaeb65476e6b464826fa010cf886b4684aa74aec3e593d9ec07eb3f64d4213df50a184715bd81f430b4419f10f0b4f17e335f40483588d3fc2c03e89cbaac9693fc9d9f00e86ecd55ce83cea6ac27224f96cf56542f27275d64e283da41cffb4653319c4e66c8eafb544d7b9b2331e163bd5028a14e391cd4b2f1ff547de9593788d77bb53d750c038a1589ec057373b814fe7c6e4c671aa33f7edac991720e08ebb8a605c10f1190a7db060232cec55457541aa722fd3dae75eec18730ca751a5c0ac7b1a629eedd4eaf3169d15a33925895cffd20a21b580e65eb522272f9b1c37a3ce3a648b9143fdc26da612a53063f70690ea5938605f8a766fe6d2c28238598d127f9aea5088433f4be8bdeb986566884cf7360020a587e2d573260eaca0995a453e63708ad855a566c120bdea35571929082c8c11bb3026cb725ed589e2cb4bd9e135b44aed71dbffc455ff4601567ea982d9c2bfccd124080128d048ecdc406765310b218327873a38fb6dbe9cbaa8c59aecc25e46a595592fbbb38d931bd51adbfab566dc147cc097751bbefcf87e8cde6580495dd8516781c5758f0f118c2deaeb7b913db395371102e870ba812eacad2f5492889fae007024126e7de9906c4b910d746e334ec70799d8709532a9d1ba047814025b555de96f5da55c6ccaf24c79c87f3e6aa46290a077d6ef5630a38da6a8794acb4b7ecb54ae22118545f74e52b634fdcc22cbf76ea98f4e380ff401646814a3551edf6cbf67d3635b38ce4759e1ed017e194a3a9d9eeadc3ee7b1c7ef9b4495585ef315d6ad79fffb1f014118582121695ded8d29ce6ce8a12ff6e2867b596a90e68081c3cf33f590bab0d9747afc3d701eadd569216163a8ca982a671289b28b97c36251306a392ae049c10e6afeb4a7a6402ecebb036479d29ac995c6a2c02f7e6bdc52b7c623167cf43eeeb7d3eca21490667308d5a57cffc2c0f5a2972a4d96f208df1570efc9280aaa82a93fcdd062a17f85f768034b4acf63ae5dd04c449b7b735b67023e5a3050f3f0ae5046e84d97307295fa012fabb1d9e1548ec6b998679c56f9a59383f3a61bb2e476c764ecd865eb6527463519689db3fb41fa5a2d1479324434d742f95eb681ba54c61209c1bbb92c791acd2a22009f71d68fb2b1c0f39e5e92d6fd286a6f9c194b3aac9244055f0ed0edf8f990a41d3e6ff10cb56c65e47547c03bf12d834ea4d32385b2d7ca883252d10e2e70029e6aface6c829e21fe14dda9ed5cd144d2e8b400485c79c4525241fb084d91e5c974469a8f9f64eb8444c608475980977ea1fd57c268356259dcf94566b6f4ed1cd3000c0278917c69cd613c26ae4376455c7d30c18d9d479c986aaf9ae9c50ecb051f9f44a624007f282b020d6bbb6f8223229afdc4b1c930f686da0ffa620ef76db912008d1198d5e45400a9ca3f2419023c2519f47072c46c918bb552f10a39654ce8493217d9e48ed63eecceaac9e37c2867aae7d283ef9b9e2e222b64f1744fa9e9f88e294c86626fa8b51753a9715b517859f33c6c57125d514350430701a19e9f09c400ecbf513e8d09b68ea2155abb750cc99a55a1e600249e22f3641c1383da12e8beab5e2a5723dafd6aa4449f9a0024592599348c2d0020ecb873b5805d2dca5e41ed60e42b0060982435440e84bec7cd8945cd8ddbdd7eef38738025586e98ec9e0a3163b8a2025951f028d1dbd842f3929ede1783da29d3b5f95d398b3a3ef887d0af331ee9d0969b0125b4127b709faf98c57c47b9c949eb6c1122f06e88acba000f11c598890c65ab262c1d5838eab05fcb1c7b5f511af88847b57baf14ec80cd7b3a24d73381a5c2c62250241b49e3d2f75b96599ee96ddcec44f3e325493a6099e30fb447bbdf3187e17819cfdf3503b48fa752a967474cd46f0db688734856cb49c59d6680157661b69673ec977bb83c0e559e46c2378fadf0d41688ce50405038f7e7a3a33921a52b16f5a9d1f1ede4c9c5b3767f80b24be510b8f120aa222c05cc4b5d64bd5926edce61a9bf2050282228aa46213d933b48ab912a91f9f4e2501563a39f7c56bcb44e03d4bfd9c48dd419c24035de66aa96ab5d535f76240313093232967ae80fd82c27474390de5937e7de6cb15f349cdc601b7d0f081280bd6a99f94897efb9513b9e50178a6b11287302e1c0a05772a1c38eedf57693dc8062e335aea3e0b15f6b3e7b216ce8cb579cd9e1612500c26eedbe7357336f25fb373a184101470c11255fabe0780956df1f32937774b17aebc075cc8fcbe3bbdbc42fffad473f095da25e4b456e3324454c7e383137c35cc582c316f00520f045bb363f9d41fb729d971d88b25001155f535405e938e2bfe2307b5847b7ca6bfcca277bdeef414c8614819d3a99c203baacee7ddc688ba996dab31247db796c9f47bf8c7628eacef411f332682df92a71c5a96760099533d11948e635283bce87311dfd51d564ba2f92e0c7263fdc569f2d8949724aa54286125748a25310e6086a450d9ecc30f2729239309cb3d6e7d38eb27cc9a7b88cc40ac54607826d2c236ba04e0abb646ce04df42005f806a535faf0ccc9849def36c3b95c95e7bab7f1117acb749e2970307b89cce63bbe5e3d8830a9f9aa78170a351d579174d4865cea83bfc2dd3e24bb3f758f27e0046132d705e4dd814175703f2049fb838b9bd9f14fe0e720736db58bbaace08a14b6d2b024045d1143853e1cb6906fe725e546f6d6355eaa2f1dbb745d1afbb7db38d102e8240c229d65592816eb7357dafa268df4829019eb6f00ede75de9ce7e771361cf660719c4bcf1a93b99a24356a6ca1eea3df92bb5dbc4e6e57810bed165d97bfaef377fffefc4c36594653a393e31a8db18f848ae2ee18c68e5b1dce1df384fb17c297eeaa9deb195d233a49ad0a9a5501aa0628cfd8aba86a2685c6bfc9654dd7fd1fef4b094c1149b825a801d7f0fb54500fc1962a745d7508be3622f09aa8dd3e980e10db733eceadcb668613871d9d3a8f3b2094700f85e05026d3cc8f672f9c03348822e5d6de9d212c2ef38eb72fb6e07c893258f0c46791266f91ecf62eba153154f83e7aa6cb355749dc85d9749b1e46240465436d6bdc1dce07e7dd87b3551094b0608f98d411955fbce13448a9efe9aee07b6209308e79274a46172467fd2354996e1774ed822b360cb02d94041521c6b4afc7720578ffe6ff5897230582f83cf3b0a824bae6acec5d31c9bb051b6aa0e7fd66cbee91ecbca82c63e7988a52d1d155b3d832baf5a6ea440327510539aacbe5e34d6e033578b5838e15ae32244814cc60f29839e01640a0b2aabab6456d13e1789964f853569054b873a062e2a0113ec248a03f5dfc0322c72a8f078db50c0f028a05552ad3f841904699d28184fd98ceb01ce8a04caa8eadf444cef3b25d1e151c211153750f17a4e7350e0991041c496fee82ff6d90c2daab25ba01b9dfbf74ac77f150455b556ff02b8250d75802d9d15de612c1bcebaeee68f3835da3c15dc5093287563106bd44effea271c32af3b28565a941271632b92a5ffd79f5cbdd4c42160a19e2e64301b133e6f4ccbb1ef9765b20efa2c63c6a8f37c6371007084496db0d4b930fd9a4a804cc17932f1fd8a7adaeeeae9aa867bd2a6cd00940d3fd262980a4bd2e73afe6381cd1b30efeb401ff37ed8e9a819609d1120ed60aee03bdda978ed976260460fb895d4b34904770227795aa6ce8de910e1f9d06f2444797f670434afb8fe624070f1e627ddd8dcf7829247ad57d7b007150aa10c1acbcff74dc86bea61299413eb0efd4ca8ba98e26ceb1f86c450add728995a0860db23be06932e821c9b7a0d1aeb3e58dc41dcbb469e47ea13321dd2e2fe0112885d559fb267c586253408e153dab84d61c788277f3811da031ffea79f28f1c0583eaca7f2fc5a2ba87500d3d40512d15bede3484d3898588b9b15b55b19762a02ef543ed63cfe54970309dd2ae792e6ee155cc999956bd84c8d89733a65c11c3be6ec831dc57417682a4af2cfcf7b5e89e75c43233508a3f8c2089a52b72459981b1f464f6add098f579f075f61abe48bcd3383c07723c5756a83a6134da167808c501afab2229d359d57c1021495eef9760450bfaac5492f9973d7af77c6dd17b95c7118583dde573186e8f6b487013556cdaec29334ce12c7b5d5931ce032632862b6f7c9464e5eeee20938e1430b77257cd12fecadb8a451f1901b34757ba4e29eca32a95bba52d23ae0c68fe2c6dd5c12242ddff19b0df69010624f16a6acf45c70484e4e3d027f706c37850b685ebbd929738f9d912b5a4b3b400c7c1371f0ee76164329d5b9bb0cdd9dde7b06e6c6a81cb38f559581863bd74ca3f5a3b769bcb90ac78136cef05ea74d8adc83404337802368c02a56668944f65c2794147a5e442b4c9ac7caad2d7449cee8e51cbd821bd71851d87149a2b49c1619c3c640cc2d2ff854edf623f7c1b4c0e45eab04430adf8ee140b56501e0e9c1943b385b97fcc127f613dca8c15e12cc637edeab6ed8dc2f1de62d51887c81e4d41a0a7138a6b3e7b61d9a387c1b9d325f444e89cfd99554bbdd678967f68b18832e9cac6b7b477a272123efee5a92859c101939a72f4dca89037aee962d8b8a06e4f1379d930cd861a1ea903b5ed82d64a8e399632e26504772b143de395f7d2263afc46589aa2a0caa2f01ee7004e687cc464f6315951c4e4dd0b16d775fc6e4edaa09179ad5502b79cccd9c56673fb9198e3fca4af0570e258b44065ef24ee4df373e587a2d5cc5a061a0199c701c302da916668d889c58804f6bb2e41c94cfe6e1a1d271221554cac5cf31ae6b35a14795c3a2ce4a7d7854657c0e7418284b4ec8f2ed8f1c750786decefed7539584e852f88ea6d2fe1e762c2d21a91c3120792af79c0b092bd8cf69b7c68a3e1bac1bb0adf09300181d4d8e1cc46a30e8bae1fff93920221a6a34cbca6c91a5fc2973cd9e697a9b37ee54bb499c13041bf93ba74573f93dd8bebfa2e77111ad3f87e748c8ab1041bd1234f397a2b28cab4892d1ad47803130b81fcf15857b5b3f4a1867f0bd30ed7d3a74654e3ca4560e1678cf04131bdca06aa47fffa3cd9b2dcda6681c503cac403f25309ce3054ccd8aab4fa6aab241dc3f082672cbc8cc8c64a576172007a143eff4200f60c6f9079cc06fed898eb049e9296be137fc91b3d55436f16df962b7a785241c8f5434ed68afb8bd0eda50832222c5e135c8954f1daa217d805cdd40bf0d3f9cbc2e5b44e95f42f9c5e4a3d7435ff0ad82baedde855637d239034577c089804a8bd460e6eb8cc20bc86f69caa4b058a33ce6dc340e4c72cbbbc06d68740ba6466ddd2a416598bc60259a1990ce6b72c46319c2fa1ff8bd871c5fc515bdef0095ac35d4d60d2b61ea623ea2957e151f38ea111a2a96aec9e92a087ef13f05cc9e03c4d9bb50b9ed9c06d35ef878387cc85414a09413ff32184352fe65e0ed4daec5f93f1a8a4785f23320520b2b54e662eb85c15da9eefb003363814e0a450775970f4eb095078d66585c81d51d0d8d99796ccb7bcd4f27d02edbed7dcc54b287b7f0914fada990fce781f0903809b1239ff5723aa1b2a27bd5794e36c36309ddd6167e5c977a93b729f0272bd3218759b0679cba87a75a3745af03b1d2e51f5181d8185125a97c2114a95bc898d5c7ba261e8e6e0c4e7300408bb99db1199a2516ece23c024dfec739be443f3a242568a1730f9e196a241660bc699843dd357d5021513ed108f0bbc5be7d9af03d3ca975bb4de67e79a57a5c9135b8c3c2e6e05f93f30e9c6197118838bb97cfb01b67cfacc3b5c783eb765d2eb005bfb03ebb90d5aa749125c162129e8929e8fd21b161e1c9cf619eb712616845fcde96fbde84dc19ce137ce04ce42352f73ac0cb38a749e9cc135f9a9faff8c50e84015afdfba5d98e1779a1efa76648dc7acf03d3b2b88296c3b61d3060fac51e30963b302ce1d1b9d14d7e717eec8a659f08abfb8fe9e0ef8cee3b1cede36607c1c24773aa198069b670ef7b5cd3305647a6584f33a054e927c1a77ed86e5a147b29ec27e326e54dc756c0bb763e3725eb52c712fbc78c6b9fca2eb5601f6886e393898f22e246243298eb60be54417edf5efea8bfb1f6b357c8ace4445e83126b7629542d65f2463f9a22a16de2e5bd27c4091d74d394cf64639b7399568c60e84ecf026953b11b9018ce36a4efd57718e2fe9d56ab6422317f478cac092a8de267d88894efb2a1ad27e6dd13de7ff1c91a1ffdb0a81ee673461a9ffa4ac8aaabcae3bc100040eae68a79d7bcdff2a75abc2431293cd5a4777031de3296a83a4b6a6bd5b8c3ae9b7f771d68bad8aec701e029d4a171babdb078b7c24bf120b838d18eef4a79b26f2e1fc85a1ffebcb3f12824a3aab51de5a3c20984a74c980fe6db8e8a603b50b2eb9bc97ae2c3e5830a8da30281a885a21ce4bfa548138c201a4a210cf73279c70f17b01adbeb18815c915d75a020a4d1b38f146616ddee401b31123a886288a3c145e58ecdc724ab7aa41128e3bec422a6d9055031757cb6a998a0c3b28ba84fb594bcaf8700aa349d807e6832b64097fad0bfae57a63341cacca2b572f174693a9d7a5b0d74d10394bf7328c7a87409f9a6890e5a7f0291602ec606eaf8fda39abd97f2d4fca932890a867dfabcafa3f0de7ac49f01d6ca998c2d0cb9eab843c8ee20db13343c90938f8f22a64b95654e40b367bb6baa0427514805e756c8a25c31a3fd1a81522019a7f1f514ca74a20385ad520f92edcd4709fc905add78ade62b7f46c307ac9801d37f7883d12d823cfe892482f780a5a4152132e25cc46789d4db28ea47d1e3b88117513066508166a9db414398ed80f98ae2d3ccca2b65ea3fb017fe7f099f013f2bcafcdf4bee866f974e9f98e748908dc83e12353e5070ef850c9b2400a0973cf3519d16a96de18842b8e44914598bb113a40bb1b167d138a60537ff816ba25c88f959b37e76ee3e622e58372103002a971abc3809faf1a05e82dec559bcf727eaf85eca88d3a1867c23392d9f0ce1d06e16a9b860f01244e90a013ebc002e5ad3279d1d8f26012dae4dd66bc02bb951c5f642d01e4250a54fa44d3ce4db7eed4b853aab0f610a90f829b2780d8e35015e79dd06fa7e6f7f4f5e9f1377a479d01ab49269754bea1dee74b73f6055802bbd433877f545fe70e2caf9440ae485af947bc7527d02831452b37d76f9146be3985e9733b7cdc09d8a7c9582abdb357cc842e121ce74423b95ac9d735055699cb3b46be4e05f709fef8dfc579cfb689cb5997f6331e44891d6eb15ec51145b1961968b63e1dac95fa81b37098b6b3eeb0ab119bc4e6bdf29343ebf481e41277abd38fb550c2eecb547c7077b7285d7f5e8e1ce8544753eb1c53ad185fc4226720d324506a3e206e1e2353836f358ea1d4522c727fb40a4538fb376ce226e5cf1d5006301e08f583a528ff5d76726248cd69423c99a60bb00194772462a9384caf883353805637db85d033d812fe75b1ce9f77e411d3e51451bd5d2b37f70ea1f8b7f8da7e29f0d1ee0405817a9c594ad0d33fe6890945c35e0feb7fae63c15a1291bc4c849198cedacfd6967229ed07f62d0f0293ff253208cab269d331d42e34564e34c68bba47cae730a7f8e86b289197f01f6a13dd4097f86edb0acb2ae5e47c95ee41202bbc042def3cb2e42f1eff58ff680a92b9720657f99fd2e8ab3da61a05b159f80c8ae56ffbed47acd9908b57802e3b0c8b9ad59487a3404abae52b2a08962095a8b48219daf9c7ad62194ba54a48426f35236b5dab674920cbe9d8a658b44cbca04b1a8ff900478414a16e3611876c5e159c9bcee718d7b1a4a63d3f0eeb7f29e47e26c73a2ba63a2d178128058140b9adcb36d85feaf7f3760261324b661c3b796deaccb938b8ac5f661f0b9ac1d6f7786150e6124847b36dd71f84a6f8c678bd376bcdb91264029cbe846b5cb97c6aa760f008974d025e1676f3c8edd7ffda43c00cafc62a6f47f5591a3428b2924b6668792c9ad28c5733b73527f31f59b1f7c93448c9371c23084ba2dd320ca7af320b92f2f3154f21fc246a093d1a9be2e06afcc6cb243e2d5efe720fef1e7410c47105790865ea087ff3beaa1b252ea96c7563a809d719bbd6d91fcfcf4685c8068044501f1830f45cb53356540723d32240bcd33deba366a7262462ca1268e2469f1085e136c0465db00a1ffd5d2116e45310bf0153a32144413af906fc7dd9f37260ec6a46499e99e51a174c6a7c8ccb8c62faa7a467524fd45854eeb175becd3a3ca1c358e4344e88a912cf59659635e7a465563588bba5e11a5305245e4dca5465b88012d32e0677dce72fe2c435ba7843f6ae442fd2873237e25c59bae91235452f4d88f0298f61f67f7ef7d097224d955677c54b87500a65dbe08aa8904c8a6e290103fdf3eb038f95091f4857a648b1b4dd03013dcca4ee4b1d5ec0d8159f2de4f88658516de1e7f733c92e9d8228161217875684aa745745ab9632a2680dab968bfa55759b1dfaa3e46217907c6cbf86bdb7b6fe35dca6d3586b1ce67acd5d0d5f8cc99b4cd4feaf0f61bb9132e43fdb91dca737d5cc4446554aac18d4d16d1d76f162dc6a3d356ae124af51fd33bf21d1b054c2339a6d43012710e3258f4f2709cf0a8a59be8a200f256cedf33727bab74757993044fdb81a486d4c61c911de78776785a0fb98e512ae2bd1e9485e5fdac7129c16cd32e65976cb10e6eafc148310fb96015458c72c6cc4f3a0b9c02af543fea52af58158e5ebd6c9f17fa5fe201e5f2291bea02170fc525a3e20919e2463dc5225c6b21d325dc0967a4323cc7512768994f531158e352b8604416c3bdf56818bee77b18ae319ee4257502b44ffc47a489dd1cc432a1e62e893937a8e7c690f9eb0d6bb4bccf8f08ec26680d9504a72845f6b376049eac96cef85ee90f80c5251d04508441d7b684a449fb55f8495e900eac3d7b122f2736ee8434f365c3dc7f007ce2cba2b9f417896680199c4c1f49999c8e350642d1b9419b512a1e9c16e9f3753204e8226a34aa56874be701550b8f6b7d8c6a854b7c2ff2df8ef31a38cf88e3978b442a7e026be90dbd04b9fb8f0b0d1af42f21d63ab7c72f06a202ad23061a042685126bbe03db60dc630fe19e1fe0935a28ff181de9bf21726c84828fe7141f2aa39a7285ff1ab54a37f53d744f99d8f090a37c156c137e1f950c4da05a88da9a38de1b6abd623308f6c1dca814fd351f80959545f90d935de81e4b5ac2c364f802c61c71f21b7094dd583d3c5a6a88f57a576440dedcb442304357143564a5466308d1ea259789666a5d691c0235c00de1ef6bba7bad78bac0017bc2fdd6ada2e1b960773192668de0776a8b61d0c7267e01e175c81bc5fbecef34dc1bacc7c3a66df8e5c70ecf1dc6a9940ebfc914b5fd7373ffcef0116e8eccc3dbbfb80af000e6b409ea78595168b21628d9926d456dac741e293171d682ac08ecd109a53fe2542491711d66de558382f7601caed5c4555cb18d7b3b5e2a37d2ba6ca63e85622c7fe788f0a21edfc43f027840953659b9ed0d3eb779a6eaf2a28d5d2223d5397ffa282fa4d10e9e6a1ad13afde42068a77fe2961266a4ada144a7a8001b7046f1d53db90eca0fed575fc4327f5fe792ef280483519e745eadbac403e61eca0b3807424fe1f2956b14397ce1fb6a965a69d38b066ce1ab70a465f85a9b4e802e2ba5796baeaaa17c903e773c5c66e1a98c7722b57c72ed57c6697249e0d554fa6474345d405bf0c6f965152bb7f8744a9a026339ff7ab80da0aad5a50da9b2dc72372dca3f3153b49fcd010b9ce5246f54a9c6d15e066f8eb8ed90f48743cee695a423272ab27df6e70c222d2d30f32a47a9a6ced470925c4df653f001d2334f1323aa4298aaebff52ff8d540a971df5a0ba7c15976312fb1eac20078f7276f014b262bad42e3386903bbf3b0bb3352b9bb4b1a056b854764d9fa8de8574bfc9199b3082c2a73406a4a81b0dca42c78c7226f8fd0dde4dd8447b9fca32c22f7af6d136621326203e19e33aebfd6c37bdefe666cd1f999ab4b93a6b555ade60ca6524d576ce7534b14864ca6aa50357c57fdc4546c5380d9eb52e23bf8b1fd624299b38ad26ac7126ac9dc01201129992dc7fc5b2cc9b89b0b32a1f7a4313da15b9ae7d4ba1293629437aa3e05d3ffe7245dba7eea79e5c06cd6770addd3217cf8531d5678c4ae28907f802c4afd08c9a470838eccacc7442f5f07db3585436aac711976ec53f2cd871cbec24fc529ca3166ecb315a6f030947aaa699e780f09ddf54b09ecfc9c2ee0d3f0a589438530775426e572953168360453ba3541b4dc947ee638c3ad03a661fc14d2c20f373a92c0f4b8c09e0abdfcfb45ac7338038ef1354e89f580f092056d191617854fe4a173ed312685b9ccd8ff03b30e5893af401f30592455676bd92404f2b51403915b7edacbd3c707402941d38bc67a2d7641ae47cf63c0f1226bbf49cb4b4f86f145f90f078485606b7656a787ffb4c12ede085a2ad400c24069fa2ff984d8f0db8eb174fc0a332082bd032833e945196df14db59700fd2034bec2f2c688145c8550bb04f279d8b8f1d9d3c04f51bf451b301d1434a6bdb08a933afc3275be53da31649f2d2e7e99a52611f145285e1a4815fcfc61bb08efc17fd273cd0455db93e7975aafc190124155929f337aebcd788c3335717badf934fec9c9dcd9628d927aa5bd4717bf965b15453a43b127542aaa09a3c441cd87b52f5017781e84e7542b4be7b1424b51cf9b415152a4dd162edd717eaffa67ff1e2a01473c0440473d64e5f8b596a2a83c2773087816dd727fbd8c0e1783edfb207614841521f342b10863741cba12dc06354b8c1f316fde1a3522a06310118548bf5381b732081a880f35212872944423be8fa26e674499b5673bb2e83bec8a87ee0540b56bf8348998645ffc0ca5a442bf30b2df7fcd215aab9f8cd18bd3bffb2eab13d9dac513b35dd82b83967795618a40ddf72014352db54287b72d116603fb83d10e30c98f3102c18d8cef7cd4e6bf585fdda13494b4515f23a63c487e2016dbc4b3283d2d848b78ae4ebdaa8789019530c67372886ebecdc749309276a156147eb8d0b6974e4dadcc6137344307af7101d83e3c733f3ffcb9dfec50ad160e53d1c68a5bee149a3fbdb5a15725b1eb7016d4cd6f2e02845ddc17326c4950818daac2ace7a80c6f516d0ec478658f35dcbfd16b7ad1f77b64b42160641a2f8c8dbf3b2cb97c70a49a60084501e0e787b9c28e688cf267211374edee4cba5616efb57cfc6ff9ea8ed1b38f51299bfaee589cbf7ec4520d02773d7182ea4c934291702c7b5c2d49ae68834a53f5d2b9a8537193935afc1ebbfc006e2cee83ca8d94bf1d1162f1abb51b3900dd24641c5331e43cd4634d64005127db11ccf31ba436c9c9b7a57744c6061553adfd570bca4002f8a4ccc93f388bc01cb0b606ba8438888c4dece3270dfdaae4fb4f8278f6561287c3954f148d2ba97ceb53568751276c063d8a54eaf50e30001458b9c56e80b075f1b24b62b7f5f562730f38b699a8fe57e8ef28a7792aed919eae563a7a00294283d0ca7a9f41bcc9cb270668edb15a694846dcf96189212f66f15ad2230640e7d19e407759f3c24c30dd65c3460ecc11435edfcc2b474c30875962be6a21992381d15a464c4bcc288711d866dc19e6ae37bcaea11ef3e8c5618aee118bc5fcae739cbb3f1e0938bab83b881923be2b7dbd0775381eecd1df9f7b90263527dca4f48b53eba9b1e9540c6516cbc52051e4652d53571f12ada9f7f111773bc381fe53a7f10004585972d4ee4db4b87ff4f679f0b98265609da09875264794dde2b532070ee2be74105afc9a3f9631a13bbf182f7a74733cda38d40335eaae1e9adf9f5d58044e7275bd5d66e656ae232d68e6d70ec62809c669477338dc07aa5d26a4a294e7a358fe003aac58b8c2f9ed359c0f39965ce3c9a1d1fc7e977ec4ea2ebaf12399e0d85c271047f7c37c064df64e77e242590bf7a3930d423119996a4f7febb2da647242faa7ab51d9fc5c4f93344a2d7daf23ef58dd89dafd33d898abd68170e2d3877d80e0ba7cb3bf894a83fe81695a1462d41d3f876ba86cf365aa0590678f12085105004811346bc2c2f751f61d9f9f6f88f59f3d55af766a810b62b8ab354316d82f83b523c3f567cb8b4ca49cd471307f380caa368773df7ee4aa968f2dd16b166e1949dbe692f47e3538a387a526746d63e8fe06b5bb996af5b5fee0db41d11f3bcd546a04c2ab26c98b8b82ec723dd339d1ff7f87d8a23b11ac0b81a29e19bb08ccfd3e7320798494134b3bfb616b3f339355aa3b9d649bc7015b27d2d8cd35428d43bffabd8555bfffa269a1374dabfc6c344687176946a7643a9a8d7a90ab5bd7cbfeb09880111f7936a88362e19f588a7b7140a41375cfa5a2f48e0855a6d49c082b5e5693cb2404a40a55bde143ddaa30eb36d69265b01fca477271dd5de215ae33698e213c567374736233de3cda8b1c67d86ea0c423f88a1832f9ed43a6c80c5d0c31aa2fced1d930e112b0141f49d4f2ec803f4fda1251ede9c798a6ba5ea502ec7c36062c71375a90e49f27154f802c0a8c5ad49c3900e2bba0230cc1d28d8574eec5ff8defcbe64e6200bdb72519ae81eae54d27bbf51b7f69f7acd7646e4d1c0e4d2e68dd50b21c9dd27758bc9be982755724c4c53243f628b35d529c89e6acf33a56326cdd615cb945135f1ee8bd045299fa1f3db7ea4352323e201eb13a5ec9a09e76d306bd6641d94e189ec1ff5fd3badc6dfe9091949ca87bf9e3e0767cf2a35ec1b24f75bf079861c4e08939d581eb0fab0f0914a9c5800def38a54abf367b8715c2f4b682fd04735cc71f07e63cd7327bff92454cf1b8639c9061780177f28a9519610bcc6f1f27fa5600ab8afae34dc96264491aa67c20e3ade1085be890aca8f84806abd74cab81083433fd19caae37303d3f396b6138436090d74b0e232c89f07e60b005c9f3a55bca79de303b9c6caa9ae28215ae6d4017235fa778a0ac27cd974afde4f349f5233ee73010e56a5c0b216aa7ebb4200b36b974ee39b6c5718fb3e348d669fb6f9b03e7fcddf7aafb1f951da022cb375b778507f86d00dbed71e5320a37ceca0d04ed4f4ece42e30aa2e3964a845e3bd4c611d643915a05411e34d249e1d823b6f75d714872c008def38916a8edb9aa6079a4582952e24aa95dce7385efc0a02052b09c6cbd57ad477695f82767af60b4ffa1cf37b6d1b6b21714aaba6fbe5f8d4b119e5698c71766b7da10f4679fff2e0c2958b8d738b6aeb81357c9ec65e35b176c4b316152989ab70135f8899054c49f49c18b20706091be63f2d54f9301e854f0b7d0ceab88e4820edc2eb375c5d6ef53a8196fa26904eb5bc7636d9178dce092b1588e732060bbdc10bc00c5d89068ab204271b3ab515620f68999d6c901e4923554a086434ed0debf17d7cd2dc1d191898193bfb5974a47823364815aa9bb5eb12183240789d822a673e782b9594431b9c6343a2ce6334a6bda70d460f7e7ab0603b124b2ffd156a533fee1a989ccafcc0c058ad4c50548fc8ef4dd79a9414b00e000a90a6a500c7f263ca84a83fc6eaf330101b1e9c2b68b8ef1c32dac0709484382bfbd45f3b50e6b086dafed72b3d9e74b306e919f1b5a0f25a15db775a6108b84425a4a9d1220cd14b49cd95a44c549595d8e392e5cdbe225db526423a5272dafee45c3604ce5e93a15b22fbb3dd4e5d777c4a441e49e61026f8a44024411efa0737656d3b296f68aff08e622e5aafdcfb4f495d1f372b302ed0f8a13671a4fb504fdde9c90587e70cabee75ff529ce52cbbb6844619155abcf7442c48d684c059e5d1f77e6626492239b4b44004b98e0fa5605005f13c4bce8e2ebae63379b28d0daa1b092758ee181925f39fd557b4483667cfebea7722915d61b8a5ad9340b0312f8b283d4ed65bba02d815110d74d19b1a01837097e369bdcfa9bca2a85b59fa0db2b1fdd029a81e3960ec49f4b3bbbb155bf7aa56f78d6a66a2f5eec3f6813bf7af5f0f50b0ad5c4d5a152e1098060edc4593c044aa2bc0f2ccebea928c203698d376f5ce593fa670ead0bba90c830b159c09575aac222188e699c5bd99d5c07927375c7ab613b44e08a4157941c8e49b31902470914c8fc7c138112420a82976e31e916e7f15b9e8ff9e6eaf283873fe47ca99fb5155b30ac26d9dd124d2e2ddf8fcd01a0b443f10eef3c8aef91396b21983ee4dc823d79963c9f8492f9d4c9387d355b8db23905f4add8059afa06d3d52381b1137d294c2b195337ace4e2e5e688a4e7f10bf8adf5ad4dd68895b26c4937489e5c1363cdbd0f4bd391225b077a5712a9ff03509e5ba1724278b3e4602f0f984d2effb30fd734f7bc41063e8d7fb93e28265df3712d981e03efb14ae6d73bcb7b22d49c38664136501626d4d1e60d92a957df97fd27aaf680ee4dfc06498ac3ae54afb444302c256baa5f69e0677f9b48bebe9e7193776c913964a639fcf510553fc6c5d6ebe4edd22f93b183c1d3eef3b850e0babf9aa9d92242fc5bffe34c6475acfdda59dcd232d8451fd04e115e91ec41d0ba98138878ae42a27ccfc1a6eb460129843b9715735ef7ed5b0837647f547171dc5e3854472f3420e8f170ff8306e5dfa86c0db1c7de7abe4eb7c0f736f50c493e9062d9cf0af9897578f3d387ac917716c73b8f0c99ddcb51a764c6a5945c889de250199f93b2ede57199ebb371981d10e28af8d3a47bec8a8d027e18c30418d065065d04bfebaa4eb5c6e028dead94ef549a0b1109d43b4c51bcd98d740f8eefbecf2ac462490b565777c9f582b1cbcbed333dcbd5c5150649f0b1917462297892f70f7771b8daa9e7941060bb1431c31d8b7e0fac67ab86fd798350639b08134a516180c18240f64e8cb11aeb526c3d2fd4e651321ce3912f022099cb22f444dae29ca81906e0e133b7a8e0d52de88d8fd6ea9d734b17d9a4f335067703b3f4bfddc3b9fbf511f1e608550f008bfd16224af2dd8cdcd830308e14d04d67b5d051a8bd4ab24b360f9375ba1f83ce16cb9d4e616a83d0e3d646753a4a668378236e13b1b5f03bd97ed14c90d12b6398b74039c66e4d9a9d9936b14cbb35273099e017b77cae232029e41f6de4921425147bbc162a77b411c2046330d96e1a3fbf67f7ec6c00cd66ea17a2ec88e8e31c56e9ac6c6e0000c444bde36394307edd6f2309dfee311da4d6b6f7c931bf1c41b9e50f397c4c81260274fe06c6ddbf20f5f42155b8e4469abe54514d73fa397a59f2319b723397e1d0d67bda6f7173aac9eb322ca413b394689158efdd0de0bdfc76d90890a3cf2629c298b0713991898abd8659725532f34756cf02acd44c364c61d875373befa4a2d4b68ed5ce2359ae5d8998c5f2a15c703ca8ac8a059a7ce56329f1d3331884f18b7d752719a9b060f2f9b02c3235da39e23a0c10e0482b3d144dd3f89087cb8840e931ba80a5693f92cbe9c65e5f63a2061e1baf2122657a4fbe6ebe23e459f7c202d391fa0a4f08f7375a826dc331ee5dfb7cef3b327c54395915075d08c19de7584d1c66fba061b7b485b1bb7bbd4cbef5f98c5fb245a4664c0304a3ef25c61c705d1dfac0efbdb101a691fe89030c656d397c4629efdec4e93073c0ed8ed5386be9240323d5f56d2beac7e27254d4bcb833892455f8e8b4ce5132849402bd9533f88beff762bf0b5e3dcc9f07daced7be504d4637643eeeb1ae54dfdb8c978854e0b4fb58266df8044876d0069249588c9d06060be0310ce40436db9580f84a76ac3cc1a4d9db74e32cc8fdbc08d608588e4f545f6f533297a8cb414cbe262f81c49d298098c4b0f6a940e49c167fffcfc7205fe69cbba48bfe1fa266dff29e91bf1c5bde29a01083b3b35d56be167e84de44edb2a87da06ecbc120c7ae0f3a33de905bc3a102c4ffde6e54dfcfa293b89bfb80fd8c3b5561eca3a694735567e3a111feb7b1a7050d80980456db144590e3d5334f7b92dbe641ed4e091f0f58b3f391c437913c94bd9c4c2940c664e9bc8cb81c5dc8830d7bc258e9bd944ac0c51b046e35e9f3fd3592747d41ff4f5ce391309a3248433cf61e229c7ce1fe7f67c4c248d3289fe50b684f3e698265eb1543c2691ba87ffe66a57cf15cef6ef76dd561a28e47e097e545af66cda7f997a278be3b87294f3f4b938b13b6df68b696b05e03cee0e7cecf97f6c4e8c85985256939524323768e2393a647117e7f8e2a06cd6798689e17e729cd336800231d46591cb44a77cec2c6d98e0f5b958a2a8eb126f305ea7e8ec8618cf13a6f08092d5b2046e9273ab664cb49d8780e70ab5ef8f05d8f2177040430a939a10fdd3900a572b589e7f67b474dc98eda1ab4db899e1f38b6e59ab5c8dd27dc009d85ec709932ea0c8fe1e50a69d61703c264c9401613486187ce9720b67064137c397a3028211465a039c079334775e423d15df1c8197ac55b3598a5a822a1dcf0fb086a92c6f2d7024e7bcfcfa5b867618526441c16e0439d603ff9434f515dc7eb6436211c19d13a7d3e423eac4bf78f18da1777d9137a4310d02298e8b3292b536a33a97adc4e281a109868c3461e228fe4a9d86cb13f84d4c16ff5e6a3fb337bee4b4f5423049fdff48ecf821ca723208c457ac180a558a2092f043254a039a8b34625b4a5648f291d2c9b085da4b2a23aad6a28bb36baf7c228e7c0427cdded03a4d5dce0fd0e9726eea7b47773e25db4c66ee6148dddb1547364354ed762e5e8e34f98616a79e22f5709b910a278eac2bd2be91272c6cb2d27ba11577265e3e3c95b41c8be3a3aad525ee7e015a22267f97e411523cc0a66ddcfa05e375f6ca4685a21b73f331c88f15e0f24b205f40b1e74937ef6300a812c7c79f1738ac011f5e5afe35355c623a7f3fabdf437221e17a99c6c80b443f91f23acc374d7d71303729f01e20319bfd1251c535acff946132fdc3cbdfbb510f04cb7a3087e3e9563008c5defc86589880bd00cb0a4e57378b1e9e8b8fc1648285da38319ecf32628c212d092e7737dc553204a197acf39fe0d20cbd1eef7e362cf8302c355e78989bee589808ca7b2e2dd0c8bddd235e877e1ddfbcc59fc94a6f71ae5aee78c13176381a653cd5b2092cc01aa897c3a0128471ff06627c60346e315fb48fd5bcd986850db2cc8e6f79d18acef09b1fed16965d28bd76f50e392726137b37056c31e5bd7ea398d6bba0140ae4a4d9cd229d610b1f27bdcc15f6fda5a5b0a085b84e80108bbf73389934d31051db64f76368ee3ccc2f451075da918f129c7706cb3819637973cea831ff8f21972d934ea167c1b137e12529a1a9e41d764abe54116c0dd7618feefd265e81ce983828fc1e42cf1d3df1bddffbfad0aadb08419e3b5bf12c04c7b727c6c3ef9c5c1c9255d4d33e1ccd358477e4bad0d94cea1aff1de9fa101c330468c133e4858c00366e30aafbc7af276844b4a813e587474a8b4fee3b9a99cf8c0d7bc9266e8a8bccd53d8818e40964c25b87d6e506213a554694b8ac86e3fc6173d8318d2fe36bce1558e401be582fd542432e66399822feba9b8706feaffdf3460b2e990dc3d2f0bfa569803334eedcbce7eb8cc61922082562106ee50f7bab56bd1467afcff3b11f52768b86e9acb01ad81c826235a20b5f8efbed0d0002126b914eecf8748af5e0119cebe8ec96f2ad752444cad4cc5a067b65c1c732818aecf9d9855d4351b13dd624ade9327ed041163d9e202010f686355f6ea4cbce9957fcc7d685778ca984b287622ebe5b54bb1bf06e83cba09001a26cb0717620bfc196bef662247e3d0be0f4362211c74443b49e3e937ef4a43d1f0733b79993dcf02276f008c2f143dc7ccdd084be80959b94fb25e7a34899197a1b1c4164a72fc7403f90ea14b3f7b5192a040307e76782d08d04a7f319f42abc8966811cc2d905887882507a13f4286c5455434d849b44cf3107c679aca08065a60cd267a9f8a77f19c225a86841ea814b4b102d80eee13c977e97ad8743b9edba02e2360b4f581f2a5773d78a71aaa241928a2d29ae64c2c105b86df69edffc8201d7a3f67cc36d4a65252257cc03a61dee8c5972f74e4288f884588707bfa8ae20ee5560c8c8a4298af395308c51e3f9fcab8470873f50173a9c068ee8a1276441a5ed9f75cba20e8c861f792a8209a5c97ba6de1b309d6e4b1e22a258acd5bb48b793f1afa656515835fa1cbc361d212e05819a63ef1be0b1ac321ebe441e412a7504f6010642e251f3c1075ec193260695ba257fb8b395ad5e3ba1833cd776c24558305e2424c1ef499ea9b1d4019e314fae27110a71094026f58edcaadf4e8156598ab7335d83ab773e7969f61c28672f7aeade1e478b825f858d99ab60b3e4c66dce29efa0d43f0e886fe506df95d6613cda00aa9ebf4c840d080d74e201c3d8fc2db2191def36aaea89df6f736e9b1d050ba3b8201d2b3e56afff6f848965efbcbc77eb4e28c99d444828cc356bff6abdb355db666fa55025f5b4580b0e736787f1a3af60630ba92530731a72fd8c7f26abedf87b57d5158390ff77244aaa91262acb140f996d19064b33cdc6c5f19920f2f46c63c64c8751fd6589316a6c5a1126e5f1c35a89eab9a78749011bb1879b2aab532e864c0d1cf956eb2c8e17682f89d581ca4640c200d337a70d88a63eee19962581b24a8ef4096e12ba4b31ba8f5d84573f932ae29466c0c31a4c5834d62aa204ce39c97887f3c77042286113738c868ca48a556884786ffa63d9195d0ae9d25cf25e7cc14d43674313243bb82a6756ecd00a5279f12791132a55fefc208b83ba583ac10fe9c7a8f7cc2eda4c13221c1e4704932d8f14ac3c451c9bb4826337f8393964924313c81a19ac4adb6255060fe0fd1b5c52e3cd1b623c9a73486efa251b99b73602fe730588f5c44c987c321f1a8f7f9cd6bfe74f6cf81c3b2dc851cc2feef93b352373b5abd7b7df197825d34ce82d1ae9d33af0e046eed92f35bc6cdaa10c5df86158870111a364f70dd40b7749131384d2d4dcc351850c1c99c2611f6c7a0ae15c47c200dac14bd4623b075c88861b47701cf2baf7d7aaf580988080dfcd6eaef9c827b05985cdb48489ab298e878121e66d71624bfdcd2b974c1e62df3737ace6aff9782adfb7c8e2d5def0da4d697572c7304614a0178d31895acc21865a9e100d288adf5baa55d269edcefd267d73d485630b4d418531c3e4d115b36958d92a3499027d0dcb910b9940c51ca54ad0d3300e3fa34a79f168c219c7740dab5f2dd0bd45fb453e97292ae8e2711da73db65777edfaf0e38c5dc2a7d097fc647ad207e351c621eb972d4fb891ca76b543cc7d279fe8e6b55886c206ff245935481ab2f4ab40e25620fa2dfe8e0948672ee4164a9839df0624e86e7b7377624c2bc79aa1783c18a187d9f80c56a24693c5d593813f69df99092d627ac9bf4bdad3e0d613a7849eeaa1f69625892005fb6ef87e80612d62a90d23d6917b806222e23129afa55464b169e0dc7a33a001da2aa9a8f99eea4925bb3de4a80c12855cc0c87687f5dc07eb9b0d5554955404d894c963b9b23ca3cc6e1056b6741fe9de61794b8115c140e8315498918901ce78b43fd2f9657137cda1d705515229324a0a5b6e4eaa9c1a4b3b7136107a811663f1724144f90cefd250f0cebb6c02d8b11c4986b87c79ff99d9842eb64642db18f1d19671804204b18f5d0e4f2451ddfa3763ceebe35a92390692f72279c6fdfa7c4bcc9b3080050f7544b3618914d6ea928adab375b259d75a0319499d2132b2d0d77c12e7e3a7c3cc6fdf13f4193ea19fe76bdc62eb398f4b2253729d7e3d57daee80a440be69c76acd179d21831f757b645528bae0bf5521a157708e9a84f4060c9bd0701805e98bef04000e4b097195317090e8633b718a1212fc6e47ea3a2f3234afa82bb2ad6c8cc345fbbd55e74241a0bc31b8a90bc66e8085fbebfd83196728a745e6390722fdc4a259f7c0d8aecae8e88718702747921bf6ddfe797bcf32a33f306cd8c9cac13f278e6d4f27aec990a81e30e6802abdcf272f90120ab7220ca1cb93ef0b64fb2fdde76884cf877c5739509fb0260214851276c0935bf7460397966689d9e5efe7756d82e8a1ade6b858f17bebd2481f38f20e46501a34b56d2527a4aae5d08930e98f2be036b74e42cdfbcd244f4649a2e72aeadf39120892027a3e752301d5f9a73827d216aec0f6158c10276d4d6372d5660a2eeb4adb4488a7dd1a716c889b441c0e9e50df8ac3f18ab6935e0321157c4e18d8934a5025eeef599fbe6f76a5b2b4cb62f8f3c104b1ffa34d75cf9b0d16ff1adce27a8be9deb8436b5a70194080c81e954807ba1983f4b0b396a9ceddf68229975c6037bbba865cae4de2111dabee1a665fce9109320a29abeb3c197fee6df213f8a4ffa318341c92f2379ff7f210a779d2aaa537fe54507a97bbc06a73b838a9a702160a59aa2c3c2eda28a5cb8801ed92ae19288ce0d8727fcf6d32d5d550e8e6c1b03c5b26eca0f80bb8b5501537addb2c555416456a6c6dcbaaa8f987a3dba7298610a8a4ee251c877ca4dc92ad1d2471840f550c230f179f689966012f9539cf568ca368791457b34798250f9a0e519a147bce4014eed3177b129a7c070d022e61a597b207dc48940eb4018f8b039e65388b8066c1710ca71b3cf38dce4f2550ec0baaa0c724d5ed6cf7349ddec9f8e9691b1748a392ab3e64c1ad1b40fd739abf070fe71bb2e6a91fafea83485fc9e1e1122078a6631dd3d7c8b115aa163bffa9640b841b15bc3d8975bce4502860261e99ef21ab6ca4b9d77c3abd6d1dcff4f96e97d4112f28a82fc3683dd176846d665a26ca07d50f692d24958a7f81ec8d0700b576fb8370a53e0f9bc97c60dd2e3ddc0beb025e1c1a85ca7a85e95f47fba99aca360d5db3e00180671c54e52ed4f0e12eed5a2d0a64ee78c6324a91e48ebe9795dd2cbbff3d6c2b5cbe3066a5fc0de1fdd8bd6731395efe891052081613a7628514731989d394e749173c6ba9a8e9854942529b9f962c48c3f7488034e8c9c591beb2ffa0cb35ab26ed78baf5981948e35a31fa07d1944a34a1857b70e50c47de13ea6460342b7eabcb37bee908f90ecacde66490a837791ff9f791546a5f94bc86d2e12ab5f9f98fbaa23b523128e69600f244453498cfeae39f0fd3673100e0f855b3753d455a85c2335922ae0ac21b9d4a373e45a069eb9313e3f868fa0dd40f128d7c03591d53e33af5d6f6455466d1d686bd181aacdb96fddb9fccb00e0888db3bce94a434b7475b4c7e9644f09888f376d40f38fdbd4f9939ba7252cd013e3618db4d37c5ebb50ef09db5b77f4bfbf25d56aa0c0d2ea83b891119614b8945df48ef484978f4751e0d71d51187665a978f243210ae6262c7d49284628ddfce44d542b8b45b15292b023951093aaa039a171d5b9f3d629b3721825d5d7752ca088809aa7552155828469a5719a053a32944369b799c2bbb193d2f5661b9bf3280a1ac682f152ed0dd9e3f9302c991e26400912543b7d5460edf05cdfecbd8a7395a9804a9c2cb4066a73da74611bdc6e0fe8b42049fe7c64d14139cc9fc3989703547184c007eeeb2a6f0f8ad7682b125b42136aa316b3a1dff5931db8aa61398237582a6aabcb905b64efec1fc740630211b0583527c5d5ee5915c52d3fb19d874a4a5e915622a7637e86c5121b7d6f26de130c4b25660018f2778cf8dadd38a9b5eb76cdefcaa729c1033f260ae97ce53f8f0062a248a8bf49bb4f718dde2bebedacc29495ba1377ce91979cbf2d51f586b88c39e0da9973d9a56f2d65d24b41cf49d3e34f29b5afa494c82a8ec09b0d6b714de7e501f510f5fa9ef993814663d9a6a6c97015e417dbcc3ed2bd22f42dcfd9a18c85ad3fb2a4b409e208091fcf4240a9b94982eaab40cca5b3af78809d181279ca02f476b5cbbe3b4a28894553636ef5418db7023f01f53b53da1f82ff3c88a747f96a18bb87f2e6b6dd4fa85b513d6450a2b368fc511f0a609d1c250a1da9e11e5d681d82b8c72ff8f47e4515aa2e6c10d172da707cf811cd0b40ffd747006c7a3020de458bcf43298743db5826d4e3dd2300a760ca99ecb25b47a392d1f074eb810c2d5c6c4f0c85e14fb5e1564bad4f32c4adc439bd3a9164820ff68c27642b24a48e35fab1f0ce4fa3a316435a3c46beef60d1e3d87734a1112ba31b5b3a4acce99dd3f61ac4a3c1bf7c2de7712ef905feb0f429a492739ded4ca55a14658d627a2a5d2579b538c6c37de9403625ba83aec3f146bc9886f93900693ef1ba58a3fa7af422babfc15c2b701892a7ab20524cecd8c677c9ee327e63591223ab8f928998737bc9d9e54e8c6e0d2b83ec3bbb7cb3b5eae45335927f494aca679216189b348e452aa982999bce191e62dffdc6c20e26b7a0a56d66cee5390e00953d49eb12566a592c91819c49eafa5affd4b70f76c90a032dc2707d217a1847e28952734e372db7516958fe16672f536f61bd9bf5bb48f87da75792a7a3781b75cfcabde5d57e905ea5c6c08bcdf25224981d8018134cdc12ce8c99187aa05350df2ec1fff45dc34b1e66bd1d6ee343af951c7e28698275af25a10913e2a705042f6788f4cf5f1c85cdd0cdf1f8bafcc2a1633a0669919e10e2377cb166a2c6261b9a948598e9587e0ac8847b566c09ea7a84c6cf0771734a7e2dfe9761bcd13b6448cb14feb9bd0b61ea16beb9c56635f675a4048a3c065a86d9e913a38eafcf3b275aaec2559945d06d579c9248ef1e4f30f6c65af2f1341befbcc341d8e30aa78463903766988d4fdcd7d8713c433ea83ede2949be22d65f972b0a9743b90d53c9e61f75f47602032194416af00abcec1088bf368f5f64b83dab3d0f0d5904f41820144330998cc3f7d8a9750a16d0d3de11af700a905ee23eb2a57d6f79c595b3838f7d8df10641f7fede1166cbbc86a2266e66b70b88d3bd784dd567e67167c581331f23058f921e8c3ff68779c473675535e57fe5c2b07e47e79bb56500ec956fca74666f3a0fd5ea1b0488f837221c317ccec0cb110f53642325fd674af4408a72583cc73f3e96589e67402985af58cbdf6f7d91a4609497984792724c706e40f06481b678ecc4ff4475c011eae023771725d911d1c52b2c5e1b894370c05036fbe8780729375fea7afdff86f46f26c852ce11f1ba76c3fa32eadbd3d946b20e35135490727ec7b0eace4921e9c25ffa4e43c286a3c1983b14202fe7e5d851cfed9428129f2cac02401b846184ea7db31ad861424f8df55916a8a91a0c634c44a03f024b2a3ac39542340a32c9eab046370e77dd438c5f5ffe8183f1314fcde599268bd4f6aa8dd89bfffbcdaf2a0a64d67a16460210eb89d6f2c9489ee95c5e2dbb282497cdee7a532e8691d54d0afa7a266f21019157fdaa969fb68e21d030a48ee5cb2931486ef0ffc34d3f28d8bbc85ffc0aa4c2e66d6b1e53788dec8c2eed5e15e4a6b620e909dc133739ff9e2be4841dfdf289c55a199400f95b72d0c3696da93c646ee8d39578527fb514f855c76540e38e1937028e68f2c2aa51d10692fda3a9869b9c2046a6c9466a1c7d93b6e4bf1bfee518f4c0f1986f5c50c08a25a15c9959d7cd2423a57b8894e087dd4e608296d8a3e371101dccf4e960a6a3165c24d19af945077dd938bdeba24ece66376962a3422c38f9eedc4447d4a739bb1371141f0fe64ef9e6035ad6b2e5fb1c10a3ded2f6aad5e39a25177413c4b8c345a8900b56526737c3e9efc8b5535e2b1a07f07037d2e691b88e80b8f344127f85bfd98d83c795ea8130ae369999432369db12dfa1ea1c702328ca877a5e6639aca72e235ee05070a1ee421f6081f8627663644a4e65e059dd157a9ede60702ccedbd862e1618b5bdb526734993df66b128a91c53c1066511a290b3498fc5fbd375cff128d0789d8fdf08921c68d0b6d2efc6bc9f875f2077228a60c75b5043097a99430c13963a82afdbd34ce89c7adf0a15a7e4a148555b20e7f908a909085cc72501c71d891b4e7b41195c2681b3ffc37de2bfbc6a4d3e9201288f7b0ab5cd7eb79bcaf3cdbfdcdc28fbf3f66858ad665d2b958d9a121642830245185359f30312268ae9bd5ecc84355a5991b0a03996b9cd0ca71fcec947792af62c2530753b3fb901411f8af0dc80e2febf28fd48f49c25905d5145b5536c74d2884a8e94196f1b2bd65b73cf7adca8f4a0404e5017d1a7cfbb3be22bc94730ed644a8f9e80ca348adb303b236200c270f676201dd170a23e873e1befa8194cbf3ccf7b7c6f53bfa3a6e91b5b174f974d0775fa4fc50c9a9154d8b8ba4bf565a436bf0825802c687f8c776e1a8219c8880f7512d94f5c4546ac0f6db8ec82605c1cc93c28b6e1492bcef882b69f8c99c540d61284bbb4ae1b3f2c6c0b0406358ce36700279d8c4038958005ba05b352c85200f06ac8c0ef942ab23a4671e48c3cc69e1a56b7ed193b00323064343465fda3f8337b823251774dd1b0f275f82358ebefa2003cd50c4e3f005c27b9bbeef2e94a8efb6769554facba470c8037142f9f4fbf022675348dc0a5992b2132f2d77127e902e0465aece58d2185c477f2f71b16db4e9276059b6ca4dcc8bb31a305f1d8befb00ab0be0b7d0e0c1a95e1347e231626a6eecd31af360ea0f2d614174e5f3ec25a753d50493a2501902c2669aa11c72ef767d8a3627abaf41d09d4c4386e1cc15db17e0f13f1e1359160617d3b054e00a865fa41b6c45d755ea1f4e3444a8eb3288b9eb88939b0742804281b4165d6cfd31fe547a313d7c76ac020e2dda13553883c7836b33c3de09d5372a652286f19fbb66890980269b8306dacfb8ed9e08b6e049a3816aa65ed61f600bf49300f3d84cd31800968c758e49401c833fc0d8909b32d8760d4d2d462ca4f2cf54fdea2787ef0a9c9329735e9a85b0e16b7da77d8bcc5c386f6b94eaa07fb64bc0db5b1c62b0539f37b72ced33eb68483b65ad89aba26a7b653295c6e99daf217ca8c0dd59d9c5ceab6a34e979145dd182533a95b0993f365d6bcfd2f23940ebe06e20a5ed884672616de037db97f1bb94a029d2ef35eb247f52337db2ca30acf21e36416e667dd8fde4d36c84d954e9409e154a9547ff44e4e0312584c65045e909d5911c4b56d1565c4352e299b85f658430572a77ac5ada7823a0528719014937700d9880aa327f9ff96af4e19cc80e2f8b2a6c6ca86b3826e9b69299080a8b14713d9dee5055e35cf2646f37acf328507c4572897845c3e460a40d0006f15541584014d2a597751df8a8af42fc51bff6cc01257461f5a19e219a7b36722a467a79466fd753d8ea6513d07b500179cd8d490904e8484ee2d4173eeefc668d46e4811659b2c9fe0613c12c975926a59fb458dd3c8a4c690d2408280b364dd7783ade89b38c5072f942d63c247ac632c392435111baad1fcc16b16416622927aea0840de6e628a1c95db03ad70238248789ed0b8e97f7919bf841f3cc80e7816f1c9c237cc36c7cd30ed08ef88db49f0c65d30891baf1a1919a20490f647e4e96f6f9e01338b7f85341465737c22c6fe76e4c1720540776313c84d05bbdf9da748773709cbdba8f05726ae94bad81814e04325c0fb447fc4f0a4064197059d58e2f918fe4d900becce729496ae03068dc9144cff76c0a6208e633d6b1f2bbd3e17e450e79fc068574a5dfb384b83bd9df16dfbb7d908e9ac0653e697cc878ccbdcce954d3a8cdea7a260d155e7cf52f3c92cc3fe7bda1dc3d423758785ea79c2dc2e7dad747b876ed387c916c3a6fe8d9fa5cd002fd7823c9a16d4ed7d40d84ef9825aea43a4db655864aff8b906b25a7a529b55d9f6aae63f361ec577f9aa7fd1081f1af08ffbbb59d1f6880c71f2e283b538acaa125810b4cf74670265a8ea65e635936c3a89b9490568c48ec8aec979e65be374858e10f782466485354a53593beb0f9f7d0ee1a75345d40d1d66e98687814d6ed74dc753241c88430d6bb2b4293524fcd17513f5f5d8213210a6573d794268f4369bf6c3468dde0c97b86076573b37e216ee602a399d57fed4da7ea56e4ddcb76a99dd20e0b8899b4b61d9ebf55d76fc7d4d2bd71a5e5e7632caf9801adfa8afae5cfc8ffc0a4a76aa87c034773d8a93a6cbe7b243575b591791be1bdab91c7ec1f6f58368e7bcae2e503034dd664a1648e5768c590fb8b620a2d71d8ed892f5295db26365d50622f21f82772b93d574d85ce4baa29224b42f94b503ee61d2aa22b383a4d28d71a2ec50056a0d2b746d1325917325548e10cfb8080b81c5d2e5d94edcd4d5db8659246aaf18f2c3da4b6a6b081f7e701ee3532f82ecb7fae69a7642437fe590fc5d44ce498993fccebbb3191b30ac59234520188741a1446b621be4cd9f07befe5d0dc846bd69075bf79fd3c04049577de6c9923a67676b1e17af4992ab622da8a1c5ec0e3d03ce0153292f7c501c1dd8dd2636635f2674f4373d082c89a2f4a4661abb63e4879c4b8e6fc8b22e37d28403cf20d21a365d3a24cae439c63022c05435de574c84770135179c507522c6f0084d37bf5f11fc56ee0ba590fbaae60699d26b2c218494651959cf6236e92fb694d86375d987f0143d6ff08503a2a3af42168e5c0c2df3acccafe74f22a7cccfa4bc66941b1c836bfb4c4d8a5557f0401a118290d349657cbb34a17d8b21f1436119c617a7c5668adc60714d67aa57a8f87be8f823c0b3a913e6cbc4f613bb9968cea1110b85c6f780e774a98367b4cde5b7e0b02eb7d95baa94fc6262643d751a7b08e0ab11576f2c15ece1a3e839fd54231f6ca0a70adec654498c9631b3ce9a5d892d26dc67c6b0878369795718c41d80d8a63c3bcddd30ea01ca09acfeb8d393afd21940cd617f55fdff6444aa0dce3ac69111def117215af3f7a736b99526b675084ecfbabc6f7c367874ccf5b2ab51a17e26b9a4cbdf559720cfb9c332ecbf73067a5ab77e83dfe31bfcb3fb12130357b43e3f4228e11272b7c200f56ce8c48e9bab7f589e5bdf1e4118cf68ca7d4cd622cd4fa3ede8a6a62fcc87bd6397c13e8220f5584c4e672ecd4614a47d94ae6fcd457efde56b786147a0a4d3843f4d140b65701e2202e6ff833152f34273ee55dff6825522f0719c4585f4537cb409c265093a16c71f6527a35c579183f91d0fdcfad9a805b79d0f53ee50e42d316197570d830c39e87e22acff657aac6347139367413630af773b1f2f8c1fc5f0c1c2bacdcfadbe913d8830ac27c17e62ac4d0e4a215877430500546c16bbc2b3ac5eaad2ce87a22031e4539cfc381a2814366daa0568ffad4dd82137b5d0b29714f78c633acbe2dfe69f139168e7b084e61047a75eeb09340f2be4a989528d5ad3d3f0d75c994dc745250cc91e88f26f2059633a3e8338cf835d10c04e4875ab343ce1098ca421298b5edf558a1b8d737026cbc7e99f69391edd9d81d834d83f81856172b81de3a026e9676d0cbe85d0a2db9d70475ec1cd95a76c83dbfd67b50602def3c95d41188dedf4ce6d883ccd85317af700299095c1d4edcd3ee3065f9f14f4f303363b8ebd39e4a8954e242eb3b01bb14ee96aba4028a58746d9db7fa20d8c76a2f211c6c9870b9ce8dd2f634b2583b38291312caa7573163841575fd078b42c18973ad6ada330f78eb120f6d0edf3ffb7d50a82a276787702bc12b08854e13c4d41666a1348ab2ca72d84d789dbf4083fb23246cce6d34385581c8c84eac984ca7991fa3bb5dcfeb124d8b6d1e0447f22475c41a82a467160a67395679516ceee8e039a0f1563b329b0c00bfdc1da5eadbc5df8105495263ed3ae093d392232e7ca391a9e6646a20dfa75f52f9603fa195a3c297d61ce4c7e8f4d4a0c1e39f9f83ecc6eb183c73f86e22c391238364c08736de16afe497bda145f8fc9b5eef4d419dd39cddd3231c787663bf5a24369d20b7461e05e84f8b0d0dd64d2643bd0e5ae8f195b8e525abd41024164f43a1814cf481f316764251f0e557ed637252a318d5d2d30d7133110e4fed80a1c3e60cc0cea5bf265ff6f5539747acebf325c926bf2457053b5b761a09d7f28fecb3ecbdbbc6618c794f060ca2a172df6efd9b14d7691f4f495543e90623aa93ecca709444b6b02c1cabda2bb7b7a7d7b39debf0a01e3ab267e72b678407e815513bbb5d8811c6b6a60c93ec3e238c65340b6727713020f7a359717eb249e7a6902a8f63b89f2cc1f759bce0d287ef4a865abfd3f6c3dbcad1fa4ebc35a81b12822c00e699000c82f5a7b07bc125ec28e41024bbaf4bb0ad08b5c2b0a5150442e22b84ea05abab660a9704e38d3c9232ac14bb2770ee3edd22b223d211c31925d0e229276a3be73fa1bf93b86d3dad63df2df6f3e03d616f401039aa77faa5ac51e3f51349126e12ac2efe0bcdcd0cd7a516e82dfa3c348044a6c2564dc9888dcc2fa8aab842e8da21f2a8eac999fb1ac71bfbdc8eb60d6b56d8a5f3fb7a3aa28e636c63e1d05abf78b59315b6f6cdcd334dab9ec1e35583607c30595ee391ac476b368b814065382f6e953c9a55b25f7c3e260189627fa792ce23b5477919bd8bcdcd26697332b64618d2beaf852d925857f2bc327c9755de7579e9fa40fdb45383c93301d83626c4827b58e4c6ec3020b4ff30dbbb289e7d981448b086db2e7960fe3ec0e71588302c2f565cacd78a5396c4cefad4696f6800d1361569029a3f0c22f6b5f54871182f83deecce8b6513654776d4d9f237df4fa283ca33e47ac989a490014d61f88d3e94a2a14fac80a63d381c06c272cde645b5b4e489cc929e5002aa5b9fff01a5b2a6ce382aaf41f6137c76ff401fd9c312c56c6b6020282bf5106e8ac3da52f8a42c64a55712cc1263cbd583ecd8c882bc1610dcc8b2c7406108c6efc36f1b241dc33e8dc0229dab6d46c529b33d697193cc32a88bf89e919c4a8bf83c35eb4a4df8e5cbffbebd980e2183dea223daa4b683fdb39224fe36252ca3ae0b6c1a8edeecf5eef4bfbf5219c8e761ff358472a86da1d52377a82bd83e4d284ce7c29a4d2259b926f107784a22dbc4a8ae13f6f257295ceb4958d169e1db15a865511b5708c6a3f5c2584dc8ce09f1d165418fdc537188d6a2436b6e158537f5559243741bf3559e202d353383262307b260602cf0d20ebe577da2f2ddf7e22321de4667a6bc2e0c14363c46eba56984d23dd0fe362096e00cc602a4a8e8817d53b2ddd77807c27b21398e07ac8d26dcddd50caae1db3d2d98bf7a8983d512333f96c6ff248457ed84a000896ca193ed6ed680b27439145e937ce04b21d9a53bf2a2416796966667bb49863806f33c2b8aa062cf35549fe226156b0eee81e082996794b1138e20090282bbc03e9d7f3175bf27ff2d38569a574137d7b6487e67ab2c8979fd09e7ecb4ab5c79ad3a10ad7a610caca9cc275f61f8c587a570cb8973c9eb3ddcdfd0dab7bacd67ae7c7891d4658ee0e86bf25fe8bb786593d02aead9580c5e8f1728cb529192cf8420919f3600f28bf1f70c4b0b851832f4438f577f1b4226af9aec382c4ad7520f630c3cb3c7bed6b588bd48a04053d4db47062e89be66ec73044f444ba7e9a2affdeb95f4433e870064c2c526673790e0962a65b60f533cb49738a54b31bbc047a9071d04b10076d9cbcb0d3884bacfdb6caeee97e06d14ccc0c16d2d0d62cd6e1e8b481abf58125454feb58070327bcb79d864067c17327fb1b99c6a32996a3f8c77ad3089ddf6f9dd72d78c98dde1557101092f9a3b6e289523803c763eab61891e6550daea8d4306b519f1e95b32b2921612d230c729c893b5e73ad4d3933295a8c3d61e1ec6d0db478d9ae72e83f77a1a4b8cd62acac35a5a27bf77fe2a2b59915e2a0cdcd653e81d564ff5416b1412a20146b1db45682ab0e9b44c091ae9fc28639a1ecc14602e1f26aa215e2af16857442111d3c081778bd2c24963dd7a09113d628a58d68e8da9871a95b6617eed787181ea0d399a0870f1f4381c85d18ac38c0b223068ac1b0ef8b3535e5cb26f5515065b0d43b1161b04537f6d057a580b6ea801c611df6510d2d52ecce7b610d518934656d67e61fa880c472e1700b1880ea083d329fa386a08f69a5ebcc95bf13fc0e2f3299357afa1247b5ea89c9d2c940721d03a6f8446b0189dd375917636f849b8efa0e56a91c5c736a0dc11e6c153c1647e378f27c75bbe2acf1be98c47775d3bddc6a46a2c44b5a5b89dd6b66257dc055fbf0dfd814453265c3a645a5929da9c505c5943bc9766d611bcf37dfd34ee923a73f844fc456999648a0dfab66fe2df6473aed6b687dea93a9f34edd83461d59b5994a134a846ed382a22f33baf5590349c70b4401b4ae064868d8209c8f0385053d3371cba93a90c66cbcfd9ae0db06121965eb45bdd3ce658d971fd4ece10ed9f5328163c31b0781019691746f9919254626a21e795deba06514df22f288949721b827c9a8104f86abe798e5b6e63eeeaf540ca52cd36fd785e547c3d0d71ff9482041bf8aeeb6d9e53f76c334d15a369de79a55dc5797212ade2046de6cdee1efc81b308b89a9bc31d28f20dcf2f63a276cadcf2970000c0991344dd0057ba37b27978bb4db6a97b9f69f6151adde23f2a4d50fc34d730996450cc2ce28c48ec258a94b5cb9fa4187422629ff41f5962ee731105589cb010c6298120611d461345b3a29cd5e9fb553768b3b531bd064c8151e7ab9fecd2b4c98f189abcaaa041a8fa3531635604a17b787afab0d7aa1d4305cce530cd0d8010359fde2ad90ccfeae84f39456f76f11042dfd30ba009a3b9fd701090ed7bb9dcacf52c9bbb80ea4e83ea3a6d21ed311ee219eb49c26e2f1176b4d499235a65899d4da4a355b6be1fd9730682c26a38cf26f7fa366d248a2c0b2fd9c5378b454f33af7ad5edafa683f849118b8fd04e99df5aee33e8feea1585ac441df3166a79d97783f1582d72b02243a0bc02684b5801b84e9dadd006e3f9aa108f63a4516b22d405b73b37bab36327c2ae555e39c66a9b0221e9f32b5e3fdb2b8c76039a1ab14ae3467e99454146341a892441910f64205c9d0ac56e0639a56c155da640dee8310e55d1617d3938997aed6d870186ca797763d727e638f0a453a5a72373b5223350a23263f1d958fb4eab1a07c7b3376be9f604fdf7948c269e9fabb3ef6729d26078d3b6ecc9d5f3d685cf7d955159d1bda4f1b1b5ed32ada8308fb5f521c8e04b22a1351a75b08e30970a0910e11d17c68b80b1485a8971a1c64b2bc66d4904289bf4ff3866c1cb321a75b0d1ed4fbf37f077ed6e371fdc8a8e123bb4acde3c1ded9bf8e093132018a5e1da0537b8e09af4015a072c400c0e9fc1afc5710a56bbfa844657d13df6f81ea6d29043e5a208121971ae82c9541dbb8376e35f5275a0acced472d5342816fadf4ac82245c3b9e9bab06a6a71bb66d647219a6daf926fbdead290892c88f37cb8d4bb5b5415e549b51869f08f7b96c578666ab06df9169ec7339992835b4224ee690d4d43fded7fc2adc9c4e18369c440a1a9116fc8662caf2d134660d89b67bfe6597f99f6e25173fa7b1cedf68fbbaf4ef28e0e73f735a4bd497d9aac0b6bd28a31ac0c0c4c39168a2b42a9aa5f704e9024e8334360018e2080f8c9786a67dc7aa07bf76249b964703ca8c9aa560804aef6dc81d2bd576e5b3644d55188d39a3e473a9aac01ea40c0d78d95b46d8ab690155ceb9088c833b57d52294027982741030a96b560933613088985bc3a48ba46d5456641bb2177385d3ad6c0c5d8d054274fe1db2571c407e687f867e358f78171a4e47d4956983346cf2943391b642b445cca8e427aabbdd41a3291df8fa718de7b372fe64c3cba980205ad18d84bde809e7bd48845a359ce197cc88b99b285279300171a512224384115d7f6bdf56a83ccdac8a9e5db86c0f6b5ce8b27f96663d96248aa20a58d2f3f4f0d6d31b72ee9d98a1784d6a6eff84ed41afd5653fc3048b3aa4ecf005266e38491f5d3cc6f4fb14e81c2d579c7a18dd35879baa1afc9650679b8faa3976445b416961b21d4ebf6085ecac03f424eb168e5e8b11387a1c818c4e80868c427efb9455a453deab4551b16fad1941a97864b5425fab0b5973ebbefd66a890307d5643b9e2c27a11a19f6a837d71c0bc7e94deb6b9e4708b7799d31671d9ec4a7b5860929d1f5cd4e153f24cf3b9b5697e19326a0b51a7986640c17b1e2953a02d47f33179695a61d201531a1ffd542fca428335e95119fe97ffbff95ed04dc753df13295838c48569c9b88a1f5959601dedc75dd64b23b91ec7a9ea7f996e5ed0db5f269158e34c3d92776a5e34721b7bbd202a339e6aefb018e7b5e098ed31564f854516055cdb24b205e825ddb332da55c250428607e05953071a0449deb9df756ad26988bdc0fd8db357c757d21819fdbdc78f183d509503b3197b145b48f832446df40780d0ac19505049cb6c4f9b81a5abe3ad40293bec1bdd6c11778b276a4da5494d7704eebd86ac64844fa330b3d86c97343f59aee76efd3ede1c6ff9bcc1ae0e67af8cf829b180a47c0245f26b47b89db3dc75bc99ff0aad8e1f227ad532cc31446ff1f40a2535ebfc8a789f7dc067a49e630b0851cc135b68294260139286442b4c056d0a8759958e56bfd7bd12b06a7ca0f04d61cb572ed1005e7c8a69a57794ddc8b213b6b270ad75facd3b5a1ba4248e6d4b324f53a3110e5f88b0c033bec5dd6de952138a87959f3ac8447514867f35cc2ea21fb48898e9854d793585febce970f5fc071defd9d9cc601bedb56e098b92ec574178f05e4c42f509d8143d438eaa684d0c0eda0f1530ec61b102757db6d6f7cf8eddd15ccd4e19cc8dbde852401af566762e9bb10169397e77905b101898d4e4af5dabfaa78d8d525b7bb23faeefb4e57a8b205a4661ac3e5cf8cd94644965bc8fa462d1d239c7093d9e1314a2b04a3937a272f44c8ec62d181b8a2de777bac039c944caa8ce4d6f7f99053f513490866cfa0662a44b2024631c7a4ee228405abcece7d852dbd1bfa45cb3636664f6df436c15c65e95e320237ed47ede54c664658cf85dac7b98019ddaf76b8c927a9ca5093a403472fda6b1cd761348758597556c54107dc3abd8756a57eb6448763da53f88825f3b461c721fc1018733075c4b70bd57c34c239f63854b88fc26fb7a98966b15107f3fbe2b6c0bf7d3615b198bf4f4bbf5957b19a80718e6794685237cff72fb99f8aaa0f036979c2033f6f218507e91f1afcea0b1f590e25ee46127116c8d2505df7c92162dbfaba2fae5ebc7638a45b0c317d3b7878329a698663f8e6a3d2c6e5db38dbe23229bbb48b96b8d08d7f3c048acdbde6881fb17f31e255d6063965625e6c91c621d8ddb2198df028bfc1b99e52bec5349ade3c135affab156a97e2ff94031a04240a39ea33cc44e44643d8b942bcb523ed5d72e621ad6ee4e2e9fb6f02ac08c78114464160859bc2684cb9f9421eece89dc21d235353a41a11bf7366226911ee215188436f67ab4f88bddb4441097dab1e555fd4888eba9f5dffbb1e0691f28a2c48689eac578271cf7b9045154ae00882921a6ae77b07f188ed20d30010a2647d7b4ca29ff06ade245c08ed74d73592952c49396593a6a2893ac54764c59974e63d34c85be88da272062fecf8eda74bcc0213f9a2527ed7ba46203f4d0b076b42407c2861c06e9d3c8bbb3c31f89d2ef95de346543ae2cb5aeaf80380bb512a57beff010d612d0387a57c97c9b4e7a6d9f8b22138e0724a595f08e25443e74988757c359a8248da0ce3ebfcbd4cc414709f656ea117943676268aacb498769159cffacab105777fc62c802e9f4bad4c2e6f69748f720f06b001ff362522d282c1e9fe6a8b9d1021c0690d35e7ab1918f001bd60569d3f42025e52dae5e37cce4b6772e49d6d68454036bcdb5d6901b4c50d21c2d7566f0874c662f41b8480dc0b318aa9df7c6e403ee9c92f8d4bc6508e43810d4b07ed8a763aa7660ff889465f94664f9720e7c028624e0646da4a9262768f1b9637b28e93814c1577ec725b8066cf12bcc08944fc58ba7534ae6c11cf5523a8356b64ed6bd6ae69d53a4e9ee817394ee697629fa92a9e58848fcbdbde4430d2b51ee314068385d1e4fdc54583e13206d050e579cc5b8ecf9514c3eff5170aa0baec8c866c486f3d14171abaaf75796065a338ceb14ba8bbc1b2c0c47bc34078981be4579cabcfa21337561e14df2c276553656daed14e452e73acc1554592a67c1541b2c381167a70bb66c13f77134891323d7ac5be3358b3bdeec2315351dc258dcf55d0559c4142f38bab1d1f67556f0801ec9e7da822cfebb99aa09726ac2c5129104e8137f9e69c4b173723650599810610ce4a7d97aa95a28b00884110dc0f804a95128fa7cfae68f2c575bcb29c88e10468bf6bee2dcb3dcf371de5e3998d6d7c49daf9d35cbd9960972801d96daade3deaa7262225ab70133ff9bb66df0f30b3273a690ccb8fae38be507f9e6568ee017161ae72740a59f77bc386bcc1fe4e12258f78622fb6958315be2245d3997bee3d3776e15c1d3b8febc5866d0aff614edd503bea83323b019330acba1c3f09718e7a3cb6d054ace51c157ee7df06fb305140cd3ec48689a369f5170a6f68de50c24e34fed7e14774fbcc3df8fd2e8217f53ff9fa19baee12fc15ede8fe117921d2634505059195ae692c82567e4228730faf84401927a7279f822729d917fbd01519b3e1f8ef6f78ab994b17314ff34b6762ce350d25b8712ce3924843a3461d5bc271e7f7ee22a9a0d9fa3985b84eb84294798254def4b264f7b6e3abb3091b4c09ce338e70b08ecf03361b018f7668b565ced3cde59f6222b1e93b2ba58ab325a5cf25447924693ffd02024b2e8c1c3fcb525b545d3c2b5c72b6b893d6a11fbee2eddf62f1a6ed22849395c163202abafedf4f4cbfe96bf7188d6312d1ee6fdbb641c8c82a05c45216f662a49f85fb99d021663f9d35b56ac2966b5f930107da545e0bce9cc109983c3e57ccf24a8e7972fe6089e5a6503071a1a17ee2e21fa3835e19398854cec604be49f4dad6f3f994de7c148266b608fe4efb0fc22042f32a822343752c98a8b49970911f37d1f0f22e00266251170dff1614307646cff0d2eca1acbd29deb6ff55e93b41e1e2e6a3bdb43a4170d3918e36aae8b0717b1210b3cde194c48da5490033a73d4d71e6cfc667f3bc4904d91b5c1f31cd88cd55156a282f40c987bdbf37b32aaa0ae3999e9d69118cc3f294afb8fa7e3970a1c5e6d9f505719a1f0753ad30da662e2bba7bdf0f83e84f9c3a4e2363e6737fa650e647b950f3359e44dda7572e6cbd53cd0a0933807ef436246226aaca3960e0efb40cc2d721ccc2bcfab8383d7507fa346415b2b67250a5835722c01ecd74261da2cd9cb5d2963ad56216c78288bad18c7589ec8651270525d42bbc3571dca59923bf9ddbadc02b7dc9fa5c39a1d61d599fee4650f91e240135ef5723812f5b840fcb5aa61f9aae6793083342fb8e3805ea48abcdd14e04a03bae70acc1169dc092523082590d4f16e7e7ed9dc39410326c860782e2f65c4b15608ac7d0f391ac1d89bc9f123f90b3e4400d752f3da754bc3ecb349a351811261749add4eab527c11263b8fa8d64bd0ec27cb03b7391a4875a6c7e59dbd5954113f978ccbf56e9b5a5cbe210afb47f2d1a0622976b795aa864e464128b66b73b52075924241a2708ec60775079dd5e37acdb3c799f9c3e555730088f2f52fffa03854f6f43778ba1c7d004660f30f2074b0f5e67a94c8744b1d05e316d53e57602aa826898397c2b688f545e7a71eeef791aa52a3d6e07dc7f49023e20d8e14b51501d9e5500b18357547f817459e06786585c789afdacc8d4a60b04288450cfb375bf67f7bf19bdbe9a11cc1714b76f4e89f10e88854f97cef3ff73b7ad22cd9bba7e0ae73f15e7aa2040b85fc41e65ae527e491ba8ce28f5c1ccf723dd61590ee7762c719af714066a2c49f2fcaa5a60bbe06b4e9d801b2ca6d49db355825f9f65eaf9b3c0e05f4e3d398a7045d1398eb06329aeacf083e6b90be93b8585d94fc2f29d93f5e2dcd1276ff4a29cb3397780f72735b3ed8e981a24d87a95ecd8ed31c1f0355179c15bf4f06b32f2ba745061fa81c2a4e8e69c68caf5f3e07acb90076f7d003f4e30cc3a80c742ab01a7f7ea90887604a3f6e449f283c373c8a5ef3f5e4196fe516809ce111430208e5f26978e48a76e2d63d4e632144a93a4dd99f729c7dc232150164d7206e41d5d2e9348ee930c0e3657996b331fcb34485e8ff1267fa215bb97df95fa4cb5633c99d5c2da913927a7792c8c276d198258e04e1374771a9088ea7d4854b3862775e1f02c4717788d95a9e4fb5b61345cb94f35e79ad50323b2eb40504e4ae89146e42094174aa02c7fd933f3d27a49d42f29f41cc0b3fdb1c6f6d355c105513e30a0e368d950957fd9a3b3b0f09be5b0d4f9f70364433af4b1de3249848223bf0c2941fd0b11a619f07221f437eb41ec566ad312b3577ef50225f2dd70e61418fc14030cf93d2f2013564b84165f80360e80266566b91c9682639309780cb9421eace3301d3a82cd15de37a9c1465c71ddfd043834e666081ae23b88c66e6ba91d65bc69208d42ed1c9b04b022624b32e50e926ed01ddf5509932859f98088ae8978629b5ef02163bd15106ad35a4c4606a5620d7dde51d76defa73f626cef2601952f10003421a36a5d05ad2ab0a72a34353bc02a33dfbf186e37425c6010d92cfe2bf2a17e4239358648d15868b89197bbe8542975e68fb58e9f2db0e85f048aa06ed28ea9e740d9af143394186ae28031483b6863b9a040b38e0d09fce3d704e48e2487bbedec1c7055b555167ab82adf0a0c47b1f59dcd4140b878b4b3f86247f3c019c4f4007fbae63ca5e3b1604c336901f66e66069ec832440ce4aeff7d0e5f638c992958359f6f317628415e7c0ac17766ed58ae871ecd8b70f766f84d8d602c543b55617b7b7d0114cb15e862900f71cbff623eabb917aea6d82ee4c3d9281f1edbeb9c3075de9d9ef99069bc245216aabcb2b07ab65c8fc8c38b3774eee4a567ce531fc75b7bfb963640002cee1c2f7a2022d40f499655dd3fcd5c1188e70aa7eaa21382481a937bba51ffdd0421aad63373ced29210ecbdad662cb647d2fe030e9f37049884e274bc536cfa5eef193e974b9670168982091fc17b00e47315a0d6e45b2e1784ea11746e83e7e800346396c0772144630c2a67a08cfb7240476fcab5e64d7d0cb014e6b0315c73ef530d2587903fd83ebf6898e297da162070a07115519b8dafbd4ece389b4261d6f4886725562d065a97125f554a8397cfd195258baa087a2b9e8d38f6956a3f053ba8a8d5108ca9aed3acec9845e8b2358d6d96141260617c64979a8b2c0cb0896d53df245ac2f7a67639658c9d332edf2d1a49933fb2025b253781531d1a549974a925b9a2d26b9bc88b008c59c1f14a1d0b9045fb14007c795922e55b649c8f5eb0c316ae81e608d4ac51ddf8e9b9ce2c65c0a9a3b14a34fd3866898d8aac06de95afac15cd3c93e74f6602ea9c26a410cba580a9239260d49a39f28dbeb98dca7fa5ebc1b1ae751757b05012cb331de0b576821227d18e211b3b2eea568fa29bec38ad734200f8ba67eb144ba16416985dcbbff89651728e891543673123dff0a381ba3f0e2fdcea8e70c1df922b7c9931599609bcc19bc85519117ae563bf0b3746d40bd7fd7d08f6a9201134592026e1749706eb3448000ce722cec6aafe5211c6381598d08a36a7984995e49b2be7f39cbc457329db6be13cd4c1b77b4fcf1885456adc92cddc619e20134a5a2e6af28ecc30dded40c35039cbe6cb7c1bb1deba7d7065a287237ffd82a79a72339d1ea9e1c478ff07c5c6a41785bacf0cc95f47f05d21f8347de6c0d764b7a83e56bc9a98133c3c79b15e146c1621375d0e554fb2bd7109671b12fea4cc16cd4fcbe9a48cc2f10158cdaef7ccca95b14a1914e2e5f0c11b977523a3f45a7fe65a1a08ee6c8bb7943ce2a4e3c1028a749caaff4a8ea96d046ec60743c8f891e8a4c2b3a924bdcc66acbd72ac8dd5fc70d62188f04570f78e048eac91978924c19b284d1746b7b01b2daf8a20328ffdcb9405bce2c3218f030d0e4482d9606cc68f14119926709160900eac760c2cfef48b81687b016be887abcf9939e4c7f8cfab31c165e0f209f49fb2ffc0a7e1f543d5e2c9b1ba526154001b7746047a7d842890dc96bcda3077227944f7fa945349831acc03f6ae78f70b8317d287296da6fe2568955edaf6e1eac30b6aa85fc039f440db163baa9421a357adba9ef963694b4947276838d5b445f605b1fc11b21ffc0e4472214519b39c31f6c95c04621a3136249f334ccc41a0fb5e665baccdbccb6224f5ead4ce06426bdf79dfd4d5a43d8ee8f0af06b2a6b7bf2a4180e819456cbdebe9ef7e98b24ea33af994ec76be47d5c5ac6065d052f6b3e1607baf015ec3c76bd9bcbf7a387a3e8262e63ff0c342f2cd220201d431e84deddb979f260b56c9787fe4e6f1619be3ad5613b75a90c0b21b3158820ad6d68544e36b8b03736c311a83b296983ff2fc166ee1af87d9b7458b7e3c26f13bb059180d2afa5ea5cb124bd41d491e070b386d31de7a1bdbacbf0224173f130154499098eba78dcdf5a14ad193c88d49f90cbb8c56da775a89984a068bb3382844db96bc13ff847ac4b97c9577b4e33b602d7aeed289764d482d7662457ae4c47f18b6531ca6bde63b58da137b01f50bda17b884dbb4f3ad183ddc4e8e242328ff0d047714f2e569a920f2de4975a57bd5894a4a047a2844c26c9f326e51a968e24b1fdad96e647e7ad778c0572e6e3cee0714d6c471d571e6c3c675fa364260e4683bfa9d59aa04bde76982071934c51957581e6c223d482e2ee6eba11e8e780d7c3d72982556aee4deb78bc87c6e9cbf0421a29488ee7296fd56bb1fe710e1f2a5e805e0f825bb44ef8c323c6c9d50f9dfb1aad9955fc1d06300c31181900808831a36442eba71a8701be6ed581099c3780d9732ae575922faafc00d73c373a9bc1770a9d527fe975afe91ab7cfc58dfa98963452a2adc3c3e02ba76564f4b9179e829da2f5ba022cc29dd156fe37e7e0c74df35d6c008500ddb694257173b57e8c47df7344a547a886b26929649fa9d80c642f37376a4f82d6eb454b9da7c76b89116b40df75d48757b6062aebc411ba8eb15ca37c1b4c0c6d7631551232816a06c7f4c9a4263651b9c2f49462a23296b939d0c48ad539ce444af6a08842179d84828c0ed8efd8a2acbeaca4286d8c475973cf84427a92df6ab4e515d27438c9d9bb126cd31eda7f38162ce5ac19a31b5ef7d9abc16d3a152151de1e0ad9882b218511d34b758bbed058f1a980f2d4eddb6b85cb548c6a7af738babb85cc8d0da7e6130d1f3c17e324988f0de7e1acde63e8009252a7259a90c66071e9c03225f746fd587e79ab1ff5a69cb5edd9ff5893552937c52b1ee4071ae0be0c518128e735502ec6fa48c3868012220f07b98c6d834a018ded0b859068cb1df43809139c738aecbca80bee14b74e07ff91f51613b37e2cf98b8343b1d95d391fe7ed933977991a2e82356a6af2c32ac8ffa00609905916af8fdf8149cf286801bb8bfd704e849258f0b2b54bcc11e2ac3d6af8ebc03ed24e76be472362099c80bc8098257d0a0b94b69a65d5ab26e509589a1fc709f902f5ec938ca354bd39deac21a1539b010fa35a84b59021847cabe677e7b09cd782fd0e83cf5d19102c32bb0f57402a7d03582f8017f1db3ed18c63de122f4df19bd634a98ae19a5aa149a5d190918f39befe3caeb30f6f2300e66c47ace5e318ae5fddad9156b8fb6fea5232b41560e245cc0658c6d38db015344cb3f9deb46c8a81c9a822f7ca171020475bf0d8e3b9ce830fe165c02e9e7e2f793c472756b667b81307c63f3c790369b53d063119715b2d5fe05c78459198b5f17fd75e4eb71c6abc11afe8fcb1ac4c3049bbb4ffc720c7866849c33742c73482f1790126a40662382a8b0e23d8c69d59eaf93825294fd7c68c66e86ba888f64de08f3bff7e92c93dc000d9614aaf7054af6ec6912f9bf27b929f2481ff92d9130ba9097eb9a5cb32ff00e473514d3974e4fca18178241ac2fd9837ba7026c6d6d679f43a2942f046fe48ded73cf77584a3cb7d10b2ba511a8ba9fc316edc04097f51c929da8515830faccd4c5acf16e27b240f3088cc3e44ea1686c89bd6f31707844a9b335632ff098ef23aba9637aaecc77f431b4a5bac01924f71dbd16cb7f161c4c40337ae096a07df610248100ce9d6f7166760983a7a8be3b108824d5d2ccea2e8aa29e9488a1e3042e02162cf1bbc4475891e2aabfff4219e80b5d796f51b95bced24c11cab7f1dc1bbd7fdbff8310c39834d70e6f8064b69d4d58bab778daa6a340f55204695baa2e932effe13c77d96e44c3bd575efa51d54a023a340f5e33a87d7df77054398f4d052848a06b1c788866338b90d77ea394cb1950810e9c07ab79bc78f99a878ccd2888267cb0a9dfd851eb716d438dcb1384b2705871b1b1c3ba013713a5a6fa9045fa179976cc10361461c6012c6ad48b78b4e2efaffbfb098e8a532253d9916dae40461199b44887004039c6417cc2242f5bc62a1b9eb1dffe0c5b6db4c9021bc0b1758fe1988d96c0e7a90cbccb3465deb56b53e2ff72fe6e31c0eb17021f2c79b543c8ed304bd795e8c82ba48795c57028f9598c4b9abbfd152679a97391d42b4ab56c9a3affb32c898a8c9c81da48e8ea61d112f12f3489c97a37d5f2267d608215708bf6f53486466903f0b0d53c6788ac249a24ef52f8d1e1295ab6a6681e0324bbcaab1612644d781f19ae1584e56089bef75a5ae2a8a56e524cdb3aeb758593a6bf20c081530046597c39560b6426391dd4cfdf1c5133afdc45e268f65558d8d6f223b556eb778e4bc3b2804c4263c30c3c030e6d605b061fae2e9afb6cdb46532b06193f12fbbd5f22a13c0134f17c81e138d84fef72d67c4c873467130682f2721d7c362a8c4398d52f10673781decc21f5ea8a9ac07b73549b423604e139767941f87cce5db3624caa10b7d615ab26248510293a02175cb778ac68f60a3af09e505da56952b99bcf0523b3f18666c40879a5ee40e827accf1400520034c84aa7aa6d8c4989db2ee855cc6a46ff1bf92d221d38b598f7be68c5c90a0ca2520ebab62a4bffce0cfc6f559299f2807417061896742029d371bdc97c848ab06ebeda5b3176c9250fed01e3eb40315c1d10d6b67eae8629161d47c0eb01014b27687787263c7f44a6647181c15faabb7e06fa9b49d4731805b41d2c51f602739b3b04ac3335f3169a710cd47de9c419c255fa2a32b370eb771539f8e78ca8c0ec4adc3e93f50c39896faf29ae5e8dc528c0d00b11d6bd8a54d71aee135b98db7dc8c8362db5e8818bff1beb32a9ed63b2c23aa840ba0652d916473f1aff4800815ea192439e2473a482982e001e256a1347dbb1910cdc93b7177a006aad3583d67971d22e9523cb058098286ec6a9a7fb2d3b984fe02712febbb7a774ee5e473ba26f7d2a8b75f621a111b21953deb8ac6b6d1655127b89d31e2992160f9748c739dd9a31aec5988e2d2ccb545a5292e0b038a4304a072301dc3b808f05c813bc3d9637eb07a708b730311527c494fcffd92d03594b55004dce9d150bcd9649a3e2b1e6a65d58cf5eb3f356de85fa12a99effb471884bb7a44e7f5bb9798620bd25163b6963202df4b275f92e0f1ec2853bc5819f2ae5cf173efd3c778703e1bead494f08943394b2c0348ae40a465272108ff2ecfe0d44a264b30907258e6be194204058402d2b95725d3e225554d8f36cd9d9befb7309c7ee3ef6d87d90af3ff619ae67a7054c19102069334958c0fe04f7c75850c380fa13e89b63444c3285586540cc291706d1248405ecc8614b0dc881947130ae03dd2fc1750cffb08eec4f901dffe9349bc5e26331999fbc0a86143edbd7cd555f45d84862a0d9daf08df1cd74c96b0d03aa7eabb081224e677281a17b263226541bba03295cfd6f9cfdf1a2f4c0041468ddef9366f630691c85b85b1789eafa16024792f084b110653a898254d42ff4a83dbe53dff2f50eb9701ad59790b76ecfd27d7dc490c69435ec7591cde71522d7c9c7abc84d0d3d228e2794a517b38c1be7575515df0ddf8bf2b9559a81dd73ba1428c97479ee9b0fd3e6df31379eb58a33a5c23601e0a5f842ea927f8693cf4c87ab3058d4be9a8b18c5c2ee4a4970213261dde192f3ada1172cf43f06bfe13c7378cb8f89edc776b1a6c6d2054808d99cca6fb2a2069bc06d396e2518f2806ef5d7b756013b00035125609a9663521ff8c7cda7aa1ca823d406757cc7e9da76a8483491e10de03a41340443dc7caa52ed628fa618534fab89e43917100fc8202745d6459e37bd77e9a45092aad042497564ccf7668e27cfeb3428caea6aaaeb5e68411c9a8a51e9a445858e1ed028cad25b6ec6c48104173512c0ee695f0d88b2d9bee4d6e32814e994c80003fff7145d9acda24ed3b3a18b7dbfe1e5b7d360ec2a6810368ad750bc4258fa448a0f561aee1401d75e889e5ff1438439e2210c011214354905f8477cfad24d788843352a25d7ba3ed942d619712fbb0e635adaa1a8d68eb2cdf17bf42e3e116c166f4a00a4d8895d56cd201a70a5f13ad7724f9f1bb279157994bdc4e24721cfc100a26e984e8e7a73adeb052ae5912b14a0a01bf407f89643a5b717a7899ce4f3963c8093bcce542807b96646208e6239d8378d647631ee189764a94a3f66484e068f239428b1bb80889e98e12ddc02c5f134914310ef047fc7921df3f8a4c32bb001a5cc9482b7c09cc5085523f46cfd36e98d9e491e2804c567a69a4d4431b7e371f9ac8df341b5d3ebc358ed54eb411d5d250e8652c81256d9fa2b7873724a20aed8fb21968e3380e25458fdfd6e1470cb7736f141ca4c31349db61624730774fda708ca64e3082f10f31400f35beea720361d2d4467d09a997175f8903edddd9734409a3a01ddbded00ef5bc165325580843f6ddb9d086479a4a104b1236b8e283eae9c571cc98788da70e6f27bcd7fc1ac91c82632eb1d1de14bc9c5e9731f52d13554e064a55303f4f4d999c6589ceea0d2e76c3ec6a722d8b52ed114d35d28728a3b5d1f4f6e13488195cab2ce3fc54dddb89853ffa6f515e6201c3a260eb3163489394d69a18116321a1e0f250b3abde17ab72966de5b2970beaf649c2870f127a145e55985abf2cd8a33385e60f208b04a7be0fccdec19abc0dc899d64d00bc063359c850303225d2b2a55e352c91c7f51bbcf577e932ed05eb40d3c91b7b01bf9213d0cbc8f4ade7f28a439ed4c49d9dbf1e7f6dc1004bce28f57a223fea632cf0692876868717232d5d6645640a698e9baa23a9976f34b838876ee98f23b254043dc8e433b499a5ae07e889919451d3b5a83d603adc891ddffd52dc5d21d93bd1ddd00f3cbd05e98788a9ad28333277b3527e30cf1c8579315026bed5406036d3b6e56716c417f37d4d0384bdd4dfee757e6f11e5109af2a337cff962035a5d82aaa7ff88a4dfe37adaef3a2b9e1d1c9ed03c43f31158247839f9b4a54bafab6daa40dff20afa8aabfb29f765e207a17ca6e8791c8e465bd7595b625fe902bd31fb4aaee42066f494c5a801a466105e6e311bb09a32323c53c5a58f9a58915cf314823599307ad9498dd5de3a034bba2d3b41cf520c7b1d64fd16fe1c1045ecf2c548117cffab7076e0cd82acf457fa2586c42aaf4f4a045e8e926b43e7d10219146fcec43894e28993a88b3e90dbe44d49ac19ea63925c388d3e664fee2938fc391bffd50dcc34d6c3cc45138564dc3cc8005ed110f47567142fe7a54c500718bc4c9a7eb0b00fe3b7314c6bd8aeacb6d5d373be6b2eb2f2ac41b08894d22669532661220ddafa7e0e9ae86a8dc402b021fdadd274db2fdff230e1f5a09ac6af12c03178bd03d52378189cde134a1247fa3fb02ad66df037fdf7ca778856e1992ca66fcdd806e95a12cd5a083f6d58cfa881dada4afd053fcaa8a8f07b894f7d24084db5d51bacb853ef4b35b91bc612c8e37470a16b3e90e0694c81f3b3431eccb736b646cbefbcbc43def6de48e63f48275a5332c755911e07b304e57ba7081274f60e0115f665ff51f256f700628d4c8925848df2ff8a24c388514deff611497f47ed2357500b4aa73fb4d5ac33a7263f553c37d7f1c254891c466d40d018e7ef205d06e21603ef01258a33da1211899ea08f40d8725428c43e62ceddc0bba8a1d1283341ecff79e04b046cfe3863523a7437ff497756474f9b2c4d399cdca6993332a6eab44db09cf70bc4f655edaeeec48dceab77239f2cb967c463801d0132c7e1651ed026cbac35bbecd30963e6d78edd6457fec35923db21b015fb846a39bfe2c8fd8742e3d5613bd3832c63b7497a20d8c09fc0e90e1185977f60a87bdc6a366d505b32cfecf4a5b43e65dceae8bbd745cf28f41fb2021625fe4d2538b0b5a529a06c77135f300ee1534029a9d9a91d3a4985b8cebcfe4570cbede4f41814c913c155e90e35eee00d1da286627ed4e462822ce72c58496cc987bd5833870fe59713a1d1ddec5d8d1df1c829bb9a0fabc55f90aba8ee31b4be1757cda968435f402423232ec4accd31a936cc7f8ab3e786ebf9af0524f71d04e3930a5877d7b3fdf180eebf293542dba51821c01794294fcecb0e397b3b74c71f72718045b542c766e6eea3166af3a18c949f136573779999a6f25e25771236aa18acc2b4c244068b3fdd38fdd9a07440c3840a726c669042c888f49ef5ead26f5733c2de0261585cfd9d1f690d1d863677d27f8de15f688d7f4ba1d56a2b86a07c748be3bc7da19294310c1357fa3e76f8867e9d3b487b5434c869aaf4804ab1413b424551fce8fd78e413594f8938bf8c6e864d948da61b55d97acd521c6b7a2deaace7862c85a1b381913dfc9862a93ef331fa98c7c058859d3c54cd726373d64347b987db2377596d12fc0be90608a09f6c72bcb535eeac6e5c12d89c1ef562bc3f2264609bbf64ea722acdf76fd7c7c84ca87bb156719edbddab7d327e319efab4f82265f2fa6105c014f80344705ac529e175bce9d93230ead7c045e3830f4a4d62e55dac30f8db52c2463780c16077ba7a9245e9afeb1cf4c58725df6cf454b5f644ab20a5ee7fb2c8ba62487f7fd3da7abcef9f4b885bb69a75f928e93519e4cb055b6c793057a9eeba7cf0e0e057abc238ca57c5208d1836d8a5d37e9008415aeebc80ec148052eba49459bd4a538f498a6bfbd64cfd42f5d92921623be435d18825cb24d3270a570110317b5a2226a4d2976d885b3cb6bf4a8fb3b72ca089cb496fd01b3651508cb62bc81a85d04f96b404fa74f1982031f94d46b56e96357dbcbc9d83e4750bfdbb5d6e2c804527b0be19f35b5dc080511e84db94cadc8ea9edbf0fbb93103d7c805ee0b3f83a29b29491486205c2f454b810cf1c6a00ee0d28038c90bde134a44de502b36d82d35ffe82da9129610f4fbb3a8d3b51df4d7755b7c353521e95e115e7f2ebf4052445051bd23402984412d5a2f2030e597024044281b3d96f113293db3f4cd94146799d46ca5634cab1174e6a16e0070fe275879bfd8e7221e9c4f655651ba5297ed3ca3360f418069c110e572da23808f40718c563f548764eb2cf486deee17a67a114deac992d3e4fab3e10c7d83b2969dd20016d1d7513d533a8e979fafb03034f4bcac6cdb0d089a597c4bb872afc5a10c16bd4fb4a1252f17c28e73227cc78340f573b355fb03a1eb93ff50bc1fae095c521e9b801c1ea116dca657039d20674f0e8bc57c61c93c9fd16d5948bb4bc4fdfd9cdf5e5b2d5e18f2cf79ae529550603a15cce6d891d93d8cceeba49d775bf5e6b3145adedb8afe1f2a1b6ae1a6978ddc82d86be65547cceecfb4fb8b73ec077370cb8445b4a752e58e421aa47379ae121c1bd33256ee418a104e3eff62b0ed3bf34cb328cb8deb54073fc83c44a9486c7e6980ad971342fea5689394cc14fc2ff408eb67357ba64f51faa75c0271f3ea1615dcbb5d2d093198c74efd1f64ca773c54e137892f8553611b8547bb61ced2aa116f54b54700a3640afea629fe922f2777237f6718c380ddf8c1092194ed43d06bed09ee78a8c67c47541ba0205359290cc251ed8db3569f5b52530b79dd0f740fa9971b66d0e9c276fe869a3feb4a45ae997a431f7b5235115c0df339a0c056de267692d7452910acaaed15eec14197f7920a11eff509644e670b77a9c6508916d05b6f5d751cb321cc507056abb3cccf73d704205d95a1e148acd9c386a6f608fa521204aa62ea12e675f042176ba50a1cad4d517d1a963530da7fbff17dd71fbe3b9c18dfff6b6667083db6c77a785647b5212b9014a323839c73adab103c355c2577fd5583df28618ae213929baf7a2e433afb0a845b967159e3a9c673893921e8cb0e624662d7a1e6d0d8ec9446e6a1c15461f48903fc6af8a29ca356f6290cce09971cae047aff7ddbe34be7518e77fbb10b93121689df51a689fa870e57abe564d3f23e4a8eda383b4e8d0d741c66579683871bc34af7bb88716c6830fbebcf5308407dadc1237d0dd4f850696da7e9cc09a3d16d09290f07c2403c1121d67611a6650a197c6ee8d0cc93597e5ffc6e1f830d3b2afbda308556302038da6e201d7d132a703ada54e9b3cb5a14f1eb5de2748c624546770d8808603f81c53abebb02b2df05b9dcfe1f41b9fa21af573c6a11fd00bd539eee3ad0ecca9be51a2f70a5202022ee36991f117ed8af73bf508e545372c3f16045ea74ab1d8ac77d6689313a2882d49ebbf9dd7ee45b74ce972e30b05b4046ac5389cdfd6825f91e119545d1e4d705e85fa1477c93d6a00ba0a9c860c84d91519b2e91df4199cfce5ce7d6167d4525b5106f2ccc536851c78e65c1d8abb8bf539c93b78c67e47dfcfd15c69c7ce519fc039f9135926845a01a4a99f9a686cd6437956963275b7bfc6a7b8366ce4319e79ad21b310ac5f139b9471739a76bf8bcfcb781e3d3243a458ab9c3b9b6e181dca78b179013801ffe96ccc6787654c2b5caa09ceddebd2d1cbe3144a13db285b76ab311cc1d2fda03314f84a09addc3d26298b9a34973216d4d8a9f53089fa47b6a1600818f7cae7592c7194ef4db4e22070f6b8d46ecdec5a63032f07306f70c33e4f9d3cea438114834eb2b64d4e01fc51797e11c9e24b0dfd10e44e03548b7843180c84df9029a1515b3c05e826582cee5c7179655ece31fe102897df3008eb27556c61361b4595af04ecabe5549a023540c2381b1010c5d17ab509cf8e1eec30cebd163d48e07dbce9b7556ed5b53de6168f820a5e816e9ee970d73718eb16cb64f39cde13db158bb6205b8a382869fb0d542aefa134eda2582ec887de6cd1619c2b72a2af57ef54a55ba6e013bd7fc06d4666eca6bad413f8fef79b23183073ac451d2e3de6ce9101a0e6945edf44ecc8937440524357904a67d9498194a2108c56b7e57da5372256993a5e30ea8ec9374ff08efe22f91fed2d7e42c741be3d158dd46638adb3ba6380d4c0015abb18aa9be6ea037a708fdbc269f5fded50ccb010357f9b32fb535f98e3cf736bfab0aa6c0a68260808a9429127d9526ccbf8d8810ec9fec92eb77e2b7c6d800a7eb0bb0eb89d761fb5d999114902787c60993e4258ded98288a954f5babe4b5f0c2acc66b8a316c8e96a9c5fc3de1b00088bdb4e85c133b9090bc2b28c31383ba2aaf229b48f89257d4a1a24f9984a5ee36d047a4da50112c2b9d6e21a58e81daaafa464a3fe8d29e9326d67b0b4562d292f33432677c042dd9eda8f96f358914dc17a1c99d9068229f1eb311534c5a6ce434842d687fe6bdb5e6a0a36919d3478bb4b95610d37627363516712c37c150f4016732f2d700e84ac5fea980036cbe9624f5cee96bfd88dc5a5a9f9794a5ab66af802c7917f30ace4a0920dbec7608dadde3c9db611f3f983f5d37926adb7db0f7bef52362e101073b723d87833f0de0f8227d2c96b91895dc93a548b1b69cee74c2c706f4f24f6ce032f711aa1c3c9eb5cc0b243e49a1c4ec2e2236d595fee526d741b69920ee2f88782740f922072ff478233d60226d156e4f1b67373c1e1cf17c055b3453941104a116673aa7115dbccd087f57f6454a254b0116acfc7e451f802bac3ad297cc274777e9eb90bcd3b79f754954aaf14e1901a726fcb39b3fdaa113fd3402b9e04c5f272ebf7cfaf4b4a2eac4d97d8d25143ea8986493ca6ab3d050d941737a46cf6348fe1daf95a725aa561c3f81b72c263188e515bbdf7f1ef1b37f913fdb58929180989fd651ec9e79359f315c008c22f07963b2a498ecf335b7ebebb98edf7a3477ef959e93ab5c2588ed2f645f091e0c0532d65d1a59ef08cc02286c0baef003de79801178f8bc0249590c03a367f735f8e98c920c3831834de9b5650bbd618f99b297cb85f9bf283dbb716d17b3cbf25b46d5671b2abd75197915da57fdbebadae745fd61c28d80451358a9dd8e7d6057402626ea8cfc0112525d0ffa63fd4a3b40a93d33adee65916e91e4acaa340a39a4e7b3c0c43ac20903b79c2bd996822fed142d9c2dd2d754b8401bf805dccc15faf5df7daf2782dc57dff89fc406ce5e5a8fe777aacb38e44b5d0eb28aa3cbafb8207c98365787b6efa95801eb5080b5c95247c2a68e9f5759328a29d77d74971dae473925c269ccdc79ddba31769f41344ef7556576b71770e1fcb7c3a194b8b1d6a9b73e447c0535c9136aa704c12c78a4556a3e0131f6ccdc5c3c4e0a7dc575463c03111ec55a29a7c191e086f664d42c26fb1051c2b35b6b5f9c1af83632ee9e25c4257386ec6f340568510ecac672ef148495abb715b62affc5a46cc8b1caf3433c04cc56108b26c3d9ceaf4ada49ad08badafb13edcc8752eb95af8867b14d2733ed95c9d9bd46651dca042975ef58452ce04f41b15148b2f26bcb843eca28dc76599da7df4cf3e86e2baae3d30d975ef71558519069033055c710f41803f785bb0a9ab73f009e3dcfe9c103fc0c44faf383eccd16ada55ce54091bcc9a99cc9e3eda31623ba4cf3e09e6f69792aef620b7e8619d1f9ec5e389ea5070ae5f207fc24b420455b17393c5f5da8c8a958ea9b16c45f8825ed59ab9866e6dcc94468724e2ee93e1dad2bd41038740000f81b17f3e815fd348e233f3035061347d2b2558654439900cf734752311d8cdd79bf43c2580b41520d4bc4b03475e0e453fba4adce5ae7ead43436c77e1c09c13aabcd561f0a1361776f1125ca76b6626e1bfa3a2adc6b97234bf746d7b0994ecc660d546907deb932e63df12368d39140fd183756ad0a8bbcda46fcf98a3eff779d316e0be43d4674b11ab2aeb43a67d9b52d0f283689d2b02dc8fd268a09dcb660347af8bc2bf4c9c6634d9dda0624be6fc395d6385f70a4e27448a3883be1b63a46edcdcb333791a56353687f479f6925bee27e3a9a05536b534e39389f55dc1099f646d756197f3d03704a94dd30c42be1c19f7b956f09db0e7db50eb3da3cd6b411c633792f1b2580aec28a0779b28cac069e8088ca28054a396942743a220ec0cad453819f412043c014998f4487319b6b432a2e87a7ebc7cca8d6dcff8d1e667198e88748a0f6904cc60ece198add0b9a395e06088e7dc3ae4db866b7af7245a26292bb073c9a0f8c23b9f18e7af85e97913ff4887ba5105f35ea254d6e6d0fe22421da06ed9d5918bb5740660629131b3ff73aea20a8e0c5c0c14b5ee62bc400f36461fbdefb19e5e120419154bfea409c0c1b56c2d243ab5433257ce517b49e8a8ed93f0e2c6acd2c5603a87bef63a1e24d929ebc79c262da2ee64e6e4a31f8c61fdbbad28a6cfdf6e8f21508dc0d1ab348009ffa46a7383f0cd43e37be1a102b6cb299510f5dc5e02eed397d7084769352b1e37fd8d487f507a1ca2a52ab6c5da9c2fe075292104ca687fbcd0b1dba69219257dfae40a06fcf0afae89b36dda88f0ae642e328d0e2cabae3e2fa8d0102f48dbec56b6dcfa81d0e6c418abd2a798a6caca8f152260cfa629b18c31ad38e4a59516e607eed9d674158bdd78428e3789cd8b0408604796749cebf3c0f3b212fabe52d6cbecace98287b164d17551bfed4fe246f023c9e21a7d59c7d9341330e27ace52ab4bac1df934dbcd35d1ffc61b6daa58d69b5302654396893221e211f79b392731d437f8a5b175058b7ee8401f104270565a1ab86140b500e2e0caa5c670ec0266ca615f30a66297d3a40554f9dfc70cd90f9ce9cb55b735bb8cb720dd9b0124d9e9a157c4c30d21c8b86356463969ef326961d4fed8d67efefa782dc16d6bd858bfe129d28778a9cedfc8e1fd4459e7025725e652d17b5401555c681c5080ac501c927ff6986c20e8249efd7951fb54fe8741ceddc52599235168efa5cb3d7624bbe71a9b80da325d19d899b46e5fb24723d27aea968438e84620d521e761779f8b1903d3e2c85f51400b20036e6dbd3dcf812afe3ead8af5eb1ddf9c95d4d92053c2b44e5307987e78a6686580295a5ac42b4c914be717e3e2b7ab2987c15a8b9d169898541c13b41bcc18416a7bcafff6aa84f460fda972ebdc20339559c71d52378898f5352fcf05f86add82fb98ad343cdbea69ad58a82737b45d3fd2302ee7c09ed08e1593ff83c9b1c74ae4658dbc3c68581489581e00fcd3756df7fb70c9cd215ec8cb3d974708bf8d7c1f319a0627ad8ba3243bce585c42b8e7b9c78ee300bbb3c7a73a1024c02a39ecba457e50e959441797ddbef68cfbbc8b2f5437cb0f295637160e0bea05579648710168c05063629e8d2fad45c441407981e0e57b1471ea30f7496579bf82406c1441d6e9c7fdb5d56479b944adacb00013bf09061d056b7245e8cd0b8057c28a91f8feb49f85a24d0d55d4b712d4c79a586a6edefd6a9f2120136e8e6bcf1ab11d4cd24cf2d66d814e88df36a3dcaa9cfcc5e44f4a6d5697ef3644696fd96edad6ab21a701bbf9aabe17bbce3efcec155f1d6dcfb12e900d8ffcade5fd0aaf74c3f132f92877ce1d695a702128a4fc0d267cbe15fee4f6b59a34c31e2ddba03e6819abfee775e1cfbcdba32f43c5627dbbbb5427593ef70d7932352a6f453f039b4ecd4c4b632dfa0c45321f9933a4c3809db9ef65e530a6834d1e32f87428cbe2f1f201a54494417ac9fa1fe056a460b82aa134232e9253a21e16cd62b63d9829e7ec02824f978df29c5648168c0be16ed6b08a6f24d2825aa7bb3a91b03a9bd81a58b8c3d34a676d41e6c707a702155243e518108aa796650c8086eb5d033c2ace2d19f7a2ca7c7b94598555a7cf46e9265436ce11db2bb4b20aeb0fa5b8f28c5efd8bcfa07408ad9eb1e6c0dbe549bbcea94f96f3e37880411be0f12272312caf786c6a0a5c619a986f1ccfa7fdbf2b58821dfa6a15cfd9b2e4314c6467f9488edf76f94716fd991c95e106ea56e43a8ebee7fff7a594c62b666680593367f2432f737c049b0106ff078a31963bd01513f0ae2f747a5c15f01e1c65f679ee3968b97f253726b4611da0a978f876b0b840d1914918c8d49cec615bc8df395ff296b6308429ad485bef225ddc9532d8ba56cb7e7d09f16469d2e8634e71bb76efd83df47c2ef41a4aeee92c1a1e355762f7efdae3e8879ceefb382dfece992cf85b15943cf445b938d54afe859269ac92e3dc65c68e8d0689ad746a0be8cdb5c0a2e3ebaa9435907fcd7814715670ae1c49c910060fbc60ea8a2e8a2a3e99d5425196d7a52b3463d10840f575c658405a7f61b183aa156d6daf8c52d85bcec69494e4a7b11cc7579d1b53b3c9bfd1f90a1c9049a8f7bf1e720bb59f373489fe7378b81b1f19b9beabde6bcbca26158d20fc81eeefd199d8322baa27b1e98059d87e6b83f427b43fa4247f0a025e1f34763364341a436d9b6ba7886375d4eb4272696ab3517918cb7472996913c42ec75a399c2c3aa02610d78bed9f3a906caafd2056704c76763f5a43ac197e3a9d93fe7b5cc6ab98219f71dfaf8aca14550b6a03da42b6d91a9e9a58f82247b14a26bdedc69be7cfbbed520741a3788f9992777987769685cfd968b7d1ced475e6f814a8cdf16256e23a52c51c4cac28ac17d93cad0e2db97130f0b45c6f7f0db2d347f5c9a6dea2410f9a06410485b7ca861023885502e68d5a7cd8c4aec02831505e83ef78e834f1c9c0dd3a7ee809c1ae32a9bde398b2bb491eeab0a1b6ca2ffe2820c860baeaf0a73bc84a05b03c5f61241fbe7aa626ee5d97ec430b4042b8b1c60649fc0ac5580682668a6d9db2b7f84d4f2f2a1e5ef78c703ae1a580188511a25da6731c16c260d7a841a73a24333fd41460fa58db67aaef4af47817f07aefc8d749a32b71789481adc11c1152cd5643cca6e8d933493c83f0c5347ffd2d966e47bb49c5c5d45ef1e1f5e2598b27cd94e9aef9b787cd75ec459c5a1e4775e778d985cd1ff245853cf2d0af9afe2d9a5519f46577d85bb94d8aec6a0f6ff202c7c411fe2f742a0eb2d6bf43b862609baf56584892c805870c39bfb08e3998736bc7ada0f1c95e5ff6adf707d6af79a313f45eeefcd3a795042f5165fb9d17b92ebe3722b4c2ff7de6d2a1d094e1eb16305d565d5f1951edd056feab66e594b09b916ac19e797b284504650de478453f473b4d8dcec086ea3320600895861a9276d553e5d541406bee319d09b10935e6088a072b652363cfae13b0669b5805214608983137a0540c926dbb6548725ad879ada8b578190a5809d1f99b6252e15237f91554147543d29d241b2362e0860cbcede8d92170e6784e92932492ac840f6cde0f7a62dee48e2d1890605ab096570a16a489978eee8e1b9e648a7af2dbd7edf6c2693a051be9fc245ffae489b9f1862d37009498e2d7cf56fee8f7ee64c315eeca356992ac1517601b8b37401554fb5ac45a0f84b163ffab76d7dc8dbbb558965e10a16ff9baa76b466984014be5711bf9097317cb0ba18a4ba4ea2a0fc6ab00c995797eb97837a049271e28fe0a6434e81fb6a6e7cca15f7b974824a7639ba7276c4a36f5f99f357dd6235f511b4e9af18fe5881e067a80bacd7c6d90453a00326ed414a3e4082b8540438fac515f831236a78473abbff5e44282d326e6eefd4659f8066d0a87f8562cf8b8a8a323751f7dc87bb3fbb3aeb37775ca34d424ac4f183efd7f10d73f6d810f5575328c13f755b0a85a22eed514cbd5a01b841e6e5647425e701ad9e6db960e0fa76ee87bb002cc74c27b0a2d63175144d1ae30d436a093a2ecbb9729aa34bdba2ff20cc346f9c4a21a3695529b287daec14e89be8d63d4cc5a297156c16ad17573156a744248062eb9096f600fe91e07455738445873cfc7e9081e3d3ec34ebc667598473d6bfa1f23083ea8523fdbeffb0974cd91990ee349273ea57c0b551aaad28a34fb649df7164a98b8cf774f11601728d32e1f44d244c976d751b2566b2af1c98d3f10db73bb7c0a39ffb0b572b85cd753da7fe445ab8ae62d3a5a9ed09ed34c91cce78086f4913f5da0ac1b79dcac845e21b9d8630a7f7f444b4aecd65471cf471d108753b8b2db495d72a37575defd3f3084bc6d922cb019ce6b78fa5541ca699b734e6b5fc0a0add83c4e4f1c2c2096ea55d40fe07cc9c4bbd9ae10314e0c4802ad205bd633693bedeb52e7182bb6404a27a2f6865d08cda50d715d7e89806317993c2ed29f0df6210f9688a3a617500c9b454c074d1cc259504a2e1fcd27717c7ffd0a7d451f3f7be6e4c7d083763704b30765a3e160973d2a7a2326c08f79a6d7e2522c991c86bf6c8767cc1df68a51579dc113a7d27533e5a5396dcccb9028aab7e8fcefecbf65c34e4a5c00b5002c5e6d5357f41bc54ded29696623dc5acf130d85200075c767e4e7c8b4b78fd191983308655d894861e46730bd63a779406ccf84322a24f973847864bcf86e51dfae8c43f398c2bcac58f933bf8d6fe2826fee40389c36ed091022e3978b8929c6e7bea38a44a36f631c7c58c0d47de73ac226861080cf42c85af0315e6a821901a25fd0d2eb21ac9053179c4cca06e8fc54a93cd99d013e78c8f7bd5fef8c4bc218ae15dd5ce73abb2fc48d8c5a05b6d874c37e0acae6fd2f5996dff21f9405f87377a16841a8f4288df6a4ea2bb24ed0de86cec5353a196453d958e3ec86f2b65e430d12048f1d2336a3e2ee1c59b4293c20da5beceb6b93dc0136e8d0bc09a934a713fbf17ce72d9e8c680f08f6aacbe3c39d1b4c9ae7a45abec80f258b28a9d752fa7c1f2930c31b92861c6ee8c7aa3d6d3100337fd7b4432883a46ec5c2b19a85e6ffd565d3151452e9d5bcbcf642ae903b10ba70c3e38ce32c70946e83dc02077bc34287fbb113dc7e5a9fd5931dff9b490ed37b9690e159cc447e014a3e119f81c77d70041303b848f0fea20ab5cd31315f338d3ea8d65588aa33cb0390657e2453bf01a56a0be1be33a1270e8d0d9162e3bfc9fda582c5f02d92c220de3753adf4303bc9fb143e8fdfe0c69e153c8f36acefd563a515e8e112f5de5d3f2008860a11709b6f5536742b4a27f560a21a41e927ba47dea4325909ed605be50f35bfd62c2d7d60f97bb58061ef8064f1f6a94cbd52be531d846d2af64a493aef6c2a1c8c53168d8492bbf513b71375ce847542594fea897cd7cc0508979238025d4fe07a1d64a7e049feaf2825a882f0c827768b726f3c2c1318025ef4c01b6842aa7f6c9b7fc8f6327f72845751ca225270d5c1421aafa4836ac15197b94a1b9603b2b627d8b16fb74e86de05b0fef8d858e7cd05d0bed403f1d18647976dcb997a6671900572cf65d7a6675f73b22a5ae637dbdc215e04964427f4e49214d54f66a5e97d1a3b9e85c81cbad09532926fa77c63c25c4945ca209485e07eea27b24fe2437b1fd40a40fdbeec5a441815a84de5f88d617673258582dee5f63e32bd035e516186ae553b7eebd9ab0e7b9c6ab86fdba13f3749ccb13829f14d4e29d2ac49f7eaf6a14bfbcbd6318691e4a1693001db592c3d5f5a2b9132d7b4dc23c67c41169d6cf7d552784ec07de0e6ea2a2516709fbfc2c946a8897e1fdd5cc7a40570f8a1f5b439226e98ce473d809ed03d9c86e6c6321791338640299fb4d34734fe585d1318a578bbf6e135f87cacd2644f1d2f325838e71427a155fb23bc841ee932d661fd81e4e5625932f5bffdc3e932d0c17c92a66bcbb1c08f682cd6fefaff47b0da8e63d07592bfa415de5dcc12dce5550e1dacd10bb7ce117095ba745281dc028ebd50a74400c664a475f7fec068b368a9dae86ee5239db0fc21bac12ef90d9cf55e95df9521bcfd1b953eb3dd2972ca721df16b919b66f412ba22ba59c14ab4c2538ca1b35da0eb1c22bd2f7475a7ffab0e9fb3a428a2ca2302c4355d633f19db9fbe9040a71c99bb32bbba179f4e2cca8607a1d448add3beb22d6fb6acc79f6b765460324da549148a0678736152eda4af1e772142ef3abaf6314737f30523cfd27b60945a3aa6c1e1ad83880c03ed55768932cee55dda26c2cc21fcbb1e18a6018892c6f666b58793188060f024fe179bf5da5aaaf716759c57463e4a70eb0459a7a27455cfd535b8ceb89e6bb66167f7dae18aa3e5b53f441802a9d437cafffb72fd8faa9d9b1ea20141cfa024c0264f3ac264cc8fe5451f3c35f6fc1a73e0316f9c1d54c2e9b28eeae5fe1bb4f262e208f52f826366bb865dc75f9cc2b48e929ac893dc5148bf7a431b39c69987496455e85b6c5c22e940383e08a27b96c415faa785ce3bfd171fb28c1696019d88377c88a57c65d47b0b70c9ac0e3637c341498fe4f572d1190a414f4a7ce38ac55b075932d94daf3c7280a9f31c8bcfef697d82ce9e619c31f2623facc4d4341fe33deb254e5e683646805712babceae0b959f39fd6a31b209076d4669ed2f5ded4bcf618b6c91de0b2f3a947ed97ffa55914bfe45f6b57ee80f04913ceae3b8caa5a2fb9abde6febeffee135bda0784fc6dc87bd2c7231aef9748555a83197e00dfab405026a26ec8ccc6fa3c2222a41b11ec5007eba94e1f187c515e9f49d0150787d5037e26d3daf7fbd9e88666e447a31a442fa7a935d07e7508b1337c43d922c2c2b22db1607fc7f6487886b882e00a03c29b20d1c084fdb041dc9faf5f5bfad2f2a6f2ff60d4ab1a5d76b30ef1318fef5755cdcf32124bb288ef6e9b21b9bb69b6af1d70b09becf6370cd8eb5868cdf9365c9f15a31694d5acf430ef79b63cf842ea50f441999a40773da2c31152696cb47806887dbf93383f745ed2cd28e5b42f1afe1b9b41de1cc234eb2c2cf223c0cb9b2b9a02e08e5a190a785674318c77f89127ce55b8fd4b40a0eb33e9e241ed9bcf07c0c3572b6fd609d4c03c48d28d7dab25479e1eb4b6201eef5642886b3de5b738c62ac95d255333cc0de515c20b82d0725fb731b4b812b958b85f1271658fa2b432f29fe7d035773dd3a41ec22c3113c01f77397044cb740ad91f509c712228c074a9671f7a62cb8bb4a13c21109456d42cc64681a585ea81be96517afa4f5cc7543572fd54850f9cee79eac77b1c07f8a322c247387cf53bc089da462b668efcc64ccea6858e01761ebc5dd8561d63ef961d4a9fe6726f3158f4a4635edd99defdfa8df0e5304280497071473d4f53c574dce1bf9a2bfd7e3a84738577cfc6085c1f5d95b46269885a8c60b8e44fd3e852996fa622f2ea89a81ef480ae7a3aeeaeee6717b4df2a09bb7e50250a1bea5e38238b9e2f1319346c5672e130c0f762ee70918844a58a606ca6ab1e479a320b43599cc7365ff8f027f959b3dba76f1497fff9b2707a21e808d84bab7c12f450bdb349aff8ab96cdb083892c52d9a15398cbd55bbc62712161de741379b0ca8e00b9365b5f50bbbdf7a9741ce125cdd2b758939abe2a4a68fdf49e201d04e0364f89125c33ad13c09fd1164ef2fcaf3840fe517e38e13ddda84a119c8c82b385a755f6c3e1a06fabbe95b5454ef458abc968a87b6559257a4e864c16e5027319eee3131a2e110eb76e4473040e4987b4ed16bb5cb8aab482dd3f45418d40e3ebb50bb4a53468f90fc761b1bbe9579b21c2dba2ad14b01fc39e836e676e5cd870593d85aa9212740d8a22439a842117c1085f23dfd988ce4e605294c9505c3edb0ef83970e3ff74d657f26f1d71cdae1f1c9eb199c21722b1212086ed22a6b1ca1f54772f0227348a7cefc58fec26e9a6c367cafaaf8348c2765791272b86a7e37279133eaa00c73d816cbc9fbb1950bf43dd98b6f5b82192abd3cbe801ae26142426a414200acd607f712638253831d830faec57a1e4331bd0642e9cbab00f87fe2b5d0787432c5bd6367504c43aee76c607821884fbafaf364f7f1cd086f58749ef3ecc68b3dd754bacca4aca79ddafc526950b7c3386529cce0c0d410b86d97fea9428bde2c960ccf4db055f72baaa28c8cb9496898a6e268b379fc7808240372cc45f715db5e704e5a368ee49a6144b376a652b3ba99d9d29cd8e3f084845b4d5693d08353da8b88ae535a342b8a1810dda79fc4c2b72d1bb325f1c2be86d649bc9d46c7fe3da59a27e95c1491e007dbb80d1bc040b74dd4b5f234957d172bf478c4f7bd52b81a61f8a51476bcdde3e04e6da1c6d58c41b55a65aea5a0730de38ce6514d3c78a2da752a5085bc2e9d97f2acea0d7ad18ee4952ac41eaeb546cde7d59c99bd3c37d1615087ceed1ddaf18ce6f1254b4002a0c0f8c621d971478400a8f4f52229e68fa929d8a9f0916638fc6f5543db8a7e17724117ef1bf580977611df4a09a2733167536060ca0343bf7e508bfab4d8476d7808a4bc5343958303fef3834a3bfc7df7d0ad97675c94e39911ce4ff04a85f6b93997adee3b9f02ecb4f9e3e9f5dfb028c969e4524185e8fc696e35a2fa1d1eaf6dd2ae4731110c687fc5cf37a7ac1dc6c481882a15fed097482e925b32082faeb7b1c626cfa0d6290167e0d48efb9007fe2db5c6d45d70b1ec6898bf0d515baa307ac49eed0b2ff278d4f48ea5adcb524c1aca4534642cdd51804fab53263395a9fb36dfc7ef1ae97dbace6d3e02476066c2c50bc4e9eda7f2f4ca6440999fc403e1a0654799a165d34f52cd2520e70251df2fb8bdc11916adce6066536847c39923131d54e43f0a873d1e3e9175607be27a463944c88a7341b4a558bc9a3a65fde016d7b8ccc8a2d731dd84362fe51fa6861eb943565a3034373120c5d775964b44a1fe6f7a5453d99615c2986c399742ca417cbf2ba610ad9d380609077ebb78e4e0e71622f1739bd4ac4108441dd892ecb1213c0c4905fbd8a277bd674a5849576e7dc965a0a4fbb77eab917d7517ca6a02b98094f3424ac1c512c0aad4279187bba872301bb8851c5aa5adeebda65828a5315d1aa24fa4c848e967ac4746387047b350337dc2920fa66db659f94fa3e8aa1a54ac38dca4a7f30b361f35f9af3a782686641b25ee7558323370f4d1b05d6ce2413ef6ddc2d73d0e6f6241c3964b90b4a1fbf973a5c10ea752d520738f79fba1fa220193bf221c7a58f79382987adb72272fe79062f4588ddacff7a82d893e554d92bb76c94abb628809932fd88ab09634c725adf1c24cea989998ff077aef6c4d3f0c5780e07ff30ae8a009b1d7fea3b24b7cea4267d31fbb277e60e89553853565e903e7f3249dd07478ab6035226c7029e803747eaab5ff2e451a3d40118f68368be1b76d7ff8d50262e1c8d73edbf7a42ad0743e9387f52f4571feb60a877b742c5e29c05d2d9f5493bcbf5fb53cb8d46a7f36a315ad8fe36b2e2c28e1fc6a46571213af33392de9d76e09348d050c2ed53766c72968caee2d14decea57d4232d62b74568dad765ad98502a25c0e2ebf6ab258972f53cec2857a445184e0a47238bbc0996423ff47fcd72e8f5e33668c23e81cf3384f6cc779abf58e9a5459f60b4b789a22a05e9ec365be05cdfaed288ab102f61d42ee81c2591cc56246acfc3f9242a1c1553c55a6805fea4b970702429d281c57ad0a24b367594203482d1244a4c52dfcb93cba9eb4ec9b3600fd73502f9e4f790571fd84055c765636f8f12e96702b5d6d7841ebdc17c6222c38f3a14fcfab932fe64106b9a4852e42ab11bef1a9816064ade7ccc2e3be63532b9824ff4f0bd02f98ffd0ff0acfc0c96c21dc6373b10eeb3d0287f186e5e30c9e9d0394b61aba5c31cff3dd604b2d6da1298b0d6ac306412c40d2eed96b78fa3d4d56db96d43447da02236047738605cef893fbc72d2043a2142a5111dd0320473a71795aa750c5580d2f19ad4046c371cf6db0f99cfae8bc3d8a6bbe233de5db4c97a70b510ae067a76992791fae052acbf406284de04b93c16639caad2baebf65c6a08917ae0660f690d76c81046009b36fc038e6bed981c4c085b98ccd4d9ca8cd2822086d9ff26355f333c224d2cc954f5ab64c0150caff02fdf55cf9afdc16730fd5b0cd9bd736756607341461f405ee26d6baf6af1e125696ba785611e4edf146b18699fab755fec936525a8cddb51cd0091c6a02a45c6bc87784ae2cdefcca5c47c5cf1be2574cf0d5ca68cb8be5997555942aeb0563b20bcaba7b8d037801b857e1b18b59e70e498f2cd315e3135747d13974fb88cd4011b3728e3165d874679ff8a61ff54e5c03d62b0793acf676be0756b83e6cf12c09b57ac4744691a06de66ba9dbfaf0a2dc57f206a5723d4d7c31a4d0b9557603245e5bd2ec93dcfd0cecfb3a1d414faac0a1853af6d164ae920973cf0261af91f28125ac28af302300427a1c7f6b9d2ed1e94b11595d07b23cb256cfc6c435cc4291e45941b57b341e2d1166ce4ccf7583a0f6f0e85f0bddee620313f1a637b529ec9431884835936d7b80d709ec4f5877f48ee31653af2c5afc3358c4845006cb39085269bddb4d509cfb7b9b4edc4c98d1aaab82d20fe588fee6df90ca76eadaaf9217beef15bf75771e3b0a2830fa1e3621d0098c5386a83e72e631c399b20e47fca363bf7560aa53613c23be9d94611831a0d9f614ea4d4500fe77fa2edc6b8e5b95b76f7fd8f780bc9e027d26b21bbe51d03901f31001dd0e16a5975271425f7785365e1d29cecb2c4ff6f6fa1516c316aaeaae1d14e9e1f3213b847f6724307486ac604165aec061f991af1db2a391328fb518785b2e88329cb7c626bbd96b2db5009bb6188c2913c2bd8eea0b131cb567dcc982d24d1dfa4c44eb88fc524b0a299973eb0f6f75a8bb5bf899822a4e415e9947a75eeb7e093ef9f16afd060bbf93dadf2cc0b8201e13d1b59026b2fc4b39a3a8ab7321ffd6d84c1c2a115e6e08918c19d5840417d174c4474e9aea5f5f70dd2c66762913fa77e08f54f4202b88c6b7d5836a3cf21386f902b58c3be635366f5e633c6d717941c02e4e6f70f53d95948336d559fbc1db74d428cb39ae3fbea54fe62f980ac1862b851bb49a1f06b6b5cd4480c69e8f739cfbbb43e14be7b83d714616cb766d59606cda1407ab7910d7190c992eaef828f898d1256e320e93f4b51cde267b23fc3fd1899595b07010ff3bf4244f5d918563fc86da28fa1ccd1a599d3f2b72c3b39596cff049c28ee24cd525c93cc78f9ae3d0ab1fc323cb90fd5ca1489ccba540b037b2f2795649b66c0e48a86d49648bda84c25f30b78bb721feae265e042b68fa87b4e99dbd0fad04cd47737909a4a2cd85d384ae09b109914f2209baa0147e25e9b48a84a57b7c3291ec152f03b59a8c39af0772f1c0ac60d1da81115b6316257917594dec461824effee99f124e3627fb9302535ad9c5f3ecfae05431d3732a44423115fe98db58a9f7b628b978a90c8b6b6b2bba2dd6e54824f84e778c8b90cb650c9d91163eaae464f17ee7220eaa13851b2be879c22a954f8f4eb19e323f29f37d8ec67820f45de21b51132ca2d00f81e6add175a4c011e3e8a66290bde437edf4ee1ff2cfad8c1c84e94bd1a9c8603cc559d0419e3dd2b48d5e029911f84f0d8b1959f42e1d01f9687e82a477a53eda8a37c30e8805c07cc31eeea825bdca76c78388809e2d56c951ad4c2e991dc3528b5d44991e3a7e65a5512e945ce4153fd91d2ccae7cccab9e553ee9f6aedb85c6a38cef896cf8ab94c6f753def7a93b18dba1ff15145d8cf09a4ec0a0224b89a2b69bc920a22494ae61f634531a4f82b4ad4340de720ca23fdddaa0e743727d11ee5b3fe3b0c1f69dd5e96f75bd04336d4daff47941e435ef2926c27ee901c44d7dacb563e3d3b9212658988c2b9c9c167a00b7d592ab74761befaa7df1400df549e47edb2d0f5bd72ce8d411f458a1ebe311425259affbca65ce4510bd48eb6b6e94e69ea5a7b08212284bae6b75f1b3aee766c4ef1a06084de5b2f8b251e064ba1a03fd05b2c3b1d7a3cd2727b761b0f2e954c58ee0bc6f2bdc303fba0f3ab9300437f02b1466f0d04bc6c38213d0ce3defbedcd8316b52ee30b7ddc01e4c7a853f8cf7980566d1242b97ed1d6448a30e17a7f55188995d98d51b8e367fdba1a61f538cf41f812d4f6eeb9a5a2b5be85c74db1de03d5153bd1ede229122cd10302eafea88ff781a9fb9b2fde068d8d40d886dc752b50a300902f1fbcc87699bf7cdfb4ec273eb46bacfc0901b7e6069808baea2d7120854b7a41e3ae167c7ba80ad325db53fd09916884b71ba227df4048b7aae83841e5b1a3adf4c53722f1b8609be22966abe2e8015c1442f6934705e50dc4bce1a30ec1832bd57a8198ba778bf600640205b0a969cb09f32d34708471d54f91531d8efa9b7a0b5e76f30e2f92f1e05b121942c4d1abfff3f76910cec354bd917660c4c5d7f9c911e139d5360f14bce8bc587f86b9ae2ef133031cf6c3b7e4e7824b478d3e51526de29f297365237ac94883c440dbe5ddb33eb7b725e5668c841bb78ff435e62b4bd6f431cbaab08aa362e8ac42392356965f3de764831f9505e06503ff53034b0d3510bed6084ce12ff70d6f3efb51bf7345a29ed29c31f8c1fa7839ac88970eb3d1b560f4d82da38224387048ad106f0706bed8df0e9f3a0b7cc368cacd648c89e3176bedd2dda6ff59e4cea5f5cf347ac31ec9a02d588f3c08cac002876b198996153901e84554771e7a307aeb3865bbf0abd5bb83fb2adb6cbd0b1d5b58f5b583ba7f252597d5eb5d836970a818ecf434c233bde7b46d477b5c537e02039f9087fb8ab718b739d8408f87adc7096d119f8c306364ca70dc9c577f38c1e1efa5a996709a404773bc2f61eb5de380e48e3802d97f38e9b4dd4607af7aee0b97304309e31cb8d9dbcfaad6571a0eeb915899e63323eb8c351a4fbae992fa221913ebe7397f87005fddbf3292f06ae6691b532614fb51c3339a8d478668e35cdad464199f0f2eba872b609544fc78f1db8573d42fde70bf888363c7fc45be37272dcf4dd26b3723d0a02fd2403f0ef4e6d21e10715d9ba9c9e056d40b6bd9810c5c61fdfa9ebc1c866d9874e5b6004b0510b78288984feeae8b1f4f6cced657ca64ef034357ac1d5d67881f60049c3c456d0b75d9a54d67c3e3aac938eb94c1649bf68ae97f9367305c3de87f4b519503a70e66275aac6e3508540ce46025f75c5eb5b6e4832486648be427388ff712482ac1e95c15c03718ada4a8e793e2d2ad3a879fb9ea4cd3a70151f41b0568a0e668da4a7f4306ae89b64f92ef3f684f0d44e6b955300751b2a956497a63d9bd452de49ded3644da89eb4475fc1497fea583b006185aeb39b56b0c314df0ece8356ade27f67290e10f73fc7a03568dfbee64f6a3de44989dd33fe7c2333720386d3cec972c923872f12dbf7a67018c1b496708a54c41f12bddcb6c1253beae9394d587535a4eb4609b1463019dc33972676074db8d1b2e9eb6939a49dcf4a6407fe261ba5eb8d9af1b29f167966277ae62e82169fd2395d26f5889832c038402a2c576544550a68d437eba82f4b75c66dc0d03f1167206eecd9c984b6e8b23caddfce36f459d7d86b8291d502af330bf25ae8a219fd83a468d2c6618cee85604fb1b27f50175dd4b139dea3755f8b48b9954237cb40b7b16efa6d6b121bd6a04de7ef21233b774a168882ecd4913a7e474b5cbead27c2e2bb5551e1f1f99dd74afab4e59e3ff74d441e11a2f294128a3f5f36806357de62e3312757769c250ad0e9f47d54a320ff7f4e84a9d10678561193d6179a0ffa4d909f4a954ea58eff1e7de59c13742d46e74cb542c445e658cf57c64f98ef3993074a3809598a4b2751aa83182a78c95d1f20e600bf826a60c53c910efbe770a7132713c65dcca5cffce20e1fb37d962d39f53b53e21026b4aa3349537369ac07c4d42215d83e35acdaf2877be8dba674d6583b9d7c4cce81896404429769aa8baafd4d9631dc6eac257237eaa7fe05c4d94e53df06ba2d9cb5b45a4018275e8880c7a3f0100d1122af8a297d9ee82d492b6153efddcba0896c75e921f0ae6dc25d23d8129ebbb637e1f3ab10ccf48f685c85ef40ba1399e2f8e7d1645704b230ebd1bf03de054ab72997d1cf50c4112834283f3e28831d007366397e9675bc8e3b11d54288e48b208743f2c8b6318b696ec53f3083c447fa7809c83604184ebf3335b6b8f7a58e0f32342992295749f5373150b734a4c3f677942c17c39ddffeacdea53719af3af39cf3d5fd4d318c543120b5d33af853c7604b97e40fb818e6ba20098c798ecb13445119dfab2c097c028a177e36724ed8e1153c2d3301583cbfa6ea1cd50f4fe907b65ddedbf76846c93902d0844e1c6f80fdd7e467f9339a35d9781ccba82cc20b20cb5deb48c6beec3e65bc24e1bb382ba5221149faefdb60128448964998b95274d36da8e0333b1ff816586b973d2820d2618698240564442f053bed5620fe94a1a7d1c7fa354799214cb2c82348a53f7fd7b37034a62d932c954a6c5422680745c0131786445ed7a6233d1f2f940a273d4e8033d834af7e0af2fa2a9152600f1f57aa2cf44c7664f71cc66f197074acd29436c89ec48c8fe57dfd5efa39161dabec2b482c2e5a7b459afedb093edf952af881fad1a31af20dbec12e12b106269bc39354313ed48864659441ccf395a59cd17a0c9aceafe0e9de9515eb6ad279cc62963e57c6a8d8f42bdaefc098f05589f7c2cd9778c8159b2b577bf26964eb88150611788260f728faff3971cb62de1048b2c9ba88f86fb298b261478468888c6a47897523e392b8c8dbe7313fda5b6725935e7918ae31b83af54854e7115955b5d51578cce1e383eb41c79a376d36e9f2eecfb8f7c386f2cc6cae659131e2b78dd770c89811ea01a1eddf800f591e9c99eaa5a328e4399f2c58c600d79c63904dc348d5123605d38af90b8fb3503a3a08b3eb6461bac3c8dc6753d0e1e30cae9413a9f2bbfbb4b828e8f68e261b613eaef91e3f8df61dfa82cebd172958a2c2c60b15a587a289c2663cc5f2fd8178a90281e2bd4a1f045868e1cbbeff624c36888c86d660788fb70ea2e635e18f5362fcb8c5d16c348c11fc489e32072c8b3c47f8c227a223bfa252a6d439111faa229a6bb37d782141ad51c1d18ab88f886cb227b8ac9dbd3cf04400c0d9ddb703dd5d79d95d2a0029739d6ae89bdf65426c3c6ed3c617bd6fb85d696e8e2cbfaf68c9a51bb8ef2a6117b9a95ce21a1847f39bae847cc7b03dadfa05cb21f7f4240ae87363f66c1f3ad4a498ff7b5e88fe864c7f5fa1dbc9f19cda5deb1fcc42621fc8125f63f530fd55000785b77247b9d70c5f8c5e73369ba5a2e48ae94cda2ad1f85981c2170bc635930a5f1c711b009360f97b2f234cec0259123f0aada3372b0fd654e40e041a44c81f4b2f4cd6ddd40e7b0e337582e4d7ec0be6ba38fcb76626e573a84f3f278f2cda32a2467c1d1fa2f6a0c5653dcf74abdb1147ccc4bb8358e3b7f600a0d5e3f124421076bab6e2ead8b2b4e3676161ca39726259c06087496771197b8b13846e1355e148ade2347a6d150154deffe1e1e47e596642ddd59c8ebb8acf7b08f09c411f72fcf6923e2973d71012a978c66d8ae46e8c2dc2287c5a3cb73f6217eb9bc4ae282626455292c05e66e706b90f4c3f76a5f9410e93141ce470c1d9da582bab2caf2c6c6c5994f8616e96474a614588a5aceebbecdd17f17dcc7f298529330efd28cca3eb77d34eb4ba52769f427ef2c2a34142394a395023ed59174e503eb1a0d893a75959355c150c45d47deb043c89eedc24236cb3a5e4d0628ad8a9f932fa5666f80999650377e10b230ab6470cb5633ceb8967c3ff388a5ffdb9cbb7cdd82efdb3131b53656bdf34bf44589a3cabb4f332ed4c2acb06724bc18df1eda7ea6963dbd0f9b1e5ac46c58afeb5b7b06f0b26de09b8ac9f57c6d60f3e9fb6b4785e78e98fe0783ff2dcb8a790733abf6e820f927e1a931c09dae1ed6c1b4f248ed76fb9714961a9801f7702e170212adb477c85114e2dd50c7203de26989c646d8350bdad196d0a2e5365ac7dfb52a7a2f44e9f7123494d092d076349bba2b1746e7784b6845e3ec5095506d9d515f93addfce48ca3be056eda6c52473b0b36d4321392f8f33b6afe0011bbf0289696c9e80d39d6a2e5984c76e4f63470a5bbb76fa8832deed0607dd3d489e91464e467c9a16914171ae78817d502460ce3ebc50c8d877d9e2b1788d0d0e069dcf5fc8546e98e94593e53327edb5227aa5a2017c96f23e9a821296773aa47bd952009aea8abb9d920380f18184480de8245c30597cc4ab56ec76da25ff9990ae4a1282a3cbff123866f78ea419243196802407a5079c5d3c2f99b8b7bca11277a98ea4e4e948468dc52847b43fda61613938394611de68153d6fec8be1f22d00f0a566cffaba39577d03cf005ee0894f31e0dd521b49097bb413ad28e6b2156015f82a7c11b533bc4e04cf5ca86ee67ed6e8e27b60c914043621f910f17c40109e2bf3e630ca8f338fb9c483c15a6b4de6f1c71804b411ad5239198a20167be604550fa103c5724bc9dff2903a3b9dc5bb5ef83536780ef91b478a3ebf829d3211aafcbd37d93f311c7ed84b76a31a3c9f6b49adcacf88cba08ca4d1541dab4e75b6addaa343c8ac78053e55e59a621e18b6dbdf53ab6675c569839bd15ad3a92e28a9589dc5bfdd94f6c89e393247eb4f4dfb1de850d104b983a12e320cabf82f28c4c2f81f67808c3af22e4eedd8a7e519859acd3d1aa750f801f7204a6fbd6ace8ba044628865aeccd17fd75acb9e2e9789f98c1dbea94bdf45a81d42c9bf39b2a5fe9df9386e4dfbb5934e6640dc6a7da563fbfdf4483e935393299bce427299c5e211821bf3d35d01d8135f9f294983dae3e8f94574e9f56992ad1eff052277ca2624c0b8c6c8cef0e81076b2c9d6e891724ca29c2352d548c02eb37423a49c73356ee3f984605c9c74c388e371e00dec7085b0ee358a89ae6a2cc47c5b0a79017c1040d3264c422a805569bdad5c8f330c3010739ca6599cd7d4d4e84c43eea2deea61f17cf743657272392c019630c161dd294601c8067b3beba0097e86d5dd5e084d25186c01d85df166c4f0215731e10b3abe7415878720b5475197879f3544e5ecc01cadb4ebdaedb1e22c6428d07a5e0b871c611607b34d0cd33fe09ce4e5a89ee29e3f9285c5dcf6ed028f67ad8b36bf9e5fc10a8463ed7b17c66aa4fbd987193ddc4d390f9df8591eeca5e47b96db420a2bb83b37c82849940984cd43ce6111d6775289dda1e43a06e3c4da94f4bf64eeba4d7b38543e9e77706c3f9a33d7cd341a736533cb485dacdedb853c3b4bb5717c740ad73f18ad5756d47782cd05813014b4573899d79b8b77f3ad6cb7a62582895348b788bdf2a9a4ef48aae4b5ecc7e2c1c55cd8b82cd087c910d6a02a09ed4d5f0445afdd7ca8fb94be8b068dc4febde8ad4f5f7b67a5b361f242fd7fbde342cf2119714500de299af4a4f90326f9854df4db65f6071886d6a22333251bb924a7dae2bada0e9f20ee98839a858ea998070aa1d187e05c54a9c0f1de6509911b518b02d020ff19b4ba53e4dd9572e9549167d31f34350498603a2de0afbc82b370feaaba25a19041af3048c73cb635ae6af2e208e9622a8cc927f05b62bfb3dd4f0e1866732577467c63a70e868cd20769c3adc7d92c742fb5f0ec4060c089b08105433ebbb08352b785de23272768047427b32b80497826d23d513cf9c05e2a504c898700e30be9244f150ea433183ca8986ad87f057c25fbd6b932d2fae907228357edab77dc49ccbf9acacc9e5669b601ad8100d731160affb017eed160cfa1bb73651372bed3390024d810530eb6c3799b0ef44f53ae09f507a2052b699a74152807883a532697cb7f8548d4e44da83965fbc3562ba3fd878cfb9aeba025c40c8c6a3830744a55a0d9fb50a610d523d738356b156880fc6f5acb9a3b0db2a837c3c4b946469875cfa7882bbf6d35c630aa3ae41fbe8e47d7c5c25aa79aad1ba687b2006e3b6af94be9a5bf1ec167b766d99659e46a6cb334653e08e9264c85821a0859fa698e17cbc353a919dd2b7fbb00c023710604bc2f0e8edeea9ff7f14ea10d6178b01c36fe10cc1955df4d5fac841acaef2dbfe27efd971c0860e8169da62e49aaec6fb2d9edd828b4b4fb08275df585bfe7eef068a7787c93ea4a115120f4d49ccf19f5b6fbfb2146eecfc233f720bc73b5b422370a76125bdf7769efde9c1b966149f01f6bb706622d0257283c36133fe7a47ead61488c598817cc8aa8e3e72c2e5690aa0212bcbda8e52889155e90f0654a7e82a3570ec3a8e27202d302a71b0b51ec7e0525b202d4b0f84d696d883738c3d4f500223b2557e43751283c7a6287e546cf9133b5731f736041a9ea5e9887b2b76738c1a81aa2f8059e7b0f777b49d0b925199edf52ff3e7b0ca819c503d10d05769c5049b204811a4cb87413ba98462b45fd8fd94a06353b05a9c07fb9e079e10a027a3912b5d9af1165842c032df6bb221dd016278d82830ac4fb4e0059d3c629f1a91cd813169200d322ac62d06eb502526a9a1c81f39e38d199f2a161efa351937550923832cd2a275a982d2c0cab820497a25ad5dac7d470b5ab8920c5b128accc3d6ae23ebf051e6c11c2fa1d9f41a620ad98ac3d03836f6509bffb77ba7694a63170b55fc25feb441317285b675240f873a9e80185079df669c14790d47eb6e35835aa4275fe9314b510508df8f9ffa01dad9c55687ae8c88b3fff8f3674e5d022643bddf52b818308277e880fa18360bde14f7aca2be3bb891772eea23bffd04e084efc0f586a813bb37b70653b0e7cd818963e2e9b9d7c6179efa21b6c648a2e4df6019020dfa3a6a1f4e5798100c118fa31f12abc43c67ddb28f84054c60a73b4b25467ad245afefccdf66b0f84e34eb1edab3b8135d88ac950b15152498643f7bb71d1f740cda1fcea707e1533c7f0976c605e5f858eb0419f0f99132d0dd20b88b75f9f7520fc19a85df58e24bdf74a0f6c68cffdbba972463dd451ac2326204b70dd231658e145f0c07a571897f4921be0209195181cca760a7a57d24545d93e4d2ba37d05d4896d11d3ca5db7abb65f8663ed9bf3b3d5c481047cfc514bc8f137483e6868b0075048ff54e2b488d734c400fc3646f3958712d64b200a8ff31d7be457662c6d62398588c57ed659be7c7c0e7a456184371ade45beb2ba9f9261312dc1e71fad7c98ae62237d13851446ba63205cbff916ee6262fe0e7d952466e7c65ccc4950367137bbafd9507329081b0e19ecb888d0b3fed04a96bdf0599f5c8c5e3b35fce7ec02bbdeb477c5244dd93e9ed6e4a58ca6137a5b03369e3afa9d12217be58a292d1b2769a6819dd8a5447c4cbe5de4296e7b401e5b3550f4af0ec674a87ed5b6c553397b4c39f8ecd1693ee1bf02653360057aa77ef9b814b2430c4879ae3c938d795b33ef2773894b5c669888ae1c68fc6c2552e18fb8303be8e2c04e7ca3272a452c16fced041b3fa5a394ee7df88b8ea7f5c4397b337c3cd92d633296bcd9af5559f195a4a22cae50de919044ebdd99bca3fd621d70ec4c288bdeeb19847c783298da1d9b2e8116bb805f46e803ce2db221eecba0f525eb87d20a53d1842f954b6ae882592b67bcdb69e3d0c780e09a70e4100c5179d8fc35c02a4cdbdd149c9c08a8474fd411fae3dc9bcefd4f31f99079124857f60d1faccab69b5befee332b88f27207452f92a5f20b99a41dcb5fa371cb2b9c65e3f322f250a4e4345cf82928b19265448faa6d43f2831787209607e948926432e0ea63fc0a301a1168ad43334e067cb936415db48ea77e38ecb432ad1e338c7bc510d6d8ee3a0495674e250a037eb083a7be2906016ae85bfb147074ab2247ec813cfebe7993469de09add2cdfa9cd75680d34d3057933fc7d80498a08f1dfd65ba53e9e75ebd5ffbecde801a9c58ba9503785e64572dca1ef795d414408d1b7bbeac08eb4693c0edc0b71fcc2d3617b88006662f3e1eb66e5f455c0cc269be46b20c7f18a7574568d4873d8bfa60fe154ebe6ac63b9e8b15d308cd92ee0c65d697c9bbd4e9aa2e159c06a3e2adf89e15db283ae0256ab6a624b5ded4a92ff08d87e3844b7318e112fd0db9c20cbf8ab73ed4633d24394168aa13f3a5a3eacda4a649d6eb95ea286e67843dff3d947f0c1661821c6d8b84d5804307fba7de6fa66d579fe896d873aec07f50d1a2038cb9b2fdebc211e4d41d9d10566f7fe6b2f23e44afb9c2c07b4b1eeb39553f630a7899a82cfadabfeca0af2a86c05ff4a93d4d7fbe9991e051325039470ab3471c9750d4dd9035db4678d665f250ecfc0f0ed2318807dc3c76423beec755c14e06777e4688d52e99dded1f6f75a5c6117f41946154461f2cabd103097ffd69820a0e584c3e1e819dccfedc9e25eaae0d6d85be6d28ded13481280899d6af91d625665f9e8545b0eb21dfc3d2986b3474d8de05e01019c8b12b02ab07c27b3a83631b728df926361dc475e2799b1cf666822320cc9c87a8ee0a11eee082554c3d4fe12753c723bf80b3dc603cc11373d28c818a37b07a70ae7c79dc247395ed8f6dfc809fc7a1763414e213e9d80a6b3456f69f43488b084ef053c56b8f776bd887c7e4bd8189638d5f89df9218dece9d76d6ff13a913e9f4ef2c4667ba9cb2a6072e70ebd5c8d45dd388e907ca1241d2d34a44abb2b3ce85cc83258a9a885784933394b865cfddecb5cb9b0c5b4d26a7dccc0838c7cc7e41de4efde081222f649d6c04901213e3b04def7604f8d745041ead408cc2089c4dd876b5650736773c9983f5bc138e361f7cc7b4f24220fa278e90ddb8ffcf8a918156ce57d8f68e8d20b5ab8a363cc422c3dabafc4b3af1101decc5074fd3659b41407b63cf753fd75d545957d49fce0b1de25cd8ab5a7d2f538d1bce0b85027f54f88ca18e2b943eb9454db4eb3cbb0a774eefcf835b75c00913d2d0369d05e124372cbab07443e6e58371ed921cef87cec12946323aa57392719535979607a03f2964b42410a7bb1d9a1992ab4cbbeae991d9e3bd9bce3ff66f003a692fc9cd90ef7c3c6fa544ba8f2c21d9575d59a1654864d9544339864d29232b0feb77ea1d1e266b5b38e6e7c2705afa33e4f77b56271adec09cd3e7958f59578e9202943d3f71571cb8428bf6ae4cd7befbd6ac129e58d75b34e36dd4e371f45eae7d1b614d9cfdff73365f56c4428daebf74ffcad57c51e43e45e8c43d23343b0f98b2e03aac449b9f8bc42fa4a9ca26d0c9187e27a6348c0f3fa3d10ad40027471f23df6ad72cc6d3523433d4be01e8d495d277a1485fbfa2ded69089b01cdf2f94424635c070d68bcb7433ec8ed297f3bb03ff878f106b15eb718f4d119d3b60cf9311697f2346a7dc52c21b4446345caf470cd08f4c022a6522c3be31fcd6bbb5c898c77e155bec1ce280a3c4b59cbfef96e4a54aa416c797bd9797363b78e2fc155082230a73816b85f759a175dcd295c23ae67f0b2076b8692e6984ce53bcff8a80c3480850741842502654a18ccdef240ba550a6f9e5172b0f17664e34f5a2dfce278a4f1f339d1f5c88ce9f33ed2d19bda8b1b8ac67e2b63f590326017b496a033f5ebcfc13e595e211583b02f41e0c36ebad215e7270ad6c39a7bae602d92f6a0e01a563cd254c58e7bc66afa7fc37721c790c961f279e949856c59881ce3f4e8f2e7955fc47aac043cc097d4f485de71e52c1a4aee8766eaab6d8c4b362ce872dadaefda0dffeabf2266fa139b70a6e8635c09aff14419776434dd097bebed049a8c4419db43bfad75d2d6a362f46ae21608f25191a4e6d57d60d6af13f8f97b8da67fb3ddb8a486760a56e1cd3a8146ca1e7a5a69435617d7cfe4dc7cdd95442890192aa5c3eb62b3b7011421f40251a7e28ff7500476f6d9df7d4e43cdafb244d3b48756fdcfb422656610816c69992223ef3f8f850667d718f9158c4acfa8fae41d912404aa5dce3a8234d7c02196f256359c409e09a59c82b47f5813663278fcff05949579ec06e1b73f725677dfe196821130f57a8811f16fed40eea4184644ca0073d2b27c7f870e76f523991c3f26ae0452683ebc8088cd4cf23dadbb44287323b7c58b45e399dab2219dadef43328975a2e8d74d6e00572044ecc89b7b6d8a6f91f9534080c304101e6ffb3fcf54f7d7ad86a48a7d52daf58b33d2a0271b5abaa915cb4da5e26f10106f3befab788e06d4831ec0b3d411af1e68bb0fdbffb279ab3fb5dfe707a139c431fbd40020a912345eb5e243bd67cbbcdb32b85da85417999c96230610d684f938c8ad4d8f8e82ef9d4d8eab83f6de59258bb6afaca56dbd08e70440cc4b41ad01082f2fdef3643431fe1aaaa094361ac044ef2469990b8395df49e3bf1bd03884c8687045e37bd969c8d83a6477b67efd6af558f3288ec6e5a92b823677793d8c43bb832a3531a6cf909e8caafb6f2b40d653ed555fdb8be3ee89f32cafd575bacf4593419917c4162d621f5bb00410e220850a7ffbe3fb38ae6772eff8060222d8f779d6e75282bb987c9474bfc580965679f4bebb80a2bb5caf3a3cec9c4c4450fcf3c00a90af4bc3551017ee77d05516a33ba1e8f8501d40adda4176e1b7b8b0d543e1acb30cec32d7ca2c525bb1701db89670b508047815194d62b18024c632cad1d4bbf4b93ebf2e1646324627f808c11df0d8dae0bfffe89d02e7f9b4884a5b46832b63195e10e6d01cffa852ae4fab12d569829b3db82c1ca92cf0bd9d4a9f85175575dfea3b8dec6bf1d7a4a606e401c83beece19847569c0c4cfb18f5bd3c13c3bd6dc2dee04900d2d85ef8cbde0c3a7a1158f316d8f60999e018440876f61f1369a31ec6c594ab02088ee9445155b746c1b002c75c62646d3a94328ff3d12787e665aa90cafc7f7bb72f34e52dcf0f090f9c83e58cf076edb8a2e565502be99ab0bef7f2f0914469e5a823bd172485419daa6a3fb60ac60035fd2336b297d38bb5dac33efdb576d69e231d83257069ff3fc8e5438cad1d612d6226f1195d7a22058eb70700a140c4150f94abf5c339bf76cca46405eb6fbc5f11542223f5d64762cdb76fbae0bffb1ba00edbfca3880169ecb106ac6903c437500f2dcf905b10d834c67c14d29b51a34e3ae49987b8e49546da856ee2f182c6e891c7288fd526fd7f711aa72bec55815210c4ee5d864b6659a60c28a2f69525a6d944040920c14311d6a82d716faab92c0a4e3a04645a788ae242d20b8d1e43dba47f614aa6888f712e3b8d811179ff20667a72d3a255caa1b7148e145f8b14dd7e78fc4eb6204ec7f3e7010ac2c4f3b37b882b116e2ae249531478c403901784dcf8694aa3347a638eccec109b8ee33320676c7a952cae9320388bbc0de6d9ad48cdb524b837443796a6af6b57096e2d1b15edc127d3227390f7aaab69b1f9bba068d8f6f9409758a324fd45195588f5aaeb5f08dd7d884272084cd70ca2b1116102828fbaac5381ae5007a0807dc9211905d369518d033adc3e199bf32c8d990182a9f1fa6de48f01b6ffce11b4c60e5f31eb710f5820fda35160e36f76524062c905d49d39c706b8246ff7eb008d5ada2ab69f6ac6130f678508b1c7c78877473018226af5ba8acf340596cfe3f26811fd15ea299ff0572380539c23aa43b4e642b779dd148b67c8eaa1fc749f91df87cf533802cf48a25fc7ae4ccd0004ef821519accecdd90bd61f86cc3229b32ba3863ce8e0349120e4aa6affbdbc912519bf3442e04ede869f8fc97df4f666fb9eec454906bd25e5029e41077d03aad91ccdf2f6c261c71190ad6fdc80253dc191549f20f0d4fa697041394a4ee33e8e44c20c3548235684b7a3b68710b1dc3581e9bc261482e009ac9f8cc1b0eece4e66f2aba344bb4fdd3a1d867234bac6d2861be1886aa5ba84f85dfdf92c590c26644dd096423e98c054be35660c111e5804dd6366c835397ee4e31f95736fa4a728eb4799042324f2e56b3d7dcd803748e8a1fb540a7b6a0063bbf4c9cb847967b36a88ebd7f570dd95c4c3a898950c6b025318db0e94f8f673ab67e1d1af0a7e35760bfeb633e110836d6929a1d6674c68a774f980d102b05c4f1bb885f0150a3efee7f83b772abc83142219a3aec6b9e9955e9d72af4a61702c3e41a999baabf6fd413563610037f64966e3a97c7a4695d0db2cc777dba3688804026f17830770dad2c21de8497d21948bc7268787c94c7cbbff6dd76af24d82c894786dc647feae3ce4b3f479aa255e9a5857cb1ddf6996dae26cf06f2cf02fc0252506c398a5181390f77b17817ca48bfffbe24c6672ba5c97bab25517efc1aff52fadadac965284f0467a1ce8098172755e7ac101dd395f51e9853cdb52f0fbdc9ecfb036bbb555e45e7d966abcf8b74da810f098e5b7b83aa18d7684b43107c3005b817252ed767efda5deb4bdac396889fc0dd571bbabedea124981f67ed226fcd5bf9a9d72c785544bd2183351ce7e2eef9ea705e90efc49dc84288da570992d8cd5729c21caf34baab00d8e0b6d9c876f2ac3c7d6516ba77e3630576af94056e75ebdd9f8ea77944aa5ac6c1af7a0de07e21e96acf1330cf1063506ff4f55da4f7dc54756abf4890392350a696dbfbd1f9e742a0265c02bede337178c3ea58f2e9cd72c438100e6ca5e883ff02d0026bc9cc54ead4274bee62e1b5bd11e13dce94dc41fa1766642b7f0ad1307afbf15a0dad221726b22aca300290f1f861424f8e662144a9da46be0ec4cdc04112b5f87b4a46bc74a9306bf068c852931328961660978753d6e83079735eed6c8c7ce75bb060221d704d4a01fd55d79ba8af84a0c175ef43b29f3306fdadd6b98eda1544c063d72d6a6a9b420794d7a7c4d8964b86cbc1696712e9aacd04f1604464d5888787bda0f1d16e9214e786a5e422b55cbefb74bf99345b557525949765393e8c073b7ad7f02dcc1401259ac3142a57dcf0701cf6c13481490be70504de8ea0447d12a4b5761fc860ce4393db3bbe3ac9e2240f5bb28776e7e15eee420ab355fd3b303748e3c915ab4c93c523b2e979f133192e9cf3b48298e7f1bc3a799c6a669fc28141005783f9f28f45da3b22265972a15ee6f6c370fcdc5d5a0c782b8bdaed10eaf1828cc5a4d4e8b00f16eda0304858471ef0d6a1ebbd6bc27848894d2261f9be2307f31fa40eb7ea4e22292f666c0e58b292521996742f4d4b3a44898b5151ab24adcee283594e5c9909f7b5d27db44b4c9eefbc173c273e09b216e1608a5428bec83d8dd163f4842f54a55fcf4dd80c149570aee76aee78dd61fe0cb44084b3701ac0a0c0dc90adf4f9ee85fae4d28883d82afd64a8521893111a21d7c370d2ad80574205b7364540ea7d8c41db965a77c475455fa691830843f164cd8723be11d2f30b61061e8521387c0990533fc567bb0e9f267a079ecd745846879bda445183db28b481a9e19f7f4a1b676ce5348ab7b3bf54414c9fe9e92ef043f5e89403f38bf02300baa0222b8a3a3d32596ec0d9b12d49cd4115d20ea3d987e61fff65d9d38b52f0486cc6f30208935d5dab139b727400c912687b1e5add0ca14675dc5dcb6e854b9c9a160ce03a320ff6309f4aae525b6227272d16e9d4e7d8bef14bddbf3ea8a428321bb977b5197c7ea482a01fc552c0058efb944a081a91d2bc54b7205a14a9b1feae8a6f320a4d7fbb88380c1bdcccb242a877ce6a17ce5b363a4ed67d32525e36845a7656364dc6362ff9d665987c38e29a7fdf2ffd342e01b028dd800fb23f2ef0c5df7347608ac6c1003f8499c4fc66cdd02a224005787c8800700c2ad3ee954981ce9056e8fa61f741131b9a47a160bc99c7f7b408cd5318c03ed07f702069a174fd403a12a0bda8c591e75247115f7852e6e81800b3181d49e5ebf3f5edf630cf339fc2297238f6521906df5066547b4ef9cb144432e9d52e9dea27f28ae3d5b1a61924f16889da1e55c7d193003a7ea6bceaa8269945fcb67ad45c99725eee86a85e297eeeb1085d37329e2892a4f5b03ef4655f271d76c9379a183c7db5e5f9c55ec96e6f9a0f14dbf3fe9cec22c3d68fb9e1a1b41099558edb0503942d8e3fdc15ea0cc40ffac6bd77f086361135d2437358f611cdf8d9707e147502e943eef1a9f16f22f46857684b759ccd91f1511b3bfe609033b0ea446637ad4f1e831697f25d6ab239bf06e11fd4b355eaccadf234db8992d5d9cc9a2aaae73038f85739b88edd3815595866ef105ec2f78fd9308bed05d721082c2589ddf3b37c398acb6d2aa44e63cc0a22334a0e1dfe4e40221cca3e3b94edf4084455322874724c412fabf625fb02ee012733e2c1f6b925a341a217f834f8c668a0a0c7e6b8433029a96e190bac8ba0c0bc0b0871fa9929a270628c87932e84f54bdee8dc34c42bedd2eccb9e0c7672a2a1612d083ac10156437b21917b86586590137ef4d06dbe864b60dc8426705f00f39cc89e05991f48d2312115abaa38c7adcba27b13807804a174a2f56d72049e0578458cc1377b08a0350138a572355ab770d1d14c5621b2ce1f264218242d3151eb7878003a09cd7f2c4c70b013acb6d5ac89e4648a86568779360d8e28762241c368509a59b593033919745e0b14a1cab21db79691b99ad58e41e8904817bebb14b630779265f85ce6f339443a722043e7de688174c0bd859d122d879d9daf8e40557fefdd47b4211b70e4f059619507dd538d1f64b9f20ee7fefccdfbcec9acc0b3c3753194be5960adedc1e36e6c273b02e9b81954e9bd62b90ae3d1755c37d6c11302719c4e3e2601fd8d9bab74184d487129d92a805d36110f0d3c96cb9a009769cd31bade2bf8391435144ac2e9817e8cea4e64de52db9022d2cadba9c1a9b32f6c8b2213cdf1fb6ce34d75993ce7258ec2e5e73f63daefa357cc17fb774ccaf9dab2011d672cd552a00fb481bf6fbc4b30aad64ea36a9112dae3e2da1eb9f7c8ac4edc048bb38fa6c183375de5b857cd33bf1fc75e38d65b29f4deb305016ca8ba70a4555c4b6738781e3d0fbb86bb427f4472fb0226a96206a1413402416f018315c0cacc91f54c91dd6bf0349890413ce9f81c042fa4bd9c567b43c9dafe8b13d0e5503febd7475a9819932535ce966c9598cdd92c3aba1dae3108c7626cfcfbc94b47dae7c6e66e4672c7bb02e41dccc387e9bc676e40e0f671fbdbd9d686501d58f60fc4821c39b5c37611873d31bae95988a0425a802a9e90b8b02dd9aef718ba31aa7c231c3854bf1a33e9cc55602ccb025ba93ab375175b2af9469ee15faa3809aa0f08383211f80b80b69246f395aaf108fa426decb8f2786b91912dbdfe508f565aac5ea0cbf83147a0060b0c53d14a71158574878c4327d035b585dde05f45b56cce49d82b88948e23ecc1752aa70daf66affa66918cb5935a03727a8eb4f64821a9304f20798eabf45222d4959e86007efe2d52a1da2495bcec90f33baf99cadeacb5de3a6a75039b6fe6a2e55b633148a4b387f069ac5030c4cab6ff425757c4b45e499f5231bf4fd5e378c52a85d8c3685a5b29f4a44c208a24b4eeadb720864020326d46e8f00c5286c785ea0198e7a63654a3d7bbc65aed090337477b95434c499d9425bc2e5daa46ff1e812418d0bb93c29d0adf78c3082893ee528e05cb4925150aeb49218f8fedc95f7890ae9bde089780f91b4829a866302077218b88c38017e9fb4736748c6bc789b22180b713671e84690998b4e4cac95e3aca40a49c42175648d0725fa6f4d149b0fd6e9619c1919b743f70f656d21191d839ebff10a53d76ae4891bfdd35b9d9f152908eff6f83e9ef85a4b7d21111894750dc56f21f02171500a93b3ad2b391b0e6d4c62af3054ef34f16b5cc74a6428574d44fae4b34868de76f4961df0d78b68c348c632fa68762cb84bab619f4f72d0c49013736d50db9076d3b828d4b5b4a5b1ce257223e5a84a822d3e15f2646cdbebc647afc4dbf6d91369983693c4e6d90fe8d5639bcca8aec82795add8022849a2d5f4c10edcd62337c9fb92a17f762f478f937e0e5912aa4d27af18cc79d13dd6ebe09332d89449f15c5beee4ec0b64e0c04f41937a03458fb3dce7e88f7aae7a8449559d7bad1d966bf5dcfccb8f4a62c07dad66116db909dffad03f8c5ce8cd8a62fa465fb8e3a6bcce561b36174780aa98c6b8f225f6490d622fb62b850bf050f2b8c63e19d48c9cbc366d3055d398ae5e17890a681dd078df8076212c8bc952d48c770b469d23ce13bf12f3c7fe8389f12b932c5805c2a243e6f00441ae41ffb1b4ac8f79dd1333bf12a8e60de7b11ba5154b66f9b96d166ba86bcf1b11c5012e33f6932eaafd3450ba5d9a8c469934c6e9e9e374f79b2a2aae234b9c241cc6135075b88b0d73391221a134dae375ed0c408abaefb3b2aa2f08fd156fa99130da174174fc81c2aa49185520281c572dbfb854294092a791c567c319a13969c4edd6daec8f78915f8e539af843637e30c172bc23b470c24052a2fa9b24bfa5b2c3a1b2975ad6466ba0eb27f5a1be0d2df393cb36c3da2fdc9f333f476dfa1f8bacd0bbd7037445a12dda33594a46066f44c37f1bf69563b73ab836d0d200ed89ba7c1109dd9ef654bd82eba671a89685d5b1368886154bfbaa721018fcb614bbd405abac5b95a4205f277c99f9a7b95b5c8c2a133a0650f0e8c995ee2e58986e3d8e20a6940e25bdc870ab2717982456be8bfe37c3c72a962ec6cad502f7c8b6677f7fbd62b2533446eaff10e0e485d07d675bd283ea847334971e699ff6edeaf4032fd7369c5cf83e8579b79089139429dc9b9fe4b66bc7fa0e2c4a618d3b681888e4932cded6a91915da47f19a6921762c899995a592867b230ab57a46190b6d41a84ae2fcae96f7d27d725fbbb8e7099b273cf3e665ce046e2c1ee783b81a7da7e98ebf6fe13b18d8c336a8a544c34ef492087ddcecb786add37bd3f6faa0daf4a3b4c9230554b4a806830ba8325dcc02ebd6c19d7cb4d2440e1d6f26a968aba69204e2f9a53cc7a524ab7924a846a81850c966733adea5b84830f3f1f81bf90276924d466fbc8c9898f7580f39e9e98aeff1f55f6ee65a336e5b9104643deb8f67e7b2522674702d22cfe772a6a6093120fef191a58b4b049907e465cef44d973ef24dda7484cb74fe3c9eececc123ec8e7844f1a4c13c1c53426deafcea6da904f0f68f83321460b0d5c72da3ebe0197b747c9a2bf5ab916656abbf5bad5e1a7a3ebd956495124b593ced7ca88bc72003b47b598515771e3e7e4ce41454367faa4a43054e964470a1ca8a32232232e8809b2032ed4d24a1d55115ad7664a634910dbd6ba4cdda70301d003dcf599860f68333dbbf98019d3ad21f40aa299fd8cdc86e48d5069fceb5869a9e9ca531f8893e5e407e966fb69c34331abafd57cf68f5cd910175a47381ab1aeb9d83392513db3cfd9f52ee37eece168be83c2cbfa796f22e78e2d82aacc71bce46bf46e0b603a7e735e0ed8f14c8ec3556dd3913f262db7c00656d25d0615183fa4c3828947f29845cf8f7cfa86dd391f8e4937bc57423ccf4609476516ca65eea98337b80ae478d7e04832e4851466ae037286aba752ce12ce541973617e74344631161d40f8573673ea285748ffa5fd0782d9798756c76b8a972e390d4c42cb1835fe2472667d825d0d1d404e23b6523f60a7c7bdf82b6693bfd1a7551b2a7232ecf0adf4a9812be1d51bb2560224403dd31da063ff4c22f1e18e183654b55f692806ce64014abaca2d801ea0d5315ef2c4c33abc7f02f41f08e40023bbb6d5af41d9cff9ccfe3380dfc116b9d5fca91257b4ffacf558516d817228231d936168b21b43d519b2c97813478790344a6e8281cb80bb32ec134c759d81a3d839093d4f2d051f01daddb2e6269ddc1f2c1b94bb03df1c955d3c75bfb9631c4126c3e24c192c7799cc1bc9f8f3927095b855a0e10733b6f7a210d6b81f5d13da74f3392229e51c1f4752571e4e30f14d634c6f7092f8e3ebd038e7edb70961268d43da1871f26c39b0d98580084695e735f040de80d450248452ace3be72082cd27273685416b77aa7f60a46ae09f992d70df5e1dec2701c3a8f2803f1e238f768a54bacfb4b3f603f6969f5ddcc880ac21eb278a702f9e4d60d33e7b3ff73310d3b58383308b016850f283f80245eed903db345a7f597cac970e5d3754c86158ec03dcffeb123dd5a16ae3cd00f0d43af928917ec58d98b3e9862f86ce4a8c55524f412b24aeb6f6aeabb3d729e1feaeba0bb22830920b8fe6d948e60105c47197deb9709cbe807873576515f2bbb3f452bd997a740f6671944ab351a527a146e15c552718717a079e18b17b7690a80fa111add487a5d85aea7b6cf257f6808d6858355ee099947011850469f34bdb7cda5c35c726109a2056fbadb316c0d7d5fb10b73843a125cc63d0b8844bb93bef06aac8b24f5b3d98389bcc8ec66799597c96981f11801ee2604e7dca8411442b7f411290c527eace659db8c1b07cfa856037330d1fcc32fc85c59f86481ce379757fb52c90ffa880a5ad681400e30b95303f2524c7d4452b85911c3366e059156cfa44687aba359834acb9f1460cf3e20a05059165cfae9dc695a0784fe4eee4bcf987a192f2095c45488d5ff6bfc07f204af770db132604e5ffe61199fe98d6103c8891ad8891117a6a31d1e87328dd38e842180e696d2b2eda1cf380b60328e80d2247e038bb4b6e6f5a66d8349a5d2ad03b9d666105e1246e34e260348ffa17b010d3073f57ce2b323a68e71e81f866581ffd52c781f1ff7652a03cc22da0450eb179420bf6ebb4e67dbd1866a81d6bdbbb89c2194f8f2924bfdf3adc40296dc5f4ec720639887dc43c9dd4ee088051a6fd8fab18fbb8c0eb048525d1d7dd607a3f26c166c774ed802100667681764037bb5087615246182d271deaf2f176418028f5171459b3e399582e804b3b2ff6cb5a76d21be51b36a31a061b57a61e08cf5a3da59c89432e700d50b596bd0846402b2b8eb5c4a455a7e9816f275378ff490d2b5e39658714328015fc32f101933c8ad5c0af8c1a65432ed0408236344756cd5a79e2e1f5cc95fe623316975859b43148f07a08548714cc740beb12fc54c1950ef173b6c60464496c9a49f31ba5b446e6ad6308cb92fd1306f44ac1d86df76b0f05e2417f5bd230d25472aeaf988203d4078f374a92a9bb373f81d28a2d8afdc7b87d74cce8ad7124eae92ff9e70917ce1307053c43de525bd883a2b20507f8795249ede1b1551da1c766f2375e9b13ab6bd7f1e39a9e203acc0f7f0eb71d152ddd5cbdaa3585162abc34955758fb86dbab39d6e33d1d92ffcee9c387dc16151ca85a8374e3ee6c307efdabe049c09576f5d1ef4e067fa5e6b3ae0e42609a21f1c8f3d061a0a6a1c423218f8b350134826efbca34836dfa7ff633ec6101c65218927c0cdd465c1e12a99eaede3654552fbf2459fe797972b13578a1cad39350cc239140791f66694b6f8c2930f91caeb3953cc62f5d4d8b03b223f2a4be904a46d8c98b2a6e9be073ba20acd8412be043212edf21d9afdc6bd298061bfee2bfa7d67f2284e6fe0483324ad66363a92c72986d1b0e4d566487a194d357a3a0d1c983a114b63139a11462d8ac10c95a05dfb4949b584c8789224d5fa5820f76191b0b9749596ae354383b34d702702a17ba310faf5b1b8d0200a78cb0217b9c3e1adc3664b4a3a14efa91a8ab1b6909a80b51d7b21835f8050ba54cca087120c3c82aca8008600d3fee9d3a4c905b1d621f59425b1ac9b17184e24baabb5378c3a66c21ffa01a70ce5c791256f8ff3ee6b211ddba843aded1451d2458f5d36aa265ddb8cad5be4d1fb3a773e5bea3c8bfbb485898c79e8f71e8b65ca6d87945db84fcecd2eb2bbf277b8b45f095a8b493b14e85e5a74048df7934fbdc27216374790c3fa5c3b89ceb72ec2b39ca040ca54a7962695d1f4d8f6ac1a3f5c37a02ccd595a95b92ab78e14f772f5d1cc1a40882a037ef516cc8858eac490b9e886cb924e1045175c2690c5b3cf6bd117c302290a3c28ca710bc325be66fdf37226b3cd07f7b4d8daea594592f8c4a86e79a4437e173d10b23c4e90886f996ca740f3579c40e1d7294ebe824a8bb68a647b88f67bfbaf08576a99fe1458a102d7fc8dd9a452bc23b8abeb2ece3f5805ef64365c6286239de0bc4d7d10377769d94c901325f4db6122070275c81cbeebbe22e0f1708fd6bf5972deb434046eea3ddc02965afb5ea34d4fa7fc306f557b10c3e71dbd062c2e207c41369a3c0875ed4dd38d89a2d7ba19caca1f559ebab2e0bf9dfc4f53bbaf7f7fbe4567791cda8ca27346bc6db442961a141c146104e8386e876b6719ef4d83c831ccb297799bb61242ea19f28d3767e0d0dccff662c8fbe24882b41babcb35cb3f4facb030e1412ce90d1d3b254bc4558a01d97dcc45d0134ffcde595073811d4628e94edd7aaa9da3f93d6538a1a7a0657d786205b643839d1e9e3dafe66ca2debca5eef18c7c4514d865f34e27fd6743e6d280de1c25a72d43343b268762aecf4fc27399e0257733abee9f030b38562b5333da05395f606990b14b17e0187d0c761907044672aeefe9333ceba79a84b823c6b838e99ae261df9e6d405806cb49d2f6141abe759665094c1fd7e4cd4936a4db724d82bb67776a84f90b98417dc71dc037e9ad7d44be49358f2f6dc92809431105fa8e259d5ca0e67e75b94fc18786f04d0ba72dd00a6b086c4bbbddd033ec6c4b26be0745e32b54b9cfc7e40bc657c97f883f28c501b2c18a7c3dfa75692ea090e4548f9d35c5f9d6b49053e59f66211a1822e4e357198a16b29395463a8e9762510216e4714650259f93b065856906dbb574462efeac6fa16b0d63c00f40c875c26586c19f71ea30ba58fd9575dcbc972134f5b6bad43bc8574cd2efab3c41c3ea883204803b8ad3a9e83af61c207e7abcdc7a1f820f0c8207ffee8ee263bfa844d7acc0dcd8ed1299846b1eab3d7ad159ec3ef4f637ac0a12762a0f7903648b4fdd447cf7a12c4353300bea67d56a5c955e5d6e983058be77c9d7e235ce51440b3f4795ae0b0c070bd4aea2a26527e7c9c8339a58453d5da22f81fc2dd8ecc456b35e17453fc014fbaa4fb5f2e8d893e5336cfbd58278c625865147e8a2ac5d4238d0fba13a94a6303c6ebc4dc2c3dcc5eb8a5125c62646817376147a38eb8c62af429ca5f635d2b94ac6981becbb36e3bcd99bcfc9554ed803efe0da53e40283f9a6ac891c886ec52e5574848332a6cfca3e0f4905f172e0791594c05e15d31471a9f29ddfe11a0680d4d0ac17284089903804b93e9acd707e6d261050bf3cd9c94a8d28780cfeff9c81578e0e4c815a966d72dbf5ad74bc8843ebda6604cb632d6fd86b8b0964253742d55cbb89e14f30e12bdc7d09df5050765d709fe9217147926a734b9bed8d9a4489a57bed6e46d03b7f4a2c1ccad8cc884fdc1be56cc0039423fa701a4f85327cd67c288e10598dd1c21a343712f85b8ccebe73e0c25288d81654b4a2a2b5a8956c8417656674645eda5d8c95f9c6d65e137f5608c4044f6aae813153588036433431cce6fc94cfcaa147657af11ee885b8bb2ba93f49756964eaa912e131f8ee53e30f289ada1652693300a3a4cfb0c48aec28a40469117b322dfb182278c14a3331594a8d6df850992d620215df97fa86194bf977212d78294656522f58357d8ad40f9f05947954fd39650466ed031f009c5270187a3d41866f43c040de6f3a320d99c2d3fa05dc8c0b150d09625c088293e1bca890e5da12a26dea0fdd92f558820e94cb1a0c896128f01abbf29ac4dab97cba2322801d9d4b2c273ff577af7dca055e0beb835b1c571790598b0b010fd88f11d33c77a9195dcb67fb16a2dc15484f29eaa65686662448ed39981f314fa72bc330f2cc1300a2a6cc9e53b2ba476c34ce1cb6e22d49237294a1e15d994a54cc0c0855bf42fbbc73eda7d3e1ec1fc12a226ffadc76e092dce66822f363bb57c1d05892d759cea2afd3f57071df086bb8e91a645bb7cb72846665b0cd7aaeb694525c712b698b2cf1a0948a7323a1dc5ba673a6680995342494dbb0bd8f542cc8da9c2d20ed9732c384e2b98d45f82208f9269050b3630d1596385131826e7083cfd7ac42329943453a6fd8e9f5156b8a620ca28171662ccbfb3d21621b90023d1f1a4433fe48c0445ae09c5ccb7089482c419a6cfd03699b88b66753f1e4f0b26387364527e49916a89248ab16b9b7603540e7b8751fbc17cfe3225253b935857ecee2730fbd574775afa3143fd34a34e49b61ecb57124fb265edd761e7c9b29608e0b2fc755d327bcb6aae092d83b10e42696e99f65abc3fdab28e2d70367bb7ed4549b89a788b1289f5682374ed9b748148182617e7c438bbbc4d7f163d7bb3de5f10442cccc097c5362dfd7c9771f86c4fa521f4017fcb2d25e22d8d0da4738345d93c7ff7d7e5b4733629a433569c0df484259e8682a997bbebe47f1d29e06a0f768efed240ec1037b2507da5b95f9357bc8c7786136622e99c0c08737f9a818f5bb0a6fe73e196fd49934f74f1a3cf061bb4b83f8ba740a5e25e38bf0bcb9e99911288c0645c86f285c8950d9e7eb84a1757ec6379d7227ae6c89548891bf7db33604c33e0fd26bc1aff7cd78559e708b48073ae373240991c6496a5734eaa4705e3a9c4339c3f5874466913d0ca1c34125201cbe9b3d6ff4fc62947fde23609d881ee03b5149e0810477090c943b7cc8fb21c8c236661ab5ea42ed35cdc0011cc897dc00400954f776edd2d9d0f3f7196d7a171affe25de97c7f94e7b12d02ba6b04a78278777fced7baf2daa1edf7e7b743f7f2f95aa73eea1d4194d6951abc1846016cd801f48250b18576246e4c1134dfa6292723b4571617ab75feb949e5ecd5c0162cf6a018652fee8d9f040b6dcd7aaeb96a2669ebb3f9e6a660b8d9a4e34f079c3b1b8c9e3aa7d5c73b20a58dd9679cfd7fc7ec14fee629fcf3f951242f06149b1596f61ab9e63f750dffc83a0d069c219d01c7c0d6de025adc2e640380d0ac056a47804de2eb32e7605f4e7ea5cccdcd5379acb364ca53c797f229fd35ed7038542c0d66bb423d9c22373830e4bca513a699791b457316b821fcdee941ecbae78f7b860bf449d31329121b8fd41de751bf276588ded782c08b5ced13eb67abd44d6d61b8cc8c2a907cb47ea7f9c59158ff9de27c0cd646952bcf2f2e33c8fcd3c8f120f3204628cd3cb53b1296ede1a2c0f3b69f50550c34d0969be61bb48acf8ef6a7b48a9057079205898facfe48528fb3cdcb7b78eae76bf47aa4963f534cbb15e9821296579a2ab8b6ec20d38b1cf4e539b27dce35c1da1040f7b817c7fc69374605968f26d45ebc727b08f78e90a2a383059d406784cdafd8fef1bd85ea786b56dc1a34d962e9f0a4daca59853f6c766b8d28924acdceaf1137cd8952f42622ee63bcfcd70b1e2f6fc60ac6123bce99d19d91e5f027f7a844d880056f64a3571785777fd33ee26517c115eed2130245e467fb24a0bc8b0bfd3fe3350ce92c11168beb61b2155fe8556a3832d84e5697292a9886ed985228ecaf7a3cca7142029aaca209ba65155200e7ba46311b9e8641777fac9cbea84411be07ba9566bd9d611d19aa3524787555d0ec6a89909770229c3ef4a28571e0b3d1f76d7f08af8b88cf5fd8c954aba7a064ec667bc185ae0d9b0465686cb5b868d7d77dd7cd7be756f9a0367543f0f8834495ee0fe4d24d48f727a46094e092e39cd7253f0f2a937d2bc6e764b477f9e6bac64a63256c77ba8bf0ee76acc6ae1b397c4697edc6c29fdcf9cae40aab27f09fe79212c59bbb32daac1f8d544da65c1d1ac5f363b57fde4e9a83c06a2b80f56bae20dc9bf491f9ac649af903f9fe20dd88a0bf2ed6669b75214fd4cb44ad923b1f5fa46449fa6add7723577e36a6456360656943ae9a577c977044784318c00472fcae94646f45170bf25462f435a21fb5cbf973622eeaa0f19181a467479f57bac35f2a00ff88e3d5211b521af1a079aa6d6ec42ea07158e6033223e3717d8d98a48e46f3d648feac5fd60daa45b8a9ef8c228b592b38424130404f690802aac6ce11d93f831b5d0c6e286fd11b980b100bc0308ac3cb076e46e8f1129f18b232b35bdd5b618bee5b52c8ee4d5340bb3d592272d79ef21486e0772ed264eb946924bd7fe3c19f899583d6365acb11eeb77254edaf49e34b9d99ab971d19b1dd3dc7ffe4155f885989de8a13ad7789c92b6ebafeb4e1c20778fa526c24484f26e880019ca27bbb39bcaf68f564bb4fa36f76dc235b1c5153114dc4eb6cdd6f0ce04518758602e5bc7fba4e7aac6f67cbaa9ca4660ecf36ce4cea48f43ce0491b1b2cb9a32f15f583bb923722f7ab3fcf20933a8a4668adfd1d698d04289a3dbd1a11a5cd750220ed08b177231e3c141292e6daa89476dd62d0f08163cd7eec9337fbca137858dfa2ee619de3506deeafa475268f66406c6ddc675e3219142366c2f86766a2c7d5bb96b356bf87c29e6606b50a236e7c29ad4ca176e2671a35cc6a21ed017f810e3ee9a6d6751b0a779dc25e85ccaf29335e059579f144536eb688b819513be297c462534640c26bfdb0cae30cf1ae86cf8f9b055e7d690c5a2dcbf7ff5e255f01eabcaf3b0f901be5b2f7a52a16ef2c9626cf763df152b3e87963e3a0d26f84fb50e6387a5c4b8541a4c9a0b7bb7b024be5f2a87bc18f134a067f9abde1fba760fc5dcc1bc587a165211492ce212bc81da9f47fd91516a5c49f4c91d97d60c57e8985ae57edf08fa2f9fc41d6918b1e3daac5fb3633f1712139532b02586dc2afacc482b3ca188dd3bc6a6552d4f2ad4116967cc089032d23243d9d7215f0aeb227b344297525400517aa2e3a564cbe1edf5991edeabdebf8372fcda01cc7fd798036dc8df980887267cc2e8c1fe151cf691fbb34815151f17fb7b55a1b607f32e7efbd33ccfc8f9677b031b57434299d689164c084630dc547472b717886f85a95f486ba75636c35d336a43e06ebef17c8e5bd959f49305aca3c5c4dedc2e9922c5db0db5fab2b5254484c18b144ac24402a702eae9ca4bd3e086144927fa7d7e17012a32354e837bca98039ae1da2c340f4da197d66c849991769248ba3145f0f8baa58c5a2c4511f8ab120cfe99554898b64606c9412c461f80fd84f613488eae60590ef94df7772edf05a26452e6d15709b2003764df89078e6ac293f6a0f6777291e7f45cfa975ea58b29cc998de1bc8d5cabbf95e0feeaa7c0974090ae0387ae8e092b8c91b9aeb9661cfcd679c45985ef8611969639bbe63a7512899590893405d1a4a5651da9c4ea8ea609e190f5ecca429e0e09696a6de9fa7f1dba4df7919e80a61a02257522826e21e17dc292357e5f06916987be3e309fdf9c4aa595e5768b2248580bdd4a2c1099400be7fc5754a16639881a2a7b46a5a4f1b4afe3e49eaf5b293a2d22f2f80e96c8cc5aafc6c552f1c05b84cc4bb763d42e2b38607299e0bf61e2e1e1178c7af05e041527aa00577d307ce3fb81e3da6d5325d1db9fe20146de6be38cdfa3558af77d84f183670cf5edab83fabc7e9bbd11def8486c6471d84d5647333c89646b11047c0acd12ffce9248deb9b90ffdd76dd64dbc48006296570607a72fa14b1875eb2e5b644a6bfad4db2acd4a71a4b3734fd38e740b06f6c44318379be0fd3ec2863d6caa0f90e9ce8d7fed58545a9e1ad045d48ccd8911cdbb1585664f7b1244aed19cf793d1a31eac81b136bc3106a9a57f973f03dea84d7c77370f8cdfef5441cb70b2bdab09a72ba65a8481fed0905ced8eef5d52a2057c5b8a8a49c026539ffcc7aba774b4391f02dadace1bbcc949123b39010014d411de00c0ccdbfec92f77108f21ef1b1343ab6e77a3827e24031da1b6060420967902b9ca6e1755fbd8e7c5242badebdd75a87f2b5330a7eee58b1313fa892d7d542b249d1cce69678803d0dd7e42b2e5377293e606dd71848ee1ba7c5da6489e25232699d96eba49b103929e0447543c2f03874a38020c1b6169d0c52301b30ad4b4dc2c3a6b0043c732bd085c29edd8a77866dc38310423060cbd133650eff82ed4918ae875af91c388389357d107220d43898eaab9dd1fe7338ecef2a1d16464569a2022118d4ba357af977e1259e874e6d39206a002b7b4c1729fa8775e14883a238c386d3b04e707991d89ee6592124b419e17e48d05df1032b11bb0821e13822f601197d12d16e5cb92e9a7bf1cc09d15097c17a801210ccf110542eee762994840a6f6da4937faecd13fa4bf9d7dc05c812a4470c9f351c90893c69b093450a37c851d58b258fe4ecfe21eed2eeb4a9657e822ab461669ae71e5d3cebb2e62bb934ee59a5b0b5112055eab7679d01ab1c7d1a1b27b0c05edae8f27932f578fa7bb39de1771e406983ff08769a69774b802d6ba5f239c5a1c951ba106b89c44a8db8f0d8718fc059abb0bc0901ecdb3d4273a9ae80a528429c3850cf8c34dd4b22c2dfcedf771327a9fd51e2659a48b81cd1415edb1fcf61c38bdbca46f9e3efb0d04156d54e4aa9ab9aaf1bef373d71b36d06f2b4a2e066a9b29f69ee5278abe789b53eac0f914d115989a1e7133fb28cdae749725bf78fa98202927dd65accfe48b42f35cdaf9466ce2f2d84704d4f91442dacdfe4a2d68e670fc81433702a95d024a7095b53259a47e7dee5ca6388bbef2f91d4daece1603d8271585615804fe414e0332396548a69769cca1000ac63f7bd6a3028e981f898f1e55fa0c843b061e9e2b3b1d90cc7e0b655a509dd380de6d722ca8d22b41f1bc89cdb3448bf347833189ee9aa7dd67ed3e002b2afce4d0aa76dec724734500fb92ce3f795dd4afed37d987ec4143a2045acd39fa8519c6eb28e1fc74978fb0defe880bfe1b4f4cedf6851ed453bd2b4bef2bb9825f55e43bb27bcb7504c44e6a17a3b08df2b44eabf8e33819fdd7456f20ca51dd43bb0b7ab5669a1d7dbcac966690d7c27f202a5e8a76ff0265bc7154daa23c482ba1f7db354ac329403ac2cf4036569bcdf321d58ad52bdda690fd908750a9a74b25aa66cda1b5973c08cf771fa7d9fed9ec4ff1880ee87cce3880ef921398ffa832687733819429567f1661cbfeb833af126828329bd4b3e48aa8edb9365cfa35576e3d13f38ce9b99e985757a986660cfd4604114754db0b48953f2fbb2666840d713c32ec5fa0422ac195ea9e94279e38a5a29b9e0e52ac6c834a8d764cb6055cedcbe60c405ded80e14b5b5ee7e9c6c9203492c152f9b0a900aa980c767fdbeb4897deaa30f45d1d6e1e99b00286f70f2c7fadb2a5b4d318f8add26e8bfc37f9c21e35dd887c73f264a7e77e92b9978b575e9d7e50eef97ddfd6dbcbf78b4ebf4135da841ad0ec15f6f2e84531a27e48da3d57d43312a1a7035aa618d62ed4411a83488bc20f1d6b840178ef7446fbee329eb4e87f135bc072a6789db10b10960a038cd1d41db03f5847531dfa0d6dbd399861bf30e55aa34bd7bf30c9ed7b0dc1869889eb207f0cea2e972e5d426cec01531b33580111864940b2092fc0f4e3742ff0f31e0375cc7f91088aef97823f778d3e5750e5d7883be8c154b2187b5347f599bb8ff6829bf3422ff77e9e73c4ba18a60cea92b000b809dff33aab832f5e24686a7beca48fde854010b4511503e059d9e38c0c0f8cc3928a1423d2d769ebdc8eafc71bf6fd0e93d916648ab81fd2cb8aa606deb64454a6b885250d06239f918a720e80d59d25198ab5b18c21b2d67a66227a93a7a0911b83f7aa7c6228548956ecb9581a3c71b62e78ff7810535a89300f763e19d471fcab8e9b6697012161f340ada858f0a4801b0586d9592271ac332abef388c6dd08f0755db6c5ef59893d534bb73506d1801661d7198fc7bbaeffe0b94cd5ecd4302957547935807ac313cd6a8fcc0c1b3122c8b70937af2fed7725cde56a9a221d41e6086196945fa8cd95eb7f22be0d0518e57b5d968697d9314519df809b16a7f3e71a45d002b52302312f9babb0fde012728b2e08387f7823de4461652a5b5f615e439f632efcf39dbfaa3adf04ec9ba98bbe76e6e9a4e5a14af312da91720672c5f70c5a3d1b2d4a9d2677dc808482f9400b9702c2f6cdaf1e85a1800e9f140789b2d0c6caf6b922d404b21ecc50d7802a60d5ad6f9bf09b90943e57c1f732fe1e804fd73832d0bce0140c42bdfe4dc91198d751be81a6efe6611e45c535c0036f33957304d5847d8010eed7eba38de2f3292a99b27957ad450dfab6b9545035728fcf6ebc3d384084da824bf83cb4ace897be27f4e702df740c904b547a299434c7d0477e7d244de1fd38d63b43d3f2b8a667e385bab7747ac42190cbb8c547a2f08d791af1d29f7ab84384d2176e552d175dcc0e641d732190f1cc2c2853b0ca69a15b42afa47d5c121a49312ffe0460f1bc653549ed71c8c5cbe1ee82354983bbca92612d4b5c641ff723ba5c6f4c9b7105aecf39746a11807a3254ea835b94376a11054f51188f8e5b54005aa2eb8e4d9ba7e94515d64c0651a36db78780d96b07a8f1ed917b6717889eaea9ec41e6574771e47cc51cbab2a4a5d0453ff4ff86cb254ccbb9134f2b06a041429548897fb5ee2feb8e53f71d4d545275dfb7ccf6040975c4cf589b8d1f3408015b5d12c7f50061790c4b3a2828a059384c8414dba5bf7918a923c11a62e81bc2ecdc4218fa4ea625f3ed2c32978c9ae4a18ccf63c4773d85737408142381431e6f8d80c61e9edd6e87ef8678fe7b4c24ae10f3d31a80bb052d8982baf98df13bfcd8a52a9cbacbae22cabe0e488c2d5674bffaad863805052b443ce1400ed1d41fd8ae0115f0388fb10d6c666003e5e2aae94b828a92ddeb93e2e6639525928d592c0d1f0c12f4bb37fe34aab9cb968e3b84dcf2cc211409e202711c5de0e8019faaac926a14fe7149826174c700ba15c6fac7c297bc01f768fb49073d08f072d9d5f299fa33609291616d92848b84741dd2bb3357acc8cac78049c3a30862da64294392eeae6e6d4cd33398ecce7d10c61a6686216e3a8c789c757f3ce359419133d2aa580d7a91cb5c8efe81640a9c7db34f2e280385af46f320b67c348e9d2480d142b2f93086f6ff806ac7e802f4b05bcc2c49d1098cd05b1bca19483824d5523eb857a93484c4b94d83c9d7a7670196ea11801300160bc5eeb7903d19f6d231ddea07d5a1e6c450096f927984d3c85a8d5571dac472be6c62929f3c4f443b402cde6741904a97738ba6b5de12b88f9a1916e09cfa590566be6ec9b9ec91a56856b47fd7ca0e7327d452c6ec32fd949061cd3958da97cf6f89bad6ca8382985771b33a4d422ca28640cfdf7ac6634ae5b7370941586f601bbbb14f8b17ba11469025e95dfc2d01cf283d1c7e04bfd8a0547c8203fe0cd0429cd1069125af019475abc192816582c0c14e1f4655ef98ed75a1fb939cb589cfcfb18c70b9f3cb32ed08589b0b57aa4b5b908dc9c94099aae6796e8f37deccd03da2ba51bc66cadf19892c36f6be139056808e02803f1eced484f92bcce42de2dac92994f2f2c92e3fd81ca93480eb2a6db7515b864c1d9821ac5db9d5b313e28547b98359fd8964d297ecc9cd4174d5233c862a103ec194956882b1b13439f875030e1dd7683e21dc00c696a07f825382dde23f0d1ee96ea296f158451730ecf2740ee26d2112dbf49fb45ef35800b26a1a9e8076aaa7929c3158ef861fdbcb519d64be6675a1286695277a8f756bd529acf993e192c19f963e0a70ccdbf1e16fde00fc221f7cdb3acb73936bf055581b44b19f2d8f33ac486b7ce201617efc2520954788c6a6ea4742507f2655e3b97a6d8e145b53aa56ad48ca3a296c62036eed1ac538ed1a2d78ee5ba5d46350dcbbcdd88ae0140ba93e9430cac512d0de34cf4a3409ad42e4e49993f8e17c68d3042fdbae0eceeacafcb5903f15fed1ad12302425676c811685eddc7f0a4d0d03a3d96a3d55ac1384a874f2373807bf4c63816b3ca1b0abb97d0d7f6eab8fb68d95c25a107b1e058fdbe4005facecca2b792f2688438288ad5c2ea8ccee83eb1287fe023b1bc872bbe8c2861fbac37675e42f21e4f96b5586c827e7af93ffcabdd0b9c136f937c1e0adbaf8e3b7ba1b85089a6b6eaaf842276f50b00355e085a360af781ffe9e8ca0c19bece644bb64ad79c7d70bbab9f42c3ddedbe130fbe2719db90c00f1ed22f9a61b9b93dd7dd04eddee7bfcac4a0528289d247b128fba6da1a1e62e3cb006a8f09265766baa353e46093380957b7fa7150eac8fa0ae7ac166c272ba51b26e5c7e154abdb2b3387b47171f8b02c86513a9e67677320ba51bbf6ea3e58002c5b93d617148bf35d5363788208a60842b57027aebba2d094f9d304a6db44e23292a1962a54ab3c1dd295c9b5f37feb7385cb7c9563b4e0ca31812ee4a88a356ed80fe74d279992b733bff0fc77e276e6b5492dd69eb9a785f9f8045b6cc5fc1196d27278dcf1ca18f779b5e8672086593d4de87b71709fb53610804b3b329c7e5bb0dea8ad9470a7b55a602904f4a65f6be4feb373f104be6da1a7c46028666426bb517239aad77584eaa111c929c39cbfdc7eec77bb0bc9153ace3f8ec8d8d518c36aed8f89dab9ac3ad79251a9c31c00d904aa77aada861ac92c65504d457e9f5b05cc9c2471e883520c6ea5fca577458c201fa0400e7797e7fff70314ae615c713d73e3bea36bdc9c7376eb88606fe5ef8e94918c0558e89af115ec23a0a94b962e9203c78d6aa216951f8a93b5464b4825aff8e09ad6972a926b686a64c5844636e7de64eba118123b8945032e325c8b53bed589dae69d1a54418fc99f3078edb2007e3e1af8b44bb6b91d2bdfdb0801576c8434116fe907a8ba38a4b877d2fcd3996327f0c04a84ce802e5b08beba56930a653208e2f9c23677cd1140148c655f1a28e8c5e3add20b83d604f5aad1b056385abad5015dd42b04e03993e2b571f43c959e0d741729f595ee42d6443ecc905c405cc0f5e8b31a4c552aa8b9b808aca4f20188301089622c58db142ef22b485a8bc3b2fcbca7c77126fc015457dfc2599a80ef0b65850f794b921b76476f53dd962915eb299e7066a1012e486f6fa13b193d3a5708e3a4132da7d454cc3eb67e2eb36257c0f4cd48794a37ff1a6ff67c58dc65291e9078eca5b892fc2567c54b464390128ebf50d25abdccecdcc2d08a80eb86551b797a5cd98bfbad8089ec8233ce54fc67150d8861277c8956c536050aa31753d9812b26cde219012271c06681b7355fe9c0173ef63d8897663e01956f1479cb416fa4a1e811131ea2edc609d4e475f8799cc1b29f0280dd449bd7379e197be698d24d12001a8f04a58304044bd852aaf95d5c201acb933c5252c481be65177e45ddf8ef03e3f9d14f00013c172fc6edadf20bdc82c8b1994ed1caac26874510177b17cd2bf1b0a9e82d60cdbb6a6acfb5467a3d3b407af3fda9f0699f197c96f2b78604b026bf52ed60e793fb64a201c1f9a74fc4f4266fa895fe2ecd7ee833158d839a8e2075b83b5c610fdbaf311dcc3afe41f004d59aaf24c9eaf825a1321db3d94780fb7204c8a420709f54a86ec8294799ef977af6b24e729f838b8a86859e3630e8ecd2caec7df6fbbd210ba910458b9deef8b2f0bdcc82c8182c70308569c88004f7364c224d9374fe938b52558f235c87151dd8ce565fc27184c0952985beeabd2f3c214a7672d666d6ab196423ab44856f738a64e22a66d644d7470e2af88acddceb7257d0a75843be705e6dce604d1382a3742692d71fa939532dcf7b013683d7b3deaa8ff5c90701bc9a982b667d805ef50009eca7e1636d21ee7f3169a859c0da74c7a37b65692575e8a10157a5597921ab20ef29a316df8f433f0753d6f6735f7a6d94cb9084877b4c672dbc3456140a9df0873e25dafce8f39fbd7a2d4c041af4a624c05b9a27610af8302ee2a2e12af4148029fcf16beb8c55e2fb328862069fc4c5475e1f537dd2a3a639089ebaa9d4709de9c62424d1574365b142264893b752a5761dc3ffc1f3228de4c6b86ae4f94ebf14813c6e6073d56b8dc3dfbc6dbe16d8b5d6b2250df5349849fddd7a8b17ea4a419862bcdabe58078883814d0ac62c751b3316b6f002f219b6470a135a39081b91f80825e6e89ee392597e4a26f8b4e9c9d362c61ddfd299696b9997bd108bbef1f6b81092a182399fd1f631415e57c20ca68644e1c05935f2fd2884c9c59964941d5359611d714b7cb5dac85456df8ddbf1538d51e254f8a69d7747c2fab58252ff144a42cdba2ed9e2077318f142ec49273b95ab64f7347d76ade41da5609928914bc80a0925b2c2efb9803d03ebc80bb19419da808e538e6300db1566b048aa13971b5823b93b745c49a2c5c44adc001835609f6eb587b70526ca4232b5dfdc97ef3f37c69ca435c185de396f2816e26912893c124a181ecfdf6a34b8d10d6f9a50b3e1c8464a720d4cc062f090cb76208961630f64b9ba6e2b49df3bc07601694cc6d3f47ae9cfe9da791f5be18dfdf10c67f9335924030b64681d497eabe00d5337fbb43344e2e5a50125039eb3303b4503ebccd957ddab382105330c25b6c165a3df65b69a7dfb4b3989d1787a0c865f7c45939f016a2162177414e6b7497ab3335ea469da3779d3ccc80e9cab16d77ed17e90c91416d9f787b76ead8363a07e10fc1114315a3c6d81be6b35a135ea3b0abce6cec07dc144b5a4eb5261264468fb6f39a879f37270d3ac96d5acfa9847116df9279b635bea19fd9917b278aa7e8e1a91638dc787b1a573186f8da4c1a0c56c84b81e92eeab98ef614bc04bd0a15f7e48bf8e75cc131cb975cc8b9364a90ac837a3c165d6901ebd1080d13d7764a54dc57caced8bcb822f1c4ec41505b5a55369442a92d10233454ee25637896ed6ed3a7e29212749ebedc8912cbb47abb94ad224814203923a7d07673c1cf3642659c01d1c793b3bf7a13e53a52f33732e4f0422d65d3408c96e3080a3c84cbabe5ebbbf5fb3c895b0c0a09565c7306333d3b275c403108abebcd3e68848de97d8d9d81486ac7c9970ae09bada108bf80c40a957758a174dbe2c36709d76cca5c210ad36eae178a15d320331fcc571f1558dc6559bdb9ede4549506c85203ce2d419b84227581a695bc8fdd26d2ed4599c19607619c51e2661fce5210ea35f59779da3ce862613ead49359ab9b8d2356e8f9ffb114c3544557eedb4e257aa6714d553f715ab1f348a4d27deefc5ef5845d6115702bdfb0685689b4ba6c22bec8e4ec6842911c3afc7341213806ed8fa485d954419aaa6a34841d36bcbf6b07596c746086f4eb99b52e45d15098864cbd4f6e2811d22c8971c71d3193e6391911d642c78f7155f265ee0e4b52c8a115fbe0719df9344e1e563b74191a84131f8ca6dd722df301f4468ad98367ae84fae2d7fa1c2ed4b8f9034475cc185945004da20a625e46cb52c4e9d1ad328cfb89405c190a7073fe522340140cb03e533338b04b5f44c573fda707a4437a2cca752dc441398f7e30128845c4487b6ea10a724b15ad71efe498be9c2d803dd31db0b84ebb5b92bce8ab3bed02dfe198784a58225a969a431f943ce65164b87338d48234d13bfd8a136d802d37ff0e4be5a1a380ea11b4400ba4a8634b8190116ef75dd81b674b8e6f93111b8874f2b9b9c113fa02db0a666afaa2e7afce926ee0e620b27d2351804bb5b780dd2c2501cab3e39e971bf2d6e2db30e6bad2cecc0f7c203a3c0743740ab76d13b9c23cba8297640b76a35ba3324781c5ec7c5c50b4baf73e92036f6dc83a80c847c01b5a19d34477a6ad0c29051509102468ee4ffa9244742c995d3abef9acda9ea1f3007f41609c17ea4ba606d558e03d6d43ffa038221d5b73f3cb35af9d7dc8bf39756915e8b33619ac79c49e8d0cba4d76f02470c66fb9ef528bf3af68bb32428840c2b732d2d30ecc8c70c2b775b4c4c585afe6ad09aa90d0df7a4c77248dc1c9b746d5d4958cdabad644285d461e5daa268222a9d0a9af114d3ad24dbcc0b6334b15b4c64ed6a391b717a22560d9ea00988bc3a4245749eb40aa2ca85222e42cb246b11ef7782cf631e96717743d0ae71850870b7687a268656a0fb614ea33441a796a296422af8cc42ada4c6327687d5d66c024fc7602e781f7dfd59d6e369f030099b24cd8014263dad33f97008a5ffd4f90e1e0b45704c7522972f5c70428ee58ab8efedafd6ae446f59101745f514821f13f52d223b66e6cf97680742d7dda88e5ddc80dbc74d5f09968d8d1b57efa6f076e84731eee812b74e4b90c07132a7990eedc529c116788a2bb7fafc1f485199ff6876e58026157311ebfd4a10c27bc1f662d1f574215027a1ec841d97b2fca559ec5df7fb5d19c2ba446930e5c7de28646eaf26e4af431b420bdbc67b66f05795250843fcc9beb9266b578ed97605b64a6f1d98e9a41d259ee2b4b87bda9b8aa7cd201135ff1b68b5c37cea05bc1db9bdc5fa7bad4a739508b93db8bc2efc9ce8fbd2c2ec9a8074cd52fb8538d18fdc7832d39d3269425917e09adb57675469920ec9bd79414edc57186e58759fef8358c7247ccaaccb48265900d3d976c294472311e4ccec8259407c535971f1c7b1e167433d9d5ce347d389056dc2187b678b1fe8d9e48ace59facaa83e1976a9a7b7d9fb9f2661327283002cd8067cb6ed4549add959ec4daef8c1c81f0a9327b72665582ab69a21a3dd48caaf8fbd9758426f80dcd3024545352cdf7b1807ad259c052903f08769264bd0ccb6b8329975b2a14c6c906f7250ae8e83fbc85c5298292a31154b3c80437cdafe3ed383479aa97a418ae261d633e3e44ce5d52c203806061d5594a65fa3e585cd9fa59655919ff6fcb2afc5067a5a6d70a5ae3067a20b71a04569275e453be0b6cbe54853edf1dce72fefc16ad41c86bdf8f62418c43658611fbe7713d5fa0ad707c0fa90a45eb886933287f7de37998843037c45f22bbe8f545cdf83b8e16f450558e9f9008a5fc174186e48f83a19575d61e038edaf4b4d825dbb0b1b740534204059efbd7e0d633bd6652c00bc8d5ea24c87c6fe2c704644b254c58e79a3025502916ea5260a5516b7b20238d5af286c3953c80f31121fc99d06639b7b67b88f99a30b1dd2e2550299fc80d1a296ee2a4dc6ea63efcf947837b5b7b64a299556f70a8bdab6322f1e6cadbcf1c6f37c39e4c435a6bdcf7876eb9367b079ffac748012246769fbab67b79f910fe45fb32d0c28fb139420e34ff93b7b8fdfd3bf358d11b62f6a8dd162131dc09d26b7f0d7072015df93aa41aaf412cf3d1708bff8eb757a9f96001d1bad2c5ce2b985fe5bcd669e537caf245e44019922002ab35a599efd29b33cc764c83168b64e844dce87428ee835dbea01a5787efa3db8f3ff0d856838e991514239dab4a99b2495881558e22549e4ae8aa6caf4d0b5f6e20d303a65a544e1dcd8e95c60b0d82d28f9894d403665bc18542bcfe5fb14d39fbb5d2e28d233550d6c57088f1043699008aa3c390ddb50f491ecdad25f49d95ffc264d68660caa7c70142137c09c5e435172f5984622dbafe8f405f00f0638632a8fe74f7c8606fde144101ac4a920824d91106b4653c123ac22c2f19244d5b4c5916eb0503d642eb123e2446ab329b64fe7d19facae06460eabc186b2bc7228ce99fd028f3188284a7e14b26b0848dd910ddb7ae2134cab59962db8c06ee248fc06b5fff7478b3bec36b5e619779ad6e8cdad35638a60f72d3f2caaab1e4b2821aee4d570c7f208c9c1d0a4bed79ca2b0a6fe7f64bb619f96d4b7760dd27c444159064f80dc5877a7a9300d3d8044e85649d7c7ae776c9fbedbc41ca35555f192458866de17a542150a6acad4d02c51811e8973c82ddd05f6aab8bd3ab834fb64a0672002edd42a08183c1fa1a7d38e2dc06f7712752076b8ee2fa336cb817316119ba8883454032e973ef20eebe51a517d83f117891305662515c737a83ed9b4304d05e8aae5241161e0300e059c046fd7bbb41dc7f4106a2307d85f29ad0f8a0ae7e51e6e1b04a5e4b5233462265d520542eef130e4f69d910ff4df6d03d5df9eea58fa855feec4a1178e5df429159c73734e17ecf3c7cf69a993365730ab82629d7219568c2fadae10b3a0af4c5d1b3db45faac4c85f777c175f940fb0641abe822e0e2e15227d359d99880cd2dbf7b811f5caa7ca7eceec0ae85c7f70c7428fa615dabdbeeb5ef3382aa48947498deab4dae625e5c9b2b299819dd6c5f76aa6b7738c98e7e807babdff6c264146780d2532fef7d7d1f21985b0a1096f9de647f224f7b56008e3ef91056be9257cbc105a24dd751784e941d0ed814daaf447abda4646f1d5995c0c273d435b0c5b1c159fd3511e3da7959da6b5a69f593d0e7ec755c68dc650751fc844110aa706b3f444b798140845ad75921cbf3c373af0613c814bad0d7ef84ab87904054144a1b724cb949ded238765036597291ab28e6914417cd8fac16f41a1cfba63ca7b261cf23ceca339b216dc244f91ac4a25279e7c75b87bfab834cf51b73cbcf41dcf175e81cd35bf04a19e041d3dd0e628f37dbe9b7566ce64cf51ccaeceae5f017a4d09fbf30419cb43430985b7e6561a3d77dae1af4d56542639a5540659d588d699469d7ee7795be1b6b80cfeffd11cd770f2227f48e8cbe38cb118b2e496a4a58aad344e570d3887b6ce856072f2928d408416f6533970d96505e42bf6b80078e37c3fecf4e7afee58a3a7935c5a866235743c31cfd5351a704252a03d90f2db1bcd7f6efe877d4983e1fead1b68afdb8fe74fe2ff2997f86f3656adea2df7eddb92b166dce58426728dad85d2fa0e7103ef4ab48c1a5315b9c9637c33ecd40682710eb1991413dd365bb57ae9464c363901459b022d3631b63d7925d00ab2d2a45d89df627241973255c6b68aba482d4e45b6825140b08264bba1b97f5bb274870fec1209695ec69dd2cb5025f29b4c53ade9d34cd538e6d531cbcc81feed7aa445404e85be7d8603beb18fecbce928cce0a7fd2de7c35eaf8409b81a2fd34e2cd72eb470759238c42b1cbd5831445c31f7647d0f54c901aa0aa1161420457e81963ea9873db46494400b96a2d10b3b70027be973d5a098165c72313de809b2b8031d892e7472c8f967a56c4bc0ff2169693b23bc8834f75271a125e47e59661ecf5a78eab4564fd1daa17b950470ad7112e126b3074c465611929460c89f82b02b46dfe4f9f895c9750dc107dfc375d05dade60311f2452a90939489b2c3bda1f1cc456d4c4782e6df63f3ec2dc68143f0b93dbdc0b6da6dddd56a3d618554d890909b7405e36d000137c9d5e1697b7a4d494ed658d00ecfe28150dd6ac5f76fd39572129eb55942c8ded81382f8d79b42a08ea5995c0e96320f26cd24c70035703a56ff0f1fa4ac42ebca3ec1dc90bd20b25e65aa448c1d063181f7ffbfe92d6d5a3319c65fc591015377b0217bbe6ec72940b991856b518cf4f249f545c10d52cfb9e41c20a819d197ca0baaca622e7f99b1233edf7e3288eabc32026fcfc02ab3ba0573374ec0be5bfdafa99ff5f2a3db3c8b1e2caf583f766d29b5b3ebe45911cac6c91494d56f20be458ddad0a11fee7fbe4ae3de6cb89b0426cae6124d3befd596f56a0ffcc72a6a37c3ec6e9ab4d2d6ed3b876faa49e75327d7d3a48096d6f7865e0238addfc45735b0658a2d183ed42a15036466774845ad08575139e14b81cc50d243b34a5881b1b379911ddd1fe6ee7b38b98322fa953ceeff24e551da2644ddc361adae1a96643cb58c252e4d5a960040b4fd06d25bde56915529c29f38ea49c04890a94692c7ec4d8c6f58d876e1161e94618a915ca13df0665961820a6112ed6223081b869bcfc3eb1e26df80749eee4a50da11d814c6530101377a096f783737814c1a20619cc43fc608da5b56fbc8a0005b65e7ce48c8596075987e7ea491159b8444e4e30b838eee13b6e274bede68ba6548fce76f575ee89bb6ab1d568374b47045b7a93cf48695c7433b1ede963f5d577b5d7d6367efc069f7c07d24f0e0e3f9d0898527a5c7aaaac42b887ea79edaeedfb53106235042a08325f54e35db94f8a77d08241aea93b5a1e94a4a70f2b6fb73eda741fd9f7d952cb17f1d017f074bffd20a7deaf3a78c94efe15a17c28b5c838c0a63a19fb496debf38d1855dd03b434a26150a03b48acd282cb12aea864dabda8587e23bdc1a0d7be424ea835538716b3b1bf3867a9be025ef3dc85feb0689c4cb187c5922c58250675d194253d78151eccea11c2de6821f537a8ef08dab2d549059b52463373f514dea54e85a2f9d2d2155942ff74763426490d7f95687b1310d023ab8b3b44c1e4396295c4c7d13b3849c40d6739ea71e92130120c59d803280ecb946d793b71c9b47aa17e21a54020552b2fc33e2d81c3049c2a46b883a77a9d12113ca8111e5cc5012e027c55c7657e542d43c114889f800d3196da53ff94f157f6b3c942a46f0503143fb325bed709d9dab85e9351e86fd64d3059645b2b9a2e08a0e2ceabd45a442b591fb7ac20dbd81c67c7347f4d8ec31ac010d8db936d9c6bed7a771fead6412fbf1cc19b42bb7f488805c1168d5f01f6342ed92cb9588f46c62e6f2f02dfa916677f2db5e8f73d64d6821c4d2c2b7be183fb856b2adfdb29e2e99e4aa713b3e4e522b5bcb40a3098dfa0843ebce241f39804c90edd71edb86ed667ef5471ef91106d169c90725a28975ee2f448888c76c23f46ecb6f98351005dea65a1ff838f2ea4d2479f679cb9c08dcb5a26369c60159c3bbdb561904e21237bd25924eaff8abe34a6fde49595658751cd939dc259cea467948739fc57062e7e869d837c933c7c19d57d7f73318fe316e67c56c41e3ad825a282dd487a17703d9ea504bab90136c35d5bc4613860768bb632796c04f1140ab50f378573e89711db8fc218bb1367111a6ac0d391f7226c41264cb373498ac8385b4e3a1fa01ec8366026788382b7157bc8bfc1d9cb5df1229e40fb29856486128678b990effd322162c786721c373fc147e70423639e4d1e3f21fa58776247fae85a4ef80d6d3fbde6996cfee218fd290735895d4d9ace507402912f9b57187398acd740e8b5160d14aa6eea13cde34fa9729233367f5155d6013d59ee55e78a677cb723f59b181728680a4ad60c7cbaedde3fe8027a74f6a4c5864736c47d6475356d1a22f68d78076d29758ad92231a7e26979b5293490fde6c8312c2318549a5f5575730de44d7998ed64b97500f4b7354e90295fd151759b9a991f69de36dfcec9e033221297911ede35d64101273fdc844de8ff66a06de2120c42aa4006d6738811d4067c22c25fc5504b166480c1e1c90ed5686ab37f81e1795136307c0fd9821ea18618f8cbdc06438ed438cb71d77420ff3a6fbcd116637687abe390c57b1d4efae5c9823e9e60c05dd1acda106f98217e10ee927fa216f3fbd6d14b2113282aba737cafb5b02a8671757d664282b201192cb724167bbfdba4e5a763e4d164f3bdf21cd00e75e1ca68623fee4958551a5eaab79e4713100e7334ee59c2ff0a258e42f01bd0a6106c0ec8076a2a5037553c27ae39d1202003085f249f36245da6b78bd8a4161767d2a5bac3a5273c83a566609fb2caca246c6f11dbd0091fb37bc12a0987d2d965698bbd5d2575ed3f08f180ad7898388f72d3a7340b2efd4e7be5e294ee4d651062b482668e68ac4e09b8bbad1ae3ec132b8b44f7c61b0fc2350b9f9fa036575840a1117e3245db1f12e685e5b086a1bc227cb09ddda8da3cf31b6a28a9c0838d30c7a170eae02090046cc89b1cdf7de12d27a7fa9d944ac18839b1956d691fc0bc8bb83f62ae9889d3cc83b458cb9157e23d5f4ec211668f204e4f9c075f8a113245eeb059345412bcbe0c8d9dee863218c7f424ec148637be7bf974c4bd5635843c5a78dd28da97f178d95a6a0a070ca8034542e49a241a08c8fe20aabe64a3b64a1c2be35fbc48a77bba005ec62deb66941f7a705f3aa8d246a179b698f2d072f7c2c48fb1057aa414bde78db91d32a0f07f94a4e8a47c3489b431ab8554097be314315df0e28a00a92611053f61220527c95ac0ebfccd9c22097b13b62360f946ea8e6427c595cfdd9577b0f3da48fc5a935278e68194e7c2c87ace805f246903968bfd7a6ca0d8ddbd24dd7760c180b2d7e634f6462e32ca6c0407c2fc5cbff686f60501b8d2a9e496345f2941602acb8ad8499146f6ebda9ea71ebf64199c027524cb22d696267498396f9f12be685914b12dedce51b7d0239bbc0159beb8a76620d507472adb7f3d08cabc83c74c81126f9b7a7a88337b5ce682d6a94cd70a916b8544bace802d31808acba3820f026a13db161411bf279f0ca86780344bae6bfe30d52beb2926a30a0024a17b51fd15439567a5ed9973707ad02e3df385eaa9093ceeab87a7dada079b6617010b9a8fb7d5e695f1c228f72bac9f6e3877a45f3c95abce9f2918420151fcaa4881b54b1b7dc27f125de522bbbe120bdce575930c04833c059394cdfa360b796bffc14812878b0babd460936d20472cce2b75f65fca9fdc14a6f569faa113af2e3e6394497ab8619cd896de5273623770e6821cbbf9b8e8f095266a0fd36cd05a305a8d0cbe62eee053aedeca9c70c077852414c87139cf8787a345a5f9acb2a4d915b77f238b078e6dc2b43cb8f2d1b5494b16b9859a420303fee064cfff4bdeed5e0d280db1b45acfd7fd46d4126a8c570397bd42864b35f42b4fdbbe0eda75f0ad8e5758eff27082e72056033bf888d52f5214c585f29792e1bdde631be758be979890f38f14aa5e544051868609eeb70d4324d485c1cca51ab855113520174460d2c4fa30a49d58168f09651998153161ad3e409e7ab7ddd61e4b08cfaa9b0a171dfe789685bf3be03c39da09cc2d6f9def00f5dcff1b5e82e8d6b23eb1c6c1d97b76f4fac9550e5701b9e69beb966968d09142fa686affc7525c494bbad220b0479eef47b32bb8bbecc100dfae74fed6540ba37441621db919ef611e83ea3b4539723d5fdeff24130411c9c6de790abfbc466b1450449644d40d21b51ba14f0b0831dab617c9cadbcacb4e5dbebee3bb68946ed86205bfe6a839a82ba1902855d4bfc3d57f285a48d0fa0f329d3e9e9514a0db2ac6b40a41cbc381e4dffae663086f9cd94654e9782080882e1c5f1db5de2fde89debdacd8d94088a14de364e13950f08527fc22fac7783e7b1678055bcf3361a04903fb85957c98e80b2384d8330dad6cd2a805ed4f0c1f6ec97f76328dd7d9ed1269830110a7eece54a118812478ae0c751b333f2fd429e07c267d3aa00023ab7609fe8b85746e5fb1fe664e62b07e304a9fdc6b731c36d1dbe9f0a235ad208ade5e887494b7a415fbd022337159768cf8cdb22040a49b46c412838c665ff426e7967212fda928410ba4afcd4eaa88074ed17a071a2fb9cd6de0c0c9c56a363f92fe370cb3ea9b1f240c2a89f649941c44b215ec7362d8c61979414ff9c4aab11b25148f122974d4e296f5a0c798dd994c5518d86754301b7fa4bb61fbd76cbbd9142e16b9a0144509f140ea61bbcdd3d327c1060a2676da7d702a2807535c6c9aed15a75edd8f3885c8b5b8b4bc1581e4f5093bc8828c2a27c9f9d7a3506b244abd1883f3317ef6a70b8c6eb71d4d116fc6793343e78f63e88e96eb8e3871f0070205d6fbcc7e8ce9864f08c10fc270a880f0217b5af63b749aeb9b9f4a85316c157a09c4da1e3702a76ec49c098a5650d1b15e81e82a769b1e0ac52d153665fe24b63d429bdf271894f718e7fe12193de5a95dd1e0aab57d1966c2a8dd19afb4b0a8f16ed34c5d431548ade502b5f8502817960cc5a8aa8ed06413ded5cf4ce6e4a3dd936b1c40250d6f54e29161630c189e492853e5b241de6b45abe9f1efe88820f842433c646e9ee5c072ff9460d40f9aec3910d3dbb79caf7a57b143f778a128ff39ba22b52940222c747287c9b2e807afb93c6aefee0720b15458629670937bdf965ebdbb9c1f49861f7eca0d982d9ef75cdd2e3a444167df72529bfc246b65dd818b3a672944b1a388e4cf2cc45f32e1e3020b3078b1cae69ab04f5bf427933cad2f17f5b4ac688c8a7f557ff6fb4a91a417bc7a4ffe2f9e0caaa1b58e1825a7cc4f77eb434288f1ef9ee24fed5f19940cb52eb9f536e58a3187587ce1ef7268e8ba9b3a0403a125a6fe1d8da24640399614fa53c2e2c784d4ec2a524542475145dfdb3a80f4511349e17fca8eeb0bae5b168de674d26ab4f21eee09f8bc0221800033b37a08575757e8c9902c7d83a15a762f52d36496e6b69fd714ce5cc7d159800521e865e1f797ca32b846f9c2ad25bdc764175a0c33a9738647a0bd1d17d3f6e4312b347d6b4d663095014ab53f5dc5aac786faa12a77a2e9c3bb760e03572da0629cfbe9e294c51838b98ab750dbcf9574dc225c47259d9a8e8441dfe144801ec6121ba5ff41a3ce8ddf272cfdc71ab3d5e34fa58af55e0829a58a5c1677fa00a190860afc24ea29bf599f970da90338eed351f4e44242f23b29224ae7057d26396010515545f7c400301e268b1c744e35ff1a1b96e135e0751547507e23af9b08044b20c001f8fbc3c24a2a8bfb36c3fc1eb2c2f3c61a44fe093060a673a869362e8b69e30f99c815a25a20a9783b76f3e35b32413e24e1f8ac1f7141a5724382d9e056ce080101b19f8e13d80693540aa2921c228f7f44dbdbb1cf10d9d1287b5f860a6244ffa77bb1ef87af4ddcb2ffac034c109d5e544add3db43c50db7aa33459889a0317cca85767bce22b2fcb2ca6fdfc4151a8819d1e11769b95ab40cc1f356910ea9fb1e40142a756df28ca0d697d359ffb4a592646a9863d66f0ce9e18f48d5bcb7b5feb9305f3eec98351681881fa44f1bdecbe5d1a14ffecd193ef74893ab0b008e8a4125aa29e80fc8fe510ff897e1cfb89797a1afc784b5692fca0aebeff132337c2d78987c608470667098147e6439129602dc82f7b120c1e80726bf1378cef26457f9045e880800f52ddf3e6edbc8dc317061f6ad438ed6adbe88446a3d2cd6529bee7d9c45866839792ef85c2070705e71644b9ae99b8a0ae3865ef9f1dfe2bd5b5094a5b381d4ec6b3156535c68e2f958eedf05c870a906ce32a876dc659840fc1526dca0ab04f7bc53796a90481f2fbb7381c7f9f77ed7bb4520fe552105286792f56b0e44ddc84cb23e2e106cc10ff678cde108ebc7c84b98397e4bab0c5989e01f71b44c4d959b9b0f1d03a9dde2a946523a77acc9fd022b52cbbf70b961d35f44ca7e8bf90b50a0f014e456405336ae611b39f29a3ac7bed2ca47a1b3ceba406f34095d557cb63332a004a5d4bc44dec7be3740e71c66fd782c8d6d370638211960285713b33adc643e054130563f47d8f3ce32b70a11328eb6ce9524fb49b9cd8662bb1777eef372f8604d7dd8d58f820f4f9907a5db910c405c4801046f974ba971b9564609f901c9e0a73c957a9961b97e6039bb3c14f5111d500a032fed2e06c48148d6656e7da425809a9ee594f6d4144da49390db578f0993aad5926b7989fe27dde6004c6d36233e4fc4912682ba3d86d6dc982dd1b1afe0f3b2a52f89ed74551a2a7bfff9bba0b846ac3d9b2d2f1bf04ac2f7fb7c1eb110f3b9f9be5006b3cbcc5d9efcbfbdb9bb873b6c2c76104156a06eb5fca2554371f9712314e237f9b6f737d2dd54cd5ddf15d9e6540c7338669bbcc0529dc5b08535683dbb9e69b7d0eb71a51420d5d0adc7d135359909fd797df767c6bb57d514356763fe9edf155230114a2a69fb2a1a4b4929081c0481327a52dd8d2564a4872afe382222446eb6a7081690bd93d646d2b155a7d13c28e2552ebca5fbd7a3970f2f5eb219d3cf4d9a6f0500101c149c22b98f1fd8734bc7765b7fb93dbf6a4dff2301de210a7c9f90d7326d33cd772e00f77455008fb616f345069c3352294f61bd4de478776c9c27bd628493d867752f6ee1b97f4f2ad6656016505d1c1f7fc0a3f390c742c8a148ab7abc4c079f51871e7b0e74b3dc869431d7a02bd124ea6649a9c8ccd2704b6f6b04f70511b063cd7b283a6b45f49f2f20544a03e9200619f1a7253e837616e788afb02dab7db2569a942d61f00fd93777feb14c2f91408a602aa46fb6a0d32a80ccc17c03bda1a647add7e58abe44d224292f92000add645ef45e94aeeae9cf2ed2aee0127d388612282a5d30053b95648ee3ee15ae23ff7cca5baa820269a77bda882ff89bb74d7bfa2d8babdd1398ddc8235061b9df17fcf5676333cbebfeb9235e47544c805a22df27dea9b2b1cfbbd76f4bacf72d34bdc2049d5cda4a2bfe8f3a7b73964aebcfd6cc282be5db81f3a0fb8a614b9b785f02643940fc1ec77425b86fead7abdc9da286bea54b69d92c6ac712272a9317998a746befae134fd18d1fc92e3cedff604bc823a3ac3ae5cc6248e0b51d1eafcdb4fec727a309061497184d9e4b3206ad9b72c42d45058c3018a1a6a943f02fb2ddd0ad1142094b3ab4ea59595aef3973a248624446ed3e75006aa9d9ccc72788e5fbd66d2605cbe77b4dd54f15b0804933742dac55f0741af209f8297f1b891bb21f25e89c6c38ba26c9f4e1fc2d5fdc641ab9e60a20395eab9e8baa35194a37adc7fa35288e72c412a78180e2b6f9eb12003ec571ac55764a7509485bf474b643d7b35e00ca46a143727aca6fe34a795b3edd0e8bbee5aed3122c48748483b065060f0d8f9435a9dd0734c09f9d0a762107d5f3cc225806afcc144a95332081086e9a10f448e519ac375cc64177ff5e8e79d9939ec32c162af10789e83ca694a624754680cb2c699df47f5d7a50b4a58b8603b2ddf3f6f6f47f55ae293bfbf3bceaf7f83cfcdf904315f7a43f4eccb347e507cd5a896e55a17270952c079c834ae7166661f9c7db53a457fade206f9fb617a83659c7991d2995760355e6f6ca56748e84dd31719f28c1d248769a875d0f7f8f7112195af868eeaa791e096de269fb2c50d547b9593f101de67995ce5b4d800e11339ce5569fb8a4f8955995d710e2cbdd1dc346dcbcbbc42c312bdcf1b0b865925c7bf7eef1e934c0db999a705c86c937c293548be403175e393ab9053942932ba118c159e74c44d6a6d2ceb8634b168c81647b38a15ff7b7003dab953108d4570c08e6feed282c65bf11ce29bcb526854dbd62cd012d4a154a703496a22b4bfe19da0c94d37a4bd08578ca9507985cbfcdf583cdb7f1d4e1ae4982b8dc77816b39b6ce404cbddab3699adb30634fb92cdbf768b1992bb6a4183ec43af2e6aefa4fc50fe6724140e3702b6b38f60febe006d2104120b1d6e649d824d93a360038366c0a1f401767dfb4fe18c169410730111a645eeba1f6c4521f5f53d18a4a79385697511786da2ce354b02469eb8342721fe3233ce7370f1d4d2ac01526df66984f7c8a3a15a867be7a086327324241d4edf7d679444872e4d4f514292a71b20af0cbf151244af19cb7ea89d9e2bb04951f96f0acf78cc8b8b9afdd746e3f463615a05aea131d9be48b57e13710a6c24880126a04eaf15bfb348f1d2264f48a382db9d0f3fd20be963fc52affbe9a8d357f5c8f52703e93e6ac1db7a20aeefe2351cc0d42fe09c7c3c031bb71a29b9ad47103d38d9b114004fbf78626f4df3d792f8a6f0d0be15b11d22199d3e87f2856a6b1834e19e884b5020292265a01c4b4c6a85e725db7e63889e710ee179f951c4607ce55a4cd14ac970645dd41392cc1ef7916f0692e7f871dca628ff94aa83d08ff2802059c6072b4fdc8cab0fa6480b8d863ec68d6e25f06e9470798ea4e05b44626dca1e91fe10073dc31f1c25b458e77412e6fa56ab769f40bac4ac824707335a30ea00986a9a8c67798e66beb5a38d92e611609b297da14e356d2e4d8b3f54982e593bf5dce8142bf4a72c46d7ba27ebe96b554f29d679cf4e285612cb4615a6853c1883827833d6bd7e7202d5877131fc1298eeb7bf95a4cb38e539e8d18e0736fec9cd8e18ac7db9291d516168ba3523b2edb917601b0852c3512030d480988f3b908fffb7497821245cd7bcf15235e3e45119de977b38c373d5235364d7a90bd9f83d1c881352bb107ae600dbed3fa6d302a86c02a1043c152a0c7c0e6e8154e65e31d700c9cee10c33ddb5373503a49f99e74fe5b692f3b860c1d9537fb964e344fdb6e91c84c9109f93e94184a1dbc89eb1b37b0659f1bd918985399145c0639946b1305f7fbdcea0d67bafe3e5492d4bc8f166db9cd59da3c9fcd3efae7e4d23d49027a817a5bd82c40202fb740fb8d8ba3d807caaef252900e8aa679bafb545301b2179e55bd99e1d01986cfd40b74a580d003c5ff69026f4e45dd7ad58056dd91ef60756476516663679d1d1e3b27e7bbe1204415416b27af6b9028584e9394885aca4aec3e912220c4863620e592a85a07dad8af84af06daa0f0178f635c5c87e4a0b1bf8e7e485c5c566222cbe59de4ce3319ce3f7d53203a649a0b61986a26574008f02607421c517d46bb901aafd6d9da070d030b0a31c409a3af0e543f86cd99b3958a25e0cd36f490b43d1008895d92f1a866246b467d0aea1ed4e2cd45370ad58880357e0a9535ee57be32e3e0a3f2199a8046b02cd6bc37b1428f79fbd78074a193588b456908d4d563b3d0f48977d1996fcc769bf89601d588dbc7c1c6f5583b93ea2ba8a41aeb3d60517c2002dfce15d32bb43b3cf1c2ccff51eae26f3009471306e5feab6b21f04cb233e391d7e5385241455cb098bbd49fe5813012deae26ea18848ad586af84a64aaf4ad2fe743915ad6ac79931fe0988e23d1f42f8d5f2b388b4b9ef8d9ae84bd6df99f22f250f493fc463eb69f8de7a6e3850677b42884c67f54cba137dd30161c2513222d48aa0749d4bd3fbde845c9932cc3d6d56ed5b37e12a6cc6a0caf0de7cc06757c48ccd029dcd2e80a774b8fd11d75333c232c4c0f9362beab29c245545c17d5a6cbe0b75295a0f117a2d3df141ec8d3979f034f569d195a39da00c92d565ef4d7fc697d814b93dbcc4513c45da26a3e824e59ae46f423b125009fe756dd851ca086731796103b2c55a872c97ad12a0ec8f0ba8c16038213b7f4fb1cba5e3c70cb656a0ad31c51dba49e22731a1a563cbc3ae56f678ab40c3a909c1b095338b75a6ef2bb4345c61514e2d6a7af0ea21cbd2a26048eaee057ae8892e8e0c926b565dff209f221f14211316d9f73dbce12888cdc30dda72cfb35540dda0e2154811af1c5051191b011fa31e78dc93beff9e7897447141bf747415301612a27b9886c3e9918aec3ba6f3b938f329b6bba93b2db3e9c6e17bbd6948bc04a00aa4e4d387913b04bb84b71cdc1a1761685a658762e57df0beede5b573b138d631834b6229a1ac9d5a9699df60b257c2882a89fb951e10d2d12e1e8a27b727d641a1fd447417c4986d21e80bd890481e23f4c2c85b4375d6e4880c91ee44a7af18acc2e72e2569e6320af18d75d62536dd3a8eed3676c383ccc84729d0cc76494a7f710dcda2058363f438d16ce64bac5ef1c19ced92d51f6e13de6fef0cb3d94676791e14b103e3aea5f4f26525be84966a04f493d0ca6446c2cf1a116163eea7d25bc78a53556fa82d8ec4761da33500b15102c72c854562119023127ced05e67e2de7cd14f111380a269e49a6c4474a8e791ed2572dc2fbf4894199289eb7f87b19ce24ee4fd2df8f0e015c1b0f8700b89e8db856afcc2c4197348d8f276ca3d6dccbeebced8168b54d0a7f3d17c31bc8b9795df5373d6a6a8bdf190a1aa67017470ec489cb78c7021db50318911f99e215384470bbd6b889a9324eb470da9dbec1cf63c6ef614fcb6ded3c25d9f47a2bd2dfa272705bcefb2ae69ccc05d97983c4d5c970e3177e0b5f7241f96b40d57a6330c1a252b190e6ba04ca6b1ac5f7bc5c3f05bb3291f93acb8817ed6aa5c70e10c8dd7ba116a52cfa450f48d39d788faba3aa70eedc8d23bb7db49f1cfd865575aa13225e6601dbff388105b7560d3a6780fbd32d2f3e56edf879a56b77d84b0117fa31d36cb1e8d13eff0c3380b3235af81c1687fdba27541f1b6a664ba05678aff84a084c4235ed54380217804e17e1e1f7de9a2bcf359785131cbef765f072ee89384ef0850ec4af8eb8175a5f736e259c928747965791f219744913f0fdd9ede52bb894a02a3a25e4f54b08bdf0076c412372d68d82cff1384e83ad591f6f7dcf6c9d5792ef27679969af63cf09c41d3f4805b1d39e15367755083f43dd46897d4518dfae15d90d4afda49c0efa54b095e3ed6f237dd9cb39761b2a012446d0dab2880db52e91720f0c6d43c9c37945e3385ce86421c61bca6623cbe918aaea958f10c6785f015a541cb3e072a88799dd5986b8dd5c3bbda958281925f883a0bb8518c150a6d46e836f021efd05e941abd524e45743ca189ed05ad69f533490d50fca70ba5c268c1a1a4a7efd999d3bb649f480cf5eb9da9db68b5004bef424c73796f5e53e08d8ec5d5ea6a1c1b3c9d1eb367379a584350aeab0b1daa64fdde28eae221c28fead9daf7835b46bd1a3cd86303a351e59f4dd0963e032efa5e1f10f8b9230df80599e27b32d3418b274d0abacccbbcf9a5dbcab64f07988aaea273966cb71c27ca0381e90ec406fa2a8130c75851d0f5fe509f013235d41e4773db1c073c9ded21d705972b35caf048cda07dd1f6182f1af783cf877dcbe31562a38da96fe01d76bc48222c04771ccb9be803ac4553450e4b2e93ccdee813e763a793df94ba4d31e1e924bf5f50506daabe66524eae6afce0cdc2d9059c410137791347dbc19838f707afe1261014db0244839a89a69f2d26852befd9de97f289ec24d97ff579775daab307f395b547aabe71aaac819372fb7b104f31d3bb63922d8dcd2a7c135524fee389eb7ec619e67796bc30cdb4a8ebbb6ba4ddaa8b567ec38786605d474aa13af51bb0ff9cda962b51629d6c52f6a0243bedc6c52cfd7da7d7cd80e49e211961a1e814adc859ff65b0918e9829c3e30ed92e01fae2c6a35aa87b3093bff046f43210284f28c964723b3518eca7c8b1498dc1b453e48c092d0fd4ae51bc09391264251d34777a8e2458ba885c66da72a97e6732ee77293e703838f79de0ddcf6934eaa5ca7ef2fdc93899c0d26436272521e216a224e5bbaf186f31b8442544ee2762a502e335707f9ab07928b8377caee976f247e5444b567b55f3c5db2e57cdbcc18d79d93f6206472dad39be8d0363b870fd1114e7610548337fcaf1fd7f47ec9be3145f6c207dc62e89b5ee298bc06c7f57dd3deaa8e85a66df1234487300ecad0878355cc5b5986c44ad1121dbe0d56cc7103f613068d9ba887464bf7d9568e662d8f3d4c1face9add783d08000e1d6f2f7355e92afa71f77b1b757256955ba835e6651c4324e1e8c10d9a53fc5830d0f7cdd313cb686b794db12fc36431a5530b38bc66cc684b8fb2c0bd17fa101662d57996033c11d293e5474c273a4524c21ce76e6f21a9cd36a0666c634fde76e71f0f72dcc715f0196988fa50fdff5eff007708d872b5a8a458740ab116462575613cdb20310f40d193aa798c5b85e72e718e4af3d1bfe7e32231fda4b12b4787f9db75846df83e2224e5bfd41f1876d53031bd0b87f43565f6a11622d67ecca18e6f36086d5235582992f2e5d3b3a5d72c0a38a2be3e939dd09cd857727ff6dc780225da2aed0021eeadef82533b921e971b40ba61732550dcb403b95b9dc212a3e3db81b96a9c8a8500d1bbc1ae47dcc193594b4359c5c1d645aae9dc5c1cee98b8e", + "0x0cbd67418de2cc74b31707894c29cc66340ef7696dd0e001164f8bb348fb55386ea8621167b756dbe3d0784067bbbefbe83c68ad3f291903b88a3a7b8f4d81b31bf4f880ae04f670fa5298358bcf0cd3502e913b9a05a2b3f806ba9166c65c1065482d9186a468e94fe7bb7efc4c569ed0683f144bf9b5db8fd6016acd17b16ee498c6fe08954fa11e5e2dea14624c3f53aee7125687ec5e5c9d743817183d0cf3c86cc2c0022c8c08875658c1d2e336c46898d77154ed3ee1108ba66d782e50316005a52f2303109039d4e40497121296261d8e8829670dc4083f9349cb8a1f024f428a4adfb22e9fedb1be73c9329c3d27652237c6f4e3501f9842fbda426a0cc3949ff94d419400e44f96b7e564c8b3f77e815383d963f2e1fb882850ea5dba0bf67199feb000e5deb5150f578b54f41ebb5e62c5bfd2bc9123b145a84d90bc8e38097b13240b606a54eecc56b92182dac7941e3fe324e573d915207c60c185ccd28b622c586bebb476a5d31a2f1fe1ead7a2f50351a846b2dfaa58163e89cc74569a0921c5cde1f7e66e1e543d6e1c7026f68c6a2710dfcba2fae05936640c8b05869b8be8b5027087133bfda9163ed669a838bfffd15095997080f82014049b37c239238819f3e5e117cb78703cdad1071c83c6eb2260c9742254f9703b37fd807478e6f42ebbc6ef140400f748846c1c67ad0fb1647a2980ac4b8fc26b6c2bced3e015995f48cc9c7b306113e35621a6ce28172c7f2b2ed71fa93fdd9e2f25e51a6efe5a6fe835c6c92c0e79e26c0969ab1b390575a5474f73855864364fe4fe2e12949eb0d090b88dea7a6aa468185bf2e173217e40ae39624cb7af2b5ee16abf32dcef8b99106e73efcbc748ef68ab4287fa7815f3c25e263cdf860e34a86e8f2628a0b9bd770ffdd5d4d4672999b6cb51973db3dfffd404ea5fb8ce6c7cd3cfba1fe04a1f907976ca6650c245377a9535de7a5fc5789537bd8bc711e60dd4e9af9b20078033c92910efb646f33d59b65e2f9ae48aebef57707e2a03433d5ce13950c4b10be42fd97b65ca87e8a043c9aa89742cba6040109473d2226cf0cc8082476c83caf49208f68ab9695de992872d2ddc3d035c88850b6df8920cf7b5d4262c69812e42b7affe77805c91e22dc2ac0dc863b59ccd9b8e2968cb11ff371ab6631b658b7afb83257b5cf34356c51523158b42496e60f2286bc3652f99002735f94b7499f6e22690476d0a38d93b9e4036c102d7886b37b98d77eb5d4d127e9e57c802f421f32c7a73ddf4bba78a9de54edc449e816f3c756d5f2b55bfcab85bd4ca549d73a51eaf462c5f1792b582a9da7a4380cb8b07629d4ba218e3d8a7cf09fa4078f66f4b12d972aa1ff99ffd5875f2658347b7f7ddedeaee68411594ce010940cc6126851781be86a8dad4d46f2db88751654af41643cd1e4d4c6e532030428fc6c135a04992da7b09ee9302a1a69064b9d37c8a8fbb7adf91c35a7a013d87aaf6af7ce3c56b23e1a1d0b536540cb2ec2cc1b8cda126d943442984cea49f8fa9cf1bc268bed63c7e5142393b25d441bf40ace5c9f6ca59db38469b43ab0870fb2ba30ccdf7b4c5affe718be16050d8ac31c40c59107da94d85be8837b19cb492c67a5c764cff6274115add0e8812f4ee5bd9f837c105dd8a07b66b57c0fe97d3bee689222914bc37f62c1836d51d87b4c1ddb347b1d853e5db841893db2a217d1a434a691156428aa0d1420eb1e907bf89f50304dc1acb17e67b09c9762032553f9c9d59181ade3504706a9c3a34b00e7e174a5911f95a4f4eb9f360f85cd1967cd726616ae6da48990d60b8c4a4d3078d3d642e744e58cefe0c72df40263801806b303ac200adc1de39dd0b543e780e48257529fc9a54a227ed77991da56feddea85fb3f34c6a7fd4cae12b25a29a5066a0b370f649b634ba7a7e12d5cf86ff909258c2637b10fc80a95cd42722c85a4175a36a8048a332ee959d3c9f24abdf7146d4788b87f21e6bae717e7ba3f81d56cf59cb0fec3766c00203c62934aee6c2f5eb217886e726228eee81f850d240c93faf8ee92844a06e9d79db12fcc1d0a66d9a034dc51445b5d5c0b2aa1dc1f1de4d81d9ac1809bffb9ef24b71117658a52fb6febf376d023cf77ef34d178cf28197651ec5d0b033aff142c54c9b3f132d1ae68d973640f34d665686d6885241bf81704cfa887a25949586f6221d16080ca15272348e718d88c4f0fdebec1a964b79f140e111d576fa14dcc06211ef3ff89515b306dd342f0c1e229066b05de7fac2462f669be17df3086a43f15322ff0781aa7214426685fe357234d5c4354b47dc2a3449cb1837d8ade07ba95c016e3789e183775bda8909e3d268fd0221d6d06b1dd49e230c16c287e968d4492b36e7ec1696dd943f43d97b15af535d7a8bd6c1c9b64bb97d5d11173718b5ba67015c0ab14607c66a499f53f1d581e2170fc1e88c8b8d3a4815e99c26ceff7912d63df826644b2129d29046ade8e78fb68a9a457da57345d149b0ef25815cf8610418ae11351272f1b36656be3018f41d2590c89587610e003e925f4f37e79612b7dbbc09a45bab0e5ddd56ed0c59a1257c74ade64b8f56f29dfdaaed70b2c140415b9753c737c61d3737aad581257006ce3ccced8a88b2e98d2503daae41da7bf2d06a9c594bf0f84fb90dcf4fab91a1e18379782aac202ba68120e64f0df25b915787495f510a6a6a2c76940a4e72a74807f7b045aeefca894c67c4740355249c6f581c6297763eca5dfc3927246cc8492a74393216f59ecb051c205602e43c167ded2c637e3796289dd943357849599c739e7680bf13d141efa7d77c613f8cf848127de1fc5d883e4174f07f499715220ac26bb75a12ccbd92ed8a9866c1fc517df7a5191bc8763d237c0725c8c7e9f63f7aca76eac17c5b38adef44cf48b6c42c6b62f1772fab5d1f17c046de24ef8103f2179c4674214071f99dea4dd3d65349a1f7d7c4871765971d905ea49203ae6db409029bc221ae8fbb460c05e8b3642c8cbe4246ad53a9f066f6dee821a713360d7c73e7a3a8c82b4886bd0ed2ee6d11c54f535863329913269242af7209a93df9a3757fd3fa3e9e03c5b4f5aae50d990414a3e6a2874bec55195fade6708005a75e9f8a87c35c8916d8653b354b29472b3b26f238fae9ee350053cfa365383287c04d8377d1a94d3254d7d586ef4104da5b9612b5fa0f8ed6e3acb1664a0410ed45a8bb32fe589465c470ac83036d9c9a3ddbf0a7395fc4b5097c29254d9f0c3f4711d4c63943c60037d41b28612f3f988f76c931379c8d6b86d1ba80d90e38b7925147b6f410958ad2f174a3a20d01e88d0defe0c59e6b66ddd92109f7d4cbb34d08df3e628172c464e87b4212cd5a61d7c947e09a43e3b72b1fcd4e3d169f977f2a3cf04c7415bf1df2e929bd39a606f670cc754555fef02fb45ec54742b23ae8a751927778f9fee890eae032c5a5fd5bc00ad12714c90ec1002d76d300a5ea039de75bc425ddb0166a9fabbb78fc17d7d1a3294b9ed57686a8c482f08040fb5ed418799c7744ee46c59db50f85b3ebbc0ace2d29f9b703038d6177f1caece69abbd4e151b1f611c96e6d0cd930b67b515ed3c0c4e88921453c786d026137ffc65a5f8075137d1ce1d10a6a8a0654702a7a9009ac1067facd352efe914d54adee4ed1a75bcea928a57b66cf54e9c3df90c9f7d0bd14f3b2814fdf04f6b99842ff4295da482b0cf064dbe5ee452899a6231b8e30cc90d2b6b22c9831f64afe5867e4eae000db7f5fcd01df66d9bd54503c1aed9076c72d159a299d6b26cca4c311db652fb2b59b3b3a5423cc86a9d48fd8bb43f8d4d931edce55e5033b264c0f9ede6d9d77fd41d5e7a56f8416b8dc470a35d2a8ce328fea8e1899b7c037dc92f89cbe6bea6113cef6ecf970c71e9423300f6f0f3692fcd1e9e19982e2eade0fb4c8e79a7e98f8ec73d5e9688f040abf7874030204cdb21d22dcf64127ce01e3c64fcc91a35a9c02d6c8dc830074ac5f72dd0c4e4ce9eea9d4e87926518996c48d6d2414e3ffeddda39c63349d37cf3ca9de1c97c5b57071b9551bf7c8c213193605fb8878b79f5034ff8232a5d12c5896f35985fe5dfe590f9d8b233f6d94d1f17332911a9aa943bae53136a5175de660cafc439ac5e1100536aba66c0055dc96d4faedf069c6db0eb3de8153f9654734c2d24f2ea666f7b0f113b91dd339258c805db7f0dbf6adeb8aea3c83a1258f2c04be959b845e1f6aa18d53f0a746262674b5e218b3fa038749279e386fe89d1bdd35e1fc939e5794cb978170812708d51e331949cbdb30c4e360e6273cd8c8a8c4c09a848580483104e4837cfda952c61159deac6e63f56988d22a290586128dcc7ed6e31560a0c816dbc21acb3e2ddcf18006f5f5a2f410b7abef6a5066f3ed089fb214e22150798f17912b497d2f1c0c537dd9c06b38bca592926d9c50b218e1ea05a2aea6d74559e5bda0ff9fc1f7ed525c9d09d4c54dba1e8511ba014d201e385ec6d558a2ed17c9f72470040d106d51518ff3ba4149915d57423398f01ffbf64efc01a673e59bf9fe5caeac7c579cf654c0793aa596074f9208c719022471a70fdab381e3404fe0a72c4bbfcdb2463eb16a903902370169620c93edb6fb76606a5253dcea9ec29dada96106b07ba9f857c3e0de571d331312d3b9603d75f34afab4b532806b918154a6ff6ff6865348892f0412779d0a2a5441342275c6ae24ba0713ff4308ad95dcfdb68c57903f26ca180907f722e97f5e2c04c73724a6bfe2935e463daebe11c40ce015be2d7bdd2ad958ae39224f55d4032d4731cac28019c0d70aa61ab8e6d9fef86129aced8cdd79cb3f80753de780deae7e48f51be1ee9171d5c758db3520dd98f11d781ca81c3ed3b50f9808e0e1733fad979299efac706034e83a7ad67e85a0e6a5f31c7861342f4f657115e181cca3f7f4a403ce7503b73845546ed345f6ae86e1db3d98ea4781117ba27bfe22b35ce50aa34831b2447cf62186d2e97f9761bb27a05477928c79411c875541b930cfe300500be2cf240e08e371d70e156c9493b64c05d8f5be05ea495d9a26359d31c0b3d056405056f50b3b62a4e5bc54a9c1f3eacd55ea32195caf44bb1d1e0f4d327effadbc261d881f677d164bc1ced81b3d7918d744aa2eaa2608e00cfd3392509140895b673bdb6a7b52d8cf90d8b11a49dc181ff0cd9a2a4de38cca96db1716dd58bc3745558995bf13bc3121e6395d176cc641534323f927b6aea5f6bfd8e488092cfe6066ca4d1b107bea210f912671fed22408981375d85887dd4854edfffb71b17167222ec3923dfda4fee099dbf9901b03e27d36c16001b82785a48d0f767a07e6ff5a0d2dd3e613beb17ee786cff4b0ee4311af4478edb32ae98f5ea037c924c70ac56f43cfcd22c966f81f56bb1d414ac723ab2a70c2390543e8eca13a04731130b7b4c26b558b0ded04141cf2f65b4d32c54ce127550ec70b4040e77a61ead6bdbbc6ec3b84cd05fa8608cf64dfc883be84f69e11cc17f651711eabcec736bbd60f03074ef23ade3b881108a12fe44caf245bd6464d24097427f0084f02b27bf06947da07f4c7fd3b94e986416bc65b38ba4ec5acaa1beeaaf5357e50c82c62a2a1c9331394ff76119d63aceeffc838b4735cea28be178564c42472eb9b36d2c31276635a2e5f95e3d370feeeb3d6bf2a7f9189e567e3226e9f4fac14c1d2c1dad592bf14be66593c1fb7a84726d89f27cbc228a660ac0fef2e3cd745cf4e39da274f21e3307bf42a19e0f76c0277dde09bd0122c52480833655e04b69f3dd8309bb766fc50504c36bf1bdd82c9644ead2e10d7aae749bd442b3f27229a6f4e27ec40ee6918f07d1f3ecd712d534c20cbe510ca4cc846535816819925a21fe18e92bc1f547f9d557483fb6df167975176b66781c7ad1be305700d94222772ebbf6a13e25e17c1d7f17eeaaf24173c364fd308590009b0fa531bf3baba18d25be80f94241606c6b9b63d35b86eaad7f610cdfcf0c0e6b6189220688fd7c1ad30aac1fb576a304ee54549dc30d958770d98a3eba97b062f3103eaedfa42cc93020aefa1ee3ca96cfc58f4fe60701b91ca38810d2b2055f02f587bcfc8cfeeb679adc057e4fcb4a5ce827f61b67345d9d1651a8ee2ff3d696dfa2d102912086dd3693c9e3653f44be3a13f754516c2d399a6eb547dc283ca3d26bc6831a8a7546222dcce64df8772f522305342cf193aeeddcf716e6a934464d5a41f5812486a0cf7b1b3f4033f1474139bfc883aa19170e0a8226d6983a599793261fb1bbb7ccac273d5efc223400104c14015897397135b1484f6c4309b0987ae3ad9d38a1e29ea077763aaf513f3baaad98b811a7a9e096784c64a2c19d6ce8b8396145168cc796dcfdfd0650dd5b68eadb01006332c3d689d61d569e693a991ce3b9d479ee7941994fae125c3e68074a5ee6935b4adb2872e8fa0e322caf151f4b4b99211c633244fcc3a1c6797cfff34d3b7b30866b9870edbada3a976ce73e7517b08644432de4d72164f8b11798d82925ccaf86da9d5101339e58f894d9d4a458176ab54aeaa2d8fca5883ac350c1a81c20a3d2eaa0ac8cb3c40a667ce05af2a51a8cf7cb6352ec613776479323b3899bc91cde9c84ec4da0611cd693cfb797b3fb0e45548627941728716ba733807f9762665315f98e9dadc8d215c19e42e19e834310d9f89822d9682206407899863f716e26ec9013facb03c85ff578842c736c506e4d1e5773bdc48dba4070504be2df4c85c6dafc5f2e4bac58806ababaeff7490b2c2418221dad17d576d51d692948fcf8a10007b942109b720c93e1cda274442605c483817fb100690b2d1e48f61dc00dc7e01a73c38cde66224bf2dba5d12a26a210d3c5b2c215a16453bb0064696bc0a8163fdd9183c2be09778d2a46121b9640aa872ad99891de3c834ba6ebfcf8f1e2363e420d69d349e88c90c4ede679b72b4fea6d379ad9ea62aab95e1f7c9a5fa4a686a06ba9d7495fba54456d13618cedf14b216ebb8f04282c6049c36b85ad09e4f10476ad8223120e892bc83f3d5453e7e74c4df9cbe4dc5a82a82e0504ca8bb9a93e31c5ae2d4aa37016312e8d0ba91cb05ac1aeca3924960b29a084e1eddbb00519bdcfe8f51ff910c93866c73a21a0d80a53babe08f17b8cf8d903f0ba00d19ad78dde60d712bbdaf7a7eea438756c4b607dc650df80cd02929d9504474991a2e45e1707472b12fdaa6657d73860edff930bb1a0d32cfa612e002e414b038e99610ac6ced8222377f8c3d316ed0b595be00fbd0dad88dffe949be24b9007ceb60ad8877a24889675805f621ec2c1847a95d6ce8f83a954d2d9eacf4d8e5c1626733ddb4935ca49d0dcc55fde87358abfcb0eb7638d9b08f813d50d3a2309d3f747dcf54e0caf01db40173a955133ff8e367cd4447ed5d45f7288da3948b8baca3a9f99a0694849a7da9bb114e8dd8d066715a3af3dfcde7e385b9701af0fbc8409d2e57e52db929ff2b8e5c1bf8631a17c55c505acfb890ef1e3e954d2fa54ed37d4e02d5fea577afd4610b517b9110b2dbbb554e0f00b960e1c6e4486d2c1b93362bf102e46abc1a547fc7e1d61033ff31291c0ca52039436103bcb8a01bd85bf77c4f55b04a41d23f49dd1eda6fe630c7dcdd05cd75f5c253f7178814283b88b2e6d482a6957e4c8e14a833ec48e2eba361eee8754be0f512db16cee8c898d1a00a66b5ff631cc21b9170d487c1c6e34e720837c0c03b5c1c8c8469921dc36dbaae13036720609328c27f86b75873ac56e5cac3847a4591938d540a57246f2a41f129457fe2d0e8d986681d9e05f9f8caa93627cb25b601bd982bc3d4409a32368d41595c991c11b5b2c9c7f2a54102c1d33fbe56cabe0085bd5a9f7812aa7fe22e85a40606889529b60a4c7dbcc638d3b8c32215ed6d3ff712ee23079b40b550d89cc5fa85731d05d7d4e39c7ff1b59e1c761cb082a67dc7f7b01418b5fe4bce55f1bda9adbe00fdf84a7bc137fe1a426d97ec01b21247cbe2495098daae7c70c2397ff7b214d829f641f7f1ed7cace60f867e9866bcb17dc3cf18463b92528d1c85b6bca76b718587fb8b476ac98231bd7c7736b3355f7af27aa83423caa840ea31e24684404e72bd251c6f821499d1ed0f5852047b7405b253844cb1179ce8ed853cd5015a383308210e2cb8d85df8563ce29722f9d7843e0099c9dd6b27a8ead7c81e451c8971d0ce03d227d428d97618bf640561c8026f14d0bad00137e8787dddc958b776b89f6a67ccc6e1a330317bef4a7533caace584768288fd7ad2eaeed8f377ba19f7d82fce17f24bc5b77b29eb927e2efd54d01f7f5bd0c8a7d640d34cad28d6e40401cec7c54c7273b21a5d72b5b30626f1382d66ce86a89f262ee6cd7a26d7f71697edcf7ceedc4a646db6fde23f161c1de6983d3c3444363a2deac3d51c240e497d47bdf4e11649974aeb687bc9ebd596cb473359f119dc4ea41809a93148c81df110387df3e94f19edc4ec9824e302bd0a7bb5ab9d1885df19c2e4d75f54b7f813be7776cfd58d39f03ebd82d531fb1a8362330f66da8a327910f1b4a121e09f035dc6d770dcd94e5cd9a8396311d3d6f2405a359b3920cd661dc888ebbd63c1820b0ea8dffdf930c36fe6ef79f1883fa7c3991fd83929fca4cee810f68d996c314903883ffd9cbd6c27d78bdddb9948bd6faca6787fef4d882a20fcd8ed2e96552855272e4989569346e2272c74c206f246dbf55fcf38147c16e872755acf95339faacc7121245fb006b993703d56340306b60c0f51bae896b19889b06d6fa7f67b1acff753fdc2d8b340cf840f62b09f9e033e0b8dc0243fbdfdcf7d37946c29bd3920232b7d6d29ab199444e6c1fbe7cec0b394612967dfc5ddc4b9bdd766be50d2bf6a672bcf430a3acc8f746dbd7ef81ce7ac677a14abfd445cd4ac7a80a87bd241485e475fda215b161d258240299987296d82f3d372fbf1814b830a84036c0b52769892154dfd08431c73fcf0ff060b1dad92fa0e89cf168ff5c102a3ccb7e32d7f8940ef5591fbdca8c4a5e12e52633bf9882275b620bdd71bebd6f22aca38269b3af76ec56301990c317749466e7a4dd94f5d7b3e43801c655a02e747814821df02ae164fbe2bebd1dc94011b0535f566489dd6f37bfc18903f92e0b77ea217bba600f165be1c73a6d510083795c524345348035de146f8fd451d9c72ecce98c8783e0d29d44f890d98d700dabd0da4819f63bfe88cfddc0cb343bf5bb88e44e95516f95f82f5b6e2a883af89daef90c5ba4c8f320e04594205a2535b885751b596414c8771833aacec58803250d5d7819a29395752ccf6455e974206e9f3083a50f91eed276a87bda653ffd72d18bc6a9af649597120b2ab4160ddd678fe48087e528dddf879c3294a0a61d5027158dda83e8d9513be7c8e72cd58f511450293efd63adffc604a86861cf9ad0c0417a61b17994761b8bafaf94d4b9034ffbbdd12d2c9ff24542a7d3a0dc46d1e2b3717e7ed441eae81c328a01a32c533290d7bf6d16530bb65a62f36b0de99e3a34c6f311629e052b265876210ee18e74326db1cce39b2e143b468f7c70bb1605cbf8f7cc42720671e5f96b02e4380e22e47eafa3ef892e3197f9fc90a2f3cd3b14a03e058e2014d90e89079bd58f876d146ff3b3256396817e5c9f389d66e53987d540d6b3f0e418a27e854d63aaffdcc0c1a25118c01dcb0f9fedd60ad57d9cb3db41809ec1760c5b88d4f6b58bc2f811872b15fd8e99f0482e958a507a187dd3ff03fffd62fd5c02d0e28ed08698c41fb544234fa4ed2f07b0a71cd59e15daa91b929ccb0a921988b7b0362010910b9da54fc88b9b8c24d91cb7722be7bb48a123b571a7330b183c927e514df62bd1fefc62bd15cb66271a8612c6473102454f5ffc134d8ea2bdb542f7305a3a8bb1308924a6e32cb4598567f2e725c7dba19422ae0f1e0af382d8ed3d1e630000b9e074d81b90a6b021167d724ad7e6e9f7055f988fd4d4ba1044aa59fcbcf9b112960adbd57bb06060f576f41c4837e8ae15da0733f26d20a3f527f5c94ac6283f59e45b8779e282edadbc10dcf39e7ac19de6c4a593707b46de250c5d4562966e8de93836a0fa1b8a858b1a8e613c2f05f303d8cdc8ecfeb942ab8ee2b437a346352607ec0efc25cd16a4ae0eca6d8afcdfd46b6e5ffb631c3cf6c28fa4aee6035bf6bc3b525b09f2b5f56d1d22d0544ccc72d703fa18432656a7af3f62715bc9cff6d704218b6b564babdf67b062313636069b40d4fdf12f0074b9568faed7eb880645e9437ba82c7b0bad24d338ff8f36ffc2e462902ba77a88111a6c8effbc8c430251171b68b76aedb9b97da382e1ef27a4ce810810e0bc0a4941bf9a13814df868440bd45eb5ed1d59740c54117a2b760b3fc2d1d573cb9989940d8c4f14dfc2b8c2894409b3b6c270e97e32e8e4ae1b721e16aa931106eea53ce170accefd8841db67269a5d8868afcacc5a89812690fe94af7fed1a9b1e9280c485db3044574a0c558290d665937f76a22cca2f89bc182b7c7017b6fc693413764bcaa88a98905414d5c8412d4f6de64530aa432958af6b710b5630ee64d7fe148a08ea47c7f6f91d82d3d561a055787d799cfc0cb6e0da1cf5f7ab9be6f5da333f58bbbce091e5488056b4e01c424e8d176b2ae86f18aaf42c1b73aed9d89a34aa34d76bef473db6c83444a943de35e85f3e0ac609be69c6c55f4f289f43c4615a722b6049332869b8c98329276b40edfd8950fc9d03ff694a971b09b01a0cdffb99ea0687c4460ae6748c5ec90dab4eb16e5a885f88544c6c089589e8fc3d3d98a77c2489cb1d141e938b64bbe62635e0564672cf20e3a508836bd0440f84d5786a09e1690965976b08ca787024c4a0c34691ca9dc15a7475c639bb1f58e38912fe7dcd85539747173399331c6d3546fcb454fbc2cdceb009c3aab7e0f4c21840892b1a74a95d4dd5b4ab00a39d2ab277d1a8d781367fc974ee1dfb77217868f0ac4053079f80a657361168a8450a175042a37c53413cf6bd752709e65b364f6aea65e36388c8b3c204a625acec224be36cb6bdfad783c9fba4e07e639846763879c7f0e19e3c896b1ae66da0a90a20ea45c48d56b59ec9b718a8438c7b2d26066fe492126e6bf2cfc42849c9fd11c92c7db6c0bd293e88a4f990db1b533b4de17256b6d71bbe3bc06f69ce7d5745e1dc8015cb8b053d4da753cc962987de0b1a9c1ff05f37fd187c6fcb5351d2865a4c8070d698bfb92bed80c84cfd7f7f41144c6718cb7ee94d2ebc744b51dbe81c2c874c67c2f805faf53b1a9716c6cf01a92617cbe5e4f9065be36d3c99af03935159723a69a30f2e7cd1272346906f14dbace6fe8e9454b0f0a991f8925ada95f488bf86e312458e46e40def955a74e0de7fb846bda5d851f1b521d3f9f55fdc5daf2a2af45c98cece2f524155a9d97235f494f3da06aeaedca2e43e98b9ea19443bc371aed4dbb83aff57ad03604ed3b2ee320675817b04f9cc064bb34f5f017a99ee8b227dd4af697a9b7e8115bdb645d778488db3f3524e84fec9a9a977942212bee4e56ea7dd311bb320b10191394bb4ac5501ced74cd1937aba138c8722a82953d1a01057a6fc9955b60bf4a542236eedc06d60ec0affbb89ea096c79a8bc2965316eeee025f3606f8ff5182774ac11604038b4cbab213a4f798ab7d8241ea0a689587ee10ff3f66ab74a8a4bdadd0599235d38707c50f556b4010fd3ecf922c70c09297afeef10964402c5d77ce5fd0ce9dfae9705742ea5483014a94dbf78f6f1136843f9040de90587a42a4968ae2d1d1ef9689e02eba7500330ff0af973fbad84fb84a8bdd6b8da4ddf560d0b5bd9e7b825f0456265f3489712af6ba639cf4b91ca9984a1cb0868199c7daae473729d7f10cfdb8f3e911a4153bf40d81e3cf2c2e23147de67d374004aa0642f01d1339cb1f7187980dad0d469c4cdf987bbcfcb0886297c0583fa5717d8806823b8a85181c0548195613320a75cc0ab96b0dc90322c14fdefb8268edfe0e555a89d6b5debcfc035abc50b62cc8eb8bc49d52869d7ada1f47fff9b7c5e3e7ef5959d657eca8fdc70a2926eeedad290574ce01fb4304cbc80a4d89b2e5ebb6796d75dc0cf882cd24a4b88f678621123fe64ce044927a79cc85580eeefff409faa577220b0f6fbdaf73d24b5e790cfea2c0eb0150cfc0bcf3b5498bf38858fb60e1dc479b5367de81b864e446b77949bcdfc59b63143486c79e8e78be811e33f90294249c0bfa6ab8cfd7d346901a8fbf97b85b94c3ab6c17be849c4012cf5efabb0b8cfffe4a0cf5708a3fb87687730285b56f504ea28178902c6edcf3eca6fce3007c492672c1ddfae869ac91e6ad7fec4dead54b404fbf2519f4edab62c079618f9815a9913998cf716e621fe24654ac19bcb8df433b88c50d453e966cf754a247c58f2c3d6255c13812d4a7187a42bcdb0b5f70fe4fb3a3fb4b90bfc9f84ea44a21f9710cc5c48ebb732aff7041313e865188ade299e1a4513517903d2d928daeaa294573109a6f192d4318fc54aa1e803ac1e65cddfb32d0f7fd45ac322ad5ad5309bb38d111b1ff0b33a74e555b45ce07edb1ef65ac2153bfde3f5c5d87fb626216c027f36562dddabf937ce9975502c9c5e1ce14e2a2439c4b172633fdd2128ae2f6d218581130d7e33b20d5d3fe109154cc72a2514ba4be478b9d814458474b93e6853bae96fb584c86176e2add71847ae1dd3bef26e9afcd3a7d07f81a3dce6179bd4db2f2bedfdfc4e064dae92a6a6b918e4179dd0d73482fdfa81a3665991bcbc1cbb03978313067c185c57ba93b2d8357f3ede69b2e18370ccd8ed8fd3ba3473b3f799089780c7d20f4f1d78a091d1b98410ed092081410ecd39b5d03436d19ddbbe2389155ef08bf640852b66d6b518fd1e48e6428036260886ef5fb9405e87e4444ae86aa8e22b806d9fc6aad99d8c27f39e777672289141497dd5f9f86e63fd9fed1ae7c4fe9721ed5ea22a00094b4501cdfe214a1308c408929a09623328da8ef2739abcc46f0d093fe6d6a4a5e60cd62434f5525bd7ac01e1b0e68a180257efc22986054811e414c4b261ef91f3c3e203c3b144887add3120b25e3db1e74149081e6146a9e1cec5f05a05bdf35b41432f1073015e612d783e1f80d3d3fdd5d17baebaf44959724cf02b721a4275e18b83e88868c09a839781ecb8e4a98d534827791d94d51aba8c0cbdb1444ae5b9a947901cc24a557de577208931753df22c625dccfa384f190fd3a82a78e0aa806ed43d0a2446a132a6ce630a2cd49c6175c8eb829994aa84275ae93b8a6ab49a8ae71233ec852b2dc69956c592a96b5fbc38430c6379a1aa2bac7c66e8325a25a07fd7ef682bb5d5ae0f3ce2201700000faa2d8c7b588b47d80bcfe517277562feb0af99ab74e973acba88a99b55bb873061689e4045c6d0d243714e691a289c591ff62f69ebe21c905f69772c2a86aaa727ab381456d716d23c7a9545590632cf4a2d0f3e54f56a4cfb08f6f35409f34cac8e70d4fdb352e9ee1ed0504491eb053552f0a2b34b1cb4ccabc172fc3f2421f525ac82d0d606fdd716c623c7a13deb153df1a87b49e400468a6b165f9e58d86cc7caf9e042b7ec8f9515a6a4d8461560c81bb002cd3d2658c943da38fbc85996ffc9f9480349b7042c2b8548e15184c8368f712d2b7d03d4fd1ff442605dff420b7c5b5efdb5e849c24bc90213ae2e2c668f12f55b61b42a6a87fbcafa4c9b9b07960dd329d2edcb087e60acb05412d74e9723c456d8f8abd68be0f1f7f410d2699869a2f1159f2e07e7b824422c8824b7861104e17c213e0e4cf576617f1981bb9ffaf327eb964371bab0ba4e0c7fed44848f841afe33cf03cec41c5c00f092c518a9122223774e8e1fb8e12a158fe14549f36f49ae84a70eb8890673b7e906ec3deed81a00f8862e21f45d20a1ea7500a3e7de3e63be41a5c059953d6256203168b20423e9faaee4d034095cead5fe2c87377b45cec980b8dfdc6a8704739b0a152bd65d54408e1328de323ed82521e86943f7cfea654777c63132ef4f8d18c47150b73aa1275593d3d6653bccbee466564e7dab0d8edf46416943023896cbfff6185b68d38e7939f8b544c242e679124b1f4e51d009b550acdedb1d3e24f49d3c05855f276f7c883b20c21cfd2343a9794dde21a907b0d99ced8e6f15143e39270e82fe575649ea95244b444a590a99d4f8fd11ac20c2cda23a305e43d15eadccc4b940d8e9027113781ef2cbcfaa74d69ecc6775fb3e4bda0af642986165b44d1ccc0216d0176d5559f49324ab5a23cc247179dd737a77e64f2e84e2f9be0aa366a367902e1b9980e4f9d3e4d49001e98e9505cf045c8de3476c492f77eee1f7856dba64b7ff22391944f0c6f0085270a9006f7fcedb94267d884d13b9beed6a478ed44eccc2e1c4945c6452f6ac7ed8aeb69a7cf23d4a9e0ca71964e547d0645ebc45cf7df5def258f2ead7cd9b4aad01fb6b1883fadc713913b69040eb6c2bf7d6614f472af5a9870930658e5252041456a48fd7d02c0ca87f9b2c1b28f24a030e68bf262842c293d44bef8ea82888ae953cdaf7e3047f89a78d4c72d4950d0bc99147932ef239f1d8b8530857847178c69393ac53b29c2cbd947d8f0e52c610a1b2c2d89c40fc48bb35f781bbc4c4e2475b59a3b697975b180e78570badebdba1ae55eaf3b8ffbd760d92652e05a1e978ead09ac66ec1af351b4b5a708573a9e02a808141f1608a63464cc9639a4264366e9df48031ff0d241b5e191ac8ac43d687568ca8c168d6ec5109895d26feb795f739a2378cb209c32caa9b0d82120514f141306477217fbe420f4c470b8e9fd7a5839b5402fb93a238c1f89e2b27c493cd644a39495b7ed362c3fd7a8f70888118b0d5a8323f1a3ad9403251fda66c816db3e9eb1dd823717d1a34c038fde465e7289d209aa9d66d5c6db91cfc00c24dcfeb29bcf2ca4a2d02b96e130817259d9f0cec2c9f0cc252673635e1de58ee821db9b5ea6cdfd48238e6b1a4f6db95462eb8432fd0d4f142271572127359e52688661539408c1191b31d6bd3cfec3c03a9bf50ecbf6337e008809f41ccff8d53cfbd6084f0cca5936dbcb55fe3fb89ad03496a57f721540bcc077f36cf86e992c516fad230c0120dcb483b2328d05d358addf2d550c5a4c727bddc1ff1dfaf68631059bc7b57bd922c5c4669706e8cf39a9cf3dcc457c281062d50085ef17fdef31b2cab8609cc3e6d0b34a9dc63ce745dd7f50948bc76d52922cdccfe70befc2fe7e592e99f6733096acf70c43dce7c56c014904afea481399788143d4e1c3447f280a99e85250eb9d774ebb8e2c90530e11ea22e635fbe8185ba04f2d0ca4a65dd1c3b3fdc516ec1d5bf14d6d61178401485b3f94585d14361feffc514171d89c3a0e2496715447a51ac70f6beca4621f25aa195df956bf2106a689f8ca3c2b260999aacb2feef78cf67cd56af3d4ba8fa8459b4491658b5e29021666d3ccc378b1b7e3a61b9bd56621fef15b403833ed43811fdd881a709852c5603f5c1bdde4ddde9719a467dbe4ee013b0a01d437e28f174cc6b49be9298ab4930473d7dafc86279cc29833bef2347c1d3adaa0b4888fa179fef42377a86618208ae7e52b2681d1421d6a30d3fbf42ac282450ba0164922acc8e87f6912593eab0041dafc73f5bf5bfea8684697680a4298ed7355a1227b1b295f8f01784af70a5eee80ba3517f5c480ab35a114fae0eaf7c0aebf01c1f74b3a6acbde39e1185239b75864e36a1e8bc31fc8a0a286b19328bf8453231ec0b6dcc1bbbd36adfbec6b4212af511e099a1b3fa35c0a854b01011932da472b670283707e86824bfdcd092016f7574527fd9a461fbd3851bb5aa618e80b0a9b60cb1c9b44ab804bfea98224fe0252490fb00fd4e74110ead4ad346a4cfa285e83fc6193d4d67b40e444fe0a1a96277dfbfedbc87b183de4af8343caf64a66f58db7004a07eb14f418ce4545ead2c39248774a5eaf8205322585b8d3f24101fa9dcd6fa44b4f231f074dcc97a86d26a2fa673f29298d50a5572f9aa2419c9825b7c76730218fe067a21da8a0bcae788d35f269e5e6155dbe2798d445573a7db1447f442d9e4879a5de7c8fb04545d0d0c5a95602b522e36ebc4222869e9abf1c9046d1e9ee6a5d9235252a6d97e9893797c50517ba8799f602048b5cf22382474ba14103cdc4e92724fb498cb7cf65843ee0e692eddd59e328f72a8f24405a59098d58280ce344d7abc9dc97e1e9cfd46f485c3d99c95c8c2082334f7746ca17c25900a2123f89b4d00ea91203fbfd6a85e12757dd904815226a585f26361e295212d50858bd96721cd827863f79cd95fe93637b2e020c2329f81a3edc40353ffa74633dec7b25bf1caf0dfa6d408ba0fb4de7afd3aabff1742da50b3a25024ddd7b1eefeff0f327e195541696140f10c4933e6f685d0768070827675459ccb884754dbc17592a338113d9b87af4d4f542a08fd85c08ae1927d7e74b34057cf45bad743b2e764dbe9450dc170b3cfecc8415169c72dc75e8e29f7d0a56cd7a0431a4fa0c909d5a08b743fda2f09664283b3d13ad44c356178591dcd62b6df344bcd80b6ab116e7040cee7ab403c328743dd9553cbb25a531238a300896217a2c1320ff8395c95cb7b8a7d1ccd32267300584bb009802db1c15abb21372e367e2328ebc6d563dae5e647c05832320fc5531a14d5def54fd0875fdec7f0972723e79eee836a2e61b2bbd972b8c695e820903dedb86a7cad7b8a1261e8a9e2d4b2e2eccd7563bc6e410f4c1043d50bdf45be1413665fbca88c8be2caffbe5c14e8df60a86837557fc0b3fecbab0362b9e9bd6ce688efbcc172e334bedb986a08f31600f1f97bbce1fd256cd1350af4741a30eb29a640cfe0f2d2ad779ee9d4bc5505a77ce340aa8e481f78daacc00d6a1a85e0473116438595b123422433d70ea66ba62e07373859a56628502c4a5ffd946b91a25d48f49c9221fd81190e8d09377b64b72f69e5d1acadd058526cb6625e4bc6686d9ed882760c860908718004ada6c6f367742fadcd63139bc2ed6080c1e23e7cf9f31be9c5d49b7bd5ebaea6fc15bc60b08aec6f23d2b0d5d2dddf0169a5128edb9e357c96b1f45fe2eae328052e88c6cf144eeb6cd1c30f2ae29ba7874cdd47aa0dff1fbc98e3809d04859ab75db5bf560f8ca57a75a1d3a88bae25389bfd5d620d42b42631ed9ca36d2b9207adfd086dbd5a38e6abd398a26c2ed88007703e4e4c6cf4d231aec8cf908548c4b05c7c3b578bb20002200c919275636d7e76563808d48684b102917769a66933c411feeab93ae0375ec3dd12d0551549d2405056b5468ee3c54beb93aadd95959ec1864106b223ff97e5f50912a601641e84992501a7f0ea47ce573bf5a795acc403a40ee5bc3e59ec2cc717899b4fc8c13eed32a34c1c2cae587a8302e001c1fdfc8ddeb4f93bfe6a555e9610761bff0267d15abc9fd41212df31209a9f18c074dd243af4a887f8198ae2ea5615c7d48c664689355a560b6b79ded7cbf44100271c4b804e07a9eed11fdfb384454d9983f9508c227209c6f2afb7c445ade842f1896000ebc6435c3087461b1844fee21feb184dbe274ca4df2607028d5dbd1cd727f074f1cef70907a00004da62046be16d28bb2003fa8f0befacace82adc1289342fb8250517822ea053d8965a83b3ebcd082c64af5bed800cf46ab26013610f30315c33e7fe1f7db2a811d30e87253cb2d437461805d9c70d363a2787cfeb7efb295aee1a70c635735d46daae450ab417ea5be39219d61891195e2a547dc644602b7f1c50301946bf7677d2a589d0ac06cb9e698a7ac740bdb3db3cf677c719cf092bf8df3a45aa84be4293935b8970e4acd659cf8dbbe770e717d89e97205fae043916e6e6bf3a421860016f90c04952da73d32e52138966ba41e5ddb804f4c43bfc2b1c0d099779a634e35ceadf0e4a591fda050162af3f7c9a94618af33e2cc2c74349a40ed3f356725bb7e40bd2cf91d4dfca69a405c73811736e20725ef40bc6cea6c3f6e9c0bd4ef0437a7ebc3f5bd47b2a3aaf165dc530a914cf9510dc93b9a571bf17a341e65d41e180f66a552977601680fbbe4042bb8b076aa61b7ddf02e14f7563b30b1599d4b9a4e40ee9f32c07fe1ee117636773e6096cdbfcebe754d510fdfdebdb8000d83bfbd0061c7e737918071a5f9e6b42260d2b8db157c9da84ecf1e668d55958aef15f217e41c2a51f43ef8c2107d4485e6eccfceb58da07be1ecd2f453617eda6f8a08f202ff159d37f69c3fa324c6981bbe8895bafc13c5f3a67e514a0b4325150b67f76707e2e23e06f7475cb36b449a7e9465931b6dbd035444c9af84c6e8a8f91fe668cb1516c14b5edc2a9df273f5e1f7b296ce1318a140d12742bd9c8f226e6128792ca867ca66268dc2f8377c30011c25796445bcf4dd76d4ca2f8a5233499a2fb43867713b518c3f1994982744152214dafe49493540cb6e8ebe80b8bb163f67599b4b4546455061eb188f719e010426b98abee732ed6a76dc9fab8153c05805489d99fcf3f335f6374142b59dae4b4af948f59fccfab5a2855a5c0ac50f47da89b5f13c9d0be557c11bf51617346ba2e2e6aeab797da2905fd2ea3a90016144c4a9b20b750ee4558f608b3cd4d3ffdba226aeffc246fe55c264dae965e75c97c93e4f32fe78a7a06dd593fd12c48921c717e897c6f3b95a0c15d62dac5aaa9a0a7979688f38ef0f69c28a8f00ca620dc6df52e7b64b17921dc9557d00ff273d1c6d4573d471ec61577646d743a4fdf97812952a57eed4cedb95fea1af14df3f3aa0a56a4d97e9854edbbff47345b8a1989a17438352b176b01b10763bdbae64c2f8e260cecf6e62281ba9d29fdeca3f46323c2ea814df4a07f3701adbc311a1b53ef2b9feac1c4c0654847fc5b91d4b876bba2247954454d2282cd4fb7366f03b2cc99ad831b70fca5c2c5a5be40f73c24865dc76e7a04307cb7108b79766a41d0e15fb2c291b879c9901a8c9a978bd4465dba45f0ff0be1e856cde6484b57d49f4f40d1fcc172e66e02cffecdd6d84bdade335bf90a826954c7ee608abb069527299e8a7b86611586daa0b95f79899c1a878a8674dac566c1db6c6dddaeb7deeefeb8710383cbf64e70e9a08fb2404494fc441bfb306c8aac69054d25303ad76899f9879d52996c374387f7e348fa52f758e153e3dd241d6c656b40aa9adbb69804daf58444dec6edf5de8a3c2e490b5c1df23f33cdff87e38a90e5a733730e93b7ff0f296050ea5c92ddb18f13607ff37dbcdfffdf596b3ce0f2dcfd3d2513cd9c782e4c4a8006cf2ef31f26250db944f103c1932ce238be199d626c664d04c4c4f879d81f34a098ada2b390df575e19cc79608b015339e8ae4155343ba58281071bfe1622dc288960dbe6a0137d3b6090cbf2d82200c8ad117aafb334f2c8167507847573b803768e62df607aa98c79d728df6441cb970e8acc4f93211cf2e2d84cfbc6c1ab42a1e9d21c10a80d32cd7e2796cd5e00c74780fdedc1fc800a8343ce6ffe67cf3b83a5e40a34fd804e192e1f5a64fb8b740fe6bdb67810e838e3a822222a68311fc4752afea82cbe1478520b1535db87481363df811b803a0236578300fddcd43558c4535d691fe93a142547635d48632699a6ae683002201cb54b70f0118598ce6cee1921c55c65698d7924ca0a4a3db2cec09601c46e22892c42d1b0793ebf3162caca9640b2604b8f1bc0fff17920b83d315f670c517cda4ba23a484e0021e12fa3860cba33284f097b3c0505f7b8f2c8aab3fc57e2d63d648436bb1df802446bd47ce62d8a41816735c64a371240a6798a1ad9478af6a1cddc8fc1a039176e82cb91fad18a42d61a6b6669e3a51747aa1892e0ed2c96511223db71de77fab6d4791c9244414b0ed37821dfc18ef7b2f406f7f95a5a7fa726f5a0e6e387fd712777720b534f0e83b093c3409ada0f551f3e57d3ebbdb6ba3caff6d96ea8ff554c6661c40197b84ae5f708128f784ad321a3810560b3d71287753fb6fbe0c67782480191aa052bb0efda5034dc653e52801c940da10e17d2d177754aa188f5e04ba30b28bf1ab8a09c8638a847629b70cfefbf9fdeb1dabff5b6f5949282849444d1e63507a4588ad0413de68ff9b65b99c3268a654bed3914621fb255d28eec6b68b851986d725f01cc00fac52f35a93dbb367ef5cd1e5f8f78607692eef0ade6527510caa0d2728f9fbf7960a9f3afd778e8ca703c014ef117eec15317da523f5750240ff52a493e85fd27f6843f1e14ac842d196926054a7d1747c7ec22df0ce4af7432dfb33d119765154a3f7202db56c3d23e68fdaa9bc6195c66ae3cae4e1008f954492ba64a3087d18868fa0501c4ceb8845a02a94588a7a6f8bedde626565e02b695df2371c192b605e0a06c1767ef09e5f1e1c5f242c28c60db7e012ae86e3ed4c56f114c402ead53a815d79e8fab339d8ff63799cf8286f5de2285e12d981377a2bd42c3c89c0b6792e3f736fd6e8debe7f65f2d0e3fbe11a4034f6de631b5c6e0f3c94cfd53e53a7687033a0fb9a49d1b47503b6dd28e961092b4c5be8731e84607cc24ba5f993acaa1c3c726dafe88dbd01840435282660ac3119de34a738ae732c146928af6f4d037d991c67f85d166c0674aa45928a3b2525d6f115b8d4010c5149c3580374f785755502ebf5ffe19b7b76cb545fdf481dea44899789151149780562c4f745e0964903af921b5a409bb04e51bc5940924a63e54388968f1516f252d1110117742c0936e3b1fcaaab521a670cc8469badc97880c27087caea63c61acabee2341460c20ab11e1064eb13bf5064e6b436e36b57a10b71dbc2d8b729ae6adb477925e8d39aa830d5ae063b3f3a980ed027a433341600b6346a2ed9f742ffc365d76e55f68714c903e2060b757c8f7e17db50796d73df787d24aca72b6e5a1bd4d5c72db3784676190f8a70c9103a3252904f72d88fdcba064abe6462aebd872b0c173e0a94f30306782594a61381b6a9da72146705c22ef6a987f937e351f4eaaaa0bdf609a10af2139866e448c7396522b08f17b4a602d501bc03b1d12f5999f0a41c5f8920501a0acd90a696f9fb582226d84b40b27bd5864ab3f69ff84b18b44e98bbc81c0b833eae71e6862f80c06a73fa3c8ef1957162d8c25f5afedaa1e0f1ed68ffb55bd6bfc613cfc6db21e4df5c343b4c3b1a59300b152171fc74faf199c72d6c2e8b1955b54424a88cef9c36c40bd16624dc4183a3c0073a60dff578e8bbf2d0a6e404fa6e3829a33ced837deeddac920412115d67954d6c217d8c9d43fb0defea38b25e5162ded132205c931aa169c60af900b8dc63f0a32a6864975404cd144e5f0662056ef970730611ab67d2ecbc6137da01d491f3e0511fe035d6f9178a9745b29d3182ad61c05b75cd0bca147564ae1497c2c59a06e1ca7a58b3732324ff60e8dafc3635ac294ec855daefdfb3e2aeb751edb2fb5eae59787675e526b63992eb9860ea12fa2d84e9721a8a0a7d75c11df562503c14c5f8b51903f4f69995ce6c894b5c27196b960ea8ad205e9fe37454c2c60472b79da7b55eae54342b2720451394bc117cdedebe4f86ae922796e4ace7ea905dbde6ead577930f794d05cf79d2ba94c7b9b5bfd4116e1bafe91ce935093bc32efddcdf0429473f8fe395c5a0147d37f609afc345701cb84bfcc22445c1f63d12333432244fd5a74557ea81ab5b37a08acb093a7d3e9db6f63b335ee81c3cda8a7f8fb6c1550fbfe7172c26d7df17ecaf010730272207d93fc52cdb1419e2717fe689abbebd2a00b813197a000a21d7afd1f9e9631a82d09d7e47adae2e231a75d04ee3fd9eafa40c4090efe2fafbe66305e83d7ef49d06758cc8220ec41719a588c2573720b71cd8172efcd9029b2d518cba7169d3f8ca04da86cd7db600207dc03aeb9d017ae07716f9599429accd1bf7fd7e7db0351fe598dfd147d661949f0ac7571a132f759d3e1e01c9a9dbaabafc32de22d7429b0cb9ba6f4d69ecf1a85f098f7cbb39bf0693bdec6571e6efb6f7ae3b6166f0230b739ff7cfa6398fd69c9e0c2b74a8fb83a0c6fce0a47c54ce640cb88ed1d66d43c3d89d063a554f2a0017dd854a03fb7af0e4864b18f44c82662b96af618d8672e6a9dd58c6170aceb07e5b69606a77b0967c6889d8ca8d7944c27870b030dec1e1925e995f51b5483476e7fa6a04a0a1a6b6ab94a2f98c1ce67d91072e398bf5fba48d690ec4988ef7da153033bd3321b99d11076a16eb805cb263b39fa1c2053ee75c024eee1615caff1d4f1954c53c6d4a133bd546ee8a579bfcff9b5dbe97f9cadafa91a5d4d9617585fd8cba02a8e31f2c36bf027927ae2cc3750d208c5740b09349bb8049bcd4624c5092c2190d3f187f36b6a626a4db7241d7b5717e296a7aefa9a51203a0206e1cb7461d94aa2c21292e7cd677767c83899da6173a879334fdc29bf4248da4343c8a55a944985588d2ae88af3836d2fd17f5c8c9992118c65ee9dfa0ef6ba55349797f1120e6ed7751c886cb8a2a451b56175739e20d1db7461a241d5807ca00fb161cbb1a8928836f25d3123d8cdd4f1d7f6267005a0a05bad91375fab9a0326f44940466b3c0422442025f5b8bcb7ade204d4bcce0090788f2c904f1871759c44ce6d3a6c67101d7ee59ed1f39dea64e814fc9899c8a62aab257935a6f03a601182275ff877c78797454a1b0b20f5bbb3ff5f82183c00fff22413d99689ce58ffaefc8069f289c8d952117524cf57a686b9dbbce2c226e8ee5002f94e6fee6c44c06c306b23c7868582386fa0751b799c5fca23223eb68cfd9802f86a6aa744324b4381ca3871c44ff70736e55848e29e4992717bc99ab9b62a2fa224603dd313f5cff118b5999f2d2533451f514ddcf024f2f4bd071e6c52dbb6b1d66d20a896ff35a1110070c446dca40d3db2bfe7933cfe35b74fa2284a914785816c32dfe9a83bc819f6abb71000856e81a187c56881bd921167e2820e868f94ce8e6f248b2a8d0b1e3604420b1f4682f2fcb5076c40d845c078cf09f8e68486e4b2e4dc8d816de23874ad6ca78a968f6855db6251ace00d68a782b588f3aa797c6f5cdc753117497f88d7fa92ef4d003b686875e805f29c9eedad49addf67bcc38768de7bef3682a6c118a6445d90c10b02530f63213fc831c0bd8f3fb285bd58a52a36871a9282bc7c5e726840fa9181fbc2d69031352804aabc4a54251e283220c2f60f63653767d19afe1817f56f74bf21f663ad9e56c2b1e9358006662a7f78df012f82fab79a882a7d2f1c9bce61a0f697aecb5a9e0090a792c234f5afc61a070fb043e5436c9f9e59fe0be1cdf24835e82ce4b6eb2bddacda2ec69c1a09677b93c23a061dcb77c799ad9e7c2f4815f09bfc813d92e4d3eff0e4f0522d752249f833da6b4d93c8c27fa8bfd492295da76b3c1d8aaa659a99581f7e783226121989812382b76b0ae3824f06fad280dcd982b5c3a560f2cd2485fb3c726057dc92524774d1e57c7ea544f1ddf2b6f5938b60eae2ce6af53332416d5d30cec98dccc6767743084634f7016f8a5f90c05bb6bdf477634144e8dbba2772b5511b1ff9ded9c4e6cc7da6dc7cca24ac366c51d3c0b3f3470c09c626fd70464665f253a4e701a11b382a4d9eba4200f000a8dc9b06b4f55f45e027ac1972e06e99e0b78df7d66077b54caade0fcec6414b09e4c0a9b921d6e625e5fb9799f0e92790a0ad996fb0dde25c8054761607144936fd980febda35356c3e0587f036dbd1b152410ccca14f87bc1839a199d90767f23c514a85254aa57f19220daad86d87ece5f001d8ca4952613cb7d4f65d0c548900aef71ac6e1d70534aa4ea0cb49ca67235b418fe5432a651081723ad74e49101c851f5678664cdfba42fee51c2195be3893d83245347e3b5657c3ef3724e0c69c0183f2902fa0ee07f7a0c2e719029dd1cbe010ce2e910d39530ba6af54b9c42d7c96367a02124c47f6db74af61cb66819000f97d8b9d4314caf64c9dcc30a3799355583ed3e74d78af68e2f7931a8538a9eba5e1d200e16c409bf1d38de2e73b4a79b1acf7b4b054bed3a9c96e0bbdbe0bdf4bf2fddd64539934068d276b9bc78a7d438fcbec55eb307edf8e0f7c1bd6f5468c4a0e796216d9db3d3a25f0c895e4819c580f2b1d172de7c6459ea9889ef0226b4959a45be2545bd505973c7bd7e0aae4a3b9a279582015013fc8a6873fc7ca1c3493432fca94ee208d877f54d174b9e0661bac8519d1c80263497aad99781c37f88a4edc548129b95b7d0029a0b4525f6f80dea10c22bf1de6211ca5ea463125034ab2fbcd2784828bf01e85360a1067c5d8d1b6bb4bf49145a6b63c46a2233a5c446d1941c081cd8700132acc0973815bf44cb437b52ff23e6806fad16124530c072365c80ff441b7c5bd2b7fa9e817fa37afc9ce1abe8204262e30b3814dacd4636c1995a84f4084a23e1517fadeba65e264db3f55508e89eee8e4543608da5880228118cde0a6274b6ba37e5092fa99eb6c39f8c2181e3a03e440b11dc7a5d4c61c97bfbc47f86494f23c168ab7640e2271f32bbbae6b0dfde91745e0419276bf3561e0fbad76d4c675a61642a20f1fd6aa3935e4d5c9469da9931486537d952bf719037783871b3e94711dc405968971b9c879539339e3d95cf8bd6a2234184cf1165636eee35e8352ddef6dabc93ac860fcc41d8fbacd276a67d6e1137531521d3a3884c754f0cf2831b7db7511c0b015c328b4f3a028f647b605cde4ee930e2812c20a055406fadf4215e988c19d88db9845e7731f4500c438f52c8f04b9300802fa780695919538f182b0338030ad5d932e8cd7563e8fec6e3e2671ed90e08dede1f4c5a97456caf009b916323ee69200d1d7c3aff999a7b23060819ba0851415d8d736906e032362008d2bc0ba2612d0b346a8a0f9dc53848990e98bffa7ef1b87957d6640e7404f1efb7f3db9b39b4372864df70a1785f10dcf4332af14ea772723473b4a642deef749c0c791f0ed960384ec9a845193669f2cf075b10b6f6a8881f3b2cb1792200dbcec12fcc208e196769977f9da485156369cb260c506e82d012fb82ef0e009d10b5569e0fafabedfca73557b3a9c1699de7e7cbae1dc6d9e40960dc513513bc207c7e2cae18bc670412b08b021445166e06495a5593b780602efcb9804f9418be5838ca3f56b6accb390e86fcc56dbf8cdfecb171f758a76614153255b28299bf57c328aebf20ff67c078ce8603a1920d43741b091116171b074d565f3775a89ebe0b23bb2256702deada5677ac821eef9f35e43626a0f928657924609ffa99f9fb33957929e7633943726b1c47e973917c9455a64a6fd5390d3894d0c4b3bb11281b75d110524eeb53fe32b7da58fc387f9fd51afeae4281da1554599e91374e150398fdae8a456565826cfb990e828b0637fde81ab09c353158915911e1beb9f0b7330dca0c8f0e56cb24925de79c18523ef679143a9d0c9bbbb563940edb8172dbd365be7254117e2b7297eeaa16cd3a9982cc855560c673b95ebea14bd5779e352e3d75ca0cdfa31ee11c2186e07f7bf8a2f10f6ac8a2a526f2e4f97f6191142dfb20ab22f6a900c820a6bebde26689b6f28f88c99be6753d1c05b6309c6af1c8b96d860a30e7547caaac40e4469ffc4674607802fe5a616433812a4776c03ede10d97dfda4d30cca931b5b1cdca988fab7afe99318cd0844f67299e15cf5f34a51eb8ef5f5ee74b176d55632dce98419fde186dcdf8f2dfe5820b597c6908660777fc49d087bfefe5f2d3c96a72605972be9085fe2f5bd971e8af2dc52b90ae0eb440ddfadff93f9ff6ccd80050d82de4ad1f5b5f9d9f1e7cbe4ab6a53c0e3292f3e62c113c8fdd6ed5051cd14ae117e6838afd08518779e191313dcea9604838b443ddb5a6256a8aa882d5261fd2fafb7cfd0539412ae326b33f4e56652c091e5835fc9b4238fb0343951c28052170011dbde36f72cf6cdf81248d41fad2a74c4f9e768e6a00457687c6f6131e9a89fdfb644f9d6510a834ab29637f2860812b5fbb9cde536232820dd09153463e50df84ea308be6d6d645bca29ec5a60508c3eaf332f91821b9601de4a9c0243f532caa56f3274f1e64b3b460fe558df3aecb793344529e9a66b2872b0f81172c11edf4fe13a42520f654ec3eb647b4fe37371f473cf4e11dc226f82865188bc1bf398f730f35e8aeccc59149d8eee1d7832ce782741c0661392e66b31dc2c5177bab9da266958969ed864c0ac77eb5bfbbd1c95f9caf996dba02b7e4893df45312d4c4af90945f61bd516819226ac4093343817503d2715fef6ad7f80c6151069a7272c7bd2692ffe51a1c6c626e7a66ae73c9ee27c8c9a93d7a62766cdaf0e69d16e7b9ae6cb4c5e497732a59ce18b2151e61da183a6a0289a73a2e866fbff9ebc16c32e2ad559c1b6091b1f035a90cd397e5dea27cce6f1734312b48fdd882477baa617b5cce7146f820b3efde87d8a2a9f78122403f010838c0a5cd9edb1d757bd5bab3c658cbb4bfe4376e5f8bb9a926e5e39181383e84d8813568cc4660385042a75cc0c5fa9fa1733c90420d817405d5371809d2d81280c2ac41edcf697775ef14368fa809005ad03b89b7c07330eef6f35d926bafd316e400fca2d97f37c05a288712f8e1de2a60e0627ad9d05eb841d306c8ac01fdccbb9514920e03a7988c204eac32f441d3a614b8a2295f196a69c517f4714dc2ef3ee910a774d416ccbecc8eddd8c9bf37d41570ad50d92bfd38136e07353ff3964abcc5cafbe017bbf4c83fea5d1cae876a26241d8c73b587633de05e55be2665cb1cf64a0f8a67fe8251efa62b20530afb01277e5a90d522a6eb1424ece2e9ca135e4e241222462c44baed6a9e198f73f4a4b06b73d911531c1d8c0a796b365cf5f4913354a5dbbaeaab17d369986e9be82d1bafa32eb5f910fe3422f5b49923ccc7e330adedf84e9bd9d6094163373db1ebe50b4d99b651612bce2b80fc7f92b0d5f7644332bd70917bea0361a21a6971ac07f24a8cf5c1bd3f248d363065ddf260a71cd0289f825de62e4006abec3f0242f3cacbb3fd1d2345016784ff8914f10a04ae0e6753ec84b5f338b4f40c67b1fee17af4ea2638366bd799e8ec96dc137cb3874df9983d82bd8749c169078f2a01ded2a44abd605737a2c0b1f171f2bfc1a13d5d1503464616268709047efed749e3c96a39c8baab5a44e26c532ea61342e076806c3336b6171345f93bd74131864ea991667d08e5d0dde7488777954a7adb791a88d1b9eb715e46577223ac93f9741666a5aa154ed5fc19033ae332a9216505248fb97487e0b6ee099ac5f2050886ab61166c021be98a11fd3814afc255557735acce278ea181f7fdbd42502e671bc10a2e943c57bcb0b563e047301062f4b12b68f9ed3bebc812222a359d64e0b95755715ffe4a43995098a427a71cd7d4eea198b9469d62c1dd2d70a4ec90ceb9f798dda651e0cb9fb3191e9271a863974fea23317539fa4a5736757f48f56b9b7bb476cce185c6a7cfe74fa209b3253712d55360bcb9a037841c3a8e5089732cbc1ac4f32a18ebfda51158fbc82455fbfc69b10d901ddbb7a40e17f6f61eef96f8b85fcd00972d2d18c9baefc112a107a70c038c9e69110be1e395bf575ad3b0d94c00d56322c0bea0bf2311d42ba80818c74d68cb475a475f5486339fdda1fc891ef0165cfb416eda248b86ac2c94eabd24b0bf5235958256210275eaeb10c9cf9ca8bacc2552d72ad92ab53099a850c053dcb1ac6a4791b4c9668b3f91fb94834a972e3962ea93c010555e53f6558a67a2645792dcf40927463f99f1c490f007b0a03517db4ec662c9d0127c3d8acffbb47dbbc3be89f12a104a73a5103dffd85110fc37c2e9993ee9936053393757594c3ab48201061f2c88a37649a5a607392037f13dc38159fc9fcf5be8aabdc4bca23a9b451fd9407300b7674350b8670c8ca719f3440638bdb0e13078b273eca26d342c6127951ebc11f4fcc0a0920b5b474ed51030c48a0f0da964bd286f2eb96a29da5e1e1bf655263fdde8efbcd935db41f240133c1f9e1ad34d55b38e96ff4465c5186a77bdda0fa458465bbc15075602e35069fcbfee19dceb0c220135176d6f79253d040e41d07c5a5c1d851a64ff197dbbc117a7a4d000a9591199df1de4ea8f59376ea3a7b344a99eb155c598b062452f49d5b51f5f0f3351d6dfa823d0fdd810a47c1e6ff2e45ba90e87707d4e163e2f429320d9aceb5b8e25fbf747f5c453fe5041a32732642147ffcf898bbe8c2aed1f3f8b87fbc593928a34bf41ddd68bf7d0344b23251763038afc1006e25277e56083bc795229f94a9e144c7ea20d032caaec7acb0695c585694e533edc7212bdaceb9fcab29dfe76f35e10a5f13bdca6f02f575292b61df17f31b83969faf98f07b6399924301798eb201a2d58c7369fd11c2a2d7d79f45844402c0eda4894eb19b9939d1a17ff863da1c5ccac111e3f380f92750b3ae4587b82ed80d6f051f0a8ec729d5bb7b4f2b28f91e8ed0f850e709b9c0f8887b1f0eb012d0a9c085785f07492615cce26b1b86379ddf38c53933fb3f36bc2338b2ab43ad473cf77a448e8ea0c1ad54a2bc11d7ad637f5ed78f71b50d6339d5563788bd0df3de9bf3753dfffdea6694ec4fc76e9147250a6cc8222e500babf496b0691aa6b046d7bca94f09154fe8158dc5dc95717f34e7448dbb70a2e4af58215b728f6d278cf8127a2fb0438d1f214d879d0802f12a06e1ca9a181b67ebdfb4b9ca02d316bcf0e167a3cc087b804968f93677b57d0f5b451d41d8aa4131e9e207cd8d7fc2a5d6957bd088caefd4dd109544072858123f55dd80f6ca8b8edc5b2870ffe82301647bff14e3ecd2c677041ffed259ac29ecba5044ca7b0e0da14b60a05ab4cbd178b0f56e3238662c71306c0962b924b40460bef544933e7e25c671ec56e89cde93a42b349c8f0664696666ed3afe15120b76698b635bc2f4d943e76dddefcb315d290dfc9df7dcb9c42043684dd35bb5e80eb5b7bf809cd4332ea21b8d6ccbd71f1399bd84ec39e729571e778551305f6845f2c30051568b2b7cfec539d9107f4769194ef408953802636bb13d4a8822bbf59a2a6449c312bf5e1dd468fcda2de826819f67fc6accfef3edb6c861be48f505fb1b3df5375a6ffd287ad52a64fe378b9157a6d173aa92142dd3e8f996658e3e8ab6711c4e93c142a388ed592ab50ffa289b5285eb27733e92a557ece6bee3b278e2f8419028beb81125540237106e6c5d335fece62a1d7fa691421567abb3b92f6e6272a6d5737598b460d290e1f670448493eaee634fac1ff7c8ad7eb3a275c93f4f62def1711756019c3041626dbc8a270cf95b828da8afb57f760e0eb9edc02df4dc287f4ed2922b478e97ae3d4a3d5fb7fc2bbd9db7c74cf0b1868ae4b55c579c82e6f8228b1448d3899407f40c66ffda6c4cc70ae3c1fb16efd118732796a325d71d2f0b052aa566e1a648c52e5edf8ac9926ba56e22a3e3a3dee699297f637fa0f4b3a91d3f905c3524fc06e2f75d3662dd99fe5ce3cbbc97d17af08968f331958682a2190c1ec39a279cb0c1e1051a6c16a4ef03fc25f81d2b48f4e44a9cd45a738f1f01b2e7ddfdbfd8e2c1e5e9cd6813c712b19603642069fd831e34e595d4bde44e0c56e7a254982f5eb0e5e2b4dc8ae0465ea6d2c1f9ef2e636abbfab7c1d6c3de1f0e9f3ba183bc0b45b7738c559a602e76ce5a45204413bce4bdd00facec098659307d88c496ed71c241b9e4c0961ab1a8ce9116a0debb9abae5288626dbbb7eac57019b20bab040267f77a01221967bcfe42cd26526956ce2bdb69b5b5330038eaf7d3b0bddc3c9e94206783bb9e67be2d6b10a5958ff88645430deeb17c8d8b158706210350c8352e89a766f49dd63fc96aec3466881a533ad38761c6685c0d6f858bf04333c88524a2e7cbc639c2c6fb3eaf39b246e5f9587b79c55e61c05a3c79e35e8179b15f9a608bcf02b358fe804da0af026d3b61a38601ef1bd4bf490aa935a9853740e7350cf3ed127f88ca64c54665f5b308f2899dfdd589c575feb31e1f9521790779b4dca5da06f92e7bbb499ddb528c6311054674f75dd9e19da88b49008c619fc1b4cfa4af4f8e4a66464f83869833fcab70413fe6b1b087d7eaaced37e2c846a1d868188ddf5c0946a9afbb263751ce8d2f9f106aec9f1e81f6e362743ab4e33887dd46e5d8259c299ffe87d9ee48800ab93569b56b3fb3b683caa286dbc09efd4ae21a82c1a48014523753d8ca23aeb77836a81d976a55ab07f1723317f9cd56c9d61b6d1907668da53048b530e8964486ded92015946af5c214e9d423398469adb8a6c07861ed487458173d9d32f8b7aae713c3f0954a749a6deca06ce594309f0777173905363ef38cff69b911565c44a61004731473348bc91169713d5f2d73a27c0ac983af8eb9321895c6ffe59cc4193f4ffe9ad49aa4a30a093dd271d373c1f29921e26bb651e0f949aef49b451cf3f42c26f2561df5763bac5797fb29adeebd1f0624c9636550bf4dd85ba26e557b0a7e5af05f920564b6b924a6d447aa6dbad7aafb1b91e850c7ad1bbcc4331041ef59f8982122fa90eed3c138388a1e95d0b0d372e16c99f896a2def5204d34cd09133dce7b01c77072ff999f2d91070a50a47482ce5dffca6fd71f2e143c2f8b2f56dbc5e5d2c166953ce89f7b56d207d1e70ccd82231795ddf711a1a424a50492f766b5ba6bca92d3149be053e039a8e8dae4c050ae3a5a3b1ac82ff2592861a61ebe86c9d44c0dcd3fe6211ba52deb4f48df7e7a2b8f9248879926373b59b713f533aa855600444f7de90c914346c57c2d5603b306636df6c010dd9996c399194d8c1526aed528b9056534958866e34bbaff5fcbff57312da0936cb67454c4abd593ec07637c82545423f963a70e072761e5f2ea03b844c438fd517916b5b3a2cc74e929d349601f1b0053f9030c94fe0c34c8be45aa0fc8b2f24fb2f01e1d4e6d192a802d2b5002176ac8fd47ef13bb7f7611ae25992e88a64ea333d0725c106eac2194f50c534998c561ca37bb4c9102e3fddb7c6cc108f8e5c051cd65c04388d597f32b0a590cf48c6d64031ce5cd2ade1a8c16b220dd8ce7d230f2611e63ee5a7b6da2ea9c26e5b037e12a449283997d35c241410b01ab213a6bfa70c7b6fb66ffb7ed264b2d5a3cefa2173f0a8533ae6444560cacaffaa74d5b82c5549339e5ce9d60677ad96d2cd269d08de7486bd706e51aa8140a35cbb03e95ff18588a1f682a049d5a6f7db988f575a18eb08144d1fb7fa8d3317b528ac280e7d03800be8d51ce7720c743a1302463a500866440d6aaa0c75fbdfd7bec1acfecd06c19bb03591c6529f3b01bb0d04372b68fefe2210a062fcbe73d85e6d915b2bdd0305204fc646566aaebed73a4f0cb9448484f37fd56ab901c144f37a58aad93d96bb3188892a5b6ce52eb36188a3f61781dc11c2c9b3d130a97f715c6454fd36d91324392c957aca29be456c37a4805dcf5b1996be30dd3e80ebbbf87dbf15a4c4b0e44c03177b677adb00cf8594d7d41f7be2d43b8e1cab8ee4ae7351f692f25f422cc0e7c9c78d0b1ba130c089d78e73fd0b6b8b9675e4908be2bbeee047474894e347b67d7ef1c028320cdb684503a46612e43fa6e7d43660ebf14a0dbbed32ecab20d0f466b0b78aae93ebb69365ddc16f8ba8306a86a6ab23acbb07985860b8a4aa9c30e51dbc33e5bcabf940721eb87d9e5e54673ef7ba47b17f43c3e02e8ec8fd01ce3819d3e58e2df9a771f8baf613e7bc7f4421b7e96e033693d2de89787b14ed719b64b264bdae57aaa775d9e51c5c6125ab6b667c2bfc6231ecb071962483d24510f444780eeb6a6bb933f7ae9a12b0808393f94adbc9ee584ebd7e09edf42484f67227bf4c7e7f786a7b6393d6de516ad32e583b73d5a46d01885934fecedc14b14f2f5168c801b24798c192b482ae3cf352e08b4f77b5b476803e49d96cf839f574e131f188040ca99c8861652b77c8ca3ae1edd2e8369d15428128a261f84b9278f9927d03bedefa0e85aff04d1e5908672070de8f9d98f9a0058f770b6386c46fe4e6a55008c7b0eb56be51a75cc9831757396c9848836202c694328f40e464c946c3808ae11684b1f0472042aaa73ff1b112d74ff69c992e517b27049d0c88867693c8b6ebd5df7f1ab5ffe8c96abae04ec298dc4b114d0047ccc1300c4f5eeafd1a15acec519ca9f0a34e5a3ab681ccc53589bc5110a413dec715ba21b066421bc8d2b24f3f6c8060bed0e6c7ae39789d7ce8eaf2768ddd5f23c111f50547b842d6e14da0699d87b0e04ce2f85e8a0cd292bdae7f070b62a917b5bea624db369940076a14f40eaff68f59729f2ba51457fb53d92c327b16adbfc3d6d41a4d4c7a84992eff297fb19ec0d1d44d5854668e2ae2ab916d235bf0c60aa0267e489bf43313cd5bdf9233e9ecab2cda9bc655d1c0a2b22b1f7d5d0c68955ac3c79add495875f8476138cb687b2d41e1c488caed94eaa2d81307232ebbcf23dac0d2b271a4a32086f647a98575b460416e5f47a28e05b15f889df29a54a5be1affb07596772429fcef8339fa8d91c59dc3f2ba2451e4e1e6c19a50233365cc3a717b1b96afee1535495aaf5777ac70dd557efb9db5e4937a364248b3fec4ab73fb85b0854b2f14ded80920808aec6aabfff623a9153fd98b4538cbc9969dc40024825d28de30584a110d7d2dbd9fc3f7d958a5d865e2456c800886f6f03a80a5cf67017ad0ce84ee50ec7b69e8596f74400fc32f20c981d782fca65f47598f250e09542a741eb4e5c2d93a145f066018e6a85da7fe1048685bc5ba3e972968cbf6a2351ce637c46ccfb83b61d425cca0f94963ad855f7a1d84b9f0616ff717e294fd47e4c0483e671c7321589272a0095a8ef9a05e5d97dc6aa9cea90e4a9d3de4ec2d4e9f5a09db1dbd755500658418dbcd7857825232ed898c9a8dd29a00b0dd44d6d96e771d7236ac9f877952afd499f49c98332d017c10898695f5fa4a9493920736921597fa67c01d72732009066161e4a2c97db5181b18fadf9d424b475e2cfaced3f5dde69343086ef4c5b6c01d7cf1a44a311c377c48299c3ba3d3aa186b2e3a28dd0dcb4b20db255a1540d363f6e743d614efb01462899437b7baa16c1ed5c840d472e4319288197088f15702e82a18e06b5a3fbc6b989ef16874972f8e10fdedd6b58fe951e01bd608fa27a83995303a237804ba55db290f4b88f7ce9a0c0e521d4ace971e69d5b6ee0962980f428aef6ae904cdcaecb7193c84b4ccce6c65e368c6c7f3c6e442ceafe5ec6e263f9deec046a7c4e9f45c6d6f4bc24b73d7223fff1845e713d930c0f873eaf4530fcf83b65538a969e8437735cb9aacf97497cb3cf034bf36a2c5be2a4c4a059eb7ffa3fad26974ea7b29441d30ba394c13cb2ae94428ec9cc5f78077af3981992dfc067326cc5974cee05e49af23e4d73cf97cb7aed7524b7612891524aa5403620b126e865a9f676ccefe11d9d90f61fb0e739c0e9a2c237e37bb469fd68ac5ce659237e6f0055f726b864e336770f52e2e31e425f177b209d7432b48b772da63b6479a8bcdc1c645c651e08a58f58c592f0132e4fcf871263bce9a628bd3bfeaa03e184e16032a8f01d55805bfc62b801cd5d39102ca921d000b7ede57316c7c36fbe351530e79e0d10ad57cb051974ab399137fee7bbd379386625d6221f8718173e487efe4c9b7ff326819c464f0dae858708ccdc664e0b9cf423db5ae6d4cfed94d5bbb7d555de9e0af6c995cc4ee602ce9b251ca8d910aeebc5ca2ce6f6c1e3899bc6b8db371015a6b8d506067bbf7ffc3ae51de2f6b712831da3ae5ab16c5d8e42817df96df4d4430d20eaea99f3a247a1247f38ddbae1b8304d559472ecc820764bc3c8c4ae6a496d37bf73935eeb0b452d0822b48d42077118e3bbb428083e05ab9e77d02792e764f46ce468487b782cf30103f39cb03e6f2c5f5cf0a2089ae0a53a1fdf9c9df0e609e20311cb145337acb38c423cf0941d19b14ab2a624d77593143973b2af2363bbac5619ccb377d7aad548f90ef4720477919212fee0fca82e0e7ade00818e856531a94c867dbde2003a704098f49d576895fbdfce2e0661b50a3a59a5e0bc66125ad279ccc615f87a01e55e4e6063c783b10328d4cbb94b555cb5b75406c78f772fb4af074221c7d79a662ca812b446ac22722bab36f30df27d02f9851eff1597e3d11318ead4bbc2906ae83beaceca8958977008f5ebe89e2a41e714ddcfec11443c54d7daea0f56e52f07752b0ab45ee24b79bcc0209ec07b8b2e381dcb40aff5f0b89579e36efaaed410fc4c27ce54e2905154c4c1694f97bcacb4e199e949268a40d664672d06218f103ef5d0f95f74acb6562ca7daf817f7762a9aab93e21bee334ab1280b7c3116a9584bfcff87017331a57a669874b1678d99e55ab3c866b2a3c56345ae018c8d276850fc47b055ae673e86dcccc67910dd0c99ab4629d51f9be4f9480f855193c46cbd677c54590c769c6ad9598c807311adb145139c7636cabb195ccb590a38a5382c56fcc826e9485155ceff2c8ae68b11b2790cb6bf4308f49a80a6a82257980a8c9df4f5474a40ced12ce4ba2c2bf8ce2fb85ac7111490b1bab43180a6f560d91759d6017913595dc1a5e8ef7fea28b1ed36d21c5f02df5dd1ee083aae1603866b688e668d8f825624517604aa7a395d0a057b7da6c232c7b280fcd0881e1afa1dae4bcab46d141749781ab841f638f8efb7acc2491ce7191631b716e9368f992e85b158895f6cdfac3f4cd701429cb015b89be9d3661a5f48497f04bd2cd1add44a64e6a20ee945276dc9e4034e62968a6998041b0ec982acd8cf0b02ad603faa81051ffd80b45ca6c4b0e0677a537141387549287ad58ec4a1567d40da171b4695ad0bb4b6d2d2963e7473cf7ad2cea52dd4414496224abed0b4791513f47ab0da68754b4a0a827cd771e3d5ad7e2e412acc5d260ff8a0968bc29e4a015a1d23376a147226a18f060a103c9c8d27c90c9db93d70652115ce2bca8707cec3af1c9f00252ad5892a57198f685776ab38fd5dd83b63b648c2e7d5b75fccacf1a2493e21ef8b91de1da19d4a379bff97a17ecd17103d5b3e0bfa349bef1f91fd55afe3c4a004ed84a19360c6790c69ff972d77aeed8998e27812e6f1fddad7628d64c0849f674c6a05e2f0c001bb8ee947d859c95516f25549b550f2bf2024122b20804f0a9b40e799a9524924e8d19342a669d33109528526873a996875d317757cb6f44ab919317318a45f5c265e2b1fe198501b9f1fe3ff5963f3996caea3c0754b678d52303777bfa0b77f26fcbdf9370b247776fead686e6ec533df087bc54eef481c0ba941746aa4be9be614c6a18b7e2a87668ab4b11d2f5103d8edfa7a52899c74c9226b5520ee042ea800e64cc566430672375f2c115bcc07e8ea895b8da8e9b1d97adcad4f6cd26a03b713c86c38effff5f45b9748c401f89a5df4a1a7cb8be193b29d5f409005dea50d96b30bad91f77f3f01b3ed21cd80c831002b1caab32eb598d9c4f0e28a739898c2e47cf2d900d75778de4b61e925a92649333c1ecfe832d546575058f63e1fe1b3d5d4d481d82fa6f726280ef06e84a991aacdd205d9452aad16c16de1e9af69e8f98634cf69be4a0b066fd700ed110407afcb7f4f415dd66652b482a8d014840df30a4db37a1bb1488d267ba1053a5e9e557e8ad6dc17c4114200ccd611456e0c7f4d24fd9e01b3ee23d17df0450271f6fc33da3a097b1f8fdab98d324ba97cd21c603f0802bb2fc837303e9fdcea34a6b9d4415255a105a80a0130f7439b0d5691a093bc556489597f116b14a7836f16a141d21c311975e13c98c0f15be1731d47b32a14abbe1eed36a517f581abae064ada1c7988811cdf762c893dcd9530bf5075b47feb6e7a61e44ba9cdb280933aabddd4261ce8d149d9bd937b7febfa9bfee47ad672966cee61c23413c38ce4832f2d3235cb5e050c71a8d6c0e04e672fbf65651acf957629e3eba86e983e41dd0cb94f2c6563aabea76a3015caa665834fa7cab698f03d1a82d6d4dff684899ec1ba54ab98aca88e5bddbccfd0d72659a669419fb57671ecd211b389fea97ba738ab4ad787175393fefcd374234d0733abdfb961a44b679ba84972d782d23c7bc14a48606ef9718558095be35857949781484590c4ae45576747c073bfc8cd85788dc16c02adc516cda4ba9f04cbfa0b894afadaee342579b45cd582646fb6ed50af547650e1ebc72d9528a033b04ddb7fb3facd88b2da828fc6876669dd7e8ce91a99bc0c95f7c554d6f4b28e4046e201c15a36b44c68641d44c2bc2b61f02b16921b4774fce62387bb3d38c41b023925a5b4b5c13c21da5bda6c2efeb45bd0bb3852e41d7d533859c3990e32d90f471310a27c28145fad6d8b751f9bca15775e0e7c9d95b464fbe5dae69e5e9c1f887aeb29fac1ad1b0e8fc866b4a49702b603a7814981c88673c5eabf017987e9ba7f19dc016f13d83953563a85cda64a19d5c0c196b1de03a83b3e1ca79c233455cb23ba6d31bca19e93f36ab7b58c993aab4f5c665a3c480a56614ab2ed52b00dbbae0fcb62f35a1fa0fa78ec4d12ec54b08280eb6bb417d44f2e25d639fc6d94765d5288ecdecdf5d4b0ce457f7ad4c73eeafe90bb46dec13ca63b569d64102b427b4f1b7134914cccd2eaeb0a1b719e25279d201a1ed376fd08e5d7b9011ed170318cb4929d9ad2e23dc01364975f17af465540dd8892879de77e3a9cbc8f3f2159b14bbb7bf33a6124936688db987c6e7b3bfdb75d2857341597941e6913d280a25ebff6a1fea5f0f44cf7daf8095ba14b430c4d8d35578386e414b2637ed26a38965d67397080dc4378bdf15010f70b5d0672522dbae82799d29eb33bbd769367756ca07d0939691fd3eb6c94bdb16dae32b1bbd4a4dc1adf3a10c988145e12db5ed1ce0162c39098069a8f97caf1fe7dd30f4d17e5f81f0edb730460780e784b2d24eba0b638c712da9f8787cef4614bcbc36cfc1399c52946037112b2ef74f649284d75c6a19443a7d713c4eb6e5ecce84cfea50e4365864fbac3106c17832747a5e7c932d0db1b3fceddef267b0ce507d3b9970b5ce7b0b587cc35473a2e7be3b2672f028421b626dda1dd86ed46f4c951a17916902a7f1c8e4466e9d94bc22ee6585588f56987be4ba5bd9063956d3989ee3826b43be930c3b1fce5f92129e4f15085191c373265ba11ed037815f84b3b641bb3e9f13ae174b152ce674dfbd588b500cd7f2abcbe07f90b4614f39624dadb6a83d1df0360a28d524c53d2d5c804b34867f1f7139d56e004efc34e8f93b2b8f171ec11029d9d66f7234fb99ae489794b03668ae9554525f736cab43d981385ba6ed1e251e7787d7b42707d4a4ef65cfaf34d87b203fc5c4db106d775516e06d4a789153b985ff65ca870826975c054b273855a6c686d3e97ee88782a16f915be44a90b3e1d97055b80e04e644a530f095cd503484acd8ab85748db934c93781e4c356d1cc5c35482388380323c4d9adc275d3d99697ca8dcab755428160447fffe3092fd913d1c15778787efa593df2387df88280305436ea75e59bfa2196b7f2d0cec038592aa9e26b31edd6941835d59639cbd96966eee3132a116c803ed0583cd06d6b8f1fccb97157fa4496026d618bf989f4a051254abc674a9f70a0368e20059489d9805af481f9e2e0f2fb9a419095424e800ced02a968bc52c34b97a585a7835ea2fb6713d359f73425403b3017e5b0d2cd087b98b4b633805744676c40ae0153fcb46bda5f031fe80d46d60a297843eeced9aa19956a4ff3de195d7fdd48c6272427c2b71f7c523cdba574ae9d149b702cfb778a626603302f52f46e2a51ff7fb0552cbdb3e11fddf14b21e4c2ea113f803a86e44a2318a9582debf30ee2cb3b38934f288af428feb0f9705d44ba2fd7f6a09ca79594a846feb7c533a8c7c0a279e2307bbad3a1c92b96f6c066a833a1ae3d22fa5804a33ca7754a15d848665e4c74be241cf2d51e323acbc6e7d89112bfdca95982384d3105aa04a5badeba44e8e247b9599ba1a042340c6515f36ea0118a60db14a1beb3686dc389b3caadf24a9201bb02b6f713407a5b0cee9c258276baa0fcbeca6002de451a890520a336c60c83f2dd4d5d0e04205df45b9ec6439f1861032ad37521acf3df1b26c2f54a014a4957fed76bf428733b78ddce9228e93ec2eea4268f41307daf123f0d6fe0f68d33885c105148a54d22832c28815d211a85f70c6116764f4b674a905ad2f8b9f406d4f6c64e48120ac30cb758bcfbac4c90a015c6c6bbf854ac70a35653910bcfe9d1b9f03addb745d3a5faf823dbbeac6d5752672e4f71ed64d8832b1a1d0babea89b3d6fdd8b7458c141517c73485e3caa4a3b8315365c63b5e6cd5c5cf8b43772d534c1585f2652b011c2471157946faece90589c7f61b205d9d94e2b7d897e55fb76b15817e7170b20d6f1aa0393f73c01ff73fcf44cec5b24c5378a9f11ced0e4d7520f1cd2521da6c4171209df94ebc3d123447256122d4e1027ff88a502adb401672fcda6a8671d96158ede19acbfa89f49cac0a78f2f1ef6763035af59c108587d79bf5fbeea53839671b29f8ca1335cf7e535069342da088858d78e7272f6ead32b80c562ad53d1768ffa49d52ad668d35ed66f1abdb7df5bae9e8c61503289ef8988cc10d9a661bd98025fb0d9c1becf25e9be35fdcd670caf484ad904d85bbb2a22c37f2e8bb176d3cecb5ca9377b637e871f31afc210df2dfe1c429fdebda7f6546b0353cea5a8b76f272fb676c4b5d99cf56ec691db763cbf2d754f65fcc8ffb8f2cb8d082afcddd0ae834dcd88b0f1a6c0ea83b9744c03074ebe96beeefa9b7535860f27706831d89a5b2048152cdbf45176402128da41d6a7fa5c7fb6ea6237f47965826332e4059d5d23682a16af411a5fd6eb7c51a3e3b5ba722361df34e232bc7927dd705e2b01f958924c38fece3ca91064b5623b732adf34d2efb136d4040e484191f7333c40023e62bb636ae83a403e70ea134d172d5f26ad9d21bc4f677e3f35e3097cb281e44a80a602f672f287a9bccc3b572a26bf0137d6c35eb76823c22ed4ac24ad095e8ce97299e13c145e200742c836adfed9d14c8681d594bf76c7cf662fdccc4d3a1bc2add7b7472dd693a02f86e8abf0e8db219e3a742d54e765552a9802c113724883ed71056b96503b6a276bc916ac7b885399d37c916425cb359d83c147fb1ccdcfedc7f26f6cce7403cdca4e7162afae0019c477924efaa2be14d52e21499176b60363adcee40102cdc18d425737094cabecae518d8d1eccfe1f29a5a7d1527e9a6fb892c500bbe80b110ec72c6e8a984437132c69e39342aa3b11d29c3ee41a37ae00812af9ff2448aef01add133c2a5f806e4657c66954978c39b340a06519cef2825a3c44cf5cf04201b64bbbc4bc16433c4619ee0aade616f06c1306c653e20dfa638debfd12ee782b6a4907313a0f19a31b717ef106827eb056282dd2e9b3dd221e4bbaed6984edf4592249ad008f06c9c55a04be76eb9f072bde664823c37628336578917f4a828aad158e299181c860acd715255d3ee41dd1d360cdc845c9d8a564c0aeb69aa23c0c318346a2b2461954c9bf60329efc406d59dcada9f99bf4b67dfd96c0bb127d28f9130a454f4fcebf066b49e23dc1b666e3e55be0232b5ac3ed83cfb85483620fe70ef8a67c856cd62aa9457138c9aa7b16d11ee7c1addeb6baef5bae7bf6661223582c48f461492c51c15647167452875462b75d854e9158ebf13107403b03cd6d680e0792480a1f50b737d7cbb147a4070be7f0aef6590fa896929882c6fce035942cc0b190afa160b675fe51310e5be4812e1f3872192b325c8748f79a527c0066b5ead1c11ae7374d94c8b6df5e401d9258eb17b6ca7ae75eb2308a0cccc356a29cc203add62aad87889485408a493402b237d19e62f6bcb37ae97aa4c375f46d234eb7154d12cb564dfce3d558a59801d5c1d8559ddd8f606502fd51252911d8b154d7224470e0c501b94b32daa46cf4e9ce625fe398efc478840198500d60e5ad4ca25d12622b7988fce1de250dee2a86a4bc5491f4feca19a015c129516144139455a56656a90d18e8141c67b86d55beefcbe643ee3911f0cc270eb5816eb01efa102d10cd6c926f399c35d5daa94e3789be43a9a3cfaa6294f6105083d33c70704d5f2b94f0ed59b1a4326dcac009ffaf6f6150bee06258168ae6154318a36759447d91e1c46a5e658dcd414ab28af89dfd6a8bcf1896267447abd6243b15e92da2d3f808818003a492705d30e4c78e085cf74acbfa3ed7224cf3449a7058c98a478e63ae984b580db02481cf18be9dc6b9c7c30b45d5ffcf9731b967fd54c2980da8538e82c06a567bf38a54c76a301e50c4b6fc6ba8aa61a0149cbb75bd6c9c2527c7d232ad51b2a7abf5800d530f326676de58eb8cfd204275adbae6c8a5f22e10a9d1b892a55d0bbefd6a16ac8fee9eca3e09dfae1283459f5b0b11d95b8dde3da4372c3574e15ac02ef1f87798f99233506221ad012064ff5a645f1780475e225ac78d320036e6cc42b359e38b914c202ceded3fd3fae0c780d4352e757f2c6e92b0ebb45f4c56b6c44aa49fcb1fe653902738e10243b6635aabf677229c2c732a3ce97a9a74bc540aa6861fe529f72b643eff28276aa2e2c36c98b7cd71b84aa10919e1d254dfc94fe5c13409a53bb8985bc91b1b10d85a9deefee4820fa144afe3598877b24a7ac972925a32b8edb4a8ed2cdb794bef1e9c1a03238a8a3144310c6b9b43b34dbca00a9c945cb675e547c3e8861a3a345187550040b78c3def17be0f1aaf8f36b3f7840b451e4bf17593cf945cba4846d3a8375037c7c118bf1887905b4cd0c4f937002541a05ed5032130eca07226fabb0e7527ca1048b643815e915afd785b70d11a160395ffdaa3719115e47ed2ae8479192c14e433bdf7915496a6eb600baabb33023544887d8ebb9e5428a98be0e84e6af2e1cd3934ee90b24960811068c4c67ba2457bc09914b33d503ddfa03a4b33f321dd43055dede9373570d0f62b0446f9e2c41d7dc5f961af5a57aae4c0c9268b756c2380790cedaeec57fde90a2c2c0c6b8095cb230fbd7ddedf5931631ba23cecdcab1013f7721a9ad502f3bd36f87a959ca31a6bb2c24b135b84cd078efa3a0a73bc304ed2d3d002fd5b8c20781a11b9c15e1de328491708db9c0ad424f116fe0057a61d9af1adbfd5eb1de6ef921f36a5118bed30202a41f539b8c58d10bda146745b224f43338daac5848fc3bce7912fe2ba13d352e501472cce8081a20fd39167a23030c1c0c1c636d77dd26a2af4f0e8e31b0b5223d6c3e05e1da8455594eb4d04bbf3ef96f6c1db66e19dd4c5d15d85b4593ccbd8c8e7e3e4b0e7ba38f4d99e3940f35042006f47c98ad12aff6f0b0d24fea7832a1829d33d9599d76ebf014b33380350a4a17800cb3b927614d39fcd36195fc8853103fe14c99042fbd06e225b1f329efab1e8438cd8c9f2d13714c66ba81e21d7a40ba0dbd5de1a3846ada80027c6425025e5ed452a588912c873c33e72b571fbff7a7bde9910e9bebe7f0f2310ee039c6bb543929f63a41d3ded00a75159612c7a5f0bca0a4bf529092150997d207473dae9ac4db026aa28849835d3010214da742691a32eb4efa9f5cf03b9f13e680d609ab58d8a4e84fd85c98c1f580707cac141daaf42d553741f64c5e260dfaabd9cc30d8bb8ba498eacdff7112fccd1f71f8d683da909fa2ce3faa305f1edaa2654243aeaeca4ffee6bccccb34dd140a44255a80154a4d47e1d89ed04b2036d0be162b47d104e7b9261a46d0ecbc26e3dea7ffc0cbd85a272b96ab43c6e2c3baed363f95b80ac332378faaa8bce5fba86c0d1b26dcad24b721e8a3f018121e73ad95a98cfafa2c89ac95061cb92a5a26e0f89ddab278f75f787c0b242707a426aa2f0da5ca377c10c4a5e61bbac166829a9cefc62d8a98fd6aa4a78f2544f78f0fe9175da6c39dcdd6a642351b037ab46152d21991ffcc5fd8490ac5e29fc982671e04b711d784fc9b0bbb230c31d607a7cb7ec88ba74acc2c7d0bbf9f614d63c802efb663c16c8b3b44233d71a8249b1d94d1084cd3297c1ce6fd5778cfbead5325b2e4a266049d30706002541de7e3a0e084d5a385e31b2ea1e9cf5bf12c6c04b89fce71ec9308fc79d694e3c45c286be4f56f3db2234a1554404b958addc2cd711a860b68edd6a606f939058fb5039c26e2d8df7e3b1edd824c52e48b666509268320509f81c814e318db74d1cfe70e92de57c3b8cb9fe26f15512580dd1f366b5f35e12e42ce26d9318975062795813907f7f5ef534b9f1090188ab54b4d06ebed634ea71290ad1650f411810ca50a0a8c08d0eaae9043e1bc5b6225ec61be3596ca51736ae82b901ff3ec38bd04e0e54b9d7863295521a1c132745c9661e332c3901c99716669095bffa10f6a706de1a40d7a41cc72e6412599e4e51f653989c05fb3a852cbd4ad1bb7b531d2feba9cfd7366c1a733a79313f1affa6b1c129824e25a69b48eb6627d5e1675a19523f3502e8c3c69d9b877f57db2775748ebdb294b14184e5a333da7582cd75e715b7b3261ba8249195ca4b9e6405cad3d5dd81bd02949518e1ec60ab17a7c59a0c691577415f86d9b3743e1b85053d66659e1a429cbbef4bb9cf59796cfd3ac881fe7ad91fbe82a7ca2f4c2e2300904c0b85d5b14bac6c32a9610b7d904bf265f6dcd6d28f9c531ccbe017e3ad24f2f5e1a5d66d206f17554f9d1147150e394b24abd636bcd399a1164c7c6f79f535ee3119b72a7dc31fb68cd89b0f82483c0df7bcde1d37e4be1c2d9a30c35e8624e0ba6497a5d5ec018c8141c272ba2832a9ad51667997ffe6dcd61f17875d409cb221f3d13c292446b8c7f09e96e957f6b6c733e103ee222e71293d7ed1af284b28b255310256126e3fdedebe4450a0af62f3ea051039e47aae683fd7aec4acce53a302f44dd9d0fd81bc31033dc6a82db93c2d35072e3000091c466b5990db9283a43a61cc226f3a018071b7a80301c1e9d578570d380f43dd02905ff2fc6074529fe739fb20f2b36db59d7172424fc0c2395dd46b7565ee35367c911a4263999b7fa120a0ddf7fc37eb5ab94dd2e8d21511af14372dcfee0407a3c114e5f939a2b7bd2f73ada2a38d1004d8b66ba6ed726a4f2c298b4a5a9afe3ebfc6b07c6b7de68837a206225d3d471a4f99da19e02f873211e8751ca5c2bb3329d9b95f277bda25603ad5f576240c00ee304b1c039ec05aea2dda9e458376129eb60681ba8cb9bc65253c0766bff275f4741b7a5047f170feffefc77c7c779c683a55e3be79d49a6e78602aabdb03b50b59e2574a100fe805b8fa70141c3167aed340088e7dc62af8e3fd23ffb24874c2a8a40145d134da989fe073e7b882ace563e36a049c7ed29c57cb50d83e401b98416e0c1ad2fcd981df7727510669ad5fbd893a90cae1e879abdc847c1a8512b8978c0e57821c2a5eff037c3d22329748f782e9e2c7886099e898be357e1dc355e8b62982f8781d8bb9eb588ca7631c9dc7c064d2e1e91d42ee7bcd7be30adb36d4e7c70b75659e4707e7e7ef38d304754a3ffce062d54fd35e647cbf4ed21becd61f97e6755c6e6c54d8d15088820425f9269720248ad76eb15400599a172b6ae8b8b9abb9ffa66ab90891a2ffba2fe2350185f0da4b0f2c70beeaf4f8c010dcf36cb5cc225b44f810d1ccd2b70fb8bdbca0c75068b67132fe0ebc0a1207eb0a0f1e772b42a63ddb85053ddc4e3d9f2f950ad2793d9de84aeb25118a283d74e9fede82396c5a0baae2818017344f58230168e57418285dae722f2a88111ffd151817d2e3e62f5c41627b2130cf87549c1b4c96ca20adb495cd4a6bbe4d87ac294a75d609f41ef3348255cf10b5930fab1a7e933710b6e9c5af3ac9f3b1bc879167c3a89bcf6881c16bde8805031afd52bcd5e3fc2b32af340aa115a99d08d4e61c33eab40e7df8aa5ce769d9a430e56bded89cfb443f9341dac2e2683229f246b631f8b4fd23aacdffb35d2e9c2a4ac412d54831891ac4278ac36d9fbefcd0a65e5bb01c54460c3b32c3b1ad5d87f5ae99a57530287404ac1e6d17a9e4a8dd070f74eb1c3223de1590b65165721ad6d3ea4979959a268d35f95caa4f3fa63bdf5eb2e002624db9b2c88506b202d552d069ec927fc736e5fec7ac97b4dfa2ed488381e7b1e55a73d7d565d396701a63e91422dae362160b6705c22535ef7334cc0f82b0117950827fb6bc2e056968d8c622cf5f4f4e68e3bda82b04d6ed5032ad569245ba817465ce484b283b759447c145a3faa3b8e5de3f93bc38d8c2a2d22a96c912056e3bd793a9e90f820aaa7380bb29dc633fb5ea486561ac658c2be2fa2094b0c95556b88a47e341e115d641ed27c2eca4da3c47d98aaf23d0a199a88d0e99722849cbd6c7b2a3fc4893cf192f9e44454c9101d6dfb90229a29e495d9fedbdd4aab3cbee9bb6e7f996e8259d0e979a1d73b5f62ed8a6346fd0a8870f49f4fe23e048c87723e5966d2b761d76f66b13a6d87c258d97f07fd5076a1925908de9af18c390b44a2bd8b79b27d3ebd6d63950711fe3ccb3b6034ca137da14705c08dcfa4c22881ceb2429cf36f361db64bad88ebedc253a6d685fa229fe13aae54c27a80f9134bc9133ec5574445104b896d7c1bfe63a2a1d7a200bb3c6906419c41e411880b10eaff447764fca99cb222b9790db0fd787555d1a952c122f1f3be26e5dc6a5f8a1959f799a50b0729937e036cd71ac08450447896974b9f80ec843fb9526dc729e749a20a2ddadc1109e87847e3666c76291dbcb3ab2db9dbf4dd3cfd78b709e1b8ba24c32e47d483ba12b7e92f52e3735a5e2b9cb86e06ef1c5a7312d33ef1913fd9e348d021d9643f8e15296bae03bd4a087bb168481bbd2fb12b0abf4e9491a79ccf55a6ad0456a2557e54c6e0d89d5b2053013eaa9c84c83e837ab907ebfeb13977ed072458189744d6a58c631908172e2b47efb722a6de7ddcde45ddb5e500aa2d50523247de819bf5683143f56d4fc1369deb45eb73d291df658b16b46765303e7e75791254927c30d9c1a234b879e861aee55f5c5560c10a4f104f2a66eccd303da50cf26804726ff76437a6710bba5d7bcfc456e862f5d23960f8b865bbc81ed1d6f40f2310e7d7dad9cadd8110d0bc040065580af83d5408d4d382a68c2d17dcc7af520831ac043eb3b942117dc61f6c54eb6ef36f4a92372479a3aabe4b9315a7abf7e53475ce4a65776e70f9bd715efe2efacc68f348cfe8d5f5a47834fbcb1bd0fd00f15aa4e61807db1c07dc34d959bf3e6e9cb24c4baca72a8a5a403a6255f35ff9935874019e85e13c67cade9c945fc82831257b20c1022fbe8c8a633b00641fea49ce23a9c49d082d9c3645de29869cced18d3bbf9bcee297c87166c679611e904f0198e3da12a3f838501a0935dd3c5c6c528f350d471f352019d39b61a0ca81a0984e910b39bed7724d79a566c479f0397db2d25c7c0d59e1e8aedfb1c997c1232086dae07b600c12e682b2f6cd14fc9d3c4c6ee9d1cc4eec095959ddfa49359989f6e83ad717b970d90908483f33d37d612f35ad7d690a3dec7ef30d4110cc91a719f0a15dd88aaf674f911094a00aede4aa1db90d230232c4209682256f5d6bb203c6f8b42a50a9d5cf72c2fbe04a6e5d6a657fdf027a5107a68c371efb8aa0c6cb8e3b95aad777eb1e6da2d61383938ae6ba8ea8c23bebf201ea7818e32ebc64843c244dd5af8d78d40e703da6a57bcf65f431ef02f5f903e89cbaf54a21e7efc3e5443f28a281cb8887c47ad55887b18c76428fd1b5147d10261608765e5630bd3466608f03aa3be12d558b0145a15a7eac5d39804916e78c221a9ac1d7d6d3e770beb923348fa1ac0a17a4cfeaa1198d3398efca635d8d2c1c2c686f7953e838e5e3e939e80dd90ffbd8aa1c2baadf7a9cbb8a4edc2dfef0519923402f7962eba433a0c014bb45c23b4ab8bfeacac249e415364f72c88c926a97efddf18b9bd8f0c325ef98bc495a6f8b9e1c7cf37d9c06e4f1ced243cf1443e2e4162717ce60bfdfd143ffd2d0a971585d86b8ebeea64b6b0ff4da0e226b4b5890e7de629ce3287792d2efc1c52a8a91ac71f31197ae33e7b9bf5049252d23f37455b77e88c8bae669e32d9e9b7bcf6a767731b01f1b228c69148ccd395b68be821971427b17f3f5ece03ac9c6ebcdd05a274dffce162a016f0ccada0733eafaa61a7fdb40a166f3c596f88b4018c3a12aaaf35914bf9edd6fa024cdfa13b2703ab81a5e09b8536331c0e452059800336c34a3b402e548e9e19d6835c073940e8fe4a657e877a3cb81e6c78797b8473adc48152bcf5d641890ed43f0cce23b5a6b0f6c8f579f9bc69c8ff1e57a4a309be8cabe5654e3c67e1c2a8691d720e0df86e0f6f9b1f7c2ab7cbc5befb97decc832e14f2d9184d2bf78866d955b411bc50cc2a362b64dbaccacb74fda60cefb6412a85d5926a615d36c043a4f17e08ede1e3b21760bfa0b7ad13366e8ff009f8312b49f5ada92ba4f13fb80798e654b2c511af3a7b8f933c21ebafc982e2f1f8770646b3e189c28d35eedfaa1875b2b6d2d7040e4a8966223de687a9203e439d39f05576c6dca788190b0c5678ed1948daf59761e2ca0bb36ee01fe6e9d4844b2c6c32ed60c1ea010c1e254a872d15212c79a8994783314b23f494fd29d60d7a53f6da5d54a5f71495bb18a44c5e37844db08e10d251471fb59b32d50a85617051a056b25217fd86ba0efb21c5fa482cf42c53274ae94c7efd36356b3e6d8e73a972593aeb187f16d217d5a3fdc6621b7ca47dee3f30ec36cdc7bdb2686859f2eb0327556bb1cdd9f48fc3c0c19eb690633398db8b8ec90a3b5b8a69c38670c628d5c7094258c74d8d0d8c239bb21545eb21d252a2740f5383562418db181db170d723d5a786e3ff1479ec940a800bf956fcf53c54aec29bd44893bd62b6eb5654483b8c465d74c02939eb0af8b676af107c9406a925d4a146096cc0de207a26df7534c1e3c16d2806ae8e34a541499160a402d8353d24dfe1b28871b9828851a229e69f77306b11dd88d5faeb6a74cbf7e0f0dd44533d20b9a413a471175c6a37224b47c25f04703bd3ae558a8b94d635a72629b057c39f317c95938983976cccc94cfbd90f82cdc4c1bdea6e5fd717d0c8ee6bb91b3db67615688917956814ac43af64a9622b7de8e1223486b78d2d0f4ccc84dd0744f4b57511ced853cc6022782c36a3ddf76f3dd40252900c2e315e6088f4508070b4f7160ba0091f91ccf7149dc2c2f2e00ef69da309da85ca2c3ac85e0d56606e0e237275f97f654a45357045fc93b4ea8c1b64dc4d43018453d82bbc5d07a9c139bc75472e213fce5003fae4510d2fd18721cba3550a786278998f12694b848150f5302bd5bc6bea3c0c38c23278a4bdbb146b6200cdf80ded994a893fcf8381690a1615d13f7db5ff332c2e8769ff63bddb466569af0baa89e0dd59c70f63103fd89bb11ce0e5ef2540fb095766d5f2b4239e44937b668ad8411ea4b56d207a3677bbe74c97887bd16902908f3f707fb9b7df232314ef2bacea0b3802b92a6db34f61c0555254f53fe20764c8f63a41acc7c0661a39db877ad2e0140099caa5fe0127c12b00ded9d9fdd231c7c7cbb36fa059d789dc9e936ce25203d913c894692f7b1e9c5a676ddd91aaa74d02fd75a703be1944bbe65e32a61262824244951436454da72708b0c97dfdb6f800e45f9b918a38799aab2b241b20c8bc6e6cadd422997eff569117e6d642ac8aad066fac6e59db1188101923f5d993f497ca1ca8fad7a76149901c62b9ab7b2d8cf923516c40e2da579427f549c1ac821c17acd9b684aab3d88443f87a238f9d68884f534269b44648f49405d19f114def617febe6a6b28aec39ec01d53a87d021f5d6a335587703b01032a4a77ea80463ed697d7d37af02b5bad52bbb8c9913dd8332b08eb3c54ccd2b7e92ec96b0e1021c7335059bc2d7565f2f85c907acc469f36293f592176574a6282b3196c2f780d59fd0cc5d800e57bf1dfb9cdd546d5815ab6ba62bcaba47312f0b2e33ea242d08fa38e76ecf822395c823415266bb1319c81bf9d2e74359d622330972e2d5920cd08f0dce50eebc14e97f544a8bffc84d0aafef6f7ba92dafb466e1ae742bc1329f341fe333e1d389cdb9ae81d57fef50450d32d0ebd7c832a81e545b0d98aa75a3f2ef5c4144d462b0854c42fd1142270367355430a21b182a3016578ffa63b3058ba6e54d4fa9a6287804da014e24cf2706457fcdc3fc5947a14b9aef4e31498f4762c0aff7864a5bbe0304e2d60db2526246d374257e0b1afa9f8edd7b9da385e6984686942d9dfe835ca06f851d8ffd78ca7e2cb7f6bc06e76c8762c32189ac280e08a2b2eb32313bcae28866d7200cf346982c7a391204273487ac51fbfdc50783db40b80ae546441231663b17af38aafeb27331fc0a0d64a8734e0bba303269dac2d3c4d0ce5eabea4772591e6405b57b8b7eaa32c82992c0ad77671fccb490dd474860e12a2c33e5e4ef60851cd80062f80c7724c8d623e4a4316f7e7153eab6eba3d828990008cb5d6f732796a7bf10520ac975b369c5c3495c0d6e3dce22fc8b092313ed9dea0bf3ab6acc1d764a6c1bcb6dbd8d19b94a77da62a55c0b07a43aa220682c51d08c7140cf6ad527b0f3f89138e06d91bc9f96cc1a4041c8c7ed507dc5daacb886ecbc124f668b73d392e9c29196d3e0a3d738d98ee9db0b2ef88f791f490ab0672ff8386fe4131bb8692161c9757d21c55d08dba0d30dc8525f982d9cb109bbf5348754ef7297bf8f0429ad93d54b7ddbcc23bb6c0b1623379daed09f38c822c93c24908db37b08ce86b103488b6e621406dee9bb778c67ec870647ab2694921a03be2cb4b24acd7720bc0ba7616c51b16eac05122c1302daa15fa5626903224c2b5ae8ad6d0fb732677b45020cdc67b0fc69c444e2dead54fb7f7a6c6ee48a40be8e0b66cbb5dc6bcd573b90f7c245115801440f43f631907587a5eb3f4dbe0afbd6eaeb78cd2cc08a3059698859f9caa0e0e7766e0cc80ca8c6195dc170c945ad4e4932c8e3d8f452e498c638f56c7ae583d0706dc408858fe8d3d485167b238ff087f322e95d3d81c9c92ee05aa6f73bc6e8146637a95d5eb6ff2c79e95d139c54c2f407ea3f7d8e3d099a398303e5489a1400d891edd13a5e5bb6a801508b2e00faa91b55612df4f750f75b9bbb46384f29969c694783a116aded77c0858ecbfb26ef9ada1bef00069f2a4206c296c66562f7a766f2eab299312899b0ff76d05792a5c64ec3197e9c3737848d65f785b24efd25964afb47ce0bd8bea3705a3083c16997b14808bd20c5e1ff036725384708ade15d549d5a9d9060afaf6846d53ed67fcbafd2ebad7bfbc039bb7fcf376366c85afe75510e77cde5d6037a69724e981dc8ab27bc2e8247e0b11c3bc92b9537bdb162fdc1e80fd58d93675b67aee18caad7914f37f47760913dc6916414b5231b598e3381252d2efc098ea4744d9e552acba1c409f0d57030dccd631301a03d0cb6babbd554d14872d28cc61233dfbbf35a2ac51b9a499bac074d3a27d8de8bf8726f393daf72c50ad8b95cb4f2bd910112cee39f24e56f715aa5ccc46fc70619f45d6619febd4e383ea65c54de4363b2d764469a39d51263a0a4772f83301db77a89773b355622d5b726cbf085f35bfd242cc262bf9b21ab074f32a4cf4cead9c14aa6b4b78670110d464e25fc7619fdf766c68951e0be0888a13a329718b1bb2b048bb7b28a17906c6237b87fb8766689c766c749aaa5699337ee5add6dda6fd8a9f65b35035701b7f339b320d55250463d7b6e95348947d1b1419efbdad38ff1084cf1f6e41b4d93f8080d0c4c9911c1cd7539200f842a030b466afb73db49c97bd9db812b9d112c51496491a7db2d63e6a82c3ab7078492640f915ca150411d8dde3d06394865cd7e61f90bdaebf8be211284735a3bfedf4b049b1eebde9266ea925b1994e3f3dbeb3e30892292455474cb091d2a04e93553b297a8f481a475910edeb84b43403c7ec60482ef6c7e14f95393d89d1a22849843b4b0ead71887db6f6d40403055bc3b369e15bdd0ea600f73170b57afd1491e5d24440f24640240c37c18e55e2bb87e72e0a9aba347b052ac5b787957a2036c260e1ed282b8878f6397cae64b0a86d4011ad9b9ef1ed2b46bec881f5bb0e02ebeb1252369dcd0a089fad7f94ab96d27cc912c6c18fcfe402bf8bfcbe62ec05133f9ea06e7cc74e49b4bf34537303969db9b3b546dd17c787eed3a32dd11c1254c10c7aff431c1c91713693c791e59f3279e6b7cca3c90ecd8121f6aaeeaa3fc32afa7b2a599b316d564c75cfda2b56b7ee114fd28f56168cbfdbc834e83c69158737ae4ff62aac9aec18484e3c7128ff87c1b4e7b1f2e3bf6180c2132750ad53383914c87c73910ef17a8dcbd96306b2637a4fb1036399b57660dee1f70ff09feb89229037e0498e657e5a618d9fe5d87d783fba9a1504ad23a5ece09b2e5909b28840c2d8c420d80cfdd8fa27e53f7a318bd81673bd1109eb8010a1bea5d170af8c4be13b56c65b13c6c6e20aa99146a1201fd7fb3e531058a442f789288a7d11a513f336accf82e6aff4a1f4ecdb54d92f5049cf757f3d3247cc43d25e75a14090de6a843133897c95c92d1b3a23efbb19590c413ff01f9a59d00815b6ca2d7d31e3e30fbecee58e66be66ed59f26e0bc95cf2ab4023ccb1bac0d043b284775ac0d0ab2f17e1428920e1e6151dd529235231b3a9133cdcb2a4e464952de20bca29451d95b88f062fbc53209919dd6d3113e16e9edd800094d8d753d7e3e8f4a89e57cafd97616b39dacacb28ca1f8e04de2c0042dbd91fa0750ac8f9fadc0d01180e77ef0cc328703f10a706e235ffbc04041f11145508a1d340aecff7c96770ade7e3082585abfefe828310fabc83f63a1053d03ca7af7f28102c3db3ffbd68f65268b1745ade078891a4cff4d4683a1d2ab68acba5037c3c67664e7191fa3853355d31e35c82baa9446ea598a3d2ccd8e186b662c84a5ef20398f030d5ca12e767577d0886176807b5636fe8d21827def88a6904af1444f3f97747a8e8437e4036323e723955606490753cb40e33b1c0e541c7f19cbaea5f2ff0d8262897ed29e2e9df8cb83293a597a0edb488358c6653e712b6f56f9903e32309c4b8d662e01f46b1fcab7f3b6520dcdb4676dd7f73a0450fa0c4e20c2722c6a0d5ffc959fa97545eeaa00c147b9558dd80902d5d6a605896d7386c06cc52c057a729d2679d66b34f258563d9e9f30d44f6931a6858d8be925022d160cca8289ed1a4de433d9cabb80530101a394c9aafebc2479afe83fec4177992cc11b3881d5ba5712803bf1b5ea7d77897604570cc2760d3d0549195fed8d6cd95ddcf73ac05a1b4c1284632606d9846b91098555ad2373337f363ddbc09f9ad15e2b36daec4d49c19061ff890bef25dd551933114051421816611bd4dd6426bb1c1e4201a60bd1f344e29ab21914a674e2a982b53cb4897c5b3e42be8ca38dc88613fe59fb4a0774dfabbe8b0ab68e7ca399b19874e29dd0c59dc836235069636607396aad60378ecaf1ba80379f7e706fea73eded68fa3e3e72ba47067f99c43eb84ba349b31f23a020805f3ea083002c45959b618573185efb7e3935403a530204af8abaeba2956cb31da58308f0c8d1e6302b100e39f6e4c9cd326823be23620f0dd5c6ff15889febc2b05f1e5a875190b5b85d198276d1ba8d12ee35b69220075f720366d45a4c0c061065a44f7d746a90be9ef607c797ede6add044120e8c72e35499588e4df47cb52ce834e2952322c922a2a263af219f38debe36e3ed9c742a2fe5ae30f03015c1efea287b81fbc96e056a25c6107b1d48d38de8a5d96a32d6b93d1e049b9bb6ad7e203d6fe5c5c7b4b04c377e368901ef45677de1924953d347ecd26924d2cdbfeec07085ff55487c81cd0723f8a86a523f111d842c39418c0f995214a3be50eceac3b4dfdfd66f57c41b6472e0d01eeca2f538b9b6e4434e6829a8029470752511d23b9077fb6189ca1b4795f2587b4268ca02c2b20b85ed9ae34b542124b6c524889c48eed25d6955e5e8e4507316614b80b961d407634be136b781759b315138df7cbedd7982795d7398df2b3eca7f4850bc733df55ab913dc745bd502b7ad713788dc3863b9b4e76f58404b458ce5dfa9361c49e32895fe9d5d911d490ba4038eeae7a9423d11ed7c204a293bd649ef17a2a4c68c8ebc800d6b9ff522e6c77f41e3762bd5b017966eaa3863137a80f039a8c8e566bc1da0f70abd2b574162697fa14566ab373a5cd12791f336f0e388cc9154672ba4d342f0d3a9ca6d9b7434ed895f7b77806d0c808a3b72f62bbbd0da4f86424dea87d9c8936a8f21a3eae501bed75fc99aa66400dc4b464890b2944fc8be57f5d3d2e7b8c3201f6cb1095b028b6e60d8ae6c7bfd07fe3046b0c77a613c72ac5174ca377c3050543fe86b320ac6c2ecba85341a34cfed37403007c34eacbf0c0796886469e4909f80a6c5b36e9ed78a9df1e5e979b6e4606b2df15bf735acde898fa833aebdf0f75fe844ff23dff4148988a8543cc80a70454d22e141a58405778bc516ae3698b63ec016e9a0acaed4d316ce9396aea9c2401b98fb8b65054095e3e0521cacf33427e0c2b2eea5af10e9cadc48622e4a1a86ca682191af1ceffc864ba9240bbeae66243dbff851e8bc1dbcce9787aacb3cc46604560498cf1254be5890fd41db0a8e135ce3c566c0b40b559a17d08020e4b1ae14b51d798c91f44cecf2e1aa7a623b8e7386e50fbac9bfc7bd82900acf70b0ad952e11f2f11623cfec1ace35128c99552f03cdc67fd01946b9fca2bf49e528328426ab98e9f356aa756f4abd6eaadfce2f30166b0d5b65df7f7169f2506f97067dfa921996988bcd37a8f703634480bf8c7ed8dbbe2241900f4dc8711008dbc6050f4875412aea1dd98f788321f10b76aa0d041d0bd4661fc23c4828e3c60f2926d44996b0b72a2f46e80ecd3ef334cfe5acd061a95eac874557fc3f464ddadaee4135eab451dd49b355791e477d29af24981572a64925f87a10731a148b40b1c2b258d867151162c16d034738b6d1677ce6a4275bcf2bf66cbba4f7519afbf7740a93194cfdb0b50f17bea5485865031c39863d11d5227d6ee767456b842940d416b260c91e1bf8875c0449edb96a3b9b6ecebfcde4afbb17e0d45ad112c0a60c8ebb24fc807f3a885ecc62cc4d6971bf679a715a6b1916593a7fbe889ac86a723968a5ee9781e56ef02961de983875867cbdb2171a2047389f53bf67937ff4e5479895fdae9549071b50a542d9a4ce5331a66872ef65af1ef438acebba25971e22ecd1c94004c23134adcf880304e2b43bfb894e5a25309c7cf9de8462cc8657fd9338352be0234c96419f5c5eb1705856936f86ec8b0780ef4d8c2dce640307865de2755cfabbb6def087ac439c2450ce3f047bd6bf510a40a2b5cc55fd00cf8740ebd2fe2bc03069a5a7a2f46d62ef96e007ab5222736721a81bc9b8fefe81aa29ba0aa68462c59adc32bb9db04fb330a806b97324b64eeacb36c2a6835e7cf00474e336401a9d629428937a3fb57f718ba5cf6e204a8e76491f75791b4de8b0a67e9dc1fd3c3cc6cc5d4d872e0e42a4b38714107f124a5303f6f232716dacb5dc1b8f0f9e013efd5e80d689f7eb48dc13831dc00198c5431a8eab08a0a9867fbeaa30e9fb00c2d27c27da181fed3b0bd8109c7bb1dabc8b120006698f90cb4eb32b9dd583b6fd898822f97a113bbc166acc9d76789de87c6b04f16d5f3db7575eeae4c524dd41bdcce71253aeadd246dc62582f00c972a71b4f73f64c6e0a350f95562f30328c1853f577706c11fe096993530754cdb0961a01f58d9bbaaf97e5f2b9eb6c029489b70389b8b0859d57efff52a4444c53dabc36e273604fc59b471cce81970ec4c3c642f275015d7cc1067c6121a3e01ec13d09236a8f64d0179f87b148d96583ea2c19bedb3eeda4f8c18ebe7a7c451e6c2cbbd4ad75f46886fd59fed7f2fa964f0a69fc15988175318d40da3a1010c997dd022f2d6d746b6682540dbf10ced378e59a34b55c036b1311eb85dd7789a49c0a57d200dabe1232fe18e0f25108a06061ed1ed8ed054757eecdb0a1b21f9a450d488db9f395dad340e5a485746b6eba1e599b80f7e81f5cf6c4cbff4713b9e234b87f73bd133b58bcb9b1fa2aefe15414d2d6f273543bd5d4f428a671b069db00ebde346ed9436d6eaebeb6430c05d1f9e069c9e6d12488354d9dd48c312fc0bb5f486cd79e2a714500831da13b02b891e5db56626da8b8add9287ec51aed762a2fa2bc22d32ad7e0653a0ba2057afb505b2517a047c534de7d038270e3c2cb2121e7e5b51d19acfd354a90f618f6541d3496cdfa44c69b7245b9fe906b144d3feb795a64dbcc7b016349a976808ef02a0a8b9fdfd949173e6e10df60e167937d49d149e3226b02be841505debc736343b1b0cbb4010554d1c70b472dd093dedc7ae5258f9f6e74dcb6e786560a2e8298c30c80f86719b1104fe685abc3d7ec8464b9a1ea846dd68b1d05f9367c53713be3b6905bada15f808e1ff0d8cf552c8a5d8747fa6e56a97bc225427ac2ff57b30d31551a16679dfed573488c98df813bf3f07ae7fd63a73f54294780735f68a045344fc8aa089e69b0021f6b2f12129996e7ec009cff8231cb2d0ccb9ffca36645a6fcd3b09f32bd65e48b69c2496158fd48b9f68bb5432d8183c6fa907c5ea4d4cda62e595f5bea25c2d0007bb1ed6b1e8f1b8ab38d5c8cdbe2b69ba9d4d56c4ce6531872edf0a70c47bb60a5fc63444a220c7d51a7a4c8a12487e7b658c60bf4d74d9eb305647ddc8c025424f67c04300e23ff6e62e77cd274d4e97d65d7a2078de8391eb73b7937ab3b168db89b7ea83163c9c580d5e6f335bbeb2bd99c839c2f7383025afc1cd530db38aea9200f8af81ea52dd6f0d070fd70ba4b8a9e02ce1a2633d95962a00b0f207c5754289538ea6df071ad4a480bada2a38bc6f11835276f2bf695bfc9850eb18420a82a7562eb4d433638d1c05d635520e907c72e6d2f0c804c12be5eed86a54584a8355991e82a75e45471ff129fed66b4f9633d0e6bd7247315d164b4fe9626c6b2e63a6f59cad1ffc57a11b1eb0b94cea8ee655540a4b2f4367ee6ea28b957fb6e0f661cc62ac0bfde21f5842df865fa46abdfca8e88915f3adf715215c51210a7bf73ebe2f081a6ecbb1f3c7766d0d94d6f69eb0c5e964311c06bc001379d057c039996f9afceaa97654e7048aac2926eff2fc00edd607628e7d5ed76e17b824048bab82c0ef00bd5e1e9df2b4ba659a56aa886f1d5bc6e00c0b07231dcc180a29f3a122a3326fed744171b10cc931849b8157982d37a975d65aadc232bd9e37efc7397a93c0b82f54078b01a083434aefb2eb5ac0dcf3e43a95647b340f5aec926b3a3dafcf99ad433145c9873197aa2cc8b359093a0b6045acd874af250effbad0d21f6d443f4709662094879661312edfb37ba189ab1337c4d6ba612e125ab71d9159395aff108c97250f3e3813c474b2c96b6b982399d140fbbdf2b80b7a0f093b292213ffcd468ab18de5e83f1b1ea061198833e8827141a7d03b5d62f160c94650944050798ae8dd83a4b9f7412b2940375bb0b6d3f8950ead20b269e48db215922737fcc4908b1f0c6eb6e01617a338be9fc0a986897686f0f716e58d3bda5a397b7f1f8f5ee43c65720d2bcdbc1547678c04180510883c978311b7baa05d49932216b37176ae72721f844b6e8e7f8833080dd0b39df724887942444ca4223f6fa10ce0355b567838b15b42551bfaf9e4eebf496393b63d0b9c3250ba4b2ea2a4789dc25ae2bd1861520717b1e678bc816550b1df9b213c4c627ae08b79ea8f8b4205529256483fbbcc551b068e1cd8d63e3d4462769c59da300601dffbf4ce80dfb2ba436a58acb9c9f07aab3f541ff16f07551e91ec3a2b22791ae7ea512d64b2a0d809faa9fff0a253964d8147dfa794926eb8735cdd165ff0e969571b161eede8a7329f316a9bc29baa6a4642800d84617cc7f9f10b5707a90f3d4908b315ede67140126c241894d451d7561d16fff42091585d411e0eaa4a98d20d655fb8a777356b5d47b96904a1793b05dd259c3232e16d11a7a9404ed8daa9d6568bf6262b491cdf0f51b492648892350093c7e027cb796cf25c550b8a83d9a7846fc615797e741c0b6bc4f04d8baab339bca8d06654e522cb75983111aa8a967f1aa15c4a1dc363aadf8533e571a9d98d4c29e55c548f915b1ebb0209607a57847203ce69e7113f7f988b93ff8d85860e2b7a0700a546d8098950fa953a7b1d70bfede2adf398b65b268cbd3ac98a64af408e2b87134fc449cf51a675f8f2c702326687ed9847634841e1b26143d87fec809c648f78e38ad16f980f018c5a61c8a6f5f611d141513a490a3a5d57e32c3dbf9e091f53ae53bbc768b2e37ebfed439429a9d7745cb2b21127df9156f13e8d60d5e9387e52935d09e20689db448935ad124e1071a360b29d7f84cda49f8e36e54391f11ce235e402919982869dd61541c5da779ed430abf4fd8226415dd0349d2f9d38a56799f47ddfb3683896bd20cedba56e35e31459e4ae5a6e32edba8d95a520c8055f58e6209d94f7168a798989f2932aef750ead5644f319c0e87d27f3f318ec3f39e45a817f386b42ecf7b1db2b5431c666f133de966cc1da3988877c2ef21372daef3d879db25b8ac2867fefaaac2df044f6a23e1e7f99999f9e3309ab1b603c1baa7856f4149ce324d3267d1ad7711bd11c7402796c883c3042afea86ac9d9c48c8e1b4e3e8dd26c23709ea26edb832845ebca1eb7fb8b4d1664f281e1862dba2603449af371b165c5b7db00165f9e909b1a559d81eca4fbe795e9497f238e8de94171fff2209a5471f9dc3df9d5a1fbdd836974c6907c409b84a5656c5158fa50c8193600d1507efdd724c797c9fab330b53c3746a3b8612d5d88289f37b451240fc2bc252ae134ff91faf8e179895b1611b5123d90e0414f194c09dae0eea3792a0e2f990de277ab9d63f5c746cbcb31b1c2b4e680c1899dffbc3c6fa7ab5983bc01f3d8072ca167bc1702b53d2f467b1effe90a7aece00be16a47ac3edc7ad049af1aa5b35fedc2d318bc20b804530b64172a773195efed982a5f6ff873265d09711c1d9005c1a23ad37f0796e67248b5bfff5f6600419e81f1fb8e782189ef6e3ede5b4a3c4302cbe3105fabbee8ee1a412003a805a2f8ade880337f687ae6e5f3ddfc3e0b816098f85567542896c0dc205f243618cee25699a5e8372f6ddc9429b5ba2082cd526bc9ebc7e3290f1273ac019cb98d0590ba19c15a0e1e1e8fdf34669e9eff309aeec40157f45c20402cf186875b76c49eb29b6b6125ff280ffda6bfcf743cf66e10e3cc2f1585cc0e6f08df5a8528dea9d7d089697fa1dc92c3f446e4b805930cc514f28b184eef22df88e79ec263b3a3942e84ab696bbdc877701fa67062ac14036372f53fe3b9e9e0e5bd3d7f5c08d77dc582e66552645c1f7a241511aca07275154c6955b2c7ba1f26d859401e80b6e7838e1c2448f851204cdc692c523031b99b15ddb05557243fe8d35ee478b30930237c7d03ddf91e8153f72d8e2894b5b597269b7f0e923081cd22ef3de234c15cbc786512717515e3bc11017d47f880724d9e38ae5f45f8c9361dc24151b0181cdba89a80e712287fb3ed244a5f5f9ae5d2ac930f68aaff8d742533837e1c8b7d60f80cfc8a05489894dcaa19dc3ef2e3ca69cbae857cc43c249c9661d026c3603e3de5a0df7ad88508a729081ce4fe152b7e13cae3f2545e118184ee2b28cab4f075a8e3dd6e560221625fe0664131b063ca0ab36065c97c9343d61659e1ede35016f8149dc283093f0a35b3e0dc9fa7f82e8c633e6c94a8f5bdce87a08e7e38f98db53656197b14b1e9125f24a1287002849179dbff567d3adb993ebb903a83b262472806fc7675c54f7fc3e6e241da38d58fa060f21420fba4097a58963c138170eeab0224097db59c04fe605492ff3fd2ebf1e2fbd990726fe5fc1c14a993adc26cf0477ff1058703d911d275e53eaefead2dd7df18e918525d23b11d0e1e8a13baf6be4f4cceadaa202dc2e55a1310d2afd45df176413e90c1a88355f5c48bbdf16aacd8554f10a880be976b361c0c296acb8bf3e106bd1ad0c5b0939f0059dea2589b309fdba106a222de0120c322c56533b28a9a1248226185230ef109ea5f733b4514ef2b2ad28450702a0956d1b96d33aaf4e702a1e38c45729eb749ab3e684f6461411d1cc8601a9449f0f78d709fc9f1058205996cbc2e72be71b60b8580dcbae90915b35ae0dbb2ae3958cee63144700a674a134689094d674a5470b3647701eea814303aa70cc94578dd320de792c5a49f1a179bda4705f75f7f93d2b16f2cbbf10a6cfeb3a4ed7783253fab64be02b0a4ee2151d333da9a1344b9825bcdb419fa73c7bc5ce1d12d877f32bad271333e1b81a03fd7a805a04030e2fd8dd83e690d5c53bf0b8df569c34af1488f64d557fe8302579a8e5d57e2299be3b9724ca8909b1e40919add1ffa24c358fc82645c5fed465cc4488bd4253f90e08a031a3f81c97620e9ad555cd2e377a11c284014b3be8f0db360d7d598c09ad40809e9c3dae4908e6fab766e9935460de17c51bda7d1713ab53ab301d82eb30a5d4069e2d4b839bd726f312c74ceffacb1bd3b9f298533fe77e8521be7c9a1f3fa3ea018f6b82060ede71bef25010ca32598519457411eb5b5bf8f9c07e92b2d8bf7042a23b19331bee12468723e2216fc1d1f23aff7b447b8bbdc67bbbc575804061019636fcda72faefbdb931f79c64e8aa766bf30141dd8106d49a5d5ab909024af40e915908ebd484694b818db4f55098d02767e925bae1f0779d9dea498b3cffa9a47303994266397319af29238dc95b01f12fd377716ff6e5572841bfe227ead26505b755982610578f3d232798d835a1ff14583105913a3970d5cbf62bb0d7b151464a16f0257bea3033fc1307399b98bbd1293c9a5ed7fde3ad3efc4b3a399fdcb9cafab3a4996910099ee2cf666d2646e8616bfb428ca3814221b86878091570e1d6f82c3c60f85be9d5996a3b089bf043e8a0172c706e6d5240396d4ec78de986bcdb0d976d94cc3daa79549ab607c1ab1b5b804b89ac9fc13d538ac6389d17d7255de9b98d8a368e63cd8f2d60c2f40426a3eb666c3161dfb899b215e80d404c5f2bb7db2d21ffae62291f3282057665a637b2b8455bd5fcc8741cb08c7a9b68808955ce424fa03f1ea38f54c5246bf69ada5560ed2e6c53c428c36dd2ced54001b503f763052679e1426b9dc2c6aaa6b4dcf462e96a703b8d30e6be305790d68663e4d61cc5b44c2688c46dc9543cad7e5bd73b7fcb7bb2df3688f0c38bdf42f07a8023b700ffd1a45aaf8bb859e1db032be7fc361cfe315950f1805a8eccb0ee9c456fff03d005722bc63e3cd98ac1db0e32ff711dbcd534d52b842868d327b23e0162c6f486d8c75aa57c03c1e09cc9b96a23f7b64cd2f55e8618d36f642675cc6a8120d0918c50306e25be75bc1e570667a2966a9a3b7afb14ebc5e4640cf1c79689a627f8640fd54650f625adfc14fea06d477c661b309c2dcc04b9ac5505e8835538c8d4a340c7d6a716fd75536b90b61f60cfc3d76625ed53ebb689a41bff90570462d3d8ca31cad62f898cd9234dea7ccd0a99e9f646b1968cac3b9c12d502a2d5bfb67f1b6a55044fa69ce11712a283683024e3b9749ee9a40a768bb930817fea19d3ee8898ac60770a032dac5ee80cce7574c68cea1ab74f71e3e62604989bd5969395933886c1901d548e04ebeafc59d7ebabd6a45163f3f8a093730e38bb2b1bf58aa0afa34edd20d65b19347b032890c2b8cd9bb14015a2bc01a54c3505001f0a6c07b2423ec8c903b218e991ec3b5c8465f45c6e94073bbc16d042c7da705e778a8d8fa8a11f5c0b86bd89c580332c90148953ffaaa33619e8be7d0b40c7e0f66aa8c9a0410b004e888610d6f523bc9bf8e1ad9ffc8163c045a3ac80d4eaffd5932187f68a5288e6d6f63626ef84512c4befd2cd61622f9014a0598b5b2cd075abf591fb8ac31d1b804abd3b0e4bbe1fd35dc8cc57b626df783397f3d4a886cce6888d04fccc4cecd44822401394a923bb13bf24557facf6d0cbef6525c742e4c78afceb619dc28d8b1e63818d86083cb801391f2ef37a907f1184f14e92ed592c237f8c36599fe3b169aef21b47a4418082e04d8998595f86af8b8b39f2b7dfab426b49263aa30a70e170a93d25845f90c2360064cd9987f0a45b8b0b051fba463082875ca9a4d09a43c560b261159443eab3d1a6e956210d69ac2d121b444564ae0f2fe0a6ad3716721cf46a30f4343904d119ca6f2bba796c19123a17d46c2151302e0010d7f607eae5e809d84b680bdab8798afd08d1fcc0babe1736b031efdf55f5cf9678f9d9fe1be3f310deaa55410a52adee245c30f24818807d082a81dc61f9b37c8cdd0c83da2df005e44b0b932b4ed5e37744fc5872ecb0569e010c89d734fe613675dac89136599825ee1d472cd5669f22e4e073e86c091574f3d307b8a29abc3448a824fb10ddc9d50a74ee16997cea268e110e33ab526b44520b6e94c5cbc7a4104a5baff0cd6dfd6b2f05e30bec7347065f3f86219811bb0301e44222f7fee83c14a622b102847fb14357ebe359db8d05f28eaf2a901d8e019f2c6dc28175b26fbe36d55047df0ccf5cf1ea9c5e5aeab7d5c2ad8694cf45d8382ee0b2bc9d25ff1565ba715df9ae8d15d807f5babd9c3d5226aedb2ad6b62aaa561d83e150d37680f033d98c16ec077eff5f719ca09a2c1751f92e1d4af12ec5f42fca1e2ac7154eff81f2c31ae92df23ce2d8f11bf30d36b9d06e22e5ac2c11e131a1b4863c4cdcc5334a48b25741402dfab4cf5b44dbec995de916350902d90f3c2521bda34388fff714f7af715b1f49bbd5e4ccb38840f998d5c4cdcea289e6b8f65c5d815571a327a515c3bce8f5a1c4cdfed37d7867d683c93cbb3c92606e2fba278c598f0b7f88f8b1e6d327f0000c759e411e0304cb1d41beb6d36a6abea79964cb493582a0102b932cfeab66621c669cf346f72ea9471d30e07e59d136bac286c12b3eeabae600bac5ecdc94071981dd56561552e0262229feefa17b6734e50dd21bd344ee765d716a94759f98036817bbc390d2b2ad7788860317fabbffb8129906d4519d36ccee83b807eb105902a5aa03918b86a32a9ef186a4c6469f73e39b7053323b9dfb82b96875c26f16fb6ab8bab518dae7a9e319cac6d2452b53b0c00316db3aeb3d5ac363774d679b41cc75b18df0a8b14944aafa0f663a2a1a485f8e19578a9308cda40c17d783ae88ae82e01c4f483cc3f5dc66a54cae088de4fc070ada437f7540b0613664851bc78ee9175df006aab2e00c6bc155003af50605e0cca27eeec496f62e089ae501b9a53939bb9a19e41699dbfb3022d23d9f641153f4ad696cd52f048894f4c3ee5d1c11b897799ee6d3e6ed74d542f1de5ce392c34f381a28af790d6f354db24a77500919c647c13633de809225a7d50102a6ed1a5a11b806fc10ed711bb11b790d293773104a4a3860885942a95b0f42e8285a08c8bdf1ee8b7195efcb873f44ea7ab18cb21922b7eb1bd14680983d6f6e6e1d8b006ae220ce36d8aa9b09fbd51e7dcf06dd3e944048c5ff7cda1f69b3733bea959dacd3e85aeca4493706db8a7b4d1133359b5ad74fff47f57eecdbcddd637dc1ec18859e696e21621ffb2f621a85e49552a4bb24bd7bc4f34530d0561527c7f471a1e3ad5bda3dc1267a1eabd5dcb6d0426e4588b19b5a5c9ca29071889c33a162ca5a59300fa6a8f4dfe5d3cae108a90586ef4e2f787304061fe4ab2730e4b12aac290110be32dc855ad7eddeb97226109cade9a07a9de29893de0ae72eec94e8c565fec30a3c79a93fb78d37f8cc4dcbfebc325085981a7c3f716e4263e2d5ee9f958b39bc6fbc82b3822dc181efd313e536b0efab8e726e415486b5c15999423e0dc804fd0c0d089fd319ab81b83eb888b149117c7bd44276238c402513e92063769ed9aba7de88f65c42e76d4d4f0011fa15aed5031d5ca7c8d7e91bfa2875a12e3a133cd53c215039faad1bc83c234d31bda253409f36098d2c39c33e3d663f65c23026651e46ca05d2f8e3c13acc3ed56a2e443c73dd096c4ebdb41ee2c7e8224552e806f03f42033b07d86e039e74817275312bdb756f810886022f76a531a517be967f20a7dab78fde053ba1ad34709900fa96c9b1c6ac4eaa433900bde8b77460fcd0daefd1ca73c3cc1b800177066e3b7908d95b21c48dc1b0fd89023af6cc464bf484daa8143ac14107e317b0f435f6bfecd3d224f08e68506c011ba11d10215d0a0cff981d2528a443365f6bb6c2e4dcb84187680b8cc13327b2e2abdc31c78323814b5b84e30be2805bbfb57aeb1f358e4c7f241f34f1c25f11e68cc74fb3e9000c7c3e079fc02ceef80e58bf82a26ce1b8d42f5768a1196106ea7d5c29838271c3a78d2952649dbd089ae1285dcedee596344f076b7e73591264f2410e798b2c8db246afdd54e9c762a3826166e6a6bfcb60d39b13baa834baff992802fb9b4bc1da206984b52642beddb608d09238be8eae878f5b88ba995d1933fb981446c6ef2fe30a09eea0b7b5f2bffd1d6088217d88f0c041a36f5d36452d46f9f04691d0130b06a729bdb9abfeef8e323ec42bf5ebd9c092c800fc93cb1b018664474319bfc2a284d5eef70a11c45784029c81ffe935f49d37d5eb8623f823ec632c61adbe27d10926bcb140b1ced756e2191b2c274ba340364fdb177e34b2b38af7b36070e16cbc94d2b4fc55720c26fc0a476e603350f98ea82bd73d9e25ff95374a4d8907eddf582b59b6eb6b9774cff78231e0a9eee60cdf3a09771063d7e70807918f58ba1bf23f2d32522d3cd3c0ac2997092ad7b001b14ef478f6a23d07a6e0205fc0a5d8a64e44c8e107be4797523a0bd25d8f55c3a932dd3c9ef73f1d883042a82e39dbf9ae5877df266930ff16ba2442dcc1c72a3edb0ff85a5b787917b7246ebddcdd39363465085ad06009657214fa37ff1113f99fe9927770b10dec340a89270a93f3ab10490fb0897ba9ad0dbba95d2273e1b7de3a24f95ce7ee9dbb62238f08857b4ee26016e1f37b38c0d4dd95427286f7f6197e7d316c7ed72518473e94eabd6767befe37894efaf0b28ed719e3da133f2ee4529f216054a5cdf8c42cbbc8ff14f0cf6fff32aff3735b45912191d795a63d2a6342ac9c44dcb0b0821523729a20468cfaed319dc64557f084af92e8db9de9ae59509896d220cdba5a748c0d99eeef19f6f84c5ea44da4480a5a10ae719a67c9d8676330f1bda25eb19aaf641725711b8906393eee58c94634ca53029c95fab8705ae4ee48216518712ae3d30b312f507276e35ad5968e0d143d56adce8b9f1f6db0bd2ff25cbba6cc9b1218b8c165bd59978cbf1a1b46434c059f8b76ffc975f124a0cb53a710e01fba047540472b518d2eb2d8fc5fa41b7e087242d574308944235dceb9da74b18a25f2ed9d7b8531b8f4c98a36bf28943f3f4edb74f4a8585b51c92e43f30ce92bd06b8a3dd88d291816cc7573fa15a5f837bce06a8c15dfab046fb0f89613ae338491e1231ea6e6f0b48d2fc4b4fa683b936cd63bcd609f10c710593a8869c85f5b986559cebcf78062eb7e6cf6c97ce987a626b14d8a030ed9fb233433b619d646a129b9b1a1c088a9c3e1dcac831abf5f06df5c24c3e01aac2addb52618eabb87df1bf9526ad38787c1e7c7266db0aaf68bd6d7709ab2a566374e9d9265ea5a370feee77fe66131ebf62b0b97d9f6ad3ff91600d1395f70631e27fdcdfc0d1fc13b266acc24b93c3a47f7929982c6e3c080a39eedb19684b0d04c4ed3249e3a65d611b50f07f9a2cda1d576a87031ac12c4f6e4ed561f7392967744c0fd2848b61c95a3e5e6798f700ca84ca273a0ee6322d223fe2ca1c8fe414b5257012ed41dcf10c62c4a92c4e57dfd164d2bf7d7f35638f6d264c2a21e3153847e13aa525337d8fb87a7aefa5f88bc42d19f00799a67addc1ce8a618d2208c1dc022e5a6eb7ef1f9de3aedcb08d467df3a6aa62f41e315ee18f624ba2ccf654bca58230ec6551a20dbe9af127b69879cf76cb4d36470cfd400d040c1f36d665aeeda1bf09ce84a626d38d63d4acc001e5e1c2b3697abdcc79875c1b121e5d90fa31a57d27a2731da494d910179e567e8265762a0fe553e91a371f00a65e5363002b6d66d3e5c5ec9640604f801be927debce7ea6d3d3d3fb6bb6d65fa2ca23c54be8a8b01d1121727a1d21394e09fa40ad00fccee3fa5c343d8a88a26e4e45695e8a49471e4745328b5c79adc27fb06251bd4c47113177c2ea8352af940a41bb43a3f2239dfc34b858e2ebe33009fb5e1f42d41bd2daafbf4897d92c92cb9d1ca2883e5cc9033300ea766a7e61b7d39742e1b92fb01906dcaf3180a61cb36b0c4b8fbd9f2529aa040cf043de9290e12c4b3a597fc8da75907d66a25e972adec0b04b617c0baacab1cca5a694f429af7daf02510e4b356699922b7bb69fa5411e6662df9f24fbefb9fef64c402b122ab1445e724000191574d5a5c4318134f7cca8e86d47f1de885db9dd85edd00bb534c8c71243c04c5a23ad85650cc1e65ffbd4547b1946cc7b16d7930bc2ef1757645a89829af9bc5bf18873bd1096fde14bebfe43b7c9a4415c79475aba8a50d174ffc4a9dd2c1a0d3d578c62dd69ee718a1531676e77bb306382df78821393a5471e0d0e2870c794a310ee61115a3549081bc8dd94202bb2ce17d06500f6fa5708048dc2d0ec18f0fe2b5455e6bbf7b4e7ec63f443e67c5bcb25ff99fa0d2c755161c1048360e270c426c4df979376263518282b59c29e26ebdbb853612a6d271fcac087eb9d55ee46014a63981c51ef65580c1ddeff29426b2bb49b25919264043514b0cb0831c341c3c401fb459753b804bdd03abdf933404e2736357ab8feee7f1f426a1c3ef3daf3c23aab30acdbfb9b0b15e06f1148623decf12693cd2146e9194507e51f12fc1f6fb802b5f80f7c3fefca695dd3855938b5075f7ded075697961c2f8571c57a598c1d0ede6d082336153f932387a5f543517bf74b8beeca109d1a87b234fc0ab482e65969d7796c6a01f5b93030c073a400b184066c9674c1510cf43690355ecb7baf7049fe2a6deabe851548b4b31067d9a8e22b71d8aa7a2e83c96ede70243b8f714c259bfb056720743d0352752cda3b92932a331973efcadc06cc0ba1dc25ff88dcd818e754b89018104c67ccaf1157a9dce96ba5f538354b855545bd83ad84966aef26ad9956730690e2872f5b63bd90ba403141e951da5f6024f7c83a7dac8d182e1c0a0fe1148dd7dae3bd02eb0899fa7bff735a9bfedad0e51a6ded424382ea0b29a9ac992b36d41bfe8e800890a842db935b9b59c6c1275bd6fcdb2ed206cf315a3a61e5e76316e0b2d253dd29b59515970f3834cefc95da69ffac752b2ee1ff6a5617d09470a33a8e7b78d20202efd117e082b85301f3cd6e9953d00682af07681ac387c8f1628c726d00118193e22cd5f8aad4ed46c331666fa9fdad80ab8f21a5c9dc2401720d8f6a5c09398bcd375933575ed58b551897db133cb97305136ee04ec6a7ac6149a63810eff15d0575e3216e8dbd29ec283d91edd4dbb120c13c4059df8bf027a1a4b8c238ba15a161239d0b7d3cfd8d1a0707b78cc09d7cfb776146e4b8dc54c686ea37210c12ece6c25ea3afc3a1483be5424132f6f366d9b7b2be39c4c7ef429017c82702f84de5c072f786280464ed27e11f18ec390ca4c490316281b13aefd19c548f9bc477b29b89d8cabc8d4527ee70b091fe5f835ce980e68b22377c7d001090df1033f2974b759d29f76987f1e37fee7993e841341673db02e9badaf19ab8ac6338e9bd500d5bdeb1aba816ea50ef1caa4626fe10d335fbb765a14520619729a9fa1b928efc634758d43e01c2766c06882663650e0286b2c249c663381a768305d79d6a747ef64574e927fbc03f263876000334fa71648dddc68a8038abb9040e7889821d7cc2ea43ca29883c3d1a235fbdf22dd8409b51e67f1f7b737df0cb1f58fa8c146d2a9a6535fd2526f692812ecef62d5e0e9dfe5f09eccd12355766d77585f9da31d30b5dd1dcc87e85b1b755a8aa0277fe2736eef935de8eb7cd089918645663be64a913c5bc7ad9881c274a524318c18b56d4dd8a69e63a82f6860da5826e9994c59354e0acf3e35e2e97060067fe102a08e99bc8a5f7b7507aa59d81e595d80e5b7551542790d7b53ce484bfabb1e9b8cbd739536ec17d13aa49f90a16b3707a18cf1cfc4d20096ad32148358f3008c6b51eedaea4085936f955949889f82702679d2e3558a95db4fc3cd568f94bda9fcc2792242bf9e9360ab8249134edb4683009e447b358cca8f0f436a19cd30338f4932732d3c7228b474a258fbb5745939658fd5f9796e604c6b17651c436dad583a14c8b796ccbd742b05795f4dbfae3217a1e15135c4b4efe5928156572e898efabc8a97196ff7654423c53aa9e676470544e83cfae314107c9e0bc7fad6dcb2f4505eea25faf4e35729b79d30f16c0af7b7af30e6be28e0bf2b76a2935db04d014924ff9ac1ef78ccf001fb00f030f6c0df213a8523aecac0bcbbecaa1591cd07ba09d0b9d6331aef839347fff1e707d3aeac0ffad2d70815abc1368cf41ebc0f7864f19e0eaadfb50da08bef2cd731e76fa5c43aa3f426e5131cb04fba2dfc6623ee5c156f322af4bbadf2322675675589fb965060a9939c851aa73c7be5e6c79e5d717df12b3fc767493cbf5ba0a1a02b78fa08ebc08eef94a4626248df76d823e1af1c9ada3cc38e74a3d788514633509887c5c9621e9d5ce80cd103965ea8f3029970c8163855bb73d4ac8ff328369bbd3a1cf6e5eafef9114dd00a061a09444ac38e51ee19f1ec988ec2b4edbc1d2da54f3b92d63df02cc314432d547247328a6be526631007ccb129dba118358bad656b647528bde91bd2aeda2a08637402e35e77212864cb8aa80d131d7babe8702d7c8c26ec8189f2530d670f9e2ab2ccde3c7932d74bc21193a946aa6186f8c185d286ea6d0ede1c81dd558908a7cee1f891988978a1a16117e681375f26efab4634b5d349da521f15658b848f6060c62b9ef978338f2054b87ecc5b1e8226dd4500f59e6380692ebb2b6eeb89c8d1f78c6bd39f9032430c8c0eb4bbc403a135efe3c9a9ede64268979e03aa9746e046650cb9955105a3e4a0ad3eb690fbbd79ad2e55fd0674cd19f6f833a9b47b7e2d8657ad8c6f416c0d80cb9e0823379dfb4681b2e070b139086f3f3ff3fd401399c3401d2d0e258bf3e9f6cb64220824f3cc9c3cf606af9f29c296d4cfec0c157224a7934ca1c0b4f8a3a3b1edb774798a5328c0c0df2ac8bc2387adc715e6e3c036466a361bcbf00907e61f5f2759270c9713c62d386474ddc969adce639325e77d016aa13c96ba467c657a21e2a8a4263caecf68c8426725565738ce27f0ac9dd5e7f48b59e1f92eacc6ca26c82560c936fe067a60c33ed98dd1fcf9a2e80d737e074f8eea3f5023961601dde252a9d5e8c060fa3a475c598cd72e7781865f6ab376523b950b1ab352bf098e71ebda62cdc63d797240ffc49243be79cb63e2103fbf122e784c8e007808872f155825248d3e6beadf5f0c5248edd6858cb48312ea30e119b2ed10899468b99d7db21e9645768b2a2a0eef3a721d502b3d439acbd4c84decc408d071becde206b0402a21208db8648ac025dd31bed84e74e337b6608fd60c6f90e998068b7a2f150e9df4c17eb7005cce0ffacac4577e4c687d585bbf84ba979af49fe52cb1da22a03f7ecb19082515e2f5abdd37583cbbc40b696904d52e9a8d1d4920667e72b6dd11735f856643c3b0225914c5c6873568e66bcf71500cc6eab397ad60f8a2bc1d421488659b6e5d2703f3b8b71d9e7e18a023e372e37ef378fc2b952a9ecb8c6f5efb08c3a43049c6111cfc8ac32e527fc60048ca39ac2cc6f90969c4eeadb0ff927d778937561d2e419e61f4e3a618efc711edab69f077898f91dcb51970feb87b58e2da24e5a85b8ad1eb91f42000bb6fb3ded546d577dd32f9c5f13ccc6fd97e089cb347361f6cf23980700da9ee598973849262d9ddf782f27caa332e4ae3b5ee10916c27c47f8ce7915c7edc84ab8f5898a98f398771fee16fe6000426125d2901e7c4dc479f42c69e0d89843ae36b7ce5683ee5e5aea1c821602b92c7e67f6f8363c7fe6bbaaa417c6f63183fdeba348dd4a1cd48fac97cb0ac3d4e34f3b065d80c4a5a5083d06b200221234a2af9a5fe7a16736195dc71473a2e71cacd81766c01e26561527c17133a161b554f05e1c794da6954795d3c55ce3f3806ea8c8a07d7d156290bb6d0d077bc698be8351ad018ca35462137c092f45e62ac35bfefbb7150bc7af9ad842d6f72724edd735e41b0211ab9d7bd84e9fa3d62c41b2864b314791980ffc37526afcdad393f05fb9de4ef32461d109c7b5f08b0ad5f80ec84555bb79e0e59381c74f73d41eda0ac4bda9e121de621eede1baee3d7b8b438e54320b2366abb39a091e268a957c22c3f92b3a54f62006fa1eb189b1cae3e61eb81f01e6c54c1468504a220b4df87e1aa1a73e44729d7a6c28d7f3474ffe56db4e2465222592843ebc6183a16af66a4e202ee8cf87292b88be5b0454b420478e939b98cd17fc04707a418c4d3697518962a821a2b0ce52d5fa42fc20bf4a6be3455f04f05ee372d7e1c1a63f3de89b1a822204c3d01b1b9db456666819dc71eaa24d062af76157529ff83d5f440c19f208ada108ad00d46ff50e4addeb38ef962d2e972b77dfeb3ff2e3e8c80a7fc727c1f5e59db13116a07d6472a34877ce410737403abe5a0706f9908347dc1e797415fa158208ce5ac558bff5d3655f7126d8b4ddb0f2ca308e0d0fc5e0f3e596b70175820b0042703a8273e0f9a748e9e647971a7bd03184c631c29849ae7d3c7393ea125ec19f799e997ddf967c9d990406e4869c4739711e8ce6016e8c15ff4cfa7269f856e8d255a7710d9f041024696252a9a96a769b0bf45698eb0528f68d28a7812903ff4905f1cd8ffc8ec9b5e07591724cadab4d868ee8bd952b1708a50351d793e6409919de23870ae31eac9bdafa06c172a4028e7aed83f219cb0fa524c153aff6faf541ecc8f01a5b930eacf4b3e95cec837fa18db0d8bb3bbc2bc428ec7a484438d2f0b3017defce348b8dca7f320148a1dc4720fcfc615c136adb91b193fd91a2a6ddfcd808444e9a79996dc39daa2e4ba388eafd71868ac910ea36eed0c33a6fb682e2145f44ab0fe890f27ef4e5920cd870f0198880caf1f391443cd362689244a008fc1f10d5b7dd17fa3c8053cf4c62927e7e77d99896a797cd8235f399b29eb9dfdc333d02b0cb36c93afd2b1565c382368b73d13cd5dd67ebb638687a96b795f988f853ab7d9ed8f14ac3b42a85785a2b5d7adaea20ed8e6e700d040707c8be6d366e4f5551004e8b34acce7901b4360e12ba1bb7d74d3f1f34acdf056092034e7904212ce823ccfa90946a6ee453b86a9445ef5793d9cf8d95a763cc4872f92a474c2f6d16dfeb4b6a320d25dd1c84f3027b63b8dfb9397392e5d2554f5775a836c0d1a144f326191c635269e549c5de04eebb5a413f9aa1c9b7bda95f2613226d08d3a969215d04390065043972a7529de0ed8ab54cb6846f5c8e9251c3b25fec9bf6954b0e54bf76c1885b78a0dae14f552461169f7232228cffa30631f65932656e52110b35a4e2af915e10371618a88d3e940cfb580bff5aa191d2cbc50e5d1c65216f8d0adee0346ac641e7911676584f1c793716eb9b5d57d5279fcb65445d77e5f7814421b8dd90a361918a4052eb1ca5802dffe8c5b4d8a5c23cf6243c1c343c5daa37f4ab82953c2d5ec2f73923a1d0a2d288a8275d303dcc48faf46f00a268a8e89b87e79e9f3c4bc2fe6857f08c498724cc3939e23f6fb023cd750b57b80db6af0d1fbb4ce631546686684661bfa56a19098a1b5e38909fb72c63a0c6e4b87ed08c09ee87395cfc1ea95e683ad118557b2164418224abf67415c97ca6863cf682fc29270e7acb383a374419468ef6846f1a01083f5d0808f64b48e3e173da8bd8a60fae731ece796705afd7927305b76e9e28a1821304fe97d66a579b733e95bdb69e06c9aeaf546a6deeb1a433a1369e7ce1f071ca34d29380087058c2482e4ebc48297c48c73698cb378a3734addfcc25b24070dae192c758bbe15a93a8578a2cd559f61ed6fbda01e3039013577cd22f71ea44eec9706d3364b3ef88465e64deb9ded5f6b58193f4b62b811ca928b3d6a55cb086394f7326bfcee93c7fd5bb8e031b89a85793400c462d3dd2eca5b376781acc7571d0020d085f31b92dae165dcecc7ea411c53fb85aa7bf6dddc77e123399a3635d180f08afaf4d028634d14e4e7215693e1c57e873712057aa6597d0511d8e4b9abf6af81c7d138bbffe0cca6717f20f2b9cf79151e465aec978957b23f9f3feccb0fd0788e92dbb8f16de1cd80d6dbe5512522d91f77dc69a531800face539f48ea2f1dd8870c7174e714f6ed515134fcbb68385ac6dda4d819ebf1eab88e26055e836b9b2edd7ccebb8aebd19d4144fa9e41b41a4de783dce493052078bcdde569a4e40a859c22ccd205f25e6db451f8af3ea653729d53b03d6996b70d0be54fa2edbf1e7cf49a2359a1e98a749ed7e91f6a9675ac5e35f1d65421355f77b210e978f7b22594929dce24105f4a91e3db6a3613cdd6560082b09dca81c87e8b940a5dcbbb9be8a96fa2dd8a804a4a961302cb2d7f0719c00d0f6fd57cbd430b6d5ba43e8ae9a2f666105de048ef6ba57cab77f995785a315af1542e1cdd01a32710de982029437fe288f37d6e2662dc67f051111dd617486aed91e21c1818157449e9e39646f5c39d2de2323d624096993551114e8386ab709f05a443cd61fa9a0ebe6e8f1b68314b2d02b45e69be47a856771bcda81334921456492dfd113e44b0854ebbd4ebaefe071119332757f3aadeb454f51d5b7178db314caff7c59f8d4d49d86ed310146806e85fb9fef2b437384165357f7027b4a4cb4bc8240f317175da29467d34addd6da4e507627537b26e10fb7b030dcbef9c238820cb45dc7b1e5f9ed9abe5bc363b2df054b0fb3fea5ae947b4e23407f2ea4d681af610dcd36e175c82aecef4756e92288f9c99210a55607e525faf3b70fba8f772ddb1418f0e89c92e10dfff43317918869ee547d5c5a35af0c43cfab084e1637270cb6d5afe38114793c3f8396227b1a230b6ae36319997f9edcd89fe6bb57dace610996e2c82a2a11557f1fb4ec8c72fdc06671f94427768222163e9f6a13b5178004fd841e4b0874e9b6e23a7339332561a19b52fc53f926110b75af20c380da091f10d625bb2c998f4e8f9f1d62fd32e957dd01bb4b703698de876b903337a888831d6d6eee3e33ad84c0311611d55d57ae1cb3a72ae6d0ac00c50465e8c1f87f2977ee2a9c232dfd879589976c19ff2aca6a1689874a1a2fb6e68b6efca02c729ff61329f92372e01c6d10d05e2565ccbc25aff4d5f9dc3480d05ed7017c884a018bfab6cdbecbcb8790144c22d8322193fcd0a6b46a963101a503dfdc2627e9ee6de8cf2e72ac10350fe7d04b2ca7959baaac50c0983230e7e4b464cbc55780d408b1c96451c3ecafcfd02676539846de5de39fe079b7d0f51936a4f1c84fa6b52d561754ac29af7a2bf409e9e993ada053e1ef8a560f02d64f08d7c9b91a6ff1d2c9e668b89d4af58c6bf75995cf84374834b44ce9e7522b9ba02db19d3c96af2c2837b65eebf8bae637431f7126c5b20a062c26ee8d808050cd1da16cf0cdbfb476205753109ca229236733c75eead0a597ea4f614bf6935c2c119394e6221b2eac3c4201ce7a6aa9f6a544ffc8149c9350a7cdbcc70aae551d77ccdfb972568b234040cd5b1982fa8249bfc09fd2a04bf18581726ba11ea681e703f962a52bf242edba5c4cf030ce050d175a120fbfc0cd3c7a7507169ca6000b2a1af3fc7303c61bb9989aa1493aeaa8bcdaf9db5ffa5db8c0b5376e43f8181ca2afee65d87aed8b75cfd9dd288988c5d7ce44a73f6acbeaac9d63d59b8121532b43c05c76283adaaa548132ba4fae2cdde190db7d85fc949e9043911d840f1363d9b8a5bb5fa477bef073aa81394cb20b34d344b34e6e2947a72ac65f5cc0ce366bfd68548c3664cf97f11c3f6e0abf0a1294ff3ac6f40530c1dc8229a903080f7546c063781664647e2b344e244c860ad1bb7f474a20e803577123205d0c6da592e56b872a483079ea115f76005a62ac6fe56bed7596a8b0d85785daa5c520f1af5dfe33b8f10818cd6aaf96b14c2e63a536ec6b2b44241b1089514ae87b7816d6a84a0aa0cda2ddeb3a46af5aa66b83f07530bf773fe8bc3be00fe6ce4c098a73733412c17341b270bb9b962b3a9f36ccf73822ca9fe69e8aabdc6f4da89fbc34e504800ef683340e1a5e50a04de6b3d0f1d27eab4587649740f12870ab959dfda0eebb9808495c212e319bc6901d89251c2485e95615613d252a41d7cb43abdc009bebf1bb68b8e08349e3682f1213051ce2eca84e436f707a6e3dfa439eb43af3bbfcd78c2de467c0bceae6671843e913b2605e81e45aa727491ac380364fbbfb893741040dad14cf3d94c264a13ca857793f78cdbb86624373098cc66ef94a7cb7997c19752db626a69ad1010a8424c52b11f3947966791fce0694914675f765822edc7036352a5eacf62d05635fbf3fc3b0d8858c7704c89a4192e611ed3e8a65e83020767eafd086c6f555e31ae565865e719e58d43d323d457a2c9f00948f651378a16e89a6de1f3cc8f8220f6801616e811be982c6b5d560559917740da7ca03e986fd51d3141e6e7f9f746d3aa70addde46d37770d6a8cbb42ae1c5ae3b4e79ebc536172f5401420f39e3029c07327a6777141f563d9344310679c5e3519a6b564254c5d1c413b4ceaf70c427925d0bb8d06477cd5c2881b854f8af450b39ab0b11e3be3107af3335882d448030470a487e98a64a2b6a8f6998c99ec151d8f159f9cf5d2ab92cb128a10cccc38a22c80719c150a1106073b6f8abbb703d8703a79380937a8ee451a3cda41426a622e7f6111ec50aa34dd840f8ea3ec091c99cba32962e527a790ef03584f82b6917a6826d2141b86a4e22102cde0c5e87f2448b0a9daf5475f3d298b310249f365571446ff9fd4a7cf6a93adf48b9f211d4684c454a140c566f2d699c88db625a0fdf14bc057e86aa0c9118a4b787e7711942751c09be7b0dc0af6f02a0ecd8ad5518067ff1748ffba5c0624d6f386ff7f652d18c297cc34c45ffef474f4f72fa1ddd65a8a0deaf5c9e091ee296583c1737c6683213316683d005628ef6b801b40471fb9f24546dd1fca03e6d78062e84560f44aaddeb1335473db7570e618055a141775c70ad9ed3f3065029963b68269ffcf6bef46cb46173a5e4bcf85539ef89a8fbf017ca5c61f7cef79a69934d3be69446ef9b9591be9ac22846b47296befa1ee35bfbeaf39347192d3e7fe3731d0b672fc02d7900a3dfb62231bae762a3658ad60a3de80289b596fc9e06e3c799a75ccc8d4f16c713209c9de03267bcef7f8da817a31a570f4155efb886e670dc3559ac439192ce5bf22f8782b855b0558a896b3f7a52fe8bb9168717755fd655d1477a6f09cd377600003ecc8da9f5131d39756a8e7346a36a54dee0bffe831a218d4c0d744a90c7565f463a036b3b24da2a7d076ab4cf343beff1180b736073a9774284d28b9bccbb44709f43067dddbdf229b56c914cea8c1254c0aec9aa3fd84ee2afd39514bff336c9bd3c26e0423047ca1f300afcf9f76999e7c20eabc4d1c2f15992984aaa05a49dbd46de230b7fcb9ef7e6840a4c776eb2f09d09f61643af5493032ab8f5c76b5c57ec9be2ab0a7f3b0f28d712bbd0cdbad162a58e9416454a825c9e0178f21fe9df14b63f1a4ead87d6744efe4f4a3e27f4e0f577517d53542fbe6817cf78564c8958a14c46dc32afb54f0eb6ca56caac94e4e02015192d2626ed0b3d77d299b74db3e79baeeae3dc8d7e69a08d59e923daae26302a1233ce59ddbddf83c0f4d18551220ed6c487cbd561db642dc572bbf1fe4a99aaf37d5da34aa2849424b96b9b694f72d3012e47a21f8fc97ef65bdd533e7a5564f30d681d3b606c0b5c3860984c5d45073ee8646e27fac338275c3ee95cb4e7f594bca8b30e1a8e75bbea34e774aed03e5ed0a3bfda60cbc93fc6a70fb573dfa93df11b4acd986f1a305641febc260383bbf27c63691e52e3bf0179c5a8e32ba42ef5fa652eadcdab3e4b7ecd0a7ac1a9b392c773b0104ce00c9de40af568dbf46243a357da027a124f67c5cfece369bd7317b1de328bb1bd99a0b3eb3f9d5a8ec237fe09d47ab8660c50774dbf7c686c8080837491a5de7d20d9dd534e835d3cc0addabddfaf066d58ea292bbbe072f3c27deae1401c569cad4c6cef476fa0a5fcb58459250411b6dff083c6bf30aa345ea9aeb881cd071b3d76c68368a16cc231cc87bc1472ceffdafecb2bc96c377e958ee2d3a2cdea04ca7ab1b6ba7a012859c57052d2d0425a53d70631db28b206b5a1f3f7fa255b74df8512ea48652bbd0d90796a0a2628a3d4cae1d7ed39cd7bc0a886ffa781ef162d46115b4080a74eee72a467cd0a01c6474332018379816d43815e5d3f4267287e791a7296a493cb353e848b50e5dbdbc1a7ff2d88f039fe410c9397f01dec290d0cb1f8fa6b775f44ebcf2c6fffcf66872860f7feec412c472386a260abc5cfda3b0ef96429d84bc18f70f4e2d24d1e2783260b17ea81cf87a0d141463b84658e01062201f690043ce3c8b48b341b5ad8dde859bb0df2831538604b765d0c1c3eb730d3e8a2e748a030264336c02638f64dcf4d8ec7dad3375f316195b84057dd29316a87e21afc5bc16f5805dd9f44275f1deb81ffa0272293a63e3315a0c6b66e04244e51da5e6a3168b21d97ef4d7b7d4ed2440b3ccd83056bc49c65b700a10fbdaadb720dff89ff64a18e66c7f2f71b2cdb47567f18f37d37e7733945748993b5de715cc7b29467f685607637b490fad87b8a8ba23b2e454af573f97701efb2b00a0bce7bf9ef6cbac5665e4da539958ac4316b5fa3c190e69d272f7fe01bf0905b7ccdb3681d9cb4c33b4b8f1ad033c4e83f9449abb364a9cd9d9cff777d549dae67f3663d85ac10f30ed6ad951cc57cce87ab7eb6d14e71cdfb73c2e60db110ec2392bff1c36c6c5f217c8e555a0986cf3dc4166ee9fd5008eb6de8fc9a7ba106c5f10cda29c450ee4ec6629786f64c6a24d7c6798049b4ee1355b7161a455c7b783def73b847e6e720f1a0ae63e14fddbdae41b319bd1fbf16dddeacfe224ee95c0b403b8b504b831fc81e5b14075ca4bc757f794d1a73b16048f4493191c4bfd89554e20c53fbf108c79c5a83146598fe49bbd6bb05d1d2c8e23732cb36ab0b6e1a51fd4b7eb611f1ba5247ac3bdefada6d81a25a3c97a29404fa4aee2ebceb6962f4ae6be98dd9ef6ecc263e5036a2d5c1accbfacd4364ba94bdb0341b2d8ef25a25b5e16287656b3fa89d311b3844b55d0571d42fdcb7df7549d78ce86f3c4e54f5d3fcc536c6672be81b1635ff725cc5056e498d42ad9b02dae6054617b8960ad2476ec264413e8ead4431a0b5fdb0e514a335880e8493499dce60af214b625d63311517f5b432d77e5de5eb0f8eec36f09a63e3abdc19be2de59171c90bde4072a642093d0a8011e71d393ba2b7920aab46f7fd05289cb553f88ef759aab5724c4f8d469b8d129dfc54c308be4ee8ee7408b4e23638d93c458fdeec841f75e316d6f855da598017e061131f6be89946e8f4452a926c1c802633173934633b3da5eb1049e7daf30017f5572c4009bba6a169c76eb12f0256b8ffea38a3e86bcec51165dafa13eac340919db326453e06c1947ed08e998945935eda512871473dabe5f1be962d2d52581b61e71b2c9a0e9714efb3114ac37b00e2954c607c6a639aeabd8f8c91095a849a1fd252e4a68b7e78d932b584733538431c8f6c411b04419c1745aadf1bed3e07d5ae7cd386b941996a3d0cfc8b5ac0a97e52342b95658da577ce41773fa8384082dc34610f09ff5b2668e3bd337288e57d885b49dae792d3e493cff0398d6e67b58bbe64745ddc11809e69f1d42b9efabf4850519c6ccc07d845f4a1f7eaff269af423f2a4bb5b47963ee332849529158af43a584441b55e2d41d28d16236a038fbc19fe6b0741d869dd09f30586ff2d275112dd88254ee83ae98b5200755d9b4b1156067e3ca1c1914498bff558a5cce05f5d1893b0a94366ac9f4970e3c6e6d1f0ffbb6334ced13f62a7c69a7a79f01842ba71aaaf2a10106fb12645add19c831f3f8fde9f0bb29a9db049dd4c9de37faa1b0f8d568a800324effc784709602b8f9a963d193101e2ed342989f7a6cfe147ac5a0cfe8dc4f973551db36f1c191e6d0b05b4876c6376a21ad5fab47b781f18c422ada951ae698f87ecf979dd29024165d2a08bd94ea71e632d06c42466b8ce18ca6d6b5727e2833643502799b32afe1d5a9a5ef26f9aed9a9269f7fc5d2ea3a64fec9324df3ab5518fd80cbe0666b39149a4479c59102c18c96df97229466870537011b19ad5922152a539fbc25529bad05162b8e27d2ff098a6428b99c9f701d492b218d06e532ad75da43131340786e8501b93c0a44016265fe528f0174cf8af3ba1a78c8cd70d259e6cb176c95b3c46c483b83feced095e7b03ba2f00834f1330682211f289b2c3e428ee070ff27fa2809adf258a68365823d8c42cf5e601b4fe4f539ab3cc87fc1caa60bbcf81f3f5d4870735d7ac99e43e8f3801723ca2d93feb65b90f2de62591374733a0adc84858cc74de57a64bb299a9faac6721da93da32c1ba38f1846c2d21bf3b49a13282a285bc28d88a8cffd44c7d56e08b83c2fad5fa718fd87c9f9e1003b1e276c6bee05b832f10600c90c16237e3de12c6957fe7ffa59698e63bd9650b5161204c20329ced9acd06afc5996713189bcc2f2011e5e9adcd16457c7a77a7a58d5ece9cb1b70143564f6042550f24bb8f9f32370c7f1e822ba95fb4396b155fd43a7d6b335d839ba7e4af2dcf2eac49240eedf6798d2044617815039cd6bd9d0b8b06b91f82104a00021c7da37230b51101585a29ac139ab41dce6da44e4832080f2060ec5cc884925c7477dfb6af1f9c9809f45161e01c7902d16047d9cf3bb884edbe7cc3cc13bce9f18801711abe10a786bcff671920f1f4f83520fd52b176c191b147939a3d8df9e2ca88c6cd85b34fd27210fe3038116f2f69aee16e9c0299bf20b7171c93474cd831f7354a3f2cd413991b4c2fa54d01a84b2a6ab059f869152ce0ff2abc9f6ca391afaa7ebb4072b1b2f7c01eccf049ffec59422eea2dcab8a605ab268061247e49e78c5836d02d523a360b5ec4542acc1b91dcf25e84b0fb4d77a071c01b68a418c32157dd5ab0f16543a9912b9e441c64b5d49db6eaad4eb345a2fc9ca65ec3636fe7e8413edd983bc3e8b64b3d1b109f2a5eb8ce443885d9e32cad227675a1f3468ee4e1aa2ec001a2f0d5b3e4e2444af6e54bd2c77ab1dbfda5b03af66d7693a4cd715b8503225e0f9c5f0195f16ef57f9e7b79b8331d4571aca2591a0f887191bad2369de4a5f99d5fd429545d69b01114c65156404374a8fe42d8ba4662c3c2f69703f9405971f4723c2aad5089a96bded2f826a8054a989daf0c45960d93ea2094e7198ec9f56184af2419424eec7ae7af84b6af6ad98ccbe6d9efd36bf7a0f0d2561a5b77bd2ffa8bbb8c6f597d76d651ad5a42922045109a6ad76cfea9d90fc40302ed76c139d164b16df1a29f51a67801b57d3a77afe18066f7b24c4aa0addac2e51edd84178938289fa88ab2698f9c8f9bb21d8b5cdaa5d6abac3dcf892be1fbaf050fb93e7c1f9147a06d8f788dc7ab892334998ef6468ce674c0e114d31f95d0b8c67c717668e8a17af9c697b9249e1bd9db8ac624de6c452f7e87ea3ca4d46f4de5b58f8ed84383b74f3dbe3e269865ae90570d8524401eb0d72f126a203585db9e36077e338eac09808ec5258f66fc413fdefeac3d44b6d6b3245b0d7fe7f3c43ca494c7a5d1ecd32b18071c263e1570bf1886ad4970bc40295519b0a5e0b76d85cb78b09ce94cdae317fdcb405e9653726ccfa1d94108759959311dfc61ade86fd5b6289ee95424c54e2ee05a36bbcee0cd94c1bbf20ec09be0f6580c2829390859a9f1a9c9578a0cf2de6501a5e57fe4bb304ad7509684077056d1b2aabeeec77222c7cad13ec10fd77927416df4c269b5fbe978437363fa54daf5fa33f3fc503f0239603dcab59df83f014d322ca9d6dd1b602c117fbdc967ee2032dc35bf9d6590ef32908b00b79a5a118f162038a6cf353fa30c23b01442ffe40bb58969bc0169a408764c608736a322a5b444d89c15426efc3b1732bdcf39f52e4520272236556d01d1b67091341863a3a65322c314506349b8a27eba4ed04fa9c5c167938be1d18dcc57e1982978bfbf9043c78056a9d83e2307269280839ff044d9f5d21bf49337d4afd18632d91635df85064c815057838b22fdcb33d66a843f8a702cb31535ef921c339b991322fa35b025dceec2011a7c31713267d5f43748f72fe9f5f347d86ed58841e07d75dbab4d9c590a004342cd6cfef0d0b9ca2a261e01d0b18bf95287bb7554a482baf8677c06fd8cb0229d2033be61878d999d70faddbc9141b50d29b48dbe7e6d32f351ee525b839fa1c58571482d18683813586b2ed0ea6cc7c156d339abc3ed3a6a04716235721169d6a302ee0ad9ad2b8244c03b874d0f68c63f8f8e91e37c323c68d68998b207d1f6cc687326e8a4a1f90fd08d8bf460715de496075bc4c107a4906202c45ff597ccd0bc83dcbefe49a31fffc9b71e99d52b760b3bcb09dd8c2099f4275c785406ff67393dc744ebb94eebf01842ab64ca1229b5893ebf1eed6c5c8ec80b4ef2f18be5da07b60ac76784419dbc8dc50c004d57fe6a1e7f9c6d5d0217e4fe7c55b7c7324649c67752339c5a0c4d4ce90fca11507eae1b03dbda3d612f8551e2973037619b15636c449cba3fc2cc56dbb9b435ec5b9243b764266b08f74fc75d755f85de8a3d1896a53a7508d2deeef566ad68b99da8d084bef09496e6f1fb376050db527cdcbbe525a4b26fe6d56c7be4cee9ec0ac1320ae6abc9105b9905ded28d43e189a16b01473b8258fc337e4e316410c71520254505a7286064d93aad4a647d1d49d17e5d768f2c2294480c7e2e1289d5f037ad8e7496142c1f461374db340bd74824910dda884c192b55465597623e0cf4aef29439386244890a793c02c02c7e217b8dd48cdf9204b3989d7a69552291200a74362d61e04231e049c594aaeae6a2c87110ad06419f2d52ae07e47fc2291233f26107e2e75841d8ea43d6ecf483f996af6f46fd9273a07f63b7bd40ceed02c27aeb622fd1c33b34e73d064cf267b332c1c6ebbf22ac3cddec494c18fd201c021ba665a9516990dbf0a8d797fcf5d202b663e054b8f6bd08b64aef337800834c6a14eaa4567abe053443d919387c761d7696ac1058cea00d5d69b1ddbde1dcc01fc18db21839b76ee3a9ae824aa354e361d27e9476fc5dd4d3c4ebef56e680a91b5ede680e184be69859f2d2c91c10d63d5458eb8faf1dbb47c1040223a310b8b770f157da188f610411b690d0ee4230b95b13707d0b7ba8279fd3ca653966ad75d4f9c783e090b25ec44950b72ff83eeaad77964eda28460101a88e5e8dcd0aefdd0529254f8885b1065cdcd26f2ac64a015ff043a99c8aeedbc5debe1c4e322bcd8863475680d5bbdd7b9e0d633ced57786dda0226526fe2e2e09e511800596749e19880bd57042d3f33a34263f07403bc9a8f64547a297d5a860a6f72efc426f5e5afe50d288211da15c9dfa4968b5da9a2747316153f30828b4230e0557b0a722edc951173f7c3ba74b53548e79db5a5df6d72c0be94129aa2ef7ac76284263fe3d600114e9cc5eff5c72b6a5b46b53e6a871186733e3b1d334e0781277a917b69efd5e853ffdd1b2367b1fb989b2bd2e2fe057c253f1eb1bff4064e8986fa10d3221aab911f05410d1d19187401313be5977cf9879b570ed889d3fa0876fca36350ea776d4fa4642563d2c854383bbea5b8af04a192d7c64f121daa11d57201a0d4cf3b37863a18fdd6bd294290ccc4913f3d5d8598d0f95951ab2f0162d1b74ba256a9b8ae9c1d19e6b651e214a15e8ac8e70340fbae3827f7b359da2c79300fd289981753a05e981308c8335f18126fabdc3fcf6cf2b35405a92ed4b518a2e7ba944c8ed7d313add140c354645c55368e431b4159c2790ee7017a004cb3c16b93ffcdcedcab07ecd52b1ea6ca0595d17eed8c3022286decf9c24e923898dab8646bfc567ad9b71d08bc7bffeefce31fdc6fedda91898342260ab0e40b1b966d25bb1edc8a79323334222364a3569ae5cdf8d91886952179c623fc3e2c05fdd7ae3de23b2ad6dff7360b561b2070f3218ada120b7b4201178edb6a23a06d605cf8311fed1a7acc9efb0bdbecd0f882f912a23ec1bcb871e4e6d5b721625d11eeaa9b411a4f2cb2410647974bd8a0b59d75275060134981c90f7a906a9965a75fd02cab4f3df5964b98e700608c91e3fe3a731bfe3ab30a339bea3f0ce241783e702ee386532e2b8e4a84db6e0b4c37c79adf439be9e10f5269fae54d16edd1e2d5f6cd2f4a3a8fe2a0d4618eb42f7ca1c6f3a623bafbaef9196058deb699cb98696649d4e6033b9837d129c3802809526f84ace3d3627256747b9792bdc91e1b865fe721f89a505a39d770c74950cebb6db3663e2bd4689807640a09ee3d0855c4fae8002b3e98d30755e47ed31a2e2adace3cbaf82545d568f987c206d18b4901c8ad37b66acc688f07cb07d205bd049852815f4f8f842621ff6a588bef9ca4c55ad49849f2602d95f8e200c3f75e35682fa006a463ca1435805a969ee4e5a2fccad9b874fb8212ef71b53cd80b0071645a9e21fc648c5af91bab90b67012c3312207059d952f07c4ed5143c68fd2322732b164287fd685bc4b29ed06a202fa9002cab9298b36fc2e278b42a917b10a4347b64dbcc5089560f2478b88b473f332f316cfc576ea219924c783d29c8dd16b702e7d58b82b6c6335e4451315502417f7b6b2ad7c79c0b22261a94729c47b7ac183c87ef1e488718db43f5177156bd9407aa2a4c60e66dbc038c6640bc6c7ac88c1edbd7d01efa47df9edece620a305457a53ce0ad76da6a3487df7e3426114444b2bf5504de3e6eaaee403938da946a5681d62f47d62b9d10a88da9e9970e5fe617cf2f59c719e0378c4b0f3cea8dc64edadacafd2e6fa942185a5376d4c1d798195261e5a10e128fc6b15c3c3a651bed30c6b4c8546d469f0912a159aeb374cc02a09847579720a462180021cb85605522c7e87e1143118e8336ce7510037e19f58fb98930e946c806922ed270b25047de28d0613d80090245f4a6de770b412c4c2858d3dc6e66aa7326ef6e8a45ea528d33cf776eec1202bddb0bf868da90c1e2f841ecabf888e7ac3a9dd31a32f11c99aab9b6485f75c15b2f74e4f9f940b34a95f38ea6a7562b73926870fb536cb3085d56feb8115e48be646943ccffa8144a74208b6ec39ce0b18dd46f23da27f262d0e3e2a46c5dac76c308401021275f2f122fb810fece71c236392d3d3b31f7c8ea9047d9a0e6d872e283ef6ac59eaece93bab732248219a7b042fb03325da73aa502c94143d1e74323a0ffd9b3f20d3a50108846dbf1429f966e3a24b4c142373bd3f7b2bfda09c83038b5eefd8cd38697b4e6adda7b7ab7e893bf97b339092c010d63d1b322fff8f4b83afa3ed80d32c5dc82f7ff20ee3633568ab8bfe5ee6207b372df2aac1fe16fa33e051ec9fff52cf3ff9fb9077e0cb9b3cb8348a66063f339127c42e1f3f8570de2ac4253ad22b917c80087fb5c9d8b7b3cc75ba518f705062b9cf70c5d6f7221f73e16f077cb219bae56b7e84097a4d1c33231cd024518f9ee48badf4d1e209d8fafbb1ccb5b7c87620a256323a848ad6d88bf4c31b476e1f2eceded122eb251db41a2d9d8648313b1a46520923d3459b164e216e188e404193aab2d2ba9b7a456fef72c66b65e309818ca798fad55f607594d628e6dbf994bf2ef7db0829b0f49500a9ea714e4ff284d96ee026b22f8d252a62b195a2e4e071de81d50d1989f936454bb2d1d41573a110a9fb927e7a69288a6b0f98a83c2b5732330d3404177cf239496e12cbf43ebe230d4f605cd9b6c670ef4847a7d0cd80e593f37fc8f4cbce1bf441159da82f534f176943bb048023b8e3e410edf32019ed2b55692c9e7fe1b205c8ccd3406d01b7f93b3c84e6f9789829a4a6aebb3a0b4b763219737a72fe2217ed0210875a18c29ddfc23c8a9885e8857c71caefe9cf538fe640325fc38c1afc9457796ab0298742c71fee0e211fd7a886c939cf9bd270a9c25955eed054c00628b72c536914a96f8c98000d864b56183120d0a7be77cb13b86b2e093809bd2f4d3617dd9511db7df69a4669f0fd6316459791bd12396f13a41914a9ce05f022b52229f09e31fca25dd89ad1fb3f30d8b5df8643d7e0efbdeb0a424c9495d3638b59663737f466c2feaee41940901d91a7cec1e72ad9621cf67940670ba6d2d50b5c0bf74d085fd073226210e3df1887827d0ec1a8eeb8798593d2ffa4962d72db0cff89f90a611db6032d5ef8ddea1d0cb4184506d31952a937f2f66b75df88b55b6eb3bfefa697eeee6596f49efa793c3f71e26237e0d5983dadec447828eac6319acc31d60e4e66e30501b107323f25b8e8620fd9b565ed319efbcf40c93d573a90664cc342fac72e6a6526cf20764e961b5b8784fc953cf941a05eb37f9cfd6392382a2309d8ff7c8aac7b82aec26ece67bd8cda9eeba5ec216ed587efe678126fb33a64427f1688b4102573086b644325662493230f78c232bd88c1bf9ee08db98c2cdef8558300feedf35314c5878a3a1ac77f0d0d1a1c68ab963dfd2b9af8c1d2d52b14eefd52f1e0da891ef9105e3aefc1ea1fcf5c9e4549a07b247a281795aa8d1822d02b1c22c8f8a5da5aec8a6c0110aa059734f5c6f1afe60d085803e63184284a58528ac743fbb47d43e70eee39aa250d13f620944ea868fdbc4e016df99b3433f8e832ccc46dfb1cd9401aab2bc5b0f32b1703fc84f4ae497c4551607f9e24aaed749c6c1a67976ac466dfc7d90ecf5e40510e51ba357ce1b6e6eb02f3a9cdc423d3460feb0516f51b1338c11a25afc30dc74f47bd4737b28ae011f7414ed0bf043ad84428e29f2ba7219943d73d4406cba7b623ae4b7d91ef7aa799a7027974990e1e08ebac4bda1eeeba599f85b800b8641aeeb677fbefebe56908feeb330206c60652a853e115bcb55517e1a410ab70c4c9b0008a78c71fbdedae960b41fce474caa6291b0e77c75c32008346cb86b7e42d890041bf4f2abb70fbb4d7662d9331b7915572992a69a579e129878b635ef359431adb5a42350ab33986fb5bc4b65e79d4ca3f2291daeef527e0a9f2142d7794451e86d0e336fa7342835ae5b04b84f6277122895a06838f1c04370cbdb920c1db8b0d58816119961b94200fa5129e853179b9d17fb43d21eb36f5fa966e18ffd7a91e87bf543595156ec60ad575c3a38080316aa52fe858dcbb01cbb9467d1d4e42d2a64cb96a90a93be1dc819165650e567c991301d89567b99bf71de2ce3bc98bb14ccc19f407fd3f66e7893c1f14d70b63bf28865d2c92bb3c1e1bf1ec4517583d7942d78e6ab1c079a0fe1eb1a9c48356353c9637e2372fbc8495b8b9804906365286c3da1ef9919e41a5ec776ddb3f91e561ae643d9696242b8e8a9726df54dd36e1690f16be08454b891aa12c2b270fd108e81f871ca4cccd9c90fabddb9c606a120161f80a25947d1e68fc4961fd952cfe90a25193a12713a3039c9b44b69b45287f894b1f5d9cf2479941b301ec79f2c171eaa609280b1830307fc39e762ae4d1b634e9385fbea4bb37be012b7a247c60d9a74e248575f811c3e22fc81f48218d708537e0eea8121152a26fc112597fd332342b4f1cc47f7f80663fa81f36a42ea9c432d43853c383d2bea2a66e11a84caa075dfdd07ae91c36a56171b4b88ce4f59f68cd0de23483b2c450d61b945acf3bafb4e2ca5957aeadbbd983b777458567c23548bbc14be44812b33766467b84c633fe53f37dd5d86adccb5860a1fccf9c52134f31802d71f9dbda845eff2a1dc4c2eac71c128e682990076fa2afcca4ffab2b41fa307f1fc9c281a08381513516d4d51023b9cfcd03a8a62841083189164e00cdb3f4cfc00bd1663ba749b8c1f81dd5fc2146655ea9045ccf689fca77b50e78a2782b43577e0af6b94a929f225870feba4aa1913958042a88678a125e28f355dac3665957b0c2a753135c1f6d242499a74d2d98a2551dd44385209153ff675ce8edc159bf2ece937b2459723b4ba79492f5753737330675967a0e8de0adfac460d243362ce4c33750b5f3b7384b97daf2073870857ad5e32e5801f6865a664a3c976d127f4a169dea5d90dbb7b4f94bcb05766eec93c38fcfd25180c5d2eeab8106c6fac907fe0736e5f065dac4fe3a2fea939dcb6b5b66e14537514be5a990e9555881b4d203cbd7871cafbb1d00bbbcd01df5a1ad5d35a69e31008df93392803b4f662a1e4617d5ee2132bd1acceb6fd6bd21f56bb38dd12454a6b4f486aee8dc0262474cbf8c39a5a6756ed04c1d3c3e808cf7f6b46371df9a4cba76a1f0812e218a953fd797e38d51a5867ba10001fec9a2d034eae904d15b730fbec2d37b7393487d642d1ea4e22ac7a0cf558238de13e0f27b09a2305c2674c9349e8090719e9d91d8b8d8df06667debaa186fddba39388e341679551bf7d04b2fdca734887233f0667a18d63965d7d45eccc4d0c033b30ff95e97d4ddd7d2f0c0b391f90bf8dff4f8eb397b400ab476fcaa933a244c47898a4495f9280d99e9276488a5dafa20cea5affaaf7c30d128a72fafb69a1666d174a6a90a3256dd0e7c89e40cd7990be9649c571d452cc5063e01fccacc58b5b03c8e1dbe7d64ee1918e5dc460f5ea7b547d4b074ef5ebd8ad5133dd0c512a335f4182d5fdb7ec9b91d91ef81c2c2eb54f3b6e4d1047b72105c94a39c559f0a7fe3e7228f57d7bbb88be011c48de10dea670c033efb994c0fb90cd2cd5e73d5dbd2bd55f3df2b4be02d7c6af60fda64ef4273c92ae0e2d1964b0d8ddb377efa6a0d803ece873e6e3c4c1fccbfe305436651483799bdde17b2779b3bb847af8a8b3f8546639724f28439c3cc431518e0a200caf1afa13942c8dfe53b869d3cddfdca5755548f4cf64798e762494ef6f1be08ab2a8cd6eba0bc896f37d7c5ca05b03da51f40513e7e170404e5bc0cd1a38f72c49d50902c8dbfe5bb3122c62673899f88cbdb57d01fdab5f87a30861ea8c593478cbcfb8e25cc8ae509c3825bb1c08428abd86f317b98a1c82fe54567625f3099fc9f2cae9b841b1e9354b5a7fc98b6005ede3cb9d547cadc751d20a65bc49b317bda249ccf97acbd10934a85d04bee03a169f6fbf3e7bcaa6f9ad110ec358626781c5972f84f22876212d2e106776b0a00627dcf005e230e06271b0eccaa8e7fea439ed65d03d37529d1cfc7bdda7a62e0f9024cc192121637db162e2bade388bd5f7d6b4dbca2af446b5959bdc94f8361554ec3f7a3ee3191aae57497a62f1d555cab2eb0bdb7911af8073399c0ac4ceb555ee0dae513dc6852df0d6fb47ce351f1c344a7f755fab4952837add5289c63de079999a5ffdedf258454ed258338f9033e5b602145c433a5fa5380833ac327814ec05171374d7849e9f02b9f7a4e4cc069f45283bb11fc23a2d2da99ef58395703ea554d0f7950da6fe29ba9a4c772bba120e3803e79f824365eb9aba0f30ade779b6768a6026d13593ffdcc37a775bc34252f5d448a105a209ab636d0bea9b4b3a74f3938c9bdf7c47b685b320451d9e07f5714264f33dd5c9e29100dd6a40a23373985bdb5ad898333bf18a5340b3f98b406af18edcf1edcab22146dec9585daa504ca9b368285526c87638ce296c48d0fce2015dae4106251f354c48658252f7b0e776fdc41512234679526e13e9a428d603392c6abc36671aa9e8bd5a1ebf0a8ebff2a6d7297adf7f32f9b7e00013bb13687d9975b4461060514dc18f1c9ae2d5ba9220edcc2c4724c2f24d57633c049e5fdf095fc699141fe5643b4aeff317590d60dec224cdf8982a787cbf5deb5455da7c23b2c3685d74e6eff858292b5109f2ccdb2388f4c69c2595b21463b04eb8f70d51dc732846b50e3828cc884ace87fe761495196036bafa8fffc5395169da74cc4221dd1c218a09b8df3d70fbe003ea3109125b51038ac1899c06f1da72aa72b56b9f077cb3d8884495aa10166d69e19740d9cc819cc5b96a61aeff7107894eda81646c2fb37efb1aa7d9c5fe6ddfc225c248e939a429a3394caa2e461c2f8792009282374edc70b9d45567ae7096da9a9dca0f1471283f3001fd30627ae4e7e5a7911cf1a62e738ac0f58f7916e7faec60d130b48f6c663a454f0b693b067473fa5987004ebae23e74f41d6994c009a3a2e44c453a2b5c108210adb550ddcc6ebfc29d72d0c51b27dc996d3c35675dd17bbd18dee74649c847275dbbfbc40b0b81e941b82764f1fb487310fcd782824408735806bb41098ec531dcf755a14acf10a6ee7c450f474fec1b035a6a7d45a0ecb6c3761200b32b53565e42c9a554deff0e53fd8e12534b5f95a3fa7531195aca2185d5fa5a8730eaa3bec4976b3930250e2a6f5bc5d37e2030ea2791e8347fcc8fa6a1b5822fcfa9028e765258bc191d05c03f7995c1330c04a75eeba903281f8dfcb73b3175ff52b4df836254da42c681d86aa7e14735e9f8c59bc6d8be5374d262dcb5acde0acb64f5a383d1df5ac302e6ef1ba40ef9df5edb4df7224ea881d15b7a039ad86e9fca2c064421c96dfbcbc577feec1ed7fa167b5567bfc63b7e516560379f57ea7bd7d025891be7bb1acb7191eb2cec5aa94b1c8d95fc231ea91b949118d61ba0b178b0870a15025a0f8c5a88744f4cbf42b98be7121f13d3c2b74869a00e0072b8e79c1ed22575ad8c3d5bbb9da568567c862e520290ec4c8f380f357fe1fe1ca98a31d6c0bffb0c8ac579875fa0f1f5f3ac972ea15b34435918fc189592d728c464878d09952b6cc2e5e44d275b1f7fa7f13165bcff3bf06e25188b7bc37c71e916b69db4ced4fc3470e2d854f648417d6d00c9348abf5a9d7eadf2fbf5b6eb207044e21d93c21ea48b9f67bcc11c45bda5b7c27f079851bd9f870094dea449118eea1b72dc95cb180815f52737c3859234b1ff2741dd28267e7825f786034f8d8d4770399fb4e95bc371e2d3c476bc8d017c2f48cc101936b5b4248c4068f803cb6cbbc84087967e1dbd09ee675aaa230a0bb116682cdacdc2d81fee66d6130bb36062cc5d7e85517da3611f1799bb2abac46e55acadb5d153a9a26bf25a8cdf22fb57c3e09a06eee49ec7fefc177660d4f40edf07f9d3aba0e02485da9775dd58bd0f816872242f96ed3998824565e4ea620c220faefac8d99a30734869d70675872caffee98e33c708c7ec29cf1bbb670f419f1ac74a1aa433dca1990e5582894dd3471e21b5dd668dbc703848734c2559eb6c359ece95a5a68e2b32810e1a3b2eac1a0a478655f1c82b8c310b69e4960d3cb35b31d1b221c515661fe385bdf18cc64a7354ce85545cae1d21e0d63381250a31094009efa5d2ed588a2fe6fb9811c7d06fe3089ce4a671f4b531cdce42305fb8171c9c4cc65a3a3bfa96c38df0af00f7c09fd18f60ebf3552cdb83abacaf2daded47ddcfe95158fe663151cb6c185cdf6909cf9306618a7908d9ada76ae6a88afc3b790127d321c31bf01234a7343bfb958311a5b8a2bb0ca1667b03fcda635d8fed6a70300df46269f945ea5e91d893cfe96502312eb6af7952bde33b919348e9f0b42b513048e528d8943309d8fc43862508af46e5ae776d936bce79bc8effb3505849796f380a0e2930f9f1b9467ae57d77f241c3bf6ca9684831226ceb4dbe746c625a669ac5c9af0f4beceeabfcfa9bebd64038f30b778e78dcf674698f0ab28c14947670bbfcfdf2da92294c612d7d0eacabdc84c5d651b083d7982e372d5e097ff0ed53c7f915b47d1823299402ce2c85b96e047eea8c043e1aafb74afb7f6bcab007227858b3a1ada820d954366703b8044cf40e30d68509744f48e38877e39ce91aa6915723e20a5894d3b620e7ad622fd9b0c38b6c8b4571c190ae77372ca3ef8733890fd752d4a4bb89a16ca1ffe19789eadd22aafa357e32b86d95e94510d43622097519f472875d17501e5fbd581d79c0110608e7827f74f777ca182c19f1b8e8702b93b3ef120afad4e9a8c32ff4c99507acfc9db8fac6763458ba5476865f1f5227865378a57de790d99522908a3810dc3b3f91c7ce6c2fa267b056e565d90ff520eb3fdfa8098ebb44589deb7c974aa1a73999827c1028d3e79f8fa7af2995d2d6da5d1be324c4e11503c9729a252ada96b3b823ff38816dbc3302009f09f81a20ed44c656856e6261413b9ef9eff1ff2000e2c534516d283c27efba6607242fcf77dd9db3652ef24bfad6a81cb2a3fe57383de9d6035e54ffb1dca31df4092664d7110457d8bb17411b4a1126e679b7a24c16f202ee6650fe2ed90abb72444c8f2b1c80dc49aaaf79023d1b1df7ca7fe7f6e8a952ea13140019c74623ba1b9e8331fd3a3e953767d243894d42c7f19e86d7f7b98476b7a858b6692f44dcd54f1926d483854bb044f2c10af273fc6bd124477b33b5f583abf70dbba34124d946c0d9224a0b11e61ec155439ba2c43ac845a7bb0c26d198cdc6ffcc03b25d869d426084a848322f202e7e16995504b7a9b63b5a9b97b98a54589a18b3ea16d9235706005537d2684a46d257843f21768bc8d6a21b318bd49be507a89d5c30ccdb0377ed2f42547fef9a2fc4b6e2da90fc5ae2ff2ff9950c8f9dacf8af004b397bd03a52bac5e31237f8de42d145e3997cb68f9159de4cb0304350cc58d4e769eec8fabb9b203be89e6b29f935b829d600373878814f9dd6161c6d610f664ad9d24f31de1c540cf8739a17d08ba609d56fc638997464711fea2efeb3cc7170b6fbc032a5ac34ad195a6855893d7fcf5a2827d28463961ec5e8d166798d8db08deee3b7035c2ae977cbed7365fba645ac7b0ed8aa6008c3ca64894d83d3e5d121672e547b62811a3991be03ab377d3bae2b0f393be45fd3e041368416220aafe4d3d681439a4aed054b804113aa7038f8f353a9e64c2d5bbf7b94578c84c9b5afd7b62dfe00cc6d64eed04e3ecd23cdedfd29fa3257e4b1639f09e045071fd654c7fdec1b3781442f417d31d661a1342e6c5be83daa64a6d54ec32d923a2eb2602fb3466d05ac41cb5f0713f5e7a0372ed4596b984c1263d6be256aa9b44f21ef4e09bbe1d4749a1f397d7ab829db839cbc38cf5b2a7e8c21388a48488d2d58c3967f7220339b79bf129f7aa8af6ee944237823b9949e5cb79b4d60c8e3ef47ed2ed5be7953b6c52501560ebf4b543083f89ec80abe97bcfcd82e4acb5779062670cbd7ab8b053f5e727a1d698ee377faa1a526df40149f5c74fd9aaf8db351b56bb87d18d5d056f9a5eae3cf506752327530d68a972d1d7c09981510b0eb7f2262e96b544e5962b22ef1b4162cc20eef429ac68fa2e41701c43aae7eeb3e6f2b4ad5c46cba590bc273fb54fe0123e296c8ce2a8e252a6061e91d3986f116467c501fe2d9fd16207131a0638c72c9e3b93bf536834977a72e4b64debe76b6166b516932daa3002522f8f58fea67da0cdfc5eaf8d01af6bad9d459ad6ab3d5b78a61f60edb59e149b2aa3991ae8a44ae0c018dd5e9083acbf50302e9a0e64e6440451db3a8719fa4c400c51d21cbb40e1f81d474816688c29a69f6e787cfdaf3a7f88abf59628dd34405555ae7dd9a22e44abf26d4eeb0eba32b95a17e35ddbefa2a55f34d464a693099a07ba7b63d901f530b0bed3c766b2e837f42605f417f5dbcdc04235b32c480ef3e94de13e0710e0ac185d24e864ee93f68623d9c66c0714580c435835f33e10fdec822f1f487bece8dca270b032e7f4032b5ffbb1cb047901ef320c3398bb755c9647a1564cd9076ee8821b89aac9ffd5e516e93b062551c6976aec7978be7f0bf884586de9f8bc82903a384304ef5fecce5f17d08dce89b06d5da5d6fb9a3641b6e750d43eeb4031b1af8fe146ca261c67849d5d06f22738524def5158e9008467871bc121f8956cc17e899ce47b6575f8a197cb84ae5401ed3a828111e7989818e1764f5a0c766e142cc2f727e69a824b4e059bd36545046f7e52e7799d665fd77ba1d4e573accd184ec7b8b5ed72b1a2066d388ec6025120f6066df4776713d34dec2df54d195f3aca39d95e2574f09712759dc83acf7675998d2e2e19b54d089b772819668c0551ab49a035294961ff6a4da0dd5772f02337c982c6a180956452111e3afd1c36ad6c4dad8caee14dd43ac4d94ddaaed412167821ae8ef61d6e2cec4619c4707836a36a8d135dbf4528cea2ba4790a84d1740b7feda5527f679b0179ec25476717fa5db61b6756f3b15021f0db048cf916ae6e208ad4e05a2411ea5df893e2b5e36bbc969e6dbee32846519d00b45687760de21cc9b6693e73132e6385940b35d1abf642d452ed2a13881039cab96a1d65f9c2cc57b6994b9c35bfc43291fa20b14f2b9431cd9d4077710a4bc08816de4a24daaf280455f5af314c7963e2ce23c728c1cf1ea7cf34d5b7586226c45aa0359c63e773a6ce82bd511cc37292bfdd238cf11480dc172845a1fe8df8b11d6e5b2e25bb4716c68f595911a4f8a2b864cf5b20eecdb086d1e56f50e3f73f97066dc87b13a9ceb78b74a9e1631e060dc1c31a8bc7bd3f14f89a5c7afdc6edae5cb8c1f3ff436f373b8198590c03bef96fb795f7707a4a52fb1bbbab77162e1d151b36d331ac541c35eb3898ee2fd412e0b7ead19d6c43784c5221a473e110020dc5dcf87d2dc8a364dd07c91b1d1b57f893f9986793dabcf107ac8115ba484bd2ca0495602c292e8a583ed1ebc5eb939016878fc86c8c5603e6bab80826ddb32688a18d7716b2c6b999bec4794d51f6f4109d67226ef56a2fc3bd0ef70a1c6080d290d103e3ba37d9d0d7bb24b354236635f104b90cecaa3842ed4a152b9c188cfb847a6c239b0726275ad010975af599c15c823456a35772c0081196b162efa7a33c60bba38d5caf15b59da30ec50836f9ae5d201958f34994730333cf7daa645cf2aa1e9b3770d80b1a9d08894b965a70640c6d9d4aeeb89b4bdbaa66a6a7091b2e06676cb5edd965dd1bafc3bab516260d43efec0637d31a539e3cc9ba0c127b62508ef64e4f3cb38f57cbce0e08ee6e6be8deab3db33deac77b2e832401add0ff062b753513634d8980d32119f45baf95045681af4cb2f5812248387b5c3d0be739fcf0ec68ff3de20001c0241549e6a4fbd80fed6b7f0af3935990f6aed8676684654043cb9a75106bd66c4a379907ba0ac77ded7005f6e190b03381c8c9f32965eb97f6d40f52a6e094f06641a026644dec8dbdf73af4fabda5d77eeb0edfc951b8aa6d800c75eb96c26ce5b8a770b188f347c97d276e8f870e5b97a8da9ee00d1b5b23ed97ea495cacc0cf1f69f77498ec30824a6b081f9dcaf218f914e0d22005fba7b7869fc9a6e1fdd649974b8ba2ca136454b60184963a66c38dd749b3c08c1c5aeb052814c1b3ec45e957e72723e7599a394fe1dcf5c25b0e70f00fec2b6bf2389714d6ba20baa00f01c168757c7ef3c7498f758d424db53c0463559836804072190720b9cd511d6c9d619c12f330d0b30c6422f16ac7fcce32e75eb7c34edc8d4704576d08180ab530b85736e880e7dba7cf7f98f3a0e026006595a3fd79bd58b388ad810870777436bb2384b157d1300366482cbc4fc06d217d5877644c9ef16ee38d7fc402b3d74a52b7dba580ee7b93d2974f4bcd48102e00a14934362c99dcb740072f392cf8b8da41add52d21323f52791ba4162161e577736c3848c827497de3e53bc368ac9ea4859c6c7015b5e837c60da1aca634a09b2217dcb9d74a4affae834c1409d32874c27ce9c31945c7665485b114ba876edb61262c62a4eb1bdf8d6458e2dc49170270ef30818725ded97425a0569b8391d927dc8843cd61820f03b543aa0703ac7cc82ffe6abbb58f1ec2bab981d670faed60c9f9fc46530957601d5b2a35ea640223d55c239e8080d63e7b4525406b37a0714b7155ec63d1d34c55d9e5dd8b64291e96a5b4bc84bc37c4bbc0d701e9be328947d0b69e1681729b31b0a29bb039799a56ef08f136578bc074b9b0b666db16c40d26aff681577871268ced8d5ecaef840a05709a018daf453074ce97ca90711e8e7b7284bad1fcbc772e95cef2827c7137b8216642c395673bc3d2b850b59e36497454a014ce6bfb91c72cf6448e83051fd7b1a708a2c2ea349661541220acdfa63250cb9f9a035045f08ab006c85f32dc249e4116e9d14253d2a3287a3fde839c38839f7de659eadc3d4b61d14edb3ffd70c71de58feee0fbf4c7e337a22a57cd70b150f61fd4bc4c324cd89317b8a66453f035b3365bd285db7da084fdbb598e27bfbc6c632f83ef76321652a82abb7a20432cd7eceeae41cc7a72ca03702a787e370c94c1fb188fe5e320692c5b27fa60ca73dfd691d72086f80201ef5aa970d0c7e2884d1a20b1e00ae8c868e735e177f6083e4dc10496ad333d51fa426a568fc21fb01546f761e19739d6b25fec51281bba82a210258966ed0ad22620f7b75f9d2e7de48800f8ed3dc6e6f0c6f56a5cf1ff65dea48b784cea20708fa5e2409a73e78168c13789e2f33589d7175d63e515662661b56e214375db5240b2aac6e582ff692d24190d11744c0b0bbd1773ec8683fa9012b649cbda2a50fedf6a1f50ac09c4a1bad764c4bf1df08819605273288399699d1985a0ea8f41abf55e2c27f706ba3fdde3c39e975248c1ffdf5992443c1c04ca8f0f667a284cfc7435c2d60d871bd1bdc132a1037d1e1439ab8d1906dbb8f3240c1712e3cb6d070e32593bbd585bb1de2f26e7cf7c69fb030a1dd9fe181ba2c98d0e988437e1c52a20af2c78ca62e2989d64c60af436068d13211da0055bace97de40b3c4b2b096215c57ed47a5cc396f1b31086cbffed7d18a4d7c45ed49f4a5e3619f055e3880504e35a0db9d83a57a009aa5cc7587b6add3b8b2679605cc7c7db320b72889f961d8b9d7f75ed2fb0123783652b71a362a5c047e7b8b4cfccb86250f9f1f5044b0587d92dc23340485c4c4ec16f1144640cebf10a9ae7b3dc335768abdc48558ed278bb3ee3c4ba1b422bef54050c28e7b1e29df8485e790c2e7017167a487b80e399cc7aef980af89004c0442a528a52b307fcfccaa48a85cdfb0db3efa325717f91fed100e9e403c4b93e7dce1e2281f680b6c8b6f2a605f824ee01ed964669498dfdd4f476c233fb5c9d2d88e9de47445925ef7c5e265f31ec3eff67c73da38205013abddc64d54149fd489813dfe63235ee68400199f6c9edf8b2696eb40c1dd7b65d40456b07258dd105ff80d898e0ebfb113f8d58465d4ffba5ea1d64c89d9defbac930443e9aa1025ea08f1e0a7e8cb92aca18525ca06e6864bfb5f8aecf76e6750a271cc135a7f294781eaddca89aa3d6ce1f8458802b83009559fec7459a59d2a978c32bb1a36eaae0962422968b119eeefd6af290e7268efd7954d3ad6e2cbd6572e7edc179eee5e2296fe60cce90ed2763dcf3ca945da88c42efc3f206f743c3a365c93f9542529fb3dba330e749940e85a0b79a6de8ea03ffc8402f31ba174f1bf2589b85f340c0f6d6cb1b6eaf48940e6eb23e30c9768f49c5237081ea0e6ebac385a40025c1fe2110434af0251f6110cce775f7fa711214f0fb460228a3bd027c10a107c32eb7d1c1e2d3086b17bc73c3727e0a938383def28a2c75437404ff090db3281da08dff0cf57634418f03b23700643e735b59acd248b34ca5c3b229da628f16d9782292cfbe722c4dccb5d234529ec29029078b09df89cac5f5f2723f4c841053d7d67e24f031d2207609f27ebeff72932289bbd6ad4deb28174ac8a3dacfd41726a1afc735c5f5261816d235aef3083b0001d130452d0a3c54c8bfb87146172190f11eeca82d8182a38c386d1e0dc6887f62561dee5a668680c948934649b6e283a6dbae5b77d2faebff1a3122e57125e12fcd51224ff4d890458457e70c28043311e735d3a34ebe29bddb8a5e49c5dc6b4617ea10db248d20b126dcb32fdad6170a1fb68764771b773419c38cba9c50e6ba9db01b0b8c6dec6d05775da07d376a15a60f64a50d5057f1d149fa3a8c371fc6c6ec5ad9919657cbb1f66dd4788dab977b6c4ce70a352d23df64096dae9367c18cec16b09678e79643a7bf4efa081d1a3651926a7bddc0b50703af01c94f133348864ebc3528c63cb52202766515489f11dc7f298335bdf92dd8f676209afdeafe9f36108f544378739739bb13337607c482d1a2174e34dd59357b269525012fca61b395c38e4f9402223e10a4103785c97b3774384919b4a1e5efa3e33281f72519e1d00c09013cdbd03aae52c9de211b24d6c4b0c9c49033b79a6b22e5e23b3bfb8e721a9712dbe0eb2e2c13a30152811ec77fab60712c013ed3e0d6ed0d4f77e4bcba9f84628e13236ee56684fc99f49d965ea4b2c15fd0cb899c3b0eef4b02ec22ab3aca71a45f5a21b0299f6f42be48c5c37ff4382bb28fbd0b9244f991e621ac091f44e6adace2c2e3ce7abc1c4b664765d3f0bd4f224d055e99bda051fb16f7322fd10c1e8e12a2afc89d8a57e29505c7a9fc1c7751210bc484cbde28e4ddd6bc6cac507b375b63c113934563b2205c854a2287ec5b5b0cfe0a35afcfb70cd0e8eae5c41f96287e3b21ee9be6e5159d6fd14f11e56e825a3a692895d41fe79fe6ac9b9f89b215befb983c00c3b2c38c729e8632581e43db4373ff15690341b2e61976bb3bbb40c331ae8a2b2995cce252e8df46686d2387000bcb383e0fdaacfcf0f6162e5bd48145003c97bd280ccb37fcb90e5b4b8bed3f994d0b71aceae2d1e65c51ce3d2ebe0d428003cd51bb6905f4882d2287e5afd961a51f87385be12757393490e26497562198f290a8c74f87ed94ab737b5b011ccd68097b90a6e72ab458280e2251fbb728742c84581e066b0c677672f5f32e8a0060e3d840b965949d49bbb906aa2ebc95f43bc7e5be8b0ad1c5dde617ac13eb6058c9eaec36839dc9a1201cdb3348565d36ef948ac6cf068ee813073d77a2a7d7c75ef5be6f9cc1291baca68f7db4a8d8e6dbc61e4936b206f9b2cf18f16179f5164484f3f7bd50f5c65b13da29b21bd48cd569bbb8194b801135ec9df3e8684c72a7c6d1432ad283df4855b04bd5c3fa127a628cd14406d0a47c2f6730671c9bf4b3fba2e2da362135381901f08518d8a4a721827b78e92fa54c9ca7631d76a3d419ef7af3f6db45cd10d6cb887dfae91c0169d5d7ea75e4cdcdfde2b4e282c6028f85e3365e5ddc0e5a6dfa8f4e0a7dd76e1f8fbcc222fd2a0a10f15f9eb8bf4b4d59bdb024387fc1c55b9e62db4e4dbb9a3586349da7b95974380dcfcf8419a79066e7250e3dd838a2797307db2b25ae739a85360c175e035fcef4e4082b35d11ac87fe118d38b40684bca4d5ba8f478ae3f8caa13c97fc384f355546cf3ffb1b083cf15f0095ac030e23b7439051b54402e5900ab1515027efc108837a9af5a9b6633dd797c5f9b394cc950aaa3dcf1e5aab50e40dfd1484d690ece3569209628f293574803a000659548c6b43b3fe29c6a2faf33ed9a42d66dab2c49c0ad2028583ea12a37453ebb57412db562c69828d7348e59161ae3600aff88e819a19d708730689cc33a2ce3db9a38da61ca319163c5f37a3bbd2b18b4798a9b7e8f495a482ab55189126eadc9bdc8a95c6352a1f027ddd311aaa28e8da1f681a2403a43691516b0905a1f8a680b1278c722236841599c94bd70d7362fed15ca43f9b50bfb96b754cccef81170cc75f32d1573b97f2456633c8740e8fffe103dd942cd989ddb238aab10a07c68f96e9a49c685aad01724d89fd753611dc31bb3908aeb53dcf04cd67cce9e289b7efe406841ec18f9c653ff17ebfbc0d431b2999d3184a99a3d416ea084711993dd148d22480e21120e39d9cd7b7209abb82072d7e85a8b90eb68bd8a4239732d4e917d6239b6a74d464dda8d7718a5f58b1053a87127eed65373e2961ddf023ac190dfb96207d4ca9ee16c42bd1ae00263d6664b1e7e4c84c02b2ea93be3b3ab66f1d808b6c3917a0b7f6b3e1f926ad260d0675babf722591545aaa19fa4195999215d741dab0d147c2aa8577454d75d2b362ab14c8c707c31cc8f9e21aae94c528bbcace70b3c194d2867d1c1db1f71735c139207f73c481c59cb0e3d587ea6852f1484065155eb2486e016c87f1e136f939c2eb4bf0f264f4783949e8a550a0b4fd7d4197853efaea6c1457cbd157e0876d370403b767bae358bb79bbb92a2f3504fb880de76c2e646aa88386f27a8c3b5d91a0e6b82a603cff067febe7aaf6f70170debc1bf7ee5f8af41ada7dd5b9c2d64358625490a0a646f50ce98f7a7a51e9e4d2526770f63dcda04dd58a3e05e4c3dce3b5b622b6130fbf801a417ea1c6fa8b6188fa8955d71a762ad0f49333db5c306389d6ddcf53b3bb941108dfb9d57ccbd3923a2dc98bd8782d6d382cea24b67724942897ab4aa097b26b92f5aaa06f6d7de5778dee7a15d8d3bab680389bd2ec570aadc3996f4f44c9e7c76dced15e78f393e8058722804e8f556f6e1cd0532d2c4280f825bf0bfc4608101a24be8b0ecebe4d76f68c9c63d9d9f8db14f4e21da670dcf5a85d3e0319d51129468153b287407db65d61fe65a96ed70f9ce0fbc2968224de85f4a02a04c490f76d55ec2b5e871af5c8a4c18d772f94719d94b5a08a6afbff72f9383a9d19a02863a4d5698be14ba2b3e510490ab17a0713d4362f618c3dd9bd517f619d0171aad263e590994c128447702c6f33f02691ccf19d43b0e0c65d97559a36066ff2840645d046f39ef68a5ceca711b040a7835756ec1c63a119763fd2102d3324e2350f5bee2a272b0ace1925e87b5a74803b3cb0ccf59baeab9688ed744bfce6fa48a199153882a3e6c32f6aa82c0bfc328ced683b60a56f2946e2b7eca4ea9bc6baaff270af31213e39c3ac04f155d7066fb8a9bc510ac0df53e316cab386ce2d877047790ddea9b90268e32cec1f9ad22732b595de3124f2de471f6334454307259a165bfefe4ecb71989715333c71e244ac18075a851ab92b502615e9b27c464746c504755e8c1de5980e22831a7ba171a2d4815f3876bfc730f3261edb3bffb5cccf02ce4a54c50c81d1e09a759990c3a953edbd1ded34876449c2261fe01295741d84593bbf89db8f08da63fa937f7863241792ddd30d9e5a116bb578f5a052766a6bf40605b1875e8ca24cfa0ea31bcbdb43477791e120bca5ffbfe83d049710a2399c851f958d3ea899d8d13cbf45bff2067a74265dda91c1be4b34f62d3ab0870266bff6ab7d8f8979b2102a3e32744bafe8b3a3b276e31ee2e355796249eb9988e832aacd66e9363a17aa64d7f29b85afc663b0f61688385c3a5cf4fe47127df4c8e7711172852d5a27b308ab24aeaebf5dc0247019a5f2f415f8b9e5c536249b17fa9732214dec588757d78487efa4694333c81ff9168cc7b949eabfaa1981b606a819d61a4c233ae7154d67178342016e023fe581941adf8c30578d1b0d41dd0757cee83a0c677674cf19a41f718a9ce659eca8fef2f9573fab7dd161782c6cd24ea71fc2abf1a759fe8bd319b17329f84dc2a2797ce8159e5ce26a4901ca5f8eb145f84d50e9c927caecd9b4f7b3b85b7e68a2a3215084eb5ae99796eaab24218771494c5426ceaf7497941434b130c03aaeca56e550fa8d0578c3797e47f75053625ece87f9b9f82ff57c6702254d71360642983f672f2554ceca4172e93aba45dfd103ab23f4415fc0833b73f571bad6cb54c3b049c6b6eb3ab2a43bdaad55296f6c614b062632a4b3c748250f221670a8b2614e3738470a42f5864980135ff4e74999ac35cf788a155d903b8a7c7bd6019d568bb2966d2c3ae5efd4728e4a195c359274cdcf2dec62096fa54c6006fdd2cf9ae6d246aec9b6a9598607c4d02180899d5697fb92ba87e420c08d44f29ebce38c321239e8b5bd1f52846ccb0cd06753013e5d0a3fa5c095cad7c04508a5fb0bb45c3fe4754e4e09efaca3ea0fdd46db945c4ad7d6da96cc199f66b306d3a7baf06fdb659f4529750338c28858e0df0127f41950817c79737dd251430899006c682857501266bd8f2e22d131b86b9d4e14112297aa57efce66b43172560bb28b36fcefa1c8291f20ea4d8dcf149100d0a563330f95cdcc6da4af86bfb7c288db1586977bd223dd953cc9a80eb456cfb3aadaac2236209588248d11a2d026284fd4ab32dab150b3e122d8fcac1e2bd6e6057f1e089d413563445412c4f882a3e57929957e09eddecc263ebf47eccf6932e87f79d2fb9af51a70b74bc854cc63e868589b40b4bb1327dba57ed018927669ca6f42e0eb53a5a77b9734809afcb29d162ddd30fd211a2809832cc7f5e49c3667b75a893978cd7a4b76276a901152e863c58a882c9583baf82a1d9ff89ee50895b5aec1db55ea81343cc5046a6ad7776f582312f2720da0eac9156ddc552c9ca71b750821154d30c854d2b567dd40d774dfc0f949392cc49160a224720861e2f12c9d38b5aec0fba3b192d62a46d6ce1fd0daa658c83a42d42713dc321ac1e831e6e4573b2eb0baef217cc89847df912e6181e075779a52d70a824a74389e9d67adaaa6c4a01995dcba659fb308730ea47aaa016c312aede701ee9a0b6d894fb9173451acdb6dd9dd536208015e8fe4f144c0cdfbc721e7b053c012c7924d209ea08121599f23b2cf84e77eff48a55ab476259e6af9b0861d0cbc71fbe1946dbc8da496ccb96de2969b2a1b7378c656956a76c62b9e4ea94d53fb922a3938690e8206b1d1a07c799b6ad3f598aa9567ba9192bbcaaf24f398bf6962f37d6610b3c03939e7e9fc2e35ecc9debcb9687d72a6c0a14dcdef21a7ae1ba17d1b32673c3367f57b065e754f9782e974c9291f5e14b65bcce7571256e2f10fcb59622b570b061256f7f169dee490b1a5cd25953a00cb3bb9fb729ed36dc57d70fa96ffd1b20cdd99d378a50c1fc704528a674f1bd8e624b4a049b27f8479af333957a41882565b72c9ca466e661c77feb63ffd5e56f805bba9d862f0a38e97039985cb67771a9f8d3fe0abb2dbbec426b7edf89f2d8800daf6916816ae3dfc1dfe04358d04427489ee29990ba4e2a9ac65b0698da7a7d396d1d8440bceca02ec574a967d0ff98484320e4098c306ea994c7f214ad8cf8e9413d16b2d86b6c53ed1501e452b3ff0d524bbfad95842425531a2a139edcbddbd499cbc1ef684a9f97e2e41924e68e9f2ba2d6e967bb50d82470cc2d2346cb024b35b97c386bb0d665a97b0e6600577bcd125d8d688b551fe088b800201f420539baf19431fd7a90d22bfe14050ff7126c1ebe4d9ba8306c6d2bedad226e43bf65eec8df71480eb7f7c8cc3e3cd14248dda59c41fa7ccdc57526f758b0fb40bd5ccb68d9082bf30da54a7ce32942b6f5d2e885655e637842614844aba190bdc3d026f91e6f68d0a4c6ce9d1e7410c467e5417e1af8266a92a5e824538ff3ae47ce140ef106d831641b07cb4efdb588df6d69f4a357c9d97764dc1e824e77b4f4bd6dacb92cb329883b49ad96a821300f3149b7a905d100455af0f56c7d2c1d293722f77ed7647a21ef284b5e2e2568a2d9aa41b8aba204671c4277ca1f084978a2468370c97ca192d496e5d000198eb4424b0ec0cca6c5dba712a65a4b914827ac00646150a8ce1257bd125c4068e256921cae940d3e2bb13fec615ce4e7beb286c03a4696d28b2df5159234c0f6f00c24c1096e0dc6a18f9b35ff166a36f247fd6ffbb981ce9d43d7708ad11a93894e43898e69ce302630668c9452d3e0a64856819f7a262c6f08b6e87f6cd6e6170ab67d0606aef068e00b81f0db7a02dacd0508b6e9c51b290211fd54869996e620174182a8ed3a4802d98d44031c0db01f30459a8e5f80780fb54c17606f84dde500d20a18cbe21f8a68639320df9af43efc511d92d193dfdc92aa2d831c6697a10778c801294f338462e4d90b76c5585db6d19a4389be5e6ee586ba3a83213f118465eb74c74cc48b8a6abb9f48943560c2d5c394c384319da8e6aa1318a181e52dd8e9660cbf3f521e2f3340b153f8655e5de69a5dab56945f63f7626612054386c2962e5c71471f84f06d5149e78638351b1b1035f69c532bed11bea4c0424212482b07028b464b492f78bc4569daddc06a8ed41822f82d3149588259fd547065969c94a867acc3709cde6fe3a8c60a7d9f0c6849fcf34a5186a84d0fc9464dfce47e5762d6df8a1193b7d9e35965aae917157289b935262de2e183192eb7cee6a5453842017b3545b7cd711907e45b5dbefa3cbeee1d107ed831c9687f2edb4231e804847f666d6614cd2f041a84f1a7e1033420cdc7acbb568a8c6fed57d08675d1ec4454f8719f5465117e8974f1848f0e6dfb83d472124e837b16236e009c768802ccdb5191c8eb4c987701cd16dedaf91d00eaab2caa1d3709c1dc8d2dc9a5aebf62e9d5b4964ff248c4955ad0ddb7f71d23d01d7c3c8f5eec61ab4d126d5cc880bd97b6d31997712cf7511ec0d157f66c0ea09954fb5f0ea19f55eed98803c304f48d487b8b1b164f4f38563edd2e83ac2128847cc78ffde50889b3a51ab253f009bbff4f6df44844b481a9d37b0de5a302b78d0fb7f0283d59cd780a484c184b07cab784f7684e9ec23099bfd3f7adbcbde84cfeebb0fd6fcdeb6290586ddc02a1d03064d7b09d79e849a674d8a4b08476c7cc8bbad8f107883ca23380a6826571fa76cb3d9eeff09142b7193dcf182da8212fd01ff796d3058c96e679dcd9a8c03242ad3d0b5aa46579260837c2600ef637fe368876c068a28a490bf2cd1563dd0e398e7a24ef3c91c98b5010cc01208c244bfee5534c9b2cf820fcc00cb913057b680827eb60df258bc3338a8008830f9e40bb17327a088bfddd86f5f37d97dceb2f4953881abb8492eda90ff528f71ef863d69e03828e70667b69af6433b3781658928b4b1a82db001fdcb7608a6463835809a6c448d020ad40d9c9539190f67008b9c66e98e8b0f749aa18ca445230af9be557ffa6b6440a6c005672c03aa4fdd5a8a4f92f2681816e26e9ac7671b48e5a4c8514b2eacefa2979e57aaf21b92234dcfc5dd07a6a41801874c1eb13baa333f79b82de5cf0ed2cd7a4ed57989e9026e6bca737a5e9bb8c78da4f89adf71072f1eca49ebe1c0d1c1c4645c359c87831ed165a166ba64a96f625b9175af095111943a556091f503c42bbeef8001d972b2b00544717500d48752b208c5764f6a4a5c9991bf73d4f2bb6c08dfc8beecfc36cff55b7f489691f8c3d5ca88851af0a9a4209b98670853fd73758abe1826442924b03b1d5e7ebe704af9fa2f2831bb6558d4fe57ba2f4257c519296472c004c133a78438efa9b6e5d257c893fb66935057d9c62dc085ea16b8875f0ecf11f3379fdcf62786c152248bb2e443d4206872eff8607758680e3e36b0c405fc896b2e1b33333f12df8ec2ef35d625f615ac327926e4f55200fd5133acdd7135a30c27dc54ca8dab181f8a879b3693afd029a9d0b25204e8251c5a04afdf9e25fb49412933444173a612d04b8fbf20910e1230eaf9ae77893a0662349272d8789ccb47b743b4a12341939c736b5b32a95a5954f948611ae1a31b1a93f2e8222f68ea42407212b39a57f9626d039849f09bb70075e451a0f73de413171c774b83caf598fcc97497ca72f988bb2eb8d8e7caeea314068317e50e70e3204659eb104986ed2182e77cff5fdbb16331010c22f7a659e56ae732394ced8127ddbaa582eefe61751f6b2ae88c29e1970429527c853fd704b6241e830d291af084cdd5f8b46f41c7a88c4944209c09bc3a706510ee062a14d561bfd1faa12da961dfb5827fb3db116374783ac7be5d60550c5f63eee727a57f8bd556581d7d8c40ea23d2085cd3c56919a7fc21556ba9f6bd56feb1c3f1cc538e727245b2ce097aae5e80ebae638938cf612d07755686d41323c6a0a85fa3a3d516dc355249f07aa8f9cffc3c1b121ef92ca5ce73fb7700e957dd7f2e35ddc19f168227ef3b6580c867aface52c96dd66ab728d167b253395479a5dd7adfd10a761add24c73b47f0a80d1caf09376a72a6ee38de5d17bb83831bbdbcfbf01fe85acaa0e704340178f1bf3d01bac34e501e08f4ed9cda682329702e1faa55cdcd988490e0ec1ff141ba612e88aacba6cebca34e87aba02eed2e2a71592ea359322f97b9adf76d5840e1a77ac820c2af94bbe00793a445b0fbb1203545a0c883e542159842ed02baf9e1aac5249cab0727dce3f570c156f67b76ccc2faae8360b18a56abb59db7147c1e64b1fc59a2abf3c35762baef97d08990cbeb2555e7c0971d751a7c59d9ed8c4c375790aa53466f95e77643b57f0846c6618bd81bdce8e57bd168c5c2a72be0636750aa1481ce1db9c6b92da5b76390caf296fc879e9598d98e3ae955d7bf5f799b4e52448175a08a289a1d719f760f338abec7f03c54ca45122919131122ceaa60440a47bce52247c70ce531c94670f7569dd2a71a28264888a7c807729a4d9da61d58a631d1c12b5f3835db7cbd075b297ab50d708198f260f77c120b5c961841089e87f0cfc42b313229ee32ea3f5df8974ce8c883b832cd2cf71f606fe5f7694c8316a08ec50784cabb661a157b305e160612849ca3634543ea4cea6cee003ab56f25fa4c1ed81f697a9097a156c21962db63556945be0542afcb95075a303589db1d4bac394ed1f906e7bfc077138b35d88dc5ee454b8b70a92943679bb2bd127610f6cd9d09eae83a67dcf34bf83a29516cae1e18671a9b4c944653260f9bb864f3f0c1cc5ebf2ffdbdef5e67df50d42b4ac1aee2bd3967f709ea2c50037ba61ce3424554d729711d9228eb6a651b7dda6a013f3de234b813f7e9b965296d0599888bd0a6830626c6be6f399cd18e59ed2845d0fb469a232f9cf5bebfcf64c4ef9d7bf697f0b7d957b4df649911bf5f5bf0b98a8271bd75fdbd316ae052baf086e859129633a176bf5d4595d26d67a6e45d5dd45baf3546778cb88de3e4aa9e6ce67e46fb09aca299d8a561b3fb655530d785b70a775d9c866215aacbebd56193dad8ca0f79c72bb506b502a6c53b268801579953e1d5a3f3fbc9c87507be55f5d9688b97b56284c67f61555abc8f74539750407555fe708303c9263e5f4eb6dff9c416055bf24f5eb245adfac7acdeb33ebf2a0c9881d57a67fdae9f0e5008e9c596dcab2370ff7413367738bbfe75e52d49359ae9c844f7b6c2445867f6d153b21bbc8b64da7d1d14baab5a7d9a7f449c6391ecc684c8cfe669dedb4652e3df55a4e28f88b1ec30358a11b87bb3c41a39db0bda2a2505f040b66f20ecde2e4cd418fa5aa87a7005f9175047562673962350a313e6654e5fed61a40c92f5310b0971a7fa243d0d82a303d22ec6ef8d8c29b56e01bfbecb6578996a139257edebaf3a591cdd099321b1a3777ef0b2ede864d2d3e590efac81f57c4dc6f9a96db9ff18669d2d6e9ab6ad84197db233d1eda9c30dc18e7b6e1ee39f9f684df3e312e93e7b906f0191029ce3da33f8defda49a7703af23292e40bf8c75cda8204efe71f75a120fdcd5716f334c21d94070249e326eb9a7850f95513f700a8f81aff77420eb87a71be68e319b5d3e0a8b9c886c0b5058455eb09e0ba957c9804bd97e60aa931fcb6099fe4c7621bf2f163fc65a6fba1af946ade5832e8542e014c365721dedaf3c4f6e1720d15e39bcdbbcb5139ce4318a153669fd261e2ac15a73615010bf4d6c13e76569f0f31a56f813faf52792d8b766b2bc205f1e1a02fc779fcdb24e33f8d7f5af58c9089a2f2e5ca5e077c9d09c1976858899324374bfee612344fdd2cc4e79490f8711895865d7bcd247da7177cf854a8709636ee5ca1de4e09d362f402cc9cb2208a1b8d42692fe6328b4009a716bc898d78d99972a9c095da5afd12dab528245600bd12c1f948ac7fc8c4c44aa1a3b459fb1b8104f0a9a82daf4fba907451e9054d8cd42a3a051bb7cd7c98c68e54fd9f40766348d5a0b66ce48eb5b024e8308e005856e28876b81b489a54c5f80b139d9ef8a489ca91c32a6d249f06166bfe9b21ae449c703b7c282b38a378617604546a84bdd19a7c39e9d1c275e6cae7fe1ac08cd1fbf2f65041a6514e5977247aea9dabf8f038e2e547fe211ea725a94ef65dfbca3f181522c84e525979329c5eb62f541463eaddc512e302dec43af55d4a94ea673655f4f6a1c39a3f53ce910ef45565fd413800fb021d05a5fb40efc02f5f8a9e8c53bbabe12f843cd9ac7b88d1c45b3ebae5616d8e009d5281f143dddfc9596e6dd490d41e8747a1c77a8a32a23be36de9f8e369e89b0d1d8e0c0bf9524e55aad21bc413bf732a95ee3b14b028a0ccffd5a5b327e4e81085ed9b839770a70d32a27952a29eaac2013b0d022a3f7342554b71eb099f5d136c7ef8e4776fa1c9eee280829ad406b9ff2f64c538701301005725104fe568ffab68a2152e47791ddac8469dc95ce6a4e23916e4e79b6f41bedacfb1f25e18b9e9f190713d2b96416303bafaf223bd373009e31db681653f7f468bda59b151eb2358c0a8a302a2290b5748166cf83fd55b8020b979a959ed2210f6767340a0f86c9d8b77507e81be4f2fada0b1175ca0818e3bc1aa89d28f9a1ec21ce37e8d8e86077f8a028470da46eb939e49835491f5a2c3b359b0a8b2ff4b128ef8b6e35bc7be5bf979f4c8d4269465f45e4baad7bb20ea0ee8aacc2a0cff10f4fe86cfc3d6724c894bd3251a74e55a1751a5197b79e7a304585c81964a1a39e95c649521ee5395eba09e93e198c40caf47b18a7deb7a770d63c97e2e54ba536b4e77d26bdb4ac3ee88d924f68b18789d0f0846675df9248e6e5c601bd5337cd40f31802293e0c82c0f0044281f74a74e695dc7d0627793876eaf548b7cc7c7307ed3a26b9376999ad8d4b1dd5a1d1953583bb3ab0be5f9d5ea138a12629fd6e14fb99fa5ca0d85afb4323833e330590a16792666c8c8c059c009905b98425e2b83cfecbfad1f31d550681d24e1af44bc900236d0ccb0a954257934d6523c5044c41c8da77c056e83a4c0b1a2d4c503ad3e707d32335297ac97799c736a492ecaa0367b943b323aa3f679ada7040f12351a629fc5acdfb71a05f8da301d7a2e5b82de2fa80e87f8a2266bf99a2e34f8a9d884942e44ad95c4155492d4a3bf35a62cd5231259a134415a03c444c610898542d7b5b0d8edce22faa1ad7e8ede44ee492653caace8b91c13a8760c31960a1ca63a5102746642899ca3f143532ba635a26dce72a381aaadffd4a1117b3bc34a28504443d1f959285086e03c1d21d74d5200cda0426f5cd6f8fe5e7cbf726bbe319a7475963d59bce9c50e9ef4c98bb7cbb61d25936d3e2e8c3eb864f21cca8383af38348f850b84aac017bf1191c8f7b55d7370a067420ee05a1144e3f813d2ce51d6e2108744ae1bb91f8eb6e7da5bd877ff7029717cd5df9827d53a83bd59322b3ce007075a778e285175f7df4efbb9b00b3f885020acb65bd8662c393c880a11458b945ca2bf03356bd09949b02dce0133fea71fdafb424b5b06b0548dd5d41f38c6f62ae5f9854f089dc7ff40c248a06720429d73b0b4880e9cdb0bc461acad8f65be5a02bdbe03532c333636245743a42c147e0cad7ed690f4bc0753684f19eac2d0fe31c065978aa4e0daf923f72a6345cf86d27163e6f431a6a9efc34aef628c7abffb9688d02218a0385121e85511bf66958e513e0c30b02d383b8b0c2e3704f7d3ee7381b91c884acf57392b1db2302687d8ee6cc4e46a4dc19999b5d3d8ad1c0305bef66d4725a4df32e6dfcf535d6333edfcac428eb657573ad26a62e42e4f127230ea5f0fac417d7f93675e4a1786300137fd5229f9c734e45160eb7431468bc3783eefe7f804fddb16c1c021f0512ac40ea4f3d16ecd086e1034d2c7e0a46482119128a6f0c51a6d31fe13d1a431f2fc7a2433146fd0d9eb4bdfab4dba8776caca7d01660935ab683fde797544795fac92517e768f9a13db3e5d8ca4797298aaef67595bb0387f426fecba4d13a8c82bdd11bffce729cac3432febf05fb3949da844cf039a3a22c8b3f8f0f16a10dc103f60c4b82a50b5923f23f3557529f14a4a43e852ba75f909fcb8015b6b789b398894152b8394c56bdb668a572aea79c36a113a2939bf833bd4d720834c96adbce5af8ce14f222dae44405dac9c53f5277dd1b0e13a37d8d7ff836cd2e8d33bb1bca8e2ebcef63bf0030d374a09826ee1a1fcb81a2d9e0fa2c1e8b5ee0ef5e5ff461a2153676f6026dc02667f2a10febc977b4281d64553baf3d324aecdae8d3b9dd15d91f5937477b07f079aace3a08557e97229bf6bbf31b864f307ed900a8b571b205af7d1753034361c728b5f6c8f9c9b2059cdba62acd12bb47b8b1e8742666a6d7031ad79083f29a4019c7d6f3b6e15b5901c6f6ce09625cd9714d6a4e5c5772c34b9ce98cd13f2c289a772413b111f11bd9f7302e3ec860c4458ca156e5aceeeeb363617a5a9da897b28f37f8a6d8953cf887767dc4e17af8f0d80f2bca19f3b32bb53daff3bb0df8182bef3476dfce2065d073553d4536fb009c1073da37d222f79518263b3a378a49177aa0afacfe20924fb63178f8d068d2e5ce5709904b7c1176fdfd87af27e2ec8efad53b86f808688696f1eb69fa6bdfe9cd03daa1ceb85fd4a4f66af480678e8b56b40f335b99209d4a5abff04d475e25ef2bdcbbe902b346ecf7beca1fd5a227b3dff08e2908f1d8c59461155dd02f4ba28138b787369b8f258a494771bbdecaae3d4a22237d842cc0aab224a4f11d4f94404de82f6909acc25eeb9ec2fddc1a6b7a1030b396466da00dbccfd1286a2ac4a45ad6d361c202f8c460397e5215eadc84b6ebe8e17df70a12f9d96005ac335d6f3f8cd618a11f2932922b03c7229fa50f32c9cf6536cb856f2f18a1afff2318664594e13da9a457c4747b863a5aceee121019ab1afc6bfac2d741f35e84232dd2fdf0cbb2e95a57b67acf37dfb0ff5d4899620c6c650ddd0a165729e22a7712002ea54f0f2f8d3deb936bb5bff2da3bb1062e78bc6dd6672c429db31bd4a95cc1cb9c8a1e86165d69be9db5344934570ec63051df9f45a86f0074807ebf4a16eb0909505d8ece23db26fcad6f11b30168ce0d0e9d10001400ea843b97499bced674811f7f9c3d590dd9162bf2020dc189041c52332995f96fc50fe781fac56fdf1e7c2febacc29174007f7d16a60ff581afe45dd2410169304f55a070e478a6e8dcee583b269524a4b8455b871af2bf23fd4b701d0cf91e1b9262be2752fd45d6922bdabf6b4c96d76d5417c32da9f38596951dafcd4795edcfbe6082c5269d129049d7f83fd7346dcd401a9ec137a48444b755936aca99c5f9bdf1ee45b32109fcad361df70c9566467e5ac08235443da4abcfca3fd1b4a7b87916ecfef630ac5285f8997942bdea190fac25ef05de95ebb6d3c9cdf236fd05b304922eede5f1f03f708a168d0bc1fb16e29cac7911b3bdcfeaf83299fd10541e3d0964082e50b163d744269d51dc42f1e6492fd4fa800f9ecd3476d4dc9346dc36100e5c5746984489cd7c5a33caa9ac2124b06f0d2e1cc2094da13b2419fb209f7759f94bd59076d75eacac90439f0eba78737939ae69553889abe6e39ae14b6ea55f998f02390acfe81719a6a126808e645f806938ddd74c1f34cb6df224f23913a5eedd56bee6768cd5209b624886f95de2cf81c7dffa77bd0c060f62a39dd9cfe737f95ecad20722618868a812a8d6aa29d1909a92fc550394db230d7742aafa3deed12b7ffe5eb31ef35bb929e490e7a7ecccb51385a406e078787c0ead7a4a84a8b1d3832074ffac7c017fe8176783eba5515ed23788ceb8bf5f1bd56a71891c8e7cee2078ecf8073ae70811fa7c42c5eb4aa0f36a7ed762a708ba6bef0a14fcf26d196d46fc457bcc81070d8bc1bbbed662cbc6b6739439fc610c71f8a45c0af7ed768990a8c064707451be1c2edae04fd3f2494f1ce719884b2bda71ea68cf423f2bee3c23f9c631a261df536360ca59726bbe5997ab9cedea12db5cd952723bcddec6dd6bb0ab30b9d6f3c4335e16f66c534db09a2b21c0b9225f7b0ac60748d4405fba975e561f5cf0c80e3ebe12e12908bcc5e0a7a7a2499e11c258863002f77f9fe923ad4664a916869452bac69dfaad309b56d67b77ca2ef6d204e8076c14d1988f7cfc0a8aa2524d390363498cd6a906fa935fafea15609102f75662855cf0219074dce2e6e1d36bbf651b68045928b3637c5f64e16222a1a9d0cd5bda31998348c19531a61f6a1aadc31b9daea098b96983e6e797ca4a65c5135f36e5df0c3522aea2c09d420eced8acee55957b2eb05ff3799c78780e7828c6b1885d8f8fa8102430d2981c5818ffa3f489a8805f5499c192b4f5b48c36be9b7dbcce2aeb274cd1a303037d07180467e0a0ad5467afa6ef1bbdeffa44b9a2e111dd0f17edc0dbb512001df87e79c2a63ba9d55dc54a4035f7f772ee985c111acfb576bce641c099c602259c41078adcdede7396bd74d5b27a86d55a53d96b77ab40e0de2c46d2f9bf291dd17ccaafcd7c818e04d594eeb8eb6380551feddb2ab064e8ab9752a5c82f9819cb7cbbd13716fb43995890d5440930ed410d9351c97b04eb37050202f9fc68404a3302b01284563ee0d63e36af83c9a2ba11ccdfdfbe5ca8dbd641c9274271e5deb8c6bdcef305aff4a2eea82d7fb83a5284f7b92ebfb2a685709e52e3cfd26b8bc591cbf962f98ca652f958341469b9b6a0bb53e8d652ab9bbc9f97fea65ed768373d6dbd24050f9843683979cf35c300087e65c0f2dee479a735be167dc737e69274fdbc60989c6013a97956324278df3d6cd78c15eda0f6a234d4f13ea457567bc560f394c3ae6f25522c8e302501e12914d5b8d3f5a69223e2cda58a4259c23b40ea520e8f5b7f20f751fdb363164f988c8bd0d89292272291198731492b6343a8031472a185e3700dbaa017bb0cf6ba2d54fa5f0dc7f69d4e5ab6bb2affb6a2347bd13736eae7c4e06b6aac3b30b4a3d94d48bb3cd6f4149e1bc5e2672be391e098cb296487bc8e9789ca373378deccd4a66bd2b4740e0d46905116a223f6e84b5dede9b314258647df7a71e7dd5e8f2e19799c4455ed912caea9f87d70a8a62b8c796806883d281a90108720e0efaeb95b1ca9c48574ad43397edf55d16e6c4a649770cbe02a318193139883fdffcc9489ce983527c5f2858f6e56bcf10a021927511b88b37c267bf4df3abd2f97f242c261a12e9b1df60248be9bce5c4bd2ced1f859ad2f59cce70461f67bb10f0c54847a0c9c804ed1fbf6d522579856681aaa516fbe994ab1ecf6cac73a99926a9d845db8cd19d2a10fa94811c091b0f861804f73c773aaa2698ed39fdb1210400204cf95d5f5cb0678e7f7c1d5c624d893c9b6d123ce33337ddc8ee31142da26cce59e2a36f757a65557984359d4e20187f26ac9947a3b3b193701ea9c1721989308e310e11199aa0c4649d962546692eb8ec2eea71b6a54a7deab8152a34c76b8a3cf74855ae940b1b429789436364dcb45cba86d4a995fbd03d66af9ac9a866aab93992e41661784b4d54d1cfc22189a9d01b37f4ca2fee11e18d8f39d73ed417d9d543211d5e67e267f3587816e7ed609a39e5714821961ccbbf4b905a2ba6757328e6f1085e5f02fe5436340332c3adc6a4df585335a309ed65c2443f75b4e5c51c6dcd765512bf6c53eb23274747afb3c78d53906b0e395a29f861cef26fa24718c66bf01ed3d7386202cc279cd9881fb2a383805d0b1387bc2995093d2d923c5071e776d7cc375b498516d8350c3a38642b76636af886f12be366a37fb2e5a5e70b7278748be1db7894e0c613dc585b0f52ca2180932a5e4ffe060a4a10622a99558b4109e84687a89acdf397407dbc04aeabecbde87d4afe620d0f2a9c10e8057b7f74950bd9d2263d5d2a2fd2077fe9c3de9baefb878b548aecfa15b2d264a2c8816b1316cafdc95659c2880f72f971c492077459d91dbee6ab66fe22bf4609d3c41789c0edfb0d24ea69dce6fb3284d29c5acab1a2e55132d5219cfec3a49c9117f11eec739d582cae7ce56ae321f866b78c42f992e57e9595e6b97b5411fe16e5cea079ebd5d3d1c1bbeb0e7041974d4bfcca587318214504301103a04f6aa939612cec539505424f92216c1a38095762ebf24f0db162da268a3f884c4cefe961e12aaff3b1248c264c0e640a398bd180911871cf0bd4021a4766e70c13c4bb50da409049ddf5107b00d224f874795eca0c4ed4ae4a94eb78f1577ae13bf12ef6465dcff7d78d83865cfefc5980b1795dedd3972eb1bcc11d03b7a61f35869f7b1c71921c97dfda23d7e19121ca1147db7319216a2e2221c96e2c444e8f67a72f3c038338703123b30c68e638b0fae7d8705e42dd13c2e4ae58c0665a6bd028456c3b74b9cb81d12c2fadf6db604ded488d85e14f9a6beb26809d2689975d3ada7809786bda35a970219c2b8e99eef6be4fef290967e19fae01e216960e452fe90dedcd2b1ddb7aaddd292807f09016e146bd9e95312770c756fcf59bc0bf98eff4910cf2fe1577fad2acd267c99872e931f0c0998aa84a86f5e1d02b3f3d6524a49c0b5ea00104e36599532186ac95f1048ccb02552e1b933eb2f85e8db0b35f4c5fe59a054ecd7751330e159d36399a6e61ac0bcaaa38371438c7a716e4c872308dd333af6acb8f0c888462077c42ecb563f87efe5d29ae645a1969fd464c028c7f97c53b84089671eacfd410bb055f2a4462c9e0eebb0324e3ee38a5cb08aae03ec5cb69750d21dbc4d69a179bf9c21df7d1fca2b5f2e8b69178859b4a2226d99da25a209b6ce1c8242845869dbb1ea0ff89fb369129d57834423889e3f057b97e6a0ecf002fe1b5804425ec6c678888a0e507362dde20030c1b1b468a2ee9477ba6a5074f586f919337f47679271188cdad981d30c4c7d7bef07ae5c7728f73d04607a28066aec940f820583276f2afbbba3df89e065638811dac9d98028a264f319a800e083da24ff0ac442c09d203cd494ce120ea98ddbd054c3c2147f2436be7ae940e25f7c440ef5485e6ed919a68de94fcb3ef498e7b845a4729b1544e51d4a573d9dda384e6966775b945460211018d83c8dd6c7cab9d37a7913bd2040cee1d0095a94e2bee290d8bb698e96ddcdc4ea510baa1439a6c7ddf78e0caa5611ea125e9233c18670024c1d79991cdbf6c690d13e7e7c3bb964818eb28f82cd2d2639da73779058ad85411524b26738033ddabc9dd2ccc40dd15e7d3745aadfe950fd87621a5f7156921e581e2546d130b1de9d16217e1b230e30bc6c6d8a42130945ed74847707cf4db190ed8549c3fa4ded93893865bf5e81428cb3a83c39fdcdd044f34dbc699d1bd3256e35d1d7a622dfec4b6745c1870ce24101662725fb0b1e7adf9122dce9bd9c0e51386fa9ba77bd67a4758d7949b6dec95fa149cbe638ce556a1034690406cebf985da19782332ed15170c92ab6e2eebd6bf2cf569c0025e07b21c333dd144b2f1cb518418c4e588602439363c01bf0b0d8eaccda7d816f5f2c773a4f8d2bd1e40856094a2c58328fdd220ce3c16948bae9c42eb6ef9866804cb032c8cc0b45115c753ca9f90a6d6dfac8285af33bea2dfa614cc6dc3fde26deba375278e83cb06bccde934ef16b71e47c5aa3f9e0bcdcf798a3c52ff7531d9806e80215e6a7c95d4f4565ca19fe621eef5ef1558f6b2fe3d4a28d5b442e5a6587d79d482bb503ae33228dd0dbc88f9ce34005effddceb53039833d33dbfd9e487e0375b815cd7ad46e4a308ac96dd46acd3b2948cd57bf0d21e2293275c1ce64bcc63bd842ae4fe933a42dc00fc52797333da75fc8519f941a861961f1c30f4827dad7f653212195cf61dfc4604a585561484a4b8085dbe7cf53b5dda0fcec68a06e4d737476bc85ac53bdbe5d8bc3050eafd9aae0f44260ca0476f6f047bcd815596a1d4ded6ad5d7eba2f5494d431f333aab4b644f32a5409b2d33523ccaa296031d949402eba2afad9753cb3beb6f471b8b18c1e1f58624b4f97b000e8b499f96122dbdf70b6b6b2646ab1d527de86951f36582c40510c05914d8bec1c77c1bbb742920a3bbfaba2909372c2264083ef044ac519754b5e1b0689a694ed30bbae09a35f4303c33f1fc1b640de3a6365ea30daaced3a8f59ca6e64344d4552ee97c8d4caf30c055ba6505f4289ed43151952364d45f2fc029fc1fce48f9d03021b3e063352719f0edbae5c7814a7d381649692128e7e82c134b7f12284be9f9f16b3909f9f19fa5a2aac414241ec750b629186ef7f2aa80cd093ea5fa26c3405e79a6c201f085746d2c1e5f27c2583be1c7e8f455a63076b30ef0e71c4c50568782cb7be68d749434582e3744a45ca5ddba98c5da5cacdc0332c8cfb34480827534535fdf9e939e723231aff8b1f0a3dad3c41707a943bee242b13f18f7e68cd0b0ecae8255ee1f0463f2ed99e0777ebc7a3d73e942627becf825a1c861303e5c09a02b9c67cd19e938405307b573baeff985a3baa727b24b43599bdd5a0ec9890ad8a005303ee5594fe4afa49d6f2cae4213a41d894b4ccf2690e370ae5ea2730d4b46d385cee970f14edec22912ca24fe8cbdd14d564f8cc237ac9d42bf8260f55f71a9e92dd49171ba07fe49cee9965fdc428f848b0add163a160109dc393b0c36d6ff0909a4a4a9c5c01586431d8606fc42c55f9d2351253ce6fc2d62fb7239f548fd8035a5942fbdabc139a62cda419c8df679d98ebf7584cdeaaaed2d7c6108e5c810d254c683f1b2dcda1e18ee9bdb7ab99b3e359950fee03353878bcbdbc20074ccf5496a825e1410d49820188c4d6861efe2aaa8c0c88b5db339dfec598b62d56b2191fc27833b478f30ed430f9549cec2ff462e55d736152ddf62c53e91e8e7341f76729ebdd6a1ef3c3499838c084d0e461766b6b0d3c05a6e8bd1cd8c9457d594603ba52edee7da1d0d4e04a8d0ea0d5a2a071a6377cc2c90fd287924da2186fb15ab03337f037f2da80ce159596cd977d161113d5a79ed3b9c69681e58157abb7c5a5fdd2d99aa47a2d0de993f0dd1dca83403f52f06519699848f8ef43d4aa2df0883a9a767dedbd9813e6a7df829cf8595cad199f2cec541592a86d492bbdba90cc34aca5196fa2396d6cd61e5c6e886efa101d92d0bce7df5a4a8505f49c596f4647ec1ed998a0ea740288f9a00e91e922fe52c87dbb3f412823019e9bbadbbb781e824746151d64ca69087434493b8448d431fe8789afcb5f88d01bc35e62b43fb0581693c0f8860c6e0804e64c44179abf385a2b6d3ecd4b09832b031be89b1d949e0868be0077a2831ad9e0627e7987a46829061726924ba9d16d373ab6009fb34726eda97a859d7b38b58bac4eae93aac5ab5d715677d9751358b323ed5291ff89163f879febfd683c555b6f2f64cee4daf07f21f1cc50cfc8a402ef00cb05f46144c2111b55e452696959242dc38e4732c4d45bcd889dee125417b838a05a3a0d13063f903a7a76e01d62b76b8b49b4e0a96f6bf5c83f8d383c079e2f8fc4a590222a52110c9baa2c335a209d839c65f8ea34d628264d18222abbb855b0121c31a4f7a7a72b88eeb7a6dfc68f37e96e13b2e35657d65982e09131bc6f9ea6b9fcbe2078cfb7314c52eb36ef9c061954cf3797fe2b9f739b24cf367212eddaa43f045824fa25defdb1b176c5378264f74dff90af7c9898d1c3f5b4ad2cef51920ff431520cad3a36ed40347a661c383cb2225ecbdbbe535f3732fddc7ccde6f0c19102f9de7f1e01005f324a412690c7a6afa95e0956693920baacea15ed3a11710829c1bdd78a724cc9d438781e6637d8134e4d7e1bbd7fbe4c0fafdfa519627e5f7b8ee8ceb1c0153d5abbcb4f090477997701e348dcd0794321ce16492c080b3fc4d3150b0ef502101f918fbf7cffbaf3e9e89866d5a25a329380c977b8ac80c48459ec37d597a0586a8b306c34105adbba9b2fee47af8f1871705cc9625c08676c768b514f18dfa68715a9dbcb5513bb13e0efbcd593eb204f8406c22fb411ec385400bfdcbb934c2fe40dfa8f5f276cccde5256600363f21d2e54193d68ce6bf0bfd23cb58cf4357f510248f67dda02f1c487f6bb4792900895a450ed64b865a7307997a9181e52069141595b81f7aa84bef074c25e36ccfdbbab997f6809e54424e13572cf928ba41518a3a269499413afa5f6efb0b043c798f00c4ef840b5f6adec735477b3504139e79a91a323efe54cf070f33a88f3cfe94e302c02a0a64716edcc287e4aac9a74a6240072d9f8e54bcffbdc06e756fc7a76cd9f4fb0e209b92dd60be403eeae3b5e51380a45188b1576f4d3fc1c1836746b18ee2dbc5087e16909441ceee282e1ab6d1fbc430a5c23caef7e6618518d3e04263753520aaa41525f2688fe9d46bc41600238341eda71e67c87fbf15b11876db21916c7df0ec50cba031f8dd01a2164581fa57f82e7a99ab7e3f06233c3e8a6379982b0ec33edaf1f696dd6b2f8b46ecc46c50ca1fa8ee7aacf4f4a6343d1035440b4693c3598c9c43c557a7c7efe4dc82dd3c78bb0f88483a0cc29891d46aa80b922917ec90fdbe681dffc6ca21a028c4b222379901e5c92db70a664d34a1818583b8ccb7082d776cdff45648ef4237a5cc8945012450e1f3baf0b7809ca9cac4bb700790795a993b560200b26675956e4c114473aeb6c0a8be3c738770edbae779b58fe2e8fabd4c52fbf8bf93ce3d349149f8b5b70fc4087d3ebcf7c0a4a6429b444e93ec12e64c26634daa61912746569b603d4c97afd2581ae6a80e7b72d26ac37e2af26f8e9433ff98cebf5cbb49d81e017d34854dbf781e91a7598c11dcc93e8c032f4c145f6546945e9fd088feaa225907da02cb9871a9c472d755bdf3ecad1b0e5b4b519047a44a85e4f57455adc918000555a6be48f67ad5a364decdabfb36559d6f52479682fe6d64b5982f18eb745657c683ebe7c12ef5d04b31369f610605807156ea54a32d411f144c7002e2b9138429449c27a05b647ad7c50ccf8b041a299a03dcb8b389426f0622a4992078656ef51911d1cd062ad80ecef23c11d320d2b90e8a18192cd220a90658a8c67e56d4fc6f95104a54d33c21a089c292653bf36d66a77467575288fc034549ded4a0c2e4d09c7ead996ee1d733e6691604572d3d8d1fa8a77274cbb770435d93d79454df57ac0746787000c35de94d4a0bcf2cfed76f93d160eb6124ff09f0982b647a801a1a41f6c810d9bf53ed21282244e93e30999a7315bc7cc7611240ce8386f0c6797bce7ac8071ab1a7b2e86e65460a27a6bd8fc8d5046d42e1dcf4a20a3aa135246d8f20c2b543f5f767dd86d56b370e757617f51d8d2e04b53d5e9df904253a13480491671fe255534fffa0037e32e52e1f4f48aad25b4b8bcd8ef5e335622662a9f9478be13f3de7e4c814aeef79c58bafca0a814dc93f2b9693fdbfd9eb367a3cde885ba90e4b3dcc1e53952678389500bf2ff23d2ae8be19ab117624d5ea011a9e3b298b114e0d7e2ea811bb159ebb654c4479c4d3ba82ec202d79c10dabeefe0c21af9211743946f8218fac6cd75606a711d517bc1847fc18b64929be2a6a3e3a7fb5818eb10b62640bbb9b25395aac3e480210134eb6370f30abb382fec3055ee37133ffe4f986d6368762ca1ab37dd935480a62ec03b011d9c1f3feb5cbbb956d4f08cd65cd358f0e2e012fd8b19f987e28c55f177a57b99ee657ae475d9fdc97c496fdb6713cf253193f796ffcbc99e56bbf6739b3ca6cb5aedd774e9b6c6a5feb3e7a0f23ec0db1f7531af43ff91c6400de93d49a8f9be3cfbeac41f07b4d4cb467f0956edaaf9bb3027348732834114da1882b4f9766b76f71965b1c7fd707a68318e3e2dea42dab6c39d711e65ebaa27f75e9f5a7bc1edb88663eed217534430b0fd299b852b91d3463c98efcf13be92d307e60beb6109e203f5594245b98856a40eecc77d45bcd2e3e30a5183be71c75a0bf5b34d58394da97f28a1452848b5ca322eefce1b7b34e0dac746a402c6893be14ffdb5856d89d955c6ee85c0ab581133ebfda3fdb071243443d8ebd0264e346708858eac9a66cab851717f86791f163ff2e8735182d0704ce88a10a0dc610bfc4c19a6363a92e2c91c582e88a2eba84467530385dc48a8f492acf45d9aa33375d64715e0c9437eea2f2eca5cb762339641858494ee78e3ef116e638bf3cb1f42793cd76a49f9eca9c21c2a376f3e2821cdb14f70aba93dd0aacd6697de4586ae9bef2f60bf43bac9c6fd7ea6242ddcb7298eed3d4ae38de9975180663997175bb5a439aeb4a393105c3e4d2c53426a3cca376e8ec6117e0582924e71445969b2d4b833a1b4755d9c5b91d00120f785ccf76a46295e39b2c00e96690d22c117561bc16c51d2ee4824ce7133c2cfba5c684b092df815bbf1fc4ef97f425cb85f3e3ff9e11f2329fd23747544324c13e9f037f0b2f533a984a04cebfe045d85b38c0902ee443e4025393f6f9309a44d59c47d1f8fbdc22b37ef84f7cecef6030ce0d8efa0c5c27df514d56120748abe6bb1b62fd98212f5b42566a0ef55dc6df84f1ca99b5dd0957943124206ffd392e274cd18acbd35c62ea4d7c9fb8f25b3ae11dc94880c8df3bdb28489cbc5fa2f71768248ebd683037ce1b0f3e048cf629e3031998bffa2152654ee9842019d24c504e908247618592a943e4453523a2348b2c9694380bcfa816ac5ea238cfea88ce2e836c5da516f2dfbc062c8b8a8ba5bf36526366c0c9eb417b615cc8c83af9c90bc4827d753af20f4ed21037ac4a75e0a5b49c378c783fd841e9fc7363685986374a41e9984174d996bfa79f0184a5d8214e6f430a7553791909d16824502bd1d744612691020e57559552286959a68ce8f37ca2b688f9d48532b52c9834ab177f4b7d0ed65af28fbc6a66a480f74e26cdd7ed5724c3beb89e1a81d7be51d7fbd7f559d50b71e63c537586da6bf6bdacfa331477298bee4246acf8d6e07b9146775e52fd27d4ef56b2583a6f9bf39fdc59b78c01415b69e6e4f936ff5a545f25d897ea0fef2cadd0b7c7bb67891b1d84d13fe86de8fe213c0a7d6987a22dbe47343be79b3950071781e2afbda994a76736c0cf4f45925dc93bdebac55040ff1687e4f6b98a98033025e370a439e388e169cfc3800c88c16008fe7fe807515cfc0ebc05680b6550810860556fd4d14d53dadf4d2beb370d81951c47b09c4719a928dabb0650668255b517b873fb61326ea3cf647f3fa9eb367e853c663e236976f3c29705a29f27f7a719e565ccdd28b32fa3c070efc9725e97002ef4ce6d72e78229b06d17105a38e0afeebceeaab69d02eed86961fdb0161b7687180898886b840c01919771e224b35ed14184aa047293212f9df4b432981bfae6158ab2d51f0ea1bfac794c9194f7e8dd4a68bd00252f2ec31076f73204e40bef35fccddbefb47ac0f0a685770ba67a91bed3485647d70929990fb5257912345c6fb93f1ab2dd2f0b68757a1c831e35eb1502bc761c642da423e659a337908889b8e4ba4710ddc40489d07de580fdb9996df3c88854c129d81dfa46f3096c1046aec6144fa1407724323e4851753ad5e6e8e995b47271d439aecb812a53cd5e4ee80e8f3fa3dccced9e89c47f000a8e4b44e55be50cbb5a264ba209a04f3fe3f2c4a15f97467f65c5050a40cf3ff9180cf79e8eff21abf2efcf262bfa8fcab2e7daac29ee0de2574f431b00daf39205f3fe5ae5a4f813675d7c986bb79417fac2921efa4a3a24da49c473ef72bad840f8173688cf425a6ede0129b3305cbd04aa42b3d41b54534ecefe70d1e3365dbdd621cb9bef17cb1176bfd3135d6cf29b3dbec71af91b6f73fedc59ec3dac5bbfddb36aaefa2358ee919b5de4220cec8f949bbf751df8d855f6dbeba6a8571ac84ae45268ab7d0858e1b94ba700f8720c0ab615c6267f322fd987aeb3bc719ac345ea77f9e35f474754ae3e2904fc4592789b1d331449ae6338dd3017ae3eca9164651e7aa7bea4daf125ef86f9cb1cb92fa01b2f966cf3c4ea8708e06d4f40ae5d62cf8f38297969d34d1a1216d3c873a5358f23bd71763dc380f6bf60ca9274648c52d6de495e7f0be34065d0c5cce8d9b43b1b34d66f01a893f31366e28ccd646b36631621b6ff7d99254e9af5c976505e7b3d50c824aa98028c13e150dba04699b688bf7ba703b3ee63c1a61480d07c44adde018d32d905610bdd9009026b974a35b8eb118bf7170dc735cc8500ff6f1cdba7e316a28980dfe0cf6b8be39d3bff94a3ed22945b81c1133d22dadaf976e7ff6f32ec51ff0b4c45a8c6cd98e723569a64800aa80242be9b9ff40b8b4a4dd36e5e0a482c923a72e9593378cb611cafbc44c850402a267adc5877939176c3282fd91ecf1336241cc7105839ab770685c5ab4dc0ef120d7e51df822ae89e570df57e0f82e3b14cd1ee5f2b0bf894fa100061c15988614144009a66516ec938e4532a2954315c39575aca886fc98f8a721c74bc6fe8e414c7cd89ade42d6379db270abf499ca4e65d8c5e30645459b653382bf9db5ecdcb9f55b9098df1152a950185eaae6b474e0c7f415ae866576add77ebfc3dc15fab15c65fd77811d76f6c5d2ca7b9204a67d713eba424bc0d2db42e8089bdc9249a22151326ccbad6c83706e61a0963c2e103271b9abd093cd69a650069d3c822798e17b85f758262600a05d3159b0b5a921e79ade7e4a0ff33f7d2a9854c715fa2adec58fe07b237d9f5c36baffca1bcc939c8c5b3926d7a8d1844e6db96a12e0e32b14791e03f3c86eec334cee81eb764499605d549786684bc579eb6d2a52af7ccbd154523119401d14b1f8e3a5fc1faeaaefb0a76427ca5d4acaa7a1e742439053698e5fc1cc2a5d03b412c6c3f387bed45a77ccecbb5e6f15456f9ab8651b9629cd65f55775e548f8603fe1c4cdc05d3883ea719bb75a3f6154df2508d049438af37b1b0933b375e881160ce359845f189131d69583104386408e75bbadb1aaca536f13a95a609ee904534d55bbdad8617045d538fc3a48aebcc3272bb895b64c6a882178efb40fa77c93e74beb1014024fe53f1ff217260d5bc17ed2c576d59a3a760e592eb740ec9eaaec0c34ff9ca1209b6ccbab528783159b08363842f4ffc81a742a05be4030c57fba44b59f1f111bd034bb5ebe1668c79f39a98bd01fba9d67270b9653e5186f7f03e8e3f412d23bf1cfa1b9e098b2af51bb48cbb36797464a514ab9e7e11fbd9b445705406aaabfa33ebf5c4cbcebf3ee71b51c56dc65d5a80884775233dff7dccacdb787c61fab0938d15ccbaa131b8a7ada3168c2205d6e7ff39026890d0682aa88686ee20b4416cbe5c159a52893b2a34ed49f552e79a71454f6d396def9b0497cdc58323998f2256c08f034162bad22b064c6b452c6aeddc2509a764e80b760e1aae4f21bf471353ca11dba9c963c87af5217d135646978f2784b88da74db915cbeae1f496b960ef272736530eef92f5da3ee7a7b799338abfddd754d4dbbfa05d8690c42562554e652bee2e52e3dc1b271c7e575ae1c0202a2cf478faa3e61200c459a88cf4b0a418f114142b79560406a8a3d6cb09462e8dd57b3ddcd16dee141a243b534538a2069a1e12accd2b65b4f2c2748b0a7bbb8596a0c6c1ccf264ab21c7875aa658892946d7741159cfa2c769c463ee4aa90297489852da16dd9a470df02ee98625d29babb61af209a857c490324af043949a3c268a7778ba36b00dd4b75fa28c3064cf761ebc2db2eb631c5500a0fcddefa4b885f2a3eab8d9f9432f0cf27c98e8efb5be138c81cbe1f0afc1ab91c81d70b3d41ab9be4f804a0cdfacde315af5fcdac6b50ef3619864b2e93cc031065d9c03e1d8278050b7f267395f025205277b801a115dea4f0078cef4523b8b242f207167df5a819a47e4c2db653efcbebe2ada1e77135ed2100a5285efe6587e57312e979a4849e2394ea7ae519637ffaaf702c20db13a30eef4971407de23aa0f08f7f5a3ecb330feea607fe127571c230c747a02674358231b592e26da09ec6479c2b20d53a2e93791532b192ca98cb50ed13ae83c62127a9d9714b0b385332c2b2f8fcffad46fc928b7c00976f9c60f94ce70946be310ef5f0f11c0cb81bc13e3856d7cdeb603c468995c33e9a6e0f862e0e60801e082b3a682804019a8bd36e6ed3ca8793e06a1fda9e2790f6462c49536fd96e8f2fd77b6d9949037462ce22e2aaa443cea5408bcf5c2b8f34274d20ac628bb1c6754d849f1a46b3c1719ba6a6cb6846b0969cc7360121a4d2f1cf189ebb03578c9c2d5da267e7865e5a272ef0c6cb36748dff63ec5733525e6050248704c3b66651fb579a6a2e688bc8e451df88ba1ffa9e11522f35dc3da5d333dd742dbf1bf7eba0a6cfb8b2a39916459b8f0bd24234f01b8615286b83900d1f5b3f7cde3e51aae883fcc91b2795674521bb43e6ba6bbc8b27c49d845da46180177a607f91d70103ec07ffa70f885ce134855e7eee86c174514dd49e1b5ece05e2ece9f157662205e52ea3a8883180991d3e0852d2bb020b6355368568eabe20e58604f993d7f86757deb004fa4966f3e531dcd2fb57b52be0e1fad9e0ede989bafd4850bf29d58376bf49b486ae44f837d44da1838836d2e1f32e8ef959dfbb8f8a252356d3571bb9b87f45db0d7eb549db5315b84b1ca216d0a06b36885c765a775e91310d71d261e5425a4cf02ebcd91bdeba9ff6ce6153167f8bb0156b3b1d6e6a31b21d0cb197c5062745354fa03b38a7cc4bf89b79b30ae0deec38a4d33bbcfa89baee77a40e29f7f80560637c747443c0fac4dd7949b2cfa9028cafc9dffb13987978bdfb3f9663a8b24d0a6d674166bb0a13a8925fa5f502128539eb6cd5774d05cbdbea32305e2ab12eed1312513819bcd3621a48b95d550a172bcd05cbc40dc5c05009d55c690458ddb815d94540e8c391e10cbee370e2c034e14520409d31aca36cd4e2ad75cfecebd09ae44ed06aae1fd087d5f9b53c573080f0292f5b85444fae2b60ce5fb9f2035ed08c43239711c0c04b7c2c84cbf13044ac3c3f52cb8899ccd4a0769402c9703268d60f54988f31c33f8a646b4bbe38dd1ce32b66368f0c21f4e0a87e8299efc018ff83224da9482fed61e0b84b4a757a28edb0c7ef033bdf9a6db8ea22971e0b181ad908c86001390421b528af29d4257a546cfe947339e3345ddd965e8c25fea6bc7c7dd0ab32f7d56015872fed157601316802b46506e918d856c0cab9712d82baf55c5fb64dc1d7867fbed668d96a72bd3e0c5447ebadfdf05d9a8a049f3c72f2f35f25f5d22b24a53592834a597bc26b0aef6d2520d47f0d6b42d874e892bf2add3102086776f9eaa00e6b00d67dad0994436b373c609ede8ff38104ba23b6fd68348f6cb1f13aa5828b95efe51233f57068af393d4f3fe9e7f068bd3d3129d61d3d96006fbeebce14f65cfa25ad1561035f0e982f13aa9e61dd0228feeeecfbc0a19654624ab8317cfbf15604235ca98ed95168c1bb0a0562fdd909f8d358b00bb940ce0b1b6e162e96d7b59ff5d3b7d162b3344a2ff0ef042d0a74b53cca5a378dfc9a53c980852b7365b8f41c8878d96366961120d1c8fb2bc6214cb725c532de65728f8c8317349e47b7d3364f5efdf00ea0de5883e74c3ed42659f44c6892b9c9288e56b25552e6fed8586b3ff737b344181a93c47a75070dee53e1a9c88ddeaa11934d6aaa63765b78e03632914df714840d48b300b0f3df87d2e1a9e29bdc3f326b64afe17d2f08dbb18e49ee72e87f0109d6554f6179cc4899763ea7805bf44306eca639546dff37da8266096640faf179e1112deefae8b78fe25b88dd43e5863d3d1903fefe100ef294b1ea2a43ee743c1134797b175dcdf4867c15978f6764b204f6d1c04860cac678148cdeb036b2b1246fe45ac7ea806cc11ba8a16180e1ee4dd03dc0b5e5be22d9bfcd5174a3f464e9543926b760a8c00f3c2007a56ae131265d32b5daeb682d08a47a5e397b9449c5dc34cbf224266f1ee2b037db14389192f6cf0eed92071e38fc5c28c2f6b1db61e4ee0918b1675f3097bcf7f1a08c5ba01adc1e7c4d823af6c062bcc6c0bfad83aad227f6133459ffe8c17cf1e60be489ebc133ac649f5c2730d2bf667add2c415527d9b66cca16cee7578b13f0ea2145af22c28d738a77b2508e21b93902a69a6b28a36a72500ce6a83aa85c7cb9cd5450f6ff8ce9aad75a666bffd106f7d5ec59ae3819ef903e24c467ae207e84e65fdd3b93608aca16097e9331ab5c218ed6ef669344400ac389d94a5cf49bc8c8e6073a3650ee8bfee6e6fa2db8ac1d38f1e19dcb23d74cc3fd07faa96dae344168a44f7326ff30d33fb2e43592dc29422b4795f0b8b9a91d907482fabc463c456c3054daa27fb1c00b3977ff15c45fbeaa1d6e634b0131fd94ca447a99267a3b35478851cc8021646a96604d80b0bfbeddc4a076be5b0003e3b4613c33c5e2fd4b2c166415e967ab15288b2693e10a38c57f0554b28ae1da566436e9ddccc6ffb54622b0def844850312e29f910c6e7596f76c6b5be238558010e90fef9aa541689d6bd685bba81b02bb256aecd9fb6686b8c8eb82ce43600670056ddbc3cffc74617c8dd99559921750d095cd65f754f1b2e308314ba77ae04229b8f68dd93085646aba7dc0ea83d33d0a3f4ec0eec118b8aa0f186b4e79fdc7c0ca5971dd7c6a9b27b184c502b78db8ae130570a5856004058bf5d498ba5043d3315ba08eeef8a062fe4405f2c5c23660e5c8edce6a4bb13cfbc43fd9208880df7cb67c1bb1e333f75c3d3499b25cf4acb9f62399d97640f7e1cdf9236ede4bc8dbf61ae0c50ab4eeb8aad89fa0ba6f430a47f306597c14be244d656ddb96f6d0ddf9c7e83083ab10624ecefa2fb8ec362742b11af1eef61608b877f804b0d5a96367804443a64103d0c4c6c231caf153edafa7d0b7a1912c455d3a158645c18c16cc7827ed9fc4fb99b7c25ab183ca8442f391e91204f706fc764c2fdee89869f69b96dd414727ff83279be68b7b05460a1e208578a71a5484965d2c79f3ba22d1c2f48c97877fb2c3057c111098f62a84ae778cb8f154c05eb1b41af5748ed9b49061c8ec4387bbde556524603b34724653b1ec1896e0dec8fca92fffe9fb4aafc0e0f17d691db1c41ba96c90a81aaa46c759a1ceae5ea2b5332c166259ef3b6c10276db4d9c39b066c70f2bb3e4765a2d3ef8e9d3753652cd93d8d1fcedcf5845f21a2d9ee1f064e0e367f89d41eff19c96a2da939a68250877156af6636d392956ccf37a27b9d75444af4da9347706f4fb102c02f247e93617474bd5af6db569edcac92c54562e57250f1a0322c331b3d21edab09febcd34e81b9016a1a7288a3f6dd215590681499c0ca0c4b7d3809460a3e51bc46ce69b6eca50a20220e1d4c763477a2922852c364d09ae2aceb4fb432a4a67b754366199996153a950b1b31c9c2fafb245f39e1dee3aee47247130a50e6cf92e818820782434e457a8549e894bee67f457e6eb61f5fbd7248fa0560926de54d5eae839d348e0f3de0424ffd2b33edfc97ad8bedf14a3a71ef9a3a9018a032907c4f1af152a0ff8956b312f21a84f11de15a5caf6fe5c8a5e9ec36c1760bf580494c728c115a214473fb6ce7a0bf7fa18b5aca8288786510fd347bb1365fe62fb2a10362bb1035034f1182df2fc1eb0825981ea47f8083e6b79def3754371b3207325d6f2c9d02da08e94fa3ee2342fee05677746d225abce5abe9c9c0b600ff7c8dee9b58ba66523fb14635370575ab1302961cbef2d8f51bc3bb7bdff18244a94a123fc3b33d61981ffc6219976e60b78d6600b00bff8d30ba00dd0b29a6800befda1e076485523dcd4b78d782f330ec66e22ad7738ea0bf7f15460ed31cee816764a75283509f5ca3764e661b7fa672f4306c9cd455e7a7ce72a8ab77a438cf10ac90e5456578a45713f2f35f833d31a7277eb9808a898cf2d8b7155a337d1e503127964aa191ccf8e1e25bceb628b19a8b25becaec30539c7f4e76f340d17abbe0f14fd97c630d8bd480b2055ac0a2c5b6f090abb055aac6bb426a3db3eb53d20b7e8c7147a9a3b4de91bd389f1656ba82e6e5b864177daacd8081cc3a91fd456fb0e1a8f75b4f7a5eec77709d6542f79a32c86b51c682c3c81fc0ba271530d289187259a8cad80b303a909e796e81c7989e1bb70a76afe4c7542062019788a5c56979201dbb85a0be78e97faf6c51b38a7110ee2d8fbe5cdf9b0ee76aa4055a366cc42ce8ada563a452194fa4f39380c921b0fa855bb02a7f2aea921e8e8d7ded6c355d0b7b0771abafeb46ede74fc33c1f54e40ff5474237c388fe090e65aa277440af2e7d82e141e0def4f3c82efe70de2ea699d58ae00f4fb20cd5d3bc2fd44d70fdc56a6ee7b299a45be2aafe522137c155f58145f0e734a3b45d2c214a39bfe20dc0cd29fbb690a3e5009432c3161b6599fa70867e8b438d9cf23f07ecb61ac8f098c394172de07727f06b5f007fa4c46ed05b213f7427148456524816eac0e7aee95094060f926e72684ec1cc1c7d6041399a2d2166d1d27ed6069fc0b2041948cf1c91bdf2900a3769deb4ebf3a90b51db0a85f359e7d1fefce92c52de55cc01c3d9f9c9aa008337022a3aa252d96c68bf4c4819685514afab69f4a9788c8205befabecdd77c428a20ca7cc75a6b81e37fbc5a4ea5580e1ea6f35fb705ad4f4fc294d40b7d04676c092d41656c8f1806e2bce17b23ea2838d729b8a225845eec2276b404ea6945e46c6578e813fb54a2d34fc89c88444092dbfab18565066c89258edc228bf6e1333a6bb4e15df12e0f07ea3fb2ed5a25849af4dcb33e774b51d7b84d777392761ba076ab55b28bf26ea7b839c8f77b1c13f855339386f8611b2fe40c86b127f3ebe200b79d9977be45df45ec095d085eace93b9104d14926ead64ca122c1297b69f20155d80ca706602b8655e6471897af77c5365c872daab936429b5cac21e47de934a8e933c31309b4ddb2444a2769c9753146eab51f0c9e9a7a097caddf39bbe188f60bb38b7f91269a05c9d262e71dfcc74b13d2c804328e81020e647b38aec4662af0e9aeba25c9b2982856031a43ebd8aff8fadc5a55c7331f01ef9bd5000520516ec61188f4c25d748e9e2c800b053843b176e66c3b3a8dfcd17d99b56c69ad1dc60cf081a5d22ee80ff32d88206466bb116ed0acc93047bac72aeab47d53e0656f37b8901fed000831099f176d5c08300529e520467fe5804030f460242c4ca37a5008759f7ee12b79f2c206580e5e9c754d59e15530dbf50dcbcf7b18e078748166bb431e48916d1778cea1ce363461c4e26b9c4b4260c8e15bbb7c0b96621c277f89e20713f42b97962b291f062ac3d21b9914c64f6b29ca99040fab08e6ff2829568e41b5f589a40b9853a30738699a295c9e9e3d034dbee7f191732e7c29ff0fec56801f00efe02709c83a641be0559882a32748c6ed3a1fc794521993c70c338e9eef6f1b88c75693a39509a81839f92121bb0915c7ee6159611938e5ac60a2799d274336c2a10e30f64e800be5b9dad62b9954c91c77c4c571bf636bcd05e32ce073bde1d08b1a2145d77ab97f6851126516fac1302ce4c6f37462e9c5e35c0cc56906022b8970dc082f6712025893e1881ad9d5cefdb9d54a85ca9f522f74c501cf30910da905e02e718dd3ef1668c9e4eecdf1c25f3cba8c096f61d66a30a41bd0c897f43a5289952d8507a9376f05d95c5d3e5c46a270046bc025d7f692e9ee8682eb2513781093930b7df9687fb95d1c352bf3325950b0b5ca347f32ff122bd1c21927df3c13706c84c18b1ea0697992db2760500032c3babb341c2c56edd576fc20448a4ab0e9e5af3b6fc95f5bccdf28a27f9ffae924031bb4a1e1a740c3a01b410bb2670faf2c5f4a99a08859063f639cb2336acdee911d4724119cdb219f7938d02a9a57e6d6313a60f975b16eb318ce5d7fa61fee76bff15e99f4c7efff12b82b946580a61ea67c03308c275d0710cc6bb07f3628318d632e6acb7b80f5f9b675fd971f7eec05ca1f20950ec11aeb24c71ce1db53e1467d16056eedfd0c3f924e9a5651ecb1fabe3a2d03a49b8154b9e4bea4f3584cc7b3bc8df889e034ca931a875c1ce613d2153cdb5c518172d2d736c2a9b4d7add8266b6a12317913de8f7f9d9d405465bdd2f0f652791d0599cdb71f80d4a15ae1ad8f746e826dad3fc6e858bf3293f19599884e4305abc0f5ae634a3bdd3f3392af3db9f0fb315c3c1905cb1923f316f0ea16fa29fe7f7a2e13bceb3d856ae60055a8c99ba1931408fa49a032533a3187351434431a7d84ed6046b010499103d88bad9ba72a32fd2d1f6b34e4a820544c80ddc1df4e9f2b95110c2496b756dd865648fa63f901550d37e5b6a262d1d5a1f031ec2d24738614031a9f2dd9113c9b1c1d86c875c8a99c4d785f910c6ea98d97b507f9be9a931789004297da4be0ae08f045d4bca35eed89a6b2595a8c89ecbf718da1524ba8ac6f5602abac44d592042dc71ef98182293d37d6f655b3f2ef6e50c3cff3cd2eb98a32c7349a6f93a28f61ce3c23a6f605fab5f5e667e0ed70e7a3f4a29200b5d7beb39587edf1f2687ebe97da5a29e5e290efb6741903abe1c79f3a5f39d54a79a97acd999f25ee00ae9ba7ad837787145a7abe0a1682ebe7c9dad4db8ad130642f2c75bcb21a34dcd8f22aa053ce3c0e2d2b44c3dcb43cea41d21134e28fd6e941f1963f4b138bd905e1e7d789c3f069c09eb7a5c767021a3c66c77c633b296e1cf8ac95d00603d57d2abe7a98bdd105f4b274448a5b51c47b5b5b80c317321a15f11dc8611ef81bcfb2b752a57757b2b30b88ac0dc599f3b0d85bc38af904d4dc91c94eb03ae56e2905a9b36782992ab68f83d99bcd21acefeaa7531ecbfed5b312a59ce46b067b48d0614414c0f55059e9621fa110504dd3012824e70a547fa9b067f3877acbf535666d8d39ea06ea410a803ce61ec6e1bf7116f78648ef37772d47508f5f1ac4673d636f2a0beb4f32a297050afd4a6862f2d71828ab9f81e74dc4838bcb61d7216ec7e25503dad7c0abdddd2da4855fe821646d9b6b9790035b87c6b29f7baa8e387ba3b5060ce433df216d3c81871e66fd3d9226583a0573a34c5df0735f88b47dbda94f1af0dbce3d0446eef426c48a6afc169a513ca192f5e01d6710a5064943bb92a09cb2844888396eb4d229c70fb1620e86ce0f12c8292ee7dbf6d65d6734b05aa7bc1374f8c8dffafce23f7149fe087a2957a42a8295575e4dd79489591e970a35fc8d9786c7e232da63cdcedce19452070a75262699e682961a865af7746a3b15b5cc098d9470e9f08585dde6ce812ee219e7cfe31307ec59591ce499ccf4909e9172b0a9047e02b7ebd403d09d79c93d4af8a30bebd3c09be325f0445f318e3c12305cf22c5b53772f1c1b9e0a3dee6b753d4d0b89b3bd603b3062738d3c658e0a2a659be85751445eba96d6361c85980a3110a659c4d86097bab4e656d4a4c821b0fde5587840ff78e791e924ffc83e88d102584e59575c6138faf4e168e5215343b5185d39d4ddf15ecead3dfee4ef079029145d8666eabae30b14f9bcd7346fece5592065746433daedaccc8a7c59af8ed3b6fdbc88a8f25fd0cb8b16576c99e205c18cf7979f1a5b70de8327e0083f2fd096ae786a8a112cc4cc29ff60c0c88117d9cf12e882764641f7f5b0f07d87f157996efbefa952e52da38a9414454991b11bdd031db98c4edda21936f3beeda1c20d451a8e5fa259a86207691b4f3ada59a1ed56c7db962d5bd2ce60d7c4ecd7645fbb19409b256aecb020f41d3b100e2c61fafb76fe3e30e1cc516eb2c591c42e5d5d9aac6eb2bd04caf592253811fd06df437bf2b4279051d4c8b77099fd50e66f3c954b7952435573ce180ecfdb1cba14cb397040649e3700bbcaff32e58c16996d689f6fc584205694ef6843db5eedb7d9cd035cffbd3f689511736e156d0e7e8af3d246fcc874e555c87354d756bdbb7a63b134742ec4d6270ce542e8d988132fc44ea6a006abc6c4db045765b14512fa30d97533a63803261817bdd20dd8b77e5217218aa6e1aeb6ba8e1b71fa933f6ffbecf621bd7ec3a8c91106d743aeaa9b4d066149161dcba6ae9d95bbb3bc442eaba18317276dbaabd3471f11b6ddda31f830de9f2af81331aa70c457bb0cc753f00e6c62be13c98f80fdeb2deca9f3ec940df504520e619bc98fee2b02911c3ef76e06415e86ef96baf695ee59846cfde2292e229789ab496382dc74926e14112d70106b8d38596ba4ad59a94d4e1f99aa845257737eb245a8066141e6c4e633144bea86f8330898c1934cc82e7a927a59dc773671ff1ebed46c27f68d14b5cf280efab1bcb3f10eaf1fbe480ca6b55caf8488069f125984f0f772cb26646956d5d121fb81ee65a16ba96a3a7b8948817a95ea41d1f279901f66344ba19d8ff976c617e965194c8a3057d545c550852e6484d216b5462b7a82029dd6d7ddf930724e9bf4b5ed12e3d99cc42267bff02ccd7b7de8b237ce01a7e2201f75b09d355796f6097a3b352edf0f0b1fdfb36348ba0008cea092f8878831acae2a721d8a165df807cf52d9cfdb917c9dcbe67ad3d0b9d511455c319220aaa95e3753de6f45de9544114e618da7132e9259ff9a22636987b0a883d94d87a35ae03db4606c7210b109d786b915ff72e4080357a00f8d6c4cdf399c5804a450eb376bd7cdce89a91311bbbfd177bc34e59c9d0623766051f583bec9f8ac6d15a03aed1f53214a9b8b0ef7ccf4a79f1d3200b916f1b921568db816485858bb137316b959f0bbc8f93924cec5a1fda6eb96794ded013d94e3684bcf38fac5a4517bc9a1c3d331067e916cc70821b6f7b1d661ba52afeb5654874184a04bcf721b81a8bed53be092163673b89c4e705699b4a614a871b0509bde4e13be64fa1f8335da21fe1b654338ebb89fb8fab22f078a49c528b6fd2c9ba75f9e25eaea681f9ddadecd6e25f5e002314f7cd062306d9ae17751a747e8400a115e49b4eb6c6c60f9605035c6627e4bc7e623ea4d6e435b1659c6e8886cb39837445a4f6ade6fded91187a0b4082b4fd51e4019a220ef7426a55259bc3d2ae1586eaaf879c38210f34f43c79d19f3d2ad62bd7077e897576286dbe665363dfe2e68fb794fc6628812b5d897f58213e913bbc3cd43a92dddb24360610854bf75283e6226c615ed13d6ac616a73016595c088b9f362f120980dbf6103ae9376e6e85fab47dbd524dc325b90b5924565f7e00ef34e95f28f1c02444b1764de42fdc652687e32206727efd245ed1128902994cdd8987f0aeac733a6b6babb0586ea4c3411f29094ee40279c697f74eefa8971ac8e6729db4b49d4afa54148d0de18b90ce4b15f79086aca8abb38809f63ecfff4652a7ef3157330e00a25251689367ef16b522d6c9d231ce59918c367264a3c1da433d00780ac247a3bb96eedf4bac3f7d9a62da2ef9035daf5bf090ecbe01662683751ba2ab0a2e22422c5e666f2e3f69970b4b8b02e8048f034e8771c54f431ba169bf3f122304f5f1ccf59b341eb1acd02bd15d19b3cd4d8a9353efc542e670ae529cb81f467c4773bb5c166c41f47942266d8aabbfe4d89538d5164829052b1d5dbff6f6974640b2fa429ed9f764854e071596a0b2d695720ceae48b6dc9533267600dc24990d8e794da98a6619d85dc1c43bd69e85c2164e9a234bb445ce57292284d785ad48d6c466f136ade86da354e90cd9da9536e572db22733cf40e574eeab219339887c8a926e8ad87f5e266388f756eae4188bb8939a95bd8862bb25e3fdebebdd9b3bb51cd5547f606e408aa07fad5bc4057fcf8a63189558cd2753476c916da000d71d11aa16771173464f4c74a2da69e667b56d3b9d9c30978f7d94582c3cb3357b97ed39b9ba6d6be5e74eb24d45d3c33b7e1b8d640fbf80f555b4ac9aa48ad5921cb415fb12b267b9a76afc23b484bda3e4a10d94120c4984191840a7c443bad3f5fb13860649c1d70e4f6db03acd54f7e5dda01da5ace75e8d3d8e5ccccbdda7d4bf4a55117059b9d91c63687dc34e56aa4d9c6ccf7eb99f1d38d470e5cabc97624df619d37de7a52ffcac73966991fcace15278478e381f0ced010dccf8d7e44cacc800a38daf98394cf627a6f86de0c07590ff7a9f3fec7f33150697d8229576b189da7d560fcb29e47fbb97254d2f8eeb2ce47b74cd1cc12240a0bb5ba84af0ca3138ca70bd18de9c9741a71ae429a12f69a0c519212b1a482912364fc8296825350d4e928c3175f8e03e7be142538143b25746e5d7082ca0570f06a214e2c4e912a2bea3b7d40edf61c88955a8344b15b3eb8e1bb364528cfdefca997956845ca5172347a3b15e101f8d4a826328305778b90f5ac2af662e3ce3ac1df2c6644efc95b1e50cef502d79de41775d7e01e714a978da534fd99ab8104f90efa1368f5770699dc6c7702418ac0331641b4097026d2cf0edb5a6b71b188d35034a57b56beef3f6f57df2b2ddc9ac02d0b64fa601cd131c48c1af1e549635361f25a538f29cc74124a5ff42d166a88b296aa1e6f6f15e097bbd3ad9db0641a120981c8a02c19f8febe7da5f86e0c50f04ff2ed92adb2dacdc6438d909dc921ca39b8eb8fed79d621015453e8b1548206458485fec35bce9db54af59b8365f302b1e7cbe52131b3a00e8c547bafa22e690c83baaf234ea5b5c1d462fc8881f9c8d46fe12ffb49704f4b48a6d33de94a60fbeb10e4f5cc07b5b17a35da0f72b13d6378c67e2342f53b035f0136c9438387ac18b4a0601e88b203e31bbace244b17e17366e7c9465d21bd93e98e747d434dd67ae22bdb3c02b4e72d0a0b7929862058323804bf5626f45cb8aae9c92b1175718cfb9092aecb380af6c29cf7f66ab5651d6772a1db125b16e00afafa3ebf992f2e841dde34acae2eb0c220316fd547997709511a8c4f302f0e7496b1297ea241ee02e5c3453cfc9973ccb162e3a3dd22b9a2c729a91702920a7b3970024e516ef18a418d8132f94c756e4a081bc491d1633a7d83e881943046f47f8240e2ba7878294a6b965df30ec0934c551f460e62e84020fb9d585c36f93aab7df698c4d63b2f612b44842a48f39ffa3ccd12191d7755e100f6df040be5e92351acc1aab7177ca8fb712952ac12a1fd0a70e205c6d5c0f62d5335ed246408f1e63a127c5ac288873f883e15b5b0dae08be6953dd9942217e12083a7abb19944544bd29fb486e7277480228fecfd4c94c51423be1a3e5f01ebac9c7bea928fed995bf849683d5afa245de8d00787e1ee3fa4db99745657f74adab5e192cc5ce3f46a2d060bfe6831f0fbc35ed1ab9624dd54f376254d503cfbbed20acf0dc7bfbeaf6e36bc429a449b73a8b0e3185a544260d10c3fb2419acd7e3b57243b2340def8ce8c0b780a6e377097b433ce41fecfb1e6aa744e6ade57f5b8df2543dac9c79cab902f33262f563fdd496b7c7a842af578b239f6a959f0009fedf6e6efde0d18831e8c88b7c84d7e79c6134391b152bd101830321e61ba80b1809d2048ab81bd7de5883c4cc28d9c40729019b62f4e46ffe7e61669cec257c1ca2411937de319a3eab7c8376803a4d609e96c330f6093bebce8e5da7d2c0777b28fa01a4623eda8024c6f19488ef97f3d64bc9e46d1ebc4491a5270d06cb120529b39281d31db425bdfd6dbb58407e933f23e352a49f8c2d36881382c98988179514b5cbc5d36dcf389e898484804720267db6ef9b5022ab5c8253f7abe6991296b7a1c004b85af1f48eaa95bea46403885fd1052c51a46db834788a857e7d11a83ac306d6ca64106b10f718ce0db5254d811f2b9ec202e48d89a0425c0c461361857c2a817b36024fdfa1641c94b1c4d5fb22d1702fa4990e67aa667c5c43b1b60bc34fa2404e9c85ce88b1e40c6af0907cec039646d355ef0e3e869426d219ce9ffb7d41ffabc959e7d9990c22264e7f454644cb36f54f0e6062b25cce188400f3d0c45076b8e052678b745a469eb36a133046719dc839649503c1e6eb785c23909a5869ed752e131b3a2b213d741bbc1a65f0223deef3654fc55da76d30c8ff20b416f4dca7dca72406b8c2e8a832f04323777278e3fcb7d92886054a7234bc69614ff900167b4f18ccb4f2652acbf98c3eb884182f3e146e254be805b834cf766d9d7fb47946646cc1fba744b818a8cce99d8d7550b1b585bc1857ebbf81d00fb70bfc61bf9fb1d244251203f6827f4658a70b569c4aef0dabd4be5f451fde5254a21f187a0631152e5da10f6bc1ce6a24b3cb25e8ae3a44811287e7bfb5d5bca6589f1d09fe3cbc5c4e173f2486845dfe08ceb0c00996c9c5d3970a48566b2e7a92bf6d6a291816926343141defa5b8f42948cf95dc0012800217dca2c719f622d5db54fddd9b592b7666f55ba3745c4d4ec268d41df8e3db5834d0d268ccb334a18ce39aefa51d5c3502820427828a192109b8c6e8ead8def89cdfde2fc36e68e7bb82bcd8a0bb3218ccdd5dc89434d6ce09096f2fdb4d6c46099c9b6b56b8f1b4846606bee1a61f6f9fc132f2cc52cbc2280a7906c58bf2ab979b747e47fab9165b3a24ce3411e9f3a4559bc94776ac7fb48e658b195f6ff4af0060066e886815d467c7ef821d3a336fa0001eb3a1cf57a5c3bd7b5f3f2064bd484414e1b202bdd8045fe11e3f6939919356bcc4f8cc60e757451f710eb88fafe66776302ab7b37e0fc50e629f213523f8835c97171a20adff6230782e1d0170841429f3d206ce22d05ca815e7a2e13aa290ae6c11f342851426a0c00de0f681224e2b1358248f75f2d00c4429f32d54fe5811c81fc760355c6c63fe7ad8437a83bb37cfec1f2b609a4bae1d8840451026206d79abe859b3fcc4b6e05c6f2cfa7790996096ee7ff5bb871e09903cc87a34f5b79ff45ecd5b9773d7ab81f8d024023f8caa894a5dab58a591cfca8593b6a7716d5ce138af9d81fa3d95c2b7ba6fc509a9660841ef0c40ecfc649d26f7336e09ab452ad0a32c78264140c320713e3b341ae0a54fd0f3601ea61c7db5afaf578bf53c9739811fc95fd4aabc056a79e318977c85ce9a9f5b2e8442a9ee8e118fb25e3ffbab50b05f5a9ac49f64642bd29a98dc50f625500cc241b5fb4dcf915f76a08bd2817f6dd3047ffcecfa7cafb75933dcad1754dc3674267a0437459ff3cc45bfba6f190d981131dfaca9aa8a2774d0b9ec660ef0c2d55f9dc3f69de261357e8f3726df8199edc74af7a4a4af2c3b62e3ab6133d8d43c97b6e662aa6d2ec8bb0f812d73399b6288597e6899f9f416b0fcc75be5ce648f8e71f69aa940193e9281f3db6a8c1dc61660dd02b9e60c9b7ce877ebc184da7740d84033ed03ff18db9baf829a5965212415d360bbf889ba8bd4a9cad5fb9ef3f129cf47d448bf82e3ea784c8d86c87ced352b4cf80b53c11e30dde17c2a61953eccd160720484aaa8963ccc8d632c37fed179171e18a8b0d7a2832abf764ca19e72a104056459d8edefb756a9749c260f7629e62e87f21e47062582259f805c4220655011ed10eb675c4d268f8ecc32368f53d0a1fbb5062ead613c8668aeb9b13db761974ddd1fcfce33cc4382ccd674f6a28f411ff50c2bda6c6da406a5fdfff83f92c9534ee5b14aeab547b7222d9cd54cfaad0a66decf47ae1632d9dc4f783c0285e86bd0134cfcd88674a9f391799ae74b772b2466c4dd7d09b18ff274c0e0ca87e8dd035603940102211afa6c07b9651ab8fe376c3bb3c529e0df37e5464c4b649b59bdabdcc1ec580a0f3c4d3d15e6666c5e930dbe51b5b06c0a3db061ca0624b4f975a31f939c593abdc1ee90deccd09349fa536a697fb0307d4b831237522a66c0a78d5a68305074a50d6aa3463ae24035545308b17e7a15b3fbfd8384f93dd649f06eeab49c11c79938f52602821b4d92f2efc58aa8c3b5c8aa6336dd6512a5108936b5440a6ff99c2a0e5402dac7f649459628338e9974ac31381ac052aa094b3aa49e25c87b9edd9875d938f2635d6a35a23b7867db88c7297793031179d5090b5d50a80a02a1e4ee9e8b087226862c8bfc25308122f2d3b2dd1085dce8ceae293f874f0b414b83499f702a73642c4516902e98132b85a0bdfdf97e3cc098f2972f13da592acabfc70d28466c042b62167b2bf7b8bebe5dc6d3c176c25caae10858c7560c42bcab6f3154905fae57c682f995184930ec50522ce113185937a779fc4a2997c8b4fee0285f6b67d6c59714020cd422a799418259de6962ba76984d4ea3c3803e95511264f46229045177f7f21955917870f5507734a12ceb3b7c997e32f1e30135d692614852fcccf84b8e6a9c11893c49aa8522fc35ea260e4790dc55c82bc67caa301a516270a3def2454c69a0043dfba3e4d8e2e0509f232ac7c26171b757665ea74c0ee1f9c67afb88b77201454e898a14d023b32925d28b115bdaa1897d7d98ba2cf16be39509c71beba86fb9c9f856a422aecdc566011777e76d1efe141383494f52c4135cd9483282cb0f6f1d270824f621a3de0cf7efed61d3df4273474b59b9ae2e2d3acf8949829bc9f145872f2a2e5f091176bc0de27bc11c36775e75fd4fa7e85e32d2c0bf282767de9ca4344e3fa6e38f8e56fda6c51687db845ccea462559b2e73a1a67fcb6e265dd04c172d9aee711fec7e683ad37cdd29259c3ec714760e87745b0b11173b6b0a435706a38b3833a8afac4f1d57dc1db40a051e43817963aa9f85df87d8cdd39bea0f519a411be0fb8916c8341cc38c47e655dd07bab903e9d3a98d9a1f2f53364469a125a85e7865c6f86b529f11c469695b558d919f74a901e59212a29d2cad429ceb81d78a2d329dd7c066b07c9f37eca87865dbe0a06017a9e75eeb1f9951c7aa2044ad1665e3120feea51468f52cd4fe80c1f281944cbc8e812496e25dbcc9d4cd22a00000b3e557ed261ed34c57a7a50210d440b3650edbb98f967c6a04705a8c2ffec0fcfc09ab53b486b6f46d0881ce46f85d9e7052321e6e4a17d908bb2b2ab4ac6859849aa1cd96dd36ef3fdbd0b59dd79110f082b28064489a2a9a9980d994bf22c84c68874c5d7f151662994c2efa46c542984535f2c1460bec34e507f5cccc61f6403e23fc84ad1ace0fcae489cf37bd7ea1a7c5dc1d98111e10a2272ae9d0b4c9623f944aae253094601b08a7f32c8e6fc90a23b7f08b40d51401275de67b6f92a10d50e9a8f9264e64c2dd81f62345d0c69d4149ea2cbd9a2e46db913b1c03c5b14756ea02b14ad1851d2663174842d28419b8c10e1d1cf677d52951d3b73824f2267f5241a914aa5d021cceee584dd6f0d1b46d0f679fec502cf03d41a0409367a0e7b82a3e49200496787011d4d06128a226d3a412aa8da918620082bef65a9ad469bab7e015255582576fa489cd69a7e5f2c7c7713c5ec1831b004bd02ff6639d434df3a3b4c5feab55d5acbc68e92acc1360fabd07f6f67f1979ea8b491552f41e96c7bfab41536e0652a68a8046c83d83f462bd3b4d44b3b61d51df6abdbaa59a28937feb125d6df9a24c19522c3f3a080e99d6d772fa9efbb03da6632860979093470a0e23c86b76c6cdd5565ebfbc937e3dea98fa6ae67f79fa27adbfe213e0e290e31d6234fb12fd7bfc25ecec7ef25fc7835f7b69a638d8c27deb452f30964e8d95d92a82b9d9bc44dce351a7eae0ea8c9985c46b43494f8ae2a9c8886e101c9bfca105970b64c87084f21c014b73ce2219da28563054dd02cc2c687fce8a21dd271ba0d8017425d5b26f1c2c641fd19763e60a394d599bda77f3a4e02b34469bb1ef343974a63f87f0886550553202f6fc55f4ece9c7db80dc25477250daca3925d8e48b8d5f5963b6c5649fe487c7eeeae1e08a606a527da394312c3c6e18d43815532029724acf6eeebcc11116afe56d651477c69df902fcc8bc88a2dac16fdf983acfc658218f1c7627ad135466b2df05e6aaaea9cd946d08454d09f1fcf57104a91a2b581f294bbedb562aff183e1c2df798c3e721756e6d84725a20b6f263e4f5435e2fbde295e515c5e015256d2b322bb10169cf050a90922f55a886922ca293d236dabf96a5b69c187bad09bdf2eac12b716788c2487e9b61d347191e6ffe5718aa8b14dc1e6a1fef4dbda251a27b2362a2d0814511d1fe5bda7e5cde95985d1223b12de246e7b9182065f5a656f9eb1dc2572c20292a99cb4eac8de6b377c9e9874363ee6270e4aac8e56c01bf290b453ba80850c8455358a3c3f31864433f9a1a169bae219828925c0389c08dfdab909ad212e66564615be2138c4d28e882a596e5a10e5c695d0caab819c48bf83f71221e63010ce75a7b2b2e01c5b5d4abea5ec9eb734c5199ec6d33296e3fec5a1ed1586f67e332ea2b1762a4bc146be6dbe032eba951f739d03eb525131e490fd27d35abcef6a8f9dc2f74ffed4ac1dda0de5e51c3b881e2546a668655b1d0543c61ae10449c10cfa4d5949a906b9131704a203d86d132605874e03268e04fb4f922c3e98687dee16c6c056b76a3142059f25ad5fea65aea5695d339faa7b7d2abfffb51401a0cfd8d04c7bd03e02bd7cb3a36abc36016a75e7ed0da28bc849538a9b310f699e1f80abacff2d23248d474107a733739e25a88a342ae12f2b53e8c422c1c3fd4ea2cfc226ebfe799b30ec5b08348067563d45d283281d5bff40976ef91756fbaff082b90291dc9ea915487259c59aceab2286999a2861801bec5fcc6608a2ecabf41457d8024fe8ec21fafeca7312236bdb849c1b4e4f07c7e426a5390e9c14816ed6183a9661a5182d9deb5b38f56db9803a7416457d3e12ec178e3fc94173fb71545f8f6847892285d230ec7648da99c1cda37bb8e08c927bd870d3791a4843e50e72b7d80f373f6a1c7dae71110fa85d31912eda4bb4853a8ab5628647349c067fd33b076bdfcb9188ec84d0ed91c3ac128329dff93627899dba8bf9245e13e36d9f6d5e7e224fa32a1b2c203cb4ee1618fed0802b3293fa738463007a38c5e09aedc607c9a70fbb661c7751d4ccb19a6f1b257bd33fead4d2ce836e39cf1534b2724e72181e5beb0b21e63750c0e948adb2f81153318a9125eabd38d2bbf06c93d988d28c957cb73ed6900ae41907c7f970b78746b51760900eb2f90f23e8e6e78eb89ead658d9833c7b4e6c63669d090378da5613ac5a4d20e166f8b5ed45709f9c9108e11c07ab94b374c2b46afb08f5bf23a5ca1bb73f99429fbaa33684638564fa901dc803e94cd119fc71f8fca13a1b996ee8fc917e252b12533ba078e22bb5cabe0fdcb39a76eeea8ee320013a90bbe0ede7686918cd0d516675412e0b9ebe99e5cb065b3ef59321338104f9508de377b199de6113ec26d1db95aba3f5a089dcb647d34694f4952f0b84ffcec266391bbe5c1d57f73108f2b0b5d7782404986c41a88da0c270a9533ccd51fcc925a4d2f1a28cef6a3fbbc567f1b1ad5504262da56bfcec0c00a57336bb867792322323c6d1c8a43d305ad5ad8988b382d696da53c2ca39e8a3a792f1647b04df7f675cad048de6af48b67136ae84afe9bd7b081dfced93221c7e4c44cf7a035c2e719c8de6683211c397c049a99cf503e84f50bf7baa5fd2980f4789637b0346c52faa65523165483bd1dd3efe210a8966b38a7a3663af4fdeb23331b6b6edfff065dd9a444dc9f59733bcab5ee93565f638ffd425dd7ff23579bc1cb8ffee0e869ee5a8966eed767db1a5829eb8dfe3092eb7854c8927b9b680f511a513174822f3027badc3d81821b868e3bc0d81879c50bc66d8001b9f604f2f84289cdedf58a55c1a48e8e59cce85fa3e18cb36fc01f3e5b3f983f7c458a212f24732f3069ea69ad39dee4cdc8875071f54d8aa341d945eda893887fcfae1a51a70e8e377d9a68f3c8eb17803ecc4af5a5504aa7cf0cd7f9ddbc82ed9e8c301eb979e4901ceb9ca2eec830c7e942dbd277521b430ccb9f3d9a499de7daa3753bd23fb3dc99af3b4a8f6cff2fffee8ecfd570af93eeedc23c66426502f2ddcfb00fe28b511e34a880e479d6f57d454254314abe869966febdeb5d81c694db2868db199f396802405d992caf8c5250d4f1b2f2a96082ff734c5a4219308017cbb424985471d90fda00f7fb0e1b49238dd87a9ebe38e7cc30b8dbdec83018a8c3c9284349ebd52e5f0721c7e8fccf0c825e7123f87b95c51c9318cfe42cd2a98f3dcb34ef2c72dd021a629c5b3f8a2c657ea7b4ba67003ef1b6ccfac07c6f9c738e7efb70ce71cbac61886da125b259795547797691a73f32ba6be3deeb073d9a9bbcdf67ff95b114085243b8a54b83d6a714e1bf5fcdf6eb7fd551653ce4a67f290f306b013c54ebc2e9c150ea26f4c5597dd8008f7db022a91a5607a328c53c5fa8d57ca84bcb2c43731055d2b224c1f5393e89aee322791e51cb8c484f5ffe4a8bb3dddf756961c5a775eb719f0489297e3c6fa2f1f98d8978d182c8724a525a4492e223c3dc2384823b308c50e6de48b967622156e2f6da6eef36b36889fce3319af8067262bc42fdab021f2076a3c7e6c44e37c38c8cc4f4ce030fac65b59d5c9e26ad252802c4dc3829d8706783c16e196fc48463f03ec2c422d317cb8825e0b9fe536434fd528d20c19990c1e474962638fc66ecd103ab96a96d71708e7ae30122c46570f43b0f2266f96af67ac280b258e5ec107f12d331183dc3965980214e2ee231adac4ff311bfc40b2dc3b1be80e4dcd6c6b72ef342de188769ce80015a2c240fbe9e6367622477f169adeb6f9ca211f9d2925eade28cc6a04902a63fc05a124102d4d152f0e5c52f7fe23ff395610662a07e6ef1c7fc83288d6b82259380ca16f8e9f582a74d1462ee691e27962613d1650e6d71b28d82057eec885293c87e49b376b1e7cfdc006e26ee1f3a6906e57c13512d26ffc76558a13490144784f4aa50a9e9df156ad815c7807b0be379fb29c3e4c7e39815c7b5918a5650741c0524c18a08969fb61c5bd48b911b3f092891a4d614feb6fbb230f64ffbf9bee21e0386b47a6cc1c805b10390630c5e3c1416a0a434fd1b3b29356078821d6e6ec29a38ac307a23dbfdfe8c6b18b202d8bbcd29630b62c680a0321abb547799ac0530f7531f176af72273292878b37092ecd4fe1ebf7a45dd7e16317fbd9c41d212391109c178b363c8242aba73ba0e94cbf6c60f3c47240da29642606cb414eda7eb8c1b925e7ce2f486d0ad9a34ee4a4fa3d415b06d1cb9db4bdab1f7bee1e5941b604294cebd64e1aa527ba4a35a52c5357d4a0f3f03396f9c6796556ffc6540697691cbe155367f52351deb7dd2714b8bc31f90cba210957616166293133724c0de3fc2a00dddefd2e58fec9e0b0156e94ea92e07f151fbda14215e0c3c634d25ba3d05f0cdda08c7bd14cb47e5502c34e82d27fe564c40370f906e573291ded5c532a58cd543d591da6dccaf69136b75f70d8119fa747b90ed041aa614d78cb59affb71802a215b172cbdb24411f80b2bb6080733940b27d1b05cd861784200dfc44d5377eeebadf92ce05bc385531133767313cd1b864f2e4c5591df72ff998cfc59bbb66836b086dd8fd91bee014580919e32d56fd00d9b1ea70eb26b587e798b12be038c70108a3d8989b758615a1b29ca911fb706b7d2ae42b290299d1079206aa981bfc0d4037f051064336f483f871d953d2587ec78eb687ad7ecbf087bb43c0eb550d51f90c8ac62877a0c47267728fa8fdd28645caace466249692c37d941c60846d439622fd3903f41f6e722a912bc07d91c3060fe584634b087882b578ee785f188d95ef67105073e52c21b370ce0b9486e94501b3126ae22cf8e645ad6c4225938f64903755244ef20e0dec79e291e8bca1e3bd8a182240dc7bac89c24deef756dc01aab83620681b785aef1d8fd2e5e909b1458787ccc00a00b63d5f5180c368b86f2f23862f20ffa2ba7b5046bcfce4308a17a6338c320b98ecbea7b78a7c02a1f672cd3ada689317b2a1163ab0c2129b400381553e525ae86db5a2c4fac919c3372d96ee246ab3362f633ae2961bffc3557fa607e3da2eaa0a87bd43f56b40820f64205e014fdeb4703fd17904e2d595850bb0cb95e9372b152bc400c3f1d2f4475b2fed4e202b193ce5487e6dbf25f0206add0516b8a9cf7f39b94ccd90aa641bf94b216bcf4f3e64851a356b265d2a38ba4a7cdfeff6894b4ffc7caa2e8fd18648e02452d27bd59f7f1a2310a1bd8c95bcceddd2175b634622166a3af0766c6c0321454ff3b0e1af6397954ce515d187cd2d386edea8fc19de52f2d2df381e864e70753d363739d680201a63616fab7c5d95819542a505aaa40c767c7cb8ff271160cb57f5c20a9c7dd9056d32003e6bf24210ebdc96c3c24b295b3e44b8e0d2921d009a97e652e8b1b5eceeb61ea30efcd022b8cb969117b2d78a7b8b71c29648dbf4b0827366663dd32c7d2fa867f004e35565039f5a91450af05e33c85d45fcc0277b2a806c3c147362701f4809430ad23083054823ed9485fe5711719a74b705401960e3e2117cb8f3a95f527f8c0489996240a67faa069b29a719aa19511c1a8a8e42171566b36f8568156eb220ebf85d3d99bd194a0fd16bfa9e33ac40163572f172a0ab36bd98842cff23fd6bbc6aabeee28f2edc80cbc0193912da540c280b2c6e481af68a589eacc97eb20d557d993b43e110dfcdbfaaa324415d8dff1a8a4c2eb42ed2fe3f47da5e5095c21fcc9eabc86ba46d59a2aed92de5a4ea3eb4c9657522874a808d36f6605b5f1fe81216f1b261e5bd2e03d57c78c052509b3ac8ff636718171d2be6b443943c1b5a22c2e12fcc5fefb9412cbab69fbd37457428183d8daa5e70b01673b5e94d6af81f45ff8e8ab4295c584427a1397032be5faeb279dc573dca9c497a4a8827a8935ba88f2d741b0bf501b2cec181a93c8867c6f98d6f0f9b515347559c5953528c7bd6459d65dc66bb64904ce4bfdcdf7c5cfdee01e116521a209a344f93cc9269e0217ac7cfd553ffbefbfabcd52e25f65586abbf1484a569b21263af8684da8ee7bbf20eb6f88aafcb932e99fcfa573392b730b997c407a30542cad885df4b1a243e3cb2e6ca15bcb5fe822aed5098a39489c84793153197a700879a9f35f535bc2592f09ee64cb07a6437bfd3713d000b1bf6e6db0c862fa8e98d882755db65d85057b3ba78261e8ef49a79ab540861752ef62c3510ceaf43da5fed7bfdd39c79841ebe05c3d4b4685e89589b2526b428aacf227fdd39088678ce8d3f6330221ae942a7429bb41c6f58f722b8c002440619f45d2302baf1baa9d07049af3792348a101b02ec8bf2451a8f881e3aeb342e27707dc263a5ce7b19671de17e71832bd87c2b7331187c39e15c09b15980240628acecd4b7af8991b790007a61c09a13286faeebfdecefd86f8b76e517f9542892bc0dac0a30edad354fed045c4c18913099ec0576a26a4689301ef623350e337e422d033db72c358bbbe81a673d27518edf22d7d553eb057829f47a5f9f1efb2bdce11981f69aed742ab4b8f0457aa6415298f0e76df14689074ae763e0a5577b25b923e0f5c570ef60c7fe57fdfe772eb54a938fcd95bd8d0ce8a8f9609398754854b3b49a73a6bfd8ac6d710ab2ff9c9873bc422e39215a3799ad9f9c82bcc11d56a92e7e3867ec14f262061edeceb801687789e8215047607ce40844dfa52fddc419d013a3a140061e2f53bd4f2c12a3942f8200a3e8b465ace89b2f7be2305ec18cf31f3502cb7f5ff989dc47281ea598936084a6e180681163f22100145be8b5f9427ea52b60bbe5c94c4937b1b5fec0f8e73ab54d91186dd95d5ae7aaea935ede3d38240215ee148034e58c8b915d6614f0a1d5fc5011f4905df7e0703a3a4dddb8eb9a69c7ec082e4fb0204ed49eef4eeb3cdc222a4606e32929d5524ff6ca615981231c94e0174f9da3056c81d77aea58330781107fd8e22c34e9f54d3539e11d332feb5f0b4793935bcce302ed6eb54d3fffd2f7e4207b844332e600575474d3e217d34f9ce38599928063a1bd7707f3eb9768599e183b850b009955def9ac9fc015c65094b1298c6beb8f0ed9ae550924e9e6b37b64e2343ce90fdf3154bf7941d3f890ba62c13d8ce4a4dfc8f2c060109c2405b4b65bcdc303a553ec8d4fac6519c803a1475fef07bcd30be9ae9f5d4685f655b13b3e3ee1f26b0cbd6e77574f4e04e0b86c83dd19079c6fd0952a7a46e68a2ced231ea906b59e88d883e1ef28c08c22779503b2af59da49491022c44af0a217dddcece68b5bc0e8f8b529bb5bf6a90989c7b40ec4b66fc0d962785e65629327efca69fe30167b74ee6e0d57168383961858d20889c13359dccbcafdee5c767296962cb1703cc215c0b05732230f631221adeaa762f95a83281cba6b45c46190675e22f1a23e6cda5bc0df0f0f9a3387d3242e68b18a990d4b8c0105daccc61e45606f65efa84b73d74563889f28d1450bd558bb6c7e12aa4ed0803d908a583e9ceb86e70fa2c9b940047f86995b4a5fd21414868d52927414ac4c186c9df815b1aef307e38f2724fe8a8bcad7a82a2cf60199a04845ab663c8a3fb09055324cfbb0ba85cecbd853bf82ad68b13041c6ab74915719dd08e19dd771b38ee8bd90928c7bdaf190d888fd77fb47b0691d8e4413b1eb9b77b728502578e202925e13abb870b0288e7b290c4535a2971ca8a6f277441038e92be44253439384b92f0822f73a65ddc5ff41b97d2b89ba6ad4759d9a00709b778ea066450530e4771e2a1a37f38daba508fc7d7e9f61a2d86127c6f0b02704b92b4d65e58ab6b915de36a87e566dd27f482e3f01176005970d2b7cf5fe455b22f5c0ea721237435d1f6c8fadff8177d0d3cd9d59d8120d845eb3610b72501f4eaa2f7d64c35893d933120e2b8bf6b8f8fd73d7ba06d7ec9e6c37c0eaf2bf1e469bb8e55a93d40f5d8ff1b9d0303090592add3629a062c8e7a1f2ac0d9280025af3db28e991f73f69cbd66ca4d84684f8af6e14f9f03beae577633dcc0c73a84c23fa0e334b23eb51e9124133ef812c18c9ad66fdea3e4a4ea2cecb1a91ec4de250e03ca42f4e873591fb9d9f46e1826e8bc2e2c7b01a6484ecb94b1c8c358a19a937dc41b582f724f56954b4219806e310fdac9c8fd35def4c6faefae30919991110d458355c9a14d139cb8e1e8caefe4b5099fb94417e5d568057b7d91b751cfd60918a5f8ea870b9ce3bb216d9ab777ed0fbe0e68ff3ef3c3fa1e5f38d42e9157d5f7a795ee36e8b8bfe95324dfc82eb37092008bce94819437181bf79899708a5509d882493775b5ae7005febccd52a65c7783c1df1f5f1e6dc53e86cc0b6f877b6eef1d0d53faf28b2c30a69ac8074da8d4b52d9b45058c9dd9726e5a61910772a8b11613d6f2a667fa493b18d0e593e160c326c0150134e16d1c3dbefd2288e2674ca6fbeea158a608d11649a919cda1cd6b5251b03681da6060534bc2cc9892dfe14a2ee1e538cf44f3f52d587561c91c575a764b10ca00ed49c4fe524889583ab203893e35d69149018038dc10b1756f4676c55d8b8862702647b173878c97675b4837fd2f8a48fa764319eb33200933f6d3dc0819144239afb7dbc85659d37c61669c32b01c0f894ce4c86df75b2933626bb69ac668fa3a4a70fb6968b6b41a5ece229a1b0c781475af5453b132b39d5b5daeec0d3e3dd06a65be850e6f552d82d7e07a344c6e8d9ff8313c3ea0dfaeb6960fb4cdaffcf2f818494e168def6fa81dd58089c4e748ef581dd9e291e73579b6bd07e7b678487621d83a8342f9cce1834312cddf5ff9db92d9d8502c887697ae81a1b2ae166d234affe6d61d43e4556cf78da9fd3182c3dfb78488f9a1226e61d1ae7abf8a8fa7a389e6d071da0087989fba567062af2a911b7afcac52535df1f16c1267cb6f11ba7dfff023e0f80b855c781742eb9731cc87f138d9fdbaca15d26e1a200ba9b086192ec58cfc19635b9dab710f1b2cd5431705a9924b714f31348fc405b31f78cbf11b0394cbcc47f4e23978c78c772d08dfc4713709444bcd8c443c02892f2518e4f3d61954a1c5e41cc7209f0d666f7d4a2442b4629019911e97ab546fea1918dae06f870085e02d5dccc0e0b6ecb0730ed09678c1578a17b0a9d015808c7c3f2ac5729027a55cadf26c6a57c52cf327f44dcb1cc83fd53a5decdab4588dc14e65e495a5a34003a48852d607e1f53eed4923c4ab559ad2f73218e3fb97f184e04b9db4be79541e78f6ac8414ef2d4d6f5b53bb699f8d1429d8b6e35a30e1671deaafd79fc0e25a645bfaefbad26759ddfc1d922ec8d32aa2d19bbb9b577192e78098eb853faf0628e10d44a5f2326663e131bf6cbf3aac005a0d859e7342088cb499f6687058cbda60e1894ae3659aaf631bde67221af8857b64ebef51b2f6e430b888f9829f7a75a5b7809e782ba2c9d83b59fc52b9cab2be9b79cdc9290cd42728af86b33deff8ba83dbddbfacdcafecde3d0c8d5f844dc42127a61d4f4a49b521c6948dc8059af263e09606e7f019789a29127b107929b212aab8a44a6ec172a1a735a7276f850438f99cea6f7c91b041f25afce4c88eb5d193e22d543bcf3ea6e9f32110e418ab7403b8393480cf252a383d3fee84723c1141d397ab3f26096fa2a456a4dc391e6fa485f86c245b4153c8728a2ec58efcb01c8a2ae3ec902a7c16e691dd05e298c9a3049800429b208643de90904a5cfcc8e7774080b27724bafa55ca109e52cbb2316a88d19ee6d679faa73681f299746c7598add603ebc7074013dbcab0d082ca609ea3235c11d1f3140ca51f86ceea65edd03f871f9e29c4de7118c33873edbec9e00e9e03e2bd1535f13cc96e8cf4c2baec25a92005799b9bc3f1fdf6be4f712f7e0a9ac34b7a5a08818f037a20adf8b1aef1515b084ed6ae3159d8d6924225875028db4ed13ee8d41c7193879c4f2b016742b3f284629fe6241fe4b79bbf9cd69e4738d2a45972f4db3a8e2c4f30105f8808302be6eff3e46585590197bfcb8f586c66a84896ca39092504928e3b12c5008f17277403006e152a7659cc9b4be4eef3f8f63cd29d3debdf984beb3695904414627ebf443fa0a0c540a411f383b4fa6ca5ae1345e76f2b331020dd938e8da2779f8cd3915bddac50ec37e8bf557f3396d87e6941e7e10962bbb7b9a0d873efad7d0b6ad2b5094a166e41c2fd4bdfbb9466796f7875428ac50816d933b5ae3bc4d7d2466e6b94c29df5472bfa1fc6f3c9b35a01e129acadf60b8743352dc4fb4b6b29d6c76353cc998096d06d101245af0cc5ff9b14afa3e23258b3e437208ed44b9d73ca977d751893fd0618838b5b13954cf30cc74af7aa6b1a54bd9ed41b7f46f2c4783d28f7544736e42002dad6215b52b9df7ebdd6a114977477e788c25119a4c70aa41894d545902ae31cd989118edd5d08fa1f587032db8f151a0dd8ec8a80792a0a9acd52159b0c0d4a0ece82b8c6b8a178d1d708566d15b9081bd0dd17236f8cdd33b6e6d4c2824af927f14f8f148426b4edd6789345e6f484620011d8c52e35bf1735b5785d59c32253f47621ca8a3c3f384d3fb998f686276a28d9f2f0808dfaeda45f85c897f6b2c81b51819570c888d65bc636d2055f6d1731921ed1c0fd22289b889cc92353f6700172f6c910ef179d852138c3299f2af39cf238d5915e02027a41ed343bcfa91222bcbfddff27a922667e812206d121b971fd8dcc12bffbb50dceba97b2631cc9f31e160033128a59bf09cbe055d2427d63b215449d45a01cf9a2009eb19ea6b046f0085d4f993e37587a7d58dc7a038639ca9c75f8b0e3664f94eff6d4d2098cfaf2f25b8afd431ececab3d4d5f9038687b0799253bb021eb7a641d0512904422bcd985b9682e7f39807b9ed6aec2eeda59f116d3c5aa2f308032f9adc7d5680be9c953a16e959276c8a5b4818e54fcbe7782ffe27e68713ad486489964dc8c7f8938b665c100f50ef09835c7b08630315f8f56dcae4dcbb121d41603f19b04f378e7e520938ce3c84552e7fb16e4310f590a022c1183d6ae796ad73f0d28755f904edb53cb6c73abba9ecd2799b8b5b3f777de5a5a904188ce3f5667680e7d3635d8e59a83af518964eb8eb064d7bf4c8a733d11acc6b9207a48c96448059a64ca2d3e228acfc899fea5729077b1a4c6a94300c51f7ba7cfb85f841908eaa5103a94e518e316f654662d9bdd25bcc723b17ec0a34111473e28c011ae950f85357058641844d158bb1e525d779627505e40bfb84692d5e8794f0cb123f0dcdf8cde4b39f8984e254ccc66d7c946e54d9eba685f0206a8610b14e77eb6aebb0183fa500ccc7eb50531bae029ba84fe08a4c47be52f8776f61a451cc7a67b563715bdf7f5dbc7a532915688f3f7f43a75c3cc7a0ba371874c871059438e9227468d222a6e3efbaa0d91b339f3220d1704b37e5efe9a1494285d8a74487c4757d705ade8b35bd57ea73e0735f16d9c0a4fbd509a2ee136b3064d2b4824b27deaef84e116c00ac31bdc8e2bff51aa3f1f549af73053758e13d59250182eff3041d042c9571528679fee991ed2f4f1ebd63e52f0d80a1a4a865b43b88c4b6aede4d46470fafe7e18fdce79829d3f776762f710f830cd518ad9191a0839ec0c55a7320d69f6109e628073871e977a5dcf27f2be94041ee0e202a7b147b5bdc19e10a82148f8fab7821ff0375a5bdddd1199f9888ba034afdc19db8762469a8f111e7e94267e0002eb9d3585c69def67735aec3d6637890e74224e4ea91674878d50724c2104a819c37ea2a193691fde0bb9a98ef755fa9a9aa7f5ce50fe3e22030b6401d94073db66c7cfb018f2ae894671a6c9cf677cc5b425eb1befdb1a0af840df84f571b2bce29143634ef35be362c5e3a0c64b85d91945a5d8037d40a00675def69cb8c42a7a6ff39d55a262d8f3e342e677f8a59897e42d2a6b16737f5a075e58fc8557aa249bc0c9ed2dbec5629e6eefc13004fdedf31e43eb4cf8b038d49ac6c71777710bfc5702fecec8fd696fd57f4748a678521e708faccd58487322166bb10482ff0df81f1f10699d4e98d16dacf1f7c213ec445f3bba766ba0f5e1b8d5f3d851c63d161e7cd3badca9d3e53e2a694287205ac9fd2f850f6d823d3ab007cbc22a506271fe7b991eb8c0d269e7dd9f6804d72ba82ca761912616dc68ddeefa4e446e77faa6f7d7da6321a0fe9c4f46ee37106563112806006498f7eff2724435fde3298b0033a80253251dbf5ddc54ae5f83ffbc4d1410d23d7bc814997ef4340cb35cc8df794ae6dec97c264e1a86ff0b5d664184ed7fe9f6c11dae33a0550140a5a6d4373b9e133c5fc5467debd9e8a1c3fca1f321391c7120d84223f73a3ea0f0d2d20054ace6ded3544f892712663fe194df327e844c7aa46d789b23778c01db5f387c3e1daab1445863de9937bc3357f84458598c11747567d168d865a65e12ffefc005bf47be6455c0894f14de7d9363311530e3ef1785e3bb3f7f628c8807184cb93005892d41a334dbd4b8e0025d08b390aafb215ae212f06e194fc1fff846c9fc5284e7bde0ece54e10f57f6e0f89f10af8aef0acbdbc1e0f2810970884d7a02f9578ed1340b26779dde3b2ef6b80689302b79b2614b8ef09f00f8b4c824d2bd2513d268636c621f0675d504398f9f15b3c37d24b65755092dfbab29ab2e012aad6d69e46e1d206688b82c3bee1f6a072af30bb80cd7512e8330138992bfa552f7669f60b4dd19a842b35d04c1eea6bec870d8e625dccd9803fd9e579dfb919a757c0fe9b389149118b9e678e113fa7ca8719bb8b8ca55bf0d9bbc40388704cd6dfc9ecd9f4380d9f27a88c9110d04f25b303a48434bdec299425c7832a2618761f18193a99bc64c0838148d03a6f25640a60e4e296e65ff544188676031525d46f6050bdfd6a9a5d971caf690360959057292ad98f8634b162980dfd112cac4849feb3d52d605adb52b2f3c671dc740aeb399eb93c1515bc6830b96eab8e596c6a6e2ad75112990dbf3c8d1e75908b29a3d0dc2c0ca3a51f386b209a7711ff379ad35fd55ec9c930c9fb6a87e21bee95c1137e1f644fa256fc5c1387f6c01678aa735611371f6563b7f1388e39932861e0892ea8c7d14d489e17a7cb385a153ee33987584784bf599765b47e1701392ad09f5768adf12fd3383552c6c3d08c39ab3292f717bc2f46b66310d355e059d647255829050d24815354194fb3cb1e2314107f22ba5f852f563a6a7b2ca29ca815cf4cb8c197b73ee195cbb10a233fa3edaa8df47458cf2f62fc4def542b54c2f0b668429a95d82f221c4f03cf69c65e247a966997677255d8014b3b17544f5621d4ddb39c20d4fb9094fd23f55e54137e1dfbf2de9f8f20fd64987c5e69e318f58b55db18e5a42af5a81001667a82ed36d7268a74e8bad63184c97c6eabc6b65c1ff953e2a7916d8d8b1ee75b66e6829f0c9f621c7e01277485925f98d0ba5c1e370a78e5ba1bed0571a6f72382e4199ec8a39dd67040d822cd9c94587e079ac0600bde918a3df69714ad13df605229e13860a1d922cb7ba0876b7f9cd3c427b08a7822ab12f9a0413069cd3546e939a42fabf580cb615ed22350878ae0f55e2a890f00a766364a7d07003313b1889323a257c885f8773147d46e810b2973672595a8f8dd29f2fa41dd518462cd48603e2c157b9807cb260610d3a68027a569c6ca9e107a17bc165f7dd6257cfd5c2f528be0dc3cad4878a414948885c60e4df5a9c85e3d7d85eb76b289626659c6010e2104f19c714596445e09b459e7a7cd44950073f0bcbffcf4cfe7ce4e2bd64ad674a865e02e03768f310ff991df07f2b4573dd586caca235e28fa5ea971808e56aef41b799587ba8d145b84fdf65f2ccd9b3a1fceb0b3df41967381325f7e87081dbf63bfa8c2b18353e03f3fe945b02a71b172ca0d436ee5f8dcd1a9da40ffcbb4cdcc2a410560987d442b78694ec7e6cd204eb9915b887aacd1337bfdb2c12589a6af6e89c7131de4639e839a772e280626021283a8db541a4c69b498cc565f55f0cfc381bf3bc020e6a7b29563c6c95b6549c13c9c9b1a29027695acf46b8cf762bab27c4779d38ce2f9a7e66220406902c54baabec35dc8d161c2f033176ef147c0c4a3142912c89416f20e4fb2ceb6a85f79ce4be564673d2c9d4f375e47e98ab29b703ddc023521af450235bbac2a24d9a93e229a2b7bf802976822abf92a5abe1233907b237c6966c6aacf22f19189fcf8a301f7cbfd830d580d32192b21570d3590390f8d08f169a063d2ddfb1aef42e73c199793ecda5f75c42ec3cbe0560b09ffba64a187d192517e03a19adbb4e4515ae61a00c62ee60c49af7d0a9eb273694b310da26cbf0065bf26ed554a5d9b23e26234c013b45b070a2ba7ac3428886714eb6dc5701e6110deb7bd2ac5f5954dce839a9fdb7e9ef0a9dcf7c7a14a13fc4d4fdd7b0d265416097564740b0f6246ac077ef52a6ff24e7e747b108882181fbe13061c0216a28d60b95bf1c145cb821d9559c6932d0522139b1e48ad9e53b883c30a1bd27a32b178a7199def5af31a5729374baa37c5baa6437ae07cf4e93c8b95234a4482f7a8d9232e9080dc2414a4d6c4f989fc5d6daacec68a8210ef381a93b050e45f3f50809f3537c55d2296e1d2d2794c09ebb646fc2045f1f69e75470efabe81c11d5a5eb26af8f33ff4a800d6142e9545b450d4ae8a6f20f46fe77f6819a3ad53dfd8d685e0cea00a77f686c8401708400553637d519609fd5d110029c47e4056b919430fb0794a542c710ec2e4e1d08af1f93616c5eaca9f11155f63f3d9d64027fa701aa29cd03a10b0c4578ee0192898d6437167d62584c439026ea1734c77a8581e242097f76b7545ea3a1d8d9306b837b5d200b0ff7b054ea7e8173f470ed006810476e5e6bd295556275bedf68da75c6b9d415de423beeadb1288f1ad9fd8aec369ae97aa576534f22133e0783b019676f5db9682131c488472e7e0292f2e73802294c8b36946ec3b0722ea584e97cf9f323f98299e3f0758ca4a5aab1ea0aa4938a2065576db0dc369ba905784801fdf225f3f5223d20d63603963e6322d0021daec4f482afe64b0c055b63ae64fdee41c310415efe5528594b20ed1a79b6903174d9929c580bd3ae64cb049a4c97c92e2c8bab1aac146f2c6df2b27554fdc596859d8f711701c30e65103d302a7c380533fc6085d7951b08eac19e6e20f64860cf52e96ef6b85741cc5caa8563b6a77efcc3d20fb76be1c40bff7d40db1435e3180264f6958a27aa31fd19d110cf9f728c288a388544d65c38b42f5fbce13a9eef2df4e5fe969cd12cd480cdfadbdb28747215fc8a98a10bb7a2516a11068a3106dbd23bfca2f8b8d0ee651d0782d0f9b0f81c77caf0572fa5e734633a25f7fb20451424c675fe420c1d34e99e574a8bc64b67138da71394cb34257afd9a9dfa8dd4b83f88f809e72219ee8dca519cca23cc397becec5e4885aa0626d37f45ebcd3bfa2cc850b94bfe6b78789c985fec23bb396f3517346fddba840c5346b06b44145c0602800322a4faf9a45830a7484d248715d16e60721569d11c392f3da2faf7de0e44a2afb58f78111ec5d699942de3c4e348991239da136b9eb1a064e536ffb6bb9717b046597bfe118f53a8b1f784ff80201f869a25e8e5e1104a4c93f7acdad977ae87618ff5484c5829a9da6dbd35cd7ef3ffd8fe672ec376dae2a5f0bce554af1c70f7debe976f5d355d63e8ff40c03fb1dd6e95be09189a007407ece59f9f512c4a2ba8fb5b9727681716d38a8bf6b1a15419f52a6415b104951b7a54490f1c1119245eb8e529a31b95be8c532ce6b21505ca1caf632414085942c52b8f62eecc35b5d47c7c9381c85b978d919b94253a29cc976b861330c81b79289286b3326c10adb750ead76e1535fad9ba6a015e58e47108afb0cc2ff0b598b42af14a07c17bf4fab390ed5063b595d636acb7f8f91fb1285dd365aafa391cf41f3794abe2832730e47013a453666fadabe23b3914425ebbd7d279a455a652a323205e5c06f2ce25661200d47ef78b38de5b628c86a8b549c61e9b5b60c5443d1268a37626d092d15f807645d2f3567063e37e1b856c323c4cccceb4b51cd38fb4abae747a23d367e3ad83efefc7966ea047b35b7a1b90ca81ee208792bb50a9f64afd19f58cce0d363b8d41d0fd206ba31fd3681a82db93e3c84fd2d7ee6d4e56363f06267cf0ec55150f0b4b0030521545ba0f8cc322fd469cb81166aaad9165839d6dc06f6ef5ece4d5c066781b700c5d655d90eb18731be18ca7941445c02a872b5794401a069d0e05f75adf9109e1ad6758f27e4f494858c4bac7f674bfdc9b9f81ca246154ab63e4bffe1c8729d9264f98ef7db1834809090453ebdbbb76e986b82f32f5fc3282114aa0d814fb60fafe4cebdfaab42e54f1d8cf66132787100f36b9ab83431e445027a8c6b9d485c88074a447973b7783764c9f965bf85e7c5d59dd8f5d21520ec6bc0b800193e9ee54da7e6e38749cf7cca77ef4de8ca572095eb0c8a2b15ae5b82d5a57057e14b61a06b1a97eb5f1195bc7cd49262fb7a2b55d7563163b7325a2e8fa61ca9947cba5457ea4a71ed2abdd2e06a219ec6e368d5854a38a08c0bb8fc06d41bcc9223522ed1a883f2725b7305b8c5d91fe1953bf9081500298c8fc51a8109b86e239eafee80f71ed6a186faf12ba111aceee16be042af7fd2c857d76286d2f181ed01fc757b24cae6587bda2eda820f4197d3a58fe383bfbed427c5788398fa5b51c38573a2c78b79f5a35db0f83292e1501ef928433b5d6b6ede6ff67ef5b8aaf49e3fa6197d38e43238133df2fa482fa8bc5bb41a360a10519034a8b8714736ea2c3dadf393fe4312164ef26c3a59d5116523785d9e0e4d429079d9431a75731f273c68788adb9384dca7d8ec4fdbc28e8e8ee1b4dbc029b7b029b1ee4e44e6f93718e8a63b2413d1bf778884865b35adfe3afd60a70f63aa7c309e08de6c544e1955efd4b3fffbf1d45fde45b65a93b0c1ae7f7ff1fc097e7effd3d904d6c71be797028ebcea89613ec1bf6489cd16eafcd05dfb471d7202ed0bd7dd332261b4cc2a091452325011ba44ef3de49d478c426df5a6751c70fc3f4e19138622fa3d9e7b7d235f7de0858d54f1b3c2254683edb4c5429e36e8c43ec5a6f1b25d98b4839c2ddd4d41c150b29f0094f9b7e51b93bbb77232bdacdb14f0e1dae28dafd895c48bf7364ab462729912f5ae179783c7f9f6e3b497ac87d9555014362134b330cd8e99ba384df058f9ebc208fe226b49ca592570bc71dec0fc769ffebc7d99cab52281d8fed7e2793a45e78498345628ef59f4eabbefccddf4c680a5b4f9da511d29576f658f0f971bffc2aa07b461a00b9d001f36a2fbf5cd9947f494ad826ecd0953658723af971f67e949def08a35270d683461fba7691d3ee9039a89d6882ed38fde5490cf1b0e8c4f46a69cc10f2e816dca8722cd9afb134162398b7e20ceeab44f1044bab272a261065c954eb872f52ba48502369087b9c71799af7dd3e04dd4add39588601b79b0f3f17f5920255448e64da852ca6047531712b6666fb961a076078c60ac9cfd2823c9329747e1cde3f065f1ea602c9df249b5b2768a54545bceeef21366cbd007263df06af121c25047658a088a14be35d9c3707f6dcf0c227b1ac31baf45ebfa3819710496c5374ce57d3db29b453d759233a5cb8aecab7417f3d72998e75123831ebf442492e5bdd7ec90527370baea3d30f16659919c1e7035f6cad156dae8da81df7338b0ca40ed8ab5e3ee4a6eac8c99b4732f4834e0a36f22d38378ffd1926a4d11232a57f6d83fc53acd0dc7ddd080b078a1c0e37b4584478e5cf9c5d1247644497a7124663089510cdcf514a70bab79d0ff4af708732e2def4dc7b0bd2e36dbd8f7da3d6c43fb4184d3c446c6fc16bba4c65ce7ad8f76be363c96c5dd16aeed6a141bf977ebb8028ba03fb6cac76f481f381239240f3da0cd165ea1c8dbd6d7b728d25e9d15fc021228af044e739900bbe3a8eea78cb7174a71d89cfd061c00f2dbfe223bf9938301bf6107bcfe2a80de9001883439eb40dcb70401ef75e131494e842d37a360b5a1ab26c47b0beca32ade2393318734959a87a54b6eb1f7c78ebdabb213bcd8279906d47d8b1e5fdb26eab9ccf0dbc3c16888c383acd729a74459a0db5e358487da3ac3d0e14f364b358590d09ff91ace7263289e40b1b408a19af3fe3ed983ac1b3550df25d5d6bff8bf1a5a8fc692927616e4f1e565c61451bc18691d8d05f9af0c5d8e9035da6f9624ee14f210d67e55f1cabce469064d04dde8b4b176d107e090cfd1081d918e7d8c45fd74f066b0a800f0b756a90bc70aef1db4ef18c0aa18af0f09cdb47eae9e4f7f5053711559518533bcb9aae33690d6d9e799ec3f398b178a6b3b20d8f33c7d9c0dc8468c753f5eb076825e8ec93dff20897aeed12e19df31858b3c0817c3e9c405ff5cc5d3e8f64c2da19581cf4c415921851b8b19a51efac28a0a2d374620c07ce74490692a622e932aa524375425d1b262d997d822b95d0fae399b7ca0b17e598a9e11fb8dc63fad969154d75a7537712ad8b12a0183d77e0a24578b4dee90e6c5d840112e26b1c64738e289f890210a4910ad8cc6fe6a0c072b9dc572d3ad2291d76740b2d975754b5211169029867dd81def67fbc31b66d9cc5b5ebdd62fa12854a8be1dcbc3ae87d71cebebe24386ea60f190bb6e73c91ffbb33b004894fac614754a6a9a96ebc53daeaac7d3969287f8c11589a7ffef29337da9bb32feccca6b1661295b2d5d4e4b68831009a64c64e4805c3a6cd00bc398c2dbf804b34c6cc827c5a5878c3105b95e5be6fdf8b28f57e4911d44fcd38edc424123c49d64648516553f1bf9e73bac9acaa771fbc09b8cb667ab721ba14b07efa5c943ca66278ca931fb827fb5a82498e592247ea7023a5523638dca998b5b702571a5ed4c95d5773482386ef935d7c8d7c4ca3495ca1b32fca9122cefb65f9fede363db88414b6ab60769d9c19b92104ea2f4370faae552cac7c0642969ca0bd1a54f1065b40e43a6d2fe1660f53647b1f2c282d92e57cf045b751c847b7b77a9782d28f547b616ef62c1420dc57dbb3038fc766fa9195710de4e015b4ee4598a1a1b669682a1c92e6d05bb9e174cac9c0e80560cdf85abdd17a344a623425cc3a779300011219abc2693a44aba0ccf109b24cb43c46d22d8911e1a879cd5deb24ae090e4c1d096ff9bfe647cb49ccb6e56c1602ac28c23246d0a3de4abd273682385b520252c23150bab27b977a8bfa8bc89060e484fae2d31476a16901c6017919d707db01877c77c175b9477f4badbaae192beab38d4866d04e1a4a50120594772b8ff8bda1ed415e035b41bf0423a76843a669a4c3b16499ee8112513e33fd94626c967ab7882da142ae63d1ecec6052f1cf29b879b95585348b71de50a39a4bf7988fdf4388ade237643a6524cde78fcb80a6ba0436056b6ceb23ffbadbf4424147a1f03e6491b9a986537809c92244c709c2302949195d8cce2466715dffeb77bf876db5e4d666bd4aabcd712d5f1560ff0892d85734a2b95f218a64285c464da9c54cb4f244247b08a8c43f87066913f53ec751e3d02ff0477e81865a5c3207eef3326bd8883bd77fa70e00ad6e2961151615cfd20e459f61aef0f672aa6c959a8d4a180d5049bb9e187f0f8b2dea17a7a64a2d4ab9596cbdb90bc61b9edab827f0bb7c3cce1f3c99e0de9e75f2e84d0be138be872dcdee955fa8822441590b38dac7085aef5c53e9b43a8f0189ba951548fa89412571e39218c43ad6b62f2c93c311c1b9f95fb72f0e494a00858ee9c303e01c47ce77aa83da544b7b290fd48c8fb61ac5dc1db061cdb6477221efa3511f94e7b97a8b9a78f9e352d80c0fbd54d5a65b44a44a25cc4248d69cdf85f06145e984d2b8938ac6c0968acf15334ba6dabae82be800f1c8d20e9605e0dfad9dfce6ae521e64daf3783bc077ea398657b46ccb9afdf3caffbadfbb762e7d7df5cdb898014bef0ae0db0f0c567b434e83d09c9d3a91ee8c76bd648c0ba139d2cfd1aff712a588529822ecca1ff5a147b40add19913f6b4d513f0aa4084145d3895b6139b47788ba66b960c08b77230f6b246a4acc5d19992196d32eed4f7d85fc424e3fa8a7ab42ec0d4209e02160358da8eaf00f195c977b6c813f7441b8262eddae41a1df098ce8176bcb90c00954311dc195b55aaf1446c44637d49e6cce4bef4009e4e97de18bbb40be53782317c58e941dbc7c5907d4967e2135f852dee4b1482bb06c9209f8b53d95e71b7717077cfad6d093480e83d71ef4304f08f6cb4fc7cba81b5567e44a6479953dffaaaacd1c656ed8f86107f34bb0884c33bae5da914795f0ac4d2944ad6bb180b1f5eeedf32aecf2bf0c5fc06465490bcdbe8bae357eb01dcb93bc66c4e205d868ae2baf016e05ba2b69ae5bd488bacd9cfb2a59953933bec8e5f09a7d7d6b1a54b2f79940f2ca349b6663be51a066870088846765b0d4ea83f68d2cde71fffe4cd64696437268382cdc377a5db9268bf674a8d7f788638781781453bf8f3b67fd443252f25345c1e879240099fee44c70ebe39ba633f56399e5cb36beb7bd7ec1bb3b004661318551e752c9525502f7409097416710d4dfec5af25fdd597bde80c3c1a849952800540549763b0e16f62853af52655dc4b6efeb2fb636e59c7f6d68eab0c01d5e439ead98636d83cafc71dc0bf64be28995d64a296e6be88c6845bfaa9b40453122b30f49e31eaf3104bceee670151827179bd4216b2d51e431a8ef7a627ebd9983b7657262e310a1ed6cd7eec89b21136215155251a17cb8d3d519f60cec34662a5eefa1adbbe7a7fa8e90b1fdcf80eebc6f825d655866fa2f8622f32e24ccd98d3bc98561bbcaf8838f8959c30fe470671f3ff8e4bd1a3da279f8a144e7176dda22a31c353040b92aaa201563bd29d8d3721b5063e2c3170fcb8b72e7fd49cce01c8879f9bd36123e91297a8a4be8685d64c1a516c1298cf5c905ff686c470deab22a1d3009c7aeea70b82065d1b8bafaf128afbf6d089ba0c7350e030d57579f8004a5552aa9499db8e532f8d7dcb98d5c55f399c596c3ac7ecfca0ed58027df8af929c221fdd59707e7ff824a276f8f96c7d201d3bdc62b444fafcb5e6c3fd5b024c28f4e4fc5d4992dca54ad3545e5992c7f55dc527e4e4698429471e385eda128f12c2b88908d39528d22c6e3c31fe2aa789934fcf6dbddbf8bc5ae635b516ba36b5560e90fab11e82e7f89c9dfdf44a8aa40f4f0be17b0e582fbc7260843aed605e229613ee58d5ef27f84ef8134cb562837e6d465340e7c9ea5d7ab7bec0e7f014846e85608ff7d64515f76377f8972264a7159fe0432e17eccf27071f2b180d6db6964f0d33f4858c4c9f081cfaec452202fe684e274130f3b97876ce9b44a36cd20d4e38bedeaa98c86da475590b48e3b310a87d83e2a5433bf3f95a8d41e17f9a2453c85c00daa0adce0856d8eb2cd3c4b099ad25bf2cf551d2defd22e2ba7dffeca2319afb0d4ed5139c1b7086f5f0a0c42a8ea12420d4ab0c4432cb7e64bc915e7430f2ce2024fd81d72ff7762deb351e7d222370ffd182e39e9b2e8cdb3550bb7553ce81527a2971c8d587c8610c40d16a73aaefeb0567f9353ca5415fbc87fc4656ba6ec7033f5c90488260a33798c8fb111b4b2a3d184ba3fbab3bf13eb493fc4bd9ec08e8147ae529440307f59473ee69c90da71bd1c6587d145cda1d96979f99e591816b81c09140ef55268ed0b436e46f946ecca5a81847e9e6258fed89acc0456502282300f186d9919d3ae6537bd9b5763342d8347a37400020138e3e94f9ff233fd5e81d778980d78f5cf8139554b27ecc0744e36b4c753cdff8bb103b9e962450a1994d29151a301fcd113914a51464b2a04391a9b987e9b9f20580796417813119e0961f361c56f738b4b6bbc1dccb8579b1d9494f9315c9ba0c829c68e7ec43a199dc0886564ec58c257a017bcd808568e6443230a01b6ec7ea52e4071603c97d6c14a6ca76b4b8714e438f7d027419bed79ca0d842adcb0f2e52068b40e96c6be65a4de4125f07da3b47c42454d84ce5b653a174c6e448e09586aaa050dab8c7a516680c92a86a9d9567341d73964b94b4959b86dbe80fbf06b7eda79f8b9d494f6bf5638f3b9f259c2224d7e56ae88cc950c4dd0410906066a3e0ca4866ee4952d304d28fbae62a7f7f10c9513a1aeda637a9dc3c3ffdab51cc07e9b33de59bbdd53b3225fc86801f232682ba8b7b0f3087a80f8d74cfcfde64da51a3839df5a67355d3d8dd46f18d69c98ca0a3c9fb1f207513920b3f66dd7d474f4ef997e8e6169e4577e1f42bd9d80e212a6e6567bc5899cb254fcda946362e805284366a2b82797997e1e2bffc8142a7bf41d745b8c4eee8a958bdb9cfc0e402861d43eca280da2d772b642903ed620ac68648e9a71324c0ac1295eecf5ab16ff4c66905c2d9cdae863553eeacfda1da607c06b3a8104070e271a13eede452a39015baa9e55bede33dfb8dca2ed6e63f66a503541ec01859ac9c6fb240aa7759652228f3d3a6edae14c072ecd81d4bbceee3579da792d8e1a8c653e9e40646974ea60d7a5dbd139ab89c6941b9399fbe2aedbae0aca67f8f05fbe4ad200bd6e5859aa43da14bb8d6d9c259d28af5e504688a0be1291c636b8ded7d9a9fecb55c8bf78d1cb5fdc98b29d5303084d3d3ce700fcb529590a9b9ad2fbdcd6a13637c35134dddb4384974630a60f0d6b954e0ae89a2ec07f3ceffead308af93d4d5d8f1adcbc67906cdcd7c135d39f2fc0654bc6ed9070503215b809f03c3c278f29380f6d5c87c0afe9652e6205fdad5bd3d4cfcdfd086f6462723671b901c0119a8b4aa9934a5e41b1e719fa78f272cfe1c950ec50730f6b4f42419ff922e399a0203032c05067d74dfcea6728f7d3b851fa7edc150c55838cf6d442243d608386eea4506b8cb51f0b3942408868e04bf335875af1450c970d408a13a2754a5ad4d7eb784b5dc06884f4d9c70dafaa951ebaf068bf18ccd511a3d3cc4f9fc3426269e186549ee24c90f1636b81fa0d18f2dfde4f8ba8774a2e56c6f7ddd3ab5c3f9a3104e2b102c561aabd6721129e305bafffbbc0a874f7f3035b6eaa1d076197293ab4697f0db64cb68a832a0f084f27acf8f4261a939d68087cdd1179150afda138e3af65ada3d749c20110e8a08c8a76b0216d6d5dced0eb842be75fcbc84ebbe9f7a16b3aebd69bedd2d1b8090aeb71bae6d58e254da3bbabe7fcc757387638eb33af46e5fd8626ff427421d99fe230ccf9a7f11cc095805e7a88b02b21e7372251212d1dc12275362a3044f36c7fad0999aeb496ebbb9dba21016c658a0f65a7b7f6165ca058d2267cb47f6c84c41b8e78935a99a8123eef05266ab2cdb803dd760bb0227dfc88e75cdc03626822616552b7054cdc57a953e4ec3ee128e35e26e79e852c9e10ad0465871972b9605f5486438a85541ce1c5fa58479dbf073814df33923a5e16df95c233406836538d320c0552a8f85acd5d640e7413c28517c5adab1ff53c9356ce9675910ea03ba58a6eceadefd75caf02ac9f120f4d2e2b9ff9ebbda69165e049e6053e2a735992e083a36e360c9f9544c3069d0a7805973d19374c3b45978d868cf72e0fdf63a62ca22e26f888c6fee0027d502f037eb78487184eca4b9daa67b7bb3ea46f66cfe85bbe5a47e9e5a3064a794c73bee8d39f7d48585c0701e4a49ab989d291648c4da46f5c05c32cac2346902ad9e138217a1bdfe28354aeece54ad1922baede22da9a482a6f850e496aa6ea9525e05add3420fe9e04e292505c7539e5ea846d42486db4dd070546cdbfd78895d179ac3196a13cb03db833ca6c0710b9b9fa085165d9585177f6d998b9c8e6b009e9b447731f45f6c43e20a6b4860dfe9ccad555060a077ed641f3d92497c468a52444347d544d0cd7c63d2aa857e5ee819d38acdba6fd1ea35c239bb0550b3ac7ec5015d1d757a26b9389f5db1accfa709ae15e1f19770d63f0049edafdf716c74c35b77c6614b932d26f69bc8cec8d14d8c23658853c385515b1266bf3efded93d700c7adc3a6052108d3f5944f8b591aef805a4001b938aca491f257493090110e7f11c0bcdf9de74af73a109a704cf60fcc214ba342537d85cd5d3d1ffa0652671d3b954f41ac646e888e82a26693485577b8d35f6396d8f9dd8fd8a32268f658864130e4a69a2b8afedffa5b7cb727e19ba391ffd03a4dce421796fd1e5c3e4a42f192c9a4405ec86223eb3e7efb03069c727e72248f5a2a8a166317f6e43a1802e0b3ac4064f5e6dde2c2c9a25c9bc895035b499afb3a0347d0f221356d6894b975ec223a6936b496035cfd464c4765a5f36c3b638db6a5574bc40ef410ab028a0e2424e370b798e0d7eedeba341cc9f7e4bfa1846bf0307cc99415ea52549b7c7fd48d886c790dbad80bf71d1b8318ad8441fa48d76c183d0a093092afcd0c0d88839d6ae44d1f9ba0cad34bf0ed288b7a4269409adfa32194dca05fc0bff483fa73794575f4f19301f785d862070480ac4132d103ad6f367ed36702e1116921a520a869461a37bb5086211d44476af47f6a4058d869e9e37300ccbb88ea7417468a9764faabbcec40084154d2244eee02daa2d9d310d614edaddbc2c9ec905414811639dcb8ded7e61781c67938550327920a41a216ceacd45ee2b8a84b2f1ea7d9d9274b7c0d5ec00a0207df7e5b1b78fd4d326fffbc4e17e8f62d3ef0357b46ecf907a7004f41d93ceb3f4497ed02f908e5696f9b6073d4996c35d4db7b6eeed4702f3f35bf226762e38e9b47d0cd0f2572ad059acdcf2bcc600a72234d018fa9a0eb053f09d176389971d8c87809acf1344c65b5eb0be1e831c4875eed1d5343cd890a42f0e684c73c42525e92bf10f5932fd452f6c84f38031bac260e3af8469eeffbdfc9b91b2c04c449837a48ec7f987bee15fdf7694d3b3c9e5259d180cfa0c3352efd97d082a7bfe389c5eda7cc71bf8d8f6480bae907affdeaebafcb7dc3251af48b573a26e4af2adfb95c197bf1b535e36236a697d4486a73d50cdab6dbf7b9988334bbe6fc7de947d0e8ffc40d9628f884216506d631fe069b74ce8920b60d458cff3745334e7152399ef72a60f3848d28136e6883f953f3b683ee0daedf40665f9c1603545c9ce95724cce4a82e0f53038d4eb218bb8af11271310806efd1e949d01d8b2ae89f6d40705513467688fa9cf7289d1352fad89068254f8be28843ad6010d008327ff73f47488dc256b50fce2853bdb79e89ab85b535b30655868b80811d3f428731745291a42345db75474a3acfd28bdad82739bd9b282326edc8cb93804db25ecd14ac7bab651e3e91e012b098b6dbfcb1a16ac9848ff2b2e8cb2d34eaf934854a29346b873f3e2917a3ffeeffec362f71bdc6a236be679e11d057998c532a5aaddb05bf0f4abb8678053d038ef2ee5157cf74fb3c60d929737e8d42e5b9f81bad69ec62524551e1b900cab62ace9b90f80b8ca9e9d4871db3cc2bf69d118944276bed31cd02dc546127faf77e509806396b9ab1b1760e411ea51e101f9cc8f5f16bbf2881f7df0e02a5f68fcdad8473891b1f21319cf4639b396720ad782876df9f4b6849c9005f87e63829bcccc3ff55a710b9df3221f6c6619cd92b171dbd04c03108206e8957a1cd10a6c6b9fb10d97a5568c00a6130b96a674fe00da10f953042b93adfe9fdf47b22c7562c972ec44c4b9695c9e3cc384d0585ccd4b0ace466073829f5310bf2f4e621baef47f67008433d6403bd4f5c55c74b7ee2cc896427398f5fbd983c700f2767704f7e208c3c01d54f2565dfdbe494716b87791fa99b472ad67cf833767285f98b5bf3946cbd3d0d19b739ad951f663f35aec245ce70d3b7a99e4ee8cba2f3d31ef7218f881e2558c9f6f8ed0600c8476d58b220ca2635dce4003da63a7939c0ed27c6d2bae2d94455f94762bb875f85b548dc1c8179f6b3dd6c8ca09cb373dde30b68f049c7eea93f4a2e6ff57d5ec955ccd4fbac545626d18ba3101eb59076002ecb99e359ec9f877b98c61075107aa0ffb4f0e813c807a65312e751f4d328b9b17c06fe1dd04b6b36d69f619d52a1c03998cc74e8710c02bb0b0cfc07565a0af14a6851e28b79c9241d809242154bcb85223b811eac8a1a7fe32fb3bd8200b0b6c76f5b8b80062c7a0393c2aee1332e30f70e17a4880debe8952bbc2799b64033cbe01e840a1cc5fa0693e6944dc7d5783f9eeba348b7bbca3ef1c0192c242529f136913af439e91d05422e12886ea46b292fb43ee2732162a20c451ea5b3a590195a6889ff10d050c57170ccd32e15ba6574ca6d81fbe165a6b3f988bf988822e4623ab55f2da66d6d9cdfb105982332a81934e204a5654ad46653ec0827facc3b6f21af3e7139320a0d89640603d3172b605f437c08a1b2da2103e36678b913c98655a3385fcae00c98606a5420ef372dcb2689b171a0160b1c35d08f63c3c17c8f6e76de34cc3cc7e3dad081d6df036cdced4c9e221fe4dc18b7f38fc2f51f085240b833d59dc4f3405811b270aa67b0e0e8d5f165d4c0684868f146096519648e82bf328385602d13e2a9221d7a5441cce1548c716021edb794b5e82b5e534a20b715466c79be74c9fc0b9dbb492b6b270c3c0719031b4d521e727bd54e44bb330017cf027f39ac66903905fc884c010bbadf2b5086318e70954a5cee0dc27989d8ada428ab7a1e9a29a6d1ccd612d82c0495787d06e65afaa227ba723e558ccbdf5e8c290df9f66715b989192b6847fcb653a09c82f6801666141a99c6dcbef12c6dc4850e1dc461199b4bd909f6adce16790a315e91716ba77ad14895b11fb6d8bb7c8c1113fc6ecad0496d99aaeb1b4da950083f3bc4ef038d8de02f888119b2355ac658487625c480494fb6ede6ca90f5c1ccf0c8b24a7130cd4cc2c2fcf74ef0f52f8124eeb1422b23105e6a078e5b5de067389a9ac4bdc0646eabc36cadeaf35b4419d18550e10647a60bc2ba4f3e79e334c1357ec7ed1dfad0bf15eec9c48d8bd71ec83e557f2c340cdfd8f2ae269e34038e8185ef988a8bb1bcec67d6f156fcc06d7182c48d3a022faaaaa38b2710f4e8971677aba805e654a595fd28d0a51556694e9d7b471ed92c3dc247a316ec73e58499446d1af42eae04ec9bc992f4b2b46a123ee9953f78e38b7d5a3d9147b953a0957d6aa7215d554dce726694e3a6ddbd8dfb55a462afce8642dee739a7012d7f12d9ec7359bccdd1d8725864e2339f3780cbbc6330e536c1a9d8434153381bfaffb232281a6d1c0f64d5b7bf36934fae3f8a33817d93af3e6dd1e18b42825b679f86df1433e1ae43e09580e80c7357df9d78e39015c6e5019b552e074db6703e4476fc446a62918c2df1c60c79738c8ba0ba916f06a1be3624776eff15dda58f21ca889fa58bf5027decfbafd5a75bd46dd8b71c26d9c511634ccc88a7b660f95c6a9a7a73ca08949cce4148b719c423463d2c8fd337ecbe9a6b734d083544054b660e4239e51a8d4ca1d081c144212984bb5a46c11a96f9c574bd522d0023178c70c913c172141663b56ada069ac5b462040d9aeef2f92742866e8789f1c157bc5d8873595d3d140f1ce1863f00657cb732c30ad3c6ce1306c6012d25976a458ca840783c66532f812ea8d4104d4f12e93f9c1425af4a9a1cdf056e97b44dd462ef10157ea0f0f29e077c79d2ce7a99258ece46945b71ed0c7d89b374c0b5481d74c15f53f4414629041583bbc55e004760b0a1448bb240b3d1978bc46509351c9dd4f61e9c0db4ec4aecd824e59dcce060507dd794d8facd10c532da019e45907427e950a8093d273f10829bd880c1aa189e7a54e246c72cf4ca127b275ac4e42722c1d27c82ae4c0f0921d1b940ebda79224153718820003935c8961e28fe388978956a5051b7b728cd57159a21d90857480b5d522e2e41211e81f46038f414907a413aaf2235a3bec505e7005d10e3eb34439b2cfe0f8bf1fac6211c1403e9d5f42642f80c74fc48e3915862dc01574f30b28eb870f0077278059fb57f697317a11b99e0765a3c01c2b276adc30ccb059e04b944807845706760be422dd9d9b82664ddee4dbb7a68de669dc3cb57b17185a4d831c77edd3eb9aae90c3f7b203eabde3cfe8c485cc0d90eabf76c8b095aaa2c9576ee0be1318c900c129a12abd3f2be54bf12e05091cedb4d92d9b65e6d35f6401a6c0edd214846b0880826a0c6107e1335c82cd525b5033c52c8e96dbaec82a2bd915721ebca4eee532c5c5908a8dfb93717d60f0cd86d03e60e4de935fcc58e10ebbbabf1a42ac08f417387b0bb2e12f2b0b72f9858c941730cc4ba364e8d7b58ec70ba9865025a09b17e53770f14f764a4db6562c33f8212e460c0fa738d17eff00192c9f79d2ec67254923d18a84de2c43033c3b435b24f87353c1f1ed263c3897674700e3bf37a405412827ca2a8926037075c8dcb1aab904b182c2595c0d61b842000a1147a1298f226ee24c9e4f2461eda8e3610111ceeccae0722beddbccee470ee77ad822b8eb1d8c9dc00314f1f0a8203f7171b885ba7fd7d968c8520cb2ddd32c92faf9870718b8382a11e4f0f81002357691c4dad340cbda52ec63fc9beaec9e473a6df3843802ec8ef8868b134eaa0157238bceab1d0dd5c46156befa4b535f17f0abdce2653ff83de5c665ba458eb2bf67d99388f12548b9fa689008b2afbb792539e1a5f78d090798ce9b4518abce2aa1a9d93e29d7e2b985593da103424820bd025e845c8a13e9cc3e49d81738ef66fcaf45a879b1c5bfd2e18452437bc04c101aa98c95b1353d5c52065c30620ccd871c0aab408d1e35edfb70f35b3575d9951b7a5fe56eb999ab7b64eb8e9f5b4f75794861418a6531b08a7805eec871e759a8bf36ec295052ef7996ad59fd5439d3ff9d3a5bd86a5a6c33213e00e676cbf5c97f3103f9f5fd6930abb19f24ab17db4ec24f3c5c379cd6f36867fc8132935840397103439894de422abf27f2450ee3c5e5268a08fdef62aa33aae8d2d31b5892a11d410bc4b86374bd5c8f2f5112dc5b3e6d07384a8a64fffe18be15aa82b63196ae66020b92b1dc719ef42961b64854458492b1d5bc29fe57c2001c355ea2314e1b1ba841c7c4d2805eed9a069dbd7dd132de93aa15abf81a9674395100068121f3405a97a61cad6866523f4840af13f57cbb4a055fb1416420759813c61a53c39162c77a2e96d8df7fe4a34477c2f9fdbec46771bc423784bcb573c56f3457283d21c78cd7fbcdc6f297b47afb6c525507490ca86cbf9923341270090cdfdc632d2d258d0897ba66e9aedd9c598d46ea4a3f50ad58e5be25f0c750a7e4029fecfac4b6bdb4a3fa5cfcc83d891e0a80b23d03f8c3570ebf80bced01ad3761e167af37727cb2ddde211f86af81ccbb2005c8ff606a285aafb77baf0f62cc146bcf831a0a508d9713eee3984308800fb46dfa62816473ad623673569e7f0de83d39e0f4124faad74ed3dece63b303e4c49c748acbb7c845440ee0f533a38d6ddf0fcb91487039624f63061d818e270056a136785da4eb29632924175c0cc2cb6e06303dbd2163f74b4d47f018b1f318c7ed22770ba950e196eb636884e3594c52037df74b0d4297e58eafa7f9a73d3a34d1dc484889ee06b805b0e123ed25af9630f2613f03c2b73640d1cae10d77e8114e15b89d4638800832d612cec0934de10adcb8b03ef43e8312a5d21fd24fb51037a88cd1256b9cbabe26b3d3b8529a6c2baf06380faee626a444a6d339f290ac01db85a1bb4152cbbe9b64f0e7cc7ffc65f7ac0a13f4a058f8d65adcb8259c7e3159cdba973ac6a8f68953cce11d6e4a0a2193ac35fba4573cb07b69faceab878ca33dcdeb91b99948a154feac1313f869bec84ea3decafbf0e7711cd4df088809c3eebbee359874b1f3c5e53dc94c2e37623f73a0f56c76db9ad9b3ab0c57d6f901eb5b01e6709ca88a59efc1164a2d647533d7ffb99454dd58ba40c0bc71aafc87567019169cb3afae5946011d0dab0aa60f6a64d6c1983ba6cfd2f67a0da1cd0088c6012f6805a0643a3fb32de9c7a372c844234dfbc07065b3cd293e4b987b4af1063748752fa7da0a6d0352a0d6dc46a19081236b423e05ccce72adeac33f15f61015b660a819ebaf7e20b73ed777853f0535ea248f9929217a6a5ccc75b29995017a583a8689007efbbb644f9bdad0da1a1158cdcfb7021350a81ffd4aab2be09e36407b3bd35dabae83351b613a408c213ba4789710b250a52728150c1ef27708c6896cfa148a0f07a794a398603a757f1e35b10f6b820ba82ab4545b47af11c985290efcac955c386824fe8d32ee81b2462b88cfb6bab98e02f09548d1fd9a47342c89f02bf8732a66b3e94ed65f951bbea80ba43d94f8b77385a40c8a6aeeeef0c7adaa64180d6779f7d5a7bb8d8ac665b4d1e65eedaef97a877bcd66f232abe047e1027dd752719130ea157c873cbfe8901cf4e9892a85392fad09adb0266fa52fdfc8d3dd83eb292f826105ceceffba49e27bcd90ee501cb7b29ef861ddc9edf283def2d141beb1d689369c1ece2fc23b030c431af9bbe8fa7c31f5571c80bcab493fce6685f71540326d8ff3567434836234c52e66ce83971fa6d4a580884711a3675ada86275f2562b07dbd13c362d30019226d6d6a20359ab8d36c8cdb20de37fb0c0fe202d5d63a057a59276e06827e2a329f63453dcf53f272fed6920d77cee1799144e513f9f0058e2cacf6d3c5f3ce50cbe04274d35ba57daa891bfbf5c56a77630569e35019252b966c3b15489258eae8e4d8c6d037e3089c08564bb6ed8723f2796568be2a2c037d160a21a22402a6053d7b7e74c773422c4374698163d1dae3b73be06cd15d0634f3eda93d6cc197d95101d0d8d67dddbf7db8067430062d044459fc58547e41ebb7316d395210e51fc21fafa599a18c7ca57957557888fd5b536c729e7d313d8c73bb9f82f9a914e73b2cdcea0fcc529a4a3e6d2e6b7062d615785d55bfea80e3bb54ac3a4f07e95704cdaea839638a911863e6c8e48bbf410202fb80c8ba2a4c240f1af83cd84c9152aa64a0db4bb44a00547b36523b9b74e8e9f2a14a633015323feaaff4aa738256b7fe7269d0a20ea8d12d7cc399d7cf4d0b21b480e4203376863509817bf51055df22c8b99d51da30b948c993719246137c84c6d19e9c33b7935bc7adff76a4c8a537d9f21414aae322367e4c573176ab6479ee54ff728a2862eebfba54ed88ebc38c66a89681586b8fdc0f8fb034764df186c2b4e6e47c0a32eabcec2195269f8fe241a27d45d818cc133290ab878de9628faab5206967c70b61bd7487fab01c1439bc5f2084bbffef3a08a2094e6e631e9f0d25ea9ef0c436bbebdb6fcd8779d6ad366e1f7f7c3557dcad7112b2df6e1cee9581af565a3089917a4f3de4601f01af533c98bed0f8a297bff38298ad980d20b27b8bde3f27eadde9cc4cb7fa8abbf89d0711f6d3cbe283f1fb6c96a36dff2b761f4889fb5fbbabec9193923eb5a0871068f058b66918eacec2d5e4a81b1ae456ce3115e9fb2f5a640ccf52bb03667e5f8c80219f398d33bcfd4cee081188ccff7b1c584654d39ab1aa89d8650c2949003a1cd60f52553b02cb511a1be8b950f6fa648fcc6b484744ee826f8ab7e0bb0b7f693aec2f9cf10aaceb787699dd74b51acf0e2bd1c7841389c565484cb8949a92c76ab7cb4ea2f63e25f39a8a8e1524e72480f45c1db76f1c84a0499fb926ffe7009889c97adc45a7e417151fc4a8835ac8f625b4417c0d97af2dc3cf5ee95f279d6f6c8ad0413a520a5bf797d2a010a5a36eb2e49bbbff3659045607628f6bf1ad8f680883f240f196a98690e9eb0cd0d66d799bbf84ff7253dae49380e04a171016e658b928f442680b1d63f49a4d50978375b2e24533ba9645676bc34f2db13b5932b2c95d2b5a96eb17af3ce50b9b97a90b5dd3b14d9d345635d8171460a894d2b82a5c439c1b3cd2d61a057ee2e78b13e5d2f5937abf273460fbb5f7e0e9b968e735a0059e017caf986da11e566cc11a8e0fb413a0a285774eb70dfc3697c4f880e8f0c14dc2ea8c4a498ad49b849c73ef488d9846896ab6ae60e93b1e38aaffe5f2a103749eb3c083f74e169b004b0534cdfac0930afff061a0e6327b680dc6d07ed1a9fcf6a6f4755c9e568d720dfb8ee11667683b6372d9a55f92eaf3a7432f0e699f2fd3cc09c4a2cf7ebbb521b3426205cf4c43e0abec75944f0fad508a4f9fde0e9ab2ebf98e125d7d617525ec181560179041985dd9bcdf9b587cc9cff9706a9272d87937065864b18202057a5897672a6b7f98789a5ee0d0236e32922b8468fa1d64a757c5aea9c8651b6e94f1478ec3b5ddb4380b3113cb246311c13703a929898443306503c18cc4c2aaa0e656a5016eefac076641b8634b944d45e46199721af4eae67ad188e639393658f7ed6a5c03d245c9f17fdaccb8b6b27411aeae63dab905c7994f9d5a43708983253079694ace64580f723b7e30f76dd9ff6eaaa83562fc75033fa45e1d1d5f72dbdc7f06acd34ff1919057276c4da34d559b1755633390b4f1fd23b904cb4e77e687926dce0e3e15de996eb7f68005b4abcaeb9af9b705c7f93629a8b591004ad18e3cd10487a97f46295f6823797f7e15fb44f77c0f27e45acd0455ca2b39b5cf4b7202251bea154c6e3aa1d8256a032b2a8f46b0ba14b5cfab0a696050130b1c0a47d0aff80d328ce3be1ad14286591cbdfc79ba5a03124073a2a4773b3fa7f36a3e525af32d3069a9fbc051ec744ecd46fcd6c243ab141a4ccc36e3a8e6252db6e8042bee99f75c9b01e30881cb3745e696d359fe1e18b2062658fd9b58838083a17418fa5044481242c45f52e1a1af112f564af35eb4abc998948a478be6b082d984595c2272f5509d34ed25056d46426133c1d528cc6f62fac03d0260ac179cc967743c600d94f79423d325338bec5955c153be996248fa3d1b0b939a8eb581fc75204e4da0e939f6beb62e80400d28cc83d31356e9752adfb927672868f635084879aded55f4aae87336e0df3895a3b345dbcf88edc11f9b41c02c8c723ba914c6b8d336403ea7e8f13f945b19e1074df6e2075040b583f8adc9af541a5eb3c41f982d0d00ff41bc3e132b2df2d8a52ed495271f2b1bc788c79203aff18d584a962a9ecb200be602791c68a92fe86eae7b9992c0c47eb64d1bf8461bfdefe916e2f92027d8df0300106005bd2a9c07939272e5d1de5b908f1bca18174d3618d9fee2051f2cfbb865d7a97651c65cfb4b3cf8f29825ae9178aec06ecc543bef0ed766fbca9baf9bb89f2d4fce19ced8e098f9f61ad876878bc748fb68daeee6e2fb7c9618fdfb8ff99c1fd3a055fa44b5337b71aa30d352ead72d3e45957e0e9de1623b46286e9dee41d3e746095aac08d7944387f4c33080757c6aceda81b379966a7803713272485c580ef4010816d185ea858edb1975775521489bf6706e7a36049cdf5bcd717dbb2e6efe6609575374d5d14af57bbd429d210cc7ab449de60b9701dd8931c5709e1d0dc0484f59893a7a57b1cf27595590c482e7dde0554dbbf294beed74b0d7720ae62455cdefeb8ee44459c0e57a2bd9c05645a06beb2438e78cd9d9fef584ffbfebac5fcae04967d052f2da258491331621d579025ed6acab1f61bce820a00aa41e695c30a4b00d10ca7e1e7e4c59c45aaf4f066391345f6fa6ff55966b8bf17b886394434ea306040f35e8f49379cf12fb7530d4f576f5054f989e3c85801f739372902eb0d41053db25c3bf227ddc3d924e281033ea544ce3f8b9b7a2f03e684ad53fb5538b4f5a2bf2b5004192daf00bbb5f033674b6ccc6d8479e7e242a3bcb39702c512ec4ab83b2a12369fdb066f5f15366a39e51e78f34ec2b1f803520d094aea5202b21aa4b45114fb9e3e8b92c8023167bc9f92c4e799dea6cfcccea185b47eb2adb11fc435a8f65f1f2e863350aee5b41ac68ca64c6a81086ae91360729250b040fbf1de4fcd742ffc89f7427600706a954da26173971e6400e8ad1de1944f338182cf340373c43a79b0d191b913c68b3049080db84cb172621d403ef6e034c6b8a0f4b0d2dd43df5907468394b44aaf0175f4b1cd88d2baa01f19ee808dbdf30c9084bd2d677823a978210c5ce72fd3d5af8da5dea11fef5649d76af329b5ff1ff2017cccfe5c05d0f038917762a98cd6796c00d7bcf042343a1d0cc934d0c6ba4b576490a200d4f0e1e576e810effaf179ab5549565f2f0c5556feaba356cfcf826f8cf9eb74aebfbf9273608f0f280cf9870b80be9c62cf428be1385e9ed45e655e1a47810c82398357f735b392c16b6792f7779898d3496b46be12c155579f2219a3e7a3e921ac2ba63a5e01ec5267d66e20b35bf73368808802161f9efc5fcebe77f4a1dc517b3807c63434bd6b137c25c70cd4583a14f4cc78dd3af6c5b7e17023116292deef2ee68440bce85b9532031afaa1ee7e6c7d1e6b78cdf46bfdb8bb9b2edf121d27176eb5563a746fc9f70933edb762e439973b642502d36578128fe55fa68f6bea01764774063bd41e6df143e2dd0dc70902cb4021fcc6676694c6302458828dcf7b7d7c66a97093e65bb711792e7e6c4140a0821e4f2e62bf4542ac482b1bfd831cb9dae363f348d629c0215f9b4d6dd4181018c583884b99128f94ca68ff8b8efc2ec506a66e822a67873a3967481305165509af94413f2c4b1f3ff0ee57ed2339e34a33994df0a746e019ada9e3e5ba0804beb2754cbb3e24132426ad2f03e47414ff51967dd2b51dc682a6cd03df888290ccef888d06313591280b2c2209775188ecf1ac004befe5bc0475131302725be185ff27150af6fbaeab7d055af60afbe7f5531d5080d4bec11eea0f684fd82ef5aede1f2a270755e9176963dfb0a29d2c359ae18eb9b768cb9f3127fc4dc7da961aa23024d4c7072dfb898a36ec01ea1b2c56228cde9dcbda66b81972a5f8032215cc8e160add3a6fe75c4f4ecdc196d4d778be95058d6f9be417726c82868e57d424634acdb3fad59df29cbeadc3da6af937c81af9ae049400a71734bf3c29425d4c4a895ad1b7704672ee5698c8f49425d4071edfc0dce64303c0ae0adfc12a92d8d637c38ec580b6a8d7fc586da4676d4b76786c846ca26b9f78a58787099d5ab609400291dc5107227cda392cb122b2ecc2eb4d4acfa1c4261f5b9e76fa7b17b1ddcbd3a598a2fff017ddc74e620df66fcf04b13843fdf24ee872fa494d26d577bfcfd9acfa9c1176768338eb06633cb034ce16a4a90a0784db26ef9503abed330e65d7dbe55eef2d7afc4a226c4fca63ba52daab09ee01b554cebb49de0d0dc9a1f40cfca212f8cd9a95bed36bfbda37e0ef144f0cba2b6982b46a1ce59bc9223e31ff355c97ffba5d79b8e85ca918855a78ca598020dd30e93e447de44f428824e232a0a5b93235e3bdb2249be16c6a8e2687ddd8b29e76e0631028e94675ca827da70ceffb196a5dc3ce2609aff97b165fd963aab2bfaf1471a08ac8444046fd921a8014effcfb91e2a4e68deb4d5c404351ac2f72c6ed03225b9e98483d1f2e065e55cf1a2874576beb808e9c26869113f092c6445cdc8206c5b53431edcc22194b4e4176d7831ef38e997b5f4f453d6231af71ff964938393f03bc71e20fd8461cbb6d70c7ed67f315f243e6735db11518575609c2702166764b11d6dda8c6ed3770bb88ae7049b86914dd83f4250a3be9f43ffc08620b213c4b5c570fb855cab57979772111ec9e5e1bc2c80ff29ba87e091bd5a50b1c8cc4d58700ed7e6041295b55e6a3af0ea495b36e2ff3746b705bc87bb4749b4a4e8295c2e2515bb97a7a31e4b8e7ed81429168e2d88471b422ecf5152f0f2ae1d91aa7001ad736a54bd83b1fe57c04aba117332559f86d66e09c93452ed1e201032dfb77e198515bf10c28e1db735004143c07be938053a13daff0876069261ee6e38824b8d943889bbffd6a81b40e9be5a9d13ca8b0da3ff4f9e9fe39d7777e1e90e04595354ecdc66cabdfb50bf1927a0aedaeee5d654866fc7df084f85dbe4cc19add2c579440671f07c76d31f79dbda0992b04156f7bf0ef5d488208c64eed9975334461aae7e2348c8f5a493c88de736a4ce7730dcc0cc1cf139ab2ddf07e57af53167ef140dcb53e0723a037ae60a3ecad24fb11e0441a08039c9acd3df948528bc8469cbccc0de4e32ba7458279be067013283f93f4ea1eef8f7c372093adb3efeef4d73f6f2b303cf0702c0abf38afb921eaaa72dc13e4511646dd59d9355cd7209083a2fa539d0cea2fb55e2656a23331c5d841842325c658cb60fb1421ee5c9d8912312c3364b50a7a622e5228b18903334e776d4c68928af99dee013162deff77b42e22f2707bc352c13a31771ceeb61564bd15ffbb1af9a8bb6ed5ed218004e59f4c065f41059e3dd1d7ecae2f96524de073c9d1fd67ac70b18a94f41aaa5c5f6a34886f4fe064db8571272df93a63c2722b46a0e6aa971daba6ba49e4879342ac0328a80afcdbd372038b878e98a777892c2d0d3db259af64f92fea738502e7caca50326a2d090e49a0a7a5c4f1cc740ff045cfca778dfc53109014b0d7d52ba80d43abd0ab0c79eaee21c8a48a3b9c92a690741493aa603749c0045df6208d2245cff5519289e77fa631d7302bf3bdfcb128855ec475156b59d61b851c0338c55ee0986a639ebf2a1670923aa377798426f72f3e6c011a39c74eae7ec7dbcec339d674df826d81a29ff67b2a41cdc0ba5235ebce113ec9316e93f21f3c8fcf612bb0d9cbb535664c36cd98945d850ea233bfb2a9dd1a827dffd1c98602dbcd317d0748dbabfa9921e7a86062cddaa08cfa35cee51e3603027c225d1763baf32cead9664b73bdd1064dfa762a70de4b178ff248bec71d5c28befdc8f9eeda797f2424f8990145400e1c4c0708a7b3b4f60cc885f2ee1f960af103516cf8200a0b4e4cd6b1ac762b7b98f1dee4d6dc07754196989b4cab76d21313d6b4163c3e0c835c4401b33ea4441b059eb2e8977c6e2fac4ffbc03ffd1c78ad8859a44bac044e0d1b23b308234393b69980c94a37538dfa16bdccee7e4848b0118e4193330730a09cab32c80a2b01ea49b5e9ff5c3547161f3c166c81ad005aab6f513f7bc81e8af938189154f4fb255cf3bff26932f90a72a5e9adb7e4eda0e4bf7a39d56100eecf1e31c0e5552ad2c55b442c1d9778fddf37b21dc266b4d9084b270df78833e72fe3acb35289cdc56fef742f8bf5499eed7683589404cdad650c08dc3a1b08a4ee4a9f1310a2352655ccd1b52905286c2ee1937fa2f10362e96f90625a3f435052e280aa546147952fe3e07be68c83c6b49dbb18385bf66cd3c5760cd60c9ccf60c6adcd2d96fdaf0a8ca91d9bc7fdcf819ffa7e9ad2995d711a34197a9c41485bf2e55588c7e5dc58113b0370abeb201ff1f3e2d821b41122298bd0b3a1537d307ccd27301ca06a63e2265d003dda49cc356adb6b7d623c190ffdc6a83064f9eff96d4c083364fe2f9fff30519f0726eaf0cb850667943c9db752324221ff0888c1b099fde37b523599df75ede1e5fd8dcfa3363b008d43b9b8144e9e93208558d3e7ea75b0c24479b5e440b9a69b79660324bad5fd65cb9d7c12d09976b86d640747e93d002b35f2d5af014e9983635cb9a6240de7865d2921e16c63952b542c84666437263bb44511e5cef159ad3a99d92033efcd32a9536c566c4b9dd1957b9dc23a4a8e8c813e09aec27bee5a95dd89b33ba738fae974910d4e41c17866b2f83ad259644cda93a13967b7038153515e20ae8285489ea348e67db11ce0aa563b9320417abd17dc313633194a4da137c04c24d5add78da2e68218b5bb3ea3f597f4431731b39dc40e5a16d6009cc930d5c3021eee352019b9cabfc53aba65a0446aab3eb01919e9efdf15b05282d8f31c33a91184480310e8697f6744f0288d4565cf00c36c0ee44801f90980c40daa0eec326865c621ec824dc17acf735ea7fd397ab84b3eb87225820514f25e1f563a67c7938cbbe9612c2a5228e5459d18a69ea0cc59b435c67926cc233bfe4bf1d5bc7ac03a07e31a0ef67599e1615c142531cafd9509095c21380589b8863d28292abebf58dd95075a6e0cee96327d70bbf109c8e609e6f7f7047d71028dbbe1fd9360c1f246c197a490c5227619a6d4a7c286dbe497d098915b10ae96df2df916fd1efca49ce152d01f66d9e5ea6c8a2ded93edf5278b831712b96a33f9eed6b112c5a7b10f078b18231c353b6f5138649e5964aa4455bcb982aa2b278e6ed042a0ddea6223fc230666e33c5de48711d5650d9f480cfa89f50a7ea17304247aef1bf39d4d30bca8bef7f975f779934431b6badc46af2edcaa896f2601f75055c516600604e139292bab64a844d4b0b25c699b03d3f340af9be4a9f648b693834eceafeac9b6759ae99783ffe68c103a9f3a00cb6db315c77986a375ccc1496af19f8ea2e582e4b2d897b6f8f6afe11c0e4ac9090d5b775b18db8a126851c26f7b8c4a043ced257d53cb11d26e3d2c4f269c6e2b2f6eb48fb0d4c29d10d0403c52bbe351fff30a1bdf14226b5caa7bb51f99980dc8008ecf68666f21d25ccf280af7ac875b63ec72229cc1c9cf60599eb88d48c8f53d766b780a128ff749e1c58b2d7cae346051c17c4bfcb4503a970018279122fae01e0e523f36d41a9cc5a385ef6a133ee4e54875520418c20b6a48ecfddeb50bbc57e538042e287d90e9c6a2f42687eb38c19a8ba4361ffe1554bd1b06d10130373d98855edea46f15eb71e196d206007efc30a5782f412292dfca321ea1f275cab664a9d89b7cc44c7b2f71527570c727995572c9eea5762f29b63b851c9c968245feaefe165f390c1146b24cfc245b7db78fa9d60c9e188c3a8ad2602c2b3882220892e158df8b606bff4bc8cab9ab1a1d11e6a2fe1b14bd34451737ee4fcd7fad444796cfec7007e46dd2b2da1b6c6f0bde4a756a6164cc4a9097755ca251422bd4b8b76ab1f8f391991f176dc6643f66a9c9598c5268348c8c68ec86c3f12ad41c4be0c76600cb3b3f57aa4aef27212a9f119daa21b3677f7e704e5b3d04a73236b8336ff433681a8b874094ca99013397b7569a44c64a8c624fb5fd6296c0d1f130d51f69c95b6b79fc542348429f526a1ed953e62db436b46c1bb1b3368e3bdbbb6e2ca19066d3c6a6847aece70eb76303439746adf228f26fe34f8294bf47c9bbade7ab29ff909a6a1146a78537a10858f1a0b9a4460ea9d04e54e30214bada60c220c234d07e54c5636cc947546bb03f08ee399f633d0f3a077123ebe330f887e2afdf1639e628fd83ae7cde75dfa69cee10be01f3327b3598b948c195633536c712527ecd2174f8a0d85e1efeddd295cf95c42a11dc3eeef25a601b29b1ab6e2d19ce2ad00ff0ed8b82229a27541be319f7c7ecd0b0b1e8e9e39a22b0fea79a56a1de9cc054355a3a60579a7b82047c00a28c32b29e7335b61d79b3cfe5451d8764be38c96d320a4822bc9a59933f79fb0a7bc831c3320173748b284033d2f489d3ee184f93829573e6bb3e7681269745d277ba39f67d60a2ef85f951b58e7d29031e45686bce561d38f980594e5ecc5df8eb71ac246edea7baaa0e635ab182b8a82d425f8ca0cbcda008bcde8819d58622efc3dd7a30a4493dcde66c9fb8cb8b266df833cf5748abc8bc0cb423b56848efc56b155fbb0635c46f74764e6f3d7ca858bd157221180727a678df9ba90ced5a2602123c38e77bb9bde41e8d397767506fe6ee0a2574d242a835366f0a1d0434f45d831bec990f6d6459153b858eae72f2aad6494c382383c669e6e20db0e29f676f8d10a9f6496d8cfca2a0772bb6e29f429e8b50dfb38f8abced19576f1cafcf12497212cd666f75bc1f6d32d3684fb91f473cf81a6141a61da07bfc5e0f02630c43e63d3604c8766a78054a9db1afeada8909ae50b022b336256a84cf587dd05afd3a7b24aa7366efaf2247eb02bfe1e74de5db5d44803118fa4852655c0e82526a124d213eafa8c55ac04dfad089a87133d8b34a690929d46cd33d35c17fc37f735cdc608d206aef235b4350150a15ce0da450fd8c000de321c34e73f35d3f2275a17031c68ec62d477f0e17cdd3dfcf62365892bffbc5618fc6d615a0eb8330c11cb754ff2ade5318a7c9717ad133dfecea89bb3935037282c7631c3c2682361ba7e2ffaf681b2f7b6903b9a110c9281a9ee267d46b35489a8144df7eda380e3c71ee1632662ba46bf865544b9edc638f8f40048e53d5bcca6899e9e1c8fd65508e8db649e56a4e74ef5f99857397a7a114b1d60896d788dadf2b6524da1644794e914797d3c9253872a8afe071b688db1ad2510a6370afe6be850ccb63953b4a69d0252563676dee9ab8fdf16f85407b7af1c0fd9088f9de2903ed9b7ca5d24cf8d85bdeb26873de389408d2557feef518d4586f4d86d104b7d8ff2261c3ae7c41f7131407cc78e6de7b039f49251e6edb4e8c935d4b4070e547c62de88877cb515b26f9913a6ef8416285fbebde9a41691b7fbeee8a468fe37ba24f0705059d67679b27cc1a119ae73efb88a4f5437ebe9294ebf6d84fa0a5c89b6167cf5a4b2d7110195d655a6424987772fefc02668e376338251507364c469afc084a25a1c37facaf93fe1e856ade70e5143a3ff0753ac967621366b9da02eb01f9c2ea609cd0b9ae6e96373fe872d9920fdc2848fe61795ee1a374e53d440b121568e6bd242d083e355184677673bd2faf17ff4a6f001ba7bf5ccd48a2944e16e03e8fe03f5bf36a9fbaa6e6d6a53bf4e977040b72e102f135c7a8c81a93f0b966922166913248a38ec55a3a431c401e98f52c5183599e8d58d2e11c97c288e933891de097204a3e56daedf54a6de06f30a8b11636e1e4f167ad204e2ad1a35a55d591529725caf19335713d02999aac94219e0946e68739b16b1b3fa1117b0370b035b55394975a9819eb4b80f5001eeec61b0c7abc23a1fe13a6236921609fe495c9759b1e92785f94f8ecadbc8e129ab8b7b756d8670c98fd1d01c6f4772d046df2f3a1f84b3019dc070364157a59261b20d4a0bd0780d39c963459c3cd715415c7042a1d7ac941849105dab159c85dd3dde1af4b49a8352110ecf78e9b70e486947080fc67704a0d7d7b645d5db964076091905130512287eaaed13ee3f8b0f8f074462043b5d1902b848313aa89e5f6464bf7939aed1cffb9d0e688181619bf12400c8e5a0c6c8c7950417a23184dfc3ba902af1a1399cc9bfece23a99d62d4837abbf25c4efc0c67a6e0d98d4c17c9ccfbcd7d03fc5afe2cb8cffaa5a64e3db7bad1e037359cbcfb5fdbeb7c8e2b2fb0c2d3f1e00868a24ed1425ead0abebbb90c6bab79e314956ae8301bf54b4909933520848e378757f5f24c6a7bea658133711ca8fe5ce7386fc40410fe7484140cbf53aa36b1515e5c15e41d332894d4345e9ee14107e5345d088da0a6fed1cc9d7e75f9c93fd38b160a26dc87eb03d9d33b4785e03158ac5fde50812363a49ebdc695e0e7cfbabfa1f5fe516c1fc2ee75e45595be89bc31f602b74ec32098ffaf9c4025c6f31ac053ce1ffad0f22159bb2c0caac2a507ced148e4c96b353040a93cc08b5f63ba9cb1df44b94959c11f685699cb4d7c8178d314ea6235a8a2280b942f551576f4fb844acc4c27899d5b519ad4ae6beb2c8113e0446a8302b5b2c7c65c7dfaad29f34c819c85ae7e37624aa6c7de3630c0af87baaa83a8d0a872e9aa7be23229c04cfacc5a899c77c880491a099d13722d1914c32934c02338810249a8c02b30b45d41c6f19314778639800be7823337bbed90b196a5e711a2f8ca63392bf6acb8cc2de067f368c6f834ef81612d4bebacc1954d4bf96831c75688eae26db7abe7ec0edd0538ee6f5c5912f8f47d82607b12a9f634c4bd235656ef85a87ff6e0028e4554cdd22cc018ba9de3343a6f499d0ac91d338e86060811120ea0f188204464f6323f9c52cc4351e824361459bddfc520c7c56eb600ed7c9414840305e7bd69263572fdbaec36b58d96c9651dba4e98230e0c213bbac896d15a16c8e9d14bdb507279b5c13a333c04848628c8a0ad1936a012295be17ecbd3565283212113b318cf1a75d9141640612ea5f45eb27ff7823e72e4dca68f7203b36fac1d3d93c2518ad5ca0c9f1d74494ba9106a99a0cf973e3ea0ca3fa46b36cfb43d8f2f46ce3fb03819a542bd7e1782dcdb7ee06c95ec0a430e51642b315c3e193ca926d14c94a68991b027824997ef981d6e797a43869f94b3c6d205f25945b8a0eef3c4ab65a4ba6c85bd07b950a56303c036e1db7b0f6d2a64cc4284ca60130ec88dee3b1536b1dc2d38fcbe4026d7d7d65113f942ff5a519695ec423ebc24fb808d3727dbb9dc6fdd0f35f80bed5dbc68e445714f2ac0c11cf7e42847bd413ed7b216127ae41ce12d7ed3482ae4bcefff7269cebfdc9f2758bfd1ba157acd21fb5f904a6e3cf88de602792847ee6d6bd85db29c8677bd54453e1992ab3cbb6cb918c7a6c69e220d7fdf8b90165ecae1c06db1d1bef20a29a3caee9ab003e1088c091c75b7b9539f629d8bbe2a7e05679c4ffccd9f5567aaaa3b6f57c8011a31797fdf1fe2916d743787753ceb0af74ec11366bbd33eade5916ecdb9dc1c3951fc6c91663efef2fe112b39e1a9b2b509b9aec749c95f1173cbc68e673470cb01afe7b14e8c2bcecf89dc3cbbf69b0109d476580cf8fdd0b795a6d77752cbaac90baa212e381767b41a33f216c0df7ef89ba996f9f473303ff6f8c7fe8d30608f6f921271a4170a111a8a7a138008c0d26de6bfcfa2adc9c4aea9e7f7075556e4712388fdde529eb1cd805b77b599209d6cb1d95fc0ad2aca122aa3612624dc93c7026856e244ac8ade7843b729856fd48cf44901950ac4d1e5f1d79b033df71f26791ae0a43bb4247719de6012b669d4af79ffaf816c279993f6705b517306160af6bae862ddd4abdacfb85bf08704c4a5712a97cb1196ec243613c5064b3465d58cd855c2a0c1dd264937b22b4b88d073f0840a0b4bdfed4c34da80d180b9207670c619a951095040f997d4cec47ac16b6e2b3048008fe8cb7324d9a982ef57a97d7cd2e18eacc89d97088870ac592f794705ddf4296c0d2efd6f361af232eef8b10734f44c04a3c49ecaf34f3025e7873cbd65a15347af9ddf468ac227969cc6ae8a20e951f87acdce677ee26fba440ef04966802119db19aa3b7b60ac6387113ace8f0cba859835a8f66c97fffd8d956c06c28bc77065e3f4f5632dbf701127bf61a8217795d596f56e766169d698919c5a5e639132c75bd54e77b3d43fd71acb4bace7ca22f89c400ebdaaa8f645f8d0f359cc5aa663e26b7d9b5311f3fbb4914a9b40ccb1bab457ccdfb3ae789ad03c8dc20d15d611765653ce95cf0e328167a4acc4e815fd7dcedf1503e047826078480b46483c03023c8924061f0c2acc468802105e88d7ff7b528674955b85b70096c53a8cc26146461bb6d042bb50a84dfe38a2c10e8afafba54db19ac1f913b5ad5e120f103f3ea1b50987307607863e68b2b97a3182782c88e34eb1787c075a97e3dd1128afbdff30d1791323c0860092c32e4302f1ecb197d29c0d1bbb4e18c30dd76a5828c4131f09dac906a7751b5221f5ac72abc37238f432d758d807fa311abd037882a81867cd646567c43b3fba319499fa4e431978a2a6ad42f551722e2dc958752fd54bf274b5adfebfb8bdd72299c18ee407950292691d64a967d2944449fd3487446c68c6799e3cb0240c04e9bf31e77b299b2646b92fae73f5d4abfa0e16c0404e42fc57ace4599f8246c58652c815795720ea50b2d8316ec4138d9b85ddc272a014486ca9633ab036a83e4008b86c8ecee02ed10e88aaced08f1d4f711f5bb56f303ade6ab11f0d8615319c800bb59c14dae6e0d39dd8fd8a2d96590fbf363f036711ee77992b0aa2948b54501cb5f3d2d258e535edab4f51359cb48d320218c38f69011e99b225e3ce8b98781a07adfcce74f347413ea627d2e982960227bad70058a857645ed003916e420b883f1bac9a38ba9ed49d8951968620fa4cdabd3b1898795f6220277e4fb0e2b0c06387c74424a5ebd8677ebaf38fd158417b67d9b7c7974c2bf408ab9fddc2bf6bb0b68aa0be28b9f132a507c291510ba84133efc3b3f13e107232e4bbf341950ab0f287c4296bddb8c9ecc4c06ec56f5b3cb87fa6b48f91923149b601512ced71a18d908dc7baec3935615f0cd9d12ec59f7c02cb1a8041e8fb00237335f104462e1d3a19ee84f175976185ab5ad8026b6495e424ab34387ecec40e37d3d7728671e5624bacbef3e1d5c61404ee9c0960352ba9a72b637071ad8d3817ef95bb014e2e2d4b9ef165e51345f66526d6aeceae3ea3ccffbafc1346d1850111eadad9147d6603d25e625ffd91247ce869cc74ec455311d501d06d61b2ff88441b26077cec34a3bbe9be1de119a5deb258b323687d6c765f69c6b826dd9961698029d6e41c321d3abd62669b4d678376996e40280667012630d8e32db9bee713716466f276d0a9abdcf47250d3d648ff67b7463e2b4d3c5fdf8d1162dba798fd41112a70ba04431213efedf6236c6cecc7c041956823b2ddb7c618b4e1bc96052f796b8813b32848f25c78b25fae13393e3653100de4750c20a2029d228e27c154aec24a304c5d44d41228fe62e8c654038832f991889bfb24e58f70da83369c1be8a282105c286f10f505a7664af1cb2fe5a8be0104bc7c6085b27fc005cf89b628ccdd89899506d7fb8c96b4506480a51212030863764fd61a100b2eb2a6449744d862baaaf29264fc2e6d3b0fd371b7a3e2fa847fe95d9ada84054137911ffadeb337e31f536b7fe4cfec0a715616d2f71e1bbed63c0952649ea6a4830a66eb701bb8659b0f4a710148330392e942a6c6de17861a1686e21c1fcde94fae4c68fa25dcdcda41f1ee1fe5c44018eda398f2d132f6062549de087e319974c0717d8fb8ee8c9a47df9fcee7660fdaa5c577cfb9d992df9b8383196668691ca6ed848d0f94a339471338d102ca6d2cbaacba09ea94f5b7acaf5da736b542a56bf3e5e63b20021ba5e155dee1046cedb8fec9e0cf455655112ddc657facfaed3c01f89d9f3d8ccb8ed895169edeeebc8fba157565b58d0788ed6f738aa6f1e1eba0eb3972e3345c71b48e3f4ae9a1dd1281f980be726b515131024ad001fc4e6fb8daba419c432b8164a7b16b6c22e77b6db1f180017999b253d63b7f354175626a62546a1c8c8d341ff913781fadc9e57de17b6458846575a728d9fcb3fa4b82866800a1289265c786af755fb4d8a2d18b7175b7af8bd465631c135b9d3c29308aeecd6fccd3bbb7dd98100032278aa2d4bff4dc9fe423d49eca30e9413256f43014aaaee0b3d8494bd804b01e78cb21126c73c78fb80d185e84b3a374781cf794ab430ee2be350330eca9b77aa5fcf9223df9837330b809af9917bcad7f0487df0094941744d9318a7aa5d28ad5fa3c43e321aedae9bd85d537f71bfd1f509789b78916097d54616a95d4b1724b23dcd49826f84e8f91ed873075daccc8373c2cdf4cc045bda9e77769387a9fc00a33b8e372a802ae1fa53bbcfdc873f61331e1a195917a64d55a8588834402918d7c34f93116cf221b9781895be897d76754332e99ded88c91153542999d1a4452577086b03283b8d1b172abd7f0604cb5269fbe22cfccaf31b7adbc4c05d13cbf497adf64fc81d1bf622c399bcb7aa91d4fa3e088dd03bb20a35ebff171219af339e1d6ed09b1365b215db0d118e8e81518615d515bc34fa181d461ddc995928af5dcbf5e05b765b6e6e06c1ba8a432e0f0cc6580ea8e26edbb9d10c96a90d4cfab065dbd2b8af8aeaf6dc7b70318e70fe86ee4c1021fd1b5013f9a26a466b59270a1bdaccf4e0053fd4fad6ee457951836b316d670a75456c53736d83c4b39f5bc724bded5856d0a5437c3a9b93a87cbb6cacfecd26d56bac016b86bec083e6bec2a8b08378bdfdabf12655d243acdb2641b07e51db0d41c6b9e60ecdf8c529dbf5d51d1826475cd49fd145a7c25f46be34094b818dba54587f9fe9a3541050ada0a6e4f59df7917843a2b5f4da4ce7ff99c3ab6de1038da96ff53608537b30f44b61086f1ff04280643d9cfd488fcb71178668e60ff4aab5f89e99956232280ea10678294bfec25e8e0d13b83f2199eb7b13da1e1069ea66ed5cff5a4246ffe1c3138921e1b9fba465c28058340c0a32001e66e78b0cc3891fcf26d62621c2f0e5b7e608371bf3fc1b7384d2dd4c26d9fc522859174d3785c76fa17f2744731585941a34732a18600fdaafa90a351e03167acc76cd1f66ba6ade46aaea052ef7765336c04dcf9792a99e31aef9bebd4f246e37a9db1060e0aa5d0cf63e08a944aa0d21be84a64cb6dc9721940d44ad6a63fc00a8a22388f67aba7cfd1bf94dc951a116d34578fb77b175548ad8fb4d931b62422f05a0f66602099f32c06aa00816dc50dbec331ad08e616fc171057b01f3aec485f111469dd489a7a9e30f2bd1ae365be707c1d4c4d0d2d0f8e389fd61db661e9b9224a2188335c5ac3bc7f4fd02ed001c6240cc3888714f8daffaf5a7e30fa4fb788a8eb51ad699e2b43bc3df7b51ffc54f6fe0b7a2d0bbef6b265ceb71b77f264a0084deb455f1cdb614d944768d43d3eef4be8e78273008f078f9ce236d20da0c047114c646fa0cc76bc665c28ccdebf50b2c6199335f589fe45a43ffe94749e20956b316ba4296b2a6b8b37c4d07aa26d10ef5eddaeba7a9692b0afab7d39660e265398ed928917ca9e1bbb7dbc57ccc894688651039a2d4ec13d38c793bc5475cac444f36dbfa772ac963123773bb0838410665ce1de2177170184470e8397b41b673c4dafb2e10a907dc4b74d3ed91cf14057040bba0858cfd26142ad2cb3c53f4c4cfac585040e78db06ac6634647ef737b715363c481f86ed422d69cbffb27a31829b7c953f26107769a6541f835c6229665f15d77da585f1bcad99dc285e08aab2f8095e37979457c7db0977fbe3c9854bff9cfaf5ff93bd0afaf524ac96f817f394fdea8578f8dfdbf7adffa6b88a8bcdbed35432e332fa8ac910bb6080073320537a2b36c0a801c6951850f2432ea75b7fc3f26cd578273ed5319eeb49ac22582a7180491db6ef8b48f22261531e82e4b65a010d31ee184ce8ae514833d8dd7feacd1e35a26f4a9233be0a0707bedf5ffc503533f7170e7e80261748e41f98bb10c86b603fb8f229334e270f10429245a460f131729a01c3fe3d8c0e134981f7abc94da90da193fe946309363fe2e1126d671a0ea81d5cac67c5a2917a760163519e88df681278a6607e074e633ebac83b4029049d5df3f0b362241d216ce9f220dc9f47da8d711a301de5bd7710d36be8677202661021e8b02635d2eea5c3dad9b8661ad3526c3598efd3fb2286d2851abfcb2b0b8cc81371ad9224943a9018ffbc58043770cc3721bd841885db18a435fbb0553a5655944cac9f59c0c4bae90b0713a7b68cd645cf02343356117ed85598c78bc90718af710fa60ea8cc0652b810ca16fa6f36e63a895c0455d8cb365c5e2b8c092eea5005091cb3db6b849a4d28645a9b962c8739750053050c27570bcb3c49e813ad83d3b3220a6e255ccb0a10f5f0f05a0bf81595477ebe56edd933f3c26ae39c0afd8f2be7ac6a2c66349975b349a87c73ee58ec87f809d9c4ddf0ac12caca9bda92a63c09849c920ee99033254930112f7f21c0abc451eebc87f41495f7524fb2bc9b0dad51a419fd410d8f2bc9f326a1a80da64efede686882e4c077b377ee6e1bfd6367295fa0545751e3cc1664a57fcab257d95228dfca79c6308976ae6effefe166c6f19c66238b7c6d156fd333f429a64c5a8370e4cb9f7c5144e9e8ed4ca0fb00d3e526a1cafe4e2a2d8a1f31506c155dd7e6b446a4285222d66c676ae437364489171618b919fef7cc0f2c063720efee5ae4ebab62ce97cf78915bb2efe2e870f0e779c9d106196e911c2d5d81359b6f0d7b9328364d50d4d79e5ab51e7496822d904eca3c357d1d46bfc107237f431c42be8fa9a6e6ecf45010a0a15de23d64a59bc3df2dd95a2a287fde9d0c36ac5a7c51594b44e01925ce13207797c73a2e066ad28a616949724bd4871f59769c2419ed7bf89f029baaa40a6afa4fe1b50fd9af2480ae1f6cb0c1aa5c2317c0d64776e264e9901b380f5e0d5b319392a5c510f14ac60e7ca651dfe3f05ba478a17c279081dfe37bb9b38f66a0d3935f5ec1e20e43f4f0c2e0eafdd2f77de165df9407edad359277f415ee130a595575b3601bb44e4a77", + "0x1fde61412d2eacb9a85a6eb41fb2e0333a11f6fb239909bc44d0ce7b225c0dc306c82870621837c92be9bbec2f8322e27fd68141705b038f3efcb66f1bedbe45c3366292a3604154b13b8734d5c0b122c103db5ac2eb7e4ddd90b1c9a697f3da31ebecb6ec42599354e171fabbde487bc34af8a5b855666335115b38e04cea739a6cf58c9db2666bc25644728e7018b9fb968f0a94eed6fa2fb37f95279a4bf341e3b476fb623d4fbca4bea97fa6015a1410d819bc65fb1d0566c7709e6d3fc4dac24092ae5f37c1984e6e32c3d9f3ee6cec99823b65e766c8286c38aceac6bf0d45b5fb42355a97c090e3dd1429bfb2971376c73dc216c6dab0f4b87d4eccbef6b344eba6a9c83231efdf9a2f25eee8da908f38963d729a74602d127fe49ad3a884f558af048371fd1358fb548d78b8b1d5006d3cd4fb0f218dd90ce70ab109a541197f96e8b73fc9fd624cc91b611e49ccc6dbc99f847c4116d7f12a471eb76745c6eb76ba2754507e70725762904406ba0bbffa460e3c884baea0846adfdedb44ded0cf9a5cd1de0861edcbb67e01fff1fb1f32feb9607c23c8a874c6eadfe1a96be906eeb83bd5d05881762f7f857d578ec4f8176764fac1c4953e71deb0cdbd5f9ae2749e722b386802aeafbd4280b0eabb742563ecb14eac74689a8234e9a3fbeb11f52f21ea8d63aa4b0442ed3ac85771f6a6cd99a51bf4d43def91c7f1236e98a1716f69b01c84312b108a089161db806f4c91d3ae1b922d4d0f7a04954470b387f3ba622d89ac9bae088dd8a1f9f503f7c51471f6a8989beb1006defab5ea5d1be2e962a7806a4d3ac239b4385a24b04524052f7f9b1465ae15259e3a0cee8f9aeb8cef78b70f85b80cc2a759fc10ec3ac9dbe19baf2788f0ee3e0adfc98742a37d12a38f377cc51520450dba3a9ff356e8016c723c99e352d2c8ea6c3a3e2abbcdd147ebfe7319c218ab4245543a3e4197b3977f3a5733361e0c78d41c3dc2c9713ee924ee99573584c3eb9a3e129e446e0417139aa130432e51ba011e7d9f9a88c6a1e2066ab866fdf83f8c4830facdb8a716d1e9d9a2e53fe0bf4e2370e25e721d7a63facc2053d92bbba08c8d18ef355e02304d3113cb668aa70d65fc242919f5c4f9071f7d7ce38529913395a8df682b54fdc2ae226791ace20359d07173c967008a2bc469672a596ece86bca17879b489d6bb4737719ddebde76c59a9999a946c0f9ca32f1ddc5b96fad21a15b8a46aa5af000552657cc033e690e73759673035159a24ccab32d3bd6c1a2bc4413d63f351e96d65006897492292c7275a560d423f8e8655a3707f13ad97212ad93bff23d6e2b370c726adb92e455e69a2f2da80c177ae8d98ed5ac9fc0f7f28ea5fc4302f4658f98060a37b94808ea21ed4a0c0e7aac3dea5327e14cdf5cb3203e009ea9e7e463ab6022dcf4fe7f3f51dd8b5058cdf354ee726bb75455ba5a855aa5a7e3c809c8439b5dfc95183bcf9d5e93593a38f062cfe4bc164c0b485083635afc6748e9bdb9c5e0f0dfe2f2b85dd5a38c5b2a56f65900add1f4c6bf3c8a1dfe0a486527bcab6b8e534afd40c13b1cb483d527b416bc60ea4d22b3ffff0b5e1f84b054219d021f527c6316faa3632a4e4d0b027928dceb4207e557a3cfc32cd3cdc5955be81be715cdc43ee0108231cff1f0f1e988757854e0df3f29c31ff9d1a573e0e75b32f7d429e1cdc4f7badd3cdb7441ccab718c2f9c8e5ddda57a65a569144cea9895c2bce8ae2d8334fdcfb5f2c39699e29490254ee3e715a9dd6441b744d7d0f55ef391a0533e5f99b1f0fc2a16a63832727dfcf83c256ad9ce199d28f1180027fd8040222a07cd215cc19b0d36b5feb8475b015a86fee21a23be3e1bd9dfee399c98a559e2d8003c3999218c960d68531f658237ff16008ba01d7b250cf7a27deba81d910d3f05b3e24c3f10683e4ffeff422e9912c82979a6fc8a61bdcb60cfa667b85dfff79749d6dc02344a117e63bbcacf5ecb6839b2f69a8d76ecbeb3f1fcd19b23b10cc86b957f388569d8d818320e5028b59775869f395c8fcf84fdaa6b053296ddcc6e5e82a31474fec62cadbf31776a096a14af3b9fe678292ed7c7918c94a002b74602e146403831871c93d900a252d1d9caea2884f05f41cc97fa6d027b6ff3bd21983a3c3b1883e5d032e5428f2d15748fbbfd3341ce4f0576f3ae69f2d3e3b6e9f264c9d04108ff6c66720bf1148dc91b7c92f6b17d3b74652722e68a2d9d0ce48d0e8acbbced2e478c7d84b0a00fd0056f2d71f6d19f28f71debf529d8c92ae2934320556aae0a63638e6d6c15e3b1d006628e1b62775e29ce4747175179006218d4a88e8b127e16adab7602ac7cd9f7b58261fa7eae65725576cca0607c8e8cec434f01a7228fc2cf23d5e5f1f1f7693f6f63bfe3a427b08838a1cdb62b02a7b615a678dabfa12866d6b4546c84d94ae99622ce163599f052df5b3f658b0df369906b1287ac431f5fbbc29040fac977e0758a833f44d859772994ebbd1a5a3c2c8e9e11a8a46e4ccc1ad68daf74239f01a6bebd74117530c69a51093f260b5031497a8820d511444ab3f663ce24990c7ee5105f63f02da35a20b8955fa25e1112508260bc44a385444765930eeb024928563baac8b2e2d6c7304c6988e2d3b28d61956fa8bacd1bec3dc284d3b9ad1d8f520f4cddc0e88dcf88979608524aa0212090874a2833bd4a8fe56e711dc77bb54aac1885aea845e54db2ddd72ab41725dfd66f3eef1c8d5e4eefe3ec7838060f447e822ae5ea34994fb892dc7d76c324c7c123d74ac330d0abfe0c0b54c2fe20ee1032410d91e050432a65314b0e8489af3c64b477e5af3630d7eacf22bc5a3a1873794f61f154c658b70d028b38e7ac23296f93ac44f002d7246b182c5723810ea6d307dc8fc5fb65421970751ef9eb1ecaf67c5f0b7fe4f12d454aff51a4621e029b61abf6ba3b6a1bf4a6a6ebcdca53bba66820778fc43103834c74be50d0be5e6a8b8c32d5750c9b5f766e20319601bba611c24b4329b1657720388a08490950933cde9aa736be775bb06fb39238deb8b8d53f31d7fced255e58423f524a3336004a9189ed8725a2e0c17fa1368b3efeb5e51379348a87315d55bc767e598263350c58b1b4d02458e924391323501d00e8974440ce97230c05c55d22bfcc876e54c8053e709c9109ac7926b9cd70e1aca064885daf6b7c165c1d9d8c55a4d5325d760d31bc8a9e58fc8b3a4081f07bc4cf065f73607efe4a74f7f1f7e0bba8fac1aac42208e8634dc12284df90fb08c671f9dac20c4f3d976921520a3dad61f9162d22cefb4f32f1e1a38eaa5ce7cc165e4ce4a8b6f7ce7ddf4d40c9cf5ca9d2573faf2acdf424e3ceacdf3b50c2977754da089dd2d13d5df200f45cb69b5c9690fbd458edff3cd8847c556cb835d2ea0c248b9bfb1457163ad34e040ad60040b8cf4af0ebe9e29f6fefcf3dc46844b53f87d393a23d80d30ed442a3d9b9ad3f4915e0a7767d7a75b58791f61f44296787abb01245cc9fdf9f0c420838ebd627172b006b4af60cdc9dc3322481308bb1e52ea19e1d3df1a7f0e2bf57a8322fed9aea8a87cab41e7eee2c8b9c624b8c9b187bb2071d44742b37e4490246c879ad7959ac5c897f5838b930f94f034ceb6c383dec6cdd284d5fce47a0bda1ff04b3318eb8b97c9fbf5f657cdd922f432d864909a529904993a81d10735e2902bcc3637f8f9056082d4b3e4219f3ea3a46d0cfd381c1d8dcf5881901411d331f2fb9caeee62b5b2c37b1452fd74b35cc91411a71b1498db061dc6d87c55c4b4855a12bc23ef81b6f389eff4edd85984ec52b1e8513add14b2fb1c2b6bec518ed58f4526a31989d2476164e9d7c01d68f70fac30fc2342a20966e4f44d756ee66ee487e5c33280dfb8abaf81b414795b6c1669c4d47bdd3f0c57a8c7b4c105e1e9c7fd0fc0dd5a4b9cd10f0b4c30bed70a98b16ec27d152403ccce377d586f68194b5feb7e92419b1683b99af867326b4aa9f81c707d7e1a3545543457f5b0e3fda64846fa1cd8c5b634dcd4e47bf88009c233ad825f09ac554998e9100691825eb11a7bea1ad41f3f9ab6dfe527cb4ba43e436e2c1c82ae06df39814a2d7909f86b6bbeae81e3d4bd32bbf40395875d27ddea148c445ed5731504512ac128476376069bb918e3269cb9c44101e887b578435a277b77db1da97dea4a6a4e379e30997dbd23fa64ed38b45a0cb3b4cd4f217a45212eeb6d30c6ab15c09f10674c393c49716918870ff8e90549cd81fc7ed86c8dd24ee97e119ab8ffc8ee7cc759d2ef7871c1b519f26de4b418d54b249b116a78ba07507bbb83c2a0e472b8a75960e3f3eeede81514737330de4a055ccf93a87a61cd11327cad6aaba0861e5967c66f49eee21d6453792aa0ddc0112c1093be8ef390b1822fda54d95cbcbdc1084e8c115f1f94f29371e01e987fc9c884d8281e9d6dca5bb104aa477bcad8bee0f05add8e20e11bc3ed305f558dfa1ced47c7796cd08a0921039ae38fe565575b6099b7d9e96a5d71f0f95f8d6a64a4ce765fe2b99032d4cf38d3e660038ebebdc23135ba34ec5d7c08df3024993b1672191721586d98eef4220c64ca49342644e0aa159b7ff74383ecc8c6a910a9dffbc0fcaf0fe9a5b480357ee3d67c67613766b4730cdc6d5c1fc75fe00f16496e29c57d72268fd839a90e640f9f97ef5624f9a1853e0f07111bca94fa8789ae4a7d3bf0fdf53ec2270a818270c2dbc6439f0ae6ede351d02e216c19557ba1da02e48c0c72d23b88ec71559b3a8b8b9ccd3cca9e9bddbea87c9ee9e706cf35c7e41b926de1c3646439b6eefa280f3352e5aa14073b524ac2a1cf3eb722e632e288691e144ad42524d1292bea6adfdc7f7913f7023613ed265c35d68aeb13888a2c6387e41df46aaaa68df83ea019cfeef832389744718a3007e993221970e996dcdc07265bb71a6a4b9710cae5eb751ea5cc5b6f8de2f80f728bbb862c3f09cc6f3fd306356d65efad663de7f1ddf0c1b466c058561c804706c86b82d460816b51d44d134c548356288556f34071503d4678cac54482112f3ea60f24627681a21bd025c376ed52d1de47e0cf51eaf12e22738b4b2e0d7a746b2333414db37a160226f8ed19afa6256eafd85ff2548fe24d53f626790bcf94cdce9deec8896e600c6ec34d119bf72cea1ec60e9c158adb6d9e7eb20c5d6164f861730768a5398d2068aa032879a0542c848d47e099ae51f8fcf1f1d10c958b8a8f5fabd1e5309cdde56e1421b8bb1f72cbeefde4f92fae37d7770cc469150434827fbd854baa0346259de84f373ca14bb8c724f19ce2101da0e5ca900100a00cc6d065b108982b3ae696cac07adf05da7d66350933cdcae2b7011ac91ecb823a966a8d132830efc2c48c6bf10b26085eb046ae9b95ffe37e10e28fa1acdea1e8c8ab65f17bb7212ca2fb601909957c166a8c903d613f95e5fd4edf42a210498dd3d4e01ac7ea06ef26739f022522c76ebd72df765a82cf1bdcf564aa57789a80a13a35ff512dd56ca741067299d1617dceab269fef5eb41975429b1a665608e3365c5ed15d983b79f520d41fce3b5ad22d62f0c969931a7d50e9a71bf620d9d359aa9cbc2743d9b4e8262e40b6e6d1954e2450c39e840c0c5788ce0b9d1eaaf7bbbdf1286e9fc5b7a70b9b9b261d7ef631845a1c361d49077446fb3f2c5ceb4e5e0da40faa92050cfc4e8937a63429e8a19ea747d3c6c24c1e063bb413345e5c29f4c15f6e0817f83ae5c68e7b003032950ed5c5b64e1f4af391404c3a109c9bf3f996729f166c198ddb075af88605ce960a0562a8673bbfcd25e1a36d89904770e138907470e8ce9ed264e845ecae954a8b5c7e3c23a45002da986fcb89f970c0f1fc8375d164730346da0734ec444269638270c62c1ceaabc1026dc6a1ec64a04ffe40e63d2c68d555c87dcc2a74bacd2226ee89c81af1310063e3a85151636bff9d96527282ef5c2f720fad1901b16d777789fd994a4772b51fb4b6a361a56f56fdf42ba019d7c740821a6a2e40935780ac3d30fc091d396342fb50152eb44c378341aba19af23b1b82bd7bac9ac70f307e0ba447ea93f059f93fbd771b0f56725dbb68232266ce45629077530d3ce76ca9a52fb93331b2cd1735722360223408f8ef5bdec2c0294bf8ec98d8ac4425176f2db9cd6020247091090c93878d3dda88bf35e1fee6ecfa7bc7d9301aca1e7e14ffdbce9f45ccce02494a3df2b94289837146144fcd0c2f08171e5713c89416638ecbfc5320c340284cb94f53c1c5e026d96197a102c3641ece3368e41bf4752753053a927df0e16539e9bd31a4d831ef897355d50ad31f2163a9a4eea250afb3c5a35da7fa3bf53f9554f36ad01b6e211cb52d4089305edae8bc2627a935305b6b645990575b0ae0625858abf796a84381b85e2b3b5059f5b6e5e098a7a524f9f2b2308099286f96d4dfc4fa3566dfa168b87351c2ad7181a2bac7e052e33a69614b565ffda9c7548ca5ed2d887596c9b3e0d0643f506874c636e0aff9dd580d4e456645ba3523306c2cd37092c4d810fb801f87bc57f925dc9e494c335b76492f9a5a02945b88e3f6d13bc3b6ecaa0b225b47d567dd81d023894010de375808b778489a3d7ebc4c409c4c7a7be3d616fc7f56d99db09a16ddc986e96d5a5a353ff76cc18b46ffed6da566bb41333ed0006cb514c4ba787a4f4692d88a30cf4346f7cf63775a8d6cc74689034c248d9d1056497bf31373e462f06273ffd1bca6fb4b0c1ff001011457659ba214903e2349e2b2f672124622c86ce664f722e958dc75dcc67ea312511a82283af4585dcde9aaabe201df8962b1255ee78d8f37555f85e3e1b742ce38c26f504418c0554b4851a190f2575aba1acc5250ac3a541fb2f6c9297e6a0efc03d0e28bc9137610d50811c4144d5da1a2893e8338ba893a85982e0d152df07a79bae1ae027073d32fced236705e2b73f2643d7a93ba67b1e8cf1b2f0324ffae112ff1a2568b640f4cbc7714cf079ff0b69ac1c36723928f38cba9e7c4990b3c11368b2e27ca2982a5311b7f18a3b4bd28ed7fffc797a967197636bf4e47f8e8a2cf2a6e2b1227b184b78a097b6b75e1242c86659d6bbfcd844024f55f4f501ef81402514618896353dd743d67cbde4ad577b43c666830dbe50a61fca461216bf92c3a1bad220d22017a63175a7fd646e9ff9f6444fb12ad45c90efba92f690187f62de45d7967bd7705a2887757030a5e413cce5ba69ee587af874c9d9d6037498a8a16e6fef1c91ffcd4f4f4a1d12fd70486ff80cf1327b7f89ffee158120711f6c2f278ab411b757ef3b35388012f879fd1923746b49e619b775472bef58fc8d3ce0c56e49e4fab9e88936be9dceca7384cb3001b4e76057d6644123bba91f39dbdcb7fe92145620e9e54457a992a8315b6a4f9a1b3608df68df9518f0af2bfe342eac1d3619e6a1e762bc5377b100b2e5a3bcaba3c11ddbb625260a1d23ea6be01fa07dd39439a424740257302ac028ccd62e3b716c26d781260adc67d239a2b08de03ed25dfb08b7f2f4003d06cb6360f960d7fb9b2fab200ec5cafb6f1ca299d4d24a41c604cc9b28bab64f1a544ad376947bd519f3dcab6ee885d6d21f4c03e53db5e9a7aed453a57a2d2f50f76310501f4475151bb1c8b1754d24acb3d516fd034ebc5240c4fb98bbfa28446266538965905a010a0adf348cc5a452eadcebbf7bcea34183cfb2d95886d2c4b3cfce2f76ff61828acd8f0199da6bb2c25ca36d1b61adb5761e0f1d5c7cdc90233858006ff3b186c30e73c53921258cbf6697eb8a2fc1ca3f4ab121fb7c033b2318aef370d31e0b01a98f576ead000b501b445dc1499d30458cfb63dfaf0d288b48c27169ef4844e12ed443479d944b864cb43c1db564c443bb2d66b69766813c59dd6bec0fcdea2a4ce26f499cb0847be035ebf7620f573101d6fd9abd48fc9c294e762ee8cbe8e8159c950f22bb2f8fcebdb81dc51726390cd752da2427781bb2650c7b8293bf7c7e62d9704a8b204c0b276879128512c4f6745fea084e0f853606cc8c86383466221a14c924920cb47861fa40eb066aa6032ea5a7be3bb4c40449bd12c9402e772ba58a5cec3fa4df6d16a80776430fa0c5ab5415d0a96834c90c665f7630bcdd08e050c6144d9b15f7ba816a1053901959dc02776d5a005f5eafd992d3977ec934f71a23772ffc2ea80d337685499e506a59876735b561e8ffb539605e3d3beb1ff4eb72984436d019cad0658b42991226c1809cbbb947e012fba1a751fcabfa9d83d536a99c244d1c88d7ba0ebde354e759cb3d57b98b80c2baef80fd460f141689eb1cabd1bfe9bd5a2e05c7b19c49ab618b6b97c6ac623322a933614a25953f941becc43cdf4975bad562a4a6475d872484c25d42d83d4f96f67944ef080a6992c9e855e5ba660c37e510e9b3c43bb702322d9113930c0b5f381ee3b0bf2df4e9a2850251a34f736dd18ad8a026d0f4200d802bc0df02359e30242695dc27c4c38654f6bd0e652a3c646d08c1ef6fd8c4f82670c104bf150849f3277ac05df3c0b15c114eca5812b6f4c3da4bd266189a82a5e3858af7638e824c968af526aefcb2920d4ab7f58afc1ecdb4e43072924f34b9acd15ea974a47ec819b5f49b0fd9b4a17797527b4479bbf2c60b5e9cf7ad858c6edc4b19691a56bab421209ad39d451433b8b7249da74b10f44f3dedea04633ee72e41d6b1746a5148089b713f756cdc5aa75db0527b080da637f3e82e1c0b6b946f329ac98d5b40b7435feaa814080a730c3fffff04740bfa7fe252eef692e77763a35087c2445acdece8ab95208e20a493122f82435d9824e57f052b331daf5cd50864d10be1b7e2c4e8c82d7259d2ee1eea9681f7587839585c421b05470300354c30253a98b63080339d2da130f40836a9e26743f5a0febd10761266799c7bc8a7a8fc125ffd7cc394b9ae31dcbfd390a3092d9a3b40aa511e550717a704cfd8199f4f644737e6e6d7e9e1abb182a563e2f57197bcde67500cc9f4a87085bbdbff51418d8fbffb97d1431895a70cd7f9b94bd285032e8198ef06ee82be384bed3c68d50463b3affc252ffc26c0349bd0bf789caa842bdf630c86627f97b0be1e6291fe287edbd832101ee4c2732395ab1176e5cdfb064a7eb8fdb32febc6a86e89da488af5f9d5670ed0553f61428d8c95609b2910464aeb8c4015dfe88b3ca20869d3422f28a5fa069707fd1f40f53ba3a791f831a4ec87caa3219c132b69e3dae455edb9c47c311ca8304b1d0ad0372ee7915b2a1999875c9404a3803fd0ce8bf3d73e26761f76ee7df2b30dca3c97abe16f14b9cc7aa576bdc56cdb996338ecac32064f0411f36a09afc02fd6be7629feae01be5d901f42008b60103b1bc55c37b7cb8e98c8cd2547cca444f1a5aa6a4f0010ca519b04a3a9de5b30603e01902c84dfd97ce7cc9694cc0cda0ef76e18ae41552de2d316552e0fcc5db0737efc3b1f9d1547a6e06c72db7adf2bbb8e12d3375ebe1818030c1254d970e09eee6a761d3300e39a7c45d0beda2fd10e71c117b1e1ed8fb25d42886c2be21f91bb23128d357c687c5ec9b146ce3aa440132da9c05cf3d03b3b0e8a2f6b7071e4b554a16f63013a677fef74935d89943975ad45b04a061d76945ab7a27c1a98b7c53be25c8b09cd4b1c7681980799c337a1e6c8e0ef2e63509bad94d84fc646e3097bdf1da2fa1e3fd3bee0aa1d33ae6ee2eb4de8b1a4551f6ae2493820389253de75aff2ada7311beb7087d69dc2d1bcc09e31af9544a173f43fdfb2c7fdc2d7fe40f96b5edf8387ddc3c711229e4922ee8d315333c93c72ef51c899e0416dcab643828c1a72850a6fc9368044502f1ac8782170de114da6e1ffcae1b6964e7d07d934b9a6e92363dbe19500e62dd6e359091dd14e69535ee595c8a7bfde5c34abdc641c7fbd8d37235617ddddaff5dffb3c82ba66232b608f3bf24d3a42fcd3bd4d910f4082e862e3900bbc888a97a3a2a90ecafb1da03a90aedc89486ca40ce7ab82b1948dfe0e61c0e65403e4b0e66d077e1ccbad2b85e9670679530b308cb6ab2aa9e3dc8ba634ca89575cf0de27911b0e391b62fd8a2ba180baa59db554f19fd137ee9db8c437f70610af34a014bad90b433e95f94c472775dcf19a60aab462fb4a40a9e205e5b0b24ddec0f4cd69d125ee650a1653876663b0d596df5b192c686182ea98e5e66a2dc4065a1d95aa3542398cf887043a77e59886afcda0903a2aea1a92c8d2e18629a3407f42a6e731801eae97c3c3d1ca0f8734514513fd0867efa17660e0db9fcf86b80342d742244be87cf38bae1016eaad591ea68abdd9a11c8ea2f2f6a7725ad3a46400c2522628c41034d9a6d2acf254dcba62974f7ec73dd2c6f75e2ca1721b5122ad50a1b213889a39ef37e1a6f2b5210e6da3151ea5a8b9da45ef3ca0f219865b8e820fad2e93406e239f4c93c7a9ad0381f03c7e96dfee3613e4399cd97c974e63dffc6eb75a9142684431cead39971a3de1912a21eeeb7c96c9660175b84e062743b3a883dce974823044970114e2c1f010b79af111e8318c5cbb23608812f0fb7e996e59e6c6d7d88a40a8947c9db18f96a831217742d1b747a4176f0ad8f836e67fde5f5dc72cb7b866e34fb2b30ef1d81dfafb2a47bb2160b06ab15489888c3d9488e2c23cb90a2fb8e356601be79d61bf8ce34b8a6552866efa73667d29ef1098c8bdbdc08f955dc5492cb2fae7e93cfaf9a62ea988cc19114c5eb4e9d7869896da9faa2ae8cc9b29b16dcee663b9a2a56a4aea68a76a6d83c61d3169c7bc347f65a21c16a9f81b4b8d12a7662e09ea7326001a39043a554475dce7b3a428204e13557646dde19047295b1558c132f69f0a6115b0aba44f69c9e4cecfe1ca5461c7374a33ac95bf5e87b65aaea6cec07cd334d6ec6b4c263618da921508c0ac4fb7412036433a54dd75cdba00cf796fdab2651a2209f6249889798d80cc8a26289380c57a7c49ebac459fcf7b3b5e7761783f28b53fb0bf54dada17ad43b723d81e78e230b7842f98654ca75731b3b96c6b3d620b6e03857d3c5adca27046457c74abadfb21f32677474348088910b7178029cb3a37734c3c657a3e69875ece5904fd1bb4fdb5df82da5fb4b0af43b52d220921c5b7da90814e012301a947b5d0e88facc44a4facaca16a753a514320b77a1021138c380c08f63f3ed1b9dbfa91eac90c0cfc7c8d37cb988087e37c15dbc7d09eb47b00fe772e36eb9907db73b77150379c963aa5c7bc6d1ef8194e4c83a90fd6361bd961d45e9be07215995d7b7414636dceb894f1d38b79d62d94942f31b690395f80f2d85041963ce05714c1452d42b5fa79087924ea640b2a6aba6ed41924402824da4f845ab24078eca7f998e3da66132ada2980c89ae1d10fcea018b93b4db1168ab0cbfa8c1b3b1dc7696df4822d2fd690dddb71a268c1f5f58f565048baa6f7d661b0d66fd1661bf475d53a4f717cb13437b5d4c36014ff55c349e317fb0f8be81bacc859272455a1c639d2579e833307c2b4bb97d791376bb38ece5db9c20d0c0701c3525423727b1c1929aac9a22444543952b349f4d9a231b66c213a8eb74ab5123789086c6c4f93fae29fcbe56eab79e9130b01fd8567de60827588f7390b1078a86e00bb558d5528d42834ae33950e65cbd5a9fffe6700232abf4d7667360c6fe378ccc7ac2fcf9721ed937b27c986a53e3c2c502a7f57129267138867a8377b080bf94c09d94f8c3d07a19fd3525fc9b94c39f98bef1b19547bc0327fd4937d6fdc8d0e5140dac8ae736bcd5789bbb9b78eda1689b34bb02c0e0f8b48bccdc2892fc017c8339aff69b3ca29c8ebbda7dd0a6e98f3b560a5ff906e82a7e8bdd63129dadcde8c98ad892b0d18beda9acb06bb3f71d484597815fc5339ad2c053c9019fb9502a90ef272de92b2d7ff03068ac160397ff8d55a1380154ac5b9f509f5e561336263b5a7c68b444e236f2791d9c812f77f0a32dda0de225173fd9ecae7e612ce095718b964f497b5df8caec0810bf66a783b85eaca399022ac407bbc3fb625265c076f2d8fac6e827ced55da9ddcf500a57e8df7c82024d4672ce5830b05c2611fdc203c62063921a70537a441fa9eaf467c9a6110f5764627fd3dc48c3bd80e0053a788c36aa2fe619ebc45e88c687ac0da4b0193383b0868ee7c8e6c575df071ae99c772073bf8fb1ffa745ca029ff1c3e04aa295d2ca50bef6f8e7de9e136cf0762e79726818ed3d13c68608689f72c5745ea163fd9b72079dc0ab079144297aafb6a940499c2aadb2bd755dea2d557657716ea8d5a631eb770a985870860d75d505c17f433748eba30ba86e3e99b19e4aa84636179de8718fd5976588321acea32c9ef509df994850937c113e0513757f52c81e1cca837970de95aa06e808d4284fc4b987d74530a59a8fff8ccbfd78e26f79bb77d50554d29a0408e69bc139e5c3d845531dc72ee5b3449b6fd3621d18324046badd02b6e1ef574f1d67e3e8d835241643787048232542c4052f2c4374afea01dff125f58a3489df62d241a467eb16dac5e2e39f62daf5bb5b20b78376dea7f2267eac965d2297511737627a3fe7c034e024976c94d40c1a03c5534b95778b266257e72de3500135296d0108ab535a0df2bb5941ee54f9d0250bc5c3618a0e8ee9adbc8a83b84ddc03668b8af98bbc6fa56ac7a252b97442453fc68e4e6a8d64cb57263850838439db84a4c2e622e5fca816d5edc51bf86317768350a316c628ec8fb14a5123b3cae67ca2a62c7877eb17ec4c8e294c45f333521b0a676860251e7e007f2d3f6c965d3e10e5a8ca3798b1184685b7a8dcba832924444b206189719a48a84787423845032d37c03792a642d3b43ff8ae86e6a35a2709e265b6103f44d26eabee51fd65dd6b83e9c313b1e1cdd8bc2cdcce67afb61fb0a868ae3cafb37c5e6314b310f63ef0cf8a5bee89e1a3cb046799826a2040fe76b19a7f1cc0c2394512e30bb8cdd7180592b6790b9b4ef8eeca7c36d9bb2329edf56bc0a50be98de1e98dff9f36c9f17f732cad78702e9f38b11ec0f1b8bcf72d9c84ed9cd02b11e1581bb638a8a2bd7478d1a96dacbf53eba61ebde996a935ebb83be70d00b2f52e0a9f5e2203d2742187a92f601ea57c1383b90ba35273a547586f7154512279920f1ea8a91d323fd0ce5726b0964cd6c60c7f4d70ee0c7a81d7f1b4b49eef739d51d94a54b32afea901761648a413f07aeb4a6be97d7ddd6cd977bc830c3eccea9e637c7d0965c35806a9afcd357dafabdba10fd0275b6cbe5f51f8dfbc1903adf4797c02db70557a4b9c426200bbc8d161f92804d059b525d33fbef9114ea88cda0d0aff5cd5aee2264846f3cd8749a9753d6b885b14c037046ac4ebc04ae2d6eb52ec996ef27daeea4ad51a151210c8df1ccd96c06382296fc6a823372aeafbe7e96be145c6a5259aa72c907c80528443420ac5540b6b5a4c536a5a141b8e5de474d5b72b24bc6d68f02e282c6c162b0fa522390b3ed9ae371bed1cbb24af6d79f9f9cf18298d0c6bbee2650d87b886cc8ad6ed9484a2ba785479e4397dc31c0577aeb945c3963a2a5bf19a5d8666b58ba62f0795d88fbb35e03cbf0e6d53985c004cfefff18b05f9ab29983354a64f6201f8365b5ddb631b0ec488870b7e598779304d56fbd1423fc2fcedda7ccede38fc3f31d6fab87443d086b2c0f475835dd33db86d3504521fef01bd26c78ba360c8d830b043ca28647a5b9c8478fd9123405600922971af21dc72161ee95bacab29da8bc77baa6e92befe7c8da7f0577d65e5f152c79d56d0f5adeca354133c01321f58754864f320d98fdaeb12bc4d520157d14016bcf46b68b493fc295980a8ebc81f5490f9fc65c412939307e22f7dd09ed719553aeb240aacd152782a98c394b8a57854de1472dcf174518e78ed60c7aebe7abd362282d1617f9e1656eab42314ba4ed97b8201927667ab7ea8e6bcd5005e643302abdfe1c1b88e89ffcb6849c91e8c49ae9532ab52236d812f7b5a8011572800a5322fcb5d9d599d1e77bd0b067ceb1945c1ca17197be3f5dee86d94e4d18e5859446455eba09394fe50835fbd64a1d88785148ec433084b1d7ac4197c4947d60d5c3613c66b700fbf80cfde276bbdbfac2aa0fc2d6d208463041a726368f63ce3c822036c4b0f19d4d59ad53d45e955604b715c969a8f4ebfb62f4527f572dbb35fd8b8ff32b51a85fee6633f0138a5442f6396230be14452387e72d7ce039a87fd76e4c54b16cf6e0ee461314af7136df5cdfd5b024ab9d3169dc28af9b04e1dda4c90a91511b2fe54d00759bcb4b7e38eb659ab6026a80985b97bd8baf94068aafb18b7177dd3f9838c18c349e90e23891395e3db31415569b64d5fc681de0f932fb7a320ef65f7251e73bdaefc699ea8f0f5b6c77fcc25bccf433f7a8782edea516d431795dce3649a7c5bf692f038537b2a3e6e738e8236db8a9e2b35da8fcde14e105b8bed7c2033c9f40e561ccaca419277f83ab4835080e426831fe0b97d5c62aab44d58d75460c8a36eadb6a0372fe9c0e68e40d78f019182e982a1e197dfd151d625e2dbd05ffdc7c715e3fb820ee15d19b86640267152e4031200b314efb96c6cb994c33c857a83cd0a848f019e45f7681ec012e06aed8240676b8b1b09a906be19eda07014eb3f08b55407ee7dfe1acfe14eb862ad3414736b1dfea4f1cd4cddf653d51aa07425bacd657db383a1b51e404e30bb2c3e588143bd51eddfe51068d8e999b6261ea4d36a4802083c4f9e4cc9678a3c78d98f1f976c00b7f73649d87d6c78d26738f1f7a4151cd7a5420c48a4026cae8dc0fd9c422b395db8469164c8bcd2a62b78819149ae42fc6fd41b63660891cb73456cc0c52d5eb64b87a670d0565bfc761091f60a0262cd43b14b4b3fa945103670aab4013b87c6dee9e98d08e09962e51f9e9de0e95c75e6a901927b5febd81b9a06051866fe416e1fe20b90c96ab6a331ed618925851e3bd305c59fb077d03494d7a97c81c1dfb054ba1817e77bf8c46704d8615825ed6fa303179ef0f5ae9450f5248d78037c0961bf71f6c4d173eb212fb20076f9c9df580a98e8990048d8d63eae3e55ab0aabb3e3a35c7a44348098fc344bebb1fc723e10fe61a34be9cd051270b517d35958c53edcb2aeffccf2f1bfbbf3f4739688506bfd6e9b1c095b45d8d3d6ad4aa4697888489b8b026fbbcc0f4d940056acb25c5931aa35cc44f9d477de284913f4019ca0072b5fa04f1916473fd7a9e861cff57994fc6648af64d4dd9c9009e4549eba07aa41c4015fc74a06ed5fe1a9c3487d50891c22936f557d7ca0c173a8d6687765422041a14e21ecaf79650f8e718511c672b54442af5e46c88b7072fd5ff9000306a26ecfe77209eaa531907f19d468a6dcb94bfed84cd0baae9ab1b7506e8b507db8e42fb26b3a21b4f5bcd9c15b7f2134a2f306279d9050b374fb5bf406575d440d5b39eaf04c045da7cfece3da854b109affaa81e8240b5ad2dea5c4a983605beba6b8c7c73505d4d7547d563fae9d0ade00d1ad5b1c6f46194f027c00d53507d2814b14d288dddbb68a4608614a7227cc1d74cb96cd86db101e16f81396d841534ee711d7da05ebb300728a69308ace688620248e805e28212838ec91feecba1f6353b112f43e606f07216bb27f89535a7a784946cd86e4d2cbf16326d7376862beaa1805a80ac7ed04ea5f24b0790e9d82b1838591957ca2cd8115939d23a6cd65dd793c7c302c3f8d5440614d440472c71590d448a32e78195a846e143fe8fb212f3913053c820c345bd042de3b1f4a3981af68e3ce3657eba3f3b4fdbdf905b6b7639c04fc15bd67f25a784092f7af99e604d171b70b16c9b62895baf1cd702ee17538e50413264b7b1c4d2fe12b724fcb43811c02ab315fa2fd22aed8e0d464ed718c1e2b18f66e507de1c3a4499057c9ae93e7daf50dc3a9c3d98b8e27e15f6f46d5700cdc4e803e1c617cbc45ac920e665cb46a1d35d5c375182ed7909bc9cd84d1a786e13e7e05a9ffbeed840225db05a8cb651f687e1abb012c97150150c467bbc33d3c0dccd98ec6dc5e742a9d0695bffc7e52924a8cb969295a596766e4290dfc16658982e46e7d4f1cb2211c79c38b06f102f2742db8bbc6cdda41880fac090dbf1ed1b6c26a374d96c563c7b1787191f91e08d1c291012a42b42cd0fe6b43a6246a3e09033f4fd3226810643fb2c17957f3201c46f7765531ec5e70bcca9b9dfb8a6fb3ac2ddcf9775d62184bb2d68bd2f7872b698252e3b155e65b29a374bf3a1c9b78b6b8e9b731dcf8f60c7e381cb1abb81b0c98ae4903014f3a78300eb29b34a24f8e2cfc3f5186b52551ac621743821e1dc61abc7c083c9891b1444b671f9b925a93faabc3baf13028fb83053e57df35bb62eda8a0c52299ec30cf5505880b8bc39ce361bcb5c00714806adc43c42320835f45e47fe6bf36a624b3dd03dd8a33636ff27dce6e4a823b6aa27370e3c9fcbe6ecdaaa539bd0dec11eeeb78eacb3ba94b4673fb74d35829d65977320f929993f89704502fa4717d4e0e8435bda3911b5fada21e3d56969ef60866cf2cbf4b2e96e19ee75eaee3a588f98d5f2a8e41e5500ffe9fa0dbdba18f20c0fa1e6304d997a32b4f012663f43d03c2ab4842335ab7a7bede596386957c080fa94dbbf1ba7df630277656393b42539137f2563409a110b815885c79b8296e5de4279d3fc480447216bf0c23763e9c444848f702f20d1d126232ae8f6b18e3fac09ef2c8c3094c5d4202a8f94e2c22cbe12ba74ab972837324bf4ff51360cba4d2a646cced38f2246609ba3d1bdd10f43cc417c5403658e72b7a71eb78299c6eabb961f52a5fe57362c337255774220ca2fd0bf1dd385807f91435b909316a03ff53f64d5f850fe1b2c1390fd5e8951912064d1186470335ef22f6ca8e4ac81afe755de778e5d88ff1ba4c7f1285753076d2ae65aaa886eb789a224267d9f53a5f26634f7e6c3aa674075202666b2d99c19724d02b947774fb5aa3779a595d2253ed2222053ea0821c27f09e030e72c39052e557c1b75d89f5a1d432b3d662725459f44a71319cdb9c3d93b327b4763f5441a03c69b30daccb940e97907382755b7967c61d506833e68dfd6312fa73370467c18b009bd33f94babd0917e4be1a806451f717593949d80268f8df507e23ae0bc669e9786dadac810b93f1f45f807db3e8e06640617211ab32d0b478acb1eb39a181bcc7d51b00b7167b620101a8db02f2d7efaa4105823a25ca250b8e1c773f304c5ef9dd87af11bc25787bef2dbd72fc7cea730e4066843f4440f4f1699e31bf2175f298443aa7ee6ed968d91d702aae117e2860556c031a1517f2fc4b4c679d47298b952e5d76a009c3e3cb3eead1207b928e96881757d620441a909ebafac16b4c11e91b9edd3aa3bd9981704a164e8317190b84e4c09f6b6053ffbaa74a804082c30953e020a7cd0a4a01f451298c2b057513534ea6bbcb0ed9171c157a4c2ac85779126ee9e6f1c44e8cb9893f1a222001d4a996122a9dd7bb760c2bf28f31c6753f739ac23ccd340ddd0d7111bdac1d4fe2641f32d618be5d2f59dadd8daaa73b34307e9be43aed86b540a45d6b9a1aa6b76a36d956312af7c1423aa95745d6b71a1c594a5c4cd4c9bd1e63640a0e7980f35870fc3e177c1362266e89d177d6708b50d1063cf25e7db258406b3a34210c6ea71136fec660138d9913f6c673b0deae5fa0ec9eb7ea5be3310c3a3336d1ad1a2b91455142c9a8f0f1d62a0f1bc5edc7123e7b1b524fb001103ea0b0fba079ba22f28a4257385ca173d1a3c1a3aa7f8e7fbf174c0878df3ec639ecee8d1eba5e378f8dba16f50aa19fc1a67adeb0e7597e7089e73013ddbab5ce75b72d7071bb1af377a05c9260b55c03baaf50f96e1bcba47d694c2cb3421d38147d6eb9ce49ad86978a0b26648ef46a291495a3d1285bdd024b7bd3005f32b7a588e898b93ad62fdefedd7cec3c1fcb820db46ac1d6b1a50ecb52cb75b2dd988a3554f44d3977776243ef9124f996fb1a38663462e33d7cf846529457a8341a273e207157fd2570dfbe5d930c39eeaa86fb727fccb009b0fc227b1300730a286718d5e7dbad956231e9a8c7f816a223222f9d528d4f485dbb42cd7f5d5a32673662d7d89013da37dbcbacb90e08a3718dcecf4926598999b811aa38715a4d4c045e5b695f9beeb483125d2bcbe2cd022bbe7ca3899a9d6fdc1b60a5d1113d4b487f9bb7e7282bde73aba1717f350ff2a29f5fbca28e7682f23561442700964ffb06a465fcb890441af8f605ccec2aaa5db6163ccba88a0d2c36e59eb014abc019b0451224d41792898db34c2b4a62720cdc4351556f88809c3cfbebbd8c0c4d246c011819d16a65f78415c9672a72c4228527c006666223bc8b4bcc3622949aa02fff5149e7b5703e5c793a1f9ca30056d5e73296c8fd06e7f00bae128a58c198ce61d7591177da5b665c6848c6e83122c4f52e31150e06ddbce816e042222918e989959ebf7712f1cb0cb5a91e40194751424ff866e7c0434ce44741b33bfab0e71972a25a5aa8c71b29e95ef0d7a447c935e77fa0514e20206f6d6b98b6d3f807cd25a5956534456b510c5632ac4cea199bfe5166a6d262863ad4a8c480e2067973511991770efb06ac89d5ad988bba36f1aa67e9c34d57d28769d52de2c5f987a56625cd4a621bb31f51f27419d1868dd426b5819eb73425f623e34b3ee772dcffdd24ec762bfa7b65201aa933d5e38a72ac9e187bf292c610d05ac7320c16c5fadc2345d7c6931654a18b91402da62e39047a631c31eb0c2022d1776df30d94aedd6646411203d10695da01955d6bb034ed17ee6c2e21d6fedc77b2d3bd860b1723e3a7b4860e13c2d56e103f691134cd0035f56ffbf88ff6538de8d4be31daa7c4c56d6f54996eb793021d540e3c8ed6770911833797d0e38bea950210c32744e4eaba8f4b2e400bd327278972d2182443bbaf3a3e0c7f25c6767f47ed7631eb3166732d477bdfbddbbf740f017f97123ee85f6335c58b184eaf41587086f6ab38feae15e4d35f5afe8488ef9f312cbadd20ebf1ec173922f8272f37bbb5f4b110aefb9187abe08cca7f685c309c5bbaa36940ec31baf38adf037fe502c7f47cfa2470e51d1e6e02979134b982b621d2c7ba2e958c4abbab967ecb9b3407e79517428e69836a713404ed0c4b843c16b6ff81ef6461c81a302b64e02321c1cf52eda0f5743e71b101f69c48d1712ca1d6081e81981318b16e1697d92d33c6c37b9e07e6750b39e3365af8fb7d47493f089c65d1611781491a708e91bab6ebf4e2d0f791eabf6cca68f431cf087c9bd63fbf20b802d93084cd7fd15ff5a089ce410422412134d9e9c151cb24d651ec1ad5fd8bc15cfdb40e33187e271799ff21edb7ef42ea36f1c3a5f91e906cae4b02fdebd6c8bfc7836cccfcc7b52cbc2b63321df8b0a5094bab4bead59bb2758d496e7ea7620160744f99f17270da36f5f46f3c8c0157862023b3726fe0aedbc708622b9517274b448021fa58547759c5853a632d6aa8dccfcf9385c16ac4fcd557627eae6e2da81157a3bbe643193c087c216a131208c65af72ab37372a551d70299c4f2c7b5a9e2c368ec9fa56c61ae72e4e0a814492ce89108127e607641ae4e90bbd506a5541ce7843897527108afc52b780a54728141ea3d81b425db2983cd97b8c10cfdc20e3a7c0af9d47606812e16108d1ba57255ce8fd838e1e8b141433f9392037b096747993483f6f113a4702dab36924533b54f8ecd01d73522169a99b91878c465baf3ef8d059f05701616942540fdce581814b48e5cb681c9f6e6393998442d8a01565134e602d99fdf3b7ef89bd2fd22d835ef576730b02a187e1c344c4b60b31720b24a9f2115d8876e4782689b391772b4358e97de0fce7717ee2cde0075b33d97c5b93d9423509b96b7437ea668090a75074233792715520363d2f1c63b45961ccfaee3ab08582cf54843e98a9707e5d2ff52d65d835dac6e90759816cbc9aa45ec5246e0f28a4f30814f657a1e21ecbfd8d0f1653d14cdb77923dd7a9709e784597b2f8ed9e19e6faf29e7632ead2f7581a0460d3919bfd2436e3c5ba0b11b6273e1fd05c5bab588a1ba15e6ef8760b32ade6ee84df6d1bdc04e25967b0cfb4276c720ea9922b63b2253c9119eb854936aef556bdafb1806452b7deb49e6a0c33ecd9fdd81d0c67f52a292fc461686e6d9bab8ff7849e95bf9fc1d37dea1059f8c1e93824b4b8ddf2f7c32231ccc9427cd04ae6bd12661371ac1527ba1448a278a12aac85ba2bae5d9c2219c7c11c0fa0a831c88c0d5dd8cd7df5bbbfda5744f9acaa58b0afd7d9968c5081a2305703ea2d33f4750348291c6f6efa559fe6a41af5cda8184040b0b662f47be215eaeab4125270b3a1ab68f1781b40fefc8fa88ab9bb27a8cd51ef03c3471bb9590a806b309364ced5aa5cb012cc93d064b12cb8f9e2cedb5b872502efacbc73c1731df5b9da48f54babd7717423d00601a870e77bd58d6f2584942a068d05f56ce3ee1e5e8feadd2ef32b9737c959cd8ab9194a3d9dde78e91e8b6d765afd87aaf6bb57024a36932087bbcf4b44a888d4a4d411e6c7506f23518576f40cb4252c97471ef4d46558214d3d9f36848f30fd73a94aa046b18c466a66f1d793a1c5501bc9893566f0a1719b9c92db871226e55bc30119924244c21e3ed9a6147d30009c9ac6705faaf2d9d70e9cc8f189a1da09df6024393be24b7246cbd0df1182af3c54d7b8f96d0e8107f8fc7fd8718108d87aa16d1c2c99fc5434e16e469035701ffea42d04681a17c3370043d79607d718b2ea3dd508373151ceea8b398004b9468030dffe4d7c6911812f7e6a0d32b389d4a78f4eee28a8411d8899497982ea617f6aeb899b1c5428452a6db20dd412d1505b8aee14813bd871779013400fdd7c562cb3667c9b27c0cfa4edd122cea392f8b5292837c21066793c988747b21e7521a54989f1eb17a0d61149102be54898ca9e6f0c2fa87eb9e7a272b0b906e533e9f29316bab4e702424719272b9de77afd408f8a094b8d39dc00fffe607d9183136faf0456b51f5b6e8598b55186b3c81c132a3b15dcbdbd9a90af8a2c3a0a37386c2137eb1aeb2693144cf942236f3ce8ddd45a0ea047b4c68fbc0125dd19074ca9178b8cfa64da94283cb8db8ad90c67888f2aadf7580f2c71671bc9944604690732d6c0c3f732417adbb8f6d18ca7d2bae1921cf8df64deb52835cad90f81e0aa1f965e993334e64f9745f7215316a91ea59ea67bb59e21762e0614c8cc0d6ee5bf143babd91deaeccc7b54f3f96ec40d3a000f47358ba928afb6b8e521d6eea1469fa8a414a4f6fe1eac0707b46c073446aef263c04e28cedfad3a0f056879ebfef505648576046c19f9e7dc0dd8c8f2422593c8cf4eb1f0fa423492741e6327652628c16a795418044e5855d39583ee06a7566a95d6a5ab14d9937ea88f775ce0d1fe97dceb32fecd21dfb0b8b101721518b8cce86795c5468a9298732488d82fbcc9a433e4805a2e1447b56ad03d6804379593e5c3484ed4678dc9ea709364f7d7eb8b4a72051bb17486b1ea167253bfb319a18133daaa7b162cf59af939529e0a308e3c9d1c0052890614a8bd2f51f6138ec0cf6396ebe7474d682cede992e357a1744d631b5f6547460e7a0c26648e029bc447b5193c68df27c71d809eaed67969dacf8dae6ccb2c0e0462f173f508630941eb5b26cf5d1d337eeecd566f2eb5f36e253ad1a92d935ace35494f515c790ba94080d5a39e840687aba2a3baaf590663df14ce6ee7c0888170f614943b81d2069d51854353a192ea69f927c10d5baf215b79e84026c62afebf78c6a201fc39e70650a89710f6f0a5e31b95bbab2c085f3764ebab0cfde1d8e6e83b273b9fd8797092309535e0b525abff3e429a259a7bc894dca171a0daa35ec9bec6fc05e8379c42283acfee66f1aabb65088b692025e3d4c7a20fef5ef7ef68d2ef3c20cbda643cd10fad1aff715c91be4298949fca38c43275af28e0b8c77f340989a3f64f0316d139a2548880d8f61617d6bb3994037ede9943644237143d0975c6dc779561e4f20950b497ea5856a084950d6b6375549cbeb0f78c2b73905dbdc6384ee704c44fdc6a67c76b44e3d275752108d2bee1b0931f3ff0303c1ddfe69faeb116ec421ad7a6f5fa0ef94823af4a08e8943f2686aeea1a18c1e5282ec7899885000e2408ccb45a5e0de64099ee084d673a72ffea36bd29b55026785ba2e707642d572fe7c5dbfb5c342c243cd97223ee4c884eacc6cd71e4795695a750b62e909702e3b243e7e2a4056c8c7330f99720af59cffe29ae0cda2382dd977f536a40181f2dd35018751499646cf8d4e1ef2c3e8f9565fc8d8433e6615bf53272383bb14b84dd1697cae31f996b8d883c5910261eac8da839b8b8deb4a2b4ac22af34e34a7f8ed325f77ddbf5d86d374acf782e15276c2aa37a67d8b48215407db75f7d007cfd7c8f017c54afe5d0f706820d32bdb421cee38091f11970abb78511f031510c7bb0520adc79cd309901faddba82028535b7b7e1c201dc83241668f1a1174b95a4443f78acd75a677fcde514d88054795443bf9bc17389e49daa5a625a014d70546535bb73a2f6e3a5f770c6bba685436e358c8b99ff3d7e3f37a6210ed6ca1c87b318b6c31c4240777627283931db62b8d028f593f2443f84deead42212dcca95380b89aa4af593997f713b4090bf5a9f7968ad3257e946463181f34d1d00431cb2241633a8a3a4e1824cf709bc660ac5bb0e4d5b41eff686220bdf4ca7169ed5b850a9cfe91fb675891c90186352c73aabff8ffdaccae27b5f14ca334b620eef7673f52e585e5cc4b5adc024cae9f01d229c9663efa162a1aea2ef7faf3bc49163b39421d7fd1669db29de28b54529e1119ac1237cf7fdd4c021eba8fe37d98cf61ae5f32b286445f219f6526a919555e744c8099cb590f3e33ef49f87bd5780aeb564f004241164b31e922b5888374d7ae772051c6a776dc19c6152cd2cd09b89319ef748ea4b592b8370551123c0e4b61d5d8ca553e296d1b1226c3150f7120247bcb22a97e99401afccfa830b67ccadf917f2febae24748c0d93f4044e593f7a7aa6a3d90d612823b59167bfcad84e3d39636e2a74c72c9c660be571dc6e30d33bf8ca5bec4f6764be35eb86c7806d6f7cc417495c579206304f45b3eee1ab25e66ba8c161c9742d53f54a8894991c845e56077e3d7cf8ce35b5401aeae8929fdd5e5aa39cdac28723e2ad532b8a871b54c3decbb7c2338558a7bbc7b93b8c981662b08642aeeed5835ef162997cf397332750b0261852d79f22e27ab897b08b94bf9d28d71981f8f1a29fb22be1b3b570923882ec53e3714b380633373f47ea48f07b92b7113f1a653936132fea2e7d02898a88f0acd170478ecebe097692d96d221da5c8300a869f83bcece50ff2c07e860814803ecae20fdeb492cb06ac2d29baae03843351288433aa6ef18bd6996a73cf25c28935213d76d480c0bc7133bccc6b88c17d109e43d21d6671de35937b33b16c94f2bffea8b8082c4ee9811bc5a41fad769562f30e3a63348b492e79891a5fa3f740720e5b985b500ce347181f417891a8a3a073e01bca9fdd55f7fa3c6f649928215a853021c43a53821881bed52889f8f7122dd579cc78a44d46931bf1f07022a3c27882f0340a01a35e8c7e47dc5b8683310a842b854df4bfc2686d4f73db8dbbfc7ae3b7fa93e7a8d77236b0f7a05e5c74a2b95e76a583fe8a189eaf035f10c1b7d86bbc6a05f6f7df0d94e12ce14e3cb4240211a07feca3c89c25289eee85f2e9f8f157e19cba77cf422adcdc67c4031bfd7497e60c2e0855c1ba472d5feeed48a1fa7810144a1666cdd9574aee4d31a4184818c9e07bcc6dd88c8e6483bf375221231e9e95f345483b3b3d9c8a736e2de8ca0f6812155279a186f06af8dbb7e3a545e11258697a8b2af92cb08cdb0317858bcddb07f341db93285755eda53a64379e6918382fad521d1af7bc321e5e749992f5dae59c05d9ff5c1f716f84f07b24c5f407ec31db7a741125c55f3d92ccedd4feb0dd514d8eb7c4985e05b9ed5cdb69d4c8aa628657630f70d9bd70d46abe33b484d3098bf1315f87fba292a99b7357effe5f14347fee6f482bf6d9ff3e3aa7b8ee168177e8591da51d40e281976a723d89c7a0eca747594eefe8bf114ecd78fbdf27a18c6c7be21f1d9c143373540d4e500a8dbc931892d90f0f23acb218c547d8c11d8abf00b3142ff87b669d8328c164b6fe350d8f5874af6fd8962dbad7b66ca70af2aff1541b90d22320e9e8eece6d2cd3edf33b8b5e7bd3db39464555391ee8838ded6672ba7eecff4e36ae08bd67dc14fc5817c508ce1f3524fb0f9212809a3fe66d6362f00525673faa4d2a6db2ebda7fab3b269ba103a08802b5e65aae4405cbe0c518ac97f2912978279dce6f1ed919f529636f526020bb9a6d4d7c146d94d034446253778543a339d85c67321e076d26a95c953118d1b9eaa415b8830d79cb2ba37d3ef4dcdb29d7d1cad1fb77cfa57392f24fe72c869ef26605a199e2a959ff9b57397459d09c00f9e7398beb27eec01cfc92a5574e2d0c8dd29f76d1915815222b064e95efbf35497ae2fbe5cdfa1e79508b2a857b4cfbc9776ec4dd526bc4fa0bd8738ee4bb5ec182a1b341a37c57d2921793df9c868ef78b9d0c6aa67928d9edd8ed6a249cf41aee5fa1a5d0af89010549fd4fc087cf476c105fbcbb2e07700ea42462d1d1b90d799bcb1de4d0d689fce8faa164a4c33bbc7f4801db79c42b45cbfb9424b0022257e52ec79b9f1eadb5eed3b2c050bc8178f51847600c67869f52bcde9fef8d534964eca86de2cbab280a995667a8371d9c517a2bd7e0ac27dd32cfe89f2ced067851c81427e3b081351f06dddae8507a21c856359dae2f43d3d7470be6677d13927af8282fedf3b1f2c3346056f4c04efb610f15767699e67aa23ec45883efe368c0424d11d20bf42bc11e47eed06e6a7b780245eafce8297268fbcf88c860ef7f996bc5f568ccd32597f0a52c2890d97f3b62c41d46c67304f2ef2b8064030dcc8ff4b2970783968bf92b6679c959faa8305be60920e743627b828effe556642dbe2a20190d23f7044c9a60f1264068cdad8a6faa9883358d35a81d96c0f0fb045a85eece5a828b512b0fd3cad4c7deda5fc57bbb82da2ba1c44f6eeeced428a52754c2bfd4a5e4efe6fadb080ee67555c42de61af4c5da8fc19b1643ca5d6042ffbd451ae41dbc46fecce50a31f1d9b0b09a2dbdcb5f1d1838ed5c2cd4b52e78500f5d58f872c0feab262c78412161d1cc4d0f6b25b6ccbe2abecddff1de536c9b58261effa1d2bb56ddc42263a0201d12fa512ae58f08d30c4cc289884b4918f65cde24f0a8c6ac1fcdd6c0612b63a7531a7b4933412414471222a0e606b2478bd004ab4323f978587be8c52942232bb1976883f98fa963b614e9ecbb6d776817e759f476f64beb078970394ee86abb25c0089567a8230a2afa3c969b76945f6c328f5d890e5c5a68f5112386f5ba4afa8caaec6f21a479e9f61a997f8ad133efd0c568822a023669302e082af6db6c5039a0cf491134252b87e80241edf2851aec33f1ebb870522dfdb601b99bba009a282e70f131a3f89cf970b523b61b7cfb868b654fc480818a246a2455bd31c2201d00f3a4156738ddc919a8495867fcb49cfc81c0efffca8af7e05044e8e31d7ebe9e50676b7c1503cb57683abbfbd0f98eec835483111deea11d047080860323709f5480537c0d1622af1263e3159695e4bc3aa388f49da64c806ce87040ddd37788b9fbc357439410c81c942ad320e5573baa4bf7c0e05a104eda5d6cfe442674a38526fd6a59eb8e62108008b9635b35952c6cf1ed1ee4b7339ea6bdde8a0623385a150edbf902b732c6426b3db4fc09e8222d10b340d4526e8b3ca816a23578e95b1f696f26b1feefc6d39fd1bae3a1c94c35c096eeeb97839ebe58f393c5032fb85e88599d4442213895ca3145bc5661d032aebb1ea017b4bc6f65d82a9ea8249133a29c1cfc9e6f21cbeffaa849aeecd55643bf909e3e911bb3de5d21fba22a46c16d07128e1d8ae61e8cc962e148c95ad4313b73442861a395efefc3edde0fa56df7f151a22ce4881abd6224ec1f5e8968113cfe24413a8a440e929dd79ec08c648531c355ebd8a3aef9a99268147e74cc0b3f2684b9007992bca77af071b3ef158cf48ab743fd1cb05a658a67cd1d8e449988abe0c7afc674d8e4c6c47a8ef1b3b278274ed5aa31577312e18fe67692134de6b166bb98b9847cc70db305bf10b4e7cc1492af0de2bfb94d3d986ef2e904b22dbd78de814982703d2f716ffde95485110b6edc3eb9687f8ed0d2b574b5e2360a672e29cf90cf2957ac845bf7281386e8a1c6ba3599b77939729c6ce4d1ff2aec62d1c31ef6f05b2a4aca3a9aa633c90729eb289a8074da4bdaee110721b1ca2a6d6159031b1119462bf021b88a3b671fd2287fc1374bf82080d0b10c4fd05bab92103ac6c77f825a6afbef0084771686dc395a60714b8714f0e0f3641d3a5a9fd6c54d5b5f2d09f632c3c489ce759f5d4fcf35bb326a610341d179b7f450b42b9c9ad6f0e1303e7a4f73c75cce896121f30dd75f46fedeecb0e68d192176170b625f03c5274333aa250b3dcb784ae7d0a70e87b11345bf36567b21dba4964c7d4e14522bc9446b7425deee7ba4138b28e95d1dd274dea055417d1b85ff9ea415c273c2eb1bb55adabf14e16f9d832b9a4e7adab10b4e0adc60ecf6e29ffd743aa863d865c93c78171629597707fdeff7185c1250267d0232f860b131f92aa46784866e21c423dd69b36c34d12e291d036ceaa676793639777f8209ce5c1d46864bac58b7ced8751ece818eee6371f950a681527ad8aabf51518e0dfccad448ebf05ed63b596ec2c2bee0b794e485c1376671c2c997ee50aba1d7f9a1e6d030cf2e54d594351b279e96537cd721d7acb52e80815577782a9fd64367101995e5507aff036686b8ccd4007cb9a5e72002844b65b21ac9a6741a83cbc931bc2d8e554300b47c574411d6e34d45e207d93bc8874e9a5a07373bf1f0fd3ebbd2a67dd798af8ce5816188f88a8e2443b0c33c15875bfb4835cff5695e7aac386f8f2f760a950d16d9d68b657a5a11717f6094ae14203f3b3478a081d1782e0e6c7f545928f2e0d3210b5cb671a25121c377d33f892771a2ae1c646aa940d6c87f8feeb85238fec3fe90d0e48ba8dd230694f0797b6c095a590ccf06e5b1b8580adb7d9ca28d9ccbd1969871dd86d69f3a85bc484cdf8615137c9d636bbc4c0e31043da3954df5ac8c740be26ba54cf859de6692c3e5d9f6d804127281e6197500b06de7ce86d6898e2389f7db465613497612b3ded89e979e20de84fec9b6655409b54eaf7b0536f7c36a42befd75fd2ce879262682280fd7b19a51bf9217e9373a88d9bf2271834c1483f2f33051232113a4115ca65abfe37bd0784d852cc747f6a8c3e8a634f2e8fe2e07409cb69b6d9aa89e197754f2aca590d6af75d0da63f1b18738e5696e6e09f640bbd1f43bf165845cfd1feb925f3c9d1dde4c0785a464b3178ef2cb0563e5ba768bb18070701efe14613af489aaaf217f60898cd91a8ddfdcd19429bf30e47b30f1f5eb13dfb59aca2958608add54fb603abdb15e5b2d475089c6a7fdfc7ba3a978a82bbe88dda1d0287e2556fae291645d0d8d7a3408a63e7935d4192fc5e89cdda92e46308c322fb1a5f9c520f53f4088b377e73a683f09bbc5871a0900c07bfb2ec46fdc7f67c5783add1dbd8e4b2da37ddcc9079bca75210d99b7680d5bf3f53cd2ff0cb48bdb989d757887906eec614c56411d706fdf09d65e10a2f439e19f30dcb080ed5e1786a23753b244efa231971e8f67bed2dabe9f02c0685e4b190939d9c189346a04241362859dd648123fe5cb2b3ade329f611ca339e7199d9f05db5a192c5264a2ac2bc82b02d563ecaf566066792c94c6e7b3469677989c37736d0337e556a6ab001c6c53d3b75e46001ba8665a89fd361bfd9d3eec71e76afc9c4c6d0b14b085198ae96cfe53e66bd3fae7acc4dcc446b24b961afaddab691ae69d1d27a3bc0dc20fb0d2cd651e956dcbdb68e98ceb6d861fbc30213b99662120b3f085de66b36fb50decee0d1a417afd044216088b16a8ae6ddf638d605035f152458de45d93117f09b70450e436b912496b223f515e8e65dd1938f9c40a1f54554ffe992984efe00dc33e96186faa1ee01b16280ddbe961e45261493c891c1afaa07323ff463f4163e6a32a0b68574c93c7d53c4bb4b1f5a4ffcc6b1f6df0668f18dd6da54eea807a389fbd81a6e6594bb0abf701a4da28fddb1ef36a09a82f686ca4a769ce1a6c071be5e4fb64bc17efaa835a4eb0c734c95a55940feec8c122cf71c423038b4aeb5bf5958bb389ec91318e6c40b0ec08f6ebd1abd25cd93c3f663dfa4ae83d53efb956ae3d8ad150f21cc9b4b7ed4ac763021cb4be498113068d77461acb3c334f56276e12901952489f9dc14f7668479803e9d223c9d38fbe1d97e5c46d318c13ddc4fa85983214645a5ca35ced2293418b4e4b280dab4a353b4adcbaac38713c6e1edaa819c34b1cabe16ff7f0466a88ac870ae95463b49254db72fdd715ebbb91b979c81c84c00c8415be1a6425bd321b611c2a6fab92815d19b08332037840c092a8a76b6fd1a4714b2ecf2f78359666333397b29379a57437e8ae49b887cf4ac91b47fc73f085a1c0e0674dc8aa5ab04d26948d7e576172a52bcf16e3fd2fab75ea3ddd2323320797f8ce2b2fad0c89d66f9d0f18ebed19d8d1b71c3db224872012a22435830af8b521e2c1bdff7fdc73ab380e0448c0e654f563f399f576f00ff280a39dbd9dd8e906dfdf0b1802187e1e75c7845640b01af7aaf3c804d1ab07cee75f879446b575dadf9172a15cf41d2dfc23f651cf9dadf804f5e795688828507c175a5c1ae00ad167a53cfaa78d77e1b1fa9b481e25a2615f4fd15079125202a54c9c8127eec3a5ffa3a8b5edb2f06be5f7eb9fd40c805c0193a3538f2ac9d441a07cfe03ae5112e2d4ef199b97b39a110a2e8e86ad3b5980a8fdada14bed9cf4796ae6abf10159b817a6a0c350ca662d76089ffbea508bc44a6ee3fc897591f94043dfaf45a9c166aaae7933c892698cf54e34c59fc0691d0dc26dfd9405d08fa73fa2b3efc111e92bb206520fd6614f7f36fe2475ce2d665f4f3a9a45ead8f1cafa7d3cce43183f6e7a5fd43b81b0649fe187436162583a421c28bf83740dde29a3d1cff3d12669e9d8ce3f38d9dc187d13aab6455e2c3a9dbd8d778cb838afb3a3936117dc9074e1c4513c32060f37f3b91558680d315f691cb1e8e26e050572d9cf12343b2f98912e1cb790fe97b95be9ce6bc010b06021e1511c765383fc8eb82140f2a1e160ee9c14d59b2c670af1d6ab1652d03b282a221e9bc5a6a8f8b9993ae0b3f207eed00b54b540a595d3e658d8241287235625163cd70e64cbfa2cc761325e2e063e9da8ac039b69da5f9c7555200c7400d65ff7c366cd56288bd4c6efbc3a38c68ab5fb1d5b2ef8158b8a9576b7c4982e83cef9420e187960315ccdd29b891c36b64cc55e78f965c842cffd617312b24add4a31379ba4ebf67c213c0b1f9fe0c6c669545a3ccd529996785393bee6c5b8cc018a988e7c67d39d4f8a30b9a624eb732e67b07e914fd358f1095c3bc1b5207746814d97ac40c28ca5ffea3d65089ec2b2b332b061b8e34e31c95e6ac7c2ed233b21b3dc78f0f5c3a835787094d5ddb10711664dab97dbf1920a12a1bad5cd3002de1a19e0a47e87466a2be2b1eb29f732d80821b8e2f2be7065425046aa3416695748847782d7bd254de8205b4a07cb357d86564e430118ec46909a60b2d87b3faef58de91c5b582b17a93591e07fc57090835c50ad07b47f1aee3ab7a3365dcc104d68a129ca4bf369fc727d78a0caf65054978632a79f3f3b24bb62260c3e135e71626d97c91840ab829391b0fa06a1b886e3fce1a5cde85f4efa5909dd6edb43f61222055fe4a24e71281df422fcf57256e89d036d3722965b0360b67061ab07645288087a20dec51358b2ce319d3580373af6ab8c8d914b8f33665c510d2a3fb80520d668c4c49e45ecf346467b1c5e504d49773478a55501b19c6c4f649818e2b881a15e1598abf9b0a626ff013070fb376236bd6737631e31ab93fcd654784809697df5fe25f1b422203704c4a5094845ca7a1ef566c5240fcc4d31e99a1c41e0b199a7fb297c106d6c827dd737eb77574f3b78d25007a8b2c39187d6f02c9b7dd27c568db22d3bb9c59a9642783f821a043d8c4b835e1146eed3de46f51616529c3dc6458d0477cc36c302787520910624883f5652981abdddcfda127f5ee7a94dd11e5ffb6798f6829575e3c179833285f31d336dca542b421c6118411336273e396ce4307e8950ad6a298630aa6cf681bcd49d57b7a16a168a1e1f64f2a00cb0ba1e6a60a7c74ab95c5aa3d8a0115e8434b48da889ba114bb501cdc8d6b5579052895655cce48b7e31ca7c32516e6b9dc836863043abba69fabdaae3fe7bab2f4665bade4d061faadf3e1f5f423029d20a727769ff5299ea39493865dbe90a3e094eb98c0865f246a8fe3eedad3c8d08f0a72ed2f2e361366f6011208e6d6393b04582820ed0a567f05924ad1a262bbe28b75617e3667f8e260122dffc67e78ed02ed85e6f29a9cb1f1fa865a0bbb6f255a8082cae389a554aefea1d60ac3817f5502a7da4e4aa99ca25407c097756f0de24ecb358866e729531d6d481036385d8d83c11fe8c568955c51be2d70fc6db57f9e76006d5f2c635939bcb74aba6041e5661dfbb3f6316155b50d8cae94836bc9b6226317dcef5ce24b52369d312319b3d3f93522df296a1c9155de39f6cbb3b9d12646e2920f01ab7e30c6721f0fe2b672cf7bc1c3d4fbbf312540d809b44fb3c5f6a13589405db62c3d5242cfb34a390158e9ee794dca244babb830f7f9cf6d450fa14dfcb70a90170cae1026f03a9d6f6516bfaaf913b28b681be82326c236811a38f65129a80b439932ba3df814040e498bed8489ea69065c8384445ac101efd1e81e6648a7a5c6905b883e41d3c33a26289960c1c477168afa6738d4381c142125d31c84860221598090c934420fecd90c65dd95a48453cf14163cabdeb3e14cd516aef1b1ef104ef681ac9d0d25096cbf1eb4c06d188e8e7ac1917445c2767f3438832ea16f7a62dda7d4708fdbc03159412a3fe063cbbca8bd02c41f133452cc2d8d4319e281404197a9c31353cd14cd738e4fee86615375c78755b0ebcac3a74789b5395bb24a8524bde0cdcabd42638d6636acc8e47564332eeae6c3f0122d3ddb32946ab942c499a35b9194af7551cfa8edbfe437e3283d5d97062df0b384a4eea241a3738e8c70a38d18c3cbeed48c40a4ea495be0c086c436717e38b463b66306aba6240dfd4ae12c80d09633cf3ec22fe6b99f2c506b650dede34571ec29673aa7a738f60d79084d15f1f7c9f6c3b88571fe905adf5a564059be00a3e7ea0c3aead761d49002ca9dec74c3515380d5f8d5f21124441df11dee09a4b6e1b1dc9d2a7ba6c9f9cf292794945188caed69db51f639bcefe40dd268f379675ccf88be7c0520e799fc7b589b82365333599bb818ad4dcba8656d0ebad32a0456df189389c94365c9c84214be6e1fa4d6f72aeee0b1d253851e4dba6b72948448c1c1dad5a9c618f9f768c02efdfcf49c30e3a8628ea428ca75f0a1ae05d16922c5f324020ca0709cedc2d381562fa1d012e8e0ba56e01fabc74824d88364d70adf74f48834062f17a6d6883a6114931f62835ad42deb44a8a80595bd2bd8928e5f3eb4911653fe86ccf44311d7a6b4b41665216fdf1d64c571636f33221f41728b8124e1264e7806121bc4f118baa52c7e430f94867b3d9357dc2bff13300c0a67b5df718ae10a67972d2e7921931d8bfb621ed4a7f2434d230ef17c5e9bdfe47ca38cfba74e4d71d478170365ce4b46e80aab95f7e5fd2e45c05a618deb9d0e6047b85012d1376151972c47371cc3846fc0369982fd1e4416589ee19d06d3ea5dc4a1cc316f98700d58824f7d70caf5b78e8bbfd5e0a2cfb61ede058214157d8da553a14add2b41f5a3e112bf26c38ce55b2d8875cbcef489b13dca557195cebda561d7536015e5afeca04918c703efe89ca4fb87ec528f712a1d0d99d7a7b7a8aece62e365f0dbf0a2158764f00013a1e67cfad9e4d30e4f71f6b604038c1cff0bf3d94faa4a94e39b7dc314ca200d2b199205a98f285b633f26faf32b51bdfe3fa7c7d11dd22bf3d23f55d7742475ef3ad473cce047f4fde13b35189b498d88d0eec65cee888063a843672288bd15b2cd8e1a1a5d3f0a8c9ad55cf01ba3b6aefc9b804c714beeb49bddcb69bcd9a2fb3331afc060a28bcf577338876fa0fd55dc0ad1959bd378ef77f9bcb717a0d0b7711d045de1abfc81aeca9886cdc570bfeffde6a21037fd2c32696e22d2ada237996c8d19ebd25d22148237c8708fc274d18c79d848f63e5a35f885fb835772f4faa0519bb7aeb72aa600f24130a9cb19b708eab286912947fa669c2dedeca18a3359c4a2f481f35874334257d7fe2458aee762d79d8820bb58f15a4cf08c274b2b0a36ff63556773faa8090d7dafe7b93eca5a3255cebad94e2c2129f80d550ce0119ef922a2b868c3cca4758b266078180c625a0ad3011e18353cbc5d5bf94ddabce1e88af49fadda22142daa04066f4113ea2a1d580e55530c7a3a0c2e556d74cc457e1cd559bd568a6be5bb61ab1e040ededa3508c771c075bfaed2433314b6c7fb5aafa4200caaf04a87c78ce730b1cb76b65430fbe57e41f2452866edadb993f417413ece547b106c60573b4d192a748006abf9c669b8b11a5d7344506bbdb27cbd46afebc8a11e4dd5f58899964b3da5b7a17de2170a2f87268eb91d4366db71ce4e489400702398d18b2a657c501e8601f44b883d47aa1a3540aa0e629cd2b81c123c8fee333cf7e632171e7cdbd119429580928b5ad31aed15f6d87861ca6d90bc4ec9d799aa293952f1e7fe741ac0e2b05f0707a85a6d675802c32d3cc2d9468a9104fd9fdcbbda9ae33b3522eae62fb2fcf1f7b38c671beaf8928a89eeae5005b8a51445d3b96bda96279a3cffb3b36957f3e84f30d6f8c5874b835f02f9a027045a1b1216c2993e59fc441d54850b97d614a57b466fda2156f47b95b33a11e0cebea4b207d1211f19beee8570a5c2983405726f4aa2e284aa8370ca6884a0a6ceda8f16c56bfc1c5fcc4273033806d643bec1d2247352c4a5d4116fdbcc0fe81c8dcb5fcc6a352f8fabae29cb4512eea21b1d6ed7e361c134ae95586abec37a209305e18c43415794472d039fd505edbfa9ee26121b34d9427535c3d6560773ff068e69e34c080e44688fe45f04cae01a44a47ceb53778877acd4e22c64a83b7b906fc17f298af6343574a3a0f6a163ebe0cfd826b5c37d9341a67b811bea42fea898296e999de1cce24e9afcf2351ad573e705a561c8da1eba573d430c527812465106b86b6f0339b09e19657a35edc057e0114c2325baca39555bb6adcdd3563d36fa6d029eb5abbb88fbc1934000d62f5857ea67cec9176d18290b3639c94a4d8206ce9d87af2a92e23a20c743f8a19e3c47286536a5f92f88314ea89bbbd5b82d314cfa86abace3a20a3751ae50c0442fb9d437666cf557977b39e019ad73815f02093da2d1255c8dd6b82d50230f2415b1cb15b54128bde8ee33d89184b1a3611fb6bfc5ac97ac506c02acc69f5256b88e3eeb90c2703c18fd3b7f11b103944868a4ca12a80b88a1b9114c7315aa7b11afdd7a44bc313b35369ffd70c0ae20acf95ebdbfd9765adef6474e034fbe6711f910de530ccb9e94790fab658744ea926f5646dd3b3b93b2a0c24e093c9604c97c06810bf5e625deed7bd50f05e6d0ff394deb2d4c84d7ac8a8691630cf301af74fdd7b61689c9a5d622dafca3ab0b65548dba0c9be7e5d9804299d3203ccc0a721175662cf3481be225d255d762c4ea06b2586a0a05323be377964852e4f7f84805c19722b7fbecd6b4acc292aa4e9d9567be3eb5cc9a4329fd85457e0156c5e3a7f0a250ecde55ecec8ee2dd547e33ca067606116a62f3f23791e9c728b3d7b8ae6a973db55a8d547bcb96f294308b72eefc85c0436fc04ce5e028b1e682512d4fbd2383211d4acc0fa4e78e866d86c1cff0a5ae3939cf6b14aff2021cc79d12c84c5b5e4456ff1da6e0ad5cf81993369c45d7df55e155c20ac5198efea2358b7b07b0d81cf7cc510566297953abf157d57180b9300aad22f1223f77b3850bccdef7ec9695cb3de22b44cd4f47cb0d27a6540ee4ae3c8c792d79a85894aa805fcc8e4557e26b805d7557d24cacb435c62c18434933deeffbd023f4c11e072b0ca4d3c8053e83b9906fd2024400a645a03072b900952c6115f94b99cb6c0522d59e9fb00fc10af0bfd8ff3f60b8e2fa6bfb972d7434752e922bea3884b660162c8986eec607820602666b0bfb98c8bcf1d89138530f95448ccbbed6765a24e2675d636402a1640b20d0ce528093696982ba5c7360766d73f9a48d75301b2e2c702c23c5c377d6dafab1820de590d9a77b04c462dc99826b8feea31ad3871bc85354f4485a71d301805ee4e132854251730ffadd0513347eda490d39705a129149d857763728f7544197fdefa9897b0d6bcfc2029f7f97cefc734b5781771031e0f1be8829067789a2075dc4e17b3cf489afd4167ba022f20d98a367cb7bf4dbff1f26ad1b359401a1b4ee7ccffd940b2af4b525b086a23b976e76412bdc1f307564c372590a842d5ae4e35b45d7a4d90caa7edfc09afc745b2e1f06c9204417ce2a862b7b326c87056615b4cb70ad90fb1a4c3e38419fd24a766b30249fce1958db6a9a2ef4964a6df3cc65dea142a93046239cf4bcbaa096139400fbe8fab4028c6f5665013f7c3396c09b41810f233f4d091233f5f297d12190913cf54255cb898b568a6cd6929941141a2a4db5838bfec1563dd3776599b07024f9e6ed640a38d6f6f9ee494cfcc7ec47d3dedd8a20791b9bb63dffe505f6a8c4ce73fa133a87bea296a5683bd2efd501dfc8389a3f4d7e4787e1bbf636cffab5463630ef1aabee9a4f8819691805ea55f8f720c21252a5d8c89965e6af1e02df73d9c432c4e44c0d5be53e3fd623140a67852b538726ac40e6140f5920411778899b087095ea1ed1410138046ffb293555832a8b681e7c7b8c1c81fdab947259e2360a09f0a7a8f9e065260c705d88b564a119e9e28fde36739d5179589fd8994b9e80b7cf2c6b012fcc1ca6cfc06b49652b9b5a69d8f949fa7d495eb06ec4c081dcb131ffdc067f591ee6a37dd5da386d9ca37b87bcae5054e925c57e67e305fb8c1fa7f057e422e4a217fbf049d979c380b7d7494cd9be370ea702a54ef0740731b14825488b98aafefa8ac701150d0564836ad923193a787422a079b036c1597ec6687ebfa3e390e36753c4e184b1f55632de86c8e8f64fda67a651aada08dc3c79bdd9eec074fbc80c6c2d815820c4b5437e0a76d684f81b007108dfe6a1df3f057490034dd44f225eb2188f9a01a1339770469526843e792efa99f344c7a8f3cd58419ce177533924e558fa97f5327c142f758c1bc3e98f75f21d7cab320960c7abbf6716ca0468963eaaaef54c48d88f010567209e292857642c7d63fcecc1d710d011b516cbe5d9b833fc1b3fed43399d8f6158cf5fb383d26992310080617c511299496df1161fc55c8fce497205f5c8edc58c1e13eecf6bde1c78594750c504de14d47e6440e30a995f698a745b20aa6d50e2734beb45a4cc82f86fd1469e3c0e808fcd020b1af5ddb6e3d4cf7ab2e45d0af8a2114f5cee97cd57d1318f06859e51f9ed3fc8b0c640fcb7d2603f64dc79c904efee2462f00ff21ec6971c8617dce79fe8616be2e4198ac94db9d54e53a808133c4359e2ad1333037d666c41485276fbf657a6ccc90cb3e1f94bf8211e096bc7f927048d1ef4c6ce3f53557f13d0a2ccf517cef487e3cd6137e908d0fb1064ecf2ad1a87cc27e4910a5c8ea28670159170dc006a24c5abb564be580bfd6016075737fd4d4060788488979874436b31416c2d1550fcf5e3a29aecb761c2f991419f52d705a4a83c54988e8ff88d35b88cb7c4eab7ef38c5258e3265c2dce5ed723604a7185729751644edf1250dc17a1c6aa9cd42533bf9ea1245cfc497ad850aa05bea43b36e48079ca453519e0feb722a23400f92346513e350f26b02dc265b45b3e1d1ca14df86bae26f6f8e40d33f71a79f0f2e7165de5d9eefa4c9720ec2b7c2debde9291aa0af2c32e3ae1e16811b01f81c2b94926df5a91bc4e98230045a50ac0d23e2e821c52bb7078434251d06429419f66e853f60561a88bcad822e6b9725f54ac98f137cb3a64376c7bcca0196b23bdd10c9d2aab98b40af4ad8c71bfb0fff537c3e37e224508ff2f898be817a687156f4fab0b2250400398c35d5460defbee10f4c62c5d0607515511e3248c301e02ca856c8bc2980879660f96eb6a947956baebab214738905f1b2e13a2062e6874ffd06de8e9a9f431c74effa14f2be49d8c5bb33af0966b4ab208ce76fa57d66a3ffc190a771d8b2353c972a5a68b5fba33ac43552b6535cbbe43075f4156c8a2512bf549533c229e5be32435a98e946e2d14c14f0f01f7a5d83556a896a7ee6c0fd92f2ee45a1d6c6080e055b6ee78304efec13777888de70cf474a1191ad1f7e4252b0b9845c9d399355caccfc7f4383fc0f91a828d90f75b2ca6e5cfd37b5a5576c8da60bda9ea724c135919a88765faa0539d13dbaac73ad00b6c1feb942775619ed932044af107954cf461304fb6502ff88b524997f6128f387a568f5c576fef6ca38679e27ead0839349244115d63e8362229a23391be20867824c159e5ff276b99da46651c6a3c545a40cc2b842c2e8e9ac7955b381060fa2d1d9bb594f9f047562e1cc48e78a3704020038c2ef68d4bf321bf7dd64c35c5183a2a87ecc13cf8d489fc8078c6a119c18d590fd4e1567e836cb81cbcaa50a16f55d691a3d288acb8721adc2a776e354205e5efa76080361aa43faeeed8b4a1d7b05a386138ac87d577c4307760c6105caa601ec9bbe049e7096b8ab1771136016f4ea6ef15f6f0b2aa6153118e6e3ef2c2bdabf68eb3195a9deddcd499ed6f2e193d72b91f9c9b411e7e029cbe86f4963844a4c448701278a76bca224aa2d21b1b4f3ab320799d686ee7bcc8e4abd1bc1843feb7adf0dfe932df3b57042538e44582fd9f751b2f5e37d98e0ca5ea330e16517e2255e78f238f0c026b38a2943f4a7233f59023eff99a39a84bdc818b3c081db3112aa61c99cf06439fcce7a2eb45b1e48177f2c24fbbe5cd85187553bd68ce6a26ee341ae649c463a2989fc3242fb0456242a8aeeb440ef8fd1def9935d3f543b4b3b77f2c1ac3df5be85999d46a3796b7a0723ef8e2a3af8f5f7442c88c0d3c1b6125c7b3a0bdc068fd672b83396f4712532b5b72c7d3fce48ae56b16f9895de7334eddfefe6ea8168c8699264578aa7aaf46a44e2794f807fc51a484257aefe43a329c249c679eb73d58aaa41a94a98a1f12a91dbb40535b499ad4423db8c801d9a7c933a4f1137d2db0be38a7dd4d19a0429b4d4147625db7e20da813aaa8864752d4d08605d0a46cacf3f7c291138f45d354a1f9e386b9bfd5a2ae9e91b7ed10e8c808744eb5a680a07d5ca2e74e18b133cbd52aeeff1392b636c0786d905d94c9398ae73e943ee1cf851863792391a0c649b89bb478ac9243ac8c5f69769a87e7121218357ba17bf81470853cd0345eb00d211aeae66bd4681e5ab4de97116ff993df88af36ea2fadd4006d0a52d04ef51c5ff9a18932a5c24c17ffe4807c2904eb6f7991f3cc5180b12de3b89e7664e872a38b5c1b4302f0257d69721f7d65302997727735ee2bfea75b93c2fa7aabe9dbe2ac2389781eb559b7400cfb7c25f18b49be1b93cd797746cc8c7f2bc4c1741a7737b7c08be0ed1c5f7607820c427a540deecaea10ec9bad29c4ed8761567f2f818dc9670f6250890e23598ef9e786a71a53e80021a7e419c791092aa9b127e0af144c8eef73ff4276fff6835614702fa48582ba74c5ce3f3031b6c20c2bb3d296b6cbad3316ed4daae9c7aab51c937aa0def7659cd1e504e14336d240b1dcdc335edd8779010d3d4e6224a6ee270850b100abc31a4c9e5fe64c34474846735d997f9ab51f1f57256412e72bdeb1a874734bc7c05d2a0068b8345bc6747f48bbf58c2dfa5e0f9afec4420d5db209669a96671516b55521e3d4c67e1c72056f6359816eaaa1a21d5cb461e76180d3ef739ac1df3cf92970d38033549d0116c9e0ad598fbb406015a79480d92b1287aa26f305e76bb1f6cdd79e90ba702005e7e64995d84a6e04e3447cd5ab7e15eff594a4a9668eeb827963b7539310f2b6356a6fbb75b07dfc28534f3c6ba317adc33a19632967a584c91827da2a79ee237d1fcad5516fe9eaace30cb1d96603b37d9616adad519a2ab7d0e6e430ce81d9aefcb5ee03946f250ae231d76e4529c83c5836485a538594381988154176817b0495ae99cb545d39340d6f74e8e6330a4fd138b5c26e6b566b34d077fbee983e6e6ac96a9d04ab62c9ae72f36a4bcd670e5edabefb6a4efa8ee2d2f4acdb166c518e867a3fabd91535fa31e0314c232207c492ebff80bc7ccf808ddd871051e1962b94e775d49b78a23df170d051ec556ebeca0e24a10dccdf46ca666c9c2c9109d45a513f6833e5be4e45f601620769e832a1b89b42c34f64ad82274113350005ab495f219e166b4cdd6b6f0ae7549f9fc84ec10def6b5f2d470f9cdb9a14c873c7e238855dde4d8495a3f7a6d2ef8aaadb93c438fc9fc6419732a6787c2c171e67790b249db881493ca0528efe8093c20662a0a7252947b9ad7309c53c842e48cd6c87839399312b2fd26481ec00744abd1ff875f82a1667954cec757c43e3a0e66b6382ca2e3e37f2fbb9eb47debda4af79b424432e5a54dc675c71237120800cf7d7f46727b89cb57bfe13cb2953daf3b27e7efb45b20ac187c88698c0627581e621513dbd671efdc185dc691aec902cca468c4c20adaeceb886b707cc3a268135026c708a4555d3a9c613e4f694512897bf99beba50eaf1204d0ff938cf7cfdb23e45cf9f02c332cad85421342a1fb339df49ab9c95a75013b90cbaea5b26638220e420807fb48e63fc77f861e35c94cf63bb6fefe69a6e10cb995b94aa61ff87f343051d53f4a53f13934452c704f36c48bd0e88a69d6801669446b29e1de1f58a503632494d09b5238a69c02f2e9abf531335faa8d8504cd3e6a831ad674f2fb9f23b64e0dcff02d62faaa14ee4d79a8bcad118b6bef5563e303dd2612a2f22d92ce557ca35b365faf5f130a44cf0e6b99db4dc0bd79dac36fd2e9dd73bf206484718906d52cd95022ef4ba8c1d5f14ef69e485d957824231901da241bce930e70ccc3f6557f2e183d9c229b0646140feb29ff0c5901246063a7f8964c4153a9a173c660026c0b3b80a3f518f9d81adfe37398366254a777142e7711a64cc5ecc2caa7bc0be3d1dffd40408fe172010ca9742cec917a4509260f0fbd2f0d14ee8a93eaddd73e4fe5acdb42aa4ae31748105b7f4f0a274256ec3cd5e0ba4bc12e100da26c1ebac71ef1abdc17ccdae2e070d18364ee5b3ee6daac4dddc89bde5ab44e9318af3c963881704a457c86c628167ae804c5b83b5da8d10fd6fbf280dbfc58f008b21fbc11480161b57815b1ddddf60c6c829f86966d7f362820157c89bbeb7d4cb47a11a2435bb3f765f61f84847d3ea9138f47ba62af767e58aba6c4010dcd284b6fe626f8b0e00fd944f71b579bf85ec1c18bb903d99f7fe4241a3b20e9d38a54e4d6a4e2c87020db6a8eb5d72ba6012d417da0241f188483c5e857c5d72df51649491408686e3199f33623970d78baf4dfc703bd905a5cf82540929dc0bec5e71689268cd569d6aab94588a2adb2065c61b8160a6daa6b53a9dc6cca2334bd797fe790a8cb8449a3b67895215f15047f2d24cf95c761fb10e839c790e43257af43d8112c361a6198c9122d8b514255ef748cc716e638e8bee4c2ec9dd7cc13bc1b8158c9a10bcacdbcc1e2807a16d2838c82799416deda11d92795a5dde6abf47b73a2da21362e8e19b7091eeb7b914ee756725fb9be4669191044da439c8e2a3be64c9a16930bb95294025c073d3079472f72dd6b059dd9fa643c7e0aac132563d15daf9dadce443ca723cd3142ada20adb6ae0ca57422fe34de70b4ba7d71a647c70094ae1576f51810f1269dc7d911f3050750ed20e10ea66cf7a0bf3816d68d317b63dc565926ebdda3168ceb454507b47cd18389dd8051228b8450b9cd22f67cb375dfd5c9cb94b9761eac28d3a4c9b2b7dafa0b6b3d6b976326daecf39884d2b1928942d5aa36cad0af24f02ca0b93842f619a5f4a6509038d3a9c71bb67a8ea36d7ac5e1fe10a5dc1542c86b775d510ea8c7e77727cf30c609ffdb8bdbd8795c651c57247014e20a6aa509a25558e6eeb54125040f3e834f37f63bbf90aba6d1d448442b5a2b6c8d98cee1553b39fa1d00e68b42c2859c17845e22e595ceee9df3f5775462f50ddc743286fcb84c25b4e90da8ea386eefe9afcc8e60c60fa07e4690eb545eef5831de4ef78679fb633551bee049ccce9290fe7c7946cbdb93d59fe171b28a410a0df46e6fd19c7fed03192e40c25579575f34d683e29ddecb2ab0a7ea4911ae7db25a119d33e2fa18e73f65164a9dfa8baaa29f1232da41b0a6263ccfcadf5994a78f2215f4a2374e8d8976caea178a354b443c8f69e172379861f0f238ce69b2384e7dfdd19c9e9e04b7157d41f6c2561eea7c256fcc9a92f1aefe436a15ae1bf40363cc7b8c2bea424f8cf5ff8200968477dbb35c2e3275c71c33548c15d6042d55de1d16986a639ef74eb06bd17736e42e31cc00a75ab1d6d9ad729e6ce6237bb1410cbb89c8dc545cb5ccdebb68e0250e3a935f45e8adfa25612af45ceb6739f8332df6d9bf8805a9960546320026363b77052dba442eb6d22c0bb48321c5072dfd50488aacbd3491ccd6a4d8c50b878042a8565a96ffb053b9bd5bdf0eb0463c0566a6cf50ddcae8de6f8ef5ae1c8dd924f679f1d461325f7484382646f79fcfb66ef88c54b792cc591aaeb030bb410fc2e56764b66eab1e5176f06cce287d32384c9b9d499dbe5a904841a1eb71a264ebc2a9239d532cef2df2f81c69958e46ac3ce0effee560fbcd9798accaff2e53ab31f86df2eeecb101041e3b30514688ed4f8a6f2ccdf23838af9a34afbc6d575c9bc3629644c5ac32b701fe46465b23f5c154c0c173cf28e30a409604bd67cd1c76ace44f48b4fab89b94b4968b4a17601e69c86144b763da7018f8d4cb28dd31cf0b4c66b05c8cee159ffcd1b6d16bc44cea0ad5264f8e2004c46839ec43772b4169e9cedd84b82e6b3e4938ce7375c8296cd27cbc9e71e7a7784d3f944c61db060758986a945ca7df60b9d3d3f7292e1d772b115792a382ab7f209d3c5d52712c55a07d9a1c8dfda3493e2ba1e984443108af337a79bfd685b57fd031921f4ef87b2acbbc4ed6a7c31012a3ef18fc708c0f1da17f882e47bd0e8b7fcc8df85f85d380ff897f0c20bf227e05f71604c3d1f2c60b65588064f70f933758f2b319316ce2d1aaaaac4effbdf1ed00bba4c3d909cae8e16353dd915017e3f8ec2b57ef89a588e1edccd1d9766810ada31df3681f1abaa28ccd7314001591d0a7aac0ce206ac9c1099d0170b4209767ab9aa605f75b9fee94a4f94160a56780d3667ff85c1c4d7ee676d44c32a210c078f837d3c58f370ba6b6948c47ecdbe02810553e1cc721170d7f04488114a8e4f098b964b18b1d6acc32ce379c568976dc6b68da7136641e2cd518df83e5a182be47a0cd5846890a77512e81e02842ba2e01595c246a9b5c965434e7f1bf56b2d22e15d34af1df80fb9c66bea25d33c4dfd56bdf2dd81fd9c0e4cb34d7d12662dfdae1048de33cc510ca4c7e08d4354bb43ae38d3d7f382ec559a69813631fe9dc4f28b118543d41522028604ccea632f6a7d32535c9d79be3e4c75bd9bb4c07842d591a59e49894c27213833dc06112f1a907acad3d22fffc142b36315bf29ed6e31913b0fa502f44a87525ba6db53d78ddc4b96e0429b016676996777d23df95f70c28f2ec802f1fd4d24a3b596ecf5ffc83daf837824adb66b5f2dbf2756dc856aecbe7fa18e880de77044882502a00faed3efd07a9901a5fc8c5df45c9593bbdb58ccb180e15f7bcc247ff739a2eb72fb0a2e4ab4fed449aa5ccdc315c4cfd28b13bd189c808f73a091392a36b1e6699f9a247250d91f03255147d69aa6be05ec9089b4adb0d5a526000c71e28ccf221b3eb75d210ce5774f86841adccecfd7ee20ec34b4ecfdc13c64b768a3337c3ffc491f1d0c51ed8cad9c1fd31551e2da98a75567c05d99b1f70c00f719d2c4821fba8f12f903775445a585857e20290b1684f54a40e299ead40f711e198da71a95aa4dff20d9f55a1de314eaee13d0ae51c9f310fe0594a26a4ce945bd986337cfa57dce3858b40f41d07ae4f3d2ac1ddc5785706d224ee4a590ac0122fc108dbb08338366e2f26d3739d9c82ed6fa1679b0aa21b5ddb39eee5975478fc7c6c1128a6fbf83432981718d90fb3a852d8745173e243e7fcbe3cba0a201c5f7561312c786059b4cd4d2f5e0954b82b415a2235b15dc1293e779544818bda2521ecdf43d854b5fceb9ffc5d32896bd4e15ecc35a14ade792e3ff2774a0d5bee449531e61efb7d5eac0c47a861238e88f6de324cf956777e2657e08651b6de03e3eb96dfcb2ceadde9b5bbe86d690023f71baef16523561c53e208d58ba65ed9e1fed8b73df0787ab8e27d97dbf647e12e18739976c55ba37e6849616393fa3843e3252bac0744f4517b471c033b668b7e1ae85dd1437b86b1575c2a5e46b7822f342d08ef6222f995911905fffafe4fa22e09543a1c8428e37d1150111e8d94698d4c05b3aa9ae314d37c325bccce8effa3dc3657bfbc87ba9016f3c48bc635f910cc5e9eb8a5759719521bf89c710b8c8bf75cbc114dd2cda64f150c94ae1ffbe22a508f1b413939dd328a172a7942553f122abceb782de7bdbffcf9528ffd8eac7bba8e95d17076bd6176128ad3da8bd8ac6ea69aaa39943401db8c7200fecc1bd189499e55c101fb4adac9a2816dbcb7c367a15e4d1dad504ebb5bb785cf8560baabe3e06700d1fd94a97eaf9d1d0cfd93500aeb77208fb819f993767d2251b0cfa8bfb911d093cdc0485fc0b1bae41370b857ea66237efa36c1d8195f0a18c54e3366bc6df2b1995a28c33a5e677924a40ecc79c779ff04935fa59d49d8d95bc73c11301a7f0234ba65bf5250fef19e6a16e3a7d1f407ab7c5b6913e248e3b4d7647e8f7b64a8945393799688afd8b5f03449f9322686277da4b322821f1115f9d29409cfdee352970a6065f18f9ae06acb57e8c8252995c0516883b68800465ccd1aff0ccf332d636939724515895a390f86612b6443740eb62a840dde4016d69e2f889b1bd587021dcf4546b8cfa21c12fa430754502952cadb8635a5b3d5db9d7eefd08489e6be1cd1b942373efb79ec69e448f4f27bb3304b7f6be448d98f662832469792740036737fed329dedaf3bc98d16853a173f52ff7939262ff9dd992f85f9a5f880fe8b2e9a831f80c27a66d3f99af1990d1f59471185c65f15a8b3cecd40f688fbff2c04e242c42c0a69595fda9fb845516309a0f9ed62298c02ca7c268c8771fc2bdf978130c33d1860ad8d54f85d9b3b5abad2767c88fbc480478f5ef820043dea867c782fe31a82306a4e80bbaecc0779f21be29ff83fa591f25677b18ef59bd3c8151b67163fa43ad76feb4e624856d467152b7d1f7f1eecd34e282539619932c98491f976891e230c641441e240ab286715538d95669f0bce735d0580f4de132b30550ab4835297332ff1f34241ef72e333ee8bc6899ebcf723b31a83e8b2e6b099b814a99de721b27c6b17b7f7ee18b02ba7b517de12b90bf5fde642dc85ad205e5c9219db490fa3adddf3073cd8a1a7dcbb562705fb547fc9c217433469be4d6ebaf1ca5526625dcf9984dcdfc1fec0497ca9ff70d83a120cbcc8186093136aca9ddc7643f2d7f2cc6362d9052063558ccf04574f2f38e9615a968e49dd2b014ba5ce4fe464fddadaf47de39354ad185cae5a37f2081a86533f80483c477b3e4dc6fb11dcf7523c1078aa0fd41a5f8679a706a71d72992e65c19b11c8726b616ac686dafc6a81855d10f8087f1826c57e5cec2c3bfd5794d76a963d7b23ec80bcc2073f78409e489451def73956f4425901e649f53feccfd17b08c8d5c6930095a9625fc041808a00c4363409c0a88bf4e182412650fe000664971b81e94f59f3bfedeb1ff723f82764074c58a5471c6dda15cc564d7425fa4de8aaabbca5177d1ce859353220b49f231d29ff3bc33478dc138c42d8aef9fe9162c562988231322b40c00a852aae8d65765f1b1854ea8b6dc260f996d5f3863dc251e8759c159b2baa1679c6abb656827deeabba61fcb82836f03db033acff967a584d726216b8b106d1e29264c02e4813ff9c01fb2d1639a102b353a4448890e8870d517d128c24191117c62102bd78696858b0de2513e3f18842300fa1df57551c03f7df7cb6408ee85b0781eac945ad05ffef131707fac068eafcf482adcac8d5cdf1672633945265333bc517f9d8812626cc12b4d5699067c4f10bdad9fbabe5b2ea0d6b000439626c0ebbc5e5ce4aa453b57c2e93ae59cfaf4becdbfdb03bfe0e36a6a41e47f155756ead6394b846667aff6445a6596ca67ccdccb41ae5caedae4b3105166a4e9ab4106a44109a795e686329a405919c94d9394fe3a948d56fc642bc3af24bdde5dee9559a386c67496e7bda13d48ec1cf8edb5c91cbbce11dc85ad17e6d1ecbf1e1b59131349c9eba884a3441cd2084a9c1ff127ccfd634aa147678f3d6ec1b86fe732e9abf8a1240f9b12619ab277d981576bf3c956353ce529ac76f1a0f31661ae671b48d0b46a68dfbedfde918a4d68016ed0449e054974471031e32b89fd727162bd13ee745a7ca52bb56187f0def9337801fd20106fa19ca4f8d346957bdbdcd16d8065b738ece47ed3b2c77f9d4c436e3c8e02bdbd89316f018247b1881a01b5426f7981e9b074ed8413033325e07f54230e9f9b2e5c5ec17c79e9a3a4509d3e8160542f12bc93f1fa4f679ba3a9e59dbb381ba6809e9864b019043c318ee0b566752f128fd61d79b536822ccc398cb53aa8af1363b7b4150c80f4dcc276ba03ceaf0b3a1039535d7a8739c263ce3b82b4b3ed4e9f1dc21ad45ad5d3a22b2af113a5788b0ae3d5d12bd9468ad5b28113788c7cee198b74abbdc7c70c352921de35d00e5cd9a77b8deab6f9c564004cc2aea46fee5b2bb88461d64554520c1112c923c3210ffd892463ffb61691e326139c23cb6c694b0c8bd3948306cf38775b9a70d4c765f2e9b85c848760c4a6f4dbf4228fccfe1629df3e2f5f9a8ba61789eaa0503024ead6751270cab2474c792ff50cb0c0c34babc6eabd3fb77865f0e39c3829da244c3eeb141a5678334df35f021ebd3559a21804a54b255f7f7e06e46834f52efe17c0c6a6e9223653b9bbf16f495763bd67967a7a5587ccd7b4a930711a3ceb1120102f093e1ed3fc433bd7478eec9b083ff92abb4bab75f8be8bd75e2b8b140f2c2f3f5fd6be6e1235d4084bc3dd99194ea4913b926a2586e1ced86fabb12aa6bdc68822b67c4df8baf5e44a79463f5c90f7551d413ac7e36446c82da8df8ade57acd98171b51535de1af555b965a4f157825406ca999daef8c44659905e0888366f171be5ceae9a4b8d026101d65630bb50a61fb87002e3f03c556d39f3a8ec4738a44e1c100439ad1e430344b5e07d3b4faad78d6cdb9e8c3022d633cec928c1eaf9d4a619a9e3c790e44ea42d4b539fb70f9b819c154f92251011873cd27dfa45c491559d2db66e4f8e3332e8af0d7700adf6be5edd18bfdcfd4d83c2ba4d7b6f1cab74254c7f4fc4fb45a7af6726f6c0a4496083bb7642fda44e82a4600a838b365d632e2b9d3d744f56a29c334ed35d667ac71e543de52954f3a2ad27fa8a24ab51de1d28618a80c10d1e44f3cb9057984ada8fcc6de8667280edd792cc24242d6a71a8eba74ac61336c0c2d413e6e1fffe267e245d3f37c1c3ee95720be018a1eaeaf1329a5250000a855a51ed3309c28258ed072e82d4387f7357ca04356f76589a373ccb3dd29456fae2f1670bae68dc75f51f3fb5feed6ccf76e078fbec2de428453f3262922cd0900fce1d9e797d88ecdc5f6ff5ff5a05396a47f2b71067e37756dbf7794b439371e6d972c3c6c3f5243df1ccb6a93c6c0ea0c8e39f443f48fa60ff469a1acf018a79959f067c8862a5227ac8e4a47a93413866c0cf2de358fa99b141f115c18bdd8ccdb21da3291506479186d18556fa91a663428f19e93f94f05d3fe3817a45c6902b4d817d27f0d8b85d9ea9e4358b501f6d8ea8c3163168b58cecec9b8709e3f707d75c2f8625e614d9133a05c219348f1f1696ba5370e0d31a193411c717180fcca8187967a2df0a9826de8307a22f70a564f74efa9a745424015faa3ea4fc8c0e9abb0c106437bc65795211289d2436385bebb68b1a4b1d1a82067b3c1fd8d8b7388ad33a84f20a3389cd3997fa86616e48c2b4a8c425a36dfe0a035d6139d5fb103bccc50b23b9231c2d81f3fd4d9b0c4563437389ed0603de9c71670ea4ef4cdacc70dc4db98bde966d3450d8545b0423bb7b37affe65111cb29c7bbb4a834d844b39ba7718e9fa9cadf6d58f0980ded48e8a5794ce89d8b504ebe56dfcdbd953b83c223934887b179d13f8cbc5ead40e520dae32714effdb63ef3eb03466225044bef13e1ad19e05bc925f6412feff2b87882a97bb48569826964e0036eaa716b5235c72b7ecca8a2d6ceb9533f220ceb82b1447237af5dc47e910f1c0c50735aa3c950e8836c5a0fa2aed5826e0bd2b4bcdf9120575426f08100980367c143ae138668cff399b54bd87d370de4648298116938627e6c4a9617bab76770a1ff0fea6adb476047d34e25b4e0ea3d57ddc4580ea3aa48875aa1c6ccb8568b4679f66f178c7ef83d5b0818131bab9107806fd67288cc30440fee7dc8ed6b373bbb3b1e53034e25960acc321ebd1303070f309b9e03fa40dbb7583041bece71bf5af094889057f8428a37c29b7eb480e030a6127e3c7fdc94f899c252c356ed449a563a45faef4b86958cd1155de04a9058f43161a0f9894ed98cd718f4665bf05b2f30bbbec1e47870b9b85c10bf450660d97d7daa0dfbf923b84033e251df1fe4c24940e4466084ae894d038f68bba7f2728f693cdd6c1c1335fa4906596edf6b4fd0d0597c3dea48b9b6e1a23c1fccc7f2d5a186c0e250504da2841c994e7283c72e87e770d73d05e43c918de89742add012068103abc2426a4e0f91751fd0440a1128af91bbe52b8b3af1bccc91c86143755bf3a913b5ad2f789cfc54d62256ff1d993cd65f9e8eab79a78fb45f943f0a49c90d7c33fe9edb7ee1b0c0e248bc403765262edff7de9de2972912fccfb6d1e35c91dd3186ad45e21655393d547d3c14383ed20cd4543b5d6e5830511498bcdb83883186cc8717ee7992527c0d13f82167515be1eda4802a1b880c0bf52edc98948fcc3d60d21805cad0e72b6daddfcb6679c0fe4d4729ca50c7cad9762ca10245adb7756956a81dcf027c8a23454bb54ffc9ecad30dfdb405dcf53790618f6134bbc5db2080bc49d1821681127ea3f662bd6d68b40acad1f667fd3baf49be8c615ebd38532d05561dff2e22d05950247f3d7eaff7c64490201da4b83565f021af8f99bbe3cb08a585767a3c28badbc0ad2bed12f7c84802480250f4f5634bd666b422fc46c8566cdc44ab9698b3f1be9785e453e56a332174c76e8bb81ffbe4b4466271054c29637e3f7639d4af28e30a48d1c0440153aa6f2a60a6bb664940270eb3663f4c10c3c5e16ec54160bb2879af6eb66b51a4a2496b98872f96f47034e86f5025e87f3495898c327b809ec77908c9110758589fd5d0ec9ab804cffeb42083bf7c175ce2d1c36a7fcf689c1d45109a44965fdc652a3d3c9bef3cf1d4625a58191ea9db78e3a896c6c27060873be5a0c7ec665e5323d2e517e00709535e07f3a779915c4538497be888219c295c87d7b8b2d70741dfa5bf9f8d478fa4ad712b8c0e890306c229bf788d38b0c5d0e8a78de28c684741877f1b69a1ee85b653549af3fa403974d024e6f07983f8608e82e34c29ccd870d2c76dddf8e4d6c600cb2f524395e6ca6040e4035371adfabf78a315be732758554a43c6b9a9388d1d349ee83d2eeb3e4894f6cd4c7a223149bcdf33c1edb12844b319f5f2a27d9fe866df872438ced4fae69c884e2096bbc9260cf253061dd33d4ee8ae40b3dff51249e394bdfb018fbfe30823b0989af1952a7572d909388f60978129876ac969281def89da2340f98c5875c01c3e155227cf2226dd5325586e2ab9157da37d3d8805347426c4609ff5a22f37456c24001d9ba7564964266e01c2951006581095edbdf87644fba493241e2492622f8141cc8db59eedf477d2d0385b305db6f2f887cd70463e4aefe9e9a3468f887175ff608ab56d55c9ffce04bf047d0fc1cbd3a3b3a1ac42fbcc3ad7728021c88f2a498ed60787ee324b6a9bb5db74c60376f6e2d08406b43185246c0be5ef2181e7d0ce8e06847f8382f7dce13386e226c215050febc6867d9bc752d6cfd448f9d06b35325d4eeee78288e0eaf996e56b0d48408985f1ef0b5549aca5345d3431e193cda7caa7566545742053ad7fad5cd28b29b7dca163cfd8536d63dd4e833f18e78b5feda170f216d61e60938c7e37193f2ddced85e3387493ca7e871dae2a59aace704b2347e7ea0d1aa26cfedde114a797bd9c5c9d5c6738b5ead376091f03406ed8626b3e3d3e3cd10dbb8a3c6c486c2de1257ed99b5c7967bfc4b5987219b55d3830876a5997cb58dab2d87070481a54d64353392e590e01d1136fb060b835dbba44da355babe4fe94440502d58aa0ca4bc8d9452485b533cd05e968a7a79530fb359e572997f73f1d4b2242bfbed4f1f3ff224ebda2afffb17d9fe07017c90316ed5c1ab76736cb7accb238bed5eda47956d3952a6e4080affcbf4e32f76c37431c75f23b621a97bf68305d783e07a20756a7d3196832c8c6eaabe56ae13b5b9bec9d64571adc056886872166d0a282244ceaffa0be52ceb7fc7b856c4a9aaceac75a3c5b69fd19eb87984c638f2444e593ff726521f26910cc793e987b0da7b3fc891236c7beba6c5ab82421bd5260b8c3db53184f665f6ebea3a3b8e7c024c3dcda23b85aa808c4f92e6ac3a5db754bc38756a213877c46292ced6390000ff8e04f772c5406c2471ab9213234cd804d1ca1ca983f33c5c237fbea8f87c09e204fc15480ca66b71205092feaa11ea30fafdbf9d5dacaaf89782ac7c113152d0fd95b0b73601c50b2d742bf5685247d46527bd64e75b3718021889883a0ba9348ae1d08886cbf1e71c47c83fd181d166ecbdaf97f02d55bda0718c509708d1dee835a3cb53baa85afa445bb07d5a85492fbe5f20b1d1e470703903432f61007c5283ad4074c7c6bfc2a1d0ff25b4a077e129fe464e9001153f1db5247e0e98e7d55393db90999ffdf46f83a6d4aeb7c92189d749b0fef2748dd97e2301062969b8ba67c6eaea68e8ad8c088b9b156adc9258809ad6de42727d3989ffc3ce9d1a2ff25d69b5f1067d9a6d11a07e3bcf1a42a9f59eb34dd8605ce63b1e87d918968bd2ec2468e86cd63a67b06a5b9324d0a463249571e5a5165c4b4ed59c090e9ac6f8b34a0e77b018204843e09c12e45524128190943e2f65744f8ea670cbfe25d76de3231dba5518015a34dfb6a0e4a08f27ae5ffee7c267e3fd3e2e8861d9b254119bb93d88140703906e16b0991af1fefb673f27536bb769f9c6427534c6e263603faf1ebccb84907cd22c3665b359f3d7d51fbaaa2b88efbdcd7abd1137e06c7bad1c54d0b524e928ce4afa6761f055705433a1d5457c450d3cec33cdad2acb82cb092cf04a5e069cd99c190ccdee5319701c5a465216fedf328b14e310c520c9cb593cc43b041088c225785ae4987c3124a811cf31e1fda6305ab7049a1c66a232b986a964ce6c0b965ac2450647ac7663bc25e9f1285e97d851aed79b1106d2d49888492b156e3babb101f4ab975781a05c3bb0dc67541505fbdc2ba64c39ff84d4c8d0b0acab3e62890bc1842f24bc7e5582a67665a9f1e4098012cdcb1a818e40f179f18f00e0b6899699bdf4cb09b797664dbf09fd2dffee20d8fb2df88f6d81b702dec9a0ae8c46afd97626e43d7585afa18aff7e7bd9e58c0cb0cd18e4c23c0f356a43aa9b4c64f7e33243cf651068328d5c37a489621951e683a9c2faa39084303465dc295aaf9de7c2e5317f32dc2e54bc702a07e2a6b5117e65ea7f5b83396de9fa4962aae7c8fe1f4cf4d3a330930b67349b63a705b9227d6f8f3e35a2dbdd73ee421022abcc3b89c2423b80fc917d761a186c5ff9704103d2e77803c7a32a0725922237c4f00b8d53fd99281ff6a75d559cace4e3dd1ec99934fab745bd932622ff884c229d67d4286f0028a4b2ad7991fda391eab69f928e54199fa1b9d4630c1f492658eb4087160efd63ba3234beeec429a2c278618e4abde52dcc42cdd2f4c6daf721c603c635fb3efd98427a3825aabbdb833525113526a2fc5b17bb92804e9aec6faec62a739d2c345bd4eb38363ae21d4433b4d6d09f062d4bf84e1abbb0e59086f11a6002357dcbd1db0d4b7ee207785b701dac724d26ec3100b2178928aeb726945979f407757ecbab664abaecf28bb49ff6b58c71cab5c9cb887ee5b009770cf6aabea3bae66458f0244ed2a23cd0d5a1196840bdac4410a08e896af43ff048fa9b9d63512ceb59a5e585b0440b552bc38944203a938028edc59b4d57abd07c5c17dcf9c946aa1d9e00b7fc62962fef7cbc40934e3dc81bf87b6e90186dd2e80551730a753a631adb9c8f9d7260c57210c285370ae57afa9421eee8d0061e9ea928c4b741604f48e9182015c241c77b607e6a93073a48a89cc74512676bc09e6364405168c9bc829952ded1621b21f2afac84bce51947bf7f6e0501bf258405e178af904ec9320327942d1a7b6205b06c2bd59415b49f874644cbb47e31066e6430f36c124aa8c97d03f2ca9b06defd09a56984484bc7b98a3e8e53f6bb69660526882a1dbb29be90825a38a41d4a01b0349c0008439cc511ea7b0ba938e1bc09c8b38131f10090a42f9cd35cd42446a9af25ea111de91000ac09a6691d1252e0c56adccd23f3b86ff4314d071dba1d8cdcd46753e1f3d57a22de79c2f2c591b8d0829b48b4b12326391992b6f7527aa5dfd8f7cfc453d447e2fd1a4bc3e26086fc66f7dc75706de39f539b94d1b6b2d21c828863bea865bbbc8d078521df50dc218da3f2a179642a483960d2e8b7d9df119f63e697e6a7a113fef3f24d21f733b69fd86b256057b8fd5314bfab90ceb4ffd83d48ac6ba9f9da02bed8cd8bcd3498ae49fa2726ba981879c034b4a56972c26460d99574332583aefb6f7a139a9c82fd82434db119e78bab161b11aea0a346b68f8411f8f2fb81f92585f11c53a3270b7090998229cb995e3aec0b63c1225462f97b5ddfefcf9a7ef4f0d018a40464ae0aab3c1a6957abf9785a1e3096a0254e821ada42fd5dded0a8976bdb9c3da1ca8a09d06d5783ee793423115878563d96aca6e5cb10b7750c3298f866605f42a64590b26b068973d7a87b0f865f8c33a281e2a410da1d2f4986fb3112e764f1e02bcf879f5fac2f655e0cbeba62e7480cc69ab621ce1d03f81d14f07b4084582305511675bd53dcb37de59803b5cb9dc6ec00e23ae058b5ccbd7c683ec68414717d114ef1f44fd7ae23882fe78cebd1d5288cdbb7e1703bb145caf9736e22240a0c38e21e7a3764487c921df5a092e3b35af3bb77d87a98f4d236ac746fe71a84f01e7a4e9b8fd6d92702752955ac2d033e84b75643a794ecd033a8ce126c698ac0a7631734d4cc0873856ba77cc7f9a36953caa9c00083577097ed265d4a592394c7716b1b13608ef47512d9fa22efbf33da1dd76b4eec2ee49697a2713d9f9fc3469b3d0f6a998507416f578ca5f7980b616e9b0785938dc5a98d9996974969965a9006eff11c44188141395e95d3e6f57d27f4cd1651e419c30374a69d915f779e10652bf2e66818edab7c8f3919882e926a2b59031c0dcc8c951aa7489857a2f27618144315a24b4f5c92073367aec260c2939d322ada07e3ed8aa83eedccee988c59a63b202d293f364a4ebaffa1ef4af40cb82fe3735b1a4f025f12c713dd81d768521b6c210fca655e70484d12cb21ae71d1dd8f68d381bb2199ba880963d97ce6f347885a282bda06c63b4deb94cfa7107b6c2458eedcdaab2df26aaa99cbebb1d362f36f1766cfbd85b35a37be5b907397070c3bd068e5926415e724ecb423e87614d488b057c52f5e953c6493f262345e69ad40ca7a0b45dba53c1fc2db4edc6f5062fb09e3f4181952192be4a0115f63d241ea9d0f1a36f0e1d62f59d967158980fe5ecf11a9dd52e687467761182f4df5d0ce22dae83eb9c7e87fabbfd09a7509166c8100bec568d3a7e85a46bdfbd0dc74e1d6262a5f384624298b13e06ecf65834808a4be8b7b9f2e75de8f0faeacfe257dbd422cc2721560dfda2e04d5d3015d3d49297ff0b2e51881a6d3b72c6f679decb28ebb35f26124362531bd8ab524e4ee685b7d6a9157c613a28803a3327bb5ef2d0588535ef90a404bee135d2c86eb0205b03c2ddb6d01292393d1ae32d3096da75206360be5dd5aca5ac0533d3cc8c38d9424d6c70d462dc1ae72edd126d09dd1c22e2de0197ddc75cf77e07bd2776379ddcb7e4f415bcda00296554a7b27e7343cc8af1e094aa0f48a7ea1de1738898469572c3ad7aad0510b703ce877b819d609258e59e448ac3dd6426e81722de745a38a564704767cd46231f98cc0fe1547e973cae9c10b270234324da68481ac0af64abc6ee2e426a3fa02690e2c83012dd519c51039cbb4aecf069181933e194765e911c8ed3353d2b1f563946a44661d3d8d02061b01f145a158f7671ee5b912c399b308d7561c0a9c044231b21be855bc2a4c3c37ac1966267c4c5d54ab74310e4bf96a4f987075d2257a0d929782f01f2d912199d62ac5b864a7307b6a5a6e5a328af8a0f8cd05dad4acc8cf8153f217fa3c2e0a72dd7cf97f576ad05daad1d4db4780503fc23f1abaee25a797e9aade42cdd78472c6a1d35b0917bf88fe2b221773374ad8585219765e551ac5e11e700100d8fcfd041a241f8db92c403104d8e36d3fa1077b41dbf2893b2eca351bf07e0b780d66d0c76d85fa4f582f5ff7d22ed41b9614bfc7e2b02ae33d101ecd46e9fe8b341bb22f59e0a9e28a92a4729084a72b8a41915d952d391f78d6f683b06480a337b56f09d6f345f5b0bed2169ee2f42779720943513cf1a2e5ea76a81e5457215883fec027fa92fb212896082d4332d414642ec5c27fcdb9c80aae6a690f9ba7e5e5a21d3d24c278becd163b96122cfb89285fe0e2fb7a587bf3a65f5bc38ee3e29ee463b21919cd8789a291a7f793640ef933a8d42305cb3515f58ec69ca7f5d1e286921f503e3eaa63b6985b8eb0629bf3b4f18f4e91d7d1fe37fb396eb17192d9821fd41bf5943c113c09482de6bd61eee6a43943bba3f1cd65dc5b8ce2d260fb15f4e68f8c94ae203ee27e3efda3a52420c3f88d07781710abbc33c157236384dc1f4097115056df021ad226aa65bbb73627d832a2ba4ae973ba8c65b0913b6287be9f306351cee4356761cd25fc405dd3d52801b9d110d5903c39aaa96d35260d11dd12387dc3a68bdad7c5f0a1427839070654b411e1e6d6a39950516fc31fc1f80504b6efcfc523ebbba7b1d0ef08b7e6760b63c1ce5b8c1f659e0868bb0617369e6923f491bf6002de74457d92cc0fe801f2bbc5875602741f3a2664587deb0f55724819398cb0a75740e5f56be0f0ba43fce9afda8506b64e92afbbf0d224f08cdbc78749350eb0dfade37b8a90a611c759658116bb90325fa476d0104c09eff3b2d0ac70a8678d891ef82c8d668d26930d0600f5c8c11edfa3fb3b577b2a258a0dde5edeb729bc4d731928118832579c29aa0d24d0075e51c494b4731d378c593450741b99d2c17c4c54ae826d885e84d696dcc3012f26cbe13c664946452788f72833cc894e0de9082d74f648b84392583bbc19100659f313c21bd0688fca45187a74ab067446a9b742b71a3e0a8129086a488b4cd06df63dbf1fcbec7f87aa1396743042ecad0ba575400a7c390f253df3d80adc1c1911ef65e56558f251af2511bfbd97fe5e0d4209da9be41a1f6c654bfbc98e69584ad0cec1d8eaef643332e907af4fa3705937580a0b80d4797a57bf921338c0da7138c13469eda3dcb744064ba9ebecdf2f8306b2a5afcc67b5e401ce6a6c5c1109b5bb1c398298304e08eb6fb65f0693247df4ecfb4899ec70963cd3652eaee8279533d25cb99edb8f0312518ec3be3d60347041af9527483cbf88efaab1419d876bed5e68e89bb5dc5d71b63fb4b90f23bdd7d12db989803f3e575e82fa3c013ffdf194d7c3e4b92d44172f6de51c49d104bcadb37c3156ec367307068bb2604ce69d4d0fa5fb32654c55a84c3825ba06af1e61f6fdc50c2738d5c2cc2c221a86e067665e27aeb2c24cca0088e98571040626233ce123a049fbb2ed9d1e401cb1cd15f24407d84d61e5537f3264f8c772fe3ce1a7e360d6d0f2968091b8f858833dcfd26583df120447117a6b1e95b5254ef04dca03ea2c389629d1333f7ddaa37abb199adf25e9256c56e6089ab83f920b535c5adc54d3e00c6ccf15093c314b9b78c5131b91d89240b1ef1255ef848ba98cd93a78951905e08450df89e9aa9baedda6eb61199dfe79187ca3bcfd295c9ae26a57aecdc04f3b0db307197a7650c2c7dd6735fe0e6dbb8ad51844f4cc5f9420b9bac759dc95299731b32c1539807cb138ca86abff96776a1829c33cb965c53081e8a4cdfca7974d36c29a481726910f93670df662a03d540445155ff72c51290a72ac13dc3d044cce6218af15a9cb90b5c74cea4cc4371450582910e52bf68ec7df5c5e360b6e0af3c1503b6ba9c7749166e2badde63fea27c7b49d18a236e014cce6f5ca2227517eb5361b833ca6f39585b4e7292e1c035a74de21e9d7ff2dffeb278f3ccfd01fad1dc3d4d7362b82600e2738d79c912c15c29452a4968f927d35fbfa59eced9128b1cf0d81217df2a499a3bb715a6e03d16435eee8590373bbc81c7a19d752498b6911b84382c650863e129d0cf062c79bf11a0aa28fb993f8f1a3458a7c55d41b8801f00ead13fd53a642679970e8c02ae01806f4fe6bbf19bfd521c21ecd59d9ef6a65b43f65675bec9fe3bad80aa6a17ddf6bae01f73479db68e546cc52ebb2ed818e703a305e524c3e1435950c3d1a03cff24b24a44e22bc0fa3a806ce11b4e9f272923159e530550e3a590ce29c6e14b1d1c283ceb511caacd2dcb8eb9fd44b644e35f21e50d47337c39cb2ec172f40ed5b16002d72673b3e18fbd4f56f092152726fb249338346d08018c42861d6d1f30773b53a8d4d8663439a0d1abbb4fe64b7611b6d45a390e47225ef904f652883b69d01cb764b7fb677798cb819652706f004483c9b81bddde6e4869dd33f40187ed27b08ef86b99429efbeef2ac998816dea356077eb01ad57cf9e14885af4fa9de45876b1c361d2e285440eef6ab09086a11fc17b85e24184f2ed38dcd0cebbba8d9f7c2e9ceaeb966baf2b95eef9ccfa481dff420f6d5f68d151d8a33bf78d975253cb8f9d14216c362c66b372d413ba9db9390b9a452a54fb1b731806abda56aee1ba92762259a8e83656f03bf87de3060174f34154cbb70797c08cd45e9c4f28727a223b4ca4063f4bc048b1d779128cd96892f00f6b67cc043a782f51a5f1d4ce7e7d4686e261429d8bf42cc5eed54afa40d40ba9376269d753da736eba309139a6f8ce17d0e2e6a5a0702dbadd306945699cb88f4be505aa40c7d35ac41637b1d6307f864de076d499809780ae5df0c7e63b3c742b6a6afc4e970a9c8eeee1563a341c4172063ad7f015a4c7e0aa7b73f93ce29416cc4441ebd581058e426c66540185a9f839c2ac7265a9c88ee2cbc9ec6349e704eef401d0602a38e60e7e9ea03bca802586c6a4fbecd664c7f40722f8d58a4a0b15ee9c35610dd28222b1a7be5f3e51f1537e3ebd51bfcdd71b32108ecf1181b4e149099d32bb253f0d796e6952f2f6ed6ed2f4a4ce5c7e8bb6e0e33dbb8c5f3bf44559ab67fcadb139baf59f5694a2ad77eaf1954eb468318974259c8ef3d0307507dd9cc88609fd8d5bb7d9ddbb024fbd571f0f745630c88c1c81914bed1bb074a5d3ef8339a57109a7363577d4d42486d94938feab05acc374885915aa2560a132002af4c77cf90b6bbfba15a99c4696d702b4d82445bed4c35820a0621ce3a00e65a7a3baf87b2d336b42eb4ff982b5e3cd6b3901e7bb5c10772bcd582ba2814010f78141898d29f2d6565f2b342006703fe1aea64db3439294cd54df36b48c74f81d9f57058d30ba01ee167636d7f1f14d12d7ae45d3dbd8d87fccb8f8d7260f82564b6a9fb9897918aefe36cdae1ef483e6c5a950ce6522898c8c1753363dd0635f2e301d28aaee28a131588258601cce0ab381b3c0c9fad7947bf6d753a6bafdef01199571814497183bb06d16ebf3859900d7c0ecc9a56bd794dfd9efb6e373be1774a8e336039b0aaab1925c1e63cac182387a80b5895d4d398e98c0f1ec7aedadfed62ce8bd32ba7a0c3b048271b61126ba681f0d5eddebdeb7407c2a6a57f04e55707648d2462cbde63a6f153b144a22514b364e5641514f9e0c7c4e8a1eb1e82b33b71054f7a1fa602e14e23e4e7c0d7ae10991d370aa9f6ff5ea9bda91ff9ef0e7bf8fa6ceadb74c91a1780922ab791e52280e0c957bf87de6169d1d112fad335e0fca73cccf01951c0a3697266a68576ce516f08069177d018e00a506c9bbe32610756ea287f97afd77364791702eef993070f9fe1ca436a6c4f842a4ae9f911b1a64a897c60d56fa5a87ab231124473d6e13cc63c0b7731f3d9139df408a8bfb0eac30d729d23dd1488cca3ae72c66285e3f28f1568d30dd207647748ab311bd9e804da60f38c4c6cfdb0a53e914f11dc53fce869eb4cc598459cf5e89c049a713a72306558f94d811566cd74327c10a53c5ac09510d40c636299d5173aa213b87dbe1c056f20ef7383514d36ef212996eeb706f447f0f74d14b6aa68f6fd9057d126a633154c7af31dd16cb0b11532e67cef779f762ad1c07223b262d52b39ad5cbf5c2cd9ea5a325c9b799a394289333c9e601c7447a51f78d1a98af15eb563c7cf93117bf211fadfaf54139b0e292f4bc9d1e88f520b3d86e76b3cf837a6debf3fdb6f741264c3e8d77cfcbe1494450792f46c0778f347e1cc5032ab6304c975138ac96eb62b52ddb6b84edd2711ac93fa6f8991af860131c19996608986da1ff86b15c8d87817c86ac28608abf1cd56ba120ed43661be020566018189669175e0e3ab13a5e887d8bc96f2a437dc127c2233b7efdbb1154392f4d30b0c202f34b1157697ea5ea7dee1495ae793555c731277ecf1170828c96434f8105f02c09efde852cf5e8b46d1ca83395df9016670fcf55f60f9da16cd52e52935a5af56f9d3f68de8afe4d14a05068166ab5869e8f9e6d8b3de129d6a75cb943554e3ed0c9ab4f44767031d082cdda1b5ddc30217f04ce9d80020b82021b7c15c031a94a5f96d8e009c86486ee71f76d2ea665b7cc4520aafcd67f8546e63820c8af49d15dddf3b5f75ecbb007e5d7599da04085ba1499f8c12135fce516dca3b6e709db17b868b637d0830eaf41d85b938c1e23a4a7babb9f686a63945e529f3a24fc55376f0df3ec301f279c015a0373bb5626480429bf2c51272a67f3decd2964931d803a99dd6cd02da9f04ef80e838939969771b5de78a9c2809be96b48892df44a02d8b76475e05ec7365ca77fa6fd20c9c599e2bbd79562dbb9badce5b67eef3111c90105f02643caf67d9936b1c1d1593dc95d58d2ac7c0f67aea51a56d575114736a3621771b7d3161b45490defa4babe5a305e4a3ae135cfd55a255d35a3196be807843dbe58b7af94d299071f1d4823e2607423592fc710c74d16a3a7d0609ef18a5afb19974323aa61ce7b195fc7b594dca9b21f94f1c7247df7ca71261e0e5c6c606b4769ea22f9f32e4f346bd3d269775d919a4122a0100e233c0c8a21612706818754a46381995212baa8e3634f61fa75787499ccb4d15a9cd59ca88a81c76b66dd396fa072a9c47335c5e090f717ba467a6a04813f6cf869c57562816a5dab4bf3b248a44d985f4c8eca5d84099071cce70c5837a7a838986d9e3dae60d6e2a7ebba9b8cac20f648a30fce27fe0ebc643583fd65da6fa9384ba2d6021595b114be374189717de0d6dd453c7484c362ff3d034147b88d872235fbf2dd514a3557d793b9b4d9e23433894f60b58aac81900ac95fa78fbef4206d4dc7c9157576a9ffc80c7b243196c06c140ec33d50798fd4146545dbed33a613ce028ecccaac6f0f53903303ba799c717d746a1087f91746d9538161d2130809066d9fed124ace11b970f55afe189c0e750432d46e9a960558713f32847ff3eace544e4a18caf9b4422a554023bb00789906ba5c952c4b307bfef2781cc528ead859141925d5e7628971a839e8d4c082344829d8d4408d1e310e94cab5525f6a257fbb85fd60283f42124db565f1e03c34855ecdf2b3a13d507c6ddfbedbf0f8a43f0738af5f804aded037b5700cc8bc2e9272c06706c465de775bb0e55e4079e47c39fc2f43eee5f2cf825a667a7087e36163ef2e78a296ff497a9cf52491ef6e2f1ed6415ec6e27034ec032ef14365be8ffc406a206f2180f40d012548d2c74c5b71307d00061fc0344d477517aa41f931ea6eb2ff4cafee6e33cbdd1491a031f564914b993da581fd211ab8a46369719688e72e8424ca554bb5c7d440064252805cd79acb6a0aa3780c87d7f55a48aa0436b8bd14f0a8ca1e58613a72f9ed3bdff5f631290ad95c0af706d8bacf8057ae4f24824fb0818c954702ac9ffecaa2a7ac5074f0cb006142023a4584f14efc2d318f59c933f4efcd6b8bff495886b779e4885af3b8c1567001e69a3b62aecacce9935095f1b5ef2955e1ca8543fc7dcd936ce65e9d7b788954421cb44429aae247540c643fefbcf0a455d66fef47f30e05ea565385c43d4549cdf52eeb713142e6d20211bbb8bafb4b58be0f11cd667cb97aa341b99c00159cf85b32ebac6a9488a09cb801b1b14d7dc45f97b414789a63977ff4b420dbe40ab74214cce9b7b0597bdd3875c2cd12448f7648a809ca784a2ca8502bcce34daa2cc27df4a6ce2d7a200dc99ac5031836ea1e8df0a49c0fdb2c6af05a234f6794b3e3b8ddac859a37f1d72e9b292650027347949a618978c4f3cdede448be27ee06aa6e7ff0fd8fa457aca4c06b187af2e76bd392d2ee9d1e20748e5239e0550bfd4716a8ad4a2c1cf3c460ab428b95ba37db49e0d529132d97df68f77ea8b14ea5f29a92594d9223bff791cbe0f29eb8bb882bbc790779f23e732fda9a13b818762a1d1cabd30826f94a6b797bf0ada4d85a74e72296697b70d77e6d97b1b5a60451dcf4908971d8fdcd566a84fc76c365b1d5335cc1d9c0dd93248595a31b263b47982c718bf9488a90debcedff317f6822639d0284365a3faf8dc2fba8286235f3cb63a79c77089b34a23dab2d623215fc88914cdff1479aae42b97f6c00c5549abafeede7a13849d35a8101985c0b04437866653709395734a527f5b4bf154ab4d8002c1e22ab209c472a92ae4967de3b47a41e139ff801006e10a0871cb9e627885ec3e26e30cbe37d951521662ca3ea32ab1f5e0d2c857f71d0ea11c4255f2c7d5f156ef95d3d82d6aa9a71f44bb35cef1d887bbf77c3880ba95d353b6bf13aab6ae6cd0a30815b0b1c619cb57d79b2df56c759880b3c6159860a734ccc7d65896921f6479f41e7ac0b0691a798be1a1033741762f055836845fa15ad67952e9706171217fa2f8e461e4f4ca5ca74c6d959621e33a10b056ed3ab6d5fa89e54ff9b23c1ed8606e2a49d34fb9d6dfc06baffb5ee000f43c9872cb0c1de4cd067c5972fb3961429bf22261b02d9e4b184b4d6b026376d8635ad8a290a7f3bfa5edde60dd6a579f7d5d6466285bf6e70b465c01d4cb2b63ddf85b80541437fc1a66738e2e2769929bfae430b09b6014ac233e69a9f0af43224999dcc40cd4c7a89653e60d25bc7ab760cdff0033e515697d42660491f4aae7a83461aa4a3a868bee0fa373ea9d7a945728883fa28e93ab8d824c015018cbabaf446efc6b2e449aea85d487e72afacac5707376d66a1afd081286958da36252d50694837eab2e77882adc48153524add4cadde0bbc499c0c385111eb9d629d19fc21c4c6dac1650bfb0f5815218683bfc32d7040050e67a2667ff3df72164ec29df7fe8b929f32e20d1a811f9f7f828e9d1e49d0cb038abb249f60c353f56031517ec832bfb5fdaffb9568065164cf06ed07f57851aab331adeae9502b1c9ec3767c5c45dd81846cc79b3e66a94a0f7f77a9357d2d4bf51ab8c77a4ce998be39ccc227f59667f936f874524edeb71c52540019981f3da2613d7b0e55df8eb82a0264c37a11b1ca2e266e9651be60445931a1e168911c1d0b8ff5154975740d3439a43745bc71830514a4ffc04a3df1aeb4132c3b3ac2312333b62f8ffe8626603a439e284b3c18a717a798282854e09c493fa58c3730e8b9afe82f57fd22f84c59d154554ad0acff1424054ad7bdf64f50026ef101a7881bad361e94a310867b1def13a3aba08ba1c1acf545f29e6985570dc66b633b739627a469a05f5518801c39dce26e3760918bd260575effabb14f433a58a3409df580489f5823ff4fc22da19dafe4a326c5e0498eacba7763425e3b99d7aeb0efcb5071a5eb266dfe1b3311e396bb8bd0257464d453733f96c6464ee2c09bb4883a0f9f94a990f81d8323496cb6bd6bf6f2c38c116e5a3e698753dc6c2ff5ea267b641bb35721a519371da204858b28278455f4378ede3e58880432bdd9946e6c49e9c0cd94a4147721cff8dde38697235015077410635608f46a07952b569459888f227bfbb5b612fe97b66aaa089a3d29828d5fe94cb07753f3a016cd106d40898dc60209333209b3e5863f5736a4be048f1273899144d7db0f286d0e6e6094084b29b118db7086967b9f549449a433324cd0f0729ebe87aef18c23e629b42d2e71fd1027322230ca274bd552c968a5532317efd791f55f44366e217cca93eb705ef928d3c5e7fa39f1b139c552ac286bba93e5cb0365158181206bae6bfa1d204ed7e930b84abf6431c80f89139b14ce40f6a99ee3761426d12c3aa4dda750ce489cbac1ddb3e82b81444f1b22cc293fa73f1365fb04bcfc068a091dfbea4f9a81cc2e60c22509424cdd1d988f5815f166b16e932d59b01dc6f9c027d4b7f148b8242d2f93eff789c604dc5b364230bf0e0f20ccdcf1f36387ba618e6e03a851d263ce278acecb619ff1449b08cfb190e09f16e98cd6ba8eebc24e0c0a06d7ab959351a5d1abb5b8e5a340fca0f0698ac8c51613e62560764536d91124d9411ab56c70cbac297586541f038de81600a009da6223a287b1922944f9bb55690cfe220202ab7e4abee01213e91177acdefb52359940251b9719125897d960f25a92d05815e0eb0aa2b102b498f0e8c31d1d4e524414403b433853d5273c1047a9b3566c00050ad4876b8a0ef28f72218e25d0f97b3e5fa51e8ca66d1ed8a3b9cd4cc12c6104658be2a08574375c6242f315248971cd0db3e623084a2de5c6cfa6b456e12c610334a4721e00c1f7a56c968fd25d949b60d68b2b16357d2f25ceaaad749356ed611ac2803e545a7ebb55b1fa8856bec53c4822cc118f5da0e2b23e5586c549b20c0ab56fe239b77d96000b813202c2fdf0c857bdb80734af1af41e1c46ba9a2406a8e602538f2c40f2cf5d2616f4f9da6562ac6d9c93e3d1d2445d15baa026b5566a4c94cc6e041dbc01e4e49d3dc5815f272e3b38db8f433d212db56ff418bcc11bc056cec31a12ff280d5bab92fa1976e1f9fa41bb401f1f6f13075d1dab87879ad8571d861e82bfec503577477a91995380ee2d2fc3e91e30ebae32f5886976bd0d3db3b2592e69bbb12584d38bf1afa89f35b07cc9b2e17f84a41c4d871606481c0a9e9e280ab08d51bd160cac08ec7203432c554b6da4a256ec14e8c43f77ea19e734c34c115c3a8e864b9d7e3076cd15bd5eb3946825b6cbcafbb39bcdb351790bf8a691caf456f53d631e1cbe251b33103861457e39389c5d5c7b99330474ae2e21f047bffdd883714a7baf06e9ea15c11f8f15220189c8885977ac77382a97a02683a1736b0f5f1a21809554d3ebb17389ad2dcb91baa7c4a9afe38829e2353041e787fd612dc71856fcc8c7f31e2f6ce982a7bf9191b298393599c0078af068412db6813b107d907c6d113e11e3fbbad80631217803a4e65a6b6b68341c66d1c73b651c14d65ac0d353bf404b4bc3723b2582fa317b99d2ed2d2ec1140e44a98d110f40a948794c55d03bdb13b89453411db2100072a0384617f21d8a70a07dcba2388511e24aee42075c8752299c814ae30e7f36c867c416e23e42b0e3f7e9a15ded6e2be956acb36afd20dd622c40ccd90e49c73aa823cc136ef34af0adc26b1641c6f21590036a625e09789217f3ba9a8715336d501bb03c8f6d776fa87f5648bba680f936b5a692074ccedd4b8ea89173342fd2ce2a06ef8c6bc551e229ee15ebbb7fc87fe95eb3a17b8d93eed6346f344bf20372096e17eb289ec8d8f70dc9c236b0521820c6ce32daf35a6a979204535b05d6175a7922251ae00e016ef8e361552306de6dabbdf1e763718f136f288ce82837b902355428e577fb38cbf9bd5c1a69d2083bf40c6c9d723e2b066072eb2842b39deb6cc5007670c2890e54a512d35440ee8599f834d24571945e59f1bc3a398b3e107c052ba873c63d757b73bc0a702b13d64f2d61e524b120dee032860e1f5e61c56246104baa20f8c42f854aae315a93588fed26ebbafe90fd747a16e02e93189dd692af0f0cad7b7888814159f78378bb1645fe1b16bfdb0ec58c83446d6d89f000770d49a14eec0562f24269b4bc013006fb993629271745fb150042e4185f27a3e88422f2188f6d774e4d12b29505fbbb6ef72c4e3add3751de2b49f6dc2531ea3db441c345e2d613ee67df73114e9e98b65e28a73dc2174509beeecc3808fdce967edac722e6ca285717318b4dfd76db952b256746c80eca38c44898193b31f313f34c36b39a8b13eff210a89a64ec9fa43669ff290e36840391f79ef33e8b20206267fb0c4910069bf310caa044dec3a96cb0e80c126a11a1b77c3ae7cd8bdfb78622d9097708ff71366e505b71fae7d00e0486d3931afa41e5f70aaefaa9434e2ea163b8110efb4135030562161d42708085a35762af3ce235fdee5ef895e38a5400ca9d1bde38709d19b8dc789c9338995452bbebe99f87f9e78ad45bcd49ab7d3c5a1df51bb85f36cc97bd61065c3349e6e4f9573f6bb7ade17a79d4d9c0021c1732e814fa80f056db36e991c67690c22d56f480c2417d24498de0647fcbc82e1168d960fb4d024d2c4ec04c38977e881615b65fe9c4d35f66d327677f2fd8a277d777ffd19d26b170d1e2cda4998f445b8fd41f6bd03ca80427344cce8dd804efb30a1e31d04aac4391ecd58c9fd303450ae716b6481a916e520ac398d98bdd83d57e447af89e2d03f3cc3466d79efb6c4da51451bbd5e9817ee4f338e8e2f5ecbe337d86bcdcad4de1f913d19e25a939e79808f87cd6a6f021cb0b43dbad72a122509e7d2e64d0d68e8dd782a49ebef0c60623e07a3c238594db8d95cb54b2d1bb7d2f7bb1e0a2e739bf17694a0f2aa48aa9d03b4774e3f7aa83207927635353cad885b6272d3036ba53c29c19e13019ce39c323c386bc612ff50a34b7bd181632f2add97cc2ee71bc1cfb416dfc68348800fb543446a241239245e112973a0d6c6397ef04cd7fead56e1c24478d65fc588690f3f490fadf56f280a86cfff9a7e773a43f95c3c52b5454c61bb83e3f30f0b6175faa6126cb7feb7049cda6f761b8c3510cc8300ac41190d73ed5be0b6080471ee3ec1a1afe949912ebe725101f9ac399592e0784c18d8c7b040a9956e16f85a8a47dedc62c92a5b74effe46f2fe71d64acaf4316c81fe4139cdaf1eb6895f9ea5f8b5583851b71ce722bb85563622a17e5bef688e53b2e4b14eb26ad47a60053e0ba29da49798c2644edb55501ebcb36fd5f990a326ed3ef7e8a8bde21b0d19579e73a8a801409bd0f98196256ab32a7b6121d0fbd82b815da2fc2e43b982a96ee04e6a6c1413dcdb4c27399e020aa7583f558209d02d0481b5722a67e2d24a01c39146a9ef141e5eddebc3b2648bcf66dc9cb6f39e71c1a61cf5efe57495d11eeab697e4baabdb3dc0b8cf8ab7faca07d817acf8fc67d6acf86f12e3835fda0e4a5a287a8fdff6e89efc89cb33f5c70d87925ea035c9048bb58df9c4552045052501ba76a9d7305dd34b3336b6237637c879f4be7c1433630eb6623bf292b3e65a0b8142e969b4c0cc27a39697178cbc3bc14d47d003ec215356db95fa870d1d3d40a71bf0478c8a3eb8c30124d843ea2fdf7ded51aaddae9123476ac6c8fe7b58bdc86061b4293bdc4e10644bb7d7cfd4594999420659ad84b95f8bfeb97435e7a975ab12b2dfa4a3241c60657d0afb8881ada8090bd5cc69b32e4f30b123dedcf5b1ba344e66c4f7dd0d7d225da04451dc5602f28a6ca9211e942513260182be97772dbffd5a290e091ba5046ae4accd7629f886f35c3c3bedc57e7a85cbc8b830320da905bcee70f815f4f87c22483dc7baf9ba8287dccceec7012e717f2aa6ba4228b88c70439711ddd5ec8b2b3b630fd6164276f3ce3c94f71222a5e033f7e77e3cf144bd82d6e5e774787ad4c75e32f951cab94a675bc885aaca8ff6daae29adf1f291d0dc2d32bf78f8527669c8c3d8c2fbc35bb870f5f37a82e88be3e4e30ca4c5b0398fae308014b1a87001a6add9886aa597d41f509a674034ae538035cbfee9ac6bad827c5d65d49ca113082b968de4c7959e4176244b153634f81bdc8f66b0dd4079d4271b2186a1ee1262fd5e17c57f8e291973130e2cbe32f94629f233233e744b18899594369fc2bdefb2b42b385ce1a98344390d4627847e93b2ffbd0d31250c7bb337f2ee91898ab98ccec1971691f5050f3ed0ed174a642562b634ea295a3b778484f0680d34240a1317c54c1cc294d9481e10dac966ffb2d18e4bc0427989d2ae91b80b58b8f666afade7ddf13f625b46a80d3b2ffff12966eeb33efeceff8531872428f68ecb5db3e3441619f7bb7dbc0038ecca00106a76b26799540bb95237244e0e903576b90bc1d36db77c4320001d23c4f59953c8e3acc3f6b0c22905723b6dd616ac90ef7f7fa91df5822e6f034cce7c98bde14bef217275b4edf8a8a22f06f7ecf847d9c50e0c8af06627ac54ab3aee16a31ed7c24825156b67682f267c6802a1a43809e28f54ec2ca5bd02acaf51954646d2ae19cf210c1e714d4a0c2f7d257a3c5b5045d9a1669660664ae89e1ba1cfe55c11b0559953162e997d7469e541afd10044d8f75aeb90df0cd8b41646004583fbcfa5f1d474712671a9abdf68bda278dfd6ada881a20a0a33c17484fa2895681c1cccaa2fe1a1c7d78eca5db460e6cb2e5766ded4b635f2a1327aae0495329ec3faeafce05e53dfe410643e68df1b66d463643fc3b46046aabc022a492c7874ff0f6759975433248e3428f676e3ff6ba0aad5a72de55fdef4b6ebe48b175bff6cb454a6e2fd8bacff203f89d3b50eff998139a4f94d1d34e31d949c86b57094cc86f1ba6ed2b87584a2851170de3aca5bad7ff9734230e67f8beb654facac50a6ebb1e20daa39defef1c23b8c551f7b80e6111b83add036ff2d40280f510090fe2c8c609367912cf1c265ca5320f0421ff01ab7a97f158acfddf71f08e031791a2cefe77d342c0616da5413cd722d545851262ad9ea30ec39b5025aec3ed77154d7de21729740fa88aee58017b1c66bf103c4071456488a92cb7f3d84435da400d6042985effdf67ed7190dfae9eb4302aa3395e0329937f9f5be00a5b86980611c2011571e62cf8e48dacec1a4451eb11c3b4f8b1ed7e9a9af842e779bb339ac59225efd6abfbd899e0567701cac41ff65346239f91239dd8b37260d4ba2461d727687bde752dde3fecc923a42c075a5770f32cbdc05e638d3689e49a4a1e21c775f7997e44aaeac4b099d5621fa8700317cd58e1d4e52d02efc1b16441e8c73cf1b16a038449517aee8e91a7ed9c80d86b196c2be0703b5820c79e9698a878e817cb12b6c945994b9926c6ccae68d77d94e74e7042d23175a8e699e34a15bd4d1ec93c80daea777a927307dc91bb0b1dba4a0e30f5701f6869aee99335b5209a77a7a09bc8b8f337bcdd2da7c1c0d26814b02f5a6c98e60d73ddf4186acfcc3664c1520ae550520e75304cd34620671e14ab573a030e14502a569c30332abf13b158947c56461d379560b04de1b00ae114587648f18b4d52d7e8a292568f76af984effe705ddf0a50aa4197e60fe4d34bff7adba0f7e470b17397c3abe33c980a65d313f05b202337539453543d9f21f560462ed38ef429f5b5b7db3d4917262410b67cb812a7203432055ae652a29a557fd4f6f0868bd590a465bd736eedc9a6368e03104b5d48b31d2b0e5c5462931295c4e5f96ff1aa0cc9f10b0f246416e66d41c01f6f0e48e219ad543befd94dbed4e864e3b49674e57f006956a6e85fc5dc2d630ca4eaeef6f5cc21b01103a60edec709dba88c50b6de086bcf9527b15c74a34fdd81057664a9d6575f4f62ce8c3d1bd8748e0801aaa0d5e3d0a796cf978767863ca6d758416ab4f546817b1cd0c653546f5ce5cc95240777a7f3e94f014132605936bcbd5f9c5d9505d757e595c91266f70e20f05fd2918046de9eba2b6a301878e3746eda66603a2341036a481aae0a96875d9c938f3c4bbf2b73c06a348326f82ca46018f45f7035b510d4c6a6b2d73159608944452297f8aaec7ece36be6adb6954ce881e8eb9f84d134280d85c4dce609515a4db33706045cfd492a16a26189b70de9992384db9b226e433551ff9f2b68af6e979b35492f9a7c674bb84c73f2747ddab3c3a26a5826528e8c72368e4586f79724bbaab2b6d44f39f19fd8244670f0503308661e1b973f7ea3bc0e918e49d533485b38b484f381826a739bf675b5fd6f911a2ec7c27f200ed3b072293e10c03f0e8ddd062ba5ca6327d914e9bf6b200f67a27849a140e188a57396c0c6adbbeba8dcd838d2149666cc1d179df2debdae1ac42026c2ef39fd0e94d0d195fccf7c647ea8f461ae02c373cbada6760cc6b2c7535fdd89d52089afb6e36b010c5688ca3f0c95881c39fc71c810691bc7d02920ed7b5eaf8e159c6e47bd7c1e950b7b10a6e46880ed9093b6d4e08f1fc0c5f2f5d10565763d8d2acdf8641c4a91ba4595348000368ce3f250dbeab0c38e76aa1ed5f7fc6c47493531a569963c479cbb5ac35cfcf2b909446a562977b84638133b65429a974775a40f1e519bdbbe0f5009641aeb532d3dd5beb3e3785e239485eb715d0be1ca651f4e7e126d0ac69f8424f4d5255858e883ab94a7780330318193fddf2a1dc4aea64a32f2f0fd1532580fd8a106f197cbdaaeef54d8006c4f4bfc079e2f5e9b0c903a3645f3a6b814c368e02158f729c95b1d19d1617a95d1690e9c9df0f02a9c527b54a24ee70f74b49400fe999aeb25e3da518bc3a3a1901fdd7458a35030af1e82b627d8f456030c19ae249f35bc3ef657a2eb39374222e6022759ecaec2db8c1a75c1f80068be5fb83fd4e39b49d0db3d41cc5c0840944c5a7780408576f0d87e5a066c43be976341eb9e0cd7b4ddf1a9612aa598742dfd4fb7e2e162cb0a5895dc819853b11e08108c17ea8d3a672aacbb673ba39a5ea1f9d4ec7a40dd644f2a924fc16323d6dafa595562ac0c1500a60a0c7e1ffef874d0bc1b0595b4a1aab9a3430728bcaab901409aaee047722516ddce9eba03f88ed404552b13f792d6895326a436ebceab297c385d13ae964d6e36b97f4029974f10a5b372a8254daa06086f20014374b8e44c0c7a6b2f92df77fc1b069be66260e3618fed51ed05d8cc04f78ad0c076198f4cf755bccce00ff9448b41898f2ef8790a895a9cc6772735de1b332e81963da9c14647be754b2a607dc0881d0ed542b4dc7cc26ad96fce84241d97d5200ecec62872b55f7ba5ddbee4e1835beeb52746a463039595dc7bbe7abdac76a714a7b0073703612f268bfb5e1395458e439265f8c396060c250b3160d7bb301c761b048f7787a0834991746d06c672db414d67312cd80184ea6694089302b75801a2fed8813652d7b3796b6c6e22ac29ca129dfe608f84d8e51d4b6f7d62814bd6278f26dcd03010645b634645a0e7bbfdaccf02963c9fc93544e136032d14fc6bee09d42798f57d9bf1866be497602a60e6055911802bd7336359084418d8284697709760508f039f79549ded80795bd88e0c3e8eaabf5c61f6b6f55600bc1060581f4cca2042934f074b440ac89bcd3c94d338a2fe93a2907509f7a3a52fcfdda67d9de3af2a717da7ae4557f23c99e508d0deb2d1475beed03b0cd8d4fb73fad43cc95363a54f592c443008f06c835f2ceb20fcefb8faa2b04d3ddbc8cb547165b27b2940bfd273c9c671cd4c8cd94c2f3061097977a96cc750f6d31f353b37940954950c05dc7debc87f30dfd291b8db9b09cfdcc302ffcae0df38ecaafc5846c9a411719fa3320b627c89cd18010ddac2875022062a682d1dc1ab55a5be33e785ad550c978900662704f2cc0d6189623b4ef206909315188dd4092db2218aa58f715740db845cd9ec3302e9851c21cc2ee758deaf2881e3a8df9c59c4f90f33d9366ae45d57cc9be6887246ed1fc0e4d9304c45ebf691343458a138fea2034f8affed9cec5a45e60cc67bc398b9c8cc9caad66da6b148707226fa499babbc0036169c493ecf102a0b252b82c7ed80f2e67186c9bc7cfcbf12dd51a651efe0a9f8707c5104dda53d6e6c2aa0cf4ced52515fc9d1f8a630bad9c2074866ca5118c1a8ba3c3999b3a5468a480193cfdd6a8bea8671ced9d332f5b67bb333813615f4d7dce4161b120cfcfd8db4a77ca4f6a0e7ef431c7cef26379f38becb3cfa37e45b9e16e0a60346fadb23dee9bfdd85f42729e73254cc48afac463c06e01c330edee7c8d2530bdb1eb7c01f0cd4110e3418fac1f4bef0c9a690cc61cd4f996615f206a24d56c8091d7f22659c8a7d02f3a726120d094473927b12d4d29a927fb582714f2b6a235a74ac4eccb5b23fb40dacd5930509e4124c7cfcf163f267df6162e4d68c2260b3498173b09f50ecf4da5e53abcbd706709fb342e1ab12a00860a34656a078e3a484a04dec8b5a2d269b915b1dbf4f4203579e379e457956afbd68e90471537ad777018906ee9814b09d649befb9b173e9c0591c5da85e8474b1f639e2b17bfb0ce3dd3d465862f476c64845814b94a7317442b0869c2c80550c32fff7f6089bbf8f729a32efc933332c25a5883a303e6e1424eef1efa81942e4f411bf7383c41cbc504e064c57a07981476b7e6233ac9acbcce81a48580977e893cf93b354497a6bfbfa84c1414fb2279161f90a4ec09dae93092b0fcd825183f9a34804e50e95ec0ac6dad7775d0b97e8ac66b4e9c0bb0582f016b85be1aa9a524446238d23d9fd990dc058515ac6e70b8a174cfcd7498ac3ad0e4330df673f07b10e629828af8fa229b626c517d7b219bdf0f51890bbc54f4039018c34cdafc93da796bdbd80e4f8fd161d9e8f63298bfb8e9d5dda18d42b456e1cf82c9944e327241819d7a960ef9842dac7e17e82bc78d2dd05a12166903bb85c010bdbaed76bc21b6494e130df3c176e41c420e68e8553342964c135620aed5b8d73efb1a4c8a4621a8138c0f0797bb8faee6134d6b5dfc24a9713c867f5a704766dda938fabe1cfd45d0a31130df61ab84bab9552e541921b1003d2e458a28feeede80b996c6fa4bee43cbf960dc70b2d180e8fd24acd3df4e133912ce69adc9c5113b608c5cf153376d7ce1fba1f3fd2f634766d147b45b26aaecad281a99abe72c679d1ba27e70f61db2025a4f4e3619da1416ce78c1a06209b85f9513cf6f70c01663d9841d16c89f0d904a1a10d3702504cb4b4e0e5e2f252b810d58546923b64a582b75eba88b685c398a290c0ef75421bd883375833f1ee257b9750bdee6613ff0ce6cdef4e2de6fe2503fc3bdd7e0fdba5bde97e745cec4917959fe8b4422fa8b514545abb52e791ec53368421cd2a708ad8d7e9b7c64fb8f5ff11f9ee990ba76985e8c46ae2d5b56843f0910357b2dfafd97702221122a1c329faf792a4331405b95801abc4fa41c1f16a86778c0afd8db49e03df4c6c543ec7aa8087b1a9eb1a4898a2494ab22169ad04a809bf044bf6e14845ebcfd93fd3d65e688f624385d55359c642b0f440aeea74fb83c2d2ec3ef0bf714c098a7ed05eaea72db0d8191a0d2ca243d24b422887f8d665b6321e92cb67a0d4ece6c14ddf26bbe0a1e664c8d12cf9ac9a4ea1dc73f0b8adbd3a91f0629b43b372596758f4916a68bcc50a477a3e5bb939f9b3c810058e6042ce1b4f3787edc5181fccb9aea2d0f06df88ff8f07caf0a1cc3bfe7e03ce11042e03847c772cddf43fc42faf27f6e44b1a8a5c58bbc594bff10a55fc7e4a9a69e99d65c0c1d3087e64592c369a0b0bcc822fe029ac0dd0fb5656d62a3824aca8836043f01e7b15cfd41424cae519051e2dd6d8aefee76a294be58faded6a969a90ca8ed12e464ccda59c07b94a97157c9ed967672554ac60b8c1971d92b91efafa3dc03d68f810e27751578508706044bd0b0d28472f347ac8ce1f895625d6e87c35f2a26769fe79e35a1d6590cb9177510a6298f50e069899dfd2ef84138869a8a1a2818dc4a684f5240fc58755a43d15946db2334ca79c024085c52a006be47fae22f0ecad47f9bb604dc19ab4a55f553f1946ccf847ae67e1ce73937ff2a69e7343198aa6eb50e2d949ae1e19c3cb21347e79f8b86bb89e9df9d69204015ff1505cb9e84983075eb33292840d7b140eccef4156bb6ceae341cabf9f35bfa3fef9dda1ea3e7a1e2bdde2a79bf28cf08139e5ea2e498036de530f72beda8d6bbf714339fef52c9c18d5bfdca3d121b8999825930da999d5b3c28c283bae5e91077958f89c8e6d08a5041d54306eb5eb960be4b2a54da5c02ef6cf8d349a3f577e317bed197ef7f0ea4db5e4d9c179abe0c4cb8c098b1b37f1edb342f62c0be126f7b439c0d14a659d998b99c14b4a3e942056be304cd73eba62e15c234e00b678b244934126e97d14780b30e3ddc78ea52f27b7ce82721bba1b63e3b07e7a4308257bc274ae57d06927939d37d2e0aa8f56973b794b27daf6e97a54b02d2358bff2972764e39afca490a885a7d1dc4395e102e11e005ac9c0fb3f20eaebbba9a569ac30acb71922f80dfbc3cd96fe3091b0f296cdb27dfc367a332b4888104e394a67e62968f7660c0cfce68956f1ea565cb319c9caf9cadba2e44d105fb74357121360f943fc725ed848b162b88210a3777a7cf1bd144e39cff1d4ee6505e9b38cfe4dc40517f3aa2e589bb8889de59bcdcba97920ade7951c3000d1be0283e3a6fd6f6098591b6b57de4dc88e14cde1bf6adbed84b7b8b8a587868fdb3bbaf2cfae1abe60151e61e922267d3090d42f26c6218ae60c28be801e0e697c021a8f61b7b9266764b5348013ba13cedc268c5177dee0971264fcf2c0b54c131192bfd5374acbf9fd9e1ffa364f8cffea9808151f4bd1ef29d8f78c118cf4558af82ccb4edda2a2ae19aa0ec55eed1d0e1e13f6a5f4cd2ea3ba6720f017d008fe83fa19a018998a2c6c77500e1856c2685356e6a6377356247f4ac2b2cebe4c734f2e7b7bb60ca44a6122ec10dfe02402f4292996c86ded11640a4b409f9af977dda9846c039e36bec329b68ec85585b26593460830b1e98ce6b106d86a92cfdb90b2fbb3624da6c3e4ec593920ad07f02ad62d5749fe3a064a3087568454890d300ac068c7e98ff01ab8bb91e461ae886f94e9c5c4b9af3d16aeca13350919076b97d1c43ecf946a3ee1dfe747945c81817f872da3122ebf96f1270b3a1d9a554f9e327162f56f8b2bf4e88030fc09a553981530bf787b9658d3b2d943dcc110d288a879e64d2eb445effe48b9ab92cafaffd6e843630cffb0c20a4476dbd8844a3f9def1073a4b2ef8f319fb1a1cc7a315812132f67964a355ac560ea3387e9f510a32939a67ba513afa7b91b2ccd6bd6b31babd69d5e164204e7382d8dfdbe732c5dfb4e1e70bc9fadadd8ad1a88396b177c1f605b7e2c76af1bacbff7445246a8ce3752a69a8b02f174ff52c132df968958424935981b3493a1aa9597bf78591b524eda8bdfe9b36f9631a8ca14b8a1b37a4de058b7a424041863971e24ca76c5bbd88fdddc7bab4daa4483dab039fb119d75c931539cb058a4d621177e7fce47687fb0f9f11de588862d68006f2cb4b4dcbb7b60b1c088dd1e6286fefca476ed39ae8d6c3a59e5b5f65013fa32e3059072e6c30020551eda392f882f9c7be483c6330d1f96f02eccfec7f24588d5c65c16cc4040c2062ba5d42ce29cedbe76c3370a29d5185ccb02fbb7a7054e0bf608ad67e444e9bc28c9ec21be5b9102eb47a0376efc7abac7bc2ed789b00cfc38b8247c7963337cd638dfaa3ffe2382e718c7e97fca6559b58594f624965fdf5054a0ea1aa6eb70b793eb74f9bdad8d74c2abaf91abb476281e01f2b4301cefa9ad543fb5a2638a927a2bd87476dc337cfd44f9ee0006463c98ebb7ae4721c7d22bb96390a141cef3f36f04ac6f92ea50e83bd4732f35970c846c3238e2f7e1fc0deed6c113fdafa8e0b65194f893bd24cfa53211fe97b3392c46bbac09b02c7e3b7a47b559034645802ae98ed15dfa9084fee64f4419296ae2076d195ca3cf52a4c2ebaad93e2ba105dde7f4666e67104ae5e6c6e88a43c65b9e13c26e07959531dd803466fa38573bb25093db8bd485485e54a42fc9e57b1de3b69d007ac90a46a169bcf45a0a4638299f2be3d038b3989a432a59894d3bf9fcb9d4fcf00d98ce1702fca3e9671224f890f06c8aa2c1db88312e90ed0dba99a352484db855c8e2acdd8412e84ea00bacc80c1e30f4bc63b0a59a283836311f98ab097d673648f5c450390569459ec5be3f1a9c01c913ec1888eb2d382bdecbe45ddf2af9c26a949758d05d6711f8e6d41aada712e31ce2404ab241493382c0b50cc44b6e66a5ba71ae576155b664c71557c706d0338e3d642017ca0016e1c8dcd7683da79513afc195ad4eded1d895cff3623f47e705e9952e5170e27946385209aca85cbbf2758ebe0545d40d0e7dd9afeb21bbd982ba6dbb2fefb5dbfcd544da2734627423d13c68677a846207d8652ec1234f86e8fb4c3092315814d6d98a6ca4069d0daed0c3ca2fc2eb518576365bbb89d3cc80837bedf0c02163a8f8851da21958383cf3b2ae8c6385198ff164329f62fce3765c9fbed3833cdccb80cc27d35be0149bd6ab060240ae15f10f31a4ac518d6c59ff500a58cc82eb9d8629219da392063e78314fe949d636b93a8729112944e19f1aceadb1b6c155ff20c6429c71c53fbb05ef73eb4afa75bb0131c273548c8e1feb0cd4a3d778c3d5b58d911e8338974b3dd8fb8afa1fab0eb0e1816b1345d49524b2fd093b716989561feda534f4034d5ec5479864ce058df09085068424b3216aabdd4fb2c5d4892cdec369b4c20fc3a96cc1bc9fbcac5782d526437d818ec85670a4f7723639c5f5f2aad404adabd372dbf2f4d330b750fd318798398e9af2152cd21805e2e13291506104cf251547bfd0a00e91c9c79ea685196ed14da6ea8b51aeda81bd8d499b0dd54c05cce50e789b2c2d75ab0d2c5513a4a085cecf620e5c11fb216692881aa59ab355effab9295eb44a234d562a66d05100da7238ecacbe434d1c2699f03bf0e5736c409dfe54daa2b1895b278bc1edcdd37f53fe8109445335d446ab851feb7c7b065734394f25a28078708d85eecc1050100497fec060662e580a0cd2b4964ceed3f7dce6b2e82e2b8895691538d37924974427a2633a434430e60f62a78940a22a446c2860105cfb4fcd8c78e1cc0df0ec699a92fd64769a7cd9b9485b02bea2883dc5460d08b18aec1cdeb36ad235c9e1860b562f9943e463f86898f98babace646e92867ea6e48d6cf1c0de5e126b837a08959d6e4d0edd18649eb8c883eb4da8dd7dec143f3f907f08d90579e2e386d755f6c4518cb13863c8edf2d32e05f8a852219594a6135752c098b33e77dbb57a8ce430d7218c6718caf953fe55b896ddd1db020ae34e7d0a76612d939ae258e4d9df654cb0c0c67091031bcc530c0e09daa1d2562e3cfa369447c2b0f2b4fa32fec82c2c6f80017426e5e911151c68754f2fe7b013e00b36b77e535a7dc85304f8b46f3c3db4f60ae7dc70cb2d112807ad594c4b1d062b67d41aadff4ed09b0696987849976b9ed87d99f58de0c50637e6c4738a520315f7992efb09b4b8e2791caecab57fb9624a8451a08e182dd191cbe1f4b9e447cae80301ca73186bda21ea90260951c4e63c5daf2b352544c7decb84ddc1601a79b40a05b193716b37d8903b9100a4de08fa94ce3a65b89e3ca5691a0f6ec42e90a720b1cad769c817fede0e5ef75965cf63bf22e9ace791ee64de01121b78dcf131331925abf9dabc44985bec91a8d697778981a822e922b6b8342373f22b5b79712a034812a65aa79c2a5606d478bc006ae726e6af1616d91fac2d301fb025628681a3d0c602c6a656f6c4ca5b78eae799eabf9629257fadd240f46e7c4bd333ed2032ba78a65cc4381c2e5bfcac796a559340b7c44cf1da6f24d16cc00de29bfb42c4302ee0625f0c7a6f4a7d2286dceed6ef9d25821d46181766d0b85a2e9d4d11e0c275104be5fe34d258dfd093d65473c9caea92d52ce512e9a2f899e7513d74ed0dcaeb6526ca968881c9c44a216dac5d2ab9c797ee02f8a8d3247cea7eff83a1e1ddece926e8a341049c6fe5029ed14fcf98d56738736885f4e5439a885168c4a982494a4a8fee817a4a0be8b2ca52a7fa7b6aefe3e99bcc85d13ac79af1fc4ec49e59ba08046acd845c442adf624d543fedf0623721d76a7cce21b6d6bb7e15d1ddddb128b0779f4458b0ba3f35fef37f075fb99ad6d927e18e85bad924ca63da29ff47b659045eec3437770c37712cb93caff49a2b055f4e09ae2b3df22d9f0d045d6d060cd4caf7f8bd1a928bf0074b09c6ed3f70ddc51887182cf4406f71cdf806df9fb3790020256bcf846bc3b2b5b330b08ef0a2705645122a592a23b2c2483db532e4b8919555fe79a31c447eea2a0ea71d4e85b217da4b4ad6eb9d6d00d71d72f824688064d0d21e0c909193e4dfd5cc7426f83dce036e6b299b06c7b244c3c51ff496d4360016ab2ed3907a0a2afd67935ccfe0f813d40548632b7e41f8a7271e514402b10ddda07f6fe6d1c4b0f0a29eb73f0baa428c3863fdb37850bca58bd36f1a97ee1fad96e8505d2c13af8592f982a0b7de82352109f2b741f7b598b5512967ce1e41d5588a65cfb1fae1e8e14e9a1941fcf65a10ed43c1f34cf7b6ecede0a405ccf59718b3a4bf7cb36363a195554ec0be2b0bb6f39eeea8c89a52bb044d538daa2b569c1b7f45cdfd73d99ae408892ce61a89d777c8777b1b11de6f8f8fb76ace64a2307386781773283b6fbefa47e9b86dad73d1309fe7249b7c79757a8450670e3534ed7ec8035c22e9e5a49438fc750a2a22e03a5de64d1942af0cd70c281ba57f61e62ba24bd296bf7da67a4014ce9425188f719325cdd27115e15967a97d02f2e0e5455b53a8f79dabefd77294a92de9be0a7ead9f6b8de51ac3dbdab2bc448aa4d264bbbd70845edfc861c1582272bca9c8eab50111c32589b87f02cfeb6800c1cee1389471947d1bf4bc365d92e06637aefe0a851ef0421600ff1133b73abda524b3a2a3e3ccfb5e6322266db784aa7072e27be9c208824234723e2ec935103d7a622fdf682ff7182649d55365189c829749f999d8714348041a063823dfc0e29c10bceab4010e25cbc12f13a3f897e96a8da6f45daacee0acc357251660fadda9022c31fc7ac636c0cb17d6056ac585ab5bc6b44b11953c3595f7d11af74690f71c3ca17337b35632f85fdc016a0ea551e12af949cd122a6bd810f5ecb98fe03a04286db48212e22eba6c099ddf8bdbbe7d18eef471f3d1eb5f387397a7de5820dd6dcba6058b741a32f39cde59ac492cc451654af37d68c429de8860ee27b6e797a7b8463e23989db64d362d812e237c5924986633272c4d737e58c87c4563ee2ed870ed7712f7a8ac09602ed3f04d9dd5b758dde15d8905079597839bd1d7a4319b6b2fad6dfc63bc17f7c9af12dfd5c791633e869c52cbdb3eada05f79940a483c0ccf30367d402acd541d75ac8f839fe89870a0207c8fcb3e02524c679c275a8fd3e0aba013e3daa3ae7e97c8a78e305c35e16f2bf0a28e930337a1fa8c6414b6dedf4f1c65325edd7aac9eb47fc5504b9cdb7de1389cb1e4ec08472fd25a92222413651e49634c1d2e60e8e025782921eb01a1c1e53f2538eeacfa77d4cb2745da9883e2c3d56bb2a9e733aad3104f135279f4c1b670079dfb8ff454dbe677e0b155b6744b2e9693cf8e354278628bb45139e71ef3c5d1e139068ff058fc6c0907a5dc80b16953367bf1ecd1b254484459d3da0be39ee5d40be372a19eafc8c01521d8bdfb9e74dc0e0e52098325a59d7b055cc223a61899af42be57c8df869ee19b24a3ea3ccf54fedbe4362a41261887a645ba5124767a2c4ddeaf648452de9d17991e90fcd53119d438e4ec80014a0ef92718703fe08c7289855f6823be1c77fe5a10dea22b6d04a021719bc39c77a46c92a90476c8362fbc0d513b47ed273ab55dc27589b0a0f71ee1690f53a83897ad3318c8b8a147e7ed11cfeebcb5ec4e406545c3049c24436613b2fb9206196ca9567666fbe7ff0d4de7ece4a185f7e3a0e65ab7b078939dda907a6a62ce8d939518c450705ab3885b20c8086ff4612c2655d00f9cb7aa9522ea825299c25c30ef81ce75dedc6edff72a8896882531c16098b629bc9c01ba21bd9bc08cf78115692d683ec628bbd10dcd6694f1563fbd22141aa0a63c0a180a6c27ad9bd4d045db291e6264853b86e074f49abfe500c1844a6fb1fed4531c1dbec8b88c03ff239f96702f0e0201a2fc58ab78305ee380dbb5df16941556fe000ad06d5a45e8e3fab5541210dd5d65184d9eaf06ff0925ae55dd1aa208a0c7b84aea6d314907f8b54c9f8065323ef33cbb7dba05175a4aba1855e5a653247d37e79496b4d47b37d7dd3ede1b90cfb1a406d09542aedf833cbc2d923068cc250c21898d7240d02376fe8966574eb65ad4133b462d48d2227c6db8d63e8d0a5fb7b41ec27619251200866d53c5b598f7a0f66df33c3a3293e1c2ed1ad82fae003649e29bf5e465d63a04f3581377b636f82827cc6915ce43829f4c0484f6788397e20f6d706acb371fef15d46dd7a046155f2b52be1e42e54d7e319ae0ecc73936a7776fa15e7437b5b614210163ace88fde86e0987f35cd86b387a0fda1ab0ac45137687b23b0cf97703cd565b88540113d3b31a0c1c878c637909cb054adf421952ac33537a1725c09735056165fb4b491a05a97a82873f5f90fafcd32454b7dcbaa285f591fc80806fedff6f1a70cbf73f1c1b7dca924120009deaf68f939205689a59a4c2804d2ac811979034994832900963cc5b5be7944eba94e3ebe7fba703b15e4e2ad211a879a01685a98a6f71ef4e8bee55960bf5f3cc2ef47ede4227f76f98eca50d1ac26a3f3a94b1aa50cb84ea3245cd8a8aee60369d5a11da5876b0e2def84068f4927d43b223207bdfbb421a096c2b0dc4e1edf9fde2246154e81e4b5d34ad61f50be6c7a322456a747d90ff55e7cce91e2ec5aa1c867271ef90c98d13be7cdab2891c132644a1a54bf195307022364b838e1a2bfccb97ed08352179557918c68878de3ac709f7270518ecb248be7919df85419354fe1d2d22cbef1d49c4ac751409eff4089e8223251ab4d1df2faaa9a3db7417102b45d2e18b07896d7e8626bbf489c6dc7e627894e056bfc9ae70554428610bcdf63c4c919293500e5f9a932352ba502cf87a1e1e3d6ff9b17323bcbc71c4325e3fb5d79f0dac91d29b30c7b879074c556e5e49f3a2a0f3d446f57f08d8b4664a8ef0621dff0f2d2fdfee4e28fa29e2a8780494276f5ca4845e184ba85160374b5bc275428d264cf18eba41e79cba78e9cb59b132c1d72ca68deec92178579ad01e2321e8e2a979b8622d3cac7a0dacd1f4f2f570e3b3fb35c2a0107e64b5e57c3444050da09de3774a9695f21fab2d8ce26b8ea1431b78bdd3b793cb9bb650a58d4db052da72aef7a4c09478c119763c413e5d6afb5479e0a19074990b91f2d5332ff37fad7b9b52c6fb58c280e8bd74a4184ad3e8108dd582c5637e169fc04d9b304dfd5b10a778ce1c8195c02e7ebd810044c856ee54e401e7c491b02f5d7dc5273a5aff07adadcf74577f89f1cc14fbc8569835ff11ebed1d10f28b8da08d338202c9c866940945f56e4cfe20466a79a8fb79e349cbdcb790a740550fa6d8a889a79fd163fdf7d8fc2a92e01fd62317f73b02858b5a3c21a677210043cf6bbd8ea9d77b28efb67b86a0262507a798da5f54afedbc10a63a7fc2be23869f8b40e3b08f62eb8cdbc9b49ca59817a695c00e4660181c9246b2426843679d8a2c6bce9589da486ccdc2f361ed930b93db96a52ada2fbcff5f7213d764fe1cd17ae2e4deab02fbc048cf2adaa0c03a4f9fa6012f4427de82c58fcc8ed335b44d548a6e907f645334db17b991a8edc12e092f1cd0ace293d46488dccdcb0faea6cc27c412b42418e9692b36ccadf32062b6af8f5480ef6f6ab7d1d98d88f038afa8d3ce089bc3a6deacf53069a1a9002b37038c8415cd438751b7aa6fcc5a47e4e43c132baa6d7ea0ad05671c35e912739049435124c52e8d58895a985cbc1bd92ebbf29efddb93f14e242eb261a33e88baa2197448547f94051bf6c8814ad11769310ccdd0c410edc03a0ab6e0048a3521b9210d812229792591092d88ee73722ac0e66c06dc60e80d89a9d6b1aa742c261cb0efb38bd1469b809974424279013e485057a563ae3c8f2cc1cf97e6b3b69e6a0f9b28b8b429db5cb1cf859cac1422bd19b4584c300077f683779a1383f4514d9fd40a45e5d07136e14aa92de02b89471b43ece5eba14792adca85faf97f7c41e877ea7ca87c78c944dd0b2cf5a4da37aad3d31fcc4c58fc5b7765461b2a4f336e583c20f1c924dced318d100d2db0c8ea78a45930f15548317410098daa70e84b00d8bd3aaa38edcbd714e3f52a58b1a7ac99c354d6beb777a69c4f2d87773ae1ad7b9b47dd90326b0c099723495688995d0f4f369f66204277e3c6f42c70211e32442e83b099e724c7d977c8fde0f547d9092fd4c0f6a2c27c0670d92f5c8e343837230bbed4eb9a0375a5de6f61b6ee9caee8f08168b1510ae764a3ebaf15bb0ebdf7a0e357b1988bd3a03460f86c105cc7f3b4be8c65df8eadace54bd4698a41222206b04b7bb3a96be8cecdf745a1f642ebd4d48627c92644208d55a4a5df3216ca84136fec433fbaa430e56469f3abb14d1d4f4ea44dabda5eb728f3668d692d11a73693e592b1c2645d6a7b3dcf92cccd85212f1419d764d2c39504b945795feb5ef81eb4530388eaa53529796142eb322e8948d1a3cc17c4d00c0fcf4641888720bb8990c5389507928b9306e9a28cc9e6ed0e3e5d68ef8016a3c28ef4bce947b1d6e26c16d6768979108db54e10d3632675c8fbdc4d2b8ed225bdea28c9a54aad3a4a13e1e03c369ed824be105405ea8f501271948cceedb4b6150d45104582058c7794e04efdd8d89d15132c7f0c7b69345aa0ba0d2073013ad1514dc6355ef84d33063335515e2b745384ed57f61ca7cc664e6cba2c27d7f270119afd44034775db91c55cd500ca6e85b1d4e276fd6a79cd783a6e3fbd4f06623be7232814a91ae1d2c319ac856d8785ccf28862421d16791ca1576f1769428ac0cca6f809c1df4a852465f98800c2e22b6f81336a7d102b4c205d12dbea71c3cde9d5b01c13003084ad4066daf9f65fad1b6f883c4f9ff796f17a4215baba57d64cd8b1bbc0f54118095fa0e9f5e672e84296a34a857ac3be93d260ef4c00896ee2f13e960a103e96c6e2d842613ac6301aaaeaff0a11cdbea6528e7330080df6f464ff33db577d4d60c8431b46d8b96881f4674290da2222d2723461d22a8b1207f3821ddca468c6a0389bed8e8fdea3fa8549a3f80d28aaaf7c7b1101af1ffa925fb594d7d3fc5001929d2650667d99032f611f50b71545f43fd56bd38adc8d785e6edd68a54be3db7089e1ea020ee73a3fa66f67e2755451dd73eaea2844442407e3153deafa478a5fa5b41a8bc222fb69b1e97951a843c888cdae41fdd2e3b83c329f6648c39ccc20ba8d4005fabd55bb42f07e01616e6ac11ea6f628700dc67ada158513f52011b8959e7cc0cdb7973bb9f308902857bf81e6bdc9280197551d40dac367ef53776c87596988871fc2ba9d02d470d92d4b5966283a8ed8b5598a2c29f1f5a863a804e67d89712467a04019ea65c323a6ef3427b1780f3ff9c59949c42fb52aebde628a34bbdbd98566c97ae661830a1e21d97321a0cef214dd38a82a05fd1201b879513c42e08cea004ab2e371c066142ab6dbb4e594a17b7d8c3d61c6601296a74b9b263bc1573e8072d84de78462eff6cbaf9db3e271c976c5614ba50370232a48cea3891809f74a48a6717514fd1224c88999df217cfe31714e93e00284a90de3d3df9374a4b9fe7cfa6ca7368c474866c3956ffb4c893650a622d8013efe6bb397ee5cc9e08c2b5a55aff3523670b55ffb639ece642156a3ed2a08da9d6b30c18b48d09ca7db52355f0a8f3e779129e5967e128bb771896f0abe2cef399e42e92557501d9747d4a2615261be9e272ab23bdd78bc2f93c76fcaf60faebae3b0695d11da61834bb209c98ebde94ecd034754d9f5692757624b5db1c44a5eb973b831a84febf2ad58cdaababfcc0132a8bb90221e88f261b12ed7d34fe977aaa4c02143bc1e9fc3cefd391572e38060e4ea64c3692052151613b02602faeb7e4283b3cca2d8f781ff6151021c496c55a96a853553fd014ba2da45bd04b9b2b9dce1f0cea9699e6101bbf07a5cc1b9e560e36f86949e2cdfebe255eed96e5c67c00ae55f3645ea108852b80df2122df588dde18b3475f20ad7d984dcd445893c8097231ec86a66f6e9416f6f5286e6fc0e0a5f2856ebe98e616edb8ec9466e04f2ef403d281b518363627f9b73bcd1e1255faf9ffb879aadb8ee46997755565ffbec54a2bdba1d5682827684687c341b90205cfb2f9300f62304155571d31fd1c7077d1098daf02ce24f8754b3882429980f377f48fb0dde8e847ba981e6b91f429b5b65044226a8a55f083e6f07105b318cd02d30e0262dbbc01264d23dab01ebde94e5bb7acddc54e3f2dbb38a34e6fa65015def15a23666cd562155978e1c674b519900d227b70be36422d450274c1f79645ae1234ee4ea0425c530358f535e0ac0b838f92c2d224920df5ae64e114af8d81f4ac2eb902a66458335e9f16586ec9028db700541b8a60dcae6ed66c32d7200183e9cafb2c684de77995a89ddf2217806bfb092d3cf5bb3254874fe4f5436c3f20d28c055f575fccf7fb0404d049ab0452091e546deb8c2ef81e1faaa33bacd89a8bcbc667a840e820cda95df9081755bebcfc5f0ffc28ba1904912c5c0040dd5a4a634cd8f7d6a960643183520cf8afb21ae2c5d377f8580189a50d2faf335efe5e32d56c617c7ff4ae2f092542eb2e46a89c960620cca7e5de496e028653e2a0b599d6e294cc10392355661dbe437bd1e067ffbce5e97ab26cd16bec3e5e1331ec8f4ad2f79583349ec18fa7e7c66ff63d6e40a9a23d0336ffed82f46981e4a318c903042ce71f383b917c7331711f62b6bc3cc412d79f2065137785d65b97fdf2147c2e4cd53954403c9b03a530bc922e49a3116ce3e918446642d3467b810e1d0e2d8c8ab2cff9febb8dcb28eaf99e4631dff70b0ec382b56e25fd1b9e6c6255f9c5e55eb8ae47d7e00bc342b5aaf0986b1c2df0ff5d1a5810811c680546e2792a74c6deae28ef7a4d569502bedb3db14f293a9b1f1d4b9a082f9a2ffd3596667a7157ff30d3697ddfb5909254c00c6442da75a9e17ab53d5d09ff0177af7415935e02609c6e8f99e4c57a90de1f8d2abe7af3f69c89e8ea3c6bea35c26759fb95d91eddc2d0596b836d284d4197ac8e35413fbc5055c9a3b0bfc4730f574102820a7ee494741a8fb3a7f8a1be554b545e0ea9d47f400a09d9aee5a10cad16b6df3e26e3b7b4389f46e45b89d3bdb0176aad6ee675fbe086243759145cd730a933ec4ad1e16cbed82fc7ccffc937c558804a0c8603408c81a2b5d01aee8341ae0ded27bdec868d3ada17de2c06b72e35af5abbaf406568b744758693b4bd5b883a4b95fee25c71b262f7d954dc47cf068b73d55ff8a73f178e543110de8ffc816d430541a268318890bbe2c72a2aea3bc3989cb881b612b9524bffcc1f75eb3cca7b868a7a594899aaf0dc2028f4a74d89d95d52337c4a85278116abd74c0851ec923cfd0e446d05b29933b9a18afc668bbeffb8f00e8b1012761d79c9c4a22f8dbf11fd407c1581c9beddd3d4f538a4e9d2cb7f5bc4d11f0ce39080c74c070f3f279df8e951e7c5db9a2931c47d3ea1b013c0d9556cd2e28dc62c57842d6c3f916e58d26fb175daa4edd430d9c0c666cda8a966ada453e1f150651e51196e4b7c4f8cb53093b8152b77bd2c0e84ad999cff51422fcdd632b1026c93d32d475ad6db15eb073b3284c666ea3d54f845730bb8b06a992d4ef14ba64f221b6b3a144f5ac1bd751a3a6616066bb1bf4a5da2a2b20ded616e11398d119250af43a434b3465083c9f0b3c33c0d3d76181f02173e3adcbeb2524b4366ab9560b09f8fd5a793a3662be44378532341815a4644f5759893e1a02a8354c6c8a794353b5f539024e257cf1065ac878b112d68c3f16a838638bea14716cef13adac24f63d1802842cb892e102c8c8e90f6ee770878cfadf1a600b631e0bd16d71f66a57322be9a94802061a0a00f6edec5a0308a8f118e060ef0c1f1a36efe0fd8285a3ec0fd88d457b9a8bc7a1c4824d86b6121ffc058129fe97195a1ca9a245a1a14975ef9b4111614c0a080241ba7c5fd8ce3880163eef3ced48b0b777404ff8527c87406049cf52d2ce92cf073b3acb1983dc818d45c596dc46ab165318cbae09b2a5d94c1d936e0ff3914a80bd389eecf86803d7f83960efd106d295def97e24273e8197abea7bb4fa8ad06190ec7837fba023f66f0990334aac8f021be3f0715bdfad14d338edf646e7be4413aade62dea75cfbf39f6bf13943b569a9db3461907c6857eadfc1939f0cee3c3e14a24df50df65f846c5198c751ac4f395c58f84dc282bc383c934bb305474219db00a019edfbf355038b5a42ed59decd27cfe2dd7a93517a6e56a490ba357a42ca08c628154da44a1051439dfaab5e3ec28a90d1026b6460f69c042cb9f94a6c272093824892be81196b0dedfe5d71b7361a6b7acdf1ab101d5e2bdd8d1780da60cb318e883081c61115a4ed7f5740382e8c9b70f9a267a12f939ee1ab6cade80b0a8c337288b51dbb14037bf445ec14560db90ef51487a18930ead8e5a76c8333e5c95faa14cb3cd9281e1945548c73167dfdf33242e7906f457044762807abf608dd845a396a0e343c936cdc2130d198724a82ee83f763b94c1a1098859cf876835116bdd6bd316a062ec1475b767d1e6c5e630071a4024df87206af40dc131703c50ebaf0c2799304af836796741ba7221700c3123bca68018f570064f738092e776a93fdc56bb3f3dac62f54df22e73b83090722130bbec7b218fb0f85bb2ded5eaaa1add5c3fb3693c0f8499b5f8ed4d2f0173e338a5bc9d1bf1039b37f41c41155203e5beeded39a4a5f542370de9ceb6ed04fce01683ddcaa1d1843805c9193720aa93890f2edb663b5b5784a918182fcbe8a6d9bac5b4e98610f7f4bc04dd60f0744c500a2ec0cad0282a5b40f1b225b5abed678ef1a9c2d08068e81f6a94abe65a0c1c7b0b4fbee945a33caf75c720c46e9422f1e70e373417c46583f9f63132bbee3258d9f309120db5a7af33f6bd9a64045474858c654ead9e919505058272de4ec8c721a6422715a1a0adf5fd94a871dd7bc69376d21c5b9fea361d3c01840af52235c17fdd6a9e0d4903fc8c0314c8259810556790e4233d7e78ebfe386722a6544c7b9d501167594780969b71f392a01f88f871eb3d7642e6a8397ab185a0284fe45e97e9d89258d03b7ed45ec04550e7ba943b28debc0aec6796b44f56f256593e1b3abc9516908c2aef0ba337ec065d728bcbd7a4adf20288a4c534c7d63a7fb4caae048b5c1721ffac4a1d33f829cccf5b9074131d578d4486b92cc17deeb60e79f1efe04badfd44b503b6f75b34c8eb34a1a08e555f69db4fb5d2c2e5c79a08e7803773ca9fa7156afecefaf2095473b897fdcdb1d126d753867a5a4d2fccf41eec66032d704da729e94fdc96ffa93e60a502d756a01c36a1f547201b452b293788c0c59e733c796e01d89dc6d7c02aabbb44e42802e308ac18b5729d96444edbfbef00eab7d439b1e724643779699ff32adf9de8123d90d40d0172c151134a0468c277fbda02ed3f8252ab12b0e51a1cbc2ca59190bf8f2d090fd20c6bc66c93128ee118b03bbf144d4f254e0e797130850bf2cb6185bc8640f5413f5b16e035c25296da6d5f240b2239b0d8294caff0dabbec561e0e3ccc78eeffed6a218e91b1ddd048db92f284edfeaaed970c15e42d10f9f6ce4075e58bfa2dcc0b8e36768d6b43b3d1fa102a35fe65564fa42735029dee775654fb6ac89c6bee06380e2444d7c134062cc456bbf58cd31b28c942590babc8fcfd9fbc127b9fd4db958239f4da86d08b008f812fc52027b82cec8ab2c19f081f5d69e8e365c74428d041f09d0cddbc9b5ff76812fa588e29fad2f4d75d2626da90e08120b93cc8e9fd286f8e926002917338ee585692f914bc23c8a69a1ec512858973b1fc9db9b20472b76ee117e67b975dd7d6f79a5a08f1ac22c41a6d4383c23f242dc690f8b8d982e674f907aed006f8f97d3f42d860bb4cae1b9e6d905eff1a14b6166e947622f07daeac9ac52391c603db7be646f2a074544bbc9cb3026d6026e26b48c9c682c5201b387fe48824af350dffc12c3a9797da2409ab2e985fd817f85cc599b7be175c60ab6bc0ac61f7b08739c13382ae96808570b886988232c34432c9bef6e55141ec4ea572e7091ae0a89cb4734a226bf5885ae7f71cc1a8c732cd541e769c34d8868d9b401d6ec0fa3d67c9b65ec75e57e237cdf3a3c48d9fabccbb1476e18d36657dc0ccf835183c86de819c7590fa903fd526859d42576a68d999e3ff378c81251735eadec3135f09309128422a0c98e1a6f4e5280c0befcf9caf70775b977dc38be6dbe4cd5d0e6401d4b6bcdca531fb5f8c1e9b83b27d40571e5059ae6d25e330455fce7da062ac22949e429a0cb04257507694e4baa2e0da2d47f16bdc6d0c930a5f831ad637c5474a198442b27e31551205f0fb987a431f69337c8325d3e664f162fd51376ad42075f43d3e8984b685d039ecae352f8c90b807b9beaafd34f13c8cd02a445d03d347758f0482ab4f04d6576813b51ae5102c080abc1aaa349531215ee4b195a300c4e76a32f26d8b23911747dc728c177009218b8449e941989e5b0d8c88de3c2e74ad39f7653cb4f1ed11c63a0decdf4ada7127b38a25c8852bbad9f2efc8526e07c19d66aff491c5be67349732551c2b892de9f11c8b7def216eb4a65300f7e574f62f34ad80fbc3512445403fccf2550413e207b1d427fcd952dbba96f856c6d4e44abcc973f2e532e724da49b05c4ac8a1b91d57e9fffef8f323509cfb5e48bfb24b7987d25ee4255da3fc2b6709985cbd27ab139db0e85486732e9d9c652dbb140c9cc99de2af29a79245807da4697928430567f298a62ae25928088099ecd9a1a4e76e7ae1f3755e6487a2dae99245d40ba3ea7745c7bac98005b86824e94b246bb1d37104649f45834cbdd449970631a4e984160286b0aaa2ad8c8e556a7dcbf5639e9c371446bc77607606fab46757e84c7f9ab47f0dc9b20ac75fea040083cd6b67871e6a928d5fb7b5de89371e651ece148205e6c862f1b5e19bd7fe06430f276d59b1ddb9e993188ff7e2b448bb6e330f86e9964477cb1c92d6697c9a6770ccc8ef742a35c7f91235e17ad13c580a2b573b1ba055fd76f9ef09aa1825bcc5601ce6b64adb5bddf583eda5fb89eb233a0ec6e319abb6faadf8936b0574e8979d22048f209fb2ec4c3202e370ff98db3d94b54e3173b7f5865823937d7fc6197f0137973aa43853515a053ba79c70f887bf407b7927b33bf5c8a3d33541b05af7f9dc540eac41f8e951fbf265d5ce6715356c39bc43bb0b5c28f2b376629dbc797575fb104bb02089cc98949a3c5344465509c928c4bcd55eb242e096916530bc68a4f6299e1b3cb18de93fd3739b5c96763a8316c0c72ff00371abcfaf56ee88c088b292c7cfdb30a5132958c910cde45b463340a82b0ae7b14c8df7dc482a3ded5b6d4a6eed96608b981b716da600a9bde05f0b0f201c7acc316789a3b5740a4a5e70ad2e5096abb8db862cfeb84043e97aeedcd1747a037a993e7bcb622893c23e687e20f176862b612d6b3194b48b41e947f72de6d54947e00e091270a11f40cc26ee864c5f04e68301f44edd0a2b6839de1d6b7de868e9831b88d1a1c75931ebea05eff349e645502e806f3d5efb5b51259d3791321c57dfe3b66cbf7cad1cbdedc9f8436ae9e2a9deb04976f7953674cd266cff9492ccd3e2899499220dacaa5eb6b1d94cd8a5e8e294911ac62e6c08dae323903308b740d0ae4accb2ccf6ec44167fe5009c94f8c886862f645f8e271cffe9d0498fe36cc25ca59c6d444d2ce539b80219891b39b1af55f4db8c9389770336b47857483a15f125632f6c3d1394cf2c99d742c54049e0ad19fb2cb9a720b5f456eb9309b6adc48adfefa48d62df4bd05f18e771faf27c39adffa25417454b4480f3d4c085c373be52217c46ff866302d07b36485c71cc2fc9d863286e85b89d9259c3164cab57d8272b59bbf2697e45f7b1e7826bac2abdd4279ff783e00d804be03216ed5d7e79cac8425b392c354ccc8274dd2eab5a92731d0d03f9e2abf707bf8ae71ef01128439ca300eedb96028804612d6bb88e8346a079b4af9c1ffdcddef3ffd7ac0de73481c7c458e2bccb98342069bc0a5194c82018b55fedb803365b092e8f853ef583f693e299868c2ee8b4e00953551f12cf8457e3b9b76cb28f7fe34ab80c92ba5ae3e9e5fb28c4c867658ea80174fa9ac41398898f6ef8e6c28ca0b037de03d343b9639afeb87db4822e841f373447f621f4a6e3c0b861c6a4bb6cdeae6631540300b9f198a75c350d97b9736cd63346409302c6d4f62ea9866a786e0786a6665ab3fd6c5d361bce28b6f127aab558d12c73e70f91119135d74a8167c942627b89464d5ba1af763d65d22ea4fb597d3f583831c1b770fd5778e59b155d48b13e8d44b0a6a9589b68e483cee7be9bd52aaf3d7c7293fee1208e7e05d3c841529757b28d509cea09c82d3ab0012d41adddc56583d1dc122d01ab13477bc79662cf4c6240ac0b26c5b55253294e4d854485773b1fbdfc272bacb5a762ef6065023634142739c908b207fef193543ed57ed1cd18bb47119d39cf5ba0107c4010bda8d628c4c6383257b85f60301095be42897cef1ced93a04ea7214c55731191360826a82c52724a9e0c3388a28fb66b4dbd15deee6e92bf33aee1071cc40f321871566c184b6806426c4f5d87077f4d3ebc77cca48d07380c5421512e502cd3c68778f6320d0a5cc0c271843b472804ec1bfba3f777aff19ea6c91ae75fc96a4dcd77c3ea7334685af1cc44560c70dc9c9b75caeabc71e88ac0a2e9824ddc7bd031bcf2519794821166d0c65f7d3dcf6f6e2f2e54e8b05692f6cf937ee855fb2c19d529ceabb4524a71010ca8e6908193c3571577e5f7a193e34f63fa25fd4a53c0ac4e984154304ae5802914e0a62e215001d988f479d34c888ad566401e5cf603cab5fc3e72fcadda7df43f577272afd9ee1f48622f0675fd3a6832b2788b85b36feb377f7f276c6bad01456926bd1f633de759eed0a14b811e7dd43f8741c21257ebce556108263807e09d4854c2005743e1ac7d6a5152db6d93fcd9dfdb6e97400824620329e8f82d86eeb4951a9b383b044221fe31d3e18450e3a29364badf5159747001e6f8bde0f9ba86f88728ce3094986cd02340b752c72d4caa1cbae0fc2d98890e1037acdc8392b4042bda36cedcbff30ea55dc7fc1bf3658e06cef07344c1d823fb7e4bcc41c2c2b80460d5d842d493329b09a82c726ce2216c5b554b47c1098a78f37f786d17485734361749c88597b6791530e0a33621e08d70d023809dc71435741dcb50a5f97a5ae3f20bde7d55f6310b93bc9158857260d46264c27f425e26bb8a93a4261fba2b3c5b8053297a9ec56a37b3d2b2cbafeb573664bbd3aacccb5b2d361d77d4c44281bcde6f92d2685a78bf794b10e28d288ea8a0f868818cd4b2ded7d52cf24ee0be97f08c85c0a917e0f820c3141df4516c72391ec2ba5f2098820cf65046c62f6dcf3efb4992441a3711706a7ae306bce6a3d27c9628ddcc70838b1b9ddf5fc3825c835248edfa09717ee3e208f869772f42459eee3b795ea55365290b0707536f9a45f3c9b14729a0b178710f4bac65ecf3c747f57314bc5fa7e73d3e7a3801e12d8ae4653aec0587bae9c6041be811323e1575fda76679be88ef72c7efeeacb2c01767afb1a58803a9c0cddae8d83ce615c29a27c90dc1df3443e61897506fd89cec7d70e8f849f3ee43a6bc67996cdbcebe1d0c2fba6ec53ba9140acb2857f6ec9909dbb17ca212087f42be8bc630cabd3e8f92566d3fc25ab252ba1921e32a4326e97657d7bc49ff22c7dc9612feb69842bfe913791c2e86e6b51b6f38deff7eed3f722f65a911d02c99ef079ba3175ce6546e8ec1ba60181bc904cd4d68fba8353b33da8ae48208f999839a4c54e13278c107d42859937999d0a59c1d62d4223165ab5fc7227d291e7e153e3ed89c8fc89d19a2eaa9c37541c5be79489c866c9db3cbbc1942182d1333542c4dd1ae11bc6bbfaabdc9b116c09a19384962806681143381d5dfb21250cedddd40cbeed221f574f540c5db98011610e8000ac8123d037454f7928c6431841516a876c3f07523bbdca771e8770f6aaa0df133b3d9fd77bb04448fa2b25c0bc9cb778516da9fc695df63021b7406bcea062eb32225ad5fa7ef957722df20d53133471f5d379ae79bb0cfe98ea95545bfd7d26831f1b8bfa63ab3c014f85ad85dc51a3dc112db9bf596c6162a3bc6f1fb8faaa95a46da6da4cdc2b95387b2b2f758490828980b3ea2a47d26ecb41a25167e48bd8272e5b24d524059f30d3d5a22b97e0b2e20ee00b171d700e2e1b7421b4c76feb9f261359d3d6b21fa71fe0fea4535dbc8834eae17e06bb1dfc5f766fdc4010830cbbc4c7cc6f0c63af46adbf56784ce02904ab53adce1aa54991988931daac0eeda5c2507adba4c87dd260dd0dffa1ad394be86d6bde3ea78d72ae64993a8b0cc8c416684d862edeecd119ff69b3c4ac6fa63fe370f6a0b22472a8f20ca4dec3a6f4b9d6e53f5f1af94879995d19dfdd46a6af01e9b9b449cea140e319c2b0cb93fe3ab39bed7dba48315620b2a3f6107d03714df5088e5c313f1e5362c8a55f2294a6caf90c04a09e0ac1cd823a430c97e311752a2b08de52ccb1ab1be1b504e85bc23a3d06fd8e64fbb8e2bd1181ca5c2d051f10cab7f520b84b3c8feb3569fd0ded4edb4e0dd92b8134b0a7cf36d856ed1725a4bb316fe9962fe39b8ac9bc7ea035c9f85b4b5422b15f2958032afc55ca7e2ed79c70cee3eaa573318318f60d847ba1ef645478a208323a3aeb7be4ec896d3d0d3c63e0a57c4e64d76a619d4ff0a9ecd0f5469fa3cdbd9f8f8b2887f1a46ab19fd3edb5ab4335b725a643bc6d40600edc518db344ffda89e914e24101ecd0735914e8b6d5de6bfb4bb75a84945f998f0ba6a10647d60fe0b09a828af93b3180fcffe1e1e89c29be88dc8417754524f5860b36a892d5d89da0198e2e7e4286bebd93b95c0b15b4bfb4feee9dc582ffb82d5a6a58af6ab25c48ce7eb576526c31c4424b314c4f92c6b7ef3f7fbedde91911cbf91a4c1e86cc8bdbd5768d48cfceaf40c770197dccf90ff97c259dfeb9ccfb6a8a84bc545d8d23412a5ab27fc0f50c9c75ffc7413a414fba8129222c4fbbe45c8816759e7b971922b00497d56658e228f3f90f8b21499a57252a13182de57bec3661909842214e5bf26c34bf3a5d293b31fc8cf9a76c2cf866d8b8bb1426a270e12e4d5d81bcf669b86a446d006f4d31c2913ed9d8f8d1943bf460442c1ff1fd55ae8c84113718a252dec600326fafce3cbe09aa41f06c16d70edc0f88bf32e9136e54b4e3a40fb5c6777dcfcb822466c0db373867b572c48ae8ffb826f1e319d8fc4fc1dddb0c8896fb71b8acbd74d4e304f24495c86c0393292434b2bfb72c712f4c5f2c94915a1b206c88fcc4dc4a99decbbeca1379636e06a7fb97e61566055fbd61ea51f73cafc37e6e4a5d8de9d0dd368ac415c9fe97196a4c4a149774346e368c3f37e9d61e497a8055fd2a2ae4130bda689b2328bf5d5272bc588d03bf06f4f258e0e77d1d5d764fb1ea4e1a14240718159d6069d6bcc8246c25781d9e4c54ebdc74c49bb5444f8cb8190466a443495d9043edd1931939f389fd8f5eb436578cbc2c2965ef1923bc7f064d325d0dd57aa40e4d953c1296c112753df782d825bf84a010e02709d5fcb9009ec77d8014929f9595f9d5fcd554ec65a17e8c2b86df905f493ad2b68cd9c1f05f0c6aba523d4060ef9515c66eef56520c954f526aecc070f86f9d72342f38706dcf9cd93f48cee417e1aa6ddefd45c4875603e263489594154238c2fb20eb2c98e2a8ff6ff861cee10fbcd328d371194a9d7f7b260ad259ea7c2d1bd51cf7f026055397dae59b4cb143b06c4e7534944614fbde0edd0b58998e9258f9ef53574e9e0edb5c634f540109a139dc7983b99c1989b19971c02d946d829662eb3f28be4767173677e166df250d155ef298fc2471815ee97ddc3123cf9ea250183b951628214c8b635eac6cb8a6fce6681d79e7c63bda434ed122e2ad111ec47c84106b1d1a9ee4be87ea5ea5568287ece404a501c98e93e59b7f3f20c9c207704b48c5b73583ad1c5d297e56cff7dc2d913250659466e7ad5fa1007fe7fa23ff06e2a003deb0b545e1a32bc9483982abaaf68f8516bcf0b8761ebbdba11e6861a5ee6f24e39cb2001efad6ec3f3599ee02813c0804f18490197a5dc7063ae97c85b414bfc3cfbb6aa8778451537047d77184e737a2921e9700a6a4686731fd7a6c586a34a85eccdf27a84f2697cd35f93f9750662b3c5cf8a065a5e25c78be6ce922bcab9aa24673a161e587fad41008d08ef01e6ddb8029e734460ba4548dffd89b4aedc5a96cf889e2071f988a095459b971290a97f0f990eec57149d38c41fb79cb0cc5eee69ae09f0c0f0cab5656c5a0325c0a59b73389102fb5df2b2276cd70e6e34d994207d4e55b3429caaf4d0292c43ea2eb01cce626ea2aba4a7bfa193bb85cc0ea6e23b47bf4b2a762d1ea5c7c6f7c5ca9a3a371982cd565a0063af0dc518c648040573212e8d4a65efe0cb3dcae260ffd90d7cec981a9da21f5b2f6fb369d61c4ee643261dc381c027b8e9150aec7465165a1b64e49271f9ac00a4959e189b73d96d1ad808b508a6911218f1dd444119adec7d5aa373e580ba23254ec3ca7c56eb7dd6b36412f98008d3a7671349152575e9f3cf6d3847fe21a9c62da2aff2799b60d90a860a8646d411110601a300dc96c9a7d93f9be392e6c7dca8aff7af50c5b424123dfbdae6e80a8a2ab85874812306add0758b487de1e26f06302dea8a05161eb65c65e2d1425ed7335a7027f32faae36f0f4564b507b638e51f28f3e8ea98ddd3ab375b0890de2e38b6604be10bc3873ffa539db0c13f5f6107e37513957f046f25847e56698dcef6bdea9e14e8bd7bced96561eb339113d64cc243f51b410d4b7fa20d8162cd13034dd5c963e22bcc741c625ea7484f97bb9f38ba259fabc6ea0f4568d73b2afa63766360a1d5e68d8e78a039d704e9fab87808fa6e2cb82e2bb32934b2317d0e2962f3178adc32f679c09e72e743858b59ef51a03a2abb7676cb773719ecd6e63c6222cf765f547834abf683264a4a2baec458da92c811157c41779f00547393231e0bc36a5406957a0fa1880963afabfc65a336c481acf87b0fd44c71b80ea177739d213d311ff7146602686ed64bc2d9790922aaca6701a44a62815c075f7f69db5262fe17be8b25868547666d11cd9f037834c8c3900b2906503a14ea64b1f2e0e83ef5bb3c800fadc41cc19f6298769141b96804bea5d141d71ed199915ad99b4d0991f94e7271e5dffe56288e11b4be0679e273966b6ecca48340a57a3447f48fc68d01ca284efdff5a8000355e71ec8f9726bc26eedacf86ae317ed4ebd5021a8cf67ed6a5b88281d6d8626dec252eb3d32728a4ad6ea4ae074f2ed7a8da6caae4d84cd5a00125682a8617563f0bbdfa8a6149aa42555f547bca5ea9e0911827583ac265130be561e150eb6aced872db12c2cde346c6b42960379ff63c888ba0e6d6187a43d796dfc4acf74c7ad3fd1996d28a6f88dbe0f23919449d1bdb79b2cefae2163f2a5b3b0086c7f7beaddbb0cb92425fbb7f64f0871336888df347de31fe54a234aae931ea4f46acf7f9d50850724f5ad16ba85d09b4803126474713cf547fe6365b64d8f5d930c9d0311e98aef3192d1cef54d75d487413aef9eb99743ce597d584974188fc200360b4952bb17e6daedfaf8d4add7b3507d3dba4adf357c1e21b8697152f2092518d14a4da5ef2e935aaf475b8db6ece183208e5189a980336b050afe5e76911eb22cdd0d73b957e5d7460ab771767aaaafde78ab6a180023825b93ab3f606dd2370ebebb642ef5dcb67983d4415039e3b747f66b59fa629ac700cb5c7caf84ed86f0a6f51a48c3e79101062dfc285eca5510f5589fc810ed98bd19c81901585e1bf3224ab1f8855c95cb7856951dc31f0147366c3c0dbc909f1af2fcdf6abcd7138e1dbfa8dbadf257fb9673263c4da8bcf3da56f927c79db1e8d4d7f008d35046123d4da229d9454340bfbe6bc445aef234f4f949b3d45442b43d8cae37238564679060e97848558c3f54049389b27e616b62ebffb2499562069322f2b3c27330bad359ce140607bc1466295a4fd2ea174790f7ccf66268519510f7911be4dfc00c940dd1f5cda2c72a9b9f7d3ce3c681c79e9b955a82759cc683393888f9cfd5dac5459ba4bb54b9ef14f376bc426b8480678b93ce838cd0249d6c893ed60e3d44f73ccb9162abe8245b418b6ac736abb6522c48513d1fbaaa8be79aabdfac466f22248eac3c1dc3cd2eba29e0ee0a64245f193f45c8c335069156b92a6b7c491549a10a424a8024ff83259a801aca4b7ae1a2a0ccd5b3903440397f4ddb95376b6e4c9b6f55923f11c85cfb9b9fe08aec714894141b4d791a22643ba0ecd242d83831d9b18a7216f607ca9183e0b9415f364373bad5927ff98d7da724e752912c8151765aff2583b680f46569fd47050438fccab483aa25e59d82eefc16f8014a5921e8f64d12d057a2ed3225ed7e6b7abb932f6a2d5e80994940030104ec0071a009e2f1a786e0ab93e0a438f7d7a7c5a25adedf0b9d6755dcdc46385d186ca30fe79ff99a31e9cdd389e7ac99cf37a9b857302ae8f7369a2c4e7f7172ab87cfc48900f54fa7b84dacbc84a3de699f3e65c6dc884c251ef336e11d73639a02b5b736709138e18f4bc5dd92b406a835d6b3950bd9827f0126ffb5d57de11a0bb62f26a3b3f7b98a065367337436160175c2e737476784ea6fe53d821b7d27730646052055d071989f026661b98640a481ab92e26a495608afefc25d74ff01e5eabb749a980d2d041302fc0f8070385a72baa01436713b409ce0dd87a43baa27faf0881d1fa6748daa3ddf98800e12038e44d2b162601d4e765901dccb19697392914906e8d3b3106a33d97ad617674012cf189b47940b75c0acef17d25a49d6f4a935ce4579babf388b476850c8d5a150441aa13f5fb6bff67a3f5219b99aa8b826baa5b1f23deac8f89ba543247ce194d9b2460c6cf5d059acdec098976f11896fbfde8764545680cadbb7fc268230e6ef7053dea0414434dd8acf19661f9b5eb51c27f7aafb28e3ee1f6327749193f5a91536ee62399e3bdc5886913ec5d7a6c11d93acd1935e432816f9c715544fcb291837ceae20cdee6c2f40d004c0150c90037806605fd3b69c82f79fa9fd640569247be0145a39141a4bb1017f3324cfc08316d8d508dc95eeb7f61722c21eb96698d59a6cf365b986ba3db7728627e5fd4515086c1a6e049020e808e85bac49f6056b82fc18215656e29f76cfe37d4bc166cb938b84d84712baa4febb86cfc5d2b42309e89b44f576f9de0655bab34387f65ac1741c0cebc798cbcd2e84989eba1eeeb6ef730685528c95f5f03d88695b7b9b8a3f1974f32e5df096ea9932c93f72d148f33ad9b02ef9870e44e501d5db6cd48ab5975ea83ec519914e8fc09da812d0af30addce6ccf48abf5deb92ba41b747f98417f5aee21c903511344905b6169a19ee30de6a2e06baa2c0d04d3bbb3c8c7af3fcc47ca3c5fba6b5d7b3c863c70f6d1847e9983a09fea830d529576650b8d2860ed862bab4d36da2cfd412c02594e4621e68b9e7ade39ea0845733893b5cc210fb5cb395f41be490f48977c7622fb09f02d40871f7c105d225a52638ba4c982ad1dfc31f2374eadd24e711cb6581c95ce6f5d416bd307bdf49f33d767d3d42748612cef1f175c0fdbf728b464884634bdfb6d1df2bcf28f744b92a01aa2be6d97025f1f9a5631af62c721e34db1ea09ba88007d5405af6ffaa99cd6559984ebacdafd5019826ce4a5246e5dc1e8775411f2efd3b521378c1d906cfae1593b3073d28b6f1b79db13a1fd808dcca74ed0ac68bff648676d36b6ff7f7fa6194aa6342edcda1053c84830515a08bc923288b4368a8bd5941140ad0aa3c8d312847c6c7dd708a17f7fd24787b525aba26cd20e03407fa1ac9ab7ea17dab746d68b67796814da996855dc471b70f996e09d4c90c360d516da1142750ceb1be7247df02e0c19b80c1ed0f63ee4e6e286ec3ce09d8431ffbc992d42889f1684290aad14eba313a2be8634b146f5e830d72fa1fe37a1aef5bfbe056b7c236dd778d540e3c9ae6fb1ef278b73e7b65455eeb14c7c6cd3afe82a1e15857b0fc807a20a0f1f9dee0a85cd8987cc01923cc257a1cac69d05a6cf8b0e2e241d0d53d4a770acbc74504737b27d954fd5882ffd8777095a12366f31def60078edfbcd59ab28d6bfc74a0e13382177877c79687b46b4831c78d0e33c6798ee2b56259860565cb34fe728975cc1e687d15fda80fe59606dd9d78ecad063f2994601f54203d1a07f34c2cc0871045d48ba012532eab6a5a146d732f1ab384a12d18a2bb04f9cdf00bdef2aa2448d368745724ad84c40d33b2caafdee7625f90ceb7ba78baa76e3fccd2f8dde5fdbc948facd489e643db816d9083a91e5c3c7e69ebf9d20d9e621bdeffd6730c3e84d77765c6c29daae2cc3b9ae947f5405bf9ea0f3705ec63035932d409f65d60c5bffb5c25951a8565918336fe6ac4e750fcbc1f0fe26cf41b83e6ec6fd5855cad39e1181c0ea3055a7648a4853d375781a4e01c6088bc426db5f10acf72fd1e7d2d543e5e87d317ec4ebb966574db7aac381897cd27d7192c47a22e4fb7bc520b6e1ab19e330230f9ecd77827ef72c65e7fdb813ed5487982453654fc3c359a41f7e6d218bbd7a994c3fa1679e8a8a87c65108b5d6f63e50bbe18ac46075a409c7c66e907e8aee184599867adb60c60bef4c1881a939cbd57d98d3080cbb500ad47df2a2c638d54c48b80673a1c747f2f9a4f6128a005906bc5d72964c9d1a39b667e524e80c7fa01a057613a282731afbcce067dcd0f8d40701e898e336fd3a02aace6b41aa1c11f272f83eba6771271a398bbd64d0eb34312a401fc2755b888f6018dad817d80b4af68582e22a6537dac3edb30842805d488106f9438b5a9355dbbe0087570068c484c990b7236a22fd35ed05048ae25c780dd669e8368741d90bc419c3142e523d3fcc42bdd1546b68612b53c3b00f8e6702dca465c8786ca1d88fbc28d386f2e26b4255dc934c496d0f158c02b7e826c6497cc1b831d9a5900bef4d52537f51200713211fc754b26cbe40ceb8a2d258b95b12b93eefc4ffcfbfdd0b99808b36bc980bce06a152b13683da28ff0095ee7d764428523f189784d471052d4e2ff87278ffa029ce893dc86d37fc4af31c019d3523aad1dd539a7a82f4008727849e95e254ed6961af0535b1d8d657b60772e0dd9dc2bc84dc9f8868bc449232918c685c3935e64452f22247ef8911a6aad26c57a6c04062b34eac56116072e23db8b86fde8c01f0b7f4431458b2b2da76b759dbb7ea04ab16d9495449936f9878355f24517c696900a873a17535b00861e8416b5054ac24daf20b769504fa9e50577a3503d5f7a7b851106bce50c73b1b531d9f097b40a77dd4c0b1cced0cc97b1f82f37e41c1f5679d85e8a696bea7f774bd1518c707bbc45e87060b1ba18e1ed122cc968b3cd7a86285becd96e569c02171816af77fe45975af3e7e61235d054b43cb28480a3e80b21f3b5b44b461ba5ceae3b2ca678461d1d49a9ab6099415401fa5fceff02a4f337e7475afc0c6e241c09d2ca3dc222f13da2bb0033799075cfa1d139539484b3b0f6b8efc2f5e54da36702bc5e2f4f10dcc64cd99ac0c82c299abbffc3d592ec29667f7f9f88b92b7602d90f94a82500b185ccccac206c98cec3a8d3373c577512d6546adadebd869e031959495336f08472a780022c1cebaf9c03fdbfe3bc052d694ef77f0746719951a5284ecad419b3f42a4e3883bb50753231ba0cd0692d133b63f7dd7bdaf3d52948d057e6e371b1a56ce26f11d800f8e42750f5bcaeb7af26dbfd06a4ba983a8be34b7c1622a081ff4eb7ce5870d8c9f82b4cf47e7022c1dc5fa4526b5a7f9d705447ba4878953f5bfd4dfcce6545a9f99bc8a7f3ac575c4aaaaedce44dd54edb92f670620d09973f7904a8492e8610edf6f84f827d6b684f06a70300550e8badd8dce348209a4cff1239027b9640a75486dc542cb9ba21c526baeb4c79f90a55d9aeba79ea52b3a7e72f3f7ea73ace0056babf2d986896d4032efad06fdd7345543382330dcf353fbed71874019117b363f4be2dfbe32b9dbdcc5bebb01ae4428c642b2e4b56d153de1c4b2f3d1ec99030d323ff37cf172bbd017e49f86d6b7c6d1c89e390d297d9b9f119f126e75e651e26e6f08d5fe7bd8d3496eb1ed28f766c44d4678da62e598496c735e44705b542f89faea30bf95e28221939812cc8c567d928d25d104f6e11f21d91564e209f99240cb1b02a02c8ab92442563630299161306350df2479694ffea9a4d26c790c247913e34f88999bace9563043a1f14cea5d126eb8f794e1c6e7deb59bc44c7b068b3fb5b4a69e1f9a44fac5652727aa76452dafa12da82e28f2d2853c495a2f9b49c0b7c2b53f169a5f91088004429518135c7fc63734ccca0d31fe320eec7aad89bc03a7149859375df60d330526214468ae2d441e3ffb23c4bf7a7413414d2cca1dc515e243ac3c5909d487c4de6d96d44674f4cda8b5097f765bf6d825e2173c46107561054cd7c5e7f7fad595f372dbd2e861a9f27e9a83b02cd18a80a58f8bff2bfaa0bd51325e10966628e9bcf963099685a8b510c0c029ecd50a76b5cc270c34c9b69e3c88274309d2c7a978f443e0628658c1d07ba37b3490b36f62ea25919d7a45380a780b78a158e9e5892166add8aaaa3d3e12c4de0b8984043211d215c8b69438e9c4d0b19de73ec97b5679d2668d366de02afb87428cd64e2fae310b6658e89271a9b1919575d503c294fa2b2cd817f09d1c9720d777d74fcf5f99644c21cc9440f694cea3a3224a58365abd392232b10efd57741b7c8f6c5bda0c4d892267bb3bdb152022fe6b9c4240bcaa55962bb7beaa8495e8b45a6c1d8d9d1475ca66a5ce8949ef1ce6cd50af25c79e7405a16d2773d6c348c93f2d22831964b5dd636da1357e977632d301fb5db1362c8e6361496fcebf30c017c206b8f13f38084d25fd3a6ada8b719f66ba74958e2a903a68c33ffd218ceed9cc6e106e8a2fe3a06ef5b1fa91fbec74878f468edc0a8750bee2d39b1677153dc5991e7dca5c96fedded7ec6045f871bb123d15dafa99ad98c1c7ff20fac0647a39bceb5a4d324f78b234cc99a3d18ed74b65a90ada261e9825edc6355b1b85e9b185f8efa15a20ea3e655de04961c3994037c2ce2d0c0be8dbe1410fb496f150efe6c1cea360b45b2252e404424352f1b4a4355a13d82e79a8324d4f08ad5509c05f9c4c1b60cb358af22197147ccb457eb185474e6872d3ff03299a82832d24270dea63f9addcba4947e4715d98aeecbd502d1031ab578d05189418d11e48e1be0fdc3348ef397b4032492e707ae4b4ebbee4951565a7d6da2549f89116f43aeb6bb47dabed16e2106475ab0c88725db022629a65fc67ef3c5c39eacf996157dccd4f27714b9aaa26daad8d232a8d1c907e2a49338e21af7329a0a38ed68c1761db81ba3179bd610da757baaad03b19653dbeac61cdf9fe8fa2b55d6716948e89fdb9e7008f6ced16ff5edd81ec14f1a9e3cb345d6e405afa2356543522b58119cc79fe2deb080452c3ebe66691343494af1a3564219b5551056f4ad2be4decca84617594b82bb2d0041788fab174e8fe318e675f5d1e14987a6103e354237c6038fa677cbe47d73e3a8abad4271a04252afb674a7d46d1b4fcd5cab315e6168897f0120b1c94a6c8218e37a9f99df62b2e85332cf2f25b3fd3abeb242f5c4e8d89265843d17b28518914fd7b91f61e7eeae3b29f8b3b919f99c937a7e0e1f1dbf6dc3f9637a8b7f876b5d2e5d4c850f5013e2aec1836eb7bd994834883f37b52713a7103cc9e83f36b6dba68513556d5d83ec8ade488f17714c028d0d646a164a49ebdc9ecd410b0bb2782d4ee896c96d4ab1c0ecdf4c142d7ef85eb2591c90db78594a76c0eb64d31c539bbd9fcc27fda049a8cfad78df5af70786a13788d93093a8cab1dd620637d5cb1f597b9fe1117ab1a5777081bc221d9e98b22533c18f935e194b5e1ce1426e7023879f5b74158a05832294c43f1effb405a4c5459fd92e2efc3ad3c937bf36a08b6d574fb81843074f2ef2175315a00ea1734661a166253b9ba0028175b12f5e0d7cce6ca9ef8bd7483ea85303524cfd7bbcc8eeaa9bfba652de7b6562867696ffe75c19867d678be8124d98ca18244ff7d81ede7465295bea2f6521f60cb3ddb57b5d4cf298e009e622e1bb14c47c0d873337c6464a4f6b1a4437c952d2fb610c4269e4bfb2ccec62c62325ecce6bee23c9e9269d5fcf3d080694cb260d91b3cc9d084dcd439cdc8c0d6156354311f1bbff5cb2e0be3e5d298997dbfb43fb753989187c77c2bb89eb1434a27e5d8998bf3ce56a427f91b114314f9de6631098b2178954641c1a423ad574922ca1eb9bac2a5e7ecdf15aa0a3bad3a801c4edde1387bbb0383c8ab987443196468425035f1917edd2ec828e1a13d29ef19035593ca408fa10f19bf20657b900d5d8b0b0d1cfdf082d7ae9eda8e255ec5c888f7a41fe7c2334cd28f4390f17fd3eb083357c56bb09ab74d4be12f3f38738e9a285c32029ac32f23de6f644a447fbd6023ad70ab9717ea4ab7037ae580bcf2e224c5123f0ccd0d27ab72e5cd0c70ee4651abcff79f9fb93d41f369f0db371656c82f5b5fbec130a18c0275177d166d79e573fee83f0e63795986d4c8b5d078f4efacb47e9e8444a1d1352bc62c78a858202ad03cdef2a77dc237c7f5e44710b03d956bd4dcef905a3e09bfafeeaf8e77bd782bcd320e31f776a478c5beafae6d620314632e4f04b8e4ddfe57b768dbbc800c7745a8d7c079490ec9f3f0f1b85cd7573e48c3e30d7706f6d8ae7066b6efef161669d1fa355eeddd52700c472d1f1db23b9e1e6248d3fcfcf35607fea1c9fccbf4fcccd45d6edb1a0ba64fc1f97b2c7df2210a72f40cd97ad7f6839ab9e70ce524a603f8964870f471e6e8c3a295c1e3c20e34324354d061a456113740355e208a4f03ad43a5b53c53da9b8539df8f527be2a1b170e38c855d4c66e67ea93fbe96e85b6e0ce882e8161a6f92a2493afe5cfb0674ae512d1ec0b8284ef372f704188f4968f2a60493a14fc9492c63205e30423af4dd681249ac168528cee978bb1276a8ff311146fbc4832f5f7563aead69527a1e1b089b851d5f64c2c1e33db0af1b2749f55f0a834079a85ba35de36a5dd2ebd116dd9437b343607d2043b03438a0eb91d6ba1faf5137a319e9122ed884edc16341fe7726c901d44f4bdb919c2250e9d5323a58aad42521485d1f967fd222cd1dc5af7aff1f502e427004bac22eb3f3494cf180c3f45cceec207b64a916d9c0ba50dd29d21529f7f39878518292b234d23c2a02eb6c0aa5dcd58923e6736b5cecb1127a936e73d21409546e3e36a80b8cb83d4f39580eb3456532dc88e39fc8d73ffd339aaccb26eaec52935b01698345a0b0ef6692319b2516b9ea28cab9e69415c03623f9eff5cf57a61ec2369c7dff6381b652a89775d1f355a31f9c9a02b01ca549cf9c90e2b192fa2560e1f1697235cfaf7d584ec56f84c1430e92a255aae7f41d2108875592ba8896a6500ae0870a45688ea31c537dcf315c576d430c785cffb0026cb53206af4db109a520bbde6ff274d06cf3df48b481efa14c770c022f9f753ee21094b850c024836cca66492b7c8db0aaa1cb76907c0757908d8fa62bc28b0526988fe50fa116104f5ee44faece1d4027aefe7d36885f2acfffbdb351c0d36bdc3823dfcabc6932cbd3b0aa58bcefb7d078a0293427158bda40e0eebd8bdae86ce5ff8bfcbc6c6e022e1bc98a3170ef9905651a690d0332d3b76310650373d8695d13e33a5fe8cd95c3cb4f88e81ee6ea128843edc0889a4d59e7459ef24ffb886a5e7605ae345c92f534922ac7ea3da15ddd6c470106828690bfae7d8719f72b94dbe3e31496ac6d27661d635098bca034b8b1f36e3e6da76ae5e0fe4948d1788bf861d469a452120a422e8ed3d2ccf3bdce023a2d2f231b361163ffdd867802d26a3a0a46e768fc8b6938954334fb7b8fa7a154789d2ef207d535091a7b3a015df64cfc47240a66004563e1df627c327d92a7e669ca5e57d9e744ed3c9e4d1b371387c31815da834f75071e195fa4f8bea77ec2654546142f76f72d4c3b48bd623d71c94e5c7dd1419f35cb5b3f6ef8cfca6800e9cbbc257d39a639e5c1a7027f20a5c687991c6e38f32ea0aae2f894a938f764b5825c60b84b1d750b5b4a2ef1be4f11546ee488e40be9bd329604eb3bbb931793990625c8281e16bd14f6b2942ab23bcd1e86ddcfbe91b1434578e14536f8a822985c25ca13dbcd5808d2cb3363a202f239b840c8410547558edec9eee3b469792745385a2280431e97eca44a750a8c215fb13c8098572b0503e590c341ad1082296d3e5084a75e5337b213d70168f54fc7b1bdf6954e5f36ecde7ef9609ab15b54c216a63ae161d85379df36ee4c32ceb177ce77dde479bc264088180785033155f8a2775434d5346ffa995619dd3abf35c9644837c7ba3c10242e6fce4ff741b306dc4ef598406712d007b399538a9442f03d4f3ddcec2e07c9eef13f2c9e1949a7f62ddc79b6010ffb18ef357eed2bcb39cb4cdcb81828b4114668b223602a2fdb9709df382e5d435f7100803ea16830752e74662507d92d023e09958f824a606319a5d2aaaeed5e4681343908c16101794677fca4936a0c478fe9ada1feca3548de02a39748011cda2d906b680580109fcb57e2e5ce21acad51ddbedba7221654b7daf43ce17303ac094cf379d224ae447c8fed50f17532a63caff596a267569757c884cacc2116301d6f096e96b4924859619a7f1d0264c977cf867d2a115ce4d8239de43823a73e3fcabe0d781ea391f2657ec1f2fcfc50fbdbd310a9bb815150b66725671a4993fdd53c2f553b4488c3a4be99ef1f099880a489221ce91ebb72bc9498b71ef04e15351042119e629a9fcce73ea428aba5028c335cccf7573f49e9cc3e830e51737bddb6c733afadb82e5d0719b55ddf9bce69dcb853c908c2f55aa88cc651166bf5292ad4d62dc6d779d32c49adc10746244c7706f4d3316b87b370ea9b57b98241562392e56f4971872b8a22a1dd7b9366bef46a3d98cc23dfc7c8358658af68cf2767c0aafbb303084943a9a04de915dc741bdc04b5d11ca496703d8b271fb108c57b2eaf540f8d12199c1afa780d81ff7f75a6aa1388474879c0481e1c855529fdc943e8154015f17e9d634c2034326069e5eab0e6e9dc1cc1228dda5e8130a882517836b39224fd5d79a669abf1a512dcc01aa27409d67632c7ba0d238c832fdac5db337cd6478c52eebb0961c3feb0baa07e47e9e474e30f086f129772712500208d52baef8fecebabab4cf29a82ebc470b12fa705ba6ca77cc17a954e83c4066f444b044b11717940360d04de1ba92eab2485d39ceeed9381b80a612225c42ef8cadb2005678ebc694e03a00dd7b7ca169a34168c1b782413d182f56027913c857cd512ec2e0712ba9ab6b71c690dabd0aa63c8ee91c69b327c3ab7723c160c16cb7b28b78628e463f4402378a79758e441370b4563c339b39f8a8bb57e14a508be3228f5951678a5ebe0c5e50a9d04381dea8057e71b41381108a48ee80b52316f7df438042968bf425cc2ab31ad551c5333a2473ae56a61208e86e3dbb37b4a8a4c41fe80575d986f32e9e35e21b261c9fce905ba507a9f0c191cb79a034b9ad19c34993ab6d9301d9fca7af72c2a6fbd6951948a70e2ee8970d0b6cdca53aa9a650c45680226d2aa6c161d067e63793c2dd610110cb0c241a20c3b02dac9734fd7230fc23eb473aa963341ba6d28a2ac3005817b8429be504c969d27bb0271ede9f1ec0560892a62bc398ee4c07c7b428ac3bc36c9d677c6b79dcf12fa459b863bdbc4740980964d63b61c7bf859238dc3cfa3775ce36429c384c8f9fc2d7abf3ef192525976299b09e870183275efe96fb5feb3670c38f09ca8bdfa6c1b1052b9f81b69c5b8d4ad0859997b98b06a0d132d0926e08c73094eb812942e7d9d8d9251d286073c219b47049004641a387e5722a94fbbb9a9531462992ceaeeead2f199a9fa1978f7aebd6dd73a6b9b491995dac2723340ec258d61068a24700815ad26971b44f663e6c458504843b7ba8da7f5ef151c3836c5af387959e735366107ab66c136e475753c06707bf0ff89de14431c83467c31f2971d93aaf9d8f953bfa95bc9383eed417b2452c5261f5ee483a5304cf6fa935b20e7e071a8e2389d6d89d1956362ce6612db9c3d1a977dca827e01c365f075264d024b071ffa8f853366ad8aef1e19b25f9cd09ddf9c228f9d5c2b7f5a3d6e6a86bad5a64f340463b9fafd92908dd128f0a668c35cae5e88c4e565dac94bf6b5a25e3bf06b489a267d3a9798e24d417db2602430c9c5d3dc02381a758d339386c10cd169edaa55d07077d00ee6f0d79ef9f5ec8cbe4ca307853ab7b2271186d4f52eb6f82dd19ff5e82ccd698ca759284fe60d20d9301557ef98533898c05185c0f2856a901f1e41dbc9e1a454861bef1569e25ae8bba3720463aa73406e38f85a45a1ef38448bef6c14b7b9f7efe478fcd3ac4daf114bce9b8a6412d8afef7cd11eaf9b55003f52d100c82b25f9ad7e3f6d082e35753538e8b9ee8771172ed6ed2520e6f6a1ad507815b7804fd7da70bc5349d8a5b71f4e0e3cd08a8e7261bff1f6592d78b04ee18cb6c1bf88acc4f1d3662949c2721b050bf294974427d1642197ad2f788d0895c3f248f66e4258581c585423e1f0a623ea8de16b7161ace41ddf6390610c750b79ab00b62886532ee450c02c7fe46cc54c8e368bff0108d60fe6f9598342117b2032d79571d732b284d543ce5f5160db3fb43bbd3a829cc0a1b71e76b911b12d02b510abb67c2f5884d084973d4953a762ed2a8c343d28a1cade2237a52f5d004a15631543cec84589ef2fba0a5e99425dec16c838d1b668688f51cf75ab18e4650018767cea31d51bbc628dc1ebc017a7e95604528bb27aaa781ad84034e960b4665c712f05a616391a5609c59bf0669d465617de0e91304c8a0aceeaa1e30d83a9ed30eca3154ab516a24dd1c300c2e90c649b32ab20569f36518f9f82ec185d1a46e07259d7696e2fe71c7c82fa943884e3715111f8ae66fbf6e1daae52c4a9a5433230d2069c4e7f445a45bb40963f586c3bad5b4e6b803bf9ec002668e69ac204dcc94305c31e78c592375449581409fee1fd998db660b336bc86b5c3676b026116bb911ef02814dd73185777bed29f670d2553462d5c1277c0aa2ce4c6edd8f31e01b9aeeaaaa9174e29d8587f93e169af22afc65fc282df4ebd1e84936a7829b4d75443ab18ca679a77c445a8b27ae779193b7c51c82ad51df9750bf5ceda1e9e854e1de32ed7d571bdf91e1866dcab63637973fc42f0a5c9eb5832252b526f26390a2772d537e510d249b701a4c6ee28b6afbccc31094f526e2417f1803a3b97f4a2ebf1d156b55baa4b426d59b8bfc857a539221923609d2d7cbf3ae2a6ccc38a075c2a4ad5bf56e91bffb7f0bff10463435cd42c2b49f2c2b33a76df234080ab0a379c169b18ad006f370e2866f5e51b49aaa84a01587c5c12622e46e9802600b8b9f8e4ae3f2de19695f537ad4b3654866edcc49f4accf5b281812f15b9135880d5a62a00e8483b5ec6c6495ee205e04ddca1fc81a15720030ba05eca0f27e50e8a41e78c91964fdb552a3e1fb7261a120e9bcc53cdf35b22d050ef4b304888d92817378d784e4f9cb8a2c30a94b0785db463c333ea5effa32d6b54709edf2dbe38aab58e26d14ccf7c02bdc4957e3199fe052e12fab7b075f65fa6054e5a3a3f6831b0a9e520bc47b1f0f74470afee534382f2f676036eecebad41014ca806317d18283a71618383aa6a33d2142693fa314f3a38a5a9253a0a6bb59489c06cea787ba5c6825e9b11703d76e7700a0f35e4d5eceb44f6decdf7c30182021a644a38afd9fe440540fc468eb5fd7a474459f9eff91d219a7260747226498934ae24afba11fc49e9b0180055cb73a70cfba5026f74958229d3afba4a01097d0e93e77ed6782d5dbf815eebddbc0e2d4ce637eb987c32bb9ce52a66b07c2d8eaead8c10f22a9a6ce27aa8934651cc353db8eab2a5fa2ed6cde90f941e0e45809ec8268a311763d0d00981b003f80136db4698c74129ccf8fe72bfa5a284978869ca9ef068b2ae6aab41dc0d5dff012966c067840ef0362653f045405e27588221b27186a4796875ba6be183ed1ac15fdfef1ee31e0eade853c55de306248db2dca38100a2447e56e527267b263a36e38f91a7377d142dd96bf26bb8654d063f32054c7a5668857e3b1dfde3c9ae6e2981b73ae2a5303b1e6b4d3908d829fdccc1a9162b65a9f128703abaf96ea39001033ee44007c784c1074a6a1cd15138f5a90fe6bdaafe47d057860ea502e24528295050cd89dd6c2b5752f72f551ecc5c11ac4ed6b423f74b6d80ddd243ea48eb4afc14400356cb2a57af27787fa7d24aa04773bc46fbbfd84e112e9f46580ea081d8e9c6c1f868ae6801d13dfb12b584046bc262d7c1d7bf3d0b19c6f29ac4762db77fd7044f02bdcd48dd748b32e0136fdb44f810102eeca13ad76683fa2360716beaec814ddb472f7e593e8672fe5814278f0250ad8080820651c707efc851b59dce89e0ce2d2b1abb8e475418117aaf41a88a2b32276c10a1d170e4c6123223b0c52d3edefc0e7df2e706f3d002cafa307740e77ac00f1cc8bfb0509dc0192bb3a988abd116e22e39a66d758f8d4139c98998fde92b3e9d157e42d8a0c666ff69bb1aad345058649ea5c380bb8d82af7946d09e7a78492de0d4a9daa91551185fd49cbc82412c3b94b408ccaf1c282629db742ca3b3568aab878f0a214f4faf081700c4b111e434e83f65a8880c576c227b81bc07c2e61529f843f1359f9e44fdce90a68c1780b24b55ea76429f9bd010be699bfcab5d56c8f865696537ae1b3873ccb6dd5bc97d6c3e1f2b289322a90c326dc6d8075576d7308e22502304ba6dfcc63e6946ed439d36a1d091de44cfb7726170186cb1c333b4c921e1716e6d700190fab7ffb2120efd6703f3b42e206a57b8804f13c6308ab0a03cc4ecf8c2a44be49bb151dee09445187739af23fd6d0ae810ec1b4dd22752609f2cd82c0d86d59c4407114303064a2b6f7b3183ca4c1b83efc80d9e645a426149eb7495e53a65b8106e59a3b91cfe9847f66739712bde3e20908f57c460610e8fd53e61a53935918aa926b2a2f3a720eb5c75bae036aade59ed75a474eb9d81997b213decfc5ccc3366147b400ddf415e76acfe8620c97a8590965f1a2d0ca7e12e1d341ec8ebd4ffe34eff7eec3376350cef37daaa29e24200099d007b9ef8b7581673e07be740d870fe0e263d024219298c21d44527e6643cbf8a947d210fbf20c94d9f7aa1521ab3b7456a8c2f4149a737dd72bbf8377030a02de9f05d7770631bc70a9d13e515c4ba975c91d86a150ff54835ec971f22f68d3b35f5817497f8462c943637768f1a0b0d75052f6564c50f9ba19b34bce7e7013651ef339bd2499607f32988ae3f45aa1e120d0ae92f8a7adac04c84ae648328f43cf9f07a1639adcca40d26b953757fa9f22febe20447307ba02e8105ed1ba7fe98e298dd2a579825646045fcebd8b591bae17935842d70ffd0186a060f5d757a2bc1497f296a1cb5b8cde2459bc59b00719ab7bfe525efffe79715f1069d74e36011ed82044400786682ea4cedb24c9e047f6e8f708d5866fe09ea3147ffae82c4661852fee84aacfa90457bdd04b047c3999cf60445b8f630cb0c8bf866685f89ac23092e06b04a42667f515ba69688e2a2dd90910fa87d21729a9e73396b6506f6960a00b8a4abd24df558cc730191f95815249e405a1a741cfaebc7f03a9e34df51d7b4a0d6e68106c2858a75da738569dcadc4badb2454cb9dc2377e16a6337d0ed3de4effd8ea66d71d5feaaa3c64e971dd313e2722eccfc1e4b97cf4f8c3de212fe4f34d81ec11f8b60e2218d15d5d33b02607e410ef47fd947733e34ecb1c9ccf846ae1942b3b83a1ca2731a29652dde479bce91a11aab59151687602d6fa29a14b8d0cbc8d7b4422bd3cd7e81c87168014aee3608b62c7115a022d6791175a801edd5eeabdb5b9318322cb875fa207ab7463ad269b7ff52d577cf8084fad2785b577aba7ab0a8113ac3529b5b27d01cb2b7a4220026ef2424327500985e2ec3f1b5e88ed09dee0fc3d585e3ccffc73cf5ed45b0084c513c0ce3c7a314eaa1e37300b0072d0ea9b2d30acdf805276b759471714b36b250387d9c1f4dce73474bf275a6fd5b9678352ef1d2f6939ac6a90b4792de00521fe78fb38289234f05b1a08bdc92ec53b79c5ddbef6006a54672686e2d269213c770eff24cefa3a18e0a02fc3bddeb642d442cdef44f02d318f5b3457ee9d96f729de645bb5f0a3d75ca3cbef736793a158f8895b33ddaeb9f38345ba6eb9bdedf3c8dc26ce7e3df8a99060e0e143282b36664cc1826c7c521af0d9d9162ef2fe0418cd39a8097b239ae945c3eb5e83d4be66488ff5dc0d165fe721ceafd4168e383bd370cc4df2b2f17f271eced77939c7d5224d7328382db8c3e3a7b8d610cda9fd3c659c85dd10378284e489361f31e3bc71d63e2db9b75b24f76eeda34719d5f68acfa1d39aa8fedf31de4c105172f09d4265c9a0b0440a9bcc703fb92a68d8b6f5b977012b6794a4d55d10612e48a171976cec7422dbff2de3de1858a8c3a4ace682b7beb6cb24006c47e88c9956f933e34294e77792cd8653bd058eb8d6320d7eaf93ce0688c7d9c466bc10ba6eee648f9c25acfaba9dac44211c16d3890c130d8e0afe07b10def031666677b739fb779d6277d5d96a4b674bfbdae75afbdc59ba8da4f4d7ff5b71f346c8d0c4ed3467010feeb32a0bff9b5ca8c779fc0fd186207a3868e9f6580646bd7da60f2b109b917b973736685d26c22aecc58a9a49b5143d9182313926af2c7d89fae73e9ef8d214cabfaf1475314d1b2dd27a5bc1e8b687fa58ca0ec573d9e3c0ef028b1009855aef20abfcbcbb9dac2ef9b2b43b5e6a8c333e9d382088bc1e37e67e15c147c28b31dc445b5567e5be3d3c4ec6a2d6ddef3e2818feb1a790abd0f152972444c86a36eb312ef5617f6719bb7dd70acdedd6e333f2c26f9772df9eb419d71fa11cde1a9416f8a1550922ffe0d5556662d997dbc302a0d2947e1724df750c6994997222b3f9adc7e846b743664371283ff113ef606713ee98255856b85418d1d635604ac6190da53266f6751dd330b23301c0aba98209b7d13f9ca1800db26a744bd0fdbbf64f5023ceb52129c10ed1c4ef0033f60f1c010b9907ec6bd8cc4e6c5fa6af95629f9c1de8c70914c072b7f1b8eb2a3fb241f9a8a9d7801d86d647b32c4c9748567b070bcaec6af9831c1170eefd788ad0689ca6b130342b0f1ece3cc2f64da91284e4296f7f052b3050745d308ebdcdafb679b985ffd1469ac5a5f485ffe8e218ee029c148ee1cd1e2a41ac79fdfba8e24efbe23bf0a3a682732264ffa4a6fc2fa4d8ca9fc4dfdabadfe757de9252af68bf2d96ce5c44fdbc5a7bbfc7832db64ca9ec84975568a007da5f53bff0ba1e5e84322aef22c0c2fb92fb1613ec9b5db9a95bdb4fafe890e56a2e77d20eb6550eeb6b673bad4cc9805681b0283fe925f24d89190e9d6731df9ab2a71c5ca4ed22b2fc81a5a7a7f8c968e23570f4ea30ca22aaa963134fef4bd99ae7a8163ea297e5975581f10814863f5944fc6feec63ca7fe7142443fa6280a5b8aeb5abd0b70ff30cb3be6a164aa32602c8ffb709c757dffc6a92d1dbb79c4e50581358b402e9bf4409da0f8fd512ab2118b377ee012165eb903cef4a48fcef4176eef9d1341193d508d7def77047a44e8771333bbdc1da788f8fbd06ee315bf43b60a5849b3e0ad7b3058e806714adadd230ae2e0bd3adc303b4083287a60ae78e39491b2a17df27e316365c48ffb152aae54ca2deb344eda0ec83db74d5bc0e8ac52285f700f029c4e265f268c4b3e833eef36090e1f331aa44c3341a998a6efc5bf70ebb82621b547f78ab5ceba5c8864c37c35ce015ac7b8e4c746187ca3be8c3fd3555348160e7a62780806bdb202fb167bae3b3076e01b259d0385e53930566a188473f3724a56e94b97360b3caaf55465ba8e70b953d4b26590f80ef463c4f89a8376f4bcf0a4d40fc99ce77b0fba6698894275675c598e2ba5b8013922d038dc470d2bcf86670b0cd9877a031fbbf9c937268c10542baa51815c02995a91e814c5eeae29b5b65b541dbbeebc70cb4c38c74a0f23ff33ef9423b1a054f39ca0534156c3393620d9161129eff4b7ea90e7cac0fea3f2904d8854ea04c6c96fcc0d4cb90cf9046e5742cb0a9849c17c485f49418458cc9633a2bd366f2ac2f8dae635af63a10a69b12c66c25ed168fdf374387a8b216cdb28998d26107d0a61670f8bf0fde0678f73885c1285a45121a96fe45305c32c30f959e5a517eee53a9c6589e25366b810eb7196dd35061c12ec6e0732c45f44c81e12cfbbdafedbf4da015bbe6d404ddcbffedf69131cf31a0f5a6193ee32f9e646f1a4a05b13a2b57630a828891597dc6473e2072a382eab2f72622d37088032c4f1f6076d04f078661fa80778df6a467171c78876550e937b8ebdf5ebcdd586d9f6b5c7ec89d7bfa9cdbe797eec56a618bbacd5f388e1e274d70842276b18f40ce81dce47b52e1f648590e16719c3975bdecb187d105ef09b180aa853e002dee371b88184d1f4872b03befc632ac538a0fb5fc1e0b2cb335705eccfef66fcced7ce7888b6291f37a6caea8185a1449145321497dc1c138d6d206ca8b17a39a3429e808206ac6d86814d1fa927a5785c9067578e610803ec84d5f68ba0af7d9d38603bba4ad4822e0d199cde7d81cc1a924d02a4fe535fa43441cd040d2f15de7b52a55618aa5b0a382d4aa93f0428e543a1648310ec9945764ed0c26762911d4631810b39de1933752f43f0eddf3cfafc5d67d7048e1a93128da8d7a007e72d6bb3e28b938469453f580df8a881e3bde0f5db74ef09fc93b46c0a7a0071512e16af45f11ed23ab25f123ff48c271de8500dbaa704dabfa041a95122509a416cbd0517aa4440e896498bdbb749eb89866a3d74df2aa0033fc4f626b27173db9ceb878c182f6c40f32a8744e97c1419c405aa75a8bad74e2fa5df5b0529affc757333283d02a77d5cdae669d9779cdf30af5b8d2c39985679f92e0c8652ac523226be790c29f4da417a67aad4ac658f7792af077387c279777c5bbf94bbf2041a88ffbbdaac130fce16bda2994b3fdd8d52a1b51ef657e39fbf18970c5bcccace12e76641408908f1402c3dd16a70b1a2147ce2abc2e0f8c5647c8bd9f9af2815198bee1f02988c49ec0ae3d75836c158fe69512b56fcbc00477f2547e2b8df36423e216d4fa25353ae357df21c365744a447cdbb6a781783a4c370d33c484c5217380e74003ac31fd1cb5fcbfecc6b78baf559df9bba64e20d6afa4a6c50ad3241102bf0526b13bbd1bddf31303a1b1ff472334b546224fddaeaa3a514b2889f0f92e0aa9e4a6894125b1c783d2b40a7e7021bdd565c37b712984d242006a6a8bf493b9e514d68545384a9c273ee0bd0f72c41dc0fb4746607013d5bb5c118a6ecf66c1371929504b5b673d6aeef49b4509fb7a26946c1a2bdfeb8e55ce3915c4dcc29c78ee2a3a3e03879939038dc7ded78bbfec5e4fd39b2091afba8ceec6f54728c68ba07a4be5bbe842c7aba439bff4471c1df38c41dfdb43cbef1c44708b1e22411bf892be257c6fedd8c5f93b36141a84eccbe1aa6ffa3bd92bc526795926d81164732e80155040f4a8e674ef9402af2ecfb1c745cfd0fcb74073b55affda1ac112dcbfb5dd4204d7566f29c6146b91159d817abf12b4eea593d7ae20b62c29dd2f0c70346db2e7b6e78ecc0a0e251878c6030cba3bc690c6a5b6acee6eda08761cb4d106fb76ccd9d653dd557e81735a98c5b249630365a22cb3a7794181cba19e3304eb5888a729362f1a18df527b0391264c76b4d92fa7ba12848a2abb83f8fdd74ed4150baeb45e8b4a164ca99c7dc40b1ebd36d643a3f73e36801ae7fe173011566a70efc82c3158d5e6f97c6b1851eb408e6830594c690564cb537491201570ec86198cc169e6ae1774fcc0e9e6e321bfcea93ee0b8cbd7457219cb6438c47f29b7c6debce26feff0805d988a3f4dc46256761dd5e5f98ef18ead2cbf08e8cbe0bf945ce63868f9831d83a7553f255f5f737013da32667226cd9f24af3c2ba6cb163a7c9eac9362bf33e6bb5343805681653b7cc5e4228628f06b655d07b57cb86609641ca4f0ccd8fe18449b70b3d750e02544dfa37a61374d682a099eb5d3da0dc465352a58be898e1d52e82c298fa28da43ec1fa1810b34d04795cb80234e79e3c32e86cae9b86450c22a9a34594648a9ce12cdac2bf0fef56db5615c4a0fe60c9ee5c3da3a95a5c0a5fcd435b3d12e67d2f30179f3c4f44fd6d86f42f668dcd8696469302358e5e90a07340afcd1d262edaa2e90e7ed5f1485ba89a575329156a51f5079544beaa00dac5118e2fcbc3c2e85b6d16c613b0be1d13d203b12b9823abf458907617f58db6f2f16f2c6baa0b6a7f225515b4cfe4237e68a1873b70d1d3c3e897eb77c6711b375f2dd5a2baedfdea6d8ef5a4af61afd3ad3d063de58154113d4d6156f9724a589e430c6f498d3f1715c2dca3466a09bbf6921c23f685e1e68270de6e3dbc5ec4362964e0a0485abbc7d4aaaa9e8066721d259af0d793345d0391921f96021ecc71b2c31f7a82531f93c803f353821361fe6d64ce6db918c3b44dcb52dbfb570edf858228893cd3506d8588181907c683fb19967cd41e129eab2521cd39254e3ad2a0efc8f181755dad313041340f2a767954998cda984b8ea2d83db9aed9ddc3e3eb73e6cba1ee4c8f1a4419ff01076661248fc2810bb4ea7657de548eb866016bdfc2b6a4398cd4b42cc0de66fc95ada0d895b4809c75ddaa44f2b4025ca7700b38cb9bfb0fdda4a0fc19ae6b6fe32ba784c03ec3b530e4e504fbb0845f0a8d24bb5994c6be89c13a5fb0c0a40e56b3eb8cd1aae7d7a4da6f5f0c2865b61db7600ba0bfee2da88a4e926553bb0eb50f66430a7bbf3cb121b8ae10fc48522e2a278d1146cedd13fe0ef5257aedb347361494a19fd249d707d2a03252a41942e22b5b4816b801953e8d505d3b8c30e82b77c1b37edad2a853f2878ee1452eeaa1dd4ae448706ae09d43b09cec7dd3230e1431bd9e462cccb3f33a8d5bcb83a7fcf50096aaaf40ba3d8ccaf2efbb86c275f447f2f3b90d80e3d2858a4329c6db67ee15c8dfa18fc5db28f9b89fd29d4f1a245706c98944c985332aa9dd279080d9874a98d1679fca82bdc1d66c64f47d37359833fc4036b414db6ff636e1f11e6943cc1298961f7eab50eebdf1a85c81b6bc3996d11f3354c534453fab4747c1bcea89e1e1b72113ced035a102e65db786d37b2cec96986aecccef38b79b5ed9c80698e1edc5e321858b74a791fc4239e297dc0d17cdc3df42d64cdf57f5ee548f67a55087b26aad29b7741d94dc783174a854ab681fd47764a7a12ab2c25e5a179f7f8419e2ec513feb46e8f30c3d0e78aca32af2993d6d063afc7e4041da67cc87a75edcad0ce61ea32abafe249cebf1cbac2e9d7f2bdbaead23774d05baced0b8f5ed4ee1e2180dbf06ccb253c0ce1134e39e12c8b22129c218ed157639c594134ff0b13fd9d65104721dbfdb8f8cac97c63f859dd4ad8e5f2662864f7d88303a6926f8fa547ff4994b7d0b919b7576aa6f2e03de50cf7e0e82282a21ea4895149fabae3b3135788ce3dc225e5d2155a52c91819d48860b7d7cf08ccfcadaa54dd5c3b39f09d4524bb3afe8c0c6f2aec52d0f2ea0b072f4ff419b01114765add36ed12eb75454e02ba65998491f3018cc41e1b1e3934f040a2b757bf1a989775a516520864ea843e5f1ed2b1f33c81e7fa28dfa1426a4c8b79c39e950f8bc82d9f99a0d07b35bfd147fc0ed7bd11e3f27d1a0cc16a694664679824b62d7cd620ba132bea54880ffb8e18b262a9b7a3d1183f5dc7e10fd02972085922ec3d06eef6f1bc1c13ab1adb5e12d900f21ee380e9e5d6d19a23f0fb1003f290f95ec4249c45f6f3044378755933c739f52d6cdf444be71642a71cf3eb673f6355ac1731f85a571baa99730c2fff51b633c48871af4f012122ecd990dbd1e86257a630e3c87b4609c0418318d5d4ca17a1608b0e0adfbfc8ad99ba290b03a00352d2525b001b5f507dd00002ad910cf14a3e34c2537724667c3f3a25c1c008c1143a8b64d1218639f14a9ec71ed7e62f8dc89abcf6312e7f67e014cabdcfdc03939f2b12c525cdbfc2094031f4caaaefff5397a4773eda3bbfebe43dd0eadd180a17cb7277a20ff2c162d525356912c96a5e3cdfa7cb00fecc6445bf291622d8ed87b7c5c1736e82f81e8d11125d67040c792d5d9ecddbdf4ef1eca1217c0715f0cd662b04fa6cb7a12d7d2c221607f1249403bd90f0a10f2f84f7d05c206a6c39284ed49b6dab87518f3f4b22e687b366a625b74b06c14386aebf3bb59ede4dc8f593613305cd0fdc9b29e915fb1406849d68d27c359c5cc4772b6c608dccba2ec636f3de8d968e260a966f341f0887cc3fcb3f2227399ea535b31dbadaf40629d6bc7b9546afd6a044115d0b5a2ded6a12421db5da5bc7f21719e55bc66613b3840bebf4a386ccd83d7ba0456dac4f0189cbb6b91417ab0f6efb3b2ac59bba0dbd3124a230e01b6e0c7d5d070bb29d79603e62f57c658517f8d0314fde039d9645cfa99ef7003c8a92aab5790b26fafe1bb5938c129286f4fd44ec0c18a9681f6f43cb0bd3d04172557c42293a2172b86899c9c66b6cbc7357d99a2c5417709cf7929d5ecfaf2ab4a6ffa9d548d5c1596c724f37fcdd84c5eb06dc83a08d1346f980f13924f17018f809898e578dfccb6c390da13203ca5445899e3fa279899104e14baec5267897d03e4c65493d8c17f1d8f733331f7ac76f0a6c957fa40256c4ec2ddeaa5572923c4ca4107d720f9284337e34633b0f0267a77f57ba91696d00cadd2bd882eb8487d8c04a1b1cd8e89659ad369923e348f80ae055b8df7018961dab67e5e17847db0f5707d6f062e667d46f0d7bd96ee2257143b3206994c93056ce6e250b0cdf18428c8b76d319a0f3c4e6c690278c991fbadfd98f60eb4a65e2f870006904721b7ffb4c354952851012a7a1f8807239a450d56213ff5498a554f00239a4d9c4de3cec295dd1042af306fd5c0c4138fab4e477288dd436dbb30617baf4fe9e8c8b4a2e05be399e5f57fec3a86f51355593b12267791885964ad6a6719a7103b10c42ae4c5c3ca23171933e9d67117ed9cd0c665d228fb98a2d04cf8e6d09c1bb62d2604de4fe3a159a9f52815e9c088e87e65cc9bd5a38a1d2b34a6c5abd6ff1c2c835e71cf481ad7b7efc07add198709cd4917622f95e3ec884caaaec07fd5013e617108d9beda4add387e05ee8201db4ceaa941c20d29cf47fb841bef5b7cd6a3cca26f00494330b700b373c14542c883de09754d2f39b0cd50784abbfb4bec3d59b9cf9de34c31b0b1b550a455461f71675f7513dcc27fd9360b9370d3896e15ba61562f08fce4f7615c112c9c42339ce2fbaadd34c857a81e8bca893ff22c1a12ab6e1740f4dd434b854071c71c4fd4e2cfad952423f3289785b811f33936df018b89b9dee30834bb93bbb2efee770c25f0159660fd73b7404d9bed70804260655a76375a0f5b748fe9fe739287fffc3a19dc1447587a1b0979bc439de1ed194c524b51a0d3d0f5d971826851e9e67490274a490f868ac27766157028e9c2fef415de29331bbcd8ba1826be9bcc1085639e7b2fd1afc37017b20339911715137f27ccf1cfe962e2d64fae98e81a44ef62226e0b054ee6e1b7c00d36c062abb98e6f13bbdfd4ed97128c50d07171fe82e9ffa10d3db4aa145737b79acab03afb5eba3af7f884a65863c74f456ea4165238a34abb0584673aff8365d73e60b05295380a624637861199fda85aa33a2fe7a41e0ffc0b350885cb5354c279c14cc8b5fdd35abe3f1464fcb1cf69c5eef8e76ba95aefe194534d93199a3ae7988d6544814ceeb382945a7e667a41872d45cdbb1c3debfd3f824b708d3c77bd9ee84b7821f31271f9850300267f01699be89a9675db46d92a25dc712a5574b60056f8e39c0ada3731718ee9febfe54e8e6dc15c5870d2661e5c8b54b0453087deaa7d9d9621973ecd06c4e17f27d2a89196932e8adc1e73355c6002a0fcaa58ccc3bf40182b40f9018ef3f73fb5b17be3b0f9d475c7f6e26046a3f5c349d952537ff99c0e27884819a3affb569afaedf6b64c8da84fab2ee14d1755a442fe5d718817fec85a76f5f045f40ee265e910f04283e7544b16ebd12ee3c511b71c9b15f1b1c979197c36793890b8834145802d511ae1cf1874ab9bf4a17c9eb572b8a49cae96bb1c4bd93aadebdddf3dbf1abad2638a15ff76097f10560c21203133777ad6fd0a6dee12cc4586141faf3e85dc0f25cf421e362b10c038cf3750e1cb5a90e72044dae7e55d61c6ac7099ac6388daae6e19f0d9b0b7c39f8abecb2aef0fd5ed4c2f0454842dbbf3b0842d1032e890d9ca8058288e2d65731c5909eb98c9daec2bf3f25612145977d40e550e71dcef8ef8024652f605ceee95f044d143b24924b19c3f53b3fbc9baf84a4f1e6976b5cb674ce2a42a20aea4242d64f0cb652a794a99ccadda5eb4407e725d05207d13438cb05200af36320290ffeaf8c67400cee8400e206fd1b4d0114a7f6b3cebf10d2ba5083621544acade1b000db9e3b4532048e3da6d788cd006953f9b7b6f01105544a2b0b2584043ed768160b9ab501df94dfdfb608d9f24999d90be0dec9dfca0cd5a070e779e105acc28178e388780074fd9172bddc331a2afb82aa5f88025eb200b5f44b865f3341dc01203ec100d0b3348da5f4b5fda659c4e8d455e447dbc45baba387794ea472a66a3439ad524a24187ff9f4cd6901d3a460ce89cb4777de4bd9de1e3fc6da8fce24b4b0be77e97a4e827356a4ad9d0e10cabd966f3b1c4cd6aa1a37f6bbd7b5e0c0c167c4b1feeed0b4878c2a8d4dbefb58651216a8c647255e0f9a51d7e7e5e3ae3141e988d1791a6b7638508af3d4437bb1c698c20566822599bfe8720edd0cb7c8f955b54af66dc20107a590b6ac7b503668b6a3c43eae6aa4e0b6dc8dfcbba38087a5813ae2a28d2c17a62c6e1dfe1678f0b144e3c5619cda7a043b1092941026cd98fae45fcd3349af30fab48fa6388cc20ca681aad11a5fd63ed48110b8da6d3b41b647fe1016af76612f20609595cac3302ce28171a9bff51bd7a6354859de07dd9d2434044500aeacca6c602df71096438a4f45d0f91753acee479299e764ba0e43bac66c67331a6934b465db103e80592c58c6e91dcde40a9f10877bd5b0ef7e0885b0305ab355a3a570b98d575a11d50d00edac326d75c3c10706d2f5cb25415e124ac16629bd7f26578b3570b5de611e3195a9e5362d9208413fdaa71aafb55d7745784d6d9827b37acb516e73d4fe7aea246cdd282d73188fc6066715324bf7ac9e1b1c56fd69dd45725a1a9de7a33c9af1d22fcc7c972bd398f3b5b247d3fd4048bd64f7bdffc756b91213eab3f5f67b8019459d4f74520ffcadcb8d6a7f29a8c798511b1bf3306130b5ba869a85beeba38d00036fdf2fd711519ffd2b54b29f932c6b54c2c4459fca6b5e5ca73f4ffa3ac5a5e4d4a7da462b63023f9b00ffd8c23bd82dbf054734afd5a332d93f2ef496c3e1469a2cac6f2b939d6f115204ccd1ce4a28f68c078eaad624bd1af0ecb13294eceaf9d19cf4c6c9418915415785bd1d22c2106732138d70e6ba4a2b3595ebaf42deb26c8991de36f177753a96a9e5a972b20cf99c9009f183469f990c8d498952fc9fc695277755e8608eaf124e2b39e2901dea079fdaf0cbb7978fde03d637dabb3342f6d213dfae60b656b0b533d2d001cdf817fcdb4b754959529fbb15b62d4efb59af61e9a9970b505d3b8a13b67ed4a95627354e0a2f42cfb2114c9e774d551ba88b361af138aaf7fd1612b56e932d65483c11f67a02e6909a2b1131200f2725485cb35e49407ba7b75133a1af1bede877d132102682db551b67d1c099ac802e672f7ee63839ece167e564f7615a2882bd2329c6f4330f2192fc4439ee49b7ea7806ec59b73415561750173408f53bc52c83ea0eeca6197dde23b01c8ddc25323710b9ec12c56d7df9a432faf110674a29b4fc5c6b119eacbc0c57b21c0a234bb3064ae4abdf7cc0b9e323adf328f30d4fae030bea2db2a45b30bf26673d43120bccd8a739fb693d02865cc5164a35f35d69d14a42ca50b63522922fb8c57fbdc568631b9ed885a0f3a644b687b6833277e67f4cabe5c046e66c8b964e0f487c911801361a7dcd21c50fd3decc9a0a9a111b20183b57322663a5bdbcd9f324397a185f0f104fec24163bf778bc6f046ab3c90c3ab760dc17ebe5ef0840c7ccc4b85b399b5dc432a3ab02c0853450159e44608141c9e3d2f9a7ace5379b75e44ba7c7f523b17b483b8526bc13a408068fc718c343a3a2faad85034dbc451ff1e124fc895d73312d8deaf7e19962f42e23aa8b05c681847390410fee71f0d287552e1a77920dd89bcc7b053c0a5f205e5f67a77af912193ea22d60276688c92d7cd9c01ca718d670ffecc298407489d8f2071d0f4a0c618a6e842628f21644fbaac2507376943914004e522053fd67b21b8a521ce077dd44e417a27a9f02a6da868612da26b46b137cdec034835c4eebd53b6f65d3c4b7c30cbf659af1f1a419254cd4ba91ffb44764366706fb6e17ea89d012f84386557c95a2c66f21d3ef3b21125e00cefc701e8c2ab2ac2f35f3f5fd13545e1f6d8bcd773fa07bbfb3630bc1759b0738b0942f09a0a23acfe190b0e432f8accfa4a0b33d2ee2005ef88223133d5445b66176ca791ad5f97506df273d7266d4ac7c22b60e45724c5d47c151c0317f5b9365885e75e57075146a25b7a86302bd96887f1014d270327a99063947c9480f4776663bb2fed182e9fe4976be009809be80be93d64a4c1680e7892dc65f26d4ee9442d0024d1994a00cceeec85383202daeb67eeb2ee204ecaacbe3ad98aaae90ea31e8dd10c450d7074629eab789496d2f7ef02775006ae478fb80fc94324bfad31bf01c04b0591dc26ae889c7b56f1e95137c025618a451417751b78b557b75207006feda5c3b49491415034f63e3a3d9a67a9e3f7d9cf6213b44ffda00c2fcb14f16b483a5559cc903a7a67ffa8c66e2b66bc0bee525d88fbfd0bc4b6bac1aca900cb379991c41c879feeb9bede8d23673753acb18607804f5b200dad5028cc08f71011ffdb3701465c49c46aab338312cf6c08a80c6b6788677e6ca65758c60c2003a45ea9875986c379b697be5abcc2df5717604ec30099a11247e8acd479dc541eaf3bcde8ebf096a6d0d5bac980597bba0395b71f32fe1bda5be14b4e89afd78c69559737ddb6d74ae89f09af839196b9aa00f4ec865feeea3880e248dba2333df8200cb43cbae105e799cef8fe9ac1931ffe24f8aabf0ad0c0d929741d9d9210fb13c28d784693a74c1f94472fc8a75a2afc3825f03c584bac1f3dd03c433bb301bf2da1e4588397a8218b7bd7492897c3bfce4ccf61354b07e76880ebfc289610b866773a7988d42057783dbafb198c9a764e196105c4a2b1be2c652309f0ac1f55aff016221270eeb8a82d23410c7c92992246e4bba0dedd1569339da25f079b36490176b91697e05187945df196ce429f3a573ad7e7619372f3c35a34941ae6a1608f401998f0d85cae893b540b32737e41ba68f7a9d12ff80ac41c9e6b91d3ab18d0bca700584ab38d87912e98dea50032461a2b32b7e03d67c4ea888dc82c3302791600dbbfc18b004bb8de32f089e432391ea0bf2b2a75dbe190cb79ae2cab87bade2aa6575a886caf0e89d76488d0e427e4e3945264e0c7e71cdf4e9c05b6173f8766c8e5471544f17454f2ac3b158ccc05b47e603b99d3d962633ae05c8f185aeb7fe2a44d170662ceb603e4f03fc047b95e34f22da7a84779b3c51ec846ee28c5ba05da46ea142287d1d1b72c7d8b2f5fb3337d0f66acaa3c8a706456ca9da7354a8ec7a0affee50adeb8bc24cb23bdf982fab8883cee52cbb64bbd08c1d6a14059a496ddec10264aaaec6d42fca784adb0bff893a2c61507e1856c51356ef84ea3a54f117a51583b25bd60a6898a6545d20d900178e005195e1c6a9b0f94eaaa9cf9ff67c036fe56fb2f42a23594cdb060e186f5aaa6f9eb1422a1c1604df1062b12ba9c48b9601943810e3d7ea8fb7f782c14662e508aad724e85957cfd42f4ed9a32829998ce85395d92b1dfb5aa682ae28fa0400483526fc6fa5be407446e17195c7f66ed119e0ee5adeee67b70c75bebcfc301d16c10a251374c01d5004ed47d880b0e639befc1d001151411271837a72d435a6e01e4656d3815afc34cd7446d463668b292030f40a7fd8c52eb7e2cd9c3663107d40c0ef0a55596d1482a053c661fe53795ed690c53b19fa795408226cfc9f3826c8b2a2e7d225704e4d245e5507efbbe6cc10baecdef14c3154675857ddc690967a8dcd3ac8583dd5e39747b211be7dc71180f06f9ab524cc5a0e93fe361debae66f3be4ddf96963fa3073d5bf54b7749e909c9fb58a4e9a98ffaa6b3ef194d6cf2ec89002f0af88c26b637a919bad3e8e4a273ad96850ea0f3a3dfa2b7790c9caf9f2dae74ebcfcd203fc0d34f6eb6ccc6bb9ae10d284bceecb3cc2f3b2a9df0628af31f3ecf1ae8cf272bf1a7e73c7d69b5082f78d5f400a504f249bb8f59010d4177d6916ba8ef19af57cd6e072d92f894ab7e70dcefaf20aa42d006e7ca5d45d244a190d5f52c33fb1ed46dfe409b364e1af04fe3910d961045ad9103fa916e66c080686b64e11886b74f0d07eb91e63b833ccbf5bdccd5e745718af8e6a36d7fe8bbe2a9ca99802abbc391cefbf713f78ea08e2dcc1702f636dd8aeb27c1d5b41455d143c71b99d6f9461c16be24ab47bdd59aeca5b28a66b69b345dff892e0e9e0cc562d62ca2d7b1494d2901df2048cd2a29dd87a44bba43312fe7bf700990042d0745c6644ea2959a4f38edc1473ad91a1de7298c806826cd03bba7becfff40779e7c51696f0da4d96dda97787ccfb6794d4a0a9294544b654ae7bcbfd4cc2122c9b00ca6ec0e84c52e006948fda96795695b77bfddcf98b11de886d7cfe23b70f7198f9f7bd3196925ccb3e54f09eb4966bdc0475500fc83ca917488f5ada94c3be3808c3b030de58478bdd11624177d65757527ecb6f3c6ebca19966e7fe408ecaa6b22845a57700aa074e9909d53aad89b5fe959c35febf1d0bc6b2ef6836c1528cb5768cccd94f243dcf72c406d666e9bb59a3b4ea46fda21832700122beef0712728f782985c265c28db6f11528729229acb529590d677736a71d72eac1b90d4a9b8e63dd88a2b476ed4df8203f3e514a411cb6ebb7979c8ef9e7d7cdba577d6a369d88902a6f6a80ead9c0814b142a59201e399e8a19656fea328cc72dc9e3d7775e88ea727c759b2bec383af234d3b29f89357eb255f801812c30776883c0ff4646e69aa0add6b79f99d070d0ff38d83b6f4ebb109cd25053c527e56fc2090373b98bf1c3aa23e8c0aefdfc4134f5405c9ecf472726439e797d1757532aa630e20e420705f806a0d6f6b803bd6adffdefe52709c921ed0a26f36b34553bf44f46683d7656e3bb42d11800a454be7c2b0cae67986f02498c1a05d3fa9b3744bb1fe08ea296539601998553b3343e8534f63ac6925892223377a8c2425d7d594a19baaf9261227b0aead4398a28276be443cd1d7acc7e17c29a46efd3b404ee0c071afb5715d0640618b7bae07e15d049fbdd6c2531651d940f95d4c999a42ed511453207cb0fdfe75253e2badc570a69dce853c1c9b8fcd2be5e32c8a3fe3a92d997f94046df8d0947834465d14ba3be3e9299604633cdfde3a28b3f9275a77a982b584a1d9da59c32de74813d35db912c79a91c85e482bf7ac3a7c1c75efd06919b3ab59bd56e67caee8c22df512417a6b110c626605e15213a10662bb339bc507bf098214dc8d38740a8f99402a56236b60125d9f979c5a76f953e22e04bc691d5ae5a0125a44d3a2a6a922ac4b92a449bd1c9787b3d25cbdfcbdb92fd9962c57a0d061ed687f1f55c769fbf596d5ac8717b6d6c42ec2fcea787e1249a7b1a91fd8835cc220c8bb947f7561cfb057454121ce2db3b17edf1fb65ab2e83bdcdc8faff8ab70f5fe3655119df849177c392fc7893a4c9282703c54401036a208dafb136b8ce69c25fe0c38ccadd0dee60aa9274972d34d97178d4c8db900cd84489005717785d0bf07a0408a533ab480331bb9a4e7defbb80dab2d73887930f37c7906cd39029244dfb5ec38ff78099a294df989432a4b1cd70091d006f2c6146595de6a0f8068a87db39fced8220a6ea2650c180439f728f6c0d88f76c825e10eec41906acf3cfe59d037421b4196b7d34528ab6a3050a000c20ccc79d9c0cd82b09bd33af2e19134e8af056b62a9605d27f0e4634eb59f36f0cdf103ed562402c736f6d4bd8a09d89b7b862468f091949ac8b1c9f3692bd1de97e8e1011ced6c4542e02615833c5a9dc1bad065c5beb4e33e304000ebe6967a8a74cb41ab06d66c5ded4cfe2b499e8d3e92eb41258d06e741c387d62374034d01decdc09dd469d48c87438b098699b3cf77d4ea47d8e523fe07d31132d9de3a6e8f69eea1d0e7c8318c697476880dc019fe984e67d81d220fedc090a24174460d244426daca37bc55e3a7f8342353e2c3da7fa19be8cf7d3e7db78a774f5d87aea6f4c43bdb699700e99ebd3584961b8b30e347fdddd5895315121ccc8f6e78a0559b5f2f22fc03b0058fc9b709688cde6e63e20267f7fba18c4dad1a067092638bc7754e66bbfe1f0830d71620d84383ec267e51cba39baf85cb1cfcf88347f5fd5efa7a345650eff38f66e9e048d802a6b8ec3f74908c6d465c396fd4582889a14ba202cf17a4230ab6dcba3d6ed449a60eb52215e0f30d25a1ef0253c201dcae20319f5a5b3f6ecbed85089d08ed383625865b86c351cbd8afdc518102ecb1976809e6519d67c7e31026f7870c2115f0e6e4310d5596682470c0df9147f526fb673e45bc9aafd98517f1e2ef4eae1aa8b08102e52cd3ab3a68d74c0427ad2fd318541a6167979cd47c3e97e37d329664805724d3d769907d28b1eb77c92eeb6214dc48c2f1de014ef220dcbe2d47e98c54b0c5da04adfd8e770e3ff2711e6d17dcd1544ca002d4b3d4bc591e92546c873737c7f180a7da36babee0c122db9492249557caf80f2b23bec91dd58e7c8859f98908a8861358c4640d425a7a7fa5d032bd5d31489e76c8f9a68d075cf54df6d32258a9be297d7576c99e5786ada1072ef2460c772d9029229921f2c8903ebe8fba33b1779f17095b78cbd14df4aaa7041a029266bdbdff9ff3296cc222c431c426d92fe479664bc1b346f2afbdf3517becfadecf0abd412294d901b26d38341298d3584183c6691200a94023b2c000810445bcd2f109686246181af33a7cdfcbafefeccc4174bb10f3d184504ed20f4543818dc44543bb5b6b06d9f3b3946a9cf667b8248938ef1a125b90f2b4dea2fff34bec8b536c19d3b8d6e81ad2897b524a1713561bdcd50c8b48b5c93e17b57a52097e9a44487563e0931b939ed6d1032b25590e8064a7772aa76b828c9300372a8e6158c13d21557db7916fec0f9a490b0d159527d6ac77401b649a6862e8c25ae5e5088d44aca913e9bc337ef70e703014547f87439feef9e5b26e9bfdbe0db75a94180747a43df220184d4748c7178d0449f1d81e563dcfdc7fac60b636908a2e282afdb53ea520ea8427d7109af890f13acd4aa3f8c9a413300a35c34fc59a81bb860e6a9092fa6a1f0f360299a60532dfe2f133da7abd429433b6382e2784ed87ae05fb5a601f593b3de753188fde7c17e69907a61f37a0b3a687ac4ecd0e99214f39f91e9532937645ab8e9053f103252e960b55425898babc8493597d9913609576abf15aeb6db5ceebb20c437e8968a56c24e0840c531e59352543e8e30a3711e57a312f278e097bbd92694a59e38aa1b16cc81374ed9410c07646308613026e95904844eb83c1e01dd51749bc217f60840596531cb32004ce2ed006e5823b949f58f724cb2f9c54ff978acb0326498fe1644a6f40c4069663339efa5a93a41df465484b99ab44007b37bfa46d30893c8127ec76e3eda4617f4d758849026f4ed5f47c570dd1f7af61bb9ceb9911b8296dd1eac70bb2caa7a101c3f61950c91804dc0ff43c87f463967979888626e2eb912ddf704a7370287fa9d0e4bc6029b5ccafba487aa2e61ad600023ced803f08f3f9bff01654c824341b7434777986353d4994503e61abb98c5e00097ad8fe0cf2ed849b92c95d8f428071f53774ce5b9451e9a486344195bd5a809e90dffdd8ea13b9fe6048c34baeef26916ec146e1123711bb359430345b2cde58dceef5cbcdc0fab409b829d54771e4b7a92d9192b845e2b9261be01ee5349abf2b4340bf2dcc12b4d94199912a6f72a96f6f61c50df17cd3f55f62ca4dd198aaedc5442c69563b35a22ca211a7e2ba8a451bdde3804afed259c390bcf24bd8882e1094a0a5d2cf8c1ec61ed8a7d2e9cf220f2e3dc439e3cf41870bf5f14bb50e4ddc26a9e85f6b4d0927c033357b72ffa344e8965194094881a9287a8631b0b667e22d0c538bf1900600fa4cf4c41ff1becfd8dcd2755f24b5d2e8b35c8ec4c8d627f3b24d028cc5819e27d14f18b4fa888206ef78683000661e6f98063be13ebc36486cf4df97726261135f30519522a164c8d442acf2c6915ee799cae27d286e40ff51e139bef5cb88c39dd80b079271e0a31f7a12852d92591e6298f3f8cee15f45822a29cdc500395edf97bdedec480554be997dcf02efbac5e3d9223047e423803eb082f00a601441c8b0070b404221f15622f21f778e031a3028375f6aec236871091a90395c506c0f923f9cb8dc0cc7814df8e19ff95a6c53fb4da6684f0fe4c1b7105d9ead01a1945e6522a2f37b44c90739fbb0604a4260f5d7bfc625bd1f3be8861ab637c1314ce9d14ac919ea65db0a734681cad58c46a5a856ee8b6a7840ea47f5f43085900b98120bac9406049cf2712dae3f504d96280a900949fa974145d45a44d8aa7965f11180ebb141829cde36094b0567fc919679c0f5218b67778763d937f8f8e4f8dace3868083f60b304b2c0b6911b163df4898ad3c34e2221d7516e12cf2f10980ad2d0d4a8e9741e96de45b7614196d0518d94e23b8f35edf51219e62178701e7bae48762078c748903dd95c2494781476c2286ab9fe3aae157d586b1805d155ad5bce04f75d994ed09d09207af6140e04835d11c5a612e0da74be4c161515e03d9ac183f637692ae03585ff03aa2cda5055e7529434f9cb25dc2fc52b3981575c96f6c2e56d1e7dddd7533cfc0d79dc7d6e96b465445e5741f1c14880f38cbe5420489875a4af4d82b0bfbe9bae0950788a75e644b0dbae78a60fca47d8fec4cd92fd01b22b6263db7646e9f21357988016eb41b8c25de8b3236369c35ca9a1903f5acb4f6ddf74659aabae63b5ea88b1596ad9dd0404a13d96ea1104e6fd17d6a24f8a959fcb425b26ebaeba37a2fb8e77c90fc57c51e170479bdac39d4dc8725c96c3005441a0e9a24bec990b924c5f702e69c9f4e66a973ee79f1f2a5208462b72c522859bd1517a4e4a6d4e256a17a0dc6e1dd2ba86cb00797deb7622e618b0755c322d347213aab03b2e4ce4b723606346664dd4a1bad21961641de2b10c092a204bac0816f845820c5aeeb8e04875a8b55c89bc6a86b403a6072c1891bcd792686bd202c8b5eaf77aef6ba4f8789fafbb42fd0a766b18898a79c070aee709e0abc5368abadb8191762735050adafdc16b06a9b61d718c5b8e08b801684d7286657b60082dc23e20496ead9238d23786a3a904df0183be4c56dc54e6781b1032215f8c59a4b92baf88a1711bdda764b2f98adef4b113e78ceea8d69f9e4305dedd48a8863ce7435a40340c94c54115704a0b8b9aac6cf361581871e55d5822b42eaa08cb7611a4b8bacf868707cb3a1bbc75c9c938d7a79f123fc8c243f13a279d9300c9a180ed86c76c067b0fb2bb2364e6bb9c0f648be3f5931261a4004bef0f256b3c0f5ae1d3ba5c8d44e430f175314afe8d1a6e329626f75342798c8be3c7e0c22ee7b643da49575d0654bdae1e6f6a432cf81aeffd042f051029bbda56f67b06d1cffa1c12a7be21156866a26cdbb21577bd4ed2a3bf5a3eefd5bf6bb6ca0a99e77006215ce98f86185631e7e02e43e497665a7b8363874ce2e0e270b4da87f31281fe20943b6781c6dfb4286d1f4ffaf2f98c65c810d7d88e2d2c4e3d3ea2196ed672f50bcd3abb6f8beac610f0a0263a90b06ecd01e7c096670fb56f3e9bab3880d8204435e4e3334447a3268c32ff5095f44e1330f920f1cab0fbd6063585ff6d37e209f66afad4a8a09a3bbdee325ff0535da01682baee33a223239e4e5e879b83305d09cebd2d44e196189111d6cf056d1195c0373cfce960c13b67c738e77a00cf61412a264774ee99d6df36574013d89043e164aac28113e85f18586051f190c9b85037fb7d18aed8cad0bdc9ce437f6a51d3c6456ccfd14efbaab3ef7e5714b823a2f7f36bcef51e8d35351757d93be2b1c26d02fcbdc2c7a7bac6d80d2bb24990576dcded6f11c6e5dc1db4753016a67c6cfe77063c37f982a815cb0957770b6bacb2ac06700395e75a8468dd3fd2350655b5da4467d067a52dfdc0d76fcef0f08b84a8489e40dfec109c27464abcb7fdef7db2b3020b8982447720e0ae254c2dee97ce1a9679c17411ddc61470d3cb424727eb9cb0b672e9e0fd2a1c2f6544e6b9f102658db3f7634ac49684bcc6a4f38542fd4eb8ffeb9bc22b6a6458de1189ee4dcb5635c526d1e0c42d54fefd6d7b7b3e05910b3117dc25b0271982ae8e843eaf2824aebf14fcecc3ba79631c47700126cf73cd380028bb9884c1adff969aef7bd98f7b30df77c6ba710e7e0ea7cdeefd4b21f1b3993efd64cf24ed4d5acecb81394d11eb442f99cddf67f6d97d8cdf69a628705b6be3b5b031679d91aa593eb8d2819855390e400d775da15b0a2cad9c2312a69fad6b154aeda04f952ad16ace49997a24047ff4f6b5b3c58ba94b14f3f21bcc62b741fafa358c26023feafe5e6429d1e5f508557c6ab1a14c58c30c96d8455d3d7f28138ff1df026aa3ad9a61c0f50c639989a53791b4c850f0b47c46c82297931efbae57da915b6fae5535c15034a523190c77a0f950b8360b956df2b968cc83fce544904f0ade938e6c134e2b287d1a9ae85cc54bacaac44dfc30d38114b930e36576e9edca1250a0ace2e43c7a61348eadb748e5ad46ed5eb259070964fac6d932b899bc892f2f281e4939b8074ac61420b57bcfdbe083ef00792039c9905b19491308406f5e8be5f7be1d82dcc6abb364b919b5dafffee23398f4bf0832631aba3100e5bfaf43f1ceb6215b4c55c934c960b8aea6aa6535fade268305bb40090eb49dc7e4c3d8915d7fde51034bbbc8d86639b453aa5e8a2ed20bd50440769be86eecf9c9736490926f3f0cd7356450642c727c59babc58e1820c019730545f55a4fe8d7e4ad0d9c8a96a18e895eb5497791ddf5c5b507e972cf00a5b0be3eb65a0b37c2c4d30bd79b3e8b8890a07be969b8e613fa8f0c1d884086e5318249cad91238e649927da67def5304799381010f620393a6811bb8da832f1bbe686fbcf110f241d3b7c4591982cde116ce33ae392f939b594aeaed243b2360258d2e5af6ec9fc2a6c04b23e6493a0f80c08490d70f678483da68122903da1f076d2f38fa5548ce5b498b9e417b9815bbca904d3db2dd5f097261201217d198e82b132c638a94be1574b24658d4358bbd0a940f83df3c6ea70ec63664cf7c5e9bb275d38ecd6b5f8eca2ff99d4abba1ba7bd301f15672a62354f7177ddea4d9f3e4040b873d5570f066bf7dd6be5697c140f4d57bfa66345058eca7a46ceec5cf67bb77c6fa6527826db2faadf9a643ac34fd41515ed7f5ddfce571ad75fab26cb1e2fe0cd48dad1f21db7ce172948e5d19e87d740d35fcfec04324250a29820e5e7d4c44e8689d851ce872f7a44ff74f0039c66a156c10d93423111556c4edf502205074f058896b7a003288ef430e74c68bdff7aa882bc878aeaf528f1000a7f90bbcc7238d756ef62173164aecfa5ebd688beaf920fc70726118602d80997fdd9489a0e7cb5acb5019d177491df4c8dbfa14f9711766a3a11889dc0c16ed9db57670bcbd45a4e97eec4ccd3986ca5b0f73c7ad22c2ff0cbf6fe68460d1031705c871692275b5b57235c90b4fe15dd189fd7663f8c392bb8ed133c491d9377d3ba050ca4c1360cb823b90142e892362232ff451ecec9d6f909d1cd47202b8b63f60132b03766e70bd90cc5d50f0a5832cba9daa7946d4be77f36e6d642b09240fc88665f53e1c5fb0970e2b04c502f7480bcbc4e9099c0696079c0851ee8316aba9b7554f219b606f9dcb550b636b272e28625a499e902ea05e3bae9f0dd296ce167a5e75a68fb7e322d9a51a92a5d85ecb45d418e4003b7af286578012747b265ce5fd1c47915aae87f6b9bb768a253e41dea609056daff20cdade33973ecf05fad57133e2adfe26884180530988ce13fc9abe5ab60fc197983b8031cbd687d00f686c4497e5f141e7bf3e4f5d20d8db2d6bfca55c4f5910c3cee94bd9398c965c81d8524eacc5662cd72bba806879fbf744c230c84de8a20f5ddc37fa370b990c48ae55c36bc98194d696bdc28a5a35eaa18f11515b07d463d65b1628f221b408a7d7cabfff54da346ca0cdbd4323779bfcadbcf27feb462bcc6fe49963d2e661ce24124939e377d52e83849864595a2059edc9a6f5a7496bf473f267d54973c0af5082ee5dfc1f38126c6e8e558f7204bb7005a7ab40b781aaf8c4fc6877517382156a0ea3f03658f5e247f88de2c234ac8a1d6fc48c19566a3301408ff2edd943516fddba620daf18c370b91bcaf4fab9a97f4e16e934f757ff46bb92316f672f3afe3740a264af9fc3952e20352ac2f454361babba67fab76d1a530d10fb6b4ba3bac94bd6337a1190d27753f984df7138da1e44c1877574e63e906fa5b625dd5025e3e3f7f745db70ce3e7b91bd01c941e8a6d13927179dd825e07c6b7a58f15ce769859c1811cd8395e7f92b633c9acc0ebafad06bb4e3fa52a5ccb474d0d5ab75aca2902bff9b8430713b099fdc04df43549965e19e1c1cd86a4a7334c19d70fe851d4221305d253d294a2a95562d76b6333e9bf237c4834a10b54ed6e7a0c1d22bd1faa3f70ff708bc3d4fbca3bee2ecb0aa3cf18277e2d34d220b4eb4f83cbe3109eb331a12e2f018c345c75b6535a254546ed8e978d24082783f068306bdfece0604ca1ca92e07199e87f9aa51bb34dee7b032042ee82e57f25b501ded1cce317da20bc37d1d42d42229010ab98ab735c2b3cdf2a152bc69a1005f4c120db0bb1609598f1a10b517ba17b044551ff95476f725ce010c5bd0e8a3c447a2f7f554eeaa40777041967d64a82eeee306118b4c40b4b8209aa908fe88b02d0cf52aa216462106520e133e307681daa49d469ebdd88661f35e73926f06648083d059ca11ce04d7facd34eec4907c96dcda6238f8a3d02614793a3f9b1c9ad97d1c5fa95a26fea5833a5808dbfa7d20552dbfb95f0058934334ed07365cdba13657b9bddcac93386e69f947c1788955dc67a3070a7aefa4e009a90cc71cf89e2e1f89dd789400041e54d698d9ae9f9fc3bdc42a424d62257331ad3c2903239aa777b3c2830f57c75bf0a99718906a735ecff79a07b97e6225c1de060cd86533281d58ca454acd46d3d80169871c991486c667e58b2128bd445e805d74ae6a35fde90dd87b35bff49485f0f8c46f84e91983e4f2b5029bdac37dff49395ad361b44a9729d5202f9c94149e8c811ff85f77d719949fb24cbeb734f947863699bba1c2000c7925cf0f29a2f9ec04ea370607d5c12119f410b6db98d8a05b3c2fca5b805bcf7e60dd7791310d58a6b49c04b02824ef23596fcd0db1b00b0b69602d3d02860a72fd5c186c25b6d454da62956087740576755270cff533e7be74241fe6cab43cd51076503d48c47a11ca8371892ae21efce07a00c761eb7df0d8e42db925ad1e9b420623ec64c1bf72f5b46a9f5c6a20540a60643f120fe7f026ec8e5efbe381ae48accf466fe3de200fe6939b15c0614fd96801a577a24062aef9e53fb6f26f6a31d8e27c3ceb005a99d86a7ba7daea7621a6260c16b631be7333440c371459207eaaaaa0cbf1de70c4aa6ebf7afd6e81e478a8aad5f0ddcf76f06d37d99b84930dac2d2b1e6639499d6f70eeda4a35e164ce5058e3c2b53449152c798798a27dd6a8977aa0bda2de8b2eb40fd3334f3708dcd21521e4d8e2f4fc8a4be015520b7237904c2299cbbd21e4a9301a5775da09852483260013a032286e6e6aadab5d76b715465f60b486385e9fe30fa1a356fdd37a68d1b1d489f02ccd64d9596407a1d0466f1796e671600d4dbcc8be15e82032aa2f6630ed8e28a043f461bee893d1bcfbb4b7661ec79e2589d42a36950380465665405033f206f45aaa1e54e5fdd3e62f6592339b657ca8bd491ab522cde5a6303c13b9becc60841a54842f0c35fba703b6a71ca43c6432f7bcb569e4a29fc4800bba73cc887a4bf786e64f8da18b2e8d3ffecaabd351a583d1a275eb900fbf52cb9831ec661ef931170caba298f5d6c67d8bfde4c3cf0a21b26aced2da0e06f69c8cef9dfa02660fa2d366c5e8df81a84fac9a073a4647ae8de61c727620f6e73e6cd619aa819d1c06e8f29d5002b1e0792d487c7999782811bc6ddf8f73d8e198187b96339df7dce684f48407d074b124e4cb2256181a81f5e9c4c203b6f084351de0032558fdd52a4b367734f2742c5cd6b66dbbba47827264e68ee5b6820ac2e0dadb625b11ea7c250eb373929d6891f31c9c25b0ba87c4c1e58afcd8f9709265be5aa3ec1658cc3cebd156753b53165d5b70253e594cacf64eb843559cda1a9a6d2df3349183cdfcfd14e2e4906da53e2fe1e3ee736df122fa89674d74357539376432d7f4dd75282cc80e6b2d1fda369fe8960f0a8eda6ddc0f4cae58cfe03b1d4493d625e781fec212475c9244b34f79c20d7faf35b5f267b488e23f2c3fd769621ecd5b40ef6d9949ef31ee48168767a229cced9f54bd4ce8e7544650970fb4502f72e639815a94dad9b4f8684be7dc2760a43ab28bd6ac21e5c212b292d7b501f5708c1941f1be35cff739b47e2f5d9c3c92dd37b3601564375f8235fec095f9f48e7e94f80c69ac0d2246013f0ce156da0b5f542ac4ce1e42c4c6e14e3d864e8322199db5aafd1ac309b85001e058756cd15ad6d1eb558fa2b65f81176edc784fd9edb14c6e8356969ef4099e1b907bb79bcfb58c9110fea5b79afd948500f4d6cecf50d436f9c21f240114d126f34c961a4692c69a8e1bce67821223b7d9bbedf2db0d28c3002c6a3cf60bbad8f96475436976ea84ea7c52b967ebc6b797c43bc0b713676689f579c2d9c15e803828d6efe97febe11ab69ef26e53a3cefba4bb42807f75cc6cfebf74e9b3257d59a6d0cbc74bbde446d9cf80ca68857583cd3e6e232078ce2f1ba66fa0775a67812b8b945930d9fd6f32389a8d2c588916d1e7c41d9e5b5759e3097801dfafc8df8dc5a6ae5fbd8702efe0b040dcb00a1b76ad4dd6f54e5811a8ba15f02fb6646e3a50dd23066a831f0101b5a1bd436e1081dcda127c44cdf9cefd7da2f2691121a291bf455ae464b1f68a273ae86a7d146c94a03e5973d173780b4e76b3a21f08cf03005a5cb6ef9dac9efcb4a3a5c6f388491b7d85d8c3c24c9115b293a4532797b24a2ab56b23a7be134e1e25149ea75d4146c3d4b07bbf872eb1fdab906d0319c163eabc1638cd54f4dd76d0fead63651922718f008d0ddff8749b12f14128ece4955334cbaa4377006945a74e1795c2418b25690f9d04abf826acce316229b6e6704fa3245a4b6228c90f38112275d87b60c664e7c6bfcea9c907212155dfa225d8cba1bdb2836b15e8e535f97d113560f9f659d70f05387d367552755fe39411619288b7eb84ea9f8168dadd12ecaedbec765df3ebf67358884aa646dc8bc1b0013d293953d53e57b6f5573761941bab27234392d2c1c11356c0278e25ebd11d0fa235eaaa8b7dfe6de5eca472dc8ee55293cdcfe2b740fabc81c7af0c9390058c51f0799430890c8aff9b685a8ba4718a8de40a988c534f3b43a6ede21ea228c7fd98160eb1562ae89529e745aff08863ca58648ea216c55a6a78ef11c6c4de49e9c8f6fe73eab834ecbf2d1df1543c43c35046579dd3052b10a6424479998f16b49cd2d3e428488dd78867b38ba3f0048577da5da9b02c8ce829d61d4c073a37221a682b05ee21f3bf9d6887c8aadcf0c06b90db2b764b49d8387f842de0ef9bb5b9f992d7ffbd8d6dea2514247e8a0296ba9bdccc29e602446b7578308c5549355dc952b5574bbd4b0239b17b945c7fcce672540d6a76e96178d47ce72625d77b45a34ae1ee2dfd0b736203e71c03dd7d9a4f42dbe9e74718931d9094a8ac3e27cb52dee9b27b96d2d202fd1ebe09f86226b3e5d5271ade321fb3b42f6b4df903b729f2ab867f2257a39f6e94ce499a42dfe0023481640bf9c45f098699fd6e4d187cf7083d37dda226632798f571513abf5e377e0c0dc96ee0cd71f3dcc6b41d602509a24ad7c7566d9ca536108795dbed775e8f3cd374cae80dcf78ec449ba65a00182a84449ba3393d57a926613f5777ba058d28646be9b312c830762b0d0e586f27219f998a5dcd5c6a7f392b4f31887bf1c979e772cd683622653abfbd0778d6990a53a6d5d55cb22de0afe50237f851b1c46c74f56c8bb4a9c6155a278694208d70e96c2b64ab1e01893ae33cb1cc9844b406970b60cb2daa8926e9d91cb9384746c3a2dcc94922d668114b3a0d9fedce549dd156342624f7682e6f19ee6d91b27bda33ded8096440fb8b9a997582b55ce61217ac717d8284d1d181cc3d5e9fead38ebe9b087e2f16c53620b1151895b78fb4518e99f7128fb85ac9ba030c5cd8501d159ae2c6efa094b27f3501fffb4a977ddc78ab620655de33841b1753c4dec5f9bee97083b95d67dc3030fab19418249e09faf755705e7f670374cd77599763e275691875c04d17f7fe458f32d4bc78889c9d4c00ca55b60a2ec6265e9f9e4eeda8d8884ae1d631d2884d4c967183da734da7c2666f7010a5fc0ee14fa1709300f9b9ac1018349a33c335f7a7e88b96384a9dba571f671652fc140d696a55091dc005c3fb0976d91b763c1354f7fdd6a4b3a2ce7c7ffecb90cf86fe5b8d5df6a487ac0c9678133ed7bd742485214e3aee1da2c5c5971f6873ab69b1be9e6e864f8ce9b7e4d1092d30879d6d692e925eb01048d1dd5280c727dad7fe7cb75f67ca4265f3bea18d4681184822d9a7e5d2fc89cda07b01dc5b9f390f3b5cf4251c23d02753661a4b40d8884e47b95ede205d79921224d9bb9973bacf16b6f710d9f1905bf16a933697d4419abbc4e410e04b43888e6670cf2602e209deb16517fbe791dff40806ed7a6f843a231a12a50596426c53b144d54a224bdd6d4c66336cd416aa677891a49464e5caae4a81fae14941d2409b341365c323e77b7029cf866815fb861bf5ac8b85cb29f96a115d7e5501ffe7e7045f683aace0083a5e414a08b95ef7121a8069dcf17e75d466c94cbab692ed99deb69f02ba8d1841ba59f2b8e17f868289623f23e89127db66c15b488a03061fcc693d3c38fb087176fd43d19fca64bcf093afc19370a0b8bc30802719e816003fd07641a30d2383d1d32067b9de009ca20f3c33a965795258612711f41147878b942e418d5f3eac890234962bd2ee9414dd7c73363fc74fedffc2011e78077d688b6fec1b70926e66fac9a3a243855d62f09fcf1ae53f267230015592f15e74731c3aea88210fcab05325b4033d1aa8c89ad446883f0c65a2b242b4babf021eab3a66f3a087d636b3bae23de2e50911288b8475896d80887c1601fbf9e805c1f4ec9b2e4506b2ee42ec3da80b06f1428a5e7ce1774b340fc3001739236329479766a4a2eebf9c0b32c24989fd57c55598c0655f8249365e7e7f1c47000e1742c0af955b2354bdeada4f6dc96aabb5981e1c35342e92523f796e49f5cd7d11eeffdd9a2d02ee6814990eb889b9d7fb4990db6c87d380a869c3eb8fb9ba95e27dc8dc5ad6bda209a3501adf0a847e0a3b843958b51c6808922fdce0e56cf212ebf3c53f9c1a2002c4e47df5fa1a9ec00233a19f1288a8d3f5d37fccdb7d24b41c3cca2071f2aae876be8f3180fef38c2afd9ed8bced1659308b16f166f7ba4776c4a9100cb26db3204a5e510f662fabb6e260f325f0b2e76f7794e963dd1d8dc78ebc5264dd16b0e17b2c709cbdf3e48409c7a7228dad11cd7866ae1da3384025038bb87587c760de45fe5efd21ab80403d04446695bfd99bb7469a57b0f4126a6ef6e93cdb5198d42235d264e52848156ace7e802bd0c40b1f2185cee3836bfe81f1596897c76f678e3cf6b5111cd1de251f2fa447eb0951de07a7170b7bb10ccfc8e9508b58ef858b463d10dd51714c22840bb833885adee83735286ebc33774ffb7c6b1e8184311e18785b3ac88855bbffd2741020fdeb742deb7c4332f1bbdfa2ff8ac9889fb2d0e58bcc49900b657079819e521434a67dc8f1cc3859ce71bf6ca1f8995012fb2d405753e18075d661be71b840e52ae24281d66fec9a01321222479eb1710a8f481098a20db991b9d6118fee75b8e325c6ac84227678c08f61c0743dc6abc0ce36a4e40a8cf2bf55b84df84f622fdf2450d172a3dc847737172232f3a1a337e48ecb09b250a4a1901593b6e1c98d7890ec0a76b29d2f176e0537ac17a1f1a3e9f00360c8fff4582f9f8a698243303040e97fed5c285f3ff0e0cc94de368057167bb5e93d757dc3e42e350b12bc525e435ae5372363db53a0bee782fb673a4ae1547f4c2140db5a423a4c2dd3f22608639513a5702588c3899daad5f34d0a9a112694f7422313a5ec61325285f93ad1f7b6aa5513bb6f0c7fdccfdbb596279ca69d2609ef93c35ee7e773434ab92f43bd1dc7badd679d46ffc0b1418303b6595aeae5c4903d27c96831d787026ebfe578ecc5a75fdcc73f1ff1e2073beab39142428aadda7ee7c56649fd5a6f2814e1e08a1928b1c4cb71e9fa568495b4389abd5f71939ee9beaafb5d92c812496e242b222e8b9d3af65d07cc1a30f36003bb69fd4a2ad9c5ebf6d3400ecd78091b4b13255e5819501f178e3b9d43f5fe58db5e5ed5f7948d725411e8049e4ef5bab9f2c4f61cd28a9404778087633536339d43c7a9ad306e308f72ee067c6f6cd8adbb764c46d362d327a5b525e017bfbe3f2001194045ccbd6b1b1112b0d821ce394578df79afc2136f565c5f49e2e729e302d9174ce0bd20880ab39196489cfd665b48901d5a8ca2de87d93f59f612c307a2a03b9e078c4fb0265aefd926b955f8732ae401e1160c9b22f30e774f3367622babc6ec82378350d031b33e36272987bda3596082a6161ebf57f9542754406056d4c416b9f259ef0e8434a37ae954f47b00cd9f2ffb8c206b15496af414d4f3a2f7377a06a2c9d9c547da14b0d9b6674ad0ec9069c4d80226212e4ccb246285667654335263e26ad690eb1caa20f457e866be1487266dbeb6d316278ac99220eab6cd56d0036199b919f0a6f4c08f54ac58325fe33a01aa156798da1b5d753966a03279cf8411b5e5bfa0221a0a518c9403c947258c9a9ae37ee7798ececea219205a15289e017e480568c30428fa493204475acd9d672b4f9ce032af1eb88f12a9dfa3643a83ff389272ff0a944ee15ac079997c626a3658a8a0dd5be18cba81b0af7501f8fed887ae4fb0599f69c69ddd0b26f2c4f2c7986eadb6c0c2290b992da4a333aa96debfc9217798eb64c9fcc7693b921ee9169a20ae0547fe7a56081d31a57ed7973b3cf55e46d7f14eb0482cb63465c2e84b43d1b3b20fe75a11240221600039be80746721330e7d71a9d180ce8be1742a211ff9110c7362c010a36161c3c33f4648c2fa07f0ba2ce84fd07a5f0480ed3ea50cf4c63e256a3db1a943df3e9a8ccf59efaba69371f5863c099509750d5999aa6e8374434d8bcdff89b573aaf4760f780e1e878c889d105db29095e0e9dae9ad1449e8411267f4bd3948e06df48853427c18b9e46141bd8b8eef38d1e803483de74e34ade1352c5b0091dbfb7500d4d36803f33636d010218977ea27535d2d2ad980579af63da43d48aa2df22551d60af66d42f7af8f017ad8b5c6d19ee53f10be2d7613795d4ff4cfafdc70caa39fa1c9894cf117936eacd3788415cd8cecfa6d8ba269e287422cb142697aca4e3783edac1e1e4e4ae6e33453f96a04b6d1330d3135c731406383d4081b6fa563f905fcd18e334cf3bc20771cae0ee7bcf983669bb584e2236692722a5df57c23f9f5e0162c8f792173535b7083c35b6ae57105a95202845c1dc833d52ae10b853399eb3dbf5eaa3c6c0e662c6674fa8166462520eb07492e17f059ba8bec64b49117892c5b283efff44754f513a812364ae29828a6ede26d8c7e1f8e20539c8fbbf0c16dfd1374fb99e61ab2eff84db1d3ae86cc1b0f83059ffb218bbfa20f28ba6980aebe98b513ce11020ce602458f0633337d0d4beb71e8273eee205357466a1cb943936f4afee080d2f56179f961c1171c8fae910c4458b4bd779bf60de2be12ca9f9beda2c94542d81e51570c2ba8a454bb7cc3d0a462a717ecf01581add317c8de0428285229b5b37f385bb3e5deff6b9ca86253ca7ec9cd962a091089cf28fd3f79834bce58af8ed35841e5fe93ba24320ed9fa83f5b222c2855f750c972f8ea22091614378095119e36df0d45a74ec62bd549ab2ff547d4170a877004f71190e315bae0f890bdd143df9b33c569f5173127d02cc341850e894af86e6ae5a222e0f83eb5fc07331cc5550ff0133afac925e822d5a49ea4211f87d9a6e23944acefed27ab9ad118c0b0adb305df23cd14f204a817a1dd5301824b24100c187ab6363256a73b12f4de1985a088184e9e21eccb9785f1bf942e065012d3606c31e8190c36739c344692128f2c513330959d7246263cde504144c19f4ad5f6edee6622a9ec88b88a8abe2580b1babdb61d337240dd19d568450c5052f8ffed3d4f5661601cc3cbb43eafeeb882655fa85a15d73f0ac3fcda0b9bacadb644aa3f4008dfba45af4df768f9676f9b1128496c54d73860233cd2cc91c5c02f4acdcd4adff524099af4cb18c8c26bc29569175ca70d54fe48fec1477de8ee59743e7f7668408fac83c7f72dd079749568bd8b3fc12c4fff27c1290c97bb5b49c633306d20dab5f1ac0c3af3ff3b412b18df8c274e39ad491b905a9ea6f4c245f11adca74292dc149302bd8ab7eb3a74b2d9336e8772f1feb174bfb76bdb6bfa089fe5ad190351416dad1f0639c1019a4ae371e67c6a93a86fa53bd9a680a06e9b9a215259cffc0e5dd75832684a9c46d4b1dc201acec7656dffc715bfaeca3fbc3c75f01cbcbfa36ac5d592f32df004aafad4cd26a8eb7d8d05bdb1d00805c647f014d283fe085cb8f8e3c35e3ca57a87bdf2a0d2361c90bf1de08118b5d73d9f6cb9a723d190dda215339819b82448ac3602d8a608bb0cdf7ba9aa8b0a4a9bde8dda907b20969f1d3111a91a26da4b29191b4af8d30716eaca994b90916205b474b5fdba9ab7aa46873177402a94edd614e71c87aa914176df8591e3340b088ba771739d6a07b8777d9f6350b7c83f7a48a8493da4cedf9ace6acff4ebc8e4b1bd9141e0e03e681ed24113ad0dc25f63dbb074ec7c75a1f6e54cb01807a48aff9891449ccc455fa88ccfb5ca804f1d20611488c3c069108cdc0029e721e6d7e17acf22faea105ec5c43ce10ad141c6e4c833ef89aab2350779855e2d16b78beeb9a887ff69ec98752af3d6d40ca1d8e4faa0e72241b58e62dd40baacec2ccd120ee2e650b1ca99ca4ef085a834382fbc469961e8210808545e748239facd0ea144c8da4f5727aa663f36e8fddd304c3526b58a742c8de8029fe001ffc77810b5b0ca267e428220bf15fa9257ae85ffc18694b4e52b8da1ed68ce739a2e50c253aaa2bcaa9ae57c18787a5d1c9fc84102648587f88d87d455e2d3166d3e4430b2c07de5c3ab11156b0af75bafc9e2e5eff0291381a7b865e66ce42bfd55ff8d7617d0d4033fafb07cca734088b84fe471d646af926b58afea831a8d96f18980a3ac2b90050e0987a8eaf55eab1ae992b6d9082e82b57f00873baebf26f949628cf982216f547f0547fad9ad8ee9e747dcf61be868e75bbc0268c297e261a78e3695450b9a633eef979b52a3f839b41499791c79517817574b8f8778be9bc8fd1082b3ad38ee4d26a2cdf829bf90333a30fb335cf71efae39333f7f719279c296dd5774e9fc8a564e9c6c3b4d9ab5832af3fdeba8ad73dd7a349adaf1fe62e1f2d10d9044e2866209a140db02f67ff799f3e875aabfc698f06d9e1cca8dde6c8bfd399706553882d065a533b860a9458734946cc6000078fd24e99044a5f0d26e30164e8b10606d9bea62feb06f839fdecf032fc2aa7d114ab11e15e52f997a3f6d8b2437f00f4eee8225b8b77e0fc55b512a77f55f5ddfec0439a3bf18402ead696401cd792ba47e5534f12d2bb3593e3ac39592a3840a601c26675fd231b7631150517e4f78e8d3de778e28dbfc6abb7efd5e375d395e0591b67966d02bbcdd02b4032cbe3e51266ed0b4e735785b3a07f611be5a4ae6fe0bdc9a370df9349b104f5fba347a5ae8a8bc5877a392a33f3002c524cac7f9b0c837850c861e0513c0abd8ecc199f3990350ac2ad48f1a044bca20e9c14bb4581af9b4d4bb978f57cd6254fa9ed074be4c79e5f13d8eb91b1d347465b7d21fc0e70bbc1932a355cea62d7feda3f6bd102199163f939b0a3b5d1d6b930924913f27977deff49ef28aeec825f0cef8205b7668134c52d9b51e38e6f11776caf8e96acbeaa70ff506d6fba6b6d3c3d9f9aa142f9c1839b1ded4d0cb0fa3a29c2af850011b9b1218e42859725784474216f2154a4965cc19432cb812c27d96d55d450e28d9d5948f0b6f44603897c4a14e8a6a02f144d1ea4ed97a0122973ebd67f5ef8300eaad14d3ae31530fd0c9def27955b3819bd34195f511ab5f81eae0722bd1bc426d7abebf5245cde44c8797ecc9ef408a06a2f661da6f895b96cedb340ea43c31ec9e3e6a2ddcb29c0255f2b8b8a3deea38d11f55fbf8e7e8ea81afe434efdda338bc2dfef904dde4572cfe9b17b12568c837a73a52051e03cf82ac73fe4bead603fe67a68bff7b73f72ba3afa9ac7b1ac96fee8f2163997f58aeeaca42e568daa591797816c549bf651423b0eefcc8f3575883694fd1b806ddcb510f4400bd2ccd261bb1fc7f8c9b81cd29a85d5d7fd56295e4aa5e85765d4f01322ec471949a9273be53530de961dae16ddeb55ef0f0910d56c218a8e2492b5c6c34a92126be16b02a7fe1810594b1fde0a6b6e3f36b336cc55a4ed56d9cfa4b2b32a98fc0b75f1b2909b6a2fb1e917370f940a4de836fa1beb5b19e032885242bad0c4ca8f9a67441338f6a9baa9aba55f09facc8a8d85e709fb107f5b26c9e92e3b47c4641a881868a38897d9e17ebf68f77da234ba09cc02e6809b32a4d555b61395ba717cc8b7244b3dfe5c65c46577aa363a255561471c3241159a478494aaa1eb6487339e0d3aa750576c3c7ab1770214e6d8d1ec653f4d47e07f40d5f78fadd6e3855f34fc9684ec5afa9772207c1fdf7aa52b4768f5f94260ee577df6a5fb4f9827b28afceca809e47856553430e1a8c557b6a2af48ef7d1e65c5af4bbabf5e1f182c458d9437f4147a0ac0fe9ff9093614292ad5f623abdfff2912f5307ee421a1223a884c9411600bd25c554d06b623485591032b2561856c731052e1e3350bbe77e7f4ed995b8cdabf30df3ce58a66ac93d23d21b2c89e0a15a4cb82fa4cf6ce657c3e338ee75a8e64221a13c14ddeec4a600422a4ea8c9a45dc2b4803e999d7794dd7cc328cf871c495f9d233fdb5f621881c34cc2827a1bdc86b5f1591ce2df933a4ad678fd94d684c8070d7249c77bb1c58c4df31675307d9d24bcd7d9925ec0ccf02d256b2da15884f2b57321a0c559af8c3a64dafe93616edc974be6ba32718716471035b562605c02269e342da416673ff238369b5db44650cb2d6d56df15e4fe9312b039ca4a3f9fc9a6a41fe57bd792c67e0756b297d544e8b22be148b561371906e2e3ff93bdb471306a8d97122edbe73b1edef932b01837fcf23486c4fe534303053b013a8f025bc8d1377cdd61d789b0bf6facd7cd9c12f227b87e3ac1bb07b7083753660dfd9e31f921c8d7a5c5f4e0238f0309097db63f44dcaf8e3385a2ea0d23f413b63db02c55773368f787f473f69217b2a538429657ecb302e262834dec4fb7ebac83c43a2dc28e4794d8572dd9fe33fdc5aaf292822b642fdd9f3b52af9674ec35444e371d725847818e71d0e1ad6c0ef022d4627943b04f3b2c7f7714abb5f73bcbe70394b20cba04f2cd0216cdbd5a930d6f840703852c94b98aa60f3ecb06cdeb51ed569129fc28218edbf5a540747e2c31d6896c5cde86e7806845f0739f9c4068e2fb7421c23e841b28ef383feb655f9576711451d23180909491147f1a7ffc2c106ee3b55c57522513e8a7305360fc4bd9c4cfcea1bcc4f5c082421572ef4a4ef86e98741aca251ac7b870e8916bb8e5da9db23a55cec92831dbb890988c40c7a110ec504ab4a08fd9ad77825ee71fc38aa85e2c9b15e4ca3313900fcc965b7e153b89932873214ac907e2d53c179f4ad9a7a11257c22425e3d3bc29f6749403f32a749a2c2a87d69c7bc07851a41aa756f1635dab0be649037ae274ea31fecf8bee6023c34106e8bbb1899e211a1891b4eee6864ca8672b499cf5bf41faf6a89dea591a7ee20cec71c6645bb16976e4cb9c53967b577b39ae7fae30a3a1e8087755b626287d378624cb43167a64b6047d0d99f57f594158949ccbac871d99af0abb6070f74455e62c44ce336245d351e0e79ab4d9f2f44166242439e7080bbc397c6d5750b07c2a6fa91b443627ab2fe2e2af93aeecc8a510798a38cb1feef1654c011826fa2f3f3fe83d3d238bf761944e706f2515d49528b07eb473c69f0c30b187940ca391efdee19b8c58d4d5be348ad4e77cbc0d16d416b1199982bb41208939c07beda817e5e91b0948cbdf79278ea35cab385ade91a85412577c3b55d981f3639a5fb62a2a481e10f11bd489e96231993f61a7a1cd994168780529e1609e5c372344987f6abb475743d5ceea4da56dc90a15196cc6d0e7182f0cddb2f9b85c889c2d3f15abf21b3dedee11bf2e074292d5b545eaac671105bfaad05f07fae2ea276b32c1911368a2d8bd5d9019ce406703a582ab072d75e64497fd737464fcaaa49624fa4d357d96307dd9336455a37790cf40b15b2519758eb1cedb1e493afbbc0898b063e63a6009d18b12868998cc472179ddcf0585e6eb7ca06be0d16819bb6393e7a5a6e9adab3b63d8876ae372680a291202b8c430fe9dd1a6e37895e3b00766fff26ae5f512a3cecbd990c9c93101df138ddc3abbc85e6328178d6597919d7ce4d019185266d6e54fe7a45151f8fe5681ce454367b82e2a4fbcb4bcb55a8f4594db124460120522534ce2d19175ff26725478a51ae51e8e0f4065b3444e8d25aa14a51ef1b142a6aca79ecef6fe857b8efa31d7358e64db0cc76bdde98d097ce686953a90220618aaa3bb28b73014e4b126dd0ea0b5dc225c1865e0961bbcb7e15c9dc22ef9ae0750f4359c2463b62f6bc5212653c882aa92dc485ac2611f7b5d7ee7037b0af9e80eb9998efcf17959eb9e514c9176f9ed0179db1767eaf3d0e50396c8aee18c9beee5882d94f6ec84355df9882e39072f4329399b43d9b970b4543e82decf6e83721638ddf996a60aa224580e98841696745b53f213133b13088f664413b58c31b872f2f66575bf9406f0e05b8355b5e2c9bd6cddbfb801d761ef0d8fb9c3369c921d95d7941c554b15fab8306f9615ac52de9b45b7c2ddb45a4722e92e46a0e7a3f8123ee47e0911c55d3a4e60d88d3118b84c03f715600403390b4b78dd62beb769eef94dbf7fcfd4bf750a84fc17bbf40abff46f616210fed71f596bc7f939e032c3e99984e2d3bb43acb2a2b7d089c6e58864ca6f7ebbcb852c6ed479445b175dbe4961085d3b9946d4bd8b4b7c58e05c0dc0bf5e9334f25af2756347071367ab2352bdeca36ff45a1acfe56dff6bd9000b9e845a44bbf932a59769d26bdad90ac525bba468b360c85b880c17e5331f4c1215fd1079746c7d6fb0b1c87cdbb5f98e10efe4e5be5562ab2ce6dedb7aeae70462b50ddc4e4c4aeb9dfdc2aaa9c4eefd15c122586ccfe1cf12dba033277a5b9aded8945df7b0a4ab58f229488aa95fa3cf4ca28174860dc2e7585b648bb572df47a160afdd7f32b4de7cb1104d8823a59beef3273bd4e434c18ba28846986bb354f8d9c848703cfdedf9529eb47e953d1bd80b91ab93b106003789ddb409c4499c4502657bcdb5f48eaaadf06eb2083901464f0e25915dcf02d89545f00154a9cca24983e8a897f86e3f5ced9df5d57a30310c6d775ba85aa87c35c5601e3a2f31f0f9e7776ee7e00a851ddaef4389772a95d185ef87e226a2f72009dd07030a8983b498da0c0d72a97aa5e6479a7bb8cda507af73bba3e5965c54df5a4c5ebe2d6bbd5fef23b1ed255e8ba0f6ea735b648ef847b00a89fd14ee8bb72f8ea5a2897f744e37eb37808a76107b8230c0910294332e5483690a55e7b42ae12a7563debc69365ac211d07aa76a5100e1952235b5d54b5df0965acccb637085bb977f5b9fef2fbb9d86766e17d5ddfb436fe5ff20cc05752bb16f8f262de8b31090cb847beb141dc1557fbb72e83ff06c89492c1f96cb5c8d4a8184e3b094058c1feee80ce904577a7fea7095a37c50dc9cd0e743658c6a4f1cf965ac439a25f940e327b523e318ced22d01a61cfc1f09698eb208bc3f15f0d1f794f364c47148327b49254dd6bf4865b1bcea090a1b55b1ae9d24d45d91ec82cebb969b012bcd51d9636b56cb3a65ef511ce430586f2dd8edd93d27627d61ca834043e6e235e1c5f4919e65effe3b24dfdb755178045a5b1d96ce6d4f9e640c518706a81e6b1020183aa36f350c6c7f9fe428526454bd12a42d57492bac29e12705b4dc0e782d6f65a4c1a2d60170b0ca07d049f6d30639faa637987d2e44ce28220b6c314ff27d4fe108eccb42d1be0d89198271eb19f42e82ca22d468986e2aecc6a5a9280e4e1c00b866552aeb3e0779d7b5f67e2b4962d79aea3f57cde93899014cbd12c3396995277276503073cedf089d1007d8264bc5cfe5d5ba512410da951455127588a591ed7f75de23026bb7ed4f2939b475b22f275a2f364661a6fc673581d3ccac956735695ef378fd59b6af2912401aeef5cd195ce979de279fdec062f3e94fd5cf82863f80180a530aea699a7f8435c88689023025810b1ed7af24a27fa190f23e0e731aedc59a64622199c789058f396b2c636c07de8032dc844f77a25e57d8a40ae958fdf6946f3a273ff12a419c19bd5fa0c53a1667e070b9413cf98e67a913b51f2acbce34a2decc4251c4ac12f529face5c690f4d8f0a2386e8c529c24f733d5bf7b64cd43790c4d6919bbd014e729e6c44c78b2a1256131c276ec0875d00cd0075e21049ba034cf1065681f5c4eca91daf88b68510b12aaf5dfd1edc54c9dcb4b6b5308692e0a61e8e82c6a36d0373cae565c00db5aefa0633a07c6dff32dc7d9f5a1bf466446938570fd5e59fb2d7b5b31c8c3c559378d835293c81307327256c418e30624092cbdfd1b6002c0d1c6770ee6ad1e5dc3f6380903ca806164e50e39d9928615876371a00107ef7b718813020e936f8b7a484986db97c847da90cece5b4be33057acf10b88717ae6cb9e0ef7aaa25ad87962a577ebb0b225943c7e853e36e8f339c89547ac0766079cb9cb8cb561681625250552719ccca340ceb3968e8a20fc3d0032ea9e0cba03f1cc1e36296541793e5ee37ed064596e9619fb8668ca8a30a2bead60eab7cebb4e7de91971ec53018808b37fa37c66b26e660cfd4f07b1651d807f955276ef0e196cc6240ceb0cb24974d6b9d8ed3abf1a46e13fef4d7f053ea8c4f8edaaa9f65ce2e453cda26029ed7c6b2c75c26ec208b45e773aa3ed2c1f1528eac8f67b2f0cca4efec09c89ca1e8d6948e3466cddf2ca4bb85d9eb81c1682aa209b0a8c7c919b236b4030d78fafd540dad48fbf32edcd0f9cc95e3646bed7af4e02b0a124983bffb7fa959caad3a690e025d9c37610f1c7fa3e28eba4b4cc09bd2f26b025e6dcde239856f1171e3bf6d10477a2f9e17d9d6aa6798fde25aae4962fc84510970b155524511ee2f6100117bfe2a5b6227470d4235fb0a25a2055779e09e48e045f99c4149e97c871332708e3db64afda8240b1499753dfcd86284e2fffb2f8c0acdffff3d05cc4af3f8efb8b1655211e5e6e68b02d27fc42e93e6cf3caa574cc96aed88ca78e40105d4280abc3a8917f9cf7d55f7b774ce6537fc5243c445715b152c5e4cf97f659bc7ebbbc12b0bd91d5df4e617f736debdbf19e5616333e09690ea06a484eae5691db8a40c8bbaf93dc772f4337ee1acae0a30e3f1c32793cc845a881165c023672461c53b390669dc8f8ffc6e7002667230710c505eaf1897632bf3202431777f1ad6be43858cf14a545fbc740a592c60457e0565f66210f9a7d6d7a63e306a17aa5957ffdbccad30610eb7bd49c293161d98d6bde330b1cb8b2fc9ccab843c5ea5f9f84fa97c8c60c03db4e38704237658c46a3414a1457d8c11e22d89f86070e9c231ce0c7ed2ffba1a3f067c3ed96b48f712288b1aa91f595a40037e02fb499300340a44e996fc094d273f541aa68b6f1a03465f87cfc603958460a7226889f0d0565cec1345d42e65fe26d989ed7aac36d3e178923c3790dd53801fd5b601d67d92457e031daaae699c69cdbc092b572000de92208be4398dd520726c281d46510560a442b3ad297f9d6afb36c5e3dac269244094e83f0b3139f08f5eb40f911273df4fa36ed1886cdef9a267e21d9790d2aef7e29556a0252f09138f85d958f3c1a1ac1109d1bbe9041839e8942d11ab651f697f68c02ef46c7fe6e97a19237779cf563e1588c13cf5caab9405bdc00e2ce99ba34bde2c362afca231a4af62cb490c74907498f4a55c029c03d116016d98089b93bb683256a56a323dcc2f231984379282e060d681298c3f818940f165fd4baf074a4eecfd9fb48c00ea23c0949fbc6d476243d2d30f19dd9330e54c83132c6a0b1ee23d62dc8e9fa4af1e5273b5730156db3bb3220551143dc10f88ac773403456f5ae9e7a755b3a2fc9dbb78041282467ec6c52cc6f7639fa7b5b7cb28fcc9c60c9f59cc4cf9de4f69bd7f846e2a273c5416e0fe5121a06b431111020aaeae42d76767979cfa5c85bfb8cc5ef9bde3f1b79bca6669764a7e69cc091a662123b644ab331c6c77d31a7e3e640a4f5c7062d7dac28e1589fe60e3fa62dc6882d66ade5c71b81547e1b758924b0b3fd448ee389212cd213964f8ede4a88ca08a0d77c37bb852f626821ab47f6d653a747fd43231f5579c285a83b7a1f118824999be2371bc51eef61b502c1c9891d6da87cd709e459b58404a34e781e477e67caed3c4be7f67e20547870f5a804a4f575b99714eae626e44da19144a544788791ffd81fdde943d6ea310e06ab5de01da985c0aaa55e8b7786ac04c3df6fc89a3ba15c62b0d3b6b824dddd5f1ada7ef7482bae2c4401d535514f28ef7ffe1ec76cfee164cdb695d49c34958065961406cfab3f563e62d264b1b3f5118b6a11a201c5e8653e5da080b4d4c8a06dd60bcd6e1751254ac5a56980185fcbc356a5ea4a5253f68fe32e5ec3a2ebb396e1453ce7a6b5d1049b9cf2cb37e6bcb027e6a9a3c72ff6f7634739e89cff34267c99630b01bcdb84359bf9e7884710c259cd172b0c399ee1286b115c0146d630d713cef6492af580c931a2fa4065016ded38a50f3af7034d593a45b1887168daaff9ff02c59217d66fe17de2afa420742307371b01800dde7d7d768455f1245e70c3c80114d981b20aab08f9b62f40f3d27cc261719569d4d8bd611682b38568e8f374f43f15bc84eb42640266106cecfdeb85ddc2792622b57b2030501915324ead404dc38053d8d4f7c48a5b48c768c2ac0b7b4a76cc0c72080d00db4ddeafc00ff5e1124072ff396f7b2da6290d09e9a4f33c966adaf9973da0b4fdc0d07b8bdc5e27bf72376c14fa49f53578dffe8143664e85bb19c005e5c77d58acac25037d91c5346f282fcdcd2b8a320f51dff372a3c7646ecc57fce283f1c71ed2a28b11072c1825f256f3693b7ea98ada70b3741635cb461ea96a0634616e405d1b5c6e57fb1492aa3cfa940f8d5328cb4e6f479207d572c489291b5836495d42dc864f60cb729671e018af21e90d8df02eae331d26a82faeaeb46cd6d4b15d2d37ea48589f536fc4babb50acc50c6e8d14b97aef6651a8c4a1869db773930a9716837f71f2658267aa20ba9607e8e5a8c0a0298c4e34a3839d896149ef002b7a46ed759551fdbf4e6d97838d39381df42b3167a531fcd68226a9e3202a5308f9b7918d6398089cb66da48e2933c0892f68cda455477a4189934fbf197a2fe7888f50c42296128e05af7c61581581a85b3f205cd599ac65c36c40f93e14b39ece3a369921b2c08c1f7bb0b05ecd9e13d7be6fa4bb1c344d8c736f55dbc83ae1a7f62386285fe0bcddb4a0729adafc431ff2632d9ca8a3146ce6d02183dd4b96566d2b46ec8365ab7f5a976bc482d854e2b523ef93107adf44ba25e919ce4d6e49308a119340fba07bb34773d23a3e47680de2b0f164b3743e3330c1934106fe071b23be995687c99aeaed8efc51838fc3ef553e26276a72945cdd9058a301f582d5804085a26b01c37b0235a335bab296177af1f69e4ebb0ef37912f6eec8280d8a6a5c53bbe4c93c56787c84bd182bb65b756d6163606753c798c73261e2b3d5decb01186ddefd84be986c941c88861eab121fbbf3a8c29bf129333ab22c5ab3f2f5103e445c51403864bb01e2af74016cf4be676f95414f47f82d4f323a198308cbf54c143324882e6f61357d09a71d47695d3f45cdf8d3e4bce3f53b0b50670c30de43a60e8c824e12c4e6fe4a180de019d6312446e8337545561e430f7acff1fcf339f3015bbc0465201b00083ef96d10f1ad0f8cbf74b2163ab06115a76a52243e87e657f9cad1fab8eea02afb1b398e3dfee4f257fab56f592eaa81e01be9ae84e4d7b83bc1a13989c4dc34bafb81eff7e18f372c586ac86102e3d1620df16cbd290ae0cbdb5f2af9749210a4642089929989775069efeb12189a5685a4ad76f86a315d918a1a4572d851846c71f6e1af3a22360941f4ff9478a6c02692fac02a103029298bae5c7d2e1cf03f63d4d82543004e955d6d6dd07637a3bbcbe6946fd330b84dd319e253d90d4088c61191ea86235a241a87c3f6ac49c76f60bdcd7982c650cdb6ec26ee934f344b5b1fceab07fbf25e7644eab7dcb7d726cc06485135b64235848fa82951c61fa93128e1a0f79aadae9e3d4d9d1fddbc4ab9dacd8363351c6718a887cc4802799b94f0805cd04aad47b735d1ffb551581f1cf12736a4fed6415cd2ce33edc020eb0164c4ad8450497e89692f91560575baf10c4883d214ce1889af9ff8d4f285975c136027f0475510d15fe363b6606b20d99a399e231e122e2e558be8115a39df9f017a4f5760f84dc564e6e10ad2dc766e46f82aef2e5b78ed1b813ad073c7ea0f74fbcd49960d5db15799c36c00a1cc742cd239d1d7982ccc59adce7321d89c313619e9718544ca25a15cad9ce0551743b2028caa519f92fd7fe7acc7ba3a72e7afd001ec69d0d61cb86892518a92464bf61e4fa375f141f7d654739531004a230dcd82ea5a932574ad4f8cb67692cc02b57eb124b129e5798e112d37a0d9b54b85ed6ef80544e5ce443b381a251aa681cd8ad9cc0053868c9f48d80d934bb6c8851a16c15efb9580f16c87f62e3726e0e0c6e4715541b35173065ec5f0e098758514d16c84dd3c938fa5c02a4be2e98d2c9de6421e24275e5d24905fd353a363b9f8841f0e6ea42a4161ccc81e263e2cf82036a69496e353be2e980a29b9e7d886db6a6af41bfe699bdeea201999afa15644872fe8b2c5359721052590fbb5598ef7ce05a3709f1e429cfcdf05fa2c33f9755bbee33e804a11cc437668bac2a4db64eef71c9ca2fa2dcac9ad06073d225cdd32746c0c04ecadb3e2e7eeec75d6e231eb8288ec8835e7678dad24969f4607c33bd9e81d78f6ac807fa0a18eec3d2fdb8827ff5d36285256d62e6999ca69c7d8b25414898f4ca6f4ca37f9858245b70417aebe852551f04978cd3b1ef9bb9efce2fd58570030fbfd4f3bc6737bdbcfdd8308f87bf7be0fe66b5683cfd3ac08ded4ca2c45912abbc91fa855354be1b33d9180301b104871fdebdb6bf751ea3e0ec13609696cd2a8ad48b041815cd7523e50aaed05cb789547b8a5d69a294d1f6abbe965c03b44768b0bc5d54a182dcf5b5c3addb656d1610a085e867b3209a8bceaa8f8c669a4fb7e76a56cda5e97f10c4624f333d936058911b3b6338f85cc83fdbd5503e27db2d09b307b02a0389aad5eb177e4eac3f23943d0de6a1878e09d87546aaa357d4bf0f79a3c63644c4ce0ac75c49b0cd1d17e5e077caf2ec8951f444b172fdf9ccefece648d185161c1936426cc51620360b757e91fbd8783353393509e36732a584e2e3e8746c55e3b8300c46ae556123e164941a1e3d346b3e4fdb247fe7f781dd759f3a7220d2ef815fb9e362d464be9134223af2f8594fb81eeb0e89b896135e140ec01600d18416ce41116df58d4c877a2e4a80ccd54ea9fac0e65d4e2e2cad3567da19208a0d741c80d5fb9856fe9ec141b462dacd0bcb2dd7505ee031a6bfe5a5ee575baba76cfab76a1290cdbd6bdde8ddbeeb150e2096547744b4e99ae925089a1d5cd47dd71309c76d0c134d949d3425bf7cba45bf537c9a09b0f1e86f8191f6f49a19f2811fffb462d7deb4664a3bed9f1a795d9d133931bd1fb80a548789ef261b84982b3a057c3660f702fbbd94baa1ec45dd3d2a9999ef05023d5498faa562c1910117d6eb18b480bd587f3edf5f7259c51c76854f5992bf66f5599d34e53c7db154f94e6406002da14987773b3adf9ad305ac7731ee6f3ed0a8d0c74aa77922c7ba52a18a95ec21a8897811ce7de2b9fea63a82b82e9d9f01e29e7292a951bbae9879db58d6500beceb6e6f41925ddd0996e68f833a866d0aa8bb9729112651b099e29d2f10248a1bb1310d417f120e6a228c83d4fa786fd5349a136d1f54a5108a6f6752ca5ff8f62514d0ff68ae92cc57719a1133cf829cfbe51c81f61a188201cf796964eac6d491db5eb11cf7ce8dd0e5e444211a9c70ff48eccc6dc507aedd36d9023f0cd81c75043e0fad6d2140581a039caef1b8b379368d7af68946b08c034a0b743147ce1701ffd71ef8922d5e5a67ea2f493d9ed0f335fa8fd2e19b2706365a1ffaa4fb674b4a4925644ccc37119a25b66bf1bcdd59527eccde59f15c8b122537dbcc492864edabeed4ad4e33455fe6ee01986d8408a27ee5f1942c2b65378af4d11f706e195fc6006e94147a7228ed94c3dd6498066835e07e4d396b811608cceb1dbf71ae5d6725cdd235c3eff09a70b6362a1408af22c20477f82ad76a04f6a40e97a9be63df662521fdd5467e74e81c17999fd41289d58c19bdd7b44446875fa6ef3bf6b1841c0dd268dc2a01a62176d861668854f0fdfc6fd238b9d07919755dcfbbf9942e075169ab85f63e7db03185863ea93ca21cb0a9f3390156ae03a57bd5371760ba7d5ecaacf8dbbeebd8f8b7df1e4af32f85068cd085542fd922e1b0b3989a4e8ba91614859630f1075fafb599e5b603ea81e0548ef05a725332bb72ae4fdf1e04d31c68058d7eea8be78debb36e62b66ae834ab47b2248f56b4f43b215579c30fbef1cb2e39461755e8f70480fa104909be351f85718f71856af339f8760ff899166e0ab8599940e628efde28e478d268ecb4b7cb1d5295615e1cea36f7c0e013ed6dfc8d11fa54e6d246b926a8d34be905bb4e0c9ab90cd47957a76f7a301cf342bfe74bba27ac9e12f827cb3a1950341a820b323760b1aaaf3d2e4e468ed931a7a5b3c586c3e77c473a71baaedf9db39a461c98fe699513b4b3ac10d03b95cae2848a82f5f62593c440376a2b194e154fa0ee91cc0f532345f307089be21741b584203d1386f61821c086a7332affce595589df3a8307530345a21967183519a13f3f638df765e6189da5123c12e9964cd9563c5b759dfdd9ec0f3fafea8f5cc8ce669894bc7dfbfc66479c91a0ece64ceaa3d441ca8ae3f70ad90678eb5c17d9c44c328f82cbf9b37f1f0f90ef347e48fe51c95f434ca857739c116e99b2db09eac1bc9b18dda64a13238528a0efe23972c1aead2ab955d8bda595543d7a3e26cb0f75e392216c14412fefb78ff5d87cadc30da648c0d6e5104fdbc3967c58ab6d2fcebc954bda5b18328f2d02fbeb32ab79e10faf3e7bb16855c137f25647f4ba52f09df22320a34a677e817a03ebb79b5f1c99226878fa5c9c3a6e825eab76741a34df00b79774b5b3277bbb626b26906a23412da86466a7bcc91517992a0fc37aa84d5cea37c325adcac7aa8942ec61094d9323fabe69ec1e0acc8afbed5db3c0918df3d320dbf665fa60103b0b6f480e67b1a67563c088522a6c820f21333163e34c909e12e26ea61f436c89a4c0ce02322e6d34197665c66aad57fb780b544acb454363f4e7fad7f5735c2cb3631b2ce4b75cc5087f14089f1149a8a59c0e0026115e225087ac880b594d511c20bc91a3923e183ce0b733b523496ce37193cd07c9e4f1d5159b17455e6e088ce767ad0de3982c2468754d2706072e6f980021357ba18ad4640acd5bec24d4f2c96806b3c876d516f778d389510a73095c24b7aa6b4398c411795b58af77ae00fa9fdf99482993c957c7f5ff42fc2878136ded15273494bf66f8881b2d2c0daee1554bb8074bdbd9a76387c33a784403fd555059650c7e02cb6f8ad9ab900ab846486c7dd59026465089eaa38afd80f82ae3f20cbcd27771c3ad6c99682cde1b7fa867470631c3f58dfcef8094dca62880fe5bf9206e27108368c1b71dd03d9cb5fb8fec9debb92e8ab3dfd03839bd69bcc7de9e3cf6c18b0b90a861d9c014413e0f9d354afd0a1c035aa71c957c7713992903af8ccbd0afdd93381d24f73bd5fa72595d2d8727508471798312d0fe84f5453c9156a113ef397e3a4177ac8368cf2b0a967835d33f2f10fe35c47bf19c138b8ae069e35de0f006297a03b16bcd2690f984d62e89bf138094fa15421341e483cfe9b221f1bdc3ff6346c7435d1b8780fabfa596168e18410ba9ca12b3dd63b589309d6ba1e354bc9379f566162d366e6d56032c5ccb732fa2b14aaf3bdb061b67ec45c50356a8574abcabea3b22eee14c47a5cf0f7bb3d02093421abe2d36149d867e20023b34f90a09f9a7b4dda1740b0885fae5055609496591ec85c9dbd43c1e9f83735c817b013134a68585516c99015a6fc2b6f2bcf45187e9f027ffaacb062948c2a75b16df56a2246407ef6ebc0fe4b06e3ff21abb14746cd4c571ab3e45399b3daf92ee82716dc2178f52fdff030607dc32d799107f8589b4a38b971915cba96e294aad4fcdea3e14133fa8e921b01c268816e372f9f5fbf1c7f70dd965ca22ad71da80518a318c67c87631c8a29a80621d803158fc8a3bddbb90580057f6f839034129a21b012e36aadf0a6932d092c83237e4479463534e0a4d691bc3938e5a0221f2cac8f71e85f9b7e53b7208a9e4eb3a48b8e31654fac63bd8c5b3efb449b453bc3e2d19b6fdb6da43f077d27358cf7eda0b9f227b400591f44fe5b1295703097968b9a446ad2b143d65498fee214b93844e92a969925fc23aeb4cff7b39fe77b834303c747f6086ead7653c64812fde9521198204ec72b3c15f8f6c8369561f2e6f2a5a7557a61d2a993c0e535e2f637b9ba694d7085ff2702c89c0d259e1954cc79118be391015ac37b2da387a631c78be3f8a16264a04129cc786d07f1beb5ad12747cdecf58a7cf79f5392d7c7e2df8ffcca9429ddc18ec90d725f6fa097a5e3fed115d570257ba45111977abce696c78ccc4ef7c5c3eec5d18e40bdb3fdac41fe773e95e0c67249096d7c1085b8d785b1b05e9834dfe512be4599f7bb7973a162d131296852c319792b4919cbe0817bbf3376975eb2056d332e47c7c0024db93ba6b8c77080cfe74cf783e71a09737721eb37a0fc40e470c2b0eb37f25ad22eec9498d322c3a0d69eab462862b4ac59d5d30900cca0c9feb179d93723d0d9f1ac08718aee3a7391806e80ad76874803eb303b200eb6b6607cbb4d9c488c97c80780d0ec06bb1b38769b70e390217df809ba97720800d71e51419f59fb7547945d233c90e3dd795bf87da4b1cb843510ea19c2928475af1e92514d2afca002a062ab23a9be2968d9f4db0187a80efdbadabcef8f4d719c2157601893ab4ea21d9c97fb9f1845dc234a50a8f78a0042213cefdf6bb5ae70f7e9918e0d907ed2cee9b4f7f1323b29834f75b3a23a983097044c28dd125647c2480db625d40eb6baf6f31ff395d0952f4bdf270d63b8a8aa3e7b304c3d19db78a71ebf82c56cbebac88fb9448ce7b8b2fbe694be1621105e854077d31160f46cea29e82556d5989b37843e78a5f44ddd0f443533483803f98cd9fac4f284c0fb2f6dfda59c2553896e545d64348373c2ad7798265062263699acded7432124b642931ed1523b1a806d21bb26d0c98595ec061f5169ea997b0547a8aaee695a3f2716b4e956e53385871072aad44e07fc5a85d3f1367bd239bdabadb7e19b73d89471bea62a64167ee40186d0df9c4961776f6a653927d882c4f18e328b78840f7425e93a747abf950097c9045507c81d38d5729a5a012e6aaf32d58663d2985165880be97e0dad422a89ed1edb7e66d085d4016a6645e4c327c910596129bb2e3b6a0118b655192a0650b4ecde75061cbae362bb8e1097676bdf10fd8357a3f77b86056b2f9f5c4f0c1884a70dd523182aec96e0e4a95b32cb4d0e4d4a4ddefce0c6f71e1f9a96380609d1e4dbff6b279734acc8e15adea02ec9e3ae3ade801fda5539d05f3b01f496dc1946fee88093bc1b397ce2d732018d61addd5e9db7930a8108d8ee2c8f33aec4704af3365a41c3a283d7a63819ea755069bfc1c9c5adc86b86a36eceb70616a2ca287778f60dcfc71f9dd280b9db89177427f64a45529d91d0c1a5c59214e98a8e870f694ee774b00ecb6db817acfeeef9e790bdb92ac918d8e9fe1ea59a18a11f3b8145bc813aa4a8936494c2a71e84b7fdab8fc80fbef4e0e306fe01dfe5385bf25930499e1dd7db7a07af7e1dc507a4f2622da832a3d8d215efdda0366a4f45dd65a6923210048adf8a50f061e78c5ecd563d986fd2f9c56c10620b3b10515de73a033a6775d70ea885c7853608b778042eed74db5aa2758162b6c44c18305514ad15104ea62939e0755124e5c2b8f8f5114eb70e7d93822005800c0a15cb24eb5ac46e65700941d63993595043a2ac542dc174e83338afd2b95ddff370a3b3a020c2727a939684ab95a113aeccff28d634742f84a6a77f9c66f85615e3e392e0a252074043ac155db29921a133c88c2ddaed89e5b477e7ef94a3cb23ffb681a7c81ef6fcaa5b62ff9cc9feeb629b640858aa2f6d705fefb5f38d5938a6edb5a03c196d0763368247c368aa05d6504754ecc78482a2a97c69d581abf591f522dcee72ac600169f2837ae08d6f20d6058d57c3eefd4277a477af352da7cb1f3981909fcea786a5cad57ba4b3c9675d88345d44c8c700d2347d9c2c07a93337d7561b6adcc6ecddb4d2629bd048e5dbb2de49fa51d0bf8e5d84d9268632ff66689649199f31a0ce31b72d17e25f66d8ea6c668832fd1600a3184a22d06e3471688518a4e2490159f4f7c35d6225cc89182e878257e9ce7884e2f4ea08aa2f35c8bd4df61981e6ad5d5069c1553a8d453d998079495c679e807f813b483b1f86ece2ee44971b154864634e49b2bf333ef941aa17452e928b6176bf6d03be885141bec772ca0dcdb66fa301eae334db919a77634dabe6b8c2fa7a21bbcc1fc1159b63e78437483d38f37cf54d6ff0b7a88fb88c8d9ac272f0c2af3c0d8a0177a8e00a202717eb0a24d1ae042ef5418ce356c5091ac3f90e7ef3364b5e85ed284db7c18a40d346cd25d152e9391833359a45a74460c80711f41730aca9f8eda91b2bf50098d1429347b357c490074b1e6ac070ab65c178b02c3732616cf721a1b68d18a1883ec05bcca9159ac9afaec9d4bed52e44aa375556006e90b5d7080b52055c50c6c9d29cda4335d38bd4754c2eb4fcc1b6d8a520c6a5e604c77c5eb809867a35328735bcf61258bab79413d1db3711e0b5c5d2639a4f9ba945258dca872f243abf6536994d95d1011f1b3f16e206330624be03252d500e13fa9eeb3bfb486f8f66ee6e04cf2e463acd7ddfebc33855358a4c5ba0568452f8200239545e5507272c3d0542183b355fe00d1cb6b0c18271e46dd8c47f89aab14b5609360dfa86393366dc8a2e824a4af199d8f2029cc6447ee315b284b3d0bed0c22054acb186bfe2b80f89099ad23e0c6593ab0e33a73cdf332a4167ec313fcc2c0df75e856ffa199350e0edfed45c39d4d00340e9bd69c72cc97cd1e7c07bb064a8b94d460eec74b642a597ec252f9514ffb189d374e03bf84f2168548a5d66458f0a7d0139dca051bfde34423921f93b027d23045e3aa316b524edf4ddf2fd6604aff3a795d6c02ffb0930fb9e0334a667c598fee815f2cf6d2a32cbb3ecee46273d3125b629e2bfe897ca06d989d29095fc262f7492e7ed3a0fdbbeef22e907e3a2f45d4be780e6d26c8788a9cc77372a256c7fd9d559d17660f069490e352b7a9d52d125681ccb196165cb0fc6c5f2235c65629e899234efe141f5e84da4e51e411cd617c7db132fc3e971e9d9d51b5a4dbdf1e059bb2c8d09992e3d2312f2997695ae926342416bd1faac944941b644bb6af6f4785a3c0e81bb422af473039c787bec0460f41b1a418a83ffbdb9220ffb9ef6641adf88d9a93dc573cc7938f8565bdf95248b6628bb0f7547c2315c787604a3b4f93d858c1325f02fd8be32b0743807d7da7945315cd3006c489581112b4d3dd3d19da332065b4525eb89b36c0a83c569f2010f463508dc9d2312ae012a11d2a5e313e03bfceefb2efa1de0b7a25ec6649f3775afcab6e0638bf061941afd5f727670362e2429e327a09a8f109e38dc7957163c139477ff259cfbfd7db450463e511b55bee16ca5669b6c44b8afae477a57a5eddd7ffdbdadd77913f045ad946343001f7449eb94894d4eb3ef5fc5a5dc1d2c3e8c6d700cd39fb58a4d303416ba9c8bce3fa6256c2b3cd8f92f886efe54ec761274b0977bdbbd15e28c6af531b2b1b6cb6cf93fac1d92a1e6d0db5fad644b2b5af994d41d09ddc5071dfcadfaa85b24872f722383f09df0f4765b391f05862c30afd3ec9c750fef8f6f85d6078e784deca3f97063e350fbdd95dffb9c352c10f3c11fa54e9d46804921b501f2ac69bd3c72a943b8d4c1b7e14e93cf9f418fa2472b9b2b52eddc867318d38a8c0d935e66784fc35e6aa93c29f4771a670a477b379d6252003f0c1715d638943667ded626c6ef86cf77e7b1e484dfe6ca7bafa1ddc5ff99386a77c439a6d255dd1439f48df23fc7219afdd00688f199849967415389f30b55ffa0aa1451a2bb89d01429b1512b61521d91f5bfc52afa673fd06ece1333e5cec870054c6d3e54933ee418a2d94fa87881eebd1a82d98546c493fb2432a710deebb259ef79508fd279a234fa958009d361803b5c05a319772c1a5b2533ac719d5e982dda74154c6ce34c678d61447dd5125cb30971fde63b7e169777b093fe7df1345185b8deb7107263d2153e54caa307b5eeb51ab5ba8017f753f80120ab125900b7888a927cc79d6c9aea092198a1f2681bf8e76a93ab9977e5bfca0b237f7c57dc4fea2b3fa3ce6fc313844d5102a0713c2e710f88791d10734703835413ccf9c1c2dd346ef6e57b1d4d872dd682bc742aed026cfe21e6812c5e20a6cadd8a8b74e5af5260e3122041ca244effb615352440f09d313ab84d8ee07a09d83ec51525b053b8c261a4f39bcdcfedef946420ef190a9108134e3bb663e83691c62582d1a163b15713f40e8d641b7d38285ec287997a8c3c8b20d7c746892997e7f8237dcf041a0582d68d91daa325c996994d6204b5a5cf8fe0f060dc2cd3b148772df9714ae432a1361281b59d40b4e1d5183b98a549d3c48a181e9e50983abfdd363d34959779aca341da4c2cdbc00b4d1d7796ceb67e10f4272f9cabd0563cf1bc4fc4cfcaa0bda1451f4e123acd8f0d7a142b8a8195020bb8fb9a6b4902374c9ebe6858acedb37e4942c086530151c6f02a113b111e52cfabd790c5c3e95c3aa1a79cdd7ec14646002258f951d16e0c67fc16d02168eb2da1c7753f731594f6ec50f47117885d311e16305912d0a6e56895e3a04263488583559725816397d68c51cca15ff60696dd8b3401aa512e4da1fd9f5456450d93fc74e2f189d2b74ef1498563d498a9ee79b2d7c5dedd2d7c65f86535168123f1fa77d5071e9c8cbf6f2c4e5108b24708b437debfaa7248fa2a55960d8e0ccd1531130c0c431f9caebe15bfb92069f0c853145758bc96d8dd09d0786e9cf769ff9872974af09a47627bb5c6ba5748b8489e6810caf63bcd2e4182c7097452ea51e95d941393b883d8a546acc8790bd328e4681bc5ef715012b3e2079a1e6426b1256db1b18ce627b7201828b968bea82df559312173e8a1406756d3aff63097900e4d97a2af82de2335a5d4a89b2b0022a69d0b94ff41cf490751719c2c512986ac136505c6d4ff68103e7ad79a9a98f251cf0031463634595f05659c4217246bc9a4b2c70dd9e1eb4140f7e583deccc252f0780fae84ec7ae3a5d05691065f3b7526cbf5b4da66403cdfc6b688b419748ba40ad6d4b6a1e12935d0c0c4993fb0828511b761ded414d97c68906f72a1bbe17e531004b35e4e6ae62d765a59390a080ac1ebabdc3f48d49129071005076abc5ddd25c11e5387060e12a32842ca58e3fb7b15a0cc10bd4e2614a2db3e3afb8bd7a2804391b0bdfda190acd57b2dd630575a30407e73604ada03254f760fdd3eb704f2f4950bde764a36e05d5f3e99d4906a66ff44b56e317e23e88474bc1cca8842adf27eea093c02f7948fcd45f5f56ad6134772de334e3b55aba2b39454a935c83e91076ce43b4720528fd5ab5c7ed91d66f49f1067534c47e268ed9ec457b1e2bfd6c62fef08db30c354abc780a0f619fdd6ca73c6d345378ca6f9dd79d6b5ad26fc71eaef5713b8792bee47b64c07ba58323dbcc8c5eea548c3fc66492b904cfaf3ee4f3a82ba9ec0323fed5ab98fac8a4149931007a97d8037e69e2ddefcbfe3dc363dc509807b0ede279116e4776697b0d36ccdd9696d29123f39457e14eb8b8e084c250cf9d4f67650b3560b403a2e1fae935c5e427adf7448d24c1b4899f7156b3ae2d33073d495060751314571e4a2c1764c1f7809cf136a3eedca6d971a2d00d01f47c922c9ac13bb2e9e1599eb4309815b872de52fb8f0e8a125dd31abcb262b3e76ab8b197de375bf5cd5764f7d5c062b679afddfc21cdc4bc89ba95795ed9fe81248fd5da1fa3f38bbb25224c3090f2674d4e802a1804cbfd599725f64d59205f367527b03bdd60fcd6a8db2f7400c8bc42763695cafc1ba71fe4c3ac963f91c918c4ed9638421ffebddb198f34dbf9e55ff51ea0c3b36c045848b6786856a168ae016d6d506c3892eb4741104a3ddcd865d0bc55f03c939fde518b811c1e8a222b8a8083f0d0138f611540769b33bea9ce4e39a16d4d92ccc5a0e661439d041bea16f7ede797cd8675cc963d89d88bf3f6f458c8653ab7fe722ed14ef7e929368065dc2c19e73b5e70d3f14faa6e4f2fa38d08b1b41e47e0524cd6535352a984e5a23264de488a6a29a3c93eb83dc7fbe964808d1038ae1e69512232b82708a43dd7678b7bf474d06657a60bb74932c5f3f53a4b9884e03c9be7c274c52be443deb750d8df9e19747c2cfb6ef2e26fe162442d17a714b6ef4bf9f0cc76a837ed5dc9ac02e44dfdadc0e2dfb0098900dfdd873c8cd9284162f721b5dff4bbdbdca77d9614d22b96f00d313d4da4fa01c968d078d00c3cbda4952217f0ae4778a7eefc9d1721d9dcb32f73e955f0bbef14595e75574f8dff7927d1bcc3311c24d777503eb784ccf6eb5086dafe2be97d0d17f6cfe20b8e11b5fbe865279f4bf48e0590839102a67e2118e7e20ac98f55ce7c11ae20bd476b18aa8518f0d14c53b05bc65673dbb6037906b5a747bcb43d497ed3cd6d57937cbefc55204d84da0a8dbcae845d7053c1fc2574ac3fe289bd1d57a5cca2f913ed1f0d2a7f1f299831675950b3908d7a4c3f95fc13e5a8c52bff91fdbf65e6af7b3f20a10a02c9d3161906bfbefd1d9dcf7ce7cbe49a81463b03fba2e67bcbc82f0de84939a870b5be808ceda4386fde13b9a363dce742f299b48c6811b37f54c24a19f09eebbda556760ef20364e2c8b4efe59667d40734cd69868baf3d1d4af46ac7e5005b14498583fc4381ea45115b95cbc72ecff49d84716062a141e5fb9e074964701099aa10beea3c138d9b0dad35b10720c9a6bcfed8e6c677ac91872c4f348df7b95e43affdb7813f58f8b2e4166ca674f6f28c446328b15070f963cd62592cf7ddc5939a51881e88f3f1897c02e1570e9cc833fa815bb9857425928748dc4c70e989d2c70dc9e4ec4b4c8df8924d6de00781e01c0af97fc68470152e8ad55293038d4a2ee0139429e8ee0bd1400c28a4c2bf161545c678c2318c8aa1c91ba9f425f85ecc284ab94c4c15b014f3d81b69312d763d7dd13e09c4451c177455427cf634e8a79094800e213258cc89ae449bf4ce83787d5b25f146ac865635a6c556ccf64ae9b55e68b2fa19c89499a294db06fa445a64c9e7f6cc14f437f6641f300e1e87bded204a0845a6ea09c054fd8db03edfccb301d372993bec8ea80233ef50d08eefa0e796fbb82b818146579e8c005d0fc6ed09b73cabeaffa62c8a05efc78ef908d3cb095aa318230768a67cda8662259905f748aaf32e0082addc1e8ff7d8e7658b17f0c6fd281188a06f720c78aea08df7747eb8e75ddc0cf6556775f2c2911656885db43a4335374b2b87abaca9ac7c193e494f3220438fb8951b426c6baddce7f1823af3c40706e279551a3f21bf37493c20e2065ce46477536601442280873b8c9645e01335e2b4681bd82c3a730d13c08e92c8172af1cdd942a4dcc42735cf9732ba6af80cc66b1420b577273e25eb62405374ad1093673956d5d409ace86ccdc743bd5dd57b34f445478272ab8110cf828f8abb4ce2272961ebdb31fa47ee0e47e6757e57a98cc7a8c0b8037e466af8b9e32225e1cb016d88561eb9787778648daa8ec0e7d761659b8fe0be2bfa7f45ae2ee3f650e9721398f08e2ddd1ac34f0e46ea1f5d973e1d43ce5cf35e8c1912ba2a829e6c2315803c6d147f5914406d10d5f54eedaec247b7b37c4be1d7d24768e2e1800674104c84d69fcec9d77385d845d39ee5c7b9a942ced561371d6ac5ec026dca3e400724c6a819991ed74ad84356559c1fcb1435a2926e62e86ef0e3db6df55b20bd973866897e8efa8516b4538150e912313e0399899499cf84f91b52854f86a500cdda8fa0867a7945a1dcc0bbc89baada17a2aadcf47702a2e62613a0e512a79990840594fc90cc6468f2449934cf525a6db1070be1d1408141107c4e47b78d565515ebbcd751cc91e367aaad0b0c9cee813343b3efcdf8a7b1263bf63aa67d8789ad8f700053da226a6e8892b6157f4adf5c1e3ee878504ee3d80120fa14230b4c8926106c9d155bc19dc3978dd6b40379763be92594a7dc84fa03d953c8bb5fc44dc3060429ddfe7ef01d904f8e80a6ad6e1f1987d12af0667b4ad75e848cb397bdc0b96a7f3c34c28c983755a7be07fcfd9c98cf43a675d8965b59426a70aea5e0f80d063bda448ec7205f8ffa0b9536781fb633344597c1fad6eb50ce4534de3d17ed69449844d03b36ac9b6ff9bf3c57b0e32a24cac8672fd06d8c38e9e4d82fe2ee48ef09ff15ee01732a30ba09bd2bd5b9b1e5bcdb035fa37090a162361b899a5aa57860cc28cb5444fbefd9424c082547e77795079fbc0ee45b1a6b799878e5768289d7ea045a1ff3a521abd3d805003aef39eea21bcc163b41f5a7af6f47a5672f297e857e3a61a667e475c7e4a0cf944c96acee45427259acdb422d6888caab6d68cd81ee4cea341b7f31279191f180ca7aef5e104d0d524c9749419d06c5bb8acf7bff16a27cba7444c3f802caaefac2dc921e7efd5a25134b08d1fdd3dfa457d3c8f0abb5458cec1c3deb787cb98eb70d09c049ea7b1fdc4438a43c5a6beb309fa4e3ec1b111ef9de8a96670f247f0788c05587db00870439136f320f088b2422ca1b48a00b73c9c8b6435f24304bdc141b0955c91b47b0e8e0bbf8b305bf5cf1e5440c9aa712d55369c305d0f3748be4b66a0eee82baf9621ee0328891bb78a2f719b5392dc9db4f14eeec452055951878eee4dac33e4e2d3ebec1d72b1da036171eca37105d27a5c342e7d4fa52e558d0893740fc6e90ccc6e951017d0cffabc814558cc09e4b811a3a8a52e223015bd447fc4fdbdefc01e8305b2c3ff9ee8860142b26f31c2585f4c859ab53f5ed11663fb802249d2c06c079b3160b87f773ea4811883a878944c48207f0a700540e662605081626162d1e233c3fd9e230672e18394283b257df02b59bb880d3a093dadd7c29ed74610219a162273387226619c5155adb49d751824a57aa54afd493d8442c4389a3bc777de270b09a3c81f6f2d762c4ac483b53e4e822ae48985103421732c8f60d39917ef74be3629f16c6537041074893bc8d0c9b700db0f09e3838b90303cd6432b97e87b816ebfee3a86f2c59abc29fc0ec63b03714741963c5f72d5ee9cdf3237605be41dfabe68ed6ed743894212fc3a86be71b932dff8055393d9e6c9b1c50b7ec38b5fe76ffb9ccad3ff40b2c68cd51f78a75726f36721a1773c7a1fc1e009bcbbe2980434f290d4721e43d65fd4b8ce50c68f705dbce46a92d77556c8c6251406991eed64f8c9aaa3babeb71bb596d28379e778373c95ab0995812c6a0b6a6dc37fc925371e7970074cfe4ea15d709504e9aa247c9bf302b4a7af9c2f1c75aa745a774934278640f1daf5c3d9ee1e22f2fc684ba8aead4f1528f3a7e478f8079f1088451e780cf08138ba3e819ecdea9266743b4570e9196409a6ad951239cb2d5362a64d22d9a089140748d1bf7cdf9259644e8f66becde1f00254af2e9040eb51eef3dc7af0231996b9b9e6257ed47dbd958daa2ab9c50fb9aa00039aec09ab8e191e3364072ced0e543fc565fa38b0e4a56617cf5c258b511fe1b1ed4fbdff3454f9bef008501d7d7d661a986e1d3883f76f59279a83993b4b8340264dd3959e15cbf54d94ddb8d17d3f225d288a60b5323d027f5d65b01afafd54d392e58dd554e6e6f67b7b3b5ec58d4f0fcc25e162c2439222018881af5ca9e1b4593d70f70f58f605459c035e64889943d12bec3056cfe138d6fb551b8567beb0f5b19354c6a3901dacc0344c932a91f003b39482600604d0a10ec278ee7cf2a94cd71109ff8fe9c7208aaf992a14a0d7034447bc98fed5ac1b06fcadf1f830e9567ca295c302185e429d096228fa1216c2bf4e1c7ae1ab6071aa5fdc50ae4974a379f8af1fee207f6954aff12ea7d1150a969fffc320ce64c2a0e8f7aebb90e8d2cf791ba44cc3df2042994a048ce66ff54b6357f8bab87fa495ade014a47e2a1b166ddce82d17c4a5833f5814e037b57352fe68de8f4e84a037a6cf6ef70a83c638f68003d351c46ce3b42eea51147cc92c8aaf03c5728fb10146070c8b8391b2877c8c13db40969bcb1384ba4775830de7fdda343aba44c9d5b57f2242e2cecf14544bb87f4e758b08a78edaaf1837abdc7e76050e272f4d67b6b54866e33da462c47598e1206b4d5b78954361d461e3ce93b44d322057947575dafa8f5e49ca62c612dc64262b23dc2ecc140cc565484b343da61017536bd6df61181fa4c06ec413fcb21da16b022d67860fba3ae44262ee9ef13e8d9494503a546843e157d392613ec94c03a7177cef691adf84598dad9c31d0436c7742460bd70f95cc10ce23e051d8ebaef83f56910ac0f9ffd2b8a666ce2b6be1a59e2f9f181c3d1d7648565ad0174a6a588d495345aec30690a74d05beacaa2fb746e5b128fdad8ea2c0208edfc3b81bd0c8575cc436f2a810121f86a34296298cc9ba065008ec72a2c66f98ff9f479e67ea38e34fcf8649cf045b06f7a26445d02c69f927f46515dd81548e4e6e91c16aa26dd3f392af86a45c9b20d9c1037d3268c9510a5d5d70d92a839d9b7a98c65dd321128dbf370d9f4fba06a55b3d6c5de95ee47043dff6df8f214ed510b3eb6c13df8c04368839ebe40882ac70eb5e7210b2c9838b4c75b191e5bf770288d9632d0f7c59ff37a84076d553f6c13c41cfb27a36647d724ac9a683fca0231b03429f4e839fc22c182e3642b0ac5709a433989a3eb944337b67576db95acee94a511c8f9940504b4086a76bcd26fd3647edfde70ca371be62edc3df227a60177f3c0c0ae32518b87a2220dfc01dc12ddc9013c85980795901ee1b428a2fb9a97e030703e7e5b2a7672a4e6125aa775cf2e77e992ae132b82bb124d41101c0d519d35e5acbb958bfe911af04431d36cd3f29d7ee23995ae51ccfb8acaf74dc5bffb692ef7fc668051e891790b3a5d9c9b7442a99f82210bb2cf84508221f7bf448d4dbd3033ae46131ac2f35bdf47f9021097882bf6d59ebacf24ce7ae268ecc785ba24c2ed8f1ae35dbf196ddc60b18212d36583abc9c982e57e3fcc8890b12faa807a6a5d55b5958c42e203f47a4e4e3d1cc055775267eb29934edf3a26a90761b5cd5ed4a10911c5508aa12c336ece3e918ff75a4a8a8857cfcdb8174295d93ffa7ebb81ca1097b7978720707f08a720ae85a3f6fb4becc1f0d4b04404994e6902458e3f1c44a09cac9625b0ec487fd9283bd10f643d9ff7ecc488acece243878c1fac5b2d4908a8c1ba63d60eb2840c121134eeb31ecd853b3ee059842ad5f5fa106c8184f3d8cb4e18f7d955e58d23d6e1a1fadbfbe7604d02f73a93268512b9ab45a0857d7efe363d2bf055ed8c7e80bbf63d41174b67845f799c2b0282c2db6c5c8ca329c84c53d05b488ec8751320d44e9faaea30571c69685a5cf665a23b6d583c0ca9f127ede7b048d51b792177c3e2af203022f3f1e850bfb2b5c18348a7dd9cf2e7d795a0a6cfa83988c1cf0d55f23c3e098e38faa6cfb805e30f122da453aa70f97c453596410c60f78c19489100797f98f024adc89d26f8c3505e380697ce544e8567cb512eda1cab8b20c7cdad9176685e166b9590c27d8342b500c68c45d466490ebe05a803c20f119da87a341ef2376170d5c986a38ecca3e493f68fdf7b5e78e47ecbc3c462ccba033f6b711c991368c25718fcedb76d42d9e906a0b22d1b8ec9ec10ba74e4dad98f40aa55da6f37ace18bab47daea5ea9644aa4b216101989ede9a73b6aca67eb4d178e31c5df26ff2608e98eb61b0ef0a0eec96e455506053d288d0be879f7b866ce851a9d71ae37a22552463a74fab43abe7284971eb37f747ee54df89621a3434777fa2065bfb0e0d0d2929374077e11fe4a14eaba4503ca103802f2a5fff119e35c6ff7e8881fe5ac83df24ac3fb81ea5ca809c872384bd85364244ac8011a25a8355b6ddbb8d6e42ceec5441ffc410d7dfba21aefb9fcbe3e3ee81615406dab474dbfde6fc789e4f138a9841b33fcd2ac553641d84c3f0a785a9ebc8244544d0087815ec5aeea31665eaaa0853fd7a5fe1ebb0791168a8d874ccd7e8c396f71b3b1f38f40d47f78edfe274cafa0f48bbdef607b9f7a7fe448756936782e08e6b51bf6b9a919ee247b896d3cedc252e7e9e2093b2b3b21ab6bd9390bcc6bb9274e8db431ab857e8e19fafe41181c34e6b4b8cc3c8629384ff247917bd4d7d9813b131831587c802f65e82d9f0e589da905c9a8939f66d177b6d0956a1e6b61952c99b7eca2878a9512e6d15d2f95bc87f6c5d53b8f33f3f9e28a90fafeb437f7475451ace3afdb10632d3e07e1b04bf8564e59970e52eb5376abff6d0b701e03a4fd164055645f10b49fceaa0ea43fa92850cc0ffaf4d8b2c5eb6427a026aab4cedc566c9bf31586f113a690a1ef56f2223b7a45d7405498f73f0a255ce7fa5348a24bcc3794e3a51df5774f0d19595e2f03444f4a5c555088dd3603a209270806121d3c11fd07cfcd30773dc5361949eef2f0d19d10bd89c7918ea41a028aedf07d5b11f68dc076aa75c45dc58c8da1304ed7203ffa208e5868951d2e476922631080481708d778f3c1f5fc08398eb77ec4062d4149bdc7b3a191658e45a158afe63b5586d61e49f84191280ff00c9d90b35ec3d911ae7ea2f9459cad644cdf9afb9f72bce6221fa07e950e61c9d70ad7393a7de32cd2f8c73d3e69411b96c3dbe167271611865be4db681b051c39e9f4189cd25ba8f9711434a816c7132c9ca04ef1315311d8145267ca5d096b06953e6804f0e4c741b450d1f28efc60ffce0874aa36180fe1ef8bf69d51ff61f0b941175a4d4495c07299bfad5165c247a5aa2b015b6cb6a525c595adb37be125233a409286e500e2eadd3463c9c8f8fa4d0df11c6e3ce0a5df4946ba69961b9c339c4affa1569218bb5f196629b12a2a032daced5fd8ca17e1f60c76db6ec08dcf8ddd71c3c8a8c34f397ece1fee58f7e2fd4b598e74e221cabc504152a33a036169a29546924b6dc1d4631e3513e314b1df3092dfa81955202289c516dcfb75493ed7335eae8ac18171d048a8f71b01a22d67e0b7f1d1e9adc13cc70c40d9e0824fb145a1396fe1bea33615f335ee6f85b4b167982e5481b7c74fc97efe77cf6a928f0062f77bf3f6d32b19e8ac9094213464b49b23d96dfe75a25ba4c5c93eb232fd4546ccbd13d0bb6ec288004b3d55e10d1914f921c383a1ff2e2f4c9960350d84215c446c05ebeb3d2b47174af3a2e5f32647bca0b186355b48d4cb26940e364f3ed00c1a481148feb2649c84901bdc5bcba0dc30ee46ae60ed5780d42590749d7e7f767572d1883195837faffd3a56a6dbbfad5f28aa9e51241c2ce3a7f0c2031fd8f998f456b7bcf84e72420a2e58391a6de644d1012a34e192933ef65dcd7f0fe2afeba30cb47e31526e8c9024db3afee426ebb4d48c513a3e005a37db795a6cd1d691b263b4362eb52cd857c74c1bc8db6a4828be92043e1abe1c6cc65cda4039506df4eabfba4c99ada066a50bf0ac4a99c6cd2a1dd84365a0de602242c6fdcf22ae93bc2e7e0e3fb3d5b670ec9d2264f85b32f9a4f5d2bc7a7411caa7b74dbaf8f2962a336867f245307e2eb8d39604b633c5caaee3776ea54cd282403d317ca0f9da7c51faa0f82f977c13add41a9462e6eb1f5b9423ad7f9bd07a72cd8c038bdf6185e0c60b607f9302a1fa12ce946f423530dcc3ed14e997bb21d98892ba4ff219ca8b37f99e09d5a1bb449a1109b7a4eccdf7a65488c7c7a871c3ccb13327107e05d1a3b764e4c6b9e0244ace73f5e08f8a84e953fb845c85aeb395f6cb7198b1c987b78adcec335254a7e0577449bae9bff2fcec318b9fa65adeb102942fecf9235429dae73efbf51cccd4b6e6b8ebd217c2b6fad0cf6e4b9fb1c30aeb877eb73833c11082bed47fe70a016300aac0dbaa0b3f6a6144c920b04914817a437540f2f5aee59594250b79c71db9186a3d60d4f54e330f636b1bc1f93558ac52d93e07bc300a09aae47a29e20bb5abaad7c8683ebfa9feaa7b38fec8760749455774cf828975a8308f48fd2aefbaacfcbef910b866020c1a47f794f022bba5d38f05989047c9ec192d8d59e418796e5ab5322cc84825aab70d9e4760975aae55f8ae6a07db87439b6576f949c22c3c9e77e1bfe913275f0cdf9b323b244e224a4b85855a7c17a7b3a399c00597d33f0bb628ab27f0030ea486996457bf2e8ed4882313d262cbd49f4ad741ba0f1478c29c1d8aa59d75d692880baabf86c9e73a87680d094b6d5d62fabf567b9ce64f4eecfd7217e3fed4ea2d577532132135641326976f4d012243e4adef519f49e119a2e0fd494c867645a1dc1ca19a565262a16383c904be8b4e2f0459b9368a0bf430a3d596381a64411b78c0b5e2a4bde68c1633ac0473f3d16c468e24d8eb4c934915677139b844ff1e4c084603d74bc5e9716c06a0d739e11cfad776bab8be0f33a521e0c031b4a4c6e696e5f8e4ca79e42f5196ff7b87d34284dd881005aa62b30e23fb1f88d7d81f14795307a0e3a2b276236f885688c3097588a713afeaee87ce1572d559e84a98ef1508ec98fe80133b1b7992273c1079f39212de65bdf76d5c80052c3bea297a0622ade0a98b7b604228f06e2da2dd383b5f7f15c1a424bb6dc10929147eac789de0a26dcece9c2d261fe3bee21b92665ec29665b3c80286c27beacadd708c4c6b8e790c3340117afb79b619c15f5a79bdc075cae192815e3f42a397583485605a29799aa6a0ad707f87a003423aa336e7d62aaba951759655eb477b96e9d98d23e91c9bd71e65b8eb9d2e349828a0b6d24d3cc4df5a161afc107cf67106cce8d3a4914a074dd454d4a8be2cdb0dca78a54523e2917e80d8bae8fb9c4ce8299d8f113a801c32b816b133051f9fe05b887796cb6b559934bc8acd12e4aed7bbda233f2f614074729cf4e48a233334d2b0c76216bdecbc95338c8b2141a319d5d139f7bae26e768ae2d23728c0ffed72c2913b57514db56c49d6bb2098e6accbbf3cacd91ca5452964192590bebf4cc2e63802d7bd50a7654de04418fa473a770b4575c06c975d9ecbba55c5528da40e05b848537c9a25900c4862a5b3d190b5719a2c546719a0da32f06b9e91fdd7e436cacc7c857c5fe099f66c7bab95bfe6419f26b09ba155f3f311ea4737c4a3994cfdce76bbe4fcafa6e5fade10378071aa361fa42593b0a4098a40c0bd9947c261e07259249dd1386b07d4285a8b2e3e15f8eb31103718ccff81965dc35df4bb81c009b3f468d11c1f13a84793ecfa3994c1390e888f73eb732ef344c1afac235ca525056ac895de0138673cfc165ed55d7b1c26de6ec7a825da87f21178f25e09809641756d5567f3f89d9df7ab1686591e80185a7cbe4d9712fdb6471bb112dfbdff5335ab64829cb23a1349b42146bc4f9ab6dc101d493e98cf35d35151aa54b18895416a3561278eb1dda3bb3011b52354865215b6ad43f4fbe4f9ddc8d6f7824658c46b541688e2894c895f196829d94344f64c31b0d4d571911c9ac509719c626265e5101b5546fe45776b9bd281a0365e63b5d62b03990adb4d99c8fa97bfac6b04c052cb2fd47ec266dca35786bf7a7678e69d1e369908b538542323983b3c9f4303a3e6bc6393519a65e4034ba412e4099cf3292a3177e7561c4e4525f2ff1fe23791112db9d193bc5030692cb9b93264d30214828a1d8d774ffce2bf1ea17fe6ca6f5455ed59be4ed3901ddc0b2c9e9e26d247e79e18969505a8c20912e94a99bbd89a5790911c67336c397d19729bbd4f3152ba0c9b46fe320c6f2a53ee7a4f1e8b34db48a48abf556cd9d0510a50a5fd456753a1c3b4c77829b843d9a900053ef957d5f1a6fa138f0a9f7223aa17dc6482dbd2baf54d971dff32f64e3942c7664e99e17818f1d0d2c72f25a3f8ff1c36f3a981e3a04fb8e816b2f591ff97efa2ca782affe109129921b42e20154bbae41deec148ef4f82d95fd4ade008cd2df511d3e1fee570f015455ac537f4f1cf661b6e8fef64b40ff59878f66794a462d9736f4977a468219c5bd28b399e1c46d9360e90c8133944a4ba3fd82269514a163f734b6178c5e4440cd11def21aba3b11a58b405ab6f235c6212613ea8fcf629edeca2ee787243377890ac189fb0b06782fa67535238778a419c887323421bdb4f4a945517ec9d28884dab3024f1e8c0794752d7f34dc600f6cb2409dab324b9f2e1352b28c58af0dac98b483b6abe276eb4a61652ba9a577f53ee6f235526959169488e2522054a06c98a10eac8abb8b95c0526095d1804ba2a95aa3a1f933ddc7f9fa41d3eeb1b24968c5c99f016efda7debc4646ae319e60de5f3517fc806bf221a2defe5cce2d77c09b8d076031c3ff9b346c7e956f344faf95412d568ea0e362b282cfa0916114e0adbf226951061d6276b37360b3a46b4841d6ff58547c704f2d838f140a2d0e03412307f62a600be9e888d81ac0992431f7001a99b8dfeb8e2a003550dd3208ce8ebb333970f6380afa9a24c21277b71b154b42d5a5c56e2fe770043164640ae6abcaba9e618df8d7080d6f00086094de50266b140e2f2f69d03e9ee6cc1b92823cb237b4ec7737c48513b185a96daacab5647db0784f4ccc58d20193b07c4dfe83ae1f8a8fbca864e37b943c9148aa3d0a02e42dc160620135f81a0c100ce3b5eff4ea30f06d50a3b648446df56330ea045c7f46837d113323dc7efa6da8cab5d714cb20d531d0ae83d54c8d74de00d9adb83f1b18711a8e60fc18995ec3a1f76542c90a29c13ad617be3c59fb9688237bc7cadbedd8e48a5eef1822a86f78c775f7b5b1449c8bb86a3630c2c465994be38f19214ad7d3ebb18500634fb606c0f9a356692e10524398fb8c11f8df72e27e5f57c0135a43c079a5ed03f89933b7521eab9a7ca44791ed182dbc2355d800fabf63bb63d2ad5419ef4b379f0b0fb2626ed8c7da8b171f0243aa748adf17dc0961714316e2800d6b4a315dad9f5b1b53420d0ed1862665d48db4366313f5c42902b41f884e39b4987d46fa4642be6a11b09a665added578dff62439273d188172ec6ca4fd1ee635c45fce3575f4264800e8e5974e5ce2bb4641917df8aef080325c383bed1904d0409f55239f0f84dd743d98ff735ad195741d2515f123e7a208bbb8591f987e0193b1b9a8c427157ca1b97e32d9de8e8c4cff51ddd67945f9cd4af62ebed0bf10a6f0c366c536703fd2dd89039b3226ed05ecd7d5358114acff2b6e460f3b98d90b6ad271d6ce3471fcb15f75e6d74c0c88d150979a87a46d1afd90220ff9be950c7e56b05dd882c50cd0dc7ca36ad516dee7a719351907ff3f8941a7f50e4735b7a856896a737fa710af8e93c5413c7224d29cca9d4095c458bf5a54edad314774deebe225b5d4958c88381a2cf21fad91be43f4b6e86a6a235f28508797dc71ddd3c370d3ea2e8f916a4f8b3c47c0ff7c578273e4c9e398e445ea41b6068a7bdbfe9f523ee5be8e6309807da0e0855c84f196be137925b9a80857fc599ae6e24c1dd502ab90b918c3ab2876d167781034058e3b4ec496c9499615f8a5747a07b793ce94a8c6d9d62b1dda8b5c3bc7f3d1accee6cf856242abef439eec2137e2c30489435bd8da449ae9ddd80781452a2e918e49dc7bf709dea0f06299e0f14d8e1817501ac9fe6caa46abbd43cbe7739b6a59c0cb8089791e8aa1af6393e1dffe881d307b928ab421f674f391e1490d71fd8f110bb48f71deb3cf9d04fe2150bb2e550c241447b8351e996eccc62720b843e35307c2447e4d5d6681f9eb33726af80d8fff820139228c311176cbe4c3e647dd24407e270c113148431d887bbd4e6ca602ac440b18e015872d7f55068eca0e582ffa6f7bac1e90c88b227bc065799216c03f25ba630fd899d8270ab7b204d105024cc7c869ea2e30bd385eaf0318ec67edbcbee57366dd9b0cea3146b5b9aee7357f6d582c5bd53bbe65ae58cd9e6a368cceba6c163855729b9581a4a856fad6e4ff88bb2e37ee9b945eb4af5ed12f34d8a850aecbe2de3af107efe8ff8d31fc6f54da4382fab674cfe8c30c12ec3da8f5260211133b98c1a629dbcbeeedbd5a96d7cc89a3494ddfc10ecdace86f25ecef7f247dc7428d09e41ba62d5ab2a044db2ef3e61e728b688db0782d03532cec072d32e18bbfdfca92bfb58e58b43fe13cb7ecfa44aba191fc3bf116aa9760aa52db3cad47827ded600012954299a3ac3a625e29ef089e4d2d95074de68b86bca7821757b3718412938dfd8d53a399f62bbdbe195452a1850b7a9b9ea933d9ccdffbf9d6f4a9830ba7ea5ce3d9c55561e61c3236ec2e53979bea0d3b879f211763b0702a4c43a15fc60151aaf7de6366b427992e665b44d214600b37fc31c0ef073d64d2cf914cc808a22517f338f1d09b374176abd851fbcbdc2a0a4815e1394122e65439f08cb58693970417b5b93ff44e5bc2f446c8caed1eb610d5633bf09cdb38b8c1672dc93b2b817123422ea74d997b90eedefa6e09806e0a31c568a092f83a0d0ec7fd5ab9882fff4d80bccea6b2e89fedba3d056b4b499b958119eba110f6e32bfa21f3a8e7fd73d2b479d1f32e6f703362b7254695edcc004e2708c1ac93d09db5f0d21eaf5739136fd59ff41bc3cc42c84956b0dc3488dd52cf3f1b8063ec77c6326abc28edde4981627c5b77363d4432e7966b020f213c2f2a6e1f8aef548c99ace3a209ba95c72e378043d3b0937ab403d3805ef1c99afa4e87defb53aaa7cbbb95353778b4c5b1df16f7a26160c7397874aafe671a3e876c10bafa3193ddd47a91ac713c34c67a607d06ea9b7d3f4718d18e57778f19678aa1629a9d38e5204d1877ce453384cb4f4aae47a783cfed6fb6caf23b084875916926a858c68526ee216e2c7c75748fa0e48d981753f09b9be4cbe39c4a14e6b1aa8f2185ee12501ed7d60bb5dfd5935207aea8698f6bc1ef907b0df57d911f3b395370bb65f9c6d019357499fc5181de42d7af381e307732e3b8824eacc3dc7fff8ec519655b744df9edd1f2782d39de7938925dac369d7d78a38b2a48585d6f7a582e732bbdc8123ebaf537a7087824635d1fae2776207ce0b519d8a6eea3223c9b3b3e77c11c63e1e89f6eff2fe0300d75c9df43e85a9921b0b4097cf004bb6b4757440ff6bc51937141d9997ccdaf55e88e46f79dbfe533522ab368fa879540d0205c3bb0f2d336d7dc73b4c4947f6f4010c6fee344e882e68a3669d4dd0488fa6aaa4af99bd260da30f632dc1087645d0c5057773e506f9c3c8f64faec7926fbb4fe0d8b2479dbfb96ec1a259f838efcbcb8c6c9997fcfb22f79a0b436418fe538e157dcf10627cf3f7c14b0edd61e8fcd7e5056ae316a727d894ac096c14c6ae9d1833d9438f71cb792f0ec3c479660e661c30514177df8fbccf2871f777ce5f808ed044ff6b0d5d9931febf6964f0d06482ca3311b39d190c80cec14bb4fbdc3c277cbc955edd3a714382abed2f54823ff5e60752c41624ca6709b47c88c1038c206b9fc24fd6e9bd475fa553705f5d0dd726a69cc302598f1dbfb52510cb5143e03e1a92463dd70f2336d069b5687de22418e166111b201846ca27f6c3c8699dedbaef5d05667874c76d55d588dc02e39ecec663de5996c2b275c4c8f9f0383ca7f62f0163f69461862d871d2a7b23eb255c07a9a2111b52176c6dfd14a3f6b03e59c229e3d2630ffc30d02cd731717dfa32f21482d6a0da5a277e4b8671cea7a85fc6e5da46a8c7b86301efd15f7a16cc233e7aee65fa0df5eb79152b2dd0e5bdcc9da0a79fed4c13edf3169859e9e4de18b6eda1c3042d43dc7e289ff030df6ecb30f96f8e74d3fa0ec97690ee6ad89f2c1fea615863a3537bb3e31b27c36b2ba9ca8450f7e73990740175dcfc7303e2d3f82d9083571e129e2126c45209d10cf759b3fe04a2825f145eb6e3d46f33a8d7061dda3c2874351be21cdc580f59db82c523d43beccff7ff0391e9fa2dd2951fbed1f86c1a9f5d58d88b55608953687a744ec41b0aa4ff947199191e3251e7d015085c6fb1ddc3d63bd3eab67a5874fd125049ab35eb4488b861f82abbbbc5676273f6b6de25ff5cd07408e54e720abb6f56b4038299b7be0f0ec365fe8ecea825361f20edd91cd1236ce5e989ebb38b28adfda7d51fe429539d9449c5d2586fa91edcb6f6bc678f490ea8c6e819416a963674256041276ef4b8c98ff2bf73ddfe8b2dc205ba8100c50f41d33c5d76b57d59c07b858848f8daee1f23b5c6d68f60b4afcee94d990b110d62b61a227e0ace424ec2064412c57b08366802435216d30ac79ed04f7597411d764e1e9362239600467c8881f8ffd1218db2ef447c68c005e9350893cae23346e89a8854a62a80a7023a267731e0c55fa8ce2cffd7c7fa1ecfe17f21437670873f0a5fe35d64fe8837e30204ee388fd218ac6b703aa24fd8664895b9982e7608f0302621036ca01dd0c27c8130d258b7d373c12af7af5c1d1e17a6d627d0635e2bfac1f703fa42d6912dd442b6dfde8bcccd1548c5bf9cab0856d4915fe27d15a363cbc753319b3e00b90f0c3faea8a40d48865d481cae1a4d57731c53b8a97710d1b704e57dfd7452776b5104d6393a4af6c6ea964aa0c894b00329a52aed389ff060e217404ab76c7a088e326e9a42910791d993da6daeed147582cc350627658dfca8857da9e5503af6e47e50c410f7fd08ae78ccb5f154ac43faaf0f12f517ac3c0da52f3c34d2450749211fdd6cdd8423f93946cd37a0a4b0031a4eecf135c814774b82eb7ff2a96446cd5a6e300cb2315d8dd740255580bc7b28928ae2505547c3964d594b4461847717e66c5bb5a71ed33b2cd07d1f358a468b03e9d6216f2923c33c682cc61e56f6dfe4725f65d4a7395a1d2fcd68a4658130d56c3f23eecc93f85b2a3be94462ba56cd717b701b5676afed593324310283ef97127abc35b1c65c06a8568ae510f46828157a845b52fb85fb5ce6d3556064eaf5c619400e10ae8cd3a5c5bb24b3de41e843ac57bb39e46217e435fed269866cf1f2ea3e1f1152f99569d8d55db9cdcc16e46ebcd32372ae221a169edd9e015dd0ceba46878c3db9656ca57840b5b8f1333832cb6d75ba8053b66ae29ba9e46c25539e02cc149c137c47febdc1d57a95dc5efe585be2a8531e1fb018880a2304a354cf0d5b939d377b61884302d671e0d4dbac6de21fd47d28da643699eabdda5a7a3efa17fc22e537e796808a09e0936e51d273851c5e89710ffd71b589360e7b2351de23d685a4b63d3751c6b00640ded07485ff7c4a5f293e56863afd00b893f48c57e5c48b9e56f7353dc2347656de8e656f3b055769bb120bafa1d9fcbe5807d5d6efe44f82a4eee9febe2ac6d54f0445be8f2bdac0d971a560d205247bdedd4713fd0b1ec27343b609ff6dc8a64b30f8605414cde083a6e12bb8e9f94b4c8a23694265cf56ee08fb9846579056306b0b465b432160d9d36f09bcaea16d338c051a16c087092a60f87d640dee7bb04535cf8d1dcace52352a833b6da9b06f275b3b2e2be3eae8b9fac0ac70c1afbc0067c03b1b9da1bf80b488280c4e59d6de325a2ac81a9df7271204556e88154858ca69c71b4427d7ddd9e773fb59bccb2e48f64304622c5591885e32e2f921ca402af2f03d53d9fd639e2775a24062bafb8c67ec44b9207a537d6f205d9d54ed8c705fc3ac3a6577995d8dbc49816361fea2f89ae29e1cc7c1f1ab467c55009363a5d963a264142d31b116f08cbf7cd063d63b3712e574239e84221eae3010dab33c065261a9e3efec429f51f0ecbb6b9a2723c6dea551adfde69622f406e410f66de252c368cee84bde9a02109471674767cfccaffa20aac545857b89bdf2fc5f8f465d9dcb63a37520299b90ba3fc8284b2dcbd912a4ab323e112877fec86ea096409c2d015cc0ed29c7e748799d6fc9d0e5810edaf188a7ae65a91eff29718f5b3c976473393231878ded97753fa09bb830403445c3404c10729032a6ad9b48187b0cbf41b44b0af3cbe56c3bd1fbded98047b977c6400a8db2f511c5366d15aba9d6ec801d426c4da17f8de20e17ba70192802709f144b64a4c1b789a7b9d72b5c5cd5737ff544f3955f53ed240f712f57b0d05c2286ce41619df91f2fc6533d52f4e2e2fc598373ad90a5e7e21b484bca22b9fc5dbe019dd607a7386ed25a09736d27d97e724501b78a465d9cc23442f7c636587deea9ce5a07dcceafaa6c62a0b90e97f6e556d88fbd7c07b6c4c2f98937ad9f58acbc7e88a4eaadcf03125de313865b42514ff469d2f244f9201fbcf0482aa703cea9485861a22b142cfe5ebff6b621d1a4de33f9044d437b3ac112d0035b3e8d710d4872f9956d4851711092184c602217362d078293595a5a552484ea7f5243eb81a44d39e8359f4931a2e18a76284511488b7eea4eccb261b347cc743eeb0db64c13ff47ef968ecae6813b52fe877847e49a9fe3b214b558b0972d91ad8691b138013c93e324c7134baefa2639321db732c8da90ca06537cc70070681bcf9f0b37bf7be976af3a8628b20d97906ea38ef5fb26478f3e633a4275462fd67d04db9d6afefc968135b8adc862af10e49c3f878cf989eb48396f2cb9e17889e53aeb216a1b13e5b65783ffc8cba364f9a668a457820a7a1231168489de41829118df9f0ab0afbf825921937fc7f9c0676518467d0cddc428b36cfef739a8596b6ee6d501034e24dac5f048f03c59f717576b1a9a5e597281afee488849eb0c973d442a6ff1ec8dcd33820dc12ac7f7cff0edc40c9a0f80b2a46c1cc446b07af36c9dad7b6ea5301019c32f977a723c2d712f26a73aa715c1a4ccf19020d51b3df5ab45bf070b2bbb9ada6ddfdfe5111afc2391eb9a422043b37565daea6ccd5279966573fba185028b11dc7274d36f2e12296ba9fa3026d988d917590ec9f6f729aadd06c86166460928fd4040338e6e678dbee26b0da1022bb598ef8a9950a2ef6864340c8b883ea5ffbb402e4205cabd03344b546101ec4915c3ae73a2ce1b84b5e2f35257c38edc9a74b9888939243789301b0d63ffbd3c3e54aec11f4e1f6b9496d7f780f1c46a6f36b1bd9d1e2de843d59ab46a7b39e6937a860333e50e86656616850e6900872b60e9799d32de74b58128c6e6096ff7f72ac84bb1a5c99fce4587f709b0a23c930a301daac658fe89120289a6b92a4660fc3fa55a74bb42616a84f4f23105fee8c5dc583446ddabad4db6f0b8a190d61e64e8cc4ad0fd91647584f96ce618b48efa426d25ac850e40bcaed76e8935f19c818255c925d9e029e7981a41ced62df1603b7d5dfd530cdf72c778399aee81aa6c8778892a8c9a2a669d70d5e78aee38d37adef998ee2a212c63b4fe00e77544b2bcc455394dcb4fea0b417273032266a50ad5a1c02ddcf8482ffea4a34cd9aa4460ea5bfba8f7912da183b9280339d9dea459f0d0cf98a29012dda9c931226997e534e37df3335e9a2dcaa52e4c6e2d6fb291fbefb6148a3249c9789348413734cb1f90ce93bb201ac1cc69693a0b5f1c7f88e0e28f24680235c0d3f5ca4e2d74a6ff3543f63bd3e6668a4ba3cd676f7e33772a6a9ce016fc88c1dc00ed0f65098549f0360fda8e3c18891ca30dbadaf68fda87ab582be82d4561b0f71701864d20ef15bccfcc7a020bc8ad5ad0383c0b6aae0a351b00388b55f512856f5f33b2b77f4ada428f3afcc14c20f3107465f6e021c855ea91c6902a97bcc806599e05bc846658dc90a01873f20c5fa4ce9907cd635422ee997a26fa84a1b6498fcff74ae9767b7cf6c76fe57be1b2e4981fa5f8556862474c8c72d89e1fd6c1c7646d0772ec32515803142996ba636d4c94107807f9a18984617e4f35b611e644247a49463ad8ae82def80a82ac75d319ffdea1b03cc73656c1fb96e43418a1300f5fc0026d1557e6174a7f0b1e1b96c853645070a23467ed9721b631982f12e35aa1a2b77edcd3e8e0ab005eb5de1d3217788cf1069cb85f06c3c1bd49b947ac8c17966ebc34f29280cb54e767a0b90bd6c780c647f1a9059066f955b14ff9286bf04022e570cae2881184626ef88d3c71786ecaa05f96e7eb9dcdf0bca5724a00833a67b79e0708ccb5277805fbe9f528c51115a500d9e0f7742cb340e802e282c16b626ab1f61d4633a02409d0ae4944273e53eafe8dd7eaaa7279c8f0b7397bb970c13496c7387a5d6d3d3ba429966f7eed6f803a442844e416afa145b014ab369953c0bf713acab0ff5deedad88c71cf22b79a808989a11f38f7c07645400736bef2ed3bf18523dcd47b541aba059dabf798ba57f82818a204c42cdee9c5e46857c8ccab19408ca56cbe4196b14e39dec1f493941b1bb7cc017e0f355a26b7d3c018bd1b46d65760609aa846607cd3b4b8ca2ad7ecb0f2de480e02a101b1415823c753d0e018138a19a795d7e30a79f2d76d97e807f09c6242f3e0e8f7da9ef7dae26e7aa727a04e6d3783fecb3a20cdbb107d2f23f77cca86deac03c115e9d581b92892c7df108267901486f6e15ee5db7983bdac8eda3b3af4957a276cbb445353d70d4b98afbf71423a95e0ff9370b7acad5ea7a4223f170b51101f56dbb503fc175a5606f7558ef210c8caa6e5765b831a73bf91139ef06f866e89a239eae684c525772ce5fc9e0f0c31fde34b33c7e3659903a39a07775d5de92a6b1b995161f3af5165670423cbdcfd84333bc2f2d933eb36c5ea4bb1b7fbc13ba4073de5010cc41bdbeb504d365ad5aa8f38dec01d8a9999d65f6831c20799f16dc60ee0b09503a303f34a3a5fcfb726e241fd6b6ea934c1bfc90d6b7540e7979f501b018864553691592d22d47ee80971802ef967f92cfe00fadc468ab104e3cdf0799191b42485f01d4d14c418d682544b52b0ea21e803354c6527e2a9a0b0a522e01faec1f9972ca297ed29acabbedc3838e86352ba7c9c1afac12ca0476d0eaa34b0b337c0e62b7ca634133630381d3f5ae2b6a0b377010b817b8f8740d96a702a519be85dfe217e25deca391517c55d18e004aa9ef2a42de54ef143409836fd857806f1b5311b98b97cab590887651aade8d2e0c63371916657ff2da73bb87bff983ba3af6ef74e0ff66e8edfebd70031451482f94309c9ce1125c4cb29f1e07f3fe2abec114a0128320eeab6b4680fef2fe1b282ace975c5a138d7fffa7c3eb22bbdc6bc9749b9a9a882d35447af49c6d9eff9c715f18636c97b71aa756e95fa2a902544ef84673060e411ef61d6190fa7a9e8ba62ff363825c7edd08ac6a64e787617f4e228666c14978b8a616039bc5ef7a5f40763f4e71317cdbae1e01f1ca67d3edeb9fc3698234547462b136805b1765583a53d7f062ebbb860059ce6c33fec6e444056b0a5d430d14e6fafc84b37d0641929cdaaec0fa3e8a5ce5d6b66592bc8d975670ea52ea0cae6bd37e80b80c5b7577ef2c4410fa7874a38081be3ee6c9e4ca3dc64ce84b717f25ad837cb38d3239e48cf399f41cd2317d021aacd77518f7b6f5e6b10ded8f8e504ffae53944ae5e9b061aabc4392a57e3a9539956fb6671c6054e84f01c6b1d098b764d8159c83cc4a6d1786a444f3cba23bed9ed39857ecbe1ffd4846040ec4a8aadb73a09ccf59ec90b0f7c7586e682d055d34bb1dbf52163fe27da99fd4bc744f97d57c3d80d0b16fe98c00408c36fa5f366fd00e0d978d9d3508dd3c5007bb1d7be59c06051da9ea785935281316684d8e88471a426dd220d5fe9906ef42d7f6a5e12d8ad0b2a7c44bcd79793deb60d28a9274f46f0dfd3bb9a894303b94679f896eec4598d3c59d7e06cb851ee96bd6d0cb4807ed1f1f9f4908e0f42db9b416c193760d4028dc8aaa858a0c4f6a39e1134c20a14aa4d6b5130b8571f052db3d3bde2cde29a17edc63e16a86acafcf9e53631fe66ad0ce96ef5f6a23ff0ed14dfc3de001bfd0f2d7ab8bdd8b212b9349de9e2a6e6c03d916c27464d7e280d3f67a3ee7a6a10802fda99f58c81bac9795237f8ad9a2a1a407224e11d6a9e60f8e56c85ad8f11895b3d6ae0d7b0288ce6fe0910499b8fb18827be254dc509e21cf6b93aeb9df9406dbf58784f8b4a9aaf03c34a7e9642a7de3aa6b5bc061c6591de2dbd6b7c346679bdf00a54536ea11aa54314fb4ee2da63dbeaa824d982f1a30186647e68a763e65bdec6b2bded49398b85f6f91848168e3f83e3c09bba6a3b6b3ac5a970075f7601c38d8d72a8790842c3f6395dc61a821fecdf99deb06f2449aee720f87f4b7bda197cc68d4e7bf6ba303f181bb7a79239d480dceb369cdc6ef004a937a93ab3542cd9c9207bd4d9c7431773655a54cbced8bbd43b449678cf0bebc4bace6518a2166175af9ed411a18c6c1bdf0457d022522f07fd0891a407e86abddf85a9253ddc1a08b2b926e1641e6e40429e93a50030f59594d02f4ad4b971e85b946dad5f8c2c7a18e7ef119187fc6ede6f8b2034e6449516b4f2199803b062b526336686765f58bfb6449a8b5af074134308e20e69b634ce1c9711d925f049c85643bdf76e4643fd57ff461b4679b6d7cf9cb5e53938aaba16161cc17f7e68450238553923387e1a94406aedbd174a337b541e92830a9c0d732a139e1f452c2ff158d3967e8f8ed398252a1133f37dc6652ca9f146515faeba88bd63037db65d4c07449d1ee4c7d9927c537bdc8e3f40ca2f5764970fc1b8f032e026e916cbfb63b16ba2d72cc650188283820f1f3de8ab51124fe79d37f824921ca0af3d6909c608cf3d49fe425063f1126528017e17d55da99d64ed4a72d63f20b04694e0daa4741ac7825767685cf16bc102189ebb259b4039652abadd25a99ed82f1149978dfad5e0b7aeb71675a85b1c020fced531f97d96e38f6522d8f5a7be8e995dba6e1700ec0430fc5052817f5eaac538fb2fe3f8280b7e4be128dd33adc9bddb93ee423f91436013fe466a2552c86574d737129fe9d425f8eb6c522211ba39b5c71117d73aef95717d9e99d52a2ae633a5d0f8d0d5b35b9fc9843387ff6c1a92cb3156739719fa2b1db7a043f8e7fb83b9cfa1f16e5163b8341f63d1aa73ab5c6d4349281b6f03d2a4ecd793363cbc7cf7861c07385ac65b9bcbf840efc38dd24c6d30bd7d4b9d04ca526db93fec70775943d0d13e5a88d3a0dc702bca289a605beebf7237de6caebb3fa030d34061866d1b51728ca949c69b1a06c0df4271e16254e3fc0a5fe6fc98a6f37f978e9122d40d904eb2682b2615469f59f218db307d024154785224bef64161ba934ebbc1c56f8068488d86944e6afaee6f3858e89b07385949deb2935d8ed7b3b2c6ff4c87ab8cc164fec73bb9ffffdce3658603004552ff072ec17eca948cb84542173ffa4e74b725c103397bde671a80dd3a9dc3e464dd81e76aa62d85ef5e81dafe860f6a6d802c35118fef001adf9d2374705120d98b4caf0bddec20437bfcce662a4b3da30d1e6142452416f5ec3465854ae856d72f3dbdce555ef52a53346e630949386ca4234f08c45de4e4f263681d261d744eeff080ec2f5166b5ee088e22133548d16f6a7916ba907b72f6ec0c0b3957a611cf445648f98588accb3d94a7b151764025a346d7d4e837384bb45ce1d8516586a9dd49600e2fcc3747fa0ed03073d684988396435f4494e362472cddbc9cc89c81a1edc0c9777718c94cdd226b85c55dc4445e6f6ab5ccaeab524baecd1a2e0c733b3d6fc9faf00a1ba3e72b1504784f5e22555d7b04517cc62845066684300ee69c92fa2c48da165e5368669682d88685dfb0ebd92907fe983fb10ea1e5ed117a74aa289367fad7be14c4f77c25b6ea7d3ff2eb84d55d9223b01329161d9e2150bdb86dca4ef8096183f2bc3f2543b4b18dc1b77fe92ec18dba4d9a2b6079f4fa318da29b6be5e0f99f766c3052e3286515dbd4a5fd71828f3f9e03fcb4eee65fcfc7aad21e98f8374ce7ce358b4a4fa1a70b7a71dabeb8384532cba4762a53415a1dfdac3cd6e466d307502448ebb9db1b3d072a00a0891b7645d6b5d6ec0300daab3f228c4facb360706a5111b5c0cac792c2bf21b57d09a0d2366556b0bb5e195f6a0f4d68b81683c6af4c0423c4a60b966c32a4a592e636d4ae1b4f200ab826652129afd3032fb0856f7f539a53d2c5727dc023e3a890ce142be96bdfe923d6b239be55fe9149bf573ed2c4185184dd431d45ed3bf77ca18f97722c9ee07f3e9899bfd94879676cfddf5d2f336c98bb6f291b853d6e780f61aff464819b293a65e73648120a54d8c6559b04648e1bcb14d993216735eb1847aa09bbd84181ea1db851a292dcc3069c137dc2a912830086d28f2b2cac1ae3b1e9f92d25f8f52f3f306b5b85cf045f959d598175e2be4fd7c311c4c698283b640782896f4d743293480adda341fe2e24109669e9d17f2f7ad0b13cda6ef90da4e722f3ee8c8bde15299f04f00f2025cb548d3967d51c20ea65b19be5d7beebfab04262ff2d8461e94be6a0ce2266d7660547c16eea7a2069490f1c86e79e8c86cb9f2368dceeaf5a5a3cf6f193c53b06402f67cccd3c37ccf063ac89a5d349d949d954f2d2e8fff5f5d94014b72f3053ed26a617d948ed57787e6fd1d7a9a26a5d1a6a4f826f4cabdfe228828fd6f38a3bf28b81a164cfacc7b23c0436f9b797b848ab4fbea2d5022f7051757c85aa06504137f3313feec3b7891c11710bd0330070b568ebc19d618b41ce3e26b0dd53714d5f7cfac35ffb4b0ccf81b86ad6a8ae86f58be605eb5d998da941f650f7dc2b4bcf11cff9bc325033469da7bbd7a70a13314da136cc230e7e5ebda3cfc92133c0e29b8f02a1f7ed1c2a5ac499866913a9ff58ac008ce91a405d689fef088001220c55530930c20a8a5421fa68b87e84b44b3b2a9c417422368bda6735ca8b78005178310e8d4181cd5360ba31e8305384d575e44b40aceac3c1c710490df80366cb3f018863b887c7e9ebace8b3724717b1e67c98a541bc624c0a879b310f01052733abc55e69d5bf8e321af65d6092bbc57ef5f0d06022276b7d5bfb78bb6c4028c6e5d1af1359f1ec3e796c4b50842d4e480887e3763ca6d5a71ed58d1f1a1c2347775d8b7f9262618acb208773c4835bbd09d34506d43430369792fabef3a6821d57ddac1ae135809fb0c24006ace1506e4f28218ba8ce9b455debb03609804258489bcea459f5908c5b254610a79a65f85428e86fa390257ea40083856bad748cc7f033ecf47d0b26d42592b5bc2b254c19b0cb11e69453fd3ecdace4191abf036645209a291620192efebc16a132f0436e1042d5e32b9e1023ca453081b6dc3aecb25e0f43ec32ce9f6083c1f253798a34ff874afae1f3bffda6d0df4f6519b0dd62ba5007b1581ba36849b185d448d1bdb41c62397d31289c9db18ea094d70138d285037e43dbc6894b94dfdd833857cf1541b14d23aea53536af14bda10c5d8729147aea6abad92fb58f643b78fabefe9f7ec6be23b3cee049772efcebc23baac041d04a6c29c2b5e88627da069135630b208ef376fb3dbdaf19b67bc99673deb6e817eee00d466c106e1f4755d4e8d439b3c6aede382d9c48896bb9663a94f1406b95f39382455ca35a23eddaf0cd34198d85f5b88edf310c1f4d4cf8f395aef02f0cc554554d146a074b3b2ce3b7769343cb910216dc19521880408c1bd8e2c11d1bde9c8bf9a57751df067302be67843228a3ba5df837d012c9d736a06f942a22a9729fd827fd5ebcda0a0a74f26af2f770efd4e23240af9494b04c83c543c5af61c6d929fafa07ecf9a6cbb468a674f782e52c9b5d6fa5848f95da5b85526d394147831ba9feca2d5c40c6138c5ac6d81884777198be3eafcf7791d0dbe9ceba31bd4c8126c6e4ecb3e53233c65d0406af9606bf9b1b59448c55eb2005fa7c2eb720b6e28fd0e73b0719bd8d75f6f62f78fa4bd7d26f6259660f649c2b2d9917aceae2f870ac8b5100e164ec338d17c761dd6f7d46801565416e3f2c96e7fafa0def3c32d6db1d08ce8386f06cf1b6852829f96a57f049c4abdb7bc726af8be0d91466322f38e35d948ddd8c442ac6e47c8c7bca48f1ea37d78e3ffc289440d6f87cf1500100ecf46c04ab89cd0d49a337d47abe9a684f612130446d7075b16d3cea1c166af83792f7eb8001901867469e8637db3497fd4b2c35834ec739d03a6b7c4bc3714c8ba17a7a97e45f3f6492b7f2e4a9608b5be08677abeaac58ab575d1053c82d1400af93a1fa7683b58815b025dd2694e7ec72e5c7b61e644c78e028d7c54db3ad33ef77cc50cf29e1239b4e78c3400cc88533ea7f4cdc51c75b775ef641add951eab6c4f5755a31f863ba78a62a5e37d149bd7d547caaabc686c1554379f5cc8e26ffdf76a8563effb047c7a23fd8efb0658bb7eac22176dc48e7896b13697092fde8e8328f58212597df2a982e7a869c307d56f1376ed34aa916061cc500916ee43338fff2c78db41160a0cb73069d95ca58c9c03bd3a1caf1ffe1f9f6e3e7c0cdc6706b9f5f2016356cf54f0eafd07f5b44c7c3f8276a175758ce7d1ff2ec68322b204b81afb59ccbed9cbd969e3451ce4c782a93529e9a9458b104833f79350b11efa2c39b1016768b936090709ce742e12daaefd327d0e13f53a7659039b4d4c961db5ddad0594638548ee7b6b64c7858ab4b903a463e21cc1aabdae1f08cf1c9285b4078b95097a5dc157473f7722067fe8924adbd1a8ac5d99d45e08a12232d01eb0e56472e1bcac1fb82a252b565ace743106755f75673a96e5170fef35a31258522a597d6b56254f4deaec6a3e926d3415b35a60f3523d7159a260037dcb84c725e6f9eaabe6cd54d8bf8b6e62bba605231f7381249a6e09d85cf84e67cc83dd63e0ead34b2abba3c6955164397af7c3f5925f57e9fd1809fd1e8131fdd0ced0d69b3486f312703bc4b8d61096a32081ecf47dff4c7fecb822a24ea6293512e81f0e050a069ab9b7392dd69794ed311bafc7c27092c8a5c17baeaeb5fa109f5c974ee7502a544d3564076efe4be069e21e1f487816b558f55fbd56791ffcb24533888ffb6d1c8dfeca6fc0b9b40a4ff8fd676f30ba945d05a4932a967b1d0f1d0502ee3b9414d72752b076de61767c03b8cdb93cd3bc3f6f28f855adf9e78d1341db42ad2c3ad5b5b5fa55ea8567119c937911863ab3cb2403c04b8b263c3fafe3ec0aab87a0941a7a1d6a55a0ec5fb62f819552c35a106570c1a928e5fd9760f6f4f09ef84436064c30f2b82fdcda8bce3882ffd5ae7d8d5a4e61ff59583c158a83014019d826429b5b874dc47d3da7d3b0adf8d24888bdbe3b9a1b857aff9154d87672a57b24a3718aef1d1a7877ddbd75b7a44ce01abddc09cd33743efa1661d4c649a860156e0a9c113f70e7ff65eea4cd6319952aa3a29c82fc6e3faf07110ca76d0a1641429e4373aa6dab2fd1dda44b45b5181af96b12b01ea1b2ab2736320adcab21073d5da476cfc98fd05e520bc40aee817705524ea455a91fdb5547cc39d007d01e353509fe3c2d99e3516bfc2e12e36a11dc3edd961e68495d2b08ffa9d6408768d383adf660faebcee3e1277554a823062be2605a1b1db38746c546148e5ad72983a711c74a548dce7a5989120580ad96cf5862b8a6ca2d0bd3b71675329173d7be5145e3b62a86dd45372da4cad0e360e08d83e0176fe6b39bdbacfb77f60e262703f", + "0xe67a73414d4b0eebc8913832a417a3cc2708f945003f8f8dbb4c04239339e7223f69d65373f595ff55a0f2e7d92bf72eb9093585dec444ebaea74192770e068fc96e265ec54c5faa8d81ba37f7ecc2336c83fdfc4939e87f2ef3ca21e5232f7bcd02ae45bb67879545f34f877e2971e4eaa4cdf0714055cc42614fcda7ad3e6477f168e2dd59210dd76cffd92045b44b02dd9723dab81727b7715e7ef913203e5794dc59494209069f4b86b5442ba8f0251a1953dc31d180996612120b8e0c68e19a8eca31aa9aad7f0fa04984115058ea9a23a522b2665abec8e448838c12dfed625ca75b33645d5ca74e802f0a1a6f8a4e43d82cceb01f3bfcde55f8f32fc137e134089f9632579ecd2f8dc866528764c55d13cd0ea8f6ece4987678278972e019f7a36df20c1fb474714a85eab08c7bb12f42ada74758f19ab7f903e3869deb28771d4469fca18e433732d1cc6928f3f6c906c77da0752b2fde5d0de6e4d5c1daebcb3c10b9992122830bca8b6cd4974c706aec7dd680c37f42bf006efbddaed4462d7d2d96c6e7d5f271c38eba47566c7ba23f43026fa41c589eb880cd6c614d39bfc6c647aa5caee437c398ff38c1d32070b80d31adfc3b43260507a6da7055e711e77f5b678241d542050bd62f8f1442dca108fd8fbfbe057e2cb74d49d2af8b8547c97e4a5e3808ea76f760001ab5a5521ce177fa2445985b66cf23b4633a8e4a5e5eec4b782bce0f3b032698e0a03b6a9aac61d62653610460a0a3d363e6cee93c149b885f8ff925281951f602294ffa651fe67c0485bc22bae720e7f74027d101f8074c23b1540e49eccb84c894c87617135a1cc1d3835c88fac446a78b641e62bdb5c4d9c22a505d4ad38a1a42e0ef215db37ca4e9cc62d4bf1617de643c292b7dbbe61bf8356c563ef41c0956e57b45f5b441b9864c47197b97966e00fe1ab7c3fc5085b28430da029bc144fdf9431d6c09ef4ff51140ca663e4509f001397aefe44239be27cec5c49dfca33ce7e692b1c57f798e8ca6c91edd94c97b1a6578dfbfd15c9ebb1aa5356d17a0516a67652b0e588d4e0debf0dab6e8a88a86bdcbf1099697e91ed83ceed4c6d9a29d65a91bd8b4a779366a8c79d469091b2934205251fa96b6e71402a175c290405ff54657018327500b8edc59df9c2d4b076b3a98822e8c186ab8a11c63fd2bf5d6fd784c38b42fd3916897068db5bff14e226eb6ba83aeab6115771e90f2b4e57db04f596ebd2699380263b0e55a49c6670a2638f89db33190ee17f5f16259c249502d72cee737b272ea5f78efeebc19d1da5fd0457a5b3ee3b0c8f285f6ed86dd334b187282d39c3b359a8a8873ec1ece242a3838c1e5f3f2c604b0a26c66cbe1a733a04ed02b4a75f499087ad512c322772e5dd93e96cfebd1fb1d3f6b5da4e61847c814c3b7325268d5c30dbe4816630e24e05aa2398635440e691988911371b6399ffc30b17a3d963ac8b00a1044977b5ae329d99af0685254abe7d96408169391bab7389a26f3b1aab66cb1ce1b366131293e720a08676f186ffc3a5cf0c41f2bbd03f4b55fbac878ef41284929b8a49f82be77def2a2905801096aa3d7a3c2b62d976e87c8f36aee8cac5c2e5d4539ae8d5416f020f1474894e76088191f34369d62145de16da4c72ddee78d453ff6fbc3c93a1c786d58cd31978cfca00e3f821d606fc67c3170b58f76735ad6a9c238d9c707c4904acc037ed30c16b9127bc6076b1a1544b8f8dcf9c431edc1b4bcaa69d6a64d029cb9b849f2c4906d8a9a0313da43e04bbf615577dce38361e7eaabf8ef80a0bf6dd4eef4f0d2477bc5ef8abad5f784b8278dace10427bb2db172293f485caa83baa45da1dbf4bed053df85f4a4af9e72974863bb52aa19c7604625ca1d36dc4d13b7ee34f87f9c9e940f6e386a5093ebcb956dda6f7c868ec3ba36e9b0f0abee0967412c5fd029f8e64796d50ad909f2d04bb3e2ded8cecdef7a04edb91611a4b0f2283dec82d5031e1ca0993a7c6c968d23939043bb2070fbdecdb5f8060ac6c05e2ac9b05eb2bb1ab303c7e5c86a1f595e5bd37906924aa1c0e291b7d319833a530120528ef53dad318b5b73d0770e8a99d3b7853c9bf416872b6c5b03c0ac8f801c92fdac79ad1f95d8a699ef4a34310eb022a69b973095499f4a5b280b94ab4d1e53dc353ba20c13dd30bffb5ed57270225b14f447e45496cd1c39f806f669875d2c3118df29636662f0211c72de2fde47653ab14ea102a257da552242f84e8a64ff898d2958bacb83d13e830a29f1d0b52c6a60b5bdea6171f1baa8543592e77118afd2856756d1308c3392ebcf46d3f47e5f7667fc5f59660533e656d9ced6f7503a0f81698189abca14ada2930dce01d61634b6c51eb113fd4bbe65ceeadd1d02008b4d8719200ca0722cfe4e4c1ecdf2c252d4efae856b611cad21f906f93ec7b34b42d2764ec04e8565927b9b48bc47eb8d5b170638f10be68d30858a346810735858a40aab065fbcb734c6480b2733fd39c687ecf14125f0f8bb419b1bdd841f2cae905a5c7105aaeb81b3a8c4da09dad4f5b3e67d8773320aee0d95959435b35206e4384969d984f45654489f96f12be5ad3ea50806f9ab3b7d5552cdb89ff8c846b55c7aa9dbb952580af1b9908b8b8c16933d6092e27ebf1a9d5785287f5079f885bb03c2cc48eb6e5cb08df06ec0e73b0dadcb16c62b6f001f34ccf6706f1bca72467697d3e42441db55285473a6b78db268a3103186f66b77a95ce8653dd00ff4ec8cdf731381c315196e4acb81d4617afb6910873c5a1d616c15fae4400e3d2e0782a7d4c3b4a59d5979d9eecb9c6d26f5413c300d5bdb8190dcda1d40d66dd2893ccd561879df1bab5bf955c3e74fabab44cf170380ee46f1f26bcb01b3de8ea54e867b5cea2c759ff7160348030629916b967a53c3a3d1293443e657ba730fb491d91a61508bfe006791ddceeb777320747105b7f6cbf3edff2c27dea0308e940521eab898bfc16e653fdc753ce92aa264d84358f53c3cd691a65916f5c0f3d97b8e528fa0d0d18c83e8ff824c89644c1e535eb1a24e13f15c647eccc1f2876c81a59713a988af3a7bc91dd88ee7e27eb70129f3865ee7aa98cbbdec2a373281ebbc4db2f6f7bd81d9137a258f77de1d2f1282cf924e69df8c762a3513264a08677f2097a8f0c62d576932e5d7125e4d684d00c13503d92553b4536d7cf9f7f56b6ee9304b8a8f41a5667869a3721f0f448bf1297be661aab308a80d1f0d2506005c16b2859f7cb926159c8779b90f851c3aa9e4536487267ca8a780a966fcddc6f15fc78750474e0d77e6a9c2eb53dadbdb1e1f8b6ea1ca2f00e7673228fbacf729d0fe897fc12993014452e86fe1146783dc9b26fa682a372ce18eac1f91aff2d41899c853aabf971bbf57d292a6511b5e3db21b80947ec7819a75963851355b143abfddb8923cbaa2ca686f03432daa28fca7537d84cd9004139db206b20ccde1785645dcd13c28665c9c7e58505bb8b2113ef3f3ffcce2f188ff503e5e767e88a5ec21b389bdbbadd71bff883aae3f63e38abae7008f60368b5e953b15026228b2760f75bb79afaec72f8270a811dcb4c17b1be2904b8bf5db50317b1bf7a53499dbed1b6c2525176a391b4e7439d9b3b6975671b5d96406233a3c1f3b2ac1f4938512e5d838f5880963d04934070d81a4dd86a56ca92a7270962e6f54639703a1733dd6bb3dc41628113ee752e848d4b3d70694b950b2f98e4389547eb4a1d25a850336a0d025c9795e9694b7ae7276123e02d6c0fd408d26b25cddb66471241efb1c0f47c8a91eaf2c4522ffa523c401c35808f55fcfd5ae28b7bb2350569080642cb11b350c850f94484444e7022f35e22f4c53da8bab3182fcc4e2df6b0317771f2fb82a65e3e3bbbc11782deebe80cdb2c7af10159edd124d736afbd13b8c8740e079852112b16531874aac6a8bd7d0882212225771689c6c667a95614d079f6cde251ec25d42b51e06a3abc5419ac77b0a22222e9a417c0ddf9bb6be1fe266a78a9d1ddb0584ff35d1a8e9c2a5357da1b1a3a3f0c4947dff44322744eeaf647306a36291be2daa5a915b05b50a11131c4a0466cd4d1cf984a01b1be7ca9340eab9ad2be0323d66c6d1bb7362dbccc52e90f67777c9c32cfc1fe180db15e70f8ecfce76457d404f3b8383c12715d1abf5401f61f47d1af51d9577d6730830de31b7a5c90faf70b92d796e235ec92b47889ad12480e495524ef88fa5712e68ee24a364536c4d9cb87eed12972b9fbf04b0e4db2f632ea464dee27709bee7926e010be59a80d1e1a9b7f94916884ec202a5e7638346bc8ec4aa108ae04be7a3971c2acc2a4f253a4ab620289f71258bb87470d3ae0aa52c6a34e52e8bb7b4b5739b80bfede22cd32360c48512ff86b159cfd0d46a663565842de86c5a122b90c49c4ea92c413a3a5c43ad172b40657b0efa5d5fe7996982ef764109102afb7ec4bd1d0d61ee96562d0288170f9fcd9b5b8defd31e54735333b6403812872878bb7c376c4d66ff339305657c3ec65b4153786429c07f3c1f33ffd7dd344e8a92a2a12cba0dc4249df83a39c3dfe3c174697a1c29820ddd66f9871b5e3a2d4bcc4fe24fe111fb2b86ec8f5a47ad8144c705e77dbbf1f925784900c6fd6d7b6d21e46c3757346e2b472a76062b050f3f512c0f70440dbd17d0e0f1b8d2f9c142f275e03fc15e66b1a67ef9dccfdda89e00d81ee20f3f0a684d92817244daf1f2b9318105a96ee63fb453d860dfa0a16437e09444ce88470533a504991c91a7f8146b22ee404c9ec872ed9e7ce32ec925ba83bd0c21f26a8bfa21217927fafea5175856a138654b3653a1fcfa6e8d7b8ceef2c032378cfdcdf6f69a7f64e3a39cf470f088a1fda8e57e92690bd6010bd76973e8b4799cdb52c61e83bec64afe54f3adcc52e3082f25f2bcbac3769a3056cff6b51248c0e9d59532396b8563939ab61d1b74c07c42bb6659719a9168cceffe3e4bd2c41b5fc332129361fcc4f60cd38d24a36a5026600ee469ecb1ec649d93e966fdb1e574c0ed8b899e1c65f19eb53f9a5ba799f0411d500e7aa67783ecb1fceea05de243224d2efcc46c40d619dae3075b047a037d243256e70982417f26cf994c9e9f58748fad799999d156975155ec271cce0dab3cebae3c5b3c198bd465c797df830ff5fd867d8796ba8b0999cf5285ead06351001f5d65a6d9515974a006993e021a170fcc3e1d4e4150b1bf9883003125946e56fe07b2bc562ec8a1cf1270b685a600593fff8ce28181a8dd598869ebf679f10c31e657fdbf5bc83a8e4fbc5ce5840c542dc52a7e782c59da9fcd50d426b13f436873ecad37fae00df8e923ae734949edaa8df3b3443804833e208ff9b13db1a4e3acede23e02a8d897cfceeafae0f9e82350037048a43cf18fa2c060c76b137373923bf802b65096a69ceb8238401415639f1d7804046a41ca1ac2bb3d6a2761c1109999b144181e767c2993a9d9c34b7e4f277cd47c4799e528382d5be5203dea88305b15c4d61121b83f71ba4ce645504bacb6ec2b667ecc87091d21f4276bb2e00be2fc2a731cda586548ab518f3d6aaf581d3b85a87cd07ae11c8efeda2fdf659c9c2e056e8074d4d8c5bb3d8560a75380210eeec51c9dedafdc87dfc8ca7ed6350beb2f57f6ff335bd56f9bc212cc279800a390ca2a239a252f5f69f660298f90983f0c55db9185b16dff3af500db2abaa4fd27954c36bd3c1e20a05db784374802ac3aa1af95b3246d43cf01030a502615ac4d5be8d67fad0f207169bd94445d51dc2109e53e0d0186b1a37cce8057bc7657a5235b624078f97b6b7be7a24fb46279386efdf5e41a3b393831794b7c839c441c497f235461a678016859c68f95ff514846f9daaa42ec13989fcb2adc26282655fc82fdae6e0af726f9e056bb2b865ea71a16b7d2d4f2d91077632ca9723ae242bf0e2b1c6aa76eb569c0d435082261b109ddf7a52dce6e8721a63488dab32de7ecbb4b58660120daea480fb69e9424a344818ddb2d6096083883e4faf3041f242cdb396a322371f72045947fc68d9b56908ec670bb39455b0a078556f88e1a92008b620de832a6cea433b2e13d946245c7e782c73ef7fd4a19bde2944794ba553c1e9add6216687b825197ed227e66a55715587f24adcd189ce2423fe1b8940386d2a639bf27cbc6bb74573c7a79b169c1e380d85e64b901fe68dcceee12ffb9dbd6fb7ee2f9c79bc4b6e22caca4a06f1b52b2b0e2a6ae115ec87e2137cb36bb0ba25e56f32c58f305ef3639063704278fd02f53281c498a0ea2500caa4d8afc38997046dc52a9625cfd55e13639ec91daceb866ae35fffc1533d0a9da0969515b0657a6cce3179297e4ca31d1cd238fce9a293d74eb87d8ad967fbb7dc37a13bf5efb57b842e447fdb4c71acf099d00d08ee9a981888b91c5d8e65aec72206b84d99d66d5d1d35dc64626a40d5d4f855a90804d5c87f1be7fd8d540a6b500a61d56b4c3201730ed9ec4d589ca8a4a2c7adeedf5937e5d7ab3fa0f1dcdce815bd2924fe1d6f0d53826067ff32a3200bd51309a4c381dad156baccbd3a73753793fb380d6fcd9466173ba69c9b6e605ef9623ff8b5e3789be65b5aff91ec068b4d316790fd83eeeba8d62ec9fdad8d13111fb5d60a1e25bf9945a3892413f0945527f5e4875e10cb3f21bf151660e347320ad1f689ba23df59f50aee7c1d3d24654870db7244efc8b103b592a0e2b8ea93542b80170a5ab9a617e194f75b4d68fc46844d5f65fbcddceb549ebeac80bc555832736431019df678fd9cdd6902e546113f03142d5fcb3045eaa19f6605d119af87098be5bad577556cee18381ad754093950d25f41457feeb61b293c3b7ffb337a5e38fc0c13d02003a20bf888ef148c7114bfd3e9b49fdd818d604211ac75f8256fae5b3ef17b714c7faeea24278b467296bee388fc8b6098d07f2a11c47f5b492abf773c202f34b5cbd1c67c0dd955ca3de5d3a4728d148c04fe98fc91fe084bc4a7da45d244a2ea8c27537f7ba4e64e7f7775594bc6b918bfad90d43ff1b0fdeb835fbaa2e01888ef0ce01484b160a5b2aab4ace96942961a5956037bcb9b64ef75ffce0f394abe1c81b90254b79ecf6122c8db948d28c470957c765f25f53c6bc42c774f9318411bef7683e5fd853cefa705779079d2657403ae4b57cc8af37cfa5f2c8a53a78ba061f40d255e4188321b3cffffde0dc4446bfb4a35640580c1656792b1dc71b3edef7f6146627dbdf22753cae5a7e6ac31a491a02252ab99b71a7b6f42222b3cffb032dc16b7b871238f84817a8cb89c53ba1f255e47b8df765eb72d95b49859e0c6f603cff902e41eac359154d0fefea2472c04b013c9d6790feffc11e6ffe0729889eee346b2b730921f1a6a40713a220cee3096e0bcc2eb0bb65b8997ba2fb8f41c4afc0e1990860a32343fa64cdc8fea762611d9a7773c4839ebf7087cffa6eaf4e6c34201d3aa89a1c98db49bfd53357411fab2f266562bce3a52462505e208dbb631327f65abe9eb2e59cd18dd47a196b00df2385f9ef500a24800fbfcb14b979a27d496ad7e70a0c66a186ecbe538d2a0a2663b7dae02aefdb0144b70490b5699949af79294c7d5376f5eb77fc9e38324914f2f3606cbdf307baecd8797c27eef47bd2e53d6a5a7c710cf45f13260135397f6574b1747c8aed5aa59a4bdc598c15300488036a49176f0089e2d318b60e57c765b35c8063d3644b43eca2c9b91ccc2de8f71ea7b436588607968865857c9f7531fb15b96d4807634ba98b8b5a8b3b9bf681fcb64b6304e5be83f5598365fc6719445edb1b7ad79779dbbaff72280274f96dba7980a050a27412302a29b3e26504633ce4f4db734d3acdea7cda880cb19095a57a0c816245e0c099d1d1b9a21ceb875c13ffa0262633ecb65c91f6b356b04a4202684b898130b087413d312d315c0c31894aa8642eb87b218f3a710af1208e1bc1552e6f5984fe60f811bd4e4bf891ee6167798dfb55172df5993e7660fb95d2e754858c4e70f13deb5405a4bcf4707dafea50fede490534c3190bff3a32a428d62f2d0f7d7ef05123f35ec8ab9c76ba1dec3cca9e0659e7d6499aee70082dfd476ee8a798aa4faa8f3e04817accf3a05d8b49a93db3e51fc05a07a755944d7a0ce3d3ef1ae4e90b5369dde673751b38ad67bdf03baa00eb36a395d0a74292e9e01feb5798918bf9440cd9d0ad1eb15df32766a663fa137ddc1e1141b6520debfdfa9cd41c0b2d2d74a4d4006f6007c8eff2f400a2e600f46fe8be3e4958bd08430f70b7a51cfd0d381015d559694ed9f0f76ae7a863521313c4dd008aba43e0b13db7684a873bedc5144f80117a321e5ae59541139e3f64d699b68fbc35eb5c172756f3697fe3134ed93f0a0e69ca9107739c2b8f747e6387ef3c664259febb56b595943f2e26eb5b6bd59ad920d60043d99a5e21f9e5a6a6773f7706086e55c79108c29430b5c9933ae7d1ff1c4d2692554f60edf2e0247f80287825fbc7627bab7f57e315dd2ff09a7e2d8eef3c5b1da8d64b0e5ab00793824e935f3d7d3e13b60edf1ee26f7c4f43afc022bef7f3cf967845f4e17db6f597d4e3a2ae78d5f5a8202588907f647ad1ffbc2cc392a49c6a84eb6a683efeb5fd1a5dc8810545643e9c8a628ce8b7ca45629030ccb486816f3d56e58664842e95bfff6ebe05dfe37518c71e36ac3c4182bc9997bab49a0078d778ec0663eded672e7ebbc1780ee712210d93621bab28d100b6d10308dec25983f59467ff60eb1cc2b2a4b951d6721c8bc224dad0145b5dd62755310151056b8bb6b15b7456e78274895f2a9ee4bb5cd93e5cd97b40deb8d19b5761de85400c80de104864d22b0c1f3f6f6bfc735be4b04137917ac4d2543d4bf1c52793341d74e170ca9b805a504b18d9296275c9855d13b3a644eaa00b727fb9225e83248249d9032fa4539a8793f1fce232bc3e57668173b2a5a4e598bff7d153f99b95a60d6747f925944110934b9e6ba626ff35322920bfc722e11ce5f3c4c4b61558f465b3af601b8a0ced66b4bb6b7ffc503ebcc20dd00dca0f9a19e58ff73720f85f0c6024cdd2290c44beb0ecdd11fe1356585d0d58bea0257aa407b303f14af7db5b7c9660c16ebbdf7a86209299ddffa287c0c7c07d73db0a0667241067ad57e1ecce066c254e15ade18ac2ade01c0f10dd62dfe6983fdcf8af0e93dcbe6813ef41062cf5786b183f5bd67a25368980cdf1a82f991faca8d94d697d399b5c140684a28839b4f8e04bc47ffc46b4cf26cc695ee41ecf9b75a69d103c8c4b29212a4faa2824606c642d4ec19430d7e37246089bd0aecc21e23ad88f48504ad9fde68e7c6fda78f7e561efa878576332c334d48560f52f63e0d5a9dab5910bccafc56a51563120e56d0a643621019cda06d74ca8bd955d2f549cba7a06721bbc6dda423c3c34204ee96fbe0860cbc967b131aec341a13159b916c7b54aa78cfa4539bcc0f0a13dca1a7887fd382511c55089455a2022fa1a9bb0482eb7fbb639ee7bdd4cf26c5a0930356f63f7d19865d4ebd55e4396410fc53aaec0b2cc4581813e3b2af23a687ea3578da2676800dbb9a60cbcb36b6988dd69249fb08a96252aa334b88fe72a860cb5317c98d52654e0cc05a68a8914518853eeed093c67dcd6cf3f01e500cbb3a3c9444409d740beb9b5e0e754c5611f48f54d6270fad448236a46fdee4a382d8c3038b6b4833f82ed7c649f056ff64414b0fca58174aa988d23121314395c41662e8747fac186184680b41812c5d865ffc833817969fe0cec29c9aa0b7a1ca24a28c71902caf3ecefe514bc147d1a405be4440dff312288d6b37ae331692dec102748eed9b0334da511bf3f613f53ce7c91c2718f34e07a617abbbde29bb466af5c45bd33d6695b602fc68f4829eb4ea3bf38ee16710acb183a524dd056bb249596a5d26074263f91af0b1e674a35fa8b427532dff8588da235f4c3671471f21acd4b92de14ad0ea4c4438c3c275a71eb526047187098acd2af116741043eb88a9bf7458c188b2ad7e509e2773812305d0b658ae79228d84173b2c24789a53dc8beb5966b327e05004c05c1d76c308b58ee697d16abca53ab4c62abbab9f8755998e0939fe9aa92e17a1d493aa1fc05625f596d311ec0826e8d2de172dfd8c067afb069381b23d424b1be9e7c2d5e08ff253a3124e03848928aad65d3f989c8562d5d293c75bc43d9782e451658d63fe9ecd78329fb1197911d25d7a53a15e8b860cc4447fd3610a01bf0bef0df4a359ec6fbb92f0be4ca0922ad62b7893b43bc3bd49f1189b3684a293926d873a0e1aea634d7abc461a41cfa701f6c0138faa6d40a591f457a50c0f475af0538254b22e42f43326a0603f90cfbe4a66f52239ce426ace63111b57a14de47b146cb75d5bca1a1125714b6864091ee53d74174ae4af08fbea1a2c0b8e418c24b2c333002cebd8ea278e3fea282a1dd9cf05ec53888c0f1fbbbb3a2dd04f242ff688687fd9f3f42d9d07f9eb4453eed4ca3a6d88f4593b0bdfc2a4911d51de057f021eccd17035b5cf597889ffdaa68348f8c0e64c9a6b909b4a6c353000ea382ac105170022d55248ebb9549a4f8b66a889df29484ace80785234bb0f0d56165f955d0828fe36c6ddbe9cef236b28d2614f2c9cb87898d59e8f22722531f20ee27089e92d496efbf2d702c9d34991c84ed708ded09a7b9c6a801f00a9d2eea5cfc3a547a47d93d796918e2a0257244f982e1f957e3d2b6bc646ed7ce84f75bf730bae11446c8ff6489a7925311e12a6875ce9fe815b0496311700d4985414689ef93a50891044ea41bac045a0456bdb81e381d003fb7a160768c5f4f5edc23525a738195ca3ad156c09c32d59109f5a10617eb0e28c718beaf1e9d6992e4508306cbec1ffc3b1a38ae46d01c4c09eed36dae68bc3b4524c2ab2d7536e817363f7bcf52aa11a6b4a92f8c9f224f542304c6ae0e6405ce19feae92c8b4ec39da1db641458d5b1cb67020732eebb60762753528f477b975a940d06faacd6d888b97a7094e860c10ccc37383d8c1239b4575184d0f53ac982f987bf68808fd3f935ab4a069a4bd180a25ad7525ef3a2d4ff17b04dc28d83b4012f07d38487430257d344c74b0ebdcfae86831dfc126e0e9b5a24c520b5dfd0d70c3e9dacc6e61fdb0f527146f758ab53ad21b79ac1346ee21836d5673fc948e995b60dd7bc8c65d1ab700ea8020dff9e22db6a211b1dd761949fb0c539ae47e337351869c27055e30affe12b513c194164d8c1f1cb89e17cbd3a8bc7cc398a85e9ccccdcc7146bf18052045595b678f161d733ea75e96ca6a32ea271425590b51b9277aef511eb645568310726812eb7a1a178acee293235e2e6788d31089cb2b81f5ba39b77e5cb832820fcd8e54eb96d6da8c3405e59c75c23d9628fd97082b004cbc5356bcbd2e9f9b0f8e85ea30847605c2718c220fb79c14459104e2fc0e165becb425a3aeb0942e7d2fea23270835410e66c00ca6ed9efd202b64200968f652ed01df9ae3627f049cedbcdb85b5df695958ed77e4ab6028751bff698d41a99a6d3783dbf643c0ab563bdf00ea6156ab23e9e64889acab64a651dbc3b181895660dad4b1507b2ba2ae2e9caec64511f02fde7f816787ff746b28a2418036c63e503bd9d3232e8a4f17ca1fd530e3989f9db6125d837f0e31cd9523b6f2f2e4c5c6175ec5ef6219d045a7f871471e09ad0bc8fb7c06c83f7818edcff3d5503b8f018a724c3b58088f3fcf9b583ac896f59e5e1c25ddfd2cf42bb13c9da4a676357044e7f578d7fdb0b17ae08a313c05ef05fb5a880ebc24abcb98a685bb021561b48bd6a947798f4edb0c832197932fa6d3521d252221aa62e4b169a18987eb2e1e3f18508184cc7e94daa5c48565810dcc28d43124d4f3d1e88388869d56a0e6de84cd84c90db4313c3649b45dfb7e9bfb6b6f191b986ca4b22c297db2522f016c5cd95c8e41bbda96c8d860c2623a39b44de30700c5334c91b617201f23697fcc6e623aad4e4bebe7759e9382cbe180c927aa868c0d99a470513f8d470d7190caf154b12d3c401dd0ed4a272d2e2e4ca61d40296fd1a66441ac3326f56a3f884358dd7bc4106a8dba8b7250544ef492155ca749b9db95610d67aae0b5be1d2610d7f17e10170ea6e25c0d76c1c99999d8bce4d497d553a16179fe26a5a92c2b3f7bc7dec3b566d93cf8f7991b0c966f645c8027a9e5043df873ac484050e0409cab59232b471c2ccc537051c2acf8bd606107fa81ec7f13ccb7d87a280e802fbd74e86cc497d38f2eea9d4ddff2e2e5c1ce8c5d338fcd4b0018c668f4b2a7640fec77b8d8379e0d6a520674f0f9096f98ba23c8e3c8ada745df625473e4c6c99f4b4b34499887c044e316874c3736c6efac6631cd0c13a6a7dcb9c603ad9fea962571a402ff0aa0b11a9f5e64efc84b563bf13e321aa575ebee7ed0dfaecb6ba33338d7c8bb971a1c4953b0c27f2fb2e82ee6801c843db7ea8086da80ef36d1ccd3b2294caa13809c6f4c680c4172acfaa36abef5966a10948c4c067db09e946839381cbbfa573c5f578491832aaaecb69b26524eb6ee8d7b056e1e8055178c2bb6e3f6416eb0e1c8a75ecece4e85725069c796628541d624ff2d1742e989a09144147e2ab15d0321281c6107c0c4299f3d7e63312d0d2c717ef11e9d6d30d415aaecb68d4015e0cd6866c44f67bdd841d5809835dbb040dba8c33e25c51c99f41cd5bbc9557edc6ac7c9d374e2d95e9ff687bb1424bdd66aefd28ae3aeaf777256f7a02da6b7cd432035845b88174361fe4fa4d44d7b348ae6efe216ff2205e15fc3688d61cf13ff867f2c3d4b889241321a396aa5646627b710431cfaff29dc356c08b0be4b84800fdd5df44dd10e46f32d3bb3eba751cb78d0a3e078a8b87992697cc990a4244f076c4cdca7acacc23151232d96a796904fed6a7e48cf5365ccf5ec72d5c7b407ffaec704016762bdb6520efb177a4324dcc96be808fca422be8fe2d2e69309a6aa04c3bc6663468def83b90ca86b563a67eb77c4a80be3ef157a8ae7015e37afee386eb5f696fdcee9398f7801791020357b7fd77eaba802443e0b251d718c8667f6dd3fc5097a08174bc35a6bd6175699c941a5ebe01a197a25e9d99f875b77574e4467b15b099640997fcbed686a5cb5c68d2560815f99d4bf7a0b6752963d2f34b9e9af3db3bacd8220bef94b201a498912b1a0ba63b9d25f6dbca8f63717d400935174f4e7ed1e6c81dbf14cfe8a9ecbbf871d8cf268b89b59cfb28c7fa85def4eb145db7ec04a3f59a9f270d89c656bb69244481bf851cf67f736a1fa3c45a009c43ade04f3f9eaa690f06bc46648ecc843c218e8b3d69b0469d1b45f2fe79787740fff5a9779dd2d95c22a1c241bf28bb4c17664f35461a53cbcbb3882c6bdcd0c44d4a4575b8e02d0f84a509dcec9f6665eb3f34e27c89cb52d9e5df339de49903c07873c25f426ff6d9e8ae8b6de9349a471f7fb6f3cffdeb3bb3e1409298b02a5d5b58ca30f37bc5bac20ac4b4341e1ac29c6867c6b9730fc61ff3007b48a9c7590d39f685e252c5931d64c422f81baa2a7f16441c9ea2dda556010e9f68332901d9fbee767073a1499efb1c57c5a84b689dd19d20d4e310c507ad6694b5d4c1677726a6132f2aec58714899a28c9765bc3a5e7d7b209d5317e48945274a0b2452a11a688cee6b85853023432d4bee6721d55468e778eaca300034e1f140372dfd8c61962cbceb2fe870eca0948b32969b36b9bb9dfb93f606b4982cb347f97dbb8d52c5fbf883f706279d735edc42aa874b5eb61b22a7a0e471d7cc7bffb267212356e20c2040a6d5590c4a65169532ea57081d87aa5002a92acf93607850e50c49fe69bf170bc2388a00e85a7ada98a5bc4c0b407891eca3aecf1603e151825c0f22d9dee75000c56b9bcff440746f90487a401ec523d18a60283a7feec1b968bdb5db65e839a64cc3eba0a23b482dddf549dcaff3318772e825376c27bf504c0d63bc26a2cf2f72e4c01d662ab86617ff6cc93ddb41d909e73f0546ad8fc8d8b7e34093f94990173e6be39c31d0e954c17d80e636ab1f8b830f2b1bbc906112f2902f48eeaa50fc4fedaee2c8692ff014cc88a36ba3fe5ae0ef20add5e2d1a81d718f80cf8ea8201458e2e274a343c2f69b8323caf556cacd89accdb17e3046a733113f3ba6be13ccaef3e63ea07e0b929452c21de2e304c1a5ea5269e12c2685e8ebc801392863b73a48531c3a89d5625fc0bd3596be11f3a980c130d4d400d50d3ab7380ff5cfa3a1af5075d3353131743e307b8dff12b642d6f58ca48937f848a3692eb08362745f90b014d0972ce737160b225b1fa6844e9c993ee329ef73ab14e25862f03a5c0b4295ba500fabc501617908b2fcd42912b79c33d95324284e55d7bb528ae099a65aef8f5e013e399a40ba0c21fe21a66abaccdafd24b43610f52640f478c20fe5837dedc4f31a198ff0aa5d867dfc56d5b3df8887c4d6f319f31b666567267acfc4cb8268f7a23caa12ba7644f380bddb89a710202f14f71bb76c9e73c3e91191302537fae3cef05581370ebc580293d0f24c8827cdd01c9f741fa44f3430562595721b212fd5bf4ca41105461e850067b8971669abab86a6f2e2bf3a56b5e0c09b2b97a74d113d550ad5a6c0676240ab5bf4558eaed38c15c32417611f7e99bdf5655e5b89d9795c174647d6d093daef0a8fe3909185a6e8880a5bd6bd42af395a6523f45e3ba3747460bf0f4dba9f656d4be9c74d58e9929d0c4906c1d5786f1cbb397b0df248864606d0174366860e89c89c9033d548e11ca8f0b47e1db5dd9a69fcff4d2d124acbf6c87ff55ef8bcf7fc6594914c2aa3c9bfc2aa6a0d5e81803df3a816791d3e12032c5d205a6b76eb9c25f5fb8019e22d68369fef2969fba9461d0d060862880fca84fce486a0ab2172d1fe047d0f65fdda16bc6a4277624c7b7ea65e7a87cdc85fd013f890bae70779a550db10002930b58bc683ec11e602799984d03443463052502df29cfb9e691031368e5f6f885adad99004c521c39155e7d8c187955a69a57d542ffedec919644223b9a2c8000ad29d133eeffa41a7287411783ba6e38908e84242d1339fb8c9b01daabaf75da7b59acbb349c54d737359338c24fcd8df00ad13e1fe11c37a12f6b966fa20f2a684fed6e8336afc43caeb686fdd3035ef8cc78aad96cce264d866daefeba4aa7031edbdeca8a73d4eddca6ca0fb7c03f581d8befa8bc35c4c70c14b5cac1a89eb1615ed9ad8bbd9572cdc57aaebef478f407cd3c4e4eb70243939f379a143f0dc0b52d62c5dff84782341dabb67f493df7da2d772092ce0e48ce4ea1622515c0a93a0af51463a3692ce72e9522e7e7d496a94b133f6e78f6f0d4b69f52f9d29040160c2369a3df6cfa5f5519adb48e65e6cb07ebdfb96d04d6a3ab89c6aabf1988f2fedcca63d77b1b3bb4dbb2faf857655a2b81f5c12d58449bb88acee60f7bfa7bcefc6919ee76bebdb8de72a29493c6b71b65e7c6d884baff2895646e840bcae202e0616fc396594b2abd6ae6880a96049fa8da7cda40b778a05c6e98580e745d4d2583c6055c62efcae52cd70c50f8a8b099148d64709d9143db2dce80c8a1a324dfddae14b7e3d8877ab9d70d33bdcf65325615b914d03c7023d10d398fe67471cd1f6f739173d739b5141f269763e8e1f0aa2445ea2f4b06806867e3a9620f4b70fa840b2344e3f5f38f3ae3057a255b090a408bbfd3f83f25a8813621b4bac305ad1b3fbd7095edcefc885cb2fcfe2e2455e0ddce2b5d1af48016bcd5e73ec5c47e96cbf530addfd9cbbc19e9eeae061ab4f2e9a4bffd4d12ca729f774e68fde66d0c7c5b508b18f3ea5f492673b40b600955115e5d3ad758ebf7cb39328ada5398c8ab1e24b60242114b474c12542c163f609544e0dc0edbb69b5b5a6bf797feeac998573b594747093073b4b71470e9785a9119ac905208666855daba8a5a49754186d431c17ea073125714253f5c3ccbffc49299663d2afdfbbbfea3205dff5517af9960e070616fc91d7146656847f4012fd7575370412e06ec7436192db89765087da2cde5248f7f599bdbd98223b885770436adea8232cf4a34dcdbf6b57afad3870642063784361aed6132a5f0eca22a07dfb2f2f7f7ae4477c74fe2909ad80208151d4c7bf340544406ca788af8e6c24fd1018e026f939b650e627f4116b7677b3fdf02f0f9c59673ac420b7d7dd0832e431e8ac8b97d054adb86425c6181b9be2e3058f1004012a3c6fc922b395724e0b3f314c77d041b6d592e1190add4652ae659fc9da402ef5bcca0435ba1614995a04ae5109ed095ef2f55deb9eb8333871dc852ff98aef3379e983294a34dd0feb354f3f8321fdf3d6df8561f3c15b504c79032d7acbb7b6f08934b0a056ae9284e25c12baa43eef6be979ea245448b9b71e6363543f6bdbfe3055500467d02af7135337998227760b3b81b01548077851ba59f35dffd626309a604d7973f8192fae0f8d0ecb568c28a64546f4d6a3eb513cbc18ba7c46b176cef233a69dd4d3e82e78433e289bb43d0a8da2388595a78bcfa07ba191468662da0c41d48762d817bed9599444190228b1649a348d87dac5cf882197f07fdb3733d857d5da1ec88e0fb4e145b119e615a414fdf3926e632b02f0a13188ebbc21a8ce50f93e4592844fddfa70f45f1443644ce7a80b47d8b932dec2b5ceb46ae1518ab5f873e10f23643bea2bbb8f937e43c05c522abcec1f9252fc81f37cb937eb155fdd09e11f2b7016d73555de9f662c9cd3d5f64c515576d61c4eaddc362ddeaa3bab5693110d8cfd53e9bba6215b692e8b433ed420acefef9484d1d1290249a272267f84e65ce2931b93b68773c81be5956c78b7fc3b7f748798a8a63a53f5cea9c0917600d7bf07e03ed94f6b9d47bd535a2323ddf931af8df828ce8e6d40e22f847884b40bde78e8fd7810b3b667a3c2b9d0fca30074e1bbb62df5a890856f53cf97e93bb1037994cb9042ccc317128123dffd20a541bd1893a125432a518500c6b22d0c69deb669eab075778289888bebc150601a231737d520af4bc0a01c8f03612fa5c46750ae18406a321232d4e386118854b7ee156b0bb7cd77ca900915825dd84444227287b64951c6dc9f02810d402283639a21d445c765e799dc78129858849208bbbcec016d7f4db7da753df27828f45288e95c975d6425b324e28218b0c41c3b0ccdf28a408006ca99b7044db7b07fc5fe229946fd17e06b651ee72c0d50e51ad5a08978df58359f21976efa68339682b82e3da806e831a05cd4d5644445bf5f74a49bced7f56dc02f3aa8e2365afe76272f9c8b009bfd2a9871577a82ffe3b64e40fd0f51c4cfa85fcb2ae5c9f25c7c65ef1df84d173013b85bd797c5cf9535353de230256f6c8e990abdf35e5adaaad13504da049de1ee692cb05310943c75b298453d14ab2b8470958b11f9ca1e7a903da1589caaba6b4be4708d7676071d3d8e6133f2907c38c4b5e58fa60643a44c66338c200c13d2adc4020641ad0be96395ae241ba54969c39930e2c7ef6818d93322a6c69505a4e03616791bb447fff098916d1d6d118b43d5780e17a576b14cbec4ea7da4068110e92081e56afd43c67ed18c7ebdadcc0c402d9268bb836bf6f1a4e06f9e3a3421cb2563bec19092558d9bfc97a9060bcc06240081a7f0025a5356878c3fc24f91058552cf2515529440f15c19ac5325b2445db3047173845374b2d360816d46711a8e5aed162e24a76ea056b723e57896c15a18f64962ee7132b3765ea2844910c38099964e08fcf9f17c028c23e843e12899861772de77ecc28c9596293aa352d04ed307d0149fc53ddbc385b68132e1a5c4da1bc6b932f176c7797bb5e6fa26a73ae2a5f8af2498af4bc2ea2e9bfb7871d9143215165674fd137f415d60fc0f86b0ce345873b6121f136a111fc8b47e30bd9d9c930a19bf2597e8be36c4dd8d3777662dad6daa8573afab1b6b26704bb01cb2a8a6319df222d47816df5e2133bf92bf0c08403595093084eb31873462172cb116fca7d68252830ef4f273a9c316f5d8109f419d69533e8bebc9ff5ce29759e7e362129a1e6fe03b8f875dba2ffc9811cc1d9f38b926ff06d9cde64256ce46dbed220560071ec58682c37924dadcf515d62072da217f15288b09f14ce8887c64fea71e6c97af324bd83197fab8c901ba25d055ba9d87fe3886a3f6a489d505e63596f25c3d7ae69e3e8ea9264afeb5f0f987d29d0ed59e08acf5aade3d1a8b5d3acb8301302b259061aaf2bca6d23ec82eb75a946521c3daffacdcf82cecce5cda794f0cf9879994b2e06ce4ce181e1c3a25a5d35683b32cc9702c7583f392e9ec023ca2bdceb7def0be334206a0d5db9fed8cb14730b1315688e508056271313a26275d335696acdec9131042b4db135b489a3411959ac66c4213c1349191fb2acfca0ceab6cb042e20e16be8c1d64f06c6bb960e991ad6a13c6940ed076998970ee4d216ebc920450aca3cbb794629d432d6c85d27cded2536c43e2a939c4c234f80c7f4f2a4e346d09b83d1cf71cac49493614a882238396cb040415aa723874e0879c45e449b6c5583276edbb7c1d04ef780aa286929f828fcc3e582b0b3e5e86000fea54d193b8f6cab9a3a1e60becbdc9abde4e1a1acfd6efc03c18467354c4af34fc93f9f8fa4fd72377d2baf4ed4f4d94dc7c7e89cd01b11c8eaf3bf96e222e54dc6694321118348fea18058fe893e8d6ff15aac9dbd00688a010939df55850fc12d152eadbcfcf743d244fff31f8521d109c9a23f1d2b8a9c647e498e9a221b1c73479c1059c8f95fadcc684126553b7bab5658117242b2bd96a9f4d7ce0e51d4903c754946b888269c92a504707b2250f671b81ec7b7317b7c50a0d95894d578bfd73a6606ec6bb1b822e1181eaa8f401da860f208c91c9c0162a484f704534a20465e594db1c2b633649ebe363dda8eab60f92f9aee4cc5bdba0ba77530c67497afa8a3008b835d84020ef884c2c19050d3e8dd2e5389c6face10d114178cb5e311ad387cd6b7cd5cbffe9fb0bd3cef2caa2239827059deaaa3c2bd3c8955262ee56a4c13ff8a7f9851359bd72bfec36c726bf4cffb40d3efc9ef3a8fe0a0ffd7757185ab4be4ba8665192c26410aeb85802b5837a17dfdf56155c2e4de8287937dff6a118a1fe878248c1f45311c3467fdfbae9674d9ac69e63fe3918d1ea42691aa03a98054704f0452aaf8a3ab30e9ce891b9e5d085f19143054e2fa6ad6cdd0f159d9338dccbbb8142434600f225bac56247407035e0841cfc28101c232d485a0795e6a60c52ed459076a17a830467cae3762056921a2f467237f9e6625e228b1bc17eaacd4e9b41f2ff4e30e5051bd688420a7931a68728921ccc6629fe19d9d31642e3163c107ae10c248e6eea31a9aa382b0c8092b1cac42fc0fce9af12fcea5b4556b0d9fe8b7dbd72d5835773b0c9f978cbe670f8a23af9e474b237b65841ab52cd87aac62eb7a6348bc5532b89cebb1f3d86d4dcb9baba742d600195dde0f7bf30f775c82bb95105b2ddcbd2bf70c7404297d7307269e4f6e55299d633068295d522c6ca3bc4baec58ab0f488bbafc0091cc974488509d32609c347a25906304fabb6b6e7c0ed1f94854539786f64be7f14ab5221a5242f13ca725275bb0062dea00f9b26fdbfbacdb333053ab32398b5aefd5dccad8df90be72698dd33aab3587c9458bb7ed923244b5207d0eea60933fa321e85207b7665bcc1c56b67be6b02acceb81ffa7606dd5e605fe2155ee03b870c7890f62c2f1496302a4640d1d54200cca6dc6ae28d10efba2ae7c5624dd4be1765363ed2add702dff23e9c20dfe2f908536faa01e0d7afb20f06af8d80988f3e5aff983cdd264589fad295d460df21404a997896986a3a88bd4c9f5f39db19c4d7f3fb8be1d5eec8f737c6baa06e86bf15bc000a8a2b7e153d7eed6f464325deac3a2ecc41c505a22c4826af28b939d3ca4f88e6ae28ef5cc259ec16cc098e77d5e6b6eda848c69cd596bee29a205b298997fc9b4cb32eeae77513980d6443bcdda3e47ad739c5cab3bfe672f48a038fb2af3ca80a4253f957751b36a101ddd214ca129215239b0f92d14de375d04452243b21f38fdf63d82bb6310f8e8e309c7390555cd868f8a9bb25bc749d7659c0afdaef93f0bef73584d0fc40c0b09d7919b3c8e7af834cc96998d0ac149c03b78e8a28368d3da2660c3b9af1ac00f3853e65c51a7607db79421730dcebba534725ed7777d24436ec5e81e7eadaee4c766286832086e164e63a85fa5f4cea11bc4e5f3b2b96198c919f6e499e2e8bc0628364dfa03b715d876ebffad8a356be87da784574e1d1d73ce594fb0ea4a58767ae6106e317ce28262d8a0053d795d356ff32a3be182999abe10520f8d29c19f415f32d6e33aa5a962ed4fb08b11f540b2d4a9c20992214aa48e8714a250e396e5719c4c9b0f2724d42977ed49ca47f121b64006d32878f6a136cb5098519401d407b68f8ee84aecba8ed61d1e7ab35edb16061441ded8a3b8637afaf121e700009f639929888a853a2ffd7105093d18c34e346ac6ac321751019ec6c109e59c5dd60b81895721d51ed1a37bcfc6596901639a4fcb6c1dc3bab37e4733e2057c640af13f0109cf84551d8be69f111d667feaa2842e1f14ffa190657d04a401c1930172c7980a5c9d7060bfcf6c4c04686d02a3e3be07be9e9b678b5c0646d5e2eba8037988c849c126db636c8225dbf2be5263ebc097502ea19a78a99feb143471e0f577c1bf5853d0a267f3012d72aea92215db6d2854f08e8657b34763e597ad57557d6360cedfee11c6075dbb213f287d25fb71855538a27bfb210ef536942e7a7cce48c0a452a0c83433dc27534c7c65a0ea6e474ee502469e4313811b8a036c25b7781d0ee02d3d615b1b4f8af1a71b164d77fecd8d354696040eee515e43160f70b230f60780dc1f7e8a69a92bf0703401952c2e67a8198701c7e76045874387abea4f6bc8a5ba2e6beb316991632c861c46105b102bd3cef29ceddab76bcc6b19c56019e651d36da4d75b3fcb4f7f0a45f93efb2f73c33106ffb0a5cc10d474141e9b402d58daae07395a2dccc68996a5930f004596d1069af6c35e589d14da52851bd2b0349c7e67d07531c220ef32a6edd4e81f916366339a97373ab93ba5e4bb459c5885ee89c2b1335412787ae7c553e8423ac5d61d7798cae22f1357430238f7b0828c30805bc40b8c792dd3a66f0684308976886963b3c76c63db50272ea5896f17ae5b958d426ff19863414c68bb6d00774b6eb70640b419a7467c8ff462a5dc32f7a305dc3d1ffdc88082dd7f1b712067d13ef475a8aea2fc0d32c02401e4317194a83c6518d3ca0cafad828441aaf486f82925d3e95c6c96ee7c45b7c942cfff583482940b2f9a636028e6113fa05db5942150cb16cb90fa2ad60db53465f8ce388e4ea7a00a0884c6aaeebb992ff7f9ddb1f410d299d65005f26f5b71a707a4cf59a85d3907ba4157540540c7445a5cef6997fed97cef2d4a9c6d69e3000157db072ef78776767b50d059dcb866ebea4bd421bb7809985fc5a4c5fa9fb6ae39bed6ac701491e2742f8ad6a84a11006855ff18f010d57256c6dba695f2ddb181fd6267d0bbfc60ec37f2b6d1d3df6463d495ec5f97e3b8cba41e1618d9ae3092c5c76d312aa3ca12efd1f1df9b878e7d7487e0701666192a3874590288a60c2d614fa92867d8fbc7a3b0e9cf5fa2ff304741530f2cc962125e39fa33e479cae6c5b37d1048d16f24e2471593d048adc5407662208913cf0d785d309108d895b306ef21c2f9696465fe0792bd127d6c01b777301c74940d21eaaec82ec4fc0a07e09b12467a3c40c68facd28c3e65b2bfe81d4c4d46e2637c9f37d8921913b0cb2fe63f0f1f0735aff0e0db28e05531da7340fda0ed2880f682a9ce50be67486a760bd9660e6358e6c1f4c0fd79ac1cb3ddbe77ea6ac8d65806dbb9c79e6b6b345b6bd7c8c4caac1d63a0524ffe791d410e1937f95343a5c59f53cc11588609c92828ab1391f0d44d7fd931b557fd41b4d29704e9527df4a847e87844beb8c8744c57ab9717656bca7fb7b801e1ed71aa58056aa0a34934b7fa67b5f8560f6323d8c12b45cf8d38e214686b32ed953171b6f592889a494a753a5836b3dce4703203355a7284ebc02aae33e36c3ebdbd01629fde271b1b2ea78bc1b52cbef44859a76245f4d5b0e54b079265b78f63ca3bba43a46e20d76ccbf80b97aa9f3de0e4c151af90b7a8913d994e99100b4b6e627e27ec3337e02d7b8deb7990d4b3d3b9f45e8d20f16cac6e23bd0bc6d3520506501b1f960101931fda5c8e13eac305ea07cd57159feccd3928fe776d7ca113553b94eeb1b4da8dee76b1bb801ea5792e63e58a75b0426c616f5302b18e9f73452954f7679aa3848a7aacecd6e37b564196a8fbce68dc7d0a8484d93206c258266ca2e0b7903560f102af128f604c3ce7d20ee20fdeefc9d13653f028d424f1f23614fa8d886cdda0b0f4b14befbc54726ed8bab17f4261251700c1f55ef5af2c20e599be07d53bf729e008d2a0a8c9ac64ee6223893ff900ffde4ceffbac8a1ba7dfbd50a8aaa3e09557241fb4818b63d2520eea915e238989fbc9b9791bb311aad5b0279726ddd2233173a32284913d79a1fc82fed99ac695cdb017984198b7eea8b691161e33f283afaaaf15b8fd2641200daa8bb522f0c4fd1bd58dfb37749ae30040fbf09afb6a0e0ee66bc4ce5ab35f944bc914ae46ff39ac80807b0bbdbbe06db230c87b39121f6b13389109017d6b15129ae1cc84f11962f80e941878c184d42f3224af59b7f45d2b41ba846af28ac032b8c296478813206dc7d2f1a10086def993bb94741ba1ad4382d1bf2e8791d9d52c628ea4787fc663b16aaf183045b38979a953f60201d452a87170d357bf673ad7033755b8ad1b67c3ee2ac4ee35f5481ceca264b79802269820af30a031d17eec6b567e020af2916bdc075339d7d3684b33b32c8680367be601ee7744e343ca74151d1e57503ed509f6526bf53b342fe8fe13be3f612d6c5f59239f493d0e6dc9b8ae997ad10fe2726dc27c6b233250670dae38ba804d5f80ddd1f45a3749701b22c5b770c79ceb6ddee059c7a17bb0531a2ddd4dded283fcd9d8cc430876f7ee57679306bad4093919ad5c9958493bcaec7240575fd376392236897866f1c89a11efb64bf32ae106bd7822553ff54cfcb5edfbb90bec0ed3d323bd8f585e4cca7dd69c11048b5877a20fdad3fb7191afbfeb35585aa97418e93bccc1956a50fd5808497058a992261672b6cfca241cbe6a46e69d8dfc9d8b9b8b326d768ef30854ac8a44dc211420e3ab576af8e3ec957dfe2cf41f50fb6296c0959674aa1d93caa9bbaaaf16fc652d92e2a7e81b0cb7c2a36950400da508f9d9da603ca41297c95a8087eb4079691c720fefaf5ce639f7a103a65ea4a09b2907bf964c65c8e665291f0176a5319655faae8e3bd2954409cdfc6dc86ae46f779edd2727ddd4a362118503e75f27c846e903330a695696a6c6782455df99898d55a0a511e9fac62740f1be7c35c1cf404ad77474a177021b175dcc2228be24b52552c465439799084d8f2320e201f1614b5c488553bdeb7e130f6a62dba830e88570e171dc703ddac3fc697951a56550f6cf8b62e546cd35eb1d87346531ceb3e46179e93eba26dafbd38d1436cfd8c455407d45b6c2b5bc7658b0959c23d5ea8bebade5e1639be474dbcd95b032ece4d10d4303c0e9c3c8a167f65a59745028581cc5758a3937fb34662cfef81eb56dcd886525b1fdafb58a876e3e1d2ffe21eee4a9bf1ea76b1be0c6f2ff3ba93aaecd844e92014a4244b162b1fb2166d1ca57416ab08c6bf964847429631e40fa51b7d9d0c5c376d8a8ce635e7c5e866f4533abb73ca6f27a9054a5217a985164fbe9929d9934d2e5e9300c94145551b4a6dd8668311589dab5cab0eca51b505dae44fbcf9d4b946d8eb3fd78cfbc662e884361f793c81fd762ed7fe3ea3350be0a5dcc6001ce85899caf70b5cb57b8a06a411f02937dde8501b1af1f9517acd4567386b30aa662e9e77cbff7a7887a80e8bdb2cb064657cc8eafce00edd696df59ed5d0a2081c54db05e8a6fff782478b8e784b8812ec7e8a0b04caafb1d4d9306623a0d60f6680b90f5b752f6e2dae87f4188d3f06572e9bdbb47835fba9d99f57ffa49cab7108dba903f5ad6cf30627565d04acc88d43102af5fb73057d80fb0588faef78f7bcf8af83b43bbdd812dd3aaa0f0d7f10ff816941eb4f520cd04cada8811632e55e5618c3e4f4fde49c419171ebb7332c1cb782d51aea7436cfdcc845ca841043d73d5cd3bc397e0c554224534447c141e090e76e01cc774c073f29a0691ebb39d332eb3b368d1f7da41012cc84abbc711650d0d5a3980fb7353ae69a54bd4d43e73365be90b5d51b7a1b8ef062fe81cda6734c85a84dfe8cb7c095f553a130e319458fc16fdbb6be2bfba257a7938f083eb4de67b4016720944cc04e4277cc9f28c0d298c939c80799a3c378e52802587a0089c38f5ce9e6df47825e7be470172659bc38da7f673256358cb6209e3d7ac891df57eed91bdaf4716a6640f4ceaddbc233ba01538daef030063108f139f5c80c64344b8395093efc9de7e0ec57c114302ec9d3f81e77c92bf9009fb240c68ae849882a877626e10437c8813ad1dbe3f7bbd9c8af15958e14f76e107ebbf6d1537fc7956687cddc3f4337a5ba5ea630aba562fdf03b1f3f1f8718c90eabcf7068166ed1b38a3969520d503856e6a93921f85ff2afb43ac7ac4252319dad68aab80aa5898d7194905b1805915f1a3ead8e0ad18df5e09b06580424b49b261f77ed5d3c92fc0d3bb09e4116df4d5ddbd73f5647a708721e05291c0ac684e825dd0f6ad1d87c8cbe88ac5017beeae88620a5683b4d83a76e013957045e69cc28143da6fdc0b09b1a7e3794fb132af15a1dd8a565f1359015c2fd50d00d55fcb4050eac5d86cd09b966658373ed6f3bbe83d8ac33ba3988c2560893caf6a7d652bc34cb4001ba8bc53d7d5c243515c6e7e10e776a80d53fc4415ea1d7080e0249639790b85d06837c7ef3e7b04fff283064e4f7ce25a617731f112648314e95eb2a91f6999065f9c30da42c91ca1e5d476865ad7389708fe704ab50fdfca6c4e98d85eff937c7fb1e7b94dcbc3da0d4eb55aa8f7f355f64196ab9a411667478784e34a9c21b5ab7d4421b3acddb3093de5fe4e2233294dd11d52f7c9b7547b1bedb9c3ab977906c8ee9ba8c72017e4d6abbd992a6b2dc1e6fbb38c5fef22e2137d9f9b2d2b52587de922101cae584dbb82741714837dc470c4f39ba808006d1e77aa0ddaf81084ad0aa812e544a863768515f977c4bbc321376da87f6e47f5937a4884ee57450b1335918a57a8a10b430526c0c7f68c729ba1310a1ee4ef9c3728b8af5ce6caa25694353ed3e5bed88f943f3dc705192807fa8050160117bf51ae8dec551a38d7805162ea10e9df85082a90ded7848f4badcc5174486c817008d62ffa6cea70c14bb1d91c1733c9fd2571584eef399fd05d17d0da39ed139017c65901c84a14cb4652cddeff97a4f3865c6f61539cffc3bbf5d9277b2e57674a519cea1cd30b83fe4c672fd99e7b0b9394bd5575dce6e7bd9181e005f7fbda5851db0472de01829a4c444e2a7ebf922a6bc060869b9460f6238eddbbb3522b0a41cdfbdcdae45ea352f5d5e7b6c5c864930b8e9ff2c87073effa8d7265d244bf027f1eba4c68b3e2bc7da6e0fe43b79efac1ed96ca48464b0d7409346b94a0c682cff5153e84308f50d79fed82d79a5cc61e13dcce5dd6248cdef29f2bd7b41baff22a4370f3c236826e2c6e8880dbbfa8eee2f57654ca4fe0d02a96537ef57310eebdd6aab5c718eea39bdb1c2395937314b27bbbfe7b3de11452953b8d64bb2a218c84f08b50e2f84b4c7dd107b0311005b4a30c30026d99281c7708afb262adb82696377e78fedc2ea787785989c2c84ab9c009444d1cfebf717447b3ef206639f9f58058c8ecfc89e92f78a92b991d023e494a9753503c40639b180bcb0adbfabf08ce29ab4f2f8dbf7e8f6b17ae375dc84142094e06a945eb20764b64216ba74ecf82c4f2a4dddeaeebd7789b7a67229724ed8004a08a1e8138cab0abbad6c0a60a373f6cda3a14510b668abdb6052aa0a073652adde14c7b5bd09752651b185e5cd67784308b3d5eda2ac3b2bb79e2dec97125cbf31006422ab2014c2aa157559d3489fc1c7359876f9e27e88c1fcdf294dcb1c699bfb751516b15dd4dd179bee4e85aae1f87dd201e4c1d9bc945000eb8c6fe5d11a37d0d1cc39e3df2504d73f9561161bbe2319d538ff2010982a5334b6e86cf8ae1ac619f9589c83d44f89b274c97ad046132d7b9af5604632878c6c10dc6036da04936a6b969bce6306fa5b4791ef3782db02c6812dc8327c94d6717e4be4957ed90b1c98bf38b465100886b64975b0fc8f1682d657e34063688234ac97423ee996f4a5f0a82be566bca5dfb153af0b5432d7f3c80180529b6a3f37b6d7122c5d208ab267994603989404922fa02beac7a0f15c639e81703bfac89551242d4f7313363e1b64a042f43a9abded62e0a71303add488e154bd6bdc46f8427f8be43cef96a3ecaec511ca5a3ab20bcc2962a9dc2c1a24f2551313ca1766eb4a86db54f1a75c3ae6328011c9c0bb61c04f7ccaaafde2c048459e8ef0d7474e2ec8c3a6388119e15be4d034258506afffff35e407e4c6cbe04494a1564515e4c6117abfeea9f86a1aeafeed16e37955c03011a549fba217d588294c81a6acaf027921bc71a121f2009344d85cb7d914923c05321f8d9c112973ee7f1333abac664598a93a77e77664a1978222df6d588b59663cb6097a0aac0753cbdc95c96fcc1fc39765483a2c10fe7448aa8efaa72d651f6ea252659c1305723868ada43dbebab4aef9777835f9aee2f2725ecb5efe4da81ff87da3ccd2d52429538c8242013b364eb1b6f40af515b26badea6d56b02fcca823ad4d2e25faee10b27351e626f0786f93e0c027c3fd35123e46a083d9734af68e878b25851b400e0c169fdbeb7e344b39422eb6f90a7876f99b956f7cf9da429adbe42cdf565b7d90576d69fa87419ab622972c019953d253641fc8b18dfa112994628f81dc7e618041036dc85958054247e8600cd142686462349dfa732607932476c6003b679c864c240e5919c094207772b78493cd63c298bf5b5f17929a0ef46a667c253b84add6a19eb9637a1c56f4573ec492e17b89294e1773262a488bea6b219dafc6f58be0829206158ab7773a80376301bc5470a827b4be99850b17ffcbfd7b0d1f14268db21574331be695c6f8edf85d15de96b43467a5a10a5bd863dbd440bcf29c7d2d0d739914110d22acce70870dea094654c3ae40b5402551db972d0987650a6044448402572ebcc0f76a4f6413ee3c2fcbafa8447edea18ffe2cfdd6807f9869c0b6b60dc41b769f19b6989ea9cf8dd08ce18b39ed7336fdfed37c86d467e774cd8a62816026c99eca658538026d43db3abdfce63051f01df35d7fa00d70fc959e30298392381bccecc40a5bde7425eff77628b2cf4913c197b4be45e23e2e01eed6f902e91a87e9a7280b881be61003ebbc6d95651dad81aec28d026d5420b878bc230e31fe966065fc0cd4ddab0fd981805c47faeb25c61002697dcdd935297c838bdc707ea02fcbcf233c6cce6ac88549a310a4679e7e522f8a56a0f6fdae210a5fe507281dc1cee3f6e382ae5da5fabe2a59ecfca0b8c2c2b129a447445137298297816d878392dcb1a10ba7084c0771985a764f35db5ae7d539d19843a682926703ce5b378d80079cf61378faf22293752d474e774af0d8cbf8734693431821a5a1cc6bb91b47d21dd60a1acfd528a27a597cab6803f6bd414d01d32655404bfe09f63c6803d59d8cce81bead1ee57124ea89fab451e615d39d4a8bd9cccf28514cc07864513cc3476f75f3831ea26b03783c1873f798b89d054ec3bd0251a37c4b18823f09044c3c02fbc1fd40f9be51fe5c591ec70e3e172f3caa51602ef7736df449a093ce90a7e56a5573c77ed1e2b534f64c497e9e021bb0b6dac98fcc887ec2fe72756ebd04cd6d68f0213c325ac9361b12a77a008099502e7d630a352a8f0ee5c8f52a983213e030dfb25536b3730c66bc20e57cdbcd4c8334ea8261b460805afda55a1f7e2bf14fb41c6dd003efa8008e24b431fefab05a42af30c8029d70f8683bb33e085affd96ba6172b8f98454ca8d93ec9c00b246df3094cc0cab0014afcd9235ae340a19920e36062869a55649493f66b8ec65e84cbe27cb08f3add937071c53be5cec1a51c5d8da8877f794a8451c5a59cea58e8185d9ab56a40b590a48514201ed1891e89caf34ad315bc92beee9e2c5a1352db3c0ebed7e6dcb36d9db5bc587ad74f3f8e877618616731e1f99dc36dcf73ea0757e33dbffbba3506f49187d9c5a8b44cc5dbf0ef5262704432f1e22e705cbd441339ac63c77cb59b47a9b8b5519094257586bf0dd5521142ef04a5197dc4e8189c89f9aa6398187f8e0aa06c8ee4325006633b7bc5e50065716f26beb97196e59f8d2b7f7f7854d5991423a471eadf34c8922572fd669b5b8011aff1009e64dcce25a239d679d2a513d0fbb59b6615fdb7a179e337d613342bcbb3788b25026d0707005a7be1385c49bf5484e1f9f3744f0471a117df4ed841f416d14ee57480046e277da9832971d4f8a819a314769ccc4b950293722e3529f0e7c43bbe0d895b991a4bee6cc6b499599626d35618f05bac94328c1ace53ec1f5ef950433e9b08cf333bfccb7eaa716a09c1f309513c068a5494ffb9bf13095bffe91207b1f7cda910bbe414bf540f952b56b0fb3def0e4d332d46bba908017a9524bf34aefec0c8a5cae0de692d0f517fa97952d996c89a9c08eaf174f4741e4a4295c126222770f021382682d7c8c8742fc64987b9a5ad46b6e5d863fddaf1428f88aac6fa494e52f7ae7b7dd429ff3828d2c2faf8071d27a72af1e90b138d2c2876ed5e605d3e67050243cc87aa8dc2e59c2503eccea77681e21ba2ef1722a1a6eaeace5aa3980f5a4926589ed7b796b1aecfc94b6e76c9aa478797dad3c1e6cab8836e2b5393432b95321b26501361253b15b91ea48ab67415d3e177585213a417bdb425d6e18ce75b16754bf9f308392553624cbed056f80b230a490349cc303d9e6862b1c56e11e47af9fcd1fb947d4847b81bd6c9c3d666d3bbe55d56c50304808ffebcbab83e1bb778da7a6da8420cfbde0586b6945b87d8ee541d0624b92b0d5154674e8aa14d3bf9d2d07cc3dd84bb2cd9df7b723ddb21b85cf5bc22c414e45284943755947778da3da127e665720b3089785a6370f391b0737fcc434417535ee6a3fc91c762e6aa131c213c6d6b03ff7057fa988db6887f98d5d17f69011e472baa5f3db0117e4b55a0561a9b77578a4fca408fd2628a042f68f59b06d16769d492114f641260a18c1cd7265a3caa45187dd5fe033096765cf31a07ad8de74490fb6e2b0cbe2f323c46906aa2890ad96c7691dba61a925d61be0f43da6f84aefc37f27f7c83d3777cd9b10a4c023a21223eb0674a18ee55e8c59d27fa4f2c8dc7a334067f87f741d5eee35f0650534ac6710b2d0d7e7f593e31cabfc9c8da2fdf9a89fb13078cacce4a6505d277d3a62073e0b32a8216958a3ef6212421ff033128f4a47813a60326f61f17e60b62daccd06d3af6136987236a6d2fa4d0daf407ad459584ac8dd4e88cfd90f8211ac6ab0d41c7e08fd9d3008bb46d65e063d3cee3c7b22e6eaefe2d54c7f2494e0fa679eb3cea3b580d71c3cbeff855905e19e9510728fbd63c8eb46fc8e2ddc5d7b686dca2401c79669c2f76bb2565d3b41d9f1d19223e2559b2fe5e865ca506f3bcb49b02fa6997fbb817043077b92b3e97cd76c463c877624da9b35956bc5b467ba49775279c85af7742fcd1b565de3cbf4335f8c9ef4221d2985bf67c5f771d1eb05f7c42d299d8d643d5bff95c060bacda1f27455ccf3ca2891b65412e92070f1599c118a0184afcb28f2361ef8a7ed8e0dbca4e0bdc66e8097988a252ddcde19aec599fe2eb6d5ec17363bc296308322ed3cd7b20081d34e26ab6e4d195cd8e06c7d108c3ae13bf658abf9cfb011f9cdcbaf590030fec716a0881406fdf4c2ef8536fcf992255e362256516add1bb5ba2cc08ddd61b899bb7a95c97bcedf20ae20093b5d6792836074c997b3189f7f0e062c67ad93b7a08db13a8addf4191e62e0cf7aeedbc630e1500115c8d00902945613f3dfc53fb466bc928a7f1a5409e15b70be30930bb142b6f88788a72d50f39708cc006186b3d69dceb0cd30bbd4cfaa8bdf67c5dc94a114c89e34b33d5b7a0fcba515be70fe5fdaf8160e10e294732ace085f60ea2d312c3d7dd547897d753ff2c44cecfef9c36ae48bf35cb50412dc17397fe90813d087493f78938df117fbb782fb0d8f8e5ffb0512009e2e02e2fec0c5351c6ba1ac05596f38973757f4de7cccece696ab970aae61b7aa6e108cc750d4aa7ec176f91f9e8e1a471734053099a5ff75cabf55b89a63a1de02d43a5716e2c7668af5b1e7a590b6dad36f45638aa215b4e741945820b71cba5b983b54363e8e29f2c66ee3115fb29868d6d8cf936c51d28829fb1a382e01dbe6cb2ec6e98cbd6e20534a442a570ca79097c44d7742a5916f758c599c501277d17ec817dd44cae2b44cd52217c835aa4fc737c30074b18db5a66060bad841c233e72060d83024c182241bb6f378fd3cb4df63e2bde9f2942e4073c0a934c2ea48e194551cf2ccf04f91b6b69a1e4a8bc839e599619a4168134d7f7f8906e994626a368c297c3ead7910f65fffe8a4992497bbf900149f7bbcdbebb69ba5e1007a25cde1f996a1f5e55e10c122f69303bd9dd28e8dfa5492cd79c873389d2f449cd666390e5b543c9600695039dcc43a58521a77af816350b4bed9e9382b0141f2e877e814bcc01085bce4f2602407918ba32fb067f33f1bc5c3b54bccc15145d0ea8b7757fb82bd351e4ee95bca169740e09462b12de3e392a3f0d9bf88dc7b0c0d86989032e01482f4c95521be369a8a3d7a2baf2028b4570259fb23d9de98d6a8717445ca8ce5bfd25b4bb8669b4a035316a7cf537a1965834470e0c3aa6c6eb5e2b23f04c3d14c8f7a99be19a5d4fc9c8ebdba5fd4c69c51ecf2398909466251e6dc4f74a982ecc6b4c530a5eaf696fa6f74c7720e08e397d9d683216e4e713f83fd118009722a5665e584c913df2b30b74630cd7ce05508627938b5f749c966caa108e555c41de37749eebc83d7986769453a46deeed45834957b2644651a4f779a043301ed82533d2eaca4d30f9eabbc8209c79a700fc0f4ca998412fbe6a820217a4c24171c5150e199201d0af06cd089ebcd51fede7ee9f07097b57b88c3f84216e9748caecd890fd3bf14779cfef5e476e9b8db2e53b7fbcc5a56e09d171eb3a1158c94c079052d2387f48a131989f4fc42caf410032e92ad7a0654fbbe7b6600af7c86704e3629236f36157e595898711243e2ead8249e18dba2fcbdf6399be7edb9065b050be15ce41ee507bf9d6d1a25728fd620676c9613860ddaa0be2db6d44dab8b9f2201884817456d2e87a30d5d565b6baab02db4ed0a8e54c43d5db5c15f80e0de104af86ed89669ef4ea8c6300dcf254dbaeaf1e8de7d5d0bda61eae30a271ec9b268a120655a9c2de430dd2891438d62563d51b62441aa4355768bbe84882f2c93d4a899d429197a235d3962c81008459d6052bd667ec3df50371da99357b1155f665a0bed731e489ffaf510e31f08d7296a8d9959d874751e7a375155daf6586a98781b8eff5d71f82780f709fbdaff65be3d986e2d303e20fdf23455b62a0d44a34d60eb81d9b0c6da69f25cb4f124e711063c36470199b9930b27f3b80b0d5be896e796d19426110ad36d413ee6b5da89ebbd9223a288cfafd4d119d60a78b25c60b25b8046d6567f43ea000fdda182cd0685ba415b31d96a382d45d73c31a6e52934e8e5be2827904d80b72923dfc11ab2b20a9d9e5e80701b0cd974a760bfd93cd748e5f46a4a42585692e611e8b8af0b97a93fb7fed16caa91c7d3eeef9817ec7632f7864a7a9c7d2d5e145338721b7c3bf9967aa2fedf47b387a14d0ed46495e31c43065daa2580d4654d99d09e4790d8d9f3a300ab790bbe5b480fb01c079f622dd1909ce0d478b1a099c1b7624ddf5dbce06574d05d06d2e7f5780b3ec9582cf11e17e29df3043f31b81c743167e4ed8437c87a2df5c962186e2b1c47de9beee7a0286fd6b4698a33aa4f96ba91ad5e3d219d35462b01b758e48c21bf544147defa49687a8259b5db58d42ce6adffbb976932ecf43b466b1955b71dea0b0b4d18f9a6548e43c574e470a44de13519c340d067878a72c1eea619bd571d5d67094c9469a0d31c6a924dcd01923ad78c6702427e167f7c870550b0d2db23eb8bf66b8a1e1c016e9a6d6a0ba1970e84c54fb623c74ab2312046dcf211f7b249c0864156577d8b0d17754022b47e44cda556081956fa3bf4189c523518c0ee6e559dd78f28d9fd04acb03517746bda975c0a09f1faa0cc0908c90f07b68bfe20b314b5ff3a2ee24faa390f2ad209427ff92d90a214da9d90f0df2c904474b1d11837e7eee4db395f46bc3f12ea03cd7683376f8241e9f2f188c635c5f9da329a2b47dc7d2824866359fc8527a88c297c54d1731d8c3529f47fba2febc1e1ce482ff90d0c83b2609f014edb8fd7d8ee6c455b3a6077c658ce7ecaef25baeec6b2d4f67bfa3011a444241bb2cc75a03951c567d0f637cd84df505ac10a652f36bcdb59f652e831249ee1628441baa258ad4f3b270e7c195ceb4ba25c71171106c86334381e14e6f687a233b28db91f89acd55356e15da389fecd2c2dfde8c8f281a90bd27249684c788435b0d3ed5cc33696deadbc8003955c685ae818a9ca9f341d57e48606d4d79a8f21864736219743913c9960e3f7521919dd735ef654bc1d3104aa4ecba8c7c050449d9e113d18fc3a8651eea5e3e53fc73f1ca59be43772fbf3d271424b4e272701df3af000db7d530660c8dc4c4ea90f5b1b30c3bd8604cc79aea18083ba56d44d232b7cbf0051d0baf0108d5c8be452df6eb76566f6be21de259a57fc1f9ca231ef5a9e5354e394d6f4af1a624bd2ded1fe44982b126400df865759c88fdfc44c838bd99a769a4f3f150bc34e2cd600071420019a1747832d1e4b6fdae0d8684f3af04cf51a4f311075d93a398cbfc7ad1e41c9087beeadeca198d88a08e5527e378851c953435d1944bd28dbe9cb3ec3cc07d50a7cd2e7356ca6f91403fec036658f2efeeee5df5b218d0113d564f59d702decfcc9a94494858aa6184c97c061c3a0d283e2f4b28d4d77be636f7bb961b72dbe7d38f6b68a7f1e791be76019030664d8c7c8d0d59aad6800727ca3848caf9f5df183c38e0c1fc45205f8326db183e05e426d13c9219d6177880250be6e1f39e2fe25ca3202d72461a2eba3331574cf66ea68bbccf490a2cf157bd31fa92b765e0f3a68d6c91276dc21300bc66c7e8777bece7e189989daf92a9305b9b64d1f3bd471220bb2500c3d987df2c607985b473fe816e6cc55c15efe7bb0ce5f9a2758c0199f70800c47d57dae37cecd328704f201978dfba4c7716acb278e46589d078a2d4d72ee791f942e286169b8bb01a5df472024c8e9c6216eecaadb5de6a614ad7c29f6270fe4336bd3e62d5469d35415b284058b0cdbd9aa1f75d36cf2c58de7de531c4cdfea3fd7a471d1435ac5b32401ab71ceedcf1fe50b9def8fffdaf6bd7866b3f2c4442b7ab553fabb038714a1cac5eecfb8cc608ade2527b53ca3dcf60fc1d1a15cbb2941ebbac006f0a258a595af710106272826fce3c422abaa801c703a1856cfa39b7d3160a701cddc554e07fe658bcd87cfec401727ed94ec79fedee97e016d50a46041b5289dcad2ea3d1f9e8fc729ccb231d1dc1283539cb331a1fa3008172bf283fad2d36249fc0917840b68c4e94b15ef79dac82266d0288a8ebbe8c37ac2d6634baa5ae7d85f0b05e07409c5f36f3146a1c5925fd80919a5b65c71fe1b548cdfa939e15b869a86334d5ff2c077c25ef7c6a713a1f8d13662150d707a2f9dedbc1bc953ff7a12d054d29aece0f1e2d5e794023fa35ee87e62576a5a6b45fcf321cf6e88aaea6ef51cef992a04fd075da27f357df641bbfb8eae748cfbc32d071b435e764452afbec5387e3e3df5f812d6f6c62d7c2024b691b678c4c6312d891a00c4db4b067cca8b066ce6546aa9a1d325736aeeb4a2795969a1e75c50051072e02f4151118a55302ef7c94162e05c124422a8583d90df9a2324d6c306996edce8cf677b622c9e79d0ba2cb56b9534ab7528959811054a4bb93842f31baf04f2b0fdd5044c6c1eae356e4a9180ededdd3b715ee2896a14269a4ff157c1cacdb65be063b85143081eba08896db801c98a7578573e35f3442c06388b52ed9a4d0b2025607947d08899cac6ed12cbd994b8ef32db096073771f52281fb8850ac83a611023bebfa158f4f0214a006344361186481e70ea538f073cdad2515a3b2a6f5769ac0fca6f0889f00d66e93f77d164d34195f86e99fbae4f2dc459eff5a83a4802378a01df4ab4f20c053429a11922728b83f9b839fd245b0102031858600f4fdf8261eb263557c3ec037bb0d7c4e1cc70421e8b396d3bf33aa5f160cc2fc6b53df55aa5b511561d3ff50dc40ac6dd7e70d1e6b54cf50b08247fbe4a94a41bddfd934de42ae91c07df926d11e8b972448c4b267ef28a70899a8674546f042fb53150aa424457153f1513d137d8e6a37b76ef85534842871bbf2916d6287105c6d109f0de949a32b82df0a4ca7f4b9634bf82ffd60c3b35db15ee18ab16ad06c8da34374a220f682690f904246e7a16d262fa63318d7fa0324b55e1acd23f7ecc550ea7c6406d319bad954407e46c103a5c7dd5b9762ab3bd0ed150fdb8991cf60cdeffd54837093255f46b13dc0916961c084cecc60d9e3eb6ac3421f55b76c1eed70f1800baf2cc4191b405bfd9dfa30a3215b0536254a29a37d3ea271a83dd61ce3e79cfe4f0e0f2ce0ccc6d42c5956bd84eeea5bc0c1561276434f0c11f940b0d05b120088e5222a298678bb2458357bc6c7820a1c126a21d956ae0538ac2ca6171107d395862693e2c9f305683699b73b63ead96b2ffa07805e7aac0e961e98fa5a047b65fa9e674d481734ac3bbaa66c7d66a84e2a4041bcb1a8f8cc49fc62756912c1fb825f7fd4fb96cc8f18302f81052147c994cc5a2ed88515286867b034df79fcffd5654378faca46b1a13a05b53641dd0e1c2bf9bea90485e01363c77e9da05e6ca6a29f83a72128bf1416d1729dabc790adea09631094861e7ab779a9a965dca4179f1fc2c9316974b41c49f7d5f5f6026031bb1a7a975aa521cf8ec67858a2287d13015f39c1b92a3fa6c050f963c098dba97082646506e3dda85016901942c44565bad5184c6049700b634f37b08935b54d7c4f8d8736008d0cec54eb2766827ea7987bed7e041680f8bd70f22fba6ed9c30e4605de44cf8879475d72b615460ec6075e4c166697e1dab86a0b2a83568a162b7117ae96cb4c462455adc75bf25c589af21dc625de2fb5f98b5c7636b32842a07b5fbc4eac9a95057404b6ce02d82e1f308d181c6c3865985b311244577610f32671fce6627748e9a88a7abee38831ef0e0ce8759f2658e8ecf4d2b94a543162d39adbb57a3c2c1cc42a6b87585366f9b23ca11ca655d4409978ce20bf0275036afe226cf736e72f215b110fc59e5930b01904c3ab72da2786ac8a92acf127434422d9182b5f30942bb64ccdf7f90b501dba88b82a6046d66fbcb936b7d34f732dfb476f8e86927ab7f5fa37cc3dc8be3c80aea5e947dd3bed2684834791d552665b63760700c4adac55f2bc8760fa415139c5e6c0832684dcbfd865f06037a282baee2ea165314d783b26c92ed1adbb3ba85eee12adaaddb944d031aac1381a977522972869aa921c0f1258202bb5c75f155e71d4afdd65b33a59604b5db38a5075e0adad05ce8811c1359b591a1b9219df24a7259329b7c7f52ff33b1b91fca8c2afae0e8f9829148c6fba7fcb2e65cda5bd7166ef043fda26aa8b3f262caa22b1b9401261039688923e5a3a85237b8763e54ca42ef521b9de033a61178e63efad61ea0c764b3b739aa52867ebfa4e673561078b417647dc4ebc0fb67294b8d89536dfd6a5cc412468f9e186b80f4aa89a1b82947042d113ebe28fb95ebc99456afe64f93030f12b25b0193e0e08f96a161f3a89f11bc6c868bab88fc3bb1fd57dcbef22ba7568611db7821527d1ef85bef687708ff5865eddec729467533ea751aaad2fefcf8ee0e5a2e6cbbdf3569895c242fef1ea9b815423643dbb323f00b42951e3bdc54f9e634f635172cb042b2e675f06617f9d6773343f36dcaba226bde2ccaf8851fe4ebb5c21ce8dc7bdf9039c13da432ce17de6c01386d46567f59183d9fac7dea3f02442469b38ff6fd9281e188833f21e4ea790ec6938463bc8e703472b3f15bac25e130a381e124c05b4e0dc10102e5ab8f9ee31159d5e86d364a538dceb3dbdfe3f86c545f5b59c341456463bf33bace930ded9281b15eaf7245528da0c1b67ddb7e8ff7de6e1c88cfa390eb8514f3f9136fe1348bfeca06d76989b9325dfbfc445d3b98938267eb43922605bc8a48e0feb6134140635001ee20e2586fb58f286833080e980e85c21046ab89f2d3e299984bb9c62aaca31db2001ea4a91e458f2564740f0ac927c35df46d2a5ac5976df97b5eae194019f515663cbd12dbe9906b749a9289e28ac185949ca0499c803e8c4603329fa43c387bdf088344739b93c0b9c312bb52adf696723e61ba5e495b916f9a68951224003c671c2fba9edb52bf58325bc834fa70d291fe1dcbcbdbf69be7e4f0941af229276edb6b54bc29289493bc68df33f00930dfefce3edc47241282e38c7d5937eefab53af7d7da22a3826813cdb0079a3bdb33b59cf9d20bcab1fb58acf23c26aaebfb54f66b516ac55d80cebff100eaf8b227b7c586dd1da30951167adad7cadc22731bd51be8dcbc106d97b2daa54a3cc7b351849444590efd640bfde1c6b8ae3c0fabec5990d00419380ecfa85ef657e0a4230f742c311f44f75543f524e1f6ca9e103277ad626d0841413e1d32e833f9dde9079ce5ca1cebeac85aca8f8293d0b585de2eed16a6046cd27afe91778dc06a901028cde15ed0dca50f573c651a466870591bb0488f45a023389437f1fc186263c954bd1642280a8307571bd5579ad4afab3d0231c49b96249a2c10bffd9798892e030e8dbff98697d3c90d0cd02d7eff6a79238385e6f79b929739f175072333263b25f70da1c4e7027129fe7ad1777b5b16a0e16a9bcb053aaa0e3a42e8a82514a79774944d680c12550dba3e515e8ffc41f9ad07463661e3bf43af1bed86907214d9e36183718d534046cf40e922dad58addf4fd0288877b3313e2c47bc152c3f47c894d99b00b9142c36c03caa5d09f66f178d0039be67de67920cc2dc71ca8de062fe03b8db2322d5a296798202953ab271e230c82b869be83f158520318930c4b1b27e91cac2f1a5ca816eb6059c116aa37fff986122c24a81e6b6d40fe4cdb5e869c768991e7e2398c95d1d2b197c8517a1f377965648536dca9b4daca804e196b638ac7114aa63869284a5bdf95c5af953d474c49c2d2d2e26193c26f988c23d82e219d485f4836aa0fcb02de4f74a5b5d93f06aefc00028c99264f38795e99224f0af87f58ef7d991bbc6fa60a228d6efa48fecb0b89c64332c2e0c319b2399c89699455ce87acff73fa3020227ff2d5f1216b6d60ea4ce1e66c53c27e1a27af9136f37eb63fa50a8a56d822ee1edbc94a9a416bcc23a8b8966041dc664e388134bca0a5e809966e8f13e58f4bf99ea89f1a6377b13a9e77b58c1571d1a6d8808a1acb15bf1d0cf3796c7ecfc5ec50fb411a1c8ed4b8841fe812ee1497a0787dccc528397d7618de8e0cfe39dc36b7d448a8f2a8e52a2daecfca4ef87d608e2dbc042f18ab5384efad944a3806fbd3e6d1e5c48c64a1e147c2bda3a38f2b2644ea73985b82b815de17180225e8c4fd90ff8737cd0c3371f4bbab93b0f8eb027886813b88deeae38838a27438a2fc87688458745f5c784c412086226b66ae4e1ed0f2306fdff7bb4e11ae6e094275fbfd5ab53856190db25afef5a384a927db3ab05d4a0c922c953d3cacd36c26e2dee09e0f34a1f414eb6d69d27d42602cf22780aed84c819c150c258208be945a0f245a6eb6e988b297661facbad28d36b63782a6c27805a0260f01072edad5dca8e480e9aee6fd900b5928466cb04fe412f11b56eb378652999d43892b58f0c57e95422ffac1895bba2b5116de4155783dca73a8e86da810db93c84889c77c5b24114f010169e345b45164c7971a5958c582aed609668effb9e9b2f91a00204685b4abb5a6e2798132a8cbb72f8b9e8e347faaf1ad09e686398c09437accee110e043bb58704eeca33c9d67aed68614940c8c15bea1a7ecf76ed704551795dae649d27fe8721dddd286539553c37395a898fcd4d81ad80499dfcfb0e751365efb077f9a2b18b84fab07575c3ed1cacb8ec5b605228583e28eb77f324d05e370e75b43a4663032767665bcdf44b4f91fc633feeca1ed8aae4c5ca9efe1cd03126f68237a4ce6d66edba380a49fcdc6de675b86468142149b6dee98d8a7013bfb734d8920ac76cf559e41bdbd9b102aad6362186b55f134a1e67df9fa894e97d2675fd1fdadfb11dfcd8c9d1f0af735853d9cd368b84520e5f55f905ac3266533a5837af08db26992c5c3c0a8a1c404c88ce3ccc9a0af61001b9cbcfe0cdd805a08307429f674525c11a255adc224365c276fa58e6a30e7e4f1f7920ff8dea9c69daca693c30380998d7077ecce5424ef3611ae246a3395dd707f309bcd9ba0a8745b66991399f8014a8bd1974422c6332206865e7c2bc45ed68242f39c10491530c7413e490119e9840738aa362141939a2b199c83ae406274438ba903897ec0abde33b8d4ab6c10e5174785b1fea0ce629cd5c3c279d8ce24a6ee84e22aa904ba5be137bd08e3163f155cf543301d1baca3cd56b3f868dbc922f69f329da229ada22a6b0804cba081e5243783de1ac5d7a9167d0dbf03c185a5512736ed5f7e1d2463dc19bcb807344e6d2659302c618b1efc1bc4c8c509ddcd3f7b8fc0288ea8cd77357838d559cdf06c4eee36293599a576ad280b526b7373bc91d1aafb2e648c347b048ccec80247a749aa91b1133d5926e89fba4bf155fc073f45e862de9d072991e8b0157a2be2bf5246d64e4dbc4e90ead1bf5882921c06b02a169ad6b51b32087a6faf6859c8bd0f9d7aa832c71027fdfb13ab0ab3beeacfeade42cc8c1d206e331d4fb33cc498cbd96aa8124f78a2210e7a9ce1680a27415d6d133c1dcb003c2cd7616b967016fc60baf4d658991fd0a7301452a08f6f56946f42afaa8c611c3426fbba891a4d29fd16816b500ac6ae722368c687aa2cb8d3393957a91668b1ef03bc39681bbd4870d01007efc508b98af9814995ed5b70bd45f822d0eb7c91b8a69a49ba0c885f09154894e9304515fe46f0a48826956de2a30a465dc292c992819d4d5b563d100d180cf58933a705515417c436d38c2f8a1584a55c771c588a5c912e422de38139f2c5af2521008e5e540ec1ee675d2bd74aedf950039c96f4b7e8c6e30822237c5363e1511404c4f5fa64baf86478186ea7caea1081a3ce7d39cbc9c6abfefae63b4afe0e5ef082657dabb93600a412061f7665a279d551db61cf79b0dd6447024698f16433e6ad225bd36a8b1f8814a27f24c83743c7a54c5e1511d82d3eca63d231b9b04ae0b0fad7c6c91a8216e3a27ec004570b0b1611f5c6ad5e9f18c3044a5abfa10d4f56caeb4ba3639e5ed1961b38fab2b07042d6bc72cfebbacea20ce0756e289e8dacd71d31d4101665b82352ed3270148363767a353d5711ce03de5bc59a48c1d95eabbfc62a13ca3e7078013360bdda5f50fc83fcf1a436b3a81499f7fb782dda3ce14e5ad0bca2c98ac819b9b1116829edc6675a694f274a69b83b7f135025327585e5f9b743fa3f06a9b7383d4d5c172d7bfe62a8aaae37f6ec7a09e5b3edca3bdba96e6980e76cfadd87e8154113841cec0618c4ae95bcf90a6b7ee0d084ca904c32e7c77b991c1d7492dc876112636a2e73cf0a57d8904cc927c6c4f5e1a54880dc453d216f014bb2e74d3828b14cbc9b0c93271931f01a130d404cd8ee6807a04873db2a63c3e22f1b039a3498792cd55366206d01ddac0790faf54e6ec745d0ceb0ee2f6feb94aef00476b634deacadb78d3c27eec4c91afe59f56f151b088faa33e7017fd6d6116d84e4c067075f4711d6b85cd2146af1dcaa56b4c6599a8db6b0d301fc8b30e4de08e20ce019d0f2012553519020067ac47f0ca043eb23b0a4bce39c0a4a1e9ad6b15a1ad503df5c4c9ef3c4a0d2f3e434c4fd488521415955cbe65ec41dbfe91035df1663c131465502005412b6b68fb8dea8a28eeffdff54821d589ef2f4f6bde351494b373edc82a9e825249845122748c1226a6679317f1046b3747904f6f4625723f9955966b1b07a9d47ab9180c2edf3656308202ad03244f21797167113b9a560c95bc39b926b4f2baeed90fb6e165e4503d974ed776dc6be5ae88744dd73571ef8f21939d705adb424c2f3d391c8faf31386e701c2014ef8736e547c246ed5777df8b7662cd7b64b048b1dc0ceef84ce80d00b3ade432cd7767d4249c53fa00a561ac47de1f8c941a886adb185de216195e4f37fe3b0f3ea373a6444fd76649540b7280f2de79f2471b275c9816d18b8db7946fa9fec63b9c965f5322987e7134ab3d2f5a5cf90c9b2c7d37cc8aa5cd34c23ea3a9bb0304cd549df2885d9a9c50e31076c8a68bf30eae00767ddcb222b478a06fde0d179dbcbc7b364e458653289bd2095721bbbd431afbd74f4ef37587d38942e3abb04c63dc12278fa33c02586c09b3442a71029b9a504de4171dd2b18771e0352cad1d8fdc384285f7cd79d1cb3ad1036b99606424547fcbcc2eeefdba48e1acb7a15e587491f820bf156ca4f173d598ab80f8195f2c4848bf059ccecf8b2f3e245623a6a6972d74334bf356c15fc448437eeeac651335e208b4597faaa58c153254c3c2fb3ab9ec37940bce34b3b9978080ece1b42b0ac82297c15412450afbe40f5900a9ddea5e068012c60ba86097a2059fbdd8dc3e0238a317fd0fd6910934f2446d58fd00e061b64fdbc1b37b853de43901abaa7a759bf2c2a06beb5cb589bca7988294b0705a3768220da761ba2407eeb634421db50b6cca82ac067c22ce50e9668c4ea277eb3ee95067e87ae733ea77ce8407bba5ae3d5f313cd754cbf5e637f61afdf30bff3ec475638ac4a5913692c90dc899efeefd52468fbb1b774e1efd924f59b40fa069cc41d294515445567f785c553341a57e9ab775095d80042671bcddff681a65f438e0f6f5c7463a3884c639b4b76137c2d1b7f4647a6b9a6d08392dc38a335e95275f4e37de430ac76b96893c8713970db5264c3726cd4cebff3afae2055d0fb916a8ab3fe65329c6ffae787ebbc64ac5a791092ae7809c0bd3942575baed41986b08aa223edf4ce293b7cb019d1bea9e2fc44a649a2f79cac9fda64ffebbb6a3ee49b83bde1c28c37a4461fc2b35b8b376e8912aef25c64b6766d30f191803b34a5b3e99ced0d7d590f338ed98db452cca37cd6be87a3386f95c696fc896220391889f0aac5a9758af9891a1cb6e45901e3b74b85e86a5380d8215f4bbab8758b5431bfa2b1499e93b7af089dea8fa40879bdc1a7ca7a46ff70c612a1814b587107dce998eff1b7c979d236da030f047c082284a425b8f554e603c09f610aa3edd8b57d131c61820ae23917714fcdc6ea78b70bb03a388e56dae97cfe371ab28bca6dec70107207a6bb5655df082e388be420b27e7ba5c5ef3adbba95f6f336d32ec84dcfef44322400074c61fc194f0aa3614326a20d6ff435e54b05e55121a26fb7b5dc0452762a342d7823f096181b898940edbe83cb205dc5f5fcafd0940661b4854ef6f8bf38de8aa1724a760be536def0ede67fab4a3457377ff1a6e6820f6ee4bca39f871f937690b53529e6b8f4c735beb259b56cdaf07584e52939169de140ca197562b6b0dc3f988704d9aa2b23333cc26a905f529c1457a26170fbaa94ae25bda98dc66a802df3028960b65e08b63238018bfd4d2e1bb3db24a826d180e39f12dcab0f5874b3bf042e1d8d74bedebe23f40fce3fc5adcc4324a9e44ce3eeaf1671f8a235749a61ce0cd839aa0db15d0a299c7e3622e4e2f628b92e3da09f1fc25e33583e91f2c40f73aeb745038a30b9bbf8c566c115e13a2ecc551d28ddd483c57ada847ae549baa0e26d0b33f1781a6688d03828401f7f58e037b75b9b21e74e5eeaecb76069f69a5ef3abad98875f554a27672d070dacd045ab1ea26a55d9a394cb04dbe8e73e31225e72a20df01e16a147de69b68aba09fb42786f587f5dd1e434f60b4f871c99ecd2b753cd38eb17be7ace50ac8d056e6a57622e4926d7e3a18329db685a861274c0011ff945db56ae5da6a9a2ca0847ef118092e935fcafd73800101895ae953a2866fd27901a7b015a2082a61e9741223ef6aec86f66d6933675a5d217fc7c0217d7bebafe3637512e39de5f16a03fee6be68fe1876117c7799c1a34b418f8f82cca9d989bdf2b9d9411a01fb5a47cce8aeabb971b54766bfca291e917ed2041afe99d89820da4c4ea1527854e00dd0b2cb8de5569accdd8233fb20254ac41dd7c0468576eec68299b1e544919824616985d2c2a3a5132a5312c06a9d6aab47be65c6d8d0e082ed035d30bce41474884330ef21b86726c40228e11c91d924a3d8629b8a05013b8ba85b5207e559ea245284e3c99b05d3a3b439725f5247367deed2943c5c3016289ba142e74d5e35d37d1da2b139b92a94fd900e02a79530e8eff23e12b9a31becb7e9f3365b904d22a3fc08ce445150297378c5abdc5a629ea1a6e395735f694f573489dd0e51d0de5b046a760eae96311dc4166cd5619a98fff31a0dd8c0baee8e449a22ba742a7f537ea3a1d447efbb3f48ffbeb1297a02ca83eb9ebbf83efa7c2088966ec392fafb95c87dd4a3a80ddd5d15568d639876dc247bed7588bf385994e1008f7ad49417db5924bce27c212061b5385c7873ac42494f0585c816d9abaed70695c9e968d3c30d6dec35f08999353e0d5601340279871dc41a65f68b1742c27b445566bc1d2429215a62ffd0d9bd5d9d854d3f8cea192c19d5ddfd9f9967b48df1b7b1657abc6711c4411eaf7d636de702de9994895d42c1ec05211a00f8204033fb11cfd6ab74d0614186b33195de4e16ec19b45255296038845e049b158fe657238660c6f4f21325e4d4378c43b7bd03e069efa527bc197c55c66cdb9f5e9135a2705a1fff15fe253efab8dd621ec984dada81a49e880ca049d0cea7bf9c9e7ce2116b271acad1d87a77ef406bf82a092d07402da6ff4f928202e1aa5fe8e086bed2885ef36cd33955ed4045dc9322addd44bca4d33558cbfae700c7af660eba085fdb7d1f165832a1fa6487b6658e7528e89671db33e1a5fa56b725a2c769f80490bd6f976f4518c46a576dfdd5d0c9fa55a4f817d7c3fda3070f106e5ad746eb2622dd361e844f36b4f1033c1cd25377e6d2ef074256d3687ab7d91032d0c36a57e56b3cba26c306c7c5adfe2bb1667597fa11cbdc3903922e2eaec659e5462022d5f0ce574722562b14ec56b1f5ccff8e0099aae5b87cbb2868fc9219c584237f7aa7739fdd8ada6ff70b581d5567d36df8668f9115c353c9b592be4af45f7c58edf898760f935ee81eeb9dc25c55e5712d7287bc6cf01ff3da3953bcad22a6543d7a0e38be6f3dbcb258c3019379da683ddb442a0ee3b48195c3a0a799ba13713992877c524dea443bd0eb85e10a8e72af0f9d566cb800100c0eb9344fb3a76ca0a51c7308ce6bbca56d39915a8d8e93b07e0cd6053bc20edf72f50ed2983b0204c0cac93e07d83bc0025859abfc9f17e0b02e46ea720d2bd67570097e9f1bf3e86ef0258a45e109c727f373cd2a35c4550747cebc1ac904644c87d312eb89e1edebd22c8f554639ddf93d53c955fdda4b01bb2f565532357a045ebdd19238fb02c2191ce50d5c978afb6ad29bbf53ec16ab966668a257a567a65d8cdf8cd173fcd051f2825c8fea983434d290a3cc7955c405dac5ba9c34bbaaaf5f5cff71cf09f26a277928da80ea3f57e5a43cae68813edb1c2eaf39af6482c2a4e31129fddb8638f5f9ee500e246f140dc0b073444df00d3ec25eb8148ebcc91b663e7d4184ecf32ff22097db438db285db9c4a5177bd36a9821c7a2ee78a3dec8f4ce6f05522b8aeb4ec68448012f9a264ae966efcfd1497782533765d0258c92c9750fa54f405447a4d118607cdb5bc6e2e6dc9d4a2090e6d5b6a4c7a7b98263cf79c41fb9f4146b8f0f3dd7a1b392b86a31a5fa4719b724f92fa7ee1e2427ca7b41fca5e3932a88fbf03f83ed7d95336b79b4f09b4f4a7ada0941faa9fdd9bcc2821b1020e84a1d6a04dadfbf56ec5945c230072e262c0df4d3baa8bf2b3144e5360f8dce149e77e566c12e5bad66463cd990da525d83dc92ac67b195653a8db7d8a205b2a74745a2f14d6a70972a99b53180f65056ce2515c6198867511cfe42fc6936f5a5de280a489ef120ea7e974fd6d28da3dd710f8600cc2abc4854c671f2ce0f1e94051d7df259dd8f45db7374a9c6cab80f8bc1ee51bdf49a108d44b8048c2db01bde07c97d6b200e3834c70965c10f2d951ecf8cbb4b0c22a3abd02109bff2c9e59b81da09d38e6b28907528e966c708c88c634ad54d9c1aa7fc8527f1a118085fc9f6e161059da3ee4f75d35e9d0b67be735c8294a33907e7df38b68ad9d99ad72285306d89fc62a8d7a9e22292620a6dd1781a43b770bee9f5d90d4b1c47c83ea6370043488682f83e60969dc60d0c37bfd3a1d9c327c42953c656d7738ce147a2e2e45755b00e34449de43bcc31edbf87bdc273b0ec4bcd2e03de1c32890479806695a805f8ddc5833080737f2157e2e0d7e3ab7649ebf0dca32a54dfd8024a27556e74f55f1d7c694e603f2d2f36f1a805cd80329ed9fc0cb163b43e0a6b758085e48704795329da9fd0a4242d3a45ff97871e71c4c12ac411c5ac518d2315dd7e86284a869b16df66af3b194e9e8c48308297f57641a53543cde683520c5b99f698fc1c15b02cb542c197fe90100b2301517ba1bbab57d4d922eb406ca2d596b1fd671719ad4d10f8c131f4d20b9b7c8f203dcfeee38b4fc1cdfa669c6f78ec95485713944b49b1044fdb5ab7645050c690efc5eb27bc72b98ae2fe20b598a971d7eb39d580fcb1a2a889f93151df382b5278729da7c4b2360a5b2057be7e658d572bcd206eb051977bee9c702df7bdec6d2bbf15d1d153f91068ab5bb881f20e0b826bcb3d97479fbc3d7a29fe5bbe8531e2d572eeec192d5f8822997b91407703d1f3b51b3439ad2215f4889bb7405b06344bc22d22e9e92485bca98b18a3751a3e9cce06a25466727aca85c388e427feebb4c77620012696949dcfff6a883fe8d58793b1dce40dbb39c5208d092f8ab53235495991da438e976f94bae7b8e80a45711791e78e3234b4316968a2efb3fe85ee41f4531f419db7e5cee4f7384d9e463bd905c5fc96db26677962db559037b25cc7e252a80005df2fae975e463ff760edc0ce7458c996f01f0975b9caf022e84dd616ebca8f63ed56f6c2287d5a64c7e30ecccef90e36fc20254d1fe045f0f5984f690ddc525ff22b6a937f6946081eb600acba5e308ca8b1d7c73193f09dbd8acc9d54a4b1cc243b384d83369cb9c24c5a976b6247b08f44b5093cf204b2109fa8f5101fd03ab9b91ce1021addc8e0b85f8a8f28475a8c6b969ab26db3fe8484c4e2dc533bafbfeea26730a68817c1407abf12ed20483810563d9c92d9ec0c5979c0f9e31fcb034c3c65117f61939caae05c0c49354a5d762488484177630020bfdb1568619e37a52c0d6db4092974bebefc21037d3b52f8df9f2cb16c44858858152fc83de0f00a07d87c9871894c795eab9f44bff63238ae71034fafb34725d39bf65c3a8966bec87aeb9b8b4b504a0039255d1ef88023cd842f840ed95cf77212ea6b8d71b55ece1bd675842eddd1221339b91e98e4fc499f8760ba38344ad90f19b570b3dc8d27efbf4fa8ea5be5c3dd3358f936e3fb6cf9bb19b212478815a5e64c8e2fbc72ba0b0634c9fae2af06efe13819c103f194497cd6523df672922e6e22b2d89c68624a41da95c2c3632d5c32a5fe32a6d3b667595b03759e0e1977d3e70bea62df110df6e462db70bb9c4a0f4fe74c01a54e17ff8c5e48a07969ae363355aaad840df9905eb386b67daccd4edbff0434ef674dd88b3af7ad3d577437fc16648992e5bb878375cb91c8a70c2174826fc445379e6fa9a2b5b911cc4f986055ab1b5401869be7e0c6b9088ace17750feb2e94cb94ba89272105f6785f8afb112396385ca54b32eae703ce1a492958100e761588cb61216aa6ab21baa64f5598fb3511d0c4997c81fc02db913d0006008b083305abc580675b5d13d068c97aab5ee1e9659718f697bbf866d535ac848fb475858f25ac23a759657f7504098ac1b35e1144f0023e35076fc011e75027e91b09f6d61b639a13e97b56ddcf8401a0592a15070a2be63da0558df5bbb4843843f4c4b2e7ccbee5d21ade801da99c306a3da5c053332afedb6f9e19bdd360ab3f205fc28232ae05425d8487ce6f2020220fe43d6f231e7ab424fb80e59eeae114ea47c353a2e0aae1f21ce2a2c60416ae6f271cfefd5e331d961911f5695c4712db84ebc1b4e3a8ab1482ef6b2388b06418deed863191ccbcf481b04e7d4f1786403dbaaa62b67498c61fbd1519734a1591c686a905d1e69ceb2d1ddcf585d563ffda32d1106313102525a1453da8d573ee10da603e69861ca609c46db512a09f74f488e8445f2322858099efe26a87ba88f3a04435bf2b41aa8bd627ff7044af45a55dff4f25f331782b68cb5e1293abfd0eed98e49725f78f310d24001bf694caee95f923bba758535a6714836337664bf1b44d1a0f976cb40991ad22cfcb63b9327c145f38c0ca3a6a9469696528d366ebd41d2354b173ca05f6667baee3c818377b7e3100072de63659b4f3289f55562c5067a3ee45e1cb8a1ae17f023ed67ad9a81272bb8a9f8cbe7b4ee825fe72912d5d141d964fee64250ae6d966086f9748d4f0f03478e9a918f9992c10986d36bc8cef285881cbc8cdd357c7b8dca4fee39b3e8fa2b2c6f3d4243706e9c37bb4f10d079a6ae907cf75bbae2efb3d53866fa843696644ca1aaf271facc501fa811dde8e505f3b5e179ec3930470aa86bdbebe59c028d907c8977d8b562d9eb1dfa18329f4ed658b61c7dcffb5d10355a7f104a2b8a90c2dcddb19dec7dc66b51c8324482917681a37dd78fdb0ebc89463842b4af22ea39087e036c19a9fa99e02ab82fd4c2571cda4dff891bbab5dba022f58d39e074788c961589ef3c2f149f45c0fef139bcc340d4e004b8c6a493dc0acac4957ecc60b626efaf5acb882d3432260936338d2bb3694f54a71d8ca4daf5f01759d93da849825ba7aeb33b0ffc7d93a5cc4fd3f14efb53dff0ab36c2bf975bbf007447662dd1a0ce8391409999a75a011911bfd5bf8bcb3168e1b3488dddbfd6ccf6a9e3dd8e861a6bca18f5eaa62129da624197fbaf55332434e4e61b646a363ba7080b960aac3cb904a30c9f605c8c770e3401e41193ddf39e155e27ffe0a374f7191d4de72eef25abff567e339785bb4412e0d3eeb30b231cb0e8f234558491f8678ad79ea19ee16d85ad957091b1c91a41e73198563ddb2ef219aec0e67a56dfa014b4fa51ec10bec51ad6db271f4e07e8c6c2f4b5664d59bd482a0fb69cec877799509bdfc25255a1d5682d0fa2b96759f499fd27289ba872d7a0c4c62424ed1329dc7522f712ad6cdaea925ed2defb0ae7363fec062727dfea4237b2d103b5134a0e4e61aff08524d4ff2cea826a661ecc925c4a818c6738620bf22957c2a41a8da543d80a6d61b247308e6db881b179f2a08b001802fe2822d4344a8dca23f3d1c1438fc36b064133d341866b46c76f710a1402a75003ed04006ebc4716c33ee0a89280c4cc02a193d7427e9f23faf8cbbbd585a7dc967e0123c8a9fefeb3b635f6480fee8a21bd819e82e697887c7b9231c064357756d25bf29d7db39e4cfc2bb1d0cd8259f91edaba6501372ae723454f5bc8f1cde923f06efa77bbfe86f9d7466994f6ae6083a05744fdcef8b6cdf8f13e291d5a7852ebab23105a9d80d144efa8e71989f07e913aebfeefb7c97b805e999d82a0304d82cc0f275546fc60ec97f4aedbfb8a3294d41bfcfc8ce5601d21ab770e6dc28f7ad3e709edd5e04e8f07093b1bc9cf0ffe95096691e83278f7f24c342a76e3ae95a78b44e240b6acce91769c44d5a9addac8dda301e6bbade0bf64b9377dcdf431400c4473272c27295b1f4ab149c0aca987345d809bf29624f571e4c592bc0db24533c97b4c95c63de0bb17079b06ac44039f94b2dc29bb66d80569589e72c47d91f92a2085673f762d577c0f772c4ddf2e2292bca0196cd1c346ffdcaab4ceade10d69ae18bbd27af6d128c1d22a495315b59d11945f2e17cb6de227c2cba9b4c4510e9f13d1be11875dee75eebb942a8fc789905dfab1087b479f1153048796395de3dfc3893f4c5904f5862bde9419cdb60db7c5cf5ac11bb7321037304882c1fb70d26fea1e23f72042c9fb5763db2e57f0f53d2559ac1b3278656d258cdda7a952a85c9ed5e4afe28ea4082b23a22a7502703d2952e40f41e83c8b3bcb15161a590764743b1794cc6ebeec28658d9d4ae9ad876b98af0403a752b1cf83c820b57c1facdec7ae1c37c673805a9cd8b907b910b960f41aafa8e2fd90c376145c15a09c907062bddccf909ac697a2b3eb525f0d64defcf46ef781b8abfcf325ad87221e6e67c3fa9e11f845fcf54cf779c3dd7aa1a2ffabf6c9227e81e33650ff8f421ecd2064c85ad4b9862b4e10285c66547d35cd79d0dc8b689cd3e5d2453b6350735c9cff927ebdde61e6c3b578bb3cdcd75163203e51c09ace7af32f425f6eb0d44603a3b327c9c0777c361fbfd8b931af8dcb782dae7d93be90031736dfcfad0db21d4e3202c7611513ce1b8d9d472f07e25201b0a3ecfd44d68d4e4984d71cc8a1da230cb5db11aa84774cdff2c2178559a8e9584ac9e402510e4743db8fcd180bcc2adff1fd65dbd15f181414fbb040a9605b1480e8902e1488d7ace12fce37a1a89d1d79787eb13b7bb11c79352eae1775526f90adb7ad09000abd09a87d0ec7c9cb2aa66b9d95d300291a9fabeaeaedc005d24f92f9d659fff762dd1c6e851cad8903614b0d1d6bea93d8ea08f4f62e83df6e7fa5b074c112b7fe806017bc51763154a55f57da52783fda1ced64a577e105e885070fe3be4a559b168159944569331e2943caae44adf5e4526e8f4db96373ed466e8d6300bde5bb8a3ccf3bf872364f0f6650562bd151435f95f786f8749f552aa3a9ffe6039d0da484f09c859fc8ebfc8c962736ef242c52de1d7a58e6b6723105f59442b9fd9047ff04e22ea19faf594c8242cd55ea016eba1990826c64a64f0573e4a402150cc38ae673754e6945ff92f8a687164c5c630c048be91d297619a847bfca01c7d797b1931e6d212c781c1ff4ed398bb70d9eae31517ef844a24308b6aaa3602b5ab0389245b6b837009c04ec9e91cd0197a0ed3df52b5a2f015ad36e9571ccf9bf229521520455a5cdf02b8a5b763d1cbbe709e5c4d7899f218cca2e78537606c7a3723dc5af5e68f2c3ceb15b97fdd82494b7ae68b12d25f56b44adfb4e93ceab9430709796deee8da2fed5f32075bf50249f685e56d1500501a8da7d96dd148c275f75d07801525c741da01f93cef02cdddd7058ab676cf5a0f66e105a118ed06d47ac80129c16cb3564e64a177a1c211c84d04b55c1c352943fc84aeb6f9d6f44635a866fa27db52a5ef2d280aa8470b11626376b197df5ac2819095d3d211bfae1bdc858b0642a816b17fa58d612288e0d60ec508a0174996ce77211444fab3b23f0d24582b6dd253e9947f4397c0a85564767aa94f56aef57dae2d951a1584b4098f8f07b6b275e5fe28d9453762c9ad1d97afe9cc19b9c4bd98965b5d196c7836d6e87221ab295aa0a110865fb3261d274dfee69aa23ad3f7ae7bcc6e7a24eeb8900729f173bb0cfad870bf89e6536a3cfebe2a8794d1b3bc071715c54161caa8c50de4228061ad011f0f157f206b300c682a16ab6bfabdd2906fa551e1156a78cc583fdbfe6c3859d73ba10f9a49999f2ff9da16d09afd70ffe6d111fcd1ffcda979ae5d200321b9fd2c976ad539b93192daba68acfdf6e530072f64eacaf7895a29eb535a3c6916212f2229503c307638a5eb6bf1c7bfd5ceab2ed2114971d09e5424a8edd7c3a9867506e656608826573ad70fe951e706a6abce3f3a722a3e4dded28d4b3583d0b97cef9b713888400eb34588095eec92d25524985b439f43a2a32f36011ed18a846c226cfdf220107182c585f6e049fbb80b39587de6bae5512faf790dd7919d3f8399c6a96d2e3b9bc383abe5a2b9ac96e5bbf3966eca457ee87a1f3d34ee40eac04c7ab8bd68512333c2f81d680f83cd0dec51492125daf8c00040c0252f0f25866550ab5f639ddb7b64b9668a30b094c8527881297935904f056a10cc30972c8b8bb583c80c4a30e8e06ce1cb9b95db3196bc6702eb6f39c1c709f9e96cf707cedaed8be4add67c8dbbc4330bdfb254d389aa1da50679eb6065087a30f36aca402aa5faa09b12db7e62e56b2325ed6a212c177ddf7fdafdba79a6f2f8e05f059026f8b6a696256589200301c90858ba839722fe2da0337665e139536e6579d99107e0658fc83ca3f5e39e02076a4785a8040447c3bb84c6376257b76f21c81bb61a0dc9bc79ef4cd86c502380a07a6297246e3dda28d379e6b5f9c328299fa5bb060df7854ae8bbaf7f6f8a49b89ffd129a117030aab5dfdd3f2aaa632e471f4ee8c1aad86a52d3e88ffb1fc0f1eb3738ef10666c66b079bdc3461503f691e9c7eb758dd1ce7c9e46778036c7249df091edc3d4e3ddbf1436721e272d6681dab29bab73caccddb52badd914067a69198758b0c0dd040b14521d5a9750974d8397e2f4de21c2475871f0f4976336215acb82cf3b8ab8ee3b65f130e0103f5bbb6e9f5da7e28ab18654dd1644b7ebd9103d36e1e3a27f232a328c14efac6a73d0c24af93642198648bee4c091df18ff8805008f4b9224928c5936a36c1621933110e44ef1254148dcbb18b6b0e60c144b83032afc76ba6cdb798bb4a511e2f783d24608fb8a9baa6c1d4008a3c34cf08b8ac290dc481d020ca73068d28f1a1e5dc0bf2335dce1cc15c7bfd7480664d4de55eb0096636c155de05c2ca15387a973a8eacbfa5013ed15fd53c2702785fbf049e8aab6a8e28e9fef6087e506b99837e8a874c64e5196c256a58ee1d7c3f2fcb2501e1c1f6e88293ee183e7c5e336037043c5066111a5130e251635e75ba5e8f58626cca5a97a85fe7d2bf79664fdaca79cbd032f0a0c4524d0cf38cfdb31ff77e7fe06ee80040b5803e66279b481c461bf8a8aa6c81ba7633d1f61a6f9fc2b96b2bad3557a1e184310463734d4fa4484fc9dcbc4485d050b5cb5c658c08d5d1d2c13b96572efb356df46661b4e76a03310afea069ea1888a18ce094ef0b30b8749e1b25680cc2701d80e2e5c567598657c9a049b2dfb41caa86d31c64d95682f7a33e69aed7f5434f3dd6b82a7c10d643dadf0049093f17d593751aa93925fee8b4456c99dc7250956633823ea4fe834853f160a90006cbda6ddd160205ce24ee3bdd57049f94e46b59cc0118b3c6c29a11cb1ab8d31635633771ed69a8297f95a529b247576831df17d514a752f6308232d73c7a801742fbf2eed831a754559be4430b286daf03cfc8f3ba107b0cd44999b8eb357df1042a0905e954159ec3afebc52dd901b2aa6e35e17c93ffcffda96e1fbf52324c2845c67a62ce1cc60ef83567245d65e1f60a4d99d66800f615e09bad34247cd72483dae8cbcf7b8cd1953fa9a65e9f4a7ab3a01b874a7718828e50ebeae42c660651d901a9c9038fdd770a94be46ebd8741fe7bbe77caffc25cc7f4b968d86d8c920bb6a26d81978e9999a82b9b53768160a7a02ad81c82936806040e2dec3d69dbc5d23384b387d66a179ffb5b7a6a7004dd81cb3e035cf5644ef5fb0e98f5b90aafe7eecaf6c2d177734b160050ecc323323deb7c63efb408c6998679d8b0e7353c2acf5f6d78f4116dd56b2617a12c9d9a14f24947f2168bfd3744568cc6e006f32d0ab122f92964b87d4c0ada8123af73cd147d867f159467371e3c15acd8baebaa909ad3ec72887ce4ff59b8be1fb0c03caa69fba7cd24a5560628cb217c6be2acf656461750c364c5c3904ca03bbdaa7e83e6e10aebe0ec7dded94457261803674ea530af57a512538edba40308de5fff3e2b8530fa74bddd48920f7a29dc6f6c20d8b3f5f93f27c18b9747ae2c908842b103345e03c01ee135c5ea04b070267c48c7d188c12c3fb858bb13cbd7251d537dfd0f87c037714f1e3cc8ef4f3fce7d8aa6344619c1450c956e1fcbc55d835abf2ee541450fab0fed11b01e78436bdc0b7f885707041aa675ff5653a53ea081285ac94ae190fe5cf71d8aed73a788f341e042fe6a3ba40af2d59d6bc71915a93f825c983535f18cdd73e3d6164f9e90d7d9fadc73ad1ca5374dee19ca97c58218ae855a2cbb1761845decb4ef1c2bdff8c3afc81bad8061b7e7fcc769257d4390aaa72e5c7966e82735b69b6740ddeded4f32ec80fbb3499f4fb136d5cdec536bd09a93bdb45338ebb7f9be35f02837a6efbe9c1e1769bfd113ce43abf5dc52ec5e15b3dad5d3b8646f0d911c0a0cb045e5be689ac4a02ef8f16a116c9d99165b77a3c13aed3c2a0be5c11f70885330b3eaf72fc3c803778e58d6264b7c98d4c3fc5d2acf06648342fb1231eb6fa21ff410bf0d567e58c04a6d9703843323d13f197fa46a5560ffc06db6411cd0d5d4ed19054211600556c1399cba90bebcdc7add16442eef19e6c6efd1c558a49920b3df5a9f600f56b11355ca5f407078a073b2b124a09d4401864850832c370d226528d8d89b6e9ac0b0649e56c2bab673ff074ddc906458623516ad84fc6c30f36ca46b087c26378658c02a640a519797c9bf7f0b48944c1c9070cb21fc556a3cddc5659c713c83668eb1fb50a665b7bccffb14b9c493989f15d8bad161093c968734be045f9a6cdf8c2711635d5bc4b2e8f364115511d39d1d52e57b8af3c21e2c19a357650f22b046e0c7f2be0456b1242fffa6f324470a306613071243d307c45c358dfbe94c2fbf18ddb5dcd70816bae27f2bdac85916bb71a2d415703de796c8cdf0a11220662b15ec8127da6d74ec09f78287bac44cadd1635360580f64668fe73c31882f06633bc190a0272dc24b61330974886f3e1f202a7b62fa5a930ec3552a3a4887e94923556efbbf0a16942f892a601d74e4b50fad39b5bd60baeda4ecff26a66308b64e1379c5dbf5cfdf46368eefebec71987ff7c1ca9e69538233fced601c08dce2cfd2d2b8987e8044ea15498c1d817f0e2d25d870e19a1b452a149cf3e019ca1acd6d9d9eb5c445a1caf48463c70b7248b79a0cd3f16f169981ccd8597346bf3a1d793bb034c108d09370b49e2ba68f6f30468dd0cf3298c414efdeb5d3f8c5bc74ce43bf9d7137375dcbb26f7e4acd091ae49cc40315053edd60eaaf1e4932627090c7136a8b74803284671d81d4aa00028cad14b1c53a4fb734add405c997213577d3ea6518b617abeefec3b8acd371114ea1142028249f8db8d263294bc5b55c05d47c5fac068dc03cf069c2806c46ef99837f99011bb046bcb08d27c9d38651708b1ee94ad31d3c5529b4c418650cea33adf4e0e9977828a88975dcce0e6bdd38db58e884c18d80ab60cf2f0255cdad427d1e13994ec7f255e7584c0af279d432c0625fdbaf1b6ad8fa954b97e7d4c5a2d0cc865e4eea9697b227c4d380cc34ddefd4059ba8c4eff4663cac97017e71a0ca00bbb4cc3c38a209bbe052a72027ecda3e13133c2b04295d4b0dd9e1d4170f857f8adf5b6e73c23468ec63c90b4dfd77de3a3ae15047a0c98b124f0e8952f1b35845deb4712206e3399dea79261b90f3366fdd9e5c8a490eecaa5101c0b1810b95cf89eddb9657daa55f5a64730953cfe53b0062d6442d7b556f3ee971ef96a0063496211758fe408f272fddbee2159f074c2acd111a6edae89d33d802ec82bada03cef86f143c7f0f18970a7c6601303b852e586a06bb11425b6f34f4d084da1ff84e154bddd61c7d24c4709ed434efb9b56ef3c99265882546dcdfdd35b3d894e8a39fda4857d83516bd054e35aa11be265ab21b437ea29f2a4c93064d35a365c6edaf5a76000cc2b4cddcd1769d5a6f4452131bd8ec05aab00a9844c927bc933470dc1c5975d66763942b5f9cb6932abe9fa554a010c58bf9e77de80ac66adc3a3fd9525c61ff5e23e5865d26511c956c5051ae5c8517f52fafbd098b65a61790f3c995aa863068f2a7d7ef55a33dd3faab2e689ade7be8fcd4711865c86139c903da5c6bd5b7236da92231a4f680b00d89ad59e5b795c12a12cfbf4778f0b700cd7a25debcc09e39f7b46eff801ad6195f510c466860b522bc225898b0ee56c13c8714b1590947312a3043dd2803aaf6d22c41f85e3530b80e407683c109a10d730613e131620940f751325631a7e9c22239c07a13748de54b1acc35f945d19f212385859dd9d010ee43c54273c96337e1ed829797d8c9d4d0d7857761046303bd6cd072efcd13220e4eb365403c86f73dde997a986ac07581efb08fcedc74e11ca324d4b9d91c030eec882d7c22170674fa6542274c2e49bcfd81ec6060069709c682a587d5127138066a7bd80ed6b1005064842406dc26950babfc62dce26a4e1aa42bd6e04bcfc9bfdf7cf77f3d212b575ba073617c8df9353abf0a7bfb59d9247eaf5d649eeda433aa0a2978c4368bbb6b909748c5db1d1775fa2aac9fdc88a0729a52eec31c50318b67a008540a7934f09386ee19d9b043e1bf4e6d3c2bc0927716483af297a66cefa6c8cced075608c80b16da9d0956a357280f9127d4834de0c78f76fed707fcd1cd6420373cc690ff85a0b7d63ba08aa61c3f932f231927984534190858862ca8cd5e4b70e3296f12843b8d01d3a25f919f8ef51d96b90027f1e29b8f5c8a8db37c4629ecdc4f7721f4a391b8968caf5ed7156ca13aeff77df380de370faf0a5b8b8657806b73d3b23f5234cc715495d1ac9a0cd441f9196201360be90105898d10ac5d9a3e23f2a37d2649251f7b35b57d8b1ced12e5f31318e2558aa880839427013bbb03877b89250bb7259d66020667462bc95d5661a537c781d9ae3a78149bd10dcf41d83e7b67d3b2ec6976b820cfbff0bd132059bbeca0529a154e44b678b34f6ca38a4c200a9cc7808f734b53053ca9320e2807c0c528fe12d98eecd2e0928bf9acf426fdb89aa7f3efadc0c07bc7635857680a0a8496be8a9a6fc263cfe4cbba09a66cdf326e43f62bbccd283d5ac58c63d9129cfe00258a7a0c7fb9e9e32e0edd63ea80f67de2c7c1f2e2a83a08935b9cea333d68d535207e30b234c212107c97b9c766ae6cf26147a720459d11eef36ec8a1cc63a6edff3aa0a62682d932fdcae78abb96544c15ae8cb25bbb3ef7dcbf57e5c8294fa1bc71208397e1ab791d7f66a963aea9bd9c464b039370b756a67769cee0468afb7397ad0bff0aff080743730d46b70897d13315bf7a6cf9c579e6062496e27ddc3729d2d923d88531e02352e4f54e59521023a4d565461455d3c2f37e7eb66e4d1d2b772ccdf7c2ddbe538e9cf79f49a271585c8d2bfd4c5323c70e15eb75fba619410f317e6877bcbb9738b1de91a49b5428e54c23a42652968370c0cb04d68a09b388ac78d5871c8f2e463aef159a5da6fb83ab8c799e0f62f95ca4751ca8d760f1213047570f46238e362e876d68508fc980cfaf257e74f7d750e31071ed9e69573f00836ff1fa6d8db9ef1f8ab15d7d4f31b04959ca0529139300524df93bc4dda85707ddac2a90183d210b73c551cccb2ff1db19023c134f76c08f81b148adf26bd90ede0def4aa79dc9d8d5298522a0014ffe1bcfc0bc58662fecdbb4af73fd383e760ce2ab058613e827176074fb7f1f78206eeac2ce8709832ceb83660fd674a975d0891a822719f49abfe1c48b3de0c6e208a2850f15bf3100a536ec3323986f3cb31b221a9e247c23376272c7a90fb4197c3585140d0424e32639c007a9c311d42655f78e1f8a62dd429cd47cbfa2f2251ed9903260ab3a0b981fd6677da47af76cd1e95e4f5cd00ecd9833cef0d56c8534e3c4d17175c0866cde293d8174a7bacf3ab2e2910f334fec917473682e488df37051239abb3a792ba32a1e052be55298474dcd35af12768a928d688318f6736cdaced8ef3162ca47ae6a3db5baef209791cf906a0c70ce41aa97004b1d43b81e05fbe562845c671398c7a136025d20494f8545c5f15ecb8f262ecde6171e584843eff5acae3b2a4a4c6eb1f38b63ceecf95b8f27da234ba9d6ff4091ee9901977def24545f85250efc814ac2bf54f0ffb3037b9b8d9db7885bfdf50fa030c9654c79d3f2871d444cadc270b46fc1aa2fb3c51e294470e48b096d7ea544b2aa198f69060459f6ade97e17a36a8e7ca0458e0e6a85d1f70f74d0b4ebb8c90391bcd5c84c3cfb4165378c8e50e7e58e7757c76fad0b9b6ed645c8bc4ba4a648611ec5cc13fff4900c1a91671fb5df49e6be00e438e86071c481154e2413ca0f0ede5515d16d8db5d7f1d66543fe3e323d89de98ebaf02f29d940fbda307add8f547106441c7449ed7312e444a1445418ed44fef58538f25c358be7242d9efb6761c63c122b9258fc6efad2133e82f70a30b778dc0a273529a3b4d37f6fb49e2d38ab28c0e23f2f01d0ee079da0868103f29c35c56f0081ca172f504bdccdac1a1844f11b0629dbc2f47e6a0579402b1f7c9849f480a88778a085402d60f3d0d2656d3614fc76cc1135b17c498d4b343d83b279e1ebc29726910c5c08cba0fa575d0287d23f3256106da5cc1bbd385abbb49bc17a86d327d49af3b042a3badd0e5e57e7a5c9c6320b5866801333e665426e47ce364cc6526d2b991a5cab2770d3025b51bdbaa3fae13d1dd22a1da29da2f21385f7fad1563bb9c8ced413d46e1d784530b2d5edb0ffb409918d86034ec0ad2c7abc795b15e5db5fd46393e9d634c279e5e28de337e37a559cb72c7e4b9059137a25735b95ff54b0887ddf746b76e540449db7e0d937a51a6be369b76824164502c5cdca802e6ad71a2a3f8634a82253171923e7bf7dadb886c88e8bffc7c6c0c542ecc5a5d4322d0c2c3218fd5db9b79a42ac307c4219e30baa45846c2c46cc294edf697554bbe0b77666acd56de25ffd54899683e9c0aa2cb5d83991a543b6ca60f3e986e01fd0c6f4759c8e74f405e644e288ac04f720afaf75ba5376db7af65044ff14dc00aeb89e2691416ae445ecfafae8b33c121a6cf6c89b1b2d3c2130b4409f7bcbf28f62e12670c74694981d5e7a57b9c91b03d3cb89cc5510eb60ae1147d9bed4cb136b54805540b6a1d7782e986fc17ba4b463f6d194f49a799ddbe4c6d603d0f063cfc03adb90dda63374af3bf7345302ab34af5a75ec08be8fd56f8f3c15e803855d77e906dd2e1f13782255435ea978126ee0f8beb7f3e003f05d3697e1ca968139f71cb2134e62246011fceeeee80ca4d0b3f2ccd1fed1eb3136c00ff969c23a5ae4f22760056709ff681c8b7ad609662a7108c63c94f5a5d39df460144bc6de0d4e3effb84940689763bc1bf9687301e3ac4aa9fdb01dc0c66a08e98c681149704502ee524f86d76243250f4732ed8373c617359dc11faf2b8687bedea156d9f8c3387029ae1d120ddd78daa457d513eab6dae7a88e99ebd99ea8e22ebc8ea1ebe11fa17c960e1a38f27d8e351a9652682f65f33139b7a4dbab7406c0f20925e75c87934e155e76f75bad8682ef6fe7a307ff7c4d470cc2f03e6cdb8017f344596ed8cae6681b845405cacbf6293ef364fc84ed93c0d13d0aa794937b43e66007f2d133506513e7cab58de26331f8fb09be3066a35a1bf9cfe2160864177d2487dc3221dbe8db82cbab34867b4bf134054fe4a79cb5d50b1b63daf8108cf2f4c501cd5d9a6029093c07f23d58f418e75cb212dca3a89f3a7c9dc5fafa524074812bba5ae35ca016f40397d3f5c6bd2228ea9fb7639ed0acb56e8ef5c0c65719cf7fadddd235950b4004f770b2f594d21646526188013e353c4d4485a46b586f95379b58c7bf6b4a626bd290d45208bee901af5e43b99180bb4bfe2e0b00e62710a53041e40f89490d4852ff02e90c07f6335c8bc9b5434492eb561b011d00cf4f8ad653905009f3ebce5eddc9230436a70b62c8d48c881953bf9ff4b466fd98b6bf37abf6a5ab2017a55af9198869f4f95fe5a12026c70745ddf699f54c8c757d2a86fa8722a69ea3fa0cd7c7fc4e2dfd8d35a3ef7767e2e321a893ba5bdb4c2f03f80574cb53041475c46f09a3e9685aa7477286530c865a4284989e1b4b0e2c6c37aa34adeedde1e9fc0afd3eb1dec9f0f814ae418ab10eaf17ff60824b022758be600400c816f7e8118f2230d4e798b0b2f3336f2daf1546eba860f346a3a8c05834625cb04f3817c850dcf90132284d494668a92043bad538d125d0bc1b8a2c478692ff81d1f758b7b7f45bce506fbb3099a26a075cfc6ebd2bd998ed697e86bbd91920ff177dccdf0416fb2e12773d6002b9f61cd30c8893ebcb9cba138743aa18445276858894f3275299d548dd707f6e8a876a21d3ee3e9dec3a9b477cd9296aa2fcdeabc7721fd79cde689553ad36287789e64f698b543a53b2c9418a85dabf86dc5fbc5f325c0c4cb1dd151eb3bc5ce5e78e909ff26780b98209cfaf6210b5869a711a69e292a29f1e73c898a9fbe9bc69d0de76c82860fe5ca9d040d0b937ff6e0fc471e01d0c34d312deaf6de733eb1dcdbda6f2d94ca2a3a2b764283cb88ed6a73cf9b270038f23182e6430df17e2d753ab189b8c4f4c7bf80696c6c04a9856bfecf4b3f0a599a4bf7b4e65345617bc9a266c02c904476bb80f275eac39c35177744b8b48a01e54c143150131f382dc0e3a74228f16008e3e43b9a03a067bec6a435b79c0f24e51d756f707372220e5ca4fb720d95789519faac53478b96e0194e47571655b3c25339c466cd34673d886b8ef90096219c8584c16fc14b510262ad15d0409a3629b23f5e73cde7800dc12b58b87ef778a88ad8b4caac8e818bfad49cc1a64e11b2a6d61d42302c2d014af022e7c4a7dda1e4bd75bab436e012591a8ee7fe64b28eb16329b3445fcef93d2e22efcf704aa0c1e4f095ae6128ad831dee53bfd492c24ae4ede0a6dd2f1523357162d35d3c25975637386b84336c7134a44bed958305f424fd13858e4684021d3241f9eb48bb4d7d1884c5b25cd9f90f194d803c01f139c73bf05a77a6f5c86f3ccefd43593222cce8c3aef5ed9366d28d28840374bdc6f4e867c4d8622e51de733bcfa9a0d41189997c728442afb061cef939765e644905116cae8e12393b410b46364714e15b63e141a0d98537a0b564ff081908a1d6046f5ebf1eb17e683155f1a3539516d03bb421e11172af5eb374b008be9b2650724beae279a2781faf975cbc8ef34d0ac4bb6ec94544c047fa4af9ceea73ec42ca39dfcc91780978327ed4b18b7b9fe1549d780f53c964c82893ceffd82f38f3565d57b80d9d3681f36f35c8171c603c27a61bfaebaad43eebe271d5531f9674e833a7d06d3d5cdde1c637e9cece5d47c7de3cc479277044ebe98c12b485b5cbedfb73af623c0d493fc52910a21c582e87b41b40386a0338d082c384a358ba646a2ca654d22d16d4910864a6420b7f94f2c325d903717f4edac74b76d15dbf190de03068522c827546ff974b5853252e1c0c2d22d0b8eeb1848743b25d80434ee8189a756be6bfc0d355a042ea04fb1b139d2d90785fd5679fe25407179a315e84b94d988a4032d8f528bf7f21a4db92c5293d7bb361f2f5769f34bb018b7ea66c3f4fc5c2ddc2ef6c6240b39980e8ad1150f084558f35c612a3f4aa25b253b6ed088627808caa7103bef3b139199515f02a004c9943cfe99dddeb58cdb34dbb1e0c8b9625a9f7a77056a199fce966cd37f779afe6802bad66d9893c951119485433dcff388b6e36f6c48e878fcd516db6016f128ae0f254764aa3c4bd84c5ce9b7039b4ac76ba52393f094a127c7ab9a10d600e1917336b3a744f9ded95a20b4fd4d9f272ba14402e0fc7540780377ec0c6259274801cc63440c6b383d111b1f99e196c4b63a555dd2bcdeea17c314794e3a38783acf3ee7419ac70fed2ebe33de9873834ba2d6912db1815b0164624b4a32efdb53ba072440fae2dc1ed22adec7e0ac0eeb45a0501812a3c369eafec14af09a2d4fe0736b912d0af9a0013aa6143adec40515ded74e4a1b208f795b00f87129129a24697ecba7ad3108221551a1bcb589d6059d2fcf77293cfadd5b410a84b05974ad3ab655d2db15cc825eedff8f3256f59067bb76ed154cae0387ad4a4d14c570678dc34e8a8b8840d1e90bd87233225b32f2b2e0b1a449537ec79639c4fd6961804cb540a0b661e2a30427b33555010beed75375ff577c2303bc3beb34212f07ecad397e5844289cf04e7a763f218d75c766de01c582d747ed9774eebcd41a91e2464bb0eac32e7f9423cdf1098cf674467caf61252b185ab993eb5ad1f66d155e30bc0f04f79cecd090f198a1c35871fa7109b9f7bcccf68bedc276ba24c5b39d3b5102462c3051c7e0f9b3284e27d6f4195e82448cb0a4a879cabd1341bafca3365f57c569bc6502b266105478d18247cb2b37cc2705dafac2a6764b4ac090b8401c2c8867b85dec9fcf83ef13f5498e7ebfad817bd3938fbb8b6c258133a5e62e17940e5a5e8c577bc85e5686bae366fa6d5d0ac33ec61afd6cd63bdfd7437d00877ec78c2bd0f6120545fa2634f1ef0f169b414c53e87199c5ee76dd3fa6906364f596ccc883e18bfdbde2eddacf4fe7fd87b509fb000d7b5941978ad50376497fbf56a2a5ca144a9537287282052f5c5ddd29f501e68d55923eb2f17f86498b02a3515dd0ceef68862277385efe3c6a27f7134254d133265a36aed01edf6a9e1702caedd4ecb7c393469451f2afa7a9e4801e60e00b65449576c69e5620fb589c4f758facd9148ec36ad2480975a6dbb0efa8cdc6302d029eeb0ae3661b63c61ce6fa430886917c24f49c620920f186ad8445bac176badc634bdfda0478ce0b831f751d80e1207ddf2bef2a43d245a47beb3a79ee80dd3c10867b707425ab5c2f28f95871a793ff9773dd5313a0e45a8ea803c462738dc752f16a8159902cff69ec0849950e24ce5ccd0be4f16a13cd6873cdcc376b633eb7650c75fb3dc96061ab1d109b8bee75abc233b5c8a39bf41849fc20f5041ff0a64f1423f50abd3a262f222b4ed6713f48e4a3422bd94a8f817ba75b854f21b9f7870a0a8b5088c65765facb130812b7ecd2bdc7490e6f1b454217a81e65f0932aa2cad521a16b027218f803c9f998c50eff75aeb9d860e4635a4c14c9e6b7b9bb4004368fa1ef05f0d566be4bfeb0584214d64d6d2cf71edf1178b36cc2c35226eaba043fc25e66b4a1008b38b66b9bf7527df8748e1116f3b4819091fe06b77dcbc4bc664048ab69f37638a700bbbe97f11c5b63200e67bab283703bc2973ebecf4f40c1e400d3cc9eed3ef0fbf95142fcf92a6f97544e4cf74c658b7230a237755aef8c6a1de713b47ffac4a0622bad106c24acbbcc03a8e9df2f118bafebb2d4370ec656f9a0e219b6b524c195e0e8c16459f57c6327ff33f272f6c895f63560107cd74c351e7f9e1584f81b17cf0b66e3cf62048b3d31fd6fb56d5c8a8086f960b93b9b33a538828fec5fc5cfb4058e7d70646ab73b8a82f6340f17d7c9ce22763ec8cf9b7932090e64f85a8ad81d6edd44dce2e22416115a880df9eac50536f6219da0d7c00477ed97a95a78c2dd0b4106d24109b61b3620126c12d6dbfcc1570ff35b9676e5f27f88c079ad846a1cf9fb99b4ac22909e0343a168d0363566658d415e4d714b3786736309a1938e1ceb29896c51e1958572ac4e74b3a6dec8c09477c3b1763d9cbc8ea84cb02ef65112cf90c1018858c210e3f8d57d10a28c5c7640a53e60bfff4d92d9239b586013fb335b04cab8d77d3431e913d06e197e00128fbdb34f0f4c5b13ae970660c6eb46c9c3d03b1e73596719a38e7262178bc75ce93194f3a4df79ae869ef8f7bbea2b96c432ea774957e8a8975ccd522078a1372ea1a7db24e73102f3ec5de089baf2f63259f2b6bc252b9a00696f1eb7b2d395cf4a77ddb9cd7e790cc2871ec5e27aabe5e26d2aad8755470d058b5b5f1173f3ba4bd488864452e66f67a9c564f4b3351e0cffbb3d73c26ccb15772877cced1b6a7a51ac200612ecdf8b5b4f983a24884f234b3c332980bb752c2c8c4a7d8140d660c5e94867153adab61984e0f165049cb57bbf40f7d13b1222c966027bc25e4730cb5a50fa2896a9d2c4f32cf5a6c9a4d4bc09d38fad7f8a4211f2507f18f739504245de060cb7be311ffeff46275384b0bf0b2de23ea5a7aee8d1fd163f13d556cddf075cf7ee5983536bdbdabe660e823a6fe72561299c5fd9b4b304c69caace5326ec0e0fa6cfe26b9477895453af6a6533255d2c8a05229384b1669103bc2a80be450cf2a4f18bd91b8728687f84807e590fe962b98ff1672641225834fdae43eca4ff312f67c6ef3509558a4788b645a169ec015fa459cccb15d225dfcfe04e9643f7d0edfd4867816c9de12cebb180555220b5ebcfe2dcd2f336da0d3148995aa557c8a93daddc6f045fa653f4e678287f6f627bc61fd43644f4a90a93e7e0b2752686d6c88a4f3e93d8a75103897b2089249e8732a0989075349a969dd52029567069ec5379a27deaa9c54c8df2589419b8336ab7ea2ca74cab08704ed11e9c8e9147933d87202be43676692f2be6370a54a2afd1a23c90864e2429347ee093d175e99c11aaf358362a4389301b7d38caf09b397f2a95606e07714ebd3331a686778acf804dad66e3a24b590ccd7a699a8a8731d962a96c489246ddd5ef21eb4c635c80976cc0c9486dbfb0e1d6c080724cfeca09aa1019b5ba4f0a4d0a8381a74803fe3c9006660e07643fdea63263a1b651d647d8023b6d260d58bdbb6e23062d17cb45a539767813148c01f73a817ab70123c2c8dd08fae951fdf067bdca9b6aa7a8a2db7c04de533d43d11d4543a26445b2a4eea59a4a35c59bfce08f65b580b17076a7d0f2452e60d5d84a4586cb8389b9a1917ffa488063468a85c79a825fabc01c8ca0936c4a93650eff2e28f859ea74a89035c5d0c1fbd70e328d9e82c5fd736b9036d2b3d30008773a79a48e48bac9b3f4b55aa965b299e379cb16071984eeb81a43ebbf7c6450a4e9a3c0d69702b9da30929e65e87e397e82b00f7f441137717a5bb5c2779130e516af48af6efba10ca881484b3aab10412831007c80e8e143947679b734ec264444a0db8e5f945423f4dec4a34c59ba9dc983dea2a242cb34fd715b11ddefbcac1c00c82123f0f3347525a51877fbf98332a244fb7ccba119508b529e32a855d25b5df81611e5a84fe378a0fdb4d9f156a7cea44e1524414eb0e8b1a0ad384cb265c6efeda77d2409f82024aa148fa9e2fb098e890062dca93b124161745662cb8752d6d7fc78f28bc8047444158ce40bf89a0051fa8df8fea472e4bb0cca7e64479995fd3cc99b0c14335ba019944834098cd23de52237b04fdbd56876f2bb7c713905bd811599d09d616c13893fd48c64302470bc92f0230c006d04b340c63eda5227af19371531a561d260b177a5d04b96e46ca3c19e2004f977179fb98a11db0a758910bf7f43b1b0b01efffe0f221b1866772d87175c7dc323a2657735a0a70b3b2c306eef1131ea1337ace6030424d002d9293297c7d7bc74ebc529807383000670edbb548de45272669616c4a91e1dd1c8be039b62942b4f97d98e50f6ba1b1f84b3517ca39d4fbcd989ccec16282268e560ac8b9e40b60f4507fea6ff039218f0c88fe122ace9fc4dee16cac9d847b47241d8379dd9e9b33854e1dc3b931d6a8a9906515632508a536f57fee9fcb6dbcd21a31ed499b692d05535330fc57a1df688ff5a82b356c696eac97835dcdf32c9161e8ade2af0a4c9990cb1cbb1ea8a7991f395ae68f06e50a9f5bb25cdf440e2aacd7988e4ce5d947a0b525466b12540db10b1644bb87e3fac3c7407046ed483fa285d5c196f133cfbed8487c399585928bb564f516e9dce9b525efe2b8627c6d91d9e3d7050f7a274fef90a387072066a08dfe206722047c0bd7d2f5dbd145fcf8cfbd9f1d79e1494a1c152a185a2291444d279924c9b33405aa38b70545bb4b4cab3fbbfcc1b7169cbbafda12f05e8cb6c3b8f2c250054c5d943f486d5f341171f7f0664daa472098551e1a446c0d0deb3ca00454b50c5923c9eb4d68874c60b485a294113cecf966d8d5e95a82f1b8800c882e0b1dc3e095c328977ff85e7fff5200ffe69513c5b3570da0eb621ce696dd5af346c1687906487aff28b67403b4cf817a936678af723a47366d423e2c7c9815e2c37ef81df5442b8d1c4830c2d648965f1b5ae6e98907a4f7becdeb00317ab2649f0c97aa67f8c15440415e057cb0b440e86a6a88b693a18abeb83438e0db1404a19fb8bb10dca9f38ecd920a90120bad52eb59187b1be86a1434852089677281c58d945b37aa08af5dfd9304efb79491295c15475fd6411fb68f2068f5139aed7f75df709154d844e82397da5a15b2a5f865b5094f64b1adc5376d4440f2a5f0264553afc824bf915431fe3bd4fdf8bb13274655bdbe136af02a2f5fd58e96fd5b21fa51b394cb64bcea71cf35812a33cada63493fcc26a36f6d96498e7c4920b1701c4b6047b62d899ea279a7edf928d70108cc240e86ffcb3e55eef2acb63996c02bc8585158c5a590eda5c7cc97693d5b9872ca02566fc43ccc28ac3ad54bfb0613907ad5141a78b6d10d87d751ac79e8e264eaaf88307b4c0e0220974421785928b5546946f25edca314ca10528cd6fe655ffffa6a209951e8ad188fd1e9bb1ce10966bf782180196f1b37f43d7bc4f9db519d5acbfce7d7674517c5458259f3653870b210044913f87619e9a67ac2bbc96cd757bcd5484aa41fd5ad0e796dc81791c6969120f259ecb56fae2ee4353b1f69bbe876d06c81abf57480833a29a3fed869e5148748f62eee886fb46defb187942a0a86d74eae12dc7a095283530a75889164af896609cb5e4a434242fbc15a2c4a2c522458e21a6d571a642a097f85d710fc907cd704e7954ae8a9e7c1039d3235dd5fa19df5ee7b8fe5f59e3ef6caa9f1db10e495a134d3d71b0b739d9fbcc45ff2be01c08ef271c3d116ffcf8b64618a9071156fdd10925ade9a736dac6b6ffc91948c0bc73b5265835e0af9913472f6dfb4843fc8129f796b5fbaa3c8bef3991d906feae6778823046a1045dea3c08f93abbb33f00a7ea5649cc140beb28a741cf420a1abbacb5d55e749af1fd0b49329b8f0270f3535f88da9c47b7f18e97561621013b80617b0fae4013a82c0513cd0d68d27fc05645bfb9a60c945cfe066260058fd2a791e6d9b8f503f7c0680fd8e72fab1f8fc285fd3c9e655a738b238a237ff4a6cde703e06ca444f951b21e32781dbf465e7b0f3c7a3adaa570db2f08193e10fe147f5e0803b802eb3350040eeedf8cb128d89fe9d10938767a12d3aa0ba84a29153344e7b178abb178a83a748f331a5d19b51a63495dd3b02a589e51f6e957f6d550e6483042a050808df5c03f56ef0fd0e74981b554a79ca734ce73729ec63cdcba7baa0718a97219843b215616d1cdb5472809b555aa654c48149a76633a5446d259bfb68145e5317de81bc475746361bc703a7b774b9de11f84e364f9029af8b691eda3d84e1c17e55e068c1b0ce00b0406436aad54b76527948069c579efd9b0ffd0df71daac462aa68c870d9d161524ecc97dba5c8a65fd813629d1303a20d4e2b6b74dedd0ce1db82f7e6c7d1d98b5f86585378bd4e4a84fe0bfa187e2ac32032118375ee63ecfc8c18b2c3dd00f8013242f36b0b5d673fdea0e80ab55792c2549bf7c36f027c666e9d6037e4e0b14dd05e24a9830266c9ad65b0c628513b108983faefc142dbb6ba59709ed7bf257d57f680715ad4ecd43bb3e373e662a847b2cd206981da432d8c36dbfa57cda38a8f86a30697a84d431c1e0f908722ad71558f96fe6f7c59ade66077fc33f6af11a4eba37a7456dc17ea68a673825eac91023f345b2366fcf94871786cbf1ce9830526ac517a468056b3c83f2488066a446c7fb4770907025fd729c1ae785c0eb8049bc59ed8d68e37fe83dfead8a8fdbd433605e115e6f5f5a4576819a349681686ad95161de59021825d918d8ca2433088a60203f20562e0c744dc1c2f76adfad625dd9d5d61cb483ffec7580cfa18e33a2e2438df6541f8448c96b290f521b73d2b092bf9a0df33499a98402a83a43d286f460852772193d5b16e7ea7e9b01d0d03300e9b11c581da745bb0d6ce8fcdef51eb3f59eaacc011dbdf1408b28ee3c6238f81888778baef4bcf162b4858898e087c29668a2b43852c85a0042d0cb0a06cdad44f0c0f1bbdedee5a11cfb1406efe41eef37e5905e923b283ef2d3eb802d57183d9bd997d2d5acc264c57bbd6cfd3d9657e2b67452c8d9a51dad63a7ddbbfdc336a2389f7ae008c508d6d16e90987f9125e373d098b43b16becb32fd6289e354a202d4ac3b17b4578cf6ba790a82dd804cd78116456936009c671c9dcce431478b1a991c2c2a9d40dcd45464383305823a02d0ddcbcf91527fe0d713090bf3b5192e75fb48d87eb9c2a099cc455420aa4fc8e7a399220fd83c5abd08d4b4bc32e3e7ed09d379ce8d6c8fec6d9c45a79d12358d90ec71bfb5263b9abfdb872af86dd149497375fa97215ab69b959803603076efdc1920aaed04ae955070a22801a9dc48d5f7cbf8375fbf11c3a0930285685e69c01966c31fd423254857130ecf22dc6c0c108b259dfcff87c532b2172ec2e2d104efd0320356cd10a1426187e87709d2488d5c71fd615fdd3eba246f7dc99d5ca441bce951b422884a9604515bc98097ab53f7df1325a7ed078549d068204d0a134edf8920145f46ac9be8c1ca0abfd7bc54a956808ea69888fb3a50166154a9151dc09bdcfc02c7dafeef25d59e2d31e2a3d5bae2a4abbeaad641d42c2b386648d23a156be34e8a6d756be8d90790deedf27060cb5b0d4d80fd5c64c23823ecb6c1fe2f21ffca6929bba88e6a6a945f488b84c8da6da55aee87be4dd282631528e70f9091cbc2fcf0a46082f03d4bb17626adafaa3a4f54effb4f1565d0eb2bff4b44ba673fc50cade645ac51cfa816ffde9f6c5aba6d393e3b273ad486d1b9d4e2c9dacbcd251a1f4d7ade9d280371eed09e9ed83963e87cbf17c8d334cee928629edb08bd7af0cf981a0f0f88982880e7042c441c1c7b27b320ba2b1dc177d1b116cb6e3a1f4b8cdbb062e6cf07a5aac3be90fe4e84b3e62df92c4bf92c3105915a92abd8b4892136bd06f03fd655929dd07c49770b78135b8d611f47b5052735e4fb13d39a744c1836dcb758ea4a2581cdc2892128607d997b8fd8b8a7a7b2c3040a97857a110cb103f2b8ff125d614c5f968963d450c6b3958786c86ebcecb35e9d5506bf87ca1182cf11db7ce60664c51a54740b29e5286126b7041e9d38576a6b18b317150ea3018f87623e0bba29504184b54f7ea11c9b968066eda63501f3441ed2f511a4ed47c8e152ce91d4dce5f7208b24691af0b163a1e4b51b068b99acfc1a120678670c4be9078a4b6ab57ea760289561aab2455ca082739261374fbd8c19e8cc88e77ca993c0320d42b7a902ee28ae2bba93af44164ecbf7544fdd601ee236caada0b89225f86937c5f007248867ffd3543e79598b17811ed2295fd66b7b7f2e1e0754fd55ce37cf2798cefc170420bc8e8fe1a1923701e070b2c48807b88a4becd0da21bcef89264bbf481395f427b711695a120d5cd8cc03ee50353ef6e3f8e6554645128fb0141d25529153cd333660790b7fbe2c386de26d1a62a762590893ef895317c7debe7501dea295a6e584a1b34e5e9e9178110b1d8f24dee67eca2e9e074a192cacf0b58671247a26e21509d9325b8e8892327e54ed371ce32aa3f1231872726b9704a83aa5a1a2bf52df2ae6fab760c3a46275aec963b12ef9adf9fb8a6b83967e5c6536a8a32a2664c7ce6e9c8058ba6fcd57a2893291a0c872990e1d07f41d266a42d3bc4fcad5c82015f3438d8d7adb488e8debf7708e3caaf7c806f14491b6470349b5553e453337fe00ce54de3a71f5986f7d2730463b12334a6d2bfced3be0da477e2e4f0cdfeba6854e8f59addf6e084a22fb848270527cacef58f6a825a8f6a694aa11d30862cc098ca84916788c3cc793692741cbf0d70c1cd7a6a3c8e598d689d03a5a70bb68b580024c6db1b10a85db6cf42dff557ad8faa850eedd8903e3820ba14ddbe47adedb071e30a6aead22da98c30b03e2ef128031828ffe97b57bbaa944db94724b977e0e0a1a9230a1fbc401e920921083bc1cbe5d882d1fbda0fdaa793ae78cc028010a1ea65ac24a4b9f729db2aaad923c2ee178f44dc21f4e2edf0c68a5ec92a52d0e961d035d924fc8f3c607111acab78a9c5c73a8d09bbbc1547e5da3e775cb82a124f73888cce26fa1db40cb9f6d86fa5bf00067ee438d4117abf23a8d8437b2df0277c50a98ef16d2d88fa5d62c93babf59011d4db79fcb3d806ac9d2858b246cf2d21e2b9113168d8800ae182d47fa361b8c3d74f8f0914991642ed0d98172349b98d97ffcbf19518f0eb8063ecc606a7bf19f99248559d4ab8e510c2216eb02efb72f50cb29a12afcbbdc1c6ada83767f0cff898d0cfc8ec2fa9ad9f6d812e17c5e80849b64801a55b8f35655fa71f601337e21f87ee78fc96e76c23b3d1d4adec3cc2695165ecc596d1de51b222adeb07c1f5401d69df15d5dd505e52d772da8223a73474d379df6733ef0a2d62225fca84bc6eb8e32c15277af2340833ec1895c9478e71ddaf121097c6e8d87c3403f234ef557a2d23c7def7a7911ffc5248333c94892e56bdd9d97c30747b0e96eaf83d7efa82e38625a9bb6ee184f13d35d956bb97430e117d850410ad76464d0d8727c9e172837cd671462b1cf3563e5d0312fb4fa888944621cea6e6d557953b404349cb6ff35e649df83027161a225fb766f1768b28188bcdaf5eddbff616ea077db9ee858ab601967a412a0a9f4f01c1bab267d1c3e716c155c236dbac9a9c6c2b16f0b93a609724c51ee3c6430eabb8d038b08b0062b9abb60c3cb7f51fbb786db73592349e61c219b7a3a425f7c9a05bfe3886e7707ae7704dfebe70df049c2e1c4437949a26f2a978187ad412d2d64c8e63fc1fe53a87f8d38288607a7fe242ed9c66d6f4ebb2ddfce5cf1c8bf77d22c1159be61802d7f08a805f9ba9b81f794bc7b0c1a6f649b0f5c828e9a267cce9de7051d3695805fc48f4e549940035ac5d867dbba5a7ea6498d5dfd9346a55bf3c6b10b69fae53ed360783286697d07db4dcda456e803f8b27ddac74189d72ba644af9dba8d28de8e2f85a65b862ae4d1da7d2c076e07b6f25b8255663f11e2541f01103c093b280e58d37b65adb95c075672287b0f7488b8d650fc7ad3c40241bf20b7d8b92f3db4328dade3750903c2b5a84a735c3a1e34991ae927cc56c1d246e401c8850097a1d8aac38ba273e4a9a88a28453f02779bd7963acb9e699d1133e69f1c43e1733ef8b7cf069cf3cc49be5e525a3bbcdea7eb5d3af951e1ad2c8c1084385e16afb6b9cf1770bbb109921f86fbb1fbab1914016ff7f8efc88af6a52d2e54d0899677b3801ad964bd4459d7882a5b31c6b824d20ea642c983026570a060fb659818b5ee8a7ac6f1ffc2d4aa3286fdc17bef1c7411110787f4291258a6298d55d1dae7fba98db06bb2a42182427b51464c8dc533e118a80d84e2bcb6c4f1bd25a2674817ddbd8316e0c7bf606ea4a5d8b9eeec81d4b43c2f32a4c5d3431313e428a6575ddfa821cbbf9312eebd145a3378d2e2efa42b0e2e1a35b374d9586aaba63c570fc2eddd21ee42e38d7d62661ff100fc3b19401c0f15fbb1fde4a3737a4c53d0e7dae4016dd239de084c17d332789d146e34df9abc63bf0b22dfe4315a5c6a0c7f78124883b89513c504783ddfc7c906047c756df88a0fb524df827bd4d89b9bbf0e01645a6968768e886d58d0a1fd342e2771b11ecbe1c5a857497eba3caecf6acd5379714c035fefa6b5689aac15031c499f34b8ddc6f5116df5383bf5d241add24ea00b5c4c0b19aa69c8b8e8a55c584802f8dce2bd22758786fe4998c84ac36bc6653a7656195c475664dc568d2c363578b566a8b2cf180288f754115e8bad15634ab8d45d0d31f6963e8aa921e44cd10754f3b4c9a3851aa49e4b3e0166f52f6c4293b5d8d0d0ef64ec091c8bf9045af375b7c0e0e62681f243f5b618828193d736a77e832e5d591018a4c811653468c0ea208615087b2d9f8b97b8654b7a7f3084e8e52e57995aa8ff30182f24cb763c3a4914b81bd457b8ecec6f906f3e8e047a7ee89d5e3223edf3f6242fb88fe2251f380dc954a8ba2c326b1b4e6267a4e9dfad9af0bd9720c5d9d82a0fa6eb748908f679078e727d45fdd9bf45dbdd0bdc6b931af0cf63e694acd45e0ff7c7cb14986e1e9dc6226b31403969f555fe2ca84bae2f0f55548b87f8d1c71fb8793096252377aba01e5689c4f7315f8fcd974f9e3a611af2d27c0b5fc0f2e87abeafa23aadca56e1d1cb0fa3798a320c3d4fddfa5b8d61af0d0b8618069cb2d2c884e31511f96ff3ce7950cdee7a7b947f88e9e7174b9c779f2f866b3ea8d3da5c29dc29e0f288647fe62d8679d99eb16d50216220a1e99cc8508d364806a8aefc9c129d2b021367645fdee6a4ae8f33fac8825c6edb12503703db6ba45442f024b563cc464f2151e73e53582b42b7adb6f0a239ac89a82d600c878f246430459988f5c3594b8d1dbaeb871b0d8afef567263e5270f0a7ae66279b3de9f1b2d6c047aac7c3ea85e9c733c0c4f6f5c4a8aada8873477716b4954ecca1b032bad012142ecc4dd90577b5e44fbaf7d055a3a721325d8fdd6701688be9fe7409d2e492a8bafe2c1248adf1c31fb988b39a8bd816ce45214093c0208f14295b03eac85de5733cd58515155648c650e2bf5e46dc446a53cc3972fbf3955e0bf1728eb34590d0989bb7b15d57b7b463a3a273805b836225a0a86424bf567222bc44b9e57edcdad8287d3fd8c587aba9c7916e27fdfc284907e23a8d51018a001867da1d5c8b34f8bb49b2fc1d2c632eeec380f06a4f98c6b15f17ef448d0ecb64df18211bb8b2a63cafc3e268a618d3ef1924d065f792944f2f50e765dbe3bc85e6163ac1a015c51dffefcaac8777c9c5f4f183ea7a271f1baf5774ac6b93a0afa6b4b507fed8eb0f353094ed3c2d1ac071ff0866032dc833615b7bc4a93d5a8774666358bc59e283950247bdcb4b200c878722fa595064c8df96432612785f909db419da27962afda9568e5c60840c8bba80d9d177d5bb113c50f9beb10438eb2564318ddd9d7634851c356b4f2c60f86cf9f7851ce60a1d52122e29c29d03640f990878135f2b0a798ab1286df17560f3ba8c911c228266db00547564e6f3d003fc7ee309dfe448a8a79644dc1cf6e6f8c06bd6594ac6434a114482bcefccc07c8e79a7b713f0371e4d1e3fb64563dde287aa31984b711eb88abae5eea76879c26162870385d2fd559aa9592f5f902931122620a0a28e7e706ed764c3f634465cd6a69e1c94c0d25bcd3717182023fc14cafc72610f1ee5e2519ffced41b316cc6236ddc3c72503f289f04cdedb19d7b711111408d1967605c2797a4091fa6caf21079498c420c263de9cc26f0741e4ec698cda34315e75727fb2a44691329c9f909311baa803ccefbf2b63a0cebf9b4694576fccf8538ccac1faf20e411a576bfa574e505ad4d8f44b2ffdf5508bbacafaa1410e8545e92538e5d6212e838e830053a9cdf8cfde49d65d93fb56f088bef45e8be5977a279eab6b94e9bfd29fb5988db4fb08e2246cb0103d7e930d714535c565a6aa290a3b0068aa0c3a81d38c9d8e1125242f256da0c69655ce57e5cbcdd1eda87e0007cccf1dcb7ccb9d2bf5c0e35deeea8e3fca31a1c299a8159778b3c17874e39fa07801ad643c364982f9499d2fb0bc083c9865e6f86804e3fc1da499d86c2e1b911190a1b91c5a3bf8b687d121643c5d9dacca81a89e7c3029669c9fb033ac7cc46c286489f6323ab3df4c19f176fc7fc3aeb180271ec3bff032ceded92f683e235668c8481fa9a6ec661812a811c315de3a0494f3922e2a616c2ba6d7ec02d42cdf4d80ea1ce9f04f30c9dcdbabb8f9ae80419382c83a5a87b7260a5c44f4206217d6a437dad51da9dcdb9df8f87aba1c0846f8a2fb401086cf4060dc8382fd7f77e130b8dd8e47e30d3bfe9d827e1b9585cf616cc73760fc7a56c53500ecb6898933842b45f21c57bc9bac0b8261923fe82010c08fdc31bc57689761c9bc8ba397cae59087785d697738d89dcad2caff0bc66c598b42bed0f6c2f939700e33bd6bdbfbbf3fc66079ab7fb859d7772148b9397d6ecf6517d50203524e107c550c6a74519181d68f1f47f2048a4dcd2bbcdc1b73e0fe0aa19a6a6ecec70fe90e57902ad9967baee7bb5901796b86552da320b91ffc7ee6921fca80db5d47d56e0e243a656467217a5485325ae9f188a22a52e077ca53c076d58b56ae5a84ddfa3819342f680a4aedc35d34ea6964e4ba783c6517f1050cad377cd7bcaf96332c2d7ca852534905fb370fd5f3aaa121d68ee33bbb223436eab1c91e411a5d4dee1b683d4e1290e7f0ffe5fe42aeb61e0dfc48cac61fb2bbb5d6aaa3bc5781c6236b5449885510dd2eab91f728b6f438ab5f24eabf4657f8eae52413716ad6741fe0c256c7a918e3ab773d20fb519fe8acbb3917ceb4de7d38a3aca0e6ed8afb299a98eeb820060f7110d85d937a9f3a4597377243f67aada47c9bd0667ba1bd00ddaba56c8992651e9c2422cdbecd5d5cf146931047ff400301b364811e61ec53ab50b1d53881db611b6fc70b80a5d90b03b7a24a63c06a83a628208ad9af924831ee354c62ec368317fe91b33e732c21d26ed1ace78e3522e1f38d183a89eaf6fee6190e00b56edba09b33acf64f7fa0930e1613426dd8358958d185fd02feea125e66ba4bd793599dcf1ee48b7bd640deea060332e3c3e391e7cd72c59191a6b4a226d5c6a546fc66a550cc46e8a4ebac4bc420d91049a80f70a141dc7f991d1f4d4646d32c385cba1679da6009f23f319929b65be3dcd38e9a7f9a09c80839fb5525dadb403e21f5759306a136510f7660e733110d2407ba287ce676c69b56aab278c10cf90e89a471114d0837c2e2d159bba744a326be5013b6d7a3715dc46040950f9c98cee6638bb4328ec4327329dbb64b858344c16d00a3de6a0d0a481008723ca228391e0b1c1338ed1ac12f026067f786e2c5b11dccefb4158a1e9b222586a48244572a2d3f8f697fe30fba6411c0a992a62d82451d88d2810158ea03d92508e4da5b97e63f37d22a10f46a8f77d605876fc5fad840dcf85404a3547d95290c39e57e08fc60a0045e7785ca78bfdfd0686e353761c569aa41a9fe6fdf0779b7d85767b1481a4e951c432319223e5f74836e5c26d390e0ae5b90a3c4fc6e8bf5a6ccfcde7c25a19d1b854dc9b91b228019b2060db66afb8f7c4cd34ef4c50d184daa476a2cf49a39ee814d008e507725a58494029a34481db8e410ffcb8da65302ca5c482d69fb0c4285861acf5d0ebaa8a41b71de4aa9ebe05f273cdb3f3e3ee4dd2ffe45ef5fb92b51f125226c0a380fe71099c8c74ed01c8c4f5c05b34a55df198e252c47146a837ab46303ba22be1cb61110eaa243678974fa2cc4fd5a7927e170ead2a6364c514404ccf8831c0eef4df73bd7e66f8ef036426e029f886d407a4e900904aa114acc748994d0850e8ed8f7d72d771eea8c2bc755c6f7815a960b0dec69a4126c5b9ab17a47ca5b498ccb3b73eb20aa62de90cb0aac5f994ba662c2e8964cc29848e51db10391326c3729f8f313eff2a08e2db42b305ea3b2b6477900cba80ad2561e39f5aead87c95887d00fa8fda194659ab047cad275e11f60cbc8b6c8e5da0996c340659123d785fdfdd1eb440ff04d263263d715899224e13c64afc84577f04b87418bcad1af005d7a1bfd16d2ac69860478545c93605a95ed0e2d02a6f0803b59dbb0d942912854391fba49a28336c44ff268e8f54ca2f66093995da99305b85fa443d09d5d7a5f4be5f7463575c21b8732c1d07a38b15ed5d66e9faa3199a9ea671123231b21aaa0c8087d2f44f0bb4c0db968316f2890e04ca5ca24a033bd32a39a5a4573164004f992e917f7cb9a9e4c56932e1b3e1ace7f72f2c238c6d92409358bc735d333d2fbb6b87859efcf342a138b95cef5588a8c5715b857686cf701febec4d38f99dd258632fd7af626d6d978e894fae813bba47fdbb8dd935da7269dbbfee2147af523c9706a2d04dc8bfd89f1f2799ffd048e6e5292b071c1a2c5d6cd759d1b1f7a761697c58956b4092ffd7b5b0578956323ffffe1393695d763ee8416623e5b7eef3887d769ebe4537b47ece0c1202ee7d1b1e6e4e68d1b1534d9873d3279af0238e64b83ec3479a8e2761b09ae9f1a23194b55aca619aa2ea440eeec353a70f24bc5b311f5dd2bf6d9dc2d4e37eb431412c29b4870fbf996d254c7d134024cadf8c4d6a9ab9ee3b6c888a432a612a94ee37effa2bc724d3b106fb8a31e95d51164c27fabfa2046d88d9233e7acf68bce4ce988d10889fc3d6584ddfb83baf32f857fb48511f51279f6342708dd914ce01e4784a854ce3ad00b68557b1c8e5804a7e9d5f0e39538a64ab8612731d13430beeacf2ea62528d3f1dd23fd416062e0e9af1229a67dd5eec12c3caf85fcb639a6b1516388a17e18397d539a7126086cc12926e3564a979a07f5d32918afe0fbe4d22d7385706f13bb62817ace7bb381748d9d3a33f2298abd208f1f0e60040f9afd9819afd9808a81b33cc69e312a7e9f761dc63e08a94df896e18ef17adbf57cc75f631c497f6349efe393cb6fe900b1bc6153c01045c9c0109d762a08a3ca556b7d79646cd3f20613ea52646594836e99f189c4e58ed492e3550b8ce5f43682d75b67255fcf4f5f8bad0c1a8958a16d1fc2d8982b1b9ddf9ba6f7ca8e5ffb750c970a7fe7c40f2ff74acdc46969619b0041a050d56f398b675c76fc75fe2933cb5d7b99c2f67103ba15aadb0ef659b7a4817f43b96dc56f50d62c1fec949dd793c9451a01b7769f5ea026ffe8390bd38f86088c35a895d746216b9199ed240df4c7bdb07344947ac97e2c70528b64d918e1e48ae45c8b04fc9ade9986805097256f908d2739bc3d3b2c65959f89ff047021a16061fd56ab8c25d3ddb3a1ceccfcd776e4f29b2c4723bf8879bfcc3f63f5d0ea761c7d8374fb35d6e942bac81427d7977111e7172cc2541f496cb82f59dff009f63fd5787c7b47eeaf2e4ec26db92fb7efd09587319c5e46d7eb54a5203137c450a47040d38a7da00294d010e90e19ca9f4d0bfdd2bb3b461a604ff4410184a5b6d471baffdc7ead1a8a88212ef731eac73ee43c3dc4c727aca783341d1049dea123051f7715d3c5138b0869f4343be931d30561d4d3c9044aceb1ee67aedd854acf301b29524d756d6cfa058b4c33f9a89dfbc5af366d81580d41d3a8f3f8133136d594f5854d2c8de741d752a2adf57e9176a818e92db85a5c32f9ba44cc519a1bcf2530a3e29c3bb2b70341e97edc090fff4f0deae2e47c91a4054e2a78d80bfc6daa229617992227ffb760e118ed21002c74c15dd0460c128c866677d56fd071b0d3880ff53e547e382d4e662fb7a404f1211b80eb04fa1280bddbbfcc4577a9f889121f0286c39591e1bbcd801af3aed5c63567ba5a5e69bf11d81eb60354e62a11e69d4d31c949f749ee95dbda72d02730de9579f7f2eace625d4d7b3cfe16684b1c694ac0a15d692a3f64bbf40bd67a3c195e7144945e537fbd08768bd079d62b3f6c0838ebf3b2309e531750ac3406b69c13a53ac6fc081620c9440169512a67d27b94852c9789630b933bc8c4e5b44c520e468b2e80fa9002c80f292da9e0b3c9ff88c94cd254761b54c8c0caf3f7eed97c942116c6596db256f805c1295e780c6e1914165920187a0930a9b616aed005071870edfe9bccd484ace592fd6399f89422f8bbc07ae263f54ee18660b2475b405a8ec46ebb2ddf1659ca4fc58c37ddb509e34fc842a32a08f66abbf9e34597ea8ce7d1bdc077a0cc737b6b9cc38e816f74564b31a55ab20e83b5d9edb8a02608c61defd8f5c0b6f717029c2de7d69b7823f80928cd6cf730e099eb07ae86adbebbd01d6264881362ef725fd70af9592a7aeb4b3c093586c0844efcbe257b80092a2afbb081698184e16c71e00729dada7c0fb5e9665e005751b49e3288f12b3c4c6d50632aac1b0d03a157bc50f7b507508b4eb006249b4461de6737b628ed54144a867d4f75cfb57f0dd75f383b7150828a03bdaae1a04e2b2070732138381f0a602c1bf7c6e36a78527da51f4a0b41ab292422422beebd8b3ed58a1b583326fc2f73af72f06dc10fad17c23a4c73ec285be59f72f876bd9199375c2e4f3877ecb6b2d5ec89dabd1eb239c9e0230e5706fbdffc624fbd082a463d4d8f965634e30fe3b1b09868ea4bd7ba41974835b154608cee47405dea00180ea7ff37cff690c523e1cc03abbd7e3635ca4b2bb5618179ce9175f1848a358dd802ac9f9b01ebef35faf3120c51e9bc8acd6d354ee072e86873f7f1738db8664dc6dc9ce4432bd5009ebc4b456722245a47da38346076a28428f1060002707921b08994882bde880d18a3a3e6c209a98e98cb32914a484f2b77492e14a07aed8d7422799b47e8ee0a8f6ea7d4cc7071d06b3f980189c101d00e629f2e572cb2cf691e73e2baad9b49c5dbeac48ac1f610aa84fe14a0f3ebc6d0dd28df2c9e66a8442546587ec5454169afcdc4e51d99007fe3d6cf99bd5fc5a8b7684c6beb57dce4e266ad73e2e00cf69165b340b1b3996d91202bc023c469f52b02af1f767fb531d865c247dc04e8235726c45e2e28947463689527f426b3803623d6e8cc9c8106bbcb2e2502f7b7e892b4ff99b35cf242f0296d0982b98608a761a3150ca0102f37c4bc3621877e089e28c0698f14757c14aa87ee81d62b570e368a13d49a367422fcebf9e8f4e9356cea36399f61240e0bafaca95026cdeb0521162d2f574fb875e86c61973dc6c2d538e58d4229cb928b0e1a222f16fe3294d564980085b6239d43a8c7168585e03661257e1c5d78c7a0e600ee3c1e314faf99a6d5d6274c61f1ee38b1f7c8bf7086a6a0771d150010297a03bd3b413d71206ca15d3b90f8ea6b8e6b5ff0aeac6546d9d8558f2d780b3316bc9265c8e0c049652fa0d9b42166e824c332cc0babb2efab9fc81de9bc38a81938d1df7c3ad59036be521731361085af78ddf4b2beccbbe19c0a155cebaaf734761395874ebd6fa2d00ef887263bf43ef365ff390bbbed8fcde75013e8cdb23bedd77faf84986e457940668be8d9d05554f9e69e5cb7fccb0014967edb3a4e6e03fbafe52abf870ee4643bf1f51c4863ed8ddf2aa05e424b58d14f23ae9c78f6970195edee7ab853ce98a130c91eaa09c555ea7e68710eabcee6eb8191a4b96c78335777664fc0850977a8bb65a0b380170196726b244252aee64ee5770e4ba2eb85493188d25024fb46278ad0d5a2cbd0d094500201d51f16c51a0997b55d962956be2c321530ba1c7b46b4914269ab14791208ac55e5637abec1a0ebb83c72def3c871a39b0f577c7f4a8c37a68c2db9d3f31c8b3636f3238e9f4eb4af00a4acfbb5c400e619333ad87940d2f88878ca626a7ce60d3d7fabf49287f4edc4b3a681446fd08878e60e90388f7777c5fe05a385dea5bc20bf828ed134f2d8903bd50bea5680d554e5c0f6b280bfc06e915e2eac08d84a4c606cfaefa2ba4b677eb75cabc8e11215bfaeafb16a4801c8e47aae261831287727015058729a0b2e77ba0d542aa545d8f54a1071bc3330c5f7359f26f784fc44252ce6a8caa74c5fdcc6f91630e58872219ace9531a45b00791ce1f2414e08df63ad69b5073646b781b077e14c9ef66b77b7ff981446055cb3f41b242d2c1529fd9743247463d74fb5c864ebd22f20c4bf4e66452ac48ee4c431f11a715ff6731bd24fe26a8d3bdcb14cff4da1dc167c34221120b951b6c2e280fe19da4f99cf009ae3e665d8cef603f290ab4a4e0429c88849d6e0212351353db0addf05a65ed3fe230216aae2b2cc62e93158115311d6e9d10a1fee01a767fde34b91afaf4d9762acaf9c2ea2e41fbaa881ab1567964c43741c7074b1295e065b55391ff54f71fd842766d406d158085a44092ee6ecf8a9e0bff3f47ef7a7d2fce2524db1c3065c6927efcfdc3724d35d7b85949065b9bedb865eb5723d2790e908d2d1fbdf92dd5e2ef795d7e92a93a4d1e164a9c8013ebdaeca7e2cca1ca35c794969398e12359b243d63b65cbc34397aed1cef854b763ed0ab1ed06f3b215fb12b791cd1baebbaa9e9b778ef94989b659d2324bbc1c7984ac2e50107a8554a19418635dbc7da478337d4a2d0df12ebd7e23f2753b727f483ec28f324d33d1ac36fba133795b38fe5bf4192b8e0ebe0a93d1c9cbf3b9f25599dc07ed6e90c90b01c64f5a2d978ca900d4ae2e945e09abea6cc230f71cebd56908b55f232a924cbc1750882d30391fcbe7ee029ffa23578b64225621c6467950dea3ad40e2fcbf7ce033b052d7da30b8d2f11a39a553735dad6250048a89553b0425193776b83f08fc99b6d61e7ff0101f5c3e39411ca2003c4b18fb4f382a62c7b7605d061bccd9ba54a0a779448b7812bb86abd64c6df77acd43245337fdc0184b02188c88669461af9d3f3ad7a3fa570d173cdcf8de45914228a88698e6a60cda9939d899706a7ccfac70cacf4836128dcf69244b573fee14de0fe2b577fcbcb3d9247431ae50a06e66432e1cc86cbf9610a9eaf7fa372e25400c42361952777154b2dca53af1537c4ea46f0774a924e8e1c336a28e060453578d18da39ef8cf53755ea414e86470d240fd51bf9747d722b460c6fdbe1520374a24bd63a38b5452dde58bfbc446e8d1a219cf071cd6077cab7b894b2a91e9c44eaf9763eea88b6dfb35ed871ef878e8778f0ae8993995a517f16b153068fed3c829156020357ce1e7df6ffc5fe82011f5c1f50e26abfc7e4d5198a1fdba1fddee77c5dfc4d836b63dfd6611a1b5801c6d7f587aaaf8faefb6b331d3d1a9ef646aa14851425f49bcbe755c7753ee604170a94ffd29ac152d6a17cb54f08276141008d5793fff4a99cad191292e29283d1ddec9167efc110cb530ee92df5aa16152d7b333d82752e4fa9a789040af680446e10a18893e7b680e2897867bdfc1c73073c27c3bbf80527664357457c752034af6299b16b322981f2bb64fa7fd0890a503f3d48cf872f3cc7426bf1dad3beec7d59349e41a98efd754b19fa7600f2ad417cbec2208d07d6fb35710a3611e22896c86f28c6fb556bc5ddff36fe953147ac2e5a37d06c2ab13ec0c1e32ce1895481b97f14f7d14ede4b90ea06cfbb354647f6d578d4374a797b23be8a025ed5637c12ce5eede95be5a46fea893e3f480eba7a5802525998736320fbb840b82a1607503b51b0ad987c76be46ec6ad3d57b83a63a3b46ce5db1ffb6601f4cb61794f75a9e830b0c98aa9a8e827ce739be65241918c9b699249c47154e7bfd938de9779044e2eb410737dc9a72a7d907e473e2cace0bd2edc3769db9ecc4fdc5a8b2553caef335c9c4a90b1b108bf283ae4a21446fa255b858cd523408788d13c48726e075cf531217e6b7b0c79a12b8851c9f08518d66652782960e875692bf9c8059c9b3adf3a96f10ce4af12a04102b7e76ea1dd20ae8b5333c37862495ccf1ee147ba33e9cdb5245d6808d7bc22aac70358691d23a77f8ad32f8834ddf7a0b8b71b6a264e527f679538778c2f72644aeb12bffb38c6fe9941d6e173726a72f317e208afa49fb61e8829d0e8b58d7732851d175b8897dd1b4451039b074bef3ae562c3fd118d6218fd17dd8bceb50f48fd18fc9afa7c76e3ad88a0392c78e6b9c5db20fd907a4df093c6dac96893be608c538ca63f51252ab2361fe7d282c89a65a974c887448784de1af745d366f727df90f752b4e9cccbe14d1a057f652bd8b1b06d72251fe279a5c2da5cf31a92775d30030e46124f93e3a5e05178294b9d6c198a1b424c76d088b61a5f0f0f4b40d4b68bdcad2719973945f34aeee68436bdf59e58bb7b1f886ec3c59bb5a84302442ffba89ce596a5a5568b5f3580d9919d8451e986ebfa547140db3a8aa67dd5d5ccd6e1b257b7c1fe5812f38793714f47d79fbef509ec63415bd0e705bc620239b631685d1d71af8960a72ff561146202c45751e1711b2f29f10e4c6f353e2aebe835cef1593e9026519ba867d5b23ff73a9d48bd95726228bf71599942c0ff2cb1a0e5a3bb9a8fe5d0f6cced62dca1e6436870c75322d0d6cfc964300e7e8fa549459e2efd879fd452f329ae4149d6e8250500d0fa1b7501725b10a0f66f18f6d387344a270a4518027f7d3152539f967c923054fc978d33af6106dc146f74c001e2af49a0ab74a185be98ec1c77a43d488423e5a590b99d2d858395bcbe10e27363b179c9f97e128d86123482d9720259211915c145310da56ab1a7c88176e50b2b921a83040da5d7e3c90311bd0d12cf07f764e6b909e59223d1c4554063ec29efd10f71e12c23ee9138447d0f0f45cca31eeca434894ba5ba35ae04667194177bd59e432a6e451985957759dc57d6ddbb93b45dc08bfd69ab0e81fcc55098ae2af5d6987b0e083665c7f80ad7500f17e57205d7adf779296602e2ac0f8f2fa070db7c44f635c9e90b2736ebd5ba0b500db815190d42777bd09811bf5ef06ea0513393edc0434260061292ab510ff77df354e11a3903d50dc27533bcad572b1fe7a6daf9822aae2d184dd35ce97065a4aa971a234a9b7b4b896352ae5c3f2126df2de3b0e8dcae27b9364feedf2baa711be17186a0e6db0c642deb68b0c1626afcab885925cac30792c9379498c64d3280abad995f0201400a4a083550314e9d93dff4d56e6a6372046fb74720a2056ae9e04c43ed20668221563854c9418f8f0ea080eb7adb098e9fa1c47ea52acf0aba81ad95766e02fbc85ee92c0cc0ecc6696c0ef5098dceadab5fd74cf89710f52b9bf13f68053d5f0efcf2f9ebdae4bdb849b8375afd52b3a26dea580f3ee125c78d1c71f7f2baf1783b59869ffb59229ff1ea72b2851cb4b3687278866ddbbaeda322fe9a4b39767f5a92d5452ed20ed850488edc36ab1e41a9344a19e419bd52f8e4388c4fe5890f51d9975c1a0b68b155eb78a4c5df1362f527df2bcd42777dac53eb4c9fe48b0a2c57f1488be43e8b0ee7665b8782e96103c95a4252c2f44a6f30571d80ff45c3372d6ad288e3545c181b9b567efdd23dcc8c7788bb962a68532bf087309fd184faa9d4a7ffcfa72e5db7d46f769b7d28ae5a074c205034dbf553c3d44c92c908ff3296d4f92e379e2209498231de05085f38db7fa725027af41824944349b5016fad0650679b0c5e686bcbf1a3bd0bf9ae91f8385842cf72b44f4419da7cbe937d6f8973763feeb39674662141e2d3c81ac6a5307aabb9c178fed1fcc0702ed7a1049a777cf008f77cbb32fb572c547a2ee6a2478662dfbcc8e292963844e459a14e46fe6daf4d18a0cda86c7f1ac2c3b7cad6fda6a4768926ee3a88c502f29b6acd768be78f3417d93005e512e1b990c8efd3f9c86971a615336833f566d290bf17f507c647158b438a96dbbe445d7e89bddb863b855e6071fcc34132813521b0ce573e4fe94b1b7c44f7481d8ad960dc287211e109655d1309c61aa9b436ace495da60ea89ee072f4f4528620c9cbcced526acefd36813ca257c703cbcea80b8daaf8068d7eea0f6d163fd174d1d4fdc25f48e415aa14e9f9f05b489a9986224748918dddd20cc89ec334cec8e928501dc779135292eae6e48279efd0f9d0a7965ec830680c6833ade7a1e8c4d06019e4054b31fa97e26cc077aa9f8cdeaa7e94d63824664ed54c42edd809024501b27ef3b954912b57f3a323b9403265957e64ecab82a5823e16ab2ef037bf7245daab785ff82b086d3b120b3e2131a73b04673be2e856cc35e6883e03cc26c0005203ea95a42d87d1276c27b5be03a483a44e1b1d0144c6416ac4aa345ee0df9878d41b034552fec803d23ae89455dd3f3446145edbd8ebee6e871dd3bc59ea808f8b47bc0202b4e35a71f233cbae7e7c975034fbb520bb8c0f31808be877d32e42614b75372e65a9c01c28006d4a93a2335ee64d0eb691f2a72e85e743d1e1a28369e77e8dfb07df46001c3c0db6f07594d9fdaaad07809bcd81b3c8511f30b18f95fd09db8f900d205dd4b0372c40837ff29de29f005b0a6b95c7320bf53f3ab2c3817348578c49d130e4cb04392f37edc3bca0fe93e2827634916f50d36b80a7a3f329318b5f21197c98269ce976c6372f2d087a2d94417cec0ceba5ec9c715493e08443051ccbddc4ce81535df790fc4cbda9b74877e5edc4da4a747471bdd621a1af6a4b54985172ed46024acc61d953bd4bde074cb7ae74b93f9408bc82b64665efa2a05062057ab9538c791ac1e84afab3fdad7e4fe9e9ed572614348f8ff7cb3c7a276a09ace714151cba2d818f50bf1da9ece970d37171ed72acc85f311d29f76f97883d46a97ada275ed8f03cceb5e2b1f1165e3e6e0507166097dfe8063a3469942cbffb8c031e6c6b50a4bf72c9531f736e14db78e748d11cea2b1f17310196aaed7251dadc61cb01f1a51ca93f3d1f693fd2ba1a4b0fc59a594d648f93cf66188efa058a38d08573b50ea278fd2523aed9ff5fbb52f94aa0e95ebfd68e185a5ab3da160789db06aa52ede7c674fe2d288b5333c73a4acc77e29a33dcca49638945aaa842a30df872d746a8a62800fff593c04024102a4fbb7c765dc45299a3e468714e54af1a5ad347ebf00a62c4ef34b93987732b35b534be0cc18746728cbacb88a39af3ad4c1b5d680e9e2127732edc0b6ff8036b7ea54bc252e58ca7a42d2948ce7258285252a7448e213614676fd453734db9b2149c594f4b6ad48ed49948ded6826189259bce42227d83edc27a07f893425c106cec9016fdfdbab8548b5565602b89c19b37a9a0f6d35333d6835932c448491572d26610168ea4f66776d0fc1c9083dff1f7cd2848ccabdd0a81b5c38b9cfc50afc901ac97724eb5c82dd99fefc6ee16afb281de9fbbcb2e2d3dbd9d63ac1cf964c65b9183f535754b804c531a8cef046f219621b1aebc72305822bc24f7eaa7b5b3babf769bae9e1cb1c20529c9d33c2f73e56ea482d4927d2243bd03c5544b84b3a139e6240a2b8237d88acb5ffadd04940bf9cd7af18e622ddda6433c71653f3348afe636c5d34bb67c55e72b5fda8854b8b68bdaff73c9ab03af8cf394bd5b7e3d3395c2440d29261cfddd8d6e545ccbeb8fc2324936a8e304d9ae8e97bcb7acd89249f54c7b6b0f8b270ae9437e6f66345f8c11ef79391cfe66babf9b94696b17ccc68eb4025b11959b3fd79348fdb2de17105edda408a2f22210db4025ce98415ee2fd2f609e756e115ede7db86a1a9ec6f0e44afdd5bead986875fb7a5f4534f7dc8ceff700cc3a459e5c552d625965f6f790177391f97d6f6273afcbe069cfb1f56767d0d83416a1908a0b9cf6f5390e1f94a3a0aeb0da6e5ed781cc978ede2b10e9c09b6246ecf3ef6ad5284351c79abc41653672c2cef57796432ebfae8fbbfcce538e4a37e6b89e67bce4b703b04a4ca66e94c8f9b7b6609ed5bcdf0e9620c727063367cbfbb0e0c30f34101b01c1ac3c0b419775d1fc0ca4fb51cdeeff4101aae57ee728e7bb34ca697c465f0bc4d06ad7f13071d1c2776a72c0ae39870751ce83672a7f4a3b647dc18f77bc0f9f13746f9e2ba899cef3e8202ca483fc89adf0e7ecc3342f124ac670541574b13b0c12318118f3c6a8311d774171e8ce0107bc1282b5d4d7763dff0b7ce24f3eaa61d29b192b9e90ee021f4a2aee3104f1f2ab7ef6054377fa9f3ebfe0c2089d8e3f003ec37f2e02717ca4032cf48bacc428ef4de6286d8a382ee09bd3097dfbdedf562ee3a4b1ed1d0b8ec9cc0f72df8a7c176e3ca7c36e44e5f1ca3afffe7633bb72f6eb6996db3c26fe65c4a7265b4b0393e7b584ea52dc04565c1c51acfa0bb1955da2b6e626f3c12b3563afe17e87479e3656c9f76b160488db3f129c9824cb7dc70fe9c26d59f830101e1a1c5a23e941f0f8d3258340a3bba97773380bf45096de8f6566197e2d512c7953075b40d80f26fe608c4676df57fd6dc5656f4ec62724ac1d1b8ed0d08520d2e6777951338514ec41224488d79a5fe6e31eed700bc7c3a6d80b0e9be14b5108918c11337af851619708b6c426af89cba52ab59304b9c2eefdbe516a750c192096aae9b9392aa04fc40272fb7d1a80514c11cd0a2f0c60b9fbbed5d0d194de51120411af6dbecf72706c997eb37e779128e83c36d709030ba3d54074bd258728bfa2b6762347d1478912cfc3309bff1117be7951f7dbf37df3f812a4d36994d64213ddd8f265b4c7086db5bb64c6717afad6b46379289a3936783ca16f38cb60da1f94767216402b76ad097f0aa83ae4f74d5d1ac9e7f31bdba03613a9937b3fcf67b95884a503e96463bc830c40fb7981a773e647f75ce2ac8e39d64dadb1429aee7cbc52087537bd5091d19d7ee18f6cdf035be49ee000a6048b0d2174f49910b049aa5eef56f794615e825b7598a1892792b0966d72771dc1284d440c054b7cacf7ae20c5243c58c17aa1d13a5b07045a2710a7a9c1ad7f90afd50010c311eea1fccecf470d23a40ca3da20b1a30b6b5c44e7a23de8e983f3b5f4140f898d0879b686423a095d60dd186a819db7c66c490138682552775f841c233eef0f6dacda64da1ca26343bb8515cf5440fc43d9b69734d94ae3612bb98a3c92320c8cdee0e962e555b8a2fa85bc1a7aacd31bff084e2665d63107682146a3890fb453f32899a4ab8f62a1c0d81dfab53832db45cfe8957e4e1388e5620f3c937a1914811575966968f37908d43a2475bcde3a7bc50761ffc86e5a98474105a829ded0663a15eab31673fbe8736449065019a66a8e700adde3704fd674c33de99f4cb19995c47722ef2cefce1f898f565ded485f6ba196697a47121c25c60d8188997270cc8a0c925c77d436b6861b2b51f51db502602a33d7d1c91a30ceee4083a295958da56f507dd93b3cbb0815e7aec2902d96e3e30ff23932ee4b27c2f3152cadcc92c1cea4e43d20c0518835e5c5d4edbdca8ffcffaa5e0bb2bda0efab4227f62d93736d500be863583aa656f8d9294089bef0bb3ea04ad618acd251b02e3159eb8f2e09382efd4b8bc2868201f144e71172137059f1b4c2ba1ef4c7b0f301fccee270d373afa0a4463d81655a9763ec0ff8fd26348a7c58b5a9e8c99ebc486260511958801c4ea2a241ba4c6407e3ae49f5d165c923fe8d332a5d3059b46fc70430b238068450ce1f8ec477dbd398392e66d6bf58d4728bd108084e6463dbd6d7c77eecec78ee08307ac255c51d025bf7927a9276c2163e4adf0f975bb949a67ea162355236d684d13cc01956efb4527db71ce5e082f9e498fa80480363e45ab1b773fabdcd864237d57e330fe663eca9ca379fb426980cf8d091ae885cd060aef3ef79b3598a209d45f9788e671ef69a55267d32b9894beee3e2a23762b0c5aa06e2ea3a2bf05abf5bfeecee1086a0d85388caffc7559440c31daba90b751f3e4e47277edf924d6bed17885a4956181d99cf2cae346c4ef8d152ccc2a73113318bbf17c27c297fd4bf96f04543c75d3c2f75f569eaf2134319e778ac30f4dfa774a464e6cf995b5c92787f74ce16dd767beebf7e2d42fec2108f1b9b2faae2f71eca83a74822a39d5b749de39b103a48a8b1c469c0de4d1e28de43327c08639fcc7f3c4f6cc05e66c45c98d79259b152d16d54ff3b18d06c6fd3966755f1686093eac23dd7af0c0706367abd5beae4845a856132ad1ee8cf576cad3b56abf07fec6bfc04489f9ecb250a33389f047238207e30746d872ce0b8f9090b30be0b23f53ebbb51a7be34980ef6f596f5feca1f0214948a73e2163c62c1c72a4859ffd180d466d1a49886487bf116708a762acc11d395c334d3150b506b35571fc96c0238b4c7ac2209756f51098beac42d729bc6f7dc5fc8985f97664dabd25a7cf92481121a2bef81b68c2fa7a38784cf940cecf7ac5bc3acec71be3891c32cfdad60a57b4d04b881a5d4086d7a0a35dcc91d9ac040fb5359990649735e5bf5ec0f8cec468343fc0cbea0a1d3875edda70a71a4c343555ff2a594d34121a5c988ad198a7f92f967bd2470f9a40fceb42b9780198156add50f34b740f5fba395d199148bc085bf03fd1d78c42caf88b81774e3c3588e9e470bd07d3a95a3c1f3d1e62cd75c1a09e28593c4565bd679fbe5e7a1df3bf415067ae314df88e08c13e530d4967c444734ea95e8a281486faa6efc9975eb031d577c3dfe296c12c84933116a90f1aadaf1bbd43e2ebf9c8ffea001f40ecc2c74898194d91b97aac723d2ad784e6426d67ae626ba1cb5bf2098920aa7b2fb55fdf08fffbce2b9ae201817270121244891e0ef0746b6936f9efb0b6e0d5f4356f615377b1d855736a72eb529d84b54d10abe2213b70722c1202b16488971b17b03a1116647d1d6f1bc392f6112f468381bca148d4b81f19c1296d2f738ae26050ace2307679357a1ef7a01fe809ee628778d99dcbbb4893c38d9139ebbd9e3a9da6f72042154789ae7cca6373e511f0082e6f308db94fab00509c3a50517320faccee5e9ba21bf47a6ac46c449aa3852f0440441c7d8ed5b45801a36457b945465ebeaa8d32566a614bc6a63357d1e643ac74459aa6402760e6d24c0d6898d88b8f14c14ac09e3c7e1979354e1c925b2dea39f450adaf68d0b96b878498ae7310de36f65ff6a9e50b11ae6de481e0c6a74888f9fa9b1eafe10126ad373ea9ac73ac46cb76be3f6fc996773c85eb5afee8dd88427f880c77d03ec720e981ee23613d88e8a6a64d917f455cfe0f9e454566bf63d3d134db6930eedb0a698b1c65fbdb05843d9e9ee047818c278d1ac8deb7cff9b69560d5f1a2b0734e03c777796df2187aa11c59db7ac39e3e38978e0adb5a680d47bbf92c3f519b442851204259a5d7f6b9202e33ca647d5fdd0661bcead166dcc4cafea90d50b81181042aec851c6349537ac562e14c9aaa18aa7d9359505ed44e2d3d95a727125f08da4dd304a3fda1d03ea8340a055b6300dc320fcf56454517564a74c7b3d011e46e7e6801006a25c75431cb89ceba8106edc23f34657f9aebf06cc66bd329739ab9043d3b55e668d758373ef02dd6a2bde402b1b4e55df39ec3835fb8912259cffd88bb4d99c5450ca0020d2c1ed8c6c16d6562b53adbb7417d904336dc163e6094380a384539b2a224d91645c7d8846d439720d22c6560560ec7c8a34dcf97ad9e6b497d2b5ab03ac8ced3ad8d5462c66a45962ddcf90368707ea4f457740009ba0fc776d72d5a63ff88bfdfbf9901a48e07efaa0ccbb7521fb8826430277e27c9586a0d793e344164cf1ecdd8c1a0bd0e8f55ef41a90d556a59686068a68d0a3c0bc62862fe8f112254957c2acd380ea0111460decbb8c330bf33ce3d2d13d2f7a5683cced93269b8ef5254adb0effe65afc23e24ff173881b03e63e058ddf4d2abeba94b44d3dff42f44ff14cd192548ef9960cc161895bbdc67977e6a432629add35ecfebdf972608762dd395544ee90d3f77b5ac970e80b6bbc19d8f6f63696a0145daba8fb9594c501fc095fa897e1e3cff72087ee30e2facb6717f8ad43cf01eb184bbf4d8c00746171768752690c8a5e720ac36e1d1832942ff7871e01344244f33b8ddca657d2cc56fa055bcdd246162bad4d7d2d13e25df10d76d54d2dff1b2c17bef69bfacf1fc92cd8e1ab8ac41da1c0b84db88cc83c569288a0e27338600a3fc6d04f11774b47de5b84a786f6cf55da2235bdaf339ef65f5c13d76ffa78469564022de538d7601393eb6999213a5f10542e44f050c1705e6d0536544ebd44a48b080dfe2c5cb436523d000610a1ca6b14584e3e8e39cf44f311a26845f91fc5ffc3b0c342083e1c8aa9476febface5418735676076f3ff303160a3371ef830c5ff6c8a5db1cf6afb8de69983770cf627a676131941d18dd99b86d73ded2570857cb8e0c426ebf694c93690831e12d3a7dbc9e56acd32f3db2dcb123b5cc3898834bec93f7e8a5e06f00bfe26260ed613b2299100475830eb43085edf379c46ad1e93453e3076d17446304879fb4243bfeebf60772bb2c03b6a154c85969b3e945f86d33ff5c6e5c097db2c9a7d84084308cca056db0a8f306e24fb174a1c39ebd302796410fc8d61712edd7b47917124420735f30346e8091ec7daff81a735b892de3ce2657db1ad26d5f18c97bc9a86de40cce607ad4df5078e195f6418aadd1f00f316c031b60edd9289b2475751ecdbc7193dd8a49121287ad354676766a4f5c8fb444f429328429d9ea7930ba3173adc90e44c0d8f629db89f27b8d745b37bacf728da049b769317d50882b09beb961ab228e4b01fa9d7be7ea0d508b542e36747e4e9118e61c4abbdc901ac9378ea6cc0e1eafdc587a336526e1fa5540ba5f8dd722e4a0448cd2ffc7b363489aa1ef429f7c449532b611447c53bd9eeaebab617ef8cbb60a94aab9fba39f7f31ecd153d308b42ce212e9eb23fb3ec993ecf0c5e6f70ba7c1c1b6a6d6461fa4e99687d55dda81925ad9d27f21c1140d97b1ec054e487f35bb7161307ec6658a0e276f1fa1227c0a7f35a78200b04c80ad57bf5cb5d493ebf9cb16d84e55a6d8a4bc8b8a086a4fe3b134888b8ecce8f1978e6cfd822bc9b6647fc8b33d614f09c74e0182e121f57c131a560a88925b94390d5bab0b1138d75f5b6bfa3c3e7d3db0149c2316253c9f2bd03a1c693b0e786d3ddae28663081e251178a0f55e83df5eb548706bec4a20f7bc1e70d4c9dfd5202e97912f7df77b75776d04680b6815f96a990c256d15db9322323b42f09d297c61285f9357d7df7da44bab452566035d02459130d3eaf50484693de94d8d1c253c838552510d650913160d16f26dde8682a56b3a8ae778c93af9d51329e83fe3b18639d29d14d25ad1597178139dceb652394e4e5380343f87df2753c25a97314b70a3a314f86647699fdb14cecfa180e92131e576fdf70beb594e429885f386c66667a14cdcfb6ccafb070e800d4e2f6aa4e2827dfb17078a6aa1cb777c1c5f67efbd05ad746f9d00817706b016442619ad27453be7445da3590a220148cc4e7c791cfb648b65d9e9ca8c0a6edb912a3b496c066586b1e8f13268e05d6779acc4d26d69087f55747074b8f1d705d5bdc62a04f6577089f7e74304014148f19725afda01e7c0e83b07a0b508736cfdf44927fbc73690b7fa47a0169fedd0c26a8d2822cb1054a9bc4673d616b5a1df748aba75de01a6fcd690a15ab4edd878dbfb3a82b0615600fe939560108765977eb080a10edac555d2115fb34456aca45d644430d5db72844faab5f907c430ba3541bd35e32fd5b2573f3ae0a9f28db888878a61ae0e6b9801bb022431b7ab598ac7d5837e3b12fd0a0f5541f17430b28fefb5e3254796592397b3ca056436d670ced4177ebb8b6de7b618ac7dd53e9513f3514547cb5cde9f0081dee0f3638151bae7e881a3a4336228ae4f5f60d2b5da004e8e3972bcc454d12802a0fc7910da22e1193915946bcb0585a9138bfed2367e8088877fc610fc1fea461e74f2de9a89b74916b9e864679dd0899f91460124311f98f8c6215b03ec0bf9990cfd001aad04740d4efe38faaa0828350622656a8648247cc4864faa22567c5766fc2546438661fd118bb1bf3d6747d8f281bd4c03798fe981427b0201963813fb074b73999fa8a676167f09266b6bb2e841be8dd919c096dab86baaef1e9614e8683d4b73d53d52717abffdba591c095db83ad6e3ee3807ebdd1c5ef6420af4c31ded5b855294899568d42f9eb83b08002e20c647a5c13541bab7b6cedc33667d5a8f2d13644e8215e2890d60d268d24d60403a9a4d9f3ab0eea0b36ec8079ed804910a8cfe7d1fb5c18c5a8d36758976ffeb90a9dc5c50802ad7e69c670d18813659e37c3675aab6313134bb39e940de2f5df700a9237912b3a15ec120abe0cdc0dbf7d0c526a5ca3089579c70980ce208f209cff0a346f5e38ea6afdb82a746a3fb30268a16581612cba30737469d4319375119518d86d6a7c2799784de31b096bd53ed07dafd760008131d2d5a1d99e0c1650d5297d5b3029500a38e2cfee6844a7829e228ae417432a363b6a43f6353dbc4cfd8195b2a8980b30a6d8c2a170cc26ee5667d6ae2be74e9cf7833b2f75afa9f5fb2352fcce6603d901b6bf0f000ddfbe0ff44eee682d74920de356742520e31060e8d2df05601f762942f4751e65f178bc2a0243438380de198f1657c8b995d4f028c36872afbd56959f77f767a5d9619e2b5655fab8fcfb719c7155bcb9bb2b80441212049e4e8cff162ec402a49eb713c8edd667b88004b184635e7ca4c031b72c5df69adcdba796472e22f99d9e5a1cc88be4e9b6570370f52ef1eb4a634520c369831e21138bbbe71afc31cbb9cda365a217bd338230bbf56c0c2aac0ffcd753bb4108a73ee3e92f54bad4012eb3a3e9db4f83f69e429aa8c1d3141f9b485b52229bddb8bc29074e7e2bc42ce2b3a50f39d48ce8954d5984d100101f14940ba857a341f8974277ea27dd095cb1c2ff9b42eaec37f6b4f13793720e7543c41d28339c8333d8e19cc1f671c60c613426b324e6f38f9a833eae8e094e3781332328a0269087c94e300331807fd1cef14fd83bbf296336db0b2f52ca95bc28a8f72ac3b6b26ca95c6bed6be7a7c626c8ea9ea88291f12343f400b6e30a6e2aef80f8d1567245b704f3189b2fe1ec1ce818dc0723b6584acd7304d36cc92e1777de8d590c33160698885b86723da2cff5e6af9f3ffcf3ce65e624bc592dff7a971c2408af28ea6ef2f6a3fb4cbdb6590b228333a681bb70f4177c6c73cc2390758c42f0f621286a31098f176a6ffca500050565ba0d68e7eb958849b0c63111c31fbd57cada51ffe3f4538f4bb5afc536e90c66e58e625fc49b03489f55f8930d8d7ef2ba7c5eb319ab0be794ab14d9ec93b236c58019b90476d65a62546672820ac0bab6904991e4b9a2e1b4e0009dca8c797f13b33104630438751f91e165c113362c9bd873a7295c8fc99f7f480ced44dbc53f55c419eb228027a8bde60b400063ff4c889c651528345ca0672f358a90c069981b06ab4ecd959268af4fc923727f9a825d6e422d517b906750e3c57d5e5c74209357f456e5462eab2c0e4518b7a7bfd3d500d51f85798851c9556a8bae0c2058448af18f65c843f5f17826392465d81fe6ef6271917c1a01184b116b3a746d4d7183f82b8f911f1d4c0a85d1cb88af9bdb8531db2b1ca62338e5008aa06e2db552aadfa39f5aa0ea3fa6079315f7db8844ce423148132eb1019bf20ce71a3586ad328046e5fb11630f5815125b10495b45cd1e17869987ba1c1d23e997ee95f4ec158d8d70cce4ac2541cea37859ec170ae5ce4484e0b4075d43d801066c3048d737198df118560b7b1b44ad7975f060b1adf2afa986524f5d5f134e989e17737bc9bf96b4adaff54194e35d3086c1f2a1017a35cb6b94800fa51ec32e71505b644aba715d705c2978c44c4bbdbff415310c7708398cee6b5ae350642a764103e0725d8f69a38a2aa7ef7f83279070aff2fa41abb33acba820fbb71d994a47417d495c72eba70123d594485302e4852689894f6250138409971e983fd9aafe505cf381bae225e26c2f9d05916a918b9d1093e6fa97ee157d4d923106d4e23385defed60c6025786bf2e26c3fb80a9d31452e4fccfac5e24a4826b2c7964b1b081808027444d5c1cb73e9a1fc4aadd51ecda97eb249078330d5c724bd73600bdd7a33d69903a2eade2600b786d03b394901ab44858b3e743f2887d9614441bb870c9da4273c470cfec416a8582cb3a79ec1fae912aa1403ad9dd17b184ae739c143cac30972ae0f20e8314edc227225ae60c33feb86df0161c669450e1bc70c5a2972b4cd96f95698039ffbde39fca89f796967f442b49fffee26051535790222648ce43c8db5aa5ee6db178c19ff2c6928691cff6759eab74432834498d177e63152c077178101bcb9b0e2c7cf6ed6da83b50287ae771cc722fc52c521053b91a947561bd95207e9733f170bd596e68ed25d17f71a3af389882042d30b86720aeb13afc35470446fd1a954ed7e1db1d684b936000cefaf68eca379576fdb237652c8184eee3d7af6929d25182893de62cc694b99a110a7404ca9774567dbba40a182becbf86ffad1bad2661c0b1b1c12144a13f461914784af77683ac7cb114375ead01ba8ddb770de59117d19e76561786f03950174cadb3fe4341005f7f42353816d8e21d8dabe7883eb033f7827783e214d43b406ec9863c5ce0e6306a7e0db663b9ef9cca33383cfdcc6949aeb5afc1394f564e5cacf344aee9271d4259f13c2a9da036c4637b208fa18d8569bd3c22b2aceffdc905ce5d2cc214f92255f2028b5dcc5918fb2143c04dd57d07837115d7abaf8ff953f1020f7cbfbac4bda8937a24f939d803a32a5270cc6a957feb413635e049884d1a60e79d20f95b0a324e57cb914d9cbcd44eb63c64694380eb60108dcff34a08b2db81c9c6750a6bb8e8cf2666d0a8003c9c989df9f95ccaa8bd27e79d5c3a6f7f89986c5e90df6387e81979294122e0bdf3392e187ed195cabdde35e3d46fd973b555e53ad068978b2a78840fe3515a23a99a1410c24c206653a64e9bb131d4cf5ea6c40d60d222fe5d11f87d3efa6b2b0775066c6fdfdaa589bcbdafca0f72adb55c18248c972de6851631059cbbe37bc80703f49537748cfe3ae347ff0fb195a322e7d449c38e0d79398a788d88ae9d9eb08b302a69c11c637533c1afeac926403c4847aac0a9ff6673b30b632a8e55ad5665518646c78dfda7b4d240577af95d1ac1596cbbe4ab4a1bcccfb6d56b160ea52cf2e348661826f613e89a689ce3fbbcd23f6b905a4f7a4c39c8e2ceb8fe4e154776e3086b5accb8eb31acf99c6ed2e5e05d2a4eaa5b1c9d7214841e8fceecc9fa9c09470541f11c1542e629a3d8cb1add065045062bae243f5901568488de38b77d3e84e7ea29121f4cbee97a3f86785f0225a9e4737dd21ca9ff6360fb0da6d8534e2a91f81f89444b2b9794a4d554172d19c0f3982f14cca8ea782a47d46d70606944854f10027c602daaab513fb1bd183ea433243acc399270fb3d8c851fdcafa2c76f6b4e6b7ab44371e6c57e7df34bc99357f66a984105058d5957e46735c0736b7bf6be4fc30af3dd80bb01aab5a595d1d0f55f68024b601eda09aacbe4dc37125a885b5520fc456154066b0a51739f1525530c64bfcdfc1394710332e182afc1c119b10b1a8048d8ce03120800fb8b8d72ca3a22870c987afcff103f66487e2b60f0620a4c068c882a1581249c981e6d43a4032f1b3fb84b9494667e2b92adc58685a55faee1a72cf924f64b0d0dc20e139a57e2d13322c2c79a8e5d66d728731130c24e2e31b1105489e5f7604c05a4262d7a866cae61beb34f83f620553ebc4928975e30c2c73e43ac7321b3e91a769b7084ce1bb4453b836037aaafd82597c8d216b8d5a28bbb2dc4fb03533b56b6ccc1df9c2cbe60d256b60d8b4fb873c0981dc4d41e3ba2d2648e8dafcd74b4de726ccd1917c28b50e83060973728a6a31b213c7d45cd35731c6e6a6bc83f52a21ec2e019ea5a5f5a5c45fbc3a6d99ed37224aa17e82e719c628a89e8d4cff26df1be80d44c25bd20f4f2a0d6b8381d13709b5146e06507dae7851644a9087a78b5ef69ea908c4725914382100cad4eed4db205d6de94acd0aa33edd965117463b7ef2abc8edce40e3d9acaa881f83bdeb281b2fc264d9adad83b23e7d29a8f6b037fa6104669408e27661517a32e560bc113d3e702ec0db475fc7efcbf311c29e8e3970b7d024952cc6cf42d76c6f18b34f9fb9acb23c8379c11f840ef3191e0e0040674d7b6b30c33c26a05caf7c541d24b501e9e318e2b6ad9408436510963496ad44a201f75867bb272b546ec6f41a9a10afd178aa81ce9f73821c045c37e7d2135b1bf074ac4275477e0c94beecae8a2f913b5f8654c865778b095bd9fff454d301f9753313bd636da0dda5227d24caafdafa84695aceb62ca8adeb8a43fb50920eabd60ee145ea670d43af1611763168bfc4b7f0eec4b3dac1b7c5b7d47d52b361bd80c86847f4601d5eb65cacf2ab82fc27bd12893738ed103ee75f67ec94ff49501b4c72a9a5fca841c6df0ddd01904757fde40303110a00ba85884ed459ab38e872abe8a1b11fcc7de5b489a8a2e3e9353003894e66ab3e54300bb0a7e8c1e51eabe3e8e97c23b5ca274aa2bd15aa05371b2f51e55175ac1384cd51eed4bb556e1c6601abd981f13c356d26f7faa06a46dd1e01bf7eb16ad02bd32339ac94bad5b17fdb39867b6dcb3aae1739478dd7709d7662e78b41ec9e329d292b94689adb60c3634d79700a29013db7c9cc2a6668d9178ce1eb2dd49a9f9dddacdce6901a575ed8cfab872ef20fe27a002e0779a8a160cd5382c714a1ead1b9baa61bbfa7fc8499db206746f951c12eccc5b790e5bda9a18dd472e6f16f57d86fab1a339fd873616ccfbe3348a3d4c20853d6b1dfbe69f19943619583a2192332b8f19a382a1e36e67298fd517b469f64f241d6016261dbfb96b6ee3ff6f126de04b67a792dc42e969edbe54fdb561fa7435f6db61931923aaf01b4078ab571251b4afd80a288ba65a4fa8dd2cec10f3d8056f819df51c6f0b2042d0dd89df872f7263d12eafb9cb1d3ff84d45f1b7da2c5496fad66db3c8c608bbdb0b7cccb7ff0dcb6ab9250bb63fad5190c2a07967d39f8cc9c7c5f04d82798f124aef64a2fc1783436ea7853fc278c7c6eee8df23bf6607b768e7e621ae3d7edf158b917eef64f995e5dc6c139efa6245de485517cb1ad1901451308976657a8ad39e616a9ab5f35e8cd4ce126a0b9f5c0043aafe4fad4738d4aa6a162d8a2a2b91c687ab989108d41224f8c8dabbeef30ed49414f8e5da00aedab7e6fae0686b45c9d87fd698222ac373fdef0b9d35f4666d2a6a1398925e12173aeeed95c31934d6cf7d021102ac7a8a3605c6614b82130968cfee2f86e4bf7f9d54b359fe8b62920a859afebc203f4ebded31d67e0916adae4befff6593b8b68de190448fd145dacb3e76ab3682aaf2f0aaaca70e16b51a4126742bf07722cc3b796f3121b614b7792ef116ae03a7bbf41ead3aafffdb75c97ec10b7d992d91dca8087c129467ca1c52166e3168355030e1edd80b64d567d17575717638590f2a43899df6f60f5ee4526f5425a93796ce224dd63e71ea9f4be54933d85cb272e20c3b7b120e5259a2455978c0ec79753da314e75800b19b09a92411b5b4e52e4479075be2eee9974cfb00a88ecc73adb1b49bc6df7f12504577b810b2c23e889676e55993a786827ee1685eefeb7b1ea15075794aae55a31a49381f895ceef2a14a84f08921a553f4721a8a96de6784493c9cea8724b5a70853dff1887932ec327fc58adbd3f426123865210b5fd2a5263d4f5f75b04c2d748d4fd51151390a9bded776d245b0cc5c574df22ad581687c5d8f416b7f679125cd085a18c9d9002f8005796e61935dfeb58bfea22ca910d340720db01879a8c96b7a92a8347b42c9e48621e19559b744a8419e77fbfc2d7688bac100284b3f6e8071e55e62c6b54623ed9911caed5c2332429681f8d65ef34768100d182af709a8e54decfaf9b10625f5ff1a1fb6b0afd71249ebc1e11e9d8933b0fc7c1a30f25d663f982ffc146ff2d58bca82a522a3fd052cb4f3064c0de3229ce44e614b66e4aa4cbab883cf6a0f5cb02412fdb6dcd910b4318e99e99d19b0c253f4e8cf04bd061c4124f2b4e4e7631bde4be73ddef33e0089acf6eeecd62ca2c81c4de151b1c42b2f74b9b54f4c85fde21257af4d35e5a1388b169c5d6d59943a6b9709346baa66190d67ec1efe0148d080d461758af6048ddec7e397ac5f178ff0f68c7a9d268fa8f4ad0e4c4c49a07b88213ec4121c252b798ff806c6a3362676fc5d53bceb151a600ae5d6bfa2a06868e0a44ae1726e8c4266ee59411d524e982550d345f906c192d8643cd8d19d52eda576404d11e3797dcfb002012ae7ccb0c055729a5556830cf9e904d8c491a88421927ed2b5e0935e0142b9560daa5991736d8c65fafb58085cd637a1a0fb0d1f45270382412ccef21955f9278d33220eef62e295b5fcd04a0e8fe2a1bb7dd8e296717002e03af0559ada82225fc2475899ad18e600b48a40a16797d059c292ae16c78d20ff0a1739a203d50058145c28398735f51171be6c088ee9b83bb87a6b616cc3ef774130b9a595bbde8e27eab8ebcb26efa4bfb4274672f39752880430fc49a17a8ba980859725bf9de6c7ef90ef533ac543834bad8176d2882bbe5532f171580395a81f56c1f6af59af295a1e0e3fa7f60b62737b60ed26c1e3fcc98a28603fd493b078b2c4c61fed51769020ae1804e934dab300bd8d96ddb7426ec626034fa0ee3ecb077ec5e585371ceae2d8d2cdd0d8c3a49a148c493e802d86491be6a773127fac0fc4549e495fe73447bc55e329c2ee73e4467b6d73acea098268480934cf3a81863df1280a546430a073c809c03f02635580efb3b98f7d20ea0f8a5bb1935c0732c7d2260a74d3115c21c7684741c3492f6a9fd18610cfabdaab172846ebe9cd37246880d1bcfe017fa3710b853e6b0ebdf968ff250d8abd2de1eb1d08df06b7c3f2cee0118d989bed6c9d6407abc831e178307b6407201ab172cf8c881c457cfe1ece359b0e6671874d7cc56ef87742f4a109054ee971c06860bcec24043c29544ea634603a5c871133b9e84569a268f3e87b63f9f4805ba1bc2b56e700299d0afd40d28aa802d6f02c63686a3656dcfe4bfcde64313ccfd220a10af7cb210b2848e4cba09ee3cab43cfe4605c9b96c2845e8c362e6f6b252ec79e8987d347aa99d961eb80d8dc571bdb865130b12f991b766e495f954ced6b6e1f8bf8dab4809cdca8fbb72aa9aeb6b130d7e10d2f9dbf194147e3e82a4c7a0d0e22d268ea31532c224bfca0b129059416cc39ab0f6e31f4faf940b5ae4626b237723685f0f17f44fa9640d026a415424102f390e0cd3c5b40f79a6bcf7ad823026a18711e346934d2c50df55d3f08c116ea207cd6f7c1e43182d59b0753863b88737de1bcb953e1e81ac6e41f10887795fed4d19e30b7700ad614214afae05b3d46757a547c2ab13bfbfab425da89a259db681884204e2bc38d3329b263c3a476b94d8be2bbf6b64c08f4f4f23ac93fc4bf46c62fa8ddbdd26b6297d11be1d2c4e8186bb1d6af5a8a59662f0448a37276af47ade8c15b983693342cedcc512d0a2640acf1b92e0815087350f35fcbbfc65f56d9d0e3afe18f4f423b2a36be8e33387383cf24d0b1fe921fec95f797856864effadaa0bf18443c248b3bbf01854ef74ba88c8a2a3dc5a188a7a9d815cc97e282cf91d9a074cd02ca95d2a324a4d67bd9e5c927a4f10d302ba35c1b7f4cae1c5300939d308e29f4ca2dc2aeb79a45144f0ee9eeaec6d4664b66e0fcc08f7a75b74bc63b1fa52b38c26c4aac77fde0822b7220bcaa420ebbe1015bf361c82ad79e79b15ba373196878b5dcd46cf1d0a1405c24c9849d2beb842797fc25b643203973a5dcc4568d5f386c8686da370797def96aab33c60fc4f3d7ff0e6c1ef5ab7753a5d3f482d82a02c018848fe549bf7987cbfdf53eaaa1ffa2a25f37b53af499e50c95027c7b181ff63ea3f26cb5a72ace4fb1b793d0eb4405f2708da059b0a90e96ce3c651fbcc679982388bfac5e4ebb722cafe5834ef11bb73e3532dee1f28dca38de6f0fe2520eaf5863d408d8db4eacb24e2f26a7d6bde79796ce85e4d59f0e0f78420dada6bde1eb2607989c39a98e305766cc45955031f607ec3024de4dc288be0f1b53028b28d05447f32567ffc28fd2f9e99626bc43d09bbc2d7b792c5966f6f0d39c00a9803f40a16287ec024afb6913e04fe541e1fcde6253b7eb631d6da684311e29efef7490f02ab5d68d55fb1686d64cedc3506c59b7275f0efe8aaaeb94d6f2bd4091430679322117ba47445de19dc769a30a7751d612b577c2269677e2789fa2f3cb9fd38ba984fc6fefcfa118fd36f607aaa4907ffe91b8ff97b5a5c071713f4da77dbc6a13a9bd46d5d30387076ebdf252cdc5fbaa1817727de44549bd74accf097355ce3da01e629cd1077d231ca34b33d13db0e26ed949aa429e89d0a46d5f292fe869d6f6d10bdd9dafbef3a9f4b6b630a553eb0bd5b9f7380ae3df4430ef496c1461f9384e93edf76022506c553ab16cdcfd45bb5ecf603b4ac195ffb870308851b62031b5c7a935dc984d281afef42e17db7a7f10065a4f012c61887e2c9fc7c1e4123328b217eceab591b3c142ac8a1a325f9732cf5b54233e67162ecbabf8d8e367889e40d7a56dc5026bfccf2fc685961193ab9752e05cee9be7574384e9e7a6c2bbfc46c37a679e7798f4f71288b78adb3e69c6c17a00d65d832a1d3dcba73188d004fa3bab8f7eb604f9b6c08213dedd6f94a190e97cbcb9dc15e725007716d8d4a5aa6d949178c69330bd04da26679779965ecc6e7f8116d3cb67ec4814fea443a967dc09ce574e88695151a50e1adefe98e3c82b84354affc1f6e0795976e6a6d49ab6e927eff7440a6728a6f424a79f6dce59e5654354af722df1c7b724add724b3c39108b4268a607592854a1feb529b2ef07853b0d2c29d343b96ff971214b1c5646b6b52563038bd9753a97652856fc4abd1aec61c7130190c9b24817db783b3312e68f41c86a63ba65f26f3bba4e1c3958f1d9608f492caaeb5a003255a120a0ec18a16b3f8d649fe259d5d9360ff8f18023183b7d0a8b6ef0f71ce6febc773578869a4b329d977648a77fdecd74f9ad749b90568ff0b8eb6005524fe7d782be2d1be93b5143d877e783b46a9386fb4e84f12e4045acde20f62c50f14662c374d8be1f050ea36b6a85f69e98014e6881979a182c26d164ed2059a1f0f7104dfc17ebf3b8226fc38fd91dca9a713f0955a6664c9a39b2831280970443f64d6456df91c60e060edf8611bb4879a6324cfb3f4f43678c4e421f6dcb7339e6384a52f753f3287bcefcb74d8c538741ebfe8e03966c29b14db6df73303d218d37585e7b076097032c8d5c2177687b4c31c38728339f3d3c0c9770ceacda3c5516cdfd598e06c165239a031783348bb479bdc1f793da4d46b87568f3f37000cdb8ed91d7fc729b2d9714872ba4d20bc71e40d04fa9f06eed7d2ca008792051265a5b970b1070bc29c4b9c24d5529deba2875a82046f32ad2c3560467319281b75dc1f261f45b5fedc58201e302715e25a6488ff1cd7eef9977e4811f276ae97aaf3c6a1a5cdfec502bd00244452da58494159c5c333c606c6a1a9073db89408cb41ef3c7e500f1ed9ac3ac3deb22a7b858d70f8c4634ff79bd911259794c5ab1cbed0dd1d2ce30a38779fd90d4142984c7e136c553ce756f5e084efbd72678cd5dc504f50d19be15f51491719c518b12be6189dd11948a059414733a4d552e6c7e7782c081f57c2b4ccf1e07145c286b4a2845bbe01479749a0dd2265081c03b1c12a317bf088c8f3f7ea3f18c3861026482c9df5782f2f84fbb2387eb88ef8cc1a950b2f3cc6531c0418cbef328792a341f94da24e08652f19e725700d26cd6e48b799c30515ec4014c1873bae1119bee46dcd139e19749e6e6184658d38a33c93a6fb5002b563e8ff5540a938170f139e46ffe4bcc3f249e5ff73588bd4de1eed487304f94185c6f8f8bedf9d5b22d2822a42fa201c8317cf381bba26db2c213caed159eefdf1c59a5b47f90b6c332bfa0e14533fc6342d48b7ea3ba13dddbc3ff63c08c2ce941f8a1889347812c49118292b714e8e62bf7645b6c3537e4d879c7a660aec6d3d2410712f35901d99ee5d1fe0c392813454f27d2c8ed0218874f48fc79b058c99bd8ac39da164b82c0f009f2647e65f4ee8c57251d2603f9583e3e7963d1fd0caa81b6a17a7c56bc259db4daf00c016e07e3efa5074bbf8ce4ef3079c8a6fb9fd3a8344878a26291a3637073760504c974533457d485d961631e84cb2a346e1e2df5a0d66bf46b2df8b3d5eace7fe695a00b1477061f9e60348503215a51f0d393eda837603c3f5b446d01ee67d9c7a7f6d0a969d5b02c785961cc5702617a4d24adf808597df37b8ae6c5efc353f247697dad06ab29a553f881b65d1d57f15ac4a7f7c2c99dd4303387c484f602c401ed8be88fa69e0286dbe89e83790f2088997ea9fc1ae208278aeff1b22b0c5790fbb4ffa719ee8d06f1fa35463cf414928ee4240627377b5340b146a11f348388119b23790b32126bcb4033c35cf41d43d3925230c24cd474ea979e2aa4bd125330877adbb6023d0820b7104c25cadc6c5b4de67c2f808ce07e810875209844ec5d3555b30989d40349afafc9b7912d6d5cf7c31da7966077dac608d50bdef5a620b180ef2761ad6fc53f89ee86afd9c7d3b7421fd647b31c3d3490f274a30ce307424788e64c8ab7b6444c87d80651e4fd2d00d55e98a533cc91a95b7d14fe3f2468f29f51b64f0763f00a944b80e3ebdfb535255204f0730ebc1f6fdbe389558be8df6d270235d2b4eb59364ce0341ac0bcc19abb79c6df714c9ecf57090566d6e97bed59b2dd4eb90603eba0ede48eaa25573a172351c3c3d10e5e4fd0cdcea120b2628f58848f24792df8dfe7a5d4ecbd8473d501846db99834103536c3340d0ca8a5a458a1d8cab21d73f44d3bdf9ac1862ada585fc16b04c9d60f99d98b4142d2cf267bb7fb25bceec29ff41a370b7014c4ffe6e2d5d6769a2cf5b52622e4ccb654d74f30c7d526e70ff36caa665ab09b5090f13d9a59c96fd697f7fec7a595eec82e60720f1a8e4ba1d8ba5282e7c59c70ce1e06db3855b2d1b514fe07b4e2379ad7319b705ca7d0c58a5be4d1d31418506e207f141c8c206ea4fe142346e3abc32f1987aba4e20e85189c053787f63f23192e3d3591200b15d01ff72d144c6919c9db106c209b9902e63fa5e92d9ee0e2ea4facd387bede4e34ea803edc03461feb22b359a2d79b2d2b77ab88350d30a3f3784660d253fc2de3b5f110dfdf597e11bef58e229b1c127425634ad217f8c3b871828daae8216483ef12ee6170741569b550f738c54ce31f78554d7b794c65b292c57d2c08e6edcd96a6e42dddcf50562c6f9ea38280a0e1cc91a76af93e00cd4ee246d6b8076e0f0db7990ed292edee13fcaec44db60841e89bd7209f43bfea8ded010f059508aa33a20c577bf38d7cad62ba237fcd6a1a7c7aa7dff636365ed774ed9d132acc93daf9ac5c920d8bfedc2ce6e96dcec21dfe9f672f663866714c5f1f2dd0ca7dd67e9309f779bd41a74be9c66520e67e4ccea7a45a90ca8de07203e3ce2319ea0f596131046b12b05f5ac303888cf73880ad2120efcaeb215ccf3b2776bde9b4efbbee97e5b029993ee436596868e4abe583e5e142a218710950844f7c6a79febdc299f0fef5848d15d18934c08aef2d7977a9aceb6d6add00876a521cffc41bd24fe4fc3aa02d26e577f5ec6fdbda039052d4fd43f5434fcdb4da4ef7cec50d1c5b76bb843d377965d1a992f5d3a2f2533ac605ea233e7ef1a213a990b594599c90abbe4f00734e807a1467f98ff98f3cb511b344ce46f2614e4b4fcfaeb561e83ec6b20f4c66e3d5861555c56de3f39b015f00f785232b05624efd82ff0d67a9952145be51d61d36230c2bc83e179814bcf3316e7eca303a81a435d7ed46e61e34fdae58bc7ae42908e5eb130804641fd61895598143eb5162032ee4099f1c9807bc1f5f6da9f56abc9447dd529e1e87dcd8a02bf302050db91a1c20066c1dfc79b02357490dfc67a7a72eff0c57c1ec8dd00c9be7f0c629f10227e61fcf0744f0cfed4b14bad1c2f3d17f79f9dd7141c10b9023468e51d0b8d8c0f9175e9afe98e71b475e2fdad341a901ebb0913a4e9c287f84fee9d2235b4f53fbbac298cb8a2c26db7f1c1c242af2351d32bff32e1a3b6e404d58ddb7ea43f9f4f99235e132412c9ea6f74bf38f2b1777021332d2e12a501f101ecf143c9b76d292e3f88a130a3ba9f1b948b3c3417c89dedd787d6c854aab2a824f37b0f4bee348576aa3d2eb77189e52a48b7593b185fa0e61477cfe99b3faf64110cffb225cadac1b1e984cd78d43a3b1d577b2d1c0d205e09ae21871cbdc4d3405b262abd5770c8f80bc7225ad20173aa0518a8b358c9d5bb896b1afcbc026396e3ecf3fcb6e9ada63c71a32a077276d2fa1d64e01e513c3321c67af4cce0d54173045f71de00ad9f5bd5ee095fa5ed4784e134be8b4ad76723917262e19f918c1f3d65690a93e2d78c1c8b53c48ae16a68d5048cffd3a6233feec4c156618e5a051a7524bd1275dc0fdaa444a78231e98b19424408cdc50031ab90fe7fe2823dee7859c5bae78ceb8e71677f9b756c35fceb5abe927ad2ac8828e054f97bf611775b02a30a1df7dddcb0d5185f61d7ac42bd5921d54307f386bdd583e413a9edbf282e81f5cd1dfc1acc439b0a1599bbf87e69b51a0a8795f89869264714c0b30802032debb23788a71153d3e72eccf0129ed48a088b71e1dada070bb1357c60d1c5f130a30fb5b706477ff7a4830d16bc1d81148e6e87ca6a6ea8efdaffe62e02f8041a4b3ccff42011950b0187a2b95202cc32bf00b4c007d23ac299eb1f009ea7f6e90557669e213f55db0e77eef48b6d7864fcb7b5188f4c2c4024b10225d6805e41551b01cc426fd9552d7ab4704e5f11b5eabb9c16d65cc10908c698aa4b23d4b60b658de7341b319ec42c3b67b2437ed2783fac134e2b52f9d06bd791a852b2600a35bb90df7cc8eddeb505d14f47b091b458a1e32ae9d72389ff5dbf2ea35c66b0a3a86c2c4b9c10636c703699d7a7cd1b326451504484236034ea4cea8ff7a780e719458c026364c7457cfc9c6a62982c2b3945c2c9f13ac3a11ba4977d14be3e743fbaa96d9491845d777b7d5f0158d85eb1ddae3af3a764d29106d0d21cdcd5eaa8524da7cffd6fe448d6921a300f4b2eb0237125c31b4f72d8d3dfbfe8a39d3652349a137e0792cbddb4af5c246deb2c2bd6fd03d94476ee5ad2d54751090d57e472e752aa4f619f34478639f4f13405eb851bf742d58336958a42921cb1e4fada2fc8f2b7bc4707e7646e7772c83987dca00ae57e2d2fa602a81d590e9933a6d36716b5ce062e48fbcbbd764a8bf3d89647690443ee39e05a9931431da82ecc1d35f9f72dcd1eeded012aaebc07e457268fcc508a27f24de1d20f1d23fe5ebe9b62c10ce7b169de2ed3804e9621a3afbf3b4af9bd4ddcf68975f7d1408975a8517516db606ba6ba79e519fba52108b0caa0f9725cff8482279fe5d36cfd8edf032dbff593b4a33d4bb34fad259848df65a57e48c230fd09c429c2428e4cd76d78cedc86762d624b0c6eadb202fba0cc34526a5034a258299b9507ad50efefa3be03cf05e9876d63b5b33a6f4129e6af88eed624f7781ad556f201afeb1d75c7e819282ed0ec05fafc201784dc23d5070f36f49c55a30367ead8b9b220127941cc04b80f85a5486efc7fa1fb8384aee2330439d34487e0a7b33000d50caa376322ddb3b271d51facbcffade29b39acd0f12558239df81a704d1645ed4c26410fa8945080c74dca218df8ffa8089a82f91a36512b2368ead35d7909b255d658cce87a53744b0a0faf3a87b1f95bf12ffde7686c34ff0c1848a8dd1f685ed06ad7371a86929b4497cccf7369401a21a50809fa11e7f5d7a11815467a32e4a8cd4a34b0f2aee41081ff7c36a3b135e2571e286f0c51f0cdb78cae306800b239e9d26f930df3f3c12e3e81275668447408b706a83cbc6a64bf5401e58915104c903f2747408c886216e654aea77f06996d2cefbbe578511f5ba134a784c7a56fe1b1843dacc26c5f1b734fb10562917fb461b4ed99f6d114aecda1778b16db50f5d83cf73d940b0c4c6314761add85e640456f55f2c509a7b9e85c7dc35e5a73578c38fe48ffa1adf7bc4ee0d0317bf6d2353ffaf6f6b1300ee53e61d7f51178dc16c63e784ba080b7018c27597e2e8d229d8377eac078113234f9528edcce79628ccdcca4e4d6915e0a2aab018a026f60ac7fb532c398635e6f103dcf4e4b6b4c0f1d1eea304274ea9c9c109250fce5fb878b90ac6429fa984f2ce8f4a4417b1d953d449c92b350b56bdf17e9d5c2a3742a91e52b452caf444613f8adc879637a88cf3e5502b36263ad86d43c83c76cd8797de2fbc931164cb8cfa889dc879567ef47d5f28f6217b9f14e83d4337d112783aed78a3cc0e858e5e8f3b1fa46404941a4868f7990e6c026cc988c68e961de2ad065af7078ead5b2172c7fccd0d995f5e6248ce0cde5e5e31dbf2b66e1fa7d5385cd322fee971ebe363451574bb4f7e2b0a5624921d3a8ab8bf7d8848c590938f4a38d53b9a2e86e9f64296ff80c82c9a12812651d4eca4dc50e1f08aec580e330fafb83eb081b8dadd3dd6fc1e874f76f6ca55f657e791377b07ea1cfba6fa0f8db67802aecf17a8f72cff33f5750bef43c7757a7fa0851c758f844661c56fbf529a18b835be165196f8883cae5eee701822cb68b50fa2a7404b8af14622180b3f019aa18fbae90053fc83152b72a76cf118aa3e7c31a37440c2f06b02cff1965261f34be8717b33de8ab38cbcc44f0c2dfb54bef0889bce46ae1b1639049fd2778656a1765771d49e66787ee7ce421934b02a4fb799c06aef7eefa66d9846944c10c78d6e23408a9f498b38c8eb86946c3225c58a6d470044d5b3efca8c04ff42f20030c250509f3d5f8789a8dcc5c3c20da8295411514fa409c6492d81ea96c1f4aed0389d323b49c944478344d5b4cce49e5f4c16e768aaa41b18c83c90a44432f119508ee4ddca1c0356ff2ccf794aebebbc2911084a4ce794064829344ae59c3349b1e8244f6ee1637ae380ba9f0b6d26f3c41cc41bcc421ff1fdd56bec14745455c139d873a7133580238fc3a11047a9e1f15369aa20dda79c717364d0cdd31a43f84d7dbb01a40b806e8f045b156bf12a8258c0e55f13deabb658b311f423fd2139bab117aff8ad4d9516deb88f5f4ca788d0587c5df1c5790180b65124a6376b5955c6af57674e5937a2df2f94bbd60efee4e5e31fbc1ac4440685c2b7ee32bd63bb63c25fc0958de31340b5ffafca74d8c1aa600668814f14af6f6f57633a2de7ca3e6755c17df4412ce63ebd7a1e6e8018f7dd7a218befa36011e512c182a9d124dd22fca0fb2cea15010cfbf472fd4f9eb3a9d2c6879c7da4ef9a90978025e9b3697e78857afb41db3038aa05529e708dfe64916928817427abc098c88e8af41f9915720d267f1eef3e5bb12bbd09ff22d8bb99d0f1296e3dc050ed0ee5a60a5a9ecc9ec904d6e9a36637d1f80b8ed41ddfb5f7f77e40d65cd78a1c72de944a152f200ebde239beb02db858921a14b7441db2d88c937cf49da537bdd58f54764898c1b7e10be03eb3ccc36b32c82bfae0e35ff572feb4e73f5d584e6bae9185aee2f044a3d625f6ab27a1cea5c5b9cc3eb8462a3f4c3abc24ae23c63bc6cf4b460747c863fed3a77d56f4ddceb320882f50af3bbd49e5ee535672b6a0c076bad333e21bf6cd825570bd93992292ff56889effc96c5683b17442fdcecbba791c5d1f26ea241a69aab2b5b76e2a7ddf72a3efdb4bff868a70573e0f703e2c92e6ae6e82f92a0c2023d1c546bc05bd6a09dd159f7bdb973f6d6d358cf2525d495cd628f12f39bc258d426a40e2e323079316a6fb059bafb7ba4d037044b22d4a57a83b1fe7f59b2869dd6d880b8bbced053444d86f8ef15f8f31d4267bde2ab5f33b107196f6b065525ed294c7d6c819daa0ffb81937e0f4a776156107a9f670c1692f558c4a9fa3cce648c0f73110a943c6bf47ffcc8f136c20f64448bcfdb05f53f6966cf18394c1793a438a1f7e87629ac0cd51b8a8ce9f53771f56117e2c15db5aa36d609fa8857e6015fbb51080670e1fb0541a3af1b0db0cf7fe78ddbf0c28c0f1daffcf9b7342ed39991d170dd89d7541f3445cd919a5cda1191550725b26db0237abdc470d7544381d13c0812bc4887a5f3ca314e744344186e0ce19da03a7a773358f8517ab43c3336bf866f583036ca93e6128286d6f456d235e172ab369821be09e2656dc1ad13d899925b2e0437ba738b92ff77b425a9000a4e5f16ec8f3f3e76a5264e4b4a5ade7e757146437bcb74c8139ceeb75dfcae9ce737b2dece592f584cfa404b0911693615c629c47fada51f58f14e1d7ce3126cc866330b627a0ab0b046d5fe6673baedc030d9956426a53395429a2cc319d52ce9af67a044afe1dd5b65c7e86eb25eef5742970cbff2f0fac17b4186f88c7de23ff2c530631e35569db4bcdbbb8971ccf9ee1bbaefefd78095daf5141c4998d5d26f5c5a0cbfccfccf2561be769f3971dd53f17d7e4f1355d2b74006db8acf6c464a020e3a21afb1acb591e67fb12d0886ff3a425f47920c51c09fb932183062397d3778b3379bff0a797edf0af5ecc5886cd88d227d4c803931abb30a7817bd66b52219b43b8f2a61d678478f7dda57426be6cc9fe31f0e2fb4cdf8678346a3a485938fba5b9e25c297743a91aea09b1960bfd1585e30e664f0da9236704b95c04ff1d311e22cfd24faa6feeaca0b96e88566c606eeccdcc319f7feea017a604f744f22256fa6d14cd93b00b07320c894dbfef79532e8b6563eb6bc96bbc3e090c111eec17fa66f31e5a91454cae69946d293ef964e3db2f687c9cc18466e7f7de4acdc13d5cd6517421041abc01d06c342c16e7247d054f912ae3cf04fad70a14ba6ee709b6cd3ccb27db885267521414b8ba7af91a814cd2333729edd89a6f691133b3d830d1d6c76b50ecf8b694e1f3d96de6aab4802a0cdf311fbdea8fdd3ac794a25eb159128e0e7e61c99a51fec64ef9331ec56346b8559190b39f6c7c71f9cc7ee4eb533c28a0e5c026e5d53504cb2b31dfb9410b1d12b7e99dc3b61a1aa05b9133219f56442dea26abf78213d9f2546c4bac6674761b2ab556ce4ab41bbf82e8234491425234540c2f694f513201c94070f1ce5fbc4c15bc5542d748c81ccaabfe9373bb4c9fd1ee6adf4496f30464f3edddaeb0f00dc5b6f393610242407d80264c0021b77e6f89f55eff84f86c02df71b3ec411f3b2c8d4306c0abee1f2bfeb7e5eb119a89239da02a321ab95403b1990da2a8796f6127a3e41f7773f52733148c56d68855454976a9225baba4cdb5514c9fc6388e1ece65827d14f321083987d15b9af9d012f4d8b02a54bca24935006ae52c2e2e411b3a742f1888ea29d97c6587787ac929c387fe36677a0065df0f642c4e2f804b7a2d895cb1351a2841f5895a548d2e0fa489a448eacacd9048abdc5e81c463e4386f2380b0c8436ac72b4ac8843451abe440a7f71545f84076bbe419d4c5a0552735b3e9dd627396bfa100ba4e7a97ca5b2914eb438c286f7b7bed30adcfa70cc963403da0aa9c165fff8e8e2f7dfa9c210366627d43e01a2533b92a3fb9ce1c15dc21f2f2d8f799b17cc693f7ca2c35d86b21ae5974b4c1b6eac2c2ca76b9bac6903bd5ac1fcd949dc4e38eb414760d842833b52c8361eab629fd65b11183c13dc55e841622e3bcf883ad396c852880f4a1bf70850a3f9fcb12f8b757a0452fef17b2f4d079e28dac16b9bea645134fbc55c16cfc374beba66e770ed867d3a6653a59eb0b8285c6ea049540c9f57c1eba3d0a4c52849e60037841f58491ceecd178ee860ce358eb71421d52402900f43070fa45dee09994b07a77ab3b1ed06b2b73c2b5039826c2e161097d7a2c1bbe707a84a04cb48a9faf9719a28601fab2e0a940ba3469e2d61f2ed9bfb29f63cb0e38e63bad40d19e5f406f00908e23f217c049ae6b1414f8cb5ba0078bb01551ae28d309d24ccf34ba3aee21e4a0ca817f95cefcc39d48b8c444d6ba76fc25e75886ab8dfd2a0604a040e213042b175aae9979e4be8209f0bbdf3a31f5651409679ec163e176d438358c8718c8148a9c14fbbdf9a9c9353adb6516399c667d98f82e9db8ec2435fd4de38228929363077c9336a455275e7578589591f2a7ce57fdcaa2cdeabcba04ebf3a16c5066688218b4d89f1bb5f244dad8c66f1aed926fcd868377f1d9c203c61397c44f9f70972833217a35f1a58e0c84cffc4b9780eb516f5fa29f498732eeb4f342dee515f5255d0c19630366ffc44437d31f4fd53dbd8d93c9ab6443cf7421fdadbd59eaed85ab5b33e17fb28657cdd486a99c90b8d379c280c27a1d9a295017ff6582dcf6096366d5af22e2d5baabbd196278ce13c4bcc4ebb46be55967e469e717f4cf2aa07b74de283d21e59c29ce85e21edaec8f86d444f7c70255f0aa1348bf94fdc6d3736d80e6cf8e6f876ad0366eb19043047876586f121edcda25b9b8a5aa61aecdf176c5f98ae373147a068e4d6d52fb4183570a93fd29bd8df97a02f51e59e6e453f908712e7bb5323cdf60f883105cd62496cfd6bd72cfcc4c69a4099e921abf9262782e056e3b7a71ea7510defc946377b3316ccb426ad56d5952957fa3170117ea980e74a5d09041b40a2c530031d9e3b64d50ad7dec8a4e9b7191a0e3508f648ac25ed77b859efd0c50702063a83c70e554aaa74a35b3a96c9d0199ae5a5ebd5f9fa328852bd20c66ebfba702d201efcb0d7a678a2b43e32f2386f7cb70d31d9db0af2693d9f534597421c30669f390415296055c37bbf55c88be6c8befb43453c909fae46c13b123f771314890ab9b768efbfa66c793feda007c1015dbaa385790a38fb70229c8da7697ee80489c4619466ae0f8cab93bf1f7c32a89594fbdb103e023197eedd56364ff78eefca700198d551347371b8c468ca22ace33cfe91fefe9b7f708a5f7c52a555345f649a0968d219a4d8643c57611cdb456571ab35b795a6bdf8a05cf3fa5cc4ab4e74e401e05b2e1d53508709d8d14f4bc58a4fb11992ff4c2332b0da8a63c4c3d631dcb5dc6482e294445bed53aa895cbebb4baa79a12af75f89cb7037109d2d8628e762935b4d9d3b9a9cb1707281b706c488d319cee01340e6159e93edf34b0c155b2c5cdcdb8a71d947b0b16876c1d5780524b12d70ab47221923cbc3c693abffa4a1c9a4842ddfefe85613fbed358cfa3b5cf453ed5bd6160b50989cdf32d8060c3b8becf50cc6b7d85038c4ecc861ab0c7c9ce7b8f37e0bc6bcdbb941e0a8ede2626ef749a367b4718f4bb93509022790a5d20a37ae7354788405ae7b87053e9d58ef76e3787c6566608bfe68ea4f6598fcafca98eea6be583d4e336eca89f4a0f4d3328d2bbea929ebc3f90302e47750b2cfade0c04d3c75069c7abef6a28ea3771159d5ae5070e3d45168b9c0eeb8503f807b07a777eed7769e98fa48305262321a30a574f44512ca7d116e0545e3f71e4e1c0be13c3b8b265248965f633bbdd19f5ec2b6648b91311341a27f13c3e84479d515a73bf93727dc3a39202103ebd8bba4df565c1e264e8b555ee58c88860a822f5f83ad0a4085e072da4d9e322b6feb462cbb4e126fafc006659ab699ffccbac97d04c1a935f66a55dcee152563aeb377c8c8cdb27581e719656a8271d812c49d58b7c025b798945d47f18e965223aae4386416b6de4dd9d837ab832e8cb735fa0b84cb53223de04e044879a3863ec164a98044b11a3a1c98dbd565cf2f8432438f5a3a27e9166f39ad9c4385792c182e6a978bf7b4d4b711b85689a891253256f5535fcd5d57e95d4742bfbc47ad295648dd40a30d49fc3aba27386384ba1c041ba8c3917618d65cc95c4ff6744bb0b83aa93f6a89d4b21b9322de036635ba9bc154d958c03054ebcdee9c401f01e30420ae9514514d8a36b858f086a1bcd6933d53390201d843133c641afb7290467029e416a445527931b7b8086f5d7a1dac6ebe16ca2efe0633f290e882bb4c9a4f2db2398d21213efa3fe14835bd493ac3b3740b01a453f2c6908bafb23ee36f2ce0aa4b325fb9bea8487a94d2d8b94e4203992a72fdcdf487df93217c5347befeed67599a936af6bd6cd5ad74b336b58465eefe2994c366a2718e2d15824c54ba40a5dab3ccfe78c0a1ae536b874c034834ee8b2a855f6b55c7f0782a7f9784de983604d7c12da1c80da9325f4b69077ccfe92afd6c835419695d265e095f34e5fc1ab692141671ee568b682f2aa08779b7f15346e82749cdbb5d01a12e7353b9da07ced6c1d5048692902cf97f2e159a4c10ce03d2258469dff322633b7ca17ce27d448a42abd85c06d65b2ca07709adccad9165d762d335f57fb71ba23b7779f74e2f19dafbb73f5c5117514c5af89d115f57e00cacd4d33e257c6c73f4c04802a4fe05dcebee60ba9ef86d131d6ca4e15e5825e8a5af003865356dca23efc2dfa9013c2420c63739f40f8f1730dd454165ad2a3f35d6cae38893523e67eb2951c800b3f9a9ca64959f0014a0949745ffa3ee0f7b74387ed27b7dc4952ec0a00db304cacf65e1c6d5af87a72aa5c48fc83436591d2c8f81304e6a5e83f21fe907eece020ae00695f2645623979cb45b12f82dadaf8f5ed96f757537bec461b1641d0d5df5951e4f715bf5ba25c173233d36800a75b748668159a87e9c51404251933ba54261c16e640742b77acb22aec7cf85875aa90572248e24c9f6eddee897b74262076d73f0425643d688e181ed24dc6acc68a0ceaff0b5b8c35fcd123066c3f31342adcd179f5181ebda6fa518d47e48481f5f23ba97d1d98aa32727f5e779ef90021eef3adbb0d0095fee4daee48feb2662c003acd8761a42abe76f6b970761fb1bebfff09b4db3ab7413325b7b284c79539d24d8c39db4868ad600c500c1f477690c2048c904cc5f3b5b472ac6eb39b212b03cbb28f530085ae3f5b67b1d99ce55c0744298bbac1138ee6550153a1c9b47c8282c33a4aad89d02e11a41dd849643328b700729aee597a3e340b1c49304661ff31d22bd5136fcb7d6fa6b35d01a44c37875d17a734939899cd4876aa73dddef90f2ef20159b6107b4bf98e47782fce759289cfe81bb72586adb8d2b67a67ee1c42dc33b48b9126598f50b7f0e706c325ec6fe6be531893c8b97fffbaef9a11d869e2ca5b1b9c0fb8b7170df98c4cdb225a0f37242e25e12ea9dfbe5bc2ec10cb136151e45c23c1f15750c9ee2801c50dd7bc4ea321b8617f887dd608a694d37a467e26ef06ffe96693c0aa3b7fd02fbe1336c6d147f8431236f850ff91a183f2f91f36c0b5f98bafa6712a00dbedcd5fef83bab5ddc98b6fe6ceeb90401e706899760d456ac929c15c7e51b88a00e41602ad8f2bc7ce561da097eb6bb0455fba8857064508988bd297310a9f5b203a491738673d0af790a4c085d00ba6c7429999679318d81b5c03cd7406c625e27fb0ad7ef46050a17ab47540a550291d80889615f73c06402094888e95c14174752b75cf98bb674ba2374309e27702ed3e69ba64efb8215d4bc9e53003990bcb6bdbd860f1dfc2d2331f81321e5743806f263887208e9f01726a16d8596564dded7b6f1341f3f644bfa3dce509c6bd467b3ab2484862564add2ce078a2a933f1a40a890460cc3f40d9bcd23a6a9a886bd133c248842204cb003f1d7ffbf8dff7c9c5a8f01a69f8e3369b389d11767f79c111740535a2c90695983c1c21f0d7fab53f04662c0a26512703b5830eecc10f564fcab5471ea87858a9bce540e10a9863c606c73961eeba8c7f45768a2f32a621b637f4f01c0a2cb97eb4c332d26f8ef3a5ce1c7e7f1b07b787b6641394f7612f9f253922593ae5e87e4e2f71967f5a86ddaeb90c9f99fec1dc2e4d49a4fef9891c6f254448e9d91d6648c16adfb6e2fcb5adabd573fc0d5995a3322a7974ab0aa2e79cff4facf90149721007171534724a06ffd56cfa950289616376494c3e6228d1b01ff179c692fd32e078b9a34e807aa6d01d31edcb540e880fe7ddbf198e71665ad6032ebdf371039fb7ace701a2eeb13096af522ab6498c2f31b4c7682b0a5305eea00a4ef526f1343ac570d943cffdd4b04b4c718b9cb3ba0e20a24e5adf37eab17a3265523a1e22cd404d19568f959b6b0c2137f51e9a2dc8a6552b23c5283997372d83e62a41ed9d8195ca71b337dd5136bc087f70b160f82627f08f152f14f1d769655ec722e2d5bce1d7e2ced78f65642a1a6296baae841b2184eba4c759394fb43e25861f205ea1cd3929081a391a071d873d104e6b036e9538d9a3623fb840c37f90dbabf8a6347b33c356dcb0cb2b6c2366c658a90ada944d36ace4bb943eae2f8c01c99d8c440f9f5254aab35a9291db2ff7985121d87686f72126c2970172d4490a9520b3d6344a6feb4945d96129a5d2d221894c6456ce7445744b2ccf6eebb305bbbff3ee9562b8662de3704078ffcc07db6773b994ecd4d0103266aae6f1a777fe85b5df65f2f6620287ec2de203e61b02ff124851498bbeaddb19fc83fd385bb3384b18d86c63ef2779904373063110a5affcc3f6c119e3f4b34e15d1e47c754396b00ea74a60b72ef3296758c6b47828d11822ad8d88580277964ec0f7a5c8ade4407390b63b695e928012642e98e2c2a767c4e6314656e84b138e24486b8e01d04056d449caad319a938b8ca5f61d00abbadfd48661f42aaf36ad3582013fe6985548b8d8ececd6064d4d6befbdc2401ce05beecb4f85412d838e105526d0159343c8044f53cbb06f94ebbf9c371237ed3a0c6eccb0a519eddab2346b0086dbf38d81879c0ec6d5b9eb70ea0b20296bf60024d513c3dd930a25c505f3d5659bf0d1f891b1c3908f9aff0e72f96c50ba7d993665327ab404c153e24cb7db984a2df743778b91e3dfe9d5fe81a0251dd20cd6e9a5116960b465155bb5c79ed3f17a8f551251fc35f5c48398656beef9b697ffbce158f2d66132ba4b4fb1ca242fe6ff33407f6f7cb98095fd11342aa73ff3f1eca8e170d6b9df18ae10474e64b4154d2e6225295e466c922c9b14d338999bbf8a4c3c4aace30f7c784ffa20dac7f8a4c1dd31a081696346f7bcc76c1bc2ca974f65441de4f788e2f348c32a9ac1c5ff6b99ceb77d2631bb205399b2b30edfe8954fc57ec1813f1cb39c9910819048721985cd51b634c20bdbe2e6e23ea511f924a72ef66102318e7bce7ce7b335810b33102512eb7c277bf80f30cab3047d6f29d1582ca96f0ea7ffc60c100346925797b27c65879d68796625b7ef86787387ca75597ea5b0b64e8252b2bc966dffe1ed61c91cd36b2680f490b1855ea625e848fe6766ef2281da59a057e4d9e73b51d81cfa2ffb6c0df1fb6508fff406995a791ad26ca2165850d0c6b0a3ae0589f57c64b4798a5a186039d7a86ca363eed7ba3d0093f250a3020e3b144f95ae24e5c7be207e52a3a2f30ac364044f5cf8a93c1d8a6a0d8802cf925ae3b695dbc7ff8832c78ef4ec4ac452256373bfe7219886375b4aeaecd78941e68260681a757346cf7bdd338aa5666fa120deb5c9a45aba49e753e99ca2602881e3b5930d979c34255b50f907bf0818fbffaf761e10cef2d66e3aa52d293d00339a6defe86e5b45c9d6287aa36ecd6c9f6a9cdad71ea17aa553fe27277473d4ea88ad46f5d238aad4d1cf42d0784f371a81736537de7651427d0ec787984463f416aa9f133df47564cd58ffb581762a9e5bac535624b79b7ccd81473e52008f86f9c305332955431a258ebbadcf07ec82dac6099e568726e5a45a8faf6ecfa6398c6691dac359e89b5b98fcc5dd9cd5c006e7d25180a51e567706153507716587b928cfa3e81c461077928641bee9a576024c6600b91f7668708b729b8b74435273f295ba700d37a56d9dd8174d7dce6589843d15db213afb2716fea29cba215ebb28d261d150760da2446a723265a57501835f4b8a5347b366d90d7eb64660d23b22ca6f0a6b1cfc6f457d30b55f852f1bf3e6308a806076fa719959abab2cbb6f66e6cbe485f6acc80be7655d85d241027334aa6485a8ef9a403fcfed9c32895b7916f680f18e59df758dd66694ecfe1d926f6f60bae50ede6b5071ab6ee091d535817f35b836c5e5b0727f034853dc61b7b38bc756c2863c7c6a42b78e20895ef84d8cbd5fc1b5d840140e6e65a4f42d5108de7d86724e26c4513d4440c00e8a1cfa57b731ed715c859165cc68a685bff00d9be72bc621270634cc6f24bb21f78edcaf72a5a348a94d861ce2fb457131331ccb1f88b1fe1a0b37529c594aa6d8752f730fc5560a884dc6fc92a047be0c9a66c87e43c5a8721a3ba39b3be5e40d32361beca7c18c5e852e853539721669b5a0c27090e32688860587a90e5908cb3adc2f645c3b284cef9169b55822479d41843d9c62bd4403bf9b3b361fbca1d19577cddeda9c3a56035f0f868489c47f1a8e9158f447114e9b73ef8020482539ee2f272ddc73a4a4e4fb1165d25723372641697414685f19cf414802d4166bc78be90339addd4ace49ffbeec8b319d9a9940454cf68547f1ba9be0a643532fd9ac7939035aee9735725c98f6c11d9222389df8307e99a2e10a56c1d918b192da045839f2c9f9f774ba50d7cdf90d026971c32a1e4484902ad585ee5edae2974f61f78270a76d5bdba161e5315eba143a7e92d7c0c63bf5042b4edbfd1a57a76cb76d2cdb2c2cb8f85202e0281e519334df46cdcd885bf7764d30effbe2bb0e3f1c1a5fc03081873a01881ca2e3e26bfade0c32a812348238f8680967dea67c656985da6d0bdc4798adec9ee88b0931f1f941fd571251c4a77401f82f1a48845890d06dcf2f72f74f2480a2e58b0199924da678d013beb1cd669f02155a3c2043dea17f9d91cf9cb2450f1533aa51fd4c7101c5868b06807286ca5e5c516b2b6bb2a888db3223c100ec391bfef827ddf35a0855582d0b2b42b653ba5e485de529697d98a672c7f25600a88ab939c659c030a472c1c94bf3002bc5b5e1f89a73747dd9cf53f71e40aa908e6ea014b3b9e12a14b6632b32dbcf94476642ab795df422e2e3de4d60c0d4f87d8308cee8e69de6c692dcae3f28817c34d36fde2c0fb0da859da898530cb270c2be8463e5ee01cd31c9eb8ebce7fc46a27bb504165843c4bb5b85e756c04b91b8c5d73a5383226f5ff2e91ead67b59092cd551f12eda7adc9901b1337fe15a35772b6ccfc7decf967f98e6d5ebb2bd30faff442f4e78d23944092358ceb3bc7db545af5e0548523899e080ad139848673f8d14e7341440462858f1a522ffc4dea2de4d488a63b341df460e5a5fd2a3142f5d360905b31576b0c8740667915ccc2758e6933b7070d43e3348af667881787e861d0e27adb6a019858456ef942c10fd5af4d06ec9b4da3a8ba24af98c57d5d840eba4545817b1c7e3ed86ae4c8e1b1ae8d43364f05fc6050181596faa0ad617312661a494264a1280c8be4f410557190fe78050fdc4fee400a062ab5523218d09613b277d71cc093bc1c31e5567bd8c3dcac88fc038330b0d9c1e43a81fcf5adcff278a1db0562d05017c9f9640c9cc148a05f0ffdc9172ba33f3ebc4560988ee6572b00a445bd86feda067560a1dcb9bb7df0e0c3d59210eda200b2401fe8ecb470b5b1a8b7c86eae70f122a6fb3d0eea1f412e42818f148e271b57bef056b44e075d337d307ad6cabde6cdb69a48d675623c5b4f8c8cbee333272aeb3923c55c1b7cea58186f1f5ef311c73373ca5c71e60ced40861aea580b406e18e89176475c62a02f9edd3f81529c65ebd8f39fb1f4390f0b4a8c473cdba2ab109f5a0d31ceeaff590573401aa06f81f5edbdd1f0675e0df1ad01d9e61bca2b7cad1649c023f218cecf11bfeae132f7df28c0d8c0c8a4dcc548e97732805c7e55795fd9ba9621dee7c6386eee3ee329ebc3fad04d05af8fbc6e104e40ed54f76d566de26f4971acc1243a92091d0c7c56274486f06e33e3c8c75a5c8f343e2c02f9737df27a5cbb1c60508507d62ad9bca0f7ff90e763b48f2145f5628a3a795ef6ad36241801add95c0c35e99d3b2d81f93befd8682786e75e694279f2d37e9305058e8f734b0501038fa38374c6e94abeb843364f49fde8a653bd111d409d3af2887a122edeac5b7e7e666e3c04829249d998ad1205658f351bb7436ed77d4a7373e3589a9d6e9ba8ad264251ddf23de3ccc17c57c02be96f5bd3a429fc8afb574b242725a57b1360fa21273794354d874b448d805861d81d5c883ffc9372bcbcd58f748cf4e600cdfda9b33de8cd9625c7ddb62d243e63eb71a2d95e83a9363ae8e855ef512963d7c7a31a305d3f946c19fbd14fac9c9493e2c18a8a4fe66240dbe8b700b5a0644f0509aa6c1e943e71ee3e9abc2b78ec56e2d8a2f928a4ad0f50bbe9e60e09538a9e6999fda4d9fac524ff606c1776609f92afe0ae25a22b023a83f791690a28761265288de19f96d21bc88fcb4c5becf34362f8bc5f63de169fd3d49228aba16590310d4f2c7b547f71d7fac90691b29d9fe169c801af08f14f3457bdacd8ea1619183339a687088500a0039265a6aca0c76ea77d081093bdeba3001fbbe0d3b6bdf8c82508e044f408488b1128cdebe9ed218c35a55680b0e0119a14cff99ae269c19fb8152696c54c2bb5be315b69d55d672242bb14720cbee29d88eeb944ea83f9d8210bffcf84925679429a4b676d757fba9de6203de6186f72a4ae9e84d5143be51766936969700d07f34fbb600596fc50f6d7178e167984747ed68835ed17b3d2a25b11ea6d7a47f747c96d8a12a646454f97d69d0b40e2d18e743a62cb07a4eb9225296538ee2d4fb2dc47e363581860b36b02f66c3fbe33f54adcdd33bde2a4bc139107e6bf9f528299d3d41b0f032ab1bb8145c3c14039d92d7b6c373a58dc53f681b30b7bae26c5e7c0630ddbea919b37ff44961b05c26f4e887b630a8467000836ad7dc3234444c85ff05eca85e3c8036babb2779e086f74556a0077f6f185f77257b061f7b9104926879473de0d4a6677328a750f8dfbd69c62a0ecd52b1912faffc3aed93f44a631c1636cd639d4b01babdf5c50cf579df7c080955948bcd817bc8de4ab18e299bc34f325a1b0d6bc1222311ecfd9e00e680d805a52cc3c7c16552f4e05c50191aa75677a4612f7545b149213ed9b2121d383aa32a0acacd4c8441096b185ad5701a6df1120dc6d54b9b3e7797c1407627f2c9fe7b8bc706a02c249762dae1ed06c9643a75f3ffd19343bb9e6484c7f339a844f3b266d3e101eddd7e02cc74175b776851f88477c29965306938b200dedb2b6dba905daa25e79ac214d1581acbb57163958f150307cef87d52f76dd1abf3c638dd88829ed1af388aa3883766fdfe0b4a28c46cf6e0d12ca6c1dafa8152310f93221753a9634725afe10c3be6d508c629f32076441a61507664acdbb9b3aeb9d5d8fa5a27f8d5ff42aad595024babbf0083b074506c8d5cb11b4de6e47bfeba6431386fda332278258357b330b976d7277b3eff246db70f9d97de312e10b17a149a4998a1204bb0353d79484fa5aca4c82e1b83f3f75c98996d94e9c0157d5e9738bf41b500c10da16efc3463d839bd7e21135a5ce9b076406878a1d706e72d74214c05477f0a063b25a59063c46ce8d1a8087ebcd6c1641de847311c4219e71bb70bc37b2f3e8a80e895f4be92ff5cd7eeda61f037324a01faada751612edb99eb3b805e701e81871730ddc59b3c72accb8dfd92d4025cba94202b6cbcb578411621b6cb216a655c81954cf329d9e4ba38951d4e59850eb36762665c0e6b8df36445e03091fab10164a566fd75df85c91ed6fd1459ca02d3735f1c86268510e7fca8f1d1a2584f78773e8eb8055f710869681d29cd655f73ba3043483ca450ead93cfe44d2f42b0110617dda9a7e12fd944229e9f1b702ae57a7330e5d81db2d45dd4c978bcfbe59967a095779ea0b841c9c396d4593a7a82b3487adb0e4549d3f268429e3047650cd876450b52429160f527e13356bdcfdac4ffc9783d8cd8046fe8d7dcd6c348e3b53fece41a7ac7c0c3e5da356449becb41086f1f0aa8e23797c5855d569135f974d81bc2511d616f7aeae0c9bbf107b32649ba7944b0c021d106686099d6a7b641cd8aa202a7bc8c0df465ef030c32d4249938252aa08ad5b7c5b9c02e3b4fecbae176dc83b48179911859eb05b4292c6846bd9a6dd88fff33ae238a1f6d7bec648cd76a558721811e3cdc53424af864d1903c1d3d9d5fe775835a790b9e98b5787860df4786e723229d4a6c4ef087db612c76b99597617a2d9a0d822001bc3f7a0454a2adbb9962bc4b8f8b750d78e9a3c16fa0e551fee0e25d25b42a51403f91c1256a4455a9ad71a8cb8617cd01e52d6ebf6660bd576060c9511a8b4b72eef7f7ec149825f3592ced4d5aa29fec88fa43a6f26ead918ab4f0e86b5d2f4db0f321a74ddb2210bd42a6d78ad2b592b635c3fa22545baaff717715ac7543479eb36c4aa795e53553f93034f91a87f5c34868e37876e2e2407818551028502e53213da817122da790c2421f22b250e2c7651f614ebec2b758bf2147c8fe23148528a81ffc2b5db44050617b04c88f26968dc8a9631f60695956f4ca809a0d4b403af91f12f4f94b94646ad827d588d45d10b752cdb38314f402856ebcfb6472d5d82f7b0daa2d1b42330c4a7dc8c1971bd5364b8dc5d95aaab6df2c5b5c0093ccc97c88b6b2463e5a0d4b8e14178519524801a760c3709b5c5c9f7ceb91be4b6f23c716ba853681af04ff83df556475baaec8388c643dbb365777ae9eaa010ebccb2a2f95091430f82d53f1fd12b1bddebcb0fcb12e987d3d6aad9bfa172c6ad42673a746779a77082b469a4b190390d0c0d252f927be6cfea599a4a243296c38a3a784b0aaa555c8b02da72a26b4b96d5fbb0914bf4e5224682affd1dbe507618a7b2dd3b7b919c7ce2f5bc45e65ece4e2eb38ead9cd3ff26e6255617ed1958bfcda6c4cb87b758ed8c71a3a7f78826c5c56ebf68a2227e780d5b371aa635fc8466244c407341d17f346c280d395535d67e6999f241a030c2f2ec8160a933b9ed2e68e319155f800734f4ce08626992330f6751041e58faec6ab6f9a365e3bd5c6ed722062ede1706a59c851bcdae2b77dd88367dc97938a9d9c95331347663a1131a5647435f9b5ff31a1352f251b92e0518538cea8b6a381e7614abbd1866ef9227be1810582186875331cd1bf9b48d618b4b3c675ec513c87b7a3ca0607128d61cd51c15c5574ac1ab49af621524da55a4cf972bc6b42c609030e77f3dcdf2d45aa399edbe180afe666662a0bf47af039e7639324376f000d59698c2987894a59d86bd94abce847f62430ab0144648648a5d39db3354f84cbe424dd3e1966d3dc28cd0213c092a23a33faedc96597bc112944fd56dbc0638ba68b224a58464c3f9a3fe8c2bfbe8bf468e23bee4247bb8f61371f5c61717f2c827a996be7ff74ab4adf688bc5d7af3da69aa740ff0c7ab424bf46fb8ec2709e9d59e141848162793afb16c4e31d5f809a0924527db3d2e4992f8cca1171e2680f73c47253828ab7de7336669589e1fddacd7afbf23efb7874c48745667d9923dd009a273d1eb4aa8369f090ae8af247499d3ed68da2ec3dfec2e44d50195efc498ce38d59f1f7467f640804dd848ec7c9ba9ac127d6b7f2f1e281a5e39b6a367578a0566d84fab83361faa8b82bd6364afc0d620b3e8fcd2508d3761cbe04a648d29335761c54dde1692c0764206e27181bb59dc89656f70597efcb07a26b35b7bf6165473fa9c84ba8c9cebc726b7b8748c51f19d7df0bdfed17167c6653624b28fb23367f4f402719f04f1ce88feae8403dd7d4b9979bf8cc83aa6149bdbd0571472fd65f7a3f604b1501a8295381d056a077f6e148ab7fb7fa3e8b9a196d8b655d50c665d4742bd5e9fd313cf81eac30c4f7afcac83441970e701e0147aba4a8e5cd8ca318c2e8688e83a9e3b8f6a93257138ff5d5a3342dd0408cd530450b4672f48355b9bfd5b3a0731bd4e210efcecac8b1082b57d6187c911992841c893fb096d65ee036907081d542d29cc81d36badb0acfce265280eeabf79b34a6662f59898cb91ea568573852a925ec4d2c22bb52b64cf5d87da3a2bcece6446c295ab425a72bf0c084d685b857fe7c228bb5c3f85d595aaba3e3a2528c35ac8da2c947c84dd3d0ecd1bb057916b0a2a19ba8f5ddad72dacd1c0a15e2fff7ea3a4d4b13520a5c02c4c73ac12c3ee5fe73763facd4d8b832e5bbd7fd455f0b5738fd6b50a915ef4698faf7310b182b411902c21ff42c473d8b07276e3699db0161ddca3b37b430c8e97d048374ce797a675970ce18b85ab3cc442b8bd5eba98c23be5ddd67a2dc18ef16f3cf69ed999203822d205ffcf87aa75196ca26edf934ffb3801e2b91d3bf133f713d0f738987ea725a67acb408ca924faf4a932367e10b06ebbd79b2ab0375f60d0a32704241ec6a9b7627a90ef5f51da465662e65fd716ce3dac95516be67661821c03885ee2b978180ba930094ada49f7e507eac80ee9e4de29994acd6ef53c04c4a248811a00953db9414e0c38bee6e8ee59d559554336ba1e90ef5a44962e2df86deae9d96ff6a90aab60fb0d313bf241d0ae5ed08cc6923c0b7b4e163252a93cf47abc92d78ec533104943abef43d6ad59ac902849618c8a5b1dcff6004745ca3e5a983d81ac19e25abb28ef8c3272f4c7b0f1dd6195fb3263ba7bd16ec983a24e36bc7df6d1e2ac6b1a1a522610b39a6b2494a1f554f4e54abb57e90d10d4b98a17070de5c0bf916bb38495183cfd16d3cf413162eed13457e41888c040102e9d89084440fa0715c5bd6ec8db342110bb1d01a832f054d9171b288fd51df082648ad5dd50efac4a37cebc85317c079507eff84c497acafd6b02bec8af66a1a00f6528b29be1e0a3bd3de01140bb347f2afd7834bb744103512e25f0d61ce2e4e0177bf2b1f46fd37623a47b48c03430848bf141d9f1b73d2624d8e16c5546d8901ac9b9ae9474aee0f55440b76b5f88f278686541f04d757c3868e667db2a451f772be8bf124a67b4aea6f67874402e686053b9f157f02711466b9743e077ee6cc8902e5dde6c03dbc51440842876751fe0593bd0b507652733097eb18043aaf66597ce32e5046571049aea3922237791eaef0062697692ec6e9602a4cdf8ab743e563969416b931c7818ce04bd828e998fb42e261ca5cbe589b20c3e8ff082baedec36195a1f1f51a656edc703a7c93f8089b4f242862c08821d4fc428bd3dd7bbd787b84876e13f4bf5ca84f8d4d4aea21e25f187db37482521651353e29c45e00c570c84272bded485bc86be2494615e8e5b75d578e200d90baf0323c297ac5f681a171d91e6c6a327eb438b602a3830a96120701998e6716773b2abe76bc4bb6bebf20715d59b83ae35aa49a20e19a517dbce8db4389349a324a37cb2deeba1d71543d09650546ec999a71b85b65a4013618b7f8b3637707ca66266572959a07b73a7cd520b1e6ff8ac9623170f7e5d5d71b7503c572a0732b8fc6d2e6da500e0821b6f28be72613bb2f34ad3b434a1624ce32df998fa99473f70bf2800ed383a20e0e7055efb024d989669bd058998982cf1b8b0495424f538502bc8920e67e70d667e6c45ac188e587d9f3922b4146b8d0d52ac7e80d2e635390640d29ef1f9ca72e18e57cab47e24f36806115aea39f172f4c51ebecd3323108c0a5e1536f0c806b536fe96d18eaf829f8655133ce0efd1cc425895cbbd21f8cd853266b770eb42b90cfff5669bf10707a657f83bf886f0abd86ade1d44ed73fdd107cfd7b806c3785de5cb928e117ad2c5224b99d4a7076d05ec985d610404bd5d9885571ef21182d9c64b03f7702190c6e28efc2c595e2459f53634e69fcacc03c94e01439266f754abcf4f0f4b8f938865669ef9c8711d1744442ca8edbdc10d90f5f496f1c9c12c5d2c08d2398ed46addf4c68c9859569c59744a63a663ea3d80aa598eb7bb3b1d852c53264f2055c62d7e804a3dfae1563d0a254ab5563a721bbeafcbb10c502a9b22d7f5b89b12842b78e6c247c7ac2407278303c191e1be5feac53d4797255eaa7b477e618770236dafa06eb557083bf88a02df35364c638cf1d1cbaabd5c1d0aec8072cc97fab94004d6120f831d3db1da2f75c5b01e19ed12463b26db7171c84c0d2dabff190cfcd9009b106a9af9bc4ac51d0ba18ccb8caeffed3da150e95ae1f47278e1a8a164bd622f3b575ab9f10a5c9b9b07889e524137cc2e3fa6ca5f2ea25eabd6962d364da33254ead4e221d4110e1afbcda376e3a5e40cba22b72dc0cf0534b3bb8fd693ff2fbb0e86002063588b1dd3f3203d9689639a9f2bc033bcaeb052772fa0e8e550ccccba2f6ad6c6fde6f96dfdf39bcc95061e93e0496a146b405b7e28ecd6b7333bb26e75be5f665bdeee88d23fa11117c00cb61ac1ee61885ec528d6b3d7cdee8c95a503656cb71edc416b40ff3f56bac1ce321db75a5efb3e7c6a8acc3a243cf7595567800193c743f166565bd2c013cb197e87a52bd450a9cd37cf1f1a1bf822a18eeff2f923a854a1360d4df9a01cb4ea4c89478d126f1c1ad0c8a7da07739b5b975fa96ea3b5554ebe248f9cb4881179ad4740dc903a15c7e91bf9dabc1ae7562f567be5a0423bdb14c31776c8db3b85bc592024f97c7c2e1c4c16b34dd1a1590ac579320fa06c02c90e550cf21ceb4a0f078ed53da554b68fb02e68e3b3922d5f0b750fde15be057769a7c6b44a70a748f237088086855180f0de871589f0f565cd366b5abd2cfdfb08a355a009b09b754928ae4b4798ee81919bf7922e6b74d4cd54a934e8371a8bc3fb6da9d12ec9c5386cb24ee57ce4600f402a7f367b988afef49e2b58c16499424bdcda259a42b36a65b4573839c91cbf901de1995b1e824fc9475bd15518b32cc0c3863e221c0c3824b0cf8f4769fd4315e67ef209ee369b2ba203ec1c2ede4951cc7215c378ab735627f79753e39bed5706e8389700319ceaf3c2ae71b236e995948c03c340de794e76aa2fcc09b3fcda882d2bb2e65b8bd5527ba241993f804ab2c00a036a0b8338adc3fc736f5bee85f198fd6d13b18b529c2a815add6d8566809539e34f0e9ac8ea7c517abecbbe491097a4d724a013d67f17f48ac3d201d931a3b7dbe7ba6eeeae3e2d2b5190a8077114bef366d339a721ef5bf414aff24f1bd3b5b8516ee82cd6b266a9f89db2e474e2990ea10b4a5d0b755932a32f84397f45939c4684b0e565eb3c6043b9b3444c6b35a12b56cf04aac03803762e12490e52c84c36cda7ef19f052655a5972ed4e19909dd73194c20f2017edbf7b7c28d5a7e7ed1f39ea5e156c61a10307d598aeac38b497287134b0291a99e44427bff427b2f34202b34f56eb0237eb7a01bf7920bd5717023ccf75adb13255082e3792e74b6cbea95585a14858aba0c1a9e916e84ddfc3fd8fa3ffbb14c1955f8c718d52d26569dc171c33e107d4973ae7e4074541159443d461ee958b7b243b5026790c1498859f295ca223d9221258be4dd821cb386fa14405aaf63fcbf3a3d1163de0df57892b4e59dba3a2d04cfcf8192d7f0f2e76d1b70dbd8a12a16133a946ae2b6c22e8e13e58347b0703c10e94b0a98e1bbc2c0247a6c771b5905d8fd2232e0b6617aea1f55b4cb01b460febaf4544c137adea78b7978a01ddcfb48d51c72c37ed4a916c647578da4ac7ea29b6ebb61675beeedefebb5ec565fd1542a629c9aa6430bd4f467399983bd2e771d05f3a5b4cc46f044c503f903774ba5761fc2172e46a8bd13b0e93e741e67efa9d4ddcd8f35b3203087f6e82b7a4d130614cc0f4dc11cbcc908828ebacd8beeebaa77f1a3341f84b775b4ddecb7cd2f89fe4afcd3c1ee90138a51e19d7d244d0a9aa50e9bde2c344043c983d8591aba7719717e1cf1564faa58fc520df0d558b2c85d8396c1bfe0dccd8a856085302c43d138d58987fbdeb9596a405472b851f248049437affa47ecc78116538ee82e591e586999deb979e7360bcfde6ae9ebe3ffe8eb378f2cc107660a6a674c8220f62c634383043d31a86c8b650e2b42cf26e8891192bcaeb6416c0a3bdae5ac94c73c6c916af3c969e75c132d1e77721a2b399cf939afc525b4342b451aa17dd15ee281261e4e5c59fd9f8e97177659dd4b3de67665f42a1e5f897fc9848fe9517314a8f768c4e88bf50d47d6d6fb5b9cb9e0a2c064b70548576bde0e32233e43f5ae4b9ff2805c61253a54601f5fa3d034437ff40a5dbd5c442185dbd101c509f055bbdcaf42bb8d125bfd72c04da46598d64191a6f33fa72f27c4ff97a637bb3ce2e30fe3039096a9d8308ac950093c34d4d1fb89790c8ca2d993ca38a5e7a304c269c0ac50be5ac4faa1ebcef220aaf712a5fb233c8f0015f6ee91f59f88bf13f73b182cafa4870072f21c3eba3bf86b88913da8d1240dac4aba2db9425943fb9ce8662fbb6a20e6b48a69c269fae17efe9ed0476f664f482fd27c44d5001404214e9b74d747fe5d6b6961b93869161dc8bcaaf99d387ae4a18fdf6a36d74df195bfcd7996894c78623f56b7f5e8bd9c7e2e22d38f73d24320b8bb5e5275be92cd55b7dd3c230a83c2a2e01b4553eef7111a74f097e2b1f09854f80d665c682722f23850ff998c7081015ab66d7b35d7b5e041ed86c6048b0d5d858ea13a0290196bd012de33f88d4b40647a6529136c75d30cededfccf66c07fd29afbd377514c7626094069cb895ca05f4410f17d1b7863bd338a6ca57a078c541e48de66673a268459afbb55ca029cf4ade2d35bf84025224e5b5d309e1e3204d2e32fa1e6f73d599d593e3814c7e68df25a6f0a0e73dd69ca25f1af1893dae0e88678ae6fdb2fb6a1354fed8072a3dbe30197db7ae454a8806407737f225169cc105c49719857d2b7f0393fc56c2f4eeee59c925a0ae1566bea7561e426e024e95e2fe03a6fe3869505c0cdc72c98a02dc237e7800765cf0fb7a57354ea42198b80c716df5cebd2c59ecb8c87b5ec4b9143ea0804e80ed376bf5137a67b8657cad9c340e6746856a926e5445259220e111e0b1597d33b07b5ad5b4e98de896e87077cebd0ce19da06a75d0e4b3d316cf1e311a3b440bd7203d968ee3fb14ff3779642546ab1e7c62b5a82dc4057622c18d1983a9972300268f83f61c7a0bc0043dffdeeeae500aa9c0f98f1d4df85da70fc97d70dcc3805ee51ae847c47afb1ad9930e0ea5cc1b85546cf65f172ee4561a1ba6b02c134b06e6811492f4e97a8d7f86b84248f6c459b1edca28f589aff4d735359f870749ce9698035e0ead2898762cdea0644e94c5a855feaceafe9e02e2d61fc3c3410436de0f6e2be16237f87139a5218a8f7ea183bd9ce5a769d8433cf481ff4a53c878f67d07e781578b5114343b628ddcde376986cb821a6a0c8773c6783f2f4602c76685b4bd62731de4c971d3e546ea21c3e325c625be34950c82a605c688543596f1e471dac83abaed8fcdec9d5516f1f03bfc25ddf74590477961cd45b2d581b1a6637df16eba55f6a33866ba962239a55e0b98ccb80f48f3f2cbf87f3959ae31e19d70e0b7d8f2d79a1a7e9fe7b8be080b1d1a67ac743df3b5b7106918b660378f8573c339951dafa403b3f7ca07766dc3d76b7ca5629a8e800d054bb466f344a676d8e1ef1852b30b7ef1a50d70347ac40a29fb3efb5e139e1ea6cd9f74d124d78753fbf20536881e9b65f14a977c191d008912d18a445bf5c3eb9bc1f1f9ec30fb21b39685be06aa1b8a28066e2b68bd8b196671324d2d816cb9bfb7e4dbc041c2a0500614263791118b0eca2752c8780df084e3ab14efb7d73e91ba6f8b39326097146c84fc6564d0105a38ca2cd7fe7f417616e7ebd0468136a8d705cb0c8bf19eabbb89e63e6064456030d2a6830d10047dba044eca0345a5b74f43d420987458d9bed19967122590975daa26e532981f027a8e3eabd274cec43b1a9df90d1db8c0ae93e41e4f310b829e67376737eeebda9dd528910ee73c328073e5ec931beadc6174349193750b2afcfe4b94bd6a02ed13dd4e1a87d39774341d47c336178c9244cbf163715327a5448b196b87da91683043ace96c48716b3bc9957df4eb74d5f2a77171cc99d4657907f0f38b64f1dcfff536d9ed7e69f6ff691f5745489bc34602b3cdbb4de81eb77b54bfa62f83ef61247a3fc927489f48909beccd34f2ad6c1a67a48fa15490b8e6a128217634ac1a3a6963bdfb13bbb6ab9fe17bf50c325a65f4b95e86cf21967a154d529516427eca431170cef9185e2386599cd6442451c182bfdd0c781562585a23daadd84446a94a571f33d5e781ee486ed5e557a74d4e01c821459311ead23b3986207f49fe841e357d634e405558c5be34e1bd13fd6c323b97cdcf2fe2e00e1383f30d6c2d863221626795da8ce1dbfe43b56c0fe5d25c8a63173e599f1e4a955c39f9b1efa785f5cabfd766c5be7f3ee010254a27b9a9aabde10e155858e2f0c6b688d4387f5d872bd1bcf4bff551a1b6ca6b0d34c8ea980d82af1e1cb25b7ef1c6a4667638b907e7b337c57dfc6bcb65efb8962ec8f0a4456e2d4877d012d2a0d8e373b02afcfd5394b87b2b98847ecfb41a803718c57950f337c4e16d39e2cb4c2221304389f64953a6b5c724589fb84616c5f95892cc2d1c78fec5436bdefbab0a15bc0215021df499acb7ed33702fa2c4570e3aeab02def6e98ab5955fc4fe9b9d6038fdf490d1d2f9573ade6a54ba143a317d8cf9c5221018579279ffb30e66d7632c9be45bc25b5f756deb1d65a7ed649cdc97bf0ea297dfe5d3a23b71c43162034dd239f2c1da19be9103b03e8c6571f924c8a9df963eb3655bc555d8dab926f0c20a53405b4a69cd9ca9688bcb32227cdf14eab72b6e41a19051b3ffa3065ff486655673e57d02ea5bdeec2d960bcd323d5bb71fd4fee6d1bd7f5fd840d11d4a44eba8cd992f8e80aaa2ca692cf7db4438d7c7449b47354223bb875efc8cc241bf2b758bdf96286e0dcbf09beb994b812eefdaa6f90875c0ec9dfe59acc18738fa1b2bd77f71e21a7dfe33832ab32e3dcf892fd403d721e172eab9ae391cf6de92cefecdb34e41646869cb182622298276870c36048f66117251543db25c71cf11d765943e17bc573a05d5f8806df68c4f4139edd114a87921608b538613aa7426c69b7a054240bdec53d05a17f7e39bd82185be760cfdaf53a4c1acd3f1294009321f31d8e0af717116209a29bc510da283400ff684b03a0bf07c02e04aca307e2b340d5bb55c91fcd38f4e1fc036ce6204bff14691c0e22ca9e62c25473ca931d5625d45ca907279ffc7f464069c18bc63dc41d39c5ed6393d4ed3903383966910f3cd65a10970b427d926264e1f8246d674d10de1739b3b24a5acd94976e644d777dd1ee3768303e6b964e698735ac26ee7a4f1c117d24b5902500c49414e03ea40614da0fcaf772ebf6c3ae3dc5985e09a3f7cff1bc761d21e95b137e5600feae719cba3b43ce13b2724245db59f7f677800759a80d64f4cd98430b3b3f5c4dac557ff042abf3091920fd3ddea0072136d8e1303fe9d1ab3b3d94d42d5de2d457baf2f29e0f5fe70835bcb447da62f0dea5457a87eff138a5310eb3ac5ef2ee96bbe82a5c97245bbe374b5f804fc04ae64102247a0f363fa040867edd453dffb3cffe6ffce1592587e3158ba29ee9d6ad56a6768362ce999333342f2a534047059ae4f214c573f3984887f90297905a43aa80356c7869b8ff357e8a8afb0eaaa73bef96794627b7608dbd1a75687986a13630b6e0d4fda7579e0c130be211a55fbdcaaac6a00285284ccd59f951f0620e558a6247751503e9fbbee6772b398aba9861c3a8751dda954abaae4e1e3b6aebb46c734a8bd576665cd4cc5be49bcd3f82b05aa175999f036693563c6df35bea1d55278f6d807fe6cefab356ab7c138a76571d73c57e6e9d023c41be6a674e5289787a0ec80565f7981517e9244a4e739395f9a89f381302a3d6ad578c3045de611b98fc87df7f5f8892d092685ef32766dcdcc8737cf093004977ac474a01cf2ddaf65fea4e32376666369687f85a5e8eeb02d33599d2631eda875a8bd9ca06cd14068b3cbb121260c0859702293705f4482127e550db9635a7fba16c31ecdf33cedd142892bb55ed8376bab0c2d0e6e13557ccc5aa0b65cf44c08937a2e862d389e38bbc9c7bb17f1e52f58a24ec7ebb4ab117603b9349a922c55baa8009d43feccae5f30f5d1703507110a74352972d978b24860198dfdb33a43b72f12a4625aaaf9254a5ed32abefac229f5523be33d01d803d3275f488735f5cdadee143b2417373990918b2dee51bc70824e74e06f8fb6dcb80492a383e596d16bbcf383cc7f16773ab7b103135acb70b8d10150a22b23fbe4ba321c91d073ac9be7c574f9ec57f4e13e355895098a0c1a19f4df91c993fdea146921c1f984dce686424a33db9c76f3aef480b93223fb0683437b799e2c7339e1c40797aff4f34c539cc7a0abb6f7f1ff32f1ef1d964a029773d81691b16104afd487e0aa3517524da6b0d3bf8626892d83c4b5ed67d7483fccedbef55ec0ff4d4e3b1e00f1817d695d4ea59234e56fe76c38056e7cd7b72ebf75820821fce99a10257ca53cfe27de92ee2260f6cc1a8cc02f5631a25003ad147062d75d76e662ed295a8f42719aec8b618a2ee9a53ed76bb02e1d38a03c43e89f948e8903a867798e64a5be4f7c3f6d7d564a7dee22eea36343c834f4a802530bd858096b6bce17823c1280219238319a5b87cc5ac4b36418284cc2d2e75fde7ed9457debc1831593b0af6805ccc7b915f4d8c750c78e9840906c939069dc7f08a8e865b32b5ef03685913b2ea4a547d03c138a6a3a0bb7721f3611da35f8ea7c39a03e698209d543cdf0e960cd0a42b061e745f828024ce8c976823002267cf0febb91a53305f677d2f9f375313fc31efa6c357bfd30a4ffc4b1586598bbdc4189ee3f734b3f9df08d3ee1da3f9acf8775caa92ab46acfbb0771e0218d18c58c3dc030d44e16c1b5b0cfca128cce75dc97ced970ddcc43405b16ad60467defb619f4e53ce6cb742c3c3e6f32bc9a5813068d566b70a2b05afb8d3af2514c63e68810f81558b2c3a2aa074f63c7394ba4e24f1d6f6ddefaf6c68469f90bb0bd05487e563bd39e65c7a72ede64842cbb0c7a7016815058f0a70004ad6d95de01455aef417f896a422f5902ee0688369b4dffe870dd5334fa229f94fa9b1a76c8970d005c259a8ce9d2365610ae53a8646c58b1b2718221fac22d4cd0a269ab5a330f44d365cc16fa8c73acdbd6d3508df2fa38865f9a5789053d65eef5d84463149031a7ed199ff69ef514a68b2eb0816cd88f457fbf7e030c6345b4dc7d9b6479799c3b5d09e0272bdfc282f0e145cceb5a1004dafdea221fcc126bf2b21c1066b1b3f7c9d81900bca69a0cbb32149485719c5f309cd576275b3b2aa8ee05f1216fb2783b787ee8bdbf3aceb3eab205d2acbfb2733e7ea7335a8f6cc1e95499b59fb7f42f543281fdd240e638678b8b6f6b48594ad85d4ff3bad1ded41526a5725a75c616f0ab233287cddcbbf717f37f162a998f6fd52b40e7df6ace63fb756b65aabed3507ce673d9887d418c40be256eba69d1ae028b9221d3046d5aa57cf6c997c44137ca78bc05a9efe4b32ee90be69bc3d347a4278875bd49c57cc8453079e482aa2a0aeb6dffbd3352eb325ede11e75b0b2638176438e491bf0039427700a15a5153bde1cb7943a54c3b952acf2165ad2471bd098c199ab295d5a671ee4d5d9aea2441be7e803b1c28276b48136fedfa7c5fc4dd0bc31a4e58fa53abfc8482031dd9f90012a053d150ebcc7a64183886a7d8b5760d0a0a3a6a24cf3dcde262fc06ba6187769e5635c10b044b7faeb78eeae77cd666af783704b6ec03cfb2b169b83cc74f7fc3ec828d328daea4f04bccc1fefbb60cb090f1b10478da3753550eb5ebc31b66b1ecef595e073f1999df015907f84299254bfad1ef56977a49c57c7721b6a146cdbe09e0606a36a73943f416476319cab6d14618c71940d4666619eb92c7fc9f3795f66ead1e931b28d7890f11327902986d7f0c813143c4fc9669f1a94ab2d6547a0b6577d0e0c67ad6178d48234fc81b26518a4146e48e215defddaf78f2b2e57765bb201824fe1455ea90b326e244d370d1413068e1b804e91df9c7dab1e1af58fa7af851509bc342e44a1d4b06c63e95ee359f14948d535d8701bae7d771b6c6e340493f807b6905ada1485e113f0ea6d93e8149769dad8f40a58ca0065702c87dbdb74ae3fe3b7c41b1b2a847c7f13151863021013b29b39b0af0356eebfadb4f37f189f28a0f7ee648256f1a15fa0db60f85b04ffee71ec74a7800b76a4e3b9e08aad60908b4246b6919245d0a89dbdd2b3b21ce40bba291efa7554b736afcee1fec98f265617761cae9728926d22ba902aa4282a2d81b927cca03328b841ec57bb51c471234467455d58e4511eb627d0fca0a28869e3b34e49e7e399932bd51b4e68cd685b94849aad16fa3146cbce4a38bc1719368b2b811d2066b6a93eee17281ed5ab68cd16e9c2de7fa9da013c1617dd0383574300b5e49569c2e070e5ef336afe3a302a9acb003b6d3bf4751b0c0c270511bd5ee6c1d3d9b7df97775458946b650cce6e0afa17c0f10afe4a07b8d5ab100b779b2561323ccb04332e72f1aacee1ab747b371dee1306b489fcfac66b58fc9c13f7ba1f7689e4e694d2a049f9ec7706d53bee90a80f96a88b476af3f9c1c63b51851f9f6fea9bc29a49bc1a55e305efb432f947c59ac161177d335e166e72e503ee1d932b283df2a5db5f0cf54f050f35bae14bda84520a9df6ef3668229741777ddd83e57d8827203cf8c518074cbe8f21dc70c330eb1baadf621bf476cf9d06a4fcea4c4d248ee2e987f77356c81f5917e5fdd6a56b5d317eaae2e22a3530607527f5f9d5691edbc0f951c2ccf6a37208ad255628356250cfc62cc05f46689f3e2cb61ebd990a598f92433de26934e1fd8a0d08dd74d06014dce0436a822ec16be040e8ae73dad13158d4236358ce0f79c465c56a1dd7155de46165cff76062b75fabf6094d381ce95fde28d5274165656023b7cb9898541e1d095eddee07161358b416d71660231a10740fc1c721e96f65c65497b1b0257c35ae9e297ac0e18edf0539ec470f372d2d39ff45260a74061de0394a018cf911a51cebd3c3e7f9dc3d52c7e124a7d3407e5d434f32568974a21f590ab9776f8d230d4df4143ac051541f2ac4235aca6f6d1c903fcdf9931cc094e76c847a6cc3f68dd3062ae3f0e64c3432be90fef43556efabf639377a8403ad2ed5095b14bf289a11502c42813f4e3b0747eb49c188772fbbd2497c55338027f575b0f0bff778e2db68a4a1913fdb63d6a90d0699b22cff0767647461699eb01dcff95d19c62a45f9477270ac4abafe30c3647f415c67f13078edc443a3bba3c4f3d643f783bd86c72104fb6b75f350f0850373d9d01df31fc7f700c5e952ac6e2a7bb398244b05b8909f21d90d93f200c6064279a57332d741d59707049fc69a84bd3c3d928b2880f844100444b42ecf80010fae1956b7c8be6fb43bda4dda6e46cae89ecfeaa220f29f768737cf93bd84949e45e09c7a81b6c2be009659d2d3110ab58273e7cac8c580c20cc74454ba8a55673484e74cec9baeea4c154a0676f74eba3368a2280fda6b0367e5e134bf6e9251cecbe071f65a94c703290f8ec8ae838ffd675a5470e239d7ec09280e048b69db805c3086295245628d985a40d0ca7a1a7359fa182b91d570f6502cca25a664202a881bb70d9d13336be036c4b7aa1def8e0c72805ae6ed2c47d6c5fa02421e01ab5b7bab7d5a36c07e2e389dd8e6581f648cac576056f28bc101536d8b8ced204e7b4ebb8f239f48db929d12f378605c6cf8e8cd24a24c6dadced2ac0ecfe132a68c1d48a4b25d1bbbaa2445d673224326a6240e9d05589452e6344c0d30a6ed6fb6d6454ec6c540cf95b28bcbce33328d050c5dd5886c1e9c23ee8b509fb12b9b690c6d660ebecfdd17e6c52f04ef13b3d6443a7080ceff5be52fe70cdfc5c6747f0f9e1925f9a8fa966f1591900ca21c1ec9c92b1c0675bb1de6c35eb6fadd8cedf77daf84ae5c6b6018dc0bf4ca43320311bbe6604be54a8e0053d77d736e9484d653c14f7092ce0cee9aabe852bf0432b7f9e630ce4d955c4f0345837fdd984047313403cb64ea80a50ecf692da7a3b32f67a42b88a2b4422d8bba1a87fcdad28c981cfe3523e2add2993d1625a17ccb3ccee8267284b1a81a7e7be2e4d4c6326183c7cbf520f269b9b5c92d74cb1915f1b6960896982f04a71c06c173ec361a02f0e25d06a5d1d6cd93b7a1c4857af6515aff8e089dbb46829c3846f2a02bb184a54dc15e8c27fe7fbd5b98c99ba0fab1058c2b73aa49f353d619756bdbc9e58928046e39062e77af505349662b03515db4f537847f1b7bcb57e563b740bb3d8459748cea06065abf25b1042c5b59c4f7253776b1f1968727df2cf4af0ebfcab3db406987766de83df981d4d2165a9acbd799691c83722dc960b789c7fbb58af958332a6842277c2043304fad5032a047ca86bd284aa14d88d0a04e52abf82ff9fc7a9e7d1c31097afd7480798f666b1311b0bfd9f95ee7631a114baa3a0aff750d4643e5280d5049fe21e732e46c31285e338527260b499b07bb0b026eab43ad615b5c8c011d53882e80af75323ed2c22630f93a035a4c587b48ee0c38cc1881987d3a36f34b1672b2f55658e5f9e53f0d2f5cd07842ae04a5d3196875ca663863cbf01de295a043b304c5208efecf91ebce663907fe6c439facf3dac91aec387da6bac4e37db61ef1c57b3dc6d2b0c51820600599ebee7ba0312d15547085fd9194050e12537127555d85dcf995975f8d5897b471d05754b66995156febc45f649e427e2c154948cf0df8f20d424b2c53fece71279aca130035d1a221b3ad4a4c960e31c5dfb229a3aaeec04a37893e99a763947f78b1d3a2fd3116a66693ede918ce4004ddfb63c3006974e329f92c996154c981db4d93132ec06c98b593516a9cb2a4e6abe8d59055053ffcef158b138803c1737d39429c9dcc29099766935b01d88d3928cc821a08bdbce6a195dfe55ae4f82d3a9dfb2a4b8990a8652eb6f567cf97f25b0f2f71b13cf2b1bdfb73c1b9fe2f4458f8b32e9dc836ea8fdac7ee2893caa8a4e8443452de8e09c8c92ae896f1cb22406b5ecaf2a0a6b3defa5a9ac8ffcfaa8a8b13021706153cbdcd0c1f2c05ca2cb60dc1a84118f57e47d5b7ea4cc30d76d87191365f3b4422a7cd8097f6fa060d975be59e869be1122e8cf04ca1386814bb824a2fc521f0d5f19986da9985662b164df00d01f2e16dfec19c3b3baed6ab699288e858190bfb405305cc2f15fd9fb69f98124ad799be6f326e60bd8ab53a7b79efdd16af4a29765de046d6e326d21c4c1c24064625668c669740dd27eef1c78035a6866fd8b1bf110c122375bcdd3a7b57f778abe1479d777850d3dbab895d72d74057adaed7644be19acefd86c8444e12a8b42418c921cd717ef096f7f99353270166c839381c06813aa4d086bead8d265374765910e767e44ac04fb0a2f3122193da684ee3bfb6cb611ff1ccc82d72b2aa575046aada7ca3dd4a299d565953b35d1e7741d46c07d1ba8e060a8091b82f0f827661613e1e9bd0722d082cd5558335ec87e2769a16f9e8a84b3e6042b83a9c45fce3a4ad6ff467bf6ce32fb9ab112200aa86d0c17b63ba808046c39908b2991c0d7ca3c6884dd7989223e08df47b68cbcc0fdbf303487453dbf66343924bb5b5a22b73add9eb3e0474d36121a82edc82e2446b3d5421d781b6c82c3ee17e9154421a578a97f92a1002541bafed55b2eb2b5a43f950ee9ad8bf05c7ad81235210611288ec7faac41930d06a4468b11cd2cc36e5c07af1d247c388c3011fe5bd9d46009f8a0e4ec5aee6a6dfa0eec17e87bb75a2abd9949714739e0804b89fd0a9b18ee9786f3ba1a5ee463ea44746b75a6c6a769c1527efa6a8b52498694f874d4050e2fb927b7c22a53ac2322d2de9edffdfa01a97c207c8d14422fd16b924b38b9c0e701fcd52887768c5cb9c929445961ac7a33aa9687d57b2e1821078bb9339f5bccdae0dc35cfc6c9ce924df777e6012a847b93b7fd8f6224af34c0945934bd3b4d27c446681602fdb4585e1eff6d342a71b7908a97269b70e4883042bec2dddcc07ca72f52064cbcd2938351d62c55a1b6897ca76066d8fd695d2961ea6c358fdcfa8604180dfb7ceb77ef78acc8c0d26ee15f4538168ff537c9f7e5d780cab33db4125bf4db6c574ac09f9b6232ed5fd76a89d152dd03da07df66fef2962967e4a6fc82b4357c083a9c0db48f58ccebd28ff2bab679bf54dae131a09aec3029b444dd183a0d72a58eab3e0dfea9e2c3670814f8c046e3617289d8eaa68efc5ff68bf020faf38b781a0b49cd2e68bb033ffb8baf9f131856d6560701dc533d8bd6af2df67fd8716537719c22d1c9a4d228ae3756d749117ad2f805927ba7849ce3507ba8e6143506435aa2214dedddae95c6a287bf63de9b74c0dd27b2234f309345023b61cdb26a1f4587c03e9ba0341b1aeed704b3840391252a7326fcd752bdf2e091b59e7305afff3e87f2d8b072f60e90e024779bad3e5bc5397038ff121d34c1c4bc9c62da5e03167aeb4a5ca9828c90d3f443e48b57f4c2419dbecc64d3d412fae4a0f57497e1617d61671344c17b22f31bb819d1fb976a8eac2d5abce497ece4afe8a0844dc022f1be7806f9dcd7bc6594836efa0dc6248913882d59b8d0d57d3104b03f74e6a78b2070703d9a4e150130be765eb5ab8b3c3bae4e719a8bfa949514ded58558898ada8779a8ea709ed0128e7586dd07129cffa8a14a3b468c6a985a474dfe848829f3b5db715f736b4e311e497cb51ff2ee31c44fd8303851900c158e1de0002aefa5eeb2f4af7e9b7fd9e46e8430c356d9167949a16f2ba4f557af4cbe2f541ac7df3623023490ae672a3ada708561f02ae5282b8cd6e46625f13f2f2776d6af12c486beda6bea6590983e97d6ae2d688e4ba70eaca41ca96bea564ef1409b1bd02a7cd4d8771512b6691174f5ec526371e9941351fe0606cf611ca562a06e1bb91cdd15319e6f70023a572a0e41390801d589a86e6b6cfa870ebfbc2daae13ec259ea35b2cb4d7aa27b10c338f4d937e31510dfe05952b5e6b932e718f76611b4d28173170bacc7edeebf2e8a1124ed68276e543996332566c03ea311257fbbaf2f113455106e67c82ce14b7de67074527c417983d7c8430195dc036a55f5ec504b581a42b12f4f6220afd52088086de2f8e841df3461e2bd3ee6341fac2b22c7b4fb422268a5c4f9893af5804cb6c6e874bf89e8aaca78c6d4147711d27796b02ce790e5d28c62d07cd06e204e6d2da33c26b3a098cab85a044f2d07768f75b92a80335d332d9b14e1b0a51aedfc94cc925f4ef74226e8549147d52dc7041e025aa8d047ef67da1bf114f0b44dd5d6f92939d11d523b4300d06b058dfcd286171990fcd61259a9ebbe85f5bad3db936daa86a9895228ea822a22ca88cefa19d9fa58e93bc98775baab8211ffad4fcce1326c34e732851a2c9d58fc21f92e96ff438878dce7a6ddc2f077f4bc48bedf61d2786447c8abb78d3c636b1cbf90c9187049180d61e5a57e1705fd69d807e7330e9120814b906366aa2af493647c37b4af80168fd2ceb520829303b4d3739afc5fa9a516d829aa07a3aadfd2b365fb2c63ad539ef8bbc1efe33c920c76d535bdb15075eeee6a011274c0226d77c47af5a29c7f0c35d381f5c101c3233fc00c07e50a9bd6f1c99f167e4959bd0311b889b7eb49c30f999850fa4f3e2371ccc0c4507b5218aa596bedb79196e1abd05835a05a300ab0108b593bd9134f93eb4b453b5f5859c57183532812653f49b2b0aa90eed417666c6cb58ab967eff1cc50c9615870a751e726b5707f8f67b9ba63006fe405ca244e1f63bded2d0b195263af7487e9d144d5f8db3f288deb5d81710b5573e1da00984eca001a6e8960133b8097f62b24f5f4e598dca3ab57997cbb33125fbf8cb3cc7fd553a0c9c35bf40188e5d3982ba0862c67a0d04f0e585e58d1aa5aca911c00e12a0a073e7266c8305ee97b4772e6c948747922e831858046d9d13a73e7bd57b4a94baf5d1d2007acb9245469ff4a06c86e68416a2493614f2073f827793c1b7b6c93db78f1ed9012338b755efdb42344fc03f87564f6302ec32f83f8a0e45442b2320671e2738370230627c51cf2d209bdf47177b9a86b4b53d66313082102b33bca87308d1d1ec8a1f2270e2b32462b5277ca62b1a5889f3ff12e44fc08d4c7dad48d00299bb622bea0ca5fda8a7901f1e0eae26b6fb58e9139c7dd0acc7f4a2e1b61372860bd1b7dd4ded1e7710b5ead13b915908aa2cf7d1d70ba944a9f7ac43efcf8dc23d217c3466c4ca443a5efc90a962f130160af793fb03b1a7e21802a32f203945fe89952243d9363c0f39a0c532ca027df49447df70374310c4b8bc0bea4c41cd27b683d8f38487c8d2fca4a8f8e9245b70462dbcf5fe473b846c484feca28a301d574ac198dee52b135f51ff5a5e2be1d8a60a005837734ee456c69e147ed14b35db6ae4dab38611a30e406ccf0e1b92b4508b90c1aa5793b31d234ab50600972056cd327102b4a16ce6edcf49085bffd3e353b0bb1e68ad1e8fc5b74e3d1470db675b098dfddd2da0cba285eaad742355b030a5c76e85b07152dc3a68d2c9619d8b719044fe706ff8f366a8f11c6a877a495b70ecd1f43d78698d18282706e6be7babac3dfb8e6ff89e103224aa860eea8caf664afb1b45f2801d09c010b979f17f9f7a36979bdbc348a5e43d5168fc6e66f2754e1d22d617d091c5b0d445f95088c7964f525a3fad91d4334d0eda5b048c68709f30b18c2b368547a713c6eee8a2c853b6703bfe06b3c72cbe2940561b2695e62130b2f0e4460448a1936a89374b65950f9aa957cad9703f27de66c129dedff70b2eddef32115ff6eb720ab2f85a2123f863b0d3cebde25266a508e02c4c0ebfcf32b24c17cae4dddb9a4c8b05a28369ba379d97543396ef9a5079aefe0295cfef18fb1f10f5c4de3922631ca75faf4678ce8b0df7e9004919469eea1786f8d27cfe2839b03a6dc604e7c38744ece4e9bdb250316792ea0267ce46860b77cb058993996fe5ca84187784f3a687822c3a51612e81b196f7687540103785d95f529fc0b1dfcfe1b45615465a9a7d7f4f1e50790a6d2d988f396e56880bcbbea5b63c37e899b3a4fd848624742f3e45a942fe9e48082e2ad53c735fef300c023fb862d8c9985ef6f3e6c36062f54022e814d5e036c58af07f9a64868cb9e112a4c440ef4e4883cc99b519f102794df3d067b3f4bf6e3494fa94e2da5e1f23dce8e04c11daa17c0d6bf4f1c593bc3eebabae93388e9991104b4f25c80d2def414ca60eb5519c8684ff911a4430cb3e8ca133d1c3923511483605769066a47553f0da70f1200d4d589c517bb159c7c6179700e4d6ab5c8f680e958fb4f949649e0875cef23819b47dc3634dae2cdfa6c76066a99aca11c6da8b961213ea337f490c7b5bd067a1d20daff10252fe64a535515512df36653435f93f5ed01191d2c16ea1c22b05081f3902ba670c20f51553d0a3738622ad5f5f3cb296689673c0909dbb20a8f28922827adc79965fc35813eca8667587aeed9b5c826c02b3e0e8154c4c74ea2e83d297e1b962b8436e196bc2d19313d8a4ed6b97aaaf12e100f131ab16321d10f1423ba1f0b56ec9d85fca1d3c3eddd4c88ab4dac888e00784185cf02c153ef0fce57d157703427d714c34cd7c6c3630296cc5b9123f73bfca9b0a7c0ce6717cbc4fd84b0e663232ac5ba67a05c612ca653c74132f7d6d784d05d98f9ae7244da76b06584e1e92b6a939721f832870f28003ddbf611f3148042318f6938cf55770471c51fa86a6506bd2574cbe862db83c06ac3cd9248085012a8a75275a0e63fb636b9a3d6af4b4f468e6d8692b911991b420f2a2f7bda1a552474032524a389750f8ca4dc7ee95276abadc03ae22f1c7f110258b4931681a209acd339d505ac4fd0454a7cbfc46e576d89075b900b1ababc7e777c0ea20e99e9d0785a5ea676f755272c4ff2b8db394e86ee686e0e4d818537c1fb39387459c09c74615c840642553e9a41f739052ed71f3343885af3ed63de9935e582b807414b07ddf0f74fabbb728a1024b9728e3409adc68521ecf9eed75c445e2a994e321080902432fecf9fafe8d0aa266775da5cf83eb5b8a105d532b6d5c07645dada4cfef21977bcf2c1099c6950c91f40396c43eae533ad56e4e5d9ab945c75dc7d56b6ad0f7c98799c052d1773e6c81482216e8012912f93a396e41bbc0ea189e7df941f3393f06e045f9bea60f4d3577b25b5a9dbbe934a7a6a388fb26fc69b0958acdb428f4b005af49b44fe505835653b7780d207cc6969a4b6031bfcbacea7cf2f2801898bff48b7295dbcb68c1cee843f1893ac24c553114d8b9e0882641438df8076f0276419c50ec2dfe9344037a023f3aeb67496d6846ccb1a6d80a2fc0cb11304947ec78f08cdd216581418e9d1b08b674ecdf9b1e8a37d20f7af5145bb35424687d6e75d07184060a413df57ad17cc381dc76dc1a0c9efc13d263df756a924c713632623bde3944159cc14b8ec0198338734568445d382b1b05bb93b72e804811d700afda5e6aa4d3b9bfa626b824228c54e7e36f7b92cb0fca01a692785e030a5e4bea75a4f31fbf52e192b74db13a1296b8f78cb8ff74b1f1a371fa809ec7852738e2e60582ccb1cc6bbc0d56bc9ac1ae59a88173980eec367f073e30d0dd32f246f2c0d5775bfbaf470266fef13798a30930a9912793bc4e0a42f15265f53025e749ca6dc3521ead68a35266416bdf8f7d260bf2b27bfe5deb91950d8b03ae7385a3a16836e972e0ba2327a50ebf346c0939497a2e4ec2e2b175555b7025921affd72dc08718d8bac117224dd1e67e9cb77ce1c1d9e6d6d07adcc4a790d404034e1e41f7268e990c9780c792f31093fde015fef5156bec7abebaf2261ba450b56aa70fcfecd12d88238a379b617201a0f1a57b410a31e745047ffc599a956da4da4d973e9f148ab10fb34cca8b9bfc3158eb09f402ccfee04b8285432ac9846d43cf6a1077649d16c290208c6741404528d06ebd931a049a73eb409434add5c1c847016a1d546b74274810a8a997df9602ade3af503d06e475800a0623de4bb96b3167600da2e73154d644665ec77c83adf7e34aa883971238c0e38fcf46d4800a3bbc58c234158406cab3e3926586ead085bc69cb8d24333e35f2246121e614b52a70080a4f517944ccb9f4c74d540886308e5c6227b72eb69e11592ed2dbc256197dca22533a9d7ace0a826f563e4f296c8be42681ab677b1e8a76f0fef5838984fddcfc2d56f610ff5d6453f5fc339a9a1a797be0e7e2f504017a2b91d2fc260ba19626a855e523d530472da0450d1880640526febc86f5e44bc3a5b0386d94799541e62dc0cbac0eb6d7ec33e9b70820f987e5887e656f80eb0411d691d7380c54a97bfddfb0f68c950aceb3d0aebcd4251f16b5bfd17c0b47c365a5a924960005988efbb82fbc7951183b6e434e0ffec002b2e316dbd5b91e85a1fb7a9e2e253db2331ef1d59b62d20df7d013770960955073921693af2a32e2ab1966a3b2403e8dc189c1ac9ce45092d0c59fee172bbbd57bce1629db2fb3597047a3217e80a48c60c4ad8d8f01e684224815f9056559dfff664210e4c349aac444e2d891432cf3ac8e91a05be4aaa0afa8afb816af24026bfc79c03750297f1503fdb1232aa7525dd2b27691f80d749b67d40c7bc9e2399ff8ff9c667d028873a5a8e9df13fd5e92e27a3ebbf7fcf0bf6a00e19ba0f3e87343b3dea5f6af448c8ff09a8a21bec9f724f751f8c08b0f24897cc39b9ec6454f11c96d21dbbc75df626ae3cbb114710b6bb1bdc3adc547bb348f44972a7f761598d50d76798c58b726fd8a75883f59fd8bc35c6c0d3237b2f9d62987fe46150a867d3bf869f8e541f046571b5cee8250dc4399ed903978e2807f475e273316babd83d9cc621f955934d79cfb54fa1755b99913084f136ecffdd373b7fd9c2a7427d800dfb202aac987402a45ef04a4520e2962f85d6f613898844fe9e65c6dce5d00b13f75b211aaeb491195b49abf789f72915e2f5241f8e77f66d6add1f9f1cec6d5d156b0a8e887e801f795283bc1c0ddd66660061094bf023e774b3e27e069379f6b1ece42e8b6a86582aa3466c2fa7ed5c21894a27f0a68f1f30d06c35d393d0c8adc1558152fb2a8a05434a7e6e6186f9e589d9232329a4b176eae1b34a75eb31ee59b3592c30bd3e430acd7a59050313cbf792497c18426b037089e74475f852dd109f419ce7ba1644927b54c3f030b1ac670b9107352b81f6fdd0772fd72b46e799bdafd811d23908b6512754ccc562a9c269eac537d4af5369f5b78b825bb7fd7c60f04bb3e572b7a2fbf4089286dda40adc7b2b7da7e18357948470f1ff9f15a332e614b7c0c51a781819afe3d850c42e301ba17f022ad266a8cb076ff40fa7f239da859160b81f79005a6bb1b84ff5ef021d042278c3f0e6b10b0da690fd30fcbf6aa4b2011d58ccf0ac34304c1c66d536b024ca214771210e2d537ff510b3b6f348adc857e57cccbefe5720906c0931a560474b09824d32bfb64050a73f334c56dd8dd29b6ae5e87494f363d67416343b08a4a0f524607026864d59cfd639f6441b69025aa111167be17be510228813f569e977240aeb6573df8894be4354ea31c4157029e322ce2c0337ce22f39e3c69eeb68bbaf31159c9e212d48b8395565e1b9e9bb7535ea1fe6bc20cb2cd5c99d57d20cef4745b645d30a130e7a30f6e2793c1bfd169af5695aa8d2b338007e5e03f2f63642f351f0fccffc77c285d85384d71f455d0239c70a35b772960ad10821d5f6bbfac6ed63d1f88cb80791c3f345f552136a66d470b06c375d5989bb7bf3d239e10e5bc54dc4db0de3eb96cc8a6ad47c0f61f62269340b2abcb4be5a3395a5db44ff0363b05f27bc5c67f732553d7d66f53b07e5f9ab7e6b32d9ae162aeb4e8a2ac79d8e991b703631005da8d2d1bc555f3285d62649173a57f0aace9eeaa0fa5174a02f8753ff60731334ed9945b8a5157b74268b0f642ca5384a349f2621217d0a6f93ce12816117cf300fc9c61d0fe6b3d938423458da54648eb74fbcca820045065686a1cb7d5a8ca26937c4bf58769485a45b451654a05e0eb120346782fcba2d22ac43b44e6578178816fa18c48ebd3c6e3b9832c0258ffcd64d7789f4105c12feebe66ba9a9127b39ba0e4dd3f691aa80481431b436bb4003aa4b82d00e9a8511e995c2af1173b1965ec8b60537deff70888f1bdf6d012b8f4d4f3a7a94ad57101e0de3cbca519efdb8e4a46619e834ceec45d7210f4b96d9e828a87cce556aa2063a1a7217531fe550e2df0223bfc66bf9680ed73f834580ce0c7b7d133567c40fc00ba68a793136df59075df5efea8944409b72b4137f913567a1a5799944ce92d31d61868a580fb2d3c21ee492596242c30aaef162694cf412a045af4d2e17fdacef267e5ad98280fe1f008a8615ce4011d76fb2835aef286bbbc31d5fae9ed958c16f977e83685702c176f4e6947b8c41b1f35e298952e68da015aec8672da53fbe0ea9393373854137cd7abb2493447cd7da3ccf6d6a65770820d77ee7172744802365d2efb3afa75393354f2796c707aba347d49c575b18165b0b4c63ec17128c15bf9b7e8a56e561d4052b4915596b3d8d4c1e2f8409241c10aafe41699af0b7864f84ce70ce5d02aeb28766eb5936f29d40b14ccdd3bdd2353df08980b3029132e6ff0e5eb72bc1883ae9994a37bf0d59d504adf05ba7c0d097a8549722ee1950a9da75423fb5ad1ba2ba4a8990cce57beda17941bb93a729f6bdf1007e37792ae3650a7845cc7f37b6880f41345a8003ac5bb92fec0613cf74fa1ba0cf12eb56fb0c2d96e35e1518990e5e6c1bb2e73331b3445f04511c7a9ee76778741523cd321e3e77ace4d72f1199890469d5b27e2d5cc5c8841896323062f5b854ce3776c9c3c5138fec5115117f52a8971fbe9d8326b49b945bfd58d6f70def6122c4c0b10a49df917519be59f1b8c950add579c1c8ac4e43b8cd68ae5c65d174ba9b63a1629d4b0373db46f3713b50c3f4f65899ff9480042b693bef72a96658169410f3f4c03dc7c9db2e55f81472552e4dc0ba5f895c957562b2af54f302c30359045b90bbc8106d720f6bedb073c2bcdd6246f2d2c0bce9d3456d7d1319a0f92d8b06fd8923dc24d3d5a818762f4be8044418e56d6f0a9cb374d78d4866b20fa62f9f5eea15c60927bf8e501e3e84bce68604b4b1e6c6e362f669dc47e21336d0cabdee0030aff8a00d71a01beeb4ceb5b8ac007d2a8fdaa0edfa0b24fcbedd9c99354545b8b5ef028ded57749d742888896190e869184053947c42d905e92b91d7211214f8db021016b53897deeb7792f42b75b1064a2d507ba759ebd9f07a0a1f30bfb068054c1cdb1a4c679cd1e0de3962e8e0d563e1345e911ddb79ae66f850377ccae0313c584f07781ffe96eb30ca15e995b49bd65b5f7ec2941ab8e580969ecb9f864aaa44f71c49bf6a3a0456676169d9d9089438a23acba841582c203b6dc8c9a29be190e5d04ffe6e56ac9808c05febbc31e3ced403ac88c2e8dd45c859ee9ccac7b74d35de6d07f55e4463f5ff0e25fa40b137c04e167c8147a4a9309b747cccb85e06511a18e1214eaf15867639c78129ceec51d51818ef852ec38eb351c5aa2f915be4b5273160f6ea4d9605e4abb101dc1d021a3e294f4741372773e073c579eda8d2914f1a5e00e69a0e1b1481dd9ec3f92459bca7876f5507a1e181fbbf89167b5f2b18ffc3f9b9fe23f09885a01c92f7be8b9403a371c771e4260a425690540cccc2637fe016317a6c8dafe72af0c8ae9eee239bdc3f3fd3f543784495bd9459d3d50c7b2a977554846b8ca26ded002b2eca5d7499532f95345830efe5e2ee1a67d7ee1c1883e1ff6d6b96f7fb120c49f1f71070cbafe9be342a12f9cfd39e09b9accf3f96ff64b3613fde048dbb3c6eb393966940d4e950ec6204e80e6f24ce1696ae9ccef12d25e8472a28f0fe10cc8fc5f945601e56505f261a68d2b66d6144b425ed1288fff1b6b73612889ba28daa2e3142bf5352f8d42319fa68dc79381baa4d7422c9aceebd5d9d62a9e86e2ba1a216ace1fa360808aba1b35d98ed7adb3e34e7dec3e52a30795a26f6406897411b3615f07e5164c426d40a7523481cce3074e84bde948e92df41518663c7109cd3768e28997f77226ac79ee325ebc4aac09fa7c65edfcba67218f0866a56feed6074dc1752fd1082662d4fe33916446f537a931bd69bde61b871d643415a18b76271546b2da4d38a1d6e1502db65412d0b60f91e035648f9f19a41993a9adbefbfc5b22f80c96bff75a7161c006c2b5e93f9f2defaf8fae2cbf93562a85cc55d99547e919bbd56e67ab633415336269cd8e72bb5c94718e2850a50d8d4433978f844594dc8635ad3a1dbdcca6d2841df7220096d13e564fbae9af774d5f48bc66a19cfd5f5dfff346f4e4b31f7278f3b541db3c9bf65164b18cd58d21e7e370f9375f66174a544fbb79b17746d08bc3de61fdcfac28d415bc42c58f175726548f6b70f351800fe23eae7927fa1bbc974e6b6d952fb13afeed43bf81da64f17d47dc1e2b53dd30635fb1e6da3e45a92d3d749d79a396e18e96d65ca90606dbf312d74d7bfb646f994f38a8285ab3b9785fe682878fd8958967e3da138e1b87337f9a45b3007b62e5f5ad80affff16e1fda354073c233c487eb77cb0d2d75b0ae507a0a86b6da06b54ad6568f8d27cdfd0394321323fe36734cb19fabee1ece48edeb890e678f4212070f1cee58665f9ff84759e0107cb80c6ac97044c12a2eda96c503473b6f7113a3875f760a2bd3c9fa96577a545179674040ccf31a6893b0753ad590b3daf167a40a58d20a9a5df1a666c521a0efac6b9e5b0c17aebbdf0b735d322db0c21fd03c320734ff4d1dc3f5021e3ca02468532c77f3d32d09199fe3346ac709372aa23822dad255c9739b0eb25fd69b297030c2ded58f22e1221702a908eab9ffb5483d21d564e2dce10eeaff591ca5d652650e2d9b75ce64db8d39d7888593024ec057abe8a88a954a61c4ebbbe059dbd2298c6845f42112e6124094516e8b77381adbd787df0283a01060612e19341f6d08ca587941c069532c012765dc902d66fc8e2cf94d9a69e94918a82a616aab7e6200ceb8d113a18052588684ebf561d7212e3824bc17b1346ec3b1c77660c05cebf7d49ce172d2fe729ba3851b68ecffd5348ecffaa522999765736cb9a7f88229401163ee535d0d6cf58b43d178c16a7bfffd5b56d0c78e0eb3b130b28f9bd5fab5b78e3d92683795906aded5b50d1b07391f0b278ffc01d162ebb88a4681d80b5ae33254c2b8f03591b5f8d3516bef85998dc84564064d13514b858f892aa561773eb97f964ca209e00f3eda5cf49990f46d3e8e87c2ddbb71ccfeb3e5ed5cd4193a9d4c537173c1c4a9c7e08c3396db9716b762233dade392f9080e885cce8fd44da10f54414083502ae13b9635e4acf9f4ee28a143d75aeff281589e400792d8f9785f9fbe9a66986b4829143d365cb70a83c70544902391a3e57047d796305b85bf978bfb67f8bf93414901dbacd8e39b192d5e0b70f483503cd7132856914cb358567303a7b9d354c020c06d3323a6e8bbcc3b3588b8d7eb9735169ca6315ee705ff7975339e735d7696b3480dd2270c1918415e050d73d5a6d38336395f59750f3a6003e28f4d44ce7667062a8ed35a930abe6b2ac7b5f34d20e5109bbfc5145f71684629e96778b9f148c76596e3d90aa05c7a4d6beb4dcf2dd6fcf5c9dfb24d544b9ca5fc3b00bf1bef5ef03a40aa505bdd451eb58d92bd30576dae48df1cb4553cfe2a8da011e86df3b1b461ae8010bfe31be6125733e005ad09cadb8d3c832dfe03c45684ccfe425ac6bf044e85c6d6d2aba126250137a8d18b54772de145550785f18278a2125a8b4855b0683409aeb945cd48ab717fbc74cc4ae3ae4e738eb689ba310b355d59da869508901a08d64f5a7c01f5f8f8078c1eee3a380d675a977ea0faf1b471499f2557410c86a1e5014edd91b820a9f3735cc46dfbb22780b6db5764040c1814df0d1da59a87daf30df19a6a79470b0fa048f3bf5ca2e38c06b2396b065c540b8458df117cdcd51eb02ea5b37a31eb8ddb23184769f62f4cd4d0be02439ce2622638b476d39b9f075fc5cac681d524c1199b36719d17a3544b75f98bf65fddb16423445b54c14452181a36b2680f27a8d66edc7dfbb2597b0ab6ee60890f5e74ccc15a5941efb62abd784fb98022625e077621ff710d525cc81ce54e9a1ea48c525dd49eba01eeba7e53bfd3c4353ea79adebd5d92ed4ed607203a15d908b8bd5bda9d6b5c4d92b55a534b2adc33d16789cd0a549795208ddc6e14e9b01f8e2e55787b962da33bcea74b119cecb84e2a77c06374bb87c766bf4055f4c27264ecdcdcd009de73fa41b262333d3df8179de252099fdf0ee20f731b7fd2305d76667a2bb34155ac7149680161d2a8c36412e648588e81c53a74f8c0e413b78127f2e62b24cf902541a7165cc856e01eba018801e24c02951b4b933757bc973f7747e6c073dbd2c1e12235a6e4797d08c6819bb2b5b93ce73d8ade1db6c654eae401af316b9c20915d0143434d1ce562c3d33010f4086c04ceebf0bc399e3a4eec21e30714e110977f93b38622d6f9263cd89541994162d7fc6f918a0aa3ba4be98a1884a28bea0b30a7ead4f4729e4adb95e64543c00e9208d87b0dbeac95938085f1ea49101333b31449370b6f080503b62d2a9db454ec792db5559d7fd6cda23ec52c87facc206a3349b5be7ee25a070915b301a131f7903af07a2d5b9cb5de44d8a9bc664609865fab0438083f1c40ff255cdade33be810d02d34e6fb5f3fd0d2515d086f7f2d77cb2623da65abea02e9ace391841312e7a66d26b6009c2d770b4b7d91f51e6876e70a8e6a72ebb27d1bb3133cdac108098d4c89cc7d3a1db298696da0cbbf4079d22ecfd8dd3604246d6f679d29ed56242e3eb59b1aeae1558093dddb9e2b008779e418b90b33a358fb602e8cec9d0a298bd61511d6d585502252edba859f28deecd6b8a198d7eb4d2bb56a2bc71f9a37be73d3b82c58dae8fd03d3ff083fe83f63b91114845271bd9779bb66dc226f81412a21146cca1c44a3c55e3b9d6705e09b145406f8aa71a93df2e360476ad594d0075e7483e762de48963f6c1667c5ba3df7a2695465e50910b980578cb9b74567b61b4579bb4c2f2147d4ddac660ffc5202a73f5e136e98a8882d115cd0d3622570fd1b81020e66a4b6b4169362c3d7640c9227c551f5fd737a3dcfbe6530ee786c88aa4334a952a162f60e91f258b3d5adc954e0d3e67f7bf28a49ecde5afa241fc29c78b34a871d137e866e774d2a9c53670419b115b0d8d99aa44b45b5a91365203c3eda8bd64d550390309eec2c912bd616039e4c15d6141138ad3e7adb7d13fafaba552278a8e872574870795b416ba81691c3d23d275901ae03f0a595b9051508871e29e51268c5284aa67ad03081936509639f67b2a0ee2081079af89659ae4d74bc7ac87bb4eaa910d98e652ab16b8ba08f8540a47c1789bd3765e8f2efbfa09064670e12adb2f0bfebc7ec28f3b2883a77e1654cb2f8384591100813734c902b3f9e77767b56bf8296ac87a5bb1cb380bc814d34f586882c60244b7cff28b9be106f146633809739eeec62128457d9e93dfaf27f64673aafb2ec24aee4c4e21a78bf2ad87b92c2916b2cf66efa894299a371290e927ebe34cf74f9ae65cb2d3791692f0bd7280da977d237907c6868574a355766ff9bd6987dedeca2cef1867db2dddb90775f4de64c9338faf324a11479f6be2873ffc4b483780422a749285d3320b92a725b49d376af161ac1c1b5fa7cf96021e5b0eeda2d6262d22a8574b3a285a6bd907e216d23713adf43a92b60ee356a9c8663e87170525f925a324c7d228901a1bd54059dc86bcb46d9822901c3fe3cc1abbeba3d92732d91943b58035965ad604260f0d13904cbbb749fa1ca923b406847c7fa366dcf846c921ceee8a4a1bbcb12d01ebc51e698a0a60f2bda72d2515c1d403386c80cb7a0b89b1fd1557b34bb8497240a62088f021abb289d963ef5adcb911ecfe5f22f3f7169c8f8e1982e7b2689e6fe5f0543c3a1c6eca4f37145dbe64a39a2004f4f62a04e9f74bb21e595889f16da3784fc51cdca481be21d6474ed93bf0965bcd0a1a3eca7e3f25494d24d44143ad7eec643c6629de9ecb86672222bef411b8cc7978c714e1beaf2fd28f1117908bc04ff5e13a3ec921e445aec021417ca2d947d2ab107ed11e1d6cded97ef805e1ae71da68fa015df21447326f1b27b48082f26a503acb721d240cc85f4318e718e723778bfb8767c8bbd8af9455c29c224dd0d6cd73dfdc1c178fcc85089a9065c4f0b7bfaeebebca533001a977da88a2be1972fbe74a9d2d71028b2f7620ed0ea24386a36065a0c2b8f4abb585789e75cf81ddd4e9f736e9094e88c895430111a9a054792de76f1cae9953669b795b7264f67b3e53d8991cfa4facdc5d10610a43f498b43711f7bb53e343a9c88a0f27720bf2d94701b2427b9fc240e8b7b77a8c2b4b96735c0c9e7253eadfb15a5c80c4bdadeacd77dbce4badfcca14234051605869d99933344bcbd5599fd5ffbbbfa41f5c4aef0c6547627f6c9b9a354dcbd69c746f1352291ad0bbc7009accf7c1d7ce726d540c1630f9748cf4c929c6a251fbf04cf028594275fb0e82830caf95aec8a6778b2ca6c43d57b7a38094a28c6ff1e8453b3a69be00b02b763770d861234e72606d2441832b7aadf9124f7007817568fa3c53aefe030fc1052c40399c3c0f9727538508875ed813532bbbd179588700d37f4eb26be95e97bf27c8ee8f30c297190dfe8fb2e6e3f030e292fba08f06480da78eb5b8bfff15b9f2cfe63303a03a24cef661aa653d32e190bd384f9ce956d86ab329062d42cb3edb5f655198fd0a3b7d8a779f01a227b72070657a4e4249814b2235d4b39beb14f08182fa735dd6cb1e3ec5e9f62704d4d835739a91b5c2afcddc34c5b3c2ca47122baa50a3e33343487bae72d250627fec5cea578b2d66b251c63330d05f638c40f91b9b870af6a0cfbe8aef9e8fbb0f4ca8618a71965ddbd7eb7683a64dd330befe6aad7dd4bb1c29a127ec8ea0f1627a160787b167d6ec4398f376fed2de9cf763fe9d9b7b61da245a45a5ed76c8e668031dbf42948195f1ffd50edede6962464492ccfecd8caefe2519b3609567319ce97aae3e3e13fdab16fa6d2b11feddf6cbb73864fa22f3f1fdcb83c45bdc291b8d061a1833c6605ab37678c6454b6731484f28058ecf6bc36af8a52d3595c0ea683f9e0bc7d6bff37c0e46446ba311a98b141ef2c9813af3d330e3d897e73718ceb78da31f05988b3cbe64b6a97bfc31c50f206643ece38892792a14788afc9341931f695e17b2891834eb2741ee33a1a7214eccf70664ab3aca4a6a261a0e5f4c0eee1c6657fe5eed525bba123a21988c7dc8719a8c527703917d9b9098f7cc1ff4c4102611814970b0548c7a418b1d0e2ce61de77c17c5f02ec12c84e857dc2527c07c70164ff9081717d4fb0927266d88bb0a32992fd166750398e051fae7d31ebae9613b9a285707d5d7433cb86efdc1f0f742eb80f81b301c679e007f32dc610a0b49d9cd782932d6ad33a9c149b95be851c63cbffaf09b97c32f84930e290e94a1cf4fbb2643ff69eef3c1c54212ae35a7449be07414e650450653bba5e2572442de7bd667ae08aac1901b17b90d6563e69ddda185fab7dc09f944a89f1e02211956458282819c0cf33ff038d4beff091e7b171bce1da5c35edd14232cbfe8860545156df3ec3dc7f43d9fcf73395136b90625644033be8c88e3e18331757638a5a958fd31212301fd212a21fd2b0320728027496e7602987030b2baa1cf2f9c2c36fecde51ab8d5a6a4b82528680e3075effe0e4af8e5c843bcece737c0278b23c2ff3a9fac1a27c11711282ec544576e4ad3478b66d1004cb5de842004898f6144d1fd642d9d40353925f6fbefc8b47aea91b72996a2698e85371c4e6d1373e33ff4d9a80b46492f9e85a149f0918c38036648a0372890f8208a927c1f951d5487665975245086f2aee8cfb963ec8d6f27460fea7fa84e2671d1fe247276c3621c2f99e626ab6d030fa89b62b2f7690b9768606b3d5c870a8be712e44e2f6440b9d725407c78889158420462ca27ba6230c7f338c4eeae04da0d141592cd98de43ebe731258e254b45daee5f42c3360464a2196f5901272d936663a32973b2c9037c201ebdf9db04bab5b61f1d663d8477fcfe8a49a868e2927a96546cd628b8f49f75725c75dddeadbc4d83ca81a704b91d02f8a1edfee03db71f0d6abf5829f9ee0e6663f718d290ffeca16cd6f070020f17439a4c51701eeb86d1c38d92ad0105c2ae4e252dcfa83055d4d9feada810213ca615353e6ebdcb3186f0b078b176064fff97d92ad9d7249fd84ee55212c068fedd498d8543a670bcafb12faee65316ad604ca227c660569c6f4648495035390e7b842d030b9cd5e1b5e123d5a36ddd66b87242a08f8b64c715763e571256b1e3213c62b975c55af46ab33addd5490a070e9531ab5c7d90c4b981ac553dbb2d736a176bab35fc44e6d9f035a25ccfcd9461bf18fbaf3340729292cf36e372d2f15157ff87f97b3ae29cc56adaeccf5b20250f57b163557e89769fb75cc57d06aa701fc42343e4ca733e274255d1196e5fab7e81005d7778ce57dfc63f5bf1f5df656ad9c3a2dfe23f67fcbc892550c2591df0db9e218601d1c3903465970c0dc62b154d3821ca574ddab9e87463419925c99be008b9400e3d8cfb8ea5e45a82814550a5c6e25f61dd814a6dc85ed538b4dbedbf9383143bbbf85333c31536cb3ef9f15ae44cd41dd40ebe056907f568aed78fdb4ff134446124f1d65041952356089958c138b10ab1ec67fb3c8dfff6605bd24abb427d8cb2681affe7c31b0980974b81a2fc848c178cceb44abf7933b907ec5744bd859930f8898aafe2c8c0193942280c56b56de745092327c0a574519a8a019cfd58957b0aa52632c87dcf794bdb97bc7ec457e558f152b4699a938d8c0379d85161cf023c54d684d5cc83541d478976f6f45bf3c3d8e02ffa426cc7c909a86745793845035974bd812a68308a59b09bcb7f6dd9fe4f7e91e468618b4e2ea7d1c885e7a15df729b941a5d4ea001230976c80e59dd3e17139de8ad7e4c299444b9fa395b815cdf73232bf5c4c26d722184c50ff6dda9213ef83cdb7ba615d8418fcbc225a45ba2f2a7ee15dad8517121ce24b5c165a60522f30c3ee3bbf711bbf794f0e09f5d0fb98bb2674aa01fd82c9d3e17f0b8ff030cbdc21ed5b40faf608d545010afb5bd57ab8e606e9f624651a4c5c51029b2441d629bf295f55acb2d6150c43047c2f0e237283b9eb42dba456cf0b9e189f4230e5e3539c77c94922c20f704432af9f48e33074f9f6a02a9d5e135a968dc2fc3a9ca3994271b9f5cc9064731622c8acfc01027174050f319fc5a6d24d0a28b0b18d604e9d6e03cc6c7672efee05282df5000aee9ecc2c8b6fbc705e3a7a13d57a68118b32b5418b7127d8cea6943801d33369cb2ed1c655c5cb53c6bc73c2bf9076b3a30a8aa2517bbb78ab3e7a92a68aa6ac3b9f8bff38d05e7d109030b97f7f6b5378321e2f65e35f29d3575851d2e0530568b09cc82cae1d2c735c1686e1e982f1b73b8b53c033da7210b656b714f2abbf46e5119e2af517f76628cf3d5505ef5a17badfb9a3a9da1018c74382eaaf6ab56d03bab5cc2dbfdfd9e0f131c21b9752e7c93bcabeb91e19271845940a5cbeb367988914ef54b1b8a3d33aa41e0926a3c684fd61988863f430d917d2300ebe0f39700f3cc35853ab23375478f8c168f4658dfd93c1722893f763e158213330e34c21f9616ba03be65da22e26fac8fc7d7489db83048441888bae8f6d210aa1abf981a7631e846cbe0792e96eddb94ef1d5a15aae31023af3fcd9c9c7ad26c945292ad3e709d05ecdafe74b962bc0e8343302ce3066e3866479a5701ac8ef437f75fd4060a445dcd59664cc22a12011cbd05d95e1a5508925aefaaefbcf2096b8379c86dde418aa79dd312a6609adb8fd5668a94b6c29618e09629a8e7d4a84519feedee6e272030a625c9550ec53b929e15a38df677f8f53618963903e50b9d9df9e0ec8b4eee3fc08536750778d64c33a7352e9ea1b69f596c316abe8e9bc3fed9d5807ff1d22d1316b6b40a0ee61eea972a624bef658bb0e86ec2f6e223a78099c82f58b055a6bc95db7a69f9cddc2081d4ef5e8bff2e430eb299b04d995579c93e9896e9ea735c2c313c685cf069a37bdaaa1b358d5fab7319183f643d5976b3da6fca754318cb9a0f443dc57defb239f511aa0595d69423a62d72c66d4444e99c1d00388824039d50165fc145508b9940823568c27cf780deb8855a0cc08e46b7940e20fb63d53ad2f22007bba750f71d2ee876f63a91d52a80c701e2b13aeb8943df5b170974c526798fa187b7e1c900b81a4b5f54786d9f54a7266b793244ec87788abab8dac55bf9472062f58f04e9665c5c56a3350134fe7aace0904093a2b1bc92e4f4f4b2a443ff079f80d4e8b1792a53ab96ea1971fff7f0252b9424fbb38a6dd9c85eba95026cd3432d8072d43829761d43ee59f23c22b826d7808a6f10a4f536af2808f762c5c136e4b149d38e160be0e62c288588622214e06f7186788089b2bab85fbf61aed83c3f8c148ef519a874ce1fa567d39e087b0eef9c688f60fb6cdbaa6f1cada25056e59c81fb328b22706e5002d2352f5b022fb98925c6e84196134a0da3b96a9afbb1f3617b127f9bd1a384fd94da24d6b5a1452a35585dd2c940058020c450caa4b4766aa9390309a7262ff47a4add5dddb8724e5388c49ccfdef25192f659fb59c7e36552f1de9c77185aa0a3165d5fbefeb578611166ac937dcbeb312e2baa0ebc3b2183fb1a27c3a645dd7b26a9113eb1bd67b35b94969c9e167c8766cc3d2614f4bf930d704aabf414b097d3d0644c30625f9593c12e3e1fced34d6c455c493247381025ab873a77ef61ee8f2da00f7492afcb7a1fee5e2925d385fbaac844fe5363d2d8e62acfd20b937525cfb91c3d267c340c2400fbbb29cf77be08d33bbbff43ea31b0362b6aff29cafbca392abff4d51e26a16761016dafaea3cc787c391df99db5a7d52000ca436ab6f0a724dfc94eedb2d16223b2d3aad67708e4ada9b60e8ee96666f6732ed1457243ef589514ca5225ad0900fc04adfe21be0d9045dbcc8c3c64a5fc70db4e66c8d41b2fae374c4d5ca3c3079ed8c464b8454a53a7298594b8f79ff0dc6b6851ea9e795b8da865ec38012e8e493d4f9e5b6bcb6139321c1cda015dbcd346f697602765f72283accfc37128f7b6c53f436b04123c7059aa946c190b6a0697831488e9c21d3b045287b6b81732c63e5977947ad9b79240abed115f7085a689a1fb105e5c538448ed0d3788fd487f59a27a9e0fadfdbcda531277d6c7b098b3b9928e05585baeb6be9fcd5226669a28d4c19274c4519db3a38280d076ecd31baaa204fa7727f3f41da218b98d372b4c1929e52e43716f5a58b7b05c27275aa1c7e36dd12ee64c19dcc8762543756f137e846b9dab2fe62dce739c99ccff47998e9f2927832f575893182809ca2f0f75823a2afcbc824ac928faab11900a571ade11ac34ec9ad35653a77551f993457937c9af9ec1e2f27e9c60fcc3832583af40090e093139670005ff41baf96e4a75c0edd4d916e97d0d05683d4baca3b3f4b03c1ffc3c3255e22dbd25432831d33c559d2ad540679020c0ce3fff0dc8a22c04daae5a5627bd3c92e6cf38443b1ef74c22694e148afe7c739cd669eb410266f6566c69dcae239d499de2b0a2a51e03710e33b7d2844c4cc33ad2378517b3195734e1516abab5f91a56115fb7f881c37f114824fb12e6d2cd2d775a1e57d603cc7aa087909501d079daa921201870e9b730724a980618927f3b77b1957c3423e53f3b227bbea084d0f6132135fbbaf9a8b0b5c61472976bbf80a5670c0b037d22ca0d3d5eefdb1754ea3f9c7bf3dceea91d01ec24cdbe8eb472dc641f1f78f810c8ac1b3a1891ff0f39a4a8d380aa517c24c7b60e7d3a764c77699e3ecf95e26d3da10da27728a2958215923570b5192bd35dfac08c5f48066a7736e67f9258d018ed67ca8368e7c1c74df879ef4ec22070942fdae54821f9563cac74d1dc36c3e81ab869ff74928a2f904d900ed5dff87a47851710b0febcac0239c3c434eabd314d15d5dcd2b1f9115a9cf67091bfe0a6f3318f992ffe8fde1e94807a2cd512e5c19c0856e60fa550d84332f97793bc01069c9844492302ba4658d353cec2362de74d48e2621449dfccfc7a836480fbdbb2f41640786a6d65ab27a80221c8ca4e647cb441c5a98dbd96b9397c5c25f790447647f7f4e7a849cbc825886ce6fcf64e9a848e862d0c78aaa13b5192936514ad4bdcd8b2feb3c1f9eb65e9cab8ae15ded1f8b7bc38bdc0840dd2f8b82f803b01374de14da8c0ca5e83ce94ef4227cec1cb3d7553fedda95fe6a244f58d336a4ff27512b64dc85f8b1c884c0774466d13db1460ca1504200565e2ba270adf0f930125e76b6773df972626e9ec63209940bffc91f0013ddf7c641cac2d4761e9179f54df2c8b24cb80b2418438e6ef432040ea2237b443672bcf100bcabc30f8ffb4dfdfe4897cfa47ea1aba8457d5864ead0ea33a03f1b1f7d2cbcffb36af926bf795ebe829469c834987f2b969d8b661ff90cbcfdaf20ed266e63d1654e73f20876f7c2a746bd13dd26a51c2ab68960364a488d95861b9ee6294e80088ff9d9f232610ecdc5f5ba38405f24cb176e52635b31452cb8a96bdda5497244236c8d096dc95f3ade3ea26643a274fa1efd95a7b02f04af66a8bb663b16fefb3b8f8cf07272d2e46c4ada7fa49bcb6c5c1cefddaffe732944bbe4af81e81575e78bbf4e3b31cc2edccc2c9758274614af562c08982d1e0693c902d4f4e8c11d1f6c9f85b5ef3b4766ffb86d485902a2a55757804ba01293247edbedffb46a75caa1eef44d2b28c25320a06e65f891a9907475ef6f0fde041cc9d2d1ecdbf3e4488001cd34758d44e6efc1c31cfe3cd0e920d82b2185d071095cef612062a68fc3bf96b114f48c5d00328995cc1a14b21778fd6036e1937f2530efad3642eb66dffc3faf8ce1eae6e433c8c78f2fd36621b80023e35812bd13fe6b5106e7d50a67375a45ef0add86993da5c52cd393d097c49a4f50f1ace296c60fc24eb27e412b5396867e50292d9122972e34d14f1ed6a0b2dea208c2720f4cd97fd9782d0fa89811929b2994a544b8717664a7332cbef87d04c9cb837472967059220254b9f334fee6251f9f99485782ca3709c1ab4099314750c01e43a3708b362f8b583e1cb5db54954e979b415dbccd195cc13d54f6416a793d30abc0e8611a1c45300c5f903f8a2feaf314d0aaf5fd223b08e879a43351b9ef8cd002d2325004d4c9ff959e2d8418b704322f2433d45ff6059190defb3bd85457963c44d8f35dd147f7cb9a0060e38ff024cb3405f2990e2a6b8401f1feea406683f01b6c4891480b812aa4e251b7e0035a8448f4ed51bb157a5a114b18745cfb5c2e75fc8e913a8e7159c1d5c1122b4f77ae4ffd9018669e9b333334c514a2c9f11b35504f811c0e6af8584cd1b48695411b401e97be2fa0be2531697858e34bcf2083bb44f857069a11b651cb3b1b8bc0aa93f244e268a03135f969544f416bdb2949046155c67a45448b424195a7633cebc65f643a1740334b1e3a8bdeb5750c5fb75697a33a12daec6b15d672fcb0ee4cd9517a9e787e2ec256b1c5e78a64b9f2bf4961fcf9009dbf4f33fa947f91804ed287473479cb4c03fa5bf4aae0723c6799f32fff3bc33b2211e019e3aa2eb0d03b70e65a3dea47bc89eb2b102a04e2c4410e3be9aca7c90ff33200f78b8bb7709f1518e49aa3a56725376fd9b0da5dbff42b6015ed29f479199f70f744a34e62101b92ec9a48c73c14cc88160e9e40b7b7fb0330131d78e90a0c395c89d762c3a4c85f2cfe047720400e5697b3b127d9d09d273726a62197337e3e7c25afddccf327a8e8b601ddd9b8e82583635ba1594b082473a406e155644f469475e414959b306bc86a5706a32d0e0daeb639fff1767bbdf0fb36be6d50f77d4bebc3bd51bc0408aef4d0672776c951bf960a914f650681a91251b5f6126403998cda7d287d3d9e5fe47d06260c5e51bec5c1011c6f1b9e73c1cac559a3e2ef5373f472a685479c38fb1430388ef8802555efd0a2ae34ae065480be5d6597a7a54c6b4ce882cf0c57b026edb03f2f6c2d2e7622dd83881cdf0c8f908c9b866f0cd9c4cf55a63e75b7ae1f97248312d39b8b925eda11ce1f8e9eff32cdee2c8c9a71a1e2942447577a541b3ceb65cd49057d305c11bd117810b24061c5eaa76aa47cfa7301b880a71e3486badb14d6fb1967920f23b499621a6571bef57e6e961ef8b0de881c15cbd49490be9062ae74488047f7fc65da75e3c77b278a80997d82f76b9f40947cee2df0700bc4443490bb5472c116037b57e15eff3d8727bc452f1fc77771634ac7537676baaf5482f47a435fe3bb046a7e0ca20b76558f4c33e228d15819540913a588eb59f05260b73f016b1defa40173be7eaa30a9389c651062daae173228650b3ec815169f4311611439257b633c3ff5d63aad6e8760e9a12c93e8504ff6159fe13454eec0df3f175a3af03083f900ccfb9adbaf44cb63cc7e7a531701b0643671dc6f92e146fa34808358298b51d044382359611b33d891609ca710209b1e4d200f7a734f9a18628bf3151dc7fa6b14497022a31b4c4ab670a0dca08a335d4ad5b42eeefd4a51d453aa458bc5bd5dfcdffdc3483af03ed56128229ca0672d8aaa0f846d00ea2d7d03cff973d9f988641d91136cce775d9e767e15a3c6e431b96f4e80c5138999a69ba68be19a3955511e73bc6415a2b3260b948e15e673920024ef3e3b14abaa016efaa95863d7e6876d7b28beae0d5eaa0d509ef9ee65ca3883f14fa285c48a3da4ce5d8cd3b117ae8aea8fac1e4197107c2d988d4d1028da73d9da120c4c9d56b9687f604df021786c143a114d436f02f029417d7a590faa96812ffff35a48f0fca5555a79d72e82fada385506c4ad6a12047edb6d555134bcbdaedaa8dd003611a2591cc1ad3b4891f828417ad4a0c31eca1a1324f22af86ecd34173e547cf270ad586fd5af06cb811ac17fbe2fdaad67b885fa20b4bcd0649e6ff9eb222ac6e3936ea82715f6d490cb39a848131de9d3679717e5820d890fdfcaa7887256a80c3392f070242b7e752ed88476a7feee5b4cc2e97d85eabb10e1dbe214a19828dd60ae0f295833835e8825c907f8fa1c8d8343c2f60e3618bf4b770931426f381e2281e21393093e6b9b9d929f7c00920af32e4bdf9a77e2a59eda65a6af2b9fea30bb8fb064599530d1dddd4831b4a108b7705fcfd9be1402849344db298f9c32d319e6c75d360237359f91ec3ef005d0e01d3fdfcd2bce48f30e016088bba83801750ae474b9e07c3f05e0dc333fc54185ae7c2bf7addb9d23fa06667a59b216dcfbc1d57a369cef6e0b864ccc551b4c1bfb385490cc035d4edfc2445716b6357419322e9ffbebf5b31be0d44acd8e762a176500db89679641a89ff37edb0cd6dfbbe4c604cd41e8aa17e2f060a0c5594963ca597cb3ba8bc2f079934a61588da1f73c38668ebf92a65ec081a72c98226c708a8ae9314e32c05265e48cff87c05e414d63cacc85b68a9a7e4ba7ba5815838ea146e428e7b655163bcea2dd092ce6b72dea481af187765da87571ce43056920b84107fb25f59cef2cd913e4de61863886b5de6d682f3fda2e0cc8c293dc210f38b46282d00251b481b5c211f241b437fd6e52f9b24aba41c67fd670c01969f62cdd2810aba44033b5b4ad16c6850198a10529276868d88e24247ae6094d90e4ee7d6a05acd690976f4b3f56463863f9322daab2f08e8fcb32b21a6d8b9dadc7f858e3163e45cf012c952eb34a39c83a61dcf40bbcb5951899c51263ba431ae294b8d68df5d5d440f1d0efc627beff27b9cf237ac14aeb010d5ea8a9620d41e03aebfb17951d78d432ddb46677ccef8df90482ad20ad35ea706095a9e8dcbc6994c07af87ee60fa4cbc4fd971fc01b2ff93dcfb3b9b2e99622142030d727c7471e0ef8abb7afc512072eb95680c97a521b849480e0234627cea6c3a68575f67a452eb2516f2cb85bd8e9f4ce9a6b9ee68da2887be43b1e00baa56867f1e64cdab07cad6b9fc3ed5fb3681eecf6fd287331a604c7002c7476c7872d2fbbab961521d9f0c7aa0d1750f541d35f062c9452186488306e9ae3425323bff1978a1835f22cd2a4155b21dc6ead4182c67647eefff34efdbb1fdc07b835418f6a5b8ef0d2dc52625c2f99d26c0b19ae6cb0fef6032ef30449c5ab7474ddc62eaa8d7977b7588c52a7bedc598f5d0afafa8180d3103424ccb28f59cfdd205b3fafa2bf84668f2c7b9a751e2ddbc9d871b5e4a4bf47e9699154f04fefd6669961ffae98d74078025ac8713787b319fa3092aaab559c73f97d7c51d7f23afad5bbb6dccd6b0c8c9afe5e054aa5d63bc700e9f6e27b70bd996cd19060398a8dd67abbe9470b9e47eb0a7f38340b0ac33c5cd9bf9df0d8f797f87f7c9f6cefb41a817ea7ed1235aa116d4c44d2f3de644bfb17517aee8114ccc6295a75a2e165b486aa7cd2843ebc1de430181197da7bb84717ccf8a2e04aad3a3e63abe17f7eb02b49e0b4c1fd04efa1f8d7d02f59848e5dc8a361717b96760958437d93413e0fbf93e2cc834a11219c695797ebb5a21d79841ffc3b98355b5d779cf3abbeca4cbcdba4eaf42cf3075eb6a3122e9d1b8cf408da942d8d2ccb7a74810e9321aa7941b5dbe4f9a1bfbc6db57a6bd2f1daf636d24454bd45c2c719d3fbbf184c49e3ffd350570d3b0e3a9616cd675459ec21378c22e5e64a0048e53288b6fdd7784c69d961b1439e7e88a8e7455d0b5603b973c109ebd0c238add2f597f7dae2ebb51ba98094522430fb859abaf3e0d1f61f836be7c85b697b4743590d4a7204bab6cdb6b382b5f3487c8566bdb72d1f3fd39c8a7bb7527821ea212bc270b1e5e2643d2713dd490171e9854f0f7da5c07b58be73d82b39d345906e780535f2adc2cde38b4d32fc4f56803f5528917dbceebe4d17e68dee8f4711ea0e144141e39efe6e7724dd60a22a5ba64db1bd36dafdaf5b1ce13ea22248e5d36fa5cab569209d4427ecf2519221fd6fb50a1bb5edb10fe74ed8efd108b1f9ebdd600d2405d20f8f041182ecabf5ee0d52c5b28f3d3b2dc4892f484cccac952a856395b41fa43697cd8e2087ba626bafd829f2c1256a8309f71edc719ca94ee056bd592a9f6cb36cce76ca7befa91b1ceeb0ec28533609243c2f732e89db0c3019f3a6e14161c21eae6f10dfeb11e479bb896e76573912f5e8c49e64a0b91f15557dd9d153a0a207fc32967eff61c04f0416df83e031bf9b4b8ea0c5cb7d6267424ae81b8ba88eecd60de1c02068b057226ff32e9180fecb9c17a14f52a8708f8d38bfef82dd44f4bd6176403a76b4f18bde302a55ac1cd5523a36ec4d7ceadcd69d69d29a0820b6d9234a3c6ce0d94992613f6b0cdfe4b94ba539e93a81c9b017c10c8ff7d5bfe3d15f7d37c97f5783d42c0c21966751fc685eef450400c5edad61b25c0253414f92b16c62e631ba7a7d24bc5b9637ccfe293b7c0e958bc660aa2ee3020a78075038ca0ea7515721f1c1646ed0cc65ff1ccc68ac3f04736e13234c1107999b13c8bff1a272a0568b323dbcce6276aa35de79e509ede550a8bab6d3d22cabf8ed4bed7faf9653163289ba2d785efee54ae31c0643a3297e4fb32252ecd22b301e2f616250db3d86f70fb26e278a37982c7278f1e040339ae33ec9472bf70dc63377b59bd51c7416e2b53f6abd7e7069eac04c234ebf88084df249a810ebdda35ef706c0b10e0f3ba984a3c011ecf9a3566265ec2ca68470b188da5d4b03e4929716507ab8fd2fee517c6a4295b520b336769feefd22fa3d588ce2c302cccec558028a08ad2bcb2ddb953776c41031ab037f26a216ff9c1d9f87782af18b624ee64f9fbb209eb379fabec4186a0fd3c23aff60d2e7ed4c84feafc3584e20dba7264ed978a17a4557e8e01b96b13ff4d13d40482094ed18281e3df1058a7b842b0b8a9739384ad5cf3c443893094c7dd7c3e4307ed6b3ec86f9dd605dd6508d9a8847cf8c37bebbf0dbe33864d6c44577d9285cb438615f5c14fee78182b63e991ff106125ad06e4af2800c96f47d137571f103de99f4072dbfcc8f0625c9922ff5bf3f0131589a72018a08660b2af63d850df6eb043911c06b38fe7496999b4a7b1e86a3e26f9381fc262c47af1dfb5cc54a3d1fd72784a11150cec8bbef4a38a987afd53842d39674fce86054640804da3fc99136f9e49fa2bc78f220acf22ec4e42289ff1b5f4fd5772b0b1191a98d33ee7faed85c4c4c8f44115863d244c5b7ab6644b3da2454b1b6045830f5bbee6a9da6b418951b815b8b0a516c86b177fe3f96a07f125ccd1e5bc88794263348329219385e6ec7d7427f65ab7b86c0261a58cecb8d85ede623dfa892e9ffa15cd5825ca1d34cfb2eed262e2602ec6a969c691607a3c6bb523339dda1a784cf0f4aeb27aa6cca822a33c1ebf74b3d89eebf5d4b280f2169c5b8e32293e55262edd0a2b9e43c9ffdb1f268b646fb19213c8f101619eb1fe079b599ff7cfb8c98a42555d9311ece5e6ef3aef8b0520cbdee9e5c0657a74e75aa6c5a7e21f56415843fc1334aa74f9d51dbdb7fc54f49005955b58174ea0cf21a2086437ed4b30806a2df693b72b5c90d33cc618b95695735c3915296bf8f398edc25bc40a44658423d52f3e2b27ff1997a986bf92665fe1e0c2a4cf5146a824e56b0dc4c5acbfd77debfbd731d1fd6b04d7b407df15b93155f49a4608a3650a9d5dd5b368a877f8730fd44f61cdd825198a70c7727f514fe7e365bb98f3c726f335d96cbe74245784c25bac859243a3fdb00b4bc6a5f7a20dbf44774d32a4d75e57b5087990f8ef4d903b21690e3078180e7b013c73b0aa83760251c01419f151b135b1f5bdaf6c9bf72bd65b60484e33f8b6bbb7cfd3426e6e44acfcf82bfabe94bb9f96fecd46b648d400d7432f5749375aee39a88fe0d8ed691bd60ce1119890c45af65c9226d7edbd7b9e76511073c3e01316a19f23785a746acedef0a43a020f890a612610c75d59ce8bdf60eb2d59b1e3ca7be3260b882eb77c70ca994a16ef01fdc5a98a45064a56f972796517c426f128df079a6230a008aa4ffb57837ccfd9221139c383b3f2cf5bf68680480426fb3af0ebd10db3bf8683f8082e0c043085406fcc9ee9048ea7634cb3fac29d92793a6cec103a3bf0a2645300ac1dddce58360c4c491804c4bc1f95d7e728fe5731c87e520ce181f85ed93e799950b3a4773efbf130e3cc352fac26fc2417973992a2f7615206baae27bc9d922d8519d3a29cedf24f7b8783718e8ee5947550edf8d5f0eff8ca20bf9a2216f5e8cfe2565e0b556e903013cf768ac61dc783cce278aa63cab0c7aca2bc8a4eac7b672597a881093288c12f86508d530e80b07514d5b1a09537bc742be66a6373adefe48aa42db78b00f51d8856d8f3e1dfb7011e3aae3dab71a74cf098a9378b193cfe6b6e55805bdaf855a48dea703f4874ece4a1a9894f20c052c9454113149e5e95b217c94c64cb36f7032f60fadfdb2d0f385be64f156d9b34ec07c6b2511e9377168c6b3d09a04e512c026b5f36ec3d938fca0086d44ef163d1acb5249bc39a55da1b5191ba2b082e8cd30a7a894c661e2833c9f40dd1c5a9d0c9deb577e714b8bccef586f616aede1c1ad8e2ff60aeb5e54023b3e6315070625662cefa5b3ae252850f6539207a2eda588736177a2062c30d74f9569f35d4eea298c48a2240a836a66fb9ca8025625ea81d391c0e4e837ff94edc921b13d61ae0201e92c6dacba3ef4588c3bf9e7160eac08b090ec0d314786ca68c9af9c54b39e4ee2403a64fa956f19ac6c2de00a03efffbe621aee756bec1d42a53291c771bea47f62befc6c608463cc7b06816ab3873f1dfd90c296627d4a3506e1e9c8ccb88d777b2ecac308904ccf7a8d67a7bd833d5716b5599b9bdf58d78a4a56c885f62cfd384146b59d267b2cfff1bb461b48067e38b4fb7e2131427e305b1f545174cd4a6ab7bc02ed8d9956c203f2f11e0b333c71fe5e94a7820a7bcde96fa58346c07f57cf07d7f340986c5db919afee5a30232ac4acc30d57ab8c3d2c2d3d6a108beb69ce5c90f06cc0e0afaebfa26194d4eab97d95d41729ced5e0415f130e8c6620c87f2847127596ff0ba05dfdf26c469ddc66753687e556df0ca7291b48080d67b9aefba33a718c80f7f15af64d6a33e945fd88f8826abe71b6c2531dc8e5d86dbdac87d686ab848a29279df6d06a5614ee8631e43d0e3d4fea5c612bec19334d46ceaabf5c2224d6726da854481a4e488f8649eb161ac518a21f3b2d0dae513becee8ca08907f5d7671050440b80c333064a895c0449cde7211c674b33414689c3e8cbe09743591cf802f7db9773e039ee61fb8ff64deb665247d137fb835cc3361eb8bde1ee4c3f99596051c51d16aade1e81fd024a3e737af82397d3bcc80e68f5a0f40ed9f8294fd10fd0a57f33ba231767ef9459a990526bb00ca043a61ea65631ba9b051580a6463a8b3bedcb3caba909439507debaab41e7aa3d07465af22edc90bf2a1b67a93c46ed368eed4d227189e976d3365dcafd60ca5a09cd0eefee58d08a314911f257dc060edd2770eed48f1a5ab3617b2588768992df22c6cd0b30f059ba73b641e3879fdf2be2d3c178236b048fda5471ae6976c233301dff7f57e7cd97a8e46d4de789be1a02c307c98c3a40c5350dbc9f1d261f426db37646df32514fa15209a76c1d3423e26a4b754a2752a43a23ea6f5fb9a25ec00d4fe2ad55d19c059ee828aef70211987e08f0157e97f1cdc00f95be920e6dac867ad84ce3bced7d9f86aa466775848b6b0af1f7d40c65ac2dfb70f5bedf67cfa5f731c56786e5953e572b4622cd705c1a9cf36c44702cf5eec3bde1d143dbb078b0fa8bbee4da6eef4a4c322abc9b19764fb599f0ee67845d59220d3a526be0c6c5c47eaac957424420d596ff2822c73311ba8fd4d1ab1dbddaa7c54c8c4b643b8824f0c08f9ab43ca42f2687e2f4349492caa1016a80661efa38c68cecc677ddca34c4f93017f73cade869425255251ad06fc8c490e4b095ca246fed9bb999728b119d766ff3bad66f3303bead5dc36ea17916646cc5959021a18e14ba16eba3265b1753ba89f3cdc7657b57a27769eecb7b3d66ce8a5f542245b9dc8363dd006fb8169040e968033379a4bcf8e2b797064b22966c8b44efa18e329a893831390750226c14541a2f878d89c63733fb56bb8681346a947126d15c65e494c544285152d1ba79c17094de63ef91e0d1e2e71609a4092367e42a0172ece55349b28b1c6e470d7a5b411ad3e164f7777887c725792349ee36161f67f82a75de9c3e7f015ac1bda101a070e291e3c433b7c1f051bdbe799b2d76b779fc7477afa61718fc4e313059c5812ec122005bcc72d05c927e3ed3bfe6b37fe3ecc750bbe562b96f87ebd9a56e2f1176e5aa8fa5604f8202ae69c486f2d98e0b1d1362e2ec1bfc31c762e23ef687c7515080f83b8e7d4c65fe09939c5738b4e54810d81cde42449ed3f46ec90c13f33a7fa9fe85dad3444c660048f60d1f671207ac4c63f75a5dfcf4c6ebc092e34851ae4c5ec279ebe838a16959ae806803565dfefc850339b8b577b2e307204afc9dc08df3ff71b46613aed2c4e911d41c162bd395dae52124ee2d41395e7f57dd62bb1ef7841ffc38bf507d8bbd9530f3dabcc2d8e612391d16ecb9d201302fd59c4a600c1eb3435e6b8fb4c258d45651ca3ada9bf4133f0af60b3d0b8fe329aa793a12c347b0e623793531aa4b0bf460b036d4e5c907a00383eaf07ace00c835d4fd936e176d91bf79528e7aa06b243d7224e128961ed2fd86683ee87d217476452ab574c2960731d0b9cddd9e98dd4db5dcffdd831f0471c76b1d744a961527fcfa1576a5ab3a26fa81ec437f2a29b61d1be60244e31bd8de5c715322df72c657cd17f2b67fb0db5f848785072f2f5fc500793c57d704a16ea875a7bc36643837a35d4863ba3933d0e38f8606a7106a748fd59fce7e4e68a8403a47b603d66a06a4dc39ea58f87a7b800fcbe8079212b331e963bced1a9a6e1a308cea659ba8d9997c4b7828b69e5482fd2f2cb7954c04329afd924e5dd275adc573bfb01084507048ac604e8bbd3dd5223a4d9466a6774280683f5d6896e17913a8f4e98d838dbb2e810ec2d45d4aa70eade46ed23948f52c9ee1eecc41d07d9841254ca9f94a3152b87ecf7ab9aeec1a5c108b14b66d43047ea46588402bbf065494c749b3f82ceac5559487dca8db8067ee2290ccdb08a5a75c3c83f0d9c81f980c7c8965d92ab3ecee860d90cd707d57e6e15a8aab85e10944815fc42625a1c4934368054a4deff314ec5d4ba8e885c7b768976891dd47285e559781bfe7406872254e73b8dbf66c6e628fa58a478c93cacc9f1dd2993a59cf6eebb33a24ba5699e25d2452be58ea09575401bdd553b9081500795f25997eb79521b07574e9fabd6c97b31e048bcae08f216dff9cd55f9ec040d4e550f8faee2913c06f74f91f9f6aca840d602b7899a1a4f16eecb4b6583d81e259d06ae55a9b0b5280469f03c4b658e378a7cf414c798ac870d8c39f0072e2e805bcd9bd6bf07645e70f67c3afdfc846c455662b90d895353ab79754fa36c1a92c10ed23c042e0aebf781077f3a828a70606275b9fcf05fce8a32d7aa7d7c08c172c8452d33f40ad4e2efb89c1873f0b25fd1204f5484caae5fd9e548595a5cdcc55be6115a89b2a8163a325a52791ba5ca005f0607d143676e7e50cc524ffbbb9339391c9d4f1a12c4a2ebfc8e62fbdfff9540b2f7f99a2fcc8b13a282ea3555452fb1e8d2a7b44509e061ac7585f9311370294abb04cab5acc4b2440cff7c516a1a86577aa3718251c89515ac2064f852b7acefe49ccac58628b66ca170e943ef54e505a65cde94404c1bb5ca0f37819cce56115d52946bbbcdaf6c98c8c8968877c59c800b72b919c34b7771fec6b31b30abe0cb4806ce8524bb127a5699c7972029f2b36c21cccadc1b58ca3910f979fbb2c6599dcea995fbae4195076654436edc96753decf07048a165d43131dc3f3d8700d0d70882063058f4e6cb8ed01380dcd36b93aef27f2efa03548b0572533e11436e91a4f289f4e3bd85095dc033f0fbcae5fb554b4cda2b26ab20a63e98b11cbbce040acc39c51b42943cc50fdf9243d254d99d1236dbb7242b34921e0481681eaf3ef65c0a4c7fc000141eede743d57f321adbf97afe89b82310cc3885c4b0931fa569eee47dc3ffe3c96ea89a5cd9e728d9135baf6abaf37482bf3afde8c7b8f228c5f0fd8b1abc71998228de42803ebd66ff811a5a5a473c64cc8be8897af466aa36995eef56707af7682b66e69be0e57f884a8a6f161b2ae45669e37f9729125153d40e4851a458cd04a82e2e82910fcb0c94fe693994ab64c79086f915c267b749bde5823ac982f8dfc58c5487953c7936c2ed6f4d3d1c8fcf437d5a15f63e775f832af383f788f87f51bfe0a9e3c4ffdb57aec6dbea28427c130b36e8025ba45950990ad8a6f920808b85abad59f3ceb7a7520e60ec5bd773e40776f4c79972e400d65cb0a639711975409a3a4e9cc8aa0c76f7e8e4ef8e3cceb340ff882f58ff2ccdd31ba1ded76013d1f1b3f295217135e5c4e1df5f0f0bd3d1ffd4337a024c7b16ddb444c59ca65d1145ba3c6b1084ac16a30c1f114c45c44130d8cc03999025aca31e7b4941509a345e6e5d3e591b3aea39e11850706f6a10ea8a1b5b17228eb70326b6fcb64ea5f708372977a6fa16b149f926520950940b2cc539ad24456721ea3f51c1d214d583cc54323130691e24ec0d020e8071093c59fc67bb6385f57585695a3213b4438af22538be5d0e81ce72550009eff7d5fb18cfcdc4de3613ce47fc6bd5d258806b69fc39339208514f7a4a053b64aef9b04f63292dc6bd2604d195cc2d09e2199a005897ded27ae299cf0281955d7a3dff175f49b790233c463568165694db377a3ab8deef45d51c376d67adfd775b8c7ceae028d90a6f4d1b929c5d78d286c9256cf98d0d12898c02b8b42614a6bc5e094ab7988613d3a5526d9619495b3ec4b357d776820de356ce40623cef0d3cced62d0ce6f7ff877d045a232644d08a91321092ad50e110793ce7111ebc1d5a2d8fa5a8d6a520c291af56e099777b19135dd16189ddc30dc389ba00135e6a239334373f28b96b6154dd999563946550d9392328ded5f778927fea0f5f83f4c7bf4c5cbcafcda94e3afd8c25418e32f8db04cf9ffb68327963d3356c2e4de639b0630d233ba024bea349eb32abbec5d46e27ad1e5dec31b25f374251bec8a6f0a50d56f22acc67986981a54b513f0f6d96972331556b3a4f00485b2b67d3d2b751b2b5ad190310565f1feaeeb8df4f7f505ea81f80077b7739629ac9eeca79b79264cf378fc22ab80bb42060f51f1fd38cc80721305496c9a65aaa8fca1a8f0fb2975baf276cee9cb03a2f718fa53d0e22434069d3df6cc93db5512f623da374562894c2a933c36c15f1bb119d37cbb1b67e911304f61f39edffb23693e04df55788ff47db6c78253c97235788f3fbbdce3e756d410ff77ed5172f59ca2a806163130cc7028a015f94cadb046e16575c2245c2be2c65a30f5fd1298362376a44d723a6c50ed4aafcab497dc1cd02b0455c3d6b282fa8f3dcba43943054ad7758e801f2db0e01c01f10040752a96c2908e84caa6ce8ecf6a6279c790776563c279d476f7db7ec373da8a7bbd73eccebdaa5311afcd12e1dbc609a3c9cb536bee0b8979a4a4cebd3df3255f136a1be8e1884e664ad8359f0bb11934424d4270ddd72f86ee27e7dec9d96dc79452d91c122b55e9461eb2741a0a64e8c6304fa9245ccb9ff1759fcf6d49b7d2d32cfc6bfc1b759fca53f7e56c3b92b018e27c820ddccae93b36108a7035c6639b0b494a92c518efebc65d059a63f98279d4ad17686626316eaeb1e060ce80a2c311372283021a26da5fb0ffa9cad6d6482870bd2df424626ccc0af3bb6b5479168550ce8674b6f4954d6a8fa42fd62ab0b7387af3c8e9101e1618bce393e61744a9f8207869ebed39611b896fc9a57e5f5c4d882c7fa1f0bea0cb86659cf971e754c15c3f59ee0ad3590451fd143dd9598006d63c6a0a5dbf714971909c21bc9a7227ba8c464e25c9a22262cbca44c2d14b40875b381fd534ebcdf05bac03f41be081e8628cc980d74691c8b095bfc71502cc7045fedd7ada257e4b9ea95e59815d2a8771e20a3f95195ba5fc64acfa8c5f729ebf168192a15abc1e93fd09ed7d7e6ca93fa24fe98d5998afe473dc6ec30aa0cee97f0208d2bdfcd8b11c6cf7b5cf925a269770ebe94cf8b04360a0be866a25f460a06de8ba6d813dd4baa78223a27e141be3e515a79aa505a8ea408712738bb5319e56e6f256d6e5acede3df8a2e93484ac2251a6162ca20b23971ea4c3c5fec9ab1c9d8283060ba8db7a01fff0261dc81372d15aa54d707c3ba090b13737e28a01d283884efd37e7eb4fe9976ec6aa86beb18fff24d17d2faf9639495f7de2d6cb8b3a3955bf643a3e33d6a6fce91f897c8733a04360730870ba132c53a846f832dfd5cd79995f1f2c67cf0a31a310d581e4809062660e34160fd17cf2c559ac66304c9bddc48c33d53ee4ecfdab99c68540f151917c03f9f1f1677a9ce4d0c45b19df5579324ca836a52ec817ea64d6c7953ea7e9b63afec60ad0bb0b81759dfc6990d80bc3b699bda79f405dff53d3636357752647130dfdd0b9150286dc7b97d41e39b3f79d7271a04d6532bf87ce4ef0f92d095eed571f89749c766cacf7ef0f16eed6c16a0df3d52c416ae1c90ca222572302c9141142e9b7aeb9ad9a2718a08487307b62423e0df37c19f9bf12b408f330cf34b30295278eb0b58b5a250f6d92f597af517e3f4cf68b1764b8bc698bb5559d19deed429c66adb7b96e407172284f81b18ffd6c380d86567ad3f2d1e523df16b64de1b43db496d2dc2b5337436cf68a04ab9038367c9c1064161f204c1b3a96030f4502159db410f951273c44739a01ddff5914b49c261407b3ba2919963fd9bdf3bd4182efc62f6582e8a7f2a102443ccb5f462240e001351898d9a8a5c448b90512174568790b82af054a2714649a7acd25f12c23ee9c422fc63880c947c2dd7e62dbc5edd7ce39572890e22f3044c75778e86f6a38082f8b79edfc161a2447b41183e4a64196fb4834a30e8cf4cbd1ca4d97109d5d4986dd5ba9c26019929edbb25280a06f3bc90268ad384b9076b76ac9e6a9f2e44be5be143ed6713a3040d4111d822ae9e7640113c5319328e2098b7f53fc150311b545cae0f251c6b6cd6d6a93476cf351daf2f588c16e2babb3941b8be4b9bc704383a026469049cad000fc12c6bdce25b571fad3ed5128b85a199d7a027b7cf9bcf6555f76696093daa9569b5d3d17d6f3ab282c549314fced96303a1261194c11039161458036916b4a685e103a938353d700c52d8506baf1e17a0ec4755d514e50626a1756099098895a5ec85e55bb2b214ac110aa5a714ad7f0d6e73f9cee8a192c3591f237c38a3463653b80b1327440c04eac60c116f5e3d3da970b34b68119445282aaa5d4764b3ff516c2549fe96fad9b4c28169b3c6439924fbfdc956e03aa52dc8b4ed014b69f3664c3e952c0935c92500a72886dc583a985b98b02180a4d83fa5e5c7760d0b4bad6be936d09c49c5c3a6440cb78d9a6e5dda0593331166fde8a1478ccba4cef62ee0ba2224b4726ca0ecc3386e04f78fd8b40e86bbb50a53310ec4874bbafc5b85b3ca1e188f252ab77fb0e9accbb22ad7fc3b845ac18c05be64adec72ab716363c637ef1f9488291eae40b20374e5731cee5ee26896dcc70e4e369bf8b121d8e27ca1920b4ef5177387c64da0d3f90f96d308d4c5a55f3ee422f779189b9015af2aaf8efab07bb72d553f00157f2f29f38a110063f26f39193c6c5ea0df5806673f884cbca85d41c212c7867ba21ad697121425feadd6bf781d768581dca772d0245b852f2b9198bd012298d5f423d02653f0cdba0057e95af0d99be861be9eb699d7be7209414c451134f5cc19047a1b8348168ed1268912d2bc561ecd73398e15b3d7f7824e6aa593890935684d362e18047fae716aa875312c9cb267b09a386a27a4cc2dc821d6a7ce1bf0b5e30d7d37ced27961c2d00ad6983bb4d4f251806a719aaa1f773523d0550e1a7c7ca6b2fa961a8301bd26a5325636f7eaca0429d5528f9f63553e5f6a96af9a602489a5ad0fa2bae6605479541d98ab795f9dac258e8261b012be4c21a89a81f4bab8295d2f0ce2b4a543f51689dfc61aebc8ff34707b9f038f0127facca7cd4073980eadb377bed6f6a8e4439bf601653ac6f7c54375e13e63d37454e3ec818d572283f098b3ba27b65dacee36bb6d852e842b32da5bc92259fe8e0df34d2aa9bf6d5aeda383eba6b88aa6a8a317e0863d106a6d0918c70df09f84fca69d31d9de85ea87dbf4a797c6a2e9230eabbb53f154207f29ac91b3da4a4726ca4dab8534907fd209c227081b2d04790602d4cc672848629860f79a7df9485dd2af72a51c439da03fc8d992e95f778b015f7026d1aabaf53700d78f75d0f57a53c5c1e940ac88cb4e8b6453d58afaf7d612af1af4f4ff47ea24545f10b1b30488a0a1aa1f47d4ca4eca82747651d18e4165cb66aa16f6121c949824d09b51d9cf54d69f8e63e8201a242e70d9b5be9b620d08776265e9ac38abb424ede210772a77288434dcc160d1cbc91700f35e243e3a401b9b1af80d31dc70b8d12cb285bf2e2edb0c1d613f574d3fbe5e27f2d43d2b619c6c42dbc9fb39220b9a46309358d5f533e779a338d1613f6a5ccfe18aaa584e91fff96e070f15d4859bc6125de427346de7d480cc2dd418cbd80f8b4b362cf25f12fe9390eba75896db7e8293f406d8b10695e73e9875d7c6a1d017fd76497d6d7589440e90d3122294bf89be3fc7251f8decb01105229ddcfca670666066169f8e83f66502ec8a5cb5692ad11e12bc479d6f6725add46642229091d2d2b37cf2d8fea4f6cc9420ea61d1330110562411a9fad98a89ccaf99bf7bcb320bd65ea45f071b2579ad6b2f6e7002ae38c7d0bbfae8b494dac0a45275a6bcc2306d689045c159401c4e1e6ee768937bdaefa93f2a9b9ba5a225d95957c40900c92d483541d73348c9d379d88ad7954ae2d08d89a94d7c8c2880b0786efb213f4189300d1b39788919fda8144bf663615c9262903c3f18fe78cbede438ae974569e694b9312a4654aa1691c1cf0e0eedfdc39eaa7827fadfe1ec1ad82416d819f56925d7f69f644a9d37ec6ef23ce1fc992d69074bfd54a67538baab17ae4ba7fd4e4b2d6df0b6e4178ebe224201143eaa2fb2b0740d85fb8c0574e3ea6c29ed7ecfa752b2d028d8c0bb78f681a38208d0b3e80506612d454153b2c2e9cf862dd79c57ce71a3abf34742598e2665a5c04bad2c31e9732b60f37c5c8755b56ef94ce8fc336d171feadbffde2ddd832a2e832921b3593bdb19c6fea427e306090687fbd1b6fb153f3cb3bb5ef4030cde2981f0bfc3657c6582204a1b7d3c341d6e126146368401f11f88c20d5d2b7bc9f073b5d0f0717212312caa731b7b7d7962de9ce8d407448ad3169313769b32b57d2cd7e514b4c5daf85a38b7adb20d0953be749ec0942dea449f9a7462cfb97585a1b0007cbbd1b058dde0cd9865e5a249edc86df1d22281556701e8a2f5d0ae156d793fcde43b3c282c7794ce0c95db8684fc574a7a1b9f4d3987ea517053f6604eb6361be4d9019f81daf03096c7637005ee09b6d970a342e06fa0f756ea80f6a539d84e42e831d95d2a96a0e19cbd87d37f628f52fce74caf7f58daf28ec27efab309fbd990966a020b6bd743d4526fb7b011e4da85816bfa07c2b842ddac1976d44c895ac15c65f7f9c37a04c735fb5d44d2e57a822fdd9b0328ab793675a668f91a9ac851b17788b2e365e13217ead4fbff2cd12215876e4343817fb30c90c170d665fa7a6c6844a273098bd43a2a125e8c458fb115bbd4aa75526ce7b334974873e51c9d45487d6de6e026d2747d6e10945dfb41ee50347c801e107254a2a6af398c2e564922cb83f66acbf579e624bf16d36eae668e75b5074d6f628a2ccae5436684e88bd389c4b2c606b80c89d59593ccd6e633cc867c74923d69875486bc998144f151f75733cb12581ad18d04488cfe348f651ed79b084166db399680a70ba2eb6e298296bc0ff1b651d1299aa9303e1eee7888dd0e3555898461f1025d2f62c817adbbef09531c0841fd2062d7b4873e2b6b6e919e859c77497c707b06200e8000ecc3cd6623d3abc32efa8eef13add1dd6405f28db32eb99ab482fc00e4b68892afb6deb40bf6f0c77ca2305a41f828ebd87f7e56b11008b73bb9bc2d9a37aed219cc96704e1c9a39e76cc2a10aaa2ab53092bd74c141d3bdb95b95d2d02791f7558babc54c8e64bca5329fdb2b65d0985fb6b744eaa2bc91bd52840aa800245055419ab30b097936a3d787a05843a8bcf74578ee58211b8b561a2cc6a10c2f7ad2722142896afa2af09d1f953b88542f9a1b9362854c79fa41ca545c4114cee814eec3c5d3ea7ce435826e82aea40856dced9c662909177b56c464aadc1bf0ba2e7647341552876f745262feac820fabfcfeadb15c6265151745ecc440f1d9e1aebe398904b01865954f49a4c3e045cc000ee21868928b3198e51e380cbaa0970194683a6f751f859df158ddfdd99ed916afddcb213de35920194fd8e02db225f99966bccc74022187d5283994959f23545242a1e47d7ccd2ed47a22cfa94dfb38ff0b170e3b19560ff33356dd7fe0292b493c7374db99e2d1d5bd2c9dd406147de1f3891b662f1800f85c5a435c90e9320cf78b616c3039777fd926cb1d44aef7e3fb40b21a070cc10d64fb3ff6f07b19dc2322bd766cbd9fc2b66a77fbc2513fa6c818947fd531395d7617a135d704dc9978e5309e2c7a216fdd1c846d1126875f40733b30c15f4b5c9cdd97e02cf19d5b2c9bcb43813be117fc5ca0f613991bdf0e1c85ed688c774f478654647085b9d47eca141334012ed7660617ee81555d98223d026f5ae96a71cb9b309332bce3202f7939d83d412877900085c76789b42d2f63e41b9dcd88e1e0d2a96598747de304f863a34dfadee5951fd9afa37c36232c92b59e2870b6d12273af71dcf06bf546bf90ed45960c68b3943fa96977f7fed4694ebb6972f36a924f04facda4120d415b72ebbd9c9db0cceeda21c1f84222265abc8ac03a8987144fb72d4a5448e5c868367b7e356bdee6aa6cdb073d3414e5e70945021fdbb0ef84f46dcb816169afa13d22087bd364ab544fdc6b1469cb18011b0df75e21c650d9b036d82caa5550f918600d9d190fea36640c6f09c9c18b610fc7dbee9850c741f2948fe0e88c07c95d34f4d2b7a1149cd6126cd79a424d07dddde111f2d0c789b6eb2212c51cb60c2315571e0d18c09ed6030d31627030b71401abc407412aabba2657cf2a8c42af39bc85dd1020278aad6fd1d63ff54d910250d3f7299cacb6a46006bd059813e77121012ef640a8cacd6e8dfdcd2d7db59c1b669a847f6b4c52709f65edf398a27fb0011fe90c456ec058e804b3e3e0f7f16464746ddb6ea44dc7a1d79cfdc1045049efb34fd9253512eede7d645a5aa50a8241d1a23d1a27ab8924944f9383f1e1e1ecb638bc1032a2df3e81d48511586ddf67fac473be95d1cd50cd5d6658aaf3b0485be2f8f6faf3c72c5603c0f1dbb9a8b281942409c3ee80e4f4b134bc7a17a10bb08298686967dd9f68af3728230c3ff25bbf858edb1a83b09af14cb174016c70e2bba71deb77dee48f9d9faa4a19c86dcb4683473e6c2c1b9b73a23c3d2026645066746f6265fb19a5335baeae38cd5a1ac8840fe57d929d9d5d7fe5e8d2320b6b9a32dc96e8cab3695f822e0fcbd56625327c275d2a9446e382943be8cd913c6924a38535d5a9f9bd039c6bc4b12433b6b110b24f7de73665debf4e04813600cacbb0b261cb3f862766db6803c844d5adde87389a1d242343c263336b90a217a7187d4bd55a45cba756026a3290dc53ff738627f7b10ad681169284ccb24c72d78000619139128ae20bc77e4d87552c7a1ce14d360218ae1941a0dd858675bae12635a31e70ec5c94edc1f35ad03fcf641e7d6005d7c81b5591f160df2fecc8be94bee95d9d8b2c59c774dbef29ff21e7efaf7648dad1247f48e73258d2ec2b6c1c24ade8b3c5bac21df28fc45f3afb44fea38d02faf4e2e199eefc0237b3a54ec8fe8d01d3e41abf9f082859aabaaae8310804ce0f0c02153c966bf23194ae6405efcb141db8324fee9b07aaaee46e3df9b620e5ce56479c656eb0b59870f04871c9cdc8ad0b3f8d34014df40fb9fb59e41088ba3a1806d64e3700e5db1cc904762d9d9e11d650034acb638ac556fa7a1b7eca212816a939938b15be95e8ccb29da36922e113ca51596f74b8a64d894d3ae9d4078b9b2de60bc5abd09fc940f1c77404ac61fce2254590eeb8deabb7095a0d7bbb9234a380fd5304bb81ce9f24aba664af4df42680458c05b93a95095d5420f7c5d679b262b32165f64a64198a4bed229d2666f54a771d30ed835ff82489b9655316e61319e2e096b329ac0f1a52ecfd52b2710241587baab557a371f9b0d4442b4ce014326b5f66c75095983a6dd6571c8636d5236970f2d22f6d53878677f93819da165c5c0625a7feafff412554b642c157494270444baa8cbef4ba50d04ba4c7a00fd443b62975b7b642c9ce9e442e59390f4f16313d9a73db9dba979ae77968c509243417491d049b95ce84e7501699612a87d753125fb37409b18e36dde3cd4ea13111456581487bdda75475cb41b75b722883b55a87a09bea67fc2621f263be899c007adcb5824736c50561ccd7a1721138c30c68f83b9064b2ac980bf329cf066d17fa144e05036e4327780d40659d08996656d282f5e690a7b42dd75b4e3c72129f0cf5b87e81874e4d9c6b13ce00ab72673bf4867c37fbac138626412f4bbbb18b406eaddf353854a8e6699c287c21e7e7816ea9508224517be67b5fc1cae3c3fd92efa6f2296d0660f3aee73fd1e5199f73a29704bf01f647edbfb39fb87e04e94fee71b67dc32d5cfb8264fe194886703937dc64917b4bf47cbea345c237b03aae62c8cddd0d4c65ce55155268eca527a999c3f4f7ed9991e2a8b635674b13193a4bfe9538d20ec7523950369f4ae791e7765073e2a9dc0ec691dd0e970c68161928beb699cc91deea630f05ce2df4708e42405a0373ac58a1f04bd2445f0571157fd53c7c6a713e04add171993548ffbab41f89db04fa9b5224e0db8e3eddba26581192134fad521f170bd08756170187476f8ef3889835ddea1b4fc9374b82dfc22ae403d15aaed14225875856849bf3bad7407220981894e8acfaeeec32d6c04dc3ccc27a276da0f30fd6e852276c3a906e9ac46170b5b72685f4ba916ebff58f714c618bab52139661488a39e49ace910a08d7d4faab08908370f3718d0962a0dd6ad0748c910cb9077f194f11e01447a89e74743dd2ef75ac933c6ae2f4409ded0dca5d6f64448c872e96acedb8fe82dee8bc33055aa30bf245206ce2abc92802da67a1bbe2c268ce7477bb674442d5623e4575501f20e88c44d6fdd29570e6422d1a4d2dbb554592e879bb3382dd169ed766928969e58ae4f6bdb8c8e06500fb8721a637be4a4242042f4132eef0e2500f6f5891a920d107c869c9f5dce2a305f4e4a037622b2187ce27b426b2c2164884e38899fe5d80b50692734803b1804a3d806776abd0c753e22ed0bde7e857210dd055cf8be1bff48d438a59c1164c4a0daddafb21eac18538a824e4a42e8b1fb020e8d5e8849c3db824f9aa64ff41bb3bba0b31bffdba1555d7946cccc45e0f115ede10375385315fb93e36bfc49b35e69cc052fdf906d8b97ed706ddb4be3b07bfc8bea525cfe3e924e94a5f7a1df02047f5b372ae1bcdc005fa85385960724d66aae36e3133b2ab0721bd74fb898c525858d0a2e212024014db769dd339187ecf7c0397cf4bad15bb1e64bd452bf48cebcc2eef4d2a01995dae06cd17054ecde2acacf9c51a917c5eb0e812dd4f4475c0e613d26646d215277c399725c32433e39ad26c00814d75dcb7e3730cc6ca8c3b7304cdda6a8bb5ef9f70c77a36e2f76e1bf804f8cb1e0a4fa84ca2da6612edc2f017b5834171ca814841ab9a6655d416f729c4fd22364aef0f38b17187ffc8cc111b47da9aa70ba1f99a2dc61d3b18a46bc93d3d17f2f50a07e61b8a86fc448d3b822d39e671fc790b3ec0a46bb28802a826f9921ea74951c320402345367891092ce2bebc03cbf12a828dab23c1e8e652eb9c410ff8282609eb5574a9e8a8bdcaf3154056e108f8d36cac855be85db701552d28a7be2c91b27e3e8a1bbb15150114888711d0de05dd17519df0c822efc33fe75a058455cc2c9bc477082dde69e4587713f1569e08ed67332bffd73933980082e72d89646cf82328576112dc93de22179c1acfd20f0013a6de6d231292f50fe21c885f1d9b2c0f0f9d1c2080150e39b2f158043439e5f61746612650f4428486e56211f2e1f1a33566b1880326c66b652c98651c7fc0bff99cc5ad2c995c5c3ba36bdadb910609787a9da880f00c079cba6dc5644089de4189c8cc1b95139ada81377062eb3b230fb9e2c2c4771c15b8968caac7928bcf08a05ee1adadad2c2666beda13c8f7c31a8385cdecf6e37090cf50302eb3e5b0f73dbea8dc9962ab0475dcdceeacb327d3820f4e1fc786a8ae9a377788310c29835de36336a2dedfaaaed2ec81db7dc4fbde0d46f5cad9af765a62a513c8479d2c9a0d0c99d8c1207c40c3bcc02d76687183902f6420e962a25d19772f2832b8437d3d976fa3227cabff3853d24654a8eda8ae093b6273d8baa0455f25693c40e285bc4ca32408b2e7f59db359e9e19d592fff7484126a847985f537832f293e1c1b9429b318f0fe9b08c116fb117af649af20e05fdf752a3b47da82eb1590739ebc1555a3264ab68f8a5ab31fcb90517e6034c423546ea0eeeeca397d5a5d21355352a5b63dfcaceef67f163a8d2aef7d145ef1da30e46029ac402f3556511ef577a133248add73042c2c0c0d6562aeab8d48eb6e129aed4bc4dafeeacd7d3d01e61f013bbe3b62343bc117b707e45b6b6c9f55114e0602e0bbda8dcbbecb0426102aaba5e95670f84a837c8472725032c59470b6e2d3959af9a61b73e275b3c500e52fc0dce2e1f0161ad6c9b2625f9d335ca5b22b5fafabe549e208c98c98ce3fb7c2312289c04e51124149f81e15e6e7b122cd8f3d064673ef46fe1172b9b577ccb03ced672623885a13e422a34551bd508959c0b57588156c9a53fe60c8aff7935576f78c585d38c7249b9203eb70e179a82a3c3f3f335cb6698451e16aa2fe3e1fd92c7eb1816792a71f1fe35353f5724a70b20c1dd3d7675e7d3855d087ef45a36231b45b6374d69076c2fda1f9da0411d2917d244c703caf3db86f983e2de3c2af3f1cdc6ace139170b09f98af92fc615988a978ee0b982006f8b709006197df489c966c33eaae9cf84a2bbb1ea5ac63fcf8dccc7e40029537950998f65ba51f90dd762689196e047ba195bb36986709dc7312b7dccaa22d431115bbae9993c2839406fd11e4011ee7efe83845d60830870e80d230b5c8fa4d54dd145ca6ac85c67601882b1d757c0de0c1cdd63f6ccad4110cb2cc66663c6a3139e82c518018a0061a9ec73abfb85c26d26e3b5af31d27d3d0a22654913288d356df25a062a1e7d973bf516038ca3e716119c8ad030f2ab79b3e9ba8037e80fc332240f0e9510a0d2650e7271aef9888c6d12f70857d5e4c6fcede0e9c10da0922bdc3896f0ba023c0a26c73072530e9f0f18d0866b10424047d48b0ddad2dc54d57183695134094c0d248768331f41de1c7fb5317d737904459619e6bfb48202f398611bdd887811d6fd2b7753a73972d84cbd20e8c4cb6cd28611d9221731f17a3a1e88fc685aebdf4b605aaeef7c77f78c20f437bc474720a83b1bffb745ea9735aee752afa90ff18e72c523e14d915a6eca3b4096974bae85b6405d946cf5c1eea7c1e28208032e4d1d681a39a653f9ce332e1125f5c60bc9c7299cc858bfcf119e1febdf0621b9cf817affa4741e4a6a29c50b54589d19eea75568e12d429af9be4cdd911ed747e251439eb9f7dfc4c426b0a2fb2d7b1acb6293aeb7ba4d76e6ee9047de36d674bcf9bdedfbd89171f35341cca9a0a56b83f1de7c51692cdd889ed63f15c7117a073cd428f1c81d4d5df3d18d982164bcc270023a7e50826aa49bb6e0dacf61721f2946e14967b6bc0a63b91c37922cf7d47ba58deb15ad28b53e0eb88c8ccf074325a4e971ef72483ca5ba2223f60540fa92a1532f87e1639f1c165616db9a00e9f4f3185fb41de25ae3368ed1df50063d53c8b208bd408f6184bac4e2a6b16c83e984d5979228972605083b5500d2fbddcfe10b00cb014569e3d53477fdbb74c77ec39f561d7aca3825299f300dcef56c585a0cfa1047a524525311534b2dc53c27b7189b5f2e062e685d46333ba82c049b9574781fecdb0b148e1f95d6f52abdf88d60d687e52177dd65f7233cfe0131193f83840f975b96cb94163c59dd8114ea52b4a2551458472ddecb74fad32f7caf86930fed52e3e7bd1f7af9d13a4e11480996e5d778eb78c823186f915586fd91b35c4d25787f03d02e703c153df8a28f32c3c1c1b16482b57668499a86482723408c61ed7640896d5be2ce27524def35953bd6c635ce47f61c95bab971daa63813703a34e7d3a88676b9666980527d042648e4b5af030da871a74f29f7d16e1b036957e7fddfed76ba04fdac28616763c15b66906f9f6202d1fc0d96533c00a3a1fc276ab63275508551e304ca07db1d7040e428cb0a2d2d8219a500d224b11ba326d2a2f44c6d56946a43f4cbfd7e1f4313b4358e31127f66db0b658e0b8241b4f171318876416ff7093335c45a5111c7f36100a73b22ccfd501a9db38eb96267d6f75ac8788fab198f2d9ed0596aeed36651917d6f0fae92ceac1d6a8f6db266773a3bd758ce74cc47108cec8832cb1844110e195f653d7ce3e9e21e4445269da1f3287d4c43377bfce86facb3c1da6f792f74acfb84f53157bb9205187fcc249b104d0fbf6e358994931d03f1e87030437d2adb556ea51e5fcf2248b7997b649744ffc971f3103252945bac87e84808479326c0cc88f322151cebadf73b57d1526f4c1268990307a4f09f8ffe875d832fd2b4aaedbfede3390c05fd2cdc9010be5d93a7c3238cc73de44c2f02551fc2e346a1d09861d0b88ca1ccc98104ec52cb12223428559f62fec35169d17d7897d686d5f9e7f9824128571809df96ad8a07c602b725c8ce79147faaf7963bab0865430aa833368c2c445698d004dcf3730cc2b69dc5a242bc04c9c4aedec00e5964bb82de2fd948d1a30809d13789e5fcae7bd1aa5916a25a8c93510d61f2a9d5df251bb78bad4ad8eb12020dd03a16f019b7024c376f5bf78f2da40050be4e16f877c1917a3dbbd243ef91598d720f98b8545e9822b996323663f7bbe4a59a4c5bbc5f1247e7a2cdf1c9d66334b1b72c1fbd6610213aa1cdf4247be39c361a7391b18d0191de4b84944c2d7d009b3542277549fb6b88be3a84af62e252b20470d053e59042bb469ef46aeb647c40b25d0966c3ae606c688be176fea2066d69165349b14064b91f7e34fa404a2b3f9f211b046882ecd1ab12261f4af40affaf3c8d85ee3d6868425392f667f9feb2e70cfeeedd1fd9655a31e4f1efb8d93d730a33eb0853c0d60ea8a761a2f317dd05e1906d03417d2cf66badfb53a84bc4080c607985c9640cf9f74a5293bff689defa07031451445e3d6475be82c968a2671e5f3a7ed5615eaa41766e4a7e46111a23b41b905ded5c4dcd8d8c40da67f12a01839a38b81c0650399d904476d5f2d5c6383764937a081f6c4d235318f79d6675b6ca9ed31b6bcafa3f45c955e00d0bab72b0120315c188f26cbe8d59cbcf8710ffaa56c15f8e7ede3eb43782dbdc70e7a98987db314e9705d00d67a0ecea673772e0615ecb3833d88b094cd86ea081610a261ebfb2df5c88c315ac59a1e39733ccef7b80e3279f1c97c4f89c58bb143853b26ae17bca9c61b731412e88491a9ea3eb2b5e31388405e7030ac7ff5c45405a3387c6a292ee13413fa1e1588de71703f8c2c69e2482d053dcdb6f93fc90265225c8d2e2d7130478e52d9327a8dc1a430e006b2ec821dffe20b5daf89b0e0995fd589ec116e1586938d3ec2627551bded003a6376ef59907d0426cf09b8d13c3d04a0054c64a26a19256b40b984f8d734c1663736c4f8821fa054bbf226150b4b29d22d60fbd02c82fd6697ef7bb7729f4f1e7a249fe6a2bf86ed8b2417956ac63860ea198d994dd0f5faa8cc7e9cf42a69cc8f99adda42352eef89afb101dd2add0b1912106c0eeb99dfc89686f4225124856bbc2804b6441cd9b326894590520bd76a855c60f8f228e13e0eff37abb0d6ba17418128d7bbad6f3cc2fb0ad026cac7df7ac5b056a66129c93718bf9d45d72e3177d4ba839ef4410b52c75d90e00f2e513a40b7b6d5c6bb19f79691ee311f466ba8842e1a637fd73a0039efe5d8d6e2eb1294b26ce84d5552792e95f4150b490bc70e68033f1b9498e3a2268ae9cbf9ad714c0e0f71a94c8c6facf4edf8befb6a6c77b82583e34f286201f35d5d3869ea4767c5fad1a1c4551982d978c1ee6a7527e9406e08305aa063fa45e070093ecac1f9bcccf12d7e2d1f74781a3e0dbf2f1b5ef550ac341eeb53a03bb962170cc94c45a1e9ff3ddc083d7b01bbbd23662ded6eb63fdd63e8a7f5a23532140e6d36eef6e4f6486a37d0bc1f3a2638d4ea1804a1233437e65ba804d89bb939998ab5e98aff601bf873e1c0d9688c06485d2f16ced82d30b9ff73a84587611bb6e2beb70eedd6bbe6e88b5e40bf022c0d49c2077fc2aad446ebc4b6185860e54caf1b4cbb3ecb69f60a948811a0fe2d24d1b81954163294880208c6301a8f88739c6eac21c1f573dbfab3c95cf5de7cc0b10a68d445cc1d0762e30f2ca7ed2afcc2a9d6e3d9d15c0f0a16cf5a4a616c7d9546b83ef3864c4993ac231da81c28312f93f733441c0ff285ddc2bb832bbc09620d983589f22384e2ec6854f4e3a1e0954af193c05b222d9d9c7676e046b08bde95cb6097a4dc9db6e371e74daaa0193cbc318fa1542f8bffdd5d62649cb93f5c270c5e7fb500d61c031ee02701c43c802cd968dc9334b5ec9c5826ed7eae13d8a2169b4e4398a4d1738c3df5198342e5b330f869e60a88c2c94d46f920934062f609f3daef65a2f08dde307b49fd58fbbd702d51e2e9f3bfca9559981af22477aa1529595d338c1d60ca3fc48a5a3b0388d7f8a95bfc979df634b412e8c4e15a57789aadb72db3682efd369dfcbbe4b3a80f8e44ef048cd11be60c966bec7b772bcec1a82b526c69ef4d16f85fbc801c86e63d667d120ad0f8f4e99b6739843367af653a68ea5009cdbf602c9b80bb36dc52603aa644ea5ec4e8decd030588b5e19e8c6725196243a6547acf3858d35f3acb082b53a0221ea5fee4e24c59cc8e834890789b7661aa8eaffdcae7ed0d9985ec7e522ef4bcbb3a745850b1a91556ca0fea6506bdf0e14a87336af70773227370b59b27cdf4e512a264b0881b7ed148ee920327854a56d5e81553e0d8eebc107439f5f07a6ff233e6e86e885e9c6c22a210ccc512a666de4989c2bcdf3da33b0e542f8224c05d945e20a54d157d5e922c8a75273198e6496bb5eec9584413293658bb96eca9baa273960bd8cd301166a07dac9b1f0353aa0ba825e83db313e2f956872d26d264bf3232910c8af0127f40f168f38d6757cd69ab1921d71cfcbf04b49e0999d44ebe78627532d81a1753ee395403a9a8483197facf1ddbda27f275540d31d6eb8f69ecb4ba767b8b536ce8b09e2437950a879abdd1aa1f6826fe0662c0719c9fe9fbc8616667a40fd5e7d8f275b4c4c76d386277923bda0fae3b82dcc4d74c2b5aa77896487bb9f83bf633820594e0af73dd864f7a6670149054897351386f8ef40fff88f889af0fb05ee6e68ca868d60ec5dde1a564d8afefc8ab627ea94679a3cd339e464df26ac1fa53a59f5be6aee572db7d3894898f076ccd496b06768730edcc2ca6e7dce85936a6a61418fb87561cc6ff10f8fcaddbe7dc3bd86eb47ae57139a7f75cc250d9946aec83d2dc6c7b2cb8adccb6bdab4f34da7de4c4916761cc4b36ab14865cf42b81a9727de20935c272c24698090a3c242db0ba304b06c868b40e6b5ac42cf5235b1a779220e6533000902e8d01e946d94b5c6f9caf9945204c0b5cdf8ae9893a89b6ae8f1584cf7d2664e1266a2b774cb1203c38141efec62e568a38a19164429a95da75663b9be4a9987019fc21b3c923f58ef758b2e29ea52a475b613a8da049215749abdd10525f799fc244209e6e4b411a10fd6c94e1e1f9132620426ecffd6eed934b7819eb0eeaaf9d169d92af98bf2f7d430f703c877c36d8253750db96da2de16ac5348526f607cd89c0c8d57a66357f67481a4e067b3896367531e78cbc9c45e51d402b3cb415988c81137ae6d1f018e17a682dc75665e8aabba3a75e557bd35bfe659b60275ae903b5000e2ce7ba8fb9354ee2239ece39183ea0e64f4860255171efc941082fcd7bb092561ead6af0efd38be83235805a89f11002783f24d755f0c85a1da0aef667623ce78892eb8aedf336b161dd53ff4618246b2093e00a458e6c2a831f203bf40143aff69c006f0ab9d921df254340304e5d28730edfe5907c8bc6e71a6e1665b82a6dc839abf72109d211d60e2e1aa397bd51792b630f9f3d41f30617782408e65d349bab093d3738cecd77e9cbecf4344a96696026373516d325164f83a9b4e4d0ecfe4d46a029d4c096d63ee3fa7a3cb0b646583a8df58ffe08c71eaa0adc69fed17c295e447982692190c7f4ee223dc109ce30c546eb1ea2fb19baec502aea3af2ed911a8f1b229d1748be3c529b6b0bf7b517b51b273c1b90001d71acb6a007b321c996ac5fa3cb93f2164d170c1cde7f3ce119ca6b870d0ed05c93edc31bc04bd4df0f0be347dea7ee648a105f8aa1b105724c94eac166ef83c5a20b1171b747f54e8adf953c6dd7f0798478183387344a166dbd0fb45b62d06c8ba0b97b9c053e030e9ecfbf779cbd077b68bf3e3ec155200b105f50caca0425376aa6c5c63a18d5d68573453ee2b3ce5d62d6c185a65568f95860a5e53dbef923cb8dfedf6dd4a6dc12254b9a8a27233fc963d32c4377876ce89b7050056aa089498422387930a383888cce33e98bd37e660abc4e9056e88014a764d32398866a0e1db2f40f2e561a6eab9740476eb9eae5b1bf5f96bc0630b64074acc71d6818681a9e3532399a081041c90d61407fb155bf43edf1ad788daa7db40cd90797074aaec83cb99e9337fd3e6970e8f2644bacdd53ca55c99add5205a8ba745d5f47ca4a3e9fd0523448874dd35d00600d6c4156c7bf06f6f9b8125e05f765b23099a1028889770702a346604759c2859ea750f988bd5e62d4f8d5494ab2b08977ebae79b92a01931849955a0618ba90beb47a96c3f84bd24b9a8632aed90b8850f073651c6c97a6a29313c4aeb969b6371c4205f558ce3d231f98a6450262767fa3969d9b35b3d442bc248dcb36c4df4cb691bd29147dbf21347fe56801511454d662bc4fa1a5e7261e6ee3c633b323098d3200e36001d3748e357caf11adba6643444fcfaa1288bf9c5c16b33a9311149a578f69b299e3ab02b6f112fcfccd563f4e9724196f3356829e8b9b7ab5cbd45d12f78e0a962a27d184830a5df800f5d6b7d98a9c8a82fb75a7c34f8fdcf1ed7cdd651f8adddd130523f2b1850f67830e5840555b02c087dd2e6eda80c35b5c681315868f68ae4f8c9e5d4da9e656f500314aa173cacea71dae8e161e95a3c29374416661c596cd5f0032bcffd21c59d1e2cbb649aa6030afe6b014127380abe4a5b32a9995f955addc23ad455d7dd5bb328037d5be7c31ee592d4298f2f0ccd4add8cd3f0e10bc74c63ca58bc707e5168c288081f55584dcce7d847f9a3596387a6a5cd57aa8e273d8f72b958238b9c07d3ddd9f9371cdced1a1ba40689b92ba5aa8f449b6342a8e2e6eae21b56bef47372f75dcaf1d2d20319356494c166be3821f4445b42822156a93eb58bb9f011a12360aa1b637189680ca003facab90f58b03c6f7f9a897793182fb3ca1071d2505b3f5d2e642131396d377ede0acd9faef1644171f895bf5abd84374ab6d48a63120ffe3d4ce49940ef21dc4b4c19b2191235c96549a59af0725ebf5cf6504505791f0bfe72d3c3bc8d5e644e9c20cee32030c1dda49dbb4f5619d233850cf905cc40abbda7bfd51655f978ab364f4d3fd378646858f0fe42a83b3a3c42b3784ccc1ba473ef4bbcdce7489183cb1f883fc14d12e402c328ddf1110df87386304550d33e4f5988dd0aee5657a20530f97a076f2e88838ec2053d9425e466a3f654766ca62b828bb10f35f86d6f0afdd493d0baa0cef02c8bb45a3c561fdaab39d1b18426a926503d95174f179afd211a98b2bfca89a3ed2bf7a0464f95aed9006e9da55cd63ab908abfaa22915826fee6" + ] + } +} \ No newline at end of file From fff23857fc36508d6ae0d08ba51e48529ce28584 Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Fri, 11 Apr 2025 09:35:01 +1000 Subject: [PATCH 05/33] Made checkpoint-state-url and initial-state mutually exclusive (#9342) It's hard to reason on how these two should interact, and logically they're mutually exclusive, so this just solidifies the theory that they shouldn't be used together. Signed-off-by: Paul Harris --- CHANGELOG.md | 2 ++ .../pegasys/teku/cli/options/Eth2NetworkOptions.java | 5 +++++ .../teku/cli/options/Eth2NetworkOptionsTest.java | 10 ++++++++++ 3 files changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f65e6ee199c..40b1fb6fae7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ## Unreleased Changes ### Breaking Changes +- It is no longer possible to set both `--checkpoint-sync-url` and `--initial-state`. If your node fails to start after upgrade, ensure that only one of these is set. ### Additions and Improvements - Updated Teku bootnode ENR on Sepolia and Mainnet @@ -14,3 +15,4 @@ - Scheduled Electra for Gnosis at epoch 1337856 (April 30, 2025, 14:03:40 UTC) ### Bug Fixes + - It is no longer possible to set both `--checkpoint-sync-url` and `--initial-state`. \ No newline at end of file diff --git a/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java b/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java index a1eee6dc3f7..4c9ace22913 100644 --- a/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java +++ b/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java @@ -314,6 +314,11 @@ private void configureEth2Network(final Eth2NetworkConfiguration.Builder builder + ".io/get-started/connect)."); } + if (initialState != null && checkpointSyncUrl != null) { + throw new InvalidConfigurationException( + "Both --initial-state and --checkpoint-sync-url are provided. Please specify only one."); + } + builder.applyNetworkDefaults(network); if (startupTargetPeerCount != null) { builder.startupTargetPeerCount(startupTargetPeerCount); diff --git a/teku/src/test/java/tech/pegasys/teku/cli/options/Eth2NetworkOptionsTest.java b/teku/src/test/java/tech/pegasys/teku/cli/options/Eth2NetworkOptionsTest.java index 360792c84c8..be75608a2fb 100644 --- a/teku/src/test/java/tech/pegasys/teku/cli/options/Eth2NetworkOptionsTest.java +++ b/teku/src/test/java/tech/pegasys/teku/cli/options/Eth2NetworkOptionsTest.java @@ -206,6 +206,16 @@ void shouldLoadGenesisState() { .isEqualTo(Optional.of(genesisState)); } + @Test + void shouldFailIfBothCheckpointSyncUrlAndInitialStateSet() { + assertThatThrownBy( + () -> + getTekuConfigurationFromArguments( + "--checkpoint-sync-url", "http://foo:9000", "--initial-state", "genesis.ssz")) + .isInstanceOf(AssertionError.class) + .hasMessageContaining("Both --initial-state and --checkpoint-sync-url are provided"); + } + @ParameterizedTest @ValueSource(strings = {"http://foo:9000", "http://foo:9000/"}) public void checkpointSyncUrlOptionShouldSetInitialAndGenesisStateOptions( From bbf12b27446685716682e8dae3c0400cf033f7e5 Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Tue, 15 Apr 2025 06:56:18 +1000 Subject: [PATCH 06/33] partial 3rd party updates and errorprone updates (#9351) I ended up disabling the instanceof errorprone, as it's very very common for us to be doing it apparently. I started changing things but in the interest of time will raise a ticket Signed-off-by: Paul Harris --- build.gradle | 5 +- ...th_v1_beacon_blob_sidecars_{block_id}.json | 2 +- .../_eth_v1_beacon_pool_sync_committees.json | 2 +- ..._v1_validator_prepare_beacon_proposer.json | 2 +- ...alidator_sync_committee_subscriptions.json | 2 +- .../_eth_v2_beacon_pool_attestations.json | 2 +- ...th_v2_validator_aggregate_attestation.json | 2 +- .../_eth_v3_validator_blocks_{slot}.json | 2 +- .../handlers/v1/beacon/GetBlobSidecars.java | 10 ++-- .../v1/beacon/PostSyncCommittees.java | 13 +++-- .../handlers/v1/debug/GetState.java | 10 ++-- .../validator/PostPrepareBeaconProposer.java | 10 ++-- .../PostSubscribeToBeaconCommitteeSubnet.java | 8 +-- .../PostSyncCommitteeSubscriptions.java | 10 ++-- .../v2/beacon/PostAttestationsV2.java | 8 +-- .../validator/GetAggregateAttestationV2.java | 14 +++--- .../handlers/v3/validator/GetNewBlockV3.java | 18 ++++--- .../EpochAttestationRewardsCalculator.java | 17 +++---- .../teku/api/ValidatorDataProviderTest.java | 2 +- .../data/publisher/MetricsDataFactory.java | 6 +-- .../teku/data/publisher/SystemMetricData.java | 16 +++--- .../blocks/SignedBlockAndState.java | 8 +-- .../execution/NewPayloadRequest.java | 13 ++--- .../datastructures/state/CheckpointState.java | 10 ++-- .../common/BeaconStateInvariants.java | 8 +-- .../RewardsAndPenaltiesCalculatorAltair.java | 36 ++++++------- .../common/util/AttestationUtilTest.java | 50 ++++++++----------- .../ForkChoiceIntegrationTest.java | 29 ++++------- gradle/versions.gradle | 22 ++++---- .../teku/bls/keystore/KeyStoreLoader.java | 8 +-- .../tech/pegasys/teku/bls/BLSPublicKey.java | 8 +-- .../tech/pegasys/teku/bls/BLSSignature.java | 6 +-- .../teku/bls/impl/blst/BlstPublicKey.java | 10 ++-- .../teku/bls/impl/blst/BlstSecretKey.java | 5 +- .../teku/bls/impl/blst/BlstSignature.java | 9 ++-- .../teku/infrastructure/bytes/Bytes20.java | 8 +-- .../teku/infrastructure/bytes/Bytes4.java | 8 +-- .../teku/infrastructure/bytes/Bytes8.java | 8 +-- .../tech/pegasys/teku/kzg/KZGCommitment.java | 7 ++- .../java/tech/pegasys/teku/kzg/KZGProof.java | 7 ++- .../infrastructure/logging/EventLogger.java | 10 ++-- .../restapi/SwaggerUIBuilder.java | 2 +- .../ssz/ContainersGenerator.java | 11 ++-- .../ssz/collections/impl/BitvectorImpl.java | 7 +-- .../impl/AbstractSszImmutableContainer.java | 8 +-- .../ssz/impl/AbstractSszMutableComposite.java | 4 +- .../infrastructure/ssz/impl/SszUnionImpl.java | 10 ++-- .../impl/AbstractSszPrimitiveSchema.java | 5 +- .../ssz/schema/impl/LoadingUtil.java | 19 +++---- .../infrastructure/ssz/tree/GIndexUtil.java | 22 +++----- .../ssz/tree/SimpleLeafNode.java | 6 +-- .../ssz/tree/SszNodeTemplate.java | 4 +- .../infrastructure/ssz/tree/TreeUtil.java | 8 +-- .../infrastructure/ssz/SszDataAssert.java | 4 +- .../eth2/gossip/topics/GossipTopicsTest.java | 2 +- .../teku/networking/nat/UpnpClient.java | 11 ++-- services/bootnode/build.gradle | 2 +- .../server/rocksdb/RocksDbExceptionUtil.java | 15 ++---- .../FileBackedStorageSystemBuilder.java | 34 ++++--------- .../InMemoryStorageSystemBuilder.java | 31 +++++------- .../options/KeystorePasswordOptionsTest.java | 16 +++--- .../client/restapi/apis/GetGasLimit.java | 8 +-- .../client/restapi/apis/SetGasLimit.java | 10 ++-- .../client/ProposerConfigManagerTest.java | 49 +++++++++--------- .../_eth_v1_validator_{pubkey}_gas_limit.json | 4 +- .../OkHttpValidatorTypeDefClientTest.java | 17 ++++--- 66 files changed, 353 insertions(+), 387 deletions(-) diff --git a/build.gradle b/build.gradle index eef80c4b8cc..7ee6494ba9b 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ buildscript { } plugins { - id 'com.diffplug.spotless' version '7.0.2' + id 'com.diffplug.spotless' version '7.0.3' id 'com.github.ben-manes.versions' version '0.52.0' id 'com.github.jk1.dependency-license-report' version '2.9' id 'io.spring.dependency-management' version '1.1.7' @@ -249,6 +249,9 @@ allprojects { check('BannedMethod', net.ltgt.gradle.errorprone.CheckSeverity.OFF) check('ExperimentalCliOptionMustBeCorrectlyDisplayed', net.ltgt.gradle.errorprone.CheckSeverity.OFF) + // ignore PatternMatchingInstanceof for now + check("PatternMatchingInstanceof", net.ltgt.gradle.errorprone.CheckSeverity.OFF) + // These are experimental checks that we want enabled check('ClassName', net.ltgt.gradle.errorprone.CheckSeverity.WARN) check('DeduplicateConstants', net.ltgt.gradle.errorprone.CheckSeverity.WARN) diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blob_sidecars_{block_id}.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blob_sidecars_{block_id}.json index 3fd930829e2..2d2da89b4c9 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blob_sidecars_{block_id}.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blob_sidecars_{block_id}.json @@ -3,7 +3,7 @@ "tags" : [ "Beacon" ], "operationId" : "getBlobSidecars", "summary" : "Get blob sidecars", - "description" : "Retrieves blob sidecars for a given block id.\n Depending on `Accept` header it can be returned either as json or as bytes serialized by SSZ.\n If the `indices` parameter is specified, only the blob sidecars with the specified indices will be returned. There are no guarantees\n for the returned blob sidecars in terms of ordering.", + "description" : "Retrieves blob sidecars for a given block id.\n Depending on `Accept` header it can be returned either as json or as bytes serialized by SSZ.\n If the `indices` parameter is specified, only the blob sidecars with the specified indices will be returned. There are no guarantees\n for the returned blob sidecars in terms of ordering.\n", "parameters" : [ { "name" : "block_id", "required" : true, diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_pool_sync_committees.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_pool_sync_committees.json index 50334eaab83..408fa738c7c 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_pool_sync_committees.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_pool_sync_committees.json @@ -3,7 +3,7 @@ "tags" : [ "Beacon", "Validator Required Api" ], "operationId" : "submitPoolSyncCommitteeSignatures", "summary" : "Submit sync committee signatures to node", - "description" : "Submits sync committee message objects to the node.\n\nSync committee messages are not present in phase0, but are required for Altair networks.\n\nIf a sync committee message is validated successfully the node MUST publish that sync committee message on all applicable subnets.\n\nIf one or more sync committee messages fail validation the node MUST return a 400 error with details of which sync committee messages have failed, and why.", + "description" : "Submits sync committee message objects to the node.\n\nSync committee messages are not present in phase0, but are required for Altair networks.\n\nIf a sync committee message is validated successfully the node MUST publish that sync committee message on all applicable subnets.\n\nIf one or more sync committee messages fail validation the node MUST return a 400 error with details of which sync committee messages have failed, and why.\n", "requestBody" : { "content" : { "application/json" : { diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_validator_prepare_beacon_proposer.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_validator_prepare_beacon_proposer.json index 8d7bd4ffebf..fb8ed5a6f95 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_validator_prepare_beacon_proposer.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_validator_prepare_beacon_proposer.json @@ -3,7 +3,7 @@ "tags" : [ "Validator", "Validator Required Api" ], "operationId" : "prepareBeaconProposer", "summary" : "Provide beacon node with proposals for the given validators.", - "description" : "Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index is considered persistent until overwritten by new information for the given validator index, or until the beacon node restarts.\n\nNote that because the information is not persistent across beacon node restarts it is recommended that either the beacon node is monitored for restarts or this information is refreshed by resending this request periodically (for example, each epoch).\n\nAlso note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch.", + "description" : "Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index is considered persistent until overwritten by new information for the given validator index, or until the beacon node restarts.\n\nNote that because the information is not persistent across beacon node restarts it is recommended that either the beacon node is monitored for restarts or this information is refreshed by resending this request periodically (for example, each epoch).\n\nAlso note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch.\n", "requestBody" : { "content" : { "application/json" : { diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_validator_sync_committee_subscriptions.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_validator_sync_committee_subscriptions.json index a32174d4e40..2ee1b9e8306 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_validator_sync_committee_subscriptions.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_validator_sync_committee_subscriptions.json @@ -3,7 +3,7 @@ "tags" : [ "Validator", "Validator Required Api" ], "operationId" : "prepareSyncCommitteeSubnets", "summary" : "Subscribe to sync committee subnets", - "description" : "Subscribe to a number of sync committee subnets\n\nSync committees are not present in phase0, but are required for Altair networks.\n\nSubscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.", + "description" : "Subscribe to a number of sync committee subnets\n\nSync committees are not present in phase0, but are required for Altair networks.\n\nSubscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.\n", "requestBody" : { "content" : { "application/json" : { diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attestations.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attestations.json index 7242e8ad9ee..592f1b8bc6d 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attestations.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attestations.json @@ -78,7 +78,7 @@ "tags" : [ "Beacon", "Validator Required Api", "Experimental" ], "operationId" : "submitPoolAttestationsV2", "summary" : "Submit Attestation objects to node", - "description" : "Submits Attestation objects to the node. Each attestation in the request body is processed individually.\nIf an attestation is validated successfully, the node MUST publish that attestation on the appropriate subnet.\nIf one or more attestations fail validation, the node MUST return a 400 error with details of which attestations have failed, and why.", + "description" : "Submits Attestation objects to the node. Each attestation in the request body is processed individually.\nIf an attestation is validated successfully, the node MUST publish that attestation on the appropriate subnet.\nIf one or more attestations fail validation, the node MUST return a 400 error with details of which attestations have failed, and why.\n", "parameters" : [ { "name" : "Eth-Consensus-Version", "required" : true, diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_attestation.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_attestation.json index 08fb7006ac2..232b9a64bd7 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_attestation.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_attestation.json @@ -3,7 +3,7 @@ "tags" : [ "Validator", "Validator Required Api" ], "operationId" : "getAggregatedAttestationV2", "summary" : "Get aggregated attestation", - "description" : "Aggregates all attestations matching given attestation data root, slot and committee index.\nA 503 error must be returned if the block identified by the response\n`beacon_block_root` is optimistic (i.e. the aggregated attestation attests\nto a block that has not been fully verified by an execution engine).\nA 404 error must be returned if no attestation is available for the requested\n`attestation_data_root`.", + "description" : "Aggregates all attestations matching given attestation data root, slot and committee index.\nA 503 error must be returned if the block identified by the response\n`beacon_block_root` is optimistic (i.e. the aggregated attestation attests\nto a block that has not been fully verified by an execution engine).\nA 404 error must be returned if no attestation is available for the requested\n`attestation_data_root`.\n", "parameters" : [ { "name" : "attestation_data_root", "required" : true, diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v3_validator_blocks_{slot}.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v3_validator_blocks_{slot}.json index 5228c531b1c..f0d04e5f761 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v3_validator_blocks_{slot}.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v3_validator_blocks_{slot}.json @@ -3,7 +3,7 @@ "tags" : [ "Validator", "Validator Required Api" ], "operationId" : "produceBlockV3", "summary" : "Produce a new block, without signature.", - "description" : "Requests a beacon node to produce a valid block, which can then be signed by a validator. The\nreturned block may be blinded or unblinded, depending on the current state of the network as\ndecided by the execution and beacon nodes.\nThe beacon node must return an unblinded block if it obtains the execution payload from its\npaired execution node. It must only return a blinded block if it obtains the execution payload\nheader from an MEV relay.\nMetadata in the response indicates the type of block produced, and the supported types of block\nwill be added to as forks progress.", + "description" : "Requests a beacon node to produce a valid block, which can then be signed by a validator. The\nreturned block may be blinded or unblinded, depending on the current state of the network as\ndecided by the execution and beacon nodes.\nThe beacon node must return an unblinded block if it obtains the execution payload from its\npaired execution node. It must only return a blinded block if it obtains the execution payload\nheader from an MEV relay.\nMetadata in the response indicates the type of block produced, and the supported types of block\nwill be added to as forks progress.\n", "parameters" : [ { "name" : "slot", "required" : true, diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecars.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecars.java index df71e555246..45754ed33fe 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecars.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecars.java @@ -67,10 +67,12 @@ private static EndpointMetadata createEndpointMetadata(final SchemaDefinitionCac .operationId("getBlobSidecars") .summary("Get blob sidecars") .description( - "Retrieves blob sidecars for a given block id.\n" - + " Depending on `Accept` header it can be returned either as json or as bytes serialized by SSZ.\n" - + " If the `indices` parameter is specified, only the blob sidecars with the specified indices will be returned. There are no guarantees\n" - + " for the returned blob sidecars in terms of ordering.") + """ + Retrieves blob sidecars for a given block id. + Depending on `Accept` header it can be returned either as json or as bytes serialized by SSZ. + If the `indices` parameter is specified, only the blob sidecars with the specified indices will be returned. There are no guarantees + for the returned blob sidecars in terms of ordering. + """) .tags(TAG_BEACON) .pathParam(PARAMETER_BLOCK_ID) .queryListParam(BLOB_INDICES_PARAMETER) diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostSyncCommittees.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostSyncCommittees.java index 43e828f24e1..1caf209a21c 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostSyncCommittees.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostSyncCommittees.java @@ -52,10 +52,15 @@ public PostSyncCommittees(final ValidatorDataProvider provider) { .operationId("submitPoolSyncCommitteeSignatures") .summary("Submit sync committee signatures to node") .description( - "Submits sync committee message objects to the node.\n\n" - + "Sync committee messages are not present in phase0, but are required for Altair networks.\n\n" - + "If a sync committee message is validated successfully the node MUST publish that sync committee message on all applicable subnets.\n\n" - + "If one or more sync committee messages fail validation the node MUST return a 400 error with details of which sync committee messages have failed, and why.") + """ + Submits sync committee message objects to the node. + + Sync committee messages are not present in phase0, but are required for Altair networks. + + If a sync committee message is validated successfully the node MUST publish that sync committee message on all applicable subnets. + + If one or more sync committee messages fail validation the node MUST return a 400 error with details of which sync committee messages have failed, and why. + """) .tags(TAG_BEACON, TAG_VALIDATOR_REQUIRED) .requestBodyType( DeserializableTypeDefinition.listOf( diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/debug/GetState.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/debug/GetState.java index 84383019654..3d9a0dab9f0 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/debug/GetState.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/debug/GetState.java @@ -57,9 +57,13 @@ public GetState( .operationId("getState") .summary("Get state") .description( - "Returns full BeaconState object for given state_id.\n\n" - + "Use Accept header to select `application/octet-stream` if SSZ response type is required.\n\n" - + "__NOTE__: Only phase0 beacon state will be returned in JSON, use `/eth/v2/beacon/states/{state_id}` for altair.") + """ + Returns full BeaconState object for given state_id. + + Use Accept header to select `application/octet-stream` if SSZ response type is required. + + __NOTE__: Only phase0 beacon state will be returned in JSON, use `/eth/v2/beacon/states/{state_id}` for altair. + """) .tags(TAG_DEBUG) .pathParam(PARAMETER_STATE_ID) .response( diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostPrepareBeaconProposer.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostPrepareBeaconProposer.java index f8e610375e3..6c1e4b9ce7a 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostPrepareBeaconProposer.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostPrepareBeaconProposer.java @@ -68,9 +68,13 @@ private static EndpointMetadata createMetadata() { .operationId("prepareBeaconProposer") .summary("Provide beacon node with proposals for the given validators.") .description( - "Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index is considered persistent until overwritten by new information for the given validator index, or until the beacon node restarts.\n\n" - + "Note that because the information is not persistent across beacon node restarts it is recommended that either the beacon node is monitored for restarts or this information is refreshed by resending this request periodically (for example, each epoch).\n\n" - + "Also note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch.") + """ + Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index is considered persistent until overwritten by new information for the given validator index, or until the beacon node restarts. + + Note that because the information is not persistent across beacon node restarts it is recommended that either the beacon node is monitored for restarts or this information is refreshed by resending this request periodically (for example, each epoch). + + Also note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch. + """) .tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED) .requestBodyType(DeserializableTypeDefinition.listOf(BeaconPreparableProposer.SSZ_DATA)) .response(SC_OK, "Preparation information has been received.") diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostSubscribeToBeaconCommitteeSubnet.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostSubscribeToBeaconCommitteeSubnet.java index 21e110e49dd..847a45f8dd9 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostSubscribeToBeaconCommitteeSubnet.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostSubscribeToBeaconCommitteeSubnet.java @@ -44,9 +44,11 @@ public PostSubscribeToBeaconCommitteeSubnet(final ValidatorDataProvider provider .operationId("prepareBeaconCommitteeSubnet") .summary("Signal beacon node to prepare for a committee subnet") .description( - "After Beacon node receives this request, search using discv5 for peers related to this subnet and replace current peers with those ones if necessary If validator is_aggregator, beacon node must:\n" - + "- announce subnet topic subscription on gossipsub\n" - + "- aggregate attestations received on that subnet\n") + """ + After Beacon node receives this request, search using discv5 for peers related to this subnet and replace current peers with those ones if necessary If validator is_aggregator, beacon node must: + - announce subnet topic subscription on gossipsub + - aggregate attestations received on that subnet + """) .tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED) .requestBodyType( DeserializableTypeDefinition.listOf(CommitteeSubscriptionData.SSZ_DATA)) diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostSyncCommitteeSubscriptions.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostSyncCommitteeSubscriptions.java index 91f1b9535fc..74b6132b9f0 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostSyncCommitteeSubscriptions.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/validator/PostSyncCommitteeSubscriptions.java @@ -44,9 +44,13 @@ public PostSyncCommitteeSubscriptions(final ValidatorDataProvider validatorDataP .operationId("prepareSyncCommitteeSubnets") .summary("Subscribe to sync committee subnets") .description( - "Subscribe to a number of sync committee subnets\n\n" - + "Sync committees are not present in phase0, but are required for Altair networks.\n\n" - + "Subscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.") + """ + Subscribe to a number of sync committee subnets + + Sync committees are not present in phase0, but are required for Altair networks. + + Subscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee. + """) .tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED) .requestBodyType(DeserializableTypeDefinition.listOf(SYNC_COMMITTEE_SUBSCRIPTION)) .response(SC_OK, "Successful response") diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/PostAttestationsV2.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/PostAttestationsV2.java index 2f8b817ba04..7868630003e 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/PostAttestationsV2.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/PostAttestationsV2.java @@ -116,9 +116,11 @@ private static EndpointMetadata createMetadata( .operationId("submitPoolAttestationsV2") .summary("Submit Attestation objects to node") .description( - "Submits Attestation objects to the node. Each attestation in the request body is processed individually.\n" - + "If an attestation is validated successfully, the node MUST publish that attestation on the appropriate subnet.\n" - + "If one or more attestations fail validation, the node MUST return a 400 error with details of which attestations have failed, and why.") + """ + Submits Attestation objects to the node. Each attestation in the request body is processed individually. + If an attestation is validated successfully, the node MUST publish that attestation on the appropriate subnet. + If one or more attestations fail validation, the node MUST return a 400 error with details of which attestations have failed, and why. + """) .tags(TAG_BEACON, TAG_VALIDATOR_REQUIRED, TAG_EXPERIMENTAL) .requestBodyType( SerializableTypeDefinition.listOf(attestationSchemaDefinition), attestationBodySelector) diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2.java index 2e9d7111100..8177b6b4cfb 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2.java @@ -61,12 +61,14 @@ public GetAggregateAttestationV2( .operationId("getAggregatedAttestationV2") .summary("Get aggregated attestation") .description( - "Aggregates all attestations matching given attestation data root, slot and committee index.\n" - + "A 503 error must be returned if the block identified by the response\n" - + "`beacon_block_root` is optimistic (i.e. the aggregated attestation attests\n" - + "to a block that has not been fully verified by an execution engine).\n" - + "A 404 error must be returned if no attestation is available for the requested\n" - + "`attestation_data_root`.") + """ + Aggregates all attestations matching given attestation data root, slot and committee index. + A 503 error must be returned if the block identified by the response + `beacon_block_root` is optimistic (i.e. the aggregated attestation attests + to a block that has not been fully verified by an execution engine). + A 404 error must be returned if no attestation is available for the requested + `attestation_data_root`. + """) .tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED) .queryParamRequired(ATTESTATION_DATA_ROOT_PARAMETER) .queryParamRequired(SLOT_PARAMETER) diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3.java index 84c61cf56a7..01fa2669747 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3.java @@ -87,14 +87,16 @@ private static EndpointMetadata getEndpointMetaData( .operationId("produceBlockV3") .summary("Produce a new block, without signature.") .description( - "Requests a beacon node to produce a valid block, which can then be signed by a validator. The\n" - + "returned block may be blinded or unblinded, depending on the current state of the network as\n" - + "decided by the execution and beacon nodes.\n" - + "The beacon node must return an unblinded block if it obtains the execution payload from its\n" - + "paired execution node. It must only return a blinded block if it obtains the execution payload\n" - + "header from an MEV relay.\n" - + "Metadata in the response indicates the type of block produced, and the supported types of block\n" - + "will be added to as forks progress.") + """ + Requests a beacon node to produce a valid block, which can then be signed by a validator. The + returned block may be blinded or unblinded, depending on the current state of the network as + decided by the execution and beacon nodes. + The beacon node must return an unblinded block if it obtains the execution payload from its + paired execution node. It must only return a blinded block if it obtains the execution payload + header from an MEV relay. + Metadata in the response indicates the type of block produced, and the supported types of block + will be added to as forks progress. + """) .tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED) .pathParam(SLOT_PARAMETER.withDescription(SLOT_PATH_DESCRIPTION)) .queryParamRequired(RANDAO_PARAMETER) diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/rewards/EpochAttestationRewardsCalculator.java b/data/provider/src/main/java/tech/pegasys/teku/api/rewards/EpochAttestationRewardsCalculator.java index c6334e00fe1..7a3a70cd20a 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/rewards/EpochAttestationRewardsCalculator.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/rewards/EpochAttestationRewardsCalculator.java @@ -147,16 +147,13 @@ private boolean isInactivityLeak() { private UInt64 getPrevEpochTotalParticipatingBalance(final int flagIndex) { final TotalBalances totalBalances = validatorStatuses.getTotalBalances(); - switch (flagIndex) { - case TIMELY_HEAD_FLAG_INDEX: - return totalBalances.getPreviousEpochHeadAttesters(); - case TIMELY_TARGET_FLAG_INDEX: - return totalBalances.getPreviousEpochTargetAttesters(); - case TIMELY_SOURCE_FLAG_INDEX: - return totalBalances.getPreviousEpochSourceAttesters(); - default: - throw new IllegalArgumentException("Unable to process unknown flag index:" + flagIndex); - } + return switch (flagIndex) { + case TIMELY_HEAD_FLAG_INDEX -> totalBalances.getPreviousEpochHeadAttesters(); + case TIMELY_TARGET_FLAG_INDEX -> totalBalances.getPreviousEpochTargetAttesters(); + case TIMELY_SOURCE_FLAG_INDEX -> totalBalances.getPreviousEpochSourceAttesters(); + default -> + throw new IllegalArgumentException("Unable to process unknown flag index:" + flagIndex); + }; } @VisibleForTesting diff --git a/data/provider/src/test/java/tech/pegasys/teku/api/ValidatorDataProviderTest.java b/data/provider/src/test/java/tech/pegasys/teku/api/ValidatorDataProviderTest.java index dd36ffa6dc8..0457d913e41 100644 --- a/data/provider/src/test/java/tech/pegasys/teku/api/ValidatorDataProviderTest.java +++ b/data/provider/src/test/java/tech/pegasys/teku/api/ValidatorDataProviderTest.java @@ -402,6 +402,7 @@ void registerValidators_shouldReportErrorIfCannotRetrieveValidatorStatuses() { } @TestTemplate + @SuppressWarnings("EnumOrdinal") void registerValidators_shouldIgnoreExitedAndUnknownValidators() { final int numOfValidatorRegistrationsAttempted = ValidatorStatus.values().length + 2; @@ -425,7 +426,6 @@ void registerValidators_shouldIgnoreExitedAndUnknownValidators() { e.getValue(), dataStructureUtil.randomValidator()))); - @SuppressWarnings("EnumOrdinal") final List exitedOrUnknownKeys = IntStream.range( ValidatorStatus.exited_unslashed.ordinal(), numOfValidatorRegistrationsAttempted) diff --git a/data/publisher/src/main/java/tech/pegasys/teku/data/publisher/MetricsDataFactory.java b/data/publisher/src/main/java/tech/pegasys/teku/data/publisher/MetricsDataFactory.java index 4fea19f1bf4..34ae3d64778 100644 --- a/data/publisher/src/main/java/tech/pegasys/teku/data/publisher/MetricsDataFactory.java +++ b/data/publisher/src/main/java/tech/pegasys/teku/data/publisher/MetricsDataFactory.java @@ -53,11 +53,11 @@ List getMetricData(final MetricsPublisherSource source) { } public List getMetricData() { - if (!(metricsSystem instanceof PrometheusMetricsSystem)) { + if (metricsSystem instanceof final PrometheusMetricsSystem prometheusMetricsSystem) { + return getMetricData(new PrometheusMetricsPublisherSource(prometheusMetricsSystem)); + } else { LOG.error("Prometheus metric system not found, cannot export metrics data."); return new ArrayList<>(); } - return getMetricData( - new PrometheusMetricsPublisherSource((PrometheusMetricsSystem) metricsSystem)); } } diff --git a/data/publisher/src/main/java/tech/pegasys/teku/data/publisher/SystemMetricData.java b/data/publisher/src/main/java/tech/pegasys/teku/data/publisher/SystemMetricData.java index 0edb395b57a..779597895be 100644 --- a/data/publisher/src/main/java/tech/pegasys/teku/data/publisher/SystemMetricData.java +++ b/data/publisher/src/main/java/tech/pegasys/teku/data/publisher/SystemMetricData.java @@ -112,16 +112,12 @@ public SystemMetricData(final long timestamp, final File beaconNodeDirectory) { } private long getNodeBootSeconds() { - switch (miscOs) { - case "lin": - return new LinuxOperatingSystem().getSystemBootTime(); - case "win": - return new WindowsOperatingSystem().getSystemBootTime(); - case "mac": - return new MacOperatingSystem().getSystemBootTime(); - default: - return 0L; - } + return switch (miscOs) { + case "lin" -> new LinuxOperatingSystem().getSystemBootTime(); + case "win" -> new WindowsOperatingSystem().getSystemBootTime(); + case "mac" -> new MacOperatingSystem().getSystemBootTime(); + default -> 0L; + }; } private long[] calculateProcessLoadTicks(final long[][] processorCpuLoadTicks) { diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/SignedBlockAndState.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/SignedBlockAndState.java index 7809b3ddaac..bae52c5ceeb 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/SignedBlockAndState.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/SignedBlockAndState.java @@ -39,12 +39,12 @@ public boolean equals(final Object o) { if (o == this) { return true; } - if (!(o instanceof SignedBlockAndState)) { + if (o instanceof final SignedBlockAndState that) { + return Objects.equals(getBlock(), that.getBlock()) + && Objects.equals(getState(), that.getState()); + } else { return false; } - final SignedBlockAndState that = (SignedBlockAndState) o; - return Objects.equals(getBlock(), that.getBlock()) - && Objects.equals(getState(), that.getState()); } @Override diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/NewPayloadRequest.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/NewPayloadRequest.java index 3c0a46c8c77..b9c62728063 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/NewPayloadRequest.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/NewPayloadRequest.java @@ -77,14 +77,15 @@ public boolean equals(final Object o) { if (this == o) { return true; } - if (!(o instanceof NewPayloadRequest)) { + if (o instanceof final NewPayloadRequest that) { + + return Objects.equals(executionPayload, that.executionPayload) + && Objects.equals(versionedHashes, that.versionedHashes) + && Objects.equals(parentBeaconBlockRoot, that.parentBeaconBlockRoot) + && Objects.equals(executionRequests, that.executionRequests); + } else { return false; } - final NewPayloadRequest that = (NewPayloadRequest) o; - return Objects.equals(executionPayload, that.executionPayload) - && Objects.equals(versionedHashes, that.versionedHashes) - && Objects.equals(parentBeaconBlockRoot, that.parentBeaconBlockRoot) - && Objects.equals(executionRequests, that.executionRequests); } @Override diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/state/CheckpointState.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/state/CheckpointState.java index 910b4de7c98..b5db8cf7775 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/state/CheckpointState.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/state/CheckpointState.java @@ -84,13 +84,13 @@ public boolean equals(final Object o) { if (o == this) { return true; } - if (!(o instanceof CheckpointState)) { + if (o instanceof final CheckpointState that) { + return Objects.equals(checkpoint, that.checkpoint) + && Objects.equals(block, that.block) + && Objects.equals(state, that.state); + } else { return false; } - final CheckpointState that = (CheckpointState) o; - return Objects.equals(checkpoint, that.checkpoint) - && Objects.equals(block, that.block) - && Objects.equals(state, that.state); } @Override diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/state/beaconstate/common/BeaconStateInvariants.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/state/beaconstate/common/BeaconStateInvariants.java index b1dba9fcb34..b7a40958f11 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/state/beaconstate/common/BeaconStateInvariants.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/state/beaconstate/common/BeaconStateInvariants.java @@ -82,12 +82,12 @@ static boolean equals(final BeaconState state, final Object obj) { return true; } - if (!(obj instanceof BeaconState)) { + if (obj instanceof final BeaconState other) { + + return state.hashTreeRoot().equals(other.hashTreeRoot()); + } else { return false; } - - BeaconState other = (BeaconState) obj; - return state.hashTreeRoot().equals(other.hashTreeRoot()); } static int hashCode(final BeaconState state) { diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/altair/statetransition/epoch/RewardsAndPenaltiesCalculatorAltair.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/altair/statetransition/epoch/RewardsAndPenaltiesCalculatorAltair.java index b00e757e731..46e7bce1e72 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/altair/statetransition/epoch/RewardsAndPenaltiesCalculatorAltair.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/altair/statetransition/epoch/RewardsAndPenaltiesCalculatorAltair.java @@ -192,30 +192,26 @@ protected UInt64 getInactivityPenaltyQuotient() { private boolean validatorHasPrevEpochParticipationFlag( final ValidatorStatus validator, final int flagIndex) { - switch (flagIndex) { - case TIMELY_HEAD_FLAG_INDEX: - return validator.isPreviousEpochHeadAttester(); - case ParticipationFlags.TIMELY_TARGET_FLAG_INDEX: - return validator.isPreviousEpochTargetAttester(); - case ParticipationFlags.TIMELY_SOURCE_FLAG_INDEX: - return validator.isPreviousEpochSourceAttester(); - default: - throw new IllegalArgumentException("Unable to process unknown flag index:" + flagIndex); - } + return switch (flagIndex) { + case TIMELY_HEAD_FLAG_INDEX -> validator.isPreviousEpochHeadAttester(); + case ParticipationFlags.TIMELY_TARGET_FLAG_INDEX -> validator.isPreviousEpochTargetAttester(); + case ParticipationFlags.TIMELY_SOURCE_FLAG_INDEX -> validator.isPreviousEpochSourceAttester(); + default -> + throw new IllegalArgumentException("Unable to process unknown flag index:" + flagIndex); + }; } private UInt64 getPrevEpochTotalParticipatingBalance(final int flagIndex) { final TotalBalances totalBalances = validatorStatuses.getTotalBalances(); - switch (flagIndex) { - case TIMELY_HEAD_FLAG_INDEX: - return totalBalances.getPreviousEpochHeadAttesters(); - case ParticipationFlags.TIMELY_TARGET_FLAG_INDEX: - return totalBalances.getPreviousEpochTargetAttesters(); - case ParticipationFlags.TIMELY_SOURCE_FLAG_INDEX: - return totalBalances.getPreviousEpochSourceAttesters(); - default: - throw new IllegalArgumentException("Unable to process unknown flag index:" + flagIndex); - } + return switch (flagIndex) { + case TIMELY_HEAD_FLAG_INDEX -> totalBalances.getPreviousEpochHeadAttesters(); + case ParticipationFlags.TIMELY_TARGET_FLAG_INDEX -> + totalBalances.getPreviousEpochTargetAttesters(); + case ParticipationFlags.TIMELY_SOURCE_FLAG_INDEX -> + totalBalances.getPreviousEpochSourceAttesters(); + default -> + throw new IllegalArgumentException("Unable to process unknown flag index:" + flagIndex); + }; } private boolean isUnslashedPrevEpochParticipatingIndex( diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/common/util/AttestationUtilTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/common/util/AttestationUtilTest.java index a1bc99e23f2..2abbf8e780e 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/common/util/AttestationUtilTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/common/util/AttestationUtilTest.java @@ -90,34 +90,28 @@ void setUp(final SpecContext specContext) { .thenReturn(SafeFuture.completedFuture(true)); attestationUtil = spec.getGenesisSpec().getAttestationUtil(); - switch (specContext.getSpecMilestone()) { - case PHASE0: - attestationUtil = - new AttestationUtilPhase0( - spec.getGenesisSpecConfig(), - specVersion.getSchemaDefinitions(), - beaconStateAccessors, - miscHelpers); - break; - case DENEB: - attestationUtil = - new AttestationUtilDeneb( - spec.getGenesisSpecConfig(), - specVersion.getSchemaDefinitions(), - beaconStateAccessors, - miscHelpers); - break; - case ELECTRA: - attestationUtil = - new AttestationUtilElectra( - spec.getGenesisSpecConfig(), - specVersion.getSchemaDefinitions(), - beaconStateAccessors, - miscHelpers); - break; - default: - throw new UnsupportedOperationException("unsupported milestone"); - } + attestationUtil = + switch (specContext.getSpecMilestone()) { + case PHASE0 -> + new AttestationUtilPhase0( + spec.getGenesisSpecConfig(), + specVersion.getSchemaDefinitions(), + beaconStateAccessors, + miscHelpers); + case DENEB -> + new AttestationUtilDeneb( + spec.getGenesisSpecConfig(), + specVersion.getSchemaDefinitions(), + beaconStateAccessors, + miscHelpers); + case ELECTRA -> + new AttestationUtilElectra( + spec.getGenesisSpecConfig(), + specVersion.getSchemaDefinitions(), + beaconStateAccessors, + miscHelpers); + default -> throw new UnsupportedOperationException("unsupported milestone"); + }; } @TestTemplate diff --git a/fork-choice-tests/src/integration-test/java/tech/pegasys/teku/forkChoiceTests/ForkChoiceIntegrationTest.java b/fork-choice-tests/src/integration-test/java/tech/pegasys/teku/forkChoiceTests/ForkChoiceIntegrationTest.java index b4094bb32ab..bacc83eeaff 100644 --- a/fork-choice-tests/src/integration-test/java/tech/pegasys/teku/forkChoiceTests/ForkChoiceIntegrationTest.java +++ b/fork-choice-tests/src/integration-test/java/tech/pegasys/teku/forkChoiceTests/ForkChoiceIntegrationTest.java @@ -113,34 +113,23 @@ private static Object extractTestStep( ForkChoiceTestStep stepKind = getStepKind(stepDescription); Object value = stepDescription.get(stepKind.name()); - switch (stepKind) { - case slot: - { - return UInt64.valueOf((Integer) value); - } - case block: - { - return resolvePart( + return switch (stepKind) { + case slot -> UInt64.valueOf((Integer) value); + case block -> + resolvePart( SignedBeaconBlock.class, SPEC.getGenesisSchemaDefinitions().getSignedBeaconBlockSchema(), file, value); - } - case attestation: - { - return resolvePart( + case attestation -> + resolvePart( Attestation.class, SPEC.getGenesisSchemaDefinitions().getAttestationSchema(), file, value); - } - case checks: - { - return value; - } - default: - throw new IllegalArgumentException("Unsupported step kind " + stepKind); - } + case checks -> value; + default -> throw new IllegalArgumentException("Unsupported step kind " + stepKind); + }; } private static ForkChoiceTestStep getStepKind(final Map ss) { diff --git a/gradle/versions.gradle b/gradle/versions.gradle index 3c04742d15f..8af0801031f 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -1,11 +1,11 @@ dependencyManagement { dependencies { - dependency 'com.fasterxml.jackson.core:jackson-databind:2.18.2' - dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.2' - dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.18.2' - dependency 'com.fasterxml.jackson.module:jackson-module-kotlin:2.18.2' + dependency 'com.fasterxml.jackson.core:jackson-databind:2.18.3' + dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.3' + dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.18.3' + dependency 'com.fasterxml.jackson.module:jackson-module-kotlin:2.18.3' - dependencySet(group: 'com.google.errorprone', version: '2.36.0') { + dependencySet(group: 'com.google.errorprone', version: '2.37.0') { entry 'error_prone_annotation' entry 'error_prone_check_api' entry 'error_prone_core' @@ -27,7 +27,7 @@ dependencyManagement { dependency 'info.picocli:picocli:4.7.6' - dependencySet(group: 'io.javalin', version: '6.4.0') { + dependencySet(group: 'io.javalin', version: '6.6.0') { entry 'javalin' entry 'javalin-rendering' } @@ -42,7 +42,7 @@ dependencyManagement { dependency 'org.mock-server:mockserver-junit-jupiter:5.15.0' - dependencySet(group: 'io.swagger.core.v3', version: '2.2.28') { + dependencySet(group: 'io.swagger.core.v3', version: '2.2.30') { entry 'swagger-parser' entry 'swagger-core' entry 'swagger-models' @@ -50,11 +50,11 @@ dependencyManagement { } // On update don't forget to change version in tech.pegasys.teku.infrastructure.restapi.SwaggerUIBuilder - dependency 'org.webjars:swagger-ui:5.18.3' + dependency 'org.webjars:swagger-ui:5.20.7' dependency 'org.thymeleaf:thymeleaf:3.1.3.RELEASE' dependency 'io.github.classgraph:classgraph:4.8.179' - dependencySet(group: 'com.github.oshi', version: '6.6.6') { + dependencySet(group: 'com.github.oshi', version: '6.8.0') { entry 'oshi-core' entry 'oshi-core-java11' } @@ -140,12 +140,12 @@ dependencyManagement { dependency 'io.prometheus:prometheus-metrics-bom:1.3.5' - dependencySet(group: 'org.hyperledger.besu.internal', version: '25.3.0') { + dependencySet(group: 'org.hyperledger.besu.internal', version: '25.4.0') { entry('metrics-core') entry('core') entry('config') } - dependencySet(group: 'org.hyperledger.besu', version: '25.3.0') { + dependencySet(group: 'org.hyperledger.besu', version: '25.4.0') { entry('besu-datatypes') entry('evm') entry('plugin-api') diff --git a/infrastructure/bls-keystore/src/main/java/tech/pegasys/teku/bls/keystore/KeyStoreLoader.java b/infrastructure/bls-keystore/src/main/java/tech/pegasys/teku/bls/keystore/KeyStoreLoader.java index 80045591a76..012d81f0695 100644 --- a/infrastructure/bls-keystore/src/main/java/tech/pegasys/teku/bls/keystore/KeyStoreLoader.java +++ b/infrastructure/bls-keystore/src/main/java/tech/pegasys/teku/bls/keystore/KeyStoreLoader.java @@ -93,14 +93,14 @@ public static KeyStoreData loadFromUrl(final URL keystoreFile) private static KeyStoreValidationException convertToKeyStoreValidationException( final JsonMappingException e) { final String cause; - if (e.getCause() instanceof KeyStoreValidationException) { + if (e.getCause() instanceof final KeyStoreValidationException keyStoreValidationException) { // this is wrapped because it is raised from custom deserializer in KeyStoreBytesModule to // validate enums - throw (KeyStoreValidationException) e.getCause(); + throw keyStoreValidationException; } - if (e instanceof InvalidTypeIdException) { - cause = getKdfFunctionErrorMessage((InvalidTypeIdException) e); + if (e instanceof final InvalidTypeIdException invalidTypeIdException) { + cause = getKdfFunctionErrorMessage(invalidTypeIdException); } else { cause = "Invalid KeyStore: " + e.getMessage(); } diff --git a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/BLSPublicKey.java b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/BLSPublicKey.java index 0ccf6660cba..fe792a3c412 100644 --- a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/BLSPublicKey.java +++ b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/BLSPublicKey.java @@ -173,12 +173,12 @@ public boolean equals(final Object obj) { return true; } - if (!(obj instanceof BLSPublicKey)) { + if (obj instanceof final BLSPublicKey other) { + + return Objects.equals(this.toBytesCompressed(), other.toBytesCompressed()); + } else { return false; } - - BLSPublicKey other = (BLSPublicKey) obj; - return Objects.equals(this.toBytesCompressed(), other.toBytesCompressed()); } @Override diff --git a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/BLSSignature.java b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/BLSSignature.java index 7e5cecd52ce..1d84687b00f 100644 --- a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/BLSSignature.java +++ b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/BLSSignature.java @@ -145,10 +145,10 @@ public boolean equals(final Object obj) { if (this == obj) { return true; } - if (!(obj instanceof BLSSignature)) { + if (obj instanceof final BLSSignature signature) { + return Objects.equals(toBytesCompressed(), signature.toBytesCompressed()); + } else { return false; } - BLSSignature other = (BLSSignature) obj; - return Objects.equals(toBytesCompressed(), other.toBytesCompressed()); } } diff --git a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstPublicKey.java b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstPublicKey.java index 48eeb778c64..5475e0b66c4 100644 --- a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstPublicKey.java +++ b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstPublicKey.java @@ -45,8 +45,8 @@ public static BlstPublicKey fromBytes(final Bytes48 compressed) { } static BlstPublicKey fromPublicKey(final PublicKey publicKey) { - if (publicKey instanceof BlstPublicKey) { - return (BlstPublicKey) publicKey; + if (publicKey instanceof final BlstPublicKey blstPublicKey) { + return blstPublicKey; } else { return fromBytes(publicKey.toBytesCompressed()); } @@ -122,11 +122,11 @@ public boolean equals(final Object o) { if (this == o) { return true; } - if (!(o instanceof PublicKey)) { + if (o instanceof PublicKey publicKey) { + return Objects.equals(toBytesCompressed(), publicKey.toBytesCompressed()); + } else { return false; } - - return Objects.equals(toBytesCompressed(), ((PublicKey) o).toBytesCompressed()); } @Override diff --git a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstSecretKey.java b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstSecretKey.java index 04b99bd3c8e..e3e74eb301e 100644 --- a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstSecretKey.java +++ b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstSecretKey.java @@ -97,9 +97,10 @@ public boolean equals(final Object o) { if (this == o) { return true; } - if (!(o instanceof SecretKey)) { + if (o instanceof final SecretKey secretKey) { + return Objects.equals(toBytes(), secretKey.toBytes()); + } else { return false; } - return Objects.equals(toBytes(), ((SecretKey) o).toBytes()); } } diff --git a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstSignature.java b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstSignature.java index 9bf06c97047..8b5f5124369 100644 --- a/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstSignature.java +++ b/infrastructure/bls/src/main/java/tech/pegasys/teku/bls/impl/blst/BlstSignature.java @@ -47,8 +47,8 @@ public static BlstSignature fromBytes(final Bytes compressed) { } static BlstSignature fromSignature(final Signature signature) { - if (signature instanceof BlstSignature) { - return (BlstSignature) signature; + if (signature instanceof BlstSignature blstSignature) { + return blstSignature; } else { return fromBytes(signature.toBytesCompressed()); } @@ -158,9 +158,10 @@ public boolean equals(final Object o) { if (this == o) { return true; } - if (!(o instanceof Signature)) { + if (o instanceof final Signature signature) { + return Objects.equals(toBytesCompressed(), signature.toBytesCompressed()); + } else { return false; } - return Objects.equals(toBytesCompressed(), ((Signature) o).toBytesCompressed()); } } diff --git a/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes20.java b/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes20.java index 41950432574..42910b5dd8d 100644 --- a/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes20.java +++ b/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes20.java @@ -49,8 +49,8 @@ public String toHexString() { */ public static Bytes20 leftPad(final Bytes value) { checkNotNull(value); - if (value instanceof Bytes20) { - return (Bytes20) value; + if (value instanceof final Bytes20 bytes20) { + return bytes20; } checkArgument(value.size() <= SIZE, "Expected at most %s bytes but got %s", SIZE, value.size()); MutableBytes result = MutableBytes.create(SIZE); @@ -67,8 +67,8 @@ public static Bytes20 leftPad(final Bytes value) { */ public static Bytes20 rightPad(final Bytes value) { checkNotNull(value); - if (value instanceof Bytes20) { - return (Bytes20) value; + if (value instanceof final Bytes20 bytes20) { + return bytes20; } checkArgument(value.size() <= SIZE, "Expected at most %s bytes but got %s", SIZE, value.size()); MutableBytes result = MutableBytes.create(SIZE); diff --git a/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes4.java b/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes4.java index de4633fd953..8a70dd3847f 100644 --- a/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes4.java +++ b/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes4.java @@ -52,8 +52,8 @@ public String toHexString() { */ public static Bytes4 leftPad(final Bytes value) { checkNotNull(value); - if (value instanceof Bytes4) { - return (Bytes4) value; + if (value instanceof final Bytes4 bytes4) { + return bytes4; } checkArgument(value.size() <= 4, "Expected at most %s bytes but got %s", 4, value.size()); MutableBytes result = MutableBytes.create(4); @@ -70,8 +70,8 @@ public static Bytes4 leftPad(final Bytes value) { */ public static Bytes4 rightPad(final Bytes value) { checkNotNull(value); - if (value instanceof Bytes4) { - return (Bytes4) value; + if (value instanceof final Bytes4 bytes4) { + return bytes4; } checkArgument(value.size() <= 4, "Expected at most %s bytes but got %s", 4, value.size()); MutableBytes result = MutableBytes.create(4); diff --git a/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes8.java b/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes8.java index 5d68e2970e8..a95b2155a90 100644 --- a/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes8.java +++ b/infrastructure/bytes/src/main/java/tech/pegasys/teku/infrastructure/bytes/Bytes8.java @@ -51,8 +51,8 @@ public String toHexString() { */ public static Bytes8 leftPad(final Bytes value) { checkNotNull(value); - if (value instanceof Bytes8) { - return (Bytes8) value; + if (value instanceof final Bytes8 bytes8) { + return bytes8; } checkArgument(value.size() <= 8, "Expected at most %s bytes but got %s", 8, value.size()); MutableBytes result = MutableBytes.create(8); @@ -69,8 +69,8 @@ public static Bytes8 leftPad(final Bytes value) { */ public static Bytes8 rightPad(final Bytes value) { checkNotNull(value); - if (value instanceof Bytes8) { - return (Bytes8) value; + if (value instanceof final Bytes8 bytes8) { + return bytes8; } checkArgument(value.size() <= 8, "Expected at most %s bytes but got %s", 8, value.size()); MutableBytes result = MutableBytes.create(8); diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCommitment.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCommitment.java index bd1a4c5831e..b01018aedc1 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCommitment.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCommitment.java @@ -93,12 +93,11 @@ public boolean equals(final Object obj) { return true; } - if (!(obj instanceof KZGCommitment)) { + if (obj instanceof final KZGCommitment other) { + return Objects.equals(this.getBytesCompressed(), other.getBytesCompressed()); + } else { return false; } - - final KZGCommitment other = (KZGCommitment) obj; - return Objects.equals(this.getBytesCompressed(), other.getBytesCompressed()); } @Override diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGProof.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGProof.java index 6733bc2b3c2..6b7402d9d45 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGProof.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGProof.java @@ -91,12 +91,11 @@ public boolean equals(final Object obj) { return true; } - if (!(obj instanceof KZGProof)) { + if (obj instanceof final KZGProof other) { + return Objects.equals(this.getBytesCompressed(), other.getBytesCompressed()); + } else { return false; } - - final KZGProof other = (KZGProof) obj; - return Objects.equals(this.getBytesCompressed(), other.getBytesCompressed()); } @Override diff --git a/infrastructure/logging/src/main/java/tech/pegasys/teku/infrastructure/logging/EventLogger.java b/infrastructure/logging/src/main/java/tech/pegasys/teku/infrastructure/logging/EventLogger.java index 0c7c6996255..5701a4a1b27 100644 --- a/infrastructure/logging/src/main/java/tech/pegasys/teku/infrastructure/logging/EventLogger.java +++ b/infrastructure/logging/src/main/java/tech/pegasys/teku/infrastructure/logging/EventLogger.java @@ -55,10 +55,12 @@ public void genesisEvent( final String genesisEventLog = String.format( - "Genesis Event *** \n" - + "Genesis state root: %s \n" - + "Genesis block root: %s \n" - + "Genesis time: %s GMT", + """ + Genesis Event *** + Genesis state root: %s + Genesis block root: %s + Genesis time: %s GMT + """, hashTreeRoot.toHexString(), genesisBlockRoot.toHexString(), formattedGenesisTime); info(genesisEventLog, Color.CYAN); } diff --git a/infrastructure/restapi/src/main/java/tech/pegasys/teku/infrastructure/restapi/SwaggerUIBuilder.java b/infrastructure/restapi/src/main/java/tech/pegasys/teku/infrastructure/restapi/SwaggerUIBuilder.java index 8c8d689dbfb..552c0e998b9 100644 --- a/infrastructure/restapi/src/main/java/tech/pegasys/teku/infrastructure/restapi/SwaggerUIBuilder.java +++ b/infrastructure/restapi/src/main/java/tech/pegasys/teku/infrastructure/restapi/SwaggerUIBuilder.java @@ -30,7 +30,7 @@ public class SwaggerUIBuilder { // Version here MUST match `swagger-ui` library version - private static final String SWAGGER_UI_VERSION = "5.18.3"; + private static final String SWAGGER_UI_VERSION = "5.20.7"; private static final String SWAGGER_UI_PATH = "/swagger-ui"; private static final String SWAGGER_HOSTED_PATH = "/webjars/swagger-ui/" + SWAGGER_UI_VERSION; diff --git a/infrastructure/ssz/generator/src/main/java/tech/pegasys/teku/infrastructure/ssz/ContainersGenerator.java b/infrastructure/ssz/generator/src/main/java/tech/pegasys/teku/infrastructure/ssz/ContainersGenerator.java index 386e349bec9..ec9ab63b2d9 100644 --- a/infrastructure/ssz/generator/src/main/java/tech/pegasys/teku/infrastructure/ssz/ContainersGenerator.java +++ b/infrastructure/ssz/generator/src/main/java/tech/pegasys/teku/infrastructure/ssz/ContainersGenerator.java @@ -133,10 +133,13 @@ public void generateContainerClasses(final int fieldsCount) { IntStream.range(0, fieldsCount) .mapToObj( i -> - (" @SuppressWarnings(\"unchecked\")\n" - + " public SszSchema getFieldSchema$() {\n" - + " return (SszSchema) getChildSchema($);\n" - + " }\n") + """ + @SuppressWarnings("unchecked") + public SszSchema getFieldSchema$() { + return (SszSchema) getChildSchema($); + } + + """ .replace("$", "" + i)) .collect(Collectors.joining("\n\n")))); generateFromTemplate( diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitvectorImpl.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitvectorImpl.java index 16330e9e231..df546bb9b4a 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitvectorImpl.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitvectorImpl.java @@ -146,11 +146,12 @@ public boolean equals(final Object o) { if (this == o) { return true; } - if (!(o instanceof BitvectorImpl)) { + if (o instanceof final BitvectorImpl bitvector) { + + return getSize() == bitvector.getSize() && Objects.equal(data, bitvector.data); + } else { return false; } - BitvectorImpl bitvector = (BitvectorImpl) o; - return getSize() == bitvector.getSize() && Objects.equal(data, bitvector.data); } @Override diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/AbstractSszImmutableContainer.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/AbstractSszImmutableContainer.java index ded173d676d..ecfdd7e03a4 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/AbstractSszImmutableContainer.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/AbstractSszImmutableContainer.java @@ -90,12 +90,12 @@ public boolean equals(final Object obj) { return true; } - if (!(obj instanceof AbstractSszImmutableContainer)) { + if (obj instanceof final AbstractSszImmutableContainer other) { + + return hashTreeRoot().equals(other.hashTreeRoot()); + } else { return false; } - - AbstractSszImmutableContainer other = (AbstractSszImmutableContainer) obj; - return hashTreeRoot().equals(other.hashTreeRoot()); } @Override diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/AbstractSszMutableComposite.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/AbstractSszMutableComposite.java index c03cc074408..3887e2f7bc5 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/AbstractSszMutableComposite.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/AbstractSszMutableComposite.java @@ -83,8 +83,8 @@ public void set(final int index, final SszChildT value) { validateChildSchema(index, value); final SszChildT immutableValue; - if (value instanceof SszMutableData) { - immutableValue = (SszChildT) ((SszMutableData) value).commitChanges(); + if (value instanceof final SszMutableData sszMutableData) { + immutableValue = (SszChildT) sszMutableData.commitChanges(); } else { immutableValue = value; } diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/SszUnionImpl.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/SszUnionImpl.java index 371185bf794..c661adfb483 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/SszUnionImpl.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/SszUnionImpl.java @@ -69,13 +69,13 @@ public boolean equals(final Object o) { if (this == o) { return true; } - if (!(o instanceof SszUnion)) { + if (o instanceof final SszUnion sszUnion) { + return Objects.equal(getSchema(), sszUnion.getSchema()) + && getSelector() == sszUnion.getSelector() + && Objects.equal(hashTreeRoot(), sszUnion.hashTreeRoot()); + } else { return false; } - SszUnion sszUnion = (SszUnion) o; - return Objects.equal(getSchema(), sszUnion.getSchema()) - && getSelector() == sszUnion.getSelector() - && Objects.equal(hashTreeRoot(), sszUnion.hashTreeRoot()); } @Override diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/AbstractSszPrimitiveSchema.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/AbstractSszPrimitiveSchema.java index bea047068ec..4637e3c6dd6 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/AbstractSszPrimitiveSchema.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/AbstractSszPrimitiveSchema.java @@ -103,6 +103,7 @@ public TreeNode loadBackingNodes( } @Override + @SuppressWarnings("PatternMatchingInstanceof") public final DataT createFromPackedNodeUnboxed(final TreeNode node, final int internalIndex) { assert node instanceof LeafDataNode; return createFromLeafBackingNode((LeafDataNode) node, internalIndex); @@ -149,9 +150,9 @@ public int getSszVariablePartSize(final TreeNode node) { @Override public int sszSerializeTree(final TreeNode node, final SszWriter writer) { final Bytes nodeData; - if (node instanceof LeafDataNode) { + if (node instanceof final LeafDataNode leafDataNode) { // small perf optimization - nodeData = ((LeafDataNode) node).getData(); + nodeData = leafDataNode.getData(); } else { nodeData = node.hashTreeRoot(); } diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/LoadingUtil.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/LoadingUtil.java index 96980e3ead0..5248cea8741 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/LoadingUtil.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/LoadingUtil.java @@ -130,19 +130,12 @@ public static TreeNode loadNodesToDepth( private static boolean isZeroBranchUseful(final long rootGIndex, final long lastUsefulGIndex) { final NodeRelation relationRootToLastUseful = GIndexUtil.gIdxCompare(rootGIndex, lastUsefulGIndex); - switch (relationRootToLastUseful) { - case LEFT: - case PREDECESSOR: - return true; - - case SAME: - case RIGHT: - case SUCCESSOR: - return false; - - default: - throw new IllegalStateException("Unknown relation type: " + relationRootToLastUseful); - } + return switch (relationRootToLastUseful) { + case LEFT, PREDECESSOR -> true; + case SAME, RIGHT, SUCCESSOR -> false; + default -> + throw new IllegalStateException("Unknown relation type: " + relationRootToLastUseful); + }; } private static BranchNode createUsefulEmptyBranch( diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/GIndexUtil.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/GIndexUtil.java index 1b12e257c23..6e752231da4 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/GIndexUtil.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/GIndexUtil.java @@ -39,20 +39,14 @@ public enum NodeRelation { /** gIdxCompare(idx1, idx2) == gIdxCompare(idx2, idx1).inverse() */ public NodeRelation inverse() { - switch (this) { - case LEFT: - return RIGHT; - case RIGHT: - return LEFT; - case PREDECESSOR: - return SUCCESSOR; - case SUCCESSOR: - return PREDECESSOR; - case SAME: - return SAME; - default: - throw new IllegalArgumentException("Unknown: " + this); - } + return switch (this) { + case LEFT -> RIGHT; + case RIGHT -> LEFT; + case PREDECESSOR -> SUCCESSOR; + case SUCCESSOR -> PREDECESSOR; + case SAME -> SAME; + default -> throw new IllegalArgumentException("Unknown: " + this); + }; } } diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/SimpleLeafNode.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/SimpleLeafNode.java index 0a2365ef05f..4e8c15867a3 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/SimpleLeafNode.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/SimpleLeafNode.java @@ -81,11 +81,11 @@ public boolean equals(final Object o) { if (this == o) { return true; } - if (!(o instanceof LeafNode)) { + if (o instanceof final LeafNode otherLeaf) { + return Objects.equals(getData(), otherLeaf.getData()); + } else { return false; } - LeafNode otherLeaf = (LeafNode) o; - return Objects.equals(getData(), otherLeaf.getData()); } @Override diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/SszNodeTemplate.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/SszNodeTemplate.java index 9b33bfc887c..33a8fe8613f 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/SszNodeTemplate.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/SszNodeTemplate.java @@ -182,8 +182,8 @@ public Bytes32 visitBranch( private static T binaryTraverse( final long gIndex, final TreeNode node, final BinaryVisitor visitor) { - if (node instanceof LeafNode) { - return visitor.visitLeaf(gIndex, (LeafNode) node); + if (node instanceof final LeafNode leafnode) { + return visitor.visitLeaf(gIndex, leafnode); } else if (node instanceof BranchNode branchNode) { return visitor.visitBranch( gIndex, diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/TreeUtil.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/TreeUtil.java index 9bfd668536f..d72fc46cf7c 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/TreeUtil.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/TreeUtil.java @@ -177,8 +177,8 @@ static void iterateLeaves( fromGeneralIndex, toGeneralIndex, (n, idx) -> { - if (n instanceof LeafNode) { - visitor.accept((LeafNode) n); + if (n instanceof final LeafNode leafNode) { + visitor.accept(leafNode); } return true; }); @@ -193,8 +193,8 @@ public static void iterateLeavesData( fromGeneralIndex, toGeneralIndex, (n, idx) -> { - if (n instanceof LeafDataNode) { - visitor.accept(((LeafDataNode) n).getData()); + if (n instanceof final LeafDataNode leafDataNode) { + visitor.accept(leafDataNode.getData()); } return true; }); diff --git a/infrastructure/ssz/src/testFixtures/java/tech/pegasys/teku/infrastructure/ssz/SszDataAssert.java b/infrastructure/ssz/src/testFixtures/java/tech/pegasys/teku/infrastructure/ssz/SszDataAssert.java index a3faedda9b0..92dd148c629 100644 --- a/infrastructure/ssz/src/testFixtures/java/tech/pegasys/teku/infrastructure/ssz/SszDataAssert.java +++ b/infrastructure/ssz/src/testFixtures/java/tech/pegasys/teku/infrastructure/ssz/SszDataAssert.java @@ -133,8 +133,8 @@ private static List compareByGetters(final SszData actual, final SszData List res = compareByGetters(c1.get(i), c2.get(i)); if (!res.isEmpty()) { String traceDetails; - if (actual instanceof SszContainer) { - SszContainerSchema containerSchema = ((SszContainer) actual).getSchema(); + if (actual instanceof final SszContainer sszContainer) { + SszContainerSchema containerSchema = sszContainer.getSchema(); traceDetails = containerSchema.toString() + "." + containerSchema.getFieldNames().get(i); } else { diff --git a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/gossip/topics/GossipTopicsTest.java b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/gossip/topics/GossipTopicsTest.java index 2b6e9fafbf9..794b24b18d6 100644 --- a/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/gossip/topics/GossipTopicsTest.java +++ b/networking/eth2/src/test/java/tech/pegasys/teku/networking/eth2/gossip/topics/GossipTopicsTest.java @@ -56,7 +56,7 @@ public void extractForkDigest_invalid() { @Test public void maxSubscribedTopicsConstantIsLargeEnough() { - final SpecMilestone latestMilestone = SpecMilestone.values()[SpecMilestone.values().length - 1]; + final SpecMilestone latestMilestone = SpecMilestone.getHighestMilestone(); final Spec spec = TestSpecFactory.createMainnet(latestMilestone); final StorageSystem storageSystem = InMemoryStorageSystemBuilder.buildDefault(spec); diff --git a/networking/nat/src/main/java/tech/pegasys/teku/networking/nat/UpnpClient.java b/networking/nat/src/main/java/tech/pegasys/teku/networking/nat/UpnpClient.java index 74f31d8926e..7d51537553b 100644 --- a/networking/nat/src/main/java/tech/pegasys/teku/networking/nat/UpnpClient.java +++ b/networking/nat/src/main/java/tech/pegasys/teku/networking/nat/UpnpClient.java @@ -182,13 +182,10 @@ private void inspectDeviceRecursive(final RemoteDevice device) { } private PortMapping.Protocol toJupnpProtocol(final NetworkProtocol protocol) { - switch (protocol) { - case UDP: - return PortMapping.Protocol.UDP; - case TCP: - return PortMapping.Protocol.TCP; - } - return null; + return switch (protocol) { + case UDP -> PortMapping.Protocol.UDP; + case TCP -> PortMapping.Protocol.TCP; + }; } private PortMapping toJupnpPortMapping(final NatPortMapping natPortMapping) { diff --git a/services/bootnode/build.gradle b/services/bootnode/build.gradle index b72dcaeba15..5b9a1bc0b48 100644 --- a/services/bootnode/build.gradle +++ b/services/bootnode/build.gradle @@ -13,6 +13,6 @@ dependencies { implementation project(':storage') implementation project(':storage:api') - testImplementation platform('org.junit:junit-bom:5.10.0') + testImplementation platform('org.junit:junit-bom:5.12.2') testImplementation 'org.junit.jupiter:junit-jupiter' } \ No newline at end of file diff --git a/storage/src/main/java/tech/pegasys/teku/storage/server/rocksdb/RocksDbExceptionUtil.java b/storage/src/main/java/tech/pegasys/teku/storage/server/rocksdb/RocksDbExceptionUtil.java index 440ad9a194b..f0fb7200a5f 100644 --- a/storage/src/main/java/tech/pegasys/teku/storage/server/rocksdb/RocksDbExceptionUtil.java +++ b/storage/src/main/java/tech/pegasys/teku/storage/server/rocksdb/RocksDbExceptionUtil.java @@ -28,16 +28,9 @@ private static boolean isUnrecoverable(final RocksDBException cause) { if (cause.getStatus() == null) { return true; } - switch (cause.getStatus().getCode()) { - case TimedOut: - case TryAgain: - case MergeInProgress: - case Incomplete: - case Busy: - case Expired: - return false; - default: - return true; - } + return switch (cause.getStatus().getCode()) { + case TimedOut, TryAgain, MergeInProgress, Incomplete, Busy, Expired -> false; + default -> true; + }; } } diff --git a/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/FileBackedStorageSystemBuilder.java b/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/FileBackedStorageSystemBuilder.java index 255a1b9e6bb..90a099fce97 100644 --- a/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/FileBackedStorageSystemBuilder.java +++ b/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/FileBackedStorageSystemBuilder.java @@ -69,29 +69,17 @@ public StorageSystem build() { } private Database buildDatabase() { - final Database database; - switch (version) { - case LEVELDB_TREE: - database = createLevelDbTrieDatabase(); - break; - case LEVELDB2: - database = createLevelDb2Database(); - break; - case LEVELDB1: - database = createLevelDb1Database(); - break; - case V6: - database = createV6Database(); - break; - case V5: - database = createV5Database(); - break; - case V4: - database = createV4Database(); - break; - default: - throw new UnsupportedOperationException("Unsupported database version: " + version); - } + final Database database = + switch (version) { + case LEVELDB_TREE -> createLevelDbTrieDatabase(); + case LEVELDB2 -> createLevelDb2Database(); + case LEVELDB1 -> createLevelDb1Database(); + case V6 -> createV6Database(); + case V5 -> createV5Database(); + case V4 -> createV4Database(); + default -> + throw new UnsupportedOperationException("Unsupported database version: " + version); + }; return database; } diff --git a/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/InMemoryStorageSystemBuilder.java b/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/InMemoryStorageSystemBuilder.java index 0f60361ddec..fc6014f4519 100644 --- a/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/InMemoryStorageSystemBuilder.java +++ b/storage/src/testFixtures/java/tech/pegasys/teku/storage/storageSystem/InMemoryStorageSystemBuilder.java @@ -74,25 +74,18 @@ public static StorageSystem buildDefault(final Spec spec) { } public StorageSystem build() { - final Database database; - switch (version) { - case LEVELDB_TREE: - database = createLevelDbTreeDatabase(); - break; - case LEVELDB2: // Leveldb only varies by db type which doesn't apply to in-memory - case V6: - database = createV6Database(); - break; - case LEVELDB1: // Leveldb only varies by db type which doesn't apply to in-memory - case V5: - database = createV5Database(); - break; - case V4: - database = createV4Database(); - break; - default: - throw new UnsupportedOperationException("Unsupported database version: " + version); - } + final Database database = + switch (version) { + case LEVELDB_TREE -> + createLevelDbTreeDatabase(); // Leveldb only varies by db type which doesn't apply to + // in-memory + case LEVELDB2, V6 -> + createV6Database(); // Leveldb only varies by db type which doesn't apply to in-memory + case LEVELDB1, V5 -> createV5Database(); + case V4 -> createV4Database(); + default -> + throw new UnsupportedOperationException("Unsupported database version: " + version); + }; final List validatorKeys = new MockStartValidatorKeyPairFactory().generateKeyPairs(0, numberOfValidators); diff --git a/teku/src/test/java/tech/pegasys/teku/cli/subcommand/internal/validator/options/KeystorePasswordOptionsTest.java b/teku/src/test/java/tech/pegasys/teku/cli/subcommand/internal/validator/options/KeystorePasswordOptionsTest.java index 6e435f2f909..acd03b8e2ec 100644 --- a/teku/src/test/java/tech/pegasys/teku/cli/subcommand/internal/validator/options/KeystorePasswordOptionsTest.java +++ b/teku/src/test/java/tech/pegasys/teku/cli/subcommand/internal/validator/options/KeystorePasswordOptionsTest.java @@ -32,16 +32,12 @@ class KeystorePasswordOptionsTest { private static final String EXPECTED_ENV_VARIABLE = "TEST_ENV"; private static final String SPACE_ENV_VARIABLE = "SPACE_ENV"; private static final Function ENV_SUPPLIER = - envVariable -> { - switch (envVariable) { - case EXPECTED_ENV_VARIABLE: - return PASSWORD; - case SPACE_ENV_VARIABLE: - return " "; - default: - return null; - } - }; + envVariable -> + switch (envVariable) { + case EXPECTED_ENV_VARIABLE -> PASSWORD; + case SPACE_ENV_VARIABLE -> " "; + default -> null; + }; private static final String EXPECTED_ENV_ERROR = "Error: Password cannot be read from environment variable: %s"; private static final String EXPECTED_EMPTY_PASSWORD_FILE_ERROR = diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/GetGasLimit.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/GetGasLimit.java index c9ec3cd16b8..e35929ee521 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/GetGasLimit.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/GetGasLimit.java @@ -61,9 +61,11 @@ public GetGasLimit(final Optional proposerConfigManager) .tags(TAG_GAS_LIMIT) .pathParam(PARAM_PUBKEY_TYPE) .description( - "Get the execution gas limit for an individual validator. This gas limit is the one used by the validator when proposing blocks via an external builder. If no limit has been set explicitly for a key then the process-wide default will be returned.\n" - + "The server may return a 400 status code if no external builder is configured.\n" - + "WARNING: The gas_limit is not used on Phase0 or Altair networks.") + """ + Get the execution gas limit for an individual validator. This gas limit is the one used by the validator when proposing blocks via an external builder. If no limit has been set explicitly for a key then the process-wide default will be returned. + The server may return a 400 status code if no external builder is configured. + WARNING: The gas_limit is not used on Phase0 or Altair networks. + """) .response(SC_OK, "Success response", RESPONSE_TYPE) .withAuthenticationResponses() .withNotFoundResponse() diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/SetGasLimit.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/SetGasLimit.java index ff42bb08850..ca5180f62b6 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/SetGasLimit.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/SetGasLimit.java @@ -58,10 +58,12 @@ public SetGasLimit(final Optional proposerConfigManager) .tags(TAG_GAS_LIMIT) .pathParam(PARAM_PUBKEY_TYPE) .description( - "Set the gas limit for an individual validator. This limit will be propagated to the beacon node for use on future block proposals.\n" - + "The beacon node is responsible for informing external block builders of the change.\n" - + "The server may return a 400 status code if no external builder is configured.\n" - + "WARNING: The gas_limit is not used on Phase0 or Altair networks.") + """ + Set the gas limit for an individual validator. This limit will be propagated to the beacon node for use on future block proposals. + The beacon node is responsible for informing external block builders of the change. + The server may return a 400 status code if no external builder is configured. + WARNING: The gas_limit is not used on Phase0 or Altair networks. + """) .requestBodyType(GAS_LIMIT_REQUEST_BODY) .response(SC_ACCEPTED, "Success") .response(SC_SERVICE_UNAVAILABLE, "Unable to update gas limit at this time") diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/ProposerConfigManagerTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/ProposerConfigManagerTest.java index 486fcf8c5af..08ca919bfe8 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/ProposerConfigManagerTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/ProposerConfigManagerTest.java @@ -436,32 +436,29 @@ private void prepareConfigWithDefaultConfigProperty(final Properties property, f private ProposerConfig.Config buildSingleConfigWithProperty( final Properties property, final Object value, final boolean isDefault) { - switch (property) { - case FEE_RECIPIENT: - return new ProposerConfig.Config((Eth1Address) value, null); - case BUILDER_ENABLED: - return new ProposerConfig.Config( - isDefault ? defaultFeeRecipientConfig : null, - new ProposerConfig.BuilderConfig((Boolean) value, null, null)); - case BUILDER_GAS_LIMIT: - return new ProposerConfig.Config( - isDefault ? defaultFeeRecipientConfig : null, - new ProposerConfig.BuilderConfig(isDefault ? false : null, (UInt64) value, null)); - case BUILDER_REGISTRATION_OVERRIDE_PUB_KEY: - return new ProposerConfig.Config( - isDefault ? defaultFeeRecipientConfig : null, - new ProposerConfig.BuilderConfig( - isDefault ? false : null, - null, - new RegistrationOverrides(null, (BLSPublicKey) value))); - case BUILDER_REGISTRATION_OVERRIDE_TIMESTAMP: - return new ProposerConfig.Config( - isDefault ? defaultFeeRecipientConfig : null, - new ProposerConfig.BuilderConfig( - isDefault ? false : null, null, new RegistrationOverrides((UInt64) value, null))); - } - - throw new RuntimeException(); + return switch (property) { + case FEE_RECIPIENT -> new ProposerConfig.Config((Eth1Address) value, null); + case BUILDER_ENABLED -> + new ProposerConfig.Config( + isDefault ? defaultFeeRecipientConfig : null, + new ProposerConfig.BuilderConfig((Boolean) value, null, null)); + case BUILDER_GAS_LIMIT -> + new ProposerConfig.Config( + isDefault ? defaultFeeRecipientConfig : null, + new ProposerConfig.BuilderConfig(isDefault ? false : null, (UInt64) value, null)); + case BUILDER_REGISTRATION_OVERRIDE_PUB_KEY -> + new ProposerConfig.Config( + isDefault ? defaultFeeRecipientConfig : null, + new ProposerConfig.BuilderConfig( + isDefault ? false : null, + null, + new RegistrationOverrides(null, (BLSPublicKey) value))); + case BUILDER_REGISTRATION_OVERRIDE_TIMESTAMP -> + new ProposerConfig.Config( + isDefault ? defaultFeeRecipientConfig : null, + new ProposerConfig.BuilderConfig( + isDefault ? false : null, null, new RegistrationOverrides((UInt64) value, null))); + }; } private void proposerWithRuntimeConfiguration(final Path tempDir) throws IOException { diff --git a/validator/client/src/test/resources/tech/pegasys/teku/validator/client/restapi/paths/_eth_v1_validator_{pubkey}_gas_limit.json b/validator/client/src/test/resources/tech/pegasys/teku/validator/client/restapi/paths/_eth_v1_validator_{pubkey}_gas_limit.json index 8d599af673f..478a5b79186 100644 --- a/validator/client/src/test/resources/tech/pegasys/teku/validator/client/restapi/paths/_eth_v1_validator_{pubkey}_gas_limit.json +++ b/validator/client/src/test/resources/tech/pegasys/teku/validator/client/restapi/paths/_eth_v1_validator_{pubkey}_gas_limit.json @@ -3,7 +3,7 @@ "tags" : [ "Gas Limit" ], "operationId" : "GetGasLimit", "summary" : "Get Validator Gas Limit", - "description" : "Get the execution gas limit for an individual validator. This gas limit is the one used by the validator when proposing blocks via an external builder. If no limit has been set explicitly for a key then the process-wide default will be returned.\nThe server may return a 400 status code if no external builder is configured.\nWARNING: The gas_limit is not used on Phase0 or Altair networks.", + "description" : "Get the execution gas limit for an individual validator. This gas limit is the one used by the validator when proposing blocks via an external builder. If no limit has been set explicitly for a key then the process-wide default will be returned.\nThe server may return a 400 status code if no external builder is configured.\nWARNING: The gas_limit is not used on Phase0 or Altair networks.\n", "parameters" : [ { "name" : "pubkey", "required" : true, @@ -90,7 +90,7 @@ "tags" : [ "Gas Limit" ], "operationId" : "SetGasLimit", "summary" : "Set validator gas limit", - "description" : "Set the gas limit for an individual validator. This limit will be propagated to the beacon node for use on future block proposals.\nThe beacon node is responsible for informing external block builders of the change.\nThe server may return a 400 status code if no external builder is configured.\nWARNING: The gas_limit is not used on Phase0 or Altair networks.", + "description" : "Set the gas limit for an individual validator. This limit will be propagated to the beacon node for use on future block proposals.\nThe beacon node is responsible for informing external block builders of the change.\nThe server may return a 400 status code if no external builder is configured.\nWARNING: The gas_limit is not used on Phase0 or Altair networks.\n", "parameters" : [ { "name" : "pubkey", "required" : true, diff --git a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java index a5fe0dbc5b7..f2ffa97fe99 100644 --- a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java +++ b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java @@ -227,14 +227,15 @@ void getsSyncingStatus() throws InterruptedException { new MockResponse() .setResponseCode(200) .setBody( - "{\n" - + " \"data\": {\n" - + " \"head_slot\": \"1\",\n" - + " \"sync_distance\": \"1\",\n" - + " \"is_syncing\": true,\n" - + " \"is_optimistic\": true\n" - + " }\n" - + "}")); + """ + { + "data": { + "head_slot": "1", + "sync_distance": "1", + "is_syncing": true, + "is_optimistic": true + } + }""")); final SyncingStatus result = typeDefClient.getSyncingStatus(); From ddca83bbba25fffbcf1f10508964d85f4bcf8c84 Mon Sep 17 00:00:00 2001 From: Stefan Bratanov Date: Mon, 14 Apr 2025 22:26:57 +0100 Subject: [PATCH 07/33] Make builder timeouts only for the HTTP call (#9353) Co-authored-by: Lucas Saldanha --- .../rest/OkHttpRestClientTest.java | 45 ++++++++++++++----- .../rest/RestBuilderClientTest.java | 23 +++++++--- .../rest/OkHttpRestClient.java | 31 ++++++++----- .../rest/RestBuilderClient.java | 31 +++++++------ .../executionclient/rest/RestClient.java | 11 +++-- 5 files changed, 96 insertions(+), 45 deletions(-) diff --git a/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClientTest.java b/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClientTest.java index 80fd473b3d9..7c3736d8102 100644 --- a/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClientTest.java +++ b/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClientTest.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import java.io.IOException; +import java.io.InterruptedIOException; import java.time.Duration; import java.util.List; import java.util.Map; @@ -57,6 +58,7 @@ class OkHttpRestClientTest { private static final Map TEST_HEADERS = Map.of("foo", "bar"); + private static final Duration TEST_TIMEOUT = Duration.ofSeconds(5); private static final String TEST_PATH = "v1/test"; private final MockWebServer mockWebServer = new MockWebServer(); @@ -92,7 +94,7 @@ void getsResponseAsync() throws InterruptedException { .addHeader("Content-Type", "application/json")); final SafeFuture>> responseFuture = - underTest.getAsync(TEST_PATH, TEST_HEADERS, responseTypeDefinition); + underTest.getAsync(TEST_PATH, TEST_HEADERS, responseTypeDefinition, TEST_TIMEOUT); assertThat(responseFuture) .succeedsWithin(Duration.ofSeconds(1)) @@ -118,7 +120,7 @@ void getsResponseAsync() throws InterruptedException { void getsResponseAsyncIgnoringResponseBody() throws InterruptedException { mockWebServer.enqueue(new MockResponse().setResponseCode(200)); - final SafeFuture> responseFuture = underTest.getAsync(TEST_PATH); + final SafeFuture> responseFuture = underTest.getAsync(TEST_PATH, TEST_TIMEOUT); assertThat(responseFuture) .succeedsWithin(Duration.ofSeconds(1)) @@ -134,13 +136,33 @@ void getsResponseAsyncIgnoringResponseBody() throws InterruptedException { assertThat(request.getMethod()).isEqualTo("GET"); } + @Test + void getsResponseAsyncTimeouts() throws InterruptedException { + mockWebServer.enqueue( + new MockResponse().setResponseCode(200).setHeadersDelay(1, TimeUnit.SECONDS)); + + final SafeFuture> responseFuture = + underTest.getAsync(TEST_PATH, Duration.ofMillis(100)); + + assertThat(responseFuture) + .failsWithin(Duration.ofSeconds(1)) + .withThrowableThat() + .withCauseInstanceOf(InterruptedIOException.class) + .withMessageContaining("timeout"); + + final RecordedRequest request = mockWebServer.takeRequest(); + + assertThat(request.getPath()).isEqualTo("/" + TEST_PATH); + assertThat(request.getMethod()).isEqualTo("GET"); + } + @Test void getAsyncHandlesFailures() throws InterruptedException { final String errorBody = "{\"code\":400,\"message\":\"Invalid block: missing signature\"}"; mockWebServer.enqueue(new MockResponse().setResponseCode(400).setBody(errorBody)); final SafeFuture>> responseFuture = - underTest.getAsync(TEST_PATH, TEST_HEADERS, responseTypeDefinition); + underTest.getAsync(TEST_PATH, TEST_HEADERS, responseTypeDefinition, TEST_TIMEOUT); assertThat(responseFuture) .succeedsWithin(Duration.ofSeconds(1)) @@ -157,7 +179,7 @@ void getAsyncHandlesFailures() throws InterruptedException { mockWebServer.enqueue(new MockResponse().setResponseCode(500)); final SafeFuture>> secondResponseFuture = - underTest.getAsync(TEST_PATH, TEST_HEADERS, responseTypeDefinition); + underTest.getAsync(TEST_PATH, TEST_HEADERS, responseTypeDefinition, TEST_TIMEOUT); assertThat(secondResponseFuture) .succeedsWithin(Duration.ofSeconds(1)) @@ -195,7 +217,8 @@ void postsAsync() throws InterruptedException { final RequestContainer requestBodyObject = new RequestContainer(2); final SafeFuture>> responseFuture = - underTest.postAsync(TEST_PATH, Map.of(), requestBodyObject, false, responseTypeDefinition); + underTest.postAsync( + TEST_PATH, Map.of(), requestBodyObject, false, responseTypeDefinition, TEST_TIMEOUT); assertThat(responseFuture) .succeedsWithin(Duration.ofSeconds(1)) @@ -232,7 +255,8 @@ void postsAsSszAsync() throws InterruptedException { final RequestContainer requestBodyObject = new RequestContainer(2); final SafeFuture>> responseFuture = - underTest.postAsync(TEST_PATH, Map.of(), requestBodyObject, true, responseTypeDefinition); + underTest.postAsync( + TEST_PATH, Map.of(), requestBodyObject, true, responseTypeDefinition, TEST_TIMEOUT); assertThat(responseFuture) .succeedsWithin(Duration.ofSeconds(1)) @@ -272,7 +296,8 @@ void postsAsyncDoesNotThrowExceptionsInOtherThreadsWhenRequestCreationFails() { doAnswer(invocation -> failingSchema).when(requestBodyObject).getSchema(); final SafeFuture>> responseFuture = - underTest.postAsync(TEST_PATH, Map.of(), requestBodyObject, false, responseTypeDefinition); + underTest.postAsync( + TEST_PATH, Map.of(), requestBodyObject, false, responseTypeDefinition, TEST_TIMEOUT); // this will fail if there are uncaught exceptions in other threads Waiter.waitFor(() -> assertThat(responseFuture).isDone(), 30, TimeUnit.SECONDS, false); @@ -291,7 +316,7 @@ void postsAsyncIgnoringResponseBody() throws InterruptedException { final RequestContainer requestBodyObject = new RequestContainer(2); final SafeFuture> responseFuture = - underTest.postAsync(TEST_PATH, requestBodyObject, false); + underTest.postAsync(TEST_PATH, requestBodyObject, false, TEST_TIMEOUT); assertThat(responseFuture) .succeedsWithin(Duration.ofSeconds(1)) @@ -318,7 +343,7 @@ void postsAsSszAsyncIgnoringResponseBody() throws InterruptedException { final RequestContainer requestBodyObject = new RequestContainer(2); final SafeFuture> responseFuture = - underTest.postAsync(TEST_PATH, requestBodyObject, true); + underTest.postAsync(TEST_PATH, requestBodyObject, true, TEST_TIMEOUT); assertThat(responseFuture) .succeedsWithin(Duration.ofSeconds(1)) @@ -350,7 +375,7 @@ void postsAsSszAsyncDetectsUnsupportedMediaTypeError() throws InterruptedExcepti final RequestContainer requestBodyObject = new RequestContainer(2); final SafeFuture> responseFuture = - underTest.postAsync(TEST_PATH, requestBodyObject, true); + underTest.postAsync(TEST_PATH, requestBodyObject, true, TEST_TIMEOUT); assertThat(responseFuture) .succeedsWithin(Duration.ofSeconds(1)) diff --git a/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/rest/RestBuilderClientTest.java b/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/rest/RestBuilderClientTest.java index 197077a4caf..3cf4d56929b 100644 --- a/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/rest/RestBuilderClientTest.java +++ b/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/rest/RestBuilderClientTest.java @@ -29,6 +29,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.io.Resources; import java.io.IOException; +import java.io.InterruptedIOException; import java.io.UncheckedIOException; import java.net.ConnectException; import java.nio.charset.StandardCharsets; @@ -36,7 +37,7 @@ import java.util.Locale; import java.util.Optional; import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeoutException; +import java.util.concurrent.TimeUnit; import java.util.function.Consumer; import java.util.regex.Pattern; import okhttp3.OkHttpClient; @@ -332,18 +333,23 @@ void registerValidators_trySszAfterBackoffTime() { @TestTemplate void registerValidators_shouldNotFallbackWhenTimingOut() { - // Creates a RestBuilderClient that always timeout + // Creates a RestBuilderClient that has a very tiny timeout restBuilderClient = new RestBuilderClient( - forcedTimeoutRestBuilderClientOptions(), okHttpRestClient, timeProvider, spec, true); + tinyTimeoutRestBuilderClientOptions(), okHttpRestClient, timeProvider, spec, true); final SszList signedValidatorRegistrations = createSignedValidatorRegistrations(); + // set up delayed 200 response + mockWebServer.enqueue( + new MockResponse().setResponseCode(200).setHeadersDelay(1, TimeUnit.SECONDS)); + assertThat(restBuilderClient.registerValidators(SLOT, signedValidatorRegistrations)) .failsWithin(WAIT_FOR_CALL_COMPLETION) .withThrowableThat() - .withCauseInstanceOf(TimeoutException.class); + .withCauseInstanceOf(InterruptedIOException.class) + .withMessageContaining("timeout"); verifyPostRequestSsz("/eth/v1/builder/validators", signedValidatorRegistrations); // Check that we do not fallback into JSON (only 1 request) @@ -356,7 +362,7 @@ void registerValidators_shouldNotFallbackWhenFailingForNonHttpReasons() { // Mock asyncPost with ssz to fail doReturn(SafeFuture.failedFuture(new ConnectException())) .when(okHttpRestClient) - .postAsync(eq(BuilderApiMethod.REGISTER_VALIDATOR.getPath()), any(), eq(true)); + .postAsync(eq(BuilderApiMethod.REGISTER_VALIDATOR.getPath()), any(), eq(true), any()); restBuilderClient = new RestBuilderClient(restBuilderClientOptions, okHttpRestClient, timeProvider, spec, true); @@ -846,8 +852,11 @@ private static String changeResponseVersion(final String json, final SpecMilesto "(?<=version\":\\s?\")\\w+", newVersion.toString().toLowerCase(Locale.ROOT)); } - private RestBuilderClientOptions forcedTimeoutRestBuilderClientOptions() { + private RestBuilderClientOptions tinyTimeoutRestBuilderClientOptions() { return new RestBuilderClientOptions( - Duration.ofSeconds(0), Duration.ofSeconds(0), Duration.ofSeconds(0), Duration.ofSeconds(0)); + Duration.ofMillis(100), + Duration.ofMillis(100), + Duration.ofMillis(100), + Duration.ofMillis(100)); } } diff --git a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClient.java b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClient.java index 63d6984e872..dbaf436d413 100644 --- a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClient.java +++ b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClient.java @@ -18,8 +18,10 @@ import java.io.IOException; import java.io.UncheckedIOException; import java.net.URL; +import java.time.Duration; import java.util.Map; import java.util.Optional; +import java.util.concurrent.TimeUnit; import okhttp3.Call; import okhttp3.Callback; import okhttp3.HttpUrl; @@ -49,29 +51,33 @@ public OkHttpRestClient(final OkHttpClient httpClient, final String baseEndpoint } @Override - public SafeFuture> getAsync(final String apiPath) { + public SafeFuture> getAsync(final String apiPath, final Duration timeout) { final Request request = createGetRequest(apiPath, NO_HEADERS); - return makeAsyncVoidRequest(request); + return makeAsyncVoidRequest(request, timeout); } @Override public SafeFuture>> getAsync( final String apiPath, final Map headers, - final ResponseSchemaAndDeserializableTypeDefinition responseSchema) { + final ResponseSchemaAndDeserializableTypeDefinition responseSchema, + final Duration timeout) { final Request request = createGetRequest(apiPath, headers); - return makeAsyncRequest(request, Optional.of(responseSchema)); + return makeAsyncRequest(request, Optional.of(responseSchema), timeout); } @Override public SafeFuture> postAsync( - final String apiPath, final TReq requestBodyObject, final boolean postAsSsz) { + final String apiPath, + final TReq requestBodyObject, + final boolean postAsSsz, + final Duration timeout) { final RequestBody requestBody = postAsSsz ? createOctetStreamRequestBody(requestBodyObject) : createJsonRequestBody(requestBodyObject); final Request request = createPostRequest(apiPath, requestBody, NO_HEADERS); - return makeAsyncVoidRequest(request); + return makeAsyncVoidRequest(request, timeout); } @Override @@ -81,13 +87,14 @@ SafeFuture>> postAsync( final Map headers, final TReq requestBodyObject, final boolean postAsSsz, - final ResponseSchemaAndDeserializableTypeDefinition responseSchema) { + final ResponseSchemaAndDeserializableTypeDefinition responseSchema, + final Duration timeout) { final RequestBody requestBody = postAsSsz ? createOctetStreamRequestBody(requestBodyObject) : createJsonRequestBody(requestBodyObject); final Request request = createPostRequest(apiPath, requestBody, headers); - return makeAsyncRequest(request, Optional.of(responseSchema)); + return makeAsyncRequest(request, Optional.of(responseSchema), timeout); } private Request createGetRequest(final String apiPath, final Map headers) { @@ -151,16 +158,20 @@ private URL createHttpUrl(final String apiPath) { private SafeFuture>> makeAsyncRequest( final Request request, - final Optional> responseSchemaMaybe) { + final Optional> responseSchemaMaybe, + final Duration timeout) { final Call call = httpClient.newCall(request); + call.timeout().timeout(timeout.toMillis(), TimeUnit.MILLISECONDS); final ResponseHandler responseHandler = new ResponseHandler<>(responseSchemaMaybe); final Callback responseCallback = createResponseCallback(request, responseHandler); call.enqueue(responseCallback); return responseHandler.getFutureResponse(); } - private SafeFuture> makeAsyncVoidRequest(final Request request) { + private SafeFuture> makeAsyncVoidRequest( + final Request request, final Duration timeout) { final Call call = httpClient.newCall(request); + call.timeout().timeout(timeout.toMillis(), TimeUnit.MILLISECONDS); final ResponseHandlerVoid responseHandler = new ResponseHandlerVoid(); final Callback responseCallback = createResponseCallback(request, responseHandler); call.enqueue(responseCallback); diff --git a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/RestBuilderClient.java b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/RestBuilderClient.java index 9c9fe814668..5dfca3659e6 100644 --- a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/RestBuilderClient.java +++ b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/RestBuilderClient.java @@ -100,9 +100,8 @@ public RestBuilderClient( @Override public SafeFuture> status() { - return restClient - .getAsync(BuilderApiMethod.GET_STATUS.getPath()) - .orTimeout(options.builderStatusTimeout()); + return restClient.getAsync( + BuilderApiMethod.GET_STATUS.getPath(), options.builderStatusTimeout()); } @Override @@ -114,8 +113,7 @@ public SafeFuture> registerValidators( } if (nextSszRegisterValidatorsTryMillis.isGreaterThan(timeProvider.getTimeInMillis())) { - return registerValidatorsUsingJson(signedValidatorRegistrations) - .orTimeout(options.builderRegisterValidatorTimeout()); + return registerValidatorsUsingJson(signedValidatorRegistrations); } return registerValidatorsUsingSsz(signedValidatorRegistrations) @@ -134,20 +132,25 @@ public SafeFuture> registerValidators( } return SafeFuture.completedFuture(response); - }) - .orTimeout(options.builderRegisterValidatorTimeout()); + }); } private SafeFuture> registerValidatorsUsingJson( final SszList signedValidatorRegistrations) { return restClient.postAsync( - BuilderApiMethod.REGISTER_VALIDATOR.getPath(), signedValidatorRegistrations, false); + BuilderApiMethod.REGISTER_VALIDATOR.getPath(), + signedValidatorRegistrations, + false, + options.builderRegisterValidatorTimeout()); } private SafeFuture> registerValidatorsUsingSsz( final SszList signedValidatorRegistrations) { return restClient.postAsync( - BuilderApiMethod.REGISTER_VALIDATOR.getPath(), signedValidatorRegistrations, true); + BuilderApiMethod.REGISTER_VALIDATOR.getPath(), + signedValidatorRegistrations, + true, + options.builderRegisterValidatorTimeout()); } @Override @@ -183,8 +186,8 @@ public SafeFuture>> getHeader( setUserAgentHeader ? GET_HEADER_HTTP_HEADERS_WITH_USER_AGENT : GET_HEADER_HTTP_HEADERS_WITHOUT_USER_AGENT, - responseTypeDefinition) - .orTimeout(options.builderProposalDelayTolerance()) + responseTypeDefinition, + options.builderProposalDelayTolerance()) .thenApply( response -> response.unwrapVersioned( @@ -217,12 +220,12 @@ public SafeFuture> getPayload( ACCEPT_HEADER), signedBlindedBeaconBlock, LAST_RECEIVED_HEADER_WAS_IN_SSZ.get(), - responseTypeDefinition) + responseTypeDefinition, + options.builderGetPayloadTimeout()) .thenApply( response -> response.unwrapVersioned( - this::extractBuilderPayload, milestone, BuilderApiResponse::version, false)) - .orTimeout(options.builderGetPayloadTimeout()); + this::extractBuilderPayload, milestone, BuilderApiResponse::version, false)); } private diff --git a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/RestClient.java b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/RestClient.java index 2d195e644e5..e32df53b857 100644 --- a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/RestClient.java +++ b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/RestClient.java @@ -13,6 +13,7 @@ package tech.pegasys.teku.ethereum.executionclient.rest; +import java.time.Duration; import java.util.Collections; import java.util.Map; import tech.pegasys.teku.ethereum.executionclient.schema.BuilderApiResponse; @@ -25,15 +26,16 @@ public interface RestClient { Map NO_HEADERS = Collections.emptyMap(); - SafeFuture> getAsync(String apiPath); + SafeFuture> getAsync(String apiPath, Duration timeout); SafeFuture>> getAsync( String apiPath, Map headers, - ResponseSchemaAndDeserializableTypeDefinition responseSchema); + ResponseSchemaAndDeserializableTypeDefinition responseSchema, + Duration timeout); SafeFuture> postAsync( - String apiPath, TReq requestBodyObject, boolean postAsSsz); + String apiPath, TReq requestBodyObject, boolean postAsSsz, Duration timeout); SafeFuture>> postAsync( @@ -41,7 +43,8 @@ SafeFuture>> postAsync( Map headers, TReq requestBodyObject, boolean postAsSsz, - ResponseSchemaAndDeserializableTypeDefinition responseSchema); + ResponseSchemaAndDeserializableTypeDefinition responseSchema, + Duration timeout); record ResponseSchemaAndDeserializableTypeDefinition( SszSchema responseSchema, From 4d354eb00d04878b98283b632eb44ad239261aa7 Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Tue, 15 Apr 2025 13:05:23 +1000 Subject: [PATCH 08/33] more 3rd party updates (#9355) Signed-off-by: Paul Harris --- CHANGELOG.md | 1 + gradle/versions.gradle | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 40b1fb6fae7..fe9150af129 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - Updated Teku bootnode ENR on Sepolia and Mainnet - Scheduled Electra for Mainnet at epoch 364032 (May 7, 2025, 10:05:11am UTC) - Scheduled Electra for Gnosis at epoch 1337856 (April 30, 2025, 14:03:40 UTC) +- Third party library updates. ### Bug Fixes - It is no longer possible to set both `--checkpoint-sync-url` and `--initial-state`. \ No newline at end of file diff --git a/gradle/versions.gradle b/gradle/versions.gradle index 8af0801031f..05db206741f 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -16,7 +16,7 @@ dependencyManagement { dependency 'com.google.guava:guava:33.1.0-jre' - dependency 'org.jsoup:jsoup:1.18.3' + dependency 'org.jsoup:jsoup:1.19.1' dependency 'com.launchdarkly:okhttp-eventsource:4.1.1' @@ -34,11 +34,11 @@ dependencyManagement { dependency 'io.libp2p:jvm-libp2p:1.2.2-RELEASE' dependency 'tech.pegasys:jblst:0.3.12' - dependency 'io.consensys.protocols:jc-kzg-4844:2.0.0' + dependency 'io.consensys.protocols:jc-kzg-4844:2.1.1' dependency 'org.hdrhistogram:HdrHistogram:2.2.2' - dependency 'org.jetbrains.kotlin:kotlin-stdlib:2.1.10' + dependency 'org.jetbrains.kotlin:kotlin-stdlib:2.1.20' dependency 'org.mock-server:mockserver-junit-jupiter:5.15.0' @@ -59,18 +59,18 @@ dependencyManagement { entry 'oshi-core-java11' } - dependencySet(group: 'io.netty', version: '4.1.118.Final') { + dependencySet(group: 'io.netty', version: '4.2.0.Final') { entry 'netty-handler' entry 'netty-codec-http' } - dependencySet(group: 'io.vertx', version: '4.5.12') { + dependencySet(group: 'io.vertx', version: '4.5.14') { entry 'vertx-codegen' entry 'vertx-core' entry 'vertx-unit' entry 'vertx-web' } - dependency 'io.projectreactor:reactor-core:3.7.2' + dependency 'io.projectreactor:reactor-core:3.7.4' dependency 'it.unimi.dsi:fastutil:8.5.15' @@ -83,9 +83,9 @@ dependencyManagement { entry 'tuweni-units' } - dependency 'org.apache.commons:commons-text:1.13.0' + dependency 'org.apache.commons:commons-text:1.13.1' dependency 'org.apache.commons:commons-lang3:3.17.0' - dependency 'commons-io:commons-io:2.18.0' + dependency 'commons-io:commons-io:2.19.0' dependency 'org.commonjava.mimeparse:mimeparse:0.1.3.3' dependencySet(group: 'org.apache.logging.log4j', version: '2.24.3') { @@ -99,7 +99,7 @@ dependencyManagement { dependency 'org.assertj:assertj-core:3.27.3' - dependency 'org.awaitility:awaitility:4.2.2' + dependency 'org.awaitility:awaitility:4.3.0' dependencySet(group: 'org.bouncycastle', version: '1.80') { entry 'bcprov-jdk18on' From b706f5b064f51f8542287e33ed8a3528e742f6f3 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Wed, 16 Apr 2025 10:19:55 +1200 Subject: [PATCH 09/33] KZG updates from das branch (#9335) --- .../pegasys/teku/reference/KzgRetriever.java | 9 +- .../networks/Eth2NetworkConfiguration.java | 24 +- .../ExecutionLayerChannelStub.java | 2 +- .../versions/deneb/helpers/KzgResolver.java | 2 +- gradle/versions.gradle | 1 + infrastructure/kzg/build.gradle | 1 + .../java/tech/pegasys/teku/kzg/CKZG4844.java | 59 +++ .../tech/pegasys/teku/kzg/CKZG4844Utils.java | 14 +- .../main/java/tech/pegasys/teku/kzg/KZG.java | 40 +- .../java/tech/pegasys/teku/kzg/KZGCell.java | 28 ++ .../pegasys/teku/kzg/KZGCellAndProof.java | 16 + .../java/tech/pegasys/teku/kzg/KZGCellID.java | 27 ++ .../pegasys/teku/kzg/KZGCellWithColumnId.java | 21 + .../tech/pegasys/teku/kzg/KZGException.java | 4 + .../java/tech/pegasys/teku/kzg/KZGProof.java | 16 +- .../java/tech/pegasys/teku/kzg/RustKZG.java | 147 +++++++ .../tech/pegasys/teku/kzg/RustWithCKZG.java | 122 ++++++ .../tech/pegasys/teku/kzg/CKZG4844Test.java | 281 +------------- .../pegasys/teku/kzg/KZGAbstractTest.java | 360 ++++++++++++++++++ .../tech/pegasys/teku/kzg/RustKZGTest.java | 105 +++++ .../pegasys/teku/kzg/RustWithCKZGTest.java | 20 + .../teku/kzg/KZGAbstractBenchmark.java | 58 +++ .../beaconchain/BeaconChainController.java | 2 +- .../teku/cli/options/Eth2NetworkOptions.java | 14 +- .../cli/options/Eth2NetworkOptionsTest.java | 12 + 25 files changed, 1086 insertions(+), 299 deletions(-) create mode 100644 infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCell.java create mode 100644 infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellAndProof.java create mode 100644 infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellID.java create mode 100644 infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellWithColumnId.java create mode 100644 infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustKZG.java create mode 100644 infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustWithCKZG.java create mode 100644 infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/KZGAbstractTest.java create mode 100644 infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/RustKZGTest.java create mode 100644 infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/RustWithCKZGTest.java create mode 100644 infrastructure/kzg/src/testFixtures/java/tech/pegasys/teku/kzg/KZGAbstractBenchmark.java diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/KzgRetriever.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/KzgRetriever.java index 76769d65a4f..a21514a1cb5 100644 --- a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/KzgRetriever.java +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/KzgRetriever.java @@ -25,10 +25,11 @@ public class KzgRetriever { private static final Map TRUSTED_SETUP_FILES_BY_NETWORK = Maps.newHashMap(); public static KZG getKzgWithLoadedTrustedSetup(final Spec spec, final String network) { - if (!spec.isMilestoneSupported(SpecMilestone.DENEB)) { - return KZG.NOOP; + if (spec.isMilestoneSupported(SpecMilestone.DENEB) + || spec.isMilestoneSupported(SpecMilestone.ELECTRA)) { + return getKzgWithLoadedTrustedSetup(network); } - return getKzgWithLoadedTrustedSetup(network); + return KZG.NOOP; } public static KZG getKzgWithLoadedTrustedSetup(final String network) { @@ -43,7 +44,7 @@ public static KZG getKzgWithLoadedTrustedSetup(final String network) { () -> new IllegalArgumentException( "No trusted setup configured for " + network))); - final KZG kzg = KZG.getInstance(); + final KZG kzg = KZG.getInstance(false); kzg.loadTrustedSetup(trustedSetupFile); return kzg; } diff --git a/ethereum/networks/src/main/java/tech/pegasys/teku/networks/Eth2NetworkConfiguration.java b/ethereum/networks/src/main/java/tech/pegasys/teku/networks/Eth2NetworkConfiguration.java index c2e4112bb1f..006d377913c 100644 --- a/ethereum/networks/src/main/java/tech/pegasys/teku/networks/Eth2NetworkConfiguration.java +++ b/ethereum/networks/src/main/java/tech/pegasys/teku/networks/Eth2NetworkConfiguration.java @@ -71,6 +71,8 @@ public class Eth2NetworkConfiguration { public static final int DEFAULT_ASYNC_P2P_MAX_QUEUE = DEFAULT_MAX_QUEUE_SIZE; + public static final boolean DEFAULT_RUST_KZG_ENABLED = false; + // at least 5, but happily up to 12 public static final int DEFAULT_VALIDATOR_EXECUTOR_THREADS = Math.max(5, Math.min(Runtime.getRuntime().availableProcessors(), 12)); @@ -114,6 +116,7 @@ public class Eth2NetworkConfiguration { private final boolean forkChoiceLateBlockReorgEnabled; private final boolean forkChoiceUpdatedAlwaysSendPayloadAttributes; private final int pendingAttestationsMaxQueue; + private final boolean rustKzgEnabled; private Eth2NetworkConfiguration( final Spec spec, @@ -141,7 +144,8 @@ private Eth2NetworkConfiguration( final int asyncBeaconChainMaxQueue, final boolean forkChoiceLateBlockReorgEnabled, final boolean forkChoiceUpdatedAlwaysSendPayloadAttributes, - final int pendingAttestationsMaxQueue) { + final int pendingAttestationsMaxQueue, + final boolean rustKzgEnabled) { this.spec = spec; this.constants = constants; this.stateBoostrapConfig = stateBoostrapConfig; @@ -172,6 +176,7 @@ private Eth2NetworkConfiguration( this.forkChoiceUpdatedAlwaysSendPayloadAttributes = forkChoiceUpdatedAlwaysSendPayloadAttributes; this.pendingAttestationsMaxQueue = pendingAttestationsMaxQueue; + this.rustKzgEnabled = rustKzgEnabled; LOG.debug( "P2P async queue - {} threads, max queue size {} ", asyncP2pMaxThreads, asyncP2pMaxQueue); @@ -293,6 +298,10 @@ public boolean isForkChoiceUpdatedAlwaysSendPayloadAttributes() { return forkChoiceUpdatedAlwaysSendPayloadAttributes; } + public boolean isRustKzgEnabled() { + return rustKzgEnabled; + } + @Override public String toString() { return constants; @@ -316,6 +325,7 @@ public boolean equals(final Object o) { && forkChoiceLateBlockReorgEnabled == that.forkChoiceLateBlockReorgEnabled && forkChoiceUpdatedAlwaysSendPayloadAttributes == that.forkChoiceUpdatedAlwaysSendPayloadAttributes + && rustKzgEnabled == that.rustKzgEnabled && Objects.equals(spec, that.spec) && Objects.equals(constants, that.constants) && Objects.equals(stateBoostrapConfig, that.stateBoostrapConfig) @@ -362,7 +372,8 @@ public int hashCode() { asyncBeaconChainMaxQueue, asyncP2pMaxQueue, forkChoiceLateBlockReorgEnabled, - forkChoiceUpdatedAlwaysSendPayloadAttributes); + forkChoiceUpdatedAlwaysSendPayloadAttributes, + rustKzgEnabled); } public static class Builder { @@ -400,6 +411,7 @@ public static class Builder { private boolean forkChoiceUpdatedAlwaysSendPayloadAttributes = DEFAULT_FORK_CHOICE_UPDATED_ALWAYS_SEND_PAYLOAD_ATTRIBUTES; private OptionalInt pendingAttestationsMaxQueue = OptionalInt.empty(); + private boolean rustKzgEnabled = DEFAULT_RUST_KZG_ENABLED; public void spec(final Spec spec) { this.spec = spec; @@ -498,7 +510,8 @@ public Eth2NetworkConfiguration build() { asyncBeaconChainMaxQueue.orElse(DEFAULT_ASYNC_BEACON_CHAIN_MAX_QUEUE), forkChoiceLateBlockReorgEnabled, forkChoiceUpdatedAlwaysSendPayloadAttributes, - pendingAttestationsMaxQueue.orElse(DEFAULT_MAX_QUEUE_PENDING_ATTESTATIONS)); + pendingAttestationsMaxQueue.orElse(DEFAULT_MAX_QUEUE_PENDING_ATTESTATIONS), + rustKzgEnabled); } private void validateCommandLineParameters() { @@ -737,6 +750,11 @@ public Builder epochsStoreBlobs(final String epochsStoreBlobs) { return this; } + public Builder rustKzgEnabled(final boolean rustKzgEnabled) { + this.rustKzgEnabled = rustKzgEnabled; + return this; + } + public Builder applyNetworkDefaults(final String networkName) { Eth2Network.fromStringLenient(networkName) .ifPresentOrElse( diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/executionlayer/ExecutionLayerChannelStub.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/executionlayer/ExecutionLayerChannelStub.java index afa7a669b57..7e9af041716 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/executionlayer/ExecutionLayerChannelStub.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/executionlayer/ExecutionLayerChannelStub.java @@ -124,7 +124,7 @@ public ExecutionLayerChannelStub( final KZG kzg; if (spec.isMilestoneSupported(SpecMilestone.DENEB)) { // trusted setup loading will be handled by the BeaconChainController - kzg = KZG.getInstance(); + kzg = KZG.getInstance(false); } else { kzg = KZG.NOOP; } diff --git a/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/logic/versions/deneb/helpers/KzgResolver.java b/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/logic/versions/deneb/helpers/KzgResolver.java index 305b7d37f01..c4150c8a0f1 100644 --- a/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/logic/versions/deneb/helpers/KzgResolver.java +++ b/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/logic/versions/deneb/helpers/KzgResolver.java @@ -51,7 +51,7 @@ private KZG getKzgWithTrustedSetup() { private static class KzgAutoLoadFree implements Store.CloseOnReset { - private final KZG kzg = KZG.getInstance(); + private final KZG kzg = KZG.getInstance(false); private KzgAutoLoadFree() { TrustedSetupLoader.loadTrustedSetupForTests(kzg); diff --git a/gradle/versions.gradle b/gradle/versions.gradle index 05db206741f..f5e690f1bd0 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -35,6 +35,7 @@ dependencyManagement { dependency 'io.libp2p:jvm-libp2p:1.2.2-RELEASE' dependency 'tech.pegasys:jblst:0.3.12' dependency 'io.consensys.protocols:jc-kzg-4844:2.1.1' + dependency 'io.github.crate-crypto:java-eth-kzg:0.5.2' dependency 'org.hdrhistogram:HdrHistogram:2.2.2' diff --git a/infrastructure/kzg/build.gradle b/infrastructure/kzg/build.gradle index 2da0808d1b1..66a8b08f7fc 100644 --- a/infrastructure/kzg/build.gradle +++ b/infrastructure/kzg/build.gradle @@ -5,6 +5,7 @@ dependencies { implementation 'io.consensys.tuweni:tuweni-bytes' implementation 'io.consensys.tuweni:tuweni-ssz' implementation 'io.consensys.protocols:jc-kzg-4844' + implementation "io.github.crate-crypto:java-eth-kzg" implementation 'commons-io:commons-io' testFixturesImplementation 'com.google.guava:guava' diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844.java index 16a417918ae..ca973616fea 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844.java @@ -13,9 +13,14 @@ package tech.pegasys.teku.kzg; +import static ethereum.ckzg4844.CKZG4844JNI.BYTES_PER_CELL; +import static ethereum.ckzg4844.CKZG4844JNI.BYTES_PER_COMMITMENT; + import ethereum.ckzg4844.CKZG4844JNI; +import ethereum.ckzg4844.CellsAndProofs; import java.util.List; import java.util.Optional; +import java.util.stream.IntStream; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes; @@ -149,4 +154,58 @@ public KZGProof computeBlobKzgProof(final Bytes blob, final KZGCommitment kzgCom "Failed to compute KZG proof for blob with commitment " + kzgCommitment, ex); } } + + @Override + public List computeCellsAndProofs(final Bytes blob) { + final CellsAndProofs cellsAndProofs = + CKZG4844JNI.computeCellsAndKzgProofs(blob.toArrayUnsafe()); + final List cells = KZGCell.splitBytes(Bytes.wrap(cellsAndProofs.getCells())); + final List proofs = KZGProof.splitBytes(Bytes.wrap(cellsAndProofs.getProofs())); + if (cells.size() != proofs.size()) { + throw new KZGException("Cells and proofs size differ"); + } + return IntStream.range(0, cells.size()) + .mapToObj(i -> new KZGCellAndProof(cells.get(i), proofs.get(i))) + .toList(); + } + + @Override + public boolean verifyCellProofBatch( + final List commitments, + final List cellWithIdList, + final List proofs) { + if (commitments.size() != cellWithIdList.size() || cellWithIdList.size() != proofs.size()) { + throw new KZGException("Cells, proofs and commitments sizes should match"); + } + return CKZG4844JNI.verifyCellKzgProofBatch( + CKZG4844Utils.flattenBytes( + commitments.stream() + .map(kzgCommitment -> (Bytes) kzgCommitment.getBytesCompressed()) + .toList(), + commitments.size() * BYTES_PER_COMMITMENT), + cellWithIdList.stream() + .mapToLong(cellWithIds -> cellWithIds.columnId().id().longValue()) + .toArray(), + CKZG4844Utils.flattenBytes( + cellWithIdList.stream().map(cellWithIds -> cellWithIds.cell().bytes()).toList(), + cellWithIdList.size() * BYTES_PER_CELL), + CKZG4844Utils.flattenProofs(proofs)); + } + + @Override + public List recoverCellsAndProofs(final List cells) { + final long[] cellIds = cells.stream().mapToLong(c -> c.columnId().id().longValue()).toArray(); + final byte[] cellBytes = + CKZG4844Utils.flattenBytes( + cells.stream().map(c -> c.cell().bytes()).toList(), cells.size() * BYTES_PER_CELL); + final CellsAndProofs cellsAndProofs = CKZG4844JNI.recoverCellsAndKzgProofs(cellIds, cellBytes); + final List fullCells = KZGCell.splitBytes(Bytes.wrap(cellsAndProofs.getCells())); + final List fullProofs = KZGProof.splitBytes(Bytes.wrap(cellsAndProofs.getProofs())); + if (fullCells.size() != fullProofs.size()) { + throw new KZGException("Cells and proofs size differ"); + } + return IntStream.range(0, fullCells.size()) + .mapToObj(i -> new KZGCellAndProof(fullCells.get(i), fullProofs.get(i))) + .toList(); + } } diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844Utils.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844Utils.java index 14fe464db20..a347a87ebcb 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844Utils.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844Utils.java @@ -27,12 +27,12 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Function; +import java.util.stream.IntStream; import org.apache.tuweni.bytes.Bytes; import tech.pegasys.teku.infrastructure.http.UrlSanitizer; import tech.pegasys.teku.infrastructure.io.resource.ResourceLoader; class CKZG4844Utils { - private static final int MAX_BYTES_TO_FLATTEN = 100_663_296; // ~100.66 MB or 768 blobs public static byte[] flattenBlobs(final List blobs) { @@ -59,6 +59,16 @@ public static byte[] flattenG2Points(final List g2Points) { return flattenBytes(g2Points, BYTES_PER_G2 * g2Points.size()); } + static List bytesChunked(final Bytes bytes, final int chunkSize) { + if (bytes.size() % chunkSize != 0) { + throw new IllegalArgumentException("Invalid bytes size: " + bytes.size()); + } + return IntStream.range(0, bytes.size() / chunkSize) + .map(i -> i * chunkSize) + .mapToObj(startIdx -> bytes.slice(startIdx, chunkSize)) + .toList(); + } + public static TrustedSetup parseTrustedSetupFile(final String trustedSetupFile) throws IOException { final String sanitizedTrustedSetup = UrlSanitizer.sanitizePotentialUrl(trustedSetupFile); @@ -99,7 +109,7 @@ public static TrustedSetup parseTrustedSetupFile(final String trustedSetupFile) } } - private static byte[] flattenBytes(final List toFlatten, final int expectedSize) { + static byte[] flattenBytes(final List toFlatten, final int expectedSize) { return flattenBytes(toFlatten, Bytes::toArrayUnsafe, expectedSize); } diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZG.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZG.java index ac62d177177..86e86507f7d 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZG.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZG.java @@ -13,6 +13,7 @@ package tech.pegasys.teku.kzg; +import java.math.BigInteger; import java.util.List; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes48; @@ -22,12 +23,16 @@ * entry-point for all KZG operations in Teku. */ public interface KZG { - + BigInteger BLS_MODULUS = + new BigInteger( + "52435875175126190479447740508185965837690552500527637822603658699938581184513"); int BYTES_PER_G1 = 48; int BYTES_PER_G2 = 96; + int CELLS_PER_EXT_BLOB = 128; + int FIELD_ELEMENTS_PER_BLOB = 4096; - static KZG getInstance() { - return CKZG4844.getInstance(); + static KZG getInstance(final boolean rustKzgEnabled) { + return rustKzgEnabled ? RustWithCKZG.getInstance() : CKZG4844.getInstance(); } KZG NOOP = @@ -65,6 +70,24 @@ public KZGProof computeBlobKzgProof(final Bytes blob, final KZGCommitment kzgCom throws KZGException { return KZGProof.fromBytesCompressed(Bytes48.ZERO); } + + @Override + public List computeCellsAndProofs(Bytes blob) { + throw new RuntimeException("Not implemented"); + } + + @Override + public boolean verifyCellProofBatch( + List commitments, + List cellWithIDs, + List proofs) { + return false; + } + + @Override + public List recoverCellsAndProofs(List cells) { + throw new RuntimeException("Not implemented"); + } }; void loadTrustedSetup(String trustedSetupFile) throws KZGException; @@ -81,4 +104,15 @@ boolean verifyBlobKzgProofBatch( KZGCommitment blobToKzgCommitment(Bytes blob) throws KZGException; KZGProof computeBlobKzgProof(Bytes blob, KZGCommitment kzgCommitment) throws KZGException; + + // Fulu PeerDAS methods + + List computeCellsAndProofs(Bytes blob); + + boolean verifyCellProofBatch( + List commitments, + List cellWithIDs, + List proofs); + + List recoverCellsAndProofs(List cells); } diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCell.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCell.java new file mode 100644 index 00000000000..fea47abab49 --- /dev/null +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCell.java @@ -0,0 +1,28 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +import static ethereum.ckzg4844.CKZG4844JNI.BYTES_PER_CELL; + +import java.util.List; +import org.apache.tuweni.bytes.Bytes; + +public record KZGCell(Bytes bytes) { + + static final KZGCell ZERO = new KZGCell(Bytes.wrap(new byte[BYTES_PER_CELL])); + + static List splitBytes(final Bytes bytes) { + return CKZG4844Utils.bytesChunked(bytes, BYTES_PER_CELL).stream().map(KZGCell::new).toList(); + } +} diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellAndProof.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellAndProof.java new file mode 100644 index 00000000000..6f62a30ffd3 --- /dev/null +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellAndProof.java @@ -0,0 +1,16 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +public record KZGCellAndProof(KZGCell cell, KZGProof proof) {} diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellID.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellID.java new file mode 100644 index 00000000000..80269c77d36 --- /dev/null +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellID.java @@ -0,0 +1,27 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +import tech.pegasys.teku.infrastructure.unsigned.UInt64; + +public record KZGCellID(UInt64 id) { + + public static KZGCellID fromCellColumnIndex(final int idx) { + return new KZGCellID(UInt64.valueOf(idx)); + } + + int getColumnIndex() { + return id.intValue(); + } +} diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellWithColumnId.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellWithColumnId.java new file mode 100644 index 00000000000..14a7c3d9f65 --- /dev/null +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGCellWithColumnId.java @@ -0,0 +1,21 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +public record KZGCellWithColumnId(KZGCell cell, KZGCellID columnId) { + + public static KZGCellWithColumnId fromCellAndColumn(final KZGCell cell, final int columnIndex) { + return new KZGCellWithColumnId(cell, KZGCellID.fromCellColumnIndex(columnIndex)); + } +} diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGException.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGException.java index 3aa2dbbd318..ff4d16b968b 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGException.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGException.java @@ -18,4 +18,8 @@ public class KZGException extends RuntimeException { public KZGException(final String message, final Throwable cause) { super(message, cause); } + + public KZGException(final String message) { + super(message); + } } diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGProof.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGProof.java index 6b7402d9d45..e5f75e02824 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGProof.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZGProof.java @@ -14,8 +14,9 @@ package tech.pegasys.teku.kzg; import static com.google.common.base.Preconditions.checkArgument; +import static ethereum.ckzg4844.CKZG4844JNI.BYTES_PER_PROOF; -import ethereum.ckzg4844.CKZG4844JNI; +import java.util.List; import java.util.Objects; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes48; @@ -29,12 +30,11 @@ public static KZGProof fromHexString(final String hexString) { public static KZGProof fromSSZBytes(final Bytes bytes) { checkArgument( - bytes.size() == CKZG4844JNI.BYTES_PER_PROOF, - "Expected " + CKZG4844JNI.BYTES_PER_PROOF + " bytes but received %s.", + bytes.size() == BYTES_PER_PROOF, + "Expected " + BYTES_PER_PROOF + " bytes but received %s.", bytes.size()); return SSZ.decode( - bytes, - reader -> new KZGProof(Bytes48.wrap(reader.readFixedBytes(CKZG4844JNI.BYTES_PER_PROOF)))); + bytes, reader -> new KZGProof(Bytes48.wrap(reader.readFixedBytes(BYTES_PER_PROOF)))); } public static KZGProof fromBytesCompressed(final Bytes48 bytes) throws IllegalArgumentException { @@ -45,6 +45,12 @@ public static KZGProof fromArray(final byte[] bytes) { return fromBytesCompressed(Bytes48.wrap(bytes)); } + static List splitBytes(final Bytes bytes) { + return CKZG4844Utils.bytesChunked(bytes, BYTES_PER_PROOF).stream() + .map(b -> new KZGProof(Bytes48.wrap(b))) + .toList(); + } + private final Bytes48 bytesCompressed; public KZGProof(final Bytes48 bytesCompressed) { diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustKZG.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustKZG.java new file mode 100644 index 00000000000..53489af8b81 --- /dev/null +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustKZG.java @@ -0,0 +1,147 @@ +/* + * Copyright Consensys Software Inc., 2022 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +import com.google.common.collect.Streams; +import ethereum.cryptography.CellsAndProofs; +import ethereum.cryptography.LibEthKZG; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Stream; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.tuweni.bytes.Bytes; +import org.apache.tuweni.bytes.Bytes48; + +/** + * Wrapper around LibPeerDASKZG Rust PeerDAS library + * + *

This class should be a singleton + */ +final class RustKZG implements KZG { + + private static final Logger LOG = LogManager.getLogger(); + private static final int NUMBER_OF_THREADS = 1; + + @SuppressWarnings("NonFinalStaticField") + private static RustKZG instance; + + private LibEthKZG library; + private boolean initialized; + + static synchronized RustKZG getInstance() { + if (instance == null) { + instance = new RustKZG(); + } + return instance; + } + + private RustKZG() {} + + @Override + public synchronized void loadTrustedSetup(final String trustedSetupFile) throws KZGException { + if (!initialized) { + try { + this.library = new LibEthKZG(true, NUMBER_OF_THREADS); + this.initialized = true; + LOG.info("Loaded LibPeerDASKZG library"); + } catch (final Exception ex) { + throw new KZGException("Failed to load LibPeerDASKZG Rust library", ex); + } + } + } + + @Override + public synchronized void freeTrustedSetup() throws KZGException { + if (!initialized) { + throw new KZGException("Trusted setup already freed"); + } + try { + library.close(); + this.initialized = false; + } catch (final Exception ex) { + throw new KZGException("Failed to free trusted setup", ex); + } + } + + @Override + public boolean verifyBlobKzgProof( + final Bytes blob, final KZGCommitment kzgCommitment, final KZGProof kzgProof) + throws KZGException { + throw new RuntimeException("LibPeerDASKZG library doesn't support verifyBlobKzgProof"); + } + + @Override + public boolean verifyBlobKzgProofBatch( + final List blobs, + final List kzgCommitments, + final List kzgProofs) + throws KZGException { + throw new RuntimeException("LibPeerDASKZG library doesn't support verifyBlobKzgProofBatch"); + } + + @Override + public KZGCommitment blobToKzgCommitment(final Bytes blob) throws KZGException { + throw new RuntimeException("LibPeerDASKZG library doesn't support blobToKzgCommitment"); + } + + @Override + public KZGProof computeBlobKzgProof(final Bytes blob, final KZGCommitment kzgCommitment) + throws KZGException { + throw new RuntimeException("LibPeerDASKZG library doesn't support computeBlobKzgProof"); + } + + @Override + public List computeCellsAndProofs(final Bytes blob) { + final CellsAndProofs cellsAndProofs = library.computeCellsAndKZGProofs(blob.toArrayUnsafe()); + final Stream kzgCellStream = + Arrays.stream(cellsAndProofs.getCells()).map(Bytes::wrap).map(KZGCell::new); + + final Stream kzgProofStream = + Arrays.stream(cellsAndProofs.getProofs()).map(Bytes48::wrap).map(KZGProof::new); + + return Streams.zip(kzgCellStream, kzgProofStream, KZGCellAndProof::new).toList(); + } + + @Override + public boolean verifyCellProofBatch( + final List commitments, + final List cellWithIdList, + final List proofs) { + return library.verifyCellKZGProofBatch( + commitments.stream().map(KZGCommitment::toArrayUnsafe).toArray(byte[][]::new), + cellWithIdList.stream() + .mapToLong(cellWithIds -> cellWithIds.columnId().id().longValue()) + .toArray(), + cellWithIdList.stream() + .map(cellWithIds -> cellWithIds.cell().bytes().toArrayUnsafe()) + .toArray(byte[][]::new), + proofs.stream().map(KZGProof::toArrayUnsafe).toArray(byte[][]::new)); + } + + @Override + public List recoverCellsAndProofs(final List cells) { + final long[] cellIds = cells.stream().mapToLong(c -> c.columnId().id().longValue()).toArray(); + final byte[][] cellBytes = + cells.stream().map(c -> c.cell().bytes().toArrayUnsafe()).toArray(byte[][]::new); + final CellsAndProofs cellsAndProofs = library.recoverCellsAndKZGProofs(cellIds, cellBytes); + final byte[][] recoveredCells = cellsAndProofs.getCells(); + final Stream kzgCellStream = + Arrays.stream(recoveredCells).map(Bytes::wrap).map(KZGCell::new); + final byte[][] recoveredProofs = cellsAndProofs.getProofs(); + final Stream kzgProofStream = + Arrays.stream(recoveredProofs).map(Bytes48::wrap).map(KZGProof::new); + return Streams.zip(kzgCellStream, kzgProofStream, KZGCellAndProof::new).toList(); + } +} diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustWithCKZG.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustWithCKZG.java new file mode 100644 index 00000000000..972a5e7693a --- /dev/null +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustWithCKZG.java @@ -0,0 +1,122 @@ +/* + * Copyright Consensys Software Inc., 2022 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +import java.util.List; +import org.apache.tuweni.bytes.Bytes; + +/** + * Rust KZG library with fallback to C-KZG4844 on non-implemented methods (EIP-4844 methods are + * currently not implemented in Rust library) + * + *

This class should be a singleton + */ +final class RustWithCKZG implements KZG { + + @SuppressWarnings("NonFinalStaticField") + private static RustWithCKZG instance; + + private final CKZG4844 ckzg4844Delegate; + private final RustKZG rustKzgDelegeate; + + static synchronized RustWithCKZG getInstance() { + if (instance == null) { + instance = new RustWithCKZG(); + } + return instance; + } + + private RustWithCKZG() { + this.ckzg4844Delegate = CKZG4844.getInstance(); + this.rustKzgDelegeate = RustKZG.getInstance(); + } + + @Override + public synchronized void loadTrustedSetup(final String trustedSetupFile) throws KZGException { + ckzg4844Delegate.loadTrustedSetup(trustedSetupFile); + rustKzgDelegeate.loadTrustedSetup(trustedSetupFile); + } + + @Override + public synchronized void freeTrustedSetup() throws KZGException { + KZGException ckzg4844DelegateException = null; + try { + ckzg4844Delegate.freeTrustedSetup(); + } catch (final KZGException ex) { + ckzg4844DelegateException = ex; + } + KZGException rustKzgDelegateException = null; + try { + rustKzgDelegeate.freeTrustedSetup(); + } catch (final KZGException ex) { + rustKzgDelegateException = ex; + } + if (ckzg4844DelegateException != null || rustKzgDelegateException != null) { + if (ckzg4844DelegateException != null && rustKzgDelegateException != null) { + throw new KZGException( + "RustKZG and CKZG4844 libraries failed to free trusted setup", + ckzg4844DelegateException); + } else if (ckzg4844DelegateException != null) { + throw ckzg4844DelegateException; + } else { + throw rustKzgDelegateException; + } + } + } + + @Override + public boolean verifyBlobKzgProof( + final Bytes blob, final KZGCommitment kzgCommitment, final KZGProof kzgProof) + throws KZGException { + return ckzg4844Delegate.verifyBlobKzgProof(blob, kzgCommitment, kzgProof); + } + + @Override + public boolean verifyBlobKzgProofBatch( + final List blobs, + final List kzgCommitments, + final List kzgProofs) + throws KZGException { + return ckzg4844Delegate.verifyBlobKzgProofBatch(blobs, kzgCommitments, kzgProofs); + } + + @Override + public KZGCommitment blobToKzgCommitment(final Bytes blob) throws KZGException { + return ckzg4844Delegate.blobToKzgCommitment(blob); + } + + @Override + public KZGProof computeBlobKzgProof(final Bytes blob, final KZGCommitment kzgCommitment) + throws KZGException { + return ckzg4844Delegate.computeBlobKzgProof(blob, kzgCommitment); + } + + @Override + public List computeCellsAndProofs(final Bytes blob) { + return rustKzgDelegeate.computeCellsAndProofs(blob); + } + + @Override + public boolean verifyCellProofBatch( + final List commitments, + final List cellWithIds, + final List proofs) { + return rustKzgDelegeate.verifyCellProofBatch(commitments, cellWithIds, proofs); + } + + @Override + public List recoverCellsAndProofs(final List cells) { + return rustKzgDelegeate.recoverCellsAndProofs(cells); + } +} diff --git a/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/CKZG4844Test.java b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/CKZG4844Test.java index fb42031aef2..d5fb01b5b61 100644 --- a/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/CKZG4844Test.java +++ b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/CKZG4844Test.java @@ -13,283 +13,8 @@ package tech.pegasys.teku.kzg; -import static ethereum.ckzg4844.CKZG4844JNI.BLS_MODULUS; -import static ethereum.ckzg4844.CKZG4844JNI.BYTES_PER_BLOB; -import static ethereum.ckzg4844.CKZG4844JNI.FIELD_ELEMENTS_PER_BLOB; -import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; -import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat; -import static org.junit.jupiter.api.Assertions.assertThrows; - -import com.google.common.collect.Streams; -import ethereum.ckzg4844.CKZGException; -import ethereum.ckzg4844.CKZGException.CKZGError; -import java.math.BigInteger; -import java.nio.ByteOrder; -import java.util.List; -import java.util.Random; -import java.util.stream.Collectors; -import java.util.stream.IntStream; -import java.util.stream.Stream; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.units.bigints.UInt256; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; -import tech.pegasys.teku.kzg.trusted_setups.TrustedSetupLoader; - -public final class CKZG4844Test { - - private static final int RANDOM_SEED = 5566; - private static final Random RND = new Random(RANDOM_SEED); - - private static final CKZG4844 CKZG = CKZG4844.getInstance(); - - @BeforeEach - public void setUp() { - loadTrustedSetup(); - } - - private static void loadTrustedSetup() { - TrustedSetupLoader.loadTrustedSetupForTests(CKZG); - } - - @AfterAll - public static void cleanUp() throws KZGException { - try { - CKZG.freeTrustedSetup(); - } catch (KZGException ex) { - // NOOP - } - } - - @Test - public void testKzgLoadSameTrustedSetupTwice_shouldNotThrowException() { - loadTrustedSetup(); - } - - @Test - public void testKzgFreeTrustedSetupTwice_shouldThrowException() { - CKZG.freeTrustedSetup(); - assertThrows(KZGException.class, CKZG::freeTrustedSetup); - } - - @Test - public void testUsageWithoutLoadedTrustedSetup_shouldThrowException() { - CKZG.freeTrustedSetup(); - final List exceptions = - List.of( - assertThrows( - KZGException.class, - () -> - CKZG.verifyBlobKzgProofBatch( - List.of(Bytes.fromHexString("0x", BYTES_PER_BLOB)), - List.of(getSampleCommitment()), - List.of(getSampleProof()))), - assertThrows(KZGException.class, () -> CKZG.blobToKzgCommitment(Bytes.EMPTY)), - assertThrows( - KZGException.class, - () -> CKZG.computeBlobKzgProof(Bytes.EMPTY, getSampleCommitment()))); - - assertThat(exceptions) - .allSatisfy( - exception -> assertThat(exception).cause().hasMessage("Trusted Setup is not loaded.")); - } - - @Test - public void testComputingAndVerifyingBatchProofs() { - final int numberOfBlobs = 4; - final List blobs = getSampleBlobs(numberOfBlobs); - final List kzgCommitments = - blobs.stream().map(CKZG::blobToKzgCommitment).collect(Collectors.toList()); - final List kzgProofs = - Streams.zip( - kzgCommitments.stream(), - blobs.stream(), - (kzgCommitment, blob) -> CKZG.computeBlobKzgProof(blob, kzgCommitment)) - .collect(Collectors.toList()); - assertThat(CKZG.verifyBlobKzgProofBatch(blobs, kzgCommitments, kzgProofs)).isTrue(); - - assertThat( - CKZG.verifyBlobKzgProofBatch(getSampleBlobs(numberOfBlobs), kzgCommitments, kzgProofs)) - .isFalse(); - assertThat(CKZG.verifyBlobKzgProofBatch(blobs, getSampleCommitments(numberOfBlobs), kzgProofs)) - .isFalse(); - final List invalidProofs = - getSampleBlobs(numberOfBlobs).stream() - .map((Bytes blob) -> CKZG.computeBlobKzgProof(blob, CKZG.blobToKzgCommitment(blob))) - .collect(Collectors.toList()); - assertThat(CKZG.verifyBlobKzgProofBatch(blobs, kzgCommitments, invalidProofs)).isFalse(); - } - - @Test - public void testVerifyingEmptyBatch() { - assertThat(CKZG.verifyBlobKzgProofBatch(List.of(), List.of(), List.of())).isTrue(); - } - - @Test - public void testComputingAndVerifyingSingleProof() { - final Bytes blob = getSampleBlob(); - final KZGCommitment kzgCommitment = CKZG.blobToKzgCommitment(blob); - final KZGProof kzgProof = CKZG.computeBlobKzgProof(blob, kzgCommitment); - - assertThat(CKZG.verifyBlobKzgProof(blob, kzgCommitment, kzgProof)).isTrue(); - - assertThat(CKZG.verifyBlobKzgProof(getSampleBlob(), kzgCommitment, kzgProof)).isFalse(); - assertThat(CKZG.verifyBlobKzgProof(blob, getSampleCommitment(), kzgProof)).isFalse(); - final Bytes randomBlob = getSampleBlob(); - final KZGProof invalidProof = - CKZG.computeBlobKzgProof(randomBlob, CKZG.blobToKzgCommitment(randomBlob)); - assertThat(CKZG.verifyBlobKzgProof(blob, kzgCommitment, invalidProof)).isFalse(); - } - - @Test - public void testComputingAndVerifyingBatchSingleProof() { - final int numberOfBlobs = 1; - final List blobs = getSampleBlobs(numberOfBlobs); - final List kzgCommitments = - blobs.stream().map(CKZG::blobToKzgCommitment).collect(Collectors.toList()); - final List kzgProofs = - Streams.zip( - kzgCommitments.stream(), - blobs.stream(), - (kzgCommitment, blob) -> CKZG.computeBlobKzgProof(blob, kzgCommitment)) - .collect(Collectors.toList()); - assertThat(kzgProofs.size()).isEqualTo(1); - assertThat(CKZG.verifyBlobKzgProofBatch(blobs, kzgCommitments, kzgProofs)).isTrue(); - - assertThat( - CKZG.verifyBlobKzgProofBatch(getSampleBlobs(numberOfBlobs), kzgCommitments, kzgProofs)) - .isFalse(); - assertThat(CKZG.verifyBlobKzgProofBatch(blobs, getSampleCommitments(numberOfBlobs), kzgProofs)) - .isFalse(); - final List invalidProofs = - getSampleBlobs(numberOfBlobs).stream() - .map((Bytes blob) -> CKZG.computeBlobKzgProof(blob, CKZG.blobToKzgCommitment(blob))) - .collect(Collectors.toList()); - assertThat(CKZG.verifyBlobKzgProofBatch(blobs, kzgCommitments, invalidProofs)).isFalse(); - } - - @Test - public void testVerifyingBatchProofsThrowsIfSizesDoesntMatch() { - final int numberOfBlobs = 4; - final List blobs = getSampleBlobs(numberOfBlobs); - final List kzgCommitments = - blobs.stream().map(CKZG::blobToKzgCommitment).collect(Collectors.toList()); - final List kzgProofs = - Streams.zip( - kzgCommitments.stream(), - blobs.stream(), - (kzgCommitment, blob) -> CKZG.computeBlobKzgProof(blob, kzgCommitment)) - .collect(Collectors.toList()); - final KZGException kzgException1 = - assertThrows( - KZGException.class, - () -> CKZG.verifyBlobKzgProofBatch(blobs, kzgCommitments, List.of(kzgProofs.get(0)))); - final KZGException kzgException2 = - assertThrows( - KZGException.class, - () -> CKZG.verifyBlobKzgProofBatch(blobs, List.of(kzgCommitments.get(0)), kzgProofs)); - final KZGException kzgException3 = - assertThrows( - KZGException.class, - () -> CKZG.verifyBlobKzgProofBatch(List.of(blobs.get(0)), kzgCommitments, kzgProofs)); - - Stream.of(kzgException1, kzgException2, kzgException3) - .forEach( - ex -> - assertThat(ex) - .cause() - .isInstanceOf(CKZGException.class) - .hasMessageMatching( - "Invalid .+ size. Expected \\d+ bytes but got \\d+. \\(C_KZG_BADARGS\\)")); - } - - @ParameterizedTest(name = "blob={0}") - @ValueSource( - strings = { - "0x0d2024ece3e004271319699b8b00cc010628b6bc0be5457f031fb1db0afd3ff8", - "0x", - "0x925668a49d06f4" - }) - public void testComputingProofWithIncorrectLengthBlobDoesNotCauseSegfault(final String blobHex) { - final Bytes blob = Bytes.fromHexString(blobHex); - - final KZGException kzgException = - assertThrows( - KZGException.class, - () -> CKZG.computeBlobKzgProof(blob, CKZG.blobToKzgCommitment(blob))); - - assertThat(kzgException) - .cause() - .satisfies( - cause -> { - // non-canonical blobs - assertThat(cause).isInstanceOf(CKZGException.class); - final CKZGException cryptoException = (CKZGException) cause; - assertThat(cryptoException.getError()).isEqualTo(CKZGError.C_KZG_BADARGS); - assertThat(cryptoException.getErrorMessage()) - .contains("Invalid blob size. Expected 131072 bytes but got"); - }); - } - - @ParameterizedTest(name = "trusted_setup={0}") - @ValueSource( - strings = { - "broken/trusted_setup_g1_length.txt", - "broken/trusted_setup_g2_length.txt", - "broken/trusted_setup_g2_bytesize.txt" - }) - public void incorrectTrustedSetupFilesShouldThrow(final String filename) { - final Throwable cause = - assertThrows( - KZGException.class, - () -> CKZG.loadTrustedSetup(TrustedSetupLoader.getTrustedSetupFile(filename))) - .getCause(); - assertThat(cause.getMessage()).contains("Failed to parse trusted setup file"); - } - - @Test - public void testInvalidLengthG2PointInNewTrustedSetup() { - assertThatThrownBy( - () -> new TrustedSetup(List.of(), List.of(Bytes.fromHexString("")), List.of())) - .isInstanceOf(IllegalArgumentException.class) - .hasMessage("Expected G2 point to be 96 bytes"); - } - - private List getSampleBlobs(final int count) { - return IntStream.range(0, count).mapToObj(__ -> getSampleBlob()).collect(Collectors.toList()); - } - - private Bytes getSampleBlob() { - return IntStream.range(0, FIELD_ELEMENTS_PER_BLOB) - .mapToObj(__ -> randomBLSFieldElement()) - .map(fieldElement -> Bytes.wrap(fieldElement.toArray(ByteOrder.BIG_ENDIAN))) - .reduce(Bytes::wrap) - .orElse(Bytes.EMPTY); - } - - private List getSampleCommitments(final int count) { - return IntStream.range(0, count) - .mapToObj(__ -> getSampleCommitment()) - .collect(Collectors.toList()); - } - - private KZGCommitment getSampleCommitment() { - return CKZG.blobToKzgCommitment(getSampleBlob()); - } - - private KZGProof getSampleProof() { - return CKZG.computeBlobKzgProof(getSampleBlob(), getSampleCommitment()); - } - - private UInt256 randomBLSFieldElement() { - while (true) { - final BigInteger attempt = new BigInteger(BLS_MODULUS.bitLength(), RND); - if (attempt.compareTo(BLS_MODULUS) < 0) { - return UInt256.valueOf(attempt); - } - } +public final class CKZG4844Test extends KZGAbstractTest { + public CKZG4844Test() { + super(CKZG4844.getInstance()); } } diff --git a/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/KZGAbstractTest.java b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/KZGAbstractTest.java new file mode 100644 index 00000000000..6bb2cde9432 --- /dev/null +++ b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/KZGAbstractTest.java @@ -0,0 +1,360 @@ +/* + * Copyright Consensys Software Inc., 2022 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +import static ethereum.ckzg4844.CKZG4844JNI.BYTES_PER_BLOB; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; +import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static tech.pegasys.teku.kzg.KZG.BLS_MODULUS; +import static tech.pegasys.teku.kzg.KZG.CELLS_PER_EXT_BLOB; +import static tech.pegasys.teku.kzg.KZG.FIELD_ELEMENTS_PER_BLOB; + +import com.google.common.collect.Streams; +import ethereum.ckzg4844.CKZGException; +import ethereum.ckzg4844.CKZGException.CKZGError; +import java.math.BigInteger; +import java.nio.ByteOrder; +import java.util.List; +import java.util.Random; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import java.util.stream.Stream; +import org.apache.tuweni.bytes.Bytes; +import org.apache.tuweni.units.bigints.UInt256; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; +import tech.pegasys.teku.kzg.trusted_setups.TrustedSetupLoader; + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +public abstract class KZGAbstractTest { + + private static final int RANDOM_SEED = 5566; + private static final Random RND = new Random(RANDOM_SEED); + + protected final KZG kzg; + + protected KZGAbstractTest(final KZG instance) { + kzg = instance; + } + + @BeforeEach + public void setUp() { + loadTrustedSetup(); + } + + private void loadTrustedSetup() { + TrustedSetupLoader.loadTrustedSetupForTests(kzg); + } + + @AfterAll + public void cleanUp() throws KZGException { + try { + kzg.freeTrustedSetup(); + } catch (KZGException ex) { + // NOOP + } + } + + @Test + public void testKzgLoadSameTrustedSetupTwice_shouldNotThrowException() { + loadTrustedSetup(); + } + + @Test + public void testKzgFreeTrustedSetupTwice_shouldThrowException() { + kzg.freeTrustedSetup(); + assertThrows(KZGException.class, kzg::freeTrustedSetup); + } + + @Test + public void testUsageWithoutLoadedTrustedSetup_shouldThrowException() { + kzg.freeTrustedSetup(); + final List exceptions = + List.of( + assertThrows( + KZGException.class, + () -> + kzg.verifyBlobKzgProofBatch( + List.of(Bytes.fromHexString("0x", BYTES_PER_BLOB)), + List.of(getSampleCommitment()), + List.of(getSampleProof()))), + assertThrows(KZGException.class, () -> kzg.blobToKzgCommitment(Bytes.EMPTY)), + assertThrows( + KZGException.class, + () -> kzg.computeBlobKzgProof(Bytes.EMPTY, getSampleCommitment()))); + + assertThat(exceptions) + .allSatisfy( + exception -> assertThat(exception).cause().hasMessage("Trusted Setup is not loaded.")); + } + + @Test + public void testComputingAndVerifyingBatchProofs() { + final int numberOfBlobs = 4; + final List blobs = getSampleBlobs(numberOfBlobs); + final List kzgCommitments = + blobs.stream().map(kzg::blobToKzgCommitment).collect(Collectors.toList()); + final List kzgProofs = + Streams.zip( + kzgCommitments.stream(), + blobs.stream(), + (kzgCommitment, blob) -> kzg.computeBlobKzgProof(blob, kzgCommitment)) + .collect(Collectors.toList()); + assertThat(kzg.verifyBlobKzgProofBatch(blobs, kzgCommitments, kzgProofs)).isTrue(); + + assertThat( + kzg.verifyBlobKzgProofBatch(getSampleBlobs(numberOfBlobs), kzgCommitments, kzgProofs)) + .isFalse(); + assertThat(kzg.verifyBlobKzgProofBatch(blobs, getSampleCommitments(numberOfBlobs), kzgProofs)) + .isFalse(); + final List invalidProofs = + getSampleBlobs(numberOfBlobs).stream() + .map((Bytes blob) -> kzg.computeBlobKzgProof(blob, kzg.blobToKzgCommitment(blob))) + .collect(Collectors.toList()); + assertThat(kzg.verifyBlobKzgProofBatch(blobs, kzgCommitments, invalidProofs)).isFalse(); + } + + @Test + public void testVerifyingEmptyBatch() { + assertThat(kzg.verifyBlobKzgProofBatch(List.of(), List.of(), List.of())).isTrue(); + } + + @Test + public void testComputingAndVerifyingSingleProof() { + final Bytes blob = getSampleBlob(); + final KZGCommitment kzgCommitment = kzg.blobToKzgCommitment(blob); + final KZGProof kzgProof = kzg.computeBlobKzgProof(blob, kzgCommitment); + + assertThat(kzg.verifyBlobKzgProof(blob, kzgCommitment, kzgProof)).isTrue(); + + assertThat(kzg.verifyBlobKzgProof(getSampleBlob(), kzgCommitment, kzgProof)).isFalse(); + assertThat(kzg.verifyBlobKzgProof(blob, getSampleCommitment(), kzgProof)).isFalse(); + final Bytes randomBlob = getSampleBlob(); + final KZGProof invalidProof = + kzg.computeBlobKzgProof(randomBlob, kzg.blobToKzgCommitment(randomBlob)); + assertThat(kzg.verifyBlobKzgProof(blob, kzgCommitment, invalidProof)).isFalse(); + } + + @Test + public void testComputingAndVerifyingBatchSingleProof() { + final int numberOfBlobs = 1; + final List blobs = getSampleBlobs(numberOfBlobs); + final List kzgCommitments = + blobs.stream().map(kzg::blobToKzgCommitment).collect(Collectors.toList()); + final List kzgProofs = + Streams.zip( + kzgCommitments.stream(), + blobs.stream(), + (kzgCommitment, blob) -> kzg.computeBlobKzgProof(blob, kzgCommitment)) + .collect(Collectors.toList()); + assertThat(kzgProofs.size()).isEqualTo(1); + assertThat(kzg.verifyBlobKzgProofBatch(blobs, kzgCommitments, kzgProofs)).isTrue(); + + assertThat( + kzg.verifyBlobKzgProofBatch(getSampleBlobs(numberOfBlobs), kzgCommitments, kzgProofs)) + .isFalse(); + assertThat(kzg.verifyBlobKzgProofBatch(blobs, getSampleCommitments(numberOfBlobs), kzgProofs)) + .isFalse(); + final List invalidProofs = + getSampleBlobs(numberOfBlobs).stream() + .map((Bytes blob) -> kzg.computeBlobKzgProof(blob, kzg.blobToKzgCommitment(blob))) + .collect(Collectors.toList()); + assertThat(kzg.verifyBlobKzgProofBatch(blobs, kzgCommitments, invalidProofs)).isFalse(); + } + + @Test + public void testVerifyingBatchProofsThrowsIfSizesDoesntMatch() { + final int numberOfBlobs = 4; + final List blobs = getSampleBlobs(numberOfBlobs); + final List kzgCommitments = + blobs.stream().map(kzg::blobToKzgCommitment).collect(Collectors.toList()); + final List kzgProofs = + Streams.zip( + kzgCommitments.stream(), + blobs.stream(), + (kzgCommitment, blob) -> kzg.computeBlobKzgProof(blob, kzgCommitment)) + .collect(Collectors.toList()); + final KZGException kzgException1 = + assertThrows( + KZGException.class, + () -> kzg.verifyBlobKzgProofBatch(blobs, kzgCommitments, List.of(kzgProofs.get(0)))); + final KZGException kzgException2 = + assertThrows( + KZGException.class, + () -> kzg.verifyBlobKzgProofBatch(blobs, List.of(kzgCommitments.get(0)), kzgProofs)); + final KZGException kzgException3 = + assertThrows( + KZGException.class, + () -> kzg.verifyBlobKzgProofBatch(List.of(blobs.get(0)), kzgCommitments, kzgProofs)); + + Stream.of(kzgException1, kzgException2, kzgException3) + .forEach( + ex -> + assertThat(ex) + .cause() + .isInstanceOf(CKZGException.class) + .hasMessageMatching( + "Invalid .+ size. Expected \\d+ bytes but got \\d+. \\(C_KZG_BADARGS\\)")); + } + + @ParameterizedTest(name = "blob={0}") + @ValueSource( + strings = { + "0x0d2024ece3e004271319699b8b00cc010628b6bc0be5457f031fb1db0afd3ff8", + "0x", + "0x925668a49d06f4" + }) + public void testComputingProofWithIncorrectLengthBlobDoesNotCauseSegfault(final String blobHex) { + final Bytes blob = Bytes.fromHexString(blobHex); + + final KZGException kzgException = + assertThrows( + KZGException.class, () -> kzg.computeBlobKzgProof(blob, kzg.blobToKzgCommitment(blob))); + + assertThat(kzgException) + .cause() + .satisfies( + cause -> { + // non-canonical blobs + assertThat(cause).isInstanceOf(CKZGException.class); + final CKZGException cryptoException = (CKZGException) cause; + assertThat(cryptoException.getError()).isEqualTo(CKZGError.C_KZG_BADARGS); + assertThat(cryptoException.getErrorMessage()) + .contains("Invalid blob size. Expected 131072 bytes but got"); + }); + } + + @ParameterizedTest(name = "trusted_setup={0}") + @ValueSource( + strings = { + "broken/trusted_setup_g1_length.txt", + "broken/trusted_setup_g2_length.txt", + "broken/trusted_setup_g2_bytesize.txt" + }) + public void incorrectTrustedSetupFilesShouldThrow(final String filename) { + final Throwable cause = + assertThrows( + KZGException.class, + () -> kzg.loadTrustedSetup(TrustedSetupLoader.getTrustedSetupFile(filename))) + .getCause(); + assertThat(cause.getMessage()).contains("Failed to parse trusted setup file"); + } + + @Disabled("das kzg version crashes") + @Test + public void monomialTrustedSetupFilesShouldThrow() { + final KZGException kzgException = + assertThrows( + KZGException.class, + () -> + kzg.loadTrustedSetup( + TrustedSetupLoader.getTrustedSetupFile("trusted_setup_monomial.txt"))); + assertThat(kzgException.getMessage()).contains("Failed to load trusted setup"); + assertThat(kzgException.getCause().getMessage()) + .contains("There was an error while loading the Trusted Setup. (C_KZG_BADARGS)"); + } + + @Test + public void testInvalidLengthG2PointInNewTrustedSetup() { + assertThatThrownBy( + () -> new TrustedSetup(List.of(), List.of(Bytes.fromHexString("")), List.of())) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Expected G2 point to be 96 bytes"); + } + + static final int CELLS_PER_ORIG_BLOB = CELLS_PER_EXT_BLOB / 2; + + @Test + public void testComputeRecoverCellsAndProofs() { + Bytes blob = getSampleBlob(); + List cellAndProofs = kzg.computeCellsAndProofs(blob); + assertThat(cellAndProofs).hasSize(CELLS_PER_EXT_BLOB); + + List cellsToRecover = + IntStream.range(CELLS_PER_ORIG_BLOB, CELLS_PER_EXT_BLOB) + .mapToObj( + i -> + new KZGCellWithColumnId( + cellAndProofs.get(i).cell(), KZGCellID.fromCellColumnIndex(i))) + .toList(); + + List recoveredCells = kzg.recoverCellsAndProofs(cellsToRecover); + assertThat(recoveredCells).isEqualTo(cellAndProofs); + } + + private List getSampleBlobs(final int count) { + return IntStream.range(0, count).mapToObj(__ -> getSampleBlob()).collect(Collectors.toList()); + } + + @Test + public void testComputeAndVerifyCellProof() { + Bytes blob = getSampleBlob(); + List cellAndProofs = kzg.computeCellsAndProofs(blob); + KZGCommitment kzgCommitment = kzg.blobToKzgCommitment(blob); + + for (int i = 0; i < cellAndProofs.size(); i++) { + assertThat( + kzg.verifyCellProofBatch( + List.of(kzgCommitment), + List.of(KZGCellWithColumnId.fromCellAndColumn(cellAndProofs.get(i).cell(), i)), + List.of(cellAndProofs.get(i).proof()))) + .isTrue(); + var invalidProof = cellAndProofs.get((i + 1) % cellAndProofs.size()).proof(); + assertThat( + kzg.verifyCellProofBatch( + List.of(kzgCommitment), + List.of(KZGCellWithColumnId.fromCellAndColumn(cellAndProofs.get(i).cell(), i)), + List.of(invalidProof))) + .isFalse(); + } + } + + Bytes getSampleBlob() { + return IntStream.range(0, FIELD_ELEMENTS_PER_BLOB) + .mapToObj(__ -> randomBLSFieldElement()) + .map(fieldElement -> Bytes.wrap(fieldElement.toArray(ByteOrder.BIG_ENDIAN))) + .reduce(Bytes::wrap) + .orElse(Bytes.EMPTY); + } + + private List getSampleCommitments(final int count) { + return IntStream.range(0, count) + .mapToObj(__ -> getSampleCommitment()) + .collect(Collectors.toList()); + } + + private KZGCommitment getSampleCommitment() { + return kzg.blobToKzgCommitment(getSampleBlob()); + } + + private KZGProof getSampleProof() { + return kzg.computeBlobKzgProof(getSampleBlob(), getSampleCommitment()); + } + + private UInt256 randomBLSFieldElement() { + while (true) { + final BigInteger attempt = new BigInteger(BLS_MODULUS.bitLength(), RND); + if (attempt.compareTo(BLS_MODULUS) < 0) { + return UInt256.valueOf(attempt); + } + } + } +} diff --git a/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/RustKZGTest.java b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/RustKZGTest.java new file mode 100644 index 00000000000..137aa6a8729 --- /dev/null +++ b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/RustKZGTest.java @@ -0,0 +1,105 @@ +/* + * Copyright Consensys Software Inc., 2022 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import org.apache.tuweni.bytes.Bytes; +import org.junit.jupiter.api.Test; + +public final class RustKZGTest extends KZGAbstractTest { + + public RustKZGTest() { + super(RustKZG.getInstance()); + } + + @Test + @Override + @SuppressWarnings("JavaCase") + public void testUsageWithoutLoadedTrustedSetup_shouldThrowException() { + kzg.freeTrustedSetup(); + final Bytes blob = getSampleBlob(); + assertThatThrownBy(() -> kzg.computeCellsAndProofs(blob)) + .isOfAnyClassIn(IllegalStateException.class) + .hasMessageStartingWith("KZG context context has been destroyed"); + } + + @Test + @Override + public void testComputingAndVerifyingBatchProofs() { + assertThatThrownBy(super::testComputingAndVerifyingBatchProofs) + .isOfAnyClassIn(RuntimeException.class) + .hasMessageStartingWith("LibPeerDASKZG library doesn't support"); + } + + @Test + @Override + public void testVerifyingEmptyBatch() { + assertThatThrownBy(super::testVerifyingEmptyBatch) + .isOfAnyClassIn(RuntimeException.class) + .hasMessageStartingWith("LibPeerDASKZG library doesn't support"); + } + + @Test + @Override + public void testComputingAndVerifyingSingleProof() { + assertThatThrownBy(super::testComputingAndVerifyingSingleProof) + .isOfAnyClassIn(RuntimeException.class) + .hasMessageStartingWith("LibPeerDASKZG library doesn't support"); + } + + @Test + @Override + public void testComputingAndVerifyingBatchSingleProof() { + assertThatThrownBy(super::testComputingAndVerifyingBatchSingleProof) + .isOfAnyClassIn(RuntimeException.class) + .hasMessageStartingWith("LibPeerDASKZG library doesn't support"); + } + + @Test + @Override + public void testVerifyingBatchProofsThrowsIfSizesDoesntMatch() { + assertThatThrownBy(super::testVerifyingBatchProofsThrowsIfSizesDoesntMatch) + .isOfAnyClassIn(RuntimeException.class) + .hasMessageStartingWith("LibPeerDASKZG library doesn't support"); + } + + @Override + public void testComputingProofWithIncorrectLengthBlobDoesNotCauseSegfault(final String blobHex) { + // skip, not supported + } + + @Override + public void incorrectTrustedSetupFilesShouldThrow(final String filename) { + // skip, not supported + } + + @Override + public void monomialTrustedSetupFilesShouldThrow() { + // skip, not supported + } + + @Override + public void testInvalidLengthG2PointInNewTrustedSetup() { + // skip, not supported + } + + @Test + @Override + public void testComputeAndVerifyCellProof() { + assertThatThrownBy(super::testComputeAndVerifyCellProof) + .isOfAnyClassIn(RuntimeException.class) + .hasMessageStartingWith("LibPeerDASKZG library doesn't support"); + } +} diff --git a/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/RustWithCKZGTest.java b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/RustWithCKZGTest.java new file mode 100644 index 00000000000..e1bb1b89e58 --- /dev/null +++ b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/RustWithCKZGTest.java @@ -0,0 +1,20 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +public final class RustWithCKZGTest extends KZGAbstractTest { + public RustWithCKZGTest() { + super(RustWithCKZG.getInstance()); + } +} diff --git a/infrastructure/kzg/src/testFixtures/java/tech/pegasys/teku/kzg/KZGAbstractBenchmark.java b/infrastructure/kzg/src/testFixtures/java/tech/pegasys/teku/kzg/KZGAbstractBenchmark.java new file mode 100644 index 00000000000..2a3f4cec5a1 --- /dev/null +++ b/infrastructure/kzg/src/testFixtures/java/tech/pegasys/teku/kzg/KZGAbstractBenchmark.java @@ -0,0 +1,58 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +import java.util.Collections; +import java.util.List; +import tech.pegasys.teku.kzg.trusted_setups.TrustedSetupLoader; + +public class KZGAbstractBenchmark { + private final KZG kzg = KZG.getInstance(false); + + public KZGAbstractBenchmark() { + TrustedSetupLoader.loadTrustedSetupForTests(kzg); + } + + protected KZG getKzg() { + return kzg; + } + + protected void printStats(final List validationTimes) { + int sum = 0; + final int size = validationTimes.size(); + + // Sum of elements + for (int time : validationTimes) { + sum += time; + } + + // Mean + final double mean = (double) sum / size; + System.out.printf("Mean, ms: %.2f%n", mean); + + // Standard Deviation + double sumOfSquares = 0.0; + for (int time : validationTimes) { + sumOfSquares += Math.pow(time - mean, 2); + } + final double standardDeviation = Math.sqrt(sumOfSquares / size); + System.out.printf("Std, ms: %.2f%n", standardDeviation); + + // Min and Max + final int min = Collections.min(validationTimes); + final int max = Collections.max(validationTimes); + System.out.println("Min, ms: " + min); + System.out.println("Max, ms: " + max); + } +} diff --git a/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java b/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java index 07d4db164bd..9d6157fc87b 100644 --- a/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java +++ b/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java @@ -560,7 +560,7 @@ protected void initExecutionLayer() { protected void initKzg() { if (spec.isMilestoneSupported(SpecMilestone.DENEB)) { - kzg = KZG.getInstance(); + kzg = KZG.getInstance(beaconConfig.eth2NetworkConfig().isRustKzgEnabled()); final String trustedSetupFile = beaconConfig .eth2NetworkConfig() diff --git a/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java b/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java index 4c9ace22913..9b3a1387145 100644 --- a/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java +++ b/teku/src/main/java/tech/pegasys/teku/cli/options/Eth2NetworkOptions.java @@ -94,6 +94,17 @@ public class Eth2NetworkOptions { arity = "1") private String trustedSetup = null; // Depends on network configuration + @Option( + names = {"--Xrust-kzg-enabled"}, + paramLabel = "", + description = + "Use Rust KZG library LibPeerDASKZG with fallback to CKZG4844 for EIP-4844 methods", + arity = "0..1", + fallbackValue = "true", + showDefaultValue = Visibility.ALWAYS, + hidden = true) + private boolean rustKzgEnabled = Eth2NetworkConfiguration.DEFAULT_RUST_KZG_ENABLED; + @Option( names = {"--Xfork-choice-late-block-reorg-enabled"}, paramLabel = "", @@ -378,7 +389,8 @@ private void configureEth2Network(final Eth2NetworkConfiguration.Builder builder .asyncBeaconChainMaxThreads(asyncBeaconChainMaxThreads) .forkChoiceLateBlockReorgEnabled(forkChoiceLateBlockReorgEnabled) .epochsStoreBlobs(epochsStoreBlobs) - .forkChoiceUpdatedAlwaysSendPayloadAttributes(forkChoiceUpdatedAlwaysSendPayloadAttributes); + .forkChoiceUpdatedAlwaysSendPayloadAttributes(forkChoiceUpdatedAlwaysSendPayloadAttributes) + .rustKzgEnabled(rustKzgEnabled); asyncP2pMaxQueue.ifPresent(builder::asyncP2pMaxQueue); pendingAttestationsMaxQueue.ifPresent(builder::pendingAttestationsMaxQueue); asyncBeaconChainMaxQueue.ifPresent(builder::asyncBeaconChainMaxQueue); diff --git a/teku/src/test/java/tech/pegasys/teku/cli/options/Eth2NetworkOptionsTest.java b/teku/src/test/java/tech/pegasys/teku/cli/options/Eth2NetworkOptionsTest.java index be75608a2fb..e6e9529ff8a 100644 --- a/teku/src/test/java/tech/pegasys/teku/cli/options/Eth2NetworkOptionsTest.java +++ b/teku/src/test/java/tech/pegasys/teku/cli/options/Eth2NetworkOptionsTest.java @@ -237,4 +237,16 @@ public void shouldShowGoerliDeprecationWarning() { .isInstanceOf(AssertionError.class) // thrown because we had an error .hasMessageContaining("Goerli support has been removed"); } + + @Test + public void rustKzgFlagShouldBeDisabledByDefault() { + final TekuConfiguration config = getTekuConfigurationFromArguments(); + assertThat(config.eth2NetworkConfiguration().isRustKzgEnabled()).isFalse(); + } + + @Test + public void rustKzgFlagCanBeUsedToToggleRustKzgOn() { + final TekuConfiguration config = getTekuConfigurationFromArguments("--Xrust-kzg-enabled"); + assertThat(config.eth2NetworkConfiguration().isRustKzgEnabled()).isTrue(); + } } From f8389dbabf3b79f0d7e0ba8e6f6bfcf54e972a34 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Wed, 16 Apr 2025 17:37:13 +1200 Subject: [PATCH 10/33] Avoid combining validators by aggregating committee when using DVT (#9357) --- CHANGELOG.md | 4 +- .../client/ValidatorClientService.java | 11 ++- .../client/duties/ProductionResult.java | 4 + .../duties/attestations/AggregationDuty.java | 82 +++++------------ .../AggregationDutyAggregators.java | 56 ++++++++++++ .../AggregatorsGroupedByCommittee.java | 65 +++++++++++++ .../attestations/AttestationDutyFactory.java | 7 +- .../attestations/UngroupedAggregators.java | 62 +++++++++++++ .../client/duties/AggregationDutyTest.java | 79 ++++++++++++++++ .../AggregationDutyAggregatorsTest.java | 91 +++++++++++++++++++ .../AggregatorsGroupedByCommitteeTest.java | 49 ++++++++++ .../AttestationDutyFactoryTest.java | 60 ++++++++++++ .../UngroupedAggregatorsTest.java | 46 ++++++++++ 13 files changed, 551 insertions(+), 65 deletions(-) create mode 100644 validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDutyAggregators.java create mode 100644 validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregatorsGroupedByCommittee.java create mode 100644 validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/UngroupedAggregators.java create mode 100644 validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDutyAggregatorsTest.java create mode 100644 validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AggregatorsGroupedByCommitteeTest.java create mode 100644 validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AttestationDutyFactoryTest.java create mode 100644 validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/UngroupedAggregatorsTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index fe9150af129..e95975008c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,4 +16,6 @@ - Third party library updates. ### Bug Fixes - - It is no longer possible to set both `--checkpoint-sync-url` and `--initial-state`. \ No newline at end of file + - It is no longer possible to set both `--checkpoint-sync-url` and `--initial-state`. +- Aggregating attestations using DVT does not cause missed aggregations when multiple validators are + scheduled for the same slot [#9347](https://github.com/Consensys/teku/issues/9347). \ No newline at end of file diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorClientService.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorClientService.java index 7fc3202e6e4..429690b885b 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorClientService.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorClientService.java @@ -472,12 +472,17 @@ private void scheduleValidatorsDuties( final BlockDutyFactory blockDutyFactory = new BlockDutyFactory( forkProvider, validatorApiChannel, blockContainerSigner, spec, validatorDutyMetrics); + final boolean dvtSelectionsEndpointEnabled = + config.getValidatorConfig().isDvtSelectionsEndpointEnabled(); final AttestationDutyFactory attestationDutyFactory = - new AttestationDutyFactory(spec, forkProvider, validatorApiChannel, validatorDutyMetrics); + new AttestationDutyFactory( + spec, + forkProvider, + validatorApiChannel, + validatorDutyMetrics, + dvtSelectionsEndpointEnabled); final BeaconCommitteeSubscriptions beaconCommitteeSubscriptions = new BeaconCommitteeSubscriptions(validatorApiChannel); - final boolean dvtSelectionsEndpointEnabled = - config.getValidatorConfig().isDvtSelectionsEndpointEnabled(); final DutyLoader attestationDutyLoader = new RetryingDutyLoader<>( asyncRunner, diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/ProductionResult.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/ProductionResult.java index 8d415ff5fb5..1a323644fe4 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/ProductionResult.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/ProductionResult.java @@ -69,6 +69,10 @@ public static ProductionResult noop(final BLSPublicKey validatorPublicKey return new ProductionResult<>(Set.of(validatorPublicKey), DutyResult.NO_OP); } + public static ProductionResult noop(final Set validatorPublicKeys) { + return new ProductionResult<>(validatorPublicKeys, DutyResult.NO_OP); + } + public static SafeFuture send( final List> results, final Function, SafeFuture>> submitFunction) { diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDuty.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDuty.java index ab7e00b9f7f..f659a704c9c 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDuty.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDuty.java @@ -13,10 +13,8 @@ package tech.pegasys.teku.validator.client.duties.attestations; -import com.google.common.base.MoreObjects; +import com.google.common.annotations.VisibleForTesting; import java.util.Optional; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import tech.pegasys.teku.bls.BLSSignature; @@ -38,14 +36,14 @@ import tech.pegasys.teku.validator.client.duties.DutyResult; import tech.pegasys.teku.validator.client.duties.ProductionResult; import tech.pegasys.teku.validator.client.duties.ValidatorDutyMetrics; +import tech.pegasys.teku.validator.client.duties.attestations.AggregationDutyAggregators.CommitteeAggregator; public class AggregationDuty implements Duty { private static final Logger LOG = LogManager.getLogger(); - private final ConcurrentMap aggregatorsByCommitteeIndex = - new ConcurrentHashMap<>(); private final Spec spec; private final UInt64 slot; private final ValidatorApiChannel validatorApiChannel; + private final AggregationDutyAggregators aggregators; private final ForkProvider forkProvider; private final ValidatorLogger validatorLogger; private final SendingStrategy sendingStrategy; @@ -55,6 +53,7 @@ public AggregationDuty( final Spec spec, final UInt64 slot, final ValidatorApiChannel validatorApiChannel, + final AggregationDutyAggregators aggregators, final ForkProvider forkProvider, final ValidatorLogger validatorLogger, final SendingStrategy sendingStrategy, @@ -62,6 +61,7 @@ public AggregationDuty( this.spec = spec; this.slot = slot; this.validatorApiChannel = validatorApiChannel; + this.aggregators = aggregators; this.forkProvider = forkProvider; this.validatorLogger = validatorLogger; this.sendingStrategy = sendingStrategy; @@ -91,42 +91,34 @@ public void addValidator( final BLSSignature proof, final int attestationCommitteeIndex, final SafeFuture> unsignedAttestationFuture) { - aggregatorsByCommitteeIndex.computeIfAbsent( - attestationCommitteeIndex, - committeeIndex -> - new CommitteeAggregator( - validator, - UInt64.valueOf(validatorIndex), - UInt64.valueOf(attestationCommitteeIndex), - proof, - unsignedAttestationFuture)); + aggregators.addValidator( + validator, validatorIndex, proof, attestationCommitteeIndex, unsignedAttestationFuture); } @Override public SafeFuture performDuty() { LOG.trace("Aggregating attestations at slot {}", slot); - if (aggregatorsByCommitteeIndex.isEmpty()) { + if (!aggregators.hasAggregators()) { return SafeFuture.completedFuture(DutyResult.NO_OP); } - return sendingStrategy.send( - aggregatorsByCommitteeIndex.values().stream().map(this::aggregateCommittee)); + return sendingStrategy.send(aggregators.streamAggregators().map(this::aggregateCommittee)); } - public SafeFuture> aggregateCommittee( + private SafeFuture> aggregateCommittee( final CommitteeAggregator aggregator) { return aggregator - .unsignedAttestationFuture + .unsignedAttestationFuture() .thenCompose(maybeAttestation -> createAggregate(aggregator, maybeAttestation)) .exceptionally( - error -> ProductionResult.failure(aggregator.validator.getPublicKey(), error)); + error -> ProductionResult.failure(aggregator.validator().getPublicKey(), error)); } - public SafeFuture> createAggregate( + private SafeFuture> createAggregate( final CommitteeAggregator aggregator, final Optional maybeAttestation) { if (maybeAttestation.isEmpty()) { return SafeFuture.completedFuture( ProductionResult.failure( - aggregator.validator.getPublicKey(), + aggregator.validator().getPublicKey(), new IllegalStateException( "Unable to perform aggregation for committee because no attestation was produced"))); } @@ -139,16 +131,16 @@ public SafeFuture> createAggregate( validatorApiChannel.createAggregate( slot, attestationData.hashTreeRoot(), - Optional.of(aggregator.attestationCommitteeIndex)), + Optional.of(aggregator.attestationCommitteeIndex())), this, ValidatorDutyMetricsSteps.CREATE); return createAggregationFuture.thenCompose( maybeAggregate -> { if (maybeAggregate.isEmpty()) { - validatorLogger.aggregationSkipped(slot, aggregator.attestationCommitteeIndex); + validatorLogger.aggregationSkipped(slot, aggregator.attestationCommitteeIndex()); return SafeFuture.completedFuture( - ProductionResult.noop(aggregator.validator.getPublicKey())); + ProductionResult.noop(aggregator.validator().getPublicKey())); } final Attestation aggregate = maybeAggregate.get(); return validatorDutyMetrics.record( @@ -165,55 +157,27 @@ private SafeFuture> createSignedAggreg final AggregateAndProof aggregateAndProof = schemaDefinitions .getAggregateAndProofSchema() - .create(aggregator.validatorIndex, aggregate, aggregator.proof); + .create(aggregator.validatorIndex(), aggregate, aggregator.proof()); return forkProvider .getForkInfo(slot) .thenCompose( forkInfo -> aggregator - .validator + .validator() .getSigner() .signAggregateAndProof(aggregateAndProof, forkInfo) .thenApply( signature -> ProductionResult.success( - aggregator.validator.getPublicKey(), + aggregator.validator().getPublicKey(), aggregateAndProof.getAggregate().getData().getBeaconBlockRoot(), schemaDefinitions .getSignedAggregateAndProofSchema() .create(aggregateAndProof, signature)))); } - private static class CommitteeAggregator { - - private final Validator validator; - private final UInt64 validatorIndex; - private final UInt64 attestationCommitteeIndex; - private final BLSSignature proof; - private final SafeFuture> unsignedAttestationFuture; - - private CommitteeAggregator( - final Validator validator, - final UInt64 validatorIndex, - final UInt64 attestationCommitteeIndex, - final BLSSignature proof, - final SafeFuture> unsignedAttestationFuture) { - this.validator = validator; - this.validatorIndex = validatorIndex; - this.attestationCommitteeIndex = attestationCommitteeIndex; - this.proof = proof; - this.unsignedAttestationFuture = unsignedAttestationFuture; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("validator", validator) - .add("validatorIndex", validatorIndex) - .add("attestationCommitteeIndex", attestationCommitteeIndex) - .add("proof", proof) - .add("unsignedAttestationFuture", unsignedAttestationFuture) - .toString(); - } + @VisibleForTesting + AggregationDutyAggregators getAggregators() { + return aggregators; } } diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDutyAggregators.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDutyAggregators.java new file mode 100644 index 00000000000..a0b94727c1d --- /dev/null +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDutyAggregators.java @@ -0,0 +1,56 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.validator.client.duties.attestations; + +import com.google.common.base.MoreObjects; +import java.util.Optional; +import java.util.stream.Stream; +import tech.pegasys.teku.bls.BLSSignature; +import tech.pegasys.teku.infrastructure.async.SafeFuture; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.operations.AttestationData; +import tech.pegasys.teku.validator.client.Validator; + +public interface AggregationDutyAggregators { + + void addValidator( + final Validator validator, + final int validatorIndex, + final BLSSignature proof, + final int attestationCommitteeIndex, + final SafeFuture> unsignedAttestationFuture); + + boolean hasAggregators(); + + Stream streamAggregators(); + + record CommitteeAggregator( + Validator validator, + UInt64 validatorIndex, + UInt64 attestationCommitteeIndex, + BLSSignature proof, + SafeFuture> unsignedAttestationFuture) { + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("validator", validator) + .add("validatorIndex", validatorIndex) + .add("attestationCommitteeIndex", attestationCommitteeIndex) + .add("proof", proof) + .add("unsignedAttestationFuture", unsignedAttestationFuture) + .toString(); + } + } +} diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregatorsGroupedByCommittee.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregatorsGroupedByCommittee.java new file mode 100644 index 00000000000..8f4aee277f5 --- /dev/null +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AggregatorsGroupedByCommittee.java @@ -0,0 +1,65 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.validator.client.duties.attestations; + +import com.google.common.annotations.VisibleForTesting; +import java.util.Map; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.stream.Stream; +import tech.pegasys.teku.bls.BLSSignature; +import tech.pegasys.teku.infrastructure.async.SafeFuture; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.operations.AttestationData; +import tech.pegasys.teku.validator.client.Validator; + +public class AggregatorsGroupedByCommittee implements AggregationDutyAggregators { + + private final ConcurrentMap aggregatorsByCommitteeIndex = + new ConcurrentHashMap<>(); + + @Override + public void addValidator( + final Validator validator, + final int validatorIndex, + final BLSSignature proof, + final int attestationCommitteeIndex, + final SafeFuture> unsignedAttestationFuture) { + aggregatorsByCommitteeIndex.computeIfAbsent( + attestationCommitteeIndex, + committeeIndex -> + new CommitteeAggregator( + validator, + UInt64.valueOf(validatorIndex), + UInt64.valueOf(attestationCommitteeIndex), + proof, + unsignedAttestationFuture)); + } + + @Override + public boolean hasAggregators() { + return !aggregatorsByCommitteeIndex.isEmpty(); + } + + @Override + public Stream streamAggregators() { + return aggregatorsByCommitteeIndex.values().stream(); + } + + @VisibleForTesting + Map getAggregatorsByCommitteeIndex() { + return aggregatorsByCommitteeIndex; + } +} diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AttestationDutyFactory.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AttestationDutyFactory.java index c1088eccc1b..42418e6b662 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AttestationDutyFactory.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/AttestationDutyFactory.java @@ -29,18 +29,20 @@ public class AttestationDutyFactory private final Spec spec; private final ForkProvider forkProvider; private final ValidatorApiChannel validatorApiChannel; - private final ValidatorDutyMetrics validatorDutyMetrics; + private final boolean isDvtEnabled; public AttestationDutyFactory( final Spec spec, final ForkProvider forkProvider, final ValidatorApiChannel validatorApiChannel, - final ValidatorDutyMetrics validatorDutyMetrics) { + final ValidatorDutyMetrics validatorDutyMetrics, + final boolean isDvtEnabled) { this.spec = spec; this.forkProvider = forkProvider; this.validatorApiChannel = validatorApiChannel; this.validatorDutyMetrics = validatorDutyMetrics; + this.isDvtEnabled = isDvtEnabled; } @Override @@ -61,6 +63,7 @@ public AggregationDuty createAggregationDuty(final UInt64 slot, final Validator spec, slot, validatorApiChannel, + isDvtEnabled ? new UngroupedAggregators() : new AggregatorsGroupedByCommittee(), forkProvider, VALIDATOR_LOGGER, new BatchAttestationSendingStrategy<>(validatorApiChannel::sendAggregateAndProofs), diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/UngroupedAggregators.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/UngroupedAggregators.java new file mode 100644 index 00000000000..1373dd731df --- /dev/null +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/attestations/UngroupedAggregators.java @@ -0,0 +1,62 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.validator.client.duties.attestations; + +import com.google.common.annotations.VisibleForTesting; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.stream.Stream; +import tech.pegasys.teku.bls.BLSSignature; +import tech.pegasys.teku.infrastructure.async.SafeFuture; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.operations.AttestationData; +import tech.pegasys.teku.validator.client.Validator; + +public class UngroupedAggregators implements AggregationDutyAggregators { + + private final CopyOnWriteArrayList aggregators = + new CopyOnWriteArrayList<>(); + + @Override + public void addValidator( + final Validator validator, + final int validatorIndex, + final BLSSignature proof, + final int attestationCommitteeIndex, + final SafeFuture> unsignedAttestationFuture) { + aggregators.add( + new CommitteeAggregator( + validator, + UInt64.valueOf(validatorIndex), + UInt64.valueOf(attestationCommitteeIndex), + proof, + unsignedAttestationFuture)); + } + + @Override + public boolean hasAggregators() { + return !aggregators.isEmpty(); + } + + @Override + public Stream streamAggregators() { + return aggregators.stream(); + } + + @VisibleForTesting + List getAggregators() { + return aggregators; + } +} diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/AggregationDutyTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/AggregationDutyTest.java index d6b946a9376..4eaa0b5067b 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/AggregationDutyTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/AggregationDutyTest.java @@ -61,7 +61,9 @@ import tech.pegasys.teku.validator.client.ForkProvider; import tech.pegasys.teku.validator.client.Validator; import tech.pegasys.teku.validator.client.duties.attestations.AggregationDuty; +import tech.pegasys.teku.validator.client.duties.attestations.AggregatorsGroupedByCommittee; import tech.pegasys.teku.validator.client.duties.attestations.BatchAttestationSendingStrategy; +import tech.pegasys.teku.validator.client.duties.attestations.UngroupedAggregators; @TestSpecContext(milestone = {PHASE0, ELECTRA}) class AggregationDutyTest { @@ -108,6 +110,7 @@ public void setUp(final SpecContext specContext) { spec, SLOT, validatorApiChannel, + new AggregatorsGroupedByCommittee(), forkProvider, validatorLogger, new BatchAttestationSendingStrategy<>(validatorApiChannel::sendAggregateAndProofs), @@ -290,6 +293,82 @@ public void shouldProduceSingleAggregateAndProofWhenMultipleValidatorsAggregateS .record(any(), any(AggregationDuty.class), eq(ValidatorDutyMetricsSteps.SIGN)); } + @TestTemplate + public void shouldProduceAllAggregatesForSameCommitteeUsingUngroupedAggregators() { + duty = + new AggregationDuty( + spec, + SLOT, + validatorApiChannel, + new UngroupedAggregators(), + forkProvider, + validatorLogger, + new BatchAttestationSendingStrategy<>(validatorApiChannel::sendAggregateAndProofs), + validatorDutyMetrics); + + final int committeeIndex = 2; + + final int validator1Index = 1; + final BLSSignature validator1Proof = dataStructureUtil.randomSignature(); + + final int validator2Index = 6; + final BLSSignature validator2Proof = dataStructureUtil.randomSignature(); + + final AttestationData attestationData = dataStructureUtil.randomAttestationData(); + final Attestation aggregate = dataStructureUtil.randomAttestation(); + duty.addValidator( + validator1, + validator1Index, + validator1Proof, + committeeIndex, + completedFuture(Optional.of(attestationData))); + duty.addValidator( + validator2, + validator2Index, + validator2Proof, + committeeIndex, + completedFuture(Optional.of(attestationData))); + + when(validatorApiChannel.createAggregate( + SLOT, attestationData.hashTreeRoot(), Optional.of(UInt64.valueOf(committeeIndex)))) + .thenReturn(completedFuture(Optional.of(aggregate))); + when(validatorApiChannel.sendAggregateAndProofs(anyList())) + .thenReturn(SafeFuture.completedFuture(Collections.emptyList())); + + final AggregateAndProof aggregateAndProof1 = + aggregateAndProofSchema.create(UInt64.valueOf(validator1Index), aggregate, validator1Proof); + final AggregateAndProof aggregateAndProof2 = + aggregateAndProofSchema.create(UInt64.valueOf(validator2Index), aggregate, validator2Proof); + final BLSSignature aggregateSignature1 = dataStructureUtil.randomSignature(); + final BLSSignature aggregateSignature2 = dataStructureUtil.randomSignature(); + when(signer1.signAggregateAndProof(aggregateAndProof1, forkInfo)) + .thenReturn(SafeFuture.completedFuture(aggregateSignature1)); + when(signer2.signAggregateAndProof(aggregateAndProof2, forkInfo)) + .thenReturn(SafeFuture.completedFuture(aggregateSignature2)); + + performAndReportDuty(); + + // Two proofs should be sent. Both proofs are sent together so there is only one call to + // sendAggregateAndProofs. + verify(validatorApiChannel) + .sendAggregateAndProofs( + List.of( + signedAggregateAndProofSchema.create(aggregateAndProof1, aggregateSignature1), + signedAggregateAndProofSchema.create(aggregateAndProof2, aggregateSignature2))); + // Duty is completed with two aggregates (for the same slot/committee). So we check success + // count is 2 + verify(validatorLogger) + .dutyCompleted( + TYPE, SLOT, 2, Set.of(aggregate.getData().getBeaconBlockRoot()), Optional.empty()); + verifyNoMoreInteractions(validatorLogger); + + // Two aggregation were created, so we capture the time for both individually + verify(validatorDutyMetrics, times(2)) + .record(any(), any(AggregationDuty.class), eq(ValidatorDutyMetricsSteps.CREATE)); + verify(validatorDutyMetrics, times(2)) + .record(any(), any(AggregationDuty.class), eq(ValidatorDutyMetricsSteps.SIGN)); + } + @TestTemplate public void shouldFailWhenAttestationDataNotCreated() { duty.addValidator( diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDutyAggregatorsTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDutyAggregatorsTest.java new file mode 100644 index 00000000000..0bd12362582 --- /dev/null +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AggregationDutyAggregatorsTest.java @@ -0,0 +1,91 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.validator.client.duties.attestations; + +import static org.assertj.core.api.Assertions.assertThat; +import static tech.pegasys.teku.spec.generator.signatures.NoOpRemoteSigner.NO_OP_REMOTE_SIGNER; + +import java.util.Optional; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import tech.pegasys.teku.bls.BLSKeyPair; +import tech.pegasys.teku.infrastructure.async.SafeFuture; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.Spec; +import tech.pegasys.teku.spec.TestSpecFactory; +import tech.pegasys.teku.spec.util.DataStructureUtil; +import tech.pegasys.teku.validator.client.Validator; +import tech.pegasys.teku.validator.client.duties.attestations.AggregationDutyAggregators.CommitteeAggregator; + +abstract class AggregationDutyAggregatorsTest { + + private final Spec spec = TestSpecFactory.createMinimalElectra(); + private final DataStructureUtil dataStructureUtil = new DataStructureUtil(spec); + + protected AggregationDutyAggregators aggregationDutyAggregators; + + @BeforeEach + public void setUp() { + aggregationDutyAggregators = getAggregator(); + } + + @Test + public void addValidatorsAndStreaming() { + final CommitteeAggregator committeeAggregator1 = randomCommitteeAggregator(); + final CommitteeAggregator committeeAggregator2 = randomCommitteeAggregator(); + final CommitteeAggregator committeeAggregator3 = randomCommitteeAggregator(); + + addValidator(committeeAggregator1); + addValidator(committeeAggregator2); + addValidator(committeeAggregator3); + + assertThat(aggregationDutyAggregators.hasAggregators()).isTrue(); + assertThat(aggregationDutyAggregators.streamAggregators()) + .contains(committeeAggregator1, committeeAggregator2, committeeAggregator3); + } + + @Test + public void hasAggregatorsReturnFalseWhenNoAggregatorsHaveBeenAdded() { + assertThat(aggregationDutyAggregators.hasAggregators()).isFalse(); + } + + abstract AggregationDutyAggregators getAggregator(); + + protected void addValidator(final CommitteeAggregator committeeAggregator) { + aggregationDutyAggregators.addValidator( + committeeAggregator.validator(), + committeeAggregator.validatorIndex().intValue(), + committeeAggregator.proof(), + committeeAggregator.attestationCommitteeIndex().intValue(), + committeeAggregator.unsignedAttestationFuture()); + } + + protected CommitteeAggregator randomCommitteeAggregator() { + return randomCommitteeAggregator(dataStructureUtil.randomPositiveInt()); + } + + protected CommitteeAggregator randomCommitteeAggregator(final int committeeIndex) { + final BLSKeyPair keyPair = dataStructureUtil.randomKeyPair(); + final Validator validator = + new Validator(keyPair.getPublicKey(), NO_OP_REMOTE_SIGNER, Optional::empty, true); + final UInt64 validatorIndex = dataStructureUtil.randomValidatorIndex(); + + return new CommitteeAggregator( + validator, + validatorIndex, + UInt64.valueOf(committeeIndex), + dataStructureUtil.randomSignature(), + SafeFuture.completedFuture(Optional.of(dataStructureUtil.randomAttestationData()))); + } +} diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AggregatorsGroupedByCommitteeTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AggregatorsGroupedByCommitteeTest.java new file mode 100644 index 00000000000..2fd08137fdb --- /dev/null +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AggregatorsGroupedByCommitteeTest.java @@ -0,0 +1,49 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.validator.client.duties.attestations; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.Map; +import org.junit.jupiter.api.Test; +import tech.pegasys.teku.validator.client.duties.attestations.AggregationDutyAggregators.CommitteeAggregator; + +class AggregatorsGroupedByCommitteeTest extends AggregationDutyAggregatorsTest { + + @Override + AggregationDutyAggregators getAggregator() { + return new AggregatorsGroupedByCommittee(); + } + + @Test + public void addAggregatorsForSameCommitteeGroupThemByCommitteeIndex() { + final CommitteeAggregator committeeAggregator1 = randomCommitteeAggregator(1); + final CommitteeAggregator committeeAggregator2 = randomCommitteeAggregator(1); + final CommitteeAggregator committeeAggregator3 = randomCommitteeAggregator(2); + + addValidator(committeeAggregator1); + addValidator(committeeAggregator2); + addValidator(committeeAggregator3); + + final Map aggregatorsByCommitteeIndex = + ((AggregatorsGroupedByCommittee) aggregationDutyAggregators) + .getAggregatorsByCommitteeIndex(); + + assertThat(aggregatorsByCommitteeIndex).hasSize(2); + // committeeAggregator2 isn't on the map because it is from the same committee as + // committeeAggregator1 + assertThat(aggregatorsByCommitteeIndex) + .containsValues(committeeAggregator1, committeeAggregator3); + } +} diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AttestationDutyFactoryTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AttestationDutyFactoryTest.java new file mode 100644 index 00000000000..fdb5d67c769 --- /dev/null +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/AttestationDutyFactoryTest.java @@ -0,0 +1,60 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.validator.client.duties.attestations; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; + +import java.util.stream.Stream; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; +import tech.pegasys.teku.infrastructure.metrics.StubMetricsSystem; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.Spec; +import tech.pegasys.teku.spec.TestSpecFactory; +import tech.pegasys.teku.validator.api.ValidatorApiChannel; +import tech.pegasys.teku.validator.client.ForkProvider; +import tech.pegasys.teku.validator.client.Validator; +import tech.pegasys.teku.validator.client.duties.ValidatorDutyMetrics; + +class AttestationDutyFactoryTest { + + private final Spec spec = TestSpecFactory.createMinimalElectra(); + private final ValidatorApiChannel validatorApiChannel = mock(ValidatorApiChannel.class); + private final ForkProvider forkProvider = mock(ForkProvider.class); + private final ValidatorDutyMetrics validatorDutyMetrics = + ValidatorDutyMetrics.create(new StubMetricsSystem()); + private final Validator validator = mock(Validator.class); + private final UInt64 slot = UInt64.ONE; + + @ParameterizedTest + @MethodSource("aggregatorTypeArgs") + public void shouldUseCorrectAggregatorTypeWhenCreatingAggregationDuty( + final boolean dvtEnabled, final Class expectedAggregatorClass) { + final AttestationDutyFactory attestationDutyFactory = + new AttestationDutyFactory( + spec, forkProvider, validatorApiChannel, validatorDutyMetrics, dvtEnabled); + final AggregationDuty aggregationDuty = + attestationDutyFactory.createAggregationDuty(slot, validator); + + assertThat(aggregationDuty.getAggregators()).isInstanceOf(expectedAggregatorClass); + } + + private static Stream aggregatorTypeArgs() { + return Stream.of( + Arguments.of(false, AggregatorsGroupedByCommittee.class), + Arguments.of(true, UngroupedAggregators.class)); + } +} diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/UngroupedAggregatorsTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/UngroupedAggregatorsTest.java new file mode 100644 index 00000000000..a2fa4ef2806 --- /dev/null +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/attestations/UngroupedAggregatorsTest.java @@ -0,0 +1,46 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.validator.client.duties.attestations; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.List; +import org.junit.jupiter.api.Test; +import tech.pegasys.teku.validator.client.duties.attestations.AggregationDutyAggregators.CommitteeAggregator; + +class UngroupedAggregatorsTest extends AggregationDutyAggregatorsTest { + + @Override + AggregationDutyAggregators getAggregator() { + return new UngroupedAggregators(); + } + + @Test + public void addAggregatorsForSameCommitteeDoNotGroupThem() { + final CommitteeAggregator committeeAggregator1 = randomCommitteeAggregator(1); + final CommitteeAggregator committeeAggregator2 = randomCommitteeAggregator(1); + final CommitteeAggregator committeeAggregator3 = randomCommitteeAggregator(2); + + addValidator(committeeAggregator1); + addValidator(committeeAggregator2); + addValidator(committeeAggregator3); + + final List aggregators = + ((UngroupedAggregators) aggregationDutyAggregators).getAggregators(); + + assertThat(aggregators).hasSize(3); + assertThat(aggregators) + .contains(committeeAggregator1, committeeAggregator2, committeeAggregator3); + } +} From e3259c50527694635c75b9d1920968b810a815ff Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Wed, 16 Apr 2025 15:53:11 +0200 Subject: [PATCH 11/33] builder json format, make media type more compatible (#9360) --- .../teku/ethereum/executionclient/rest/OkHttpRestClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClient.java b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClient.java index dbaf436d413..9360f185ba7 100644 --- a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClient.java +++ b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/rest/OkHttpRestClient.java @@ -39,7 +39,7 @@ public class OkHttpRestClient implements RestClient { - static final MediaType JSON_MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8"); + static final MediaType JSON_MEDIA_TYPE = MediaType.parse("application/json"); static final MediaType OCTET_STREAM_MEDIA_TYPE = MediaType.parse("application/octet-stream"); private final OkHttpClient httpClient; From 5a695c7c86ea4458c2ab04354f8d549f3e6af0c1 Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Thu, 17 Apr 2025 08:58:23 +1000 Subject: [PATCH 12/33] refactored expected withdrawals and added test cases (#9361) Signed-off-by: Paul Harris --- .../execution/ExpectedWithdrawals.java | 63 +++++--- .../execution/ExpectedWithdrawalsTest.java | 150 ++++++++++++++++++ .../teku/spec/util/DataStructureUtil.java | 6 + 3 files changed, 198 insertions(+), 21 deletions(-) diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/ExpectedWithdrawals.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/ExpectedWithdrawals.java index 01e63c1c157..89e23c86004 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/ExpectedWithdrawals.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/ExpectedWithdrawals.java @@ -152,7 +152,7 @@ public int getPartialWithdrawalCount() { return partialWithdrawalCount; } - private static WithdrawalSummary getPendingPartialWithdrawals( + static WithdrawalSummary getPendingPartialWithdrawals( final BeaconStateElectra preState, final SchemaDefinitionsElectra schemaDefinitions, final MiscHelpersElectra miscHelpers, @@ -168,29 +168,45 @@ private static WithdrawalSummary getPendingPartialWithdrawals( || withdrawals.size() == maxPendingPartialWithdrawals) { break; } - final Validator validator = preState.getValidators().get(withdrawal.getValidatorIndex()); + final int validatorIndex = withdrawal.getValidatorIndex(); + final Validator validator = preState.getValidators().get(validatorIndex); + final UInt64 partiallyWithdrawnBalance = + getPartiallyWithdrawnBalance(withdrawals, UInt64.valueOf(validatorIndex)); + final UInt64 remainingBalance = + preState + .getBalances() + .get(withdrawal.getValidatorIndex()) + .get() + .minusMinZero(partiallyWithdrawnBalance); final boolean hasSufficientEffectiveBalance = validator .getEffectiveBalance() .isGreaterThanOrEqualTo(specConfig.getMinActivationBalance()); - final UInt64 validatorBalance = - preState.getBalances().get(withdrawal.getValidatorIndex()).get(); final boolean hasExcessBalance = - validatorBalance.isGreaterThan(specConfig.getMinActivationBalance()); + remainingBalance.isGreaterThan(specConfig.getMinActivationBalance()); + LOG.trace( + "pending withdrawal validator index {}, remaining balance {}, requested amount {}; exitEpoch {}, hasSufficientEffectiveBalance {}, hasExcessBalance {}", + withdrawal.getValidatorIndex(), + remainingBalance, + withdrawal.getAmount(), + validator.getExitEpoch(), + hasSufficientEffectiveBalance, + hasExcessBalance); + if (validator.getExitEpoch().equals(FAR_FUTURE_EPOCH) && hasSufficientEffectiveBalance && hasExcessBalance) { final UInt64 withdrawableBalance = withdrawal .getAmount() - .min(validatorBalance.minusMinZero(specConfig.getMinActivationBalance())); + .min(remainingBalance.minusMinZero(specConfig.getMinActivationBalance())); withdrawals.add( schemaDefinitions .getWithdrawalSchema() .create( withdrawalIndex, UInt64.valueOf(withdrawal.getValidatorIndex()), - new Bytes20(validator.getWithdrawalCredentials().slice(12)), + getEthAddressFromWithdrawalCredentials(validator), withdrawableBalance)); withdrawalIndex = withdrawalIndex.increment(); } @@ -199,6 +215,10 @@ private static WithdrawalSummary getPendingPartialWithdrawals( return new WithdrawalSummary(withdrawals, processedPartialWithdrawalsCount); } + static Bytes20 getEthAddressFromWithdrawalCredentials(final Validator validator) { + return new Bytes20(validator.getWithdrawalCredentials().slice(12)); + } + // get_expected_withdrawals private static List getExpectedWithdrawals( final BeaconStateCapella preState, @@ -207,7 +227,6 @@ private static List getExpectedWithdrawals( final SpecConfigCapella specConfigCapella, final Predicates predicates, final List partialWithdrawals) { - final List expectedWithdrawals = partialWithdrawals; final WithdrawalSchema withdrawalSchema = schemaDefinitionsCapella.getWithdrawalSchema(); final UInt64 epoch = miscHelpers.computeEpochAtSlot(preState.getSlot()); final SszList validators = preState.getValidators(); @@ -227,37 +246,31 @@ private static List getExpectedWithdrawals( for (int i = 0; i < bound; i++) { final Validator validator = validators.get(validatorIndex); if (predicates.hasExecutionWithdrawalCredential(validator)) { - final UInt64 finalValidatorIndex = UInt64.valueOf(validatorIndex); final UInt64 partiallyWithdrawnBalance = - partialWithdrawals.stream() - .filter( - partialWithdrawal -> - partialWithdrawal.getValidatorIndex().equals(finalValidatorIndex)) - .map(Withdrawal::getAmount) - .reduce(UInt64.ZERO, UInt64::plus); + getPartiallyWithdrawnBalance(partialWithdrawals, UInt64.valueOf(validatorIndex)); final UInt64 balance = balances.get(validatorIndex).get().minusMinZero(partiallyWithdrawnBalance); if (predicates.isFullyWithdrawableValidatorCredentialsChecked(validator, balance, epoch)) { - expectedWithdrawals.add( + partialWithdrawals.add( withdrawalSchema.create( withdrawalIndex, UInt64.valueOf(validatorIndex), - new Bytes20(validator.getWithdrawalCredentials().slice(12)), + getEthAddressFromWithdrawalCredentials(validator), balance)); withdrawalIndex = withdrawalIndex.increment(); } else if (predicates.isPartiallyWithdrawableValidatorEth1CredentialsChecked( validator, balance)) { - expectedWithdrawals.add( + partialWithdrawals.add( withdrawalSchema.create( withdrawalIndex, UInt64.valueOf(validatorIndex), - new Bytes20(validator.getWithdrawalCredentials().slice(12)), + getEthAddressFromWithdrawalCredentials(validator), balance.minusMinZero(miscHelpers.getMaxEffectiveBalance(validator)))); withdrawalIndex = withdrawalIndex.increment(); } - if (expectedWithdrawals.size() == maxWithdrawalsPerPayload) { + if (partialWithdrawals.size() == maxWithdrawalsPerPayload) { break; } } @@ -265,7 +278,15 @@ private static List getExpectedWithdrawals( validatorIndex = (validatorIndex + 1) % validatorCount; } - return expectedWithdrawals; + return partialWithdrawals; + } + + static UInt64 getPartiallyWithdrawnBalance( + final List currentWithdrawals, final UInt64 validatorIndex) { + return currentWithdrawals.stream() + .filter(partialWithdrawal -> partialWithdrawal.getValidatorIndex().equals(validatorIndex)) + .map(Withdrawal::getAmount) + .reduce(UInt64.ZERO, UInt64::plus); } public void processWithdrawals( diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/execution/ExpectedWithdrawalsTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/execution/ExpectedWithdrawalsTest.java index df897bfa1de..5ced73bcca6 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/execution/ExpectedWithdrawalsTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/execution/ExpectedWithdrawalsTest.java @@ -14,13 +14,20 @@ package tech.pegasys.teku.spec.datastructures.execution; import static org.assertj.core.api.Assertions.assertThat; +import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; +import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ZERO; +import java.util.List; +import org.apache.tuweni.bytes.Bytes32; import org.junit.jupiter.api.Test; +import tech.pegasys.teku.ethereum.execution.types.Eth1Address; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.TestSpecFactory; import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.datastructures.execution.versions.capella.Withdrawal; import tech.pegasys.teku.spec.datastructures.state.BeaconStateTestBuilder; +import tech.pegasys.teku.spec.datastructures.state.Validator; import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.electra.BeaconStateElectra; import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.electra.MutableBeaconStateElectra; @@ -32,6 +39,8 @@ class ExpectedWithdrawalsTest { private Spec spec; private DataStructureUtil dataStructureUtil; + private static final UInt64 ONE_ETH = UInt64.valueOf(1_000_000_000L); + @Test void bellatrixExpectedWithdrawals() { spec = TestSpecFactory.createMinimalBellatrix(); @@ -60,6 +69,69 @@ void capellaExpectedWithdrawals() { assertThat(withdrawals.getPartialWithdrawalCount()).isEqualTo(0); } + @Test + void getPartiallyWithdrawnBalance_returnsZeroIfNotSet() { + spec = TestSpecFactory.createMinimalElectra(); + final List withdrawalList = List.of(); + assertThat(ExpectedWithdrawals.getPartiallyWithdrawnBalance(withdrawalList, ZERO)) + .isEqualTo(ZERO); + } + + @Test + void getPartiallyWithdrawnBalance_returnsCurrentValue() { + spec = TestSpecFactory.createMinimalElectra(); + dataStructureUtil = new DataStructureUtil(spec); + final List withdrawalList = + List.of( + dataStructureUtil.randomWithdrawal(ZERO, ONE_ETH), + dataStructureUtil.randomWithdrawal(ZERO, ONE_ETH)); + assertThat(ExpectedWithdrawals.getPartiallyWithdrawnBalance(withdrawalList, ZERO)) + .isEqualTo(ONE_ETH.times(2)); + } + + @Test + void getPartiallyWithdrawnBalance_returnsCurrentValueSpecificToValidator() { + spec = TestSpecFactory.createMinimalElectra(); + dataStructureUtil = new DataStructureUtil(spec); + final List withdrawalList = + List.of( + dataStructureUtil.randomWithdrawal(ZERO, ONE_ETH), + dataStructureUtil.randomWithdrawal(ONE, ONE_ETH)); + assertThat(ExpectedWithdrawals.getPartiallyWithdrawnBalance(withdrawalList, ZERO)) + .isEqualTo(ONE_ETH); + } + + @Test + void getEthAddressFromWithdrawalCredentials_extracts_address() { + spec = TestSpecFactory.createMinimalElectra(); + dataStructureUtil = new DataStructureUtil(spec); + final Eth1Address address = dataStructureUtil.randomEth1Address(); + final Validator validator = + dataStructureUtil + .validatorBuilder() + .withdrawalCredentials( + Bytes32.fromHexString("0x01000000000000" + address.toUnprefixedHexString())) + .build(); + assertThat( + ExpectedWithdrawals.getEthAddressFromWithdrawalCredentials(validator) + .toUnprefixedHexString()) + .isEqualToIgnoringCase(address.toUnprefixedHexString()); + } + + @Test + void createFromInvalidStateReturnsNoop() { + spec = TestSpecFactory.createMinimalBellatrix(); + dataStructureUtil = new DataStructureUtil(spec); + assertThat( + ExpectedWithdrawals.create( + dataStructureUtil.randomBeaconState(), + spec.getGenesisSchemaDefinitions(), + spec.getGenesisSpec().miscHelpers(), + spec.getGenesisSpecConfig(), + spec.getGenesisSpec().predicates())) + .isEqualTo(ExpectedWithdrawals.NOOP); + } + @Test void electraExpectedWithdrawals() { spec = TestSpecFactory.createMinimalElectra(); @@ -100,6 +172,84 @@ void electraExpectedWithdrawals() { assertThat(mutableBeaconStateElectra.getValidators().size()).isEqualTo(2); } + @Test + void electraPendingPartialWithdrawals_SingleExceedingMinimumBalance() { + spec = TestSpecFactory.createMinimalElectra(); + dataStructureUtil = new DataStructureUtil(spec); + final SpecConfigElectra specConfigElectra = + SpecConfigElectra.required(spec.getGenesisSpec().getConfig()); + final UInt64 minActivationBalance = specConfigElectra.getMaxEffectiveBalance(); + final UInt64 partialWithdrawalBalance = UInt64.valueOf(10_000L); + final BeaconStateElectra preState = + BeaconStateElectra.required( + new BeaconStateTestBuilder(dataStructureUtil) + .activeConsolidatingValidator(minActivationBalance.plus(partialWithdrawalBalance)) + .pendingPartialWithdrawal(0, partialWithdrawalBalance.times(2)) + .build()); + + final ExpectedWithdrawals withdrawals = + spec.getBlockProcessor(preState.getSlot()).getExpectedWithdrawals(preState); + assertThat(withdrawals.getPartialWithdrawalCount()).isEqualTo(1); + // although the withdrawal was for 2x the available, we could only satisfy half of it + assertThat(withdrawals.getWithdrawalList().get(0).getAmount()) + .isEqualTo(partialWithdrawalBalance); + } + + @Test + void electraPendingPartialWithdrawals_MultipleExceedingMinimumBalance() { + spec = TestSpecFactory.createMinimalElectra(); + dataStructureUtil = new DataStructureUtil(spec); + final SpecConfigElectra specConfigElectra = + SpecConfigElectra.required(spec.getGenesisSpec().getConfig()); + final UInt64 minActivationBalance = specConfigElectra.getMaxEffectiveBalance(); + final UInt64 partialWithdrawalBalance = UInt64.valueOf(10_000L); + final BeaconStateElectra preState = + BeaconStateElectra.required( + new BeaconStateTestBuilder(dataStructureUtil) + .activeConsolidatingValidator(minActivationBalance.plus(15_000)) + .pendingPartialWithdrawal(0, partialWithdrawalBalance) + .pendingPartialWithdrawal(0, partialWithdrawalBalance) + .build()); + + final ExpectedWithdrawals withdrawals = + spec.getBlockProcessor(preState.getSlot()).getExpectedWithdrawals(preState); + assertThat(withdrawals.getPartialWithdrawalCount()).isEqualTo(2); + // the first withdrawal could be fully satisfied + assertThat(withdrawals.getWithdrawalList().get(0).getAmount()) + .isEqualTo(partialWithdrawalBalance); + // the second withdrawal could only be partially satisfied + assertThat(withdrawals.getWithdrawalList().get(1).getAmount()) + .isEqualTo(UInt64.valueOf(5_000L)); + } + + @Test + void electraPendingPartialWithdrawals_MultipleExceedingMinimumBalanceOneSkipped() { + spec = TestSpecFactory.createMinimalElectra(); + dataStructureUtil = new DataStructureUtil(spec); + final SpecConfigElectra specConfigElectra = + SpecConfigElectra.required(spec.getGenesisSpec().getConfig()); + final UInt64 minActivationBalance = specConfigElectra.getMaxEffectiveBalance(); + final UInt64 partialWithdrawalBalance = UInt64.valueOf(10_000L); + final BeaconStateElectra preState = + BeaconStateElectra.required( + new BeaconStateTestBuilder(dataStructureUtil) + .activeConsolidatingValidator(minActivationBalance.plus(partialWithdrawalBalance)) + .pendingPartialWithdrawal(0, partialWithdrawalBalance) + // this second pending partial will end up ignored because of insufficient balance + .pendingPartialWithdrawal(0, partialWithdrawalBalance) + .build()); + + final ExpectedWithdrawals withdrawals = + spec.getBlockProcessor(preState.getSlot()).getExpectedWithdrawals(preState); + // 2 partials came out of the state queue + assertThat(withdrawals.getPartialWithdrawalCount()).isEqualTo(2); + // only 1 withdrawal added because we had insufficient balance to allow the second + assertThat(withdrawals.getWithdrawalList().size()).isEqualTo(1); + // the first withdrawal was allowed at the requested amount + assertThat(withdrawals.getWithdrawalList().get(0).getAmount()) + .isEqualTo(UInt64.valueOf(10_000L)); + } + @Test void electraPendingPartialWithdrawals() { spec = TestSpecFactory.createMinimalElectra(); diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java index 55ec0f3d2c4..778b7d5bdac 100644 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java +++ b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java @@ -2138,6 +2138,12 @@ public Withdrawal randomWithdrawal() { .create(randomUInt64(), randomValidatorIndex(), randomBytes20(), randomUInt64()); } + public Withdrawal randomWithdrawal(final UInt64 validatorIndex, final UInt64 amount) { + return getCapellaSchemaDefinitions(randomSlot()) + .getWithdrawalSchema() + .create(randomUInt64(), validatorIndex, randomBytes20(), amount); + } + public DepositRequest randomDepositRequestWithValidSignature(final UInt64 index) { final BLSKeyPair keyPair = randomKeyPair(); final DepositMessage depositMessage = From 4f92f4c07bef2d4c27c4a1866590e5b338dd2457 Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Thu, 17 Apr 2025 18:36:32 +0200 Subject: [PATCH 13/33] Use `URI.create(...).toURL()` removing URL constructor deprecation (#9364) --- .../beaconrestapi/beacon/SwaggerUiTest.java | 8 ++++---- .../teku/networking/nat/UpnpClientTest.java | 3 +-- .../teku/cli/options/MetricsOptions.java | 5 +++-- .../teku/cli/options/ValidatorKeysOptions.java | 5 +++-- .../teku/cli/options/ValidatorOptionsTest.java | 5 +++-- .../AbstractExternalSignerIntegrationTest.java | 5 +++-- ...actSecureExternalSignerIntegrationTest.java | 3 ++- ...ExternalSignerBasicAuthIntegrationTest.java | 6 ++++-- ...xternalSignerUpcheckTLSIntegrationTest.java | 4 ++-- .../client/loader/PublicKeyLoader.java | 4 ++-- .../proposerconfig/ProposerConfigProvider.java | 5 +++-- .../client/restapi/ValidatorTypes.java | 3 ++- .../validator/client/OwnedKeyManagerTest.java | 15 +++++++++++---- .../loader/ExternalValidatorSourceTest.java | 18 ++++++++++-------- .../client/loader/PublicKeyLoaderTest.java | 9 +++++---- .../loader/SlashingProtectionLoggerTest.java | 4 ++-- .../client/loader/ValidatorLoaderTest.java | 3 ++- .../client/restapi/ValidatorTypesTest.java | 10 +++++----- .../restapi/apis/PostRemoteKeysTest.java | 5 +++-- .../signer/ExternalSignerStatusLoggerTest.java | 3 ++- 20 files changed, 72 insertions(+), 51 deletions(-) diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/beacon/SwaggerUiTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/beacon/SwaggerUiTest.java index ea44cfa0a76..fa6f2630fbf 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/beacon/SwaggerUiTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/beacon/SwaggerUiTest.java @@ -18,7 +18,7 @@ import static tech.pegasys.teku.infrastructure.restapi.SwaggerUIBuilder.SWAGGER_INITIALIZER_JS; import java.io.IOException; -import java.net.URL; +import java.net.URI; import java.util.HashSet; import java.util.Optional; import java.util.Set; @@ -79,18 +79,18 @@ private static Set findAssets(final String url) throws IOException { Document doc = Jsoup.connect(url).data("query", "Java").userAgent("Mozilla").timeout(3000).get(); - final URL baseUrl = new URL(url); + final URI baseUrl = URI.create(url); // Resources Elements resources = doc.select("link[href]"); for (Element element : resources) { - links.add(new URL(baseUrl, element.attr("href")).getPath()); + links.add(baseUrl.resolve(element.attr("href")).getPath()); } // Scripts Elements scripts = doc.select("script"); for (Element element : scripts) { - links.add(new URL(baseUrl, element.attr("src")).getPath()); + links.add(baseUrl.resolve(element.attr("src")).getPath()); } return links; diff --git a/networking/nat/src/test/java/tech/pegasys/teku/networking/nat/UpnpClientTest.java b/networking/nat/src/test/java/tech/pegasys/teku/networking/nat/UpnpClientTest.java index 0cee3ed7a20..f07ea5c43fa 100644 --- a/networking/nat/src/test/java/tech/pegasys/teku/networking/nat/UpnpClientTest.java +++ b/networking/nat/src/test/java/tech/pegasys/teku/networking/nat/UpnpClientTest.java @@ -20,7 +20,6 @@ import java.net.InetAddress; import java.net.URI; -import java.net.URL; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.jupnp.UpnpService; @@ -76,7 +75,7 @@ public void registryListenerShouldDetectService() throws Exception { new RemoteDeviceIdentity( UDN.valueOf(NatManager.SERVICE_TYPE_WAN_IP_CONNECTION), 3600, - new URL("http://127.63.31.15/"), + URI.create("http://127.63.31.15/").toURL(), null, InetAddress.getByName("127.63.31.15")), new UDADeviceType("WANConnectionDevice"), diff --git a/teku/src/main/java/tech/pegasys/teku/cli/options/MetricsOptions.java b/teku/src/main/java/tech/pegasys/teku/cli/options/MetricsOptions.java index 559df1a407e..43a566184b8 100644 --- a/teku/src/main/java/tech/pegasys/teku/cli/options/MetricsOptions.java +++ b/teku/src/main/java/tech/pegasys/teku/cli/options/MetricsOptions.java @@ -15,6 +15,7 @@ import com.google.common.base.Strings; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.List; import java.util.Set; @@ -225,8 +226,8 @@ private URL parseMetricsEndpointUrl() { return null; } try { - return new URL(metricsEndpoint); - } catch (MalformedURLException e) { + return URI.create(metricsEndpoint).toURL(); + } catch (IllegalArgumentException | MalformedURLException e) { throw new InvalidConfigurationException( "Invalid configuration. Metrics Endpoint has invalid syntax", e); } diff --git a/teku/src/main/java/tech/pegasys/teku/cli/options/ValidatorKeysOptions.java b/teku/src/main/java/tech/pegasys/teku/cli/options/ValidatorKeysOptions.java index 3417f334e32..e5ab14c0cb8 100644 --- a/teku/src/main/java/tech/pegasys/teku/cli/options/ValidatorKeysOptions.java +++ b/teku/src/main/java/tech/pegasys/teku/cli/options/ValidatorKeysOptions.java @@ -15,6 +15,7 @@ import com.google.common.base.Strings; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.nio.file.Path; import java.time.Duration; @@ -131,8 +132,8 @@ private URL parseValidatorExternalSignerUrl() { return null; } try { - return new URL(validatorExternalSignerUrl); - } catch (MalformedURLException e) { + return URI.create(validatorExternalSignerUrl).toURL(); + } catch (IllegalArgumentException | MalformedURLException e) { throw new InvalidConfigurationException( "Invalid configuration. Signer URL has invalid syntax", e); } diff --git a/teku/src/test/java/tech/pegasys/teku/cli/options/ValidatorOptionsTest.java b/teku/src/test/java/tech/pegasys/teku/cli/options/ValidatorOptionsTest.java index 900abd18b7a..82114cf16d0 100644 --- a/teku/src/test/java/tech/pegasys/teku/cli/options/ValidatorOptionsTest.java +++ b/teku/src/test/java/tech/pegasys/teku/cli/options/ValidatorOptionsTest.java @@ -17,7 +17,7 @@ import static tech.pegasys.teku.validator.api.ValidatorConfig.DEFAULT_BUILDER_REGISTRATION_GAS_LIMIT; import java.net.MalformedURLException; -import java.net.URL; +import java.net.URI; import java.time.Duration; import java.util.Optional; import org.apache.tuweni.bytes.Bytes32; @@ -48,7 +48,8 @@ public void shouldReadFromConfigurationFile() throws MalformedURLException { assertThat(config.getValidatorExternalSignerPublicKeySources()) .containsExactly( "0xad113a7d152dc74ae2b26db65bfb89ed07501c818bf47671c6d34e5a2f7224e4c5525dd4fddaa93aa328da86b7205009"); - assertThat(config.getValidatorExternalSignerUrl()).isEqualTo(new URL("https://signer.url/")); + assertThat(config.getValidatorExternalSignerUrl()) + .isEqualTo(URI.create("https://signer.url/").toURL()); assertThat(config.getValidatorExternalSignerTimeout()).isEqualTo(Duration.ofMillis(1234)); assertThat(config.getGraffitiProvider().get()).isEqualTo(Optional.of(graffiti)); } diff --git a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/AbstractExternalSignerIntegrationTest.java b/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/AbstractExternalSignerIntegrationTest.java index 8ff02d4ab0b..41534936c0e 100644 --- a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/AbstractExternalSignerIntegrationTest.java +++ b/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/AbstractExternalSignerIntegrationTest.java @@ -14,7 +14,7 @@ package tech.pegasys.teku.validator.client.signer; import java.net.MalformedURLException; -import java.net.URL; +import java.net.URI; import java.net.http.HttpClient; import java.time.Duration; import java.util.List; @@ -60,7 +60,8 @@ void setup(final ClientAndServer client) throws MalformedURLException { final ValidatorConfig config = ValidatorConfig.builder() .validatorExternalSignerPublicKeySources(List.of(KEYPAIR.getPublicKey().toString())) - .validatorExternalSignerUrl(new URL("http://127.0.0.1:" + client.getLocalPort())) + .validatorExternalSignerUrl( + URI.create("http://127.0.0.1:" + client.getLocalPort()).toURL()) .validatorExternalSignerTimeout(TIMEOUT) .build(); final Supplier externalSignerHttpClientFactory = diff --git a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/AbstractSecureExternalSignerIntegrationTest.java b/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/AbstractSecureExternalSignerIntegrationTest.java index de294236102..b9168e186ab 100644 --- a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/AbstractSecureExternalSignerIntegrationTest.java +++ b/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/AbstractSecureExternalSignerIntegrationTest.java @@ -15,6 +15,7 @@ import com.google.common.io.Resources; import java.net.MalformedURLException; +import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.net.http.HttpClient; @@ -126,6 +127,6 @@ void tearDown() { } protected URL getUrl() throws MalformedURLException { - return new URL("https://127.0.0.1:" + client.getLocalPort()); + return URI.create("https://127.0.0.1:" + client.getLocalPort()).toURL(); } } diff --git a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerBasicAuthIntegrationTest.java b/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerBasicAuthIntegrationTest.java index d587f389ac6..ce3742550ef 100644 --- a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerBasicAuthIntegrationTest.java +++ b/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerBasicAuthIntegrationTest.java @@ -19,6 +19,7 @@ import com.google.common.base.Splitter; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.Base64; @@ -37,8 +38,9 @@ public class ExternalSignerBasicAuthIntegrationTest @Override protected URL getUrl() throws MalformedURLException { - return new URL( - String.format("https://%s:%s@127.0.0.1:%s", username, password, client.getLocalPort())); + return URI.create( + String.format("https://%s:%s@127.0.0.1:%s", username, password, client.getLocalPort())) + .toURL(); } @Test diff --git a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerUpcheckTLSIntegrationTest.java b/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerUpcheckTLSIntegrationTest.java index 85f86d22597..7e11bfac1f0 100644 --- a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerUpcheckTLSIntegrationTest.java +++ b/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerUpcheckTLSIntegrationTest.java @@ -18,7 +18,7 @@ import static org.mockserver.model.HttpResponse.response; import java.net.MalformedURLException; -import java.net.URL; +import java.net.URI; import org.junit.jupiter.api.Test; public class ExternalSignerUpcheckTLSIntegrationTest @@ -48,7 +48,7 @@ void upcheckReturnsFalseWhenServerIsDown() throws MalformedURLException { new ExternalSignerUpcheck( externalSignerHttpClientFactory.get(), // an unused port - new URL("https://127.0.0.1:79"), + URI.create("https://127.0.0.1:79").toURL(), validatorConfig.getValidatorExternalSignerTimeout()); assertThat(externalSignerUpcheck.upcheck()).isFalse(); } diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/loader/PublicKeyLoader.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/loader/PublicKeyLoader.java index be01a3703f6..7b0d0036c14 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/loader/PublicKeyLoader.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/loader/PublicKeyLoader.java @@ -97,9 +97,9 @@ public List getPublicKeys(final List sources) { private Stream readKeysFromUrl(final String url) { try { - final String[] keys = objectMapper.readValue(new URL(url), String[].class); + final String[] keys = objectMapper.readValue(URI.create(url).toURL(), String[].class); return Arrays.stream(keys).map(key -> BLSPublicKey.fromSSZBytes(Bytes.fromHexString(key))); - } catch (IOException ex) { + } catch (IllegalArgumentException | IOException ex) { throw new InvalidConfigurationException("Failed to load public keys from URL " + url, ex); } } diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/proposerconfig/ProposerConfigProvider.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/proposerconfig/ProposerConfigProvider.java index 4e708e8068b..8f130bc2be8 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/proposerconfig/ProposerConfigProvider.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/proposerconfig/ProposerConfigProvider.java @@ -15,6 +15,7 @@ import java.io.File; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.Optional; import tech.pegasys.teku.infrastructure.async.AsyncRunner; @@ -36,10 +37,10 @@ static ProposerConfigProvider create( if (source.isPresent()) { URL sourceUrl; try { - sourceUrl = new URL(source.get()); + sourceUrl = URI.create(source.get()).toURL(); return new UrlProposerConfigProvider( asyncRunner, refresh, proposerConfigLoader, timeProvider, sourceUrl); - } catch (MalformedURLException e1) { + } catch (IllegalArgumentException | MalformedURLException e1) { try { sourceUrl = new File(source.get()).toURI().toURL(); } catch (MalformedURLException e2) { diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/ValidatorTypes.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/ValidatorTypes.java index 9c1ade897b9..aaf10a5f168 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/ValidatorTypes.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/ValidatorTypes.java @@ -23,6 +23,7 @@ import static tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition.listOf; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.List; import java.util.Optional; @@ -111,7 +112,7 @@ public class ValidatorTypes { .parser( url -> { try { - return new URL(url); + return URI.create(url).toURL(); } catch (MalformedURLException e) { throw new IllegalArgumentException(e); } diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/OwnedKeyManagerTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/OwnedKeyManagerTest.java index a6e8477d5ad..806ae9c6ac7 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/OwnedKeyManagerTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/OwnedKeyManagerTest.java @@ -31,6 +31,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; @@ -274,9 +275,13 @@ void shouldReturnRemoteValidatorsList() throws MalformedURLException { List externalValidators = Arrays.asList( new ExternalValidator( - keyPair1.getPublicKey(), Optional.of(new URL("http://example.com/")), true), + keyPair1.getPublicKey(), + Optional.of(URI.create("http://example.com/").toURL()), + true), new ExternalValidator( - keyPair2.getPublicKey(), Optional.of(new URL("http://example.com/")), false)); + keyPair2.getPublicKey(), + Optional.of(URI.create("http://example.com/").toURL()), + false)); assertThat(result).isEqualTo(externalValidators); } @@ -404,7 +409,8 @@ void shouldAddLocalKeysWhenDoppelgangerDetectionException() @Test void shouldDetectDoppelgangerAndIgnoreExternalKey() throws MalformedURLException { - when(signer.getSigningServiceUrl()).thenReturn(Optional.of(new URL("https://url.test"))); + when(signer.getSigningServiceUrl()) + .thenReturn(Optional.of(URI.create("https://url.test").toURL())); ExternalValidatorImportResult externalDoppelgangerImportResult = new ExternalValidatorImportResult.Builder( @@ -456,7 +462,8 @@ void shouldDetectDoppelgangerAndIgnoreExternalKey() throws MalformedURLException @Test void shouldAddExternalKeysWhenDoppelgangerDetectionException() throws MalformedURLException { - when(signer.getSigningServiceUrl()).thenReturn(Optional.of(new URL("https://url.test"))); + when(signer.getSigningServiceUrl()) + .thenReturn(Optional.of(URI.create("https://url.test").toURL())); ExternalValidatorImportResult doppelgangerImportResult = new ExternalValidatorImportResult.Builder( diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/ExternalValidatorSourceTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/ExternalValidatorSourceTest.java index 2f6e553f04e..39906f55abe 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/ExternalValidatorSourceTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/ExternalValidatorSourceTest.java @@ -23,6 +23,7 @@ import com.google.common.base.Charsets; import java.io.IOException; +import java.net.URI; import java.net.URL; import java.net.http.HttpClient; import java.net.http.HttpResponse; @@ -81,7 +82,7 @@ public ExternalValidatorSourceTest() {} void setup(@TempDir final Path tempDir) throws IOException, InterruptedException { config = ValidatorConfig.builder() - .validatorExternalSignerUrl(new URL("http://localhost:9000")) + .validatorExternalSignerUrl(URI.create("http://localhost:9000").toURL()) .build(); externalSignerTaskQueue = ThrottlingTaskQueueWithPriority.create( @@ -117,7 +118,7 @@ void shouldDeleteValidator(@TempDir final Path tempDir) throws IOException { final AddValidatorResult addValidatorResult = externalValidatorSource.addValidator(publicKey, Optional.empty()); - assertImportedSuccessfully(addValidatorResult, new URL("http://localhost:9000")); + assertImportedSuccessfully(addValidatorResult, URI.create("http://localhost:9000").toURL()); assertFileContent(tempDir, publicKey, "{\"pubkey\":\"" + publicKey + "\"}"); final DeleteKeyResult result = externalValidatorSource.deleteValidator(publicKey); @@ -167,7 +168,7 @@ void addValidator_shouldGetConfigUrlWhenNotProvided(@TempDir final Path tempDir) @Test void addValidator_shouldGetUrlIfProvided(@TempDir final Path tempDir) throws IOException { final BLSPublicKey publicKey = dataStructureUtil.randomPublicKey(); - final URL url = new URL("http://host.com"); + final URL url = URI.create("http://host.com").toURL(); final ExternalValidatorSource externalValidatorSource = newExternalValidatorSource(tempDir, false); @@ -204,7 +205,8 @@ void shouldLoadExternalValidators(@TempDir final Path tempDir) throws IOExceptio newExternalValidatorSource(tempDir, false); final BLSPublicKey publicKey1 = dataStructureUtil.randomPublicKey(); - createRemoteKeyFile(dataDirLayout, publicKey1, Optional.of(new URL("http://host.com"))); + createRemoteKeyFile( + dataDirLayout, publicKey1, Optional.of(URI.create("http://host.com").toURL())); final BLSPublicKey publicKey2 = dataStructureUtil.randomPublicKey(); createRemoteKeyFile(dataDirLayout, publicKey2, Optional.empty()); @@ -225,8 +227,8 @@ void shouldLoadExternalValidators(@TempDir final Path tempDir) throws IOExceptio assertThat(result) .containsExactlyInAnyOrder( - new ValidatorProviderInfo(publicKey1, new URL("http://host.com")), - new ValidatorProviderInfo(publicKey2, new URL("http://localhost:9000"))); + new ValidatorProviderInfo(publicKey1, URI.create("http://host.com").toURL()), + new ValidatorProviderInfo(publicKey2, URI.create("http://localhost:9000").toURL())); } @Test @@ -253,8 +255,8 @@ void shouldGetAvailableReadOnlyValidators(@TempDir final Path tempDir) throws IO assertThat(result) .containsExactlyInAnyOrder( - new ValidatorProviderInfo(publicKey1, new URL("http://localhost:9000")), - new ValidatorProviderInfo(publicKey2, new URL("http://localhost:9000"))); + new ValidatorProviderInfo(publicKey1, URI.create("http://localhost:9000").toURL()), + new ValidatorProviderInfo(publicKey2, URI.create("http://localhost:9000").toURL())); } private void createRemoteKeyFile( diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/PublicKeyLoaderTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/PublicKeyLoaderTest.java index 3fa221d8793..acf6881edf1 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/PublicKeyLoaderTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/PublicKeyLoaderTest.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.net.UnknownHostException; import java.net.http.HttpClient; @@ -53,7 +54,7 @@ public class PublicKeyLoaderTest { private final BLSPublicKey secondKey = BLSPublicKey.fromBytesCompressed(Bytes48.fromHexString(secondKeyStr)); - private final URL externalSignerUrl = new URL("http://external.sigener"); + private final URL externalSignerUrl = URI.create("http://external.sigener").toURL(); private final ObjectMapper mapper = mock(ObjectMapper.class); private final HttpClient httpClient = mock(HttpClient.class); @@ -71,7 +72,7 @@ public PublicKeyLoaderTest() throws MalformedURLException {} void setUp() throws IOException, InterruptedException { // URL response final String[] values = {firstKeyStr, secondKeyStr}; - when(mapper.readValue(new URL(urlSource), String[].class)).thenReturn(values); + when(mapper.readValue(URI.create(urlSource).toURL(), String[].class)).thenReturn(values); // external signer response final String jsonValues = String.format("[%s, %s]", firstKeyStr, secondKeyStr); @@ -116,14 +117,14 @@ void shouldHandleDuplicatesAcrossSources() { @Test void shouldHandleEmptyResponseFromUrl() throws IOException { final String[] values = {}; - when(mapper.readValue(new URL(urlSource), String[].class)).thenReturn(values); + when(mapper.readValue(URI.create(urlSource).toURL(), String[].class)).thenReturn(values); assertThat(loader.getPublicKeys(List.of(urlSource, secondKeyStr))).containsExactly(secondKey); } @Test void shouldThrowInvalidConfigurationExceptionWhenUrlFailsToLoad() throws Exception { final UnknownHostException exception = new UnknownHostException("Unknown host"); - when(mapper.readValue(new URL(urlSource), String[].class)).thenThrow(exception); + when(mapper.readValue(URI.create(urlSource).toURL(), String[].class)).thenThrow(exception); assertThatThrownBy(() -> loader.getPublicKeys(List.of(urlSource))) .isInstanceOf(InvalidConfigurationException.class) .hasRootCause(exception); diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/SlashingProtectionLoggerTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/SlashingProtectionLoggerTest.java index 7d16114a17e..8452bc5e3b7 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/SlashingProtectionLoggerTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/SlashingProtectionLoggerTest.java @@ -22,7 +22,7 @@ import static org.mockito.Mockito.when; import java.net.MalformedURLException; -import java.net.URL; +import java.net.URI; import java.net.http.HttpClient; import java.time.Duration; import java.util.ArrayList; @@ -168,7 +168,7 @@ private Validator createUnProtectedValidator(final BLSPublicKey publicKey) { new ExternalSigner( spec, mock(HttpClient.class), - new URL("http://127.0.0.1/"), + URI.create("http://127.0.0.1/").toURL(), publicKey, TIMEOUT, mock(ThrottlingTaskQueueWithPriority.class), diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/ValidatorLoaderTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/ValidatorLoaderTest.java index 8fd9ffa07a0..d073ed0403c 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/ValidatorLoaderTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/loader/ValidatorLoaderTest.java @@ -26,6 +26,7 @@ import java.io.File; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.net.http.HttpClient; import java.net.http.HttpResponse; @@ -89,7 +90,7 @@ class ValidatorLoaderTest { static { try { - SIGNER_URL = new URL("http://localhost:9000"); + SIGNER_URL = URI.create("http://localhost:9000").toURL(); } catch (MalformedURLException e) { throw new RuntimeException(e); } diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/restapi/ValidatorTypesTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/restapi/ValidatorTypesTest.java index 13b18c39361..aee4bd1f152 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/restapi/ValidatorTypesTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/restapi/ValidatorTypesTest.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.HashMap; import java.util.List; @@ -174,7 +175,7 @@ void postRemoteKeysRequest_shouldFormatPostRemoteKeysRequestOptionalUrl() throws final List externalValidators = List.of( new ExternalValidator(publicKey1, Optional.empty()), - new ExternalValidator(publicKey2, Optional.of(new URL("http://host.com")))); + new ExternalValidator(publicKey2, Optional.of(URI.create("http://host.com").toURL()))); final PostRemoteKeysRequest request = new PostRemoteKeysRequest(externalValidators); final Map result = JsonTestUtil.parse(JsonUtil.serialize(request, ValidatorTypes.POST_REMOTE_KEYS_REQUEST)); @@ -188,7 +189,7 @@ void postRemoteKeysRequest_shouldFormatPostRemoteKeysRequestOptionalUrl() throws Map.of("pubkey", publicKey1.toString()), Map.of( "pubkey", publicKey2.toString(), - "url", new URL("http://host.com").toString())); + "url", URI.create("http://host.com").toURL().toString())); } @Test @@ -208,8 +209,7 @@ void externalValidatorType_invalidUrl() { parse( "{ \"pubkey\": \"0xa4654ac3105a58c7634031b5718c4880c87300f72091cfbc69fe490b71d93a671e00e80a388e1ceb8ea1de112003e976\", \"url\": \"/\", \"readonly\": true}", ValidatorTypes.EXTERNAL_VALIDATOR_RESPONSE_TYPE)) - .hasCauseInstanceOf(IllegalArgumentException.class) - .hasRootCauseInstanceOf(MalformedURLException.class); + .hasRootCauseInstanceOf(IllegalArgumentException.class); } @Test @@ -224,7 +224,7 @@ void externalValidatorStore_urlPresent() throws JsonProcessingException, Malform BLSPublicKey publicKey = dataStructureUtil.randomPublicKey(); checkExternalValidatorStoreRoundTrip( publicKey, - Optional.of(new URL("http://host.com")), + Optional.of(URI.create("http://host.com").toURL()), "{\"pubkey\":\"" + publicKey + "\",\"url\":\"http://host.com\"}"); } diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/restapi/apis/PostRemoteKeysTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/restapi/apis/PostRemoteKeysTest.java index 88f9979ad8a..3546368e073 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/restapi/apis/PostRemoteKeysTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/restapi/apis/PostRemoteKeysTest.java @@ -24,6 +24,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.List; import java.util.Optional; @@ -61,7 +62,7 @@ void validResponse_shouldGiveValidPostKeyResults() List.of( new ExternalValidator( BLSTestUtil.randomKeyPair(1).getPublicKey(), - Optional.of(new URL("http://host.com"))), + Optional.of(URI.create("http://host.com").toURL())), new ExternalValidator(BLSTestUtil.randomKeyPair(2).getPublicKey(), Optional.empty())); final PostRemoteKeysRequest body = new PostRemoteKeysRequest(externalValidators); when(request.getRequestBody()).thenReturn(body); @@ -80,7 +81,7 @@ void duplicate_shouldGiveDuplicateResponse() throws JsonProcessingException, MalformedURLException { BLSPublicKey publicKey = BLSTestUtil.randomKeyPair(1).getPublicKey(); - URL url = new URL("http://host.com"); + URL url = URI.create("http://host.com").toURL(); List externalValidators = List.of( diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerStatusLoggerTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerStatusLoggerTest.java index e7b07208c35..1ddfd0f8075 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerStatusLoggerTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerStatusLoggerTest.java @@ -19,6 +19,7 @@ import static org.mockito.Mockito.verify; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.concurrent.atomic.AtomicBoolean; import org.assertj.core.api.Assertions; @@ -39,7 +40,7 @@ class ExternalSignerStatusLoggerTest { static { try { - SIGNER_URL = new URL("http://localhost:9000"); + SIGNER_URL = URI.create("http://localhost:9000").toURL(); } catch (final MalformedURLException e) { throw new RuntimeException(e); } From c2442a41f3e0bf8586780362e47c2d8fac31bb50 Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Wed, 23 Apr 2025 23:58:37 +0200 Subject: [PATCH 14/33] clear-changelog (#9366) --- CHANGELOG.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e95975008c9..a974944bf03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,15 +7,7 @@ ## Unreleased Changes ### Breaking Changes -- It is no longer possible to set both `--checkpoint-sync-url` and `--initial-state`. If your node fails to start after upgrade, ensure that only one of these is set. ### Additions and Improvements -- Updated Teku bootnode ENR on Sepolia and Mainnet -- Scheduled Electra for Mainnet at epoch 364032 (May 7, 2025, 10:05:11am UTC) -- Scheduled Electra for Gnosis at epoch 1337856 (April 30, 2025, 14:03:40 UTC) -- Third party library updates. -### Bug Fixes - - It is no longer possible to set both `--checkpoint-sync-url` and `--initial-state`. -- Aggregating attestations using DVT does not cause missed aggregations when multiple validators are - scheduled for the same slot [#9347](https://github.com/Consensys/teku/issues/9347). \ No newline at end of file +### Bug Fixes \ No newline at end of file From e4adc715235912540c027529e95fe537b37a8751 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Mon, 28 Apr 2025 11:38:16 +1200 Subject: [PATCH 15/33] New infra stream module (#9362) --- infrastructure/async/build.gradle | 1 + .../AbstractDelegatingStreamHandler.java | 33 ++++ .../async/stream/AsyncIterator.java | 29 +++ .../async/stream/AsyncIteratorCollector.java | 50 +++++ .../async/stream/AsyncQueue.java | 28 +++ .../async/stream/AsyncStream.java | 143 ++++++++++++++ .../async/stream/AsyncStreamBase.java | 21 +++ .../async/stream/AsyncStreamHandler.java | 45 +++++ .../async/stream/AsyncStreamPublisher.java | 16 ++ .../async/stream/AsyncStreamSlicer.java | 73 ++++++++ .../async/stream/AsyncStreamTransformer.java | 19 ++ .../async/stream/AsyncStreamVisitor.java | 23 +++ .../stream/BufferingStreamPublisher.java | 109 +++++++++++ .../async/stream/CircularBuf.java | 45 +++++ .../async/stream/FilteringStreamHandler.java | 37 ++++ .../async/stream/FlattenStreamHandler.java | 55 ++++++ .../async/stream/FutureAsyncIteratorImpl.java | 33 ++++ .../async/stream/LimitedAsyncQueue.java | 68 +++++++ .../async/stream/MapStreamHandler.java | 37 ++++ .../async/stream/SliceStreamHandler.java | 44 +++++ .../async/stream/SyncToAsyncIteratorImpl.java | 71 +++++++ .../async/stream/TransformAsyncIterator.java | 31 +++ .../infrastructure/async/stream/Util.java | 24 +++ .../async/stream/VisitorHandler.java | 43 +++++ .../stream/AsyncStreamPublisherTest.java | 169 +++++++++++++++++ .../async/stream/AsyncStreamTest.java | 176 ++++++++++++++++++ 26 files changed, 1423 insertions(+) create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AbstractDelegatingStreamHandler.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncIterator.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncIteratorCollector.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncQueue.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStream.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamBase.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamHandler.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamPublisher.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamSlicer.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamTransformer.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamVisitor.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/BufferingStreamPublisher.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/CircularBuf.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FilteringStreamHandler.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FlattenStreamHandler.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FutureAsyncIteratorImpl.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/LimitedAsyncQueue.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/MapStreamHandler.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/SliceStreamHandler.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/SyncToAsyncIteratorImpl.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/TransformAsyncIterator.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/Util.java create mode 100644 infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/VisitorHandler.java create mode 100644 infrastructure/async/src/test/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamPublisherTest.java create mode 100644 infrastructure/async/src/test/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamTest.java diff --git a/infrastructure/async/build.gradle b/infrastructure/async/build.gradle index fdf3076d418..5788fd1815c 100644 --- a/infrastructure/async/build.gradle +++ b/infrastructure/async/build.gradle @@ -1,6 +1,7 @@ dependencies { implementation project(":infrastructure:metrics") implementation project(":infrastructure:time") + implementation project(":infrastructure:exceptions") implementation 'com.google.guava:guava' testImplementation testFixtures(project(":infrastructure:metrics")) diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AbstractDelegatingStreamHandler.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AbstractDelegatingStreamHandler.java new file mode 100644 index 00000000000..c1593b577e1 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AbstractDelegatingStreamHandler.java @@ -0,0 +1,33 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +abstract class AbstractDelegatingStreamHandler implements AsyncStreamHandler { + + protected final AsyncStreamHandler delegate; + + protected AbstractDelegatingStreamHandler(final AsyncStreamHandler delegate) { + this.delegate = delegate; + } + + @Override + public void onComplete() { + delegate.onComplete(); + } + + @Override + public void onError(final Throwable t) { + delegate.onError(t); + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncIterator.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncIterator.java new file mode 100644 index 00000000000..20a8b6fe8ee --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncIterator.java @@ -0,0 +1,29 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +abstract class AsyncIterator implements AsyncStream { + + abstract void iterate(AsyncStreamHandler callback); + + @Override + public AsyncIterator transform(final AsyncStreamTransformer transformer) { + return new TransformAsyncIterator<>(this, transformer); + } + + @Override + public void consume(final AsyncStreamHandler consumer) { + iterate(consumer); + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncIteratorCollector.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncIteratorCollector.java new file mode 100644 index 00000000000..f5615451c9a --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncIteratorCollector.java @@ -0,0 +1,50 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import java.util.stream.Collector; +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class AsyncIteratorCollector implements AsyncStreamHandler { + private final A accumulator; + private final Collector collector; + + private final SafeFuture promise = new SafeFuture<>(); + + public AsyncIteratorCollector(final Collector collector) { + this.collector = collector; + this.accumulator = collector.supplier().get(); + } + + @Override + public SafeFuture onNext(final T t) { + collector.accumulator().accept(accumulator, t); + return TRUE_FUTURE; + } + + @Override + public void onComplete() { + final R result = collector.finisher().apply(accumulator); + promise.complete(result); + } + + @Override + public void onError(final Throwable t) { + promise.completeExceptionally(t); + } + + public SafeFuture getPromise() { + return promise; + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncQueue.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncQueue.java new file mode 100644 index 00000000000..86ff1892918 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncQueue.java @@ -0,0 +1,28 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +/** + * FIFO queue analogous to {@link java.util.concurrent.BlockingQueue} which returns {@link + * SafeFuture} element promise from {@link #take()} instead of blocking when no elements available + * in the queue. + */ +interface AsyncQueue { + + void put(T item); + + SafeFuture take(); +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStream.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStream.java new file mode 100644 index 00000000000..a7881f19956 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStream.java @@ -0,0 +1,143 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import static tech.pegasys.teku.infrastructure.async.stream.Util.noCallBinaryOperator; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.CompletionStage; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collector; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +/** Similar to {@link Stream} but may perform async operations */ +public interface AsyncStream extends AsyncStreamBase { + + static AsyncStream empty() { + return of(); + } + + static AsyncStream exceptional(final Throwable error) { + final AsyncStreamPublisher ret = createPublisher(1); + ret.onError(error); + return ret; + } + + @SafeVarargs + static AsyncStream of(final T... elements) { + return create(List.of(elements).iterator()); + } + + static AsyncStream create(final Stream stream) { + return create(stream.iterator()); + } + + static AsyncStream create(final Iterator iterator) { + return new SyncToAsyncIteratorImpl<>(iterator); + } + + static AsyncStream create(final CompletionStage future) { + return new FutureAsyncIteratorImpl<>(future); + } + + static AsyncStreamPublisher createPublisher(final int maxBufferSize) { + return new BufferingStreamPublisher<>(maxBufferSize); + } + + // transformation + + default AsyncStream flatMap(final Function> toStreamMapper) { + return map(toStreamMapper).transform(FlattenStreamHandler::new); + } + + default AsyncStream map(final Function mapper) { + return transform(sourceCallback -> new MapStreamHandler<>(sourceCallback, mapper)); + } + + default AsyncStream filter(final Predicate filter) { + return transform(sourceCallback -> new FilteringStreamHandler<>(sourceCallback, filter)); + } + + default AsyncStream peek(final AsyncStreamVisitor visitor) { + return transform(src -> new VisitorHandler<>(src, visitor)); + } + + default AsyncStream mapAsync(final Function> mapper) { + return flatMap(e -> AsyncStream.create(mapper.apply(e))); + } + + // slicing + + default AsyncStream slice(final AsyncStreamSlicer slicer) { + return transform(sourceCallback -> new SliceStreamHandler<>(sourceCallback, slicer)); + } + + default AsyncStream limit(final long count) { + return slice(AsyncStreamSlicer.limit(count)); + } + + default AsyncStream takeWhile(final Predicate whileCondition) { + return slice(AsyncStreamSlicer.takeWhile(whileCondition)); + } + + default AsyncStream takeUntil(final Predicate untilCondition, final boolean includeLast) { + AsyncStreamSlicer whileSlicer = AsyncStreamSlicer.takeWhile(untilCondition.negate()); + AsyncStreamSlicer untilSlicer = + includeLast ? whileSlicer.then(AsyncStreamSlicer.limit(1)) : whileSlicer; + return slice(untilSlicer); + } + + // consuming + + default SafeFuture collect(final Collector collector) { + final AsyncIteratorCollector asyncIteratorCollector = + new AsyncIteratorCollector<>(collector); + consume(asyncIteratorCollector); + return asyncIteratorCollector.getPromise(); + } + + default SafeFuture> findFirst() { + return this.limit(1) + .toList() + .thenApply(l -> l.isEmpty() ? Optional.empty() : Optional.of(l.getFirst())); + } + + default SafeFuture forEach(final Consumer consumer) { + return collect(Collector.of(() -> null, (a, t) -> consumer.accept(t), noCallBinaryOperator())); + } + + default > SafeFuture collect(final C targetCollection) { + return collect(Collectors.toCollection(() -> targetCollection)); + } + + default SafeFuture> toList() { + return collect(Collectors.toUnmodifiableList()); + } + + default SafeFuture> findLast() { + return collectLast(1) + .thenApply(l -> l.isEmpty() ? Optional.empty() : Optional.of(l.getFirst())); + } + + default SafeFuture> collectLast(final int count) { + return collect(CircularBuf.createCollector(count)); + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamBase.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamBase.java new file mode 100644 index 00000000000..0f2a172aaff --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamBase.java @@ -0,0 +1,21 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +public interface AsyncStreamBase { + + AsyncStream transform(AsyncStreamTransformer transformer); + + void consume(AsyncStreamHandler consumer); +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamHandler.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamHandler.java new file mode 100644 index 00000000000..25a3903673f --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamHandler.java @@ -0,0 +1,45 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +/** + * Internal {@link AsyncStream} implementation interface which is analogous to {@link + * java.util.concurrent.Flow.Subscriber} in RX world + */ +public interface AsyncStreamHandler { + + SafeFuture TRUE_FUTURE = SafeFuture.completedFuture(true); + SafeFuture FALSE_FUTURE = SafeFuture.completedFuture(false); + + /** + * Called when next element is available + * + * @return The promise to the upstream handler if the further elements are expected. When the + * future is completed with false the only next call expected is {@link #onComplete()} + */ + SafeFuture onNext(T t); + + /** + * Called when the stream is complete. No other calls are expected after this call + * + *

An implementation MUST NOT call this method prior to {@link SafeFuture} returned + * from the last {@link #onNext(Object)} call is completed. + */ + void onComplete(); + + /** Called when upstream error happened Basically no other calls are expected after this */ + void onError(Throwable t); +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamPublisher.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamPublisher.java new file mode 100644 index 00000000000..1497cf8a2dc --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamPublisher.java @@ -0,0 +1,16 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +public interface AsyncStreamPublisher extends AsyncStreamHandler, AsyncStream {} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamSlicer.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamSlicer.java new file mode 100644 index 00000000000..d0165a10e7f --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamSlicer.java @@ -0,0 +1,73 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import static tech.pegasys.teku.infrastructure.async.stream.AsyncStreamSlicer.SliceResult.CONTINUE; +import static tech.pegasys.teku.infrastructure.async.stream.AsyncStreamSlicer.SliceResult.INCLUDE_AND_STOP; +import static tech.pegasys.teku.infrastructure.async.stream.AsyncStreamSlicer.SliceResult.SKIP_AND_STOP; + +import java.util.concurrent.atomic.AtomicLong; +import java.util.function.Predicate; + +public interface AsyncStreamSlicer { + + enum SliceResult { + CONTINUE, + INCLUDE_AND_STOP, + SKIP_AND_STOP + } + + SliceResult slice(final T element); + + static AsyncStreamSlicer limit(final long count) { + return new AsyncStreamSlicer<>() { + private final AtomicLong remainCount = new AtomicLong(count); + + @Override + public SliceResult slice(final T element) { + return remainCount.decrementAndGet() > 0 ? CONTINUE : INCLUDE_AND_STOP; + } + }; + } + + static AsyncStreamSlicer takeWhile(final Predicate condition) { + return t -> condition.test(t) ? CONTINUE : SKIP_AND_STOP; + } + + default AsyncStreamSlicer then(final AsyncStreamSlicer nextSlicer) { + return new AsyncStreamSlicer<>() { + private boolean thisSlicerCompleted = false; + + @Override + public SliceResult slice(final T element) { + if (thisSlicerCompleted) { + return nextSlicer.slice(element); + } else { + final SliceResult result = AsyncStreamSlicer.this.slice(element); + return switch (result) { + case CONTINUE -> result; + case SKIP_AND_STOP -> { + thisSlicerCompleted = true; + yield nextSlicer.slice(element); + } + case INCLUDE_AND_STOP -> { + thisSlicerCompleted = true; + yield CONTINUE; + } + }; + } + } + }; + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamTransformer.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamTransformer.java new file mode 100644 index 00000000000..1b0f747e1a6 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamTransformer.java @@ -0,0 +1,19 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +public interface AsyncStreamTransformer { + + AsyncStreamHandler process(AsyncStreamHandler downstreamHandler); +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamVisitor.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamVisitor.java new file mode 100644 index 00000000000..621a5252249 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamVisitor.java @@ -0,0 +1,23 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +public interface AsyncStreamVisitor { + + void onNext(T t); + + void onComplete(); + + void onError(Throwable t); +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/BufferingStreamPublisher.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/BufferingStreamPublisher.java new file mode 100644 index 00000000000..ede7d20600b --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/BufferingStreamPublisher.java @@ -0,0 +1,109 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class BufferingStreamPublisher extends AsyncIterator implements AsyncStreamPublisher { + + private final AsyncQueue> eventQueue; + + private boolean isDone = false; + + BufferingStreamPublisher(final int maxBufferSize) { + this.eventQueue = new LimitedAsyncQueue<>(maxBufferSize); + } + + sealed interface Event { + boolean isTerminal(); + } + + record ItemEvent(T item, SafeFuture nextReturn) implements Event { + @Override + public boolean isTerminal() { + return false; + } + } + + record CompleteEvent() implements Event { + @Override + public boolean isTerminal() { + return true; + } + } + + record ErrorEvent(Throwable error) implements Event { + @Override + public boolean isTerminal() { + return true; + } + } + + private synchronized void putNext(final Event event) { + if (isDone) { + throw new IllegalStateException("Stream has been done already"); + } + isDone = event.isTerminal(); + eventQueue.put(event); + } + + private SafeFuture> takeNext() { + return eventQueue.take(); + } + + @Override + void iterate(final AsyncStreamHandler delegate) { + SafeFuture.asyncDoWhile( + () -> + takeNext() + .thenCompose( + event -> + switch (event) { + case ItemEvent item -> { + delegate.onNext(item.item()).propagateTo(item.nextReturn()); + yield item.nextReturn(); + } + case CompleteEvent ignored -> { + delegate.onComplete(); + yield FALSE_FUTURE; + } + case ErrorEvent errorEvent -> { + delegate.onError(errorEvent.error()); + yield FALSE_FUTURE; + } + })) + .finish(delegate::onError); + } + + @Override + public SafeFuture onNext(final T t) { + SafeFuture ret = new SafeFuture<>(); + try { + putNext(new ItemEvent<>(t, ret)); + } catch (Exception e) { + ret.completeExceptionally(e); + } + return ret; + } + + @Override + public void onComplete() { + putNext(new CompleteEvent<>()); + } + + @Override + public synchronized void onError(final Throwable t) { + putNext(new ErrorEvent<>(t)); + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/CircularBuf.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/CircularBuf.java new file mode 100644 index 00000000000..7a36fbe77f8 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/CircularBuf.java @@ -0,0 +1,45 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import static tech.pegasys.teku.infrastructure.async.stream.Util.noCallBinaryOperator; + +import java.util.ArrayDeque; +import java.util.List; +import java.util.stream.Collector; + +class CircularBuf { + final ArrayDeque buf; + final int maxSize; + + public CircularBuf(final int maxSize) { + buf = new ArrayDeque<>(maxSize); + this.maxSize = maxSize; + } + + public void add(final C t) { + if (buf.size() == maxSize) { + buf.removeFirst(); + } + buf.add(t); + } + + public static Collector> createCollector(final int count) { + return Collector., List>of( + () -> new CircularBuf(count), + CircularBuf::add, + noCallBinaryOperator(), + buf -> buf.buf.stream().toList()); + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FilteringStreamHandler.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FilteringStreamHandler.java new file mode 100644 index 00000000000..f667f05cd3d --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FilteringStreamHandler.java @@ -0,0 +1,37 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import java.util.function.Predicate; +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class FilteringStreamHandler extends AbstractDelegatingStreamHandler { + + private final Predicate filter; + + protected FilteringStreamHandler( + final AsyncStreamHandler delegate, final Predicate filter) { + super(delegate); + this.filter = filter; + } + + @Override + public SafeFuture onNext(final T t) { + if (filter.test(t)) { + return delegate.onNext(t); + } else { + return TRUE_FUTURE; + } + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FlattenStreamHandler.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FlattenStreamHandler.java new file mode 100644 index 00000000000..77c4425645b --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FlattenStreamHandler.java @@ -0,0 +1,55 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class FlattenStreamHandler, T> + extends AbstractDelegatingStreamHandler { + + protected FlattenStreamHandler(final AsyncStreamHandler delegate) { + super(delegate); + } + + @Override + public SafeFuture onNext(final TCol asyncIterator) { + final SafeFuture ret = new SafeFuture<>(); + asyncIterator.consume( + new AsyncStreamHandler() { + @Override + public SafeFuture onNext(final T t) { + SafeFuture proceedFuture = delegate.onNext(t); + + return proceedFuture.thenPeek( + proceed -> { + if (!proceed) { + ret.complete(false); + } + }); + } + + @Override + public void onComplete() { + ret.complete(true); + } + + @Override + public void onError(final Throwable t) { + ret.complete(false); + delegate.onError(t); + } + }); + return ret; + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FutureAsyncIteratorImpl.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FutureAsyncIteratorImpl.java new file mode 100644 index 00000000000..cef99249154 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/FutureAsyncIteratorImpl.java @@ -0,0 +1,33 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import java.util.concurrent.CompletionStage; +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class FutureAsyncIteratorImpl extends AsyncIterator { + + private final SafeFuture future; + + FutureAsyncIteratorImpl(final CompletionStage future) { + this.future = SafeFuture.of(future); + } + + @Override + public void iterate(final AsyncStreamHandler callback) { + future.finish( + succ -> callback.onNext(succ).finish(__ -> callback.onComplete(), callback::onError), + callback::onError); + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/LimitedAsyncQueue.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/LimitedAsyncQueue.java new file mode 100644 index 00000000000..b3a558bfae3 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/LimitedAsyncQueue.java @@ -0,0 +1,68 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import java.util.ArrayDeque; +import java.util.Queue; +import java.util.concurrent.CompletableFuture; +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class LimitedAsyncQueue implements AsyncQueue { + + private final int maxSize; + + private final Queue items = new ArrayDeque<>(); + private final Queue> takers = new ArrayDeque<>(); + + public LimitedAsyncQueue(final int maxSize) { + this.maxSize = maxSize; + } + + // Adds an item to the queue + @Override + public void put(final T item) { + final CompletableFuture maybeTaker; + synchronized (this) { + if (!takers.isEmpty()) { + // If there are pending takers, complete one with the item + maybeTaker = takers.poll(); + } else { + // Otherwise, add the item to the items queue + if (items.size() >= maxSize) { + throw new IllegalStateException("Buffer size overflow: " + maxSize); + } + items.offer(item); + maybeTaker = null; + } + } + if (maybeTaker != null) { + maybeTaker.complete(item); + } + } + + // Returns a CompletableFuture that will be completed when an item is available + @Override + public synchronized SafeFuture take() { + if (!items.isEmpty()) { + // If items are available, return a completed future + final T item = items.poll(); + return SafeFuture.completedFuture(item); + } else { + // If no items, create a new CompletableFuture and add it to takers + final SafeFuture future = new SafeFuture<>(); + takers.offer(future); + return future; + } + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/MapStreamHandler.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/MapStreamHandler.java new file mode 100644 index 00000000000..bc22ec0779d --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/MapStreamHandler.java @@ -0,0 +1,37 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import java.util.function.Function; +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class MapStreamHandler extends AbstractDelegatingStreamHandler { + + private final Function mapper; + + protected MapStreamHandler(final AsyncStreamHandler delegate, final Function mapper) { + super(delegate); + this.mapper = mapper; + } + + @Override + public SafeFuture onNext(final S s) { + try { + return delegate.onNext(mapper.apply(s)); + } catch (Exception e) { + delegate.onError(e); + return FALSE_FUTURE; + } + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/SliceStreamHandler.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/SliceStreamHandler.java new file mode 100644 index 00000000000..e8f39ca4f03 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/SliceStreamHandler.java @@ -0,0 +1,44 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class SliceStreamHandler extends AbstractDelegatingStreamHandler { + + private final AsyncStreamSlicer slicer; + + protected SliceStreamHandler( + final AsyncStreamHandler delegate, final AsyncStreamSlicer slicer) { + super(delegate); + this.slicer = slicer; + } + + @Override + public SafeFuture onNext(final T t) { + AsyncStreamSlicer.SliceResult sliceResult = slicer.slice(t); + return switch (sliceResult) { + case CONTINUE -> delegate.onNext(t); + case SKIP_AND_STOP -> { + delegate.onComplete(); + yield FALSE_FUTURE; + } + case INCLUDE_AND_STOP -> { + SafeFuture ret = delegate.onNext(t).thenApply(__ -> false); + delegate.onComplete(); + yield ret; + } + }; + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/SyncToAsyncIteratorImpl.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/SyncToAsyncIteratorImpl.java new file mode 100644 index 00000000000..5abdb09cab5 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/SyncToAsyncIteratorImpl.java @@ -0,0 +1,71 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import java.util.Iterator; +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class SyncToAsyncIteratorImpl extends AsyncIterator { + + private final Iterator iterator; + private AsyncStreamHandler callback; + + SyncToAsyncIteratorImpl(final Iterator iterator) { + this.iterator = iterator; + } + + @Override + public void iterate(final AsyncStreamHandler callback) { + synchronized (this) { + if (this.callback != null) { + throw new IllegalStateException("This one-shot iterator has been used already"); + } + this.callback = callback; + } + next(); + } + + private void next() { + try { + while (true) { + if (!iterator.hasNext()) { + callback.onComplete(); + break; + } + T next = iterator.next(); + SafeFuture shouldContinueFut = callback.onNext(next); + if (shouldContinueFut.isCompletedNormally()) { + Boolean shouldContinue = shouldContinueFut.getImmediately(); + if (!shouldContinue) { + callback.onComplete(); + break; + } + } else { + shouldContinueFut.finish(this::onNextComplete, err -> callback.onError(err)); + break; + } + } + } catch (Throwable e) { + callback.onError(e); + } + } + + private void onNextComplete(final boolean shouldContinue) { + if (shouldContinue) { + next(); + } else { + callback.onComplete(); + } + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/TransformAsyncIterator.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/TransformAsyncIterator.java new file mode 100644 index 00000000000..68bdcdcdfc0 --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/TransformAsyncIterator.java @@ -0,0 +1,31 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +class TransformAsyncIterator extends AsyncIterator { + private final AsyncIterator delegateIterator; + private final AsyncStreamTransformer streamTransformer; + + public TransformAsyncIterator( + final AsyncIterator delegateIterator, + final AsyncStreamTransformer streamTransformer) { + this.delegateIterator = delegateIterator; + this.streamTransformer = streamTransformer; + } + + @Override + public void iterate(final AsyncStreamHandler callback) { + delegateIterator.iterate(streamTransformer.process(callback)); + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/Util.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/Util.java new file mode 100644 index 00000000000..d747448b1ee --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/Util.java @@ -0,0 +1,24 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import java.util.function.BinaryOperator; + +class Util { + static BinaryOperator noCallBinaryOperator() { + return (c, c2) -> { + throw new UnsupportedOperationException("Shouldn't be called"); + }; + } +} diff --git a/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/VisitorHandler.java b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/VisitorHandler.java new file mode 100644 index 00000000000..6e9e9a89f2b --- /dev/null +++ b/infrastructure/async/src/main/java/tech/pegasys/teku/infrastructure/async/stream/VisitorHandler.java @@ -0,0 +1,43 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +class VisitorHandler extends AbstractDelegatingStreamHandler { + private final AsyncStreamVisitor visitor; + + public VisitorHandler(final AsyncStreamHandler delegate, final AsyncStreamVisitor visitor) { + super(delegate); + this.visitor = visitor; + } + + @Override + public void onComplete() { + visitor.onComplete(); + delegate.onComplete(); + } + + @Override + public void onError(final Throwable t) { + visitor.onError(t); + delegate.onError(t); + } + + @Override + public SafeFuture onNext(final T t) { + visitor.onNext(t); + return delegate.onNext(t); + } +} diff --git a/infrastructure/async/src/test/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamPublisherTest.java b/infrastructure/async/src/test/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamPublisherTest.java new file mode 100644 index 00000000000..d723fb8a8bd --- /dev/null +++ b/infrastructure/async/src/test/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamPublisherTest.java @@ -0,0 +1,169 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.stream.IntStream; +import org.junit.jupiter.api.Test; +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +@SuppressWarnings("FutureReturnValueIgnored") +public class AsyncStreamPublisherTest { + + AsyncStreamPublisher publisher = AsyncStream.createPublisher(Integer.MAX_VALUE); + AsyncStream stream = + publisher + .flatMap(i -> AsyncStream.create(IntStream.range(i * 10, i * 10 + 5).boxed().iterator())) + .filter(i -> i % 2 == 0) + .map(i -> i * 10) + .limit(10); + + // List expectedValues = List.of(0, 20, 40, 100, 120, 140, 200, 220, 240, 300); + + @Test + void sanityTest() { + List collector = new ArrayList<>(); + SafeFuture> listPromise = stream.collect(collector); + + assertThat(collector).isEmpty(); + + { + SafeFuture f = publisher.onNext(0); + assertThat(f).isCompletedWithValue(true); + } + assertThat(collector).containsExactly(0, 20, 40); + + { + SafeFuture f = publisher.onNext(1); + assertThat(f).isCompletedWithValue(true); + } + assertThat(collector).containsExactly(0, 20, 40, 100, 120, 140); + + { + SafeFuture f = publisher.onNext(2); + assertThat(f).isCompletedWithValue(true); + } + assertThat(collector).containsExactly(0, 20, 40, 100, 120, 140, 200, 220, 240); + assertThat(listPromise).isNotDone(); + + { + SafeFuture f = publisher.onNext(3); + assertThat(f).isCompletedWithValue(false); + } + // limit(10) kicks in + assertThat(collector).containsExactly(0, 20, 40, 100, 120, 140, 200, 220, 240, 300); + assertThat(listPromise) + .isCompletedWithValue(List.of(0, 20, 40, 100, 120, 140, 200, 220, 240, 300)); + } + + @Test + void completeShouldCompleteStream() { + SafeFuture> listPromise = stream.toList(); + publisher.onNext(0); + publisher.onComplete(); + assertThat(listPromise).isCompletedWithValue(List.of(0, 20, 40)); + } + + @Test + void errorShouldCompleteStream() { + SafeFuture> listPromise = stream.toList(); + publisher.onNext(0); + publisher.onError(new RuntimeException("test")); + assertThat(listPromise).isCompletedExceptionally(); + } + + @Test + void publishingAllPriorToConsumeShouldWork() { + publisher.onNext(0); + publisher.onNext(1); + publisher.onComplete(); + + assertThat(stream.toList()).isCompletedWithValue(List.of(0, 20, 40, 100, 120, 140)); + } + + @Test + void publishingPartiallyPriorToConsumeShouldWork() { + publisher.onNext(0); + SafeFuture> list = stream.toList(); + publisher.onNext(1); + publisher.onComplete(); + + assertThat(list).isCompletedWithValue(List.of(0, 20, 40, 100, 120, 140)); + } + + @Test + void issuingErrorPriorToConsumeShouldWork() { + publisher.onNext(0); + publisher.onError(new RuntimeException("test")); + + assertThat(stream.toList()).isCompletedExceptionally(); + } + + @Test + void shouldIgnoreAnyItemsAfterOnComplete() { + publisher.onNext(0); + publisher.onComplete(); + publisher.onNext(1); + + assertThat(stream.toList()).isCompletedWithValue(List.of(0, 20, 40)); + } + + @Test + void sanityThreadSafetyTest() throws Exception { + AsyncStreamPublisher myPublisher = AsyncStream.createPublisher(Integer.MAX_VALUE); + AsyncStream stream = + myPublisher + .map(i -> i * 10) + .flatMap(i -> AsyncStream.of(i / 10, 777777)) + .filter(i -> i != 777777); + + int threadCount = 16; + CountDownLatch startLatch = new CountDownLatch(threadCount); + CountDownLatch finishLatch = new CountDownLatch(threadCount); + for (int i = 0; i < threadCount; i++) { + int finalI = i; + new Thread( + () -> { + startLatch.countDown(); + try { + startLatch.await(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + for (int j = 0; j < 1000; j++) { + myPublisher.onNext(finalI * 1000 + j); + } + finishLatch.countDown(); + }) + .start(); + } + SafeFuture> listPromise = stream.toList(); + + boolean rc = finishLatch.await(5, TimeUnit.SECONDS); + assertThat(rc).isTrue(); + + myPublisher.onComplete(); + + List list = listPromise.get(5, TimeUnit.SECONDS); + + assertThat(list) + .containsExactlyInAnyOrderElementsOf( + IntStream.range(0, threadCount * 1000).boxed().toList()); + } +} diff --git a/infrastructure/async/src/test/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamTest.java b/infrastructure/async/src/test/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamTest.java new file mode 100644 index 00000000000..5e9f6606026 --- /dev/null +++ b/infrastructure/async/src/test/java/tech/pegasys/teku/infrastructure/async/stream/AsyncStreamTest.java @@ -0,0 +1,176 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.async.stream; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.stream.IntStream; +import java.util.stream.Stream; +import org.junit.jupiter.api.Test; +import tech.pegasys.teku.infrastructure.async.SafeFuture; + +public class AsyncStreamTest { + + @Test + void sanityTest() { + List> futures = + Stream.generate(() -> new SafeFuture()).limit(5).toList(); + + ArrayList collector = new ArrayList<>(); + + SafeFuture> listPromise = + AsyncStream.create(futures.iterator()) + .flatMap(AsyncStream::create) + .flatMap( + i -> AsyncStream.create(IntStream.range(i * 10, i * 10 + 5).boxed().iterator())) + .filter(i -> i % 2 == 0) + .map(i -> i * 10) + .limit(10) + .collect(collector); + + assertThat(collector).isEmpty(); + + futures.get(1).complete(1); + + assertThat(collector).isEmpty(); + + futures.get(0).complete(0); + + assertThat(collector).containsExactly(0, 20, 40, 100, 120, 140); + assertThat(listPromise).isNotDone(); + + // even if future is completed exceptionally it never reaches downstream thus shouldn't affect + // the final result + futures.get(4).completeExceptionally(new RuntimeException("test")); + + assertThat(listPromise).isNotDone(); + + futures.get(2).complete(2); + + assertThat(collector).containsExactly(0, 20, 40, 100, 120, 140, 200, 220, 240); + assertThat(listPromise).isNotDone(); + + futures.get(3).complete(3); + + // limit(10) kicks in + assertThat(collector).containsExactly(0, 20, 40, 100, 120, 140, 200, 220, 240, 300); + assertThat(listPromise) + .isCompletedWithValue(List.of(0, 20, 40, 100, 120, 140, 200, 220, 240, 300)); + } + + @Test + void mapAsyncTest() throws Exception { + int listSize = 100; + SafeFuture launchFuture = new SafeFuture<>(); + List> futures = + Stream.generate(() -> new SafeFuture()).limit(listSize).toList(); + + SafeFuture> listFuture = + AsyncStream.create(launchFuture) + .flatMap( + __ -> { + Stream idxStream = IntStream.range(0, futures.size()).boxed(); + return AsyncStream.create(idxStream).mapAsync(futures::get); + }) + .toList(); + + launchFuture.complete(null); + for (int i = 0; i < futures.size(); i++) { + futures.get(i).complete(i); + } + + assertThat(listFuture.get(1, TimeUnit.SECONDS)) + .containsExactlyElementsOf(IntStream.range(0, listSize).boxed().toList()); + } + + @Test + void longStreamOfCompletedFuturesShouldNotCauseStackOverflow() { + List ints = + AsyncStream.create(IntStream.range(0, 10000).boxed().iterator()) + .mapAsync(SafeFuture::completedFuture) + .toList() + .join(); + + assertThat(ints).hasSize(10000); + } + + @Test + void longStreamOfFlatMapShouldNotCauseStackOverflow() { + List ints = + AsyncStream.create(IntStream.range(0, 10000).boxed().iterator()) + .flatMap(AsyncStream::of) + .toList() + .join(); + + assertThat(ints).hasSize(10000); + } + + @Test + void checkTheOrderIsPreserved() { + SafeFuture fut0 = new SafeFuture<>(); + SafeFuture fut1 = new SafeFuture<>(); + + SafeFuture> listFut = AsyncStream.of(fut0, fut1).mapAsync(f -> f).toList(); + + fut1.complete(1); + fut0.complete(0); + + assertThat(listFut).isCompletedWithValue(List.of(0, 1)); + } + + @Test + void checkUntilAndCollectLast() { + List> futures = + Stream.generate(() -> new SafeFuture()).limit(10).toList(); + + SafeFuture> resFuture = + AsyncStream.create(futures.iterator()) + .mapAsync(fut -> fut) + .takeUntil(i -> i == 4, true) + .collectLast(2); + + for (int i = 0; i < 4; i++) { + futures.get(i).complete(i); + } + + assertThat(resFuture).isNotDone(); + + futures.get(4).complete(4); + + assertThat(resFuture).isCompletedWithValue(List.of(3, 4)); + } + + @Test + void checkUntilEmpty() { + assertThat(AsyncStream.of(0, 1, 2).takeUntil(i -> i == 0, false).findFirst().join()).isEmpty(); + assertThat(AsyncStream.of(0, 1, 2).takeUntil(i -> i == 100, false).collectLast(1).join()) + .containsExactly(2); + assertThat(AsyncStream.of(0, 1, 2).takeUntil(i -> i == 100, true).collectLast(1).join()) + .containsExactly(2); + } + + @Test + void checkUntilFirst() { + assertThat(AsyncStream.of(0, 1, 2).takeUntil(i -> i == 0, true).toList().join()) + .containsExactly(0); + } + + @Test + void checkCollectLastWithLessElements() { + assertThat(AsyncStream.of(0, 1).collectLast(3).join()).containsExactly(0, 1); + } +} From 5dad0ed9e385954ee9baf04c77919eb5e869d25c Mon Sep 17 00:00:00 2001 From: crStiv Date: Mon, 28 Apr 2025 06:58:05 +0300 Subject: [PATCH 16/33] feat: Add support for reading static peers from file (#9328) Co-authored-by: Paul Harris --- CHANGELOG.md | 1 + .../acceptance/dsl/TekuNodeConfigBuilder.java | 7 + .../pegasys/teku/cli/options/P2POptions.java | 55 +++++++- .../teku/cli/options/P2POptionsTest.java | 120 ++++++++++++++++++ .../src/test/resources/P2POptions_config.yaml | 2 +- 5 files changed, 180 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a974944bf03..3e13ba47ab1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,5 +9,6 @@ ### Breaking Changes ### Additions and Improvements +- Added `--p2p-static-peers-url` option to read static peers from a URL or file ### Bug Fixes \ No newline at end of file diff --git a/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNodeConfigBuilder.java b/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNodeConfigBuilder.java index e21ecdd8856..dfe7442ddfa 100644 --- a/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNodeConfigBuilder.java +++ b/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNodeConfigBuilder.java @@ -559,6 +559,13 @@ public TekuNodeConfigBuilder withPeers(final TekuBeaconNode... nodes) { return this; } + public TekuNodeConfigBuilder withPeersUrl(final String peersUrl) { + mustBe(NodeType.BEACON_NODE); + LOG.debug("p2p-static-peers-url={}", peersUrl); + configMap.put("p2p-static-peers-url", peersUrl); + return this; + } + public TekuNodeConfigBuilder withExternalSignerUrl(final String externalSignerUrl) { LOG.debug("validators-external-signer-url={}", externalSignerUrl); configMap.put("validators-external-signer-url", externalSignerUrl); diff --git a/teku/src/main/java/tech/pegasys/teku/cli/options/P2POptions.java b/teku/src/main/java/tech/pegasys/teku/cli/options/P2POptions.java index b4dfa9792fd..7d6e69ef47c 100644 --- a/teku/src/main/java/tech/pegasys/teku/cli/options/P2POptions.java +++ b/teku/src/main/java/tech/pegasys/teku/cli/options/P2POptions.java @@ -20,16 +20,23 @@ import static tech.pegasys.teku.networking.p2p.discovery.DiscoveryConfig.DEFAULT_P2P_PEERS_UPPER_BOUND_ALL_SUBNETS; import static tech.pegasys.teku.validator.api.ValidatorConfig.DEFAULT_EXECUTOR_MAX_QUEUE_SIZE_ALL_SUBNETS; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.OptionalInt; +import java.util.stream.Collectors; import picocli.CommandLine.Help.Visibility; import picocli.CommandLine.Mixin; import picocli.CommandLine.Option; import tech.pegasys.teku.beacon.sync.SyncConfig; import tech.pegasys.teku.cli.converter.OptionalIntConverter; import tech.pegasys.teku.config.TekuConfiguration; +import tech.pegasys.teku.infrastructure.exceptions.InvalidConfigurationException; +import tech.pegasys.teku.infrastructure.io.resource.ResourceLoader; import tech.pegasys.teku.networking.eth2.P2PConfig; import tech.pegasys.teku.networking.p2p.discovery.DiscoveryConfig; import tech.pegasys.teku.networking.p2p.gossip.config.GossipConfig; @@ -209,14 +216,22 @@ The network interface(s) on which the node listens for P2P communication. hidden = true) private Integer minimumRandomlySelectedPeerCount; + @Option( + names = {"--p2p-static-peers-url"}, + paramLabel = "", + description = + "Specifies a URL or file containing a list of 'static' peers (one per line) with which to establish and maintain connections. Accepts multiaddr format.", + arity = "1") + private String p2pStaticPeersUrl; + @Option( names = {"--p2p-static-peers"}, paramLabel = "", description = - "Specifies a list of 'static' peers with which to establish and maintain connections", + "Specifies a comma-separated list of 'static' peers with which to establish and maintain connections. Accepts multiaddr format.", split = ",", - arity = "0..*") - private List p2pStaticPeers = new ArrayList<>(); + arity = "1") + private final List p2pStaticPeers = new ArrayList<>(); @Option( names = {"--p2p-direct-peers"}, @@ -453,6 +468,38 @@ private OptionalInt getP2pUpperBound() { return p2pUpperBound; } + private List getStaticPeersList() { + final List staticPeers = new ArrayList<>(p2pStaticPeers); + + if (p2pStaticPeersUrl != null) { + try { + final Optional maybeStream = + ResourceLoader.urlOrFile().load(p2pStaticPeersUrl); + if (maybeStream.isPresent()) { + try (final BufferedReader reader = + new BufferedReader( + new InputStreamReader(maybeStream.get(), StandardCharsets.UTF_8))) { + final List peersFromUrl = + reader + .lines() + .map(String::trim) + .filter(line -> !line.isEmpty() && !line.startsWith("#")) + .collect(Collectors.toList()); + staticPeers.addAll(peersFromUrl); + } + } else { + throw new InvalidConfigurationException( + String.format("Static peers URL not found: %s", p2pStaticPeersUrl)); + } + } catch (Exception e) { + throw new InvalidConfigurationException( + String.format("Failed to read static peers from URL: %s", p2pStaticPeersUrl), e); + } + } + + return staticPeers; + } + public void configure(final TekuConfiguration.Builder builder) { // From a discovery configuration perspective, direct peers are static peers p2pStaticPeers.addAll(p2pDirectPeers); @@ -507,7 +554,7 @@ public void configure(final TekuConfiguration.Builder builder) { d.advertisedUdpPortIpv6(OptionalInt.of(p2pAdvertisedPortIpv6)); } d.isDiscoveryEnabled(p2pDiscoveryEnabled) - .staticPeers(p2pStaticPeers) + .staticPeers(getStaticPeersList()) .siteLocalAddressesEnabled(siteLocalAddressesEnabled); }) .network( diff --git a/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java b/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java index 129434276e6..9652d99cb60 100644 --- a/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java +++ b/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java @@ -15,6 +15,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.Assertions.fail; import static org.junit.jupiter.api.Assertions.assertEquals; import static tech.pegasys.teku.infrastructure.async.AsyncRunnerFactory.DEFAULT_MAX_QUEUE_SIZE_ALL_SUBNETS; import static tech.pegasys.teku.networking.eth2.P2PConfig.DEFAULT_GOSSIP_BLOBS_AFTER_BLOCK_ENABLED; @@ -27,8 +28,18 @@ import static tech.pegasys.teku.validator.api.ValidatorConfig.DEFAULT_EXECUTOR_MAX_QUEUE_SIZE_ALL_SUBNETS; import com.google.common.base.Supplier; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.List; +import java.util.stream.Stream; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import tech.pegasys.teku.beacon.sync.SyncConfig; import tech.pegasys.teku.cli.AbstractBeaconNodeCommandTest; import tech.pegasys.teku.config.TekuConfiguration; @@ -79,6 +90,23 @@ public void shouldReadFromConfigurationFile() { assertThat(syncConfig.getForwardSyncMaxBlobSidecarsPerMinute()).isEqualTo(400); } + @Test + public void shouldReadUrlFromConfigurationFile(@TempDir final Path tempDir) throws Exception { + final Path peersFile = tempDir.resolve("peers.txt"); + final Path configPath = tempDir.resolve("config.yaml"); + Files.writeString(peersFile, "\n\n127.0.1.1\n127.1.1.1\n", StandardCharsets.UTF_8); + Files.writeString( + configPath, + String.format("p2p-static-peers-url: \"%s\"", peersFile.toAbsolutePath()), + StandardCharsets.UTF_8); + + final TekuConfiguration tekuConfig = + getTekuConfigurationFromArguments("--config-file", configPath.toAbsolutePath().toString()); + + final DiscoveryConfig discoConfig = tekuConfig.discovery(); + assertThat(discoConfig.getStaticPeers()).isEqualTo(List.of("127.0.1.1", "127.1.1.1")); + } + @Test public void p2pEnabled_shouldNotRequireAValue() { final TekuConfiguration config = getTekuConfigurationFromArguments("--p2p-enabled"); @@ -472,4 +500,96 @@ public void defaultPortsAreSetCorrectly() { assertThat(networkConfig.getAdvertisedPort()).isEqualTo(DEFAULT_P2P_PORT); assertThat(networkConfig.getAdvertisedPortIpv6()).isEqualTo(DEFAULT_P2P_PORT_IPV6); } + + @Test + public void staticPeersUrl_shouldReadPeersFromUrl(@TempDir final Path tempDir) throws Exception { + // Create a test file with peers + final Path peersFile = tempDir.resolve("static-peers.txt"); + Files.writeString(peersFile, "peer1\npeer2\n#comment\n\npeer3"); + + final TekuConfiguration tekuConfiguration = + getTekuConfigurationFromArguments( + "--p2p-static-peers-url", peersFile.toAbsolutePath().toString()); + + assertThat(tekuConfiguration.discovery().getStaticPeers()) + .containsExactlyInAnyOrder("peer1", "peer2", "peer3"); + } + + @Test + public void staticPeersUrl_shouldCombineWithCommandLinePeers(@TempDir final Path tempDir) + throws Exception { + // Create a test file with peers + final Path peersFile = tempDir.resolve("static-peers.txt"); + Files.writeString(peersFile, "peer1\npeer2"); + + final TekuConfiguration tekuConfiguration = + getTekuConfigurationFromArguments( + "--p2p-static-peers-url", + peersFile.toAbsolutePath().toString(), + "--p2p-static-peers", + "peer3,peer4"); + + assertThat(tekuConfiguration.discovery().getStaticPeers()) + .containsExactlyInAnyOrder("peer1", "peer2", "peer3", "peer4"); + } + + @ParameterizedTest + @MethodSource("peerBoundsTestParameters") + public void shouldSmartDefaultPeerBounds( + final String lowerIn, + final String upperIn, + final int lowerExpected, + final int upperExpected) { + final TekuConfiguration tekuConfiguration = + getTekuConfigurationFromArguments( + "--p2p-peer-upper-bound", upperIn, "--p2p-peer-lower-bound", lowerIn); + + assertThat(tekuConfiguration.discovery().getMinPeers()).isEqualTo(lowerExpected); + assertThat(tekuConfiguration.discovery().getMaxPeers()).isEqualTo(upperExpected); + } + + private static Stream peerBoundsTestParameters() { + return Stream.of( + Arguments.of("100", "200", 100, 200), + Arguments.of("100", "100", 100, 100), + Arguments.of("0", "0", 0, 0), + Arguments.of("1024000", "1024000", 1024000, 1024000), + Arguments.of("200", "100", 100, 200)); + } + + @Test + public void peersLowerBound_mustNotBeNegative() { + assertThatThrownBy(() -> getTekuConfigurationFromArguments("--p2p-peer-lower-bound", "-1")) + .isInstanceOf(AssertionError.class) + .hasMessageContaining("Invalid minPeers: -1"); + } + + @Test + public void peersUpperBound_mustNotBeNegative() { + assertThatThrownBy(() -> getTekuConfigurationFromArguments("--p2p-peer-upper-bound", "-1")) + .isInstanceOf(AssertionError.class) + .hasMessageContaining("Invalid maxPeers: -1"); + } + + @Test + public void staticPeersUrl_shouldThrowIfUrlDoesNotExist() { + // Create a dummy instance of P2POptions + final P2POptions p2pOptions = new P2POptions(); + + // Use reflection to access a private field and set its value + try { + final Field field = P2POptions.class.getDeclaredField("p2pStaticPeersUrl"); + field.setAccessible(true); + field.set(p2pOptions, "/non/existent/file.txt"); + + // Use reflection to call a private method getStaticPeersList + final Method method = P2POptions.class.getDeclaredMethod("getStaticPeersList"); + method.setAccessible(true); + + assertThatThrownBy(() -> method.invoke(p2pOptions)) + .hasCauseInstanceOf(InvalidConfigurationException.class); + } catch (Exception e) { + fail("Test setup failed: " + e.getMessage(), e); + } + } } diff --git a/teku/src/test/resources/P2POptions_config.yaml b/teku/src/test/resources/P2POptions_config.yaml index 44d027d77a4..f9e884ec1ca 100644 --- a/teku/src/test/resources/P2POptions_config.yaml +++ b/teku/src/test/resources/P2POptions_config.yaml @@ -18,4 +18,4 @@ Xp2p-historical-sync-batch-size: 102 Xp2p-sync-batch-size: 103 Xp2p-sync-max-pending-batches: 8 Xp2p-sync-blocks-rate-limit: 100 -Xp2p-sync-blob-sidecars-rate-limit: 400 \ No newline at end of file +Xp2p-sync-blob-sidecars-rate-limit: 400 From fe4a9394507bd8f6f7d9835bdfdd50c3519fab98 Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Mon, 28 Apr 2025 19:22:05 +1000 Subject: [PATCH 17/33] Start cleaning up `api/schema` (#9376) * Start cleaning up `api/schema` - moved `ValidatorStatus` - Removed `Version` - Moved `PublicKeyException` - Moved `EventType` Signed-off-by: Paul Harris --- .../BlsToExecutionChangeAcceptanceTest.java | 2 +- .../SyncCommitteeGossipAcceptanceTest.java | 2 +- .../test/acceptance/dsl/TekuBeaconNode.java | 2 +- .../teku/test/acceptance/dsl/TekuNode.java | 2 +- .../coordinator/ValidatorApiHandlerTest.java | 2 +- .../GetEth1DataCacheIntegrationTest.java | 16 +- .../GetBlindedBlockIntegrationTest.java | 10 +- ...nalizedCheckpointStateIntegrationTest.java | 4 +- .../GetPendingDepositsIntegrationTest.java | 4 +- ...dingPartialWithdrawalsIntegrationTest.java | 4 +- .../validator/PostRegisterValidatorTest.java | 2 +- .../v2/beacon/GetBlockV2IntegrationTest.java | 17 +- .../v2/debug/GetStateIntegrationTest.java | 10 +- .../beaconrestapi/BeaconRestApiTypes.java | 2 +- .../SingleQueryParameterUtils.java | 53 ----- .../handlers/v1/beacon/GetBlindedBlock.java | 3 +- .../handlers/v1/beacon/GetBlobSidecars.java | 3 +- .../beacon/GetFinalizedCheckpointState.java | 3 +- .../beacon/GetStatePendingConsolidations.java | 3 +- .../v1/beacon/GetStatePendingDeposits.java | 3 +- .../GetStatePendingPartialWithdrawals.java | 3 +- .../v1/beacon/GetStateValidators.java | 2 +- .../v1/beacon/PostStateValidators.java | 2 +- .../lightclient/GetLightClientBootstrap.java | 3 +- .../handlers/v1/events/EventSubscriber.java | 2 +- .../v1/events/EventSubscriptionManager.java | 2 +- .../handlers/v1/events/QueuedEvent.java | 2 +- .../handlers/v2/beacon/GetAttestationsV2.java | 4 +- .../handlers/v2/beacon/GetBlock.java | 3 +- .../v2/beacon/GetBlockAttestationsV2.java | 3 +- .../handlers/v2/debug/GetState.java | 3 +- .../validator/GetAggregateAttestationV2.java | 3 +- .../handlers/v3/validator/GetNewBlockV3.java | 4 +- .../SingleQueryParameterUtilsTest.java | 63 ----- .../v1/beacon/GetBlobSidecarsTest.java | 3 +- .../v1/beacon/GetStateValidatorTest.java | 2 +- .../v1/beacon/GetStateValidatorsTest.java | 20 +- .../v1/beacon/PostStateValidatorsTest.java | 20 +- .../v1/events/EventSubscriberTest.java | 2 +- .../events/EventSubscriptionManagerTest.java | 13 +- .../v2/beacon/GetAttestationsV2Test.java | 5 +- .../v2/beacon/GetBlockAttestationsV2Test.java | 5 +- .../GetAggregateAttestationV2Test.java | 5 +- .../v3/validator/GetNewBlockV3Test.java | 7 +- .../teku/data/SlashingProtectionExporter.java | 2 +- .../teku/data/SlashingProtectionRepairer.java | 2 +- .../pegasys/teku/api/ChainDataProvider.java | 2 +- .../tech/pegasys/teku/api/ConfigProvider.java | 10 +- .../teku/api/SchemaObjectProvider.java | 222 ------------------ .../teku/api/ValidatorDataProvider.java | 29 --- .../teku/api/ChainDataProviderTest.java | 2 +- .../teku/api/ChainDataProviderTestPhase0.java | 2 +- .../teku/api/ValidatorDataProviderTest.java | 83 +------ .../PublicKeyException.java | 2 +- .../ValidatorBlockResult.java | 6 +- .../teku/api/response/{v1 => }/EventType.java | 2 +- .../{v1/beacon => }/ValidatorStatus.java | 2 +- .../response/v1/beacon/ValidatorResponse.java | 1 + .../teku/api/response/v1/debug/ChainHead.java | 55 ----- .../v1/debug/GetChainHeadsResponse.java | 27 --- .../response/v1/debug/GetStateResponse.java | 38 --- .../pegasys/teku/api/schema/BLSPubKey.java | 1 + .../teku/api/response/v1/EventTypeTest.java | 1 + .../v1/beacon/ValidatorResponseTest.java | 1 + .../teku/api/schema/BLSPubKeyTest.java | 33 --- .../teku/api/schema/BeaconStateTest.java | 49 ---- .../altair/BeaconBlockBodyAltairTest.java | 40 ---- .../BeaconBlockBodyBellatrixTest.java | 40 ---- .../BlindedBeaconBlockBellatrixTest.java | 41 ---- .../ethereum/json/types/EthereumTypes.java | 3 +- .../json/types/beacon/StateValidatorData.java | 2 +- .../beacon/StateValidatorDataBuilder.java | 2 +- .../json/types/beacon/StatusParameter.java | 2 +- .../tech/pegasys/teku/spec/SpecMilestone.java | 4 + .../teku/cli/options/P2POptionsTest.java | 3 + .../validator/api/ValidatorTimingChannel.java | 2 +- .../client/AttestationDutyScheduler.java | 2 +- .../client/BeaconProposerPreparer.java | 2 +- .../validator/client/BlockDutyScheduler.java | 2 +- .../validator/client/OwnedKeyManager.java | 3 +- .../client/OwnedValidatorStatusProvider.java | 2 +- .../client/SyncCommitteeScheduler.java | 2 +- .../client/ValidatorRegistrator.java | 2 +- .../client/ValidatorStatusLogger.java | 2 +- .../client/ValidatorStatusSubscriber.java | 2 +- .../client/ValidatorTimingActions.java | 2 +- .../synccommittee/ChainHeadTracker.java | 2 +- .../loader/SlashingProtectionLogger.java | 2 +- .../restapi/apis/schema/DeletionStatus.java | 6 +- .../OwnedValidatorStatusProviderTest.java | 2 +- .../client/ValidatorRegistratorTest.java | 2 +- .../client/ValidatorStatusProviderTest.java | 2 +- .../client/ValidatorTimingActionsTest.java | 2 +- .../apiclient/SchemaObjectsTestFixture.java | 96 -------- .../OkHttpValidatorTypeDefClientTest.java | 2 +- .../GetStateValidatorsRequestTest.java | 2 +- .../remote/BeaconNodeReadinessManager.java | 2 +- .../EventSourceBeaconChainEventAdapter.java | 2 +- .../eventsource/EventSourceHandler.java | 2 +- .../FailoverValidatorApiHandlerTest.java | 2 +- .../remote/RemoteValidatorApiHandlerTest.java | 2 +- ...ventSourceBeaconChainEventAdapterTest.java | 2 +- .../eventsource/EventSourceHandlerTest.java | 2 +- 103 files changed, 156 insertions(+), 1036 deletions(-) delete mode 100644 data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/SingleQueryParameterUtils.java delete mode 100644 data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/SingleQueryParameterUtilsTest.java delete mode 100644 data/provider/src/main/java/tech/pegasys/teku/api/SchemaObjectProvider.java rename data/serializer/src/main/java/tech/pegasys/teku/api/{schema => exceptions}/PublicKeyException.java (95%) rename data/serializer/src/main/java/tech/pegasys/teku/api/{schema => provider}/ValidatorBlockResult.java (87%) rename data/serializer/src/main/java/tech/pegasys/teku/api/response/{v1 => }/EventType.java (96%) rename data/serializer/src/main/java/tech/pegasys/teku/api/response/{v1/beacon => }/ValidatorStatus.java (96%) delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/ChainHead.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/GetChainHeadsResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/GetStateResponse.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/BLSPubKeyTest.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/BeaconStateTest.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/altair/BeaconBlockBodyAltairTest.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBodyBellatrixTest.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBeaconBlockBellatrixTest.java delete mode 100644 validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/apiclient/SchemaObjectsTestFixture.java diff --git a/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/BlsToExecutionChangeAcceptanceTest.java b/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/BlsToExecutionChangeAcceptanceTest.java index c8160aba60e..54845b74952 100644 --- a/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/BlsToExecutionChangeAcceptanceTest.java +++ b/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/BlsToExecutionChangeAcceptanceTest.java @@ -16,7 +16,7 @@ import java.io.IOException; import java.util.List; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.bls.BLSKeyPair; import tech.pegasys.teku.ethereum.execution.types.Eth1Address; import tech.pegasys.teku.infrastructure.unsigned.UInt64; diff --git a/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/SyncCommitteeGossipAcceptanceTest.java b/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/SyncCommitteeGossipAcceptanceTest.java index de7c3fec795..f63048aa106 100644 --- a/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/SyncCommitteeGossipAcceptanceTest.java +++ b/acceptance-tests/src/acceptance-test/java/tech/pegasys/teku/test/acceptance/SyncCommitteeGossipAcceptanceTest.java @@ -16,7 +16,7 @@ import java.io.IOException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.infrastructure.time.SystemTimeProvider; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.test.acceptance.dsl.AcceptanceTestBase; diff --git a/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuBeaconNode.java b/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuBeaconNode.java index 9599686b24c..a9119f9aba3 100644 --- a/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuBeaconNode.java +++ b/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuBeaconNode.java @@ -50,7 +50,7 @@ import org.testcontainers.containers.Network; import org.testcontainers.containers.wait.strategy.HttpWaitStrategy; import tech.pegasys.teku.api.migrated.ValidatorLivenessAtEpoch; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.bls.BLS; import tech.pegasys.teku.bls.BLSKeyPair; import tech.pegasys.teku.bls.BLSSecretKey; diff --git a/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNode.java b/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNode.java index 766f4a4038b..f12c50f2e83 100644 --- a/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNode.java +++ b/acceptance-tests/src/testFixtures/java/tech/pegasys/teku/test/acceptance/dsl/TekuNode.java @@ -28,7 +28,7 @@ import org.testcontainers.containers.Network; import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; import org.testcontainers.utility.MountableFile; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; public abstract class TekuNode extends Node { public static final int VALIDATOR_API_PORT = 9052; diff --git a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java index 53532eb70e8..9c54fd626c8 100644 --- a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java +++ b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java @@ -57,7 +57,7 @@ import tech.pegasys.teku.api.NetworkDataProvider; import tech.pegasys.teku.api.NodeDataProvider; import tech.pegasys.teku.api.migrated.ValidatorLivenessAtEpoch; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.beacon.sync.events.SyncState; import tech.pegasys.teku.beacon.sync.events.SyncStateProvider; import tech.pegasys.teku.bls.BLSPublicKey; diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/tekuv1/beacon/GetEth1DataCacheIntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/tekuv1/beacon/GetEth1DataCacheIntegrationTest.java index 2ee7a11f883..b6ff203fff1 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/tekuv1/beacon/GetEth1DataCacheIntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/tekuv1/beacon/GetEth1DataCacheIntegrationTest.java @@ -26,11 +26,11 @@ import org.apache.tuweni.bytes.Bytes32; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Eth1Data; import tech.pegasys.teku.beaconrestapi.AbstractDataBackedRestAPIIntegrationTest; import tech.pegasys.teku.beaconrestapi.handlers.tekuv1.beacon.GetEth1DataCache; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.SpecMilestone; +import tech.pegasys.teku.spec.datastructures.blocks.Eth1Data; import tech.pegasys.teku.spec.util.DataStructureUtil; public class GetEth1DataCacheIntegrationTest extends AbstractDataBackedRestAPIIntegrationTest { @@ -45,15 +45,11 @@ public void setup() { @Test public void shouldReturnAllEth1BlocksFromCache() throws IOException { - List eth1DataCacheList = - new ArrayList<>(); + final List eth1DataCacheList = new ArrayList<>(); for (int i = 0; i < 5; i++) { eth1DataCacheList.add(dataStructureUtil.randomEth1Data()); } - List eth1DataCacheBlocks = new ArrayList<>(); - eth1DataCacheList.stream() - .map(Eth1Data::new) - .forEach(eth1Block -> eth1DataCacheBlocks.add(eth1Block)); + final List eth1DataCacheBlocks = new ArrayList<>(eth1DataCacheList); when(eth1DataProvider.getEth1CachedBlocks()).thenReturn(eth1DataCacheList); final Response response = get(); assertThat(response.code()).isEqualTo(SC_OK); @@ -63,11 +59,11 @@ public void shouldReturnAllEth1BlocksFromCache() throws IOException { final JsonNode block = data.get(i); final Eth1Data eth1Data = eth1DataCacheBlocks.get(i); assertThat(Bytes32.fromHexString(block.get("deposit_root").asText())) - .isEqualTo(eth1Data.deposit_root); + .isEqualTo(eth1Data.getDepositRoot()); assertThat(UInt64.valueOf(block.get("deposit_count").asText())) - .isEqualTo(eth1Data.deposit_count); + .isEqualTo(eth1Data.getDepositCount()); assertThat(Bytes32.fromHexString(block.get("block_hash").asText())) - .isEqualTo(eth1Data.block_hash); + .isEqualTo(eth1Data.getBlockHash()); } } diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetBlindedBlockIntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetBlindedBlockIntegrationTest.java index f2b4c8657ef..21f1e5caccb 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetBlindedBlockIntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetBlindedBlockIntegrationTest.java @@ -23,7 +23,6 @@ import okhttp3.Response; import org.apache.tuweni.bytes.Bytes; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractDataBackedRestAPIIntegrationTest; import tech.pegasys.teku.beaconrestapi.handlers.v1.beacon.GetBlindedBlock; import tech.pegasys.teku.ethereum.json.types.SharedApiTypes; @@ -46,7 +45,8 @@ public void shouldGetBlindedPhase0Block() throws IOException { assertThat(result.isBlinded()).isFalse(); assertThat(result).isEqualTo(created.get(0).getBlock()); assertThat(result.hashTreeRoot()).isEqualTo(created.get(0).getBlock().hashTreeRoot()); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.phase0.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.PHASE0.lowerCaseName()); } @Test @@ -59,7 +59,8 @@ public void shouldGetBlindedBellatrixBlock() throws IOException { assertThat(result.isBlinded()).isTrue(); assertThat(result.hashTreeRoot()).isEqualTo(created.get(0).getBlock().hashTreeRoot()); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.bellatrix.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.BELLATRIX.lowerCaseName()); } @Test @@ -75,7 +76,8 @@ public void shouldGetBellatrixBlockAsSsz() throws IOException { .sszDeserialize(Bytes.of(response.body().bytes())); assertThat(result.isBlinded()).isTrue(); assertThat(result.hashTreeRoot()).isEqualTo(created.get(0).getBlock().hashTreeRoot()); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.bellatrix.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.BELLATRIX.lowerCaseName()); } public Response get(final String blockIdString, final String contentType) throws IOException { diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetFinalizedCheckpointStateIntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetFinalizedCheckpointStateIntegrationTest.java index facf1668faf..c6696114e62 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetFinalizedCheckpointStateIntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetFinalizedCheckpointStateIntegrationTest.java @@ -23,7 +23,6 @@ import org.apache.tuweni.bytes.Bytes; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractDataBackedRestAPIIntegrationTest; import tech.pegasys.teku.beaconrestapi.handlers.v1.beacon.GetFinalizedCheckpointState; import tech.pegasys.teku.infrastructure.http.ContentTypes; @@ -43,7 +42,8 @@ public void shouldGetBellatrixStateAsSsz() final Response response = getResponse(GetFinalizedCheckpointState.ROUTE, ContentTypes.OCTET_STREAM); assertThat(response.code()).isEqualTo(SC_OK); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.bellatrix.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.BELLATRIX.lowerCaseName()); final Bytes actualResponse = Bytes.wrap(response.body().bytes()); assertThat(actualResponse) .isEqualTo(combinedChainDataClient.getBestState().get().get().sszSerialize()); diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetPendingDepositsIntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetPendingDepositsIntegrationTest.java index 198426e08cf..6eb6e3f102f 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetPendingDepositsIntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetPendingDepositsIntegrationTest.java @@ -21,7 +21,6 @@ import java.util.List; import okhttp3.Response; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractDataBackedRestAPIIntegrationTest; import tech.pegasys.teku.beaconrestapi.handlers.v1.beacon.GetStatePendingDeposits; import tech.pegasys.teku.infrastructure.json.JsonTestUtil; @@ -50,7 +49,8 @@ public void shouldGetElectraDepositsJson() throws Exception { assertThat(node.get("data").get(1).get("slot").asInt()).isEqualTo(10); assertThat(node.get("data").get(1).get("pubkey").asText()) .isEqualTo(stateElectra.getPendingDeposits().get(1).getPublicKey().toHexString()); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.electra.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.ELECTRA.lowerCaseName()); } public Response get(final String stateId) throws IOException { diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetStatePendingPartialWithdrawalsIntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetStatePendingPartialWithdrawalsIntegrationTest.java index 610d6ff9172..acd98b6fc61 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetStatePendingPartialWithdrawalsIntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/beacon/GetStatePendingPartialWithdrawalsIntegrationTest.java @@ -20,7 +20,6 @@ import java.io.IOException; import okhttp3.Response; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractDataBackedRestAPIIntegrationTest; import tech.pegasys.teku.beaconrestapi.handlers.v1.beacon.GetStatePendingPartialWithdrawals; import tech.pegasys.teku.infrastructure.json.JsonTestUtil; @@ -40,7 +39,8 @@ public void shouldGetElectraDepositsJson() throws Exception { assertThat(node.get("execution_optimistic").asBoolean()).isFalse(); assertThat(node.get("finalized").asBoolean()).isFalse(); assertThat(node.get("data").size()).isEqualTo(0); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.electra.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.ELECTRA.lowerCaseName()); } public Response get(final String stateId) throws IOException { diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/validator/PostRegisterValidatorTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/validator/PostRegisterValidatorTest.java index 300b1bca288..326be8973f8 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/validator/PostRegisterValidatorTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/validator/PostRegisterValidatorTest.java @@ -34,7 +34,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.beaconrestapi.AbstractDataBackedRestAPIIntegrationTest; import tech.pegasys.teku.beaconrestapi.handlers.v1.validator.PostRegisterValidator; import tech.pegasys.teku.bls.BLSPublicKey; diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v2/beacon/GetBlockV2IntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v2/beacon/GetBlockV2IntegrationTest.java index bc28cc7688b..70c25b5253f 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v2/beacon/GetBlockV2IntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v2/beacon/GetBlockV2IntegrationTest.java @@ -28,7 +28,6 @@ import java.util.zip.GZIPInputStream; import okhttp3.Response; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractDataBackedRestAPIIntegrationTest; import tech.pegasys.teku.beaconrestapi.handlers.v2.beacon.GetBlock; import tech.pegasys.teku.infrastructure.http.ContentTypes; @@ -46,12 +45,13 @@ public void shouldGetBlock() throws IOException { final Response response = get("head"); final JsonNode body = OBJECT_MAPPER.readTree(response.body().string()); - assertThat(body.get("version").asText()).isEqualTo(Version.phase0.name()); + assertThat(body.get("version").asText()).isEqualTo(SpecMilestone.PHASE0.lowerCaseName()); assertThat(body.get("data").get("message").get("parent_root").asText()) .isEqualTo(created.get(0).getBlock().getMessage().getParentRoot().toHexString()); assertThat(body.get("data").get("message").get("state_root").asText()) .isEqualTo(created.get(0).getBlock().getMessage().getStateRoot().toHexString()); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.phase0.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.PHASE0.lowerCaseName()); // this is the most practical way to compare the block to that created, but its secondary to // comparing state root and parent root. @@ -67,12 +67,13 @@ public void shouldGetAltairBlock() throws IOException { final Response response = get("head"); final JsonNode body = OBJECT_MAPPER.readTree(response.body().string()); - assertThat(body.get("version").asText()).isEqualTo(Version.altair.name()); + assertThat(body.get("version").asText()).isEqualTo(SpecMilestone.ALTAIR.lowerCaseName()); assertThat(body.get("data").get("message").get("parent_root").asText()) .isEqualTo(created.get(0).getBlock().getMessage().getParentRoot().toHexString()); assertThat(body.get("data").get("message").get("state_root").asText()) .isEqualTo(created.get(0).getBlock().getMessage().getStateRoot().toHexString()); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.altair.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.ALTAIR.lowerCaseName()); // this is the most practical way to compare the block to that created, but its secondary to // comparing state root and parent root. @@ -97,7 +98,8 @@ public void shouldGetAltairBlockAsSsz() throws IOException { createBlocksAtSlots(10); final Response response = get("head", OCTET_STREAM); assertThat(response.code()).isEqualTo(SC_OK); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.altair.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.ALTAIR.lowerCaseName()); } @Test @@ -106,7 +108,8 @@ public void shouldGetAltairBlockAsGzip() throws IOException { createBlocksAtSlots(10); final Response response = getGzip("head", ContentTypes.JSON); assertThat(response.code()).isEqualTo(SC_OK); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.altair.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.ALTAIR.lowerCaseName()); assertThat(response.header(HEADER_CONTENT_ENCODING)).isEqualTo("gzip"); // Decompress response diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v2/debug/GetStateIntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v2/debug/GetStateIntegrationTest.java index 3afa02d5a15..36e746a1d72 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v2/debug/GetStateIntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v2/debug/GetStateIntegrationTest.java @@ -23,7 +23,6 @@ import java.util.function.Function; import okhttp3.Response; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractDataBackedRestAPIIntegrationTest; import tech.pegasys.teku.beaconrestapi.handlers.v2.debug.GetState; import tech.pegasys.teku.infrastructure.http.ContentTypes; @@ -53,7 +52,8 @@ public void shouldGetPhase0StateAsJson() throws IOException { assertThat(stateResponse).isNotNull(); assertThat(stateResponse.getVersion()).isEqualTo(SpecMilestone.PHASE0); assertThat(stateResponse.getData()).isInstanceOf(BeaconStatePhase0.class); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.phase0.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.PHASE0.lowerCaseName()); } @Test @@ -71,7 +71,8 @@ public void shouldGetAltairStateAsJson() throws IOException { assertThat(stateResponse).isNotNull(); assertThat(stateResponse.getVersion()).isEqualTo(SpecMilestone.ALTAIR); assertThat(stateResponse.getData()).isInstanceOf(BeaconStateAltair.class); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.altair.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.ALTAIR.lowerCaseName()); } @Test @@ -79,7 +80,8 @@ public void shouldGetAltairStateAsSsz() throws IOException { startRestAPIAtGenesis(SpecMilestone.ALTAIR); final Response response = get("head", OCTET_STREAM); assertThat(response.code()).isEqualTo(SC_OK); - assertThat(response.header(HEADER_CONSENSUS_VERSION)).isEqualTo(Version.altair.name()); + assertThat(response.header(HEADER_CONSENSUS_VERSION)) + .isEqualTo(SpecMilestone.ALTAIR.lowerCaseName()); } public Response get(final String stateIdIdString, final String contentType) throws IOException { diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/BeaconRestApiTypes.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/BeaconRestApiTypes.java index af65266c254..4f3cb736601 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/BeaconRestApiTypes.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/BeaconRestApiTypes.java @@ -66,7 +66,7 @@ import java.util.function.Function; import java.util.stream.Collectors; import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.ethereum.json.types.beacon.StatusParameter; import tech.pegasys.teku.infrastructure.http.RestApiConstants; diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/SingleQueryParameterUtils.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/SingleQueryParameterUtils.java deleted file mode 100644 index bfa0baffad6..00000000000 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/SingleQueryParameterUtils.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.beaconrestapi; - -import static tech.pegasys.teku.infrastructure.restapi.endpoints.SingleQueryParameterUtils.validateQueryParameter; - -import java.util.List; -import java.util.Map; -import java.util.Optional; -import tech.pegasys.teku.api.exceptions.BadRequestException; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class SingleQueryParameterUtils { - public static final String INVALID_BYTES96_DATA = - "Unable to read Bytes96 data from query parameter."; - - public static BLSSignature getParameterValueAsBLSSignature( - final Map> parameterMap, final String key) - throws IllegalArgumentException { - String stringValue = validateQueryParameter(parameterMap, key); - try { - return BLSSignature.fromHexString(stringValue); - } catch (IllegalArgumentException ex) { - throw new IllegalArgumentException(INVALID_BYTES96_DATA); - } - } - - public static Optional getParameterValueAsUInt64IfPresent( - final Map> parameterMap, final String key) { - try { - return parameterMap.containsKey(key) - ? Optional.of( - tech.pegasys.teku.infrastructure.restapi.endpoints.SingleQueryParameterUtils - .getParameterValueAsUInt64(parameterMap, key)) - : Optional.empty(); - } catch (IllegalArgumentException ex) { - throw new BadRequestException( - "Invalid value for " + key + ": " + String.join(",", parameterMap.get(key))); - } - } -} diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlindedBlock.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlindedBlock.java index 16ef43ba735..1dadb0fd9ac 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlindedBlock.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlindedBlock.java @@ -29,7 +29,6 @@ import java.util.Optional; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; import tech.pegasys.teku.infrastructure.restapi.endpoints.AsyncApiResponse; @@ -87,7 +86,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc blockAndMetaData -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(blockAndMetaData.getMilestone()).name()); + blockAndMetaData.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(blockAndMetaData); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecars.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecars.java index 45754ed33fe..dc5055fe88e 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecars.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecars.java @@ -31,7 +31,6 @@ import java.util.Optional; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; @@ -100,7 +99,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc blobSidecarsAndMetaData -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(blobSidecarsAndMetaData.getMilestone()).name()); + blobSidecarsAndMetaData.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(blobSidecarsAndMetaData); }) .orElse(AsyncApiResponse.respondNotFound()))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetFinalizedCheckpointState.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetFinalizedCheckpointState.java index 946f4f94f52..22d17aac60a 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetFinalizedCheckpointState.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetFinalizedCheckpointState.java @@ -23,7 +23,6 @@ import java.util.Optional; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.restapi.endpoints.AsyncApiResponse; import tech.pegasys.teku.infrastructure.restapi.endpoints.EndpointMetadata; @@ -77,7 +76,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc stateAndMetaData -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(stateAndMetaData.getMilestone()).name()); + stateAndMetaData.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(stateAndMetaData.getData()); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingConsolidations.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingConsolidations.java index b4dbac7ec00..a299b6c995e 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingConsolidations.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingConsolidations.java @@ -30,7 +30,6 @@ import java.util.Optional; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; import tech.pegasys.teku.infrastructure.restapi.endpoints.AsyncApiResponse; @@ -92,7 +91,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc objectAndMetadata -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(objectAndMetadata.getMilestone()).name()); + objectAndMetadata.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(objectAndMetadata); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingDeposits.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingDeposits.java index ab4159cdfb4..2491052f3e1 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingDeposits.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingDeposits.java @@ -30,7 +30,6 @@ import java.util.Optional; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; import tech.pegasys.teku.infrastructure.restapi.endpoints.AsyncApiResponse; @@ -90,7 +89,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc objectAndMetadata -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(objectAndMetadata.getMilestone()).name()); + objectAndMetadata.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(objectAndMetadata); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingPartialWithdrawals.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingPartialWithdrawals.java index 911ab916601..a8708ae252e 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingPartialWithdrawals.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStatePendingPartialWithdrawals.java @@ -30,7 +30,6 @@ import java.util.Optional; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; import tech.pegasys.teku.infrastructure.restapi.endpoints.AsyncApiResponse; @@ -92,7 +91,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc objectAndMetadata -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(objectAndMetadata.getMilestone()).name()); + objectAndMetadata.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(objectAndMetadata); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidators.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidators.java index 8804784ceca..cba2511af24 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidators.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidators.java @@ -27,7 +27,7 @@ import java.util.Set; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; import tech.pegasys.teku.ethereum.json.types.beacon.StatusParameter; import tech.pegasys.teku.infrastructure.async.SafeFuture; diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostStateValidators.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostStateValidators.java index a73fa027208..5d9e8fcc0d1 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostStateValidators.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostStateValidators.java @@ -29,7 +29,7 @@ import java.util.Set; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorRequestBodyType; import tech.pegasys.teku.ethereum.json.types.beacon.StatusParameter; diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/lightclient/GetLightClientBootstrap.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/lightclient/GetLightClientBootstrap.java index 8c1d178bdc4..94fd065b472 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/lightclient/GetLightClientBootstrap.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/lightclient/GetLightClientBootstrap.java @@ -26,7 +26,6 @@ import org.apache.tuweni.bytes.Bytes32; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; import tech.pegasys.teku.infrastructure.restapi.endpoints.AsyncApiResponse; @@ -86,7 +85,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc bootstrapAndMetadata -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(bootstrapAndMetadata.getMilestone()).name()); + bootstrapAndMetadata.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(bootstrapAndMetadata); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriber.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriber.java index 119c475fe4d..ec60e88e141 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriber.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriber.java @@ -26,7 +26,7 @@ import java.util.concurrent.atomic.AtomicLong; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.beaconrestapi.handlers.v1.events.EventSubscriptionManager.EventSource; import tech.pegasys.teku.infrastructure.async.AsyncRunner; import tech.pegasys.teku.infrastructure.time.TimeProvider; diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriptionManager.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriptionManager.java index 34e59a506ea..e898c703157 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriptionManager.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriptionManager.java @@ -30,7 +30,7 @@ import tech.pegasys.teku.api.ConfigProvider; import tech.pegasys.teku.api.NodeDataProvider; import tech.pegasys.teku.api.SyncDataProvider; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.beacon.sync.events.SyncState; import tech.pegasys.teku.infrastructure.async.AsyncRunner; import tech.pegasys.teku.infrastructure.events.EventChannels; diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/QueuedEvent.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/QueuedEvent.java index db6c72662e9..fc0b8f89780 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/QueuedEvent.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/QueuedEvent.java @@ -15,7 +15,7 @@ import java.util.Objects; import org.apache.tuweni.bytes.Bytes; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; public class QueuedEvent { private final EventType eventType; diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetAttestationsV2.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetAttestationsV2.java index cf48d532c32..16edeb75433 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetAttestationsV2.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetAttestationsV2.java @@ -32,7 +32,6 @@ import java.util.Optional; import tech.pegasys.teku.api.DataProvider; import tech.pegasys.teku.api.NodeDataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.handlers.v1.beacon.MilestoneDependentTypesUtil; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; import tech.pegasys.teku.infrastructure.restapi.endpoints.EndpointMetadata; @@ -88,8 +87,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc nodeDataProvider.getAttestationsAndMetaData(slot, committeeIndex); request.header( - HEADER_CONSENSUS_VERSION, - Version.fromMilestone(attestationsAndMetaData.getMilestone()).name()); + HEADER_CONSENSUS_VERSION, attestationsAndMetaData.getMilestone().lowerCaseName()); request.respondOk(attestationsAndMetaData); } diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlock.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlock.java index b4fdd948f0d..7bcb12e8535 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlock.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlock.java @@ -28,7 +28,6 @@ import java.util.Optional; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; import tech.pegasys.teku.infrastructure.restapi.endpoints.AsyncApiResponse; @@ -83,7 +82,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc blockAndMetaData -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(blockAndMetaData.getMilestone()).name()); + blockAndMetaData.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(blockAndMetaData); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlockAttestationsV2.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlockAttestationsV2.java index 3f340a55254..17854c98ee8 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlockAttestationsV2.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlockAttestationsV2.java @@ -30,7 +30,6 @@ import java.util.function.Predicate; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.BeaconRestApiTypes; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.json.types.SerializableOneOfTypeDefinition; @@ -88,7 +87,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc attestationsAndMetadata -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(attestationsAndMetadata.getMilestone()).name()); + attestationsAndMetadata.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(attestationsAndMetadata); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/debug/GetState.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/debug/GetState.java index 1e51b67ac18..7b124c2d840 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/debug/GetState.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/debug/GetState.java @@ -29,7 +29,6 @@ import java.util.Optional; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.DataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; import tech.pegasys.teku.infrastructure.restapi.endpoints.AsyncApiResponse; @@ -87,7 +86,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc stateAndMetaData -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(stateAndMetaData.getMilestone()).name()); + stateAndMetaData.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(stateAndMetaData); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2.java index 8177b6b4cfb..0a7cd3bc587 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2.java @@ -28,7 +28,6 @@ import org.apache.tuweni.bytes.Bytes32; import tech.pegasys.teku.api.DataProvider; import tech.pegasys.teku.api.ValidatorDataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.BeaconRestApiTypes; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.http.HttpStatusCodes; @@ -101,7 +100,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc attestationAndMetaData -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(attestationAndMetaData.getMilestone()).name()); + attestationAndMetaData.getMilestone().lowerCaseName()); return AsyncApiResponse.respondOk(attestationAndMetaData); }) .orElseGet(AsyncApiResponse::respondNotFound))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3.java index 01fa2669747..4e6b8325b8c 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3.java @@ -47,7 +47,6 @@ import org.apache.tuweni.bytes.Bytes32; import tech.pegasys.teku.api.DataProvider; import tech.pegasys.teku.api.ValidatorDataProvider; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.handlers.v1.beacon.MilestoneDependentTypesUtil; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.infrastructure.async.SafeFuture; @@ -131,8 +130,7 @@ public void handleRequest(final RestApiRequest request) throws JsonProcessingExc blockContainerAndMetaData -> { request.header( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(blockContainerAndMetaData.specMilestone()) - .name()); + blockContainerAndMetaData.specMilestone().lowerCaseName()); request.header( HEADER_EXECUTION_PAYLOAD_BLINDED, Boolean.toString( diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/SingleQueryParameterUtilsTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/SingleQueryParameterUtilsTest.java deleted file mode 100644 index b81dd9632fa..00000000000 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/SingleQueryParameterUtilsTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.beaconrestapi; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static tech.pegasys.teku.beaconrestapi.SingleQueryParameterUtils.getParameterValueAsBLSSignature; - -import java.util.List; -import java.util.Map; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes; -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class SingleQueryParameterUtilsTest { - - public static final String KEY = "any"; - public static final String VALUE = "1"; - public static final Map> INVALID_DATA = Map.of(KEY, List.of("1.5")); - - @Test - public void getParameterAsBLSSignature_shouldThrowIfCannotParse() { - assertThrows( - IllegalArgumentException.class, () -> getParameterValueAsBLSSignature(INVALID_DATA, KEY)); - } - - @Test - public void getParameterAsBLSSignature_shouldParseBytes96Data() { - BLSSignature signature = new BLSSignature(Bytes.random(96)); - Map> data = Map.of(KEY, List.of(signature.toHexString())); - BLSSignature result = getParameterValueAsBLSSignature(data, KEY); - assertEquals(signature, result); - } - - @Test - public void getParameterAsUInt64IfPresent_shouldReturnEmptyIfNotPresent() { - assertThat(SingleQueryParameterUtils.getParameterValueAsUInt64IfPresent(Map.of(), "t")) - .isEmpty(); - } - - @Test - public void getParameterAsUInt64IfPresent_shouldReturnData() { - final UInt64 value = UInt64.valueOf("123456"); - assertThat( - SingleQueryParameterUtils.getParameterValueAsUInt64IfPresent( - Map.of("t", List.of(value.toString())), "t")) - .isEqualTo(Optional.of(value)); - } -} diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecarsTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecarsTest.java index 6ccb5930f47..461f690a015 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecarsTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetBlobSidecarsTest.java @@ -34,7 +34,6 @@ import java.util.concurrent.ExecutionException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractMigratedBeaconHandlerWithChainDataProviderTest; import tech.pegasys.teku.infrastructure.json.JsonTestUtil; import tech.pegasys.teku.spec.SpecMilestone; @@ -71,7 +70,7 @@ void shouldReturnBlobSidecars() assertThat(((BlobSidecarsAndMetaData) request.getResponseBody()).getData()) .isEqualTo(blobSidecars); assertThat(request.getResponseHeaders(ETH_CONSENSUS_VERSION_TYPE.getName())) - .isEqualTo(Version.fromMilestone(SpecMilestone.DENEB).name()); + .isEqualTo(SpecMilestone.DENEB.lowerCaseName()); } @Test diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidatorTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidatorTest.java index 4df36217d12..2ed358f6de7 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidatorTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidatorTest.java @@ -33,7 +33,7 @@ import org.assertj.core.api.AssertionsForClassTypes; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.beaconrestapi.AbstractMigratedBeaconHandlerWithChainDataProviderTest; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; import tech.pegasys.teku.infrastructure.http.HttpErrorResponse; diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidatorsTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidatorsTest.java index 0daa13ee037..d575699643d 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidatorsTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetStateValidatorsTest.java @@ -17,15 +17,15 @@ import static java.util.Collections.emptySet; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.active_exiting; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.active_ongoing; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.active_slashed; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.exited_slashed; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.exited_unslashed; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.pending_initialized; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.pending_queued; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.withdrawal_done; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.withdrawal_possible; +import static tech.pegasys.teku.api.response.ValidatorStatus.active_exiting; +import static tech.pegasys.teku.api.response.ValidatorStatus.active_ongoing; +import static tech.pegasys.teku.api.response.ValidatorStatus.active_slashed; +import static tech.pegasys.teku.api.response.ValidatorStatus.exited_slashed; +import static tech.pegasys.teku.api.response.ValidatorStatus.exited_unslashed; +import static tech.pegasys.teku.api.response.ValidatorStatus.pending_initialized; +import static tech.pegasys.teku.api.response.ValidatorStatus.pending_queued; +import static tech.pegasys.teku.api.response.ValidatorStatus.withdrawal_done; +import static tech.pegasys.teku.api.response.ValidatorStatus.withdrawal_possible; import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.SC_BAD_REQUEST; import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.SC_INTERNAL_SERVER_ERROR; import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.SC_NOT_FOUND; @@ -50,7 +50,7 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import tech.pegasys.teku.api.exceptions.BadRequestException; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.beaconrestapi.AbstractMigratedBeaconHandlerWithChainDataProviderTest; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; import tech.pegasys.teku.ethereum.json.types.beacon.StatusParameter; diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostStateValidatorsTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostStateValidatorsTest.java index 6fb44313c12..9ef7ad92619 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostStateValidatorsTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostStateValidatorsTest.java @@ -17,15 +17,15 @@ import static java.util.Collections.emptySet; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.active_exiting; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.active_ongoing; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.active_slashed; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.exited_slashed; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.exited_unslashed; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.pending_initialized; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.pending_queued; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.withdrawal_done; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus.withdrawal_possible; +import static tech.pegasys.teku.api.response.ValidatorStatus.active_exiting; +import static tech.pegasys.teku.api.response.ValidatorStatus.active_ongoing; +import static tech.pegasys.teku.api.response.ValidatorStatus.active_slashed; +import static tech.pegasys.teku.api.response.ValidatorStatus.exited_slashed; +import static tech.pegasys.teku.api.response.ValidatorStatus.exited_unslashed; +import static tech.pegasys.teku.api.response.ValidatorStatus.pending_initialized; +import static tech.pegasys.teku.api.response.ValidatorStatus.pending_queued; +import static tech.pegasys.teku.api.response.ValidatorStatus.withdrawal_done; +import static tech.pegasys.teku.api.response.ValidatorStatus.withdrawal_possible; import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.SC_BAD_REQUEST; import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.SC_INTERNAL_SERVER_ERROR; import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.SC_NOT_FOUND; @@ -51,7 +51,7 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import tech.pegasys.teku.api.exceptions.BadRequestException; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.beaconrestapi.AbstractMigratedBeaconHandlerWithChainDataProviderTest; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorRequestBodyType; diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriberTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriberTest.java index 43d112b2ea7..16aea24d1e6 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriberTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriberTest.java @@ -36,7 +36,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.beaconrestapi.handlers.v1.events.EventSubscriptionManager.EventSource; import tech.pegasys.teku.infrastructure.async.StubAsyncRunner; import tech.pegasys.teku.infrastructure.time.StubTimeProvider; diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriptionManagerTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriptionManagerTest.java index 8d41dfab7c6..4ba60978b88 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriptionManagerTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/EventSubscriptionManagerTest.java @@ -33,7 +33,6 @@ import tech.pegasys.teku.api.ConfigProvider; import tech.pegasys.teku.api.NodeDataProvider; import tech.pegasys.teku.api.SyncDataProvider; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; import tech.pegasys.teku.beacon.sync.events.SyncState; import tech.pegasys.teku.beaconrestapi.handlers.v1.events.PayloadAttributesEvent.Data; import tech.pegasys.teku.beaconrestapi.handlers.v1.events.PayloadAttributesEvent.PayloadAttributes; @@ -50,6 +49,7 @@ import tech.pegasys.teku.spec.config.SpecConfig; import tech.pegasys.teku.spec.datastructures.attestation.ValidatableAttestation; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; import tech.pegasys.teku.spec.datastructures.operations.Attestation; import tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing; import tech.pegasys.teku.spec.datastructures.operations.ProposerSlashing; @@ -104,8 +104,7 @@ public class EventSubscriptionManagerTest { new FinalizedCheckpointEvent(data.randomBytes32(), data.randomBytes32(), epoch, false); private final SyncState sampleSyncState = SyncState.IN_SYNC; - private final SignedBeaconBlock sampleBlock = - SignedBeaconBlock.create(data.randomSignedBeaconBlock(0)); + private final SignedBeaconBlock sampleBlock = data.randomSignedBeaconBlock(0); private final BlobSidecar sampleBlobSidecar = data.randomBlobSidecar(); private final Attestation sampleAttestation = data.randomAttestation(0); private final SingleAttestation singleAttestation = data.randomSingleAttestation(); @@ -257,7 +256,7 @@ void shouldPropagateBlock() throws IOException { manager.registerClient(client1); triggerBlockEvent(); - checkEvent("block", new BlockEvent(sampleBlock.asInternalSignedBeaconBlock(spec), false)); + checkEvent("block", new BlockEvent(sampleBlock, false)); } @Test @@ -266,7 +265,7 @@ void shouldPropagateBlockGossip() throws IOException { manager.registerClient(client1); triggerBlockGossipEvent(); - checkEvent("block_gossip", new BlockGossipEvent(sampleBlock.asInternalSignedBeaconBlock(spec))); + checkEvent("block_gossip", new BlockGossipEvent(sampleBlock)); } @Test @@ -465,12 +464,12 @@ private void triggerProposerSlashingEvent() { } private void triggerBlockEvent() { - manager.onNewBlock(sampleBlock.asInternalSignedBeaconBlock(spec), false); + manager.onNewBlock(sampleBlock, false); asyncRunner.executeQueuedActions(); } private void triggerBlockGossipEvent() { - manager.onNewBlockGossip(sampleBlock.asInternalSignedBeaconBlock(spec)); + manager.onNewBlockGossip(sampleBlock); asyncRunner.executeQueuedActions(); } diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetAttestationsV2Test.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetAttestationsV2Test.java index e2e851217bb..96c577a7bbb 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetAttestationsV2Test.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetAttestationsV2Test.java @@ -34,7 +34,6 @@ import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestTemplate; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractMigratedBeaconHandlerTest; import tech.pegasys.teku.infrastructure.json.JsonTestUtil; import tech.pegasys.teku.spec.SpecMilestone; @@ -72,7 +71,7 @@ public void shouldReturnAttestationsWhenFound() throws JsonProcessingException { assertThat(request.getResponseCode()).isEqualTo(SC_OK); assertThat(request.getResponseBody()).isEqualTo(attestationsAndMetaData); assertThat(request.getResponseHeaders(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(specMilestone).name()); + .isEqualTo(specMilestone.lowerCaseName()); } @TestTemplate @@ -87,7 +86,7 @@ public void shouldReturnEmptyListWhenNoAttestations() throws JsonProcessingExcep assertThat(request.getResponseCode()).isEqualTo(SC_OK); assertThat(request.getResponseBody()).isEqualTo(attestationsAndMetaData); assertThat(request.getResponseHeaders(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(specMilestone).name()); + .isEqualTo(specMilestone.lowerCaseName()); } @TestTemplate diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlockAttestationsV2Test.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlockAttestationsV2Test.java index 2ae84ded641..898ef9e6f1b 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlockAttestationsV2Test.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/GetBlockAttestationsV2Test.java @@ -33,7 +33,6 @@ import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractMigratedBeaconHandlerTest; import tech.pegasys.teku.ethereum.json.types.SharedApiTypes; import tech.pegasys.teku.infrastructure.async.SafeFuture; @@ -95,7 +94,7 @@ public void shouldReturnBlockAttestationsInformationForPhase0() throws JsonProce assertThat(phase0responseData.getData().size()).isGreaterThan(0); assertThat(request.getResponseBody()).isEqualTo(optionalData.get()); assertThat(request.getResponseHeaders(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(phase0responseData.getMilestone()).name()); + .isEqualTo(phase0responseData.getMilestone().lowerCaseName()); } @Test @@ -111,7 +110,7 @@ public void shouldReturnBlockAttestationsInformationForElectra() throws JsonProc assertThat(electraResponseData.getData().size()).isGreaterThan(0); assertThat(request.getResponseBody()).isEqualTo(optionalData.get()); assertThat(request.getResponseHeaders(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(electraResponseData.getMilestone()).name()); + .isEqualTo(electraResponseData.getMilestone().lowerCaseName()); } @Test diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2Test.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2Test.java index eba88c8a8a5..8018966ea9f 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2Test.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v2/validator/GetAggregateAttestationV2Test.java @@ -31,7 +31,6 @@ import org.apache.tuweni.bytes.Bytes32; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractMigratedBeaconHandlerTest; import tech.pegasys.teku.ethereum.json.types.SharedApiTypes; import tech.pegasys.teku.infrastructure.async.SafeFuture; @@ -94,7 +93,7 @@ public void shouldReturnAggregateAttestationForPhase0() throws JsonProcessingExc assertThat(phase0responseData.getData().size()).isGreaterThan(0); assertThat(request.getResponseBody()).isEqualTo(optionalData.get()); assertThat(request.getResponseHeaders(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(phase0responseData.getMilestone()).name()); + .isEqualTo(phase0responseData.getMilestone().lowerCaseName()); } @Test @@ -109,7 +108,7 @@ public void shouldReturnAggregateAttestationForElectra() throws JsonProcessingEx assertThat(electraResponseData.getData().size()).isGreaterThan(0); assertThat(request.getResponseBody()).isEqualTo(optionalData.get()); assertThat(request.getResponseHeaders(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(electraResponseData.getMilestone()).name()); + .isEqualTo(electraResponseData.getMilestone().lowerCaseName()); } @Test diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3Test.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3Test.java index dc457ead4a0..eb2c0419d21 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3Test.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3Test.java @@ -36,7 +36,6 @@ import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestTemplate; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.beaconrestapi.AbstractMigratedBeaconHandlerTest; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.bls.BLSTestUtil; @@ -82,7 +81,7 @@ void shouldHandleBlindedBeaconBlocks() throws Exception { assertThat(request.getResponseCode()).isEqualTo(HttpStatusCodes.SC_OK); assertThat(request.getResponseBody()).isEqualTo(blockContainerAndMetaData); assertThat(request.getResponseHeaders(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(blockContainerAndMetaData.specMilestone()).name()); + .isEqualTo(blockContainerAndMetaData.specMilestone().lowerCaseName()); assertThat(request.getResponseHeaders(HEADER_EXECUTION_PAYLOAD_BLINDED)) .isEqualTo(Boolean.toString(true)); assertThat(request.getResponseHeaders(HEADER_EXECUTION_PAYLOAD_VALUE)) @@ -105,7 +104,7 @@ void shouldHandleUnBlindedBeaconBlocks() throws Exception { assertThat(request.getResponseCode()).isEqualTo(HttpStatusCodes.SC_OK); assertThat(request.getResponseBody()).isEqualTo(blockContainerAndMetaData); assertThat(request.getResponseHeaders(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(blockContainerAndMetaData.specMilestone()).name()); + .isEqualTo(blockContainerAndMetaData.specMilestone().lowerCaseName()); assertThat(request.getResponseHeaders(HEADER_EXECUTION_PAYLOAD_BLINDED)) .isEqualTo(Boolean.toString(false)); assertThat(request.getResponseHeaders(HEADER_EXECUTION_PAYLOAD_VALUE)) @@ -129,7 +128,7 @@ void shouldHandleUnBlindedBlockContentsPostDeneb() throws Exception { assertThat(request.getResponseCode()).isEqualTo(HttpStatusCodes.SC_OK); assertThat(request.getResponseBody()).isEqualTo(blockContainerAndMetaData); assertThat(request.getResponseHeaders(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(blockContainerAndMetaData.specMilestone()).name()); + .isEqualTo(blockContainerAndMetaData.specMilestone().lowerCaseName()); assertThat(request.getResponseHeaders(HEADER_EXECUTION_PAYLOAD_BLINDED)).isEqualTo("false"); assertThat(request.getResponseHeaders(HEADER_EXECUTION_PAYLOAD_VALUE)) .isEqualTo(blockContainerAndMetaData.executionPayloadValue().toDecimalString()); diff --git a/data/dataexchange/src/main/java/tech/pegasys/teku/data/SlashingProtectionExporter.java b/data/dataexchange/src/main/java/tech/pegasys/teku/data/SlashingProtectionExporter.java index d55a8d4c7a4..ee71f7af50f 100644 --- a/data/dataexchange/src/main/java/tech/pegasys/teku/data/SlashingProtectionExporter.java +++ b/data/dataexchange/src/main/java/tech/pegasys/teku/data/SlashingProtectionExporter.java @@ -31,7 +31,7 @@ import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes32; import org.apache.tuweni.bytes.Bytes48; -import tech.pegasys.teku.api.schema.PublicKeyException; +import tech.pegasys.teku.api.exceptions.PublicKeyException; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.data.slashinginterchange.Metadata; import tech.pegasys.teku.data.slashinginterchange.SigningHistory; diff --git a/data/dataexchange/src/main/java/tech/pegasys/teku/data/SlashingProtectionRepairer.java b/data/dataexchange/src/main/java/tech/pegasys/teku/data/SlashingProtectionRepairer.java index 80ed1a0ec08..b56c0a4f27f 100644 --- a/data/dataexchange/src/main/java/tech/pegasys/teku/data/SlashingProtectionRepairer.java +++ b/data/dataexchange/src/main/java/tech/pegasys/teku/data/SlashingProtectionRepairer.java @@ -24,7 +24,7 @@ import java.util.Optional; import java.util.Set; import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.PublicKeyException; +import tech.pegasys.teku.api.exceptions.PublicKeyException; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.data.slashinginterchange.SigningHistory; import tech.pegasys.teku.ethereum.signingrecord.ValidatorSigningRecord; diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java b/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java index a1b7a1cb91c..b71aeb33673 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java @@ -44,8 +44,8 @@ import tech.pegasys.teku.api.migrated.StateSyncCommitteesData; import tech.pegasys.teku.api.migrated.StateValidatorBalanceData; import tech.pegasys.teku.api.migrated.SyncCommitteeRewardData; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.api.response.v1.beacon.GenesisData; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; import tech.pegasys.teku.api.rewards.EpochAttestationRewardsCalculator; import tech.pegasys.teku.api.stateselector.StateSelectorFactory; import tech.pegasys.teku.bls.BLSPublicKey; diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/ConfigProvider.java b/data/provider/src/main/java/tech/pegasys/teku/api/ConfigProvider.java index cb517e3b81f..85209fe4a61 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/ConfigProvider.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/ConfigProvider.java @@ -16,11 +16,10 @@ import java.util.List; import java.util.Map; import org.apache.tuweni.units.bigints.UInt256; -import tech.pegasys.teku.api.response.v1.config.GetForkScheduleResponse; -import tech.pegasys.teku.api.schema.Fork; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.config.SpecConfig; +import tech.pegasys.teku.spec.datastructures.state.Fork; public class ConfigProvider { final Spec spec; @@ -49,12 +48,7 @@ public static String formatValue(final Object v) { return v.toString(); } - public GetForkScheduleResponse getForkSchedule() { - final List forkList = spec.getForkSchedule().getForks().stream().map(Fork::new).toList(); - return new GetForkScheduleResponse(forkList); - } - - public List getStateForkSchedule() { + public List getStateForkSchedule() { return spec.getForkSchedule().getFullForkList(); } diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/SchemaObjectProvider.java b/data/provider/src/main/java/tech/pegasys/teku/api/SchemaObjectProvider.java deleted file mode 100644 index 414e186caaa..00000000000 --- a/data/provider/src/main/java/tech/pegasys/teku/api/SchemaObjectProvider.java +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api; - -import tech.pegasys.teku.api.schema.BeaconBlock; -import tech.pegasys.teku.api.schema.BeaconBlockBody; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.api.schema.altair.BeaconBlockBodyAltair; -import tech.pegasys.teku.api.schema.bellatrix.BeaconBlockBellatrix; -import tech.pegasys.teku.api.schema.bellatrix.BeaconBlockBodyBellatrix; -import tech.pegasys.teku.api.schema.bellatrix.BlindedBeaconBlockBodyBellatrix; -import tech.pegasys.teku.api.schema.bellatrix.BlindedBlockBellatrix; -import tech.pegasys.teku.api.schema.capella.BeaconBlockBodyCapella; -import tech.pegasys.teku.api.schema.capella.BeaconBlockCapella; -import tech.pegasys.teku.api.schema.capella.BlindedBeaconBlockBodyCapella; -import tech.pegasys.teku.api.schema.capella.BlindedBlockCapella; -import tech.pegasys.teku.api.schema.deneb.BeaconBlockBodyDeneb; -import tech.pegasys.teku.api.schema.deneb.BeaconBlockDeneb; -import tech.pegasys.teku.api.schema.deneb.BlindedBeaconBlockBodyDeneb; -import tech.pegasys.teku.api.schema.deneb.BlindedBlockDeneb; -import tech.pegasys.teku.api.schema.electra.BeaconBlockBodyElectra; -import tech.pegasys.teku.api.schema.electra.BeaconBlockElectra; -import tech.pegasys.teku.api.schema.electra.BlindedBeaconBlockBodyElectra; -import tech.pegasys.teku.api.schema.electra.BlindedBlockElectra; -import tech.pegasys.teku.api.schema.phase0.BeaconBlockPhase0; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecMilestone; - -/** - * Takes objects from Internal layers and converts to an appropriate schema object. - * - *

Handles slot sensitive conversions like conversion of blocks to phase0 or altair blocks - */ -public class SchemaObjectProvider { - final Spec spec; - - public SchemaObjectProvider(final Spec spec) { - this.spec = spec; - } - - public BeaconBlock getBeaconBlock( - final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock block) { - return getBeaconBlock(block, spec.atSlot(block.getSlot()).getMilestone()); - } - - public BeaconBlock getBlindedBlock( - final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock block) { - return getBlindedBlock(block, spec.atSlot(block.getSlot()).getMilestone()); - } - - public BeaconBlock getBlindedBlock( - final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock block, - final SpecMilestone milestone) { - return switch (milestone) { - case PHASE0 -> - new BeaconBlockPhase0( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - new BeaconBlockBody(block.getBody())); - case ALTAIR -> - new BeaconBlockAltair( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBeaconBlockBodyAltair(block.getBody())); - case BELLATRIX -> - new BlindedBlockBellatrix( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBlindedBlockBodyBellatrix(block.getBody())); - case CAPELLA -> - new BlindedBlockCapella( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBlindedBlockBodyCapella(block.getBody())); - case DENEB -> - new BlindedBlockDeneb( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBlindedBlockBodyDeneb(block.getBody())); - case ELECTRA, FULU -> - new BlindedBlockElectra( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBlindedBlockBodyElectra(block.getBody())); - }; - } - - public BeaconBlock getBeaconBlock( - final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock block, - final SpecMilestone milestone) { - return switch (milestone) { - case PHASE0 -> - new BeaconBlockPhase0( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - new BeaconBlockBody(block.getBody())); - case ALTAIR -> - new BeaconBlockAltair( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBeaconBlockBodyAltair(block.getBody())); - case BELLATRIX -> - new BeaconBlockBellatrix( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBeaconBlockBodyBellatrix(block.getBody())); - case CAPELLA -> - new BeaconBlockCapella( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBeaconBlockBodyCapella(block.getBody())); - case DENEB -> - new BeaconBlockDeneb( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBeaconBlockBodyDeneb(block.getBody())); - case ELECTRA, FULU -> - new BeaconBlockElectra( - block.getSlot(), - block.getProposerIndex(), - block.getParentRoot(), - block.getStateRoot(), - getBeaconBlockBodyElectra(block.getBody())); - }; - } - - private BeaconBlockBodyAltair getBeaconBlockBodyAltair( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - return new BeaconBlockBodyAltair( - tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.BeaconBlockBodyAltair - .required(body)); - } - - private BeaconBlockBodyBellatrix getBeaconBlockBodyBellatrix( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - return new BeaconBlockBodyBellatrix( - tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.bellatrix - .BeaconBlockBodyBellatrix.required(body)); - } - - private BeaconBlockBodyCapella getBeaconBlockBodyCapella( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - return new BeaconBlockBodyCapella( - tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.capella - .BeaconBlockBodyCapella.required(body)); - } - - private BeaconBlockBodyDeneb getBeaconBlockBodyDeneb( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - return new BeaconBlockBodyDeneb( - tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb.BeaconBlockBodyDeneb - .required(body)); - } - - private BeaconBlockBodyElectra getBeaconBlockBodyElectra( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - return new BeaconBlockBodyElectra( - tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.electra - .BeaconBlockBodyElectra.required(body)); - } - - private BlindedBeaconBlockBodyBellatrix getBlindedBlockBodyBellatrix( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - return new BlindedBeaconBlockBodyBellatrix( - tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.bellatrix - .BlindedBeaconBlockBodyBellatrix.required(body)); - } - - private BlindedBeaconBlockBodyCapella getBlindedBlockBodyCapella( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - return new BlindedBeaconBlockBodyCapella( - tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.capella - .BlindedBeaconBlockBodyCapella.required(body)); - } - - private BlindedBeaconBlockBodyDeneb getBlindedBlockBodyDeneb( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - return new BlindedBeaconBlockBodyDeneb( - tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb - .BlindedBeaconBlockBodyDeneb.required(body)); - } - - private BlindedBeaconBlockBodyElectra getBlindedBlockBodyElectra( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - return new BlindedBeaconBlockBodyElectra( - tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.electra - .BlindedBeaconBlockBodyElectra.required(body)); - } -} diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/ValidatorDataProvider.java b/data/provider/src/main/java/tech/pegasys/teku/api/ValidatorDataProvider.java index 492db3399f3..eca9db8ffd2 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/ValidatorDataProvider.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/ValidatorDataProvider.java @@ -20,8 +20,6 @@ import java.util.Optional; import org.apache.tuweni.bytes.Bytes32; import tech.pegasys.teku.api.exceptions.BadRequestException; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.ValidatorBlockResult; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.ethereum.json.types.validator.AttesterDuties; import tech.pegasys.teku.ethereum.json.types.validator.ProposerDuties; @@ -44,7 +42,6 @@ import tech.pegasys.teku.spec.datastructures.operations.versions.altair.SyncCommitteeMessage; import tech.pegasys.teku.spec.datastructures.validator.BeaconPreparableProposer; import tech.pegasys.teku.spec.datastructures.validator.BroadcastValidationLevel; -import tech.pegasys.teku.spec.logic.common.statetransition.results.BlockImportResult.FailureReason; import tech.pegasys.teku.spec.schemas.SchemaDefinitionsAltair; import tech.pegasys.teku.storage.client.ChainDataUnavailableException; import tech.pegasys.teku.storage.client.CombinedChainDataClient; @@ -63,9 +60,6 @@ public class ValidatorDataProvider { private final ValidatorApiChannel validatorApiChannel; private final CombinedChainDataClient combinedChainDataClient; - private static final int SC_INTERNAL_ERROR = 500; - private static final int SC_ACCEPTED = 202; - private static final int SC_OK = 200; private final Spec spec; public ValidatorDataProvider( @@ -136,14 +130,6 @@ public SafeFuture> submitAttestations( return validatorApiChannel.sendSignedAttestations(attestations); } - public SafeFuture submitSignedBlock( - final SignedBeaconBlock signedBeaconBlock, - final BroadcastValidationLevel broadcastValidationLevel) { - return submitSignedBlock( - signedBeaconBlock.asInternalSignedBeaconBlock(spec), broadcastValidationLevel) - .thenApply(ValidatorDataProvider::generateSubmitSignedBlockResponse); - } - public SafeFuture submitSignedBlock( final SignedBlockContainer signedBlockContainer, final BroadcastValidationLevel broadcastValidationLevel) { @@ -274,21 +260,6 @@ public boolean isPhase0Slot(final UInt64 slot) { return spec.atSlot(slot).getMilestone() == SpecMilestone.PHASE0; } - private static ValidatorBlockResult generateSubmitSignedBlockResponse( - final SendSignedBlockResult result) { - int responseCode; - Optional hashRoot = result.getBlockRoot(); - if (result.getRejectionReason().isEmpty()) { - responseCode = SC_OK; - } else if (result.getRejectionReason().get().equals(FailureReason.INTERNAL_ERROR.name())) { - responseCode = SC_INTERNAL_ERROR; - } else { - responseCode = SC_ACCEPTED; - } - - return new ValidatorBlockResult(responseCode, result.getRejectionReason(), hashRoot); - } - private ObjectAndMetaData lookUpMetadata(final Attestation attestation) { return new ObjectAndMetaData<>( attestation, diff --git a/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTest.java b/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTest.java index 5816854c65b..613c5d4ad7d 100644 --- a/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTest.java +++ b/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTest.java @@ -55,8 +55,8 @@ import tech.pegasys.teku.api.migrated.BlockRewardData; import tech.pegasys.teku.api.migrated.StateSyncCommitteesData; import tech.pegasys.teku.api.migrated.SyncCommitteeRewardData; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.api.response.v1.beacon.GenesisData; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.async.SafeFutureAssert; import tech.pegasys.teku.infrastructure.bytes.Bytes20; diff --git a/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTestPhase0.java b/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTestPhase0.java index f31706d856f..ad0cb98e358 100644 --- a/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTestPhase0.java +++ b/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTestPhase0.java @@ -47,8 +47,8 @@ import tech.pegasys.teku.api.migrated.BlockHeadersResponse; import tech.pegasys.teku.api.migrated.StateSyncCommitteesData; import tech.pegasys.teku.api.migrated.SyncCommitteeRewardData; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.api.response.v1.beacon.GenesisData; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.bytes.Bytes4; import tech.pegasys.teku.infrastructure.unsigned.UInt64; diff --git a/data/provider/src/test/java/tech/pegasys/teku/api/ValidatorDataProviderTest.java b/data/provider/src/test/java/tech/pegasys/teku/api/ValidatorDataProviderTest.java index 0457d913e41..e0d4a1f8ae2 100644 --- a/data/provider/src/test/java/tech/pegasys/teku/api/ValidatorDataProviderTest.java +++ b/data/provider/src/test/java/tech/pegasys/teku/api/ValidatorDataProviderTest.java @@ -17,7 +17,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.assertj.core.api.Assertions.fail; import static org.assertj.core.api.Assumptions.assumeThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyCollection; @@ -31,26 +30,21 @@ import static tech.pegasys.teku.infrastructure.ssz.SszDataAssert.assertThatSszData; import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ZERO; -import static tech.pegasys.teku.spec.logic.common.statetransition.results.BlockImportResult.FailureReason; import it.unimi.dsi.fastutil.ints.IntList; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; -import java.util.stream.Stream; import org.apache.tuweni.bytes.Bytes32; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestTemplate; import org.mockito.ArgumentCaptor; import tech.pegasys.teku.api.exceptions.BadRequestException; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; -import tech.pegasys.teku.api.schema.ValidatorBlockResult; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.bls.BLSTestUtil; @@ -65,16 +59,13 @@ import tech.pegasys.teku.spec.SpecMilestone; import tech.pegasys.teku.spec.TestSpecContext; import tech.pegasys.teku.spec.TestSpecInvocationContextProvider.SpecContext; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.SignedValidatorRegistration; import tech.pegasys.teku.spec.datastructures.metadata.BlockContainerAndMetaData; import tech.pegasys.teku.spec.datastructures.operations.Attestation; import tech.pegasys.teku.spec.datastructures.operations.AttestationData; -import tech.pegasys.teku.spec.datastructures.validator.BroadcastValidationLevel; import tech.pegasys.teku.spec.util.DataStructureUtil; import tech.pegasys.teku.storage.client.ChainDataUnavailableException; import tech.pegasys.teku.storage.client.CombinedChainDataClient; -import tech.pegasys.teku.validator.api.SendSignedBlockResult; import tech.pegasys.teku.validator.api.SubmitDataError; import tech.pegasys.teku.validator.api.ValidatorApiChannel; @@ -280,78 +271,6 @@ void submitAttestation_shouldSubmitAnInternalAttestationStructure() { assertThatSszData(args.getValue().get(0)).isEqualByAllMeansTo(attestation); } - @TestTemplate - public void submitSignedBlock_shouldReturn200ForSuccess() - throws ExecutionException, InterruptedException { - final SignedBeaconBlock internalSignedBeaconBlock = - dataStructureUtil.randomSignedBeaconBlock(1); - final tech.pegasys.teku.api.schema.SignedBeaconBlock signedBeaconBlock = - tech.pegasys.teku.api.schema.SignedBeaconBlock.create(internalSignedBeaconBlock); - - final SafeFuture successImportResult = - completedFuture(SendSignedBlockResult.success(internalSignedBeaconBlock.getRoot())); - - when(validatorApiChannel.sendSignedBlock(any(), any())).thenReturn(successImportResult); - - final SafeFuture validatorBlockResultSafeFuture = - provider.submitSignedBlock(signedBeaconBlock, BroadcastValidationLevel.NOT_REQUIRED); - - assertThat(validatorBlockResultSafeFuture.get().getResponseCode()).isEqualTo(200); - } - - @TestTemplate - public void submitSignedBlock_shouldReturn202ForInvalidBlock() { - final SignedBeaconBlock internalSignedBeaconBlock = - dataStructureUtil.randomSignedBeaconBlock(1); - final tech.pegasys.teku.api.schema.SignedBeaconBlock signedBeaconBlock = - tech.pegasys.teku.api.schema.SignedBeaconBlock.create(internalSignedBeaconBlock); - final AtomicInteger failReasonCount = new AtomicInteger(); - - Stream.of(FailureReason.values()) - .filter(failureReason -> !failureReason.equals(FailureReason.INTERNAL_ERROR)) - .forEach( - failureReason -> { - failReasonCount.getAndIncrement(); - - final SafeFuture failImportResult = - completedFuture(SendSignedBlockResult.notImported(failureReason.name())); - - when(validatorApiChannel.sendSignedBlock(any(), any())).thenReturn(failImportResult); - - final SafeFuture validatorBlockResultSafeFuture = - provider.submitSignedBlock( - signedBeaconBlock, BroadcastValidationLevel.NOT_REQUIRED); - - try { - assertThat(validatorBlockResultSafeFuture.get().getResponseCode()).isEqualTo(202); - } catch (final Exception e) { - fail("Exception while executing test."); - } - }); - - // Assert that the check has run over each FailureReason except the 500. - assertThat(failReasonCount.get()).isEqualTo(FailureReason.values().length - 1); - } - - @TestTemplate - public void submitSignedBlock_shouldReturn500ForInternalError() - throws ExecutionException, InterruptedException { - final SignedBeaconBlock internalSignedBeaconBlock = - dataStructureUtil.randomSignedBeaconBlock(1); - final tech.pegasys.teku.api.schema.SignedBeaconBlock signedBeaconBlock = - tech.pegasys.teku.api.schema.SignedBeaconBlock.create(internalSignedBeaconBlock); - - final SafeFuture failImportResult = - completedFuture(SendSignedBlockResult.rejected(FailureReason.INTERNAL_ERROR.name())); - - when(validatorApiChannel.sendSignedBlock(any(), any())).thenReturn(failImportResult); - - final SafeFuture validatorBlockResultSafeFuture = - provider.submitSignedBlock(signedBeaconBlock, BroadcastValidationLevel.NOT_REQUIRED); - - assertThat(validatorBlockResultSafeFuture.get().getResponseCode()).isEqualTo(500); - } - @TestTemplate public void getAttesterDuties_shouldHandleEmptyIndicesList() { final Bytes32 previousTargetRoot = dataStructureUtil.randomBytes32(); diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/PublicKeyException.java b/data/serializer/src/main/java/tech/pegasys/teku/api/exceptions/PublicKeyException.java similarity index 95% rename from data/serializer/src/main/java/tech/pegasys/teku/api/schema/PublicKeyException.java rename to data/serializer/src/main/java/tech/pegasys/teku/api/exceptions/PublicKeyException.java index 4a847782d62..97c9665e6e0 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/PublicKeyException.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/exceptions/PublicKeyException.java @@ -11,7 +11,7 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.schema; +package tech.pegasys.teku.api.exceptions; public class PublicKeyException extends RuntimeException { diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ValidatorBlockResult.java b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/ValidatorBlockResult.java similarity index 87% rename from data/serializer/src/main/java/tech/pegasys/teku/api/schema/ValidatorBlockResult.java rename to data/serializer/src/main/java/tech/pegasys/teku/api/provider/ValidatorBlockResult.java index 685a8e05258..e2df9524563 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ValidatorBlockResult.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/ValidatorBlockResult.java @@ -11,9 +11,7 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; +package tech.pegasys.teku.api.provider; import io.swagger.v3.oas.annotations.media.Schema; import java.util.Optional; @@ -26,7 +24,7 @@ public class ValidatorBlockResult { @Schema(type = "string") private final Optional failureReason; - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) + @Schema(type = "string", format = "byte", description = "Bytes32 hexadecimal") private final Optional hash_tree_root; public ValidatorBlockResult( diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/EventType.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/EventType.java similarity index 96% rename from data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/EventType.java rename to data/serializer/src/main/java/tech/pegasys/teku/api/response/EventType.java index 202787baf33..383ee7cf4ac 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/EventType.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/response/EventType.java @@ -11,7 +11,7 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.response.v1; +package tech.pegasys.teku.api.response; import java.util.List; diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorStatus.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/ValidatorStatus.java similarity index 96% rename from data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorStatus.java rename to data/serializer/src/main/java/tech/pegasys/teku/api/response/ValidatorStatus.java index a8ff281362c..5da922e6576 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorStatus.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/response/ValidatorStatus.java @@ -11,7 +11,7 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.response.v1.beacon; +package tech.pegasys.teku.api.response; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponse.java index 847a0cb132d..2b508be4760 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponse.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponse.java @@ -22,6 +22,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import java.util.Objects; import java.util.Optional; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.api.schema.Validator; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.unsigned.UInt64; diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/ChainHead.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/ChainHead.java deleted file mode 100644 index 4d4dbf402fe..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/ChainHead.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.debug; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class ChainHead { - @Schema(type = "string", format = "uint64") - public final UInt64 slot; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 root; - - @JsonCreator - public ChainHead( - @JsonProperty("slot") final UInt64 slot, @JsonProperty("root") final Bytes32 root) { - this.slot = slot; - this.root = root; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final ChainHead chainHead = (ChainHead) o; - return Objects.equals(slot, chainHead.slot) && Objects.equals(root, chainHead.root); - } - - @Override - public int hashCode() { - return Objects.hash(slot, root); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/GetChainHeadsResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/GetChainHeadsResponse.java deleted file mode 100644 index 11e2eea670f..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/GetChainHeadsResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.debug; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; - -public class GetChainHeadsResponse { - public final List data; - - @JsonCreator - public GetChainHeadsResponse(@JsonProperty("data") final List data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/GetStateResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/GetStateResponse.java deleted file mode 100644 index 7e8fc86da57..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/debug/GetStateResponse.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.debug; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BeaconState; -import tech.pegasys.teku.api.schema.Version; -import tech.pegasys.teku.api.schema.phase0.BeaconStatePhase0; - -public class GetStateResponse { - - public final BeaconStatePhase0 data; - - @JsonCreator - public GetStateResponse(@JsonProperty("data") final BeaconStatePhase0 data) { - this.data = data; - } - - public GetStateResponse(final Version version, final BeaconState data) { - if (!version.equals(Version.phase0)) { - throw new IllegalArgumentException( - String.format("Beacon state at slot %s is not a phase0 state", data.slot)); - } - this.data = (BeaconStatePhase0) data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSPubKey.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSPubKey.java index c3f053154d3..87b379beee3 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSPubKey.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSPubKey.java @@ -18,6 +18,7 @@ import java.util.Objects; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes48; +import tech.pegasys.teku.api.exceptions.PublicKeyException; import tech.pegasys.teku.bls.BLSPublicKey; @SuppressWarnings("JavaCase") diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/EventTypeTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/EventTypeTest.java index 25d82f0af9f..29aa4a6d9d9 100644 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/EventTypeTest.java +++ b/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/EventTypeTest.java @@ -18,6 +18,7 @@ import java.util.List; import org.junit.jupiter.api.Test; +import tech.pegasys.teku.api.response.EventType; public class EventTypeTest { @Test diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponseTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponseTest.java index e0937e63832..541bad62315 100644 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponseTest.java +++ b/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponseTest.java @@ -21,6 +21,7 @@ import org.apache.tuweni.bytes.Bytes32; import org.apache.tuweni.bytes.Bytes48; import org.junit.jupiter.api.Test; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.TestSpecFactory; diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BLSPubKeyTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BLSPubKeyTest.java deleted file mode 100644 index 872d6cd0eb7..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BLSPubKeyTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.bls.BLSPublicKey; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class BLSPubKeyTest { - private final DataStructureUtil dataStructureUtil = - new DataStructureUtil(TestSpecFactory.createDefault()); - private final BLSPublicKey blsPublicKey = dataStructureUtil.randomPublicKey(); - - @Test - public void shouldConvertToInternalObject() { - final BLSPubKey blsPubKey = new BLSPubKey(blsPublicKey); - assertThat(blsPubKey.asBLSPublicKey()).isEqualTo(blsPublicKey); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BeaconStateTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BeaconStateTest.java deleted file mode 100644 index aa4206c5902..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/BeaconStateTest.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.TestTemplate; -import tech.pegasys.teku.api.schema.altair.BeaconStateAltair; -import tech.pegasys.teku.api.schema.bellatrix.BeaconStateBellatrix; -import tech.pegasys.teku.api.schema.capella.BeaconStateCapella; -import tech.pegasys.teku.api.schema.deneb.BeaconStateDeneb; -import tech.pegasys.teku.api.schema.electra.BeaconStateElectra; -import tech.pegasys.teku.api.schema.phase0.BeaconStatePhase0; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecContext; -import tech.pegasys.teku.spec.TestSpecInvocationContextProvider.SpecContext; - -@TestSpecContext(allMilestones = true) -public class BeaconStateTest { - - @TestTemplate - public void shouldConvertToInternalObject(final SpecContext ctx) { - final tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState beaconStateInternal = - ctx.getDataStructureUtil().randomBeaconState(); - final Spec spec = ctx.getSpec(); - final BeaconState beaconState = - switch (spec.getGenesisSpec().getMilestone()) { - case PHASE0 -> new BeaconStatePhase0(beaconStateInternal); - case ALTAIR -> new BeaconStateAltair(beaconStateInternal); - case BELLATRIX -> new BeaconStateBellatrix(beaconStateInternal); - case CAPELLA -> new BeaconStateCapella(beaconStateInternal); - case DENEB -> new BeaconStateDeneb(beaconStateInternal); - case ELECTRA, FULU -> new BeaconStateElectra(beaconStateInternal); - }; - - assertThat(beaconState.asInternalBeaconState(spec)).isEqualTo(beaconStateInternal); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/altair/BeaconBlockBodyAltairTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/altair/BeaconBlockBodyAltairTest.java deleted file mode 100644 index 3589e7d5675..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/altair/BeaconBlockBodyAltairTest.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import static org.assertj.core.api.Assertions.assertThat; -import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; - -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.SchemaObjectProvider; -import tech.pegasys.teku.api.schema.BeaconBlock; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class BeaconBlockBodyAltairTest { - private final Spec spec = TestSpecFactory.createMinimalAltair(); - private final DataStructureUtil dataStructureUtil = new DataStructureUtil(spec); - private final SchemaObjectProvider schemaObjectProvider = new SchemaObjectProvider(spec); - - @Test - void asInternalBeaconBlockBody_ShouldConvertAltairBlock() { - final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock internalBlock = - dataStructureUtil.randomBeaconBlock(ONE); - final BeaconBlock block = schemaObjectProvider.getBeaconBlock(internalBlock); - - assertThat(block).isInstanceOf(BeaconBlockAltair.class); - assertThat(block.asInternalBeaconBlock(spec)).isEqualTo(internalBlock); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBodyBellatrixTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBodyBellatrixTest.java deleted file mode 100644 index d6726906c26..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBodyBellatrixTest.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import static org.assertj.core.api.Assertions.assertThat; -import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; - -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.SchemaObjectProvider; -import tech.pegasys.teku.api.schema.BeaconBlock; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class BeaconBlockBodyBellatrixTest { - private final Spec spec = TestSpecFactory.createMinimalBellatrix(); - private final DataStructureUtil dataStructureUtil = new DataStructureUtil(spec); - private final SchemaObjectProvider schemaObjectProvider = new SchemaObjectProvider(spec); - - @Test - void asInternalBeaconBlockBody_ShouldConvertBellatrixBlock() { - final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock internalBlock = - dataStructureUtil.randomBeaconBlock(ONE); - final BeaconBlock block = schemaObjectProvider.getBeaconBlock(internalBlock); - - assertThat(block).isInstanceOf(BeaconBlockBellatrix.class); - assertThat(block.asInternalBeaconBlock(spec)).isEqualTo(internalBlock); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBeaconBlockBellatrixTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBeaconBlockBellatrixTest.java deleted file mode 100644 index 2897dc87087..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBeaconBlockBellatrixTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import static org.assertj.core.api.Assertions.assertThat; -import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; - -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.SchemaObjectProvider; -import tech.pegasys.teku.api.schema.BeaconBlock; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class BlindedBeaconBlockBellatrixTest { - private final Spec spec = TestSpecFactory.createMinimalBellatrix(); - private final DataStructureUtil dataStructureUtil = new DataStructureUtil(spec); - private final SchemaObjectProvider schemaObjectProvider = new SchemaObjectProvider(spec); - - @Test - void asInternalBeaconBlockBody_ShouldConvertBellatrixBlindedBlock() { - final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock internalBlock = - dataStructureUtil.randomBlindedBeaconBlock(ONE); - final BeaconBlock block = schemaObjectProvider.getBlindedBlock(internalBlock); - assertThat(block).isInstanceOf(BlindedBlockBellatrix.class); - - final BlindedBlockBellatrix bellatrixBlock = (BlindedBlockBellatrix) block; - assertThat(bellatrixBlock.asInternalBeaconBlock(spec)).isEqualTo(internalBlock); - } -} diff --git a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java index dbcb61af7bf..061c052beaa 100644 --- a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java +++ b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java @@ -27,7 +27,6 @@ import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.units.bigints.UInt256; import org.jetbrains.annotations.NotNull; -import tech.pegasys.teku.api.schema.Version; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.infrastructure.http.RestApiConstants; @@ -166,7 +165,7 @@ private static Map getSszHeaders( final Function milestoneSelector, final T value) { return Map.of( HEADER_CONSENSUS_VERSION, - Version.fromMilestone(milestoneSelector.apply(value)).name(), + milestoneSelector.apply(value).lowerCaseName(), RestApiConstants.HEADER_CONTENT_DISPOSITION, getSszFilename(value)); } diff --git a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorData.java b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorData.java index 7bfe53eeca0..2fabd12cdcd 100644 --- a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorData.java +++ b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorData.java @@ -15,8 +15,8 @@ import java.util.Objects; import java.util.Optional; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.api.response.v1.beacon.ValidatorResponse; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.state.Validator; diff --git a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorDataBuilder.java b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorDataBuilder.java index db5fa358a5c..96e9df883a9 100644 --- a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorDataBuilder.java +++ b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorDataBuilder.java @@ -20,7 +20,7 @@ import static tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition.listOf; import java.util.List; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.metadata.ObjectAndMetaData; diff --git a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StatusParameter.java b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StatusParameter.java index 6b0aa88aca9..d1a34cce778 100644 --- a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StatusParameter.java +++ b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StatusParameter.java @@ -18,7 +18,7 @@ import java.util.Locale; import java.util.Set; import java.util.stream.Collectors; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; public enum StatusParameter { PENDING_INITIALIZED("pending_initialized"), diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecMilestone.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecMilestone.java index fd799579961..6398b2a4cc9 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecMilestone.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecMilestone.java @@ -161,4 +161,8 @@ public static SpecMilestone forName(final String milestoneName) { checkNotNull(milestoneName, "Milestone name can't be null"); return SpecMilestone.valueOf(milestoneName.toUpperCase(Locale.ROOT)); } + + public String lowerCaseName() { + return this.name().toLowerCase(Locale.ROOT); + } } diff --git a/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java b/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java index 9652d99cb60..d57f1bb5430 100644 --- a/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java +++ b/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java @@ -36,6 +36,8 @@ import java.util.List; import java.util.stream.Stream; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -91,6 +93,7 @@ public void shouldReadFromConfigurationFile() { } @Test + @DisabledOnOs(OS.WINDOWS) public void shouldReadUrlFromConfigurationFile(@TempDir final Path tempDir) throws Exception { final Path peersFile = tempDir.resolve("peers.txt"); final Path configPath = tempDir.resolve("config.yaml"); diff --git a/validator/api/src/main/java/tech/pegasys/teku/validator/api/ValidatorTimingChannel.java b/validator/api/src/main/java/tech/pegasys/teku/validator/api/ValidatorTimingChannel.java index 4cfce40d667..8d3d8cd5a36 100644 --- a/validator/api/src/main/java/tech/pegasys/teku/validator/api/ValidatorTimingChannel.java +++ b/validator/api/src/main/java/tech/pegasys/teku/validator/api/ValidatorTimingChannel.java @@ -15,7 +15,7 @@ import java.util.Map; import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.events.VoidReturningChannelInterface; import tech.pegasys.teku.infrastructure.unsigned.UInt64; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/AttestationDutyScheduler.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/AttestationDutyScheduler.java index fb53cf1b84d..2239c529da1 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/AttestationDutyScheduler.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/AttestationDutyScheduler.java @@ -23,7 +23,7 @@ import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes32; import org.hyperledger.besu.plugin.services.MetricsSystem; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.metrics.TekuMetricCategory; import tech.pegasys.teku.infrastructure.unsigned.UInt64; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/BeaconProposerPreparer.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/BeaconProposerPreparer.java index b8d9bbf9e2a..21bb80ae072 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/BeaconProposerPreparer.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/BeaconProposerPreparer.java @@ -22,7 +22,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/BlockDutyScheduler.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/BlockDutyScheduler.java index ca7865c3766..c3dd7fde29f 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/BlockDutyScheduler.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/BlockDutyScheduler.java @@ -18,7 +18,7 @@ import java.util.Map; import org.apache.tuweni.bytes.Bytes32; import org.hyperledger.besu.plugin.services.MetricsSystem; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.metrics.TekuMetricCategory; import tech.pegasys.teku.infrastructure.unsigned.UInt64; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/OwnedKeyManager.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/OwnedKeyManager.java index 04833d20fdc..41be3eba5ed 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/OwnedKeyManager.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/OwnedKeyManager.java @@ -24,6 +24,7 @@ import java.util.stream.Collectors; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.bls.keystore.KeyStoreLoader; import tech.pegasys.teku.bls.keystore.KeyStoreValidationException; @@ -94,7 +95,7 @@ public Optional getValidatorByPublicKey(final BLSPublicKey publicKey) * protection information * *

- NOT_ACTIVE indicates the key is not owned, but we had slashing data, should not be - * confused with {@link tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus} + * confused with {@link ValidatorStatus} * *

- DELETED indicates the key was found, and we have stopped using it and removed it. * diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/OwnedValidatorStatusProvider.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/OwnedValidatorStatusProvider.java index 47008eefd63..191621171f5 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/OwnedValidatorStatusProvider.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/OwnedValidatorStatusProvider.java @@ -30,7 +30,7 @@ import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes32; import org.hyperledger.besu.plugin.services.MetricsSystem; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; import tech.pegasys.teku.infrastructure.async.AsyncRunner; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/SyncCommitteeScheduler.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/SyncCommitteeScheduler.java index dde574a4c22..015ba866b09 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/SyncCommitteeScheduler.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/SyncCommitteeScheduler.java @@ -20,7 +20,7 @@ import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes32; import org.hyperledger.besu.plugin.services.MetricsSystem; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorRegistrator.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorRegistrator.java index 819b685d00e..04a4cea43a2 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorRegistrator.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorRegistrator.java @@ -33,7 +33,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.async.AsyncRunner; import tech.pegasys.teku.infrastructure.async.SafeFuture; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorStatusLogger.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorStatusLogger.java index bd72de17cf9..b6722a7ef0a 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorStatusLogger.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorStatusLogger.java @@ -20,7 +20,7 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.validator.client.loader.OwnedValidators; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorStatusSubscriber.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorStatusSubscriber.java index 5df424a01dc..2da0a42215d 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorStatusSubscriber.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorStatusSubscriber.java @@ -14,7 +14,7 @@ package tech.pegasys.teku.validator.client; import java.util.Map; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; public interface ValidatorStatusSubscriber { diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorTimingActions.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorTimingActions.java index b60136491e9..e6e40f3107f 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorTimingActions.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorTimingActions.java @@ -21,7 +21,7 @@ import java.util.stream.Collectors; import org.apache.tuweni.bytes.Bytes32; import org.hyperledger.besu.plugin.services.MetricsSystem; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.metrics.SettableGauge; import tech.pegasys.teku.infrastructure.metrics.TekuMetricCategory; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/synccommittee/ChainHeadTracker.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/synccommittee/ChainHeadTracker.java index 67f6b7926bf..88e82aae65d 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/synccommittee/ChainHeadTracker.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/duties/synccommittee/ChainHeadTracker.java @@ -16,7 +16,7 @@ import java.util.Map; import java.util.Optional; import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/loader/SlashingProtectionLogger.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/loader/SlashingProtectionLogger.java index 4876d9c9b53..46f148a6042 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/loader/SlashingProtectionLogger.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/loader/SlashingProtectionLogger.java @@ -29,7 +29,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.ethereum.signingrecord.ValidatorSigningRecord; import tech.pegasys.teku.infrastructure.async.AsyncRunner; diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/schema/DeletionStatus.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/schema/DeletionStatus.java index e02aa969736..6413f9f7dc7 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/schema/DeletionStatus.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/restapi/apis/schema/DeletionStatus.java @@ -13,11 +13,13 @@ package tech.pegasys.teku.validator.client.restapi.apis.schema; +import tech.pegasys.teku.api.response.ValidatorStatus; + public enum DeletionStatus { DELETED("deleted"), /** - * Should not be confused with {@link tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus}. - * Means the key was managed but not managed anymore + * Should not be confused with {@link ValidatorStatus}. Means the key was managed but not managed + * anymore */ NOT_ACTIVE("not_active"), NOT_FOUND("not_found"), diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/OwnedValidatorStatusProviderTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/OwnedValidatorStatusProviderTest.java index 2095bdf3f8b..9e3022eada8 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/OwnedValidatorStatusProviderTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/OwnedValidatorStatusProviderTest.java @@ -27,7 +27,7 @@ import java.util.stream.Stream; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; import tech.pegasys.teku.infrastructure.async.AsyncRunner; diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorRegistratorTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorRegistratorTest.java index e3806b2fd0e..fa5367e2663 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorRegistratorTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorRegistratorTest.java @@ -37,7 +37,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestTemplate; import org.mockito.ArgumentCaptor; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.ethereum.execution.types.Eth1Address; import tech.pegasys.teku.infrastructure.async.SafeFuture; diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorStatusProviderTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorStatusProviderTest.java index ceecfe8d45d..a6b1eeab7e8 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorStatusProviderTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorStatusProviderTest.java @@ -36,7 +36,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.bls.BLSTestUtil; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorTimingActionsTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorTimingActionsTest.java index d2ea74a6002..ac919b687eb 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorTimingActionsTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/ValidatorTimingActionsTest.java @@ -27,7 +27,7 @@ import java.util.Set; import org.hyperledger.besu.plugin.services.MetricsSystem; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.logging.StatusLogger; import tech.pegasys.teku.infrastructure.unsigned.UInt64; diff --git a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/apiclient/SchemaObjectsTestFixture.java b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/apiclient/SchemaObjectsTestFixture.java deleted file mode 100644 index 86cf379cd3a..00000000000 --- a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/apiclient/SchemaObjectsTestFixture.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.validator.remote.apiclient; - -import static tech.pegasys.teku.spec.config.SpecConfig.FAR_FUTURE_EPOCH; - -import tech.pegasys.teku.api.response.v1.beacon.GenesisData; -import tech.pegasys.teku.api.response.v1.beacon.GetGenesisResponse; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorResponse; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.BLSPubKey; -import tech.pegasys.teku.api.schema.SignedAggregateAndProof; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.api.schema.SubnetSubscription; -import tech.pegasys.teku.api.schema.Validator; -import tech.pegasys.teku.api.schema.altair.SyncCommitteeContribution; -import tech.pegasys.teku.bls.BLSPublicKey; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class SchemaObjectsTestFixture { - - private final DataStructureUtil dataStructureUtil; - - public SchemaObjectsTestFixture(final Spec spec) { - this.dataStructureUtil = new DataStructureUtil(spec); - } - - public SchemaObjectsTestFixture() { - this(TestSpecFactory.createMinimalPhase0()); - } - - public GetGenesisResponse getGenesisResponse() { - return new GetGenesisResponse( - new GenesisData( - dataStructureUtil.randomUInt64(), - dataStructureUtil.randomBytes32(), - dataStructureUtil.randomBytes4())); - } - - public SignedVoluntaryExit signedVoluntaryExit() { - return new SignedVoluntaryExit(dataStructureUtil.randomSignedVoluntaryExit()); - } - - public ValidatorResponse validatorResponse() { - return validatorResponse(dataStructureUtil.randomLong(), dataStructureUtil.randomPublicKey()); - } - - public ValidatorResponse validatorResponse(final long index, final BLSPublicKey publicKey) { - return new ValidatorResponse( - UInt64.valueOf(index), - dataStructureUtil.randomUInt64(), - ValidatorStatus.active_ongoing, - new Validator( - new BLSPubKey(publicKey), - dataStructureUtil.randomBytes32(), - dataStructureUtil.randomUInt64(), - false, - UInt64.ZERO, - UInt64.ZERO, - FAR_FUTURE_EPOCH, - FAR_FUTURE_EPOCH)); - } - - public SyncCommitteeContribution syncCommitteeContribution(final UInt64 slot) { - final Spec altairSpec = TestSpecFactory.createMainnetAltair(); - final DataStructureUtil altairData = new DataStructureUtil(altairSpec); - return new SyncCommitteeContribution(altairData.randomSyncCommitteeContribution(slot)); - } - - public Attestation attestation() { - return new Attestation(dataStructureUtil.randomAttestation()); - } - - public SubnetSubscription subnetSubscription() { - return new SubnetSubscription(1, UInt64.ONE); - } - - public SignedAggregateAndProof signedAggregateAndProof() { - return new SignedAggregateAndProof(dataStructureUtil.randomSignedAggregateAndProof()); - } -} diff --git a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java index f2ffa97fe99..fbd21b13a9c 100644 --- a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java +++ b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java @@ -61,7 +61,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestTemplate; import tech.pegasys.teku.api.exceptions.RemoteServiceNotAvailableException; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; import tech.pegasys.teku.ethereum.json.types.validator.AttesterDuties; diff --git a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetStateValidatorsRequestTest.java b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetStateValidatorsRequestTest.java index 15088135ad5..d5e544d3565 100644 --- a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetStateValidatorsRequestTest.java +++ b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetStateValidatorsRequestTest.java @@ -36,7 +36,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestTemplate; import tech.pegasys.teku.api.exceptions.RemoteServiceNotAvailableException; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.TestSpecContext; diff --git a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/BeaconNodeReadinessManager.java b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/BeaconNodeReadinessManager.java index b1099d82eda..647941fd7ab 100644 --- a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/BeaconNodeReadinessManager.java +++ b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/BeaconNodeReadinessManager.java @@ -27,7 +27,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.ethereum.json.types.node.PeerCount; import tech.pegasys.teku.infrastructure.async.SafeFuture; diff --git a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceBeaconChainEventAdapter.java b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceBeaconChainEventAdapter.java index da34c803791..c05848ae775 100644 --- a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceBeaconChainEventAdapter.java +++ b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceBeaconChainEventAdapter.java @@ -36,7 +36,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hyperledger.besu.plugin.services.MetricsSystem; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.logging.ValidatorLogger; import tech.pegasys.teku.spec.Spec; diff --git a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceHandler.java b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceHandler.java index 36585ae92a3..1907ee36a58 100644 --- a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceHandler.java +++ b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceHandler.java @@ -25,7 +25,7 @@ import org.hyperledger.besu.plugin.services.MetricsSystem; import org.hyperledger.besu.plugin.services.metrics.Counter; import org.hyperledger.besu.plugin.services.metrics.LabelledMetric; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.infrastructure.json.JsonUtil; import tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition; import tech.pegasys.teku.infrastructure.metrics.TekuMetricCategory; diff --git a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandlerTest.java b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandlerTest.java index 26c5cfe7536..c749bf718fe 100644 --- a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandlerTest.java +++ b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandlerTest.java @@ -45,7 +45,7 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import tech.pegasys.teku.api.migrated.ValidatorLivenessAtEpoch; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; diff --git a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/RemoteValidatorApiHandlerTest.java b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/RemoteValidatorApiHandlerTest.java index 5d0f1865194..eed0df5963f 100644 --- a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/RemoteValidatorApiHandlerTest.java +++ b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/RemoteValidatorApiHandlerTest.java @@ -48,7 +48,7 @@ import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import tech.pegasys.teku.api.migrated.ValidatorLivenessAtEpoch; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorStatus; +import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.ethereum.json.types.beacon.StateValidatorData; diff --git a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceBeaconChainEventAdapterTest.java b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceBeaconChainEventAdapterTest.java index 5f5ca028a75..03689b3ebb6 100644 --- a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceBeaconChainEventAdapterTest.java +++ b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceBeaconChainEventAdapterTest.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.logging.ValidatorLogger; import tech.pegasys.teku.spec.Spec; diff --git a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceHandlerTest.java b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceHandlerTest.java index 112e5d32890..8f40ee12064 100644 --- a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceHandlerTest.java +++ b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/eventsource/EventSourceHandlerTest.java @@ -23,7 +23,7 @@ import com.launchdarkly.eventsource.MessageEvent; import org.apache.tuweni.bytes.Bytes32; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.response.v1.EventType; +import tech.pegasys.teku.api.response.EventType; import tech.pegasys.teku.infrastructure.json.JsonUtil; import tech.pegasys.teku.infrastructure.metrics.StubMetricsSystem; import tech.pegasys.teku.infrastructure.unsigned.UInt64; From f93c8ffc64c9724e00b7426f2553bf7a9fd008a5 Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Tue, 29 Apr 2025 07:13:27 +1000 Subject: [PATCH 18/33] cleanup the rest of api/schema (#9377) Signed-off-by: Paul Harris --- .../handlers/v1/node/GetPeers.java | 4 +- .../pegasys/teku/api/ChainDataProvider.java | 4 +- .../pegasys/teku/api/NetworkDataProvider.java | 6 +- .../teku/api/ChainDataProviderTest.java | 2 +- .../teku/api/ChainDataProviderTestPhase0.java | 2 +- .../api/exceptions/PublicKeyException.java | 4 - .../v1/node => provider}/Direction.java | 2 +- .../v1/beacon => provider}/GenesisData.java | 10 +- .../{response/v1/node => provider}/Peer.java | 2 +- .../{response/v1/node => provider}/State.java | 2 +- .../api/response/ValidatorStatusUtil.java | 64 ++++ .../api/response/v1/beacon/BlockHeader.java | 88 ------ .../v1/beacon/EpochCommitteeResponse.java | 78 ----- .../beacon/FinalityCheckpointsResponse.java | 82 ----- .../v1/beacon/GetBlockHeadersResponse.java | 35 --- .../response/v1/beacon/GetBlockResponse.java | 27 -- .../v1/beacon/GetBlockRootResponse.java | 36 --- .../v1/beacon/GetGenesisResponse.java | 31 -- .../v1/beacon/GetHashTreeRootResponse.java | 29 -- .../beacon/GetProposerSlashingsResponse.java | 29 -- .../v1/beacon/GetStateCommitteesResponse.java | 35 --- .../GetStateFinalityCheckpointsResponse.java | 35 --- .../v1/beacon/GetStateForkResponse.java | 39 --- .../v1/beacon/GetStateRootResponse.java | 35 --- .../GetStateSyncCommitteesResponse.java | 33 -- .../GetStateValidatorBalancesResponse.java | 35 --- .../v1/beacon/GetStateValidatorResponse.java | 34 --- .../v1/beacon/GetStateValidatorsResponse.java | 35 --- .../v1/beacon/GetVoluntaryExitsResponse.java | 29 -- .../response/v1/beacon/PostDataFailure.java | 51 ---- .../v1/beacon/PostDataFailureResponse.java | 58 ---- .../v1/beacon/StateSyncCommittees.java | 77 ----- .../v1/beacon/ValidatorBalanceResponse.java | 79 ----- .../response/v1/beacon/ValidatorResponse.java | 173 ----------- .../response/v1/config/DepositContract.java | 35 --- .../v1/config/GetDepositContractResponse.java | 31 -- .../v1/config/GetForkScheduleResponse.java | 28 -- .../v1/node/GetPeerCountResponse.java | 76 ----- .../teku/api/response/v1/node/Identity.java | 120 -------- .../response/v1/node/IdentityResponse.java | 26 -- .../teku/api/response/v1/node/Meta.java | 54 ---- .../teku/api/response/v1/node/PeerCount.java | 77 ----- .../api/response/v1/node/PeerResponse.java | 45 --- .../api/response/v1/node/PeersResponse.java | 48 --- .../teku/api/response/v1/node/Syncing.java | 108 ------- .../api/response/v1/node/SyncingResponse.java | 44 --- .../teku/api/response/v1/node/Version.java | 51 ---- .../api/response/v1/node/VersionResponse.java | 44 --- .../response/v1/teku/DepositTreeSnapshot.java | 81 ----- .../response/v1/teku/DepositWithIndex.java | 32 -- .../v1/teku/Eth1DataWithVotesSchema.java | 37 --- .../v1/teku/Eth1VotingSummarySchema.java | 55 ---- .../v1/teku/GetAllBlocksAtSlotResponse.java | 42 --- .../v1/teku/GetDepositSnapshotResponse.java | 27 -- .../response/v1/teku/GetDepositsResponse.java | 45 --- .../v1/teku/GetEth1DataCacheResponse.java | 29 -- .../response/v1/teku/GetEth1DataResponse.java | 28 -- .../v1/teku/GetEth1VotingSummaryResponse.java | 27 -- .../v1/teku/GetPeerScoresResponse.java | 27 -- .../v1/teku/GetProposersDataResponse.java | 34 --- .../teku/api/response/v1/teku/PeerScore.java | 67 ----- .../v1/teku/PreparedProposerInfoSchema.java | 42 --- .../response/v1/teku/ProposerDataSchema.java | 31 -- .../teku/RegisteredValidatorInfoSchema.java | 62 ---- .../validator/GetNewBlindedBlockResponse.java | 27 -- .../v1/validator/GetNewBlockResponse.java | 25 -- .../PostValidatorLivenessResponse.java | 28 -- .../v1/validator/ValidatorLiveness.java | 58 ---- .../v2/beacon/GetBlockResponseV2.java | 69 ----- .../response/v2/debug/GetStateResponseV2.java | 41 --- .../v2/validator/GetNewBlockResponseV2.java | 28 -- .../teku/api/schema/AggregateAndProof.java | 68 ----- .../pegasys/teku/api/schema/Attestation.java | 107 ------- .../teku/api/schema/AttestationData.java | 91 ------ .../teku/api/schema/AttesterSlashing.java | 72 ----- .../pegasys/teku/api/schema/BLSPubKey.java | 90 ------ .../pegasys/teku/api/schema/BLSSignature.java | 83 ------ .../pegasys/teku/api/schema/BeaconBlock.java | 108 ------- .../teku/api/schema/BeaconBlockBody.java | 170 ----------- .../teku/api/schema/BeaconBlockHeader.java | 103 ------- .../pegasys/teku/api/schema/BeaconState.java | 197 ------------ .../pegasys/teku/api/schema/Checkpoint.java | 72 ----- .../tech/pegasys/teku/api/schema/Deposit.java | 70 ----- .../pegasys/teku/api/schema/DepositData.java | 87 ------ .../pegasys/teku/api/schema/Eth1Data.java | 75 ----- .../teku/api/schema/ExecutionPayload.java | 34 --- .../api/schema/ExecutionPayloadHeader.java | 37 --- .../tech/pegasys/teku/api/schema/Fork.java | 86 ------ .../teku/api/schema/IndexedAttestation.java | 89 ------ .../teku/api/schema/KZGCommitment.java | 87 ------ .../pegasys/teku/api/schema/KZGProof.java | 86 ------ .../pegasys/teku/api/schema/LogLevel.java | 51 ---- .../pegasys/teku/api/schema/Metadata.java | 102 ------- .../teku/api/schema/PendingAttestation.java | 87 ------ .../teku/api/schema/ProposerSlashing.java | 63 ---- .../tech/pegasys/teku/api/schema/Root.java | 49 --- .../teku/api/schema/SchemaConstants.java | 41 --- .../api/schema/SignedAggregateAndProof.java | 55 ---- .../teku/api/schema/SignedBeaconBlock.java | 131 -------- .../api/schema/SignedBeaconBlockHeader.java | 74 ----- .../api/schema/SignedBeaconBlockWithRoot.java | 35 --- .../teku/api/schema/SignedVoluntaryExit.java | 71 ----- .../teku/api/schema/SubnetSubscription.java | 42 --- .../pegasys/teku/api/schema/Validator.java | 165 ---------- .../tech/pegasys/teku/api/schema/Version.java | 39 --- .../teku/api/schema/VoluntaryExit.java | 66 ---- .../api/schema/altair/BeaconBlockAltair.java | 67 ----- .../schema/altair/BeaconBlockBodyAltair.java | 102 ------- .../api/schema/altair/BeaconStateAltair.java | 200 ------------- .../schema/altair/ContributionAndProof.java | 74 ----- .../altair/SignedBeaconBlockAltair.java | 43 --- .../altair/SignedContributionAndProof.java | 65 ---- .../teku/api/schema/altair/SyncAggregate.java | 49 --- .../teku/api/schema/altair/SyncCommittee.java | 79 ----- .../altair/SyncCommitteeContribution.java | 123 -------- .../schema/altair/SyncCommitteeMessage.java | 97 ------ .../SyncCommitteeSubnetSubscription.java | 49 --- .../bellatrix/BeaconBlockBellatrix.java | 65 ---- .../bellatrix/BeaconBlockBodyBellatrix.java | 97 ------ .../bellatrix/BeaconPreparableProposer.java | 48 --- .../bellatrix/BeaconStateBellatrix.java | 155 ---------- .../BlindedBeaconBlockBodyBellatrix.java | 112 ------- .../bellatrix/BlindedBlockBellatrix.java | 70 ----- .../bellatrix/ExecutionPayloadBellatrix.java | 181 ----------- .../bellatrix/ExecutionPayloadCommon.java | 197 ------------ .../ExecutionPayloadHeaderBellatrix.java | 177 ----------- .../bellatrix/SignedBeaconBlockBellatrix.java | 43 --- .../SignedBlindedBeaconBlockBellatrix.java | 47 --- .../capella/BeaconBlockBodyCapella.java | 111 ------- .../schema/capella/BeaconBlockCapella.java | 65 ---- .../schema/capella/BeaconStateCapella.java | 193 ------------ .../BlindedBeaconBlockBodyCapella.java | 124 -------- .../schema/capella/BlindedBlockCapella.java | 70 ----- .../schema/capella/BlsToExecutionChange.java | 87 ------ .../capella/ExecutionPayloadCapella.java | 145 --------- .../ExecutionPayloadHeaderCapella.java | 137 --------- .../api/schema/capella/HistoricalSummary.java | 62 ---- .../capella/SignedBeaconBlockCapella.java | 43 --- .../SignedBlindedBeaconBlockCapella.java | 47 --- .../capella/SignedBlsToExecutionChange.java | 65 ---- .../teku/api/schema/capella/Withdrawal.java | 60 ---- .../schema/deneb/BeaconBlockBodyDeneb.java | 133 --------- .../api/schema/deneb/BeaconBlockDeneb.java | 65 ---- .../api/schema/deneb/BeaconStateDeneb.java | 174 ----------- .../deneb/BlindedBeaconBlockBodyDeneb.java | 146 --------- .../api/schema/deneb/BlindedBlockDeneb.java | 69 ----- .../schema/deneb/ExecutionPayloadDeneb.java | 144 --------- .../deneb/ExecutionPayloadHeaderDeneb.java | 171 ----------- .../schema/deneb/SignedBeaconBlockDeneb.java | 43 --- .../deneb/SignedBlindedBeaconBlockDeneb.java | 47 --- .../electra/BeaconBlockBodyElectra.java | 149 --------- .../schema/electra/BeaconBlockElectra.java | 65 ---- .../schema/electra/BeaconStateElectra.java | 282 ------------------ .../BlindedBeaconBlockBodyElectra.java | 160 ---------- .../schema/electra/BlindedBlockElectra.java | 70 ----- .../schema/electra/ConsolidationRequest.java | 54 ---- .../api/schema/electra/DepositRequest.java | 72 ----- .../api/schema/electra/ExecutionRequests.java | 85 ------ .../schema/electra/PendingConsolidation.java | 59 ---- .../api/schema/electra/PendingDeposit.java | 89 ------ .../electra/PendingPartialWithdrawal.java | 66 ---- .../electra/SignedBeaconBlockElectra.java | 43 --- .../SignedBlindedBeaconBlockElectra.java | 47 --- .../api/schema/electra/WithdrawalRequest.java | 55 ---- .../api/schema/interfaces/SignedBlock.java | 33 -- .../teku/api/schema/interfaces/State.java | 33 -- .../interfaces/UnsignedBlindedBlock.java | 33 -- .../api/schema/interfaces/UnsignedBlock.java | 33 -- .../pegasys/teku/api/schema/package-info.java | 5 - .../api/schema/phase0/BeaconBlockPhase0.java | 44 --- .../api/schema/phase0/BeaconStatePhase0.java | 161 ---------- .../phase0/SignedBeaconBlockPhase0.java | 36 --- .../api/response/{v1 => }/EventTypeTest.java | 3 +- ...Test.java => ValidatorStatusUtilTest.java} | 25 +- .../pegasys/teku/api/schema/Eth1DataTest.java | 33 -- .../pegasys/teku/api/schema/ForkTest.java | 33 -- .../pegasys/teku/api/schema/LogLevelTest.java | 45 --- .../api/schema/PendingAttestationTest.java | 35 --- .../api/schema/SignedBeaconBlockTest.java | 34 --- .../teku/api/schema/ValidatorTest.java | 33 -- .../json/types/beacon/StateValidatorData.java | 4 +- 181 files changed, 96 insertions(+), 12061 deletions(-) rename data/serializer/src/main/java/tech/pegasys/teku/api/{response/v1/node => provider}/Direction.java (93%) rename data/serializer/src/main/java/tech/pegasys/teku/api/{response/v1/beacon => provider}/GenesisData.java (90%) rename data/serializer/src/main/java/tech/pegasys/teku/api/{response/v1/node => provider}/Peer.java (98%) rename data/serializer/src/main/java/tech/pegasys/teku/api/{response/v1/node => provider}/State.java (93%) create mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/ValidatorStatusUtil.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/BlockHeader.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/EpochCommitteeResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/FinalityCheckpointsResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockHeadersResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockRootResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetGenesisResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetHashTreeRootResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetProposerSlashingsResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateCommitteesResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateFinalityCheckpointsResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateForkResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateRootResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateSyncCommitteesResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorBalancesResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorsResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetVoluntaryExitsResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/PostDataFailure.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/PostDataFailureResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/StateSyncCommittees.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorBalanceResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/DepositContract.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/GetDepositContractResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/GetForkScheduleResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/GetPeerCountResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Identity.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/IdentityResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Meta.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeerCount.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeerResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeersResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Syncing.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/SyncingResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Version.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/VersionResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/DepositTreeSnapshot.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/DepositWithIndex.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/Eth1DataWithVotesSchema.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/Eth1VotingSummarySchema.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetAllBlocksAtSlotResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetDepositSnapshotResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetDepositsResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1DataCacheResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1DataResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1VotingSummaryResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetPeerScoresResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetProposersDataResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/PeerScore.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/PreparedProposerInfoSchema.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/ProposerDataSchema.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/RegisteredValidatorInfoSchema.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/GetNewBlindedBlockResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/GetNewBlockResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/PostValidatorLivenessResponse.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/ValidatorLiveness.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/beacon/GetBlockResponseV2.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/debug/GetStateResponseV2.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/validator/GetNewBlockResponseV2.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/AggregateAndProof.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/Attestation.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/AttestationData.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/AttesterSlashing.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSPubKey.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSSignature.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlock.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlockBody.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlockHeader.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconState.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/Checkpoint.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/Deposit.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/DepositData.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/Eth1Data.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/ExecutionPayload.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/ExecutionPayloadHeader.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/Fork.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/IndexedAttestation.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/KZGCommitment.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/KZGProof.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/LogLevel.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/Metadata.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/PendingAttestation.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/ProposerSlashing.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/Root.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/SchemaConstants.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedAggregateAndProof.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlock.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlockHeader.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlockWithRoot.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedVoluntaryExit.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/SubnetSubscription.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/Validator.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/Version.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/VoluntaryExit.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconBlockAltair.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconBlockBodyAltair.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconStateAltair.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/ContributionAndProof.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SignedBeaconBlockAltair.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SignedContributionAndProof.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncAggregate.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommittee.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeContribution.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeMessage.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeSubnetSubscription.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBellatrix.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBodyBellatrix.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconPreparableProposer.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconStateBellatrix.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBeaconBlockBodyBellatrix.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBlockBellatrix.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadBellatrix.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadCommon.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadHeaderBellatrix.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/SignedBeaconBlockBellatrix.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/SignedBlindedBeaconBlockBellatrix.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconBlockBodyCapella.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconBlockCapella.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconStateCapella.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlindedBeaconBlockBodyCapella.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlindedBlockCapella.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlsToExecutionChange.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/ExecutionPayloadCapella.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/ExecutionPayloadHeaderCapella.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/HistoricalSummary.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBeaconBlockCapella.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBlindedBeaconBlockCapella.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBlsToExecutionChange.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/Withdrawal.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconBlockBodyDeneb.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconBlockDeneb.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconStateDeneb.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BlindedBeaconBlockBodyDeneb.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BlindedBlockDeneb.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/ExecutionPayloadDeneb.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/ExecutionPayloadHeaderDeneb.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/SignedBeaconBlockDeneb.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/SignedBlindedBeaconBlockDeneb.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconBlockBodyElectra.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconBlockElectra.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconStateElectra.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BlindedBeaconBlockBodyElectra.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BlindedBlockElectra.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/ConsolidationRequest.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/DepositRequest.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/ExecutionRequests.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingConsolidation.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingDeposit.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingPartialWithdrawal.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/SignedBeaconBlockElectra.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/SignedBlindedBeaconBlockElectra.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/WithdrawalRequest.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/SignedBlock.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/State.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/UnsignedBlindedBlock.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/UnsignedBlock.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/package-info.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/BeaconBlockPhase0.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/BeaconStatePhase0.java delete mode 100644 data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/SignedBeaconBlockPhase0.java rename data/serializer/src/test/java/tech/pegasys/teku/api/response/{v1 => }/EventTypeTest.java (93%) rename data/serializer/src/test/java/tech/pegasys/teku/api/response/{v1/beacon/ValidatorResponseTest.java => ValidatorStatusUtilTest.java} (82%) delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/Eth1DataTest.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/ForkTest.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/LogLevelTest.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/PendingAttestationTest.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/SignedBeaconBlockTest.java delete mode 100644 data/serializer/src/test/java/tech/pegasys/teku/api/schema/ValidatorTest.java diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/node/GetPeers.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/node/GetPeers.java index 98bc8f9ad7f..8d8282a03dd 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/node/GetPeers.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/node/GetPeers.java @@ -27,8 +27,8 @@ import tech.pegasys.teku.api.DataProvider; import tech.pegasys.teku.api.NetworkDataProvider; import tech.pegasys.teku.api.peer.Eth2PeerWithEnr; -import tech.pegasys.teku.api.response.v1.node.Direction; -import tech.pegasys.teku.api.response.v1.node.State; +import tech.pegasys.teku.api.provider.Direction; +import tech.pegasys.teku.api.provider.State; import tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition; import tech.pegasys.teku.infrastructure.json.types.SerializableTypeDefinition; import tech.pegasys.teku.infrastructure.restapi.endpoints.EndpointMetadata; diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java b/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java index b71aeb33673..5905559cb2d 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java @@ -14,7 +14,7 @@ package tech.pegasys.teku.api; import static java.util.Collections.emptyList; -import static tech.pegasys.teku.api.response.v1.beacon.ValidatorResponse.getValidatorStatus; +import static tech.pegasys.teku.api.response.ValidatorStatusUtil.getValidatorStatus; import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ZERO; import static tech.pegasys.teku.spec.config.SpecConfig.FAR_FUTURE_EPOCH; @@ -44,8 +44,8 @@ import tech.pegasys.teku.api.migrated.StateSyncCommitteesData; import tech.pegasys.teku.api.migrated.StateValidatorBalanceData; import tech.pegasys.teku.api.migrated.SyncCommitteeRewardData; +import tech.pegasys.teku.api.provider.GenesisData; import tech.pegasys.teku.api.response.ValidatorStatus; -import tech.pegasys.teku.api.response.v1.beacon.GenesisData; import tech.pegasys.teku.api.rewards.EpochAttestationRewardsCalculator; import tech.pegasys.teku.api.stateselector.StateSelectorFactory; import tech.pegasys.teku.bls.BLSPublicKey; diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/NetworkDataProvider.java b/data/provider/src/main/java/tech/pegasys/teku/api/NetworkDataProvider.java index 465f698569e..69d23840255 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/NetworkDataProvider.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/NetworkDataProvider.java @@ -18,9 +18,9 @@ import java.util.function.Function; import org.apache.tuweni.units.bigints.UInt256; import tech.pegasys.teku.api.peer.Eth2PeerWithEnr; -import tech.pegasys.teku.api.response.v1.node.Direction; -import tech.pegasys.teku.api.response.v1.node.Peer; -import tech.pegasys.teku.api.response.v1.node.State; +import tech.pegasys.teku.api.provider.Direction; +import tech.pegasys.teku.api.provider.Peer; +import tech.pegasys.teku.api.provider.State; import tech.pegasys.teku.ethereum.json.types.node.PeerCount; import tech.pegasys.teku.ethereum.json.types.node.PeerCountBuilder; import tech.pegasys.teku.infrastructure.unsigned.UInt64; diff --git a/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTest.java b/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTest.java index 613c5d4ad7d..c292bd7ba30 100644 --- a/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTest.java +++ b/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTest.java @@ -55,8 +55,8 @@ import tech.pegasys.teku.api.migrated.BlockRewardData; import tech.pegasys.teku.api.migrated.StateSyncCommitteesData; import tech.pegasys.teku.api.migrated.SyncCommitteeRewardData; +import tech.pegasys.teku.api.provider.GenesisData; import tech.pegasys.teku.api.response.ValidatorStatus; -import tech.pegasys.teku.api.response.v1.beacon.GenesisData; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.async.SafeFutureAssert; import tech.pegasys.teku.infrastructure.bytes.Bytes20; diff --git a/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTestPhase0.java b/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTestPhase0.java index ad0cb98e358..d4640c0eec2 100644 --- a/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTestPhase0.java +++ b/data/provider/src/test/java/tech/pegasys/teku/api/ChainDataProviderTestPhase0.java @@ -47,8 +47,8 @@ import tech.pegasys.teku.api.migrated.BlockHeadersResponse; import tech.pegasys.teku.api.migrated.StateSyncCommitteesData; import tech.pegasys.teku.api.migrated.SyncCommitteeRewardData; +import tech.pegasys.teku.api.provider.GenesisData; import tech.pegasys.teku.api.response.ValidatorStatus; -import tech.pegasys.teku.api.response.v1.beacon.GenesisData; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.bytes.Bytes4; import tech.pegasys.teku.infrastructure.unsigned.UInt64; diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/exceptions/PublicKeyException.java b/data/serializer/src/main/java/tech/pegasys/teku/api/exceptions/PublicKeyException.java index 97c9665e6e0..a47b17c389b 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/exceptions/PublicKeyException.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/exceptions/PublicKeyException.java @@ -18,8 +18,4 @@ public class PublicKeyException extends RuntimeException { public PublicKeyException(final String message, final Throwable cause) { super(message, cause); } - - public PublicKeyException(final String err) { - super(err); - } } diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Direction.java b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/Direction.java similarity index 93% rename from data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Direction.java rename to data/serializer/src/main/java/tech/pegasys/teku/api/provider/Direction.java index 6bd54e9b9aa..dbba2e9ec21 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Direction.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/Direction.java @@ -11,7 +11,7 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.response.v1.node; +package tech.pegasys.teku.api.provider; @SuppressWarnings("JavaCase") public enum Direction { diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GenesisData.java b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/GenesisData.java similarity index 90% rename from data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GenesisData.java rename to data/serializer/src/main/java/tech/pegasys/teku/api/provider/GenesisData.java index 37ae5be843e..5aa3c905ba3 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GenesisData.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/GenesisData.java @@ -11,10 +11,7 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.response.v1.beacon; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES32; +package tech.pegasys.teku.api.provider; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -35,7 +32,10 @@ public class GenesisData { public final UInt64 genesisTime; @JsonProperty("genesis_validators_root") - @Schema(type = "string", example = EXAMPLE_BYTES32, pattern = PATTERN_BYTES32) + @Schema( + type = "string", + example = "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + pattern = "^0x[a-fA-F0-9]{64}$") public final Bytes32 genesisValidatorsRoot; @JsonProperty("genesis_fork_version") diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Peer.java b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/Peer.java similarity index 98% rename from data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Peer.java rename to data/serializer/src/main/java/tech/pegasys/teku/api/provider/Peer.java index 71e5a215b90..8bcdfb254ad 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Peer.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/Peer.java @@ -11,7 +11,7 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.response.v1.node; +package tech.pegasys.teku.api.provider; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/State.java b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/State.java similarity index 93% rename from data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/State.java rename to data/serializer/src/main/java/tech/pegasys/teku/api/provider/State.java index 8877e2bc2db..0f60a2163f6 100644 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/State.java +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/provider/State.java @@ -11,7 +11,7 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.response.v1.node; +package tech.pegasys.teku.api.provider; @SuppressWarnings("JavaCase") public enum State { diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/ValidatorStatusUtil.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/ValidatorStatusUtil.java new file mode 100644 index 00000000000..2db66e33736 --- /dev/null +++ b/data/serializer/src/main/java/tech/pegasys/teku/api/response/ValidatorStatusUtil.java @@ -0,0 +1,64 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.api.response; + +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.state.Validator; +import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; + +public class ValidatorStatusUtil { + public static ValidatorStatus getValidatorStatus( + final BeaconState state, + final Integer validatorIndex, + final UInt64 epoch, + final UInt64 farFutureEpoch) { + return getValidatorStatus(epoch, state.getValidators().get(validatorIndex), farFutureEpoch); + } + + public static ValidatorStatus getValidatorStatus( + final UInt64 epoch, final Validator validator, final UInt64 farFutureEpoch) { + // pending + if (validator.getActivationEpoch().isGreaterThan(epoch)) { + return validator.getActivationEligibilityEpoch().equals(farFutureEpoch) + ? ValidatorStatus.pending_initialized + : ValidatorStatus.pending_queued; + } + // active + if (validator.getActivationEpoch().isLessThanOrEqualTo(epoch) + && epoch.isLessThan(validator.getExitEpoch())) { + if (validator.getExitEpoch().equals(farFutureEpoch)) { + return ValidatorStatus.active_ongoing; + } + return validator.isSlashed() + ? ValidatorStatus.active_slashed + : ValidatorStatus.active_exiting; + } + + // exited + if (validator.getExitEpoch().isLessThanOrEqualTo(epoch) + && epoch.isLessThan(validator.getWithdrawableEpoch())) { + return validator.isSlashed() + ? ValidatorStatus.exited_slashed + : ValidatorStatus.exited_unslashed; + } + + // withdrawal + if (validator.getWithdrawableEpoch().isLessThanOrEqualTo(epoch)) { + return validator.getEffectiveBalance().isGreaterThan(UInt64.ZERO) + ? ValidatorStatus.withdrawal_possible + : ValidatorStatus.withdrawal_done; + } + throw new IllegalStateException("Unable to determine validator status"); + } +} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/BlockHeader.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/BlockHeader.java deleted file mode 100644 index 3d9bbd49ebb..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/BlockHeader.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.BeaconBlockHeader; -import tech.pegasys.teku.api.schema.SignedBeaconBlockHeader; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; - -public class BlockHeader { - @Schema(type = "string", example = EXAMPLE_BYTES32, pattern = PATTERN_BYTES32) - public final Bytes32 root; - - public final boolean canonical; - public final SignedBeaconBlockHeader header; - - @JsonCreator - public BlockHeader( - @JsonProperty("root") final Bytes32 root, - @JsonProperty("canonical") final boolean canonical, - @JsonProperty("header") final SignedBeaconBlockHeader header) { - this.root = root; - this.canonical = canonical; - this.header = header; - } - - public BlockHeader(final SignedBeaconBlock signedBeaconBlock, final boolean canonical) { - this.root = signedBeaconBlock.getRoot(); - this.canonical = canonical; - this.header = - new SignedBeaconBlockHeader( - new BeaconBlockHeader( - signedBeaconBlock.getSlot(), - signedBeaconBlock.getMessage().getProposerIndex(), - signedBeaconBlock.getParentRoot(), - signedBeaconBlock.getStateRoot(), - signedBeaconBlock.getBodyRoot()), - new BLSSignature(signedBeaconBlock.getSignature())); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final BlockHeader that = (BlockHeader) o; - return canonical == that.canonical - && Objects.equals(root, that.root) - && Objects.equals(header, that.header); - } - - @Override - public int hashCode() { - return Objects.hash(root, canonical, header); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("root", root) - .add("canonical", canonical) - .add("header", header) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/EpochCommitteeResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/EpochCommitteeResponse.java deleted file mode 100644 index 23a0a16bbfc..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/EpochCommitteeResponse.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.Objects; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.infrastructure.unsigned.UInt64Util; -import tech.pegasys.teku.spec.datastructures.state.CommitteeAssignment; - -public class EpochCommitteeResponse { - @JsonProperty("index") - @Schema(type = "string", example = EXAMPLE_UINT64, description = "Index of committee") - public final UInt64 index; - - @JsonProperty("slot") - @Schema( - type = "string", - example = EXAMPLE_UINT64, - description = "The slot at which the committee has to attest.") - public final UInt64 slot; - - @JsonProperty("validators") - @ArraySchema(schema = @Schema(type = "string", example = EXAMPLE_UINT64)) - public final List validators; - - public EpochCommitteeResponse(final CommitteeAssignment committeeAssignment) { - this.slot = committeeAssignment.slot(); - this.index = committeeAssignment.committeeIndex(); - this.validators = UInt64Util.intToUInt64List(committeeAssignment.committee()); - } - - @JsonCreator - public EpochCommitteeResponse( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("index") final UInt64 index, - @JsonProperty("validators") final List validators) { - this.slot = slot; - this.index = index; - this.validators = validators; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof EpochCommitteeResponse)) { - return false; - } - EpochCommitteeResponse that = (EpochCommitteeResponse) o; - return Objects.equal(index, that.index) - && Objects.equal(slot, that.slot) - && Objects.equal(validators, that.validators); - } - - @Override - public int hashCode() { - return Objects.hashCode(index, slot, validators); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/FinalityCheckpointsResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/FinalityCheckpointsResponse.java deleted file mode 100644 index ba5dae36a80..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/FinalityCheckpointsResponse.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import java.util.Objects; -import tech.pegasys.teku.api.schema.Checkpoint; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; - -@SuppressWarnings("JavaCase") -public class FinalityCheckpointsResponse { - @JsonProperty("previous_justified") - public final Checkpoint previous_justified; - - @JsonProperty("current_justified") - public final Checkpoint current_justified; - - @JsonProperty("finalized") - public final Checkpoint finalized; - - @JsonCreator - public FinalityCheckpointsResponse( - final @JsonProperty("previous_justified") Checkpoint previous_justified, - final @JsonProperty("current_justified") Checkpoint current_justified, - final @JsonProperty("finalized") Checkpoint finalized) { - this.previous_justified = previous_justified; - this.current_justified = current_justified; - this.finalized = finalized; - } - - public static FinalityCheckpointsResponse fromState(final BeaconState state) { - if (state.getFinalizedCheckpoint().getEpoch().equals(UInt64.ZERO)) { - return new FinalityCheckpointsResponse(Checkpoint.EMPTY, Checkpoint.EMPTY, Checkpoint.EMPTY); - } - return new FinalityCheckpointsResponse( - new Checkpoint(state.getPreviousJustifiedCheckpoint()), - new Checkpoint(state.getCurrentJustifiedCheckpoint()), - new Checkpoint(state.getFinalizedCheckpoint())); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final FinalityCheckpointsResponse that = (FinalityCheckpointsResponse) o; - return Objects.equals(previous_justified, that.previous_justified) - && Objects.equals(current_justified, that.current_justified) - && Objects.equals(finalized, that.finalized); - } - - @Override - public int hashCode() { - return Objects.hash(previous_justified, current_justified, finalized); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("previous_justified", previous_justified) - .add("current_justified", current_justified) - .add("finalized", finalized) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockHeadersResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockHeadersResponse.java deleted file mode 100644 index 4efe938b8cd..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockHeadersResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; - -@SuppressWarnings("JavaCase") -public class GetBlockHeadersResponse { - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final List data; - - @JsonCreator - public GetBlockHeadersResponse( - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final List data) { - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockResponse.java deleted file mode 100644 index 655740526a0..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; - -public class GetBlockResponse { - public final SignedBeaconBlock data; - - @JsonCreator - public GetBlockResponse(@JsonProperty("data") final SignedBeaconBlock data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockRootResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockRootResponse.java deleted file mode 100644 index 358cc4abe82..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetBlockRootResponse.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.Root; - -@SuppressWarnings("JavaCase") -public class GetBlockRootResponse { - - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final Root data; - - @JsonCreator - public GetBlockRootResponse( - @JsonProperty("data") final Root data, - @JsonProperty("execution_optimistic") final boolean executionOptimistic) { - this.data = data; - this.execution_optimistic = executionOptimistic; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetGenesisResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetGenesisResponse.java deleted file mode 100644 index 7fe23d8e97d..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetGenesisResponse.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - -public class GetGenesisResponse { - @JsonProperty("data") - public final GenesisData data; - - @JsonCreator - public GetGenesisResponse(@JsonProperty("data") final GenesisData data) { - this.data = data; - } - - public GenesisData getData() { - return data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetHashTreeRootResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetHashTreeRootResponse.java deleted file mode 100644 index 10767e5e6a1..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetHashTreeRootResponse.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.Root; - -public class GetHashTreeRootResponse { - - @JsonProperty("data") - public final Root data; - - @JsonCreator - public GetHashTreeRootResponse(@JsonProperty("data") final Root data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetProposerSlashingsResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetProposerSlashingsResponse.java deleted file mode 100644 index b73ad4eca17..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetProposerSlashingsResponse.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import tech.pegasys.teku.api.schema.ProposerSlashing; - -public class GetProposerSlashingsResponse { - @JsonProperty("data") - public final List data; - - @JsonCreator - public GetProposerSlashingsResponse(@JsonProperty("data") final List data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateCommitteesResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateCommitteesResponse.java deleted file mode 100644 index f6e5d8b443f..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateCommitteesResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; - -@SuppressWarnings("JavaCase") -public class GetStateCommitteesResponse { - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final List data; - - @JsonCreator - public GetStateCommitteesResponse( - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final List data) { - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateFinalityCheckpointsResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateFinalityCheckpointsResponse.java deleted file mode 100644 index 66eb2d8677b..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateFinalityCheckpointsResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - -@SuppressWarnings("JavaCase") -public class GetStateFinalityCheckpointsResponse { - - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final FinalityCheckpointsResponse data; - - @JsonCreator - public GetStateFinalityCheckpointsResponse( - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final FinalityCheckpointsResponse data) { - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateForkResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateForkResponse.java deleted file mode 100644 index 7339f32f965..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateForkResponse.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.Fork; - -@SuppressWarnings("JavaCase") -public class GetStateForkResponse { - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final Fork data; - - @JsonCreator - public GetStateForkResponse( - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final Fork data) { - this.execution_optimistic = executionOptimistic; - this.data = data; - } - - public Fork getData() { - return data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateRootResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateRootResponse.java deleted file mode 100644 index 58ba5b256ab..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateRootResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.Root; - -@SuppressWarnings("JavaCase") -public class GetStateRootResponse { - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final Root data; - - @JsonCreator - public GetStateRootResponse( - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final Root data) { - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateSyncCommitteesResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateSyncCommitteesResponse.java deleted file mode 100644 index 99a622d5e97..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateSyncCommitteesResponse.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - -@SuppressWarnings("JavaCase") -public class GetStateSyncCommitteesResponse { - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - public final StateSyncCommittees data; - - @JsonCreator - public GetStateSyncCommitteesResponse( - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final StateSyncCommittees data) { - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorBalancesResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorBalancesResponse.java deleted file mode 100644 index d7f7e6c3a78..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorBalancesResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; - -@SuppressWarnings("JavaCase") -public class GetStateValidatorBalancesResponse { - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final List data; - - @JsonCreator - public GetStateValidatorBalancesResponse( - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final List data) { - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorResponse.java deleted file mode 100644 index ae44674494a..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorResponse.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - -@SuppressWarnings("JavaCase") -public class GetStateValidatorResponse { - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final ValidatorResponse data; - - @JsonCreator - public GetStateValidatorResponse( - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final ValidatorResponse data) { - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorsResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorsResponse.java deleted file mode 100644 index 9ec909b4561..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetStateValidatorsResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; - -@SuppressWarnings("JavaCase") -public class GetStateValidatorsResponse { - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final List data; - - @JsonCreator - public GetStateValidatorsResponse( - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final List data) { - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetVoluntaryExitsResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetVoluntaryExitsResponse.java deleted file mode 100644 index 867740c7149..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/GetVoluntaryExitsResponse.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; - -public class GetVoluntaryExitsResponse { - @JsonProperty("data") - public final List data; - - @JsonCreator - public GetVoluntaryExitsResponse(@JsonProperty("data") final List data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/PostDataFailure.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/PostDataFailure.java deleted file mode 100644 index 470b6d2c0d1..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/PostDataFailure.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class PostDataFailure { - @Schema(type = "string", format = "uint64") - public final UInt64 index; - - public final String message; - - @JsonCreator - public PostDataFailure( - @JsonProperty("index") final UInt64 index, @JsonProperty("message") final String message) { - this.index = index; - this.message = message; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final PostDataFailure that = (PostDataFailure) o; - return Objects.equals(index, that.index) && Objects.equals(message, that.message); - } - - @Override - public int hashCode() { - return Objects.hash(index, message); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/PostDataFailureResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/PostDataFailureResponse.java deleted file mode 100644 index 68b6d59c409..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/PostDataFailureResponse.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class PostDataFailureResponse { - @Schema(type = "string", format = "uint64") - public final UInt64 code; - - public final String message; - public final List failures; - - @JsonCreator - public PostDataFailureResponse( - @JsonProperty("code") final int code, - @JsonProperty("message") final String message, - @JsonProperty("failures") final List failures) { - this.code = UInt64.valueOf(code); - this.message = message; - this.failures = failures; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final PostDataFailureResponse that = (PostDataFailureResponse) o; - return Objects.equals(code, that.code) - && Objects.equals(message, that.message) - && Objects.equals(failures, that.failures); - } - - @Override - public int hashCode() { - return Objects.hash(code, message, failures); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/StateSyncCommittees.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/StateSyncCommittees.java deleted file mode 100644 index a8f5992cfdd..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/StateSyncCommittees.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class StateSyncCommittees { - @JsonProperty("validators") - @ArraySchema(schema = @Schema(type = "string", example = EXAMPLE_UINT64)) - public final List validators; - - // so that swagger can list as [[String]], the getter will be what reflection picks up - // and the actual variable storing as uint64 will be ignored - @JsonProperty("validator_aggregates") - public List> getValidatorAggregates() { - return validatorAggregates.stream() - .map(e -> e.stream().map(UInt64::toString).toList()) - .toList(); - } - - @JsonIgnore public final List> validatorAggregates; - - @JsonCreator - public StateSyncCommittees( - @JsonProperty("validators") final List validators, - @JsonProperty("validator_aggregates") final List> validatorAggregates) { - this.validators = validators; - this.validatorAggregates = validatorAggregates; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final StateSyncCommittees that = (StateSyncCommittees) o; - return Objects.equals(validators, that.validators) - && Objects.equals(validatorAggregates, that.validatorAggregates); - } - - @Override - public int hashCode() { - return Objects.hash(validators, validatorAggregates); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("validators", validators) - .add("validatorAggregates", validatorAggregates) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorBalanceResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorBalanceResponse.java deleted file mode 100644 index e1b083868ee..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorBalanceResponse.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Optional; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; - -public class ValidatorBalanceResponse { - @JsonProperty("index") - @Schema( - type = "string", - example = EXAMPLE_UINT64, - description = "Index of validator in validator registry.") - public final UInt64 index; - - @JsonProperty("balance") - @Schema( - type = "string", - example = EXAMPLE_UINT64, - description = "Current validator balance in gwei.") - public final UInt64 balance; - - @JsonCreator - public ValidatorBalanceResponse( - @JsonProperty("index") final UInt64 index, @JsonProperty("balance") final UInt64 balance) { - this.index = index; - this.balance = balance; - } - - public static Optional fromState( - final BeaconState state, final Integer index) { - if (index >= state.getValidators().size()) { - return Optional.empty(); - } - return Optional.of( - new ValidatorBalanceResponse(UInt64.valueOf(index), state.getBalances().getElement(index))); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof ValidatorBalanceResponse)) { - return false; - } - ValidatorBalanceResponse that = (ValidatorBalanceResponse) o; - return Objects.equal(index, that.index) && Objects.equal(balance, that.balance); - } - - @Override - public int hashCode() { - return Objects.hashCode(index, balance); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this).add("index", index).add("balance", balance).toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponse.java deleted file mode 100644 index 2b508be4760..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponse.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.beacon; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import java.util.Optional; -import tech.pegasys.teku.api.response.ValidatorStatus; -import tech.pegasys.teku.api.schema.Validator; -import tech.pegasys.teku.bls.BLSPublicKey; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; - -public class ValidatorResponse { - - @JsonProperty("index") - @Schema( - type = "string", - example = EXAMPLE_UINT64, - description = "Index of validator in validator registry.") - public final UInt64 index; - - @JsonProperty("balance") - @Schema( - type = "string", - example = EXAMPLE_UINT64, - description = "Current validator balance in gwei.") - public final UInt64 balance; - - @JsonProperty("status") - public final ValidatorStatus status; - - @JsonProperty("validator") - public final Validator validator; - - @JsonCreator - public ValidatorResponse( - @JsonProperty("index") final UInt64 index, - @JsonProperty("balance") final UInt64 balance, - @JsonProperty("status") final ValidatorStatus status, - @JsonProperty("validator") final Validator validator) { - this.index = index; - this.balance = balance; - this.status = status; - this.validator = validator; - } - - public static Optional fromState( - final BeaconState state, - final Integer index, - final UInt64 epoch, - final UInt64 farFutureEpoch) { - if (index >= state.getValidators().size()) { - return Optional.empty(); - } - tech.pegasys.teku.spec.datastructures.state.Validator validatorInternal = - state.getValidators().get(index); - return Optional.of( - new ValidatorResponse( - UInt64.valueOf(index), - state.getBalances().getElement(index), - getValidatorStatus(epoch, validatorInternal, farFutureEpoch), - new Validator(validatorInternal))); - } - - public static ValidatorStatus getValidatorStatus( - final BeaconState state, - final Integer validatorIndex, - final UInt64 epoch, - final UInt64 farFutureEpoch) { - return getValidatorStatus(epoch, state.getValidators().get(validatorIndex), farFutureEpoch); - } - - public static ValidatorStatus getValidatorStatus( - final UInt64 epoch, - final tech.pegasys.teku.spec.datastructures.state.Validator validator, - final UInt64 farFutureEpoch) { - // pending - if (validator.getActivationEpoch().isGreaterThan(epoch)) { - return validator.getActivationEligibilityEpoch().equals(farFutureEpoch) - ? ValidatorStatus.pending_initialized - : ValidatorStatus.pending_queued; - } - // active - if (validator.getActivationEpoch().isLessThanOrEqualTo(epoch) - && epoch.isLessThan(validator.getExitEpoch())) { - if (validator.getExitEpoch().equals(farFutureEpoch)) { - return ValidatorStatus.active_ongoing; - } - return validator.isSlashed() - ? ValidatorStatus.active_slashed - : ValidatorStatus.active_exiting; - } - - // exited - if (validator.getExitEpoch().isLessThanOrEqualTo(epoch) - && epoch.isLessThan(validator.getWithdrawableEpoch())) { - return validator.isSlashed() - ? ValidatorStatus.exited_slashed - : ValidatorStatus.exited_unslashed; - } - - // withdrawal - if (validator.getWithdrawableEpoch().isLessThanOrEqualTo(epoch)) { - return validator.getEffectiveBalance().isGreaterThan(UInt64.ZERO) - ? ValidatorStatus.withdrawal_possible - : ValidatorStatus.withdrawal_done; - } - throw new IllegalStateException("Unable to determine validator status"); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final ValidatorResponse that = (ValidatorResponse) o; - return Objects.equals(index, that.index) - && Objects.equals(balance, that.balance) - && status == that.status - && Objects.equals(validator, that.validator); - } - - @JsonIgnore - public Integer getIndex() { - return index.intValue(); - } - - @JsonIgnore - public BLSPublicKey getPublicKey() { - return validator.pubkey.asBLSPublicKey(); - } - - @JsonIgnore - public ValidatorStatus getStatus() { - return status; - } - - @Override - public int hashCode() { - return Objects.hash(index, balance, status, validator); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("index", index) - .add("balance", balance) - .add("status", status) - .add("validator", validator) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/DepositContract.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/DepositContract.java deleted file mode 100644 index 527aa0bbeb2..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/DepositContract.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.config; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class DepositContract { - @Schema(type = "string", format = "uint64") - public final UInt64 chain_id; - - public final String address; - - @JsonCreator - public DepositContract( - @JsonProperty("chain_id") final UInt64 chain_id, - @JsonProperty("address") final String address) { - this.chain_id = chain_id; - this.address = address; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/GetDepositContractResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/GetDepositContractResponse.java deleted file mode 100644 index 722417ec7bf..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/GetDepositContractResponse.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.config; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class GetDepositContractResponse { - public final DepositContract data; - - @JsonCreator - public GetDepositContractResponse(@JsonProperty("data") final DepositContract data) { - this.data = data; - } - - public GetDepositContractResponse(final int depositChainId, final String depositContractAddress) { - this.data = new DepositContract(UInt64.valueOf(depositChainId), depositContractAddress); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/GetForkScheduleResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/GetForkScheduleResponse.java deleted file mode 100644 index 269058a1ef6..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/config/GetForkScheduleResponse.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.config; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import tech.pegasys.teku.api.schema.Fork; - -public class GetForkScheduleResponse { - public final List data; - - @JsonCreator - public GetForkScheduleResponse(@JsonProperty("data") final List data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/GetPeerCountResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/GetPeerCountResponse.java deleted file mode 100644 index cfaea17334a..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/GetPeerCountResponse.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import java.util.List; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class GetPeerCountResponse { - public final PeerCount data; - - public GetPeerCountResponse(final PeerCount data) { - this.data = data; - } - - public static GetPeerCountResponse create(final List peers) { - int disconnected = 0; - int connecting = 0; - int connected = 0; - int disconnecting = 0; - - for (Peer peer : peers) { - switch (peer.state) { - case disconnected: - disconnected++; - break; - case connecting: - connecting++; - break; - case connected: - connected++; - break; - case disconnecting: - disconnecting++; - break; - default: - break; - } - } - - return new GetPeerCountResponse( - new PeerCount( - UInt64.valueOf(disconnected), - UInt64.valueOf(connecting), - UInt64.valueOf(connected), - UInt64.valueOf(disconnecting))); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final GetPeerCountResponse that = (GetPeerCountResponse) o; - return Objects.equals(data, that.data); - } - - @Override - public int hashCode() { - return Objects.hash(data); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Identity.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Identity.java deleted file mode 100644 index bef32c4b58d..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Identity.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import java.util.Objects; -import tech.pegasys.teku.api.schema.Metadata; - -public class Identity { - @JsonProperty("peer_id") - @Schema( - description = - "Cryptographic hash of a peer’s public key. " - + "[Read more](https://docs.libp2p.io/concepts/peer-id/)", - example = "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N") - public final String peerId; - - @JsonProperty("enr") - @Schema( - description = "Ethereum node record. [Read more](https://eips.ethereum.org/EIPS/eip-778)", - example = - "enr:-IS4QHCYrYZbAKWCBRlAy5zzaDZXJBGkcnh4MHcBFZntXNFrdvJjX04jRzjzCBOonrkTfj499S" - + "ZuOh8R33Ls8RRcy5wBgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPKY0yuDUmstAHYpMa2_oxVtw0RW_QAdpzBQA8yWM0xOIN1ZHCCdl8") - public final String enr; - - @JsonProperty("p2p_addresses") - @ArraySchema( - arraySchema = - @Schema( - type = "string", - description = - "Node's addresses on which eth2 rpc requests are served. " - + "[Read more](https://docs.libp2p.io/reference/glossary/#multiaddr)", - example = "/ip4/7.7.7.7/tcp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N")) - public final List p2pAddresses; - - @JsonProperty("discovery_addresses") - @ArraySchema( - arraySchema = - @Schema( - type = "string", - description = - "Node's addresses on which is listening for discv5 requests. " - + "[Read more](https://docs.libp2p.io/reference/glossary/#multiaddr)", - example = "/ip4/7.7.7.7/tcp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N")) - public final List discoveryAddresses; - - @JsonProperty("metadata") - public final Metadata metadata; - - @JsonCreator - public Identity( - @JsonProperty("peer_id") final String peerId, - @JsonProperty("enr") final String enr, - @JsonProperty("p2p_addresses") final List p2pAddresses, - @JsonProperty("discovery_addresses") final List discoveryAddresses, - @JsonProperty("metadata") final Metadata metadata) { - this.peerId = peerId; - this.enr = enr; - this.p2pAddresses = p2pAddresses; - this.discoveryAddresses = discoveryAddresses; - this.metadata = metadata; - } - - public String getPeerId() { - return peerId; - } - - public String getEnr() { - return enr; - } - - public List getP2pAddresses() { - return p2pAddresses; - } - - public List getDiscoveryAddresses() { - return discoveryAddresses; - } - - public Metadata getMetadata() { - return metadata; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final Identity identity = (Identity) o; - return Objects.equals(peerId, identity.peerId) - && Objects.equals(enr, identity.enr) - && Objects.equals(p2pAddresses, identity.p2pAddresses) - && Objects.equals(discoveryAddresses, identity.discoveryAddresses) - && Objects.equals(metadata, identity.metadata); - } - - @Override - public int hashCode() { - return Objects.hash(peerId, enr, p2pAddresses, discoveryAddresses, metadata); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/IdentityResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/IdentityResponse.java deleted file mode 100644 index e938bc35937..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/IdentityResponse.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - -public class IdentityResponse { - public final Identity data; - - @JsonCreator - public IdentityResponse(@JsonProperty("data") final Identity data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Meta.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Meta.java deleted file mode 100644 index ed295452e57..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Meta.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class Meta { - @JsonProperty("count") - @Schema(type = "number", description = "Total number of items") - public final UInt64 count; - - @JsonCreator - public Meta(@JsonProperty("count") final UInt64 count) { - this.count = count; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this).add("count", count).toString(); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Meta meta = (Meta) o; - return Objects.equals(count, meta.count); - } - - @Override - public int hashCode() { - return Objects.hash(count); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeerCount.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeerCount.java deleted file mode 100644 index 4e86743fc50..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeerCount.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class PeerCount { - @Schema(type = "string", format = "uint64") - public final UInt64 disconnected; - - @Schema(type = "string", format = "uint64") - public final UInt64 connecting; - - @Schema(type = "string", format = "uint64") - public final UInt64 connected; - - @Schema(type = "string", format = "uint64") - public final UInt64 disconnecting; - - @JsonCreator - public PeerCount( - @JsonProperty("disconnected") final UInt64 disconnected, - @JsonProperty("connecting") final UInt64 connecting, - @JsonProperty("connected") final UInt64 connected, - @JsonProperty("disconnecting") final UInt64 disconnecting) { - this.disconnected = disconnected; - this.connecting = connecting; - this.connected = connected; - this.disconnecting = disconnecting; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("disconnected", disconnected) - .add("connecting", connecting) - .add("connected", connected) - .add("disconnecting", disconnecting) - .toString(); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final PeerCount peerCount = (PeerCount) o; - return Objects.equals(disconnected, peerCount.disconnected) - && Objects.equals(connecting, peerCount.connecting) - && Objects.equals(connected, peerCount.connected) - && Objects.equals(disconnecting, peerCount.disconnecting); - } - - @Override - public int hashCode() { - return Objects.hash(disconnected, connecting, connected, disconnecting); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeerResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeerResponse.java deleted file mode 100644 index 9e50ee1f0ad..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeerResponse.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Objects; - -public class PeerResponse { - @JsonProperty("data") - public final Peer data; - - @JsonCreator - public PeerResponse(@JsonProperty("data") final Peer data) { - this.data = data; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final PeerResponse that = (PeerResponse) o; - return Objects.equals(data, that.data); - } - - @Override - public int hashCode() { - return Objects.hash(data); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeersResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeersResponse.java deleted file mode 100644 index fa787839452..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/PeersResponse.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import java.util.Objects; - -public class PeersResponse { - public final List data; - public final Meta meta; - - @JsonCreator - public PeersResponse( - @JsonProperty("data") final List data, @JsonProperty("meta") final Meta meta) { - this.data = data; - this.meta = meta; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final PeersResponse that = (PeersResponse) o; - return Objects.equals(data, that.data) && Objects.equals(meta, that.meta); - } - - @Override - public int hashCode() { - return Objects.hash(data, meta); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Syncing.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Syncing.java deleted file mode 100644 index c2e63010e0b..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Syncing.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_UINT64; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@JsonInclude(JsonInclude.Include.NON_NULL) -public class Syncing { - @JsonProperty("head_slot") - @Schema(type = "string", pattern = PATTERN_UINT64, description = "Beacon node's head slot") - public final UInt64 headSlot; - - @JsonProperty("sync_distance") - @Schema( - type = "string", - pattern = PATTERN_UINT64, - description = "How many slots node needs to process to reach head. 0 if synced.") - public final UInt64 syncDistance; - - @JsonProperty("is_syncing") - @Schema( - type = "boolean", - description = "Set to true if the node is syncing, false if the node is synced.") - public final boolean isSyncing; - - @JsonProperty("is_optimistic") - @Schema( - type = "boolean", - description = "Set to true if the node is optimistically fetching blocks.") - public final Boolean isOptimistic; - - @JsonProperty("el_offline") - @Schema(type = "boolean", description = "Set to true if the execution client is offline.") - public final Boolean elOffline; - - public Syncing( - final UInt64 headSlot, - final UInt64 syncDistance, - final boolean isSyncing, - final boolean elOffline) { - this(headSlot, syncDistance, isSyncing, false, elOffline); - } - - @JsonCreator - public Syncing( - @JsonProperty("head_slot") final UInt64 headSlot, - @JsonProperty("sync_distance") final UInt64 syncDistance, - @JsonProperty("is_syncing") final boolean isSyncing, - @JsonProperty("is_optimistic") final boolean isOptimistic, - @JsonProperty("el_offline") final boolean elOffline) { - this.headSlot = headSlot; - this.syncDistance = syncDistance; - this.isSyncing = isSyncing; - this.isOptimistic = isOptimistic; - this.elOffline = elOffline; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final Syncing syncing = (Syncing) o; - return isSyncing == syncing.isSyncing - && Objects.equals(headSlot, syncing.headSlot) - && Objects.equals(syncDistance, syncing.syncDistance) - && Objects.equals(isOptimistic, syncing.isOptimistic) - && Objects.equals(elOffline, syncing.elOffline); - } - - @Override - public int hashCode() { - return Objects.hash(headSlot, syncDistance, isSyncing, isOptimistic, elOffline); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("headSlot", headSlot) - .add("syncDistance", syncDistance) - .add("isSyncing", isSyncing) - .add("isOptimistic", isOptimistic) - .add("elOffline", elOffline) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/SyncingResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/SyncingResponse.java deleted file mode 100644 index 6adc2b5f0b8..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/SyncingResponse.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Objects; - -public class SyncingResponse { - public final Syncing data; - - @JsonCreator - public SyncingResponse(@JsonProperty("data") final Syncing data) { - this.data = data; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final SyncingResponse that = (SyncingResponse) o; - return Objects.equals(data, that.data); - } - - @Override - public int hashCode() { - return Objects.hash(data); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Version.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Version.java deleted file mode 100644 index 30a65325b5f..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/Version.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; - -public class Version { - @JsonProperty("version") - @Schema( - description = - "A string which uniquely identifies the client implementation and its version; " - + "similar to [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3).", - example = "teku/v0.12.6-dev-994997f8/osx-x86_64/adoptopenjdk-java-11") - public final String version; - - @JsonCreator - public Version(@JsonProperty("version") final String version) { - this.version = version; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final Version version1 = (Version) o; - return Objects.equals(version, version1.version); - } - - @Override - public int hashCode() { - return Objects.hash(version); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/VersionResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/VersionResponse.java deleted file mode 100644 index ca61a8b7430..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/node/VersionResponse.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.node; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Objects; - -public class VersionResponse { - public final Version data; - - @JsonCreator - public VersionResponse(@JsonProperty("data") final Version data) { - this.data = data; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final VersionResponse that = (VersionResponse) o; - return Objects.equals(data, that.data); - } - - @Override - public int hashCode() { - return Objects.hash(data); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/DepositTreeSnapshot.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/DepositTreeSnapshot.java deleted file mode 100644 index 91680a60f2c..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/DepositTreeSnapshot.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class DepositTreeSnapshot { - @JsonProperty("finalized") - @ArraySchema( - schema = @Schema(type = "string", example = EXAMPLE_BYTES32, pattern = PATTERN_BYTES32), - arraySchema = @Schema(description = "List of finalized nodes in deposit tree")) - public List finalized; - - @JsonProperty("deposit_root") - @Schema( - type = "string", - example = EXAMPLE_BYTES32, - pattern = PATTERN_BYTES32, - description = "Root of finalized deposits") - public Bytes32 depositRoot; - - @JsonProperty("deposit_count") - @Schema( - type = "string", - format = "uint64", - example = "1", - description = "Number of deposits stored in the snapshot") - public UInt64 depositCount; - - @JsonProperty("execution_block_hash") - @Schema( - type = "string", - example = EXAMPLE_BYTES32, - pattern = PATTERN_BYTES32, - description = - "Hash of the execution block containing the highest index deposit stored in the snapshot") - public Bytes32 executionBlockHash; - - @JsonProperty("execution_block_height") - @Schema( - type = "string", - format = "uint64", - example = "1", - description = - "Height of the execution block in canonical chain containing the highest index deposit stored in the snapshot") - public UInt64 executionBlockHeight; - - @JsonCreator - public DepositTreeSnapshot( - @JsonProperty("finalized") final List finalized, - @JsonProperty("deposit_root") final Bytes32 depositRoot, - @JsonProperty("deposit_count") final UInt64 depositCount, - @JsonProperty("execution_block_hash") final Bytes32 executionBlockHash, - @JsonProperty("execution_block_height") final UInt64 executionBlockHeight) { - this.finalized = finalized; - this.depositRoot = depositRoot; - this.depositCount = depositCount; - this.executionBlockHash = executionBlockHash; - this.executionBlockHeight = executionBlockHeight; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/DepositWithIndex.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/DepositWithIndex.java deleted file mode 100644 index 9411efc1d51..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/DepositWithIndex.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.api.schema.DepositData; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class DepositWithIndex { - @Schema(type = "string", format = "uint64") - public final UInt64 index; - - public final DepositData data; - - public DepositWithIndex( - @JsonProperty("index") final UInt64 index, @JsonProperty("data") final DepositData data) { - this.index = index; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/Eth1DataWithVotesSchema.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/Eth1DataWithVotesSchema.java deleted file mode 100644 index eec9c26d203..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/Eth1DataWithVotesSchema.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class Eth1DataWithVotesSchema { - @JsonProperty("eth1_data") - public Eth1Data eth1Data; - - @JsonProperty("votes") - @Schema(type = "string", format = "uint64") - public UInt64 votes; - - @JsonCreator - public Eth1DataWithVotesSchema( - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("votes") final UInt64 votes) { - this.eth1Data = eth1Data; - this.votes = votes; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/Eth1VotingSummarySchema.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/Eth1VotingSummarySchema.java deleted file mode 100644 index d14e1fb2cfd..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/Eth1VotingSummarySchema.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class Eth1VotingSummarySchema { - @JsonProperty("state_eth1_data") - public Eth1Data stateEth1Data; - - @JsonProperty("eth1_data_votes") - public List eth1DataVotes; - - @JsonProperty("votes_required") - @Schema(type = "string", format = "uint64") - public UInt64 votesRequired; - - @JsonProperty("voting_period_slots") - @Schema(type = "string", format = "uint64") - public UInt64 votingPeriodSlots; - - @JsonProperty("voting_period_slots_left") - @Schema(type = "string", format = "uint64") - public UInt64 votingPeriodSlotsLeft; - - @JsonCreator - public Eth1VotingSummarySchema( - final @JsonProperty("state_eth1_data") Eth1Data stateEth1Data, - final @JsonProperty("eth1_data_votes") List eth1DataVotes, - final @JsonProperty("votes_required") UInt64 votesRequired, - final @JsonProperty("voting_period_slots") UInt64 votingPeriodSlots, - final @JsonProperty("voting_period_slots_left") UInt64 votingPeriodSlotsLeft) { - this.stateEth1Data = stateEth1Data; - this.eth1DataVotes = eth1DataVotes; - this.votesRequired = votesRequired; - this.votingPeriodSlots = votingPeriodSlots; - this.votingPeriodSlotsLeft = votingPeriodSlotsLeft; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetAllBlocksAtSlotResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetAllBlocksAtSlotResponse.java deleted file mode 100644 index faa72e4b360..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetAllBlocksAtSlotResponse.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Set; -import tech.pegasys.teku.api.schema.SignedBeaconBlockWithRoot; -import tech.pegasys.teku.api.schema.Version; - -public class GetAllBlocksAtSlotResponse { - private final Version version; - - private final Set data; - - public Set getData() { - return data; - } - - public Version getVersion() { - return version; - } - - @JsonCreator - public GetAllBlocksAtSlotResponse( - @JsonProperty("version") final Version version, - @JsonProperty("data") final Set data) { - this.version = version; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetDepositSnapshotResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetDepositSnapshotResponse.java deleted file mode 100644 index 881dc396c01..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetDepositSnapshotResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - -public class GetDepositSnapshotResponse { - - public DepositTreeSnapshot data; - - @JsonCreator - public GetDepositSnapshotResponse(@JsonProperty("data") final DepositTreeSnapshot data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetDepositsResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetDepositsResponse.java deleted file mode 100644 index 6d968567f0b..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetDepositsResponse.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import java.util.Objects; - -public class GetDepositsResponse { - public final List data; - - @JsonCreator - public GetDepositsResponse(@JsonProperty("data") final List data) { - this.data = data; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GetDepositsResponse that = (GetDepositsResponse) o; - return Objects.equals(data, that.data); - } - - @Override - public int hashCode() { - return Objects.hash(data); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1DataCacheResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1DataCacheResponse.java deleted file mode 100644 index aa50ab84925..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1DataCacheResponse.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import tech.pegasys.teku.api.schema.Eth1Data; - -public class GetEth1DataCacheResponse { - - public final List data; - - @JsonCreator - public GetEth1DataCacheResponse(@JsonProperty("data") final List data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1DataResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1DataResponse.java deleted file mode 100644 index d88577780c5..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1DataResponse.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.Eth1Data; - -public class GetEth1DataResponse { - - public final Eth1Data data; - - @JsonCreator - public GetEth1DataResponse(@JsonProperty("data") final Eth1Data data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1VotingSummaryResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1VotingSummaryResponse.java deleted file mode 100644 index e9cb3b75ae5..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetEth1VotingSummaryResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - -public class GetEth1VotingSummaryResponse { - - public Eth1VotingSummarySchema data; - - @JsonCreator - public GetEth1VotingSummaryResponse(@JsonProperty("data") final Eth1VotingSummarySchema data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetPeerScoresResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetPeerScoresResponse.java deleted file mode 100644 index 16cc640163e..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetPeerScoresResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; - -public class GetPeerScoresResponse { - public final List data; - - @JsonCreator - public GetPeerScoresResponse(@JsonProperty("data") final List data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetProposersDataResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetProposersDataResponse.java deleted file mode 100644 index a16b4fd9508..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/GetProposersDataResponse.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Map; - -@SuppressWarnings("JavaCase") -public class GetProposersDataResponse { - @Schema(implementation = ProposerDataSchema.class) - private final Map data; - - @JsonCreator - public GetProposersDataResponse(@JsonProperty("data") final Map proposers_data) { - this.data = proposers_data; - } - - public Map getData() { - return data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/PeerScore.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/PeerScore.java deleted file mode 100644 index 8804fbce8ae..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/PeerScore.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; - -@JsonInclude(JsonInclude.Include.NON_NULL) -public class PeerScore { - - @JsonProperty("peer_id") - @Schema( - type = "string", - description = - "Cryptographic hash of a peer’s public key. " - + "'[Read more](https://docs.libp2p.io/concepts/peer-id/)", - example = "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N") - public final String peerId; - - @JsonProperty("gossip_score") - @Schema( - type = "string", - format = "number", - description = "Gossip score for the associated peer.", - example = "1.2") - public final Double gossipScore; - - @JsonCreator - public PeerScore( - @JsonProperty("peer_id") final String peerId, - @JsonProperty("gossip_score") final Double gossipScore) { - this.peerId = peerId; - this.gossipScore = gossipScore; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof PeerScore)) { - return false; - } - PeerScore peerScore = (PeerScore) o; - return Objects.equals(peerId, peerScore.peerId) - && Objects.equals(gossipScore, peerScore.gossipScore); - } - - @Override - public int hashCode() { - return Objects.hash(peerId, gossipScore); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/PreparedProposerInfoSchema.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/PreparedProposerInfoSchema.java deleted file mode 100644 index bd5f3ba6024..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/PreparedProposerInfoSchema.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES20; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES20; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class PreparedProposerInfoSchema { - - @Schema(type = "string", format = "uint64") - @JsonProperty("proposer_index") - UInt64 proposer_index; - - @Schema( - type = "string", - format = "byte", - pattern = PATTERN_BYTES20, - description = DESCRIPTION_BYTES20) - @JsonProperty("fee_recipient") - Bytes20 fee_recipient; - - @Schema(type = "string", format = "uint64") - @JsonProperty("expiry_slot") - UInt64 expiry_slot; -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/ProposerDataSchema.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/ProposerDataSchema.java deleted file mode 100644 index ce44b331031..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/ProposerDataSchema.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class ProposerDataSchema { - - @ArraySchema(schema = @Schema(implementation = PreparedProposerInfoSchema.class)) - @JsonProperty("prepared_proposers") - UInt64 proposer_index; - - @ArraySchema(schema = @Schema(implementation = RegisteredValidatorInfoSchema.class)) - @JsonProperty("registered_validators") - UInt64 registered_validators; -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/RegisteredValidatorInfoSchema.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/RegisteredValidatorInfoSchema.java deleted file mode 100644 index 368bbc0ac7a..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/teku/RegisteredValidatorInfoSchema.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.teku; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES20; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES48; -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_PUBKEY; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES20; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_PUBKEY; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.api.schema.BLSPubKey; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class RegisteredValidatorInfoSchema { - - @Schema(type = "string", format = "uint64") - @JsonProperty("proposer_index") - UInt64 proposer_index; - - @Schema( - type = "string", - pattern = PATTERN_PUBKEY, - example = EXAMPLE_PUBKEY, - description = DESCRIPTION_BYTES48) - @JsonProperty("pubkey") - BLSPubKey pubkey; - - @Schema( - type = "string", - format = "byte", - pattern = PATTERN_BYTES20, - description = DESCRIPTION_BYTES20) - @JsonProperty("fee_recipient") - Bytes20 fee_recipient; - - @Schema(type = "string", format = "uint64") - @JsonProperty("gas_limit") - UInt64 gas_limit; - - @Schema(type = "string", format = "uint64") - @JsonProperty("timestamp") - UInt64 timestamp; - - @Schema(type = "string", format = "uint64") - @JsonProperty("expiry_slot") - UInt64 expiry_slot; -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/GetNewBlindedBlockResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/GetNewBlindedBlockResponse.java deleted file mode 100644 index fdf9e8611eb..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/GetNewBlindedBlockResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.validator; - -import tech.pegasys.teku.api.schema.Version; -import tech.pegasys.teku.api.schema.interfaces.UnsignedBlindedBlock; - -public class GetNewBlindedBlockResponse { - public final Version version; - public final UnsignedBlindedBlock data; - - public GetNewBlindedBlockResponse(final Version version, final UnsignedBlindedBlock data) { - this.version = version; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/GetNewBlockResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/GetNewBlockResponse.java deleted file mode 100644 index 596f4a553a6..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/GetNewBlockResponse.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.validator; - -import tech.pegasys.teku.api.schema.BeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.UnsignedBlock; - -public class GetNewBlockResponse { - public final UnsignedBlock data; - - public GetNewBlockResponse(final BeaconBlock data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/PostValidatorLivenessResponse.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/PostValidatorLivenessResponse.java deleted file mode 100644 index 03c22ef4f99..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/PostValidatorLivenessResponse.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.validator; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; - -public class PostValidatorLivenessResponse { - - public final List data; - - @JsonCreator - public PostValidatorLivenessResponse(@JsonProperty("data") final List data) { - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/ValidatorLiveness.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/ValidatorLiveness.java deleted file mode 100644 index e5c5557b8ed..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v1/validator/ValidatorLiveness.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v1.validator; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class ValidatorLiveness { - @Schema(type = "string", format = "uint64") - public final UInt64 index; - - @JsonProperty("is_live") - public final boolean isLive; - - @JsonCreator - public ValidatorLiveness( - @JsonProperty("index") final UInt64 index, @JsonProperty("is_live") final boolean isLive) { - this.index = index; - this.isLive = isLive; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final ValidatorLiveness that = (ValidatorLiveness) o; - return isLive == that.isLive && Objects.equals(index, that.index); - } - - @Override - public int hashCode() { - return Objects.hash(index, isLive); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this).add("index", index).add("isLive", isLive).toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/beacon/GetBlockResponseV2.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/beacon/GetBlockResponseV2.java deleted file mode 100644 index 6c7189990f2..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/beacon/GetBlockResponseV2.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v2.beacon; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.Version; -import tech.pegasys.teku.api.schema.altair.SignedBeaconBlockAltair; -import tech.pegasys.teku.api.schema.bellatrix.SignedBeaconBlockBellatrix; -import tech.pegasys.teku.api.schema.capella.SignedBeaconBlockCapella; -import tech.pegasys.teku.api.schema.deneb.SignedBeaconBlockDeneb; -import tech.pegasys.teku.api.schema.electra.SignedBeaconBlockElectra; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; -import tech.pegasys.teku.api.schema.phase0.SignedBeaconBlockPhase0; - -@SuppressWarnings("JavaCase") -public class GetBlockResponseV2 { - - private final Version version; - - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonTypeInfo( - use = JsonTypeInfo.Id.NAME, - include = JsonTypeInfo.As.EXTERNAL_PROPERTY, - property = "version") - @JsonSubTypes({ - @JsonSubTypes.Type(value = SignedBeaconBlockPhase0.class, name = "phase0"), - @JsonSubTypes.Type(value = SignedBeaconBlockAltair.class, name = "altair"), - @JsonSubTypes.Type(value = SignedBeaconBlockBellatrix.class, name = "bellatrix"), - @JsonSubTypes.Type(value = SignedBeaconBlockCapella.class, name = "capella"), - @JsonSubTypes.Type(value = SignedBeaconBlockDeneb.class, name = "deneb"), - @JsonSubTypes.Type(value = SignedBeaconBlockElectra.class, name = "electra") - }) - public final SignedBlock data; - - public Version getVersion() { - return version; - } - - public SignedBlock getData() { - return data; - } - - @JsonCreator - public GetBlockResponseV2( - @JsonProperty("version") final Version version, - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final SignedBeaconBlock data) { - this.version = version; - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/debug/GetStateResponseV2.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/debug/GetStateResponseV2.java deleted file mode 100644 index d418cf14e21..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/debug/GetStateResponseV2.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v2.debug; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.Version; -import tech.pegasys.teku.api.schema.interfaces.State; - -@SuppressWarnings("JavaCase") -public class GetStateResponseV2 { - - public final Version version; - - @JsonProperty("execution_optimistic") - public final boolean execution_optimistic; - - @JsonProperty("data") - public final State data; - - @JsonCreator - public GetStateResponseV2( - @JsonProperty("version") final Version version, - @JsonProperty("execution_optimistic") final boolean executionOptimistic, - @JsonProperty("data") final State data) { - this.version = version; - this.execution_optimistic = executionOptimistic; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/validator/GetNewBlockResponseV2.java b/data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/validator/GetNewBlockResponseV2.java deleted file mode 100644 index 75d459d73d9..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/response/v2/validator/GetNewBlockResponseV2.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.response.v2.validator; - -import tech.pegasys.teku.api.schema.Version; -import tech.pegasys.teku.api.schema.interfaces.UnsignedBlock; - -public class GetNewBlockResponseV2 { - - public final Version version; - public final UnsignedBlock data; - - public GetNewBlockResponseV2(final Version version, final UnsignedBlock data) { - this.version = version; - this.data = data; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/AggregateAndProof.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/AggregateAndProof.java deleted file mode 100644 index 9137327b2f1..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/AggregateAndProof.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; - -@SuppressWarnings("JavaCase") -public class AggregateAndProof { - - @Schema(type = "string", format = "uint64") - public final UInt64 aggregator_index; - - public final Attestation aggregate; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature selection_proof; - - @JsonCreator - public AggregateAndProof( - @JsonProperty("aggregator_index") final UInt64 aggregator_index, - @JsonProperty("aggregate") final Attestation aggregate, - @JsonProperty("selection_proof") final BLSSignature selection_proof) { - this.aggregator_index = aggregator_index; - this.aggregate = aggregate; - this.selection_proof = selection_proof; - } - - public AggregateAndProof( - final tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof aggregateAndProof) { - aggregator_index = aggregateAndProof.getIndex(); - aggregate = new Attestation(aggregateAndProof.getAggregate()); - selection_proof = new BLSSignature(aggregateAndProof.getSelectionProof()); - } - - public tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof - asInternalAggregateAndProof(final Spec spec) { - return asInternalAggregateAndProof(spec.atSlot(aggregate.data.slot)); - } - - public tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof - asInternalAggregateAndProof(final SpecVersion specVersion) { - return specVersion - .getSchemaDefinitions() - .getAggregateAndProofSchema() - .create( - aggregator_index, - aggregate.asInternalAttestation(specVersion), - selection_proof.asInternalBLSSignature()); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Attestation.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Attestation.java deleted file mode 100644 index 71a306852a1..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Attestation.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES_SSZ; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import java.util.function.Supplier; -import org.apache.tuweni.bytes.Bytes; -import tech.pegasys.teku.infrastructure.ssz.SszData; -import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.operations.AttestationSchema; - -@SuppressWarnings("JavaCase") -public class Attestation { - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES_SSZ) - public final Bytes aggregation_bits; - - public final AttestationData data; - - @JsonInclude(Include.NON_NULL) - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES_SSZ) - public final Bytes committee_bits; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - public Attestation( - final tech.pegasys.teku.spec.datastructures.operations.Attestation attestation) { - this.aggregation_bits = attestation.getAggregationBits().sszSerialize(); - this.data = new AttestationData(attestation.getData()); - this.committee_bits = attestation.getCommitteeBits().map(SszData::sszSerialize).orElse(null); - this.signature = new BLSSignature(attestation.getAggregateSignature()); - } - - @JsonCreator - public Attestation( - @JsonProperty("aggregation_bits") final Bytes aggregation_bits, - @JsonProperty("data") final AttestationData data, - @JsonProperty("committee_bits") final Bytes committee_bits, - @JsonProperty("signature") final BLSSignature signature) { - this.aggregation_bits = aggregation_bits; - this.data = data; - this.committee_bits = committee_bits; - this.signature = signature; - } - - public tech.pegasys.teku.spec.datastructures.operations.Attestation asInternalAttestation( - final Spec spec) { - return asInternalAttestation(spec.atSlot(data.slot)); - } - - public tech.pegasys.teku.spec.datastructures.operations.Attestation asInternalAttestation( - final SpecVersion specVersion) { - final AttestationSchema attestationSchema = - specVersion.getSchemaDefinitions().getAttestationSchema(); - return attestationSchema.create( - attestationSchema.getAggregationBitsSchema().sszDeserialize(aggregation_bits), - data.asInternalAttestationData(), - signature.asInternalBLSSignature(), - attestationSchema - .getCommitteeBitsSchema() - .map( - committeeBits -> - (Supplier) () -> committeeBits.sszDeserialize(committee_bits)) - .orElse(() -> null)); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Attestation)) { - return false; - } - Attestation that = (Attestation) o; - return Objects.equals(aggregation_bits, that.aggregation_bits) - && Objects.equals(data, that.data) - && Objects.equals(committee_bits, that.committee_bits) - && Objects.equals(signature, that.signature); - } - - @Override - public int hashCode() { - return Objects.hash(aggregation_bits, data, committee_bits, signature); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/AttestationData.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/AttestationData.java deleted file mode 100644 index 3613d082388..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/AttestationData.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class AttestationData { - @Schema(type = "string", format = "uint64") - public final UInt64 slot; - - @Schema(type = "string", format = "uint64") - public final UInt64 index; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 beacon_block_root; - - public final Checkpoint source; - public final Checkpoint target; - - @JsonCreator - public AttestationData( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("index") final UInt64 index, - @JsonProperty("beacon_block_root") final Bytes32 beacon_block_root, - @JsonProperty("source") final Checkpoint source, - @JsonProperty("target") final Checkpoint target) { - this.slot = slot; - this.index = index; - this.beacon_block_root = beacon_block_root; - this.source = source; - this.target = target; - } - - public AttestationData( - final tech.pegasys.teku.spec.datastructures.operations.AttestationData data) { - this.slot = data.getSlot(); - this.index = data.getIndex(); - this.beacon_block_root = data.getBeaconBlockRoot(); - this.source = new Checkpoint(data.getSource()); - this.target = new Checkpoint(data.getTarget()); - } - - public tech.pegasys.teku.spec.datastructures.operations.AttestationData - asInternalAttestationData() { - tech.pegasys.teku.spec.datastructures.state.Checkpoint src = source.asInternalCheckpoint(); - tech.pegasys.teku.spec.datastructures.state.Checkpoint tgt = target.asInternalCheckpoint(); - - return new tech.pegasys.teku.spec.datastructures.operations.AttestationData( - slot, index, beacon_block_root, src, tgt); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof AttestationData)) { - return false; - } - AttestationData that = (AttestationData) o; - return Objects.equals(slot, that.slot) - && Objects.equals(index, that.index) - && Objects.equals(beacon_block_root, that.beacon_block_root) - && Objects.equals(source, that.source) - && Objects.equals(target, that.target); - } - - @Override - public int hashCode() { - return Objects.hash(slot, index, beacon_block_root, source, target); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/AttesterSlashing.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/AttesterSlashing.java deleted file mode 100644 index 28f03ee691e..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/AttesterSlashing.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Objects; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.operations.AttesterSlashingSchema; - -@SuppressWarnings("JavaCase") -public class AttesterSlashing { - public final IndexedAttestation attestation_1; - public final IndexedAttestation attestation_2; - - public AttesterSlashing( - final tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing attesterSlashing) { - this.attestation_1 = new IndexedAttestation(attesterSlashing.getAttestation1()); - this.attestation_2 = new IndexedAttestation(attesterSlashing.getAttestation2()); - } - - @JsonCreator - public AttesterSlashing( - @JsonProperty("attestation_1") final IndexedAttestation attestation_1, - @JsonProperty("attestation_2") final IndexedAttestation attestation_2) { - this.attestation_1 = attestation_1; - this.attestation_2 = attestation_2; - } - - public tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing - asInternalAttesterSlashing(final Spec spec) { - return asInternalAttesterSlashing(spec.atSlot(attestation_1.data.slot)); - } - - public tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing - asInternalAttesterSlashing(final SpecVersion spec) { - final AttesterSlashingSchema attesterSlashingSchema = - spec.getSchemaDefinitions().getAttesterSlashingSchema(); - return attesterSlashingSchema.create( - attestation_1.asInternalIndexedAttestation(spec), - attestation_2.asInternalIndexedAttestation(spec)); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof AttesterSlashing that)) { - return false; - } - return Objects.equals(attestation_1, that.attestation_1) - && Objects.equals(attestation_2, that.attestation_2); - } - - @Override - public int hashCode() { - return Objects.hash(attestation_1, attestation_2); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSPubKey.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSPubKey.java deleted file mode 100644 index 87b379beee3..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSPubKey.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static com.google.common.base.Preconditions.checkArgument; - -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes48; -import tech.pegasys.teku.api.exceptions.PublicKeyException; -import tech.pegasys.teku.bls.BLSPublicKey; - -@SuppressWarnings("JavaCase") -public class BLSPubKey { - /** The number of bytes in this value - i.e. 48 */ - private static final int SIZE = 48; - - private final Bytes bytes; - - public BLSPubKey(final Bytes bytes) { - checkArgument( - bytes.size() == SIZE, - "Bytes%s should be %s bytes, but was %s bytes.", - SIZE, - SIZE, - bytes.size()); - this.bytes = bytes; - } - - public BLSPubKey(final BLSPublicKey publicKey) { - this(publicKey.toSSZBytes()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final BLSPubKey BLSSignature = (BLSPubKey) o; - return bytes.equals(BLSSignature.bytes); - } - - @Override - public int hashCode() { - return Objects.hash(bytes); - } - - @Override - public String toString() { - return bytes.toString(); - } - - public static BLSPubKey fromHexString(final String value) { - try { - return new BLSPubKey(BLSPublicKey.fromBytesCompressedValidate(Bytes48.fromHexString(value))); - } catch (IllegalArgumentException e) { - throw new PublicKeyException("Public key " + value + " is invalid: " + e.getMessage(), e); - } - } - - public String toHexString() { - return bytes.toHexString(); - } - - public Bytes toBytes() { - return bytes; - } - - public static BLSPubKey empty() { - return new BLSPubKey(Bytes.wrap(new byte[SIZE])); - } - - public BLSPublicKey asBLSPublicKey() { - return BLSPublicKey.fromSSZBytes(bytes); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSSignature.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSSignature.java deleted file mode 100644 index 6629c99917f..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BLSSignature.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static com.google.common.base.Preconditions.checkArgument; - -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes; -import tech.pegasys.teku.bls.BLSConstants; - -public class BLSSignature { - /** The number of bytes in this value - i.e. 96 */ - private static final int SIZE = BLSConstants.BLS_SIGNATURE_SIZE; - - private final Bytes bytes; - - public BLSSignature(final Bytes bytes) { - checkArgument( - bytes.size() == SIZE, - "Bytes%s should be %s bytes, but was %s bytes.", - SIZE, - SIZE, - bytes.size()); - this.bytes = bytes; - } - - public BLSSignature(final tech.pegasys.teku.bls.BLSSignature signature) { - this(signature.toBytesCompressed()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final BLSSignature blsSignature = (BLSSignature) o; - return bytes.equals(blsSignature.bytes); - } - - @Override - public int hashCode() { - return Objects.hash(bytes); - } - - @Override - public String toString() { - return bytes.toString(); - } - - public static BLSSignature fromHexString(final String value) { - return new BLSSignature(Bytes.fromHexString(value)); - } - - public String toHexString() { - return bytes.toHexString(); - } - - public static BLSSignature empty() { - return new BLSSignature(tech.pegasys.teku.bls.BLSSignature.empty()); - } - - public final Bytes getBytes() { - return bytes; - } - - public tech.pegasys.teku.bls.BLSSignature asInternalBLSSignature() { - return tech.pegasys.teku.bls.BLSSignature.fromBytesCompressed(bytes); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlock.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlock.java deleted file mode 100644 index 380b170342e..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlock.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.interfaces.UnsignedBlindedBlock; -import tech.pegasys.teku.api.schema.interfaces.UnsignedBlock; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockSchema; - -@SuppressWarnings("JavaCase") -public class BeaconBlock implements UnsignedBlock, UnsignedBlindedBlock { - @Schema(type = "string", format = "uint64") - public final UInt64 slot; - - @Schema(type = "string", format = "uint64") - public final UInt64 proposer_index; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 parent_root; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 state_root; - - protected final BeaconBlockBody body; - - public BeaconBlockBody getBody() { - return body; - } - - protected BeaconBlock(final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock message) { - this.slot = message.getSlot(); - this.proposer_index = message.getProposerIndex(); - this.parent_root = message.getParentRoot(); - this.state_root = message.getStateRoot(); - this.body = new BeaconBlockBody(message.getBody()); - } - - @JsonCreator - public BeaconBlock( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposer_index, - @JsonProperty("parent_root") final Bytes32 parent_root, - @JsonProperty("state_root") final Bytes32 state_root, - @JsonProperty("body") final BeaconBlockBody body) { - this.slot = slot; - this.proposer_index = proposer_index; - this.parent_root = parent_root; - this.state_root = state_root; - this.body = body; - } - - public BeaconBlockSchema getBeaconBlockSchema(final SpecVersion spec) { - return spec.getSchemaDefinitions().getBeaconBlockSchema(); - } - - public tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock asInternalBeaconBlock( - final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return getBeaconBlockSchema(spec.atSlot(slot)) - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof BeaconBlock)) { - return false; - } - BeaconBlock that = (BeaconBlock) o; - return Objects.equals(slot, that.slot) - && Objects.equals(proposer_index, that.proposer_index) - && Objects.equals(parent_root, that.parent_root) - && Objects.equals(state_root, that.state_root) - && Objects.equals(body, that.body); - } - - @Override - public int hashCode() { - return Objects.hash(slot, proposer_index, parent_root, state_root, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlockBody.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlockBody.java deleted file mode 100644 index 0f68cb67b50..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlockBody.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import java.util.Objects; -import java.util.function.Function; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBodyBuilder; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBodySchema; - -@SuppressWarnings("JavaCase") -public class BeaconBlockBody { - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature randao_reveal; - - public final Eth1Data eth1_data; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 graffiti; - - public final List proposer_slashings; - public final List attester_slashings; - public final List attestations; - public final List deposits; - public final List voluntary_exits; - - @JsonCreator - public BeaconBlockBody( - @JsonProperty("randao_reveal") final BLSSignature randao_reveal, - @JsonProperty("eth1_data") final Eth1Data eth1_data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposer_slashings, - @JsonProperty("attester_slashings") final List attester_slashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntary_exits) { - this.randao_reveal = randao_reveal; - this.eth1_data = eth1_data; - this.graffiti = graffiti; - this.proposer_slashings = proposer_slashings; - this.attester_slashings = attester_slashings; - this.attestations = attestations; - this.deposits = deposits; - this.voluntary_exits = voluntary_exits; - } - - public BeaconBlockBody( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody body) { - this.randao_reveal = new BLSSignature(body.getRandaoReveal().toSSZBytes()); - this.eth1_data = new Eth1Data(body.getEth1Data()); - this.graffiti = body.getGraffiti(); - this.proposer_slashings = - body.getProposerSlashings().stream().map(ProposerSlashing::new).toList(); - this.attester_slashings = - body.getAttesterSlashings().stream().map(AttesterSlashing::new).toList(); - this.attestations = body.getAttestations().stream().map(Attestation::new).toList(); - this.deposits = body.getDeposits().stream().map(Deposit::new).toList(); - this.voluntary_exits = body.getVoluntaryExits().stream().map(SignedVoluntaryExit::new).toList(); - } - - public tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody - asInternalBeaconBlockBody( - final SpecVersion spec, - final Function> builderRef) { - final BeaconBlockBodySchema schema = getBeaconBlockBodySchema(spec); - return schema - .createBlockBody( - builder -> - SafeFuture.allOf( - builderRef.apply(builder), - SafeFuture.of( - () -> - builder - .randaoReveal(randao_reveal.asInternalBLSSignature()) - .eth1Data( - new tech.pegasys.teku.spec.datastructures.blocks.Eth1Data( - eth1_data.deposit_root, - eth1_data.deposit_count, - eth1_data.block_hash)) - .graffiti(graffiti) - .attestations( - attestations.stream() - .map(attestation -> attestation.asInternalAttestation(spec)) - .collect(schema.getAttestationsSchema().collector())) - .proposerSlashings( - proposer_slashings.stream() - .map(ProposerSlashing::asInternalProposerSlashing) - .collect(schema.getProposerSlashingsSchema().collector())) - .attesterSlashings( - attester_slashings.stream() - .map(slashing -> slashing.asInternalAttesterSlashing(spec)) - .collect(schema.getAttesterSlashingsSchema().collector())) - .deposits( - deposits.stream() - .map(Deposit::asInternalDeposit) - .collect(schema.getDepositsSchema().collector())) - .voluntaryExits( - voluntary_exits.stream() - .map(SignedVoluntaryExit::asInternalSignedVoluntaryExit) - .collect(schema.getVoluntaryExitsSchema().collector()))))) - .join(); - } - - @JsonIgnore - public boolean isBlinded() { - return false; - } - - public BeaconBlockBodySchema getBeaconBlockBodySchema(final SpecVersion spec) { - return spec.getSchemaDefinitions().getBeaconBlockBodySchema(); - } - - public tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody - asInternalBeaconBlockBody(final SpecVersion spec) { - return asInternalBeaconBlockBody(spec, (builder) -> SafeFuture.COMPLETE); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof BeaconBlockBody)) { - return false; - } - BeaconBlockBody that = (BeaconBlockBody) o; - return Objects.equals(randao_reveal, that.randao_reveal) - && Objects.equals(eth1_data, that.eth1_data) - && Objects.equals(graffiti, that.graffiti) - && Objects.equals(proposer_slashings, that.proposer_slashings) - && Objects.equals(attester_slashings, that.attester_slashings) - && Objects.equals(attestations, that.attestations) - && Objects.equals(deposits, that.deposits) - && Objects.equals(voluntary_exits, that.voluntary_exits); - } - - @Override - public int hashCode() { - return Objects.hash( - randao_reveal, - eth1_data, - graffiti, - proposer_slashings, - attester_slashings, - attestations, - deposits, - voluntary_exits); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlockHeader.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlockHeader.java deleted file mode 100644 index 062f467e280..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconBlockHeader.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class BeaconBlockHeader { - @Schema(type = "string", format = "uint64") - public final UInt64 slot; - - @Schema(type = "string", format = "uint64") - public final UInt64 proposer_index; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 parent_root; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 state_root; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 body_root; - - @JsonCreator - public BeaconBlockHeader( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposer_index, - @JsonProperty("parent_root") final Bytes32 parent_root, - @JsonProperty("state_root") final Bytes32 state_root, - @JsonProperty("body_root") final Bytes32 body_root) { - this.slot = slot; - this.proposer_index = proposer_index; - this.parent_root = parent_root; - this.state_root = state_root; - this.body_root = body_root; - } - - public BeaconBlockHeader( - final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockHeader header) { - this.slot = header.getSlot(); - this.proposer_index = header.getProposerIndex(); - this.parent_root = header.getParentRoot(); - this.state_root = header.getStateRoot(); - this.body_root = header.getBodyRoot(); - } - - public tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockHeader - asInternalBeaconBlockHeader() { - return new tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockHeader( - slot, proposer_index, parent_root, state_root, body_root); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final BeaconBlockHeader that = (BeaconBlockHeader) o; - return Objects.equals(slot, that.slot) - && Objects.equals(proposer_index, that.proposer_index) - && Objects.equals(parent_root, that.parent_root) - && Objects.equals(state_root, that.state_root) - && Objects.equals(body_root, that.body_root); - } - - @Override - public int hashCode() { - return Objects.hash(slot, proposer_index, parent_root, state_root, body_root); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("slot", slot) - .add("proposer_index", proposer_index) - .add("parent_root", parent_root) - .add("state_root", state_root) - .add("body_root", body_root) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconState.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconState.java deleted file mode 100644 index 8a27a05288d..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/BeaconState.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES_SSZ; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.interfaces.State; -import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockAndState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconStateSchema; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.MutableBeaconState; - -@SuppressWarnings("JavaCase") -public abstract class BeaconState implements State { - @Schema(type = "string", format = "uint64") - public final UInt64 genesis_time; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 genesis_validators_root; - - @Schema(type = "string", format = "uint64") - public final UInt64 slot; - - public final Fork fork; - public final BeaconBlockHeader latest_block_header; - - @ArraySchema( - schema = @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32)) - public final List block_roots; - - @ArraySchema( - schema = @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32)) - public final List state_roots; - - @ArraySchema( - schema = @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32)) - public final List historical_roots; - - public final Eth1Data eth1_data; - public final List eth1_data_votes; - - @Schema(type = "string", format = "uint64") - public final UInt64 eth1_deposit_index; - - public final List validators; - - @ArraySchema(schema = @Schema(type = "string", format = "uint64")) - public final List balances; - - @ArraySchema( - schema = @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32)) - public final List randao_mixes; - - @ArraySchema(schema = @Schema(type = "string", format = "uint64")) - public final List slashings; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES_SSZ) - public final SszBitvector justification_bits; - - public final Checkpoint previous_justified_checkpoint; - public final Checkpoint current_justified_checkpoint; - public final Checkpoint finalized_checkpoint; - - @JsonCreator - protected BeaconState( - @JsonProperty("genesis_time") final UInt64 genesis_time, - @JsonProperty("genesis_validators_root") final Bytes32 genesis_validators_root, - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("fork") final Fork fork, - @JsonProperty("latest_block_header") final BeaconBlockHeader latest_block_header, - @JsonProperty("block_roots") final List block_roots, - @JsonProperty("state_roots") final List state_roots, - @JsonProperty("historical_roots") final List historical_roots, - @JsonProperty("eth1_data") final Eth1Data eth1_data, - @JsonProperty("eth1_data_votes") final List eth1_data_votes, - @JsonProperty("eth1_deposit_index") final UInt64 eth1_deposit_index, - @JsonProperty("validators") final List validators, - @JsonProperty("balances") final List balances, - @JsonProperty("randao_mixes") final List randao_mixes, - @JsonProperty("slashings") final List slashings, - @JsonProperty("justification_bits") final SszBitvector justification_bits, - @JsonProperty("previous_justified_checkpoint") final Checkpoint previous_justified_checkpoint, - @JsonProperty("current_justified_checkpoint") final Checkpoint current_justified_checkpoint, - @JsonProperty("finalized_checkpoint") final Checkpoint finalized_checkpoint) { - this.genesis_time = genesis_time; - this.genesis_validators_root = genesis_validators_root; - this.slot = slot; - this.fork = fork; - this.latest_block_header = latest_block_header; - this.block_roots = block_roots; - this.state_roots = state_roots; - this.historical_roots = historical_roots; - this.eth1_data = eth1_data; - this.eth1_data_votes = eth1_data_votes; - this.eth1_deposit_index = eth1_deposit_index; - this.validators = validators; - this.balances = balances; - this.randao_mixes = randao_mixes; - this.slashings = slashings; - this.justification_bits = justification_bits; - this.previous_justified_checkpoint = previous_justified_checkpoint; - this.current_justified_checkpoint = current_justified_checkpoint; - this.finalized_checkpoint = finalized_checkpoint; - } - - protected BeaconState(final BeaconBlockAndState blockAndState) { - this(blockAndState.getState()); - } - - protected BeaconState( - final tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState beaconState) { - this.genesis_time = beaconState.getGenesisTime(); - this.genesis_validators_root = beaconState.getGenesisValidatorsRoot(); - this.slot = beaconState.getSlot(); - this.fork = new Fork(beaconState.getFork()); - this.latest_block_header = new BeaconBlockHeader(beaconState.getLatestBlockHeader()); - this.block_roots = beaconState.getBlockRoots().asListUnboxed(); - this.state_roots = beaconState.getStateRoots().asListUnboxed(); - this.historical_roots = beaconState.getHistoricalRoots().asListUnboxed(); - this.eth1_data = new Eth1Data(beaconState.getEth1Data()); - this.eth1_data_votes = beaconState.getEth1DataVotes().stream().map(Eth1Data::new).toList(); - this.eth1_deposit_index = beaconState.getEth1DepositIndex(); - this.validators = beaconState.getValidators().stream().map(Validator::new).toList(); - this.balances = beaconState.getBalances().asListUnboxed(); - this.randao_mixes = beaconState.getRandaoMixes().asListUnboxed(); - this.slashings = beaconState.getSlashings().asListUnboxed(); - this.justification_bits = beaconState.getJustificationBits(); - this.previous_justified_checkpoint = - new Checkpoint(beaconState.getPreviousJustifiedCheckpoint()); - this.current_justified_checkpoint = new Checkpoint(beaconState.getCurrentJustifiedCheckpoint()); - this.finalized_checkpoint = new Checkpoint(beaconState.getFinalizedCheckpoint()); - } - - public tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState asInternalBeaconState( - final Spec spec) { - final BeaconStateSchema schema = - spec.atSlot(slot).getSchemaDefinitions().getBeaconStateSchema(); - return schema - .createEmpty() - .updated( - state -> { - state.setGenesisTime(genesis_time); - state.setGenesisValidatorsRoot(genesis_validators_root); - state.setSlot(slot); - state.setFork(fork.asInternalFork()); - state.setLatestBlockHeader(latest_block_header.asInternalBeaconBlockHeader()); - state.getBlockRoots().setAllElements(block_roots); - state.getStateRoots().setAllElements(state_roots); - state.getHistoricalRoots().setAllElements(historical_roots); - state.setEth1Data(eth1_data.asInternalEth1Data()); - state - .getEth1DataVotes() - .setAll(eth1_data_votes.stream().map(Eth1Data::asInternalEth1Data).toList()); - state.setEth1DepositIndex(eth1_deposit_index); - state - .getValidators() - .setAll(validators.stream().map(Validator::asInternalValidator).toList()); - state.getBalances().setAllElements(balances); - state.getRandaoMixes().setAllElements(randao_mixes); - state.getSlashings().setAllElements(slashings); - SszBitvector newJustificationBits = - schema.getJustificationBitsSchema().ofBits(justification_bits.getAllSetBits()); - state.setJustificationBits(newJustificationBits); - state.setPreviousJustifiedCheckpoint( - previous_justified_checkpoint.asInternalCheckpoint()); - state.setCurrentJustifiedCheckpoint( - current_justified_checkpoint.asInternalCheckpoint()); - state.setFinalizedCheckpoint(finalized_checkpoint.asInternalCheckpoint()); - - applyAdditionalFields(state, spec.atSlot(state.getSlot())); - }); - } - - protected abstract void applyAdditionalFields( - final MutableBeaconState state, final SpecVersion specVersion); -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Checkpoint.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Checkpoint.java deleted file mode 100644 index 7f321452844..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Checkpoint.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; -import io.swagger.v3.oas.annotations.media.Schema; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class Checkpoint { - public static final Checkpoint EMPTY = new Checkpoint(UInt64.ZERO, Bytes32.ZERO); - - @Schema(type = "string", format = "uint64") - public final UInt64 epoch; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 root; - - public Checkpoint(final tech.pegasys.teku.spec.datastructures.state.Checkpoint checkpoint) { - this.epoch = checkpoint.getEpoch(); - this.root = checkpoint.getRoot(); - } - - @JsonCreator - public Checkpoint( - @JsonProperty("epoch") final UInt64 epoch, @JsonProperty("root") final Bytes32 root) { - this.epoch = epoch; - this.root = root; - } - - public tech.pegasys.teku.spec.datastructures.state.Checkpoint asInternalCheckpoint() { - return new tech.pegasys.teku.spec.datastructures.state.Checkpoint(epoch, root); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Checkpoint)) { - return false; - } - Checkpoint that = (Checkpoint) o; - return Objects.equal(epoch, that.epoch) && Objects.equal(root, that.root); - } - - @Override - public int hashCode() { - return Objects.hashCode(epoch, root); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this).add("epoch", epoch).add("root", root).toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Deposit.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Deposit.java deleted file mode 100644 index a182b0af1df..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Deposit.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; - -public class Deposit { - @ArraySchema( - schema = @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32)) - public final List proof; - - public final DepositData data; - - public Deposit(final tech.pegasys.teku.spec.datastructures.operations.Deposit deposit) { - this.proof = deposit.getProof().streamUnboxed().toList(); - this.data = new DepositData(deposit.getData()); - } - - @JsonCreator - public Deposit( - @JsonProperty("proof") final List proof, - @JsonProperty("data") final DepositData data) { - this.proof = proof; - this.data = data; - } - - public tech.pegasys.teku.spec.datastructures.operations.Deposit asInternalDeposit() { - return new tech.pegasys.teku.spec.datastructures.operations.Deposit( - tech.pegasys.teku.spec.datastructures.operations.Deposit.SSZ_SCHEMA - .getProofSchema() - .of(proof), - data.asInternalDepositData()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Deposit)) { - return false; - } - Deposit deposit = (Deposit) o; - return Objects.equals(proof, deposit.proof) && Objects.equals(data, deposit.data); - } - - @Override - public int hashCode() { - return Objects.hash(proof, data); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/DepositData.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/DepositData.java deleted file mode 100644 index 1c402835de9..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/DepositData.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES48; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.bls.BLSPublicKey; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class DepositData { - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES48) - public final BLSPubKey pubkey; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 withdrawal_credentials; - - @Schema(type = "string", format = "uint64") - public final UInt64 amount; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - public DepositData( - final tech.pegasys.teku.spec.datastructures.operations.DepositData depositData) { - this.pubkey = new BLSPubKey(depositData.getPubkey().toSSZBytes()); - this.withdrawal_credentials = depositData.getWithdrawalCredentials(); - this.amount = depositData.getAmount(); - this.signature = new BLSSignature(depositData.getSignature()); - } - - public DepositData( - @JsonProperty("pubkey") final BLSPubKey pubkey, - @JsonProperty("withdrawal_credentials") final Bytes32 withdrawal_credentials, - @JsonProperty("amount") final UInt64 amount, - @JsonProperty("signature") final BLSSignature signature) { - this.pubkey = pubkey; - this.withdrawal_credentials = withdrawal_credentials; - this.amount = amount; - this.signature = signature; - } - - public tech.pegasys.teku.spec.datastructures.operations.DepositData asInternalDepositData() { - return new tech.pegasys.teku.spec.datastructures.operations.DepositData( - BLSPublicKey.fromSSZBytes(pubkey.toBytes()), - withdrawal_credentials, - amount, - signature.asInternalBLSSignature()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof DepositData)) { - return false; - } - DepositData that = (DepositData) o; - return Objects.equals(pubkey, that.pubkey) - && Objects.equals(withdrawal_credentials, that.withdrawal_credentials) - && Objects.equals(amount, that.amount) - && Objects.equals(signature, that.signature); - } - - @Override - public int hashCode() { - return Objects.hash(pubkey, withdrawal_credentials, amount, signature); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Eth1Data.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Eth1Data.java deleted file mode 100644 index 1b8c9e55b8e..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Eth1Data.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class Eth1Data { - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 deposit_root; - - @Schema(type = "string", format = "uint64") - public final UInt64 deposit_count; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 block_hash; - - public Eth1Data(final tech.pegasys.teku.spec.datastructures.blocks.Eth1Data eth1Data) { - deposit_count = eth1Data.getDepositCount(); - deposit_root = eth1Data.getDepositRoot(); - block_hash = eth1Data.getBlockHash(); - } - - @JsonCreator - public Eth1Data( - @JsonProperty("deposit_root") final Bytes32 deposit_root, - @JsonProperty("deposit_count") final UInt64 deposit_count, - @JsonProperty("block_hash") final Bytes32 block_hash) { - this.deposit_root = deposit_root; - this.deposit_count = deposit_count; - this.block_hash = block_hash; - } - - public tech.pegasys.teku.spec.datastructures.blocks.Eth1Data asInternalEth1Data() { - return new tech.pegasys.teku.spec.datastructures.blocks.Eth1Data( - deposit_root, deposit_count, block_hash); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Eth1Data)) { - return false; - } - Eth1Data eth1Data = (Eth1Data) o; - return Objects.equals(deposit_root, eth1Data.deposit_root) - && Objects.equals(deposit_count, eth1Data.deposit_count) - && Objects.equals(block_hash, eth1Data.block_hash); - } - - @Override - public int hashCode() { - return Objects.hash(deposit_root, deposit_count, block_hash); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ExecutionPayload.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ExecutionPayload.java deleted file mode 100644 index 58bd233de74..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ExecutionPayload.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import java.util.Optional; -import tech.pegasys.teku.api.schema.bellatrix.ExecutionPayloadBellatrix; -import tech.pegasys.teku.api.schema.capella.ExecutionPayloadCapella; -import tech.pegasys.teku.api.schema.deneb.ExecutionPayloadDeneb; - -public interface ExecutionPayload { - - default Optional toVersionBellatrix() { - return Optional.empty(); - } - - default Optional toVersionCapella() { - return Optional.empty(); - } - - default Optional toVersionDeneb() { - return Optional.empty(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ExecutionPayloadHeader.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ExecutionPayloadHeader.java deleted file mode 100644 index 2d21ee509c8..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ExecutionPayloadHeader.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import java.util.Optional; -import tech.pegasys.teku.api.schema.bellatrix.ExecutionPayloadHeaderBellatrix; -import tech.pegasys.teku.api.schema.capella.ExecutionPayloadHeaderCapella; -import tech.pegasys.teku.api.schema.deneb.ExecutionPayloadHeaderDeneb; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeaderSchema; - -public interface ExecutionPayloadHeader { - tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeader - asInternalExecutionPayloadHeader(ExecutionPayloadHeaderSchema schema); - - default Optional toVersionBellatrix() { - return Optional.empty(); - } - - default Optional toVersionCapella() { - return Optional.empty(); - } - - default Optional toVersionDeneb() { - return Optional.empty(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Fork.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Fork.java deleted file mode 100644 index 2ca5e718d8d..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Fork.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES4; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES4; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.bytes.Bytes4; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class Fork { - @Schema(type = "string", pattern = PATTERN_BYTES4, description = DESCRIPTION_BYTES4) - public Bytes4 previous_version; - - @Schema(type = "string", pattern = PATTERN_BYTES4, description = DESCRIPTION_BYTES4) - public Bytes4 current_version; - - @Schema(type = "string") - public UInt64 epoch; - - @JsonCreator - public Fork( - @JsonProperty("previous_version") final Bytes4 previous_version, - @JsonProperty("current_version") final Bytes4 current_version, - @JsonProperty("epoch") final UInt64 epoch) { - this.previous_version = previous_version; - this.current_version = current_version; - this.epoch = epoch; - } - - public Fork(final tech.pegasys.teku.spec.datastructures.state.Fork fork) { - this.previous_version = fork.getPreviousVersion(); - this.current_version = fork.getCurrentVersion(); - this.epoch = fork.getEpoch(); - } - - public tech.pegasys.teku.spec.datastructures.state.Fork asInternalFork() { - return new tech.pegasys.teku.spec.datastructures.state.Fork( - previous_version, current_version, epoch); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final Fork fork = (Fork) o; - return Objects.equals(previous_version, fork.previous_version) - && Objects.equals(current_version, fork.current_version) - && Objects.equals(epoch, fork.epoch); - } - - @Override - public int hashCode() { - return Objects.hash(previous_version, current_version, epoch); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("previous_version", previous_version) - .add("current_version", current_version) - .add("epoch", epoch) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/IndexedAttestation.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/IndexedAttestation.java deleted file mode 100644 index e458e555320..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/IndexedAttestation.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.operations.IndexedAttestationSchema; - -@SuppressWarnings("JavaCase") -public class IndexedAttestation { - @ArraySchema(schema = @Schema(type = "string", format = "uint64")) - public final List attesting_indices; - - public final AttestationData data; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - public IndexedAttestation( - final tech.pegasys.teku.spec.datastructures.operations.IndexedAttestation - indexedAttestation) { - this.attesting_indices = indexedAttestation.getAttestingIndices().streamUnboxed().toList(); - this.data = new AttestationData(indexedAttestation.getData()); - this.signature = new BLSSignature(indexedAttestation.getSignature()); - } - - @JsonCreator - public IndexedAttestation( - @JsonProperty("attesting_indices") final List attesting_indices, - @JsonProperty("data") final AttestationData data, - @JsonProperty("signature") final BLSSignature signature) { - this.attesting_indices = attesting_indices; - this.data = data; - this.signature = signature; - } - - public tech.pegasys.teku.spec.datastructures.operations.IndexedAttestation - asInternalIndexedAttestation(final Spec spec) { - return asInternalIndexedAttestation(spec.atSlot(data.slot)); - } - - public tech.pegasys.teku.spec.datastructures.operations.IndexedAttestation - asInternalIndexedAttestation(final SpecVersion spec) { - final IndexedAttestationSchema indexedAttestationSchema = - spec.getSchemaDefinitions().getIndexedAttestationSchema(); - return indexedAttestationSchema.create( - indexedAttestationSchema.getAttestingIndicesSchema().of(attesting_indices), - data.asInternalAttestationData(), - signature.asInternalBLSSignature()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof IndexedAttestation that)) { - return false; - } - return Objects.equals(attesting_indices, that.attesting_indices) - && Objects.equals(data, that.data) - && Objects.equals(signature, that.signature); - } - - @Override - public int hashCode() { - return Objects.hash(attesting_indices, data, signature); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/KZGCommitment.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/KZGCommitment.java deleted file mode 100644 index ee914b16e2f..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/KZGCommitment.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static com.google.common.base.Preconditions.checkArgument; - -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes; - -public class KZGCommitment { - /** The number of bytes in this value - i.e. 48 */ - private static final int SIZE = 48; - - private final Bytes bytes; - - public KZGCommitment(final Bytes bytes) { - checkArgument( - bytes.size() == SIZE, - "Bytes%s should be %s bytes, but was %s bytes.", - SIZE, - SIZE, - bytes.size()); - this.bytes = bytes; - } - - public KZGCommitment(final tech.pegasys.teku.kzg.KZGCommitment kzgCommitment) { - this(kzgCommitment.toSSZBytes()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final KZGCommitment other = (KZGCommitment) o; - return bytes.equals(other.bytes); - } - - @Override - public int hashCode() { - return Objects.hash(bytes); - } - - @Override - public String toString() { - return bytes.toString(); - } - - public static KZGCommitment fromHexString(final String value) { - try { - return new KZGCommitment(tech.pegasys.teku.kzg.KZGCommitment.fromHexString(value)); - } catch (IllegalArgumentException e) { - throw new IllegalArgumentException( - "KZGCommitment " + value + " is invalid: " + e.getMessage(), e); - } - } - - public String toHexString() { - return bytes.toHexString(); - } - - public Bytes toBytes() { - return bytes; - } - - public static KZGCommitment empty() { - return new KZGCommitment(Bytes.wrap(new byte[SIZE])); - } - - public tech.pegasys.teku.kzg.KZGCommitment asInternalKZGCommitment() { - return tech.pegasys.teku.kzg.KZGCommitment.fromSSZBytes(bytes); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/KZGProof.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/KZGProof.java deleted file mode 100644 index a8229f15b05..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/KZGProof.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static com.google.common.base.Preconditions.checkArgument; - -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes; - -public class KZGProof { - /** The number of bytes in this value - i.e. 48 */ - private static final int SIZE = 48; - - private final Bytes bytes; - - public KZGProof(final Bytes bytes) { - checkArgument( - bytes.size() == SIZE, - "Bytes%s should be %s bytes, but was %s bytes.", - SIZE, - SIZE, - bytes.size()); - this.bytes = bytes; - } - - public KZGProof(final tech.pegasys.teku.kzg.KZGProof kzgProof) { - this(kzgProof.toSSZBytes()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final KZGProof other = (KZGProof) o; - return bytes.equals(other.bytes); - } - - @Override - public int hashCode() { - return Objects.hash(bytes); - } - - @Override - public String toString() { - return bytes.toString(); - } - - public static KZGProof fromHexString(final String value) { - try { - return new KZGProof(tech.pegasys.teku.kzg.KZGProof.fromHexString(value)); - } catch (IllegalArgumentException e) { - throw new IllegalArgumentException("KZGProof " + value + " is invalid: " + e.getMessage(), e); - } - } - - public String toHexString() { - return bytes.toHexString(); - } - - public Bytes toBytes() { - return bytes; - } - - public static KZGProof empty() { - return new KZGProof(Bytes.wrap(new byte[SIZE])); - } - - public tech.pegasys.teku.kzg.KZGProof asInternalKZGProof() { - return tech.pegasys.teku.kzg.KZGProof.fromSSZBytes(bytes); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/LogLevel.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/LogLevel.java deleted file mode 100644 index 8ef53415650..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/LogLevel.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonSetter; -import java.util.Optional; -import org.apache.logging.log4j.Level; - -public class LogLevel { - - private final Level level; - private String[] logFilter; - - @JsonCreator - public LogLevel(@JsonProperty("level") final String level) { - this.level = Level.valueOf(level); - } - - @JsonSetter("log_filter") - public void setLogFilter(final String[] logFilter) { - this.logFilter = logFilter; - } - - public Level getLevel() { - return level; - } - - @JsonGetter("level") - public String getLevelAsString() { - return level.toString(); - } - - @JsonGetter("log_filter") - public Optional getLogFilter() { - return Optional.ofNullable(logFilter); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Metadata.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Metadata.java deleted file mode 100644 index 586a8c07399..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Metadata.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_UINT64; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Locale; -import java.util.Objects; -import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.MetadataMessage; -import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.altair.MetadataMessageAltair; - -@Schema( - description = - "Based on eth2 [Metadata object]" - + "(https://github.com/ethereum/consensus-specs/blob/v0.12.2/specs/phase0/p2p-interface.md#metadata)") -public class Metadata { - @JsonProperty("seq_number") - @Schema( - type = "string", - pattern = PATTERN_UINT64, - description = - "Uint64 starting at 0 used to version the node's metadata. " - + "If any other field in the local MetaData changes, the node MUST increment seq_number by 1.") - public final String sequenceNumber; - - @JsonProperty("attnets") - @Schema( - type = "string", - pattern = "^0x[a-fA-F0-9]{2,}$", - description = - "Bitvector representing the node's persistent attestation subnet subscriptions.") - public final String attestationSubnetSubscriptions; - - @JsonProperty("syncnets") - @Schema( - type = "string", - pattern = "^0x[a-fA-F0-9]{2,}$", - description = - "Bitvector representing the node's persistent attestation subnet subscriptions.") - @JsonInclude(JsonInclude.Include.NON_NULL) - public final String syncCommitteeSubscriptions; - - @JsonCreator - public Metadata( - @JsonProperty("seq_number") final String sequenceNumber, - @JsonProperty("attnets") final String attestationSubnetSubscriptions, - @JsonProperty("syncnets") final String syncCommitteeSubscriptions) { - this.sequenceNumber = sequenceNumber; - this.attestationSubnetSubscriptions = attestationSubnetSubscriptions; - this.syncCommitteeSubscriptions = syncCommitteeSubscriptions; - } - - public Metadata(final MetadataMessage metadataMessage) { - this.sequenceNumber = metadataMessage.getSeqNumber().toString(); - this.attestationSubnetSubscriptions = - metadataMessage.getAttnets().sszSerialize().toHexString().toLowerCase(Locale.ROOT); - if (metadataMessage instanceof MetadataMessageAltair) { - this.syncCommitteeSubscriptions = - ((MetadataMessageAltair) metadataMessage) - .getSyncnets() - .sszSerialize() - .toHexString() - .toLowerCase(Locale.ROOT); - } else { - this.syncCommitteeSubscriptions = null; - } - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final Metadata metadata = (Metadata) o; - return Objects.equals(sequenceNumber, metadata.sequenceNumber) - && Objects.equals(attestationSubnetSubscriptions, metadata.attestationSubnetSubscriptions) - && Objects.equals(syncCommitteeSubscriptions, metadata.syncCommitteeSubscriptions); - } - - @Override - public int hashCode() { - return Objects.hash(sequenceNumber, attestationSubnetSubscriptions, syncCommitteeSubscriptions); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/PendingAttestation.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/PendingAttestation.java deleted file mode 100644 index 4fb9aedb60c..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/PendingAttestation.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES_SSZ; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.state.PendingAttestation.PendingAttestationSchema; - -@SuppressWarnings("JavaCase") -public class PendingAttestation { - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES_SSZ) - public final Bytes aggregation_bits; - - public final AttestationData data; - - @Schema(type = "string", format = "uint64") - public final UInt64 inclusion_delay; - - @Schema(type = "string", format = "uint64") - public final UInt64 proposer_index; - - @JsonCreator - public PendingAttestation( - @JsonProperty("aggregation_bits") final Bytes aggregation_bits, - @JsonProperty("data") final AttestationData data, - @JsonProperty("inclusion_delay") final UInt64 inclusion_delay, - @JsonProperty("proposer_index") final UInt64 proposer_index) { - this.aggregation_bits = aggregation_bits; - this.data = data; - this.inclusion_delay = inclusion_delay; - this.proposer_index = proposer_index; - } - - public PendingAttestation( - final tech.pegasys.teku.spec.datastructures.state.PendingAttestation pendingAttestation) { - this.aggregation_bits = pendingAttestation.getAggregationBits().sszSerialize(); - this.data = new AttestationData(pendingAttestation.getData()); - this.inclusion_delay = pendingAttestation.getInclusionDelay(); - this.proposer_index = pendingAttestation.getProposerIndex(); - } - - public tech.pegasys.teku.spec.datastructures.state.PendingAttestation - asInternalPendingAttestation(final PendingAttestationSchema pendingAttestationSchema) { - return pendingAttestationSchema.create( - pendingAttestationSchema.getAggregationBitfieldSchema().sszDeserialize(aggregation_bits), - data.asInternalAttestationData(), - inclusion_delay, - proposer_index); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof PendingAttestation)) { - return false; - } - PendingAttestation that = (PendingAttestation) o; - return Objects.equals(aggregation_bits, that.aggregation_bits) - && Objects.equals(data, that.data) - && Objects.equals(inclusion_delay, that.inclusion_delay) - && Objects.equals(proposer_index, that.proposer_index); - } - - @Override - public int hashCode() { - return Objects.hash(aggregation_bits, data, inclusion_delay, proposer_index); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ProposerSlashing.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ProposerSlashing.java deleted file mode 100644 index 0d0ca4db104..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/ProposerSlashing.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Objects; - -@SuppressWarnings("JavaCase") -public class ProposerSlashing { - public final SignedBeaconBlockHeader signed_header_1; - public final SignedBeaconBlockHeader signed_header_2; - - public ProposerSlashing( - final tech.pegasys.teku.spec.datastructures.operations.ProposerSlashing proposerSlashing) { - signed_header_1 = new SignedBeaconBlockHeader(proposerSlashing.getHeader1()); - signed_header_2 = new SignedBeaconBlockHeader(proposerSlashing.getHeader2()); - } - - @JsonCreator - public ProposerSlashing( - @JsonProperty("signed_header_1") final SignedBeaconBlockHeader header_1, - @JsonProperty("signed_header_2") final SignedBeaconBlockHeader header_2) { - this.signed_header_1 = header_1; - this.signed_header_2 = header_2; - } - - public tech.pegasys.teku.spec.datastructures.operations.ProposerSlashing - asInternalProposerSlashing() { - return new tech.pegasys.teku.spec.datastructures.operations.ProposerSlashing( - signed_header_1.asInternalSignedBeaconBlockHeader(), - signed_header_2.asInternalSignedBeaconBlockHeader()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof ProposerSlashing)) { - return false; - } - ProposerSlashing that = (ProposerSlashing) o; - return Objects.equals(signed_header_1, that.signed_header_1) - && Objects.equals(signed_header_2, that.signed_header_2); - } - - @Override - public int hashCode() { - return Objects.hash(signed_header_1, signed_header_2); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Root.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Root.java deleted file mode 100644 index c7dd95d157c..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Root.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.Objects; -import io.swagger.v3.oas.annotations.media.Schema; -import org.apache.tuweni.bytes.Bytes32; - -public class Root { - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 root; - - @JsonCreator - public Root(@JsonProperty("root") final Bytes32 root) { - this.root = root; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Root)) { - return false; - } - Root root1 = (Root) o; - return Objects.equal(root, root1.root); - } - - @Override - public int hashCode() { - return Objects.hashCode(root); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SchemaConstants.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SchemaConstants.java deleted file mode 100644 index 0f622b79528..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SchemaConstants.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -public class SchemaConstants { - public static final String DESCRIPTION_BYTES32 = "Bytes32 hexadecimal"; - public static final String DESCRIPTION_BYTES4 = "Bytes4 hexadecimal"; - public static final String DESCRIPTION_BYTES96 = "Bytes96 hexadecimal"; - public static final String DESCRIPTION_BYTES48 = "Bytes48 hexadecimal"; - public static final String DESCRIPTION_BYTES20 = "Bytes20 hexadecimal"; - public static final String DESCRIPTION_BYTES_SSZ = "SSZ hexadecimal"; - public static final String DESCRIPTION_EXECUTION_ADDRESS = - "An address on the execution (Ethereum 1) network."; - - public static final String PATTERN_UINT64 = "^0-9+$"; - public static final String PATTERN_PUBKEY = "^0x[a-fA-F0-9]{96}$"; - public static final String PATTERN_BYTES4 = "^0x[a-fA-F0-9]{8}$"; - public static final String PATTERN_BYTES32 = "^0x[a-fA-F0-9]{64}$"; - public static final String PATTERN_BYTES20 = "^0x[a-fA-F0-9]{40}$"; - public static final String PATTERN_EXECUTION_ADDRESS = PATTERN_BYTES20; - - public static final String EXAMPLE_PUBKEY = - "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a"; - public static final String EXAMPLE_BYTES32 = - "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"; - public static final String EXAMPLE_UINT64 = "1"; - public static final String EXAMPLE_UINT8 = "1"; - public static final String EXAMPLE_EXECUTION_ADDRESS = - "0xabcf8e0d4e9587369b2301d0790347320302cc09"; -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedAggregateAndProof.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedAggregateAndProof.java deleted file mode 100644 index 63c22385828..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedAggregateAndProof.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; - -public class SignedAggregateAndProof { - - public final AggregateAndProof message; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - @JsonCreator - public SignedAggregateAndProof( - @JsonProperty("message") final AggregateAndProof message, - @JsonProperty("signature") final BLSSignature signature) { - this.message = message; - this.signature = signature; - } - - public SignedAggregateAndProof( - final tech.pegasys.teku.spec.datastructures.operations.SignedAggregateAndProof - signedAggregateAndProof) { - this.message = new AggregateAndProof(signedAggregateAndProof.getMessage()); - this.signature = new BLSSignature(signedAggregateAndProof.getSignature()); - } - - public tech.pegasys.teku.spec.datastructures.operations.SignedAggregateAndProof - asInternalSignedAggregateAndProof(final Spec spec) { - final SpecVersion specVersion = spec.atSlot(message.aggregate.data.slot); - return specVersion - .getSchemaDefinitions() - .getSignedAggregateAndProofSchema() - .create( - message.asInternalAggregateAndProof(specVersion), signature.asInternalBLSSignature()); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlock.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlock.java deleted file mode 100644 index c36488b0cba..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlock.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Supplier; -import java.util.stream.Stream; -import tech.pegasys.teku.api.schema.altair.SignedBeaconBlockAltair; -import tech.pegasys.teku.api.schema.bellatrix.SignedBeaconBlockBellatrix; -import tech.pegasys.teku.api.schema.bellatrix.SignedBlindedBeaconBlockBellatrix; -import tech.pegasys.teku.api.schema.capella.SignedBeaconBlockCapella; -import tech.pegasys.teku.api.schema.capella.SignedBlindedBeaconBlockCapella; -import tech.pegasys.teku.api.schema.deneb.SignedBeaconBlockDeneb; -import tech.pegasys.teku.api.schema.deneb.SignedBlindedBeaconBlockDeneb; -import tech.pegasys.teku.api.schema.electra.SignedBeaconBlockElectra; -import tech.pegasys.teku.api.schema.electra.SignedBlindedBeaconBlockElectra; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; -import tech.pegasys.teku.api.schema.phase0.SignedBeaconBlockPhase0; -import tech.pegasys.teku.spec.Spec; - -public class SignedBeaconBlock implements SignedBlock { - private final BeaconBlock message; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - public BeaconBlock getMessage() { - return message; - } - - protected SignedBeaconBlock( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - this.signature = new BLSSignature(internalBlock.getSignature()); - this.message = new BeaconBlock(internalBlock.getMessage()); - } - - @JsonCreator - public SignedBeaconBlock( - @JsonProperty("message") final BeaconBlock message, - @JsonProperty("signature") final BLSSignature signature) { - this.message = message; - this.signature = signature; - } - - public static SignedBeaconBlock create( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody beaconBlock = - internalBlock.getMessage().getBody(); - - return Stream.of( - () -> - beaconBlock - .toBlindedVersionElectra() - .map(__ -> new SignedBlindedBeaconBlockElectra(internalBlock)), - () -> - beaconBlock - .toVersionElectra() - .map(__ -> new SignedBeaconBlockElectra(internalBlock)), - () -> - beaconBlock - .toBlindedVersionDeneb() - .map(__ -> new SignedBlindedBeaconBlockDeneb(internalBlock)), - () -> beaconBlock.toVersionDeneb().map(__ -> new SignedBeaconBlockDeneb(internalBlock)), - () -> - beaconBlock - .toBlindedVersionCapella() - .map(__ -> new SignedBlindedBeaconBlockCapella(internalBlock)), - () -> - beaconBlock - .toVersionCapella() - .map(__ -> new SignedBeaconBlockCapella(internalBlock)), - () -> - beaconBlock - .toBlindedVersionBellatrix() - .map(__ -> new SignedBlindedBeaconBlockBellatrix(internalBlock)), - () -> - beaconBlock - .toVersionBellatrix() - .map(__ -> new SignedBeaconBlockBellatrix(internalBlock)), - () -> - beaconBlock.toVersionAltair().map(__ -> new SignedBeaconBlockAltair(internalBlock)), - (Supplier>) - () -> Optional.of(new SignedBeaconBlockPhase0(internalBlock))) - .map(Supplier::get) - .flatMap(Optional::stream) - .findFirst() - .orElseThrow(); - } - - public tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock asInternalSignedBeaconBlock( - final Spec spec) { - final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock beaconBlock = - getMessage().asInternalBeaconBlock(spec); - return tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock.create( - spec, beaconBlock, signature.asInternalBLSSignature()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof SignedBeaconBlock)) { - return false; - } - SignedBeaconBlock that = (SignedBeaconBlock) o; - return Objects.equals(message, that.message) && Objects.equals(signature, that.signature); - } - - @Override - public int hashCode() { - return Objects.hash(message, signature); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlockHeader.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlockHeader.java deleted file mode 100644 index f2621f321e6..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlockHeader.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; - -public class SignedBeaconBlockHeader { - public final BeaconBlockHeader message; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - public SignedBeaconBlockHeader( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockHeader signedHeader) { - this.message = new BeaconBlockHeader(signedHeader.getMessage()); - this.signature = new BLSSignature(signedHeader.getSignature()); - } - - @JsonCreator - public SignedBeaconBlockHeader( - @JsonProperty("message") final BeaconBlockHeader message, - @JsonProperty("signature") final BLSSignature signature) { - this.message = message; - this.signature = signature; - } - - public tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockHeader - asInternalSignedBeaconBlockHeader() { - return new tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockHeader( - message.asInternalBeaconBlockHeader(), signature.asInternalBLSSignature()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final SignedBeaconBlockHeader that = (SignedBeaconBlockHeader) o; - return Objects.equals(message, that.message) && Objects.equals(signature, that.signature); - } - - @Override - public int hashCode() { - return Objects.hash(message, signature); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("message", message) - .add("signature", signature) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlockWithRoot.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlockWithRoot.java deleted file mode 100644 index a22f0a4d8d9..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedBeaconBlockWithRoot.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import io.swagger.v3.oas.annotations.media.Schema; -import org.apache.tuweni.bytes.Bytes32; - -public class SignedBeaconBlockWithRoot extends SignedBeaconBlock { - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - private final Bytes32 root; - - public SignedBeaconBlockWithRoot( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - root = internalBlock.getRoot(); - } - - public Bytes32 getRoot() { - return root; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedVoluntaryExit.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedVoluntaryExit.java deleted file mode 100644 index 28b2ac58bd0..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SignedVoluntaryExit.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; - -public class SignedVoluntaryExit { - public final VoluntaryExit message; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - public SignedVoluntaryExit( - final tech.pegasys.teku.spec.datastructures.operations.SignedVoluntaryExit - signedVoluntaryExit) { - this.signature = new BLSSignature(signedVoluntaryExit.getSignature()); - this.message = new VoluntaryExit(signedVoluntaryExit.getMessage()); - } - - public SignedVoluntaryExit( - @JsonProperty("message") final VoluntaryExit message, - @JsonProperty("signature") final BLSSignature signature) { - this.message = message; - this.signature = signature; - } - - public SignedVoluntaryExit( - final tech.pegasys.teku.spec.datastructures.operations.VoluntaryExit message, - final tech.pegasys.teku.bls.BLSSignature signature) { - this.message = new VoluntaryExit(message); - this.signature = new BLSSignature(signature); - } - - public tech.pegasys.teku.spec.datastructures.operations.SignedVoluntaryExit - asInternalSignedVoluntaryExit() { - return new tech.pegasys.teku.spec.datastructures.operations.SignedVoluntaryExit( - message.asInternalVoluntaryExit(), signature.asInternalBLSSignature()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof SignedVoluntaryExit)) { - return false; - } - SignedVoluntaryExit that = (SignedVoluntaryExit) o; - return Objects.equals(message, that.message) && Objects.equals(signature, that.signature); - } - - @Override - public int hashCode() { - return Objects.hash(message, signature); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SubnetSubscription.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SubnetSubscription.java deleted file mode 100644 index 349b51d966e..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/SubnetSubscription.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class SubnetSubscription { - - public final int subnet_id; - - @Schema(type = "string", format = "uint64") - public final UInt64 unsubscription_slot; - - @JsonCreator - public SubnetSubscription( - @JsonProperty("subnet_id") final int subnet_id, - @JsonProperty("unsubscription_slot") final UInt64 unsubscription_slot) { - this.subnet_id = subnet_id; - this.unsubscription_slot = unsubscription_slot; - } - - public tech.pegasys.teku.spec.datastructures.validator.SubnetSubscription - asInternalSubnetSubscription() { - return new tech.pegasys.teku.spec.datastructures.validator.SubnetSubscription( - subnet_id, unsubscription_slot); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Validator.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Validator.java deleted file mode 100644 index b50e0cbc7a9..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Validator.java +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES48; -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_PUBKEY; -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_PUBKEY; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class Validator { - @Schema( - type = "string", - pattern = PATTERN_PUBKEY, - example = EXAMPLE_PUBKEY, - description = DESCRIPTION_BYTES48) - public final BLSPubKey pubkey; - - @Schema( - type = "string", - pattern = PATTERN_BYTES32, - example = EXAMPLE_BYTES32, - description = "Root of withdrawal credentials") - public final Bytes32 withdrawal_credentials; - - @Schema(type = "string", example = EXAMPLE_UINT64, description = "Balance at stake in Gwei.") - public final UInt64 effective_balance; - - public final boolean slashed; - - @Schema( - type = "string", - example = EXAMPLE_UINT64, - description = "When criteria for activation were met.") - public final UInt64 activation_eligibility_epoch; - - @Schema( - type = "string", - example = EXAMPLE_UINT64, - description = "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated.") - public final UInt64 activation_epoch; - - @Schema( - type = "string", - example = EXAMPLE_UINT64, - description = "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.") - public final UInt64 exit_epoch; - - @Schema( - type = "string", - example = EXAMPLE_UINT64, - description = - "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined.") - public final UInt64 withdrawable_epoch; - - @JsonCreator - public Validator( - @JsonProperty("pubkey") final BLSPubKey pubkey, - @JsonProperty("withdrawal_credentials") final Bytes32 withdrawal_credentials, - @JsonProperty("effective_balance") final UInt64 effective_balance, - @JsonProperty("slashed") final boolean slashed, - @JsonProperty("activation_eligibility_epoch") final UInt64 activation_eligibility_epoch, - @JsonProperty("activation_epoch") final UInt64 activation_epoch, - @JsonProperty("exit_epoch") final UInt64 exit_epoch, - @JsonProperty("withdrawable_epoch") final UInt64 withdrawable_epoch) { - this.pubkey = pubkey; - this.withdrawal_credentials = withdrawal_credentials; - this.effective_balance = effective_balance; - this.slashed = slashed; - this.activation_eligibility_epoch = activation_eligibility_epoch; - this.activation_epoch = activation_epoch; - this.exit_epoch = exit_epoch; - this.withdrawable_epoch = withdrawable_epoch; - } - - public Validator(final tech.pegasys.teku.spec.datastructures.state.Validator validator) { - this.pubkey = new BLSPubKey(validator.getPubkeyBytes()); - this.withdrawal_credentials = validator.getWithdrawalCredentials(); - this.effective_balance = validator.getEffectiveBalance(); - this.slashed = validator.isSlashed(); - this.activation_eligibility_epoch = validator.getActivationEligibilityEpoch(); - this.activation_epoch = validator.getActivationEpoch(); - this.exit_epoch = validator.getExitEpoch(); - this.withdrawable_epoch = validator.getWithdrawableEpoch(); - } - - public tech.pegasys.teku.spec.datastructures.state.Validator asInternalValidator() { - return new tech.pegasys.teku.spec.datastructures.state.Validator( - pubkey.asBLSPublicKey().toBytesCompressed(), - withdrawal_credentials, - effective_balance, - slashed, - activation_eligibility_epoch, - activation_epoch, - exit_epoch, - withdrawable_epoch); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final Validator validator = (Validator) o; - return slashed == validator.slashed - && Objects.equals(pubkey, validator.pubkey) - && Objects.equals(withdrawal_credentials, validator.withdrawal_credentials) - && Objects.equals(effective_balance, validator.effective_balance) - && Objects.equals(activation_eligibility_epoch, validator.activation_eligibility_epoch) - && Objects.equals(activation_epoch, validator.activation_epoch) - && Objects.equals(exit_epoch, validator.exit_epoch) - && Objects.equals(withdrawable_epoch, validator.withdrawable_epoch); - } - - @Override - public int hashCode() { - return Objects.hash( - pubkey, - withdrawal_credentials, - effective_balance, - slashed, - activation_eligibility_epoch, - activation_epoch, - exit_epoch, - withdrawable_epoch); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("pubkey", pubkey) - .add("withdrawal_credentials", withdrawal_credentials) - .add("effective_balance", effective_balance) - .add("slashed", slashed) - .add("activation_eligibility_epoch", activation_eligibility_epoch) - .add("activation_epoch", activation_epoch) - .add("exit_epoch", exit_epoch) - .add("withdrawable_epoch", withdrawable_epoch) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Version.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Version.java deleted file mode 100644 index a23d273a2b5..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/Version.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import tech.pegasys.teku.spec.SpecMilestone; - -@SuppressWarnings("JavaCase") -public enum Version { - phase0, - altair, - bellatrix, - capella, - deneb, - electra, - fulu; - - public static Version fromMilestone(final SpecMilestone milestone) { - return switch (milestone) { - case PHASE0 -> phase0; - case ALTAIR -> altair; - case BELLATRIX -> bellatrix; - case CAPELLA -> capella; - case DENEB -> deneb; - case ELECTRA -> electra; - case FULU -> fulu; - }; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/VoluntaryExit.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/VoluntaryExit.java deleted file mode 100644 index 137dd276597..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/VoluntaryExit.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class VoluntaryExit { - @Schema(type = "string", format = "uint64") - public final UInt64 epoch; - - @Schema(type = "string", format = "uint64") - public final UInt64 validator_index; - - public VoluntaryExit( - final tech.pegasys.teku.spec.datastructures.operations.VoluntaryExit voluntaryExit) { - this.epoch = voluntaryExit.getEpoch(); - this.validator_index = voluntaryExit.getValidatorIndex(); - } - - @JsonCreator - public VoluntaryExit( - @JsonProperty("epoch") final UInt64 epoch, - @JsonProperty("validator_index") final UInt64 validator_index) { - this.epoch = epoch; - this.validator_index = validator_index; - } - - public tech.pegasys.teku.spec.datastructures.operations.VoluntaryExit asInternalVoluntaryExit() { - return new tech.pegasys.teku.spec.datastructures.operations.VoluntaryExit( - epoch, validator_index); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof VoluntaryExit)) { - return false; - } - VoluntaryExit that = (VoluntaryExit) o; - return Objects.equals(epoch, that.epoch) - && Objects.equals(validator_index, that.validator_index); - } - - @Override - public int hashCode() { - return Objects.hash(epoch, validator_index); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconBlockAltair.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconBlockAltair.java deleted file mode 100644 index ae9fe10ba75..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconBlockAltair.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.UnsignedBlock; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsAltair; - -@SuppressWarnings("JavaCase") -public class BeaconBlockAltair extends BeaconBlock implements UnsignedBlock { - - public BeaconBlockAltair(final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BeaconBlockBodyAltair(message.getBody().toVersionAltair().orElseThrow())); - } - - @Override - public tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock asInternalBeaconBlock( - final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return SchemaDefinitionsAltair.required(specVersion.getSchemaDefinitions()) - .getBeaconBlockSchema() - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @JsonProperty("body") - @Override - public BeaconBlockBodyAltair getBody() { - return (BeaconBlockBodyAltair) body; - } - - @JsonCreator - public BeaconBlockAltair( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposer_index, - @JsonProperty("parent_root") final Bytes32 parent_root, - @JsonProperty("state_root") final Bytes32 state_root, - @JsonProperty("body") final BeaconBlockBodyAltair body) { - super(slot, proposer_index, parent_root, state_root, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconBlockBodyAltair.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconBlockBodyAltair.java deleted file mode 100644 index 68ab28e9785..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconBlockBodyAltair.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import java.util.function.Function; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.AttesterSlashing; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.BeaconBlockBody; -import tech.pegasys.teku.api.schema.Deposit; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.ProposerSlashing; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBodyBuilder; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.BeaconBlockBodySchemaAltair; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.SyncAggregateSchema; - -@SuppressWarnings("JavaCase") -public class BeaconBlockBodyAltair extends BeaconBlockBody { - @JsonProperty("sync_aggregate") - public final SyncAggregate syncAggregate; - - @JsonCreator - public BeaconBlockBodyAltair( - @JsonProperty("randao_reveal") final BLSSignature randao_reveal, - @JsonProperty("eth1_data") final Eth1Data eth1_data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposer_slashings, - @JsonProperty("attester_slashings") final List attester_slashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntary_exits, - @JsonProperty("sync_aggregate") final SyncAggregate sync_aggregate) { - super( - randao_reveal, - eth1_data, - graffiti, - proposer_slashings, - attester_slashings, - attestations, - deposits, - voluntary_exits); - checkNotNull(sync_aggregate, "Sync Aggregate is required for altair blocks"); - this.syncAggregate = sync_aggregate; - } - - public BeaconBlockBodyAltair( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair - .BeaconBlockBodyAltair - message) { - super(message); - this.syncAggregate = new SyncAggregate(message.getSyncAggregate()); - checkNotNull(syncAggregate, "Sync Aggregate is required for altair blocks"); - } - - @Override - public BeaconBlockBodySchemaAltair getBeaconBlockBodySchema(final SpecVersion spec) { - return (BeaconBlockBodySchemaAltair) spec.getSchemaDefinitions().getBeaconBlockBodySchema(); - } - - @Override - public tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody - asInternalBeaconBlockBody( - final SpecVersion spec, - final Function> builderRef) { - final SyncAggregateSchema syncAggregateSchema = - getBeaconBlockBodySchema(spec).getSyncAggregateSchema(); - return super.asInternalBeaconBlockBody( - spec, - builder -> - SafeFuture.allOf( - builderRef.apply(builder), - SafeFuture.of( - () -> - builder.syncAggregate( - syncAggregateSchema.create( - syncAggregateSchema - .getSyncCommitteeBitsSchema() - .fromBytes(syncAggregate.syncCommitteeBits) - .getAllSetBits(), - syncAggregate.syncCommitteeSignature.asInternalBLSSignature()))))); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconStateAltair.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconStateAltair.java deleted file mode 100644 index 12b2b296ca2..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/BeaconStateAltair.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT8; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BeaconBlockHeader; -import tech.pegasys.teku.api.schema.BeaconState; -import tech.pegasys.teku.api.schema.Checkpoint; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.Fork; -import tech.pegasys.teku.api.schema.Validator; -import tech.pegasys.teku.api.schema.interfaces.State; -import tech.pegasys.teku.infrastructure.ssz.SszList; -import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; -import tech.pegasys.teku.infrastructure.ssz.primitive.SszByte; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.state.SyncCommittee.SyncCommitteeSchema; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.MutableBeaconState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.altair.BeaconStateSchemaAltair; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.altair.MutableBeaconStateAltair; - -@SuppressWarnings("JavaCase") -public class BeaconStateAltair extends BeaconState implements State { - @ArraySchema(schema = @Schema(type = "string", example = EXAMPLE_UINT8)) - public final byte[] previous_epoch_participation; - - @ArraySchema(schema = @Schema(type = "string", example = EXAMPLE_UINT8)) - public final byte[] current_epoch_participation; - - @JsonProperty("inactivity_scores") - @ArraySchema(schema = @Schema(type = "string", example = EXAMPLE_UINT64)) - public final List inactivity_scores; - - public final SyncCommittee current_sync_committee; - public final SyncCommittee next_sync_committee; - - @JsonCreator - public BeaconStateAltair( - @JsonProperty("genesis_time") final UInt64 genesis_time, - @JsonProperty("genesis_validators_root") final Bytes32 genesis_validators_root, - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("fork") final Fork fork, - @JsonProperty("latest_block_header") final BeaconBlockHeader latest_block_header, - @JsonProperty("block_roots") final List block_roots, - @JsonProperty("state_roots") final List state_roots, - @JsonProperty("historical_roots") final List historical_roots, - @JsonProperty("eth1_data") final Eth1Data eth1_data, - @JsonProperty("eth1_data_votes") final List eth1_data_votes, - @JsonProperty("eth1_deposit_index") final UInt64 eth1_deposit_index, - @JsonProperty("validators") final List validators, - @JsonProperty("balances") final List balances, - @JsonProperty("randao_mixes") final List randao_mixes, - @JsonProperty("slashings") final List slashings, - @JsonProperty("previous_epoch_participation") final byte[] previous_epoch_participation, - @JsonProperty("current_epoch_participation") final byte[] current_epoch_participation, - @JsonProperty("justification_bits") final SszBitvector justification_bits, - @JsonProperty("previous_justified_checkpoint") final Checkpoint previous_justified_checkpoint, - @JsonProperty("current_justified_checkpoint") final Checkpoint current_justified_checkpoint, - @JsonProperty("finalized_checkpoint") final Checkpoint finalized_checkpoint, - @JsonProperty("inactivity_scores") final List inactivity_scores, - @JsonProperty("current_sync_committee") final SyncCommittee current_sync_committee, - @JsonProperty("next_sync_committee") final SyncCommittee next_sync_committee) { - super( - genesis_time, - genesis_validators_root, - slot, - fork, - latest_block_header, - block_roots, - state_roots, - historical_roots, - eth1_data, - eth1_data_votes, - eth1_deposit_index, - validators, - balances, - randao_mixes, - slashings, - justification_bits, - previous_justified_checkpoint, - current_justified_checkpoint, - finalized_checkpoint); - this.previous_epoch_participation = previous_epoch_participation; - this.current_epoch_participation = current_epoch_participation; - this.inactivity_scores = inactivity_scores; - this.current_sync_committee = current_sync_committee; - this.next_sync_committee = next_sync_committee; - } - - public BeaconStateAltair( - final tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState beaconState) { - super(beaconState); - final tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.altair.BeaconStateAltair - altair = beaconState.toVersionAltair().orElseThrow(); - this.previous_epoch_participation = toByteArray(altair.getPreviousEpochParticipation()); - this.current_epoch_participation = toByteArray(altair.getCurrentEpochParticipation()); - this.inactivity_scores = altair.getInactivityScores().asListUnboxed(); - this.current_sync_committee = new SyncCommittee(altair.getCurrentSyncCommittee()); - this.next_sync_committee = new SyncCommittee(altair.getNextSyncCommittee()); - } - - @Override - protected void applyAdditionalFields( - final MutableBeaconState state, final SpecVersion specVersion) { - state - .toMutableVersionAltair() - .ifPresent( - beaconStateAltair -> { - final SyncCommitteeSchema syncCommitteeSchema = - BeaconStateSchemaAltair.required(beaconStateAltair.getBeaconStateSchema()) - .getCurrentSyncCommitteeSchema(); - applyAltairFields(beaconStateAltair, syncCommitteeSchema, this); - }); - } - - public static void applyAltairFields( - final MutableBeaconStateAltair state, - final SyncCommitteeSchema syncCommitteeSchema, - final BeaconStateAltair instance) { - final SszList previousEpochParticipation = - state - .getPreviousEpochParticipation() - .getSchema() - .sszDeserialize(Bytes.wrap(instance.previous_epoch_participation)); - final SszList currentEpochParticipation = - state - .getCurrentEpochParticipation() - .getSchema() - .sszDeserialize(Bytes.wrap(instance.current_epoch_participation)); - - state.setPreviousEpochParticipation(previousEpochParticipation); - state.setCurrentEpochParticipation(currentEpochParticipation); - state.getInactivityScores().setAllElements(instance.inactivity_scores); - - state.setCurrentSyncCommittee( - instance.current_sync_committee.asInternalSyncCommittee(syncCommitteeSchema)); - state.setNextSyncCommittee( - instance.next_sync_committee.asInternalSyncCommittee(syncCommitteeSchema)); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final BeaconStateAltair that = (BeaconStateAltair) o; - return Arrays.equals(previous_epoch_participation, that.previous_epoch_participation) - && Arrays.equals(current_epoch_participation, that.current_epoch_participation) - && Objects.equals(inactivity_scores, that.inactivity_scores) - && Objects.equals(current_sync_committee, that.current_sync_committee) - && Objects.equals(next_sync_committee, that.next_sync_committee); - } - - @Override - public int hashCode() { - int result = - Objects.hash( - System.identityHashCode(this), - inactivity_scores, - current_sync_committee, - next_sync_committee); - result = 31 * result + Arrays.hashCode(previous_epoch_participation); - result = 31 * result + Arrays.hashCode(current_epoch_participation); - return result; - } - - private byte[] toByteArray(final SszList byteList) { - final byte[] array = new byte[byteList.size()]; - for (int i = 0; i < array.length; i++) { - array[i] = byteList.get(i).get(); - } - return array; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/ContributionAndProof.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/ContributionAndProof.java deleted file mode 100644 index 4dd69c193d0..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/ContributionAndProof.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class ContributionAndProof { - @JsonProperty("aggregator_index") - @Schema(type = "string", format = "uint64") - public final UInt64 aggregatorIndex; - - @JsonProperty("selection_proof") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature selectionProof; - - @JsonProperty("contribution") - public final SyncCommitteeContribution contribution; - - @JsonCreator - public ContributionAndProof( - @JsonProperty("aggregator_index") final UInt64 aggregatorIndex, - @JsonProperty("selection_proof") final BLSSignature selectionProof, - @JsonProperty("contribution") final SyncCommitteeContribution contribution) { - this.aggregatorIndex = aggregatorIndex; - this.selectionProof = selectionProof; - this.contribution = contribution; - } - - public ContributionAndProof( - final tech.pegasys.teku.spec.datastructures.operations.versions.altair.ContributionAndProof - contributionAndProof) { - this( - contributionAndProof.getAggregatorIndex(), - new BLSSignature(contributionAndProof.getSelectionProof()), - new SyncCommitteeContribution(contributionAndProof.getContribution())); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final ContributionAndProof that = (ContributionAndProof) o; - return Objects.equals(aggregatorIndex, that.aggregatorIndex) - && Objects.equals(selectionProof, that.selectionProof) - && Objects.equals(contribution, that.contribution); - } - - @Override - public int hashCode() { - return Objects.hash(aggregatorIndex, selectionProof, contribution); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SignedBeaconBlockAltair.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SignedBeaconBlockAltair.java deleted file mode 100644 index c9c4c28a58b..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SignedBeaconBlockAltair.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBeaconBlockAltair extends SignedBeaconBlock implements SignedBlock { - private final BeaconBlockAltair message; - - public SignedBeaconBlockAltair( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - this.message = new BeaconBlockAltair(internalBlock.getMessage()); - } - - @Override - public BeaconBlockAltair getMessage() { - return message; - } - - @JsonCreator - public SignedBeaconBlockAltair( - @JsonProperty("message") final BeaconBlockAltair message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - this.message = message; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SignedContributionAndProof.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SignedContributionAndProof.java deleted file mode 100644 index dee88572145..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SignedContributionAndProof.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import tech.pegasys.teku.api.schema.BLSSignature; - -public class SignedContributionAndProof { - - @JsonProperty("message") - public final ContributionAndProof message; - - @JsonProperty("signature") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - @JsonCreator - public SignedContributionAndProof( - @JsonProperty("message") final ContributionAndProof message, - @JsonProperty("signature") final BLSSignature signature) { - this.message = message; - this.signature = signature; - } - - public SignedContributionAndProof( - final tech.pegasys.teku.spec.datastructures.operations.versions.altair - .SignedContributionAndProof - proof) { - this.message = new ContributionAndProof(proof.getMessage()); - this.signature = new BLSSignature(proof.getSignature()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final SignedContributionAndProof that = (SignedContributionAndProof) o; - return Objects.equals(message, that.message) && Objects.equals(signature, that.signature); - } - - @Override - public int hashCode() { - return Objects.hash(message, signature); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncAggregate.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncAggregate.java deleted file mode 100644 index 85bacb8759d..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncAggregate.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES_SSZ; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import org.apache.tuweni.bytes.Bytes; -import tech.pegasys.teku.api.schema.BLSSignature; - -public class SyncAggregate { - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES_SSZ) - @JsonProperty("sync_committee_bits") - public Bytes syncCommitteeBits; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - @JsonProperty("sync_committee_signature") - public final BLSSignature syncCommitteeSignature; - - @JsonCreator - public SyncAggregate( - @JsonProperty("sync_committee_bits") final Bytes syncCommitteeBits, - @JsonProperty("sync_committee_signature") final BLSSignature syncCommitteeSignature) { - this.syncCommitteeBits = syncCommitteeBits; - this.syncCommitteeSignature = syncCommitteeSignature; - } - - public SyncAggregate( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.SyncAggregate - aggregate) { - this.syncCommitteeSignature = - new BLSSignature(aggregate.getSyncCommitteeSignature().getSignature()); - this.syncCommitteeBits = aggregate.getSyncCommitteeBits().sszSerialize(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommittee.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommittee.java deleted file mode 100644 index 4039b090057..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommittee.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES48; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import java.util.Objects; -import tech.pegasys.teku.api.schema.BLSPubKey; -import tech.pegasys.teku.spec.datastructures.state.SyncCommittee.SyncCommitteeSchema; -import tech.pegasys.teku.spec.datastructures.type.SszPublicKey; - -public class SyncCommittee { - @JsonProperty("pubkeys") - @ArraySchema( - schema = @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES48)) - public final List pubkeys; - - @JsonProperty("aggregate_pubkey") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES48) - public final BLSPubKey aggregatePubkey; - - @JsonCreator - public SyncCommittee( - @JsonProperty("pubkeys") final List pubkeys, - @JsonProperty("aggregate_pubkey") final BLSPubKey aggregatePubkey) { - this.pubkeys = pubkeys; - this.aggregatePubkey = aggregatePubkey; - } - - public SyncCommittee(final tech.pegasys.teku.spec.datastructures.state.SyncCommittee committee) { - pubkeys = - committee.getPubkeys().asList().stream() - .map(k -> new BLSPubKey(k.getBLSPublicKey())) - .toList(); - aggregatePubkey = new BLSPubKey(committee.getAggregatePubkey().getBLSPublicKey()); - } - - public tech.pegasys.teku.spec.datastructures.state.SyncCommittee asInternalSyncCommittee( - final SyncCommitteeSchema schema) { - SszPublicKey aggregate = new SszPublicKey(aggregatePubkey.asBLSPublicKey()); - List committee = - pubkeys.stream().map(key -> new SszPublicKey(key.asBLSPublicKey())).toList(); - return schema.create(committee, aggregate); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof SyncCommittee)) { - return false; - } - SyncCommittee that = (SyncCommittee) o; - return Objects.equals(pubkeys, that.pubkeys) - && Objects.equals(aggregatePubkey, that.aggregatePubkey); - } - - @Override - public int hashCode() { - return Objects.hash(pubkeys, aggregatePubkey); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeContribution.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeContribution.java deleted file mode 100644 index 1d5e7fa2b9a..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeContribution.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES_SSZ; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.datastructures.operations.versions.altair.SyncCommitteeContributionSchema; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsAltair; - -public class SyncCommitteeContribution { - @JsonProperty("slot") - @Schema(type = "string", format = "uint64") - public final UInt64 slot; - - @JsonProperty("beacon_block_root") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 beaconBlockRoot; - - @JsonProperty("subcommittee_index") - @Schema(type = "string", format = "uint64") - public final UInt64 subcommitteeIndex; - - @JsonProperty("aggregation_bits") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES_SSZ) - public final Bytes aggregationBits; - - @JsonProperty("signature") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - @JsonCreator - public SyncCommitteeContribution( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("beacon_block_root") final Bytes32 beaconBlockRoot, - @JsonProperty("subcommittee_index") final UInt64 subcommitteeIndex, - @JsonProperty("aggregation_bits") final Bytes aggregationBits, - @JsonProperty("signature") final BLSSignature signature) { - this.slot = slot; - this.beaconBlockRoot = beaconBlockRoot; - this.subcommitteeIndex = subcommitteeIndex; - this.aggregationBits = aggregationBits; - this.signature = signature; - } - - public SyncCommitteeContribution( - final tech.pegasys.teku.spec.datastructures.operations.versions.altair - .SyncCommitteeContribution - contribution) { - this( - contribution.getSlot(), - contribution.getBeaconBlockRoot(), - contribution.getSubcommitteeIndex(), - contribution.getAggregationBits().sszSerialize(), - new BLSSignature(contribution.getSignature())); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final SyncCommitteeContribution that = (SyncCommitteeContribution) o; - return Objects.equals(slot, that.slot) - && Objects.equals(beaconBlockRoot, that.beaconBlockRoot) - && Objects.equals(subcommitteeIndex, that.subcommitteeIndex) - && Objects.equals(aggregationBits, that.aggregationBits) - && Objects.equals(signature, that.signature); - } - - @Override - public int hashCode() { - return Objects.hash(slot, beaconBlockRoot, subcommitteeIndex, aggregationBits, signature); - } - - public static tech.pegasys.teku.spec.datastructures.operations.versions.altair - .SyncCommitteeContribution - asInternalSyncCommitteeContribution( - final Spec spec, final SyncCommitteeContribution syncCommitteeContribution) { - final SchemaDefinitionsAltair altairDefinitions = - SchemaDefinitionsAltair.required( - spec.atSlot(syncCommitteeContribution.slot).getSchemaDefinitions()); - final SyncCommitteeContributionSchema syncCommitteeContributionSchema = - altairDefinitions.getSyncCommitteeContributionSchema(); - - final SszBitvector aggregationBitsVector = - syncCommitteeContributionSchema - .getAggregationBitsSchema() - .fromBytes(syncCommitteeContribution.aggregationBits); - return spec.getSyncCommitteeUtilRequired(syncCommitteeContribution.slot) - .createSyncCommitteeContribution( - syncCommitteeContribution.slot, - syncCommitteeContribution.beaconBlockRoot, - syncCommitteeContribution.subcommitteeIndex, - aggregationBitsVector.getAllSetBits(), - syncCommitteeContribution.signature.asInternalBLSSignature()); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeMessage.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeMessage.java deleted file mode 100644 index e27e3797869..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeMessage.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsAltair; - -public class SyncCommitteeMessage { - @Schema(type = "string", format = "uint64") - @JsonProperty("slot") - public final UInt64 slot; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - @JsonProperty("beacon_block_root") - public final Bytes32 beaconBlockRoot; - - @Schema(type = "string", format = "uint64") - @JsonProperty("validator_index") - public final UInt64 validatorIndex; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - @JsonProperty("signature") - public final BLSSignature signature; - - @JsonCreator - public SyncCommitteeMessage( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("beacon_block_root") final Bytes32 beaconBlockRoot, - @JsonProperty("validator_index") final UInt64 validatorIndex, - @JsonProperty("signature") final BLSSignature signature) { - this.slot = slot; - this.beaconBlockRoot = beaconBlockRoot; - this.validatorIndex = validatorIndex; - this.signature = signature; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final SyncCommitteeMessage that = (SyncCommitteeMessage) o; - return Objects.equals(slot, that.slot) - && Objects.equals(beaconBlockRoot, that.beaconBlockRoot) - && Objects.equals(validatorIndex, that.validatorIndex) - && Objects.equals(signature, that.signature); - } - - @Override - public int hashCode() { - return Objects.hash(slot, beaconBlockRoot, validatorIndex, signature); - } - - public Optional< - tech.pegasys.teku.spec.datastructures.operations.versions.altair.SyncCommitteeMessage> - asInternalCommitteeSignature(final Spec spec) { - final Optional maybeSchema = - spec.atSlot(slot).getSchemaDefinitions().toVersionAltair(); - if (maybeSchema.isEmpty()) { - final String message = - String.format( - "Could not create sync committee signature at phase0 slot %s for validator %s", - slot, validatorIndex); - throw new IllegalArgumentException(message); - } - return maybeSchema.map( - schema -> - schema - .getSyncCommitteeMessageSchema() - .create(slot, beaconBlockRoot, validatorIndex, signature.asInternalBLSSignature())); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeSubnetSubscription.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeSubnetSubscription.java deleted file mode 100644 index a6360c0f0bd..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/altair/SyncCommitteeSubnetSubscription.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.altair; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public class SyncCommitteeSubnetSubscription { - @JsonProperty("validator_index") - @Schema(type = "string", format = "uint64") - public final UInt64 validatorIndex; - - @JsonProperty("sync_committee_indices") - @ArraySchema(schema = @Schema(type = "string", format = "uint64")) - public final List syncCommitteeIndices; - - @JsonProperty("until_epoch") - @Schema( - type = "string", - format = "uint64", - description = - "The final epoch (exclusive value) that the specified validator requires the subscription for.") - public final UInt64 untilEpoch; - - @JsonCreator - public SyncCommitteeSubnetSubscription( - @JsonProperty("validator_index") final UInt64 validatorIndex, - @JsonProperty("sync_committee_indices") final List syncCommitteeIndices, - @JsonProperty("until_epoch") final UInt64 untilEpoch) { - this.validatorIndex = validatorIndex; - this.syncCommitteeIndices = syncCommitteeIndices; - this.untilEpoch = untilEpoch; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBellatrix.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBellatrix.java deleted file mode 100644 index a438a72d04c..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBellatrix.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsBellatrix; - -public class BeaconBlockBellatrix extends BeaconBlockAltair { - - public BeaconBlockBellatrix(final BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BeaconBlockBodyBellatrix(message.getBody().toVersionBellatrix().orElseThrow())); - } - - @Override - public BeaconBlock asInternalBeaconBlock(final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return SchemaDefinitionsBellatrix.required(specVersion.getSchemaDefinitions()) - .getBeaconBlockSchema() - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @JsonProperty("body") - @Override - public BeaconBlockBodyBellatrix getBody() { - return (BeaconBlockBodyBellatrix) body; - } - - @JsonCreator - public BeaconBlockBellatrix( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposerIndex, - @JsonProperty("parent_root") final Bytes32 parentRoot, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("body") final BeaconBlockBodyBellatrix body) { - super(slot, proposerIndex, parentRoot, stateRoot, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBodyBellatrix.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBodyBellatrix.java deleted file mode 100644 index 907aeeb31a9..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconBlockBodyBellatrix.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import java.util.function.Function; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.AttesterSlashing; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.Deposit; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.ProposerSlashing; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.api.schema.altair.BeaconBlockBodyAltair; -import tech.pegasys.teku.api.schema.altair.SyncAggregate; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBodyBuilder; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.bellatrix.BeaconBlockBodySchemaBellatrix; - -public class BeaconBlockBodyBellatrix extends BeaconBlockBodyAltair { - @JsonProperty("execution_payload") - public final ExecutionPayloadBellatrix executionPayload; - - @JsonCreator - public BeaconBlockBodyBellatrix( - @JsonProperty("randao_reveal") final BLSSignature randaoReveal, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposerSlashings, - @JsonProperty("attester_slashings") final List attesterSlashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntaryExits, - @JsonProperty("sync_aggregate") final SyncAggregate syncAggregate, - @JsonProperty("execution_payload") final ExecutionPayloadBellatrix executionPayload) { - super( - randaoReveal, - eth1Data, - graffiti, - proposerSlashings, - attesterSlashings, - attestations, - deposits, - voluntaryExits, - syncAggregate); - checkNotNull(executionPayload, "Execution Payload is required for bellatrix blocks"); - this.executionPayload = executionPayload; - } - - public BeaconBlockBodyBellatrix( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.bellatrix - .BeaconBlockBodyBellatrix - message) { - super(message); - checkNotNull( - message.getExecutionPayload(), "Execution Payload is required for bellatrix blocks"); - this.executionPayload = new ExecutionPayloadBellatrix(message.getExecutionPayload()); - } - - @Override - public BeaconBlockBodySchemaBellatrix getBeaconBlockBodySchema(final SpecVersion spec) { - return (BeaconBlockBodySchemaBellatrix) - spec.getSchemaDefinitions().getBeaconBlockBodySchema(); - } - - @Override - public BeaconBlockBody asInternalBeaconBlockBody( - final SpecVersion spec, final Function> builderRef) { - return super.asInternalBeaconBlockBody( - spec, - builder -> - SafeFuture.allOf( - builderRef.apply(builder), - SafeFuture.of( - () -> - builder.executionPayload( - executionPayload.asInternalExecutionPayload(spec))))); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconPreparableProposer.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconPreparableProposer.java deleted file mode 100644 index ec55254f8f2..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconPreparableProposer.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_EXECUTION_ADDRESS; -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_EXECUTION_ADDRESS; -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_EXECUTION_ADDRESS; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.ethereum.execution.types.Eth1Address; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class BeaconPreparableProposer { - @JsonProperty("validator_index") - @Schema(type = "string", format = "uint64", example = EXAMPLE_UINT64) - public final UInt64 validator_index; - - @JsonProperty("fee_recipient") - @Schema( - type = "string", - pattern = PATTERN_EXECUTION_ADDRESS, - example = EXAMPLE_EXECUTION_ADDRESS, - description = DESCRIPTION_EXECUTION_ADDRESS) - public final Eth1Address fee_recipient; - - @JsonCreator - public BeaconPreparableProposer( - final @JsonProperty("validator_index") UInt64 validator_index, - final @JsonProperty("fee_recipient") Eth1Address fee_recipient) { - this.validator_index = validator_index; - this.fee_recipient = fee_recipient; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconStateBellatrix.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconStateBellatrix.java deleted file mode 100644 index 4137e8de9b3..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BeaconStateBellatrix.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BeaconBlockHeader; -import tech.pegasys.teku.api.schema.Checkpoint; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.Fork; -import tech.pegasys.teku.api.schema.Validator; -import tech.pegasys.teku.api.schema.altair.BeaconStateAltair; -import tech.pegasys.teku.api.schema.altair.SyncCommittee; -import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.execution.versions.bellatrix.ExecutionPayloadHeaderSchemaBellatrix; -import tech.pegasys.teku.spec.datastructures.state.SyncCommittee.SyncCommitteeSchema; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.MutableBeaconState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.bellatrix.BeaconStateSchemaBellatrix; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.bellatrix.MutableBeaconStateBellatrix; - -public class BeaconStateBellatrix extends BeaconStateAltair { - - @JsonProperty("latest_execution_payload_header") - public ExecutionPayloadHeaderBellatrix latestExecutionPayloadHeader; - - @JsonCreator - public BeaconStateBellatrix( - @JsonProperty("genesis_time") final UInt64 genesisTime, - @JsonProperty("genesis_validators_root") final Bytes32 genesisValidatorsRoot, - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("fork") final Fork fork, - @JsonProperty("latest_block_header") final BeaconBlockHeader latestBlockHeader, - @JsonProperty("block_roots") final List blockRoots, - @JsonProperty("state_roots") final List stateRoots, - @JsonProperty("historical_roots") final List historicalRoots, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("eth1_data_votes") final List eth1DataVotes, - @JsonProperty("eth1_deposit_index") final UInt64 eth1DepositIndex, - @JsonProperty("validators") final List validators, - @JsonProperty("balances") final List balances, - @JsonProperty("randao_mixes") final List randaoMixes, - @JsonProperty("slashings") final List slashings, - @JsonProperty("previous_epoch_participation") final byte[] previousEpochParticipation, - @JsonProperty("current_epoch_participation") final byte[] currentEpochParticipation, - @JsonProperty("justification_bits") final SszBitvector justificationBits, - @JsonProperty("previous_justified_checkpoint") final Checkpoint previousJustifiedCheckpoint, - @JsonProperty("current_justified_checkpoint") final Checkpoint currentJustifiedCheckpoint, - @JsonProperty("finalized_checkpoint") final Checkpoint finalizedCheckpoint, - @JsonProperty("inactivity_scores") final List inactivityScores, - @JsonProperty("current_sync_committee") final SyncCommittee currentSyncCommittee, - @JsonProperty("next_sync_committee") final SyncCommittee nextSyncCommittee, - @JsonProperty("latest_execution_payload_header") - final ExecutionPayloadHeaderBellatrix latestExecutionPayloadHeader) { - super( - genesisTime, - genesisValidatorsRoot, - slot, - fork, - latestBlockHeader, - blockRoots, - stateRoots, - historicalRoots, - eth1Data, - eth1DataVotes, - eth1DepositIndex, - validators, - balances, - randaoMixes, - slashings, - previousEpochParticipation, - currentEpochParticipation, - justificationBits, - previousJustifiedCheckpoint, - currentJustifiedCheckpoint, - finalizedCheckpoint, - inactivityScores, - currentSyncCommittee, - nextSyncCommittee); - this.latestExecutionPayloadHeader = latestExecutionPayloadHeader; - } - - @Override - protected void applyAdditionalFields( - final MutableBeaconState state, final SpecVersion specVersion) { - state - .toMutableVersionBellatrix() - .ifPresent( - beaconStateBellatrix -> - applyBellatrixFields( - beaconStateBellatrix, - BeaconStateSchemaBellatrix.required(state.getBeaconStateSchema()) - .getCurrentSyncCommitteeSchema(), - BeaconStateSchemaBellatrix.required(beaconStateBellatrix.getBeaconStateSchema()) - .getLastExecutionPayloadHeaderSchema(), - this)); - } - - public static void applyBellatrixFields( - final MutableBeaconStateBellatrix state, - final SyncCommitteeSchema syncCommitteeSchema, - final ExecutionPayloadHeaderSchemaBellatrix executionPayloadHeaderSchema, - final BeaconStateBellatrix instance) { - BeaconStateAltair.applyAltairFields(state, syncCommitteeSchema, instance); - - state.setLatestExecutionPayloadHeader( - instance.latestExecutionPayloadHeader.asInternalExecutionPayloadHeader( - executionPayloadHeaderSchema)); - } - - public BeaconStateBellatrix(final BeaconState beaconState) { - super(beaconState); - final tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.bellatrix - .BeaconStateBellatrix - bellatrix = beaconState.toVersionBellatrix().orElseThrow(); - this.latestExecutionPayloadHeader = - new ExecutionPayloadHeaderBellatrix(bellatrix.getLatestExecutionPayloadHeader()); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof BeaconStateBellatrix)) { - return false; - } - if (!super.equals(o)) { - return false; - } - BeaconStateBellatrix that = (BeaconStateBellatrix) o; - return Objects.equals(latestExecutionPayloadHeader, that.latestExecutionPayloadHeader); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), latestExecutionPayloadHeader); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBeaconBlockBodyBellatrix.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBeaconBlockBodyBellatrix.java deleted file mode 100644 index ac6fd3c473c..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBeaconBlockBodyBellatrix.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.AttesterSlashing; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.Deposit; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.ProposerSlashing; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.api.schema.altair.BeaconBlockBodyAltair; -import tech.pegasys.teku.api.schema.altair.SyncAggregate; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.bellatrix.BeaconBlockBodyBellatrix; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.bellatrix.BlindedBeaconBlockBodySchemaBellatrix; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeaderSchema; - -public class BlindedBeaconBlockBodyBellatrix extends BeaconBlockBodyAltair { - @JsonProperty("execution_payload_header") - public final ExecutionPayloadHeaderBellatrix executionPayloadHeader; - - @JsonCreator - public BlindedBeaconBlockBodyBellatrix( - @JsonProperty("randao_reveal") final BLSSignature randaoReveal, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposerSlashings, - @JsonProperty("attester_slashings") final List attesterSlashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntaryExits, - @JsonProperty("sync_aggregate") final SyncAggregate syncAggregate, - @JsonProperty("execution_payload_header") - final ExecutionPayloadHeaderBellatrix executionPayloadHeader) { - super( - randaoReveal, - eth1Data, - graffiti, - proposerSlashings, - attesterSlashings, - attestations, - deposits, - voluntaryExits, - syncAggregate); - checkNotNull( - executionPayloadHeader, - "Execution Payload Header is required for bellatrix blinded blocks"); - this.executionPayloadHeader = executionPayloadHeader; - } - - public BlindedBeaconBlockBodyBellatrix( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.bellatrix - .BlindedBeaconBlockBodyBellatrix - blockBody) { - super(blockBody); - this.executionPayloadHeader = - new ExecutionPayloadHeaderBellatrix(blockBody.getExecutionPayloadHeader()); - } - - public BlindedBeaconBlockBodyBellatrix(final BeaconBlockBodyBellatrix blockBody) { - super(blockBody); - this.executionPayloadHeader = - new ExecutionPayloadHeaderBellatrix(blockBody.getExecutionPayload()); - } - - @Override - public BlindedBeaconBlockBodySchemaBellatrix getBeaconBlockBodySchema(final SpecVersion spec) { - return (BlindedBeaconBlockBodySchemaBellatrix) - spec.getSchemaDefinitions().getBlindedBeaconBlockBodySchema(); - } - - @Override - public boolean isBlinded() { - return true; - } - - @Override - public BeaconBlockBody asInternalBeaconBlockBody(final SpecVersion spec) { - - final ExecutionPayloadHeaderSchema executionPayloadHeaderSchema = - getBeaconBlockBodySchema(spec).getExecutionPayloadHeaderSchema(); - - return super.asInternalBeaconBlockBody( - spec, - builder -> { - builder.executionPayloadHeader( - executionPayloadHeader.asInternalExecutionPayloadHeader( - executionPayloadHeaderSchema)); - return SafeFuture.COMPLETE; - }); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBlockBellatrix.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBlockBellatrix.java deleted file mode 100644 index 19ca5fc796d..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/BlindedBlockBellatrix.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockSchema; - -public class BlindedBlockBellatrix extends BeaconBlockAltair { - - public BlindedBlockBellatrix(final BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BlindedBeaconBlockBodyBellatrix( - message.getBody().toBlindedVersionBellatrix().orElseThrow())); - } - - @Override - public BeaconBlockSchema getBeaconBlockSchema(final SpecVersion spec) { - return spec.getSchemaDefinitions().getBlindedBeaconBlockSchema(); - } - - @Override - public BeaconBlock asInternalBeaconBlock(final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return getBeaconBlockSchema(specVersion) - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @JsonProperty("body") - @Override - public BlindedBeaconBlockBodyBellatrix getBody() { - return (BlindedBeaconBlockBodyBellatrix) body; - } - - @JsonCreator - public BlindedBlockBellatrix( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposerIndex, - @JsonProperty("parent_root") final Bytes32 parentRoot, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("body") final BlindedBeaconBlockBodyBellatrix body) { - super(slot, proposerIndex, parentRoot, stateRoot, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadBellatrix.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadBellatrix.java deleted file mode 100644 index fe9e23f1193..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadBellatrix.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes32; -import org.apache.tuweni.units.bigints.UInt256; -import tech.pegasys.teku.api.schema.ExecutionPayload; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadBuilder; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadSchema; -import tech.pegasys.teku.spec.datastructures.execution.Transaction; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsBellatrix; - -public class ExecutionPayloadBellatrix extends ExecutionPayloadCommon implements ExecutionPayload { - - @ArraySchema(schema = @Schema(type = "string", format = "byte")) - public final List transactions; - - @JsonCreator - public ExecutionPayloadBellatrix( - final @JsonProperty("parent_hash") Bytes32 parentHash, - final @JsonProperty("fee_recipient") Bytes20 feeRecipient, - final @JsonProperty("state_root") Bytes32 stateRoot, - final @JsonProperty("receipts_root") Bytes32 receiptsRoot, - final @JsonProperty("logs_bloom") Bytes logsBloom, - final @JsonProperty("prev_randao") Bytes32 prevRandao, - final @JsonProperty("block_number") UInt64 blockNumber, - final @JsonProperty("gas_limit") UInt64 gasLimit, - final @JsonProperty("gas_used") UInt64 gasUsed, - final @JsonProperty("timestamp") UInt64 timestamp, - final @JsonProperty("extra_data") Bytes extraData, - final @JsonProperty("base_fee_per_gas") UInt256 baseFeePerGas, - final @JsonProperty("block_hash") Bytes32 blockHash, - final @JsonProperty("transactions") List transactions) { - super( - parentHash, - feeRecipient, - stateRoot, - receiptsRoot, - logsBloom, - prevRandao, - blockNumber, - gasLimit, - gasUsed, - timestamp, - extraData, - baseFeePerGas, - blockHash); - this.transactions = transactions != null ? transactions : Collections.emptyList(); - } - - public ExecutionPayloadBellatrix( - final tech.pegasys.teku.spec.datastructures.execution.ExecutionPayload executionPayload) { - super( - executionPayload.getParentHash(), - executionPayload.getFeeRecipient(), - executionPayload.getStateRoot(), - executionPayload.getReceiptsRoot(), - executionPayload.getLogsBloom(), - executionPayload.getPrevRandao(), - executionPayload.getBlockNumber(), - executionPayload.getGasLimit(), - executionPayload.getGasUsed(), - executionPayload.getTimestamp(), - executionPayload.getExtraData(), - executionPayload.getBaseFeePerGas(), - executionPayload.getBlockHash()); - this.transactions = - executionPayload.getTransactions().stream().map(Transaction::getBytes).toList(); - } - - public tech.pegasys.teku.spec.datastructures.execution.ExecutionPayload - asInternalExecutionPayload(final Spec spec, final UInt64 slot) { - return asInternalExecutionPayload(spec.atSlot(slot)); - } - - public tech.pegasys.teku.spec.datastructures.execution.ExecutionPayload - asInternalExecutionPayload(final SpecVersion spec) { - final Optional maybeSchema = - spec.getSchemaDefinitions().toVersionBellatrix(); - - if (maybeSchema.isEmpty()) { - throw new IllegalArgumentException( - "Could not create execution payload at pre-bellatrix slot"); - } - - final ExecutionPayloadSchema executionPayloadSchema = - maybeSchema.get().getExecutionPayloadSchema(); - return executionPayloadSchema.createExecutionPayload( - builder -> applyToBuilder(executionPayloadSchema, builder)); - } - - protected ExecutionPayloadBuilder applyToBuilder( - final ExecutionPayloadSchema executionPayloadSchema, - final ExecutionPayloadBuilder builder) { - return builder - .parentHash(parentHash) - .feeRecipient(feeRecipient) - .stateRoot(stateRoot) - .receiptsRoot(receiptsRoot) - .logsBloom(logsBloom) - .prevRandao(prevRandao) - .blockNumber(blockNumber) - .gasLimit(gasLimit) - .gasUsed(gasUsed) - .timestamp(timestamp) - .extraData(extraData) - .baseFeePerGas(baseFeePerGas) - .blockHash(blockHash) - .transactions(transactions); - } - - @Override - public Optional toVersionBellatrix() { - return Optional.of(this); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - if (!super.equals(o)) { - return false; - } - final ExecutionPayloadBellatrix that = (ExecutionPayloadBellatrix) o; - return Objects.equals(transactions, that.transactions); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), transactions); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("parentHash", parentHash) - .add("feeRecipient", feeRecipient) - .add("stateRoot", stateRoot) - .add("receiptsRoot", receiptsRoot) - .add("logsBloom", logsBloom) - .add("prevRandao", prevRandao) - .add("blockNumber", blockNumber) - .add("gasLimit", gasLimit) - .add("gasUsed", gasUsed) - .add("timestamp", timestamp) - .add("extraData", extraData) - .add("baseFeePerGas", baseFeePerGas) - .add("blockHash", blockHash) - .add("transactions", transactions) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadCommon.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadCommon.java deleted file mode 100644 index d3a7cb9f868..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadCommon.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES20; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES20; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES32; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes32; -import org.apache.tuweni.units.bigints.UInt256; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -public abstract class ExecutionPayloadCommon { - - @JsonProperty("parent_hash") - @Schema( - type = "string", - format = "byte", - pattern = PATTERN_BYTES32, - description = DESCRIPTION_BYTES32) - public final Bytes32 parentHash; - - @JsonProperty("fee_recipient") - @Schema( - type = "string", - format = "byte", - pattern = PATTERN_BYTES20, - description = DESCRIPTION_BYTES20) - public final Bytes20 feeRecipient; - - @JsonProperty("state_root") - @Schema( - type = "string", - format = "byte", - pattern = PATTERN_BYTES32, - description = DESCRIPTION_BYTES32) - public final Bytes32 stateRoot; - - @JsonProperty("receipts_root") - @Schema( - type = "string", - format = "byte", - pattern = PATTERN_BYTES32, - description = DESCRIPTION_BYTES32) - public final Bytes32 receiptsRoot; - - @JsonProperty("logs_bloom") - @Schema(type = "string", format = "byte") - public final Bytes logsBloom; - - @JsonProperty("prev_randao") - @Schema( - type = "string", - format = "byte", - pattern = PATTERN_BYTES32, - description = DESCRIPTION_BYTES32) - public final Bytes32 prevRandao; - - @JsonProperty("block_number") - @Schema(type = "string", format = "uint64") - public final UInt64 blockNumber; - - @JsonProperty("gas_limit") - @Schema(type = "string", format = "uint64") - public final UInt64 gasLimit; - - @JsonProperty("gas_used") - @Schema(type = "string", format = "uint64") - public final UInt64 gasUsed; - - @Schema(type = "string", format = "uint64") - public final UInt64 timestamp; - - @JsonProperty("extra_data") - @Schema(type = "string", format = "byte") - public final Bytes extraData; - - @JsonProperty("base_fee_per_gas") - @Schema(type = "string", format = "uint256") - public final UInt256 baseFeePerGas; - - @JsonProperty("block_hash") - @Schema( - type = "string", - format = "byte", - pattern = PATTERN_BYTES32, - description = DESCRIPTION_BYTES32) - public final Bytes32 blockHash; - - public ExecutionPayloadCommon( - final @JsonProperty("parent_hash") Bytes32 parentHash, - final @JsonProperty("fee_recipient") Bytes20 feeRecipient, - final @JsonProperty("state_root") Bytes32 stateRoot, - final @JsonProperty("receipts_root") Bytes32 receiptsRoot, - final @JsonProperty("logs_bloom") Bytes logsBloom, - final @JsonProperty("prev_randao") Bytes32 prevRandao, - final @JsonProperty("block_number") UInt64 blockNumber, - final @JsonProperty("gas_limit") UInt64 gasLimit, - final @JsonProperty("gas_used") UInt64 gasUsed, - final @JsonProperty("timestamp") UInt64 timestamp, - final @JsonProperty("extra_data") Bytes extraData, - final @JsonProperty("base_fee_per_gas") UInt256 baseFeePerGas, - final @JsonProperty("block_hash") Bytes32 blockHash) { - this.parentHash = parentHash; - this.feeRecipient = feeRecipient; - this.stateRoot = stateRoot; - this.receiptsRoot = receiptsRoot; - this.logsBloom = logsBloom; - this.prevRandao = prevRandao; - this.blockNumber = blockNumber; - this.gasLimit = gasLimit; - this.gasUsed = gasUsed; - this.timestamp = timestamp; - this.extraData = extraData; - this.baseFeePerGas = baseFeePerGas; - this.blockHash = blockHash; - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final ExecutionPayloadCommon that = (ExecutionPayloadCommon) o; - return Objects.equals(parentHash, that.parentHash) - && Objects.equals(feeRecipient, that.feeRecipient) - && Objects.equals(stateRoot, that.stateRoot) - && Objects.equals(receiptsRoot, that.receiptsRoot) - && Objects.equals(logsBloom, that.logsBloom) - && Objects.equals(prevRandao, that.prevRandao) - && Objects.equals(blockNumber, that.blockNumber) - && Objects.equals(gasLimit, that.gasLimit) - && Objects.equals(gasUsed, that.gasUsed) - && Objects.equals(timestamp, that.timestamp) - && Objects.equals(extraData, that.extraData) - && Objects.equals(baseFeePerGas, that.baseFeePerGas) - && Objects.equals(blockHash, that.blockHash); - } - - @Override - public int hashCode() { - return Objects.hash( - parentHash, - feeRecipient, - stateRoot, - receiptsRoot, - logsBloom, - prevRandao, - blockNumber, - gasLimit, - gasUsed, - timestamp, - extraData, - baseFeePerGas, - blockHash); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("parentHash", parentHash) - .add("feeRecipient", feeRecipient) - .add("stateRoot", stateRoot) - .add("receiptsRoot", receiptsRoot) - .add("logsBloom", logsBloom) - .add("prevRandao", prevRandao) - .add("blockNumber", blockNumber) - .add("gasLimit", gasLimit) - .add("gasUsed", gasUsed) - .add("timestamp", timestamp) - .add("extraData", extraData) - .add("baseFeePerGas", baseFeePerGas) - .add("blockHash", blockHash) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadHeaderBellatrix.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadHeaderBellatrix.java deleted file mode 100644 index ee0d49477ef..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/ExecutionPayloadHeaderBellatrix.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes32; -import org.apache.tuweni.units.bigints.UInt256; -import tech.pegasys.teku.api.schema.ExecutionPayloadHeader; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayload; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeaderSchema; - -public class ExecutionPayloadHeaderBellatrix extends ExecutionPayloadCommon - implements ExecutionPayloadHeader { - - @JsonProperty("transactions_root") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 transactionsRoot; - - @JsonCreator - public ExecutionPayloadHeaderBellatrix( - final @JsonProperty("parent_hash") Bytes32 parentHash, - final @JsonProperty("fee_recipient") Bytes20 feeRecipient, - final @JsonProperty("state_root") Bytes32 stateRoot, - final @JsonProperty("receipts_root") Bytes32 receiptsRoot, - final @JsonProperty("logs_bloom") Bytes logsBloom, - final @JsonProperty("prev_randao") Bytes32 prevRandao, - final @JsonProperty("block_number") UInt64 blockNumber, - final @JsonProperty("gas_limit") UInt64 gasLimit, - final @JsonProperty("gas_used") UInt64 gasUsed, - final @JsonProperty("timestamp") UInt64 timestamp, - final @JsonProperty("extra_data") Bytes extraData, - final @JsonProperty("base_fee_per_gas") UInt256 baseFeePerGas, - final @JsonProperty("block_hash") Bytes32 blockHash, - final @JsonProperty("transactions_root") Bytes32 transactionsRoot) { - super( - parentHash, - feeRecipient, - stateRoot, - receiptsRoot, - logsBloom, - prevRandao, - blockNumber, - gasLimit, - gasUsed, - timestamp, - extraData, - baseFeePerGas, - blockHash); - this.transactionsRoot = transactionsRoot; - } - - public ExecutionPayloadHeaderBellatrix( - final tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeader - executionPayloadHeader) { - super( - executionPayloadHeader.getParentHash(), - executionPayloadHeader.getFeeRecipient(), - executionPayloadHeader.getStateRoot(), - executionPayloadHeader.getReceiptsRoot(), - executionPayloadHeader.getLogsBloom(), - executionPayloadHeader.getPrevRandao(), - executionPayloadHeader.getBlockNumber(), - executionPayloadHeader.getGasLimit(), - executionPayloadHeader.getGasUsed(), - executionPayloadHeader.getTimestamp(), - executionPayloadHeader.getExtraData(), - executionPayloadHeader.getBaseFeePerGas(), - executionPayloadHeader.getBlockHash()); - this.transactionsRoot = executionPayloadHeader.getTransactionsRoot(); - } - - public ExecutionPayloadHeaderBellatrix(final ExecutionPayload executionPayload) { - super( - executionPayload.getParentHash(), - executionPayload.getFeeRecipient(), - executionPayload.getStateRoot(), - executionPayload.getReceiptsRoot(), - executionPayload.getLogsBloom(), - executionPayload.getPrevRandao(), - executionPayload.getBlockNumber(), - executionPayload.getGasLimit(), - executionPayload.getGasUsed(), - executionPayload.getTimestamp(), - executionPayload.getExtraData(), - executionPayload.getBaseFeePerGas(), - executionPayload.getBlockHash()); - this.transactionsRoot = executionPayload.getTransactions().hashTreeRoot(); - } - - @Override - public tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeader - asInternalExecutionPayloadHeader(final ExecutionPayloadHeaderSchema schema) { - return schema.createExecutionPayloadHeader( - payloadBuilder -> - payloadBuilder - .parentHash(parentHash) - .feeRecipient(feeRecipient) - .stateRoot(stateRoot) - .receiptsRoot(receiptsRoot) - .logsBloom(logsBloom) - .prevRandao(prevRandao) - .blockNumber(blockNumber) - .gasLimit(gasLimit) - .gasUsed(gasUsed) - .timestamp(timestamp) - .extraData(extraData) - .baseFeePerGas(baseFeePerGas) - .blockHash(blockHash) - .transactionsRoot(transactionsRoot)); - } - - @Override - public Optional toVersionBellatrix() { - return Optional.of(this); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - if (!super.equals(o)) { - return false; - } - final ExecutionPayloadHeaderBellatrix that = (ExecutionPayloadHeaderBellatrix) o; - return Objects.equals(transactionsRoot, that.transactionsRoot); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), transactionsRoot); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("parentHash", parentHash) - .add("feeRecipient", feeRecipient) - .add("stateRoot", stateRoot) - .add("receiptsRoot", receiptsRoot) - .add("logsBloom", logsBloom) - .add("prevRandao", prevRandao) - .add("blockNumber", blockNumber) - .add("gasLimit", gasLimit) - .add("gasUsed", gasUsed) - .add("timestamp", timestamp) - .add("extraData", extraData) - .add("baseFeePerGas", baseFeePerGas) - .add("blockHash", blockHash) - .add("transactionsRoot", transactionsRoot) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/SignedBeaconBlockBellatrix.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/SignedBeaconBlockBellatrix.java deleted file mode 100644 index ad979e67be9..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/SignedBeaconBlockBellatrix.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBeaconBlockBellatrix extends SignedBeaconBlock implements SignedBlock { - private final BeaconBlockBellatrix message; - - public SignedBeaconBlockBellatrix( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - this.message = new BeaconBlockBellatrix(internalBlock.getMessage()); - } - - @Override - public BeaconBlockBellatrix getMessage() { - return message; - } - - @JsonCreator - public SignedBeaconBlockBellatrix( - @JsonProperty("message") final BeaconBlockBellatrix message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - this.message = message; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/SignedBlindedBeaconBlockBellatrix.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/SignedBlindedBeaconBlockBellatrix.java deleted file mode 100644 index 078a1f89f22..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/bellatrix/SignedBlindedBeaconBlockBellatrix.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.bellatrix; - -import static com.google.common.base.Preconditions.checkArgument; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBlindedBeaconBlockBellatrix extends SignedBeaconBlock implements SignedBlock { - private final BlindedBlockBellatrix message; - - public SignedBlindedBeaconBlockBellatrix( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - checkArgument( - internalBlock.getMessage().getBody().isBlinded(), "requires a signed blinded beacon block"); - this.message = new BlindedBlockBellatrix(internalBlock.getMessage()); - } - - @Override - public BlindedBlockBellatrix getMessage() { - return message; - } - - @JsonCreator - public SignedBlindedBeaconBlockBellatrix( - @JsonProperty("message") final BlindedBlockBellatrix message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - this.message = message; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconBlockBodyCapella.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconBlockBodyCapella.java deleted file mode 100644 index edd96192d7c..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconBlockBodyCapella.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.AttesterSlashing; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.Deposit; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.ProposerSlashing; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.api.schema.altair.BeaconBlockBodyAltair; -import tech.pegasys.teku.api.schema.altair.SyncAggregate; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.capella.BeaconBlockBodySchemaCapella; - -public class BeaconBlockBodyCapella extends BeaconBlockBodyAltair { - - @JsonProperty("execution_payload") - public final ExecutionPayloadCapella executionPayload; - - @JsonProperty("bls_to_execution_changes") - public final List blsToExecutionChanges; - - @JsonCreator - public BeaconBlockBodyCapella( - @JsonProperty("randao_reveal") final BLSSignature randaoReveal, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposerSlashings, - @JsonProperty("attester_slashings") final List attesterSlashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntaryExits, - @JsonProperty("sync_aggregate") final SyncAggregate syncAggregate, - @JsonProperty("execution_payload") final ExecutionPayloadCapella executionPayload, - @JsonProperty("bls_to_execution_changes") - final List blsToExecutionChanges) { - super( - randaoReveal, - eth1Data, - graffiti, - proposerSlashings, - attesterSlashings, - attestations, - deposits, - voluntaryExits, - syncAggregate); - checkNotNull(executionPayload, "Execution Payload is required for capella blocks"); - this.executionPayload = executionPayload; - checkNotNull(blsToExecutionChanges, "BlsToExecutionChanges is required for capella blocks"); - this.blsToExecutionChanges = blsToExecutionChanges; - } - - public BeaconBlockBodyCapella( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.capella - .BeaconBlockBodyCapella - message) { - super(message); - checkNotNull(message.getExecutionPayload(), "Execution Payload is required for capella blocks"); - this.executionPayload = new ExecutionPayloadCapella(message.getExecutionPayload()); - checkNotNull( - message.getBlsToExecutionChanges(), "BlsToExecutionChanges is required for capella blocks"); - this.blsToExecutionChanges = - message.getBlsToExecutionChanges().stream().map(SignedBlsToExecutionChange::new).toList(); - } - - @Override - public BeaconBlockBodySchemaCapella getBeaconBlockBodySchema(final SpecVersion spec) { - return (BeaconBlockBodySchemaCapella) spec.getSchemaDefinitions().getBeaconBlockBodySchema(); - } - - @Override - public BeaconBlockBody asInternalBeaconBlockBody(final SpecVersion spec) { - final SszListSchema< - tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange, ?> - blsToExecutionChangesSchema = - getBeaconBlockBodySchema(spec).getBlsToExecutionChangesSchema(); - - return super.asInternalBeaconBlockBody( - spec, - builder -> { - builder.executionPayload(executionPayload.asInternalExecutionPayload(spec)); - builder.blsToExecutionChanges( - this.blsToExecutionChanges.stream() - .map(b -> b.asInternalSignedBlsToExecutionChange(spec)) - .collect(blsToExecutionChangesSchema.collector())); - return SafeFuture.COMPLETE; - }); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconBlockCapella.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconBlockCapella.java deleted file mode 100644 index 848ab6c4471..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconBlockCapella.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsCapella; - -public class BeaconBlockCapella extends BeaconBlockAltair { - - public BeaconBlockCapella(final BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BeaconBlockBodyCapella(message.getBody().toVersionCapella().orElseThrow())); - } - - @Override - public BeaconBlock asInternalBeaconBlock(final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return SchemaDefinitionsCapella.required(specVersion.getSchemaDefinitions()) - .getBeaconBlockSchema() - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @JsonProperty("body") - @Override - public BeaconBlockBodyCapella getBody() { - return (BeaconBlockBodyCapella) body; - } - - @JsonCreator - public BeaconBlockCapella( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposerIndex, - @JsonProperty("parent_root") final Bytes32 parentRoot, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("body") final BeaconBlockBodyCapella body) { - super(slot, proposerIndex, parentRoot, stateRoot, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconStateCapella.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconStateCapella.java deleted file mode 100644 index 2ab2d60a752..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BeaconStateCapella.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BeaconBlockHeader; -import tech.pegasys.teku.api.schema.Checkpoint; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.Fork; -import tech.pegasys.teku.api.schema.Validator; -import tech.pegasys.teku.api.schema.altair.BeaconStateAltair; -import tech.pegasys.teku.api.schema.altair.SyncCommittee; -import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.execution.versions.capella.ExecutionPayloadHeaderSchemaCapella; -import tech.pegasys.teku.spec.datastructures.state.SyncCommittee.SyncCommitteeSchema; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.MutableBeaconState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.capella.BeaconStateSchemaCapella; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.capella.MutableBeaconStateCapella; - -public class BeaconStateCapella extends BeaconStateAltair { - - @JsonProperty("latest_execution_payload_header") - public ExecutionPayloadHeaderCapella latestExecutionPayloadHeader; - - @JsonProperty("next_withdrawal_index") - @Schema(type = "string", example = EXAMPLE_UINT64) - public final UInt64 nextWithdrawalIndex; - - @JsonProperty("next_withdrawal_validator_index") - @Schema(type = "string", example = EXAMPLE_UINT64) - public final UInt64 nextWithdrawalValidatorIndex; - - @JsonProperty("historical_summaries") - public final List historicalSummaries; - - public BeaconStateCapella( - @JsonProperty("genesis_time") final UInt64 genesisTime, - @JsonProperty("genesis_validators_root") final Bytes32 genesisValidatorsRoot, - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("fork") final Fork fork, - @JsonProperty("latest_block_header") final BeaconBlockHeader latestBlockHeader, - @JsonProperty("block_roots") final List blockRoots, - @JsonProperty("state_roots") final List stateRoots, - @JsonProperty("historical_roots") final List historicalRoots, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("eth1_data_votes") final List eth1DataVotes, - @JsonProperty("eth1_deposit_index") final UInt64 eth1DepositIndex, - @JsonProperty("validators") final List validators, - @JsonProperty("balances") final List balances, - @JsonProperty("randao_mixes") final List randaoMixes, - @JsonProperty("slashings") final List slashings, - @JsonProperty("previous_epoch_participation") final byte[] previousEpochParticipation, - @JsonProperty("current_epoch_participation") final byte[] currentEpochParticipation, - @JsonProperty("justification_bits") final SszBitvector justificationBits, - @JsonProperty("previous_justified_checkpoint") final Checkpoint previousJustifiedCheckpoint, - @JsonProperty("current_justified_checkpoint") final Checkpoint currentJustifiedCheckpoint, - @JsonProperty("finalized_checkpoint") final Checkpoint finalizedCheckpoint, - @JsonProperty("inactivity_scores") final List inactivityScores, - @JsonProperty("current_sync_committee") final SyncCommittee currentSyncCommittee, - @JsonProperty("next_sync_committee") final SyncCommittee nextSyncCommittee, - @JsonProperty("latest_execution_payload_header") - final ExecutionPayloadHeaderCapella latestExecutionPayloadHeader, - @JsonProperty("next_withdrawal_index") final UInt64 nextWithdrawalIndex, - @JsonProperty("next_withdrawal_validator_index") final UInt64 nextWithdrawalValidatorIndex, - @JsonProperty("historical_summaries") final List historicalSummaries) { - super( - genesisTime, - genesisValidatorsRoot, - slot, - fork, - latestBlockHeader, - blockRoots, - stateRoots, - historicalRoots, - eth1Data, - eth1DataVotes, - eth1DepositIndex, - validators, - balances, - randaoMixes, - slashings, - previousEpochParticipation, - currentEpochParticipation, - justificationBits, - previousJustifiedCheckpoint, - currentJustifiedCheckpoint, - finalizedCheckpoint, - inactivityScores, - currentSyncCommittee, - nextSyncCommittee); - this.latestExecutionPayloadHeader = latestExecutionPayloadHeader; - this.nextWithdrawalIndex = nextWithdrawalIndex; - this.nextWithdrawalValidatorIndex = nextWithdrawalValidatorIndex; - this.historicalSummaries = historicalSummaries; - } - - public BeaconStateCapella(final BeaconState beaconState) { - super(beaconState); - final tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.capella - .BeaconStateCapella - capella = beaconState.toVersionCapella().orElseThrow(); - this.latestExecutionPayloadHeader = - new ExecutionPayloadHeaderCapella(capella.getLatestExecutionPayloadHeader()); - this.nextWithdrawalIndex = capella.getNextWithdrawalIndex(); - this.nextWithdrawalValidatorIndex = capella.getNextWithdrawalValidatorIndex(); - this.historicalSummaries = - capella.getHistoricalSummaries().stream().map(HistoricalSummary::new).toList(); - } - - @Override - protected void applyAdditionalFields( - final MutableBeaconState state, final SpecVersion specVersion) { - state - .toMutableVersionCapella() - .ifPresent( - mutableBeaconStateCapella -> - applyCapellaFields( - specVersion, - mutableBeaconStateCapella, - BeaconStateSchemaCapella.required( - mutableBeaconStateCapella.getBeaconStateSchema()) - .getCurrentSyncCommitteeSchema(), - BeaconStateSchemaCapella.required( - mutableBeaconStateCapella.getBeaconStateSchema()) - .getLastExecutionPayloadHeaderSchema(), - BeaconStateSchemaCapella.required( - mutableBeaconStateCapella.getBeaconStateSchema()) - .getHistoricalSummariesSchema(), - this)); - } - - protected static void applyCapellaFields( - final SpecVersion specVersion, - final MutableBeaconStateCapella state, - final SyncCommitteeSchema syncCommitteeSchema, - final ExecutionPayloadHeaderSchemaCapella executionPayloadHeaderSchema, - final SszListSchema< - tech.pegasys.teku.spec.datastructures.state.versions.capella.HistoricalSummary, ?> - historicalSummariesSchema, - final BeaconStateCapella instance) { - - BeaconStateAltair.applyAltairFields(state, syncCommitteeSchema, instance); - - state.setLatestExecutionPayloadHeader( - executionPayloadHeaderSchema.createExecutionPayloadHeader( - builder -> - builder - .parentHash(instance.latestExecutionPayloadHeader.parentHash) - .feeRecipient(instance.latestExecutionPayloadHeader.feeRecipient) - .stateRoot(instance.latestExecutionPayloadHeader.stateRoot) - .receiptsRoot(instance.latestExecutionPayloadHeader.receiptsRoot) - .logsBloom(instance.latestExecutionPayloadHeader.logsBloom) - .prevRandao(instance.latestExecutionPayloadHeader.prevRandao) - .blockNumber(instance.latestExecutionPayloadHeader.blockNumber) - .gasLimit(instance.latestExecutionPayloadHeader.gasLimit) - .gasUsed(instance.latestExecutionPayloadHeader.gasUsed) - .timestamp(instance.latestExecutionPayloadHeader.timestamp) - .extraData(instance.latestExecutionPayloadHeader.extraData) - .baseFeePerGas(instance.latestExecutionPayloadHeader.baseFeePerGas) - .blockHash(instance.latestExecutionPayloadHeader.blockHash) - .transactionsRoot(instance.latestExecutionPayloadHeader.transactionsRoot) - .withdrawalsRoot(() -> instance.latestExecutionPayloadHeader.withdrawalsRoot))); - - state.setNextWithdrawalIndex(instance.nextWithdrawalIndex); - state.setNextWithdrawalValidatorIndex(instance.nextWithdrawalValidatorIndex); - state.setHistoricalSummaries( - historicalSummariesSchema.createFromElements( - instance.historicalSummaries.stream() - .map( - historicalSummary -> historicalSummary.asInternalHistoricalSummary(specVersion)) - .toList())); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlindedBeaconBlockBodyCapella.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlindedBeaconBlockBodyCapella.java deleted file mode 100644 index f50664926c6..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlindedBeaconBlockBodyCapella.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.AttesterSlashing; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.Deposit; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.ProposerSlashing; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.api.schema.altair.BeaconBlockBodyAltair; -import tech.pegasys.teku.api.schema.altair.SyncAggregate; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.capella.BlindedBeaconBlockBodySchemaCapella; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeaderSchema; - -public class BlindedBeaconBlockBodyCapella extends BeaconBlockBodyAltair { - - @JsonProperty("execution_payload_header") - public final ExecutionPayloadHeaderCapella executionPayloadHeader; - - @JsonProperty("bls_to_execution_changes") - public final List blsToExecutionChanges; - - @JsonCreator - public BlindedBeaconBlockBodyCapella( - @JsonProperty("randao_reveal") final BLSSignature randaoReveal, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposerSlashings, - @JsonProperty("attester_slashings") final List attesterSlashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntaryExits, - @JsonProperty("sync_aggregate") final SyncAggregate syncAggregate, - @JsonProperty("execution_payload_header") - final ExecutionPayloadHeaderCapella executionPayloadHeader, - @JsonProperty("bls_to_execution_changes") - final List blsToExecutionChanges) { - super( - randaoReveal, - eth1Data, - graffiti, - proposerSlashings, - attesterSlashings, - attestations, - deposits, - voluntaryExits, - syncAggregate); - checkNotNull( - executionPayloadHeader, "Execution Payload Header is required for capella blinded blocks"); - this.executionPayloadHeader = executionPayloadHeader; - checkNotNull( - blsToExecutionChanges, "bls_to_execution_changes is required for capella blinded blocks"); - this.blsToExecutionChanges = blsToExecutionChanges; - } - - public BlindedBeaconBlockBodyCapella( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.capella - .BlindedBeaconBlockBodyCapella - blockBody) { - super(blockBody); - this.executionPayloadHeader = - new ExecutionPayloadHeaderCapella(blockBody.getExecutionPayloadHeader()); - this.blsToExecutionChanges = - blockBody.getBlsToExecutionChanges().stream().map(SignedBlsToExecutionChange::new).toList(); - } - - @Override - public BlindedBeaconBlockBodySchemaCapella getBeaconBlockBodySchema(final SpecVersion spec) { - return (BlindedBeaconBlockBodySchemaCapella) - spec.getSchemaDefinitions().getBlindedBeaconBlockBodySchema(); - } - - @Override - public boolean isBlinded() { - return true; - } - - @Override - public BeaconBlockBody asInternalBeaconBlockBody(final SpecVersion spec) { - - final ExecutionPayloadHeaderSchema executionPayloadHeaderSchema = - getBeaconBlockBodySchema(spec).getExecutionPayloadHeaderSchema(); - - final SszListSchema< - tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange, ?> - blsToExecutionChangesSchema = getBeaconBlockBodySchema(spec).getBlsToExecutionChanges(); - - return super.asInternalBeaconBlockBody( - spec, - builder -> { - builder.executionPayloadHeader( - executionPayloadHeader.asInternalExecutionPayloadHeader( - executionPayloadHeaderSchema)); - builder.blsToExecutionChanges( - this.blsToExecutionChanges.stream() - .map(b -> b.asInternalSignedBlsToExecutionChange(spec)) - .collect(blsToExecutionChangesSchema.collector())); - return SafeFuture.COMPLETE; - }); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlindedBlockCapella.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlindedBlockCapella.java deleted file mode 100644 index 43dc083a560..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlindedBlockCapella.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockSchema; - -public class BlindedBlockCapella extends BeaconBlockAltair { - - public BlindedBlockCapella(final BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BlindedBeaconBlockBodyCapella( - message.getBody().toBlindedVersionCapella().orElseThrow())); - } - - @Override - public BeaconBlockSchema getBeaconBlockSchema(final SpecVersion spec) { - return spec.getSchemaDefinitions().getBlindedBeaconBlockSchema(); - } - - @Override - public BeaconBlock asInternalBeaconBlock(final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return getBeaconBlockSchema(specVersion) - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @JsonProperty("body") - @Override - public BlindedBeaconBlockBodyCapella getBody() { - return (BlindedBeaconBlockBodyCapella) body; - } - - @JsonCreator - public BlindedBlockCapella( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposerIndex, - @JsonProperty("parent_root") final Bytes32 parentRoot, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("body") final BlindedBeaconBlockBodyCapella body) { - super(slot, proposerIndex, parentRoot, stateRoot, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlsToExecutionChange.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlsToExecutionChange.java deleted file mode 100644 index c99ec968aaa..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/BlsToExecutionChange.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES20; -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES48; -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_PUBKEY; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_BYTES20; -import static tech.pegasys.teku.api.schema.SchemaConstants.PATTERN_PUBKEY; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Optional; -import tech.pegasys.teku.api.schema.BLSPubKey; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsCapella; - -public class BlsToExecutionChange { - - @JsonProperty("validator_index") - @Schema(type = "string", format = "uint64") - public final UInt64 validatorIndex; - - @JsonProperty("from_bls_pubkey") - @Schema( - type = "string", - pattern = PATTERN_PUBKEY, - example = EXAMPLE_PUBKEY, - description = DESCRIPTION_BYTES48) - public final BLSPubKey fromBlsPubkey; - - @JsonProperty("to_execution_address") - @Schema( - type = "string", - format = "byte", - pattern = PATTERN_BYTES20, - description = DESCRIPTION_BYTES20) - public final Bytes20 toExecutionAddress; - - @JsonCreator - public BlsToExecutionChange( - @JsonProperty("validator_index") final UInt64 validatorIndex, - @JsonProperty("from_bls_pubkey") final BLSPubKey fromBlsPubkey, - @JsonProperty("to_execution_address") final Bytes20 toExecutionAddress) { - this.validatorIndex = validatorIndex; - this.fromBlsPubkey = fromBlsPubkey; - this.toExecutionAddress = toExecutionAddress; - } - - public BlsToExecutionChange( - final tech.pegasys.teku.spec.datastructures.operations.BlsToExecutionChange - blsToExecutionChanges) { - this.validatorIndex = blsToExecutionChanges.getValidatorIndex(); - this.fromBlsPubkey = new BLSPubKey(blsToExecutionChanges.getFromBlsPubkey()); - this.toExecutionAddress = blsToExecutionChanges.getToExecutionAddress(); - } - - public tech.pegasys.teku.spec.datastructures.operations.BlsToExecutionChange - asInternalBlsToExecutionChange(final SpecVersion spec) { - final Optional schemaDefinitionsCapella = - spec.getSchemaDefinitions().toVersionCapella(); - - if (schemaDefinitionsCapella.isEmpty()) { - throw new IllegalArgumentException( - "Could not create BlsToExecutionChange for non-capella spec"); - } - - return schemaDefinitionsCapella - .get() - .getBlsToExecutionChangeSchema() - .create(validatorIndex, fromBlsPubkey.asBLSPublicKey(), toExecutionAddress); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/ExecutionPayloadCapella.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/ExecutionPayloadCapella.java deleted file mode 100644 index 46c2a5426e8..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/ExecutionPayloadCapella.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes32; -import org.apache.tuweni.units.bigints.UInt256; -import tech.pegasys.teku.api.schema.ExecutionPayload; -import tech.pegasys.teku.api.schema.bellatrix.ExecutionPayloadBellatrix; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadBuilder; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadSchema; - -public class ExecutionPayloadCapella extends ExecutionPayloadBellatrix implements ExecutionPayload { - - @JsonProperty("withdrawals") - @ArraySchema(schema = @Schema(type = "string", format = "byte")) - public final List withdrawals; - - @JsonCreator - public ExecutionPayloadCapella( - final @JsonProperty("parent_hash") Bytes32 parentHash, - final @JsonProperty("fee_recipient") Bytes20 feeRecipient, - final @JsonProperty("state_root") Bytes32 stateRoot, - final @JsonProperty("receipts_root") Bytes32 receiptsRoot, - final @JsonProperty("logs_bloom") Bytes logsBloom, - final @JsonProperty("prev_randao") Bytes32 prevRandao, - final @JsonProperty("block_number") UInt64 blockNumber, - final @JsonProperty("gas_limit") UInt64 gasLimit, - final @JsonProperty("gas_used") UInt64 gasUsed, - final @JsonProperty("timestamp") UInt64 timestamp, - final @JsonProperty("extra_data") Bytes extraData, - final @JsonProperty("base_fee_per_gas") UInt256 baseFeePerGas, - final @JsonProperty("block_hash") Bytes32 blockHash, - final @JsonProperty("transactions") List transactions, - final @JsonProperty("withdrawals") List withdrawals) { - super( - parentHash, - feeRecipient, - stateRoot, - receiptsRoot, - logsBloom, - prevRandao, - blockNumber, - gasLimit, - gasUsed, - timestamp, - extraData, - baseFeePerGas, - blockHash, - transactions); - this.withdrawals = withdrawals != null ? withdrawals : Collections.emptyList(); - } - - public ExecutionPayloadCapella( - final tech.pegasys.teku.spec.datastructures.execution.ExecutionPayload executionPayload) { - super(executionPayload); - this.withdrawals = - executionPayload.getOptionalWithdrawals().orElseThrow().stream() - .map(Withdrawal::new) - .toList(); - } - - @Override - protected ExecutionPayloadBuilder applyToBuilder( - final ExecutionPayloadSchema executionPayloadSchema, - final ExecutionPayloadBuilder builder) { - return super.applyToBuilder(executionPayloadSchema, builder) - .withdrawals( - () -> - withdrawals.stream() - .map( - withdrawal -> - withdrawal.asInternalWithdrawal( - executionPayloadSchema.getWithdrawalSchemaRequired())) - .toList()); - } - - @Override - public Optional toVersionCapella() { - return Optional.of(this); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - if (!super.equals(o)) { - return false; - } - final ExecutionPayloadCapella that = (ExecutionPayloadCapella) o; - return Objects.equals(withdrawals, that.withdrawals); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), withdrawals); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("parentHash", parentHash) - .add("feeRecipient", feeRecipient) - .add("stateRoot", stateRoot) - .add("receiptsRoot", receiptsRoot) - .add("logsBloom", logsBloom) - .add("prevRandao", prevRandao) - .add("blockNumber", blockNumber) - .add("gasLimit", gasLimit) - .add("gasUsed", gasUsed) - .add("timestamp", timestamp) - .add("extraData", extraData) - .add("baseFeePerGas", baseFeePerGas) - .add("blockHash", blockHash) - .add("transactions", transactions) - .add("withdrawals", withdrawals) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/ExecutionPayloadHeaderCapella.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/ExecutionPayloadHeaderCapella.java deleted file mode 100644 index 94a60b2c801..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/ExecutionPayloadHeaderCapella.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Objects; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes32; -import org.apache.tuweni.units.bigints.UInt256; -import tech.pegasys.teku.api.schema.bellatrix.ExecutionPayloadHeaderBellatrix; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeader; - -public class ExecutionPayloadHeaderCapella extends ExecutionPayloadHeaderBellatrix { - - @JsonProperty("withdrawals_root") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 withdrawalsRoot; - - @JsonCreator - public ExecutionPayloadHeaderCapella( - final @JsonProperty("parent_hash") Bytes32 parentHash, - final @JsonProperty("fee_recipient") Bytes20 feeRecipient, - final @JsonProperty("state_root") Bytes32 stateRoot, - final @JsonProperty("receipts_root") Bytes32 receiptsRoot, - final @JsonProperty("logs_bloom") Bytes logsBloom, - final @JsonProperty("prev_randao") Bytes32 prevRandao, - final @JsonProperty("block_number") UInt64 blockNumber, - final @JsonProperty("gas_limit") UInt64 gasLimit, - final @JsonProperty("gas_used") UInt64 gasUsed, - final @JsonProperty("timestamp") UInt64 timestamp, - final @JsonProperty("extra_data") Bytes extraData, - final @JsonProperty("base_fee_per_gas") UInt256 baseFeePerGas, - final @JsonProperty("block_hash") Bytes32 blockHash, - final @JsonProperty("transactions_root") Bytes32 transactionsRoot, - final @JsonProperty("withdrawals_root") Bytes32 withdrawalsRoot) { - super( - parentHash, - feeRecipient, - stateRoot, - receiptsRoot, - logsBloom, - prevRandao, - blockNumber, - gasLimit, - gasUsed, - timestamp, - extraData, - baseFeePerGas, - blockHash, - transactionsRoot); - this.withdrawalsRoot = withdrawalsRoot; - } - - public ExecutionPayloadHeaderCapella(final ExecutionPayloadHeader executionPayloadHeader) { - super( - executionPayloadHeader.getParentHash(), - executionPayloadHeader.getFeeRecipient(), - executionPayloadHeader.getStateRoot(), - executionPayloadHeader.getReceiptsRoot(), - executionPayloadHeader.getLogsBloom(), - executionPayloadHeader.getPrevRandao(), - executionPayloadHeader.getBlockNumber(), - executionPayloadHeader.getGasLimit(), - executionPayloadHeader.getGasUsed(), - executionPayloadHeader.getTimestamp(), - executionPayloadHeader.getExtraData(), - executionPayloadHeader.getBaseFeePerGas(), - executionPayloadHeader.getBlockHash(), - executionPayloadHeader.getTransactionsRoot()); - this.withdrawalsRoot = executionPayloadHeader.getOptionalWithdrawalsRoot().orElseThrow(); - } - - @Override - public Optional toVersionCapella() { - return Optional.of(this); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - if (!super.equals(o)) { - return false; - } - final ExecutionPayloadHeaderCapella that = (ExecutionPayloadHeaderCapella) o; - return Objects.equals(withdrawalsRoot, that.withdrawalsRoot); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), withdrawalsRoot); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("parentHash", parentHash) - .add("feeRecipient", feeRecipient) - .add("stateRoot", stateRoot) - .add("receiptsRoot", receiptsRoot) - .add("logsBloom", logsBloom) - .add("prevRandao", prevRandao) - .add("blockNumber", blockNumber) - .add("gasLimit", gasLimit) - .add("gasUsed", gasUsed) - .add("timestamp", timestamp) - .add("extraData", extraData) - .add("baseFeePerGas", baseFeePerGas) - .add("blockHash", blockHash) - .add("transactionsRoot", transactionsRoot) - .add("withdrawalsRoot", withdrawalsRoot) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/HistoricalSummary.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/HistoricalSummary.java deleted file mode 100644 index 663a98eecb2..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/HistoricalSummary.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES32; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.ssz.primitive.SszBytes32; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsCapella; - -public class HistoricalSummary { - - @JsonProperty("block_summary_root") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 blockSummaryRoot; - - @JsonProperty("state_summary_root") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES32) - public final Bytes32 stateSummaryRoot; - - public HistoricalSummary( - @JsonProperty("block_summary_root") final Bytes32 blockSummaryRoot, - @JsonProperty("state_summary_root") final Bytes32 stateSummaryRoot) { - this.blockSummaryRoot = blockSummaryRoot; - this.stateSummaryRoot = stateSummaryRoot; - } - - public HistoricalSummary( - final tech.pegasys.teku.spec.datastructures.state.versions.capella.HistoricalSummary - internalSummary) { - this.blockSummaryRoot = internalSummary.getBlockSummaryRoot().get(); - this.stateSummaryRoot = internalSummary.getStateSummaryRoot().get(); - } - - public tech.pegasys.teku.spec.datastructures.state.versions.capella.HistoricalSummary - asInternalHistoricalSummary(final SpecVersion spec) { - final Optional schemaDefinitionsCapella = - spec.getSchemaDefinitions().toVersionCapella(); - if (schemaDefinitionsCapella.isEmpty()) { - throw new IllegalArgumentException("Could not create HistoricalSummary for pre-capella spec"); - } - return schemaDefinitionsCapella - .get() - .getHistoricalSummarySchema() - .create(SszBytes32.of(blockSummaryRoot), SszBytes32.of(stateSummaryRoot)); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBeaconBlockCapella.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBeaconBlockCapella.java deleted file mode 100644 index 3ec75da8624..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBeaconBlockCapella.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBeaconBlockCapella extends SignedBeaconBlock implements SignedBlock { - private final BeaconBlockCapella message; - - public SignedBeaconBlockCapella( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - this.message = new BeaconBlockCapella(internalBlock.getMessage()); - } - - @Override - public BeaconBlockCapella getMessage() { - return message; - } - - @JsonCreator - public SignedBeaconBlockCapella( - @JsonProperty("message") final BeaconBlockCapella message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - this.message = message; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBlindedBeaconBlockCapella.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBlindedBeaconBlockCapella.java deleted file mode 100644 index 76b7a67916b..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBlindedBeaconBlockCapella.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import static com.google.common.base.Preconditions.checkArgument; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBlindedBeaconBlockCapella extends SignedBeaconBlock implements SignedBlock { - private final BlindedBlockCapella message; - - public SignedBlindedBeaconBlockCapella( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - checkArgument( - internalBlock.getMessage().getBody().isBlinded(), "requires a signed blinded beacon block"); - this.message = new BlindedBlockCapella(internalBlock.getMessage()); - } - - @Override - public BlindedBlockCapella getMessage() { - return message; - } - - @JsonCreator - public SignedBlindedBeaconBlockCapella( - @JsonProperty("message") final BlindedBlockCapella message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - this.message = message; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBlsToExecutionChange.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBlsToExecutionChange.java deleted file mode 100644 index 6b40a1f494a..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/SignedBlsToExecutionChange.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Optional; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsCapella; - -public class SignedBlsToExecutionChange { - - @JsonProperty("message") - public final BlsToExecutionChange message; - - @JsonProperty("signature") - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - @JsonCreator - public SignedBlsToExecutionChange( - @JsonProperty("message") final BlsToExecutionChange message, - @JsonProperty("signature") final BLSSignature signature) { - this.message = message; - this.signature = signature; - } - - public SignedBlsToExecutionChange( - final tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange - signedBlsToExecutionChanges) { - this.message = new BlsToExecutionChange(signedBlsToExecutionChanges.getMessage()); - this.signature = new BLSSignature(signedBlsToExecutionChanges.getSignature()); - } - - public tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange - asInternalSignedBlsToExecutionChange(final SpecVersion spec) { - final Optional schemaDefinitionsCapella = - spec.getSchemaDefinitions().toVersionCapella(); - - if (schemaDefinitionsCapella.isEmpty()) { - throw new IllegalArgumentException( - "Could not create BlsToExecutionChange for non-capella spec"); - } - - return schemaDefinitionsCapella - .get() - .getSignedBlsToExecutionChangeSchema() - .create(message.asInternalBlsToExecutionChange(spec), signature.asInternalBLSSignature()); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/Withdrawal.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/Withdrawal.java deleted file mode 100644 index c901bc7c88a..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/capella/Withdrawal.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.capella; - -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.ethereum.execution.types.Eth1Address; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.execution.versions.capella.WithdrawalSchema; - -public class Withdrawal { - - @JsonProperty("index") - private final UInt64 index; - - @JsonProperty("validator_index") - private final UInt64 validatorIndex; - - @JsonProperty("address") - private final Eth1Address address; - - @JsonProperty("amount") - private final UInt64 amount; - - public Withdrawal( - @JsonProperty("index") final UInt64 index, - @JsonProperty("validator_index") final UInt64 validatorIndex, - @JsonProperty("address") final Eth1Address address, - @JsonProperty("amount") final UInt64 amount) { - this.index = index; - this.validatorIndex = validatorIndex; - this.address = address; - this.amount = amount; - } - - public Withdrawal( - final tech.pegasys.teku.spec.datastructures.execution.versions.capella.Withdrawal - withdrawal) { - this.index = withdrawal.getIndex(); - this.validatorIndex = withdrawal.getValidatorIndex(); - this.address = Eth1Address.fromBytes(withdrawal.getAddress().getWrappedBytes()); - this.amount = withdrawal.getAmount(); - } - - public tech.pegasys.teku.spec.datastructures.execution.versions.capella.Withdrawal - asInternalWithdrawal(final WithdrawalSchema schema) { - return schema.create(index, validatorIndex, new Bytes20(address.getWrappedBytes()), amount); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconBlockBodyDeneb.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconBlockBodyDeneb.java deleted file mode 100644 index cf955f3116a..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconBlockBodyDeneb.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.deneb; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.AttesterSlashing; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.Deposit; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.KZGCommitment; -import tech.pegasys.teku.api.schema.ProposerSlashing; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.api.schema.altair.BeaconBlockBodyAltair; -import tech.pegasys.teku.api.schema.altair.SyncAggregate; -import tech.pegasys.teku.api.schema.capella.SignedBlsToExecutionChange; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb.BeaconBlockBodySchemaDeneb; -import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitment; - -public class BeaconBlockBodyDeneb extends BeaconBlockBodyAltair { - - @JsonProperty("execution_payload") - public final ExecutionPayloadDeneb executionPayload; - - @JsonProperty("bls_to_execution_changes") - public final List blsToExecutionChanges; - - @JsonProperty("blob_kzg_commitments") - public final List blobKZGCommitments; - - @JsonCreator - public BeaconBlockBodyDeneb( - @JsonProperty("randao_reveal") final BLSSignature randaoReveal, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposerSlashings, - @JsonProperty("attester_slashings") final List attesterSlashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntaryExits, - @JsonProperty("sync_aggregate") final SyncAggregate syncAggregate, - @JsonProperty("execution_payload") final ExecutionPayloadDeneb executionPayload, - @JsonProperty("bls_to_execution_changes") - final List blsToExecutionChanges, - @JsonProperty("blob_kzg_commitments") final List blobKZGCommitments) { - super( - randaoReveal, - eth1Data, - graffiti, - proposerSlashings, - attesterSlashings, - attestations, - deposits, - voluntaryExits, - syncAggregate); - checkNotNull(executionPayload, "Execution Payload is required for Deneb blocks"); - this.executionPayload = executionPayload; - checkNotNull(blsToExecutionChanges, "BlsToExecutionChanges is required for Deneb blocks"); - this.blsToExecutionChanges = blsToExecutionChanges; - checkNotNull(blobKZGCommitments, "blobKZGCommitments is required for Deneb blocks"); - this.blobKZGCommitments = blobKZGCommitments; - } - - public BeaconBlockBodyDeneb( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb - .BeaconBlockBodyDeneb - message) { - super(message); - checkNotNull(message.getExecutionPayload(), "Execution Payload is required for Deneb blocks"); - this.executionPayload = new ExecutionPayloadDeneb(message.getExecutionPayload()); - checkNotNull( - message.getBlsToExecutionChanges(), "BlsToExecutionChanges are required for Deneb blocks"); - this.blsToExecutionChanges = - message.getBlsToExecutionChanges().stream().map(SignedBlsToExecutionChange::new).toList(); - checkNotNull( - message.getBlobKzgCommitments(), "BlobKzgCommitments are required for Deneb blocks"); - this.blobKZGCommitments = - message.getBlobKzgCommitments().stream() - .map(SszKZGCommitment::getKZGCommitment) - .map(KZGCommitment::new) - .toList(); - } - - @Override - public BeaconBlockBodySchemaDeneb getBeaconBlockBodySchema(final SpecVersion spec) { - return (BeaconBlockBodySchemaDeneb) spec.getSchemaDefinitions().getBeaconBlockBodySchema(); - } - - @Override - public BeaconBlockBody asInternalBeaconBlockBody(final SpecVersion spec) { - final SszListSchema< - tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange, ?> - blsToExecutionChangesSchema = - getBeaconBlockBodySchema(spec).getBlsToExecutionChangesSchema(); - final SszListSchema blobKZGCommitmentsSchema = - getBeaconBlockBodySchema(spec).getBlobKzgCommitmentsSchema(); - return super.asInternalBeaconBlockBody( - spec, - builder -> { - builder.executionPayload(executionPayload.asInternalExecutionPayload(spec)); - builder.blsToExecutionChanges( - this.blsToExecutionChanges.stream() - .map(b -> b.asInternalSignedBlsToExecutionChange(spec)) - .collect(blsToExecutionChangesSchema.collector())); - builder.blobKzgCommitments( - this.blobKZGCommitments.stream() - .map(KZGCommitment::asInternalKZGCommitment) - .map(SszKZGCommitment::new) - .collect(blobKZGCommitmentsSchema.collector())); - return SafeFuture.COMPLETE; - }); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconBlockDeneb.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconBlockDeneb.java deleted file mode 100644 index 3c61cdaec96..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconBlockDeneb.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.deneb; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsDeneb; - -public class BeaconBlockDeneb extends BeaconBlockAltair { - - public BeaconBlockDeneb(final BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BeaconBlockBodyDeneb(message.getBody().toVersionDeneb().orElseThrow())); - } - - @Override - public BeaconBlock asInternalBeaconBlock(final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return SchemaDefinitionsDeneb.required(specVersion.getSchemaDefinitions()) - .getBeaconBlockSchema() - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @JsonProperty("body") - @Override - public BeaconBlockBodyDeneb getBody() { - return (BeaconBlockBodyDeneb) body; - } - - @JsonCreator - public BeaconBlockDeneb( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposerIndex, - @JsonProperty("parent_root") final Bytes32 parentRoot, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("body") final BeaconBlockBodyDeneb body) { - super(slot, proposerIndex, parentRoot, stateRoot, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconStateDeneb.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconStateDeneb.java deleted file mode 100644 index 4d7ef4d8c66..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BeaconStateDeneb.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.deneb; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BeaconBlockHeader; -import tech.pegasys.teku.api.schema.Checkpoint; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.Fork; -import tech.pegasys.teku.api.schema.Validator; -import tech.pegasys.teku.api.schema.altair.BeaconStateAltair; -import tech.pegasys.teku.api.schema.altair.SyncCommittee; -import tech.pegasys.teku.api.schema.capella.HistoricalSummary; -import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.execution.versions.deneb.ExecutionPayloadHeaderSchemaDeneb; -import tech.pegasys.teku.spec.datastructures.state.SyncCommittee.SyncCommitteeSchema; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.MutableBeaconState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.deneb.BeaconStateSchemaDeneb; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.deneb.MutableBeaconStateDeneb; - -public class BeaconStateDeneb extends BeaconStateAltair { - - @JsonProperty("latest_execution_payload_header") - public final ExecutionPayloadHeaderDeneb latestExecutionPayloadHeader; - - @JsonProperty("next_withdrawal_index") - @Schema(type = "string", example = EXAMPLE_UINT64) - public final UInt64 nextWithdrawalIndex; - - @JsonProperty("next_withdrawal_validator_index") - @Schema(type = "string", example = EXAMPLE_UINT64) - public final UInt64 nextWithdrawalValidatorIndex; - - @JsonProperty("historical_summaries") - public final List historicalSummaries; - - public BeaconStateDeneb( - @JsonProperty("genesis_time") final UInt64 genesisTime, - @JsonProperty("genesis_validators_root") final Bytes32 genesisValidatorsRoot, - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("fork") final Fork fork, - @JsonProperty("latest_block_header") final BeaconBlockHeader latestBlockHeader, - @JsonProperty("block_roots") final List blockRoots, - @JsonProperty("state_roots") final List stateRoots, - @JsonProperty("historical_roots") final List historicalRoots, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("eth1_data_votes") final List eth1DataVotes, - @JsonProperty("eth1_deposit_index") final UInt64 eth1DepositIndex, - @JsonProperty("validators") final List validators, - @JsonProperty("balances") final List balances, - @JsonProperty("randao_mixes") final List randaoMixes, - @JsonProperty("slashings") final List slashings, - @JsonProperty("previous_epoch_participation") final byte[] previousEpochParticipation, - @JsonProperty("current_epoch_participation") final byte[] currentEpochParticipation, - @JsonProperty("justification_bits") final SszBitvector justificationBits, - @JsonProperty("previous_justified_checkpoint") final Checkpoint previousJustifiedCheckpoint, - @JsonProperty("current_justified_checkpoint") final Checkpoint currentJustifiedCheckpoint, - @JsonProperty("finalized_checkpoint") final Checkpoint finalizedCheckpoint, - @JsonProperty("inactivity_scores") final List inactivityScores, - @JsonProperty("current_sync_committee") final SyncCommittee currentSyncCommittee, - @JsonProperty("next_sync_committee") final SyncCommittee nextSyncCommittee, - @JsonProperty("latest_execution_payload_header") - final ExecutionPayloadHeaderDeneb latestExecutionPayloadHeader, - @JsonProperty("next_withdrawal_index") final UInt64 nextWithdrawalIndex, - @JsonProperty("next_withdrawal_validator_index") final UInt64 nextWithdrawalValidatorIndex, - @JsonProperty("historical_summaries") final List historicalSummaries) { - super( - genesisTime, - genesisValidatorsRoot, - slot, - fork, - latestBlockHeader, - blockRoots, - stateRoots, - historicalRoots, - eth1Data, - eth1DataVotes, - eth1DepositIndex, - validators, - balances, - randaoMixes, - slashings, - previousEpochParticipation, - currentEpochParticipation, - justificationBits, - previousJustifiedCheckpoint, - currentJustifiedCheckpoint, - finalizedCheckpoint, - inactivityScores, - currentSyncCommittee, - nextSyncCommittee); - this.latestExecutionPayloadHeader = latestExecutionPayloadHeader; - this.nextWithdrawalIndex = nextWithdrawalIndex; - this.nextWithdrawalValidatorIndex = nextWithdrawalValidatorIndex; - this.historicalSummaries = historicalSummaries; - } - - public BeaconStateDeneb(final BeaconState beaconState) { - super(beaconState); - final tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.deneb.BeaconStateDeneb - deneb = beaconState.toVersionDeneb().orElseThrow(); - this.latestExecutionPayloadHeader = - new ExecutionPayloadHeaderDeneb(deneb.getLatestExecutionPayloadHeader()); - this.nextWithdrawalIndex = deneb.getNextWithdrawalIndex(); - this.nextWithdrawalValidatorIndex = deneb.getNextWithdrawalValidatorIndex(); - this.historicalSummaries = - deneb.getHistoricalSummaries().stream().map(HistoricalSummary::new).toList(); - } - - @Override - protected void applyAdditionalFields( - final MutableBeaconState state, final SpecVersion specVersion) { - state - .toMutableVersionDeneb() - .ifPresent( - mutableBeaconStateDeneb -> - applyDenebFields( - specVersion, - mutableBeaconStateDeneb, - BeaconStateSchemaDeneb.required(mutableBeaconStateDeneb.getBeaconStateSchema()) - .getCurrentSyncCommitteeSchema(), - BeaconStateSchemaDeneb.required(mutableBeaconStateDeneb.getBeaconStateSchema()) - .getLastExecutionPayloadHeaderSchema(), - BeaconStateSchemaDeneb.required(mutableBeaconStateDeneb.getBeaconStateSchema()) - .getHistoricalSummariesSchema(), - this)); - } - - protected static void applyDenebFields( - final SpecVersion specVersion, - final MutableBeaconStateDeneb state, - final SyncCommitteeSchema syncCommitteeSchema, - final ExecutionPayloadHeaderSchemaDeneb executionPayloadHeaderSchema, - final SszListSchema< - tech.pegasys.teku.spec.datastructures.state.versions.capella.HistoricalSummary, ?> - historicalSummariesSchema, - final BeaconStateDeneb instance) { - - BeaconStateAltair.applyAltairFields(state, syncCommitteeSchema, instance); - - state.setLatestExecutionPayloadHeader( - instance.latestExecutionPayloadHeader.asInternalExecutionPayloadHeader( - executionPayloadHeaderSchema)); - - state.setNextWithdrawalIndex(instance.nextWithdrawalIndex); - state.setNextWithdrawalValidatorIndex(instance.nextWithdrawalValidatorIndex); - state.setHistoricalSummaries( - historicalSummariesSchema.createFromElements( - instance.historicalSummaries.stream() - .map( - historicalSummary -> historicalSummary.asInternalHistoricalSummary(specVersion)) - .toList())); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BlindedBeaconBlockBodyDeneb.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BlindedBeaconBlockBodyDeneb.java deleted file mode 100644 index 99245629d69..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BlindedBeaconBlockBodyDeneb.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.deneb; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.AttesterSlashing; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.Deposit; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.KZGCommitment; -import tech.pegasys.teku.api.schema.ProposerSlashing; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.api.schema.altair.BeaconBlockBodyAltair; -import tech.pegasys.teku.api.schema.altair.SyncAggregate; -import tech.pegasys.teku.api.schema.capella.SignedBlsToExecutionChange; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb.BlindedBeaconBlockBodySchemaDeneb; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeaderSchema; -import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitment; - -public class BlindedBeaconBlockBodyDeneb extends BeaconBlockBodyAltair { - - @JsonProperty("execution_payload_header") - public final ExecutionPayloadHeaderDeneb executionPayloadHeader; - - @JsonProperty("bls_to_execution_changes") - public final List blsToExecutionChanges; - - @JsonProperty("blob_kzg_commitments") - public final List blobKZGCommitments; - - @JsonCreator - public BlindedBeaconBlockBodyDeneb( - @JsonProperty("randao_reveal") final BLSSignature randaoReveal, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposerSlashings, - @JsonProperty("attester_slashings") final List attesterSlashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntaryExits, - @JsonProperty("sync_aggregate") final SyncAggregate syncAggregate, - @JsonProperty("execution_payload_header") - final ExecutionPayloadHeaderDeneb executionPayloadHeader, - @JsonProperty("bls_to_execution_changes") - final List blsToExecutionChanges, - @JsonProperty("blob_kzg_commitments") final List blobKZGCommitments) { - super( - randaoReveal, - eth1Data, - graffiti, - proposerSlashings, - attesterSlashings, - attestations, - deposits, - voluntaryExits, - syncAggregate); - checkNotNull( - executionPayloadHeader, "Execution Payload Header is required for Deneb blinded blocks"); - this.executionPayloadHeader = executionPayloadHeader; - checkNotNull( - blsToExecutionChanges, "blsToExecutionChanges is required for Deneb blinded blocks"); - this.blsToExecutionChanges = blsToExecutionChanges; - checkNotNull(blobKZGCommitments, "blobKZGCommitments is required for Deneb blinded blocks"); - this.blobKZGCommitments = blobKZGCommitments; - } - - public BlindedBeaconBlockBodyDeneb( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb - .BlindedBeaconBlockBodyDeneb - blockBody) { - super(blockBody); - this.executionPayloadHeader = - new ExecutionPayloadHeaderDeneb(blockBody.getExecutionPayloadHeader()); - this.blsToExecutionChanges = - blockBody.getBlsToExecutionChanges().stream().map(SignedBlsToExecutionChange::new).toList(); - this.blobKZGCommitments = - blockBody.getBlobKzgCommitments().stream() - .map(SszKZGCommitment::getKZGCommitment) - .map(KZGCommitment::new) - .toList(); - } - - @Override - public BlindedBeaconBlockBodySchemaDeneb getBeaconBlockBodySchema(final SpecVersion spec) { - return (BlindedBeaconBlockBodySchemaDeneb) - spec.getSchemaDefinitions().getBlindedBeaconBlockBodySchema(); - } - - @Override - public boolean isBlinded() { - return true; - } - - @Override - public BeaconBlockBody asInternalBeaconBlockBody(final SpecVersion spec) { - - final ExecutionPayloadHeaderSchema executionPayloadHeaderSchema = - getBeaconBlockBodySchema(spec).getExecutionPayloadHeaderSchema(); - - final SszListSchema< - tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange, ?> - blsToExecutionChangesSchema = getBeaconBlockBodySchema(spec).getBlsToExecutionChanges(); - - final SszListSchema blobKZGCommitmentsSchema = - getBeaconBlockBodySchema(spec).getBlobKzgCommitmentsSchema(); - - return super.asInternalBeaconBlockBody( - spec, - builder -> { - builder.executionPayloadHeader( - executionPayloadHeader.asInternalExecutionPayloadHeader( - executionPayloadHeaderSchema)); - builder.blsToExecutionChanges( - this.blsToExecutionChanges.stream() - .map(b -> b.asInternalSignedBlsToExecutionChange(spec)) - .collect(blsToExecutionChangesSchema.collector())); - builder.blobKzgCommitments( - this.blobKZGCommitments.stream() - .map(KZGCommitment::asInternalKZGCommitment) - .map(SszKZGCommitment::new) - .collect(blobKZGCommitmentsSchema.collector())); - return SafeFuture.COMPLETE; - }); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BlindedBlockDeneb.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BlindedBlockDeneb.java deleted file mode 100644 index 936e20ab079..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/BlindedBlockDeneb.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.deneb; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockSchema; - -public class BlindedBlockDeneb extends BeaconBlockAltair { - - public BlindedBlockDeneb(final BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BlindedBeaconBlockBodyDeneb(message.getBody().toBlindedVersionDeneb().orElseThrow())); - } - - @Override - public BeaconBlockSchema getBeaconBlockSchema(final SpecVersion spec) { - return spec.getSchemaDefinitions().getBlindedBeaconBlockSchema(); - } - - @Override - public BeaconBlock asInternalBeaconBlock(final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return getBeaconBlockSchema(specVersion) - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @JsonProperty("body") - @Override - public BlindedBeaconBlockBodyDeneb getBody() { - return (BlindedBeaconBlockBodyDeneb) body; - } - - @JsonCreator - public BlindedBlockDeneb( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposerIndex, - @JsonProperty("parent_root") final Bytes32 parentRoot, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("body") final BlindedBeaconBlockBodyDeneb body) { - super(slot, proposerIndex, parentRoot, stateRoot, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/ExecutionPayloadDeneb.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/ExecutionPayloadDeneb.java deleted file mode 100644 index 34aa9585d03..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/ExecutionPayloadDeneb.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.deneb; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes32; -import org.apache.tuweni.units.bigints.UInt256; -import tech.pegasys.teku.api.schema.ExecutionPayload; -import tech.pegasys.teku.api.schema.capella.ExecutionPayloadCapella; -import tech.pegasys.teku.api.schema.capella.Withdrawal; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadBuilder; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadSchema; - -public class ExecutionPayloadDeneb extends ExecutionPayloadCapella implements ExecutionPayload { - - @JsonProperty("blob_gas_used") - public final UInt64 blobGasUsed; - - @JsonProperty("excess_blob_gas") - public final UInt64 excessBlobGas; - - @JsonCreator - public ExecutionPayloadDeneb( - @JsonProperty("parent_hash") final Bytes32 parentHash, - @JsonProperty("fee_recipient") final Bytes20 feeRecipient, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("receipts_root") final Bytes32 receiptsRoot, - @JsonProperty("logs_bloom") final Bytes logsBloom, - @JsonProperty("prev_randao") final Bytes32 prevRandao, - @JsonProperty("block_number") final UInt64 blockNumber, - @JsonProperty("gas_limit") final UInt64 gasLimit, - @JsonProperty("gas_used") final UInt64 gasUsed, - @JsonProperty("timestamp") final UInt64 timestamp, - @JsonProperty("extra_data") final Bytes extraData, - @JsonProperty("base_fee_per_gas") final UInt256 baseFeePerGas, - @JsonProperty("block_hash") final Bytes32 blockHash, - @JsonProperty("transactions") final List transactions, - @JsonProperty("withdrawals") final List withdrawals, - @JsonProperty("blob_gas_used") final UInt64 blobGasUsed, - @JsonProperty("excess_blob_gas") final UInt64 excessBlobGas) { - super( - parentHash, - feeRecipient, - stateRoot, - receiptsRoot, - logsBloom, - prevRandao, - blockNumber, - gasLimit, - gasUsed, - timestamp, - extraData, - baseFeePerGas, - blockHash, - transactions, - withdrawals); - this.blobGasUsed = blobGasUsed; - this.excessBlobGas = excessBlobGas; - } - - public ExecutionPayloadDeneb( - final tech.pegasys.teku.spec.datastructures.execution.ExecutionPayload executionPayload) { - super(executionPayload); - this.blobGasUsed = executionPayload.toVersionDeneb().orElseThrow().getBlobGasUsed(); - this.excessBlobGas = executionPayload.toVersionDeneb().orElseThrow().getExcessBlobGas(); - } - - @Override - protected ExecutionPayloadBuilder applyToBuilder( - final ExecutionPayloadSchema executionPayloadSchema, - final ExecutionPayloadBuilder builder) { - return super.applyToBuilder(executionPayloadSchema, builder) - .blobGasUsed(() -> blobGasUsed) - .excessBlobGas(() -> excessBlobGas); - } - - @Override - public Optional toVersionDeneb() { - return Optional.of(this); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof ExecutionPayloadDeneb)) { - return false; - } - if (!super.equals(o)) { - return false; - } - final ExecutionPayloadDeneb that = (ExecutionPayloadDeneb) o; - return Objects.equals(blobGasUsed, that.blobGasUsed) - && Objects.equals(excessBlobGas, that.excessBlobGas); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), blobGasUsed, excessBlobGas); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("parentHash", parentHash) - .add("feeRecipient", feeRecipient) - .add("stateRoot", stateRoot) - .add("receiptsRoot", receiptsRoot) - .add("logsBloom", logsBloom) - .add("prevRandao", prevRandao) - .add("blockNumber", blockNumber) - .add("gasLimit", gasLimit) - .add("gasUsed", gasUsed) - .add("timestamp", timestamp) - .add("extraData", extraData) - .add("baseFeePerGas", baseFeePerGas) - .add("blockHash", blockHash) - .add("transactions", transactions) - .add("withdrawals", withdrawals) - .add("blobGasUsed", blobGasUsed) - .add("excessBlobGas", excessBlobGas) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/ExecutionPayloadHeaderDeneb.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/ExecutionPayloadHeaderDeneb.java deleted file mode 100644 index 43d685d2d01..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/ExecutionPayloadHeaderDeneb.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.deneb; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; -import java.util.Objects; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes32; -import org.apache.tuweni.units.bigints.UInt256; -import tech.pegasys.teku.api.schema.capella.ExecutionPayloadHeaderCapella; -import tech.pegasys.teku.infrastructure.bytes.Bytes20; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeader; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeaderSchema; - -public class ExecutionPayloadHeaderDeneb extends ExecutionPayloadHeaderCapella { - - @JsonProperty("blob_gas_used") - public final UInt64 blobGasUsed; - - @JsonProperty("excess_blob_gas") - public final UInt64 excessBlobGas; - - @JsonCreator - public ExecutionPayloadHeaderDeneb( - @JsonProperty("parent_hash") final Bytes32 parentHash, - @JsonProperty("fee_recipient") final Bytes20 feeRecipient, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("receipts_root") final Bytes32 receiptsRoot, - @JsonProperty("logs_bloom") final Bytes logsBloom, - @JsonProperty("prev_randao") final Bytes32 prevRandao, - @JsonProperty("block_number") final UInt64 blockNumber, - @JsonProperty("gas_limit") final UInt64 gasLimit, - @JsonProperty("gas_used") final UInt64 gasUsed, - @JsonProperty("timestamp") final UInt64 timestamp, - @JsonProperty("extra_data") final Bytes extraData, - @JsonProperty("base_fee_per_gas") final UInt256 baseFeePerGas, - @JsonProperty("block_hash") final Bytes32 blockHash, - @JsonProperty("transactions_root") final Bytes32 transactionsRoot, - @JsonProperty("withdrawals_root") final Bytes32 withdrawalsRoot, - @JsonProperty("blob_gas_used") final UInt64 blobGasUsed, - @JsonProperty("excess_blob_gas") final UInt64 excessBlobGas) { - super( - parentHash, - feeRecipient, - stateRoot, - receiptsRoot, - logsBloom, - prevRandao, - blockNumber, - gasLimit, - gasUsed, - timestamp, - extraData, - baseFeePerGas, - blockHash, - transactionsRoot, - withdrawalsRoot); - this.blobGasUsed = blobGasUsed; - this.excessBlobGas = excessBlobGas; - } - - public ExecutionPayloadHeaderDeneb(final ExecutionPayloadHeader executionPayloadHeader) { - super( - executionPayloadHeader.getParentHash(), - executionPayloadHeader.getFeeRecipient(), - executionPayloadHeader.getStateRoot(), - executionPayloadHeader.getReceiptsRoot(), - executionPayloadHeader.getLogsBloom(), - executionPayloadHeader.getPrevRandao(), - executionPayloadHeader.getBlockNumber(), - executionPayloadHeader.getGasLimit(), - executionPayloadHeader.getGasUsed(), - executionPayloadHeader.getTimestamp(), - executionPayloadHeader.getExtraData(), - executionPayloadHeader.getBaseFeePerGas(), - executionPayloadHeader.getBlockHash(), - executionPayloadHeader.getTransactionsRoot(), - executionPayloadHeader.getOptionalWithdrawalsRoot().orElseThrow()); - this.blobGasUsed = executionPayloadHeader.toVersionDeneb().orElseThrow().getBlobGasUsed(); - this.excessBlobGas = executionPayloadHeader.toVersionDeneb().orElseThrow().getExcessBlobGas(); - } - - @Override - public ExecutionPayloadHeader asInternalExecutionPayloadHeader( - final ExecutionPayloadHeaderSchema schema) { - return schema.createExecutionPayloadHeader( - payloadBuilder -> - payloadBuilder - .parentHash(parentHash) - .feeRecipient(feeRecipient) - .stateRoot(stateRoot) - .receiptsRoot(receiptsRoot) - .logsBloom(logsBloom) - .prevRandao(prevRandao) - .blockNumber(blockNumber) - .gasLimit(gasLimit) - .gasUsed(gasUsed) - .timestamp(timestamp) - .extraData(extraData) - .baseFeePerGas(baseFeePerGas) - .blockHash(blockHash) - .transactionsRoot(transactionsRoot) - .withdrawalsRoot(() -> withdrawalsRoot) - .blobGasUsed(() -> blobGasUsed) - .excessBlobGas(() -> excessBlobGas)); - } - - @Override - public Optional toVersionDeneb() { - return Optional.of(this); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (!(o instanceof ExecutionPayloadHeaderDeneb)) { - return false; - } - if (!super.equals(o)) { - return false; - } - final ExecutionPayloadHeaderDeneb that = (ExecutionPayloadHeaderDeneb) o; - return Objects.equals(blobGasUsed, that.blobGasUsed) - && Objects.equals(excessBlobGas, that.excessBlobGas); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), blobGasUsed, excessBlobGas); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("parentHash", parentHash) - .add("feeRecipient", feeRecipient) - .add("stateRoot", stateRoot) - .add("receiptsRoot", receiptsRoot) - .add("logsBloom", logsBloom) - .add("prevRandao", prevRandao) - .add("blockNumber", blockNumber) - .add("gasLimit", gasLimit) - .add("gasUsed", gasUsed) - .add("timestamp", timestamp) - .add("extraData", extraData) - .add("baseFeePerGas", baseFeePerGas) - .add("blockHash", blockHash) - .add("transactionsRoot", transactionsRoot) - .add("withdrawalsRoot", withdrawalsRoot) - .add("blobGasUsed", blobGasUsed) - .add("excessBlobGas", excessBlobGas) - .toString(); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/SignedBeaconBlockDeneb.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/SignedBeaconBlockDeneb.java deleted file mode 100644 index a67830d0449..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/SignedBeaconBlockDeneb.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.deneb; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBeaconBlockDeneb extends SignedBeaconBlock implements SignedBlock { - private final BeaconBlockDeneb message; - - public SignedBeaconBlockDeneb( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - this.message = new BeaconBlockDeneb(internalBlock.getMessage()); - } - - @Override - public BeaconBlockDeneb getMessage() { - return message; - } - - @JsonCreator - public SignedBeaconBlockDeneb( - @JsonProperty("message") final BeaconBlockDeneb message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - this.message = message; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/SignedBlindedBeaconBlockDeneb.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/SignedBlindedBeaconBlockDeneb.java deleted file mode 100644 index 3f878f97eb6..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/deneb/SignedBlindedBeaconBlockDeneb.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.deneb; - -import static com.google.common.base.Preconditions.checkArgument; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBlindedBeaconBlockDeneb extends SignedBeaconBlock implements SignedBlock { - private final BlindedBlockDeneb message; - - public SignedBlindedBeaconBlockDeneb( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - checkArgument( - internalBlock.getMessage().getBody().isBlinded(), "requires a signed blinded beacon block"); - this.message = new BlindedBlockDeneb(internalBlock.getMessage()); - } - - @Override - public BlindedBlockDeneb getMessage() { - return message; - } - - @JsonCreator - public SignedBlindedBeaconBlockDeneb( - @JsonProperty("message") final BlindedBlockDeneb message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - this.message = message; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconBlockBodyElectra.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconBlockBodyElectra.java deleted file mode 100644 index 6bede7180d3..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconBlockBodyElectra.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.AttesterSlashing; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.Deposit; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.KZGCommitment; -import tech.pegasys.teku.api.schema.ProposerSlashing; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.api.schema.altair.BeaconBlockBodyAltair; -import tech.pegasys.teku.api.schema.altair.SyncAggregate; -import tech.pegasys.teku.api.schema.capella.SignedBlsToExecutionChange; -import tech.pegasys.teku.api.schema.deneb.ExecutionPayloadDeneb; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.electra.BeaconBlockBodySchemaElectra; -import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitment; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsElectra; - -public class BeaconBlockBodyElectra extends BeaconBlockBodyAltair { - - @JsonProperty("execution_payload") - public final ExecutionPayloadDeneb executionPayload; - - @JsonProperty("bls_to_execution_changes") - public final List blsToExecutionChanges; - - @JsonProperty("blob_kzg_commitments") - public final List blobKZGCommitments; - - @JsonProperty("execution_requests") - public final ExecutionRequests executionRequests; - - @JsonCreator - public BeaconBlockBodyElectra( - @JsonProperty("randao_reveal") final BLSSignature randaoReveal, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposerSlashings, - @JsonProperty("attester_slashings") final List attesterSlashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntaryExits, - @JsonProperty("sync_aggregate") final SyncAggregate syncAggregate, - @JsonProperty("execution_payload") final ExecutionPayloadDeneb executionPayload, - @JsonProperty("bls_to_execution_changes") - final List blsToExecutionChanges, - @JsonProperty("blob_kzg_commitments") final List blobKZGCommitments, - @JsonProperty("execution_requests") final ExecutionRequests executionRequests) { - super( - randaoReveal, - eth1Data, - graffiti, - proposerSlashings, - attesterSlashings, - attestations, - deposits, - voluntaryExits, - syncAggregate); - checkNotNull(executionPayload, "ExecutionPayload is required for Electra blocks"); - this.executionPayload = executionPayload; - checkNotNull(blsToExecutionChanges, "BlsToExecutionChanges is required for Electra blocks"); - this.blsToExecutionChanges = blsToExecutionChanges; - checkNotNull(blobKZGCommitments, "BlobKZGCommitments is required for Electra blocks"); - this.blobKZGCommitments = blobKZGCommitments; - checkNotNull(executionRequests, "ExecutionRequests is required for Electra blocks"); - this.executionRequests = executionRequests; - } - - public BeaconBlockBodyElectra( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.electra - .BeaconBlockBodyElectra - message) { - super(message); - checkNotNull(message.getExecutionPayload(), "ExecutionPayload is required for Electra blocks"); - this.executionPayload = new ExecutionPayloadDeneb(message.getExecutionPayload()); - checkNotNull( - message.getBlsToExecutionChanges(), "BlsToExecutionChanges is required for Electra blocks"); - this.blsToExecutionChanges = - message.getBlsToExecutionChanges().stream().map(SignedBlsToExecutionChange::new).toList(); - checkNotNull( - message.getBlobKzgCommitments(), "BlobKzgCommitments is required for Electra blocks"); - this.blobKZGCommitments = - message.getBlobKzgCommitments().stream() - .map(SszKZGCommitment::getKZGCommitment) - .map(KZGCommitment::new) - .toList(); - checkNotNull( - message.getExecutionRequests(), "ExecutionRequests is required for Electra blocks"); - this.executionRequests = new ExecutionRequests(message.getExecutionRequests()); - } - - @Override - public BeaconBlockBodySchemaElectra getBeaconBlockBodySchema(final SpecVersion spec) { - return (BeaconBlockBodySchemaElectra) spec.getSchemaDefinitions().getBeaconBlockBodySchema(); - } - - @Override - public BeaconBlockBody asInternalBeaconBlockBody(final SpecVersion spec) { - final SszListSchema< - tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange, ?> - blsToExecutionChangesSchema = - getBeaconBlockBodySchema(spec).getBlsToExecutionChangesSchema(); - final SszListSchema blobKZGCommitmentsSchema = - getBeaconBlockBodySchema(spec).getBlobKzgCommitmentsSchema(); - return super.asInternalBeaconBlockBody( - spec, - builder -> { - builder.executionPayload(executionPayload.asInternalExecutionPayload(spec)); - builder.blsToExecutionChanges( - this.blsToExecutionChanges.stream() - .map(b -> b.asInternalSignedBlsToExecutionChange(spec)) - .collect(blsToExecutionChangesSchema.collector())); - builder.blobKzgCommitments( - this.blobKZGCommitments.stream() - .map(KZGCommitment::asInternalKZGCommitment) - .map(SszKZGCommitment::new) - .collect(blobKZGCommitmentsSchema.collector())); - builder.executionRequests( - this.executionRequests.asInternalConsolidationRequest( - SchemaDefinitionsElectra.required(spec.getSchemaDefinitions()) - .getExecutionRequestsSchema())); - - return SafeFuture.COMPLETE; - }); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconBlockElectra.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconBlockElectra.java deleted file mode 100644 index 0bafbe1f335..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconBlockElectra.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsElectra; - -public class BeaconBlockElectra extends BeaconBlockAltair { - - public BeaconBlockElectra(final BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BeaconBlockBodyElectra(message.getBody().toVersionElectra().orElseThrow())); - } - - @Override - public BeaconBlock asInternalBeaconBlock(final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return SchemaDefinitionsElectra.required(specVersion.getSchemaDefinitions()) - .getBeaconBlockSchema() - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @JsonProperty("body") - @Override - public BeaconBlockBodyElectra getBody() { - return (BeaconBlockBodyElectra) body; - } - - @JsonCreator - public BeaconBlockElectra( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposerIndex, - @JsonProperty("parent_root") final Bytes32 parentRoot, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("body") final BeaconBlockBodyElectra body) { - super(slot, proposerIndex, parentRoot, stateRoot, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconStateElectra.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconStateElectra.java deleted file mode 100644 index ba7049a0a93..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BeaconStateElectra.java +++ /dev/null @@ -1,282 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import static tech.pegasys.teku.api.schema.SchemaConstants.EXAMPLE_UINT64; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BeaconBlockHeader; -import tech.pegasys.teku.api.schema.Checkpoint; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.Fork; -import tech.pegasys.teku.api.schema.Validator; -import tech.pegasys.teku.api.schema.altair.BeaconStateAltair; -import tech.pegasys.teku.api.schema.altair.SyncCommittee; -import tech.pegasys.teku.api.schema.capella.HistoricalSummary; -import tech.pegasys.teku.api.schema.deneb.ExecutionPayloadHeaderDeneb; -import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.execution.versions.deneb.ExecutionPayloadHeaderSchemaDeneb; -import tech.pegasys.teku.spec.datastructures.state.SyncCommittee.SyncCommitteeSchema; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.MutableBeaconState; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.electra.BeaconStateSchemaElectra; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.electra.MutableBeaconStateElectra; - -public class BeaconStateElectra extends BeaconStateAltair { - - @JsonProperty("latest_execution_payload_header") - public final ExecutionPayloadHeaderDeneb latestExecutionPayloadHeader; - - @JsonProperty("next_withdrawal_index") - @Schema(type = "string", example = EXAMPLE_UINT64) - public final UInt64 nextWithdrawalIndex; - - @JsonProperty("next_withdrawal_validator_index") - @Schema(type = "string", example = EXAMPLE_UINT64) - public final UInt64 nextWithdrawalValidatorIndex; - - @JsonProperty("historical_summaries") - public final List historicalSummaries; - - @JsonProperty("deposit_requests_start_index") - public final UInt64 depositRequestsStartIndex; - - @JsonProperty("deposit_balance_to_consume") - public final UInt64 depositBalanceToConsume; - - @JsonProperty("exit_balance_to_consume") - public final UInt64 exitBalanceToConsume; - - @JsonProperty("earliest_exit_epoch") - public final UInt64 earliestExitEpoch; - - @JsonProperty("consolidation_balance_to_consume") - public final UInt64 consolidationBalanceToConsume; - - @JsonProperty("earliest_consolidation_epoch") - public final UInt64 earliestConsolidationEpoch; - - @JsonProperty("pending_deposits") - public final List pendingDeposits; - - @JsonProperty("pending_partial_withdrawals") - public final List pendingPartialWithdrawals; - - @JsonProperty("pending_consolidations") - public final List pendingConsolidations; - - public BeaconStateElectra( - @JsonProperty("genesis_time") final UInt64 genesisTime, - @JsonProperty("genesis_validators_root") final Bytes32 genesisValidatorsRoot, - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("fork") final Fork fork, - @JsonProperty("latest_block_header") final BeaconBlockHeader latestBlockHeader, - @JsonProperty("block_roots") final List blockRoots, - @JsonProperty("state_roots") final List stateRoots, - @JsonProperty("historical_roots") final List historicalRoots, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("eth1_data_votes") final List eth1DataVotes, - @JsonProperty("eth1_deposit_index") final UInt64 eth1DepositIndex, - @JsonProperty("validators") final List validators, - @JsonProperty("balances") final List balances, - @JsonProperty("randao_mixes") final List randaoMixes, - @JsonProperty("slashings") final List slashings, - @JsonProperty("previous_epoch_participation") final byte[] previousEpochParticipation, - @JsonProperty("current_epoch_participation") final byte[] currentEpochParticipation, - @JsonProperty("justification_bits") final SszBitvector justificationBits, - @JsonProperty("previous_justified_checkpoint") final Checkpoint previousJustifiedCheckpoint, - @JsonProperty("current_justified_checkpoint") final Checkpoint currentJustifiedCheckpoint, - @JsonProperty("finalized_checkpoint") final Checkpoint finalizedCheckpoint, - @JsonProperty("inactivity_scores") final List inactivityScores, - @JsonProperty("current_sync_committee") final SyncCommittee currentSyncCommittee, - @JsonProperty("next_sync_committee") final SyncCommittee nextSyncCommittee, - @JsonProperty("latest_execution_payload_header") - final ExecutionPayloadHeaderDeneb latestExecutionPayloadHeader, - @JsonProperty("next_withdrawal_index") final UInt64 nextWithdrawalIndex, - @JsonProperty("next_withdrawal_validator_index") final UInt64 nextWithdrawalValidatorIndex, - @JsonProperty("historical_summaries") final List historicalSummaries, - @JsonProperty("deposit_requests_start_index") final UInt64 depositRequestsStartIndex, - @JsonProperty("deposit_balance_to_consume") final UInt64 depositBalanceToConsume, - @JsonProperty("exit_balance_to_consume") final UInt64 exitBalanceToConsume, - @JsonProperty("earliest_exit_epoch") final UInt64 earliestExitEpoch, - @JsonProperty("consolidation_balance_to_consume") final UInt64 consolidationBalanceToConsume, - @JsonProperty("earliest_consolidation_epoch") final UInt64 earliestConsolidationEpoch, - @JsonProperty("pending_deposits") final List pendingDeposits, - @JsonProperty("pending_partial_withdrawals") - final List pendingPartialWithdrawals, - @JsonProperty("pending_consolidations") - final List pendingConsolidations) { - super( - genesisTime, - genesisValidatorsRoot, - slot, - fork, - latestBlockHeader, - blockRoots, - stateRoots, - historicalRoots, - eth1Data, - eth1DataVotes, - eth1DepositIndex, - validators, - balances, - randaoMixes, - slashings, - previousEpochParticipation, - currentEpochParticipation, - justificationBits, - previousJustifiedCheckpoint, - currentJustifiedCheckpoint, - finalizedCheckpoint, - inactivityScores, - currentSyncCommittee, - nextSyncCommittee); - this.latestExecutionPayloadHeader = latestExecutionPayloadHeader; - this.nextWithdrawalIndex = nextWithdrawalIndex; - this.nextWithdrawalValidatorIndex = nextWithdrawalValidatorIndex; - this.historicalSummaries = historicalSummaries; - this.depositRequestsStartIndex = depositRequestsStartIndex; - this.depositBalanceToConsume = depositBalanceToConsume; - this.exitBalanceToConsume = exitBalanceToConsume; - this.earliestExitEpoch = earliestExitEpoch; - this.consolidationBalanceToConsume = consolidationBalanceToConsume; - this.earliestConsolidationEpoch = earliestConsolidationEpoch; - this.pendingDeposits = pendingDeposits; - this.pendingPartialWithdrawals = pendingPartialWithdrawals; - this.pendingConsolidations = pendingConsolidations; - } - - public BeaconStateElectra(final BeaconState beaconState) { - super(beaconState); - final tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.electra - .BeaconStateElectra - electra = beaconState.toVersionElectra().orElseThrow(); - - this.latestExecutionPayloadHeader = - new ExecutionPayloadHeaderDeneb(electra.getLatestExecutionPayloadHeader()); - this.nextWithdrawalIndex = electra.getNextWithdrawalIndex(); - this.nextWithdrawalValidatorIndex = electra.getNextWithdrawalValidatorIndex(); - this.historicalSummaries = - electra.getHistoricalSummaries().stream().map(HistoricalSummary::new).toList(); - this.depositRequestsStartIndex = electra.getDepositRequestsStartIndex(); - this.depositBalanceToConsume = electra.getDepositBalanceToConsume(); - this.exitBalanceToConsume = electra.getExitBalanceToConsume(); - this.earliestExitEpoch = electra.getEarliestExitEpoch(); - this.consolidationBalanceToConsume = electra.getConsolidationBalanceToConsume(); - this.earliestConsolidationEpoch = electra.getEarliestConsolidationEpoch(); - this.pendingDeposits = electra.getPendingDeposits().stream().map(PendingDeposit::new).toList(); - this.pendingPartialWithdrawals = - electra.getPendingPartialWithdrawals().stream().map(PendingPartialWithdrawal::new).toList(); - this.pendingConsolidations = - electra.getPendingConsolidations().stream().map(PendingConsolidation::new).toList(); - } - - @Override - protected void applyAdditionalFields( - final MutableBeaconState state, final SpecVersion specVersion) { - state - .toMutableVersionElectra() - .ifPresent( - mutableBeaconStateElectra -> - applyElectraFields( - specVersion, - mutableBeaconStateElectra, - BeaconStateSchemaElectra.required( - mutableBeaconStateElectra.getBeaconStateSchema()) - .getCurrentSyncCommitteeSchema(), - BeaconStateSchemaElectra.required( - mutableBeaconStateElectra.getBeaconStateSchema()) - .getLastExecutionPayloadHeaderSchema(), - BeaconStateSchemaElectra.required( - mutableBeaconStateElectra.getBeaconStateSchema()) - .getHistoricalSummariesSchema(), - BeaconStateSchemaElectra.required( - mutableBeaconStateElectra.getBeaconStateSchema()) - .getPendingDepositsSchema(), - BeaconStateSchemaElectra.required( - mutableBeaconStateElectra.getBeaconStateSchema()) - .getPendingPartialWithdrawalsSchema(), - BeaconStateSchemaElectra.required( - mutableBeaconStateElectra.getBeaconStateSchema()) - .getPendingConsolidationsSchema(), - this)); - } - - protected static void applyElectraFields( - final SpecVersion specVersion, - final MutableBeaconStateElectra state, - final SyncCommitteeSchema syncCommitteeSchema, - final ExecutionPayloadHeaderSchemaDeneb executionPayloadHeaderSchema, - final SszListSchema< - tech.pegasys.teku.spec.datastructures.state.versions.capella.HistoricalSummary, ?> - historicalSummariesSchema, - final SszListSchema< - tech.pegasys.teku.spec.datastructures.state.versions.electra.PendingDeposit, ?> - pendingDepositsSchema, - final SszListSchema< - tech.pegasys.teku.spec.datastructures.state.versions.electra.PendingPartialWithdrawal, - ?> - pendingPartialWithdrawalsSchema, - final SszListSchema< - tech.pegasys.teku.spec.datastructures.state.versions.electra.PendingConsolidation, ?> - pendingConsolidationsSchema, - final BeaconStateElectra instance) { - - BeaconStateAltair.applyAltairFields(state, syncCommitteeSchema, instance); - - state.setLatestExecutionPayloadHeader( - instance.latestExecutionPayloadHeader.asInternalExecutionPayloadHeader( - executionPayloadHeaderSchema)); - - state.setNextWithdrawalIndex(instance.nextWithdrawalIndex); - state.setNextWithdrawalValidatorIndex(instance.nextWithdrawalValidatorIndex); - state.setHistoricalSummaries( - historicalSummariesSchema.createFromElements( - instance.historicalSummaries.stream() - .map( - historicalSummary -> historicalSummary.asInternalHistoricalSummary(specVersion)) - .toList())); - state.setDepositRequestsStartIndex(instance.depositRequestsStartIndex); - state.setDepositBalanceToConsume(instance.depositBalanceToConsume); - state.setExitBalanceToConsume(instance.exitBalanceToConsume); - state.setEarliestExitEpoch(instance.earliestExitEpoch); - state.setConsolidationBalanceToConsume(instance.consolidationBalanceToConsume); - state.setEarliestConsolidationEpoch(instance.earliestConsolidationEpoch); - state.setPendingDeposits( - pendingDepositsSchema.createFromElements( - instance.pendingDeposits.stream() - .map(pendingDeposit -> pendingDeposit.asInternalPendingDeposit(specVersion)) - .toList())); - state.setPendingPartialWithdrawals( - pendingPartialWithdrawalsSchema.createFromElements( - instance.pendingPartialWithdrawals.stream() - .map( - pendingPartialWithdrawal -> - pendingPartialWithdrawal.asInternalPendingPartialWithdrawal(specVersion)) - .toList())); - state.setPendingConsolidations( - pendingConsolidationsSchema.createFromElements( - instance.pendingConsolidations.stream() - .map( - pendingConsolidation -> - pendingConsolidation.asInternalPendingConsolidation(specVersion)) - .toList())); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BlindedBeaconBlockBodyElectra.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BlindedBeaconBlockBodyElectra.java deleted file mode 100644 index 7fee68848eb..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BlindedBeaconBlockBodyElectra.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.Attestation; -import tech.pegasys.teku.api.schema.AttesterSlashing; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.Deposit; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.KZGCommitment; -import tech.pegasys.teku.api.schema.ProposerSlashing; -import tech.pegasys.teku.api.schema.SignedVoluntaryExit; -import tech.pegasys.teku.api.schema.altair.BeaconBlockBodyAltair; -import tech.pegasys.teku.api.schema.altair.SyncAggregate; -import tech.pegasys.teku.api.schema.capella.SignedBlsToExecutionChange; -import tech.pegasys.teku.api.schema.deneb.ExecutionPayloadHeaderDeneb; -import tech.pegasys.teku.infrastructure.async.SafeFuture; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; -import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.electra.BlindedBeaconBlockBodySchemaElectra; -import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeaderSchema; -import tech.pegasys.teku.spec.datastructures.execution.versions.electra.ExecutionRequestsSchema; -import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitment; - -public class BlindedBeaconBlockBodyElectra extends BeaconBlockBodyAltair { - - @JsonProperty("execution_payload_header") - public final ExecutionPayloadHeaderDeneb executionPayloadHeader; - - @JsonProperty("bls_to_execution_changes") - public final List blsToExecutionChanges; - - @JsonProperty("blob_kzg_commitments") - public final List blobKZGCommitments; - - @JsonProperty("execution_requests") - public final ExecutionRequests executionRequests; - - @JsonCreator - public BlindedBeaconBlockBodyElectra( - @JsonProperty("randao_reveal") final BLSSignature randaoReveal, - @JsonProperty("eth1_data") final Eth1Data eth1Data, - @JsonProperty("graffiti") final Bytes32 graffiti, - @JsonProperty("proposer_slashings") final List proposerSlashings, - @JsonProperty("attester_slashings") final List attesterSlashings, - @JsonProperty("attestations") final List attestations, - @JsonProperty("deposits") final List deposits, - @JsonProperty("voluntary_exits") final List voluntaryExits, - @JsonProperty("sync_aggregate") final SyncAggregate syncAggregate, - @JsonProperty("execution_payload_header") - final ExecutionPayloadHeaderDeneb executionPayloadHeader, - @JsonProperty("bls_to_execution_changes") - final List blsToExecutionChanges, - @JsonProperty("blob_kzg_commitments") final List blobKZGCommitments, - @JsonProperty("execution_requests") final ExecutionRequests executionRequests) { - super( - randaoReveal, - eth1Data, - graffiti, - proposerSlashings, - attesterSlashings, - attestations, - deposits, - voluntaryExits, - syncAggregate); - checkNotNull( - executionPayloadHeader, "ExecutionPayloadHeader is required for Electra blinded blocks"); - this.executionPayloadHeader = executionPayloadHeader; - checkNotNull( - blsToExecutionChanges, "BlsToExecutionChanges is required for Electra blinded blocks"); - this.blsToExecutionChanges = blsToExecutionChanges; - checkNotNull(blobKZGCommitments, "BlobKZGCommitments is required for Electra blinded blocks"); - this.blobKZGCommitments = blobKZGCommitments; - checkNotNull(executionRequests, "ExecutionRequests is required for Electra blinded blocks"); - this.executionRequests = executionRequests; - } - - public BlindedBeaconBlockBodyElectra( - final tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.electra - .BlindedBeaconBlockBodyElectra - blockBody) { - super(blockBody); - this.executionPayloadHeader = - new ExecutionPayloadHeaderDeneb(blockBody.getExecutionPayloadHeader()); - this.blsToExecutionChanges = - blockBody.getBlsToExecutionChanges().stream().map(SignedBlsToExecutionChange::new).toList(); - this.blobKZGCommitments = - blockBody.getBlobKzgCommitments().stream() - .map(SszKZGCommitment::getKZGCommitment) - .map(KZGCommitment::new) - .toList(); - this.executionRequests = new ExecutionRequests(blockBody.getExecutionRequests()); - } - - @Override - public BlindedBeaconBlockBodySchemaElectra getBeaconBlockBodySchema(final SpecVersion spec) { - return (BlindedBeaconBlockBodySchemaElectra) - spec.getSchemaDefinitions().getBlindedBeaconBlockBodySchema(); - } - - @Override - public boolean isBlinded() { - return true; - } - - @Override - public BeaconBlockBody asInternalBeaconBlockBody(final SpecVersion spec) { - - final ExecutionPayloadHeaderSchema executionPayloadHeaderSchema = - getBeaconBlockBodySchema(spec).getExecutionPayloadHeaderSchema(); - - final SszListSchema< - tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange, ?> - blsToExecutionChangesSchema = getBeaconBlockBodySchema(spec).getBlsToExecutionChanges(); - - final SszListSchema blobKZGCommitmentsSchema = - getBeaconBlockBodySchema(spec).getBlobKzgCommitmentsSchema(); - - final ExecutionRequestsSchema executionRequestsSchema = - getBeaconBlockBodySchema(spec).getExecutionRequestsSchema(); - - return super.asInternalBeaconBlockBody( - spec, - builder -> { - builder.executionPayloadHeader( - executionPayloadHeader.asInternalExecutionPayloadHeader( - executionPayloadHeaderSchema)); - builder.blsToExecutionChanges( - this.blsToExecutionChanges.stream() - .map(b -> b.asInternalSignedBlsToExecutionChange(spec)) - .collect(blsToExecutionChangesSchema.collector())); - builder.blobKzgCommitments( - this.blobKZGCommitments.stream() - .map(KZGCommitment::asInternalKZGCommitment) - .map(SszKZGCommitment::new) - .collect(blobKZGCommitmentsSchema.collector())); - builder.executionRequests( - this.executionRequests.asInternalConsolidationRequest(executionRequestsSchema)); - return SafeFuture.COMPLETE; - }); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BlindedBlockElectra.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BlindedBlockElectra.java deleted file mode 100644 index 143e440e9b5..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/BlindedBlockElectra.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockSchema; - -public class BlindedBlockElectra extends BeaconBlockAltair { - - public BlindedBlockElectra(final BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BlindedBeaconBlockBodyElectra( - message.getBody().toBlindedVersionElectra().orElseThrow())); - } - - @Override - public BeaconBlockSchema getBeaconBlockSchema(final SpecVersion spec) { - return spec.getSchemaDefinitions().getBlindedBeaconBlockSchema(); - } - - @Override - public BeaconBlock asInternalBeaconBlock(final Spec spec) { - final SpecVersion specVersion = spec.atSlot(slot); - return getBeaconBlockSchema(specVersion) - .create( - slot, - proposer_index, - parent_root, - state_root, - body.asInternalBeaconBlockBody(specVersion)); - } - - @JsonProperty("body") - @Override - public BlindedBeaconBlockBodyElectra getBody() { - return (BlindedBeaconBlockBodyElectra) body; - } - - @JsonCreator - public BlindedBlockElectra( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposerIndex, - @JsonProperty("parent_root") final Bytes32 parentRoot, - @JsonProperty("state_root") final Bytes32 stateRoot, - @JsonProperty("body") final BlindedBeaconBlockBodyElectra body) { - super(slot, proposerIndex, parentRoot, stateRoot, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/ConsolidationRequest.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/ConsolidationRequest.java deleted file mode 100644 index a4629e18146..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/ConsolidationRequest.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.bls.BLSPublicKey; -import tech.pegasys.teku.ethereum.execution.types.Eth1Address; -import tech.pegasys.teku.spec.datastructures.execution.versions.electra.ConsolidationRequestSchema; - -public class ConsolidationRequest { - - @JsonProperty("source_address") - private final Eth1Address sourceAddress; - - @JsonProperty("source_pubkey") - private final BLSPublicKey sourcePubkey; - - @JsonProperty("target_pubkey") - private final BLSPublicKey targetPubkey; - - public ConsolidationRequest( - @JsonProperty("source_address") final Eth1Address sourceAddress, - @JsonProperty("source_pubkey") final BLSPublicKey sourcePubkey, - @JsonProperty("target_pubkey") final BLSPublicKey targetPubkey) { - this.sourceAddress = sourceAddress; - this.sourcePubkey = sourcePubkey; - this.targetPubkey = targetPubkey; - } - - public ConsolidationRequest( - final tech.pegasys.teku.spec.datastructures.execution.versions.electra.ConsolidationRequest - consolidationRequest) { - this.sourceAddress = - Eth1Address.fromBytes(consolidationRequest.getSourceAddress().getWrappedBytes()); - this.sourcePubkey = consolidationRequest.getSourcePubkey(); - this.targetPubkey = consolidationRequest.getTargetPubkey(); - } - - public final tech.pegasys.teku.spec.datastructures.execution.versions.electra.ConsolidationRequest - asInternalConsolidationRequest(final ConsolidationRequestSchema schema) { - return schema.create(sourceAddress, sourcePubkey, targetPubkey); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/DepositRequest.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/DepositRequest.java deleted file mode 100644 index 5d343529ad3..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/DepositRequest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BLSPubKey; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.execution.versions.electra.DepositRequestSchema; - -public class DepositRequest { - - @JsonProperty("pubkey") - private final BLSPubKey pubkey; - - @JsonProperty("withdrawal_credentials") - private final Bytes32 withdrawalCredentials; - - @JsonProperty("amount") - private final UInt64 amount; - - @JsonProperty("signature") - private final BLSSignature signature; - - @JsonProperty("index") - private final UInt64 index; - - public DepositRequest( - @JsonProperty("pubkey") final BLSPubKey pubkey, - @JsonProperty("withdrawal_credentials") final Bytes32 withdrawalCredentials, - @JsonProperty("amount") final UInt64 amount, - @JsonProperty("signature") final BLSSignature signature, - @JsonProperty("index") final UInt64 index) { - this.pubkey = pubkey; - this.withdrawalCredentials = withdrawalCredentials; - this.amount = amount; - this.signature = signature; - this.index = index; - } - - public DepositRequest( - final tech.pegasys.teku.spec.datastructures.execution.versions.electra.DepositRequest - depositRequest) { - this.pubkey = new BLSPubKey(depositRequest.getPubkey()); - this.withdrawalCredentials = depositRequest.getWithdrawalCredentials(); - this.amount = depositRequest.getAmount(); - this.signature = new BLSSignature(depositRequest.getSignature()); - this.index = depositRequest.getIndex(); - } - - public tech.pegasys.teku.spec.datastructures.execution.versions.electra.DepositRequest - asInternalDepositRequest(final DepositRequestSchema schema) { - return schema.create( - pubkey.asBLSPublicKey(), - withdrawalCredentials, - amount, - signature.asInternalBLSSignature(), - index); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/ExecutionRequests.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/ExecutionRequests.java deleted file mode 100644 index 2243a5fb3a5..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/ExecutionRequests.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import tech.pegasys.teku.spec.datastructures.execution.versions.electra.ConsolidationRequestSchema; -import tech.pegasys.teku.spec.datastructures.execution.versions.electra.DepositRequestSchema; -import tech.pegasys.teku.spec.datastructures.execution.versions.electra.ExecutionRequestsSchema; -import tech.pegasys.teku.spec.datastructures.execution.versions.electra.WithdrawalRequestSchema; - -public class ExecutionRequests { - - @JsonProperty("deposits") - private final List deposits; - - @JsonProperty("withdrawals") - private final List withdrawals; - - @JsonProperty("consolidations") - private final List consolidations; - - public ExecutionRequests( - @JsonProperty("deposits") final List deposits, - @JsonProperty("withdrawals") final List withdrawals, - @JsonProperty("consolidations") final List consolidations) { - this.deposits = deposits; - this.withdrawals = withdrawals; - this.consolidations = consolidations; - } - - public ExecutionRequests( - final tech.pegasys.teku.spec.datastructures.execution.versions.electra.ExecutionRequests - executionRequests) { - this.deposits = executionRequests.getDeposits().stream().map(DepositRequest::new).toList(); - this.withdrawals = - executionRequests.getWithdrawals().stream().map(WithdrawalRequest::new).toList(); - this.consolidations = - executionRequests.getConsolidations().stream().map(ConsolidationRequest::new).toList(); - } - - public final tech.pegasys.teku.spec.datastructures.execution.versions.electra.ExecutionRequests - asInternalConsolidationRequest(final ExecutionRequestsSchema schema) { - - final DepositRequestSchema depositSchema = - (DepositRequestSchema) schema.getDepositRequestsSchema().getElementSchema(); - final WithdrawalRequestSchema withdrawalSchema = - (WithdrawalRequestSchema) schema.getWithdrawalRequestsSchema().getElementSchema(); - final ConsolidationRequestSchema consolidationSchema = - (ConsolidationRequestSchema) schema.getConsolidationRequestsSchema().getElementSchema(); - - final List - depositsInternal = - deposits.stream() - .map(depositRequest -> depositRequest.asInternalDepositRequest(depositSchema)) - .toList(); - final List - withdrawalsInternal = - withdrawals.stream() - .map( - withdrawalRequest -> - withdrawalRequest.asInternalWithdrawalRequest(withdrawalSchema)) - .toList(); - final List< - tech.pegasys.teku.spec.datastructures.execution.versions.electra.ConsolidationRequest> - consolidationsInternal = - consolidations.stream() - .map( - consolidationRequest -> - consolidationRequest.asInternalConsolidationRequest(consolidationSchema)) - .toList(); - return schema.create(depositsInternal, withdrawalsInternal, consolidationsInternal); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingConsolidation.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingConsolidation.java deleted file mode 100644 index 24802b84ca8..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingConsolidation.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Optional; -import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsElectra; - -public class PendingConsolidation { - @JsonProperty("source_index") - public final int sourceIndex; - - @JsonProperty("target_index") - public final int targetIndex; - - PendingConsolidation( - final @JsonProperty("source_index") int sourceIndex, - final @JsonProperty("target_index") int targetIndex) { - this.sourceIndex = sourceIndex; - this.targetIndex = targetIndex; - } - - public PendingConsolidation( - final tech.pegasys.teku.spec.datastructures.state.versions.electra.PendingConsolidation - internalPendingConsolidation) { - this.sourceIndex = internalPendingConsolidation.getSourceIndex(); - this.targetIndex = internalPendingConsolidation.getTargetIndex(); - } - - public tech.pegasys.teku.spec.datastructures.state.versions.electra.PendingConsolidation - asInternalPendingConsolidation(final SpecVersion spec) { - final Optional schemaDefinitionsElectra = - spec.getSchemaDefinitions().toVersionElectra(); - if (schemaDefinitionsElectra.isEmpty()) { - throw new IllegalArgumentException( - "Could not create PendingConsolidation for pre-electra spec"); - } - return schemaDefinitionsElectra - .get() - .getPendingConsolidationSchema() - .create( - SszUInt64.of(UInt64.valueOf(this.sourceIndex)), - SszUInt64.of(UInt64.valueOf(this.targetIndex))); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingDeposit.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingDeposit.java deleted file mode 100644 index 5a271ab6a4c..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingDeposit.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import static tech.pegasys.teku.api.schema.SchemaConstants.DESCRIPTION_BYTES96; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.bls.BLSPublicKey; -import tech.pegasys.teku.infrastructure.ssz.primitive.SszBytes32; -import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.type.SszPublicKey; -import tech.pegasys.teku.spec.datastructures.type.SszSignature; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsElectra; - -public class PendingDeposit { - - @JsonProperty("pubkey") - private final BLSPublicKey publicKey; - - @JsonProperty("withdrawal_credentials") - private final Bytes32 withdrawalCredentials; - - @JsonProperty("amount") - public final UInt64 amount; - - @Schema(type = "string", format = "byte", description = DESCRIPTION_BYTES96) - public final BLSSignature signature; - - @JsonProperty("slot") - public final UInt64 slot; - - public PendingDeposit( - final @JsonProperty("pubkey") BLSPublicKey publicKey, - final @JsonProperty("withdrawal_credentials") Bytes32 withdrawalCredentials, - final @JsonProperty("amount") UInt64 amount, - final @JsonProperty("signature") BLSSignature signature, - final @JsonProperty("slot") UInt64 slot) { - this.publicKey = publicKey; - this.withdrawalCredentials = withdrawalCredentials; - this.amount = amount; - this.signature = signature; - this.slot = slot; - } - - public PendingDeposit( - final tech.pegasys.teku.spec.datastructures.state.versions.electra.PendingDeposit - internalPendingDeposit) { - this.publicKey = internalPendingDeposit.getPublicKey(); - this.withdrawalCredentials = internalPendingDeposit.getWithdrawalCredentials(); - this.amount = internalPendingDeposit.getAmount(); - this.signature = new BLSSignature(internalPendingDeposit.getSignature()); - this.slot = internalPendingDeposit.getSlot(); - } - - public tech.pegasys.teku.spec.datastructures.state.versions.electra.PendingDeposit - asInternalPendingDeposit(final SpecVersion spec) { - final Optional schemaDefinitionsElectra = - spec.getSchemaDefinitions().toVersionElectra(); - if (schemaDefinitionsElectra.isEmpty()) { - throw new IllegalArgumentException("Could not create PendingDeposit for pre-electra spec"); - } - return schemaDefinitionsElectra - .get() - .getPendingDepositSchema() - .create( - new SszPublicKey(publicKey), - SszBytes32.of(withdrawalCredentials), - SszUInt64.of(amount), - new SszSignature(signature.asInternalBLSSignature()), - SszUInt64.of(slot)); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingPartialWithdrawal.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingPartialWithdrawal.java deleted file mode 100644 index 23d854f8c20..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/PendingPartialWithdrawal.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Optional; -import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.schemas.SchemaDefinitionsElectra; - -public class PendingPartialWithdrawal { - @JsonProperty("validator_index") - public final int validatorIndex; - - @JsonProperty("amount") - public final UInt64 amount; - - @JsonProperty("withdrawable_epoch") - public final UInt64 withdrawableEpoch; - - public PendingPartialWithdrawal( - final @JsonProperty("validator_index") int validatorIndex, - final @JsonProperty("amount") UInt64 amount, - final @JsonProperty("withdrawable_epoch") UInt64 withdrawableEpoch) { - this.validatorIndex = validatorIndex; - this.amount = amount; - this.withdrawableEpoch = withdrawableEpoch; - } - - public PendingPartialWithdrawal( - final tech.pegasys.teku.spec.datastructures.state.versions.electra.PendingPartialWithdrawal - pendingPartialWithdrawal) { - this.validatorIndex = pendingPartialWithdrawal.getValidatorIndex(); - this.amount = pendingPartialWithdrawal.getAmount(); - this.withdrawableEpoch = pendingPartialWithdrawal.getWithdrawableEpoch(); - } - - public tech.pegasys.teku.spec.datastructures.state.versions.electra.PendingPartialWithdrawal - asInternalPendingPartialWithdrawal(final SpecVersion spec) { - final Optional schemaDefinitionsElectra = - spec.getSchemaDefinitions().toVersionElectra(); - if (schemaDefinitionsElectra.isEmpty()) { - throw new IllegalArgumentException( - "Could not create PendingPartialWithdrawal for pre-electra spec"); - } - return schemaDefinitionsElectra - .get() - .getPendingPartialWithdrawalSchema() - .create( - SszUInt64.of(UInt64.valueOf(this.validatorIndex)), - SszUInt64.of(this.amount), - SszUInt64.of(this.withdrawableEpoch)); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/SignedBeaconBlockElectra.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/SignedBeaconBlockElectra.java deleted file mode 100644 index 9743dd2ad3e..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/SignedBeaconBlockElectra.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBeaconBlockElectra extends SignedBeaconBlock implements SignedBlock { - private final BeaconBlockElectra message; - - public SignedBeaconBlockElectra( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - this.message = new BeaconBlockElectra(internalBlock.getMessage()); - } - - @Override - public BeaconBlockElectra getMessage() { - return message; - } - - @JsonCreator - public SignedBeaconBlockElectra( - @JsonProperty("message") final BeaconBlockElectra message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - this.message = message; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/SignedBlindedBeaconBlockElectra.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/SignedBlindedBeaconBlockElectra.java deleted file mode 100644 index 4272f8cf647..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/SignedBlindedBeaconBlockElectra.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import static com.google.common.base.Preconditions.checkArgument; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBlindedBeaconBlockElectra extends SignedBeaconBlock implements SignedBlock { - private final BlindedBlockElectra message; - - public SignedBlindedBeaconBlockElectra( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - checkArgument( - internalBlock.getMessage().getBody().isBlinded(), "requires a signed blinded beacon block"); - this.message = new BlindedBlockElectra(internalBlock.getMessage()); - } - - @Override - public BlindedBlockElectra getMessage() { - return message; - } - - @JsonCreator - public SignedBlindedBeaconBlockElectra( - @JsonProperty("message") final BlindedBlockElectra message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - this.message = message; - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/WithdrawalRequest.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/WithdrawalRequest.java deleted file mode 100644 index 9de11573e21..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/electra/WithdrawalRequest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.electra; - -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.bls.BLSPublicKey; -import tech.pegasys.teku.ethereum.execution.types.Eth1Address; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.execution.versions.electra.WithdrawalRequestSchema; - -public class WithdrawalRequest { - - @JsonProperty("source_address") - private final Eth1Address sourceAddress; - - @JsonProperty("validator_pubkey") - private final BLSPublicKey validatorPubkey; - - @JsonProperty("amount") - private final UInt64 amount; - - public WithdrawalRequest( - @JsonProperty("source_address") final Eth1Address sourceAddress, - @JsonProperty("validator_pubkey") final BLSPublicKey validatorPubkey, - @JsonProperty("amount") final UInt64 amount) { - this.sourceAddress = sourceAddress; - this.validatorPubkey = validatorPubkey; - this.amount = amount; - } - - public WithdrawalRequest( - final tech.pegasys.teku.spec.datastructures.execution.versions.electra.WithdrawalRequest - withdrawalRequest) { - this.sourceAddress = - Eth1Address.fromBytes(withdrawalRequest.getSourceAddress().getWrappedBytes()); - this.validatorPubkey = withdrawalRequest.getValidatorPubkey(); - this.amount = withdrawalRequest.getAmount(); - } - - public final tech.pegasys.teku.spec.datastructures.execution.versions.electra.WithdrawalRequest - asInternalWithdrawalRequest(final WithdrawalRequestSchema schema) { - return schema.create(sourceAddress, validatorPubkey, amount); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/SignedBlock.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/SignedBlock.java deleted file mode 100644 index 13745dcc691..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/SignedBlock.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.interfaces; - -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.api.schema.altair.SignedBeaconBlockAltair; -import tech.pegasys.teku.api.schema.bellatrix.SignedBeaconBlockBellatrix; -import tech.pegasys.teku.api.schema.capella.SignedBeaconBlockCapella; -import tech.pegasys.teku.api.schema.deneb.SignedBeaconBlockDeneb; -import tech.pegasys.teku.api.schema.electra.SignedBeaconBlockElectra; -import tech.pegasys.teku.api.schema.phase0.SignedBeaconBlockPhase0; - -@Schema( - oneOf = { - SignedBeaconBlockPhase0.class, - SignedBeaconBlockAltair.class, - SignedBeaconBlockBellatrix.class, - SignedBeaconBlockCapella.class, - SignedBeaconBlockDeneb.class, - SignedBeaconBlockElectra.class - }) -public interface SignedBlock {} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/State.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/State.java deleted file mode 100644 index cea644824b9..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/State.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.interfaces; - -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.api.schema.altair.BeaconStateAltair; -import tech.pegasys.teku.api.schema.bellatrix.BeaconStateBellatrix; -import tech.pegasys.teku.api.schema.capella.BeaconStateCapella; -import tech.pegasys.teku.api.schema.deneb.BeaconStateDeneb; -import tech.pegasys.teku.api.schema.electra.BeaconStateElectra; -import tech.pegasys.teku.api.schema.phase0.BeaconStatePhase0; - -@Schema( - oneOf = { - BeaconStatePhase0.class, - BeaconStateAltair.class, - BeaconStateBellatrix.class, - BeaconStateCapella.class, - BeaconStateDeneb.class, - BeaconStateElectra.class - }) -public interface State {} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/UnsignedBlindedBlock.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/UnsignedBlindedBlock.java deleted file mode 100644 index a14a5ba03d2..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/UnsignedBlindedBlock.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.interfaces; - -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.api.schema.bellatrix.BlindedBlockBellatrix; -import tech.pegasys.teku.api.schema.capella.BlindedBlockCapella; -import tech.pegasys.teku.api.schema.deneb.BlindedBlockDeneb; -import tech.pegasys.teku.api.schema.electra.BlindedBlockElectra; -import tech.pegasys.teku.api.schema.phase0.BeaconBlockPhase0; - -@Schema( - oneOf = { - BeaconBlockPhase0.class, - BeaconBlockAltair.class, - BlindedBlockBellatrix.class, - BlindedBlockCapella.class, - BlindedBlockDeneb.class, - BlindedBlockElectra.class - }) -public interface UnsignedBlindedBlock {} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/UnsignedBlock.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/UnsignedBlock.java deleted file mode 100644 index ddd59680af1..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/interfaces/UnsignedBlock.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.interfaces; - -import io.swagger.v3.oas.annotations.media.Schema; -import tech.pegasys.teku.api.schema.altair.BeaconBlockAltair; -import tech.pegasys.teku.api.schema.bellatrix.BeaconBlockBellatrix; -import tech.pegasys.teku.api.schema.capella.BeaconBlockCapella; -import tech.pegasys.teku.api.schema.deneb.BeaconBlockDeneb; -import tech.pegasys.teku.api.schema.electra.BeaconBlockElectra; -import tech.pegasys.teku.api.schema.phase0.BeaconBlockPhase0; - -@Schema( - oneOf = { - BeaconBlockPhase0.class, - BeaconBlockAltair.class, - BeaconBlockBellatrix.class, - BeaconBlockCapella.class, - BeaconBlockDeneb.class, - BeaconBlockElectra.class - }) -public interface UnsignedBlock {} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/package-info.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/package-info.java deleted file mode 100644 index 7a0ca0f4fc3..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * @deprecated As of release 2024.09.00, api.schema is not maintained any longer. - */ -@Deprecated -package tech.pegasys.teku.api.schema; diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/BeaconBlockPhase0.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/BeaconBlockPhase0.java deleted file mode 100644 index 86b62a4f6cc..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/BeaconBlockPhase0.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.phase0; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BeaconBlock; -import tech.pegasys.teku.api.schema.BeaconBlockBody; -import tech.pegasys.teku.api.schema.interfaces.UnsignedBlock; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; - -@SuppressWarnings("JavaCase") -public class BeaconBlockPhase0 extends BeaconBlock implements UnsignedBlock { - public BeaconBlockPhase0(final tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock message) { - super( - message.getSlot(), - message.getProposerIndex(), - message.getParentRoot(), - message.getStateRoot(), - new BeaconBlockBody(message.getBody())); - } - - @JsonCreator - public BeaconBlockPhase0( - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("proposer_index") final UInt64 proposer_index, - @JsonProperty("parent_root") final Bytes32 parent_root, - @JsonProperty("state_root") final Bytes32 state_root, - @JsonProperty("body") final BeaconBlockBody body) { - super(slot, proposer_index, parent_root, state_root, body); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/BeaconStatePhase0.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/BeaconStatePhase0.java deleted file mode 100644 index 2f8abbc1eb4..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/BeaconStatePhase0.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.phase0; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.api.schema.BeaconBlockHeader; -import tech.pegasys.teku.api.schema.BeaconState; -import tech.pegasys.teku.api.schema.Checkpoint; -import tech.pegasys.teku.api.schema.Eth1Data; -import tech.pegasys.teku.api.schema.Fork; -import tech.pegasys.teku.api.schema.PendingAttestation; -import tech.pegasys.teku.api.schema.Validator; -import tech.pegasys.teku.api.schema.interfaces.State; -import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.SpecVersion; -import tech.pegasys.teku.spec.datastructures.state.PendingAttestation.PendingAttestationSchema; -import tech.pegasys.teku.spec.datastructures.state.beaconstate.MutableBeaconState; - -@SuppressWarnings("JavaCase") -public class BeaconStatePhase0 extends BeaconState implements State { - public final List previous_epoch_attestations; - public final List current_epoch_attestations; - - @JsonCreator - public BeaconStatePhase0( - @JsonProperty("genesis_time") final UInt64 genesis_time, - @JsonProperty("genesis_validators_root") final Bytes32 genesis_validators_root, - @JsonProperty("slot") final UInt64 slot, - @JsonProperty("fork") final Fork fork, - @JsonProperty("latest_block_header") final BeaconBlockHeader latest_block_header, - @JsonProperty("block_roots") final List block_roots, - @JsonProperty("state_roots") final List state_roots, - @JsonProperty("historical_roots") final List historical_roots, - @JsonProperty("eth1_data") final Eth1Data eth1_data, - @JsonProperty("eth1_data_votes") final List eth1_data_votes, - @JsonProperty("eth1_deposit_index") final UInt64 eth1_deposit_index, - @JsonProperty("validators") final List validators, - @JsonProperty("balances") final List balances, - @JsonProperty("randao_mixes") final List randao_mixes, - @JsonProperty("slashings") final List slashings, - @JsonProperty("previous_epoch_attestations") - final List previous_epoch_attestations, - @JsonProperty("current_epoch_attestations") - final List current_epoch_attestations, - @JsonProperty("justification_bits") final SszBitvector justification_bits, - @JsonProperty("previous_justified_checkpoint") final Checkpoint previous_justified_checkpoint, - @JsonProperty("current_justified_checkpoint") final Checkpoint current_justified_checkpoint, - @JsonProperty("finalized_checkpoint") final Checkpoint finalized_checkpoint) { - super( - genesis_time, - genesis_validators_root, - slot, - fork, - latest_block_header, - block_roots, - state_roots, - historical_roots, - eth1_data, - eth1_data_votes, - eth1_deposit_index, - validators, - balances, - randao_mixes, - slashings, - justification_bits, - previous_justified_checkpoint, - current_justified_checkpoint, - finalized_checkpoint); - this.previous_epoch_attestations = previous_epoch_attestations; - this.current_epoch_attestations = current_epoch_attestations; - } - - public BeaconStatePhase0( - final tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState beaconState) { - super(beaconState); - // Optionally set phase0-specific versioned fields - final Optional< - tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.phase0 - .BeaconStatePhase0> - maybePhase0State = beaconState.toVersionPhase0(); - if (maybePhase0State.isPresent()) { - final tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.phase0 - .BeaconStatePhase0 - genesisState = maybePhase0State.get(); - this.previous_epoch_attestations = - genesisState.getPreviousEpochAttestations().stream() - .map(PendingAttestation::new) - .toList(); - this.current_epoch_attestations = - genesisState.getCurrentEpochAttestations().stream().map(PendingAttestation::new).toList(); - } else { - this.previous_epoch_attestations = null; - this.current_epoch_attestations = null; - } - } - - @Override - protected void applyAdditionalFields( - final MutableBeaconState state, final SpecVersion specVersion) { - state - .toMutableVersionPhase0() - .ifPresent( - mutableState -> { - final PendingAttestationSchema pendingAttestationSchema = - mutableState.getBeaconStateSchema().getPendingAttestationSchema(); - mutableState - .getPreviousEpochAttestations() - .setAll( - previous_epoch_attestations.stream() - .map( - pendingAttestation -> - pendingAttestation.asInternalPendingAttestation( - pendingAttestationSchema)) - .toList()); - mutableState - .getCurrentEpochAttestations() - .setAll( - current_epoch_attestations.stream() - .map( - pendingAttestation -> - pendingAttestation.asInternalPendingAttestation( - pendingAttestationSchema)) - .toList()); - }); - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final BeaconStatePhase0 that = (BeaconStatePhase0) o; - return Objects.equals(previous_epoch_attestations, that.previous_epoch_attestations) - && Objects.equals(current_epoch_attestations, that.current_epoch_attestations); - } - - @Override - public int hashCode() { - return Objects.hash(previous_epoch_attestations, current_epoch_attestations); - } -} diff --git a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/SignedBeaconBlockPhase0.java b/data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/SignedBeaconBlockPhase0.java deleted file mode 100644 index 465fc39dddb..00000000000 --- a/data/serializer/src/main/java/tech/pegasys/teku/api/schema/phase0/SignedBeaconBlockPhase0.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema.phase0; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import tech.pegasys.teku.api.schema.BLSSignature; -import tech.pegasys.teku.api.schema.BeaconBlock; -import tech.pegasys.teku.api.schema.SignedBeaconBlock; -import tech.pegasys.teku.api.schema.interfaces.SignedBlock; - -public class SignedBeaconBlockPhase0 extends SignedBeaconBlock implements SignedBlock { - - public SignedBeaconBlockPhase0( - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock) { - super(internalBlock); - } - - @JsonCreator - public SignedBeaconBlockPhase0( - @JsonProperty("message") final BeaconBlock message, - @JsonProperty("signature") final BLSSignature signature) { - super(message, signature); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/EventTypeTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/response/EventTypeTest.java similarity index 93% rename from data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/EventTypeTest.java rename to data/serializer/src/test/java/tech/pegasys/teku/api/response/EventTypeTest.java index 29aa4a6d9d9..ba05692a36a 100644 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/EventTypeTest.java +++ b/data/serializer/src/test/java/tech/pegasys/teku/api/response/EventTypeTest.java @@ -11,14 +11,13 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.response.v1; +package tech.pegasys.teku.api.response; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.List; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.response.EventType; public class EventTypeTest { @Test diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponseTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/response/ValidatorStatusUtilTest.java similarity index 82% rename from data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponseTest.java rename to data/serializer/src/test/java/tech/pegasys/teku/api/response/ValidatorStatusUtilTest.java index 541bad62315..3918bd35a1d 100644 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/response/v1/beacon/ValidatorResponseTest.java +++ b/data/serializer/src/test/java/tech/pegasys/teku/api/response/ValidatorStatusUtilTest.java @@ -11,7 +11,7 @@ * specific language governing permissions and limitations under the License. */ -package tech.pegasys.teku.api.response.v1.beacon; +package tech.pegasys.teku.api.response; import static org.assertj.core.api.Assertions.assertThat; import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; @@ -21,14 +21,13 @@ import org.apache.tuweni.bytes.Bytes32; import org.apache.tuweni.bytes.Bytes48; import org.junit.jupiter.api.Test; -import tech.pegasys.teku.api.response.ValidatorStatus; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.TestSpecFactory; import tech.pegasys.teku.spec.datastructures.state.Validator; import tech.pegasys.teku.spec.util.DataStructureUtil; -public class ValidatorResponseTest { +public class ValidatorStatusUtilTest { private static final UInt64 ONE_HUNDRED = UInt64.valueOf(100); private static final UInt64 TWO_HUNDRED = UInt64.valueOf(200); private final Spec spec = TestSpecFactory.createMinimalPhase0(); @@ -39,45 +38,45 @@ public class ValidatorResponseTest { @Test void status_shouldBePendingInitialised() { final Validator validator = pendingValidator(TWO_HUNDRED, FAR_FUTURE_EPOCH); - assertThat(ValidatorResponse.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) + assertThat(ValidatorStatusUtil.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.pending_initialized); } @Test void status_shouldBePendingQueued() { final Validator validator = pendingValidator(TWO_HUNDRED, TWO_HUNDRED); - assertThat(ValidatorResponse.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) + assertThat(ValidatorStatusUtil.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.pending_queued); } @Test void status_shouldBeActiveOngoing() { final Validator validator = activeValidator(FAR_FUTURE_EPOCH, false); - assertThat(ValidatorResponse.getValidatorStatus(ZERO, validator, FAR_FUTURE_EPOCH)) + assertThat(ValidatorStatusUtil.getValidatorStatus(ZERO, validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.active_ongoing); } @Test void status_shouldBeActiveExiting() { final Validator validator = activeValidator(TWO_HUNDRED, false); - assertThat(ValidatorResponse.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) + assertThat(ValidatorStatusUtil.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.active_exiting); } @Test void status_shouldBeActiveSlashed() { final Validator validator = activeValidator(TWO_HUNDRED, true); - assertThat(ValidatorResponse.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) + assertThat(ValidatorStatusUtil.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.active_slashed); } @Test void status_shouldBeExitedUnslashed() { final Validator validator = exitedValidator(ONE_HUNDRED, TWO_HUNDRED, false); - assertThat(ValidatorResponse.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) + assertThat(ValidatorStatusUtil.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.exited_unslashed); assertThat( - ValidatorResponse.getValidatorStatus( + ValidatorStatusUtil.getValidatorStatus( ONE_HUNDRED.plus(ONE), validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.exited_unslashed); } @@ -85,21 +84,21 @@ void status_shouldBeExitedUnslashed() { @Test void status_shouldBeExitedSlashed() { final Validator validator = exitedValidator(ONE_HUNDRED, TWO_HUNDRED, true); - assertThat(ValidatorResponse.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) + assertThat(ValidatorStatusUtil.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.exited_slashed); } @Test void status_shouldBeWithdrawalPossible() { final Validator validator = withdrawalValidator(UInt64.valueOf("32000000000"), ONE_HUNDRED); - assertThat(ValidatorResponse.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) + assertThat(ValidatorStatusUtil.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.withdrawal_possible); } @Test void status_shouldBeWithdrawalDone() { final Validator validator = withdrawalValidator(ZERO, ONE_HUNDRED); - assertThat(ValidatorResponse.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) + assertThat(ValidatorStatusUtil.getValidatorStatus(ONE_HUNDRED, validator, FAR_FUTURE_EPOCH)) .isEqualTo(ValidatorStatus.withdrawal_done); } diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/Eth1DataTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/Eth1DataTest.java deleted file mode 100644 index ec2be71bce2..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/Eth1DataTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class Eth1DataTest { - private final DataStructureUtil dataStructureUtil = - new DataStructureUtil(TestSpecFactory.createDefault()); - private final tech.pegasys.teku.spec.datastructures.blocks.Eth1Data eth1DataInternal = - dataStructureUtil.randomEth1Data(); - - @Test - public void shouldConvertToInternalObject() { - final Eth1Data eth1Data = new Eth1Data(eth1DataInternal); - assertThat(eth1Data.asInternalEth1Data()).isEqualTo(eth1DataInternal); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/ForkTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/ForkTest.java deleted file mode 100644 index ad9da160fa4..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/ForkTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class ForkTest { - private final DataStructureUtil dataStructureUtil = - new DataStructureUtil(TestSpecFactory.createDefault()); - private final tech.pegasys.teku.spec.datastructures.state.Fork forkInternal = - dataStructureUtil.randomFork(); - - @Test - public void shouldConvertToInternalObject() { - Fork fork = new Fork(forkInternal); - assertThat(fork.asInternalFork()).isEqualTo(forkInternal); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/LogLevelTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/LogLevelTest.java deleted file mode 100644 index c767d4b6a73..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/LogLevelTest.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; - -import org.apache.logging.log4j.Level; -import org.junit.jupiter.api.Test; - -public class LogLevelTest { - - @Test - public void shouldAcceptDebugLogLevelInUpperCase() { - final LogLevel level = new LogLevel("INFO"); - - assertThat(level.getLevel()).isEqualTo(Level.INFO); - } - - @Test - public void shouldAcceptDebugLogLevelInLowerCase() { - final LogLevel level = new LogLevel("info"); - - assertThat(level.getLevel()).isEqualTo(Level.INFO); - } - - @Test - public void shouldExceptionWhenLogLevelInvalid() { - - assertThatThrownBy(() -> new LogLevel("I'm an invalid log level")) - .isInstanceOf(IllegalArgumentException.class) - .hasMessageContaining("Unknown level constant [I'M AN INVALID LOG LEVEL]."); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/PendingAttestationTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/PendingAttestationTest.java deleted file mode 100644 index e913e5c0632..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/PendingAttestationTest.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class PendingAttestationTest { - private final Spec spec = TestSpecFactory.createMinimalPhase0(); - private final DataStructureUtil dataStructureUtil = new DataStructureUtil(spec); - private final tech.pegasys.teku.spec.datastructures.state.PendingAttestation attestationInternal = - dataStructureUtil.randomPendingAttestation(); - - @Test - public void shouldConvertToInternalObject() { - final PendingAttestation pendingAttestation = new PendingAttestation(attestationInternal); - assertThat(pendingAttestation.asInternalPendingAttestation(attestationInternal.getSchema())) - .isEqualTo(attestationInternal); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/SignedBeaconBlockTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/SignedBeaconBlockTest.java deleted file mode 100644 index f208821bd76..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/SignedBeaconBlockTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static tech.pegasys.teku.infrastructure.ssz.SszDataAssert.assertThatSszData; - -import org.junit.jupiter.api.TestTemplate; -import tech.pegasys.teku.spec.TestSpecContext; -import tech.pegasys.teku.spec.TestSpecInvocationContextProvider.SpecContext; - -@TestSpecContext(allMilestones = true) -class SignedBeaconBlockTest { - - @TestTemplate - public void shouldConvertSchemaToInternalCorrectly(final SpecContext ctx) { - - final tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock internalBlock = - ctx.getDataStructureUtil().randomSignedBeaconBlock(1); - final SignedBeaconBlock apiBlock = SignedBeaconBlock.create(internalBlock); - assertThatSszData(apiBlock.asInternalSignedBeaconBlock(ctx.getSpec())) - .isEqualByAllMeansTo(internalBlock); - } -} diff --git a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/ValidatorTest.java b/data/serializer/src/test/java/tech/pegasys/teku/api/schema/ValidatorTest.java deleted file mode 100644 index 6e28227a0ee..00000000000 --- a/data/serializer/src/test/java/tech/pegasys/teku/api/schema/ValidatorTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.api.schema; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class ValidatorTest { - private final DataStructureUtil dataStructureUtil = - new DataStructureUtil(TestSpecFactory.createDefault()); - private final tech.pegasys.teku.spec.datastructures.state.Validator validatorInternal = - dataStructureUtil.randomValidator(); - - @Test - public void shouldConvertToInternalObject() { - final Validator validator = new Validator(validatorInternal); - assertThat(validator.asInternalValidator()).isEqualTo(validatorInternal); - } -} diff --git a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorData.java b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorData.java index 2fabd12cdcd..0edfb1bd7cc 100644 --- a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorData.java +++ b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/beacon/StateValidatorData.java @@ -16,7 +16,7 @@ import java.util.Objects; import java.util.Optional; import tech.pegasys.teku.api.response.ValidatorStatus; -import tech.pegasys.teku.api.response.v1.beacon.ValidatorResponse; +import tech.pegasys.teku.api.response.ValidatorStatusUtil; import tech.pegasys.teku.bls.BLSPublicKey; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.state.Validator; @@ -43,7 +43,7 @@ public static Optional fromState( new StateValidatorData( UInt64.valueOf(index), state.getBalances().getElement(index), - ValidatorResponse.getValidatorStatus(epoch, validatorInternal, farFutureEpoch), + ValidatorStatusUtil.getValidatorStatus(epoch, validatorInternal, farFutureEpoch), validatorInternal); return Optional.of(data); } From 9af5370c6a9bb9a54826f7ea9fc43a445ae1d770 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Tue, 29 Apr 2025 09:54:44 +1200 Subject: [PATCH 19/33] Added KZG computeCells method (#9375) * Added KZG computeCells method * Moved KZG no-operation logic into testFixture class --- eth-reference-tests/build.gradle | 1 + .../pegasys/teku/reference/KzgRetriever.java | 3 +- .../ExecutionLayerChannelStub.java | 2 +- .../teku/spec/generator/ChainBuilder.java | 4 +- gradle/versions.gradle | 2 +- infrastructure/kzg/build.gradle | 1 + .../java/tech/pegasys/teku/kzg/CKZG4844.java | 10 +++ .../main/java/tech/pegasys/teku/kzg/KZG.java | 25 ++++-- .../java/tech/pegasys/teku/kzg/RustKZG.java | 7 ++ .../tech/pegasys/teku/kzg/RustWithCKZG.java | 19 +++-- .../pegasys/teku/kzg/KZGAbstractTest.java | 8 ++ .../java/tech/pegasys/teku/kzg/NoOpKZG.java | 84 +++++++++++++++++++ networking/eth2/build.gradle | 1 + .../eth2/Eth2P2PNetworkFactory.java | 4 +- .../beaconchain/BeaconChainController.java | 2 +- 15 files changed, 149 insertions(+), 24 deletions(-) create mode 100644 infrastructure/kzg/src/testFixtures/java/tech/pegasys/teku/kzg/NoOpKZG.java diff --git a/eth-reference-tests/build.gradle b/eth-reference-tests/build.gradle index b6c65513dc5..94073b33220 100644 --- a/eth-reference-tests/build.gradle +++ b/eth-reference-tests/build.gradle @@ -17,6 +17,7 @@ dependencies { referenceTestImplementation project(':infrastructure:async') referenceTestImplementation project(':infrastructure:io') referenceTestImplementation testFixtures(project(':infrastructure:async')) + referenceTestImplementation testFixtures(project(':infrastructure:kzg')) referenceTestImplementation testFixtures(project(':infrastructure:metrics')) referenceTestImplementation project(':infrastructure:time') referenceTestImplementation project(':data:dataexchange') diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/KzgRetriever.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/KzgRetriever.java index a21514a1cb5..c0fa4b1e76b 100644 --- a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/KzgRetriever.java +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/KzgRetriever.java @@ -16,6 +16,7 @@ import com.google.common.collect.Maps; import java.util.Map; import tech.pegasys.teku.kzg.KZG; +import tech.pegasys.teku.kzg.NoOpKZG; import tech.pegasys.teku.networks.Eth2NetworkConfiguration; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.SpecMilestone; @@ -29,7 +30,7 @@ public static KZG getKzgWithLoadedTrustedSetup(final Spec spec, final String net || spec.isMilestoneSupported(SpecMilestone.ELECTRA)) { return getKzgWithLoadedTrustedSetup(network); } - return KZG.NOOP; + return NoOpKZG.INSTANCE; } public static KZG getKzgWithLoadedTrustedSetup(final String network) { diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/executionlayer/ExecutionLayerChannelStub.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/executionlayer/ExecutionLayerChannelStub.java index 7e9af041716..00ded9246f6 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/executionlayer/ExecutionLayerChannelStub.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/executionlayer/ExecutionLayerChannelStub.java @@ -126,7 +126,7 @@ public ExecutionLayerChannelStub( // trusted setup loading will be handled by the BeaconChainController kzg = KZG.getInstance(false); } else { - kzg = KZG.NOOP; + kzg = KZG.DISABLED; } this.blobsUtil = new BlobsUtil(spec, kzg); } diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/generator/ChainBuilder.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/generator/ChainBuilder.java index 829c64f3ebf..bc3eeabdac2 100644 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/generator/ChainBuilder.java +++ b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/generator/ChainBuilder.java @@ -41,9 +41,9 @@ import tech.pegasys.teku.infrastructure.async.SyncAsyncRunner; import tech.pegasys.teku.infrastructure.ssz.SszList; import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.kzg.KZG; import tech.pegasys.teku.kzg.KZGCommitment; import tech.pegasys.teku.kzg.KZGProof; +import tech.pegasys.teku.kzg.NoOpKZG; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.SpecMilestone; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.Blob; @@ -111,7 +111,7 @@ private ChainBuilder( final Optional maybeEarliestBlobSidecarSlot) { this.spec = spec; this.validatorKeys = validatorKeys; - this.blobsUtil = new BlobsUtil(spec, KZG.NOOP); + this.blobsUtil = new BlobsUtil(spec, NoOpKZG.INSTANCE); this.attestationGenerator = new AttestationGenerator(spec, validatorKeys); this.attesterSlashingGenerator = new AttesterSlashingGenerator(spec, validatorKeys); this.proposerSlashingGenerator = new ProposerSlashingGenerator(spec, validatorKeys); diff --git a/gradle/versions.gradle b/gradle/versions.gradle index f5e690f1bd0..a7bfc507482 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -35,7 +35,7 @@ dependencyManagement { dependency 'io.libp2p:jvm-libp2p:1.2.2-RELEASE' dependency 'tech.pegasys:jblst:0.3.12' dependency 'io.consensys.protocols:jc-kzg-4844:2.1.1' - dependency 'io.github.crate-crypto:java-eth-kzg:0.5.2' + dependency 'io.github.crate-crypto:java-eth-kzg:0.5.4' dependency 'org.hdrhistogram:HdrHistogram:2.2.2' diff --git a/infrastructure/kzg/build.gradle b/infrastructure/kzg/build.gradle index 66a8b08f7fc..d074cfd9d17 100644 --- a/infrastructure/kzg/build.gradle +++ b/infrastructure/kzg/build.gradle @@ -9,4 +9,5 @@ dependencies { implementation 'commons-io:commons-io' testFixturesImplementation 'com.google.guava:guava' + testFixturesImplementation 'io.consensys.tuweni:tuweni-bytes' } diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844.java index ca973616fea..feef1cc7ba0 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/CKZG4844.java @@ -155,6 +155,16 @@ public KZGProof computeBlobKzgProof(final Bytes blob, final KZGCommitment kzgCom } } + @Override + public List computeCells(final Bytes blob) throws KZGException { + try { + final byte[] cells = CKZG4844JNI.computeCells(blob.toArrayUnsafe()); + return KZGCell.splitBytes(Bytes.wrap(cells)); + } catch (final Exception ex) { + throw new KZGException("Failed to compute KZG cells for blob " + blob.toShortHexString(), ex); + } + } + @Override public List computeCellsAndProofs(final Bytes blob) { final CellsAndProofs cellsAndProofs = diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZG.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZG.java index 86e86507f7d..2472b42f3c5 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZG.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/KZG.java @@ -16,7 +16,6 @@ import java.math.BigInteger; import java.util.List; import org.apache.tuweni.bytes.Bytes; -import org.apache.tuweni.bytes.Bytes48; /** * This interface specifies all the KZG functions needed for the Deneb specification and is the @@ -35,7 +34,7 @@ static KZG getInstance(final boolean rustKzgEnabled) { return rustKzgEnabled ? RustWithCKZG.getInstance() : CKZG4844.getInstance(); } - KZG NOOP = + KZG DISABLED = new KZG() { @Override @@ -48,7 +47,7 @@ public void freeTrustedSetup() throws KZGException {} public boolean verifyBlobKzgProof( final Bytes blob, final KZGCommitment kzgCommitment, final KZGProof kzgProof) throws KZGException { - return true; + throw new UnsupportedOperationException("KZG is disabled"); } @Override @@ -57,23 +56,28 @@ public boolean verifyBlobKzgProofBatch( final List kzgCommitments, final List kzgProofs) throws KZGException { - return true; + throw new UnsupportedOperationException("KZG is disabled"); } @Override public KZGCommitment blobToKzgCommitment(final Bytes blob) throws KZGException { - return KZGCommitment.fromBytesCompressed(Bytes48.ZERO); + throw new UnsupportedOperationException("KZG is disabled"); } @Override public KZGProof computeBlobKzgProof(final Bytes blob, final KZGCommitment kzgCommitment) throws KZGException { - return KZGProof.fromBytesCompressed(Bytes48.ZERO); + throw new UnsupportedOperationException("KZG is disabled"); + } + + @Override + public List computeCells(Bytes blob) { + throw new UnsupportedOperationException("KZG is disabled"); } @Override public List computeCellsAndProofs(Bytes blob) { - throw new RuntimeException("Not implemented"); + throw new UnsupportedOperationException("KZG is disabled"); } @Override @@ -81,12 +85,12 @@ public boolean verifyCellProofBatch( List commitments, List cellWithIDs, List proofs) { - return false; + throw new UnsupportedOperationException("KZG is disabled"); } @Override public List recoverCellsAndProofs(List cells) { - throw new RuntimeException("Not implemented"); + throw new UnsupportedOperationException("KZG is disabled"); } }; @@ -107,6 +111,9 @@ boolean verifyBlobKzgProofBatch( // Fulu PeerDAS methods + List computeCells(Bytes blob); + + @Deprecated(since = "Use computeCells instead, computeCellsAndProof is not for production") List computeCellsAndProofs(Bytes blob); boolean verifyCellProofBatch( diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustKZG.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustKZG.java index 53489af8b81..51c532487ee 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustKZG.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustKZG.java @@ -14,6 +14,7 @@ package tech.pegasys.teku.kzg; import com.google.common.collect.Streams; +import ethereum.cryptography.Cells; import ethereum.cryptography.CellsAndProofs; import ethereum.cryptography.LibEthKZG; import java.util.Arrays; @@ -102,6 +103,12 @@ public KZGProof computeBlobKzgProof(final Bytes blob, final KZGCommitment kzgCom throw new RuntimeException("LibPeerDASKZG library doesn't support computeBlobKzgProof"); } + @Override + public List computeCells(final Bytes blob) { + final Cells cells = library.computeCells(blob.toArrayUnsafe()); + return KZGCell.splitBytes(Bytes.wrap(cells.toBytes())); + } + @Override public List computeCellsAndProofs(final Bytes blob) { final CellsAndProofs cellsAndProofs = library.computeCellsAndKZGProofs(blob.toArrayUnsafe()); diff --git a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustWithCKZG.java b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustWithCKZG.java index 972a5e7693a..1dd47803855 100644 --- a/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustWithCKZG.java +++ b/infrastructure/kzg/src/main/java/tech/pegasys/teku/kzg/RustWithCKZG.java @@ -28,7 +28,7 @@ final class RustWithCKZG implements KZG { private static RustWithCKZG instance; private final CKZG4844 ckzg4844Delegate; - private final RustKZG rustKzgDelegeate; + private final RustKZG rustKzgDelegate; static synchronized RustWithCKZG getInstance() { if (instance == null) { @@ -39,13 +39,13 @@ static synchronized RustWithCKZG getInstance() { private RustWithCKZG() { this.ckzg4844Delegate = CKZG4844.getInstance(); - this.rustKzgDelegeate = RustKZG.getInstance(); + this.rustKzgDelegate = RustKZG.getInstance(); } @Override public synchronized void loadTrustedSetup(final String trustedSetupFile) throws KZGException { ckzg4844Delegate.loadTrustedSetup(trustedSetupFile); - rustKzgDelegeate.loadTrustedSetup(trustedSetupFile); + rustKzgDelegate.loadTrustedSetup(trustedSetupFile); } @Override @@ -58,7 +58,7 @@ public synchronized void freeTrustedSetup() throws KZGException { } KZGException rustKzgDelegateException = null; try { - rustKzgDelegeate.freeTrustedSetup(); + rustKzgDelegate.freeTrustedSetup(); } catch (final KZGException ex) { rustKzgDelegateException = ex; } @@ -102,9 +102,14 @@ public KZGProof computeBlobKzgProof(final Bytes blob, final KZGCommitment kzgCom return ckzg4844Delegate.computeBlobKzgProof(blob, kzgCommitment); } + @Override + public List computeCells(final Bytes blob) { + return rustKzgDelegate.computeCells(blob); + } + @Override public List computeCellsAndProofs(final Bytes blob) { - return rustKzgDelegeate.computeCellsAndProofs(blob); + return rustKzgDelegate.computeCellsAndProofs(blob); } @Override @@ -112,11 +117,11 @@ public boolean verifyCellProofBatch( final List commitments, final List cellWithIds, final List proofs) { - return rustKzgDelegeate.verifyCellProofBatch(commitments, cellWithIds, proofs); + return rustKzgDelegate.verifyCellProofBatch(commitments, cellWithIds, proofs); } @Override public List recoverCellsAndProofs(final List cells) { - return rustKzgDelegeate.recoverCellsAndProofs(cells); + return rustKzgDelegate.recoverCellsAndProofs(cells); } } diff --git a/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/KZGAbstractTest.java b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/KZGAbstractTest.java index 6bb2cde9432..d449fec49dd 100644 --- a/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/KZGAbstractTest.java +++ b/infrastructure/kzg/src/test/java/tech/pegasys/teku/kzg/KZGAbstractTest.java @@ -300,6 +300,14 @@ public void testComputeRecoverCellsAndProofs() { assertThat(recoveredCells).isEqualTo(cellAndProofs); } + @Test + public void testComputeCellsAndProofsEqualsComputeCells() { + Bytes blob = getSampleBlob(); + List cellAndProofs = kzg.computeCellsAndProofs(blob); + List cells = kzg.computeCells(blob); + assertThat(cells).isEqualTo(cellAndProofs.stream().map(KZGCellAndProof::cell).toList()); + } + private List getSampleBlobs(final int count) { return IntStream.range(0, count).mapToObj(__ -> getSampleBlob()).collect(Collectors.toList()); } diff --git a/infrastructure/kzg/src/testFixtures/java/tech/pegasys/teku/kzg/NoOpKZG.java b/infrastructure/kzg/src/testFixtures/java/tech/pegasys/teku/kzg/NoOpKZG.java new file mode 100644 index 00000000000..c0f71a46f2a --- /dev/null +++ b/infrastructure/kzg/src/testFixtures/java/tech/pegasys/teku/kzg/NoOpKZG.java @@ -0,0 +1,84 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.kzg; + +import java.util.List; +import org.apache.tuweni.bytes.Bytes; +import org.apache.tuweni.bytes.Bytes48; + +public class NoOpKZG implements KZG { + + public static final NoOpKZG INSTANCE = new NoOpKZG(); + + @Override + public void loadTrustedSetup(final String trustedSetupFile) throws KZGException { + // DO NOTHING + } + + @Override + public void freeTrustedSetup() throws KZGException { + // DO NOTHING + } + + @Override + public boolean verifyCellProofBatch( + final List commitments, + final List cellWithIDs, + final List proofs) { + return true; + } + + @Override + public List recoverCellsAndProofs(final List cells) { + return List.of(); + } + + @Override + @Deprecated(since = "Use computeCells instead, computeCellsAndProof is not for production") + public List computeCellsAndProofs(final Bytes blob) { + return List.of(); + } + + @Override + public List computeCells(final Bytes blob) { + return List.of(); + } + + @Override + public KZGProof computeBlobKzgProof(final Bytes blob, final KZGCommitment kzgCommitment) + throws KZGException { + return KZGProof.fromBytesCompressed(Bytes48.ZERO); + } + + @Override + public KZGCommitment blobToKzgCommitment(final Bytes blob) throws KZGException { + return KZGCommitment.fromBytesCompressed(Bytes48.ZERO); + } + + @Override + public boolean verifyBlobKzgProofBatch( + final List blobs, + final List kzgCommitments, + final List kzgProofs) + throws KZGException { + return true; + } + + @Override + public boolean verifyBlobKzgProof( + final Bytes blob, final KZGCommitment kzgCommitment, final KZGProof kzgProof) + throws KZGException { + return true; + } +} diff --git a/networking/eth2/build.gradle b/networking/eth2/build.gradle index d975bc73fba..13f9dad2d2f 100644 --- a/networking/eth2/build.gradle +++ b/networking/eth2/build.gradle @@ -48,6 +48,7 @@ dependencies { testFixturesImplementation testFixtures(project(':infrastructure:async')) testFixturesImplementation project(':infrastructure:bytes') testFixturesImplementation testFixtures(project(':infrastructure:events')) + testFixturesImplementation testFixtures(project(':infrastructure:kzg')) testFixturesImplementation testFixtures(project(':infrastructure:metrics')) testFixturesImplementation testFixtures(project(':infrastructure:time')) testFixturesImplementation testFixtures(project(':storage')) diff --git a/networking/eth2/src/testFixtures/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkFactory.java b/networking/eth2/src/testFixtures/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkFactory.java index f2e66ed2cb2..652b65587a4 100644 --- a/networking/eth2/src/testFixtures/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkFactory.java +++ b/networking/eth2/src/testFixtures/java/tech/pegasys/teku/networking/eth2/Eth2P2PNetworkFactory.java @@ -44,7 +44,7 @@ import tech.pegasys.teku.infrastructure.subscribers.Subscribers; import tech.pegasys.teku.infrastructure.time.StubTimeProvider; import tech.pegasys.teku.infrastructure.time.TimeProvider; -import tech.pegasys.teku.kzg.KZG; +import tech.pegasys.teku.kzg.NoOpKZG; import tech.pegasys.teku.network.p2p.jvmlibp2p.PrivateKeyGenerator; import tech.pegasys.teku.networking.eth2.gossip.config.GossipConfigurator; import tech.pegasys.teku.networking.eth2.gossip.encoding.GossipEncoding; @@ -230,7 +230,7 @@ protected Eth2P2PNetwork buildNetwork(final P2PConfig config) { P2PConfig.DEFAULT_PEER_BLOB_SIDECARS_RATE_LIMIT, P2PConfig.DEFAULT_PEER_REQUEST_LIMIT, spec, - KZG.NOOP, + NoOpKZG.INSTANCE, (__) -> Optional.empty()); List> rpcMethods = diff --git a/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java b/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java index 9d6157fc87b..fbf4dab4c6f 100644 --- a/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java +++ b/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java @@ -571,7 +571,7 @@ protected void initKzg() { "Trusted setup should be configured when Deneb is enabled")); kzg.loadTrustedSetup(trustedSetupFile); } else { - kzg = KZG.NOOP; + kzg = KZG.DISABLED; } } From 178a6bd06d555ca3aa1335112e63eb7c7c9ab995 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Tue, 29 Apr 2025 11:12:39 +1200 Subject: [PATCH 20/33] Fulu Schemas (ssz + datastructures) - including fulu ssz ref tests (#9363) --- .../v1/node/GetIdentityIntegrationTest.java | 4 +- .../teku/reference/Eth2ReferenceTestCase.java | 13 ++ .../altair/fork/ForkUpgradeTestExecutor.java | 5 + ...gComputeCellsAndKzgProofsTestExecutor.java | 76 ++++++++ .../kzg/KzgComputeCellsTestExecutor.java | 76 ++++++++ ...gRecoverCellsAndKzgProofsTestExecutor.java | 111 ++++++++++++ .../teku/reference/phase0/kzg/KzgTests.java | 5 + ...zgVerifyCellKzgProofBatchTestExecutor.java | 100 +++++++++++ .../phase0/ssz_static/SszTestExecutor.java | 15 ++ .../tech/pegasys/teku/ethtests/TestFork.java | 1 + .../ethtests/finder/ReferenceTestFinder.java | 3 +- .../teku/ethtests/finder/TestDefinition.java | 1 + .../blobs/versions/fulu/Cell.java | 33 ++++ .../blobs/versions/fulu/CellSchema.java | 38 ++++ .../blobs/versions/fulu/DataColumn.java | 29 ++++ .../blobs/versions/fulu/DataColumnSchema.java | 39 +++++ .../versions/fulu/DataColumnSidecar.java | 143 +++++++++++++++ .../fulu/DataColumnSidecarSchema.java | 164 ++++++++++++++++++ .../blobs/versions/fulu/MatrixEntry.java | 63 +++++++ .../versions/fulu/MatrixEntrySchema.java | 66 +++++++ .../libp2p/rpc/DataColumnIdentifier.java | 65 +++++++ ...taColumnSidecarsByRangeRequestMessage.java | 100 +++++++++++ ...ataColumnSidecarsByRootRequestMessage.java | 44 +++++ ...umnSidecarsByRootRequestMessageSchema.java | 31 ++++ .../libp2p/rpc/metadata/MetadataMessage.java | 4 + .../rpc/metadata/MetadataMessageSchema.java | 7 +- .../altair/MetadataMessageSchemaAltair.java | 6 +- .../versions/fulu/MetadataMessageFulu.java | 72 ++++++++ .../fulu/MetadataMessageSchemaFulu.java | 73 ++++++++ .../phase0/MetadataMessageSchemaPhase0.java | 6 +- .../util/DataColumnSlotAndIdentifier.java | 59 +++++++ .../spec/schemas/SchemaDefinitionsFulu.java | 56 ++++++ .../registry/SchemaRegistryBuilder.java | 104 ++++++++++- .../spec/schemas/registry/SchemaTypes.java | 24 +++ .../libp2p/rpc/MetadataMessageTest.java | 10 +- .../infrastructure/logging/LogFormatter.java | 12 ++ .../impl/SszByteVectorSchemaImpl.java | 4 + .../methods/MetadataMessagesFactory.java | 12 +- 38 files changed, 1663 insertions(+), 11 deletions(-) create mode 100644 eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgComputeCellsAndKzgProofsTestExecutor.java create mode 100644 eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgComputeCellsTestExecutor.java create mode 100644 eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgRecoverCellsAndKzgProofsTestExecutor.java create mode 100644 eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgVerifyCellKzgProofBatchTestExecutor.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/Cell.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/CellSchema.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumn.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSchema.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSidecar.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSidecarSchema.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/MatrixEntry.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/MatrixEntrySchema.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnIdentifier.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRangeRequestMessage.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessage.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/fulu/MetadataMessageFulu.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/fulu/MetadataMessageSchemaFulu.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/node/GetIdentityIntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/node/GetIdentityIntegrationTest.java index 32b34ba217c..4d0f2e83fc8 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/node/GetIdentityIntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/node/GetIdentityIntegrationTest.java @@ -56,7 +56,7 @@ public void shouldReturnNetworkIdentity() throws Exception { final MetadataMessage metadataMessage = spec.getGenesisSchemaDefinitions() .getMetadataMessageSchema() - .create(seqnr, List.of(1, 11, 15), Collections.emptyList()); + .create(seqnr, List.of(1, 11, 15), Collections.emptyList(), Optional.empty()); when(eth2P2PNetwork.getMetadata()).thenReturn(metadataMessage); @@ -73,7 +73,7 @@ public void shouldReturnNetworkIdentityAltair() throws Exception { final MetadataMessage metadataMessage = spec.getGenesisSchemaDefinitions() .getMetadataMessageSchema() - .create(seqnr, List.of(1, 11, 15), List.of(0, 1, 2, 3)); + .create(seqnr, List.of(1, 11, 15), List.of(0, 1, 2, 3), Optional.empty()); when(eth2P2PNetwork.getMetadata()).thenReturn(metadataMessage); diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/Eth2ReferenceTestCase.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/Eth2ReferenceTestCase.java index 0fdc506b0f5..6ef979d43f0 100644 --- a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/Eth2ReferenceTestCase.java +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/Eth2ReferenceTestCase.java @@ -98,6 +98,18 @@ public abstract class Eth2ReferenceTestCase { .putAll(MerkleProofTests.MERKLE_PROOF_TEST_TYPES) .build(); + private static final ImmutableMap FULU_TEST_TYPES = + ImmutableMap.builder() + .putAll(ForkUpgradeTestExecutor.FORK_UPGRADE_TEST_TYPES) + .putAll(RewardsTestExecutorBellatrix.REWARDS_TEST_TYPES) + .put("merkle_proof/single_merkle_proof", TestExecutor.IGNORE_TESTS) + // TODO-fulu enable merkle proof tests + // .putAll(MerkleProofTests.MERKLE_PROOF_TEST_TYPES) + // TODO-fulu networking test types (networking/compute_columns_for_custody_group) + .put("networking/get_custody_groups", TestExecutor.IGNORE_TESTS) + .put("networking/compute_columns_for_custody_group", TestExecutor.IGNORE_TESTS) + .build(); + protected void runReferenceTest(final TestDefinition testDefinition) throws Throwable { getExecutorFor(testDefinition).runTest(testDefinition); } @@ -112,6 +124,7 @@ private TestExecutor getExecutorFor(final TestDefinition testDefinition) { case TestFork.CAPELLA -> CAPELLA_TEST_TYPES.get(testDefinition.getTestType()); case TestFork.DENEB -> DENEB_TEST_TYPES.get(testDefinition.getTestType()); case TestFork.ELECTRA -> ELECTRA_TEST_TYPES.get(testDefinition.getTestType()); + case TestFork.FULU -> FULU_TEST_TYPES.get(testDefinition.getTestType()); default -> null; }; diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/altair/fork/ForkUpgradeTestExecutor.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/altair/fork/ForkUpgradeTestExecutor.java index ed28863f639..8b4df02fe57 100644 --- a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/altair/fork/ForkUpgradeTestExecutor.java +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/altair/fork/ForkUpgradeTestExecutor.java @@ -29,6 +29,7 @@ import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.bellatrix.BeaconStateSchemaBellatrix; import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.capella.BeaconStateSchemaCapella; import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.deneb.BeaconStateSchemaDeneb; +import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.electra.BeaconStateSchemaElectra; import tech.pegasys.teku.spec.datastructures.state.beaconstate.versions.phase0.BeaconStateSchemaPhase0; import tech.pegasys.teku.spec.logic.common.forktransition.StateUpgrade; @@ -65,6 +66,10 @@ private void processUpgrade(final TestDefinition testDefinition, final SpecMiles BeaconStateSchemaDeneb.create( previousMilestoneSpecVersion.getConfig(), previousMilestoneSpecVersion.getSchemaDefinitions().getSchemaRegistry()); + case FULU -> + BeaconStateSchemaElectra.create( + previousMilestoneSpecVersion.getConfig(), + previousMilestoneSpecVersion.getSchemaDefinitions().getSchemaRegistry()); default -> throw new IllegalStateException( "Unhandled fork upgrade for test " diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgComputeCellsAndKzgProofsTestExecutor.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgComputeCellsAndKzgProofsTestExecutor.java new file mode 100644 index 00000000000..648bd0c0b19 --- /dev/null +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgComputeCellsAndKzgProofsTestExecutor.java @@ -0,0 +1,76 @@ +/* + * Copyright Consensys Software Inc., 2022 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.reference.phase0.kzg; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.collect.Streams; +import java.util.List; +import org.apache.tuweni.bytes.Bytes; +import tech.pegasys.teku.ethtests.finder.TestDefinition; +import tech.pegasys.teku.kzg.KZG; +import tech.pegasys.teku.kzg.KZGCell; +import tech.pegasys.teku.kzg.KZGCellAndProof; +import tech.pegasys.teku.kzg.KZGProof; + +public class KzgComputeCellsAndKzgProofsTestExecutor extends KzgTestExecutor { + + @Override + @SuppressWarnings("deprecation") + public void runTest(final TestDefinition testDefinition, final KZG kzg) throws Throwable { + final Data data = loadDataFile(testDefinition, Data.class); + final List expectedKzgCellsAndProofs = data.getOutput(); + List actualKzgCellsAndProofs; + try { + final Bytes blob = data.getInput().getBlob(); + actualKzgCellsAndProofs = kzg.computeCellsAndProofs(blob); + } catch (final RuntimeException ex) { + actualKzgCellsAndProofs = null; + } + assertThat(actualKzgCellsAndProofs).isEqualTo(expectedKzgCellsAndProofs); + } + + private static class Data { + @JsonProperty(value = "input", required = true) + private Input input; + + @JsonProperty(value = "output", required = true) + private List[] output; + + public Input getInput() { + return input; + } + + public List getOutput() { + return output == null + ? null + : Streams.zip( + output[0].stream() + .map(cellString -> new KZGCell(Bytes.fromHexString(cellString))), + output[1].stream().map(KZGProof::fromHexString), + KZGCellAndProof::new) + .toList(); + } + + private static class Input { + @JsonProperty(value = "blob", required = true) + private String blob; + + public Bytes getBlob() { + return Bytes.fromHexString(blob); + } + } + } +} diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgComputeCellsTestExecutor.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgComputeCellsTestExecutor.java new file mode 100644 index 00000000000..c7ed5168555 --- /dev/null +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgComputeCellsTestExecutor.java @@ -0,0 +1,76 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.reference.phase0.kzg; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import org.apache.tuweni.bytes.Bytes; +import tech.pegasys.teku.ethtests.finder.TestDefinition; +import tech.pegasys.teku.kzg.KZG; +import tech.pegasys.teku.kzg.KZGCell; + +public class KzgComputeCellsTestExecutor extends KzgTestExecutor { + + @Override + public void runTest(final TestDefinition testDefinition, final KZG kzg) throws Throwable { + final Data data = loadDataFile(testDefinition, Data.class); + final List expectedKzgCells = data.getOutput(); + List actualKzgCells; + try { + final Bytes blob = data.getInput().getBlob(); + actualKzgCells = kzg.computeCells(blob); + } catch (final RuntimeException ex) { + actualKzgCells = null; + } + + if (expectedKzgCells == null) { + assertThat(actualKzgCells).isNull(); + } else { + assertThat(actualKzgCells).isEqualTo(expectedKzgCells); + } + } + + private static class Data { + + @JsonProperty(value = "input", required = true) + private Input input; + + @JsonProperty(value = "output", required = true) + private List output; + + public Input getInput() { + return input; + } + + public List getOutput() { + return output == null + ? null + : output.stream() + .map(cellString -> new KZGCell(Bytes.fromHexString(cellString))) + .toList(); + } + + private static class Input { + + @JsonProperty(value = "blob", required = true) + private String blob; + + public Bytes getBlob() { + return Bytes.fromHexString(blob); + } + } + } +} diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgRecoverCellsAndKzgProofsTestExecutor.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgRecoverCellsAndKzgProofsTestExecutor.java new file mode 100644 index 00000000000..74b165a8f74 --- /dev/null +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgRecoverCellsAndKzgProofsTestExecutor.java @@ -0,0 +1,111 @@ +/* + * Copyright Consensys Software Inc., 2022 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.reference.phase0.kzg; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.collect.Streams; +import java.util.List; +import java.util.stream.IntStream; +import org.apache.tuweni.bytes.Bytes; +import org.apache.tuweni.bytes.Bytes48; +import tech.pegasys.teku.ethtests.finder.TestDefinition; +import tech.pegasys.teku.kzg.KZG; +import tech.pegasys.teku.kzg.KZGCell; +import tech.pegasys.teku.kzg.KZGCellAndProof; +import tech.pegasys.teku.kzg.KZGCellWithColumnId; +import tech.pegasys.teku.kzg.KZGProof; + +public class KzgRecoverCellsAndKzgProofsTestExecutor extends KzgTestExecutor { + + @Override + public void runTest(final TestDefinition testDefinition, final KZG kzg) throws Throwable { + final Data data = loadDataFile(testDefinition, Data.class); + final List expectedKzgCells = data.getOutput(); + List actualKzgCells; + try { + final List cellIds = data.getInput().getCellIndices(); + final List cells = data.getInput().getCells(); + if (cells.size() != cellIds.size()) { + throw new RuntimeException("Cells doesn't match ids"); + } + final List cellWithIds = + Streams.zip(cells.stream(), cellIds.stream(), KZGCellWithColumnId::fromCellAndColumn) + .toList(); + actualKzgCells = kzg.recoverCellsAndProofs(cellWithIds); + } catch (final RuntimeException ex) { + actualKzgCells = null; + } + assertThat(actualKzgCells).isEqualTo(expectedKzgCells); + } + + private static class Data { + @JsonProperty(value = "input", required = true) + private Input input; + + @JsonProperty(value = "output", required = true) + private List> output; + + public Input getInput() { + return input; + } + + public List getOutput() { + if (output == null) { + return null; + } + final List cellStrings = output.get(0); + final List proofStrings = output.get(1); + if (cellStrings.size() != proofStrings.size()) { + throw new RuntimeException("Number of cells and proofs should be the same"); + } + return IntStream.range(0, cellStrings.size()) + .mapToObj( + index -> + new KZGCellAndProof( + new KZGCell(Bytes.fromHexString(cellStrings.get(index))), + KZGProof.fromHexString(proofStrings.get(index)))) + .toList(); + } + + private static class Input { + @JsonProperty(value = "cell_indices", required = true) + private List cellIndices; + + @JsonProperty(value = "cells", required = true) + private List cells; + + @JsonProperty(value = "proofs", required = true) + private List proofs; + + public List getCellIndices() { + return cellIndices; + } + + public List getCells() { + return cells.stream() + .map(cellString -> new KZGCell(Bytes.fromHexString(cellString))) + .toList(); + } + + @SuppressWarnings("Unused") + public List getProfos() { + return proofs.stream() + .map(proofString -> new KZGProof(Bytes48.fromHexString(proofString))) + .toList(); + } + } + } +} diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgTests.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgTests.java index 6b2c9b50bdb..5e465c392d6 100644 --- a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgTests.java +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgTests.java @@ -29,5 +29,10 @@ public class KzgTests { .put("kzg/verify_blob_kzg_proof_batch", new KzgVerifyBlobProofBatchTestExecutor()) // no KZG interface on CL side, EL responsibility .put("kzg/verify_kzg_proof", TestExecutor.IGNORE_TESTS) + // DataColumnSidecar PeerDAS Fulu utils + .put("kzg/compute_cells", new KzgComputeCellsTestExecutor()) + .put("kzg/compute_cells_and_kzg_proofs", new KzgComputeCellsAndKzgProofsTestExecutor()) + .put("kzg/recover_cells_and_kzg_proofs", new KzgRecoverCellsAndKzgProofsTestExecutor()) + .put("kzg/verify_cell_kzg_proof_batch", new KzgVerifyCellKzgProofBatchTestExecutor()) .build(); } diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgVerifyCellKzgProofBatchTestExecutor.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgVerifyCellKzgProofBatchTestExecutor.java new file mode 100644 index 00000000000..6a72c30b10a --- /dev/null +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/kzg/KzgVerifyCellKzgProofBatchTestExecutor.java @@ -0,0 +1,100 @@ +/* + * Copyright Consensys Software Inc., 2022 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.reference.phase0.kzg; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.collect.Streams; +import java.util.List; +import org.apache.tuweni.bytes.Bytes; +import tech.pegasys.teku.ethtests.finder.TestDefinition; +import tech.pegasys.teku.kzg.KZG; +import tech.pegasys.teku.kzg.KZGCell; +import tech.pegasys.teku.kzg.KZGCellWithColumnId; +import tech.pegasys.teku.kzg.KZGCommitment; +import tech.pegasys.teku.kzg.KZGProof; + +public class KzgVerifyCellKzgProofBatchTestExecutor extends KzgTestExecutor { + + @Override + public void runTest(final TestDefinition testDefinition, final KZG kzg) throws Throwable { + final Data data = loadDataFile(testDefinition, Data.class); + final Boolean expectedVerificationResult = data.getOutput(); + Boolean actualVerificationResult; + try { + if (data.getInput().cellIndices.size() != data.getInput().cells.size()) { + throw new RuntimeException("cellIndices and cells sizes don't match!"); + } + actualVerificationResult = + kzg.verifyCellProofBatch( + data.getInput().getCommitments(), + Streams.zip( + data.getInput().getCellIndices().stream(), + data.getInput().getCells().stream(), + (cellIndex, cell) -> KZGCellWithColumnId.fromCellAndColumn(cell, cellIndex)) + .toList(), + data.getInput().getProofs()); + } catch (final RuntimeException ex) { + actualVerificationResult = null; + } + assertThat(actualVerificationResult).isEqualTo(expectedVerificationResult); + } + + private static class Data { + @JsonProperty(value = "input", required = true) + private Input input; + + @JsonProperty(value = "output", required = true) + private Boolean output; + + public Input getInput() { + return input; + } + + public Boolean getOutput() { + return output; + } + + private static class Input { + @JsonProperty(value = "commitments", required = true) + private List commitments; + + @JsonProperty(value = "cell_indices", required = true) + private List cellIndices; + + @JsonProperty(value = "cells", required = true) + private List cells; + + @JsonProperty(value = "proofs", required = true) + private List proofs; + + public List getCommitments() { + return commitments.stream().map(KZGCommitment::fromHexString).toList(); + } + + public List getCellIndices() { + return cellIndices; + } + + public List getCells() { + return cells.stream().map(cell -> new KZGCell(Bytes.fromHexString(cell))).toList(); + } + + public List getProofs() { + return proofs.stream().map(KZGProof::fromHexString).toList(); + } + } + } +} diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java index 811577836b1..bf712c66ab9 100644 --- a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java @@ -29,6 +29,7 @@ import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockHeader; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.BeaconBlockBodySchemaAltair; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.BlobIdentifier; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnIdentifier; import tech.pegasys.teku.spec.datastructures.operations.AttestationData; import tech.pegasys.teku.spec.datastructures.operations.Deposit; import tech.pegasys.teku.spec.datastructures.operations.DepositData; @@ -48,6 +49,7 @@ import tech.pegasys.teku.spec.schemas.SchemaDefinitionsCapella; import tech.pegasys.teku.spec.schemas.SchemaDefinitionsDeneb; import tech.pegasys.teku.spec.schemas.SchemaDefinitionsElectra; +import tech.pegasys.teku.spec.schemas.SchemaDefinitionsFulu; public class SszTestExecutor implements TestExecutor { private final SchemaProvider sszType; @@ -226,6 +228,19 @@ public class SszTestExecutor implements TestExecutor { schemas -> SchemaDefinitionsElectra.required(schemas).getSingleAttestationSchema())) + // Fulu types + .put( + "ssz_static/DataColumnIdentifier", + new SszTestExecutor<>(schemas -> DataColumnIdentifier.SSZ_SCHEMA)) + .put( + "ssz_static/DataColumnSidecar", + new SszTestExecutor<>( + schemas -> SchemaDefinitionsFulu.required(schemas).getDataColumnSidecarSchema())) + .put( + "ssz_static/MatrixEntry", + new SszTestExecutor<>( + schemas -> SchemaDefinitionsFulu.required(schemas).getMatrixEntrySchema())) + // Legacy Schemas (Not yet migrated to SchemaDefinitions) .put( "ssz_static/AttestationData", new SszTestExecutor<>(__ -> AttestationData.SSZ_SCHEMA)) diff --git a/eth-tests/src/main/java/tech/pegasys/teku/ethtests/TestFork.java b/eth-tests/src/main/java/tech/pegasys/teku/ethtests/TestFork.java index 3db1001c903..4b8997901c3 100644 --- a/eth-tests/src/main/java/tech/pegasys/teku/ethtests/TestFork.java +++ b/eth-tests/src/main/java/tech/pegasys/teku/ethtests/TestFork.java @@ -20,4 +20,5 @@ public class TestFork { public static final String CAPELLA = "capella"; public static final String DENEB = "deneb"; public static final String ELECTRA = "electra"; + public static final String FULU = "fulu"; } diff --git a/eth-tests/src/main/java/tech/pegasys/teku/ethtests/finder/ReferenceTestFinder.java b/eth-tests/src/main/java/tech/pegasys/teku/ethtests/finder/ReferenceTestFinder.java index 7836d79f53c..878a7bbe9f5 100644 --- a/eth-tests/src/main/java/tech/pegasys/teku/ethtests/finder/ReferenceTestFinder.java +++ b/eth-tests/src/main/java/tech/pegasys/teku/ethtests/finder/ReferenceTestFinder.java @@ -36,7 +36,8 @@ public class ReferenceTestFinder { TestFork.BELLATRIX, TestFork.CAPELLA, TestFork.DENEB, - TestFork.ELECTRA); + TestFork.ELECTRA, + TestFork.FULU); @MustBeClosed public static Stream findReferenceTests() throws IOException { diff --git a/eth-tests/src/main/java/tech/pegasys/teku/ethtests/finder/TestDefinition.java b/eth-tests/src/main/java/tech/pegasys/teku/ethtests/finder/TestDefinition.java index cdd831d5df3..62d8541b6bf 100644 --- a/eth-tests/src/main/java/tech/pegasys/teku/ethtests/finder/TestDefinition.java +++ b/eth-tests/src/main/java/tech/pegasys/teku/ethtests/finder/TestDefinition.java @@ -73,6 +73,7 @@ private void createSpec() { case TestFork.CAPELLA -> SpecMilestone.CAPELLA; case TestFork.DENEB -> SpecMilestone.DENEB; case TestFork.ELECTRA -> SpecMilestone.ELECTRA; + case TestFork.FULU -> SpecMilestone.FULU; default -> throw new IllegalArgumentException("Unknown fork: " + fork); }; spec = TestSpecFactory.create(milestone, network); diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/Cell.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/Cell.java new file mode 100644 index 00000000000..a9b2837f176 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/Cell.java @@ -0,0 +1,33 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.blobs.versions.fulu; + +import org.apache.tuweni.bytes.Bytes; +import tech.pegasys.teku.infrastructure.ssz.collections.impl.SszByteVectorImpl; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; + +public class Cell extends SszByteVectorImpl { + + Cell(final CellSchema schema, final TreeNode backingNode) { + super(schema, backingNode); + } + + Cell(final CellSchema cellSchema, final Bytes bytes) { + super(cellSchema, bytes); + } + + public String toBriefString() { + return getBytes().slice(0, 7).toUnprefixedHexString(); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/CellSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/CellSchema.java new file mode 100644 index 00000000000..94e0444c347 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/CellSchema.java @@ -0,0 +1,38 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.blobs.versions.fulu; + +import org.apache.tuweni.bytes.Bytes; +import tech.pegasys.teku.infrastructure.ssz.schema.collections.impl.SszByteVectorSchemaImpl; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.spec.config.SpecConfigDeneb; +import tech.pegasys.teku.spec.config.SpecConfigFulu; + +public class CellSchema extends SszByteVectorSchemaImpl { + + public CellSchema(final SpecConfigFulu specConfig) { + super( + SpecConfigDeneb.BYTES_PER_FIELD_ELEMENT.longValue() + * specConfig.getFieldElementsPerCell().longValue()); + } + + public Cell create(final Bytes bytes) { + return new Cell(this, bytes); + } + + @Override + public Cell createFromBackingNode(final TreeNode node) { + return new Cell(this, node); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumn.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumn.java new file mode 100644 index 00000000000..75911124177 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumn.java @@ -0,0 +1,29 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.blobs.versions.fulu; + +import tech.pegasys.teku.infrastructure.ssz.SszList; +import tech.pegasys.teku.infrastructure.ssz.impl.SszListImpl; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; + +public class DataColumn extends SszListImpl implements SszList { + + DataColumn(final DataColumnSchema schema, final TreeNode node) { + super(schema, node); + } + + public String toBriefString() { + return isEmpty() ? "" : get(0).toBriefString(); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSchema.java new file mode 100644 index 00000000000..30595c0d5c4 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSchema.java @@ -0,0 +1,39 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.blobs.versions.fulu; + +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.CELL_SCHEMA; + +import java.util.List; +import tech.pegasys.teku.infrastructure.ssz.schema.impl.AbstractSszListSchema; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.spec.config.SpecConfigDeneb; +import tech.pegasys.teku.spec.schemas.registry.SchemaRegistry; + +public class DataColumnSchema extends AbstractSszListSchema { + + public DataColumnSchema(final SpecConfigDeneb specConfig, final SchemaRegistry registry) { + super(registry.get(CELL_SCHEMA), specConfig.getMaxBlobCommitmentsPerBlock()); + } + + public DataColumn create(final List cells) { + final TreeNode backingNode = this.createTreeFromElements(cells); + return createFromBackingNode(backingNode); + } + + @Override + public DataColumn createFromBackingNode(final TreeNode node) { + return new DataColumn(this, node); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSidecar.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSidecar.java new file mode 100644 index 00000000000..b63dd88e7a0 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSidecar.java @@ -0,0 +1,143 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.blobs.versions.fulu; + +import java.util.List; +import org.apache.tuweni.bytes.Bytes32; +import tech.pegasys.teku.infrastructure.logging.LogFormatter; +import tech.pegasys.teku.infrastructure.ssz.SszList; +import tech.pegasys.teku.infrastructure.ssz.collections.SszBytes32Vector; +import tech.pegasys.teku.infrastructure.ssz.containers.Container6; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszBytes32; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.kzg.KZGCommitment; +import tech.pegasys.teku.kzg.KZGProof; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockHeader; +import tech.pegasys.teku.spec.datastructures.blocks.SlotAndBlockRoot; +import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitment; +import tech.pegasys.teku.spec.datastructures.type.SszKZGProof; + +public class DataColumnSidecar + extends Container6< + DataColumnSidecar, + SszUInt64, + DataColumn, + SszList, + SszList, + SignedBeaconBlockHeader, + SszBytes32Vector> { + + DataColumnSidecar( + final DataColumnSidecarSchema dataColumnSidecarSchema, final TreeNode backingTreeNode) { + super(dataColumnSidecarSchema, backingTreeNode); + } + + public DataColumnSidecar( + final DataColumnSidecarSchema schema, + final UInt64 index, + final DataColumn dataColumn, + final List kzgCommitments, + final List kzgProofs, + final SignedBeaconBlockHeader signedBeaconBlockHeader, + final List kzgCommitmentsInclusionProof) { + super( + schema, + SszUInt64.of(index), + dataColumn, + schema + .getKzgCommitmentsSchema() + .createFromElements(kzgCommitments.stream().map(SszKZGCommitment::new).toList()), + schema + .getKzgProofsSchema() + .createFromElements(kzgProofs.stream().map(SszKZGProof::new).toList()), + signedBeaconBlockHeader, + schema + .getKzgCommitmentsInclusionProofSchema() + .createFromElements( + kzgCommitmentsInclusionProof.stream().map(SszBytes32::of).toList())); + } + + public DataColumnSidecar( + final DataColumnSidecarSchema schema, + final UInt64 index, + final DataColumn dataColumn, + final SszList sszKzgCommitments, + final SszList sszKkzgProofs, + final SignedBeaconBlockHeader signedBeaconBlockHeader, + final List kzgCommitmentsInclusionProof) { + super( + schema, + SszUInt64.of(index), + dataColumn, + sszKzgCommitments, + sszKkzgProofs, + signedBeaconBlockHeader, + schema + .getKzgCommitmentsInclusionProofSchema() + .createFromElements( + kzgCommitmentsInclusionProof.stream().map(SszBytes32::of).toList())); + } + + public UInt64 getIndex() { + return getField0().get(); + } + + public DataColumn getDataColumn() { + return getField1(); + } + + public SszList getSszKZGCommitments() { + return getField2(); + } + + public SszList getSszKZGProofs() { + return getField3(); + } + + public SignedBeaconBlockHeader getSignedBeaconBlockHeader() { + return getField4(); + } + + public SszBytes32Vector getKzgCommitmentsInclusionProof() { + return getField5(); + } + + public UInt64 getSlot() { + return getSignedBeaconBlockHeader().getMessage().getSlot(); + } + + public Bytes32 getBlockBodyRoot() { + return getSignedBeaconBlockHeader().getMessage().getBodyRoot(); + } + + public Bytes32 getBlockRoot() { + return getSignedBeaconBlockHeader().getMessage().getRoot(); + } + + public SlotAndBlockRoot getSlotAndBlockRoot() { + return new SlotAndBlockRoot(getSlot(), getBlockRoot()); + } + + public String toLogString() { + return LogFormatter.formatDataColumnSidecar( + getSlot(), + getBlockRoot(), + getIndex(), + getDataColumn().toBriefString(), + getSszKZGCommitments().size(), + getSszKZGProofs().size()); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSidecarSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSidecarSchema.java new file mode 100644 index 00000000000..10f5b104af3 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/DataColumnSidecarSchema.java @@ -0,0 +1,164 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.blobs.versions.fulu; + +import java.util.List; +import org.apache.tuweni.bytes.Bytes32; +import tech.pegasys.teku.infrastructure.ssz.SszList; +import tech.pegasys.teku.infrastructure.ssz.collections.SszBytes32Vector; +import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema6; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; +import tech.pegasys.teku.infrastructure.ssz.schema.SszFieldName; +import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; +import tech.pegasys.teku.infrastructure.ssz.schema.SszPrimitiveSchemas; +import tech.pegasys.teku.infrastructure.ssz.schema.collections.SszBytes32VectorSchema; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.kzg.KZGCommitment; +import tech.pegasys.teku.kzg.KZGProof; +import tech.pegasys.teku.spec.config.SpecConfigFulu; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockHeader; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockHeaderSchema; +import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitment; +import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitmentSchema; +import tech.pegasys.teku.spec.datastructures.type.SszKZGProof; +import tech.pegasys.teku.spec.datastructures.type.SszKZGProofSchema; + +public class DataColumnSidecarSchema + extends ContainerSchema6< + DataColumnSidecar, + SszUInt64, + DataColumn, + SszList, + SszList, + SignedBeaconBlockHeader, + SszBytes32Vector> { + + static final SszFieldName FIELD_BLOB = () -> "column"; + static final SszFieldName FIELD_KZG_COMMITMENTS = () -> "kzg_commitments"; + static final SszFieldName FIELD_KZG_PROOFS = () -> "kzg_proofs"; + static final SszFieldName FIELD_SIGNED_BLOCK_HEADER = () -> "signed_block_header"; + static final SszFieldName FIELD_KZG_COMMITMENTS_INCLUSION_PROOF = + () -> "kzg_commitments_inclusion_proof"; + + DataColumnSidecarSchema( + final SignedBeaconBlockHeaderSchema signedBeaconBlockHeaderSchema, + final DataColumnSchema dataColumnSchema, + final SpecConfigFulu specConfig) { + super( + "DataColumnSidecar", + namedSchema("index", SszPrimitiveSchemas.UINT64_SCHEMA), + namedSchema(FIELD_BLOB, dataColumnSchema), + namedSchema( + FIELD_KZG_COMMITMENTS, + SszListSchema.create( + SszKZGCommitmentSchema.INSTANCE, specConfig.getMaxBlobCommitmentsPerBlock())), + namedSchema( + FIELD_KZG_PROOFS, + SszListSchema.create( + SszKZGProofSchema.INSTANCE, specConfig.getMaxBlobCommitmentsPerBlock())), + namedSchema(FIELD_SIGNED_BLOCK_HEADER, signedBeaconBlockHeaderSchema), + namedSchema( + FIELD_KZG_COMMITMENTS_INCLUSION_PROOF, + SszBytes32VectorSchema.create( + specConfig.getKzgCommitmentsInclusionProofDepth().intValue()))); + } + + @SuppressWarnings("unchecked") + public DataColumnSchema getDataColumnSszSchema() { + return (DataColumnSchema) getChildSchema(getFieldIndex(FIELD_BLOB)); + } + + public SignedBeaconBlockHeaderSchema getSignedBlockHeaderSchema() { + return (SignedBeaconBlockHeaderSchema) getFieldSchema4(); + } + + public SszBytes32VectorSchema getKzgCommitmentsInclusionProofSchema() { + return (SszBytes32VectorSchema) + getChildSchema(getFieldIndex(FIELD_KZG_COMMITMENTS_INCLUSION_PROOF)); + } + + @SuppressWarnings("unchecked") + public SszListSchema getKzgCommitmentsSchema() { + return (SszListSchema) + getChildSchema(getFieldIndex(FIELD_KZG_COMMITMENTS)); + } + + @SuppressWarnings("unchecked") + public SszListSchema getKzgProofsSchema() { + return (SszListSchema) getChildSchema(getFieldIndex(FIELD_KZG_PROOFS)); + } + + public DataColumnSidecar create( + final UInt64 index, + final DataColumn dataColumn, + final SszList sszKzgCommitments, + final SszList sszKkzgProofs, + final SignedBeaconBlockHeader signedBeaconBlockHeader, + final List kzgCommitmentsInclusionProof) { + return new DataColumnSidecar( + this, + index, + dataColumn, + sszKzgCommitments, + sszKkzgProofs, + signedBeaconBlockHeader, + kzgCommitmentsInclusionProof); + } + + // public DataColumnSidecar create( + // final UInt64 index, + // final Bytes blob, + // final Bytes48 kzgCommitment, + // final Bytes48 kzgProof, + // final SignedBeaconBlockHeader signedBeaconBlockHeader, + // final List kzgCommitmentsInclusionProof) { + // return create( + // index, + // new Blob(getBlobSchema(), blob), + // KZGCommitment.fromBytesCompressed(kzgCommitment), + // KZGProof.fromBytesCompressed(kzgProof), + // signedBeaconBlockHeader, + // kzgCommitmentsInclusionProof); + // } + + public DataColumnSidecar create( + final UInt64 index, + final DataColumn dataColumn, + final List kzgCommitments, + final List kzgProofs, + final SignedBeaconBlockHeader signedBeaconBlockHeader, + final List kzgCommitmentsInclusionProof) { + return new DataColumnSidecar( + this, + index, + dataColumn, + kzgCommitments, + kzgProofs, + signedBeaconBlockHeader, + kzgCommitmentsInclusionProof); + } + + public static DataColumnSidecarSchema create( + final SignedBeaconBlockHeaderSchema signedBeaconBlockHeaderSchema, + final DataColumnSchema dataColumnSchema, + final SpecConfigFulu specConfig) { + return new DataColumnSidecarSchema(signedBeaconBlockHeaderSchema, dataColumnSchema, specConfig); + } + + @Override + public DataColumnSidecar createFromBackingNode(final TreeNode node) { + return new DataColumnSidecar(this, node); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/MatrixEntry.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/MatrixEntry.java new file mode 100644 index 00000000000..7ab049cc6b5 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/MatrixEntry.java @@ -0,0 +1,63 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.blobs.versions.fulu; + +import tech.pegasys.teku.infrastructure.ssz.containers.Container4; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.kzg.KZGProof; +import tech.pegasys.teku.spec.datastructures.type.SszKZGProof; + +public class MatrixEntry extends Container4 { + + MatrixEntry(final MatrixEntrySchema matrixEntrySchema, final TreeNode backingTreeNode) { + super(matrixEntrySchema, backingTreeNode); + } + + public MatrixEntry( + final MatrixEntrySchema schema, + final Cell cell, + final KZGProof kzgProof, + final UInt64 columnIndex, + final UInt64 rowIndex) { + super( + schema, cell, new SszKZGProof(kzgProof), SszUInt64.of(columnIndex), SszUInt64.of(rowIndex)); + } + + public MatrixEntry( + final MatrixEntrySchema schema, + final Cell cell, + final SszKZGProof sszKZGProof, + final SszUInt64 sszColumnIndex, + final SszUInt64 sszRowIndex) { + super(schema, cell, sszKZGProof, sszColumnIndex, sszRowIndex); + } + + public Cell getCell() { + return getField0(); + } + + public KZGProof getKzgProof() { + return getField1().getKZGProof(); + } + + public UInt64 getColumnIndex() { + return getField2().get(); + } + + public UInt64 getRowIndex() { + return getField3().get(); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/MatrixEntrySchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/MatrixEntrySchema.java new file mode 100644 index 00000000000..a22c74bfce3 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blobs/versions/fulu/MatrixEntrySchema.java @@ -0,0 +1,66 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.blobs.versions.fulu; + +import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema4; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; +import tech.pegasys.teku.infrastructure.ssz.schema.SszPrimitiveSchemas; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.kzg.KZGCell; +import tech.pegasys.teku.kzg.KZGProof; +import tech.pegasys.teku.spec.datastructures.type.SszKZGProof; +import tech.pegasys.teku.spec.datastructures.type.SszKZGProofSchema; + +public class MatrixEntrySchema + extends ContainerSchema4 { + + MatrixEntrySchema(final CellSchema cellSchema) { + super( + "MatrixEntry", + namedSchema("cell", cellSchema), + namedSchema("kzg_proof", SszKZGProofSchema.INSTANCE), + namedSchema("column_index", SszPrimitiveSchemas.UINT64_SCHEMA), + namedSchema("row_index", SszPrimitiveSchemas.UINT64_SCHEMA)); + } + + public CellSchema getCellSchema() { + return (CellSchema) getFieldSchema0(); + } + + public MatrixEntry create( + final Cell cell, final KZGProof kzgProof, final UInt64 columnIndex, final UInt64 rowIndex) { + return new MatrixEntry( + this, cell, new SszKZGProof(kzgProof), SszUInt64.of(columnIndex), SszUInt64.of(rowIndex)); + } + + public MatrixEntry create( + final KZGCell cell, final KZGProof kzgProof, final int columnIndex, final int rowIndex) { + return new MatrixEntry( + this, + getCellSchema().create(cell.bytes()), + new SszKZGProof(kzgProof), + SszUInt64.of(UInt64.valueOf(columnIndex)), + SszUInt64.of(UInt64.valueOf(rowIndex))); + } + + public static MatrixEntrySchema create(final CellSchema cellSchema) { + return new MatrixEntrySchema(cellSchema); + } + + @Override + public MatrixEntry createFromBackingNode(final TreeNode node) { + return new MatrixEntry(this, node); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnIdentifier.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnIdentifier.java new file mode 100644 index 00000000000..826cb6168d7 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnIdentifier.java @@ -0,0 +1,65 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc; + +import org.apache.tuweni.bytes.Bytes32; +import tech.pegasys.teku.infrastructure.ssz.containers.Container2; +import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema2; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszBytes32; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; +import tech.pegasys.teku.infrastructure.ssz.schema.SszPrimitiveSchemas; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecar; + +public class DataColumnIdentifier extends Container2 { + + public static class DataColumnIdentifierSchema + extends ContainerSchema2 { + + private DataColumnIdentifierSchema() { + super( + "DataColumnIdentifier", + namedSchema("block_root", SszPrimitiveSchemas.BYTES32_SCHEMA), + namedSchema("index", SszPrimitiveSchemas.UINT64_SCHEMA)); + } + + @Override + public DataColumnIdentifier createFromBackingNode(final TreeNode node) { + return new DataColumnIdentifier(node); + } + } + + public static final DataColumnIdentifierSchema SSZ_SCHEMA = new DataColumnIdentifierSchema(); + + public static DataColumnIdentifier createFromSidecar(final DataColumnSidecar sidecar) { + return new DataColumnIdentifier(sidecar.getBlockRoot(), sidecar.getIndex()); + } + + private DataColumnIdentifier(final TreeNode node) { + super(SSZ_SCHEMA, node); + } + + public DataColumnIdentifier(final Bytes32 root, final UInt64 index) { + super(SSZ_SCHEMA, SszBytes32.of(root), SszUInt64.of(index)); + } + + public Bytes32 getBlockRoot() { + return getField0().get(); + } + + public UInt64 getIndex() { + return getField1().get(); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRangeRequestMessage.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRangeRequestMessage.java new file mode 100644 index 00000000000..bc9dbfe80fd --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRangeRequestMessage.java @@ -0,0 +1,100 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc; + +import java.util.List; +import tech.pegasys.teku.infrastructure.ssz.collections.SszUInt64List; +import tech.pegasys.teku.infrastructure.ssz.containers.Container3; +import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema3; +import tech.pegasys.teku.infrastructure.ssz.impl.AbstractSszPrimitive; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; +import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; +import tech.pegasys.teku.infrastructure.ssz.schema.SszPrimitiveSchemas; +import tech.pegasys.teku.infrastructure.ssz.schema.collections.SszUInt64ListSchema; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.config.SpecConfigFulu; + +public class DataColumnSidecarsByRangeRequestMessage + extends Container3 + implements RpcRequest { + + public static class DataColumnSidecarsByRangeRequestMessageSchema + extends ContainerSchema3< + DataColumnSidecarsByRangeRequestMessage, SszUInt64, SszUInt64, SszUInt64List> { + + public DataColumnSidecarsByRangeRequestMessageSchema(final SpecConfigFulu specConfig) { + super( + "DataColumnSidecarsByRangeRequestMessage", + namedSchema("start_slot", SszPrimitiveSchemas.UINT64_SCHEMA), + namedSchema("count", SszPrimitiveSchemas.UINT64_SCHEMA), + namedSchema("columns", SszUInt64ListSchema.create(specConfig.getNumberOfColumns()))); + } + + @Override + public DataColumnSidecarsByRangeRequestMessage createFromBackingNode(final TreeNode node) { + return new DataColumnSidecarsByRangeRequestMessage(this, node); + } + + @SuppressWarnings("unchecked") + public SszListSchema getColumnsSchema() { + return (SszListSchema) getFieldSchema2(); + } + + public DataColumnSidecarsByRangeRequestMessage create( + final UInt64 startSlot, final UInt64 count, final List columns) { + return new DataColumnSidecarsByRangeRequestMessage( + this, + SszUInt64.of(startSlot), + SszUInt64.of(count), + (SszUInt64List) + this.getColumnsSchema() + .createFromElements(columns.stream().map(SszUInt64::of).toList())); + } + } + + private DataColumnSidecarsByRangeRequestMessage( + final DataColumnSidecarsByRangeRequestMessageSchema type, final TreeNode backingNode) { + super(type, backingNode); + } + + public DataColumnSidecarsByRangeRequestMessage( + final DataColumnSidecarsByRangeRequestMessageSchema type, + final SszUInt64 startSlot, + final SszUInt64 count, + final SszUInt64List columns) { + super(type, startSlot, count, columns); + } + + public UInt64 getStartSlot() { + return getField0().get(); + } + + public UInt64 getCount() { + return getField1().get(); + } + + public UInt64 getMaxSlot() { + return getStartSlot().plus(getCount()).minusMinZero(1); + } + + public List getColumns() { + return getField2().stream().map(AbstractSszPrimitive::get).toList(); + } + + @Override + public int getMaximumResponseChunks() { + return getCount().intValue() * getColumns().size(); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessage.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessage.java new file mode 100644 index 00000000000..d8854dd6f35 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessage.java @@ -0,0 +1,44 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc; + +import java.util.List; +import tech.pegasys.teku.infrastructure.ssz.SszList; +import tech.pegasys.teku.infrastructure.ssz.impl.SszListImpl; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; + +public class DataColumnSidecarsByRootRequestMessage extends SszListImpl + implements SszList, RpcRequest { + + public DataColumnSidecarsByRootRequestMessage( + final DataColumnSidecarsByRootRequestMessageSchema schema, + final List dataColumnIdentifiers) { + super(schema, schema.createTreeFromElements(dataColumnIdentifiers)); + } + + DataColumnSidecarsByRootRequestMessage( + final DataColumnSidecarsByRootRequestMessageSchema schema, final TreeNode node) { + super(schema, node); + } + + @Override + public int getMaximumResponseChunks() { + return size(); + } + + @Override + public String toString() { + return "DataColumnSidecarsByRootRequestMessage{" + super.toString() + "}"; + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java new file mode 100644 index 00000000000..d7aa219b1a7 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java @@ -0,0 +1,31 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc; + +import tech.pegasys.teku.infrastructure.ssz.schema.impl.AbstractSszListSchema; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.spec.config.SpecConfigFulu; + +public class DataColumnSidecarsByRootRequestMessageSchema + extends AbstractSszListSchema { + + public DataColumnSidecarsByRootRequestMessageSchema(final SpecConfigFulu specConfig) { + super(DataColumnIdentifier.SSZ_SCHEMA, specConfig.getMaxRequestDataColumnSidecars()); + } + + @Override + public DataColumnSidecarsByRootRequestMessage createFromBackingNode(final TreeNode node) { + return new DataColumnSidecarsByRootRequestMessage(this, node); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/MetadataMessage.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/MetadataMessage.java index 6646a1e065c..9f7df796356 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/MetadataMessage.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/MetadataMessage.java @@ -32,4 +32,8 @@ default int getMaximumResponseChunks() { default Optional getOptionalSyncnets() { return Optional.empty(); } + + default Optional getOptionalCustodyGroupCount() { + return Optional.empty(); + } } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/MetadataMessageSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/MetadataMessageSchema.java index 3fd0a1d348b..482c27654d8 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/MetadataMessageSchema.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/MetadataMessageSchema.java @@ -13,6 +13,7 @@ package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata; +import java.util.Optional; import tech.pegasys.teku.infrastructure.ssz.schema.SszContainerSchema; import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; import tech.pegasys.teku.infrastructure.unsigned.UInt64; @@ -21,7 +22,11 @@ public interface MetadataMessageSchema extends SszCon @Override T createFromBackingNode(TreeNode node); - T create(UInt64 seqNumber, Iterable attnets, final Iterable syncnets); + T create( + UInt64 seqNumber, + Iterable attnets, + final Iterable syncnets, + final Optional custodyGroupCount); T createDefault(); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/altair/MetadataMessageSchemaAltair.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/altair/MetadataMessageSchemaAltair.java index 2342d7dd027..6de9eb9bdd0 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/altair/MetadataMessageSchemaAltair.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/altair/MetadataMessageSchemaAltair.java @@ -13,6 +13,7 @@ package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.altair; +import java.util.Optional; import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema3; import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; @@ -39,7 +40,10 @@ public MetadataMessageSchemaAltair(final NetworkingSpecConfig networkingSpecConf @Override public MetadataMessageAltair create( - final UInt64 seqNumber, final Iterable attnets, final Iterable syncnets) { + final UInt64 seqNumber, + final Iterable attnets, + final Iterable syncnets, + final Optional custodyGroupCount) { return new MetadataMessageAltair( this, seqNumber, getAttnestSchema().ofBits(attnets), getSyncnetsSchema().ofBits(syncnets)); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/fulu/MetadataMessageFulu.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/fulu/MetadataMessageFulu.java new file mode 100644 index 00000000000..ae293c379c7 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/fulu/MetadataMessageFulu.java @@ -0,0 +1,72 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.fulu; + +import java.util.Optional; +import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; +import tech.pegasys.teku.infrastructure.ssz.containers.Container4; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.MetadataMessage; + +public class MetadataMessageFulu + extends Container4 + implements MetadataMessage { + + MetadataMessageFulu(final MetadataMessageSchemaFulu schema) { + super(schema); + } + + MetadataMessageFulu(final MetadataMessageSchemaFulu schema, final TreeNode backingNode) { + super(schema, backingNode); + } + + MetadataMessageFulu( + final MetadataMessageSchemaFulu schema, + final UInt64 seqNumber, + final SszBitvector attNets, + final SszBitvector syncNets, + final UInt64 custodyGroupCount) { + super(schema, SszUInt64.of(seqNumber), attNets, syncNets, SszUInt64.of(custodyGroupCount)); + } + + @Override + public UInt64 getSeqNumber() { + return getField0().get(); + } + + @Override + public SszBitvector getAttnets() { + return getField1(); + } + + public SszBitvector getSyncnets() { + return getField2(); + } + + public UInt64 getCustodyGroupCount() { + return getField3().get(); + } + + @Override + public Optional getOptionalSyncnets() { + return Optional.of(getSyncnets()); + } + + @Override + public Optional getOptionalCustodyGroupCount() { + return Optional.of(getCustodyGroupCount()); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/fulu/MetadataMessageSchemaFulu.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/fulu/MetadataMessageSchemaFulu.java new file mode 100644 index 00000000000..f63c81c140f --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/fulu/MetadataMessageSchemaFulu.java @@ -0,0 +1,73 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.fulu; + +import java.util.Optional; +import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; +import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema4; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; +import tech.pegasys.teku.infrastructure.ssz.schema.SszPrimitiveSchemas; +import tech.pegasys.teku.infrastructure.ssz.schema.collections.SszBitvectorSchema; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.config.NetworkingSpecConfig; +import tech.pegasys.teku.spec.constants.NetworkConstants; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.MetadataMessageSchema; + +public class MetadataMessageSchemaFulu + extends ContainerSchema4 + implements MetadataMessageSchema { + public MetadataMessageSchemaFulu(final NetworkingSpecConfig networkingSpecConfig) { + super( + "MetadataMessage", + namedSchema("seq_number", SszPrimitiveSchemas.UINT64_SCHEMA), + namedSchema( + "attnets", SszBitvectorSchema.create(networkingSpecConfig.getAttestationSubnetCount())), + namedSchema( + "syncnets", SszBitvectorSchema.create(NetworkConstants.SYNC_COMMITTEE_SUBNET_COUNT)), + namedSchema("custody_group_count", SszPrimitiveSchemas.UINT64_SCHEMA)); + } + + @Override + public MetadataMessageFulu create( + final UInt64 seqNumber, + final Iterable attnets, + final Iterable syncnets, + final Optional custodyGroupCount) { + return new MetadataMessageFulu( + this, + seqNumber, + getAttnestSchema().ofBits(attnets), + getSyncnetsSchema().ofBits(syncnets), + custodyGroupCount.orElse(UInt64.ZERO)); + } + + @Override + public MetadataMessageFulu createDefault() { + return new MetadataMessageFulu(this); + } + + @Override + public MetadataMessageFulu createFromBackingNode(final TreeNode node) { + return new MetadataMessageFulu(this, node); + } + + private SszBitvectorSchema getAttnestSchema() { + return (SszBitvectorSchema) getFieldSchema1(); + } + + private SszBitvectorSchema getSyncnetsSchema() { + return (SszBitvectorSchema) getFieldSchema2(); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/phase0/MetadataMessageSchemaPhase0.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/phase0/MetadataMessageSchemaPhase0.java index 117f1dad68c..32528cf9b4f 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/phase0/MetadataMessageSchemaPhase0.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/metadata/versions/phase0/MetadataMessageSchemaPhase0.java @@ -13,6 +13,7 @@ package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.phase0; +import java.util.Optional; import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema2; import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; @@ -43,7 +44,10 @@ public MetadataMessagePhase0 createFromBackingNode(final TreeNode node) { @Override public MetadataMessagePhase0 create( - final UInt64 seqNumber, final Iterable attnets, final Iterable syncnets) { + final UInt64 seqNumber, + final Iterable attnets, + final Iterable syncnets, + final Optional custodyGroupCount) { return new MetadataMessagePhase0(this, seqNumber, getAttnestSchema().ofBits(attnets)); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java new file mode 100644 index 00000000000..c9752652fe7 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java @@ -0,0 +1,59 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.util; + +import java.util.Comparator; +import org.apache.tuweni.bytes.Bytes32; +import org.jetbrains.annotations.NotNull; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecar; +import tech.pegasys.teku.spec.datastructures.blocks.SlotAndBlockRoot; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnIdentifier; + +public record DataColumnSlotAndIdentifier(UInt64 slot, Bytes32 blockRoot, UInt64 columnIndex) + implements Comparable { + + public DataColumnSlotAndIdentifier( + final UInt64 slot, final DataColumnIdentifier dataColumnIdentifier) { + this(slot, dataColumnIdentifier.getBlockRoot(), dataColumnIdentifier.getIndex()); + } + + public static DataColumnSlotAndIdentifier fromDataColumn( + final DataColumnSidecar dataColumnSidecar) { + return new DataColumnSlotAndIdentifier( + dataColumnSidecar.getSlot(), + dataColumnSidecar.getBlockRoot(), + dataColumnSidecar.getIndex()); + } + + public static DataColumnSlotAndIdentifier minimalComparableForSlot(final UInt64 slot) { + return new DataColumnSlotAndIdentifier(slot, Bytes32.ZERO, UInt64.ZERO); + } + + public DataColumnIdentifier toDataColumnIdentifier() { + return new DataColumnIdentifier(blockRoot(), columnIndex()); + } + + public SlotAndBlockRoot getSlotAndBlockRoot() { + return new SlotAndBlockRoot(slot, blockRoot()); + } + + @Override + public int compareTo(@NotNull final DataColumnSlotAndIdentifier o) { + return Comparator.comparing(DataColumnSlotAndIdentifier::slot) + .thenComparing(DataColumnSlotAndIdentifier::blockRoot) + .thenComparing(DataColumnSlotAndIdentifier::columnIndex) + .compare(this, o); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java index 723fd9fa824..7b9c96e2172 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java @@ -14,14 +14,44 @@ package tech.pegasys.teku.spec.schemas; import static com.google.common.base.Preconditions.checkArgument; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.CELL_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECARS_BY_RANGE_REQUEST_MESSAGE_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECARS_BY_ROOT_REQUEST_MESSAGE_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECAR_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.MATRIX_ENTRY_SCHEMA; import java.util.Optional; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.CellSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecarSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.MatrixEntrySchema; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRangeRequestMessage; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRootRequestMessageSchema; import tech.pegasys.teku.spec.schemas.registry.SchemaRegistry; public class SchemaDefinitionsFulu extends SchemaDefinitionsElectra { + private final CellSchema cellSchema; + private final DataColumnSchema dataColumnSchema; + private final DataColumnSidecarSchema dataColumnSidecarSchema; + private final MatrixEntrySchema matrixEntrySchema; + private final DataColumnSidecarsByRootRequestMessageSchema + dataColumnSidecarsByRootRequestMessageSchema; + private final DataColumnSidecarsByRangeRequestMessage + .DataColumnSidecarsByRangeRequestMessageSchema + dataColumnSidecarsByRangeRequestMessageSchema; + public SchemaDefinitionsFulu(final SchemaRegistry schemaRegistry) { super(schemaRegistry); + this.cellSchema = schemaRegistry.get(CELL_SCHEMA); + this.dataColumnSchema = schemaRegistry.get(DATA_COLUMN_SCHEMA); + this.dataColumnSidecarSchema = schemaRegistry.get(DATA_COLUMN_SIDECAR_SCHEMA); + this.matrixEntrySchema = schemaRegistry.get(MATRIX_ENTRY_SCHEMA); + this.dataColumnSidecarsByRootRequestMessageSchema = + schemaRegistry.get(DATA_COLUMN_SIDECARS_BY_ROOT_REQUEST_MESSAGE_SCHEMA); + this.dataColumnSidecarsByRangeRequestMessageSchema = + schemaRegistry.get(DATA_COLUMN_SIDECARS_BY_RANGE_REQUEST_MESSAGE_SCHEMA); } public static SchemaDefinitionsFulu required(final SchemaDefinitions schemaDefinitions) { @@ -33,6 +63,32 @@ public static SchemaDefinitionsFulu required(final SchemaDefinitions schemaDefin return (SchemaDefinitionsFulu) schemaDefinitions; } + public CellSchema getCellSchema() { + return cellSchema; + } + + public DataColumnSchema getDataColumnSchema() { + return dataColumnSchema; + } + + public DataColumnSidecarSchema getDataColumnSidecarSchema() { + return dataColumnSidecarSchema; + } + + public MatrixEntrySchema getMatrixEntrySchema() { + return matrixEntrySchema; + } + + public DataColumnSidecarsByRootRequestMessageSchema + getDataColumnSidecarsByRootRequestMessageSchema() { + return dataColumnSidecarsByRootRequestMessageSchema; + } + + public DataColumnSidecarsByRangeRequestMessage.DataColumnSidecarsByRangeRequestMessageSchema + getDataColumnSidecarsByRangeRequestMessageSchema() { + return dataColumnSidecarsByRangeRequestMessageSchema; + } + @Override public Optional toVersionFulu() { return Optional.of(this); diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java index 7b73b6e68c4..d848ecef599 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java @@ -19,6 +19,7 @@ import static tech.pegasys.teku.spec.SpecMilestone.CAPELLA; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; import static tech.pegasys.teku.spec.SpecMilestone.ELECTRA; +import static tech.pegasys.teku.spec.SpecMilestone.FULU; import static tech.pegasys.teku.spec.SpecMilestone.PHASE0; import static tech.pegasys.teku.spec.schemas.registry.BaseSchemaProvider.providerBuilder; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.AGGREGATE_AND_PROOF_SCHEMA; @@ -40,7 +41,12 @@ import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BLOCK_CONTENTS_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BLS_TO_EXECUTION_CHANGE_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BUILDER_BID_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.CELL_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.CONSOLIDATION_REQUEST_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECARS_BY_RANGE_REQUEST_MESSAGE_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECARS_BY_ROOT_REQUEST_MESSAGE_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECAR_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DEPOSIT_REQUEST_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.EXECUTION_PAYLOAD_AND_BLOBS_BUNDLE_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.EXECUTION_PAYLOAD_HEADER_SCHEMA; @@ -49,6 +55,8 @@ import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.HISTORICAL_BATCH_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.HISTORICAL_SUMMARIES_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.INDEXED_ATTESTATION_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.MATRIX_ENTRY_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.METADATA_MESSAGE_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.PENDING_CONSOLIDATIONS_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.PENDING_DEPOSITS_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.PENDING_PARTIAL_WITHDRAWALS_SCHEMA; @@ -74,10 +82,15 @@ import tech.pegasys.teku.spec.config.SpecConfigCapella; import tech.pegasys.teku.spec.config.SpecConfigDeneb; import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.config.SpecConfigFulu; import tech.pegasys.teku.spec.constants.NetworkConstants; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobKzgCommitmentsSchema; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSchema; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.CellSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecarSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.MatrixEntrySchema; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockSchema; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockHeader; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockSchema; @@ -112,6 +125,11 @@ import tech.pegasys.teku.spec.datastructures.execution.versions.electra.WithdrawalRequestSchema; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.BeaconBlocksByRootRequestMessage.BeaconBlocksByRootRequestMessageSchema; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.BlobSidecarsByRootRequestMessageSchema; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRangeRequestMessage; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRootRequestMessageSchema; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.altair.MetadataMessageSchemaAltair; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.fulu.MetadataMessageSchemaFulu; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.phase0.MetadataMessageSchemaPhase0; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof.AggregateAndProofSchema; import tech.pegasys.teku.spec.datastructures.operations.AttesterSlashingSchema; import tech.pegasys.teku.spec.datastructures.operations.BlsToExecutionChangeSchema; @@ -156,6 +174,7 @@ public static SchemaRegistryBuilder create() { .addProvider(createBeaconBlockSchemaProvider()) .addProvider(createSignedBeaconBlockSchemaProvider()) .addProvider(createBeaconStateSchemaProvider()) + .addProvider(createMetadataMessageSchemaProvider()) // BELLATRIX .addProvider(createExecutionPayloadSchemaProvider()) @@ -191,7 +210,15 @@ public static SchemaRegistryBuilder create() { .addProvider(createWithdrawalRequestSchemaProvider()) .addProvider(createConsolidationRequestSchemaProvider()) .addProvider(createExecutionRequestsSchemaProvider()) - .addProvider(createSingleAttestationSchemaProvider()); + .addProvider(createSingleAttestationSchemaProvider()) + + // FULU + .addProvider(createCellSchemaProvider()) + .addProvider(createDataColumnSchemaProvider()) + .addProvider(createDataColumnSidecarSchemaProvider()) + .addProvider(createMatrixEntrySchemaProvider()) + .addProvider(createDataColumnSidecarsByRootRequestMessageSchemaProvider()) + .addProvider(createDataColumnSidecarsByRangeRequestMessageSchemaProvider()); } private static SchemaProvider createSingleAttestationSchemaProvider() { @@ -664,6 +691,81 @@ private static SchemaProvider createSignedAggregateAndProofSchemaProvider() { .build(); } + private static SchemaProvider createCellSchemaProvider() { + return providerBuilder(CELL_SCHEMA) + .withCreator( + FULU, + (registry, specConfig, schemaName) -> + new CellSchema(SpecConfigFulu.required(specConfig))) + .build(); + } + + private static SchemaProvider createDataColumnSchemaProvider() { + return providerBuilder(DATA_COLUMN_SCHEMA) + .withCreator( + FULU, + (registry, specConfig, schemaName) -> + new DataColumnSchema(SpecConfigDeneb.required(specConfig), registry)) + .build(); + } + + private static SchemaProvider createDataColumnSidecarSchemaProvider() { + return providerBuilder(DATA_COLUMN_SIDECAR_SCHEMA) + .withCreator( + FULU, + (registry, specConfig, schemaName) -> + DataColumnSidecarSchema.create( + SignedBeaconBlockHeader.SSZ_SCHEMA, + registry.get(DATA_COLUMN_SCHEMA), + SpecConfigFulu.required(specConfig))) + .build(); + } + + private static SchemaProvider createMatrixEntrySchemaProvider() { + return providerBuilder(MATRIX_ENTRY_SCHEMA) + .withCreator( + FULU, + (registry, specConfig, schemaName) -> + MatrixEntrySchema.create(registry.get(CELL_SCHEMA))) + .build(); + } + + private static SchemaProvider createDataColumnSidecarsByRootRequestMessageSchemaProvider() { + return providerBuilder(DATA_COLUMN_SIDECARS_BY_ROOT_REQUEST_MESSAGE_SCHEMA) + .withCreator( + FULU, + (registry, specConfig, schemaName) -> + new DataColumnSidecarsByRootRequestMessageSchema( + SpecConfigFulu.required(specConfig))) + .build(); + } + + private static SchemaProvider createDataColumnSidecarsByRangeRequestMessageSchemaProvider() { + return providerBuilder(DATA_COLUMN_SIDECARS_BY_RANGE_REQUEST_MESSAGE_SCHEMA) + .withCreator( + FULU, + (registry, specConfig, schemaName) -> + new DataColumnSidecarsByRangeRequestMessage + .DataColumnSidecarsByRangeRequestMessageSchema( + SpecConfigFulu.required(specConfig))) + .build(); + } + + private static SchemaProvider createMetadataMessageSchemaProvider() { + return providerBuilder(METADATA_MESSAGE_SCHEMA) + .withCreator( + PHASE0, + (registry, specConfig, schemaName) -> + new MetadataMessageSchemaPhase0(specConfig.getNetworkingConfig())) + .withCreator( + ALTAIR, + (registry, specConfig, schemaName) -> + new MetadataMessageSchemaAltair(specConfig.getNetworkingConfig())) + .withCreator( + FULU, (registry, specConfig, schemaName) -> new MetadataMessageSchemaFulu(specConfig)) + .build(); + } + private static long getMaxValidatorsPerAttestationPhase0(final SpecConfig specConfig) { return specConfig.getMaxValidatorsPerCommittee(); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaTypes.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaTypes.java index e2f5bc23d34..dd080b9bee8 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaTypes.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaTypes.java @@ -27,6 +27,10 @@ import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobKzgCommitmentsSchema; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSchema; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.CellSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecarSchema; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.MatrixEntrySchema; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockSchema; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockSchema; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; @@ -51,6 +55,9 @@ import tech.pegasys.teku.spec.datastructures.execution.versions.electra.WithdrawalRequestSchema; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.BeaconBlocksByRootRequestMessage.BeaconBlocksByRootRequestMessageSchema; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.BlobSidecarsByRootRequestMessageSchema; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRangeRequestMessage; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRootRequestMessageSchema; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.MetadataMessageSchema; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof.AggregateAndProofSchema; import tech.pegasys.teku.spec.datastructures.operations.Attestation; import tech.pegasys.teku.spec.datastructures.operations.AttestationSchema; @@ -103,6 +110,8 @@ public class SchemaTypes { public static final SchemaId< BeaconStateSchema> BEACON_STATE_SCHEMA = create("BEACON_STATE_SCHEMA"); + public static final SchemaId> METADATA_MESSAGE_SCHEMA = + create("METADATA_MESSAGE_SCHEMA"); // Altair @@ -173,6 +182,21 @@ public class SchemaTypes { public static final SchemaId SINGLE_ATTESTATION_SCHEMA = create("SINGLE_ATTESTATION_SCHEMA"); + // Fulu + public static final SchemaId CELL_SCHEMA = create("CELL_SCHEMA"); + public static final SchemaId DATA_COLUMN_SCHEMA = create("DATA_COLUMN_SCHEMA"); + public static final SchemaId DATA_COLUMN_SIDECAR_SCHEMA = + create("DATA_COLUMN_SIDECAR_SCHEMA"); + public static final SchemaId MATRIX_ENTRY_SCHEMA = + create("MATRIX_ENTRY_SCHEMA"); + public static final SchemaId + DATA_COLUMN_SIDECARS_BY_ROOT_REQUEST_MESSAGE_SCHEMA = + create("DATA_COLUMN_SIDECARS_BY_ROOT_REQUEST_MESSAGE_SCHEMA"); + public static final SchemaId< + DataColumnSidecarsByRangeRequestMessage.DataColumnSidecarsByRangeRequestMessageSchema> + DATA_COLUMN_SIDECARS_BY_RANGE_REQUEST_MESSAGE_SCHEMA = + create("DATA_COLUMN_SIDECARS_BY_RANGE_REQUEST_MESSAGE_SCHEMA"); + private SchemaTypes() { // Prevent instantiation } diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/MetadataMessageTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/MetadataMessageTest.java index 46fdbce83e9..fa668460e66 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/MetadataMessageTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/MetadataMessageTest.java @@ -19,6 +19,7 @@ import it.unimi.dsi.fastutil.ints.IntList; import java.util.Collections; +import java.util.Optional; import org.apache.tuweni.bytes.Bytes; import org.junit.jupiter.api.Test; import tech.pegasys.teku.infrastructure.unsigned.UInt64; @@ -38,7 +39,8 @@ class MetadataMessageTest { new MetadataMessageSchemaAltair(spec.getNetworkingConfig()); private final Bytes expectedSsz = Bytes.fromHexString("0x23000000000000000100000000000080"); private final MetadataMessage message = - phase0Schema.create(UInt64.valueOf(0x23), IntList.of(0, 63), Collections.emptyList()); + phase0Schema.create( + UInt64.valueOf(0x23), IntList.of(0, 63), Collections.emptyList(), Optional.empty()); @Test public void shouldSerializeToSsz() { @@ -59,7 +61,8 @@ public void shouldRejectOutOfBoundsAttnets() { phase0Schema.create( UInt64.valueOf(15), IntList.of(spec.getNetworkingConfig().getAttestationSubnetCount()), - Collections.emptyList())) + Collections.emptyList(), + Optional.empty())) .isInstanceOf(IndexOutOfBoundsException.class); } @@ -70,7 +73,8 @@ public void shouldRejectOutOfBoundsSyncnets() { altairSchema.create( UInt64.valueOf(15), Collections.emptyList(), - IntList.of(NetworkConstants.SYNC_COMMITTEE_SUBNET_COUNT))) + IntList.of(NetworkConstants.SYNC_COMMITTEE_SUBNET_COUNT), + Optional.empty())) .isInstanceOf(IndexOutOfBoundsException.class); } } diff --git a/infrastructure/logging/src/main/java/tech/pegasys/teku/infrastructure/logging/LogFormatter.java b/infrastructure/logging/src/main/java/tech/pegasys/teku/infrastructure/logging/LogFormatter.java index 54bf0f413ed..8a9b535569d 100644 --- a/infrastructure/logging/src/main/java/tech/pegasys/teku/infrastructure/logging/LogFormatter.java +++ b/infrastructure/logging/src/main/java/tech/pegasys/teku/infrastructure/logging/LogFormatter.java @@ -41,4 +41,16 @@ public static String formatBlobSidecar( "block %s (%s), index %s, blob %s, commitment %s, proof %s", formatAbbreviatedHashRoot(blockRoot), slot, index, blob, kzgCommitment, kzgProof); } + + public static String formatDataColumnSidecar( + final UInt64 slot, + final Bytes32 blockRoot, + final UInt64 index, + final String blob, + final int kzgCommitmentsSize, + final int kzgProofsSize) { + return String.format( + "DataColumnSidecar[block %s (%s), index %s, 1st cell %s, commitments %s, proofs %s]", + formatAbbreviatedHashRoot(blockRoot), slot, index, blob, kzgCommitmentsSize, kzgProofsSize); + } } diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/impl/SszByteVectorSchemaImpl.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/impl/SszByteVectorSchemaImpl.java index f6f223dd72c..0e516f7f393 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/impl/SszByteVectorSchemaImpl.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/impl/SszByteVectorSchemaImpl.java @@ -38,6 +38,10 @@ public SszByteVectorSchemaImpl( super(elementSchema, vectorLength); } + public SszByteVectorSchemaImpl(final long vectorLength) { + this(SszPrimitiveSchemas.BYTE_SCHEMA, vectorLength); + } + @Override protected DeserializableTypeDefinition createTypeDefinition() { return getElementSchema().equals(SszPrimitiveSchemas.BYTE_SCHEMA) diff --git a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/MetadataMessagesFactory.java b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/MetadataMessagesFactory.java index 32169a12065..da80176571a 100644 --- a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/MetadataMessagesFactory.java +++ b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/beaconchain/methods/MetadataMessagesFactory.java @@ -14,17 +14,23 @@ package tech.pegasys.teku.networking.eth2.rpc.beaconchain.methods; import java.util.Collections; +import java.util.Optional; import java.util.concurrent.atomic.AtomicLong; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.PingMessage; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.MetadataMessage; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.MetadataMessageSchema; public class MetadataMessagesFactory { + private static final Logger LOG = LogManager.getLogger(); private final AtomicLong seqNumberGenerator = new AtomicLong(0L); private Iterable attestationSubnetIds = Collections.emptyList(); private Iterable syncCommitteeSubnetIds = Collections.emptyList(); + // TODO-fulu update with Fulu networking-related changes (CustodyGroupCountChannel) + private final Optional custodyGroupCount = Optional.empty(); public synchronized void updateAttestationSubnetIds( final Iterable attestationSubnetIds) { @@ -43,7 +49,11 @@ private void handleUpdate() { } public synchronized MetadataMessage createMetadataMessage(final MetadataMessageSchema schema) { - return schema.create(getCurrentSeqNumber(), attestationSubnetIds, syncCommitteeSubnetIds); + final MetadataMessage metadataMessage = + schema.create( + getCurrentSeqNumber(), attestationSubnetIds, syncCommitteeSubnetIds, custodyGroupCount); + LOG.debug("Created metadata message {}", metadataMessage); + return metadataMessage; } public PingMessage createPingMessage() { From dd40b5c55bd653ad874a1b0f3a5d6db68e879ac0 Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Thu, 1 May 2025 10:28:33 +1000 Subject: [PATCH 21/33] Added context to the sync committee duties error (#9380) Signed-off-by: Paul Harris --- CHANGELOG.md | 1 + .../validator/coordinator/ValidatorApiHandler.java | 12 +++++++----- .../tech/pegasys/teku/api/ChainDataProvider.java | 4 ++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e13ba47ab1..31ef1048ab7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,5 +10,6 @@ ### Additions and Improvements - Added `--p2p-static-peers-url` option to read static peers from a URL or file +- Added node epoch and computed slot to the sync committee duties failure message for more context about the failure condition. ### Bug Fixes \ No newline at end of file diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java index 71d6402f3f3..b0f3cff1e37 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java @@ -802,15 +802,17 @@ private SafeFuture> getStateForCommitteeDuties( return SafeFuture.completedFuture(Optional.of(bestState)); } - final UInt64 lastQueryableEpoch = + final UInt64 maxQueryableEpoch = syncCommitteeUtil.computeLastEpochOfNextSyncCommitteePeriod( combinedChainDataClient.getCurrentEpoch()); - if (lastQueryableEpoch.isLessThan(epoch)) { + if (maxQueryableEpoch.isLessThan(epoch)) { + final Optional networkCurrentSlot = + chainDataProvider.getNetworkCurrentSlot(); return SafeFuture.failedFuture( new IllegalArgumentException( - "Cannot calculate sync committee duties for epoch " - + epoch - + " because it is not within the current or next sync committee periods")); + String.format( + "Cannot calculate sync committee duties for epoch %s because it is not within the current or next sync committee periods (node current epoch %s, computed current slot %s)", + epoch, combinedChainDataClient.getCurrentEpoch(), networkCurrentSlot))); } final UInt64 requiredEpoch; diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java b/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java index 5905559cb2d..afa3fe84f90 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/ChainDataProvider.java @@ -148,6 +148,10 @@ public GenesisData getGenesisData() { spec.atEpoch(ZERO).getConfig().getGenesisForkVersion()); } + public Optional getNetworkCurrentSlot() { + return recentChainData.getCurrentSlot(); + } + public tech.pegasys.teku.spec.datastructures.genesis.GenesisData getGenesisStateData() { if (!isStoreAvailable()) { throw new ChainDataUnavailableException(); From 4391e87d7d4e50412ff1823652bde67dae08d7ca Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Mon, 5 May 2025 12:05:39 +1200 Subject: [PATCH 22/33] Returning custody_group_count on node/identity Beacon API (#9381) --- .../v1/node/GetIdentityIntegrationTest.java | 19 +++++++++++++++++++ .../beaconrestapi/beacon/schema/MetaData.json | 6 ++++++ .../handlers/v1/node/GetIdentity.java | 5 +++++ .../spec/schemas/SchemaDefinitionsAltair.java | 9 +++++---- .../spec/schemas/SchemaDefinitionsPhase0.java | 10 +++++----- 5 files changed, 40 insertions(+), 9 deletions(-) diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/node/GetIdentityIntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/node/GetIdentityIntegrationTest.java index 4d0f2e83fc8..9564e1f5aa6 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/node/GetIdentityIntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/node/GetIdentityIntegrationTest.java @@ -84,6 +84,25 @@ public void shouldReturnNetworkIdentityAltair() throws Exception { "{\"seq_number\":\"4666673844721362956\",\"attnets\":\"0x0288000000000000\",\"syncnets\":\"0x0f\"}"); } + @Test + public void shouldReturnNetworkIdentityFulu() throws Exception { + startRestAPIAtGenesis(SpecMilestone.FULU); + + final MetadataMessage metadataMessage = + spec.getGenesisSchemaDefinitions() + .getMetadataMessageSchema() + .create(seqnr, List.of(1, 11, 15), List.of(0, 1, 2, 3), Optional.of(UInt64.valueOf(4))); + + when(eth2P2PNetwork.getMetadata()).thenReturn(metadataMessage); + + final Response response = getResponse(GetIdentity.ROUTE); + assertThat(response.code()).isEqualTo(SC_OK); + checkResponseData( + response, + "{\"seq_number\":\"4666673844721362956\",\"attnets\":\"0x0288000000000000\",\"syncnets\":\"0x0f\"," + + "\"custody_group_count\":\"4\"}"); + } + private void checkResponseData(final Response response, final String metadata) throws IOException { final JsonNode data = getResponseData(response); diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/MetaData.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/MetaData.json index bfe838e65ae..044c00c0434 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/MetaData.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/MetaData.json @@ -20,6 +20,12 @@ "pattern" : "^0x[a-fA-F0-9]{2,}$", "description" : "Bitvector representing the node's persistent sync committee subnet subscriptions.", "format" : "bytes" + }, + "custody_group_count" : { + "type" : "string", + "description" : "Uint64 representing the node's custody group count. The metadata is present from the Fulu fork.", + "example" : "1", + "format" : "uint64" } } } \ No newline at end of file diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/node/GetIdentity.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/node/GetIdentity.java index cda8980fb79..d36c23cb73d 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/node/GetIdentity.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/node/GetIdentity.java @@ -139,6 +139,11 @@ private static SerializableTypeDefinition createMetadataType( .withDescription( "Bitvector representing the node's persistent sync committee subnet subscriptions."), MetadataMessage::getOptionalSyncnets) + .withOptionalField( + "custody_group_count", + UINT64_TYPE.withDescription( + "Uint64 representing the node's custody group count. The metadata is present from the Fulu fork."), + MetadataMessage::getOptionalCustodyGroupCount) .build(); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsAltair.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsAltair.java index 8cc1fac6433..c9216dad196 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsAltair.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsAltair.java @@ -17,6 +17,7 @@ import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BEACON_BLOCK_BODY_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BEACON_BLOCK_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BEACON_STATE_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.METADATA_MESSAGE_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.SIGNED_AGGREGATE_AND_PROOF_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.SIGNED_BEACON_BLOCK_SCHEMA; @@ -37,7 +38,7 @@ import tech.pegasys.teku.spec.datastructures.lightclient.LightClientHeaderSchema; import tech.pegasys.teku.spec.datastructures.lightclient.LightClientUpdateResponseSchema; import tech.pegasys.teku.spec.datastructures.lightclient.LightClientUpdateSchema; -import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.altair.MetadataMessageSchemaAltair; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.MetadataMessageSchema; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof.AggregateAndProofSchema; import tech.pegasys.teku.spec.datastructures.operations.Attestation; import tech.pegasys.teku.spec.datastructures.operations.AttestationSchema; @@ -69,7 +70,7 @@ public class SchemaDefinitionsAltair extends AbstractSchemaDefinitions { private final SyncCommitteeContributionSchema syncCommitteeContributionSchema; private final ContributionAndProofSchema contributionAndProofSchema; private final SignedContributionAndProofSchema signedContributionAndProofSchema; - private final MetadataMessageSchemaAltair metadataMessageSchema; + private final MetadataMessageSchema metadataMessageSchema; private final LightClientHeaderSchema lightClientHeaderSchema; private final LightClientBootstrapSchema lightClientBootstrapSchema; private final LightClientUpdateSchema lightClientUpdateSchema; @@ -92,7 +93,7 @@ public SchemaDefinitionsAltair(final SchemaRegistry schemaRegistry) { ContributionAndProofSchema.create(syncCommitteeContributionSchema); this.signedContributionAndProofSchema = SignedContributionAndProofSchema.create(contributionAndProofSchema); - this.metadataMessageSchema = new MetadataMessageSchemaAltair(specConfig.getNetworkingConfig()); + this.metadataMessageSchema = schemaRegistry.get(METADATA_MESSAGE_SCHEMA); this.lightClientHeaderSchema = new LightClientHeaderSchema(); this.lightClientBootstrapSchema = new LightClientBootstrapSchema(specConfig); this.lightClientUpdateSchema = new LightClientUpdateSchema(specConfig); @@ -195,7 +196,7 @@ public BeaconBlockBodyBuilder createBeaconBlockBodyBuilder() { } @Override - public MetadataMessageSchemaAltair getMetadataMessageSchema() { + public MetadataMessageSchema getMetadataMessageSchema() { return metadataMessageSchema; } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsPhase0.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsPhase0.java index 3b4d97934e0..cb532973079 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsPhase0.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsPhase0.java @@ -17,6 +17,7 @@ import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BEACON_BLOCK_BODY_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BEACON_BLOCK_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BEACON_STATE_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.METADATA_MESSAGE_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.SIGNED_AGGREGATE_AND_PROOF_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.SIGNED_BEACON_BLOCK_SCHEMA; @@ -31,7 +32,7 @@ import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBodyBuilder; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBodySchema; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.phase0.BeaconBlockBodyBuilderPhase0; -import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.phase0.MetadataMessageSchemaPhase0; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.MetadataMessageSchema; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof.AggregateAndProofSchema; import tech.pegasys.teku.spec.datastructures.operations.Attestation; import tech.pegasys.teku.spec.datastructures.operations.AttestationSchema; @@ -53,13 +54,12 @@ public class SchemaDefinitionsPhase0 extends AbstractSchemaDefinitions { private final BeaconStateSchema beaconStateSchema; private final BeaconBlockBodySchema beaconBlockBodySchema; - private final MetadataMessageSchemaPhase0 metadataMessageSchema; + private final MetadataMessageSchema metadataMessageSchema; private final BeaconBlockSchema beaconBlockSchema; private final SignedBeaconBlockSchema signedBeaconBlockSchema; public SchemaDefinitionsPhase0(final SchemaRegistry schemaRegistry) { super(schemaRegistry); - final SpecConfig specConfig = schemaRegistry.getSpecConfig(); this.indexedAttestationSchema = schemaRegistry.get(SchemaTypes.INDEXED_ATTESTATION_SCHEMA); this.attesterSlashingSchema = schemaRegistry.get(SchemaTypes.ATTESTER_SLASHING_SCHEMA); @@ -68,7 +68,7 @@ public SchemaDefinitionsPhase0(final SchemaRegistry schemaRegistry) { this.signedAggregateAndProofSchema = schemaRegistry.get(SIGNED_AGGREGATE_AND_PROOF_SCHEMA); this.beaconStateSchema = schemaRegistry.get(BEACON_STATE_SCHEMA); this.beaconBlockBodySchema = schemaRegistry.get(BEACON_BLOCK_BODY_SCHEMA); - this.metadataMessageSchema = new MetadataMessageSchemaPhase0(specConfig.getNetworkingConfig()); + this.metadataMessageSchema = schemaRegistry.get(METADATA_MESSAGE_SCHEMA); this.beaconBlockSchema = schemaRegistry.get(BEACON_BLOCK_SCHEMA); this.signedBeaconBlockSchema = schemaRegistry.get(SIGNED_BEACON_BLOCK_SCHEMA); } @@ -164,7 +164,7 @@ public BeaconBlockBodyBuilder createBeaconBlockBodyBuilder() { } @Override - public MetadataMessageSchemaPhase0 getMetadataMessageSchema() { + public MetadataMessageSchema getMetadataMessageSchema() { return metadataMessageSchema; } From d3ee2d41589df9d9b94fb161e423ed791e6da88d Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Tue, 6 May 2025 09:41:14 +1000 Subject: [PATCH 23/33] may 3rd party updates (#9388) Signed-off-by: Paul Harris --- CHANGELOG.md | 1 + build.gradle | 2 +- gradle/versions.gradle | 28 +++++++++---------- .../restapi/SwaggerUIBuilder.java | 2 +- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31ef1048ab7..6898e421f04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,5 +11,6 @@ ### Additions and Improvements - Added `--p2p-static-peers-url` option to read static peers from a URL or file - Added node epoch and computed slot to the sync committee duties failure message for more context about the failure condition. +- Updated third party libraries. ### Bug Fixes \ No newline at end of file diff --git a/build.gradle b/build.gradle index 7ee6494ba9b..5fadbc9460b 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ plugins { id 'com.github.ben-manes.versions' version '0.52.0' id 'com.github.jk1.dependency-license-report' version '2.9' id 'io.spring.dependency-management' version '1.1.7' - id 'net.ltgt.errorprone' version '4.1.0' apply false + id 'net.ltgt.errorprone' version '4.2.0' apply false id 'de.undercouch.download' version '5.6.0' id 'org.ajoberstar.grgit' version '5.3.0' } diff --git a/gradle/versions.gradle b/gradle/versions.gradle index a7bfc507482..0b385aa961c 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -1,9 +1,9 @@ dependencyManagement { dependencies { - dependency 'com.fasterxml.jackson.core:jackson-databind:2.18.3' - dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.3' - dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.18.3' - dependency 'com.fasterxml.jackson.module:jackson-module-kotlin:2.18.3' + dependency 'com.fasterxml.jackson.core:jackson-databind:2.19.0' + dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.19.0' + dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.19.0' + dependency 'com.fasterxml.jackson.module:jackson-module-kotlin:2.19.0' dependencySet(group: 'com.google.errorprone', version: '2.37.0') { entry 'error_prone_annotation' @@ -16,7 +16,7 @@ dependencyManagement { dependency 'com.google.guava:guava:33.1.0-jre' - dependency 'org.jsoup:jsoup:1.19.1' + dependency 'org.jsoup:jsoup:1.20.1' dependency 'com.launchdarkly:okhttp-eventsource:4.1.1' @@ -25,7 +25,7 @@ dependencyManagement { entry 'mockwebserver' } - dependency 'info.picocli:picocli:4.7.6' + dependency 'info.picocli:picocli:4.7.7' dependencySet(group: 'io.javalin', version: '6.6.0') { entry 'javalin' @@ -51,11 +51,11 @@ dependencyManagement { } // On update don't forget to change version in tech.pegasys.teku.infrastructure.restapi.SwaggerUIBuilder - dependency 'org.webjars:swagger-ui:5.20.7' + dependency 'org.webjars:swagger-ui:5.21.0' dependency 'org.thymeleaf:thymeleaf:3.1.3.RELEASE' dependency 'io.github.classgraph:classgraph:4.8.179' - dependencySet(group: 'com.github.oshi', version: '6.8.0') { + dependencySet(group: 'com.github.oshi', version: '6.8.1') { entry 'oshi-core' entry 'oshi-core-java11' } @@ -71,7 +71,7 @@ dependencyManagement { entry 'vertx-unit' entry 'vertx-web' } - dependency 'io.projectreactor:reactor-core:3.7.4' + dependency 'io.projectreactor:reactor-core:3.7.5' dependency 'it.unimi.dsi:fastutil:8.5.15' @@ -113,7 +113,7 @@ dependencyManagement { entry 'junit-jupiter-params' } - dependency 'net.java.dev.jna:jna:5.16.0' + dependency 'net.java.dev.jna:jna:5.17.0' dependencySet(group: 'org.mockito', version: '5.15.2') { entry 'mockito-core' @@ -125,7 +125,7 @@ dependencyManagement { entry 'jmh-generator-annprocess' } dependency 'org.quartz-scheduler:quartz:2.5.0' - dependency 'org.rocksdb:rocksdbjni:9.10.0' + dependency 'org.rocksdb:rocksdbjni:10.0.1' dependency 'org.fusesource.leveldbjni:leveldbjni-win64:1.8' dependency 'org.fusesource.leveldbjni:leveldbjni-win32:1.8' dependency 'tech.pegasys:leveldb-native:0.3.1' @@ -141,12 +141,12 @@ dependencyManagement { dependency 'io.prometheus:prometheus-metrics-bom:1.3.5' - dependencySet(group: 'org.hyperledger.besu.internal', version: '25.4.0') { + dependencySet(group: 'org.hyperledger.besu.internal', version: '25.4.1') { entry('metrics-core') entry('core') entry('config') } - dependencySet(group: 'org.hyperledger.besu', version: '25.4.0') { + dependencySet(group: 'org.hyperledger.besu', version: '25.4.1') { entry('besu-datatypes') entry('evm') entry('plugin-api') @@ -159,7 +159,7 @@ dependencyManagement { // discovery includes tuweni libraries under a different name so version resolution doesn't work // exclude them here and leave them to be included on the classpath by the version we use - dependency('tech.pegasys.discovery:discovery:25.3.0') { + dependency('tech.pegasys.discovery:discovery:25.4.0') { exclude 'io.consensys.tuweni:bytes' exclude 'io.consensys.tuweni:crypto' exclude 'io.consensys.tuweni:units' diff --git a/infrastructure/restapi/src/main/java/tech/pegasys/teku/infrastructure/restapi/SwaggerUIBuilder.java b/infrastructure/restapi/src/main/java/tech/pegasys/teku/infrastructure/restapi/SwaggerUIBuilder.java index 552c0e998b9..374c61ca979 100644 --- a/infrastructure/restapi/src/main/java/tech/pegasys/teku/infrastructure/restapi/SwaggerUIBuilder.java +++ b/infrastructure/restapi/src/main/java/tech/pegasys/teku/infrastructure/restapi/SwaggerUIBuilder.java @@ -30,7 +30,7 @@ public class SwaggerUIBuilder { // Version here MUST match `swagger-ui` library version - private static final String SWAGGER_UI_VERSION = "5.20.7"; + private static final String SWAGGER_UI_VERSION = "5.21.0"; private static final String SWAGGER_UI_PATH = "/swagger-ui"; private static final String SWAGGER_HOSTED_PATH = "/webjars/swagger-ui/" + SWAGGER_UI_VERSION; From 6e54398dd35c6a832bfaf0ca5109537eed7d5c17 Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Tue, 6 May 2025 10:51:54 +1000 Subject: [PATCH 24/33] Added snakeyaml to allow more complicated config reading (#9390) - added tests to show reading lists of objects (BPO related) - added a testcase to show that hex is read correctly - added testcase to show specConfigReader isnt filling defaults when we read local config files Partially addresses #9365 Signed-off-by: Paul Harris --- ethereum/spec/build.gradle | 1 + .../teku/spec/config/SpecConfigLoader.java | 10 +-- .../teku/spec/config/SpecConfigReader.java | 22 ++---- .../teku/spec/config/YamlConfigReader.java | 61 ++++++++++++++++ .../spec/config/SpecConfigLoaderTest.java | 12 +-- .../spec/config/SpecConfigReaderTest.java | 20 ++++- .../spec/config/YamlConfigReaderTest.java | 73 +++++++++++++++++++ gradle/versions.gradle | 2 + .../teku/cli/subcommand/RemoteSpecLoader.java | 9 ++- .../cli/subcommand/RemoteSpecLoaderTest.java | 4 +- 10 files changed, 180 insertions(+), 34 deletions(-) create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/YamlConfigReader.java create mode 100644 ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/YamlConfigReaderTest.java diff --git a/ethereum/spec/build.gradle b/ethereum/spec/build.gradle index f5759305468..8c53b631026 100644 --- a/ethereum/spec/build.gradle +++ b/ethereum/spec/build.gradle @@ -8,6 +8,7 @@ dependencies { api project(':infrastructure:kzg') implementation 'com.fasterxml.jackson.core:jackson-databind' + implementation 'org.yaml:snakeyaml' implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml' implementation 'io.consensys.tuweni:tuweni-bytes' implementation 'io.consensys.tuweni:tuweni-ssz' diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigLoader.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigLoader.java index 2ad83a6ce88..8ff729fe49c 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigLoader.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigLoader.java @@ -60,17 +60,17 @@ public static SpecConfigAndParent loadConfig( } public static SpecConfigAndParent loadRemoteConfig( - final Map config) { + final Map config) { final SpecConfigReader reader = new SpecConfigReader(); if (config.containsKey(SpecConfigReader.PRESET_KEY)) { try { - applyPreset("remote", reader, true, config.get(SpecConfigReader.PRESET_KEY)); + applyPreset("remote", reader, true, (String) config.get(SpecConfigReader.PRESET_KEY)); } catch (IOException e) { throw new UncheckedIOException(e); } } if (config.containsKey(SpecConfigReader.CONFIG_NAME_KEY)) { - final String configNameKey = config.get(SpecConfigReader.CONFIG_NAME_KEY); + final String configNameKey = (String) config.get(SpecConfigReader.CONFIG_NAME_KEY); try { processConfig(configNameKey, reader, true); } catch (IllegalArgumentException exception) { @@ -87,9 +87,9 @@ public static SpecConfigAndParent loadRemoteConfig( static void processConfig( final String source, final SpecConfigReader reader, final boolean ignoreUnknownConfigItems) { try (final InputStream configFile = loadConfigurationFile(source)) { - final Map configValues = reader.readValues(configFile); + final Map configValues = reader.readValues(configFile); final Optional maybePreset = - Optional.ofNullable(configValues.get(SpecConfigReader.PRESET_KEY)); + Optional.ofNullable((String) configValues.get(SpecConfigReader.PRESET_KEY)); // Legacy config files won't have a preset field if (maybePreset.isPresent()) { diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigReader.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigReader.java index bfbe701b5db..b38d4568c15 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigReader.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigReader.java @@ -15,9 +15,7 @@ import static tech.pegasys.teku.spec.config.SpecConfigFormatter.camelToSnakeCase; -import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.RuntimeJsonMappingException; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; @@ -131,14 +129,14 @@ public SpecConfigAndParent build( */ public void readAndApply(final InputStream source, final boolean ignoreUnknownConfigItems) throws IOException { - final Map rawValues = readValues(source); + final Map rawValues = readValues(source); loadFromMap(rawValues, ignoreUnknownConfigItems); } public void loadFromMap( - final Map rawValues, final boolean ignoreUnknownConfigItems) { - final Map unprocessedConfig = new HashMap<>(rawValues); - final Map apiSpecConfig = new HashMap<>(rawValues); + final Map rawValues, final boolean ignoreUnknownConfigItems) { + final Map unprocessedConfig = new HashMap<>(rawValues); + final Map apiSpecConfig = new HashMap<>(rawValues); // Remove any keys that we're ignoring KEYS_TO_IGNORE.forEach( key -> { @@ -240,16 +238,10 @@ public void loadFromMap( } } - @SuppressWarnings("unchecked") - public Map readValues(final InputStream source) throws IOException { - final ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); + public Map readValues(final InputStream source) throws IOException { + final YamlConfigReader reader = new YamlConfigReader(); try { - return (Map) - mapper - .readerFor( - mapper.getTypeFactory().constructMapType(Map.class, String.class, String.class)) - .readValues(source) - .next(); + return reader.readValues(source); } catch (NoSuchElementException e) { throw new IllegalArgumentException("Supplied spec config is empty"); } catch (RuntimeJsonMappingException e) { diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/YamlConfigReader.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/YamlConfigReader.java new file mode 100644 index 00000000000..39fb4dee4b1 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/YamlConfigReader.java @@ -0,0 +1,61 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.config; + +import java.io.InputStream; +import java.util.Map; +import java.util.NoSuchElementException; +import org.yaml.snakeyaml.DumperOptions; +import org.yaml.snakeyaml.LoaderOptions; +import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.constructor.Constructor; +import org.yaml.snakeyaml.nodes.Tag; +import org.yaml.snakeyaml.representer.Representer; +import org.yaml.snakeyaml.resolver.Resolver; + +public class YamlConfigReader { + private final Yaml yaml; + + public YamlConfigReader() { + final Resolver resolver = new CustomResolver(); + yaml = + new Yaml( + new Constructor(new LoaderOptions()), + new Representer(new DumperOptions()), + new DumperOptions(), + resolver); + } + + public Map readValues(final InputStream source) { + final Map values = yaml.load(source); + if (values == null) { + throw new NoSuchElementException(); + } + return values; + } + + /* + * For the purposes of reading config, we just want strings, we don't want numeric values. + * This will ensure that we get hex values through as unparsed, and ensure we're getting + * things such as CRC checks through without them being altered. + * The implicit resolver below is basically saying just match numerics as string. + */ + public static class CustomResolver extends Resolver { + @Override + protected void addImplicitResolvers() { + addImplicitResolver(Tag.STR, INT, "+-0123456789."); + super.addImplicitResolvers(); + } + } +} diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigLoaderTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigLoaderTest.java index df29aefe455..219bf0aef05 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigLoaderTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigLoaderTest.java @@ -19,9 +19,7 @@ import static tech.pegasys.teku.spec.config.SpecConfigAssertions.assertAllBellatrixFieldsSet; import static tech.pegasys.teku.spec.config.SpecConfigAssertions.assertAllFieldsSet; -import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.io.Resources; -import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; @@ -55,7 +53,7 @@ public void shouldLoadAllKnownNetworks(final Eth2Network network) throws Excepti * sufficient. */ @ParameterizedTest(name = "{0}") - @ValueSource(strings = {"holesky", "mainnet"}) + @ValueSource(strings = {"hoodi", "mainnet"}) public void shouldMaintainConfigNameBackwardsCompatibility(final String name) { final SpecConfig config = SpecConfigLoader.loadConfig(name).specConfig(); assertThat(config.getRawConfig().get("CONFIG_NAME")).isEqualTo(name); @@ -161,10 +159,8 @@ private InputStream loadInvalidFile(final String file) { return getClass().getResourceAsStream("invalid/" + file); } - private Map readJsonConfig(final InputStream source) throws IOException { - final ObjectMapper mapper = new ObjectMapper(); - return mapper - .readerFor(mapper.getTypeFactory().constructMapType(Map.class, String.class, String.class)) - .readValue(source); + private Map readJsonConfig(final InputStream source) { + YamlConfigReader reader = new YamlConfigReader(); + return reader.readValues(source); } } diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigReaderTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigReaderTest.java index a923eb7c491..f6b2f0363f5 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigReaderTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigReaderTest.java @@ -13,14 +13,19 @@ package tech.pegasys.teku.spec.config; +import static java.nio.charset.StandardCharsets.UTF_8; import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat; import static tech.pegasys.teku.spec.config.SpecConfigAssertions.assertAllAltairFieldsSet; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import tech.pegasys.teku.infrastructure.unsigned.UInt64; public class SpecConfigReaderTest { @@ -141,7 +146,7 @@ public void read_invalidLong_wrongType() { assertThatThrownBy(() -> readConfig(stream)) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining( - "Cannot read spec config: Cannot deserialize value of type `java.lang.String` from Array")); + "Failed to parse value for constant VALIDATOR_REGISTRY_LIMIT")); } @Test @@ -187,6 +192,19 @@ public void read_invalidUInt64_tooLarge() { "Failed to parse value for constant MIN_GENESIS_TIME: '18446744073709552001'")); } + @Test + public void read_localConfigFile_notLoadingDefaults(@TempDir final Path tempDir) + throws IOException { + Files.writeString( + tempDir.resolve("test.yaml"), "PRESET_BASE: 'mainnet'\nCONFIG_NAME: 'mainnet'", UTF_8); + Map data = + reader.readValues(Files.newInputStream(tempDir.resolve("test.yaml"))); + reader.loadFromMap(data, true); + assertThatThrownBy(reader::build) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("SECONDS_PER_ETH1_BLOCK"); + } + @Test public void read_invalidBytes4_tooLarge() { processFileAsInputStream( diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/YamlConfigReaderTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/YamlConfigReaderTest.java new file mode 100644 index 00000000000..cdb74dfee04 --- /dev/null +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/YamlConfigReaderTest.java @@ -0,0 +1,73 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.config; + +import static java.nio.charset.StandardCharsets.UTF_8; +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.List; +import java.util.Map; +import org.apache.commons.io.IOUtils; +import org.junit.jupiter.api.Test; + +@SuppressWarnings("unchecked") +public class YamlConfigReaderTest { + private final YamlConfigReader reader = new YamlConfigReader(); + + @Test + void shouldReadSimpleObjectToStringMap() { + final String testData = + """ +version: 250 +info: the info +"""; + final Map objData = reader.readValues(IOUtils.toInputStream(testData, UTF_8)); + assertThat(objData.get("version")).isInstanceOf(String.class).isEqualTo("250"); + assertThat(objData.get("info")).isInstanceOf(String.class).isEqualTo("the info"); + } + + @Test + void shouldReadObjectWithListOfObjects() { + final String testData = + """ +data: + - a: 1 + aa: 11 + - b: two + bb: three +"""; + + final Map objData = reader.readValues(IOUtils.toInputStream(testData, UTF_8)); + assertThat(objData.get("data")).isInstanceOf(List.class); + final List> list = (List>) objData.get("data"); + for (Object o : list) { + assertThat(o).isInstanceOf(Map.class); + assertThat(((Map) o).size()).isEqualTo(2); + } + assertThat(list) + .containsExactly(Map.of("a", "1", "aa", "11"), Map.of("b", "two", "bb", "three")); + } + + @Test + void shouldReadEth1Address() { + final String testData = + """ +DEPOSIT_CONTRACT_ADDRESS: 0x4242424242424242424242424242424242424242 + """; + final Map objData = reader.readValues(IOUtils.toInputStream(testData, UTF_8)); + assertThat(objData.get("DEPOSIT_CONTRACT_ADDRESS")) + .isInstanceOf(String.class) + .isEqualTo("0x4242424242424242424242424242424242424242"); + } +} diff --git a/gradle/versions.gradle b/gradle/versions.gradle index 0b385aa961c..abcfa46bca0 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -16,6 +16,8 @@ dependencyManagement { dependency 'com.google.guava:guava:33.1.0-jre' + dependency 'org.yaml:snakeyaml:2.4' + dependency 'org.jsoup:jsoup:1.20.1' dependency 'com.launchdarkly:okhttp-eventsource:4.1.1' diff --git a/teku/src/main/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoader.java b/teku/src/main/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoader.java index 8d20a868b2f..8202797486a 100644 --- a/teku/src/main/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoader.java +++ b/teku/src/main/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoader.java @@ -14,6 +14,7 @@ package tech.pegasys.teku.cli.subcommand; import java.net.URI; +import java.util.HashMap; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; @@ -47,7 +48,7 @@ static Spec getSpec(final OkHttpValidatorMinimalTypeDefClient apiClient) { try { return apiClient .getSpec() - .map(SpecConfigLoader::loadRemoteConfig) + .map(config -> SpecConfigLoader.loadRemoteConfig(new HashMap<>(config))) .map(SpecFactory::create) .orElseThrow(); } catch (final Throwable ex) { @@ -78,13 +79,13 @@ private static Spec getSpecWithFailovers( throw new InvalidConfigurationException(errMsg); } - private static T retry(final Callable f) { + private static T retry(final Callable callable) { try { - return f.call(); + return callable.call(); } catch (Throwable ex) { logError(ex); sleep(); - return retry(f); + return retry(callable); } } diff --git a/teku/src/test/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoaderTest.java b/teku/src/test/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoaderTest.java index 9c39079fbfc..0acbda73ebd 100644 --- a/teku/src/test/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoaderTest.java +++ b/teku/src/test/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoaderTest.java @@ -22,6 +22,7 @@ import com.google.common.io.Resources; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.HashMap; import java.util.Map; import java.util.Optional; import org.junit.jupiter.api.Test; @@ -70,7 +71,8 @@ void shouldDefaultNetworkConfigThatMovedFromConstants() throws IOException { final ObjectMapper objectMapper = new ObjectMapper(); TypeReference> typeReference = new TypeReference<>() {}; Map data = objectMapper.readValue(jsonConfig, typeReference); - final SpecConfig specConfig = SpecConfigLoader.loadRemoteConfig(data).specConfig(); + final SpecConfig specConfig = + SpecConfigLoader.loadRemoteConfig(new HashMap<>(data)).specConfig(); // Check values not assigned, using default values assertThat(specConfig.getMaxPayloadSize()).isEqualTo(10485760); From 7005739737703964ea870aa23f67d85169bba2d5 Mon Sep 17 00:00:00 2001 From: Mehdi AOUADI Date: Tue, 6 May 2025 11:00:33 +0200 Subject: [PATCH 25/33] Add FULU to the Spec Factory (#9373) --- .../paths/_eth_v1_beacon_blinded_blocks.json | 2 +- ...h_v1_beacon_blinded_blocks_{block_id}.json | 3 +- ...th_v1_beacon_blob_sidecars_{block_id}.json | 3 +- .../beacon/paths/_eth_v1_beacon_blocks.json | 4 ++- .../_eth_v1_beacon_light_client_updates.json | 3 +- ...tes_{state_id}_pending_consolidations.json | 2 +- ...on_states_{state_id}_pending_deposits.json | 2 +- ...state_id}_pending_partial_withdrawals.json | 2 +- .../paths/_eth_v2_beacon_blinded_blocks.json | 2 +- .../beacon/paths/_eth_v2_beacon_blocks.json | 4 ++- ...beacon_blocks_{block_id}_attestations.json | 3 +- .../_eth_v2_beacon_pool_attestations.json | 5 ++-- ...eth_v2_beacon_pool_attester_slashings.json | 5 ++-- ...eth_v2_debug_beacon_states_{state_id}.json | 3 +- ...eth_v2_validator_aggregate_and_proofs.json | 2 +- ...th_v2_validator_aggregate_attestation.json | 3 +- .../_eth_v3_validator_blocks_{slot}.json | 3 +- .../beacon/schema/BlockContentsFulu.json | 28 +++++++++++++++++++ .../GetAggregatedAttestationResponseV2.json | 2 +- .../schema/GetAllBlocksAtSlotResponse.json | 2 +- .../schema/GetBlindedBlockResponse.json | 2 +- .../schema/GetBlobSidecarsResponse.json | 2 +- .../GetBlockAttestationsResponseV2.json | 2 +- .../beacon/schema/GetBlockV2Response.json | 2 +- .../GetLightClientBootstrapResponse.json | 2 +- .../GetPendingConsolidationsResponse.json | 2 +- .../schema/GetPendingDepositsResponse.json | 2 +- .../GetPendingPartialWithdrawalsResponse.json | 2 +- .../schema/GetPoolAttestationsV2Response.json | 2 +- .../GetPoolAttesterSlashingsV2Response.json | 2 +- .../beacon/schema/GetStateV2Response.json | 2 +- .../beacon/schema/ProduceBlockV3Response.json | 4 ++- .../schema/SignedBlockContentsFulu.json | 28 +++++++++++++++++++ .../ethereum/json/types/EthereumTypes.java | 7 +---- .../tech/pegasys/teku/spec/SpecFactory.java | 12 +++++++- .../spec/schemas/SchemaDefinitionCache.java | 5 +--- 36 files changed, 117 insertions(+), 44 deletions(-) create mode 100644 data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlockContentsFulu.json create mode 100644 data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlockContentsFulu.json diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks.json index 56df6225beb..d4263c63b6e 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks.json @@ -10,7 +10,7 @@ "in" : "header", "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "description" : "Version of the block being submitted, if using SSZ encoding." } } ], diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks_{block_id}.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks_{block_id}.json index 32866e570a8..d5f618fe8ce 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks_{block_id}.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks_{block_id}.json @@ -29,7 +29,8 @@ "bellatrix", "capella", "deneb", - "electra" + "electra", + "fulu" ], "example": "phase0" } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blob_sidecars_{block_id}.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blob_sidecars_{block_id}.json index 2d2da89b4c9..fe8a79993ba 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blob_sidecars_{block_id}.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blob_sidecars_{block_id}.json @@ -41,7 +41,8 @@ "bellatrix", "capella", "deneb", - "electra" + "electra", + "fulu" ], "example": "phase0" } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blocks.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blocks.json index 703cca02f5b..63e426ffe4b 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blocks.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blocks.json @@ -10,7 +10,7 @@ "in" : "header", "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "description" : "Version of the block being submitted, if using SSZ encoding." } } ], @@ -38,6 +38,8 @@ "$ref" : "#/components/schemas/SignedBlockContentsDeneb" }, { "$ref" : "#/components/schemas/SignedBlockContentsElectra" + }, { + "$ref" : "#/components/schemas/SignedBlockContentsFulu" } ] } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_light_client_updates.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_light_client_updates.json index 56fb7296377..d56edf703d0 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_light_client_updates.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_light_client_updates.json @@ -44,7 +44,8 @@ "bellatrix", "capella", "deneb", - "electra" + "electra", + "fulu" ] }, "data": { diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_consolidations.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_consolidations.json index ee6c0b839fe..7b14df25a4a 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_consolidations.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_consolidations.json @@ -23,7 +23,7 @@ "required" : true, "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "example" : "phase0" } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_deposits.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_deposits.json index 4daacc4478c..29688e3333c 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_deposits.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_deposits.json @@ -23,7 +23,7 @@ "required" : true, "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "example" : "phase0" } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_partial_withdrawals.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_partial_withdrawals.json index 46e5bbe88f9..86978f0bc76 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_partial_withdrawals.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_states_{state_id}_pending_partial_withdrawals.json @@ -23,7 +23,7 @@ "required" : true, "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "example" : "phase0" } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blinded_blocks.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blinded_blocks.json index 1cb1edbd7d8..cc1aef32b49 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blinded_blocks.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blinded_blocks.json @@ -20,7 +20,7 @@ "in" : "header", "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "description" : "Version of the block being submitted." } } ], diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blocks.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blocks.json index 91bea9a6f03..6784c9b3fbd 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blocks.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blocks.json @@ -20,7 +20,7 @@ "in" : "header", "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "description" : "Version of the block being submitted." } } ], @@ -48,6 +48,8 @@ "$ref" : "#/components/schemas/SignedBlockContentsDeneb" }, { "$ref" : "#/components/schemas/SignedBlockContentsElectra" + }, { + "$ref" : "#/components/schemas/SignedBlockContentsFulu" } ] } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blocks_{block_id}_attestations.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blocks_{block_id}_attestations.json index c73cde0e358..9b7a2103393 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blocks_{block_id}_attestations.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_blocks_{block_id}_attestations.json @@ -29,7 +29,8 @@ "bellatrix", "capella", "deneb", - "electra" + "electra", + "fulu" ], "example": "phase0" } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attestations.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attestations.json index 592f1b8bc6d..122d579e6be 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attestations.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attestations.json @@ -38,7 +38,8 @@ "bellatrix", "capella", "deneb", - "electra" + "electra", + "fulu" ], "example": "phase0" } @@ -85,7 +86,7 @@ "in" : "header", "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "description" : "Version of the attestations being submitted." } } ], diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attester_slashings.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attester_slashings.json index 9562ee1a45b..e8ff23c8729 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attester_slashings.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_beacon_pool_attester_slashings.json @@ -19,7 +19,8 @@ "bellatrix", "capella", "deneb", - "electra" + "electra", + "fulu" ], "example": "phase0" } @@ -66,7 +67,7 @@ "in" : "header", "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "description" : "Version of the attester slashing being submitted." } } ], diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_debug_beacon_states_{state_id}.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_debug_beacon_states_{state_id}.json index a803cb0fe24..3becc3252fa 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_debug_beacon_states_{state_id}.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_debug_beacon_states_{state_id}.json @@ -29,7 +29,8 @@ "bellatrix", "capella", "deneb", - "electra" + "electra", + "fulu" ], "example": "phase0" } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_and_proofs.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_and_proofs.json index 88123b6bfc9..cfc817fd982 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_and_proofs.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_and_proofs.json @@ -10,7 +10,7 @@ "in" : "header", "schema" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ], + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ], "description" : "Version of the aggregate and proofs being submitted." } } ], diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_attestation.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_attestation.json index 232b9a64bd7..6976d143131 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_attestation.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v2_validator_aggregate_attestation.json @@ -50,7 +50,8 @@ "bellatrix", "capella", "deneb", - "electra" + "electra", + "fulu" ], "example": "phase0" } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v3_validator_blocks_{slot}.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v3_validator_blocks_{slot}.json index f0d04e5f761..b1e08a9ff28 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v3_validator_blocks_{slot}.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v3_validator_blocks_{slot}.json @@ -68,7 +68,8 @@ "bellatrix", "capella", "deneb", - "electra" + "electra", + "fulu" ], "example": "phase0" } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlockContentsFulu.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlockContentsFulu.json new file mode 100644 index 00000000000..cce1946b2ef --- /dev/null +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlockContentsFulu.json @@ -0,0 +1,28 @@ +{ + "title" : "BlockContentsFulu", + "type" : "object", + "required" : [ "block", "kzg_proofs", "blobs" ], + "properties" : { + "block" : { + "$ref" : "#/components/schemas/BeaconBlockElectra" + }, + "kzg_proofs" : { + "type" : "array", + "items" : { + "type" : "string", + "pattern" : "^0x[a-fA-F0-9]{2,}$", + "description" : "Bytes48 hexadecimal", + "format" : "bytes" + } + }, + "blobs" : { + "type" : "array", + "items" : { + "type" : "string", + "pattern" : "^0x[a-fA-F0-9]{2,}$", + "description" : "SSZ hexadecimal", + "format" : "bytes" + } + } + } +} \ No newline at end of file diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetAggregatedAttestationResponseV2.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetAggregatedAttestationResponseV2.json index 9cb12c68428..14f755d1397 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetAggregatedAttestationResponseV2.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetAggregatedAttestationResponseV2.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "data" : { "type" : "object", diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetAllBlocksAtSlotResponse.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetAllBlocksAtSlotResponse.json index 80cd5b0740b..0b8c5d9d726 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetAllBlocksAtSlotResponse.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetAllBlocksAtSlotResponse.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "data" : { "type" : "array", diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlindedBlockResponse.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlindedBlockResponse.json index 36777047ed8..6a06a9e0709 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlindedBlockResponse.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlindedBlockResponse.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "execution_optimistic" : { "type" : "boolean" diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlobSidecarsResponse.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlobSidecarsResponse.json index 03a7a2c46d7..bc15072c3b4 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlobSidecarsResponse.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlobSidecarsResponse.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "execution_optimistic" : { "type" : "boolean" diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlockAttestationsResponseV2.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlockAttestationsResponseV2.json index 0ab64e88a12..f7392a9c234 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlockAttestationsResponseV2.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlockAttestationsResponseV2.json @@ -11,7 +11,7 @@ }, "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "data" : { "type" : "object", diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlockV2Response.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlockV2Response.json index 87ad068b65f..dfedfb0bc1f 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlockV2Response.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetBlockV2Response.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "execution_optimistic" : { "type" : "boolean" diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetLightClientBootstrapResponse.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetLightClientBootstrapResponse.json index 2d83bbbbbab..df021bf818e 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetLightClientBootstrapResponse.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetLightClientBootstrapResponse.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "data" : { "$ref" : "#/components/schemas/LightClientBootstrap" diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingConsolidationsResponse.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingConsolidationsResponse.json index fdef248e084..9b560ab6f4e 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingConsolidationsResponse.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingConsolidationsResponse.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "execution_optimistic" : { "type" : "boolean" diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingDepositsResponse.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingDepositsResponse.json index 8b4264a33be..e790fde76eb 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingDepositsResponse.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingDepositsResponse.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "execution_optimistic" : { "type" : "boolean" diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingPartialWithdrawalsResponse.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingPartialWithdrawalsResponse.json index cf0f5c2f217..1a7e648ff70 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingPartialWithdrawalsResponse.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPendingPartialWithdrawalsResponse.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "execution_optimistic" : { "type" : "boolean" diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPoolAttestationsV2Response.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPoolAttestationsV2Response.json index 80756cfe9c9..cc8fac0295b 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPoolAttestationsV2Response.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPoolAttestationsV2Response.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "data" : { "type" : "array", diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPoolAttesterSlashingsV2Response.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPoolAttesterSlashingsV2Response.json index f7d37298367..b9c894f3a06 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPoolAttesterSlashingsV2Response.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetPoolAttesterSlashingsV2Response.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "data" : { "type" : "object", diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetStateV2Response.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetStateV2Response.json index 27b011ce585..91c7ea990a7 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetStateV2Response.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetStateV2Response.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "execution_optimistic" : { "type" : "boolean" diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/ProduceBlockV3Response.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/ProduceBlockV3Response.json index eede3e02bbf..544a88c106c 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/ProduceBlockV3Response.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/ProduceBlockV3Response.json @@ -5,7 +5,7 @@ "properties" : { "version" : { "type" : "string", - "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra" ] + "enum" : [ "phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu" ] }, "execution_payload_blinded" : { "type" : "boolean" @@ -45,6 +45,8 @@ "$ref" : "#/components/schemas/BlockContentsElectra" }, { "$ref" : "#/components/schemas/BlindedBeaconBlockElectra" + }, { + "$ref" : "#/components/schemas/BlockContentsFulu" } ] } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlockContentsFulu.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlockContentsFulu.json new file mode 100644 index 00000000000..33ff526ffba --- /dev/null +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlockContentsFulu.json @@ -0,0 +1,28 @@ +{ + "title" : "SignedBlockContentsFulu", + "type" : "object", + "required" : [ "signed_block", "kzg_proofs", "blobs" ], + "properties" : { + "signed_block" : { + "$ref" : "#/components/schemas/SignedBeaconBlockElectra" + }, + "kzg_proofs" : { + "type" : "array", + "items" : { + "type" : "string", + "pattern" : "^0x[a-fA-F0-9]{2,}$", + "description" : "Bytes48 hexadecimal", + "format" : "bytes" + } + }, + "blobs" : { + "type" : "array", + "items" : { + "type" : "string", + "pattern" : "^0x[a-fA-F0-9]{2,}$", + "description" : "SSZ hexadecimal", + "format" : "bytes" + } + } + } +} \ No newline at end of file diff --git a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java index 061c052beaa..2878f0c34d0 100644 --- a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java +++ b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/EthereumTypes.java @@ -22,7 +22,6 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; -import java.util.Set; import java.util.function.Function; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.units.bigints.UInt256; @@ -94,9 +93,7 @@ public class EthereumTypes { public static final StringValueTypeDefinition MILESTONE_TYPE = new EnumTypeDefinition<>( - SpecMilestone.class, - milestone -> milestone.name().toLowerCase(Locale.ROOT), - Set.of(SpecMilestone.FULU)); // TODO-fulu eventually we remove this ignore + SpecMilestone.class, milestone -> milestone.name().toLowerCase(Locale.ROOT)); public static final EnumHeaderTypeDefinition ETH_CONSENSUS_HEADER_TYPE = new EnumHeaderTypeDefinition.EnumTypeHeaderDefinitionBuilder<>( @@ -106,8 +103,6 @@ public class EthereumTypes { .description( "Required in response so client can deserialize returned json or ssz data more effectively.") .example("phase0") - .excludedEnumerations( - Set.of(SpecMilestone.FULU)) // TODO-fulu eventually we remove this ignore .build(); public static final BooleanHeaderTypeDefinition ETH_HEADER_EXECUTION_PAYLOAD_BLINDED_TYPE = diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecFactory.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecFactory.java index e180cdbf65a..ec3742a778c 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecFactory.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/SpecFactory.java @@ -18,6 +18,7 @@ import static tech.pegasys.teku.spec.SpecMilestone.CAPELLA; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; import static tech.pegasys.teku.spec.SpecMilestone.ELECTRA; +import static tech.pegasys.teku.spec.SpecMilestone.FULU; import static tech.pegasys.teku.spec.SpecMilestone.PHASE0; import static tech.pegasys.teku.spec.config.SpecConfig.FAR_FUTURE_EPOCH; @@ -30,6 +31,7 @@ import tech.pegasys.teku.spec.config.SpecConfigCapella; import tech.pegasys.teku.spec.config.SpecConfigDeneb; import tech.pegasys.teku.spec.config.SpecConfigElectra; +import tech.pegasys.teku.spec.config.SpecConfigFulu; import tech.pegasys.teku.spec.config.SpecConfigLoader; import tech.pegasys.teku.spec.config.builder.SpecConfigBuilder; @@ -76,9 +78,17 @@ public static Spec create(final SpecConfigAndParent config .toVersionElectra() .map(SpecConfigElectra::getElectraForkEpoch) .orElse(FAR_FUTURE_EPOCH); + final UInt64 fuluForkEpoch = + config + .specConfig() + .toVersionFulu() + .map(SpecConfigFulu::getFuluForkEpoch) + .orElse(FAR_FUTURE_EPOCH); final SpecMilestone highestMilestoneSupported; - if (!electraForkEpoch.equals(FAR_FUTURE_EPOCH)) { + if (!fuluForkEpoch.equals(FAR_FUTURE_EPOCH)) { + highestMilestoneSupported = FULU; + } else if (!electraForkEpoch.equals(FAR_FUTURE_EPOCH)) { highestMilestoneSupported = ELECTRA; } else if (!denebForkEpoch.equals(FAR_FUTURE_EPOCH)) { highestMilestoneSupported = DENEB; diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionCache.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionCache.java index 4b966af2285..520bc0fa232 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionCache.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionCache.java @@ -61,9 +61,6 @@ private SchemaDefinitions createSchemaDefinition(final SpecMilestone milestone) } public List getSupportedMilestones() { - // TODO-fulu remove filtering up to electra - return spec.getForkSchedule().getSupportedMilestones().stream() - .filter(specMilestone -> specMilestone.isLessThan(SpecMilestone.FULU)) - .toList(); + return spec.getForkSchedule().getSupportedMilestones().stream().toList(); } } From 5150373069441dcb42872356442e7b43e7837efc Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Wed, 7 May 2025 09:37:05 +0200 Subject: [PATCH 26/33] Improve attestation bits aggregator electra (#9393) --- .../AttestationBitsAggregatorElectra.java | 360 ++++++++++-------- .../AttestationBitsAggregatorElectraTest.java | 129 +++++++ .../ssz/collections/SszBitlist.java | 7 + .../ssz/collections/SszBitvector.java | 3 + .../ssz/collections/impl/BitlistImpl.java | 18 +- .../ssz/collections/impl/BitvectorImpl.java | 10 + .../ssz/collections/impl/SszBitlistImpl.java | 17 +- .../collections/impl/SszBitvectorImpl.java | 11 + .../schema/collections/SszBitlistSchema.java | 8 +- .../collections/SszBitvectorSchema.java | 8 + .../impl/SszBitvectorSchemaImpl.java | 6 + .../ssz/collections/SszBitlistTest.java | 39 +- .../ssz/collections/SszBitvectorTest.java | 11 + 13 files changed, 447 insertions(+), 180 deletions(-) diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectra.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectra.java index 361b12caa40..13f5084d61c 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectra.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectra.java @@ -15,229 +15,255 @@ import com.google.common.base.MoreObjects; import it.unimi.dsi.fastutil.ints.Int2IntMap; -import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; +import java.util.ArrayList; import java.util.BitSet; -import java.util.stream.IntStream; +import java.util.List; +import java.util.Objects; import tech.pegasys.teku.infrastructure.ssz.collections.SszBitlist; import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; +import tech.pegasys.teku.infrastructure.ssz.schema.collections.SszBitlistSchema; +import tech.pegasys.teku.infrastructure.ssz.schema.collections.SszBitvectorSchema; import tech.pegasys.teku.spec.datastructures.operations.Attestation; import tech.pegasys.teku.spec.datastructures.operations.AttestationSchema; class AttestationBitsAggregatorElectra implements AttestationBitsAggregator { - private SszBitlist aggregationBits; - private SszBitvector committeeBits; - private Int2IntMap committeeBitsStartingPositions; + + private final SszBitlistSchema aggregationBitsSchema; + private final SszBitvectorSchema committeeBitsSchema; private final Int2IntMap committeesSize; + private Int2ObjectMap committeeAggregationBitsMap; + private BitSet committeeBits; + + private SszBitlist cachedAggregationBits = null; + private SszBitvector cachedCommitteeBits = null; + AttestationBitsAggregatorElectra( - final SszBitlist aggregationBits, - final SszBitvector committeeBits, + final SszBitlist initialAggregationBits, + final SszBitvector initialCommitteeBits, final Int2IntMap committeesSize) { - this.aggregationBits = aggregationBits; - this.committeeBits = committeeBits; - this.committeesSize = committeesSize; - this.committeeBitsStartingPositions = calculateCommitteeStartingPositions(committeeBits); + this.aggregationBitsSchema = initialAggregationBits.getSchema(); + this.committeeBitsSchema = initialCommitteeBits.getSchema(); + this.committeesSize = Objects.requireNonNull(committeesSize, "committeesSize cannot be null"); + this.committeeBits = initialCommitteeBits.getAsBitSet(); + this.committeeAggregationBitsMap = + parseAggregationBits(initialAggregationBits, this.committeeBits, this.committeesSize); } static AttestationBitsAggregator fromAttestationSchema( final AttestationSchema attestationSchema, final Int2IntMap committeesSize) { + final SszBitlist emptyAggregationBits = attestationSchema.createEmptyAggregationBits(); + final SszBitvector emptyCommitteeBits = + attestationSchema + .createEmptyCommitteeBits() + .orElseThrow( + () -> new IllegalStateException("Electra schema must provide committee bits")); return new AttestationBitsAggregatorElectra( - attestationSchema.createEmptyAggregationBits(), - attestationSchema.createEmptyCommitteeBits().orElseThrow(), - committeesSize); + emptyAggregationBits, emptyCommitteeBits, committeesSize); + } + + private static Int2ObjectMap parseAggregationBits( + final SszBitlist aggregationBits, + final BitSet committeeIndices, + final Int2IntMap committeesSizeMap) { + final Int2ObjectMap result = new Int2ObjectOpenHashMap<>(); + + int currentOffset = 0; + for (int committeeIndex = committeeIndices.nextSetBit(0); + committeeIndex >= 0; + committeeIndex = committeeIndices.nextSetBit(committeeIndex + 1)) { + + final int committeeSize = committeesSizeMap.getOrDefault(committeeIndex, 0); + if (committeeSize > 0) { + int sliceEnd = + Math.min(currentOffset + committeeSize, aggregationBits.getLastSetBitIndex() + 1); + final BitSet committeeBits = aggregationBits.getAsBitSet(currentOffset, sliceEnd); + result.put(committeeIndex, committeeBits); + } + currentOffset += committeeSize; // Always advance by the declared committee size + } + return result; } @Override public void or(final AttestationBitsAggregator other) { - or(other.getCommitteeBits(), other.getAggregationBits(), false); + if (!(other instanceof AttestationBitsAggregatorElectra otherElectra)) { + throw new IllegalArgumentException( + "AttestationBitsAggregatorElectra.or requires an argument of the same type."); + } + + performMerge(otherElectra.committeeBits, otherElectra.committeeAggregationBitsMap, false); } @Override public boolean aggregateWith(final Attestation other) { - return or(other.getCommitteeBitsRequired(), other.getAggregationBits(), true); + final BitSet otherCommitteeBits = other.getCommitteeBitsRequired().getAsBitSet(); + final Int2ObjectMap otherParsedAggregationMap = + parseAggregationBits(other.getAggregationBits(), otherCommitteeBits, this.committeesSize); + return performMerge(otherCommitteeBits, otherParsedAggregationMap, true); } @Override public void or(final Attestation other) { - or(other.getCommitteeBitsRequired(), other.getAggregationBits(), false); + final BitSet otherCommitteeBits = other.getCommitteeBitsRequired().getAsBitSet(); + final Int2ObjectMap otherParsedAggregationMap = + parseAggregationBits(other.getAggregationBits(), otherCommitteeBits, this.committeesSize); + performMerge(otherCommitteeBits, otherParsedAggregationMap, false); } - private static class CannotAggregateException extends RuntimeException {} - - private boolean or( - final SszBitvector otherCommitteeBits, - final SszBitlist otherAggregatedBits, + private boolean performMerge( + final BitSet otherCommitteeBits, + final Int2ObjectMap otherCommitteeAggregationBitsMap, final boolean isAggregation) { + final BitSet mergedCommitteeBits = (BitSet) this.committeeBits.clone(); + mergedCommitteeBits.or(otherCommitteeBits); - if (otherCommitteeBits.equals(committeeBits)) { - // If the committee bits are the same, we can directly combine the aggregation bits - if (isAggregation && aggregationBits.intersects(otherAggregatedBits)) { - return false; + final Int2ObjectMap targetAggregationBitsMap; + + if (isAggregation) { + // If aggregating, we need to work on copies + targetAggregationBitsMap = new Int2ObjectOpenHashMap<>(); + for (final Int2ObjectMap.Entry entry : + this.committeeAggregationBitsMap.int2ObjectEntrySet()) { + targetAggregationBitsMap.put(entry.getIntKey(), (BitSet) entry.getValue().clone()); } - aggregationBits = aggregationBits.or(otherAggregatedBits); - return true; + } else { + // if not aggregating, we can modify in place + targetAggregationBitsMap = this.committeeAggregationBitsMap; } - final SszBitvector combinedCommitteeBits = committeeBits.or(otherCommitteeBits); - - final Int2IntMap otherCommitteeBitsStartingPositions = - calculateCommitteeStartingPositions(otherCommitteeBits); - final Int2IntMap aggregatedCommitteeBitsStartingPositions = - calculateCommitteeStartingPositions(combinedCommitteeBits); - - // create an aggregation bit big as last boundary for last committee bit - final int lastCommitteeIndex = combinedCommitteeBits.getLastSetBitIndex(); - final int lastCommitteeStartingPosition = - aggregatedCommitteeBitsStartingPositions.get(lastCommitteeIndex); - final int combinedAggregationBitsSize = - lastCommitteeStartingPosition + committeesSize.get(lastCommitteeIndex); - - final BitSet combinedAggregationIndices = new BitSet(combinedAggregationBitsSize); - - // let's go over all aggregated committees to calculate indices for the combined aggregation - // bits - try { - combinedCommitteeBits - .streamAllSetBits() - .forEach( - committeeIndex -> { - int committeeSize = committeesSize.get(committeeIndex); - int destinationStart = aggregatedCommitteeBitsStartingPositions.get(committeeIndex); - - SszBitlist source1 = null, maybeSource2 = null; - int source1StartingPosition = 0, source2StartingPosition = 0; - - if (committeeBitsStartingPositions.containsKey(committeeIndex)) { - source1 = aggregationBits; - source1StartingPosition = committeeBitsStartingPositions.get(committeeIndex); - } - if (otherCommitteeBitsStartingPositions.containsKey(committeeIndex)) { - if (source1 != null) { - maybeSource2 = otherAggregatedBits; - source2StartingPosition = - otherCommitteeBitsStartingPositions.get(committeeIndex); - } else { - source1 = otherAggregatedBits; - source1StartingPosition = - otherCommitteeBitsStartingPositions.get(committeeIndex); - } - } - - // Now that we know: - // 1. which aggregationBits (this or other or both) will contribute to the result - // 2. the offset of the committee for each contributing aggregation bits - // We can go over the committee and calculate the combined aggregate bits - for (int positionInCommittee = 0; - positionInCommittee < committeeSize; - positionInCommittee++) { - if (orSingleBit( - positionInCommittee, - source1, - source1StartingPosition, - maybeSource2, - source2StartingPosition, - isAggregation)) { - combinedAggregationIndices.set(destinationStart + positionInCommittee); - } - } - }); - } catch (final CannotAggregateException __) { - return false; - } + for (int committeeIndex = mergedCommitteeBits.nextSetBit(0); + committeeIndex >= 0; + committeeIndex = mergedCommitteeBits.nextSetBit(committeeIndex + 1)) { - committeeBits = combinedCommitteeBits; - aggregationBits = - aggregationBits - .getSchema() - .wrapBitSet(combinedAggregationBitsSize, combinedAggregationIndices); - committeeBitsStartingPositions = aggregatedCommitteeBitsStartingPositions; + final boolean inThis = this.committeeBits.get(committeeIndex); + final boolean inOther = otherCommitteeBits.get(committeeIndex); - return true; - } + if (inThis && inOther) { + final BitSet otherAggregationBitsForCommittee = + otherCommitteeAggregationBitsMap.get(committeeIndex); + final BitSet targetAggregationBitsForCommittee = + targetAggregationBitsMap.get(committeeIndex); - private boolean orSingleBit( - final int positionInCommittee, - final SszBitlist source1, - final int source1StartingPosition, - final SszBitlist maybeSource2, - final int source2StartingPosition, - final boolean isAggregation) { - - final boolean source1Bit = source1.getBit(source1StartingPosition + positionInCommittee); + if (isAggregation) { + // For intersection check, use the original bits of 'this' + final BitSet thisAggregationBitsForCommittee = + this.committeeAggregationBitsMap.get(committeeIndex); + if (thisAggregationBitsForCommittee != null + && thisAggregationBitsForCommittee.intersects(otherAggregationBitsForCommittee)) { + return false; + } + } - if (maybeSource2 == null) { - return source1Bit; - } + targetAggregationBitsForCommittee.or(otherAggregationBitsForCommittee); - final boolean source2Bit = maybeSource2.getBit(source2StartingPosition + positionInCommittee); + } else if (inOther) { + // Committee only in 'other'. + final BitSet otherDataForCommittee = otherCommitteeAggregationBitsMap.get(committeeIndex); - if (isAggregation && source1Bit && source2Bit) { - throw new CannotAggregateException(); + targetAggregationBitsMap.put(committeeIndex, (BitSet) otherDataForCommittee.clone()); + } + // Committee only in 'this', do nothing. } - return source1Bit || source2Bit; - } + this.committeeBits = mergedCommitteeBits; + if (isAggregation) { + this.committeeAggregationBitsMap = targetAggregationBitsMap; + } - private Int2IntMap calculateCommitteeStartingPositions(final SszBitvector committeeBits) { - final Int2IntMap committeeBitsStartingPositions = new Int2IntOpenHashMap(); - final int[] currentOffset = {0}; - committeeBits - .streamAllSetBits() - .forEach( - index -> { - committeeBitsStartingPositions.put(index, currentOffset[0]); - currentOffset[0] += committeesSize.get(index); - }); - - return committeeBitsStartingPositions; + invalidateCache(); + return true; } @Override public boolean isSuperSetOf(final Attestation other) { - if (committeeBits.equals(other.getCommitteeBitsRequired())) { - return aggregationBits.isSuperSetOf(other.getAggregationBits()); - } + final BitSet otherInternalCommitteeBits = other.getCommitteeBitsRequired().getAsBitSet(); - if (!committeeBits.isSuperSetOf(other.getCommitteeBitsRequired())) { + final BitSet committeeIntersection = (BitSet) this.committeeBits.clone(); + committeeIntersection.and(otherInternalCommitteeBits); + if (!committeeIntersection.equals(otherInternalCommitteeBits)) { return false; } - final SszBitvector otherCommitteeBits = other.getCommitteeBitsRequired(); + final Int2ObjectMap otherCommitteeAggregationBitsMap = + parseAggregationBits( + other.getAggregationBits(), otherInternalCommitteeBits, this.committeesSize); - final Int2IntMap otherCommitteeBitsStartingPositions = - calculateCommitteeStartingPositions(otherCommitteeBits); + for (int committeeIndex = otherInternalCommitteeBits.nextSetBit(0); + committeeIndex >= 0; + committeeIndex = otherInternalCommitteeBits.nextSetBit(committeeIndex + 1)) { - final SszBitvector commonCommittees = committeeBits.and(otherCommitteeBits); + final BitSet thisAggregationBitsForCommittee = + this.committeeAggregationBitsMap.get(committeeIndex); + final BitSet otherAggregationBitsForCommittee = + otherCommitteeAggregationBitsMap.get(committeeIndex); - return commonCommittees - .streamAllSetBits() - .mapToObj( - committeeIndex -> { - int committeeSize = committeesSize.get(committeeIndex); - - final int startingPosition = committeeBitsStartingPositions.get(committeeIndex); - final int otherStartingPosition = - otherCommitteeBitsStartingPositions.get(committeeIndex); + if (thisAggregationBitsForCommittee == null) { + return false; + } + if (otherAggregationBitsForCommittee == null || otherAggregationBitsForCommittee.isEmpty()) { + continue; + } - return IntStream.range(0, committeeSize) - .anyMatch( - positionInCommittee -> - other - .getAggregationBits() - .getBit(otherStartingPosition + positionInCommittee) - && !aggregationBits.getBit(startingPosition + positionInCommittee)); - }) - .noneMatch(aBitFoundInOtherButNotInThis -> aBitFoundInOtherButNotInThis); + final BitSet otherBitsNotInThis = (BitSet) otherAggregationBitsForCommittee.clone(); + otherBitsNotInThis.andNot(thisAggregationBitsForCommittee); + if (!otherBitsNotInThis.isEmpty()) { + return false; + } + } + return true; } @Override public SszBitlist getAggregationBits() { - return aggregationBits; + if (cachedAggregationBits != null) { + return cachedAggregationBits; + } + final List committeeIndicesInOrder = new ArrayList<>(); + for (int i = committeeBits.nextSetBit(0); i >= 0; i = committeeBits.nextSetBit(i + 1)) { + committeeIndicesInOrder.add(i); + } + // No explicit sort needed as BitSet.nextSetBit() iterates in ascending order. + + int totalBitlistSize = 0; + for (final int committeeIndex : committeeIndicesInOrder) { + totalBitlistSize += this.committeesSize.getOrDefault(committeeIndex, 0); + } + + final BitSet combinedAggregationBits = new BitSet(totalBitlistSize); + int currentOffset = 0; + for (final int committeeIndex : committeeIndicesInOrder) { + final BitSet committeeBitsData = this.committeeAggregationBitsMap.get(committeeIndex); + final int committeeSize = this.committeesSize.getOrDefault(committeeIndex, 0); + + if (committeeBitsData != null && committeeSize > 0) { + for (int bitIndex = committeeBitsData.nextSetBit(0); + bitIndex >= 0 && bitIndex < committeeSize; + bitIndex = committeeBitsData.nextSetBit(bitIndex + 1)) { + combinedAggregationBits.set(currentOffset + bitIndex); + } + } + currentOffset += committeeSize; + } + cachedAggregationBits = + aggregationBitsSchema.wrapBitSet(totalBitlistSize, combinedAggregationBits); + return cachedAggregationBits; } @Override public SszBitvector getCommitteeBits() { - return committeeBits; + if (cachedCommitteeBits == null) { + cachedCommitteeBits = + committeeBitsSchema.wrapBitSet(committeeBitsSchema.getLength(), this.committeeBits); + } + return cachedCommitteeBits; + } + + private void invalidateCache() { + this.cachedAggregationBits = null; + this.cachedCommitteeBits = null; } @Override @@ -252,11 +278,19 @@ public boolean requiresCommitteeBits() { @Override public String toString() { + long totalSetBits = 0; + if (committeeAggregationBitsMap != null) { + for (final BitSet bitSet : committeeAggregationBitsMap.values()) { + if (bitSet != null) { + totalSetBits += bitSet.cardinality(); + } + } + } return MoreObjects.toStringHelper(this) - .add("aggregationBits", aggregationBits) - .add("committeeBits", committeeBits) - .add("committeesSize", committeesSize) - .add("committeeBitsStartingPositions", committeeBitsStartingPositions) + .add("committeeBits", committeeBits.cardinality()) + .add("committeeAggregationBitsMap", totalSetBits) + .add("committeesSize", committeesSize.size()) + .add("cached", cachedAggregationBits != null || cachedCommitteeBits != null) .toString(); } } diff --git a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectraTest.java b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectraTest.java index c3b6fc2174e..586d159e421 100644 --- a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectraTest.java +++ b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectraTest.java @@ -232,6 +232,34 @@ void aggregateOnMultipleOverlappingCommitteeBitsButWithSomeOfAggregationOverlapp assertThat(aggregator.getAggregationBits().streamAllSetBits()).containsExactly(0, 1, 2, 3, 8); } + @Test + void aggregateSingleAttestationFillUp() { + /* + 01|234 <- committee 0 and 1 indices + 10|100 <- bits + */ + final ValidatableAttestation initialAttestation = createAttestation(List.of(0, 1), 0, 2); + + /* + 123 <- committee 1 indices + 001 <- bits + */ + final ValidatableAttestation otherAttestation = createAttestation(List.of(1), 2); + + final AttestationBitsAggregator aggregator = AttestationBitsAggregator.of(initialAttestation); + + // calculate the or + aggregator.or(otherAttestation.getAttestation()); + + /* + 01|234 <- committee 0 and 1 indices + 10|101 <- bits + */ + + assertThat(aggregator.getCommitteeBits().streamAllSetBits()).containsExactly(0, 1); + assertThat(aggregator.getAggregationBits().streamAllSetBits()).containsExactly(0, 2, 4); + } + @Test void aggregateOnMultipleOverlappingCommitteeBitsButWithSomeOfAggregationOverlappingWhenNoCheck2() { @@ -393,6 +421,107 @@ void bigAggregation() { .isEqualTo(result.getAttestation().getAggregationBits()); } + @Test + void orIntoEmptyAggregator() { + final AttestationBitsAggregator aggregator = + AttestationBitsAggregator.fromEmptyFromAttestationSchema( + attestationSchema, Optional.of(committeeSizes)); + + final ValidatableAttestation otherAttestation = createAttestation(List.of(1), 2); + + aggregator.or(otherAttestation.getAttestation()); + + assertThat(aggregator.getCommitteeBits().streamAllSetBits()).containsExactly(1); + assertThat(aggregator.getAggregationBits().streamAllSetBits()).containsExactly(2); + } + + @Test + void orWithNewCommittee() { + final ValidatableAttestation initialAttestation = createAttestation(List.of(0), 1); + final AttestationBitsAggregator aggregator = AttestationBitsAggregator.of(initialAttestation); + + final ValidatableAttestation otherAttestation = createAttestation(List.of(1), 2); + + aggregator.or(otherAttestation.getAttestation()); + + assertThat(aggregator.getCommitteeBits().streamAllSetBits()).containsExactlyInAnyOrder(0, 1); + assertThat(aggregator.getAggregationBits().streamAllSetBits()).containsExactlyInAnyOrder(1, 4); + } + + @Test + void orWithExistingCommitteeAddNewBits() { + + final ValidatableAttestation initialAttestation = createAttestation(List.of(1), 0); + final AttestationBitsAggregator aggregator = AttestationBitsAggregator.of(initialAttestation); + + final ValidatableAttestation otherAttestation = createAttestation(List.of(1), 2); + + aggregator.or(otherAttestation.getAttestation()); + + assertThat(aggregator.getCommitteeBits().streamAllSetBits()).containsExactly(1); + assertThat(aggregator.getAggregationBits().streamAllSetBits()).containsExactlyInAnyOrder(0, 2); + } + + @Test + void orWithExistingCommitteeOverlapAndNewBits() { + final ValidatableAttestation initialAttestation = createAttestation(List.of(1), 0, 1); + final AttestationBitsAggregator aggregator = AttestationBitsAggregator.of(initialAttestation); + + final ValidatableAttestation otherAttestation = createAttestation(List.of(1), 1, 2); + + aggregator.or(otherAttestation.getAttestation()); + + assertThat(aggregator.getCommitteeBits().streamAllSetBits()).containsExactly(1); + assertThat(aggregator.getAggregationBits().streamAllSetBits()) + .containsExactlyInAnyOrder(0, 1, 2); + } + + @Test + void orWithStrictSubsetAttestation() { + final ValidatableAttestation initialAttestation = createAttestation(List.of(1), 0, 2); + final AttestationBitsAggregator aggregator = AttestationBitsAggregator.of(initialAttestation); + + final ValidatableAttestation otherAttestation = createAttestation(List.of(1), 0); + + aggregator.or(otherAttestation.getAttestation()); + + assertThat(aggregator.getCommitteeBits().streamAllSetBits()).containsExactly(1); + assertThat(aggregator.getAggregationBits().streamAllSetBits()).containsExactlyInAnyOrder(0, 2); + } + + @Test + void orWithMultipleCommitteesMixedNewAndExisting() { + final ValidatableAttestation initialAttestation = createAttestation(List.of(0, 1), 0, 3); + final AttestationBitsAggregator aggregator = AttestationBitsAggregator.of(initialAttestation); + + final ValidatableAttestation otherAttestation = createAttestation(List.of(1, 2), 2, 5); + + aggregator.or(otherAttestation.getAttestation()); + + assertThat(aggregator.getCommitteeBits().streamAllSetBits()).containsExactlyInAnyOrder(0, 1, 2); + assertThat(aggregator.getAggregationBits().streamAllSetBits()) + .containsExactlyInAnyOrder(0, 3, 4, 7); + } + + @Test + void orAggregatorWithAggregator() { + final ValidatableAttestation att1Data = createAttestation(List.of(0), 0); + final AttestationBitsAggregator aggregator1 = AttestationBitsAggregator.of(att1Data); + + final ValidatableAttestation att2Data = createAttestation(List.of(0, 1), 1, 2); + final AttestationBitsAggregator aggregator2 = AttestationBitsAggregator.of(att2Data); + + aggregator1.or(aggregator2); + + assertThat(aggregator1.getCommitteeBits().streamAllSetBits()).containsExactlyInAnyOrder(0, 1); + assertThat(aggregator1.getAggregationBits().streamAllSetBits()) + .containsExactlyInAnyOrder(0, 1, 2); + + // aggregator2 should remain unchanged + assertThat(aggregator2.getCommitteeBits().streamAllSetBits()).containsExactlyInAnyOrder(0, 1); + assertThat(aggregator2.getAggregationBits().streamAllSetBits()).containsExactlyInAnyOrder(1, 2); + } + @Test void isSuperSetOf1() { diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitlist.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitlist.java index cf99656e69f..ca0c769fa0d 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitlist.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitlist.java @@ -14,6 +14,7 @@ package tech.pegasys.teku.infrastructure.ssz.collections; import it.unimi.dsi.fastutil.ints.IntList; +import java.util.BitSet; import java.util.stream.IntStream; import javax.annotation.Nullable; import tech.pegasys.teku.infrastructure.ssz.collections.impl.SszBitlistImpl; @@ -43,6 +44,12 @@ default boolean isWritableSupported() { // Bitlist methods + BitSet getAsBitSet(); + + BitSet getAsBitSet(int start, int end); + + int getLastSetBitIndex(); + /** * Performs a logical OR of this bit list with the bit list argument. * diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitvector.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitvector.java index 64dfe8bb388..edc51be9bc9 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitvector.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitvector.java @@ -14,6 +14,7 @@ package tech.pegasys.teku.infrastructure.ssz.collections; import it.unimi.dsi.fastutil.ints.IntList; +import java.util.BitSet; import java.util.stream.IntStream; import tech.pegasys.teku.infrastructure.ssz.primitive.SszBit; import tech.pegasys.teku.infrastructure.ssz.schema.collections.SszBitvectorSchema; @@ -48,6 +49,8 @@ default boolean isWritableSupported() { /** Returns the number of bits set to {@code true} in this {@code SszBitlist}. */ int getBitCount(); + BitSet getAsBitSet(); + @Override default boolean isSet(final int i) { return i < size() && getBit(i); diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitlistImpl.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitlistImpl.java index 134a704458c..a0c15c60cde 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitlistImpl.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitlistImpl.java @@ -51,12 +51,10 @@ public BitlistImpl(final int size, final long maxSize, final int... bitIndices) } } - public BitlistImpl(final int size, final long maxSize, final BitSet bitSet) { + public static BitlistImpl wrapBitSet(final int size, final long maxSize, final BitSet bitSet) { checkArgument(size >= 0, "Negative size"); checkArgument(maxSize >= size, "maxSize should be >= size"); - this.size = size; - this.data = bitSet; - this.maxSize = maxSize; + return new BitlistImpl(size, bitSet, maxSize); } private BitlistImpl(final int size, final BitSet data, final long maxSize) { @@ -65,6 +63,18 @@ private BitlistImpl(final int size, final BitSet data, final long maxSize) { this.maxSize = maxSize; } + public BitSet getAsBitSet() { + return (BitSet) data.clone(); + } + + public BitSet getAsBitSet(final int start, final int end) { + return data.get(start, end); + } + + public int getLastSetBitIndex() { + return data.length() - 1; + } + /** * Returns new instance of this BitlistImpl with set bits from the other BitlistImpl * diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitvectorImpl.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitvectorImpl.java index df546bb9b4a..e9ea75160da 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitvectorImpl.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/BitvectorImpl.java @@ -43,6 +43,12 @@ public static BitvectorImpl fromBytes(final Bytes bytes, final int size) { return new BitvectorImpl(bitset, size); } + public static BitvectorImpl wrapBitSet(final BitSet bitSet, final int size) { + final int length = bitSet.length(); + checkArgument(length <= size, "BitSet length (%s) exceeds the size (%s)", length, size); + return new BitvectorImpl(bitSet, size); + } + public static int sszSerializationLength(final int size) { return bitsCeilToBytes(size); } @@ -112,6 +118,10 @@ public boolean getBit(final int i) { return data.get(i); } + public BitSet getAsBitSet() { + return (BitSet) data.clone(); + } + public int getSize() { return size; } diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/SszBitlistImpl.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/SszBitlistImpl.java index f7f88442498..2ea5d624924 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/SszBitlistImpl.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/SszBitlistImpl.java @@ -75,7 +75,7 @@ public static SszBitlistImpl ofBits( public static SszBitlistImpl wrapBitSet( final SszBitlistSchema schema, final int size, final BitSet bitSet) { - return new SszBitlistImpl(schema, new BitlistImpl(size, schema.getMaxLength(), bitSet)); + return new SszBitlistImpl(schema, BitlistImpl.wrapBitSet(size, schema.getMaxLength(), bitSet)); } private final BitlistImpl value; @@ -90,6 +90,21 @@ public SszBitlistImpl(final SszListSchema schema, final BitlistImpl v this.value = value; } + @Override + public BitSet getAsBitSet() { + return value.getAsBitSet(); + } + + @Override + public BitSet getAsBitSet(final int start, final int end) { + return value.getAsBitSet(start, end); + } + + @Override + public int getLastSetBitIndex() { + return value.getLastSetBitIndex(); + } + @SuppressWarnings("unchecked") @Override public SszBitlistSchema getSchema() { diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/SszBitvectorImpl.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/SszBitvectorImpl.java index 6eeb39d6bf3..e4ae96ffec6 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/SszBitvectorImpl.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/collections/impl/SszBitvectorImpl.java @@ -17,6 +17,7 @@ import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; +import java.util.BitSet; import java.util.stream.IntStream; import org.apache.tuweni.bytes.Bytes; import tech.pegasys.teku.infrastructure.ssz.cache.IntCache; @@ -35,6 +36,11 @@ public static SszBitvectorImpl ofBits(final SszBitvectorSchema schema, final return new SszBitvectorImpl(schema, new BitvectorImpl(schema.getLength(), bits)); } + public static SszBitvectorImpl wrapBitSet( + final SszBitvectorSchema schema, final int size, final BitSet bitSet) { + return new SszBitvectorImpl(schema, BitvectorImpl.wrapBitSet(bitSet, size)); + } + public static SszBitvector fromBytes( final SszBitvectorSchema schema, final Bytes value, final int size) { return new SszBitvectorImpl(schema, BitvectorImpl.fromBytes(value, size)); @@ -58,6 +64,11 @@ public SszBitvectorImpl(final SszBitvectorSchema schema, final BitvectorImpl this.value = value; } + @Override + public BitSet getAsBitSet() { + return value.getAsBitSet(); + } + @SuppressWarnings("unchecked") @Override public SszBitvectorSchema getSchema() { diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/SszBitlistSchema.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/SszBitlistSchema.java index 5c3bb6d5d2f..19e4e549cce 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/SszBitlistSchema.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/SszBitlistSchema.java @@ -33,13 +33,9 @@ default SszBitlistT empty() { SszBitlistT ofBits(int size, int... setBitIndices); /** - * Creates a SszBitlist by wrapping a given bitSet. This is an optimized constructor that DOES NOT - * clone the bitSet. It used in aggregating attestation pool. DO NOT MUTATE the after the + * Creates an SszBitlist by wrapping a given bitSet. This is an optimized constructor that DOES + * NOT clone the bitSet. It is used in aggregating attestation pool. DO NOT MUTATE after the * wrapping!! SszBitlist is supposed to be immutable. - * - * @param size size of the SszBitlist - * @param bitSet data backing the ssz - * @return SszBitlist instance */ SszBitlistT wrapBitSet(int size, BitSet bitSet); diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/SszBitvectorSchema.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/SszBitvectorSchema.java index 7c60370b68e..78ea66e0c9a 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/SszBitvectorSchema.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/SszBitvectorSchema.java @@ -13,6 +13,7 @@ package tech.pegasys.teku.infrastructure.ssz.schema.collections; +import java.util.BitSet; import java.util.stream.StreamSupport; import org.apache.tuweni.bytes.Bytes; import tech.pegasys.teku.infrastructure.ssz.collections.SszBitvector; @@ -28,6 +29,13 @@ static SszBitvectorSchema create(final long length) { SszBitvectorT ofBits(int... setBitIndices); + /** + * Creates an SszBitvector by wrapping a given bitSet. This is an optimized constructor that DOES + * NOT clone the bitSet. It is used in aggregating attestation pool. DO NOT MUTATE after the + * wrapping!! SszBitvector is supposed to be immutable. + */ + SszBitvectorT wrapBitSet(int size, BitSet bitSet); + default SszBitvectorT fromBytes(final Bytes bitvectorBytes) { return sszDeserialize(bitvectorBytes); } diff --git a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/impl/SszBitvectorSchemaImpl.java b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/impl/SszBitvectorSchemaImpl.java index 92341b82000..c400d429f68 100644 --- a/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/impl/SszBitvectorSchemaImpl.java +++ b/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/collections/impl/SszBitvectorSchemaImpl.java @@ -16,6 +16,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static tech.pegasys.teku.infrastructure.ssz.schema.json.SszPrimitiveTypeDefinitions.sszSerializedType; +import java.util.BitSet; import java.util.List; import java.util.stream.IntStream; import tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition; @@ -54,6 +55,11 @@ public SszBitvector ofBits(final int... setBitIndices) { return SszBitvectorImpl.ofBits(this, setBitIndices); } + @Override + public SszBitvector wrapBitSet(final int size, final BitSet bitSet) { + return SszBitvectorImpl.wrapBitSet(this, size, bitSet); + } + @Override public SszBitvector createFromElements(final List elements) { return ofBits(IntStream.range(0, elements.size()).filter(i -> elements.get(i).get()).toArray()); diff --git a/infrastructure/ssz/src/test/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitlistTest.java b/infrastructure/ssz/src/test/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitlistTest.java index 9917ed7d338..3dd5280f79c 100644 --- a/infrastructure/ssz/src/test/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitlistTest.java +++ b/infrastructure/ssz/src/test/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitlistTest.java @@ -31,6 +31,7 @@ import org.junit.jupiter.params.provider.MethodSource; import tech.pegasys.teku.infrastructure.crypto.Hash; import tech.pegasys.teku.infrastructure.ssz.SszCollection; +import tech.pegasys.teku.infrastructure.ssz.SszDataAssert; import tech.pegasys.teku.infrastructure.ssz.SszList; import tech.pegasys.teku.infrastructure.ssz.SszTestUtils; import tech.pegasys.teku.infrastructure.ssz.impl.AbstractSszPrimitive; @@ -125,12 +126,9 @@ void testSszRoundtrip(final SszBitlist bitlist1) { @ParameterizedTest @MethodSource("bitlistArgs") - void testWrapBitSet(final SszBitlist bitlist1) { - final BitSet bits = new BitSet(bitlist1.size()); - - bitlist1.streamAllSetBits().forEach(bits::set); - - final SszBitlist bitlist2 = bitlist1.getSchema().wrapBitSet(bitlist1.size(), bits); + void testBitSetRoundtrip(final SszBitlist bitlist1) { + final SszBitlist bitlist2 = + bitlist1.getSchema().wrapBitSet(bitlist1.size(), bitlist1.getAsBitSet()); for (int i = 0; i < bitlist1.size(); i++) { assertThat(bitlist2.getBit(i)).isEqualTo(bitlist1.getBit(i)); @@ -143,6 +141,35 @@ void testWrapBitSet(final SszBitlist bitlist1) { assertThat(bitlist2.sszSerialize()).isEqualTo(bitlist1.sszSerialize()); } + @Test + void getAsBitSet_withFullStartEnd() { + final SszBitlist list = random(SCHEMA, 100); + + final BitSet fullSlice = list.getAsBitSet(0, 100); + + final SszBitlist newList = SCHEMA.wrapBitSet(100, fullSlice); + + assertThat(newList.getAsBitSet()).isEqualTo(fullSlice); + SszDataAssert.assertThatSszData(newList).isEqualByAllMeansTo(list); + } + + @Test + void getAsBitSet_withSubsetStartEnd() { + final SszBitlist list = random(SCHEMA, 100); + + final BitSet slice = list.getAsBitSet(5, 55); + + final SszBitlist newList = SCHEMA.wrapBitSet(50, slice); + + assertThat(newList.getAsBitSet()).isEqualTo(slice); + IntStream.range(0, 50) + .forEach( + i -> + assertThat(newList.getBit(i)) + .describedAs("Bit %s should be equal", i) + .isEqualTo(list.getBit(i + 5))); + } + @Test void wrapBitSet_shouldDropBitsIfBitSetIsLarger() { final BitSet bitSet = new BitSet(100); diff --git a/infrastructure/ssz/src/test/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitvectorTest.java b/infrastructure/ssz/src/test/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitvectorTest.java index e12b138a7d1..0b0b1c92b29 100644 --- a/infrastructure/ssz/src/test/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitvectorTest.java +++ b/infrastructure/ssz/src/test/java/tech/pegasys/teku/infrastructure/ssz/collections/SszBitvectorTest.java @@ -261,4 +261,15 @@ void testFromHexString(final SszBitvector bitvector) { SszBitvectorImpl.fromHexString(bitvector.getSchema(), hexString, (int) size); SszDataAssert.assertThatSszData(result).isEqualByAllMeansTo(bitvector); } + + @ParameterizedTest + @MethodSource("bitvectorArgs") + void testBitSetRoundtrip(final SszBitvector bitvector) { + + final SszBitvectorSchema schema = bitvector.getSchema(); + + final SszBitvector newVector = schema.wrapBitSet(bitvector.size(), bitvector.getAsBitSet()); + + SszDataAssert.assertThatSszData(newVector).isEqualByAllMeansTo(bitvector); + } } From 10d82630286413438f60ac6d8e2ee394510515de Mon Sep 17 00:00:00 2001 From: Paul Harris Date: Thu, 8 May 2025 12:50:00 +1000 Subject: [PATCH 27/33] added a DeserializableConfigTypeDefinition (#9396) - Tests demonstrate that this should at least be very close to what we require for reading BPO schedule. Partially addresses #9365 Signed-off-by: Paul Harris --- .../handlers/v1/config/GetSpecTest.java | 2 +- .../tech/pegasys/teku/api/ConfigProvider.java | 2 +- .../tech/pegasys/teku/api/SpecConfigData.java | 4 +- .../config/SpecConfigDataMapBuilder.java | 13 +- .../DeserializableConfigTypeDefinition.java | 127 ++++++++++++++++++ .../types/DeserializableTypeDefinition.java | 5 + ...eserializableConfigTypeDefinitionTest.java | 83 ++++++++++++ .../cli/subcommand/RemoteSpecLoaderTest.java | 6 +- .../typedef/handlers/GetSpecRequestTest.java | 2 +- .../OkHttpValidatorMinimalTypeDefClient.java | 2 +- .../typedef/handlers/GetSpecRequest.java | 2 +- 11 files changed, 232 insertions(+), 16 deletions(-) create mode 100644 infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/DeserializableConfigTypeDefinition.java create mode 100644 infrastructure/json/src/test/java/tech/pegasys/teku/infrastructure/json/types/DeserializableConfigTypeDefinitionTest.java diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/config/GetSpecTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/config/GetSpecTest.java index bfca1c6dcca..b3a566d0804 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/config/GetSpecTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/config/GetSpecTest.java @@ -64,7 +64,7 @@ void shouldGetCorrectMainnetConfig() throws Exception { setHandler(new GetSpec(configProvider)); handler.handleRequest(request); - final Map result = (Map) request.getResponseBody(); + final Map result = (Map) request.getResponseBody(); final Map expected = parseStringMap( Resources.toString( diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/ConfigProvider.java b/data/provider/src/main/java/tech/pegasys/teku/api/ConfigProvider.java index 85209fe4a61..b820f6bb677 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/ConfigProvider.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/ConfigProvider.java @@ -28,7 +28,7 @@ public ConfigProvider(final Spec spec) { this.spec = spec; } - public Map getConfig() { + public Map getConfig() { final SpecConfigData configuration = new SpecConfigData(spec.getSpecConfigAndParent().specConfig()); return configuration.getConfigMap(); diff --git a/data/provider/src/main/java/tech/pegasys/teku/api/SpecConfigData.java b/data/provider/src/main/java/tech/pegasys/teku/api/SpecConfigData.java index 045b93715a6..ca5efc1a38e 100644 --- a/data/provider/src/main/java/tech/pegasys/teku/api/SpecConfigData.java +++ b/data/provider/src/main/java/tech/pegasys/teku/api/SpecConfigData.java @@ -33,8 +33,8 @@ public SpecConfigData(final SpecConfig specConfig) { this.specConfig = specConfig; } - public Map getConfigMap() { - final Map configAttributes = new HashMap<>(); + public Map getConfigMap() { + final Map configAttributes = new HashMap<>(); specConfig .getRawConfig() .forEach( diff --git a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/config/SpecConfigDataMapBuilder.java b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/config/SpecConfigDataMapBuilder.java index c4d2d5e47b1..99de946702f 100644 --- a/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/config/SpecConfigDataMapBuilder.java +++ b/ethereum/json-types/src/main/java/tech/pegasys/teku/ethereum/json/types/config/SpecConfigDataMapBuilder.java @@ -18,26 +18,27 @@ import tech.pegasys.teku.infrastructure.json.types.DeserializableTypeDefinition; public class SpecConfigDataMapBuilder { - public static final DeserializableTypeDefinition> GET_SPEC_RESPONSE_TYPE = - DeserializableTypeDefinition., SpecConfigDataMapBuilder>object() + + public static final DeserializableTypeDefinition> GET_SPEC_RESPONSE_TYPE = + DeserializableTypeDefinition., SpecConfigDataMapBuilder>object() .name("GetSpecResponse") .initializer(SpecConfigDataMapBuilder::new) .finisher(SpecConfigDataMapBuilder::build) .withField( "data", - DeserializableTypeDefinition.mapOfStrings(), + DeserializableTypeDefinition.configMap(), Function.identity(), SpecConfigDataMapBuilder::configMap) .build(); - private Map configMap = Map.of(); + private Map configMap = Map.of(); - public SpecConfigDataMapBuilder configMap(final Map configMap) { + public SpecConfigDataMapBuilder configMap(final Map configMap) { this.configMap = configMap; return this; } - public Map build() { + public Map build() { return configMap; } } diff --git a/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/DeserializableConfigTypeDefinition.java b/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/DeserializableConfigTypeDefinition.java new file mode 100644 index 00000000000..bffeca126d8 --- /dev/null +++ b/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/DeserializableConfigTypeDefinition.java @@ -0,0 +1,127 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.json.types; + +import static tech.pegasys.teku.infrastructure.json.types.CoreTypes.STRING_TYPE; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonToken; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Supplier; + +// Configuration is Extended in fulu with BPO to also have a list of objects potentially +// This class allows a Map, where entries are +// - String -> String +// - String -> List> +// +// Before Fulu, Config was simply a Map. +class DeserializableConfigTypeDefinition + implements SerializableTypeDefinition>, + DeserializableTypeDefinition> { + private final Optional name; + private final Optional title; + private final Optional description; + private final DeserializableTypeDefinition>> + listDeserializableTypeDefinition = + DeserializableTypeDefinition.listOf(DeserializableTypeDefinition.mapOfStrings()); + private final Supplier> mapConstructor; + + public DeserializableConfigTypeDefinition( + final Optional name, + final Optional title, + final Optional description, + final Supplier> mapConstructor) { + this.name = name; + this.title = title; + this.description = description; + this.mapConstructor = mapConstructor; + } + + @Override + @SuppressWarnings("unchecked") + public void serialize(final Map value, final JsonGenerator gen) + throws IOException { + gen.writeStartObject(); + for (Map.Entry entry : value.entrySet()) { + gen.writeFieldName(STRING_TYPE.serializeToString(entry.getKey())); + if (entry.getValue() instanceof String) { + STRING_TYPE.serialize((String) entry.getValue(), gen); + } else { + listDeserializableTypeDefinition.serialize( + (List>) entry.getValue(), gen); + } + } + gen.writeEndObject(); + } + + @Override + public Map deserialize(final JsonParser p) throws IOException { + final Map result = mapConstructor.get(); + JsonToken t = p.getCurrentToken(); + if (t == null) { + t = p.nextToken(); + } + if (t == JsonToken.START_OBJECT) { + t = p.nextToken(); + } + for (; t == JsonToken.FIELD_NAME; t = p.nextToken()) { + final String fieldName = p.currentName(); + p.nextToken(); + if (p.getCurrentToken() == JsonToken.VALUE_STRING) { + result.put(fieldName, p.getValueAsString()); + } else if (p.getCurrentToken() == JsonToken.START_ARRAY) { + result.put(fieldName, listDeserializableTypeDefinition.deserialize(p)); + } + } + return result; + } + + @Override + public DeserializableConfigTypeDefinition withDescription(final String description) { + return new DeserializableConfigTypeDefinition( + this.name, this.title, Optional.ofNullable(description), mapConstructor); + } + + public Optional getTitle() { + return title; + } + + public Optional getName() { + return name; + } + + public Optional getDescription() { + return description; + } + + @Override + public void serializeOpenApiType(final JsonGenerator gen) throws IOException { + gen.writeStartObject(); + gen.writeStringField("type", "object"); + if (getTitle().isPresent()) { + gen.writeStringField("title", getTitle().get()); + } + if (getDescription().isPresent()) { + gen.writeStringField("description", getDescription().get()); + } + gen.writeObjectFieldStart("additionalProperties"); + gen.writeStringField("type", "string"); + gen.writeEndObject(); + gen.writeEndObject(); + } +} diff --git a/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/DeserializableTypeDefinition.java b/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/DeserializableTypeDefinition.java index 05768b28baa..d78d68fa464 100644 --- a/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/DeserializableTypeDefinition.java +++ b/infrastructure/json/src/main/java/tech/pegasys/teku/infrastructure/json/types/DeserializableTypeDefinition.java @@ -53,6 +53,11 @@ static DeserializableTypeDefinition> mapOfStrings() { return mapOf(STRING_TYPE, STRING_TYPE, TreeMap::new); } + static DeserializableTypeDefinition> configMap() { + return new DeserializableConfigTypeDefinition( + Optional.empty(), Optional.empty(), Optional.empty(), TreeMap::new); + } + static DeserializableTypeDefinition> mapOf( final StringValueTypeDefinition keyType, final DeserializableTypeDefinition valueType, diff --git a/infrastructure/json/src/test/java/tech/pegasys/teku/infrastructure/json/types/DeserializableConfigTypeDefinitionTest.java b/infrastructure/json/src/test/java/tech/pegasys/teku/infrastructure/json/types/DeserializableConfigTypeDefinitionTest.java new file mode 100644 index 00000000000..6747413dfb5 --- /dev/null +++ b/infrastructure/json/src/test/java/tech/pegasys/teku/infrastructure/json/types/DeserializableConfigTypeDefinitionTest.java @@ -0,0 +1,83 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.infrastructure.json.types; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.fasterxml.jackson.core.JsonProcessingException; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.junit.jupiter.api.Test; +import tech.pegasys.teku.infrastructure.json.JsonUtil; + +public class DeserializableConfigTypeDefinitionTest { + final DeserializableConfigTypeDefinition typeDefinition = + new DeserializableConfigTypeDefinition( + Optional.of("MyName"), + Optional.of("MyTitle"), + Optional.of("MyDescription"), + LinkedHashMap::new); + + @Test + void shouldSerializeSimpleMap() throws JsonProcessingException { + final Map objectMap = Map.of("key", "value"); + final String output = JsonUtil.serialize(objectMap, typeDefinition); + assertThat(output).isEqualTo("{\"key\":\"value\"}"); + } + + @Test + void shouldSerializeListEntry() throws JsonProcessingException { + final Map objectMap = + Map.of("key", List.of(Map.of("a", "b"), Map.of("c", "d"))); + final String output = JsonUtil.serialize(objectMap, typeDefinition); + assertThat(output).isEqualTo("{\"key\":[{\"a\":\"b\"},{\"c\":\"d\"}]}"); + } + + @Test + void shouldDeserializeSimpleMap() throws JsonProcessingException { + final String simpleMap = "{\"key\":\"value\"}"; + final Map z = JsonUtil.parse(simpleMap, typeDefinition); + assertThat(z.get("key")).isEqualTo("value"); + } + + @Test + @SuppressWarnings("unchecked") + void shouldDeserializeListEntry() throws JsonProcessingException { + final String listEntry = "{\"key\":[{\"a\":\"b\"},{\"c\":\"d\"}]}"; + final Map z = JsonUtil.parse(listEntry, typeDefinition); + assertThat(z.get("key")).isInstanceOf(List.class); + final List> list = (List>) z.get("key"); + assertThat(list).containsExactly(Map.of("a", "b"), Map.of("c", "d")); + } + + @Test + void shouldSerializeShortConfigMap() throws JsonProcessingException { + final Map objectMap = new LinkedHashMap<>(); + objectMap.put("key", "value"); + objectMap.put("key2", List.of(Map.of("a", "b"), Map.of("c", "d"))); + + final String output = JsonUtil.serialize(objectMap, typeDefinition); + assertThat(output).isEqualTo("{\"key\":\"value\",\"key2\":[{\"a\":\"b\"},{\"c\":\"d\"}]}"); + } + + @Test + void shouldWriteOpenApiDefinition() throws JsonProcessingException { + final String openApiType = JsonUtil.serialize(typeDefinition::serializeOpenApiType); + assertThat(openApiType) + .isEqualTo( + "{\"type\":\"object\",\"title\":\"MyTitle\",\"description\":\"MyDescription\",\"additionalProperties\":{\"type\":\"string\"}}"); + } +} diff --git a/teku/src/test/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoaderTest.java b/teku/src/test/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoaderTest.java index 0acbda73ebd..4236fb826b4 100644 --- a/teku/src/test/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoaderTest.java +++ b/teku/src/test/java/tech/pegasys/teku/cli/subcommand/RemoteSpecLoaderTest.java @@ -43,7 +43,7 @@ class RemoteSpecLoaderTest { @Test void shouldIgnoreUnknownConfigItems() { - final Map rawConfig = getRawConfigForSpec(spec); + final Map rawConfig = getRawConfigForSpec(spec); rawConfig.put("UNKNOWN_ITEM", "foo"); when(apiClient.getSpec()).thenReturn(Optional.of(rawConfig)); final Spec result = RemoteSpecLoader.getSpec(apiClient); @@ -53,7 +53,7 @@ void shouldIgnoreUnknownConfigItems() { @Test void shouldFillWhenRequiredItemsAreMissing() { - final Map rawConfig = getRawConfigForSpec(spec); + final Map rawConfig = getRawConfigForSpec(spec); assertThat(rawConfig.remove("GENESIS_FORK_VERSION")).isNotNull(); when(apiClient.getSpec()).thenReturn(Optional.of(rawConfig)); @@ -85,7 +85,7 @@ void shouldDefaultNetworkConfigThatMovedFromConstants() throws IOException { assertThat(specConfig.getMaximumGossipClockDisparity()).isEqualTo(500); } - private Map getRawConfigForSpec(final Spec spec) { + private Map getRawConfigForSpec(final Spec spec) { return new ConfigProvider(spec).getConfig(); } } diff --git a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetSpecRequestTest.java b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetSpecRequestTest.java index 53a8e92bb57..285f6c42b44 100644 --- a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetSpecRequestTest.java +++ b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetSpecRequestTest.java @@ -42,7 +42,7 @@ void successfulRequest() { mockWebServer.enqueue( new MockResponse().setResponseCode(SC_OK).setBody("{ \"data\":{\"a\":\"b\"}}")); - final Optional> response = request.submit(); + final Optional> response = request.submit(); assertThat(response).isPresent(); assertThat(response.get().size()).isGreaterThan(0); } diff --git a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorMinimalTypeDefClient.java b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorMinimalTypeDefClient.java index 8fb2cc45813..5138759ef8f 100644 --- a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorMinimalTypeDefClient.java +++ b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorMinimalTypeDefClient.java @@ -38,7 +38,7 @@ public OkHttpValidatorMinimalTypeDefClient( this.baseEndpoint = baseEndpoint; } - public Optional> getSpec() { + public Optional> getSpec() { final GetSpecRequest request = new GetSpecRequest(baseEndpoint, okHttpClient); return request.submit(); } diff --git a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetSpecRequest.java b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetSpecRequest.java index 264026bf0c4..00a944ebac1 100644 --- a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetSpecRequest.java +++ b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/typedef/handlers/GetSpecRequest.java @@ -28,7 +28,7 @@ public GetSpecRequest(final HttpUrl baseEndpoint, final OkHttpClient okHttpClien super(baseEndpoint, okHttpClient); } - public Optional> submit() { + public Optional> submit() { return get(GET_CONFIG_SPEC, Map.of(), Map.of(), new ResponseHandler<>(GET_SPEC_RESPONSE_TYPE)); } } From 2fd5eb69c77b33e4746d70234ec6b2db340e2318 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Thu, 8 May 2025 15:28:04 +1200 Subject: [PATCH 28/33] Updating ref test to 1.5.0 stable (#9398) --- build.gradle | 2 +- .../v3/GetNewBlockV3IntegrationTest.java | 5 +- .../beaconrestapi/v3/newBlindedBlockFULU.json | 397 ++++++++++++++++ .../v3/newBlockContentsFULU.json | 439 ++++++++++++++++++ .../phase0/ssz_static/SszTestExecutor.java | 2 + .../spec/config/presets/minimal/electra.yaml | 8 +- .../spec/config/presets/swift/electra.yaml | 8 +- .../tech/pegasys/teku/fuzz/FuzzUtilTest.java | 1 + .../basic_block_header/block.ssz_snappy | Bin 372 -> 372 bytes .../basic_block_header/post.ssz_snappy | Bin 6481 -> 6481 bytes .../basic_block_header/pre.ssz_snappy | Bin 6473 -> 6473 bytes .../attestation/blocks_0.ssz_snappy | Bin 635 -> 635 bytes .../attestation/blocks_1.ssz_snappy | Bin 529 -> 529 bytes .../pyspec_tests/attestation/post.ssz_snappy | Bin 7326 -> 7326 bytes .../pyspec_tests/attestation/pre.ssz_snappy | Bin 6708 -> 6708 bytes .../handlers/ProduceBlockRequestTest.java | 4 +- .../newBlindedBlockFULU.json | 40 +- .../newBlockContentsFULU.json | 80 ++-- 18 files changed, 922 insertions(+), 64 deletions(-) create mode 100644 data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockFULU.json create mode 100644 data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlockContentsFULU.json diff --git a/build.gradle b/build.gradle index 5fadbc9460b..fc6b4a5ff09 100644 --- a/build.gradle +++ b/build.gradle @@ -327,7 +327,7 @@ allprojects { } def nightly = System.getenv("NIGHTLY") != null -def refTestVersion = nightly ? "nightly" : "v1.5.0-beta.5" +def refTestVersion = nightly ? "nightly" : "v1.5.0" def blsRefTestVersion = 'v0.1.2' def slashingProtectionInterchangeRefTestVersion = 'v5.3.0' def refTestBaseUrl = 'https://github.com/ethereum/consensus-spec-tests/releases/download' diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java index 9b0564aee81..ae150f77fa1 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java @@ -28,7 +28,6 @@ import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; import static tech.pegasys.teku.spec.SpecMilestone.BELLATRIX; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; -import static tech.pegasys.teku.spec.SpecMilestone.FULU; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.io.Resources; @@ -56,9 +55,7 @@ import tech.pegasys.teku.spec.datastructures.metadata.BlockContainerAndMetaData; import tech.pegasys.teku.spec.util.DataStructureUtil; -@TestSpecContext( - allMilestones = true, - ignoredMilestones = FULU) // TODO-fulu eventually we remove this ignore +@TestSpecContext(allMilestones = true) public class GetNewBlockV3IntegrationTest extends AbstractDataBackedRestAPIIntegrationTest { private DataStructureUtil dataStructureUtil; diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockFULU.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockFULU.json new file mode 100644 index 00000000000..b48e24fa66c --- /dev/null +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockFULU.json @@ -0,0 +1,397 @@ +{ + "version": "fulu", + "execution_payload_blinded": true, + "execution_payload_value": "70091777274856981794352123785798699314161189490191767166854046474344034863608", + "consensus_block_value": "78291679983577647606856001912576699955529486494073092274184166309422601585026", + "data": { + "slot": "1", + "proposer_index": "4666673844721362956", + "parent_root": "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef", + "state_root": "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e", + "body": { + "randao_reveal": "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71", + "eth1_data": { + "deposit_root": "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f", + "deposit_count": "4658411424342975020", + "block_hash": "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379" + }, + "graffiti": "0x0000000000000000000000000000000000000000000000000000000000000000", + "proposer_slashings": [ + { + "signed_header_1": { + "message": { + "slot": "4661716390776343276", + "proposer_index": "4600574485989226763", + "parent_root": "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b", + "state_root": "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb", + "body_root": "0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486" + }, + "signature": "0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483" + }, + "signed_header_2": { + "message": { + "slot": "4661716390776343276", + "proposer_index": "4600574485989226763", + "parent_root": "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6", + "state_root": "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26", + "body_root": "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + }, + "signature": "0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1" + } + } + ], + "attester_slashings": [ + { + "attestation_1": { + "attesting_indices": [ + "4590659586689121994", + "4589007099177470570", + "4580744678799082634" + ], + "data": { + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", + "source": { + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" + }, + "target": { + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" + } + }, + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" + }, + "attestation_2": { + "attesting_indices": [ + "4590659586689121994", + "4589007099177470570", + "4580744678799082634" + ], + "data": { + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", + "source": { + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" + }, + "target": { + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" + } + }, + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" + } + } + ], + "attestations": [ + { + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69ddb8d7fcc3929148c9c5995e8b893997b8d9362a715543e06361e29e0c194d3b2d59319837ab6dbd209d099fa04236c25d177a02c92c0a3c5135f246bf9fd884203bc47005fd46b235bf0b462dc754e99647a2302e0c032308b592b1f7453084e93eff658eb16115cf4d24f229ed8b13e073e1233b0bf4eb9ba69438b310735b100f5c49673995ae6958b9382a2070db0cf44b200ce7103375f72fa72c5a51a38760f68db7a789f68fa7bfb672ec0678c7c352dc9c5c1805fabb2b2e1dd89e2e748bba9f11681e33321784b89e8a3beb8600e4ccb4d72a05d067a96a9c39e5b10f379b95649134f15a22e6f181d1e44b46a122a8b375d43dc2f41517fbf2922ed696da5cc61c267e64317d467ed0d0464f06d2d82c110134401f612203c6f33984c615224478b3a1774ccf7c8b1cf3ef697296412c020f5a695f1e04fd7c963df5abec644f339e043bfc42d90ab6236cd0e9a4f7307063b65d447aee56bb116a0197ed4a9052ed97f11e5b989311b6d224ec284f94e02c864cdab368d6e00aae2405364ae9087f32f6ea4a6b80e83fe329db9c4c5eaefc0190847c1ad6087dced29d8ec7982cda88afe31468c8df32062746a2a07e8b537a93c3bfb5acfb111310516ecde7e0ccd7bb78fdc036de4ff5391a596df325e3d0a5ddab556052bab500dae358d641874703557f3f480596b0af14c56aab3e5ee6cf8f4c831d2dcf61f6e86a53eae177c3d917052448ca02e4f287d0f15ada519f3780d118377825c98f0ad02a05dafbda86c240aca3dde537dd9118a0baaef8a2d86a8c1dbdbb8f9ad3f034c592622a9341ce3ffae459d1bae3cab2a9dcf8f3bae9d707b01bdc8e0b3d7887c82e9d39312f2e5ef95017908b0fd0976b0216b1af40d5ad29e40271492e3d2befa613b2cbc0965ceb84c76ce4c8c26f231e5276a628dc5d641e0661b794bcc6b7669438a4155375913694480b2ebdb8b10cf35167e059e00cf353e11dbc7ed643cc8ea70edc14bf61d9c63c8b697fbde0b7af9fa92ebf0223662fca9a14bb4c614ed36e45ebd98f81725a11da173ff839ea8305dde22150214a80e4737a01", + "data": { + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", + "source": { + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" + }, + "target": { + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" + } + }, + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef", + "committee_bits": "0x0c" + }, + { + "aggregation_bits": "0x5af41da977c357436d6d5cb611972dd4dfe8f24fd986cc3f62b8b2cd6df1ec5d9fffb58969a144cf75aa90897ecee335edb4c087e9cf844a5ba6e2acffdbf07aca6115072cf6fd1e908678cac3bcf3c62d52094d87dcbe66db7b6dc0ef11c7f20a749a5a9cea6b85febb7bab94425c81a2ed6d53d42193e9dcfb3d415dc53b6f872f5aadb7d10201f85dde8eacbc9e87b72f9276e6c0dd3a244a3676c184eb46a216ccba47432d0215454f42d2777ba28c79e38f492e6d46d1b065553f901ed99d7375c5ded4343dfe42a0c6b83cdab8e223ad328b39f46d8a06e1ddfc6a3ce6cfba7a8091749b4de6a9308bf9b3a3c418702fa32bbda084033b12c09924304b14b96ec1369061fb13a3aa0f2233b2524c86f0ecaa7f282aa0ae59437049b8032f60be842d4e0a033509f61cfb418da0af682a173cb8c1cfbc4876d1eb14ab9a440068bcf38a31f4a9021a7129ca37b456c95f016272a17360123acabba0f54923fd5d1bef78786c92215fbdf2146838e8f752a20da1b2472d7ef6d80cbf0455253c9135ab6906022beff98c7d2f98c6e64b5b2fa0dcc78e46b76405edde55eae1e077e4fff69b5a892e10ed73d4767aee874d2d3e0c3fa226f35fa7ce21cd0480b839534220b3cdb7dca9d7dc4f3a3762f82e7bb54a57c2fbea1063637e01c5242b1e0bf51473233ca9bff61513432a56e34ae6ce73bd6225f3847815676c06bde9f686abde54e8930700f645dcc9ca8af8607bc0d1c490d281449bcf65fa22374631272eb06bc53e63c06082c648a356f3bfc450cd3636983d04903a36680c965f2af41323729233480b6f8e7640dc4d0a3c4cf619b86dcdc62410c3400c2004a2f157338766e3d2fe039e733042f3aea833abaafb5ef7dc4c1ed72ec4881b7c7c178bcfeade55329e93ac81842e6758136d73335774d66ff8c925f77e1d4b7a09ee44c6e30d506cf487c747ac10b92528e85f5702dac422013541228c6e0099e1df1e7018dcee8f3d36d5fa51394c95d1a18f51c6db2581a3f71cf21882713ac1c5cd58db94168db50c2017c2c8c81071d6cf68a1d0458b4965908d1fb6c4710c50b74b3cef02e77919acc9029d9f9b866e2a90dcab36cbbe84fd9e4b5b9036d9baba000eef655ffe64b9af0e79b28657fefdc30a107f896b81d64b92f01b71f3ccfc4f8cfcad286ac1e93f52d08b5c9b00b0853b64b4f2591cd55042ac5635ebd811f4934ec05a3ff82a80b8029779d09f1d6c3249037381d16363107158a53548d75a80fab67a4f7374855feb3ee3e8c7109afc0d58a9a5309a601ae0435dac5bf21f0d38d7c811dcc413781e7702f0580bfc9d4dd18639bacf84c7a2d197341bd53ddb1e7fe0ec44bba8c45a4ae2dfa564414fd91b436919f251619df1b0eb2899ce45720e7f542b437b902bbbfcdf1e778af073d08fd2e6504c9b9c8501", + "data": { + "slot": "4537780097985426121", + "index": "4536127614768741993", + "beacon_block_root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8", + "source": { + "epoch": "526920509", + "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" + }, + "target": { + "epoch": "527305258", + "root": "0x51977a3f0ab3110e2a10e9c6bd0e89b1410ca45142ac42171bb2b169efc281bc" + } + }, + "signature": "0xa17225b5e5319618e77f5b93350430acfadd8ae12a279f1a4176cc7ad1de7ecfc8670988519713fbac8f702cca29bddb14ff1463dae3abb53ddb0c025cd69c8cfb0f5298ab241c06ddb840c7a260f3dbd37120826b13b17e22d086148ebdbab1", + "committee_bits": "0x02" + }, + { + "aggregation_bits": "0xf8d3f62925333e71c92b5989e48786f9ea8582ce5679c63ca0dae6a3948750814066f18bdb3cc2fded5d81f2ed6c784e8c2e8c42fa6b0c3d1670b4069c78cd8594c1547facc8fdb19696b11475dc3dd1c7499aea330b9953f0ccc4fd30f3de2c71ea6c42d470865d80771c74e3110239efcf4108a58bb05efef3d73a2363dfa582352640000c12f848be2c6d52be43d4fa5cab16a2d0145bb687d29ec894d64b389bd2fc97a558570aa151b89194980ea7b2684b935b51e49b71f6cd0641fdb62abb914bfa03b7502414b5c792be5472d6be3c130e030f194fd234650e4f1f3f1ee6c722096fa58c3091e5119eebba839baab03347552015fe40ec788f2b52815cac78de375b46ce120ce3eab28e05810094a1a8b461829a28c89c55abd7e8a0d0a42c23e127da6bff2b17fb7bf6c7cf4c4d5cb2dfe9030c3d2b01dd8cfbc0a387f8309c9ca604eb42aa8105a78199bec145010ec3e8e7b7948a10105c1885561045a3c4449b516d2734d8764320e3670187797901ee459ba0c22bf44cb7975134eb59de969155812ca98fbd1a37ed645720a1fa76f565291b3bdde819dbc89fc2e7376b8945ff35bc69dee5e2f99d9568dccce8933b85f8ff52ee4134ff55d319814b6c4b9a89fd9471fd16e4f90cf6ebb3db3051cd0a08021eb8bf3b56698876d79ed5af7054d75a0e3affc78f84e041dad2045805d90764e34244a32620a2cec1c7983f541e1c7eef01f57f8dd4ce9efbb685910b0bb79cafb313cd33bbf03eafb006911d75e1da95c6a84b34ad6f2af08a27bfd27af4b355161362a3e9735175eed49de10158098dc86767aa7e64b77a9dc2b597ff61131d32acd2471af3140229c8b80831be7ff99724684ed7a348f28e55e9ab05cf80a96779c510ce6ed83da51d98f4baede14ab484100f343e5575e94765738b54768ed2e723cdfed7bec02d4eec688946a82bd59a6d21f7e52eb81edcecd680e217ae57ec734138832305149e67992faf46c0835d4befa0b29c48a2a651f289aa3f32417adcfdff9ac79e272abbe61321e11a3f28d6f34c929b5990c3543573bc8d4f8c28b9d350fe2b3a8490c3e5c66849baaee592d4adc83330b17ea4494aff7af5b793c94df8fd58b4ce2012d08a60146d7f7904d1607c989b791650cf34d91b4710a9a953a628098c96026eb949e0778407d0bb2d13f1162d4d99f8db17cfec40ff447434ba34dadc4f4172e1c5490afc529acf3c5fb2965836307bb0db66c1f50a6e8d6dfc874f7391f6dab98d37fb1380e3cec43a338f523b3e7337730fbad50f1dc399e6f61c47b93f65ff7d841308b2b82b2d72b744761e3c68202699e2848abd5b5e598ae8d0e8dc78418f5741239d79a62389e6a61802fe83998583ee089555cc1207b61b26dddcb2fdff3912a6d85ed4671bc71fef7e1260b8e11aae5c343796d5f64f01", + "data": { + "slot": "4565872325553958186", + "index": "4570829775204010570", + "beacon_block_root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c", + "source": { + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" + }, + "target": { + "epoch": "531345121", + "root": "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" + } + }, + "signature": "0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e", + "committee_bits": "0x06" + } + ], + "deposits": [ + { + "proof": [ + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27" + ], + "data": { + "pubkey": "0xa56023832292eec3040299a0164c844769e854beba275c44e4960ab2da7ee11db36674e1e2fa2615bc5e247a2759a472", + "withdrawal_credentials": "0xe5ca603e08e1eff7259e45ea6bb662256d9d74b1724ee8feb0ea59f6e2ebe3be", + "amount": "32000000000", + "signature": "0xa9900942897c434e743c2b0210ec3266920ec6a624ed13b3637c640c7f79ba57a240a7e6a48cf587f71b9007616972821680ff0ca62c4cd47d50145bac76df28d9fbf3f56c98a5e8bd61b8cb41bdc02e3179ea961c2949c0803c108425dfa29d" + } + } + ], + "voluntary_exits": [ + { + "message": { + "epoch": "4498120483605137864", + "validator_index": "4493163029660118184" + }, + "signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" + } + ], + "sync_aggregate": { + "sync_committee_bits": "0x01000000", + "sync_committee_signature": "0xb2c1728d5efb4c0577aff84d84d5b0b2a89c22e1a97f2fb468442a8c2f84eb0912077b32ddd66ac5ce05168ab26168e40ddb8dadbed42b229c34e78cc757421908ab6159082952a43133f5333ad2f8382930bead6ab4f0e91c95ed9c66f634f1" + }, + "execution_payload_header": { + "parent_hash": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "fee_recipient": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3", + "state_root": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "receipts_root": "0x6bb2373e68f20adada72181a3474f2c098b26daf6fcb0516f0723270da91e789", + "logs_bloom": "0xcb571a3e876c6732a4c11cf3562059c2b8c16889ffb6d1b8d5f883591e767c3fb46dd46047448da9f4783626721bdf9308a2cefba364d5b6b2653a014d0c2bf6f7722e4c3bbe594bb639fb9b0489d49f463e19d5547ce33fc497f70c977a3205fedaf8ccc0bdc1801c8a18154948c8e670813e0c98f6e92e20d4327c71f2de5e7aaf1df92739504e383a1977928614c2078d5a61289ac612f9e3b08ea9406604db94fb2a3424f245843ce722c6edaaf79085661b750ed7b62cf57a68de63b899dbde6c169f2a65bd5b0e808bdf22c850136f4c1421be8865b50aa17c03735c41f4b4ec5a973ad30c7db09d4a6894284b9f19eafb8189121738fda9d6e0d393f7", + "prev_randao": "0xde78143e27b846779904841e2aa96d8fbec4671bb57ffa72037ac721f8d633ca", + "block_number": "4478290672120026440", + "gas_limit": "4476638188903342311", + "gas_used": "4521255257228650249", + "timestamp": "4519602774011966121", + "extra_data": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd", + "base_fee_per_gas": "73092283800700793286468708950267523415056945357667839430375913972420161943176", + "block_hash": "0x003ea73e885578bda77a6ee17f4c6c88227980d9e6e5fe448bdc2f93a5614b3e", + "transactions_root": "0x135fa13e28a157029cbdd50c53d58055287c7f6b9dae27ffb95d735b7fc202c9", + "withdrawals_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "blob_gas_used": "4517950290795281992", + "excess_blob_gas": "4516297807578597864" + }, + "bls_to_execution_changes": [ + { + "message": { + "validator_index": "2996764", + "from_bls_pubkey": "0xa2cd8bc71b19dea2f97e5918a5ad8205b4937a07537f9d84206f15ad383c25e65249dbb53d559acb700bb4f59297896c", + "to_execution_address": "0xac67723e28fe512946d50f68f01b25be5a9477fb" + }, + "signature": "0x99f5bc997861976d73013dd4c06f42a2318912e5e075a2746840bb34134e7f4765ba88dec12f4bd5d2fa24d7bc2c17ce105bfb796108064499faaa4d4b3e17db6e62bc88f8e0a6243105b01c00302c3d9f81f5e790d6a6951532ac94c19d1114" + }, + { + "message": { + "validator_index": "2164897", + "from_bls_pubkey": "0xaa4811100ca7dc5c90d84205000ffd9d70eaa3c650ff0391ce7c3f5eed59f12e4ac5e080f4ee6e30354294ebca28c93d", + "to_execution_address": "0x1cb989437169ae6f9cc483c46a7456e6eff45260" + }, + "signature": "0x833c3424606fa52c035536e38b8c677a1b922a8d35cc38b55e6f057725893ff621d9f49153fcda3af9d7cde737ee0c830e3189e94a62a8d655c328f7b3c77142c53a3e9f6029e16d22ace761f8e60f4b28f2b487821be3272e1905598649f1a0" + }, + { + "message": { + "validator_index": "1780148", + "from_bls_pubkey": "0x98d6103215e3916a0cff3af6b6f29f22374a32d87d440a302e18a9e2daa80b32a2824798030f6a2e06ab612b07c41f74", + "to_execution_address": "0xdb034f43b15d672031628c76afcc23e92d134914" + }, + "signature": "0xa2f3dc0cbadf0807f2d864d0c98c2e474972419b1ef936d0c68976eb732a146c8bd86194e95381d1b9245530b1f138cc0de425bd6478bc56a394619e1192a114680c4e9f8b0278816bd4f5df9e24cc31ca73cf5eb26da54eebf958966d4a957f" + }, + { + "message": { + "validator_index": "2856403", + "from_bls_pubkey": "0xac60d2ec631e27b37f4f5541319b94c8cf82299d71ae4139039cbc1d0c30c71a075cb62166801ccd0a56f0bc29edcdae", + "to_execution_address": "0x01464343f1f425aa1be85acd56de4c833a194738" + }, + "signature": "0x818852c88a6e16f2294cb51803a155dcac4f6ec5ee0d095e8890be8907201ee1c8790abb6d5f05faa2b3d8d9a03972800a04fc1666d877c7cbfb62c387d6e119f8f827ea2ba94d5b6429b33d6f3770b79999da3cb8ed17f2c8977234bd2a1cdc" + }, + { + "message": { + "validator_index": "2627637", + "from_bls_pubkey": "0x92f00f85478ad1224c1be3a9b9230444411e9a2beeb6304e5c1fba1b7b54c9ecc3965abeb3385e4916040260544b2580", + "to_execution_address": "0x5d6ec4433175f5be08277b12261c89e3b0d65cac" + }, + "signature": "0x8b13ef837950d00a469eae427c1fea111ea85e0dfd63c09bdc02aec208523ec4c805595639d50e183dc893022f60abd8118d62c836b6d4de057967f80184532c1c3a25b26c51926a07e55d2ba264de6fd22eb0665668cc7280bbcdfdfdb3c0b6" + }, + { + "message": { + "validator_index": "703892", + "from_bls_pubkey": "0x8939b0ed4fd0659427739e525d6990c02614d703d12c5adaa5f8aeedf64fb9ce66e769d83f9ec61ec05c6074d5095955", + "to_execution_address": "0x83b0b843710cb448f2ac4969cd2db27dbddc5ad0" + }, + "signature": "0x8f65a298124021cf26323bea9328da795a7f2134f42c21e28617a1b663c568058fa3ddff9a71948362e7380cfb591ec9062f735067b1a32bd2b88e9c2d5c3404348a194098c30f55f8cc050b305bc4c2baeb2a6e4ab1d49833bd7ec4943367f0" + }, + { + "message": { + "validator_index": "319143", + "from_bls_pubkey": "0x8f5f289f8ae538eca9f393fd7ed1a5432ba4c145b700075d1a8ea9530ec8cba3b91511e78662d0f2bed026a1b86d6d2b", + "to_execution_address": "0xa51dc242b07456952ea93a8886a01023c35b31c4" + }, + "signature": "0xa23a1e6d9410ecb12fe95fbdb3b12962bd46855fa46ccd7b2fe75696cd4b1788302d6fc3bc1c1bc6f8080d0025b3fdc9139a3b141407213b8123563622773e9b385473bcd03f149b0ea21e52626382dba56b95a2204178c2c454001c79289afb" + }, + { + "message": { + "validator_index": "1239417", + "from_bls_pubkey": "0xace9988853ce03390f8d5c93fa51e3a5f5b056bef4ed1f437a86c59fb687be25d0e6f4be5beeec4bc04806e93c3eebf7", + "to_execution_address": "0xcb5fb642f00b151f192f09df2db239bdd0612fe8" + }, + "signature": "0xa0053dab17b7e0ba64416b1c95b6c56ecb7f39ccc272cd57a347054fab6781ab8d834eda1a4e57ac5b037d3b71945d1805216ba518aefad29922f57f1b3149151d4266ae944b579de5399a209e482a19d3fd7e9c02069e7a01ab2e9a59477326" + }, + { + "message": { + "validator_index": "854668", + "from_bls_pubkey": "0x85a2763ffc316d21106869ce72f88e6e5aa3ffcb84689aea186a7de5056f0fa98f50ce3bcfb8a96d33585c472748b014", + "to_execution_address": "0x8aaa7b422f00cecfadcc1191710a07c00e80259c" + }, + "signature": "0x84ff1208ba8c36a14bcf8c5d3c9d9e22dd6d69f7053eaba3ce96cf7ca324ec3c3a2bd097053788b7dc64d7dbccc30ebd07fbaf41e95ae397751f8aadbc4d84219038b55e1fb3785a8f7ceebe05d629ce2c9c407bb9be6c66c0d26c14b3a7c3c2" + }, + { + "message": { + "validator_index": "2086906", + "from_bls_pubkey": "0x8f220bb09673d250a17cdd562f33ca615e83e293a43e1313a9c3e9438c218cfa9a803426d29e9bffdd884daecf7e0ac6", + "to_execution_address": "0x4dca2b437023a3bdf0f3f77aa4019fb753254380" + }, + "signature": "0x81d6211b8ee9652820795832982520799ba2eab947083a2c6e56d9cdf1e678b1c1a6c8a108ece8b1c23b234a208e6e281477d55c41fc3d04027032277fa0922a0370e76db742037a0688697f618b8b7780cbfb3725f78bf9c5f94876d9d1957a" + }, + { + "message": { + "validator_index": "1702157", + "from_bls_pubkey": "0xb63a024e98bf28daf9bf8bdcb7c89d823f29e65e362a923afec6c78aef21559a12d2c5cdf81998630ac418034c0e58ed", + "to_execution_address": "0x0c15f142b0175c6e8491002de9596cba91433934" + }, + "signature": "0xa386f611424c8ec936f7ef72da9d526823e3bd03f3452131910b7c5ae646a989c276001faa9398ff3ce9050cc0282c5003ee9357b8485f4c52a4321e9c5150d39cebf18546badc0a22d7d881a08bfcd1e76c4a7c9c8cd7f85da5270877698c7a" + }, + { + "message": { + "validator_index": "2778412", + "from_bls_pubkey": "0x90961673ed2682e726960a035e0d1e050ff0754225f97fb7501110e474cee35f7ed1bdeb70eebc97a59abbd7217bc691", + "to_execution_address": "0x3357e542f0ae1af86f17cf83906b95549e493758" + }, + "signature": "0x9590d1d0c5216aeacaa19bb58a4a66a6430e554a0b020e2977be2421bcd089fb47bccbe10f2baac88dee33fc625dd5441217042918ac793c0aa2aba45a379decdb018b7bdd277f2a66b122a95aa1974cb05208e00801ed52f7f86b671c372e2f" + }, + { + "message": { + "validator_index": "2237681", + "from_bls_pubkey": "0xa63d491bd47a8f4caf987b7a22f228dc709f8f4a0d8ac25ed72a18cbe2b2da7662daafbe182b33c81e14eac70bc2f0d5", + "to_execution_address": "0x55c4ee412e17bd44aa13c0a248def3f9a4c80d4c" + }, + "signature": "0x8e4e43252f668d04559aa2ecf1ae7605a054c1fc2d5b0a9b77f9b091b8fd851ef5a02d54ed31a66053144d0319d8f4ac11185d05cd68099841cc554c99de314a291e83c4bd166b924240d4851d8ff63a05c62def40f8b839f087a60db6ef5172" + }, + { + "message": { + "validator_index": "313936", + "from_bls_pubkey": "0x856c75ede282fb092c2c5ce1511945d4eb5026a095e7ebb8ab6a231ef8884390141d100ecc904fdd58b1f2f0e07b1630", + "to_execution_address": "0x7b06e3416eae7bce95998ef9f0ef1c94b1ce0b70" + }, + "signature": "0xa31249a2500d0428a2b38100b6db1191f1014087af8e58cdc025e28fc9e2aa5f08c74036c1c99b5e6b9f96c250700e2505201e2d4657bff1de53e01ac3c28f2f6624da4e953c9d08b0011e547902197fc5317daa051526f68684f16e1608ff33" + }, + { + "message": { + "validator_index": "2929187", + "from_bls_pubkey": "0xaa842a4b0acf1250c953110bfa6025bc646043fc268749af5274dd0197f06eafd7f5ec00e2d21a01b8a420e8178bf74d", + "to_execution_address": "0xd72e6442af2e4be382d8ae3ec02d59f4278c21e4" + }, + "signature": "0xa29e82672b9b023ec4496bc5ba26cd0e12ae4e168591a2412dc2c62cfbf0466710810999921e34e7249e3a4700c837ec115bb6bee111a50c55a1af9d2f996bb6600a4767e23781cf4eb177845372b39df6156906f9e24c5b908920161a44d8fa" + }, + { + "message": { + "validator_index": "1161425", + "from_bls_pubkey": "0xaf50133072b8d7a0ab9318facb15087021cdde3205929004ecae6df99d4cc111517fb629146398eb345a028d413624ac", + "to_execution_address": "0xfd705842efc5096d6c5e7d95673f828e34921f08" + }, + "signature": "0xa34048285c5a03bac9edfcf306e845a8cc0f8e7f7b4c5590dce0146b30b5a4d6340855b4384b53cc72b4ac5bb9b372590a7f7eca40e78ef3ae9b0e9dfe020abc94d161627ff642df1386143f221aee8ba432f4e7affa7736c65a01e6f342cd4d" + } + ], + "blob_kzg_commitments": [ + "0x36d44642cfa8a73b4c27b317e2d9bff5469b1cbe5c05d35f4b2286f9dd9a1da1edf7f9ff3b52088c513683aed613efc8", + "0x49f540426ff48680416a1a43b562d4c24d9e1b5012cefb1979a3c9c1b8fbd42b8517c05e35b3e879984ec65a9ddb52af", + "0xa99a23428f6ee3d80bb91e1cd80e3bc46cad162aa2b9c7bc5e291babfcdf69e17bb59e3819984a1ffcc715b881c2452f", + "0xbcbb1d422fbac21d01fc8547ab974f9172b015bc5882f0768caa5e73d640216c13d5649714f92a0d43e05864498aa915", + "0x83582f424fd7244f213350c530fd112a5fa71806352876480227941a471efbcb4c76127b24d689436e978f5ff3327e62", + "0x96792942ef2204941676b7f0048626f766aa1798ecf09e0230a8d7e2217fb256e395d8d91f376a31b5afd20bbafae148", + "0x594150410d114a888823a4369a4c1e9b4d1af3b146f383eace5399d4b17e3363cc267b8c513bd892003285f184da4d95", + "0x6c624a41ad5c29cd7d660b626ed53268531df243fdbbaca4fbd4dc9c8cdfeaed644641eb4c9cb880484ac89d4ba2b17b", + "0x32ff5b41cd798bfe9d9dd5dff33af5004014f58dda61327672511244fcbcc44d9de7eece5c7917b77201ff98f64a86c8" + ], + "execution_requests": { + "deposits": [ + { + "pubkey": "0xaacb0e7f3717c59e23c32cb07ce03be33c2bb8366da2d27a9954b77f2c9198a1b5f3aea585faffcdfa4800b592c4d5d8", + "withdrawal_credentials": "0x0100000000000000000000007f8344414da8081272a9728d415e47355920f1d5", + "amount": "4701376009451598829", + "signature": "0xa9bf2689fe47ca9ac1fb90da3b08259115adab480b4f387669f209ee7747f7451af8f61e4a9c057bc33ffc18f0b08c3407be0a59b8c61c741572f5d28e2a1f6af0fc17db7c3f48901c9267606c3d7831a3d3647b885946fc95fb5689d24f7b8d", + "index": "4691461101561559469" + }, + { + "pubkey": "0xb8fa03e47468016f15b89212a91f203194684e0cbbac07b6cd428fc7e10cb7d8a363985b46972eedd7bc434fc701c4b3", + "withdrawal_credentials": "0x0100000000000000000000003ece09418d9cc1c206477b3f86b61438983ee789", + "amount": "4684851168694822957", + "signature": "0xa529495633ab9ab138c0756646074fc7753fafbb44389490ddd46048f29267f6b85e46abbc1fe71c42fc98513ed0f6f800ebc9eaa04b484e29af7d7bb0c38b5e088435aee8583a812545b3057c184a4634957604ec0647d1fa81da2d15a5f198", + "index": "4688156139423158509" + } + ], + "withdrawals": [ + { + "source_address": "0x01eeb941cebf96b04a6e6129b9adac2fdce3046e", + "validator_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b", + "amount": "4726163266291795342" + } + ], + "consolidations": [ + { + "source_address": "0x60939c41ee39f30814bd6502db591331fcf2ff47", + "source_pubkey": "0xa4a90125ab79fbbe706de307f1de84a6b0dc21adef413c6a5e91ab58e575164bd13c0517a318394a56adab9326607e82", + "target_pubkey": "0x83feea64397a7a9d3fbac0b9a16ccbfd63c4d4fa5d0fd8bbfa13739148e752ce1e9b1e01654b56cb56a196fd8d64db3f" + } + ] + } + } + } +} \ No newline at end of file diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlockContentsFULU.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlockContentsFULU.json new file mode 100644 index 00000000000..9b7d91041b9 --- /dev/null +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlockContentsFULU.json @@ -0,0 +1,439 @@ +{ + "version": "fulu", + "execution_payload_blinded": false, + "execution_payload_value": "68528524947898482245626587218140549377996721132996815943128004863989176842092", + "consensus_block_value": "77180733630415606160778360224182193780458495317001054434989722698587561029367", + "data": { + "block": { + "slot": "1", + "proposer_index": "4666673844721362956", + "parent_root": "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef", + "state_root": "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e", + "body": { + "randao_reveal": "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71", + "eth1_data": { + "deposit_root": "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f", + "deposit_count": "4658411424342975020", + "block_hash": "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379" + }, + "graffiti": "0x0000000000000000000000000000000000000000000000000000000000000000", + "proposer_slashings": [ + { + "signed_header_1": { + "message": { + "slot": "4661716390776343276", + "proposer_index": "4600574485989226763", + "parent_root": "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b", + "state_root": "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb", + "body_root": "0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486" + }, + "signature": "0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483" + }, + "signed_header_2": { + "message": { + "slot": "4661716390776343276", + "proposer_index": "4600574485989226763", + "parent_root": "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6", + "state_root": "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26", + "body_root": "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + }, + "signature": "0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1" + } + } + ], + "attester_slashings": [ + { + "attestation_1": { + "attesting_indices": [ + "4585702132744102314", + "4590659586689121994", + "4589007099177470570" + ], + "data": { + "slot": "1", + "index": "4580744678799082634", + "beacon_block_root": "0x17348c3f2ad0733f4b47b34442744b4a2e03a79b1f52c8e8922ee71060a05b1c", + "source": { + "epoch": "533653615", + "root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06" + }, + "target": { + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" + } + }, + "signature": "0xaffb36fe3e48b5c29794f85515b9a3adcd4206fec6dddac6926d0e985d96a9ade0e427f911d56dd90f2644af13e9740509147d149defa9b0763eecba616e0815e9a91c25178860be7d4196a9814781a4576ba7bc6398ef16b9bd5f88c4143bfb" + }, + "attestation_2": { + "attesting_indices": [ + "4585702132744102314", + "4590659586689121994", + "4589007099177470570" + ], + "data": { + "slot": "1", + "index": "4628666713557758827", + "beacon_block_root": "0x3af91e408b6da58558bd9d0797174a4392b7bf5950b8ccba1a914f820d2b7390", + "source": { + "epoch": "537693478", + "root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b" + }, + "target": { + "epoch": "538078227", + "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + } + }, + "signature": "0xb7720f152c38d7172a82186892a68440bc4d285cc8aa92c1f017f93d5f61a29cf51670e4f944648bd8df82d4d6eae00615073d439389cdf35fbd7670a07ef8407c7c71a16be062fff16f351737ac99f006817ba43a295fe5286dfb4ba7116e07" + } + } + ], + "attestations": [ + { + "aggregation_bits": "0x88e3aeac2cb7509e753b73880be4e95da67b35193a1a8d916d3a5f3b61c59b6d90d866ae7ee81a10a9ea025ade39ad5b978bd20bd2d2031d61e8aa7b5090b08248dbcac0698c25ea7b858ae37e5347010aa764962e4f70513d9e2488a9808d0510dcb3dc9385cc9c28ba4a1eae314e5c3372b3d2387836dc0750553f84b1b490b7fffcb2824b614596050fa2ffed45b30b7db4e67cd782cf0446b5448ed43cb01991cde29c15b0a29dcafdbf29840045c4a3d7e58b93ff391e3ae281185e49aeeed12188548d0dc8e904edc1c8a9831577d08b0c708dbb1784cef981e8363efb46d26f039c2561792d1a2e81218eec593aefaa25bb280fbdd25f8103381a51c68c23274f6823e00a776cf24cd4a2e4f71b6bebb58a01260798a8796d4b7af980315e35b8f0972907a4230ac6548fe53526e689dd107cfce096ba37d3b7c44a0455c0b9b91438772c83163954ac65667fe06e542696b01ee07a901c63648476bdd98c6c6f2a0e399a6f665f52e03908ad32ab30aff1b9311778645415ce6eea979da08bb81cfb630e182488c2a11b91eae07f6565fc214f5d1e4b1c0503a250a326b669a4086e9e84a703915977674e887149f71bc51cce3832db04fbdffa54d0cd93dc9586c1f9e58c9a47d6182e598cc16181b0573e46db02d9fe9c67cf8ebd732f30e4244405daf5d33bf5c1e5cb3a8b669284f83ce44668812eb3afa0840d35d418b3e3ff522f7d6fe70740d4b4eefa59b793e0e8b32b606c8f59187b387cc603d78083d2591f47bb5e0049352a4dfa1d962c817775887693bb8e38086cf7c507795662d237d8aa34b910e9fbe4bc8e5b7ab44ca62e71936918435b4e90c9107d5ba3d83f43bdbff6fc028f100025b118ac2849a1f5f8d6870f4050162783c2ab7ee69c4f50c89474010aeccb0df10375b21e9d059bfac0064be1686f3c1fee2f31a52aac5a3af5762c3c5f8ccc7138685331831fd53ca19f61e7f0616aed8e7b60b66244a7734233b4d607ba4540910c742f522e9dacea4e30c7adf86b826295f93e1fac0b201fa3e69c709add5810e1bbc857af6378182e8ef0db4e9a82610c29890734f1d9d2fe91f68c85fffc0c397de09540abe76303a56715e183698d770b190df0eb1a3fba85d2619abac01f717c2061b6ede95c0b69ce21d13b1784f6f86128d015269aced183dc083c68aa2f932d5d7a13e75444c00671e3594287c5631cbed286a1ea25aee7613d09b0cbd7265df0bf07e0cfba012f834615d2a9ec8440611d065ba1e391ffe9f85f60a7cbd945057c2dea25dc1385380573b1725cb6866eebd2594e02b020f45caf16c8f87cb9e11309991c8d24664f7e725e96e2c646874ffdeeb6ba938a92b94e574077ab719d8d2e7cfcd6ecff73913bf27c3c82e868ee829741fcd85b0ec6a1f2a18c887a1121f384a32bf6e4d182da0301", + "data": { + "slot": "1", + "index": "4615446843529318507", + "beacon_block_root": "0xd301f03f8bca9fac02d5d762345eeeabc4cfb7e903fe128c889a6bc4e0312ee6", + "source": { + "epoch": "536154483", + "root": "0xacbffb3f4b33e122174f090c8d4cc511b7c9b9c5966cc1172c98e4332b70bfd0" + }, + "target": { + "epoch": "536539231", + "root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767" + } + }, + "signature": "0xa9aef1e37252740dedc5fc9886810459f7484555aa59fb3876803fc4924149cb471ffbbd9be5324d952efafc3de4c5f705dd02134916b2afa02194fe90a8d1e8f58ebcfe0d33d0b8a97e71a3f7591cb82c37ba531c059a684b581d3857f05e3c", + "committee_bits": "0x0a" + }, + { + "aggregation_bits": "0xb8170c02376e2616e3bf89fd01dddeaf95362e5081d185fa9adb69f5bec17e22840f28947369dcdf2269436a8ffdfe7b90995dac664172d05e4992d1d40e8c59a5fc24b8bcdcd436af3f4fa98c1d3ce3a706e03f3c56085c1cc79dbbb84081cff70d85f6acbc292291bd8a96de104b9eb8d9d2235f6299a563224628dd3650ce817ca853e56f60ebc3ab6b0b3de977a673e84a07a823aa64628753bf0345297e7bcb6830e95c8e42b77896fab98d0b7e82217680a3aece1b571fd3c9beb57795ad8cb4f084da376677f2a65ae2c54b0a3ff1e02d0be7e8fac52df9b5ea009d5304e3f8a8c09dd9ae7c61a5e6f82c52b1db4395c1bf2ecbb3fb1fcf9a3eea17837e47e2a0bbe84bb1371d9794f0790339553ad1b34e3b129430543bacfe84810ce4f6318dd6b342ba6a036de629acddc0f3b7cf33459afe859f98518dc5fd957054ac06bdb00cc850df69af9da00165b4c033d0ec5f7ef59eb9350d2874a994d87fde6d5ae3ffd02a0d6cd5adf641d4c0d4eb91963be74207b6a0caceba9ad8d89c1eee8185f8a80f0b996d7291e63fd901fefc1885d47ff8a9e1d4dc14088747cf81390dd611b5034aed4f4acdd1de69b8bedbc61ae7b4923f5dc2c8fc38502710b3df2b698d8df9af14d1d84ead26198297827219b4291a8c607f2909d6b040092f8b2fdbb355e07eeeb9ad18717f4242df7e32dd6ae4e60d590726aba4cc07eb9a1d815a0cba65c01fe307b637d599001347461813883100b7044acf4479342221008109a9c157ee03412e36248817dc01cb6f9fde03baf9402091ef049b2262aad08b6f15a52c43a54139cd8b7bf9170bced776ecf26464571698fca1194a0ae8667d397ecef7f032041615b38cd3057cd4d88fe194359dd1dca27113070a02a1625ac9288ff91623d42a9e501f92d17af6c792417aa84e11e8d87230afcaa14822bf5da46f24c8d73a5b90117a15ee1193406ae76a740f8a5d03457dffebb9177f352f44f25b398e6700e19c1a34489fd4a74bbcb73506dc2e33650b28beeac3bbf01bab493c1c957662111cdcdb72a0747e91790b6f07b0b702445e3625b4ac5026bd8877f3754edb6cce9ba0493bdff31cef986a94b742bf6bd8f7c64c169c9a3fde5a2e188ee7bbe05d3069dc70410c0f821b219e6be67df002b9d007aed308a53bf7885d2605718f30e2e66658fb582c4b2aad2ab00b2478b44d82b367325ad781dcb7a5a55ec9709c424cfd2a052dc169c8a52123424ec478d52b3db0adde4e94920eae0368bbe1295390690b69d99952626204d60150612e3780c62bf30b0fa3afef3bca3087f7d04c712142dcbe0cf9892ea2733627c7b7eef4c0a1b68be0decc608c759725c80307633b0fb5fa877c98da3e995af305add93948a2d6764a527b9020849e933be3f1bddecfe2f98cd9714f3fbd649896327afdf001", + "data": { + "slot": "1", + "index": "4541085068713761673", + "beacon_block_root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d", + "source": { + "epoch": "529036628", + "root": "0xbb0b0b3fe94fa42a5e0893ff71360feab7459127ca9149e88148b44625f31d08" + }, + "target": { + "epoch": "527882381", + "root": "0x2ed2e73ea915e0c71d9afe03676b8ab8dd578b9311463e45934f49f843386a48" + } + }, + "signature": "0x958ab38cce5390fd750e87806f32ed8993a175bc3ccdab7ce2a40c23ac6117b603d5ae98d44a9780cca1f32d28bf5176058ef667b17fd95f13e047cd9cdebbf19f5270ec5a154e2ce2283da513c9ad05c26f10b0a65755eab4b1ed6f42175027", + "committee_bits": "0x04" + }, + { + "aggregation_bits": "0x868f9ed4683f5e22d7f519918cf80cb113af7b692fae23a694f588d43d90507f7c44071a3fa92c8830bd85bcc71e557e95c6ff3fa09d88a7371fa035cc9609c4ad9193d7bb76bc321428c79447829a3b275a75f146e1f20f1c2a0cca8d860475c19337d97b5dd3653cde512f97b986b147b32a524a01904c7724ec100dda5b03615d462d4732b4a58ac6fb1d0c935642316e3bdd31f285f937e40c3cf291604ae7f3a5b8b1937e71739649662d99639774b653aa12d7fa990e0d48d7dc7ee51cef5ee98b7a420bd18719971894792effa5f6fb49f3218005b08b00fa513fe2f5ced76657341c32b69e00885d685028194e2d5e6c76b4185f776000dceb810c56992ef14c7bed46f600876655a7ede2fea688c7d538f8cd0dd5b61fd5bbeb2353e891ae362063cab720d1030dfb8605821bbfaf8d71e744d1e12cd713e64e220c20c670f36de2d6f865d900c335612fbe9300e151eaa0aa37e0da6a7653bf5826cad00a21e7efccc06bb6be8a63b520a77059efe58b8e4e2e1ab86bbf4384d076ccfff6625014eaa83d724b7743e3083d55e7ca0787f6c5a05f850ad4006e2bbc7fc851f2be69c7ea652c91fd40774e92358986ca6ffe9b9f5d43005b9abccf3ac6b4d9895fb0a6954ae2f8485b2b846e33061f85529dc6f34adb6ffe68a42e7ca9d53f7e0fc6fd236ab3992dbeb8b1f2906a820ecc42135a51d8dff9f654e8d68b27849e2562ee4c7df7cddbbe43e855a933edb42b86965a96e4b6388ff9f4da8d4fd1a3b63ee253e5d855f88faba1ef8d8a24cd35589c9a8bcad8f87ab20e6f83ea5fa2e2c990080cad4bc8b90fe46247f902563ffd31306b242c34293e3c49fcd42789adaa6462457e621c8435513bd566a65f76b44088203143735e78a1d3f6e93704df14f36b1cbb8607ebf1e701ae19983b073db1417d5f75c52a3d95761f871516d76901f6b402e4dacdf9585b78d1843d7019cb5ba4257b42f6a331d734d6bc0ca38d882dce58989d7de27e0631759acdd9543d4fdfb10adea96300bde9461e8851d8dd6baef39961a7a3c73930bf6abed670a19ebf82127de6e1a861d083c582983cabf0ca51842b16ab6859f12472f355126f6c32cde777a0efad8397cf240cedcf0ee04d64d210e8dd09d4ee9af1a46e68eabdfb6264ca1f6642425a488548bc0f6984a93a9f40a44671abb9d1daf85020325586b3f94f671c8ff365d5efdb7db5b847a6856ff427fd8e362f92a9c3eb7c9555908a22a34872375ccc47b31fa7e7a189c2968a7ec16888bf026926f82d27ccc6a4bbe81a6bfb2cec4c61f589048779351a96b2acb1b4162ba942dc85a486a39816ec0708d0cf40536ed3e26f82b7aeb3cd3cb1150b8fbf64904a548414ecb707c10c5309dc9ae4cb07e1cacd32abee77c0864eb02c0a828e14bfbb190429e51d48c71832e4cb3f9001", + "data": { + "slot": "1", + "index": "4526212706878702633", + "beacon_block_root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3", + "source": { + "epoch": "527305258", + "root": "0x51977a3f0ab3110e2a10e9c6bd0e89b1410ca45142ac42171bb2b169efc281bc" + }, + "target": { + "epoch": "532306994", + "root": "0x2a55863fca1b5384408a1a7015fd5f173406a62dd51af1a2c0af2ad93b0113a7" + } + }, + "signature": "0x8ce27ee66d80548b04b029a68bf714f7918fe9b91c706050317b117786daa0dde1ea1ef9a8cc79bb41d6b7a4d661e30d0023df755b5f24daddfe6eda547945d49ab8796bdc3e63d75fcefabc8dda7f9b4d78292e8827948a5ebfa1f662db6ed9", + "committee_bits": "0x08" + } + ], + "deposits": [ + { + "proof": [ + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", + "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672" + ], + "data": { + "pubkey": "0xb94235fc2765496162b52009ab14fa6d0d0ed1debc25fbbd1fa6da8c64b58e5edaf39419489b556cb563cdd1d08c2eb0", + "withdrawal_credentials": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c", + "amount": "32000000000", + "signature": "0xa8d1b8a3f2e7d1f9cacf864d93be09c810406e24e9074c43a1a4323b16b045d428d23fa0762b8bbf203b452d9c8495340e065df1fabb6d1b56b3435d227afb2470f722aeba88fe4542eb8abc2329a6bbb965502fc5ee6ed7837ef9c938573fc3" + } + } + ], + "voluntary_exits": [ + { + "message": { + "epoch": "4559262388392254378", + "validator_index": "4560914871608938506" + }, + "signature": "0x8166b2ed13e982e6b9f05d30f42681b826099135a533d2614ef5f4f59811714245db0e1821a644859559f97ec1e614bf08b2edb294fa2edc1527f46596399534af23c98613e1b74c01871bf1dd2af9618bc0ba23ddfce8026b897cdbba8c1bce" + } + ], + "sync_aggregate": { + "sync_committee_bits": "0x01000000", + "sync_committee_signature": "0x8077d47ad0fe431af45ca6ed24efda0fa9c84364ee8af5f9e83f53b3e5934961197cb31b062dcc3d5dc793ec6de565960924b65d0535f3833ecc51567572959e2849e470be8b6a1f21e2c735552595e9765e66a599d645d33fa3746d409fa122" + }, + "execution_payload": { + "parent_hash": "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "fee_recipient": "0x23033a3fe9f2a903b4f058a4d4ef6a81852d9997", + "state_root": "0xe5ca603e08e1eff7259e45ea6bb662256d9d74b1724ee8feb0ea59f6e2ebe3be", + "receipts_root": "0xf8eb5a3ea82ccf3c1be1ac153e3f77f273a07343291711b9de6b9dbebc4c9b49", + "logs_bloom": "0xbf886c3ec849316e3b187793c3a4398b6097768d06bd968a54e8d2652d2a75a96ab3fe3195f647a70f258bba8e2e6afac13b68e2faa5061068306ca2a652ccf6becd6c58dcb63addb97feaaafc56cf440e920f1f1ee6ced53f0d6efd1209f3f0daf37dbc30149935d6dd2451da4f84d128262214a2e844c3079f5133690bbe15801b8e32f99a0c4144a1d705eabbeb18d2d32bd6c6f4f48b71b21578d4239b6197240a4ff3e0fe9aa69c35af5f59090c355feb7b601c1284334d2e5933fbca40a7792d1daddb890ce4e7124d627c763c5d9d79b5597a8580854a297498bb127e6040a3260c87ac53a8c4e69591597b0fb92cfdf430c136b9a5079a5dca820f58", + "prev_randao": "0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34", + "block_number": "4488205580010065800", + "gas_limit": "4486553096793381672", + "gas_used": "4491510546443434056", + "timestamp": "4489858063226749928", + "extra_data": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "base_fee_per_gas": "66016772192738304600348427229332912155053403334447944293225380805794998736543", + "block_hash": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "transactions": [ + "0xde78143e27b846", + "0xb736203ee72088", + "0xc7dab83ea972da", + "0xa198c43e69db1b" + ], + "withdrawals": [ + { + "index": "4517950290795281992", + "validator_index": "766262", + "address": "0x4dc28f3e0884f5d07b860b8fce6fbebc3b857c21", + "amount": "4506382903983525800" + } + ], + "blob_gas_used": "4511340353633578184", + "excess_blob_gas": "4509687866121926760" + }, + "bls_to_execution_changes": [ + { + "message": { + "validator_index": "2227267", + "from_bls_pubkey": "0xaf8e9748b8dae2368d451ff7e57388b5a9de96c48d5421573713a104bd1d7d19a8fedc6c40cc0c63f030cd788d4b79c7", + "to_execution_address": "0x42fb7d43b1006df9874a521b12867f80fbfa5084" + }, + "signature": "0xa8709cb09f500debf2bbb6855e09542e63ef41d16f12fd72cffe162f228a3bd53079d54205623296544d6a4e803d7cbd03b452f30def23fd44a939ec651d16f8b2380c6c05ed8de42f6332456e214a3327bf9081373cd174c5fd88c73f7067be" + }, + { + "message": { + "validator_index": "1395399", + "from_bls_pubkey": "0x849eaedbe546193c419188b4aa3f2d222b377a136c5defe659dfa84b5ff83153490a330f25a7ca39243bcd11ebace030", + "to_execution_address": "0x683d7243f1972b8371d02072b997a81a08014fa8" + }, + "signature": "0x860ddd021623b0457093e3e33cec56fe571fbbe8a52a68ec6660579165513eeea8dc706ba31cdd09c5c7ab60765182cd084061dcb29dde1dd5d5956b404b389f599a34da02cd3a50385a148dd804110335507c0f05bdfdc495e4a4953dafac94" + }, + { + "message": { + "validator_index": "1010650", + "from_bls_pubkey": "0x8485b34d0bf20fc4d60d681351091329d0897bac95042cb32b979891d0d5f7f752df602f71f63b1d466017ad2a09b8a0", + "to_execution_address": "0x27883743308ce433056e2924fdef751d461f455c" + }, + "signature": "0x98536cd2647e9ae4add0f9ee0897f9c2bc423061a913bb3f1d5b79d2e3ac3090728c5023a892b7440c6cfc2fff73dd4210b61a2c7ad48282924dfe7c6c6f4884353d98d629b374df14b429a91ee58d18a80defab79fdf5cb71224fec86c022f9" + }, + { + "message": { + "validator_index": "2242888", + "from_bls_pubkey": "0xb62392bd8fa27ebbf0cf05be5bda4d08cc63c65e26ee59edc9a002682513972e9e5810163d19e720b078ad5e45dea8ad", + "to_execution_address": "0xeaa7e74372afb92149950f0e30e70d158bc46240" + }, + "signature": "0x895d52f7e0948110bfcd91fa281928e1c76841a86ae348b51e1c0bb9d10bce59917d950c415ac89c1099eecf840f62f0015790d194a97cabb85ba45d5ca678a2c7acfb4d86f22f430c7292bec30f1f0a24125aedf3132afd0a76b6ae0abef7a7" + }, + { + "message": { + "validator_index": "1858139", + "from_bls_pubkey": "0xae7908cd2718d6801bc1045d733f3c8367e3125c163784df4d34f356f899dad12024a9219f126e63dacb03ac068101ea", + "to_execution_address": "0xa9f2ac43b1a372d2dd3218c0743fdb17c9e258f4" + }, + "signature": "0x9846a460e26f9b19bc8a79f50838489e2764fcceed280b9f8729d38d13b6154bb69a8ab360a7cbe0c80a3bc7e92f5fee0212311895f198f7ca04e838530bd79c2814c2d0b4417c3f760727b92d279c91ccd6c94a08924d7402dbda81a2872ba2" + }, + { + "message": { + "validator_index": "2934395", + "from_bls_pubkey": "0xaa7ec4a37dae722143cee2fabacc1e11964fda925d7dc00efc1c3b3a537f414237ee98b5af27a6231ae5097e4a133529", + "to_execution_address": "0xcf34a143f13a315cc7b8e6161c5104b2d6e85618" + }, + "signature": "0x86c8e92840bfb3b3ab773a6c3f4bbdc36416746bc710630dec288404296db89f63eb25d648a0795e30e6870ea5a6f5b70bf684cbe96b72671398e89a8510991dca3110bff970cf1abec6c3bb3bfd7ba1b37ac1b973ac024bcbad0287d47aa65d" + }, + { + "message": { + "validator_index": "2393663", + "from_bls_pubkey": "0xb4de3568fdbb0af339856e6106dfd7808879d0564325ec1deab8e8932c4d173a8d7b04a546a9de867619730b512748b1", + "to_execution_address": "0xf2a1aa4230a3d3a803b5d735d4c36257dc672d0c" + }, + "signature": "0x8a5025a2a1543e6fa0fd574add3bcb06f96df170dbd82f51995a261559948009eefc0c8fc2c474c387cf52a8c5a698940eeb1fff88b70b5331be065192f46e47c765cbb3678d19a6a84f713e9c9464730649720a6182ea2964188a8dec26c2b4" + }, + { + "message": { + "validator_index": "469919", + "from_bls_pubkey": "0x8678ff3eff860e3ea75396d0bb0d548326928ecc62c8c9b30b58f8f3be02e3099ef80f47a13c7fd828412ba9f990c25d", + "to_execution_address": "0x18e49e426f3a9232ed3aa68c7bd58bf1e96d2b30" + }, + "signature": "0xb47bdd50d8e3ee31806068b3555ea1fc6771e2caf4b06d07394444468feec69e9d153e52ced5b5cbb5f8d44f2e981a060a691dd8cd0d86c4d7928bb908eabca9c2520e9033cfb4e5f13a80d30d4e8de24eb5a09a0e0b734a55811f13edd2fe6a" + }, + { + "message": { + "validator_index": "85170", + "from_bls_pubkey": "0x82b07707a61c37b860d0d290ec1c330ad73d0f5970b72c198aaa567ecbd2d2d08e884f2322519c2e17ab2cc3e9bb26de", + "to_execution_address": "0x740c2043b0ba6147da79c6d14c13c8515f2b41a4" + }, + "signature": "0x8008c559949fc9cab7b9b663aeecf3583273f07c7081afc5327ea39297f5adc1f1d8bb8d9485f1fb157a8bcc291625fd087e435b653ef0020f3fb8e4dc7ba04b6ebc64368aed53b868638cc39a536c0c077d6a08a4831f06e9145d328a52774e" + }, + { + "message": { + "validator_index": "1317408", + "from_bls_pubkey": "0x8a5997a79613125f1de5bd526981865c391f914492bf08bea98d89e0b212f554bab770783c094dc2ef1229e5cf6febc0", + "to_execution_address": "0x9a4e1443f05120d1c5ff9428f324f1eb6c313fc8" + }, + "signature": "0x877005ef02509214e9ede55f546c2b003c0209b7d885ea680d76369fc415180ef4fbbce332fce18608d3533b8d6d284603e52bc79193b0b2128c624332fe1bb1d1e1956361333e0ab171f1bdeee927a169d2ab78498189a9e8f4036cb47b77cf" + }, + { + "message": { + "validator_index": "932659", + "from_bls_pubkey": "0x8af5874a9623513bbb3200f80c2679f001ca294967e33f1e201f6720e30f3c8ab69492f3dab696b485436280bd5da4b3", + "to_execution_address": "0x5999d9423046d981599d9dda377dbeeeaa4f357c" + }, + "signature": "0xb21c09e06746c9cafbb504cf0aced08a807b87f62d57b526d28277802395a420321c8510b91b5e835a9fa47e6cc27d240d0991f1a05798ec502acd18dd8566ae675a05579e71bc8ba327ffb5f92c66c1f58ed89bf2804863cf50b958e79add78" + }, + { + "message": { + "validator_index": "1852932", + "from_bls_pubkey": "0x95e6bd6d5246d58b9d56e43c1490b8dfabe87ffc399721bd63de8a38a7a6bcab8399085f3ed777a668f857f591154b73", + "to_execution_address": "0xe2fd11426e5181a7eb81549e52a9782b7fb613e0" + }, + "signature": "0xb33229dc7bb509bee6290ece9d436db0477fc49ec3cc26e1e298eb72d62d0b4d28e72b271c0c3a9b9f86c44c883086680dc51747dd535a7b0b693302eadd8bf44f802fac281dc91025509a5c6df8bbe7455a3f30d32b2cc27c2322c7f00212d0" + }, + { + "message": { + "validator_index": "1468183", + "from_bls_pubkey": "0x98b245d4ae533c7648fd14a7858d17a792e7919a81c31f1db0dd1c0beedaf0fe7c7fc60be0b446238fd5e5c94220a538", + "to_execution_address": "0xa148d741ae453a587f1f5d509701462ebdd40994" + }, + "signature": "0xb6df5347cf18c72adf3ee1e2e5e942d8b3b7ab160b1f66d4991bab95e7050f302d723406d3410b9275700b3b998f2cd517c4da35e0294235f656d5c53cabc553f02b6a8f0e14a74571029f380c52a935c0230f4507ac486e4cf01ede4d04270f" + }, + { + "message": { + "validator_index": "2544439", + "from_bls_pubkey": "0x9866c028838d222cfed5b1ff8215618a8d6a81c3e96a34759e78172fd2d18521fdf686d1601a860a38d3c1fd8c9e22af", + "to_execution_address": "0xc78acb41eedcf8e16aa52ba73e136fc8cada07b8" + }, + "signature": "0x98ffde69b4d92a4510b5d42ae9bcc05315ed0a20fab2ff6fc8e416678f150d7bfb961da6774e86213ee711a2b065c3d300a13fcf630d7f303c59d848ec47905d2b439e7bb4f3348b6ddc448aa00f7c6eb6f64513182a3d335e2753f66cbec83e" + }, + { + "message": { + "validator_index": "2315672", + "from_bls_pubkey": "0x84768946243cfa8d15223bd7222c94a5ce4a610b7aea979ac29d5b6f30e721213ed5b3cef3b4d2e700251be6a3d4dbfa", + "to_execution_address": "0x23b34c422f5dc8f657e44bec0e51ab2840981d2c" + }, + "signature": "0xb9014738ce2ebfe44a8255a53e34b604f223702435a966b81276bd7967cc1e172a4dbace09be70a1f73b300d83a7a8ec161cdc911b167a8a6489def11edca95a3587eab704e98325ce29eb4f86a477755421b480ca39020c82f07e4977d9e859" + }, + { + "message": { + "validator_index": "391928", + "from_bls_pubkey": "0x8b37bcb9abb306bad986453fe618bd0161b29c9f5f1eee2aa91f44ad2ecf75604c38975532425ca87de0e7cdf3cbe44e", + "to_execution_address": "0x49f540426ff48680416a1a43b562d4c24d9e1b50" + }, + "signature": "0x954da68af7adf486693e9213a63a082fcf1b1ed99c320314b73e64c322470329df27c891348c17b92dc7972dbc7d9b4215c7746c756c1aa2194c7217ab902459290981a0905683fa8563a2a7241f2bc3a3d6e4fca48d9fce1c6c322c4835dc1b" + } + ], + "blob_kzg_commitments": [ + "0x83582f424fd7244f213350c530fd112a5fa71806352876480227941a471efbcb4c76127b24d689436e978f5ff3327e62", + "0x96792942ef2204941676b7f0048626f766aa1798ecf09e0230a8d7e2217fb256e395d8d91f376a31b5afd20bbafae148", + "0x594150410d114a888823a4369a4c1e9b4d1af3b146f383eace5399d4b17e3363cc267b8c513bd892003285f184da4d95", + "0x6c624a41ad5c29cd7d660b626ed53268531df243fdbbaca4fbd4dc9c8cdfeaed644641eb4c9cb880484ac89d4ba2b17b", + "0x32ff5b41cd798bfe9d9dd5dff33af5004014f58dda61327672511244fcbcc44d9de7eece5c7917b77201ff98f64a86c8", + "0x452056416dc56a4392e03c0bc7c309ce4717f41f902a5b30a0d2550cd71d7cd83507b52d57daf7a4b9194245bd12eaae", + "0xa5c538418d3fc79b5d2f41e4e96f70cf6626eff9201627d38558a7f51b02118e2ba593073bbf594a1d9391a2a1f9dc2e", + "0xb8e632412d8ba6e05272a80fbcf8849c6c29ee8bd6de4f8db2d9eabdf562c818c2c4596635203a3864abd44e68c14015", + "0x7f8344414da8081272a9728d415e47355920f1d5b384d55e295620656640a278fc65074a46fd986e8f620b4a126a1562", + "0x92a43e41edf3e75667ecd9b815e75b026023f067694dfe1857d7632d40a159039385cda8415e795cd67a4ef6da317948", + "0xf14921410d6e44af323bde913793c2037f32eb41f938cabb3c5db5168485eeb88923ac822543db013af49d53be186cc8" + ], + "execution_requests": { + "deposits": [ + { + "pubkey": "0xb8fa03e47468016f15b89212a91f203194684e0cbbac07b6cd428fc7e10cb7d8a363985b46972eedd7bc434fc701c4b3", + "withdrawal_credentials": "0x0100000000000000000000003ece09418d9cc1c206477b3f86b61438983ee789", + "amount": "4684851168694822957", + "signature": "0xa529495633ab9ab138c0756646074fc7753fafbb44389490ddd46048f29267f6b85e46abbc1fe71c42fc98513ed0f6f800ebc9eaa04b484e29af7d7bb0c38b5e088435aee8583a812545b3057c184a4634957604ec0647d1fa81da2d15a5f198", + "index": "4688156139423158509" + }, + { + "pubkey": "0xb8a7fcd7c58854073db5f088cddf200b04864b6980925343c0d0b3238d5ce3880197ba175c59b61aade73eb79a74cb28", + "withdrawal_credentials": "0x01000000000000000000000001eeb941cebf96b04a6e6129b9adac2fdce3046e", + "amount": "4734425686670183278", + "signature": "0x94d7e47981799407b6455afd50007fd6c7736bc24b685c668e8af371e8e917d974e93874db6532a4ae61f4f6deea97bd12c425def40e2d7d3e03f647ad4028145163fb47650087a96647e67c495a101275b8b3fe37498b0b65772b420dd2f400", + "index": "4724510778780143918" + } + ], + "withdrawals": [ + { + "source_address": "0xc0387f410db44f61de0b6adbfd057a321b02fb21", + "validator_pubkey": "0x83feea64397a7a9d3fbac0b9a16ccbfd63c4d4fa5d0fd8bbfa13739148e752ce1e9b1e01654b56cb56a196fd8d64db3f", + "amount": "4722858299858427086" + } + ], + "consolidations": [ + { + "source_address": "0x1fde61412d2eacb9a85a6eb41fb2e0333a11f6fb", + "source_pubkey": "0xadd399d4422421f5e4a3457fa7c9dad6af725f7cf4d3f44c2b8026ff8224308fcb7edbcd677a1835ecff50b3960727b5", + "target_pubkey": "0x85808a97e324987cd03bfc33e49aaa6cbc8a5cb66fb44111b0d8bc8c6b7c810638e6a6ac88d640b3492a684c19053f61" + } + ] + } + } + }, + "kzg_proofs": [ + "0x28384a4676f60227a8611c6c3751b6c4018ac9f0b6d0f11d02d460139565c2cd4c5f8a360707a6efa09da5ecad82b94a", + "0x87dd2c4696705f7f73b0204559fd1cc62099c4ca46bcbdc0e659b2fcd949578342fd6810ebeb07950517f5499169acca", + "0x9afe264636bc3ec468f387702d863193269cc35cfc84e67a14dbf5c4b3aa0e0ed91c2f6fe64ce8824c2f38f6583110b1", + "0x619b384656d9a0f5882a52eeb2ebf32b1393c6a6d92a6c4c8b572b6c2488e86d13bedc52f62947b976e66ef102dae4fd", + "0x74bc3246f624803a7d6db919857408f91a96c5388ff39406b9d86e34ffe89ff8aadda2b1f18a27a7bdfeb19dc9a148e4", + "0x713fd146172bf3f6a05dd5853306de577144e0d254c84764e5385015f6b14857ad88bdb287507d903a6f9e72c78fc297", + "0x8460cb46b776d23b95a03cb1078ff2247747df640a91701e13ba93ddd11200e245a8831181b15d7e8287e11e8e57267e", + "0x4afddc46d793346db6d7062f8cf4b4bd653ee2aee736f6ef8936c98442f0d9417e4931f5928ebcb4ac3e181a3900fbca", + "0x5d1ed74677df13b2ab1a6e5a607dc98a6b41e1409eff1eaab7b70c4d1c5191cc1569f7538cef9ca2f3565bc600c85eb1", + "0xbdc3b9469759700a756972338229308c8a50dc1a2debea4c9c3d5e36603526820b07d62d71d4fe4757d0aa23e4ae5131", + "0xd0e4b34637a54f4f6aacd95e55b244599053dbace4b31307cabea1fe3a96dd0ca3269c8c6b35df359ee8edcfab76b517" + ], + "blobs": [ + "0xa250734616e5e744f48c493c6d932629d574d0f2b953d406c14b88999cbfbe0227821f9f2e60836eaef3cf363a0cfffddb3e68676607d6c52dfc486041318c062dab838a88fe321c055648202e744d6197c01d58e03acc793186ff781cf3c0f650617d201785a0de080b592e0d0de1bd143c5dd9a58b26409d6f53158b7b87f12aa888ce822872f568b16ff66ff1ef93a3bd9b3e23ce7b6125dced420053c57bdf2d76d4a44f3de9fcffdc623fdb410955a0e4e84178d68ee1e5b1da80c29b919297fcc50a261fc73d266a343c3a7d408122e372d7db3323cd8577a025d2df6beddd760b78fee43ecabc09f07b9a903b440ada473131c08e4a0c0b8b9e9723c49eb961946585ee57e64586aae35a72d2fc593b2f907199789b2973a2aad42a3ad41f6aee7ac3330cf53d50beafb3b074cd14d21aa90123336986bfe0a0e5e43ec6ce1ebc16f018dc03bccd19f00c8c011c13b091242c34d640ece107ebff45922cea9616cd13fa583ca2cd7e09a595ff16e751661e6cabb110fe536d86c099f2c4a79fbde47a98b7755e00be31870ce22ad1aa02a78730d2ac808b52840a2915ce0b431ad7f7d3b6a23a98b3f4d172d78bc40a79457a2f014e337f7f8a354d6191b5b9ffd4f5598a5e3d738cb34d15d2af7b10b5702f56001138be7a538c4a30d4bb19c73d5b3404669a70a51f537f18d29c199c130d1fc0760cdce82b1b8c85659954da2a3c62eb1eb3d328c20115b174eee2a8114e32f8e011335375ce1a4c96295603e55ce4480aa7d66776c64d69d79b4a92be2ca8d718a63fd426e16927bab456dc6c84e7775674ced0eb31490e828966d962dd757ac9cb15ee479bd2cead0cb28ef29ef6f04fa8824c261fb8a9c0b960afba588f700563b31d766059bc4ab9d5a55eb05e1be89f9abffc29543b22c1cb7f77f687eabef13094650e96b0f234181cca962eeb365842679b755f74f94a6190bcd7bb0e4efc12dd5aabd92e0b398bef059d7cb5f4ce68ca02c3e66fddad5c93a4214c91f0ed3d1fae64eb9d7f1a1b7d12dddb6f00f3390384d7bf3f2990e3bdb90778e844914e144eddf62a39368d98a7722b83dc24b6364a337e6b7c9c2ef07ea61c5ecf1859c83dcc85e5ac6d2fd8af7d29752e47892acd17d82b394664c1e7ad65ce78b750b210eb9ecc4bb34ad3c8f473ef405f830b5fde3542089e57cddcdbf81a0dc999bb703464ae12a7aa22c647e11580c554a1a39e65c953369d76ba462639bc8a885b9c72caccfc42ccca2ed25ab101e66f5e1125ad41ca17a86bd177e7489a63ce01e41d44338a978557bc1da36ff99032f57439b467dfc5e0a1e755b75120bd17a92f8b798a43983859ddf4b15b41dbb85d6b35011b4b53e825b3df8c19a86b5c91766a68002ef8e223364590bdd88efb81ebea01b68786791463b68209f4a6a4cf4795848c59169da81bd2ddc3612b1c18bbdadabe540e9a4b1778f53aa8924497432db47056fa590218b76ab4a076008df6ba76c533c60de863ea2297cb56d0de9f0a4159b960fad66cba8ee4009d9f438d4d9098ee0a3e6fd1f4936a4ac84a49a77a19e79bd704fe896f286510e2a2d7c386b0b80d1f079a5d6bdbec75a1500a374efac01aeb94f696296e2101e13b84af035b15629f1d11f7a87304804a42d240385c81d6615396edbdfa2a2a5d524abdd0e2ad7e07fe0f04fac4fd0332aead497c3ef8768989039d16c01085a26bf32d80a1a4394698cfded69e037bb57d29ebec28412193a17ce994c9692f76ed9893908ab02e6229ce4feeade6c799a6fb543aff1e0600a6a7c643f82feb969ee95523559e3c2ef5851a00b928ab1363e6c5907fe8d41d922461da2222a0cd86013003b6bf060ed2e87287ae4f5060328a14878611429385e5978e4328d68d904ab4fa63bc74cab8028135cd3bc2ed23612b5d720688fc2c607cb79d9f3e268e86c37ae0353076ca79e33b719b71132f2c878a3fa0e497f103d53f0588278184d516913e142a627e3e2867509eb15a99b1ba9c38f11702c2809de8b1c609755d45b82e621f1522eaa255092fb93a57adc9e965538be5028652845b4816fea4633a89be71bde7a0553c63b457a2a80f445d4e7b95aa99698fb56b0d03c744f129cabc0b744c5d458d66bfc45faefcf5e227b7031adf7ef999a0e9f02425bc77c0f4597854927426a4fcc9bb025c197070c505d692eb67662ca1c9f81f376e245982bc83c72bf14f18df556a1e2d48f0c0d1aee75e8e28616c7f8a6a198803d2bd2d14a1c9b7db168b2b2deb19e2b49d7ea63c0b90d41ab4b75ede00b6de49fa39aee55db2bafb7d7f9e8c6d41ccef8c2d92ccfe79679b6f94a82bde5713b3f6d92586d815d963aad073a4cfe0326b884e3990caa4fe8c26ca6f0d4f38b4d7d02173a486ee17e467d23e190927b60269e2304d6f3cc1d13ab621d25c07c9eea29de7bd4bc94496bd4d9f85651c326ffecfc7dee457ebd5392d4cfc2ffbd25788edeea6dfed855492cb6cf28e35e3d387ee62af68b17c03497bf6c3427919141e2f440685bd573d61dfed63684d7531bcb6c5421caa0f4ea2558c9063c36e4b93e66dd80fc2e935fe63f54bb80f35f162dc1faef3b238aa20cfa1838752dbc649c95aed3b27e3616adc4b13a31ed3617c52be1bf474f790dca1e7ef6cc90974060c2468539813afb86a9f99f57c072ffa7bcc47c252d47ed85f7fd80da9e0e6b1162c4025bc7a4c020f51ac3f07ebf0078ba804811d3e75bd5c7f7ce23072d2a8bf0ac14bc95d2b6b20da91be050c9de350ecb7ff169d79a762dec7f3144e949c70fa0bc3ecd7853632318117211a11460072db389b591502842fddbdf34ba803d7c392cf7c6f53ebd68928e243858c5ba44a7c200bc6d4749c8e94e2b518311a02789c3432bfd688f30628033392334c4ed2bdc2d274c9df52def7ab412c767210a3c6bae12f10cb947b94d6e6368d543bcc52b2a4040868ae00c45e2c505f15cf0380067014487f7822752aef87076e75b706c744d62a949003ef5c538bfc32ec3e8cbef9368ae8bc4849096c9f7187b05a372c7c70cd78a6521d188719fe629f7683026a0b253468447e5465ad804d66dc55bf109012f5a2e02ad4b1113c75e9295031f9482bfeb9b3fc2e8b504a83729a67bed9021effd3e1a339248030d2cd40b2ff4da1f4e578ee9837a96dcceab15a85c64b76990065224db8f105776b27b5bede3aa99b32aec6a293567b67bd655c5f2216533243e03a9cb98681553cfbd95cb251cc7f87813258c9ac9e5fb45d48b468ab98186dc1e53da3e2df2f5a6addc5d7c751c4a8263d706a0f055ba12afcdc6acf6c820d2b818ca91ff90e95a5c30b7c640ed04f0fa9928e4e9ee896dbb23f7384bc293911581e72324623a884c39142735cce0fd301dc1daeb9f6a0071cdcd3f1dcc9366ba639860b513dfaa29f8f3bf5572e4a7f785deb9b0f590d2688c3c41d94a43b3e6c579584fb54ee23518f2a8a2a233341c99a9f1e714944776f9b929452fe37930ba787c31c02c4801bf31ccc6724e69b950b7347ade230003f1d1d57b0a2b3a95d8c60fd7f050802eb6d5017186b8a9c129fb8303ca5395a8596a5aa705bbaf9631cf1c202bf94c6b18469f8147987bea6343853e6f6c8594f69eda3697cd8d6f9a25a416cb6227a5116fabac790c9711720593cee9c65cdc28ba487ad5927c6f31c61209a14691d82d057d22f37167532ab1cef39435bd7cb06285a3dcc69d9e9bd8de8ca27ce8110b8c21654ba70767392e87998fdf2a3ff7690385db138a1826c211b21e2a75ac1a4db10e7a88eab0286218b87bd3b7ead8f10555c693f887444d765f55b0c0620c06acdf3535c548dab950eccdb62857595a3b0435b88a99b12779c314b326f820c76f3dd539159e519b71dc8939c84a2e20bec676fd97372da3762b99161ac95dca716dd035579095fa6ccb7859caff26321ca4b9120acf353f2acd8af733ad95605806003f3b333fb0c9ee5369e45711b703d9a34f0a06c66238ccb4ce4f788f7f4e675b49feacfe3c7a7768efd5c81a0261b40cc0ba10eb2beddb5b07141980f95d462bf4ce2c8ff61b2a5595f59409954cdd65304071f0bd1dacc4b4dd28a4062ab1d8f8d1c6eac5edd23c669cef446799ea2c5e46b7df7f2a5072edc492a032e8d38d28b38513a5492dceb0cd154f8617860a3eed2d7308b4567900779512365991dfc0bcedd6fd6d0893e5bf90c945830007466e04c25e1b3c94a1dd9483fa63d31c381f41a03311d5d1df2961714a2ba3140706d6c78ffee465c40ce794ca8928ca434e8f922f29b8048f2d921064ddf5c13fc0a7f8166324a666997901171ff865d747fd1ed44245b6188f2720b504a3480c245bdc98ec4f42ff70d7faadb9c3371dd612af91b53517305698759f810961b51bda7903b02db22cf9634066f134ca7ad33ccce2be934688730d93aa806d5fe266001499d91d7cc0de7496984edbf8b28271069b5fdb29231361b8be57ad745e15e051844e78360477e51ebbd9744ec0ba6d9ba20d0d823f56e853eb83ab19277a8525be286e03358f8f7f6cc89cf5c14053a27674236b4e9a5acd858ef7f898801af1edfa9da3fc598a1cb8851d9b39173b0074e463cc2358dc7f32e345a55b60834a5b835a8a4acb1bcfe547aa58d0b992b2871c7342c87d330bd1ffe122213bab0e6362c662346c892f6d78a90c7f5926e4a1ddc98b71b406c782c2e6ca09d430a0c6eff00a1f398fc6e0193920675443fa2fa46998a5917f3f860691487cd3c2ff6907331aae15cfff76004ba30332ad058879364b2f74992281290750d3093c0b593f843ec37f30374ccce5ff043242c096257159fb63033856c6eea7114beeb119ea573b7d9cf0a9c56fb3a3619e8064564623aa5a8d67da152806b74480b12054e40dd84b6d1f97b953f47b5870c39128de7997c0a14e2a18be223dbe416c13fcaf9716baa62e3f13843a764dbe15a67bbe827c1abfb3ac041cba8ef29c030a1a4cbdcabee82f031f19148fefb8765b2386f2773e75c6ecad023bffc6b2df3c38c9e00261aa26944a5731482a1f4fd53135b15762c5c20a1e41db4d50fb1c36ed2a490e2b1673484f924e6b398db111e49d34a131664d1bce7dd4e4e97a16922b892478949cdfe21262a549817abbaddc1a03c7614f182a3c1944ac1bd767491959e6dea332c3a9f1db697fd210eefcc19fedb2fa5f94d74e5a2198aa4bd2e22ca72b076c320fb56036082f1fda6671b3ca6e4b21bf52b61b09e6b8b0fb6856f7f7bcbc31a65cdf1f1a07f46b8f33f70cd2bd3d7f9c29130185891a9b1aacbc73b3a220d8d058df011d41415b98e486266e3d55ad8f461baa933634c89562bad448939b08e90602600b32f37683db4ff9dea495cdf3c2a6cd776bfe34ce95a56d1f8efaf3524023b8488d8cce17ec547e4153de0ce0296c9975f0f5ee77c9d2f0db070304a7b9f2a97938ab8ba8c66ae2ccffc4f97617ee5532183b2040e6a56ea7b1ffee65bbbc4b9548a21d5ff219e682ff1f5810f06ec2521de59ae491f1cc4f52706aa09a52c9bbf0ef3448bc6f3d1dce281e9f2bd99670bbecff7c10389d1ebecda749d4c5a0f8bf75c447f1c7d057851898265e5bf909c4016bb5b72d867755031bd6475985519185038067881eda1af04346877c46537cd3365077bf60c5db0656daa8907afb2d306c54d9f397ce430ce7f49dc2176a290afd21670075aca7df3548b9d1b450ce578f20d704f360855277b80c5e3ea86ea163cc2d0e2ad558aff28b8801b6055b0e76020ec668da0833457beef2da58aa57b32aec190afef7fcd144719a2ed446c568d19d9910ad9d97d797845b4ac1f54f2ab84ccd0a0467c49daf6a32157e1c30a2616ebda48cdc36d246d2241ee62951520f3ef96809373808285e05aa8fc4f106f2e87bdbff519d6afe446334aa45680b49f2188fdf8d1259efca2e6059f6cb7b64186aa5d73426a51b15ffaf2715f5579e7438038decd0d1615bdb173d97b11da0b0586f2434543752fe69d1b4197b9b577390d57ef00b38b14b579ebba9c77d9b63a2a6aa9d95ba6c88135f60d7d55441431f1e5ad28b549c64952c3613a027d5a83e3d64d321507bb0270028d3ad6ff1c7ca40bbb6254c471552464639c13091c48f04beeb4b35927840facc7956d3fa442d08a45d4f8a9f03b2b5004cfcb02e032088896d9dd98a74168393ec54f632830d394456faa8346b27779face9404c027d16fb7242020f032e409e9d3367142c4406c707399e55b586ae8b3e196a2b6d26a58a28e6c643d8e8224b3d3dec0db4a5ed70d5c962fbf4f3db25b68425f3334e22133b2963c90e85316489689b8bc9fa762192797dd8cb47a3f1749cbaf887bbe21b3cbd4b9fac8fc204f057c9986c94a7359453768e19f83e2353fa81066aa77dd3ee843907f2a37b96d7c805c6a28aa29560e34b576250abe4c00142ad0f0fa9438a5650f46965255abb8619e2e6ddd135a46f0174f9097fb78298e04496d269d91869baa2436ae8b100a729c56cd2eb0e61ff2e18ffc06524255594d1a01518af439af11c47d41819b7508417cf19cbf46256283ed4e06dcd78ffdaaf334c42a1a144dd9dcce14a8e35efa3f2feb596828a2903b4b749b3ea19cc4214fbe3a51d3b485b351cbc6cd06222843eb174b2869786d5970c69c1f5e253e884d12656f91054b3828de087ab9bff126f7368e977dc6100cf56c35ec4df8be0bfd96690078b5f73da2e21f9d945ebb463f20effa1e6932c3c89367ef19f0dac43b705fc340edc6c1f9b6668efaed6ed97c7a73a6282db21ff45a83b87bfdee5ba899d4c57c34576081f6c95a2da8f95d3c87ce2fcf7913747875b3d1d90f9abd52fb473efc682e5e2b0d4a63708acc17959bed709b56f9d46e8771c6544740df1e6bae3667383440b9547f4b4f1b5d9ba3246d5ad3f3b0b9c8750e7afeef87930b19f10651c335f415f212386400a36a192721963a47a52c54042cce3543db6ecfb86e9f50f060899cb7405d37f69ea173018ff954e2ea8be550449960d1eabb7dd774a3e77ccb784d675bdd11b6cdb2aad874c894e2b6d9c8f422ed7dc328802530c8534209ed7d344e48f7dd36b6336d7f3cc71ebfe39cdcd764ad4ad94c909c7e23491a3322ff805802856e7f61b937d88a1d0ec36f51f80afe75f225d1b4e843b1fe45532b06136c15cac7f1ddc4dbaab6086236fb688051b8d1861276def82b932cbf98abc87e0d23924390babf47a64a5eff924fdb495caec0b61abe6aa0485ef2290babc0c811639faa3e8e08a2cf85de6fa6d4462f1acf8e800d717806229ad1267616555c651d699d6a710f09f0d856492c18a1f9ec60fad758194cfbb04578f95d3e12ffbe2f2ae6d780828aaa6b9466404e777e0376aa7a0c86c4e5b34d5b4ee55572c26b8b3f8e865d8a23c499265c03cbbe15947ff56ccd4bdf3a73192129fbf535363fb6d6d0c9ad16dccf6ff1d2ee8a35c934baf7d8e83e4db1f601dc453f994c5d194bec44b0993a4fe13190b2a2a952df18baf94912fc16a3e0d11477ca214d2762769ad8ce4e993220d6874567eac6a38de7267e1e62514fa14ba5ca6f527e70507ab777597de2ae178749c13b338d8faafc93483915e2ed77a1627f1a546fcad02cc47735db5e9b642405dc0b0e8b32cb8a953daafb53c7c3ff9715a432208f66752a235ba28ceef5bf4b5a922ac1801374662339c0bbc27bff5004dd5dba0070d3cbfd6c0fccf56a1e82be81d80b65f1711e61a852ac1b3f3274dd892ad977ccd8df9ce4e21b263b3d2384c78e73bb488ef8e588663b32569eadeac54f62e201aa222c96e1e5973bcad29021680d15b9a9e942e0f115a7263b298d936aee14a58253fa9454db7fc6a83fc5c8a26be736f786f0b6afa43512751dea617ac1b0f62d03a7b48ae136416cd6d7a61f9e09047e3cfba99f40fe73ad25aef66453a05c8eb2cbfb530ea3fde343e368e5c2a0ed9cd38f0884773274b86cf1796f686c9e1a413a5e85b4137c8ac752c39f26de977e4922db666055b65ea78659c8b9eb905aab2afe7880e2e2145616671af5308aaaf5286f0f00827adcde3e58ff2d0f2c6c19f20489a46b19e88b487bc879cda07600a6a78fbd69a6630bec6488a1ccdb833d1ddd9a152f54a16fb0e940f0ab828e29f95fb9e6fc4e977e2cc43c3f6a3b6302083990d72c088c04c96fbce460bd72deb3a3a344efc7101e49afd568ac50e5894cdad459ce2b2dad383199247132f5a0695b2ac08af2dc6db0c9752fa8ca797ba37fd3e3ee63ba5de27bda3e0394bfbdb6536c168281fb6ad8b5205c3cbe9fa20fb87e11d53b9e9efa88a69410c9cc52f7304b9db52be23591a13d0873d86ddd6e9bcb5f2fcff85eca49c6f97733eca568f7f1171c54f98c12d919c64d050c5bca9132c9655d199709ba28e593fc41cbae4c479b41811d174e4f6459be173b2a00643072d2150abbfbc45e3136bfc39bf87c7c820e1b1e7e5091b1ffcd15cb17a0c9c765b30c04fdb785206d2b20bffb3b9b8473c8494259bbc9fa48356a21dd1589fc61e7b0f55f478ec5bba728547144c996737f7dc0e7a1501b80e662b79e7a0858b4c74a029a82ecce453f80f50a8ed1ad0b5919469b52c352a34c129abaa7de6826b104ffc6d9d65c394cf6ea9526c2097d6bfa7472d7c6c6ec40dfede6648d3efa0dbef9ea6f46b55ae424ce240f25ab051b165f233767fdeaf8cd65a0cb0eedf6f271ad443447c324c05912e6d7c7dc342b380f16c17c63296fd2cce839491085a14a0e70e3719479b55b794a70c1a64ff6fc012fee9fca68084b7f556ece44db8093c2581ad7dbe2a7159a7b658a59c57c80a569a0fbe5677718f06da783a93a609ba6fce49d6e6210aa6222098908b43edfe142cbbccb3b21a6245ae0f1653b144146fe72bbc6d27ef48f7d3a680a7d11928cf3cef57a38849c35e184062129c1546607dc7482d7b60835c8cbec796963e2f47a108b526963e5d1b736fe8a6f64307cfb1dcfe45d4ad13df0bdc2b65e9f30597998259699b81fb91e7e0cd1166fea32fabeac52add389e19ccce8e3a2a28a6fdac237efecae9f43d17f142c50834de931bd1bd6073173328504f667b1761ce04f49d7e807289dd94312705212a7503182b6419fda63ca92165e726e1fc159c89b328f73c88d417832cc5303c67d2352ee71677e7ef5bc3a6b96e067909b5a37ab7053628ef2db327fe6d77e025b02c7df34e06a8803d0b590c0e484bac5cab380376fef13c2a0ac600b0f095a40eebe388eecfca955f1631e49283d7b63f6b3ee569e34d68400a1e06cdd6d36181599368143f4211f34f71b6639cdfbb8f325222181b40d78cf5daabc7377c5bf2e6f243aa0b2bc4d0dfa372da9b3e596a5e8fca741d136fc2d4229df6a79f5b1538bddb68dbd6488bd464eca1833a7685653405b90532a1c6046f7737ec68165daec1f0dad40433f798b3e90bbd3c716f8ad875115e7c5ae88739b8dcd390fb098c4ae38de88706fc9cd12de10de4c2fa9b212c6129d24d58a6698325aaf58c07efa449b068734fc91e475123ee42d06fc1460953c6a67d72ad1ca8139886b81e1a85798ab54d7bf24fa79077e38d9bfa0f897c2b7a40da2e5fa1794872af478f29da8f63aa901b6ca11afd09071c8777f75c64fcc89dd65dc396c75bb7e9a72d3dba8f1a564ade1367b89b5f3e924f50319e6f212b85c1ca07e09cf68716e8a6c1aab24e706a6d0686018a2ee417c9f5863ba71cfb5d8f29ec8251dd6756468ab44e6b9263799de9e3b0c8831db84a5924a7aaeb76affdd73afd9890ffde1be1af747877340b7991a5d0d6ad15ff2875db44aaf9ea107d85edb5ec747045a5ed1061703738fe3eaa369620bf2375a7a8800892a5a8b698bba8a9e836987f96f90f8653afd3775e3e9d6e67d4e12284cf47de561c03c276c5a0e104fb50664a988875533556d87521a7151082064a2cbc4f04d56cb2ca5815a4de7102907808ba6232765910cda834bd8ca1e98e5fed46412a89ec5b7126310409362379353fe756d1f30d31242ca9dffd3673f0e877fe0105c6be49e62287b748c6c06b7f0dba5bc387f1f21aab74caf7c07119fcc1a5509af80d984d351c68c731e0705723cf49ba5fd05ffa2244202eaaa161ceeedba94ed31b77208e831bc7fdc36100795d449238ac71684691fe92c0e9f4bebea183766a7f754b156f8503dfcc6f310fc70371cd257f41b6b1ba668f6e5b709c846f133f9977ac3c398239caa36cb4e24c08e9a3e69ccf05c865249da29304931beb1d8e8fe1842e542284e1525381ae149a70a9dadf4105b3e58cab2b849e803a0dca743d6c69697ffe575f142e1b345dc90cd2d9965733de2f84cae72d9f8c5fecb003815007ab697f3a4b9d3ed9fb1e38e9b02413ee8461ac5febf9e7b04ccb34a592739a76bfa287f2a3d208a125c5095b6d660419991e0279045b20dc1be801b18bf117ebbdcceccb15a15696c30f4d2ecca2f551a5b4dda3a3dda35d57203713f6294ae21c4c3af30000b40c70d0c226baf6e020a920d6d18c6a9d7ac440e75e72de242e7fbe41226ca584792bb37985fc505f8414754c5c8e44ea05d6a4bc588220bac9e37927128dceebc3e257cfb6b229b8897e4c99768c6137f9bedadf0163c203e6ca57760c4cca25ffcae0b45e81fc6292c4bb6f1d7fbbf26bd3f17fbea82d5b2ded0ef02abbe41f685b57825f57fe7f54d3b65b15067a28dd099c4df7d5f4ca357d850933001c2cafd8aa67e5e323929e8a78e0c4dd6a970bf9a8b08f3ba9d1104b7a6e01ad21f28da8245e64de35ba983d75e09be81f7cc83d5a9d772b662e164a512cabf1a8ae2e1dee628cdbd8379d774940492eec3666c41ef225503ca5b67d245c7734285cb38afbdc2180c6945e9f00c2c8be8434471be57af1b26bfaa0df753614870933f7cf7f168c29f4cdabdd8010466917831981fbcbc3c2e4860a78668b51ad6c298efaa037fa32bb3aa99002ce54fbe7a3d696d1f7abdac85ef997dbff4f1de3bbab8511ba39ff9f54dd1a6fb7bad1ddf3b7352418d9cf3af30b910a1e5ad5a8a882c694e2137a66afa29f0164431df4542e0e38a8e0ce803e02fbf05610501e66c2bd1cd7de9cbae12ca5f5a1542d8052d1a381f897ef1d01ef888f6d6d4e52fd38dd8acee67c89796b92ca994b15e281b7f7dd57f7ccfc0efe34bb3c5bcb8b3afa0ba6fdd970562acf296f5bec25398ef258326e5536001bb3589274510eafcf3b19fd86a6570fe1e029e0b6380197cd0b2e5a32490a22fcdc8153c7d130f391bad727ae76507c8da37bbd2a5636c2fab3b526317457bc2d6c976222d8a1fb2a1c71d715a4aab7e736781ed7d4a5b37ac3c91e490290b3b6affeccc269666e4893d003fff219b1f9e3844d836bed7d7c99c4b5dd2819c8f81a27064cde54095d61daf37c46c4617b60729eaf08998a737c2bb0118da731df8c61fb49c32021912275310ccfd5e53395643e61ea1489cf2b6bcd50d910ded0e54e12fa10f9ca7cab33526edad54ef49cb9e1c08563c8e3a5de9cd5332923be78c3e72fe07e03810b74ecc32dea4902cc458754ae0262010b4bd8cfca08b0b0c29b5cb670d77e2f8c8e57859caa70bcd742b2253338a4cbe2becd3141225f6e9fc03c4a736e81a1b4398fc55abc59438980c1de724db974c0a59d615d77f954e32343c1bce4896176d5604cda93d9521b1c10c9ee3930b0be06df370f8e6a7ef10613635b06faa0cb929089ca0e8355eda8ba263bdaeab0e0cb7080ba0eb7ae4568026faf9c5492010d6704fafa1d569274d06f535430dac50fd72be53b4442921ad1585070fadfd2ea82eaa9c3eecdf94c970696d3f1200784d0cd5ff08d11f64b7cf82c2c1b54e1203342309424e0389e5a5a6d677936908a0f091d1e54e0af4f9c8b340cdeb45737e466571b1603ce4039be73d87ef0a091397a7e19e1a901db9686fb2e2ba1854a861cf00b98f92a1e5373d1f390a4bd6e7d9bfaede1740ce8bea1ea19e3c7f9cbb76f33307463507adca0b4d78455606b7dbf667098e094d9117be7d2b6e38c6ddac174b0ab6f666e67988e6fb619b5d8c545c07cf80bf8275ae617f37298499b565b78c7901cc6eb8b9409e2c034cd3dcb5773cf62d99d2856fadd15799a7f96c320158d4ae51099e8b9350fcc6e2a588c0bf26aab0b58258685a1333306bc16f955707c1e743ce4b1a35eaa97f967f5b9c20e0d4c993b4c848b8240d4c9daf79e5d1a275ae0303a315ac9eab22e9aabc3c7bd7507496ed484126468edd8f63c5e6b8629413192bd40cd66e396d1c5781e224fbfa3a872fce289c86df5a95696eb70c022679ae2813e760ff3114b9ec12d765b3ef3d11a1d56e228276378857587cffe09b1a10ed7e854fbf539208725b11faac7c7346c646ac57702ae946f92cd478f7036532b91e8b7b5e044d9aff2951947391f81849347ceb826c3c2f8d43769297d82529ee16420f9420d5c244016256dcb833e151bda32494bd5aaa10838b1a00163ab06d77970b358e7e171c82a25b40e524dc6f91765d25bb6f9e9c913f14bf7f32a58a4531c29a8a66f42fe4a12e87997ba911d9d383ad5d4af9d1e2c036e43f558989a3b45c59ef45f8ae2ea1500139f4cd8d840d973742b12d5677666b034a8004b1376c5546e7198710230ab512880c2fbb438a2e511962ae5f5ffa51072cb360ea34a1fccecdc246e90b7a47ada7569d19a8f8f44895dd75525238bcd3367209f2a623f59e3236a3cfe1d2629b1591458a337824bd7132806ced6731b828c81318e4b0b8963bc64a5078e1569a7b313c985533127a6ef34f826b9a6bb2c366b49046211012df4db1f2a48be944573ffb509983a1a8576569cbe77bda80f949c5548f889c7eb0c68d4d9225d2cdc432dcac85dfcd4c75bbd5be7dd81f85974c459294be514239ea5b2bb1813f8af60aa187f27f2314fce9a1ffd7ed92769c50d6ac1d18f6f11706d8bef98a504c23f7ee28d4e04474592f5f590062bce4a1f83ece0e72a6d75f1789e76ebd998df5bbca5cbfff661975f6a3cc8240dd890373e806461352c9f2963486159da469c576221ca880d2a4411d86ab35af676dae8260fecb533d4fcf1d65e1d15f6d68277f46c59caf67bb36fc26c6382480d6c1c4db333a6a7e1a8d2dea19dd5ae4189aee6ae47fac16648ec424a7fdc6850e6c2dacce783a81cb81f658afc4686e7b5cc5278c02ec64b65fec24e06a4e82f3acd9d0fe3583860848ea84142669653cb7baf73d619febd8f06850666c1eba5ae89e63edb85121e4a2460a54982f93be4286bc62a582d94fda68d6fe829f25437234293df235b893f789c9c475b3bbf5f3d639536d076f9bd51865bb24cbedd77e6e061bec4a0876d7ef64ce77161111fa3b97f07cd0832651bfb48600b0f04220c586defbc9a16954a9c3bd5624bcf5b6fae2cc98f8fe842324fcc07641414f3c4d563a57896573198290a9df415b895c2c8ae36dad5f02f8ca79ecd81da7dba35cc9fcee780db58108bb66325e7dccf884e3e1873d37804e00ec6942171d1db64d5460b1eaa4b3271cf78c195d27c5fad4a5ff97d6aba4281a1c451c3350b1393a12ec95350aeea6fb3a8bae9d53397aad6c678ed7f558be9650119e842481551040e4140d72c3898741ccbbb46b39cc8e392f48c8e397d3f4d6d5ddbe3073d317c24aecb8e4a99d7509eb8e2ed27a2eb0efe0d3be578c893a800a419b3dee16d99d6f5433bcb4279d57f72c305b8293bed7928e38c5ffc42022a46039ca2b715a7b110616296bb35931ca1a1cd09ed9e71c909b33b81884c21531b26d8b5abdd32a0eb428afee753f636a2bf36cb3f626509178a34d69bd80b705888ce6906e4b1da3da55a5717f01fc80060661d2e20ce584b031b54da284e9783a9f748f790be93d06c5b8fd3477cedd58b054a74b31b5e7ee99b89a5eeb90308c198653c47fc9dcf3db668acc23f10be142dcb15a0d7badf5d62d9caf2f147e9b159e7905db1bff2cf28463c57f40f6c9f50650184258b937c48363ecd6e3caf2d4f16f3dd2e1250195b9df9689da9b05b9d49835334fe619ce3c6659c0ef148ac5ec7833da41e4fe5300670fd0a2d499fcb906476ec89f1cc96c6ce1b62c7bcb91ac7da09505804e302ac91d3ec02511171ef2b98d110a700e3ecf8d0e13daecd284b0f18d1c2290f35ae4fe6c1ea681c4e1db0e26d8bab48a6f075828227830d57bffcce317971fe5879b0927ecf2db54d18722d3b201eb81d18b2eb05ac2de7dcb56c15fad9fdf8efd1c93121d34748433e78faa98c0d269caff464ac0180bcb64b3cc2e37d1ee84dc78a531e830f7a540d3742f65d43d62d2b1172edcaa75956605a2a13506e86d9887820047743db9a4972363590d1781f96992de3d641c35abe2d878c75e90db77202d827b81ae46014d8bb599b71f5e5e887ac8f2e84c693b0971a334d114de16a072778618265b6a036167acb3a508b973f01012a2496dd5b153d8674a399ee5be2e52af8a8dcce8bc5367ff1eb4d7d2578c4736dad3726db2bc1e6c5e1bb5a6b7c333021f9b03f937d5d2628c80530734a200fae92cd4a870b52cf8886a6af2bd006bce8669e30c8a410a8acc16cdca3989957f74602f61a40b7edffd377cb4c4f0722562d90b068a6fb78d468517217b006aecb3e94428ea6d299b09c095ab944b695fd4ee9fc00af43c68e00b3c25e90a1fe8d505e4be2598c4cc01cf24ec32835097289ded86e5a1c37c770ff183a2dc0c226845679bb4b91bb3c5a3cf5f97a7362c86b2d099d410830de9d311fe91b336cad42e4468707f1bb5ce71673db39a8742b5d56eae1d35f1c2aa3e53eb5cb5ac15ef03f985816b10ded0e4d598c74e663ff3c7f66e0c523c28f323f8b3a12cf9bc8ffc33840165495beb472ed30b09e64ed75c61f43cd1d12f72e0555486bfc77d418867ac6da93eff6832bd26a4e261df46dace52b6c8bbab994190e196796e99fd681f77e98999bf10dcab1be801fe257ab2ff0cd5394ed475fe11fdf3c26154f8b85214519edc36067b8e14f945939610ca939a0553f4c61543ed64d19ee5797d2d9fe61b58f7223a4dffc2a85ee36f35bc2feb4e3eed0284107e6344cb7fd4dc28d2020f1fc3e56a2f3aafaf8af82ed4ce63ddac466fec4e735e5b629cc7b5666d64b5bf614304b5e386b633760116dd8834c63a5ef74ba1d2fa42afac3173788395fce54385acb36922859ef3ceae991c71ee2d4f82cbead9da21dcbc5ee79824a40b7fd42628310a4222c488564211189812a0210c7e18bf0197d55c46eda43d39c7bff5e06c67f8bc63590a42617d0de7e32980f9575de79e5422384fe70b5a7b4bd760ea8dd0aae374babfa15dce2556854d25feae8a2ca69f911f08391c8a6867816fad47874d0e5501c94bce3fcfac11b19baabff844cdd1392abece5f16051c6995157637f0755a6cc1500ffdf9901329db0a2aff0fdad8c6879d910892a5215bb3ac9d9e51fea914d832c0d5946e0c938ca674fdc823b518de63f56c1e1b6148aedb629c6ab0bff4d83942023c59f17ffec285f362a7fe314cec6e94f1d07b18f4e40fd31ac8ec3ee0533ef84b96aaae14fe29aa8e155d766c06f6d371fa414cd89a13d89861d203b26f1e4fca519456bc388f6b2dcf0e39f01a897a78c93970f2667ff48705ea28f02293b4d61c0042af4ecd4b32db659bae19a98d8d441f5fe8f28a75d58cffaea8bb0df19538b1b88f485901347f46bb400eda952ebd61544ea60e8dbf17b048f69146fcc85c623aa78c914d314aab318581277b7216a2ce863808c2a71df240ad8bb821829d3e09d21135f5490f22e1a47f9c719c043742ccc81bf192ed8cb14e492235aa4f668461bfe7486e844c1473b3c9f56f2ead9bce490edd78519a09bc6007d747506f52fff3b23d47f75fec428945d957a141928e914a4fc5680be4645f2ec9badee15bdba48015d9d0a51f8cb4295fb25966ca60095dc8ac38232ee90a23535d4eb995aea5a397a26efb07f9c49168d4b843c842cd79c036e3f99d697cb5b63d30e79b5c714dd93a2e5301b8b01fb195a232b2eb04f5771ff0fa78004076b4e139d11b3e3a1796af6632182a5b781b78a443e34264cb57f39464aa1c973e20461ace0e5e207e18267133084928c40dbcf8b74d260c19e20574cc29b959a8858ca2acc4332b61b280d0828a5e9e32def36f85adaa77a03226dc99b1aab794dc08242bbea30b85c50afe61f4e6f0724fe84bd88a3fbd480f332d86c57d48a34da1a9805751ba115c6d5fa625b910391de0de8e0c612e9a88f0a724099f6dbe06b2bed3428bbd12516e703bc7cd86c1989c52bb9ac14b442ac19955e6c707901fe7c9c1d25c41f8083c399dd93ff046559d522451151799bb2487d383e9e5078ebe9eda148e3317ba47c05e93606b8ae47c75c541e9060e901eb2a70b1021d72aa4cc24bc9c442745f044a48ff8a651a378294b873044be67e51bb241f8cdf7c5d95e96dbf705c59d7fb6a74c108ee69575989b277164e7df7eeb276a510a214b9d349e70085df0c23c0936fad9bb9554147049c6ba866b7328f50f80e57056f63ed59cbdd0298c4794c1339896fc2e08a6ba2227d194500bb0f8c4bb216d599819a865742c4fe26a994b12659021897614fea380346d411f1e0f7669b9bb2feb9ec4c0b0fb411ec1617b5e9c8457fc1e0fa67f9ef1e50a6653aaa90f5da3a5f6e922ecc2c2e3d06bfde035851600e6660f571cd463eb1f167c7bb5e5bf15ca8489d119ca88b46ce20d71c7d025c828d6052816bf527916b67a8f459a65f670a674f9ea1eff56ca4a3d61da482256a763c2e8bbd915d0287dacf2d869f239af475be5f98d3bf9a66118fe49ceb674ccd1698b8edda712b443a9374385f76d63d4c4f553628f7321f30cae80a7650f031b8a7fc5f5d36dbd03e14e2ec8757ea9ecae67f83f45d63ee38e4b021ff0af3fee9f4dcbc1e60367e9383792bf903b66299e175cce4fae66c6a57ee471a36c753b1f0abe278d1b7df3093241002c37c0f052f7e9323380e50965c44f0ee5601cd05047f2f6ca7bee23234f5ecd6c0fa25a94c07b5bb3d76aac1061012298dab30397056c5a33724c40b157e10e5a203d25c38be21811d28b86f08fcd7836603b74ebc1671bcdbb4b222e59149814e482b926556409e0373f2314e216abb694b9d2a72ad3b34c6c4898b95318be61fea83f26283853bf12622889e3589c99c7b6bfeb32d1308efac0d57dd9613e820dacc3df9b0b2f7f2a344fc6cca049b9b0bfb7313538e578ccd47301bf36758fdfcc69cf887f427dfcdaec4c3c0ee8b270e50fe59513ecb6f7cc01895632e4d8980bb37863a8ca418fdc0ac3b25a5306703d020bdf217bea6f9025ea12c608fcacb1d143748d96a7fba50f08d24dcc442060ca509e54054b86314c72d8b482b049c80d0139add118a407f7052e4307e9f3edd11067522dd4715eeac2b4958a82f7a039c498779eaad9b41a41d4b08ab21a03ed203af7877092ef4cc53055b8f5c14b360a37d080211ec68a688d985d9eb1c7a67b3dd12eca445ef917f2b219ca2d22885a1f9198284937f668421406d71ee49d161ea322ab67499e97ebc0985da13efbd63607ac45966a23c4dcd4d7354306f177aee37d1727f293e5ee67b263a8ff576b5d72025408a1f82e7098922f045ebbdc543b778b3cbfec0d0be37c6da989278fec860e909e8414b879b650467221a102a40b340797ba15afc644fefb384288cb4dece87d8ea0f6f88698c55a79096ce609e56ad248110745eeecd21633561277b7c29a3415e5b713a63acc7699d2b709d810d621ac97047a611324a12933cc59ba1738d87928537f95b045eb9fbeae1109077608eb42ee9e0446eee6820d2f2b2f70ca4c8a9f7de4c89e47dbb912d6d00ff7a35e7aab20adbde4971cd95b3b1c3f460b6c32680f8dfebe9a8e8297ea0dac44f488a291e5732ea0d7cac8589ddfb686ee47cd02fc274f5e8925e11acd993904e948e45674d3af02eb606183e1e18f0ffd4377d1dae357dffd87a2ec7e862e827401e3808227ece61c67d81fb9a39f377f0ff79eff215d37f1a9bd622e9185bd4b198139644359fb9b0bf5b44e68a94777caca1523440a70297f19565311a2e6086506d0bca1bc44a103e78caaa9a2fa6bdf85469b56c12748387da4dbfed2e61dc37b36bfa9d69be6fae0372705d702035cf3252499430e29a30cae67e1fad59653e282fe2b4c296d0bdc07f691bc836bd25f0a3828da6a90c853d996ba0a84acf58f6ece78e7f093f75e95b3d3b596980d0532f8480c9529216e0e643deef426f5c5d733b254417e20013a0cbbb2c84b22d13ca5195f7dd5fb463992e43fdd8f118a40653b8f46ca72a69770669e98efa6a9aca7a8902349ef49ce28ba9b283549e550db67507997c31e0eda94cbfc411cdb6b28b43e1efc701b3f00e2af75fb11ef4ff1cbf12bdd57e8469ffc1dddced09b453994ef1567eb1a875e393a9600ea76ad15d15ffe109052aa58f882963ac968698d11024892ed80a2a39dfa120e6ab17c8a6feb6b1df222ebd43b68795c778aedc12a1f08f44de51206ac41a3db4309f1b52f043ea80b2c7a1d83434a294a3e48360a673b9f5ada5c5f0c2cb821d617e702d52514a9e6fa0f8b6deac26d60d9d674aeb8d9c17013890899caf47b40d45b51548fe44f0add25eaf66d0d59e8b7582b07227173953ea6c6f56fad1b213bf1f6f7aa733b42067baf40694cd7f5f371b388bca5d3e95144c7671c6e4a660c6e4fd369deffa58a943c9d3714bcd9ad2a2b78f8a978148ff8ac008975bcddbf3bdde73614fd9a3638340f52eebc43276e1d729fc82dfae7dcab6ea336b36b7ce9f99d905a85ca0bf1deae28d53bb9118fbaeda4df0160c10cb60364d6ef13b1a71673c9c553464f8f9fa728bbe12a38bfa0be31e0a550492ab8c5c7b0753eeace8cffeac35255a2a477bf430409b31a9834d735511b5fb8dbe59960d41ce2a056feb53893b2a294099c9a3a08f8c62a9589cd31cab220de4816dd5d83f47e0c5e46fe59c84fc97b57192d1f95eb641596dae4d77b5a784a9e30fb27b4751274a8f98dc5ca6975216f880c016cf108f060929d9aa33c8d3e8ea8d7a993856f151a7720a254a99606f3d29379c092722c1be40d3d1aae8651ce0a192bfc47a47d3e88f0f2f7765c8fca070bdaba4e85eed2f384ffc86c675e9599a92e04c25718c291959096a1f668a03f4512f7e4cdbef68e3a112b2ea2e123f9fe20714c49cff9532621e85454df639166020870769bdc740d86d67d416637ecfac13dd65bce593bc3fcfa5f5ba6c716c4cef04fb3183a2f922decebbc039720771e17f7d6e3fb40eaadaacb51cfc30010f9aae4f298ae7af44ea98bd5368c0bce9de1d1c77f1e5b36872dc1734012bc4376a1185aa4373f6d7bd9c1139163d6f21f33c7ab08a57d6c9a89c0ef09b425fab436bb570eba184f5f5f63c0d3ed5aea68d7f7ce16942af8361c27c3606acf2b8c3eab58e77e6febb7b023730cff2fb71e4b97082b969239f8130631dd3d547f5681d1e62fb020d25a55539032f3c50a6f420ebfa07a454756f448cdd7f7bc9f123cebbce1e0b62d896dee4f9626934d0a23ed5deeb272059e152c5665a8f44a3da024992a82323ea028fb272b7850d08188aea7c2d2b9b42f2203d67e234d0a3e5183d8a36f6234964d38b458cf45383fc1498d30178b5ae59b4fc7587e13c7abe72025e961ccef98b51b758694a6783b4f9575e6de17a58c532735c99634ad627035c12f7a256192cd20000834feea5369791e6128d32c72f2ea11e288f10d61ecf13867be5a934c18677b68a0ac589c7af281251c823516744c3e9239a434a5d02a85fb94299d6daba07e55cd720755a0e3685085dc5045a8a5fa34d0935fd284d2e8874948fd89b050b392350f1b3c2fb9953550bd84f9b39ebc7436d94e37e54313a98d1e231ae359ce7055eaddc92cdbb05b10e3d69a8a24a3cb9d531bedc35c51a4f30d263618ddbc3b2dd3c287d3ef60dd7a4060707baf0239f6ac47296468d7c8754aed98b3671ef5c3cb311a12ee381be9dc4955a5d9c378796e3d8a00da6d47ef424a922e726679a0e571c50b0066b5db44550f7b458e262125a81942d70abc9f99c73d972e3fdf512e422e963547f7718ad2f644d4f9bb2d9660fccd9222ccacac2e8a0fa7077ae7abf3d6bc06593af3d525fa9e2c4046a103da4bb576b80b9cae055c4c2c8769776916623da61e494a863e69f7902805c3804361021f7bd2db4e885b1814300a9b930bf40b24f37585e1a15f130628e29e56cfee312475c93bf2dccccfc78beaf0a40e25cd5fecec5555eb1589c9efd38278d29fb2b51cc16f7b8827e522aa2396a287d55dcb39c39047e4dd4618e4cf8208ae9c6b04ccce8ea362005e21ae13b368b8de4afda869b176950e084535e0f4ebb43b337decc797e28c3f54ded182f006170a57133a7356eaf3afe31e9552f56f7f5c58d35ef0e7e72d8a75e27b2cfa2ce7f1fae4ed13c1730b48c0a7c2b8e3fd5e671adbe918c4a2f33d83c23f7f02a7e46dde05385758bec8c5d91a66a1e1dfe3ae2d34ba79d6da9d5ad20de4273eea10f76198bed026f0c4273f43f7845615a7fd3bc43c4ca858133ccc8cc7a466b1f5fd17f0517557dab4275422a85f6e37ca6e6001de862c9ec31570cf3fb037a9ee864504465dc0b95de551e68dd6976ddf4bac0c7824342f57b6cf0bcbc9f42c4c8067b2976c54873146c130829306722b8fa59c7910fa69f0388f4c2f87e012612eaad08740b0d8f48004ad76b830a673d5c2b70f2899ef7eef68efe09fc588cdb97210964d90501017cdf634e85137cafef13edcbf919ce7ffa9734ad670009964d6b005cc579f6f4fa5d0c467e8520a7a124803c5471103e4b398cffb322ced2a1f0156ec8c13102166aaf248396bf63a794899df82cab43a7dcca54d600b849c4db358d057baa05dc077b063ca8b2aa7700fbcf3efc99c1e0feadb51d4061b8c92fecff00810d6d6b7d64a21e6bd545ab290e0fd9fce258507482b2d6b1d7dcad491beea9140532b2386acc11d7d657ef27e1f8e841df2fe17176c238520f6822f56d32a07f84ae22e2c2ad0c23baa9852b68a15f7d9e8908410c795880041f771019b9024c3397fda6c90f26bf70319ec76d5cf35ee6543a974fe5a5d2943499d7861eec8ff5b4179506e1a75ddabac4d6fd952dd834e73725968bff2ee26b96902ed3d745dc15433fad5657eff3752f496c2b4730c0ce7e24874d3b609a73ebf497d7dcded1f5583ae0daae917d270d8d8ebc8e1d9af278d2fd6f01f239dac3f30b86b1fc5c824ba29ebb75d5ed2c0df8db62af146c1a41e9bb0872772259ebc706ec4d72a60447b46d3e6466c30a868c7e6acd46f78b7d3485856cb67e944bb116233085a3b0a3df4975853317cc9c2694e4b9e7a67b0fc038b278b6b63d0f7a778ede7d18552cd7daeb5f6f750e8b216d1ebc76fd4b87fd43314eea72d8ee06803c44f369083c91f78d6e77974f2f1e70a13aba24577577d160ffbe6ad13160d07913ec0ea0b25ef96eba20414f1acf923300baa0215104bfc31c07eb0b9f382ad0e563e2dd2aa0f893ce4add1e103c59a4a8ae88b784d323cddce4dc472ff704b875da58e68723a0481329893fb8a4a0fac32a54a47433eb83bbbc7698d7988a34ebd30ae386e94cb2e524747afca0c5997ecb3fb863b4faa269f116743d5a751a005133046e0d4f9d2cf040bc9c1da713d0bae96851329dab5972ed30f38cd875266b60f99e1bbf9b279546f725e6affe7c2bab304bed11602463caaa5fed886c7368dc9dadcd8a67ee378c27a06c385c0a9e7b183bf3f0dc14fbffc0835207dab7172be3311a150d2e407983612788cb23c1120eab258d66adcff0bbd1fcfb457339a720013d699a4168ffe7b4fb340a65c5b2ac2c43fd68a1a76e531b41b3c273f128a884a3c6e815a4815bd7c0f5eb8cc390ea936f4c6b6ba464f9c1e4871a47bd2a47b72a188a052def306cf426823b508d799de3f086872cf172b3b751c3a725d7c9a1a33437be64016b771997f452235e53ca5f58e9c7a431a1d1e4501fed0f0e49c2625ac82c089be0dfd3f5a8d85f501750a800db610588a938d4d123eea4594174ea818fccff0fe5f055e2c20309201f99dbf2f87f400591c855ab0b434e2cfde9d30b0d7c8d05d908d0089b9dd3d36e7853904e0ec3cc4d8b2809fabc8f76425f20baa89a0bb45a18ed4859d277e35e6fb95ec3342f263d4f8ff9be0e6d58b618248378c139fb3a874b1ab740e24b294cd6eaf2441db4599edf5b8b16ee998d354eb523521f9d428a1f37d9077d46cc0dc6d85d7bb82ea4d5ce0f2f2684d9d64c476f2f88b1c88d5e8a6a266aa207d1a9ebb3bfa865035b2c3ef9fd17ceb587500c150055a85f01a1281f507d22e75e59cbdc547faa5a120d529a8557a2c20208e1a4d64593d914d5cac0ff881f22168f524d82c750a4f51fa5baf63d4389762c4c4187296509f48f7610e1129f5e9c5da4c67e6d767b6fccadd9a9e1fc9649e4fb8ac86e5517e638754a20ea3ae0c3c10e9221506571aa496231d2a96863ee2adbbc1245def9813a5eab1f2ac6d44a97104494a6b7c04b6df20311b97fbf076b2c944ded99607445d4918b563d08cb36b4f6a8374f461fddc7aaf562314453e07c88163782ab768b12e4b97cdcc0fd67fbef9e310d010caf98a67b9622ee58ba68d7edf1dc50197149cf10352497b1fc378c13c36a1f089533166a81dbba342603940d9ef8eeb79ef50b5193d45416f6116971a5e17c8993c775493426ec52a57d8f44edaa175cc1f15d9df3f91848e162fe92606ac91edbd01188664ff30a8845c3ba50dfeb82075d35daaec17b497b338009e2e5f01d00f541fa2397aa63132e303527a8ebb1e3584c0623cb616bea0b50c80dc83556121e2033b1a1f602c814bc2df5a3d311297e79a410ca4c9ac54b35ceb999cc4ad16f36b5d86d3be19e41ced02a6189b924a10b1049b6cf362de9852bff3471a2cc45356ba9f22e456a3bd02019f86764decbd35d40d772da95f45f740f93c553535d9394cabcd5b085af98e95468a6e7e93874fd9eb1e66fa8d7e41fbc257588e29b3a28e94ec362e78d7ead6e417c16d47d628ffa15cbd0032af6c7ee6b5006d938e37cc699e3a47c1c1b05984794a6185af1477fffd1d95abf5f8f203e3327a188850dadb49045ccdfa1ef774c3e8c8be4f925fb96e95866a822eae3915b13293ee8994c16d45c58664e227c8582913d594395de710ac4c75463e17af79ccb094d5fc8d94017982ae9603dad77f7283a538da0b8625402ee4f159350c914359dc7707b9f365b4805745f005bc061b9779db57edf444a55466425d30fe9bdf1de269cf3921e575c369f7da0bd6f7210392de0ce378670ab9bda1e2e6b717a308519ce73282c392fb1f0deb0f485e7818a50ebe4db87d68d83d14dd7d6a4a9b8a882ec41e22e0a6ba8a16f7207a1a0f695a1e69a740997ba051771177d3dfa6991811e6332ee5a71b0d7ac3f296c61adccef077c902a58816f70f096dac95c3004a78e86478087e6bdf6aff590cab3ffc12b42219d1adf1ce3f69570c39f8b466971edac8f75bc4168c2f7a850ec3972ea9cb0a83e4bada6acf824d43bd2e16772d578c9b45ae12e474b84a2514d1c4ad0e8b58865a3661f7624f74ea02d8284a71f0c1901ffb724c4b86e34d5a8380982cc0e58eb0e5273844836859d6f6f29f77e667e8e96be49597e04cea5da85c1fe40d3f854c72399dd8b2f17488ee7dc38ce5418d27e80d2e365cfffd6273a5e18a1686caf68183e212c16ec46f8f48f3ad9cb48a053682a5d5b118ccefd097d568767ecd595f6c1dfe9df10563333efc0de09751d0aa379679e4e43650cb5dac3a8e4f058732454b3755a48942eac44c939b3a977b6b15b2fab7f54f13ff827eb11dc56572c99a49706c51566db6b425599502151b3db8308377421e8c1fd3b1f0ad185074f0a67fef9129ba48d949b72e0052126be5d0d5140c0a15528bd47512cc8d9ac85a64660d9b2074bd2f64e815de9c6d491bbed300637193c0f050e8a2136b880e1b078bb7d27b13ba9ea53ec432d8cc370744e06f24180a75029eef21091a73cbabdb9df0976b84ae8f41de2606adb8db5383ebddb91d11d43b981c83c47774e687ce9d4d4cca01107d8fe0da3619a97fce910b99a450ce85b58172b26ba0992d531e3777925acdd88eb250b11c68759297565947248288f20937c70a7dbf04ce92faf9addc1e210447e8f533fbac2c25e38bad5f2d382acb496c8adbe9aeebdef510243f4ba4c5153e50b31b4429176e490867abaf37c38300e426eb006f90d62d4b5614db5a9a8fef3eadd7a9488448a7b1a5cd2ca1cdd048d2dcf128c12710573fb625e454267c966d9409021d14b18ebbafb79e99182ff1dde81b6b6f214ef114a9ffe707f9ea19996f08f8835e4c47138931aeb9bf5db0710789cd0a6d3468e08b45b0e83b680962fc608f6035dd5e1b1f5639bd83df694fe8cf7d2a25c92bb78b2cbdfc568da97f484e769242cfc918cd172a2d2e7b8297f277cb7582fa58fe05fe03bbf3721098744428956db193f367b69cfd66bd44b6cd7df2021717f2b5a798fdd5fa32524faa6be0f047b41f2d724d565a887355e97fd1b5d41954a7c2d8eb04c96271bd5f2f1c5ce7ba2ff92d93458b1b8a31384f97d9c980f94a2f78de7e0543c6d227cd27666d06541c344defdff59c13cee3b2beec0e4984732fe686ea79c8c2804a85098c5d8ad9985d3388af3cf11fe5668553d89b31b3b1b4a91c5dba2611a62efffb841fba4266fc7a5f1ba9ab65559cb70e5c98dd8cc73b45d9189b9222f7a9ab5e7852a7cb6da1b0afe02dbae0c2ef6596afe73ca4de49410af15a8cce27eb48794914fc9e368814328ebd0972123288daf7a2546e029597a3d2e1e2466f166be907a4c07b6fc7bf1107f1ee85f07d1773d363ac09a3bc2a08384f70180df2cbb87ad442d06a110fdf04fe8c174c2c5cd2d25e2a1915924c67b4d86978c2a233289d4e89fe9e04759090fdb434d8d85502fa4d680310f1942c6df85c7f52780c231da4fce1250c16608a82f75a8d766fd0422bcb3e30288ba59deb333c07caf3ffde3130393dd0cf1f2880e2a32474f1be17bbe75176f1e32e1081dbba2fe3d9aa76d2f449c7368e6f6f80a5bb9ef0e3cfdbe6fdd6c5fa55f1a837643399ff8295b0601ff1cbf30f1cbc2a960abdff524161e7942066fe4674dbacb8971c587bd30b0aad52f2a97cce3e1a4f4f88fe269f733f8214846bd312335b439f113fd09639712f8a0a9b6e1f79046324cbf702234c86e571b19ef2adcda81d41d44c20dba0a0aa0e86e85112c42fde919418db361e02e3fd5faab9ccdb45a246469cd46cdccc4ef8fc633bf8cc3910d8b73435138e12270268affeb922db7c414e1795a23be7b7f9a5ef98bb0f2e58164c5b45de336b7c1f87c5de147d0891b953d3490f3f009da9e06e5da062ecec4d2c7b58651a1effb5dd73e8b758b352d8c47d3b2b207a19adaf468a966cdfdb8577173f864576b60b6db9ecd035a5693090d82473480bfa6d386e38572803b882100caaa227a29fe99fa5b8812b7aba81ae4647c4d590b74b450f83a6673bb3991f62ab032a2e739ec180396861df2e839768d4cc1ab109a1c5b6f53e4cfa1ba48e34cde7294faf358184cdfa9821d7ccc7c83e401e4e3b8b4915601dce3679fd8da47012f6fcb0387424c3bb9f0b3ff63f98431f1bc8aa1b874f311e39b3bec30fde6617d5dce57e93e648e5dc1410de067bbfcb0010207fdbdebc1fad9353464a2cf649fffb6069b9cb4f55cadf5ad9a364a0d0f089e2b1c1010b279d44e5ad3b1ebd2a215a5c652648222f7508223aa584863ec1bfb88a5cbc165752b1406c20bb256cda4371b8ffcbb1de004300361b43e63d7ee33b42f3689be466caabf0fcc65a29407d9168cbdbdce71fca03b71c4dbdffe621291f6ed8d392495c79721617f1b75c3c0b89f7b82f329d1d190a41b12c86eac49a9bdd02cdafc035d1607af6b690a9f32155539ae14fd8109faf260c8ad63226532af1472ef9619ee62b769a5b2899ec0548947410954029fecbedc4b906997183be813f994c171d17a91fa7e03410b234d1d0527db2db4c5dd7ba59e43fad37b85b071a0389a48eab48cac307c9e74a8c5b053f4bedc4c0cd3438bcd84030d0d53e2191a9901a8c35b1933f2ee36a449b1c92ba82fba777884a12bead229a8c4ea4106885ed6121c319d9c54889da8cf788bbc65b0347b0168e7b8d742294bafcca3c7c5c34b5d362e9c022f14fec1da659297d9039f9e37fb8a7410efb7e764a96ad65d5e425f8b1b7ad17b8364977ddc568383a212605d7ff4f7776eaea4d911d94a72e2f155a6fc7ce3f2d180ce9acf3684cfb7dcd0dc1c431fd14d61eb2db89c0707bbabd314c7990044f8847ae52a9fd4e779ffeddce9b8e90e821963a72de2aec8740a76a750227a254e07ed74af85ff05bcb606ac4fbaba99cb681b7deab6a21c796353a8fe7093c04632a0561f2ab637c31ac3a27235058dc623f144f383e65ec8518061d5a730107d937f24e785f57c1032f38aef84c30743ce909825b0a5a12a4da9a8f9be361edc086ceb1d8e27def014ccc6cc3ef4515e6c9a1a7275380913f56b273f69c51d5326c696045faa58607f84ed3988e3acba6dd87df7b4357e84a3aca7ab3259ee4e3312c6c1c53633bf03cc5de4702597710592d3fc8290d57248c4a58adca52094a92e456a1ff46cd75b7ef115a29c2e28a22bb899ef5bf100622fcaccb192db2bc405f470af1a73b801aa9117c64a9397953d40326c04d24e628cf7aba672171935fd246b481fb9abfa994fe4018a101d8bc280d2c42b57e8f9ef1daa849efb9af0818d1e8ebbd0c4dc11ce6bc2df7dc215ed769565a06a9c7d835f0b61bc62e93c7b841decfea9b7e4cc1e4e39221ad01f0a065ef8ae22367fcc84f007cf92c201dc6e783b20500104eb6d3f4b63ae6d85dea3adf798d826487395addd0c58b66ff84ca397cb288405cd29b77118e2569448f67a96f8da7f4c9cd3e0bbd24bf6a55e868cbf9ddb38c20cd878099345d007784d9afdcdbc40c642aa3e7aeb1d0a97cdbfde358763038d7cd2ffb4dc1265f7c4a1d91d1a501c5d14829d2539ee038c55c13baafb34ff3d249d8b8aefd0e310f30f831859ce754dabd4d131fb720c3f3676edf74f02685f8325edf41b6ec569e6418e6d1d5f9a42150585dc9777b55c1b09df90512e48943760a1f0e979473cbdac436b53c17bb98de5819cc2f59db5a2db5a6228116033fcae6c624187c23eefab6f9d1918a9907976a37e636356cdf7000f96eb2eead8ecd6d68137a1d08912588c5ecfbe9828a7cb7269c31f50de5d5b5c3f13eb6d16675b03c70d22e58f2055d54712828f7103ef6eeb565345cf478f469988c027f11cc4ae65428fef584b4b810edfb7828dd5c5c22bb1ef59809039700b40664066cffc17cdda084256ea9a1db93d2eb1808a33e847d226a071444a55a77e693c368bf2507acbb02dc0a7f8216b850dd0bfee9d9cd9035ca157b9d6e077a8b62388dec0ead669f374b6784701e56c3a278fd30feefc9af5fc7963c97603a64e8d8729655ee347685bac81fc2b18d1011369a03968dc42046043125a2859666bbd8464a182342da94f823011f2c1e38c1283c304430610488f00d0cc28953182bbf4ab1ee5e435249b0a3247420ee6334589ece91e541878e305e01fb279827c586557f6193ebdd18b427a5759b898839f1519666884d5b150d4eebde087293a4924fb10177749218e3c05e98449d9536663785c5f7309c14bd79d06e0451644dd2b61bb9471a4750a33761ada67a36379009d607e1d8c352b86ff2ead189f416031c492ef89f51270d843289249922e36dd3461091f9ae90d936b89b46d3c8661ca6a855b9c852fccb58e1608112febddf73af30758ab18143c668dd9bc9f83d9a8f0c8a1add123a6894e7c66f24ca528b1de8bb9145bb01708ab5f8336d27db87a378c62b2d6e7b27d0dc714db1e52ce1d9ff7d392b8c3b8de51492fca20b73e2c440db26885190efd5f8360dbf9dc01b04c394befef8b050abecb9dcb188412a6977b825c3c675a12366e253f84da5efcb9162aac63f57b4a48ce793c65675be1aac2755381193316c64d7f72b11c38fb38695474d6c39a60cf9680e713bb8eef5f98ee443dacd5a173ba266c901569a14ed7ceea3cc528f1685117b26d255832c6697acc66d472abefbe5ee680ae97d990727919a7593ba643d315dbde442db858ed027a506d5c9b01450904446aae7c126017a4ad7401191221f6df25387a5d8a7abe14b2b85df70b37bbeb9f1bad6610ff40c8f612456a733e058e68fcca995cc67f1241ac49034f7ee76caea5c0220b136a086383a05a948b55d9ca0120a3b9bc96f2146f1b767f39b259dc11f5bfa2c512f14f9d1410bbd99427dbecde5e224b81737e3772327828f16fd586f91be2b0ac05f8d53c934eafc72d57aee4cb22b196be082bcc5c7e6b79ed71626b6908438ce52111ab5037240d8537896ff6ab186c698c071954e40edb8bda4043c6733b3f81dc716f24759c5978db37b8ddad5b7c761fe257ef7cba58f664031db909fd976b31b2eb946f2910a7a5b3c066905b74b3f311c29aff7ff4e2c9c201a29326e934bbb80ff3797da1af639259290773f13bdbdc1969b440ca68c4f8a89a73cbd86e0b512cac834f7b241ac2cf95cfddbcc676453798ff98091aad74a13512f4a8fb1b3828c98a48f10802b2454f01fa1dd4e3e830197a54165ca275516c21f7d15c139c33ebed7089e3b6562e2018f9cc287c931567272648dd8c9156c6b9f0afc58fe07a240d17c6bdde3674458df534eac058c4012479f2ae18ee9dd0ee20ffc804d59419d70c77f3847402a5499ec5659a020ae1dba468198cf890344341d11897d7f16440c7201fe0ca2da6597d7a2b031be8a6fd4482dd23c90fdf8c1a886857338601adc87a649e90ed692b41903d6882c1c96a3cd300a407401eaaca32dcc37e922f9339df114af763ff4ca8b937308137a549c673edeeba3362e732b9e7a9a3d012b8e9381bfc81ea23902ac0a36139ef421cdfd128f7c9af6aaa5912eece76796f365e4208f40d022226edadb4f88b53ca7e0d94e8568161c9bee337647adf23f04e27c502b598e2805fd1ab0f44fd6e844f08300c900d1af1068dec7f18c5651084f74c120b6570f4bb6b662dcf7e0818b2656ff8aa159eb6e42b20c1623c6ff1a6a27905e14b485f3485640c75f6f9bc331f2469972f63ceabacacd24fae1f04c7b821aba9210cc0dea6fc0f475839b668602c0ecb7acb112621a084f8f463b224084fa6a8a2c2b40832252a803a1bda471f1451eb2d2ec45b23a9b0e6726d415a643058cf7189d4631d81eae89a48ddefb7f44ed0ecd9e36f627c19c3162d91255022e9f718cd26a124ad6d22ce98e2b9b66fbbbe9d93e6d7f230278ffd0e3f80916d407b48d741065bfb065b28f04d6b569510f5c0ba6c62c3685e585aa911ec1b2518db6b6c02ef6a1d5bc8cf8d7ddf48b23119ed30bef400d736b7345c5cab0df98dd559264cbdfc13db1f7c26a7466482811b7c4ceee882b5e54d49ba8ba13214b078cd6ca8797e2f92025e3b98070fed100be65669ad2a848308747629fc3a0ffff387de3134d6b7f6b79a1971d93f916f5a93fd51db3f9ec51c1e88c9ea3df5a1d7bfdcdb498543ef7d794ea19fbbea8a9b283f4789d796450a328eecdda39329e9727b3c479ad4cadffe9cf76e48aeffb40edfcff48b12386ddc99ebcdec7342173658a31a551657af78937eccc27126e6fc1c2d9679389946479d1e94d667a2a9a617cfd23abd0cf8af1106476896da61a0e3581ad29ecdb3551aa4a9aeee8a2d95613bc41990f21d6cb677eb9d522ef818ad248256c22052c3f25c883ea9655678a6f19cbd6496ae3a1df0c28c5cdb677bbf0d0d83c087ae3c1ddbe624c32729ab244519c7992a65631d6957f85080d223de492c6c15eecaeada67e42f6f80f344c7bb67f650e572a3c14d3eb871d2b4b5453592897b8cc9beb44cccb1900a33720ef2d5ccce9027ce35c3519e52aea41293ec50994d6d286644c61ffba5e8a537ceab0b315d3b068df5b5e174106484a4e92ca2e1bf778408a1269c0df4e85d9dfabce71c7626ef9256ba40b5963e69d73712e4a321f80c130e6052f368037471f7a260a4a71cd1fd36892b3a41a8cfc6aad0e84d9516a6fa940cad23ba6a95e4089efe6a1dc62c2635e66b7b5f0a3ccdc5d59505dffff70527041952fc3c6ce9038732778a947d9950a93cc3eeab9cb50de53959cb3c9120c51658c58d0e06bb90090ae0cbc999a7f7740a8ec0b014f6cf514227d2f983b460328956b2b29f8cfbe3681eb9ef8b6afa6c8c17a60d0138860077508a7fef09736eebd19a03b7ca9e7eb747fee0aa6680539e5ad4221a0ff806cd2ead2d4eb12890f8111fc912fef944a2edc09f70249cbd5951e341233dc72d6aa4ee1b33cc5b05acffcda0bf1b74b7f6f599aeef8f29d9340fdfc6545bd66ad514e177c001ba18dea45bf6e4fa8d2cdb6d95c9fbf84d49e3e3a6c009a20b3ac037621d12412a2de0fad9be221db6b082dd658c027f47dd5a7bbd26dde6bb3643d10a7993c725b75f2f8a872b0144d1be4895a89379fdd4af58a3f5bdb5935b86136b180647a2aef054cc2906c023f8465d61637d7a369c37324961b35ade75fb0dfdb7437b7b4dd98e8898e3989e2d390bbd88c8dd0763c8652d323bc4af7668c681429d3f28e43bf6d47254564392fca7cf94d4c40a663b83e388f4d1dcaab124cde96ec70fb190dd7c7f26f96b5d078cdadc34cf3d81ba1a29e9b43659163000ab476f4e836cd20c986f445704186d59ee33bfcf6e5fa9442ec2a76553f94e9721fc84bf087c0fdf40f10872c683109690586f8ee8fca281c7742cb1f469cbfd4915088c648c4369cd68d3f6505469b0979791c113f0b84f22e8e57d368a8a7c1d914c9b56fa4e87fb89870e3a7513091996e9ce6d47083228cdb0eaed03e216b51df1a79ae9c84c400c1488b226d989abcc23264875eabe8969b04c48bb47ccb85c1ec5a1ddd6a94067dec669cce2d058d555c2b1170ea82d5653c1e94b6a117248c94fd8a0b558b72a2ce11cf37832ca60da506adf52bd892730ab380c425337059e3fff5be9034cded9806098462f7e35304f34270ba8fba2204da0bb1b2206401caef69040a26387fa491f7221b584d944948e51772c27a75801dad25bda8dda50d3d75dd25821a5c026a32922018d8c198d23c56c3aff693a88b9e1c8bb0ec270c1eb2be6cea18eb133301eaf80886cff6eeca498520994518e9c7658afb69ae9098680f052de879b368d9537bf48438e6fcf845986100790e673424f7507b26b82024adfd3669b6ec77a18c5ee60b7913b7c44f580011c12dbfe951d23f8fbee57f3369681504354506dc6517a9a992114579a3dfb277d5ccd6313728fba768c7f56d86440f67f094a97c450790998926184d2f1916c60dd74baaf5a608825c6ac5443f3922a6c36e924da5fae87ce727e5ec15a32b61e73c8db70085bb40955fa01c3f206c36ed18eb7b93f7ae8839674df42d81c1ab87f4604b9fb7b5cf52f0a12627604b689215ed16305c58d090ae0815809f2d32328af9486e79e9159762cc740b1740d23b3bef0b324ddad7024da235ce240720d240fd32dc20d56ba94d3ad2f514d895535dee6f63743b0027331b210995c7f375c2203aad46f38396fe75fb61a62f87ac8452b5200f50b39c1f0379d8c37d37ce603735783c9919abeca82fbf2ed106f9b7f2c2da4c796c83dbda7b1597fc00b3e5da8529d3bd47fb3d95b7f592fdcc515499bf99fd81dd0187d1d94f992f1f9df30c6f8171625edf5b8bebda73a7fcb3f58acb7490f277bff52e42495c7f252bf673ed917a986a7197cd75bc38ab937cefd1cf1a6276946a1bfd8b79ab6ff99fa215b343045d6a0fde130bdbe90db5f25450014c5b2c4b3488c25c8a8ee1215f08b182d1ddc452de7d2197ecda4c59bd91dab360dffcd050f55ff8da1ba3da75311ac94ce632a445fa9ee7962508a86892dc9fc00a4fd779e16275fd1a37da105339fd16b392456ef0a933f8f3919de57c4bcb6941b7fc6c3d5fe93877feca018e8f016886d1c4c80bcd7a219b2ca606f9e5dc6d0d79d66928224106822db43f3f637ccd950fe8870a529a97850188050905bf714df67bb6bccf60970537f263e0f5dda5a043b023d21f24d1ed1a4cfd717f1d2fb365c61cec3dd84c2797e92d786596a3d64a8bd5939676bd68ead56eb46178f5916aa8686c1ef03c1a2852fd9a1bcf500e9f781d011c513b402680bd947c3b25fd671aebb3c914b3a16ad45afbebd5864b2d513e9049259f9d0765b1330c89b336a919fb05bdabad636cb56f8a444af5950638c0d0eeb0338433eff7b6f92baa6db921708f1d315f0b367989281107a11fe576eecf5901b29bd8efa0817974a7cc84582793d212af3bebb69ae534b661bbbfae568d97dccfcacbbd9efc07985cd81c5f83a6081fb75106d5b9d1baf462a3e5514c7f9eb1aca1add04aef068c0f1e3a5ae7fd2f8446f75907a05d20f1a38f5cd26627959c639462e2e1677d381832d54e3dc9c7505e85c2b32d4b5b77771c7bcc01b7a6c0810568e00234bc4e66fe706072a08819b736b155e12d7d700681f9babbc317358620d0dd31e9e805fb60f0d7f7ffbfec3b2afb13647b16f6cb95f26ef70b8d076684eec5587db17d6c1a111b42d5ee018835967fff2bbb3b172b8f9b5c4bb6610bbeffc6416faa8d620ce6e54b1bfda471872d5d20eb4abb8daf5542561fcfb4d092554b1d7f19561bc8ea280f8794b47d1ab8eedad7de42a42658b294fba7e9071bd2de00f72efde96c8ae7114474ab67f77aed62d57ebd286fba19882e29f875acbb8d6283efa1b2d63354d4c0cf949c472148936b00d2bad94a5eeaf581f5d19433219f9b50b46e1c5530628b0a7cc037d4c36b37b1bd4b0f270f35a3759c48a4d91c787a4990ad5ed827c83d63e029aa7cd28cebae22a547a7c629d0788ffc87668891a6da6f0ee6fb78977a5f7562b9984bbce00edce2cf094147a3901880f4465ff10a4e86c9919fba65f90a01aa0a4f386536374cf3e098c1582426f75ea081f7849f315d269661fc4aa35b7973f0a98e15830b041ac6441de7a03fe0910e72d09ca1ce59048b24cd64bf4c9ae35c248bff14cf137053ece6c220d2b10b2922016c5c1fa853cad8ed532f830e56a4f25279c2ded060accdc67dea1cfe30ab4ced8c8185a69a1ea397bdbb8cecda0fb1ac7c4aa45d2a5ad9fbee174180595c52ff7811c35372c1ba45cb700cbbb13f62e8274565cb61b2e162b23a873f531aace411d4f72e08aa98e4aa0a6666d35de7823da4cf3f6d8de024a71005a3ddb3a3311a61a56f9f2b52210c72ba9269205caca2c365220a4dcd5a7048957b2d935d60bcb8fb790ce43855a448477d539c009ce1092cf8c732bd8af55553166c387dd6026cf0f938fa1933ad857b30a3e79a87a9183a3e880648dfe0560dbe3584eefb5e55e21da2acb6ec64225326208c7a274b8d1146050d6b5f20075eae1ad29d7422e1cbffda2f500089d6cb94c4c987eb3e51dcd0494e643a6ac5605f1fe3283e08e6456a07dd603fe3e484883ea908699c7af4e8332c4070b3a7313d3d98d2c9ab0dddcc62b0dce8b9f7dba171de0514a2bc5743f84813bdb79fab52e07c432a0bcd7b61b91793e2590d19c1f37a790a3468e8449fbd1ab276af162b6a21e1130dedea3aed108c3694747b2e8f70b19256fc9da183a03c55b12db832ae45c6bdf9a2aa3274987afa40d939d3c4e38ff1b446076ed5dba274711a772a75d3a5a8fa38a672d8679eb0b560c7e8434e93681b14c06518546a19818306d7fda822f0a24684a53504af0251d6ef1b7471d07efd70bc1ba35ea029eff847f074336612637995aebf1caa70f4e79c81f2184833f2798bc3238808578f11d87981d9ff0817eda3283a399f2e847256e30aad425a31bcf34416ab64ed78fff619bc355725781425d180b8d2f56bdecfd941959b321b268b55505639f084343fb831213b62a8319073ff1ed2fe148c14e4cb6a2633b1872c667a83483dd416dca9e28d57c3ab5edbde38b553b37150252a14fb972b19a36c4c8e9d3c164ac532f542319ceae92561ed4176fbe7780119e23b1a9d171dcd70b25dd73d890eec2ec3bafedd42adaab0ad444e5f97a112125f9245096eab1dc98109d26bad0aa9a5e827723dfea8610a49fea8e4286a419ba920164749563030b08b93758d6e80808e5aaa1bae6e598b5a41505147d3513d211f837481d374520f2ecdc9e72c61a2639753a869f7124908729a292ce3da5f0f7ef4d4b37d0fff02127219a17db9b86f1762524f20eadf550be9350e2123c7435f25833ed249644baa9d26e35a9b6a92869ca5ac280e36d61a77c9121b0d41cb9ad68c6af49239633eca196703f197f685f65e3f330a7518c177a4bae21353913951e2592910f94b6a57d7577cc19a4529bbc1d1cadd7beab4848b448c57fb45fab8c3d15cbd8a049d600f8e0b85bc327a8777eb59a54bd1be5ceee8b1b9d630d02e96a5991d03519be301a5bc89510bf514856fb0d230e63cf23723ef093eb362c34a59957b57ecfc36318cdd672c540bd41dc783f5aa9da0c9a17667422c1b8b39c18d23ba29b7aad07cc782865b21a05660a8ea1355dbefa7a43d3dd4ff10d898d0ecc0b40df9675c5e8402b062c18c8a459fe292501c4491601c1b04695a0d90df950830ea534522430878b662891dc44c3ec9aef46f4b17969fae5617e5a1a7367f3e5a579b2cbd3bc14328e10b9398ae43e683c46cc6f70a6b280df80b3d4476dbc9db1c5c57217c6f861422c8a388200fdfa6ed4d0c0b741bbdb117d24079da55b1773182d7f26573a8df456cf57a737b404dd1eb85823ea926b4785e3eab36e3263cde350f2c1749d6279d18a606978efb055a502f77d2aa2116715c7c02d3f8f942e7ba3614b79f7cb9e4aec78dcb79e301203e1cc8284eee27610476ad95352102dcd6d885fb47d0935b1cdb270d132fec9d1ff248ce42d354d5785af321ed382cf1055585a06a47fde4b95d5c0148fe52f8796940ae169aff64d48a16d78ffc2006906127cc141ea8a85138adf109cd9f192dd1363eb90e6fe0bc1e07d99dceedb76182c7982dd2e6e2154df19cd902a024818914e5f182ca9f9060e58cae36dea367958e3f55a8f0d6d8f17ee968659d7f3f8990b7974926054b4e5433195d9c3b0c4a499d03263615226c26c2bfa106fadbd9eee3413fa0830d1b9c8af691e1cc62a38e0b7998c587517bfca7f0c8a7ce00170f67f93e8cbdd2ae9ca286c5b69e7c7936c8b98cbff6dccef4c2b0cc7284a6f6cae42daab08b3121904c810e45465ff71f65d956dbf6d88b4c7b1607d8ef3eb9a4bdd0e692ff3d439dd07a273695151d48fa508dfb736ac9c4e558b4aed660bcc5bb02ddd3b286173ad351eea4c35e3e3014f88cd2497216ad8ca973adf8cfec4cf1317a9cf5e4535e948ee59db7918294987df2969cc0f2bd5f29c9727eb349eda1de2f1aae56e285f2b6b12f8c6465721beb22c8e36151c3d4889d1d114b6bdc517f720bfb606283dbdd9f0bba6a365f5ed2c402d9231d17831abd751c79fa1054253c5ceb8aa72215201ab68346992ef44142e5bc44b2ebc3fe57a4fd0635d1719488d2dc57369b8753364787bc06e942834c04a45b61662196807c209e6c918579daca53c9cbd273e929bb971247125ef154efbdeced899e97b1534d0f8622234db5045ed8d36f3fe7ccd23f65fe3f73ed1345c8c810f121ff446aa9a77c30a738247fd286f3bbc0e41e8490e91d00c31202d81f4bf7588d87fbe32b01dc104805326500217f563432c1fa1c636b0f6051e2e221c6c2fb4b8b7a5089f247e101b6720a9f0803b746a37b28467006e02e84354dcff106bb61f5c8c3d700f3f577ee77f710eabe7fdbffb7e537b1dc6fdf6bc2ffe3fc4a1a4564d27e6dfb299825b25d064c8d22a07cc601a23938306fdbb51549d4f48d090ebfe827bc38c81478583f8ff88b56479bbf8ea434241cb762dbfc516295be7fc3443e932a41c01aaccbbea49916b4a60cdcb2dc91c0091050320ba2bd3443e5d18c6d1b2f93986988498160d09a4b846cfc6742d1073848407e19b45e6d734ef406ef892c92eacf4fe6af3f0c8d5d9d4f8acdc67cf03c9a15aec19a105b1c861a48a68fd39fe1798403768f3ad0e2d86f3fa4d4587e7e631137e2b4dabcfde715d955cd0ad6c18f56c588e94636044a3c12d360f42bb82afeab2072bc114d0b174b256c9fd56024d85299c07e5ca1027702e58afae27bf623c460276dd2333d460d224640a4a5735056e2fc29b7cdb5ca6b87cde763a9f3000350f3913e4bcb00debc9e85a2107148c4a1a8eaf74d2a82970cbf04b0fb6b0097dcb21bd0271e85b9476b073932a62a6997acb51a1c7dcb81e961c8c27c0caad2ba05bf4bcca317d77b2bc4f93061901e889c764dea33312a390504aa0b7c03d9e062b891318aea9cf4515a99443396d2bf93b096981f335239b57ad6de411eb3083d4ec6c3495272b33cd6513cbfd1bc8721ae97bd0e2940cd3bc650fafb0b0a3337c325e4ff10ff9bbd16f7f9d7c235b34512072450d9f7fab0ab58bbe5b22d2369aadb6799c2b5f5320a43f2eed9a6177ddc884c056d5d6a9b41d753ae3ce6dfb3cf8116cdb37eec2f46a6aed26df20cde3159e644ace2eba089f6439f19cb3326267f2de6adf712b5bb374dbd3a84f0447dd75b0dacb1f0c65f23e312d27f2d716e5bdc5e8104daf8893400b344f4a490b85f440758c30e43e1b8e03a2044a16c8740c84a595b1bc031df8d3037c70ceff007f01782f380dbac96b8360cbaa6ab9a4e8a91214f9346ab73cc299c60923958c8e1c361efa4d79eed407a04a21721971c2ef9895962b720542c5884aca461754c4f61adce7c80eaa01f842c9214d4abbab60070cd8b354f882fd97a5f32ed452ca31ab7422e31b3b350e45b5b7ea4b4d0958ab9a97674d027e91cdeec31836294fdc0378a85f7865da49287e37e1fcbfe3557eabb71e0ce4d8524f87c1a887874b06eb1c36dc45c8a3d958fbafe636d7a714ffe202a57e6c2c010703d6bcaaa23c0f993cb7a2cf8bc15f7aa932e17edfe1b9f52ba367033a06c00ef5f253fab0a6b368d8e62b8d484750eec1a0169188c779fa75b8e55d3ccef3e12fc4cce9f4b9d09af9b7ec5fafa7e139753ad284f1abe91854e0d2c565dc1c204d36b2f24907a4b55cd4ef65f03a30645c92fe9755f9d298e46f30be68af1fb59a40dd6fa1dd879f512f232b5622de70c63c53579fcb3e784096589242ea1f2035d45ee3e13c23a42c1b139c412b6392d9571d652ef164418ddeacc006885b57eea27692933f6ae4c5176bfbea1aedeef027d24c3f1cfa8b543ef3b086969188be54c19bbfc68948d224e2021d3da38c25ff26e3081593cf2b045b1f315a8c2129952dfdddcbd3800a7eb9f0a2bcfa3bb831f6f5ea8267c52a59e45739eb58d0f235ae6ce2dd13bb95b243a2d877b3a0c3518cdef471aa77a1013a87af99633908e88f0e35d3122a3137303b76a9ded0d1d34b4e3860ef811f0a10690a0634d34cf87b3fd07a2b74a657519d72c48eaf1bc8f7781484eb0e2e0a786dfd1cca1b977024539009841e57f6e23c0cb645044fb864664011cf200bf694d151791c374de2c97b257c081fa46c2624ac02d39c0103df198092b6b0281901840cd0700cf2339056a2276885c577d5397d0b20d2e301cbdff9524cf9031a8663ef09a9d2338e3ef9e5a4f575783ccdc588a572d46424e4964d72422e149a12f787a456a968fe66931959153426782119ebf54e4d1734183fd593cd3d9b64f2de73f1b9abdab83f4dc5ab688ddf29480471b33b2842128ab47a4f0a6f181eab3af49c2f53804014c5ee2edba24279d1585a455e047e27c686a40b971116e8f1acc5df35890202844d697994982d35b89ffd26e68f20d77ee9ccf83a202d8bcb38c8cfc80f3e6c4b4fb55d0e18bd030628fa7052ba72397303a832f9d34d1d855ee533e2bb53c2876ee75dd00b311a284a317f57553e02127775b12e5e2baa9730927ae839b16a86dbde2be4693eadb53b9fbefda07ab9c23edd77417e69edbc41bee58e35f001daaf12da698c80f2962889bf655253a52356a5a13b6b922807eee61d7def7f36590b03a7c13772e7fb1c3e4e1c398f9d29db9589dc180388b1b9bfbdfa48112e11747755bceee70f3839253dca89ec77055569e392413a154b5f08fb4aced71f61630b5106d15ea3ebc2296e746c912c49f394bffeb5de917ecfb93b0b4bfbb8c9fe7d79f827fac3fcef6fe5604434127b037f17b55a0cc745f7376c11081ca926b1ddbbfc36345783fd1eb4f22878e395e9c2d2ea64fccf0b60a70e848becc785918bd5909d26e8fb75f614fc30a3a5eeaf9600dd7ab5d733aeeaabb07aab5b3f85cb20c23d80fcea0073ea54190f63cd25bb3000f4f44c9fae8a7e358bfec3c26e94fac797e0ca4587690f6d51e073eb54f6764ed4190218af7559f37fd3e12b99621bf81c6fa22f0d6d0b78dd85b1449769a8aa45e3d91444967406d950db33e77c4fffd148d7f7ccff5b691284e315e8ef636e40ca18f28f20cabbf2897a7c73a05da11b26595f7a7a092bc03514cf42b822094a0aa793fcf68da6fea01f5c3f3b2f523491261b03ce63e813507df5e8db4765ee5790f965fb35b08457eacefc9cea5909221864b9e8c8221f3b6ab79402c580aa1f6f4c49349cf7bda725c4f6e81742c91a0cb5381ef7a342fff32ed89ec5ba616e33009d6946c93f9239a3c62c7a2960dd0995adf1f157d67083c83c0d10783d45ab0eccc057cade2b180826315a25b398e7ea86b3d9710e727538b0e0159fd56cec57e9a28dccb759a2a8a8f4e98e7a3c3ac7dbd7a17cdb611464f4b7442194a53a11c9a2f7ef223243a970f46e248eb1d7ae251b70220b642aa97de6625ec7390ddc9de2fe7d53d39541460ae8cc2d285e207c71c961c96415440e0545dd791a3f618f4b0b1d9f943a3ef84c8da2ea9090238f3b668e2b0b2e0dce571b592b21ecba3a31f0a5fcb8c5207bd5dc23129689b56b990df53f7ff2d6d30f9ee06d7a12114c1293463e57514a6868e6f3b3d0395f1bc79b61c6f83df212c7d3cf8e3a41fbc3e07036e02b09d0f07cabf5a51c579e1573b7e08fbb7dc307468c9802ebdd2be0c3b62d0cb2d271d27d1c6df1c6ff57973ad19a967f1d0b9cc36315b2d09aac88464ce327a2ceee9f60049ce0dd75c4a27ce404df681a9bac48805fd1874fb576450d9738921b48f2a404420c0de236e3fb9ff46e0001b14f218488184327e959796a9d699be3ef3c1d365d82a46656d0c1f34828c9a1c9ef9c5f5623930cdbc56b87681d885d4a02d0f8ee46c0f60ad1ea4136b71f0694cd5587607e026ea1458e00f4c899ac5b8824c57d063d9f670cf65a424dd1300630a6b2e193fbcb878181d56de8b92e1eb8fd9894776722d69b9b9430f1e94a4bac1d4f1b11b56816f7c2bbf1ef60efd87e58ea4683ce8b0d58220209fc56d5d15f456875504496ed54baed5f01dcb739422965ae7ef834b359b4ebd82ffe5f5821cca2dbc90a612144afdb643aca29ffe187d12ffcd767286ce1f731937027bd522f6136de036e0eaec8c927093c863d69a136635d574bb17d044ed398559c425705cde286218b0c7f34d2fe9020aa49a02baa5ec881f5fe81e7caa48a072e5675fa928242e183eaf614a6836b281ca95c8b652c6a4edbd98e5317f9e48beba0f7c36fb117d14abb59b33a9461d91444ab7e1a2d5e92fd8eab774133f6b8363c540035afe05a2fa06ae8b750c8c4e02ef907302a26feed4d24f4762df74bfc12948ceb9f84cbc947ff991e16cffd7f9fb371190f9229d7c17ac793b3c8f12fdaa2185808e2c80c5d4cb21167e5d24a3c6ac399d935c11bf82325ec2c0c24c02693c158b1524cf3c4da43fd21577fd7c2e72163183b9b52fa2b7e1ee7c3616fe299ac4acc634418f092728e7a7c0c686592b4e87799fb481178ec70c6c087ae55e3c9d28a857fab5dc0052bb74d895c68084e18cd816b50f79ff0c3a0b78d0ee377d223648d6cf8ab43dfac70734ebc4ccb84a6495e4d059c2d0c1ed3f5da214c9c67b844710a94e92d38018068f0a0f424710e6ea0d9e7f54b4f56c8e25a5963e5a7cb1b3772e26136411d14cf58bb7bda8bb1bdc2f81c986cbb452a0d1db77211974d431cea89a8876d2a75f823fd10119adc286540120c7996f101bad3effab8281f4f8ec6915a1ac1b632730e7f7d1c495cf453081924a0b9568c6ba08382e57318d9ca13769a0b30164004f9bc51fef79e8a3f094d14d7197f3020fef7182939411a769f84828f4dc1a1981e75d47dffce71d0727b5e5950f9c909213bf91b69965041751cc90424e8c2053cfe45baa605bb599c1b55f493323a5e77977e88262603ca7f9f0d011abd344ccf2038429140653839d72320b5f9c526b22b65aae834f7dd74e14f7eaa89d818ffc6766afe160f90d8b2d7eb004ed3d8db4d9b8319874763f0d7d312b96ab3e685c40a64ed112c7d0634c1d2aeb53a5f7ce05942a568202fd31d2664a6c533e5c12c66fc3997dc95b78d944cc4dddb641a9a012815f23a23ab4a05e2c8efedb9cf7b014520b319f9b5702b5b913f03626b0d5d4c35c72c61a2ad7793e13ab9af183bbb82c3876ea1e619a79540ac176782a15e9eb8c81ebd1724cfb63166b037687290e323ec693a7ce973ad6c7de9a51c291d0fad8d582f92e35e0f29de3d3c4b13f22177e50dcb144921c729da6313003c193a4a6e5ad6527b0484358cd7cea08c5394ebc7740db844a31a2cacc19047be0e677199ec807c23c70939677f0b8a38abd3c20512a5390217882f5d8b860316d5e362ee2c3a74b3d3642a642c15614de3692462974bf639d6e5bc6a5814f95abb34e2004507e2c7c36a2e6249023f1165cd2a3feba3e79e930be66e4ca7cd72119abd54dd7f914a571e7bf27cb4bd30c2d644402817268512ad48e98f5b8e31c9f45a17b4838cfc885f1ede8bba5f39d1fb88f1b20bb4fc955c4bd99e307d228a834893db1ffa8d976f46718e6b147295c5714658c0f2d670e503411beb8b49b6d2161b8a83f593007428cffb5d8a1150aee8aade61af0e56f094b010c401e0a945a76058a65db0aa0b51df47e3fe14caca22ef8de89da2047c5c7bd18ce96d2cff43eb07e0dfa06ca840ee6c9ceaeba8d4c41fae6b1b69b922ae86caadb7e9099ab793a59da29a835760ad6f3439ed03d5b12a034fc87fd9281f189082789a9f27370993f7ee4d953c1305a1c68cb031d81278794be9b8e6b24386552db0bc339f39bb3253eeb657e18741c64c6344df97236820c6c4cbe5233bba225dce54a0f4cbae6177ab77bb09fa5597b7b26abba4e77174e475c9f526ea3b9946f9aec49f387835504e731cfd1456380f8009d1f7b7703f900886699562e756dc0921dfb7ead4e3b51a1fe8196d41f2ed388a88912fdb2adebd4ee59f9d076cff2299483a12100fec9c93e9b0a80885afdb5d7d92abbc7efaf29343c06a8b012c545ccb7c232c534cc52b210bdbf2ac5fda9365d8c8f9ad8a9f3dc5d139de9fdf6c28414e9a7bf33202cfd8362a0a735040e56c9a9c2b5995af6abe230033e4df1e94003e5ec8136f016285b414236eaf29acd48eb4a57cf97e50a152ecf9e886775c52ef009945a8a201e69d8521f56b7f6b2979e64f1a262168a1632fa4d2aee71a1e7323bf56977a43126821840308c6325301ee8abbd90655a208a0f6315bf62a098e1589575b07d937816fd8bd1fef6c58601a8e00ab16ed353cf604b5c26a5584be4e4d83ffd7dde0ccd6286e3d12f385768c99d4ad650ed1ac6dd445751019f3c3a7f1777c5598d3ee2f4c95e17cba700b3782674318ac7189917e30a7ab40f818bb61ec0def58090c09384d91baa3ff2399572e8a5e623aa51898fdea80589b99aa6ae90216c7cb5b072f625fd73b127d6eeaa74c118e7f5afd904a386a3aed7889afcd9ce2aa92852fbf740065fb2b54c78ae24c2579d8dc46cd1e8f89e68f21cf53083104a12565e916f902a377c66ef618fe59348f39ded45daa682d35f2a82f5e7b31e922953785fdc713a484b66046816f8ef8a3caf19edd630a3f3859e2d8bb2eed3b340270becd018ab4be1ffc6c03c33087feef571c4d27dad3c8b70de4f95fbb9e410a4785371bd0bdb036913feb016683b2233cefdacbed10a69d9e9ea88a2d96636ce1aabf81a8231fa9e0fe754adf5351825942998445323da4d4595fa35d783b1d5d93e323ee837135363c6c03f3cd6b087e42a9fb72490ddb2003249ed252a669e581102a465f01fe7d0e9bed66a02f1a437371b9d645536a222734a0f5caa9cd8f944dda79d57f4794118cc8db0bb8575cb693d2e741eeabe18cfc8ecf10980a93fda4c42cdbaea0396939db5e0093b51855d877ea23dc7192e9ffdaaf5ffa2e3477e6e1772535e83cfd398c688c9852f293252f2a5fed9a5b99b1ade7df777cf66fa73d554b2323960895823e26af777085c4a055e59f6bcf60ec5f3e462d583223422e310254bf5b79c2aab4953ce628a9fec60978734b4b983966d174279ce1093545e73ca12735dd1921c275e67e92fa40f43ccdd6d80726999eb7efd84ac5910766a4b7bf4c5266bc6476eedc346f59c58341b8cc26a2f23cf06549efa52e0290bcf8506e2d562b4311124150a08339ec40eee9915d5913bacfb60fc42c7547128e6ad80d2eb058cf24391b004ad605b22540b848d0ee7039a247fb0a907b075f7da2d903c4e2b335a340d9ba1d85a3196d40b621638d7b87544597adfc3dc533438e8b09ded7d6972328ad973110f9418a56e5dde385c630ea13c4f77a58e51b3c60463f7205a8872cc4d3d2f12af30f365c591dac2f210a8ed02776c288a83d8bb0a1a4f72bab44be17eeb30aacd5746d9b2223f6737aa7e055ff39703dfa61d38a28a2e7b41701f837340f42d078d86c9b57109bb61a33b7616ed3a21d702901597a621d1f2c9c3a9e8b89d77176cfa3ffae2778b4ffe80daf10978279c5f5206f72f39026d2f44b58de670777f6d3e0bab8d8c22129a61046e5dda90d5db1903654d8ca1b6675fc08df859541c77c1957d89909b2f98e8f7771dcb54c1b1ae09fcf2b263f09007c3000c661c528f470c72488e470ab491b5bd631d2089ca702b5b44484b7e12e2846e4b4805ac7b67d40191d42120c5cdd45d0b831dd654d0ebb44d71e57955cd5fcddfd53c148e0d53363a755414497feeff29144ee571d3eefb9250967fbd54d2a6d888490566fa0262c0caccb4be81d79fbacf719e7293f786fd8ff528cc3be24b7cfffa56f53fdb7526ecdf6dcf20ab95cf11806f0cbe36c6a1db3ac691f84e43e47cea88aac6052d5d3cffddc09ca5a40820b0ee6315e9e3af65ba288e35945b65658bac3cc9e58896dc7c7b6caace1a19a41185c9ef456aa3627190ec53bc0a06c5cb5037596e578134607e07f2734be128b5a38ab3bd486f8ca20e96e2020631c844110fd8c8bd656d4a80599073eefd9e6445486188d2f4a082efed2a473be543fbaa397f4b0181f96a849c97562eb7d8ebbed90a84908ddef4fc2ba64e96df29b0b87ed9bf08cc09845925893b6fe810f11fe1536300d18c57ac3084d73b9e17c1787846f94f8d15ff871fe09018d1615da6dcf72b9b087360895f267b24a8c9983e0679bb47b458113e1c899febbd4b5506af4205bdf560097084a3604137a2af7144faf05b0152f0ebef64e5b02133c1884e965648a6a48c670846bf943e291c3c78a5311a6b4416825ec53f4603e0654289ea351e16957130c30e31e8c886b34a3f2a993206b7968362f6e5579eff8ce5924626c6440ba9d7862dd50ad809ba403e8bed4cf3f6825e6fb3334eb3a13df05e4826df37e4b9e01a8a42c13fa423c17aa015ec7a8f5ebcebac433a4ab80439a0a20e341c80fdd8bc3f4ad1726c642f8896dfd98cd5a3bc44065acb9b9d4d1ca599408d5845ec65641b8ad3db1cd189b06c17d54d61584b67da1e976a8d4acc2d88a499ee1c7a20f920cfb426918fff4c75ed7b3b8db10521b5a83e56276d85c85bf888f7f282cf60064811d34f172494d8acacb3f8c85ee617573a99ef6ea935146e31633847d3ccb787d382fa41e23d13c2d6590561f6bff47c5631cfe902d44a9ada6164f8d3f5d157c1bbdeeb907f7411f6e95bb953ad36db2aaa9180b31ba5b2070a6e550505275be03d6824cb0c9f9d32866673769f38eb16a066978ebc631cdbdc545791c24080dca3abeeedfb0b7e5e71d486ef494cf98c99629ce20ad64aedc496edfb40d643dabddd915da78425cc751a46746d370fb603fddff203e4edb00cbaca91a559c35efad779f4e6aaf836eded721debb0aeb8f693fda3598670be92c94034de6a9f373c97a73d477134b87bc962c4e3e45b2ce5e5d31ca349c7a033d02d140d60ae8cafc1b15c36a02402156e333063f5f78381970d5e06d08efdf961f82d33c67e858b1a55c57852aa5bd05d0f059b76eb78f3b039126d4f7a32270f9c982adba92c310c95249a771216655f82a77df120c1ee1c74189d1212c28ff5c5f95110f67ac3266c1d79543c77e6ffdd859d61cf995b2d9e8b5bf4c129183001b1628e49b427990cbb7eff0f527b0bae7991b814f10816274817e937fb5760f38bcbae6c8058bbb0ba8ce444c75a163d33c35a60384f6f6432767412538a2ba915927e9c691988fb0e304378e84cf928e178a0ad29a2b47abf8631df06fcbaf2d22c43edaa631ce93e2faf93374b4e07861f578e09cfc6d582454d6924193bd0fd00f17c78583a4f821e90833ca2f419ae573e05300c6831c29c08589c145dee912eb5752b20c8edbd3da23dab228e13770a8b30e20dc33152023a1d32e6d732bc1d6ce0fbe0510fc1867417d48503ec1bd967c4c60be28b3d5ecc330b04e158ffd0294732e382b9667cea6c5826ffc4768d6d557f0137bef8f23aae77ceb89d9f57b327fb0bad6d7cfdbc965d9371de2ace2f73307c145924961815ce1d1f7d27dc0436461349799018f530b8510b9b683db19202f633d71fa78a9574c3d97d17b3cb6e5b3c6fd609a074b1c953c6947d55ecc8e5172f06efd6ca7f7118300e137eebf90fe45f9c2b086e4e0a4e5bc1a2ca4d55223908ff3303a5151de571701cf0fadcc4eaf9ffe5eaea347913caa6baf533fc7f1ba3ae3f1cfea8ce066eb7b1ffc37d99db45e49667430f6d92d79ff1cf74310e3248ee7a4c4a0a9f39fad2dc5bc4f47bb5ebfa1b77aadb7edf88307253d812d7b7222caa5d13479a5570ac88c9b12f0166bb74d836a21289f9a96a9fa99d32077bc3a3cda676b8fa1f2d53ada6efe32e592742901f821df5964862876bf23154889d26a0a3a461478a123925311a51a1fcc4e33a17f71cd15939b27f5d7c2bacd18a74f6b4649e6fda037f3d577fd3b6b7cdca2f4f7fff673d92101e7bd3ed77824424816f90213ec06a5153c8a246aba5a0494eeaeee755ed30f3fedc0606faf2ee1bb34c9343bdcdb45410b4ba37cd513e140379ede352fb31440cfe139a94138999ce87f2a06621d321182730e836d1cf504d7376f22d967826362a701300b880cb5a6fc0083852bad2383c2420b5d81c3825fb5a5ab2792dcacf6c8599bc611df9837927bb07d7e49e7069e8d0c5d81446e65bbb50714c3a5102292f5c4808113b28f8e6f7b133ce875a088287d8bc47fa9eed92efa985cfc307a33faee4e4f0c3925fcedcf92f7915d4d92eaf3aa66e28683d2a7cc942de142025f9eff376b2b827b14494373de922eeacdaa359dee1d8259ea3fd3d299f36721796493acd349982c1c3d32df9a8ba7a81a99444471fb9538f7023958e0e3f4b56c2358b9fb538c9bf57aaa06d4303ca76713698c44a1cbfb9d97b21a6689c6d4e1edcadeb5946359a229f8745cc3b68973d463e72a88b509c7afa9f60b25962ebbf3b8297a965169ada1ff5b156c8ee1acbdbaa0123e74665c2ce97ff3273fe2fad25b11111d7ced7493f0d227d4e3a070e8c8141ca1586de758a6e1bf43a8e656507710961b08cf5ccc3a542dbe19732ad5bcca64e46dbc52b986a0046cd582a5885291d4da5c1e5d58569f39440bb8883812eaa86bf5864ce011ed43c956d4c6ae5ffceed5f9b606a1e9900cb1f901c1df9bceeeb402bba2087f3e92de1ed49734996253e69fe11a3e5c2792a8838013fe566731cf38a1e3304d80a33874484c1b9871e9ea1c5772f410c6f5f42ca1c5fc217835ce8a9c5ef273a39af99fdaf94ff6a7f544948ded042e6b799539d272869fdb20f2dc2388f7adaa7c42b30cfa14f66a1069968e7da9647270f8a3dd3f9e09b014168a56e24b4252fd725ac1090c49d8a40eaac8eb8c2c53a791951a4640299141f0c70dd1063138a152a5e427ea90608f46f25ab67b327e395470663afe969a67b1642908de2c208ed889b217c946981f57e2086f99b4b7ea328da2556394c704c611f0624a15034924548b80e519df07a66ef3b14247a7bea6bcae2872c35402c83596136b79d147a2a0922ac9a44bca2d83d4271e6806c31384423a479a075d83f253977cd0366e1edf38844a79835eae2bd9d5d3f2e77461862efc50469d3b4883d316d532f1247666fe5b6810a20b8762a073b6b08347bf74a4533621570440db655f5059aaceece35115734c5f8d481e27dfff45908242ec479ee284291b45b5f1bbfc55f885d1cab096fc35aabe9969e8cb474edf21a9e48af2815146a51915ecfcdbd673adf60f9d1bbf72500092603d3f89d12943bdf3629c8fadb070e9bda32f8d91b000541a541ebf82a582645113d7b9ec6f2e77be8a0e98756330006e1f96b8d289020788c3025b880399a08b8af84cc1922853dc4ea58d731b0e25fe4e626e9fe4fc86c80dd802a8dc6a06b08d86ba52c73fc889d2919d3c20f922776467c0213c658d5ee208a539e79d8c8cd38201c5e513acbf286e266143f924d1ea195a910666f6c4af9c31faa65c7e28c88a337853fb1f5dce69e82ba1388447293ed6f808170b52543200f3fcc557c2bf08a0150aed50ac256ebec125ebea1cdded3fe963c03d131fb88afef0f4d81c2c07ec4218d9fba1c069ce5dd72a34d4eefebbd28e49261933c5ae7c2e9e0be5cc5bd9a0a880d0feb70399858b14844f645adc9fbe6cd7f3f4ae60f734f222ca46b9a4cb2de9f2896037a5e4346e3e51470e339f20126bf5256efdf85a78cc2bf9cf97e50a1dc0a65e8d0d27d4f4fd759772fb8c6e356429466302687bf78e6e345d4310ceacb78ccdedcb2228f8b723300836655aad6df96a9d353f077a85f573eb88e5c5a7ae12df5f6914d1037c75a9ea615ab2067562accfbd68640c0e1ee6e480745bd7b5cd7bda75bf47a1a2baf41b6cb54928b910e633c453b4fc72441ddb9c3863062b656202fa67e579e5ac3ffa19aa95d09fe1a491d56d3f2aa8d1583556121a0488d713800d5042e5229bee8aac6082c6cee4be69dade881b966cfa8f800bdb04b7d54cc400b614067c27008ea3c46dc850f68b0ab76062e28a8d7cf96a5d76e0c5dcbc34bee7b993479c42ecd59bfb8e5ec2fdaadcdef7190504718b3e2cf392f8a94b230387f4fb329e29c91ffd18764854912fafa58e96b4d5473e9da266bde4521f82f1ad8210129b53ecafcaf629def5967607d9d1f9bf342e2668e932b4721552f416f330fe1c5abaae1c2c8036f0effe29fe43c4ae307de776b79c1c0197a16a990bedd1a3a59d7bb906c436b7d559b31eb7b28f36c57b7d0ce82d45f0b07c274fa0d313c95e6cd3c6714434daf9d25b96ec42b4e42e0b23c793a0c3a5674d3099284fa5da04cefc34b7befbaaf096fd5c3bff953d5899ee2e867200a351055fe1fdd0167ad05f093f2fe7bdc6dfa908c7d0aa9c4796dd8bcafe830e26c87e8559ca81c803378cb0d68e0a65f9c1375f29ec6a8e2e6ae456cf2de625bbfb17addb660772f4cd77f038cda6a733250a99e2056780eb8e41b85ec2f8591766ef4b7514afe6b369335059308ddc6ec26f20b70e5ab6af0103f2768525686df907ab80428107fd259b494851c7106c8be4c75edc507577129366a4b6d45a1ccdc0e6798bce46528a74705bbe51dc0883353c86e98bce08430f86208c6c8011113a4948c1d5167e1e574b067271c6c36ea3491b9470e3d54dd13502a7fa343070ef73394d5d3bdcc1f25120cbf39959af5b4580dd3ef0273d4f3c6cea6b4250ceebec416d71289593e2451021bfbc0c68ae0c899e85d1f547041932695293d015606ffab3e35b521db17b3f40005c58b856f110250826fce19a857f79a2d80cab7bf94a4e5c2295ca04f7d61a488ac01fd0071e124ea829f307be51b0071fcd2b0e6cf83c4f35c693911ce1e0dac2d03e8a57c43e15847e78300af0152217f8476c08b7d25995b4ad3410cd2cd28f4b0d16bbb27380247a95a61ae28022d4dd3520d88ffa60a71252d8fa5780a9bb3ec9dd96f03c034b14d0c8499a754ec4bb3303d5d260ec1ddc4387af5e1ce3a09dd5d90f5406dbf9c21295041a89e89239d38f96845e98876164be5592fb5f9b16e3482edb9dc9bd2d3321f89e8d4c2f50f7d94e263027799acdc07ac5bdc3e7fcf4a718f406ea7f6f8e45b79396ade3c0ab735e7baa108a13cdae98eb12ebbc1f2d4a8db1a2f7513890d928e017eed479212ccb53aa019e12285c8464ff80f97102622147d94826561f5708cb95ab592320b2183034a9a44dae30617a9cd41a423d587d8190659c1c05882ca6e44dae875589946ef102fd687c28b7608c2314c69f1c87c8c386617cbef9726429725dd6eea76a0050f24d97043afc406ee965ee7462eb6ec57956709873187ec35019f31f6ad8207595e9b7dff198b13463291e4b223874202f3ede7a75d1e344882a157129f95e52035d4beb637c3f4c036d2698827660912e67036d1d66b78499dd87f63486a48a85c37e4901f083ece1fa8c80492f8b338c760a83f5f532b675d8ac7d8bf6b08034ddec6ed1318df1c706012d4265e2469e1e756469d7a502f39d35778082ab6a9ce4ddec5fb8a96b112c49fa5a2f6351225213d37fa87038fde05d6bb940813dc9628ca9a772d764d58658ad0b6be3229186bbcdb45caf0201000f3fc079397d31d13cbf773026724cb60330825de5d04cd33177d2047dacb6d67ddf108bbebc518e849825b87a5e35297bb20edc46905eaa9f77c6d2c16b14282cb39370a6fb741204d9a4a793f0863fd8be3be41ff130c76e87d50270d6bb20976f99563b51d573b058be60399852d98cdf321503ce80dffda1b7731be9bdfe39a87fd4704527d0b434bbaf4eabb1327f1c205f93125fec2a134b1fb39cbe52d792966b1d6d36bffffcd3a48bfbecf442a95ab846243cefd75c0193b2596c05e57df1d815a5b10ebd1e2d42776eb0f01ef951c69484b042e733a52c43a2c7a95ff403b2df3bb915977a6a63ac4cf7e907afc9dd4cf5ff9061999928ec81e3b563c6adfd1b696dc265583c6fc306071b64c40d56fd8186f07ced68f6e2f7f151361f7180bf0dc23faf0c139ab957eb5f8a75d8ef7b8ad853a580a7b97654da5dec2117a049e22ff3d72a9fc34a4d03a83132a569ab8ef5ca0630f9bb67336e08f398cb3fbf4c0105e2a30be8b60e68fded9b85a9a9314ea5a01bf42ccf8a2ae6fa20fc70bd7c85d65093c31a1a0b06d418bcf4390fa50cc0225b825bba41528425f57a27662c5c193257315589047cb527a6af5cf13432a7727b84de5bed98c1ed47d35cb654e2824399c59b2300134a73e516edcf62ce212438332149f015712ec585636e16a7648238ff98fd3d7592133bb348c2fff9670195db65735b5fcfc92e602058dc34d5365b57964a2201ea3f603037c3f3364ce2f11097e81d03d6b39c9d4de54a51323a61a226317928a29eb6fa6b11b7642b16a8bb34419d2167a55d4b787d5d3e5242e0d5bc4829a7483ba0042ddab22679f99004e69a719b3f2e0a83508e22b67b16d4ecdf08806c54fce59677b4c8c28a8eaa6a24e6876f8e1d661e8f301168e1874d327919ef79dd5d5b4b7364f1931f773fe3e01ad0586e7b950e625eec8de6c7a15adbb922ad99543e6fe4b782d0be0aaa9b5045d6140590dca38b3175cbb0158f2e9ba038e982ace71fa5f7fe44fa6edd51279711ec521dd01b0031faab39b0e1d3833e428e326f3ae3e2a929c02c6fc3345d6779b5ff134f8a5f95b03ff843c1eeebefd50882d70fdeb94d150e3a67a807db1111f59f2a57582d158b08913a9e45e736a31c363c8092675d1c3c1746f9cc6be7346beb2c41712ea534440b1c0e50a231aa158b9c2217fcc1a7a1b4ec8355887e7c3f35eab6d02f7bfbf82220ecea49b5149293dea98c997a9848e19d6ff651b4c6db4b976241537c382e999c6c1cb90261c72da0f3d018c6f1beb19cb7b6d5c939a5277c743dc27b90fc6233d2d9d5e061b3568c3da3ec6cf07eec74051445b41d456c3437a11d9b19d09176e2580512f6d84e9dfd1e75f24dfed8fb23669abf1d1d5c0127ada71ec7a7b847658ccaa36c6a93afcb98b0c390d05d1006a597bcfc817c763658cb2613f6910198e2e2c821c642cfa162263cfae82e2efb8ecb71d0a6bf5e64ac03d3bcf3a3e3cb8ec8dceafb53b7d1d9a381b3cacf3a619fa7eb2f13b7a50b2ca3b582d94f868936be6ab5ffca96b87ee7d44031a5132d3c6ab7524cc92da38e87bcc1def0b4ed797b3fb514eb66f782f68e97238fa03360256e71e23dac33db18e5c98d65c3ef714e977e9541e797234459a34b8786de44fb2971312f7c99ea675040b2edeae7253202b0c20da3c5ae8435a17f79a29aba2e1ab19651ab484e96b716c2eafb9b5f0c9f5b9ab3baf8b61a324caab09d1e9e9e25dab9b07cc3f70fc881e03549d89020a09f311388dfe373063665eb0678bd3087c74c2935d344a12dda030af3c1530bb6feea2a5d57acbb378ca7797ce8ea40be770489f3ad7c4ef3d132f3d9c6dbaee83a05da74add6bfd37c4f11d501f6a0d165be99037ba83012588e21667b6d62175918253f36b95796a0bf277163d05ad916a0741aea8dd524827db6a6cd2fb4ac7033be09c3ab3df4d0cdaf6b3f5d29276620e16fbd310010c2087701ca405d4d26a8e46549f195b108295e69a2cf3b7f7efb9cb0010206b0d6cc0530dde4f9041312059edb62ab859e131bba3f36f07da585900a21f6b049961603a7b632ac093cf6fc180f9d68abf9208e18a73c7def7796a2c4a1154a03316c350c238493d9d329533e6deebf750fd05c170649a61be15261a64ab83c5119164bde50312fe0672b36d3f93e2c60b61d7715816818aae72d74be3e89e179ecd01770a1de937cad69b456fbb20a66781091eab094961df491901bb857f2ef88de73bfc2ee08ab8315b1c9c49dd17cb1f625eb5171dc5790552b4669b414273fd5854a86768cbf481ab8cb2611b521346fea6252b5ac73b4f09fb604db8eb1423385da038ea3075eb830edf4d6d781261ff6c918812aaf5eef0acab851bd916245a139ba764ea88fd4097178371fa0a2bd1d9f0a681330ef9ba164cc100bf695631fbf32e765c4b491ff391b53b8e356652b81e98f22dfe4c17c7ccecf0fd2e23b7cb252e7196334802b248fd1b3240676ac75b01db99d5637235b7502d6d3cb9bfb655ea5dde8692c1067b0a76ddcb6fd5c4cca32c4eb36e4f1b208e757b9e8f2104c71e0c8ee26576e52d6a9a0cead83152f9741f814ec557da1cabe05e13b85af8671d96ddb47b8302a5dad31fa70d984d4d47f6f96fa479b2422f1b5d8d019eaa427ff7a1c22f5111efaf1a9a7d5547569a02807a743cb0dc32509c4db2ea71410b659978a2f6f7c65a4820a8de6e31fd926c5745d00f4fd80b2ea4575e644b089747f652402453b2f990a4fcaff96e904f81238487a1ea59f21f15961f64cef36158b7d75c0236f0229a47fbc7b1e687cc5b5ab7b373385492107abbb8469e750772ed980a37bd1ff13b495f7379b15869ae48470156808497eacb089f02e8f3cb9847b1307bf6bfc6cae807f53305dc6bcb5fc4340479c53215c8e97e2a10d4120b69f40ba1584dc3db56580070b085793d0c63a114aa2c9800ea51b5bf2ecbe8e1c080aaeac50a4f196ba53ee2705d20f096c5b236ad9f83c25985d6d442127b41852b71b0125f9527907fcaafae0d50e8d23464c1e81fafc261512800482f9c19b4f198574a1506999743b6886661de8c99fec8919d845e773dd8269e973f41763b53aa982c9bd3f2674187924c3a007f57cf853962bcd53153fcfde33f130560ab3f07169d8e73c1b6f3b422725fd4022c82547d65f8ddfa2a2711c23af4a74c13066242ff8723bd40382a49f883d9f75c1183231255427fb4a07896aea7871fed8b4397b81461fe3134cb2a998c736121077312eeac570caeeb7dafa2122cba37e9851b53427142b094ea2b126a6b7f040d1abfce43719c3ea41f9ed1eec01c236ad939faefd83fb927d0eab8d56d7663fe82ebbce168f3142e8f5883279216f0e042e74b59e30ac75d3b0ac5dc8988c73048b521c619cb9d17b62c99c99386e5249719b8f2218aec20dacb186eb3dd1e7b1ef41695e60f2378ac8235edda2b7d95058ee8bce5fa5b92d27a920d43dc15e349e8f401342de6b6426fa9a220062a7b8adfeaa9c58589ab3ca63067761113be23397783eb698719791692b745465a297bed168c1ee35b74a42b93bbeba997819a4313cffa544c3009de4f1cc9ce96d7ff91eb4b8d0f1d7c8c11a306267a0675afb85932d14117b7db6f41cd5344e24191a85bcf77101d87e7316b50109713f5f98b7d22e6d421ca8f8c6c662eaeb9428264451282c838ef9eb46bcf757e5eff20325a8331a0cc5df7ad7ef3c7a658c374f70d6d1adcb6090e5af26285cff84a622f9338afcf15c19a794f21301c2391e0879bebeda52c01889541735393db4811f6a68ce2e5889232034fb1a0a056e1917727e46f3b5df6d077907459158d0512150fdb4f88b9f72edf89f2f14a658e27faa2b2578144e79f692d21f24b790b5fb6c7b3ff5b9b1731052d0f21279c6496fba79a2050c0cf21b64dfedfd0be13866dd85ffef148d09182b330d136f725a456305789a889b378e553e6c36972892956b847e0c30b61d9fc27d8c90145476e5b8dcc15f86fc537e79622a7209ba17c82a73d3740b7494704244b72b6fbcae3a559a68c6d08ace70cf41576ec6810cab957171ee7a8f04f3677a15ada610847445f68785d43f885d4b59882e96732f1867e53b176ffb81630a0d2b48aec9fb22dac9ea9b6993e028399edfd21b2d6e1962ac19227db12f750811dd54cf5578f084f66b286c4e7c28efda681e661b52067f63f66f9b8b7024dfb47b86e291f1d41767d698e30ba1eda82ea89b6c603494472b9560f3bb5788f577f7bf754fcf16feb666be69f51e2bdaa40f5b81e8688985f658f1cf020506dac15e0276b45721025f295b3ab36cfe33b858ac4d6f4208a9743c2e0eb4fb627a5f3cd8aee115c8768a68ceb170c1af1779c70f89289e5e9b677a4b4423586be5759cc951a7f3e79b62436292b54eb006c48b2e4810ec271e9db6f26ba1ad59212748cd97006fc707b913f917ca4dfeee5d8c242bcd835536eb160a6403f69d94b625ec28bd94dd63e7c96c6e9ba8771d877f23db3acce15b0ce3743fe063cdd1c7ab9e858f03d34ca88edeea6cae7043883fb4befa9b4c5090cba761051fd11f309b6f11c39adcf82523cc79a84f8a49abc7a95a1011f7293f9320243378ef6605694ffe223ce8def9f3ec878d2265824166eeec969dffb8f19ebda57f487c7384b35b23995aa2aa501f25a4bf8d2898a8bbc5ef3f4d33356f4b926b0edb2015b31a0b75f269bbf12651b1d60d4d13438c5ab3ac9347349cf5b6e4868e58db4e2bd7dec417bd299e8f8c135c841ebdddc3a68cb06544889e41d65fc382acba499fa9c0ced60d16013feaeb9de355d5ef029838783226e6b7636fa84af32d33ededa6ef35459f18c85c5f21f870d577ef5fb71db5de418f2b64a10e78e713f5965cb8a6c9333dd2d492860c615a37f5f85a7088286130c5801d989366c595fc7812e2a9400521501943c0e8614326db76d2e056d2e29230f8911d1f2d775b4bbdb81abc7c6496dd8d7e7d95755c22dda6b9a893dd9f2cb0e7abd5473a63875fac1dd1126d4998b500933df0805d0c0944ec1984c16ed857264f30464299a0ddc7e9980a04b516cd796f303ffaf2a9ad788a89943229c67680d99d4516cf39a1f5b23c49ad79fdf02ca706c0d6b9125317f97d944f3e09a6fffdb3f47c689708d3886ca1b807408378d2a065992663d181ac708a471d7dde673dbc178521b9469eea9258ee681df9ccfcbff4cd0f1b3066724ba2edfe000eb6fb75d01225c42b6d1168a100939af6801a04b9f5e0bcb6352cbe704af1b6a852e1a16af38bc684613e85456ef8d977062982165b3b7bd3ec4b56b0150b0942a321a75dfa6fe28a0dda30018e3a30c131d0b7d370c2f37d9a99a87b2ab088c889704096c52225aaf5ce3b21316d1556d67db9c678908d901b61f5ee25b3e73a58338e3a640dd07481910af9dd7c30ee224a78243cbc4b83ee24f79afd8c9ff4dc7bd16677373ef7852ffe1c0bbf5a6efc1eb776a43c0dbc7fabf433521c3fad311aa3d25ab0204ae3edf56ef5503e05644d18531aca9c151bfe98ec4a0d2c11c4db9f527a074eda25ebdc14269f15691c96ffc1758f5daa7620d0dac5247c5fffcb65ec0842984254ce8f84cb0e2f197edf0ef4b4b6a09177358d89066a50df5bb779e96e21458a8ae9274789e4372f9d3e3b53e51d229a87528eb56e766b3132f2b5e0625772ca53f68d4f8bcfbed40cd776849800a842abefea699269662600bc04b8b629676cf08395a4b85c649acd2166961dd2d5d0e4e224eb4ee5fdf6b06ed963d37d9e116467a6c47db6fc1325206dadc1158680fc4fb8b5abdb97d41cc32755ec26ecb79951f14bf885265db044a2247658a4dafa6eee8c088bea7a554d4a0f4183fc8a75e3a81af5c219a63c9016d456d91288093d25755d1725aa43154d478bf371d749ce08401d0b59635bde02a8b25660c3f1d36aa070237a86fb17e5392fc274618721714da5159e5ae0d298bde61697bbe62441b22614d368eed6962e31649704636e1ca7a9dc0e7b63bcd082dcc04f0a0a87dc5b1137fbe59211ecae5cf3eff0bde1966b2bbba4fa5cbf4dcafe0b055e37f72287ff5198ecde1c959d7add40a84f17f48dd9167a5789b2787209a1b8d374358a996473708a5107f5eb6e6fcda597423f77520a4c55c59d04afdbf2feb2ef59c0f61777920caa4762f4efe9d6f1b6c779e35d33c5f81d49baedd0809b934c997074c8035e113a2c2a653698cfb5bee6d8ac4846075402278fdd68275b358e112a202aa4ae854da26a091c7a564a6e059adfa17c1df94d19bc7f0f38089e90ab2d235a5c1e7b9518a7d258763c63fd4cc1eb0c8c8cae0a60a5fa924ab60df8329f0f448aa24786014a3cb0263efb9a74a971d964d35049a825c8a46d6521613cf39967295f7cbeb91fb3b6d51e255d877f6cc683672c3109918cde8aee958fd4e4c2fca764f47503072961b625536ad5abc19d697ab7d8f15340f2d4ba83aa135ae9d6db02e70d7f47adf00f63262a6629141a3e85b335a4412172e0382c2c38d461fc48828afd298868c6c631997d92cbe046a10d1dcbf105aa8ca1061e5d70ae17afc50e88db59b91205eddddeb2667b1d6003db1100a3476684659a0d0ca15afb8f710ac45c96d98d8ff5103436fc77d9e889d72fa4aab15d372df92041f9ac46aa2a3c49d538f1b681ab8468d36c75707425ce0a083f3ac3e52c1f93e60a09885fecc161a4b61a0c593ab15dc5bb71a618c729b7cdc40f0f066508f353a9a87c85ff99d79f22d30074b691344d1cac410b03c975eea025d4320c88020bcc352b69c03e684f5a0d94ee332978f7deaf79056059ba6398db2d71762ee1493249d1d3696912ce17f2ac74fe32ac1b17f7902d21ac2c999a873dc100c6c2f458b6f31b779d6f710f5b9af32050b66dce5b44c9662fc28e3266661ebcf848eb753b431d068fdc26b28a179610caeb864df36ce85c98e37315016bcfd11311d89e9bea3edd0e5cd8932fcf31f6c3893d73c329df3618ef1ca2553fc8526652d0cbec01a4e3c7e1a1eb06e88e4230532d0e0fe577d7a68a23304b070256385e2e8d85290d8004f1bbd5c9a87b70423c6466e93851e7b5cfb1d23043b98bde86bb241f04c3535f0b15a25aa857f61d4d72e3a10861fe0fd793bcfeaf41a3d5b0ff93f7b60ebdb917d1914cbc6cc1410798f8c3813c23cb31e22ff416430009f03a3d6b6aa84aa72794550aebbf5c601487fd8ef50cdc93a73c211ac3fb95cea1a96eeca73fad069eb932e098e96278441ae55c06d5ba621e1271a120390ac623dfc5bc294ecab5fa202f714bdc55daf6367515ad38a9b4c587d191fd41aada5b3ac481030655ad384f0960dca8f4a452034a00ee7f4e5734590edc27685f44441849506fa2ac6556f49efb4f48b59449f8bd4535a0c42a0d84b87ad5195e3430fb6735e11e4cb0c63dfcfcf079c8358d13742430bc53ab59be631d88249a79b665fceb3678bd631044bfaa73529d865525a611b752784e458bc50ff03b951b93ae81b06bafa6f9268edb78a047059011c3bd7bfb0b1fd35510eff1fdfe0cdfc83fad539198bfe1036eda7474bad38f6074b463305a8d203c3236afd7254763a6a1a2697020e262111496bb53d3e87c522040a2308b7107fc084939fc701633c3f294c4a08a1084e5b59be2c8905421ece912e5c4e89f72c564966d0f27b163d495de3e4091ef2b6415b600981a7346ab36a4750ac32366101b7afa08c7d0f6f5d7871d7fc29cf8a1bdfe22f5b6f924186464397069345ca76a698e23395e7764a479bfd44242f8f18341c817cef4af49619ff69b21211e8b86bb2ad222e14ea12b4f0109d78769f3f2b8169d5ae100435002524665a298c7e3a87dcd26613daf7f481338f155528bdcb1b544e75c0a8e143d7ccb9e8ce60e940e38eb267ca4453a256677d098bab81d22d344409584c52e4c28637a73c5e8cf2b8a6e82b1f9e42bd6e173a88833e3017cffd1470f30d434e781cfce0bc56c23d984c29ee635021f12c8d30db540b5d300128bc03583d192a547ce73c3d6d54a52d6a9aabfe37d399e87a1dfe41cf1bf1c2327fef6ce5556cd5395d9d48997078232fc86ed324df58ed7257eaf05cde99a71eaae5a03ed811f90895078826f0a20c90a9545c5b59435d6da7d22617a3d656ef5b20a537f03117457bf42d34eecfb5c2b47d06159ef24148b1d1017a73e4232f63ff15f34050c86c21adf936aed856c1035d5ffedb019842eccc559332789b6c2ad5a14873188d9fbe94d274d2b9a3cd8817dab76ec2477f2b8e0883bb4081b5b4b4fe40b8ed4d274082558ae288a9e852e578550931cd89b6550701501e3721aa52889b1bf84aeb698b10e72124b959e2a672e0b075c8c9f166b6d55669f148744baf4ca699c0fa86e3934fb6965e2b8d2001d58678cf129751895d6ae26cc86a607bf850755708aaaff05a1e6b89aff38de0a56355a0177ef9c80bb72514c10f7e427ac67172e87df2b8f2f76597f5847fad3441b843f0f49e6ae4a9bba3595c9d5e62f6619017a6f115d91663e85713343a5a756cc59aa8694102ef20653a1dd21c71773d4231afb61421eb4effef78e02865bca8e8731d38c214c05f0a0f5f18581eba12aa798f8ddab13776f91c4c97949613e2a4c2b7b507d982140d0aebb232140b1d1256b7a20dc718a65201a4c2569f632f472d54f9c2a9b7f73461d32c29b265a8eed0b12260715ad68106ed61832bfb87cb40702e4bec374793cc0f504a8916ad8817557dd6121f58f755cd7d0a56d96660ede20a0da0c4a8d1092aa3b7e22d4da2fd82ae13e4d5c26a5e19840931c89c0e07251331d7e45f2c59fa3fb236c29da17779aeb07081193453d87d3b40475b2ec529ef6d3614f1d000741560b30266311fb36b66174ee2a0ad585123fb45c2a946c751a278418ca3c881e625be19bed2b557f09b8d782ad3a55482ff50ae7a0c07af3400e99cd89e7ff297ea6bdfb78d993c95bc5884b0bdbc2622531fbf27076ef66a49ecb6fb1a74759fd8075c7bca5375649455c2ae3d330ee2d3bd36b95c432fccdb76eef549fea6a53a8f1a815f0c740dd334270028948379d9724de82631107a11902fae20f52cade0364bd40c12ba0cc0f771995c279dd2fefb7f69fe4aad02c8d80147b537e35013e3b586ef5818e91c77a290987e83ae81082a9dda804061b700e796d42518eb7ab07cc0f3f37fa82cdfbf2ccceaf5b311bff0c86b2d821fa04e09de3123d9b7886cae15ef9e62ded92fefb72f03df192c37fd234a8c91193e1b3a131d1b4f44e01aa90bd837a3f5febad90d2f23f95fd5fe0640933d6da65b5440621dfa2abdf7704cf882401698e6a8632089eb82c77e942e9976c5fb2657fc76b5263222eea559fca4675f92553475b2ecadbe037e29eea756c10ca43deba8bb6462377b049d74735f36de90ec8770839a7a4120ac65f43486b0dd75301001ad63ac02aa66e19265626e2b5ed6573dd2bff0e27eda9f02705c3069e2375b463989f791fc32243bf2bfba59daf8b154cf026b4dbc5e4b6be64336c404bc56c77ccac4655737892ae737969ec99fcb7f26941ef86fc2dcf102c512677ac2ec6bf082ba020274c8cdd2a399d3b41f8c60953b6e984056334fc8906faccb0e232be8233272837bcbc6e6e2e3f759c487e8d1f0b0aa086305b05b382d5564b7169561e543c38e41df6caa6f3dacacec32e1c03a93ec0aab1e345f5b7b061c315b4a22527184ff2a534b7d09f5b866766f66fcce27e0362dc5721c5755c64e139f8026c9904ce670e69fe91bf68628dbf866aa2b11507d5c64f17ec004828516bf805f4e0533a528b5ddc6cd44a329a19d24a325ebc4343db3adde326a8aae0f3e29c2449f571c836e2b2ce2de417901a7b9e7a4400e8e1ae6999a3d9412e6e96e6ba5ebbb59e6147ee332d5fbb7cee549916809e7bf18c62017837a9bb3cee07bcd70b95adda4397a1489dec9fee99f7eea1bf28daf57934a811417d2e7797ddce89aede80e5de49901d4c3103684fc26586460af79658199a4815a1490e017baeaf7f37417e46e2ca0e2a4961fd093fc44c771d1fca844a6408ef26e71ebde38145873d4ab5b3a0e1bb02bbea08a795b68f32938db99229f8939115fb30ba9993c7621097dbe32dd5336ca98449bae9f541707bbfe94d13ba938a5a762630faf4c36b6d9c97c87405810f092b844f675ed875a6f0fc1ce683b413716ee7d952ec1339825ca282beff2ec61f34fe5f032e8b69f3dfe02dc3cd2233699ab98dffc2da01cf34133ec401cd11ca27e479efd53794b457e0298af70b6bbb8517b39b2b5717499f5b738fe832a6f0e6082a95c0d9ecd27853e62b40f8f14da7ce0ef3a93e1a0b02d5adfd20bb23197326a208049d4bef0d031fdd01c8e94b52d6e3ea5953a09a338315f404a1e4a8bd89078730fe274565c87a003f638820d473ed4e49cf78bd5e5c4982c0ba6e1b357d6033ebb2a777bee5e6dd074e4220413f730921e32255c0b1af231cd52f95c598936da7c858d2e8ca1769a5caf3166bc735c72a560841a03cf3fa6422346fcac1761d6d66363e40266cf00ed4c4bded4fcbae14e652b01294805e6d0fd7ee9c34ebf632148f94a5f6551d4569f184dce1000134becf0d05eecddd113738616332cff92078c5e64757f0d5f3c22427181bc8171611a00708971219459501a59373ea17f0a776d8b5c4f9822382576a1ab836e5c6b8baf64113915b52402f3a22d94d435fca483a2efcfa4e657d60b9a6cd9a7ded5a0c97b64bc3c3cacc67c78173fb03084bc70f14d109fed981c0d47c72843fd212020f974099b1d5bb094111b62ec68a07515e55af838697242b102246df3b4662185f2354ff7794f78f3d204d37c0e1ef06cf83b1d1bd54b7092f7d15addc4cc4d839e217a7649db20303abe4aaf31215afa8bdea52bb201f727357c1798f3116e6f71b4e01be0066884e9dd25afd2a2e6d455703f1d39656a4f8cbb825c910749addcefff025c0a0abd3b17b59008ed13cc61e42138ffbc8bee78840ea59813d24165d9476475d6d3ffabc51d463320425e4e73248f343d04f834b527c0f4b0a70c90f9f7b6588d85516867ca1f76af997b9016e2121795ef5c908d2e1724eae142d3de0b822b058505991d6bba0ae3414f0d0eee34726536b55031ff2ba2e43005569737ae9c496081422e867c5656e788465d180d87c3b8a8aa280a8f43524b2bc83bf46a691820fe298598050f7892e0aa4ac23285b54863dedffc4ff4ffac9e05639cf80f636a31d12fc630240dcece59e142bcd0b9749d1f27faaa1749a5de89ab98e901d2740870de1a8d98ad1db3ce715b16ae402204b9b262f41da0b587f1349cac8740c7dece695a6deb43c4e2740cbca5902ef808ca992d05c40b40f8e825f1712f3bceda064a61f1398fda591b0a9864355c996515d9d0a9d5a2856cf025d5bd11853d5a791e15abc6a4b5089c864aeee617afdb15d1b9d53a15f52b4fe3e5396e964298c229e5c0296a9df7cfdf0aabc49ec3fbf5c5559d8d23c9a1688f9d97231787f706cfdaaf051dd3ba1639b10daba7ecfc165eaa387524f77a675edf954d68039abd1c3a0fbfcce7f04cfa8a1567da45ef89287e9088806d23dc09947be41ba130063db2f75fdb62c50a4d3f8633553bd33d1311188936a23c7d4e56999176ad2cab051ef08181b8b168a2c3871a26a45facf364f55c5671e7b16e2fa40cf51bbd2c69d481d34b90f6552c60a0bad4ac807e0016ba4d874bfbeeae63fb3dc79841940489d690975b87c161c43a1ad791d9f857c32eb782b48439d64e2b124c6b1d5b94bc01111a3c62737e2b2aa91b2ad3ff7607f37f94112552b5503f639d2814637bbdd75b5b3a8e790191de4b8241012ac400f46b20c82d269ac9b49c04369ad93f38749635cc39792df53a505ec3e8a6076afb961bac9024dc2621c77f1bc3e20a58d2f659abb30989b13f78fbb470b7eb42d92b8fbefffd54ffdc7841a6b7132a7718d9cafb377c61ddfada130088148208eaba183cd628de3f46c132dbdd17925f79835fc2cb1844c27038580dcae7bf7dfb686afba43adc676b846ab91c57581bcd1f44aba0e584606e81ed2e2ce9fa03d28dc91b7ccab2d531e5bacce516355543747920bb83b90378c0eddafdcb6f83d03f8f034c184b23494c2390ee5a0849d1ee51b0d4883ee74545e3b5c564bee384b8a9aef72693927d525ca0c3bd53443da9f5c3b403b3ea80f0506dc5d86d141b741b4df24ffa893b5550be9f94bcb6e925dfa579857956b1c129622eb761a5f86b78318298f72056c49ea130f58ed2c1a75fd88b1f39b091555623511369ef02d36a0f033a83bc6248189b339f35bde93119bc35435e9f37d735b85196b3cc5148308ac1df9abb3bb94407145fc54f146e8586195596e1c40214bb2a0655e1508b1b134a16be337c7cde90f5397467a0f26e88ff13544f923cba4309efc573915a1018454973bd064c5443d4961cc6dfa374c4b6a751f0066cdfa14bf361d5ce4c09823a76c450e994486da4a3ba8229368ad5014a07208d3dafe7acc5e95ae7219483d66bbd31309712539c68f2099a287825ca0035c257ab4b4467f800e5cb3f52b78906eeec792f3cb1115788aea2ea5a7313ce5e87e930472e579baef8a7cd798e9e5cef635ebb040f95a4e8c9ca401faa690f494190d92d5e691ae067c425530f1e35d6e9fad9dde0346e9f6c44670b07c3838247466ef998ddece789e624bde31d76c26f35e2ee7a1273df9e36e335901094d8ebab639c4a286df5032e34a9b7517054c188c891d3b230ff30df6d0adbf607ddfe0acd7af07ca0a321b3c89ce7f90e31d16bd6d515b54ef91beee6c822694569649685eb534bcc6ebd677a307f89fc8115a605fd03d992eb71bcc504af209718b857f5bd94397735b9fcc193879dbd73f4220aff297f0996de4013248a2abbc7017d53b00365dabd06cee307a61f9db740161506e00caae2b7e390e68705281b7af80bf9ccf3d62d40178c600aae0502c68324f11cde81589e9452d89b0a0cfa5ea4fac072413b92d0f22689ada28d8ee57b42d118af5ba6adc3bcdd7f19080fd85c82a21730825cace50cffdf538c97429f6f6fbfa7ec1f3d2089aeaac30b4aebc1222f99683edf99f93254286888df7ebb14c3f272cb38303f2f56966f865e8193136d7a9312d409a82bad7157302a0793bf7e9d0bd90dd78ad0b5562e56427ad998539ed46ed57f17ec458a73d7c3ef219f8195294ed95e1e91ff7f3d7ab1d149374fd2134be48a6df7e8f111a3f6e0f1ab644e785381d26e193a5d6f94a9d39eacc128dcbce44d374879f8b0ac94134fa9f05b01e60aabe3d6c376f3b1f060cf937d23dc961f982a8e6c2c325f725d7034a5c474cc1ff0c073ca6839a98a435be94dae5037be8dc11c4c19843ee94de4e63524398d8ce804e9d109e89744931d386de9e44954e072353656551a585ad529079e6da8c55a1b7f31e122b12d2a57130dc4d0885497882e5ce4aa659d1af7b7b59f47d4605d880c94ed97991729e3a6d36640789668d75584dd730ea0952ef48e73769d96b7ecc37cbb0f041b8cc792566e4eaed6a0d854877274b9c99d472b15a37698c7d105edbbcb791e12cf93fba4f51a79359ce849d23922b8853d498f8029ff43f3358bf6f949afa41ca23fb5bd70c99bb6ceabc0e8cd4b67c4333b3b3a76f2d741a00b693213661b1dae7bb215576f6ac25cdc31ddbba5e67e806ed6613f7d7f7b9f2b65350c0ecb3b69a66e169e3dc4a54302b9ddc1964229019b7e48244de890c5e78126c8928f62fbd6dc9c036f4a0e12d83ca35ddd3a451d6478f61f09a41268bc11fc7e3b77c032b0827728c5b993305e5d02abe8c9d18216c6a6cb7594b6f0d40f045423784988edc9ec7a9e7b2bbade186092fe71d2f2b02c4571ef7dd6bda4385cec03393434dc3f34f1ee5ab2e4633f3647891ed31d8a5ff7ed23e7f2928b1b79554c077b52326efc93a5c868f9627a9116261960902503936436a02a996745a13bbe995f17f634e4d8484272dd9de494854f2b8aaf09f822c0b6a6c6ef36fe72700b2ce313671100cdd33c582a7decf4bfbc8666c5a8e66406179fafcc2a7659c12dd54c8a1b8a5a0f1e6d85d664817a56d0778e1daf554b7a88c7f32ccea81c1e73b7a7d2c30c6d9b5866cb6dc55a854db0369e3148ac7d8e6a1b441522af510f78ce43cf45e6ac63694edcd9eb7d857be164b8e52c62d6a7b5597a62d1b3e47c8aac327122a2f9bb2fd7d2bad105813780e601d58c47e4af0bc40d2ade3e95c42e6ecd4c570a2e94fbc2a84f7096925770cf21ae243f697758b79baa6a187720c1872d3e2e359882c1f9beee57d3667f1e0ec79f13fddde82bb268cc7f94735d6dd6b31dad8a769ed59b590e8ea7bebeac5623d5415dea0a38f8d931f3b3c3e1f68a8084976f7e2a378e20ddf32af07fa4926a026aaceed29cc5f8d7ce2877030b1afda03450590fb7b3a06ab77765c687c2560118cf7cc7ebeff346dcf6f3ae175b551b4b1923268365c95f91d01cbddbcfa37d2e8adb720de69d52351b6f5de063f60905caec52e0c47047d10e2695864793b1c55085a5723bec6afc5f765b4b7c14f6adad396f1d2fcb667a6d28b49a556b3275e3aa883b4e797c9e43685f21bb26f07cf883040974f825f36cdc32e9a4f4cc5abdab803e23036140a5f86fb97967b4dcf6b6d6736e760809b990abf5f5fb7170c39fdf1846ecdf39baae1acbd156dfe3bab43e8a45a9354bb1a558255ad13203ebd167b356ba3ec0aa65fae0c53632ef37d0540eed5a91fd7111834301cb4d5d943f9ee4f098612216ce8d258a8fe78f0854ebbc7135642602de40b570c34af5261ded1ac6d27b38a9ec5d84a0ab1740affb58673e4a947899a883f6cc9527b414509638145c50e9e3967459201a2d8ffe77138ccd8d6d1cc723773a97a39424caf4750b204c02e724f922298f2e69b879ec19782a56fa98a0932f49e252419d39d7940afd5c75051513181a258078d5ea732f3b3ce2eb5f0653a8f48a8b38b89ffb8a43b7693ecc9539c72b3569171f2098e5f813d012be794f12bf713b4da9d718b2a1e7f6232669921e63b68ac6edbddd76605fa46732f689728c0cd39645161728f9d5aa2e50e2998d6798458f6c57357155af47a36dbe979079e8c8fdcd2a98a17f8fcd496a129e5b4aa341d82f8c8930137a85677c13233532dd14d8ce746d0c9dc3cf734b0d464e721fea4922bd3729559f8ef7dd5a6ab860c4b395a6961d023eccc27e7b1507a0e567eec279078d024ebc7580894ebee01081277d858c620a1202db6074b8ad466cd6c15ca698528177ccb4f1237004112004f577f837abad5f60f5148d26d889442e1a806d1a3e42856ba665e81e37c714c426ef50a09b5758870d0b305c7be963c77409a3ea7e44048c0c1a055ee36af7cfc7b77b208809165fc7283f045f547e418e7d320e3144719d89f86e8faa6b063e690f197bfddcacf8e859c7559eae4d73eb4d6a53ede4cfeb26af6d25c3af5f38a1a8e7553856facddab0659128a8d39f532dbbe33aac0c7ace5862937652f95289c7d4edac861c2c2b17002d41e38fb850745d9915ccb3b7d3b58a94a1b283273d6e43ed80ffba670e8eb32e016be498b2958ec96fbdc63967f4c23536d10e6d5f995c2e0f948b75d8fe19b2d37922b40ca358d8acaaba0d240988edbaff8ce2948c7adb66ecbca4849b4915f68ff9a434e115d725aae9548597bc73c8de8c6c052f01d0cae7308430cf2fd5ffd9426ac76c22a3a6c800966b6af2f88cacc4b7df7735542fcfb06e9ebe29b355e762e2a2ee6d76f0e33499987c3ad349e3488bd3eae54ec15785d5b458fc57b4b0bb436a60df9f385548b33791bdb4d42788b69724f6cf5f751c24fcf68d4aabeee8e505e1bc25a66bab1a525c9f061688663062771f671bfda602248e03bb1ec0c0ac1f998968d8b641415b3bee108d09128e74977812bb17d8d07f6e2355c4a052cba6af0b795c219634a47da12ecb876a718c5796b03b84306d83941f07a9af5e624f4e6cb839db87b5e63ce86af6e216f0707557ca49aa7fc04989296cae45ffb20fb6a3856714ba0fbec54a8b477ea13d6976ad38c87c841011d3715404dc7e3ba263a32f528750b82b9060b88b0e3614c493f4a24e2cd8cfbbf574b6b54294190744f01f5bd3c26212c81cada5b8da7052b7ac12a5a98c7c4e03b82f1b277f7a01f99e3557a7d089ba65f3920a803e39e887a5e14df8282275bc561d67eabeb6982de4940ebce06150d658774305774ae085ef17f950ed3efc40053f1bc85df496faaac3bd9e54c965345e956e944741973724e70e14891f585067c9904c0ad00b5be3c7954b9b126b106c84be83cb05ed65d750278cac3f1d1adfc6711b799acab07a2039980c733bc95dbbf7e19dc5c868432e938020e1859e35a83e06c92ce95830de446ed77891747fbdf374d890918382bfd5974dd6f09ebef0cb72e3334550b8d5c1d58c298e5730b51f08843fb551e7a0238a5d705e1edafbbe111318fbe7dde0b1cf115236ef2b36fe0a549e25434685e823609cf771f5f314e54a53f089986889000220f088bb5fa57fc722d628425c43181e7e83e16d359c96d71d4b8d44feb12acd53096b529d3d39099042d1ed9b86a38342f2d7f6817a1e75d6f61a729e0679193a318d56d2856a2907e6b4543db7fdcc76d6a3659ba6b902702022fc5358993422fce017d44e848af6c2b2bc9b129ddeece4c704176b304f7cbd5c5956eda69d36622a38b3fd639b3ddcdcb2ce8548731877dbd07ce86cb7200464596afce4f1733f68057c0cd238a3bd54354732fa09dc0dfb40109261915ef0d4bf403349c6f9d4cc88c38850506ef2378c70f191bdefc8c87cf2b03f9d9ec0846fca32d6371844464c8d94399e898c9ca3d5cb577067edfc21a8defdf65b78c517fe0ec63c4c189718d4e62da11ca09df8d3804ef5606886fb6e8b2e42205eba9557cf8400d4bbfe2d4645d31cedc8776b350256218e473b4c3a7a260ac07dbc7b6df17ad4a3ff71b99311e3c52da1b58822f81dee213b198f9e457390eb25cf7055e7a77f4b97638804bb88f1974b6c1bbf3ce818a31a16cf6fd5a183b569245a34930cf7ca9b1c3de8481062cfec871a6b5d1be7495f80f857eb5458a69fb18043d0e5c86c07a585dad2e48a182d2843121ea5fad9a8efc5349bab3e50e4d324c8e9b6c47b3b3c17c307dfe55abb0cf22cf52c605c37c52a9fccf7ed1c960432f71e24aa107c6170efa8e33342c7110e158d1641b9733c5d98b9c4c03bd89d0483269de843726ca3a20bd2c21287bc151a4454e3f3640be2fa722ddb2b11af739da8d7b9c6a8b5abfd9ac2126eb3d7a14fae09e1b63a933bf85c83555b6de1908cc1192146104f0f31529574d60820ef6910fec1f1c6a01e9ead44a5b95a6cd08c815499017c4ccf7e45d07b39c900411ce5de6084febc4e18f162bee80d1a8b9f6d0e7cae269ce8b118ce5d2a39602f555d52c6577e0d842688d9a6edfb5b0c11ff1d6b18296fe756863c98be227c3165d9d963cf02c5fc07259476de606f9ef5213447ee05324f2fdbea783051d6f7937084d830ed239cf050a5fd10bb914699b6367dd21f15d90f79e86084173167e96e71a97bc608b9f5e5cc8aba504523e2126bb4143e25cb9756f3dc6eca9b46f7cf22982db510fe42934e8cc6a5a59ef17c7027720ff4e9f57c36eda2428ff240c89f809b0a48fd515f1805e705cce6e4b30a32d9a3d0c63d895816815c1aa7763f67e9d9b76a59d11e39108700445e7166bcdd73ec8f6ca62cda15d97a1e331a4e32afabd1b4a6e2fea6ec54e98ff63dbb31772c43e5ac69aec45311029c264bc486769013436558fd554b8e57bda646c97a7676e54a90e166a86b90db0ece68a319cdd75a03b7a7709ed916a409704b1d164465717aaaef44eb66b6f3da8cf0a30125912a35b3537ef341a67196a24839cba4016c7555b04767820cbbc8687faeb9134c277a79b2a3e91c08202e543a1055d65dbd1d15fa07599993a991d82562f37edf9d76660e2e8d8c7d59183bf98cdca61f315ea52f2c9e8f42b57c274d9239a1d9fa010c50c2087ccd85fe5ed309431117f8e27479f44355d7dc0a0046c56210ce4ee7ce8fd99bbd7556e0519fd73c28ff26628e91b1655d16a1b3ef37b6d32f72d2354c283ce180bc3d18e36cbb3b5ab6337432eb495ba27587b1f591d291b85b5e21e8248c65db16f36f7ea26e2958127bfca325b53791f998de6e4cbd254140f0722832bd8d5d76f144a94a1df228f3bf21e967829776bbe1a0f044cd4defc72c89bc8795cded94f7bc4f91e7de3360a3d6827953bf462af3e6e4bc8d80bd60d7e8549e322e6443890ad4f462c04b492ef25c2a5c0adb976434f98b3c3ffe025b5dace58124a0146dc1117b17e904fd4cd878e2e9a8fe0d4cbeb2e74c38078347a96419c8b7127c2e3bc74e01f8df844fb21400d5aee4b7c897b9b9e3392edfccc698451df8f69b9c0b1786127313df6a3751011372e1657beeac5e5df481f441b84606ecc4b28c4a851377af31fe7c35059854293981d20857924fc88ce8279fe8f20e74e319dc0f4e86eb2f978c842c884411b0395659992932a866ff8ddc051c27924b658d60860366b95f9d1a12307451c8d5e617c15beef2b42f52cc0335f0aeb2d65e31418defabc101af9c1f04cd0c13db8fed9300da05b34c97f7ad15edb3c2d2edb241c9cc7b1b485219c5d17e1484974efe413b5af6b59dbfb74630251bb7ce8f58f5219bcf3d5da3bd3da2861d25f345a0f347b2ee35343dda123366c6dfaec8567a3f84194ede9e167ce9aa47ba6b30c18161a74322d875c59870f99aa72a19a3c313d08d565a3c391ff8c3ff99933e6284493d19748305f8d75ef46fd94c45bf444fe9060bd658e3498994b2068f4541c8c6823225e4d03d97161946a9f6ea3608eb71b5ef4b71df333732d29d993d09c61f6e3e1fdee7849cd8466b8b5a68c9d6a2670e29252d354d03feef9d7e10a4e6a2c9333007387c54847a6bb580127a1a7458a9f8c5b8f071cf2ced7b21b8877920308e502a0f664b225ff1fec3bb009623a700ef00f08afce6df837df7ac18436f197e90c66dc8db5a6ef8ba548a54deb6df45269f583c7c72cdaad58aa47b72e7f65dd18c29e5a2fca0f20bb61e4bc1f81bbc6eddecc4730579950df79f709fe65ffe08e4df239e7aafc327400a8669f9774a31ecb572cc11fc525b6f4a112a4c4e9b2c69b8d74f69e2b3fa9e95281d8c9638f170367198705e4de5b9a78cf7ff6a8c0968f70aed0473bc9a51d70feac83547c202a5ab56dc7e2bd8ae123a10686a024266603a61a97bcf062a1a876f88d396bcaef6cb29788bd7a2bc8b9d14f578635c97682ae85978fdbfd393b23aeb610e7475b9205b450aaca2645737d895b71854673940193c579ae4466b2ad8d40b34bdccbe7311ae710908bdec38b23fc8de62f58208831b19c497530f80d26a09aa951b961b5bfd50d6c1ee33793d6b6aebc9931ed660e501eda91fdda7529984c1da40d7d189e308acccb714425297277a3a4881a2872a594ba9a01681fc908dd594093d1866f413b258e954d1fdc30f921d4efe9962a3ba50bb2229f6ee421f6002bd8f36ef28df69d7e9c6a61cf585166394d9fdbaa8f68ae2c4436f84e533fb39945f1b345c32ed2831c8f905b71c75b03c2a4612b882909efc3d918d75e9bf2e3a8fa950cf2861cecf0ff067948282bf1e8dad88f579da250fce824532b6b51e50ae3cc2a5b99f3de5cc6f0d9e7e587e44a790a5a52daed39a0f322c1dad43f7eb236e1568d059302715a7c7ebfc46096c784bdab24578c60c5a54487fd2d5071329656681f5330f60a3a21e132b2ae8897d7e432b713b1529671a106380286f45933b4cc3869f67ede58dbdb4a4b71042a3e5ffc1a6f47488c9d25c17dbeb0bf26e418fe17f72b1405d76c8eeaf940f72082b6f4bf516a116b3f45aaf55b15dfe692979f3d27f875e4aac6ae8894762a6905fce42e4805c920b4d5d824655af420e68a5f650b2dc62ad1af649c3557ca24603f346648d6a0ed747d7ab8b56180acc4ff748226ca5f89330ddbfac212add8ec758974f227274ec8f87893fce5e97d4b3c230cf2ce3e2b735aa7cd35804002a75519c7ade56fffb7e093f7df9879ec41b4354d8bffe776d24d8b38d056f6a07a0e96054c936bee51799353587f1c71ed23440df75e31fe2621a2097952fafe71200101726e5146085d295111c222f9657c2e65e2a5cd8aaf5317ebd67fd14cf1c217e884c6d3bee569bcf6abe1be628050019f417c9b4a205e80e9db29015482af2a14aa9e2bc26f630154c1cdf720ae7de1136bd635919d326166dd69be075545d13bc4785f8490e8de087ddfa4a5e1ad7ea1e54ec7f51707360dc6bcbd7f6cf379168870ca228e0ed69dc73765cc2378924049eca764fdd3bb7fda161129765d17f09dfbb435abc5530281b2488a9943d241f06629df75e866d44bd41dbd25eb66116cfbfb5c31d4279aefb6923866577b2a55c97ec7c2b90d890c948302990f063e56533a96d1eb0ca6ba0de75c40ac97972ac4c6b1fc6d2d04cd1a0443e6b3fd35bf71821ab40c16f7a33a93b9512b68b3dede5b93aa4b833982b54fecd4212a12eea82f68fc6f8f68632722588b9b6da6494bf86a4f5026285b3c6786e2a8be5b2bc2353b71117b3548dd559f6f35fc04446de195baa83c165fae281221c74593ea37e385ac50d3d5260b3ef3c4a4a78202a05ca830f583a26c7b91cbc4ddbdb1762fcf8b5a464ef3dbd7072c71191a29aa2ce89b99d41bbbb740aff0ee0feedf7443abbc267ac68da333665eaccaac3bd6c5956abd213b39f01ab15f3514b35195603fd39004a0cb30c7ebc8dbbeac394679ac60a306f995ce20efc166173fdd836860ded08fa80f067d05fa7e6326d53866985cab92a652ae93b88a24213b4e73b848f6b59e9313db25fab85303df20eafeeceac8dde159bd4543ea95de46b09af68faf9f724ceb92154f0e9336966068829f5216efb2a575781da6cf141586658711bd8e370ca012df9f4f2fb2b427b75eddd765abc28eaaa63c96f51a2566bb15391d7714adb3f2eac6ed7de15e0194ad182538e081a9fff7bb057a1b3643a63144e4235f87e52a45f8c7005e202f26b407189820d0b6d5bd2e39f3afe22abf2181c11af0e7000c4c26d94692a4cff6f114b32c9f18df3b9ffee1b264a57dbbbd516723dbe363d4ba1a840552ac5416ec4461edf8236877f37104a53886d4f9fdc2a9f0594967dc8dbc494ac705a6690d1ab924c291f4e9142bb7577abf3a2027b9e04d2141c1cc86cbe9c8c825bff9c3e5958afbf646ca47516aabeaf1ac9068888b71ebe96cd994b86eb0836fc4c8108411a8822a640968c7b74b80b39dd157e553cce869825a0a1810512fcd6951bcce813e56f8cb0dffcf9762ae84a832a7d439d40eef92a5cb3089bce67630fc87fe80f44f73d8575c1d2cab2c76ad8725de6d0c60554fca612e892f100855672fd6fb645cbe7d7a7dafe3264ba5cf3308ca770aca58984cb2be1e4d6d5ff772d93be2b0cc03c8ed2bca71ec6d407f5fa0640bf512c393f720327447151fb8894ceabfe5e62f0e6f0b0ab7be264f4a8bc6b41ff0fbb4d0d9107e499529082cf753d1f67ee1c3c1666ba1e594b4bd1b51cbe8f19e2e16f19d129b44f59cf077b8aec99d44f525ef28cedc55942f1f05d2735df930b108fcc1c16276acc95ddec3c03aacc8dab17b0e0429bf66b90c8cf601e3fd737ed5fd2473c4273f0ebbc90bff97719653c2bafd0da5091b8e37306a1a58ec6cbf3d82d0390fe345f464045f68c3a488967e4569156c5566de42f3a5b1bffa46342b35d8f56c843accd6a54f4c1c1778a9e90027c6291f176e9dee032259a4cb79ff190de15005920511dfc1001ee763632fffdcfce7f0c705a853e001fbbb45e1954eb18bd7a7d9582a286d48e35338f690592e69b0ea5052bd085a6d491c8307be3d9b46aff03be1024f33f6f2177b0fefe202c2fef2da37e8d885da7a08d361a6a7795c8cd5360d4352e310ecff83ef24553707e8b8190272cf85023409a6c13f700e1d21383518c48dae5dd71b83a5fbb535f5f7ba4eb2f4636b7041bdccc2b5f5a810276c1389334a8de7accae4e9a471c36510e58283e13b5c1adb3ae5af4b7a280408f926591b73fa5cabacbf77050d20307c67cff71f2e70819da412bb2dbd8b3bb6bd8426cf1b736f9a9441dce45330ab1db44f849e5c355663750a4cfea8f65b609ae309ce59f142f1b33f46215110f84b636f53c12d0ea39c8256b49c7b3f2a5e011cfa0fb963e5824834834b7deb04577ff6ef643c6ae485bf6bd9e9a5d8b8a566003838175965aef318515a44c10b57015478f67c3da951384314a4db889394a9e4233250571a839dc152c58f5607fa82a5cb00f080e19e9150dad10f510718b93ea197d495532d49cfb8ed41933105a6f4a47f248e9bd29bebea4d64fe6ef5eb5b35e7f582c59263baff71f6e88f573a40159698f93f0f1f021b7d623b678fce0854309c363a8a7a9aa42c0f505c017fe1a89f3a9ca34b56a92df0a10379c11e6396e5a8dc4cd67d4332f46f0d43f1cd61820b22c6197be66058cb32bdd613fe1112497b7007b85bf4267c1d504bf8d2efab5ed014c24a625a346d34a0f6b9966f2484756399bb9f59c59466380622804cc298c8aa1edddc39addb15210f9287ca66bd73aff8ccb4680d96eb7e72ae170223a9f4e2c9a27602a98599e0e526a64b847182c90df19d676c8d77ee1265d9ea3e5d83d73e41c92152d19730b5ecd38a9ecbcae526815792e48a230b54878880eb60b8059eda73004bc06858cf839549129dc5dd263c5656d13f35a40f9bf8f673bb5d5b7c788688300758b4960838d73f375d3bebb42317ea675ff98f2f7db34487388912cd222a35282e54762fb41cd3be620af79391eadd0d3ffee24948ef4f286ebc6d96dbb69ce8c4e165adf2f2d1473d7abe46dbbb021409a7e6843c536fc566c67b795079828b7a21ae5e520db0ac5a0c1c533d21767f0f5a587606c05fcec32058259ac774c69b32333b564da6368671ed6f4a416179dbf6fbc80e183a47652ac621dc5addbcd2bb1326d1bd1304c0f7b67ae7d4d1703d62415e965f07ac6895f8f18da4b0e5385a3731b509e5145bed3ed748c62c76306b753156171a3d4933cc9d726993e2e0c467f46e3a8168bb4b02fe915899804d916c4337358bf3808aa4fb8304ea1d4f3e490664531953bb58188c9f14fc4ad6dc635a657c568b0cb30aa70ad3c48827b610e670130bdd3fecdd6615951e62d683bbd8497d289a010e37c86b99d92b62276dc2b178be7bad33a6612069e55d4ece121180cb6a88de77275d55e809bb3ed9cae0526ace2b692aa63d29ffd1bf7acd2e560317f45a15f5a410e6b120c00bac9be3e67c17a735ff62faa7b5e526f038ea48f485d912b37b7673396bdf4e9a26aed9378331a035b043439aa0e7b1a214e1e8c4a971a1c1cbcd31ef952f5fd756026b5f61966596c3caf2f56982b5949c2a572aa9f838a7cd9d6f8d3be098e37e10bc8e7b8a9cd989d57d3725bf9911e45ce0ee8edfe30e7ff6bc2a4fec534b77654e4f5507b9becf5887eba3e25aafedf2864f28714ecfb9d8fcf8d53a94a348bfd9779cc4363f3fe2e1efd11f4936fad962b5a652941ec3b92480ceb756f1236706254133aabc0608cb4be7bfabc9b6c374c54165cd38bd665a7fe7727079e3afa379b0ff25888dd7ed6258ce49ade5743668c588dedf05b083cfb7538b8e06a890211add639c727e72e3a4f6a2661902f4dc783d6fea4eb57abf61063ed85e06b1d715dc57cfb2469f872f8335ec6b0548755f8421765bccf6c3aebef56cfbdf3d989eb8837ed9ecf88958169c3e758efce55f95c6f72c9e64aab3bf266996841fc26a720e086a5fcc2e3d68adaa1c4ba90c79c01df72a90be55ffe85d46f71233ecc3398d53d2376a09aeaf6abb0bf95726dbbfa67e13083308731421bb298efcb3f84b3d60a664cb0c04939459c889ac97f0a11a70ec2c1f39e5896f9c7a374c4e4ccd986f29e4e93440ccf38b574d21f2fc9a367b16c314afabfb7f465f4a8bee57679ed1d9a3f806b3a9519216736b4f6ab560f073fb924983a18d0e11386412f5e96f8823103be8f017c01f76cfdfbbeef112f846ac4c549541d1a97a4954a3ae452f81c3c8b2d2f526b0f6c105318d0be63f9141efa442932f4a15b6b10c9a6a10b1fb5fba0be49c17ee10f356f6994514dc2ed37510e609bebf703631424a6c00c063b4b86f60fc7df1f198fb1fa2a75a985eb30ad613de4b2f4f70b63b2354aff2aad0fd070e1b48ef1c107d30fca61a55f84e3bbd29cb53933d7694d4129f0eb6a91adc9589bfc5b83b4a0779ef10a381448105ec79ceab1942d61ef91051e188bfd8427f036a32c8887a86bd26d531f89f0c17efea4fe61b83767a0d7aa5a11b42fb6cc0eb8f865b44a529f8929cfad4802f3df04bdc58b88b7b58b3bcf44f2f2b6b0ee9c6bef0541230284d7d0fc9efffc160dbf3269a8afd874b65a49b44bb52b4fef1776ac7e6bf8e0c68143213b011c6956e590e29f1b258d56c42aca23517881dc11b22be5f42f898483d72e4fc3a6227282e56e6f808913417faaf92b7fb1c7a2b0de1064a17adef98b6b62e060d1fa227658b4e7d569816382df53a6d97effa52c1e002dbab062667b49800e162d920df51194c8d4c52aaf3b4ba071611346a254c417548ebe994cebd8da4ac7a8abb80571e2857e6da49a0a340c5bfbb5f06c0a75651aeda04e7da4218de57921558e03927f6d95450c61c3cf7a23eed9dd6bc292702dac71cb62261e93f5d68261961e258abc219c6573303ec09d66c7a05f07fd334b258456d123dea9cbad77d68cdb94a66eec8c7b248d5351eaf5d3496bf71e218bb491863a027921736faa2fe98f7c94370676fb730a33321c0e2bcd1ac24d06463bf63f815dd00a3fb2959965e86e8c24417cb9014db92d8289264a872e77f2379efc6cd483226b05b2e48597650c20d8b51f519eedb69f662237b59e16207000483bc3e6f66c5f75cb633b35d96996303ee093a2f8fa5b57fa5ca602e6b2b196a5002892ee9e59e8008143b6ecc6fe6df9f177336e2d7cee14304ee8211e89a0a6cf8575d59be129785cd7169a94739acb0179dcc3791ea4d978d3e1dcc244dc40ec2464ca0d84f4fb68aea8b2cb470cda099d7661095f6895589b7f40b3cbf6edf7d88d1e08d94d799cd0055893185711368f26244e16a4f7013e460b419338299e951fd979cc7e83304e6c8337fde5a1d88258dc1c26c695012a8c10dc476df6503cbc36709220d0f2fe03806f4fc67a6ed004ce975fb266163870b240434b5915b5952229f199ba25abd16df4c5dfd6b37e3434e94b3e469ab1406df62969da5fa41ec1f5ca73bef03f65bf67dbf3afc829b1b8cd6167757a8b584e1e4a8108015045e9ec111f0061f1a2bc89bb434465fa07fdee711518c0d7ae7691955bf32185e8a66d8f21c4f96b6102c030a9981e9f8b160e540bb7a8af129a4f5138b05091bfb4712922f6d477f9feeb4b44f3ba79cd0dfe1e1fbd4e1854863dd4fed99ca03e08b08ff8a353af4d7691c09c5f96721a5e6e75f2fce1a3689533efc40ac41219488f7ab77e5e2b43004d2f3b2c1724e47985b12a2670d1f03b5cd87c656e99e34ee8e5a35c36471e889ad84b6c3250a3434bf997553d6d617ce2b3b80f7b3100a998f12eb8d4ddb8ceeb71d17800d2ac95e385d184ac737a72f0137cb15c496e1be5515330dca211e50e174c69617da6bc98a78c13b838a3cafd0905f785a6511cac792a06197946b6e4917d9fb19ec5f7b5505b47fad539476ea34f14e6db025568e8289f91e8a57b6772213e8e0cc5fd31318ec74521e23e80ebd73d75634427034634072716264401b104aca9fd8c7429adad20cead66198bccc729d1acc7227736b16cc5de397532d5e515b014db7b29385c43e099ccd48d6a4f98e9b2858e420fba9f24f8ae4688daebe73b54d5214adf7b022b2bd1830dd15fc9bcea8ee5a9d8ea961839fa42e34d4f56daec56eb180c2096977b26ca430e6101249dde56ca4492ed716b19c80d5d06d91f17f25253ca2b1cb2b86a639d15c60bb0fd6d447c86a2606e49fc8da2d2e1abcc6b1642711a7c13a2b7039c880392b395903bc505327052b988381843388e4b016c879dff1a25dfb2dfbed6939cfb4aaab13b249d912849fc14a7451e9959fc822b53b6ca1298496cad5307dc215d25704e2f60bb17ec6fffdb6ac3c69e7346104fc5d7d8a57ffe3a50ad39cbd4871e33252eab3ed9a4135acdcb9659029b73c5d066bb34bfbe0ba9242e0927c46311351b4aeb5c390426b3ef4295f48bd013913cf71488f94567260df6296fbc7d60ea7b113c66318ebf91ad0eed7c1ab578b85670068690626a61eb92de8b75c6704633de6b57de3b97bdbba89cb56dad3b6c5e91aa2525c14e2fbc6882cc574f2a1855d07d3c3e0a8e2f3b81f7a5acc3b56c5e238cacde9db504188d033672427b76830a266347bd2492f8742450e28387be3d242e89b28222fe19c862217cacd43c0647535dc33a0052eb8ea1b7eabd126f824a83fddc837e78efea362afcf0aa97a524a1d397236d3e56c7bb378a2c0069f8df7499d421953992b2266deee9f7a0999ae32767bdd8b92b9d182aa97eb958aec55f8542d797286ffb721684c5b70c21db9fe7b2d1537a97982edded24efa0fa8f939cc9e09796fb206b40d6ad6ce5908c920eeae215dacfffc9da2e93135f7a0dd557a6fb0f177b02f721a6279b58efa828190dfbf8b79049897e775add7f3c38dd8771af5ae8774c0e8d84de4d936b8404e7d162fae7e12261dc989dc8e38a84dadf8f3639ecaf543fbdfa458fae44737e6d71c3bc330b301af780e7939303bdea4f18404f30780c2c768e10f2abf147203a899006ebd70ace46d257c104f41fa32f3b95a506d94b0972bbfe0b829c6a28c5ba1a41048c626d8f756f1a6e283e8d38742327aee4fd21203cf1f438429b0a94f256fbcc2c8c3b072084282ca12fa650110c248b0a8551b33b7bca160a88eb2b8139672aff4350cd0707bb35e00edc24d820d2ef68048b804b6a2ddca54127d46f7fda695ddb17b0405865a0c04f9693d4a4c7745f1955ad35dbc310cd3fcb28bbe34fa14690cf437bd5ff340a732ce7993f81e1e3f6472e077cb45f25181b7d5d09e49f49560d492030221433cc6ae080d0e0a45bc29115eb8c2f042a420e0e53d65b6eadea386302dcaf6a018b1191ac36a6ddfb877231b10ae445e442cd0402979a5ff9a70c1f20954836fffe5606e031fef2f11ac2fa192f890587633849b0042bb13e2f18493090d419f21662c36e37f2bcd6bb69d3411c56593fa66024f134bdbbc5a74094f2e6ff41c972d00bd275f43c2e6ee594c5198839cc040eb3348ba1b300083b907e36b759b3fa31feac4856e6f57bc96e7a43e13caf243b28e3004ef9e59415f00a33b08e4ed28b7e490ed17683c43815d3ea2665089596dfad7bddf91387af20e729e1a524abd6f0d7a6025f361a6e3f4c35a0fb6e5a014000758d9f608f3a2fa1070520e5ed7ec3fbe4e8babd2038767ab39c7d5905146ebae84052b6c6c0ff917d1b6e0feee4c96ede68daf4d3763293c5eb98e6cf99ce9f5cfd87606f9bd3494fe735ff5fdd66c55ac959981da04b8ba3633819480e5923d56ce529d0fc1f97a56fa68c9531879d9539ca55a63eb624c85ba0d9db26ba7bb75deeed5b65b421827edcb2991d6cc22846eaf75c6f92854f339b4d34484629ec4146804a2f31d4132457ee1fd2450f3a656eb104638a3293cab559ae0fbc5710af800bc205ce8db9337c4560f39d1af86e59c879e18086ee068c5d66c8d6c527e18149b26770d6f5c42c2d651b92f4071de52342c28f012050257d3df7b01c0c346f378d28128f73b169bb0455de81c593fa7e6d7456092d156109f7d2f6e0c9ac2f271bf177d8801808dabaa2b73d1fd43a41bf7798f4064673d90cc4e867366d7c50c2bc37aa12de756bde77766c654797409ae32b7c71d970a721ec2d7a4d438143bc590fd478298e93373c11099c397aed2ce137ebd345ecc1089b768e501b0ddfddec8a6367e57d96d1ce66f7bd5a7fabea2dc3a8af0aa2a432daeec5348852acc86dfba7df41b8fffefd5845e73ebc58759b92f46f27354aeee18014a83f38c29627bd4ed02ffb02eb0fb7848bdd9845b88f57f127a2fb4857a1e73ed99b39925439ce51f9e76349bf3bf887b413381f1c832e569d04db0cf93c91983919d740e618b5b2bd64939c592fc60bc521708e69856d61afda34c0278751aba2dd966b480bb73b12e5e221c98b5717622a538d26b6c2e6c235e3b5cf8fe432a52c957e76ae5ec1a56ea8174f649a1df5b747b5f8cca2925d2b4566041141164af0a4fba270529eb4458b466bc22e29b034b107dd9107bd83545b51e800bb4839370055d8147b63b675e8989022319d1c7028f3d3617e65bd4df4579f02f6bc0db4883d8b347af6394e478a7af4d45404214497f6b08632e038e95dddf4a7d3983d989021b97098d1e3dd60c01ecf2bf45ef188c882408edd3a6a474b622bf0fa4b6133f364158fe58a25632f779039ae235c99fff16a3addfc5aa36c0fe21cc27ddf91d4491b6aa1607f7ba94d5049a1d06761e9abb2f5dd2bbf94e87367e9b2155899cc4ee81ef5c3e8fbc1e0e658e2aab7930c72500ceff936cd183893ec7a796a5232b19b74d0d6bf7316e4772834594757a29af7edd6998baa89bd4b944fb3b07c107f647a540098c96d03ed246068932c0a8e1423a4c64bc9a693282d67f2efcd571e2802b46d1e0bfc59403783c9511f694b5b3b373d789e2702e54b4d07d9b61ac47859e18b0ea5c5f69642f84eba463be2a58f4d3e40eaef85a2024fe958cfc7fddbbaf48f36f500602b5b39315fd6bcfb22f1f50fce15004afb8b9e31794c1a2961316cee8b68810e0800688d9541b64dd49fa17923cec1b3e455599fd02142fb87e802e44f97abee91e12be26d3365275d223549066e75d761964e9383b097fb7622e3f043112edfe2fe3e953c5df2ea20d995d0fc08c50106d43f94d4250905824e6356eecbbe38f4234d6db25d228db16632645a298a30470c58cd44eb51c800fa539bee64693f9912c4188542b6188e47eddd5b93a396a061c18b44caf6487595210d62aa8eb349e0d0a4a7663e293133a218549f501a857b94c073a5f35d0248b239581b9243bc520e0613aff8726f203878e8fce7d62102d88372e90132324bf57357525615514557961e68b1382607d3605df1e799f0dfe98e411761c60c898e51f18b15404c61c791684584d639b941baf2624e651a3377bf320a156e7e76e63067bbd752e0b233964e46c938e46c35735043dff2a9181b9769db9f510e642bae5edfc3ca08e54b2af6806f6153d229fc022b802a8ebbd7beeb8457ebe4be7e2ea688ce9f342e2434e51586e597ce25cb073818ab6c51e07d41a6998b22fc9d5709c5d3b7c0371f812aceb96fe335a6d86981734844ef9542a60c4ad48528d49535e0fe71428a0e4116261c3d171f1520eeb18188df5f2c20c9e03a406256e697aeac7e1ca248e78882c69e9fa2aa2926d09be7251766274c1d9c5798e663facfd246e97d054498ceabae4c7bb1566d6d8ed7438fe414c4a1ba27ae7db3d32cf5ef835e4d8ab2656f999070ccaa3aedffc6bfb66744276d1dcec6bbe3c1b1a785677f6cb9d012ae2c1622861effc3cee9235c3604e9818c629aaeb59099be913ce3f7f5e0550623a938640a1447ce18bc570df7f1bc486736086edfa2d75a1a9e996ede599e2c50ed7b23fde3b130830e2a0cba6d35323503c786630605ed3b73a23a0caa3049c1e567322cd4c31a88f7930d23e974024f57fdd98c02bdbb8b465b0265d25f3e38e0c9202fc564da4395ec9d4e8e3d58236589cab1ab237693e5db4cc5c0e5a62a147d7150a93ee5e8882505c3b5b3359c83d1369c70ace4bde47a1d98d94d182e18c3907f036c3faf7617c67d6cf0eec2aa24acbb8d307cd51a62cb9f762f5811682c0dcd6f76992f88de0a50f86368bbfaaa75f99955cd70213387b563380e20e510d5e01aa5bf0beb4690f44d08cfa233e66898f9430a6edabb40c16207bd7552987a50459b349f5149e249986334793cc291246aad1ccce7badeefa6d60b54d852c0b9c64611346d97fbe3b65ab8009f3520197b2306c530b4fa3958f6aa278261f00b861e84e17b389ab8bad32a680b72398d10be840a5fd592a116175d46c22ec07804b189cab535db016b284faad1a48eeae111366b63ea63296f64ef77eab6c21bd082b8ecdf56ef92c3682bc66847db6af876b2f3f161dd6c686f2a0bb460ab85113d3a10bceefac2716d0d58eaffacdb379f5ad4fe61e1ebfae8058fbb65e3fe002c4cb396b772c258ba2fa6941117f2d07cd1f146ecc291912ca94700cb33836b0de1fcbabf87a70e3128e74a5d334acb785c0bc91234bb8e9a021e66e9852e332f3edbf96574be5e938a6310f2920883f9a3cf483c1603c6c2ff173586fc10ceddad742966bcb2c6d56817922d00f629398e0dcc785e6a025fb05e9b7be726c522a1f9a2f5b1f6fa419ba39d6c34d8406c2e6c20e67f037d1dde7626f1537f37d3dab8c2efd1665f69fab1a44b63bc1f3802ba52240e26693be3974b243b7255ee7d0f6912c98691e7f46a3c77bde27279f7f036da89536aefc9fbe3c09125e44b19707e4a34deddf42a3ea00c4dfcb95af481e349896219a4fe9aa8c9b986be9a0a4568106eebc7c8f90a2d8acd76c8badb5734f5ae3982021f05bd10194c51afd2e395d4fada86cc20a9e74f61a446e3474747522060a6ccafef2340d6881e223520f67b66b2839deaecf3af46a72e8f754d02906eedfa87c3a24572feda3b3e3d4f81eca4e5dedf83851b8fee2b50411916896a23efe7f7dba26d5a9542d23f82b3aea9475ee9e0697f4d951626d1ea18bdc90f642e486890d64cfd513ea0e2445dfb801ad4aa091bc81ceec8f7a6e163a6f1135c5cefc7c2ed76f909e1764040826846f9f65d2173cb3d9963a31e276393f37562101f936dffe35f0d31bcff4732fca0f051f05f5d260c4b09ec55febbd208b40aaf138e542a701cf548e9d10d173ee7fbff8650c67505dd1d92c2d25e8429f09345764f22845ceea55f0c42a89ebc0bf242f583f77b4b4eb02baa6e1c71962468a1e99abcc9cbf0891346d3b489889973cd4813c7312454f472aa813be253689d6f818bd91247b342134e6f2f57b5c0eb183df244dc7a7a2d473177c83aa643abfc478e1f423ae25584eb245971df72f670c711d0ea5cd4ad06039d99d19b14c640b62c5a0a747f96567d364850a08fbd758d52bd347b3cca5ab79941b0808392413fa78d28abaa4c097578fbff1c211fb76947fa28ad25e6083a336a6869072376c85ff3e1f6f95d45d9ff0a9976a8aeb2ebc755a56efbf8dd4a655126ad7a71c6291429ec5262f815c1205044587ae3eed45258765a122f54fcc7628467bfc6f3aee81ca51db08177dcbc1e53702b06269b40d6f3b428882437462769f673c2b3984280e79e8fcd6aece1e9ceed0caf73ebc5a5c9e3769590372405667db7f48b9c72cbd77b25dcb845b86da406b9e73f23c622bfef4fb9d20b568aa264fe3b88622f1cbd4037a31952c1b83773af4133d5756a3b08528acd16263b5dd5f6583a07e07858dfe3a37e1166aebff20174d747cd785700273cc5912b1f703f7d6a0d9bb642342bec4ed892d5dc40c31052a8f5ca918accd42fa808918614d7a043dca49ae0145c8b79cb7b33c0602d572d410d86a060069e0d2ed9aac15612b8cde59ae3ec0a8edf64728716cd93f747f402f11076356e720adfb8ddc4472d85e8ae69e36fa641e219730257dc59ef39a007b92b12a364ef3ae72ed5f2ffa56a7a1df240f171daf01b6b4f2dd2556764c477aec65f2c70f01574150a87f3bfafa21c89226a2b21e5b3ee62a09a0eb2eb4f5fd0540fb1bbaf883c1e995aee01d53f6678286228c2bd55204744d510acfdd4ee51ee786293763ebe4b69fd49b7f83ba27b37c1f1ccd6e2329948caf930fee6ae1843b044ebddfdac75a25d966f4b51e84313206b34b2caff0bd782ad9fc3618b3f5d34c2d89e3d0bc77377fa7d9438d5f3c8a1c853504c38e3c11e9b5fe3abc49633e57b15f35265412ac70778c673d0a6e99f2d64185a9f7a82c17b5a0e46c51e0c294a8085dbb236977798bba326d4e794b30d0751e227bd87b0697b7d39928eae6b579bf24474cec68695e572af043653e550c1287ec9afd47c86356e370dd06661570cd993bc85065b2f59c3f1a98ac00dcb7a4ec95be5ee51a8fbae7b8785d7b7211d7accf9aa3b8228bf4185a8ca06b1cdfd19e4ce081dc4afc93bc4347d9c1e623cea9e78e189954f819c3a6d5328df7a7b44e2a557f5b7389aeaefe541bdd1a27cd138d2a1497b2a4f78a859751ae306083128ae223c3d52ef27161389ef0fb213bc5eadb74e81229c74b224f6afca451dc5f88c501277ca4ec329a5c6a92646dafa2e7ec17e09361e403c4e8d5311b914d1b5e2da73eb64c1cb781f9905feced013303ab4b7c25151bd7ab96892f7d0b00895714d06d402537c9bc15a724e9797c28c485706a8f8f53695bda776513c928bcbeb4c374a5e9738a4fa9237eab2f5889f50c62c40cf8ca48880deb1d5f0c4fd71cb0cab687a2199a20e81c7c4ba55cf2febef78d7f3ddfe7e3c9797370d3330a3dcd7fabb530a88cb1f99e1a102449502a518ebadca74a40c24cee795d52d5997f08ac39cad706dd8e4008596c7f4b1a03357ac530a1fce05f6736908d2e7dcbd8616044d12f36b6f3612b3c5d1bca4743719d5ad617213def5eb545686f9a5171702ccf23c3aada645dd01032795f5a1689c835d0644ffc3e9908e1f51df0d540fe739ca2d6cbef4bda4fe44b79f253896744283d730b4eaf32cb102c07a557282f3c9281ab8fc1f4d5d60115f9a2fa3710abf188615a1b39882e8890d8dade90067f42b43cd11ff0b330a4d376e987bba18d05a619745aa07c59be88c42cf990d191c2d7f62801c0b04de19eda30f18012eccfdfa9b0684c91fe8d37ea224062af3cc54ebaf408fd6e35eacc7e99f82e0303026d4cf1296492cebff2920819d82724ae7cbf26c9a1c97234315926fb342d6955fa92057734d7cdd0b190f6a10da276e241becfde5c21b19aaf3131133fc2bfa0bc14183a45114fde60e27eff7703ad6d4a76197629e1c95f3cb876386ce0f5405d52b1eaceeed47f89904134f4de263deed9c642ab27e3851642b0306abb57a6bcd97aac8dd7406932da7c38073ee097a04e804f151d8a1361ee34903e2255cd88786db26f109268250f3620c593febe4161888d4c4f3ef2fd2b4df5cc4bb837453bad875578063b4be31df02174bc9a6dd007ba10d4e1416be48dbe41fa6f0a59f3a930fcfa34553538d5bdea89cc2c777f903dc4d9df58a256d723ae96a3c5398d2292701ade7ce2f966876d24f618fd4610f20d14662e797963af9575f11f50f905daf19d093a8dbc2cc121e96f9a697198caa2ee2d2044a58f95fb42ff1ef244816ebd4b12d0608e7dcdec13658b90205b81d17c2fc8c95ee04d1175c4bf08411f7d9a7e76c5839c3643f220ac1e9f8907cd2546834b97ab634ce6bb7e3420ec602f35c7fe79dd8761fcd147e3dbca125db483d09a0abf4b2615205ea8863d48750df7a7bec0c1503c0f5fd143b498ab7698952123acc0b0877aa54f01a3c3a35d0260f4e2e2e8ed2898561e379d6643adf891ba0a3d3d48312304497e1cde9f91e0103613db2f531799b84134b2fb027b0e64a06c76df60fb5870a05333feebd6bbcf492d28bb7cefbc94d621f56a1fcba83234b4a9ee240834467306a871ab16b6cacb0e9183e3f3966a6a26569a3ba04e6aaa9d150accc95137b652d3334c85ed3a600ac64977aeb473e38b9d5a2658558a11012bf440cdad0aec204fb0e3824b7ddbb2acc175dc77bb99f602f2288042e68a0b396f780822767bb4026e3fe5e14e98de98f152775aafde31b4dc8ae05b2f6320409304807a0949830f4ad58aae1d018391c00fd18368b27437eb0eac49abed0792eecabb63d8af6a8855849de546b6f6112e5666b508c1f35f64650430ee9390568c794d50de742da00b71864dcef9b9c5cecd0618b8a9615c7e479638ca55e34a82f10504ac94177e92ed19a3e7b1ae1d6730967a689eadb05b00316505ce824ce2cd1f9f1f38b2be7f8c24b919d5b7c563ac6239a9c8bb1f17d0f96f975af467c1cae5ef8090b62747fff2efbae437d1a791fd724e87fa03896c2b5931244ee14e821236f84815b2f51e07f7194abeeeee1113f596ce191b33fc43a467a68b7c685c7f44a930095c77a7ea1e3d1dfe18c37fb10f2dc5d9c33f0c44a474a93b7d208e40aa6aa707ec1e139d386432049019d21026c46b6a23ad2f1e7dd606e807620dc36a2180d818a6634f5339c23a224c82c60283c4142b914827d875359f223a8bb844ca2e6559729d75c09d391706dfaa8391ad267112c22307c92cae6def0d6ae6b24d05fac864c4db9c2fe8588a7028516c0b2272eb26db706c0755c7b68af888e2845af2082ed040879b911295a9197406c38911cf7fd59aebe6d35a3288c3e0c8b35638257e82f99bc0bb9e6e6d8169c1d8f4cf5093f5a3f90bea0eaf4086b606fd4d96a041e47243b0af565abc91f106b8a11e47bed859d2c87ff802913cdd3535ac623aea086ec63c5b4e5af39307f43092df65f1ea5b0f3926ae3b79fc67c0818b1dd3f276af5bbe6d499aceeb04f8477033906810d61c0912b5f1760dccf55e4753629993847d45babd56fd06584a83b88288cf811a4ae1b4064d3d239c0b414c30ff757774314bb8106ef80fc6412a5c56d9c948b98e67ddda7a1372b70ba1b9db5c0297109caa2137e8c3684b6b13d59edf7c157b3fee5e7162a42a57119dadc54a34cb5ea322f120d5cfcf3830838f525a244d6fbc6e17998eae1bd965aa9acc1c54898ef6dc8a26d706ba076d010dedeca2e6f588f5163a0e0182c52af290b8e9e8baf6b8af5db7d7b87c7bec2616e26cf900aeb3adba691e2a5d1a77fe64d7076b456a224964c4a4ba8088c445192a0eb0f937db2a4f9f0d23a2ead95f79bf960bf2c7b42e073e8ed40e915fa004d257aea7dfe879c47671712e99908df6f9c25e9954662c4462186e44f3482db34afd4313c0ddddf2f94fdf94d6849061903d33b3792ede5adeb1a200988dca7f199372bca96dedc83b0f757c605f3663db6f6307d0d822a05b7eb9f45333cd7c1303dda238267a9c900db386913401e5313b3bb177ec2fe9e85139e19224998f58cccb0c86c9ca5bd178a3e693648e426932d5a78c4a1d33ed784c7fbe211d974c49541407792eacde8b41ea3f866a256600f8357f059039d63a89b490f30873868759b932153359caa987113396eaed63d12e12e658141e7a428cac343e10bcd5259a5cd37cff67f89e9c25d2c86826ebdd353be0ef0f53d32b4390ca91638d5c6806b81ce92f1032a503245eddc233ac6689a89a5666634eac0312c0cbd9286dd31d0434f4c5665fb2474379d87cc296b6be157032a5f54ed99981187bf412a453e7b2d9578a0185a53aec01437d77e117d2bb287041f9a68425609b986949e4ff1345b19c68c43828e801224a25d53e776b0698c5fa7f62ff7b3498ff68cd35041126f2f0163405242828463c77411aac2dc11ea6635ce2859ff699d2ca2514d5ef90d529b751fdde9a310946874fabc958f7f8c689579848acfe605815eaff8f70e607f1f2921cdb52cd48f6141a08f08944f17e235c5cac8099ff28b681c04d58d94a5250e3d96ac8091cabc246a544416619aee5b72b44d2a599d31fdd9bc9563591f97989e78ae762f62a753160741035656069fb5d580653be8f6debdfabbae674056c7225307c937bfa6ee31c3cdd6179142deb618c4ec52862045b05e52e3f4f19a9fdd45781657c5b1e8a16add584f7a9735120865010eb45e6330e1ccec3f5f96b79424e3fce2930ff91c9c5130ec1fb61559e97c87c37f07b9cfb0fc1c09b22f2c43b901124ed61d75aef9bdfea272888591a7c9792aa22175b260311917dfeb4597d6d2e1b4a460b137bfdded675a79c0b18dc9f6dde6c1e21467e13fb28252c1753aa7a553f47d53eba8b534f8dafad827d1a39ede247dffc1eb733226cd61277140f8190c9806d1d0299c1f5348fcc253eca7a011c7f0139be60548467fe3e2586472b4e7d02e3143f2a1933b8b422e0ac96d26bde4a364198e44afe6f6b4c7a794dd7e8e6ed80973c614dbb875d4e413bbe0c10feac2d7c315b7ee604b54911155cd06cd7f909ae5a416c69427edf5ad4abf2296d077bab7bc1144107a4476fcb04225189362daee3c83cfde8226d208cf599fc8e7e0a6272c6c1cd8a21a4e04fea9dc0587a3473cb59d036bb0cda1c7d8990b7c2de8e9d92575809d5446f0776ede2ecdea154b4ec240db50b4938a846c9cf06e367daea582fdd8c7e9e661d8731d98d0ee090af70c8b1b69120c4e4c0d6976bfa6f3a1fb8074e1c5f43f215df113cf0ee55a95dfe8410fd682aba61f978f38723a88bb5b632ff787bc9e5d713e6f85ae516c7d025b641c79b6380d71e9b6cdf05d4e4fda5e963502c9c23232f99b277b8b88f52f70a8cd792be11cac6166018556089ba3d990f8b07f1b0ff4a89c0561ec42db8ae3dce4c11164a0ac25949ee0faab8974f9ca6f0dd06c44bc3022e2f591bf280a1569f0813f056f413ec23097fb95801d82aee61bf0ac62c51150a0ebad0293fb4f652bac353aa4b181b450a1bbada705042946df282d65ff7dd6ab9d66a9577e61052579344369334e09e9dab8fb43a55a991ee2b25fea8b3a4cc28b47ae87047f4fc9e35f227c74143f5e8284746a0a7b7e39b0a2cca64052f2f7d5411b6fd77c59ea29f4a2db16b2f0acbe4bfa865792c14b5ce5070429984b2dc33ccb13925486564e8a62842c9c526016f0d6f14174b5e2fa4cba6405fa31ae3e369d27a3fb7ddd9a6c0ef7c0d93abaf6af30149159250f24ad0fd7c6a2535e54f3ba34d089d96217fb46544ece3d852d5f3b6aa6ee0ca376071c1712ed41aab740d53cafafbd421420db3646d4a9d0702f2808f0b1d30f12c809a3c5257c6f3fc3777e2c7dddd9a6d44d198da76b45d808162576a225141d12234b6d1e20316458d69507789ff722b5d7fffc9f25da60728495513ec371401c0818cd8f2a3ac406b6b853025f5ea5a55654e0bb036c680a0b0d2fd1e2d4289da4995a4c71c1a37e535ff910043b8c86dd5d787a1629358f5775d112fdef0648b6b1c142c1be662a694633326baafcf8d5817b863ec86e77b4a68d151f900f59f6b45f50cae317cfb65811e457f85b33e6888f30f341a01a9a54cc841b17fd31384ec7e3c216e4bcacb8f73aeb40d5e50c76d3b96d1cbc690c0f8d33355a8c060fe7406feddfa08f1cd51dd8d882d82ea51a566e03659437c7cfe0fa1c5dfe98cc7945ab6976417f112e0e30d4fd989f44769d8fb81f61117ba86ce85cc29806eb9803a9fb7b604032312921f0ed8c50a51d210f564d40a79ccdebbc8a1322a43328deb4b202bc744e5f23daea51ef050e58cf188ca7b0c48867a8badb346bea34bcec089a2ab7abf9be8310a06f4064ea5e866debd915d9fe4908c4f370c372d9d4784fdd80d7f2557a25871b37c234852f9c8dbf4d391034f0fec9098b8003323081f50a4d47f66f68b8e4057afdb916ab5ab31396c6fa00e2948abb2e79acc442384d5e2453b1ce2c40da652a3b1499557b9d6c28ccc6ebf4699f2ae68ef3f27a86803b6ef0ae188a9499ef780cb614e0b1290156410811b22edc3c781e1149558353470031daf07ee19b5cb8c2e856cf20bf7b687d112d8828fd19328f3cc86f00b7c49bd3de6cc625b88560f56044fce1888e5cbadb4757b1a54028c9087ebafe2a22e1b219c75fb589396901e3395f8180e4f39a7fc551b7aeccecbbd0fa9b35f1e04151192ed3b726097a83f72c947f4839bfa03ddd243cc5c891d53379608e0f409457aed303a9268519e0af7ec9d1d6a150b516b9d8d458a50f8da2c892a922552f0c8c9d81d8f8a41bbe7ab25760ef4ffda5f4bfde2ada2e51dafa4cee58007de1e0781977ea8a520c89087b14876e5a75a062cc527b499d37bc34a571222a4ea6e50e9782553f5438ef3fcf8f986354ffb9d5518a191597e2b21ecbb9c10f77bc500c8903e5330f446442f9cd57fbbc546a85b2aae9474169422abe35a421329ffc3390a73ad8dbf49f80d1bd7d3a92f30ed44726e607b7fa74480bf36eb33972e6bdd14c47d4e6ee1bdf979e368890386647dfad9c64820d57d6c3bb75ae65a2b2577ba1d53ed8ae97ea1cc5a308e9bc1511ae5aad75f0de7b99b5fe44145dd825b59642fe23bbf3971c2db459c778412427fd9250c95a0476ccf582195105dea9b08e7eb25bdf22e12f7048e1b1cae87fec0f72cd22c039603b1138685e99c2ccfb074a35b0afec00852ecc36626ea07569074a028946ea5670738c56b5925cc15fef679f54b69ec496ae234ab96d613c14c42ce1a48028faefd6933e11ce43dd8ddf3f5aab491cbf7e1ce78049eb5e6a290847ef6f90edf185d0ef300296811b804060a85c9b6cca892d2b339133517d945c3fc732817f64a1c7dc6d4f7d7f9969c2331bbd232a7edcf1ed2e05cbca55687ab895d372d080c1edfdec293331193716041b84a3e4bc27869933eb42ecb4e73a8d9c747081f6f10683d92ebb10819f05fe64d235b4266d97d27504dfdac51d505ab0620cf57b57150b103ab3475bc44c8d85882cd1a3d3ead41d08561592064870bd531b8749cc3937a608914b5662d71061edb001df8b5bf4c8ed36218d479c563ef528909c8c5b3961ab0146c391439ab2a46213c8c400750708bd120878d09ec6ca7f5437f368ca3bc9d4dd1817cc2581f56e6412b06dd1ddee1c20bcf9e0e47b5cde5fdd4543dce3b11d587043fc79af60dab4b4963db2453a94c84661848095b53318d791a70b3b4074940a65cfa87087f61569fd5d4eaa0cc616a56e0199e432fd827498a64edb8c7f1ac6c71dfecb613ed330d9c8a76d6d2e2dbe959b0348a11f5284cb7d9c8d70344aab4579011bc5129dcdd3a01c6373b69ad816d89236ac554edd59e353cfd671c36467db13913a111345a0e110543fb3ec21a71d433a9c8d1ed74b17f554e0e444bd14c71baf25ff08665f16097dc6d99227a970ff6f65d03ccfaf4b5d83d55e952bd5bfa4ce3a83863d14c86a0f6df1705ff54d8f09068ca2a7d63511f6e8068642a038d19945278f9d28963bae704f69a132e69ccb345b5744a0da4cfdc911bf3c3e5c80903f5c359f012ba4f22265c2a9be3ba9915fa4960fd8e77e1907e9d37938511386b67a581ca47eb0e9f3ea889826e531c8f9a9b175a12c8e8140ec0ef959db4f2483f9b2356919c3934c72f7722f7642f11ae62c67f402c8a02a3680e4bf7cf864cf548bccc248756539687b9e6ed129226dcbd8db29bc9e94600f1e027a78d4166d5f6f0810782ac7e4d2266972e411846b45cf4998626fb106f93044bb580c5e7cf8ded5811f7196e1533d837a90c6d6f091502e40625efc3c79d8399adaf134625fb0620ffb67a245391280c0c10ee8154e738c88eafab161133199616184e20ea045a17a7bc23194a79c5850f7982160d07c680b1bc1be231687be7053458a94d15fca64a3b37b7826fee770bda2fa3f2a804b724dc34565290d26ac023a9e0d217ad872c2fa2b501ab76e9cdc3081df6a93c2620ebb1eeec5c0f37d024b66d3e21b0a82c089e485f46b10093fe4d740fd83df7a978252ee00826b660d8b7e04247e64eceac0babb24ed56c1ce35b2ac3b74b55ddc7fa15055e7781cdc51545b76362bdd7508b5c514abac4cce29dc709235dfcf7cdafddc5401283e9081ae54f0556db523a45274b9dee1e76d59b2eecb83f9e32d6e0d2b6b152e9194bf23a69b907780c4f9012f8276ab4d9f87a5f95f7f26376c4bab641c525fd314e49d04cc8e5c787f27a85eb146210f6ad4bd85e0e5893d894066d869a2361b6f65dd3a187f759a18b31ea867133f7c420811a6dd90cc9e6555015c461151c8400ff78fef5cdc4ba44fb1f6ebc9651c255f50dbdab49ca26a5cf27e44a1f203f1e6d17d0525ef0d5b33a156faa5d8b678b13bb22f332aad94bbe48ce81780d1dab9a9b70d5ed3427f3ba29f230f40ebf8d628b2ed12abcba058356048ff03af78738c8082f1ef0187285eef87b1285a2ba6819b25ded950af237904e30babc53304e0516f4d6dfcfb90f1f375b4825d210143f625327181ed13f528da2749aab853dbd1792dbc71c3c56b06b9f8205188f680f08c4ab350188a2563f79fd3adf373091aa3361034c0c65215a0f73c6b4a1cdd8c47b0e52ceaf436412752e5bd160cca4d7bc6e0bc00931d5f0733f12442ef1421d87ed0dbc5438c2c54483bd54abdd180c1f36851eb93bafcee25bf32c23173247ee34167302c3e1ccbdd39fcee14a6eda9c325371a9f083c684c0b0df4f85c4e19938a19ec869517946863d9867a257c44045bf8d90e5ecae3289c084f57c304e2f4fe89c61191886863e5d1ba69fd97bd1192b87bbd03af2a2420ffa958b31a51a978b96bb3645e31400bba0b33325773091599ed43b3158cc4a587a952c9ded0e5d53ed0f6f4ff365eca151c709cf01893722d4bb820e9090020bf8c62b77911d7758304d45d0e6d1a36e9b05266826275fcff574d6f3d8e5ce9a09a4fc39c1addbe0f83046df783930a19ccf78f28f3a04c2616a0b78a73283defb1ef458074fd99e74b112758aa86235b82f26c638739bce5ea3486b7e954bbabbd992c320259f3f65e01412f289d05b76e5424ce956aeb6703a25bf30163e81f10287a3467cc3e8e670fa5df3d9e5496e5933325e0813c7feb282d616b63ab75e68ac46b1223edeeaa15f302f13b5c6549d2e89caedf567b880de2912a40d1df96f1b35d486efbe78b6ffe0bb19c8bc3222fe687afc9a50deaccd9ced5668a522b1f85bfc622658235e84bb9fd56f143de06a74db512d83da37261342071eacb6a958c54db98abbd3eee9557794fc7bd5136f4b0ccd6616e9daf3f9cbd98692c93dfae1c086c535c59ac4bd410cde52c6bbe6e666540f87097012c58e99a639f456ce3d28e0066c05dd710a023224a22ab6d09fb866818abc22e55bc192f99936714bbbb7d26f1d745fa3b61d57c97c44c878b0a4ce9814a3095da79aa5baf43faa2d5c3176b8619e9c85576f3cb94603dba12c61da7b48900524fc987c2acce2a7069eeb12ab8908b8a9d481829aa89451c8bca69aa7a0486103d6524777de01c68bf1360dea2fa91fd876ef6e368ca05483b47cca05e1ccf65a254440e71ea31a4b6ef0a7261f2ec2d389ef51dffe4a82e3a74e8c12e6d47f96d85665fbeebce133e80c9a8952d0d980c708be0c6a36da8f35869617e51635f0337d7defbc9e28fdeb397b6e5c8729a11f1f9bbb6396a51a6e2e46c24778777bd34b58ea439af1a2f68c43f78a429a889055e47ee322bcae74a9b71bd839e5267e073449a3696fb5eb8b0df7cd0c4e66c9b374e30f50f061cce4c8b27c90e24c30ca467a00ceedcae9bba31a209abe2e3acd51262d086eb02b29fca050a028304a80d5edfef1d10f4d36c18a045c6ccce1250d00f9f8a2c289cd0363f4e314e54366490622585a2192c4ea8ae4fe8444027f991e4f603e87238a78b7fc7a6d84e1c20529bbbeefb9c06eaac0a75760cfd37718933e9ef56972fe939b4c527a284b946fedcd293550d3cec3774412e1d03c9c54773536e82a46dc5fd93bb38c2fa522b4adf75ee7693496a0bb24b1588fea646a1bdbf19c278b8f1931153ed58a9cd72263f02dfcb67cfb3f90d12e630d2c9fa8e51d54a8c469674b3ea91f6ccfd38e485fd20e615575f4486d2e68bf21507df130f5929f4158455771d0ea15a5829d008fc4e75b0449bb02cd3ec7ff991945807ffbdac0b437cadd06e32b57b8de218db84f5979ea4a3a8b3e3231929c75a85a9c945ee41feccd16ee3926bfc6552250ac312775e01d669db5e852131671754113eb16ec0ca3e93c84851e7251ddb4837477279cd77db39889e304291da4f8ed7cd8031bcfe8acb96ab91e842e6ed69d28575023e3a07c54287a71828b8133edd0ec5cfa94622b31de0fea8e76475f1f7566c113e0e057a89fc1a0714528f19af3b7fe4452243b917fe5e14d230104da4747d4374cdd73cf767c7119c296eded2b291746d6660d8f1df37cfeb561b8e2e021ffa66e5270bb535615b8f740dc73e754034d4b8d7a04ea483bdf3d78cefe2011fa8f7d7e16b055891120a9f7e8356a941ccc016f873722f75fb98289e4c25dc3b87dab924c4f9c381e2d6c659600c1a5e80194d58a950a84c7a5db246d2badd4c3859b580eb8af27938b43e608530b6a1d935837d986ef93bb36a508675b9b5fa0f3d8885995f5f8bf09c0def758b0e1c361cadd1c0b6525b229fd47ff822f80712d404a186840e4e3bd46d413d1cd830600c19ea89a3a5ad7b7f826388609e29dda18e4d5a3b02adcedc4d83f0b56f788f7ae61d56de2a35cc6292293eab846f0974a090c0cec5c2b3b3d0b37043513075e8876ce18cdd17f924b21c0cede93cbb3f48c9400be4c5439fcb57962ba03b365c45b4260cfbd34ee78334e2ccf1d06c64a8ceaf95710526a34bfc30aba2b3748fba3845c5898412eb18401368265f30ae745e57d980f560320d89847d4108cb525679201ecd35475e7ae044b2f2b7ecb777db2cb1aa4bd00805632ed78cb05a0cdd57b444d3491907265374942581561c0e5cb1408d2b922dd85e9c8a346b50aae68e57b9e9eca1168c0cdaaa75fea73aab0855aa49633d0061837f28100f80dc5e786609239af40f9222b6f0f969593253ca777204b8f2da309ce41199eb79ea03241021d8afa89c10874fc0aedc5b1f2149616768429b43069cdcbc6fb9bb05eabd3ff82314515c5212b04cf2c6988ec13acad720dbe5de5acfdedfd21adf89fa44dc2363e99338995de7210cf9b798f500d1ba5e97d557d7de4ed329ace7366f91d801bb52d48b9a6dde47a23b6e0f1498732d5855f336dca1d03b7fa4121457abcdcb9248a074fd2c065b4078d6af86d5e852c6587434fac053fb0106ca53187119d9157d5404dfb66a4dd871975a49f6723666f7e7e87a28017a815e9d43e88dbbbeb050a8935071f5893d0dd8e86f7d85c679553ee0d54a7493f617620d54c06ac899d6136cd6f7e7e2a72944539e62586243323afb3933ead7fa58ddd0ba709c7b45e94121e9d5d90b3209a4868e9042bc8ec49fbb0b68505c4a759967ce977872f14e006a7511c35e5e49c86f8fb3750427a7b28f5f9d5d074aeec8f619f5f3e11aee5f045b85dd52906bcc7e0058f56860d5d47182371e257f03594d75958a8b0512f734ef0b675b90edf11fd958e3f88db75839719d9e0d12d395ee92a954b038bf77bd7b798edb0af2956e229e7be2873fd8c95f5b9dd6540a029475ac6fd8ff170cbbbb66157c0d7903b5792b59d42c15a3e633156f5b342644e3f4d9f5e6e8d02ab960cb70768e282422917ede03dcd215d007497e61cb434b0f3bf5fdff47b5d5698d687258e6a4517cad3ddbfbfe51ecf8aae11043d1800d1e495f5d3bb33b74e05d03c55a5079c97e2936c9df7907e1111f993d5524ec8196747d26fc872abce05b6fc5a36c9085fdf2aa3a413b702b621c2b3b314806b86ce16f1d0a624c5acf086982b7bf3c7be108f353feb68dafe38c577324e2d12e1c0d189d37a7344d165840ede431d1828d03686ae15e72f0e10eb5034e3c74cd02476fa673fe13245b355385b78dc969428ba422e32cde17eb7353965bc5651f39332d14a5d19c93b9fb5708540483f1a6df12a8011eeba4ba432ebc6a8e32b65648be2c91d0f71251fa77f12daa84bcae4fcbd798b4c99365396f334fcdcad2cb538a0c5d6dc872d8f839d1b2f8576cb9c2c27808758d1078c380c3615e63b8bbf28aa2ee6141a096ac3cc85f48f171e93149db3e680907e583f098063de64a8d1a32398f2549061444c1ae345da852602ad8796f9bbc21a0d0214b4d0df3dab992a0c5b67aae3e14e005b39fd8c063444e3175d6a0ce097b36d0f567946f41bc762c77d4e26c05ec147078cbc3823e32d3cc05eb0b1cfa66f161103a3ca8ac64b437413e2401a0136a8701b10be36e0202983cccf552f78b760aedea9400c13f9256592ecccd2aeadebfee6dfebb1e9aba03ad047c1f3fbfebbc093bcd33ef3126c6e3daa88f7efa6014dc26d195bfd3eb62dafa4168c0c2aaee9c563e2522e2dc3248414ce29fb65671e72c1cfff46a1c998285e89aae5fc2290803e1402611f5cee8338fd4ea8a17efa9345b75413de71820249b0882de766f1a50d36b6c8502b935960c8d6c5e70dc2d2c6fdd371f77323d4d8852f796bc6a4c69d8840ac56cb25678a2fe1c122399aba41b8c33fc10b2721d5ee6df52be7260bed4741b72f025e5f0f4acea54644017d489ded8f488ce2b73d48ad5065d5d107e53cfe0bf1b7e7028ea80ca2e5a23c9e9c262e0b6c667892c23fc22f4a921b34802034821d2cbc6072ead3df9a413cbd03990ee564a95fecd8798739f6a4a0414331ab503cdbc3b5fb0a2ff17d17d948141107a8ba5848051c11c1c289a3877745d0b352317e2672a2315cea8e6533fb492960246fca7633f98700e74e935c0e39a9979c790461ac97d0f7d8dddc77f1bc8491a4e8934407b5383ca5438577d2728c540036b5576a37b18c9a720d6e84fe4bb03b01af177604038de411e2f29aee9cb09e2b01078b41b6799da12a0473ac972e686905437e33163c6856650c193e2b9394abb9758e32027a46886961f1bc000dce862f40b6cfad442c28fa0ca02bf89113cbbfd8ce991cda69446749144f5ac578117436a0df4776f814b7a9dd14ed51700347059c03a7da4fb8d08373bf7abaab4cf9ebc837d7c342100a0238fff15d8c97ead3236297bdcfd8dd1bd393ce8a6fdbbafd5297695dfc64afe71ad6b75194e43cb675932b36aafeb664a029a5aa294a116e0acc344f830773ee81bca2defcd054dceda6c4cc4353eb4ee7fcff25c55596b25d4cf37a12d0929c06d7b7a4422958a6a68b24d822b9303bdf9fb0f8b47528b462205b4183438d8369d8018c6659d664e4523522ca0ecd74180218906240e38bf6e58132a206ebab996ff564bf518552811a34df58dbc976ecdaa45e8aea105cfd7bc50a256c964c1fac2b720a1d4b13cc758619c2b6d073f06e1650cc536992196aaa419aa9c3544f0b81fd613f766c3792dc0e354da93a3ac77fbc2898a37d04ca031a42feec6ea74729772a577e3e33352a34f60d56c7a970152af376fa396699fc03bd3f9307053a79b2f0ca061c9b9ba4e1f1da26fa1f575c717b64b4c550aac8df4e3ac1cd8cbb0fd1d9e927d89939b25b2607ae16a38b134283a96cc3aa64f244f002aa664040c545621c11bd7ecf2ceca7e09fafe40f4e5e8e95fb82e6a164c39c3490f768dddfa967a739fbb58fc696244f13d74536323ecacc8bb57d1130590521442be9d6aa471e44671d075bed2fd9045a9a8218549f4148609d7835a9434784a23722f9b796abba7d5b2c47ff6b6760eaa25b7c871148f621913ef85a0063fdcb462d280caaa555b13acbf49386cddcaea982efaaa0ddcbab62b5c305e5525720828dacb4e29cffae9c7676be5c701e8ecabe0d0c1ea24005f71827ccc99d6e701c88a51f6692d6f58d308f9b911cd4d73442b62991cdf3af0f9b490018c06c9e982098c4937c07ab3fdea4a75fceed2bc7707ad13991980a7acd31387e577dacfaf221c5af72e2e0c1606797ee1d6c38eba63108abeba826f5f19b4c6627191bdd26841437e3473e69e8fe6981c26610f189fcfd5fdac007fdfb9a386d5e39ab856cc633a80a5853f326ab2a879f96170799193e88cf64f47ff0315765a4c5295958e8b2f050073e4ef114687e6736c694844e8f4a33edbb20365c3c903ee4c99175ee7fd7f6ca118f09ecce7da489d82f6ddbe2607519fb30a3c6be88a56ceed347d492c6bcb468cf4dbb44b28a1062f334ae9ebdec6ae2145e54e27db4154e2820fa93d8d24efa2d13c310724992bb7dad7a1cc201aaee91dc6b09687d80cffb60d9f91468ffa094ab5ba555dc385f3e75c03d40a0f588ba86c5cde7df559e7e9eaead48a751c9f560e897e518f00d7f26f8d88738dfae7f0051d2a8897510c64a9eb0168e5dca6145d1f09d02f7dc905eea674f0b9f5600688462670e33f2f5ef82af13c7f1553d4abbe0101a151d2d352143f155d3e46dced2b0cd52321b45ff7d0790171789901bbee4d3fbac492996084534d6de19459cca6be06042ac424672c2242d9075ae1fcf91039cc93103334051b12de7a05325993f677db424036632f60b1de9bd55c946e2008286f5030298dc47fadba6a62b5547f993f81839d3aef6970c36074552ca18834107cc0f2e0739d8a87e85f6aee4d83303ab8f55da12796713d54dc3af22a21d300d3721d57f3f9563c5d479db269e87972e86d9e3fb64c9667cb57dddb623132f00028e22caead75b50799242693bcac4fc864ac961c876ab1ee8bb6a5e924c6258429f53b2714070ce7808d9f3eb2ad9b43f7424f00e19f4d377f22a42350488954f4311146a906e093cdfb53deac0575f8b8bf47ac38aac1f6ef4297b6c439d858b33a26d9314117b42e5c246d5d6d6fb9562f248fdf1f63cffa862e0d363c04ed899c900e74b7b889c32fcee7ee7f9a0c095cb5ba5abfc13a1111ced8edf21864ae4264fb7f6faf63f9cabbcec266c6add6474764b33c37024075758ad05d6c805442361788f6dd27ba2191a63d90c60aa7bcca66573818c7c5895cda71e088fc674904bd491512cfea7a5b7aa3c3a2c524dcd8c089014c7cf943f84239673403173a44b0057916e939a5fb5604249f3670d9c212630663e980db9e83965c34b62cbd0692085356163e87fbca38f4c3e7a1463b2462139e29d7adef1f4660f2aa3bd5e66bc330458ce424816dee2d16161da0a95e8cc4ba2d239c78dea5f2f16798bcf729748e03952f747a58c43d0236b2ffe3501ecac3385eddcf4a19861bea2398011a5ee6860e459b6ea77776926e9121de2ccce29562ca7e7e327ea83d23e6c82473923ee2e9cc719afc1f0deb180d25d84792ad4415b90ca52ab136c97878e66acc48772aab9f5f1ffc7bb02d432cb3ba9c15b50c93a11d390a22ccb94140ace3a2c7dbd7eec4f214cf4d0d57320d75994894560a6d87b9176b78e0cf4a7963abd4dcb774e0c1c63ea4c7d1e0db1704c80f66667f0db1d7ed2d4845be5410949f27e6f3dec33797012b0802f36900be88d60cb40b2eae6c25f4d5f5b0934d0696c269f9606bd297f319a7afb7bb99262027d5cfde5eaec29aa6eb6a9f314f5fa1b23e626cc3866b0da85166f4e277c102b006b493832716dbeebce430ca53e24d674534cf482155121477df64a7628de6c4a4331953ccb012bddb5c95eed420c836b0abd28c247b3f1f05cf7202988bbcd8be50c4dad2fc9dc33c129aa371a38ed5dbd5d0b5f758b38d34dbcea4defcf90751dc6bf88a4a66fa4be16ce0a8d5a6e1b77e74fb64b747a965111f6e683e248fb40137e14442d01c11daf51364be4c5bbf32052d68c6c9bf0c6a6ff884704552a09f9a9b873c072864c66a9c514fbc278157d72d4d32959fae2d510b2451cb56b990db8397fadde13192c4500f55028cb89c366f1e4e9821ed4c9e2728f45445b3454ec84c79524fd0c70af72452bab7f547e77e63adb09ba3fda5fe88431fee005376ef39d8ff3c6392fdcdcece3d37d61ca9782fc7206c132f20f7457113c214d41a4d228f6eb750f8820598e71082cde3fc8d7f7c987520a7a5ac28c5f55831c65e90c06b4095c53f6041c524476f7dd1cb83e99beb9b9dda926c5770d6e9c9bcee37dd11abeb49af341c8fe432ba9e5076359abc1a47a9d22bbab750b1d472915f15b5f79095651c5fa02ce2f08479f03d0fa40ac4e519b18fcc20ce1c1b62f1ebd2af18ceb354fa73d0ada348d0ed79f4949dde6a68faa58a0d5e3b03e57fead86a66d8fa26ccda2d20a6d8e9070c6d58d98f3a46c516689d9b0165a5fa06daebacf9cffc17ce924ef7a6f345753d698d0735866f739882a1c90638904ab55e86bbb87f3a718e75bb348a8824cafc41addc86245cf1b2094a9e44aac2668c302f91171f2c6267573ba68c3998991ec2842a9dbc854060886055b04efc0522008977f50451dedd4aa193383d29dca95f2d57dc4f06652d3906db6f3f108180bffa8f3362461cb649db3220c7e16e40625bdc7377b6e916dc7154bc47235797f6964a9b48d917183c503168dd678f173ee6c62c630d5975bb9a979477efab3b0522f21438730ec40f352f226577648025473888739bc5f9b101ad3f8b82c1b87471212eac2d0457d10443776fde75001388e72d897945ba4351569fd06f85f0bac048f0632e409ff91373a211952efacd639daa63706f4e1cde84527419040c11022a075eabcf00614b3ebb51a95ee5ab25b67ea9ece3fb8329dda76088f1bb3fa45e37c31afde98a731350f27eba17102ea67c730dc0f29d673d601845210983c0d02439a0e0573b1dd7d026525b1decde7077753c2b9a81b3324137c70fb5e725406957becd6a882063c97a033ca1c21930411ec8cfec800b7e77825c592ac441c1fa38b0e00adadf04ec75f2bde5ee6693f948e958e52d6899c9b2db41fd2e773ce26394799c89f8faebc61323cd32545aac5977f7faf0402d9a62122cfc9411eb4181bfbac413cff927ff7e1572cd96db3fdf4ee1ad429998bac9a027d0d0a0deab9f220a3e0e71ab24296720509c037fb31418d023da416d0d31e15d2d663779c8f9ad94bc539b2bd7c3d035fc087e45aedbab80d46251f3f8478ca293c2b5f44c7bfec9e2174f8bbfec5e266dc5943e5d0acf33468bf8a4a9c506eb9ea507da417e71da45d5444fd3c2402cd498a10fa2265d2eda7ebdb02400a8d4e712fb8a997aef3f8247b8f0374c9f6405bfe77291e8443aa91cdb782a63d419746f22b916a25b3260e37c5bcd68eb4d709c5ab5411eea24707df813e9f0791db7ac05ee82a29b34087f066f889b124ba8c86c39e9ca993d8c9aadcc7e36586622a3c00535089888471c16829db4f0287db185f44c9bbeda072852a14c5e801e46fe0eade7fa6ab3e40607dd7aa64b8ea35882f07e096dd5b6f363c6184aa594815cb0eadf4e300304b94c3b930f468dededf3caecc9af0a635b6a2001df26b94384019363248f049c378e4ef8427c1b1348a533be5bb6db08ac9ccb3ded3ea4dbd0a1d57f8f220cfad8ef3ac5d9ee900a7e4e7383d6a8ad237cb995b35d590ed938feae1f025cb056a7881859177526f12244e1334f6d690a536d80568f6cd7fc8fa5737272574d7ad1b47561aab07f83e65d6c7c6e1cfb5b2f5f445c0e1a7fb9e65b4aa2775e8071dbf2d0b494631e269c46155e123cd67bbe79ca3e0f7bad4329fdb1dad684ae51813d1ffd4398ec7deae5721c15186f1e5750b28e57bfac326061f59e3ade7d0d7e604b322543b598259a2d7c93babee5088fce957e30e9b0349fbc700e4a5959a89aafe43ce4a9a5158783514c16c00d533da5c9afbe763c9a3b7cc6b8b7f09f17fc9d578e36db3dac54c65ef3eef728543bf10d59f78bf7bf0f0152ad12b6064353d96b5b2ac53cea56db8291ece8ec84c921c76e29ff88abf0eb9611bb62824c281c5a873ec228783ebd374c109c0e501bd8bc2f86d38c1f6e2dd1ed8c6ffbe939923da6cc932bb31ff8602e72202f19ed6ccc9240a894af508f2b24fd9c829e2b5c6e8302db9a30d42f6accc805d884d6676bc80843b823d92d46a8c06d9535990fac2813a310fa7896b5ddbce087139a0afa79c410b68d25f70cb1c7a772b28f3418b0a0d7130412785a2574cbce6103c5e5b00f9ca3b18a2fdede13d87e2580c6006b7fc650a129b2334410e27a9ffdc09b8fe51a2ea422ee009015ccb8191db77a27baa661f498363e4e17c7d40f6c564b46cbdf6ac04b9e6bddc9193e8c376bcc9e2e0d27a2848a473ddd1feca4f69478edfae737575581daf9c794df9f9c3aa8563079b046ff46ec9a0e13f4076dbf5e30574d2cba212936edc9dac57e29f3367f5fcab46eb19ae6fb6dd0afa09acb22f163d6188417fe49e601c9251cc754f29748c39a175dc5ac26af07ef6d66e4d5501b67184156bcca9cba0305c8c3934fe5708c11f8109f5fff1b6d1ac1e1e947c5398b30d8c4f2ac7d56720ec70cd839012b32391366100993583cd02e79eca92687ee81583a83cb9bbebe76601ec05c10ee265b5830962adc2cb19046d3b300dfb5e4080cb429de9eb7d9f0131ddc3e66f1ba3251a1c39b1ab48c7ae3083a67a5ace3edf145edbf2a6074b2e96e302ca27da7c520fabdb8d8b2931728cb2f216f7204660235b005795187880e58b4f08ebb8acc5490bde0f71d0f3977bb757d807f8623de74a6e41e78cdfb2d92d6624fc862ab4b1790445e0e4de4fbb1a288c7e94b56cb94d66839c045853c92f6bda17d14fa30d6190520761e4f92ef808feabd5a3c22029bfb791db2d2a334e9cc43ace79cd2b0cda13ded57ec23408f71b4d95b428b68263acd4c1c1b03d477e4c17d096dd0af35b751d55288c8e282c3c8c71eb4b0e2f91b96ea4d83f562ddad3a520871e802700dc8e46c753ea5bec1c96f14fd45a06d69b71d559290fd4cc1e1b559a5614eaef677e385c88b00de125ae9d47886a02d82e52407b68c8b68104bf9d454d772b6fdbb0383a5da2c315aa46398d38d22b973fa887ad74978c920c98e3501e7e461e460cccf9be2123a9a52debdfa2b77e45f469488ff213a7d16688e9ddb82181cf205f9d51271b92f671f64479d16f2573316f4520bbc5e848e4fa910cdea796a92c80f89c6e24d7be96a925a3c9ad20cacea16ba70501653499564f50e8eec604355acdd53a02e3db07d7cc2cb2c1ed3af19efe71212c452a5caaa995357ce28d4b7a94cd5ef6ec75363646ce28391d0f2d33ec5262dee5ee9cea2ac7e250c7ef38465538fad231fe88656eb7a10fffbedc87782270e04485fb041c2ed72ea360e3750f2acbd68813f7b70f44302ac9e25e38512dbe2d5533ea63cd3506dc3b47dd8df2f0c4977dbfc987ee280347fdbbfd691ad668744ba656dd7bb120022720655c3931a17554f765ca7327aa61f246b7ce54c7351a528e7918abb51934f7ea60ce6abc1969db467ad0e087e6172c19432a12f626b913e616fa4f66781a0f9b3816c886368a516757ab6a970ee414defbede5991b15c102af2d6f5038589994b3c543fe77ac1327d5265ffecbc3b39496a3312b0433ca849631b24d1a1ce270f3dca6ad50dcbfbbbe50618f51dda48b3504064233c398244c97452b049ea0234999ca6842a1218bd98cda732b44311f71f259f7a3f680eb6a7e03580c0219be11965135666d0631e935782c77ba3815dbe36d6f3d58232bb2735e475009af7dff82bd70100d66b22f43c22aecbfe56c593506010c1ebc52cf3c25b05a1263096144b9bf3a99bf31217b826aaf218a5096f745739bf5b15aa4c50fa59827af458354b0cb7931b7173118cd0c8518654b841321c746ff062732e6a065f3fd804093e4e5b7484d49003d5e8867116aba1182c7ed126471b60147a172758a85eb701625abe7c1822ae919fcf5206f60399819330ddeccbfab9de82b1e809c8937457ba83ede673a55e9da26563148dc1a2003d696c7b83fc89347d043b7235df3b66d482a53bfcd1e8c90cb68a144471f24fa673ed954b42e0a29ce1f210b43a1db013c02932ebd1c420df9fbebbdb28151d179892120c2a44cceafb47c0647ebf0b013dbc7cccde2324380f98db026c6a9f247ad3eef4822c232140551d0954dc22e10d28a538da66b1fe2cd8d297cda77ea142eb73ba6f86740fd79c801b0bc0402c473af95e6ba4b316e3de8d7720510934d85a6b81b1324259a98186bd3dcd70c15b4387302629a689ee3117fce545bb0cd761636d1b84ed938acb27bf74faeceee9982a3e49f1e64cbcfcb78c8a321477cd8903033bc6b10f29286240bf4fdca9de13a89b6f31d98f788ca8e1ea1cbe3e801c71d0d5b36ed57ea670af806a618fa791da592ccfd7bb0bd350dd8edb03239faac30db9fe42a3c73a94258efdf888e572ef69e5e5f78f3be8181d019a97d25e8689277cc9f6f1ee3c6c64124d282eb31cb3fb6b429b02ca85c9a3ac58a929e3475c65432e364d00e9def595b57b3d1b78eda8c0e8d2d236887c3fb46a4dac4148851e44ba9b8863e09130f721d5c6cc74ceff298f91f3bb721d8d49f732772927b22ec8ed8a9b95a6f22214930ae1737f6a3e4421ae3a38eb79bb237baa20eb49b99cb2bbda2d9e22cfa666a2d4045f0f4751f93cb6fdfe3ce26fd844fc43b0556ea5130d501fb9217e1fd9f60c67421ef76660b39086eed3596e03f80eb12fb5869c2e41e8938ad397a4a8cd3cecfba9c7aa5c0df089c2c357e75b0d5e7a10188e5570a6f34ebb4c3e9b3f797b8f33307cf8720595095341178d1050405b7bf3ea06390100670a04f6ff91e09c5695391b9bb608614c532878d2055f7e300ffbf2d8080c939cb8570ee3aafbaf2d2bceca68ddba38d62f766ff5db2f397d8aac0f9392f1b4ddb0069ad9c857cd430efabccd8371b689ddcd07b7f486203601c5f21874d34ac0f8b5f7649d9735c3404f2c9869b8ac5dc7f3f1e20a81f94c63cadaa9d84541fdc26bea9201f0bffe01636897f8ce78508b52a508501075b66d81e71315d08636f5154258b8ab986e584ef25fb6252583e27910086f7556e4dc757e4d6272d69111021468a5a64f16de2da9c65ae35ba6e399d95344c9e9eddc77bf26371a52f23b68838935d4362e15a306e524642923ca082f0b9777cae040170905662dedda81de19ae93b8102aac536bb8b0b68ea98fc1274da0bff9f3ff2f8dda0f04a743a3e0af4aacee0e7721677baeff1be40ef1e3b367b8344597d459f5cbb16c95eb594fe5b4eea3208b280c8bb09e8b0ba6ea2e1dc4133ffd989e7417360f24bff183ee29873218911f0bf31a80d42f737b538917b3139afbdb5623ba057e62c6bea5e6554d2522f6b002d264768be7e71e027e617a51d5f957f84d6993274f6389ee42d2fb2aad6e9e2fe1f7f839c537e5d0bcf44534d4375ebf9e5a752486aeff497451f3a9343182645e65356590a4cbea94c6de944e725c850562f9f5993bdf10cf1793514b6a9d7509fdf579422667057d1849ac502998cc34f638c48c0386990ad49b08166b711da899a19f8a7d898f9158ac4cb9369c442445f9f3581fc640c307e5d6cf27e0d0847db8d94b1686670d92262ebbb4522d8e58c91b69528682faff264c43066e0eeb3e60441bba405fd56d6deb60340504724a101c2165f960925ddb9b55fc7ecdacc4d078c51270afedc25e240344bd529489fd21534f76a8d32d76e47afea8b39e52b42ec7fcbd7e01b7e21ed345bf4ffa2d8da9c8323b95eb9279de3cbe759f19a6ccffd5a9afccde6ec128539619386f5d1227bd25a5ff68fc257eb8b82de97b226fcb54937f63f74e4eefdd0282f504c0f9dc63cda67abfefc8e81f958673a40daa97e03c53efe1cb0afc1a90fbac8a04b6865ec887bfc960ec7c38d34e477adc24f6c6c676fcd7caa2878b90fe48187508ee47e93659409ae892ddc970fe668f0de38b5088693692e4de040b1def8b9b17342a41b9c047b69a0979f5e6b3d61ea5cc632bbdcd024a96a72b715d9601f6059409fa7f03dfa641a991967b87b9f73cf2badcaa6e600c4b6dfea5c5a05dbbfaa85701af9b73cec3e438a06d050688b791aff03da41a8699004a54d06fc7afcecd7d829e594d28df8798f654eb35dbdd6a949cc8f41e27565d3495c6682909cf005831211d1e01066f70fddfd4c4461cf8703153c6ffe2b2feb4e637c3b26348d2b96459a47a3fea7b91764454b326785c7d5e983d728166c215720ac957c6cb48e40027e5593cf99760b07ddb08aad06eaa4357c6d37e3dbe77a2dde44db75f521132783d982b4abc5804b2a44cafbc7a1954e5cb9e7cb6b54d0bb9f891600f4eeff606467614c1a485a559790db19747a2082a5cf6418c2fe09e41fc60c489751c7b4d3a175a680a09bf00d15ac28fb64f626eca214c4f85c934efcebf01c372ae41bbb705d442ff9ae2be414a9bc6d0de3caaea09ef70a97b60fc7ff4a8c939ad1f750daa76184c02c7bda575b5d76e42713929bd0562cab7970a0b0a20425396062a75d68bff7e9e5669aa797855bb22c82296ee32a76b15a9b4ad52173a20da9ec6543f7ba4afe00d23b776760fb259bc5af672b1040882828987dd0d46445cb21118fc2292dccea9923a93b83366740dac10c5b423d2bc47292b02e61a4ff7667b480ac0fc2a8026ee76771b9d49372230b7835953b3d8b87e24de8915f3f648a948c766d140a50dd3d6d0bbe0e7183b8181ef25473abde84e3dcf9f62929a2589807a0b0c67ff148badd072ec87c37410c7701af5c5a7439976f94eb8b098b5f4d5c91a9620e20cd606aa6248ef949a492c0e52f5daa4e58142c113d4e39817300540a22f68b91e93d31a934d1220c96e00f932053c1a41c08754a42e31b71acdcbd10825d6815be351da9de3d4ace055bd032f90103f15cc5c21e597630659bddf4f57d3844d9a9f082e6b971fb4c771352114601ea0b442365bedacc708229d5bf2103da9c0a63b0f59fe1c75667dd15fedecd6dd9b9b3e79781b5aea383581a0d69b317b96bf70a425528ee424fcfe3c277154fae4569bffb439db68814cd1ac7b39c9361b6549476045f9ac06ece7022f06a9a204ba5f218fb2eb9dc476f98e468f37b7b277689f59970e2756253a998d4fb8e7d565c8434bd518fc5642fce9ffbe36694fa6a58267f403921203de726a4fad49079facc36f2a68317fb72f79520f8d19fd2c594f6212fb306d8578fc1417627e9f74374e46d8c3c4fb22af1f4e246f725ae3f0a328dd7fbe4e441f2b7e07dd6d73362f606117dfb97db04b57e8c7c0d0169ba8351ab3ef9bcf31a831bda1055caf3b45b111b784ec28d505c27942767878ce7f299cb1db4abf2c3f068ce7f23852f927c6eeb18140148a59383c439815d99ec6db9811b8ae21632b2dc94b751bb26851c153d29d77cf56e7edd158ace52623dc73fc936a4dab84ee30f632befbf4bdcbcfdf66547bd92b442dbdf983db6206f8fa37fe894548c5274bb90347de956e663cf5063f2c260dfabae81cb48d227619eec0a660f996afe4045cc759c1e48715493d676455a08c03271d6237c60f61756c8f11047e69c749004d5addc98555756b213edd35a3144c338dcafc176705fe34a29c13b646fcbcb09f2c475eef57ac6e5138812f7f02fffc4c0165f57dcfdd9e7a3cf09fe9ebfb818892d418ef8a254a3ffd8d8dfa90afc5d333f0603588ff999b487fc7bff4c7d1e1a46dbc23fcdc31a4437a02cb92a3107c7a9e7789d3fd8d0f58cafb6c18122ba9b1d3a180b13882f9f5667020fdca470ad1c4c206ff139fe42d0e6147aed064823cfd64cddfa7aeff66e0cb19422e431e9f58754f20ea79a9b50ab8d9e5e8a1328fc1f4257182473796e16c4a7bdddcc3d0f37699835648f50fa63b6219d6b224da358979dbe2806b844bee3d64aa32e37e13652e6a6edae0ae34c654f0f804e5e45d6f0c477461239842d0ee243756cf275381ea1880608882f807d651b81ea74e120bf5046fe53112246e4dec23f3bb77a6d9c136d04b8e35a9784227dea2c15e3eeaa0553def2692057dc05a65e23fa1d3d5377b340d96791756a7eed9f82c65d7464d7f82d4daaaf0339ebc0db9d745b0bbe6ace571cb633d72471dd30208ab2fdf90347eb3e8864c73b514132064eee2a9fcef225058d94dcb1a52b5bd15f3869ecf4a06822f9d27bdc4f6db29aa132bffba64800ef00b95e84a58a0423b8afa29c8c090f45275539402329de9d0b67122f615fb5147063cbfb5f9656402e83608081508f1397c84e4954bd247e28924269a372cc8964841726fa1ff0e1adf8cc474ec633e8ee8e7691cc95a6e52a89dcf22b535941b7538993dce25a2d55d4c20c408408741afe1aa264b062e73df99212210425e970ca3d91a5573bba8be861f038feb920588e4fab977996efd86ffa6be8eb166ce3af486b673be47aea89a80119eaacdd0019629ccb495118ce9776131ba4e470ab391adf2b2913e24802bf8213524d65fa7b0f5ccb24daf213d9d6d472d243e999c63656599ee1dee66665d3b6a36cbaf3356171bc7103d9f2bbf24e2b2cdf64a8fc588da2dc41711cdb6ccbbf0aa8285d6c3b98c1677fa4feb7fc278b45ec8f49feaf4d049c3e537914ca9d0ef85a6e8889a88e98f18fb5de7cb5a93f83747f07c0649f8bb7a632eb11550fe28e9f3a1712d096db6384158f8ed3a50b166db9a9acdb1bb3ae561698a0d419c6ec57bc25988d44b3c31a5b62cc2a6e1da66c5d36f1eafb226d3a27daa037e576ad4d21c31206b256da5b44d2149410bea629c82c2e5e92c1dda8da62f3ce0adb39493c7a25fc79568c84bdbe91d56a8ca4ada0e049020ab5ab4fb3fb98b30733642729eb98188a72c40ea808990a7272e5c7be6bd99e867ed39684de8d0df50e90468c0946c8b5d706fac3ffb665b072af60ff90d1184c9b75df6f56fed5740d4cf27112c7e0b2a4e306181ca861e5f26d2e03e331a52f142d8f402b6a0ff1167aa24b6247df178be496b913b099e591cfcee2e2ac97131616afd6003e635e91f5eee9db51fcb22e229fd20047c02b32424aa4559e20690a0e15ba344b8bbbe81c28ef39bda01fa1cafc4c39350303d562331844d5430498d4825815a5d3ddc5a21dfab1fea4b44000a4c70ecbb2e5df4cdd1f2867c2849c4ec4a54fa9aee635b6d82fe27c7fe3905022c050b893c8eed6c4616558937b4d52400991e7777c7fb444ee65f7ade861727abc1df9fc8dca978e07fc38a1860f7fffc730766c14eb3fb71a16a7f41caefb98cc9d642ba69296f693c9604325887498328cb078f957e239834282ae51b3e55a1a4f04433ec72df036456138b5a5e8a8ea376d72a0cb65094e609c09a82a4a122c06aba3c2d5204c0906e76b65af2f142f1bd6de3753412ecc076b7097a819e02ebf7e59c8a6688e85c571105fd485182c43c397e69cd57af1440cf1f758a491eda88646b76814d45ead3b5311fba9189f346ce43d313c1a1f325f06b5736afb2a5a4d9d6f45451b35e3e49604d82519cf84830cb73708eabb56b0a8df9f7ad8a49519ef52072097a63e496ba4c25900f70b8b6335c882ee6757c6112a748f61a258c3469a697d0b7a473612d90a094779f946f0f76f3a15d939ff7a6a38211297d52811249503f18547685c8c56d7758e97621dafd422fcd30bd0b26a08b79a9fa390f135ee189c8a7df3e0d4a55fa7b5a334f7b00582133b532db42474f0b382899dbdd4e893d4756a8e305b11098fa1f09dffbe3098a144cb719c2b5095eedf73f7028180ef73d1f7ba55a41bdf5180b63474add1c43af6550d1dffb61c95a3bc04b23cc9bec0c43712cb7741e2056132863a27b88a72533569c609d5424262c46da7e11f3641107df1cbd79b03e6ad29b4ff01b0ebfe42d886bf914ee8615e7008168a0e775f93330da6fb38aa68006cff54f721fd6228d314a2d4cd5985aeb1a7ed9c62ea4a896d4187e381277ab11a0219d0615bc59d45dd27c26a636949c429f47e67d3e4a803c110e527c2a6a794b48e2b5b4210d441d43c7f71b784cc3c21006f5f88d2f46e565b90221c41f688c60562d08d20264d96a09070c61b00c2bc76afcf03501c1750e36789d86802c4d6e847183bf4f80b9d73a1430c7dd8688451b9af25c9ccfead9c19cc65b52b8e7a3295a7b1f42271700e6ccc0366b272ec2b97f2479add1d359c6896b585622f63a5114ec0d3eab02553c56e0dfbc460dec89f2f5d9bb2c9f48530ce805d523b366379d8f7317a4d770d3cad4d6501f9ed28a4c1d49e2c8f6bcfd29875b129aea0187494428516ee1d3ecb412316c5358b2f17be65ce2942cbc6a97b591e1097ada9740c38beea60fe1259517c97965bba7e780d15599ffb6fd4b3f0439ac1661bc6dffa60e32b0ba0cb26214b3fa3de78aeaf180a11e81bdf1ddc0fa3e830c629e5ad3c165b834786fcd0368ac1fa9c4753778f85cfd10b55c06eeb9ca3b5732925061c461dd9dff2eead5e90f02d7bdb633522b700bab0c1a0b4f6e1b2d0c3b5a222134a53c991e6f37290419fadd0632dfd0da1c5ad3e9d7789d92d2df5ee9c62bdeb1b26d9cbdbc84c39e7fbf327673f9d9c41a9d0df5dd39460254e22a8f3d1d37900dd05cf424315bd9b6d831edf2a866229b2e6136310defdb25016cd30af022ba6659562e6ac91f96585c9d504d220576cd87de01a786ed337a55c8b2625b64e90fdd485f09352fd4872f1811740358aabf9e14f4b880ca964cf70210307c192d2f31b54701d620da53bbaa4315d59380b31b98fe2b71c65bbda386d415c432c06ceb64c98dcb7a30668a414abe6a004f43c18384dc6153c79453e1a043aef22f152ce14b499c3a6c855f2b0c7ba87e0ff0b3f386416798fd1791450d002b71d2e913fb3066e851c9b61c9dbef38afebdf28689e1784ef0c49957097a0a2d198d190e4459f26822950842303d4b2d05076b15ea96eee46818716a277036462ceb1b0d95b8566d08694fe25ef23fee2e4645383f2df1ab448a3f5cbd91e2ca3b84683687fa843cce3460ab095051c4a5d4715ab41ac5027a76b1f28c1a2d86b0b2443efa36853b35199106f5d7eb46aca747c6fc4109d23505222e7cf007a3469a21e292b6557f71128b6549b4ddf01a3f2c48cb7e7e8b53fdccff16448e108b7e448535c74e7cac72b68612e095a6d6e3da6b5b4284e1e86678a408c13d526569b3f08ea07cd9822cccdbc0dfef986136e52ae83fdcf1b9fdbfaca54ef55e8a21a09c8d58a10a84ed5544a8098e334a0d475c342987bfc2736cf76360dbeb0671cbb6e5e7d037b50827fd805e04e4b7a32796047bccbfb18380455bd68d42b9bb9a4e8d3ed925103118fde5f1552de217227ca059bfee68d3e59acc6d3d8cd6e5d9ac4068e846ff0390f6d8e286a99a39afa5577dd2577fa6e35198c1964d668a63e2fdc022d7e563a2dc3de44451bea88a61f92e4d3fbf60c9a2c5da9aa9c381290687391bed96a2d0195b55e89fc6432d9c5b54b321a8d87664fd50c9e31db85770e5ab5fb2da7bb49d5fea4ff03ae6b618d78c728eec79acf50efb3d84f8538b7de33f8b8ceedf1f86d8e458bd3877e1fcc95d667bf2374d926b2fa472ac2c580a90df90db028e7b6f3cdcf546f247d769136f050f5450fcd2aa942157e49096e4bebb2f16bb7e6e676216267b2ec2067d99d7490761ddc0b804829a92205d33e586e0c379b31e181406704fe8c4664d9dc679a6d39b389971d9eff12933627c42c1d9e436f45867e149d5bcec241c146a06709b303a2d28f629f82612c51b23f08f678400817158ed2e4a434dcdcc36fb4a89bb93a8fae5bb1be77165d2b66f8fd4427f27ceaf23fb1e834fdbd755d16187d534ff03277ffa7adbc22b28685e87b6f1d1f842d9a6ec650dded86ac54b8336422ee49f214b6e32f7438bed12a15921ace3e8bc7b9320b307205745e93f79d6468c9381b50415d81fc167183fbf2e435099320b082c9b9b6acee2382d129a66a1ee5ce54b2e1d204f17b2f35fcee0106722f575bc990e17e16d6faac9572feb22f9e3b8fecb2364730deba06a7c81bf38b287315f25af02310599134264a8f08b39641e7b5de724e038a790bc66754af196aeedc8dc3e9c330802833398c801793c94edb341ca804ecf330d52f7c3f2d46099483f6fe30a5e79c91a734bea2f5fa3983164eed9c06d88d6b14c4228ba840b16599f4a28d4d983d38e7c6cf08f984d00a661a593cd03f184edc99dc4e7525b3126584306662d10e5a8302feabb80e61241bf914ab59dd1598409ee1786a7e0902e3551e98f741561c6e364bd4fa16ad3a8bf76e62ad08a810de4dff8e674532fe0f82a740429a9cc5bbc57656dee75f8b5975aad040889d074918be81abc38c822c7ca30de7a0f1d6b6143753a136dc4f700d7edbbea31b979bf39037821042ccb5f257418394e3910f9c4965eced317309cf9aaed46ede02ff844331c9127ea28299e7a124a0407f776dcad885e6250d823deddde942b267e58510f66f3c23a7b0a022a11b487d0e33a5925e8feab87986e6c7cf3068c83a39654fa77f1e5d5771613f5bc358cd029ffcba7b373688cd141e437362a84deab5828b1b9c99572c605ef13a06ed43533175832a3a6b28113f420d1d6162b7afbdaa06e543409fc8381daa3ae97affffefdfdff7453ce67a6dfbef3a3300a79cbe66134b957cc27c03d3b48b8cb45aa9b34394568c446f204a58cc496771593a618ec931bcdbefb01e4ca95f7dff4bfb1700b15c49e78f75c3df2b247682de7eb769c88f1b41dffbfcd4ce888cc3f0bf91acf1151bfd87511dd37a8756ccc994f58989076db0b46e78e5042eaa41253c11d6bbddc268aa339a6d66282dbc1c4599adf3729ed49435850cb7d81205d416a03c255b6f614bd1f2b3da7f48a1c16e527ffb54dbb105069fa916317b34552ea64762b347d5050c2c0b1f2f6eea65ea2cf1d146a903f26602ffe36563577704ba85e4a3052d29054a13c88d4ca963a946a5d8eca94501dfc1548e24f1d4b312a0f421c868374dbbbdec302837152f19252ca88fd42c5d6ecf35e37f546d2793915b96798d1c4ee1325c31216966da3c928537d56ecfc2a55984aa8a34cfeb3bd1e4baecbfb6e86294d49b14aac3fe037ec82bd6b4da79350965f71926f6da110772376081df4f702bf25ddfbd8b5c63060f7bf98324505694fd06e64109b47209ff77c3c18412752a46feaad7242e7ddc2cdf67d2c692521ce64be9cb77667eeebf82ad814f6a906ebd08704120c37b8d37fd97c54aa0f6d7063dd23aea3701175ebdd510b7138bb173fe04c32be86122aebe13c217b673662f429c525e3e63153bccda161ed9b44e80babf2619d198edb7cb9294b5649d7e7898eb2f16abe8c2e315dc4974a2127c6778f0803c12ba372bbb8f1c0f3c9a27817a5fdce2a4a741d8ba23c044c38200930fcc59b94701d35a92808ac77165ba921cf203d42f5ced236d58ea0634f9e09637603b702d59cbab86a2585cdf4bbe6f09677e62827941ce416c3e5592c4103546fbf54eb1a13d34d49c338a157eeff702dc0984b6054b29ebfe8b864fa62c798e29deac7354abd0438a15ba8f5168187ffa1cd1fd3b053c2ed8e677f068b3f6b5a62f49eaa5dad3938426f2d58c6ddea2c22c3ef7bdc36e49b4ab415abfabfb87a7814a9973ca38a6b6e360fa1876bc4212f24e1ff23c70be836f3533c232ad9de6dc4497229914d1baf19a65c562ca7b31741f86963b3d4886f36aede2bdf17e974953dfc3cd23421d59b41102469a5e910d819338c4c54a6958a70116e82781ee200206be2f09b2a73de2fda551c8f06b06d4de02434dc6d4e436a5ff98b61ccb2c8aa3f5abd36455f368164422ca3837535c2e8c65af4c0c257061810ab160102e850d437b41c8136d0f99fb7753d693f8a58839e4e265120cf622baaf82c539413173de1b46a39d564e33875a64bdad1f6b171efd97353183d3944f0f9628f4ecacbac1308f5c1e1fdb07bb1e792b653ce09dd8df192b7604eaa02c2728627baf500365eb6c3cd40caa66b935810efd25458df63f3487830653ecb31085228871a6968a52e53df9e02f821b858fe86bf778261ef347f2bc545adf506b36c8f06197afda03cd378eadd0c28b1a248436c16988dc1e1ea71e1d23e473a02f515ad7d7781594fde8fd695e263823679b993da6232002a624749dad68c7c2d42e7986146a8b10f63fd5a7bb759231468c6cea0c71be4c0387e46f1fdd8aef7c44603dbacc7dc46ba3f311b75fa02c637741f71bc913dab3de125617962686132dbd1fddec2e11423ea5a728af280bb68fe6a07d5e5eb5d3491b7234440742b6230086c7b8d1b771f8a983228716f730df2f6eba735632ce333d1effa4750298b045376594eba1e6ba0f31611ac9b76695ff11b8e4e31071174cd550d24af63c7207eccca1443978688354870f83e2285b1e9417fed708a0c2308ec454ff80a0ad0febd32050cbd10cf6ed1672d89428007537e0c6c535c9605628b7b03c639f182670a15dcc183688471244929227dadda07c0bb49a0db48f7c19b7d5166871dd2f341fea8e20c518e54aea9bea08bc053c2ac45e7301ed7988e708d885c6af9db02b6e7ac420e92d8f47bc502114699f0a2197837713fbd2e36b5f6cbde6a1aee94f9f8598a88ce896feee1f2767d7503ae13bf1fe4fe3bafaae998355725a685d1f1c88cb3cd0b0fa87fa2aa41a693234c7896c09faeb93fdfee732ce61c65f58276803990d7a2e5c69681f1dd5290dec91d66e4cb71e28a4fa389a6dc5d6d6b958280f142ee9588b56cdfb9267e08d9d58b8a6127cb216a778fa6e542f08ea39cf46dd8c19e84cba3005948eda54a1404448c52837b4f5657a2e3de501aec4e4edfc4d95a01b83a841c591e75b5203e4e9ac7a546b0a9f4f5fdf2e4f772671c056a55322c5001cd8f69156ff9bffcc68f1d07ace98176dedad3895d59c4d1583f414cabaacd6451bf9469da248b12fa0890d2fb7ac2e672935179424bbe01511e97a8361cfbca875483426597e9277adc6f74351a1c141c319d48efda783ffbe8b341f71d1f32c14f978b2b66e52555940ff8f17f7f34f1cae16144c3c6adf08716be201e1c1a39f903d0139bbab4579c3ea26d73e25c09f66b2479f9579b6a09251e86e29624175c3202e1b2a16c69c381a64c534e6d2352d66d0e22ace5ca216dbc1f006d232dc8351b5b1b6a6581bfdb1a2f903e008100466c331bd5d731a474e54b657b0f13505084ebbce42e32a7256ca7314f77f325b7cb9670092fc70e1a690fcfb4a1374b877cf66c1e7ce377f7d48c503b7f236a59900ee4062fa7fb84c725538888d9d347ec6e796a0b8f8f209991992ba50c7cfc2fb9ef44f0d7aea6db42d79773a2491b599e233d953d34b0077bce54d77f8d8cbc3a3bf751468d4a258298be6fcacf6bebde1fd6cb8f0e8e855745e6ea40d09e318127e0398da2b614a2a6674d3fcc58b81114bbb556a8a22295684881fc000e370b44f30b351cdcf95363340b496c9bc1ef2102ed9df48f7be934abe6e4daa6ea04dac7832ccc17799b08f37e891e7b5df0566c8d91c4f9e991bbe4c33d9ee482ae64db5977a982a7f221e5b60214d2f8633650db58525e4591a29fbd7f92bddc680fa45e724cd230aa0b56cd04c621658e3b54ed55b97eb636a3d95a067f7f46744073f59774c928c77d8128816fb7240052f9e23979575f670cb2cc6b32bc19e60b28196384386a72fcc960468ee0662a5bf57104f7a8d9da3f8871cffc45f699bcb154ca008ea5e7653f4715672fa62daa5dd454fa0fceb8306a2d45333cb0eb526259cf14f780b46775c65480cf1a2f89a1616930ae25ccead2f194af2743d7ff101dcb0d106c0206aa976724ea7215b4545ccaa76298ce0ab90e434d275cb4aa0caa71dd2409981a3c064ce31a8369dbc9bee35492992542ed2693702c4d236dde0a049b014e39ce713b3b10f4e03b237d10c18f80e5c7d8c8e1d87b477be916dcfbc90153be0f218fcc724293995ca54e8eb5953731e9242cb4f258049a6baa8a4cb8ec9661ce683c8530d34576e6ee8c2ffa0501bf7715cd5a3cf4d6452cded01a1ce09c5657ca3ca82d643d811b7ecf5132646ed96dadd5df9fc097cf359df9513e829626c3c27420945754bcd449a1155799f1767780d245ad32104b9e858617361bb839cca1405c7d54e23b5339fbb5c07105887239f131ca4297326569d20f8c1c690fcb0a1bcd87c5a01715a98e64e41ce6b1de168f2f9cedbd31c2d083a4e394041ca2749345f5599fe36cebdf74e4aed97767671767c9b60be99c74cfb69abc296e32ac94af118448a3fec430e03f9f0815521232e20c20cbbc4dc58a67336c9c7d3450fbd456fe7568f1eb3a6cc54ce688be1242b76435e600f8640edf66a3b5c59a557c34df409510998dbafe6d73299859f433b6d102d313c6a8e83ef302640df681db1c3f0adcd197ccc8e7e8bb54c453589c70b918903a101c60279251bc7eadf17188c8e08c8afb3b062d742acf7b2f7626b77c0db14fffffc57a08fa19f03e95047393884b04a764951f12ad8c043f9652e63df97a978cc29848eb89cf0026afeaa3618d819d6b42e5c64c9346e37897849c23fa104bd88e760a893267eb7a5884269abfd20a94c74bea7e1244c19f6962b39db0b0acb0bcdf9c614b732fd4fb00eb25b1a122455770c309c1b2129993829653c1feb6cb5ac99dbacdee7478d87549ec3aa4e4054b86a3f51c8fff33ae6a516c5663b9a5adff1a29d72d4b788244610bf5872ff47057153b041d5190e7ddeed19c76732fa958ba5c2b5ea5d962d18eadc0a6d6a7851e46593cf065cb817b03eb457d81767bb6c513af973699318a718a41cb098ac031bfeded846e9751ad7d0604f52b3b00dac4e2ee7c0fe8823c3cb75c0541734a7dbab8226874e740e6145f1431ecf64b058f65956b1fb636bc4967be8e1eb6becd9bd84df0ede8cd30f22cb206382f236efe82f63c7b4c05da2fa356bff859aeea580ec185e019880d6cb59e8966108280afa788968b74fca9cac9d611fe2b1e81da8b357bd36898a1efa99fd8bf3417f1753f64ca846bf919fae33638257a07de9f24477615f236357170fcf9092cc59f7140ca47caab31d80b7132405bbfd6782fb8f767161c3002fe2003c824d0224aed4d9a9b1f68ab890b57c7c7a144ea4d1e552815d88a6752491d85ed86b3f90d71d4dc00c96ec350730fba410fbf1909b8e2222fb7a051ee4e2858f2adfec8bbb2833981fd0ca8a3f6fd114ae33e2b00921613fc0e0977db64cdd457d3e143f94db67fa54c75dd72611c970a21585efd921a898f7917f86a56b757c57858cf336eaa20b6d91dbc9fc5cb5caf6149e0d9398ff992ae9c05986251c1449d5c0763d4e9b38b8e85eec270a833ebd00958e82c853c9e423063b637adf88eadcf3b9be2e272efa7d1f44264b3338c85935e2f5ca00d20c9d4ec7046326668814fec6f977fbb8b3dbfa2ba49013720a873ff7340d68cd61a4a0e18060c760df8e55226a37a906ca7769eaf1d645ea919a63a140120bdd7c2574a4004a61aaf0502d6b7004e1610e3e8e5980a328b628c0685b18a080a2ad4d7b6b0d9c548ff437198a4bcd919075a8147352e61e693402d48abe035bdeca9507ca15efc78cd5721ea95d34c8725ac20e63143ad5977d761606933ec8710547a594ab83828b3bd48d2d0526df1425f87bb206961132dee6a9e768510fc9fb2221fc1194158d0cf368c7824180d8b969111bf84ad09c07265466be95f14988181332852b60f98167306a131b4365e33e7088cf223703ae57a91a7a267ac50d7330f2d8210d4ac36046331c45feac1010e13af851944caf6412bdeb2490375d7c4c1d692b435cd0daf799652d24b61d21d7a2e0d27c5f538d1b56e9e803d8c9cdf6aa447db43d0d0be53451f489f1da4b0d975d9f8f5dfce0f449071a4e4119a04c1fb058414b23c6faf0d5650d02e3f0b9f2cfced1b9d529ce04b50aa621ef9e28ee7ab1640b02c62803c9101edd3e3e4905c3cc6429760b606471b37879fb1442f2610a9657627a26d8ef0eba793eea644e8f8c2ba027bf3275ef364092162d216880516a45ab59350f22b1bd50c9477a651732c9662372c270fa6caff2428d2489efb3421aa91dfb91b4c9ef05616e575d03c222d1de8fadeb34cab660cfb6adfb8968a860509d069e5f25598f21591c6b8bffa9a2034599a8ca8f39d8f4be48a35d9bb80cd16d4d7835d3d0d4ae0cd80311f3b3c974e669b9a0512e8c6e9cf081eb8e6419f13dbae878afdb6c1ddb9de3ae75d36acc023964aaec4f0c2730ab11635c4fde006044db02d5d9e588107f1044734f05ff70233ef39b240b5ce04ed9c57216d5eedab468e5b0bf2d85b4a1c96cfaa946c07728f0b40fecaa86cd7ba959fcd4ff5863edff516568498345496c1f01f923a5932bb6d3a1461ca60362a2ccb96e3517d4d94412a994bc949e7eb6dae471ce52e283b19a0913d41847be2ff094b6fbbf5599364f694e1591ac57c2b48cdab4e367e8701838f7a972da29da3f703bdf0df6c3ecd216803665bebfa1acd807845996c8d943a8b98b23c3ea76bf72d98149412ad17519a1537fba2ef23d6e304b83daf2d15e5d4fc5b7d2e638ccbd852aa918e299053819cd453df357be05590f927bbbcc5c9b96e59a208c68881df41a27124b2856d4dc124ef4d7c7902f6a616310f82e2e5979a155b03d9f00d5f3e765d237a6caa34d59c7e61c9c1f48c8e3983903c6c2ea78fd845713a7031c424569df968d06088c781e894f1b7a977d91e8ebf9ac2508c4290c0b59b2c817257640ff6961752fbb0b88c1d2247ed97db9965b6c20efcb70c29dafa4274aca73a029a85d4141002482723465bf8c6c52829bc4dcb7dfd2c2876e6d588bc59c7b82cebaa226a92026da4d5b5ef5898191e9beb79434bb98636aa76765af034adbce816273abb25fba37877f907b131ac5bc2bdedaa9bca00bb5fb8f1bb0e09fcb8bfe64903b01e648f6efcbe1c0a5717433ae754f526d4cf9f317dba4019ffa1224ceca81fc7fa527b73915581856f167b3b66040bb3cb52ade36c5c92525cf3f3d5a80c5ef8d850d6c7f82ed7025924718037d34b5e4a83161b241ff0cc59ce26ff5bbb492774e9b1bf0b5196169ad8d13913ea05baab92eea6414caa48ef333f804be9986509b3421384e08b506c13111324bdfcb405d1ae58a471a762aba2c1f4957ebc05d47265bf6e3054d258bde646ea0eeb5543d2b16c5b1fe012f349b7b7e292567d090d1676ea0be63561fccdc3bccffc45ec44b7820b4fe37a42dd2cd080f7be177f22f89e134208c4ee4583609ae9522b63156426cad851044968b3edc6e87d786399d1e73fd6d5fa01a28d203d8c81d3a447c2e7b11760cffa05df74c687d3edb5d10b65eb983e645cc9b188a159102ed268bb03b1265971f1c5cc9ba30d329365f13542f95786bc9e857b0374e7fe160f99a09c54ec1b03b65c959624c2c043428780022a47c46895dfba5516663af17ff5a5829282967fce74dbd3499fd95c29bf4351e9bb643d2d3500232fe22a117099628cd3655172a897454901348b5018857862d5d9a694ca452582f58125f7ea84537fc03ce5f5baaefacf46c819080f403ce3a1571eb5fca0c4a1aa53f9595276598893f880027a0e289143fd7916ec40537a38163288c7a8bc7cf3be6601bb2b3844f083630cf5d581823e24d6baac9ca1d838de9fa0fd85b09e046fa0701a901758843464f23a2fb9f26f4f0eb3baecb2593a3af590640288f8d197d1608f0f029af2b96d3cdda509260ab034de315b3334710e16929d39eec4b4cc940b4fad6bc9ca52fba92c5aaf02092d0faf4774763a9940bb790c77d27c393b7b45017da5d78fa6a01009516ccd9a3e9a6e3e71f22a487def003764e7db07018b6895d068c00ec2818a5e8104f63302824e8e14c19009ea925a56e023f51680bb0edac250f28759d8f4a989c2f39f2bab4b2eba2134e65dd719157743579f08799c61c65e476da273be1e29f131a1eface026f2f41a398cc668b37144417dec249b7d87758db6cc330648b1640cf2444e88d8d63f19f467bb8e0bebebe6f41392e35abfde9e0e628e093fa6efdbb8e01010a053aef1b5e7e5c630243ec50a788c98888dc50a5b970ee3d0aceb12c123a6bac2bb0f06543dc866a2940907e27a4ef1738cb94d60ebd0982db7b6690bc67632cc64d397b985bb544dd65bf9d2f208d4a21c309a8443067bfa19311b876e194cc87290983ef06bced59a06902be15f40b7510031f31575d2e1d44031068de09802a8810ad85e567fe34c22facb39ec898583e849a216f8def9e24de1bebc4dc935d504f1c38a51e769dd8a4611d5bc62c7c4058cfd4afb259dd8c6f8ebad95df547a1bd192cb031127825d18c0a1ceb535685d16375e00118e6d9b595e1525325843ecc1b0b86798d2d77e6be1709851134c5818818e1edc7fd3c18611691a3eb84f410dd0ff4e01b7ef1569c341836272db41fab1917dd45ee2b1401541c749809e0960d7f4db5daf4d0d4c90c86abdbe93c915155edbe6f134e9315e0c33d7228cd58a35920545c3c093552d061ffa566485fe69da0a7eaf496aab4f6998e6790a5cd2bcda1819db4d9dd1532ce65d3e6d6b5a54166fb1df9c387110dae6089d1ef7cf67d0349e4619612b16b5f8953179594abed285c3657ade96fcbc3d42773b25e2a97dcde00f59d91143890242a80e8e62efcf58f0caf6e76bc66976bc4643092d2de1296c54df46ac584da34e8d1a2f335a8d0b8c6418667818149b497055e72a20e6e5d01eb9aadef970f11fb806c36062e55271afba6f89ca9c6bb65011aacc74f5717b7ab34c9e1769f58b7085b84c9d35f8bf3a1f9bcdfbcad7ecf5a1612ab3168fdabb55385640912aa5877adc4d4f925bebbb708801a47e88e6e9b9bec34109d8d53605bd5bc78c0255cf31e47827daeb1826b657ac6d4e566f79a1965045393794dd93ed72b6a461c6fa81e8f87b5dafceded42c6cebaad2b7209d63217af56b9281702063bb8b20a03192e5f78832bff1694ab2527a11bdb7073dc50fa9d58a09b10c719b83258b0fe0b73a17743ecb142737945163118f60b899fcfe99d379a56ad13fe7376be4a28d492b7816719216fa2c05b70de6f19f781d70eca532748b2129ae320a4bdef3c4526254cfaf6c10f9f539ba54314332f23c2a904af48cb0cbba245f076d222256cc6826e171c1947930ea1752f11745126d588d61422480f4eecc279f1bcd1d7e5b30621b1f903d172fd4be2f25b4e94ab7cd32dde974d20d3d1616942af0c1bca18dbdd2d7e98a8d04388cd2b49457a0887ecb2cbb0633798c3586459b0fbf63d6b7086a6b73117f045d187017e6fe2bbb067faa673c77032a9fbb85e9a35528bacb96ede8e7f8834b0a9361e50c6bff6423c2b43dc8a4cc6f91056e6098e041f44836836392ca19120eb0c5f91ef590aa365755f73128d64289f3e292cf2fdf8f92b9b03ad78f4ea7b9a3c30866461caec7de97a9555bb1f6ca99ba179db2fc9f720fbb74ab4041f1602f8197e2aaa0b8fff7f1c4e25b08fddbe5b6f54b72e50694eb9f7f1882d13adcbd1d13c63367e42df15e01db31fb030803c6bf94dce8fd07ff6bfbbab418e70b90445cf7a93ae44208110319468bcbe0ce3a3e295e0f41c1c0ef064553865c4ef9277d9050bbfd543bda7ec7288f07b55defa530cdd7b119c614e6fda0b91a0aacf767617778f01ea9aea7e5a7e8181f8f83cac1a347db4bab55bf3ca872772716248c6bddb94e7f81e2b8c735f74579b2296d680ad800f88b1a9cef8834f094cd00c965e322c0f7850583939f805f633bb3c5a6b20949a30bfccd1a177357c10c98c43a8e99c12d1a7efbc6138a6c3e86cfa77081a92334ee2e5950c96565233fc1f589591bb96be445f1b078db0cb3acae32ae09104379409a0a3bf7d95db39dccc024da699f20fe6933f31227bf2c6a7acdbdd6e55ea0105a6e1a689e8d6fdb55de9130b9145db430a8087c0f1d5a10574fee86367ebfb6b0f13e31625bd8e10fe48c4bca7059d8060ebae8856cad8bde9505b6dcb54dada8198ce42089739d9b2f83fa1a42ed9f9661a8bf3a9bdf774779bab7901fa6f9e8ddfe0e760c48dabba319d015bb1916aa2ec77f1ad66a44aa013b22244d8a247ee522077295663078a0a3d46bbf7d1bbb63dff610740d6916fda828b4a29ec29999990bca745d00015fae08029fe1f6529a09c88cd84baa699a96c5dcd1e98c8ac099b17d13c27f666277b71c0fad759b2837427d47eb6d1b798db5362759096f996ca34b97afd574fe7199b29d719cc3baac86c461791f6eb28a41aa7a3cc3643fefae8fa04047470ec3c611ae5fe719a580ff5726c4a4b8bc7ed9605ac713367114246447177464d4c7794009cc1afe991d2689e15ee2b9adcc7e5f77937ac8b86083209fd8a275a68da1c32fb3a30cf1c59930691f50284dcffe13721a86cd536d7c8f10ae1deb765544b5e5318825370986b561a39def9c52fd5ee43e4c782d693c76ccc49e1f8719b254e50ae8305153592b0dc766cef816cfe4edc37239af960c4771cdcccc8c01877a3f230dc3155dcbff522ff845b34f24af96d0c7c32cc84019c07dc7e25dec7d9ab4060c02e4b833f343c3230e2227836913726adb35ea7540e60ec414c6ee123d3c61f46e684730555b2e257f603a92c2551a83b12679201d72bcb9ac81ccf51a0487917472c19bbf235e96a3aa1933bc5a1a8ccee5076b0083491e7879824c446bedbadd7732d4c9b20774e417c76cf4572b2acddcb9643d257ab2df43bdc5fde0ae3495257a516ea4203281a83f263140e99467dfca7fc114975e7c9f627b3d1a08205127cc8b1cdc64e0450decb0b816558f99e20660ce51ef1ebb1305a5f1c3ddfb0b223132b156d15e314d2e23413053f0d81b50f9ae0c52006224731a7bb333356db703b1cec52da2fd70dc8280cf2abba65e1cfe816e952c088d28a6059ab447834a720850827c08bca8bdbfa78207c8fa54f59d73ae1207d3c9d927a86a2f6e712802f3cfa08bbdf7f30e7e524679fc4b7df89300b425590acbec8676f615e3f2a90b5c7e98692f1031ffb0b5b9f61337af57851c40b08e5511fb74efbcfdb0d5dc3826bef9e892bd9c3605179f55f80546d8af55389802b498550070922013cf46094245272078f1364a1bd77a53aa99f654e84f38455b82e87df69689dd654b5d5114b9e1ed6e8536499298620eba78c438e930ff26f71e57a916c27f36a71b60b82c01bb6cbb69b132e24df58c4f048007f1d7a72b69ff0f44140fc85287225f394cca33821a46e37c06380435c315b6d5b0fadb490549b36c698ab3f9086355a5bbf35a5596be088ef81fac55c686ffce8a815bfa7c3e7675f975201bb2126e1ff2e043d06ace9944fa547d9c1b662dad20bd42ba8b14846483d1cd494c91ba9f8be98d24faeac971b039d89ddfdae445324f738bb3fffe74e48eeb3a3568da6f8f618442d1e098570d6ad35261f8dbfccbe06472098d69952a1c43483fb358b106f41361bc9c6b300bc4d7968a040f4bc5ff6bf7119870e8762d5ff02195ccd6e249ef7eeb5218a936dd9daad8f2f33f8fbd36a9ad6f0644b0f04c567a991c283437c2d726b68d6209af5fb1e415e8fb52e9d79815fc7fb40515ecbe5b269f41b0e83f6f1331c16f1484e0337c49d23460ff3ad9e7f7ecf740504614705f349288cb2d8e87535cdafa6f649e49173ab3eb274406448e34ffe84b1265a81ce0dd90294a3eefe5b51e3cdccfc00c98e2d71ddf30bbf7ef9772342459647dd6dcbcb5b312cfc054ffadcef3ee4e63134e107120071abbb11c2ccce230e6bfa99a18c374fc530166336c8af7536121a06d65602f02487d0509bb5d9fa166f9d49fb27ae6a323d96a3f3263c552f4394726ef6557f5eec0200ce2fd2f16825c51ca9dfa22d958385f144c731c5f67376b435c493d8eb80862e5165b932c7c456904c1736c31528ba9c9fcd5677aff4376e46dbe9b39d953075d04c07e55ba4a6e185a3085f4357f6cbff5511a6d63c210727853852e86aa872909e6b97546ddf0f178ea91d167d69cbae1d3e43e217662ade6af85cd76bae1ecb89732a74e791b457d7280c4144d4d49dbb851c0273c207ab6223c12698371cd5823f24aa5661347a2a52cfaaa8de259f5e88eff4a53689af980494f9e131f4e649d5ed8400981dc71b4bd4e5d3521d4b4c17031c234afb15454abcd5b54f8f109f37139bbc1a1654cb9f536a4e8472f8fd0f7eeacfc3e8a8159de3168e687e7abccd00ed25d8519e59e6d82ba77a774735de3a687620bc7ce4e62ba940e7b706040ebe9e81859b4c456f7691e136bda42c51acab741dce19c1279842fb268fa73549166832ce216c55fa0ca139082264fa4f78806b21094e1113b058e63cbe5e351a510cdf08957979c0e4321bde055e3d0baee1eb07c8ea7065bce8b7e80c8e1e6d52d158d9daf3e7a312692c67f98bc25b6c7105623b38a06338703555e9156198ad64c38a3a1916681dbf6aadd8e891cf505d0a3cfd93ee1f4bb566bb3525a0969448909e7afbc9647529fbfe2d96f386e47b6d7cd8607cf17c6e9c4c0a1be8327e08558a1fcc01da8a22645647a874007b8fe5647e1406f5d9aa74081698364856320ae5837ee5268d4e40bb5315d4af6c8492603a5d51608ba7c0550c761c9a457da44614d7088ab087a28f6107394491e1af28cc1c86e1cded9fe3f08411425535a199c6dc01120f14ab819a9bc30a0a25aa704d7af62c83433693626c3bdab9eeb8ad7112f9a5694fbb5c9d9217f5de8d59b18c7345f4932846e1a34b9f7c451fa8b73ea60cb3ddcf8dda411ff77e1debb46ec1e94e0eb07c9d2ab00aa1f468d9a622bbbca43fc50f2a283eea7c68f691f89ed342151fecc82b0d2d750019c3300f9267239dda2af5a32b790ddb3af957b86da73c037d14634457ab21ae9ae6206beb5044d4371c1e88874a05ae06e032b0d7a726cb61e06eacd4855ab8646feac1555e7f9d9a6f51797ddf84acf9095ed8ec825b1587341b073c6d6599f17cd9359e44805f419c5a6755a28cf4095a267a99bb13132726d1748c5c5af90e505806928938d590fd418aa347a7c5c5fb1a13efe19234d0e15b5511cb1eba261addfcb0015811e0c1c357ba609daaba742871dc75dcf6813dda1a80722812bb2d03d5ef02423c99b248755d072e6e4c247683a2c51130898effba2bf32967fcb7bcd95db7c8bc84477de3f4612918487ae7a7754e5e1cf3245621119cb85b60446e54f1e0a263b2508cd5f27683f395cd953fd2968be350d637c8b40355e3c92727e325bef3305f2412a8ef11f491db9f17123efad457e2d2e72cce22c6234d0edb79ca6ff453752c191fb82727bc1a5c2b4e85704a20b9265711f54c388ab86e35127ef8cc4c4d090e2e4fb139607fe2fdffb294518fcf72d2adc8873fc9a914534b5c5fd6b8adee3bf5772a3cfcc876e1a54a55c7c1867db52f3f0889aba965dea13e740cba49ee40f07aa9e4e6423d87359371eb712ddcd238b888c7723b36f1f2c29dfc71677257e2f4230b0e1a096589d3a504714b2c7d9abafc359c24a8727c2ad1e16c09facfa8b0bcb863304671e23c56dbe9c909d36fc9aec3a9a63c278c67c64c5a3295d375a7869d40d42667e38c7bb42b01a81ff8d6f4cc9d636d32b36e8c3b27e38b62c6f587493a4bf2f12defcf40c5696707dba5bd3e8aee1fa7f8b5b7512ae687e945b53c82f361f95dcbf73fee9663b87fd0e3f932f17607356be78c0eb659bf66fa0d20d096623dec0bda7ccbcabfc025049b30568443b1ab7d4a4bf9b37a39c7ef34d9bf666b3ce050478dffa4be6d54c6488a611fe95304a0366454fe88a5bca932b66bef549a8d9b376812c8c6b8249b40538ddc08030df5d35168d9770441daea61a9e2359fbca1b554570dc3dd3a413829e33b1bf0ae717a69bab352f9087d16d4fc6f06c644d806e12f93687b83f1f25a1ad5d6c9bf9540430554a50b7db73ebeddcb616403a74b36f8bcea135ff82e3059b511dc74f89cd230b0b00e32f866a547863ebf74ec177a2000da7d34d56086f7e777d7d466aa4a8a0c1fdd66019896ba6821ecaa7e0e4a4c5e16f7e9688dd188d4b7dd1e26ea2dfbc82c2b98b12abe4671984d44c0313ee5d60e00acb5d451633de877247e028635b3458cd95ef5e1b2f5003bba3aa0a84ddae98e6e2fa56f38ea66515417a93c64de49a40a59be69f68edc378f9d030d66e44659a530250b5f224b7c6bd9b6eb0b46edebda4535645ee9fa0cafea1df6ccf7708da9b406d07645531b44e07136688743241c49afba99219a82846c32d91d15d37d5bc687c0420f205b5a933c9d916a2be0df63efe9498f9b673c92c26aed9f7e35ebbe03875148621bd292cd68e7d45f14e726d6d30388774536391f25261b22e49219ec58b624f29724c0114f130357a0f33d72a1b203c3cc05557ba6b763399057b12d61ce2f1624c33c9f70f77064cb578e5658af01ebe5bc220387d3b795432da2758179df9ef0826302707ed931d1f45fe9836bced5f0a33e4476d6648c43e544db183532d07b60e99ffc003d425d5e0d83a9c8e18a9b61495efa8beea91ba8193e0a3f6b0154dfacdb0297cff0b7c54e2952ce28b4347345ca446a33de833fed817e62df8f1a19a40cd5bef0746def1b17767294b5b974960ce198610b3c2ee069e3bd2888a69c7da71c9495e5f6dca8daa7a46db66b06a1ecd8a6cd3fb7f745d0c0e748dba3df95e67e74809e21135ff6af0147da29b9352fe6c6f95bd313ad0387dd6372ecfcf58df69000cdc7d4f774b2add37c8e0247089fa3d53ca64ed725fc86ef380e98b9daeb45a1c3bfb760338e2e4b3ce2e62aaf19397959b07bef55cc5e767ff88935c27bb90a978dccd118cafdde4b8baf58cb0dfd35f285ae2310c119f4bb704f2bff42db332504bbb456c9a7084c09769245b6c5b6e1ab013c618342a06bf3ad41c9a7f25ed792e6c5cd61bb95c65abadb613062cc5fc130ec3d84fcd22dfbf0db477fa1fbba3444e211985cb622be7960b4a86588e3d531368ff060493074f930277dd2c7222609672a6ad28a111215d450c0384481d5c68ef3a3efcc03a1800a2c036ac7115e4b95571f24af20b3b1d496ae96b45e51fd66a0f011972d81911b91dfe5389f640f31b4a061e8b094956b7adbc5978ff5c2ab0804f7279726229fce6c2a72fd033c396eace8455520c6d7468eab094c9cdb5555dd9503a95f4cf3da31b850894f86d5ca48ed01a456a29c19b61667c3d3acdbe3cb4b3fa2d092b8fb7e79cbb4b75771ce3e64c7ec07b38e3796185fec8d34a3882e9cd0579988df0ca5df01a1ea12c04f5d3b4c7c071a85d8442abe5ee130a25f751849ea164e691bfd35999620f1c33cb9eb87dfcd26eb908d388568b0f6d3ace94f4c17d3c4ea3632701113d949a3fa4e57dd08985e2dd3d3e627ed5d1d9cc2148ebb90fd07cb53bb1ead97b6d3dcbd2481dd4d6ae41f9835b939178db372c3f216c7fb73b51aa08b56630b2375f2712fd228b7eb32af988b10a1a5e53741051db2ded3d624d35eb559debc83ca1091b810fc1c4872293536fc69503d001163bfb18c2234918ec462e0a847f5665506af8d7b4c21010dd761b5f6575e1544ab8dfcd73deedfbe6c6cdfe6997b452d76b3964938e8dc175f0bf7d0a49ad65c80e9d1fd1ec7564f1258a1caca353d45b7b7111c2e7de653d73e75eb630ff3265eafb9374ed2e664a9c41dbedb6d69a716d5d30f9310b109e20d75428022a3b6c3093e406218f36f514e808ae69c316879279862ec98b3a64f20d45dc4af6066cde5c8151024aaf998cfa41ddf2d400fa6538ca4ff8c7402757392a89cba49c1246560d21de97cff43b3e7ac44c38d43b5b4329cd1ca1e041c37c90ef74bc0a1a38b4dff7940238d96f837c3ba0084f067b05c5f3c01ac15a38201af8bff4e244f0f38090f064b0bf307e612f7050f69fc2433118b7f8e97c0578fc217b0eb76ad4992f30374da1e71b291a793f298f307753f7907fa445c0411e824167d6a49458bf60c9e69e9a071091e903ab50a525df92128183ca2482c364878e3ddec6299aa938eec122cc8d8f5ae74332af08a713257472eee6bc2d963cfe02f9b1bd2b8482139398af8d70facb7ffc27da4b1bdc9581c03069a49430ae6d097d702f838ef6ffa076b9d88e01aaf156858f45bcc5f692d2742c58d7ed636d7bf3b7455c6ae93e582260cca0f5bdd0489987903be93a742691c2b9dd8ab62bf07bc72d932dacc882148929b8d36f844acebd0d771013e62a41768a5faa21ea5a06919630cf1fc676542cd6503178c95d007f5e3d2e501feaaef8f47ca1047ff9723737f606f718e9e1be5df169502f641d216b225ade4584976503e70e1ad492511e48fbe1dad18f96906d5bb0b198c50945de63c2bef67994a82698fe1e6505da4106599e8db594a906584ce525bc6603e9a7dd4503c3c65355b31c9cb8c625f80634e79f47c2d73ed792cd5567a8effc5e780ea8b2b0cbc8b3606bb5c51bed841495089072a401accd3815c30e3a62ab6f492c91a8b609a018cb4d90ef9ef706107387fa963f665d2a86f655d9a7004090d548ccf842ac7fa1f458d47b1c5394491b82f9c829b7846460e25fa2f68308161c867519b3e3de13be758b17789daf7b5f67c2202c86fbeeca770b0783a26fc0df5a0a1cdf0f7eec71f97a9127733ac5120326d4c99703a570a45e8c7de617c727e78d898ebac9a43b4e5740b32dd7ec8f9a5556b005cfae1f55300a67d40ad7bf58330afe61b2d2aa2b941f39f253ce33197f7b4a31fa004ab6f30f9b61360fb55f40dd5e13c30e335fd383ea0ff98bdf4c12fe2f86611586047bf2c2bab219ddb2194a53d5807baf2434a68daed4be7732c1ebb00cfd1e0eed13345d5a8af44ea4ab9f75e25c60d90e052cfbcc5d6a65528d704eccabc53f7e9f02406ffed9e3c5a00bd3b3c389d17f9a3ea28f08e9162d742e40fe186a1da88799119381fdbb9d188f6bdb12079bb14bbd03dfa5607cb78cd0f20f250dcd4cb46fcdd0e27fb96ad09ab3ae7f6ea14ed8913556a88e8ae7a7d080757c3919e1e13b44fb621204f9ef6813c138062d9ab8355f81a8e5bb50c6763f4c46b9ef9cfb039853ae3d8886ecfe682e4c11f0281a05416cc2068cd0f4f135cd1475e23b5b9ec27ff42674b733de83b51c067e298b12ac80a69afe4a620a9c8f8194a84d10460dd198faba9a90cea8a26fa3cf3c96cc05b5776f1577c054639b1fdc9a16912599da34d993be7cd9108a5db0c0ded0ecc70ad1895bbb41ffad4bad4f37007705d957e740f854cf8167d2afb2905e1ed6fe5c8c885d1ac6484f01b052a199289f156329722a687c7f4e0f750e646729becc7e24542d2f097356a5e3dc1e28936de9fba33c2a1f56cbda2bd6d0c31856bce7a9cc93de39e3887ffb27db98c75538c4ddbff541120293136576df1aafae1e193d97cb0c3cefa1bec4d5801e1b00006aa6e9177aaf94c17614e86439bc8c33bfca455851252865b8b1a520618d4664734cc42e23af8425744a001ad3ef000d4b779cb6d10f4f6c4825931f37214e17cae5c3415098e8e0f138137b02703ba1c2a752a5af8c2cd2fec664b71cd271732ebeeae3585530bdc56d630fc2c176113f00fbb99500ffa59be5c489ac8423d3b4bda26c56d8cc2f3edd4da8724127cf6eb27cf23110a83696a913782a87cadc431feda2a9cf77599dbcfce4562b71cd121cf8a5b21c6b289a175dcffda1c18e16776251746a0d0e942cab56173427eb7fb530f94fd04e1005e31c9b2db8d6793e09bdce1f2d2affceb3c35841b1d3472050d6a3c0ba73e06b10badceaf7ed421e70e783d4d5fe776789630fc3518e44f2a44765c3fdf1c81268e478069baa36ed92c9dd03510cb570af0c067366a0870733a8009809105173b83de776373f7437ec4de6debdb9c66ddd909788ba3978056e63f98669e454bfe8f813d49fc7f65d2059f5dd82f619d63a7f9f1efcb74da43c779254a0b44358db586ee053ce8e10e4ad873c725a3699e99ef4b5b442fc34c71fc4d014a373532039d2fb80dfafda32f74e78fe75fd966040d3b2d1bdfe1496bef44c0e7e9ffd770ad6aa924bd095d572fbd67e44bb22966fadddbc543c3c0017431cc1c1ab5325ed0919537bfbf138f614dc83f2a385fa50cee204200eb4e93919196b1fa08810d3df959b7721f3934776d63b6aef7c4233ddd095a7b71bd2ba9021801b5b83b9d347119586a0705e05a352e7579fb70120949d81437b213308ea94e694e55efa1b87a28800809617963da45d98205c15f5ec9f589dd10d2f01fad9434774e89923730340bed5645cda5763a1436582de509f1412d431378f22fad7589a1524ae120612f6c2d92d4e9b36ea84c5c8b74cdb089b8404468f12e5987c6e50c2c8ce803451d7033e1a49ef64d85eb60b7bb8b580b96e385e150c27813ad2e507bf17f80766126f7aa4ea0ea290ce65f9c38d1ba6560ffe715e51bbd08562b3cba8fbe5449b7894df1d685449ba9049d577c67d713d4e2a071679771f562b26b654e6e34d5eae916c28355f51c063c282f334a3ae9f7487e278695bc9ab129ead4baf8189c2eb23973dfa95e452fce8758a9e970d9075727dd836ac270495c56848dcfb4afd4c016f27db80e2e30955e0fea5732789c6a8d91a521c46e8917488b9b38721e8b2dbc7850db64e294b10390a8647abe5c7c87237075b6a5e2870d9401f1f7d8233af5f4cbf52cfa1b22733d89bb26664bd46bbbf4ba57574a39956345ef6ca6d1a3e49434d3ae2089b8c728bc1f104aa56d8c852dd31c1bc765e44218805877079dc3c85c9955de30b38d3b7786e2ec1c7989226b09297ca4a7b4643df4f43f348edd303d24d25f80dc2e2e4e4182a9371676984ad65d6b71964a10ff3d2508618b31d00b778bcd30fdf400e961641711a43214bc2ee94a15be3f0ab9247895a4f566e93f1f67e425a75f7282390ec8fb6a3b86c3d75e52943c27d718f1eb4c6fc42c328eab7dcd9943c7f9494a74485c014296c7e7ee8f3098c04704f6324c338409aff0e61e56f5a1912ac9ee13ecf219272e5f33f72294dbe2feb2f6e787114e3a2ac3a51d09fdda6203dac8b094eab69e1056ae273f979f83fd8b790d7901a3f44956a3af2489da03c07b9e838c61da3040da97033124afc5c619a25a50860f68a77c5cbbe0e291e8e3efc2e8a5ec230c9d3638b1e2b5091d26789ae6361240bb6e2f1250ad7f5d2f50c63a0b723936ab440763cad7d949d0cfad7e96d4b021543b8bc13bb4e42c4520cdb473884f39546d373835b4341057ee2ec093f18b0bb0cb20f4184630b27fed16c25cdd7f87b241d867539415f23be1985783e3d5099c8db37ea07c81058745d26d36cd34250c5439b0af33aa2ed104fc6cf66d551e6f3137cbdfe76e91f4eaad5ec7514646a087fe4f1797945153e6521f3aa1ee190088d03e9972628b5212593c40f9bda93449fa407ad49f8b613f20472aff9e7a1a6510c8f4dd98f2e9f2d1c2e484b98ec18854e46727dda6b31c15f9e496e9e1138bb711ad65158574099fd6acc6d1ba885a5f34cb9e988cdc051f3003926ab6d77fa822db0958217302f8e81122d1725998a02d5c5e639bf90547615bbefd3f22b92292504713de2a12eb988671aac214c5155b1f2d2e90da1308778ec3c3efc5fda5f6a3bf359dcadc598b29eaa300efe2c9030d78e97398c816ef165a23fea507ff70bbbf0cfacea99e01f0cb489c060e0cffc59fe90796595b101275dbee259ffaf5aa47d52296a4318c60df4120a8947a8d2c58dcf4d91ee74e4aac9210d252f9d815b76f45072d0a5f2a38a17f247cf72a965a6642fd7c4ae27f8e8d22b81b6dd54d9fadc46483fa834827bda96e6faec26873cf6316b81294996e34cb5538fa1d07aec0b3fa706a2b7902f2ff7dcdc267803434ba8f64356019881bdce418b800216742e8f098ef3580df1a12622a0c1e99734e81db75def2554b135cad4cd2057997c8355beb225025b7230ae42037ed9688dbb37a3d66a4efa066a0a114c2d865f34d067e24404121547921b80d71adb024fda4d25e83ca4eb36036eb0549c96af8f647cb78988de2b661101db82832a0f7e4cd06382ea88a39b7ea4730546b595c42fbf80b89399a6adf2e70e7c4ec5b9a5e9c83fc7ebfb06b29e0e48d3cad75ecde444007e7922265b6ef735d58bc5784f450c2a8d5eea249e6b0c5204ca6586eb2e0eed7c5a8e6b95385200ace3d77d8fabebafdf88d2cca5c3da45356862d220f68c3dc84e71f4e2996c29b904e79b792d7a287c2b65e4b27b62dbd625d0afb3b3ddee68603236b017dd1bc46256d4a6bdb63b55a40e10d20f9b93a905499eb0d62605da55f420cdac69822b456610b45c2d1512e19115b7e362784703059f6538d0dd8f4cdd59ee9153db60259bc4c455e1f38e211f5b3813eff99bd9c828e7a084906b23c70b2b962301695d425dfb8a9271578a9008cfd2348f641977178b5b2f0847b5a244810779025f266e5c01d2af4b2f87b69b1960ee48b78f3d6b6ddb67b16fe317954f2b9d90efe60203856088b08dfddd335a821d197cfc9870ec6ffd1725702c0fd946ddc2dcd1af37b6488e131d4ffa73f69a2d2bec18a9172c0995911ca9fbcfc937edea7bd4ec1fcb05bc533c2c1d9ef945174b19ee8ed6920c8b1ffde1c8f7a99cd4bc35d557887d186f8f7d362676908a2704667bcf6f4c398b06e5bef652698d281b08420bcb88b349592673d48c8e9b4cd20badf45ac79c9036e54eadfddfe3936e07efc75b2e78ed21b38da3cfe8270a7b92a2e65a37973f8281f638fb4214f08dd5440c83b342a19252ea1e9d393b77655d45b70212f0cbd0322a6c11af9570e22ebf721ae2063445668894283faee7921e2fda8695fadce9e4f88d37a5daa2a15fbbf14d86bcaebd05b551ab5c2723ac5ce0023e3eca213778669f8f88d944adc996d67ef25ba7ca7a8dd3bc16ab4b71f54623a2507787db43960130212534e7621d96667aea4679c351952e97bcd5bc96944477527343cc8ec5c6fa1c95f78d3348cc80f896549a138766f32d0e3434456534fb90ed232c1416385f887ea584db4b059548e6d76d52ea72edcbc118b3d83540a69847d80587285a295b7c283f0af729f2ccef236b983266f987396e787b2a7912bf9923a60a877a72ecc7246a0761a98ee8a95d43b5a355301a78691e2e253a149a472b43b8df0f5d7721004c2be8b9c98746cf2cad70592563115871452ceaeb85a453521c0f77859d48ce4a64804bfb949f9a3d34eeffd6e4aa0b4be62035be1fa85ceab7fa56f8e10424f9b351855982b39c1c36950428430c05b38ec5342dccb2b0d37e3bb50e2bbe128aaea6e8fbc531949752d5f4f5cbbfc0a58d14440232621775599805c749a5ce92ff2a73ed5717ddbd59b7ac4fe842c70f85e67655bc753e9fa550be11696cc18ee2795a50345b53f7d44fd5e0afc662bbefe8ef841ac3ca55b3363b0fa18f0bb1abfc3a8fdeaa2e2f7c01cf6253801c2a96e48e9bbf3ae318479af96b682db62c3e19d478d936e992c08fb1c6b18963951954b17b62fc67de190377df1a6f174395b0abec308f839542014cd7c551ff9b6d4aff3f7e7b47de57bb3c5177812b163eed3270ee8fb7df5a524e45339d2f7459a97ec9d1b3a391222ae24e241de472da61469da65dec9592f7066bbf169cd4f9a7665fe06db9c80cfe0f4d289fb085a07723dcec71fde428305e98d56f75283ca96d9a7293bb87a027cea471b1c0b1d72c2d44dab726178f28f96202116a0d66628b921194146fdaa3a65d4d83c3915f231ad08cb8a78aeeecae49785a508c8f51696b8cd9bfcfab16679cf191257f29ff654ba4d7efc39f2bb9f58e74a8f72184fbe8784cad3077358bfdf6000fdbba142080c69f657db1c74a873eb057dd5dadfbaaaae860f696019a39d682a4baad6771351d1f1b07673b76a6a6773f03d78c400bbe614012d6d2ff3073d14c862ef97380d5530181b7ca8d8488ce91f8f6a42b6094d7401bf7312fe491b6fc917f6635c29fa86c7acc856795c96205607541a791cd9ae6f52e8312ec57a4cbb276d7fe6e3081fc49851b2f8bf52c4bb9e5cd6e845201c93da38018bed3dd525cfd3c3c64c1d63701f37baf0abaa0671a297c9bdcce4a0cf7f2846566732f99de91df9c2391e47037df4a3ea1686dd1fbf83aaffd2f9583aaaea5f3698c378df3c43d47c35ee4c1074122b3c078ce77f45efc97fb29e16cf3da9dab31d63e50e9bc3a3ac4f0da3486caa414e9026c12053b4c6565b326f9b16e88c0b6eda0d35cb19c35498f7468a05b60e5b245cb5cdcc236aa6f8779128ad86ad827d2c48aa672dbc35987f143d68c803a20234f1f50fc7ec509a63d1212788fcbe569a533d1e13e3ff6ab228c7726510676a2c8272143258ad6d26b591922b00486f9e9f730724decc2cf756b1ba99040e26c979302c73d02d613e6fcbaa0f0cb7faf8e6877b18a83f94d123fd7c792d65e4f5a0dc70c1746cb33dcf7842ea906c91a1d166fb985c42181053b52e7328d94be2fe0886ab0a10e424096d8fc0036eeb074c75fbd37ecca4d7fb733a3963efc4f86029c8c808289124b09cdb058be204823917a82b22821961e39924ac01d203b7d7a1bf28be70ebb105849e184c14d9f4d4f93e31e64c3c54d86f95ff1e9a9e2d4bded6fcb4d2019251ebf9dd8158fd32744db4c0b01af46af5b5618dd3bde446fef2dabe252744950caebe4ff232feafddc46400a62700c9a9196dfaa564088601c02a126884130534f4a2aaab5074cccdfc6d4a056080ba6c414d5c8265d798fda0822f42f65f4bb786bd904ff3a456883833185c71fbd48d3f64a8e582704e6eab25156dffa80ca553fcc056d25853834d6152d3c349e81c27e46aeb0e1bb11c10f26fd3ddf04656c76d68502ee9f7d07d553ac1361b096dbed047a105055d412ceeb835ee5731ca685392b4e4a8d2a1fe14ee38a4af8e0140271f3cfca2be4d073c107693b044129842f2443e22a4d80cf82fde978ffa81746b1af57dbbd5c2b1b1c0e9298b206900e65b17e3fb7061ef2fc3f7323511375649b89243c2bbf835443bb9753bcb92f977b80c45a57141b7ddd27ed03011ddc6e38249f71bd826e27d1583f6e2503620f85d6bba992e78382dad8e14c24a86292483d71b45c35268f372c8df7353d02a28d8a3706d64e0305bfdbed4551983302bccf4291162c1239379db0e3f6d7904b0ed092e7f1ad5370e72cb86228ff33fa3d0609759ec342be6aacde9db8cdae787bd1ec2d98c66e1cc69a6de2c858719ba4fd5058c930050bbcb994258d27e377b61a4d2ee410be5e6074d92656d86a0c805730df12e1f029eb9afd7dcd91dc7799d3fac5d0a3cd12cf8775fb7dc487b7939cc58e166b10320b0273939400a1ff71ca90fabcad4372c0700bf6e9e34cba556f722c190f08aa043455803f645d4a7d4e9813ed7c1e8af636c1f3cbf92298708e39f680c75b4c120fb347f36dc7b473dab4290a187b99c63cab765852c00b42a7ea2655e936bb45617cb116644376fc8eaadea166662c9a7d3d514a5f87625ef80524c754575cff8e38f1d4064034337dc950a0e97ad36e1c369e5d646c250bc481c6a635fe4778897b259b847a9a2bc18763dc034def5642db7cd33334f3c392db6aeb5308f03d15938b9f7e1c07666c54268dd2e724f64ca66af1fa1d58b6451fd82ef48fe6ad602678571de6855e40ed79d095dcb6084db65c801e4a1f45f9cd982e48baf57beac1c2fe34d6c9ff38c11324a9a62cdad4a3ec4c27701287b7ce134d6f928c2fb88957137a02912be729a6ed0b6668cd169005a8beb55cc7fad28e1107145fa5dc8b0fd9c591e2359b8543f5793289d753897fe9bab8cd0300d946a54bc7f98c4e6dc5d86a0ae3665f7c09e61389be029a9e00e63b1e0a6fe9b5f655c890f3e70e6bd95a99668f7cc2f9c0d197967febd23c4c7fd7384ff0b0d1761698965a909fe9fcefd3a08b2672a566aa29606f4422afe213d697cfa2ea7e9cfb355df3b0c90c2be973aa5589a5e47ec9ab0c955294dc73087f91d653579822c1dd7de349b41129e13dfe99be57aeaf6aa7d0756f1c9d3146751ad105474e30447c986bac4a65c63006411b5152bc592ec53e0c89e33f7fbc237c1270cb4d060830636603f3b0597765a29ac407e3d198d5fe8ea1e61cd5da39bcab7dbaab75b159f95cc89457a5177def720a3e9a6a91692d774ee54bf01638c7f4cc803d078b3ccc224cef1c63bacb89240c8900b5e5fae53c37a0da8f670cb0762fc44925032fd7153140f133c811b4e42795e33fc4a4b9ce9c671c12cdbe96be2dd6ba2c2b5bf951f0391b96f345e75eac4197a2416c14dfcef9ec3dc72d084180f63c063a0f9760554a3ad1ac99213b5f8ba5d0d618d3c0b3b10065dbdae8dd9765f2ca0a9ee42ffe30db7cab8d61a8f946a18adf9c8bb243059cd512c73cc51547a70399cf7c67dfe598636b16bf1ea7aba53f1a0e4a260d544c43785f5e755054af4488e12482c0cf030aabd0d4c888ad4cda2d2ec4c9b3057c67a079764bd25ed7439f17e06ebd4ac90dee456b88322826c3208345d169f8fb9b1f6047a7dca2140947dcb4ddc57ed5e6fc4098562dd9f9d9dfffd54d7a3fdc9a0def9cf3dee9db850e71c5c61d8669515f32c4d3762a5e46b93c5d25c3312ee087c0f3fc007d4ab2272f9e2cdae35fcde7a44738fecc6dc7e43fc49936c889632f6929e09de78a4ae757db946a4a192c26c2927a2923a699f6d5572a594c7080aac44783c2891f6a497588340cb2cb1bf5e6106c507b38216d7aed00c456e6ed2152bdfab4fafc8d6b4adb5753bf2dfced473ac23f1a584629d08c0aa71ddf96c1a09475673b9ef90f542c1fa779b80defa5857db7154fd8eda99f51411353fe3bcc7c4b07b97c161bd94e45c351f9399d122ce4edfe635be1a2ea2d6ad41b9b4409b58f731f9628198baa453878ae48dec4f052095dda5c1347d0640a67ef4016422d1cbdfbe99db8b6b8e2e983a7525efd5e7aa9f797c7f1cba0629fc8143deec26d60ab2e19524904c7bf8d68a4a80bfb2f3b5bf138bbd058f84bbcccab468cf61760392f915a42c8217b31bdac3199ffca3826b29c1669df6dc4844ba2c3b6321235151ded52bfe30778b3529979ff63116502a2353e568414ee33a0b02cb594b01922a376acfc340a52481aca45f8bce83c5bb3a5a5999791539677f78bd5ed6c77f6a9f036dc97b8c5f65b428b830f352992bd714b161dc9248dee182beabfffb65bda15f46576beb41b3da50e6415357c7ca7d5a415e5626c9000e786c649ec96d1ef744a42e9d0cde496cccba19172cfe161036fc134aaaa27460188c4a3d19d0bdb94d74068104bd71cf47f05b5b81afeb1567aabfe89907103fcd040ec12d66eb48a74d10ac02b4ad3b256a092c2b803cc47cb47aba76b9e86eaab1c84a860957e6b7b8c587448e9d53cc744a493b296bd265c6d71de3275d666c23d5b2c95cfb843ffaaa91ba3346ea7240a5fac164fa8e961da3e9d08cfb070540c4d73559fc17e738b17825efe792941cbd78cd53acc9735ad30e9761ad9bd13f68c45f33b09e8322ffd32dbef2192c9a877379958621bebea9b069fd6b65522ec2208870e14b071be07da9103e06fab83c0a5511e47842dfaa50a151b4492f4e47769de374d1f6901d785650ad6a1ed832161bcf4740530296dd725124ce0ff56f2623a08a9e0f6e62d6e5226744de094dbb101b74e376227c144d478f9d830bfa221ec87170e7dffb21f904f6f726ee5f5159e37ba681d886b77f01eb58e1c2200a880f0c6688b03412f78d20797a86842f232ba0a09b04408a94a6b5427c282b43a93303667bd4cc7d6c4ce9f46555572af8577bb7403376ee228d8971d7b6879ea8e6c17034458ba1d05b6a15c71a73ab5e81cfaae97a2a76ad573f9c3696304cd9f780271c549146f76d2b6550f9d88f5854901d2b7a87aec515dcbe24e8403b7d461f72b9865e5becdbd4d21f23bc6f98613434099d28194f94ca68b30de2989fae4b0fee19674a1dce8702d95c62ea4e28263e08e8cd4a9220a287ca50c4c620af4c6f4ceeaeff56816eda6104c3317ad1203ee98a53f639ef301aae9ab8c481c38a15de714ad0600dec7276e1aef742236592961d30dfb4b7b57d219db981bb08a394b87e9f940082d064e8f44ac6849d09e6f222d6043d2a66c2615c2f4e1c679ae369de57ce6d6c1c2f4bc2078acf6bb480612af163df98ea46f8d0958c3b6c8a5b420a4255a19ae940953cbc7fc2e421223a0b948730be1cf44bf5d1a42dced7e632569adea73dd4538c2a22c2c61a5d77a4c904d1d1d61cb2a25efaf854b93557d099aa73cd288d9e64dca1849b69b40e1dadc544915626eba39f535c86c18d4b7024122b687c0e23b82aab307c2cb3a436b298f91db4fc92506270f39ff0fd65b378dd68d08e72a295b6cbee1315244865766e61d1b25b4b6cb4290e655c0dabea44fe95fb636a8b47a7f889eb5408616c16846f4a1f5ac209088bc80c2a347884f7e3b6af538c4f99917f434401abf2d676875d9816706c0b53e12070ae97a6c9db34ad2814df29c95ac8a39ec5afd1cb6817c44be326620122d67b36ff3ad4743ada196c62896ab1377a14a43ea2923ff33a02681a593642622d5b35ad8a7c2e5cfd80dca523a22c6f88d2c64ad629a6fe3e88986219669366fb685dbe43feb659d26151ea51693ba73ea8787f72486ad583b48ad9d23bffc67b2035e13b06ad643805024d1e6a6fc6dea7baf0f48ccf640015d61215fcfa2e5d978a59ab743410e4a1ee1da10720e34bf76e2b4c7a23fa96193e24be7cf75c6d34ac85f8d42b9f097208a981bd85e550c062e955efc1388099340cd34568a6a190d417ca288ad00fe7df7357577f3246c91d2d8f0fdee35848d43ec48a92137430f53c034de18f8f03b21b389d7f03704316594c6c652ed230e5f03ac2a2d1665b8f02db1b3f1b5b654dc6429d388eb2912695696152a4f7aae3afebb70bdf47a410a7be6fc32bbe66a1d703f791cde161cdea05f94e4e060b152e04aec8343e5a0ab940750f1af7a3c2152d8dd0b73adc6866515d54d8791c6b03d8d33cf76f5b898167ef232db6e37fd5b7895c3514d55338f18495611cf78c3c0584c93888a1b27d48cbdacadf2d1442ec2d414e4b7e7347a82bde4ae9d08e9a7b28f2076bdf4ec55c20419372988a2426d6ecadb041337763f264e728bb55842ae0025c09dee7c543be898b179a17d648c29baa8a6f42248f9c140d508b8b3779b3075ecfd1fcf3eb5bc73f36f1f0832242a47037ff15aa9d1e0c634d16dad41850ae303505827b7707393fc2c785aa011666767039392c6ecd7844de37ae82c00201a12925a4115e42b506e67fe94774060c3947134c2becbeb7cc709e15cdb485112ab4ad94be33d59780efc1859d131a4740b14723a27773b73a8f34f5983b2ea2a619545c360b72506490eac4e9fd2bb3c95968ca78a79f682dddc2f786d659169503fc38dfeb6fd9daab855d423a299cbbd6a32e9e2a96795b5c628af776d99a992f3d3d1e3c26cc5654d606b7628b1d1513c61ff21c69e32664028f694189fc1ca778be16b43b6bcd0268cea03bd3727e57551f1acddc29287bf27e148a57dc69ef85e3ca415d408e40713050a9d47474fd59d7fda8b57ee948835ee2c41fd9b3566e119d0edc406c00c873d1e52dfba2c1019a77802ffca6e2782377057d2f4bde0fe27e7895454262b6feea768f7d45a88037648e48269d87774af542fc8bce734892712b4c775fd42c3ac6176284e7c1093797def2d89fb3d060baeda30a9696827da311516e3cdbea9eadb709be37ac0fe154078c06be34eeb046774f4547b56fa4456d79b9246c4186bfa533e1afed9806f2fb38964ff4845b2feaed9de5b5c88a348186d2ab9f43cc9731877acf7bc0027d8cf6f44a5dce53703b3e179c915c286012cb53c9dbdc71054facef51aec561143e3f0a38ba4614d9d4dd1c08b29328430afcb560c3987267b0f50e55c215d3c65a266634f8e75a1056f41e7ea25aa89b869e935439ee98a1d2e8f9c79723c09aeec16b9f1d2806109f9d013346dfe612f01a72725424ed241239ce67185abdf7c26dbcb547f15dc8add51483832a337607baf77b92746094339521f05d50e02a5636828c08ce174fe8c0b3ecd843ceac99050cfa820261d510ec3f83e05ad56f2618256638972e6eeb46c854b6e73dc1ecfd296c07d8c4bf1bab5c9e747698e9e53a372cbd0951c794ec6090f1ea277c48bc3bb734fbc8d794874b50ed1b5eddb79e2f76d5457c8d0fce9d2fc25290357a69aba5836f0ee9677610a875bb0204d8f23d522f4e02cb8bbc57ff5c67f95241b666da9c306bfc6d610aa69bd9aef8d02d97fa566bc8a0bde567e644d51d5b06565ecc4692a9dde28db2a8e8c215da700e3f516b239fd375c8e76b67d39f92fb3bec0abfc5668841b29a817d322b49c4f55877934fc93bd7200b7dd10f2f40de5b7c483c2de3db54deee3e7d3e64ee1f82dd0383cf0f0b39079b3cd40030b69631d50181451d041a60e7123dffc6ddec346819d302bb94396d2ceff64490a95bfc0ba588d648b4afaa71bb8362e4971800b77594a78b52a639ebaf09ee156982639d2d4cdc62bc9037aa9d50239a16821bf2300dc939539b58ab0a3964f7eaca34f9b42c9f3ab09a8e6596c56457d0aa759828b2a57e7d8568eaa1b47ee7ec032c19afda776a92a8e4442b643466b8fd9489ed4d556f97e9d3e88e2dafd1af6a240ec833736b09f057ec0ac00b98ea3d39d3b1dd1b50e3a38e6c08698e0872649e2a1f6eaae2bb03c36c38e1b7405e75c71528aeb2e802d4e37db16df588a5a825b419c6b3c18f9c6ee9360bf78ae701489dfa2e896240eedb264a932da985006c0b760b9d4f0e973e7246808f82a466b8703d22859a1a4c71f8cd7583fedfb09a7c74edbd6bf4475b2a1b268fe05e66e3089eae1b0115044aad33e8577870232e2c81a20cfaba2d5b6268c1c774bc1638db29de7a0c980db8788fe95fc024055308c9aee52d3ee3e1b110aaf797bbb2ff99b0504ecd73dc637cf3d6024c9420f9658472656cde710d34d838e13b3ad945f9b1ee08f509efcba1ca50c9f9acc224643c10f9cada2c7c76b12b1ff17e33a39c1477c845752845de6e183b4a254ac439648dd25ff06b258fa1649fe109e8b0e08c438c2591b0feb2a23eb12478624289543bbc0c04ef8aaeab289be98925b8bce3e6ed0e04de96839a13040afbe32b7b2bd7015128bf2833f4e7b8c056a656def41965ef35338afc213a8008f914f2a35e38fdbe920cfa75414e034f44094d729bc03aa032b897bd437b7441744375e5a873612e04489f66b7328d1a0251ed493852bb202e5aed6d54e926f11532c4c48a05e60d1832fc1fba0776ddc9f6e0f80d37c7d4d27f1e7fd9c080911ec097979c8befee23d7a116f10b8bafa25e11597c2c9f0cfac8a8f07eb602c58712644e0bd3acd3826b2dda500c03e87a54b9ee3d23ffbe6c077621509464683fa0540afe0e37581c4e66288ed85b44dff58ab3868f01842c694e1d245c3f350d1dcfe8fb989bf56f5741f6e1c658e4588b38da74ce96d42b20c06e1f65014e3f4e1fc1471da715266dd27ee1372cc3c88ff10b32addfb1b90177d85f4f060a69671925e56136da21cebcfeb1edf98b2bca55d8c115cb44bfb082d651d5b1aa69eff173e5a41d7d8ef29e257cb705c2ed46d59edf79b69cba6aeddcbd139a07126daa59d951181af0aaddf2b6e023d84f6e8901332d1dfcad7fe1da4777603e2fdbb1996bf31e4776d25029a9e1a38e439acf3f50017819be716c1cbf695e5fd262f4c68b7405dfb6b48fa49b68f4b452b5bed0e00e875eac3898ce23c2537f257bf9f81fe4e83a12c86a4bf553c5eba4c82a5fbb726245b6efef109bb35a7967bfc53cf3cefbecc2c102eb6dec3da82914170c00db656127d1eee4de7e9d53c304d46e7bad6827fba2f644ff9662e35e2c6b9b9cda18fc899d46698b9119c994a910af8e70dc8867aec277410e89d359c98f61f28d7468801dba2212fd7f96f4e948505d4b0af98e40240a8d37f22c80fb0628c326d1753059ab449ca7a7e45f84f73b2b73f6c10c32a03e1b4e140700064991b647d1d878c56f2a70e203bd0b5fe82ba6c7fd432b6ad94a36c500cfe292350a2198c06048fb0d5e605aa92fe29fef24befe94131b24dadcc74c2c79bb5febde7118196bd9b71dcb3bda77871ab81d6a2e3ae9c727e7b2ae98d16d76bc4047a00f02fa39f53ab44a4c550f101c4146fa30e44b70435ddddf33958f2caed6adab3c070c865ec25be70b491e472b4ed43b4da855b7ac82457a23f14cd16b7881e4d6bc8564fb01e6b53a22896c0ed0fe1c3d667abe47a36a2272bbda3ed1ea2ed5842a13e667c56caa4add15497963e68393435b708629f3379cb1f61371582f4967913fa654170640d7683325b09bf5d8a48616b6cec5b7dafb3e74dedfee4abd6a83db72d869f56c3a1bbd7d255eb5a530fe8375858eee510ba337c8133b3918d4b2d450fe4a6145459dbc3f7bc94901ca53e13753ac51bb37b3a61fb810b5fb44357853a8926fc6bc9938ca636364366ced3ba40f8f1fe63d5fe4e5ba81d05e054a063fbb63a93e6a462eee9edf6aa346e20532c4f2f9bb86c14c09adcd47a9aa5f5967e416a8c339d1ec063bf7ce1151148c9dbcf37ecb52574a7ab4752a5b64375ac5714e5e9c5f0931be7c08ec787644998a65a6c6684ae60362d8537e5b99d261f11ac12dad3d8304dafb5870cb7b9bed32ca9ca7d04f35aca2826c1127d09437ea59a70272716c25cbf9998c1cb882e9a8dc733a5e7aa26f50d2fb1f2d53e0ee4de06c1551f713f41de1cdb225be8eb508e94028026c9ded05099096e71d83e3f402789c64f30a811541f3480211a874bcc43f23f4a0a1a1282d1961606d8f6304accdf7e55a2efc404390670daffcdc0e4dc5469046e1f8a74364ac2ad214c81a3d68b689996f952c535b4b5e89c5c2f59bb9977fdb72a0b089f644784fc606cebbb7228b5e3a648d092f385829dbd93d80f241c98ecc0e07dd270a3a0950c4ac20557e419e2f1200f01ef1242d01a12805c7111a4d9144ecf0e0e171d7b1352e3d1e69169ee1af585eb388a4da67df597f98fbca08c7bc45a828a002a24f07e00511aa9acebe4558fe98deec4b59f264c93e5163dd9f0c360d34d7f16672bd16f4ae2532fbde15fbe4a6777c7384b7ce1a8459a37d7ab97359a132ad10045759f9726755accce5c2d905d602d8d4b87f30d58299e61c360c1e4f561a20f2c8eb4a414214e860184b7f35a5206b6edbb58694f2eb397e220e4b0470cc99947a6aef3bd605cdde3ab1cdc9dd007d9101b65b7ef696a5a0db797753fbd31060f09e89b065bc4c580fe556b8b535ac0c6bc65c8e42c85d374003699719db7a13287d1c4e33c37b8200373f251fb9e5a84de59bf68f5d2ec5b8f1dfb1a943d1b5467562cea7ac132f68e2e785b049b38e25620933aab00d50baa0b6a3b8075094f856ba52c46ac34da6e0b389067b111ed908a90e4f3ad81d883e62b808a5a6111e2ea946a4eccc518dc301f6950363e067108d65259352635e25e77fed93a01042603748e2b7c6c4d0e6f51d252b33e54c5ead9b93cb1c1d89fc4fabd35ac2803d830517c0832b84f7ccca4dd8a6634c3238cdfcccf4c90f2bfa556135deefbe64aed4e306939b82f9ebc234510a26495570a85448edd966e03549eca200d019c83fd1f2d269b834242a98cbd6734b983c09c3bb5f1161a4a3239db21878ba8cb99918f3af7a6b23ec7c7d318dcad426e45fec3b5596728f88af68a938480be145533fc7327e3e168cd4b9d38e929b19cbcd3b65562b20ed609a81c7113d5f8d308d9d6a64c6031d030e9c6d0223fdb8eeb71ffe322aae0af7a48754db4c26e7cf04f23011c90c99a5e3fdbf940db3a5d80e85d050f7ef654861f6e37a1c81d808e97fe0fb6c750625738a1933c1c6ea9a6c1e51a74f3693c2e5754c43d0d64c8cfb5140e048775a0f09d8c77a5aab71e1a787ef8ccc09939685266ea8d8887bef50125820078682b2728487b9cb47d82d83f64eb6532a940cc225aabbd6330e488e2892d05da5ec2940f34431b6cc954d55fa6100bb4013b8687d88e03b1e9fbd580a84a78b610aa5abfe2e473d6c9005105a8fbbad8ccebfd33feec67fea2c1b702811b73cd3c59139a995932ce509db52ba2ac97de78e4e6b8da083b4d3133af7124c83ba223359de5d3c0c953533d1bee1ed78f7a3889aa4ef3fa43a7cd688c94388dac700a5ed0d9bf72b7ac6dd0d5597e787aec85255eecc16bf2e193fd29a7763ae21db98b717ec0e2055c5c93aea373be9ef99910b78a301e1d1f0208fd092b01cc67fff9f37cec5159b28110ab73873de270f2e1ae2e224a17427ea27bb9ba9276b02b65dc4a8d51f08e64b083d595771749d5b5c95beac626dfd0039c9b188f2cc39416d719a41542ee2eda2b3e4bb2263fc98130dad105a522a427ee774e43c6da1301d3ca6197240e2ea40d01af1d0b171879115194dc54cc090712bdfbb7c20184edb3b9ac87a4425514db81974ade475181f811e41fb7a2f5608c0cd00f049e49b76d97a011f911b9f0166a2ff16be8c9b61196e50d68b1bf123ce41236499bc6989ab00a6d3dd11620b72b770708271501889aaf88cf3ca300f2a21bddbe30e687deeeee40dac6489a8224c327a17491b7717dd020ae94428eed93d8cc41af95a2a99b03d6c8cad2e80cc8394749d0dc55fd78c9ef50d61fa73fa34c812c1f43ab2b6b32191a785a37715056bcae4d5a40d09e8c42763e235756db0c19cab567958a9e1a6e6b462af42e986a953f06b198c90105142de219f332d2c293c853fa21ae1c8f51334db100cae9173ff1214c229b508e57398533d10cbbab60444ff88b323917cc0f06007210c4d67ae689db36ea3f7813c7cb839162e7183d47c5e34454816cb4801e4ee127cc72a56d24d1caea86894b763483f6bb20f162d48f3fc1e64efcc1b74c754cc4688a4d112fe581a6dd79bb091f8e4d9e6a2d07dcc61755a8116c6f682672862acc131ab56891d36160746142a36467756a5b28b0637720853711adc12be837e084d400f942963fd1f79bd8b122aa2073e91cadd437ef0b9b5c7563fb939e6f2b07e9cc5c3f769210ea82838d4f677aa7a2a6d244e917d510f4d8c521ecfcc2c30341f5ddf1f9398e84b486ccd98942d3d543eb870f052b12ebac74084492fe56ca20c309e0a9a95ce32a931a135e4cb7e5d06c2fded8da82df18708f789266c3689dc8bd9855cf9b36d88069a11b39e29e3e4f9802310c3b6477daa325518729b225a710ee9297ec8a21b92bc759d03ea215bb097cb58dde74d68aa6edca9537dbf6251d30358220065d7181df92e8e4d4ec078b3e8c31a1ab796f220f1a6050e3a598a9a4da4697bd5ab5e26ba8dfeea4f20a0b62e5398a0356c0fcb405ce6f949995e53c6089fcc7d84110785fa3556968b5b27870d508f29801890870f1ee7d8dfcb7b76b9e57f00c2f5528de49152125037d68e2abeb6a1dd62ad0e5a689f0124d57f4e15f9f7c1e6b63fd333a1c5c11396ecd757a0df2f9a16f5012c647ac0a4d26366e1144ceab0455b8cce4c626aa73047b65c04836f1fcc9384ae22ba32fff0e800055613f43459cd0fe0bea668285bb2c747b84d101f558a0029bc9ed8ae9d5fa4b2f8a83ec9bec1c819cad37be25bed666f4ebb1d720657a557c25d1fcab1f8f451c61ff9d5766a7f115ba77996e1e51869ba36055827d75816f807fb8e62279ab336efec4318fa44f837aebdfab2f4920f58cd213395eeb68bbf00fc77040a17b5de56ac1a8e12b7f03750b7279db7d0596ebafda040b631095ea0283defbf178964eaf682afd9fc8e1fbd4c9310c4d0a30fd072a98c72923401a8c1c580eb9aa4442b6830ec1ab573eb9b96cac868188aed635b5bad7b270bf31c416c08d5edb9bab904e61dc58bb46d718794ccd21de621854e23b31c168158cd7c92962621a124327f97d9c0b6afec682225fe6b9ea404bfd4bb589d9a214c840e09f839d3ce432802a79041f3b97e7662dca1f3b942bf93e3f1d6a1e57c0bc20da3aba3956aa178e785b7773eb5990b0730a2a164451d29540293283e63c69cf8c87daaf44fcce31f12b7f81981e3f47618224a567987181868035365150c2d39e3db8612626c61495ca7a694955ed5b7a187554ed1b92be7bbe5c3dbf727f8a09464912ddecba45d89a3c08639ecdebd225853aceb7c77e3d45f483f86e49e69f11b3939262200e24fee34f35f3f3e694b4bdf780a50c0520e09203ec92ecdd833f3c8030cb994a559e7b036e5eaaf77e0e5dc98328b6e6293642452c70704fac935cb8e5903dad3b88267ba14474fd609bffb2d54aa2d0930c53336f2c3759673d65ada54892b41b16e645c83c02eda10ff6837ea9b0184e5987170f62866cd26d7b35a7c677ce2faa4255be7898ecbaeac2460651d8937b257cac89901ba7623edfc2e6426e12213961dec4bda932b845595afaa96c21f13f7d5c011dae535ee7b85da18ded3a94a44f43fdeca862bef1f60d6b75631cbcbf2c23bce280cb6146e6acdb53be099be59126f11b53e281e6b3196ed9ad6b9856a80aa3536555dcb482afdc73870f40073a420e3df4e7ca0021b79d7df63a7a7316e8c628d208912e2386ae6101e3fff014bb225868d0f810906e94b7567d0835c5ced7a2ef2d19c800d0a09b81304801b66fe252dba17b39dfe675c7d43b1c2c45acab5abb0d60758badc72ed0ae00786b326749897e5a9de1266524bd5945ee29a3bda1a5a723201f6f784b79f200b165f4ac760131ae5ebfc00cd928e945785a05ab724a4c790ed553d0e90c4d952e9ba711adade925ede65019f0426294601b42b7f127af4799ab812c7efe61fe733304db5ea0bb80a46993bcf01e10dbd93cb7477d749bca327e8db1bd16dff2af826db136eb6415bbdd132a6b32ce7a851618654e761a12bd877ec572a9d21737e0e9214000754d801f251d95c3c104163b083fa9fe83813069369461016e8ccee17f19a0dff127eb8b5f51f6de12bec10d9ba89deaa34f92ee8b8c3cb49e60c6c5526edd1333b3788e5d0825a6c82385a3a49557cbd9093b0c34e1a8d0cd18e4158758b9bec7985a9ccf879209d562359a2ba2ff17da0e6dcec90a5318402d1dcd4ff49738e390f5f64997673f0cde62cfd68b2b8b82113b35e34213b8068b218a83c17804fae6afcf5f0571893cad0b21e5b3de8d059abe36260822302c14b698c0237f1aefff0fa7b8221c1cdb1a1ea218a01ad28a859e61be9f5c5ecd1bdfdb75e40acb6fce2a01ce438338c324cbec017cff7e4581e5d9688e99dc1aeadae21dae60bce25d62c9e8428acb54fca87c43967c90ea9128aa89220d25d33cecb29892e2c49c4b74ffc6fb0a24d88ba53ab8df904c648ffda262e7bd2ea2c3f40fd884d8a3e449d8870bd011926ceac8a4e36e1bf099a4c14291330974f7a3df4d01dcc8daac9c6e393b262a01f0e7c73bb5fc3bf524d2af5f6e9b37954ff5dbf4bed66029d19e7e8293e6badf3d87662074694395d76a478ec77c2109a34567c2bb13ed6d133d053f78fd72e5db7eaa0a9b3534680a96027eaf73e38da71528d1271662ec097b539a8fdcc58aabb9dd048808d343c1d05cc6cfe5a24bd65898f1b7c8f43dafecfc15e4f877437fd56094262a47bcd96929debb7862dbb4f77f7dc6f5426b4a3b16108e4b3bce82a54d3a260b4be89f033a374298e6a3b3503f301ccd0bf3f3a5c36277d15b2b3eafe975e2bdec4a581755b89df3a93e10b2e9cd6e6478bf127c17f7c40c7c0c9bafe8b2dc75de0488707c0fb7fde1d68ee22fa3d231f44bcaa54065538161cfbc147fcd8b0d57af06ae83965a6d93b489981a283393957d791b09fc7c39d155ab7e4416508582822fc5f6c364beb665ca03954f664716f0176aa4c910417c4cc946e6ff8d7e82a9d97b50626caf6c37dc41c74d95f35bb97534ce7ffb2afcb2cef6a9e04cbdfee519ed80075fc442f10be840df849f90e51fb0384da489dfb688ccbf713aae45e5310ac486d9c287041580f35abe37cb2df2264b066978c633f03c65f69edffce87b17c856c337b0a19007fd18ba0a48ab2c743037f6138f6a406bd734a18061a593292426d9efca65976b42f8f24e31893a8c35f970fc91c197b515ab34ea187777ae1e1860800592aa13da0c3a99f7f634f377a589d8ee9f542774a92f159152dfe5c36330c040ffe55746c1b8693add9344e4be97d0e8b5d005fe3c5220f10e91614c4fa349b53fb00380f4ce9e40176cab84add01153445546a8137acc99ee0b8ad3c1b5fca7a09ad8d0de61fb0033116b1f25844c0d35231354c4da0136877f1b5ee5dd7b2efee60b7ec73fa8baf9ee5825510a379016324ca124d5495b6ba4a53093a7ad039b35c542d5f3b31d43f55ef01fb9098a4cd9029196f350ba37b70b7684283d6c6e31a19a83c48a03d5fef85147c7028b07effef777a46adfe588043681c21c2b9aad30dc869e82b75132b971dc7ce1c1d50839c11d870d8386519d9b0777fb85fa8a7823295d54cf767ac7fb98726cc8de7162000583526ac5b4b48b2545d25902e9710c6a389a932ed95a9f27eaec7f1c1b5bd4236c78d7d8317e8b7ea75c3f5599873d6b2057f8358742dd117baefd2242bc1984aa618abe0a01f7b74d98bfd1891bc2f3746c2559885f262969838749cb4fed91361451e8889b87c5994a98fddc023514d7248f889a264a85fa40a0465492fec73e3928ba67792ad03e771006b504bb35caa99e482c2335720c3f2491d438b2a3f6a0eb7b172127b19ced5cc6495ecd1d798cea3d5571ffe6f7dd751839a8140b62ba96a07de9953b18b91486be41d4b03a41ffd7a1444b608ffab925c97d9c8e6b1e1585d17d26cebdaeb5615050917d61a0b75ce15ff337a17c24784a04bd303706a308375d36e7f0e5388fe2265a5b786625d60b9e09d4f2cc54eecac1489d6ecfbda0c25c37b5c837b7f0a1ce22a54db209a5c36e25471a57c24eaeeaa3fa367da4caa42266ddfec51da7754958db1588ddb9ec50023cf50e39011feac6be9b3468fc54abd0f20271f296360c8bb67d516ab6515a6e46bde665cb48e010327dc08c77b6c6ac57da622811347fe9f4ba59f27955b588f3e25973e2d41dea897c0e399f5b98fe82f1840412607f8a6c8a50e9d93d205033eae4b5e3f6aa36c5f2b1f7b33e168fe4e80512c899dc872c91ca3c89ba6b81f57b876886fabf98b4ba5e0717818e32e1b4da2655f1dce8b6c5bf2c70e9fdc513c2487918aa4d83d879703b77041f5fa11d3878fb6bb65c9d5d0bb4f63f4f32e3ebb0651816761cff1e656c89fb3b13acc81bbf28c418c50a3bef80036f6f14076b4c277e3e0ff0cb805e782ee22c0c887bc26c11dda29003fd8e7db18d7e125f112d3085de25729361a3d328a78d4cdd3330efcd2569e566a471e8fd9432992aba68770924755134a11da9c333cdf2d006ad052cf4759bfa3604fdf07c559abb919795c96bf299d810db8a0de8b05f95764425a6f343070ce9162c031a449b526057f11f3442a7c82f8db28814cdac681243ed322143946f1d5de4c02f7013fe75c8fb045842e7b9130cd272f410737bc2bdabde705b2fe9faf0eaee0be11a97f6107d6c4c7e6c43e2d073062e3ae179160bf260266281476dcb43b163ae68354ed8f04f8ab950628c78eb57685c22b14a4739201ea6f9bb274eaa761a86a1b487cdf2f7876be737f046d6af1860140b7dcf9655c067a839a5be99aa102af6241820bb56a43ec06b20a02b8543804e5ab8c880421c59e9e432c3e56f16f011417307ab852f9179db5391dd788fcd77b01199a2aab526deddc7e9e2e5a4425943663ae9b74bf56282eb4509f5b2a9edb8106bc103e3eab8efcc1f1fba0e1d78b4c7760e34bab2efc20f90b751f74dba5101b0b00d37b5d6eefd3aaa086f93400d84fee126c843f97ba1682da14644dbdc999956c4540caacf3d73eeccbb49d9457015266177d5d1939e67cc85fbeed703979ec0ddb86975c08de5186507f93bac94857452afcd26e3a44a83b374fea7e78afa474678b6d5cf561012ea2af1039cd31b2bd3ba3fb3a9f174cefe3ffde9f6222dc64cafd61ceadc59065ec9938cf1e828688f9777c2f6166c481b8bc569e49478d970611d7c3701877ef3d9d35f52c0021725a47482afa35aca6b6a06f777b8643905d6d2fe24714808efadbcf4a409810c470a68261d268e1c8670c48b33913c1b1812b454a2feaa6ee5b4ebbd51c4823377da3ad92c44fa364c03d6c206b08ea653ec726c5e25a28258181288273367c9292f0380cb1fb311bdd5699e8ae2ad79c85b32de0cb08873f4a57728fd4b96aa63d5944c07e17305dfef7c9e7f1a323ed40e0b26fe0799b7ef65727b6a3ff6ae25e9ef1fe10a1abc65b862278855774d960b8aae94f874844fa9f3b232267516378ccabcf73228b1f585433859921b65a41731ab60979ed71252f9f4393b8405215e10ca76cf454227589a71db8d816bf1e8f3c2ec90fe0e86951c4a204a99116da45fa5f311ba4fab7ab86bf617504418aeba8a85516111417f04dcdb23acdd78228a052231f56c33ff405d004df4b47c50e2cf8560f7069209ef83ecfbbac67078186d8a1609a1ff2ca9110ce61c59f4eebbb2f1cbd4a156b62fa9028a45a04381c36cac202bb7333fbf2f8f1f3aa7e9730a916ab170f68531aa6f33add380a18ffbb5368d361f560d23d01a6b06052bd688c0c5c828e4ecac583614176b9e579a61fd3e2a285e9a83c663203efbebd7876219d053ba0ddf52c96557361b3b9b604cada320a30ed92272eafcd4d91d1ed3b75008fecd61de639c8ec43174a1154f476801056d71571a4179c4ae21e9b8681e235a0667337b5109d8a5450c31c376915be6dff08dc0ef241188db9c7d64301d4f248475e2ee6e58be043ffb7af7369b612d89bbe2f1135dc50ff4d550b77fb35f13b84614339e682150215e6e18548ef4aa85ffa57d35053243b79a921338cf469b20107c97b629a3453cd894e214c2f095911296049c8742bad67fb1a2f0d6c719796a331840225638190c5f48a848275625f059c959234830715aef8c3d21b2ebe1d0a2f684ecbb0eb024813e8662c0a28db5711fab6c60d316c805df597cebfe2e23fa56e9b41392454d5f07b6056e1aa324b7976dca2baaf8a7dacff5a94aabc12639e4eebdf8e82d398acfe45e6ebfc8236e0c33f9d389119a4458afdb41dc6102c8bc48dc50576f9b4badff4a5e019c3de5ee16886256ac88df4ec73b59d541c39f29eafa8a9deaae425594dcdb3eac1ea678265b6787a81df179f967791bb7d802e208962d913faf101694dbf8e8a21b36a2de2aef2a43485d49faee054d3a97c5dda140b5c81d5e15ed34417db280a76601fd00cae0f7bbaa2a01d5c7f2eeb626f82d1fc37412813bc694bdf974f7df35f1a2bc2188426f17a9f215a8934bd337e5d96c9bc02d62d5387332aab573ff3ea594936099a71dbdcb311a3a9579eed53bc3f5f3530b4c8953ce3628f41bebba0a308c67666ec5c563dc4516b3abea3196729b12d0e2114e496f94ed2ce7a71099910315bbe52bb03c3a6b0417f90fe90a09d43b62468777117ccaa639efdff5733f261b98e055a4607355f65b428bad805d2a71c51e06d34cf38c55f94e601f819d7b2602560fd8e2353ed20545ec7e9e94b97f4d45ecd301903f436a2f9d81535f58541fb46703e2cf580d3849a7725a94b55ed5d519d001f37ec31f222b210e276af91c8431e5b4664716b5c4950c6912e2ddaaf3734c091899c6bd8a4573a0822fb8977183d77260a48f70e571270fe31aa4d1456359ed0c113c64a4484efe827be77fa53a744ac97b5a3e355b6d189ccb7d37e057ff67991e4534a3386a353bf748b4a97449587acd70686f5860f49576fbb3a83ebb55062937598d3a71828f9d0fcdb7149eef0b0f903530cff23bd33160ed870f0b767b526e3faa18a0c7de3e36d16a42468729aab3aa5d0db0215d26e07cdf420a017bebefe2d1c0f6063bfc25d048e887bcb1795f1108c2748e31122feccf551ea4dafadc5f79c5f8c117d0ac997e360f1e294dba0c0882b7ecf5c75e66d248b3b739bbb42e15ddfd608f05440e751ef3b06a6c7847cf4661e43faa0d360b2108c05c1c67b64c611204a3bba6c19cd8c9612d0e9604b8e835896b35e56a836a0b8b0640371e86d0675f2265b8e9e960cdd3e9dfe11c9faaccbda476684029ae477ddffd6d89844c55853b4bbbd3fff30f40e8805733bbb018cdff8f122010ffdfdfbb5ddc262e1be8bf0c09d759f896c056c2064a2a7381817c3b34c558ea739c411a212ebe122704dcf40eef12098f7f5471795e236d8a8b180d3087e51fa2063d03390ca5f67f1488c81ec93605eac2bd145756942e9b103ea5e092dd362a96358c4d0f4679d44ba885d18370e0f54a72fa0eaa3a6d67086272b6b4677b2beddd1e3782a3e9fd74c297115d19e4c4a60a1585f3f79f09e15904b7f94af6cc24994f87f47f7e7353e342a0c8953daec8b1f99428e1757a67665afead76cab429097dfe9c1673d5939f5490d6cee9cdaaecb287a50a991c4083d337ab1b0391285cab138c8dfc664c12cdc9e901c7820302329f07db8932effc6e24f730b5950a2b0e71ae8ba78a0dfbcb86be60c3f009f4ec91d7ee6e65718f091cb27d18f301fb7b779f9c704c825db0d8c03bb47c4a3e430504d76c41648fc9875582e56726b496b74b4cd5dba0440322b3b05e538bc997182c3c78b5bedffa6342dbd6ab219fcc7763242f096b8b789ba417a0e4c0c7aadab9309c9719b631c29ff6a503ecbb75339df5e4cb3ecd0acf37a87162126aa2d1ccbb5d1e886fa94a89373cb298833919c81662bbb6dff91e3911b843eea25d75f4e63c6600f87ab38de01a833267998bae834e991a783d3c85fc6cc32e6620b1bad852ef5386744d7d5f2d41a89df4a1c80536c65fdecfaf3fb9b5624e196569fec5b31eb8ae127788d4523ec9129aa4bed0a7c7b9cf0e555986e762ac25a3ee1dc48abbde0d5929aeeeecd051898594bb3cdbc8baf252db66374f4ae1de268bf1c5dc729e0e0f6b7a77abcf074235a38f881116047fc846c72dcf66232fabfc954d7f522b8c33db14289d19e7b99db8a2cd3fa486fa856e1ae00b44bbbb41f2069d1651df52502c9fa1470f5e51a1edb68f0787532ed87e076aec3888733a90896fdec592c1b4a1e3a229159aee99127b92a77afcb4bc7653dea9d994b927f1e68597ec840d859653d59315e4ec7227edde595b84c48ea947558582bb9dd0a0768f3365d4eaf9f855cb35fd0ceb89e68c2287acdf15fc3f68f181d25ad5de1df939c0b5879b22c7e509163cea4a0d365ed25213050c72b47a542d2c1a665a5f4272a1c425a7f99b8037ed49e273d7b9bbbb46da8d7c5557dc3e9638be34914db41f625ddebca21d65ca051c892ad63ff9ec4f6fe6bb81cc28530e600deadc4489e441b14282368921d0d2b34c8fe551d61fd2e50ecfbd8b30383954c4dfd594eeac2dd58d50973272a8698f3196a6a7c00f5272ebe4105e3f9338869a07e603ef16003f7d2268fe6fcdeb349f0941b2e6651aef247921e7b29479af56feda482dfdbd4db93465e60e03b7ac3c6a31131a254a5b99c21418e110c648f3bc0a916eae02becd1a0c78ec87e305dd3d3b2282bfee585c4fb6b94e5fc012d399dafef49bf636b24ab7556e2131ce7b9f58681e4027ad47f009e5357ade8f058cfc23aa88fabfe2600fb3301d059e492208251932d1c21b56cc8d5c184e869be2828a1983a843089ffadbc4a1848ec859aacbe92feb273002d1f33abbe8830be2fe2f3b34eb13316701acbfe827baf898b8804744ac0db46c9e3172eb8354a6f93a020e4db36399b57417183c5cc394ba7ea0eb864acb7e8223b0921d778d1b83c568021d42cb03db81a1d5d0eb4f5e04aa39249f8e5a70dce3b132f925050e3e6dbb349b17c7a1f9c4e40ed9eb887a776f8e36169dda615282c854fcba57b8f904c5776c51388c06da0d3867e299de1f449591a3d10ba6cb235b1eb50362a11e40492fb0afe2cb51e260c1fcae35cc342279d0dc23d5196fbe27de0b8dc9600a3e7afa9d83ecf1d6f2b005de81105e1c1e188df34fc0c4940bbc6257b374736f66822e3e836340d8e5e78885d76324a49e85026be97c091b7dfca035570d202b8dfd20c7dcb66286188486d0fe6cd100e4877fef905b660149a0aa624d846b43f07b4269eb3bb6b63318d0be29ecf566a919a9b9c1d2c56a58b3f4076d8c1dff860109949ea922ea3cc8fbdf69a7cd4e95e88c270efc5e69a914ee3d551bd5494588aafdfb9c8226d3cee2c742e71bb5dcd883752e1726367df9e5b99fee2cd66a7da7f723159c64a9f86f24aefa17ebf580e4c0f704cdb57e6742e23b03f0afb14025dae6f7a8940627be4e86af69c777a985be2ccb536de7bb06c31a1c5e3034a51890498b6f7b51d286714ddd354a4ad210cf1c1529488b24aa9c294380862e76408e4efdeae97480e09e30dd3a061eaf245b31b0dad19d263e07d6418d4554eeefbef7dc831137514d6ff70bfde0b7a647a1dc0f56c5f518e5e3fb255eab4e3fa92cbd9ed8f6747619044a4803fcfe50aa5fd8c8b8138ea798962ac3f2901c0d8875a31a164591b50987587b23d9e2feb9034614b1c405514042a432063779f27b51b40ce0034ce65981780bdf0b203283490d526e52eaeb1701574db36023f852b5da94c9f1a6780ba4bd67cf09a221e474c9842163aa1c66535533296eda22945c0bb75d8570ed83dbec7e22ecc0388f8eb0d00d0229df823e00c86f692be329c431ddb7d68d597bc869472734e294dd4e230029ba0b052ed62a323c37b4a4dcdf9051acf321e73af8e73beae4138871a0ff024c3408b1352afc5cd55d57439d1426c480603f542b76bad6e183111ba9e4626af33aa8da6cd239760814f78f9f4124cb34c7e672b3909519abd2c287e06344eb8f4535ccf192f2732d8ab2cd44e2cb5c5a17b4a766eb770bd653acbb849333e266edbea7c4d235893b9f4c36d692bc557e98c16b83383933c2ecf9daf51b91cb02ee79deaddea1b5ed7357760f825bf520b1f6cdc133ee208b36c4ba39c8ccc9339307ba74321834f78dfc2f799911613e642eef71b8eae20450f1667ec98d22a0b68fd56542d40b487dbd749366f32167c75f86ea0cac8ec8429a9d6cf82dc1e4aef99f297f76816135554ed00edca068f3385b47bd5ebd504d2e504afe9bb345d2faddea8d529fba8cf63b5ed823af85316bcc779f040d26a4a528ed8f8baaee6e2324cdee74b7349480aac211e2023f673d4b9dda789f1b7cf5fd7c24d67dc35a8d62b38b61da9fb8e580446219b1ab02d8deb90bb1979b6f9f6006d211a6c07c515656e981604fe0ee9526cd44b961e9239eaee1a3a00391a612dd39afc2ebf17313abf49664bef6b738b2f17a79ee2b04388aca2e6511bc6c8bceae6215d4af888199a647464498bfa71152c435df7f286f278c2d195ff8fa7424ff3704a3c6ecdc02f81227d9cf2798faaa509759c2b4971be2b7f0effeff2d778c7398bca4123318e08070ea18d2b328a6ee294405801cf57a22a4cc346048509b4e02f0fd09ea00576b4b3f175516a87188dbfee8bbf9c9eef1f1afac8a0c9d04b01138381e39d1969d28edb666d0ef056f83ab446b4116896718c301e7f3f0b23dbd0b8020aad014d53a5ca63966cc24ed58065f2d9aeaffb0606a1d982c989586a03ee6b49f10ed64f85b5c79501a5bf277ce3989bd6a720d90213a80197af38f787129c4c952ba599c471c047d508fa55fbeb112f89b486b7768b5ead2cb47c4a7120d06b23f1401a73aaa3ecbdae65574147579ac83ce1b65bf8280a192121db3ee5f7235ed2d255b55a1e190440c907fab12d0ce95a43aafb3513484f64664c650144900b54e2240119e6c143320152ca3a31f6a735f502efcb8a3af6441952eb30b4c195b1f399fa5aeff1430df0f8a98d1aa1cf9f088c0a5f80207826fb8deff77b7568405260a7cbb374144c62b8f6e3b19959db48fc64f2509a7ed1310ec60f47fe37c0713d2b4d9cebf61402192a67a221c2039c4a578ce7a5fd3cf0f11a1b75fc04ef26e8fbbb92da69e26e1cf484b360a87210445da71e1304edc632c1c82464128bc119deba3cf853f1dc9e75c980d4d6eb7b795d64db6d19a1d40bf3f29d28c125d5b9944b556da9197315df26e06e6a5082805f464c72d1a7a4a709be28f1ef897a7e72e4e729b968c351ab919ab6b20aa660a6ac4e5e3231fb78a81b0e847fb6d862f50e545b07c26cbe929e7ca85317a389dbd5ffcc5a89d987a3792c5a91c36a6dc6fb0d276ebf623fc3e5c19731cfc85bc6d138759a508f952b6592abd3193419c6bd5023d1d7ad265bcd55e86f226cde8afa0015b647f0c49fb48404d2bc230e33b1559cbc9f2619e08dae3a3c1c1f1a63cb44e3991cdb038e8d88bfbabfa72670823f4d8e0e8e402959de6c412a792fe2b4a47961a0b791eb44b53b9eedb21a54c19899014d57d51d67b9877b889bbffe1009bc7e465b79eebec8d4ffd1f465b0cbf341434c30c30cd66575ded1464390b2dea594c7f527c01210ed9360ff20c188f87f955f5fba61e8f95acc281ae41a9c08a897807b7246fa6fa46266e5b7f61b3fcc7d2d19ca1bcc627aedefb40302f57b9ca7d80e12365aa15daa8df6b406066207b0fa6a56f1e6081408b6f6625aef80f4350534fab0b93c2ac64f5631e866c060518082845098cba54149bdcbe1166fc4e86a0a11453a135298f68baabc39755cb09e1c6bce8771c6f767d56a36c0098fbea76df5554ccba8f033556c01c8719244e6a0a4eb7ae542b5d7cc3fc549db38ae059908f41788b73a9909ff64c14c0dea4a76fdd767e5fb671db5cf550da21f592415b83e6ea3c3c2bf9a82d7c2124b9fe27382d3964af52f95e544153c14a64fa7e7116b99f6ba5fcd1de0903b94bea27170e65b8c015d3c333c09447d0dbb6ad2dd0d479dde93fb14c41703fb18b9942ea47937f5777246a760928afb5f7ff841d4e6b642f62eca295290d794617631131f625a35a65c2dcf3b3394d54a1040c5e7f2bf0a31065e87e00d0d55c9ed81156ed7009054a3f42fdce89e3df3dc1c4d5b28d20f3efb69b231a6c5e5c81fe6657ac2c4305f6c12569c0ddfe24f2e3398fb1a965ee79bd703d1fd812d94dcc93c258f5f33a0280f51b647dd34d4f4fe1a572be0cdce4ae9b260acf0e79abb0057d07ccca88a74bd1b1abb829b63b99cefca9ae40a0999107c2c250beca9c0a6f2331950abd6404a923035e5aa0448e3529f37f9ad578c3dcc3d11e22fdfbaff1098097a2d2081fab81c0445bdd8daabc3a5ddb413767715714794024ac676619271dffd60c7e27031dcec4dbb964a29f4b47909dfe8320ee46bc82fc32686ea673405d79af003ae8ba8f3a71c213dca102d11294165e28c85f89f3a43672f627891024b1554288fbaabc88d330f5f2d0709df45b46773484613f665e5a8fa46689cc2e542959d7f6da89922914ea3317f54973dcb566c34e5d45f14450e20f9f98d237cf7c4002ab4108c365864c229e0fc6eb9d6df6aa48ff4170f4b7ef458c74545d9e891e754e3b0d87b2802bf5004fac5f4ab4a9903dd1c8033d7d914642f272a7555579b31bb153cfee201f174fc1d7f5bd6b3471aaadff8be7a8be86d86c087a39ff02d13f26c6903a724ca6de92b478a7cf8d1c141dd4318ad5dd6fe46ea12567f8abf818040b44930a40f6eec435d5b83773b5ad97d5e06cba2cddc32002578de837e6c4bf7d67800f1f0c1b26ed9e67bf61334fe5aec67d7ee3a0b7451ea33441a86dffb2b8fbcf734e239cf67d8a3df547e3bb1586d755c51efdcdd1980398c16df350c2b4056380182b5ce285f3b8f372e338cb3f4a4da8472e9d62b7520d6d78f18c2a4d0d0afa0845d83a2356bd8584a873d1bf1aa00da5ddcd2435d1fdb5eb75a00fa7a27176b048d39a72d693389279b83ac686a20ffead75f087a36edf729fb0a695d41eb23f3fd85db9ba7b7de7f1787df5910566b9b141a6f95019d7ef27891595b87bf9f3e98c9575ebca3c4781224ce3822b03b2f370176f46140a85d65a615fe8f3f69d38d46637779e7cf3eb4421d3658c570def9e02d5530bf6c808ca0670002178a4d2c0f8fa111bfd33c808bade892aedbb155eeff22c087948314d15042207fcc493575fb58e3dec8e03f6f8dd01174df14aa2f2d2eaca215b54dbe74573611c7c09222cea693b13695c0aeb54230661cc67fba50488b202b38dead45c9cfe2370f7908e6a40731f4de71fe90b0bf4c29db99fdbc06635c9ff89be6f0a492d6470d22e2ed254ede8ab8aa30fbb19d9acb57f46d95ac9e91b7309073558ad381b9c47a228f10d6cd881829b865f6f6e7a6770d2237b581e81f263cebc99fdf4fd0bb380dd15740ccfefdefd53667402effc32cc2557a102504901b8cbb0f05bb6e9a9f07114b87631800357b2d5535db1a7e4ac3a78925f6ebbdf8edd114639e938701c36fdaa9ef88226c025037db5af1b95f8e8ab00e0dcef112403813ee794b5837456ae4014eaa5d525c93123b45d61ca28556623e953483b7d2de01d1bdb130fc282d015e459b06fde8da9bc89fe9afc66373718037361175340b1aec1879d78097559e7071814a790677585126dec1817def05ed144a5f3df851fbdebe6a1d43c826218676bd7056a9efbfc0a1471fd3107c8599b199030fe5d7d9bcabb6c6ebe9efc2e673c3665a5c1106554083001709a02d364fa85c49642249dbc6a8145b380ae540cd13a7561f4fa4549774a6d438ec2769636ddb95f7b8e9d69a8a78a25ca74d7a9bc783bc78e18e921db34fca281195336ce10acea1a5377ef3fef26f7646fa922e5068e804d82e068a7a760a4d4d85eb0bae34e031f668d1ec23031a47ae2e0b9bfcf987e890e7d7f5f18bde64981ef2e589ce75dce9f44c62fb97cd5b1d4387327515a103290563249f82ccd7a4c42837165ce95ad178511f1be08c39b5f8d036fef28498309c85d2daa3a89a889f89db050f27ba5503df3abf68d667bba6351901129b7b2cf70a2d81c66f5b36e9497756c54b5348ddda2cb1ef47dd0225e859b56d8690c4ab3294e3ca63f460dff4856dd8aa9c6e3da28cba0dd5d5009caaac75686483a0c377adef7e26374530574c8f13ec189d42efb94771a94365514e0c68cd5b8af88685c946f787667ded67bb8b4adf45e33d5a98962325a17234e1740363e95737df4cea9f7b7bed3ec86ad0e9a29aabc31519bff0cdfd79d1faf6690348c73c28a4f0bf70464a148ee8c18657e98e49e3527d94d3a9035e08111e935395f3b4318309a8dc1385ba30347f76f59f2c1def360ecb336e87e33b4722e86d3ab0cc8ca1278f1fc5f8b2e4474a7dab0c6498bf509cab0c53d55a9ed733c92473676d551b449a267fa8d38c2b9329b0fb68b1d49b3cf9a861a72a159dc1e5a701dfc694199a0e68d9ea62a191e67fe83f60da2a1f3cf8a50bdf918ee1608b2514feebf01894f0bd2d3fa6ac68f7fee6cd18b318fe32eec569a9da1bcaf017b68108f039c0ecf88ba975c93ad5b5c36ad240453cda00e4400d68e2a5dda2c113a78893750f8b1c044d8e4c6efb84bc3b1e11721ddca8b0139cc40050dec92111ef2b7c16dda294591fd5d30ad3c6227968eb84c42070a69b48cfbcf3fe085d9bfbd3a5add8a9bdc2a5e7ef35e6563de18c32657c37f90ecfd573e30abd490615f6ede5628a543b35dc7f21a37133a17ffb0409dfe6136837524f286498af8556b6cd28c8e08eb6c90fa384d5b090104fe94200e7f5d9fd1511e6c086be8cb8ea873af42e958ab0855294a52de6f9bf23d470ba73c2988358b2440e2af788449bd12ceecae7cc3c8f38015b41353ddaf11b1ae0e1efd62062348e358b1e936c6a02dedad681d7c908699ca03382344f78a50b0e9a116049d92511e07338c532a227b28d64f2d1c6a5705f48d6f343ff12ab78bc24f365ef44d3950a9f0d7f6ca73093fda965ded2619ca6187cc3f08020c09c19ef1224ff52daf801e80e6c9406ab5297d16a5504bbde0e3fc64de0b6b8882539be0237cbf469542894af572e7e8b40126b5c0e2b81eb3d40f8014e2808fee972ae0863e81268366ba52e795aac70c379ce3adb0c874a4734989c2d677913053cd1c1ca0b0b9427d4f5ac26442581a17a4f72f7cc786880f0fc833020928bd2861e4bb67b719532a2ffa31c041930ea335024e1006e4270181d091f171681e595e97ba35645b66464d6e01e897df6bb647fcd4a5eff8be754e426ddf901972d09e2379b0b20ae3d1e027a4bb6759887d69cad157d8b57e0948b13b7c1fdfe9848812d7c0bc6164b775b4b18a5677113ca4a418a875a00b32bb82d3464ec94a25b5d5badee670395e842b6175b4ef86635fe5c0133395fd78e021f274429e6e1771868b6d995ee20c791f145d20c9baf9401fa3b7d4316286e62cb76b38a1c2c6abbdb728199d991b5502ca648994554f449fe2041adf3afb632326c84c91c94233832fa05075c6f65309ab01b0e85306812d5f8552b3fa1b3aaea8f72d18982d5594e9c49c8d88f13dde809b885983685cf441b016f40a4b32d0896038e759fa3e6b5c85ee2333e852d837bd2150090e1ff374ce96d14753e02d791abf4fc87bb781087ad38accb2f60962d5ef59ddd3284626ef3112818293220c378339b9c20b43eca137198f67892bb886a0c04a223ddc4bec46c9fe9360873a9a9bf8904c49020e2ff2246a6d154f9388d77d6f83a1e51a7f71e0f56a8ee8df624faac7811f13f7626fd07f5ebd53711777e8c18908678f64a52e149def643ce3a46e6c8402d5347b096ca6ba134374f555cb870683dfe791d914fbccf2997429a70aa04e6919d6ade2ebe869c61de2fa84ef5d90f1dd2679351cbfd473ce1018a43d192141cff335527b050f4820a5368686b259b0b7945df2dd68c097057c0ee559a041f04623703687ef296133cb9e174b4a57774f3bb8629173983dc28721a47f940982b30307beb04d0ad30f075173a1bcb6a8006bacd1f850fccd0ae7e33f2f6644d6c6b52f7afaf99176972e63277af4a48750378c2c0ae58c73acb3beefc51bdeed675ef6cb2982c78009bc43e73cb36411fcf66ca89c092706d4e7d97adecde1ae8ba79afec6ab38d7024daaf88a0ab57256c2cbd5980aee32d2e394b37d2ac8b9293dfca05eea2c9eae24181e3be38753b1fc41d4a42826ab47ec8eb968f3152a205217f0a6eaa76a26a7e8208b780873b5c649980a17df6305aa3f44017f4a5c9a199164f4093cc2c4e0f15c25daf14d27871275a2816e30a4a91f788a351e13384d54b5f8dbacd217feb4ef426b35c9906b655ce082ba4136d86008c7151196c3ab3de11fa5618b35d21e6de564f11aaee19986be2a54547c0c37a7773049a3be73d811ffe3a7826d53d83bdd50b76b491b9a7424ff6197b77eb0065f2bc14e6feb2a6931c2c550b81a27fb138f22ea6591f77d95785a9688491eec16c1c6285fdc920cafa6dc4acfe65d945cd4be4a387e0f5d66838eaf4aed0c18303ec9457013b2fe22a69bc78a1addd9dca83eee6f623f6b75ff83e102cfcc04cd047801c5e16a9a040bc257003aa3d5fee40128c17e297f654320f947b68abd250a3197b89cecc041d5719cdd726d29ba3bec5e765b099fa796a26a8150f84f2958bfe90f1cd00c173652a5a70f6822f0ae8b020b4318f933b46e5f79ab849abf8c69145b3e449c4b148200da036f6287158f8e78c601d4ae4fa7c285bc24790458509f39654a44668b5ae65b65de40ee9d8c16eb376869da8c98567bdbab9233011d71d4f4023f9a69012b65eff244ad451814082d79dca282f21c3545b448e2e2ffd769d509a719b1cbdfb77eba5bbd602a71cf0392bec5bfd39bb999178c93e7fe4339f5e251341970ce069694ab6716d6086457f4d312c2a3c9ee5cf797a712948c75c576db298b09387cdc42278fe24f18b68e8a0a8882bda95c7555d527fa9bdb25bb9ef4dda7e981979a89426615445a1f4fbcd416e5e9e3b5b13c69f547949706cfc146ae403bba033e606abd527dc67d04535ab54aaae0bc40792f6f372ae78cfe807e81db741e9cdbb1224910db2f3f5c6e317a005334a336e123ba1d19a828cb734fc7339b0d8fa6adeb781b983a1dcc8891e5ccf562300b2d7c75dc58f3c1b9f48289b75310737aa750ba14e164fe098c3227671c47d41c60f4c9709c8838d2fd63de0ac7e02c5588c24decba1b8e8ff54924fe52a54827c10f726520bb5c23151a0583539cb8d9ce1f256d3916a31d0b583db082b68cd362508f5ec9b9723d49c534ab0f8943cc1f0c9eb1057178371fb757141cb3d4263ca7de90924cd2b63d6dafc11c19879866794ca8344413a3e51e7bb011a97e0dd19e24444c619ea64715fa39c91501cb850474976dadebecd78d6783a2263dd76a027858aa01e12b9a873338831c789897074194608815e2a94ae47cf4836fbae00368bfa28c91e582a9631a9bd73655be834c0b8d4fb218ceef2c007fd50e4df021d9fc1b4d2c7ab66a45edd59c8bfb8444783c58df6a650ab3cd6845d1ad0c2651daabebc78b13ada17df3cf5b65a9cfdebaba73150d641c5b7480e130c9d85529a2f9245ba5dd0e6769242f065a215c6d05ed93862ef46d95b70a5e5a0d74a3195a27b708a48a30c2aea9a5dbfd4ad22c079176c4e2b8d99d9a39e15945091be55b0a5c869dcd9fb88262c44336ac6459353539ee28977f6a9f3627765ea3d9e90b8ed6ecc6e2bf1228619d1f1ef700f027bdff84b13da9cd8d9fcce94ab1c5f4882e81a09f037667826d36bd247c10350ee1eabe0299be3fb203698b9589d7a3007e2c4d02f4e540b980cbd64bb2c822b8ac5ed2ce5d4a433b67796e27e1f19895a24d0f6d783e6ccf4ae147ccb30b2174fd98f384810e9588c41ac717574aff6ad47c241bd995c6c2ab2762f4bcd8a8ca0998fec2c1289ab386949a5deb612597e143bdbb64d618413d2c0cc6b04cb5f3d75007531a47be540fb306e2808d2d75ac3ccaaaeabad43ec7dc13b6963224bcc2354acd51ecb38d32f229c15e0e170caa7fde9141dbc4c4cbd95ef117246873fb0c37cc6cc4c8acb877f67eb3baa10765628140c1c8011af998e2b7013a2e64051790dd3609c051dedd79940d36ce0dfa85895cc83abe07ba578eb0c64cd94c3785d700bff6e4d8d5cd6301e1b9fc119a355b44364bbc54a6dd9094fdc4f4463e408590da4f47f5416ad57c086eeca40c15241ef2c27dbe0e0fa433e0fb008f98febee89ef253cfbb89c3773d511d272a1f6e98637681a6734f489ecd2b3ba819ab8cfbe67c3bb14fc17562a0b156315ff4a351f7b11f620cb41936c6f0426a6a1bc347d100d946fe3eec8d3635547d307960359fb6d79b4506a97ff058bfa085161f5542c90abb3d7436916672db16b0c4a35f5146207d3a9682d4188565073bab4aed612eaf88759004527d18bca30a5f473f85400d6840dd4c7f29d90297aed6c6c6187ab7a981cbfdae2ba87c1ffacf4bc2b94e5ce05df0285fb7bc6c4ad77af33b96dc02eb3380a55104bcb57d547dd94feda0bae3cbc2beea77eb77bc01a5aff5d070f38fcf16d95c01e15d447cd90e3528ba555979389f4ec45559424c244c26fb50ef1c8dbf3084fcfe8755ede1f5f2f14c09718a08e66d1c9112702b70ca0e13bb3f141bfdcc97375156ceb3ed3a8dd627bcc2d36f45bfa1d8cb46e6dea10d584500ad1aff5ab7d6ee2317f0cb7e92e931bebe61b3e55b999d3da7192c8563cc2210109ccc592e60e326ff5a325e183d773988f172c218efa78b04334fe22fb6773773ad3eea7242d70c04bb7b884e6d4508a377cb6f2eafc633bef8a116e421bef27ec7cab3df4c4854b470b67f9d165882f6984971c68d10f2f9005791915e3a96c75b1da88831526471eb02dc7e591513872fac8cc05fb4bc5035405e047e7fbbc64f84aff90c07a5b432422c5e5adaaaf0cb76c2259f59392459e5d290d8032bae7b2988c5d6571a615d14cedac3575d1c3054d609ea104efc7eea57d889c5b3a12b1d628af18c43991b2757b441febee3d248910f83d4afde8cc6888eeffea261a0300279a04e41072ed46984067bd3545db5275fd098902cbec923752debcd338fa0757a8c3d8483ea0f0f2a46449f112f296da1dcecce342574845aab9a5fe5a08fa0c7411b868cbaa7ef73ba35aed6dc04c07dd42a4953241ca2e393d7dc13f0503125ae824f109bd00628203d218caaecd62b8a383628f2e4cc4f551a10888f82c2fda930cc9ea005a800b8161565120bdae5f5d7a52c1b05a331238ecf5103f8354369dc2f3a6c36f297c91974794523726aaf878aabff5cf84d7625cf7fc47492570aa0eda0bb450a841a1585f6a573b74976f3eef0525daa6e87bef0c2be36ee3c0cf1031bd9d7b617793bc97a47682a6babf438539a3d9afcd757c408d25030f3d4289f8a297137543820fb71781d2016d6229c94b48247a1a8542a1d54d5b2392a9d54be9fe4709aaac3404e35b24cc920f41dfd50d5c40581d149af8ed00fe2ba4878c94612c992abafe24bb16a5559d76dcd7770280102ad084daa3c13a38093034f75bcf54b9416241a05d3a29421ed6410f0ed2f9f34bdc695ae0fcd8a8eab4b1fb4b104f48c4c53c87bb590798d7a4e2826f226d50802ef5b9c2af73000589d625d6cdd2f0eb3ae286726d72de436a050347fe60ea51410e88ca88ea7ead85b99604645ffa93543d08329e86a0b00c11808e74b4c1a4d08dc4b149f6111ca49830a2c77413ebd258c5c7437a9e95989db2552ef75714fba3b5eef1c131db391beee21c20e25beeff082f23c132be95376263c2a22e17ad127e92d90c1cb7b5e0f86ba773782ab4bad764247e66ff99da181f46d848b76967c56b88e4fa1ed03d297a02a420f8091f18a351e2b56f8378d611eea80a1b0d3c669ec060d7f3ab75913113d83d838737ef15375f063f705a26e32831eadd4c94094195a161077d73d1460bf275754b92cb3572e71922c508bbcfa18d1125834c9ba05478c271ac6d76a719e4d355a0f00c6af6bd01d73a3e943181d568ef25d064d67a4ee04814f73283e2283d254e016a1fd725548c841519e7e791d8d1c4527816deb23f26ba3f35c54bc47504d4309a7985f51f3ce22760cf3c678cd97d0f4c33792f7d57cddee6956266887d8f7887f0ca5184b4b84a72895d30a97e41325f159361925be1d820d79d04fc8897254019561ba46aa0afd0952793136cda322b45d97e6121b31608d07a0a9b179f9ce9da8805f677771d7066dc46321dafab9853f618a02e4c9dc38dcfde9b9c6d0cf576bad7bf6e7cb96b7006abe54dded5e17efc639004d48f6ceec349c4110777a2f38153afd4d55a854748e38fd6730fca0d2ec9a79ee12a033bb208d25fef131951efacf52a6d14d0d0adc3a8250e97e7242239e83437fcf45e32b2dd1b72af9e560159f6a0e7ec07e55e992593357905e09f153bb2d4a0d96929ec3c26a5ad22bf4c951fe49919105beeffcd6ef842f10eaed893670a08d33093d4d4cc686ef5c04275b4b3b4c6a3dffd1bd55270e1d21196d380833b710c41e36201d820ec61c71ba845e709a8da5a87207b0c3f34ad3bdf70a9483f40da1bb61afc9d64557924b3374d39542bd0a9e5a21f56d80c2a375978d4bcfa7ebc25dcf06180023403f5ad45281fca6640997af8fb4153db289d0f0c8766d5245d995a4db50c1fa61e398b600c91d162bb59f7ab2016ef59598d32d57591480820d8a4b4936dd4c3661b5db7d9c0fab4f35953e97886eccaae878b83b5c602f409376f1958a9fa01f47921073e213be70efaedef6a9d260211d29c507e452ca4e58255598425271491ac69f048c0ae5a0acf2d499999701c09b49ad1522cdae46dc79e59898c92ae9bf1cd4588efa83ebfebab89ce782f2e68dab19e57e1a47f575e82fc835d835f269134b7cf48dedaa0f39154fb29ac0280f19fde13265b22413fc9ea491d8148f3c5d178e69911352e9ef8fa6fba8a6e881ce5e20423dfd7fcdd288e9772790f17960b35dee79c78b41375f8042be01b1defcf4d65618ea95859c8de15ea6f24b62b8c3e4e8da8ad1c2bb102b8dadd533f7488fa2e5cd493c131f4636d93956051eb3a9465fefefdbd6fa9ff2878d6127124951dc9d18e4d580354297f74b007bf8d3e53ffb168a8efdc9dca83739c470f90cbd8c6719f03c354d57d2df47cee0e9504a2f66516e41cecf216405d0b04e90938dc517d51c54e6e63e373820b212ef94fd22a9c6438adb075bee953633764b51616c93b42980ac17856047ca3e69f6bd4c937f3fe4e6d3425c9ef490845371af34c04f010f8c950ac7bbd1be44e3381e4eb5f6ab8ceb63a2879516ccefe0dc8bac23ff6db6b9a37d416bcf7a7e36afbe538f469b9dd69021c49ba017c6c519b430f6bf8d43013c40af5a0eff4c99f2d72d398dc6ebab7c08c413276463af146fd6855257ecc0a4b977a1b551845741583df2f785a039c7789bc1d4ec421647f51a64b2a9615f5c632d8c68fb47848f6456f7f057aaa809e4a65d82a823e139f26da7eec2c7a2bd4a5ce77888f75a84d172421c5fbd7a3c95c12dced93c9876088ce343c73ebe9d90a865310b2b2105aa349e48e1e3173225cc1eb081821a834aa9e24940fb574eec3c3bc298bf9b76ad38b7fdc99e4db20483185ce7f90650c16b697e98ee09b4268948c3c8f3682ece3815fb2396612df7a48501171e4c96ebb58f95a0ff1ef09c506e903994d1a5b2fe25cfa4d9996f93694a1c60548ffc374178bf0cd38e72c108e5fd0c38e3df3526c4a820b15c38c647a398d4705e818a087182f4237a279887b103668de51ce5afe3a811fd491a4f0ca600cb4a5d93bd82c6df55aca9d93d029108efb57c6584634e451727f09341405f476061e1741cadd3388e9dd1d15c5bf66556b30ab089029ac072a2fee284dfc58af28fad04e8e518d1e3a89b30b8c1f297cae32163a04ac2568afc17ae545fff52a5d2bfc9d69663d9fe97b97fa69e234d828e1ac026c81081687da543c004ae6adf1a632c8faf50a76975827c8fd4ff3337801d51ae783c9f3a584ed62c8b4369cb33f71a2ef0b31b1545dc2c724d1ef4a5b735ce7e3deb66d36bf4d1cf1a926dd9b620f5c503ae41d54c74e55fd94f3b0e223b0d121effb52893581e368f15543c10537cd86a7bdfe4ec8706fd5ca627b667a878985a59c7d485c8e6bf0dafe96b93e6b4df3546095b08c0da0550c3a068c8ad39734efd54954878481feccc38a09f2c17c98f84c5bcfde031c48b0764ef0713bab922bde5cc2d691bdde638145cd4332c7418ae796a2f51079d697ea09e6aba62b550da5f016600e4d4a70670e1552eb6360f52252e1cb8c285319e00c9c1d68365f443fd5d20afddb59c5ceeb621acd0574dd868b407386785d837e94a882624fcee5ce92f3b4ef9831d114327731b09941077f40b3304543c0f3086fd0ec60c62d9732368840f9c15e355b6c337414c9e95274329a5550f5aa0dbf643b96ac7afc656bc1e8a26e697cdeb1bdc939ba99982a374658300f3261f198d8349196db3d6ac280dfb8a4a09fb98090a77e0599e21b5b0fbf92b78f9e5819ba43da9137298ff2c1197764bbf2ddbf4a8400a2a396b64bd8cb4ee4dc1644cc0953ba760a03c9edbadaf8041df8210255674a468ebe0ca589be6d15c7fbfb9f3c68d68482998c4378738792de6789014757e4ab7a937987611e47c57c9bc28e2acaf6148acf6af54e96765b723466ff0ae888aae5bd291b8b9490b7f4904284340ea117cfabc8b3242e73fa73b7fe5636c5e9e165e0c9758c5b5cfcf3cad21f0810016c49cdb5f2ea3935e56a30d96c15d61ac930354f441471085e1f31c7a76edeb33d74b116b9543ce9fd229762ceaf58d82080d150f47b963306455353cc20ca9717d76fd92cffc5cc1ae6c6f0d05ea8ffd9e3773b437764535495bd3ac47e6138965bf02d49fcbda82c55fc8133db9e68d59acd4941b3ece5e56939d5fc387d44afd7ef9da2c53b87587ca9e9338201a8d4d8d3cb6fbb622df169f22a741825bc2753cb232df5bcc9cc5c9e51df1a2fe542a6f75e774e58b87dcb3477a9f6bee2ca43a48afa54b743d4d4b3cbee4060a4b7dda0b7ec4b91fbbc91a0729205cc415c1e84301dcb34484139413ad57d8b75137cb18e91f80f9ddaab07e7a047132291f6e8d9ae2c549df21bb25b082e7fd515432dce2ee6f0243bc694e0e494ce890d3262f4f72d6d72fee2d3ca317c5d0ce2975274bef1f4ada57ca461bd3913cebf11fe85bd9e1eb354c2846e37a4ab8b4cdec97f4600aef21ec6b67e55b6b892f6e9c8ebc9a041cd7af41bf956d1274d73a62a1ee1613971b8c7b2d855c069911ef9342fc5b0018230adf6506aafaafcf549a6816b3fb7748de3b32da141222b6db2f70e9a8bdb93725bd419520a7c82ab1c86df85fedefed2e8219c3894754cab74fa2d7d7c4a566056cfaee18ff9f1e1814074d14f3ad24f037d0f4ffdb74507104255944c37b3e80ce7d8978ad8133031bab99ca7e6a7400db1a0b0a0d8bb39b17789a290d9759ec9cf69ed4a11796fc6d0bc11ee22ffea6fd73acb99e1cf4b38091c9a0175f1487e21221c38e6e03a610ff8b72d7327752c33adbe453faff71f0ef32abfc278def7e9a5e136b0a815afb3c7511f93a76ce6731ceb9751c87db487dfebafaa28fe0a4555534f30a53d29ce641cb499bd5d0b84bea0c508fdf442041b6e0f3de4d255c43ea132560e2ec53e23024abba2b7795cdb7e5b76fcaac41e3009fedd8089f0220822fc40e85c8f505cb88662c9c8a76b9ecd07ef72be82bfe3969929c0a14c63bb463d7845a9c4a119eeaa7588326e38ee666ff9908e39041d2fcb1f4936a2aa111462afead5c8e786ccafeb4beacfa582d47963059d4d764a118bbab9fe4878b3a79ccf8900ef4fe9bfbde8c93c8ed0cda82253788a29ae99390475c9deb882dbc788fb99fd31e21ed5b215a769f8238fa109118aade28ae5e5f8ed185fdacc770cf8ce02123a64fc55183ad343591004b71428bc2ac04502223eff7ea56c80e5c889c0df95999f9952222a743778a6fe512a7fda8a7645e28656c5de50783e23defdf940fc7f7662a1a05ff3459ec13b66db0125e4fb25c24282c42013cd95355633943399e3463e60a919d94eacfeed9fe522ee4d80f95a27bf7388d9f99fb0d14d032b8c7bab73fe615c4b0545bb23a810712ed46cbba8e3ebd57ecf6e7a091fc90afd7566576fc0b40c50e3d4f5004cd4b89ee8aee5cfccd0ff8cd2eba2f7858a72b4f8e05140076a54d8e1f7bd8cdc12026700eb3289b18a4076d665fff0f1909445fbde052b1153e3c7dd146a78f808b0da46c07fc8072d6e838b7f468f897edd4daec2dfd428fe60a1e8528e4c00314d49c540ec8339023e389c7eead08e14d1e8e47996f69fedec66253315036d54a6ab2849f431d43ac234388942ebd726af8b565c6f346974999de8781649c3a3d19e88fc36dd2ecb94d84d781f0a44147187927c8ea98c5afdf2fa9cec0a6b2028f65a63ae0d821329bcc242675892029649596a6c76fe37ed4647ee1e94e0633fb54eaf5f1d39f288d319d45e04a6c1d58b35bdfd9fbbf84c71c201958bc826c3bb8f29da9438e4a2c8bd8776eaaff727a11b0e2e738f677e6677ae6d5af29cf1707fe0b803ffc70d9b77aa73b7d003ae07958949982826d95a7824f2e8cc7818fa8fecef2d6b014ae59be9559010dcec1b322ceb25b1d6457f1ca6d2b56e72b35991ba8e601afd46caf6855364fad471fe392dd1df2a0bb46b60aede4458e7a9bd07711da4a41f2016b38cd5221b2067588ea01c62926b71db1aa925ec3819fd13713b3e79cfcd493a77b3a496c572c801277ee413895ffce5c60b176e89bcfef4260ec98dfec8423611bab238196221334224d4e1b1d21ae756bb424e25bc4b37fb94f884a0930bd0f158502b41013fa6f923c1874640b2847169807cb703a2dab3a23d49a21ab38480dfd12c1606def8cc6ca57914d920bc8af6e44d976737a20a1e26094b0eb898460a1d5696e64a0e3fa7c3ab2d6ee61c754ddb4f97fb494b2bfbceb786389a175d9d0b404956fc1b8d3cb1dccf63cd7ab839e65324ac52c43c212ed5eb144dd80fe3debf80ac932153ca4195d56fbb287a4ff6466377597a8f5fb4a92907e084bba70ba60fdf134ce24e65a156b9060836561e1543314cab408c2db6833bdec72fd44f14b402aadaf53e74d61ccc287e009ba97edb5f8666fc365b834b92b72ddd96ac25c49fc79fabef0981e8e3eb51790149254f9f8d9d401185f3eeb17503582e5eab867b1d7a885bce6050e1493d2e10c362f4cf484ac57c0a5f070724d808a8d2889d1d9d42a71fd8093e738b1c41654a314224bfc4723797ca0615311ecc08c00812cc7d68c11d7ba78b102dea43131623b2563533dfd11809abd748334f8e3d528ac112e3af1632be0beae0ec9a4fd61be1524796e638a5c6023b2bc4527e64fe4bd13bbcd112eb80e5eddd7265aa64713b47da4ef359bff3f099087fb53bc10ef7f6da2a2dfb76f2bf51276baf02e0c8c4dded09e1c309baedeb57020d9e0bbc9ed8111170ef43338ed3666965f29ebfdc2bd4a7e34e67711bc69670ebaa34cd1c1f612b35ace348592158e1d3542a1e70a114c24749097deb21cee92e0a7bcfa883873a509a03a29f1dff42937b6fab041daa8d10eb5273f63e0daf85365faec4af5b4480abcc0483ba80b223fd7b1dd53978b01be0fc49d37eaa759b2a82ff375a115a216e6df3576e7853ecb8a9d4d2fce4184410d89ca891454987710588173f3a10ccdd708b302fbc182e4c92fe4318718779652f69e005ed3a7e791274567665a82b7bb8ee213a1c129a72244313dd148ab5d34a14ba8690fffc3f140fd1fb9673570b301ad4f7fb289f1373ef56f3cf44daa3db7b9a2fa775c4e4dbc902e6f5f6b975459a8a29d06b07b3c789a075e31e3f9ae50aad07d233b7d94fd206d5098cc1a27efc9c8e71c38e07c01fe544f28e666f7927d7f807f9bb00adb0ffde68e996227496d2bac791eedd5ac21012c3fa03f40a3cbfa339101a8c71334e8015a785546b4797c228f92e9376fa1179756090be46839dcefc5caf43616b61e342fccc7e8aeb0e5df15095c280e066e3516c3adf01f3317ac533da696164f8055f7c8d765236fba61f51042431e4f082f4981d1a9bb76098929f3767c75e4fc01f3b4eb8b726b5988bcac99b4514e0cb24a71e90319984c487082554f76b99d156f0a841b4e3a5317aa3292be16aeae6f82722e2a01e99fce9a85bccb45b17536896bd74863a4f93645f5b83586bd451bf131b6fdfb6e05a80665f07f505b0c4a049a3a3bd51633f38536fc04a25b57f0cc7a588ef2d017812c84e34fe9c3d4fd2ce5aa9187b8ccbc8d276da9e39b082a2e4e6ea3a166b2ad60b433f23f43a63dcebf6ddb38ee8ce6eff63fb41afece8ccb939638dcd33fa2230f6e75a7c4fabf35709c1d6d57f72a8a2fa74c9b53a4d8c67594fb9dd96679029a88b62c40eb78480c9f4f288e0a22ede9cda9bcab475a89b90bcfed46587107564be97c608024a7330edf78333fd15492629ba7e1465eb0a757499033b46dba9c34171c8ff2c2e2392f2dd212b7183145da0275a5a5b50955f9368aeed771b1ec3e9aebe0e115c1b2420e3766da423e04d3539c1af835a05e2213734a6928b187d0a3009d63259192294a348598792d46c11ab265b036d86ab19497311f615d8407b4ca5700bc8f54791eab88204edda2637276c32f159c018e1eecab1a8d793587268adc62ea5bd9f3bb6bad2d35229e4d8e3303e5b4988db14ccfc09e43b908e6a5165f85827bef7bc59f7ff2061fd338346c7e63f88998536d9cde98bd203fddaef5af9f9aefb70bd40419457e2d02b23ddae7e64a97949f040eb23658f5206618c16cf60fd958e6f6f6fbedbc56c32517bd8b2917c0c412477097b9183e8f0288dd66f0fe2cb03a2b4b55e2c45bdf464378dbcb50581621a1a30fd321d41489fb80ba844c79f8b0e8f9aec1ff4d9146d7815ecdeb94fd0731efe2183f03d9ee4009502920b991e995995d26b9b7325dfca062c06028a7c649a3db8a5fba15b47ba2c1e6643960c70fa93237a25414b0717c05732cef100bef8b42b7144cf3c9a43ddf1b478d737c26aa3d704e5a85b7067971c151acdb835f3387c613bfeb0206d74ac8bd92e7b3200ca6c7b5504be622e86726d4d5e76e86f4bd99b7ae1761c00ce7eafd8631e035e6e72ab37a0c7a3e8672683e710f6d89dddd327ebb06e04705129e022b4ba91182fdcf89ce6e0a684956731c008f9b3c62e8d0898b05aae2a5e6200cf86db254b63ffd5a7eeda2c17fa1067f7cefb3acde6485205bf3022d19fee91c645073151107baaf10a7f1ff3d6f637d65837b96e9d98b2c1d099597a56b357b3617ad5bd25751f408a65bec1dba8caedbc81bed762e57bc2b3436e4d3ec3c33ec6c17a3b622aff81f6695e54cd8feafcd421558ca1c1c8188e6aeabe5876e942c713e5d91e467710c98b45beafafba3349b5eb139219b51ad7e85d89b1283b14d722e6fb7aea976db658e55b6caacad6020ea87bf8e0fa7eca8532c4d5b4be0e8a276b039e26c03d9b99bed0f7c5d7755ef3b9d5db37421625cb5b84cee673e7f3d406eef27fa78084a8bcf43f410ae365df3694f36c50173557366a0b1e4292ec8b3e9506f421a2d6a1fbd2ada7c83c4712a960c1a74adde2f257007d1dec4736aaad521fe949162e6f30d18ac422be88456821b0c22305f8229e750b4f0760387b5dcebdaf66945684e291835e3605051e5c0b3ec7cb6d99d7c2d02fa1c6baa0bdb1a491cbe91ab282a0e7ffb7adf1d0e2a9830b84a131fd2a87b4db056124429019ffee61adeecef45cec682cfe89f614e82533cdc3d3c5ac55c5846929dbe65e8f1e624e789bba6190ebe7a96c1203fe3af564387ce5a523b30d2ef7f842f3abf87ac3e6dad8cf93e8806362933c2015e80cf1e53833159d2aada74ad02f8aece4f5462d5ca90d0068ae301080b6a56460c61bcb5bf04bf585238a8d296f9a77b29982090453c9eab765839aa9bbec6199f3eae1a0937641504dffd7884dad2dc69116b64e55fc6ce40972d193633f7f1357ed1f08969a91370c6fb03525a697159333dbe58d19fb5f3be3dbdb724eaca033b7c268f2c134498107f5d4bb63919b4157a7aaca3d2082ceab795fb05dadeef875d4f0d40835e54800f2eff1da74a2d0fc9b3d6ef14af9d8d5dcd629c7ced1332792a1864296dd13fbb96c13794a7e61f7b032f2d88ba8c26a53e524cc16c3e53e9e16ab98de90ef734d728b5697ef92bc340f119394651391304b4755c9172b44f29e3b1565f5d322e288ef7aa78f305cb07be33848fdb9f44a275e0b1d5670021530491ac9ae818285794c4cab453496f391ac0608d2c2884b20639f02507c63390727c5c822a73345e9c0a32cd1005ac33ec64d4c5d8820536dd9c6f20f04a3dd0791c1de0720161474eb5aada103604ba015111288a811fe3f236a5e9f52d262586cc96836422c7281492a054b2116e6489f4004080a51fcf43ec3deb9dd9601eac5b115f77c979eb9d44eacd45208ef298493d2e0afe90d050183276a3c6ab4c205de97677c5cbdc5d4b0cf18e274b10a6acba6d0f5710d79f59e4a7748ee901bd082fbf0457a8be0c1428cb47e504f01045a49687b7073f396e9d22b4cdf86b81ab104d1217f828232009699a99f79d95fd2cfc0230ebd82b20f721b9d6b55c0ea8f293682d4c9362390206aa619617d90c57391ff9d0f4074208340e34906c2a0757c021d7494b4db68c900a62e600e50df47e16e27e4460bb6368f2fa5da83f98f6a42d3d90f1aacedb1443c12449a5a85fbb2f0f47cf51a53c16d7ed56a6dca1ad18d19a12d40400d6b15372412f68cab68249084e84f7764173e36e61b132221e1623b420a22b82261929cff8dd646e8df454171431f241001572421bb5979f29688f9c9783b2cb583f2a03964630f664bad7f65bc3e8fee51e922148b80789a43055cdf491702630cdaf45a8f8481265a06bd0c8c603ea2a4f851c90fe9e26e520088c450f0054ad1785e434748d3a19383d8bcdff6eef3d5543cdb75d1f1a10ce10a12c7c404274e06b1e30dbc2b6346b906ac7dedb2781dcf559bced706f4425295e78dbd6cf83e497cd46f610379fe239fc5d470065697e7b477dfe1c3d09a6e2f40207a6a0714b32e2423883fc4bac215782d115ce525fe71bde28cfd49eb31f1dd7f65d029c5dd7ac94ca8a919d98c7a9a73a588c9c9100d18964de831500980bd340eae0038418f9cab47b12585ebb180f378987dd7ac016c246bde34bce58b843e4ffcac078f9f703e00c0664b224ed40346e32445fd665e4f186ba368a3e7532aa940641bb73faa00edbc5e3263b130de7506773e725e28ec8796b14017fd45e0065b5c7cff2fbc6dfe8765dd3cee8acb07c546eed430d8faa76f76d5522df1e3a6f09db8dd8fc759d1692fb7dbe5be0ffc478651dfb48045d848d07a5829b9f8f778994c5f82c41e3adfc253c815820d4fbaf76ffcb2960c24eab2239d0e33f09836505d01be6f122dbb0f546a08840727d4fb2cf67992eb2a1cdb3038f8cffc15edb20337e769fab2ef6440e3a611a2ba452f72134c9cf93f0b06d1e16db3c9118abde5d52bb051f1b2a5e6b80811bce549778afcef48d5ad021c4fa124c3a39849b87a53b8b24307b188b323761d102702afdd382f4b8247c5d48f401aa26adb90e5e19d2f0711d09e40649394fcc4d62a42d31d59fb18a52020101b773a1de92a6147623352998e57e14d3f4bf73f6979580a6fbff0e9e53909f4ddd92f5c72ef9c47e30ba80b114b33b04e9eba55c0103984c605247b4a779b5ad6d628415705558456ca5d0f5fdbaee992ebe3c8e93f2216b23db865b17c34aea37051be67f979478405af414ed691a0fed12d215c9078e7096879e4391347823600c2c97470d3fa289c4705694e46225e3455d0d1d302acbc0603478a819e7abde6d2777f76a075c1873299f86e90e77e2108478935f7823dbcd9f04129258fffdca6a8582cf2ce63182aefdbca9e3624fbab8cb2e5dcfdfd6a61bfd287296b7dd06841c1ed90e370c566d89103173c9a4937f4e789f9809d31638f469b36fadf12cc080c7c91c8f58254ee0c45e9fc1efc775b8fe38bda4aa4eb616f774a2c581a740d2bdbbd4d8b35388b5fc6d53a0517af301d2d4134a65073883188cd54329c610cf01e6c4a0339cb7b33f0eb66d813463e208c3e15dc2d46cf6b6a403e05894f526ddf0c03de00b7c6bfa0b562847a5a8df3915c18bb447a78fe0f1f944d2fff1df595abdd537cc2e27fd88130501af302303cb7d49e2e00345476ecc102f4fb96fc6ea0248a9bd7543fcc4c73021c68482860ebc0227d38b99c2ac61ea59e889bb3739aca919e2bf1b0f76ed76ac9f7b4ae88079371096fd4aca3878c112672a2503409fed6297f4b032b1cb96bc2f6165d296bb47614825f8fe86c7d86c03032945017585cfa1dfefc662e5fe00f8af65f204fdde90e2ee33a1751ecc4e488dd65c3b0145a10624e40e57af1c37a635d8773c2cf249399c14175da15ef61994996b2d6c968db6bf33b3d2ce6cb902bd0198f74c0be8cfc8116cb0897f720cfe5fda6b10193b086af641bb62feee2e97d50dd60e2e027b25efcc2d099e250a1c25d3c48e19c802575ba74f192ad4339e839409ebf8dcd215850c9f3217494ab650c634caed45782997bb7014d47de08a756e129bc6f2759973202a0a4367975125e5eabd2335f01d43b479dead8ef8b7f4df8bfa7b721b2b2fa3311f68e0e566aea95d5f9e1362b8adaea8f193c2b2acfab108a65ebe757f6252c551a7683a873c4b6ffe2fcabf7e9c29179450658708e0b1ffe8c8eee44d5391a2a5c385e0a5824ca2d5fd3b508aa58b420ac4da4eaab631c8cccf4cf98cd3e4c4448414f102d5ed5dbcfcbbd9f996992462b016b02c1d85a65af8d6c5cc4b77861351c52870dfb7422d23919c8e5902dc582d22df114386e862e9bf029996975078949a0eea65f58e12817c1dfe5ad4e41c179cab38a612125b9feeff0cb837dc385f6c6abf4735930a4a2cc0c2d305e1eea036df74cb891925087d6703f86c028fc5660bc10acb361603c531752bebf0e29236ec64d552b4d1143bd08b88f11cd76e88de33a94e8ce3705fa3f855c49b44a0f5ebde6554b3af3f2b2090ada4f679db25557f3a1976269888d403432f485fb260ed8ea77d6f3a3d03bfd34d074cf4f6651bd253cb5ab11dc0edd060b144adf97a93a0b63f46b90eae98b6f0c0db1da6c41e37abc8e93f98fb2afec13260af15d8038ee00e26a2f5caef656f1907122491e4d49cb5ef25f22356e9ad7d12efa923256e5ce32a11d72b00650b80025c2a703051afff3a54cd94111042c334ed449a2d5c2ebc4ae7765671972f08964813d9fa9219559065f89ef23e52194aff938d81d2e119126292079937dce76d7f5f96b75c992aafa567076c99e4f5575d7de3e112a881703e4aab8d62a1f6fa454a49ec789f346644d18688c47db54ee2df95eaf530fb94b87ce608241734e30d62e41673f3f0b726004975bef01802416631e1bb4595dafaa70f1a2cf54302316d2ee416761b0f082d70dc2c8dc2b1af1158d3b8c6e1c4cdadafa89847eaf9fc3c45b62f973a83dd318f0f2c56bd214cde4005f62d730c9b5906c77cc191527073177b4268132dad373002e962f342ba2932b0222264bb15da86d40fd9c82b4baae7d23bf3328b4b934f1490a9b56bbf520d116ef6d25919785670ae2cc07c55dcce864ca165f6b0e1dcac5a3c3720dc5ec1c6242d5e2a92b4d03b17abd0e4fc6b384f6e0b4126d9183da4c56f116b2651d5802b34ac76809f036d8d1cf10baca463ea4a839ac55e2ec97e3a78bfc5e643e2fdb09be6eb68aa3131cbf543937d1ee3827f000e1745294e77b5cc2291b944165ab1f83a07c47052dfedd086952cfe216676e37ca9a1f08b593203fe1d3769b2ad247e57923ef190fac583a2b764a5d70a512c851c18edb72ceaea7a4564908cfbf218f42fdd7ac904358e1fc9d30995679c5912f5599ff8adab5fa3916dcb8e6f07844af8542111218386aef49e934099c91fcd811ca2ed9ad8b0e8f56e7635ed1c5b95252be42d86d63c9e801d168ed9a48fa6cf362a25ccd17d9f174aa013ee1dac96d06dd418c1368a671ffb2f8bc5440f4faed9fba61fdc987f26cd7e4db031e814bd176d81c7c52223d0232216f42bbec1c413f86733c8d82445ac521db5d05e563671024cda184e104f1bf764dc967ab5b513dad5efe6c08f810f4d518f7a9eaafbffa40d38db1b0f16a2a67d0c30c32c54da7752e2148ea35db7beca01e72fe23cd814909f248628edc9bbbaafa41de8e74edeb167e686a9e7f916fe6dcc21d2a6606a54a22df6040bdce54d65d37ff081e7ecbca63e64cd621aff779295c4d37fdbe90ac74bcb71c5b2c6b9668f76106157a9ae5adb469e7fbd2c5299a0c643d4460f1b7c5fd7e2d1684356fe316a5666f55fba6d9ff592247c5cc176e19a03b3654020da1d3fed158096cf4d746e9799ccc98263a60f80c6d643899701b5f77904bb6836e0cfcb07e264a3644b80e8bd88dda0936a7424510b3085df56af8a32ca457585e3a7db9e5b21a7a6c0f125f6b0a4203488639e9f8f7521f84be027fe28e27f8d21011fd4761c828200096d79e26a0434e7bcf38432cadfee133ec1923f3eefe82d0abdb2d3b82f781985a357fde0bfe555598b642522d623c3b04cc7bdede5d8c0fb7ff8625e7f6f25d0ef4d755abb79deaab15a70ae2e88271c41301e81b3e7d904544624f1945ed7233bab381fd34861b316f59229a52cfa7b1eccc66a605ba43acde049c26740a7cab744dfe8d9ee3de74f7b53b50d204466e4bfe24127788774a000e42c445b16f5567a1306113515c152c7fe2acb9d10299823075bf5920ce029b3755149d7c54f4f4b674bb4cceda2fdad9ae55a8cc681c2def4deeef38423e44a15aeeaa459a49c7a07ed6fd945208ff7ccbbc64bc39df0940980e8889919f45ffaa270b361547ec3fe98e14bdbf32de8781532d410ad34a231afee672e8b9f609b4d7577c36af71dfbad200c35b35f5855c7522451d1a2276db9be2144d0d0b1bc8669c15d554e13c73635f436c9905dfda4f1ff389cd4273a874ce4c0eb945f133a11e4e0158f22e9669b9a4a6091823d886dfe33a266b375cf3d6d4b899d5d5dc0022b15de09351bb1c4ece6ab16909fe236e90bdf7925866f6dcca13fc257115f2aa10999ce228c349499807037e576cc536aadcb3470e04269f6159d7d1208934827e5d736471d2ae44b2dc0f15fefeadc0a640d3e793a44f6261acf6b5bc1556fda53f65c250e2f00b583a1a3d5e074818127984686fcfa88130729d089261f87caca0f9f1cc8c6296782bd911b69140151d4f67cb9c337cbed8569118fecffcc001c8c232dbc3114808740659f8e61b4b6692d159e07eb1e3648613797f7d24dd6149f4ecc84c36a23a3d1a98f6d3802e9a652cac43471135ef7887339622e6e9a20144bc9bd3646c5cee24e94b13beaa5a18f5970ce07f13a862794380a6f668929248a414419ba44d3a327175e6a7c1130ad0352693f32484ee592d3c4f3c21232e13ea5d04f4ad6e7906f1c27ce5fe43fb80c56912605baa20b07a69c5fe06f60f8ddcb1cdc6fbe53ed3fabdced4cea748f3f80ec99cd5fc33bb118bb84758a7628a418088515dc9c7919c6aadd91d0a85d67d82c9ea056591bf261df6b0833f0cf11af6bbc1d030d5c60f32f7d8e44261ed766a3e8c88be74f501685c674a7416367b79022dc269881dd55acb13b62b948e34086c3460fd925f5481cfc6a69f0702db37a539a546db43c55cb30a172efac65a53b4b4a36176b2f3cf5eced648016afe1773e147ebc448cd6c9be5cfa1f5539293c9abc8d5158f1a1c177d4666f6e7cb4a924fb137b67c304fb9820181903c1f35dd9b79c61df516ccdc84be3b88ce653777f7370315e38a9ed2331338979610b9b5208777458082e517c520c9c1485331c7c95111b122714b4dae9f97f4e04b2a494b31fe452f50a80a73c389e4fb4b6c46deda3230c319510eb36b0a07495d1d56d6ebbea419a3833ee329803f312e5ea93fcdc8a9ad98388e019cedf0187785605259399d89d0e55e5ae3e386e032fe5d6b725398408d89f3e28eee5fb4e6682a174e6bd2b49a76d240076e3b12d42d9a806150fe18952bff00c0c721be4a7e4ba308e9d1b0b10f392cd669fdcfbed840d46bab98d8e3587040413558945445ad3df6eb51af5093fb08a0e8f1f1d188fe7c8b7d538298d903961bce090f3f82d293bbbe3213e5a4ccf05864c7a06c1520e4f2d6b36d407df8f08bee32472063fc6b206a885bfaa9d81dd97e9a26d18565b96720c1eea5e8524f3488dddcd0c859be927636b78faefb605a7fc8bcda1dfd2c8a121b72b4f3e5ab0d7d1c60ff8825135ebc0d0099e9a6945e5f37fe5685b4706f22ade3c21fc81e04c2bf0cbfc7a362095b57239d0be09b9d928b63846825be5e103dd24c2b0f5b961ce2f95a4753bea34b96473d2a83b50376e9b8d337593ed317127d16bd0dd8564aff487ea6d4105c72ad4449d04e84e0312c570b03e391baf838c91dd50a82147f053bd67341098270547de20c80eca0b8eaab0366c355fcd99b49924278e7ffd91b7d98fdb30fed44fa09915f54731ae60cfdfbeb1a01f120a3382f48562242c83b580fdbe8d4482f5576c5c945fc1edc7fbd554c9bfb34ec089c68f5e4daa26669fdace772aae79ea9e78ef8c040fda58802dbc004fe7aa573c4840e6003f3ea84c1612507e32cfcc9b7e6238148245ad45c724277f7c7f7b77c95f22702560c479e44107fcfb62688763f3d6a6d5cba19644efccc9a60099e074f0bc0a3004cbd8f9d1f919e7b3c833b32a45a39928de288d8107cf8fb82bd953c5a3084b6b89988ecbfdbd0a82c2731c0c954ab0dda1e44d2b2bc3d3d12ee0d73a345ef32deab8e279864829411feceed66cded3290f52721a2d8f03327dc3547ff587ba1a69fcb426e19a405bd412a2564d3f0d4f6e5fb05f9faa22642a02826b237bc564b4a7c9e69c5cfd42f08350c321223e292369fe0279e22b531e18fdea8bae4f22d5896c766f744256275f3732bb469a144f0916281cb488d47d6ac6f4805d241b79f8e8252921a6902a14399619eb2724593af9424ca09c02aa33c113e1dc27e7378510d6895ff50d32df5c50a49142a8d6c4695c06de3b67e01c357f7818cc5ced31b9040952ac5c653a4a50b4121b058ec66e666d212df6c52a4fc33c159e4f83d33ae9e22f7ea00bb4d2c411dc34d98d5dd2a03cbfaed766419ff924a3ba9ec423f2a0fcd8d184adec655c4733e6739227a50d7251f10275cb9891a03f539313bcc26b718c42ff92fb9915ed49db9b3353b9f5222698a8cfff14a9ee872c8f1dd48ff8da671de2461baa9f4cf595a59475267dac2d3e6d9dd7cff4d780210be628c2c1a645e53e0a4bf44a01e5e6d99034c847b2d1ed738306e7388d679ee5c2e1c7790a49d29861857a897546762c9e1abc2d9d1aa838c32d6351acb5260124a2918769e64ee7254762ff5fdd4142e096e7ff8bcde33a4912a8caad80cd32403815933d7f7768c3657723a2bb16c825416f5ce8b80578f6d4050a3d63bf800182ca21d4b8a143909ea66f2aed1919caf63f93113aedb5ae0b29063dadb7b0ca322f43738dd1fb64dc8121bc9e4135b54a889acf226a9df520a78f7bad8826f01d454db7b742b2e0ebbf8abe80db07f40f3b138089c2a4248f792955869812fe8a11a93b80e438033abaf1756905fea27b8f5d2fbb2cca83637a71cb2460f025e21cafe025d8f40644ef01488434ed247881bd0f7b561ecff4eb18d09fed546db0f3934011f590a49282ccedadae49e0484f8f00f7df1ef3dfef6cc67b620d789ca66425c447802a76b758b5f711adfc8afc8b175ddee0092d0e6f7d0c748d07664d1312fe8a50123c7ac434aecaacdaf4d01d5eca590be3f5b67d2476ecad89737e9330dfb3ccfd41d8f410aa9f0040f3d5c4345fcfa1a006b58cfc9b29bb50c2d90637eb68ef451d84d6b92326f971685b8b0ea2af9e32b8c1edc7a19bd34e477df915ae83a58509532e3ebd4b46b85e748a76fdde5dbbb3f0a83a8349966eef8fae816c9260caf3c0f998f7ce0d0275797e911236d726654065edaa4c21e377ba7ca8ba5a7954c3695f1ad3c351a729836b8dcd01a97ea210e1946052600948aa3aa80b506211f48f2fceec10a780ecf251b1a582f2c474a5fa7f5c1cabb44f90bb944c1eaa39329af40105f23bcf0eeaf2fe366cfe5ffea6489ecc00b400aea15b216624cebc6993934c7d782eaf3cd1a4986f69bd6032a142919d67c6028e979c3f10f5dc64a7a97cb90606330e29d3375ddf94102e6f84f989e85055f4372ed244bbd6e8db3cad6bf96ad48a607a5eea6b54ffe35e162460f5fcccd9b0cea8de6872424afdd395b8ba156d4a8ed3a66d82d32e19cdeab923399b8001a1924affaf8368b21c81fc378bc531f0d20922fa66279a412b556014039c262d6dccdda89169ab0d2d6fa0abe595d34a89350d74d0b63029a7ae981ded6d0c3f11b32e74eeea2136f173e3c24c66dbaf1d51e69f7e0ccf306358c6ce778993b92bba8e1a27a61576a0b54cab957c2482a086f0667481ce78d0b5b1739d39b12da2b65282664486daa88e0331c4225f08b321b32b86c573db331706bd7fdd70f9f43054db7062a5557907586f1aeb8f93c858792eae967cb7df40d5f8f1156c56dc0d70cb89d45bb17d913c113e378bf5f5c5d201d9d39a8aec8212dbe12759b8086f08ab434bc151b629c62195998047c974100f1c3cf25b7a4415d6e03a7b7b204f81d14987a5c795acaf6c3caa6c00e4dfcc2a88979bf6c47c1a0350012de354e5c4f1773a0c330ef0d66e39f3a45b51165f390abb22f494d3c29af0c55b68284ebd86d06caa75f82bbed6c9a94f0fd3856ae30bd50897d70990fddad007584050df4f24bc6c353f540b95f204e8529e944e5ac6b4427567da6d4c1e94c7c15b559fdd7c15eeae774b097db023c035434ab52c794ab9f24fba25918a1645b6c9d8f52d9c970658d23f25756c9f7945b8c4072bf772c88b15bfe87667a1bed5f89dde58232637528d17713795198c84c41bf65b3b3dc1efcc78ca9219cc842efafadc4c32d53ead528d24a2804dc4b041a2f300f83c68eb0abd433cf89e7c6b1164749b92bd8a792c801898f671c1d9f029b6aa51297623f736aff5d5aca152ac2eaf55bff9bbaaf8054b7107007647db0bba5d38fb179f0b10ce64fdb07f935b339af85b842aca86025efb0f47acb0793cbec610fb6c224b2c45dba475b8e5a68fc669ec706179c960190a0d907dc11ba0457f9fb10a59f8431c6f1a858377d649c803e07f9ec4c58ee597a0f4d9f149291762687c7ad0179c3fa32a6e28ac0b02bab2415f55452a8850766a7804ac1b08beeff399b7c2463efd9f8332852a432db8209f01ab14b88e8d8e966516c3bb560ac3acdeb3b0b0578cfb16cc8c3b1a9064f2f854fc8de7aaf1b1c2677a39953c8d1547e7d2cc2dd68212bc94c37871d06313ce4b55e1723277fa9d626f57e2762054e4896c35d4715df094c1c2ca46fede12949afa75b0dd3dbbe38b8a1198925cc3647b50ff8510fdc7f711b8b760e502902ec4e21ce767050194e232bfe7e82234999a3c1046d825fcde47e701a5d280b6371036130652b5a28bb72321d19c14c8461766c95d54fdb721fe249634390dcb2bced6d46a22d7e1dd9decb77e6d19c62eb7f6819dc89317f7f658caa64ce3c7c9d8d3be9e671a9b91c3716a662edd7e8ccf89d1412d55e0850b01ecfd363f093ba5f68136d7cf06a465697c681b4e41bb25b0aa475598c9827bb11e2f0ae109d44938653d1d6c0973cce0d4660c205ff6cd6f45397015551f7a8e8a57ee8f2f80d04858d6530d14f1ffb7940ec14a41654bbed9bd6f6637cb7bd1daf85692a72ad908d6fca5ee94442d1ffdcd1a878ce5a80b2a76d88e508af6470cd73a3753b60810978f53f2f7b48922a63020d75545feb7ddef2c6e34e1fcd38b51634fc456012a140f281f3707591a051c12fb66dfd994abb97051439a59eaa451e9af495ca9d4d8b97820fbab9f3843a6b0fc92cb526d54e2386152e598154028dfb10bc555c1a5f0e9c24b61f3fe63810aa41a151c7f6d6c5e2fe493b973f1f4f7b138250658630c8f77d029cfc5bb34d70321a9cdf8fa80ae2ff17317345770b69241b83f34e40f73d6a0bbc938b69e69ec2fefbb7fda6ae339400b7e1fc8334e3726ad3da277df3b18a5c80fd7ec78bd75cc3d23abfda4c80a4f35390d52d8eb09d2ff1c264ce8649d86c28d768dd8ff7b1b9d208a7485abc1ca65676b08878977887162f6a161816530fc46bb10e5371b9689ed1c484f21629891c7bca2d4ce726172b97dcd911198df4a72a3403f623acea818d624b5ba566d00bb156b02bcedd50d13da09c1b9ffc38816fd8ed266ff42a20120d51674e9f788399f7cfe09635c2c5c5e1bc41488309b0bedbb0ace53458eb2d78b0391cb97f9041952bd395015bcda12c248efc55bde766bcca7ff68ecac4dccfeca1890a6af7e54a4c646b78792e12efc4d746eb01814c250aa222f1a57aa4251275930509f20b5980fd29b6d19f3a31872b6daad57de11fb116be08f5b6874ce49ab87fb4dc1b63f7c638690189b9299000d8a5858f6cd8568bf76123ab50d74d436d64281786463a21105b62e40d3e6e9ee9f3a5df63dea5225309fee3aae4c8a95407ca430e3a5a778299ccbed70d00e515ff4933dfde6a25112b03e346b9ac0094ed226afe6ef546a0706bd9f26e18910b45c6c1f7cd6a20d6290ba6e4ed1da706cec5324372fb92a39d8a0e8eb80e09cac31834d7dd595e02bc1e416d3615b3a692769213565f55d5c45cee462e745e9fa5802459a39a691bd6d31876a535373fb5de92951050c05900a884b68de59a774b09802bc57bca32bf0cff6f9ae3a65394171f390a3cd08fbbb89188c540df1936e6bc2a49af7e1cb6570d157b97b5e1f418ecd0cf33cdb462142b88ebf96d2f612a31b66e9c370ba5377b5d2fd3afa0d055a99731404a91ea24cd9e74ea098dfe67559e95dc59c565b5192aa2826a44874dc2e8634d56db4c2fb0541ee1962b40dd28d684b14cec2fed82494b15324784e760c9b7ad0ff3eb006f1fb1759387f25097cf394839b6575001c37567db62954d6b21c4749cf74ddabf0a67770db6f771f24ef53ebf66b903184b2641f8f4aff3a1e06c284a913afda7b8a5ce98355b8a06992ceb1d042af15b414d646b8b0cb02646bb94b465d38369d22fc481628591c0b68be0c5e1fc4b7d9e33818df940fcd99f0cf69c9980703389b840ba88167abe1d1e6b46277683273966b59021164add150fb73aa8b0252ab5afffec01ffe212a80fb057c86015c721b2788f1a79d3325d75270a60453fad7730328776545ce6bfdd6c470cbf4228752594733bb544a7fe72d3978546334ce32389a5ed703e76a240106f68aec8b108f4f2d3915fe2d137692b515d0eae76f96a7ee49a1be0b77a485ee2e492c84801cb13cbe6093fe348ef34019520aff24d1e04103106a7850821a496a53f5f992b54992ccadcbad96cd3fdccfb7785057c9eae37816aaced09396294638fbec940aa4112ef0e34bc2e33f021e5fbff2cb9a062454caa2967e05b8186f4be8681c40741afb82f7f4081645390eb0860a181242e293e658d934d63a82a522f29bfe70d290919de8e003c027bc6593f2655f34dad08f48a276125b3f5f911a7e7b052745c27de3d85733d095d40cf50e7743b66d8fbc71a618f7bb005731d1d5a8e2e59bf1c5d8318d3d45b1c071484c7f6982ff09a409efe6ed72dbcf5faaeb87219e999398633da3cdb7fe3d4eff0bfe4639c9c5c859085b08cfa3aafd4c2fba663c6f8694514e5919cea31361153db4f3abdd0596cfb1d855764ca2cf23726f1f1a06cec1d27826a2c8f535be8708cf98609bf1117e9eebd6dedc8900dedb3edf8a1a9fd8fadac2dcf7575d51d58d0bb512ef26c29bc54c85d3b7e287efee790f5126c3a341756108416a2a1085afe5d531666216014311ccf53185690e9d2b3f261b9f2204931ca59f873122a0ef23965e1127b8aec7a415387855e0b76b355736ed668e02c356a79e9487f6345c52aaf0369051449a716763c63e0ba7a83c32a3ed478ddf5f12bce11daad7d08bfe8372d5b6b88927585d91edeea062ae599c00f593ada4a881b09cc6dc0f0baac69c23f654f0e7225839b22a0c84b038bb8ad75d37ba3d6951551b075619fd938dca74cf9019ec360d260b4ddfce1cc9af6f23cf0399fa327004393bd5a6c30466168eb71946cb45e13cb22cac12741bc7ebd6d6992a0e255446e9007c8a00d20670c9e60015da39165b137132144caafdc05454fb12134501f2b1e604a25738da3f360af827126609536ea710447b4324d9f6b21069846752892a6ab1f8f237fa4917a6dfc99276529156a9038f9bacf56489f4aa0a42a8468182468940fe00ac8c6148cf921cf19fdf33533ce78d578c95cc8bccb91073559cf912c59d2c702cc5418b017197457389c18a4515f3262a36f5064337171c0b7b67317e80329bdf0d94e74d418b6e1ec98f9534f4b54284782d8adb456308700db50cfef1486d35996d571a0da821a50d81bf1d3a7dfc049a0f1abce06366fc9d5fa7464cac53d5e493c8ee163f90635c4f5107533ac4b5a42db6abf66d761ac5f979aecb1efae2e0005f141ac7b79ccb03d7d4a1a12cc3728b4353ab376379b2a7a1a9cb64176e6f6387ea845a4252d57fb6e4afa7ffcc472247c1765faab2dfa35e1ac9c7495f509fd9db0035f7070cf5155a71086374c75e70ba7ae514046ebae2c275950374064acb1c4e3bbb548d6d124dc9c40cdacca1f3a00cac3f2027cf6fb2419d871b822f329e547321636842465be69c87feaabeb4fcc1fcb3575757c6c7c0b6f54667cc96dd4e868bc310a59f52e5998736aa7e41ee4403909c7ddce3a23b38677e93d5567d1e42da31e01987f064864e252b1f9c16d54fbf221c7b11a08c811bcd21af97ce2d19ae309cf555ef5a7120efb3cfd5bda055c39eca6542b62271b4568af508b7bca2379ceee51cdc872ec8955035794211ee0b650961c252a5ee82a7a3f7769c1a179896c26aba6e5cd42bb11be9c41bbdd5dfeb3a48348c3d61e3113c362d401ad6d16f8155415e003ef1f578f7b5f8f02ad5719788e046fa38aaaab9ea28b4ffe1486b3d50afeb6f8a323c8761e2c5a8f2d9cae4a253241e62a0b6af7c1bd4435ed384f255f39c529e42f8939a23a46094cc953aad4c5867d60f9ba00c3deccb175a97273444e2429e8157e60b111a5d5da45c21d0fbbc8a0c60a333ecee779ffa08876412c79fbb7741730c914a0ae9fd2961e9cb90c02c82c22dfe222e22b99a0f5124e585d5c558ba4bf1fd92388f0840182c6f19069c38ef10a0ead5714bacf12224f9b5dfcd330f7d6693ba678477bb950921b0d37234f14c5b32b2cbb48b67db326d4e09bd4162e0788c595a4e24cc6ad95cfaa70dff02597f1d62b469b5ce96eeb7ee6a917bf98adb945a403351f5b8b42cf79076", + "0xb5716d46b630c789e9cfb067411c3bf6db77cf84701cfdc0efcccb617720768dbea1e5fd28c1635cf50b13e301d462e472d881fb9739c051b36dc554cdd0c998d6edec9b7d5a7effbc3e371f7865f2b0099667770921a9131610f7b05cc457c11b043d467d2391880d050faacc9ed39a071e166b12e8d6c743aaace39eb0c0f6e17bb75c184689bf0caa867ee9ffbb0d4ba64336613566fdf8f1f89f0fd5d3622d48be88dfaf4eacb01d45b4fdae5f2ca447242b8c89e46d053beea4b1b7ac053afa37b389625378463b0482fc7c5e1d58e85f678a17b47cd1a5a44588f11b0cf8d3e97c70548ca7ec5f3b0f1dfa1c529ef6eaec372de270d59d67011f0bad1888aa11e011e175f6175116af5b9afbf224f34be6d32b32af1ea8a42b0269dbafc19869d590c9057d0d73f2a3f4e99dd889cb172983105f70cf81753c424848b8ae81ff3131c5ac106c4fdc77eed133fee404afd8cf8cd52d9d8edfe3f4ca03880e638a76e0a1c941a16bc74b8decf6243bb6858222af684551972263b2143b48d37727f4aaf42fbb726f7a3cdee94d750d53802c4e1bc3224ad8b0001877dd90a42aa97d425aa43c759b692130044846c9452f9505d39693f85faaa448ae0afe5ad8e1d77d4770e3968ff976968462d8545af354608ecdc962bdf5cc672d5c298662943ed6696ff69561e43a6657cabc87f854a65ca43bf5a1fe4f111d7b5be1ea91f49eeb9738f58503bbdebcb08bd6af2e185b5983974c63ffed60199eb7b1fc48e19bfe51443c4ffabc39f8c0615f0c8cd7ea99b9b7d3690789fc8b990bcf6686420b75d2322a2d6480903b79181e52cb2f97c78d592b09b9f0f0a9f947418837355f5aae93542f4f245eef5fb2082a4dc6586d27f23cac4f7c7f2a7011b8f5daee58db05d104b95f07883c75c4e0b262b4a77c474ca3512ef572ce80a6ccf1f28276cb4420e803c73c0a9327baf4f9672139c890f44609bed4d8d43d1e95fa47f4c71f739a97988939f82758f31484ae157b8a60b6c3799ceff7811412553cfb3b3b7315de5fd71574e26f6feef7cc37d0eedc36abd25b1ae8a6a0a904c81b6930fa839ddc79752af04ea681f0bcbe3f298140af9e22fc090256fdc517faaddb7528b26ab5b8fa0cf1f74b83ddf83997cba71a09c9bec0dd3139e952e3e33d0de32a865ac08a3f104cf1a28d32bd93ce4e59314022629a168100b9667f06ca7a03a529e9290ef66a15aa3033545515307ced32b5cfdb94022276476113158586a184eae1c2e3225ea1fd42e4a20a7a8a48922d666ef74dcbcc2a6f187c51576a82c6ba9fe55c9aab132c6763071c74cb4c4916b73b3276d43f129314dba158fabd1ab0dd929b8b5cf79ff249e939276ac75045ca5ee4546afd9218dd208d59375c328517283ef3d798db799cc143aca17072f768d46b42c0a015e754e43c5bb1224b197a513a27491cc6596fbbb8907babf1ca7bbf542b3f6491ed26195b16babb81ec63199d4d568ad52f9b144952aaddb9451320711424b3ec9b4277227367a18da5753700e3264d406081303ae833f8fc4e003350906ee0496668a540126676cd8f3201a736bad77592e08edb3bec7aa9b2fcfb8b4a1f5d8148c67839c59bb6f517319e5fec8d719b31b9181fa6bf7cfea063bcf17fc6071c3da4dbd2139ae94650db61777b9460afeb4175837bcd820b2e7a58a081626f19c7202db1b6e0c0eb6fbf6c4baf7beb4134ec58e37e523019d347edd5358e23af6bfd2bb41df0cb024e70f7402843ee68c3780069686319cfebfe184c96ff6bf7327bbed4eb2bace2edf5e83ad922fbaf131c4ad96577426a37f5b7b0305601372947293c768df25aedcd9af48bc1414ce3b21ea696c2167f5a2c18ffa539a1fae176870d4926110f137cec0358bbb6c8b6061dbc9060df905d6ae53b2cc897ceef9495e2a2720a8ccbaa08a7307835b45422b9cbdc4e05402be24f5c0d5598bb6dbd214df57bc864a2db7dec5752969847b641e27537a8ef166c2fef26777f0578cab2c667cb4574cba78c36e50cf3a65f8d7d834d0b548a504e25756967d8e1b0903858532cf25f9c90cd94459a93122f11d318c86cdf7c7395fe325baf3ffdbb2bd7ebc93efd970e6090f1b6323d098dde2b773eeabc15fafcd8af9727fdafc15a1fab0ada705e4019979acdbadd94166a06717e084936c567ccfe49466fb3f1ec45040d3f45d1f3780e3ff179cd77a7b467e6461ddfaa99e81a6ab4bd2103fb3d2cf1fe1ad98e0f06e616de202142e50f9f88ccf9be8d9e5a2914ac6aa95595c24be3b959774f1eb2e9892320c673b6f20d9438650dd0df89c2a81d939f42f7a4d64753c8d4b9cc093f57a44e637cc6dd651627677963cdeb6647827456bc5e719fef9287afcb6df527f018e037cf04500ef42a625086bde7aa656e2221fd8cd299c6704efa6a77092d738bab720e22cba4c345fe0a6365afe58607b54869465e062f9c7c3d1703671177dec1bb8618e8c8c270e39c8b63a7b24c86c70830d5719b04f8fc173e502c329f4254ead0a17ba69b194411d8b65f0792b8462da7861e3dc41cf80969407533c5c1ea2075bccaef6ea0373ed7431ce0f8808f2b762a261695d256f355daeb1c5eb5eac9d72ccf399adae4984f51edc49053ddd0a6970724f89814f00ec6e847a34f6d2e8ef98becfe8f7c74450d58a902ba08e09a241b88b321627c41d423c1f11166a175ed713922fc03369b078fe8fcd39538b731bf2f27d4970a6875f4ffc45419798d18d4c95a52ef46a7b33a6070d112614e9d94a5984bf874d4402215acc3e250a14d6c1765358cd00aead1eb8d78c68ef54ecb1d2cd642f54c6f45b39ade4b4d46a2efa0233d3c8aab6682c259a1ae84f8ad7e0f31f6158cb85fb7b20179725c8bf4b26c04787f24f249a97918bccee3112722ed20e221024b1413f32c3abfac01615f8b81e6ce1a5696dbadcf49cec6e6adfdcd2e052bedbbb245bc7e1eecd36fccb68c76fc46f6ceb77e94925ee7c20534ba1a8f7ddc6257052f0143f45a60975c68189122224bfaf6f0f7582425a85236fe8eae9e6a4322fad125ffe0bbcef1fdf41cf73503fba4034260ad5af29ad9301a22686d0546df24152b55da031e2fdda34659061086ed747b6a95d1f760fd22c5a8e9261b317d381362cb2db37b8df086b00cd8db7464407990b5ee4afbd512e9415fb76ae85991fb080cf86bc2d66d8f0173e62125674452e3d72bece75d897fe0ad42e63ad1ad82737ab0d8c4ed4fb267ecdb4f8370be507aab9595a4bd147e847d9f659ac1ade2a04d9ce29e5ad61c23cb57e07a42d57a98c84fd94c9ec4d2f493d728270cd96b61ba58388732037993447185279a0eabcac30e906dedaf700c09aa2ab9981aa56d195324db0c1f42f92730231198d83880609c9767e56d6cec2d0a43d1117ffc106050b35e7434295d37119afc240231e0c156e1fb7e9b28a5189e199c5fb8074ab4e92aeb6892894f5b84611b633f1eddceaed0daa95b9228a640e870e49e54825f07d005134ced718e6ff2a3aaa961c9dca9e950cbd26d976c800d76a0a9c93fe56bfd18c0b9a1fc49a9011da83b1bee1961cf6a0ba9b23b881e6f55ad7896718d298a499bf35bb270808ae5f156a2e61f84922aea8df8c16593ac2af64db43a442880225c5bedf33134a9c3d13d8ec28bd34fa86fb0f383ac892115ab8ef65b4ba32291511308e6227945840e994e3078a41e380b4501f6335eb817b346ab9fdbaa44ebc48213dbd7f98cf538f553323c614fefde07c4897fa68c304aa1cbe87ea2eff9add410739cd03dc65e42c820df07fa22c6b3d09794a65dd20c73bcc79dc1594216788f23850ec1130d55d7f948a8dcb9de896a221edad029edb29eb675932c0757a0b119f93915b13b64874254e9896bbecf4f83ba6f84d8f1f82f5f6f781bbc92c440a8ffc88870118d21fa8c85e746c64e9656ffc9f10f29023b8c9623cae5671fd2b310a944fa70502a6296c8fc1938d3973438ff1f36ee3398a8c71c03a0e030fbcee3bca6f9e40fea9ce7141195caafee0c255a267e7b12beed003f3e440f3b96f8bd556cabd1958564cd5f1a437a38823405da7e1ec4c7e1a3273b77ea9dc6162e0abeac16c98ca65c65b37bb13e46a3780cb1280fbfa2a7157c1454bed31cee439db2a37a7e05b4c095ad13611cb638c9f7c59a799d956319e9a29b6238cdffb5e1e44bbb1cf59a70daff9a5ac5ebfb4bd7328644e3b5e9515610fcdc0a2c26624c76c9d6b2b2269e1eef52809b48c5ea4bc66865fbbcee88265d21c436d0c65ee782a4ad007ae99cc0d503f770b7e8ae6684efe1ac8af8c415de1baa4f13775f7495d3a72decb4964ba14b40d425a27b102229abc89fdefcbcba16fd5f96b059a42e9600da8ca22669523ce00e0392f9608a88bc83a3da8a1b6d5ed805bb955b26441fc38a43ac1c0b804aa83ec749c5935db72834df28c1a846b77f6d2ac6c6dbbd0fc2a7ded4ebd3d38b011b69e8325b6b38fe92c138429ae8037f364d436154f8c013228ae084528945d008e6c638283cda2d385c6dfe3dcd3ba835d364eed0445fdd605e9d9fbcf4caca18c134539f8af9dcc0e56df980beb1695331dd416f66d47641d2bbb470faab5d6d7d4473dac593cdf3370639fe5caa367b1ccefece188231cf40372aaf9333774e24a84a488e29c64250977f3b9b42fcad10ed747284cc4bd66a4e74a84f36d4e2c39d86f13c71233bd217b40b41a6dcceccb74d5bcd74db9cf30b2d34ce30a81febebcbac5ad9fdd283a419696c96aaaed4b8fbe686c3b8dbe45e644345b6ba0032ee855226db8c03cda0b87b0940df2feedb1dbb3883b48829c3aa66002f5484b0b1da51141db2cc3f679bea5e62041aa5d248a6e1caa222127a988edae69337832156204a65d6900a8ac00880c5cc58c988e8b5709804f7d352d383c66b09594b431ede215c82b384a3e4e8de0055f0eda82b664a3b5a480403d5714a3cabb8ae83c230aa1e5d88a9b685e5b49146e5e8302bbdc88e6853210ff445ffc58485d512f8c626a17aeb951fc2b49941d7b45516c056b704fbf00a43719212b4b52aed50d52f8de1234f0b14f5b1f2dcdebd13fbb8e2d67fecf885ba8b1bc68d9c36a84a5eb009ea82a6f1b332a17c397d29c5f1615b5bfe809ab779dd32f0a44608b945748a78a3dc57d1a905d3c68c0a77525290466f145a95af95828b79547fa85b5d7ab8ed77424c5a5b1039b4124ccc669ea4a7ad36909ddceccc3fe08e18c5cb2e41792ec5e545dea973aefe032790f07534e5a7d4ba3c916f8657b6bc463eca950b28381f77e1d1421d71aedc4ba3a29b4ec96143f13088f8033c1feb29171c79bec4b7623b0a50805f8ba6f293bf74098befd4770ea25cb58a2d574adee30ba78d408f97c03397d974b7185c0b24221559686c91c1840d1fcafb2bfcad00e4c1b71b56a35c5f8ae3d0180c26e1b8a9a43d158b34352a80826cf97c323ef7783c2321d7cbdfce2de16001dddab743ce72f34504b5574afd180061c09dd1779d66ee14900925492ce41ddbbc58101a97639f6aa0100eceafb0ba27812bfa35ab8944fb342a6a00547d92382cf8c8fccfe88a439cb9db3d27e5d988db1454c900150a352bc3997d18fd35018402eb6c867616d32931c900dae7a16a023d246c7cda31100df4f06e0d44bfa8707840d78f07d67aeb7193869ed83c1cbadff312065bcd912bf9aadb6e23d16270286c6901b209197b2a6e0f31aefcd1dd8f83e105232a30068e9c09984da24e58157e40b74be4afe5c7e202b2aec1b3d985af72e7368eebd61fe9548fd682a8cf2c3ee6d01e521c2b5096ae267887472f3e1fc29d8f65b404d03b5578446129d04da7bf2fae31a6c00c00d5f4985a80f567dac71da7f255b0462eef1d30b1de2b9f4c24fc8930c00d055bab6ab838c055231dffdf14d42c2c55c75b6c7555ef0536a3532134be21ef485cc5364f9da90c900523613af1c87e683bc3f8f36ff4540c6a62cd14c781370b78f4edefbcb3ecabf464a3ff9f3ae2cb58c377df38c76447aa87f57e299d298cbf4f871fb1125a81bc41ac9f153346bb491d42a03fe754ce09e6cec416e0fdd3a170e1bd16abd0a5f5e303857450cd4596d1d843b7e69a306a0b545cd2fd623d19703afee0765c0816b3363609e64d0090245b7db09c7bdc0de6c71381fef6cf0f57b6ef62f72010234856528851d08791601136633794a5bddb2956facecf6a0484de95d10ed00a1982799d5f7617d4bbaee4ade9aa549ba804c17fcd2af5be3aff1e91c0e137eb61dd371d6c48125a1b0ae32b0f637f2ff8489a42edcce51900d646575b2fb257f5822e45a76769fe5e24bf3e1491acac5245041bb32f1000cf5c0afc5ce5b308fcbc7f339daef6d78a0e4f8d8ae8c8fcc56712d42cc959975ba7828908933f7710a04efdbd3d49c2509b0c37aa2092bfd4ab1b1ce69c9be1d29caae8a3c471db76c1450bdcfd23c0f8bb95c4c2191cb19fb93a29a03021c7d6cde359373ff57ae6c3118669ccfb2d038c2ca8a918506065f1ce6da96d2cf10099707d938a8d47be5de4d246847cc4ee5a384e48246935d219fa5cc7bc7174f639faebdf3590cdbe3cf21f34de056bccc6c1bdab3376c8dafc263fe4b6984b56160d5f34c96672a3d4f40038b427da8ae5f7c83785da871a3c7c16f318bea10cfb9969fe640d0335b7a81b8d8b2b0e248eaccddf29ceaef00a6c93bb45f4ecd40371c035a69792af8d4ee4e8688a89160ed5058789de8bd54928198084bdd8f495cf12a184aaa8952c2c6a2ddb7267d4fa0c68ea676817a2b329d2af5794007a2ece72ad86febf4a840c34d8d8483e125a1118b6bb20dac36aa8d416bb647a84c3ef4d9ad4e3140f62b92cc08421d21f0f4567a87b8f23973926573ed50e31681f95f5fb6ab8c3360e869ff42e4797b4562d65e45f8f906146e4f4eeabe70eafeb89b7d6ea7537b6d5c644cfeeba04da1df5ffd577d1e1a6d06c0207b837f845197686d44b22e85d76555e8b03acb6dd2beab4495f5722d2ca06f216c9ba955ef26e3257035e695f360de4f3c00461756affd099cffa1d6dc844c8758523efcf6963316909d9c8f52852c0fa2ddc917e1249411344e52760c677a0bff795d5ff2aaff7ce82d93c4bc3871c4ba30344042783f3f36a1831f4c73641f006281e9f848de0babdb922f66d97bd28a87c4174738bc6a426e62e9120dec08b6a6aacc2879da6e59c664da7306d702e04fd552e35e30a11f577d172870d3a87a8db4c239c646c0d83e1a3e3ee7b86bd7c7151d7b331933dad478acdbf2790e3ee6f5f8e59c9541d4fbf0fe3ed376230fd77da194fbf5481a5a5e21db5d1432c271052d1ad9aab7fffacbbee849a1322f9e010bff3fb97017f35229c6879574c761aeba935059e5c21e3a1d8ea9f045db03400497df8b853056e450ef2cb436b77dd6385361f83c746b86a660ccab5429c2ee27844ec7766cb1d4472233dfcc3e41f5318d660b41c5d0e9bc9389e8abeb63c316bfeb0d91471e0a73a148403a80d9767190425f611e3e1127f3a26a6157b008b331b439804c7ac7217f61d90206d73f2a8092d703bacbedb2f246dd72579d16222064723b2584855851ac5c0dff0d3412fd91d36071646476db20696e5133b841e058330cc3ed0359dfd01e173044bcbbb08fc5f7150af5d62a4850e378c7b65bcf75fdc407e3206de7f98bdee4065262fd8b7b2f2a2429cd4d6033f60c9044afde16b5a9ea2b4eaea35130973b51dd7b9c39ed86b64de030e3e9e23ba68fc34e001d835a9b46cb077da44d0591963e879eae5290fb374778a14f6f2687ebfab2e2afd214a28c793dd7bbcfee1dc9d56410024058bd7896a82b5b26a2f195b482f40d35a35df035712f453f39bf9224acf98d8b7f6a4b7dfaca3f92baf0b131c28057a95ede7b4a8fb96a4240398c021065ae0f643152bb7d22df927a8b5dde1dac7b280043343da58c88ed5f71b364de80900e736d8294d0dfc641c0988e400653563d5ba126ae6bc57b4d90aeebbf7657c61b526898468ca91ee1fe3c6065f2d4415f761fbb9c75216fe69cd637582451c0fc008c62679ef79d03e929c5603ca1e782421a5141f66171609977d03cfb0297a4e88708e26b6634827ade99b880708de370062332aea71ec7773ccf45931d0f6d92cf84d2e1cf017e68d5dd05f7c6cbcf75935210a792633ba2ab74e2525e53be6d0aa8892005101b3854ba2e251b92df717fcbe598502e12a95810873f676e569ebae7918482451cd0d61f5352d1b6f065abf3d14b8f6b3a0aded8f4fa054f4c66d79ee16a326526887d95ffc61fb63336b1da6cbb45ba6a2130a45ec495c4e533847c994ce72d7a75c0cabd8d8ec115a268f552fbe0d7facefc5fdc902af397167607eb76a03b4ac943a58c053bd22452c3279e2f41c44836b2e81b3e9dee137fbb19881c01642b12c51181efa8a645e8daa96a22a0dc19930ce0c8848ccd8ab9b9834e110e5df35c8ed51c456114aefc8a004be834505859e83d1d56e2d90877b8d830e47d36c3d8a539faf31dc69f1435b6dda605de280ab46724455ace3939bc44d3a28edcd9929265099efb1fd6e99f4530b4b697004a1c389cf531c8c90f0b1698c5afb6c4892b1e6596152627366ba8738dc478a66266422d17489acac2dd94672ddfab7dea53c991b2d9a9b8b7352b3d4dd334f924b5c3fdc2eca458f3542663dcd149e06ed65d35c3b36ced65d5ed2e3178ea2cb859553678fcbc2ef736add118c76160b4cd1b2c2d155c5a62178b2518ae6ab83d0ddc84620076ebea191d624aa9398740c7e89bb45356eb0288c79980aca553d649579f71171f8dcb5ce0e4b276ca2b5cdf45ff170ee5dccbdc71db77fbece81b53138b974b4f566047057d7e76a35e72e1d6e8c51b74547088deb77362509e5ad5049798ac25e8acec717c97651559543f3a545809a83c2f01f010708703f1a51c3e58c7b910ef0c4acc64a6f6f8d9b2585274966c093a49109d3d84c33691840ebb93bf86545b43ea47480271568113699cae85c9398191582aae0d523c84ecc02641a912a28ef26e240a676caf946df1d991e2164d8a3228b201766fd5ee98c6bfc34d0263ecde208e27eb05354d1e90b53df44b73e3c3ec7a55066a37225a8eb8a095ddff437b2d9221230f812a7b6b4e93c880fd702bb84fd63cd8a10b642d68952b5071a0e4dd45ebb0bcfd14cf08d045944dc557f23e5c0a076a18738c7776ba1443564ecbe1a0888cc0fb211856c7c27522e8f713984d9956074e9b8f7c214c9e472eb85c3cc26e64286d95bfcc8e20017f9ff31ef8308288e4b8e46fb275d1811eba98c2574d1a2d251f1047917f704a1f042a2fc6c60f8834f9198d9b29264569e002ae209b638d009a5c6fa75334dfd889cadf1e5c91a9c9151c2160bf4e3c98234071392986ec93928b7b0f33fef31367159e8dc7f1caafdf2f760b239d89078ece5e04acb45d3e9aed56e7c7bcf85cfcd653862915aa9d0da6282ec0709c336b5c800f1bb383790f1a69803794300e4dd7dce1c63a86f2d3406090f7c0e32b37fab7daa63c9195bade112e27f844ae174f808f32c469ecd70b35693a96bdf8e1eccd0bed75ff439242b0e7b0af25c2987283c3d79274b9ac10e0b2a12792bc0ca828a61ba78fc6f9ae3bc234624a296b13d4099a8891c2d9da3f93a301f070b9faa0d7bc823d2c1da0246fa96ce7979b0b4aa406edad0d741091eb1ef60b2d61e9a1f894ed20f82af0487d0127245cde657959552ee6cd52b1740ae30b6d197aaab4e67ad7595d96ce5768f04e0683ed9cf14742f878ab59e293ac64836e4540c56710ddbeda8a9652e3c806a8ce89db3c3c0b8b62a81e7217613ae7f9264c2f0d4bf18e1c7454f731248b878b08f8ac289ef56e9486388007060df92e01e1366614a425e4c3660759a087e133dc86af967874ba2b2093cca3c9b8c323585e062facdbb02decf33c9e103dc569d8e4d6e6487b30a60a7e6d1386667830e0d7e3bbd29ca14a86caad7626ec011492becdaa5a94f22879f91ad8bea259e8edfa130cef6daed9cfc2f86538ef745279cd11c64c1c83d0298a3b9ccc4680f86668cded004c17bc44767c5117e07a9c0d79fb668b61a840602d995b7319f574e80bfcbf0bcb9bfdabb4404a01f74284254864e1f40a6712a9317a2f06ccb6b7464e5df79ad5b4f3edfa0b831533a614f7c402f36c28b54bc684c89d97395333383bee600c094d42ec373dac7c26126a5fb5dc6ceec1bd168cf01b5759eee0cbee9cc0f1cdc6c8d5b0ffc69ddd45cfd8b0d2a253e025d6031e93ed45ec0a4475bf5fa70abf857cbc1800de323988ea21a3742835de4ddccb2ab9059c9c3a7a84e5faa7fb1dd8073dbf5a3d04fbab6834817d0b96a4b52b5bbf0d0fd98f070e793eb6f9abb189c7f1d62a138f5db3342d03665c678c8bd0e33935d3a8551ef3269443f80dae5807dc6424e2774d30437e201ab4d7075459f4ed2f6cf4de998a9a9ccf1d62a0ffc0efd6ecd30f5b031eca6557412a0741a841975693fffa9c4e1f772e2a4ed040f683e5d35e77595cd9f914b4181dda151ac4a687e5147603d62b8cfcfd530b013d51c386a66e5ae12c3822cf1273517e75b6bd06691d9041229dc1755ba07c20b324e5c25c950eb317fbab531362b679ea84dca00cee32504277bae11885381b8710a1ad0b21f35502d9b1936058caeea00d353de9a925a99bf3e5f06d51b59f617bad3f8c5604ad3dc3b66638eccdf8ba10217edcda5f2c04c9c8bc61f77a93dbff4d3322d268190cfca3bebeffae918207011fb0315543399dfd4da45039d1895cf742216f20aa8fcbffcc0ea3e9d40e3f1511919c4b82c67050d1a0cee04d4db7b7250303389d78edfe1f064ea6e25a8a7460bb4473ee9ea6578cc9b8d7daf6735832033d104d7640c9c23e9197fdafc505586bab979544c2faa24ff885d5723818ef055c99ae38fea6d0427e581b2c5f3b702d69d01b329b085f8a89031818cbb1df7d5da6ff3d851e7526e1f6ec3b9d2d743f8d59fa812722eaceaa6c61934f7dff07443bd2e3890aca437a813bce4b3a08bd3a61de20a24f1ef7df80492412b5b0ef78b08325d7cf33e9a4bfbea267786a15eccdbd50c556f49fe441d7eebb124dca664d84d2b58a0fad6323220b3fc3673549ea88282fe975f6cd7cae801173b11d091787039832cd9cde4e2e5915b321ab34486d0cfde36a8ab0eac7265365b4845e89ea650fdc0cb85d6dd651d68c37e41fc523bc7a324650476f3938baa6aaada590328f0b82e31a88b7334868a12a6026b85bb32e561d6a36df31cfe8a5179e9113db5cbbdaeba0447422351e54cf6c3046f754cefa62518634660dc7add3bcea176a4481b94ba0c4bd930d3cb1961937fb693485d32d7d7999547550788046b3dcb5a01ab595b56aa53a4ba88d8714458fcd5c883e07ab88340f22f563aeea5075f1845a3b5e01ca84c66857460b2ef66dbc867abd5ef77a9666345246873e46e84ed97f99cdfbba8cfb2075c3db66d83b7502f1b45cc3523163303141cb5979980672d95604d36b22552e836a261de390c2d23f31e62f5a0a02cec4bcf20aee2c00372514e61b37ca2a0242e8cae268f2d5eb7d6ae6820035942156526251e6693c084d07f87fd12d3cf8af2cf476bd5ace35267758a02833b45a7a9edce619db432b61dc10e0103b0f53e630bcf9990d31dd38ec6f54a6b425d60a3ee38f30b445f0f20b9ce511eb5b03784b587de6ae638099af6958e60695513fa78b2d6fbf139cadcbdbea4ca0062c2c4c66e2e39226d3a2320cac539a16c23a2b8610f4a780fd489fe5853e2dc40fd95b37bbf0fa58a9dcccc45cb6836830c5b33f02643b0545270edb0de2453d55d51b3e48e66b53ce0ca0a47e0f26b2adb7d0781aa8fd74a189f13576537afb9286f8dc5d94d19aca23fb97429f94c52b01bc6c9ab30d6a9326db87f303510ddfc0c6775a3b26facfa6315872ed1f60f436c02a83e8c97095fcc066528d06be346c44a2d34b3bd6cee82d2535aaddd3c5d8cf0f6fd89c813916b9a885b01a5a9ccd0645e9603a2b7fdc346f67fd5cd7d5a8cadb984bf8c9f6ea99e4b7c49986624872d3c1962e02b96c576934f6fab96aece0ae8f5acfcb8d256e94f60813f5c3a1bfc8bcf1b377a9e070aa9e4d632ce5db6f64c75097f3e4b49bb37823a4f8eceb6bbc011a1b0a1ef2572ed38873b8b80a5dceead1f4f2e9cbd10a580afef7df3dfbcc6f829e357d3e2ce86ae923f43c74b966b4a3ac2f63a8aabcc9b44737c922fdda8e56ad0468d0159c587ab2948f244c88a7d201e1cd221418c3b982cc1e5577f65f958578ed0f05d9d6ebcab015707c40a7ba2124fc16576b66923c610fc7a0ddf9dfe6903464516d4ed10a0a460224955fe35289f9a489332546abd6e3bd1ffd0fc5f79fb0a04e131f50d378909cdbf5ac2a2b5cca44018a1cdbce303da9fa117846fc90e2ebdad135a7af3d666c4c64b09bf2ede598a9f71ca86061f647f0e6669129f2036769f645557b75b1b7a2e4a183cde04e93ab4b9e63021f738f221bb22357a289b64326000496309e292bb73b7825c8db52289a7df90baa00b4b5383eaefcdab4a786e7cdd8ecac309b54adab59f5510d47fb91e17ea4f7a64e3b75a40bbe89322b6f082508cfddef1a62f166240705891807de8147eef2d1fa2a5cf67b4fe0f7a62d52e20e12cec90bde92014bf677aea95fce301ad6448ebd1af5be7f1877f98fbcc9cfa11a739f09a870fa23fab6c1396a7ce2aa69750cc47f8050ae864f53b04e679eec0b2b8ae3c5415ecdb1304f1aec48f84a8023c99d90ec760dd7ac0119ed524f07547d27b5aa7f051e0839ba028976d22d35e177f24d9d33b6fba8a42f4c8e458f7e6119f14f384361881d4eef7cc35c185eabc7ca33c6a3426c20be47509f06332197471f268ee862a1ccfdd201c2e3d51eb7be5158597a41a8f0084e0fd3bafb34c94e030d0cc2d06b7ef25e939951a784da7e035c1b52ca9ed15a31a52f7c3af1deced6067dc9c5e7cc9afda9597fcfe821bebbe8f0a2e379cb736de4f1e859b45d42e56eb3448389a0c1b9682de2f4d04ee53c41607510752422633b2d0c254b5fd4d651db02b8591673b75b64b205d14a3be571f26011e1cebceb97defa9da9ba787f2620a42d12c2396fd4d06e17caa78a27f8f4aec35c2ca80c5a71050965bed2e5058490dffefe0e622bab9a99ea38fcb7dbccd86c425e0004796052e33b02528ed70d51214134c9a5944ca52399dfed9654f22860ecd880787c2089f0787726dd3fe7c59155abd5579124edab81b24bf03b60d674c0ce3c1b00826640d4c4f8c763b48f1f35bca6d6fd4cce27ededf46125affe8de7ec9502c6e98206aad2127d22b9f6a890a796dc18523327383b588c118fa8c93c29b47c968a7dc87178f72d879c35aa48d5893dfec6c3324dc3c758db4d91bf9a6d42fb9f00483bd6b9fb8309d09d824c3105247c27a737796ae51643b7b1fc44282055ae7cc6787b383d645ed8d0429f611d275a93e25ea1ace341d9b746843a110bad09c0dba4fd22dbea4765b7d499fee6baa657d9e61c2eb883ede9489e4f97bb2737e3016c777c4f6aaad1be9e53f912e79f449d98bc53c8f14cb5b58c8a3eb460538b1f6ccd4641685586f7181aaf05c2d7811f4cf8750db17dff4726737eb42bed1503ae8d4914e7d4a02422f4a1decfb1b74b1ce1ffdd4a3e006b44690f367289559a74fde26dd99ca440d0f3b8209065cc2f6723fb736fd80d6c3bba0b9eac8c29765825aa29b8bbf7687d945fd922b5bb94d92ddeb90a8c8cf85c149c5f39a62627f70892270ecfa59ea7c100199ad3004651d439cc5104887a6dca8261f5ab96e6633617ddacd3d7272c9154de4a0571b8fe05d2f8f7d46a914108ebcff9c2c306f567c726c97d032e12d36e76f30aa5641d47a25f759691a83e10b6397bf9f3550af58144935c8dafc83f3eae8af926997fdc91ddeca8dc2eb6d538ddf9d934ca7c6682cad96520a0ceda972327e5c0ccdde4d677895ce17058e4e42451e933173d0b98b647ca44c5ebe5757e3b7ce48c6771829cc55f084d10aaa2f2a8cb63c993430f0519762ebc37dc6c3c5b97abb88d6f7073505ae3312e2418b60c247c860a79c64e9f69f6111ee26a05873681ebe37f411e4d09f98d09a21c7b225d106f5d12bc8b5c7cbada02b72ab4f890a9d35b741a25b40b65bd5a98ab05d6f219de88af277d4612893cdd821b00f48a4c45f9087e2f3ab83dd31e6b26e8f470e9cad9e98eb76a7a5947a5a11a233668b5fd3ee9e885703cea6b70d2dfaefafff641d28647462b338148c249a9b0a97ef2cca4e2b7207e422857d592d12143e8e9bf278273471d70a8b6c163da017ed1132a46daec9d6ff67f460221c690c26be854e92d3cf10eb194087e76ac3910c165561caf9726dd3a1ba7d9528bed714a123352db157c2e9233ccea33dd2e12dd70c29b61f97c6ac6a48b978cdddeada68d60e53825d9ce1f77a373835e726f06a34c5f4454ab101d4853bff790fade634a626860e37c83186833a0f495fb4fb3b7c23edfb6f5216ac30ecadd04afd8e24152c7adbf902194aa154bde07f9074e685d569f634a1f361d6fe4f2eabab2d78f5b65c14d31e94e6f287bd85bdf63c407392e952afe8ad01c162fb6afcfa09cbe7bbade1fc808c1063d83d60fbd4073794b47fc47849fb02e4502507e82513b0fd18a8b3b8a256206ad0fbd04b4c3b6eeab9444c60361ae4f2c3c6363ed76a3b7c0b3a41649280e427fc30bab236a3c66cc3565fa3f707cb50fa907c12b1bf42e1bb8d3df571f08ffe6d8f492a9bf33950186a9c782807a775f931c7e7c7775e1dad2106e6f552dd58394e55b33b1bb41ea2e9721837768cba06a942f423abf56b5071cbe3e7d9c1aef8459e8a0866d40f6fa75ddaeaf5443c2cab4f9941eede51732df65ca64a492d471d89b4a96fc0ea321d936fd8df4da8bb17538891ec5f12c904cb64a35c759f498520f1f8e572b3c03c4dbeeb0cbf55c67c4fb1f9d295596cfc8e3fe3673a57218672d2841b308995d00a63e4ebd300a3ab7a04508a90f25758ae508063f3de79db9a1f106a0a674d6c6c67d7e710dd6f5d4144e4c1aa1eeb13a8122834e72cfe600ce71265a0ea2bed8e50aa1e3f7788e76aa1f5c9e88a6beabf369c4ab9ebe18eeba235dc7ee0958a05419b67b80d11004f9f383e68ef80efb8083392df2b57068c9ad7add0189576d58cb7a9bd9a71924fca54802a1cb5b71ab954af777b1a2e633c8c6946f25a0e15c86482d1c9d4a3081f6802c495fb10c33eff8d15f3e7de018499c25f1cb59a100bd83b5176a847e89c8361baeb274bc6164540653ffe1fe79f79d2804d9da016e19f13c61e22a420632b509ba16f10e047cc2cba10a5f33df35c2b7d0cabc14d1919d1a8edb70626e3d75016dbf1cdf6b44c8de5a2a533d83fa3ba82389e2c367bf9ab9195a3082b287540a3fa2dac73f8143dee40cb7df83c667b8eadd99db832c7820e4465c34cefe5b07f09851771b885d783c16930bd1feef8d43ee0efe4a15f61995b411561507b130d0fc4d801a2962647fad2763ea23ba1c843df3bc2287057697abdf5980381b3d97494bd12004fe14111e165b1e67ee7a71f238ad25dfe9e179124da68e4b380de3306d1a8304eba27657328222ca036bd7e9e122c24e1125371062a692ec1a9bbce0f247e1145be3a7ee83b97aabab3ba7f670d4a0644f51b4ab6c32015d006fe0b05263fdb7902ed1aa6bcaf149bd0dba23813f73e260642fccb90ebc3f953b7fa268deac845a399f496c20e2d46aeb623ee0df3e3dce91e0f9f2a6f87c93bf30a11cf15579512ef49a5cd2596704fe7550db936b88ddfc652d38e4fdec031d3ea4a2918dd6cb6e49544423083069bfeb73ab2f645b5c729eac9e31573d21c5b68bb395ec05ed7551be9f57139a52e5fb3bf19c802a37ade8c294d7b8de9d138cf2e27688816df9b168ccb0a612001f26a0ac3886afa6e924d5cd0895d605e1019d45934a8d1e6c1772b60f1fcfed4dc8d2df5ec2f34b057171449459f892217cec1c318e8e2952b0146c7e681fa7aa4de60bbd4db1a254b61c26dce7929bc07a36db94cf92c50c987635775ec81e464027bc5ca764d264d4d1fe43129f7c0b8b8345aa5e2abb433db8b864ce6370609377dd84e22c164c683a46555f62049e0e0d78846a4eb6b488dcbd68b03728aacc208cfcdd93c20b3a311f4b43cc649ce72f9734aa68f46226ab5d2cee0be539149e12969eddcad6e0bea1de2c17cbf270aa3aea144ccab86f2dc190c7357cf52bb7530f02a8e4ef913f552f76ecca8ec00c1d8ad10eb5722945b7d992ab21741334fa1ac139755b295bd487190b1d05295a3d7582fca6a2fac4f2ce7a2f4e60dfba3f2e4ef0f9fc0b2126f201d1d693f737d9eaa905cc65e9a58f0c378795935dac722360b6156a37087742429747569c8e7861f9c24bd1e4b1c7a3c894f80ccffb41827e7cd0ca59ff3da23960f056f215d394153be1099a9c5bd674bb8c39f1f899497bbe71f2becf09b3146bb3d670dbf2544da5740025b7e5fb22fac15cbce08b0ec2e15701bbb5fdd12933736bbecd38babcc302714fef92f7bef54f435c718ef1cca1467d29fe2b5d68fb9a04f5fbe1336c21eebcdeaecb81280903c9d7c41e0fd4e734e63cf6101f2a66a45497d8ff694ee0d3bd3178fd96fec72cc1459334d75c116f61cf28645517be54cf664b5b6afd479dd045c1f732bb1c1f52a0a3ffb6fa6b4aa8c1941a6128fbc5aa6af8368769cf38e2cbc5f25955677c01783dcfbbfb55a7c796e44ead916f3777b0eb38a84b8a230d6d5121bf3ec44fda1bb248d44fee7d4915f878ff08c83cd7da7e06e162fbf46b0c182e63ebf0828a4be548afd458e5ec5b6c5efa30bd82e7cca0a32130818c70df9fc6df1085c1a5b4e4f6cec41573a8500fe7493325474833c16452d188e3763e352e8afbb0a8ee83f1cdae41b9d86641df4dde05ecaa5f6a74c855b9f971cd9b157e9eb69916fb3b264c9ae9e9135d3abae92744a03f591b6d7e42cf7bcb74d18677ec83ba2009073f52e1c4bb633ed34f708c8ba3d88e2f948a3b8db1c166044dc5ad66ba5cad92e413ff48a63de97acdf38e8c3a614fd0d14162db0e76e5e2c9a1479293561e98fdf3ed63044ca67e23921a248e5487d5111013f7ee5d131f1847007e7a0f48f0f09e37576d9d908f61c5c0bcd92071825fd7efb55ed25a19704bff80968b482fe1d42d3b4f6a322bf63c3d864b9714ae4f779be216e7785ce8748b1abc401e04b1d545024412af35d2d2535835cc1efaf04b44ff8e996c9d0ffc9bf991f7238a32e03c60cb8df19d75d080ab6eef3c7b28b5f687574074fb35f019e0c98a1c5c01cccfaef28ff4cb21a81ece2d84439bfda4723a7393d1298224a469c81d5b845d5ee1c63b731f31050152070f777d6049f8919adf52b2851c54930d2e16ecbe9ea2e227e5a85db962eb161e01cf473236fdb2d3c79256ff749ac8658f22c7ba211242f025fb38dcca7ab6ccc8badd510426648d82d080ddab2f0a72ea33f9c3ba51a689ae5b6ec57f1da6bd17de03f1df52d85bb88bd14f58a45447b162a2be82484cde45fb3258508b9c8ff9e9b74e2c70997109908edce5e75aa8c23758885b0f70543162b251f2c980a928f1ae80fdc2c615c81a4523540e31558d43188a68fc237cda4850c845ee7b73765f035d6bd3e09b1f6b20fd444970f51e74bfffeac08542379e66137e7866b0c2802212bd603048bc27ac208035b34c24facb873137575435953f4f0d22c90675551a83ef795de0642764da81ae6f1e8b42bfce5787a34fedb2aae4c6dd9730d5d96fa40d42cc674e8b1caa3ac1a0df6ee5411cdb123131ceceacfcccc5ba5ee24ab52088576102dba7a1c9cdc5103bd8df767d3377462c94a474dd546e6cd8e82c5063d068046efd05c757c54b8984c548a50f8aa5843680a9046a4f6b27860c5815471b82d7403d9717125c2ba25e3ba5d6e2a4a27a57a1368d8103bb87adf2dbdb3f1de43becb97ff9a0b558275b1689e4dea7eb063f0a1cbbb06386decf76f40ba2921ff80725e66746d448147a7bd27c74751dfe6c7c266704a559ee753333ada300d3d79e7995f616e470fc6144d261c78f0e9e599dc3beb0ebc517b7e968985719234ba6c468c09f51c1684445d8af3552d12305b259a034bddbb8766a9d87f6483be718a75530ea503ced351694aa357fff59c592a64188aea4374b0f08669091a2ebd5ecc102ead438a88679f756feb0070863b49a6a7285c98f171e363cd1c72b910e506932e6ca39575436216a9b4ee076e93367dd28a6cd3396770393b0b0c72f3fe6fea2820f11e3c53c7e4d6d72af3af6b7a4c07e09aaf806d772639484bcd11be6a8710ed7f353aff1bc9515f3ca56508ef444c742acc85124dc915fff8bce8adeba88f88a1d5acc05b2effc44df0d9ff453be464a2017b553a3ae50abe578ba1fe1a93c230055770ba2413d9abb530b481ce47cb4ec6b049fbd532c2af1145d83e451ff30a0040d31f5404914826242b79deac16bca2ba2740d8316abd841a225e89480f8f745acba4be1bc53c93f93a5952965940b6fd7d2fc6761442c96a0ba4f168c826d026ba18534a863fce0f06202f26c6714bdb9ddfa88341795e33fd692feda1b69ba2937e4f2e81301aa9c824fe2b71aa7ce916de17b1e102a3b8ad9ae9525b2de816d88c7372d690abd20e8a8329b98ae8eb0dac133e3562dd94333a5b3265fdca972b2d03f1eb07b98b82cfc4c75b75767e813eb0909b80d46f8bde416d599aea468aff9844fdde1b8ea4425f7659102ba41a7b8ff1982af8e0662f1cdd97fd1aab28d6c8b09d84805aec872e2f44c80cacfbc22b4c398e193ea96cb81a3a240aafe737928cf00a276afe1543987b4c181e1c63f2bd7dc1b3580de512398a8ffc18e4dea29818a633a8e1b928fe250f45a224212efeb13bc46b0d81848d09c5998d113869eb41348f945f117de06ac799136ab6c1e85d5933bc4c3941dfddcdc86f01eaf65cb5b057b20412d60a91f150319b4fb2b506daccad709a26982cb59c2fee48b39c97bde0238983f873274a0da0f00c82a71a63c84e8d47dad0840f51dae3dedd5a51214496c3805e5d4d571e2d33825a3a31fbe19b07753852fa6f56fd66ebe02f214782deaaf70d6d83ded485b838071e418f02ff156e12e6fcee6e2e4be1732b03bb32ea542ebfbb2c6be7d48a2dc0848c6f78cad50e3d9148aadaca82e78d35edb2c4e5533b53110ccce6f74b50c490cbcfbfb24249ef90844494bf915728ab5a7f4fba4c8a9ac99695c23e0907c4ea8b47db883ba3703548609d6cf540d1e0441ff344245c6b1bec9d5de720a91bcbd3543cb725b617f445285bf543e50d75f1aec8e9aa4208bc9c7f32c78e04deffd5d53b43afb0984a4eca0290fd3b8d9c72f0626440a6d618341b08d571d7aeb9eb8e2255a5d2a34db5f515a60a6f2ad250c9def7834265a1a112b68460596d2918a8c188d3f2d3fc6660efd7a95ebf9498c58360c7a6c2db354df9262eb1ae38112f9b8866faecb59f445f35211cc71c7291f428a5b6233de47658bf177b08e727939ab55a676a61cfdd573dde6ed0337c7fef44cd2ada00e07d1802eb492b1672285ddd15ca5d32a7eca976d04fc0975e079f13d50d9b777714416c9e20cdce46a60a41694a9d13b338d1b3b26fe4936b407a2b9a3f15894634b1a7fdf7634875a9bd6edf21421c2908d153a7afd5b9b36bb59191f3d761769643ad813cb03d9e327caf671b77a5caaa201204a62ae4a169423f2f318987c53b0357284e1758be24c00b271a97dbcbf0a7376a1ffaec104061156c556ccd80e56f542303cebb47c88f2875949be4b7aecb3e50992dc2cf9ac0a3528e38e36a9bd2b28224d3fe1f49267fd113dbf5303d8a3cf2c6a3c1b3452e6265603f78cd29a26b93edb91477392cb1ebb417f33cfba7a0360c2387acb4d73fa323e32c949df7aa868e44f9b20a80fbafa9dd7088c9eb1e75071c96c77c1aaae9815dcc5ecc12c01aacce239b968e09a7b73134ab8b6bd335053c89b5d8e46c75fcd588edcbeee96ae0870d86983babdeb98f8902ace8f3ee88cfb12d26a60e4e65c8332776e671bf377e548a315a2fff1b390d27973ca07fc8f4508068cf897966bbac3eec68c633b078459c64b564275fd3be5c3fd5a3a62e9ed4c2c4e385f0fa46002a10be874cc1a1d60f99a883a79b567a9d98413afcda64c2440419726def6af1b20adbb823d3015d2e1e4882b9f94b30071bce28061f2b3a671788235b6b35e7e5c44686a5c1c9866ea11995e3375c77884631bfd5018f3a848eedd85964b978896e0e55745d6d6464b75cdec7252e519f1a48913fbe2c114e20fac50b26551196fbc90b6feb8d8aae59e38dc229953cdf9be2fb2442b1a0f22633881cd148675aa2b0c780a4b496fc627af3ddbe0fefbc54a0c677b1bc66591f6327c1d99cbe165dbd6f5535dda0ca12e24552f0954fcfd0dc7498e1946b062e9a83408458325e6de3d7ca3dd063948e5620fde2b78c4e22ac1770dda7858797be526e70087e7ad452667ad24d26125da8f8fa480c681b5ee7b22e63de9ad445ad0f650a950164d9cc6c83fd07af88ece40fd3edee10021e4987e767bec9b647ea7c351769f99c8808a8d2396dcd540b8f9f742f8f283dfe99d35c8e5da41d4fe19cb42fe824642f27977ff84241a26e67459a7e4ec9761fedde2cb423e74432b6410b3d355540e3389d7c1e100bad2ec5ef06e06eaba6a8ec5d3a665d55b06aa5962c01499edbf9d01ec384576f03457ecc757011c1354036859a699ea54e97f444e38e5824828daa0d5976a236fe1560fc04da84e3c096c75a8b31f4a787f97216b7cc8bbf5dfe5c9409365bf40be2370d59e1e36badd97a18f56be80f95f8893787f703f0b47020d46e77775e7b536b7cb5da03d1834193b1c173538c489ddd7a571e32dc0848a2e6f6e2f2ff27f520c4cc2eb3a4ad8459cde5defe164d167d4079a57d53ebb4e995e29419d0cbb8f8b418dc478ac561c8c84ef217a60436a3e2eac33a0fcb214c7cd89ea278bf70541e22f47d0021194991092972a95ef206ca8205f1abc1c3717e8b849a54a25530073d1da6189df07f6adeb299fd66e5bb8b3dc9f114a4106ad11fbf1d72ba838bf9e410247500b128f14df0b53ed8cda2b2d0c43e5c3345d0fe6d3be320dc7b6022131a3d29762703ed53f93ba5af0b6a16767dc03851e0ff98ffd996d74fa02d489e9e3654bea5cfc3941871d69b271ee2bdcfcca488245991a5ee037a7cbb0ddaf291c491b27f5b9fa24bbd52234a4aac176bfd5610989562d4c20f4a1378609937fcc799a58f9d98d7c5cd6b8ac3a842ad53560faa882c818613840d1ae702a0417e5da9f6b1e279da6d87ecd383630b1c60bcf26683c7c3418fa93277fc17c590c83b8fea470aea435ec9dcb2a0e41d94bebb6e66dbc6b5005db2fd920e61a2eb1e62757db5d2120265ff0ae7d63675e66b9e5f1a28d6052d95f408385c26bc18dc16c269e63514098684454901f6dd15bbd27278c590828cc3f4a11c83af8da0ef35aa11c5d5d69678d56dbfa4cf8110d7a1ffc5513657fe6840cd65094c7c7a58cf4e52c5780fd12493cf6b659332523936d058306f7a2a7918fb03d6ebf204ad1580885a9685cc2a5565ae8ed3d65131f294bc082181d1deebb600b64728af989c7f387ef3ee1c5b4cf5f98e159ac66316fc294453473ff4a1dbb3d899514956e75bdb2d4ff2e440b52f127692c20347b8a7219423217f0cb5165e52e643063847bf4de91e23fe921a39037d874ee4a8087c4a6bca8554ea1cc4d59ad3c5d7250a4c3d365b0839c0674a067d16bb0126eaff6780af66a746096dca0e1314f517f9dfba1f5c80e56ccb509273b6963bb4d7c95a4e8ea4074e6c73a26d595a09992659c9afc513ccee69b70a0234c1e71a1b33a293aa54272255b41d5ce722be500db65979840981cfdfc4d9f1417b5d7453cbc3d514c8af571a2bb7e3a1fe136ffeaaa611da4d824f943647a899a7efb14b4652d8fe86a17554df36edbae74141e0064b91797ee1e1db0307b7abdfd41421de0a2920b28379a8a704cbe920a2a33c81bf15b4ad53aaea724f50e03deeb7b963a5972a7c0354628b93b2339389869fcb253fb5ae600597e940c867ffd7038b7780b44ead4869dfccac3844ecc472450068b4cffc1301ec238d1a9b5f313ab0a44858d0623013c9e678db55ffdcfe19c8bc9cd98f01e18bba9663ec4e93ed5058161eab7cd31d1f06e47aaa2a325906d29126992fa99be222b56767e73f8657ef43e6466b3a4812cb62da93c374c48f75b7024118435a2893e40bc2c02ec077546a513c4fe4c8ae5a2b220ccbfe16c69a69e5fc01c9fd3374ecd9fc85bc2985e88748299dd3c7560bae5fde6c193782417b088edd9e951d4bf27f936eeea719af527695b726e10c3678015f0b47a5f4417baaf7d796eab04482503d7decf08bf91bc9e630dfa78ef6b25cb4d940f2832022893b772cf7afcc51c13da60f10360a79f565a75e1c3fe41e28af467543fb0eba6d26e2ba6ae5da63ed443fa3e70b6a19f1526d4c3be10dc50233ba7ad308757b9e2ca5222507e0c112e05a43a981ead077096f0b6f22c294e92e67186e0c9a09685686cbc0687caf127af1935cc28de0883509a418f5eeccc125343df6354a549e3c3a2f047e6a1af3ebf9e65d36cff6e617c1090dbb215fd346fc7ae2f3902415150c22712d470b5f9dd349db59063599da10f1154072714b16ab62bab1e28324cfcadeb9f221072535a45c5be3ddc46bf5b9fd6d84e2c3b9a5f46b9ce64ffe2a408d7343d1fea4b6d98a48323a192e6ca24fee4557fd04915cace9ba739b7908601f8da916b415a901cb230e3d22aa6e62eb8d43c1bd10ab50fce9da524efca3952ac73aedcdff37d450156e58192889913da1fe3e09acc32effc7d494224964136b9779be61dcbf19319325ed6191990b6cb884cb468efab27ea218b05fa4b74384a29c65fbf443bc062adb06e523bbe070cbd4badc7153b1d8e1251f02728f4546c90d320e3eead74f558c628464d419ebca65649f7337ae4c75134fc89ce0787685edb9938c7c5b2c1307c577410a8d93db9e9d7a40f20634760ade7edf241b6d3d8c7cc210e93820086fa18e7948c2c7c65b04e06f33aae66dc929261bd7f3190ef2540693c225bb39be0f9042bfe7dc466f19c4f090604e91202ecbddfb10422b5abca4abbeeb47a13d1333765fd62c3a1c2b349e00a56ae376b32d1f9593085eb1dcb6103749e5190e31694262260f749c0fcfe75f0d475644cd8d012e8c145a1b736321ab61aa77a256f576c25330d79cafaaf9ed4226b097a83a1652e7e5996f8282083bbeb8e74310890fbef2f8a0bc6070f6cf8ae33092aabc3e146a2b33b6d5142c2fde5d138c0fe28659f4f6511010baa58ddeccb1eadeb4c489be2b9caf5239226f57a6e2eb01a2d4dbfa7a6ba23cfa6f9294774068b6cbab489093ab4e1c8a0f0b87042526b7dab44ebedb4eedc178a0b09851036b154992f1b83a3439850b26b5d1ecd8d39788fd028111e763722ead9934f18c63b22faea37cb27e4ad216f742748945de6b755309949b69e98189b3676865a157c4f59583d6ae8a10cdea6d2de4e79b07713d85bbebe16756c0647014d308d76001358d3cd59c724d26cc9314c0415f61c1703034c4849ef7a3bbb8032b996a2cedebfe7a07f88379a8dfb139504366d5090b1ad1554c6c0e24e5df754695147c772aa86ef8309f3e3a2800029771e19d90bbd0b799aa9e4e635f8715b423aca5ea43b74dbc363afab052d479f11175c98bb7c44c1e014e612a760b6de303ea132ae0ccd18cf5f04073392ecc47351fbdc710febceb1cd862324e1f6edd4bacc240865db6755ce757eb4993cecdc854b19dcaff75789aa3633f1f32ec8cf4b1c33f7a6b3e11bc60b9c935657553ce7a303a2733abad233be90aa7e6209776e3bd6c08f2ae5490d895179a435a251ea39933e76bd5fbb97b6bfe1e3d24c4f9e369c097a4cf6c07994e1986933c7d543ea17075b32e7f7e05d6bd3e0f7af7d8d415b51dd56daad743fb000cfb7d82cc46cf5e398e3534aada0c82152586b87ceb2265cd6edb7e3602e570457aa3daca42ff78895b2d3ca81c6043c4780f4bceb787f91bf36e8802190bce75ced8c9395ee01df8459e3184231bb46236c257c5bf4b687450feae726ea16234f76be398c676b6f476d28c1ec0fb0a99a4af24d2620e83343b6850dc268c50c8084d4a0266982cfbe55918d955af9db869ca5d26ce8155cd6a0e7d62dee85320f29581671473b1cb288575ad9c5c4b5d906b6d1e29e9d320be5544a02d82551080fccc675805d4641fefb0df481bb7e145cf644d07a0d976d32611a0175fcdbeb2622162dba3e7b933f0e6be897852308c9474ed9b9477a3116d16b2b733f56b6d47a5a4c673ba5f2a29f8254df437bbff41f5b620c79238799dcbf305ebcafca353c1db59f39ba92efb4dae7985d5a461bcff5f60cdd2dcd52b799ad124e3f36ccec0222d70b3f0d910afc6dd116763cdd295465b51e021110fd55220b10bc2c9280258bb90a6ff72d0232066f6406960b25a078b90f3737946af47fa18be988a73b79603c98fdc87edea224a85ea9ba172db0260dcb2fcc852aea14a1662286ee436f84ae7446b51d87d5d418208a425896713321a619399b81b92e41760f48055dbfe498aeda10549a51f81a61760c45379f503445c14bc81c03aedbe0327cbc6744c5ba5e9495abb9db3351df7033391ae2427e9ebb99ab9d104e3632e0f8fd8488693010887ffed4be7660943affde6502f04a85f5067f4ec383b90d9b1b550a38804b70c9fc66281d7bbfd7e84aa5b6ec209b87d5f57c424ea168469198a9af64bd0ba87bb7ee2502f5e82108b47db81f00a6341a399441d86e0b0cf4c8f448c1d1a4bfb9f4ef7724d519509e6c3b8ab742387e96d0190389cbb3c7d18107ec50d5783528e7771ba01ee27c3293c247af48e1457cd9d4ad3ad9083251303a1ebb5f8cca7d3fae298d4d79c47dad0b94182be90bb8d931791192792508800a590b7ef685bb79023b30aad4d8d5cb5f205e25d9697739a20b9732fadbd3253a97f970de979c6bccd85d6e60681e4e4aff152e85209476f92a2dd58cb95f09f6e3dd6dfb772b590c1196adb88e02952b55fdfe2076b8a651e312e8c156edb3bdc1868388e1e52dca1c8da9708e5ed752c7375d08941f6047961fd2f6b1a6e0b7dcbee39fd15401e54110954aebd9bd71f404a7ac37a1448dde5e4e8df4fa2b0fda95668e7577986867cfe9617da8d8aff83493533fc94a287d287a1371730e1b064b9f00640cdc0259173bed404c2a121ee93636981356f375a33c66f0f59f90c58a81563cdd70ae5d86f80e94d064b3bf84d8f8cca56c6b39a2a883580e9422a6d406fdf382b4ebdf4352a4fc5e899eb4e4122d41a99074479efac6c3c59f3498aa978aedba59468c1edd37205f40930ca12ec11071a92378f1ae6a95436974c93e3b6d7652e32e58bbe7cb38d0267eff50e5f23942d405d2694eeb999437c37fa029fb564506cf8554b07e7ecb2196f2acfa97fa5ac3c8b4540b219eff4aeb5df3e447919733da72ac35ad6bb46cddd34399ab1bb32b11bcd6f957c6d334b95c372c0a59fa40ebd82f780bd677603c98f9b84d402e59d69a3a8894955933348c5f53b926333e84ab92a76cccc0372a72be83f1cb19ce458f196fd1bd165bd6574e973ebe88fa620908883a9a015f550c74fa64cb58e32cb6e39de3f885083263162a030e1303658c47a69ecaca5787ed8bfef40b5cafc2bbf9acf3901555be81c0ba6349273b6ccb24b53a1d98b7a530405aa655c2b35e7dda97b3fd47160af9a2791a08cb2a89a0cc989c907f0add32794083cfa91b6f09a0356bcad471b9f5f14726eb20cfea79bd81ed8bb2cd865f03bc4db7087a83927bf7bcf206c188413aad56e8d96eb1917315838986c36560441c96b739c433db18f66c94954a64b81233ec4f5efe9dc07a973c5a78c9a55bba680ab1423717811cd02b3400108875769336808782a1fbdcd7b50780df5f866a6976ba51bbaed863558c65bd824ed78e5bba46d9919d450b4471c051d31362b97c612e36eda9f837a5df04151a1d8dc3f519aefe83a33bc366d6471031fec66c83e1976cf161889eabe56cd6357c6ffa6aebc6010c937fc0ee1d3927ca858ac10158ec0dc24e514ca58ccbddf58d8e3852852d2bf081f46823c0a4cc8b1a149133592fc600e179d2de65f3b180156a1c997f71a1f2bef4b8e241db77bd94d617e27dbaac4f9c39c66edcc288d1e298718451cad79f1ed90ca1a16205dc0c892c33b3351112b83b0554306467ce860cb9caa84bd1e0124ce6f1471cfd4a1e4320d74f7881de2f4c23397b4228447abcb4455c6b9affbe46637909fa4bccc531472e8985dbcf33649a458b0e0c2f3e3dd9aa8cf0e57fd40ed0488838098fb2fe0a9341efb091d6f8f22f289c61a0e80b096ca5d3fa1178eb68b87f87f81a273fec3e9a0ac2f1948151cc202a28625213b0a87854af2bceb7f626548064e08800ea3ebcd2a39736efa497591faa70c083f8c8c2d62d1d5b5223798b697c06799ef3e18663ad5e6127b1b65e013f97e9b5702ff93f184660f5914e6f683c7646759ef94c19a1be46a7c436550c04c58e59a2cfec4f3b8406092eb37b06017d9750441a44844b2732e29bbfb7103860c12cad468269a293ad4d7d4af0054aa5ab46217f5f8f6eb491b9ecb568b84b120f61183d7ef428cc6d9c0b6bcf92eeee5f9e71cf2e318ba5073a6f07419d1eaa1875bda83abbf30a0a47748ca1d58abc47be2c3b6aee48b517b88a6da496fb7f95f2cfe93baeb1460aacd9f58e685ee2155e359f513e874b1fce174e27dc0c10a3b17a40bcf9264832760bdba41497fba0ab7ef4760d23463c494c82bccb31d347ebcb27672a79f619accc8770e68adc0fbed171cf792fa4b22c36eed814881b4af5a903b7fc9e00347f5ee4ea1077f59f3f4bda7ccc7fc586cdcc2f89be01aeaf6ee8265a51cfea2b355142a44a789109cbd971bea7b416d7cb9e10a4c63ef16a3e5c3a1e86e7ecf2c67cddfb3eaff3e07f7f395ee352f202fc973a17b2feaa4a85a291c20af9ceb3f154f819e34bea929d6e62e8a56c1fee54ce0e842de08601aea86e278b3d3ac404249152a116089586e17d504c779a204a5fb8170d54cc0b3102878ef4faccfc55bdd0c7170a8c6d299af98b4f7697a75ad82cd07aa5c28531c064ddabcc7052bff2274fdb0c67436723070892eed93252af523bf52fff07bac9bde604d606b10aeecdb517a427a08592d798525ee098643a1e0822adb34d0c27762fd75ba7ed792be3e606798e832902f353cf9d1020b13f26eeec222939e63f2fcff2240a9275529af1481d1b97e6244495a67624eaf3f5399d686198b52c6a4b00c5f40e76cfefa71c8889f8a1ddcf7d41a5d51c66faa3b31c12c9aa5ff1587659a498d0055eef742ce12c86e2313be8bcfd52f8dcb2a31c86af9085ddac1d5a0765d721154df0de7eb70e82c08000d5a5f09f228495bd7993ed25b97be5d20c93e07bdd821fb32dbd66cdc0528e6a885c2ea5a3ff2755bf7e11f2291a912241ce78bd15c38ff62e3bcd251ab444ce5e688f6e86bd440cf7ca980b64b3d9f53ce373f06ff56716c79bfcb5230ff84dc0e50511e407e0a4519214b04ec40e82e264b0abf01ffe37f9f7208d18d62c7dfec52363e0087b6be7a88e08afa1c19ccc7134203dbfb4ab3665fbb7bcc59d7a1cbd6b5d91707da41bf4fcf8820605434cfd1cd876ad55feb8d81636a04343ede4cbbc3c5921be8a2649fc578d13df475ca9e9d674f5b16ddf9ca66662a27137f60f1955420666ed950d1534a4b095b8e1ee57004272121196b9e7cdd11ca538312ff52ec478b61ef74f37e007bc0538de4e6ecc973fe8553c356e8c62199cc27717e10557fb479ddfc4a23a09e7e0294d63403cd478c42595fbf8305fa759114bb9b2158c40e9fe636ca2698f00665917638a88194ac006687989910ae2106917b99b58a344a66445da07b0d443e63de32acd9002e00dbcbbb1890ed48c57600394dc65ddf1e9d3635a9f2b43cb16f1bef20f5982570311fb06563c4056f4029e0a056cdb7c2e6c706f8dd24b80bb8f101785ea21ca68d581b1df098078e8908251101491c7468d9c85483c811a1e5996a6b76d29591979e1fd10df361758a34a830d6afe4f485477db75edf25e66d4abb06e18618e619aaf085797ff3de650fce248b794708ae39a1d034325bf772eff7281cc32e9a16f68b3290f3ea64914cdb26f86630f936ef4582f567861134ce720466dae369eb2dca45d9bdcd07ce8a1804e753d4154b9bde636e242d150ef682a1f3ff6e53868bcd1d614d7facb004759f3104672be521103ecd5a8a0a0ca1ca5d77372219aa17d590e3f9169bba995e6d3006d912ddc7d791f27db89b07e6a566f75f8bc442fec866c6d649ff01b24bf878046d2204282e1094789195595e4440f452f21fca6868dde3facc6a6abec15cec20c5b851ffe3202f97276b1aa1e242df510438bc90dd2425075c4e6d5779cd1533c2b71fa2d65dcbcd35b2f2b59218e13b8ae31bfca0e0ecf5fe84723c9f0fd9033002772cc2148d0389a57be10442f0457c37071601a9517dc1c9b8b517fc70e0c2036cbfe7c9174e2fa22f6dcc94372fa30e5c95578e288e4d3cce1a1802be1e5c278b5d76b3c0462daaea4caeb4cc2b3c896c63f28ddfb9c1e2987f60a2e46ce4605538253b91e394e5fac3a1a0b6ffc18bc3f4f91c2889ab22efc9ddf23b064ca2cc80b681197e1c1cc16b4d2544041339f9452ba3710d454ac0b1821c8c276a66100d2ad712f2bf3de13df568b211a98097ee0fff3337f408cd6db4dd9c5c86290a653f43d2fd88db0284006123877d8f0efc7a010abb91f1ef0ebe0714814fee290887018b4e57ac21cf785be4ea8058b98675ed9b8f2cfdf5cb5bffa38ee5b832feaaff60e263096e58257604dd4214f23272fc594ed60907c0953f8a9264111705c7604baa4671bd6d30253b5684bc361093da060184549eddcfd55d641087e5eda0fac69578068bcb96b11e6df3905d8809281226360213182be32df8d929c5fa51d85872a70e8806fbb3aa1b3d94d9501cfbc2f5699cb005121df065780e02507ab8e048b473bc66d99e16bff60e0f902b5b32324d8e5f7c114e3f00b9ce29ca678dbb22e04437d68233fc4b9e0ab8a81fc5150c4da8ddeaebd36914fb0738cbb1feb5607e324fc5b70ace7015d6585d0baa59e65f9e86702c1ed02d05d9d2d0abe6ce0d7f14732636109e208986c43d6eee8b02d988acf55c3493f6826a97e5b8d2c9d746638ae30f033440ac71b19070691660ac6280c66830930f8464763ffa86919795bee56e29f8736f89b25d2ba6694958c88d8a72a3bebd794572209d0b786a93af68bf51d2d61429f5a843e9612f36c1914cb3f261a0ac6a68c682348053f5e498c54bda03d9a6b2d676deb5676d59a19e48db57122d94a67a9653449b7601adf5e0594b740fea9613847e5ad7ce15be820d048444cd81b95d9aae9a4f732fff0ce8832f57de74a4e6fc2d827e6efe8ee08b08b0247eeaa9ab90c1a2e99063af7fafefb1557caaaad04da5a55c5ef15ff895e5bf7e5289feb0b988cbe749086b7f2a9f1e0476016f1eac4fd1072202ac9e6592a77fef8d31f5599b596dcc20c8b5f450ecdb2a9a94348e5f77cd3234fbd9166962100d1beb933a08f66b7b2b3496caf0f18b4c25706f30f3bfde7c05cd67291f3fd4fc149dda2a428c186ed4ec881098a942651a026a0f490994e0c8590f014e828a1b405ab7781c4980ee776c384a1ea3704f3e91ec70048ad7b3d034f8678ba1d162af02877bd7cc1afb74f44da4398863ba799f98d98147133d69193206129910d9821fba0b3de206c74f1f156b2f5404abff32a5963bd2923ba36c3af0f91d991ef6079906cd4c3739a4a4d19214a1f5f8c3ada3353e7a255dee3d931701afebe4be2929cdf97f356ce8b80d2e9e2c49cd41ad520aadedf1c983d06ed5e3c5646ebb8ed6c47451482dffb2cafa81f6052992acf9ac5673d896a0f7096545ab8018f1f90dd58af8bc809ae148d4669ac262d262a5765933755290cf8e6728af51cfda3565ed90ecc81b6eba0e3e65c7a99dda17e207d83fd07d879d4060f7c7ba93076e487e6074fbe931cdf2de17f7585744693ec2bd4f0d0c4ee040371dda7efc08ae64fce3f87d8874242ffe3bc62bdfc039f64f935df9e7b9db74ba2d2a3bb2b1df3060b36c72cc3dfeef0ce290b0d9bfc4a218639c286af928f2179ebbf1f4a3e207a8c05a973a8106631b2e3435bc6510b2cdad7473e8ad15e0630d9ede1230973f55146ef98d607d0761a8179555d237b5e16e7b0523d6dbea161d6bf1f382f689eb9984e2353ef3e2b71de0b342b7474a0a3195ddd688fc3c8dd9766a902492b674fc9e66d39f84491c106e5a783ea783c432b7922b7f477287b274c977c6149cfe923fe7bfe0bf1b32b7097ebe404734cf9af86c456f591fa903937149629e8a185d0aa682b49eb7c090de532fcc1175adbce566b8369b57fa2c4f253ca81529590fb8075c793d5d2e8128f5bcfa530d256d47770cd50b13673b84c299bdc808d92fae78bf5a3a730c84b4c2a8181c25c366d0973d365f74402176753f4bf78bb642cefcd243e6e98bec96280a1bc6cd55be62593ecd3bb7b97edbef1edc1ff591064e54efa1b1f7023639dd4e66307a6f67df7a71fea0fd6afa270fbd8b2a960ec1aa4725f77e8c6a642139b4e45275e8c8b1e3305ac04ad02999c3b604cb1f589b091db63cc524e3f414cfd06c32c35b61899748a7d3b8ca09c8f734cfb3029a0e97719a15ac182d5e79fe08786a9da77bf3b479bdb95e1c07c1ae7bef74ad8760b7b1fbd08b1e302114d41a29c7e970f3c654f72f6469ef96e48c60d41f33d32f1a33b73c7b7b74698c2f93a2a99e9b09942cecc75fa44f5f1286cd950a90b7100384e147d547a93d50ce58ad3006d6488a2af3ce010cacefe0793f834c53713959db4075e0402140bf8e21af5f360e7a86dd9f29040b5a09e41c4802ceecc13e50b5cf1d02dc51ffbcf8f9f0bde1f6a83a60f2419ab4117843ac0dbd05416ee0bb903b8327b354d60cdbc03528d98738a2aae6c148a36d7a248fc820bd6cbfe5607168b24eed685d1997a9a0ce347a0734a1e81d0a246fbaa737472c76d4030ad543ed3559f96e6a0987bceb981fd0a484f557ef89fcfad57d4b6b8e4cb409f9bf7f939892cc6ea144c455ee6aad4b944af00a1f816a5777545aab146c66a85b8f6dd9b794d91195c976a37303faf2a2f688c7df7cf1b1fd9d2e8e69767f39f4ef4473e6731f2577f7bf2a616f0b914b52c3cd789a2b9ab57513342372b118cb9df1c7de5c041d59ad45412d4b98362bd6274be0011984a1a240ce211d1f266b5dac6f850e2a8ffce05c95a54cdfb585aa4fe625295949d2fafb223ebc6a4a2e30beb97bd90db4330fd5a405cf3225da83e937ad2a50a44fa9e50848c254eb9915b42a820f11ebd12770435d5bb86187cd504b38b879b6901853ef54e82f78cbeb01f6aa0c7a362cd724194767218980d4cc21c2741282848392585e91c9e0f440938a5c4419bb294f6322efc3cf7e11e4d12f29bfcf702a6f6f5a3093a61ae927110324fc8044e4f1b62c6977ed69b3862adea93795ceba8e561da8be9d9fb861b4b4579e29c0d87f495d57fa7c34f15cc309298af64a5fd4055f42c1eaeb5d6e53a489ce6fc0a7abfeabe0134c0f5c3cf0824e47db797bb0cbf2f939cdff7956fc0dcaa914fa65351962f7cd00ed8f88658e6fd6c95485c1f63c761ba9e22040d2dfb9dccbca7cef9ca2ef3b2d0448f8cc6449ca35b66d763db589b5661bb620173a6d796eac1a4febdf650d74518338d1b18b22addf9865936c00008239d91d42f81db79cc3336a6a5f75274d12b91fb8163344e7f4665a1883be00d24b626fc321ae05f455128560bf3ebee64a1d6327a9b3b2877c4c5b8bae2e6792686ed49e74fa1e824d7791906fbea8f440f5ff7b70f3d3dde47a2af2b900b7a2297ced55e5fcffc8b84a418e31f3e8fc00fcca30e914490afc1803f4ff379c3f2a980db419bff37a48dc8e329e54a2d5d8d6d72c8511a6b9780b95bcf38942b48d9954edec1c1a11d4b3dc13a199f895dc99aa7628249213714d811a9b0ccaa2766e242beb561482d6f10e67face9030645c65b5ab039b94e1d8d8f20f35338c90784310da74c1a9eb3f4039bcbdae4b89dd631d5aed44482a1f6011ff255c3186f93df7307834665751f483cfa128b0ab38f7e1777f2140901199d32b4ee93f8b8fd8ad965e4e097ff3e9376f30abd5eda9330ab563f733bab9d52ae856337fd3c1a5386cf4a5816caeeefcabee07a8b7620293bdc944ee3562d5f7a262945a179d10ba4477a7884ff5550fe7d7879e346ee91cacb1a687f14eaed0549bae3715606ef065081637f7e6f5555a547ca3d2a53b009306ef7ac20506d8111186800e38e9de49ef589c5c9ecb85917f8817c4b5a286f688f34ae026da6a7fe887aa470d561d1fac3e581813a9eaeabe5c71833135354e895fca67d55b1057d9d8cc885f47fb4ada1fc2e9898e361aa8de9749b88a8687721215d8af9f45e7fc8489a032ef1adfe28bdb3195918ba837f719942980308224d5f19758247590ec6a26de0aa2682b7fe92776a573ce6f5781d4a9e99d15941e70a26a8e71a84730fcb39af90c5c2c0bb585e2294a3220b5126c0f36524e067a6c1f00d5514818fd2c09aab9704013a84651c340dad7bde8983d108a714a93b4095c68ad688e9e432d2deddb73d9c82e4a6c0cf8894d1feb040e3b13afe7ed4a3276965e27218d0ec580c4035e1a65f25240d31d09b772dc7ecee535ff7d372379a5e14d62b129316e9a9333cecdba523576d1a01366b41adc3fa321164f8cc7695388e70857cc45855145293efcc81e10e7e580efb739a8511dd175747a7770b5062817c2d864fc2be6c6cae49746c72f3f914f881d29e29cbb0ef6b39379df06b247506f00f2b8b68c86a2c974206135e67b404a4e01871cb7be4e063d87098786cd26d89c0c82bfe4fc6b1bdcf2772b03eec91ec80e0d946087e917b489915ca1867700d75b3f380d21b01b1a91b072de57d52ce9f5489315d4d1c813dc12b0caa120eb0f1e481618f171313e823bb076c87f3e222e64bc9655a96d29d13bff03344acb91a6417199eeeaf4e4811728d9786aeefa842362bb7dac8a202cb8c8d2b53ee6fdd84d2fef9d57464cfc232db1409bfee2977d389703c73af4a5ebda0b82d3a786ae8998a706d4c1219603918d1fed7a165a81114461b8b4896a7ccf625a61abb3b6db6b1e38482274a4ce3d8eb810892c958ce0065848a0939cad7d28e24cbba391124f01c36465f0b3956387cf1c084363d27d746a8b2de2cd896d72221f097f7553b4ed3cafc21b00b4e32ad0ae611bb531e48f5f37209088dd955c052e2012acd88ec3bc9ec78bfef1e373489b2ee7ce5be398c1074191c901ef35dcd454581300719961c82a36d477b363692e91f5c64a80675f32e7828176a42fdc3cb2129ca9ed77cc1b28d2dc8f6b1a8bfc66ec07087ebdceeb8b43144def959bb5a866cce55623a22f78ed2639f678a542b4bad3c2c8ece3fb99c2da62e3b0979dfee53df433440b9e34c7f38964c5d8d6eafbbb36bd8e3a62ebada16bb92aafdac54f1d92083036713b3b3ae2be3de5a8ee15296286cdb30aa71e29cc5f40a8e257d0ae98476dd39fe30826eeb820b1d2f9f5d88c0beeef91702ba7445c10a9539a84c4eb8ace979914889578f376c838c2f2569e285ed7191c52436b4813bf1c0e8b4ab86aaabce312709b0db6d2d8ba820489c42a88162e58ff99f672285a366bfbbd028e467ec593abfd6c4a4f31f4c935276acb119ab8ff163cd86fa8ceeacab3af85ce059f04ea55b7cc63544c8c30ea3c7d23fa170606442e27a19ed3aea20845e0894ae3b15de577eb3b054117595aa805513f83da2e036ada02a2068a110bba147a47950501371ff34fce4f86db6e9e0bc9519b9504d05b53c3c4660f4247da56af2a014c94a8462be7375828fef527ce8fa05d67be9762b872b9d7e5e292882a8527f8e14aadb87bcdfe623a5e0a9d49d1f68c94089a531fd39ba2e0f7c138d2ace54f418352f2beeb771708ea62300e943830cbe02bf88793c2f3a785de750da7c45f1dc4f9a7e4a76e459cce2e646680491387f8648da67f9e5af1d9cd5d274734878f90253de4360160013b1291cdf58d44864f9c427eeef24b4872242055191ca653e596507f4a79fb111bd362b6e883984df8bcbdcb79a29e66c3478464c6eca11471212fd4c4c253d92b4757a1426624bd38e8953f48e20f1d63e364bace7fe3c8d98c5ac05bedc4830b1f4383beaac4b4788ed88874e5bfcb56252ca1365bd81ea1910a13561951df263cce7b7b6f98c8b024862f5bf9b16a882b5fe7fd4771f97980a98fcc4a206ca659f4dbbf9a81054be0133fd99a4e22a48a11ce7c6ba3fc206b55c018e2fcfcbcf2847ca684a9c5a76fe9c0c543e273e0dc6e47003de7290ab662985be3d2e7f97aa164b07ff894b879e306308f1cf272d531853fc2bc8c75d2d5e645ca34c6802f45c0747a9f2563cbd4c52cda9289b36b2dd7847621f7bc80e9988c62d9c54802b926e94191549e7dfeff3bb63b59304fc8d9a3211bceec628eccb2001b89c5621f31fca0053e7b0b9bbf9159f31a34fc7bf416ad35e6f9d7e5b2138277979bf1e8607cb7f6618c4358a1cbb8fa1b81765328deb6fb6f2610c54256ae115e427f5e568567a3d85c3cd52edd1c75c542e6732ef93a7ef4670b39bbb4ef2dc0b50f1b57eda50f97e9f726093dd7ecb4771190e6962dd361e0ba00f6c1dab73799ff90246dcf82c34e2e55e39c2dca6456f2731554499427bcce0c8a96a9bc856ed180227ce1061a1bccdd4cb6b5e1646e797b7323a65d6307d204be8fa1eff2c19b82cd1a9bea60fb0c304cf620e32288e0180bb9e6501d4c16c14a0a5625206e8b8281051743edafbf33c911e7ea4285d151e792eb92940b99d4edc2ddd966596f4090096666377e2cbdc7cc55f087c30a3f12f903cb9b647dffcbc65ba9c94ecdcfa7760d707f904b1b727e4b584cc41890e38e86aa0579ecb8a31db0d674d4911889e612be81f5748ff31b49638a1a33059f4f945f21642fa9cf97bfc8ce2107550ed56b753b3278cc22d497bc74e148f462108a1f47d49d32196a85881897619681c23cfbbe97157cfc85f5ed9e3dcfc666e14da474998ce65a810c459e58da3f43da507c18cf27baed9b9ae7b5aaf27a89e836aaf9babf09f3b781d077ef0288c0579866424d6899ee15737ec8176221308fc77334e603190657cb1fd911b7fcb92349ed29a19d9b6ccc13eb1f140960741dd3445e487b42918d75cdf2f4d3fad9637288c3cd2e3a05364c48a88eb4f1a21cf1e66725dae84cc74e9862caa6379bf670722f228b62103a3417e9e9cb220a1b5226e6bd47215f0dc2e2334bd63a7f15b82aee4192f5fad93cbc8d66fe5418ab22550e56d838dedad832707265df9497cef3244f2c4671bb19fe7d26037dcab7aac8c26f9d2c230fd1b03fc94fd54e8e3655f2688e9e59dd508a864a50a76a884059af89192eece75eac99e62920aa36329ad2ef3bbb9e01dd7091ecfb6f9e0df8e475f57c274f2d061785042397a478fe511442b14cca9596a46ef8cf86c551b0cbea96712f7cf97008e9ccbe67036f28cf5ce2c8766f24067e2c25f833a826c273619e631750c64d38edbfa08e69b118a93c3a58526599da3b009197d0756a1cc5089025e0b6aa0986ead5cc61be5acc3cd46a356cd1e27c79bec10149137e0bae572a8642def1ae75eb3ed306e405f92588ddd34602b921bfe30b49a0b9c6429f89fdee2638764ba9bc6177fbbd3a86c9c586e9d3199749f32ca2526be454000d2bc66a2c4d6a856e8d7c848d87055cced70c1bfc872ed6e2bfcfa654900a4cf2b5dc82265f7970312089ac627ab203a0ca44811e55dfbbbbe31ec298c9da644a3e4c3b9bdb6948048b4680f0c4e77ced60b7f68a3cffdc94496ec2898afc67972e6215459eab711e888ac903d197f6291820800497f9cbe4e436e90cea2a1f5e14c96893037c0359563cd33bda85d00b3d18cf45159208075484921c9a4caca87c809328cb892ab3299b748bd456670e1060d2794ad4cbbed861ee45b61c7a82e043795aca42e6cd2bb207bba268b2f1f97783c2067a9dace0bd0029e2ae727da1328bb46e35fe6f0c1ccde79ce9a738d07ba5b381d2bcda1d062affb7e8fd2e16cb1874103090022278a1ff66eab0a82972f5d55474de332ffec00f874ab3afa68afb0e150843141a335345176434cfc28160254644df09d992143762a1fb1cf9c4c6a7e132fdd8398559d1ac6c657af2be3094e29ad48ecdab82697e7c18182e84859a9d9af9a32ec82710d6130e3c2e83c586e892505c053e2f2be17f28452d84b8f7c45838706e86da4107a205ee9e80585482cac8eea7204d155feec8cf019bb6ff8a40945d28e685f7e0335e29c50385ca5021cd248466d856ea04e6e24620caa90c63392cc551ff9ae6eb1ace2d15c3a9453d23c3183e18303101252fa425662153f7d3c3f77f96e684346d7f366dcc264ee0eaf32c9a3c788ced136c5a929643265092ac5d3dd46968cc0c23e26bed69cd58a6bff824f2173e8cf4d1df735e24afc9ff96af99ff0924973b66bd86980fe7966198dd3fd58bfffb889b8c15108aead8d1d2815adc7d276c6b36d3de2ea999b039d3ae114366e0efc18c57b1ca6feba6fbd694d5cfcf055e4947b1f0d43ba9de35268ae525ce74948f69a2cb3182ede1bfbeb5945be00b3427907c9056be593cba2f405c00fc537c5f7b168c22a537ae03c62e65a7e4261059cc15a4919ef9d3dbed4c32a9bde62d030f91a5a370cee0d8d1c7b4a6e21a7b22fa4d4d9b3c3cc28445609cdff4852cd4f61f9f8cadf6ed10e5565e3f3509513bde2a76d76d647aa67e767c1e16e996eb050e9069da8735adade047ba0d4748ca7d3bf186f93e75afc580f1daace4b42c96ffa0f0aa0e972cf64874b0ef830cf0a5fc9fe41dedd418aa9d03a9d5780eb3061fe4f684bf770932936a99314028a3634d51c6097fc727a1e16e97c12fe6ed355956320239a436f8b2141a7f9336aa8af349da635eb2ed83afce7137cc305409aa1b3f7416b80c81ec7735594317f73330a906c38870290aa1ab7e10486425eb78484e5b52f5e42dc5e88a92291f8337641b24359a2deb58ff2dbdb922b81c4805ca9cee78b591fc839cdfd3ea7e11b7c48c49baa7a7c371cb769cb5ffb05511e33f5198aadeff1642ba4b16fd59ea951fce22c7e9e1d6bc56e1a4199511e23b87d8a7776e0690448b4d852bfe47b6f8af5d58c4369261866baf910fea8aba40e48263df542c21748ebced365a3a1fcc02c6e28d4dd31f7e05e2e753e5c5c49d160754d569365a38dea3382f4200c13feb4440f5efe58a3a9a402db92ba0a25221d8609577997a48c139bd60f2e2404687ace73fcd0a13b1f1d080a54eb6df65bab0f00d19d7ddfb129bc5eb4814191654b0ffa33cbf51c08e417c914a95db5f274db65f9cbb68d2b3a37942ace9c1ab521056cfc7e6afa5a708f48b552d80cd29d4e263b5854aee893455ad411d68443c54ce6385ab2287ae3962b4fd5f6dc0fbc07e220062d795110974c7738f4ce4c6080474431f71ec695386c297c3c34e5c60325c53e4c4b17d7e5f01c9423fd3f9b0a80a82e7eb409d880a7efdf5210eac321703e368bc5068ee741e0a8c641c92dd39a13d7e9f554145cd479c18b9a019c543be32870a25137f6db5b8b0980d771c08ac89d1d0de4cf2c38ed34f9623ded3a367d8002e05388b0ab3d56d53b93eb22b0dfb4b03f20c3a4a58a35f60bd89c7568d0ed62b6c69036cd6f720e279c24ff09fe28fde8f0d4f17bfaabfd11760df3ef3166ad9f6026b2033b28d2c67c33575ad576f091592f7007176c028dec49aa30f6de1c0e6a95290b04a79fde19e78bb7712eb76c79d5f2a2f1f9ca043b833ca8cc823dfa25d72018bc096f50c135620b41642b14e8cf33a4f388cc77c633c2fc8ef2b3e3418c50fd1227de44f13cf4d0b2e5c66353ac5bf3b0e3f2f41b5b19c575a8f59cbfe4725e736a240d4acf7ff983219d86ebd3de8f03446864f0e15b07ea3674e38223f2b056f93dc0afbae996e294fdacbad1d65806658a2e9fd5e84b9cc071372cf216ab730e7c4252cb1670f2d81b786fd0d4f90b18064520edd1b355027561270904f5a6ba0679c95359df62799acb96143a0dbf794a954a14cd656036d30d7faf59ba57efec2abd88a890d5f2eabe74af6faadbc8daabcdcc4b733c9838624f4b64b1d71f35ecf16634237cc22b9726db12c68439949dba64185151523d57dfe0f6a9f76ba414c36c202c748a19322dab81c03fe03ca07b3e1c3fc3cb5230efb05dedac648e5aa36c0ca0788c632a4a60b9a864b505a189e29781a9c850524ba092cd2c3927034959160b3e17e6a0826c2cb8f8617a9eb1ade1a5585a0e4b13b31195f70df1c78c187af7bec622c43b1cadcd0638e76e32e4799c905cf4ccc7f2817ac36a4bcc9a1fba584e89cddabff46da8ea0c6b5637eee5e447758902fe73b62b8fea2cec027541fe8f920cb7e0f0ca22401085a55a92a57c9e273ebb7231ec5d8944465b7f49a1b3133c2055b9e062d7e9fda5da6b7098d0e33933ee8b84b083360696f4d0e5182e26feed6c63186779e899ceac7956c90fd36f292670c2e2d45692a9de5a275f2eefe1a8ea9afb0c71bb0bcc82ea1650f367413e07e0660b75cb0443026def0ad3f1d2c9ece86a0189d24f569d3442c238cc914f49b42b6701ed428857ccdd482304061e16667effe62a81ef0b3a537a884e105f4d1cfec460108e906965426b114309061858baf71bc8a778c515f5299d974aaa455811c1cd25a7f8de6312030adf2b831a38f158191d777743050b9cdfb5c528f02cf59a52f4d26db24132262b5853cbd1cdb542adad58c725a7697aa8b76b121d6451fbd0db8bd0acbb9bd3a59694070b198702624d655cadcdb7050e053e11a738865e1320376469b2f9416b8fa08c4053f03c812513cc147934e8d85bff6f29fdf8aefbbab3b0b150bf508689e548921a93ebad855819d31c4bd64b80ed56dc45a6c92981a9d9202c4712ff2ba01c2f1bea6b9c2481a57b2c7f34eed432935708052410bcb24baed17d7af5183897ac5ad482dabf1f686e854a9684a01b728d68e93202dc161e4a47e3e61779119dbd1b070dd86da8a5a73bd7ead284b610f4c4c0d8f695018ddbbae29c5c9505617ad6920e3d9fdb372f939fbfe981a9976cb67d8adff3155bf0832dae19e3810fbd5c8c7513dc5589ea346792adbbf1bd97269d7b982eb5c39280a57c3c3d675912a86020be05757529e0f9258e9142b99033303a15b85b14ff964d2e4faa98ccb6f295ca20239a0999cedd950ec7fa9f5651097d74491a8ed1e61618876ccfa19cda25c357b3696f950f2ffc4c2c5c3e420587e13cd804b277fe2370f606e6ba54f735fa234a70d70f584a2667eac12aae49ba53eda4b7c0dc676dab8562018306765f796a9f98441c80e6be3e66d5e11026911a32267985ae249f8cbe6ed40b267d5e0846e9270c789b74203f7f96d72f198dc0db20a140b882adf0f18489d72098ac4aaa7fab3cfff31b20c5d098c05cb31806869c8c72aad9ebba9e1bf0fb3e81c4d048e5ea2677198be43fcffab9bcdd606127972eabc0d0817e5b190260904f35023f05b201e2d59d5cf6a9f5880dac80d14ec51f1a9a7d8452be6fa322142c512aab020c1e1043399957289d626f976b5291dadd00b3fd7b771566e01faeab8da5c43d9f8a0cc41a29992922447d39ee3703b9e5606db735cb3ca847c9e27086a87336fbebbdd1a83517de4c33a36fd7888c9399a96472c8d9d7dccc4018b3a0bc19d97362795f9a4e09bf071bc948e5cd02105b96991003075a16287e988ed40f0b23142ddd4fbcc9e84323ea9845f7e7aecbc5cd88df7035dda5d9dc1f72c55cd39f509d3806e5c6e89c2a50440ed331eab6bc39951b34992c1083ecb955b4b090c71e13a032a9e582bb89e4c2616908932d0439eba153ae962ec4d5981abf6ac96591b47c8feb29ea15cbd1d389a989e271488c6e6f4fccebeaa94b2c026373a5c27a9fcc131efed572ddd429c2b7b2487d2f8d9b8df115b4aa9e3c1b9479f977105a0e5e408bbae6aaef78e1c0f2497226e123458f25c866e8b77f3ba2104d5ff0ffd9ca96748752c0d134ba64cd8291ab89e1db0ba4972087d1e7e7119ba65c5e2423e8e7baf73a6927295cd6fb56368e60cacf02cb6c6e64ceddd732d80839477cabc9378446d11e672ca46d838f757da614e0aa897914f578d75b8ce5b0bd154e107be6538135c1fbcf26c9a30b807b77ae4360a8cbf7b406d221d49e74bf70b0faa99f9d6e2aaa9b33dbdefb7ddebc79b5a70d5c838167f5e0fe1bbd4ea12081c43af86f395d1f557c25b3721104cb78548f5631aeac1b6693828a2a73d44acb3d512f856f6dbfcef1b8c86ef1cc3148b00ca2ce58591e2e3e17bebe62f43c2bb62d8dd406d889238fb3bc9418dc32b60d035185b958e4f0ebc46a44917d938bbb599894df8cb87f96f747251c50d2a9ff242e456863567cb8b592ea0a46332ea96f33a5345499d2c82ebbce6c539963ad53f998fbef74932f868097c765363c5d0065c0897dd4520ad767be422341658e6400e1661b8390b8c8b2bd8b0afc03e98f9cd84bc173940f28f794d44bc854d0e9c7d4e5f51d47e11bee943638f7ee5ef7345f0d5b8d56d84d36b6591e65cba5a6e29d8a20e1e822d62705275a25e9f8f22b7efd8375412808570cfb79966f7231410159a305cc987bacb5047aa4ecdb338d4a3c73fc954bf0b20ccda10c75623b4b043356bbf4bdb6f808433fb56f5f7e9964a552ff81d9d702df9185c52ee85b2df5c6e6adea1020db474a200d94b0aeeded54398f5d364e1963481e032e6043bab27ca4700c97284e5ff72b61db696051e091ec399f73f30668541d3df8571be4f35dd1337159ea735400d2f3420416e14f01129c30dae54012c95c26379f06e3cb7c3544a5c68b03f8095112040e86f9dc097f8687ef6e70a3cb90bf30855c12761a78171a32cba81c25a155820b3d28b7941957d538fa7d261f962d23caaf433c9e288ded9d346559dca88940b9d6296d08714a10127f555b5b8508d27fd8423f80d49186a23b7776deacdedb34c715441a9c2a3a4da59d0bc34af7cd0e8b69d1b441925acb9d6222194d84aaf04554a4fb89cd85925fcdb00a32f9d783910838c3e408582254eb51d7bb41fa364e6054dc6d537a2402c22d433d5b5333ade519b757bfdab2531eb014cff7bb983024b3ab05451f600dc9b307777ce0fe5ae9ad4537a31946371a64610696939a60a508b73330ff6b42162cc9a41f6443bd484afac630eadec6847005d399a5c71620aeb184148de30b60ec8fa325a2780e762d8134d059b44519542bac767bc09f48a4a3381222efb79ac98889fabd5ee42578966c615be29cc36e91e0321f0f9ae6acfa9a945a682eb370f9eb0d6ddc78408a3d44ea8e10c5ebac652eda83618ff467303a4dd0b61b4af9fecde085241106677fbda381dccee2e7c871a6545e35e4e66b3116d59f11db5495b7c0708f98e7c783052d12f784a4c7b7e367c96f7c3dc86f5c16f47eb95bcc4cf2bd6fc05685a3dee1354e0caa02bf5207c64d04f2c2880a23ccd56492dced11163ad16ab4e048f726d962c7c0590b78440c220fc1afd61033d1bc7791bd6d431f140bffab2796f00254b51d3f1be3af76696a4dd118bc31432b022be3b85171e735610704dc94ce5f5bcf4a7c1e861cee8bc37bc1c41c3d9bd854aa889c1575cdeab8c9f9835d2540859fe863421b06c53bb45be46ba755735eb2bd7a8a6832ff92d9fa65469096b7e09e5d5efe7f31c4adf75e321ba959126088a705e16c5cbdf7e5aee03bcbd28ee5f7e9ef940ab2702ad4ca443398769cd2e855816d93e9d81cc322b6c86530adf8f98243f5da2cac59d1c42c581ff909cfec9d25c4e1d1022f7ab401b8785ed4d39e98511d38e896f2ee0a3c35be4d9bc56920c65addcbad90736d5de56ba562b031b6ca366a9a4f43dd7d5de49340d8618e20984d5e64512f7b1ef49ede3cadb0504488d628860d8bb0163bdd5091b09baa993b6aeeaed0dc358ed33351bdfb7054fa44c80bc30b5a6d1c887ec0be688a8b80f171a8f085ed6fe7b37b169d38c7d21ddbf60f2c4b95aae366a4bdd24f97aa99e6b7263856bbeed093430730a1a7988f1aa949a6e253023a418fc5cd486f43177969c2ffff131ce49cd91f173953fb63236355a53cf69d30945e1c97d10d7803924a8059480675cfeea9a340c27ce5a4c6f0cc666a1738d322a531b24a78593e0c2ffb664fabbe03e35da17e76c22a180c54d2a341771172b05cc20041377ad0ac3298f4e18a9a6ca9e9c20d9f4549bf98cde6017c51b8fd097a43a734f785b8d9c18762ce50becced8f1b5b5c48327c17c2ef8a1cff1765ea4e0bd1008bfacac670bdcae41bb02b8d9c0a445d58c974731a02c9070b4ca26760b552e22cc8bd864fe10a45f6e9e435eec618d9498a560ac8176df7336b5cf5b24f0cb331e618674abe95c47f3880f6587bcb660747f45d094ae4ebd7ac18b239b15c406b469989d1ad4b355b5364db119f2f510bdf279e6270bcec122a1c2a35ca6cd1a5f6bc789c2bd1eb893f51749f4560e6ad9036a19be772b0a2de28934ef66c821e6b0ae06396d1ef407b028f99504afadc47934fb470996b5032e1e349fdf6181f7776d87733150609c7e47cf1f40bc08a9285efeeb9069f4daeb4683bb6580d6eb3a4ca1970861a9b281e89fd98abe204a0519fc5e8f118c5f602f08e25f0a6e5880778f5ba0234d9abdd680c68e1c8e3f4b61b0cc0ab957b5a4c92a5c1790cb711aadaff6d11421f7f2ac4d4959795fff3f723b5009ebc3c50e41588ba816253e00ac03a27baccc77ad2125d9958c92b85cfba0fcb13d52dee45a8165e4c2e6972a52b1a8d9f249dc02d9ecc5ba0e9efde80d477556a0189f76e59c01356b2c001f978308c1f4694cbc83c80c5adfe93e50f27e16e7ea4039f57e2234d7274a4112fd68a25ddb4ffee390a43c08605215bcf3f3ad93db87fda40e8f3bfbd047e1cca5f1fa559ef22cf19bb06a8b1aa85cbdb73bc39ac5bf3a4244e57c9efa5d64bbf3d58a76819e5e0c0fdf36442d301e0ee74f7089d24e6cb352285030667b5fd4826d9f46d173fb252667e002a5234bb6c30aca6dddacb862e4e2dc5312c45a3e5038cb289ce533d99c456abadf2d471dc8acd8bd9de9bfd8f8a10651090e84df1a59e6e8773a3755d6b6cfc34ff042d2915a20f50d24ba72f4756906cf64314162149fd9bd0fbac63bbf48a37b7f66152a9bb92ab815e64dac73666ed7853371ec559ae309d4ccfbe2a79e81e2e3cb6b35dcf921d98447c2a1344009bf62f8ca66282428334b023c4c7890cb819949c8b2edab9718cfb506f25647be16a37dd288427019670de68e2b8147a914120d13ba83d8cdeb693ad8b7fa16067523138b1b776a2a8a05c3eabed6db3fca32051a19b41e989555bf3ebe44e16f2670edf36a41177883f2b90528cee8ee1bd21c34c57d9c6a1daf0dc96cdfcbd3474c8894f240840ea3ea27c39d8431fca03f4521d73f672d85231cdac6765cc44c2fd94289b448abe4d25c770e58555f39b850f12d3e94d6fb74ade1303cf510f5c2518deb05961f6be6a17bf96b949fadf39cfbe421d10cc9f73e9a6f65616b7c65b272473cd8b3323890ccdb26a4f5ed988d3180758c54341547a6feab71825faaac515787e62ea328b7ac88b393236fc5d655112aae89b8ccc3266dcaa8236ad7553aadb9c3625cf192852c82c0b4bf8897e29f14e0a76a2f1925e803f835e269690b0bc7ee60521cd38085c6da97546844a8cc6b662399e23fea7b9d8b9f8b8c5b05074c43b8100bf19312f6f944b8dd616f014b88544f9e439dde5fa768f1a33bbdc7066a5ec67016f8964cc1e1bbd30e277c3588b796b311c3c71893add8c666995557d9268ed2534855499415062c5f6a2c8d2c0306819779f1189731023f0a42dbc465e9410f27c0d22fdb7f5f3b8666a91ad8576cfe3088e1b408a5670c76af317a62ba08d55154c88657026949d16b7d8832092d33679f81c566f0f1613fc03fc451d6ba2700a024988851fc1372b3a3e960c42ebffe615f2986163e2333810896252328de3ee0a6f41f7d534a19245c30ce14175256112641ce7f666d1891be0510694825c277a8ee85623812611f68b58389e93315f7847285c0ee0f434ad6cde3a45efdfbb41f1e6e3be98307a25ab411fd07bb29e63ea42d2ce00af69bdbca041623b782d4c3dd7bba132bf940e5cd07c2ffd8176d90c6f0c7dd1596bdc37fe8e9197cc7797fcbf667448b2bcdf285fdb5858b979373481d6e761bac258e9226a756c81c180c4c8f306c9547a8efc42a7d816a833d899fb23444bbb76e4b4d19ba0eeb0c06a6053358aa352414d75690680e1f178d99c4fd6878c7d1130c1f0ec5878700354664f1425dc510077c6ab0c8e6e67ddeadb545b24bc51e2fcc190696201535c7b316f0c59896ef4e0b16d7aec413b136c0f3872d6a7111a42c7206e46d6003fe0c8f6ff2846e200df4d0f25ee18aa63fdd034594db397d5fad04f935a607763a1c85df8cd4053bd53af6fcf3e245cf2b5fed5cc017bf789727cc1c95e2ff2f0aeb7503a2768799f8ba48f2f835d2e51a99c0fb1ef05b10357a6d06ed0b10a37a8a1d27ece215b3c800685bf806d20cdae30c96e4b697c8d1b5ae303ba753962cf50063fae44346da36616544ce7c3d197e66f51395b1f0f298f71cf014bafce144e6f04b969b5393171d8a79a61706701be854aa501cc56cd8d8032442881b80325990d14b19e88df3eec87d748398cb4eae8d82dcff6117838315813cd500c0fc28fb8697aeb799a4066ffe3db12820365953c1ebb4853fcb4d4a05940b4a075fe7691623be8766b4fe6faee9269b77ee9080dc6a4a237da331c3fdf76c3a23376e28b814a1692115534ec70a7d83b7607b738f3004c5d9e74dbadd068921e0d5563ac0e325c58e89e4938e47e272b8e8467a4e71d8be703f6203d3dacc11b7bb7f0f8cfe0a336b4176dae16097968831a44f0b80f130f37d581c3a77efe60bb08d48c26785271d3e30640bdf72a6f36249a75c2f2edab90fb8cd53dd839cb5b6668b167dbe6c01cb1f4461ee5d23aa656fca5ab6a0ba4ee6305bde386bf4ca64b567036e526ddcb3b3167104d6e5a1945244c3541086986e134474475e6ded7a6b4b2c85d14e3aeb404aba7c6cfc89abb49e351276e61155d693d2d768898c783887594b41dcc7017ef7387a48da6b235a2e9bdc838eb63f94c268006964db10166340b79940ee260a4a4301a1d5d3778cef0bfa181c90308b25d476949a7207bf42891147913b6ae3787b6b47f61a009972c23acdca0cf79def2844f27ed8ff32dac5f0ab28629ced4ed80d1914ac2151d8f0976bf689f1d0c12aecdda16938327249b599d0d87d714306278f455ea189de88f4726dbc63cecbd6ff85a75bfec63c1539dbbc65e09b22a3f2319e3ec39bfc48859493e0d1667ce1fd6e6ed4e5bbb94afcad551e00fb45160c1d3d63b9e38fa0fd3854dc2309c20956f0854f761d2bd6f23fd2a59f055d072285aba19b43183dfff8e4bcce4edb635eb6f4cb08c219433c37a3b46291c5b5592f8b42c3a084527223583ae66eb7fd0b404f7c0abfe9ec7a2cad32795b74b2a7f3940cef628ff05c3cff2ac3c8e67e4a611ef3b3f07efd332c536eec846dbed141e74005f82af787799d10df5f1ba6e0c195058a75f1eb9d37513ac70fcdcfc398a462a252fe7bc0456a29a05739c6e95b9adeaa2f526d87c166fce0655f7f6010e2e3e465f1b2ccbee3ae147bf7a40e0019fcfe477f098d34d1f64ad2c960fbd1e5110fabc9ab3b37712c07ba0f5dd2d3ac10e3a808c6a76c96563e0543073a9ab5daa9a0d6760fb7d51769a5ff257acc9503c58024993b399fd0f094dbb82e3bf545cc46ae82e1797215ccf358235135ff887bc3b39630e0a1d7e47656121e1b15bb0ca2f944896a599285fea19d4b30960cd5a856094e9adcb42187911d87b2d06e6a3c51807daf2f9e2344c646572e70e8f72a91e90214a00d3f077e9cb310fd912ea329b9201ce02e0de6166cf8794122b388ff6403eea99f561ba98a4c55a71b5ee7cfabe9bd1d38832cdb372eabe328ccc59a67a73c4f3ebe4b54172d368348d61d76d5e051b640bbfe7064fa352c4cab280d59c208775ae3021e9af47fa92997df4f623ccab45f776dfd0253d912e985bd1680c0cd649fc0123a44a68ba6dc10c9be12fcce53cb5228ad37b73128844ad301be32fe526e2d2d3a90fbced84681fd8ee94639c063f507850d1a265c4c207d2794957ddd42b66d66b2ec4c1f6e91a043b5f499abe38384c2c3587914c0401184a50c243c4ac4cca58b581fd8c86a5b73c61db0aea0ed3dcc36fc3d936e4fab5b2600404db799adf6e0a3f42e1f6eda3465c3f67b052c74b246975aad0f19abeeeb0510709d0f5177d99d8ebbd78e509bd7a315e22f238f3f5dae0cd16bd0333e0e444b2f5c1163fe04f64270c916f2420b156b9e5c96989875b6635cce74aae04d8797bbe5886d436d167ad8ec3f77ed33518bff0a8ebd6d4764c143fc0a3be6af9b13366ace6097734233a786a29f2ef1f8bc5702a1d1ba77365f08e9b657cd0112ceca31b5102d7d717e95a5efa928cdae783fa3ccca17f1dfc7fea3912f8737814d9baffeb6f1af7a02910dd1da582698efa72eec4199c5f95be5374c3b8cd57e097917546cf541cd783aea10fd73d63f82bdec69f5403c2ecdca764db500d9fdee6f00e6b4631d1f2eb4e25cde5228cf489a5d7848feebe0a544ecfd1ee9cf7fde20de78f20bdb3185c06811ceeeeed18cc8ddfcc03e0632bff56f62b96e13882cec5af4ed79550c73305d7b226ecfc24c956858870e331dca6412fb0b34560d22ecdc82529e56cd02a263e7b440106dbc326266ecc8a05eca225e1961b9f8397bbfbfed3107228acf8e7fa7604c7fc9c1aa935ce05829bb964127864ad1d5a7e9230d2a7ea8dd818caad4f08829415c77a1c2b27a09af425a1a635c192579689060bef891341b4d7e91a414916f9b41ace78edb74e612261764c27364c9f1968980d014a7040497ffc6e32064110c0862dd7f63abac66c41e9a079388e2b2e4605db5a85f91e95bfd030066eec93f2e51a46bfea24a3ca599b253e72259348f9779ebab3d7b3c9f79d5b1b8a098b99b6222a22600f134300225e3ea979e457021abc6582a232c090a8bf387ef4d3db335d485340db33114aa40f5fa8d814467e795b321f2d270e258757708d5274fae9c6f7c4039b7c77a34d3d7597012aa2d47f67f6cc4750273a17437c84e7e5ac91e5661b496f7d956171f513fee979fc58fbb71e1b6e0bdde36d7f7f5dd7f516875d7e32c59927a571f22e2e67b938d1587f2364b3fab3a39ff87d78904fed7c310447b2e5daa754aec2b9b40ced5d6efe47ff8dbbb9753b0f38c4745cf494bdf92cfda3c9fd7270471c47c0662a331bad6aa192beb8b235ba1d503324a20398051430f17c327823476e29e7df6e850247b776e6672197971ab59e7e006a717a0d880b0358dae5deb177298170e80cfe169d1f2005996026e4587b52a9878505965d4d02b69a680f0442be17d6f838f2728864ca08bc5b4e3ba01339e1ac1f0a06b179436e520f77d3fb8274ea6b3ffc0b50fa2295a0f2e9de7af2718a96a903611a3981a3147a15d202cd6f382ebf8ed012f9095f84918f3bf1a243be5594214b2129c69a62a19e554c93e9896a425de705648a2ff11cb24c51b249e74ba9f505cd6056e3c2552cd1a182b18b88b258b5be42192eab2b0e495db68927f5b40d55195414512ca936d054dc74a8525dfe68e2d28e4999f2f385b202452321c328488601325ea65b2737dff23abda82b1cfca576f5bd17a1a415aecce42416841672cb54f63aa0fa7cd3d30c8a25c05780044043ab9baafe884666c45b75ec4244c1c4fa19adc48e91ad69f0d49f233923e24ca39455f9a39cc6a360247c46addc06acb46322e2e2ca62b754168459f615c0881749e314064c3e4d71261aff7debbdc1af2a1f337619af333c3fe47d6ef427e5b98568598151b64b49f3ae125d05b6ec43306a18a22e03b039c3fa96aae198dd1c88811653f061034219a1f9bf612cef71bfd51d7e6d2e143484b630583cf2d5b2ef4739ad99823429c49b2c49f42df6ffb4d42cca0c71a77ad76308b91bccafad221aa5838b96a1b802be7c318c337256e925715ac30ed7476fb0f5176d0c59795c49b73f80bc56cff068f6a0715a0d019f294ec2905b5f24f5ac360e2c4f3283ed18d8bc480acc1fe21804736019a3dca05a43a2ff4a259bf8c54cdcb181caffcc3adb574eca742f2a712c3253cd86cd521564766d639ed8d618c17a42c7dffdc278bb44a6bd5c344aea24bf43abf86f19a1bfa05c3d04102047ba246b4475ef9bb9bc04c1c6623226012926fc7ea9de6138aaa4027130362bbf43791d71de97581b6e0002521f8be7c47d66009a841c685dd808c41820a76650e9dd8c69ad18e9496d20ad3df8f77dcaa4366ab7ce0927f7166676cf0c50a0ca336ab3cc96743f25d836e1f0e3e6022a85deb799cfa800d4a8678b605eea63ad4bd9362abf467330f1879cd2ffa2019327c125b74243cd38c5d3160bd8cf2668304ced2b56428d5138692dd574e367b3e58a1c620d9d927035c50f9e85388d3d7c91ffd4fc245deb6bb7912b295f10f44a842f5f51c646d9c14e702a8432bd2bc9e47095680988fa758add5fc8ad217c1ccaed6f8ef2571eafdc52cf5a09a2f60dab36d9a94a1557cf602de062714fcb78c8d7e6590235da2c26f7f1c3c7ee0b79e73d5616234602c01af9937cf86162be222202a8d68a61f22f6053c0725bcf9ec939ce274831c941f3f8308d41130a6d618e169a8156fdf6062d5c8fc0f2f1fca5a1ecb091a4df22b4937873f7605b56ff8c3fa89580603498ba1085683546973124dbc6b8ca26dbcd056d5f32cbb69ab23abe641b78bd3ba7a69971198d3daa2568fca1ce9868b3ba500a8197aaad88c62fded9a593e38cdc427e6c98731bae315abfdd03445b8903af2cade0f5b9a3855c5013d3aac417e72ddb8db2c0813f7b89ad2387bd5c658be2e9884dacd4c215d3dc99f69c89ff361c0a4dcf0b435482285b99b3e5d68ae6b6183becf761044cf991fcdccea284b3ed09761a3a1337177b5974250e3b5825f0e9260db640b75818b92f301df57fb70974f15f33d64cfe65b46b25bcdab856f0bdf5d4320e6bb0465e5c85473cac3ae67e11e831de227db1411b6ae7caa9ec5a815171db94ec01e058ebcec6bc32d02f433d8d6730e5c4fb0393a08c7f5f44167f9f8ad58754654a938fa9e59a89c75c482d48d540a2e347772f677173588e518de6ad1698ebb9693413c0e9784eebea1de36aab33d151a3966e898baf558c7cd2f0dbe1554d266fe3d6e029a83ac8ec1a958db1ed32291c0319eb038272156fee947c463842ffe32711f22da79cb642e1cc0068e3bf6f0e8e3507da79d9ce8f91d29e0c35e2652b558c577c95cfc0ca0c2668976a7c17a7401cfbc8c9161debe7393382d2885016222ce6cbec68c24bcfb4feb818f5e07ee0537b6411d49d307a2bce542ab717f0a3083243a74d74b807b6fffe52e72b355d98150c7c467a787f9fb9822b4550d9499bb60a9c944e569c8dfa96104a23b1460dd7fa1e8955d04dae8ff9994db55dea95e5a994cdb83c9bf68c64e52d8fab4eed613a05188123f39c9fc80a1fababe5db6375d25606b920f56e90ea198bc32ca553072ac788e5d21500ee0b313a92de7910a4ca407c4e0bc9df4553b64d537b365fb80095e33d82fac805ba81d815b30388012bbb563639e56bb7ab02e338e58d149d55db549c515e64115e0e1ebc2512aad0e7fce4ed0df7e2d0353e25720df8c54bbfed9edb8188f73d8c148a87619b69e4faa96528d8112c616bbf46f585ff0c06e2aee1f5793bf13eb34b626d98b589c9d1c245bc0d671355f430bf75e65c285588053b82372655753267683a45cf042e356de660d0618822489af9cb67312774f84b34212b8e28fb70839b2a979c0e36afd8e39628ca1191ff2135bf77ce382db209801d6f9fbb54050a0ecf57f42d1a65d023152b9228c8f25e8f1f66aa6e8b21e949cf8e016f410f6dab51d41c983a6e337ddae30ceeba88c3d37819984f587affb3a4cabc8c9f0f851054546f3bfeda2223e3c68eb0a40d67bf0de597a0fc5e72c0d64aab4a2ced6646a1c49ed281ecff9c8992e1d12ff786525ce6f4119043e68865cc3bafa8d16363b73b784e8c6451997bb20f82812272c1f3b940b79e51039c962f175696cc187202f340a57b90272609932e92a5f5f9585fdf50c4c6a1e6e0819c00a2ff4e4a790711604cd74a88a230b2d6ca2dfdf2e4c19b1d6901c0ba2de2bd3451c0d106d0b74e8b00897fd0f9d252b9284a12b9361875f81521fe053de2a5f0af03ddb42292ce959d1c16bf5f0ca1dd8664809be525685a71eb8898fdcfcad1084995d46cf188b75c2118125278e454d29a604715407223050025626b8169cf46224b4721ab2f499681570c25d7abc094f27eda7646825e9f8437b779ff11c94a1b880ddd3d5803f1a2f8ef6d2c8edf47e5c541d76d0f3f173cb90c8161cb4bd158f670380323d53366fd754281318dce6df13dfd78ee5f5ea53112e41a7fc2e449e92245b236d99b23f67c98119d0d87a32c4f24a93c73658aedf032ea024e39ff02fb1d4a708e023ad011a62c67e074bf2460a78d05b67cfd3bdf52cbb6cb1f4ecedc55b213701aab48bf666b4db8d69f83c48b79ed4551795d4976a55aa3b174d83b88e4adab569c19099461c7af11a828d145c715b66ded22f8f5777c72c342829b41f6b03387e6fbcf8b0bb3cbe4a86e500f7848edd1389404a9c9042c758071c66002479b58cbd6485f6f7d97c7ebd33bd3fc9fcfa2fff59499b3cabc30e741fbaa64f36926311fc7c96395ef9c0af291c992daae3741e34f7c37c297f25d2f5a67c5ae97a4fd79ec91640a9d93f51c02761a3915c72466c11387cf579029fe80acd277547100f8a72c7f7ef839553b1457f9d1d5556f701a1851edd2513624598bf0f70ad97cca09c532d3755f956fc6be290af41d450d8827751c2043ab3ded135c3a5c2fb8de71a4255dd27d0936565e1fd1c46adb339803e581a1751bd86179bea934f474b0a8fc77f102a576af225afd62d3023cb4ff7740c6e9a1b8c98c2f924ebf11150d6198c7b530463836e2f55ab1d42e0e2ac13bf5fdd1741467152e7a4150f0a42be9b461c00506dd2ea05e6df1ecd1db5c296093f98c22b2df1a81909ac96da3257854f94c05d6ad636b4d955d49b13cc6a30a9566426e4ddff56b736fe94163fdc378dd2144c21ec6c60c65dd82cfa286167dc1c1b2644d702f9b4eb8d951407abf55be0d06d006266f0e67a36bd2922c61172f62b4a1bbb68a3d17790d5e341c562534d9a00a84243be217eef2220519e5d963f155f1e19225f048b7246c5c552950bd16f33a578e65c81c2787777f850690881ef63bcd326b66c505260d2a41bb6436d1f7d1703776c51e1399217812a6c3a20e3c83258ec4f181d82c4bb670e310c85cc423a70e07e510810532c8dda6e1e67aefd7af4f29d2fd209b0c903be75d68f6fce0cb8500cb038cbbcaaa6f593a1d62250eb8e38985bb2213e88e4e1478c49539592debc77bf19b1df6ebe73f01755a41aa5e4c58976d2b97ac944d09f108398ce657a592397b6fa933c8831f41af0ae422a3d20edd97df344e71d0a1bcc00b15996592495127252042d3f6e629c974e07b432d758dbdea7016f27b1fc2627e6f40e045aabe0b85a0853854eda2f6ea51f25c8fc7b4afcdf1da1bc0bbe128fd3c3fac700e1947d274fa0e05aefcc086a29b186a22a02a559616e00022f05ffe725e5515ca2ec56c15955cefed18b3e656793c6657ade320811dd43a52607afe6dc8d8f79b1ba2ca64586850a881ef7f4cf6e97dfeea92693e1ff85a5c3b8306883abc1a89a2abc44677e4832b508bd896b31f634b6d37ed5b9e8dfd93c6dce5853162efa384ee082b40c948ef3d7b62903951f87f500535b4541d2ba41c0b6753c15d9c64a277838ff02931abcde10ee1e97d78225cbaee95673b5e7ea46d4d44ac70929169ff7b2ff71fb37df33cf8754826fd37e3ddef61a8b00a33a3ec35c5de322811d1e2d312f6ce2288df875b3e5622da976e35e2b1a3db6522d59f1482c4886f2e3b5896a72592296ee26f4c9ae00793b4b7a70e70bba0a005a1096a99f16cfe1c10e46059425a70d4d6bc33465b8db41a097d0be783a40d92215dce27550ab7bc98b121f8fd3527dcbc93def25ce71792bd784f52c6ccbb275ca462a3a35032fbb569dc8a93f34b9ae12c00d5413e5237161b7087b2b0c7f1ce5180d8bd7e9300a461d865f1a79fb35674e33c7f9698690dd91254e324adb9d9543ecb0a407f4f0ce3cd11b66db5e0351161c4a6e81692020b3ae0ca73083addd2f7884d8ccb795753494c4014a63142e58146914739a1b2954bb4ab5b6db2cf3853ba517bff93e6da0b2140a336d4af3f77e90bd8c6bdd4271964c9a3e67bbd2f00f00aaa2fc975aa17fc61b26458387334f7b35352f2e54543d59cfb753d763bea4a50f1547056a24438ec07b964139c390f1bdc9c25fb7ade3dc3bbcec8dd026fff0e96b25092cc3bbe4904e72e510f7dfd6d30eff7928016f5b99f325bcf2f7f5fd725027b8e98798a1d459cb74013aee8817b647779c8cfb32738313dff85bb46ffd9c9e3d6307fd65ac40fbf339c2038e721c009113f7562e6cf57174a4743b87367722702aad05d70d583d4e191c7793d4ec149cb80583e7b3c81debc38edd89247f0e760bcc3aa81c4d31ce86ab37bc21c56e75df4d38fad5d69923cac3c3771b30017a35001f76aae85c26b135463f2c54817eb45a60064dcf8b80a5f96612223e5e6f15b5a870e7bfa50976033956d3a8c029af05998283503d873853183381cfcde6142dbdd58dd9da53f432b97ba193279719d1b75e2c901d10164e7c7177efb8f2ae3dbb3b122e29c20a5d05fa830db1403fec3f761d183e0763fc0a1a4b7ccf1b8d0ef2aba270a73bc5c96dc9758fdfb61429edd215d8d6bcff038d74342084659e8e288dfebdcda9fa0cd8be3728386d6a932ebf19b0bec55a4ea45ada9990625afe145e71a5f5609d0a3f0a70e6c396fc89a7a84ea2f56b8f9e441e5bb66c59a2e2e43f7a7fe11880103005cbde8e12f231acd2800e1eafb19534c01be4d978f2efb850ea2c357591e94c51f7ae2b689cddc9d8bcb4fdd469078f76d732581cd50124d68328f81dd08cc84697df2ed48a873d01a7bffd8941e34683a9eab320cafeb237644c17687950f0b281f0b06442d37a5f7ac2ad9144619c5a0ba17248149d5ec9c2cbe28d3458a0e6eb2bcf252d1da7c6d9693e07d792a81901d867b01e591866cea88d773c4bc91457962b5e92031e8cdc99072ee3f2d64ceec023546c9245dab35db013ca3df2005b726bdba97aee1901d702d2c0126606cdb17ea243b03f1e1787c83f411fb4fda7d8b64e1cee5a51ef224c38780bec44c13813228863d060891db440e2ec3d3bdad53bb9822a57bd34e9a89f42edcea9427fc1257497bbe1c53238cb015fce65f858a9e8b6c912956433fd506a01c97f56db2b912467339cbf367d9c09c53d94b7feb70307a5688e451fd33fec546d11940239ad287a62c1c97f8fa2c34a7486de6e9d269e606d80f77cdb3a7dac9c4fed4f950c887ee4026530deb4b1eff0336292990fb47be6d53a8e64acd4b40fc875f22f80f01249ad7b9cbedc730f43aa15626cdb5571cecf431be6ea5efcd1eba1a8ba1bfe57969216ffe72d7f78923b076fdad1d95dd597c3747b19b905c2a5b8e02c4acf8bc4c4d4a8f52ea7b417fde48e2e42504ddc2211866198988c154171b442f256874020b0cee9d13b55a0950248b36f83cf7ae39bcd790500e9d29ff73af9aa1eb16aa6d8c7a6fcbdca0e5cdab13c8e58ae7a4c12edcbcce35655c1d01916006bfd16a8b0d875a16c8ed7c523809dcea3ab5b23e6850049a0cacd985912a0c6f3df0ec033a081672c2a8525d9d72f7bc1fbcfa21842e673e3e4be33da866081a2a78d9d52dc5ce38bf935b9c65e502486ca3c6d783cf026ec8a7f30679768d50899c59e0d81785fe65419097dafe1dc57783e4fbb76b4eb40a2bd840b84890e81405a3b580daf34e735f695c0fcc686826523d21daf6b5c4071f693f476dbb32ae1e63e0fa0bcb2ef4aa7d7d0386a2f19126d9e72b274142d30ff959ab6392c359a73d38b8ec09821dd988b2086387cf61054aecb3ad13097687f4d1f85c2722ad8045c9d25be1d10e34b5359102327aecc41502786a86045db710e5d9f5adb2bec0c1ff4cc1e895918d7a2c4ad1f8b816554f9ca13c385ffc6a614606326e7522ff4c046fc2e5babf864ff73d2a540a9ffe0e7356211e5dc94412a44231429a8ec9a8ebc509c05f30ab08dc26f33ca85b1e995d51a23e7f720399eb00e513a6268cd976698fd33bdff8df00954ca5089e1adfbe5d3af68a910da8a6c6ad0be5ebfd299d1d84aa405c46077a47f6e70ec4b18a22774119bade9446cc582ca790706e2b9fa2c5e8ff9cfa49c96adaa1480184e85554fc574d4e7eb06c2e238721502a90f31d679a16ea765d479ff09652e6125c78445eeb11fe1159e5bdf5b27e416c9ffad02c08210b8c6aa82559ec1fc49a831d88ad36470e25f7a377335d546805566ee9bbaef867f7b32bc5c7dcfa053958931405c16269139c09abc0dc911c4569116e6d461162a4fc3d2c63f95fae1e0b0cab0997651c86596922cefc5c9564a0bebd8de477da8a008087082a705082e99e0db3b9d5c5a7c9c8a9b2a792bcc9f3528e28dce0f92de5f2a716765138b5b06daec19da4a5a69b1cb04d0fe7c903db34230f73854061087a93c134560b7f4209467ad15f2d1eb099d9f3976db13f9a2dabb19c9a1274e9b22ef2e305610bed8be1994c1cf541797016a80a6f68423aa6b05543884b64867fdec67f00d1f2d17735512595b71d5bc4bfe04b3ecb4f9ce03e4ecbfe5cbbd01f5bfedabe1a1eec16c948c71f89c5e5801bae9df378231230bd188b141ae05bca5e8f77122285d8d92660b5bead8c416cad19566e034733e66d4b59f614488607a013ed742b50f9fb579c050ebf86a1b62eb335a648add887d93631667b645c192217ea2085f4a00b39b7a39492688f6ca3b339c07cc7e55f30c66e323644c967de7f98897fa88e060d331f8a9f4a8eb34f5c8e07d2edbcc123af6ee027644acdff4f3fa66d4f8a7f10f7f4cd91f2c885a0569c320e66ca741262fa403f4e66262ed3700751ffdd9b679224342d4c68948c250eb23cf20b8fe0b92e9897c7f7b833c90244840adc76d227c36f635fd14cc28fe3f7945d54637ae83a9046b723720ff51749258531280ae135f63b4af3b01bdb52d57cce13afd73c9eaac7cb4c6d56ece888780edfde19311f41c9b89d3bbf2fcf992718c15e8c31079dfc74f069116e1a437ebae9378b6c4db563a919cc4401f28416d93bcaabb6a1dd328df8ee7e866e181cb7d94317d1fecf6f39db724a7aded4d5aa714a8a7ca66ad1c1813140abe696f2f753b37f638bb5d74d96cf97df8b6ff88ec6b908d880238623e0eb0c050c8093063d0e943c8ff486045428ad798bb95587ab451b4e0a4b89dabc284890443fec34b0a8957ae8171cb35629b9de8a27439e08ee4527281adab4c880dbcc647a03be441b7f16c9ac6ddcf5136d7883893f59c24c076c3537044246b858609e91ced177440fca945692790f76231d9301921a4d2fec1bbf70111c9199a49416af1df8314cf93adc1c845c8f18afa84fd6121e0a37dd826928057e2231e8568dcf656fcaf7883e8bf82a6193d813df4b1d50cad9b803233490af4af8854987aca94f0085f4c876b25e966fc2a688ed7f749c25bd0a592f88c0e698195af91f8f5ecb461084d666d5b4f893ca8ef68a113ddfab055318cebef4f703d141d2b692312d2767381d7c72f81fb78d3a5b408f97cc564f7fb5d6a8f189cddc939d9d5f69bf6e92a043179450534a5e35321896f8ccfa3c38ee5350c6346ef44068548e02933122f3d1323150d7e8a5ea192e246581a8e653595ee12fa4114fcf6205518a70b7a78af9d8c7d3466439f77bf969b4e41ba4f1127a074d07f82bc79cb90ac61e9614a043e1fe4721cbfacdf7e6c2b2a41afb6773e35cf132183684a9a139c466f3a553ed569e5df09426054f9f0b983c46a5b2448ffc5bb3cf405317bfa03d54929a93ec29d952d4be4dbc21af1847b56db250bb130ca97f5c71c03d0e75b9af48c78055c1051fa3a0f51b32e01c96c80688fd2fa61731d5c8165028d7ec249976faa5889bc1c5cb904175485f855ddc368dd404c0f6879fdbcc7f2a9ea59c08c163dba6ec19647685711615d72331b96a92b26db19d6a4efa6a881a757b4885e7778d89ee076b4a66f6621144c553affeb468df4447b81a08189d8c37550afffbdf0e1d4fe9ea1ae0786f5c92b60644263573d77b73d3eac21f6743afc25fad9c7586703a7bb5adcb07f2f3ff57dac01395bd64b7f54868571c39f942242d5d0a624b56d8974a1cf4da92faa5542d9a30a7112c50c003dc8ee9d1da1267486b522fcce94f42c9cc99595ffac3b9fd65e66f2f5d9b2d2c7a52ae8f222c9097ac836fd76fc6154ac64945ae55d5ae9c12d535ef8da298929f84ae954a8d09bbacb90ceea2fe8468e852a28a98ba9ecc125c813709a0e736f2f894b224484eae5da128240f9c8bd642f8a2e8703e3101d1133dccaff606b337bb3ea7c1531ca30b554478d71e3cf91b6bdd407a4078e3ff4f4455da403613448aaf25ea2aa1f4c661fee3f6b3f827fa81d3f3875d8b0a324dfced267406f4768e54d450bc3ec3c43f33859bb86e8b9a0da25fdd35d2fcee5bede88e143862301ec634907d66c790082ff6b1187d5fc2d78fb79fb628dd014cd915e339ca3c9acdd2744693f41dd3e33218f61b31b17dc4f63c6dcf69003473c53c309bf9a8b0cea76d4a7e0ad464da047ab5ea05dc5710af86b42ebc6ebe4b1470e84846df36dd9c662839ee5ee041879ce268a6ee673296266b25a177a36c3876857a7340d0783247c6ee166cf961e7b6f0ecd42ab097fbe9f5e1c6a1a0a802ad4bd4998d5bd55821ece1868a6d8e704cb6a6c70a46fb45423b9515b429ce81f1aaa6dd8ce64d256d08033546c20e0c1c4568d3fcf41c39d80eeddff71a96fdba8487c65fed40e8b9d5c27574c052724f6b0fb4a04077d9a189ee6b9d8207fcead0cc208d55335b9537d6efa716d0d07d5fca3b06992057a4fa5581d10c2f4b2f367ee9cc34102bb974d84d13d289a211c6417d2ca015390dcb761e49e0c9ea54fd396567e244888ae2e6b36b3f40949dfd00ea5f759b19cb2ccf5f3354cc210a7fcb19c30be6d6513842816313c4783f5fbe2938d0440603a1c4b70d9389a66d8c61b712309ea6135b144cdc7f978e9a25610eecbbc7484d9895de16796d0ab10471469989dcc26f6484b14be3e735aace9bce855cb94d1ffd76c67317b07d25712c135db3d3615c44750fc168541fd3e9f2a2f04cb3bb534f37bff906952e25dfdaabccb02ddb469b267fb2a89a19355f046032893da18dff5cfd7b934bbf7d2e73ac062e98a72ec5c2a09a6b3879c85991deee14d3388c14375b42abdbe09d44b4318f34f9cae14ee35cb7c3599465ece62006e33dfa76441bc6379edcb863611777a2948831b796daad1aad7b132c35deaa287ddcafbe9b8b6426804c7bebc93f0d20c81466c27cbaee3cb285e06ed5c30f746a8b2fd00f3bcd177258b1d7de2a82c81f2fe5244d9ea5be22262cef939d2c71920ab83f8e7e758665d643506fe022a0f6259cf3c210b95dc9b3531378a1109ba0e9d7626b2989c4fc491990942400df24e18cd62d74266abd38171908355e94353c4d81f98f0a15e2bc98897360a51aed191120ff1c4affb3aa440cad3a771cd53301c7b9a598343d0b26735bcedd0b2812d7fa20a4bf7e41d3161767336b6218143c9166efb54dfe46b0b59e5d981c681eb99005c93141f366f19c925d396811736751e314719d85503d412d7a3ba446adc6f5d73deed9048d875ba91740f8c01930848f670c5061fff96f0b9810c6ae6a5c278cf71444ada9b5b1d44b418b084bc550377ed55f1a8d859631b90ab33800087a0bb15913ab91b6b96755118ca2863ff95daf9f2c21e7bdc311f526793443bb3140196f0368d6eb29c22ade1ce1e10af5d8513257468c7f3c1872833fa9fb75da61a472021e6df2feede4f46a6449f9bb2507e19157912b442ebdc3e7b116a2bac987d8a41446d2422d15f3697c6bf5f2461c2f66beda56b01631a9f09195d0ea64c0f6326684a36436e2d71e74874200b0e2941598b3b6d73a1f28592132f542aa5ddd399cf5c639be0aac590769503a7f2434fb40e86aabea2580bf68d9104f65b463981a5bfc31b80ede22dcc4ef6474e63ce91d4aa1ecb1aa48520f6c88f3a39b06eb792401c0a66afb88078a0c3374e1f572662c008275b1372c6772fcd8238032b34cee440def0cf673436dc7a60b9d311b77855f647aa44ed8440b249c9cc2e6d12835f477900d0c2bc142c26e9ba1f6b4a64e89df2ecbbbb685d53e6995aa1f847239e8920ce565e75400ad1423665d80a776f89d31161e21de2a8c65840d2e11f863e78e686ad3162fcc7de5f244cac8d2fd29092e602cf49105b8f08eeb82acac1123d6b3a42c7332a05b10ff740fb6f5c6f24ebdccd10d2c3a9f4299f536f9287a02d1f4327fd70ef3d9eb8e4ef8ffbab956793cdd8a0117fe4988e4222a28f6aa50d71089355e8403b38ea4bcdefc57a091bfcf59aba3e10f13a39fdabd8dee08d2192de60d7ca5f9de28113916f7b60845733456f4483efcb34a57ef627bbfffb10bad28c7e129e57b95b09b65748ee3218748b18c88923fe490f0e129104eb47991466b83c161231c7c9c6fb18924e34952c4738fb80b02cc699d18ffd07b1fb0fc394ac896d3b478c4b8fe390f2f91f6e8599d8d7d7538ceb6551034c9ad356b59b09d18385fd88d43ff3365ea7817ba4b363e344349566b1fca1866cd80fc9d6900ab5a089be39de8abd7e45e78346669fadab4e660398d2a0f2358d1e0e7cc1e97c8bed81eb6fd06ad88ba5cf3a6ea8a93d62ef59ca142c6475b2560884ca84b75ba8dfc89c9881f462f0fbdbba5a919ab8a26749ad5f6b1ab8a2388cfac0842f1e07b53a98f38df225837919e262b302b8e626b2d6140d838e2ec683daa2dcd5d6c664c07813be20f4e1a6882d521799040e44cedd5fab449f8322339a6791a147a71f185560bdfd46e7185f26ec166089df8594d7839c937e527da1e6389484c29060fdd99520ad963a351bdd62079ba381fb804755e19d02509fd46bf59401710b8d126e43bca380c0069cf4e0b3de2aff24a84abe631627b786416fb0a4b988c7252ea04d4b18ce2522af1300a8c6ebcaabd6653c857966c41304c82fa81b061587edd26a6572d0579ac62f534a195737abbff561fde4e837c5afe06e9a9fc16b39afd2a7c531570b05c907dfc664d6fc887b5e53089d49d684cb561b9f3717e5d156c5e2e007b8368f2d529cc95e8eb75dd9bd4be598fde9834a7c19e5e0e2bf627cad50cc1dff9421d695f608915667ed441216a5b096bf279477fd587e48dc7be98cf773c062249559614ea01c55f12f437e974846382806edfe9427679842bb850c3521ed82a9f7af98793a9efc9c69c78e432f8493faf152b45b1053a59ced1472375178d22be072dd3f0c7d2195d3e230a3d58aaa8d171ef705888e0bb7be689683dbc8c474d323aadd9e2e7b6cd49051d5e3276b3e29f998f9aaa03c05fae7806f68610094b82a95846a392d95c8a1f80c8cf0eaef9b0244d2ffcc9d1d5b8d47a737b2e35e5d7e54d84000e3e95a060e0c39d9af85f32888dd091bab39eebfd4ab36ed1ee80a29877187a0a0226dfddeae8ca4f9691f14769eabcddbb600a73e4e67d6020f2a1bfe5d426daa6290e6e662aec37108e72d664b5974f897a1db6d3896ca69f1f7fd399ceed0cbad0dbb55a8e9810053669b0a4f1b00ae03b299eb656176cd704af817a32ca0d56a7e6f4c969c95c7409a3933c960866cc385d2d1a58ef730b6649733da3a2763e6f4bfcd5576706b47fdeeba0aa29b0bc513c3011ab26204acdb4d581e407cd4d1b428f0a405e9e5e533e4ed1bd36f419bb6eff7bc24e70b818a3a793f66e0f3be7b0df4549717161cc9755835a616b5fd7ca7ced84a0ba22997290a83c439eba759517fca648022f1faf056469ea557420a71428d2abb61db860141211af0056819e1658012e58bed966dee73f111bbeb0603d64e52236292620ebbc758b63a3f39f214837e57809de6566f903bf8501921aa85630f92b38eebdc3d15ff0aa05373f8ecf6de679713ac7522aa00b8d6129d3ed467f4d8b9d0df97cf204379bd2ad693948e3088a1622e8dc97eff8cb7c0750b5ecbafe855a14e192ff00ce522306df99415f5fe9d2556dd0cff5390d8310d49885232a18d0bfd21c802c16bce3779985ee841033cf9d91b07d369cb15186d0d56932510865eda689cc6daa3b0f238fe2a791edc84fe7ab601d7bec6b24b17d4e57bb29731ad84743e2257450e78413a0fcd321d6e5a51701b97753e244366ff9cc897b7084fdd70e7edee8495c76645f8fec55a1cb628ac03d7b7e6e39f7df5908e9072815ead72e57521acbc3f342d39ba0cef8fbfecf52c0de96972a1caba4fb60a8abe3b5adb1bfa0eb86623f505c9c2c7aa4ea6259dd9e3a80a47af142cc47a2d0a1d08aace13302309da1c4de54c6c328b5ea184722dbaa5932fd31d3a94eb2fe0db2c98ec26c18f6dccb56067902241cf8e6780faff223f7f8e3cd3c8016bff7416d339c1a2c99610a7e08d801de12f069eb801a78263f880f8bb0d1409333686b06cb29c5f58a5182c6fb49d3abb60f144d31feaeef8badaed47e2bb31ce61b79e2938c529f43dfe569c0e55b4558a538ffeec33580fe927cf7982da499c99952c8228358814b3e5a78199297e6a36073502532d6e0a4088b811adc50c5065077eb22c57e0a6b18509a10d23644690f6d6acffc173008b54a16fae5d8973f3628f386e72b2899b64285e673cbd4b83ce1c4e61cbef3c25c7f91af10bf6df9fa46458dbb8ae14b2766180ffea4c6f2987b13bb36ea4bd4c42033d1ed38244ca7fed987b29af8e106765b4334048bc891b064e1a802ab5441e4b25ce12a4a6fc436143d4b836b376154d0a9f67c1cfa60a9364d17c260b482903c4c8e042dd61d07ae95c71f235e3122377e283925add7b0add65ee6cd94b436e31d6193a138c0f0add037edd39fe26d551fd2b3fa392208e1f044994ee91bf3a261f8c894a8bb5c5b6c25015d6532818d6350b2a02332d8513d496624c0b766f811dddb2d4533a25ce42571f9a5eb107a59165ea67800320a665823dab8aae83c31c0dc6d9744a50c691ef5d04627c3242de8283d13068f04a2d9243f5c64f55944ababdd41e28de00e68eb60b157053974942bed8dc5d3e7210a7fdc82dfcf33d5785ed167ab63424734cf7951ca72e6e8a58eb243effea190210a8f78506a32ca6396f424d29d49c4e425e0156fce8f898fae2f3bdf2c33cafc4ea09626807740e9badcff392c1176476c19ef1e5b749f7f62c975351235b3b9978b86224324a2bfb658aa4ca8f097a3d3a315da9f6d9897fdaf6b21a99fc0c7d757449be1a893cf8bb1108653b2a464ae373fe3185040026c109cb902428aa16b4dedab2282f970745581fb92bf391da2c91bd14d48bcccc745d941435eca44ed34d91199edea5ad43287a2b30246fb486aa5f8a2811ae8e94952f5e43da979b044c1fda105c7985a49bbd393e417ce5a355b16a729fc7debce5532a55853221cc1ac21fa313e979b1a27a000a1039766818817285214963b7990db7260856f45b2864f4569143d2d97f5435501c6b83a5f2695ea6e7a74c4f8ccca906804116449f8f2dac098ff45f4b77cfcd35926f24d26da42325672b87b1c238aa8dcef810d83015b3d159ff37715ed86eee6c1e261d60d620737086cb8e92b160d6bd9d1ae12878e1e21a9de431eb1e331e8d6c672c20f7d24dfcb323bc4db7168213a336ffaf04435b22b3a91ecbc6a460fc54f0cba34c2b940ab75068c3d18abf83ce3726882211fe19cefea02eee8192f0766fbcd178550b6b2340d51e28ee3eefe92583ffae59b2156ec573cfe3675a90eda7322ce37cdb554a37d8d580edb5ef02e1f3c2461fff3394692647a7e39cc7ab83564bbd040f9431a15be7e0c75c745f738980074995ce33bd9eb5ad48052cceb0c6272cbd19381778da6964a9716eb9ad0c5af3cac53a691190b7241484f1944c113560a74be683d9e9692afab48d93c9762760ab061a98ca0aad2d70cbeef7023c4ca6895fad2d72ab186eb2eb0cb9b576891ced723ad36eea4fcb9fd2b106364066bbebf06e2d155c4a270e5f8e3a61efcb34f1460730f8659a7bb955a486348926ed12fed74800c944cc2b5d087ad1779881966689e70682fdb71b514081437835d13c6ee95205d3dd0e3bb7c11710d9786a38d6f766699de7d5738b54b442e36a9da68810e50ef0e9aee1405ed205932986b142d8b152e59a01050959160090c86ae677cff23caafabb6554fbab2759bc02b277afb781dd534d1a96d3e0e2bd44edbacdf5f9231e6de0fd4d5ce673908aff0ce7417f8edebf0e3442ccd2729b646abdfc68d18f7dc88f610f27a89cd4f7421b2a64498c94c3048ee0519d64cea6f850dd7c58898e6c32547d305d667204f6f4775b0d327d91ff10870eac40efbd51c12ddc88442a90a86f01d92330eeaf4f0f2fcef0c46e1005a012ecbb6d0a9bc1c20b01ad0abf8fbee30879d9547f2b5abe53449d120d922bf6a0c8f1642048fc6b7c3dbd2ace8b6c3984dd97938edc3b36093895e357d9a4f7143b6319a692e451e85325786e57fb6968d4b5f63b2faeea1bb6ea6f1c71b36d9567432905868da49a9f74e6c6b668c330c99cc0d8388c96778ef98a7e5284a210e4254318b6000c43cdba5e96eda424567105be6b2aa3c8b014076d76db2637b1ac0946b159938a77239301af9d8315de886dfd30932e8e7b70e93b4f151ddb6e281e071335d4d92e5b20a776f5791fcb9ed8531573aab6337e18b6294b3e427c3d745479545c8e45087b94652e8495a7f12d473d1de537563fcaad77f0e5d2d7750dc08e960ccefb91540c8a5bccaaff5bc5ee7eea7a6c06dbfc5381d7a80bbf33fbfaf406828b74bbd0960788ec50e550f51ae3bb2542892e90ade3b70a8d35f67f0cbd08cb0839bcd79a9025e6d76de8b39c2a4d8af0caedd0ee0c05ee0883ad647df550a7dab6e86229f0ca28b330fc9cd646576d7cd55317e4c014b816b11ff4a316b1dcc4bbea85a984424218cc53efd8de827a1e5e635b0097956310105d4e9991b16a8ffc89366abee8116561e1522acd2a07a03bb7e0247c55fba9b34406054cfca663910415fda35a995c150e7a07a0ee7ae3e6e25bb72e5837eaf1183bd81f978c5776f7b6a34e74c4529216f0531b154819fc623326c23d3688e523a04556eec78c0cd736076b9fc2508377a6aeb4be9d95c01dbe8c1ff98c77ee6b24c032af49b097f709e8bc71cb141a6a131d16e83dd69973a1c380d626992f782c8e68726ab6bd255f72989b68918d70f387a03c210b8fdfb0cbf6d1af1c1025908ba036e9660dcf876967269f3994f2ffd4e4b8d25fd227f12be43d831bbb88ce08f7aa4eab76ba2d6b270392f8ede92cc1281dad56331ea18d81b9585ba0e729527d497f99cc505721eae8772cd99e3fbfe82f64c2a9f0699b597729f4f1b89d4db84186e346757c585683fe5d9c74d00652d0834dce0919ebccd307ca27bbe0ca2033e3ac02ee2d9523f174b600c609b0c8d8ce0a608185838e3be3687b18e594a1b7e4c4805c11f3a1925768d2d1b53062d1a73cc01c8362256272d56e9b88101cbed9ec23c633cd2f28175764b76dcf6972ed5c76df04416fc8bd5341f36638e5b42320b4acf4edc540354c0a83fba9ddf6f471ab2bd1b5199304f97e080012468473cbdeb60bcb6bf80ff19d4a41bcf03e8ce8ad7269c128b1f51b6d61a44cfb58bb7fb3e86aa0c006f795fb5937ed89c22d7e6f7507c07452775b9f96d996b53e9ff4256cff12741d6488846fd387c353d0410615d2b828ae760167d7285b978a6e1d8ee99262cd96705b9f08ebad6bb1fc542db3ab0344197afc5c7e8901bc15f0aa29704f182674e20e33be624385e912e2c2223c491b6def87d9b5d986af478b9396eea78d6cac6a722eb13c88c78be9af462818f3d5bd70e07d2c1738f1f097225a3ba79da0caee7b020758181cac30d6618a283cee60790eacd949a376f5de9e5cade75057dcf7882376f34f22b542595db2b233b54345e70bd2525c28c795cf6a44b55a3db0a0ac8ae24424ad0a4ddfa6dca42fce91d4e0082c110863b05e86b2611ccc8d649d3c350ab857427cfa4350d9075db1ab4d3b4ff48e3c77ee17dc4910e7779b4536c9a441a6919c87098b915cb857296d374f563228292a9c83fda8ddca204afc4f8d5e4099492b6b789542dfc9f4d5c34585d2fcdda5336c123c294249b1960cdb2c6afd6aa690083108620f35b5aa95b299409e473dc0335b968e99046b0ca44449d69bd46923975e0693d0b3a86ff75c525dc9d300f14409137bab8b314db8c20c34673ec16d26d7bc9bccece23fb328bcaedd4b7b5a994b18f7c3ddd28f75954e18e0e25caef0423fe59350070b1f5859f93bcbe185cc0e61ef5b29761bfd975b9bd8967e587debe2fd4d4ada1643da67caaa9cb76ee68b50b3518727d073babfdba0c8c991935c1618faa5387750c78befcaaf7505f6f52b77b1b4cd9f603fa67943887eb6fc40b0893f4e509a6785b7fd9b986aaf7b5031d40d0db50d5bd68719d2aa71d31625d34dcec377bfae4f20c9104bf4c6a3b89944684741b409eee6e5c15a842b3709cf804ff08b7ab8196befb304691451ab54a9a9b745c270d7cb0b58a795b6dceddce6e5364e313a09034e5c16815cf711b1c6aa16fa7890948b3a26e5e89eb2c32b633ee4d6a11200b889f17fd7d2452038c4cc1280ac536c252997f1c3c1626979833060d25aa0f058884090239da14cb5af212b7447ce9d2c118bab983238a15df3eec2e93e68f6faf5dffa215c70edc5f7249712c8cbccc42e043365b891288006c8af69060c6d03c02416c09e324552f0033d0fc0ad01b141e3c1164e245b2e317697f4bd907fd89c263300686e07015276f85d549a56d611b42fa3a10d0c288f00c4cf43f5e9507fd4413ab469a00db926b4cebefaabdce589723d95b67e065d2bd024cb18e798261933d0ecb4c9e826ab178fcc49fec80becae81c185a9537f786c635df184478e0fcb29738535b27c0dcc596032378655d2a8b5ee612c43fab793c95512d9cc7c47d5cf1ce05ae904e49859eefd935297b1a7429b04a501782891fae282cf36f619edcab193acaae9f9db8c0153fbf02a981f5e7c1c4bbac7277a7788e48d87c80d4cfe6d03c56dbd871dc4b643dc4e6c5ab16ef73ffec55a73fdbd9ee9a47d014c501382c15080f2fbc22c3eac70083ecf531ba5af2ff2c6f8a9ccd11b8abb7324adae95f9c168625322b761e17cd6851cb81ad7e8517146360fce9ff213b136a277143dab16f3c801788df6aee679a9133bc90f08b8d1382b59b6dd39f2862530811487b43be9456a813f6ca6bd2a189ef54382fb0e4b9ed849b132c85c915f4db21475acd65fdce7bd3c45bd8ee9c439be479d85dacd9e51b2589985727cc75157537a8d800ff56598b5953b1d53a1852d5b7d0fa083025ccdcde3c1027a85429107ff2fbb69de88fb0187fadabf28def7da754ba9d9b9a01dfa33dbba3583b65cdae2942bf84566123ad8f2b989d7092e588ca788c3546cb16e8034f239f1cae04ef2ffe21bbfcd37c45a1b314caff53658fc8fc99d8affed92167c8ebcc227f81474e2c0714521563973978ed3b58194eeb58176fcb46f44161542ba802d1426eda19537f8b2bd39279b35f139715dc5d8d7ec5ebc521772e2f1de67972c9b69b925e5fd9146f397e6e23d836172f4d5bc3ce746e184962e1ef0a9da4d00c0a092a26977a8268eccf06790d094c76a72ebecae6a269163692aaf7fb086abc26d3e2bb3dd7fd9ee8fdfe213529787a98b8ea6fcffa964eb78e69e98250f7474d02dc9437446ccb227871b7488d94b7be17d5e269fc70942ddf17faf8c3f679ce540fa595107cfecd369703040d5afb8030bb911be0835637814eb77355bd36b7ee82d8b857097ed7a1953fad8cfd4849cf692f6a60dbc025e70cd643bb1ca0282e2472eaccb3a9cd5faca63aa61e199156979f1947418ed9ca2e4bef674a4044bba21962e9fb55e9e43eedddf2a7da5ea382f66e00fe9f7a382450b0aa27c3c736a071cc42d699284fb6c07660f57b53a012c32652f708224c2d8c14505b151bff93afaf8709a94e63d074bc32c9fb36a8b19af8c5c12869449d653dcb0678c1cb16ff6c53aef5a94f814cef57d8af3ead65685a5abdb36b2cf5182a0b704aae2944fdc82e1f59b1ceafcaeb0cad1cd719a754e73b0f833abd4ac044808b3c1cb1ff5c7bd389c8766b0bd939210324d3d72bd0720373c48c9db1f7feca6e43854da7340c1a0b80f9a4e6a882f0eeeea2d0fa854f91d9cbac67834c94450cac7744d4d22d3a581c098afa62d08f9495bcca26591a30fb32e2c884d8450c7db8de8fbfb5976ff132989502d37c8b00e6a8c7457b5ac683f155ab41b0270ab543671816c6e39bfefd3366d4c3a66f309e7de049305a946a2ac1f3b287b22bab32ccbb37edbdb2579cf48be64ccfe2e8aa2e4626697439a619101c24f95e4cc3be143a5873cd4e478c690176bf1848fe879d461cda2ec18a9de91e93e3ae9b8731d24b5cf46818998a8f4fa6adaa1cffc73662bfca40f16c5de7b3afbbda673a768606e13948f6eebe2b48200f45d25a2edd544d852fb9ea94b25f95c557284667c41d1043d5ed7642811dcdd446d5c3cd64c7c7c5be5af6a1f07678ddca3d802c9f6c8c6436cc85bca8de9481c39d12efcc95cb8fab3fbc4f41ffb8eedfb84130a45fa72ce18c70ca15b8a9a1001896369d4b68d5b778b93f72125b34646dcf4eac2cc943140ea1784a472c14dad14c6cf8d84b2cabc6d5a653e412281728845bb558cadca7f8c0153be76be332c45ca05f6ef12b925c9bf9db07c58179d006733e0c4b2aa2a80b28d86a9274575f9e392718a4c8eece80cc36a8da5bbc2cb034955868b1039dcf67c68b4a6658b770b4ce5d4324b4145b0ea8549abfe177d8313a11395b3bc58fceacf5d776818d33e00f90f4afca71cbcdd575de3453f3c98c0199b21dea3b8da6b0a49eeee7bddfe3453ec50fcc2ee676950991812d7f8b2986afbf257d5ed0636d998ef9667fccff2df1ab206330c8b3f0093e9951a1e8b132b44c320ef7bde8a35447479620dbca174ed131a777a2567eb9e4b9c8eb89dfc9395bffa311d22af099b0bf9cd2dd1f56230c82af69dd83c097b05bff484a7a7043f07c563d47473e0ae55e045d89eebcc255ea59c776b03145c33edfe4c2c354a8030a6b265df4ccd1188d07549bad4cb1312c1b7c647040a72c4417d4bf3e6da1dc206e3a74dfd0ea4eeffbd873e74bc2657a2f80afa3f8262fc29000f8884770cba5b523e10cc2ef7644841ba462b4281544dc935b6aeb6a9f2db2877bacfe4d408c198135a4e9e23dc8536b57435d33363685dd5d210664d131d22f61b09aff41264d35bc4bf15ccdb4497c26df5df7d94ce28a7484fefce9d58fb348384296d2fbee1fccbea3470fcc085b75951e72a28f2a5ca366c48d42506e0968d4d1ce62d9f1ffa4ea1281e6b330458671f0a16160f96405d03b391126065dc19dcd145cc0766e812c556096a71d7e347a2efde892d25fea55a50981f6a6855c8d8766441d45c7e3ee0528acfdaae68ae150da35ff49b9e9702f74fdd4736a583f1fd8cb436670cdf4d9d928498eb1ed64aa21eac4b89a9e106ec0c2ee3f819f5bdf9d1c201b50665f2eeac062ba1a7fb54fdf035cf8d76d6ae6164cce2a1fd0cb41ed9fbc242d324841339e748a97bdf45d7dff61033f3ebcddd1cc0f0cd137c2c5fa465add2bcd46394b04d0de53c46fadbdd9cab78f23ba4e9d9eb505aad3c77d30bf75328431205b667707605e47bf6ae480c250139044fad6c80c7a6570600e00f1f341100dde6896c1f3475f6ca52ff4adaa0082c28c9588588cfbd32db824be73d100400191c17dc3cc63d0903b87c8fd3628fe4ad7b7c5b5d21dd667e5037b1261a61bc0f64db433beb01d7fe6bbf797421626b3e5eb3c52f891807f4a22bffa1ed9cdcebd2266ca75e6718116e75ea7028ea0da7a74023820d11ec0a02aaffed5ae0823d0a14369ee7891f9ba3662c2d4bef0e5c0e836cae65fab6cfb7f7ed3a01e72f79011f0e50b751f07d14220847a7b571f3985fb95ec0683a155512902bb92639775e9cd28317c7309c3766240c372141a5fe058f11daa0fbf44500f85acf8963f35d93f31269bdd5614f96c9ff33c97fd197b0509c63645c4876ef71d40e46740e4cbcff69726fe138d6ced6564925e17ade4141a7b874422e06d484999b9a70cb8ca5c80bfee6e214fb6a377c963e87c47ee19d2be645bf8b0e792f1d9d7ed4933441c60dc94926ea2d0d708f818e437af7fa7bfa009c4f85753518cab88a3fb2305d6898c165af31bc7ceae359f5448bca3f3f37cc0cc807d3b6397c5ca7f6d7ffc7926a951629687dea7f7dcaf2af893d8faedaaf9fe8426594b303d9492098fa239756905eed908f6e61981c8a5928aae5e82dff05df27159cc9a54c4ad0ec2bab9dbfca4c2bae23d1e6244a7cc0c55eb5bd518f25b4ed8a0bc9995d9ccfafb9659421a80af94b5af0fb42e0c16bdd0e4b36ba9defbe9152277f8cc4748b21dd946a89a5aad1f42f55ddc9b16e0891d31f70af06bebb5110e22820a7a5be676b549417789297ba79c994c45969fc29bc3a42cbcbb01430c5854769c23b3709eeb490837b9ab5b2f1002ff28da0a68dee038a7feac53c762391926e65a691724bd07296703c627553a7f34541a830ce572b668d82a5bc2df33a53ae3bf4e174ff9a3cac8b6b59a28865016396e8a89bec84188e4c5cb5a5864dd298e7ee0ac1e3733039d3ef9a58e5af8f28a2c817cc79fcc16e607e2af03e4c25116d1ff27388b41c41ce5edcbc746fc022fe7e65db0403aeeb4b6c5a67201594f26b05d7841cc40add820b677955d85b142b723166bc176d1979b4c823777004882a0bd357e66ea9bdc4870b3b26ff0874c3522faf784e90e0e4ca63848b4055137000ef2e4c8440a1d390ad3382ff95ec7d59391cccf5717c25915cae664357472f264ab16cfdf9df4981ac968dc5aadcff520ab7a3be19fdc068db07a7981dcd0015866d472ed3e15aa2151e92ccd1d67f637dae7707f5c5d3c9bbbb647db4c36d080a5275c396a361f61e87ab641a2138ac44d40b2dce0c0798dc3826f0e8380a59b735718ed639bf56e2138451b838a93c431fc002285fd7af60b2e42eb0b15f2f584c7062fa4709ffb10721d4ec48acf9192871d4e41d2b6670a02041eaa7a7b968b5ca831f8788dfa82cbf7135b5556402aee893eaf938f4a93d0600af07566edaeff36bb24707514a4fbf093595a76ac513de13487bbe097408a24e11b07325185e03e462e8ef031ec1a20c0c3314ac77dd8672397f86ffd244257448f8c812e1cbccb75060bb4436d717e6dc8ed0dba736b7154cb43f6436793aca7b28d8ea87e2888315b9afef776b16ec09d7f62ad76d92dacc1da3ddf1f1693101fba7bcc2b30d5e9e90eead4c590c6552f778e46673cb5a9d94ea97b93c8efdba235e4a7f3297619e97d35521031a775406e3a4a15f7569874297bd87ac584c66c4a9ea1eb71f55c113a388b3ce5e1222d5edd729eb6329282988b1c5dae5f716f7fd3c147f48f8ab5e88e7baa355288765e165e2f41b5f969a6005711f6297d2499c3a1c29d2b34566e479eb6e41c2576ec7ba59fd53e0f9bf3e66391cbe3f38396f6e3339a5b0bd2cec1ea8a3a9c89cd96d91daad04436412c2f9413373f666bdb45df7986a973b479724fdb4e68dbe46392c894c092e5de461e5450b5808e1be786b5b12b47a325ede5da49cbe6ddc87c7e55e4a50edbed713fa5c0f85b6fe97dfc077d6b4addab14952e55711145923624369b99b2bb26442be82f048eb9e9a4004c0fa89896d91cf601d67953c43d440f36cced1f3d15713504f1f2de9288b10e91ef512635ce402f09c51a4fdaa099c60f064dd5bc34dfed906540a269e239ce24a235a33e2a29105501e17f023658fc7bc781e7bd63db393410a2dc46f8e928327458db4fd5a13df59db32c6ac3eccf217ae6a8e98ec5089f3008a5b07ed5f542efe85f517ae27666419a523f51f1c0d54cb9d6b9977eba288b9020577d5572aa957e2a559d2e499e56d90c88246b330d638baa608cd62a61efdb9d990cfaf49ff3bad9cf711964706f1a8618727539e5f86990a3933892da4567858bad649dc75fc965b8d48caac26c1608f50e73cc638e42c478bbe99cac89420632cdc4e878bccbd90f269b2dc367f24f61be1f38cd8ab4df7badcfed4374934c6f4459929864506d9d6facf023ad0a769c125d075c5d31d600bcc68988c4e687cfa69ef0ce1e20345d593f3dc54dd418515f4609db97bf88b5b2134e0cb3c49207a160e14098371629f648b06b9d359431f459fad8565f2a2bb432019f4f4ef3dec0d83af3bed39cc55ac41ef9763e3653b44f035ca77eaa2b7ed55836218c6760b8157a36c4810832243eb960943ebc110cdf710623b2ad92db0bd2e618f5aa9bc9b8ae7cd9f9890af11c6687caa33c0c8f53ac2435f96bf316fa6bb2e05468feff85b2df46320b7229407d0d4d8e0a4578292f5b2366f1f2ee1bb1936681f832a2966d399e9e62fdd5fbb5fdc8c3570c06e6d8ad636a19b33134dbff96c806058318952b1e7f5b95c95f1a7018c5f6a2868e3d42a78a50423e3e2126b081ab09b0ba56dcffb897b41723d12b32154ac3e5297fed23bf2172d86260104f7d8915e2224aef4240b78aac2835fd098bc37f4c469b17f62fb8cf30218f9fd391a1793d755f76447959cd06819a1c7c2f26fc188fb757cf1c29171b594c86e8feffe1bff983a8bab10a506d931c7f3740d06be1c00707893f918b4cc2d13e9027406a2625696de7dda5b0a9e9d1ebc08fda9a0336062ca17af9b54cd4e5d7b5c303fae3dcb695d4dfdf5e1d6d857c5dbb71254342c2543ef92309b0eb4e58dad8f1dbec1a3277a8ff98d56b169f13dcd762f2fb95ef71cafc41a273b31c72cc863312a9265f1441c1eff7af68e1ff1c4019406126f5639943432ffd4c71cc1c379ba2448aa4534ae70a3947e3e8b54290c723dc0b345aafb93c7f5ac0d22197b3e8bc9f1294b2e6726b629b673823669a1b1b4fa942f77e5d5e55d6be389e40d73eb348d95825b4bac5cef21ce730b75a1faf62b8fcaa8793f132a0d7b85775ef16cdb9141e9dac13f98cfd47fcf1a424dc1487105acea8208f4ae61ae35bc9580e4e865a0d6a61617a245f98ba7f44ae3a75320e4727ced8b706e8ca580b79bb9f840e68c1ed9fa1974dd4c55a9aa0a4cc7fc3d13b4bf4d08418283cd85eba2fbf8d7e4644204002a80b9a17c4a4082d6b09504b9126b57f00077941e2a2f9b70ee7ea5f3ba8622fbd79f5c0f43a7b8043b00634c2e4e66cb2babdeb27647be2119ea612ca5943c7c4736f705af6635686b8d7c77509df8a5a58fd4acc3ac061c4badc3b45b338ccf23c3801271bc868e0f5827ca04ef2e12b179bd6de96ab2a4d3256e3fc78939d3d0fe18bfb0a1bcfdd69b6d3c047150b87410371cf2f8c67deccd76b66fb7c9393f4075dc8d9cec4000120e811e5d477772c2b07a053a883adb41e33598dba832e594614063b2b004ebacfc270b6222159219ec0d899603a4385332d6ef14a8a2f32238d4321fa5432124de904c87927fa1368293ae41872d10e3d346a1097cecc98a6ef314b0eb82a9a28ead8e0e6d9c6c375fc8ea4c2779c9dfac38cbf63b49eada071ac5bfa81eb4919b942bf82eaacecc417f0e2039ec0db09498ab5de4b0f00f1de3a5dd85a6f5e9c8e3bf1b73305fd03c07fc49da531c88d9990724d4524e085e57d6182f4a40ae8bf2f8387e809c3b39e2326368993ca3bb909a64519ecb498c8b32c2d7552e328fd40600b5c5b57c72cbabe80687451fee9c953b03db12f5fb8e5939b3beef97322c5cd423a656c7f80dbf8a1b9c66441c247a927551c5c915aa12027bbf8c8008cda5f7f47216aa2d2b0f69d3f1a757611cd94d9903dd2bd9ecabf0ec842f42562e24defde86ce34ad1b1199c2fd2b2cd26c14641f55cb1580d2cb549ea461898add0a831814e2bda211127ab8fb0c0e679e528a70492dd3896716ed54594a9fba0f8242d51d2683d483fe575f3dea8239cc7a5e6526655316599375a4576f0e339383cad7b83952660b61c360896ea72ee6d6c7e3c8906927946d3a5da020a6737ff72143140621eacbe0d6d7b27e2b30671fcd4e16d71bc12a5b10738c2b0d06809efe93fc88bff1bf5bc5e3f1c393ada69baaf3f6284a61e438fd5dc1c301e00758254355daf7923ac4e8fdf268d51b80aa3bcd7403c58f817d4e9b1ce6d83b46063a50d165a90e020744be55b2eb3146d990ce97e8d707655ab2036f13ee5b43b8bce74c8ff1c92be92224c62b113225e94913899eea049dc85daba6e9e606a3134e496a980475eea5a67068e36933cb4dda469213b2dab6d5a7db0f082c20a5b8ea18008e7136911f9b09116b34d24f72d82e6ed8c725bf47ff2029b020efba091e50fc410d23af3e85a9bdb3dce07e5adca582e175bf07e6f2786262bfa0176c431745e0aac7662b803b5695d955e9ece00b26605eb73c5148b722c75704ad6ea2a3fd0fb1ce1f5b30e193199999382780ec492deb652549594f1b401103634d41c057da973b6638d227f201cc07f0748be69f4f2679ab69f3cba5ae1adff3cea748debb554518188ab00160b69b4156f413f4ee93c88396580bd957ccc2d9fb545932303362121a1580dd84de395b358abea8c968567235ae0e2fed428d53c49c415d3cce6f048699b6f88edf345095c74f420e928c077b9e3d49ebf31ab7367cc389d56027d7a142c61c3d7525e07a3f82f8bd720d5a29290dd996887e864405bb534547e5a084287afdcc92d7b3ae8f8b3ddeff972a6d8f5d2ca6884fb66db13da2383232db19d69f0ec63a49595d61763335c560ea283a3131f76b00a0b99ba1b64480b2efb5a57c6a0e74b2e3da55f0460ee6c32d0563093c53f4a4760beba35278627020ae51735fcf2ab479d00b9eb5a0b843f5346b4f68257c60f5fa5a2da7348b9e0e8d93406849bc23054717832261d7c796bc94cc1bc2149e2a501a3f47759da09838d7e3d7faa7f1fbc38cf7f34884766f09e9b900da62f1ff2a31376b248f58cc4dd889d425f479b1d0a56618fff687c27ab446974c2869bfe49eeb956f24a5f9d16293cb80873b7d41e893340797b21529f711371b39003b25350748b1e6cc2e001fb2695fbd01df3e2499abdf2adf88c0c4f879f1b450dc7a9fc326762c3fa3a04df17efe61de928df59895fab3f81da5c8f69a4b5cf7a58bdd86dcc060b56b7557739244d904ffe93e2dc1b79070573eee7977ca30cedfa4a6f27875bd38190f9abfb46f3521da8b1ef810d62eed6b3368fc581de0f864e776d1d4e87ff31451625f87f6dfefe0077f22e88b373e14763c527b6a39e5b32ee2789899747172bb4d4e6178b269c71093dacba6526856369493229d8b6b903e91170014db625fab56da21b49ce81d1468aac21b92ec72dd4e1638749033593634584d5e42b2b0a14e53ccc1eefdc8ae974354da1c4cfb0ecd722275f698db952039560e7dbb53c00f8234debf5048bd6fb97babeb6b8eb0676a924487e60b6622b8fe9d8cd4acd9da655428842d6c91304f9c45fe5abdfd890025ff30dacc29ec50d44825dec8165b0a45009a9dc7135d769ee3ec751b2c1fb15682694208166797ac269b9f0f5231f0db2fcf34df3069f90037be58f3fd00fc5b9d8c643364117be1bff6728f9bcbe1850955dd48bd4eee0db935e97b4292a17c2900b63f271118126efbd543d849b53168318290d013664b80c63430e2a2c7698e0fb5517abfcfb8b0e68eecb088ad06e62c87eec82501283b3b9c79439fbfa6d48e710e4e21358d44ce63bfea5a2bd1a1806bce47af9b970723aafaedb00ca0ab55007f015b49f6e2b0bb8f109be08d922de85b5555079c7ff542aa5eca97fea886d5ec0b7e03e964680c8b226fd138de8521ac9d15ac6cbb588ad335de5acc99eaaefe0acbf1338983fc497b0427ad748d5facad07f07165becdffcfbab63b6fc241b2bed1a0f393f194a8661b4e3524bd06679140abcd2a9aad93e0673d3f5fe2d6a2458df64c0bf30e71cb63feae69320a63be5ac34aff27fb2604abbf5509ace019fd8a14c67e37d0dfbbe120ee36396234728f9db744e3c6033a0834a9af540e505b01652709a4b5aa1ed1fbad35276575d9ae90e956f49e5ff5bd1a47e027208ffa497356881ba2ca4799f584396f8816cbb5985274b1dcfbc2a2e07f3ed87324ddca35cd2f83d8c2a188b77d9a3cb359d76884a1d7fc70405772890d13855b01b565cd2c20e1c5ff34424fd89358db296b99a45aa9168e5a90fce767709e6d61d6508d887d4f3f05a496b6cc63b540f04fd185227e4b6b6fa49371776cffa552cf89105c51c31c91a83a939e3152835a4376ee8ee797b631b43fb0ea9a2845a4a3a06faa1089ad1bd29e92e237d86a96ed46c56f681148a0435b86943df29813ce0189cee3cc6cc02f779e01aebdf28970bc68725e8f3da060d8edda560c4981b769eea5e129f1ca7a36d315ee816117a6d945eaf111ec7eb92a4171065e5348d22115d4096e7d8531f1ce8a99c069cbb85d39bec4dad7e0d79a1187f944d108ca010d44abbb035a7c7a152fb2dfae9233ce1577b734f3f009f33a14add733feaa3de196face23994a75bfb47f833dc0100050ba597c6f2a6a98cae53d90233f777dff2c4cdb8c592f56d6dc76b66bf1edae5254dcc661dcdd4df06d636598af36a1fbefa9943e9599c3f09016c3bc68c380d3aea569a1ca08be8d52e3009b63c84cba5e834e68a1e97fbe80f5ecf53daa66fb24be160b5a1e661592a765b6a5a16b55f293ed85d904f11d5ceb0331674acde1b2ebbc8f2eda68e9daa10c8e157f9d47dda28a5280ff9b348de8deaf03fba91fddf617854eea7b249b9a17eef129dc24ee61fad5bd2195986b68e6fb7ba67a74179292b4dd409977c5627e2e16aae3c4e7948a4f7fc0f3fbc37c5adb7223f9d2d67112d1175880bb996d0083579bda625850610c4d765e2386a23851479ffd9ea4e84e1b4608b5de2e1ba3d153e2e843c73c1cfd5ab3587af60524bf0638a239f88013b9b4e7de44865747eb16ac002d968898e65f7b2b48c6e5449673bab2615b574473439e278c60af1fe5d33266dd0bee752f6f62bb55a24e33b5acb83f4f42f4ea00bc374f7ea8637a4865375b8c78e17f3cbbc7b1836c455d20894b27f8c6045f926bf4cc238506c8a71adb8f80378dd9cb150f231522001317c933521282b0c98b4f6b13d7191087fd12f8ce8cafd374d10922d978d156e73c1e1a315fb0421d60986c752f168fb8628eb776653212c5955d63aa516147823f4a997fb976c5ba0f16aadef1d072c55fa80b2f4451904e8a87d9efa1f6861c2184a0958f9c8c4f94a1e0f83e07d53d7ce560e38cd487076f4f78bf9a4342f44c7a3eb131af1cd76f752578533536dab0437187c36d81c5239f4ad4a3e522b93a5e790fa1ddef7c01934eaedbe280ea27349d92f2291782037b45b5706843e0bb2653e3b0a4a9416a4bcd8b9840ac844df8d416244e09b5862befdd08db4f1fc5d2cddeb0d3d59c83602796a9d36644c3942fb4bb51e79c42a68b128e02c492c7880e4835acb20bd4e8d308404702228b4de4ac5d184c10692f2ef1598f75852e777725d8c8554eec3188711752e5e7aa591aaceab68341012331b1404e2659c3441063ba35d32e89752491f563df299386503090baa60aad30257e25acda22ae6e176c18a024f4e14781c3db79b7311f178c13afd6d3aef34ee030400421e90a97590f632f4775539e764025dafe41ffdf883ccf68b49d09fde8440d87640584e3839c738d25d477cffca87dd1cd23558bdd44e834e9f8fb0b8b622ae3e4e7e90e41e841ea73d01d6ebfae7ccd6e27cbdba26f185693446ac28a678a68dc1f2b231b46114321674213075c6f935c54d6aaf550c0a48ca5e47179dd6c488ec1aea79b5f75071d427ca1367c7b92c0bb7b0b50499a313ed18bc8096138051484d96d382c0f9ee48b3ca438b1546e7f7fd59a684b55f173e0831a884ca66ff04594e275d9e9b92a546fb4504db276b7915d9745e234560c0946fe19adad379ecfdb90cfb5433f9b921b097fbccb40789294def38ca64bd7b79ea6af9e7b2236e703c78f90bc695221aa891919c9ba9f51a548c94337a816c471412afd7548bb5d86e8363cf891c251b4b6b538480632bf8ac30c30c1ca860e0059c0155549002d46adaeb109efa02a138f7fdc2a9bde38baa1695a77c4015fd742c53518ab115f3e497792254dc203d26f3cc17bc9ecace75416f7bba3fa1a9fa24c87d1275673b179a59bd078480160e05f84787df0b6e2026e3a2c01cfdc3a93606d25f1c0ea37b9abc7d8773b066adbf479ce2db6d4f87746a5ab7d74081f59f02096116a998569229630d2a83f95248de6499921507052a9d84044f04e8e7d0da23b5e1657c11363352c7f895b1fd77686e67265161f4571328dc032855a8ef1fe2ef50362265910e93efafed04cb91ed9105d2cddc024827ef60b02ef751f7d24dee629c54540ea05175a6b57cb5e85c2646a16e2a53e8f7a754513a521a6b8c303b21044df670331e35de7b36a30eca89418191b16fa95ec35885b1bdc7d7ef998336803f11925a6cc1461b64c466019b9279f00d0d3807d9be638ce5779d985c1b2fe2cf84e25d15bb60e3cb4135c043a320758c9cbc7a22e92c4a48b6bb229191959394840141d4b9c372463b8664e8089d44b0ae8abbfd3a769bbbe299cf11555d499ba2ef9ccac448284116865af9f0c502b1256a016c99b3dee5e7058cfc684da7e6a9a878fa5adb043e1c25e6659d34cbf937e441957b40a7c141e3c935295d2de8482ed8cc0b33565469202923f158a7a6423e73428b4aa9205444b5e41e35550b8c4df18e9ff788aa2aca6eac0ce3580b6c0ce462d53f8f2511e8c9f3e4459a2a28a9d4eecf110f012d2bd87cfa13282f168694868aa26fc7ef55b3921c27431795d2e081902a5d28bb577c946bc7054c21063a644f64d4523212afb471302716f87b8440e79aa085cc11f2fb8348b951fe6078581d2b87e67ca45d8faf7e5760de0cac06554ef59383120138b743026191fae7deb221a0f6bb6a0c20e5d686a2c723b613ce59915efc94eadab4678f52e4c5b2199435a7cb5a7207a59919487b80cef18c424992096bfc51f064876a2fa998ed509be4f1ffc9d16f211138bf014d8378f8b665d6488aaf4f91f44e03b78c7c566b19fcc902563c68dba0dd2c3de324adc4ec7592e65983a156f2dd51db58e8cb7a86eb53994dca26df133fd1aa359bc8c09abb22412d4f3ddb7ad8a243e70aa42ec28c9d5a782fa07b1fc2feba0dcba3a1352fecc90984c34275c17ecae391065ee483b830ddd90dc4e76ed95176f65d7d483c018455e170afdfafc6fe5e968e849d9845ddd8b2850f945d2c48f6cf95525d80a38dd5a037cd2bb190a13099c53e27ab6073847c3778f391f2eb9acaaa7f754eaa90fcb39947ab6a862b2ab97bcdc4266fda6b05a95e31f7ac7bd270e34812f94b5089ecb6500ccc8845198d9c99d313ed4e94ac77e5996d63ad16cc6456cd24c622752ac31ce6e4234f9a4be3aa6b2bf7ded2efba726e1c3b2a67279e3581a5e76f32e9c164552feedbba2abc31908efaee72fe2033ca79e00d94b62bd501a88c363bc6f5e6a8e1462f6c21b4fdef02a5b62c8a439596ba9f6858ec390a652ab487efdaebe31d1907c7c574130736d7eac06b5080cc8f9ceabf4489220cdb04f409c4036ca0acefa1d217bba2e7e9d0b96ee515d64e59bc368b79ad53f81605b775c06ee0e5e4cedfb0cd3e255be0c5ba717f0ee458a2e993b83177904c47dede184e0bf881da91d97a20ebc6c73bc3555386eb2e685a2b16271df8416f9eef195556b560c42148187a992c97b0fce306ef330a3cc1f565332d8b8bde276b237b21b1357703dcabc6ae646f2d402239f4f3857ce8eac1d5801265d76420c168a885e371b417d49cb14a7325bfc65a659f6564e69e2f4acfd093f801876cb18942202e6570deaa326d336e7e423244ce7f1b1869b41ecc778d6192e669fe1260ffa3ebbc4cb913385484783bb49d3c854c411117420cbc6751a0e852cb2edbaa4d523f323a0d2121400dc2483abfc249bfd7fda9458e59692b695597f9380606408a13fb94c2a0cec7cfe906a8776647a4313075b10054c5ae48e1f345bc0fc7ea3568ec45c788b08b81306edc4749711c7555ce58017fcfedbe1dac823ffbbf5657f1272f8b7319960e7b758dd62e9d12207c6653f596a5c0c0cfcbaca9ec2aa985056f6c862cd51e152567576c1dc005826a4d8782155246366ae618c650402769dc7418ae4c541168a30d52798eee743d4599861316c5627d585b59c595394a401dca5902e7fe8c8df6e1000e2f026cca85ecd2584a5518e618e99bbc73c22e5bbd3b730345803740eda52e623007eaf34054e6c4febaff3427996b21c51a49a12ebf7436b31da1ef3614284e28d31c5abd38160e2fb7cd22b74e9b52ef6a6d0cde45f3a35d6a2b3c4690d4d28167b7f1595a82b1aad8c9db3e829c0fdb0cea280212df593ceada7f03005f8e7d01fb80c414c76b49115680d1f3acfb7ccba797b96629e80f763c424f397c49c2f96423806217c12f0d2ba6495e151eee5a028f79ad6be56d720fc354addf6e7dd555c9bb5ab87a237eb9d543752a65148b515acc6a2b69dd2bb675ac3b1a8a132b70b678239520f0cc340ae9b7e021dbf6e9d55f9ca79203ea857f4e57f2d0603ce0010192c782dbe2273589e28a84fb31b2f1635a5501e08bf03b55e73f9589683717aef37e352afd18bc0509ca2755b7473639d6525b19bf29b88f8d79d35ad70836ffb8a30eb4bcadf70ba4cd87d619153b6f1021c959245a39e43c6caa3a00fff3fffcf3a988e3f4b21f1bc183f539a92f13e0e577bbf2aab4824909dba8eeb3b5fe221ae6a372f7ae7595abe0b78115534e25511845ec7454e75cd24b4f66303793046c66b219771f9e1b16c54b69177e5441016076b5a5f8acf72d86a248980af5699612e62acc2fff53833f30c65798a22dec89e4e1feb12f6bda3a12de3410a2c67595da84297a1f6423beeda6181f8dcce3cfe6472a48ff74c8b7c9e4bf025574c2dd89242990c0c035965ebd40a51e4dc5f4526dbfb521e6e17600878cec4be6039e50516877c9f639808799d14f46bc44bd491f3ea92500a48fda9aedacde8e73cf0295262701b7671600377c58561d8f721387b20505720041d9cd02766571152a10f24e0b99aee55aeb9e358cd2a32e620c4e2f61d71eab6edb9de8526f9a51b0b8090f8687f6dd2f80a063cd8ee8b55da1a28a865418d61cae41219d48f8c6235124246cb223dede21e277921d34b8385c30d3f4267760f52ce3ee84d14de58b974d5285e941e89308cd95638e387e4d005dc25d0efba7c8f2cc418ca43919b217f70d0db14339de79152e5e7cd4b7f8b65c0928d29c80069a6dcf0d8d8bfaa89fd23c37dcb0103391e150b56cb9241b4cefb6ef037c50458d52e1b24d62fa3fc4d616a5f79db46a98d0d52e7d0fcf9a7ad81b0192d2f1c1677c6dfab6cb838f759f9cf28336843ff0645fa16270fce0486584e129d8c7d6e5ae13ba0de15e74a39ccc2800642ad38892ad7eb7d36a597590d5c56abf6687659ead99c1996b0bf2c0bc4ac45be929ea73a9449a46c8f6f2979c18e8364afaf61c3a9373ce76397ea202ccab1d87aacc67120b9c8895ac751568f8fb1759fafca80d774c260124b23f6015902d9aa24119bbfbfee7ccf50eec51b8692d60745dff5c69a3e84cb729da7f049311d5c06b34d3d344f7b74dda9c795fd03b41fa41936860f4ecec22a799a568395f769ac7c9d0630df657b6b9d4ce28edb54e43680dcaa926235c5817e9a1875561322704a22a124507a6342245f400aec62fa90235a762236eda90a6bffb98c1a0c2436b043b59a38eb952f819330c149bb3a928e4d700bccae8c5e4473e49ead9c62edab15045794f949c7c9e6f20e6152e67d7e95ecae0fc4336fa9691392929ca0d4a162af9cf26ed2348e3cf483357532782fbef5b273d2ae6eb654a7fef770e68e8f2d42ad77ad3fc58774d43a5c10ad532189f24a1a00d1df0fee821c07437aabf0233a1a3b96ec12e86bb03a3675d7e3aff3fe7013592e5d2d0139efa9f0da5ef5b32bd3d816e0ef7ece22e430a77d5719c6e3d160bdc8e6a5a76657537590b768f1eeeff4af905ca1836a00e14acaf098cb3118aa9be2a1c60115be80a44f686c94d3b45b408cbf6bf46e792399a87eb17ba23ffa15411709d755a2783c8617574d3bd67be2b0860c897c5c4a9c4fba95017877342e35fb66496ac2c6673ac2b20d0220fa0986be8ec9db232f87f4c0124b423f89cb371bbde5d94f321251c34b06c2bcf015124eff3c158072b9de2e7928634b75fb76c8cdcf0c522a88e5851128d2e16c0dc69dc88ff15dc9606c62e69e8c94a3765b64b6d9ce98624ddeda6ffcc946b8cc8f1bd0a4c7c5b726c27b218844763b5357b15aabb1b5d1867cb718a675cfe07a77cf3e148d4b34b32d6199a82e3bdf58e29f469806d6da434c7507a40968331cc49eb2ee597d9c909c929755f2b6b7bbaf4e4cf6d63f50bec171db964e964405c9deee37af599630a9ba2528a7e6500b653ece47f7662ba02d95252fd0f3f479043fe9ba34f7df6a00ab2b9c78f77314d813ab06f93dc55128c09c7de53b0374407bfc079bc79676578f3da14e67290effd5f7f3f99a0a8d8947cb894197721fb3a76d13a8775b7bf6c008bac5fb6f6220a92503fdf2a6bb8ba232b0857e0c6873116dd47ae9935490e91ceada804724830ff9005ab313988aa5be4a41486e070c65a81516574b901ae2c9acec7aa75a6b933a16cbb6f3b1c749ea430f05daaf9d5f5001591eb0ec43d6aa77793f69950358ed181c03e503e0c4c405d9c179470c0cb42704efffddfd2c081a036fd6392f6c3c876df01bdb7ca02d97c5dcb2e07ec3fccba6a5c986326e82cc5b1b1cff7957586122e60b2a6eb87b9a58df8b1ff42910842e7beb66818c90659584b96eb6bd373d33d4f2d990e4096011ad4b16daf466f7f7d24d0ae2bfec62c52fc6a28195234f08aedfecdb73734fa06e7e020a4ab5b1f15cf94e403e4bd571af8a7e7006f28a90b2d058ccfbbb873e5fcf691965ca7374f17f747ec39b55601ca25cdca84d4e8a94ddeb62282234b626217d37fe3591dfd0e8cae5352143da9fb360ddfaf9d05bf27a1a7df61b5ddba7350965b64ff20a6f36d9b4ad329078b0b022ff1c28e939f4664d71c9c45743f7b0e56ac59781904710ac30807bd5672b3b31a714b17990dd39d1850b4c70bd6df9b8cf760540d86b3864067bc4825fe7e43d817a6f625c24da6f3d7d8831a79a308b145170a7bcf4aa3cb65b7814123b2c4805d23c53fea19e83972dbc39fb7311361a3059eb835dc4971a3b10ac0a77f7d69053ccd53a6d7850ac4b9f6012f7eecb8a29d8aa343a52eace9ea77e1a78f3e7d8fd526e28b8e8152d6b58cfd1873f15ad745fb6137ce2f3ea049045212d6b40dc49646e222a8ae4993fe0d2dbcafb3125c76ac46848c5cd6560b9a112cb9af232e4c737566baf88c4de82d81f996eb4f4ee502015115ce623e0511c50d88957a9d5cd3d74922c93d36b5dc55bfad2def4dc32b23f95fbce8ad74c4ab204180e0a34d04252f6e95fde8ed99af94497de7ff0758b08ab878e09e5fe2f6a5a8bca919586e717098e0b3de498992138f167d8cce64d54622385e2f8516ca2fafa543980cc6eddb1139ccf8270c5368c0098b23c28226248ad7c322de72bf262816b801086e462e9cfd00fb96e135d6db814e749aaebc4fc903535dadb76245d0ea1ff6b7aa349ff4f2d60fee0eb4318ad0df35a80c56a6776fba6a205dba1da44e985e2fda43564ef4a43ff5123d645d992e9e71792c3b8e00a4f87f009f9186cb4be50a2221f09c4862fd9d2560ed5eb6e7ec5ee18dd4d91f5d58f016545837598579654568feae667d9b4b86db5ceeaf24e17631626d3d94ed00c2078f7f99e490cedc94c4841832acd2ab1a2fd8efe125422bf3b2b4c493540c5210dce4490962dba52a697aedfafd3f1fe0f5994aa8a15835e5f88c86f42eb87a931abc85f7965bb1e4574e4cca76e1b1f1776fb72c647082236c8b57a7bce793b69c0d61c0724de0ceaa61b8c5229da3249d3adfaf145b30b0d37b4ce6169f036e50354d82d77548ef178544b3dfba807da66fc967f6ee996f59dc0cc16b8b5e5b3a61ef2f1ed988a633858de81165caffda9a9a4d648373e9b761f5f03e78181f751747ebe6442e168a9d842e192e2f9aa2d6a2749877f760af6f0a1f03d8c4ffd9ad242fa2c6273f84fe0964a18a53316057bcc408aa221610a1ba05da42e70872cfef40a0314bca314c57e9d94f2a0bbae0f931440201c2cf467118edf05303d1fdbda4e99ee9ac7c1f3a1e363add1ce64da5cbc4e809a090e1f89a9b3f20e9850ab98d00e6731b00851e7d986c45fdfd0b8e3c9cc98c96b8a8ad52ae3223b7de9ed584f02a2f7cb87ee91cb1e9f37d549ba79639962d50b707803bdcf005be57b5d9bfbe4cf94b067fa3a3e718ca2c4513f883c8447158621ac7ea2e42e4d4301eb3e262731d270af0f2f35f462240fc9cd636d34d5a8d5e36e38940167d0fcdfd1d25ed8b386834ae661f882388af43f579b3e12e15786660b092e0fef2d9b34a9b1664c32d0fff8a90672542017b78eed64ccae7b45eddd4c8b767b21c9c4450b77a310d2be22cc7ef57059de56269eece6e487eff20878097a2e68a6546702ea0f7aaa1bdfa94a0ab424f104892066eae0f387c4a326d863a7166043e6a16590c91607af63076c01daaf1daeefd777cfb62856e6742f1be351ea5441cc0f518712960d79e168ac82c61ce1fdc79663994a77965a067ce31f53b138f0c3d7a0789838abc7c7493cc766c176866c7015b1d2b8f77c4db519f1fae5bcfd11915952a7e6b6ea77bf0d64beec520e11d94acc0dc5f3c449e64fab84a6912966d35866e84c4fbeb1ccd6278a73319d5ef41893b0993515e8d17e9148db10b2b3e6a71266c1db04138eee0dfd6a606c9eeea633d1ae8d85bc8434699c48690da27b142a33c3da04e96b236e7810ffe998fff4216739df6dc6c79a05069571ac7fe76bacb976124fcddd23baf6f4c006491843db5c47b543501e7ba4c800b48dc0b5aea82bf68561bf89d3d1f610d69fa486c03f772bf9fd81d1c0ad939245c4fc74fbc5e71e7941993eb7cbf4fcf7ff0b2e35544e5f209d7278a3b7d33ddbcaf326a6aae125103c5b8c2ad63bd7eea318e2f8980dc8dc5692e6eabcf07527287341b05d1e6ed0a21a8be77a55e03352b013c094828d78e8f3d5fee171696ad8b977eefdb4958d34a6590f92eaa5752828b0fd27e551721b9b71449c1abbf3e5d8fe56191299fcd6db19742d516d6135f46e8f62e30a4be858818379df9221cd9e498e6a636f92cc85c72d8821215b243b5e81ab732aeab8f4201e8f57e5ce0f82b89de5b882968bf248d32f2fb014a75a9dff8483c02b1487a80bd70d4554a43a56efc5fac53ba0490353e38a9ea5bf4f9e4deb728239de6ef09cdc00023baccacacc9095d02a2c97a68dc1e45cc4a05123b2e972338c05f5a186429c171b7c7d8261fdd57916304459d604f8d8dde489823dca8d04d7077e51c7ed06f476ca52918ae610e0085c4d419144dbbc1c464b01bf39ba35185dab4f650e171f526c6ede67a492b705397deefb33fa2300d3c9942101b0100dc4bfe67c07e577fd7b93ae25ae725385bfc25a0f08dcba7abb7a983e52a03b7d8e08c5ee885172996101ed07bf55d7ff1e9a784ed479c87f71eee7ab8d8fac0dc4dbf0d972011871dbbe735dcab79ceab61e18ec461cd162e00e8f1e1380933d24253c8cf27bd344afb2f4ed02600dce614a49b02bec0e5efa832404fb569eda7d78f404856394a9ee47ab27f1d6a2240192b9a27087d72be2e0ed204ac47a4cc08a155ec4a17c4c16c9bd864e8227a1cad6108275f5acd85071395955d3919b74336dd595b1954fc0b38a6d0d73307210c8ed2eccfa9350e329011ab2bbad66003b6e86236c77cbded128766da9347bb53d278d19fe1848aee558584273ed0c47c98dd8e56046d17b1f7a49d7355f499773579286718c60d07ef6a72f0b842665bbb58984412cc3fb9701a41022db52d462661b6fbd8860fa88a765be2b112c98dc03ceda9a889100ea63bf356095b2f7daa95322b9945ecc8183837943faef721ca7b31330dd188cc075ba49ab8731aeeabd5c9455de165245b4096a6842afd312525ba4255714927a6c11e85d38daeb215b69d7852151ec1ecdc17e287ed6ce0b5ff13733b6819f758ed7be368716c71b3db41f869da1e0a823df2a581b6da6436827be932c062db1889ac6e23e71db204833ffb3e005177e31a6fa6f83f5f289b4a6478a29db2ea2bfef3f1e3644c4276fa9284d16d09c664c66dfb470819f22d4ef491712a3cf307ef69c1091cc7a9b30f2cfedf4179c1dadedc7e6806a82332dc870a510a564b0c677980e37222af021571a3e979399b51c6437b1732b20524352bab6925f931750c633802e833ecda0fbabb23dec5d3055a3baab4cf6024e5e822945ae244bf2a2cbabe68bb97722bd6d4a4ebaffeb2615cf1827161dfbb6766646fb15bfa644d09e66bd17e2c80005c7ead7fffa7500177a8d8abf8e134ab271a7346b8fffea174a32184db95437b37eebf089de92cffb835c98d6319b11bad24342691de733f5280a17671bab04d6d4ddc3e50cf580bfc81fb4c5cc2a7a60b9448f33a46e51f5e6133b1b045652cec36633261cb2e0fa90b2ea3701992162931bae9db88707732fe9b31f3259de8b93b3004842f9b5feb63155ad1dea787e2f548ee721b7ff24c6263c6ea0f3724b9608496e8b5f4bf7fb08a049bd8ab07418f7d535719a73d926c6b9cabf8c8d11a9ec08086f864b7f22b0a3f724ec8b290e28b3e44bf1b799951d678399cc4f20261f0cfbcf8e0fa4fa281117f8e7bdfa68405d6b5f1ad79db183dd982fbab45a40b245e049ab1edfaf66e4cec69942be4405ca439b35cf9bb1c367422d655d61a6f9bcac2268c7aa69d4efb10b53e7c879534d856b17519458e2bd4143642a29956c05c43c73ac728215a4653ca1f43b734884cdeb845d857f18106cde6fec213fef05b7a0fd584359e965da506839a3e859882c53a595c069c0e99b8f49bd065951aa67e7088dedf4833473649960a5c23b1f72acf4c37c73cde5f5034306e28c2238f94c4f04823e337ab9179b609285bba80c5ae2d02334f4bbd48bd6d32c11d27533cc500b4984983f6f200cc8909b29b95cb386af507a964665169465efbb27da5f5957ae1ebe8196f0149b724675c6eb6526e525e41f3a3dd1959a0136e8399265138f8e19a41c4138446cdb943c57f54427628142b27f41dfd6f1afe3903b0ca771684fa076afd60dded638ebd0c24e9381ac14e7b160830ccd3e09f349b347b877ac174ec8d315548b66e43778358242d48b480a7e200a4ac6f91b46b28237d0315a51bc9674c4ee11f2b32ca31365d28931d17db846429e573305c077b1a661e7bbd6607ca979a7e28dd01425034ae32b0ec40314764bfbfd12c00f6d846aad2a40b961c1bead63dd89b8849cf3a676cfac51f154b73375ec2742479781c0d966d6b4026d4247474b62d4921d084bf5bef7204f6032d047b3f9a969e07e27ef3158c16260303fe6250f51f302b53f1a8b1e298cfb78b8e958807aded260b317ec078dc38ca37fda3b7edf07eea6e29de86ba1960036f8bf6a1438814ea62eb5ff7b0dbe2dddc8ed001b768b8cb7bf4435976014956720b4ed046882d5b06ec3b26d14fd207310b3ec6b22256c11a149e3619c7c074133f6a21df6749f62edc3e1dcb8f46a5a65509a430c6bc73dce55fd26d92eef52829abe224b0462ccda3fb90aef5a02942b0ddbcaaece8bc03c6ea00d70783c3a8b96427ff75a3e1f225249701c78298482c063212e3f62918188c3db08da3a0be0a5647b893e2ed0d30442fa99f410d3e1262b02b983f7e48df3b253eadc79e32bab95da2d0519ef22564b661216a3434dbc5e3fb49fd329d1090fb2e71baa51f9938c8cba87a34b634e073c7e97ecf68952bfd43c46aeefa08f426abe38bf0f92b35abc3a64b645916d00cef10203534ced6320e421811f5d0f6aef50de190e5b47b6d6e8114d642b0120d8eb24dce475b393b4a44c12f70186ec39c1bbbe85cc25f3bea6fc3a789167068b34386983c9df7d679ef468d14143f363a83802f277cb58183656ee80fbe4bf00fb717a57115e4436dc292a790a6d9fec356cdf19e28e275b927171c6de70fdcceb1189b3a692bc80fb80dabab7fd5b56c1d528e48a4748c5270c5bea88cd24bfe5225325e2c332f442608fb271bac1914d9d2bab8c55303818d86b9c45bb3ba874f29bae40cdf43d1ebe6af75c93d8b47192afbcae7955717329eee1788198fb8643792363a09575ebf2a11352cab93d23d0e2e281482cdcc6738b2787c47925a63acb28a21fcbe7fb16e1f89d00f5adf4a39031d8810eb91d5384d37b8b16e5c55a222a5d9a454d3334b0c3ad1d52ea7f07d7cc08d7dfdf4cb577ce86025350a800680e5d706f32c37a3bfa7aaad02b3a846726ae3269196c999efff5212d9d5447b7fa5c832ffd23241528caab0ebab0af6107a2bf9fbad6952cc3abb3bb4af228d62e7a4a3dbca26d2948ea5d7a4bbbaa1566c1e28d29dee4f2ada82a901ef59a885545f6e7235eb3c88a4dcba0b7d93ab974279c97198da8097ad18f460caf4aad58bc221afbb5e0ce4453c83a27cedcefb38e22f7754486193ed60eb566036e552c05a8d040b4623936e5f100e492652fecc3d9047d1f5c112e6d528ca4fb2d894a784e7e761ee383371009a9c13c92eef132e91892b3307fe7023548ae08e0c43b8fbf3512ce5ad9899c17eb7e0fa2c7261b6e1a78127d2b340c7c0c4bbb3db9eb881dd3db05620479f778573480c21ff3d3dd951e81d2382fa7f928d34e737f59c796e2fcae5c7fce75f9106c752b460ad6670f96ecc672e2195c55e201cfb2fb68f35aab90e09249aecac499dab6437c580975834c79471cf414f913f72864530c9ecb9fd66e0647f105a3b414ab076937c0ce78a915d7842cc09e835ab1cc5e0942a67414cbe10b7344a7e5eb4b5e454ad57672dffda633414470713169c5065b7fd4758d42bb43842fbd8660dea9ffbc7835a83d773c706a2b3f56a33fa1c922c96ec4a101a8f26693ab4b213ea9505dd7a87f5eca72bbd80ab9ffe9329723058867273f40c13f08f389e3171d409a346af7a521a728ec76c4155f4b3e0310d2079f4a9776b674494afcbaa410e152dc5dc0143d851df9c21004ba0d40e4957c9721381bb1ee5d4c7928f8df0cc22ec433bb0ce5cb18425d0dc1add16aa414eb3d376924f529ce752e8e451d042712e00725ef07649d4f507e93cf457e8b340495d44dbe197ceb966b4ea680dd695ae0cf7a63a98589d589d11931693e2cadac56aab28eee873b2695261bdde5bf7496b4c678cbefe9e29569fe264c918cac4a1685d943e01b564873330c415ec510737b945d52fd40e80673d5288b24a8991c7560e114f5572624ebde21c7083346d98b225ea39dd14290e01efdab79feefce6caf706e677bede45ee24c24c5582287e25b56968514cf2cb4c2920fc26797a81795600741a5e20a58149caa65ff4025437e1b0e24848c4137154cd714ebb138ac5ec650cf44dc49686c6b7778e952932e15fdfe3460d8d6e9b28e2410ed996b2377d4b09c33bd0b1c2b659e37d44c33efe25ec7ec492fa62fc4151052c0d15c007544cac4d099592c2563ccfb437d73b03edc920534405aa0ba0f8922725b18013bc774ebe4e61bd2e8aa9c70373837b9ab89b82aa854a7a79282a641902be3cb8884df1f7d50335d65739548e5483b4cc48f9fdf92837f4aa22c4d1081b2dbd048cca42881d1e6fe367f21de70c067134a4437521f701f996b9d9ab06f74c41a3218566acd74690db88fa88911cd511f79809420a2e76f6777febeda6b6d7fdaba5d915766cfc195b2dd7a32ddcca9fe3327cdb34fd8d710ee7af914a8951ff49f926e97e756774feeb3d8e8df998e52446f326b409dd591fc86bc20836b789bd011bdcbf41edfd87fd74b9f5f1de8b69eb81a43bebca6f70e0daf2ec957c4fd0270f5f1352928a20c143a4d399903142fc9ae999af9d47c44fa897ad15db1941d97487a0e02c7d823973f44898acbaba99c51bf55754b33e187788f53870bc05075231ee5467e4fa8bde0f03e9424fe1a3615d6356519d29a37a49d8122c6e83a6cd23a5ce92456f821397f95dcbc402437c5e0516d59d493e9fbf0fce8fe1062fcc8a18a149ff010a8363d816cc6be163b4839d7248d5d097421130293cb6d6209c5784d1e16d82b741eb0b0ed07b10332f55ba3c57d585437cb514f5cf1d347ab25a919caf3b913f582ca18ead97eba69c27efb8daa2e33bf6f3679816ce7e41772817ee178744fba3816cb71c2457f24b31421f941acf5a55574c8a869a7a00221b44eb72c8226b470335fc9d6a9314507deb1eb742fde031d4ddda0f4f6642a6034c69bea17eafaa54f4a6b0c2f14ab46ebc5444534df29fa676aa3aa62c1ab05b7e732002990e0c02954f593b2896c0c50bd7337f2817482862ae9574799cb00a2dc739477273a0cffb67f87e55424e59ceb06fc870bc0f21eeb27463e661fa0f1d594846deeb439c92b370eb83572cf6985a9e68a7b251549911ffd4c307eea352ce19674228bab9fdc89d18a0249416a447bd98baaba64c743e8ecb3baf36a2ea02ce3a60017fdc1e941a4764bdad638e5b8bc159c03da8a73f5ceead7d164f5b826938b2f026050bd65771af792433876fc35ec6eec467792c82052d1cc3c9e61338892b924f0523a102f91b74cb72becf261fd794e10119b54687f737d2bd4129ff0e9f2b208210ddba2a6f0b52b473bd570b4af6383df09abc109e01b6257171000ead1f5a9603c61912a862084bc2ec83bd91bd08133530b1e34bae4930aa47cc24da7af9752f6b085809e1b3ad5405dff300754f1cffe3eac34ef86d9b8f40e47b5d6965b52e30662577b3738e7d25ed07970e854b31aeb7cd8c9bb51580a22d5747bf3016aa4dff43e746b55ad15d9d14b75ce3f41ea4cb1f10d82179c9e73373dc716afb564cd3f76ecd38153f3134d5c2973e67f16b6f7231f6eef07c3e3bd8651a7ee7248eab4aafc125bcd31a0687e9dc6d9779bcfef533bd705c500a230d4078a4a53bc701c4fd5c2fadc70402587aa943a047e5b61256f9fe80716118d4a7ede3003e7e36c7ac1cc9b931d00b2cb16516199847d5e373fdf1dc6f8e18db9dffa02a1f8e171244466bddbfd326c343d6d884e5d70588591daf2d6a8f430a3ed8be32bba8b6154f61e7c72155708aeca8c25bb2a121a1cc32c5fa7c97fe5912c64f334dcf8f23a4b7ccad6514eaa1cfed88716e403d9d251a19b8078de65a3cbcd511d0daffa8acd7dc1064be14e1dd9826ba306807a30a362251be8c92d9cbd012f850f50af3431590727b7a5ae4480135af5c5d773b7feb362fa56126483cbb69e63c2073343709aa224960496db264d4d73079cb120521e90c0610b5d7dd5cce01bdaf1ec84e0cde9bc0fc9d9f00612435aaaad76afbc772282450736be235467f47c8cee90dbe8320ffcf1de5a77d4c951ef1a318c44d32a7f60abacfe1ecf84ea5e8255f03835b897dce4182caa0140f6ee45a277628373c78ddd8deebcbd0e8ce5efeca9a016378cee1b025c5960d28b22c887a0f51de632b9db87daa41abdc2ccf10a5dba3b961eb658afc9e8e4967df08a70928c77ec64ad04d9aa85f1908fbb0ea0f6819951c2fab80155b9ea456e4c9008f22082694bd30db958e5cb093c7cf34075bd645ee8077c31c583c9d346f54dbc3b79c64eb4f2b04c50712ea1949cb49a05a914b41df81babac2c6bcd8a9a3f783828a2a9ddf66afef0f7e959911971c5750c4797a6df78f1f9efc8f8ce9446072e4e1b3df2536b9fa9a43d715f6fb6ea1be302c9e64f98a850d812fdb86d887f9333185c286257625e428ba055d13584298578bb7ca1c3ab4585d5899cf95b7c0a50f7875d773058535964ff507ce1a18d301e133a1e86dce9c7d14a84bc5cdf0cc95d7b45c9373a7a31b60fa56704c5eadb8fca34e5a03f53932f3335b454ce2dedf8cec5aa9ac880ce9abde76104b9ec14ba89564637e88d5aed1728b07b70e208f5be471133f43a457bb21651b04c8924f2c7786667413388a3322dd90425f01492e07a6dded267d5f3f3437cf0a2d2f99e4b622bec62765432b489e7ad2327e387397694b131fc41f028f9cc1fe57e6c5e490e336adb80ab8d2f866f347b53c8788623053d392dd586787255842fad2b2ac3c398f90bbccae53223f3d2062cbe938c518201e292af27c03734f016a2704ed6c23fdb419014c80a1f12c63cc17124813fd90821afe769b6f1537876ac0a15b536caab43c279ffb2017abe105e43c0fb4d0b7d0fa409296978bf2e5387f35989adb32cabfc517f2847137c43f91a32986845a8c243f997d458439ec1651ae20088426eb0f600862e5c662697e0f09315cce752f307100ecc73f186cce97c055b83289b204e52bf4588952947a23338aa417b63c2161e2e9c1b06dd1e6db618f2633561bbc4e1a64123f3feb097d69418e87ff2133607d5ce6c56c08874e4e41730ff70a432bd77892ccf8c5a849faf63c95e8ea6f73b30681181db43da6852f9ab0cfabd46c458df0785f4cff07b6dbddce3ac37ab88a19ef15dcb4294fc9b28a46b297ba2faea87bc2e8e47b6272bdaf8a75493887ad54699cd9fe3cbc220d54ac68d2171b3b2736e01ef35cc0882350074bb13ec0e8b6c1ed96c093e45aced7902e9428a17ff2ed1a1fe6c30d547bdf1823b6370bafbef6cc6cd9199d8048b48834e4c0aaed49f3fe1b97abf4b854cee0975d9e43983abe9506a0f88b691459521f0314295d1bb0c5d8f7db6199ae6536f68982f5dca9691fe3f886e82aa6770189a50ea08beba13c311135ba5f535c56c35c3c97da2cc646d8bcb5179ff1417b7cfecdfa984e78dd9251eb9579450b28336939209505da0c8c6f327ae81e29a9fb99fde287f059c17e2b8f30d73b13e7b3b64db831a8a152fb45ba6ee64e0e0c7a072663c12d92970a04fafd6e2e85486193327e795b2e5cf47c57a0c26f17e6615436d3923b29ce5f717afdb8f2df428e361dcf5c69c86f9bff823567219a058c56d2eda9e028a93bc9d97531e874784233970c6cdff617e75d645a03aace57cdc62f749cbd8f1b70ff14bedbb405e4b8ba02995edf8ec92513aaed8afa3cce692b8cf5622535d364d4e297bb11adcfddae74a68c7f2cf1731cb4cc33c315ce97928526d7851f0f9053616a59a7644ed584ce7e763bb7b546df0a59f997e954051de0b33b600f8601a2845c44fab96877f7411f3cf4d30fe55f5c561b25703a525882a3b3d140d9da1c21e88c6784edcc89a85c26816630ebc7792d9c73517b9569b225c7aba5cdd0c7aaff4631ae5f93d958491dd08492c93c0ff6c43d2345d507de2fe21c1accac0b044a0c9b62cac0c163402f967d7f410610669d530c908e467759d6e855f7cdc4f5487a16335df94c63cd0e90d43dec0411eb760fc06e3230b03a55319c7ca3a12a78b27f0592187845a39252569eb5780bbf64dac3e1a6301ffc79ce6ba235d1c793d969dd46acc4bcf732aba51c5c1742bfbcc030e7c14f96dd3d37b27e9c01fd3e987bd2a5779b40e48f90e452f57242299b1663b4d03bb73901fa422c86ae25349cdbc5edf17ec7e0eaa25a1266b03c275e2c4a8315240ef30ac595cdb4bf550115ada82ec30da507a93c3b0dec8d2b422a134a214363bd46fffe0ca97c776b153b9c65d44ed53595d612ed9f96b986656571e17904fa03b86def463147b1008bc57abf6b22f442019f6575f2c977791d3a6785ab73d9282744773bda1470d5af70ecb664878c4723d7c0e85cba99d71d1a8365d1a2fd942d59592832f4bc8dc07e2349b6f706020e744c03b4f7c34aed36c6099116582688e2128ed38cd5dcb134ad992fa124fbb10fad4ae5df0472c506b9fca6468a05b0fd43bf6b96aa77295a4ed9f2e8e1ece167745b1425bbed55c58ff3211f7088c129a8c43f60ae68fabfef7b0ee2283307de21443d51cc911df25e26b8837aeb77ca9e974f4bf39e91b39a8f69da53b0affab20f3a3e2b387ad05fcaa6c5d9eb53a943f5754d9ad2c08b854640cf7fcf21e6c3e1eb9daeed64e644e0d72e788cfa72174ca97091183f2130063ef3ae8e4eee3f46327137730d819ec89e7cc48f78353886d051a2bf0752908dda2cbbbacc06a2964d92274d2d2d4f50385e4c705ee629b274a1d050797e4e04009618c70344c596432a28dbf74010275ff926e297dd2eccf6a808cdb70a120528fe67eb4f6245abdf3a4032024f06f2b1662f277957302ad7bd1d825ee1ddf40d69d970b43d6f4bf2163bb35ab7656c5c310fc0bbf3364c0acf1811ffef7c39cd8b5e59a458c19085e55e974d15274871db18440b3573134ddfd67f44a5fe20c251adca845afc05d72273ed00cecbc0a65af2695206d6a1e883f76fd278438ccc5812e7cf8bc317091e17c127883212b4940f8b2f3239645c651bd5216299aea37313fe295bcdc8a87b686689af7b4562e7fc2bd7e81709f3c272c4ad606874c228e23e4edca38b56b2f923fff1fd057fa47953323ed7655dec9b37bcf2ee6214349e567343f5631b8e18b5d7c24a70448f62ba35ab9e8c0cc8d1dcef9d0e03f30368a4ab6b74b135af645e45d9420d75616c1e468bc0942a516a4e996c2829343843edcf5149467309b68e98b13a6b5f46ae41fd9fb2d7bf13a54b6f6b09ac012bc9b9b69911ab806253468e092f073960fc60ca8a96a4c8b0c9ccee2be75cf366abc7d50871b2efd778bee6650978c442122bb85552acbd5f960c25426c526c280639ee0732be19572e0bce8af40d03758d8219eb38a85768fee00ec7d4d88ce2826b0f27f6576c266eb15d06c157c6f6b794fd9e42fd24a938fd09da1a9922bc4aa10f9776ff205c9b6ba3a5594052b6220f13a0d55dde141ef70d1a33c9e011c9e594b05450db64489626fd47b6e419107e118b1eac452fd829842d5977d2ee3dd8eb6a7ae12a7d4dffdae4480fe478ae1dd7daf89ec092dfcf9e3c6c426997204635e40a80783c2f11cdf4f099a99f22a8286d67ebce6d4aee00745b11c30352bfe6e0e2a77808d594980e610f5a4f62ea67099df4f1ff6aeb6186a29bc15b1f8e3544a95bd79d8f83e8d30ad701bdde29a5d694449a20beea9827d6d4567f14bdc69a6fbe738a6fa3d32d854e3711ffa426df3a4f35b829482591408df9809e14ea90e2102cb3ebe7e6c47087d9e86ab8e096244284458bccda008ed98d277e3ab9790af4eccfd7d0138a6c2d1ed32473604dd9e2fa599675d13689132d6d0a5dafcb9b1371ebaa4186301a8605d674a359bdaabd031a03eb19f8e78521014314b19fd799e0e5158b9aae32bd77e9a2a660831d27adc10cfb008f27151ac5b2620735fc0e4af1e9a0c9bfaaeec27b8185579ee1d1701b40b8dd48797712512200846d4586c0184fb66662e7a0edeac727bdf35afb7d0b9a127ff4becdac6f1a58e04e7d3ac5b44aba765b02a1550b3da85cc9b9702c06f6054f6997afc19d36e66b821cfc84f6956ebfaf1e735fa9b113d24da3ee0495ccb72aff7afcbb8e47da49d8fa125c60c412692ccdc88efeca1cf90f6a9d19d7411ec013e803eea9452ed1c28f75054bbadd32de80af3c3b9d8ea184d6ab3ffc830afb879fd66d8913981dd4c277d46373bf479b136944061688d4827f4a19cb79b0ac40f1d22e7b1001834b4c535a25192536795a206cf736ca8cc6b289c51dc10522a718befe037b6d6084a52be36869b96a52caeb021a20a30371eddb795ffd91ce29a9fcc457a37dc280896f48d16c5bd3472cd02970ea3f9b87e43e3f14768a8ab70abce2e2edf2606705bab05d7dc5fc3a62b5816d526ffe6f1d4d8b5105532447061fdbc3a5e2c5011995f7db9c9e12523b7f847b321f457616ba734056be2e5162bf7a4b9f80d83ee7bfa16f1bf0a67b58bca376cd1ecc4cfffac89d73a706528f168e83aaab98b076da74118e390be3209d632fe9eff584011e7b3ca6be034c649fd6a3d5a5930c0299030c159d527fc6240de9b8b0391919124a81a3a3a944ebc2569c7fa27dadd8e0c17ff2ddc9845ac63edf9768bce47ce1e8e60ba777c33de23c903a146711cf707edf702bcfeef1df96bc9341302797a0697939cda656710fae547ee4375a3ff7717319f278fcd9c5ef21c778dc058e13fe5b5eecbe0e944771f52aff75cd99b76dd73a2d68b1dc4f2922840f80075c4cd742f3ff6c01b93f0430dbdbdf568521167abff27755951a48c94e87389878c334f7750b6ec71417f3f806ef0e0390fb7f205433b9f3d4eec692a732b58a10ad81d97726b3fd298064f3f52c29856f03f960dee84ed9160153eea5e4c690ce8cb559fc8b1cc60533acfe8108a4b2d1253f26432d4c1a05fbcfc06209cbc1334a0b7c27c74a458cba5da5a9973e05bdafeb337df3aa0f0d016de23271881c8047885c3c570e24d5eec9acf2c7a31c811b6298035dcfd10326c8a1b158d3fe2a3dbba7eb64ef1098ae09899ccc9839375b243f80e5d0c1dafe993d9b77b5adebdb901ef262203aa9a9b8e6a23037c2d2c20862d6deef016448276b7720e6d151771a1807b4efd7854e4b24903675c2c1f36f1279f732f926d1c2d313bb15f5ed3aa9fc1ab075a1f02c7bd31f702a651d6c43b111c525d24419fe91ce23ef0b0aacaecae5a2cd559e5f9d3bb1b7d1806a9b3778768d16fe6c5ac3b8b0b9b8e5f1796993c59da133f2ced6d789f58406ea9e86f2f0c7feaee1e977ca58252ebdcbde83fcec363281ca5e0ad5e75a129479071b7fd410775a8c267241b52283ae00136fc0e18f4c085d590d97e4fc95e6034becd26489b43d2265820a8fd77e383595752b4b3dd29523a9263427f9b55f81c320730cde92d7588c0a05e48046c0d148349f10ea8f79d8b31df7668e7a86885d633ee36c1b692a5324861181bd0d1bad6813c8cf200a83e825dfbdd2be836e58bde38446cf7c2a53a2d7ce1858ccdaaec88f745e86209452c41ecbf161a6f7b92e643703375bea604cb4f754dd0e98d6e6b194adec9912c4649ba51cb4e19757329961a6e0946ddc93cd26fbdbc55fd5fb2b8190cdd5d768b4709e951549439754af510a017aaeeb2047207f854a1db2cc421b68453adcd4ff6cd3816199ce4906a5538e63a632d1053b0c4b39da8219cb51cb0bf6b193dfc291916a89aedf40dfce17013072afd0193681e449148292fb44cf6345275ade50978798b90c6e8296516901547dbe53f9b85eb86c7c5499231dd98e1e0df00ffc68c8b27957d33b10ac344f0a2aa2406db57797d4fc13e33f73fdac9dd9064b6ba29d4b80db6bd6032ddec60f201ab587170d2e2e5ee34b49eef1a93783dd41dd182a455b05c7cfe678e80093cb47979839180095d3a631ddcc9ba00009edecf051dc37a2e86737fb04ebcfd0d9a2ae386d65b41e6f4c3d745feeb1aceba4ee2a07b14423ba15f49a9dd8169dbffd360e787eb8c9aaa4dc708d1969c8af3702d8aa45fd5d54bc321be395b1cc329a1f9a11658773e0caee744f08076f5e77c71cdbba4babb4dca0edcadf6992ae4d6851651d1dfad21d651c322f4f7605c27dfbf16684a47e8d54f719823266f3b54e82960861d324c8da70d9aaafa036fe7fd877580bb7770b846febdd22fb827d3d09370f9134ddd8642878aedee784a7938eaca8375509da6efa30c0ec1d24b0afa5d29bf75ae9eb1c085b42475b0aeb5c74019e5ee0c3731a1f2d88c612641f7ad3626576a69a6228915d52df5ee5d389cc9f9e303bd68ac4a8f89d032f10d72c69d909b0fd232c3e75720c4150b58786fadff2d1ee98d92cfffd38d5f7bba17ee09b78da621c1eed2d1d8f21b92093cc7dcf5759f0058318037c76ed043e9df419012d84b701dd2478fae77e3f4f461f26b4619e5f3903b18608c0fe4233df37a1d838d66cb354c36336621f757021472b82ae810bf7afa00b098251f77929cbf3df1e1d45f5c0281d11253c8132511ed366e8182325c90e0b3b32ea12b3ae12104c7da25af0451495632271604c3b00193d98683e4e19ddad2da6f9f8c8e6df9e48882157af184bb115554c20f61aee591ac895d41f26c985c3b991d96473f35d6e546026a437ccbea34f160d6dadfa60c475b948eaf0528ab545d8267614270e50f1b77521b39274a11aae4174eece4f35d5bff126478b560e663278b0ac310cf2539501e08528f43363926acee459c71c63fde4eca22b67ad1022640b5637e74d113d097cfd8bdb93f971d6c57efd645cc763d67c9b99e2c7fbcf76408697bccee85b40f5b229aa8e9fdd1fa67eca208b878014b6e5b74663d47b704f43abdcd41e2e3d3013ed700727f5d443779d597489af81a2e4a632dcc44c64fc67654035a747b17577a90373e029836fd82e6495652b6fe8c9d664634b3c254df806a4b91f47b2efcd5da85c597076850b6842a289e56958460df07b6015ac0e8659af9e9afdf630d2148fdf6a7b4ce29f8fc0002b505c64ca409c7bedc1c64da521701339d534aad563332d98da3567871e964b0984e3a1566b621093606ede70bb8fbd9580b83718ca260dbd1560f8625050d0006c594adcb6f4b8bfdc96d71e131934ff3cec91b072a9590c208dffdec0bc136de0e0bd2da54e4716032815a56b58878231bddb041be57c5ebc4de91fa8424b5bdcb3fb7e155b66244c15b66da55ab4c5b4b816d31f94fbcfacada83e8819e18c360f2c7649d80f69d7369d1bf7d531b28349adc9f25ce9afc7612fd55d94f549885a19cc4bc413ab509bf25e4ad266ef32b4eaaf7a3070be4bb1f99aa5c8d9032c96b17c5ac6949fb9879fd9ae3b302d65517e1e20884fbb0d658311c9b093c77dac8487363c8be0513fd41395a5603e900bfdc7887657445900ce40c4895f80c7fe4b407bcc433317fb8380c3e93a035b555f51431ced039f68de8316942b0a83695e2f5fa1dc1e982de49137faf723dea481bae5378c2f4aea3d6550901a14dc063c8280b9c9d2124df3dd6431439b51ffa25660374056573a788bd04702d39b29070c9f0e525d1ae3ed5284a8bf10f147e65487662b7f86ada1b58132ee83e86505d665ac13323c8ed77be59f800321d4d6d814950398425fcbc7abd29cbe82002040a6337b0060f7f7d473d18ec41e3edea2a5d49233986b92e729b0ff976ac867b1a6b04edadb795930e2996641c58ece4872bd3598d5b090a897f4be9416328bd8661d24aa76624b2a2e41799e309e5afec6fe5e1eaec6e948478ab46ba686637cfb62e7f9d236e1ad6d4faba14afa9aed7bde13dffaf9c0fd12486e98bb1c68dc632f5909fc6b728918c7d4ec89b98b1ff0b06cb27225bf4f5b24b0bde1db39a17a7f8c340f501813405242086e5f8bf44841187ef3309487c4a1f0d7b0be195de44e68aa3bb034dd66ec353d825fe12cf897d9d336da6e2a85a8d93f13a36c9c1d7a287392f1e97aea566240f1da3381ca8b03e00b2b848657c7ca7c597b3e860a81ddc660e89c5431b271acf3eb0dcb001001a870aa8e4f606755e705debc0caa82e9b30eb77a8c0eea7f4ca33161bd3540d09824e74a4b9cd6c01b7a05b8adce7c8615bc62f2f20d409d36fd55022d12c182658e73f80da72c873cf08b29c3fe943dda1599370b9a224fb61cf727e9112bbd350fccdfc6ecf5d8046a93a963def16f9a1d58bf1f2eac0d07f9b3ef23dbda3a241deac61c994115ab7f94f5d2c476d07eddc5c666069ac5de2f1cd76aeab0460dbf777b1ad526569338c271825f85e676428bcc36004657c8a6e9452f950044ad43b0502b2616e4d157cca1a184c38ebf9672134b9c33184e0d3a01dfa42c280f4efc99270054bf7dc6ccb13e97c578b956df2218550c50f48975b68c0c36fd4a91402f71dcc919d30558eef61e68a60f5af24430bb7bbc031c2f76287bcf6194d5a7f01f68f3d925d3fb4b377595f12d8bd20ab809380c247c923348cc5e0499206a3c3e9b0d1aa467f2dd0caa2e8407a79fc5ea24a866c685e2478099b32d2f1bb47a15cbd5a9e8fd735f8502d15f2dbf090daf3404e15f7322ed4b6e2034540e5b918a09178a5d87dbaf9fb23bd53478653d3b4d820b747743c5856012097b117b6f8a63fc736ebbc64fccb42b0e6e3e5af4c9d71c646f7c1754700f39ac2a44768686d09e4f8bea74e5fde09d86eaeaf4955eadc4e15115d9824e4bcfb3ec2c0d4a01e58dbcfa3eebbb49a5898cd392fec899155d6929e94f1a8ce79ac78b9771b42a9a228d7c55d040180251c4107bf4f79d1bb45b5c23784d7679c826a28c46c28cbc434abc578485e5ab54a63e6ae3d203ebc507c4b21a2f8405de23783c79f4c7d3e3ab9302b6c0917455fcf4d2b5cbde26fe309761f3392fdd9da232f7bfd15f95e8211d4298cc415e8e685d90399bd16cd6912410d9c55b2fd99d518c556097345c4d964de7a8cff9bcdc192f3fbb327625545d9cdb95510de0a17eab38af5d21c187126d1ff4caf29f1f7bfcb9ec4089ae9c2f40724d44e67251ab20d0504a082158fdd2a27709ebcd4f0756b5b0672c05fdb070a4f46bbbd7e27f0556d7a925f8006d330f9bc707295a50f348ce934da5fe18888e77ad8efb9e1942d55d9a3d6ef14403afef58d29d831a2473d1974f349e8bc4c226d3cd566119f7d50038cb66512889c5a4684e4ee3d23ce58aa0af3bccb365ce3555bca11f02ab0e61d938d27c3c2a7011ca67c4e655ab5b8ab93452ee2df3993db21d445ce75491245c335281bb9cfa30d91949ca056e10a961db945bc2f572b857a2d1b26b9ef473816ab3a056eace1e6bf2072331e733822fef84e16fad4c881ad9d24f0ff7ea7c5a50f7d2686c9d9e4ed2385ac9461df48504dd40468e2c703fa79074ce5292eec4a9a841f92bf4975c0d2429690411a258c4b2ac108ec699138996f70fae8880f701fecb8d4f4092184c7720ab23117400bc474fd08c040f151d26c2e3b07a6b1e53dd83cd801f3de1d00b24d03c281420a33fc406629342abbbe451910b73ea07762c30f373faeab002f1ebb583057298c98e9ed05897866f1da2387666aac1e02afacd0ffb1c106e5f48811d478d418d9f57dfcf2459930552359b34fff8b400cdf3071d4fe3c9cb3742c541a2367779891a81e6991305848913b5314d540bc7034cc2df781f53bad654ecbd5aacd153720ff1c0b009dd6c7272516447f4148702af959a038d8f67f699fec3242c4dc3cd3c8e30a2b3fe352e7e547325d5a18429214990630485cfa41854a3c78cad63fce32f562321b1611e693124b64b86001aad5d56ba22dedcf9a3209fdca8fb1944279a9c0ca621270ce27319a54b1c558f9685f7e245691941e1e5142229ff78ce610e83f585e0aa6ccb37e149d0c1228f5f27e6ef0f96ee78fafbf29c4ecb355f86ba378f9a61c7c3e4af53da91568cc24ddcbe8420fe75497c0d7f026a30acb4fd4302c8df7b656775a0411ad2bf830a46f5dab555d9d9d4e09a6c24234673c4e9427e0168ec6425eee472e2946726a1c4f4b257b18645035377435990e8014667c4a5e379d4148ee5eaf4180ab9295a700e11e8f207662c484b161b6335633d63c8ab9680363ce5c831b9f447a857d447b0137b11827a40a81189561c11fb77dec4a66d067ab2fb19d083a6b5281baeaff7ff5504c1f4d25e9a272450a25a2d05210b4c29ee877318f129c1afb21c0fb936e421b4b3a9a859080ce67dd3243655baf54fd740be30435120fb00c4ee18d0740ae081e991ab2b54d503e7d4028b2961468ba90591f834c25923c35fca10a2eb3a0a8c191a66c5caedbe1b97a8fd655b8ad561364e81fdaa75631d875b54738bce88bd9f0368f68821d9aa55e95daadeb600e8aebe743e823e291ec79d6b4d749168bdf7d436b50285077e08dc7c689ab3fa21ad1e2702577851a0aac8c96580757a0944daab7d81ab6bf2ee0fc0742db5a52958a604784bff6dc4434c0fdeb61447e1cdb5e16f9f2d8da90cd1362dad67713236a2f78015364108a6ddde86d803002a7a80133ccc7f8d64a97c631f23e9fee7b41b493c7dc4c86f6c93979ed6f4581f5b7a0f52cd1890f8cee52a290a94592ea311be93e1a571843412869d59a97278214b1f3d37e89090cdc99b6dd4998ef3b540f31bb4874f281cc95e0139b541a3a3d2878ff81c23feb754801a656dad31037c397cf977715c4c3e13b207111bdc5b890243cf3bd2cfe4b5ebe796fd7a578a9574f7cce3ad226b6b540a847c5032e770d2fdcf851f416fc4356fb3bf610da9d6be9dd9e57f94282a54c628b106fe8894563ee0ae55ddb8b316f3fe8968b3a408d324e3e4cf21b2b0971b9c64afe6a6193c093ee4acdbe0d7d4f62a3e3a04240d7f633f82c1ab401eed04401bd15c4ae0b158f82279d0507ab60ee0438800b506a1f256d8e0d88b17d65da6ca0655a2b33f3572de5c4c32be29a83dd351a547117184270949914f73f9c0154c6125800a2313e3f6b967f6945424520fdaf6ae8a1919c21c9e0acef66d3d079f94a1dc5753c9d8ffda05cfc2fe83a3f0569922ebdf55ce2ff42c4c22f0deabfb9af54eeb8f39afd68ed034f30710a9ffa287c02d60ea03f2fd62940d55b564b5b7499461198b1d89308a5fdddbdd50df7b7706c99c1db1741c197154cc7f47ed03ee12a5f8aba98b5559d17896cb79a717225b37e55238492a483613c360a114efa64d7ef5a62e409c1ecc41ca93790f1bf7850fd5948eef1b6a37f379076f3f5db76fb49e3e5dcc54bad88d1ae599683ab730adedfabc94cf1f4e47a08ce5464d70c7bd05283940fe643ef01bfe94680f136e698c0c6121a6a0573886d7e8bb306146001032990cd2e290ae2c2a1bc4edb132633f1a2d98bfc5b401b8c193a95fbf02a27fa0a9c9d7671f4537a05499c0f3d4d7bae467c4f423c93d1457b627523eb6e91504694d3b7783fb90b057aa3a58900bf1ce6838e8308142af8052bd895d402f71e32c12dfe5188966e3b067e3b406c20e471e9cc8e0c78d15211e935424225c889a1bed646d7bc968a5e0caca4abc465e088a4b9e830e42bf280576d45e03fce5f0b01427ea1081ab64dc00ee5b9705535642453eeacab2c671a6a9f3b22bdd04093b77db737f31e88b8ce4961766b33f57f0683c04f5003442d38a314f0a4170756161dbfd33fe969e4d49409457067943d10577398bc76f2c12027188b19c897297744911daa08fd47015c91480fee63336b915bb0ed8aea51fc6327757e9157eabed8f80e86d24f8b92c000657be46f9069d15e902076912686ee587d584f4c73c3bf1a81369e9f5e02ad3f83af39e8b3ac6bcb272082d39905535fd2ba2a1413de424f4d869998113eea95ce9cda84f60138f89695c6304ec4b8696f949666476be3ad1f54fcb6f72f1b8e4078b2fa61a4b9e177a4bd23b091a01e806eb572003753e49ed4769e8927754529c8ba8f79c8a4f6b39f3f46624d3de74bd7a89c8d35e55a9871f1c62fb848ed595fd85b43004f0b3c0627759b0f7db47ab25103b2aa550794faa1c6baaaaa95443140691b50db3fb2bc76903d467fd980390bdf51fbaed1a14361da090a02ab2d8d080991c7ff3841ca8fcfeea25110b1aa6b1421f1f3ffb680f3dd610b09298ed5a769aea60d2913834d8fd02e9942eebfc252a687bf7342416386985ee0c6affe8dfbdbaea8c66a79d60a85d7fec4293c214618f0291dfe16144d3ba4798b1ed38852db8d12348988679b9f20012a2d63e9dfefb2a8b0c7ff64f30705878da7c98580026e72d12bb7d9a21ecd129de99e3475c67b438a1a2889012dc18f701d37d1bb7db06f0bfc58a46c42975a45b65ed8b2764fed7d03052971a2557c16effafcd12be5514eeefca38f3bd2ed81deb933855d4aeeff7d4f65a19ea01689870ffa81d50d09aeb781dd8226d763c8f7bcaa35970a829ff7e78e91ebb42d0b07a8eabd52029dd691ee0c373353ab1498b90c0c244512639e13bb4bc9b689c50d6a9f20554f7bf3ca9bb8b95c2f07b4636d27e132e2902e4f41ca8ee85a2d73e1e31688226356be56180e436f97be468bad8168a62b0871472938392e4896e4b548f8427650e24d39212ecaf6edb9b09f94a224de89d47d65ae71c11197d3edb5b4327b6f0fe215f0f674ed3eeae5604f9bda4551c6611b96f758ae1f8c9c5137df8c7e13f417989ac8f5ddbf68845cc64d5654e2e1186d9b8035fda4ba8be8be32e82adda8c7466c3d76e383911553709f43e8ba061bfaf01266cd94e042f052074bd82df24f8fcb0f00e9e1df75f03597c3e2dcb4a459459b2bc263119b7fca72b74428036c80f552edf0c3eb4bc93eaa0c2825ab7cbf89245b91b9adb28c950e75af08387ccec97d32dbfea1ed108f8c4edb4cc9f72c7c5d7a8032034b29dd74f6a7dc074abe6df6e9bcea4cc959edf6c16def6708238cb60ffded10924005d9d8da5a740568e99465f21a2443332a2be14b77fc2deb3c48c2cafac1c202ce59f77cab7b1601bb8d5fcad4f0223ea67928f23635da9009480dc3428b0376bd857e03308013eb330587c6cc9477e3ff912ab077192cf1a61aedc96ac0545a1821ead23c218bd687b67785c64c0641245eebafbcde07b8317ba163c14a7892b925ec5baa4225ede15a792df25f3a406dd15daa46eeca5c6e46d533f33815bb89edc95c17e665b6f0081214847851021780f8ab3a1c43a3dbcbeb7474bce6aec9d8f8405b7787fa441f228e4ba4c268170d5bbcb847a97c8d6e02d3d96d0ea816b09d722c7b822836167f0fc9f32fc1d4247e4e38c0750612d6c2c44c15c270d486fcd40be1feaf5eca8c73bcde592a0122afefaff837cd800918da86c3451b95902f47bbc5e2128f5d7cca44f5dfdd024b99b5f7bad0618525c68e3ab308b1f2638ed78774dca2d917ac5e0e42a068f64c669246dbdb1836a0c1eb4883c82d11a6336e0b8a8bbbb57985cdf7e9d3cfadf6ac6c89b8fd6d954750d597e1f1a5007eba851dd206904e7e657f3c3b3934048474d8e9b180e185f759e50ff17f9ed9f15bab459b82e076006966a8fdefc8574547b6e592c44759e7997aff045fc8cfc5ebba8307239c1e7cde74b7093a87ade43cc259594ec776712ef0528e5de3c19629d3e7c5067b827a8165529afd6802470f3536377548cd6978bfff4579e805651f713eaa2b849ccffa98b30a860b6885d1243a90d4a444bdea26a96016567f8fe545d3da52cfe07bc3db32f9167d16fca0e82a4a99496e8faab11c1f005b5a6750d6cca6d23ea0dcd7bc486ebcf82e54f6a20630df709141815e31f5a530ded2024c2fb2b9fc498c80a10c74975fc18923d044a11b6b4fa592f35cbe2d974bd85f6d4cdb6fef46496031139c23f4cd9003985919add5e0bd30291d7baca80eb8ab835516b0b4fb32cc012573185781e28cd31c3e1bde27888fc52c8871e3fad5101f52e5b7496ca5c15b64e4c60ad8290dc6540095b1cb886a89c151f3b37219eeabc1dcb102c72af49128283e755c42f9924bb03c9550806ea86ab10a6e2c6cf844b6c01847877515ba609b56daf44696f79bccaad23e69e63406c018ea4006aa1ad7c641cc12c10678f2eaf3640899e207e1ee56312968e01c8abd53496982c36d843e90715e6654281f082499ebd4f6f06923d77599d0bd83fb1ab84753abcda04cbd137ea7d969ace80a64a1e2fccfedb1b49760848aac7683ca659a2f6da2284b1bb8dd2cedb2a66c7e78755d0724867907d51c526d199b3fb864a5ec030d78ea7fe2b6b3ba2db0add2ea0d5b782c89c1e18c3418a3d87781319fa71f0a34efdf25a034929d5dc349310712b9d7bc407c33379020a985a529d6b3bf2c3416ab2ecf7f72e803b0dfaea3034f6620e4dd6d42ffcef0319a14e25dc921ed8b6f5f583b2374b2fe440149a75f6de869d5ddc78668b6e123d9ba02df1dd39b3576ef0b8bb9b92a6a2389c8c08d353b04d3b9e2a336a679c89dfc8a8042ccd3db972f822872f925b9b5c58602a9c2d2ba675943b4957c34761e1af7fbe11fc42d95c686909373846e08b8ee8d4dbd164c12a064d5a28537fe8cd050f5f0171f2d6c840cb464e27641d9320ab2d56f66d0d7108d90cc408f2f97056a9d971ef603b0af39a317c1f37551c5b63c877e67d9c086caa42f4af142b14a411bfdec806d2d14cbbd852ea44ad29477fb9590e6e05b6a460afca0b9ce0890800f8ea483f1186a428e67600944a6d7ea278459a3ed4e8ffefbe915a0573d6cfa24f30accc1210146f6d28d0333e107b2293e22c8e8a8fd21dcc83c70e6329bc19ce855c501c1fc6320aa725b581ba1b8a2e780926303ba007a7c23e3a9e18a7f8e2c6fcd4b72418a54e8bb7ac03ee9c185bec926f73f49f9c6b496d51d34f80c85f6545435c8b9913826f4233c4069940366babf759646d20a8d273ddd625be864250d2efa5e9be5aaf81f0660172b827dddf53f1803227abd3ecf8ae17cab02350f9c90a1f34766a03d902e773ee9b282fa9e5b2edbab5a814b7d35723fccc037f83b42e982fa7c97ba8d35b9be73253603464356e7d775657007eae3a7fef7f3164f1d610a61112e5a851eb1a3e20e95b67af9889e81a4ab4c2d950f6bbce634001f9e22f20e971295406c4250f08e1f604d39d0062ffeb26359b1afb414c70d515ff174c250429efcb9197fb4ca167f2744a2adeae11f593edd5b1be1b1cdb15e8999d0444730e87854819753a2e57ce99d3c9171dbaf71fcdc0fb5b2644cc9c99c97f6965da0b2b154884a01b8fc66b9e5629be101dd5d5b0c1a477df49e0c51c1a2fb42cf59e8cb2e9156ead7a7a7fe57b9bbdd6a0469d20379b345b81a8c798a1ff8f654557b350f28c6c36886dd484c4962edf6556817643923854d4289e464ca8f2c2085d2b6341af95429f4e5ef65c3336c120e646381281c0878459c5103ec7847039e883aa08c72a5c11ff1be96cb176aa8f27539dad23c5cfe0a7c37f115b9a388bc81da2c820a1531a18ca5b5af20f1c9723e27a7f772fada07384bd6249bb400ddc4969668e9ee8c363656b51fd2f17ec348d1006401d349e9282b964d8bb9e569cb741b1e305e6315e7d7f657a331b148b216f1a86358cf2ccc2b735356548ea9133fd967a13032cbc56becb3956976daac67363130d770d5e9ed447f0ad1fcdd7b5f417af891b53e4ddf201abf3b1e5ea749135f79a8e3c785d47797e821d1fa1c062c465ed90cf70694e30675787faf6bbe22c05bd2d3bc0a16d67b51ddde6b50e3b2e7ed2e66eb04cb0b7a71d42ab4ed93d4453cc34d0cea0e91e52f10925ec91d9436638ec16253a5da9c823af01c61e4509be411c33ae2e5d8a761e72b3b4c122f989f6032d067650d8ce082ff304a9add2646a07ee61988be8257ebf698e39effdd9385e10bed8904fdd3d27710566368b282cc9365b4eec21c639198090a7dc81490c350e6ba1333cc1a654a3986b09b931da0c45065ff80ca6f32f2ee30ade2e54fb5d476118f7c467caa170e19d81e66b1915003ec1bc8f757f76134642259576bac2d6a5019fdc629362add8a58e7604d5c27ad46e7b14c72a890b89ea3f3cb2e4922873df7cd767a01780c837313cf042d6180c4f65f6949505b0138d816e0bc840dab904ce6fd1241bd0d0a9c9e166f89be41ef1b662b81a55ef5d1e159d0a429bab9977d9ef1d59d9db65da324a620e7890b816c2a974c82bce75cc4fec3eac9601eba3f76b6f7b7666ce66e39a215601dc7a0eae22ebe8bd9f7c1d1f11b8d8963bb8dded510c600447a7318f8ba79d9e9879def893a61aeebe285eac298b1e4ca4c0b34716de91a9855f3903ed3c04d855bc3e038a10f9f51843608fa452767517f5119873f3025c9db9be3516ea5eced1c2633124fb544ba82a892a9baaa6198efe33cc82fe4c11eb4fbbc40b01ad8aa6fb986aa81afdc3544e300a3db38009a3b567faeed58186cd0aa85cc3949c17514aab019c85163a8cb64d610b932cbdc9a99f56aaf18b017bab93c1d9fa1e979b8a2350383805334d7c78fdacf385de619dd536d5f11eae1c4689746f4d0dc6a705518ed093e44a4b4b354c148088120a073d51fb17387851c2462fa5eedc9f53fe23b225db8f664be8944b8a6bccd39492459e66c92e86d45a43b05eff63147629d85eb4b83aeed3a62280f2ea1270ca9c6d880a1155b4a51e069187e7ad017e2e6f2fc0b59992d3f0224a45b5e27ab3b9e453751e28b4bc73cc2013d2dfe35129fbe53ec49a5eefc32134cf8934477f2efee748c110b1018f807d552f2dedea2db949cdb7ad17bf31d1143da82f3a3a777364f7f1b39c00feff642130dc770abcfbbd86c89c2e5ddf371ede57f60870c1762ce347d3848e20b2784b4d5a049551e5dbef12f5c255872f34ce5f8233867095518d83bd9462a86eedd0c1603592d6f2982315ff7a2e773324ec8e914e139b6a8830054fa4761eb4e1e40c297c8d2e56c41936473277117f989833a2eeb78b211102548276dd5e2ed4946fb16617ac20e52c3cb6c091497ce03ba4ff450640c83d559b90099f188df4897311c2739a3dc3fcd4395c252a82e879bbdec7d5ec71800927a29a154eaa48aa62de0215b43c256a0ffd568051e3facc558a62f875292bfeea0e3f38d800e001cc9fa561aaec8cafdf303c01704c24f9d29f22a7f7b34bc2fb2e353ae3728f6904547964a1c5fc899d648dfecd72556b985b512440234d5a14bb4ee86e60efd5a1040675b32310fc866ea28ac0129c2090f55f01533849c013bd1638cb0d9616fd6a81996a51f07439e46ddf383e0d23a70d322fe69533b77910958e245ac812b9a403604962f00b3b23283437fb3a034f28997fe3c248a4ee72d15ef4c51a3e37f8ed3043ddd91073e9223d51324ff6fb3a1387eafc6a65bb2478e28ac9bc141fa9b5a842373468ae7d479c31ed256aa6481edeceda56864e1942d98a7b68ecdbdc845ba11d110a1c68011715e500f24d0eb39914bfd9c9bab7026e6b87304c1a8f6381b3902781d1ba977c4d61ae6770bfb872771a74b7342b7d9af973a64a5196da6d3ace477745ea36c6bf653dfe95d2837c667e11c1974363a5d439132735b84262f00b7233d4352d20663199ccc5ddb17a847fc09fe1e51fa0f029bc6f42ce313e01021a6d3fa01b3acf0ca6070e83f4de286894b9b40c4f1c14246e8c37fab7cd8f4561ff2a781d729a68b9bcff6c9d37dbba1abed65805ab5b1dc97198ea5ef92d7352d69c70282dff4b875e2e5bfd5fdc840e2ab131491ab5f605972b2f1de8652967e7814927f54613dfdfb63ee8139f80330ed3755fcf67a330057b9daf3732d3e2252b0891c34e7ed168b166f09f490883486fbbcd0e879f107c58c50acc8642cc2acdbf7e35070f1aecc3bc2a4836d8145adb20347d81b639365575d65ac61a90b7ffe98144f8b7e5038f118ea774a16d2710ad60a69519ffca494f25c4490b96513d4fbd85b9da50863f793fba456c1d3c2d403ee256c6420acf6cda7ddcd952f4687f02df7a96363300b85d7da1cad79df51381812c3d5b73c6136fd3403da13e43daf5177b662bb683be1d0fb2da6fd64ccc32c6d3878915d17a0a80ab876b8ff7277bab9210bdf87e364a025519629fbd1780ceda8fb93dd79d1d354321f03c8fc1ecc3a8e3516a291f7828a004d684f7df694225c586528422f5f3a6d22a717d49df5a3c464174c279826e568e41e94b0a3c476c14bfa4c74cf3bc65df2c3d13f4730bde94ffc909061f87755e180e30c8ebf5b92ddec7520364fb84f06d240b607b44b55077a6c40e9e07a9e53029c077bf53ee1a3b3b1de41c41fcce5fb800ffea2dfa9de9503c46274bd63fc9193814e2963d26e2c9e4685b593aeecedbf30d67c37b12f074bfb205e992e655037c36c452ae10550ca41b93769dc6d9ecc61de35b19d479f21cabd4caa73384ef90a56c029c98abe422db1d43fbff8863c42b9b144a07decb2ae39ff796b31a9c20771a493850cea2642f00e91d6c526a174ae75b978d5dc1418848f90f48a1c4f9bfda2b05c4c5bb35ae33b93ed1109551d8ab261f14aefabe6dc1597b1afb8a8dd4f3785af157a4a56f29f790843a22e44b6831137268d88449f415725e5c1d7419488ce30c6e6c87927671b7d46021aa88260c385774a87600620c45e4455be66312a22199fc2df2d0dcfc4b4442715dc9cc96684acb81fe02d05d757b700641ea9df3e5cc673fc124219b5b94f9c62018940111f82cfd89b9946e3925d2ff89c4dbebd9499e5e137c6213e59e13d7f456a55bb4d09ed9090155b7fd16272ce3fcf7dbf72264b7cb7de2055f01964844d81e3867f7d0dc72b744dcde8ca8de193050ba0f3388bc115e7211319740515a8704f85480c2683d583c922e6cdb1319be6da046c3fd48cfc2f57438c493b9e7a0dcd538ff3e51e7a835b1f6b5a059768ae5ee9281146334b8adb3458f658e7ffbfae5e5650f75737501746fc9f1fce54c3f383fc7484935b53d279c8c0ff51ae0bcdcc032f87fe45c484d8876f2f8c27146566d2f662507b09c1676987f6e9572379243efde03c4ad28ea64e0422e898a66578f7df6dfa64264dd7f61b5542faa1ae97cfeb0c8a15203f3d92fbb9c5c4ef543edd3361352df2feb58c376850cdacaf48cbbe5cb8ace49dbf115fbb4842a8c15233a0d0a0d15fee616f144fcb6c9f2f82ae8b5e996495f996c1e775ae862d39ca073b80c1ee4c50ec16fdc94965d10231e6b62935dadde6f3dd2edd997c2607c282634fa9022b2ffd6e0c94e7fcfbdacc65e24477dd1d70909aa6eeb45dc8bd153508b52b4f0b46fc69cdd312477b96b946fa0b716b8d50babd05cd2c5da599e0b1093639a3d6505751d88629d22eeb28d8af7b14edabfe3b3b517d194e1e28912b9c73e9c5b5867bb38690ce7fefdcdcbdbcedacf84e811e26f33714efdd2167a3b467cd4a469d0e62a9c886010124ffd1ce94b4444da5dafef6a9436a4e8012ada1b94a12fa2f237718a8c4f3bf0dce2332bf5df61b669c501b6ddb3c69214603166c42693b2b660744f3d5adc992dd2202665d66f36df83212dc5cd6f105a2a8dfd0fcbbb30720c03f7ba0df1f45f353d8046e1e5a2017a1ba594b4f5b34feb8fa3debacf0b83579c20165ad041f509cad770becd50c8f37f2c9e3aba2b5bdd28f02c6323e8da528ad1a914735f4160cef8e4ae7f78c567e5d438547bf28b89da7607f83d55e981cc7f82724c2047df45806df56e770504fb71739c33496f5051de41f2ed0f805cd29fd293b2319c419f46e65d06cfc22f6b38f8d28a5c88e649e4f78a6dc2c0d1053f74f4d6571ed28a2b5eb4947243fc8d664f56d677d0d1c7876b4197f4dfc025751efb4e00faf5181d6049493674b8eb608ab0a9677dee9bd340582a1e8d7e70b644702c6dc09f2874b1734071df608fec6309f76d2eed3a03ed591f0d1c539e508dfea5fa11d92500bd0aa0246c2729710dafbf698ad0e3fb6b8c0c1220fcab9c6bb74f41af41185cb3ecc339ebf4006d349554144c701654f4839aa4052975afb18de3169a890167227a7aa9d8e1b88446d02676b3f859636f8f08725b001f93dcda99af4df78bf96618519edebddfd89d1b28f555685314f048c107e898525375d91162fbe40833e5b0f0e3988b538b0a54bb9e50132c734008ff8b5d7f4766202acacf273dbff7642f8a35cf01749e21fd348ff2214832e370803679359e3cdc522974fa058a7a4907533ddd0a2598d4bceb980f0e4d9f93e34c7ba0af0a027f3916dc0fd1c6eb9bac11574745a19218dbd88c4d2978c2630689199ad5ced8baaa2008a54a94a70a17ba678b831ca5cec8c8c6e81645a215475b80d503051acfd639bb80af607d0f461a5c154c36ceb2961bdf9e4d64e53152e03bcf8cba6494d1fcb71550c8ea68ba9620df5b3ccad17b15a4a898014dab9d2f5c8532da85c014872ef714c463f3f7f623ac1e3d7fe950bfbcee995ac193dd6f089bb0e68216f9e0dcdef42702b90742b70037eae822145797ee41a5ea848ffbafbe318551b642f6a3327e7136bff8aadcedfd4aaec7695085175a4690e371958b22d5d705e7931e932d53e653b3598d578afc3ecbf015e526c2ff57381205ad605b33a88185f335ac8ea9021218c1790f7a70d0f7ae833588461f80c1fc15b3b8c5d261eeb84f45e2f5c9375dff48521835ce56b7d840f9911ffd16f123297efea5aedc8badf7ba14e692fa10ad0c77f1d73c69397d7ebfaf7cb29d2f7513bf3394baf79ddd1f3309b9f42175b8ae02ce2614a176f694bfcd1caa84edc764853068580383df60d0a5b076959863d216f815652c33b87b3910d023426acff4d39ec7e2fb3cc73424eeb6b14be3e8a338a1997230d1445366e687b1b8d7ac5e4524ab2594f7e87da7844cd39879704cbdb1b731fc1c24dcf85a6fbded131381c06bace10f5531fec2b29b1dcd4a38804669d6cc0a7d53fd2dc41f0110731a003d01b34aee8b57e06739a46523e53af24ee20a24d62f6a416d35a80dce5378c39731a28a649fe42f386cfa95ff684adec6caba49798197557954c8c6fc77cb747760fe3ca83c6a5b3f59a22a7d35267fc0e33c032323b48c307471e18d5b130341861cf309074bb83aff25b64d288b962c1a444d580edb5bdd165b6cd60336231cc852b1df5c25fe71d4235ee78a9feaa64ac9d4069e61dd163a3a462501adca075ccd703fdf48c91f20395c030765c25202d87c67c7914f310ef5a2a99c0fb5fe2a1f9d89469e1a6ae8597e6c3c0c6dc7ce1adbb09c3c953efbfe88a96c35e12be36197c34d10d4ea765ea51dd21eba0cef43bc998316b49e15e35408c919132f6cbd35c2bed340c8b5cc47b01c7680a777779eabc9d1562064e5351dda7d5171ef7a3d24e9e3895de7a9ee1ab4dd18b63bac3365801749b1998dafd93b846789e65bee1c0ea841737a6fb7bf9212de1c0d91e12ccbd1009f24e01a406f2664b0e1c9770e8bfddb07fd13d4ca9788b3c225e4441309b61067b504202a94711a46f8977df4ccd12ea86f770ae186017eddcb52aa6584a0b4179f1b435f25eda165157b999e560ef8577b68341edf89a64e83e79510921e4a40b30d55fbb06bd4899212d8ba63d8590a4ce6be6323e1990f5ec53dd24a77d4717b34fd24c7cad241d25639b0f20c54aa11392af76dac49ae3d6f0c3d489e784ff2d2391499d47ff5cc8733493f7151b369f98f706913aad91722208a0fbf012f1e79d768028b00bac1412c2ef8469e59332515f9089136fe8fd9cc3b147b5b492f97fad0f6a043367d320230b9d2e94290ee7ad999d269f2776e17907c871a7b03b79bff8dcc7597e805866294eac8ce13089058087944b309df3bc31113f494310d06f327e98995d284fd06b4d131ef62cfbce97171ce30ec3827220640423cfe54598b6396b887248d9e465f7d0291c6dd79ab5e638e2a55cdfeec7a08845bdc340871e11dfb88f57e16bdebde7a947234d3353c64131cda4f9609f017da225bbb5c4b0def93ac2df606d365f5be558370edb8f3b86c39c240fa85077f8b98a3deef4667ed8242ab2c84e8f93855c5f3307b6bb5efb07beb8be9ea46aa82b9e74a31ec07230f2c1c2d964f6869ac100e1f4849530578bd9495545ec0afcc296536e64558264640fd12ba160ee894da18d8b221c59a60e79e06e395cdda1b75dd63a65738a776c071f061a34c8dbf03434d29f6af78892c178a7199465846dfa5f65ce40d25b1dce4966f1c5a584603100db4a80ac01a571c568c55de08c7c4b03dc88475c44f48a76bbda4c46f26cfc64f6bfa3930ba2471caf6fd8eca3b8b3225fd0d90986bdefaa5986532a8be54a58efed93ddc18b34da7274040fde621c490e347267964563ed03f69282e5281dae32c02ca8164fc415fc84511a22c12257ab6f31cac5e082b2a6845e2fe8bda886f4de86376d3633bcf3987f0371920ff528522f33dbfc15696bb958493f5a65384c9fadfc71e52ff370c6e6b63da7a4dd2b4db44e2b2a96b115646348180a6386c9f2fd8be03e2acac87c7df82427d49087a138c9aa735c84d47aedcd7005bb82cdfe2f56ac39c174a2607798b46fefe4d64f1992ed12d79f2157aaeb8ade08ecf30052942a3460d731859a3ee8131ea67d06682b7a6c1bf283866a1f4a4567f5b4b9a26256bbbd8fdbd84ded2b11741fd7315f41a63ac95979cc9828263d7f3d67d87c84ceada93b72e9f1a9e387fca57d485365a8669e1a823f05a435101746429b228bd6f851ae2b58d08ab9c94643acead480552794cf81f4533db340f34c7446e91dc51a8b0595058080607039d7e12c7d9f74eb5ed17dc4d875bb8803e64d83c9db5695aaddf324c9f39c7a4fc13a37516c3c6b4396b1474ea1bef52fa2281da1f3d9308bd9f43ee9f85cfc3e8ed583e84cc4941ebb479a0ac64ccc80f66f39db2ad31b28c659bbd6d5735ea3b675d4d653729dbd5182ea5877ea7c3edb37226feaba735f0200bc6067db242f8a4b28c5e23fe4dd4be4e789f51bcab718c585a1b70e0acd5469402bd572589b58baa0a5aa8235545f8643e5ffdabe8735792b5a5a1c8d99755ed8fc946108baced6eb0df3c3850c8c5f124fdb9fae93a4e24e858edcfa2814301af239d193882b178485ee19e072cdfea0cafe38ebf16c0a1c4539c6c9f94e66f9745b98b4234d418d51e80fe80c1eb3705da463642a718b37e5a9e98b4e474091ac940d24fc952f236dc6ec3e3846d3695c6a320cc8e9c9939b2894fc11a155513061502b9a63a7e2339e49b6dcefd35d7a3e7628193e7a4e66f0c135bf0160fae1c5151dbad59876b8e80f9767ddefb62e3c7722871d5b973542c689ab6d3a575158599f88249ad91cbbe9687cf8e40083844ae92dda4d249907b59f73967b938016dd7a79fdbe3b0633fec7a55073059c112d69481d27d1b081af2359569a3bb4296afd5123ef1b28064bab4b87cec042e218d8fe85f5b03f5f3c362c592ed3a6cc0e554108bf3d6f6a38365420d0802df24db87a8f8a2f2f92f64df10b9d5bd5a4ae5feb1d7d887b2480edf56890e8955abadcf44ae9c6f0828eb7e93ebce3879a73c648c40e4829a1ae7f8569bfade753b543e8dd126a4ae9977b28182ff7f55ac1c0df9e42e4e2089dd8499efbdef68df02f97bc632bca8f3a9c5f4dec209f17cdc49383c23fff88182d36ea1bbb826de50cbd38d4594cfc7262b523c2681770a7693ccb10151b812ae48601e4c83f382bb0f0126f9b7be7116d99f656e284559087cb1005d0b4851fdff1de53eef59902228ffd27cb0cbf3a8b55759900b673b532f50579db875cc4c81cc0151cd6b634a8644d310a328e58c138ce6b702ffc63f8353e87fac10f34085a4edbac953db5a44f705893f4c0d773e6f16c28435935598bd2e915a5275bfc91684a1e681d05f4dec8cd2fef8f1a31790c5c249a3b1430ae1d5b6fc8aa174f6e513a3c6fc45c915338368b17d2e4cc25d2880bd5c6d5cb01fe8a7894c224f91e82e50c7a186ece32f77dd5d09e43460c416f441091415ee90a16ffb8d51030365bfaeeb5d0f81a88675566f2cf41fdef4e2cf41b0708a93f105eee5808987ab3916b496a97e226758180e34e1ff58d0a92ff212262bf64d7f23585d137996064319d015d1c0d12e953cd1abb5562b5f7bb2f5a842f23ea8a1beb32c58872ee0b17562fbd35771a264b582a6f01a6943140fa1174c32679b82fc5c5c4fbe159943be3e49e5ec4c11e7939532cce0e7d2590076e53e1c1caff8848308c98a4f7b8ea92e6bd6508b1fd15f955b1ff8fe1cd9d4262edeed29aa647eaa875cdca91ed4386e01f7afc1fea3eb9f3811610d170bdc1895b5bd02d364b82ae1add532dd0b6c2e7b330561368445e54aaf25f2d841c2e60777893dc07f54ad937b4abc57174c14817cc743fcf0a32d2c817395e95001df505ee813b9283eb5ab2ebe600a5380b72fc163231dde13508d73595e9b427c8679848ee4a5bfcd142ae772f7f0f458252206552275f21bbb84b47fba78ac1411fd4cc1b0906e0472ba3e5ea13beb335e4c639343f8ec7ef12c5b8899c07488ebca56f89eb506e9cbb93b8642132d66d6a5f2a1ef4a72c50693f408f3f21a2f32199b2978233fb0ee8c2e5e006eaf5ff7a3f9ba72eac43d26f54f363e6dd53d3907a4aa2decf684ff467338c7f36f949d84d7787be529ae0c51246dfa161612071005244fe55cf7f59f51c7c5f247d1986882e1a024fc0c8b4269bb261e48a2d74c7fcf93f81e541d3b75f4ee6379072d3e9de9d842b02f09327d6fc7c3d89c96877b1c53040367953db80b79ff2746957b705bfff54a88ffd2727b6838dded681dc4e10f4c8b76d2343a536061308d7da94f8d55070cb77af21f2c9588e75b24b1a876e77888981a4dfdafe43d0f6185bd357affdb4fec9d95c74c5f99dcacd3adf568232abbd90bd883e308a6ca8bc144a29e858de9d41d687951db34dd4b35996908ac15e71412232844115c0f433b5e017352927711c37a808ba32694b93c3692ab90b8f9bff59d288f0c38f4ff6e85287c38f67407ee517bbc53687b288e773b65819726684a51a298489c15b1cd2cb2b1e92209310e44f7950d5eea860742dadc570f1b10fda4f32ad7f9fa933a2842697f38d8ee2a28a9d4f622ffe035ff9c1f8ab5ab25ce76415c1265f8ee8fe7fc0cf5f555455b549dafb6e5b474daff0b8bb8489d4ed08018fe123afe181981bba2ab315ddd4fecf844fc54b90a6eae636525316bdeec0f659038d108b9178cc690e6e10d16c77f2687f81bd3269b91125336912d615c0a3b4ea54322eb3fcb211c4db533f419f987eedf6eeb6abf1e059cf5e5004a30462880c23f28053aa7b2d36d3bb741aedb07dd6ba70c186d5ca91e9037917dcc2f0b3dbaedc7092479cb7a369ddb3d85d2233258f1e7f0ec54d4e1dad9aa2368c0a727fbe361740da5e50c7de54ad5af8e4a07e806b4e1b658f371c9bcf2e48fc47484b92bc8ec7a84942378d93277d1f5a6ed60fd76b9fb103399f64c287ca1725b386b55089ee420fb5e4561f442a5a0b24f89210df11c62868d20e4924c515163de4c9db35f37be4e706380277879a929ca30e47ef4301eb762a9c97c81276e8427db1f579d5535300d36def5c8aeca3969a6d677a38287ea6917c3dd14fee319255b1e16ec911ee66187de0d6d3acd06b840b7f0c510a3432b953497fd87b1aef35453988a35ccc18f024ab0992747de79d88d5e020e5b8dd16fd1e3afc5df1e791057be9bfc143964b7869a5111aab4b54ad8f87a6171163399dcdc0c8ff8468e1f14cec898ee7ebc9a60cf55aca1c575f8c6e8972542291e29f936d812cdbbf9d34b091c2dd8a4f80362805e3cc2713e478973ac2856c932d98a98cd4c8c4416c52ae050d4148f782fbc99a91c87b3c820aa71156cc5a05e86a62b79922911dd4eed318b19b6455cbdbfb25a38a1c5fd707ca527a9694703b3924d090b13e7500f944d637e766ca831e5641e9295d48aa897c2c4c8e04dea07d87d693238bef46aa8a478f663eb7e74654b01c0abd5a43d6438b6695fb66dcae1ee185760880d061162496a5a125352622d716c2cddbd29b811fd5e53c5a66c2e5a591fd11cec4ff656e1384ec1dffb9e14edd3ef8dfe68837b1e2ed65308ff0ffa8400458261f3b6ef0eae665f2d82c852ff473c7c4f7c8cc41493ef0d85b8fcca94c63111cd66ec223193e8aa24614eb7baadf49d9fea3ce8f4fca74645726f7622115f28e95f7f8c5d9ff0ab02f3ca771a001722debb7df6880ceb4bfb2a58897bd4cc6d9859cc2692fffd5381f9fb8c52cc8a49cffca3ea17193a6418841cd8add8e9d57a13d853e2d24c94af164b8654b33f1b7d3e6dc353ae2ee07f452832cf371aebfe10942813ae00f54253e6158bec9b0d86160ceeee09cde9d8d70dc724e18d0ff918332ce71b1ff7a39b68d714bf3afff49e4456aa9da6fb4ac836df381a67b387b58dfd6d165acb15401213950afb189ff298adc591cc29444b24ca5ffa30b930b796900890aa272174917f07bf5d733db485bb9b4092a6e3b53f24a7eca582b1b1dff576edba45d9d15a44e26334999989cec8dcb71f2dc6013bd6ac2fc65ff0792dde30862154a9d291be37919f412d9ada77493bd43b3d4d017065583e5adbac1c4c7e276be4175881ca77755ddb8614219c08c078486d5b37c16bce1d97c527d6254291f51f5525a493e65268c39da8a5e2b27242586a114cd10d4dddc8018fd3982cf999cd77643d2dddfde440020c855df730a5a52df91899ed64b56b0dcab38117872772041f81756e5f61a07e7791444c0cf63d2ac11220b6f744c69d841f4aa3d9ad15b9c84c0519f662085029ff7c77ccddc059bc09df17bd87e844abbdeec67d97779fb16f2ec55445e196e120bada6c9babd5607a8af9c21c2332f4371fea7a94bb1693834a6c9f68eaff653449579a16da74c66da68ce7dcb0c6544faa4cc854d9dc0b55dc6c10b056f0fe3eda4d39c227702eea85bf5dc18c548700a8f2d312591f18dc45bd74508ab0f9f9d7b6df4e5ac478f397582e1aae628cb81309fced26429fc414e5aeee532a27cf2090562dc0e2ab1b24e1b414253f2699c8ba1815875ae78627e3330ebbd05de532e51ee12c4572a3d8672092d17c5dcd11baefc074531d102ded8ccfbd30f53c1d87ea223da5992acc0df44dae37fbed4057befef54fd2fa4043d7fe977b4cdcc7211fd30cea95f0d4428954ea9f1076fcd8b64a2e277857a62847726d14420c65bc58bcc85afaa457908ac94a596f4738ef7afa39c5e804e370a0b871ccbda41ddbe425c64702c8efd377fe8eb12e3f0a86a5771cd3de98bdf6bc17e70126694a6846360a270d9b93d524d9d08d2adaccf1424a4b477bd8dfc008db8e47ea74cc43b4256b141ba11537378a1b3480e9416a52f39f67c3c01f8e07f26493fab756d79940b5c054af25d5ad93b2c31557a70e4a97ba541d1fb101cedec0344b83ba5614ba7d1e808d33d4551fc34310faef3892781f6ed6b9c1ad86f435fb57258963774e8d868f26d5bd53a579ad5b7b92ba074299bd9e0842c9eee5cc089b969ca3c8b50ca1134992459fe2b53b254aa0b97921aa1f097ddc73d7a370c31736597a43e6dc1bc1f73786841fd79762a016492eb2150e0f5b5d09a68ba83ad195ba7cd626c519f44915cb21c65a3049979b835db7cdc88c210d2cd5e5f91f52577d68a3f160512adcc342eb484723d54b19e4b4a6cb18c182bfdb71b48a212718f85e82a6f70585d05d4b29599dab4513e9d3d302a10fd1ec98259dd1df0f616e75e47c0da85f4a5f4362776d49ee9dbf80eacf85c8f545a2ccb60f5ed0b815f520ad51a9912b65f7d12344984f5823f4d326b01b02118862d5e28e7f08cbdd68d990f3d9e5b7e4eeae3153ae2b7de289db7ef2ac430b6ca2ea7b7a6fb56656d4791709cf0a5378c387483ebd9f892a04f57d08b9088aa454b43244d93439a0cc6bef6d4a3af0f7ea6948eed16aec0e150c4fd4c00af548427f10f188e122e1bd9448ae324697dc331475240fa2cbe431c07b3181ac8254f373059b69576fc247f07d8ff56c90c5b5e3bdf413a63ac937f8dd6afda15f28279272f0d3c899f0a969b086ba67b0f4513e6f45b2eee91b2096bdbf599f2e09dd720db12c3f709c40c6f53e651cc4d0c39c4952f52637fdc43cd8e785182c9fec127a34d3e029fc10b38615689dde6141969c2b785319d6b5591d89b75bf9752e287de35f96adc86547e79f666137d7ab8fae350cfd61d21be53cc2b490717d34c3b7bb32a9d7bd7b8e5d21a8dc590350f06ba6af99315fae89c3a2ee66f289923f73ce5135061e3eea29165ae6a2db36fe120ad4ad4ab2b72663ae6b7c31d3b6c422c19788952e1361ddaea2936bfb05c453c1f45f244029de326082c70e7652d9e54f32c93eb7b828da4a8372cc1f70a2257e7d783a45c02026a2638dd3f251cb85c4707d7c86300083018b4e97aa356f66c900081e403a6ab65775aff4ac65ee1d82e2ce31ecbc2ade1f59e90023b543317ebe2d3775999fbfd37c59be6b1af3dc7fc5a2d23fed1d79a0ef5077b20b5dbd4c7ab8fd6a7941db5d995a46dc81d813c5c4e13357ba342ab9d5bd4ca7c5af7f38a29bab6a73e41ab40eb3a1106b3a15f20689fc11b3f9e5500a2332f41e113c17c572110593a1de87df20a1f92afe3db58c5e69cf38da3d7fc6d9f7aed317ad17598d428eda70a8fc37b547f0f49fde57df62b6f7cb5446151013ae9080166c36d23c439cd79f392aa8bcc532c3a2a22f0f5a0a7068f492141cf9097793d1ccc9085fc18947d6fb9e2e84015ecfe4812d02063228f2aaae3481aae7e7cbd272f7ef5e24f6cb5ab3da12c59ef99ada3d5012ecd190b15cf75f3a79dc844b7c803c9c25ef45af89bcd18fc104ea87f2ea30fcbff61ee0ae0b337917109a363d62e799b5831eb9afa26d4e5c1afe00a30c751dce15ca446b0a83489cfe97e489629b936ad5ea12bbb20ab0b44e6532e5585d03ff9f91e00abbd6fe89588ba07965d248177c5b3c7448f8e8110c33521e4e3a494e43f6aa3957e78040f1aff92b6555d47be7e20f31f9fcea26e2e078b964f2c6ced77c5e65152354858fdba3578ac542ce2738d7336bcf1ff98bc809f4cb7e0f96be2d55a9c42e810b7f0de8a40616794fddd66f289d9ef3f374acab9e4f6b3f292a1675a9c25e4625f5e9a4b5280e6b26667c7f719d882ff38730d1d43a5c1b4561c82c2e543e9a09b634dffc7bcba1fb4eaeb8373523244ee25bd1ecc9857e1b8ed97f93f10d7e57eb58e2c7283a120f60322f6dd7f8a32d7c199022043219601561235d683d20c1c7e4f01a33a143c25d93bc363802ceb6f6bcb6bea33e7fbec17daa81cbf4ce0867098543a916c6d0b8a1746d4d33a8d487777cbc099c869349d0c23e0c8ebab9541e21424d05f9b0f7ef292a1df089aa6ae2fe2f18d2f503d6fd8088bd198846471cb06dc6ad21d79754028dab9056f952792aef347982ca3b2ebd65f4d7b377e82276f2f2a4d1d4826b1b338de08701211d333fa4be1f5787907fcb6fc0c353f7f2900e834f9d8ef8123f0c20a208ac7a919c88e1e49c1957d57cc932fd49ebaa72082ea26b2202fdeea7823009df03fefed2539ac0931140b0a219846eb7b2002d6f4814875e56ede6d526dd3ea74a786f5310763ca7fd215cb464d625fe538cd01222d8875530dda47251dfdfdd31ec566468e3d411c4e116f7cd74e9032272adbc5211230886c218466dfb7bfa0239055e23ba1c84ee799eee97efb4e497703b0234b765ba6943f43adb3f175ac0e33683d89e385353b2bb29f42c35058e40932519482f8a872e3073a2e5acf988da8469f4bb62f74519b41e50b24ff50e1ff585728ab3554f44876c5e1aa600c909f0f1d29167dae809d717b1329822f60641a0be37f9f104fcf9341db7661b01425cd1ef552a767aa4f52ff1aedb5ac2fb7f9f6a475cb1305d48af1fecc1a52e3c13a96f9720c3b79ee45eef7c971e46ca577d04720d3a2adb7be7ad3580a51e823faf83a5d3f6adbbfc95045b7dc31fcf99b2606f8facb75d5d777182de94359f72e769826092958b9bec4f4df56623a6b7779564391afb46fefa07500dfd75451eeb0b04f8c090cda1dcab629ab020214695edf0b74b28543195bfa6b1e0cf011d427e216206676ef48e5ea7b964ae8781c4344b8ad7bcab0d84af4963f602b2294be252773d98a8fd37d77bd7c6e5ecc69fffea838834496dc59e242fb39d2d65b46c57a5e6603b2a840a3e28cc375b1623d14b4c14743b70cb6afd1625e37ad28392ab6dc689076a1440b4181ec6b199bc3f72df2164d8f940e0b28d9da177dbaf9e77e6d31ca2b40a63f0c6ece95118ed7bfd0ca0761d2fde37dffc2b4415ca4732c53777599680a627738491d2268278dab9f86b10f2fe4ca98841e8a826502c7158201882214cf1972e59016624672644db994711e6951dc6a62a0d86450158dd9f72fc5c2c187bd9a77f0fcd158012ad403b20f453e7ca8ea7fee26784d5b722cc92768227ea263ee0e57f5577258df563fda441832acf73cbf5799179a9935547fa63d2384c07f2ddade99322d58bd6e3552d4f855ac8b423bb344aaebc866571b8fbaad9c94ad8a4af69efc6b2a9bbe788ef830bb7accf3af12262a53208c7bdeeecba9e73386930f524018402b8acf733879e63420ff2f2ac2bf77a9583950c50cd8863603ca3873d9b717eafdea844c5cbb41b44749ef2f407c5964e01b05fa9d7097d280461547ac93df3c84c15c802f7e78cc8b5f70b460d8a09305f92da56fae1e769aba67f531c8e20fe782113811b07b11c78646713c84af5ee18ed51c93527a043f8b734a332895628f242212feb993454ae7cde3f667ecfa0a03d8e074bc271dda70955f76fcca5bfbf2a03cbcd0dacc72e73e0a3f16d634347e9ca2bbac699deca5fd7135f74ec6352d6c16747ff2f90576d6d8b5a503a35b59ce9e1105c82f431abc46ee4de7554049e6bedaed9690ec37a323852ed75bdf2f147eb8812bc51ea7785b14091fcf92963d798344747640c1f945ff5d03981009f23a0f6bc1828cafefa3be3eba05db23f4c77382b20faa39f81a8465a760d00afff68072a75350d2c6fa00c9652ad5759e6edf02018fab3873f30792e4853ec878b41d0565033012dbf2541cb3dbb5fba433461b8e9d41414f4070bdb2526e2be223dacf4c763c25644468bf4087eec51bed59feb16ba5179a4b3afb0c4bef8fc1a026b5cf30b0878e7318e371290dc7d3a316d86af25bd357eab0a21f537aa76bb48cf48dff500e87a4868e567ae3bc05bfb197a7b4e95e1bbdd3929b611ccb7e75f5df29dec3fe4efa365f3e93c4382c3bcbd575cb5382f3129309366b117c63da67966f842b80f3c8c82e7ddbeea06d84ebd6a269e6a0d8ee4df174adf42dca515d7334f4dca24cc01bee2416008ef7362a12d078fa71db55635ac8f46a83f18b435c621e55f2c31353cb3567001f1c8fa3c13ccd489f0153ce182a5f87ff2ab22710b85e818cc4d0f39182cde0aa6b2ef23de01fb3dbad746f38ceee7a744d70fdf3b8bb7877da9a9caa175c2f98eb06c7100f2580771c59a4483dc6dfc8429c2fddf3fb67dc0b7d273d691d6a3b2c071debdf882d4875850b2c208c54055ab93726d64cf679ad18d868878f8cf775e51280a8cd4e3b6f3f32785258f9762817258158bf0baf45790568538aab69cfb34c75d90ed77845b067a4188508b84635fde9d868870acf5c63b08c892126e6396f4fa45319c7fbe7d103c9df0a684f8ef3561670e936440cd649b2efac09f9ac6015d2e45f95e2b406192cb3a9e102dced1cb667ada6d077979507a51f268f868fecbc696b97527ac3a4b305f06992a37f4f333ca5855784f0d7b85a8eac567f3ae4edad37d303411de351e739e1ea97e8d240d7f36ece00be2564d355201fa34d3747a6f618c7635eaa17fef2730f5866a75f31d7fda3e1afa437dd315e735cabcb363200fba5fcf153a0e2dcf9a294bb3ca0eaffd0efd217b82dd81d742d9a7354faf63e55e2a0dba8bd4ef238fca5ab9d50940299e3774609887dfee8b1495b6083af52a263c0e2d0594d9a13c265416f1c66221e29e9ffdca1db4f9e0a2afed0e145b5394ff69ec7479f2c8259d6f1af24fabbaed9ae15056c66afcb482e394e7a35b534e96a597530127c6ae3af48a494c349ba4a0ac254c569012d07d77984de3810547d8bfba620cc8aba8d4c2b00d9a19670ac2270745eb57af8521818d3d429b9e8470a7686aec093adb3ecab6c7dffbfc9a63ac024d2e166e42426e78aa493d32708cc2a51fa08337cffd91581e0e81c2bda84a3ab69dc772d3a77ce3940c3e47e17e69a27d8cb0595b4ab1e0b7d1d200a6994347bb86875a090a3f457ed3397c57ec69c51bc172bdb5255877ede61c51323d8f6c1bcb19bc981720b772330e3c149282864a3c8cef0bb4c7c0291a11199de158991a2a64385adbd9fb22ef5e82067ee81801b32885e311d4cb0c81651710977c3b8f87f11a4c76fad5c89512b0ba99c5e5e5174f44c55e6850af2151006d6f0fe2e7966e8af7ce68aecfd0d46fc0beb5d6fb7b74dcf4c5023e9fce132add6ed6af52632d491b89d88a7bb694aa38274870beeaea2e37e4339a6f776c49fa38cc9d7069a505be5258540845048c7df183bcb6926927e90720aff58e203ea26ea18d3e5af03a0a56c76dfb5e1d97169a5f05d3e28d24e96e038a8d7179efc760362c1e2a4ca19569589aa13e98ca6ac3495f0b4457f014d4aac9ffe6c538d33422a428c29b2ef66a1334f35b76d5e25ea1031dbeaa485e54f7bce2f4d4e561d730203585e2a6c60954b2582d795b6d4f3b7b6625cff7b7f15ed190377abf7b22df1d3dddcdbc7c2b4a800901a84997e9e0982e67f17c5dc06a510ee113a88b6ce08f08312ac2b2fa7923ff69cf3aaa49ce43e028a24437193873784efac7af4d9cd04bf569e8c6a639b2b660fceb82543412053655715d02fab6d7dd10ca32c9ac64a1072311f2d2349a3a4504c1115cb7b30828e133fb5c75956f4f3c2840315f8d0925902e38b6ecb62e65fc58b7ccf02b0f4a04b4144e837ee586e587250b37abd9180f34d4f733b8d885c032effcecdc67fade88f1c59227d9f17a26b3f26c704534a2960166b0d85e376f61fa34aa6167b272c12d00242ac832ea558dfb67e3ebb96f5d45bf61e4b663ec507c48a138b26c287db3544df256f02c0981574831122c40c298e8148fffa05f9a3ba8373e42594e141fb838fd58d2b9702d19615076d704621715ec1a3e4cb2e878a64bf7b0ad92d04fd8a26732c70da794c2b972e3874cfd1296e24eba5615ed8dc4acab90e78a3527d85dcc6ca5296d65ef8b48f20ecfc8ae4442bd72fd7b63c6449f50de052cd9b84bcf72991e14f70fd3c4129f28e64d64b82a5a63571b27a5e75d43d61556cc6c3c70cddac155c8f77288859f5410db13c80e6298c4ef5607b092d3b5ee4793d6aa5048af7d7ba0547dad7aa26e6f848225379047cd388ad7c5e09d331f24ae423a8e67d7a99677945d3e74e32a4ab4673d3fa569edf81443135ab6b8de74b13c70e2357123bb8a50b7f9eebb1f894b6ce8963d8e1e765ca30409a3a44ba4ee8f381403a36e837827c1d2841cb03c52bde300f8e3aebe3b8de76b26265f85ac842c82726f228c6d0e116edf17fe1538147a15ecae191e78b8c1eed972c6c9ef5b729ed98c1cf760eb4ba97ae907e8a45640c070a722ab45b11c7a98674089d34be86eee591ce8608ad21037223532d92f4bc132fb6abadb852fe4b8db35c2717eb40bc6496d0aef3ff668bce4e4909e45cd2b9bea136719e2037c183102d35bd5412223613a086dca7725ac5b0143c8ea9fe6853cc8113a4bb080f5eac800a3732776149ffd15994413f4a3d337b34371d22e4802b3dc996d85a69955c4f27050775ce36a3f651a3ba431102338e9b87dfe1207667f2e8aae1896d488b0353054763d526183b21d37fd71ce494913bbfec9f65d7d7a3236746a6e464f55b944c2ce172b1bd1b80150e6fa9f72940389a9b111555a555897d5023c7abc385254f1e3fd1dc7c0b81396d6466cc0c2b15d1ef1f0a7d4d2d379a4c387d07b33381f940c92efb054f95b68e4845391edb5501620f15bc5e11991035bc73922f788e8141f92f70f32427a07191791216ccdc63ce6c9a6ae41679cfab5e8c00c96c06ec5e94aefb6fc6292f7cb152eb8bc5d7296f9ff240ad53b9bba8ecce595c34774e5e61b107fb2a94803ebc983c7a2eae397756e60b731d8118436c6c7abd2e3d7c1bafb8188e46ccef11b318eab969eaa4d7bc7a644d5c55d61071f201170403d6ed0f319aa9584fe4175800ef0cec80438f50c300ca04e1a277e940cd3b47045dbb7a268aa56cf897c239d7d487e5920bc4b17955fdf02956cd9d6a9bd7466574bbeb8181cf2ae33efb0a3cea35c67eb4cd111963b3c33526e3e097ed99b7af867987c9df79a861ee3cd5f010635ad74adaffb303e5979a10cd145b33b05e8b479db47314c1a3f28a067d58411fd09dcee292808d9c72f4258e01822b374509884710724a2e9c856cf94bc696aeefed20b19c118fa41f4175f45032c1c4438364b2abd79e88091540e5efd645d3530ad43a340c1a4c22cef2a56f86565e485427a09ffd807600ffdc5b137a2740bea009750f517352d7d51245be3128f8906ba7ef877c974853bf995e23e66e47f9bd707c9849147b0526a4b491e6e2f38e99ac81061425b14136ce7e79881f9c2546e7fbb65f77ef65bfbf89ffac545f2442d7cc911893de618af7838ff92f3844c867ba663aea2840b6119ad3d6666f08ddbd3f16b5f20a5cf1ef47ee119f5db5c45e57d1e4dcf5919a713279f5289ab229bb48769829ed440f7e398e358f32f84a6b3738982b30300adceff4cd105fbc3e4362899787de17a4095485a08d0de647a3b7b6c4c13de7e5a869065c584b1133d260e9cb09de80dcbbbc2d0d806a6c4f74e79e37d0b2219e462c27fd9f3f21a4db950a9ef5f678e3ce9c885c598620cdc8e75dd95cfbe951f04a4227ac3f4c58a045b0710da70162c2952ec361f63cc1b8f8b9ee5dbb27fe872f04ba0f9f86571e962960f7554c44e54db29f5305b3623b1cc3d07d6c1a6942a68ea6be31b2c4a84fc476ecedb36b4ec589aea82029fa6d5bd27a495f09c782c81658e6ffbb3845ac59fdcf6661413956c4bb66e8d0203489e9a8b0f26397c4fdf13857b56779fcb88393a6837862575f0800ec9777c2e852f2b191dad18bf3d3ac2a39d8157a0862d41e44c2bb8151d232ff3318ed138c04740eb5918194dd2d232ef35f6181d0632f953f2035dfab9be83b048bde65b461397e99136dde2c85d98c7cf4fe1d3547c370d81132963ad0e5ab16df1459c248bbd9b795b4dc2f1551c631ec3bfd39cc7e5dc53d756f5d9a6c821fc3c9cf9b05198cfaa3d14975bfc5b181e792235430880678895201837b89261258e3e2fd9d7de8f1f10206b25e9e57824405e6292b59a07a38d49b17d1eb446d878a00459689b6aa54a25abeaf3c03be9b32cf0340659fc5fad96f1ff2adc2f5efcdd2d3a78af0703ca1a3bfb66e3f7d154260603d3f5e70b044f31fee0ece697b733bc3f664e0fca8db99ad1e4bcae0a064e57e4013d9efd5fc3dc0ad07c5304b2841e1fa57e600f5f031a7923ab26351188aac81013430b9bc2704ff955fdfabad6b1a8269c978318ba1dd6a58415b91d1bf3f896ebb8141c2187c434f75ec463d3e141c0d7e4a51de67302e7111bff8033f94259505ffdfc3af3ae5b14087ac44ad9522bb4320bcc51b82f008e8b20ec6292c1db6021af1569eef3151390d88eacc28936889cf3560bc9c1ad2b0ad6c21b6a43324bd400e6905416888e586d6d8f9815b70135a88ae64a93bc8ef3ae56365a922ed7e599f993f0ee47d41fca502f863acb9e1c5b6afa3d96544e98dbd86f531df2df5a2deaddd871ee6763a817e8d7e10932e8837823a2424a79471414e7d5c656cf1da695dadb12557f9226f2bd7b074d6557f2be7e2b859c0f2967e7a1f9d9982a9d1e777bfc9a0d861089fbd51127df335b1159f006208984e8f6090607682a05babd52b5fe80eb9b0729c9f88c0af66b6c14589faeaf2d422ff4d6629f909e8906d38d020417860f0b7b1816639c8f3132095676cec57f25ef5bc0647576297454cc9dde371f73ea895759c04d9ff77c7807f2a638cc82fd7c448ea295e2479993def14b8c99996711ef8cad9a6d779976f9bc1feaa1060f7bc3bf133fd8bf5b007c9c4e86dc64735f14d5370c22f3a665b6d31b1f24e69593b639934b9b5136a2f1ca6f1a4bd03245c61adb49cc8118676980947715b13903f9ee6228eb1e371ac6ca3d99393c7a592366bde0926035bb7ec2c92b15e99ef3cf54a55e74047fc1b3f5c8abd3bc577b31dd21d4e4fa9b479189bd50987dd7a59745e4abbadfc317585e2560151c852423e2f3bd1c24b76d12c5b82c17ffee6cfb6a8aaafd01cf81f280ee452918f98b0475407f37094f31a627c49be0155f784268690adadefe57cc8cbf9abd7f5998facfbb8080d3f9ae6da2318445259a6e7bc43359a95bc4442414ba8622ae7fa27d303983556fa1e2b929115b0ea884d79003025be20225f3b61104694391fa073ae33500646c07bee049bdb86cbff6569074d1f2fbc43b0d3f3c4634cdd38c8d80f34d1a02773e8f2e704efddaa13db7aefa009b94deb38a86912cdb13fead917052c31d857c2fb72d9124059c1398c3d27dd46de0f1504fe3dbe9cc8860060f46e5fc90b72614b0be0263edccd6bef2b0bef4bd9f5f671939b6b281d462f86e75ad04d5d0fcfd63baf571e83a0d55e1c101ed3e207262c0da3b3e17e562132c7f28095690224ed318f87a226fda7c9c9d63b0bd0afb3dc3e4224dfd83a79f44a518dc4b5e603f0bd64decb5a23042bc85b00f69ff9a0c27eb781eb2440a167dec22730a94d95b6c0fbcfbaf8c972c4e284843aa420873a5149bf68edee4a77213126ae24d98014113971e253ce8b38fe5ed698dfc4f2c2bfd4ba0a4437eb57d69197d9168e0e6a35c819055706dc378226500bacc3b85a6f9fae8a706ac5664af250f438c0d91b6b54ed0e120943e1672606cfbb4bbdf2597691feee19cd5dc6b25a620679ade27faeb210f285c77b49f9976599c7230466fdd9a7971c931e05d356c7279d17c0a34010b1c4105b8d9e3dfcbc0ec4982f1abf5331672d89cccf6c8b04f15926ffb0c41d8a4cc08bc10ce88783b0d3f726dd40cc68517dcfc57063a63df73868e98cdfd18180d4d3583adf774b9ba73b2b9bdc8b5bc4bae6d5202a69c280222064765a91d3bcda2476482de176981e8873eb81b652ee959bc3894a2147347c1d549345b80bea20a0b2bc2729b9fd82e4bcb5483bf29426fee96561eab37074f502892539ae23ef30d9d780fa251a3ceece45ac2b04587dab73aecb5e1a080e49d644aba0c2c7f9ecfa88fa5af1b17116b64caaca9ddde520436dbe05d9bedf43a8289823728301f441048eaabda4b615f6502de1f9e3fc172b1d59c6a76a3b6745cf473c541b4ed55e32c6b62d4f5786f84675a0c21600ed48e5aa9751477a6f1cce3d51ea500e660ca0b8e04700c1edb6d232f6c9a4d9fb0dbd7f890ab463427a2fe1ef434a29db420bc0aa47e5f4cf4bbd71bc1947b68c313b9b7f215cbe1e2e5ab58b88ebc6416dfbe9bbc135d44a0255e3390bd5ee779330b2d75b2125fc273179b221f35f13e56017aa7ed891ed7fcef29e2c1e482759aa0c317d5477abadfc223ad467ca75bb94cb7266e6e3128fd4eb8c43a5bcb0fbedebd79c7a40a93acdc0d188ea6b08b782cb2dc22facd356ac914c7a997d2d1ab9f716359b75867d2d7a0e6eac791646b55add2dd9f94327e33048085725df95bd16c3e0156e82695fd7edf13c3c46ecbd70bf45daceb6a28306e0956e7fffbd3bc8e988ce8f214abf3ba8de5fee6a7fea5d2918799edba1b63b17fe16b4dfc181ff5a460e65249b37000c0d6b36efd313ad7df2c607c142d662d8268502758f27d97b74aac1b30fc98890a7dc37bd7c3647274660a05fe019c99b8f23adb1c7c628ecce00b9b089abd8f44214c458d7e8da5ce7b08e5100f3ac949ab0f348c89634f0172360c66cd774307646ad9eba2f15fcd5b0a517ae6236e644dd8d79fd7299a1887e5d5b1b95a1d34f2da60b2c2a8f833a55f137bd67145b9a07c4d7e0fd86df7f2e2c7a56bb5856d496edc176b7a012b3f2076ebd7bcd9fe055ecd099980212873526ed12f1f67998c805e439fce4dbf819f33b2cc89b06b132890513d93a55ae05e3b1939c83c6468e716d122436861eeeb554e0e6e493d4168a71f996c07deee2cfa3497c892bc0708245294afb863785d84524cc7ce36a6be8b6c5f718b2b7f35b82e7de7bb55180700cc57a24b7e5d745ce1ba20b91bc4b974e76b5f155a7e6914e8d794b526df448d3751a0834f8e8a1937919fef3564af3e72a5be21aa56c1ad93340fd0ea5c9739ff6eb1fbd5a619fd21d81021d183241ba5b09b46fdef193d39f7efb5a082f46b8504048af576979f7f88722ac05096884a72f60c5a4081c034e197db0c767e749ef4b0a0f61a2b90c9f91161d835b616df618ef7696c5400b5e7353434e6238312acea4106a4bc6f87a0997f70f76a4c17acf6b6fa77d1a03e5a6247e36f46bd1eec205cb3502102d81ca8c6e8df289d59251cde7e86fee42859886729121967f364e3a972556686ec98ca9a1ffc72bb400ca7e58cab08421e9c97d6d8b2a83934208d201b357c058a77f48afb6797be199ce2ef5e4b7ce4a088b81b09b3c06a7cbb02906aa9c42c8b52ce33e5aaf881686f148a510bf9528198fca996931da0d6720d55801b45b85d4976e54a24765c63b26d9b6952436c6a10453d9da99f0343fb1ce761ac7f66809f8b4a1b88c5ce752500cdca59d5185506daff03e36ff2382d7a9974cd34ee0cab9f904e6bcf0fbdef60f940cd512a12b86ba0ee9a484d1d7f341f06698f742a1366bb5ae0606e8c41e39db8fb790dc53178fd4a7e5444cf4f5440c79a7d90965e3eddbf23c457ebc694dac597892566444ff0468055951e011cb64bf837fe24d2f0e87c58127312ea65491c081ae240cc2e0fd4de059750e261538a6939c4389fb8b1975450a9f2e527d81848efe2724731f32c37e5189cea4c75609129b14c62f577997da822ada84adc365850c771bc08ac49aae312b043fe370ec67bc86ef11d120fb55339188684ca9a3ecd9884f0bf906a119d5c2ca4f111b799c469bf7ace5a0a55032340bacd578997941b47eefb8993421628257a1e48e4f207bdf5f20b0ea03cde99e2bb594cedb5bab029dc77470a652ec8a3e5232401b58134dad316a969ec621ef15e78fcd45314e1ed22b58fda55365f238309f5ddf8aac2ca2a673102b3c08313c7882ef1d286192de419fe531c606e15065faa2ed57db939f7ab008de97958252a68301a0df09bd2c0f710886ef8e25fa3c4480bb739262bd9e7d42f406165b3620602c8b4072a9def345ecf459c2ad84b268e704a2ae3ba0f056d911a44ed80520ac69a45dc79a2a391224583dc0bceb633dbbdf2328794c77aeb60fcd38f0415b01cd284cd15c7c2c32448a4017d813cdfde37d320d17bb9dd11ce05a1b2e9014ba8d69126e44aece212fb86e176a580ed8f8667052bc31876290e80371b8e7f15beb086b93438cfde15c53ef9cde4ecdfb735ac1b68d7d13416db79b2f584a538318fa81eddf7d0f953d2f83c705afbc3b136d7f9edb418a2a2f27355db13af35394428799ebd03828090f04f021751b1065ba011106b479f8c931dff8cb63d1bb0c672e3c9166d4264347416bba1a80041de19c182a40c163c042187fd9b6b3048ae11e5da629c667f33f9d3886f8c85a6da18767116eaee550e0059f824aeffe3bc1b94895491ca82c94047ff6fe15489cf2da6f11003e98e7e00de286888ebee503544a874f2f063758c764a8041e285222d9d42f33a2d3ba5288887b20db76ff120e5fa9e93193c7be21d66f9257e549a476488b6a3b618d94b90390134ac91cadf7218814c32f86062f12520e27ecbe5b24376613ceabbf226b9c087f6498c28621951211f9c1c72a9252fb46d9e4e11e2a0ab92fff7d6cd8ca9f02b48a424fdc7ed8556aefe843e47f0df64ff562f134e3b5cfb41df4dcda2af7f07d6df7e60315fd94b04a4151842f2455677487143ce093be16030aa552dff30ea9973990b1fc121ffa816c996abbeb0a199f0fcde803a859fc0e50a4fecbc86d63c1a97dc629111c708fc611545ef21d318408a83431779211bee1da80769a283499def54a05b1bca2a654e333479d86b70d673b7bbd07a6a1e420ad18b7a7adb2ee4ba1b5d5c3184b70ff753c73379608fee3261ef71a70e5b9f7240f63dd47c12f18c7aa145a3444f51ca1c4ac3e29852467b4e6d7e9cb88242e2edd148813973b5c4df28c786ad30a7cffae9598f72cf8acdae05fdc8a6f63a06d5631438999be8c25d22bc49392f24769caa00833d6e13de9512f1b228a6310f7b6791ff56e4493929812047b1f9369d746a5a29bed4f55c7b50843a243dbd7862dbc68de0c6f8a51edd2f7ab6b0828c3af71232aea0bc83bc46630a95a29d3c94ddcd29d8bfcc193ae34fb53ccdc3ac6a326c6f3af24a4c19400e1307c778291e98bc999501d79b1f56a8140957fb58c1459bf681c6b65b36d320251dc3f2ad913d5265a2f677d7939e8abe3b6b5a0cc3e7e7451a22247b1afbd17c0c463bea8315763e3e94b24500ec0a66bf12a88638b0bf008b0bebefb2bf2e571d546a430c99dbb0da7ca7adf4e46c6edb681b3eab7c2fe6d35592234d6ed1772e5546054a9f5d529ff261aba2e74500a411e49aeae47402e13a69d3216217dc32734dd8dd99e28de69960e760da76db8900db0589bf99c01ac6c96ec55c17b7ac481cf36be1dbcabd0b84cc278c5f33c68e15c95fb64b6dd70e4e62b56eda3738df8bf71d12b22369384dd517a5ed6cf2e1541e06eb61f0e44282cdd26f998903fe205d2078b015de9995fcf026692872a28b8c5fabc2fe0381dd87df0701f44ec8a623268c419549362b79997d209b0302f4e20c369bca67830b690547beffefab0e4ae27f8eb98772faae9c1f56df341270b5f58e1b44391ad17f4fced509cf9fef2e90dad3c2abb4af2ba8be118be96a2e3bc4632851177615422f8887be6db23e916a25fd967cd6fa970e08b790da20cdd56800b5fe9042dac7f7f0c08a59e81a6134a859f0f467dec145f58326110c75549653b792a9902cd261ef5f31ba6ac6f1b1357c62c2c1b44767ac5834705ea73b4303e8915b9158b6083dc857c90527672b089809c9e7d4f6b1f06a91298ab7f72b91c0401220ea44ed5e8d0b54f7676aefadec309f3b01a40723c72d44782be54e8f69e32f1d446bf32d33f93c0d974ace05137d0fff091f6dd2c01d1c0f7c876de48a048798d89d62ef464af71357af9e4b3d2f97a64de68fdcb45fe208f01b91203057e3cb4b1068fd52e70e9501edb734bce6ebfb006a3a1ebf1e191a8bf385e1325c7ee50b6093ff6e28a0e5d1da771c5bde70106902e1b3452718684ba45747ddcf8aa2279d58b36ed5de84f3c4be406503c2ff703719ca7b3c8b4f2f2fdb78b608abb96d8c9044f1b48dca8db5730e666c2e82459b1dfe3d00f27abdad2838abdc7a151f95f535d3cf87e526d9fd7df6a5384fe0444a4eea28214909f71987045603dfbd0baad9c4fc3a2af833ca7f29041750adeaa49a15d3bf836df1cc5bde7d4758c372b059073e27b10d37cb7869a734a2b3b850b540d7c76577f3276510c6bb8646d9725092f964454b05f6ced82baf69ec401803ef2d09f2bbab4edfba28c8adddb63af1231a1ba3b061c385870ada73b14feaabc096aa9991842e78e9e749994483b9c0fdb509067751b0ea0f8cbba96d01595b72e99f32e85df643fef310b891cf83dd4feeff07e275bd516ccc8e52f9311a91e4b1373eb9c498c1d663600604d690d8945865cfdd02f1e117b841264c4189818cfa8e7fca844defdc1574c8b34cbd1d6069b28dc400d371cc1af72f6f342286f0721be2bc8e0e6f7685f714b0c649ec6006f54de538f1736fd08680d86c081e127223b0a1b11bbb831c8a2f531658df9b9b4f13a6c55df3ffe8f9b09a8b817ee7ae43199094786ae1cc42b3d7f274061dce77475bc02aa097180e35129977b346ebea08f5b16b851d8a288d789a078ea42c34792ef0f4ebd01cb87dfa34f94fe437dc4c97d300ead24fb7c6a549e1f70f0de66aaeae553624d99eeb1466b8ae47eab00b8ab385c05cbd60201827b8e3811bfe70e26f71090ecc9a91cb9b8ac2d6d7538b87f30e00d4f3097ccdb3a3678afe8220fb7c6b6610273cc77997eb765beb83476e91f202894f8a1738e59ff8d1d98a4dfa79ed21e143458b443e77a0a4b45558da5c4c2b6bca2f972acf0ae30867c559ec3fa55057692cb6acc7717d2424b02815b77b97105139e04a2a2b531dd3f5d28c6ec2c3e9d29cfc445840c6ae3ed07cd513a2e64f185dc31513a8edf98b6e6170d97b95d0b5f4c135dbec4db837c4c88946290d9e0d4377bd140df84eb19b060e9e88c51b8fc6ba78d8a532ba0aefd626a53a39a2d008e36cf24c1128e97aab4141a7e5505e585ff6183d9e9a5e8abeb46e44c7b140bcb8b9a8387a50ef1bff21ac18d66190262eef24a9163d38212a14b17c46268de55f4fd009eec75424a5434122920e475ebe5a0c835e9cc312eeb51e578dbfe3fbaf1ce2db0aca8a50b4c38c8c0c045962a226748be50f4511ef3ee212de834cea7a8edc2e4a2a83eb84b342241c4adf4a1a7f9621c99e16a75852832a1bd0fe93e7a070678906e658cfbf583c78d2645f968bbfcd64826fae23fc5ce40b8a7f4a9cd12c4e22121b8b1a2d0927c53ad5a10949d3b8723a96d7ec75fbc6b0a62459b93c138f93fb2a907a8376c1b01318420c6c9430bcd407241b40f41ca8762e7ca36ea739b9aecb029f8378e51e3fde29ce74b7285a4a116e56c97074a26a83649eb4c7419575c094313fd4f465378770d95e48b5851452e04d1eb122e7413f3437f69400a839158c846ec2549b512ce7a4968c92f85aa17ace5b41bde8d4b2077f6143b1d867a243915d30efef4cd08ff61e569ddd5dd98f29dd79a0e9ed25681574edf4ed38b5a6460a99b01cc1691f1610b05851fd1e47eb60276ab0e1a8d7022b6a4e9660aeb8274ead0adf3dff81cfdae7697280551ee19de57e4cda874b6363b6a70065e70e3a2d4370852d545645f9391a02fe90637002cc84ea057eabe0b5b8ca0421355144a42dde8bccb56e93f7d3d9940884ba3c9889e6b81b9b54fd5606e8db32ecc05c90af4f48c84f5241fe70b95280179a1e46f254dce8e9962ec6d615695962abc7893544a75610ba844891f047ac95d069ea4c4174d74a37c75583ca110286f925cce343f8d88b175430305745fd13fa83076763afa1a1eeb1d5c66126894ba3f3854e56ca5b800a49bae7ed501c110dcbfc8f36f0a269e9fbea709ddaee5d3656296488d88591eb52cba354a6268fd0cb05237a017900482fde671fce02b7553b982a6c06c895433972625247394c5fc87934b15ae77a9f7deaa2f124488135c74571966ce05552eeee01521cae1da88e054ca2742ea478ba573e003014ec2013a7031f7502f08ab161c8e1a4acdcf19ed9d2d92d49dccf25e9e99aa5a968f33b8d382508362811024c243138f0c450a20602243fc2e594066bb9f469521d9fc042f448c8bfcf43614d2099d5e5a0323182aa17c013582c1569cea6e7b939ab3086542f5fa4152ee5c527128583a0d5e98d2589bbc257f1b557692cf8093eb02abc4601da9802159b4805bc477b42cdd67a1915d4a869ad03baaf675c8c34dcaaf239ed15f29aeeb907775798ab49832503849af81db323aa0edc1ac5d25370a98ff7a23c6521e4a4a450cb7bef52b12cb4a8bc28f4bc86908d9b6f6ba77d4209c56ed750abbdd5bd0de5a021b041e7c22217604977db005400156f3948953cd623e8c4ca595ad407545e8614da6309e5e3f93409e3b12d923f738d82aeb5dbd3e8a7a74482e5a899a2bccffa17e0cfac834425d500e49d031fd51c4ce5e6b05bdc7e4137eb3f4ce0c170f0e674bb4497f423e6dcdfec5566d233d425b00fe38bdf2a56c6f30e6db1d0e90438c885481b314a7027d93d4e38152851920487abc580b1319d7455ef2d1df9480a8d860e90094b7cb7513df5419f7594ff17d7d77b31101ddb2f30697447a2a03707169e6358450bc0ec78aaf0afeb804f04fa4851f7b6ed0fa252a42318c911e8d7a854a11681dfe81f634181ba785ef044967487b243754846e91fadb43145b263f65fc80a80ffa25b4084fa7c465a858e87e5bc53dd0e2b9f568e771b730a4cac8c43f20b3c378d397caef70b53031fc34eb8fb9a5f162497d857d111cfd3ca7f16584913f395e8627bf1429d42cf0305da1f183a416ea2098413b3ed5d35741f9348cf95eeed1c2123f23f1b1594082a74df5e74bffa63872c1352e59f6b1ec0c09573e028564dcabb4826cb0110791191d393956325d2a7bed982ce50d3208605107a7090abfc7b87000c90fa63909e9a6740da675a6e794b9aeb774e6fd4de34633182ee0cc2d5621cc0943f908159d81d52a3da8c4ee383c306067d65a459a989f94f235a0da6090f7566fbff0ff9090c090fa0afa909ab71f5fdd780ae624d509abb7fbefbba25423bca16feb756535c36519b3c740717f721e849acf38057dee95b81223c4922934bd7523b678fa6cbca645ab10c8f2f5cb2b4777d18fab029c3281bb6039bdad121203f4cc552ef2bb5f0970ff8437adaca4b68a9b5fd377e4c3f026d12f99e4167f4d0270ca3e0e1107ac85aaedfac61a0f3d38938ba50fb8d782b7dc7ffb61cad0538aa70876c68a43db11d7773ed115b76f29d53fd821458ccc3e345d27c0ef7f80b141b739bccaf4ab8e3555961c3c831d205ff4134117aba72dda8dd68b915af158aaf62af300bb936bf06a6eb81df7a9d08094ee88f4834a36e481eea30d14dc69366f23c48951497c50a2e840a10ffb69136c1d4fb73c0e4dd0d19b37ce353e59db5ee2adff157738ec46fe04f680d41adf337fe1a2fd33336d8fa371bc3411e7687215753981037b8a4f43ff985f1760e94e38784a5941dc7f08f767c3da1ddd3045ef5143286036466fb0de058ca3a8b23ba5824c28f40a48f05c584e1755cccec0c9c2849ffb4b75b7db295b5865d9ec69fbbba4503a12570a7500c3a60d05e7dbb57aa467df159cae05cd9b7f171e4aa2b2a592dcfa463750b2a60d8fd75e8eb6e0d46c1891af957eaca24f5f86ea187ea03e9683850be5e5d38c12e5092ae6dbee9bf1befd4c686bf0e1f7f960039ae408ea6e1fc89598cbc31e43a349759d0f5986a73769af7410c1f2ab6082ab8aa4d3b9fd071c29cd3ddc27200354e75a2c28ab0de0473457a9d8cd7eb41c74b7473e03865a656b263636486d3424cf2eb2d9290fbb1836cd202116dd5b98ec52d6337a8bbc46d09ba9cf8327319f8a476e4c81aceb19bae5b09ca66ce0a701b76d1be7c232bdcd4a6a030faf35e1cc3a60fbbf5ee2b484f6221def1ea048fe84834d212b6f7cc8c61f3e3567ac5556ce34087da095a411a4a01f670da20a6ea6e2c9a1f3d00906bad2afa35c5b9ac1d8f31cc16ac8734da7a1770fb997c4e837e7c492a6970efef0d4242758868513d9059f40c63cd07e25c9d72dcf6cb86396caff40e5888dd5d0b91976c9724c092699eadb12aa1b586655d0911e1e6d536abd0347c6b35203c87950062df778bc9e29c210e2c96c7a0337e4cce8ddf90c8ddd7af766f7fddd6200408143269a8f1404fd1c2cbe5480cbce425f869ca1fe215aa93d5100491baa9d06c33e0c060000f12cd7e089cc22b86ffaaaadca1979aa5d20ac5a3faff3daa206ae32356fe4d7649608729817464f80c29b4d9efa2a97f55b4443a7a36f4f559443c5bafd91427292e37bd1a879fb42ef21744277eee273d32a60afc753b50bf7ccd127fb5f5d0602b7be75d64c804dcb18a20d7bfeb33c6f414265442b1204d0914e0c737762bafd65600edbd5257858ff89721c0465b4a82087f9a67ba37c832070cb1e07c8e9d905d82fa08b1cb7aae00ca20b64a184d9ed23fbee8fca230478e0d5616d61ae6f83a492b61dfce67aa746f230d63d84bdc1671bd43e2910a2306d41abcb27246c62a2012d5d8c7f587da4ceb06a6bc335d4cf0ba5d1c4a2fb0bfe14e532602c1a37ea01e181dd46731ee74577b46ea9eb03fb66cb61d2c18dd7f3629d2a8d78e3c1d601977359441ff1e5b2469206b3b158f6d9c379cc7d53bfe096735960c44c6017087b528084bfd0db6ab16309efd9d2f59b4121300256c68561750b0bde806b62a8f2b027c83941032ceb41a380014e78a92a3434154b0de325d849993080bde5238155684d502b4f370d1a2d333c7d3691c3daec3ea90f5fd32df59dbfa7daf812185b80a9e9136ea386a341240e2e2884c191ce1433f35587888de2ee5dc73e504d6426a58cc09f26d1b5d4c384057cdb4631779907b9beed49776ad3a8b0750a6c7109c011154c72fba4fd205354ce5ae7a6e65f01e17153a2656c4b9255c9504adc47304b471c866a461bca9332a0eb510b6fe950e0f310de316872a4ffa39e83202ecc09970881a348d4bb8bf332b9dccc4b02549daf3448b33985f987871294ff58200989231180ff1d9afa1f92bb064349fc3f3466503608ca13b13056d47dac9a6e929ceb7127f4e5b0de8e3c2d7f5e65981c813be7621e65cbd96e2f92a2e2e3244014fdba6998c6d40d9af6b5c857ba11d0c76120b22682c54b8e66f2ee6dcf820c8f3faecc234f9e09ceac1ed30dc3b483d97cc36bd1f43ff04f9efc485096436f6ceb68200f461c80c7a27ef8db4d8db0313f76bdc7b5df91299f25a5cf41e84f5a56236a61f47f0d015bb421ef105c0827a57f83bd009f39a58264a765ed30ff27448be202bd438a3c79e0c8e47346513d258ded0d7801de65b9efacb0cf6cc98e8ba250631a1785a708e28a3accb0c9e12c6f0072a0e8884dd508b2947a301bae6f7d91e7023782644c64b64dd4f4f36a854bb95cb08926daae59b7a5b8bba3b02db80cdc9adba3849390d03d894925ff4fe01369e5b7362a4d4113f1bef1f0909600317440137f0dc174e8160036261cb2ee108ea9d1da942d4f2ee5bacbdb378f5758f8b6d61802ca6bcdf7dedda5ff4b7d832dcbbf7fb0c98aefc755a104c029fc89b6a8129f6be626be0f9f29e80aea24b04032f36d920df71f6c576e98e0de868cb554bcd6fe77cb60de375fe4029c63e34d5c6d132b0d25c002da17ce535a63f88e229a456559bf1c2101f4d46083360a929015fde82b4b68292e827dec88bb4fe4a2c436c87f297699572925de56da1e3bbf2470a6edd78705c2749b4498aa1eaed029d8650abf8fa4e740814cd79ee57acbf2a6ce40bcbfbfa6fb235ee0460e9cb7fffe85899991b5b5c1a4ec0b2cbf6ffa35ed264024be75c898fd422d3590c0ba710429b41cad29e5bd5863278e4a51d8ce140037639e4777bcefc0313c8aa784f2d79e83021f63e70fded8da7d4ab523d30c8ec4ce696c52b5dd4e5cb89dcfe52cb9f63a2dddd264a386fade6b6ec4d0ecbd2dd2cf6ebc209ce65cd603c9b324fc18d037667dc863f00c962be415da42f69bca6595b6270cb35d5f6d2ff41c8f595e9147767405151513ef2847d414e841c24aee31bcfd43954a750d490071aed38a0b7f2315ebe3f421a94185da3270ae8906e263fe9770d5a53fca9a219a840c7195d9e7d3ac8aefb30f569c3ec6fd28aaef3967c9de5dadd4fd1dea23392613dcb50cea0f5ae5abfc5b7d6bfb74b8a819e60e285c2310fd28bdac550e620b7381f2bfcce03735cf1c1ed530bb7439380976a5c06486ffc8dccd6ccd2483bbf2a125c9d10945f7e55f5a1681010c3abe853dabdb16339f63bbab79e3377f1be9f48a949ef447ca0f22b4ff8079f9a27f89d0f33fc902b7e3e7c23167115f4027bd8a831106b192d4e4267ddf4647db8ba9e79ba557167805ea7f6ff86091cb04a7845e536bb4b9df104ce5388ce85c6f9721fd302bc12a0d4e7bead1fc2e123154a406a6a1e670d6c945d33399aad58afef1a7bec75d5937f413e58d4aae1e44101aca236d48ae1413b61fa17e3558dbd6d187e019b5d92d9f8eb5127e2602380b5720344cc117a7c1f19a8293dc2a2eceada13033cdbce7e377209a2e0c3c9cc4ecc9abf4d21f8cbfd3c6753df9b8f71ccb6ced6d48405574730dcc083141dfa18ca664d9820126d287008218e6d2b7f1515dab7481218b4cfb8b896da81ed5ab7d0fb7e273af84458d44cf05929e7a3f2f688e18241baf7d751915225dd567363167b08a7dd48e57a77004b4aa115f61069348d33532e9273769e10b41e11d11b27d92d733d156a8cdee479bf0ec45056156a5d828d116ce35471a1b4dd506d2a627422b6d1f563b8826b9aaa8d222336b46a90d8b7380da94fd6308ad9373a347cfb54d0d42e40715040c1bb9d7c940c91f89316a09c12807d87f6fc74d5bdd5fca3e1bec5e4e0e927a4f34ca2c1fe9f1176d4a19856c57229af5a6b34b7dcaabeb0a4a0e76057615d970120669d01272754e1b8f5ace446523a3829440936827148a74fc265f2fc3bd48afc9320b0f7ddd040658e2ff54f29fb2665f046b366199ce041a09312817c99b8da39f99a52d2058d3343e4a64c979bf73e2d7b2d1c8d5d858911dd7615d244768e4e3bb992b746b49373832455b45fcb350e114aa6fa855fda670bf36561bd32d62ab97169d1cf766484c45d0851b871b75034f1725e6ce8ee3a53c2dc42ae744707ec46b47ac47bb65eba9e166fa5f565cfc1ffcb0e2c1f85e6f8e7670291cbd2876ce7e7a07d9744f03f0600c6e8849b0ec81646305b5570080550372088e77f2dfba40245281d78aa74ad5d3f081bd0b497aafc42116cea0509a2259209e291e2189476fdb35511024992547a209ac70964b38d913d3b6483f3f7094159017b722fd681731176b5ef1a97e149873bda7d73a1f1c34d1d92eef4ea0488d380e60d4ad0f9e4c0aeb471622986333e823c22e0767e4e24d956f473a8f7b90728a6c65d50a4a2b02e54076e617df23419e72de8289ffe5e647c091201b898a2ba801722e3d7926b33c9372fad09f55b47a279ceaa0a73ed37dfe4bfa340de288bb55b79dc42af9780db0917589bdf86e3c3034b4490a0f730ce00e2f610b781ba885369d46685c4d8d68c028288061ff2616f8b15e14e1438e61c85412c4451ee52a2a39a8cb689510c503757cff5a5561782c3ea1897cf289ebca216ac1a23885e519ee2b279f59ca5eb6f9be3ea0743fba64dc12a6b81b30ca67534a6c264a7534c3c2a40164ba2f575f8d9d859be4e17695ba0bf0e74332f65de493a37308013e2059d0e6b1100c30bdbcc5267c25f7bfe35a788985ab31dc9d753f86be6d0aa49f1f5be6a7151424f1ccd856f4fcf09ba0e737f73179a2564fb8474c199807217bba11d98e45097e6075e3981757439985f3e12e1d2b9b90f16e9c99448b08ccacea3cb903332bdf98c252fde7b7e56b6db5bc37461bb8363cc3601afe7c8ab42bfff4a7ec4cda7b5aae3887d13493ed6efee5594fa1fa8414f81cdd43c5078414fa904a5397748cbec3ac88a59942dded2033cfd3e537b4b20bcd436898ef9f2093ddcd95f99e2f0f75bcbe1a9cafb5826699c3e8f877b68e642c6fe034f1c5f6b036c066d71c55e26e6b997413e09f326edf03ab256604452d7d5c92445d2fa980012a78e831151348f2d72b18839006de0efabcb6076cd12c7cd28bee04b15aa128d4fc8a2a98cfc63026c20768ef53c002e9aa2634ab7d92bcf1ee89a7d698060072422a6d0d244b422345e265bed672aa8e83784dcf96f7703a6ba057993309b115e27253e6c9afb52acc54d9227bc7c2ec9acc4314edabdf62bd8282192fad340cdb4d5a5a93e597a6cefbf658305c27c4479e01eb58d6f0e0ec8f4684bd2e8d6511765c6592369243e34ae48089e4ea6b4f20895f2b375942421d7990578c91b5f7ae61552f78f01a0ff4369618eae5d4a223c8e0a80e21a3584b917ee2017d483a6300bec420cfb45f28ae15a3ec78a88eb2ff4cb92a7907e66f5b694afe08fd80fc5d484945e0894d4c03268b54e94c7820b82426f043c30ac06006c7c7d6292341a07fcbcda53275989191f6bbabbb23369ae42ff9ef3ef1207ac4eaec8f2744b636d391c74644eafa56cb9a707edc9775a20e427785b536c3c3cf6223fb95a422fb1a4fd16f38ae51b839674ff6ddf5c680f016e2e9f6aa843ce85e7c1afb10c79feaa0421ca121cf891b61cd8ea9d3bca33baaa401f34b0a235ff40ffacfa4103233ca9ca8d5187118d413d5678fdbd4c99f1cf42cb2610cbf2cb44c4234b0c19e950c4939465427d59ff65cf45cf35a3bccdbc366fa872d7d63601b904cd660e975e2c0507a2f1988be149b0e337431dd83a227b0e97ea8d02f035490f3fac198ee36159560d35d77d767f68352dcbfa2967770283c30d71768d9cbbf4717560fce14bdeb9e2eab74876d1dd5ffb3dd84b46fec3fb72dfe99805c1b94ecac751775d0422cb0f4296073b1fc947c32ded670fd898a1dc8ad4ee346aca90c393a71ce0b43c89b69c36e143cd9e7df7341736bd29f79dacedf9c15b9280ca6a83a989f782c903af423e7eb0c5e4c6df2ceb2f8f503dfb85f23f989def6046e0188b91b48c60ae03e4fef2c80818cf17b4465889267f5a7bbb9a2d830cc0cfdb1cff1c2af5a3e572eb3fa575cd83ec0d051c48f0560747969c081a79f01ab0255d5a06f400327feea0ef61c531ac4f871c72efd2c2fe0353e6226c4e58ac421bbbdf16ae420e561e1ce6a96b7b2e661c30d39e7cf5eb0c22800d48b87e40532e8a0f837bd753a5dc0624383ce838b4b674a37a01a9fc25e952cf09ce74895b663e14657eb342abb72f37e7b30efce916351a6fba5a4bc57f835d818c0a7618da6aa6bd61fef97e72ecae666eceb7845038d718c1ef92d2327de39d52474ddf39100275d17f713b834ccaa4afd045dd4a784edb7469023742cc114565729090443bc7aeff1b84a2951bca6bdd9843204228848bf8a9227b63c87d226dabe50451f3df8420601d2306b4907500253e4e450bd3aab44800bd3f0f5cf2f5128d56ca78c5e6ee1edcbd6aa17923481e810cb91ab72ad2760b9df2ce1f2aef822278acd3beeb261dbc9b0613931b86996bc1d47cd617c1f35f5c8ce0c8e82dd7ad1f09b2f25f08ce984a561ea347b0676c3122cbc257b511674b93b2eac7e9c5432b869666b5da1f9b7b87d1a21562f6079403a92cda25ca05d47e03b67d3e48b94add5645cb6558e4cffd15996458c089e22aaa833b4de2c8de3b6c8f3fac922be85cea062f760108b8cf62ff3bf64d43f41f893cdcaa1fc10ea9bafc7b989d5eff658853945fe526ab463f1a47c0c57ad6bead37dd808c01541f1cf3d1c93d34d2ec16bc41731bbd026295ef10e20c6bb0b603024757ccf1a0e417d022edccbd2efce8a1198d24759855d4c428a877f76d0b21eade7a80e622b459873b1262aa4932cde7b78a1792db05e34eaa070af55d95bc23d277bcb13a414ccfd82d9a1306406c46d6caddc2738ee2fd1f13482beb7f74736ca18a1d96b08356b996f0eae16cf75dcab37f70afbec00e5987966e99c8e41c859180823718f84b088aa789a40e27df792e81d9eb989a4c98402b767ac50d0d2aa163ecec0710c4a9a840255b15896592284e8cddd2eeab73c28d4f609d0a7b5670dd7eb4fc7ac4d975852a25831fdd2b13b7122056a029d8b1a7912dcc17792f61400cd0eedb001ed81fc1d0ed4e8d3d627de0bbc4c897e85965b1c5a1e92f561b5c10d6c34392c19ec2f94dfc1c237710f0d661ef5a42d928e6194abf52be5c0a6281e2da7b33f1f7e1688deebe54201a98eff35c95957d2e3dea82a03af74fddd928268220cc15f7fb2f751578f89a00f5df92c64430f8a4c17a8c0de4779506a67677808b543a1671b73557c8a8044849c8d09cd60be162ef0b25a783d0123d1800348d8e5c21b0ec9a6dacea4f3efb763fd9813ba44067d740406226b9affd151db6d6fdbe2d865d8a3aa4a3345126ec4d57cc9949f2542047d804e88cca064d55de7b0a4c693c7e218bde5f62c25b9f29a206d0055bf196ce4eab798523d9778fb4106d74c3d9edf7c392a286e62d1cc5416ec7bfe5a74e321244f870183fb234f11e603f194ad86b1008c49db1b79f832c78968660055275a51413dcc7c3ddb952a36a15b7de2ee9851f0009cf1645a43749732e2a3ce3f49b3382ead7331641008efa29cccb70af96c7d4e707ea4136143d76a91aa34cf2930ccd572a233645de44cf8db6a803582f87b0ce1eda32a8da622cc633334156bddf605abc696b81a61e343426f11b9f40f8f034510d784497faf93d730bcd4f0440f7624ea2db86c8e80a75d487353165473134a0b1a12c82fd4c3d92edd5b089954cf234ac58b29464a6d5f42d1c7fc9b7e872db77eca58d949fcf19bf2b2aad9b26ffe02a2574f7c57422930c84da791d59542a15cec8bd9f4ad9f60c29c98fe1aaa64304c91b17357a23ca2f325dc162cdc778c391e54c312889a381e3589f4b05212ee4f5997a4f9b751d08b55c52052851bebf0430f80e066c0f70ec886d905e3434b97beafba5b75248e9ac6c8796c1248fc93284f034e88baa50a1fbcfbd22a064384d18ad3b9452828ca4312a3c9770c8a73256d34f1b455b3a0c9e08b1973a6056940d030a966e928c7986d330c92c72a2021fc04317bbb16e54eb7f9fc3baf5cfd6a10d7e4cd207ea54b62640690d220775d816a631175fccbefd6c8ea3686da22a9840f9cb42978933cddf4d996f44a82c5aac4220fbd15c3e8fa1dcb12d1d937a7f554ed826ebb1fe40ebcdf95bb158a9a949984bd1dcc6944b92b7bcbfb2a8daa61a46df792b903475834a68f8dc73648f1b58f1e475db02169ea30ce0deadec97971ec33322b420db9ee00d03c453fd0250eb166cf40a892489f7dae8b1b054c9cb0775ef2792a4b0cfc3bd306edc75407fe94beda8ebb7121b5f182307853d7b70a55fdaf303909f14b7a38881f17e98a6a33cab52b8104ed15b839ed143edef9291a13601c189bfff964217ebfcd44d6b9a1400bfcff57da1bf0e86fac4697290d717fa7bef87bc07cec292126aac111405b1d2d2322bc9d931982ac6292dddf97838548d8ed823cde090ca672d2ef12750a38f5906e71a47afee3d6254ea9228e9bc247009ba199ce24bfc593804c6e9970350381772c9eb0629f8546d611bdb931cadecaa83f978fe0368f207f67bf72f13180f535840bb5c4c21025e44d60351d706ba225ea294f1c8bd5c1495bd2c1eaf57e54b299001a6423960572b7610f58f28cb058c721b8d883ea163f9d9889e92163ab5c80558322138454a993555c3f683bc4b4233f0373daab5f78df53f9e6976b3ec4e2b4a1fbfa0676f10f8f2f383866ed110770a696c55d35aedd74f41b374b46e79d418e09bdf4dc236c98333028758d6da2cde31f5ffb119cee8e85c7416535dab185bbe1530eb800a6c1524e9e9467e5f6968b12e47e046ff2dbcfcb96784ff7d5c9753f08196ae26ec7dd98786065352a93b9d56cdf3f5745cc7deebf8d63ee1cc500f2b195d921763e25bff96f6bf030e2cc04f70b4bf644e88f6eec3bf29cced6fb627e26f38bf635c270dbd999299560a77b029b742727099e917a350717d1e5fdf20b48feec9bd06ada5e50582d79732342172169eebf79892edc32aed4b35ae77f0fbe9c8328b5ed35e1582a677f491fc0a4217f915f4e481bbbfa2160795923c2689cc1dd8b9d171aa67b8fb12d82cea950993fd898c2677f443578ce75d23436e77f408208388d3e0caa1df99761daaf739f055a0fedeeb6474ee8f0f9cc373476e01e8ac83f33a1b43b8995c9278fe113a4c33ee2b2988357149869b95c6080ab1c3e021656c5bdebd0bcfa3ca843d61e03acdd1cbaaadbdaa407c429afc103eb9b057f74b43de94c08c0dd9f436cf3acc28db0e9240eb25ede69e86f680f14155c77a5f7be7e0d97b3f453f42f4b25b38ff1b7bdc488bda4d64be75ecd3e1408591b53ae17571930d114a3b3431f8c62021cebab99006ce64b5d3f9d3056d7990bf3e1c7cdc17ddfbb7542ca1a247f4d53a380d5bcf8a8b7bfe77b9c47af3d30c0d8a5ecded4ac232607fd44b5c574e57a62329434c7c199cad67886b9827c9d2bdd647c933f6c80ee24b51cf6678010f585c29c4c4f0aba9590768ed81929817069f3ef70dfc4b3eeb1da4e10c091ac96035899ee53327ed27dc17fadf0ecf271e2a0eb4aab0a583cfbdca2e5e02f3ff120231d3b54272bf840f3670954b1d7c97fd3ac8b75c2aa2aed7674e2c6bf4d7c29c92fa1f50993b27f1ef342b4e7e22c66467c43abcf2ff3b7afb9514e2a164e9e1d5b25f44c022ab714221b0edadb5b6edc7d5dd8176c6bb9babc9ff1af9102d3115f77838e55b87a8ca26c454ef5c36eca70422cef68bb8939cedde56204572f3a97107fb72b9ca4e260e8882238ee7f8fd0e54beb8cf8b9dd9b952f264a3a00e891ba490a3eed341e47035cd2f8c3b6c1051d5dc0fd31259cd7259db89763a70afbad7adb2de2c0505d1345ab4db6de7296e46a93899d04c4a281511662b3d8b9e11113de0afcc3f0bf0a1a612284ccc5dab651903184d5e239d3a2cd3ef02d3e8d15ddf424c47399cc75000c452aac35c2eff164de3b85a5459bfd4ebd00641cea3b5646a3adc62b0c58f0c00a7df36599221fc4cddbb71baa8eb489af27dd3e8d47e54d2f7e9cb532e1641b36b8fd5fb84e51bacb5dcb75c880bd876bab109e97f946a243f06aaf6c4c76cc54d4c12685d7b3971411ea544c4976bf607e86a623f7e144be4dedb4d1f392bb05c5ba650dfdd0dbbf54695e6c7d6fae8d36ffda7bdb9f45330125ac3432a736593f80a1c9c7dc54a0fc64a1ae3a21348d119d0b8b3ee6122e760ca76757f0b862704ff18a47481de305165a3053a5755e9fd753c29a6e7f160f7f1cd4f9a0fe818ed07c37956d55b8224f04933b9fc08adef808f07a6c2a8610e399593576d6dbb02e916797c4bca9a46d882322c4bd0156d0ae0516267fa97cf31b047606b2a351431f724c3df1dbf506ba837e8239c2f24315a940dfc59ee3c0a5a0fef1fdc2a6aada00c0981d13f03dec28e3e743f866596645cb2dbbc17d51bf6d7a4f5ae14b4f12e3b649751ff5cc9e08572c51d70faddeccb67132d02d35e70408a2e55f577d43063ef78366b04a8ff1944b02990df30c49923e72b1931f02d5ce55b6d6df0f14c3844f14e728f5c84284f60332955bd0b11e44de4810c958db31de538650a27f6a834c47a419fa84327f519871c9033b1e1ec6f2dbb9f31f8a38289a2c6601930ea182555d1d3b61aa585b1dbad1749fbd3992e5d4bcf5081816ad49401aaaf6387143baf8e528f1715e00f9166853826b1da9aea652e9f171ccbaba054089343e808a5daa7faa631a6d7b33eb2ed3c10f3c37be0b27470458a1ec6f31313b5c0fe87f2c3c8684e9229382e920eb116f60cc0cb1fa2993a815b21309f683cc80e0ffe27dd4f9b3f6d4969a57de8d68d3f5fd53a72f42c170e94b9c92d426cc2b8c3753ed8455f1569925352b6805ce85b2825a96c640f456c1420c48a744660c5ffcda131a2add19711590383711375ae0440af219961a6594e3829383c97a0eb20f5b38aa6c756ff88e999daafc4068bcf2c17a4cc5a3f6269dc54d5a2ce45d7a3c147d45a30edb17c788bd2214e6f42f7066059d0bbbc0039c674f57d48567d5c4c27497498c2769a61605d245a093f96e93c1c59beeb4ea6a70d46025c9f80b4448e38317164023e9638599a213231e374112fbdb33c466ff7770525d32ea6a193aea0f32149bf13c544ee5e62cb4bca9b7bfe8d0148905df15cc94577d75946c62c99a4cb47261c0b4a3d3555b890c18fc8b3b7cd47e7564b3e95dad5b1426e259f8d2a1c1ca79123225e8ff7642d2a917a9710779806e92aee40183d97e7581314487cf3e820737a3baec66e3ae7d022c94382ea3d2b33f9162fd135a86384458dcb1a83aeeab47b176f9fa32d985f9f1fa736005c244fcdb153046dc82a6ab47dfefb1fd76b5af7cab4317631bbd1779ad6724fbff39b478d8ad6141dde5fa74e253036ae44fa787fa49113bf083e728db0095355fe8be2d03df04192300e17db2cccace4066ffff302d10755238718ff4e904bafccd8ef705c79af57db2fbdf6c4e28f0e7eb697f81234a0f453c5262a4abe07845b3eb3b9a02da15fa28a8ce34a9605228841fcf4c3b312a1567b31fdcaa39e2dfc1f4ecb264350e06854f8db838d6afe7d36805f3027a9e436e8eb9b6d9f3229c5b8791a531d6dd75576668a2755f1e12b683c486caedf4b3c086fdaf33d079a92b95fec0806c581086064923a7847f05903aad1a338ffe8e616a2c5c76d8fc796763bdf306708e3dc5cba06395992b2e43495af893f3ecffba36d1b4eb09c987a06d0608f3e0344409d45ef10168d95654a98ab1512db9aa18db2cd0833831d0ef52934ebc556ae156695cbec00b0676b0f1e239348f4e58c71168389fad908896b95f38389e8702a18a409ce7711dd42694089ff3b1dd13c6797183489792e5bf02b88d866c89eba01a98ef7241f0f4f73b6e3b89acd854715811ad1ab7e098d20dfb3bd2d448f052cec3328f265faf19d6b497c74d4a8b673cd4bf0556239b0047087c4dd3c5ef296b944a5385efd0492476bb457e8e973cd33221bb8aafe5fe354ecf0b9966bc4940d0215f8985ce1da2409185a4778c5d2284bd7f954c051b3291ec0accad7df375822291ebac0f898f27898261b8adaceda237941da88f58ee92c7fb6340b9e04c24d192963b5fdbe8324a06afed86752c53dc6f39d84a6cbd97af15fb8313259b09eedae902b9c9b9c08a13c922054e5cfdf6755a6866b96c13f476bb9b99d3de4279993f4f6c1b16537f3558ba374910b852df8bb864738c308643d34d6b48d726ce4f7854e77218957033a00a559580b5d1f9e6f1c1a64ee3375b9f6ff32af00e6272bd7504723e621d1a40af12ae683ca607c110710306d75d888976edf452581d629c17a3858f4e3bddaff52941357e2e20758a8a39cff555209cfa4c197881ed8729b3355f0a6feaab39c1bc20870f0e6b54f872dcb53ae945b42e365936412b43d8641c4e9dd67687b83a06d13ddf2505a30cd0446ab31154ca6b331aa50a58b5b445171ea392a730153bbf981641bca0de0c92ffc27e033105d5ec8f0d994e44cc172457675e303726f489f156a53b3c53e6ca4d20d94b11157737f3744904356a79aef833c436dd24ea9a9dd5ab2e707d1cc18ed3f7976420c46e30cf5bd969d58203db2d991ca3abc42c38dfd094f6403a46310438da8b2d86f4bdc7534709a354002a0f626fe260efe51a1f559409e0bd36cc018241263e4477f9aae8110635a9b92281bf0ff78bdc8e3dd7f59b4af5fd9adfb5867d88d036e6ab2f62541a0e3b4c9868df07b062413ab06eff44710d65d42b60ad081dfa948e123de15ff315b73a3a0b3bcc0cb6a530bd3b7c90eeac5a98876ddaf4c5a207b75061d39f5ce23a664fd1bfdfd1dd982357aebaa3526e92c52b590a8d5ddaa725ae2ebeec6289a7b5328e3f2d276c79cd465d81d757b55f7a3e387330e8d2fdd599123852a5f2908008240ec2cb37123cadd28de53e89c410738c41b838c3f2fd899e7c1d3cbbfc41cc2a3d075dfc59bfabe3f5b394309e369a5bf00f3d2151fe9354a5d2e71e80ae7abf29812eb150f2a8fc33650caf1dd8e9deed534063e2774784d84e8954c9d1fb724d231dd438be87f40c738dd5ccf0e8100626e9e1a086942e1574d57881f93afb01fea64999f8e328a988b4a7b81e8de50c29ac96e4404fa016b6f3c0c98328dfeb5a8defce2494f0ee72bdb0d5ba1e55de660c965a32336e84823143df6bb0656deef289f6d394199276a0571edf5a782113ac54eafaacf4debc9a72287f2a0907765e28e5c9aa9267ff6f1dd691a17a65be84a6937f70a2944eb0cbd80673c2c7231ebd651045c3749a33c6b248bd4092e3df7abcf65cbe2b9a09f8779d2633954ac43eff1b5f5ce94f71a7b196d3de6cc2f01644fe602f9a2cfefc7eff9dc06b75da25064f161aba391d28f657e510bc643a1e950a0cf32cb332b06c12b3e5ac94a5becd968dd806c59a9f2cc965750863f8f6ab2a7f907f539ce73b4458a7bcc94722300bb4a051a83b93433b86136c73210f919c1c2a154aaa514ef4d15589467f4988effe95d8c61535424af12c417cd4ea36b363ae712236b357f9b33870c38ece4bd63c512d308d73c4d43474b5c04f85353bb865bcb62861ad48e7509b15295bec9d66403b8c02f6a01f8847b4c0b56a2c261d8300f63bdd843da713115ba9ead74c69af833475bb4b55c50def3976385689ef4d6e442ddf8825a60435e559cb382eb7b57f5e2a6aa84edcc9c317a91123f5d8e784101a6de2e7f07ffc46effa73e26d429df458c71ac8348383a82380e0126dc4e940783ea4843be7516823032f46aaa28893f58c90f5694b114b7f118ad501e6f3d84daf4b4b58444365ba46674bea5b5bc3f05bfb3894d751cdd4eb2064a07ba1195fd10b91175889884060d964265b8f8a8f38b42527745814cad1e14e837e1d841037d84670faac705d37eb0521d25eff269548ba20843c8171d7ba1ce410bce461843a4d4216ae171f9de21b00b8a089d06c8ff6c4f2c468296efbce3e17a26af0d588f4c4f7116466324cabe9461ddf08d2235744bdfa9c6f7fc3ad464c2823f30f21cf176012c98771290d11b0fbd94bdae66ab6231702d855930a867787db0b26a07fb7d4efe14f6c3dc86e85c2bee0fb8f12611386e73e5ab7a67661721b9343b71323e72f84ec3dd1a35ab095d5499cbd89c76304b80d4b938cecaad71e930905df79ae59d5c80d83d677274be1269434275e34d036d064d4b116d48e1545b7834dafee602c707113a6923be6c3b185bf76ac7d965daf425dcb2b88dd80c3bf042c4c33c50c8297988e4c7c7ba497077e7bba339949790d1d666e7d3356b88e837b0475045da41d3a68c424daf9453dea3e9e2a18a98111c67070419c72c1aeda6f2afb4b3947f5c95db3cfc869151d7e209b876903c5f288399a7a7d45b6b4189129dca00dcfcaa5ade5fcf2ce69010fea6679ec8e4cae86161a2df930a041fbb315158a55ffb4d7e112a26c54bf92e74309c52a3da16d3fc06038eb2dd4e417c050b9caf68e36f8e4df4092841c7a368fba7506b86032f93ca2d7cd066a511f15e979441f8dd529ac3f7d05e8df33c1ed3d6a2baf5dc4b29c9f561044f9d95a2435bfa10362402ba0967d8279218698219319f01b2c23e0551ea325451e0b8fb9558a9e62e5efb8437ec5e756ebfd2a177522203e7a38834464ad33f0519abcb4def0a1fe3aae498121ea1eef03eca2e1e367f57d9292802974f9d3479bed1c7405d642fa52b9d154bbe396e5a96f0fe951a17e9ac0a2985c0c4c3189dc83c087b3ecd19c82c1720c8d26f83f0edb88c20df0e797b7eb71263168bc47c97a4892790f7f99d45746404ec8cef5fa7a176a87c211abbd01bc5e65286854a97b6aa08f8e07cc609cd8d7a2a8e2aef2779fe417c21b5f447c7fe2fca819b396bddb08052fb63cd25e7cc21d582de80c69d893b8d5584caddc8df633f89ba28a9c0422ac958041901de56fa92b3696687eb24be9c7e974e8195cfbcde838c1c706fed00f4edc8283f6be5a9993d5e0290f5fafd100052a9dd0cf96e69342c8a6388a219c70aae23ba0d35286325043b7c3cdffa0955ed0fdf08ce9c4908ac71d5b833eb4ec1c7b6d0c6887bbc04d5bcff4dc8d0c9b7f30a70937f5b80049048299cd9267d0fb843218723853f60010d7d1d5198a6a2c30c291384c79f4b51b4b95bb12088473b5f0cadcfdd8960e96b7c7036d7279c1258ec5c1729432cdc14cb6e3ac89e609e9f982859c2c223a4872cedda8031926736a89db928b76310df5481d830f38f42bb91f11210421c7dfe5634c3865ee29e7eb97cad13c44443c7abd755aa5dc81df7fc7d4f516af972b172731bf9ec0f666ba8ac7830ccbebebb567c5b691a8539e53cd0ead90768b7e6bd0631b7dd11c3c1395d6823b0d53caf9824fabf639233737e85bff3c68f313c8a16f6af29168c470ea709632bf76f3379ff28e6ea5cbc484906301b9393fc69249681b22e91ee894a16b1bc9abe7be355923d5271af1c764d9ca24bf182e6d401ae8bceb572e7f300eff5e85e24799e465d73a104acaa72c8b9fe5ba71af1f01d66f4443564cc3458a332304dcaf691de406c109f3c556b1b30306b426bd573b1583c083006c3f6a738051fe01271141486ab832e2d1ee16c6cab5c4efc7b57ad500acdd43c4ae50506d34a1af5e04f59f81920449f9b976f12e464504b83aca3faa9aa3ebeae03fd4b42264d0b2cbc2fb98273ee8d76d3a876d3a5d695bf3c083a864bf93e955369a2bee5352fb069c053162d80a6ece8cf8a75db2eb6b6fdf247b3adaacb75cbb11ef5732212be1b431ee86545d14f1a21c84c18967a2253ce7b687304191a9dda615b7610a41a333e267279696384c6bd84dd91f34672219b817cc35ed524cc2973a761f8c87d68e9bb0f6e8f1986e773ea317d700149b0b4ccf0b99e5186145869549eb6cf13573d3080eddea8e1e0867655fb7e42fd5c3e4965684a290821886921bd445afdd6798068cd87ea389e5383da152281181da5a9a066ecebc6117e7092bb34ebd0272d79d027fe63bf01eadd55cb887cdbd0de300df3282cb052d1af6c58a01815eb0552a4037134c1a2f5d2e02b4e74b665518539a326c308c212063d78fe78c7eef9e2338d3d3e1bdc8f6f9785f0d8d1c88beb57a42c89e726213ed19990bad8c78b5ab3de60b9bf2ad5eb1ca151fe87a93a43bc8b983eb7f7254fbe5a5afaac3c39ccba582a3a33dc5756140e5202e50b034464b78de2ba70f4cbd90bd55b9b7f5c05c68ab09d0f0dcaa0a87fd98930ab2cc36a3e003f82fac40dbf55d11674390ad6b7abca3b83f7781f0539de2e5c2c463e9371fd0377e0866b4eed38adf563b66250a29034ce917366dc893d7a95202d82c4eb5366555742fc2858a2be54f4a922b99da3adc87c7630e25a770cbad723098832fdd7abd344f837c1e8fbb95593e6ff3dc1595942f7a451ca9e28dd02df958be6ea1a5cb011ca23dd3911c1b3bba1934c63b3ffe3e8e366d8112dc426b5a4218419a122255145dede4bf9fd14abb7c7046ee94cb91337e123caa56bde5987c0b30ae7068d3747197cad107145453f54ec2e9b669e1aaa88b6588c80edce62812a0938e9fc1e39cc01626c1591a903d73b2e2786728713a4e1def9e62275d2a31ad815ff294d8bb2783b6b574e5f0a4fd7947e79e678ca822a9607330b67a60834b04f4fa01f43cad9a4359738990da1d62825229bcb5df346b9da3173870eb734acae34491825d752cee3aa9a99a8149e2244f68fd8a2cc29e0e060baed8658090700df4184d8e19a6d4e584981ebd6865c7c7ee1225b671f211273f59905bb7dcd2fd201b79fb2568422de6d13ab75179f72d9d78e8121fa88a6cfe09a3c517de51866d113e55a8ddeac6d20382866cc0be73745fc08da4ebc0c0fa30f3fb1e38ca946905feaac2c3bf6a9d2479a8170e8865f345e7778c1d317825faf7a15ddb1fdf2cb145dbf9d50352a8a69be82054d8e2ae7a9516461c54aab98c0c2dad6c61a3d26b46f6d691f50feea8dcd8a3c76bd052537be0a16eddfc062aa1c0400f40ad00b4b5dd7ec44222512d1219d7ebe1b73d96b1c5e1b86ab2c668919b759c82fa5baaae9df1d408214404d6322857f808902cd91528e27400eb272cbbf57ccc68c980986ac5fda8b3353a84b66825ee071efceb5610996ccb85e4ed0091198c4a9d9083f2a67268a5f12e6ee19dac4ebe7cefe9608517c023000747f28004f5df476587e872fc7f7694749ffcf6987a1bf8d5f4d4710ddf5b2e87202d153a3cbb77473f7b7fe707094a94db18061fe165d05142f24a54f4d2c3bb0045fcfc22914792eccf279d61a1b9804bc08ac0fdd3b7ab08528fd594bc0cdc4b04f3bcf797db2121331ca7306a9a45e71a8e7ed17676acd53e081793145dcc4e5c565c44d3a0ebf6eb4d0e934dfed2b1183ee8d9502acb5535d15ad3dc78adbe906b3edd8e6bec9527e6bdb8ad149dd4822ef14edc2db49d9b41e920b0338e462fc3d4d97f212dce7d7c97eb089405049f114c1f7701b73aa7fa66672ec9feb08b5889621219b023ec9d054fe83d62ffbbfc00ec26b20bf325b83821129cec259e4bc9e360aa16ba1a48fb8ee2f27b4a142511c6a2492ffaf6896199d94e00d905f7c647d9aed0d737bc4383173cfcaaa917b8e3ea0b80617cc1759a5bc9978439f4111058fdff1dba570ed682628f282a83377d7f97adb7830f3310264c3fa6243509612fed1160f3c7d3bd396505102e72401d1ddadfea141346246026156ad8d35c75dcdd22e93a16fb8900309d76f93bae1450db29b8630838f9c41b23967e3d8137a3aa9aa3af62d200e215d692654b8d325e062becf33b184397f05afd14f1c44c9522cd005a2d38e179a1e709fb5629c0abd54e8860255e41e4f5ac4ce000dd7007be9d427d19570748a2f4405a8375d3ca4639f6e5a77e241f9d39435c7a3e7fceb1a37cdf2b7d986019d4d77ff36342ca691cf0f7e4fd749f5fb1d929b15b9552eeece0e3790384d8589dad8f4ba6cca68351ae5b10fbd0274d48a7015b44cefa31a52b2189c93518de7f85aa2e0c2c3a5786c56bdc1ea4fd7badedef55da38400c843f6d0a4c5850704ddf089807bdfa92677686f339ee3351a2a839b7f8c02cac48aacdff369c8d3e09e850eb7526ed6cae11c18f32640daedb27f8ea32460de0c285486976ad2455f5819f8fc82f8231f53810d5cc48fc213bb61f9926585eb9fc7b74eb76299a73aeee2f5cf661f98caa85428b388b0226fce8229066abaf5a725d481f846c7b4d20d3313eb76f5d36ff8fa4653d369e0dac29710e5460cd4ef816eaff205c41fc6291c470fa7e5860b3432c7e9332116ecd3a3c5179c0eb3a99bd02bb412f20a5d7fd2e95b63a1f6a28b9a11c3c88c9384842902e73e639185ef948c560b2b8fc36e4e3637b0727e42e6ae0d276ad15935303ea5ec9f7bc317324b2da3ed3d3b14b0facdc62ebe0a4c0c3ba9c53433207176182f94ce19708f4002acc78b2c8e322f1f33f807779c155db6543345ffd28ee9cc482b3c3114bd01726e1a332a7c7598484f1900c5cbd7292b8475b69d0d9cab2f3982a0e9fd68f1941aefb6e9ee21e023ee0035233fec0f7c339f35cba4ffe23c701ca2b0d1f94ffe1a7b519d42b54e2440c748cc365cece95e7dbcd11eec30fd00f12379066b301f1dca0c27c7ffdbd1590efb5e02bf42b68553453836a293961ebb5a816993def998c2a55c420fe3ccb1da72448968319f2ea889c959835e1da5da0b3b98bb5778403a1bee6de9786ba4fbba87c4e74cbb63211e022bf431c493c4973b8884cfb7911a5b727216f053f303337c40d5fcec2f717dee020f1d3d8a03b26bff1d7b204a95bf5974fb529f42d2f6c6a0f133be2452d4416926537950c8e8081acd1c0eef684e0a0605dfdd98a97e1d19949df6d893a0f69f171f784f0a5e6dc9c209234635ec35b1a1cacee2d9f951f4689aa76337751a166dfe80163854fc4e42a41cdadff58e730ce0bb6ff825140f80a6bae29b757ef4500ef8d6777004c21784257c08f25b3be7b63075a8a4235dab0248f8ba59e6954f34f7e577d4e2905ec72ebc8d4c0f6ea596348bf3118f612dbb1c48750df807eaacf93ecf7134f89745cf74214ef465c64b452d325d01b7b765e0fcee3c9e8cf8e93200ee386d8d119f843eedc136eddf79103c84260d8cb9303c41fc5fc81cddea9ceb9d05bfb89b62f7f946fb06c57834507bd922dc21fe1d3ec89d1673e0857865e6126bd43390c31048752d6023b3e83e138ac8a64b9b82f4478de8abb83fef247b8bc1858e289a451284470330c7e1cd0f7fc6def62f26e7f6d9b9d3b658803459811759ad24a8770329c68c874df228e1ea07059d729ba4139586bba192158dd169e84f47c15b330ab82d28ba590c19dc9146bad40fac135e8e3757736540d35a06bb3f69fe8addd9271e48cd64d286b7a26db7bfd8f1999d20a2aadb11df970e4509b5f235e199692633f6b9076bb5101f4f019841f771190e0545bc8361602ab1132a1402f94f733d22c2ea8521cde7d36dd92c3079bc206d9417ac04d8bc9273822dd9735c3af706c913c2279df41fe2dda35e1aa4f181a4e6b376be358d4ae3f5ee9c99e5d7b9711da81465b98600d77d38a374665813785407980d719afea5e8898c5539edbf15324da9df48eab8540adc857032132e259e78c6a36bd37b6085512c845681d498c085be2d4d30d54ace6b210bc922308f67e5657accd034f75152d67273650923ec9884746de4ccbef11ca86be878f97b5d5d119535bebe5ed23833a6a3e52fe32db79fd2b56a7624a98ee191f7d56fe015a117947f6a54fc84cec4f0ffb45da39d49a89ae9dc8d46c7d4a65409b6fb3cfd5afc16e50b5396da485dd94a05706d0835ab5df29834bf738e62b0d0020b0ae3c0f4ee4738bfd40bb8a4514bff863f87d6aac535996c0008139a6560998e34f7cc6b21faacbd51eefd97bc577e82d087c31840dc3ea0ec543d61e7cff37baa4a8580bab4c4173a2bd70345cb068c6479e35e78526d1affd263e1991f704af724d9856fa6e5bb7d79ab0d845f6c8eb18f4d59a28fb58b047f9ad960f6be79f0c0738111c4c43c90bd0bad77a482b7d34d71da94ead6876365711a7e12fe08724284aecfc4164fb930ff2ec9107ffc51cb7425b4870a06f51d0109c087e3fd2af7e2fb49742a50f5f182b06364699232e55f72aca965e56cba3c21002528e179342c8a7344f3bb65a2e9a65a5714761fcd9f70fc6e1e6352e92e6ef19a10425964613345493eb351ef1a5920cf9de59aa8aabd4fc6a5a4884ffe123f3e8e2f5c1361004008277eb62b0d620c1463e443320f6fa9a35832675a53c3fa7ef1bfba110fafbfc56406685b353432c1aab92a8f088e5ec00177620c004b5b6f918a6ef955331d3ab45ac15114908768036f35cac297e06f844344869807cbf31c2e5fab4333a1d8742be5c5790e5b257b5794a7d8fb5753d04cf44e0169467683cb9e95628a46128c4f8e7e909b1a97618246c2379d0ef6aca9d09bd6770a378488b6d419c54c3ec44270f748f569fe3a47ae258458aa9c0357961bf6499394fc0c03824ea89a1228a0272242318976e8c335d5487737d10cb4d905638eeae4fe0521c1b8a9f0d54eacba24e2360b85ce5403f4be3b03762e070f71320846ba94a5695e5f74ebb528cda937eb40dc79f01ebe7eb959466966f622312c0bf6acd01f7f107565d6ea9d0b90057b5d98598c8662c94f799f03d50da3c05202a4047d2fe9ae62114e933e96532e0df3314cc0b9263335b85dfb593e76f692eae0da458fc1ef21bdb2715440e6cfcb38e8c927266fc248279b763d5c258a72d60391b683707e2ce56af5e2fe953633b98d002c00d39acb4927568e9fb3a8b26958b3c34e797d2bb7f539856aed16d0d41e2bf8bd307fd99941033623071c825f9da3e3ba56c54395cde5a44424f3a93da8d59f99d2d13202244ac168e1c60804d3a4e995677253971a1338ec1f8ebd7d7d470a14a3c423655d0b85d36777ccbb5922f02eeb93b50735ac0fea038ec56ebf8da37071ab5817fccd142c3c52ad78604ca0dc0d0e29e3f7e5c26752b071c032e0a83446a2bb60887cf81f2558fe46a3630e770501485ee3c16fb19c311778665a23abc7f90bfcced62dbb46c88cc3794e33dd3d47955f0fc2dbbbc34ad76c2a434966ae1bbc9e7b6249f5ea603f9f3551c56f95dc8500ee38fb9ac8e532c8555c0bb649d9c66983e4f926dac05421d103d391a9401410dede88092dec048bddf40833145699755fad4889436b2ea2edde0c2d33265c928d9722e6e3d0e60b3bb702385800e350174230be3530040f22fa1a317301753c2c9153b3d137156d226e2964e449197a1b2c0a4aa7fbd16b99d5b50caf4742f96d270f16dddc042e8939531ad012c1e7eff9e3150f4d504b01497a35bd7138675d3463598f1cfa9dfced360250f81b81a6ba02ea8cd9cd58c8f199a4a113265afeb893ea44c01f5e48984a869af9aba4297ebbfaa11a4fd0acba9a573a9be857c00765dcedefcbe86c5fc756dc241ca056a44e5979cb6e069b5651cffb87941ac1da14655e6bdc08e63ea2e43c3e813be804a380c09618dedbc82390bd2d0110dfff655e2f6d555c4153fee9f292912c313a95c90f775d5293546aa49654d8dd9b842dc62ed9b8d904b3bade686a67a1a6980ef7e28b4fef8e6d7619ca4742d8ce8b033f6098dd46e50d438471c79dba3a9d3eab216509586484607ec325078a2737158f8d4469be4c8cb75c8c6b1b0b87dc20f03707c3c2dfc73e6a23838633804e98216785703231a9d5303a4eac1ec7bcf0b0be291d77c235d0f5dbb23645008f0c8234c12ce53a00c98861fa9defa2844b3cb4729953d194f83d5d4575e70ecc49e4140328ee3a4a3036c383ef6ec98888c844b08c4a3332a3e3d1905273154c559ecf38bab9f10130cb7e064a015b823eec2253b6e01f7cc38b6b54aaf8110b1ca9342a3586256b611fa7e2e2ff2358042470ab0eafddd33360bfc84bb8f9cc7a250dcca6e908f6c9cde6259d36a7e43a5135aa4be51031248d32af2babeb2970d29bd0ab48f138ccb434d53b65f88214376b2912c35970a3c576329bfb32feef98ad9766615dfa307798083bc3666c1efd92fcc71f43678fbc16aa468619e892ff39e050c14b05fcfefe0af276f73047afde4b81e38017e1ab12934f608abd47b793dd484de1c1bdf31ef0f41db0d4bcbfe9fb918b7e9bdbd08c4f2d4e842340122992ecbd5fcc77466d524847b15b04800124e2ab3da61dec857f204b5cb18c85d491101c6c04f8aa212bdefa20cf5baafdd4426784b0f6c3a904ed07d049402bbd8de14aa5cec2154bf6fe2de504cfd9a8b2a6fa5b2daa9f2b033f63e8937d41c74b0a7a8a824244f494b64d2eb4660eb9215030df5f7cceb27197f6abbd84ab94eb09b4b13ef734589f18bcd1a0802c580cbdeb58ac7d1f570add8ba1f2b26e159bc0544e9dcfaa2619344d74e7ae7c3c7f56a1b27e0a69adaeb6a122306834a81c1b890703a8add8b9daca84b4732a51a1b0dc3220df05e490a4e97d61f3cbcac0afd71e822b06153bf46e06f0cdc5eec775b98b16704fefb365cce9edf7a65ab51195e68bf6c7245ff26c2ba8d2c3a3a9ed6a39e6f028c69497e346223b5a65cc997088eae8c177a11e66bf447efa8cf16fb430521477ae0ea67db2206b23891c66e61bbd090c39c3e6f661cd7f283eb5f771dd721aa399cc111ce93f3c5ce51c5ccc0c703d83f3a5012891ccff6d3a8f7b10713e321b91d9cbf878042d0a9b1e0bc9d1eb5245462642fe83994bccfc5fa410815c8dce3222e57ac41d5c52dd4567d9f2739a36a9e831ebd412ddae90f7fa88f55ec6b33df918c2d4101fff916477ca5ff04d7b414a1a59fc136e5eba29aba247ba62432ef1c922fc7a73fd81583ac2169b8f02c6e7f5239b2fa68daf0e891c10174bfaea9ce0a14816f8e019cf3ab71a4ca9f8736ce11b957878d05f721bc6e5d60dd980099c7ac6e9d55eba9082f5b9dd8350139b0685fb63761d4db40c068ce6a0e7ef02cc9a924fe5d198b5e09c246303430bc3a89ac70d3452f4998957713721ab07761d25bdba65b62f66c020532b12cb8613ee07656a59aec5d5c3c57d7abfb4538119f1fb66d2303f0920c73ccaa926a97e3d6b0c2f2356ad44047231f6a211180738092d5cb9855d01932e5ea21659d21e8ddced7ae5d12b24771513920cd95dd2ee2ba96ffda0175c9ac58fa807abf34fc9632b8b998dfec222766e716da50fa1f64b662d978ea1140b4e2c5cb925f4ee907ba3039f58586e47f362b7751126a5170eead2bb0117ccaa62872db0192571df968b96a0e7a99dbdff414e593fe44eaf500cc64cd04b19a6ecb3cc0398c6c5e198da14fb52fa9ec59d3dcca9532472c99e893195752cd205ac9a1a32fa9b331f5a83311d96cf4522e966cf2df8b31817bd65b1a68daef0d2b560b6cd5a90a453287f811512a75e468ffc6a0fd9c09345211e39195c51f52aef1d6121186b11d544a882eb0afee8d25209809429559e3876ac9d8d462ee92096e3b10e5594ff216164b36f27ea59a287521b551ce4a2721b596d15579961e9b912d4037ae94243281f05e6f54169239796328d6be67586a25dff8dbc51277abc024ae1b1a175ffb694334d64552bd4811b5bb8d48617c65257e50f48426378d6f7ed0d6a42d87a1cecca0c48367944558d531f985e4e82a58928cff0d1720a9469abc4d8a38bc2dea1e682d990e924ba2c7b60fc412d17caf0fc2b4fc4c5e45499aadc720557ee7542f3413414dc8d694d9045c81cd6b12424d43e23aa67b3cb78e8e972326cf8cdf4fccdd86a59d8af24506acbde0b34c908faddcee116d47fe0749959b6db26c7d4545029c3c918efe7d150557865da035425f6d6270b2f4e16d1996921abe6b81d9707f0e7c3891e3bb781bbe63352d3dda51265b7cddee6a32835295dbf44e8245c31d9e876fb45ef8b3fd6506dbc69c31a1dc9fac4414a7d5e00e5100dc515241ecaf35270aa0311ef2584332fb3ad59daaff5cb5502537728a72c16c134edd31dc734f9c0b608475fc6269ea9c7baef75d1ff44bc9c2d0eb3ea50fd523897d64f5df34cc2d29b80c4f5217f85165d610393a020feebd67b875de9a1b3c22bf29c7f6c46fea615f410075d0018819a7916d6b7aa9851a21eae4453cf0957351bfffd40ddfbd6646d93a0c9f3f4d128259472c640cc1db92f474b2bf5aef2364f4596f210f28889ecd432d44fb293f074c90f7362a7f898c91363d5eb5dc1233f88d66a81a3d01a941b59f6bbeea8917070470952332e8c3ea941f9c8c549e4c999e87697e463c1e7ec94252dedc4dfb88c14f44464ea3abf486702c4f294d646f93c443d8e8dbb5a29e7609257bc60fa49234924afa31a5195819e2a3fef4aa01693ea26df69592e9bc22891fa45ce2f46523bdd662df714a2494165be45043eee0bdfaa8d1582a012b502528c2b97b4f198a741432d70dd12b2a10b54cfbcbf47cb7e2a0c9f2f6a69edf65cd01a6027ef918978b3f97b1549573b09e9a4a087212b8a0ac237ee8d07761386aa3f7e1c9d1b85fedd38ddf6d6a8cdd17028d01413aca53b3b596176c394e9e9f28f7ba033dc5f3670f2b210b330daa5b09ee12db09cd7529050bc6437420dfa1c3a978a1ffa83899f28eb1de6b129e7fa2b5bdb36e90e3289e8492fe613989903f8449f85047e18fe76cb2bad95467d50783b3212a498403cb9e74fc945a8496c1fa98217db82fb04a86a104a43004a9a9b72eefb9eaa332cfa874222c9de65132a217ba45fe61276ac3231fc8be9adec9663ddc6dbdd662692ae33a95fdf705317b90310dfa467f7e16599db49da1c078c69181cb3abc46386f7fe72d3d470b979b52e986ada1b8a20946090ad6cc281184f0fb54ef63eaed88e7d284de95b183b0bd895cd49ebbe982961207c7f365bb6d662dc7b82d78c5ab52469a3d194ed21e6a72067d93bca26df3e4dabb741d8c7328f3fea7638b8f943f4723f407728eb24e540f213bed96044bd3c60fab1e7008d665ba2dfdc59901fb569dc70f4a65bd9179932a59d4d513e666551f33e7c34835b0dde2dc9d751ca87d7f79d3ff904ca7bb18ee241b77f8380f9f1927e8e28a59b1375b5d32e83d3c24043898a3e99f3424fdc409ebfa51f564a9a8ae9b8f7f6f985be2d7d1d4c6021e5c7f9d12c9202a88106d812572ff2cadd15d2ef9fb371a9911f3259a114ab4108b735ba959fd9d04ec0e9dcd06f2f43309d251d986f80c7017fc506891083735b128c7bfac910812a2a5517cc47dfd95c46824d3c9786b65e7ccab81c51c7d66271cede0076709ca02b224b0cd25ce72565acf1e5785748ae98884e1ff3efc9ef29d049db7d7979dd45fa8fa38fd6d71728aa633938bbb81e762cfca9c583a80a0becdbf565dd03feceab3c1076d151c0fd484b38f1ef7726f34583a414a1d9e5aa7e9a7a4a03af51d9a8273034a5ac33f295128cb023c5e22c49fbdb177b2eb40168ad7e838538f88487772bfdfdb65a42636afa09fc18bf630f2afae5d7907cac8eabea25b23a851d8103b92a59cdc2d7cbde35821460af54536cdfb08d0145bc5bf76f770c8f9330f6435e128c40ea3ca67b7cb5750587d8362e217f0de72e673b2b1d24cb8072bde6d28c7b3e0c43df1481b62022cd3682bbf3ae8cd6ab5e4a1f96638459cf56b9787cbf3e6bdd6521f92707b78f7efb834bf1dffa00adc82cfcc79f8ad480b96677dff8b7e1682fd57b7601fa235fc75a32346b7eb3783d5c4b2e77ff9084ce69cf9d45e1c611c2328624f31ebd7c709e205b0c48ae5c4fcf8bc09c8c92253d17151d241c11e0a5464890f7e72cc86ddca8ded67ac144eb2fbbbcceb5164d8435fdd6f3ea0cc7801eb5c2c43bb6ff2c92c4e9792153e9bed3e0731f480995b44ce139ce1dd93b21b10484643392694b334fc2f6b9dc4dc6708526dbf78f2a6aab41196b40e91bd59b2f804b496e5e3ba789c18b1d6c8f9a0d36f19cdd7e80307b3daef26886e34654777b8091e9a320d197dcd5c023035c4604c96443e2d1b9991d28dfe14a345b5bdf96c5661a97ed8301bd6a06b7a451800488c0ba7774946fcacc4f8ba6abc852aca4f5c407270bbc33696da4f1d4970fd0095ac532fb47a852a96f3a5d096494eb8c079d2f9f1517fc7cdfeb2f6878a304587c71b928048367d2d1cf06a65a0febc169cb0142784911f2b016e4044687c2e6612ce6b14b6ee134e5378d39d5bcbfc4a7fd63b3f1c08b78d09f14d2d4662fe15db448d044c438f6e10ab2f1bcf2bdb98bc02c334bba655fbe0ed975ea4ef3853285a1a499c80a65d20b88d89c38010d2e24a9a7cccfff0c648ee0633f93bd9326516969127c9b799958f78ad907eb26a5df1c78376d9e07321dec7beb1cbdc5ab194975537550e618b73c3fb90d9c3047a2383752a5e98dc62252f857652860a842a20d69b133b8d80d641bf61a7ee8af4ca71d4f9c6dbf9ebd7cac100bb8ccb58b04090b3a7387d2c0d4dbd4e9b986fc1f845497191b55942967930e7f2947e632b741c292e037425dc4c9f948beb1ef8de10fc5dac5e9293624ae55c2bd99e3a435d8591973499eb9bf017606c082ef384279d6f0a4d2e7e15a32008db9e97806ad4546e9c4b81971240ac72b369a0fdf206ae3c7d5874bd6c2081181e693d993823eec5c926f516ca8b9c2b85b44995f68f6df78d79c0baeaa9ba73c1119374aca64f1fa3f4507fbd26da910aeadc3c6f9c635ac0e49b2a573f56e388b1a7890d0ca0079518f0cdd7e91d8b972278e4f2a443ea34480d094132f6260a966229c9345ad80f341be7a5b73d7e52f7cee974190e7f5239b4bd4942e403e4515ca1f458f5b0e71a0b4776d6cb8742f54c5d7fd510e31bc8f870493b5485e3bb49768cc395e95c07d88bc8b5608cc02aa4ac70d4f56c902ba6f7cc2bf1c50ed83b7704471ad8ff30cd00ee252c6e6fb4ee40596d68bc55034a0886631dc46c0c3c3947a8ee4c2c741b55070e01d79b07f983eb1fbd71adfbf3188d9d5dae49d0e7c8a73796f4f18c1c78b8942dddf7d888efbea9f51f4513dea6209ae863071c75befe3db11926a61ecfc5637e2d8027a4f16c24db50629b5d3caf78e5909ad95e145b72332fb613b8c7151fef6aea1edb8f62ee34da050f07b393a10f0b4c6f199808c559242494a6568cbaed99801dad35e170c585c92a05e9f7aca9f45b6c13e4a35af60c98f9c9e9267de67888e770156d88c6a401f193c4af5e526ad79057e12381aca8f451402849c97288cf63430e2c35cad910a975e9dfdf84e4791933987516e78dea2b77d9b36a0ae32adbb0aa29c90e9decd1910d577369d8983e5518aef83a6a780914e6fd50f8d146a0453071c15bc93c4cbc2345dec694e58f44de4b216b4aedc2177526c36d8c6a87bdbe46f3975e8adfaadad3d52f9e21d2572ecf37763b85a5e63dbc3d26cfd2636d03fb7096f292ea0e141b9a76f996345181f3c112b61bf42dcadf6987791673542d88779e41f4f7a122605a3ba20bf975a23cbb644ba75f1ac2cf508f77533bc26a9685e93ddfcb3a0ea6c2fca4d4bf0631114ca64790a649b210295316114b33cb4573ab34b841d9bc2cc7bb25224e1f6e23c2c435ab1ab96dc35185a17da1c8aca45d60aa51df5c05515599199eaf6fdd79f00604cbfc13cc5fb9cdccf189b63a696ac2e725d3fc468cde8509a430537414a3fae2a2fe819dc93730d24a4023098a32332b6c2af4e0d8f9ba10b57834b9381170e061f9a4333909834531b005a3b389855b92c218bf9877fc5c055f8e7dc3b22c17e510c31f85a6b2f6d5acc212516387b465e9e351df8de065fed77a4baa1644244ab3df342acb4222206f1404372ac6c3f80fa7388b62ef4d6d52ed0ab93222c96b7972e8117fdf68a051d92ac74943b239ff9f83eac4cbb3645ff713b2281158c241f78fd7e33993b03092ffab9cf46812c0934a0580e3efc7a2d10c917f991fd4334f8b599a33955ef6bb6dbd298ae5a79888fa34a1fba86361c11dd6b99bc1e8ae3746f723c031c7bffab7dc36f412340a1ff45a92f1ea93e19c7dccd19f94815c625b4ea2605c99f94248584d42b6a1bb0632cad7266a7db3979a21fbdd4f22072f33735ac48ee163830d883d1f4310c3d7cac266d9a1a5a47fbf5f903318d8e7b04ee5a6c4dc8df66b426215691a6f7837724f41346508cbba622252f22d76504baf5b4e46545bd52a82b3061982f238d56c78c3a88bb46cdc6ef21922b3d50dd7d677346ae60b836e5ea7cfbe1d3bed5acca7a5110f7e28cc910a0b5c3031b3604f41c9d97ab9abbfcc33f021b8356887c30d974a5a8bd10c8ba094a4a503bdee23a05454186736cc70eaac117216045313edcca1050b7b1376df7e9d99e4415a0b7dab11a94163b9d1a635fef1db47bfb0f493285acb657d623b7ac9fd670eb9a261b85876f99146ad501152afd0f510e9ef940deec23d62318cd88a2f91f326f4d9bf47f7cd9851014923a8c6d8f1a82f75a9250506b58faf06f86246051fcb624038167fff46fcc711721487a3b65dd6ced6565367fde17bf08c2078b2eaf4b7b4cfc934acdcc870002bda0ed798e86e2c88d5bde54c9aa6db73ee1db7fa2684d49e03eea8b835390be20473496ec9f8914ad473f6477335ecd88a3ec325151341bf5da331a4d762827c7fcef428710cc90c68d732cf14cbf53280bd4d9195d85ba470883a8a8c3680eae44ef1160bb4e0c1b8e2baca52ece81e3365f2b8f8af17370a0bb29e02ceeb6402d6ffb4a278bef579f7cea36f99a48d1152c8258fcb86529955dd41cbe815a127d63dc5619a8b215b02a6f562018ca3b959b5ca201d003359b94a48b79cda568cc00f5c5e3e663a6293cc8b18335dc52b8c5db1e8ca59594db32d991c28e389655eb69966b312334ee4006ef08888bae03f545963595b60e257374114bc22725863cc19a2613a82f8c363fb9c88694a1e6b184073771d70558b4bebdb4117cd19a08692294adbc0e015d0bdd20b7ea5b0c12a658f3fabb9e061dc17f58dfb353d02c3032f206bc5aa5a007753d3933ddbed25e97f792f936833bcdeae5a83cfbf2f5cc4c3168190f1c775526eb064cb7c5c081c992e37e2bd743f5c0cc1dfd18579e54cb685dda475f2e1a6dc4dec1a06a138b4d67cb08ef5b829087a232cd3984b9c4c54d52194044b6fff80b4655d78dab18cb9757ac70f0f6b82bf6aefa301d637c8b6eb282a010deb119c6438052f49a6bb3712f50d204d2ceb6432fc4f2ce6dc1ab34ebd71dfbd8623be377ecc539f3ea51b76d316ff6b9f412fa58e03e50de3b8eefab6e67b19d45738df9f873109f9f6ceb855f32765491dfc40af51abcb5759b6946b1653d5e151cebf735d0b8f3b974407e3c3df38cd1558ca7221dd16d61f5c9209dc8e3e68f82e870ebf1dabb09470d7901de4376233ddd367786df90d1bfc4bf44e6d52bf3a1da7195d62bb8867ce9423ad60673b9efaaf9772d7086fff85b0e4be9d0ae87f00c3e607488f5c94ad35c44f176850b6f9d3e9c38ee0406e2b22e6c4f04af143c8c67b19c70e391f400c4d6eaaa4454885db5d3a8dd9766f7b54df5b7d9466796c05e9cae0bc941ca3f8b75a57bfa1309913cfcb36851847999a9480278b4d151a83d6d1921125dba0234feb08ada8c03792a6bef4d0d2785703959bc1b0ba80dc69b23afaef011728297202123184523645c6a4a79a2fdbb5e2a33e19e74c4d21308f0c606fbaa0d911adfb3eedd891167edb5d8d1ff147d26b573e7c9fb02408d5ebb2fa0c11a5903d91348b9cfe8e90c51fc6c067861ad15a5cb1f4891c5c6228f9ef201d378a0d16fe7a3bccbb5bef1b26403636f3c1093478163599e70f7279467e574477e10520f5a8b2e16872d79e806fcf835e22fce61ed129b01eddd8e461b0d65b909a72e89c1260bf7b80313f66f25a417f2d55338fe6382c3296e82766fd09c829db3f81f43b95517e9f2bf251f97b692f11389aab60062299500322f4efac331dfe77bf85ba749987c55c8f00a5c5535c6db4ee2a9f5140fa7dedf54568ccc6e18f8322f5acd35f41903d78a1aedcfd83e28501e82f0a89857df84dc5a6137f0b9cb7fbee325fc352a35eab0aa7b7cd189b5bcab7fcea15ea2139bb4e19f5ab6d13d89946dc06ff95e7bcc7a0c0ce330bb49723af07ab0300b83e116a5fc137d996de071c5070bf429c00752056041674c8dd654bb1df76b15f82a6316cd9037e99e4f6c8958b87a435d84dd4cb1b1689973e3eadb9934abcadc89d3d5e91575c0aa743baee7a696254046a50e3c7ef96033288edd5b714837276b523961f1c0bfff08c7faf865c08f1efa6d6d996bec48cfc032617807c1ed55727bcdf9ff6aae32f9c88a65c04505bb44d0fce903ed572e86079f1a208e827c2858d08470a9f71eaeb74e7212b44d39065c45d02ce77ac4f83ddf42006d0e60d0b9b300afaf2697299788f6135ef28203ac433b923c00cba76800d5be63afa3f1299f8ba1296fa5d8c151d25039c4bba72ae800b0bf1f09176df2f63d0805056d4bed25a185285c3d3414b5c9dc56c6cfec984884db6e2c65e43cbf81b0b6a82b2eab44d89a4a36d2681134775f7fd8d1f3acc5346669b1342c7733be3ceb76bb871e34f184f407c95bdb30a932da1f335cf1c1305cf15b9957d096b61cd1876afb3a4a3e01e87e87e0db8f7cd94576bd7a26f89928c93f0ca68a08480b1aa0b39c2ce9c5340c33030dca3ee18b6626e7ad813efe2e1a59a8247a7239bc79bd0d9fd151dc85eb465f213b8bea6821c0beb52b01ac01efb431a489c7aa6129b370b63c46351f32986dfc0fc963d923fdccb8bf8c2b0fba29a93c3692bd7f67d62004347c97c53380f5dffe48e3285bb59eb8cf28a798ce9f6e2d11d350fef3ba938bb3df9be46524e201159fd5287be3e81c5f024c72e2e93307412feac994ff7f1368a5221ae156ba2932393be67bb9782868e6ed65942d42b3ff6e269e912a6a07362d6813e70604648a45121817c5619f57cc770fe4dbd319194c4bc538964066b3b4e341574175a724e9a6f14c241ca28b30f3b1b53985df7090d4b15a6dd80aaad959c939c114225cc64371dfc984c5da3e30d34f781df07a841658cdb75da399eccc0b3610acc661d3fc18d6d1f1bb0ccd5863e05d3253c0ad4f17e976087d341335631c372d9db6808e3cfce5cc775f25f8d4f67d681561ddc3d20cd2a8e1e03a2aec5dfeed4ab52f8bb461b2658c01a141d1060252e78e8eba941653dc2438dbe9bf90beda4107f950d4d869eeb59912a023e9012e710c957ab6ed32fea68c88629fefc002082dc381f5785ad4ddbf00d80e5a6c0a41b51b9d11fbb524045d562fdcd82f2013fba8f7c81c92e6a480b0467d797f0aa7f7f25130ab98bd5de309ad3f4d97fdc517b06fe2e392fc78dbff07654ad1d3c9532f6fcbef8b9b2d871c93cb73f5da377ecf64a1b0170f8046100d4837e863bbdf176626bdc18659698eba72165b34900046d5aeabe8f42e29c16def8a63d05cc56477028d89a24edb88fc53241c8cebbf40ecc4bebf353661fa7e60f4b3b36dc2cdc0f3ddfc39c4e3d052942e901af0b4d1c95a183da58bbfc677910964483aa8e8fddbadbbc565bd09a4b0ea6285732a36e31baeebb7bb873eaf92c1f074f9dc57163004b93c0c57c7e502b37400d5416db5c7b555c459f241bdb8f9314a12d848d3766917025fd4707e41074b7af96c1ec4332929a25aac0308d3f052b62eaa4256206a1502ad0af310f30811b629f3cf1eaf4a6c5961566388a1ca5a6e3773442b6f180ad08e04431c2cfc27756c726de6f31ac2d3890518cf8b11455013ea3310ad8971d76a80b0186fcd471259581e8d28e0bec109c1aa94122faabf4ad79bcb4e5509f2447108fd328a2f30c9696cca2fa74c261407415e94f4f7be7d98baacfb1afdf45a7e875567e4e55d423dba7dabbf1f3ac8483701c5163ac7f19fe08ea6f92207f0819c5648b289d26abf09f9a33b3b9998688b0fa7ac72a05af11e7a071648d2500a7b95f86db2a25eae126eba7285ec833f1777edb382bc67a8453bce1b8de18ada7d50a1b56011451fa9772a7f6c81ac1b9bdd6a8aa2d68d73328dd7b5d2be896859714dca7ede17f973f9a3c19a81583c98839b756ad9fa116fad871636a14c5f1eb34e13f1b42877f3cf335bbbbc2857fbb7651d6b4da0da1f762e729dbeaf1e0c96bf9b361a93aad70a07b54e3660149726e40d56d2c636425702825492d437330ba08f998173f5a6abd1f98ee96a906e8b6c37b664ab233bc9d004b9aa8cf0e7011ec1ef646e8fb422079764756edccf940c6e38723db3b512fc38f7cf4ac50441d628eb84cc046704e0c16aa2937c3efe65ea83fe328bd17bbf64d69506e4fc353d5efab233b5ceb05df003f5e3e82d2e2ac7a25a4e66a148fc5295aa2eafbea3ea20b9c6cd538ce7195d7ebd0a0e8ce07485fa30df90f91403cdd6743e3e665b36d2f0a081680782b589485805ce1ba8ec89d4e73e6c8e6be6279ed2cbdabf686ff9285ebccef4cd26b53590d27d9f50df9b769c46ef62b2e4b65b0bea839a5cfabec71a2b352d42fd6bd2547d63d36b8767cb38832287c6605309478f6bea9ece72c2eaafa2d387edf3c836733d389347fc9a653aa326e1b1d9561c4279bbf21d04dee6ceeacb119ede555cf3bbad28ef4f535b2924e79fccace607b5c7f3956c8d7f71ca3b81bcb980ccdf8603dd9f0bb960d344eb964a682f9ade1d25e6a603c50c15a894fc2fc36d2bcadf2c739ae075169ca7512bb0cc4dee8c0793b4b9728adc9d61484bfe0003c11b30c42b61e02327914b430f35e6f167b514cb82c7c860b751988035b81fe0df94064bab836548adfa1ec4c1ec968d1000aab478e147ece7663ab54472d468a33003b629a9fdccc3948669c4d87c97022dbff094519a78db1cad3a1a74df40c48341ececdbcc7aaec162dbd9a68e08063c264f4f13fb73521838b0150c4cd67c712b4c93d96f8392a83c59948801db3c3b705a0bce56ee20e5a08f4bc1afd67de882262e324bfbbe42563334fee394df8e37c95abb251f7fbf1fa4cb5d78b6f299d53d2c40645b8599f650d6aebab609c4ff0d1023a2e2e906198d378b0d2b96dc394c1443b8fea1b671a9f2a7354c96400bc720570a3393fc503fa9fba7b2d62d287d0f2785a434091acc2a9ec5610c627f4f5859d0b562afa181e95845080b0381f343c31ef148417f5a680972889bddef2eda94f42e8637956ef6730db2b6dc5242ff98baefeee31c894b36d2542873f2a474554c0892a3a8f7d96ed276decdc0f1b05d1388e319e1a2e9a674e16845ac23c3e61fd23139665fd0da12e06ce97dffb4d9e40dc97ac284db5c514a116962d120855fbd68ebf7bdbe040abfa647ae5beee507b2efd6f11f9ce61c30107df70a6b8aa92062284d7df9e9e7a5af95a26b3192650fae4113fa364a733adb5de8dc93807ff5d16071df5a8f3f6a1e61cf867ebe0fa049de4fae4627db8fcb45ca8a04045359e5ea3a77a9b417a9a191957a0cb18c466f31006943aa925d8aec840ad09f8610c3220cab4e1ecf41b4c2ed072373cac53bf9246c212bf1568d778387b50d1afe9beafa385def32d5616fcc61c5fe3d44d4cde28d3f91e92ea34ddfdff2837caf4bec54aee7cdba4d1b2221b22c8769cf8e0cbbb6a5d6e21e901f1825e7faead0883e21efa6cbdb539b1aa795126664d8aacf4a649344ad64bab744208594d3b3a54ff2b4f04cc8d7da1b5a9ccb7706b299f4ee295e43d4c1e662c8cb958ff2cfe0371508fe67c08c155446cc31f00715d772ca2aa0d7edf9040481d3ca70403e45d5edcb81764b68de90961c5ff2bd9d518552a1b626d2570c25121ca14b543e1b5319308fd35028443138fa37751b4b6368b25c909cd626e896693d135590b1e8fec23fd0ff0ac9058828c5c53e45025aae0e3ccc8c41397472daff1b2a4a9c018d71540ca63d10d79f83536100570b906ceeb727692c64898c33e1087423aba82e759efe39ec03b593b86dadddee9214c3d6573de7f3001aaf06979cd4f2acbf1b09a17c2b0c6e4aeddb4f61e8b326e480733993af266b5e29ee870144f01008722db4ece7526064bbec29e35a533db1e67d8ff96f9c861189fe4a8c4a536df38b38840c244dab765205a0b29b5fad3ccaf01e396b0035bd8eba314ec034fe0331218f0728626730e9dc4da35313353e9cffc111e0a3e216afcfbe77fc5021bd418daadd17436f2083b33de7203af2dc12b4e488e1ddfb6bb399268b9e3ad823c1c27c19728be269dbbd6fe9b067eab77a0c09887a97701e4becd65e5ba949cf5db300d73e05a388416b59f84a35857ef0f247cb36e43631a0e9ebef77d33e89dc7c071aa918da259a6b64c015750e19056cc61f6bb0c6e440bdb804dc2ba67e06e3b474fc6b72fcf52f6b96a12936618ee944f2d69f9e63f0ea449fe6711200fd79fefd409e98cd70bc40928197926aa6c4932d7930bf7e3081c93f6ebb39d214723198ef5342654a062779fdf5185b1b801869b2162d7a96e737f79604740e9b386d877882a6ae6bc55978261ba6d3d19a4e670e9173e93c31ae4968dc4293256b26589604bed8c99483afd8fe7be8db6741e44e231c9ce4d307e14cf8c60451eda215a706cb8a5979448b7317bca9469814b491c13b9a96644c0fe6d3445d0e4b7ed085c7cf28846bb2ef5262f03be0e07b31acf5e430d9823c21dd05a70de2f32a759e7f1128514bd63253618580786c41fc15f2b00eca6bc8809c9dfeadb64568f235fd9d73b5bb2be7e975494e5e99c407fdd63d70afc699a71ab1fb3d25d0d1af20aac2e0babd23769dc9f1391bd774f95ca7ac5cd21c87e1203d73f554b35054613c92b37188a28ae56295eeaf5758d7338d21f2b31623dfb79de0a4d47fa4dc69486533de06814bbe1c3216d3ad88062e1547c2ef082e18a42fe2a50f87e301f948564f54990c6678f627d2f45fb49963fbc93e5d9320fe1b1fb95b401ef2efcd75c452f33385e88f98b8c308ee9bef00fcda354215a2fe2103cd4302f00d4cacefd3a933b89fec93fa8fa458c695a1f4dbae5ea88114562ca82796e51a458b6a5de9b5b873031269cd356fe12b0ac2fc86fff527af08b20458f575a685fd98041331b2d802cec870ac9d17fd1ef96aadb1896ab996c5a309000ab2e9836dcdec401ba88c71116c5f1f9ad35aef729c4ae78d196015c5e23bd25b15a1a01f341577da73ba59502ccb2564f3873c1c6b8f4c521bc0ac375fc1608347792575226bfce4d80aea04cabd5c184a8bd0b07ebca99f1ff16e7d24c8be403df3c0211ebf1876a6bd341920d3cd352655ee7be0877f435a20baaf0bf3e4f3380b7faa1353740eec2de2707eae1e1fda0564e019c8038e7fd3a8173eba72245b8f22eedc881def3df8665ed4d0269fd44cefd4a2f4e3d5d0de23b38769e9fcc287cf9b176b9aa009f5292cab19e96149624861a0d594f1386053b779a6a8ca3e52e1b44b0aa96dfa789a95f07c8d74695d7623f3fcc7c07851c4085da8477f8c53b91262e8f6e56d8d134a91b73ece2be9e5ce95e258a36383f8c1f48b61312a604de06aec245af8128d71e30cbfc6a59919a64bbea4ff2b143fb2106d8e9bb63e3f1eb498e264f9ff8722e1561e98f363b1059f78c9bcbfb2a3dcef2f0e9ce1e55020307dc85e402d57e932f33ae5b0faf4d82f4db9c934417bf672249db4ec571b0c2c20dfe8c062e2470a579e300111032352f8699645a894eb1eed058abb3d085f56d76c6357964531cc53d56128c64579fc89a798dded5c5aef53476874a3b069154bba789d8e3a8f8b569b46b3bbd28406383cc8b5e05515f9f68fbdb078edcc2d9efa91ce5b0fbe532c0f0d3098eb83b7c92f2401eb16a2dcf6e49a3db61801b973695fbc58080f4315afcc76f8e9c7a476da2d29deafbd081104366c4b38d36b4dfe52d3a57046753009fa81118035e05268689ac9add4cccff46af2340ee12cfcc9242f50481bbe8ae4f3d6845dc776a233dda02e328a3bbac7365b5f5320fb1c304fbf9673bc335a26777e29f60b3fae0d9b54238534ddad353a0737b55824dcb3927bff8a498930de2b8dcb5ea2f7f3263296364b5f32cc2c3ebd0788a2cb78fc70a82ef057392eb3163c24f2c2b5cbc8371b27104806a6dbaaca8d82f0bf420bb02bb2976e80806326918cb6b5a3dc7bc48abf2762918e760eb45a4185a20c5adef0320c8b27b426a9972c4b580ffb87f5a969fed46b40c69c75efc2795d4cbec95dbe8b9f1ea78ad428a9799dc849f36c984ad3f84f3e8aa953ae8736ea637a03d719c40de722d24044926709d0b847cd1cfa7ddeac99dc303b0683fe67ccdb6454529f30ce69f367f813c936553b6f43012752c60809104eb2799562821d228805fac5d3f740142bdbab6452054fe8f97fba6baa3378f4c75863d9cc272b304c06c6f8b73841c85012e5ad9fa9ae6da2bf4caeb2497c0980f899a6f68fb3b554237e2710c17865fdeb5c3bf1154aedf25ffc8abd8555e9032656d37192571588ae70370897a77a3f0792623367dd532316fb2fdfe36822fe70fb62204dd7479363dcbf3be1a0d1870c4052e291c1437159611ddd935bc8c424a785ba1acd62635c029f3a019b6f27f6499a9040d0469e1f1b3bb33b3a41ca98a6854bd96036ac15d22e087e78b4d8e8742e6202756c6fa9ff730e0a56362b113702b380adaa6583610ca0be5311369c759793c9458e2c5f668ad398c11b252f31a12509d3224935a3d96d94d7cd42531234efb9bca624bdca52969f97749af18133aaa1ee30568b0c1dcf952efbe0645b225947edbe275051c1247675d5904593229c36735352fa1d679d48930257543ca745a44ef90ac23f3ff966d3a9b12606df2b489c494160ff319e1ccb34d479e7b03e80f52827f6b98dcad124eccc4f60f3db10f5c9f068a2830f36165fe63ade5e6116d735da355613fd1dea53527b8f4f04fc2d0b6e021d3720085eb103d39750e08bef47056d5ad22c7d1ef8da33645c516cba9c8de12df677bfac3002ac08da819e65548d76b46da67dab079d34666842d2f08165161d58ab7c3788a0468c231da30531da78ff92ee6ccc04fa59a409aa12a75fd2b06a4fca5e854afbb2f3a821d4adc35b5228d83a8a8be3f3216222313d85d1f174fd0bd35d7d9b1999ba8110f0853c0016839bf508c386afbcc450d29288a9a79fc3bb3df564cb62d1a45afe271c8bbe9763bd3de34b5af6ace1b35edc70f11abbf71f6f9e19a2228d460f175ec1670f098b1a667c4434b8f8d01af810120335837bc1451b0ff9090f396016b4be5b6fa5fc867513993a86e9a4e4984cc4f129dafaaa9290dcc9aaf3fd58ce693e2ce06e0ba9a5053845175d691288166ccce7ccc8f398706206ff09d396a50b02ed67fab27ce6e09b18c5a58c4eeaf7d4f4a6a7a8129135d366e3bbf8c714f13fc98c4c8d77594695df0dfb53f72f6258e6631af5e32aec28d997062d69280b4242dec5f73dd59c7e7e137a3d8ca1e50a4b5c6dd78a038ed1643e035dfd0403a03c6d1f399a659343b51bb67138dab7e92b94c580d9302c9c2460ffceb95da82eb64e77baeec873e68811d9a6964b8ac25d537997b8bbe930706b2547e7fcaffe671b6da5acf0446d1802541735b6b0cf09a3744a1a1fc69d6d2db5e80640c204e9704e797083bd60d4a11f6ed2b5974256d4adbc61ce37c20a5bccd51f99d9441f6f5369465d06470bc38ccac6318b36c0f8a9bacbad96a3cd0ebfcf780ef19aee3deb95400c4dc4e0e3a43d8eebccc5ad6811ec519356f40141005a67b8027b1d831873f953264b109f1a63f4f6fa3a1c3d54f3b5cd115889549a21cc45564259edddedd4a7c0864f39caf7f23ac69813d75e2dde9d632efb8c37ab4a761ff41caeba22d3b5e6e8bf17ca8feff3f8f1b55a5e0372b692eecf90ba8948a16c7bfefb36b78fdad105a2430bcea631cd4b562c9500b0c20b5e0bee669f462f65cc8f8b802899a9cca768eb89bfbd56930400793f1eccdcab2b3894992b351fd87e921e17a1a369a5c45ce20d3ca49ba8f83caf87f7c016dbb98e5711a7f9821abcb5f388273b95f0be3e1d7b6e2d8abddfb5028bd762f57621d06fc7b07bfd359a77503f38815a1b9db438b2e605856c9c7de96dd3aff08cb7b5f9578d344a673e0cfd5a1c321c4e20e0ef00d7f83e2078759f8062ccf4e49fd474fafa6ab7ec605ec9a08fa6f11ee52aa5225fc83d4a853da37326d8e35b367c440a5cfba5240c56047687c62414f831e0d006375ee9a191389cd5ca100e5965331f7aca0afcb09303ed2ceab4f687bdcae3c9c25060d4c8e64879d5c451ddffebb563c7f0aceab6a0e15b76d2f49fdcb202587c179cfc69f7257258bd81b9ca7d6826aff3cc8b19b825399a6794139089e469578a8a136efbb1f45aaa97ad6addb6679bc7abcea0abbdb1f38b7506eb66204e4bd5e072d544c2ef94b0967422635f1ec3b001c3e7de2cf5080fe5b932028e0f9df931dfaa6b178f88e8c5c8e64b47eeba09ee528f3cd23c75f43e8a523d36d7b647554e6cc901ccdcdebac48736f3e8f0be4579f1b154725ff22046ec97d36b02e91ca416ff15be2614346b50a78fb415d13183ceae1f8751f26c4968b7e2f056595cdfbe6ff19d937dc35f0c87895ba3d81d77cca8ef8ecf941b06ace84247ace83e71b8c00eac7102491a9ba2b646b87df6fac9996eef1daadee4889766b1f039eeb8c55daa6d6a003d1f17280e240bfdb753177ee0367ebb93a788d7139d0fc388ddb4f7b6f15cc8ca061f2cf1bbd2aa4c58a1d7df6bca8186b777ddb4b47252688018ffe10f2b1ebb5cfd2803f71a69bb71fb292ae8be6b8309f183389a8886b801812da8d378bb2ea3437892962635a602ff7f7c10731cba813ac982ed26525d51b8fc798551cb2802ecda90612b9a18d067e57f7b79ea6f01f4506d80ef7e2986072bf003e270e96d3cf41bc8ec3aa6456eecc559e060828876dd57da3a2665b57a3d105ffc3d184e75ce953f774cd9aee12ad530d3bcb91444dc486d6c3aa4c46cfaa0e7e4bbbeefcc544dd98418f1bfadb6453bef72eb2894da9d1efffcec2f62ec8e24fde7124c58d5b6d5e17cf00708b0edff73a7ec25dc0a4c050b842efe5ee360603db211ee488734367e6afc25bbb71df259b654df2dc2b07f7f3f075e7172bcc01180e90057006f8fb7670adc2671ed2c01af0f166afbf102cf6cdba41f6ffa191caa34d145be3d9ecc0edf589507989b9ad3c0c28fd4ee45549e3baac576cbf08ffc034b30a11f615a8b5c5377a6e820a619f559e40ec0a94a3d9bb9b267ec5b5a37b93eb26c43b8382121d1f1ffb68fe0ad25744c91c801ce04579406e4eab70b90b176124720ce0aa575b2e9c77386c46b8a83efe7551df8840b3ee1d4f95e852fc0e748409eca5d008c5d6238c57f5168bc812cbcd0b4dca03b8d76e3d5d6c1b178861bc5ce923eb00d23968e33aa246a28bff8647d9cd60f47bafbffb926aaa7498b932b3597c547fa35a88be5580f6b513efd55cc5e53deb06632dc6347cf15672fbc2b9ff235ebd55031f46c1f3f1ae3442aa83aa00cebb5d6897128df0af4842cf35f8d5bf3d527623112a3eabb59940c049cc2ee686b33576c7918bc7eb0618912c92baac0d248da213295a878c0d9bd9e13dcde8f64dd0954f434be26aa207d624ddaf46ec58174fd2581517319681e1b140d989734c591afa3b32335b774739132458563237a9513c1e16369e2869d78470a331408305a748f5369bd9f9a7be7a60d282175f698665e8b2576ce32a8bc7c678b3b66bd717982c130c69f23ac893702994fd9e6a82559d83b8844106fc224d866c2a4dd335b8c0cdfb6e78f45e95ae70d9282c5f78b94e56cfcde2d8881d6ff13926e983ab5802ae5391db99d69e7cf21dc34457810f4de9bd3ec96163dccd2e27744a352f5748ce418d90c1edf9b05a3dac94f6c5ae25b52eaefb561d8638618faf9c76be745c3214c2797dec894810574ae5465e0cbcb68501e8706819f114190359bbf5f1034f77208dda70dd9f47b5a66e78f70a0f29f5fe49a2cfaa43d0097f482a815badc392ff0866594d060f92706ae642257753d785fe868173e46c479060de3d66a28c26949db5347c63f9d82b79f185b6876fd5ae36f38615a0afcb68d9533b809d48a5aef0872f06b3d4c563893669f5042ebef75ad3c708bccb295813daacdc9e2174bb34103e5537f77465a1d8ce6110cf3e951dba3478683b39d2f31ff419ba2176ed9a428a5767d541982bf9303b0b93e1f650467daa6ba9525b63ec159b7c06fd399f9dd6bb06a07042a664683b6c0af9ed3e647f26902569489bc500c186e2874a139e32a422d826d5f375e0eb012088373a6b8e2f0f05b46f0bfe061fd93e78d91eb5c954fe719f444b1d4f8af1994444e4f17cd83b20f6086a3f8b26a18ee097d4d35ab600f15408f186628c9c467d22428e7be0b2a613abcdd2f3ba532c9776f4f88aee118b4730737a4e596a4800ce7d4f19d97a1e27f55271e2eb9cf2938e35da48ba1ac76d70c6a327cb3175f503e497aa9d70a5983e8f1b9a2f60694d04afc698356719fb70f0105c84387e8a9038beb52a4cfe3d2622e9f366f9ed804872f14571764384615ecbdee69b3a4e2c544ad5376321e8d8163f83f7a9f8a3f75b8b34be0c019bb38ba808dcf0fa81947280831ec3edc87591404c234fbe2065e1ee71a117bb5d926e8d7942230bdc6ff2044d2484a65ead376701dfb3ec4b78589994def45a97aa07e85e593449f0b98566a68f0034e77297a07a3f258d0849e6dd28c222d59b5fc00598257a657fe70ff54aaef1554646c1d65c4806cc2c35104e02b36bd14cca4ab64d4287410281b03f7527155dd48fe15b29bd1b67ee7ba97668e1abc880b95022c10c33eeecbde6c05e34a83fc5d18c69ce853838a21ec9c1e14a3717f64e1afa54368c5c2a935ae6ce2709c1d0545830a6e3b30de89699e4be30a8031a52db22af65dc2aad84db13b417dbabb4ce52c3bd1fe4243d8abf635426a4ca9dd34dbac8c6bc7e8058abbee022e84c2f4ac1259b8d88cb02e9f5a312f43f7faa8429eced55f2a8fdc03204412e62d7d46202bafeb485f56302534fa8dfae452cbb92eb63a8a01cb9a01c204f72c0a35ee1e9affa992d04ca591cc739056d61cd38feeb5124230e2e184676a2a28aae1e65587b4353c1016372d4711f80591c531ce2c24815f83369ebedb0df22a8e8c72c944e5dd91cb6666b56b736c1518d98e1434fc15bfdddf7c95e186fc23664a0c52c5696b21a2e6b6d940056b7b747fee11a92223c274afc425f627762be2eb3a1a6376e73faada31be76a1428f0d9aa20b396759ce1cae903ce37feff912c82d23f679268205eccc7ea18a258e9103e45c989dc9cca5675add218b3a6e5a4217bf3a385f44857cf6a343409b176eb45ff3d067d7a947957abe0cbf560aeced4a16885a5b265f3b85b0a8fa82afd8cdf9cfe08b04d61ef9c6c9e2589f75dd703fa3d6f07b8af1eb8c988fd7663d67cd8688a8eebcc9b87cbc9e999ab2f8c688b6b7169de11798902645a501178e386b41c6298e747ab0e4b41080dff301f4d277f5d6628539906b0e12cf5c63d2ace451c715157ae75aab7fa4b0b21da3233a3dd43a55f49fed8716514581511daeb5d1ddabe1d99083d4551554511413d92baa21419dadbb9ebcd0c77d0f5ce7880255eee7998efb38cc88d2b3420c2c3cf7687a5a92d745815b7f2be6a61f8d543429f300a70531a9a27c7e1cf023ec89f7d3d34fdf1db986fe4faa6e0959cdeb8926793732af3f0e3776709066c2f5146ce2f578ed0fd4e8242066e4353f4e759f2823f47ceab7aa2386314aac680dd61f6bfa4210441b6e928ff21b8313167c2e002536ae202cd67c61000f54269e8c4231d3062bd954bea2f0d8eb0539129888f6cb516f49b919b5495151388d376f159ac22fcbad0ac702bb13f7cb4391a68ec9f0fef1657b5c383d492388d3096c4d5ce0b1f0c80d3082819547b537c992265d87b739b81220908a44f98fce6af94cf498d0fefdf0dfee0fc2b8f69d51ae713d1666c29d24cd2288503ce8935576972a2a358fca8a902c42f3318f2fa59945733664defdda0fe0a2afacf3d9e91a2084295521ca7573fa59f5b03992a6bca91a14c9652d62446c2e5994d7a3e6785606fd28e0e092e618158724a60c174f5ba1f30791026bf39c6177c95760338c12536232f86b8338c189e016032621f19991a8de1895ac5e58b2e98040665a5bc2c2e8d2375b307da1db262822dcd0d3be531d94f5cf5d1d2a54c2f047a40a287bcd71f2f3144372ce2ff758c17a9371605fce86578bbbc81ef5c6c2916d952fd0c5b5f56a6aac735de2e424c325c0d604eb4f0bb35e89b8b8f4f3563e876ffb90a2c10420b01d8098e4f16c5fd70d7aa447c49af9bb8acf0f39f5d5affeb541d15673a1e8428e4dfe56173297ea18a57fbb67515a2e08586e76b0136fdba355dc01008ea65fba6d80e6c31f7549e16c08de05bd23c850f0fc35ba41da721d28f6126f03e838a182b13054e6e4fd4b3ae32c81fba0e434874f28dd7107ff27d80b571c38e8a20483d576a0652b339ee23fd050290c648768e5589ae8841d6dd3b5c83636aa83ec0e06346fa749ad08500d4bfc1ff070a459eea7a13fe105bc862de54002287224d4dcbeffa9d45a17bac921a28493afe8c5e6875b58259b879e183b9411d094ba0256fb7ffa0bed406ef1587326477134fbdc5c601eaaf663d74be2db10cbdc82d1dc45941f39515c284e0a36adb1266c767103011af4ad8b5ee78d96fac3309312b42cd6d3a17d26fba836c49772d5fa3fe4f5bfd27ee05cc26ef4997d2cf7c8d72c4154109743bec8a0678b8ab6c64b58c13dd101a20dda72be5b8ab337b540275d460ce76abf284ba7ab0cee96fd5134fee0a394facd2ad2003166270525debf4847742d578eceac66f45edd5e45ff499ac1517f01cf16d504b7fd2bb63ac9edadaaf4f69e29fab011e6a8640fd1d0ac14f7305fbada8c3398ff7182670ded6ee82e69df74a55d6c60b4aa0fbd7641ba488146eda3481f29c796bb50497e79679cd4a42570998b8d3bc035c8a08a53d683d4cd4054f085c5238126684fc55f661b23e9959a277c355847ae04f63e0a38e626b4e16a9917cd7670d2db33c0d879b5dd714461ee0d60469d90460037f0c560971eabc2ef54297c5c32e7c5fddd536835e817f2307ddcb313e7e8d1ac9202e23ee07d0d365ee98cff8e24bf04af7e9ebeef23d0a8f1d5e5edd53eae22020984fc07c3434c7bd25811821399424fa1f0f69bd3a842f0ebaa791002211a5399cd5550be91229580117c7def1c6406d41af3f4e3b37fe7da47ae621125b421355814afb0ac5cbb16a93243d6a796df0498e1772e2854a6b42080287ff46e064c6d62c9cab9bc9e7f06c16c3e5d56286c956a95438f22e0a8206ed4ef5b6f26786c0879ef30e8143e5129e3bdc1faf510309a32d501e3af5d22ac6b48abe4a4ca0c154f46653c99cdb623672078289d5d2eee26f1969c0fd8dab308ad9d1f2a28cbaa0c9e9db3c9924b600dce1aac3bc4a754bf0b90165ff408f457cfd2e566b517e5279fe64ee75be9fcbc816b072e734c653eda0b0ee36eebcb1b8db364875314c84bce08145a712dfbaf4f532799193fe355fd494c447c3fffa8dedbe7c42cf6f5d65e4c722a36f824f7fb6c4ee4bbb2a1af7bc9b00ef2495569156420d5505c755cd5f4cb87581078f7a0133d3998be39680ccca130ffac235b6aa35b78612d2c237a9ef54392cbe3e6a52f05081b1a9c9131085d80740c1c90dc4581ed4eced2a49be7b753f9dedd50053cc583e3b26dae229451359dc2d1ae5fcf117b24c40b10a10fc351e0b81596e33dbb22d84e4a378753036ba727136d5ae6a7e9e412fcc9ec750ffd4606586975a8bd214bac7c1a0172f7a29c2d601d75ffaf0577eb38e48e2259b8da45865336672dfd2ed2773787b4d03fea527e1db8442321a27a1faec7c23f07878a602e6f88e1fb5a8261e38fab110a7a2d6865fad113911aebb3245ac3971696cfc1aa0c4262a1dfff49660b10f2af5a109dfd9fa0c12e9eecf479ae72a4326180d9ccc54a063b6b9b417d2ed5533df88d2384a8bcc0d620522994c454464e9115df6992c12a57beb758d80cb92baae4d867aa0d9d72e908990d8ff612a47fefe9b6af711dcb493038bb9d035ea04c30457db671b9b5ce7b6bef398bb17780c5a8019d80df33a8438b84e3f336ba61526c30001eb7376cba6fb59518f5f42fcef71986600168cf4ac39d384dd0bd88a1b5c57851c747b18df68959b621310eb63e9693ed59165d1c6ff31ce83f31465c45361edf10600fc35a5f70007e0fc32baefe3d4572a9b5d7249584b0c51c8341943b871c3fdefab823cd79e943f99880e889d61c85117fb9f0dc5820e74d0ab931805f20908c6bfb3cd5455de912fbd8eddc0168a26525001a91f4898f430c8c72dae150fcad60f0d4f85cb3ea33ffec2dfd364f315e57e0ef0eab32fff09d2d0e8c614251395994b4a479f180a1da58e1dd40764af8888990f13f3d93b43693ec1fc3e559d0dd4622650adeed6f657d0c34be92a4466e3adc536b64b0b6329da6a500076ec9f3a6a181b1e247799ff0cd86a5520d92866506c159855a64510f7bb8a81b0353a97f2299c5beef0b2a7edac3bc92a8708de576232cfa42e03719baf55b61185291c47097d2091acecdb748fa1ee56f680842ed8578c45714ee6ee9444f4c981d3f9ef7e4148616d7f0150e40bc67ac06bd031847c5871d8560f1229acd4509a2cc86290200433faa23a8cf30d9ea6413381912740f545e27dee66fa9b4ba27ca56761fd8bc8fb9929755e8e68c67faac474b785a4940f73f9cc32258f57943427e1f41e8a2bd72daa3adc6c941c66ca57ec10807d5d4cec43282719715637acde83b082dc1b2027a4048040f38f50170b496fe510d463ecd1c8cd2b9ae642a6dbee830ee5c4c5e2a8eb6d855054f494b847d9b4ebe7e775f3b32de42eeca348c2e13e902699183344d03ca560e51b518cd74916fa8fab14f53b5b6a716deec38e7f4d0fc12b589f665c3bc3b10a24580338c3e76ff7028f58bde3874fcd0cb39a0a0de7e38e9bed85eb6c5d69b68fb939cb8ec4eed4e3130f02777cf89ff4372929e7693eb00be58e8f65e9891f11124b3b887500d02fc9bf17441683c7d4d9ef8984b2df3e2a5e355bbe2d7aba6355a68097bf2f212bdcde45abb68a6f385e49618d71e4accdc731aa66dbbf45433ff6deaa9ef9e0f533280f9422eecd0fd1f2f517dbca062094a52a68ace4cc3d903bb72b3f90b46ae7261632a2948c60c0c0efead0dd6962ba43b684a21e69807830bb5f493a64e8546889605768896c7ad7e4e94e98357ff08b655a89bca931f785ef4fa69ce662044d8048f788e34f16f52e2279c72131399cb265f0b540f5dd276e857795a9b458b9aac64fece3181675ed6b0b8220c3cda23028f54b3dac2625a120ab310c38f20fac01f36d37c1920fbe0108f4578529d8c2dd7176b5f9e5fd620eb4c2f49ba6d87e28815ba6f0521877e635141765ff1794ec512d317d9ddf864d6d7e6c7aba2b7e7ea9fb52e9c14e32dc757b2cea6927f3abc79985592ad95567953da7249a26135c6db8956201df3bc6118e68636e7da57b48c3858bb7cc22800e5a4515dbd41a7662d10fb766b22a5f1595f43e665e68d77b288b3afff5b6e108a514a19bd77081e3ab8f54f9ddb777edf557af037a5c53a782f0604257fcec31de0fb00a6081c256e038499c1115bfa4b32768f0040fab6ed2800050711c99449c768442b5c3565bd05365923b895e644142848f97ed923f844b9a062398b6f886f71d501be60ac3de92c4424492c4deb4ecaccfc4ef4b560a657b4d8e1d35836b31ec221df1b0ec76ca9b081428da19ae752a1ad437f82954506f82339e85cc365bc9d8b549e72dd60eaba57a44d5a7d19b6eba013a3ea4d6d3b03bb3498b884cac3025713b296c42b5bb71773f555efd3f81959185df0853e4f230b09536e4b199677a6fa1bfec545124c703adc5cd6381348e7cfef168e2c62fe95b24bb9dbff06409c48949a5ebe9fcbd6841552111ea38f3d5be3b03f7d933cc170ad109d1db7e592224f2940b52babfa646de5de906eab970296bdbfce87b11445e0ac5e893e81ab0f1589d0e2e42dedee74d8a44db698e2af5cb89c8f3fc0f878ddc0d849270e3b7deb8a170dbf9f30bb9e28d1465820b76f33fb7d823df3c31594d9a6dbb753bf3a4dffd99481b933696bb0a623c2714ef4fd960d40fd020c6a5d15d4b08d2ccbfbf201f7e92508f719a611a7bfb339d31558c33fb4b9c4bb8c8125b6ac0737c9d82bc6fa128671bbf0b0faf3a8d1de944cf6479d9d83bb64d0cb4bc0a880388bcec56540285b30a296e11872a007ceed369681c010a845a0522fc62bf059bd5b3c8674ead88be117baed49b01ebb0021177fe4c6f566a019717b5acfc6d5bfae66325a70e5ca7cbd8b67de95cecd260e53921e1385f93b075120f443ddc15f9df627b57ca4855243404affa20d701e5ff6eb3a5ed2e8196f57038680def1f40f7685475f7e2269539296881e6ec3a3bc2d1369c03fb42f8fb163a26be68906d9d6e23063718fd3393dffeae4374d62abcbba490c04c80728ccce7a7d0619f10aec9976f09020db7283a5e6abe438d2edc511e391abc31a35dc243a71c2834581ef9e1c7e7ebe16a8a8e53077a36a8baab6a39e2096109bd357adea3093be2aeefce85000f764c9ee773357aad761f8215cc9f2e977c8acb57a3b5a9b65584cbb926a6bac48f1214bbb06719c96eb927119a999b8d5eb4385c362ae7f19d51fb5159ac4a2d2403695c7d772d22ba514be73c777ca8ee8220775bb9a2e04d88ac64e8aa44c8b9fd3ddef2b340d944e45219427947d4f70b3a317376b4d6f1e3402e992cc027c867e5a0db27a2804ed50e3cafbc3ea1e9fb338f584542b154a09d6f5885ddf44aa3bb1fd6e9c6063bdcfda08e6eb7ad171f1bb9d86bcb5a87bc38c68871c749359fc3521fa8af4c9f6e94964c8f87d948c8e4464d46c4c4bbd74309947587cb02bc84cddc95942065d41329725f2cc67518685df51e122193d6878c409f187f4fefdac1c90916c1ea38ae48011c88a9e4670a16ad224909d57dfab8a0d450b4d4746b3c9a6e24ec59d0084a1b1be295fcdb884a4cdedaa5872754a6e9a0336bcac1049578c0809e7451b51a04d99f52728caa0f123edd33fa634da58982871d7f9b6293a70f0ae238b34d2c8efe68446d1dff7f7f2805c3a3aa57216b8a26a485a9f766ccf74bd4af6045c8595129e5e217ee6217a3d4ca6ed617bd62b66234be9f79ce92040cbe51b220fecef184fe845c8fc1f0ffe63d412fb9baeefed8a3490e5883392a88daddee81a30b40531af872e87642270e18879320a15a26dd1e7344003ced396b111827df92e7c9a1252e12e1ba7534a327a29da3a67ec35c05e3836e0c5f5c938b38ccb63e236c18fc6e5219a6396a1bad8ecdf78647b0d162745715623540a04eb7aafeff028ac6dd2f64da156660e0ec3aa4f0db187801be36d966f7b931df34341b4a51c7dc5ed92cbba4b050c947fcd91567255ee6861c99b3b0461ad8d8bf99e0e5fd264d0abf5467f7f37f17bb8811291823ed930e2204dac1eef0c95678040c0679fc8dd053f9e83bd7605971adba92db5baf7918cc8a317f141bbc1c6ffb10cb4b588f67e88cff18f9132970ecc7bae3efe46d394b2c301c5f99b217ad021aaf36b4d9d073a68ce401de17203b8bd535da36ac7c76381126bbbb9090e02f357f0bbe78999969b7377ef8c04d0f7f0782f23950d8176609bbbb2a2ca83d81fc5f0c341401e30a9e8b8a369585c57ed6e31600057d417e26ea90ad5e325486cf04b45df642a6f934f8c19175af498bb9ce71ef6b2ef8823e341743b88017d686cf426eef0b10e26e331f265d469ef3ff148846823bb9fcc19b6a5b9855856433186f2e6a77b9e4c3f70172cf53784b4ef34a01afc3f464ee732d6c8e1eee46ce64c57bd70c402b9edf83329c72ef3f3e09fe058ce70fa70f3dd4624bd6ff008cecba5a07435f1d9704a34fb53c9cf93f3269941e3804d33edc7b38550457231bc8b554c250a772147c3ce2260351bcf546d839d861865f8eb04e57114281b09c4567fe88c05749ba0cef817f33fcf408cfa3a48a4597a06586524156659cc9d8494627a89a01bd4c0b06c6e1dce596ea451bf287ad65b55f47abc2f3bf61d9b3f2de0e4d5ac750e477e2b0aaf451922ea9ff6b96052eaace3ae8012b70ed7cc2335ff780283dccad636f763cf4de3954cb12623ec629b13c32e44abb2377a7175a46916bfb3809ddad0d8dda99b816da8cf7ce0e7cdfa8c336062a1891bb85c7e8cecdb181fe5545b419827a0132f8187d187fbeece22286d5b3682be27f8e96f8cfb678d466370253047b3b4631d781fe4bdd3a245465eb5a6a2fd47d5d4bea0c42ca915a9a5e6b615b7391f60f132998bf576c22b2bc1d20d8b3299319b5dd029b83e8afa2b3caff5004f3dd74206ebebec89a498acf9d7f95a0bb73e", + "0x7c0e7f46d64d29bb09077be5c681fd8ec96ed2ce4dc2829266490109e8fd4fedf74293e1399ec2921fc349deac7c3731ac0b353f05a301ae2319507729f210e2dc25b1679f469c5598846a229b9103c2b3158a19906e1246677210099b509361b81bfed44c48bf8afe16ed3690e9fb032f78ebb5cbd2c53050faa078651115e7be002bb257ed436120c041e67bd457a052ec4b4fa7ffa6297fb0d788e14ea8ad43f9e56b2d8f1a6393c40cc0c23306c3b5516564ac55bad0993b39461ed879a941d285eb0cadb6642cfc3599bdb4ba86d596e98971643370c7451d565f93672bd8f190288952966d8776a6b138db770e9131b8fd25397cca35e9519e9ab0101bc9d701fd0bcedf1a842f66a1f4db5f91ae271ac109fd670b962c1090faabc94ef92d6b204db78f2ac4d30bf32547d6ac53a746fef4e3aab89e8f53295e201e4cf4685dd0e045f1723095b05df5823c088d2fb203ce6af12687a7e64fd769caa668f8af56a6f75a87730fdae40016d3b4cc48ea2d15e6308a8dcbb6812e185747a5079050588769b07b3c0cc1d6c189bb64cdffae5b600b3172d140f65b31c01d24ce7653023333abfc78f5d77d6dc8f90ec2c140c5c860dcfbd928350f44d227fd6f694f82522dd8ed9866b7eddf7ac564be4a758e71676d702d4fd62b4a273e6f6e24d80c3ebe1f080c897a914ae9cf68e5a28782dee5552028f497475bedcd5ca81451a884b5d74e1205bdcca32766fd6d784483e3674fdb36bd372c2fe180caea3fd2b372246281000ac472d1257d6cbb30e1081389df76e3ac835a7026d863117f7e5ae85013a9946a514ba3aaeee105d45d997cae184bf15fe883dee7e9f6b6abed2280bc29905a3f29939dc3ebec92955c54bbc9d7b689215a0e41e9c4f475a33f63057a484620c12e7d9373f0017efa2f6b54ff789978a8d695297578f3b84267c83a4bf19d7a4d21ab11aa73f810e13ea4654a9ed8788fe5678650622f1bb93ed0f040f1ad59c76eb898cd258daceac3d7a3772cde90da6d07059e2f0459d900506cd78f52adc544aea762cfe1400a5c74a91114177f1befab44dbf075d046d5ef1cc995a9194206909699c8f75539cefa9418d5743607adbed861bca891a237a9a311ee97bbb98fd240cd9138a495f481f79eedea6a8ea45e1b169e68ff19244d29dbb842fdf13fdb7f3c4cf03c69b53113a68cf32dcb31decf2dfea2fff81dff045025957ad38f8a7588b1ce42df88c969d3f30b9b55264595383ce8bb2157b6b28a4cc0f50c20aea6c1af6832671e199bd9eb3494d1afce28d4f6f1f18b79bf191e95b65b70878de50dffb5ba08538893ae90728ec7d66678b65b17d42dd63823f0dbaed83bd95e0c31dd91252ad08f0ae983506e1a8e3285f7e6d779f00696a060bca3fcc0cecf87829a3c508b583b51df445a74ac430616c52b55e091632082f6d6d4ef1bbc7fb119cbdb3377ffaf706107a13905a3ee39ea9bd57a9603715d0de344b7ecfb85fa3abef6fd6d44a09828e33abc0ac3a99ad4c64353ac69fa433dad3b89444ae7e54f55f8b8c953d7dd559fbf7b1f48299f0134acba215f7de976e1c331399b24d3f372b3841f7bb3489aaecca5371c145efdcfc38951f8931a0ea52c87d055ab98df01d95e5f36a433e2298352b73e46605dde5df1263527832c9288ee358061eebd02847bf418b1f99db809d12bd64d336186f5da1a33f9c4669b2ff06b5620a83227af2d683cf3f4015f0604321eebcb225b29d94c701dde6dbb3ddcebf832c09e3fba5f49cc18cdd71b29ce1b0498b880b33aa8993179df161a0f7fe55cda316b28ea9b5abde115bb18a28e2645fe232c41903ed1b74af3327dcae5106ccba3e4f2e6a448bca43ddbf0a7ad54a97ba78419346d6e929fb3f170d432444eafe2f1bc3b9e6be6cacb9c3bef383c86a2ed2b4e55107208ddd0c79059823f2ba12b2f0ad9c454ed52efb3193a905c0dba247b46c4cf4342390814bfc7de604fb346387895b72adc4c5d92fcc721cd093d414446776fba99416afce65245328269712b57a54f16d45f7f4241db3657995b1089f109b0ad3754f13d1971ba038a3c19af06270942bb45f2098141d04c1d751a122838bfb3f02568e8715f6e034c196604f79afb2d0849546dabc592ae17a2550f476638ec243ca0403a9bf185b4df94f0d462625a89cf636f16b8c372e92da82cba1ab5fa4075f8422768797097e52187b648b58a47cd6d25b36f55ff6e143bc4c87ced92607e33806a4e34f70471c31e16f85023674a0cfb7dc40329488b9c18b7dc68387d5d9e4e8897ae21234134fb0782af633be6343f139380493177b2c0a62bbe1386e986898bd346c77806ce755eda307f945297d4093eb03e33f47caf1c8064ffb74c02593c54b2f5bae5f3ae5f5873d6afd34b1f572af66498d0a881b694132e8f8703bc74b391f399f44c1247393cd317c3d189884091de840df2fa6346b40cb6eec1ce8a491551bfc3ce370c1cf0282f105e3b106d08bac86356dd6c19e14167a86f070eb7b1b82ad097ebcf859b7b19bc79d93b22a7c902bb1784a6b1f6ecd23040e3c15ee4715f119a66df5d8baf315bf06eadd4093e73b58eec7f5ab48639d7bebdd5e807c8606f15027570756344980ed2577dba55ed23cd16f6816c05993f75ccd6bd38c74f45e2ef3ced305753b030241119ddb32f8c10e81538c526fbe1e178be8f490199e58bc12beafec0bcf5a044c72aec2f8baa04f96bb60801ae88be92cccfc74c05133bc863de62d33f4cc6504335853028ecd5f9a5d5053ef2d49614923510b0ac887097bd258bf57dafa28b324345e36af51396b49380a1f4b9ae74ae3b73eabe708f340780497046ada146dc61b5e3ee1b6402f09132bd3afd38bc46a3694d51ec37bd34929b9130e5b6a58520472353e9039e1c975bf404bdddde2aedd8d7e591718e8c64c388c68ecc5805156124979d1b52b00ee2308ae8900cf3e267c52be8a53650e1ef7cc9f281a4725a7bda1aaae098648403ec5bc2b8f71b0ce3038eec6abc825b75a0e5ef39542c0c4cc16a378856f42c956cb363a4494e3bb140808f1d04340496428375796fadcb03fde19f09eedf5bd45ce33652bf8a0158801f354c5e2876da21400a96ccc63d9a95d4f0b03b350cc719ab7b86a8e9371072a736f188ca2cfa800249b4dadd8a2a1f646c815fa45d2c5eb3c531c3f9766af171617dad150654c0855e163dc2e15f61590a68819d10fd2a0e7c27ad8f9f0368b274b2258cc9f67db68cba1185f2f1cf5df53df9ce0b7c0f2e5b246604544901e3a54d115f9d397e32a749fd7d7331e6b70c9b841ed8d6326bf3249c767c4ee2e51c8206a28de4dec69a5556539ca4b73d617874232656c1d6270cbc9fc3afd730764367c50be956d5e3e7096caab34789baa2fc3a461e9fcfae99003317882bf64460259969aa841f126013ab5f657a9a13fd0e8bae7f828595b0f9892c7595218a6cffc860d68c954ea2a1b5802bb0fa1a936cab7ad7d759baed4597f9ab762c407c801a8dcd8b6bcf95434e56bf5e26b27bd637e6ff10d8528e78b5391dd440d4ad4cb4ef9b9be765f3b5802e0e3979718b8841d55042d163a665edeba9c0dea784845d6b817010f0632c73d935b81921d767714d302f014ba74ebcd367293c8b1349f3480acea2e5ee2fb32c91176942068faff93228853736a937f7f535e34bf7aa49b3b7567ad0b86cbd81d4154d87752250a6cc5c57ad527aa922e1aea723218e4c3c3878e8cc110951353a0d4155299618c69082f303cd7f6564181ce844714c7c5830764a0dd45fd828bf347c4790cfebf002f443e50ca2a48f718d33522121d1dd92d58d561238d2406f1ca3ac15cd8e5ef7a8f8d32768a9bc3d3fd9e5fea6a78889aa388316d4afe6c1b66a0784bdc26d83aa73a047684dc4ed8c9b0b76f3977aed8af901b0710d8706814b8e37b1e4207ee488f460ee5cc8c6e3bbc46b1800b74f27b951d2158414e19ce3ad204f5e9e907669cb3953d3aaa6a7d985e8169aa691cca58983bd9482d6ecee80963776b0d6e634f4bfbd1f91d83baab6928cac940d50b7d21a4e564be985cc5cf9fe79440fd8d493af481769f9a16434f9a544314f28b8ebcedea0ec4508614625eaceec5c25faa089c61e61ec60d7d0ad1f6f105cb4f6a494356a65ffb0c57ab4d6316096854c66da9d636bdfa583cd2f60952b8cf35f644d91e8bcdb369ce611f951f826182004d077b0bf5fd1c466a6f4fa5ef22feba4451bda7a30c40fac5b5afd327f7d4eef20bb87587ee2ff466bfad6e8545dec72039a002ccf9f83a415404932155d236e420db3750472120e653facedb52e19ef643f7ae30157b0d7abe77b3df57aa61def53641ab82fbdd2312352f66b24cbd10eac21b5977a7805c53f003de2beef6bfdf0598cb013929c2183976eca144fe22a82883a01410e206589574006cf9b1c863235d9bab502e8003b88275af1e07f7621710f7d9f1bcfdf0ad0f93220eac75a31574ece7c8726b30425d4a1ca4819a166e55654ac7eec9a3ec33eb29d8758cc9725fe90987c3c9dc0cc8c7e54ecb8fa872934275cd406a1274188a64a8b90c10a8e42ecf63d01e070ad4e0c6d8e737269d35249ec7be003b65976fb7eb4801d2ffc34b1a73fc3627152771e68e4f9e401405d2e8cf5f00e65a84ae6a18c127685bb324d605cc2adb6cc4d48219f0bbbab7987e6177fe1497d616af683a8801a96eb618e1158b3941d0178751684ffd77a6303abf599114ba4e3e0b5bae7db6927c22878c1a03db1156083120db93fd8f1a68c7a68b5145aa4bbdbd99f3a857978d4b1271bac7fad30a960c50373c89fb072dfc5e9902fe2951b2c03d629b70bba856bc866ec885e6064e1b572cfac38f6913c2c5c0addb4d401ca0e7514fcd53f868a98db3bdeaeed6940661cbd900110c6e94729f44e1c6baf4ef63fdcb417248486fd7dc9f8587229981bf17f2e2c1094af8a9c3fe3bddc9878408681928057cb98a8fb06c4715f5f69d6c689d48b65ea5b2a0d40b34c7bafa80193021f67579840cb37d322c3da8f18dbe717e4b32e1b3e1da90b0a0cafbc656ccbac354f044ec15b792166f6fcec6ccab943526662a9ae26f306e421dd8bdaf1deef84c05294a3696da9da8eba45124afffa2952275083f3457876b9d5ca54f2aaad106dd0a231826fc039b4013a1b3d76a20622f57c9a46ee98a6f5f3dbc5fdb3f3b0a7379ff924ca5836cdd637798cd4fb9bda582e5635aef98eb3595044a45605912a8b054f48e147f3e979b4857f65462e8976ca1a74bb38fd1cf1638bd611a0b22d7484c9ed78608afedeab7ca4c9771742a209d0b28af7f50a1ea078d68c6d66cddc95c4c689a288ed02b0fd489bd8456faa826509fab62e3849bd8cb73aa9d5c00061dee855be6d62e7b88c82f946ba6eadbf4a74acc09243aff66f6fbd197a606e207a92af6c2d7c3f7513c73bdf0b819403f560a88cbf821d476a766aa0a6fcb15b3fffa3aab24717135c1550d1e1078e115e4a8b2288a48670ebf792cbfc83a5c1994cfcba570a005798ad85b77a1421598265e4cd742399430593710af3799e55376e46ec6e5c8b5fdb59c6d92846b4e2e45d881d3e88c157edaadf5b573df4ee8b325886bc131fa29d468066d1f8a1390722f08d537c42477e473493c99e98bf4d577eeef8fd6b853a6bc2d06dc3335af5bff46e57ac4c8eb685ee983ac7bcb3f8adc9054f6b117d73824d318c461f5bbb517a8da07a405f37980d5f746ebc014c502c01e38837b1ec929bbecd4a5e23eaf9dbe9b9818319c757389b9161c92ecae4587f478b2a0cac07202e682f7cfe18f02a4ce1e69393d06316bb825911223bf3956c05a940ff9f584217a5a8b24a5d9d92d78a7c4314e0d27cf18921589d2a49f75818e5946f1743d53e63ce6fcdd7c873d6dab444aa2a7350adbf0d4097656eaf4172a9600247920c08927a1f7426d408d92d64738c049b3f458fc1ba8080296b727731fe6fc7773326b9f75168f007a5e8915383506789b52539465c745114e90f80c4dd9b1374a51071ff99675ef0e00148a3fe107256a95850718aab75403f115ac0f7ee0ccfcba8e708bc409dc945404afdbd0ee8732ad13c9bc25acaeb80e9c47385d975a021f85ee708315ffc4926c09744f5adbdcc7eb9a56f43f344b6e7f4c80a70776880eaabb8fd9d57aab0348a07aaac4c1a56cf56520adfd83f585f13c0face1d38376fb7238350c04a9e94bae2fb8e74ab4feff7e87d04237ac2ffbcb9804fd969ae7901e765e8d756f4ef173341ea768e5ccc542e0b4ec32f4d5d8191389ffde999f019b7e2b75c06c6b39bb889f3c92c789678aa23536d3f01936688df7b430ffcb8266d5f98161cf8e0f5fbb2b2871c7e3f423ff7fe163f181064ff472b46037bb06185ab924cc25d3f0831cdf9ed909d42e70eaee97aa0ba18e7011ac706bbca9898ed61664c77e43f6ae9492edf5a9acf6eb2889f99e5ad3d51a02a1b687f2dacac234615e709a11ae6965e856179fd4f32c0602e34e5e412751a7424b4054dd113a4b698f3a5cfbdfbdd44581f3a971e64a24327541f24b91cdaf8351518ee2a57a88ed0c8f018f35ab84260e6e9f43387bd217fc4212c63843d1b681dce400e9435118cc435aeb86b67a4fd2815ac7cf2e6cb5e92fc1bdbdb31343e3e55cf40fe7ab746c7a20e2cc93612287d589d88522bb9ff92c6fd30c89d725d52494dbd5980fcd3b794878cc10eec491cc1904425e54e28db31af27e39b4dc7139dc9247f2480befef3c1cbd8d6941366bdcd793f23a5b7473098a938851349a3120570de6b1b9007a1eeda42a8d7465c9d90e1495f01f6f7a7e18ac9cb5fb90644ef6af71ec091c4f063636bd0d09524a37fb43d84810ccd371e2309a5812ba43b8c02e0b83dd32b39bee172a304f488a381c0ec44b11bf10b97d461841d78c89cc473c3a54574b46dd52aa91e8e237636983978c203e64dc2ae6bae659359235ce2f75dd14839ddcb193a175b8fdb81779facda826be8115f0c5dc1e7f3e14908bca180850870a69729c9f6cf4da05e5615b55db78a082f51804dde368e3f32a2d0bc9198f40816e8b1983565a44868774a5921d335b5e086d5fa3ec7609cbb05d6250aecb093b483ec82f655b5371da49e3a997142731d9200918ddff66323e27bc2f93a5c7e0ecd4c6811e305859fcbaa190d8ddc5526dd5eb36cf37c628e4265748038729035bf2dc790d56da834937a881905dcceffeef705f0cd15ff85a69aa153fe621b3ffa925731d184c2c77637072c75d498eebff2ce218cba4a74aaf6b23dcb39c4c4df4e54e77677456479e7310a5bd939ff1db15c7c672fbc2b404fb79b11ed1a62bf1f3359576e95c06521184b8d30c3802143397250d7385e775db0dfd5316d3a13966d62b5f032ae9ed851d9016dff85b124d8e758707925d6a5ec0e5dec6370ccd5a48f18ed24ab7fa2e676e4ab3565187757b3ee02f17d41e337432b9803aeaf84daa4af51a3534d17a734fded053ba8282224e68d1bc475b6992a524199a1c177b118835e76e9b5302afb66c7a7666fbcbc7a543981410f9cd0850fe9f67bc3f1a894771b1ad4e1c73a0696df0109fda3ca6a3a1aca9a226bb5abbb6f2370bf840d77209c781c14952366aefba58b355d669cfed0f55b65de3904085e4b39a5e8ea5562fbf8f1da52f27e2a8dba1937c63a2db88c2976e6e9c28e8d275194f658a273e538b424d0e67c85d1fe3f1f4e59682e493d8ebe56df355babc0d4c1834be94d5862dcace9b1ad07fe39edd3f942252249fe676ae1a22d11b5a1eb063892dc1182b2c5235a6a5e64341e14aa00843384bf04e7999472736871910b2df639842125908c470121d35009e59be19491bc3fae9931c8590205b0e8d0db0185b89c95b19606796c54b95158ac24f58825de346cebcd5d7eeea7488382b9d58b3bbab7c712884167336944caa0d42b943038b8cfbfe120ccc648287866bdfc9e2ae3858a9c0ac81b7109d9ab822409a72018132951b5bc31342a588b46fa525c2e8f32c2b96c5cc34c2012147f3edb4fed71020de08543fbfa36761cab7cb1974e90a5ceb1d5f0e6ae0ec85a97272f2f9cb335efc3fba79adb9f3585b34d7d97f9cbf869fdc3992f7eec26df10f9597c2fa4d28c04874200944cd8c72b5c196106d2fa3afcef12c78d3f2c1ea7e4f09930ebf026c67c4f83838dbb8d39b870150450ae37daf73948c7102d197a9b4fba48921d8d120f6e5ab3e9cb753aff6d5d6817cad7cebc903f72f5510cf3f4159499ced9f7c81f24a445db08b3ad2e82e66eed39172075bc3bbbbc14751960a526c8a318b3be7e58ff8cca0afb425625efbba3994893b90a6edc93c56812bfa78eeb7ec4985a5ad8b34e9e79c468ca4fe31309beb73540e5da899d083bc4c985ead1bb395b3589d26af1c594d5f389fb08ba192d1ca789611a832b5574d8f9ef4e4d23c89f88da5b779ab8ab22ba82ad3c4877a2db4f81b4a86c037618964f57cb7ad534e976caecae7b82a5fc3a42e8bd11988a1c2df4b7c6525a0d3d4ef4767e35bf375276cedfd1d31f7b8fae68b70b634e8aa81ccd69ea777c0cf054dcc5ba27aefe1768edf6836313bbb016e625d13040f69ed2386cbf50693a6ec00f053b2c53a9f4267ed5d458dc06fe2aa2c5e107a85af7e22e86b7cf05b5a9682eb866f106cd4996b68358f3ad924b3ab12a465040f5d38860222b62e96b20e118a5a610f1f11a7c2cedcf6211a8625ba17058358a39a41539cc0941349f02676558c90b4614d8af886361a2e8271087bcb2f0c4b94d17326fb91af74f6ba9fd6c9f77e2ac25f867741961529fff82755591a117718bde5aa13dcd3ef5385d334a0eb931818a63b037a8a9d234b7fa5856b404941c0240439b52999954476c48187c880f939aae53978a841f31e9c5cf5142179f32f478072d18f042c92b91b21e8478143a2324c13fa1223384c090a74769a64bd159f058f04fbc60104da9365a0568450de49fb971b0a4edc580034c28dbcbda345b390ef3de72939867bb1202a346cf551439cdb4e0b3c54affb0fae24c7a1f4ad8e5c00150b347200a4ef23c43e9c65edabcf30a3daac30724551674f5191730e428633852786b83180ea73693ee5e18d2f8c97f374b894e6f6333fa143549d44449f79137d8684b4ac5df2c7fb345218ed53df5220c680071e5b7516a34c0f5f3e3d26b7455884eaba057d6bd571d2d1341b3beb6ecc7f54fa92818bb2badc2a1fe175424bf1c6e1ac737bd43d23feb58e9ebf28fdf60fd43c07d4152b608f52fea4d0684a11a4dcd3fa5c2cb154105cac63b5caec208051b4d189b7ae3c2ca34f5432c7846fdaac928b5065645e188cb76d495f6e717b4b8a233b1063354767beea75405461be96a3d41dda6f860152e663134b02da6fd91b2eb8ccaa1c1ac8377fa93d5a6cc22e2ac564dc2906970bdcbeecd07a722f72dcb32aa1fc665c6fd26cb6fb68e042bb24039d6769cfbbab47295598dd4078eaca6505663fc1080527b66071b8340b432d334dad04c155b4355259cb56cae8d3fc9c46077a352ca1b9d5fe89939efe10f16b71ca4f902d30f07695356b480c4ac2fa6a93f69fd3ca7f19fa06bf8b084c7a86b3609b68b2bb1ef5b5e2e6710fecb4ddaa125a738b5787de6eaef86134d2f7f54bfdaf46b4a35552d655d30d1f50b5dbd4297ceb05cc616e14527aeab52ee971834373dd08a9d36aa69e6b2795ceefa155c85e5b8d8fa6749e13949ae67ff02034901efc1315cf6173831224d8888176e58e4126fa834c2af0ff0e56ad333386c726117b8e4dcd4c9e78c6acf6e04342bc12d3b36c9c7bfddd638f54938acbd87e74155be1cf83afb79a5e9a5141ff1ffdcdeac1691b7b6facba58b309c641ed049d1cde3ac82d4b82c11b7a6b6abed90bcf8dcd74e42fbdb23edb16bc4a4308b680431e4d6be7ae246c97c588d0ef566ea7f33e5a754f22ac3694585588dac204d10ce3c15e5ee8ff9a8df6432c07d88bcfee74fdc11f44a259968a48992123ddaf2b71fb6a4646272ee77bf5dd07754f700ee7f114ffe28249d835b4efce1facce8f9f69e9adc8c61c05983e6606b780a98f1658419375f06bcd4059d651f8cdcf4db6914dd4e9d05a52dc9b124e71bb2da63400c2d3f56bce19016713d2b1e0a6037162f76a550460ad9f77fe83e9b2f5f9745a77f544ee01994fbd149e8f1ef35db6fb9e086fb86c0b65157079a6b9ec5ecc4e2b4447ae016a275841e32e203c200788f8df051a0795fc0a0f45102232d0f91d0a82f96b5af368889aaa3d24e1bd03e3d61a197e04e0221eab5a0d9d2bb40c5e3e819a4ab5ee66210acadc00f97f46085355483083c4d93a7629fec3d1ab7377f394fb80dc04ee60a37fd701e5241f3ac55ca5efaa2e58c3bab944473f5072b380f95fff81997a6263332f3a6a9658ee603a62d38c470b303509371337fa510d0172d6936cd808d86dce57504c0b16cfaf214e55c4b2cbf26a66808c5ec6a6eb0ada79ebde8077e3b41012517ffeacb55cb4afe73c316e86519db7f88f63839446686336f97939b24c6630c6e91300500abcbed711ca89f42a43807fa59a236e288ae36a7adb61692a3d93803e4ef0c90a38649172a1a995f5a35304956a8371c8dab8f841f80a1bf626291152be94c2137c0a73725416222e119860f34873e2fa4c1d124885bedfd64c722e1df430a73e0cc80b42af40e41f2416cf8bb92e10030d06e9fa681d42c5d82d7933ab3c9d18a9b9d7bb705b915dbeadd5db7227d8e4704743edbf810fad4f3d5e1baaa63261610dd7f33ccd647fd51e9f67b8f06f3345b3a4ead25a332a4e9fe09a4a2ba8ad92d5af2643aaa994d2300b65b3e9230f5f4b4e046eb49577e7546f07f6c45101b123df9f6874a6ed73777de30bedebabd36470cf45bae8e6513e1309597dff89abec0c0fb690aeb36a4cf29d8f3765873bd4c81aaf9240230207fb475e5917e04b4370a66db3c6d1e17a38eb4563d503220bdcc7e8626ac0ba0105b73ce446b805c194c8f759a6bd3874ddc293d7201c78295412965e2a1f654cbc727168f2d2646620db258c9c0af34aee71f3987f436f8f14d8a898ceb45256d36ea6f12cc822dd1656fa4c9caa0f199768584512b36b500f423f948111ed2f4865c33181515d8ca734b8048c1a7c6d870cb7d6df7b012393a9adbd69cfefd4a5ae12060acd4beee272eb41b235adec81e6634e5e5436080a9391b5df23483952f1f365325a788a6fde4d0672162c400674f056c5fc386265b6f95fa0c651a2fef81920c2ceb543a179ce8327dfef38a0d8547c174b67ae4ab4ddbfbdd06517d35b76beadbf1d533bb6cd765627fb694f086080cefd67e46640a82d847e5cf1efd341299c67d3b1a60ca1b7e69ca51aa1fdad8412491362c0a80035af0a1f12bfdaf05cada47edd04a143f720fd986da7388a8ea3f8c88481aac2e8e6f2da9832da219094e7d1523430ace8aa13a605b009fb3d3a81c51cb1b312867b351b85e68cea961e93ffb45094fe131d18e508a4caf7e83eccbe49edbd6fa2aca2936a30db5dec59c222d5c06eb35fbe10ba161c94de38021d962e39f04b814a8a465b2e11f026a09ae7b4329cbd566aafb2fbd5d932cbf01b9d791cf4928c9e606dcaa1e96e385c7e0c337004050206e3b7f08369d43c1168f2f715dd70b81ef66f758d4e94c2e88a98914e77c82bceebd12303d0dec4531b9f8c64005eb0a7b31a54f40ad8638d86c623f9118f037ee061ff0c587108f0e43f66d69cd7606d5a578e3bcb7ec5935842f854d91abb7c4b087daf4361f967d71823ce84d79fbd957110243a392f55abc287421c6ce4e99e92dae6c4576bf8e39c1e47746562e3aaed11f4050f84928d5b6fc407c83ca43f38ed99767e0de58c6a2b82da01b542565e5b5ae62cef045031e6376da9bc6dba2b242ab50219fa6f6b5fbdce42188250d980af5bfcae2bc70f8cbc5edba8c7fe169ae273a929e6fddcaaca2c03c259a88fb3d0b138d7105b880edf6250d80eb2ddd603061ced2584065f122877b64f58fded4ce4c93e9b06cacafb6d6901711186bd186876f05981bff8c3cae79e3992e133c371e3eceb48f16c5b1b9eea8fac8d68b5c71da7b7e1c1b0e5a503f74f74305fe537fe5e18a1cba866068e285ef75c69875671b1c9f25279b13abb1d85002a1a49a2cfd6bcd7d7c9c3be5322efaee910747b8d2a0fcce2e8987a1934b667389810f23496fb315883cb8133b98a8156173d63431aeece05d26ab3816f91af29ed6412722c2d4b8760bba3c02d21c5e9a9d20b004da64db5262d81bf9c80dafd518e940ca3aea2e4ce71f89e47c4a54a177b686d4f83671413e08163b1c082c5c472e38d161d2b44027b08dcbe58b15e53511120e425a09e52e7d9d5a6017c21191511e895cff7a5b1af0bbf6bb8fd13e46d736411dbf3d43da1b46269a201c4dc269c78a019725ddce61eb53a8fe4ea043edd76caa535c3edb534a1d4abfb9f23470484a49fa4f7a6c3ad967471e671241b75d5b57cfe9f7744508604c4b6edb3ca97dbb8c1d0266abe2a6c6472588030660370f1494190360c4833096f3e28a4abe86064417412c327a551cafea34e61555553ff87359671bf3df02f3f511363e8c444c378f805ce4254fc58718801f9d67ace36b72c7726b75e71d231eca19a5bde07a534427046c28e0f6781095459d2bb6d124a8b45cf0a38acbfde03121dbc5453295b312f987a3b7770b3f31aef23fef688b4928b8febd5a19799a3ddc4ab7a1b8bb0613f4e8676ae89cb0264d0d23594f586f5eb623d20c29b9af3bc645bce8feb5d56f7ba768f09b4359dae27619f93d7da94339fff8fa10899849dc2eaf51b5fbf15d9d9c3e250025a7c67a807457ddaa94fbb55d89a44cdf1ddc83f16bd76f44678b7a27a7499600a5f739b13802b205a35de7bb1f2abd4f6d3bc1fef9b9da4e1998a02911817bf128907dd0bc0a19dc0872509eaed4398dfb01be4a9bfafea9ea9b34441a5581a8494649a55b84546f46f98e66508bb05c929f9f0422e296b2249bed9f5530d6a09ae205c5bb0aa82118e67d903e5dd69b50d7ad02ac7b7236ed14dfc9d4e43d117ec38f0b8238859baedf278125fc673dd542c91c0814ec6ff278136fb223da9b315995967c30c8b9f0be89510740fa5c48cb31ef96c26c4b1aacf6004e0783fe18ab455e751704573112253f03a05acc77329dbf6dda0029ee87908cfe8baf4530d24ec5e496df41339d62aca2bd7fbcc68b9d7edf79fc8bb0568f4ec20fee437d7c2cbaad5a81f28dd7c4dabfd8096442bc571f55fcaf6a865b22ced7d8ec4fce6ac643e6930cd18569eac8b55753c5c7028abf8b882c10e249a4883c8d128b12f25e9370792d1f33b460de4b4411f6c86ce259e48318c269ca1578c4bba6321e7dd1f5d1c3b5d66248464fbbcd838aea5fa5fc6d18949ce8f967fedc528abdbb0a213e462e490ff56dbd613fc536066410a4beb8b82d5674e896ff142780c880aa568387fc19bd9c9d2effdc225274c80d83ec4c94e6ddd61c943433700513fc02b04b2372b5dacc075b3b717d7a899eb55028d7244705770c0101fb4bba0e78cc1d7f7f58e04f4f0e3fbba19541f1f9bb6b75b7a383a86fa5b955bf375ac3bb5612bbe27d83277ac8c425fdcc26a919a7b96aa690b00641c92e6a8a984409ea01a0e1ec31a8e63780460875a8278be9542d05912e073c8ccb9056f037955cddc3e7fdedc984162035e1d85d54e06927739dd4a0043a1095f4c9d899c0ccca24a6d7d7721f9953ad1997004d1c3c60d607eb7ca35fd98ada0249ce334309bd144739d12f10db733612421780f4b5369de877c5a9cbc7fff2a49b2cb7b4cea0345710e62bfcf295b03c56bbf3f22800a740edb0c39ebe85fcffd882ec6b5fb1b01e49eaae48882b686474aff3d030509f105257346de2085f2cdc4da5a5a4635df3b65effdf9d50cf8fcc27b96b1aad6dac717c5595676b51b74ea96401a73648c562776dadfe01387150719f46641f663b921ca8b346668f218327180397eac795292d8223ba04d1f7b55c9208cf00bf387b693c2c011cf2601fda109465607cf9aa746ab6b09084be49179df9fd6c3ef4cbf1b0a6758f295a97d5a380eca3b49b87f4df6030106899915beb89a7f53b11a2ec858dc470a96d77b9b8f6a6e23fb8efd4e11ea186440ebf2322ca557c450890e3668f44f2f7ea7e07140cfa50c4a28182897041705fdaf147b0f1b653f0a4e3345a208797f1958a535a390d40553e787e28dbf22c14694ab29ad97d0aa2853c287bf76c3041274f96a0d932e627872996a56a1648fe5ecc12537fd281669f728f008f4a723fcce32cddade09bf409d51bc129792f6d11113d5b8752313bb8cc2dd7a71ce1a9a61c4fb458388fc866c2fa80a9502b9a0cca99d2b6a1ba91ed865f04c3ccfa2448b506eae31f30cad5afc0868047a9a18e13568e758a2e2e2da9bb5aa885d6493b4bf13a39ead6b89e90f67ac5992c9108973a0855aea5efbc2daac7e417aa137c28577cac8f67be9f9b620a984175f3a27d544385c60e84b27728a6436ee7ddfcdd60ab6e76f37fcaa90d2b9833b024b732dac05e7454827a1936105b12e4c71fae750219cb9b38a5e425806babc26054f6f5c2d8a13ce853eba31d02c13c3f3ec70c4328693610c8c418bd3a8802eebd3f60661272a383d2713f5cd20e67a6254e7b217b5377cd63607ed932b9edfee9eff38ecec1f3605e949492ac1c238995388927d7bca079b509b0c004bab2e50154a63ef237fff2b3a3bf0b315cbf94c3f7d67164a0fb89963d24e9651f9cfce5f78cb108e6974a60b009404b646096d7f25d632dea9aa9eee1e9e88f33b136a648db84be788d5e493149aba2d5be156ed195c9a42f2b4c3bd4dcadbea21da40d07024267f8ef1625fa4007284f0dbf199608f31bf8d0c80fc86d79b4373256138a5ae27919ba88018277ed8e72f8b2dc885fe94b9557da9075172136a810f767d107430d1d4591bb794019ccf8f2ffaff13257d18b3208f717db5d8d715419eb67f70b634128cb87b2f21f9dd63ffc01a326a1ac8b13aa113c5e2606c54abc37162c405bc265a86e54847a00716cf430541d61c1f816eec1de832872848bc11565bc88fc690758ca640729b9e12ca611cc8cc15703c9877cdb9a78a74e051903f02e4ff0b08cffcc9cc00dcd4bcc4b6fdb3c2e9b508574cbaa7b75fd9bce38b4871ee7066fccbaf68fd25a0a40a3908427fb6e1d33f38fcd702fb2d1ea4d0e8f24505ab01b2cc7a122b7127c3146a381c40d885273a089b25bfa6e05fc8af62fa9a4e5829e4e39795001a9f9f95dbe0ca06eab10a8fc2a4152e3cc7e1fbb73e17490d8b9af9c9efb422146976e5cedbdbb191d141f37c353f21270a5905a4629c60254b2c848f6feb7240e30047f86a037f82b7f55c1fc55dfa3b6e7e264483dede6586ea4b07f27b8ad0fe583d1cfb62c324855007856ca60be02357e7ee9884ea9b115503ef6739d992d98cf22897357f1cefda4b4f8c75019d8852b217329356a856fcb2af5b169126b70b61da14192de5ac4c1c9a4765a3ab64fb11d4c7175c8ce6c39c467056d047f59d9f72ffc1fe4475a86ab0b93880faa1080044b69df6d839ea0191d673c3279819f68ee75c6fe9f521cc7eef223bc8aca6e47c74981c7f4ba3b2ed022f86090dd3adac3efb827d6a77f4a0cf7e1b2b68287268102ba93d51b5a163855e256e6a2bc06b3a552a18b32e75efe1c6377efc1e3b9a8b61b305b3fd09ffd7545a62bcc39736042a1301b35bd17e36f01a1a31499aa443a1ed12448f867c6c9aa7e929aff7aaa67bf0dcdd32718d911eff88f8cb56cf99ba10dee7b4281dfed60fe6c0fd8dc4e28ff94659521311bb8a4cd213f4c0cba96406895c4550a745052be28735efc658fe40238e6217acb2da0d56dc591df3b1e73c0aa31c058a6b62b9216d163499018f0c4059855a64ccf723be0bb08b01ed980d58c73379954b6d2b69277637f0e343929ba5e67985e0f20ad0344be2c9ba4434518606907cc3c2ce9ae7807afa1c6d876814fd87611f2cb88de8396b7310bbab00d735c1f3009331f752dbd43fca823b9d16ae8c20892b9806e22a9df43d269f09f4a606ae52e5edd36af5977c127b5c7ba0c0f34769d9950bccead1abb6f92820e278ec9e1955762225fcee58c8349553a7b035aaad4285edab8788fdf8c2f9dcb70d95f5e780223845fed324071680f605f5547178e1e5fe21587034a8acb8d7030b07d09e8d150b0173ef4e099df18c54395c627326b5eaf9f9b3d6cf92151ae932b3081476f648db0e150a5170d6939190ddc5bc0c6baa2136b6f8321928c7b6ed05591ceb0e61d9c87096afef9d990b30896b1498ff83bb15878e87d6153fcb4df5a6a08e0f1340c72dab0d044ef284bae6d7f72f780acbf42139a3bce61030237ffc7555025b6788a697207dc9f17fc66ba8bf684a8d9065f418dbdf1b79714c1c7c96845055f1b8632839088acf246d7f95a21df9670532784c81a73be9c4d76fd10c929011d751a23074b484dc68e67ee6455ede9c8f755b88e9d095f9634ed5b9254159a60c741d9738c783f219b5cd61e89452e5448f2a3e645cfba85f17ad16bb9a363b39a8fb5ed9dd07e131a803d8fc5ea86411e6d899c44636806d4e3f2f8fa1ad913399533603a2c339c1c592b6ea75b1ece57cd517381dc6327cf9b0453efe1403f32563a8e13269d4a93f4afaae1f03a7453ec1f9b168c1af6f796bb63c546181fd8cc567b4d820bc5d83d118db88b10cc78c25eabd28f3c5507aa17b47b95c104c47e12fb0169238028e71a938794a97aafc39c4eb7343e84dc7af92a647e6e3b5021d8e7bc70053022e252923a4981fce54bc6867d29b3affa005601a7cc80bd1b4e187ffe7819644a6814a2d35ba9728b1b91f00e81edfd0596294cc26cdb878847a0a4bb548b4d8a93d3cde9e094da17e42ab508858ace49968c9e03c3dd1a3ecd545bdd44c2e7ac860b96248ee24181e47ce93e58d74e33918b700e520336a900c395bf425d99e12599d4c248c098c79596f237693718d609a5295ab161c07759399db31a7eeb3d5f84af1504c2be69671127adb4f64868c70ee8b3d37e1d1daa5ab27e566d2438037ae303f04547ed8b7f4d10d8316bc2b52460b99d39e350345d36d7f7e0692e2d78d585f7bf3b5cd537c801f4bd88e255a37960ccbe028ccd67a0eb02708ee03b6f89288f86d3c3a11037d75e3afe6cbe8fa26f2bc4fb9113bfbedcd8fcd4f259d9d18fd3fab1b4d7db171d27b6fa252cef29011c849ee0b0b4473d6220c46b968acaeef725bdc2f2b5761266931c7722b056066b333642b18a8a9809e09a378d3bf79104260808207a0f27629247f11b6759c377ebb242e6bc24e8853817a89f902c53e5039ea36aed5985812ea3c4cac0a94eaa428fae5b62fc1f754706f1bc9fc028c8cc3233f872da850cb7ab46e9cbda133a0dbb19dc9864a1c61d85aaba365e93cb08e25e555bb935c0cd63739a7c73524400ca5c852c3dc7f584f04f3d643c30fde82a4dd22013da3035ff675a0be39e323102116ded125e144141c130056a2ca8c64b2eef22ac68fc18d3e57e113b5f71abab175565c225a599f9c3d05853c7f3cdf7b0d8b2b20ccd39f3d34785f35176962f1170dfe2524633d87e41dda5d9d1ed228af48202a32ba7a6bc7ff79e0317a62ae635f44b0e2c843bfdb7f63c4b3d6749f47dcbec4022f1c94dacb41f592fcf9342480b5cf46a6d80b23223d099c895292b32b6e0aaaefb47d8ceaba00b987a7d146785429612c3adefc1bcb1577ccb5ff20ce36fdb04de0dd4b43c4f246db0c40e758074f817cd6d6e608c0ba9055ab50c15181382a177415ad84f9583a4f536298c679f13100baeca5bafacc934233dc3386ec3822ca50daad0595d5df4d5541e22c1e054bac43c034d91aa84cb4a89643a8df4712b3f0aa4522cbcb90954dced3cedc61a5b3163fea0fcccbd9be35ec1acc8bc1a844c2150c1b636f20ebab35ab7c5a23be63fca03b183fbe9f5b14dadff2f00fbce12d6564e18bc398284a26b9552fe7ff949ef3d6bc4a892675d7b839ce343c879eefd86aaa556115c6183ec6804a124a73b0d3e8b4886d5c9abc2a0124167e6b91c4e5246c488d1857d3febc526665910faa5786204a2e39f9f00e553b8e0f14ee19c4f22bd4426a09af03cc77c4ec3cf12c7c530b66c83c5930a36015c443615b257b82fe9708e19a7fcf5a239a2fa33febbdf0ca80e8f6dae51fdc67eca3968527beb40d9f3dd94d2daf34ec7ac0d4a7e1fe95c96de727045a9a7c9ef443155084ee9895b56bc9f587754350d98fab7e424e4debcc4b1ea0dff2622a871879d5537dab0802325b97bd8fbf82831376749813b414cd25f2b31156d6afbe15b89de53876e0251e9a76abc104acbec2cfffb93384bca5ba6f2a077f7599dbdff8968cfdfbead242a210a657dcaaa55b62fba4c8c951e73450045f741720e8179ac1aa272a1b23de1bedcab7202bf2ba6cb74d5cbd24db40df2dbee4cbb417705dc6909f969fba2594683c5e16435df40b3ad34eda725f66372a9761c908d1691f45af8cca0edf9b23e8fd1026452bebd8eb8f4cf145b96c2b64b753b7b399940a504c66a7336535fd7a170d195b021c958685bb06cddc6364e522d36233b22e8227b94f5b4844da81e11208be88f1e05b9f3e4b4de5f78e13f70801f47f47e94aa8f45b36e52a829888d0735e726cb862e1a84648e5b3c797963a209cb031f02d40d568e0020c351c3813a150e28ed540ad4a02c3c0cbfc88deb5e90d47b2b25b460a395d1c2efe4e1262c372fedfeec3917eedc7d29482bc369674ef70ebfa4cfc9f27990a9f07ace863ae9e6fad3bfe17af628875e0714720456677106215add930c11043876fd12e7c13f20cec9b1c7c3ae2882c2cf89b36735fe77138dd458eb60d66b9cf02fef551f90a9255e9a8da374d977d34ba25f7d65bd934d82d6e446776770c09522bf5366f6d83938c8bb349f99c8b5a10e5cb6a6520df0cbd67d89dc07a4370dbeb1d252d240942e7b9bfd2daf34baf58f3abfeeec69a8767f7c48df1a934dce3ecf062e4774799768e18332c1746c377927ba6ac2f787ad3068df2cac6495deb34fc0f1badb163e3728bb475b62ac2b372858bc8c6aea097b993b4dea0a9d497f414af35899e6aa053bd8c96fb093b4c6a96b100888e339a6ac890ea603a65cdc7f07c4907dfb09e32f5388d0332aee385fce2676e405012dc42e2dd7a8856b53f947c3950b27de5552225bb5bb2ad53370b4c41daf947f3e9bb7e717110fa645461012dd8d2bdcd3dd775b3d7a5ad370f7c653c48e725c3b68a7b92380a84f668fcd36a43a6cbd4b888c7fe5fc34bb3cd19fa1398e5fe63c8f502b5f67ee7c3cc42fc46a68cd959ddc400013b5ee72fab980ccce1858818a2421804ff68555a421a4c371d2b63c1e659f3e8f1010cd9ebc5f6bd70627bd253f0d101f3b81ba4e082a7940ed69a516a689d604222bd333f1a2e82dba7c423f1b01441cd3f61b3c237c53224b1e9742e8192b84d96d15578b25d8ae4a1d5cbf0c8580392baf3a47dec780a810961152d3830001cd1268ba3860cabac2f741c041fdc48b50098d9a2c6dad23791ccf6cd87da6d590f2d5a3cfcebfb86b38740f552f69cd507900359f80e72b6b20c1a76c7dcd3ba0b7756a4dede88f2aa864b0b0f72ddd2a42db6bcb097f1b1ddd1891135060d3d5763dff2466d02decea6459c058c93d4f4d946401380092c9c269aa39dba22274aee662dd4b6604226f50f5f34d3193b041919c520712f37391b7e7de0c6610beed72290078a4884e20b122920c2c29643cdd62e80f19e6bc57ce2f114758681fa7e7fd5769adb2a12e2eb35a9c176ed2cc145aaa79fbd5c6c716e136d0585be5ee651c7f3b5880a57dec30f9f16d737716f6fc344e48702a94354d29123cfd8628d9d9bd911572fa8b285147f5456e333a3e1220a35129fbc628361fb29dc77de41518398ffa0f24e6b9875f1df53a2b69bf3e95567eb9db44425767cb3413ae7068d37036885e657660737f8c00d63843e5723658359922ee52daf2d69da35fdd40970eca766dad43b46dbad5bfe2eb622f7554b8498a0e1096e2af09b51bc678e007040966ce937150fe7bd66e251a39846575f7bb0e0b187103b4336b821903ab58f95fd41565935a66da4def09009aa0302b50faec04bbe7c4366a76c53e1d04d40b6a285b3fa4d717b91b261df19d52193af586afce02b9245c065f3400b46f57dc5ae9be3e365837bb51b39298b7a0390f7e102895f37512cfc23003d66902d5ed2b7cdfb9aa65220680bfbfc92178fc86fb95e863bb86f42b0287cb3e410dd253a7dc628e85c2e7d3e7bb9ee00600a0036f25c7b99dff213b88c206a80956e8b0a9d2717d2d00c6d57d3e4cb20339b9d39d20602d0d5b67fb2ff696e6501c458535153a98ab24b866e6958c0de822b0e87ab99221a5aa867c687f3e3fdba02acd31a66cbc3b1be78dd54c45cbd63c3fdda084008af594b289824e27ffe3e36defed72be20c07231d17c97006f27d6f64b969592bf52821524199a5da4a8d4f8fbc4ee69f1697da9d7f0906b57ab50ba75d695f2641baf4acd1e185096003b473a7aeea8fc283d16dcb041d87e38274138d8ac105b2676e4a159de546e033aee0729843f6fb4a873efb9a3becb9b4597548ddc9fc54a0ae54358bb21d0ff681107e2fcf2a03ebd6d0bd03b37f154019b0514ab951f34024795293053d24426eb9c4f6a09f12581e8f4e66a81dfbdcc82e6948faf5ff48d77426132ebf67ff547c0fb53d2b234947beed44d7dc47f905429879deb2c06ead41c3385ccb3b1710a1811451f2a422aef3ab9dc339c77716a1dd5560b23b1a73545afc73f8bfa98a769b1ecc4974655c36fc0fe4c516cabf6059b62192702af6026694d6fb4c2fea9573b701a563454ab973072976d38137b407a23ddcbc972943f1376ee53febe2d7019607f0528340d25e7bb845a49c551bbbacd69c652ab00bfd97f2f4490e3658bf478d4c8c17182b4b2ccac31967f23bcb4aa8e72c21049ec85bf096e0d4b167a63fcfd91b9705b9f32ae471d702870f63cac646755fa0863b4c03ab162061a0472f5657e00901a5e2654b448ce0d0df20c50c61bea7b4a1da80fe25c1f91e036992e77430159f4ba56a2f560f77aa1c16118d39a8b970e4e84550438663ee70303f826abd1c856d482d230a5aa5c27094b8c6f48ee5cca0bf7fe081ac7b2462f331e662067fa5deffaa82f872ace705464c7c0b5105de7ca9edc3c138349278e6f9ab04b20895c1ad351e1dbca939ebdf21db18572ac40a8b40b4e25fdd14795819782bf35db5a9fd753d79be4b9aae3a03f726193caa783c5fcd38b59287837ab5eddb4e3239146adc1c73351c9e0305390f5fcab2961ea839dc4948dca2014e9a1c5d75e55f168c7b40d65cf445e71ce23732bd3bda4d1fc81fc0862b1b8f5db61c523e66a9ad21d2925b6f36c98b92ae6e60301ef2021b968bb242a634da0f35e68d0836b6675cc833273869ad79c4c008c15a285730d969c2620316c01f0b49ec14d4f465ceb066a7b3e71d9b5b3de746aacacadb3425e86c44720278b47350fe45042313ec90911e8309ed0a2728547c7256af8e9de6d3702a5df05b34e25bc6af0f283fcc0f3da898a6a6d6350473dac546659903cebd5b136b359d700055af2d0c41f3f94b0e70ff38e3b8d3c636a6bf636771a8d5e9a83b996ef6a0b5b259a616357dfd65f3c514a9fcc0e660f4f15370d4d6b43b27d91001ab46f7c09358a2897ef6d81e146c9088414a551da39024643065c4ee6cdd8dd3ff802c11968691fc843aa5372ce15308f2a6540a8034dfa57313923009fb79a21dfcff39908e61fbfd00e0782d576cb0e7136e686fe56870ae444980175720059f2997b65163060786842512d8c54007fbf5470d11d3e41882e308ff092b2f072d9b5f9f2ed7eff181aa6b60536b8aebdcdcedb5ef36e71de47a66f3912038eecb68c8881a889a25969cc2c11d1d0a1e1c8089cb41a103b2232c371f64455f47cbb1d4a3f240d20f8c8fb8c2b5f6e5097ac39917710948f003198b8e5ec7c81ad167846431c4c3d026cadd633ee8a2d25b6ee4e95412d33a851a93c1880b0ad028a449a74198a7a0b6a1142afdebc88790885b2df5252d13f6f6f86a30b0e74378a39f5b84e92ef9fe28a22cc73c2fee362b3c9143f3d215a93d638e043144b4d08a76804a42f3886442d99ee6a007a5c9eff088dee6f1a1a4ebf6bfff829ad72b2ee85244db470a21d47173134fbc2797f44d209592a39f9a57fd60076133102bb04cd604a75428ce0d5b08268dda0794d334b5e17f6d2618b5fca53477e321cfaf26a4a1a4c002add0b3f4d45f589fc88cf83ec871c7b8f501afdac857c0a9d8c574855b515d3e241ce52cd4834e4560fefec304e2e7767826123db0800d871e9e36714a532f6395b39f78585b0d599f1bf1ed6027d433ba35a5ba4d562d88dc4dd9433aa0704e56f1c447ae624a5b5483fef0a5fa127a7b41d67f6b0de4f02fd9e6188ed7f52af8778c016696eaa575ac2d8140bf6dafe3136b7f3011402fb411476d429855fbc230495f44410cf657471b0587d1939fa182645a7138a3aa110402e13958c4dfb6eab8ee014b19e39ffc6ac53046e0694e2e23d69562565272bb8886c910870ddb50cf1cf5799e7fc6811bc3e2b9dc44cda527c3e78b4367faf26652757f3e7a104f918ad0b38ebc9b6f72a562611974316d3d3bc0a65657c82c71235da4950c8a3f8ee25b79f1e71baed9affd87837d76eb62a3ef44ef165daec2e30278c7a7ccac529e6f2057b0626c148485546fac038bf646c19e5fc37527cd3e854403b0d47ce60e765435e98f812a3756931e3db30a61d7083883518157015d8f07046c00db6eec03359fbb109d330a2edb6c909fd99334cc6f7cbbe5f56d3147e271c9596d2a3210fe75a8bcbccc7a008938de8e1b8213092d5fcd5cbd0d3a337f804c9b2af48dd7db4eb08b61913a0904b5b49d1982acb292a29929712343dc8771e2e0b8af0375f2ba3ec2ea9694801a5009cc1c152eaeee37e04626626e112be77a7c8d61b5970d9adda2dc0f44d3e2d51c052302beb555131eaa2ab00d678e93d5c00baaa105ef1af134d7526b17eb29aef20d66bcd57a641fa7ad29ae9429af8735d909f57eec89506723580274ac629b0ca165eede97bd7f35760fd0ff576d66d2a68b136ef59f41bbb3ea9666742de049b4b17b1194d29ef4df05fb95ca509654c83aefce3c1f95cea25d54bf7bfcf4afd4083b229fbf4b2f5ae77791b5634d4fad8aeeedcc4edd716517a19be1d02775cb63e30754a881016dc15da4839e5a9fe9216dc804742e4087d5845c9002aa6d3e241cfed6159885c511673870324c00b8f684013d333a8473acf90354e813022eb5af7be4d2fb9eff49da192ed0d0958e3e8dc2c19fa81886a8465d6b2abb3a9707854017eda5bb446a978db368202ec530ff4ef698836e3c65ab0e41cabc4d801c44670487dcdb3d6eac4449cde4248dbc990bc39de07e85ab8b4a83fe43b49a18c4bc264646a31caf93d6fe7cb30e4288f83cca4e71477041d924712334d054b01a99c6c6f3ba25cd03e505f1a38ba1f41ffa9e8eda402f808767a500fdeda6abbe6196209b8e85b9a9ffe50ae0d8e54dfff26e79740b83e33b4faf8c0cb605f19dd8129b19eeca6d38aba8d7cd4d99409e556a77abae632103fdbcda41356fe6865210b1226e5b5b66736ea9635575c52ea0ed23989d904a83addd6800f4f11e2f42631ac087210fb3310c148bde95f61679d3738154c36bda30adfe83739d470ac082e0d2deed5e3e63b6e430f4803e601bb47d8db8921434587f7b21e1a7750a73f7598ec3c369eb7d8d3dac321e4593b34984c8a4a70247695f07b9392a0759213dedf3ab1f9ef608cd55100a85093046d66f8715ba2595941e33b241be6c8d6c8258c2f94f635bc08dd361c4fca2741ab0d60f8318c4f9a02a9ea6ba35731e0c26bd5b43e9db24dd157d0e557889e640890a9e494d59ddfe96234e139f26e4b13b38b5cb06d2c9caf3699572ff572930515adaca4790d6e9cf23d17a62ec5047e66af9d0b7edc6d866ecdd0fb2fe7f100679523ad47efb5757f79a26b7275a131d099fc65f8ac445d790623bf8aa60a3673102c5563c2c4a3f58a13809a097e52a0b5dfe89ac7b38ed3e7064d0b387786cb0f50f3c42ad5f8823cba1a796e6bfe6cc71256347468fd7edbc9f5ed40340326196008b73777791a83226951def49d2bc63aa12d4700157fde462d20974b12de267c235afa0a64f4927d9f5c9b882fb943bc75fd9f06255f5d7ca6c523be17701828bd226c878b0b0469d0477a0db85665d62eb477b355aa205154b395d7bb00b34de955a5c7649e06c633b23caf2b276cf4fd727f450f73495a80f5e35544d2314e1a9163d812b0a79208b1bbebf0b4cd77b9ed8e112ecf5db4b04aa00ef9d266859143e0ff138825f7094ee22a9768dc7c14ee62a1c655654166a419fc370d6be08331f779ee3254f98304786b7915005cced3ab7b8ea515ded4a94edcaf36df696bf19c2261fd11887045bbcecc6d7ee9be0f6c6f37de0e609735b0cb3322bced786fa58829fccbd0a9f6cb0c0a8ad3b582a6a67c2c25286f09d6b385bd4cb3169b6bda22668512112beee51bb8679ad0f0b25db42825cc8b614f36357f521fa71af961a1f8b43d568d7a6b945d6405d071e0e0a9118a65d4dd16aefe587684af5dff749511e921dd69dcbf9bc5c6e61ec6f36b4f5885db5b56d52daea11da1e4fdba65e93b46d40310c7f15fd43449d3c7401558e44b1e2350ec3633f5530e770039f6e2d3327fff08e5356ede3b988f3a310c793796c3073ced5bd4a646700ea8e0fea9d2d846c83751316ed5cb5830cac327240722b339e51fb34488c736ca0be7648d3ca93dedff1d140ca4b97148ef07c5950431e30933fd1805f2cced6958d960804dd66842c2ce831bc23b04ae8ea4f54fec0825244ab442bb5cf01dff6216158ab4d6d49a2adb553d616fd499cf53fe5c3f700186c9a8a06866f2bccafe517421cce6b9003e311a9291d4411bd26225f33935a5c457ef10abd1322e285a1278afc284b01dd5b2754365cecfe2a532d153b4aadd73f5d46171e837d3a78034a7b113f4f5c432b14cee68263ea51fb9f6ff9b2425c09156a4cdae2b2cbb0268ec3687bbc0d1b277bd37be883199f101d89b9c7bbf8d2ea64ecf7d5d8894adb1bcb02a26a5cb21c2ea16c5046cd1b9a7121c618ce6ae79ad2e8ff1be461c30e68d525bc409032a41969d878e95758f5dfe158fb9060321832cd79065a61d84349d7907e8ab1767198b490b7e941bf6685b4d3f670b914ff9dc0f380b270df59905d7c128341b1d63d828421176c3042251d93f7ebbeeb110e45d1c90790aa86a26561ee1dac144abdb5a95e6e637fc79bc7added2587188027192f7400009bce59f915b01c539a731bb8e9813bd57e6ecefd4a241e924e32d107c55ee0012b40fb26dcfa7e4ca1aef1aa8ecb08f91998fac0fe99c8ce04c62107a899a04e5411be20a56564e81a450683be904c9cd79f35bb87443753bf0e130c25925b9308e3539f5a5df1fa419599cd360026da1cc1839b6c2216038e91caa53b5b7f552a2f63cc209000d73aef9e7cf62e1e653050d7dba0b5677ff709dc6bcf2b1ea4f6c0cd14db72272d8a17a7e65e94002d62313fe1fc8251a1e6e55b029fdcce72e836478d95baca1612c69ae9cb8d43b7f35e6583ef92f8d19ac8c19dcf6c1d406b853be3d4e342bf082845ba36da00ec8e655d9550f16dd193089b300f7c8be90473051454ac105d985fae2a9e1e7e594fe8c249d533abbe31300dadaad420cff81d7564a498216d5cfe4571be624530201b288c28ea9e724a7e280479dd8ba8c872a652796f2462bc8eddba1991cd797749d4a91231498045660acd2625d2ad61b6277c27bbed39380c731172fdb24b4550d2e36c24e86b680dd0bd41df90f5360170b2024cecaa1769cb619cd87ff943204fc4d66534ebdcce58605e60cd2a04bea5b7d4b5addb9009dda903bc0487b43f48514499ad40a3b9d8acd5a355fc752cb55d9bcc72d667450a9a4a2441ddf8488a7685e9f603130f3b74e3c6b0e77fe0b6011a2ed42a3ce92b3339f0db836b67ff40d88243e9c4c754c4618b9f41b941a69d8fb8766f36b66b2b8be52be14adf4dc57015d359c00de7aff8d82c9eb50b68ea0f0fd0958be1ee23432bd0428c84c6cba2577eef8fbd71245d374efaeecd204c9319fb41589250f9ddcdd830f141a39b0282532570ecd5b724571449826bdb82ce829c98aa66ecb8203d7fcdc794957f63d342cf2360c897c7896b46b19c7f594839d7342deef80443cd6e43550da5dd130adb2a1a131405a5446cb1d66c18cdf0f05038ca2e72f1e6369d8407d35dfc17ed159b7ab4ac0442a13b503cbc6a66b29f46a7c91fd4a3a615b3db311e4fcf6dc534615a25913085df7b5f0cbddbbf1301b182622da53fff69041246bed96495deace4d8fe7dd265e04c4f6a79a7710415795272b9d0e90717192c32924ecfb20c245c1f0970b25fabdcef984a67de5d9ebc111398d1ecb266c5fec8125da39f217de948c4f64200e8876ff661e89975a422af1392ac474e83d21ee2c7d1652b78f47a08e256150d678acc804052645cf13f93ebe4ba3198fe36ed2bcda4829b6d4c037aca7cbf16993f9c87409df309950bdf9dbe445d034cdfc1805758a734e309dbec16bf9dc615f3492a0c5905c363635425c6eb02b6430677ee2ba79a38bcc05c9d16711ad915412f4424c3727c71a01a6e94e5ff65a01dd7852283eb4c64700e444b456581f60628725c2d41db9c3bd196340691738446af75aa6311b047f0e918ec7fc4e6bce383ef5ab4e8b60282a22ea79a748bf35988eb44e4d7fb576c966964f9e9868b4877221b464bb08659486a61137da8548148b206b32f7587f1a429d1f0f58b2f196ed26ef815854f1535d6cc7ede83f45e3f8d19cfbe12520a22f487ae119095dce12c77af8644495a52e0c4d3c06283c65edc3c17ca74346b0ece8bf6cbdb507d95ef2e14d06fa21308b01a0ce1b69505a22c3f28520230af9099194ba1e7159a5849deda955d4e777d27120f4b3722bce5f5898b7d404924f2911fff59cc3f66b444a6593bed841a4695e46b76ed0645b2ed9335aa4208a8b858bf1828594b1a24dafb6efeb34016ed913ee44f3282aeba046b54c0c2fc936f14d103afb95df4ba1924b81853bf3b10c1c0c6f9bdb942125b326ea00a36baf1e15e145ff1bac85936bd1761930559fdb17f194dbc34a05a359ecfc658c971466126d9cef44c22d69e358c27385a8d03e88294654f5e626c43794a7ed350b363771b3efcd421f3b4bb4f564538c8adea26486cc208095a3c5720443c6f68456776e47e9f43ecd45a5aa56f9b319fb9427c41ecc5a8e855ff000414006631f918be5be9f9b283d9d34820517978f25e7d2250e19de3137bce632cb2cffed1f6c78e0f70ca765feb94278109a619188f034750d4de01862d4efcb2b5ab6df119d538c30c52971fbed800dca305832b23b9f08b145cf2a188190141a394853e5e7c0bedf2917a054f7ac718de144c8c90a0c0449206caa967f47a9e8b7bcfe95baf6538922d2377f56e79702fb5c45dad900a2f89dcbd46fe05311cfa375a28d4121402699a877f034244f41e038605852ed0f4fa335a03019e0b2633dd40b34d71b7dfa6876f4cf633b409ea303eb03c9d7caff9e919d25d469eb9c2087647c13447149fa758af36dfa8e57a9f55cd0796db73c2408785842320e75a04dc2656b9e31d0b451f9f69848414afafd88e2cdaaac2a776bf563fe5375502d512952e8b14271d4e8ab55060cdf6ed05476b18315117cc5f89601bcaa6bd9291ae5d44e13e9662bf65b13aad423e0f3a869f8464ba5cac8c2e2361770c6d879ab94c55e79881769889f303323974912d3baaaaec13747ac7ed049da7b3c71b8d7fb1dfa81e3184c40602a780ed7420823acd883e2ab247f22ccab7f195bfb90b9fe22eaf15a699a0b6095d465cee6bea959136ee7260ff8f87229f2a8b60b8b549b977a47c12ca0995554e4f1be44d4f09404917643a3182761d7e23e7476ae86a13058e5c5b201da0d8d21fa02e4103306a48bd95f0abc594ad85c69e267c232750746f519d611374a942455bf9277ef76232164ea7e737742b45d46b43a32ac7d60169c8a69fe27c8256c01144625b3abf10f1857940af8cd492c34cf69b3eab8ee5a261799b8f6241182be86134944bdb9caa26f000f00e4704862c2e78075465bf979cccf7584867637ca57a7d307f57f4613f8f3c484c09f73274ed3d0ae8cd139075893b26929cf58acd0abee76a955d5f33497adcf20129dbc6c7d5c3dd39d860e350a4e426290fb255606e6cae3d1cdf6f082fef95fce0062e6749c39ba40fbf34f4c8bb917ca339e020a55b90b955b20b2708add82aa7a08b0b525df10b77ba24fa0b44f7a819649dc10d0ba2b80568cff90548199f8d4e3c0337d343ee41311e1dde288fe29c432b0f2fafe9af02f08840666ba9d3087c7335fc062dd3e64e8eccd0e03505fdb80faa0194c75312ea39b65e5278225896009ce01612c3fb6756aa7865b50f1f3eb286d661e8200e13a487a70b924d7e3ddbc52c7ae9cc22c5650e201597a2fd5d0d6a8da81bd51782f3d5d5b3fef8c96b0a505179017d062f44814928ac8439fca9711b2bd3f6dda7ca3386b05b2aeed53875551b196c664dde420265fd1f3aced88b61a56449f041c02b573600cfaa058f7c95e286b4332b35c504fa7d01dea788fd5206e55924b473b8b3a39d3905f13944d1f2796fbd71aa2fababb05dbb7d8add6b5899f6097ab8cc6d7a139b10105bbd8a7a9b41ed2c83dcb1bc6989f03e8e9777d286b36fa2fdcc28029e8d4633fd6eb47977cd932ae3dac93cfb7e84e8a56ba7caa067f786020f94dd9d8b6f9c0fefaf3f1d3dc546f36bfba6645b5774a6ecf88570adba311e62751cf6761b1c57709c3a59be45371d87d8f991e3a2855082ec1dd864ff22db8683946511aa35bb31f5f1c20106a847587fb351fa0af5c4e98bf6be2ffc686db1108b4f85e38b530880469bbcafbac5bb6c5b6c2b3e9e6bb0c07e0bf5ac3b950985f91edd201820de8b512027423b3dc61e84332526111dbbfa344b62b78ed42ca9f6ce8b04ee64327f7d8d80be1b1f3c876ef139a80812c2262acf655f4b7aabc00e2ae1c28d3894b6b17787e4086e1b4eb9dddef5c8d5cff47cd0b08b24ea8a74940199fa06f22bb3ab9602ff29770fe4c59e2e6dc73ac46e87653bda36b4c28d34f54e1d6eca3099df553ac05dd1fc64bdea66093e1bd3deb8adc2c4e683c07f56620168663371fe79b87d2e866f784a5f8e6a638c810406569f42d5aea9e3c213ba946bc21acf085d359aa0b5d24dee03fb3e4288aeb2a2994f80eacf0701ffcfcb52257d91c0dc323168ca4e71fcdc7c808ebb1f560e47ef62828c1576e305bc8965a78d12cd5befa53fd9693835f8bc8227e4ee549b7f429013512045c49dcd6b5f5157f415335b587ca010a56169724e7b10ab13b0499cc74350e865d61bf6dcb298b865c93982b502d623531864fcaa22a585c7f9d98899e5a869debdcea10d3861fab5ae1f1f13b45efb07abb866eb5477e8c0f7b2fff11015ada01139ca1dabe5218d9e6b5e97fcaa132f9b36550b6fbd2d047b0bc8169f8e9e8de11b25d02e30672807ca927d47235a771fdf0858778f357a2f85931eb10364692b513adfc222d2a46aabb4c687a4eabfa3e7e84091f7fa200d3349c3291b26cb65766a9cd20f40e0dd32c7a5b00c50cb448c392e87928ac6e5ef3a872f097d9ef76630b8a8e2537f8a747c213bd7994054b2eaa747c0fc02dc043fa2ad73f3a0be8627f2f5d712352e04b375a5c9d859dc5aa8a964645558e81fe810d26651628bdca0f64dc62f7f9bd3a6b8f1afd43f15e596bc93366b99559a556d9359a1b2a2fcd0dea8f646a83661ef2822290d7bee20655230a338fb430f56ee254221153cc3e09fe38c8c077936a552c28357128a319ee8b73b387e2542d60684ba91c305df6a343d80af2372b648eb5faaabe7bf3f65ae4ab7aeaf4355d6a4f03495099e2b3073da23f394423c44dd0820f2a397fc04c23283041d39505ffc6b4011441cdc0c55443fc140a089237dd40ce50ad2f3fc9e56e3903576f632203cddc39c877578e3e4b636cf5485da4b5b5a56e063ae7600c5a278c1beed2f676ee17eae5c991a288dc46c09bc49b5fa3be06ca0efa44c4f33548286a934a4c2526dbb9a0ca03e3df2bf80254a83cb9e94a0aa2c51020dae7322022e21e907b7f86f77bd7b03300e2b779ce3031f11238c14ce371936a2d802313f01e85eda9dba3b8f188199c96d351781c501495e11cd88e0aa08578b587c8cf49b10869b34b22a05c46c9ec1e86ea45698f3ba08bc028a03769555ce0124abcf4680a11b423f53e92c7d8f7c201d03c2fe985ae8aa5d61cf3f6bfe0d48617d0e46764d9b48844cd3b066d5708ae88f83a74828e1ef14a1542ee9cc6dbe3b0e9f0a00d675d0e9022030d23e65275b4820636b7d4cb0dfc01295a08d2d00e2b362de81dd4fd4989c6585dd4a142568835759ff9adbc17cca75abd9d0265328d076563353043d016ecf6c9843fe63e23967351688cdb22c16ad8f0d2d96900221a5909fb9c92856fe534a8728748a00df603e554092f63317edc16a51da430aa15d0326bd49ee101cf769226925a5e1c810f7773235395b386ef455e8127a00f8db717c1aa56968018ac9576fba5402293a0fc80e290d72c8ba84e249c970447b5a6827d59d26df889b3706fa452fc9942926abe54e40c7f61d335efe0c2d5ebe747e04be6168b6718a978447974bfe1de01c15965226b1df45b5c610ae0777b31b80c349afe477b4eb661910b7e34cfb587c0f8cb60f08a96a914d317f66dd5bbd8766b74e456ae7b6348250199bc5c0abc237cf28f6aaae8c47daa7c92d83088206c686192821b3ea966fe44d3c5b280d403f61fb1ff8be9b2e87165df07e2ac1b10e3f0a63ed569b4f06f139b1686af08a6decd91d56679993230ce58789b30f4f3e850ec7663d9dbe5e1f24902726cb781ac2160fae500899b1666e8a82068a62a9829579e6a03d7105a71dd738da3df73329298aedab3a0de7854605eb773bd5779b14420e40bb9d7b28925620eda217bbfc36e085ae51eeb04d9e006a5ec5c32475fcd54122719cb55708dbc745461d479ac3b3ea1e009babf89a9249b3a7c7ff4cd842246ce5fc9b765d5df873c7648020de0315f161bfa9babeb3f642cd37ac9e911325442ea9899f0560e4686889a5fd68de04f37ae53233d399846d3d0fa31a12b3f0c65ea6d2df1a279fbf4a4306ce54e538892e3101b0bf1929771563aeecbddbfb0bee64382245a8a295dd178a8ae8b3357bc237843ff573be682b936f528098fb394a4076e9c4e647f3fd1b2a0771fa05d03e135d935afa4280fcaad78164796dab09c1b7da2aef50c48bb574c1f1d7b6ba3ccae3b2e1315731c9bab0dff4220f236c711b1886cd6160758009ffb092d796f6e4a27d316dc3b5004b1586da4c63101e98396b13a881a37b391f3cb951fff4aa90d6fd0c61f12d5e6ef51a779933e46ff9983fb79f9d9630d7ffe9a9e246b7a402f48a62de6e51596193f6726d077573d3346dcc3605a8f2c7887d71e8ca3d7ae422bc2cb16cafcc17089a7913b173b1a500d311c6ed73e6a1aacdca082ca35573ba2a8f9e427ff393c0759e05c2ef68f95ec1c0f6ee1c3170ecc197cf100958a4cb04d99fe9002164f9ff232b12ec8a4ba83416508234f52ee7507308a1f46910986f57c3816dd32e471b9f363c03e46dabdfd8a58b33d4f5c9ce14400abb0aa217ba218fca7704c713cdb0151f1c26312706a69ccc82f6c6d38b5ef8fefdf0ff725f495dab5cd9dc1744d0905e2ec4ed50270f886e13dcf6dbc231db30388e778ad917ecaf831401e32edfcee116d28d5078d29d7d8777a7cbd761e1dc59c7ba6f43444883afea5b5c62826d527c5a0ec22eb8d869ea55df20e660f43d75741ce9cb4a4a7abe1d2a37d07844a1c3dc0a399bdeec86f9d45b6c9f7f0a147b7917f3f74f1b09fb7ecd82cd6ab78114e5c9b7137f5e8cfca95bd479da1e28078ad43ab539994bfc3a001ca9ebaee86df06d36ae7523172e3b45922e4eafc03cea12a23ce8fc7d1691843892a7ee93ca0e6223cb153728b48d3a74880d9c2bb3be50c1c4b8d8835bd87cdecef7837f55f5d5dd6f152fa228ca625b82b25d3872bd4f6204bc60622bf4716a42577571ae72213b71992fceb199efbdb5e487befe511b04854af1c4549af00b4471b06f3e7733036eac93d7aaddaa2419ef771677868559c5e0f377c50c9045c5c471459c23c57499aa3e4fdc8327ad0edfdf9cbf43a8c72b6d95eeca282770c8150602018fe5bd556cd2a94479868ac2069831bfba58eac8793cbee2edee362727d378cc3797839e39f5bc70fd1e80d9fcc1bcab08a310eadb50221bde5319a9760abf1950a45f43d0694664d83f6a6f73d1a4666854bb7bd3b17803da41eb69f545b26358835ef206fb671235adb465808057e98252233cc42ac22c5ac85390f6937039ba217f12d72322662275e001310ec7c1b0feb2bdf251263a280f4f54ce24dd0255ae396ed7ebdfdafc3205dc8267e89e3e2c8639ef7f6f81f9b5ad55dbe11ed52e0af2ad71a7eca442e04b1d1c0434ed0641f23198f9893b8de39042f4b22157bb5988a25c2af76994df700e5d512783f2effde4def90845307bf1cd731c13b66a4dcc5f25829689e40446f6a47fc25d329de18eb703a26ec8291cf65c2de7a9721c0327d17dbff516fc3248e4660c6d44e48d7cdfc7b05dc93d2f9b516ad68903d96421e21e509b9395af22d6008c7015e824ee62f5b2fcb4879e65557fd9705bb99cea488f885a8d2ec91d7ba8d1e3d10d7cc90c7fc87b09d3b2fc96073172692d4ceb0c5f8c8fffa0a369afe7eafa3783a01c2a3b39e1bee1058db9a7e0ddf21c8a83b59be32aa4e5f13cf61ceeae7c794f704b46f029b636079f580c2d956c765c05becafa5964d87e93d4ac76da154e7aeaed3cfaf9bb657c3dc01b246ffa4a407f9eefa2bf055ea83c55c31e66fbf2c940363309dd0012fc6b13cf14ad4610a756338d8d3c1680df3990e3078531c8177b274df416293e72ed5ab40f7f234575b28d01d44758f22a6d4fa45801aec0f285fffc350456139e5a36106d9828a283b576b274d731dba1972a02b898ea1c1c95a338690acbce938829f349d4be331e892f40ccd8dfa6f4a7b4a0d668b63d0d56466ad4181018393fc05b02ea4b378537385b20397023e258942de26b18126ef2b17bdab8b39bcc3f02acbc3170596e5627e9197ec421c31fa2d91105556b9fe2df1e87ae0e695b9bf14ddd7888ff8181dcdb43ee1e5eff6a65851c9d68123290c8610829ab3b4a590d6090e6e59adca4977d8e49fc8095308bcfc14e89d26dc894ae3083318bd06d12a845f06da08d17bffbce113c9f95cc2fad41a381ccccfe9a94f493fcf67a0075d72f5e94a31b865ea93b63d9bea62f1695e15ef64e7e5fd219ef8eb764a6024c62c45fe13ffeaca8c9f25cb68b815d2690695de91fe3b1a5dfdf74a7f30916a9c641b075f022e305b271193c96733bcdb2a87e0b9c140b5019261482b82ac3962724cb3eb1697479ba1f37d12bdfae179ceda2af505b502d2d4a99f40fe4ff368cb030cd4925cc67c2c2f06817ba0ba3988fb770bdb689a8dd75af3b38e805bce86cbafe6da26f070706c6ac5e0ed3bcf067d3dcba5804b201f5306fcc39793554a4ffee749ac806a8fdb3825e77c14bba5163b79b2945e727bd6763aeaede6b73e7c9df42bfbf307e9afdf17fa92d5c40af66a47e41cbd6fae3dd41e67362442e87990b2734271ad73584a81ce8b669b3e5bb4e6e71a209e020be3b0188ee663a1c3a94da14f521400ab0a2108e43c05ede7c5bdebac5bc1653c4f782409120e30167ff81ea4d4ecab9e8b7e4884f8e10866bbccbd351748efebd9d0fc433bcbbd67ff38e375fd017c89d0d74da8a82bb4d6e3347a787d2c8c79aa10e8ea0cb96fc4c26a4f00939131cdfb26c17c80e9aaa1c1979d59e5c5df90cb0a8eed91a321cd4af29fd5ca8678485e611e93aaa44965bb83d2f68172100ba5e2d88c04784a13c3314bcdf81b02eebc9348f06ad3d0d0ad1513bc02587f0fa811fd409387e39c48f7d7bac6fde3034826e5a1c9f6e91bd13a7b5d1d28aff2c4a619d86e75f57c30b12015bbe7e00270a452f6a14f4a68ea8e00b28b25607928a3b83b94875b4c12b0106bb5b69fc94360a0859705e57f51228df91bfe705c1cb4579bd312dca9aa715b65e02d9e452aff2739b2a3fb0b5048389d3a81e9da60b87477c8f0158b22fd432f55b185bc1de18114c6f7341dcf1929329ab0c93154d8109355995e138f4040e7524be69e519de185c341ea2ca772f3b9baecc53e7583cae52fec12c8020d8d41698e9fb108362d2511eade953e99cf41c89e46aac52ce7a92480bc55fbce9801fb60f621b699a1c57ce9435e99138e58293fd0aed0253847aec157ba9a5c5037b22b1d02925dee89773aa27d681546843fabe8af9f8bc3920424ae0ad9330c126b0bfde07b9afbbf0b921648df5a48c0974b7e44ae66dd73ee0c1ccd05667126cde910910b0d72fed6f3f1405aa119417488f3673d50df39d13fcdb2dc6b9c4ead20130a404e972167ec26623b0f57679ce2e419e1eabf3c76c9aea4c0d6397739abc18360cb2c69109de0a3b91d85d07d420eda13bc79510de939ee64b45c0b2bad5e8dfab1eff0edc60b597d67328388c3bc39edd9667eb23e2ddb8b93a67aa5e6aad8c579608076b4fa11a4668e8c3fa857130e6654c9271aa526bc00229fda77ed7b09dee5e4a18c70ae7655e6616ff624a2e26c2fdfb9b47ed83bd6d9608ef46ba9241a193df857ab21e196e9a916b46c3fb03ca85223d69616b5e4eb4cffbbd0f232613cc3117785dae679135a0d29bf8686bbec49989b0a581c8e37ab581c070658b5f448ff934562ac3961898f3112423a9c1ee75d2d07442ffe3560768e5df686049c7f74d08e9ba5a7fdb6cf1302cb5137f0982ed3ecc793a0aa857a9f13fd0abaa383b4e5be71850764732bdfc1518a45172c6fde773881e1144a8d315daea4cf80b6887d4259adf95dc6e5e688ad3df61595f563d6db8084df464731ad95c9736cb8983adfc4dcd7f4c3e038a57aeb61d40a3712087a1e1aef42df33fcf578b0995b77c33cb29a966fe4302d3f0ee355f809936dfd09d27d47472badd2f63ac619b72f32c7045bc858c6d380aeb2b3391c3c0067e1a4e23ed1adb94bbd1b4b8a4a354427fd327b12d45856c6a81ac50238b254e027e2e78ae7d84acb77119c317860e89f85c23497cac94a2111259fda8aac88f4dd53a8337ab09a18a306d71beb1b6889378c2b08df71689e19e3b5211c855285e3fa339d3a45e856211a461d9a7674be41744457691fb690c4c90ef7fe1294178a09079bddc7ace9c7d62f7ab7c2eb19d3128dd9b987849cde6653b71c4a9adce1ef9fea2bdd37c1ec02514385c493c493ccce5155fad1c355bcea3fe95e8acc0a5846e6623a70aa989fc7b2c02b6b65bb817e893ed14428a3d9fc6494b9ec9a6638128d1de15e9116ecfe85841108bcaa43846ea7dc8a57241c2a04f336e52764ce8d53a330e967166390e997fc0ea26057044cdfc913b04c11527a76b7d24389771e1de5b0695364df00f4e357a1b0d66eeae728eceb8e23dddeaf86859c26c3eb94e8b0387d48763bd2c2c700a866753c0aeca0a21b8c4d5c1ab4f702ef1fc8273a190cb854a89cd05a0585376609eddca9fc079f4b015d162f9bb214e564366b1c65ec78fd1e413e3fb9193690d4e19d8f97c9bce6ced1a764627e805cf102f35320701c49070a0cb7d63f9f48a87a1b39ef16272e440be780f9d8bc57c4aead6a1f0f49d78eb46cb1f32e49c8aef11571f1274d2ae036feff6c2a095bfe5e6f8386513909e8fb74b6848c4b70c4a8b26caf9add36bec0537f9b213de9893350ce647406e81a90d6d3ae4a01c9921343d94e99bdfd4b1f8e419eda47c30623025442a55a8807a43ee28b091216f42b4c92f7800475de1e6b72ca0662b76f8f09f6a309f54106cb9a50d0045ea46b3ba7ae18654748ce313189c1b423719d5d6d45cac5d0a7400b489e79e7d067eae76fbe68d41ee7b5de4274fd67286502703dd0b1f458c0afddb4841fa8f60c9df1d80809b252a23e26364111906ef2c6de0661c5900437401bb72a2fde47bc6d36962eff0932e5bd1bed51d0562dd6f00989ae2c9aa871e1e4430cdfe7b03061816cefb80d205c455c8cfaf61be4a2020990e46a753befd034b8ccab165a86903667dd3b35c00f6ad7742bb55a50358d217cc7f7d80408016064c073a4750ef7f9e8553bc61c7a850649a2ef5773e032f8963e4e1aa17040093570314db93437887330f7b423fba064e316053e7818c412a112c78bd87596871b255c16f8db5bceef7a563163a3fc9974e899e7ddbaeb479f1ea359b691c14040407d764f7654c24643a1928fa070dc5b770a21466e8e8b9452bd49755ee0215b0844cb09acbf07e361c7f7684422803d1a6f25d2047eb72c85babfb9ddb19507faeaf5d0de702d676f7ca34c324aa9d4df5e65b138affee1104ca82197586c5d7c03007c1bf0208a31abe4778c8cf8770e486e5c8d015bd0cf1f2debd684e68851d4f6261046376eba58bcbffa2bcd7dc777b28125391317acb53330aa36e9112354eb282e88b857fb5198ee242c047f68420221edb3ae3864a319a4143847db0128052a099a11eead83b92383dbeb4d144d928e0fb162c6f747a9f75ec38cbaf4ce12e6be50b2e7e693d8fdb74c0a1b503de61c63d1dad339f30c4603d93ff885b784868eb1526d391926e6925d7b52a10d348c0bb7ac85d23d6fc1079db0275996836dff33d7b5118cfcf165cad389c4b9b2d95ea1f24d4f2a13062aafba0956cafa218c6f627cf3e128451c8a39a88fe02b58a84d62dbf850abe48cc2109ae5d10c9ec17ad263c49ef14330ed7ed41d211565bd301917dcf56f4ebc0f1506b1dcbfda1f0dcfa5e7d7a39c30432663e120ddc7cd278c4a82d48999021c4ef3cba54231b19e428a1ad8a620a8a8fe0f89675e7b6e39e7d29839c6553314641bd88733656f307b9eba06f32f4d6fa5861fc966a0910fd375cf11b85b37c4e07aa80cbc23a53d6ba93e955ff017d5072dd05902ee30e23b145e12118edefe0e46c101f69b832a2bc56fd5054cd77ddf3d851164da88d846ed74e15b4236e2ce133a94662355b5e5467a08c6f5afc1c45e6be99b788715c36448810e15c33c3e9998527f54c5e819c89f576c33af060f66e24d6b0a60d5d9364d30c9c4a8b6e4edf6cc000de77efb03fc5cc777f320439f44054508d8719552bab42d6e5a6c542b274b9756933203206ce51e67b20c163dfffd402f7e3a10f2a8713f3d89a1e5f8703c2d9c0eed6c7a02fa71d5800ea6fe2782405e475c097255fbe4cbad0872082956ec70494ce9876432261733b8c7be84a5cee00aaa48aba5c54ad16753766ed05366bf324aad2fe73bea69692fa4996342f245d688cc5116ddfd74bac45f3435fa40887f154263de54418f7b5d5bf5a0c726371862aeda4a470ff329895f2c873d773e493be4a4e008d9608eb6d670f7ab83a76031ee812a7d84d9b78886db0c0df95990b88750434493220aa43ef2814868d0a09cb620485205f947075d6d75daeec2b92c8e7937c2bb2e65d80aa77c246132aea4b4920c275c388bae77f0efcce0af7028a5f4f844d129bae7b0e7888fbd8739afd521075208028555421ee334b155bf0fda3746fb0002503c53433194bbdc057607295b3468e23734f5943a7ba463bc0b5fc08a5585ff721b45cafd66ff30980a265acbcb459b437492606b7b16acc6959b7c52602c5c21b3766f01e4f849fcd302ac2929d42fa89806de2cf7664b3ae71a5144aaafcf7e96e598808e0caae731484f8f74b1e24092a75508f24a973e9db9b1ce433841a6bafe0b7f0e9f618d5bc7b7afe07b56a6bc06b3d4325c22dcb66f3dd3a3b10e3a6a2c71e7d0d8a99cf0fd9e09e0944dbd112e0438642cdada2e80a5f4dc7053284a283fcf2fcdf3cd540aea6062dfcf1daec4674fa59fdc906d9c0e844e6fed15ad7a80006c3a0264efccdad904180047e2376ad64261611fe18fb52216b4a0a0b4d70ab80f94da8fce94cd399386b7cf9682c85aa72f2c8fd1d2461f2f26c0185fb3b3e68dbbaa75d660894a32dc8e15d8989c0747afe3c5a25a82e30109aefe9b2093c7e308d553f981ec1763d98b57f98915c7832bd5c026f78ab04fb3f21b1f6027a412ac33308b573443866501c5a29ab26a8b044aaa0bf8928986d7ac97a16eebfd06c2b6c685b2ef5a13658582cde24e5d0f2bc787b9355f4b2639da47a3ebdf850a8e9766f69397cd1e68d14dc7fac0f62d0e47aae7c5907464dae6aa4cc01f3b859f5104098c3485f91bf7e6652d71765fa8da1972095c0ace3e91104f36fb124849a82dc74c094afa734326a8b9d41e58a1c4a91290fb2b9393ce1eb92624b1276f735c5026779af6823f213a7da0b4acb0bbd534b507de0cec952e247585d2af8819d6372b31370153a34f8d6cf28668767fc9729e5bf0e6668c679cc730976957f6a7bdae3b851db197ba3ed9f063d7953e2d589df0f062122047c3ef88724078d131cd1fb3ab1efd580ebf8d3e7c017858f37ba530849e9b78e134bd34742301aabcc15413d492576314b34d68b0b59c4291c81db65ed7f19c6dcf6129f0380e905ec3bc098b9577875d31b7a67d3c670eac3391433e5a5efd90889660b850394317f69c8d0e6654ecc7a2f726d1f9afa7cfffb1e0591ae138cfc1ba50223ea043be8cb6c972318dab6d565d6667b7167adfccd1f48ad7614c314794a53cbc1fa443f590262563bf7f18164a2db2e9bd1668ae8c09bec29b5ec7a30f314ea3a8aee47d2a70d8d6ef080ce53368b38dbe6016e07ae3fd1796c303351e228d4d59b093dbeb993b09c05886a8ad774100b67e3a3981a9097e8e471cec07e4ad17568a1ec465bce4ae0edf6245d2d7072efaa6aa55e3a9243937b236af5cfaf27780151de70f44c909b4f030716c355b32619300ec3c6902376c5e8e7bf053acb97cbe97d28b03820e3487353758bb76220b1933aa87bc8597f070987e7f1359298fc698402fd482cf6e8b7342657293ba5849bb9019c243fe3bcb1499389ac116f2043195b10c8fa62b4d723406119a3943722acdc6c0bb10e1409d0e06943835c97f065b45ea7f4a226295245c438402385556bcab53a9c43701093934dad564014de95d223a4b16d28dd9f0d00745f14ba8410d144b45664e756a97a98aa50331f9e7c18de7bb4be9d59e9b47a7b331e383fb81e6aba9ab2c57b7f06d199595a94705c15d330c98dd963b5f2f9db2be7f5c29abd7ddc344f06812e8b20985dc122198709885e3786231b8e382aa7e6d0fbba53705513b717dfed59d7d531e0f8ce05d364489e3a9d3ac38e931eac7e13e84df3aecfedc21736c1bf1ae2a225236dc51ee7a3fb7244cd5ef094c73f38826b7cb2764dcdbc232534e4925ca713182dce5c18ec783f19021a9f747e95ceb0cdcf643f3532fa5a7b4c8317fedb2b490c94e142baa3345ef084223880a7e316655801f36e18bd3f3a3fb26ba5ae41195fefedf767392140249e62e76caf543d23fcdc34e6638ecb1aa3da2bd5decd6d4dd3af6b94db52e420ad13c0c72e75f70615709f0e5dc9660573f94b328e015a525433a3a3d40c82d7ecd2e778877228a65fc1e05c3d6af299e0cb5c08e1fae5bdfefd833cec625533063e544c24629bab39d0c6c8cb7123a9f6d339c52ebd1e317d4e52c84bea0d905a8f7f7331bc025330985e4f097047bc0b5f5579c2cecd288f3a10f972f2773e1e890701e5444af0de874174ed072a8d04f8925d2b9e716b4f257d403c38830243b9836e57a604681d850eba327e3b8966ef83491d11529bca472a56f14476953260b716ec3ce4b47ed8d42b33a548543ae3e43be1ded6ace54536b46feb11245984c2ba49d8dc611f9ae8d4d4b70c44be706ed7559897649409c71a5d95a4ce7ffc1cfee272c212c479314686f5a5e4e87966e27f7ff7e15f5e460c6c529129f77af5e90e22f7fb47fc85174b117e73bba8e2c6aa9081103d07bb50b0db9abe91e30567b1c000685b880e5fd8c58763641a5812195fa337b348557103fd56886e760dca7316ad3492dcfc3bc120cbda315ce7f744a7d76c52216b3f79168b799399e8458d7dc152c2c81d4eb3561a345424cfccb0b8cb1b7aaaad4de4a7d6f6574bad701b491148b244ec3bc332717f7070938a47198d836f5b56726a18fd569f874ac70a6e3caf173ed62cc972f1fd02f4b1504d04573ac4286849292c5466e329e82b8f3046b4e5b7544ecda2a6a6910030e0dfa629a50cbae5b0ead958e80e16ac5f2cd8a99aeb14525384493ca3ae51e920073cef81e62f0b4ce972300f28b2988c4eac9136c3a71aeedb7799d4ca664a9b556a955d4f342f04a54ee804cbfaefbd72bb5a720fe2bc5a970de54bd8540cfe18852b1d4b4fec82c76c9a6574bce564df2e9eca0abd4fd4fb44cecfbc399b9b1a93c879dab998b618bf39c19bbb72d3ec2c8fd265350f1c8d57155a94bb0be9ef3cb67b4129e052830dad1d9ed5c9c4dd8b9aae75f49ff9d94d389bc33de701db0420059e4c884e29a60b72786447d247d7db98b28014b2584cd875dab5a1233b6a5049cef60565884b432c526fb2fe0b6a295d868f7f9553efe37e464a3f2f8dda574fa72e8e97ae122bacd7714e2adf9e2fe06a52f873e587d381d5248b2dfc91d3727b9fbba67e230bc764c48ba16259519658d9f622064c4cfd072344c581cd6ce3f023b699048ded46ffee1b8dcc69ca0985e4d7faa6cb4fa3334ecfc796f092252865073bda9fa0642171ce80208dde5671bf2859df3cb5db754553a57380e58f32c8ec9c9b802f5354c8e1ecf70bb6ae48ff141f29710a4076039bf4e016bdcdd823048f6be4b9b79abf63abda39e7d88e3ef132ad85221ff9a9c1ef97ae4460b1f8a52b88290029ab51d377275792ad1e3067fb9fa088fd413d74f432eb9e1987251d4bef3dadb5faa775738c97639b78a338e8ad4dc50e46798904ae3ea5a20f52310e1306645c9700b7a00f4fc5236154e8e8774be5beae2acb47770ee9f5f18926579e35da93d2847f69a7870a5ccf9fd8f21fdcf82cacb50f860f3ac1e21cc2694d49ccd6c2bb5a9b186381606d2b78997ee5ea52aa97b42db03aa5588e6d429fdcbda8bec76a7b345e23dfe316dd32300ad298273f66d8e655c0a7e4efa52dad338ce375701a18e4cfe2814c282a091d967502ca25eb74a22ebc846451b3a1a9452fe4c004139810638e5441086566c328b350314bea62b3937e4b8dd3442a49482162fcbb647924f76d8a8b306b5da34a9d669dd3fa21f003fdc3cfebb17f873800c4f741729ea9ca1c120fae73df838762be2b95396497a0d248b8de30ccc955c28ef9374bd27b00123fa4a42d8e46f14947ed9bcb6dd6b0d0b042495df1a6a0fad679b2d68d1423b9ebacc62e439f9ebf5696a330f2c91d1faa1e9b0e88d7622de6eabacd47699c1a9685dfb1a6522671fe31a065597df6ec284b987e948ca63486fccc85d9f43e1439c14ca56ff0277a595a39d7963fecb0cbe1d7bf2891bab4a422598bc24bbc21e4747f092737c1a0a2574924fc9fd6f9566545846f28b2a040cc450c550a2eb553b67d9f88701ba225305db0b1882dcfaa68a133d98ee5ced3a369121503911f0cd761e7da1edc8e5d233906bf3791a1d3edfd5165626e9daa66118ed4524309b9d3d76ed844b237d242540acd4a42cb186f433642fbaca6db5c7e3056678b7ad3e5a16f046bcfa986db57fd0bada7a02a1eae103debc285d13f651681140f74d02316be844666bb0a2ba14ee7f9cb10d2874d41bc6f18ab98696e426f8b5b175aa29e07db8e33a8816bc63e71d2dbd5c37483fe3d9fd840637bb6e7e065615f559737611721f1bd2f9a0b52b0b6a93579928a4b9580721ff5454d84defff468b695f3255e08e118617cec92382f2c523029eb3e5f0718d2e9a2b9cb93084c4b65177825db644970bb4e97a4ba76fe0976e607996a2643ab061a7161ad8a8580b5307e227c73f3f24c3b6ea5725edc68db8d91aa0bc62ce90aa26363c3ab1fde317755a10c2aaa33ea2a89e1a0db2aa8b833128b967153eaaf886fc49a097f1dbfdb5c068df4c025adc6325576876cbf1f80649f79fcfc71cb91ea7647eb6df456768b04df218b29a78667ff1e5ece84605a3870b234adfcc5a91c67797394bddd07ea5b2177e328187b5b04d4349e5dc04790d096f5b224d71bc2457ea006b1d44418e85432a6c3bc15f59f1fb2cc7e47ba45542c939916ba188c22c22db5acead1c5fe247e358c05994fe8bc0e70bdc586821688a3b615cc7ea0d6d859fb8cad39381eedf9f45349fb3860bd8844ef70bb47d0f0a0a010c740163f5a2b1315de08c9eb5582cd8744fcb359de3d26dbbe1ae73ebdbcb2458a7c79471b0e9d6728ad688223d8ae9c77e37628381598b95c908ada28808bf7a24f4cc48d891e0f43a815110f1c068c36de6c24b17b40456610acdc98858f3187bb831d51607e96b62765c9c5574c607b3c337cdef9685b3e739c960baa639cb47706c93da088b1cf17041e677578d1cddb9fd73c157f2cab0afe17ac9374622564329575096df57d562d511c1888f1d1e735caea8196fc17df4925c44f7124cd6a57c342ba412121c13453a3c1fde84fb8b1154f65e3731ebe4a7e8617cdfd0f033bf2cf3c7df68676fcf0e6915bc3c6fc80bc544d417fb985a0746b003e99653695d802eb7ba19bcc8152feb6ad4bdc9547e4268bafc0c3613dd2197a41559af993cf031cfdb18e2750c92d55fef83b755a8896d3cd8fa303eb0f1601937860ea542d3cb6a7a36e160aefc247e0eab69c45fc9362628a4636c5dbb15ab97623056f6fd58f80f67cd7e513e69ce9f5b6dd473e6662d8b4ce92b9eff50379444fb36b35037f75d7bcac2afdba1732c0564ad2198a02be2a93840d38803a5fbc7da6450ba21ad6587e37b8f36a55d7edb0610d1a637d455f563dd749902b39133c51ed03f5f2d73ae8678022f26a795d38e1524c2847c4edd3b48429bc629b5c5a72c8238c791144c26b0745caf2bf742bcdb0d2b6c335fa0751526107875c1ff7132f9b9de6fe29026ee7a5cc8ad07c74b26946342cb521d25ed56756d217fab893efd05b298009dde64e6de5b3da0e895c75eaaac007fbd51476567874ac57e8c5c83c12585a6f5fb27d3f72de8f901a3afead09fd1227bb74efef4040bc335b09ee111324b6f0cd214a2b662fa3c0a973e2fe314c5ff12e01d0f66c9630ef642e8bb9bf8c9d5350c29ee88c334f534f47356cfd9e9c8049e9fed34a7fb2343c673b1d366c8247a9a1f8668747d19e4b95bc1865601b9738fc2e8d614932ed88148ec16c7fb8adfc6fe9ab5bf4ea572fa972fd347b53e351726e0b90d062440c2589b0c73af771e6fb9601b2e15e5eaf3307fcf4885ee0ee5a9db15ec63bbd94eb25347013dbf2632c39751948779975195cc1f1cc7a46b448ee427df17656b0c2cf60f9e465fa51caa0a5edfe83e4803308788f51890b27a86919a75f14bfce91e76f1bc278468121ade1b75a520be65dd64a505990f3b0066aac67f2d79ac54b41ea8fce5da1a3bfd4962512b8d6033a45b738583bb1767220677984c6d6e8caa6a258b73f8a935da00fee4811297cd906b07bd55896a1050fcfb822ad0d29035480fbfdb06db84d2e8241b1b82a841f828f98e857d4fea18ffae5789afce95e7a197d92236e89a0b06e9b6d8e865d0652da5480d14c16dc4a57ae9f6207833fbd1d24276fbc708eeb4d12fe7ab60a1fc5d13b45fef11a17c2c0b8ee1acd9b06b6904f405280919cb98f7e0de35f90915dd68db43db756ddc9e6ad529eccd6c172d4e941ec50326088e9126438c0559c529ac9039011f492060477ec0d197c8ef08342a3403dcebadaf43f9e682976110d2439781d0847bb77e42c6c4a1e160fa71d5901b6640ee7c31dfd876a8e1599aea02c21aed4f72aea3b71af7d7532d9fd7de2fe9c1f2eb56ee1d025b71f0a908706cd4e3214b1ab824c2ca890c9b895d12993c0a0b78be3985c3286cbf76c329f87b0b23a8733c838dde875b3cb89aaf268785b58b06796132a1e6fa7d7e36131d49ad27d62f1b1588048e9d93758a8a5306ababa9f14904591f8dc52f3b5bf2a2d1359542f9373002a4a5e39e9ed6323dedf56a49619f1a604171153cefd02ae46bada3e3c08eea4165df7cdfe4e9618c1b1a0551909f646f08a9f39288a6b93fa89da5d9d04708d017ac8d60f6d1b26769117f2a70e5f44d8078514f93ff2e4ca6832f8bc0e1255abbc6e56705c6b601143e802d774eb58c7fecef97d0f605f34bb88f77b7e636cb037e694853db6cf18e156f2f7a5994a0d49c98155cec4f8d0dc266ae20f5f96affc2c9c2a4c1ff14eb55e9351692a784dfcf54aac88df544aab570360eb0f6bc09267bc24c7ef344d70b797e85ebc54dd414d75791bea4f1c8d70969c45cad63955c809a8a13e80eec9de17d8fb32e4724b6426cb29e276279ecaa0d8f85c97c87470d8eb3076aa89d4dc103a89824123bf230823bfd98e13ec3cbeddb92bc1d594de45cf475502fc8c38e19fe7e818b134a7c6e230120b82ec1b317fcab33c3d3f44af8d7285c68371f9ce1a19912c2b9eb893c810a49a10975d61aa4b974454a8483a8344a4ac6a29a280d4d31dd2dab51ba37b423f972bcd44570791ede83f7d544c01eaa95c8087c783379f1d7382cb86b028861e97b0f9e1412918418c9bb67f103370ebf4647146c7a73d790dec8ab7762e0aa2e06012caf14e0556676fa99ff611759382a3752220cb6483b3c7958b36dad524ec2365a05fb3478e0677d0c0316a31508d9c1ac6c661066f08da0a6637341f89ea19db72236ec782c7b7078d37ef0e228d4030b5d6aeab97c87a547440dcdda73d7e9b73fbe33e335f6734bc45603caa6e9aaec0ce70a5354063d89520f62c48fb59384e4bc7a100552293b2d9bcf114122aeb72156a12ced1cc62c327264e836f06cf3198a83380847226dd368956bfcc0e2fba7179feec71df66d4aa9d5f82977fc6ac0c17b0179da5ff31e3223c05e501f8ce8e421c7e29706e6982371753a68615a2f650263da2f35b772c251e371a216ef27e66db66980f53948da4142983943af347846a276df5cf99a0dd1a951c89d8e8344cddda6e681a902ca89cc1499c4ff5159f3eb6276bfb6691d0d54f0fc01a0308790a42f2ed8f7bc464cfc7c59de36a1bb0945bd1527f77974d76fc0bf084213679ca6d7ddaf5923db8ab07fb07848737d78cd9be4e30f00d14349d9ef180595e582049fd7d67d686a871f6a2eb1f75ecc510bb175cbf079207245c4926e6ce06aaad2573dcc6630fe03597a3fdaeeedecf2e8756d952eb8af4365afe22fee01322de45759c4f0c4d3ab80a9d69c6c6588b96d1cbdcc9b19b649c80a92a840254bdbd4aad4529d73960cf296474059cc901d9741adba38a3083fb16a4782973f7793bba57cf9233d174fb617eee839042704e75bb9dc63af91134fd405b689812a0dae8c77e819696d1f1aba576ac94fa97c34579899c46696d99cb431eb0e21b9a1430e115cd200dd333dc478c2cb9ca9e5069f43445de37a1d9c865c53303705ded809f5143b43eb502be0972e406b27ffbb71f4fd2bdde8c0299d296e5b5d1627c108fb83c8f3880426140e0008f520b08dec2d5cab81c1857c5ab75698ae12e6c1252b98c1f8b041ec47687a8c072781708f99b6e957777e6c0850c08e6a86ab2331f19e73ecce77d89eb62e7947a847910b3207431b38017dae8c7ecef138c02ce3db2147414c1a4bd12dbc1ccfa2351ec34b53aa75d0f9a9dd1a03838730ebd9a8c829125824582c20fb8995024c36e8993f3aa4f4479708b30b7b3b1fa3a5d02fd096ee3b4848f5d40e44ebb4d1602c83d853f0afa1203a36bbc27054181a70315f98d0f52354689b1fec53e707a85bd7039f02957c46f37d92dad5cc55f1a146f2f9e348411851ca6bdbe5aaae584f8c16bf9c2f6ac87b1485f758465dc6349370a5c4d7643739215212452bf67220f96bab9dab7d82c617855dba5e68cdd91af020817dbe1b43d297540e6943a7a5cad0d20283b0402449e70c5f06f2f51c0ad9c1d4b677c02fac0247fa2b362487393ec63a86b719eb3e2e6a13e0dd387b51ba5aa4554b875ffee5ba6eecadf71762e250249f2cbb741e10e88193090650076c0df2edefc1cd3787ab2302c6d533a34c2374dbe1df4a42b7a48992cd193e35049b437c72fa8705a56bd824ed2f7cbb15175e283d3557dc6df7537ba2afccdcf7eb7dad48140b1424e9be44bc397bd857b848c38d173e3a9d6b01274c495f92b03695b4d4bdda3122c185c61510562e4e759af9796ef294260c0185c51471233aab2ef81f8a70362d7fd2972ebe4f2d475cd81a173dbf4f14241365698df7cc9975d1840064139fbd74e1584eed577b2c1b22118cd02cf8a34f6f9a98c661461ae9cae5f0ef85b5da85ed141c6ec26adfb0b57047146b1d7d4021181f648fa864d061638e448783ad8b1ae789d20e14a0e51d12ffb7e8414789ba070ab2064566097d327c12ff9f9fecf199a9e8e5fde14054fa949978271c1f3c8e9561b2801bc99830e812672347e71e63dc4b4a01722142d4401d17f940d768cc4d241274dce87c9d1eedc2f3a14b3089d3906277456b3501822659114ad8dedbd0f229b159c475edb20fee58d3e3929164b7ba4c846bd3b01acf23affee8d54f58d9dbac50f57d298e59488656c6d74abe6fec0bbb2c4601c536d4855fb7f366f65de1fe097c3f2f93fe1df2c013f2083acdbc3498b57794e447ebe8a7de18494deb4d77b150701f3f3b0ad01271267668f8a0a41492cb6bdf988d7081f9ea5b09adf08bf1a241700238d4b3571c62144058561c793331e541fc6d7abd1cd91724c00b06a799b229cf84e81d04effbdaec7fc85d236c8564487269f43ea014170003f034f2115dac966edf30d4d18095b249b51af69775c7d2ef043150b2bb6a1f5ddaed14ed6f28cf295f4d9296f2ba5dda9537c651b69395147ad5bde61dae10540426c095fa46d9062a858b6ed3a099b47e5ae4b4261728f1519bfa01cd1709e23d32df2c839fb903e796089fdfeabe989188b5c1ba8672101b5e47b9b98734814133562c109469dcc80fd814fdbcfccae3cb17d64261b1c66f6ddb0959872c154d139d938af63c35f26eb19215a61debf138d1012a6d6c58329b4927138d8a3c32905bc21c6ec9259791f88e9796eff4840e518ab61a2fa4fc4e55091b5779f7c6ff462d8c07d497fe93fb398b5a99804e44fb393cbcfa0a265e0917e39014238387a780ea4380f18df25f4d1b9e76a9fe2b7dbbf1e6f2dab0d8addfe9e904faccb9ba753984243e65c60a8ccdca3eff5bddd83883fdb38e208bcd75a6c1fab6ea0719a954944d84d46b294c4b97b496d8bd4f99cd02c23e93ac34a62480ecf1c7ea94831feeac0391c931724c4b1c44914859e4a25c2c809f3de01f796a2d5c95206966f28676c9203ac2bd241aae724cd2aec94e7c1464838c47328f98211f5c7dd4087f6f05257b05e3a4edf7213e5f2d3ccd7dd8fcf38871b3d2a243b368b2998207e0e3c92ad6039be83fb37b4d8c5e440ee38588f0b50026bafe1be10b43f33b483340b9a756b85b57fdcca01d78d955517398aa0801f88957413ddcf6e52c2009f139ce83906bce47139215088cc716b13c55910b64132ca0243d1dc3eace9bfc9c134d788ce0de9a3e9d8ef37c5d7cc33c43cf301da7946f59db7436b9762ded2e19e760b53db1a5013ab9ed14b7c9456a96e894adf49024c3e0eac92ff7b4aa276a67beb503c4082e8fd87ec9ee7e308a26e738e28840a95453ae195979512b8949d3b5a9a7b0f6cdb54d505ebf469494a7ff68eb97dabf6a004eb1aa2a6d30020d8b84aa39781d736dace4cf75239a59a2951cecb7e6b644319b62a41b87759ad31bfb081c2f4a032de8ba26605efa803b61f54a442d58842864cab7f68445c708410d7c6e21e63ef5133afe9e428e04eb6d0e9227b122e8a429eb81d683951d733a19ef713d0be3f4acc2eb91c4cddea7b29c11b4d562fc9a5d91d87fdbe5b18a3e4b8912285e8c8829ed7b1ab9b03bd9edab6f8d1173dd2e953714181a43f7cbd292f7c14ca65cfd9227c75e69e0d717824a3d3931cfee9b001958de26e57a46e07c9799d6c24f8cf834a07f3d78983aa8b6a37155357637d7f9dee21f7956227d923b4aa7e55610bae4b7350cac7f1959dc0f94a7de47939aa61c6d558adfb5d4b8dbed828b6b9d8f083334a51ef8ee3c4ce2b1babeb91b0c7343ea530b5d40af8f27ffa4c3068a32e572f87463c7bfc2d31f4e68455e4123f8d40d12aea9e2a13794b96f8fc687e9d12647d78981f92bbfb40fa65742472e1995eaae1600d3f278a0f69a7b240a017be7ff8f00d5d160bb9a41c47a4dc4ac2071b160cc601cee171ebdf55e948e3fb96f9988bcb544089955d04790d16f59f7a390dfc85e6e0efd4ab9b635ea5459ed67d50dcb54a8b96287ae12e145f34dc79601e6df59d82ea97a6f545c2636748a6d4e965bea9b6bb8d4bd1d83e6baa04d491eba255074553072f770a9aa311ca62c67d207b1e44eebfd86a4e9d5660ebbabba8d7cd9bbea052635fa9de26ac9991e1fc4fb811fde468d334c9fa0d424f1aeba0fab30e075bac6421284457c6842971aaaafe896b7c96a22daf647c9f14eb75b0bebe2d3d48a123e28b529f92f010649fcf47a05e2b0874432dd0e5ad0d85cacaf8fa7600a978cafe9bbaf165aaf360460d5b41688706e9dda1e8450253316f744e9efbf684af778274907c3a48d2c3de778cea62d9f6df53d750a11c2c7f23463411304707e16ab2e855d12f19edccfc4fd86de5c11c10710ee1f6db871d03703cca3a22ebadfe85b5fe3d06a6ecda07b9948ed2ed3ba9f8d8abe501053b0031b5d42c37f874ca248458aea5c16924bbbf3375cbda0bed1dc4d32bb98aae0961971c503c8fee0e6fbc803096293707a7b0cf8db7abafc409d37bd90d716ab7e8c4d9606946fd207727522288b60eaeafbe7b62420da4a857c95c726f39fc654497b418fb9545de0562f420cc1c847f8af992675a2ad5cd9845c93f31d71a4008be7debb4945e57121ff70ed93c5f8344947f7db3b0ce6ed2ab2ac40c8885d3576d933659c4adc34d3aa3e8c803c0adbe7bb42044e53734fddf40989d3cb5746ddc4d6d33ee3f83989a6ba9d8dbadc9293dd3ddc8c80d3485d0aef9e39022e317140dfe8f0f316b8be4a738ebacf48e8f3c38a53e4c4dbbcbd09df9c3542256350dc2c43e5675d9f0fc022f086d71494a3b67066a95ff19a4c3818984a49a583f1f0de1162d1515455b4749d740305a8b2e12315253daf5d815489b549112a0bdbe4baf6e582e503d2c7388282cfec4d465b4d6c122e63ba4887b29c159de59ce8b2f75a6224c393f443e526c5250ef7e01fcacc702dda539cc264340326a3fa2b0b80b9d98e869e6e17b603ac7a2af34b97b5e36d932ec3aea7f26a99de5200090ad7139d628287f4002f1cceeb0ce76f25e2c2707fa294280a60cb855d17bc1c3e9bae36226e28efa01737f6e292617271a61740d16ac5ccafe878ec33121536b1e42089e5781493cf7e157adbf9ac09b51f93b416e61897df33d2f0868e536cadd5b993be9341bc69e1978e4bc496b667095619012663e7228540295f3d182360c0b8cd01a9a23bf98b1aebf7264e8c4a9db0c5684afe31e682054549e5760571060586ff039b257a35ae68d315e5bc35eef283f95b455e2d589d561d58d8cb35c3d7d54cb2bd13b974ab301a443bc322288e43e8e07641e2f11195330a2da8f2c35faa2bb4cb8d58fffca81b24c56efd47f3293903d562225a518106939ae1d8e15d5309de35860e985860950fc487794644ad9622a62e5193fae3b46a982f91381976351bad3c9fe776499d26b07d175b827321c6c3691c9c31c2c3aa164f9c7a3cd1ca8acfe65d1218837b9b1dac1460e08775f7e72dcaaca8573b80d754b39ad88b6c96de670048e378001ae5d54cf1ff17d18112b3510be72f883c06be4bf39de0f34cd4861d6c45bc66ee8ffae4d4f286eed2a69bb533d4f9e77ae103e4f3e67a99c14170b023102c46497833a26c3b824d6b3a90b98c9eb7d8b61c065725bc0d14930f991b1f1dfda375883180270f1a88b605bd9e78cfcad1894ef5a4bb50be2b433cb2beddbc8e4149ce8e9d5f2e6b0c19b6559be7a999b9dc8a1bdaf8f6d8a877419b32f113694e24e73e58a11ed355cf69e7c4220bef28417f0ccbcf68f2e46e6a6090b5cc864bec7383e4416231913dc54fabe39cb16b15a8ab57cad1e523999ea4a06f7c01bf7a41dda7afee6d735c6c72a218a052bce54313077754c15683f8fce1ffd84d8a6cf605869a4595081eaabb1888014abac70397047834cc1b562f4fa9c861eb54e850e68829ee3953970aaf831ef8393263b0d62919dd9647487aae71160bdf615f08d6eeb8db0d5f989e0794576441a51c8aa39f0f4b080fecef9cfca5c32ce8e88137e35fa2e4bec6e5dda554c29f7fcca2151b83c11c429ce5c55018174a822362c9ccea592445c12a7d496bd6c3cc7431a57a6ed42d9a433019287a31c0f88e53858e57b5137d4a435f3161228bf3c534ccdd5e40c42928a4afbd2b1ea18e416eab1b8d5a7e4395ef51a868add0fd2e806d798c23c44f2dd4e1491743e6a79b7ca4f8eda138e9accc6e552caf002b2bea9570b8623e6ad4158f02f8e9fc50675b405c92ad93999e7ffcc285528c9a4502c617be317fb544e67850470382c379b57abd9db7e07b174e62319bd3398914297f200bdf03fe16cadcef82d568ec575b74204085094bddc3ae2f8bd1fe35cf98806dff58b87106811bfeb6beb0b3624ac6e33dadc6f7b6faa3ebdc9e12225ffb1f187924bf72719ad032d1b0ec546c66139540b76a0f2355c19e178d12e202a57115fb89353322e5096be61793a7aead52af43bb437fde067361de92c259b63d5c991a94d5c0bf8fc1f46d00a3e5d325daf1b72f3f65b155948fd5391e3de5a17d5a14a6639cae6692bd8fe42736a3220ce9e48d1030b53b1ca1b0e850ffb6520e17a184ff75cdb812707c4c95fadad9a2f5e0ab1acc8f966ac0eafefaeb950847e2db77e1367bde239e07ce80b876f1a7432093a3d00795eca4e599c503de0ee5ea96aeb18b5d45fe1bf470d33363043da7bfdd8e28a8df839a4f8bcc40b609ce310dc934cd73d7f6828a74b0405238f3590203aa1f88b8363e1d4636587a3defb7f87f969b571fc2704bdd7723e07c7348101d256531ac4ecf60509ef18859a53600fa06f2d404699fd318c164dd78cf8f4c858d18d687473aa2d0ae98b12cbd1a47b927b0fcefe38d7e7689ca57bd2f90abe48f210ebc0177a5a279e5f44fd66861cdcb7081f7b39edc80dc75e395f4087635fe318d7c7d6761e04a50e54d32b9c610f574f7448054b6241ff98ee51e9bd71215bd42420b51fb4a8f88e8382cf6877c1a02151a491fe786e74179195fdf84656f177a751b9878200a18c6e5356b7e60a0e6a460081937622cdaccd719852258983b7df59b650715beb20cc242861c208761abf8515e05b90675d19fa5d3dba88a9578927e64444ef3208dee86e57295b4a10e78cf38de40e2a59ff9f4135f9e739c988205499a5533998a822c50904a9e3936e23b408a995e32ef99c9c52487dde00ca9d17239d030ff9746e3484ed1bdec45c8f47bc57453cdba88894b95ae4b8fcd56a5e09f2e08b620df983de29de85855bc427cd91de3595dec8d11fdafd16aa604947be5bad57609904d7d664a453b7e7ef5ab492473c7a6e1986e22d6a371dd56d8c487693825efe659bb1b42079da98ed45698d0ac67b7c0ac36643131e4df2fffd27259dad002f05c8b8068e7d6243d14e0395d684308f7f20be38a278c5de9dcc5e6f3dc305e2636bf4ab28ea5111624ffdf9fc256b6c30b3c92f069300b6d6a369e6c53fbabf0f8af635b206efcc9ad78440f3a2b87c2753555df45b5b76af943059ef093b33304dd434efa5a38128407f37d52128354632e59c6179d56221d03aeb56db0ab3ff80a6b029025a47ef8c2e43df65fed0bfc22f6f096d0f609831afa7fb38bc824a632b6aada9e884851fa0a1f5cf36779aed7d4eecc838907599eb4ec1fbb1a5f2c163074c7b5f36b5394f4a1beff3c132996bb1cb73e0758d17bd6cf06838f96d694552dcb247ccfd4fa50dfda04180b87fc2e9affdd831a9e582bcb6da783244e3dc98b5052909112c42c468c2ca74af55694a6304a3040432c67fa1f809cb9684780f35cfe5da56df35b1cf6f64c66e40a1a4f5a70f18d0b910b326801ebd94ccb6ce3c4dc08d688596b5c7d590d1a19c0b3a390f0dbab1330cfc1e9d944e031392a8b1ec1adf94d61b978b915b0cc81432b646fcce9d408a34c343d26710bd86c398fba545665e8aaa6678a131b8b7078b9ff770c56c89e6a62ab87147a6307c17068869ea81fd89f90692e5962f153f34f56a6313ed8d8ad77a7ea553e0dd0b8d63499cea78daf2baeefe2fdbb7ddf5dd5b85827747c17b382d0008432fda005b0134a4bfc515e9f28486e530e1df2ea0516c0ad9828efd1af488cc728151173407c184b093003a66e1182ec7a9405bb45d0ca9ea1fcfdb55fec777a325ff8a64a26e8b6e4da1ce4a4e47b5c9caf5504d16947295db56857a3c51286466b5f5a26b3b0cebbc34eea3a3c8fa67d04d910724f6e51d0366f6a29c1e6f6e2fdb7daee92f2e78a4a750f477f73246e064dfab1f6b0135713a7322090bb87434e85414dfd1c786e91d01302d50b7f95bb1263e44ec66673f7d12a375574225bfeb85b6c2af4b93616c101814f60673df79b19274b9909c73d0177a6d26a963800514ee5bdbc413129f176a3b2f57777559afe300d6159875481e3d6502fcfa7eed6862fc68e3783c748a8d03e5b38b3ec00b21ee89feaee4ee12e28855674a846a13f03af21894dfded9a83a27b0f3307294f43dde28237a3dfff3deef6cae35dcd5386413c5f46f84664858a6a6a50a0670b4db23bdd600a6a3a66086aca85fb404b70eef710e694043016b388a560869e4bd5f6cb2490f0fe2d215313c08d6f8346e61a9203a01a2c7b96d5946ff76596df2cf1063131d50f8255bed9094b2c03a93a5eba5e4ba6bf28105a5af7dbfeb2251e12a314ac1b58a0d3818f7fca9bb77c5ac63167cc5129c251c5f04331e0670e603193b8b637f7e2a11f99a0ea5ab79b36e4043ee204279e266eefcc1d2e6188caf0020946d63a45413362173cae4e84402b946ca3e5aedebab5a6c4e369a9133fd47d4a0170933796a5bcf79abd1c6a3bf8620576cecaca684d370e0d085a4b4951886ff3d8e11deb65a44ad5470fcbee9656231a93e30c66d2b34cd38e0685a64e2918c4a02f2933a06c13799d13820b796ec41aeccf5b531573c47413789a848da860821eb3b21e89700580e9a1f2ff360ba1fd1c494f81cf14b78bfe8d91238753b7a29c1c6afd229a168d286c73bba8abe2e20889f66f7b9d2c6f7a73fa1ddf0f10e087064477f3c1c3c69e188ea03e2cf0d8c305677700fee2897fde5b9cac88c2a4ed93bdf3d354fcfad0e1cdbc8baa525330529fd877bf9a6f6c4c58bb942d3997450f34f00dc9394170108a59165e46aec070b008026af6f49ad7bd336e4c518bb1fab701cdd68d957c6608326bf39a5fe68949f0f5ed81f40ba6ef445fa029f1d02c8e80547aa08a2f8d549e8a389cd890ff526e2168e1f9ec446a037123b246caa8d80530f5acbc74a117d14722a558816b7bce863093738f6b286f880b5ceb53a89fa528ef849b00265a8d7923168764d5158a80004bdd55080c792dbe4bda4cdcbbf05ff6c109879ca4a9aedcf7c9db589e778cba800782500217a7e0be31beef4e89f027e56f59c30f5656ebec1ba05a8cd9d4614d19d9dbe148008f099641d0d6e8a1cdaaed26e1a749988ba3d372778263b1765443334897cfadca1f37d5130877835b05ef0848d1e64ae12b270bc1c776e885c200039c549bca24de5ab7108885718d8df028750a4a9dc4292a294b1b63c078f8691501669fdc421cd38da17c0bff68a4ff3b679f5000da1a2d638bed89aa724c6cdf0540434f242ff77dcd32914e3abcb1c614d1d7ac21910e5607843919e29759be6d49c2e9fd04c7c3d8ff2ad58a000206f6c2ab881fc12f47dd6db5dc56e3347d0fbb77381f9b6a1b4342548afb8690cd9527eb554d86e17307291831bfab89da32718091420c0fd6fd1015fab28064d2c261e3a466861a8d13a94e94207120226e5bb49180f0d068eefcb5ded8f84fc0bd4dea4ea8fd2aee9f79d8700982a2275761d5f0f3e4841a5c019457f122703ab808629d467d73cb89bf99fc0940b4e7ea96c47c02579a23e18eeea4e01e2a656453d0f1d5adaedb06532330f7d6be087febc0fb7a4414355362715a8127704e93ee7cbe34efad2f7d4942c1fa87499a61e620ec273b38dda610c76c22a8f3e55ec4112c6e872f6e96aebc14715e34648a2f47675aaaf8a3253040234b4140e21ddde096dd11f48943d21a480ccdb96ab27b996a75302f6b76ebe2c7a8850c5e6af55f1ff156d353b5ab4e9eace1f7d63b96365f311aced33cf585b75688bc5d260475cab934667d4f7210f45977c24d98471db38d40b8e69204d40e80436dd26e80c182074d8208a79b604792a9c00c7e092ac1a9ada908c492ee5fd96d902b8282b8315ba32823b416b040eb89636bda3df997e482b11c6e780ddbd085367722ee6ccc2dd2182fa51bcd5b4cae73c9fcacf8c128ee0eab398387d9bad1ae8d1bc8d236579ceca8ec29f38bd08a945256f3211c3d74ac8e314a4f4ea8a9a80662d5d51bf05f6c4f2ff086c9e8434c05a0e9d914455e0d45b1ad2e26230d577599e08a994a6ce05d3dfa127729d90011e1f0def8e0d41381427b9469f20dfade170516c2f07e8031583a3eb766f47eda4f8b5a95a03f9f07b03acb6a2c9ec9acd173c08db469b6f4f08f93c8ed48b4af40835d6a969b262f01ce56c4e0df747fe35c19b6bf5dbcb4a0e163fbff4cd4b6a5ba6873de8c9ef47b03207ec5938c7ea0c143fb31f7cec85062b20b36621b1356f532c1df076424ac40dcfa85204791b3bd86a0c6c35cfb457a1f738e016d8d95df6971520fa7d34f4a5fe1108bcb7aecae0afd44609dd3d50090ac176ebfdae51cb1b33b9836c370aacbe9dc0e05bd58f52a9ec1eca01b9e8e3e0e36f2ff35e4cea194b23c4e2f869e587225187e755d743b438b2df2f7956f247d9a146826b3da3f6748158fe0e4bd22a5e05ae0e09653381236a98d6ff6df50c016464d4a668d6278956859886c3f0fe711837c05dc2f00418c8998980d506525d0fe532b91c8367aa39f14262a266a25ebd89c9d3dccfa70ae241986907f65d130f279d9fb906bcb89a5168151a1c428db71bad82f441d3edee0b9cd7245319ee8045cd2607c61ddc963bb7083b91994c83654a92da2d273ae349151d9811d2da65567074db3aff00dd8ad1193ef8b8490e0384c17fa1b16f1dc5054287ec726b620e897f11a0e154a21057179f5e271a000327e1d2b67c8d2218198016f716570fec2d94cfb56dcba67cc64707ef25b592a6f457efc5a7986ad352c77a02c5f7d94c16d11d583d9b49b25be20796b0f8fa13d69e9b3e0a1b3dbf6a37dcc329cb740db4aacce19fc1adfb0694a493572261bdefc217c30fa19dccf7a908e45af3d797e967ab95287beeccd4ffadc33458697e80e63b5e163d48874a27f66208b6d180c6a50e88c3cc6309a236eca60e214cb236bee6ee1803be1a607015f904ff261717d1a6c262fbf6fcc442197732eb7ec4eb15bc22d98c613ca7757460b9db4386fdb0a69c1214877b67a1abcfad84ecfd8449339a0d76a38c68dfb0afe9fc7b6e3dda398169655dd8aac270b557a1bd900ecaf50f52e23e418486ba302f39db145d3a4b9ed402b2a7528af706885ab124049e8d9db8f5852adffb655dac0c868c41909b353843407c9fd2ca9f73ac056620e06377e457be6549ffceebcb12aa7b75ef278ab741eb1237e67bb8e2f6ef58fb3c0fba87b78d4ee10a8b144f8ffe5ddc3fe0a33d5c729e73077d4d5e7ca5733575f222f7447681f5c5ab7c8ae7d4662ebcad638db7352538eacb9600e7f3c0ebe02ace473563013190916d7426b9643b75c9a134ba0a2374386cdacbc3698db7e6ce53144345d26cfd8d441279a2489dce6250bb9020e1d40cb223ca000f618a867cde972abf9ada535644e6b3b33235fe95dccca7f435bf785ca93f72ad474dd03715472ce21e5c0c46323ac98b268892b247e732579f900080ece851a9a9486b99f26f8dfaa5c3577169865626c9d2e8d1b250aa7fe8521c41da94ba693700104de3b2186c9d6996874dc0184cca75b5bd56b14931ce81bb5e7a6a2b51a95c0ce0c558989e0afce185470e7193db2e802622b58def523ebb8cf4d00b4656b3c2dfa5a260fa9dac8239b63ae7f0566c242a7885bb42b54f729ef63f20cbe27927484c31c4f478ea77927c42a4d7f6eb522ac9c05a0c3a9e2881c53517a88a3a4442ff8b9e2cf9a4f4c51787f6e941bf0cf3ffd2b4eb3c689a06832fff21c7abb8320b9fca961aadde40677fd0398cc22b31fd3658b2384e797f72c7cec353a43418efc3a9ba422b506a903d4819b08ddb389b369be8b976e925460cdbb6d302fd394686a2fe86471a36a8c3177be0e71a1cf43312626d770258bfbb62ab99866d26c9e19d04c0123d870cec1ce336d23c11e46319e2bc6453a22b4a03515405710100278616fc767062979dd9e6de4e6a2902274fd0ab655a9a8887445fa15f0c23800dd0a222769ef0151ff43d01251e5789db18fde56d0d8958420a2ec914d305cfbbefc8da456651ada0b862d003a8c4eb171a76324c54e5717f24de245c708544b6ddf506e89a3d177d91c25891ac7a0abbc06abc0f8c9e53bdc011f138206d86b7969067b7c079e047947ef623a2564b24ba20e4e20537c840f4348f133456776e9bb6360094181379f4bb921f555107337bf889de85aee1973656770193d6b2fe7308cf24848df6698e840a3265150b62ba810505c43c9857e48e5c0b37fff0e92686affe338fcf615e3761f4c5e52371f19f3a88eedb9597befb456fac2aebb9c07b6e24f6c9c9a40889a0c83dd4f293e1be7eba24a3f8d667459e12941b9c5bd47d6d7d5a6275d250148826e947800a0c17408efbf015c4e7b87b16256bf59df67560149c478264a27a6eebb8d3495d3a02a154fb6588d82cf0a2c6a94764af40bff9692f56a3c98b14f6abed5cc433f55f797f21af12da840a06eafd82bfc6ce524da13a4ac36b3d327778a2918ce10c0a70875d2021182475c2d112f1785d4204bdbf1782f5eb0fec41ff40afbf5314591ebb151ff4aca443df6170162c8240ce7fe2d690cc01fb82197a099936fde2b86fa8a05cbd2081184eb5ae26e4d3f32e16bcb8a000b71f518b5e8f3e9dbd124daf05cce0398c9a9df0ecfb52b3a787943de4b4a58f2b3c4a035b3952a08484a5f57b59e492bfb48ca42f986875b3acd93485f55fc1a93a0cc0c4c54fab9fd982e8787c7b8f01f64798df5cbfd7591ad263b9592eb994a27f083dc0d2f035faaafe395d1061b26d026a8f2f78005d07e7b77cf4b07fa7220845fe103db77392cdb99799ad947c8978d34f8f0b6f4eb2c3476d8b3bae0d0d45def36bad234b8f7888b3c018f3c59e38e4840e28f08bdc1110b71a18261ad961037add45fd7da51c428fd8bc59c1657b0c90d1e0befa4a46db6e4e997dc39ff6b96446c222d9ca216fc1d864d6d9788c7a42132c2dfb457da6500cfd0c999e78d9b7da5eac27bb0bcfed2ec68f2ed9c28c39a0b16d401967154ee81ec596b73ad44b9f0ef46876aece653adb447e6c095afd5ae958519944c799affa3919f2fd6f75f201fe41be72e058d10d6d3078f792f7b889477899f39ee4defe8a36f911d0a8027dfb779baae848ba3143212a793d1f42465cd1730b5052282f13ec980573fa54fee17ed7f52f0b344f457511080d8416ded6f78309c342f3160be443e705533db550cc81b68d7a6f3df3ffa37359ba667a4a8cab8d226edb8b861190152f256b483eac6e95bc230e0dd6b8b739f686f85cd16ed0a6a3f92e407804b89fb2765dec28cab3160ba1ab421a51096f6c10a4de97115a2f5b1b6f25a5a21b369218e6c9c27e2c3eda0e53e1463bba375949dabd58b9b839b29bd49eb1e5b9aa0afcaeb45437f9439cfe0645db5dcdcff23d1abda4dada8c4b03c883b259b90191acb13151f9fc58459238cddd38ab23f66c79910f04b5306c8c69f2eb5ae6113119becdd1195c7b60f65357a57da0f87e5a22219ceec30a39ff0bf2a77c2cb5ef01f9c3f8bd045b3a45338967f75ba58c19d311025f808a5b78b3e54e162089129059f4709e244ed4f9a8eb552a725a359f5ca7a67bee65dfb99cce2baf763f6fda2a2a86d5af55917df8d4533edcfac95024f2621c12665b0eb65e86e4887e24598db28f34dc31cf075a238fa175846c64a44d71627543b7f622dbfc70d6515e96f342a7baa686ddfa7bc7854e7d08db59e92e1c98a39220d3b7ce472f802a08bca62fe64b4c100526fd1e42c819347107164308f1afc00078808cd14dce6f8ef841f2a2b5d1e790d8f31ed8aed168a275e0dd3345ad1f06283c82cb6ba99f1117320069617dd70b7e674e6d4511656e0910b8054a370392bcdd5aab031fffac113ff1a4d55abf2390d5905562a87c924c05fe041ee9ec1dde09f1395ae2dab2d6fef53e48b709e506adc00e094b6179f82fae1435e5c8690e9c119e24ca5700f45b9e9d14a92f4014d419255d137b2bc795474cd4503a85ee240e0d3b4fd3ca5d16f0cadb854d0be423744ab4fbd0c1f350c8c755d3f7059b641f0bf90fd4881042cdb57268c7f14de74d2a4d63811d420efc085e1b38fd30d197655f4e8ad8dfc8aac987affd03e35fa6c49790cae5db901ac405592e7e8e18e650a771e0855ee29656167f11d98442a8590b29a30e4f2cb631bcc296c729966754b9821b126ea08f83533eb974c03624303dbbe269804bfa3f4f1053626ade0aeee5af0b5fae6629c5bd1825637b5adbc04a37fa0473ec393d18ff16c74737c21751cbcc5fb86c85125d7bf3bc1dbd9910b16f3c555b1fced5c4d1245d111cc618bdcc16f1c83d98520f9b350548e420435a9cb674938b447f95cb19e42bbaa74cc44b1e3b4338c0bbf1ef83135048e2b001db98f1abeaddaa33b5ca9a407533ca1c07053f3c12ac1f95b2227c34d689090eab2ef202875c59735e30b5d26323143462da711352915db0633628726d584da87067af01c722ea6c1664f36fcfa13d4ce22b87f6d4b274714508102c634ea725f4ee875e9da13f5d33ac6bb9b89b2c47b225cd104737f162e05a4961012672d1e1d52d88131793a38c98d9514fe3e3771e43bc10af4fad187ecedb81021ef2c347cab0acc89c9105012f04577d22ff241b8f9ca0e3ad207caf550d8f18948db91ce066a56d869c1bf1270d6c5a9dcae2bc746269104bb89dc5b91818676f8ecdb8e9f56e47104768c23abb82b7c4a08ebe1f2539347ef065582f80d0085bb6925560ffbab05d6b275c7a118295987780fd6cd0f0a4622b5ec4fa6d3188d02f4395dc309796c77052aec1c5a0acdac77afc6af4ee868e7d0ea624d59366f2a5a8fb1ebb1bfb7a9db0283068cae51038fc626ad4c75819eb1a633e447598368dec70a8719173678d0b40b64daee057b5d9779e173d67f2ce5fa1369c2507e1e6b7c0e21486a97d28c9edb18f276f05e472ab4dbd91598766cacc3d1df00e4e09e91bd988d3da3db23d2f9bb285191b126610923689a4babb8f92ba7beeff0c37ad9480fab45896cc0185c0c5dd98881564dba9c79a142a67b1674eef189eca0efba59035a30812887975130ef45b3ec0a7e7d7922449c5e47402ea6dd2a40b1e42a9ebacd7e556db8207058e7e0510d49f31d4eeb336b4748fdef184243db720a36197f7037bf41bf34a72fc78ec66a08d5dcceacaa48dc24dba72821a8a71b72b7045c4016c825224cea0fc029bc4b33530f421e5adddcceb1a66e02f20c69e5fdf6b85fdef0e8454294ba9c950154b4314a640e041fcc6a6c40624928822b1d09aed57e44cdd4a0273bdc44d7fd268aa9713dd56a433efcf4335a30abda03da6f052e6ab617458c3c90120704df5bd27ec8585eeee36934c67ece1c0b1a17dbb17924a6120fdba4acd1c0b8e15b9cef8682e261489e8bc7cc2c579aac737336ca56730ca0ef1ff75245ae01fe72dfd0906872824b77041772d8ebd695a61ba3d183fbac9c6188e41f7a8fc3b049b6323e442ee850aa42ce741ea8a903513175250abeaa874dad0757308b79863b1a810c4ce89d4eab9c29bdf0afcb81a13caf90f6f94d85bd80eb8490429a8308e375b8c61d6c813539209a971eba93ca276c8801513c14fdf056b2e41da30478d85f1c69c513b14d0509086c57bc9c4f7a247ad1a4eba3c25a6745c19a156bdeb4f0121bd583ed0f77a5622b715744f8b1dc208a4c8549dd7868f0f494a5f583afb5dee5aab0301eef3f06bf58d6a6e2fd1a9e3c8bfb205faed470aabd99e12a07e07a3ba55fab0791cda1532656e24fc11c9f76a99ce9a948525100576df9aec84c95bad6454be9b1cf11736544f6c09adc7e19e2532943218cc6ae45149d27aad75550105ee5f7559d72c069621b1f9448ba0a474d0c3b0ee0e678a234752e316ef7182f0619a7e51075317a2105454c5a11970436a075ca90bd7e8fd23e47e9d18b68a4af1ca0c59ed509348462ab0f63393c14023d55fae6290ae9c2706b977bacf224ec72029f11f28ad62aafbad7df53cceacb4b984878cea6375c66b321a9f88b26f0b1eb7b212a90589d304c3ce26a27815f8ce3ec91c42971f137ab38d7a5641d4261deb0744e01f825d76d3e0043a19315b480c5d7c7a19e6fecdeea0aacd46409cc8102ef3a0e55afef59ca8f1dcd6192cea234946774a931fb413a081270be0d39fa139e1023c5b1f19f1a637448f6b9390734ffba275caa0b0307c98c4978b4675ab167ddfa74873f0bf138a934f0680a7eefd31683e80bff8658c98a4376886f386bf1f5802a9ff7af26f4acd5c77beb02c0ac2ba1c64aef7e75208ef8709bd13de23ab4f3df7522c15882b59cc4af4c15712ab8ee94c0acbd1efe96d187459a5027af3eb37fc2d6ed2310184acc73d036b1da05c7bfa15c8c72b650f9ca3d2cd94f4d718a3bdba1d3d4e6bfebcd8ba35c17432a152beccf369444a64a97695837916d505f6b48709ebda915bb7236e27f3b08f5f56dd7b8896e4f5240b226f11211f28a47240e278df1b579327916f400614a89ba0bcfa757cf201a9a08d07991d49502d3a80d7a245283c82d4c699f9ea8a5bde5a2bcadc7d1d3a71ce3c498d09d5d79b71111732fb63b369b85688604bf0fcb5aa5b5b95e2557e9e7ea4e635be1ad42d76592fcbeaafc36b89a4f296a96a1432ae5c7fa95a989876b110872dda1a79e721531f81365bae11d2c32d51ceffca68882788d850b78ee39d7b87e3974a720e2010065c321fc1c799d0e55b87b7d2f27d91f4140d0ca4f361f8a51df4936fb05160ccd92eb09c5c9d84ed11b6e7ef6c21b59804a73912594393607224c47a1a4251016813adff86170b59e4ad8381f98fa41482c86b7bea7fc94acc5de2365fab77c6efc8f7945c1955f7dce28887bcbd76131d40bb3b21aefa1eecea2820d80a35954574c05bda7270a310e8e2af5fd2013d9863a20a9cad75dbe6929a409f456bdab880cdfe602ba3d52fbe60e38f95d4fc6942abd09d2703cda04f6e92125d50e2887acad7338a4d52fa7195a57deb40413ba8c1308b9f0f035854cb765633545269b9a76afbaed4d2c70abe5b5e61891d6cefd2076e13d74b1b648f3cd25f4a7b05db54dc43ba170b00c90638ecc983ca90a3a510762c34814f7819b0b0134a22780d6047fd85317ca2b4c917e4e942d9ecf312ed74fff4a02ab752125f0ef6fad22944d8fbed881bbf7ba01c8634998bfcf50b115e5dd7e538ba6fa213a21ef2999e6f4a77a871f3fca063291898862eedb7146fd0b38ed8d924241b43c8ef93442a4eb68caedf8813fa70b5635ae30223231f51867d751ac08a42212b461d4dc165df9fba34efff527ed3993405dab8b5aeef7be442cc7d75a602a748e1be02ef1ea4dc663343af1b652695dd6202c3ece175966e2aa8d9d4df67b4dea3ce802583ec36577f7c1062944d44b18a2fcec8a6c2d15019f3e98c2282da75317b8baa19d1ab3b724bc2325f5d378bfd427b7b6c86f9d6631f76a10483d4582bc0f33a8e60c02023de9e28944b9b48d29610eb194168f50d71ebeb3ce17e15a5f6eb874bccb1fb2eadbff6db43aa48f2d03834d08dd5c19bfe919569045affa84ffdb6e59d332411e9a5e267b9b5f165310d247d3498f571cb859e263343afcc6a6bde543f06d80b0aa544f08f262cb1ad99be3debc06ec69da75b74bdeb7fd57a878dff5fefb6a0441b0b03f640e63f6bc1b890f165b02072cbf36d9ddb0e6daa70429500854399e4f939a2cad291e26aeafc58ef925f6aae84e24f087abfe5b203f4b82fcb669fd09d6332a834a05a771f2ab0c193c78f761277cea9ab390fd747897bc1dbec65b8fe32b9ee2e0ef7a86715891fbc56b0c41855bc8313e81ab47b60a68bae0561afc9e46b6765d84010eb422240611cdf2605f600ace87b909a00c8d5f09fc50e3612cb8d5be57eb7591c6c48ed755273443823df62a0645261c78663c482a4cff3e2cd9e3853869d7c870269ab1cd0e88c4f7d8b3b615bb2e48d5321d1e1fe4ea31de2d91bfef9d4c615a774e18e9550b234f8125151db95a3305ce38c94947bf3c79a03dfd0e4cbd78fb2912aeb4251d1ea5a91c156a4aa2c90c1dac2f10a105f19948880b1d9785ce6ac9e3bd89fb7686bc1b7e9ce37ab4d0e16c03eba67ab3c5c08ec00616b679e52d484066d159782471aa31a165db33673e4cdc24c987989fa3e860f57b5d437b09e5a057a33fab02baa02c476a1a4031f298bd2d3ec6b30dd15932066d4db7e892f56d7222a23c0d7898e4c3cd19a5dc8d4651ce59901d09a7d90c62d68b27930e38f99b2515c409522ce1233817026ad4a1d8c7936a040d1fdec688218f56de6c894a5b8a15849bab52e50d487536006e4fc4f3c3f7c5d6b2e06b2fa0b045d8420c99fc639241950d669d8b98069c3c46ee65aee9511d2823d774ec46f6fff4ee39aff9bdba47087eb3befba4a84b317aa2c2d03fb2bee036db7d7baf57311a13a847b266daacf3eb16aae4088e68704cb3deeaa9a7fc2379308047d538702df05de02827a8ff280b71bb6f522185760fb1d21357dd107df98b575e5c1f459b757822f0eaf69338ce17a21f2c2cab8d2d5b17d1616b09296fba0c3dd7d89620bf43e59c25ecab0a5e6b0f9e957ce2f24ebd8b8e3b7bb55d44c2395fb4751effbda17b524fe0e5cb5d329a1b196152eff415845421a7f34eab239ebb8e5624b7eb5592aaca841516a872bf1a074cae476d0945727dad728226604f161a0bca68d697cc7df9c891a7135bc03fbad72521b041eb6bcf8ee7c353695ed03c53092858cd5003aba2bc117e4d8e3854024411e3f0821ea57c11b17030e31c226625c72e81a23b10a1bce95f2fb9deaf1c9261154175ad13f383a47430f17f796d0612cfeb4a3c934199c108df36a4bc67719100cb91782ded1daac8076787071f5a1e37ee1384209679d5e3908efba8bcf49c2a4cf6ccac2d9ed3fd66c26e811702b59d1a5e3bcf804777e4d73c7e44e75b5744d4c6f4f603110a579c548925a4231648f915543998313b17525e044e39303b8ab99270991a82a3a2dacb93c2f1ddb8809515c2826640f2831dd4bc06171bd5657d612d40fe673f9cca3b803fabc2257c00f3d93fd082144558d984fa213552d5ddfc109fddf9606c4d48e1128565000ebaa29f520365e718713daafc7f4ab69be2a5ff95ce4ffaf96abfe37ab11e811f6b339c4b42181c9c53ee5bcb2c70bfcef7125a89731922c58c7987376991a8dfd42911a85148fc6dc25752c8b4cc38f592c1179f81e48643438509205b50aa255999f43819a827af2cd34df3c35d935d7d9563a30d57fa0e70de847d2f5792e04949fd43943dbf2fc20e7e1f51987083b1d689ed396f616433614f4e173aebf44eec3a863f234a948342786a87d6e72c9a69155d998b4e0adab673f359aa33f0454b9fc5ac04824f5de7aaf8de2b970b9ee7bd41f6b6b149ff3697d5803d8a5674468f09c6af93676a0b18ea0ee9b1bb9bf1853e4f0086a27ed6d73d7654afc42c420e94b544d9d14d7c98a1ea0defc6a91c7b64ce9800367ef03bdc49077c9a2e099a9ad1678116946d6030c927440dfb2bae9e1070fb51338218833786b7844016f78aca15555e5ed9df1b0503e972145e7980d9d736df6a956ccbd5137a81c0b055957ecf8164c2ff01c16be75b8ad050a71a0ceec2c6ddbb07100c15e64cf52012e5f3530093545e7d78c8671caf3e88aba5060ee4fea741b151c140e28385fbc979bd320038d0993a626a5b29fd98449a3340cdad072df613937902b36e77b5a8484965c7c120cc63e3bf86da1374b9c9c496b3a8a204327bdfbcd95409d1b74b2bab61245d9f8fea2e6e5037559940cf3ed6d4271a0d56f5f13262191d10a78da7d563eecc94ea8e1861018e68079992c67649336b47895f5b12d26e72e7231ce3492f4df1e66282f3e1b3b63617f8bc95d978bb9b3a8c1b60b43b30413a91ba1ea2034f6e6c67ba6757e5867a41023bb5b709f4005bb46aad929b37611d86dd7cc84d8b687cf53f9586c5a7e66c8ab4253327f77a86c72d7d9b79a7b716b08adaccb927137abf3bd53c5b52fb78cbef218420bcaaec0b34e4c916f0cac55aec081df09e5839845d69c1cd0fd1d79bc3be2fe58d1bd2e2e8576f539f4f02134d3e56684fec97fe2a0a8cc71d51099cc43cd2a4a2e8d2114c5219b3392a2d68ed59535be03bdd90542b41bb6bc7c72e6c959e3785b6ec562a61a9d455bd6a7ec33f54ccb4ae8e5a7573d702b4d4260b37aeb297ab6bf26d99cb376a76fd97941278a6c2a7e243138d988951589b6bc506d4bfcb83e78a044a94010b1a1a833f1d97d32694d216cb2b81b1004e822dc3c7525fd6b4ea19a7c259adb311b76e181571fccfb54e491071842822e0b42d7f89588ac67e0d898a7739f00df662aa77f925f362afa435e158b8b204966c725292c6930cfcbd098a312af99aa03de82fc46560e35f26a14a6eb4a36c34dd4083f4f21ade5bcccc0ab3a310016d061df5523bcf1132e589532ba16baa14784c5f485eb2d8298285e95ae0c29d18bb6f6296c6f6f6fee63c660e34af2673062af2627671de865d1333edf2e1139669304a743f387b8d5b04778078529c0c1ef02d3a71a4e06d1c71806d8093a8710e3489ed7edbd7fe8bc7a470e2a73d64c1f904aa6ec925ed5a2e66dac1136c41245da04fda7b66d8ed6d832e7e17f9706dc34dcb9a8e717280ab835483f45cf328a48cc2a906a7fd0a29968d214824518822785ed7f29fd853e77949491010d953a0f3d59b9e5674397a97275732215c361117053855f6a208ebc62de871b8fde10d83c065898394782f0a04a7084c4493ff94c4e33936a02e1fc524aa826c7087a8d2a824937b98701e805b0c45a5effd3fdcb04e338886d300891edfb7516c71a3d3ab4882cfcf20982fff7e80b9bce4be0c4f2582812dc09d862d28e08cd5647ca7ab8b89734ae615f86629de691c9c75ed5b23325d78c0daea4c9f38569528d70ef149fdeccea2556bdd36566acd5db5e80ea7ef7993a72823a6bbe4a2ca9281667c6a7cd34e043487b7107880d5411e817ba2614c0e781c2d01008854f2c8d6efb105f480299014ac90e0f2edfba65eefb3079d5fc74195f86e7ef60763be2ec61d3f88947b475188f714b953770c7ecf70dac43fb0f2a2b5a6e144525fa81867817c9f540b60be0e70b4fd988db9d4fc982576d48653b8a75d81b1f55207945b8bdcc77bc050453d9b7f288cc8e3eaf18c9f64f00e7e66eaed32ec073e80dab776c1e75dc3df10f6761cf4add9c77da6f166a50ff6756a9da247b4963d533e2265f834c180e3b583c50c591b0ae0ab1f6e376439ac1cf85ce64b1a84a0b15c2ef4cdf669c7c9f1666ef7761622d2bce008e44061f3827bb20ea872449be94a06361bed76b01aa35d786cd2245e30103b606dda69fd845a90d9536f95ecac0f4202dcd8de59a4146b157718867ca2ba15fb6b41cca18a9e713c4fa041de061c99a875e138fae1c768bf15383425b389524ab1c91ce97e42324319484edd171ff6b96e8de464346d63164264781922d513ee9cd3796fd1b507ed8cbdf0776a060e091853340e49ff19626e05e15110487f00363b7cc9b88219653e6856141cf819d6973916a465ab3f1283ed1082e27b3cd26df217ea2f9de984333da2d389575951f94b6269c7f9d418d3e55c08df976125e247d4b704f7f6e808430bf10bd4ead8aed2e6b5d6a4fb3eea3969fd64dc3213c7bdb77c4011850c2add9da6dc672c1352a75ba2c4a5c9ff5748a4167edd26bf11004505f969b4d650740d2e562bcf13a19a38c6ba3711d337dd3b68614f5498b72abaeeb2ee85cb7f013f323f76d5f4e2ab20e03cdcd65e4cc367c63f4279955173c9fe2fa25ccfa498820d221f4c6a6f64b59e072067b4b35201b5a32831d4ad52e6178c07531e8f69ea7202e789f15b52a81a5141fd6bfcf36a6686572f80f6af34d8858ef31046285a0b2a042aa6bc609231b84ef0e77750184689abfbb4cf66863e331f0b98ef8006f6dafed1b3a2b264d006cdaba4a469b39a4d36de3ef7ce6745bcdb9802aabeb332ac567c91b0a4fe8f0c7d3fb6d267827a38363c0b065d344634060f19c6fc0419000c602f52d86023d63b7791a3b396a9114e51d2efccf0822b508d32fbd37e66fb3e6050483309db566efbfb97091517e61df2bfef26d1a67e9774a4f13f41acde5e3322f9dd6e0a5c66a39f5f5391fc83c027884dc78d600aef00ef8723eef69d0556cb93275d869cfe34464bdf6ff6fe9aaff92b0ceec976a62ec6adfd2bc0863654d689b5d1656a1761b45feaa70bda19ea4b24cc8a25695e7ec63e2bc79cec1ae1f3357a6e4edb08783cab57d818c10958e6eef31ca513e94c3c40944b925c0f3bac4882be3b742fa890d1f0ea9ded8924325bed36edf8794523b66e82d436b9eb875751f355bf5b6bb9f41b819ca0c1481b1408a7cc5259b66ee0d6fbef48113a5e7062ba0113682990f62e9caafb50620b4e3eedf70e19f01a498fe7fb4f3d418154b1e3fe5ca22406e8c84a8b451958d677590e33319eece25a34b27116974e37df630aaa249d87e0a0e579ad64fc1a2acabbbcbe03f839ae14fd5c25dbe55b211dcd2b6e29e21d622fc9c559a94cde46f9dd3f2f359bde5e4c331d0428041dd9e770c311189d31845ad952a3bf978789d483ae8e67f59f35ba66afe3a71c742d6676f30e01d7fa96f3c28407aca0852990bc9533461c2e4ada7692f3e08715e68ec96ea2942288ecd0998efa648236c982ad99f0abfaec228f6748addf1c3025b6e3825dd344cd4133549323e287a0f474edcaba9ee0f8bf1c8bbb1db8914617af6c3a9320238ff1b2995538b134575df038509ee5a509e95d6f26cdc632849b3b2945c1410af7a540faf5808248c4e33397f869afee1252cde005b1fc5a8ca3774b1d95095e14b055798d0d86d42fa31c4b80487ed1c4e6f21bb7c592b65a28a341db9f01eb37a343425fe9d72307424dc39e3f9cd6d6d96e3b1aaa9c3651df18ab7dcc40951ed2a1d118e0facae462f9e8d791757d47203ef0c4854f0cd5b5635ad690f0b19b0374c234b38073009aa88ba6781d9b135071078c46ac88e1d5e96784ffbabcfe354426382f2649c358301cbbcf5b4e78019991fbfc396e9824035727e70c426ccbe415d0944187b5e36cfe535fcdd45f3e2debcdcb058c26a0b3bf12fb50794b862d17618866bed0fd29ff6177660490f60b9b2a2af41c25811f7fbe1367677c1483c536bd91a79e52980e66533d92a1436063ae9ea394a0da15a88e8c7ea9193c011485943d6a29e9868647586f93c7a0b279eb6c25835399c7a4cb6988fcbc326a4e1d7f4c3583ca5ae3d242d079b2c57808995b86f6bf726121f3f36634a658d8d7799a8fa2c71758e4630cd5c27daa2fc61b80e7f43f67401e815e1bad8db6f25d1b9b90760ee36a9d273afe6d9f7ad86b57b203fb67aacc72028a3bd9b24df0cdaaa906bbb579082bd085ca65e4e3891b619fb9a60a7f20be538a4e6190f41a66653481b3ce8b90103943732042d7c91c8a0052f56b1f717937d5f859120d2990892f9ff8c1115f4e73b4833fa9b89801c7f97d0c3ecc45afcfd863e9f1b9750f395ef7451a0f989b20ad7e8df27c55a5d35350362db21e5259a93893466507bf0bf23cb3f2ff6d6f2bfb8a2a220c6a16c02cb84b7a6a0ef98d73a31dec74e8d64fdc3c70bf3f0525b52a746ac65b1d92e9aa5c12bb0455143d845d65a3abe3d63cf322321296d5829a43bce6119f70d6839195ce920c90be81c8f6b81c61805d46fe40a2eb3b8ab1d2cc5c8f1d50a49a8a8bfad90a3a4bd1ff53eb877a7f8a6a6c6b89d7da9eced049573d5723d471d4800f63ebab17a2fe9beb8d8382e6ea21721f67122ee7a26d095042b52ffae20753fcb4d491fe8c9c9570dbc6b1f53c104ddd40ef10a7a443d846e1412ada66b4e08e14d8ecd7b1b7e6131a78985d28d517aa0714ae4ff950f64ce6d58f8131a1113d86539b063573a3ca8b1543181d55bc4ce8ab60aa34ed87436284d3488cf542ac2ef1c8e59d27ad8ce449e62f02d800512bf4eb5a9074f80d8ca48343d2f58c2bbfabf277d8764c273a25d53996dae765768f8ae843d3a6b6dedd2e1b4625d7d3fc9c0ad1493b508f45c169f5d2e0e5dd7516fc0f3cfe7caa9bff023bd97162ffe5207b19fba45e1a6dc8ec09d50b387d83b2061988235810582c3f1727e223106c0c7f643e1162dfcddd61f1477621f8d5ad3b8ca7d29a11a0a77aaa0cc981acdf254da5e92f53d54ed9d6a388965fa7ad8263c3ccd1a1e6642800c7dbba62c3ff9c226f17ba97f41f2d930ec3170e63551d96d52e2690743a72b6661873b06509e5992aeefb5e696a2bdff9660949ace55e48e2b11c9528fcb7bd986f2c470a8d9d645b563aa466009ff74a5c646433dea6647ee10157787d457cd3bc0fb57f55b811955f202f2a3076e04945d73da3a0760925c7cbd590cfa09e64b3cc03e0c050b72d9da984597d0da694bdfa1bd701a3976a156bd50b50c0e1f86b206c3916f43e7fbfda201c26a4c019a4b2a34a2832054f882233bc6ec2fe065f2d3020f629a1e816146926632877f026479d7771734d81b472bf25f0efa27e5d449f46a5e728384b0b6a96757e3c4ed32650fe19e7bd461d2e49407fd732567aec3028d1543c722b9e6cdcd5e73c48a7f91149454b39008b26d70efd730db7bdf028386ee8b5386edc8bb019c7ab94c5ae42a116ce658815db98642ccada5f6486bd000839617d4e31fc2cabf332505980a06b288d95473aae9f511a200bf72ce4f25d623095c1ad4de752246e74e0c4e0c8aba4345f2c85537c26934d619eada4e80ab5149862e1f1a62f9045240c858f15914a7e06b597f6ac480eec02d74d8be281a43aef559c687951aa15b7827d675e65ab73b37a72be3beed53d78e9bbb2aa477648364d1f08f2f76191dce51a9ceee21e76963bbc231db4978a26afa78de2e93d2da763565ed4e3d3b373ee7fa7da5ec9e7c325d903f12af865c44f7868309d0e02f61c615de03642a799ca1b437eb1fbbcd77c44507410f3b7f8a8c64cd2ddc95d9d08791e32750e0d6631305d651560d1a856c74ddeb7669a2dffe13363ce32c4d804d90133db6a6af1e8be15dd9e0da6bb0dc1749f2ec76aa304798cab4859230218c6cf8b6e79e6421d87f1399eb59d5bc12096cb5c6db46f2be7c07cd0ceb3c86d5a2014f20393f91cada9ec6b138fbafba8afb72f6a5c01f4e4cc5744b0ef1361a568446b2c1a7f1cd3140cd68166fde86bfc8d60ff718d5f318355c5d0414d725cc4bb84bd0abb1ea8714670e0ada38ca30d9047d86779e03f8ec0cfd8d070c4ff0b95bf1d7d473d0236aea111af723ee490f9ea41ce9d6da8204687a9beac9fecf775bb5994e0a4812253de5c55d657cd962818f156eb02256411b73d48b32861cb621a3ad5d6191a03320de7a1cef3c95a94bf3e558bfec9353df4e142c70b5acfd3bd3ff25d2bee312c5741e23945696efd7648ffc22195e229129e91036c9fa8fb81c4fc197143063dfd88a7def78d75f42dc2faba57e6228784515e7d08fa4579f63b0a560d0a38ca40a0b5e08d5b8bc2fa272046e3e4be04b5810f5f019ec6868160b5c36829c736b21e1f77c117e685b3419941b864a41ca05841d98e6371292069a86354d3d3dde2dc0293e76d0fdadad7ac068c4944bf1a2cfb1d53c927cb86a6d37d0fbed23f03152f825433b785ec4fe08acfde3a42ded84143a5128dcd082e89694d0d75b09fdb2d8f283b0ecdf7ea494d27ef34410b9ea2b2ce8cd306a0943dab1616c071b57f2ca71bb01d29d567d10aea606325dbc7ba48a6176961557098ab59add3b8dc99644e16e67d9c89d2edeafde614d857f6703437dbf2558df99183b35a215398117ebd6f1ff56b6a371926b25cd2fdd320f89c8b36464c878a8c88796f5dce038621e32d2483a944194c37abe1716239c8ae394b0c84539b4bde34c05573ad8d75653e5eaa696732ff8279cb490dd259123b11c5871bb1461b4400a980b7bce74493ea073e3bbebbf930428dc8d109f7cd8d2e1c589d5473f3c1acb1196e5ecb884cda45aa9ded7666feb33ede802923add8e8dda5f7362c959353720461ebb33c2f350d50851f1bd29caff1d7dfec13117833c45e483ccf3e2573213a79b7b0cb542275bf64a48907248865fae7f11f0a267666e2fd632b8040f84330f2bf2a18155602ecb42ddd392764affe081dcb74ca10b4ef9798d46bdc541531385c6153f0b4f2cc1d5dc5ee0cbbcfafcdb9f5c17a4120222b061bf622bf50f10f2f4747c9121df7a4040944b75d1c1eeac7f85bb25ffec2a6b216d19eab883a3fefe2ab73ec9b17967d439d4f3a17f29d87eec21206d40b85fca8c60adc5cf3140ceb1e63c13b6a76fe927110b344122927979e9a3f91917a526d88478290060297bfcf2033ca4d0e62c89acffbf7bd1fc3428e57a83c4b4e5502e2b4da3459cee69ef36a4879a247c70efe225108533d415819c9aed42a11f5ee9cb21dd67937a6f5404e1a8aab6485f9805c0d389ca2a500cc866cd0416f54eaa30287e9fb972f01d201b017200a863dbfa2cff6e1b36a28fd8c3ae88ea8caaa6fa63cfbcc54b2c78430b03d15da03fe0bc6693d42f2bec166ff9d7ba1e0365cd1c91ec9c326e261c994c42558edb196cd7d06621132b37c0e364b7125369f36a5e5abb74bf6adf9343b7f910362f01c9ee56c918583ffd03befb64cc4e57af4edcdf2266f03ed0a3d68a126a5eb5288a35db1dfc9366c4ba419ee11e7b0becd5868d3d298aa9d9d9db68f6e1f2745e35f7f4c2a3deb05e71dc39fefa671b5fab9e417f501b8f19564d1fb6f6419a7ea811ffe44b556c61b5b7bb14b245b4be7b3dc309d46f6e583e1e434f05813fe5677576130b9a61a5e32dd3fcde6a6bb75acd88a91d1ce500f1b29a1a8448c520e1a9a8b3095220e2aa4b84e60ed29e9b1590ce34c4f743d3f86158ad0314bb661345b2aa9aa65bb6e4568a04f398656e3b18fd46829d33c7f6fa24b723c5578dfd79cdd846c356af9f428a305781102c34cd5f92b9ec68cd333bfaa6101e828ba784f03fb65a6121353b15f3b4723a725b6b2b4201866963505acd202e4769c19b3ebcef222064e30d207b99fdf668e9b481d426d355602b947f098e494dad8b2a8fba10ab4f7d3f49036d4321b93c127bf2b5a6680102fab347da520fa117e3e0f5eca86824adaad1aa6f12ec0f32587b7807ad3d7c810c814346728495e30a3102abf3ae5f92158b111ee50d6ef18bec1c24117d779458d87719abf5e2968f6adcd0662ec636e82ee63b4884ef2f272fbf2030cfea872855db9f5724256a18c5bc3dbf09a2ebfa190c988729d11ffcb095b2b2a0906475bedd2f9a785d41cd6f6fa2ae1740361ec919bf08dff6703200a565b9fc6823b1e2dd84a0a76f34534dd89f04a671cc0301d77d59a465e1b3f34a23e98235f2f299b0e9078ca2a7a1426c356d140aa19aa6c6339cefc65d6ab1b50812d7ff87b7f21e33ace524f431c5b47f1e866500301d99f53bc7e9b1f144688d6a259089a721648a6b5583a04ba3cfc60fbbdfbce797b57f12703fc99e6bbcf998fbf8fd15a9b307a93034296fd7eddc93da586b5d2cb5f869fe5f7ffe345c2d05c40ad32851af1c98b70f592196d5cc709ab6af809ce88384bb83002e19c8b52ca6dd71ddf5f0ce9ad0d03199ab60d8ceb66299febdd1a3931c08baae30d334f36b4b635be484c23caa986412adfbc69820c80fca1da66c49fbf2da974b261729517504477d6b14958c6b5ac677298427a1dc4e95fed2866ddb656447c0bb9ac24f3d4b06161a0519b2b0cccdf5ff0d53f390734e197401204c2dcaf4eb62257990ca9a299ff9722937b4ed6c27a7b3427b5f18f196def4b3de3723c7893febd02408a86a6ae524e50e27218cfddda396d7c6013f9316f54bc016ea50374ae5bc14256ef386afe409739d445fa875cbc47fc5da31185854a2be7f4d93b7cd175b171533df8e9a69ee730e887d9bd303c384620138ea9235a763cd10ebc7ea288303109c276de112df2456d6ebae7191585226638eade66edede7dfc88a4134721220fd26f972f726760b6cddb725df2b0009e6949e52b3ca7a6b3de57ac905f971152b65f7325a6524751482102b8fc095fdbf6de0c6dc1d716b41b72eefca49ed6dc268123d7846c6cb074a05d384d9761f2714395695d56d56ace88cdc865630cf552d1c34f964d163f7e36a1a605f5057de3ebde12cc9a70e378de4fb732d5e2a71f783209dfbb1fcdc5de3061dbc312192247620f19417fd244b724605565bf429c57dd757a6ac610aa1653da754850e60e80183a6218830dd460e2b096ade1d98665b1790522271fe0c18b161d28f90ae29ade226a57f50da133826555b962c3e00035ecd89b3df65b11712fb89c2b2e873ffd8afae02c71ef2faa94ecea421a93b50a1c149afdf5c82ea2d31bba14ff09c337e816c2427b4c18e6236ab7ff3f232096497706826192aefdc3a89e68ae1242c5e7fe53b4919f2b8c5095b2575477e340270e225ee27b0a34563aa97b7172de5ee500ac45bdcae0ab2845a578c0aae2e960aa0fd403caa658f3640efa00c0711e751c43922edb450f1107a8d0aff2305d102e4313b6fa23229a0467cc18044741df74ffccb5c9e40941157c209092694f47a69fa8cd0dff205c1b1231fc75ad029b93096c49cb4f8a449d9c3a95e0613b8b354ef9825dc251deff8373ef4776aada7a17e08331b7a57956c20f365a67ad53ce97f8f0064916dbdbdcf3bb83af9bfd87170223db2a9f9668d346aec87bfb8dbd4b4897e2d6cf9f7a60622df72da81b2665958934693e20a279a37d75412619057d9adc0c070a8c67a92b9630b82d8050f1173cc85d24f4fed8ebe46e89a24b86a07a86fed264995cb1134b8be48928e5081d675fb1adc17e20d36cdcb5176dfc559b43353432ce0009e7264cfc4148c7a29a57b20dde8b4befab5f6362b33ac76565216c220ac9f6d8fa04ce75d4c6d15fe4fea8f6c02a30c84a4d9b048f6585bdcb1564f06d3c3b86ed45bed789bc99a68a732b5ba7c95e0d8e899276c8107f7557773c49f26cd313bb4f6917c3f90085f770823fab67873e76aa629d5a55e028f6845b504db4cb9bc10b17c4337f98416ed34723ed593e73960bd59d77c1c32a54dbe6a514008679c36777912e06d3c6051de70411c6b24bea4a175122d40c627301cc51ed5258ff4dd21e13ab78075251f6ad249b2ab5d1cbcc7feb088212d6bedd58d76d417bd12cc212bbf3734310aea76ce9eed30d04d93862072fb41936123c64f3f8754840bb31666dfbcaed92979ea688dc67230616f8f385c9c89fe50b4e06c7652cc93bf61ce63a32043946f8ee5254dc5cf12d7ebb40f8ca0d75578727e17060b894ba2a03d61451dc655326cc2cd0507f4e6a83f62e820348a7c14c3ff9560cfffeadfd6cbc8bfcbfd598201394f06a6e83bbb05e946963333c74daf21da397fa96dd53613feb4e51eda1aac1fd24961e31b8c16f5ac3e3f8bb5cab01e2b31d36f54351ed104552e8c6c81978f40fa455875806e8b2f0d4ba8b80851024846c56dac640a2eb3c330fb5eb00fea80e4a30cb81d74d5cded60c18782a26274bff8f9d64b6169fa77d0595606bbd12f2e49f2d0c3664f6378b77cf343b303bd7c62aeb30a7612c4f043cf10f0344a08be1e4f13c6bb8660126f9ec9b3f7df5642605d3ba83a0f26d2ddaf3e150c477ef9a18e4eea61a4d485d8112c08943f9f4e11327b69a76ebb23d3b29e74193478ef9a61fe3241a88dfdc74b3c31b19506299d729022b86f7e0e36d12e73eaca688a0ce25f45792c9564f2b4faece7b52bbd1ed8c6795fa3a5bb7b2873e6f2e05de00234425f71c3ba041737bbeb74a209f7c82bfa70fff89309402eb3733d92c593c0e4bc88d973216a30bbf023149a9a163d78cb71346e577bf862a477d94515c5c4994335da6f6d267293c43f9a145f8dbc10a3f87850610871e93d374e9b1ee026459c2f330938cdff62a86965ddef0ac2cd8b840f4fc13a0dc7279b887c7ad66435a19dae1bd66a70d24b985efa5f52193abca20d1d996df878beda8bf07841c9dd3e91ca8ca6cb9003b49c9aa601fd78a31b16fdc6c78091955ec60083447ec7fc5ac4637b0a500d3e8b317453d98ed353bd98fdb1065594110df617c3aa0afc8891092871cf4047fc65a425e3d51fbce3c00601788521ae2a8208858a6de04aaba12bb519934b67017246cf52dcc37221c76d8dee80b1992680c8d80a099712f6900da95c04b1a0824b24eed2ffc1d144f5a88ff999efe1c794038f87f406bb2a3d620178116a61a643b1c8ed07ef9194aee98515fbaa7fe36be646ceafc9d624cbd28dd726e556f794d8306b2af9bbb3e57e62c76565eec53d229a98488b4c23f96bab23bb42a44fa04f9e3c358c3172a698eeec12d734bc9eeca2233d8d52ccbdaa2a703929aca0b84b59a0b01985e33550f7708e414b79ae08c6ceabe074973412e8df9e78ca5ccb1bd04fd1bf8575a55b1ad3ee66a7d680b32c20feaa79a0ae6617be714086e8f8cecdb629b3fdc75af7ff9e457ea22d294aa8169d936f317eede4ed70c5031e5982d42d7a59a5882a986c9739f93daa8a978ad9fb4c2fa8ce3a624c7ef3ef07737013acc73ee504049650cd8634711f246646b4c205aadcc3fa3e06d12e11eb5ebf22e2495e0d722f982b9ff0caae6b9305d859c7411d901e1e7aa0fabea2448dde0685a218b178e6c624876191dabb500d5e97ff74ea3c563256c629471df641ed3993b94facf655d9c3711db2d67b6766e2a6afc4403169ba55582d87120e280a8552e59a8d0ebfc0586ac6c7954eb749afda20bbb449ca0795af6f5072b24040e940b47c37fee31683bf7f26d61f4519ebe26738986433736b0c410f838d7250d33878e3d5747fef5df4f7a81b0c46a8ae916e3743c1f7ab85497810df6799ffc7128dd4564a9a56100b1036f19551edba1baf769afa111f283f0741a03b85ac672d2b607c8bf6f09adad92caa6269dd92c0fd372782269a9426f8ce37594a644c0dc474d399c1f36fd7d4ec51595365574e827230ab59e6fd723b40f5464f7efc5bb31e381757ace881b084b59f90df988a158a1264f27cb4df49d481d99bb355139146dfdb57734ec6db7ba199c6155195d8be5643f61bbf5109514415b0f981a3dd5af1f5af4394987c15b3078cdaefdd5d541b1f38e46e0789b96a3f458253725e934ed9e033cc6f0195a2bcd33c9b0bfe2c8cb0ff4b8658e034e1e0b18eea5ae1d907f00377d0a079183ce81352fceb6b2b2c7d30e99a1bbf722fdaa71dec26da97f848877c8c366e1388f5664ea9ac15a718cd2271af226a289812143c8d5d68194be6c4a3f23694e051ae8983b7b60e2c156f8b1037c77e6495fa7c57984d6390f81fd9af75db0e517cb8116a6792ea3a733e13499a4a9df853fdb0c745bfaea2338e463b62dc4b56937c0668bc411ccea897fbb0b97f393ed3e0cea334c29ebe5e0b1d1a54dbe8bb4a30317a92efce9648e120163c4b990aa6d54fe062aec50b28cbdb85e01070a7e8bb2c104ac3b9820cf6cd6995e9360724f8305162d46880edf5278fe8c212a631d4c0d36d85aba13aa8a79dedb5e0d5b5fd8a3a4711d7a969530a54bb8887b80bb4a8b897291e105d378d98477662081888d4086763308c4fa56151d539bb14b7dd6a02adac4bf06d38a003eb294d24aab31b76ea1addf0f71262750ac985273ad47e35d9818cab284e11e95ceb85e181dd3e914ba2de429eecd5d9c1aad9961497992d8d50e6d669641ef8752dba77d26fa7d146d7ab5cd7c09ad7b750edecf84eb1a6ddf38746a0e3a704d89a2a5b582734e1bc9b71106b9300e309b28117045b6c997a9778716c29a2b0304c748dce4ea5b36c32f1688559538a8edd92512a64b1cf248ccdfe0de3a86061498c99f6f554601b4aaa02d973197a6cfbf72d3760a563677b89554610fd234519092863b2c9912d757537cd8a6d5162b9361d6b8a04548142f2bf2a1911c2a16fa389bd676743ecc45fd94058c9eefef94fdb8223e64aba1143310c375f3db02a4354cc0a55c30186b69dd210c65578a0a33819f96b8e9c44f38ec44b1999a78a54f91ed3c3b6ca33ed634c1d4530473cad1fdcdb427b2c769463e73d166982033ebf4474edafd38e097898e54bbf8a2d8a4ab809c1de018bfb5cbf4a14a946483aef32ac464fd08d1a634c64999ce151331063dbdb731ca3f1da83e23af29f4c22e41e67bb596273c1d96bca013be4deeeccbc034db2c13c08b0d1ed13295421997e441307f700ecfe40b54a2006cce41032676e1e096ccd86af73239f57207bd7bccf2339727172217828872d656a224f3d30345c1edf457adf56fe16f18bc184b6d27fcec1105b1d28ae5de9b69d7d99e73be36ea842d412b009c7e15b122ff0e3a007bf8a3796386210e7db4d5fccc9bbe306628433d5e4d6cd47a3132baef6f4b114aa9a27ea5f5fb3819a2d5a89ed51d99ad4e828f5f6a8908ccc18f4e6b2c55e4a420c3fe0f7791ad741564f340d6446b34853cb08c77d27b1a45596658761e7533c0784aa12fcf4954e843fb23459ecd616a86d204ef154437b70ad477e80db4a4577996854cc600dfdaee61726f33199f6f504c8f0d6fcfe235eb29e905fe07197bee7a6f7d7f564c2e22c95deb605eea1b8d17fcc96d5ce307483dbf757bc55c4c6272803185e5e276c95e7ba81ade381e25531428557f6b0038aba46cc2bcf240355fc158a4db463ff94b30ffb991a95995c01ac9e99ed078d85290f64cabeeaed1052bacd979185784432e9150a18755ae46dcdbe477915a22d5891288c99f2ae18b3ebe5f95e2e677faff0c43ec1cbbaf6d50cec197acf30a1c7ed2513c0bff7efd2d56581959a373a9a5267f8654cbe5e5c96247e3468fa1d123f136a3364bc2cd94d79981e7b9648e4157f8342df60100b70adf13a20c40e4ef8f028d428e014ec0b8bf618f50a36ad43537f1fbfda233f2a8873263eeb1081a0f170055ace0388849bbdd16b3d3010a7baf6d7e50e499a21df320299c6a33b13133f353b69127b74cc8308787359d15024189bd7f576fac3d281073d08022c0ffbad36ffeaf1c0326d726fba33c8c9e58c0dcbf047e99b117d50ad76c2ad2811858027e43c4fa959e34a1bd5f689dbcafa3310cb6b41ca2a8576a882ee108a666c95323fdcf0a26827517b8794fa70440f907fc9b85a2dc61655f2efd2dcba5680690ce1235789e96721231eebf03a5729c0fde0c80f9de22246d0ace55e4277f6ef48287eed357b06fafda55a30d926137b2e83a0a94868879eb6e55c86575f398b272e45591e0e45e2031a811a6c280fe89fc9d1a08e1b34f8685003e1ffea77e6c696ca088551e8f2a297b9db57c823ce336e36a918cea90bc65f1e72aeda422bc0662d6764a91fba72e1a6ea1b1c8b442544c818aa8b2a5627bf7f161cdf292aec8ea457b42d7df06730e2dd96af59adee2a8e0f8554c531f3dbedbe33d751744e6585a9ab8af2ac68bf2254c466c5e204553ca00c8aaf2ef32acdb94b6b7a8f1f9e54f3cb8a9e7fe60ab38f102d7d02884db406de44e1aa04c2c93995cde541f7c2873ac0538bed86b6067411dff3e48f249652b74a5ff58885bd9e0e62c0da90dce7a9bd6f1321245cddab87b8eeb879d23dccee3ca060de954469692d572619264119e1a026e7c83c630572b89fb20929aa20c94d6310bbd9576ae27029e8b1b3cd4ab5307e87cea0bca252c924c00ed939f3fba0f63723434b3610d498660a2abe3a0fee5848de8c195a94d4ddd4bbe6d47e4d0adafb647e2c8a96e00a88d9242a0bc8b4f52bb652c8a721b7068d7bbaedc1e9806531deef65cc46e21beb124b15724e7ff5528e284938fd95393afc3093333a64b2c44a4f7fcb76dadece28871735f91f3958be4054317911a99912e5f5d0e8839139b425c7ac95cc78329e17b32db4718cbacb885f1a32cb9ab71f2a55abc715abae42387e10323f397010c8f16663d3afde97d3a5acfa4785cf494e6a8ef7ebe47b89b2b80b7112d08dc3ed8f4b5e22f9db58581ebbd3cc03df6edb1a07e834b4702bd9cfcf668cb2e9e700309e03e86901302c42c91ce3a9804babd9ee36b061c8270be7418ec5b662094fe80e4d72f081f04d3a1f627a97de3fc904cbb2df89f4bdb92f83886efbfaea2f9b6202bf8e985ca54859776f3bb07346acc4a48903445159e79b6fe85c48a766db6d8b5bd0a08601d8da7c44b331c59c927f4d4a61fac2f9a75b3bd8bdf677533b8b58db475fd898cac5a8573da81b44723c52780b38f8b353898a09b1cee0af8f843893383cd064b726931764cc87fa785eaff736a5280d58c8fdef6363cf391ac72f8cd8f771c013092f36a13385845f336481ad12c52971e08fd6495625508d816edbbba0b77e09316650f044b8155ba9e671fd4aa78099236d46db1e4ad518b6713d33030571bbd3a5a4de630f7964fbd2122c92a35579990a31f953b89154b821a922f9f10a31dc6befd564a5166c651073d546179e0e05036d38e530efb79e6ac001aa5d8c7ac89827a47af745a42bc761d1ed51d78b7f717a0f60d594e38f7f865afa5e49307d395d1bfa916d53b842cca286468c2c2c7d872e5bea406807ec917b294d8fb1cf9f5aa90390f3174d3637b73bce26de54762f709ae46773a272ee4127b853eedd4c933728f7b78a1f7862688e08040bac35bc95b9b7835ac01b4d703f9f70db5428ea0a593b0cc2ce36f9f7fa91733acca9e9c4933f3fcda022e622bbed65b96a452188f60fde9d9ad387103432315c1aebb4f239d589d80810d1c8f1111e3715f051be6c33d71d10e9cd0d6acdd72a1078e1aedf16e3ab5ba4aaeb34bddc82d5bd0b40ac03ce152e5e5497a38a5b74531e14a7dbb2a69ba4edd9edd5a07ef16878510c60ee76946b4730c900fb3c6f5c92441c27c89f337c0c403553f8fd163521b3b3d964d030221c5f5c0ae2184f533319f52293c4dcaf8a05e0c9097092134392a25f77772d8771cbe046243084e171cdbf5aa2103fac4da2211f7a3cff823d457570507267422afe859d04877a0e01ca8a75c91af92525ca8bab12717581edb84be46a714933766592c7037b7d43c81e7b490753dd7b8d98ca20f641d6da6f3743374530774e92eb2e30d307ec39fb113f50a3684406da9c50ff896855c4046b549fd66f92815dbd954460573b0bf4557cf8272864acc2ce4a365795cd3f45ac03c8680780db7914e1c11225a861929c2ae268ddd5398c84ec8e40d9dcdd105112664342ed373cf253933c0884c6bcf4ec516051cba736d708f17bf10026763f664218ffdf10df7db9ac86e183a3879a981e7a0302d65b0207c32cea4e54be53aa9fd675eccf17155b6c1e894204788ebe7216914ab5c73c6e77f118fa1966ef0616a83e083ac60b3a0613b1ea524e4bc11c1724db4a61df78ddd02dca86680f3698f85004d70dbdda0c03c39e49e6e8d76b87910117864941a3d1e40d35c76f7abc7b4b80c94c2e5a24852c8a94788d840694b0bee6ba3aa75249046041dd32d201f8c772d121fa07a3b87e65bf8a4a4e12f01222ff9c491ee2d34376fd29cdaf5db1d66e408131d6d2af39e144af0b047d50aa99504bb125684e34d79a7c967f3f1452893375adc0a7f70ba2b1d02039c1c09e6be5087938d6b131d154fbcc9178cac808d875ae1fef5a21d9f15a3c6293878e10e04d48b0fb9c335337ed046508a98824d81c408191a4e715d18a1b123532ad3522d1cc47b55bd6e8d6ef7f3a5ff913b0cd3c34184d4fb0e74d1b35d4d0992b3453b642140c02065a35b64789eb0d4fec7d0bf8ccbd9f26b8630714a2bebdcbb288382ff0c894410380749eaab9992bcfceeabe10a357d7cc2e8517940fcddde50bbf75be2d6e3820137a2d66f68060fb646e85f6bc87ec9baf0c5d50c37c884e180575329e19c33853314c645ff55e72d17b269d4c55b322c0359dbf306b913ecd340b37b79bf664c4ad7d001f64404de43248d8d352f95ba20e72befcc120fd398e6a2717d6b93b54cb4131016b79cc5d0c75c677251d71c0ae107f55da7d71e1628a40b65ffdda80e11182adf02e8a768b499e3ac2e0806c8a0da4681b256e97a396f15b9d6015fea0c81a703146e33d94051bf676d985626ce4c7075a41da553dc6a2c9758443b3cad8f07e95d49559643d033fb64dfc533d38e9b69bcc44b1728c3ea31564b72e61950b12b9ec47635e38d3d13e46841c160cd03027392ee9de260164db9f0d8cce98110186ffe06eff66f3a2f47c5b4e90202bbdab4b53ba1684399c3826dbf597f8d2532aa7c7d24f70a3b22dfd5c984c591acfbec9cc94426ff760319762ef9741857b19ad9f5d47dbf7494a7cf76b2e86bc268df33e1899f62e98ce621359d190bd4fffff49f2657d75c814d6edc57a59a569553120fd908844c7648b8373afd181d3ae05283e5210417b785110c990178a7e98ee5fa806fb988e9ccbc58498d1e5db62a927ffd7fe10b5cb3beca64b5f8d8439f9ee32e723d37a4c1d42649c1e50f782a250703d75cae67de404be61ebf2972752fa6768982d4771260b339d72317bcc8b5ccaba024b122fae0261347e866bccfe06352e076f1c977df161e20c2c56f9fdf7e4f4b812faf7b709122f6c45558f48ab49dbc3a7b12f5813183dcc399b5db29b96faa39977f40a0e20dd8f0bef43b3bd097770bdf62a77327f4285b5564f06a842bf76473dcc4dd1315b179022f6c104365066506d9e3c7b182fafee78818001ccb604c9260aa30bf3da208a120e2578d8f129ce52da618de422b9420dda98230382dbe627c8ed280ca7d3ff2cd8c358981a2729d274f3540ce96fb715837e58b806974cff3307b5ac92bbc54b5b7608e0a5269fe25b37aeac246972b9f8322ce552a71515cea9adc891e748047a5bf13df1acf929a78aeba40af98678c43e8f48f5c726ca372fd661dd7594869f9ebfd19add1328ac677aa6dfb2999aeb0e783a625df4a88f78ec7db797e04f2f3e9e0b357108c0f43cfdbf169c414c7ebb56e38d4d0b81e833ddbdf7221122f7b9c3a0d8173f4d661000b7bb945254f2f6658896019504db2309a892a605362f6bf126caf4a56a20216e93ba59640efd14758fe7c694152bbd125fac9775c3ef8757c7721f301c85fcca26671f4b608197236a136f8c83ac45d049c0fcb086db9ab2cbbf688b7b24c6281b6872fc82adb07fea1254e076a89fcb297331e860a63e5b729e864495dc4e323e72371629df25cd6ce2d16a91a54951c5cdcba8027293811939068cedac7c7483b105aeedb7f674f21cf1583d540dc501e236eff48357d9332455b79d08cfb80f7718c7413fc26b13206af09fad5510c54a892aae6600735237ed9d0f8fbb46ee4a5f218a81beb68c0bc8d553eea2e3f39b898adeebf6585e5ce9831a07fa663cf2c5560b080a4622dca623928db76c64c7fbe1e3ffbfcbbdc6e023b29226e4b09a811f5763da9f7ff83cec69413aaf7d04eeadc307b816dd251660489fc59d0e7e504a8f926971f61dedc8231e2d2744df1d81f07629c7571d048bfcaf4db9143fef93a6bf73dbb9f1cb57403a0e6fb0d0f128b83564541cae08cb989cc4615f97e301ab240bb24ae115f2be126b589a0a25470531e9bedd0de7c88787faed26ba8cb8aea2e32aba1f0bfd1f897e035597d6d129c08459edee4f383dcf10561feb93cfce01ac94335ad306a467297a2cedba9257728a7052db4299f0fefd34d9b4efa1a99ecd68446ec4f551ff90ab85b0a587f705f73585f2de31aff77199e2fc916fbc94d6af35884f159aceadba8a01908e2083861cdf7580983ad61434f2bd187315dac94c60f8e4d7e6786f7e9ffa27e1834901659deffe8e7b043417004df30fbf20c2387b704d124a1e39edd1f9d8b1ddd138b8de0d39c49b0b61b94b4d802a15badae5dbdf63109fd97926e6c4037e35e8770632d2864baebe2a37037bec2201e772f743346a9ecf2ad9cbd94fbf66709e2693bd839e8d2b35e16750f6649c2f7417a8b50f973fa4cebf2500b78dc2ca2381b945b08b2b1ed5ccb05c1494ea955e654c8ee1afe2fab672bea88aef0cbe2775cc912be52e5932b4ed356620fa4d81f0ac70a2b595e0273bd44860b2d62f5ee18b0bba8004f33027674db14686fd93fa737481fe0ac19cc4884c4a3c4bcfda9a509fcc1aa416f205a04e12e2969e2af4da06df32adf0c271d07c578afbd8d9c9898ddc7c4df7b3c3b06fdf2c33131444266e3c9b302cb03bca651cda9372e9c6a184ae54d00a241bc3a49359a0e3a5ea4e9389ccf9298d44e2df2891996dd2a6e7892ead3b1c25e0463e28785f622dff6529f7bdc938b744bec78b18b018b11e581eb1575c8cb64a4276877671245eae4ac6d61c7a011eec0ed76e5bb559cca3e80eb6b22c24375597a81d7d423b077ec079d8f4b686991062fc2fa572a69bcc99910a0a4b2c50007d3551f2eb4a7b6d8b04d818da1265bc7b0f99df163be4361463a8d25d77d15829913d6b626214036f63f6bf311b0aaa3edf807d03e5c8ee2b82c3e40e7aefd07e76b0f7ec847192b94594c5dd8c248e37564c293897845721f0e86d9372c2e7a8b13f829c1f9855ca1258e1ed4edbdf103237cded13a08dd55ed28434ae284b9eb4372f85748abccc252355ba814f99e5ae1ed70993fb69c043a946b704ed7badf38c28658fd01da7f31a2aa8eef455ea38dce7046188a4c2e47271cc500d12e30b44a32831199caca38e121e68893fdcfd9d7c865c90396dcce0b88d51f22d7b47c5924dd33288d35838b272ec00a8fb8bddad4024aa3e0f4699eadffe3fde25dd9035b6445f299d54e37b3e6cbf47e4bf4e3cb4b09734e3c1a674cb71ce9eca318134124df771d8d7c78daa1b0f10f2b7d709a766762cf39c5a17199aad873f30a01a7e7cbf9d64a1371cd6cca7eb7801bb21ede367055f4b156dd7402a0e9a984042fcd87cb54d5bef1a49849cd14a4d6e3f89b42a573820c03c233b0afb023e02d7ed3c67578e1492aa4d5b2e87b7078ae6177c5def1ff64d1a0e1cf23a32b7b93c40aefa86c8729eacf855b2d4fc9119db8ddf0681fc52e6244de9222fdd5358e6e799dff76a4f270fd25f00ea1da74a1bcbd6969eeaa42241cadbf8ac471f40511ea1d914f5bdecebaaef12ed818b7a8a08ac71922be5d3d7ab62ff207c521cee2c8f353e8af4dd5b2d831c34fdfb73f6e6018d219039d0276be50f48e39291255ef5550ce2e3f976e42594c2ed39247683f5de302d3090175cba3d0d5f8fdd19cbcaea28eabdc79968f629cecdc2bba5f9808427bea07969cb43e596e37926e3f221d4ec964edd414bc1f2d47a0a97e2cf08400ef78e417ae964a3120196246f45bf3dedb476023bc07b1c693d7f84dbc34ad993a5f508e0ffc865b62a8ea616de239dd4da1c7c352111076b5dc46a7697a540b5c53dffa029bc21808552a30d9c8270f6942d94826f289d328f787d48c3cbcc03cce89314e2b65163b4f28532f1dae8ba707f059886d3b99e2bbf2fe78e8204dde7f2a41d5fae8ec1cdd6d7c9a13f09ce1b68a23d7919989fae88253576e2bf67385036ce99659eea97a865991bdc272655fc957f37aeba55cac773792cf7e0e33c437b04e16d944b72c849070cd31a562c1f3be4540ccb4fa31d28cc2262d20e49a4fe0394e1e6126f17dcca76ffa8653c5f257b67aad1838abdc06517142e77e93b74bc982f2b8a79f09dacb9210484eb7d408373951f689be9f8e3d77391c5bdd3ef7b9f1b2d5a6dfc5d31f1019e867cd4cdfc3ac4fab85736bb7be89820ec01f9a655beccfb23911d35e6706f2f8927b2fe1fa4e9494d73c5343ab75030fdda3e2ef0314506c2d2858f713612731a43af96cadc8de24dcb6aeb7dff293aa74ec12ae87b24f3d8a81fd4c1ff67bce66b3462a0d68424bd50e9601120e80b4c4908aef731678ce28ad6faf24dd66c8eab1598a5688a629f6cb6c2ac5860a2175978f4311518dd432fee08a8ba292d276e098d81ae7471bbfe0521c4fdfe6af979dc9116eb2e4fea87683f4d4c15e2fc80c0ddb8b85350b6480af7622e9bb6602cdc3c2f3e5e735484b13475e625b528aa5e7026b5ed21a3731af72ceeba8db8e046f7848a0932968ce4dcf2aaad1523031f72c7eeb579851fac1d76621bd4f089c9f567f65fa2fad097188861a3b2e9aba34f2ab2f5045f557170046277d99d2dc8d5bd90cc173a7afc5e89352c6da2f93378821bd1aed5fd729ed5a2e62df939f54c8984da272b95712be1644d7295c55bf3124f96c4b0bd8326c752a59226b7e7419a9ceebcbdf27251a0e5f827a91c52f3f70b1cb4293f5b14a42fc42987db2528f1de9fe5e34294f4fef78133c420b0b9f47f11463bc0aea9ae99571d6e402b546c88bcfb94685e6fc933c894077be7ffe91e6f6bf54936308816630cc47224be16b7469d7a3d3c22b2dc016dfed71d879b0917517e96f673cc4ec3b8da87722be4941692e2770c07acd76a1e6e7b408dde6ec694888b38652c52d42ec30962fc20eb4810fef8b435b5c134460170326747c32fd180f31135d87f06ae50797cab060ddf7530e4cae5d041bcd2150bcec6bf6ea304db6f2a5f9b40bccd8791f30148ece235c55d2eb8d6ed54130e90837c20d77570ddda396f5e4c6f594fd1c00b622ddf45dcc7de7df5c0155f2f7828bc642db999c493a87021f4d6531e027bfa7627a6c03b90913ac7534f432cf978d2a30ad715f5ad9da7a927210b9a10c54dbed1e1f594973e53b5215bcf36bd886a2ff243032e1fe3736b19be0a44c338c4b0ed1b80c3eb7556622af800fbadae715a27f790fa386086e20683026527b97b4725a75fb2d8a603c77f6c7acdae0bf5fad10c306b6f6fcb131e05241b5a989dc5758a6103d2789c506374b80d636479f019ddb8237d487ecd5470bb88eb6da6b62ef3174603253cc7a8a7cdf651a571898d95fe0147561773c6612c4331ee755ab1211098a74c8ba9ca8fba2b80beea31d344454e0e00340900594a189d96ed1c0fbd33b55e9f58670591fd96799adb03a5d5022ecd72dfc84aab3e94fc816e19da717210f2f6baf10927348fb145cd3aa66a0232605636ea60702bd6b27e56bdaea15e433ebc0475dcd36c2ac2065e785a9249d6db46bba9b7c0bbe7d24c8e595f51585bb1e0c15d081d94453b254bf5c131e665d24d0c9d005c9db4cbf0e88deedf6e7cfb66dba07ae85ee9ffa5d650beba75ec4af62c0375d2eeccff0ed19979da832c6df83f5db5593bf169bd6eb62982a364698b48014b19e16e07efc481d0fb27b75c1f4ea0c72112d6db8b8cd0c7ce781de309d400442720edefab791325aadc84455e982df44448338c222df496f71234084b82db36d771dd428ffb7e9d0c65c8af78fd5383e2018163cd6cd6e1531ff4a58e321f2276cfede7397cf9a324057162f98a70a9ad24db76fba3140c3e002129dc4671ea88787e723a8d41f89f0a102e7b7f622ac37657bb2592d9062117c2beb3f8f0d1df124f7bf3dd4dbdabf2f22002796b05c622081d4609ebf62a5be45b20152ef8d4523b167c8a44eea2c8ba9b025db0eb11a355a6221de0479541b3a1ef987d7aa15cabaf59c2e37d2c7b4eaa17159aa5c598fca9d13129aad2b261886d92be23365461c6c7044866bb7513e1dd2af103ece633d754f0c35f5084de36d996f23ca2e65e482e20ba410352a74e28f647d5c5c12da4c15bc6a6020befcc0f5e0d571dd1d9930f2f5c97f0ff86473f6d1757299d8621f452ee0bc7a9e73f0ea9d78c9d1ec3eab8347735426857fb9d822465250544758e71d6b5e7290b50d3d99cffde0fd00b0dd3126cef0196beb0b5f7179ffd594cba41484a8378a59cff4eef7ced226c4d62e7b1761f63b1982e78766f85a83ae5b4a1bacda4cfcfeaada48028fe5b12e5604b76adb57bce0ddcac40c6cc649f72f4bfaa7940b487bd4ff52c5de47f8eee3d40e11c044167cf5949ff826dea0d7da3e0ab3811d86cfff3640da119fcc4a4c779a88d6821d050a2b515cd0f21cc9705d940b9c039da038965ef58e85b541f3a848fed4ebfc47e4f91d05af83d1515d06c37a8491a72bfffabb0c3606f8cbb087579478ed84079169c2f78ec98319b63b22ba7b6dabf01f81dafed121720061185dcf5509ca0ceb6def7db02dad82e721b0d8a5949f8d680e75abdf4c452b10c5df6b2955131c83fbd6b677cf4d71d9847d0162d6c28371c953b080ef501fe2d87e1e78fb18299f8bc8fca3018f291652de45ab5542e1319c303c44e77c4cb302ab00dab892641b9bddb1aec93570101c2a4da90a3009f7b6aba98c05d464f9d7eeab645e16fdf02bb6459163e55661980c0cd240c913a80c50d4bc8d6e9a984fc745455246ad074245869abd315eb92166e53f170d81f1d3a75904b82cc039470cfec10e5071c067ad8d2bfa81d74b35bcd62902a33713076138963241d72cfee8c188a0bafd58282ddf2cf0c2b0aef63992bd49110a90e8817f519c8bd30a986425672985d1e0961b85ccaae91384aa40a8f588433ceb78adff670bc3a0189f7ac5456095fdf9c7f4419ee64584c63b8822682e61c3f5fe77305b8770b2e47dc3a4870d76fb085376268797a4633bb8cf3274fff339ea85cbbbbb8db9a8b702ad44bc8e652dc8d8cb1ef664420963d21dd7a7935ec2bb5d5c61748efad337e4427de955b4e16c77cb48cb278ed438609195b0d5a25189992d240d6e31a10e3a8755906773f3ac544225f870bbe538dbc1b1ac84781c1c9025f43f05383976015b5ef6de7262fd1951f6520025666ce3af7d3cb5b320b55db2456ca1cedc5498f6512b69907c5373d8dc4f4e7f8ab0b845a8454ffb04335f7e49f38276c7f243f2f9b8c755728b94f5865205dbb807c167abf48dcfc8c6b934b64a5d1ca366abde9de950e77058b08e811384777c870995bb2a80e0fe02d35556a0da92d68b5b6d7c176c429b4b80ef7e245d653161bd17db308bb48b0ed71bcc3c16dd38b54529118619cc7c10c27524f7d6f89196afc5f23ae59e2229356f3d702249f3553cbf28dc692fcf76b64d31ea6b0c9026d65012001a06fb7c1febd9b7825a9c8978d60574018cad42a23e10c94a1324e2cc273a6f8bfa776e0ef26cf7ae84d5bb1579185d9cf48e05508726dad5fbfba34ee65052e91cbc373bd26d1694b5f5ae930c0a19863da2738bca711024e23359c0552683bed463a327fa3f0c14b08ac857da1fd4221b65c2a50b473580928224a7fda530e4d6df26133d956b8336bbd9292836176590909ef4ba44e7e9db83e82c449b940bfc2972892724c92905d490b5e0d5b758adb43051d2c91b91b20ab1a01ea9643867cec7d16324eec39c89600acc2619999d1d79970184685f22a5c6f251573b40fc82157c2e43a301ddb8f01d58c0a6da06dc042aebe6ba6d11bcb23b4357305126c7d2deda0105096fb01b47f19ad061b70a9f6d709e4b8bd2f81d335862d96aee45208b67b0bef2ff4c12c3eaa3b587a4ab2a4b0e4e8cb987da3db8e753f7de61f47fe122763d4a4b728031f7b5183939b642af492f86b154a5794eba6025d64826c37e5f1ae991f5aa721631f8317af430970b2c61a05a61150a9a1a8efacb2c1379c6387fb4bc36f94c5ab3e56cdf57703fd5cffa0c56ac7f9ae675ca2f10af853d5e6700e4b254225ac8c17f291126d56206fd322c75ad4a5da18c4987462fafc4b42528bcd2edfe5991816c254ff1a3aa99d52e0d40c8e898dc320664e5c1596674246ce76c139afcc9410448e9f9cfe8129249d46f8ebe6dcda08b3aba76f237148fe4c543342967e9538f2ac65cd340f44de73673d29e785053684663ef257a49202f8612d726b74c7436dcdf91eee84ae4246ded89c600617cec39d545093c9046f0da03251af7b2c2670fc23a694b1fdcf6f135808293a30316f0d742099ba658a45c3944d51fbf4ab2141041aee80665892ad4d8e84adc16cc8284e419f410dab22b488234907d1c5ac5ff445ddc9263f3950a625080764acc89cd34e0af94cff532b74ea8dcd6f426c6d85bab50df8d8e7649b76f56004aebb0f56fd010be23277f850514f71b762f597a1ead7c089886feb7334e5aab188b46137b7a8f5d1be67ba189cb7680f0a24bd5076403ae7071e9b0b47075cee168dd93aa7ede03da468b71afb9379dbad36a7023a9aa788d0215422cec8e6359249fb5d8e4a488f61d594c77f99eee190452e40b4f6a8d472b1bb003488487ac22770dcccf5a871f7a7f00186c9254bbb7505f3915c51b483a28f04d5a96fe01afcf01eec679dfcffd8d4dd9159893bb8b9f22a04636d404cc472dca8701ac8a7a354e51105f33130b4a67be4ba1d23fd717039f1d406c4c9e2b45b6113c1d22ded78408d5d36b5af3097800fcbc1d9e9628ec3d47501ce398ff4b715b40fe7e7f8685cc092c31609d611b599b4be61563d15abc1f41222f9d3606ee515ca1f33b7f0af35552751d53f3e21c815680187902df6f82b73ff5ee5b71f55e3a7dbe7a191eb572e4eacda91bd225bc5ba3210fdfa0f246fe372548dd3939923bacea481ea1c5bcb88604b65be28daa36eb1f7f05d7a1c54955b6e9714236eac56cc0e066c637f2c206d0fdd88039decc596d042f526cfd7ee4933b3b23e7e6dc9fc57e2d95b5565367efda060b3218ced057102ff2f034b3b799cdfba546d0354a4ea6566a06b8186e163f9159d06425993977982ded309aa2a0cbc947a25afc199d37db74e50c2321420ced33b7a2b0e021f8148dfb5902fe9a3672bdbc92a7da93f9653728a8614c1d7386d59dfe72340de1c92fa26b4f29c1745a6dc03b92fef378290a353abdfe7409626fea2dbe0baed1fa45b1869d04ce0a0ef00109851b2f5fed9ac91afb09bd8a29a61c72bd3bc5de7994f1c0d7734b90ce97925d046cc7a2546511950c85a474091308af64830a985af7228c96e0ee306ce4a27bfe4f403368400c304a4dbaf178c3de1d0500a5b2cbda4a8e0bb9054d650cb54d6ac69e0284d2442d608021c401b50b67b0b8335af1bf52c599eef10acc7c9f3382f7798ede16d7b75e015622625fdd2c2213666a18bdf60ffa74b6ebb8515f7d89ac9b4a05ddc67d75f800b8ee2a00511f5c2413a1fc0376f5c493b421deba7d76d4308fd24aa6ad5f50dd3ceff1c87e194448a98d3ae7c9cf5cb43fc42ab45e6e008aec93548c926a36ac53cc864fc46c60e5a5b8498b7d763de905756fcb21bbe76b0652475b484ea039a3492d5944bca62116538e87c4686b7673899d1176c7e2ef586d435742c5c4705bb31f134bcaf49dfd72849e5d1771ef5946d40a4eb770f4880dbc0c9eec9c8098da099d4fa7896e6d27378c9d2bda231133ed605f67b41d2233f8867cfc691056f88a63ac3a8aa351beca2495beb91b19f2f265f6f8f265e49594d6dbd42d84e412b84a18f77e6137a6f1c26c0a22244fc8a266c792153e03dc00e8aa302f51124e9ca82a04d3898d9c77064f89aeeb074ceecca7aa2c3ef820fea9110e7b627ba2b10f744557f321a7bae27cc6fbaea0cd7f1259ffe965cb3427842700608db0d469e9f56ebf32ddad2afd645f2a7559eb2d83cf6421edf276661d92abf0152929a8e002c623f3fe67ce5bd8d35f5c8a6a89cf9ea84ea42cb27a72c6a48343303e471cd24480de5cb6be63b6cd45f685e0546f761f10e5f2e8793ce643340541a992494f9635166672aa27aa7987b4baed06d4d7dfa7126f9448a773c762a68171cb76f1c6863bed2f5106d3635865e5cd486b70497baa0b722358554c31935145a5bda2961d08fb6d0b99720cecbf66c87a71c13b95e4079e1bc4e4b6072d1b55c9bd020f83762b3940f2f911fd000e9c2e94ff4923e4ae6393d600a60fafdb1154e78d60ab7a5750ef2b105f4797ea59ab64544df87714dec3e75eeeb92213aa57957310684a8d7228466c440be0f6426b9aebf1096b793e350394e938640e0456f82430f235999b92559cc790f3ad249d25763ef164b94f4b7e90190237bd20cad0e6ae6610a19ae60114b99d81de60a3110da16e5a6498b7de873e546a86469ff9efd44328949c71541c5501be4c4595379ebfe18d654f00117f02ac0dcc0fb6c2de9eedcf71fa96d67e4c0c5df597bdc04c25d21f5a3104effaca4db5117d641b8fff2d76a8d94a00061313a0034519796fe96a2ff92671168916becef676f28c9b05af4e0ff397f62c3bef71ccebddf11698f88a2f974a0f1d094b0577c01b051381828a3c23199a98777e9360a0ee7345f76df0d03168c27b6f83b6223690702d0d9c203a3d84e5339421d8879767c242bfdfdd00faf63f2f8fb876415b772509515426dbf61c9c095a3d72379b18adb5ff09f2b459f4d5bc8d82a510a2e81dbbe1e6b733ac3b4835daba4fd51502736db6cadcf211b67617173c1290906f023c6ff370f525ce89850d8786da3adcf40410a2dfabed626f883086b08edf8d04fcccfe74b284d9b4a90f14d1a65391b7c9e538de5737756e88d2c15ce9f5378927f6ef0749f1efbf047ed61a977fc0b6904fd6feb1133fda42f996b02dae55a3e66494b6f9b8ba827fabc61cb1463b07638bebda380e6277bd586fe71229445e21f31b0fea097944f46be209763688492c10883f5456575fdec6fdd27a8b55d892029ae9159b7d9a0d33ab4bae6063ecd45be47d4266e946cabab0dfecea4c2d35d98840f128ab96b223a64e40fc3a3f72f0d84b2f0fb71455f64229bd57e13050f641993cd6fd455a76db5e6498b05476ff64341630b6c77e8b2d9f51e842f9b4a385fccd2e017fe04d5994c74a1ab50975289852afaead36f5303937e58f39f02df97e50c05800b6abb0cf6f0105e1f870ec3dffa8b8e9dee7ce3bf9b95d6c7dfda4593cfb38df85b575c672a9aea3dfbd18738726c64a4ad3ce8cec1a34ce444274928954eb45aae7c21fd22b88357c823cbc0b1e1b722ecdbc1761e41128ee01b734df6e4e820a21b3a00e5aba2e543c8a157ceacf4944c06742eb93e569d220a219416853643caeea6844c49e49150e57c389e74ccb90496171b7e01315966cce407e477fec029b0b3fe21a44f55b8f9eb2d25ed41590a2829c19e4f676b6c6b5b8e1ea6c4a849a41ed4d2eecb7c9967c69e87df8d43c5466f3ca7759b3934c3917e8c7482bd1c7b7ad07d7906195eab587149f22f72d34ea9187ebfd9ec1c11e82fb415558975920a71e11580eff5e2ed7fcc80cb4445ab244fef7166aa9908b47785c67a519253079085e23f951ad71ec88eb47e3a452a65d44e1ce1ac66c8d067c12692fc77521d92d10051e5e392c57ab0ab6a2f1cc71983f0fc1d70501956741add8ea0b502f3ebe7bc3ac930eb262f039104d086f010fb8fe80021a1cf5640a08468234af1c9e9c28594b2a997866f40561c0b33e0a3e04520e22c07b6623dbced8847fafad3977097428fe0299a623ab89f4114b831981f4669d4daf845a876bc9e4b5de2a795c6cf9dd0ca753c46543bbe1a5db273148b8f3450889504dd482e5c5e41ee2d85ed17c23bcc188be96e600b74f70f4e4d59115b2153dae52b1990f9c12a0a5e51914ca50545f3e82ef93b260a54ab0a99199a3670b9ce5edc8b8bb99097748492a5d5fb0588d1f0bc09c015f650e5f5d6a4764d669ce2277ecaa746e914025e7ea20f0a1a7fefa131d3371ecfd43ceabf8f095228c95f4531cc15755b21198080909e38c8ca5405763b15a74622d0c83d96e66bfd65dd1bf2edd9673dbae8399c106d2a22d42885fb2296759a96aeb9732f27dd92e5d902457e2f78606a5cb74d9f30c72ff860be8c0ce180c2c6183fa927f71910490ee02109153e43269d8c0a2181448284028cdacd140712335b0baa13850067aa6096b294217c6d113195ca1a52064fddde18ca8628798fa6a8f9c4c9a193071dae704feeac6eafda67e59a0af9bf903de5d57a89ce8c2d1f205dd6819438a8a36f0a810537483980ffc8c4a85a30220d164af704634b9eb753806f813358e5e0d708894694d72a53a0d2898458ce2da28e69aa87d8e72ff3a13d482e1cbfd7b3f17e6a1370cd980a92d66a3765bd8eb887463d192ee0aa8dbc7283ce9d8fdf475785e190284f7c7e85e49b6fc4b416c15c5e645979e096d524511de089e0085a68dc077cc1b5a0f2fa566a3394cab61193377a360c0f71c9ec4d972435780990d31761c944a58c0318ac2bb4c7fb7876c3b4c3e0fc546745441327ca3b089c749a57cc4491ee3b7ef9cbdf363bbcc833201838377f7864a03fa622a784916786b0ced3bc5baa380caeb1009cf0b9aece8c9ae6a28f0edbf2cf29095993637d59aee1488add36942c88cdabb0d2e69cf3c7ff9582b212d250071122b2c810f426db91e0c9632eac04119ba6c6216419dcb30d417044c9897ae81d3c06fa59ee7223b4a6a5f36cd03912efdb18a69d8a9c68f37c1e90b9c8b5f72ca0083145b20cc29b523414f0d828eeddbb51f0358a66b7174c3ab4784bf56567c1ea8b39cccc59cb338bf84a5eacb7bc56fc872edc16751945e38c19250d28691088459d7d9128fb84b35ee8fe48481bc0ad8792d5a86cd493d448c65ec841b7a880553a586d862ce088f3b14602fabc30a2b8d46657f27710b2590ad58557522021ee3a12daa5a9fd33b2c66536e2c5a03165b030055c5202c8b0935cb39b8b7c539bc13a1601e0efe691794fcea3908f100409dc972b149f1680736cc9a4a7c2572886761f03c5e091c65c5024289fb87dacf5ef7ac19e8f6ffec009da657acc1c7627a3811a2ecb3b815c910c3dcb309e74f164a50d0c383bff1f25c634d72bc4f5cb403912578d54c38f4c23a71bf738e3b584fafcbc01159a0bc661b60ebc722fbf2b6dafdf94bd4735002608e8719b6c09198fca6bf5f325bf89ff4073c4009b643e291470e7b85801a27c7fb2cfbe142ebd1cc1d0eaf26d410b5207db4c3537a6e442282ec1f49ad907c6e87746bd2d7fae24e93670e5b93777b194105fb0b295034ca12f07b3e5b11001182c3d692ca4683238e85d4c3742bf4c9968383ad1605ebf5c1b0176a8089756d412cbdf61a98ecc03840acdb268fa859047e2de38ae3f8b839aba07326332b999e8a3152f81c957ae03ed4f6ad8f5b8dd5a0005943466fd28b79a3a5e9a3064776b06fd34d5b1b987738748fe01a4955996ab88ff02689efab9b24387d2bb5a429a25b4331f3cd6114c429e2ebe56d2ea2b0aac2b688dccff1cf594d268219111ce3fb1a753179ac70b92e34cf83917189334a5daeb25e8599fb05ee3fc750783ad240cc1a7264396b21bb26ddcb0c88a743b731643ac54944a339c1b4cfe8926f16abd4d852a93285b6848d3f9086439d75109e5ade0d4a75f3793187c4219f2c1ba3b098b54e2765f57d586fa42043cd667512833037581559902f4e11556ce69c930efa92d12d56bd3643be33cf65de91edf5c81074aaf0a984c9b3a2dbb9974519b1d09c053fc5808026cf67d4c63b33a5bc86f763ae36dd835af3740dfc3c59d947a1b0776ec50538fb195f9aa6953d321e0e101a7efa53b52e607234935572d126271abc608bb656d7687365ef5d5ed3be2423fdb3b6b14014dfa18c61674e322cd1a55243f181ad705cd098ba4b12db4a8151ca31c64406796ba5ab767daa175542830a95f74bebfae8598758dac9b8f7519e44eee8fecb629088e937a32faf79d0f70f413eeed088d4e20ae2c91d529ab6495b04c2fde0c5f0dea4066a6fa06906e10dea8bc8b4723cb35b489b139e0643fbd00d5ca3797cc2327ce668f0c72922070dc64ae1b7a6105fe22c1872b43881bcad4aa23e46674ec3d60eb44a9764983ffb1608964e3192ecfd87ca25c3db6dc30536e343060e729356a46e54ac368d5f041ff8dbfebeda4af84a81b59b1ff80cdfef55151a6d20c80d10355e71615cfe266b701076525518a3b6d0c6ca7186c73f538e5b557bdd56918baf7fd8951508af71695958ec42b956158db26b9b708dafa60cee93594404438205f483f9f91f80cd02966b6c34be4de454292af9826fb594af4bd30b81b26c596486ed40ffd259d2fcdeff85939a963d05e823ff7dcf1c813aa3d211d7ff060a7d0e5fb9539a7fd13f97b73b1aab1581427c9cfe960a0b5fd56b7b331b3545b805fdcd65d1ad6e29550c11f95a8c51d0f218b52ff5f32fe38e8d945b3684401e36f8ebe18ea68b26eaa6530a36c103eec17a9a55371f9b4cd3198269a6965c304c88fe1650f1f1cd52abc2e565a9a7779ddcdaefedfaff05f9931379fd6b3fdb09d44fee1111cfe6038a3773f4c7813c3afcd5cf1bbb7210b9c9a23d6188761c326d4a1580b1f3f916c08541c159d9aa8f2e7915ba13e87fad3b05b40b732300102d92977f89848aca474a63013c5ee95784b90a36c30151d715129dc884493ff020ac8ba60df57d0199087fba22f53792fe7d11f0ecf1861bb8bee87b069753a386074fbff2b584c239b7784a1f64a001d3ebdbbd437fcfc0ce1378999fc3d6ffd879d648804158b5de1dfdde7699d4adc04673650474e2f4fa7c62ab14deec5cec7f68f4b26fceaa1ba721fcc886556074d72525c00171450b3539cf55234a171bd6ae2a2f3c1512a4873dfa85caa22afd89502df7e3c028c4d09938dd381e1282396d840368e5841b5d1b84b5a140de50361d23834bfe75382abfaa5de4cf324d6453523ba11d3a76a6a41a0ddcd692e0c4ba9fd1dce6e9b12ea6ffc09afde013975015411a0391e9b7328f56cc88233da148adee4aafa22951caa47680a8894541870411bb578d6c0cc38b266febaecb2cab4e5f59eca750a3731c12b5c81ea69a7f8a3b569152c816670ae341ac188a23c3f6cb4ed75e28d70e7c3904cb95da3f80c5b78bc0ac38f469dc19841088e3240e0f7b227d142bab0dede355a16605240409864321889ca2d02327ddf1e794d28a759bee467904835c2ee877200e73691d5b22eae179369c0bd72ba0c267a137d7f95e71d121da2e9010db1a5f8f56f334f7c6d86934fdfaea45542871f95669e4dfe4a6380424238df83d1cabee95c2fecb7e934a147c85288c6e07b7d56294465ff4c5d3fe14a38f60fd7773b4a66fabf907c712974347251fd1007ef6f5e71c278729dd50939f2a553f7b366e7a53575986306ddee996ca46910a8a9bf910c9d723f1a81dc14c09fa81121d2d7b3178f405d950319babd89c09cf84c8533732830862dcee14b0fd050a4d6d079874928acd4e8b793a244f92b068dcc33baf1b3525538f2f02a92c3da16f67946151cf0d81c698c5112206eb3e52a4979ed02b69e62d60af3136f602a5307271365f2524144e91c512d9003e26c5cc9493a69b90cf4d4a244af98ec564f7b3c17f7aa5a98c7bed52a7b77c78570092cde0682c8de5c87da5483b1e8bd03858a7fd01262b954108e4118842575931fa988ff1eb3be9ea8e2e69f3996e774bc9cd23c1f66ddfd38e1a5e2d49efaef9951291a085e461ed121f9f92881cd64c18e0851980e556c58236e1dd4b298eca7c99725f59cb77b626bd9d954656f5f1a511543db03e23ca0d9e4afd8f3fe690ab5022b756a49ea86bb0701f6c72585de095e78ce1d67ac7295d44f8b842b66b819ec329a61710cdbd84a41e75da3b5493265f697541451b0b9fa3c33294b36613af93427f4016e34528ffbedc8b236dd9814b0eb7c48d454e3829e16d6e407375f1dd0d2632261e9171c8297397b91136e66b44badbc55d251ed20be25bb219e49900ebee6fca9c0798a2d6d2a3fc6dc19b7affd1b3d7fd24ebb7ed8ebbe89cef1c81ea53715de271b8f2ee806abea698690939ebb0088ddb5c81817c42338a66b6302a9b2594dd3c51d985723872f1f51d6e9a90e9ab1411d462018f7688efc2e660e1496bd845d3c8baa6666f4b676d08bfc79ba7a40869daae85dc340cb24af0270fa4977359b2e4577cc305acadcc80df5da1eab8ad2296f6b4942be6bee85ab5fcc4f38846d75376126b04e3cd045d9cf5f4e4b307e058ba27755f6810026fb605713be0c8c12319744a0a3bd6567dd8bdba7b5879ae11aa61b7a885c12ebfca589d1f80c68f4949283cc7581eb540c97edccb238007d975825f3098a9cc9d08a2cec418f5a41d6e4f3581e948ec0c4318e0a2df3523672e10d5f9773ad6a091d1db443ed2e8dc35e39a92a15cb0ca15cd8d030582c19c357db955e19a4522377056297378e4250edb0ae98a8e1b6779ed0ca4ee2482f8be4b026c2b3791c42e34d6f6021bf17d2c37db85a39785548ab29d6fdb06ff23e0f076b94e427ce8d6c7a99eac3237cb26340ffecbafdb07d65c5f04c1741f6631d9d48d3be18a358bf4fa0b1da575dc1b2989fc0588ca78f7e7a136ee34862ffe30068b80fae61789a34898397167e06bd2cdbd02de1ca543e51a8a7d9d8f9105520a2a41e4673de46635973aaa25eb000bc4930183aa0e864ff5bb971610c1caf868377c6abc198b7c0dcd95cb127527367a64feef1439cd691c3886b2e69a75a34b50a2e76b635b7d13f1b8afb3dbf6db202930c1572f47fb51a495c5821a43bca2697c698097462a973094b359db493a186fd7b2e4fd2d7a9856c8a7aee385710e4b621c3172860916acf4d0a81c47cc24d95cf99b35c4f739d7580a4dbb365d9d10c176d179e1c529f8aeb9d3a4790a9d9bbf0e736a61df3c660c8b390c155ed5a9f1de9e72ff81d49e993ddf6079e5a801544f05b78eda6777556f28655744e5585fc5c3e8cd91cf9957855d9f23bd79e6d1ff9a39336c0e2f46b134f7eb335036fe6c0cabf44bdddbf2ebd89763d6b73db3966c90d014c0ea52c8c61849deddae11dc564e5ae5c2c8468195df8a91408ce2620962cf119cb6e4d7a1c3cdf51c0043afbca8b8887bb93a7f67f339e3b66cb9e9d1d8db097cd5bb2d3017b27c4fbf07c9d253411c6a7bcc3b1cb4d8d1550a4f9667205238603f223a9bd487d12a53581720305267cbcdea615ae59ef9eaa91694cce9bae9871dee6bd6e14a9b6f78b6e919e1398a6ee61f7bedaf2c59dd1eceeeafea575b694f549a87c801f7ffbe8391894e0cfac5ec0b14281eb3e8aa53bc510b5bc04f4ce88ae6a238ee88c407a8463c218772b77daf0567a1acbd55c43f00c9798deaa2ac3b3fa3834d53630b888a434a06902d2a86adc78e25bdcf05ade1a10717a55c99c6ef831da97485d74b83d97b880352f7701ed29b941e923a7dbac4c83f6e575b54e50223b72f2b49750932acc39283dd70942f664341349dccec20065247c3d6b8933ed1cade5796c6611e9849568f4931b584ef469603fb285a600eecefc4a025a4750bd5b431c578dd6e3fbce7709a62672e1908a15437b040b5b2fc72e483acd789d5f46d8b32c2da6a621272e1a6e44aef2c5c5083c67e2da2c5cfa6dc0092c7eadb9751b00caddf8c0aecd54935c11b93562d325f326e5ecba22af230c76f6db8ea2a2835d63dc9ed02f7534085f6892c25b3430e98232db2a678e88641279d40755a0683eae9486f58636f96c51150d90e3b6047296e5df4b2078f2106a4da7511e30fcbf15d2ac3e067fa1f9a9992e7ea809023acf5684aaa545d04676e35a1f9f193146c941be2b1d67ec89c48d2ce7497bcabfa382209f8674a34e50d145c8a1525212f3cf161a6c17440da17fbadcc6082b681dc485c09427945b73b19d2c8bd8ef4e06ea160de2ef98752195ae7f69632a0c248e9c8cf5756e449e58c66d84ccae87cb76e663cddf6e07a2284025c6436e5d498a1c73d1f3851b7fef21b84b75558d368fdb6e718f33eba467733488c5fadded82570ceabd4d55625ba87bab58d1307444d06cb9ff01eef2181c56b23e5e4a0949d40ff5a1e142c122caf0d83ed07116fd16b17961aceeaf2b32f59d80e96ebb5b404d19059ae73dc09e6332f56ba3cbb20bbbd8a298aef85f4c70accd0d424b379c148847d301a0c7eaa857ebf77a83bf81ef68bb49237efeae05bfad9b3c60d6354ee1b3253447c4e85825af469c82b8af0bb4be0366e15609e8b32d768dd20162550dafca8c60d78284cd23c10e425534a4d541e27350cd2f2bf9fecfb8b3fc9e280da6e86ad299e6129ab17f698a9efc2ad4ceed6a13e49087ee1a79c86235bc791dc657eb613f8f8038165e453f2ab11244dd386ba69b8cd35b4ecfc98ab79431f62b21bd50ca640e976a733d91dc81bbd43efa2fd667181b4299ee01eea7148c4dab499af4598eb8c773358c2a2aa0ec668f67edbc678d8ae7106678a83839da4e0c33d1fa171bec205803bf9167bb853c36c1c383bc2d13d323f71e15cd1cfe2846d9bb54610d0079de9773d46df45bbbd5f94ecd19f5b5d701cef3e9a495528ace57d3205a65af7a19316a398d4e819ca0df245ffedb06d085cca4ded1e6c247b33690d858a91d5e2460112c9dfb1cc162ec88478c6bab1b61b9ed133ad1905d3efa5f14a318b08a86ff4c5eb0c12f752ca8e5bdec3d2d2afd7661e66e36c02dea6923c8aed1198549d5fcdc479110283dce3753720f95cc973dd9fd58cd1d3ab2e8682c76d19b596254d8d6e644317e5221dee3a38f13e32113e51bb13d336de84e6094b19aa3128cd1b3c50f8e5a6e5db35d76a3dbe4ebbb2d1461697266b6505384a63b94e011f988f66645369e1235c07b4fe20a9c3aff1af24da6d35b94c0cd176771874bfcd23816ccf7dce4086b0e7fd9d0150b93d45d4a36d71aae796548eefe980b52b342c3dffc54decff5ebe3da0eaa53eb06e9ed01379a9b5c32aa65ccaca45c4a6ff1e78a9c371ad9ba093567ddbcd360db05a1dd30433d39fcfa4ac545abf73b51bde9344111bc85922d9cbe9e6649e98ebce44dbe77ce3cf39d2ed8a5b657684d213d8809b0245bff498172cfdde80fd2fedee3386334c2c2715fe9f36f183607dba276219c26819c6ca8503534a304be9c61f7adf75aa948b57137aebb1f33cc5b9b0bf82bb37f55658901efcdfd978a9edd160ed2d5867cd0d0535d47b512d73bb0cc5d608daa7fe8bd6a3551d51da80f4732c52a6a70c12b9039f37de16eed0994c73322e9ac63f1b4da940b0ebafe693b63657b7416a9ab6bcbbab887d5d9909721c378816ad6c3ff8be2cc087963132876e3b25846f2feea03f480a53fc7861ede9c0b082fb5b8e7d62f25dbd14a0d208d4d109178d9e318516a954d1711ea1cf53ed5383132d851f8a7d24cb11f1acdbfd6f633138465f1bdfc0acc206db1983ac712f449d1cf7401e485405588cef09952c232e69b299d36b7bf3a229d35a07974136e50369d2627aa4f36d1a3b6e7ed76d54241e49268d42307003edbe42df8c851241f546edaaf1d7bda36b703f0017c8372ed706c51e1fe58631883a591a56e17f5ce6e5cc664505eb84c4218a4c392c6bec1b4b932670600404d3a6d124940a38838c8498a931e71aba802f060e3666799bf1b4cbc1d70beabdcd99d9533baf6b346495aa18df5aecdc5f5df11f9eeb6ac3670ff5c4aba6e32818df147612ac01862bf3713672ba0b1505db7ac011fa31220f4e52cd78c8d0647b08690a34931693662595ff7e07c2d57c5ce714c5050cf37d99a50c7a330c6d5e8e7a21928276dfdbb4897a8be54eddaec2efa70378321eca6b980026f75aff51807d586f4a0b57169011ee956497b6ec531c59aabd742d14bd5a5fa262ad6385c53bcee2e378b5e57f50cf8f9bf3c46a841e8aaba5951bfc3f4b6348c71b8f51ed726d573762afdcab6b1cdb122551c04e6b358b0f863526aeba47270bc93fae8feb690e33102cd22ee5c4d3febf256a1c98ffe4e9d64dbc241c39820b95fabc3dec579b31753b62bb25f5444a9108493e3c43e480fc73ec9034334fcfc8463b02ead764b0c6396b50e696ee70cbc521f5588dcc1c3d3a652c1b48b889261f1372986a265627bf91fd6b1c052a0491190a8afe72f06456de091d939e6c0753cc4cbba371491b8fbab7c7b8b3e24c373ef7808bbf57991290b1d5aa114b717d16ad5b9c27d7c0b8913d8c7b9308f0fcff9f8c253266e594b6cd0ebed90b4e4b43c942370169077e060cac6238249d08b2992f6a5cc5597d14e738a7f0eb2e05c843dc840acc5e65cb627159a4c30ded0e04079762e3d9bb6d318f2a069145b4c00be25522c7980ed958c247d1346d39aff183257e71f0c70c683843fceb7cc569cd73d67c01f700e90023c92c100df8966039a07e3245963cbaf6db69ebdbc0a4f27bdd20399fadfc9d27df149330aaa6c2c0f944198ec0d0c7389018fe9b86793384766ac9ef4ed4e748f760caf89e281677eb44b715569cad9d1a88659d8691b65b0e89816e22785f4ce8d68cbb7a488e94a809fb30b4f9213ee66b582392bac1309501cb4bb8b4b3b21fb5454f6395cb6080b03e3e9745a14cd027f5013b67faffda2920b4b89635de132c8f158d85a485e06ba6074e61aade875804a82e2d367b65aed2698cf35ce333e09cced3ef7dc286ffcea29a310bf1214c8bae9e48dbc9000e2261cbe05c35fa6a767fa18f33829746cc2755203df967852ed89314d1c4561ea2583139c8a07bd701f5a4859015bdae77d95599d1951f3b64aafb930090ea85f1a71d1d4646c826deadc0d6579469b90e99858fee2f0ad8760a5cee64b3f03ec0be506f5687b8cd0d352aeadca6d37b21bf34f6da9fa37a57885becab159e1a260eaf5726174c357137e90c2cba4c1fd1b301479b26b7744041b87c667ab23c49564ebf74a1953911dec4edc2601d625ee0a9009e4ebacd2784da31c965359b5492f7d786b949ab39373522d9e12a1608d4182278857dbf01a2ebc1fc879683befc94922c036cd063b81da1383947a139b6eab1b1802a39d3933c86fe11a514dfe5b827d5c741dff022ed48a609337b09606038a2bfb85e9460d3fd10961bc2d6568790b369a585b4553e56da4307b407b774425dbcf804e36c2949bc55d0d3c4bad10ef36612634fd53cf00884f26b5c235ce2ae9d1636851e80b05e1ff4e44d0821a3fbde458f5915df9dfa67f458363b382c287cfdb3bb7db41d4d1d2c657225c096c6cb1b0f5dcc7fcbb45f874389fd32b93b8c546c64be259d8338bd18b57f95f342616561a0dc7e48b2baf78a1c3686276abfe709edda15e2e5f071969112c008ca44d1f6c09b59c9abf37c9fe9e42c977eae2d6515abe6c30fcd5dca425679eaa38ea2b21d831966f07c0888cac21d2edbde440e8220b9bab5c32373d9d0b2ee9bc7df6e11930f1c4e8f235e783df794d5b432c61e933f649540efa6a2434330a554d776fdf2914a8abd23ced984f67823a5660451470705f6a6e14bdeae3c0f8f02530c2498d8346a4e749ba183ec0957778474fa971801b973509bc5a531afc9a398e352fd24844b9fb01a3ddda47e6bab40734b6e9064fa60d2a8e1acc5753af261a45d3518c44c11d2b4124bdc906154aa9465f1c05b412dc4d5b19ce18f20274a6c68e279e40543c26710f374fbebf9951dce977ab940e89f5aa2424a6a09fbcb4c02dcb9bad09838468a9110012c53fd8ab0045a7327e73bc152ba243ad5ffcec80f8e257da155e8f4689099e67dec0f09f15a5a2481c2c86c2c392975cb86ef59855a214a6fc6aa2da8658d75550a61fd0ef0768aa6ff2f0d4946e258bf8420ebf187b5a02c427f3e25d30b792a5b177cd788da07be47472ba9985b614426035fd98665e34f00f188bde1c745754a43d1e789f5214c4e26a4ba1511d3f205540adf9797dceb07b101bdb1f82dbb0689faffc5d70254c9cf252faac335bc361a35c01cca3758b9f8b29c7a510bab8c1b2a25d455f8071d48b422f716d34f94d89b1e1e73036ab4973a1154d9bb49499e499417d5f6099d2627920d803b8f0bdeee1ad0ad363c1d664969a2349f2e25e36f84e314123c85a8aa21b21ac212cdf551bf1fc927888132263c40931bd00aa36cb964ee05210c4f3d33e36ffdbd9b24df399361128ee0282a68bfff1ae0393f44e63ad0aecc301c344d9b154864a9d423e706f0988d971e43615b3d87b8f951abdfebad8f642694b5d00955427db3cd9e2c119e3cce342572cf76bbd5d77c558d9e9a364e307fc33d00bcb14fe9519b452317c0e63773444d7dbe66786d07f08912ac69363a79ac1c56704115c6a98f00125c8c647be0417e964b496af6aa8470c4430bb37f0ea8f42a8e41ff52f6642cb89585e4caefea41365ffca7e92880cb48c20ddab1aa793eac7b3cbde5999c1a68cf967c227b6cea4591e7b174ce795382afc0de85a80ec5224c5ec2eea81e8ef1a50da320f5e05dab8c2a0c485ba877b4ba789c95f8242889804dc50d2149405c2677b56ecd6494c7b2d7c373455bd965ba6f10d0935e5c72d4f941363e925e72d9e272b9c9ae1d4540d7e153ec20d112d6cede799b9928405158f4e39f1d091bc6367f3955609936cd63f98c8c02e9af4330cabd48bfa8a921f1635f3028d384740ee3cb08003f8542929f1807c75ffc426940cd0d9ecb91df78551200fb47203c168c9aedd656af9ec0ed61cd7da6a44018cd908acdd52d566c54ec8629616a66f3c8543cb7bed62318ff7184abe5344b46a3e8360dde7bf2ca2fd7fd3b1287f090ccf79a09681fc988772c315276db4366197de40850095c997b3bc28abeabf51731271b5cd95d09c5f99bffb668fb741f291f7af06c09f0ca0d95f5fbbd590cf271157b14ac1569ceb04ef737fe8e789cf1b88adac6bb188e8117cb88dd6820f36efc6ad50dc84d94c8c22ebc2e5a988a33cea97bc522bbbcb76235ecdee1932fec25d99c3e920000f2e24f4923ed1191d48c9f56240a355f5047e6a0f5a8b0121284869f151cf689e3927f11bc76e8ca606dde2b745da5c5359bd2604af8b400eed9656c7cd6b51dd44bfadc0a672eb98563dc1898ce78b8111eacac79aa042fee7387f0f089faa204c9f70ad6e1f036939e318a47cc74a6d26d037e155549646770938a0335e6fb31c4a78518012f3303da9edd8dc8ba832c0b042b21338b011198147bdb3a63a923c259ed81e78658ed3d5d534acf7d42166efcae95df8c0c88c615a5b0e10c9022ef21eff2a2825590cf59b8b16c646b4a2a24ffdfdff3f2cde2d3c0512139897a0b8d3303dfae2bce713e05cbe3d060c92352cf5ffe0765c46786d8a0c1fd84fe6735927d67e5c6ad756a08f2b4894555d3942ee97413f6b47c802511c94a0382f24a3fe07a7521d7ba3c1356747c54f69adeaf47e7ad27ca9d2c2a303b749360526078deec13651a60518d7bf094b4762a3867b52d7c2495d4a4331827c5daf4140fcede18bdcbe9039542b9a8e278e5f32ae063ef2eb68b80e943fc05f65b20ea44887aa4f27eda944f3bbb93868a15b05556f70ccaf183aff8c3a169a0dac9f04bcb0112ff5626b288ef013623af1ef35ce508db7eac3a064843e2fa09bf5813e013f62229272d9c67b15e08c9bbdcd0a919a42ca30ace3863f82bc8e04f3974e3588f0a0137efb4703c7a2e99496c91a847cb2d8f614513b1acffe3c2f05fea83a1367031a49390c271507d98eeb3757953f10d6c340712a13b7353abd5be8de3260c427eabe495b46bb1d16c12d78b451f807a3d4b608ac3d3b04c9ec4d05396286157db42cf2e793dc0b6fef3c393a9aa53e9afc200638eb674c52e9011bc86733de3c401e688a5e5755c395aa7f3e8093db3757a7a5cd0499251b7ee838c133bdbb64310e0e5c0341ade62b776bcdabf80fe3c77c8e914ec6d5160332b9e784c285447b8167c3dabd0d8c63b67bec2b1567988a4c5987a2381704d3792b9d4d448d03f4008e77c9c0b52ad7175ad88e06ce4f4e1b20abe6cdb738c7244835eea128621e9d627c23612eed781df55ff4e626db56eb27c7b269c589fdd54789ac98f983c45c835336a8076ff2ca8e02d014cd950954de0e8d279c2bbb5d7faa33f7f4592a0c71e4c0bc6b00bdc1828cdcc347fe9f0f1838a303eba19a7646edb0ad30792dee1b765f7a684ffe5391c6bc795129ac46c4ba47846bceb319b648b13348a6804c9dd3174b972d34f5b37e67ae23db1a4737869680517da579bd9563e7b694aa254454f7deb5ab8d7900233adfd0cd6201f032d987f991bc18980824237c76471fddb5635fa927c1230aa9d74c0275f356b82140ace91859110206b5e2aac5dc761b8043afa4c0dbf57a2f98578dc6609b7a40fc89f1b2d17dcfebafccc3a8ef3c49a5e2dd34d4e39625b712664fa65e6483816dfb5be73551e60305dc7b160358bfdf95fc1f3c1227606e8ee3a7c5f65c5c3ee03655d99300b10071c793e7cbec0b5c32ad48cbbecf9691f9ba302e784bcaeffb319732da75d005703759fa81e9223eb306efd15ed17c61373ba1e8cba1bfaecb2cda2f917d0f4f9e90297938ad1f2d274c7b6a80b3ec93f79926c7419b788045c95953f0ca63fca839a2de2a9766b29e56cfdf4e3a294ba6cad7d2e57c8f7ba5c1529645f248e4cef6dc437fc19528ac9bc7fc56bbad061da859307cf6b07bb1307ee61e613c5167ddcf71c7079584c406a3cbaccc1d181ec062a6ea31f9349feb9f69cea3fed85a5fe51f079f81d5cd1feb8fa2336ccad6412522bc4481a00548cf5f1e4fb2f95611ecd4ad41cc046f4548888485c19ba2ffcdb7cefb0d81f2f76ab1ae79ce3e7233a26821610fbd5491b21ec8dbb8b0a500d525abb016fff6581a6c10af9a7587f86ff327920dadf33560436b69dd3a66e03c36e534c1b55884a50df0ef2929f20e7d2fc7341f82b68df338eeb92f3c63f8d5c91df85815f49834c3a05e66ce12079b4d95a86509015dff8cba6ecc4c90bd0d5c67504042ffe712725933bfd39df0ae5bbc4ac9ea73458facfdd448cc719e5a9151205ac91bd6e54d3d1d966937f9c345b508f4fc3a79ba39ab1f39d326d5822b74d29a2631d687cdf4baf945ce5e7345c4fb301fbdfd2da58199a123844ab316f76f336467f601cddee2db6f080d43b3bfbbc957bd77707e1b49a8bd208d11d15364c7bff5ced730f09c9cbc18e0336a51af6ce7753db685a069d07c1f2b3fa96310069040bb6c39f947a43987746492869ce835c8aa0bc08d00bc7d36caef401e63f9beff5fbdbec2240a579d9244766a6565e2a7d3f3576389640416c136b59911c97e6750dfbcdb39a4f086157ef32edc52c178d84c075a4af25f54ca6da462411a42ff1d2fbe2a50e446e034e0248d6f5c1d8180d9eb7eb0e770b722098ec107a347a2d42d44bb6a5032559ac2379f5e4653b37ce45eaa92ea9e9ddae5a654a15de9b5dec6361b76b7b2cd2c78c917333d6e5f68f9ea1f3ced8a7316f96baef88e2c3af7292493ff300833c298f45e2aad66ce56c847ea3710fbc07f9a65becdb4767de08be8010d25ef09d13e7e1eab2511802549f50c9df97196ad4c95f4ffa80678cf979b26720f175b2f5dda223d908fcaa8c892c82a2623638fde81c3a34a63503229d7babfad1f578f73cdd2a52d545852946b0a58a7aa8ad6535dd0dbf3df43f75a0ef330216e317740f63227278e3db9907f04129894dde7091bdef3194d91a784dfb00dd180d0c7935cec834fce1711b46c5d4586b2ee977cbfed008a554bac3bcfe3fb4d9d7034bc69ab9b6a3285042267a8eb0d590d746a853e92493b67186a43872b4677301de423bd0ba6b71a8762f0baf1209e9999ebdf5f748b162a100f7dcde8e5ee45e5e989045261ba1817252793c20979d58b41c8baf9c1ac72c09d1f0bcf772ef16aaf26fe284e3e083c73fe6e5c136cf5ab0cc26682edb9fa089b8452a290f3a46d45e208d83911be5580e75e4a1a896193015ee916ca84632fe2a2e9661ff3130a23dfa8a744dc028dc312910aeab6ab2c2982c6aab291157fb7bc5bf5f2e8e331086920acdebec1f60c13d2c9c01a0cf6d3fe123a4d0ffd0a303e5c8e9717a02ccd71beeaacd6159c20dafa36283354a29f10d0cf1413fb4329d20284867c022b95de7584751e1fa3788f08bbb455e3c62205431944d3e1775756475c85f7f326d802f3687d2dccfc5f808c9a6cd7bf87924a8bd71775ad54c290e263d5d45aeb26896ca703b9133ca048f9be7547a5c43642580d00f650a2f349b4e791e9bfd08520265ad24f55e730540b6841ec14588504d1cdcdb82b3a6ae4669d73b555b22adc16e0b861a8d462e2b3648db287e852e3bf3264e2830d05c30f2b3533cc76512216efcf6e55a9903ab7d431eaa566ab29622224f3434dd0ce762ef46de8e6c04dd09177f3dc11821a7ff47e1b548dd694fe4a8956b1a944570b870859a23868219bf95f6100b4350d87d6d196a6376f66a31758fd66cce4427389f6a3be4366bc9c6d6f6dd32edee081a8e5b14fe411870c9a8d9c3e6f94d0d99e9a9ae38b2aeaf9ada5a9125bea58bdfcb90b4253f8838a74549712a954865103fcbaede655164a5c94fe882b26e621706bb717fe5a2337bb5839de2baaeb40197b76f8e6e3e07ec6cf5b29599ebcfce66c932e69be263fa4427840e91cb833b6955a02e1fea8aebb18e9a68950c4d75d77ccddd3e2aa1b0a28306c5d74977bb323553a77ec4c0762a424d0e9e061d5c885c7d129edfe98b63e202d25d129dedf54da003c77b911d8e6a316e019af92e6bba947f01d6cc857f5f1c2f8a7a063cb5c911fae70e0b8937770229dda89132b8c799849e0836a7d251757fd7c2098dfbe12d2403b02e43a35cf972a51dd4326ab94124232528229d431e6452e5c4ff56ccaf25ef76a894f4946213a1214190c0fcfbe430e62c64037b3bb51cb4bbcfd7b641c4b8e3da7d70b0c3136ca3bbc8be7bff4eda3d86d38d12236aeb47abc991d4c9781b31e8530176f20a772d952da9f10bd029506a60a7a1f54089beec241f7a9c530b77a335b593bf5a850cce358f4f51e1993dd43220757304524901e61e4a25252f9d935f3fdf16292dc6c300bd302fa89dbdb384ae5710a5ba8b2128ae71d9bc611d72617426b7575cdfc72a475fbeee1789852768ea8738c549eaccf5f484b83096cf5ad08fe33fd0f2580a8368563de2949e4b4a8d74598d66801a9c0b45ce5f2dc8afef8ab0819d17f8c98e418112491cb4deb4d7aa4ec032c6c1508dc1b364c2f1191451cec8ac97d497c5fb0eb38c7b6a3eeba05bd8200b7c9f426e77c5eaf0ed94a5f5f20237f6c7514d893bd062daf40a97983e7f0147664ca84b26594fe34969ac0646264f465ca98d91184e72a60f9d446f47c8ce76d2393a08b33626f5958358bd6f5056d1d6b8af55adc8d9dddf01e18ea7bd84f215a9b578110bb725df587abe2db9850d816722a57e12a729816643631ed434b8df455b2007c97a5af4d4096b8fad67e4a9c81ae270cb61c84c8ca332da51869a778c71fdd8d3a07121329ec03b8b5c4919d60f16365b814823361c866b0231bf446ec06536808a244a25f8c9627d1720f0833a16ba0ef112437e2e228d31846d35d815f3f2ef4fba8e7c7a9f3c8f21732e311bb83ed494c575ab3e8fc29ce02ce2d7c27f618d3b8ae429a8f7378254fa59e5f6151a16be5d9e6b13320f4a3c33861d1a3362734a4e4cb6ae473ab860f1fea050e34880b632f2505bf447f8a0232782f89d75dfb1459045d973936c493e054477d146113bc0660e247dc12baa1c860a39e766635627b4a51b108768e7e71332f803dfb2fc401e3763f95cb00c17b4983d085fec53e480608b308d5a64dc7cea2795e6bb1f19dd33707435c80b94631f6a1973dd773ad668e3c9acf9c2076b3e9a2a1328bb10d2b888c06f24029c51b3a9aeff6bc416acc800a2912853ba4cadae995f075d5e3b454aefee33dd0c6048e7436324f2c7eda766d03f5e3f5fb4b4019cb0a28781b21d3b5aef499f383b4196b9e9fdeb00991fbace86b40183298ef693ab172ced28c1423bca9cdcd3a43929e1faac4dabca8f4619961eea29a4ea3461f1b93682df0f2cd563233f34be9c9b19def2eb89a39a785f55749d76acb827452f5c01dae23a292c06e606dfeba9e9fba4824cab2e796244623191a058e77ed7b7bfdd60d6194d4eaa6d81672c8493170fb32bacb31a3cafd500933aa365ab0a96cd8f4018b4102cf29a969dfcc81fbf789df5c91e62deab327141c9d35266404ce8d01a88a1cf005554400c23f596e4267a4ec568e047db20768fa9f3712a6eb199cd937a66484b40290bc8fc8e050682028c94289e1974d4af46478977b7519e1ca5aca31522562f3e9a8d25a7fe2912623ae6b8e119d345ca80a313b68eb55cc6eeed01526350fb93223095c114ec4dc797739b62b49b9aa82e2b000378c50a2031621442f8f5e502ec578ca263998ef5152304067568627b92dd146b007364946960e52430c82010d690eacb055dbb51dafab513900b8952c5c28872f4e9a4f28826b40041d6d21ad3a8c7b09d7c7dc342e39bcd5b5f203632b2442ae81472abf3434752c215df3b675e6ac6d1a40f6d5b39c777cfa6635319690659b231049901d431bb2f4bed992b5ff6a2c845faab6731be290b7e96550df15f54ef75fb577f88956c698277e14f966b4bb0ff4e0d5e094435d15aa1947656cdea7dc395b22f842b733317de0613cbd0ab3a1f35e0690b058a089d8d5d10af5aedff6c366444059e18b64dc4764d8fa3f51c2ad9d96860d040382f433b6a70947c5d0a7287e7df7c45fe7a375fe67de7498e7b11ce6db2496411b729d06916bc39415d1055b6c8562e7abd62ca5dc96ea5cef049d83f9f3c20e4558f83c2197be29a45b6763f6fc19d8045d1d9421a367f9ca58870d8fafbbb28f9f6ff83368eaa1dc629148a685adcc62d818fbcbdede9bec09dd0e7e17627f73ab0418a0223dcbf1862ee8ce90a8feae3483804240a537d50d0bd4f9ced6d8ed25abf0cd4e1e43cd3d54fb55118e3ec2051b9e8aef52a27379a43a64f7014d094370810f8ddfa941bb9556385cb06af71a5b849d03ddb8b27452cb7819145c404690ef238e6f188ec1d1a6c18b93c7b4f1dd79d78d57080b17a0c006bf6ae13748535e0b4efae216a28939948f4ce7ec81ff86dd5c6495e5e19873519af208bb31c28600495e42a46c98f25c8b6c646b803e2d85feee682dde006bb6180519e531369c8b0e368b134b0164258479448900e580f3b99bbcf40c78b2ea489a6e374f58fc5faf1818a706890943329c25db0532dd7e2207628490952db5cf07f9428a321d5f0f6fbcc4fd191b448de65404ff6b50a2adec5f7c2470947877b570f61f800cdd5deb851e864d0ae44c63f11f38f6a16890d14a9f2430aa6d048f15672528553d795ae3ac4fec5836de462d479bd877cbc7efe30110d7a649a05fa8e22155f641483f66aa614cea84c96ccf3b114f252b329a480d8b091a0cc55b1834a9194d0f3eda5065f93128529858bb88204adc2cd02fd1220c151ac7852aa2306ef0bb9ca47a4fbafd172f8535cf4d4a461c1896ba887638940c18f4b4a3fff74fd4818d3939978414babcf3e0eeadbeaa18678cac390763cc87783d02d11cd0a0a403872675c6fa61569516ab26ec61908e0f73437394eb4f89a778351cee86f216139cf3cfc197141a0b61e46896f5142257d807329759b87a78db36f87cef15b498eb911a26f579970aaf6d90b18053d1c19dc8e9179b87c569d35140da18317da7fdf8c06b1677120ce39f6ece5832ca0eceef6ae69ea6fafb1e6db2aa74e41d0a854232ae34c7839370740b65d110f50ad46d8915c35dae087fe3119cbd210587868f8504ba3bc9fed4fa901ed8d29e523169545eadecbc7123275291997d683b3cc7101f55c588f6da1b51d65af40a0af43e5d0b19a9928f9a5ae83456ac0fef10bbae92f3674c928c09db878c99092bfc779bbd1c6527a17b144c82533b5ce1d50ab1d0d3a95dd02125ce14026c6655c5b3de870b812cff96e538b3251aa7af678dc13e6566668d4d8ebc4b9ee77ac9d768c9c38187fd3632295ea0c8d14759182ca25d5027055ea3c454d42a3e7b2319ffe7dd44e0518cb6704f2f398563cd53b581c39f06fad8527e02e1f24073eda069b297601a9d6dd37a21e4e214f3dfd4c1e7f35d2423f59edc700f94907a5ec7992c8549e7530f5b90912286d68261a8e45f23131927d11c989b25c0ef137d29dd8af26f9e46da8e6bb74ae8ecb038fade5eb574fb83fc725881237440bf48a7f36a9aaf7cc253bfa4c18b223992f9326226f161d8cb08cb97c1e60e00e1d2472b0fd214ea64e2ab7dda52ba649dbb2877f48a33d079ae66f33870ed26b70463d59bacf4b3e26a3788a88b34c97b94c092b7c731bf8684c24c8275d6b204eab9becf17eb7258c0815ba4e087b931a15742e34c30c32b8ac2cf12fcd59e5609f09cbeefcbb6ee3719076708bc2c99d9357ca811088edeee6b32068c32eb00585e3306298e48bd0289f3944c4729278a49070b29f684a824fe486450778cef051d4c29ea92962302bf8d6eedcb9f630f51f19cef64226b62fe23e7b45681b550f94c9d5070de075ad776e462155c8978b50eb1161c9b84d439630558c0f12205af6b61f90c6ab33951190f385d1cebe3e2e75df6e40a8783b487170d223beb3e548ced1a480baf7fd93fb96205c2ca2394ceba57103886d3d092d546d59cde5f6010a44aaa4e2c6b439a65daa225c3e7cdb2ac00119f38e60ee62059b4b43f1e6be98b38937bb76bd0cf03702446cd65a11781f79d7b4ac321bfeeefbf49176a2928b5f2f465adcce1833dca9505540fbdd32e07899b1ee339c155f12b8189c2da48f560e62c446d26d16d8475b9127dbf2fb926182813b58115d69c8f74bdf1c1dcdad9a2d1f0467f24e37259954584919041adc52ef7889281036e83f072d18684502ccf8f8c06106b8b1b2920950e9d87f77534dcdd823e8e2a3a3fdcb6560bf4a37a26d376945f5ede5ffe3f281336e79cf762ad28076c9c0aa0dc8ee88440beb5d9d4c7fd2cf38d4e0428d14f9f2107b2cb71d704047a3641c9f38f55fab106892413927e06c8bb11557d3c642c58acb4bcfe9d7b350641337b453a6a98eef166698960701c0cacbf53ab094d7a11d37d337059a27bc9d03fe0c818f727af1401db073b9df22aaad898ed3478a4dba9ed7b0ce97ccabdd3b724b14007f12a8dfa1188816de1b3580c9193344dfe486c788bcd13650b4d9f1957b65bd688b5b4e8d67400c7deb2122f5452b959057b5242c221b08b95e69b49b8679f1582fc94a14b5da132204f4e6d7a12f4eede9a9954d6e9d557ca550eac1bd3a1615db31dff12093e1c38dee27b75f0b2135b17152326ea5471d7cda6f225441df6b80b80fa749e01ce8e0d610a6d3b14b8b1b898027b65e944a45435d2de32b64eda5106586d4bf33040c87521cfa9e3f9e67f2293b1d68eb5b5af33f9de6870d40e37cae0bec129bc35350a5f8f0c7a4ab299c904b3e788f44888950723e4a0652681d95f1bc0a0eeead2d458b791b9a1ac717181ef811d08c8fb56fe9afd7331d758eda4ff7a49ea844c6d1df79925580fe9f3f5cef4855a8a3e2f372609df6b1e0d65cce5038a994f63f3c417cd085855e6f66ea08966f0beeb191645e3935c393a639a20311fddfd7e1acdd2f5417cdc9665409f1bbddb50c45e980183374fc0be5aa9b4b1dccb1ac868a83e4373faff803c11896bbba858d588276e443fc00d98f7604e9a9338070df0dac1382ed55f6a7529eadd88589762e4127792f511125e90b70a42e70c2d3850a6bd305098aa32dd0692cae76b4c0489ee0732c7bfa26f6a7e7c32a0e24b6ded76665d3164b32d07e4ccd528fccd8f32aacd3dce420ab4d1b0e9511aad5b0cc83aeaa382f1dab61e6de918d1e261da12c877cd6cf2e95360bf0e94611d88c32b91fa75162d36ad1753d3a1aa4c46611599fb7bba12c5a16c836962bd626c94504110829ee7e9e02c279cffd48c5794ffda9b0e38b8f842f135df539a97718b15e209b68e815cbf258bb1ceb5d8b957a190af6924f1930b06d56613209dce2862d59d1993d56483063b02fb79103e9603bc1ffc3203a9010cbd2be571cf3c0031b6040f62764c2a08dfbdcddd1761aea2116a27fe90369c1c0e9f0bbc481012176f623c87fa5b797f5c13a1607d2c15173739bc56fa4962a8d815f9c413727f701f2d85a8765fc3c115924f71ffceb3110400a0520ca83f98f3779ceef1c6af05eb9617b14df3843ce59baab1bd0975dcd59f4247e4db2bf0de9303cfbaf33cb7770e488396566ee600bddb706953c8b9e6ac11c7ff73ae1583c787013eca26c9c432b15d084576a7d2db6cc1b5a40cf7b87bc1c4d4343d3b9b3cb33759e098334ab251587232e71f5a62fad7a7182e68b67964638888baab0e4a538db306ff8331563a156d3e241f48278222760d1505d09e4f5d50ee4f9696707d827bc0f35bb1c9c467bcbbfe652f4840042fe723b38cb9c989032b30081f3f8ddd99ad6318d5b29e65a3ae5cbbecb893aae2e9e3bd3d29c172ad7732969e8ff659ee3e85a45ec8926f5edc8a5acea8407948901d9f41f23cff22730d81831abc7912c1b4277e7df73c1a2aea751c2b31674913de8cbcc5617b7cc0d89cf0b0b9301b87a2122816f901ca3340a1ddb19d4bc8e65b508cebc5ca57ebe3e11c0369dc1b3c32d22ef24b5a7c3cae16bb6fdbc13fa82fe00fcc3c8ae2d0e4131b6c51c6684eab889ec0d423b33324571196bc4c47111be684d397a24b55b2b06b554d6f42d94240c81dcfe4e0705c48cf5b1c7099383c569f3d34d9374154ba1430459dfcb9da4e4ae66ebf9e72e2d89afe3121cb4bc272476a9362000424e234efc4a58b292d1e2cc25a0ebc06ca57d7c59f541689573e107b826e781fd410836e3c55543380b879db93e01e7d40d4be82c664aeb5bbe84045f871e54f3e0846768c3d2b903ab58a762f257b44dbaef5ebcb8280e4d7e01fae24101d2e431cf66bb99212e9f06e0ed8800ff3613782bbf2c61a2022135e3a5eb57c15b28766c09118861de6b42eeed3469ab3035e42d92e4c840707fea2f0b040c05102768de3823536956f9f31cab94170f50171249810f33f99085762f231d9ab0cbe0c9492daff1b86a9094afaf7ba2b53ef181e2071bb13cb0419ce1b20c80fe966343f087f648441aaac3401bde9c88d84d671c2d3b27624b3af42c7e085628c5579197163df928537659e53f58765da48d3ff145e8609c3ee8a610692e3722b2750338524c3aa1465749afd8a7eb2e6f62b8bb5d5c35eedd37f76216fdb92a380a4b8cdcf2c7c5706354ba972c07e4bd56e664e815bcce95099de63ad97831ad79995c597edef0b8e48b2ca56fb1c6a344cbb2ce58916fb3b1efc02a8b2a5676b70e9f014747d417dba3d4ab99d10b6eda2c71baac2ad74078e09a1ebf4a0206cd77c737267594007815503bf9fd0e7f1ebb6ec55b3b41751bc5f64c84525f675a5de035f7b07a62a311e39a80bc23a6e6868853f42877164bf2843bd0802b500f6247a71c56107977436ca344531e3b5ec83dedcc8f124c2c26819bfa322f1031f126a1f91eb5c8c1621eda0129f64686f5856578d7dbd1d6c2629b3ecdd49b1a3d07f6798102968596e9d093b5230db228e37254d7b62ad7d869d73d33a55db78d1052881b8ede7aa7bec47d029c5b08d7ea28ff8acf71b001d3f97ad0aa700bdfd8e6962fdd598902168d65bb8b2105d7be6cddd6f8ab530abcaade30fd63abcfd6ae1a319b51518b643395ce33eff9b63094945c6f07ac6d03a73429f7ad41dfd3790d616530a63e68f47c9d892b866389dc8f5f724c159facb4ae8fd9830afdf7046b7abd7e0ea576002bbd7cfe251e2f4b7eb964dddf2493b25e84dce05766485ab66ef5a54315370bd9460429a1c3a3d7d4de6709d0827630be49f12510d5b39472322639b3c6729e60b855469962957348f3a220a0f4a8d329adb6e12cfe05efaa9983b403b4e42ebd64e73b0222fba254eea7ad7bf8ea4b5fff61fe3a605cb56a449f9b884d3325937420f0a37778dbb9cfa87382a93dc3059d9ec9db61f649429b6c9fccfb7d68a976d8b998ae80cff9e36e5549eab5822207a60845c07aefcadb17fd0f72287b6780085dd0bdf41edc1846155b5f9afda48b1291c24d0c7418350297c3d0cde55dde4fd38f6e35a4ec614ef2b1395693d97d2ead2f00c8294bf474610f98857fbd542e91ecd2e3b9f82ce5833fd10a20f6fec1e87d4f86d204c1dd9c4e6ae41ddcef1573540cca6295e618d8680fcae29456a1c134e4f945e8e9a5ff8d9e625ab564b6ff0562a632988e58c684a9c3572ddb7d1deb9585a21fc1f66110a312666501243794a7d2339d5cd19b612bef63a36abb54d1b963cad808fdb5cd2fd157b02dbcb868f301cb83742cc3bfd1fc96ba724c1827c1f8c7c36f7d17ef4859fc7b7be9a33ca58ec7eeaa9ecdd33497579989d676c4276b75951dcc855411e6f25047293aa1bc1264c4597c4fc5c23f854e96a1cb90b2da6c884f796b106d4cccdde8f4f2797f44f8b144c356320a507a4789137009fed0d7d804456fe873b6f5757370647e705182a38d4cdeaad4e95fd9a4ba9ec15cc52d47bb2b2ad8b36a738d06011eb99531fb4eb998843311e074bc552815dd05ce52993b9e468e4349d340ae2c540b0fad9ea8c367f9c48ee23f8c9b1ea89893d8d01976363deca4e849ccd36507a7fc0ded6e448f09cb8676a44a01d22bbed10317136f7b5b8a777ca0133ea42196b5b8319ea3c0eca8f78579da2542c831dcf4c3583b860131fbef741ba2ede0324e24c7fb5d317d2fcf8f8f83d4ea0f688d4101bd0c9a0b6162de508ec32fc7ab6eed258d59574d2ae5c20b72ad4ff5eb3c4adf9b4e012dccf452473b250e328579fd091e4a2b24d5c58d9c365e240ad8cd1c7251d2c199d9017b1c934985af1802009ebd25a344604c6d53456a1349610d3b29bd0bfabc22a3b3752d83851e0f93a0aa3fa95609710d04df768365094c615e7dc75df9e1f64e9d334255e7ace9c44a3cb9ec7fc99f91c47786720ba272c69298d77665a6d73a1fe331645bce7ba4660f0708cab0f85fb810938fccaf401f430e5abdfec3fd8d8425fcf5375a6d694b5849c79f2f7cd82d45a4ca9be839d2101240ccd540d2631d0bca024618b87c6229606feced9fde560b1e4455e471b890dd81ff035d749e0d9f63d5ef262ecf34cf759280b6cb53226b50756649135c471e931039a53789334eb73b73cff27f5cf773f48ca5dc61da57e9e8225add867e56f6c2af69204b50665747f98efbd2945c887fe500a29551527c83c7f59f20ce14a8a05b796a29dca5fa9db555967762ffa848fe8462c9a8a8035c6ebec05d72c7b1c66169059a30b8fa596f3fe11e0ea80aa4d49d56dff7ff5924753bb93dc9b999c12ee11226f284d47a15535162eb8ba94936f7284c6353bf21187e9759917bed79bb5b681ce46cace540292dfa2575c489180c7b7168bb58b543047d02c48abe30d38e131490e9c7f5c5b310448fb95e91f1e062c86a1fac74de5320b0249a218c6c31cf3e6b880e9db7c26b1926a2bfbe45e1e7dbcb6a29d20d0f49bfdf37b0b3672a918b63e591147e4d00f652a2f105dbec861318fe9d5537105780d2e8077d4349ff98fe1b021de3f8686e12e3436544fdaf4d12dcbd64c072ba95560648a89b8af377742136cf35cd8ff68733ca69b770474aa881a29bce4b79a2aacd982c8292fc3d709da8fce79132f8b265dbc35df327e5196f47b58a3cad4852199f940577dc676022f61f47ce6839407b93eb94349c20dd270c04a8f50478072e0c6b762d0b0c811962dd32011693b1cb4fd5cd11e5ff08d6367a323a3f0c17de0fb73ded32dd09525213f33b79f7557a34b6fea4b93151cd6c42e5edb4bb4207dd8856a3b1fc29e6d07a8feea1c8cb27a8d8d8b0be8adce03ce88b41cc5582183096bc211b9dbb130ad84a5ef07e07c8d7803439135080de9410301e86513edec4e6610eb574d9b9d3ba23f19e9f18eb2fe164b2c7512a8949c21586f2abdd4cdb907db5faffbf6720cf7c3338032794e41e66165fd5831b933ec8c0b716c162ba8545cb1994a44c8dbd4e3f1d6c62ef6d66175b545017b38f69b9cd8f7605842a6e65d975416ce3d69b85f6006dded40510f33892f28203bcc235c7c5b1a7e3f896c48c24866ce85eed6b54699f940b2bd4f6edfb0082587eedae95becee3a675ed6c5871d09f02ab3345f4342a07ad2210aeace2ffd63c9fc99e916d62e970f60ba5ea5bd1f78ce70e7acd10983ddf711a90b391ad6013c91b8578dc4e3fee55568fc1139fb71761eef70f00fe155865a7249dc3cce38e0dc6c167aad170c86e26e0c482a7ff8c0a51a6fdde7124c28a3da0552abf533c5f904d6688e2dd23a3087d2ac172f55ef9951398d3d09a2836baea46eaefa34217819364bbe1c86a590817149e3531c9e75cbbfbe1d5f204fee541b81c0e6c1271c5ec7f9d96fbb1790c12441e345bfab476884c598054663f19ea124c17e9fe0e2a81c51c7e9d74f0434b00f5f322eee065742965caf2ef96f09eb9fc3125a171238ea63a6915be2fa290b9103ffada136f66b77fafd8186811b6641f585075836656ce8b6b101aab6bdb560cf63d5a9539b475f882e02c5bfe25819ed1935910113c10ba1908cc5ed29f13bcb2b6dcd6ffe5387296cf0bdbfbe2e4d77eea744862c7b20418e2e044a2c3b8a63a9b90e84fa0da6630d0889604444719f3c7933f039c72bbf882a6dffd0d9886c17e99005cd5679fd2c39900ce6150295f98376cdf9e36c46a6ef6b42a221acbfbd45df8da9fd8bdd0273bd0dca1bebf4b636d2e8dce941ab8ce89cc6d57df1501f6b8d07869a7b436860a81a9df150a241bff424690f549947d3e34f8ff6bbdfecb1329d73eef4affac1ed2d4e587289063ba4e707359f33ae8cd7de3f0184dba94c1c81d73139c9a2592476c294aaf9fd8565ab5ad834fdee8f73c3e5d8903e46081191bf55499c4a689a53ef95827c420fd52acd191a565ef8c8b28563753393bb0aaf4f72386ab7a3d7a4093bc8e9b538f851182d7d37b1314860082c06277218bab67d16e786613b29200d2c0d28a7f9a298f232bcbede902cf9edc7c8c1d39db75992fa9ddbb4759832c64345a285848d415cfae1259379e0ba39291deffe989007808c9f437f2ca2325c0b07e7657bf04c50687432adaa363d049229ca9c8e56baae4005093ec200ca345200aeedb1e9963efde8aeb85cf047a687bbd8f7ad4771168915969a1471f6b3f34bf580dac566810102ae329259fff2d106a13fec80cd839a6ca3eaec1fe12b740d27b92d36392dcc1f7011dadea59aeef83540019b413aed434d84ff290d54c006c92615bce11855bdd2169f71cb702e419d42a371bf5d27c7ae092ff807785162898357f0540d9305794cf4c752741c7f5e6926b9588c3ff53df82c2bf3b40c3976372b95de83469f80061edb4590dba10f8b4de98066278cc7fd108fee7461ebf9081a98f20bfbde693c21d9f67d4cf199ba52e3db4db65c326b0a035d9295e983bf2df35b17bd2597c7a0d7fb20575f26e6251c35398816dd9d5441f28da218e8ae557520ef11b21bbddd1a1cfda4b33d06c3a0c2577ccd073eb83bbddb3700209920cc7df64f91e4179cad684807ca65b18951f767bb94a2fd82bcd37ea28c9d1e768df19f1e9c55d10c5f3d4b27dc94037e8a4c34a3e0879a8965afd87e0ab899f46c4a5f388a27d8a20521c1e2b4f640ea36b691e7c9018097430e375d1e5293ed1079a9a4cd0386aff503d17979f52bbe6e5e20aa638a6904f5c003945a89ad7e81c038fd783b1a753cddc7c655402765aa99bbec3ac515121b1525b19971d9a8fdb3b000d7e42082fafaed3a5bb6658fcf14f1af26cf86cab4853b0614d886c8401d691fc9d7d4d4c5fd2ef1258d295ab1afd44cd4b8ca544fa9ae7e1d54e296cad12ee294d7ad5364a3fbd5661294c1c28621dc2f1c923f5e8961f14305e40d2e3eafea90f7486cf6141f97041e458003f102b1f5a3fee77f44c6ab6d3c6c9d80ca80f0ef9b81f2f9905efa717e2db732b0b71df55a2cac845307665263753a7740c591b34e8490f6c36897a340b5227d9f9c35307778363c705cd9e0646f286cb0bbadb7f8000f557a84ae3a1c37154dce685016506cc3ea8d85aa1438d6521a5139faaaabe2e505a1600dc962d3346e990e947bda43cdaddfe2e0723944e88fae3597f1ccc99a57bee3c7a043cae1f5b4b1f9f2e48216c9b2da99fdd89ce80a6f76bdc4e3d72a1432ef52c0d95b898b06e0d8f2a6f1459de9d84051fd00f0fea7c85794ee026a23f4fc69b86446d9a095976cdfb56a0a4e54073a889558664e9dd3af43ddb52e48043c1687c3e0801aefead4d3c8260f7b3043b8630c0f0222cd9b291d11ae1f91b82c79dacb1bf4b880a416e5c8f5d2c9028879b1c68645d1f2acf61d410bf9faa23cdde092a85aea68e2fdb1f5f9d1487a1df28ca21eedf91c191e2a3c2b856ca0e92923983d8ccb8449d2d1c8b2145e68e7844aad8910d388ec098af27585d9b34a41319ab1660975e19cc3f2cce50c0becbd5a2f9b2132bd509f100d8e1c943ddbca33534ee2ebbe6df1049f1f2c46e422e0489ad2f49661a2b23ad0ac98c6b04cb4b50b8e306c3b0b6454b85709c0a13d455ade3b84e4999dcbe65e43415c0c53c0be20a10dcf1d947972f46b4a2f2c5f3384e2c31ed194d8300e915712a73d959b9953b82ceabd91bbc2f4b046d4b51fc7420631cbe7e89eb098fca634eba20c1c3c868ef97fc2195ad5cbbd5257ce00e0ecd296a6104238ea1c1e662a64d425b850c629acf10508f7b18742763aeb82e79713225639a2722297c9602f9e9565449a91a9d85bbec83f59cff1aa6532dd99b1c5ad1fa15277d12d22bb7c8d1a5ee2d1aecfdf1f3bc569e73db45ef9ca4f7f55393827dae0b0438684d64f4487140038ca83a5752a22b22fd0e750801ac5d8190a0f6b280822e24f874339018d32ef2647d33c3950be84fed11ddc1bd1c4546bd9e3b3d0bf4de81d0bd4bda0ea93730b6a59f0c1ff5416acc02f06550507a60bd5fade9b40c91a5520345487b91dc44ceec754677797e7e742d5414fb642a35e494531142d5a05d724f70abb5f7c06dab00f3e5c5f1415195e1b489479285e579c9ea25635b2cfe3b994f539430cd7e7f94270359a6135c339967177f8da79e3b2d222825ea51eb4ad3d6e6f5a6e8333153386f250f7748256f1f3331fe7743d92ed80a7dd2ccba514a50663a181d4adaa1b9d63ea4bc4f98e52814b002751179e65ff6c3c332649653fe68c9e034de4b32d1c95e3eece88bfce74895c4994d325019f634b453dd714bd4328958267f8665074f65076b385198920c3a1dd3ba9156e6d96f597eeed2e3e0af683fde1a417ef298d3fa3ec71238616a3e4ab49718ad46fcf930ab00b8c243bcd7393b6c67a3259250f6112249fcafe804b25d25ba7a242db918d025bb70c8604c5d4cd996b20d36255a562247fdc98b33b8c74561d49b387c77dea1839780d5bfcc24c1a1e2a518c0392fceaff1587d37a2e3936907476072f52dc94e90f72c2d65d6100f362e12341cfeedf824b38abf8b447422b4d9a4afc4551f6e42d983187a65979abd4dbfb64cb8b0eebd81f93d6b420151b814edab79b63fc951267206a2c7f8b2aa4a6921bb65fa325579e76926c961afe95ceec373363f579d4f44fe923f50f83142f5736c6b42b5db1e87beb6450e69a07e3ab5d5f2e4a80dd3330e0fa88ac33d8aac4e7b833941d1d210fc5d63c39e1168fd280ee74d5bb33370c7e07f419ef0a60b78a884c9f0ca9c2ca4ea8a66e579e4c422f0cc4da835674abfe7c867c8f77d485b7b5b63b34971ee7f0c56ecc417a223905bb725d790123e0e350c6ab2adb1eb86f2d6f9cce0eb3b18b968653af60c20c17529f7c72430e5d137157b850c4eac2ac42a7a54acb7973da062b23687c826eb71acb06813f91babf935a7997031b89d2e490db61720dc82b0da031d0ed2a7a5e9250f41ef2bbc3f6b26f0ff2adbb6db5876ef32f48363bdab963748da959c6bc570b5ebb90a60b7c0d023f9e3891f0043b7355bdfa47a8bcb7058835181f41eb5fa499332aa8e40de9c587ccdd3eecf46fe6a99f90cbeca759d0290cadb4c813868007c746c8c8cd40cfab5a522632e283789a8ec04311d014332a237f067bd3781f37be5c0cb4e6dbc188189bd2aa8b594741742d4716b89950ee2a0d18ede2be839797483a3c1c71541f3964a59e9f8c1c9ca09466c60d4e897ee6e446853d75daef527958122054d74d25ff28d46f7d88179d0ab50eb456abb558596d6728e93fa7ffc8749310575ff182c8fee320241a92fe6d862bee474331c2d701df10fce913e1378f0b432bfd4740c92ffca97d628cbf4cf69d26eb1c73ccfe7e76eeddaee6b306cb0f55f38bbc9bc87eb4ad3fe6a82e61c26e07d74f4217f62c6e9831a97d489d75e3fb39421ad566780966d88785b1c153ae8bb0cbd2c550b634584a01a5ae5168b64a3dca0ebd31404b24d7c03b2f4775cae27f3703299ebfaca0bad877307030b3a040d440161c1044aa93fb8b5a1298338690f78fcbceda0a64c008ea971f2841923fc79a37f13752bb5a917ea4f02f1523682cec526556f67c6cadc1871c4575ff3152f36f940b7c8e5ee0ea79cebb60ac7a7b4bfcb7413820e3c1cf47ccffaec4ac1ec55a184b5b6bf837c995cc645345a443c8e9aae0ed028f24101e5cc90a62e800450e899c9303859d33eb2d223e6c90cc8cbb5059f0c70cbe519d01bf2f62e1dbda83d280093a514186a7494b5fd2ffd46827ecd80560eddaaaa8af5e34ad4773095424838e33f2586c6e46d4f979a2ff1b46e3fa2b30590c635256d8b911bc20880cc8cba4531d9444cb66a7297d02490d6c301718ac8262ed062546cc202419489b739268336d4b6cd63f52b2526b1e851f9e8a028622df9a5f75f6d5525e2b6028992fe8bcf89186bd6700d2b61ffb000137e2a3d2f96157117256cc8683819f1e16ab5f0ff9c541f5cf015d9ad5b99b4b713c75d2685800654cae41bb9b19492c162cb689f472f34ee873521a3b852b31b745f81b00bd5c9cb851254d51745d39778814c3a2b2ccac7eec63b57202a35bb71b98311572834a842b7fd2baed7d727dba21b822ddc544c6e79238483c4e6e4e42fa56013d955ec076aa1c77ea8743a2521f74d42931a3e57aa16bc98c26714e0670b11052e4e93fae4524ba8feb4206d98262b45e0b844771a19aebd98cd1c25c53c0a1b5ed3fe144d26ffbe405806d253927d44839dc34841727a0cb3202325d7a5507be2afb5edd6b5ec924a501471164a30e0088d00d73c2d171712de681517163e4cc13f72277d9d0bed254463ecbffff59da3209a908298c4fae875e6e216424a3cd6f58064b6fe7d15480ebeedde88195556404e8202c791bd69ccb50eb044630afcd66ed739ffdc341e3e344f675ede1305af10b46311f127d9bb4cbdd815d69060fd07cbea4795e222957cd30c2071208c7f71a25d905c8c378e87828417c7143b16a6bbf4845372ef8a2798361168f78e98530ef8a50a2f488683b45d8d3adc92e3cedbfae880d2bbc8a1ab1a95d3694b35f39ca773b23f8558494f3320ad4cc2bb221effa6cf0d88ae067154b7de3c5f673c02d35f60979aac47b3ae5c3c14e9069b1e4e7ad7c1bacec2bb33a6ffec189171af49965aac559f9dc843305f1f8ec218854e1ec21c586e06cd1534b8769eea21409a87156e9541355155722e5d480143bb8bd60734150a089d5456e646effe6f1f046538fba818ae7336593d946369b50fb5e53bc673d0161abca6a4b4882da81ff5a6b163b89c17c9090102ca1cb27ea09316e9b9c2227d4700e4baa63e2b27fea086dbe846b87b777deacdfe3f2cefa62a347eeb5718336662719e46ac7e900d4685b06d9a5039230b795640a736b7fe4e914a1c98fb60918ed202e37a0455801fe50f09d8b52ec1b176cd5459c8550204838a146acbb178be33fa639f6a890ddb2d12ecf132b493168d8980ccead616d5e2834a82ba752259e1a5f298b50ceaa4a96d0e178366dc99cd3e28203ae280348cb2a08caf94df9acf76b6adbdfe4f82e7ea523159c10c332cc751f66b195da1e2040d9ac450db4b12fec91cad860ec03be91523d7897fd7007b45f4c0c6d5f748283b60c9d8f02e654dc93e85e9dbaf3cf357e1180905c68719d2d795dbefd7a8e57bc9beaab09da6e79b9898f063cc4563f63ba716cc506041f57cd73e8980f08d930b5dc6bfb957415cf60ea04ca1f517a42104f371a61079ea25866b62d58f7639fc8daffab61ed17ebe633dab81af38947126f242aa7fc7e2d53a5f4d88fc855aa2f040060545b09acfe6a5a32c1b0a09f9f4f5f52278dce6949cd8db862fd07013564e388a3acb75653bf52bfda3d2380fcbb86c662cc9a501e8e526df26438284481702b510a236b4da7b2e27f7ce3a5efbe74230b04832ac71c38947626398167e8946e4fd98dd228d0584d18936eecb4a0e36807a98f0521d0a6a566718c34e6953468adad86750f66f809112500d226f4eb034e8e03641e52d67403f89f859aac60b79a6bf3d5907910bea0b96de0898edff94b92d62bd574c8ba4f8086435998a80fa03e1ce24886d80f535eb3524e5ad052691f661aa144b57872113f693bf1e97b1b8967ddd94bfcc4e12dfb7a6eaf863f37a37fc3e5246c41e515847e25c2d32c52d213c171ccd8aa36902917b31da78ee5e194cfb5a4f947aa1da201ae2adb380f2577d93628e0f16c64b133bb6c9ac238e2a3dd30b7b8c652d1a3b2f77d75d6938ea5a038024a7bbf78beb7a6946e04d3e2705db56407215965106bf77e3efc2562f13a3df9f791090f2e0aeaf4002bf0652dea0c026e66082c28d55f09f28a14587400cc016d22f68a250bbe25419ac625c84c5e3c4753b1b12c80925d218ef254b6c26b70bc2fc1a56d78eccd549aa33df3553ec0e7f298cb5e66b0c696f48b64ddfaf2a245b2c8514db9430a7a2913d633cc91ff5be36886e76c0d07f291ce0ebd172d62ef94f4cf5e69641e8ba09a7f93cd04f52a5bbc3d7624b4f3050532bad5ddd4b7a569357f50aaf296e6abb7e64d311662ac8e676012ffe9c35aea14774d25c6b7b64df50dbb141840e278231cf39bce3381091df1df5347e5ea7b9863f518fefc32278272c9f91e2b9d0fe1617ffd057cf785cbf3dff4df0cf9bd75d79ce18e248eef88f2f07654866f69ce4a30d7ce7037d7eda1c0bd09f17817ce7d8ddaa23f902c87e04f35eafc9dd7237d08456cd2f8ce07afe8a836f0e9bba62d2e998e8a329b7b1c5622484e4d76310e226a7d7bd1f72ed99755bf78a7e2aaf97b824362fcc8c26bedf20275cac9352935d68e6484ca10217774a00e4c779d6a860896a1eea9d9fad70c26ca52589462a171a710ae8ef901a952909432f8880f40eadb368a776261d22511dff07551822fe2bff98a084f0e297a5c6c6e4327b88404c959f6fcc84c3941a753cfdb15763cd1ab0f699687e74cac09d755e413ad251636765e799c8f94386a65f3f59790cc331b5ef70db1bd6e3d627000262536f8595d6332652c63f76cb54040cb755ca733fd4c8bac8ae5d2b39b55354c8ff8de4526072f28d95d0096e199a2ac1a7c08073e53d5cf39e0c2a69c9fc98c99ddd9a88dadcf97210478f5bff6e0ff18f02f20857d051dc5afc7ab098590bc82f0fb0b9eb39405a5652647e098a654a129b3757ac65c3c3d1da8c548f9c1bd8dbe540788e613ee84b7ac0e0aa5509e698251362f8357d64fa7666edcb9e59ce6bd7995994936bde15f4e5054b1abeb06cf6eb06660a28334e5dc0769f82f7cfcd3cd5a9201e2b6b9f86e8f3ca4828ec3fd34f74b3cbdafb4984058b12260e139512df55295458a2197fbc84f694d687a63ba2aeb160dfb1ec080dd85e650d37764900bdfbd3ea1576b57ff914e0639797413c83c6dcc4263efb9e45722d0281cda6535db61d6d3beca02e775df3fb01f0f17e716afe1827c63a1676715e9c521635c698cd793f68787c37087d0acd06f04c9abfacfd622c1363b141317e1e6674448522892fe1b3577b9dfa162e3059bcce0a27aeaa396d35c8648dbd3aa1b42dfbfbfe840bbafc8e0d9ef63b5e9266dc870f4325dc8e9541833f66d4bc546f2c76c2622e361ea164340af6f58c68cfbbc59a31da2d8adad08eb59a67caa91f7e7920274c5a863be2e6c558c268b83b2a4b7fa52b0f8d6e80f360231fb98cd5d5b005fd731b36d65a861faf11f7ff7add18dcfe8a213a9372040c8dd4301c460880990191dcca97dd62f176c7fe854eecc508ddfde699a8caab163e17be85e09163c4d965d66cdfc34fbff4bc425d54546884039dc0b6a133c788e1a934f2290de15404027e9c24274842863f8ca448740da959173d4a385894637a02e2ab24c007a2a4503bd6b3692314488e85cd3990c225432eb755126c2d04a2cb8fe8210f81cda18b6f868eaa596dac5f64f45b522d818d3644c0cda315a93c6456e12003310799c2cb074a53d826ad5a6492de44b426b59bf2538fb7d56c7f5f3f22c9cd6674cb59f7a5c68ee671979d1115875637c0525858b44364a8477b03b83b213c9d9ce28886defccb19f80b376324da5e58de178071283aeb36ea80cad33f5e48cb7d20d9405aec3d5a55b2ada5a14c935331e0b9ce512293658399e35eb58b8b44aa52aeb758ed5bf71d4b7735a94c1268d402bc132bbf2330c300b0c0ea56c32912aab82c88425fcce23f840921f25ad06d3dd7c5e7d26a96ac0449aed2fb52695a6b81c883ceca74e58cb20d9ecdcf4a25496b6a8fe0b89808f0f8acd42cbe4fe345e420723dde906ee4574daa9b3a32b3676df56d6162448cacbb643bd231a8e0018f0f7ec8231af837bbedb59947260afde987b3f541d0039ac6c22aa9f96c252088d823f6e2c79d679bf83cd905445d987b7edde833c914b0feeb471d090885f8a5a08c5fad8385b4a8f6eb346aee84a5d4cfc21b994e69607eff7c337723ecdd12347290d5ed31b7065acd7acd26045e3bbb5d07d85e56d716a982fffc0993d1cf1c458cf2f1f006cdb8c9f56a75307709c7ac14d8334f29c78319e97797eb5830098f60606bd8738cd704c0e2613e792c0f45f788afb7b3484c1df96ab92c1c5b82cb71bcd902b1c183e12eb87b34a1a5e36f1158d8e77784e3db817b7f9d0dcdf230dd6a25fe90623eb638d5f206ae0ab7ed29bd65727f1a215ab9f5bb01fcd6fc235f12749e8257b67ceb04c05dff045db8e4b05c0069dc7570474534ca9c18214fab1f0da7d0fd1206eb775dc7fad2985e812fbc5315505ee95c7d61ea4c0cb598083f4efb42a40e7e74400f5ac2c5fbd25abb39430c32a50ba4d4c075017c297150e6af492412e14694d9bb05e6c213c885d90dc199f0753a3e23b466230aa13326cad9625bfff977129d5418dfc3e9f3b391d03ed32d3f950d69f2305ca8d6925868c7ae3b978b89194cceb6d356d0d433f26500ae3e65c1bc498801ab1e544ce47efc71ecfbe4f6c18ba94c561c82d17d8cfa2f0fb0c447528768ce7488f89bfc8fc9d4cac09ce17c610b34934b90ce40f40fc546c00430a08f8c97a3d5ce29d362a0def66e8bffcebc6518a52d219349439990b6e1b9c38beea47b5349346c968378d74f02965deceaafd5969ffe96f19827007f3a58a3fcd65982fefb4eb842c143c1806c48c18c202fd6ef93f413fb91266aeb25f6963d9f1b3e9258d47a6fae72db611240b3bff7ce30868e7f74e1d628f5ffb2dec4bc4083a75c9e1f5337238962e04b667c9ee9090ab82acb79ae8f446cfb21f43764da42d44762980ab7b9c2fdd1e5fa9f79d861f91b9500b355e87f92d76ce2df362ea66b6e0b69a26450c78c95a06e9c868868752e11e51f71944dc7d2bb21757921a3faac5485f1ac8c6f4727b10dfd212058888072c818fb47190ed6edc8ea713f7a8976ce008ddb5399615a407a0671ae3b4f72a3c3d54a3be4ca1a163058b336e714dd5bb5f44d500ca53eeaf6878da0a7059221472f2aacf1c5cbfb6284ff56e1cc70b4393e58736eb3543f819b6d4b02a04e7ef971545c83487d98637d0218ec3a53e527b80e6f48e21745bc5e68675c36cbe0e55f0f10a664409a3ce58f94f7b19dccb33f5d3b1ae390f3aaee8f90d9c1467ffab8d8100ebac5e6e3de9409d1a9049d914272927fa918b73a3018c7a8eeb92ad7e453ab034a7c10edc4a45923e873602ca7887364412ff19d2fa9f08c0403c3eb97bcb15f2cd9e50b14e28a079939722c1589a149874e767620cb52f52736bee68d24f79737fde16633084625b938004e58d02399f4ec0dd048911aa6756ea673b3abd7dbedbdb9b904865b6373858f87d7a5c50af278f5ea6048d8f0baca994959b3ad4041afd34766ec3d2854c077805a92961862f15dd63134ff7ccc16c7894ac65bfe002cc99e106f7f2a747f635797d4698355e4ebda7c5769a0bd00f66de090c5bb0183ea287ad95ed1fc16d2b842a654e71b0936b575d8d2477a9f01476dcd56eb525fb98faa243625a81c99459ce13360225f4ca059d3586f857e54cb987a7a37133a6cee27ce0a501e145f49b1dc263e52b72d30ed53022bde5872b5870a22ffb5246ed4672b00ae52cc20c1cffc0ecae1d14dfceabd353f4d2b70b2e87a43e2cb82dd176e38e36d4218abb1e399141ac9c6161aad2340499d4c77a0406f575ea05a0d7883cba0c1b6b724ceb84623f64c4364679be9d2777fc8451d1078da7a3ebc03102eabc99eec76826e5a7869cc514307a5289c7ed31e50ac64acaace85ae5efa98d5be150f44c612d60bd4dab568514461680d3e17a4b1127fe58e38e07efbe27cbd75de10594df2c99220ad8ac80455b287a6ed182ceef0bfd330a0dae920dcb83e8ba10728479777cef4dd06a568e4c0b258ccc1f2b3549466d695a12a2bbf8f6b8281bc1fc748abd4c2a9fe9534942231c0fe96b4385ea18e71273ad3d5960c878ec5ee4261a0560fcc14a300427804c3db0bd2882ec6321d696b8e355e2055fa205674bb11106714e065d6b4769a2589316109b6d355f9b2bbfb8931804fccb10042ea80aa5aec3185a890307176a1015ace6843ec671958d17346faaec9040ca23cf5f47f178fe84e2c543b9f7c8ae3b0077a48ca70899789f547a4cb6a83c471191297873257ceb304b2cb0b9154e35a257d3d6873c03735a6c98e43c05184e854f6319e6bc293a986de681d8e0faae62351cefe8cb4ea332f1afaf08e6002888b802435d62a25abce557ab2c071898e61ecf16d68298fdf3c085d5049badd55ff38a838597d22923c90378566b2b68724654847c84edd47005f4b9d9e859b031862379b314027daf2c62985373416db138a014602af9802b072ff31ead772b6df9874946de99c7957c871e0d9ffe1fabc0ace86806da1fd03bdd814c057d04c8305364c7285117996dc43cb6b0eb5a70d309de03ed57ed1b98961f767afbb12d51b965c75ad4cd720ba4bb0fc63c5bedb24295550373d8c11b3ad0a5acf8811cbeb2b5004ce9c15268aea5811fa563a5ece93ae5a19b94d506e24f5c6007f8a0002cd037ebd16fd1ffd80c8237ab104b334960516b4b157412807e60fc85fb732d87a9d96a2c1ca486f37fa1fc8223d597b041ad2c13c65b071473b4b97f79ec3d55d9cd42ae9f51f1df66ce45cd835b469a81def9c7536eefb7d6ec55022a739e0ef5f14111031e8677f6dc87099c08e83b4cf63ae813e50a514067c99ed90bf7bb86604f43c1b282ade5a14f6ab5791b1518d382c444bb095f517a1fbc2b6a27b3c6faa7c9b542c1c9ab583636e4fce79094a0b285bcfea6a51831dd9c3b7d4420398ddd4ab4e834864a6c74e708439c80e398ded3f3060754e67082ec1366b94d395c76d7a3d80902dcd04d713e92a47a74e06b1a41b7704b384332379f623f4891969169a04b940d99553df01eddd4737a7cd8d697018c3dc289f700468d8962a891762dad78bb5fd034119fbf7f33ab24fd1d4c2b8302497f804909db30ee31042f85ef48c930f65e34ddfcf18efb871e113ab6a8c30dfa2714bbf2b5f69815eb4879ca74836f83f8f6ddf8898ba1ab5e129f8f7728d7c004214d33bf935fd0bca158201471a763c0e89950a5920a24bdbbda4b40741f24fa431d9509adff43c3644f5c8fbabd1f215ff95bdc551322bb70c298d314850d7c8298bb6a179dab97b8d5048ad97895aa41ea805a46198f5ee686bf33a247d02f3b6903fce3a44b1b3bba9eff852573942abb09140c763aed2b7eece765a026e5b479299b6fccc22606e6889669343bead5f6cce4de24e2341f150d4e8f3e8ce167f1b21b0bd8495df9a2cfb4bd5cabaa066fa05476f37c9e0a519de18fca5493ab44d5f661ef1fb690505cdc8d7112ca2e136f65214a70f1d75d820d206170a3671629bc0e79de7d8ccf5f08d1c2a065765e5e76fd9eb6cea95935410a68e2ee7f4fd2936813d6edfdece847b6c6673927aab902aaac0a49950862dc6f6f05732b151645d7a5962c07f5288db51bff9791edb4940d6850bd1832fbe7913e07010cd0e71540593c103c7abc1259b47386e3f0d66549309c81820b09cec9df87dd7a328499e77737a2621354ac6ddb02e0d448caf4f77e05545ad79e5263a1e89314367a231cbccebc1cc8e7d55eddf408f858e5918004eca71c24c754512d8f9a3eec9a9c21faabf325d05450d689168f4ce40ee0f0ebd9d298f87f45c54bdecc19bb9b7c335d003593b48f90c2b0e47f3e1a0032c64c8fbd753c48d9cb0f15b24750b6834f3cda1a52270542adbef0860f027c18d2ad3db90e6c7699cdcb12a0b5bd3bf19e39c984ba1552ea35ff54dcd274580336e3164ce30c04a6d10f0651a5f064b65b4d199159c37fd0060e7867d20a811bf9ee059cbafd2e08f89004cff48ed5b24b75cec12cab154e4d08c7b576c5b71520fd09eb9f6fab1730956ede81067d60b62dab6083803dd3b60afea7411aff3337ab900322839af7e554e78a866fb30d8d1731357c4a47c9f0830760e07f334427989dae08110d1e7b60e82fd2cbd9584404f8fcba32fae25832b4dfcba01563f0f584aa1cd5555e07970de0afafc4c0f9290f7acdb933c0ed02e46bf8b9a4fa21df1fdeeef4d78a06ffdd83099cbdb5ccde99526c99edf0ab27b5b0a4f8c66eceeecd7d45c1cc3ed6efce0918a4c80ce9cbb3e1b9dd172c3315dbb10ceaf0a78ac58ef449d81499acd8dfa567dd8f54bccc5d252da87c070178cde7045b2aa55e8eeab14d1e9704decd78661daefaad3cf6716e7d76d1b0e74a35671e5af461216e000ae28cb1aa0aa4335783bfdd21f3c7100cf404740af1ba54668529ecb320e2b08e569544c37edc82f25f0e7fd914c82e26995053afd238eb792248781c68d8580476d6bad111e4bd46b79761f625ffc0cf6a92e42ba66fb3a55699216b2b2d4efa9a1fb78adaa058d34108130017582d0f02493d77105de8ddb21e1103c81356cac8894b80582089acd1df4d3bab609ff7702558527e23f2d51c137b1f263954d6f3758e5a69cc4dd27bfa2a9e4eb794ee7123e14ec24180f79b178903aa4da49b6d83948446fa8fe864ae9385502de3e16786620beb72ff13eceee81b4f49cbd46278cb3487bcc6f34c31f9d6f8d2466cd2c2b4d00c915f0f8e8678430e76d2364f8df6fd6bfaf326566dc5dcc437043447974911c4e245874451fcc1275b1fbebaf32768b410464ea21061d6b7ef8fbba7e4c56a17d94e2941c782fe77a06a7b8c66c51288a8be57416b70464bc79a38db0c5614252a3d0411b88805e373ff5a04b3041e92703b72c1def1e431f36f2705631c8ac0ac69698e2719d18cfe96aa05ff777fa2921d01c3f160193ed858ae20ca65d0aa9ee09e1868f416dcb687f72b8828ef1a6a08d7c3c4f759f10f82f3941d6616677e0408b0f6de1dc979b55311f98869f365e0330069a0b249602922bb93660e27e949b93fa921bf20217b156f310f7df7684c5f044c6bc6d32438c160b757ecf0eaea205b7208823c2ed29d4a5383b4388c8fa70d0350972b94ffec5233eb34d3affb0fa2c37f1b4ee08e1d53a7bbf9291b6c972396f3d81a7169d05c2549f07591d995d30333eae82103729cc63c5373a0e733e4280c68498cf5fc9f9f702ff8505b9f011b89bbddee3472f09eb387e302fab196130c02dcf7b6a4fb29909231fd12d900f8aaa4147a22cb9b2157186a595046341032713b2f6973727e5e596497a196ede38bfc76543462a1ee3f579cc667dbc400b58824b96052f691578246ab02c13289a7c01c4bf12c3b48ba540600d8240f28bc8afc95b4278da9bf853aebce6410914539453c94e05740fd3841ee6f6149c6c1f09fdb3034bb316e10684763d7791b7ae2ce71366b86f14384e46fc1ad0ba7a1aa5dec781c07f978d411e489fa7462bdeedb92d74334a15d4dc1ed6550b797ce930055dddc39e395004f44281039f65fcaee4e75738c0df12b66f5142303d13e94531463148c308f1b14144eb028a376774e84e9bd91d63d407069088041d6ee7c5c56331d87737d4868529b4b3e6a68c3c2a33329bc3ce2f9e34f458b962cc5cb74534796d93a540110115604a0a1919867141513ca9000caa4f2d9a4b0cd0411eddf4eb5fcab680703ec2d2413d4dd0ec6babdf5ed743e77f2f541cd24da06d79da51c8271d79d75d86ea47ea3b279bd92660458feb5e6847b11763ef0bdca5df2ea7519f641b84a769b94324b649948997d4970597f2924d38f9d8fc625cca32f0d0306bccb34dd33a516d28d3801d9f165c67d72028b94c27997dad20c7c682da8bee3254565113905f85a9a9fc4707e010af37e1af8486681361d648f13385c965295d4f7b0c95c6c1ea51c65b193d944ca9d0c60fb1fde86b7ec39011d3f9413e6915e5b5dd777a395f9aa98577dbb7b08a39d1415176180bc7ffe2c24cefe756b27b91ba75651131fe3b4955c5fd30bf650899a2ba246e4a71bfded6dd1e05f43900a4b5f2db3290970b8c137a26cc02b906c62f6f1ce210dc2b57f8db00098dde17c1f19fb647a0e0e0d1c13d42bbc7699d9616a1a1717f99a8d21d3ccf068d45a85fce9367ff002d48673454e511642da35c9229799ead72c90acc846631a3c0c44a06a6a1cfaca12113fd60104610a356fb1a0d34ec7576196e28d6d865a35c97234678e76c0d14fd8e25cea0b74fa0736fe3e63c65526503a1dbf191a0f6bb9bdb128b91522007f605ba5f1022e9710144a8d51e16490c24fac36c1e849b9ea33c00996240ab780f9723be4e2e6f13ae1dcec31690e8600f02787403d7b639776037b2aeba807093db52014fe1589f482fd0248169547019f898d29703b4c045374dd26e86d483c657ba865a28aa7933c3fe811fb961730450f5177a96f5c1840669ea572fa0be530a199c59522cf774b78d70829ec3998d2f7b1913c315394fe3ba99318517a531e314c90995368363fef2ca1db8475eb2f1fa288fe0b678cf3a420e361b2d3f6547a5c188880686c81b9547aead227630a4b9b3dbe6e34dc14be4c739c82660f48f4d4bb2a7a88dbbaac9c6a0a64cad328ad33082f400ffa3a9d237b727429c8c87279f8ed3707b65d823f21cd0ed41559b6e89accc4b08c6bc41769f17699ee0f1bd1276cf02b851e612072eddda902c00bd643a55ecb7ee406f88fe3bf6cf8100b7119ec4eaaff1a9d0e6458021254199cf019217950b0cc4f8f0167a898408dd4eb27abec51a7d0da0c5fff5a47c04783889c2c2b371f52c82849580ec1bb126a26ebf2cface678d5b139976ca139a647d00a1a731500630acbce33c07cc306ac8ccd06400243cbd537710c7358a70575a49c43dc4720ddb5a036c60e40469aebeff271c3b25c7c17df93bab95f28e01d4d6a79ecdc2d00c4cb0d8e4c5a0cceb21cb80f25f172ad3f1b2706c809f2a421a02c807cdea2ef8fdb2f3844952be8db933a9e66f1293c0b99f875760ff91b43a293e5b5fc7baa6e522d23d9d02ecf6d1c671db3fb2146bef6b243d7059b91ea3013ea1cfc78671f52f64d4c311aff966828c19911f53492b5624f4c77dbe0274c8d88237a0b88a732d574fe9aac55f1ea81fceb9f382e4428104d478ba8810a33a96cc2fef677420b17479c79e4d6512057188ddb88459574fe03bbaa742b1ed7ec6f110b93c86ad004f621a76c53c6c7855bcb508bed933a06109269dcb7d9b6beb88c3da3c6d834718dd24aefc88cec2ff43ea8baf2bfc0c9e2505e266c510d23acb20d639a7d84ef701455148e28fe860d8f95b2d292b7b65f6abeade0a31ba0618e3995a0818b209a9985d0556c5b08b9bb2898d3ee1a0f7eae6340b8391b7cb7126274f3997c988f4b1ab6ee51c0b74913aca16ef82546ff27695279c7bc2c0fb7836d6349dc533c55b4710048866f221a88c774fa7c173049e08b471bf3e07837b3e5fcab8b336446e6cae1cb6422a982afa138956dde898bb57a457561a05f4117ebd1d6768435bb3994a085f8652a6c2a2875998b3692cf9257f54d52d06e223ec12260a877639db6b0d9a5d6465df8ad8cd93526850c00636aca2af48fd02ed2e54302f22f0d3803240169ad96c3c90fb219b7705f15be7fa9930499320afddfc085b25aebc5e3e712db4c40df8973a38cfec84707584cdc59221d93028670b89361ae43fc8d6d1beb322e020c532457ad59251217ac90723124a1c4b294c31ddb3b541521b7b51b492019c2fd23147967faf2c74243cfd372bb8d7f162a4404382c8798b8d4f70defd637f98d71bccebc4f94bb1ecf0393419282b78d55a812026c2033d7099d2e2cd54e3cba45dfc01973a8a23bf808b27638eb339287a42e46667b9976f64724bbc4ebd30f8c7d5e009cf75d868892dcf148f7df134b81aec4e4f4dce0e0114aa72c239e8310cf4289c2aafe37d2c062c6e06c80c8beab87fbe6411a0b081ca05da96267ab047e92bc251973f088df2f3138296a3608a444667680d06133b8cc403a22db4bd7126873d5c4ea5575623303bc71301b2354ed78f6d65fc814cd7823932df45b1ec7303b9fa01f63b34899a8249c4e5c32e5049915b10a2ca12668b3d878ce355fbf9ba96ed8b0fcd59518c2cb488edd7dbbedf9a6dde2825b0f3e08956f2f9ac47d9c7dc896026a4f9718f346670c3a547a93aeab4cf4fe18e100c6847b33ce45c53fdb239cdfe13cd46e54bf35b0d179fe9a95093ba619ed6061f1077a299af29836df2fa869f7e933d9420a16f39d7b5e585904142f23cf8cea199f6dd5a4184a5bddddf8857608b92ce72e955978380dfafd74a1dd3852614586d4ab981c9a4f18a378b423109fc1cc464fc5167ab9ad59b5e0eacfbb6d9481313eb77a4bca5016292ba162d47ad2b31213c22c95ac1f385fd41df5cc44acb02abc5d7d82107cb0ae4b829dd746c713c6dbeb2b49e5693b55b696edb1ffa19341eb96b75ce2f272b1ce87f3c798b0176facf9f664be1cbef36635eea482b1835161bc6b3c5e5eb81bc3e6cdb465d5c09566c88ea518b937b23dfd77f3964620a1835737de9d5933c37c54ebb51be8b7422c830ad1ca26f590fdf4d5e03f0b2ebb2c3c3edc80e7729261ba37344894f56e1ca7440be18b590c53cf4eb956056788f766752a08693c843f05e7af61f5a25f38c0abb380559b4a8218612b205b0555071d7b48d93e57c6d8ba0a946e69ce29add145ec7215101de8e5ce18677ce69a1cf903694735060dc45ad5c06c8a418c4c0856adf4b84b82cd6d4eb4e101024871b1fca47c5167c300b40be92b006ba01eb505090044b96e721079e8b72d785fbd6f612e20ee367e0e027221311dcb0bc496ea106f47f8950ebcc0129fd4fdd2af41f76103660911d593684945e4f31d179ac723864200c098317aee95942642e5fb0a5020862ae431f7e8663933821ea4c53142dc37cbf4b8d96daf7f3f834f773163120b59d1b7870e18817abc926c24a964ce522f92dde81aed15d773447388033e45252f229349ff0b3ba274b30122ed77da4b75dd4e329bf3a755b3067824c46ff0255419c139018115c8de8865d66b8623e5eb7d4fd27baf61155b758718ea591b91cd7d7663d210a22e78cbefb94ff491813c8f46c6d09894adf4798bd744a81dc666389b633fce9a440cf14b90f48fcbf7907ca3dc2c54645ba486c421e2b091fd781c09c15e338f22bef10266385b555563335e1443dc65e674d388c2065b81079d2c31518c60d1b3ce17637cc55dc8915708ff5e1c94853b06a444f04383cac36a21fb1860aaf988c6bdf27bf24619a42f92a6fdcf718d21d9b6a3bc6cf7ee65f23b1d93b991c24395287a4621def8e126209c14ffc160780335cfd56dfe4052836b0c12b3d5dd6e393272f0fed58eed865e920a37bed336a6771e2190bb4f829c1f95dda51a98831b6e846d555eb4a91480e8419a0a867b3dd34806923ecf8de991c42e2c1cc744a22c35af7908f4e59c7627c4480a9c0f6541df5102f1d8b28fdea1c71555a075d91debf6b81e762f498d9af8dd52f6a125827d4d145044dcb97920bc8508aae1989c2e65bb6cdac467e2d3eae02f4b3aa024191e03af917ee1e7df7bd62de3135e869d2a83de3d5dbe2620b376a8b37a6d5b950641777b29e787bb93ae3e4c7e9828b646246150a600dad8f0d1591fcb09b2850fc6449ab4a74fdcabc61b5b073cfa96a519344a227e0987fe6a8ccf1b85d79bb37482800481358e4d483009594a2bb776fbd7830a8299f59ceaed1de716715a51a6bcde04f615c05a933cd4a10fc7f7e6c464905fa8480a8a429d126d15b57049fb7cb36fbdcc00b751e3dea32e3ced0297b66d15eca0c949d7c97529559bd1130e2b3994d701f290483f24d455379a03d266cb9b50f382cc1a1f05cba2f8b1430c44ffe28f989403850f1331c388a5e7312680d05399fb469b0ec2905a2ceb97286febed561f771879315358b7afa5d4a5dbed8f818de18c8b3be667dbdf758c09b7b9280490be07b3779b2eb1c2aef749955aa5c21599c5ed12f4deb3c771e558b9aa5b83cfa0a311263a99a67b0c157c13448a4a35cca86bfe06a61fd14f1638bc153f37d8cf1db439917792555ba8ff9fc7c65a1b3a5ea8bd399b082f00a8feb2ce9085e81873ee5303b6cf044936a23e9d0da2c181909b2f7ccf08b5dab704f4571b324d5f634063582de8dd28c6a3f3dcb61591fb4b881b230fcb70efb13b992d21489ab8f2cfcbe6f3a5b572dc79f4f4cfcbb82d29ed59d64f33940387a63166130bae040a5005a1573ca048febea95abd17be965b619f740b99dd484186d159f6ff782f1b61fcc007deeb802f4ed5f88aaf292bcd1a178af739c953c56529e1b1cb9b61989769ea7d11728df353f2aa776dd84c91150979c0f010b8e1238533de868c787dcc1fe6aed80ed2bb5b0b2c8c61c1fa5708b5eebba9c992c1b06434f68aa66547f3cd447d20a5578ae92382351053737378664a3674bdc56b651db5492335ca7d8cd21288409f0950fc6920970401c3e87d490454f0869181c183d014435281462880f948e20471ffb9e0557a23c2930d352af516b1274a2f9487eadbd535a04297835327b2f3bab4897026a0a2ec1c7645c098cfc2003d3ef20a250222f9fdb4fc101205e4ee74d01d13bd3ec9edd63d4517f7f04a8a2861154524bfb7bc63f8b0e54ac4bda1590e468b56134908dc9936fdc0dca2ccf1c6808a350b3ab4335a54fa867db919a56e598bedfee29083d66f45e9d5aaa84ab72a06bd41b25eb8efbc76aceacc1234ba9aafca7cffb345be297ae970306a6ba9e55fe2ee70cee85006d4f0bdf8054380cbaf134abcdcb96f550bb7bd7932e04d1a248152f9e562db794c67099fd39739c47a9f0fcff6dbe5e6c3eb92eab5fa2e47ea61bf01287da3cf4e85182d96ddc1b9b74d5627c5b7b30f3d7e9234b5c492367f2b8891c7d8a3bee74d44996773b00f6e0e31d36a54a536102c115cfe4a5cf399ca63eecdbc17731b72e1d123fb7f795510d953aff0c03ac563928b324bf9de0d089b9cbfe6345a778853514a2f65d87e7f5d35194eb4f98da1ac268c44536cbfc88844596830eb24b474ae97e04c547a1db052f7dfa9b6153f30e3bb10eb53933d090dd913dd1bbd2731810c66a7538dc03fe30bdb31eb0d6fe7c434d942c57440eb05958459e14dab6e1f56418e9e0a14bb3b2e61f65df134c3f6ef93c1f248ca31f9a90e71c215fa0e9c21b8e4f016bdabfebc843ce940f9dce8e2b520631c492f601fdee04d9de8bfb36907e0a754282e060c9340ea64b2263848207d0286243b76f2b05a39585fae2952f8630e5710b77e4ca07ac4f95337f6e8aad5b2b4dccc5c5fbde5c301a3df1a3b1df0c4b22850c27c4a883bbf39664f12230fdf7f3cce9023fc32471be4b7cb24e029c429ab7c8d7678b44d770bb998ab94cfee70dd2cfeaf0bf04cdde925dbcfae6132d0400fa54800ff27ab68a6af5c9801bb990e2863ece309b74eb4d7092374a5923e63093ece06564dfb919669f568d0528a5180485491099b2b4c1161850a086b8b58da9ac0ebdc664ef8ddf2c4b90e05aa419a06320ea459a8449b68f0e9a6a8c319bf8c3027f18a9c0016d0dfb20c51b68d79686132df80550b337f73f0809ae6a495c72a873aeee3e106b202e9140e3774487198307a0e598d8887496a417cea7ef5889f8adaed24bf579696d70d2b2dc8bf6cff1f03edddbba19d2bcc680418cad927cd4439553b2dcf8d481b370bfa5eccc7db0806833a3ab5f0bad54e3d32c08540203f3b227ea0f910c576e02ec6790d43f3438c80f993153e99b4d116afc040d44f0ffaa637f2faf5bb4e2e51342934034d9759b09336df4ae0b279374ba97ce9e13cdf270588a00a47dc26a2530fb22c313db3206d1b8c0d5d7d32232cdf3cef31ce4585454f2f8616ee8540cb78bf476520f746769213fda4bb52dc2b134e7884b6c7b44fb224dc180765e6c333a116512ef5a8a1c1e791897e656076cdc167990534e903bec7cc1723db32b55863926e8e47295499e7ab82f4bf55920dafeb45ec299d56cd8436a1b8d74cd9121115f7f605e97fe1ed5aaf688930a412666934acc788713f225108211369c971fa0d8d21d52f5ddf91eb52e9f71b4f984b6f1dab1dac41ea3e9a8e92c81a40b61d4281f359929d3886f8e981bff5fc2aa7ee42d72037f9a641b304253527f1c09fbea51ba0fd2300be40b4607657544d2f0f752dd0af00f1b8a1bb24799ecb3954a88f708a80e12721f5df684fd7efbcd61007dd25c610e89c8df29c1bc3d51a15a90e9b7e92f195bc4580dc3d6bb3bc3cc7a6dd737429636ad8433e71390d66ca5a13f966ab5e589fed87753338288074f7dbbc0308e6089d549704c69d7d20e0ee244015a9cdb21f9270f340a72640cab37d8b4ae833c8f1d5b768881b8128d56077459fafd15bb657c4dd2867705e1c803f36d6caafd282a9500578f338234a8efbb5a21fe9e2efa85651d869d96942f061f41fb29b4d9e259a22ebb1ea93a0eca8ea2b609479fee090f4a1bb0f1ae8e5e5c1b3d70297bf0747195a2704c13f9ce7dbc3a65b5d5808f9a430eaffa0838e86657eb27db7d44105816d45afeebbd8863a43c0b8c7f711c1ee657100789a28a6c09117fee2791b8009e5734a76e12ac5ecbe2dab8428601cd05a7d2faaae7190d208dbdd57bce718e322234514394801f5366164edf08b7ccf7df5f054745c74584932ba20cb6db926da3fbc0c844d9496197317ccb43c918c9973f28bd9e212a342b483c0b4866f4db3af1a422069ded2254f086ce0ad547909899f186f8a58c2eb14ffc444796b66bbc6a650b21df575615d5cf203194434f62881434fddff8e755125da1ba59d65bf1a7dfcec287bef762df4f8012fa45aaa73bc9017c1aa1eb991ac3e96d6cacb6159d9572798c88fb599a1a7a0960ad51ceea1e90e69f213dd623924b6fcc873b5b8d1c57b9b834d72c7bc4e2f8c1795c7197a9b3d28a3b0ab7e00a12923e72c06575d48d5c0621f8a18fc618c40a85f9df9f35057926e93dbb11ab8aefe25081cd4532b51e86b42d907c3935d570c8cd9b216b9c3adf6d90b7eb09e45fd9d285a0ed266d1dd8ad7a69cc81c09ae2400edb2b8b5517c343c252ce6a1c02f6df43de346d5c603498b7ab8dc7d9038344e409c2b01d379208ca884a80c2bc8579e8fb66c84e4c03a9ee6e41530105365bf346ae3f04625fccdf28791960b3223f3d61cd7d2b3006885fda192adf1a3dece7e2236b3b88c0637a56a1b3e3d39809f5ecf99262bb0fc4a7ae888370bee352cee531fec43a8f9f85092f2a434ada4d466ce19af6804cf6a2ba1df2fff33b2c928a05d0432f398c528ef9fede0c043a1e27c61b78791bd63365b5592dbeeaef6dbefc8d4dc1a01a0503daf4e25072bee354f2d71e8176bf4d27f70c14a7042643a588c5a36e8dd48cdd91f6fd10e5f4b5a04283acd9ea6d441024ac4e3dfacbcb16e057ee57ac7e88630184508db4974dad80afeba421ee9d40359f319094ba551a82c1ecc420cace30ae1f5eca157b2d8f8df96c6af807616d4a4516b5011f417188df969da477b8b59976230c6f3a9a4d5cc19b9929a320606833fa46f158cb0cca1c51f3388eb2b4673c3060bc8be566bcf662ff84e8d278871c07dfc0cfc794cd302b75668711c6d4f5c81504ebf549f4c46152b821d925f23cd1a2b890c8e28bda1bfb0d9398d67c2ba23ddb8f97db2b271fa8a7997b6ef3623bb457c8e08502414fffc854aaa4f1bebb31fade0ff5a6afc2ff55ff826cd5eef8beb0689b3f96e3e81fdabca244215c400ae1c9a0e4cf0b98b65d0d87cc2f64976dd68ef88845440d9dadde6b9c0c4112298cce25e8110f0a12f97700518666d2f25779440aabb5a2dfe9e6f9e9cdd5dbaf3889b8b5834ed1ba9a632a50373bb682cd216323d0f6fbef0f93fc3aefce0f05390a57f46197c93c16e64533ba2abed774cbbb66cf868afbabccbef410d44156d961dac359ca40865854e0f72d5badaddd18481a47dac9d6154adf4ce0e4a51054142831a3e5986db05e53ad37fe5946a67a6ab99bdccf76c15647d05df65167d6676dc3eb47c629a73dd4fc30ec03e7470918730a6752741f2587df738212d294be5ff210768ad768710d9da6061958f31b92a98b977c8f0d4c892cdd03408cef6ef1abaaed4af6bcd56cde26fc7a687d2e64728531a229d751613f5b980814a7cba6cd65ce0aeb8e0c0620604773675be89a194e72bac8c566d3f33c430ead204ebbae2e645d7d068127598f8383abaf56319c7e038f9641b115f9348a0fdfba1493972bdc1e59308586933e70290b66ab812f15f5b6e281cd355480668df43127894387ae5f8f364c356b533e7f6760131fb767e9c89dcd627fdc5cc4067c143307640b87361329c36b936d005a1eb375de50e6dcaade4bf03abbcf0a6fca47b2f71e8bb61b3d568a8a5095582996f12dfcc8ad33895f64331ef2bb65fa749cad0f8a1d7708493391a5fc39bd64b78a133d21eaf6c9fdafc9d1d548cc37d6728d2135288dd3d8d416528580efc3703560a112096c443b79f0018b98fdb5906faaa69e390f2c6df7106aede17cd9316d47c087bc6f20c0cc838a8fceed1d044090f1bbb35e22f1973bf5c81966e770fe502b1dcd3e04d4199f7032665dc2d96e240775469b66301c536ec16445ef24a3c848a7bc96a2e762818616d994217b4823f1273a1b435a0b3b29150f8e104dafd4ecac38584e0bfe96c8b4957ebb98cfa478238ab2e0835613b51653bf406acd0599e65c15f475e5cabcd74599eba4c19b9b2dcfd29122317eb3a987a44a01cb71b2c4c535bdff97815f1f657c2b56ab80bcfef9cdb8967998c4c89efcca1a75ab2ee9729aaba989df738027e93f290d9b7fc2ddc55c9cb166d501f42292c4842930ab79ebaf14243d5fc0afa157dc8f9a859a8a12a8da86b854f66a936b8f9beeca9487f9170557ea11fc958010f24872b71b78295a58ebc490dbdd63cd115084b2e534ddb5e8b8a3e123be8aac330fa8a3ce7f4fae02be00c6fbdb0c5b624a9be20e27becb4b375ba4797ef57d29df8981aea79f572703f23534b81b789f70e26b37036c9b5e5736cc16165bb6a44ffbcaadbc30fafdac01f376e7a7606a23e76ebb3033747a06e4bf657397523716cd012fbd63f81af48dec47afa55e688a10f7a76b973c97faab2ca54a07d2b89bd0218c13a582fc3fbf2c422470bcc2f007d84027dec0d4a2d9996b7c23c5c4a0197592a02a97839fe12793782406a53120e87ac09282f3a764171eccb20438f21ffc0296780672d144737d9aa804c2348ef281806e60d9fcf87b7ae60b90b92db35f0f21b7a0f1dce437d422779ece7a8484346f4e31137fc0480eb821a62d96f26ee2e422670e3a5d3b83938a7303ba8348a5f520584c2790f3be1354aa40f8ba7f184522fc378ae86708e6019b9d8a72fb9a50f569d8c95a0a41a93ecbe09e3ca44280c993c1e06e52f36958625f234e270fd3963a2d670b5da44b002fc257ab8c649ad755659be45b6bf34a4f0b2686b7b2f85d07640c291dc587b49ddb873a1876177679bdca7bb1a859c4eeed7b552b66482103bc43e6acd88a1940e74fd70ce6854562cc2a6a9d7a456b2c5142aaa2c006703918157ea9e6589c0de5c0522914d980ad73ab4550c14fab0708c76e428db8809a7c960097495345f29820eec9d593416dfd883989f26f537ce89445754a757d04930cf175320f3f8a083e7ba3f1c22ec794f4954999ba235e49900a5eab09184a2c9b5775237cf18dffd582ada5c720cbc94c7c0ed16fe4b78823ab6915ea8f89b88528e6755aebae8d07233022f2839d10e6a9e1cd59e0f7877b274e23f593a2ceff228fd40114b385d8970e0cec83004163a3f0537bdcd42bd4ceec2406aa3ca88d8982bd77df10fdc99fd3fbf249de199ec23f3c0ee75fddd4087e9b57069ba3f455a107d67e2cd27c2eb9fde2d7b5b71fe97cf6d197280afd3d25beb5fc6dc3bbca095701479b21661fe112114ab31f29d9eb02aa9bb2a320b18bf88075ed2c3c84c9aaafc77fcf93da38aff589cbba4b77e4768ca5bc9ef45b69688010cbaa416b4dcfbe4c2603811d0e3ca7bb6ad49176617bc01e0273ab20f36084dff52a3b2b34eadac386a7fa592f9624f0231d3731acd06c30329fa1e2fde6d8e2bc3ffb0d5af3744036ea135d8e8d6fe65729f1af48457600d0241a58463688b1989e085f2f3509989fc02a30c06777e5f7f0c721e341ae3b91070ba7b53d6df7c7a27eb8accfb5d00f60fc65615cd3f8604e7e46263d514799d1f91eab2016b3f5c97ddb8236215c40c5c9455a184d1acb848a8d1047d5b3a00fe8a14bb3765d53342cf675b1b0588e2f8c863a3b3b12efb59eeb938008cbb1d24f8e97036b65ec2b46792edc0e53fb9f398c68dcab18556ac1a80a9e7f53a430303c90cd09a97b973edf2b260242695e1959ac025f81350ff6a8516b54e3ebc1295f0604c7d6b687ef06f05393b6407628a5b22a91fcf37375f12644345c9d22abdfc24f66e0d6acda03ecfa837ad5378ecd80c49536054c766cc19abe6ac9762dfd9b88bde91fdcf985310715176bb4208e76b641e07db1852d757433236be080cbb03e475d4e921f3b6e3b1dfeaf43f9b666d7256aa19e6fb89dec7115330a295d753485101a6ce7cb40a76f4fe3011950847599fc8573b70cf6ae467268a1c92c72e032a273ac3656893592749e4c1ddd5dd094764a75a077fc7c0a1cf3d6a29799ed477cbbb84c87f11fc40c694704b3e49c5b7d6a4cc66efeac90bc62de1d7bdeb9ca23f59b63b78a7654e3d25901928a83f7e6738445f5eea8653a7073694747d772c0e481e0a80a9c48eaccae61f5d3a18209c00c744d386d5d2708522619118f1b06183e14cde1ca52735fb580cb590642b9dab929f94f0d720266bb23ac965906ea16c88b30208b1821a9a0cc87193890ffefc4984af22df26629f42b399766edcd5bb9f070e03fc94a47e7dac01eae97d4f048b6079187ff8297c6e0902917e60a3ece795eba9904cce5c58ccc0556dd651ec532e2ae695d6f6cfea70520831306ad6aeb2a9121117bb9b9430c93109bb352a002c697358f42b9eea7f6e1f6283975142848ebb362bf150726db9e30ea8eaca0764024df46f94ce9d30dc86cbcd8cbf45058e4ff700223357350e200be423c73e481fc72238e0fca0883d81a6902095a76d1b307def4f88ee847c53bae71ed27dfbb1d8bbfda876e39f658e6c19ccb38d836b5a3ece104a235622a9491f231b1ffdd3adc0f1c7e35abb20bea13533da3b609d900478bb1c480ef592de8b5e06a3df3efab11344e85426d16f5f856d055b2d3671d1547bb8bfbf5982016fe528cd6a1a550c9020647dfcf8009bad19b2ebdec0a4c635a785187c6adfa6d7409b9c88f70ba9070dd68c963f1de812f6faf9ade20b7d8c9a2b769d18f3a0be50975d9ad2eebb503ef592dadcf5e5faecf7df0877dd9bd1ade1f11adc4d77cabb5a72eaba277691b5990a8893a2718db56e4e660d80153be4831e98078b73f1a101c77135409fd291905e623520ccbe55351598355d37621e6573f46343909674b04a3d988df718803b64a0e2d9462f824d79658c8c69c9a9340379130ace1e5f9732c51c34957bd3323b256707ad7f878abb20e89a613b08760cfd3a7d50e9d70e1efd7cd2ef95032d23aa5ea2b43618da86437f8139c70106ff54c376ece7bbfab94b28386de88d6cc22b8c24bc21787cc793216014fd862e6aa1552a1e0bd229085dd34e197a49b1eb4cec130277038b9d445e637d47bd28539fe0591e245f83479d4b8dedd75ba5a41d502657cc10135fe84afd0e8f3b5d0772dd6d178f812a08a9202b5ff6dd9133264d7295739fdaa45ea8fbc35c3918d1db43bea4962bdc0e14c4eaea17a8e641fe403eef9d651a77143404076b0e047288670dac832dce3eba9cfa8cb4b3f6a00698cda46b85c5d00d45972eecef5ce4f8c8590cf55683f24771d9347dd25c566162c4982225b22f8cee8be31af01b58abf687109b6e76b6c1f76f64f5d601bcb1e3949e5f062f2470a9964397239d3a2806cd62df2a2e3f4635e6a8ecafc96e9af271c0053c2e9b78d54f7cab87bc3d99d158c0a8f1588b5190a1c6ae3e1612e5e16baec0453ca69dfbddf2ea994639db871525e707d1d76ed744fa640502e32e1ce4c516be87be92f8ad836856f594cfdfb5e83a27dcb66700fd850b577b346336eb2323dc387cdc76171948a19890a5f22d9e9be7f9e48ef6aa0004e4628136677fe96a5e09ae758978e7f1777a0a5c9d15e6275de0526d65c26648927cb40be6cf7f7060e090515b9e7ac4df18d89fb0b7f3804eb569ba2a8fa1fa4e35c37e82a9785cae5483facb88794ad2f02c5f96d401da98e47afa65d43fd1130a1e9572a8d38e53c71dc94294d086426f71d50ba9ae154a0763b1ebc3a687ecbe3b1257bbcb4fc13c4bf3edf6e1a445f28368feef9002c06e3e458a3ad3eee306f3efac7bafb55d2216a1407f153a76892bfba27bffb9d6171a4fa407deedc06178edbec52eff76b8f8a6bb4313baec2fac0999dbf811d5468df94f720e46e70aefcecb602a4ab17b91ec7b65f2a9b7866ea1a49c26cc361f60f1a391f491350905f74327e83c4646c230d7dfe7541d1a1f93e5e058b6616a9fded5f99122f5c1732b6842b3fdad31bd591ba65e3c226bb2e3b9eb939f258f6859467bf5fab9f27d27aafa592de905b801a7d416f150387d0c5aa82cf05c8b6f440c4562881a1a3cc4ec439d6389067e2396510640b141cc1beeff9d62692a4ecc77e383b9cf7f539d0fd6c61d11b9d19a8bca6c0d7665522a66c2a19107be0dfb528d38caf7a8a2a9bed72bd36d0fe257838acee48a0510a93a31778e7a66f188c32a8d5d4a95423a76db7a74625b2f94c4f1cc93394f3479c3733996453b85066accd80110e46aa274c5ae404e18219f02dc6f2c8b36237e550e75f32de08dc8a7f6cea1a97dce241b9ade0893e5ccdeb7ecf7cce478aa6c0b0103815570f5fa7bd42eef3fb903a2956b7253326d3e00a6c2dddf7509ac99b7c7f30a0636118bcb821c63d2366257565b29a7f8f9df3df7a2c35d635853fa32a78e58269f7b8f7346e38567861eac1048d974108135ab627ece71a1b812654a7333bbacbabcc052ca3169ddb0b80ee876ac71068b48d8e6ce08026e08a406bbf5fe82d86bfb29147ce0b7b8df178890621db25eaa22d08b450ea1d3fe027e4159ad0849a5726006f10bb030d25003fecbc0b0a43238f5b12d8f3ff7c8493fa71fa2e3a90fa56a182202e4d64bbe559e5f96cc4ca21dec400e728756bc0ab5ffd87903dc11591dda4c693d6c54cbba9d0cb0f6f7fabcd024241f7533b9c6e151fbe9ea74b78761e40604e98af76006078d9f45d7772d8ca087e2513c46924a2fb10ba4d48d7c6764e60529701595fb6b3fece41554d1155f38899a4713ae48d4760643e554ab84a46cbd415971bf96f3bc795f073b58361f1216f72ff66285c05897b709acddf7a75bb49bbfa65c287ebf8e7bdca492459b45b5e7884087373fcd6432f2ec1a9d382dfb24dbfe5ef9d64073e8dfe4c516cdb1d72b3197f02a53288420d266962c343f63dd6dfca72f6ffa0ec07af22e3d0a7a50e6291ee95467654e867b06ece981258334b4b4b851ad11ff7a0d2d7cc81a70148ce4abd411013e20bc6495c53cc576d34196920476f0019b250df974c226f94889c2b165430204f349b8022b0150733ca25f5076a5322d335329137ace62d9887d82c69494772acb339c196455067bc43250b41ee954ec9a06c5bab91a4a0968f3ab7e8d03d207c91fd52efee6f9aade45d9a12ef57a4292a12f38edf6cabef145f3f0ce126b63a45fa06496a0801c16332c4447fab965504dfee9d2551ab579cea2f0edc9fa5d140b517245129c344b90dd9a49581d6650f022a3ca1366454f1d3346fc4603f224bb760e6a0907e993d8ac08409b9eea35b5973efcdd848c3ac4e687081ee8582aafe6354d37558b517ee9a389f60af0d7ccc15e2855dbd540b10b79a33a175381f9c8a1d876f77a1fb565399247e55d6a8aef162b21cdf0914e80e389970f203ae04ad4fb83538fb382fab859decf4e5b15232628c7d4ebb0ee98fd8823868933ae236e08842467519c6005c80230a54c13a26f76c0b72954a9705ce57674e0cf26c292699931f558f25b48502f941f2ed8d63dc2d24ac9734db62b1aa482c868597d65ff00d71f4337f96e774b175c29dbd2def19e20614beafd8dcdd5d6f8f34986e2a7546273f96ca4170b0ed917ab88404b26d23ec3413c764eed77661a7a798600cf6b00539d96e8f92924a9f05aaaa5fcb67d19973a19f624bc87cd0c29a961eedc1771477a211a6c189c36b013534de84e9c824206ec3be98fb2086ca57bf0b98d07d3ba258e53ff6312a644215ec9a4ba70607dfbc2be942c0e1811b01d03b3e7b4deff9b110dc2f0145054d726deb33e9f86728060389f85a170405ac4431f4c4f5eacc920987ec0367ecde211a8a72db1888c53d3f412d0bfbdc4e4b60f730331890023cfdc6b4a992f762baa60ee16e2dfb5869ce8a971fda1ead6957cc5036a9ac94c99f028ea179157d7526a47fc9d9a6d3864fc6b31ae74650b4270f132225141001fd6988c6eb5d86e2c01eee4659cdfdc2912c3ee75a2c5755e64b1db63bb017702402341c87cb06697beef5088bc6f4ff5332bd1cd889561e8f107836346bdfdacaf526dbba773d9bc0effc17af6ba6abfe48f65342c1d7829eab0e148c9cb1fa3ab6778d6f8a9d588fc5931377a456e651a3758b7b8ed66200153025926e6c8c2fc9453be6264dc07b3ceb724cf61df941ca089cb9b943a51d09126e000a00af705931a7a07fa7f3eb305b55ee70671c7c5b44bd657e84a212cd4c79d632f4914ec1df9a64e3baa83a96dce2c8d5728e4d40fd19b847f05e582a5a40f667e173534f7943ac05c88ca9878e3ca861d2f9e608d174819855956aef1da44585f5f0c6762d9e15fdc9764dbf31fda832f02b36dd9fdcd46f729134aa5975565e71a1dc76aaf4a272e7695e6aad4988de861bd0a1087183407eda4e60350dd7c52b08a844a769de44006895158a71b56f243fa584f5369c9d9fad57c0be754dfc0dd12f2d5d95327228148257791fc7a9af337a2210fd61127448f0a66322df8e945f3a3608320a76242502f2c9193628ddb25edb495069388c0329d97a38274552adadbd69d88864efa7445ff2927fa4bad99cb95280d002ed3c6685ba675ddb6c789c3847cceef8381203220e0a117325bfda8324b4c3618e120873bf524fec1cc25a3ce9d8f97ae324dabb5bbb9f10535a6830780ebfd5dcec5ec88a87ee9c309d332d9d3dd5d7849eecdfbaa0cd6b4cb9f3f44fe2404639d9b6f5fe077551894c9a0735aa6a8be7bd395333023e7169871d9b6bf7dd7378b483a3646262f29db1f0b9854b26ff8b9451ef6f967b42dce3a797d3dee9a96325f878e859d30df60a3d6ee6e77fd3212951673c33526a2888399f535725e83567912f191ff66fb10269f4b60bdb21126a50c20d0e7e53a53eef18f9c1249921e461af6d189da3000de436d6459024f7efabf9788cd240fea835dc9aa6600ec99f24dfbb3a322aa816c3442a7431db1f90d4ccb6a43a08b256a51c4b482267c771636abff18c208483b7051d205b310cbf8ea726ce34dc962bdb43e849be3b27103aff99986c74007d771d1aeba4e6f6c2cb6aca81ac81511687be9062cf62ebe97f6c4e8299c49e9071dd140b83f646b68603c84a536ade162b6f2622636a86d162984692ee83759ee564ffd62a871c5a4ffeea66db4d0e95448ed2c54aeb6277bc7ecc64cdfdad17bd385463cc76cab86cb11ff7b5060307da3c7e1c02b15ab4ac459107bf68048dbcad912eb3765798c12af8bf36a9b6e7a6f35a7bdecc40a442fe2a42434a4c8de878b7dd1f44febcdcc92b7a3f0673fd5f4659c2770f58903ed68d6e100dead3379bcb08edf6acfbde5114b3d40c58f0c927b2707d0fdba9365798e145d159c7eca65517518e851c214a2f3d3ec8d9309cf85fc969d97694a8ce8ae3522ca547300ee32c4fdc5f8dc3b79f30950a3f2e6a30a107c59fc8c0c121883894c4f1ccc7c38725a9b045e49195aa7be12d24dd0c5d7aa3ea47e796e81e1a39ea72f1d500f855a264acf531e4f23b0329b8f88d468a31a6827bdc7050d6ab7ac9da70a62b25e72535776324684d5f53121980139be0d20e21fb226522a20c088837cc553ff0d9405d2834f9fb8cc8dffc295139966fac46bd4a2be1044ef129e973752d819b4cced894444005044dd4b093598afaa4d1a5f374db130c3d72bf297f725749ea6740e2dc206eedf9687508bf576792e79907438e0b285d848c260f39dbdc3e5ed1fc24038d3eae90b61035805e6d9d291f6fb8d5074f0eb09eb4ba3c60f4a4a739c92e90ffe697497b7d813e562c140cc2bbbacc109b0d4fecbe4348c0a093fbcf47f2442219bb081c2db4f47b2d3c59a66de863dba9187220335afd539f35c4c8836ca755d5a039a2cb7208dc494632317a3967111f0f01c4bf733d81a665c8dd8dbfc42a0d3aa33e7049a1dd50f1488e30d7a7cdee2929c98c457249f44479cc2854dce815318cbf5d37dab5fe6ae32d2e5cfe2178e12d02848ca9bb2ca58dd685d4c709eb060c1d53e3e2f142e93541636e24916f8c95aa2966897e885f743f1112dcbc40a6c8f26bd9e7efd6b5d24027e59096990102da04bcc84b53f36fd24e28af646656ebfc9074636424a68e675dedf51c55c6041498830570ba055f5ac66ea817f937cb9d78554bd77b393d34a9ddbc04f693e5bbe9d4884deb9c4e2a000c7f1f66b5a65b378968239bd714eab2acdfa3ef3da1989c19c7da8130f496913bd47d3d91c86060c10af983e960107c3bcc41cf425e5798d6302047e916783999e661547ca0fab53f315ca2c664f2c3e5919b0692330742d236bb3faac0ac0c03f4b3b75daa1c6a57362343b0f71f7c0a76628650659e44993a5f0abdc894b2e43f8e6eb67adceea5047a5a556fe94c7e30ba28a62a73e9a382508e3beb94b1fddbbf0ccbe9f35665df619a98e3e8291a7dbcebdda6c2009e2fe8f9902997cbf4414a157d2240467ad12bd992b377f6d763f4fb62ff2c5a939e1511aca1886a4a84e52cfe4c45721fe901c80b79353a2f95e38e645f34cd029ad8cbbc62da1c7c5d7c1cc7a8a8b250805df9e24486e5a37c7e8d2a49c3d1193ac744970701226bacaba37c2cb4a157f48f3723141026b937ad0e65cca4a89a5a8bf71508f70658fd471bac2dd6cc1b593c2bbaea3e4bba73cda1001809142f1b634f15c4b8520597d6e78925207518e7d9510ee6c0ba0b512f69496504a029f5a085e243c642d32312bc1b63c9df191d3444ede609f5f5ce960467690f7bf78f27d0378ba597e67669ab785eaa3624d1ec4c8c27d0a91cefbd4b7b5185dec4a3f2df1f256071ac1d800c096cc3f825b6f44e952f90dc13b4cfd8edcc260716e88faf5a40023c4d66ac2bf0c1b4fa572e14fc791d0819c55aed62aed097bd56429fa11d4d1eace04377cd091d44f76c9c685b8729bbb796b2ace8778ddf6ea22658ef488e48cb7401218125d6deaff2c7df9f739c7032874494aa5e8aecd4466304676c799a143a051cc369e30f9d8653bd4e6030b388ae0da2f532f40c2fc35d807a351230a166fd8fef0815092fc0b519b68af853b4d7edc6bd82f9740a461ebe9d20a7ac64a2b0d504b2d7249ef29f60b32479e22d248f6608447abd9aeb6443f58776b3790e54fb3567ea574b2840d0c90f8e3881eb77da26726961a23e6aa95469cc6d7e39b9454da4c0c3b0f955fe88741cf0f1482ceec027fe43ebbdda1e8d7d1a090193dea9defebc29e221a451437050ea2f09c163afff38244f6813e40b7b6537fc2f6d524aaa0b6e9df2e284145355c71bea056da6c6512f5091a3cfc89d23ac63f2761e8f89a71eeb09fa2838280c709b5e7936b0c7586e41809eca84ce51a1c0655821edb8ffe74eebf11fb08241907e488c5a773db652ff9b555258031655dee2f92058b9c619885ec0223bc84815735a586a61b2392f3825aaf991b3be8786cccb17baa7af2de2b5cc3c9b74b0b30914d06979591abd44c143e4e47850fc4df7c1b4052a413b155ecb4d2c0ff861ca899b522aaaa09890579f4ee7371cff708e42d918fc7082b6595a89cacccdd9586b498fc9c830c192031803e16909dbbf07751d6f466ee4388a9af608185f1ca9f93783f185141c561dc2e6e96159639bf89d4ca428dc677de8dbf1b779b4ec43df9d02acfeb2f0919a2e6b58a7a96c01de3ce3c621c1b5f30e55aabb9be6519b1c67d46c27db6a524af31d80bfe44da92971957a409b9d4ab7c8a3326037156f7a2e35dccb651a31ad2219c000a2653026c4c8ea445c90b00dee35ec46bf484134785871cdba731d6cb492e1482e955684d5198d1e8c24a4fb6a0a2f9b6cbcdacc76dfdcaab44fb5af3d4bc6b018c24aa390d4b36f739554cc31a4cf238789df3e0f65439af46a2dda3e206797a75507e6807cf000fb3f92cc1dd5964fc88b73fb85f447c0f8e2c965ba7d229e0bbabea79349464ee0254fc8bc45f8175ddfee683a8fe64d2dbee6e9bee55a707fe457a116a52c98fa6daf874df01814d46aa2d31aaa1e8fc06390880c6c6570c4c8fad109ae61228fe2a9ad1da525760f52ac0207ac6d343920ac46043ec8a395ddac3cecb88c8a1e71389a9b88f9eccf82dce22b741961ada4b0109e16c978bba2fd0c03c8b060a8ac1832a39014a4522ba9f97ed14a480082ee6d38c74b3f6418c3f4ba196f6b1d4a1caec60ae2dbc93e3392e409f862bbb46824b3b7006f4644e6d42b9b19429ca509d496144fd42cf25ad637539f88ef153d4f6c5fe314dbaf3f03f76f95261f3a0c3b3823b103f944e445605dd17409e69ca965cc0802b0e683bfb06c0d49752db57de57dfcd30372ab3ddcc68b83ac4a55100e21be956af93fa9c59e74dfbcc28b7b58c04a60697fe980aca563ae75c9e77be913f73c9500e64855c1d8ba16e52d0c7759b1ecf9b388f65800801400d132f5976b0c01bb91e9fdcaca8444f7a300c6090e68124518890cdb566497a330aa468a88cabfa54cece3165ff30c4caf70bab5753fda86fe747396168b562d9c1f6c09dacfe6cc50fa80485a9156a8dec249ec7a673f4877e5232d25d013412b1b0314683bcc23c2d64ef5495046ceab747006dd85d479dc16e0e75dabca29dbc33dfb4babfe7f4d587145f108a435b42c304bb21c852c468da3a0083b049f0b581a97318b26c19dd52bb9c7ad54a43a3bf632df40add115c9b298691eb26b0036e15fdbb252bde3a1e7b9754df887a5aa21d4a1a001196d0b3d6833209af261742bb99f54cab55499ddd15be55583fedf0a0707da0118b42ac24110b19c43bc0af440e63bbec1aabdb4f50c047f8d74cb2e7a7521ef631677ae171b3260d4ff897503af5b732da1e2a7a3cd3bd513d8a85fa12338812c01afdece660f2bf6ff64d60a0badc0457b6a04bc19655bcb20501d259cb2d332a903fe8c75aaf6d1f4c8e5df9f5dfa687d1214df1fb1fc40e7157739408f45ad852df05dc114050bfb056b37254ea47f70cfc3cc428cb3c3eb3b190ec21c45c6d090b9df379a83279387c935ebe0853021ba99ba9850baf68ef1675baa30426909729760b61b0486215dfb685218f93ce10bccd46cc82f3557e4c9ead3ad407e733a3adf9539d7f56c5224d750058f73052b8b27bd80d9f36e6084daee5ac58996cc53a91a4e91ff21983f46ef85639067c7d0fdbcebed782301cb47fe0817e4bce8ebe80338448a50fca92fcb53ba33e306465b5253109567f1e4fbda090e6075a12c4d01f537d1edb28aa89862bfd0dbc11297989be88351bc89b3aff6eb4613e0981f390c2c8d50ae5ce69a8e8417b4cfa7455cd500be9aadd7997bc6f5032ff9de82c2c86bcbb5871aed2c9b96e65763d68fa3a0d25021c2859a9334cab72251b94c29443f2cbdf7ce623a81c341b077c6cd215f2e45692833411e77ae308d108fe8ef408329ebde8b7ac60dec24324c9ebcc33666b71651f6f597454b72d1e8c6f409d5719528de096766d0fa4a52f1eced25e4e687748f8d894f2f940c98e8fdd860e4e5b8407f72cbc4595a2a08e529201d5d28f6f049d32de841d3fe4a6094674f6ba35763ed162f1dca847951bfdb072e43200b9cba5729dbff12c999d642b928996e68a53d158fc3af8687afee37b11526a073af3f42cff3a6609bf60ca9d5afbafb7d7e472ec79b358f95a7844d0a4196494e033cdc86d0c6a047191409689df401b54a0d4eb1a0a1e72742120d565207027c968767f86527f0b77d70a0b31ecefa7ac9b488895e23ecf58d94bf40a1821035097022c77bffca30e14e5137538b58a8a00f8e5a77f2dfb91971be0eb8294f0024499b9a2c7b7493c8c88df4d1573d38d7b3d5f422bdb6a27b827ee6d5881aad508db59b6892582afa38b7192141fd5e5aa40539a7662d93cd3440876cb9e89b1b8e02f4732f624601a063e43e01f5df7889554ce415ccaa2bb2f6d5a254b274b8b44f5065a57f19ad183bec1a997f4a6779f0a3cb93abce371f388ad33597657c528ce1a976cfc7905c5fab19bb1435bd5097b2e2f9170996e748ed0c0d6927620169d97e6b2f9e83588f059305daa4f89a056ac1b06aa0711a940d91c10551889452ea79f827ba1fd178c3570d318ff80adbaf97beb5b6f5d6220159a4abf5b098aae401f56d344517ea7323380cca80830b5ca6651a1dd3c8e4d18d72b125c0645f25d2a1740c97ccd5e82d6714cfb8af1755c312e5c6c0b4db760d284cac42ba452c7bffc9a8fcb75a929d71e96cae2b90e4d79bc8f1f6147ccdeaa14c50e5f5d55ae07437bd20aa414e106f07e1d03ca56c60ced2a9b2c5d4deed10fff0facf2e8eb8c5e0ccf171a3de17d21adc731ac53df04df4c8b4c14fdc0f3c9613f7ac7f010f59db4b23e1a81eb652cda150c68a69adc235f3c2ee1d28ff92ccd8f87d3ca8c6cff798ade09638e5a855cc01757f16d057f45925fa9f6d9f10a5dd3931bdf90eebb7a54a9598941217543b89867006268abf412a455e4687ed753d9db22afaf1c2aa27fa93f9f39ec4c55cc90e5cb79246b25fa2e161288122a7c62a7cdb26c94ca99b7e26c2305be8184e0cee35c589586124629e00630bbbce768bb681cec731ad38df9fe76514c3ab4a7c7907f99428b9f3c4236ebfd8f7147e8de9cc476df53b2de7c082d8066a407caab32bc0d2ca641a2420a4f24f410a5da23c616b146ca027a62cbed65f612f890a15aa9c735d980a6584736e0bea582b614746b067816c36efec6ee5c606632b74e4f17d3eb7580b6ad0d04759c1fcb803722f4ce64efd83d8068901d2cb65b2a51f78d70c669a0e9c6fadd8bd75ea06e8e53fc36582fb4c3e1fe26e91400d92bcf3f9b84afdd1d36a25f07b6dc75087100e2c658a1412b73e2ff48903ee8b06bdc565227bb4cfd5c5895e42d48addb0a3a7da4f524f55dabd4892569d00f46511cbac4bb45500c4a09589c7117bb0b36a62e7b18c241465e26ac111c7c274ee0432ff9e1e7c6d70763f0f5e75dce5895311a9315cd40dbf966627e15ee7dcbf46da34b27822172dc327c3a209efe230f06a9d8fbae345760bd3c1d633a42b366b9d64a29381808c8a5590260531ce93f9595cd5f162f00c3212d7e3899c3a0a6b27ecd2d43e8a5ace0226475a71dd92c5dd74a4208430f5436553029b9bca74225f6a37b5eaf36b1979c17e29b2639ed57ad582bc81a3a4391104d0141f7d0fd15e6efe43cf1e94f8fda66b4adbc88f4a3ba2540cd5f12e5393621395b184569bfcdca8a20eeca97ccf1b90c73cd5c56a3f9a8dacbce0c395e5e1253215167d09e34e588511d005ba30f3535de1fa0c1fde6e060b139ec245d3ef0bf53de4bd8739e964b645754c4c86002102b186877755aeccec7440d16e5d1c175a1c3170e4dc7219942c88aacf82008c5963e39c250b24b6e9b7b58c602f194bd1373df1d627a8ca90b986df6363cb5b3f4258f2ff5cd0faebb099f22e238362401920e1744b0f5daf00ad962e3ce2e843bced927e01da9ab34aaf9b2ed6a73c7e855349ba37cfb20b355996d954a9bf25c761b741f81ae055ecf53a7d4db9b1d9877b0208144b6952f7803f1195e1a75e1256128a0a2bddb82f959a79aa2147914c3516a34784c445f411b00701333498092220bfdb096617e8187d45efe8015bcbf6e8331285a43ad3579cf145dac432a7f2bcea89caa08278b75e48d35ea1de4149af44b455e79b74c19c8756cb78bd16222f3adee2f65e7a9c0faea77ae0397ee810c5273ea865809f3e8617dbe08127f1e6800d00e2e1b37185e54ba3f87bf990e38b685663aa44b69f301cc268f98e0c70b30883c9975ea00f2232d1842ac28696cf4ca7220fe4bcbdcb720a5252fb87746c5d06e8e0bd044fda733c10bd361f3faced5d804fd423ec1e813acdf1f5383c6aa68ffa6f050eef49f608102290d735a29fd377b6acbc13f7f0ce35ea959bc6108c4e4dcc8f8423ee9ea2c3393cc2da167b6cb5a6441d79a7acd5b58902ab78e2540b94d364705b0d98bb7b56085567d0748e531522d8c783eb3b9ecdc5575b0c06a7de3310da6e2ca51e14c31be2aa7b0633b90d38e409654e2191e8ee8512db134fe4f1c75fca9687c7003cc2452e2867d59c2cf5cd032a0cc233c004bd0741a246d2e2e2d8c0db72f32a71069382cb53bf0422a28b27322eca7d71c8f3be555567c5349f81384e911bff871cc96dbd67f67b35100ff1e3dc23e4c9c721efd1b1bb17e538695e85980b79979cdb3f38054c99bf97ee0826bc928dcbbf80c3930dd5b54a501ce8dd6d86af2e8d97d9decd5164af66bffae857ae772dcfa79d1c10bfc18aa0c5b0f4da2a5dcc3d2fd633ab341a041ffba59ba00df3d978eacb14c3b2e321063f2c2d528a2865f176d71e67c05256c58ad1b277b5257076a5eac432ebca5ed5cc3f2fc3a3f9e3581c2c6cd40d8c4dff5073284c1c53c25a63129a9e3d8be5807d8d667f347fa1dd62e64d879db127a24d4efac6548157040388a93957b62d906724812e9122f1bb2e01d51de14936913483a88731b3e9df495f267bc24902e63fd5f2d2f80c98ed68607c18759360ec9190b8f07357e8fa8b63ecfe15cd0457022071de938d4de405519f428d019e8ed508330458bdf5e553a5f9f5ee452790a6cc7a5691233d1439acfdaa55357ddcdff527500f576767343fef2699f9324d1bc6ca0814ac8a4e9fe83a2c4ac8a0e2e97a23ebfc52c9fd2d3f947e864e40df01bce5cfe1b7c7eb69335f85c6f93bc4e2c6be80c49c5a3252255230f8814103e46493e706d97ec6d422580251989a799cd2106e7ea78bbb8e13b7667b507a08def75f51dfccaa0571b275b4614d98de61b736eea27a856fca9df6831b220147f799174938c33db70e01e93aa8c82811d0a3d3567e5ba006be2465f26bc542e6a2084fc97ba79b3a4fb74e1b1226d01f0d968a644015edad32c9fd84cb467df322c0de1f183d1d7b2a151faa13502908b60b8597f851ae699050dd6783fb45c8c7395e92951490faf0633d83f50d61051ec9f19f11afd847e6c6c7a0a36a02c145a3b0120cdbb3ab94f16b9228e4b82eb9b27fda1d389862d645a21fbf5770439b9d7603eb49bc9c42c9d2abe2ea0666cc74e5dc06bbcbb20f0bf65ee9d51e154127980c4509d47197147eb485453496bc5e5b12f2f884b23ff4739497f3f0019fd2c0ff112b96aff86fde5a93f3be4197681f686c0f8acfa5896a7147429ed2feceddcc188294d5dc83485f2f4a3861aed2f109af95d7adb2fb52730d3732937717a48673fbd2480ce4726c7283c6916130972e0fd21a3a5ddb45c46c238e298b500a77df4d490e258dfa7f0f77a2936ef85af4ea1b368c17e080ab1a50e43b707acb434bc66555eb57e0e20dbe991863e6884da5f6c1998dc1e68d8f953c6742a3e72255b588d2306107b299398ee20992f0fc82b286b897067e7e87a8f1c592311f1fab0585e95cb4b7f62c33f631eda269a27a6803f10aaef15ed43234c612357c6c7fcf25a8df7d1e4f93125b8448ef4bd749f6ec2051c10d9023bb88505368c9cc8251a69019aaca268af4daa203a7f45a6138a6edf23344329950443ed233140417943634821c307fff42a4009164444f7a1fcc867dee2df662e91420d00f315dab1f7c9d179a294831ce8069c99e2185e667ae386e86027da4657954a817373e759b108b601970482fcc47001f80f4d8eda8cdce0df021495f32446ea57e01cdf6ddfe798b6925968192678dc1982b9fca2a61c6656a8c3e389a1feb8bdbada305f5488074094d9ff5d3611d8e3ab5201772d350b90069b33cec043a55ed219543ef61f79b964fc2d3aa4cefe38e8927beb743262c40821009c3c311d59081813bbdb2f657737876ffbd4fb3b89f1f9bc0940328812bc501f3e08117431cba3a9454189eca227804c45d2a19869ef52c620119d31a0ac536194834d5e23afb780b5c64306760e3ce4f8baeaeeaac0b158f67c182a76a37b37a6f280044b036df2a0bdafd0f28b22a207c400e184c67de8cf0e982239576af77b87c0fd51fa40fe994b31e17bbbfc7df505b5d686192434866b4f21ab300095e92a622c2123ed0a8689bfdab2d4ca979650b1bb56f1a1bd2f8f8765528f742e30beb375afb453f48d133b27f2f7dae62d6723e493e0e54ddf8bfbc55f1a116aeece8b274e2ba1732fe902baa91d9aa5b9546a588a785025020cacb5660e99351d30c3391c0e605a34eba2a1a83cd0e2eae51d2a6b2177c39520929b13cdbd15b3e1bbaab41d40b95cb2e0d1a9c2920252af0fb066d6284bfd324c9d11b2b2f5ad9ac22ffd7d2f502195d67b398a1c24557956a1f318689d4dff5d22cc6af22f5e0ace62f8ff4de75cb2b6ffb104dd086164527fa29aaf0c81f0c32d69de19b85f3da35990691c50efb7036929529028c3a1bfaaceb757209032af9a9475ef3c52d485cb656c42f7e217ab5de559668a5eec3b862ea95879c28c6942e4b696b8005e078e26aecdf9bcc89a5d1dcd773159400e5cf723ce5300d8bcd9af868405deedd83e8852c999073522b3980958cdf81269b2c889d09cff8d89aa9a7664932774ea51d3decf3c3c87d51efd55c3ca199a0d00db574d87fb73ec5254d9028763896dbff325642003727536de11be637b26be2b76d7b477a0006595778b80bb99eeff1923fda847ed461b68db3a80e356f9973c41bf61aaa8fa9e8bc04d5fc4456e2c6f581aa6eccfaae3687e53a35633ad09b354c28b2a1dd569fba2f81c247dfd0e2e90b3e7abede897f6aafed3bddbac86550c2dbe348126f23294d7a50289c6d5e4775d20de0f7ddb6ac5941607a53d19dd862ddeada460c49ee0821c8e97d3f1997aae3af13c38bd788709cc390e84af087047d62056c769409fffe08be4c23404db7b64b5570e8db416fc383506b2b58da3312533a31ad8cbe763ad1296dc9235e21d185d0573cb88f906563396f7cdd89e1744e871ae3ddc638236e5cec335f27a98020bda64425c11090026d5cdca353c4819c838aff4bb6cbacfc9c903a4ee7e55170b390b03a5c753aa7dfa7fb48e0ef9a7727e61b75fadcea39efa409d43c4498e06a76a6d9475db995a9d82093e9c323599e200764204098e35139a0716961ec8714df3de7c7f34bf9fa07a36ff7df065666edc3f249b994a8389b52ac4f9ba8ccc3d50357d65f905c74f774414e39318b4e8f08fdfcba5fa923dc47c467f26b1997387805a3700ab2e5cf937fe8c9139a26bbc062b65aa1887656fbba240898a192cb90624457a4ecb51895a395902335314d8adaea02a40bf142bda98319d7355f6d35ece2742828757e266898c359bcaba037945fd4d44a6b9b3168bf5292285fa0c378e923c7615b8d81575e28b3e9fc3050ab043c4572b7b9cf8262be7942cbb68b5104ea96c0b59afaa92a7cb28d5ccc8d69bbfd2d12cb5b6181315fffc6c954501df9af0b6e84b67574cebada5b06085f59b2d765ff91f8897da7b9da88b1a7cc9aa17384fecaa4eb26c8d935c749d6672841edecc30c9b3809ff2e870eeba52c2b9367c069558cec5a643fd1ee0817fd596e5b649f9ccb38650111c3c621e7902c3d9b6393f33e18f2b9d63d9a78bbaac988b493179f69a4071643134db7288d24881577636dbda5849b221046339eaefd7ea3e418bbb96b724c923dbeaa5eaaba3fc3e66eb1dfdc1fd81a6240f1807b49dea2e3a68157d0595aabcd1c6645e682d1b9013000d89c5465f051d577b937c0a386c51c442bec1ac8ba91c523c530982a16fcce159ed6954c0e7e8b91f73ef74893ddfd41ff2b82c5501df4dd1bee06be2e6f7a942d0fe775ce8d7021369e98b6ff285690d1cbe160174857faae7707fee6d64f31e9e1daa962a975a3599ac5060bc2aa5c8a60781a47adb5239a9908d2b112d465627ae16463fddbab36284941426f7a6d5053270e8b2ba2038d138ad337e7fba73b1be7554f3cb137bb739a7b2d134e02505e792d336640ce4d1cc75ba57cc46ad99a42a2071a5ce0bd59af065f3a59756a11f943284319d242db30ac5bde5b691ce0f348fed0384486ed9e94ca91aa40ef51d7bf1270ff7db9ecb8bb1f7cd9fe6d6c323f5d9c45367af613805d6bec4831d3e1788ada038f3de1eb72e8ac868cfdcf4b20e63edf867b6f8f9f0c3db58f85a5c9eff2347a5837bfdb601d25b7302c2ed28aab7d8d776a057b4eef2268affaa6b9bfdc770d58347dda326e833150cac31a850ea0df2bf19c0b968a57a5c2e2093d3c625ce487b18804796ac727b4f85c0c839bf658a934caf39f22c04a991bd67575fae4d520fb429b81a8d4bf3e35db3de77b4e6d38485be6dcc362045ddb69a31cabd1adbeb97e2f5599f32b7859b46419327f8d3848cbe888b8e76c07aaf1f802572a811811069c1d1f5053761772138c3fe243b9d1cf75774a1dbe4b1af2c32c24bb12bfc816d0819a7a0ae1cf32c84b25d3606a24cc6f51047711d6c6c4e2b299924793d3de69c06ae7db1472264bf1e83337b59c5ee3ae208a300213118bec2283abe6ae032193cb6e60a675135d11e9e9e8105cd399b67891f56b305b609b1aa505787e1e012593cb27c8e2d3b583555cc3e3e5ae7b2d0fea3bfbf474da135ed3fcbd7e3b74a5911e3155cdd4521b11fbab832f24c31f4897604d1f03fc9bad2dcc31635c1d423b6cf3819c9815aa1bb59c2722a2fe8df8be529ec106597acc94078c7af48291d41df675f733b269e48130dcd545e3c7bc293493ad4b6d6f68317025ff6d89b8907cf94f35d0ed230ed83fcddc60ef5e6fc78988e5f542934deed8edcda2bdd4ef3baf56bd2c2db43f368d76cefadcda2d29fc454afd68d150fb1aabda656f7533ec0258da1953bc949c818de24de4991306a839f6af397da84b1a721cfa9b2dee88f27822fdeea62311f9b5d348ce86b6b7fe9cf92971b81f14da8b599aa8888aecf6f7ba50bb50d71c1f54720ed78e7cbb362575df13a6ae53a1382ef2eceb2457fca36d226cf38b4c5b0d4875600114354c21631aa5a386462f03e6a10d2f3beeea09bc92cd2bf8b04dca6c887443b4699127b974ad028ff0ff9543bd26f58339bf9ada5832356c5fdb4b360618814f43cfb4ee5d91fca398a0441f4fc610b7a3324cc43c32b4daf24aa5bbe06c4689cff55e5f99b7daa64a14bbd8d2b67c2ffdf375659cb8aaef05712d3ebfa42a19c25c7d71c0ff8c93544885f4b899b316fb6fed32ea626f33baecb8697bc3f63bf09368e4bd88285dcb9860e2e5517038b529a2602c2fc25835742f06a531f2f8d3c3b32b50c70848046589d5323e21b528a33c517b7a58de2131ce24fe1e3f4c0b9e01478cec8cd51bb476cceb439888b3d581c6844f7a1d292da90bfeb470bad9dd5618599cab1a6fe9b56152a9c1419a3a7dd00a058bb880ce3d224e19c56ca2580cd5f3f3d6872389d8c31ac06b578763b377622c971d5a6428ea4e40adb8729ec2cf69e0eabd9f0ca63eec5f693d0423dfa4f5cf417a70c34e9f908f8ce0762af9831fc51f090ec70314e53099bc0245fbd6c101ab0f80f211735b50daee81232b7e4c723b80ded944ff16c69b1755d79aced9b9294ecbe6587629f20ec888ac93757d6b7a934239d4a1038842353502d273e004f3819650862e291d07f326c5fbae107eeb0bb3c06a44256f0161be7031e292820823a977ab81bd94c62219ba338abaa737196b5743cc688eed30714996b43c34080cd3278a1efde9c43fc3251aee024d1011e824ff7fad6d12c8b1b6d0603f9bb7f463ad37c533fe2d8aa9805221c3bfbdf070d52b3c493428fb47ff62b19127648eb1e172dd5d55c071f8410d80ae15888687ee9d0384a3f4d4df2edb313bf672899347ff97af3833ebfb8f8369c64ef4657a33116c1ce1e096884e89b0dcdfb99ce83797700ea94e5ea68008b2e2cb0f6fd719c143bf118e99382d94ce24d77b60111e474695211fc30eead1e02e1544bef34debf094c3726046b8aef55a97227073c44368142aef27efc2da82aaf06c4f63476e78b328cbcaeee3eff0d7a20fcff6b08de58cb9f0a4251381e6a9c82a7c83edf5cca821668bd1238fd489911efe8991f325b468c0b53374c1a55462abc2f24b6804f41719f8727387d671afb2889bb8455377742c0cbf21327f25e462ef145784558ca8e4d0baee623825eb6911a4a9cc617490e932139a1f206c2c6fd98fc0e44b581e14d674fab0684f14cf0f9ab554977d891fc29ece6caccd779f5ecedbd874b5bce1e3d2fce8102b6aa5817ca7604818b8f77a71e41803c0575a318192c5e3f4d969d1e6a5bbda0d7aa7cbcb8055230143975ac3848cf810f9db571b690051d9c9f67f2ac81456d94dd3e60c46b1c9a6312f986ebd10025dba86f1539356421c98ef5ef9c04f8f89ea9dc047db9ea7aa4e0c8d6f7111189a1240f4a318b2a0eb92f32713716093ab1ea8658bf078f262dad0b869590de78fc71319cc088f5a66a5ecbd1dc5f255e0a0ce2768fe0d775b0d426f239455c15874971c50c03237228222e91ecec22b5f7eaf717352b768d26a534006c7fe25e45fc8ccf73cd7caa79d9821046aaf516fd9fe62c52b95b23ae359d6a0cea51b77a35d1b4b823c90f2f840b81d7c49c7f0f744a27ce78164bac690d923ffe90f28a1c8901b0e5288f4bbcd769eb5e119d3a1df09393d8eb5ac875a63e6f4be6664ca5d09fc5cea6410a02b3d20ee569b9dcf60f7a18b18be204de7aee3f4f76669b65f9bc37eaa2fa12aef3a1d0c27e6e9a8a40ddc34d17b56552b0038ddaebbcc88e6e10cbba79272b73e22787d847ee3d2382b190b3eea48284f2da6a56854f3a7ddadb745656444530319f23f72d6cd0eef2f08cd8efa1e9a03d2157019089cc3914b650324dd4b666a3cb67928f97d28b5ed5eb2d4fdb79d63f70e296a01552b8920ff5db6e7b12e0242cea143a8dd340c4a5508efa427e74de63fb8e1a40175a06230294a54120bfb20ab3880c36a20b92629debe11335e60edfbc0d3535973a50ee696da4fff9457b5a110056ab68d88219cc17395d760ff1eb7f23629687cea11d53b3c677b8b15fe68267e62e703409c728b03a0c0d5126f8ee9c48f0e008ccff323f588818d99ee9c098afd356d16c7f63b1f15d30e6323be9e055b7f6e62c7fdf652ed7ca4e7ca3ed53bd46fe54d9974e736b3a47bbf3c296928dfc16eda29f12c7188cc9e72ad32b8b37a77d8c8bcbdb25e79002c595ad58dcc5d31652d91925221ae483a8c24bf0d107dc170b472a6df26016322fb9b6c601b00ff49b4ede85de7dbb71ec0cc120639c3d955a26088e9b89182760a33bdf3d580adcf4ef0bd127c3156a8a36cbbde48c6dabaab06c2b1cb49c34778a5395a389b94d918e3207787fc5582e45d2dab92d8f7bc775833bc401ec07f0f417776d44d5e42e8ede65785e05911a0fe42ad891ff5113f94c07b7c93c864c8e0b05bc6028df24c3924dd0590fcad4d7db63d0bc5af0627fcd4aecb075efc0bf1433ee4b8f3460d40b62ebcc049afc590a744cd5391cd8d87dbcb671db83d119333f4cb5b38c758e4bc280d0040452f951c42f3281e1d22fbc67dec524114bedaa405f092582c2b8b182010525823df157be60b636b1ee0178a3050211732b665614d067222b79995f1b63311f8fa7003103bf9bca1ab4dbaa0adb1068db281f559297a9fbad6040d32c1f858fcc5a5b48d5a85517ede8fd487c88cbdab8cf5491e3bc4b7171f683c0b39756236e1d05784b9a55ad5ee33273e1b2880a9d5473464b8c9ee868f423e6f43919debf6dda9effeae9d0961c57dcad24da078d379be884ba5322529d13b954430fe52b9399fa96cfb5b96848bfdb68ba1eb39df014e07847b5d69d595377804b8e8196d272af3d7c54d894208c68e3e254dc317dfdb02d73c56989c64c257e3a765df434d71f0313b63033c12bc633cbfdc21e480b7c12f775a502c71e7351e32c8bb86819828a004c6b938a4d94a3bd31512462ccd2c10990dfead16f15a2309c0b49022b50925ccdb77e5bbc5dd72403e88fcc8135441485468ed5365d0f6d2e2469983a661d87dd898e2e1c8b8c8561f29764099e813ae7424cf35bee6a6f415e34e3852e6af47c59022356cfd0c9512d193d89fc030db6e1e17aaefb1d0a7e570414933aed799bf63981332d146420c0e3b346256f9a402167f74c186348cc2c41c9b42b79aa9992b36bae0dc1034bea3b8e35e48789e621f1d4061825a27532cb312fe60db38f4953b76c8cd05542505f3ae7fd8e10e26221a075602470483ead73fbbee1ba45f64d44148d43cb6d4e16c030c6ca407a659b84a2b2b3f65bdb109998108177910ed06e69426d65219941730190e09fc93d4a9d5bf639db9cd2bed915f3ce8173a9af2fb6f7d97b4a1b1f55816ec637c42f7b60221d6b549347397168d78c42030675e670d95982ead7f8d4c25d9d4f6cafab4c140f2caca599ba835b59142b005689724dfb0ff6ae6792ba52ccb979ff568ccd4a1eb11cdf028360370bf33ac7f419f836013ce64f5ccf4dff25be5e28aa00f004b38c735009185fe4c1f0ca3d5acaa2a4387bc1e85dcc9531d48630280586125ef14533786c39684cd30dbffeaf7ef7991d927a9f1bff831a1f424c04215ab863dfe7d795fa07e195657d4946083c52a735a0d4913c0bffa0fe53b3942b363a8ba39b563227b91926c5b67be1c461044425f17d2a3de9f0f2c45d851b5e3658e574d5fbbea9d5d6b90e9e8a0ae4a02be87c2b9858b4a7f4d5d63f95489a8164d3a844008a6c475cf9911cb423f2c296f485f5e09fbec9bd8f030aea955d9db28d06eef704d9f0b23d3c76585999ecc1cc498a14598df4d848ac3e5bf2ba3e2bd4e5d59019e535a14f0634f3e30e59cc869d29e402cf19980d1d6cf961c0436ea3ee9568d4cf9e07f9c2145f3ef5bb1954df64c45302494372d46cd7e57512574896e50a1661d6db19ca2a3fa17eed6deddf1eae9503092845a96f0f8d7b1faa6c289f2328e40f5cb5f696f024d9f2e58ee347cc77dfe2dafbc6d0ed6b29f01601f9ff20302584362745fed3f95051c56713455f4642e18d490135ef7346bdd459356e3e8f04b6f8a8650cbc9f4c7839360ebb7934992baa595f8a95230ba2f24151a19666a7729f66d6cd8deee265a116855800cfdb1aaae4c2e101c06028fa5eb999e545b2dd5d959c74d1b477081e9def4e0b86245ec7fb5ea5237370fcde531483981693173ac57d9a6defb8ef82e7b4d2f214ebd03754607b95286818d9678db7d772d3c5c0a49fe096499775935f769c013bcbcd8f7f1827e4d014b2cb085d0f4ea3d7acb44dcf6404fb3baa7d98f55d52b5f98686e3affd4cb9936f4e8b9e54e70bc0d3968426641b088f96ea6dca2979938dc483cb242741a4f5ca56c909ea978978884c32c5645bf946831ed03e5253d7ec6f981c8b7bac34dad4b8e02c1e3c08174ef3913b273d31452262fb638b0665fc908846eec5d78d36d656e56d901a7b3cee7e9e3c918565a94486fadb7a4cd510d03e4f411ab2d18b459cf04b6a217e787a2f203d16eb41520b547a605ec9070ea37157b7f5793f7ed3e92efea8305a3038662f861f691a57c59dce9c435521f714bb76e2ee1429857f195174e169dd79b649825f45ebddb41f204892055be93e398c0e33d7f4ad88779f25d7b22a6001b87a1d26dffa9979c59485a45ad14203765a2016ea2f5d8e4c2caa1527dc57f44875e058ede6f0ccf2583a5e4ad7f1998e1d05ca705f59d2aa22eb975cc90a44bfa78db7f4b9486b1975329b35f50fde5fd58d7724e4856e82bc758cb5aa6e458eb73bb4e061d0c2ad9a4cfea006f08300b6e8e7d3d8b8f025b47fb00fd3a1a0826611869f8af3fb98bf3f7c6b192cc402e196e1b6f88462f07db3e0206d03bec50058a257dc185eea625b70931126f0fa2743fc2ab33827b2b0efc854b03e408d874aa3b3a1389efa60fce78a85f254bca1c698bc86de8c77ce68e803aab2c54a77381458805e2f70a01615c898133d915c124b517348644502968aefbb0d43fb52145466b7dd2d323f2ab02791a294eb1fe9f23691dd7fcd107020ea85a64275dbede1f1b61be63322d083b4dd2597409ef59d99a46f2498babc0648df707e2898cf11b1ced461fd68c99dc183296cc1d141282b910a55c395d1cb582202538b0211964e763b58fcba9e23f4845fa06a38cc8edb0522eb7f33fb0cf4cfe426699a9b38b23daafd2fa9150c1cd913f8af5b9a28b8ce03eb3a2da6dbf1248ba9cfde8d3046d210918d6e287425e3960f2dbc102f3478adefbc5e94258e2ebc580ee08e6a7ae13db280861dea8bd55818e1996c35f2ff4d60f8b33f4b34493f9aa117529310ac100db7267f55c1be20aded06b562cd0ea4fc33358cda9e275d726ab5661c15042749f7dc7dacb7ec38b1cb6cc715e79145bbdccd80a5b392c3bf57776045b0b320af5b3f46ee643c288b011ac1d194c2247fa33ce90ab5e74938b588fc468130e83f2b39510a2a7869db992292b29dce2b4496f0a96c0d51a7152cb5b7c34bb03f1c26cd4b67964ea668bf1eb917b60d892ce529e68867379c52637e8726f86e8fe21ad07b5e85e31862b623dc0a27334568177fd552c533e47d805f469ad7261bbe001905bef61fbacd5d653a653645b02ad813a0ea4da6cd8ab8e6b1ce6cf7a2966e4018b94eb000a77126f28e91551d271b7158f26cfca74dad044a9f6a832fe2c39f7176009ed9e338bb6aee270b1a142e7d7c0ad792b2410fe48e61ebcb7a0401e228fe044e6ffe11c01bd5f631685679e337478db4aa8eed494bd81035fb9c3097b8225a098bd8a8bf0d7a8710d5c7cafa65d8bf22a2288cbd987a8cd91596b38a40945a2d242eed50a80a6d6fe88f00816002b0e25b7e809aaccff65360d026cdc88d873073fff57bbb66834a86586db9d35663321528a3459f1554d55f4e4f91a237b0b48cf64bd65549fd40c7dd810d02a8991a5f9df063c266002fd5985292f75506a8577f7c3f4712179fd0dcf11db2da706b0d7cabd5051375aa61be9e2fc587ce82da647ce8e4b69bc99db2cdd52a819b48bfc26529accd6689b9a2aad3079a89177ec17465a4d15026ddb036e96f7f9a2141a3d83b88d9df922dff6fc046f8191e94dddce7b6e67f708e33b720b9da5781bf152b186b3d297720b0fd3f2fc38b0f6094448b899c5a33f110f51aa6c423bdbee1988cb851a27a93ac9aa67ba03dfba0aaaa064a63a095f518f8194f53726b3843a7943aa040c546e8fb8da2d9ad42db4a3778d4ff25410012031af5dae8e9618d10690b17ee4403b5e78dbe3bbb95c27749080aac29fbc73f8397c4e16d8e408f1ddd5255ed09d7c478cf38aa6e57c2d991422d99d3e99c8a369ab5ea3789b221cc113f4da49aa72f2ea757da1aae9e63fa6b71720a3bd4a81171e99cc0d1415cc427c60108e7a58165e956b75325f0aca4213d107cce45c450b575fcd80c0e2ee4f5cb57f958faa02515c09ef6a04f951f54717b545bcc477b390ea233b970a628a58838c9c450e18ef5fbd6002162c1d5952bab1bae203f3abf31b126b212a7c730b99ff3b5b084c92484e1e7444892eec5e392314f84e6894a72122585d2486664ecf83111377a9818976012517fbb63198f65b2a619dda36b8b39ec7e66d3c63b76629f8b112ccffe116e68fe6429ba4a6684b05a13e21fe0851147117fb4ea815fae5d05b0d67a9817930823f5af9794c8008ad695c68bcd0f1d8821171e11df7f810db9049bf23eab84268c1e19e33c71b4c8ac6d2aec1571a8036e6a60e908034e49ccd842f1be8e606aac90b8d02e12cf75602d24842f21569754a3862b92248035c0f42a3913d0169177e297bf9db298a9e2ad05d0d7167318d8be75d1df68ef1253f361e7dd71adc640881550fa17caace526a699382293bf4b5d0f3b2c7e59568c57634b6a861d5b7145cb8f1dce6a3d7f8f7bb3cbe2e2e1e20fc0e5f20b1bc1ac8b0903684d24c43e54d78a7f43ce25c2dbdf60f542e7660cbb2093fd17d9674d53d70a7907d3ef48c881a03fc6c7a7561da94a89a2fc2e64c1336c3ce193738fd0024402f372e2e23b959e51782a0fcfb525e7df5b384b730ca5a996432178a9a9592f46f729f97024ba44ff6372f7218c6f576cdd374c8087d2c670c5c9359507fb5f36ccb9bf664229e4646bd256b11bf4dd695a00d239a6bd95471e76a59fab8197627792f1deed69e8459772492b8d52c6b17a30f19da0683676a0e4088943661dcbf77ece5f7362dfc59f4f2375e30b01a7c3afb88adc1bdabf5d21e495bacc21d23bd6840b1648a2abdbcf9730a5cc6b5d4f59a329c2b11307e61f00ba63385868733bb4d622e293adf5fc8d489d9b41f13bf771bea797acff6e606863e3488c65286038d675b2ff5efea90a02f3090c4b2d36003c9ffeacb9392937a364fbe4f4307e017b687f8879bf4a7a56fd1c65f8914e9e893bac5382dea31137ee6ab04f712f8eefacf9213198b099bb19a95127a2be89d4603643594af5bc8bc42e83629657456a7003f10899dd210004d93ca0463fa6ba3aa94f76454f2d92e47a5f541be81427c32f77fcdecc5f074e425f8ebd0fdc8b84114a61f61b957891922ac1015d1d366bfe3f0452bc88e855308956aa2941bb9141a039243d9b926223510cc5017e4bf42e34f19b6664990c8cb7ab4eda78f566acfe6dbaf5e09fe4ec760b1308ea240e8098bf73d4bba4d4e5209bb69e0fa14eece89981eb798269257f4dc9773403ea51c047dc8cc76074a551d70d22ed143c8a99ff6f93a4cea2a751736ed86adfe1716d3a1ae5d60b614de56018d462992ca6441c9ba9d72a866483b88a08e6438b1a7d8de9f18856aaecfafc5541dd16e44f8a7db8d7e2d0b2d0974232fd2470f7cafa0f23c3d909e555a62d7566f72a686d2b61119dd6951d986479e33a08d2051c7147090acca589e871f94273bc7f1d951561f9f9d68af98a0cb9225c9bc6f81b9fe80866dab3b7fb1957d6a45de65b04b9ee00f06d707c4cd14716f23b9460e045b868828f8e7ac094734da936ff82588d09c8a46777f7196f4c06906e05a53597b808cad75528612b0869bf1408a784623be76eb58adc81a086d9cd034c9a020f9683b6e28efc623bece6b6d9a29fcb45bc89e6aa1697a8a16f15f619dbba2f477e84c0025d42de8951748dbca7e34773898a89ce47c1babbf85999f2ec99c233812da9ef0354be1a9c59f52bc942827ac35dd3c0db207577aa3d6f488636f2f790f34a671dfafe220bb02ac986fbad3e7c2716ad50ce1fce2767dcb44e3154face4be197087cc928c32800a7e23c87935526a2bcf26b51b5a2021166f05ccef76ba6b1fa625e9ecefc9984e435d208fa2acbee6fcf450caf2d849cb15ec512b8554b18160a9bec01578bba04c8fe07d7a53a0e8f9775133b1562a62e4f3d5582ca04c2dafb367333766c2ea6f34a7209146a0e1b2180e13190acd59d0f0e37cdd84a6b625378f3bf2e7c95ce9da20495d59fa65aeb38f3b0c0f3db0d5a359d1676077d22b1ffe24900b09e85fe9da3ce3207b6de5946513f9ea0f6ec37bc8460bd923dadd60eb0d9c7c08c7f94ff3326fc44cd32be64f1259727e1a18f3dcfe5aef594d7d17bc6cc9b2b1f2809730d71f3b76d9285265477f6fec42ee1c5cceef79a84d718e33862aa735a997004acc40c0ffa3dfdd8fd3b6e457f7f83208c3ea742620d75a6df8b689b7f0fca4ab2675887eb8c73afb6db103aa4f9036459a47cfc2b0a2e65d312231fd0de1ccceedb1014185751355dc45344de2cdf6a647ff9f800c4f0f00f5013f240c4aea529e082874dad2148e817ec4bc4eb90daa6ffaecb6e51ebac8db4432803b88ec5faa41b9616be7b520caf71bfcb484a6b9edd36d6612ed7f73d0f8e152aebadd7ef5465156503100c1c08e8c0438d91e4c506bf4da0c8dd2bd93611a06bc63fc01575eb9d5858ddabe7a5f1a428433d5505b47651972bb3d30365f56ea800dc3491e34f4826bb09852a713d5284550b66185c8690e879ea5a7a324cf4359fe8fb08ab5d088452ed18109819cc5ada85b2b772b460dafd6a4ea153e5c9c6afddeaa50bb0d5fbc13bc48f4976aeef0fecc46905b7df1f61e6c399be7dde51a2747b61884587f5c0e9c3ad3a17c5fc7fa365064952c21887dc57098b32bf696d1ae05fffeaffc1425f4d9a4cff5a3f0d5285e39d948c13a041d0b4581c14a4a81677516e6f6f6ba008c7f7718d521ab182b1d882d28a80021b1042ec3a4cf6ced2336e1a8be9385c484c5f26758023e66c1bb82b100fe757e4c6ab1153c9a7114fac9d826957c91760012d01c27f973592983897f470656742b24822513269660e362e9395fe25ff81d0b5dd7dd1d15716871b25f19400708ef602ae6c4a658dc6c6ef4108aac528f4b74fc97d524760c7b694a4a17e70c7dbfde8318866ffc76891e4e5a1dca32fd3133a12d4045ec77b6964eba60e1917500333e210a460859b80b3f3ef891ad28ba0058f4f3035009b070f1cf9552e3a2381b5d2fbcb3c848f1a08429c3bed155ef98bce380eb7d4c3b651a430b5ff5050fd4b9b2860dca1e09decd6760da94eebf1280ed68f3d73f518ee3259a25dcbf7f6d7d22a3f7624a8021408ee5db4cdbde66eaab95f9c1a0f2011b77b5995372aa15a9132ca02766ed16f4b56752376b47135360653a2548573ac584afb23830dc5d909f6bc874dc759b778624b6f5cc2537a841e924f196fccc971e59580dfeb68f5a1a20fae89b06664910d26008172679ec1a2f4294f264277c98649078e29842831931f3e6db3e855f771f3d5be06b88b439b02785519a50129d36b3c386a4835aca8e6716f13e51a16db074b868b40ea9ac3f96bdd7c5be2dd00eda5d670d0d839835b6e231cd436b7d1d43505165780ad211f837836e285241b24b5694893b75249013faea82451024c39b38e5890d2736b76977e830d93dae0168e7010babfd89b1f8d063f36252bc697fe6f10075e7c1245b00ff017a5c952576e86822a6baf6215c1df3fe88ec3810b6b82f5de14339239fddfd4e6d51183ac458b7addd9e9037565a23c4db08af63206d3a3ad5c809c07019488cd773aea4bada10b43073ac355848e7e077c9b0adfba91908a31969998f4769052d4ea77de0325f91a65454ac0a69def5f1c377434276598f8a6bc31f15fa2100a61e7db751cb72d31f2f1ed23c84a99db47edfbfc9beb2af9c087a260e4e84844a58f7edd234b36aac4a52d20b254f4a71f62f92dfd2431b5ccdf15d355e205c5f221d07829e5f10e8bb61498e1ab0ba341eb8abebe6581068abf19064cb401aded6f70f1e605f0438efac69ddf70bfa535838561092c4535c2951bf733c373f4a8325ff0374a28447249a824a93951b53fe1c7dd552c8ed77e0f66f46d8b8c8a56c3b4749f711a0aaeefbe3ec8917241bdd88f3ac078d6b8afe26d4b8cd4ac17f87f862d0ac104721b6c75779b8a8d350b52f8184752ba71dc42196f7cdbea017fe47c5ce7a8bbb8e361cac81c4704162ba00c0a9c34458d008126d8e8cbf8f58b213d7feea99c25bfe9707d0927c7bed16a114fbfe2aef5bb44bd022436de0ffb3e6eca3aaae39a4f3ff018fd0a29c7664b64bc095997cce45da6361300a4e9ac95f5e990c58f142ca35bb546a780a003701a68cdefda7174c5ff81d14b7d523ee7329e18790ef88917e6af41655cdfb91475d3b904ff625f1403807b33f3afed280cb89359f7b2f2719202fca6734396c0fec6e4779e3776b285c9858f784a2562f3a4e548895debf24b3f940db37e63529a2fa0451903289d080244ea515ea11262606c50dbb7361d71513790a4b784b0a5045aa2007862c2478f06881130cce8bf1d7903f1c0f69048a1337c5905485f7120382be5865caac2f517a4051740c5a04215e9ca1cf06f36ff281a4a35ba9ff8b9bb835145fed5006aedd30f6687d7f6834fdc16510bc84a93d236f6411f6c50b31dbfedab0b262ab17ef667e0c87d2d762e0ad84ece3abcbe22b8e80f59b1c7d8461c813874bfe60dd91f9e3a9c6d3a53a9d8d62c8253298776d91a2c53d6f18e121cffdb77db8bb2ba74e036188402f916d1fcca104cf796400c47ece75fd29d2d7c6a62f239d39499b778c394f75b9b2afa292f2528efc30bfd02d2550e574a4a35285b0a97d4a76db9d135b53a0eb0865588503b6867c77c976879ecdfdfc9b8a0dba82918fa3cf577f12a9fec34ba3b593eaa72ee084b2024e6f9e62814156f422392af25af8d204fbec496e896950695ada7b882a992b909b4565788832082c775e42f4f8724f5bad4ab0f6e2a06170951ceae70363d05e36ee55ea536b26e45fae2b55a2859cda9c57969d7e9ec65bd16c70440f7e989c7b1fcb8a677b8daeecc44ee78defea82f6bdfa9d0810e9e08e45d3eb3a5c733d53eb769d74486f83bfb5550f1f0f6557da6a97e53d2a945b239534fa56fc6a7744b4f35a14d32140755ee34864db9ce437707a98ceee3e4829fe4ae5fb6cc5479a00226e52e86a249e6dfe9ee51e77b4ba95618c105c43ca808549f5c05574ea97dd2a7a078a0b5446209c34c3cd5cdac66a39cc81f0e728e0cf61c4c2000f65bdc4829303181d580ef874be2391fc6a85eba8161b2ca44af4502dc2799ee8ff1b3515c20884499bd3eb9307f3e14ffd000be35e72f9b340110eb4b3e0bd91c2ba72d582951a07eee8d4de6df04ce83152b40f49ad28e1bb72d6392feb3239fd0a1e4d457faac705df1a2d600dbac227dc147eb3436665920c1375214ce5edc46c9565ef5c157af8dcdf5fe61bd1ff0399417a2a9257ea3feb8f54498c41b86ec3529559c192d4c4882f551acdd5e970768910703cc7f86024e103ba7046df171ab7cecf45309dc87ff27da9ff94a119c20641fc5f0b9b365745705cb168721c58f6099364588d495fa854535e3da531a641267a960f9229bd272a6bffc65ea105150858236a7cee5c2af1704e3d25ecb5f55947c8ac3f41caa321f65b68eb0e202af9c78dab34446ff87b682e80c4048a4c73f6ce3854af5dac6661be7e758dfe5604fdff20b53b06d3513ae4a4f2356d1fd2cde777604282b8c7e30ae8aa8e46274c0b4113aaa753a33ef6bb0788c018120b48f659a8f3be17e40959674e44f04aee756d4e95c023f4544396b9acec80983095962df659f74f09318a50c6265bdca9b4b16376a2457d8dda66be5c80b139e5170033b935dc26fd1030a0536f72a44bb4d477c2ce83838808032d0d4bbaa19be4b7b86de8eb38a82dc3b9d49de10ebc56926822a72c0f8130400a0f9dab54a947132c28f802406f63294664f558c08eefc552bdf62a3bc04762f94dcba214d93e8ac71f8f7c6beb638cecf9fee10040c864c3cc67ae1ea557da1bf2aee64cfafcd9c840fce26b9c2f80df6f02446ce09c481dd70a6413a4fc54ba3d2414148368f758212f301421a17978f590789acb1ccafd33d23e5a76ea1891b88e5a97ba9dd18f2f419eb27de2945b04fc2fb22a6e2baa6d19d0601165b5d95b51c8000a68e43d92ea0783f9f3abdd62de651770aad2cfa91a3029e3c7006cfb55a72a02cd9a650109d9dc2627bda69b8f05a8ad5c5421837676963ffd66909989e9b15c83818ece208ffebba7a1ca97af9e38a3054e9aa4b0c29fe00a885dac5da539bf73495c70d6c998fced13d2b5a22943a79a107406b1d4abd98326bb9c46a2f14f3d9a132873eb7a9649066ecd0edcf917031b15e444359764126664f03df5b13ab2b4f6c2674903fe5f49cf0c5e0d30d79d6485619bee267df45983a140ad3d1e5be5a30cc3ec3489a782dc81422bcb6fb977315ec8d4e9557ae3bf1fd08f7ef9f1c6df42bee294c2ec72c06e2dbeade71b5c0622455eca4f8ce0db5772e5cb98e35475be311d31afce8c8a3ed67d4eed7b5130696d0cd34321aa36e82e568eb3d3cd15101ce3720d40dbdb0bb7756d04075a06d20064e79cc8e2d15913d6d2e2196662031fd19ee40a38da3091399991df94ecd7a37573f52295b1ceb1a19e593eca8955016a241748d2e344e6297628986837555ef653ab65a2b1179d4a16d0837123702d371f0ce904bd417ec8f94cba7d59fd1ce87822db802a8df1d3c96258c032243079abee317d3247e31c0cec4289e65f2ed2043d614aff56c9deb73fe5fa7b343d68f07337b16999e428412c21e734ccc889eae5e81aef09c7e6d9da84079579a904029368a65903166d9cdbba04a8dc838a4b69f8be43a18f8e4b0c44015c8d6e77fc1b020826bc4e7d90ab689bed87d9de18bc28b237e54cfc5eea689abd36ac02fba59a8d564b28a5aca0f6bab755ad98b8c2a76dad3f2946306ae64ef5412482ccdd96b124ad839caa9725a4bdbbc0d9b11cb60612dad9ee89d1e966b10cbb7b87d9b4b75925034cce852a730db73d6ca1f92c1d85a010722ccd50c9c4d0fdbf5fb7810377c48ea1c9262d9af86c2eebf801f119a06f08e1ca8e2c9e50a3989a5f78e3be22a0cf74961eca2b25fe047b4a6c83bd7643fd8e4eae46c18f31dc92e6b990d01225b77bf83194f58dbd131223ee74feaab7b1cd33aa9604ae7f42bc0fab9422f0b5f64e991c8d6a7bac1351b555e937ae89e9b911cbcd425551e296615dcf38ecff867ef0b7b05dbf73a0ebd63f1da88917ed179fdecc41da6efb7f695a7517030b21b6699a688cbd11bba0128cdc3ec8060c40c6b62b6533ad6fb2243a8c792311c6f17a1216f90a1c48c3d0e608bc5b58161b9a99b330237a44d758d07157b79438c29c658e15aec28e52d8ff181e972fe02e3ed7e49a40b124263e6953bd46047fa156879abd49babaa2aac99460987bc4ba138b702fc7a9de151d78b7f12e766557d1107601bdd15c957b6c9a8abb831ee4bd25be0159c0e39cc10cf2eba7acf96da11d52c0013fe761c86d5c0df110d0f2cebd686f1c1bc901e65eb21a929f10b6bbd6d412549e35eeceeba072118fbf9d304dbdb2df09cc3bf7c0767ac63ebfdbc5e09385ec3502b767b23f5b880a536799f140452c2f48e3d45511fce2fce20a35979d23d74f6c48045da6cdf05ffb09a1fe2712749240b26ef72b3bcdf799a3ecf9f150b1627a46d4af58d47c4ca7f44530dc78c2d6da9461d6c0846541c5fe4e7706755851920553d0696c424f4cd7f594801f9b14e149f67c9f2d24e08f42f2484375d34000b3bf0b04c4c774643f6bd66395f0404293230aec389b9ce2466bed84ff0063760d4268e7c868376b44f2608dc55c9e8ff675ab9e4e1696ec89e0659ca4d49b86adbd53e20670986344e688393905717f0dff960202d3e5a1345742cdc22c162ade95615cd6fc7651b07a36542ad5106c66ae0836688b4d382fec3351408bb43d05e42eceda10f3bde820d00266f780d3f4b510affe4c0bac456bd0d5153bc9009ce23245d15e5c362a1d141affb9e6d811dc52b3e1d5713c5cf66ef9a8aca896b78e77e4aeb4c5cc891c52a5d04595bf0cdd30e052f2d1ebb3ae89d1f612788721c2f4600f1bd79401defd63d0d3e6744b3e3ca38f9496003f92dc678e8b114100488e82f303e2288d40e445314ac704fb3436c2f7a0328805ff8d365b5bf6920fae83a9cf228c24564864f4556ba722508256d383a8a4cf998e09b03f0a0f3069d47645eac79eaaf0eced4993008ba357670cc28b0be2eb9c3bdaba7f676831dd7d0c5d0ad9a9dfa7c2b0d3c2aa07025712ef4fdd3e70315303bd2bfbc03393da62900a76c1326cdad0d454a54255ddbc271d8d222dd0bd4875595038d70fb5e788f4fa40f318fd6627d04415f30375a148dd6598ee24ef05e3896b3e5807dcaae0f9eeead3b2c528056c4d09778732d7b8eb111551ace9d321e12f40ebc0af826c4e3c4e2ee7f983a1d4cd66258a1d8b8683a15eea341291102846161714bcae71f34dde83305002eb9e57a4b4e56575d5db79d1aeba959553e1cb898d95f107764c2036d7088affcc07323ce032db992f84d15646b8e3a7f87dd06ea5b423490ccec5f6c9b5e665ced0d8ee591c7598fdc434ab99882d01f5d1da8e0db38ae7b061e3f527ceaa7a1b0679d5b004ce8d88eb01f55169eb61af8360630217437b393a34bc391b9eba4caa7544181aa4832733edaa444c573608a64fa09037cdb79802035478a991c67cbce67d38a659717acf7fca05abf2ca9168898eae298df4f806b5677cf5d35f7f4d1434734374ccd475935e1afdff90eacd613636a44a456f363db04223b9744b61fedb45a41da939a6d855854603736ba4205a0a68b122c9a1a5b31f171d3dea29d8cfb3c4a46a8bde52a9a8714c399c918440f058d2a2366a8cd3fc18dc667dc18741e2b0fa03d1d4d8d2b4cc66fe1fdd3c4fe8baa141d3e8a3abb86356522ee927fd4f8736c8b2cf97932010a7b30bcc6d750ff776394f362fc0c4a3f05e187b86fb520011cb90368d0ae3c8a4b5d8c9306653e28d6b3b208a7c5af19547802da6c4c58f6ad1d47c0f1b6adeba70655011a383bf87d8b907a281e143318feafd3ea20e29c4d1619e432387318615b67c9256891de7a8941b794461b535fde21a3aa2eac8c304437da702ccfe6d5d6782a6fecf4196c5fddda3fc172e162a876b3769a62bb385fc92887012c4155f05bc36e72806600079eccbe29039ce1b26e408d5ae8101831f928ca227e6ea72b8ea9f74b3f075ccb28e2ebfd3d75af286af346fa387bffe03c72943d6389a27fa53323e94d3e98645a71ec887163aa4a8d475af5422241fca402bb8c8d8994644d0b3f88471344faf3f80d0231ff3ca0c693a0e58820a0f050e32b9fd7b9ee8eb89db30877bb26ffa0e4fc68530907fdf8f26e71bde6f6eb1223136c97a249a9a1fd6d543bb2356da0817818bab1d478e7e8f2ba504f45259cff18d9b58ea8f171ac693e1642c1c3f397ae086f32b0fa07fffe4606661d8870b8c14098174eb52293efe5b5ad59fa1eeaf3aa764503ae074b787b3b41f41ee37f2e9cb42870fe568c78aa5a10a2c8a7bfe1ab20ba3bc2eaa271530e4bca6dc666720bacfb10474005e5b1e6e1ab113a64550a51b444887e2770ea1306b3af0ab0333ea2dbeedb0d0f4d829e53b8d6d32764b1c57d289116902374dbd8115196e31cc7f93448cdf81ed1ded3404e59dd316ce92c4f3744c98d526228ff999593930dcda9b18d51935a23080abf18b0634c0e8de0dd0a0a6b935adaee9f162e11795ff2222d794c14ddf0d1c3ce27c6eb5a0497cdc95b415581603178b2bc5650cc73569525f24d24465830f479ce291fef9da825df6e37e20a4cd6cde8ddfd9e182e7d9af522d043c69da848846b07a6a9fb162d9a57b0233bef014ffa13be826553db9639a7ef512135262c9eec923f47e4bbff4dd7d7c587631255316fecfd523c62326dff0c614006acf4c02bd2847111e04c1da4ecce792a8e3953da787dba66dcd76135be2f0c1fc28fcd7088434eb748c3c5e71b5460e05d2668c63476be7c238a9e796da955a2a6e0226f79de832a078432e536bda989eeed41fecdccdc88e207d539597b1c41270df8a042ee61f738a3b93291aec135815e932f76a267aba0d991283400e6b604efa03d9b0f77f12a3f6daddfe7d1452aae5a83876780786534223fd95bfb0a20a6275d074ff3513bc60d409e04d686df8cc87f26115c90eec1a4955ae1868783cba2a137fccb5e8758f5704fa498c9dedc27a15be79f125ef828ce645ae5b8a30494c3ecbe08ba395b2bbfdaf8d330b1f0a4ef1088d01779d78b779153ec655fcbb6c9ca763d2ff0b365d2c9493c4063faf7575c62852fe3977d7b9e02fd9c6507cfeed2f51bec35f1f1f0999aadaca6e7186010fc68fcf2be2c2b82e893aa31563dac12856126e9551e69b7de4c20e1619bbc5f732382c22ff8e83de9881c4172abd5dbdadaa34eeeb1bd8c6a300692a3a71b3763b20ea345f15c70954ba22543ec636e2c4f35218692b09d8a7ca811052abfda343f0293bdc7884e759e6aea97bf9f95d5d6ea8aa7d074ffcf58b15814c90297beba25dd2fc99d5a0d879fdfbe9bf24bb6831a705f6a52a734662c71bbee9ae7df6069fcfa69fc14919dec010cb642da4d96592f3fc7d1ad2aca1c3918ea428d9db405615857621704dee13b227983b6c38c90ca2450c474d0b4e32925f5315f3954830076b4c94f2547d94df91ef70c6dd2df7ce8c543fb980a579e2b8ae277c826965164d16841197ce4d180161c1ed54f89e42c65ac5576993504ce50d276d66c24f201b093aecb519730785ca5bbf8ca33cf114a7aac1ba3da14b77ee5f8ff3c85199e62103dcd70cea1d0a6ba2892d3cc25d5dc8bc7f7b773ba69f75a4727fc20cbe439d645f7e47a5e29267b3919fe4f917dbcec124d74e5757dbe7dcf2f54ce744c280608766dfce03184781910c51f46fa3cf84fad77fe778012e28af73d4e349af12ca18bbdbc272b8777bb0ec4dc7b86863f2931ffdbb1465588c145f20c76e0f5eaad3f4bad91402c6c6b87d359cb4222745d60f6f7407921837de48c78e69e5b1b49221ec02d3e2ea058bd97b0e047a3e424bb6af425f27444e2d57b3377b6621cb34ef542f1241fab1123f24dab2f5cb85ce734c7de07455509a80a5d488b3049382c3cd8bde51f2023d874ada3bf378dfe7ca09029accea04e266b1f4d00a7419825ea18b53823368b4ad9b579e62f2be64f75c68b3ec45fd0f33bd59772bd287ea0013c30a31009162cbd8a65e196ab002f2f003df80cca4486f07ff60d140e8a9d4d7919b830105fbde57178c5015e93c4b23b7197e89e1947c9c6f1ac526faae61959d755bc44c10468231268bade38ed88895a206ab4451ede26cc2f8ad16692d691ca0cc37aa75d756457bb3ef0cbe876756549703cb22bf0fe532904725b03f66ef27803061ef25e5485ab71b80fccb3897ca7a882d9329af39e27f25a0062c0e8d461be58f7390d406324c77d3f6002ceefce1d3c1b67822d636a3bfa8676adcbb8b1b74977d6bdd9c77cdccf41ed0a4cc398da4ea7d351b1647c8502c133fba1c94975c1436bd4f4aee58e715c61cb731aba35b1894af227c3f3458180a2d8b8516fb026771bc898eaa6519a9d73bb12ccf327f59eed61338e990189f2cf3a22b52242eccc6808297ea13b86d47448e2f8ed23b7b6b359dfd0a09198c2c60499e27408b05421844001e5d9c8c84158331d915dcb927c3c42a9e96a5a8c5dd3c9166612a9271856cdfb61ca3c4834976a1f9c254016642603e122b4d30ee6f2b771a17ff76d3feac259ea32da732a88128fd49babd30ca9c9e18676155f1083becdf346397e2264a4c6529a0e465da733ce792c83b142977afb20c7bd5a57f86f08c97909d46da9e538ff7e5a8940a4e8292085c9994d346397c33f59d322996f2b5ef2873e89f98118b9ce907f3d9ca006cb8f7454124301f6c8c6d801314eea9d982af49edbc37d038cd1d7abd90d122727a411388cdb16585af48f74f2681c13d630c33da6c133c15ddf768c7b8018a215883d5a97f188932832dfa15ed3952c6d50c4a62c4d4a263de6fcb9e612db139d42b9472ef0824454a86e22ac0712d527cdf6aa153b881f18c83d2d625dc5e83484c4a979cfbe5d3ca0260e4f77cf76562997bc5b211644d1fb3a54ba9c9e7024a1b37dbf0bad9704d167d9b581c123039b24468c2c5118bfb852f71b0614140e773be5e93e6fb71e977b3cb820b572fe787d91b8fcc0def1502fafe2048e48e9f52d9b915732146b0a110502b76a2060fd790eb75b6641b71371b8b34d47e7f255a16c472272e10cf536a701b7c2d4758468dd35d23cb97d0b531e6e59077e559512a2c31209b02ab11a3b07cb3b83b14ddd57098480ccf2f12714a2abb3f1a70a110415e4b4d3552a1fe93c0a486fe4f88fe6b4270c8dbf866beafd7c77568d7d8bb8effeebbef578e86c6884a266484976060ca7983be47cfdcd631dad7c8582956300c1e67a158a97e5e50970d85db3de3419b5303d7bfeda9ddf750065bd3ea11fa784a9e02ef82e9273bf003f072145483c585feba9a666a6e7437164425148adc64ae9617d9f31c2c5cac5ccf18984f7fe8a81ac4a06326dc82d1f3dc19c6b223fde1d10f699666e7f898018bc1a7b9e58be93aefac1216beb316955aa9c259734348d43b234ac0deca754db15a07c62f8f8b1ee736221edcbb2ffc5971ef36a379a02b9397b294870579b630afe0905c53634f541f4a5c7e20fc09fa10d58cdc9978c5841ab593b3f2ca482cc83e4778c95a60cca3c2c371a48f206dfe24599bebb4950bfeff96f24b06f1f49490dfaf9eef7bfaf0c7c95351af952c7f2d1575780c8d41517f969c13be96f1ab2c62f354b242db421c22f71856f537a76706c7dd8adfeaf9e7ac7594f70680a5c9c16835caf925e4848bf3f233140aa7ec1eaeba109bb330302c1e5ba7ae18e9034431b070093da749acb20a29f22d3bf96deac3d08d190613c2c0703e253fc4da7943eb72cb3fa4b8fe8b0ace6c9dc372209059d27c3c9b90acb0da1a87094a33c85bf8b1a91721a3cdc1d0edc153645b11a85471aa0e276bfee96611a048c955804568a38c9a89dd4071e304e2bd9360ea21a5deac9fb5aaf3a519ece59a9e6e88feb7d2991c47c179c7c8c792f2a64ed4b9429c947bcc18567524e642f4c60c9477625a420b18acbf0d019b61dc3e97b7b3e5026358c4c6f1922b31b064dea4ecf2376fa16b417fbc5ec01c66bff4d30c8ef6bcd08bb5851960c271a027260fca43fad52a56951ec916ae97d4c447393d0e264a64034a6c3b3d743f3a46c4083b702366a9c9d2f34951e0916076982a93482980d8b8a458853063a76256aeaf9d772a908d6f546b1b05023e6f53f2a7ba852705d3dcd367990c82aa97209809a83f90d48b2b5d770e92120a1aea7ed6d12782d4ea31f07c5209b4bd9a36ce7d00ea7c488b90920d75d17514011ec18109f1c0bdfe5121bf9800a848ebc41b586614bc16e4945ea5befb1baeed862296d54d97e5dbd73b1a46c119281129ba4a6ac574fbed1f03bd24f560df4411f0a8ad84294134a793bd1a2a402eb716d0e7b60710c9de4a235667d3e2e1494a9e6c5dedf21fe5cce99ac1fe929e95553528e9755fe5f86e677499aef7a33002113de591f09e8db112e9e4a8bfb12c6207e7f8383bc9095baaa1fd0e9b47002ead99eadafd3275980ea6525798134f7b1a66313b7d83384acf6af289a3a545332fa2b829a321c2a4d30e312d05657ce679c9b99175352476f9e1ee5fd1c795079b9ed081f00800dff526437383bc0b75f997ad5eb293525e5f198f2dcf6be0cd1e780aa46056f6f4ae343dfd8a202694513dc5ad3b68ee1e5daeb0018e8492db6b3c453d2bcfcead84432935460e91715e8b8e0d3211d670ba3a9f6a7eb9884fdd9ea70adf0a8c4cf2a4db7e65f748ffe13535e71400fa2c52e1504c08e5d1a4be74701597f4cf5a066877e57abfebdf9753dbd6d33a0b6d6ac6b2914b9541eb27385768a04bf295dbe60245373ef38581e1818634da79a31593050ba48dd28f30877ce0ef2467f8303b0c6216c3bf0f104081cd048cc344e6f6490ba343d9deaca4eafb596675192ac55da1838c72aa38b39116071212dc171ebd96316206aa45f6a5c7184d3d5d6ea8c251454e98858fe3634e85c329a511426534564939bc7c854d4fcee70eaf7249dbb908b3a3a13c5cc9dcfc07a805d01aaeb4a98a22051c814b30dc9a10c0b6d5015c3dd73703fd0d6d6a64dc917f5364157fde6bb6a6a0bb95329b9c350424bb3e220acb42156acc1b75225432f7ac60e738de686f4e6e2afe08b87a84e7892e4d640b13e84370d09cf4e9154966a0550bd7e9af6084fa68139bbc92adf567a4aff9b4273b1a35351a9258d78856200ae06cd8a218daaa33917a9798f1edd359d4c9a7f5c96cac7c193460ea65bd154d284a09595323d4ec6066c51558fd4ecd498c065df75ac30804e13bad34130170073ade1d7d22241b2afd9ae33599ca4203abd9b4253157a13f3aee1898bf02c70df59aee0453c2e972010fb303b4f23fad78de42b17525f5d6110e334035c22b551857ff7ebb9fa450d14f878446100f122db2c4baaa8112b2dcf39cf8567c7aad33483497f1c03fa8f360383c677c438e5925eac18ee4ee5e03310607003b14d9c009abd3b9c8cffedcf7f1356aa92c95c7a8da0fe657df695398b4d9c9d860d915b13027edac0fda4dd1b21ac33c6245f330abf1165923461305020669fd454ba46bc7538e4addb0ecc2ce97a391400d94a1ebc2220c5ac67a7cdd963bb0b1d3171e261d3981bb6bfdde6d159041655fe5ce1ac8c57f0625923b45abe277169c25fb384b55994e75581a0bbd64fd3477a1662dd9c752129db9c1d264013fe8de1e519b7cb7fbe35a0307f7cf8416552de09e0cdcc74148925bee2d267b5f208498dd23c999ace5fc0c60d54d2e9532dc4b5d140f0c04d9498bd69221cb46bccdb9ce5534168f684f8f551ceb2b9e7b545ea595232165da32920d55374f1f3c14043aedef8c31a2aaf8c199575f37a2e19780542852b8c1beadb95924a0cb2793a538586ea0c66cabfeb3ead4dd2f605ee23f0b44439aecc97ff49a00514a8445a9093a45b1f9c5a3dc02041d990d2e5992e9e53f39741a94f3a4a50db04961d29592eadf03814f9bbff4ae98ce67cd48b8e302e2d75bef4899361bd5624c50894d57f101faaad0df815904e6b602bed0b36ef91761b97518ba503297f740e56e418a8f190aa7b32518def4ae2f56cb153b5051f1be9596dfa6f53309c6d73959492636625ef6843852c7c4cf59e67c224823066ae290a3600341fd63b9336a1cb31b0dd74543783bd1b48acd65faa35b9e1d0b054148d00b105281c2ddcb18c75a7a6ef5e0d9e3795587b29c08cbd104dabfc2367b64b55734cd44d0ca74eaeedd2a684fb41fbfc7c5077db75237ded43bd1859f759ccfa94bc6e0c74592070d3c393dee0ab32b7292767c84e36b659aa23c21166fbbfcce76d382c1b4629eea75ebe584524eeabf55bd190db3ad45f064e05682dd1e0304747e6e513d2f5e1dfede8a72db26e001d4960e04eca62102fd2658871b300a8ebf487776a8ecfe930c300a95a6419933bda3eb1b9029e160b84a51fe30151ee3fefc87d86582b732273e79eb2a24c22bd20c94ade0582fe7dd7add404033af6278161d57487ec47f71f99c083d5aae5c4f05c1aec58ffbadfbb48c436224109e999dcae7d574e95f95c46e558285d224bf3a7df8ac27f8104f096380fb71fb30cef6b3c444afe9e256df9e231a0e49af9501a8dd9b781cc3782d5bb1d3bb0c2a29c712eb7f110f2025fe10906617506438d875116d0824f3eeb4e15a7af34103a340b5e9cc53a6223a2b58351f0fcbe952acecdd74e40d80df025426c2fa802aeedd7dffecc481e61b4e42ae1708bfb39b2869aa058e9c3d740d8b0c5d43111a24d4e189d3ca746490be4de86315d6246a331bd28eb7d848ab564c50e3042001cd4669c34b41d8ae56182a46c405de3ec0b086ca4f4d8a6c3513d648cf3d3cfc039933d227a70b1e371d429283324ae3a98c029ad9e9c4950c5458fc37fbdbddb90c7026d3c3ee8c3cd32ec13090afa3130d399ed8e35758b42b778a5452d486583fe828621065a528353c84ded248227b6cada2e0975b835634cc66120ee3ce48f9723979b8db3c75bbf1abd24273021bc92f47356eabc52d906463485228fd1c347dfda478bbc074bc825acfd13269748669b6c8616662f0793e8b505da8d061318bfefdf8f8b263225906601cab0d585956acea7a70f52cbfd1cc1220cb1858fab098318486367d3e964cd445a9d9d058c4cc61c5ee47cb0a8374ca9bdcdd18a717394a24deab64908b93d208181a9298d949e9c6ce3423ba337710d48d19e6597decd03f7e5d76313f7dace98c3fcb038bda4c603d9d5b13b08cf4aa70ffa9f1b43d22cb673cd133ed29df32bb2e836926019d502e6d03183f1a2f2c7ed5e614226410039dac2bad824a6947fe20ddedcba13547daaf16db19edb5a3945c995c3fc22c6fab61c5552203e1e1d514e95debe8908e3bb4e135eac43d5bf1c8cf141ab4529b1c4b089ca39d730a60cee135cf8120df8f4174f354ae7201ba4af73ed5ad4d910391aacd100c39e9e667fa83141da7d6dbdb960e6a2df18c7726224025aab49c74a0637f273b851d52721d342747cce56618746a35384ae4935dc8ebd3e8544c084886acdc3421eeb1a53fbbcd8ee4423902688232019cb3dfe6c4693dfdc5f55de41120d4129679b521288b9efb2796a68ea7e9d291899f0f7791ccd52c0139949c0c99ebc0f308353ed03185d4d0a0be21b217f9349b743bd9020ba11d1623d2ae38c4ae8fbdcaabebbc8942b6dc15d922bfea80b1510960d70777bad45698bfcc7695e296e686b4a3f3eae8f9693812a1997db4547648ddb22cb9cd04959f0a8867c3fbe7075094e96cde5f6beb98c9079c6ad4cc7140f72ce5ce9dac4a01e2ce1d28a5903ad1af5a2670e34fac771fe3bd5996d3b323551fdf877e05c86e7e78f4913f6d3f9b114f36de83bc5ee87db4e5c3a2a875dd84a4df84dcc1c00e97e1d81f5bcbdebee709830da33caecf0dd7f029165c613d74d0ecc8b29bd2dde9989c9c40dca915047affde7ac810393f74239a00e9e7c3f9f8c5831433dfcab61b206d68f787d55d8a8f3a950b50504688f242e71f50c84b8eecdaa53c53d842a2688d02adb96e8d02f66652fb847f99f659fe4361c8088683bf1c2100b5d458fcf2c871a83b3f52f76d1066bd7fcf72ae3035002805b42b476bf7d526146ec37dd5d2cb62b3590ecbd13158ded5ad52df2c36006436a39d4bb00322da347dd6fa82225aa54f7946be71ee03d810a97b3d8a2096a45dcaa51fc231fd319066e5d440821fdc463f2710fc4c18e8b688745684ce0b134fdcef16c16c72f38358ca16a20c4a38dd01fcae18ae9936286489f516c01c3de7be8b8290171d9f4bff61a199eec3a21cc8b9789acb5f4c8a004998b6e27aaf3fb36c790bdcafcf9c000b68f5a3a57ea888740b680796d93bcb06f3f2364960ec04ec30daa36fe800322fbd548cbd3b5765e6257ed33ccc8a3b588535c1a1e98baa46e56978b6134606b5aeeba60fb97b68ee97ad06a5b6a6439b3e0ee7109434811b52c9757291a11f8972a5fb5177083c0ec3f603fa8509be6c32c056163188b3eeba6bf2a4555d4d1ee377b86f9bf66decaaa4b4b588d0712f5d00dba8c5786ca883147ce2f62a7de80bfa5105c19a18d295897726c5bf5d8c781809ae04082d14596d50d5ec7551e1c58f06e89cd1302f3dff51f19fe976eedfdf8b86998bfb64e90886bc1e4f1f0564bcfb9e6f2e4f148e8ce18ed234ed03853cea7e42402aaa2cd430e8c1cb0fd66f6ecde0479584b8f952c7c8b13a553ff41d0c5dbb35a2603d386b3e88f101d87556cf1f15ebadf555a5883fc437cc5869246ddb77dd76e1c06e53b81e8a9316e29a70fd89c5c5c84d6a2ae6a80848cbf365e0242ec605eddfcabae4fb77689bec7a2ad0ce44e6", + "0x8f2f794676990800ff49e2109a0a125ccf71d160038bab4c93ca44d1c25e07788f62594033ffa28067db8c8a73449b1743a54ed336d5eb39a88acc6bb5914e7485681a7994a2e7384f6d5921e582a81125ebd338b854efdf4cfc0741db212a2c84bebdfab2e6af340311a3b24f7beee0215aa447382f76b8f734fa4678464eec74d45940ed0a5b2bc4b8586ef5e2231afad4f346e56691c552c6e2e5f0d0b69491132e2068ef2b2647e27411800724e605f9a4a6f666c8afbd9075104fcd8a1dea34c1d88be9ea153511d0e67cf79b63ab5c667e24a0b3c9ca654afbc2b2a3cbe3e7039a81a83dd6a919d8d0d93a0425eb1dc9a22b359eacc07aae141c249a6fb3c8b148b82967b9b53af6a56b1be9b1d5c02a784db7004219ab411952407ac4e7a66a0763bd619bdd08aed86a7dc310105e8c0ccef2e6f5048b0985ff8281c5dd1b3e46fb1a85a79928bfbbf347e4045521b14a79cb927ee349e42be134889c4a71a3b6ba852a70d8d8d3b1845d34daf1171e4a1929ee1dce6485775a6cf89cb5d717871e0101b4784d863f8424cb4e474fd5d801f49d810f2966a4f09d7499f9ecdcb66c950331cfd9c645b99f9d684c43e65c8521c86ea406545acdbc8fc4c79291272ba4433125ebeca1d016c8cb099d2d157fd0de36c1b286283feb383721159f4fa54cf91137d3fc0fd84e34741d41de91cb75028b4b1a68c039bbbc29e0a0b41569e08be1b662ec72c7529e8b39aeadf6ca18cda35d247845d1fe7de6300acb6acc678455c653f095f4cb3973a2abbd39e39f98dbc744f6abc028c87f0fe36aad63369cc57f841c119bea79feb2479d1bfe2c92c98ade3aebe53c5d5cd1e12ebe8a8f598d7001e13a5cdebd4a5626fb05078a2ca45d76eabbc250a1c09f97bcf2e05aec3117e02df7bddee395911fe35771a5c3312bb56cb5fd9b8594f376adc1c9e83cee6ae947c4a3c304f4f82da1e7b01e83d6933a51e1e11895c81d2a2217ebc65ed35114989cdd2ddaca35ada3abbee2e15e673f8c46dab4c4e6c139fabeb1a4d97f29d0ff23993f918785e8f68c97d844fe2d08b581fd10e98d5703ea36cb477a8c421f7c1eede40b1a39f9335fbc9d9a99a127b03a7dd2f3d0aaffe887ac909d316281215d4facd25e38f5fcdab45202de31916f2b37835ab55a59b27b0b8f275441aeba251d2f39c77c6d60418777cfd3807bb276270249565ad351a062a6981d0b209498170a773d913cbeff41d87c96e312ef40f183818472fff61072c2f27ee16d3ebfe065b77819a507457589609ae7fbcfd859230c15bec488e8bd9b6082587651be800f61b34ac074fab7f43271c9a5ef3fcb0118732d36b3970b0cd11bf8597a1be52019fc6e3c09fb21f5ba4efc6cbb8fd4f7af7302b96915e672f83cbe455e285d394228626b82b6cf0331a7a78da889a6d524dc577b17061d2a6a4d9a0d1c6a1d46fac417a188a563742b2124e6249d98334f86953af882450abccbf2967644bddad84115e23d1681c125bd8389edd0a4d20a90fe59532033ffe5c81d13f246ba19f0f6f3e183e154e9f4840522b548e88c8d8d2449932e83ac4f23e9096e39f32cd295e051938a08daba4da123449325d67b486e3a73f715223ee31634066d2d4e9d0b1d7fbe234dee2a1782ce7c8843ccdc2f9a29bde58aa093ded92544e58f5f50d881417914db79315b8601ed41cbd74f3f3532521bcb6d13d65ac9eba42614ea65f4390086e8655031c1dcd7a36bdc25ce253677f683b99b9236a9ecc862a814f8f46039cdb3dd4281f833e1ff76f93f6920d49f6ca0910725fd0a4223972a606313e5a7a1fd0abaa027d1c49562dad59432ae31eed6e6aa4fb5d9cbb67e534dd976598d528be244a0fb86c319489785153b00fabb1ba19a4c55606accb1eeaabc58349274a600b53b5913b0f367254f2a6f864f342cc432984bd4e65832d307a0859d8fb39a9592dad5d1c59ca0575df3d4b31aa307a48c23f7af7212e56b3b46df8c548d3a62714d3c3eb35dfb6ebe1bc7383e8d6f29d7562eddc7e311d046bbdd3880bb5ac438fd0b4782b1223b6ebe77d919456c26c397b7af3362e36b106207d5cbfb54d3b011f56f48bde1ca5369699421d3c8ba759cd1af168bea38bc217ba05db7848ce6ac60c4c89facac1413f218c3e292c8b2afac34a3549c86a2b36b44ffc2cc0f39b9e89971d719bfdfd2c08d13719f78312febcee48cd05227719d82511311ec21f0db2260a06191912b52a7ff6f04cf4cf928835a194232f4e6e93357c9bb7b0ab0bcd053f7e453d4c57b0ef86d9d4f823370d4ade813c956e1bf96f16c3951c0efc186bbe1a2581d87e31654978ab270cfc39e50cf46d3c59b9fed27847bb35a1e559c46b6c223aa0d86c5e413ada8487895c10b1744bdce3b9e6d54f7762aa30696afa3640f0cdfbb332772d82db0e11e509ac8c059ccedc5e77c90dba41b53ddd8475726756ba9a70ef71c81f5f8e42ed04e1f5734d712493841fa4d8176b8792048d495895fc7f40e95deae3559c093e5e773b76b8ed413617ead030f719358a93140e4ff19175b7f4ca1afe0515318d53bac66f5549464c9c4891353543f7163368dc931c14fdc82eaaaed2d238858d7a8c8ddaea8142ce9ef1f48d65878156f1bd4d59fe0c5f688a453c017f14a70989fe9b9d61a4428cef460f92493500ca4eb17fe69691df5db4e43bdddf790cfbafd8be292d83ed39b00e80650f025d90d7add99d7420b5516e3ae9682d0611f503806886ac3c86005e7f90c6e42aba769b4408ad26a88a1a75650e84ec514f064569053ca19c24ad5e09357185d56a6aac571ee68a6188754c112124b3634fd72bb604181af58bb6a9a2368ea41c5b07608c49c4bc2065bb3d3ac64c80db92feac1a76444b6f7793492c21b065dec0ba9c9b8925363b8c8b09da371da44902bb12574442c1638de3ac70ea191d11f9ed1daafb1f8667bda0ba56f45d6779c21a03eca97345653b295b7fa7534d6497db1f42769d8d36e1dd74bbeafd98aa5d3040b78e6bc14dbdcf3ae2e979c21e0e5bee9b862375a6932fd860983405ee8331c0a70fb0910b71f1565d5e3fa666aada5a831df7a64ffb7b7e4ffe1309338ce9fe6b424c2beab3851eced7983e2ab0bc30e8437abb70a1c15e376460f60e63433f11ff47478eb3510f07c78f1f5c125ab8a68dff8a3558d7b96e1ea0975dafff76a8c93102e74df5143372600d5c91ea48ee35a34c54bf821a085a48cf09988fa9f31c668b23bac24bf7ff4f241df9129d316d35553d2b39274e809cc632472c1d13560b5926cd83071d2370c5a86416769085af402aa452df22ef640e7dd37c5f1c354147f35d82f1af7b71672d278c29d4978d075fc6fa7476917233ff772f32b2e7a0443ed906cfc946bdf02dc1250aaa7524b3bf78b872a053bf40f06422a41e7cae94d8d784cfa01ccb7a5575d5c395091eb60960fa95de078f622bf42c0b15c398dcbc4f9c204672ff4206013e5b71335db9200ffbc87b532b1ba04dafeb7fb239a4c2641d8d993806d84c57d1c78afb267cc16f4c459dd1a6ff7ba1a9f12eb1520ff31e62d131c7d0256735eeaa349ff8498195998059e1ac04b1478559f43c815773eb97284975b12cebfac67ff88b445e2856d650483fdf600489444c5d146d106825dece91f5d0324b650647bf21567558bae292d773ca9cbe4e885afa9b28ea7be3cf5e66556bdeaadfbe297768cc64ebe46391b9b20357031baa557185cee7152d07b54f7ad2f7dc1f499965820e55ce73abbe411bb37774dc32360bbd474a6ae3180df90a6c97af52f727dd9946b5012242d213edc14f2034df5bec9290946776298f7940d0154234f0de9500ca0dc3e69dc3f294a724f82ed0438d7ad793acdc26e0d028fcee6f83b3caf9d86f4c754156e2e0ff3bd3f6503aba79c98f40e85ba3f218201302b9fe28651181f79ac3d98594f48bea3a9cd1a3c1d8f4a8d384cb05da16df6a6efd934a53f71aa644846fc69c00beb98ae6fcf7bc54f31beeefe07ad98dbbab6a5b20508ea2438905e295b3ef1c3a153bfcd6a21a53e21e293b0072a2d19c0683e007e52a46f06fa2666a8cb89ef794fc011725a23ba77baad2831606e2213cb165ee2d957ebaa464fc438d9a0c83b4b3e36934764d580e96dd6d3f173f6236ff463232806418d398b27c982422c12cbb271e57d738f6a78ca7c5914cce09eea1131397d1b98543db51429b6467cb695d8153d853ed58653261916113a1283543b9c9b4c91ad93e07e8a17b97775dd341055675a5fd8bcc989c631c6c422f3cafa9a40bae0bcd255b10f53a308345178d49f7eeeb684d1106b9f9925155775eed4b16a22c5a411f1fd1858de5be0b1f33e8c2ca4d71e9ebe06e0c2b324c37a65957f3994cef1ffaf5e28cbac19becb7e9c799ad73f55635148cb710b3ca40d58abb55e51c4b873ad0648169f9697ceb211620652644e26a94214a459418c78f4950f9250d76a1bade2c2531f8abf77704f8c6dd78a7d6c8838ce34e0563891ea601b5fbda40d0295a93c3ae814236d5a570f83997448ba193525ce74c92c13ef30e5af74088140ef7c8b608917269d57505a34c1d8c7ef66346143014f701f3de0d7078abfbc216a19f5d9e5d84374136b3252ecae2cfee1dbf57b0295008810ab64bac5da2f135797b1ddb6fcad1e7cd6d890ab499477dcc2a0ae0a1fda062bec43891f01acf52cbbd5e605ca63d946c44af60141552a104bd8c93f75ade151e960fe478286c604d6067cb3c17b8b687dcdf9e92c0f501a090d8dd9a29bc4cbafc2851f39d9231e369a98f484997d9d86380cce2f07d8f9bc7f04a80494cfe80004c43f3e0de25a270283cf0bca0ae4d4affc11519bfb92daadcf8c672deb784e2ce6716a19c4bf83aab69f2b40930112c0b187a7d69a2ca296d8fa76147b51c7fbaf33a91e6bf8d3a669956dabcef9f00efbf85370d6f5c85ae87e7b696dcb73fcdd381b4cbdd1ffd320333523d99a9211d4a14bbffb7bb1f8d33369a7774362ea08e7083557bf8e4fb7d236e0faf1f97a4cb3f26c1e333427d24d3eee0a9be34498daa40216567866381d3e3e38d190546fd286f0aaf5f790e98fb1ca2ab8d71a7a619e2b6cd0845ded9444c02c53bcf2ed96591dd47d5af24cd530d5da030a6446fd839bfd8d3db50a0ad81091508137080ddb4dfdece8dbe88c2fc248e99d792ce5f573f38d6dcb7a28d13811e938d5273774f52946681b5d35c5bd315b8b7f8984a8d192f831fc5de85986c5005583e88931a30af26d0d1ae69b2c434f2bd14ef8363fe5969aa4fa1a44deb5bc3457d36b3dbf763d885960c82e2c603dd4c26f95c5bfac58daa801e2af714c0909b3e7ba2a8d01d7f6da6f9a586cc6a2864a6660749b70cd07603e3802128216c97c28460f3de054f3b7482c323c0680a9617e95a1572bad6d0703662b9ddbd5368fc8556e1586ac89e9ffe540e4a2dcd6310022fc8405526b1fe58e3d3c057ef3963d1ff3ff32bb00b6ce3ef5a7f93fb85e8129664d943ae553a722536ef50ca4cd744ffb0230c2d2dfb2457908bf36f3fe9d82a7eb458745d2806ac51907be2545a188f1719ce4358bab1bcf22fbd325161a36f076017f0c2f4c02b31d6798d2b49fde77de7daa341c5d763f43ef29f3a1f4052bac820cf13c8a58d61d87dfd5fab75962143c80568f2c201808b8d31f8c45e11f9fa53c91778f32ac8204a190c3987681aad135d80eb176baadd06dbe13d871667da9c2b2e3a427eae7972b0e09c6a53cf2c07f74c6b0e9f95dd51a6c7f538f28cd6c7313875f2145732e90885c57ccfc4f4c75bc37bc81ca9c03fd9c2a6ccab4d1c8cac9d9f3e187cd4329fd2bcfc2664688130091e1553f2c01c0f83f07e5e0ff7c6535d3d47bf9b7f010d17508d565be9cb9c6c8df14d9016310c7b273563cac8e867f7480d51378e7a3859cb4450656f2acd77fb77f2427471e6c49dbc8125d9c94abf2f52d8a93c4077d4ca7c61fc01794d2eb75eca89f151ff5cad6993e6a679737e2f3909f96afa3cea53a02d07ee2fc574c9cc526ae25cdb4a1a05dcbd4c1bf4c06c764cdde44a12b1c6a15c582add6c1ac9407261396e5ef84b959688021dd7fa524dfb9a32670d3bede0f58799ff46bf43ac4d41e20a799fbf209ab3855e72186458d7eb8604498da0b7677d391908c879fa135b00e5920cabb9a212c3b7920f438ce3ebfff94f327a7c161cf88c59cface589e7bcbc4499d3a7035c7e34f767231550ec9d99c2af73bde2f0fac13519a98378632a6b51f843ba2dd183fcd2bfa5eaa279c8bd9820c55ac2f8656df21ca03a0a466927eec0a3579212b4e77e7e8c4a9721a1b8f861ebd820ec723f0637b62875f429a724709b2f56af9d4790e015c015b8284465928a2a7d3fcd7f4f03eb5f78970ad6c31753d48a9eeb41f751dbbb6f683b5491c02fcd7aa189ff95fb3638d72cd444941cd855843156b5e9f7a73a07c641e2663f172c47efe66f4cd5122fb41bb0c69e0ebcd41da62a84a91b747ea0aaa0e30b823279363ba073d36db3c87a93369329755e9d1dbc99d9e2ff06693bd0988003145265bd10884115be86289e1f02f8d6954f20be5fa60373093dff014920ff012a510aaaebbeb0f3e5e82f0f74766674372a0a5f4ffc1999ad58f28ac4b4a9f879a6bff2ac650bc28c931be6e8e29327524a6896d1b0568d8e5f3b73fcadf70611b635169f9ceff44e0aa882a252a6140bac457e99437f0554054ec0368320af0b64886fabbdda5c5b35bf7b0824aef73e055e2da5d419fb2c7006a4b25fad9e466f2fd274602de9e47a349b7d604d9184ce2af00b86885818277ab7d66b48c47e837050e2d80bece9c64d00021339f2e5efd79a747b8db992090785d0a28957a8e31638646d5bd356bb9728dd5b6c777d205afbc3b9b79f7a907729f92f2ac4fc287d0e22fa537ff0d34271868465a56cb9bf4b0750e5e2bf9118dd058304c2c9f1679770138ed9964ce7fe5585865b8cc949f2adbf82b5ce3e88f8c09d7353e60657ef5f8d68340aad919e29cbc7a1478f639883b98a8d62fab9604e046e8bf8ff573952421001286012d117bf62c761b09013373733e2ec13f8fd55bec2e4d2a3ae11159e951bad5ba034b39d2969a65e36bc1b6ed7ced915bbf2e6b899247281bc671fc4dc5aaf4447a4b3203d51cd1e89ce92f6a93d6663b3e4843e2e24a1f4611a36f8292e281ba82102fd089b29894f04356eadab3581c77296117b2b1ed3027e520314f47e68ca2881df55978469375ddad344ab89700aabf6cebd829a29f61039174788d1d2c73917eea6c4e309d6d9ad5dc02700ad86b44f890f15811b38b5fd524eeb0838a224625b4f04473bcd0680ff9c440aab620f45561db90cb0167cc609e74fda8a2f29d2132961840a9c742acec767abf5c8614fe0a3994640128381d3633a76e23b85af0af14bf8aaf32010672a3f75ef72c4b3f5bf36a3f12f826204636f3edec5d474a17a2036f2124fef0f9f84dcba9f64333c4b34650d472fd831defefeb1660c62cbd7e33dcb16187cf89c78e9b229ba7312568778607281b3025b0bddbcf51b0f53868da5933e720b17c8797c93928623b29c76fd01e1ec5993a3367b1815782ac16268ff71e629727ef51f209577c3918c4c5d9ebd84de0c798134a0750abdcd27e01d0b9f7b6e2bb2865460f2acab320f41ebb73a6217c23a7510f58311b51561f46ef151779d82c09a3589b10194eeef3d1a9de60fc2cdfacd0334f9b88817dbac70f4faf75aee15a139c7f60c7026c74a2105fdab136ffb6d82072f8688eeac15731c6d82b4d3aef5d52efad0220014d9783d71a09874cf697d4a3e345d50c4d524d8f4f4b72a794523cc5104e6ed04c7c2455b24180bc799b1a45743bff9b8b1283dd1e3ea3b44961da9e5d02a7457d5f17c2658a9317715954f3bb7e5ff68d7b5418d89cef6d8b223def41ca3a6b331407c29e88abe812aad127f5d2a17cde70f2ab1bb683cb40cf656b342668c2c2b2b9ea73d466ffd748b939c811c944f05b99e6290d0b0d90c6367235eaa1978113b5cad27a220ffe5681847aa97dbed8a9fd74ead8e22ede09f4516dbc450d1458f36f517bd4342ad5f7b4d11bac22234cc84f59831ce353bd538dd09aa256a063a760714cb66d9330db7ef37d73c8cd37232c902a50b886ae1e8214514fdda35c1138aa56bf4854b1023d90f963b9aae655c1b3223f5850ca60136907d14a9e2d63596674ef5c6209173e354c0d1f6ed37175e471460871a229399eb191b0ac06b56a3878694e31ccdabfb948dd63ae020f43f251a1d555ecdc97969d26487cd9098af4a65d6c36f202db57524e21fb7618eafbb17b173e0313812aeae685b1de636e0436c43159589fe128e46535f9b9a8bd51b4d43007650900e90bd277fd11e9e641d6e732dc3d13f26a0c83992358f6a0ec2f31bc1834a3d37649c6aaa0af176adf27c04171c59dc02bec7cd4696550058a2f1e8b46b6f977a53e071008bd0aa76a3c1cd3fa7a72d9b238112266f42afb0571832301d57ca1be5a149d8581ce4ac11e9deef3c661dd4bbba2a94e9e3ba8dce9c5a4d8a0a3cbea61cf9fe307c56be44a80339779117bdfd2475e1601a6b4d43cba3e29c82cbd0beaf200b79d1a4df3303abca449c52620ef28626b3d3881b44567a4c324ef23dee2d8eee1574a6c3ab6e0ea154db7d2ed172f076278b7388c949824872d3aaab70791aaad8cb20a30b465682582002afa6502c7a45c3c0e8fea40522e83c627c16e47713f5739a56b76a1e0d0461110a58558ccf2949f3aaebeac66026636d01efefabbf117010c223d2d4561e0b9667f3993e78f52f68a28bb84c7c43d268112f3834f48ef2c0c74be0da195f6c25ce0d8ae080acc1e920940a05ae113cd91c65bead6ca46b5dde9a12dc7c31416c77fca809861ba5ccf23dea791e7152dc6199c0c020f494cc7c903a865a12c7646160d464b33da055c69de87575b15d44777ec9562a06452aa94f4e2476f11c83b9ab38146fb6d3ef2a6b9b2492a0a2cc67fd8448141cdda68d7fa79d1effbeaccce622bb4eab7c55e8d9d33e7748e5b200bbe81e536f9bf57ac8df8fbe806217c80d22d1d1282d2afa5ef909fe65eb63ad4524509ea25c82ebc996461f1b20714f9533525d49bffb244c37eeb8adebde1f21d4f7337ced9284aff981def6420eaea44ce81ad544894d26661d9e893b1dc21f9ab7128394046db137090fee4e8b9519dd346600115b0c3d59fb731a6af91b1968c2eaeecffe2541fbe4a6ede839a8d662de2797b57ea6f43c6c67a6865ddf1f96b1931333b1303df1bb01c61f1d04a3ddf60fca0b71c8e97781d4dc84f00d0f885de6c9ca677d3048117cb62d7809fd566d7acd0cf6d79eb342852df8bc35fbf9d661e7b0d7c35b1ae74e93ada7d26716a072a7279a38e0ee66e86653737094d14997e67e6317d016ad4f42485bfc46db79c776d29c2df03468a273861ac1ef84eda61bbf7385a7f8635c2c0c23935b6909b1baf5c8b3480107385dc89ccb0e56d8019160c68f0acc088f693e51b6d4c4dda44aa14adce700595faf6b3f0909152b8e1dbb627647c68e17b8540b868c746a0b2d263b4b072bb4f91d0041a944bf694bbb228b138d9db20fb614f96f7cf17c43e200a15375742cf48d9f42d53b71043100514a3b21fd1a640586f71aca32ae3fc9221d8aaa795667e221058d74c0e9b5f84a19e8d9e71d0f97e27262c93978cdaa8dac3151ddfd5bbe146b3dbd7568b89a174deb71c4450684c01d0b48653798de9480e082789260ef2cd9c8ff6e314f715c0f97250e7a87f1cf199dc75ae2b665c3fed2f67210714518f520f9e27d404596a452d689c5460b14e0336ee21904e0f3d959b340bd125a12abf1a964250962e4285a384a1634bac5d9bbd926f79d59469793e1a02a254a88595ecfa8a8aa61643df5e385c9bf8176675b3970f12a97fa1deda556c3381d0ec1d76b86288ffd8e9426f0e5460b0df5cd7c846ef9c4be99213c15a7d5976a8c356ae165ed1ff0099b65602fdf4a9521ce5587e7f1f1ff0e9dfed4f2854c661c54a152aba1b7a5c0d3d760452d7f5a52c4ab92f13cf1d358dfcf18ee25b2552d5be066023a14880e244f17a3f47ab701c248ee08d5bb65ceaa6b42636141f755f99f9f9cbd5224327d4e8bbdd3f272f69af722b62714c8f52a1935a24ce4fe748a55386d27ba14002e223947b6deac3f778363be00ccffc66329b2058c4bd6c70920b70f84c22566690b6c778ea0aef1c166554d478af5295f590a228bb89e8be55ed74a8b46928d737fe88f0cc3ddd35a5cc4c75124548a48e54c16baef1e7c74af71f4d54769e3d7754fe33cf3396d0983d0aa32c53175092a98d18778b16fab8f056f74bf762ccb92fc8149d638d648fcc0e75acf7fbf635d6ceb992b0c75f9e0cd154813b64f4e40375ff8f63159b3975e91839c2b55598a27eb0764f71efe1259bf65e3d5769201a0ae6e3a3e627911bc00019150c54b52c4d4619ba2e6c4fe494e7c5a33136eac281faaeb19c31e28ecd61163a47e156b51c909a943cd6fee3ef922b2eafe1e8b94439262a384a6960de0205c7b4e09402822037ba7d6b09cbb4fa1d07cfa22d4fb6c3f82c9df78715d45ac3062526b6344a8aeec9f637ae133f3ea8e554a5d8edaa0acc6b14ccd17b26ffd01c6e8284f2f3b2870f53364833bf7051bb455e51e4eac822ecc90e74ab5b62d482e8df65a22ff5dca86200b8b0b8bfafe96ef084e6b1cd38304bf4b99293e2a950f16eccfd64139a1a930f23af82e9c99fdda0dc9e31979dc21067afbbff27d6786ae2cfac2efad5027f8d2a6cc703c10c665bdec60fbd970fee5f245b65d375c437bc01c0db52323b5eb4fb3209927c8a2047a9ace22a9b0ea3ce929e9d7c04e3c3a9ceceede56a878fbfdb4f19ec52c0e66ac0beb72a5c7d4f12a99c1601955379f0fe389ccd7ee0146c11a2a1f4e702d761d5b3903f4955f5017b42522255464cea278a5278dd8713094e849c1fbce3d71f8528e0cf75b3fe849b15657476d6309220462d7b41515618f8e5d8c825f80cc6381911a03fa2b5bba0a97a9cd6259e20cb75803423fdcc7ef9997bdaae5c61879c72fe1c3913cbb7d4354edf00f514b8c523523eed100645f3117bc3105f069d5e0f797622dfd5c414ceb3ff624b9321d498ddb05c55bbe7f8f624be4806ee4a28dec689fbd0c94021600f6dcfa4209914901035b7064438355396667ee54ff402971e9c78988504e0bcdac1a6e243aa51cb0ee7c0cd20cd1a4a45a1b6c326409b5b2de563ff485c53a3239242f08a1c0368ad089ccb710202af77d18c27b04d14da95e9b5e4379047f90c8a7ba307f0cf15f883fc5d7e8a5624ca5f6cc3f2f85c0e69a56e4fd9fcf81b4adc64e3ce69a3d7ae3d59c42f8eb6cfab900414332f398ab28679629cbb3479a60097887930a748c037057a945da519dfaaf03f7d537140ee37261a4edbb56f7ec2a3bba478b476d6835aec5fb0b361fe6dce6c1fb3d92b8c3a0083a428c1cb449f8dcf70410e44cb05612f65763f0af3d83c4b2d0a24cf71510f89b6864113fe745cb704a176ea2d069b7620382dc17e407d90fe17ad7676bbca9581d7e63ac480293f0721f1a9be94e16230073d75b2b5b071ad43b859e73d49f26474094c46ad3c22282bc4e5f5ba7aa9d5fedcf977bcebf99a50cb3405ff774aa33654f9443115f197858bf27e7ed33377549bf509529a41e6221cbb853062bde70f771e137e777b89df6da0b6b3879a1ff899597743ee22fa934249108ad39dbc3264ad1f7eda1bb76dc71c30a0a1c9fbc4a54a25d451040057a097c193df6512cbd9996323ced2df96db1e326d3bafdd41d3164ab418b768ed30c7aac01767bd463aeaf245359a42b05f73386aec10bdf1c28c7347e93565abb3074f597a70f52df53272d26cb924caf0e2701fac073334efcbfe3a98436ecc6142293664fad78b02689c48ba2c508cc61f3d30152dfeb5a56fa06c7088bd97a2a8244a0f68e1e6321ebe899b63912235dfb50d32387f718ec8e02021d1d3946fc221fd67957ac9550c39f7d1b23a39d08323793da33e3fe2b29989cc7ff2cf5a9c7556433768da78da02e142d89f0941c585d600f764f6b2797c9cf014a22e690168f73f8b5885c113254407d89a7621930e4fba83401de7218b3924f32dd43241b7e5db735933a35d3ed9444b07396e08a6c3b4a2c329cb699fa1e2252296fbde13268964611374edfe72aaf2481c62a5658ffb1603525ac4e43cdf00d580b5aaa026cb70c772a293acaca9ffc14acc2d1c1ad4c6bbeca09958b19be2de6b1f3177f9a668c7a50c9aa1e8c7105daa337acc3ae7d2ca61da1f4f493a42969e7124245ff02b02803d21cb9ea04e074959422c6a4403b0aa2c33f2a9c6759d844a5b28a13d45fb5c8f9e2bfb727032d9eb6727c5a89d146323acbbd96e4b5772cd47783c8c6c9ab8779b57cc54b0523e7e905cdfb3fb40694cd7fa9666a56a792555fc5be0c8ad577ddcf8c164e0612913ee9d65f4a2a30e98da53fe6ec5414dde6d112369a762009ba44dfb95e35bc5cfed7090f6334ed85e073e813cda8c37c50908c8f3e5cfc210e0a7e5eec5c273a7249166be4078cf2e52862c35aebe1c4486a47eb77d6bd1e59feb6a55911a99123a6ecf57fefa61c26bcb3e410c8e906838a032c47291e99c75137042c56e7922c1a97566d0d4d2c240000fa88c76fa089c27129eeb044cddecada3f608ca2484e89a79dfe0a63a38f8ed42330137cab93f5ae8cf5b664512975a9c0a49be7344aacbf356513818c9e2ad5512a553bc8491ce477e7bbf4643db504774f2e11367ac7a478b16f2702b2f316e388a922e947c0b85453dfd8da602d9a65b664ca4a2531a45183a648169a2bc852e7b7e8444dc0e81ec126e5eb0c8d2e058131be2d3a1d21c7c11c0fddb0466de93ade69b4d25c743b69847c9a00b2d9df5d9f0e4f959fc20d8f45be2fb6e99c9c62e5e51f6499c665c2e2006d2186fb48b83706bcd8ba758172330d46d2397be6fe9be1484cae54efc1b765b4976322edb1bc337451916e264cc5c11e92df1c0e87f9f8d58176e3881a028974cf9a48ff1ee187c99003f251cafa3f1db901117bbfce14f6fe6f80f55aefb16fe6f077a3cc61f5798354dd69c4eeaf6ef65b250ad8728a02de2b71d622a166141222f99e1c08d605d9d1fc8ac8ebb6dcff7629d1be35a48b623d57faf38864c6af407e2b5cc9c45be4fc68e5169c49dce8507739472227c333fee742281bbb978040c216e568875fe990bf24b88588a5a145784f3f071cdc84492762e5e0adbe230d0d8e24013de9b5ee62f9fc6ec424f675e0775c9f7301ffdc7237e96290d30167970819401b84656080fce019bc39705fc4b7b3cae12bdd484fbde99b53fe6b63fb244a19d63566652c1b72da365b9ef65a20016507a9c5d37e7f938afed8b2ff199ce7e33554db95c963e51e6df2c859f91efc0dc3fb10a4095a276fba5c08e71737def93113e86ef7d22ed6ad7a6ee075edbef155051cd74a3c760e023ae27334996ac953a237c8b5ab951d9ffb145ccdfd2e80301b1889b994dd68bf7537bc2a2de0a8fab7c96e2236f9302cc3c9c73a947bf7076e5e3f1b35ebe8bbe6f233c933fb8e0a5c3b85bd9372156aefcf8517e436c6b161fdfa97df97c56ec0300d1174c0c690d88ce90445d7b6ce9c857141966c2c90d0eb5653bc85fc322bf4647c6c4060fb54856d08b522c7df04ebf3b4265b09fe4a2fdc0258b558e1ac6f979cb72a03bbb582d9e9477f0e857c28799360922c9229dbbc4739f81d81ba2b9d339f48359f6632b3036f6ecaf556a00d65ddf1467049afa74356d24a40656dcd8a7539d5c71649cf13b23f1f9d12ebcee501d235a3e95e744fec5e05bebdb319d1e853039f81af0ff370d018e0787efb0306edccbd20dda9b5f7e9d49338de44b58225067b45c06ad2523d35eb46b743f4ca4c1a5f540985833cc211e593772a04e009f65d9c75702dc1c7efad92e3b9517899d16012d3d4ab633126d31dfd06e1978403461b1da39508f4f190e5b29fb714542127a4e8bb7720d2330c374701b1d7dbcd9d85dec3fa8d6a6155bfca9933c1c68d0244923d6faee2c42b0f9f02089da65dd3cd7b6381d40bb6bb0f47cce4071874b29ef095573804ee32ddc128a263282cde5f183fbad9d673fe33da5f666560dc2475825d3ed886e388d889d7c76960cb984522e91a1ad70d53e3bb0a53c1937381dfbdc67933b40c95373b6ab20da6cb92f8769bad9ff3e19a57cf24ccb8a36f477fad4179f0f6302e41d69e1b1eee6637e85ea68f542b0183f95c0aebefbfd03bc18d16228ad56b2b5d7ee7aaaecd657b61f924143237785bde71c62db2638b1570328b7bdb8c28e1e3e9beadc9e07b407439b2184257c35298acd54c5837d1448e8d3fbce8701afaabc30341cab929fd91077967d27d5a343a34f4416bccd81ad871907e807f4100590c6743ab2c2c3262571625c70346d77e3a745c43cb1147033f328bb62e411700d5857570161cce99b6efde67a23d558fba140d81d2c2df46ee99efb28a4f7cd308b9e7eaeb1eb99a71a1180e3f840b631ab6f74dad8eede20c71d080e226939b33a9f963a2255b7ca9bfcf8233cbb387b16e22a9316beea88a34f657e6af42d2cd6c39e1258c467067d513407157194b542fda3d433c8cb6b104f089b658940ffb8093e8addf42290ce5798fe773649e8cdf8941ce47d2427d72f7163acfa67182f82a12925276fe0a18851c3fbfff2acba5e06971b0e8a9f937395187e80d5b8fcd3aa68fca2ad2ced1465eda7682a212f8eeacda1f3983aa8949a2236385dd6e4b66e31d02ef79d925c936a972df5033f3d0445496619577a7f6003a2a16ecfd77903c4569808d7bf770afffcb1c6e004f21c3cbfe833f5a213dc1f3e1f9d752a7d9fd54b313f9b1ab0e839f37a106a28898b1154bcb580c3a6416aaf7cb8b073b80705ed4ea5a837058f8784b26265d2b10afff16765effa81ff36c762753c75344efecdc90e17a9aac34b83a81ccbf86edf2ab53767a58b5f88c6fde1a542c28ee0e76c7e45ce8984a42d1d4dadfbdf974f473db8b1d11ef2ed4d97ef01d4ac77e6f2a8cf45e5cbaf69ff8fb8632ca859683ade409234365e4b8896e47f816137f028de218bfcb7f9f7eb09a2cf6dc0b214884a644182c9bcff1a37fa3c98fe25f5d0f25d6ce5fb6443d489ebb1ed22f783782f8187d3c099b856e9d3f5c1e230a205146f88285fa8810688137d56504ee034803471d6f9744c1fb0f20e0c6559f85638ca423db4ae2cb94ac1656e1a355554dae213b1c943650451402d97a6363b91c0e34f84e516d5f30c40035870f96593833162c879effad4fd895e7134712f03b8b251570db2c4cf89fd7f16894094affd8d10dd11d39d37fefdd15cbe47a9dd463484bf6009713a110a5a37fb8056a112a48930de41911167af20853d0a6b86e2eb79a554d5bda3069fb3c38a855eae88eaf2a384fdb5c61c192665849f53f8a85ce88bcd850f428d9333dbb8ef2f0e6316410328c0449c3496685f5701dd8a1d9084275abc2dd630e7759a6ab1061bb1a35cee0cb658c848e711cbdbbceaba2e94ef6571d0f5188d3c0c2f4f930d497350561270004af879af77776173e8ce05f9b2b56c4bdd3c51570e3b07b1e45d0aa1aba4c133d857a8f733e8485a3870a2544da17f6e442d80a43aea71fb77a2fa5b9b5246d82463e5abcdcb0ebcf193adbf4e0f3ea9987579b0a65aeeb325098a0c8a1632ea7d0d3f1af16e5376ef4c405685b95a2447fa29aeff3ad2f23482e58076a5ad5bf806cc7a382e0b7a2e6194bb39ad273a7fedbef35ac0d0229cf8064d7e66db8fda2a50618428e34e7cbcb5937be60af8c4a9587b96558f8517b18a487226ddded660e74de4b34b8a751a55077e5889a3535c866149a62fad8f05000e7bf90f17167be41e0f57885ed481cd4404f5c22f50a9c66a44e72802d0b6067dcdfc2ff811db78976b499b090f6b47fbdd843ac8cbb3e47ba27e64408d4eb7376fead9b73fe7c8e0a8bbe06346aca5e173638c4d9633cc1f696d34f6bb4b6a260bb1ec7c8a9bc806e76ab45484849130646f47d0e0825a02b91c64073713eff2d581a1e49dbe9a7a6f408a5a4a608c252fc27317b0cdc5788e70562db6dea88d8206cd800086348efdff780770316780f300731e1fcd6ef71142de711424d5a846b1a054feb2b6fb964654815174e0073b58ce9371b8549878a340b4e62e743bef586f586372445ef45b19014e3c7303d7743659f655ee9a748f9a2a62e6e90105936cfa05891fb67998a05496e192c1cc0b7206ba55dedf35e6b5da92f971f9007e1a9a219778e8be613b5d4b2aa81252c337640960d46efad9331fe2ebefe690ed1d0d817cb13ba8ff2491ec0826cbd98ef8f3c381efef2e2dd52aedbb78d0eb2a7d1b7927c7dd0ecc7279164af54630d06f667ee021321fe4927dab1e318136bbe101b358375cf97e7e3491cb47e0a7cf662275e068a8364c2c71e588c009f8dd51f0c625fe2d64999bf2ae169d79555d79c24e2628e8d07ac9b1fa80a63b9eb5fa8ca64436289a30477afa7763f75cadd195ae1e992c9aa553bdf8f2342e124c106dd7697e091d9ce7a535ee29c34dc1c11e97f50bd17ff62e680181cfbc5ce57ca17d4385f11dc89fe0a78ac8498ff0d8939c27aadb30bd135b010a55065b52152836db04e4852eb0aebc1c3e7ddd61945fe716866e2e20df90b6e045ee82354c77c16805498eb85d24f2424351d58711a1064e06566caf55d7066d4e9bb76beaf67ddf766de90a5d6c173bbc4091f239ab925a2680817afc54a6315bf92d0b2782b2c00f007bfe4e42db0b44c75508b8839f699a7f688c5fff0d70403661aa95eca8fce696a047f17aaae104e64d77a465ff0f9e08d0ee5622c2e44c4617e1c57798ec6d270a8e4478deb8f2a35772443f55e81976fb961ddfe855d46175351b5e60af468f22770fb63baf4687e00a6133f7f0d64633de57a830eedb8024e7584c1273f20f0865d442c096ca1fd239b818a1d3a99cc56779c5069e97e3854a99e24c757aca14ec853dc2a31d7c8e69c8faf680dbbd969654d11dfd548df7a5ec3466c40549f740045d5e509cb3fc92bf96d7c9979341f4ff3d4466c5c628c3a74c660bc5f85a21b46b36cffe5ea53fa7df7ee0d52cc82ba8cc8a4756987ea67ea6d1f2bca620f94dc67fa7121adf02ff7c78eb013bd4795715bbe06b53881ee4b243e0be0927465adf61542d070b3cd7476214aa9687b435051eeadf0a841dcb56d91e4f38a37caebba401174be13326cf7ebc94b6dc4c465a92dd1a14f30ed3696bba4e2f09eea374afbf358fcde681d717c1f03a97eb3329f3db7b8b3e9b1c399997fe4e8474b0b8d6c8b2805b0ea1d5b0f9c364c48b4b58ce6888d06b8b8006a39258daffe47e48fbb12c4fb33b0674095a579acb3463256b768a05e1bea68414afca7bbf89a37b78a04a3226150012f06123e60eb60a9d207cd8913965875d3fa217bc87278fb862df2de1ca08ba42e4c4aa771b060f26fc9000a02aee34ad85427f8f564f71ff156e50192a06714c8973c41e6a270bf6b7c474a17761698474a558c6abfe50611462d81dfb1000a8e87011d2afb47b99013124c6f6103668aef6f69b61d0c0833436c930f0bee087841dbe2cbe768c6e107da187a5d660d0a551092915403a202061c51c93f26b4a3ae239ecf3a5a12b8ccd141fcd506eaa2728a5f01ec2598422cd43ae31659f08f56443723db97055c35a3c0e37ce14d6b5ffd1551bb2eb11470b3637dad1ec0d30b18245a5e456c931272c9571dcd7a8b18fbc1f035af8bec75b1d0c68d39f5549feed9074a97d365790523d24aad86a568aaefcd393c393cbe57507a0c73715a4fd60a0e31948a0ddb3845074af7bd7839a87fac8c7022e75b830055d49ab339bda21675ab275df0fe37a5e794e60a25860bb0e23496241416fae66cc13ebc943568afc40ea611ea09e32bac15d4bed9c76c7908153d111b5934d90ba6022a6ffa8ae1960dec95cbed420fbe6ce11d2fccaabbdca2af2f95c16296cef1323ccdf13a79cd1b68bee7e5bfc7c32e344de12d32e34a41f7ae51a7914e89a4524f3d64b140681aae5fb90e12ddb51a05d9142689e7a7b7a43d7c4843c73d1fd7905bc2892ff3bc2d4ff44cf9f7d1b7769df62544d761e8f516613a41483183335a01c420fd052bd5548e3d1bd09634ec6b138d944f5e37a0d3ae03d6212035eab97df636be7c8b9747c520bf1e9dd635065c1bc8027644f9091b4a8481dde33bd71b704525715824a110e20cbcc17b5804a4da49320c1abe5bda79131246d5a54e96428015573a240d46c9d5f2777e25e256ac8c0587f06d0a48df04eadb626f86cc95790bcc2a73763377200af51bed5b09d4b6f2bee29be3f75e33cc2e0b8899ec998568af82975b38e73afe010faed15f0bd5a5a20a54f1b770bfb6e1d0730d5ff8f41611f84918a22281c7966a3ae7746970b897433fcdbd3440e43a7a93c9c3e364b07e85bf705b853f2fe9063e7698db2f1bfad5c30b462d41cd7cd795a32e3cbbee6c95ae91400fd9235b0b2f474b313f2e99bcf77ef4f64c0421256a709f8f3a88db3ba6cf9bde70ea92971a2967382585654391c6a2b6a9aa1539d72472721a22d4b88e9cd3dbd5e2b1d99adbeefc3e43cfa9af51847d0f0970b333a487dbe1d1cbfbccbfb1a5d624be9f909511b7d1a321760077c65fc39c79a1e281afbbd8b552691f2c3561026e3bf2ffda8f50712b483b7eb32b88d085ba517c3fff876e5f770ad45b8be98498d4a49549094c5c7a3dff0fc672e6cb8807f91bcef58feb1c2e8145a43a3562a285fcd75c8feb64ec29ae0a25c130318e7a917c7138962299d41f2aa1edefe9e57c412d686d6665a3a8d8c28e6fcc009465e0d284b5675e1123aa58cd9289ba801061c60f3d36d4b1620a304f10937c3d52b2248a98e0d5ad0cbb3aa58c3ce79d25969b9aa0f1c49c8057f8df87071e0d2a30ddef473ead128ec8093526a999ab99372e33d1d11faa382b9a78f5e63fbfd15646f26fea20891dcea8ed49d12bc682abba1b0f5cc1c5e458d1cda2380d81c5d96cbeeed4af5250b33bfbd37d704d84bb237fcb1839897cf8beb13b5db8278bb6ed52fafb7042183d1553f52233cc201d1858d15be9d4e6e671907786ce35fc79c677f0b8f2569ed1578647ed23e2666a849c5e8901566c2d33399624878a0672261a9ac89c30121b849874ac096c8e7d148772375ed27d9be003e69f7d112e0b3ee2b6f93d69543ba75d71843e2ae9ef37a6ce70ac5bfd46495803d35660dee5cf6b984b355f2793e78d745bbf6a3b04adbe14a5122bc2400607c5cbc18eff4fc22b866e6b08b2832dee19e704eb8c56d6607f31c98934e1885636df493983a6c6dc4985370f5c3f0a99e28385fbe8c39ed827ed7391d46b14ffcef9d2cee335c292a3b89ba6b31400e8f359ceccc4f19d2ebbfd14e1456dd59213bd5945ae1448c6f6da74e4ab748bb88cc8045bf981d7a4ec8b2769b9873813dcb06144a3bf15cc780a572967d6a0b2f5f7ea2b5e59237adc1cd57b3ffecb2d5e0ae52adae7cfa9efa1a71749e127882d06c87916d0ab87b99687fc7eda912fc6efe097aa9d33113673685aec6f1e04ecbd81f7bf4068c217b3d53215e2213dc59bf102937096978fbcb7e3266365ab8685d0b5db0bf327c1ac1d2729dc2943405125038ad1380d408a6fb9370ac68b8261cf4663dab305dcef76d4e927642d532de23a767c266613e81ce86ade4cc992ecd968ba2c41b087be366ad9525fc2431118c7c95fecf0ebc5e0f6799c5407beb21990166bc34b54cd4096cdba0469c59035d4015a99afdf4155cb2d527d5d1f073a8c5b1871813422688ca6ac66649df9e4e8161a780066250038a2960efe430fadf1488ff51c0863568eba6da034ded21634e8df15c3304592f3512d9404d83fe62f3078217d29d934c59675aeb5e15969fbe50b3e142b769a99de31d757f7bcd6ca8c1c74c515cc74b7ea0c7d6460e57796925d2e726546079d178f9bc3b8f5ad53e1b5ff5bab321312a9c32e262c242aded726a9986a3057982748acf198dd22e06c57fa07e4c71c613c281b824ae6c6e6acb15993d2050ed86116f740663962d113e28fb80f09eb550f0b958928e6efb07380cf0d8894c5b59836a2cc0345801b668b7a19bc57ca8de63c9bdc45fb0b26b9572fd1b47961997e625185cc254a3122f747e1a58520c1b3197a069ab41af440068d97c98899283c1eecec11ee3e28337b57e3e75ef454e4c590243271ed1c451a49ea79a99c6841495712bb6d4262da99a2cbcd54f321d22732ba6a3f7d41eacb9d5f8187461a2facae7a8a45f6f75008cc73c98198714c05e51fd49dfc80e174bcd0430dd9f0ddaa7e09e5c8d2188f3ebc9db8b8005258d6224452b68bc4e2cca0210c06c57972431e1439d678ad566b466aa4a58792392151c911e1d0422d48ddf98af97ac35a80a6624b95dd58f71ec6d2c245f2d4652f47784ef63c9cd1154f6cafdae66816fb0df9f2c9c662c722a33dcd70bd5aa33888fdadc27e919e0809d08a5be5c3b32dc1a68845027e8329485a51f68ebcf77e33bdf66e554d41dac3a6a4d7629c355f87808941357431e0f85680ac22d1ac473daf66df1424d8a50d43acf852fa17dc23659fcf3e27f8392247a263e28533a6da713a1157cdbd1ad86768517fbfeab7fe10b02db1723ebcd75237c94c1262150f4413cdcfd56aa2f495170523828f2630523b445c37a7b956e1f588252a21c4b0d1e1725fa9cffeb09b2270eca12b10f1277628c7a156dc6b421e6ba1cbcf67b765a03def50e300a85b39d2207d169446c336432ce458f95214c9b60e4cdf750883c7bf8691059256623b1fdc7201e33a6562ef8a3a2dc7919b870510610cf8c581da0f6d28cb3fb31059068b9dd4006e236baa9cf871f258af3edcfa4250baf4bea88a98c7000fd2e0feaa65c8a368974f83be34793a63c5c7d03536b9122c3a0a6e0fa302b058a032cf35938cd650ff8192946012909c46a4ab586f93c0cd8c7e6d4db713418f708fa35d100f0d7fc21e88ed88ff1fb6b9e4495c73cf167a2595354b38f83bda3624d36b3e9616992d709b9882b5535379fc70da3dee1360b152b9de59e1653b9c0aae327e6338adf30f3270f9a056227ab237c26762024ad5dc11b4fc86ecd6256cddbee579c8efb5273d7a8cd7329e4841e1b0759275d8254f998cc910f848ff3237d0b91758fe84c27d563bd58428e196fbdecc050fa44cacdb82a05030e936250c9f096bddac16c0427f8182d973071445869785ef743f9cac8163d582e3422ab1757c916f417d5d10167ffb37a81b9bd5d676af2bbae2a93deea789dd0fc54bd97256a46259c74a94fdacc6bece5be6ee7183e173499295d466f596915dd46c6a31987b89e7de47d867e691fede8f3e1b0b1a0b7783aac7241eb51d46e733a38e31571f9271a1c90ce504057e3983b12e275fd230828aaae141faafccc8b473a3d43c03b60e45af9781b2ae50f7d07f1a9e72b8f8e8fec056701a782daa7f4269b6ddfd58ea12324c61a265a1215fee4a81d0b933eb103fbef59910a49a2dd0b7b463cc00361a651fc03af8e7d144b422b8c18abb91c332a76935abf2dbf292b5277851c08cf8014ce68d81c7ccceed933cbcfb88872d4c01d5f91cc6dbbcb7ebfadd2a95ec54ed310b125e38475de685623087e24ac26fe060331e43aad862e8e0b2e4f543b1f4cc32439861f4b8b2662eb93248e2c7eba3c6e97bb9fc77a1988a4b99660f7830c64c00eedb8ab7239dc001db6771b50def26b978a1c538d5318f4962e56a49cf897cd73c287aead404ae598a6fccca1e614902d8f536d57a1bd74c969232c30c8207ad1f580e112ca4c4ab647ea37fb6624b7d78bc56167fe4cc388bc227aa18723e72d395c2161dd8916555198bc19826733f0429ead881a04f8d942fb064f15bf6a7c84a8bd1670672d716051be46756701b7fe900077d66b1fd33811d0b6a5f2fdf293f05a0cf09583e7754bd1630bbf9de40dc5ccd8c90afd9e82869c8a3fd4102063ef44a7bf6a4a2473307f74263956bb3ed2379ebee7813225cbb1ba3f173fe9b9d4227bb00a3c18a336e4ab3c3f308d68cd7ee934dca0a8cbbd595fd4e29e709c993f7f8d6452ca31c9a6cad797be95e4641f76dcb66a64425cdc5382f8a31bd564d88f91fb727aacc00be8147580d80e0d580c1f2e9c6cfd03cf47a02ad19b76ff22d0ef81d9908a2b299725d3a36dc73cd1ee96a207ef9142db05db22b2e65059fea549434b85a1a679b7cf264548f6b9815890b1847d3a365fb1b178d77f7b1d7f74395f5d80af455226ec5b860a02f61f118f974f61537e89c6f717cf54d256caeecbd357b8d40bfdf4eb2317ed5a7ab2d6cb620255e1bbd2ba54f752b07424f0d801587f7213f479bd4b940819ed6411dbadf5911009a2f635c41e2877457eb8504e06d020d589282e23150614b2f46adc55d9f8559696cefd15fe67f66a0994441cd7724b6511dcea9d9f4d0822261d7015e0799874e2afd96d132e08d1fc229346eb77d474401c70774c01c3b95f76eff497a4eb37722fe4c2e1e338a715046a9ea69fab978694bb8132ac3c782e2f162d8d85a295266dfc6037a5e4df9bddde689a3c37c4e5f31a219514616612afcaad5caceae8b4484a67c476f9b276d269dd3f788ed95abfa8d262b5940a5b6eb89896f1b9ad1722134b0149281a51d5dcaa82842015d6d8aca0037927f313075dc4702699078f076f526501d455ce8baf6e1b848b9dc3bc4cad778f7d3001c7e83c4918313c3173c819ed03fb68ceb3fb3fba3335f823b8b5b0c57938d8abd4dbbef89102370bfa7210f1f6ac9ac23c5226019eae9434993171b9a413847e39993ef5445d05d18e0ff94bbb5bf41187a59e4e640b3fa89c644ef22c79d0f162416144c47c581e3ae76dd1d27bc88d7be11958661cae6f9949ba41a60cdec8ec05033efbad07476adf5714af7527f66c6e7b94d2ecf911ad5fb859008bd25dc6d0b11eca828cb73c2d777da2de698ef5c79d76e9f71d95eae264cbe26757fe0489306ab26484e56277e0b16d4da9c14285cb77fd4c79f6cdd76a551a821858f577f41dbd4a33d084a87a49a3e347d780ac47f2793e513376278d82f12148f53d51a9b304f2fd10434e81d55bd264b758efc4cbfa474ee1e70822988e351bc92429aef38cbbee7b3a030437f4b569bfb17aebefbe8efc56da7992d4b0684acc49349597523d3350ab0c6745d0a180a62958d99affbe4b64d197dcfd664693a96884a5bcbca79ff8a506e1c45b1a1972f4fb9f73f60f0f9b85401040990c377af3155826da5b275cdf33ffacc308677a167ec1769ce78027dd7ed55b803a7b92986add50147266be8ec81fbf21e9e17e2a2ab8b06beebb38f7efe424642c275e059d9753427c1a30f751f66c1411c1ca258570c8ad623ff90b7a8a503b480a4d78529c934581a58f7e2e0a0ffdf18869cca4ca592122701723652a94065874cff32e36469a0b8d1974e4396b5ea7786bc7b81b20003017dee223b91301b0ba62247966c38527fc88e807318b15f7183a8ff1abf0af74e0dcf9e0402000a8b5ad4b6b5ca8cc5840c8394af5e26626b4fc9b853885a813da20e5335e469cc043adc24600ca1ae34c3134405ec719acdb0c8e71701658fbfbfc1436c3acfd85c5f0e49f6df7863b365eeb6598341cd5df7a40b47ac610429a62b28fb6c265e3a0e67680708cdc1cb789ace9a1e468e658a2f7336edb487af3c986f9903ed023bc38d9ee0dd49483ae7facd1cdb52924a2ce1d2ed8c9b767a7aac81f3f6c454d08399b20fb3aaac99d1d53224461506b5aef3f0f390f1a663984cec7c4cbb7ddf35d3e1f2352af352a6346c583811fb8e45c3cd586dca5619176ea98b5ff8631f5ce3cee24a1d393a0129713d7e85d09e8acd5a9a7907a787d6af0eebc0b02050401a551d248c0da6be1b00fe5472e8dd1961b38f902953b2bca28ab16e382931f63dc2cb3757671a038f08d2524c5e94de85b5bcd9d120db1c9b10e1447fdcfc71a5b1181a299667285ffc4621e77c1d0898d2ae748cd48863f91479df51a1481d072fdaaaacfccbe195e013b89d9461093670fff239abb050df97faa273f6c558c727bd3ac207b809cb281a64fefd28a6f968c4311b56cf11680edc95f0b5852a2b94951bd80a35c0acbd3682b9cf4fc12c192d30f23e4eccd51949c883f7008af8b74ae68ed0c16466c649d2bd85de93d50c8446615e8fe46963057630fe40ca4b7522a06c9411a395356368b5d6818d229f41e9d972215e494fe4446472977e4632637da5daef583091f76d7caa81537d2cf5e4912407f8c53e8422bda8b6771913bfc08b37ed9be6fda7566732cafcea5e1f5a66cde7175b4f5420eb3827d26283ed4581d061d4a1fc09d1d588b78791ca44603d713847a54bac99be3d05e069e29ccc4359ebbae05a8308802ed492b492bacf7876b3206ace2722f8a8333978ba428df1f36d18edb15bf3d3c7cbb8f07aef273f6f55d8a34f0692209ce284fbfd2de034a3e202659d5b498dc8aaebe89d4d9985a71c98894aaf069699ff010a2a8195b1138905a4acbcabc26d4c600387295627f9e9d2b14cade85028d3fb8fe92b7abf3f3aa5ce4418fed71e1e9a3145d50232f8de66ddce51abfc1574fb67ed6ccfd38741cd8fea0e9341692c2df1569a6cdc40a14d4c2be25b6aae25cbe6d621d0d3f7d39b412358e59d72c41ca272a280fac647cb4a3958e416bea288296f2a68bd017776420628a25482e195cc803d93ada5fd40f8d5a7b9c1c2f787e4a44153432adefc8df61bdfcdf3c41856f39b4038a9db9f93b2826e58b0a94d7e6d24caccfefe09edb765ac3bc48745135272307c4a42c91aead5eeba39ecb456808e337b2762c815a506a144be2b11c688689277e6f1189ccdd024fd2e0ed11e00ea33a2bcdd978373547c84e40bbd704a6bab65ba9af40687b8aee81c8cf21dc770c8b5cbb911d0c6e21cb0543995c43cb7e7058c5336c1ade7ea504d0cb1414bfd09488b722464e517c435fff17d3a8821245e8ae2c4dba9afc5a86c83d70ed45564b54c3ff484346b008810244255286a6f35522107b74903660e3ba07dca8c538ec6473beccea0d6869158bf2836802df746aa7b63bc239f21e7c300d6f4a5ec5910383982843a324421b6b3afbf16c5735a7c0da6bc306081860c8ba0b8f587f95b020ed54890eb7633222f51670da18209d209df7bcf4e8316a6e7acc80699ec2d013bd6b5699c9499e054397feb425792a9e02e3bd8c115728e33e807cc68c58def62fb9bceb562179f80835e4fff287a92f72e2acf19b64a884fb36baa067ddc7040e5cc6bc2c1fd14b6a76c7dde6115a6c398340acae6884712adeaaaf83c066634676f7ea7126aadb5593f9e3e0a48ff207e4a3710931c8304aedbc49e5cc37686cedb5031cbf1d63f76989e1afb16e986ffdc9377c298a025a225a2bc96bbf0f34bbb87a775c134f448310259976427c6b7ab1886e8a51de5f4e30741cb743c3f8cde014a4f34a0c73276cf8d5b9b5e0d6201b2c57d7a3ede4311793025cc69338791d5414e2b3ea7e82d4fd11547840f0c974ed47ad5302756925d1514d684414763e0411244a35a6d80356ec8a1b2cdeeafa795ee16a21236ac6ec1546a1d9d473d56235dbf30aeeca5ffb7d3b2f5428ad521152efc9bc038ee3bd0a1cf5e5613889bef12419da9bab568acad4e9983a971e09ecb7d69eaf30722c25e21078c9507cd40841f01dbae262c35222e517e3c44ff28a8fd4dcc3dbf8da0cdb7961be51a9a41108b8219a62666f84e6b9f7d8af35859f9cbf5d6183ddc6993b388818a856f0f8b15a1b4e2c50f34645842032888e572f86c5a4aed28ec85bbd27194ff903187dec32e42ce43dcc6ffe9a27ec1c1ac65472b5975288da4d1401d8bb01147398b341edf350768b614c78037466547169bb5401ebfce202e13cc1265c7270aef882cebf061acb82161f9a6c08e53424e4278d2ab6dc1d650f7cd4fdb807412f9527497205ab8b9d499b76ba6e107d60d6edd5b37427fdc20a3500dfaaca128556af57f05a6df68afb6ac66cf874cca2497782f260976a81f0f79a2700eafd200c7f3660e088c36b2ca7326ae6025c34f5c20d59a7e8216efa0aff35e0376626d6cfaef7ed6d19f699646ffa118c467752dff8146a5c6ddefce8ccdae1aa4b63c32a5d09ec4f91736d2526f95f4b61439675f919ee38f2387ec0fdbf64db2ad28aef4704f5a54bcb9463b08b9e5ca4d54a3d78f493458d3c64f5c5af48896d4712d3c55fb6aa140af60ba2e36c3e231474855ffd6f503f96ab9d47e5d0166b2c465db4adc3dd981a69fc23d873559528deae39c96eaa2998de0315d15c08f969a069fe4cfc81a99f678d1e60856b6eb374ae9fecf3a89a23082683fba28a8be49ea67276791e9122af043437302a8719478ff76fca242a18b038ccee45e8e52b5418ea9db7fe7707a6208b37f4a355ae2cee828c0ffae5d9061f0253ee175b402f96be6153b1d8f92f9069328bc9b5bcd17dbd8c798c8ec0c5f7d0a5902a9e8f114d9182bf8a04c3c2799e51a9f741b054810beafd3fe381728d113828de228bcc3b619dce1fb8bcf8f4bc4b2f663be18054b80163fcfee8a3e62b5bfc0f0e7a2ab4f1a1c8ccbf51928d26f507b802c522e444fbbab0c46c9eb649e87741b668b8e1803f0931ac3ed4c5e5f7d1702085e73206ba1ecc5b771fea588bb618b457a13ccec1d1b09684749158bc0577dd3eb8d513f440c5bc70761fde7b2ee0820c0d1671180ef0f53fd4daaacc7e996b6d877586c89a954dde1a28978d4806b1259f127f024a5d82d518fb203d2f069e401550066f04388e29c78bedc24b9ca054e5a78298f8a52a27d34632e34ad131e245b8a9da8530d5dfbf0439cbbcd9d7debda1c1ae7d3c18c3477f73656774a6eb4292236a0c021c7d5702d2163597e1c801a0d3c91dd9c33e175f516ee54ba68ec7d841ff7bb7db13ef25f46ac0d3bd4c0897889f16f71930fa129b8b7614ff31a518bc17435cf963acc6701f0331e27deb4e1f5ea755af7680badc84ba752a85c4f451c13282c232de6f3170c676ca3cd0e1cb33bd7605c747ea8932be76664ca5a03983dcbef9f58f5e8a8c0b0c19dcd5408ed04d22dfa9e92bf81f9d035e67a567de96212af3231e075d4e71814719bcad58dc26e3a461f57a2982a66b61d42527ef09f0e3c0bab48f0ac38b08e74ac040869b1e89d967a6c8664d2de42eb2fad0bca363896fd0815236f0c7f670e6ac66a13b1fa79e74ac79aa739a044b8271e8e8a7a1c2523e0e5d587e9946a7bf985e7a827b13494246e6da956f49e92d9f0a64d0cfb661b99ef41f33fb1685a35dbb8dd9586a057f24dbd4b1a793648f9562bc187894a3e9b70ea665be28bf3060e5baefbf898c9e061946974aa547829633bc34840cac52e0d46fd6c062d40fdd974a6b1215e87dc7d5572d17a7e5bb585158ccbcd4271f83264195e34eaeec9162456639f4460b9c3729d3dfa682eef8a7eed6612479216715bfde889bd1d342291aafddd2e1639adc196593130cf93fb3d4af0239649b856ae21b729a1ed54ea49407609eef193c55e4b0f44061257d0536be35d5cb9e2c1e3a6d12c1210e41dd23dc140aaa9472a68862b1e72bb751c442ca30bd7d1941e0fd6bcd2cf47d0db5702d7c0e62bc10c706b4e0a2484d7128ae598c3a0fde2492f00a2517ac44736044a6cb65a464c126e969f173bfd788017dadad99c93b3dcc12c18c655d30d0e5be17260e6e267e249fe6b53e4c24342f243b6caba6f756582568731caab98b9fddd548cc709c7e93a75e8c4a77432827f7ba88455db82cb4fb7818e7e2d121be51ae4ca76733e43f8b7798c53d487f75e62575c17d3725939e8fec92b724c0c7a67355697b00fb62a7dba23d4a2460348e3cbe7c9ec9f65c3e61909277af5a10b956b022b74fc42dc88c7a27bda2139794712056980f3eaaf58d007be2cf16457c88eea58cdca34693ffa25b85c3f5645851f335d3e23dca5bf81f87882ceee611defe0869e67444c249b19648f99874efc01f82a2ceee40e78c9d16bb1875c62f712628599300352dedf9f6db0bdf3575ae46aab1a83c4220a325280d56c28ed676fd23be52cb1aa50918824ca1c128a90c179e801ad13ba362eae56355903758c642dc113273659eff65a077af0263dd331353f02d124af3d5d1169759d294aeca6d7abb556581abcdb69d3358030f35022f43df2e0cc01c9503a9a11d22c621d863e9f307854ac7b27e2908f28deb3255c1ebd573d6a62732233062e09cc53e209b57ba0f7b916fdf20d8763f76c797b63c4bc3dfa2345ad13f62ebf700de1dbe42b8d841c8998f3f47a2d316910a91560469c92e105b4b976499644e1f30f994bc43f87d629d3aa70063adfcaa2d37ad7bce1960873dc5d6c0537a6afe2e13fbd2f3c589974836ece05cc672d33e5c5d2007e2ce64af772892b25ee55e20ed6a9908277c2d3b55b685b09cfd885eaa32172548cc6dbe7ad655fc5970aba1cdb4d4837daa3c8aa110b2e8822210431255163e77cc9b27a1454a1bebcbc022976a1cadfc490b3f5705aa7048e085b7890b00eabb7896dd9a46f41d78526466ee7fa4900d3747d6aece961772640c171aa8d2c6b0384e86e7782fb58ef8b104b158c37cc39456bf7766839302ffc6d43e77cbf47a0409ff98294cb8b4e444e9bbbfd58460361ce0827ef0fbd29638f593ccbb991692dbd4e557e0a2c80060d3018017ffe9047910dd2b164b7b20fe94d486985eb32ff9c88bc93c0ff226e6d7f1996407cdd2079dd9cea8e3cad9cc5d29a53df020dd7c530259ea4222cc83db2d4f9cfd924f0dc7ec015e08d14b1212c7c738814b764e1f7de72ea1244a061c917e8c03a60d5a4356997d6275559209ddb52e44c8008f8bbe9c5c363f2b7faa860ae18025cce8b89bfd817ca0c0e5acd34219f4716e8728ba5e993063197ce7af4390a0ca765745d36a2a48f423caf8da2c2c4e15676d3e07abdf60ed524e0cdb91a2d2dc8df5fabdde68981413caffc8cea8922deb7148233c35bdf6c616a549d5004836e8065ab2bf44a67fdfe26648bf4906b1e17573842477e0343b0e0f473a2a7a580106df5686228df66b73e756b73873ede270247c49a6886a1d4b010f794fa3904525762cf4dfcd75d4edd0135ab2a674d20e6fe967521868e2180004bc56422c0e0bffe8a0dbcbbdec7b83deb794f0181a49a0bb0c9d149c14cfe935a6b89bbd3fc8cea1e84d4e6bd704f4c4a616a7f997c8b6442b51a83374f86b3834fc3470bc552dc6845004a037c82e424acfa39f91ade35b3bb721cbca848a4971d4586d1c79d8e95991fb3abf11ce4c6406c1293ef30e50092171ae54b21ec83a8897505ecd7f5f44f428a11b5e86b549ff6489b90451aaa1a3afa9e15552fa8b5944ac81d047a3ed56e31583a89cd59391efce72417ac0021995690f2b25240c17f69d3d434995f44069a3647e688de9eb4c86671f8e177e4e006c3fe0ecedd8df077345dc1284f2895993fce4d99279ce6823be514296f33774802aa4ce1ac766185dcd4c220727e63877cf12f10f00e4b47e91da8187501b96d83315468f93af8b3641d86da9d4d9edc04d7d44917121a661ff36e96cfceaafa8dd94a5a7be5508575f4ddd6398ca45eb21c17d44a53d3623cce44da11d713058012c8ede0beaf9772903cde745c57032eb79da86986361542d5934cbdf802842ad5e78c3dfd80da95d988fb9121682dc6634abc3253baa7c8d20581f261ed005ca883041f698b8546998e81a1a00f3114a44d6a2484594e65a472973536f0067e99e54342b97b25408d58fc583b820464e6d56874952297c335c481f1258b7bee078d9514f7174160238b175d748c72f32fdb85d6a8976b3ff530cb245cf96fb101e855d4397becfb60c704447238f51b12a9cbaee120c8bce580072905d65327ee575b0d35614c36e455fd2fa027e12b44b3a4999f68196841463b016b58ebe189e990f0eac3c949d0c0842a52981663abbda89f829ed1ab058a6eb69fe9df2d95d33d20bedc1ac8b066602f02ae706c3155be01c1b6e3b141df2c1c549c65896085c586a8d73b017046b69843de63a31c9adf2913da435bdaea0b3088f5f83a7197fd1ebc2e501828b7b1ebe78153073d35757b54035aeaf91beb512ca616dcfbddc52fac9ee567488ef54507df0e26af1f293c49f4a0d85079194730ceb6af7d4063e07e6295db7a894d667c65897db6dab6b3c2d10eb86650d2693d0bfa9ac0566f700ff746e486729de134810e15d36c57d6314398c1b655f4cbd75c3417ca6b5ec58ea7555c18be4c1ff0e413c9cda15341a8d786e956164c8bb8f82d590e386eb5303102244f0ee6dc74cf6355aa084014a2708e5b7062fdce79fa9c23331bac79eb3f20d5db4e2ae709ba12408e591f08d2426c5824b87bddde08ae213ce095261f20a718c9f524cd3499570e59bcc81eecf922217b566d83b099cda73d2809e498d0ac66a5a42f3f931896cf3d55cdaca24131cc7c57be1174df8fca10bfd9a4944eabe9851abf0c5f11bbe3ae77a42495ff0b7a22ca9b81371deb85badb5f5005e6669ed89fabb5f5d4b5625ebf4f3e84177d013c2861b3c752e9bfeb4af530d607b6394698e513eaafcf9ee1fab380ff579105b9edd271b39f0dea8b447d7ba03ee1f0e7e3d5dcf20765a6ecf15d9a966ccffff9e2caea87dcd8dab9eacf6ce54c53a4493cf340a1ae7bdb841bbda40f9c81f8680275402d59330f01361a26725cbdd230482a277addd376284bc8e1123cb17f94933871563b40f34aac0bb28a710357009847f78bbcd715ca749f00c57b5f12128eb3ea5cdc7033b9972db310767f3beef7c1ed5ee9003b66e2753d3326c6677fe9f8f555d06d65b40f867965fe7e6d0890286dfe7e15bbc5e306207765a3a1be4d00ca71ccf30080026fc512e6b9db8e8237bb202e0384276d26d92b8eaa9767bb6fb0bb5242032f5a21df3c61219815fde5b571191b00ce18e0ab42e0ee64793ba5581e52a22b13e694376e1bf94461ca9c9dcf15ec9a86a7afff60abca032c8fc9a55b1adc708974b2c0b7e9a58f32cec23a81f91a22b80c08465376ca925eece7407d19be432376a85bed28d9e129a84d28b3edb2c9f1d1dd296309c9927e13628668285504f29bfe041ddc7866b5e42606c25d0721d1a63fd6fc64c915cfd70d85d9021375b6c95fb4b803d1c56666a657e1d6871dce3f728b267830357e66a99194ecaf8518c0c554bc92469fc6d354267e28080ace35302b066c89205764752654cfe9a599c97146518789bf9894fa9ca6e574bab6d8590c456a9fdcfa3dd6f79c3dfc8dcd27e40fa697939096259fa0ec811592d5bae52653b371bb5f437679a06b363b4615d442dee2966b8a9686c62cb3825202885aee9c288e77b8d130836da64a3c286a3c72170cf354b2f84084b7536c866b4d2ae613034a04950649f683001c7a13b14d4f0cb761248ed2a744b3cdb2ff397f31116e9d9f02e87d1e913a33b55485d484c8bd76e305be7cb8b66dedde79d4e5aa88bd3982f7e7d34d6f1fde9ecc49e2ab204b0ca12843f4bcd8b705372fe5e0c0324d795a9fc111d184d4e84a5731c793d0052e11fbfdc829236963a30c6052372b5d47aff40bc4d8a4939acff4eef4a423ac1ce459d30be1bca86f1d95fdd4e53b461f491d0b73b61e6cca1653eb284e767c8f0ae7b253f6a74edbc87d56f4cb0c76835fecd07922d249bca3b8485622de7876a864d03baeaa1bf444a3f9f752de39371aa4aceb1aef8b13281adbef543f99ea4cc2925d7ef4bdd14533c573148400d61628d022a75faed0600a51da03181b8c83b0faeb3fcabad1ead38087ee5d0b5c303e0e94355ee38180ecc119ac980a9463c90075fdf1df2358581036e300569d73ab6d678a9a0805fdd3a546ff2cd1c50e958d95f9b3ab891026aeda6c8fe46e34e3f9af764b495755c8ade803cbafc5f25c1542b2476ab4eaf0221e1408b47b1feb4c422f651ad17a7c90f7ec8a668acbedc23b1e7c905ec70250f6bed7f890c6df94811f9dff3a90681a3f37dbe09b8a3bb07d1283606d010d858a70251eb461d56580dba2f7ab082e4f8b9915007c427cc35e0292423c25447a38a03fe7ab5ff6d531688c7c95501980a805c85b05a5791d02627f3256ea7dce91d80ad34328eb47d5ed73498e9f7a6614d81672ec25c1f6c60213afce3503061fe23925898f8fbb8cc3390645bab9140f5637b368df40f6b3e788852163fdad3df14f3594b61ecee7a039d45c400923da6ef5ec30ff2e024e654affb605e63c006a1710aae2976f638192fd2dcdd79855fad2b4edcd3ee326fe4ddbefc81d965cc3de62dac4e91b30617c0d88119cd0a732a95e052687df567621a668adcc75a1ed66e1430d5dbe79ea05e8e37fcf8f60baffd9c0f82805e4ef3e1cd8f089640ff688831ac46e9aae75d61f8a350cbcda044fb0677bc1654194ff945f3a08fa304f84de8963d55c983cd87970f048bd5850c076c2f50e888af3bb8ca8169161ed6c536eee701eb5942e772c6ea5654805be65049a5f7db7c6fd7597d6a07c163b4e4edb69a3574b0ad8e9fd0459d9ac59a66f17085e3d374a9b31b49c24968efee141d55339100767cd54c82568ff1940f1df4fd45bf649c20bf35d2020265ad6bf3441d35b0b816200ef8d4f92980cd582bf4db9ac5b8308f00f5a2856c80212478fc20abed8de53aae58672a1fbf6f6a2b45c401e510882021830a0b295936a7c4314aa050594e220106a38cd664110c66e21737f49505f6c6244838c33e1a95424677a7883b2f61aa30cde5fda0f559599eeac1f66b8da5bff86c16cbc54b2412207a53fa4ffa37f819c39fa9098e428f4ce9657139d9b4fa81d58f7d963e9dc88a45c0db0491160633ce4905dc920ac4df81afce94212254863bf4fc37cfdf7e81e50961aae224af0dcf14947253c85cb6d96ed309edde2e0c287919da12da2f3c18cff80a38bd5089f95701135ae82d8fab3423a9794edf80fcb6a95fee15671a7fb9981ebeef5ce57f0c817500aa91e01bd9d45322c9e551e127732b46293fc567ee192b52fdbca3d550c0a71ca2ce8beff81635551df982a7ada2718644b0221f9ca5e3c9dd0365a6e7652d8036ce265670e41b2d0ae10a120cd50fbaa72ef498753159f2ba702838b522809d232356a6e4c8a683c420010b6baf2d6428993af82d0cce4872c199b34652514af95ff1ff3cb5735e7571e6ffd60728d7b177b92dfd79be0018d556b8472b2f3f9abdebc422e4c5edb80c92ffbf9d88d1bf8933732361b042731e57b60a806fa7bf113b3f86ce53ef1fc78d3b79620cc0e4a43ae360069caf7ee6dec0060f82ce731537971b302f2caffaea3dbc51fa2145e3acce78d9ff1ce65ea8f255630cba96fb2a73d71bf9f45f41da7b24da4c331c2239bab651f12d8f842c063545714a5b5713367720d4f39dff8fecb2d56f2e37d0841f65dabce510d2357888baa54dca52c2d8f87cc667c8be3ff34912952d770ccd2658cfe69032c22666539775ca3f35e4c51f657ee1b657383a326ae1f152141d8f63899f6974229e5c429e99ace9399ef6f255aae530ed6a14996cf49c520274e4df7afc2c8a356376233141e44cb6c1ca3d7a576d72b6e6990d968cb794dc73f42a5c886edaa5c37e6791f1fdbf90cdbc0f1f0819ac9913fb04194ab64af3732b2568fcd7fd47cd45a4b0dc31ef06381f3a38740f8396b5755436d28b398f1025b4a834ab44ad0df8159111ec5ac4ba85d6f425ed900003eebc25d5bd3cf091444153b1cc3186c116183628d9d5489b5abe6364dee089576d598eb8e0bf9bc49a3a353755f9d49da0af244b95079f296511281ef9721d4eaf318fe85344fb1cb88f30612909f09c160074c035eb62efb3b23dc630bc894b75ac571197e24a404b35c8345e7e54794bd56d540752184972c9cd54ca27fbc38f1550c396c1d74c95a5bc0b42ab48c0571dbf47065fd163ae4113de0a8e46c56b1dd243dd9f8e7bce5db864b9974ea69f6938a3c60925d9f9474f71f7c303907a59718caa4edaf48e5e0c6d3f7c660793701e13be9c75631cd1cd31610a7849f8bfd3ba9433d2f230ac7c55424a213db38b0aac22388764c515fadb249c50106e2d1a7378c9b88aead21cc4c32183b475395b3bdc516638460d832879262dfecae2d8f62e1ccab70e5b3cf51ddab56dcd9d3405582d9e8ee4fa8fbf6347fadf1603a0f2b54f5a817e5a635d8e7f8bcf80fb10126969bf4341de04aef0151caf9017144433164456d4e35edeaecfd078f43ee16dc1753675a500d78e94996815828c963a853ca7f73c8f5de156bb6ff9be75bdfafa1372c9c46c71da354ef28530307e14de1ff78c42fc1be875ec619d2c5225b998dc5926a971290eb6a6a2b41bb8dfba3f2f59bb074b2167593a73b3d5aad0a7e3bb14500921c39d7785a476283ce6fd8a7353da91a00bfb7736d4f98cf70f9d086f1f2a41d405e149c49e556eb9bbd33b03cb9fcaa6ec4a4ca17c1a37d9bcbb660eb3947fa5606f58afbe5f1d8e015cda8f52ddd208b62902f35d618f90ba65907d7b2083f39e9b378892fe58ffd8a99ed6c82819f9b5c8b8d56516798406ce1af89d126ce2ac01ec02b4def3b67b96c330478a68ad230de5a7502540be588cfa900f73bfd86b58d7c64232b03c641e8b056089ccdebb5aeffb4bfd166c54d4d5a83b1fb40097f9c8f12ed80684060b0554ad33b9486d65801869d2326148326778fa1a48cab7d10c9453327f6118eb3e2daff65e2c15dc1078dfaa22927fefc58ad79969692aaa373361b4500b6a9ba237fa6673d14bfe374a1fe2609a21802b40a87ab45332ff9b4798755e9f4ee2ee2bb64e01fe406fe5f0b30baa37a39c974c722fe2c51ed4c6bc534f9c9c94df63566c9d0382a8d72a82f65f57cac6e88635a24b0f3d7f372073635294660e53731b2613a8adb6287a4a901cd6db2c4acad9913267fe6769cfc1369d12c6aafb826fdbc017d42c924546cd82589374506fe65ea09b8fc6d54eefd6dcf4681d91155c31b88cd0757dbeaabe5d0841ec50945f1107cb3cc654b0b8b102ba5b171afd7e88844d7fd21f095b2d3a56d6d117f51d12fa1d9444636ecd33f9b5950fa10f895b47e04296759a745cba7b682351f74bf12171e95545cb543361bc6d9b8935c1ed91687e73b89ec59bafeab2ff0a00e97c72d6d3d9442b652aa2ac1f57088f804956ac1bd8a2364faae32d9396f3e54b279d95ad1f7e8b8c41d7884c5e7fdcb38e89ad085a1212c9e8bbb38ba9346697bdf998179bec324a2a63a87754c14b5e91511fb533db6e1e5c2016419c0e9c4a6e5fe172a8a9ff94c9342688fd7c4a14c8d73e97d0decaed7f50b6ff14959db41fa8b067618f3e52b206e24d6653047f8a1bc1a769b7a808e98fee342d2f8a7716d8976081b1cfe16f234bf49c5ac1de9f5d98e3b18a9ef5b7d4aef131bd890cec237b0e5a5e7692a078b293f90e70821dff4ccc92d58670dbe1146df485753ed54eebe1d7999729e00211a1f6f4435095ed86e7f84213e722777381aa4d26ac381be9939644565e82dc067a996d784294f62d3cb0df31fd2081472d5f38ad4b95c7449e0561f05f1d7956de6a7ff5e6709c38da503dad07de72cd11f3590fe3b8d150c19c287d4ce4d74672ff95cadd6946da513b5630925a3344f5ac15768d467a8c7f20e3afbad1b6263d107a315d14e64236a5445fdbe1486e415aaf283b8dc23f9ff6b10f31a210a22d230412b01a6c8ba3b51e06552c2c8d85ffaf0d30aedebfad8ac128ae9e6fba90c34bcdb34aa6bbb4b189772752ede5f31800e58413563878c292972237dff99b4a556d58f4600f0b39d614ab8d94d9e06ad9e5a1364c6292824e73f06c86e7e73780342498e5c14c92b7a1f1cde8be4762f2edc9b6ab88d3425588730d35dcee1938eeb1e530b0a207e875391986f6450585f98dbf2d95d7b27c0876bc6d149206aa502d0a7a1338534cd77dbf6d259e73132e57bf77a77b6eadd2baceb64497a38035da4ee56ec11b68c7e55c7a1d37f70b5ce16dc9e463c2d23773f43b0424bfe86d8c077c8cf180355750ac61be9aa4ae7dbc22f5c377804e2fcbb30a194678607c2ed1c30e02b8b124d2292e05758bd663cb7b9c1662e462415eb373106ef7128d3d208fad30b8b0fd30855a931b778873c553eb751288440abdd45a95eeb6c29b4b1fe1ad3df7c9c366e4f831013f6911b6084b863b68c61ceb1e80a57f5b84d47dddfe85ee35709521f68f3842a77d1a7e12c8bad4f8d137e3780b1ebd1ccce20ecd07e88b5c86f046d4974a1cd1d59350e923de98491d361034e516a9bd8f10ca91af9e636703fb69b6c091713b068d353ccdac853ad1dbd266a52b27157fcd941ff3c04663775e57746d764753900b8777383861c011aa001724207e269574e028e3c2097a832b8cd80bdb48949cb7769b52a130399a2c6134f445dbc983ec39ddddd2060f970abdc2340a4339a8ec866208f5bfd0dfc9326353a7cde4bb0dbcf7d1c399eb8397501abedaa97c08c30fb81b9b1df56bfaa3965843ca32148f9b1d657ea47bbb25df902808116965a1bc7ec1d41cdb60f05a7b6b96a99d50989c8c17940c1a4753b9341361b4398ee70da7c13dd4125a24eeb14e4127260c009819bf18396dcdc061d39e38f14a494ed5951320212c1bf16dd946e0625cc7a8fc7ef3579ad336fd0d2ceb7aca9a01aabcda30af206bbe63d669280b60681d674bfb45551fe0c23328f217e066d973d8bd3698edb68c55aaa05e560689a26159993f5e47bde6a073d09f73fc8d09bdc3a9f23a14099b2e1732b1fbe329bc279f12ae5667ee985d785918c2572fb16c8fa385ced004d22e8368a309b4f07778ed71e8f17e2eb2b7b2c81ac548dd997c36a38b3c95d893f5f515dac4e871f2b49289ae83997fb4adf15884700d4e21501bf30bab7f766db9de7b47eb44a67a6a1bc00ca71ce6b4d673f962747bdc191d4db50fd717152b11d5d4e5bc7f6afa98ef8fda1b57eb375859ccd706b0043b60905a88bb3bb2fc1acdcd41714afeee2dee038965451d1e0b67a8c91759ea213f8a2c86be1a8baab3e606d5e38985f1b5423f4105e58ca0a1cb9867588dd2e1f9c8c5bede0ba3d9af839330816687cf866ff85269f04d5de01f5b7bc0aba824cec596639b604260491d7ef7be4b7233e4ccf7f2eb46fa733c2be38b7b6679dbed666148901372aa326542a9a80f14dde08b9b497b952fb2700ed6cf67f0f87e6bfac0590057832e029b513c4b42226afea154d1c40d0ed0db5510f0903ffadf3d1d9c63c89487f1e7a290880914b5aecde02905fe1abcbcb91d1f9a507afa87bd83b6277466d71bdf56d6812359c89d11e3335fa40ce2fa89e2c6e2feef96a93d2321c46f698c9dcdbf7042faefbbc1266720a7cea02c0d35d07a785c7110a1a2cec5698f9806e34360a0e5da36d344b124b190e930cdf2c262e8a52078ce0418f2de6267016999ce7e19325a4db789d3293caaf904fab3b4f36d245550da4548bc7c692e411b830c6a85148b94f5536f522a9bbcfa6afe525f9cbe696162e0b7ad014e2432485cfa04ffe999407b80337a7ab2433fddd18345bcc229c8391c2639a6edb6975ecf2686999a96d51e4e78a03dc5e152923cf9894845fdad545d15daf578df649179c038d883771816362c53185d86f0cf27cb9f6d33202d4f04ddc8500a726d58ffaf3a33339f548054535cc536e0ba5c34cedc8f35b91ce6dee63d698c59f0ee3030a797f06ed5db60dbdb9210e1c208a73989c461fad27c28fa07c8f0f96dd23e9659e618b01a8b36c6ade0c87c1423656ea057beb5c6971ab61349b632ab47fe3b787348de9d5aedec3aa5ccbd770201f13f47940ffd610d9e649bbfbb96d53dbe4387559cf5f281dd98ebd5887d7fd6e891c591385b292859eac279d603c629013be01adec3640e952b4efaa9c07737b698babc5947e0a1078f95528dd2aac0ac802d129122a49218d2820905fd4aa871a13e351c7f9d91cfd5407ffb2ad357139393becd310a4d2e05cb3b03405d2c664b22c876ad194f0363c41257e6da2fb4d32be7db01d2a2b935843098fe9ba2d8026751ab14346383d17264b71d1819cc0f81a193529d987b26993c784ef031ae85c5ee9d946e083e4b74c6d11b2e28a637172ce588eeda39f30c095ad9cdc5c3882502f0706e3bee74448c269c7e7a9eb6e09891caae568ef573815d62a79a08dd2704897d7f5b7c5f33615857af0a096ac5475e67a961e1bd7812f2de78daad839d2677c30e5ba25be4eea7592c956e0923314d960f7350e55838d6353d49fdf80ec751432e80b5beced3cd85a68cd1ee4b00a414f36b8393655d0ab07601a99d34b1873514b5b7e1bde9acf38e1eed9101fecb63cf6fb2318408d108a840a68e7e31430c9a6812e651dc968f9c47a0b5feca543aff4c5eeab05b16d3de43e56b8ff7cd85c0fe9c157d0f1d7c4bf8f63a6eeaa33b41757d4375e2d89b24347886bdc89e5127d1d00509d6a73d5a4983c9731c1b313b861f5775b06dca0b23fbae93027b2594bf4c0011f84da44cc0f800a088bfcef561c9ece7cfb9c029174f654fed55a373500a958589a6bde9a33bb47eb8ab845bd70bfc1300bb269528fa7a65ded71b5161e6a4a7108fd5bb6056c20a62d6fdbcda16efd7c3f99d6fadbe51fa2ab70c61675fa58ffc1fb292fd067e3502f8b34e4e4b5225c0be5256763bc069ea4c35f93fab58aa6b49c401a0d6386347996fa75a0d7c826a2502f01aa74ec2880f3f129186b73742d2fbde20ed72ed4b94a24557591e890766156656f8ed4629dd42cbb95f54c990b34ac5b012659fa0924a0843dda166f9f063e5730d84ecd83fe7e552bf11c84a0aa9968c91163a275270b3cc98a05c5e35071ecba4a7e090156f483f10a0ef4c1998f3c1e9f4f3bcba676eeb45d440ff2c6cc64c38affe0846d37e4c29d9cfb315b8c30389eff2b40eac47070c53fb8d0778171f0ec65b5a70ed33633aba4b82b701b28ef86dd422c092acb13f030b348f264d4a1013bd71baccbb47ff6e1a98c899ae1d33132af5b416f2ed30c5027120822a753d1d1e522c898cea599b49f82b026bee1425f8df03add2094af006494f3673b1c4812d27414dbf48b6d2b65f17a1e0d5179b3717746be605016750c3934771581ec0cc2798d893dcd9f6962b7934c864cd4b53d949c8308e5db3adb897ab71f7b3589348ef71ea9d000aef8fc4cc231cc96cadc929e29482155400f2ff96444ce9ba4cbed119cb9269da1f1e9e57b2b1ec9c1a1b1d8e590f82a0be96ca56c05198877550a4d2deefb4cf539b22987e6448fd628a0061ad55ef6f70eb9c743d5c527dc17bf9fdf3c8b50c1127c2a751610171c228e8881ea408ff34609ab61846f8fb976457227b51990aafb1e9bf3b37f0f86af64192213f63643def9e4433ac7b6d9199d9e70dad85ccd9c2f4190f5ce943004dc1238eb969434fcbf6dd733adb09ffa558bde34f12cd0f902128e3c0e1f81c1a5d5322dd2953445eed934108ac5c627401635aef3bd124638147947661f4cae9ea75fb22c7bc8997cdee0a05c2aaf180868a7602b6dec0501f503f62f6ae0bc1203220bc934ba18a2dbcbf74c9d617dc54d85bd2bbaddf3ed715c901994653c8072ff72912e7a15d9f06567ce3abf2fc76d4d51ac310513b9701594035310cc629edcd6661d5b28721e047be9785d6630fc5d13ab2f638220568d85ac97212690339529ed5d2935fe8b90f07ad24c80c95ffe2f47bde8c94c22778d4cc4d3663852c1a76bf2115fa5afdb009bb2004b23bf9bdbf42cd9a3ec9662a7bd1c8bc53aee41de6a3539d585d7b2f2c87ce78de3142bda6651a816e99fb267c9010dc8187e737a166b3a5e7411015647ea346d09ea260ba18afb4fa342c6788d5b144670eb6a90d29e63a4dfc8bef22de16462b8ac3c7106ba97b7820f22c09fae2940ad52c96cddf8e7f876f87ce525ec1817b17293a56dcac71c2e4df7964e298e029632587d7e07e2a5bf150c8626e04b787bfc6a2ede38c07cfca199451afef3235a241e81eec4302125d83756357d2da7371210ea10b6800d7cb90883d95830619dee988cc70b267894f2c7233d54891b3c5c62ee27fbcf3cbefd3a5bf8bb2cdd8244d1d071161ca90669fe2bbf8afb6ccacdbdb9a3779cd1e9459fe1dc7636af90ea3be4ba6e830989d35e83c6517d8e943a88d8d15914cd65417e9e12ddeb8bb3a0567564822b3ae21412eaa3a3cba3cb951e345a51f84f5919c837c3c6b012704f6789a188b01d1366f61173f9ad2306a661f9955c15e32cba82afb080088e34311364bd46bdb8708abb234198bcb6da57ba7b6525b14fc4b6401cc58ea01e51e7349f46e6097d67f5556dbad1e03aabadf86c86131b7d1e1f66f92fa8b14e530183da237629f79784f07aaf2e70e4d424ee82360d2a9e89635a00bd682ddad9bd9019b4a85f074efe482b1c75131e2c6a7a10948162323ab85020364386f34c5ae6aa651309cf204210731aa2fe85a3ae9a7f6dc22b05645e0ca5680b74c83ce8db1e6d4b34871eb73dc6252266021e1029484612eb0e296176d0cc8d3ee740d9bf1409eccaf421eddca588e38fdfa9cb925daf881d7966b1b2775f521423e1357aa55f1ca1d5a79fd9ee8eb3cd6bac170bdab950fabe95f007762ecfc28c9092241099acef46a0c8ea9a8034134c4dd95e3cb98c9097f37faa16a68d7f4de71ba7d9c13c62a57c3b941fc76e7175d206bbf4b81cca0fe0d4f2b3d7f66f0228c540c554aa5c9ed3dc13e30f39db1d04718a12b5055743a5c86600769c5d8dcf686fcb5b9966ff970217ea7cb20e861413d7a9b81715da50bbcd0e8408f5c934a904248e9bfcc9eea2e6117fd21d80de5bc62cbbd4f8519120dce77af0fa176bf6836f38990260bd4b84dd4ab114f1e7719104ca31aeeee4f88f155b117c19a25aa15e5b579d7720ad02b2e6ff6508cd98765ff4c51ea61aaeb93d4ebb74602ba977e0b1559ce5fe93fe8dcfbfb913297d1e19875a3a1499cba55a9411eb378a276f61be8d90a50a09ff57cffdefccf32392cae5a718e1eb7e899b29918fb3c1af7642c3c8c23a42d24c81b3fa531da63d78f57c1310251ce6706cc094b087c99a595dbc878c1dd588459d44a2103202b537860be2aa0efc66608b3d7fb359b813ab9093b86222e4651a67b5899f73be969fa07241cdf9d45f34efb0174d4521826e420ee1a98547d1f2f5d1789c8d6e0774a51b7b48cdab4fd4a134357aa98dbe58eed550409cd7dbd7a078fdee5b9ce1443e48eed45965d74b458c0026e5a788714079bd36e4e3a7e90285b42f1b181e3e37d3db1fe198c47083dd7f54d08ee3c34c82b8d5499154f7e7ad6f343419ce6ccf0a986803dfbad037aba8469efa80c95d743bf5e963aead6bf06826422ea07c4b5b651e5edffed2a56d19855649d773d40acd1c0c469f72bd05b32939af302350c1b9e1e042f4543f90a0f9bbdad66191a36a7c6f8955698b49336449cb88eaeaa0f536d6b7745d9d09758361ee5cf78c2b1774b6aea203ad455eb9cb9bd7560ffb020eb97ea23bc04bb5e1810514b90a4641f42131426b1305739f7e6d446a1003972034dad027ffba54ea5ee833ef8913fff315ee8cca3b219db630d4c6c6c8d7232f5b3ca34f9ee8fde36210a5d2cab57efb124c347398698b9226d6bc2e05d083a54c2e3d7c4907bd198255cfb0dd863b3effd35fea18773ca2cd06d39bd8391d188f0f4e4c1be5cfb8a6a17195ed040d72edde2e68abf6bdaaa8c5caaea7a7d4b4d40ac06924790cb43fa871648b4bdd743009c4dabef42777c5779c9f1c9415c339309191fbfd76fe9f4ccc0d7343302182e232b3c2f50bcb5e61f0c81326b811c51433312634bf61adb21bf7a4ca783294522c57a975b1d1964496bec71747ac05e29825b0ff47067a8167387877fb60a1a37c62800936ba6af1b27a69184902c648006ac42ff01d4bdc00cb4dc03dcdfa52c5f09cca93808722e13ccc7762c3e630f80fd32bfe35a9c2eeb9f153415e284bb4b67c5756c23ff6f7e9ae7cd042b9e596b09f2e8f3666fa86048c7b19ce0c46bc68f0a9b598d08d47cf46175fffacd3efdd0a1c2055767879992dac0f9bc037290530a19de10203634ded571bd07a9fb7413b9334303e4adb3c5a4a022ebdda1338690ca242d0a1ad10431e3a881b944f2db57e930326fea0b0f90bf4af7accf8d83e22a6d94e033f33360fa47eb83753af3ab007e2287cf65fe538b67fd953b86a7ebf1d6ae04e2b4de8fc4899ffd0d7d6965e9a30239cad907bedf4c2ee8df86d379598f13e202ec9afcedbb4653f834113b727f778b8164030a56a051cbbcf4eb891de61481d0e5a253deda61ff50b9027f317819b9c889adcaf6c83f3e7b6b59a489c032e9abaa53a3d0f7c430abed17c3bb7ff73aaebc2562106f666501f28a492599a45302cab1dbc88215810bc76f8d5a2e0fa371256f0a34164729d2b6706ed1bad62db6c9e1de886051fb1208ed1c3587d7466aedf56d9bd9f9245224fe0869aee4ebb597ad21e7d6487214acb83d1d7ab7b9287001d07859a3e44b46afac36e223abaac703dc28841c270ef6bc2d720d8c175d9044c5f37505744d8b0037d16a99a4e8f976c941c8c6bfc1fd2891cb36271f4cf6527cd48af03cb9e5f28b315d806f0b84bc791b41918d64e2ee765ecdcc1cdd2c23961f7dc935a431896213aac713e8562e31463d9d23a27f476d4eadb4a48a69948e24120b60db8d4f21f39291ecbe284b59b5525d3deb9e2ca65c178b1dc04ae4b4c0b5c296aa07d1ca3ac9b35ad71d3581699919f54a24de2ba794f21a6eff38b4d80b10ad3e9221fa6f083a47ef8432ee29646d4a3ca35e256a2afe87df1917ac4a67abdcbcc352ef7484e37528c02cbcafb3c8f8391df52af575b7a119c7eed8da865d84693b00ac2ed5a2a75d1e328ee40aee9d0269aeaa465d9ac150438dccdcc6833678e5c51f22211c8d093cf5ce16bd7730cbe6d75cff5c18f83b2ba7369b4c8f175f8ac564da282c89297e4b8145494ec6d9b284c89f20157751b9563dc08e868cc738230c2a7d6243c65cb0a0e5d732ab427d0cd841fe69cc35159665400483397622897a999a7f0a0c7ec011c37a38c7c18a8a7d402362ece79ac60b8ab13250c475a55494dcfa061d16be22df604755ea275d677fbb410c74662a6cfbc1562e8496a6fb273b7e3d079b119c6eca9ae92605a8c44421b84c37806b3be159434c6bdac319658e6961889fc160592b42c84387d319d72f7234febc15cf7f53647b5b96b43eb6a24f778992fe9edd94a28b7d15082551278bfa87c417d6e8a7b67425db378cbdc176477c349a903831f11a4ed3b7d25d2c14a138b847a19fda4bb79eb98c728b7357a004cf8acb7656bbf071011242ce5291df03a3dcfb4dddc9b62447fa7c40242369979e6822ce7761b1df7691d93b4e7addda32f2930b87e859e7e4482e6c0a3c84f968f41423079411ac3f706b2858bdbc263b09f3f9e8f8c8947d44edba22b781c8ee8fd09b2ade0c14752c6a4e973af4192786063780588c40864001c555e12177c1bec06204196c27cf0a2d1358467ae2d13138688300fb9f90909e10e5b7a7670aadaffa2cf59bcd4590444db229bf0632b6166050f8f8f5250d03990c6cfb0dfba976c6ea77d31e540adfd0cca07777e4248ea04cdf05487395a26c5ee79c43f1a53ea6a3748a4b16063d74cb5b3720eb71b0bb61659bb608886334be426637d6b650ccff1a408c87d8357e9880db00e2f30dd59cd1db128f4debb50a4c1ea3e197762b376891d39a17ccb02626c51985e89dc55e7b900be0cbfaa27308db30b626eb200db19f3cc61ed2617ddbe3b4a0ef36a4f853788b5ef0da47322c343abfe5da3b101ec76fde8c9e53dc1f90d56c8d97b48659e622c62ed9eadba3454bd37a7444ce28a577ccc4d03f89e735d9e3aafefe5922b096e9f9d3eecc0c8213622f89e4ce216fc0bd6e2546651bcf92db115412475a6cee014ad70a3c3855aedf72bd9351ac983bebf45ab13c172e6b87f3e0b2be3c019c401fc9285daf966db25649a9fd41cae1f90626c4df2e185091649877ab1c839650f825bd9b2ccc8fa31149b5edab270d441736807722307c26ddef97adde6282535ccda95c1d3c8cb67c9d83c189e66510dd499935aeb0612cb9476c747bec40b152defde724d0de55965c6aacd0345bd8d5530673fcf64151b8e362a3831581c1e8a3241398c77df701d2c5c7476f6245bcaee28c2fdd3bd37e736be6969b2bf0b0915504053a63b6840fc44b09a8767917629153dbe4daa7152b1b98ea72c47e3e5057f0a769d4e1870de2b2077d928cac7654ac88317125676b0ba2c8841b6eabd9e703f3e5502e9a5bbc36843e1ee6075bca193253c66ec5fa340e0fbee66c15a65bc20f7e5307ee60158797658c3ef657033ccce0e4a863cd4916b06d1fe11de8450355034f7cda2c3316ac5a9ea20d1521fdb8e21072d95d4f5c30f33c4367d93b61d4db906657d7f6d7038c0bc7232db20b500d3128a395fb5d29bda60b1d17055ccf64f3b085714fdb30d48458d3d23b7861cb344ca2459622c997f7636d0ecba83c258a1d2486eab799304eb9fc84a3c7ab1841b79a2e6199514beca60679192b45d0b1801c2a4464fbc7e8ca42d36a90622cae65b299c81c978a177b9fe9c1d9cb172e2cf59c78aae64087f78b32efc4b0f31f53f780de148431b5fd7168f462de4e3f305f79791c3c6846ac82e11f21305c4342d847e2c197d33604b71f1fbb46dcd92bac75881ab62764da17dd5bce756efa51ab03d7cd619a63f4351867e2fd7c69a051b419395fcceee2fce46934813801f127546a6207742514ae05cc14b356ca2069a47f15179da6852a90bc1a4e885518e8cbad26c3915d7b6d23494949da613e3272027311c10b095a7174b14976ebb3efe864b663365a03bd20855c567681ca8d07454c5576d2d68d4bd2d5d1bf78c81f9de9dac9d4c7a8711de383a5197ddd829c195f3f98373585560beabdf16034c166e90b697e37d65db606aeb5851f18bad7279bfe75ef9a4993b1e4d3620ce101f97c84cea194f6da211d46387166bf037f06c616f9a858a53022d052fe33d96e745c8715192480465c7d67947ab0a5d0b7aa99de1b5ff8a7ffabce69deebff7e2f32437088e661826471ef65eac64fb6d74e9c03b0f2bf24f85fdcbdb67613080f4e26a40c785e72883a03f9456d67f1c432f30375c63931cdbdf3e70e2c3ec86e3b578b39c76881c1a290d2b16058dde6d77bb37e5783aa91aeeef44cfbb6de99fb7593683d881a21ad072824f1e77ca69a89baeb0b67ae6c7f79e38f55da4fd3e6bf3e573223304d370c65679eb2f77ecbbf13ecb1f3205eceb12a5a88b383ee752ea015c5cfb70c9e26a7ec62be159ea9a28f17695928139b97320cd325c577762fe44474f428e4b68a416e96bbc514e1a35114f050b0caed4ad62ec1c3c66c6b23c7a50f9301c2b0e43a6292219a976ea1508d9037e849c62ce88d93ea1b851ce51bf7dc9143bbadbbcc3c820f4acf0a08d8782357c3e0445ead22c2e6ba0a963b46240ab8f2d72762e68209bd2f397f0c09afe786787e3fc55ccee0bd81421b3ec0c3c65b99ef729cabaca951c69786b957d0246f01d6b4b1a2e470b9af64cd5f99e59e71c395ed1df1d7112d32f31ae2087cd43e9f92cf7b208669f56925090ff031f1458316b3bdc34ac205b9295362b9d6cb8f549c6bf6ecca800436cdbc927d579aaaed82e0cbe0c5adc64610327bda601f8b676c4f5e0cbd7f3384e1381608ca2fcc9acdbe4039a7c2bfe62209802d1dbb1ce4718b82fe222b14215d3da2efd0633328f7639776dc85904bc5507e4b07692a1986b13e331a8bbfc2784518a4e56cb0b84a9d0572a5292f4c1318031fdabf4f1b71d6038f819bae7f0354232d628a0f6faa346bbb26ca9163416ea36826b4953f7e8f19eb33af1f554bc277a37f007ff5ebe2c213ccb9ca2d8d67773bb9c5f9a1205e74931210bea395d3a9b3a42580f9448117f17a07dceebd9f498052035ea0a73b7bc9dfa5a8ad270f5920045b16aac74b000195a8210a355cd770ab5ea8600337da40e9ad031ddfa26c3f8b0aa83fef466fa0caf0f48d8eaf1f1dcd0a6d4699568ca182cdf87d5a50a3792004af713c1a2d61bd4117a4d1406aeab6de7c8028309b09500968bdb1a6c7cc31d4e6fce1f1b58a721c85223198600f55f6157bbee8ae89606b93b3be8a6f4b93ed202281394b9795fe8dfc5b134f16c70b426bbb8e6da51862be96f54f4c99adc04727f641f6b68ab570cd5de36461f64223c6e6ffd4d6ec211183cde3b672fc1963d63424e84a511147530fb694a27c618dc993cd2e08ec930ff9b8cd5123dd61a1fa34731b693621bff016ed8960daac4ef2d5d0f91c1a9b9a5cae05510dad9782e6ee8e5c5e5764fb2a79840079fde8f884c56029679abac17540e33526382243ee67aae527f497f62bb90ab09a1731d006d45c6632aa66a2f046a7937777cf8decced68bf7910df341894ce4c9c4a4c2c4307d92386b8a31dc1662bf9f9f9d4dbca8a512b6edb2d05f0b96d0dc8123f14c3d9baa2b7e0c132f4b38244e7f2731c00c349c7cbe35a09ba1aba4ff72905ef311e4482e6d5c92401d4853cb2dce125cf1b0531948ed6cae4edc6c327a58d04e1227745ce652664b4db1cc6f09fa017b88b06091bd730277a6cfd0c99d34c8b991b21d40c6ee29f19a81ed28060d1b08acdee998731966784ef1d6eabe62c4d38770ab5bf2b85ab5cd8764f74be0b4765ae26d1ae39bd7570e9cec12a0cea000553530a203d93c7f4d4f0e7225e7ab39438401b67bca6f5f706695913be508e6967280fdc0243c1d4bc61e433e51bc4b636a123d4603dffcf1324e096a0c67f00cc025c969b440bd78500da631c6eda8b1fa253857b16043c4e562f3d8f8a3ce8cec4f57d0c5f4755248ceef68940cd2db36ac601137b4671ce2af1a515c55f30689466b44f828bcf63083024a6d0d4d12a3662438eece4514b18a1d4da6b0169b1f8abd4d2b5bee8e1af1d9b5080224e5891326d22706d91a7457f1dfd0b3b2bc88c87b368ae3cb47fbba02d749f662302f06bedb55a3c7f404a35deb737b85671004c6658e72f8d9fe931e40bfa69a18c41476c9c82fd34ce5f37da698aa14645dd1308a025a7ca20e5c645a988260172ecd8cdaaa4869d45fe64074071e269c4c5c44945092454b145f1b246ad4ce17f331733b237716f47c92ea090ae2457f32f8fe80a48ca103b9bd233f5d3e00a3dc5852f8ca5b0c0cadac93e5db864077345c4ff4ada9c548a35c6d4f9fef981c242583bfdd77a2444a4ca514437dac6cac509ba30a9c4a3e75957ea9311a3a0f3aff1574d001d2ee53c5614a0b1a5e5bc87e3a90a314aa960d4bf1506f3911897adc4b90377eba74058d5b465d3cf2f6d747fa1187d6c70bcdf0f246e4aa498860211b5827491cda2ab3fa8a2c58485ffa059bb109b76567e28ac32850f493770ae9b0db77d7ddcc5414f96335d301e51ddc52d3371eab1bdfab3a1eeed2a4ba2105e9c9963a89454e0be93c453806de83474731e252a76b16fa41185cd9b54a7799d712d15cceb77512ad47c7c1028a3af91626cf3cc72389d5555fbbf20563e78e435a3e7ffcd2db77fc72cf21e3063f1a52c7da4e60e25f4d0872e49a523d5639253ab8bd8cd24901e2b01d3b5d553901fecf0ffa2af035b28033c8fc64ded7742e5587c0965e911f3f8dd3b3676d048d125b0362c1a8b6b8f569587183f2542e3f39b04e59fcc71a4614d6e7bb6274cbfc6dfd0926734f4e368d910afbb93ec4f0110a27b70e5073000916c65a990c501c53b8d93d4af8f725e57fef9f0524ec0a2b8961b666d18dc76b3891060a98a246c4c0274dd554d136f8594f434339d20d43679d006483a2cb505951c796d57944e5c06e8310b008f5490a9b419a25f8abad136c63a56ad29006e301676faa0a520e40f26e8594027d69c285f517a7f04b4615bc52496c376e8cb32bf6858c90a066a1de841303260150710641ecdf758732488263be58be10590aa946131758d44e6b5f9c488ab0460f37350ab65e80ae742183cf23509cf670f8c56f2bfb00859b21be7349c0d727d02f69b9df33f5434ee2e8f639223bf3cc4ccd4d62be60c19f3cdb274ae1eb1021306cba0ba6397c72e546d8e28b8aaf103757fd7ff96b8807073abe96942584944cf30091577bc30870c59c3274be25911a5c644509d04e826c67a02b1a4798af46cc7f07efc3397fb0740d108ba426ab4b23a84063737d3d03bb19de623f75283959b1e494ff2e2dd5301865ebe5d569b1a2b4b100e7f02eda50d914d58bd9741d051228d8f5aac564144fdfa2bb2a7d85c9b87e91ef7a2fd6a17310c02b97a80455a417ccd4e8994231694041d76f80ac7da73869b15de5a74fe1c3bf9612a41d1b6c0c7156d5ab082cbf3ed182c59060c8b82f58b6d37ea490fe3c934dc692e219f34ebab89590a160d1f5dc45a03328cce697e2f8893c0b270b9d274bc0b90717c503c3b8ff224c6abfe65faf478d53a370bd875c1fcc81f62ba1d9d1219605f7f52704821c067344d188c83e55e7793359490b7fa972d119e6ba2fcf9e4b58fb989d9d0aacf701bdf0696bc83b87b157e995f29a31072fd2aab88e560363cea6454804a6a0f2229c2adf091cbbd47b802a13a84732bd97c845feaa81abd8801c9c39a7afa1218db832454e266ed09f0d6cbbf63f1fbf0ce16c4db85b0a7b4e07bced5d0f88a1cf2addd05f4040da6c33c197cffbda98b74e381e9a5a2499f438ca97b101e41342f5a6efefe2efc71f3281548bd63d7241afa487964f13011f39717e53fe770185c12a38637c8f4b6403c8e519af9519e7b210b84da7844e09ee5d6852cfb90cbcc7adeaf7bb08aa2c67f33bd26b21de133ec1fdf7463a898b61bf18e1eb54f4eb8e94010c3e96c159662708d48f973a8d005e5f2c538a13ac66ccdbbff1a66526f9e9d1e4274960edf6ca902d1ca04f793575c4b1b2dee8108d3e239ba8429f6df9db3b9aeb83eac06a0896374b572eca9ef4ad1c2e322cea60d132f1526fe379643a6b071f7c51fab64f46d950cff2d7d5b07e3ba39a06306fc7dc5030a7baca88ff27e30ac159b96fd342a62e8aae33bae15393e1bad54de7654e03fd1a06ae9dc2b66159b131b7880bb408d70223fd1ea46d6f6b4caa94fc74ec72eb29e226a442490216ff57d288326ee94e234c45d6782745859e160f5bc03fe10beb58de07e1fe690233d2c0e3c7258839cfba47e1c1806eb3114d901c9cf13d57abe4872925756e1e29b3629a0db4753e59bf84db49357d049b8e18ac5dd8309a67c263ff39e8b12390f16e178c6be2050a6406aeba65a84c46e9e8eeda13a94d5314c92369e3729f6b8e747b8e7cb21ba0375a3725d016c5af46e0dbf339830254d4e1fcaa817147940b6a30a3690ae6cae709dc7e98075888cafb6207931866869602240f3e0c21343245aa1d8c4500adab9ce21da11b41168114287c66c90db71b48d65554f6134d2955af95a888b7627e6b153e73418fb35d341d3a57d427e9b3640358b1298c30dc58606493621a7529d26382b705844d891c7a30d00ce8d470c7829c73f6e007b18b7d2be52c09681f87236c3e4ac2e500d7e7ce80420761288712c5fb51514c8f22134bbf1ef92e262422e598a5bc12846df88ae96bf43047bb061f8dc7875036f3cc6ea043a8b0d129eeb940edd97bd31f2c5bf8e56613732cfb177eacc2b5e33faefc48c8d44bce079e1851ac54603fb3d641b55ad991fd866cbff879eff449e1cfa7af4f2650fbf3e215cf88f01286b530bbfe2015642679d94e4b6e42d9d64814e00542dc83559a642a82d93e7702cdc14f56275efb2d67ef9ec8d715024a15765fcc47809db1ef39b35cee51872a701a06bdbbfff9379f51ad38ab26639b33b39ff762d0cb46b1d26e74cd6cd15d9e84ec9fc2f2b4fd36bd1cd94796c431c69b5f2458502c095bcc018b6673f70374ec94d42e16b650fda6b3ed8a7341694c3922dc597656d49efc74267f9d2dfbb3c293a5ccfa406d29f4dbe094efc969c457b0e92733d165a672b339d934be56a00401efb193c21cb21922f4e1cca14dc1b793bd14aa9a27aa4f0d5d56f5876dbce5fb4ae53464a876c1bb809809de97af559be2a249a2caa61eb89619fc7a3852d1234e0e2a819ba30ffbc72e40eefac1bf5a82ac194db13bc24ab3e9101d01d59a1ed440d72656fdc5dd53cabb106f4069a9f94600f429fc26412e567b08607bbd155c35c6986ffacd7fe7fac7d7983347217dd4f26379bda77daa60836b8baa7c3575803acbe8d725a3ffb255ab7fa6c7a3cdf5845bb5ab78c1faac3385f50c902f3b9be7eb2e11c82fe39fa94794f861d1fc4d0b116f2f7d35ba79f12e3b6ec7b8e2ce2bd7ede5e7ad43436a3c07fa9392414a94ad2deea3e774e3044e62b6bb0a5655c3a1b2d7c8cc6d700e6d6fcc1c92dc5f4dcdb86f434560343a63689e3362e1403f0f5e498add090f5f91c0c1abbf0c7287ff3232f9a4a3425b0021f85b80effcab1d67aa7b566c4579b591b306cd1352714a04373cbd301f5e4864a3542ad679bb79edd7f053766c80b7b38ce0b34a8bcba694522b2a2c97cc778d8adca9b25577069c9d1910066ff9cc17ff352c46ed4c7fd6c81eede549165a494018495694f75a5b801270f7769bfa05a00b370b862b36a1002cea615535d1b41888de42b8da3fd43c4079b4093c9fa3e4d59853fe41a0db57196970db4b54cbd7433ab74e4435c2a30ad655f65ee8c9b8a855e28995857662379556e1a66b254f7bb8cb40f7ef15be365453b7dc5b2caa8939e8dd9422371e34ff064ce13507850cb49e7bb9d2e7627365c429044ecfe1e45478df44a751e5431beafab7e2be3eb91091c18e793aa926a030bc966dce6532780cfcb3bad329ebc136437e39530827b192b680338ddf2d3ef0760038735d4ebe195e79f3de434baeda4d081382135e007f799a833ef30c9f1c8037829b51e4ffb46fb95eb3dc1301f3194fde0e88ec6a895c769fbe71fdc310fdc0f36fa3925c475d25fc89c021bed425081a611f2de0b98e3cf2918d68d2797373876ab318b7528aaf423f21634ea500e9df7225715879c8399b23d19a95f70bb10ead72f737462a3b98cd93d0fd824655560f39f74a2e4d45ec6769ebfa4c58feaaa75869c8626f61db9752297b3dc9c33c6165a933e9d305eb4e322493207f0c530ff77b99af0183db838ea85c9ee73d62d16e96162129c5d406efb2174def875624a6629cfeafc0dee4d818984155fa2f356dfbf67f9bea940e580fe0c1fc3ed24803cf09018d221b36f0810bfed43a1c4d0d7c5cbf85645018e9cc6cf3087e3ae73b39db6bea2840a5792cf6dda742379313d9d7948741dcbb9802dddb18d1d6a85e87512ce43eed6c71de7ca7b271a159fa0d78ae3f7a45f9e30d798bfab441fc2c706fac6d0a37ff5b0226f59b4e1039c53f52bf9874488bd7392a495c24eceb264b7a271362260082e260de64904ecf6350009cfb19d809017efe4277579a44cbbc800ee1c43610c140f92f3e06b7cd3d3b1f67f8719cdc715ca8ce2f7fe20b46d3ce7c238dda66bb5aa7349c92bf57c298cfcd38936efd3de1fd39cdbeb14607b578bcefbaf43c70d9810dcb4c6ab114c83654cd64dd8a20e9792bab29c50ffcf7d4daa91f5f078742839a8542d23d3047fdb1271aac2a3020b892861432fe6315ff4cf8e76681d7400df35041a5cd1db3d13e548c513ccd9cfd28489ce1db7c3356a4d7fd4987f880646e9e85a53d14c3e36e449377db3396ae816ede0cac7eabfe52c080bfc0dfed303cf62b26659e52695f3c4a7cb25b79d5aa7901c401a2475e80109e6f1bdcd0fd8cacc6935420381b73b5baf39c0f8aa15dfad56ba62a32a0ed2b68761575b7ba4ae388e9e35536b6fe47c1241a6751e3be268b3a90b0f333ea03e7e4d7f8083c61da0d3991a4d07c056e20878f0b5692af16acbc2821ac4b58f9803e21c3e4bc96d0e12baf5a2bb205319d4d5bf3fd47ad095d51e332e760c14a07feff863955f4f69776e3356a21d514b2d7b67c04c142589aac23450aab7a80250e5d250587be386769f5ca30968dd1dc3c6912a36308f30c5674e65eacd988af5156da53b7fdd9fd65eca8016389aecbc849c465b13491e2290d7b2aa778764e1b69cbe4ac962e7a617e513adb6f90b777927da8d7bcf0f9d5a9bd18218b1258b36c405114f3eb3c65ce6053d9510c087e02c3e42205ca9d5eb0147c6842b531d85c1133fd39d7970f7b7edd3ad611f7c3d0224b842159fb9ca7f58b0942167b39f4120e5c18d23111fdf16c5e76fe49606ec09e14a69e7bb9fdd0d658240762fc168caf89198857b055f446abca2b5e2419a6ec8c07ba28b71e4092eb0e4aec380dfe4dc18f3e56470d192d0ae74ab7113ec683c98bff52e8da6f511f57f6b87a8dc9f2a30c896cc281681468c71ef6dfabd6854fcaabbb741d01ef92361db744977a9eb469e4d2248505ef37cc679e78956f84c3bc56a5d6f2d924a78fa093891dc527db607adc014c78f0ea46125b7a6418e16f5f884c5fdfa06105c26d2c33817c0ce5b48f3604acf8dd7c16fa7fb85b2c12c1e11075b285dce8188f8e2b9edb0f4b02ea5edb6baa510dea53d560b909c181cb6606eb469df12f8f0ec2081a1955e2468e6163865a38aeb40e18b5388bf876c5558a10e83879b7dcb28f146ce3acc429124afe3b0c30db6019e3a8a29d695d873ab8d3365da955b75d06dc4d5cc9e20831308385ca55b8f7e54f6b9b8187c9103660b224e7c9039b849928eaa7a171a1e9b1b5f029ad978672ab0279ad33cc02ff6ec37bc2efc54865ce1b62475cb69b060b141f67c8b39f4572efc74fe38222722518557078313f4aab6a4b433a72fc36654047d5e592d57a1fafc4a10255ddb28129a3ddff6b49df1a892e26cd7fb1b6e25db19cdc8d44df2080e20980fabedb7b70a789ca39f195b5a906c70152098725883bc97247061e82e0470ea93af93ef8b97afcddd7051aa3d2c5e3c9cc3a3755e2d8a8f619befc20214f17c34de4369141878d41eb19d685ecd08b6e5edb3ce5980c7a35a212a87c0f08020aef78869a200e7a21c40388a29c7e5ad55768dc9d97706a299829107228b482fe77d4490029a24bce9060e5b5ef9c814241c2a1a9a334e5f816315577fe4b572ed1ba76e3d5ab8ed2e10e502a57eca36150ac68a9ff9831214fdb43287ef649e09f11ed1596e5d8980db09a9f3ea17f9f334ff510be7261e65edde1358495034edb6117d856df1f5c972eddf68be4681e1eb71c4e6cab8f62b66f0a0bc83aae55df5a1b7adf7e5f5cba325954b05394cf5e537d7ccfc26ecefdcf1ab876ac67cd254d9ac2407790919fab6ec98c7c317bd479c7a7014727ddedbdaef7f9e583e20ab1013d55d8ee56914ea098516755c13fdf95de5c618645ebff6c5e4f949f2e64a06bd1117f90c8b510a845ab09b55dcb23d69747497cd27fdee307049c826c3d570f4830a14bcd75ad9be304d22f382245c12c24cdea94fca875526193d2f6c0b9419a8f45ed06bc25215363202a0c122864695bcec310aa2c557c9744957a2dcd053380c7bf22a439b36261c9b7b00814b875b8c2777fec419233bb2d8387bd3c2d811455614408f2f5022196964bb1374b991232b481ab3f366b3b022ae890d4087d7875ea84971b1b019ac2f8f8951f799b8f3d72da1d8370070d28dfebfa07a903457d64c0c5c256f98a7f1fb2f14133c29f14550dd3f0d2322a3b820c146cae29be1a902bf2bb63737571c57ccd7659b1327c58fa75699e6e2b880f9a103daae7edcafb6b971d185b7a31592d1b79a2ac8a4fcfd04c581fb0b0940256a9d80ec296626a2c35c20947a0cb0746bf6a14fe81fbb1f3eb2a1a1d09938828d63fb04e0c888967e8cb423f094097bc624d0d830c013da9ead1473908f182593697d4b91939f8e2541b06f6e10511b1748cdba13d77dfafa941e2963fcd59f7c4acd4ac40459d9497d7a3a460823c5ffb71e6292187791265f3405ce4799e55e36c4c38c5ce4dec76ec5dfefd95e9d4b2ad66e043eeead5db64853080fc7dcd5668dba32dcdc33beb895ceb2e0c0b377fd4aebbde7df159d19757612d90032a92567545178de4b666a0b2fd492ea19f67df030f369c57878d8fb25386242b6a869142c2832e57c6f96a72d2ef3374de25a80529e4c272254ad6c091a0dac3c24197105b0c236ba68de0d1d041c79ea6d671a72675fef1f02cfac807648a220ad78a5226bbb44e8cf4425ff96e8be8f27c5eb8fcef71fc4d070a2a424f3ea4f762b0b159a47d95cb7b9445b7a294f0aadaf6fbf9a6d29faf951d68be41b400e187f42d05bced0eb6011ca1e52dea27d397a6d243f0e88e0e62cb48a135df6cdf6362cee1cec8ec2f4ee6e37ad60a9cd1d03e720f35143009beb2ff63ea668d86d8aee115f7a6393292404a8c96659191eb71ae991cc4fb8682f26a4a62243997f6aece1060729fb57f3e5f9bb7dfed8f0259511f76012bf963b15fb4bca60b5883db74e0aeeb7dbf6037915f2351731a4cf20358ebe2b592b399069c67b0c77dd8d51ca2ee26518bf146d67df707ca4ba39bc6357316a211575548d3dab889cdd2dcf8f0720a680a87ca60e0e5425b8ebf98f9eaf25fa1f399174ad20f6acae21e573574bcd2ea3338e663a0afb6fbafb692f578791100303c15fa28b12231c3f65199ee0d8f31df5502e8b3140e66d01c1534490897e3d0cb07ace58c75362a4ef7b6710aa46a227a48afd1e66485b474100893e9efd805e8abc5822da896b67e1bac966748916fdd272a3d8ac98f48aa59e68f2b29b38985427b2d9d379463c0b472de7807b4e96cd47b6c13c3f05a00273ec0f5ebb975ad109c773f500af81d5cc19b1b418bac52c48eba5cc903da3196e1c213f027dc78df6ec65d554f5520d17b0855aa5f003e343997e3c99e1e8626fe803f84f9c33c7d9e107b5ee7cf1e74b368c6c840b4bea171e7f8a36c0d3f3ca5b06a0a0b60f33936bdc3b506fcfdcd375df5798b1874509387d4ac171917a0e4ef8576879bf06aaeb5f658e4972905b7c7486ac053a5c7b221682c446f7cfe6efa09d4a655d9e808fdf47adc7dc16a6ee284a0aa0b165202ca61e05adad565d4bbd5bfbce6a591fd5dbd0263c844ee6a6d83f3d59c8f7f4613ab78232265cb4a40caea96c831c53602fa0ac69181a95913df8e555aa4a25a8dd51a2ff5498606c6eb9b2b7c7beb9d046e61c0f93253e8674b71da8fa752c5df51dd12a5bfd42271b52b980641eab750810adc5a82cbb5215def1940b2ea5cf2024f723fef541a64bb876f9f16b01161e1bba4d99392d271983084d9d109fcd5baf0d9cd968bcf3eadb2586a6eafbcaead5faab76150d19ab5b04a5b2b12465f73b569c6556125464941fd55495bdbe3ee9453146d4e67292ebeb6a4f2ad7ba5a0864ff7a5a127b6d6dd477a72ad3d23282e800536fb9c704ffecfe892445fd7cfc01177677cc3004cc5f28f37a30df7a9b2fb3100688e2b41e852804a872918e1b3a9636d0610fb5b49665b8abe8bb8eedcbf5724cbbb66a947f793c9e88d568f246e7aa8b8263b4350e7245882db82b01907681200ea12d9ba06591820cf4fa5cdcdd263ed8b2855d31598adf9df02990d2f23330393e3b63643da26a8e33033d9d94587652781f65fbba4ee3128b6630f6b5e0b77e65af0821d87ed41aa875468a04cfac4cc54e997e93a03b9eb6a0ba8465d5e225a2553b93b03f36d2e769a11575f111454b98cb068fcda2817132418f8e88f6eca2693cc4ff060f3fc59fa5b551f673f42b9f8f4753d1396683cd2d1820f32ea2adb2bfe3dac8e5f88593542dfd5a196013fad40d2eedb219cbfe9faa9b47dc8c6ec7d66933d0e7f9d8909b9bf116d4daafee085204b716aa8789dedb25e705c1122c4704ce8d4e7e79c2122b36d5efc5aa05b4a9461a1150b1ad2b9f7e86ca30605fd5ceb240e6e864fa4d7a1c9931f21ad2c28f0d7dd4d256d96a0490688b91be670bedef384afaf0079a5aa80989771007f4dd47d4b3da8917b9a23bd1c62bf1c0efc37c75489662cd34cfd65862831c03efa5c8b1a98110e88d1ac47e0826aa76fd3b17cc0a03eb75a00859266f94c1d460511a5331138c348238b0170a5408d04d30622a3d9303e53eb624d8d17e35e4b5820ffeee4e71413a4854d3f7840a378de977debe27fdc78a938990bf1faf9d870f2391c4c8fd9e319f79cde4d049731ad6295f8a7ac19e5ca423058ddcdb72ede04d21a0afbe2667d1003d09c12616d4b48ae7ade7af1325343f900929f2c09ca193d24e522329b80ebfd807cbe805198a37db17d0528453d3c3f8dac2601f36bb60e3224062838036d5f8c2e98a304c72f877d3ee35b86f5f935b82c85d0f190f1bd1b169845709df77f1a936d9abee03ee1bf225b8836da6d95d2f5d09c161a92e6a08abc4cee19ee2411b0dabd943f40d9f0eba8e95dc3d85569502c1cb87f7d1f165754d4f1f605c5c7316a24ab139732aba051754976c5d646696e60e34976c053d659a140e5691420e4454c5de0c0f9260d88580932d3fa82cf5b9bdd952a3157620d573a4fac02363a771ae3fdcb254440a12e462650029ef86e016895929bc0df3150bccd899455c9b751f1171e82d20d99e1e5f7a32e91bb300dd50e9f1bf83159b3abae7b4388ccd1e2d6ac8a9a398ba666653e8a7857d420a5e4db37c64ec04014ec741acdd6a190b8a291b9a38095e0c880081de3af632ee6ca688a21e1fa3d344157509c4f4a41e1ef6ddd99fb4bf233bf54af35c26dc094bb37a8e859d1bab31ac05b36fdedc237103bba0f908edff0bc997726de5a4e76d25f7534f539c2c690cfa1553b5427ee6fccfb679987d986993d0a40c47588153708e7634dac9c3ee9d6509c446ee39b3643dc72f1202372c41fa40bc76f10b3e8f0915d8ca67c7ad4dcd20866cc8fb15c971aaa878905237f0e454a9addc164b5e9880495283b11321c109600253974a61441853eb5d436cf4f9a46d5b58aa57d588bfa99392446958381b164d240e237da3ba07bda031d481bb98904d5d3d70bb883096060d39af13513719e52cd23bf5d3faef4f5499a071ea97ca67c797c751556ce1b2c2010d008d7b27cc8ca6885e3fe72c844d6db7cfabec095cf53203292fe7e73ac1ae82d07879078787b561009333ce0ca940c16c2c64833554f42d2e3ffe5aef717fbadf0d7d0a54d9866603f7095ebce829ebc7ffe7c197c15b486d321ed88a6cef115b79b40805601da42474d30055c13ba1caee0f34012453777c07f51675583f62801b41d3d45fe20a0bad93a35c2a38510c0be8946cc3a593d1ae75af62545afd1aad4fd42ef0edb2983649e921400372c992be1f1c269cfb6e785b0473d3a93353f16db8dce4bd04d6192e0b9aaf7205412369632f143d6c842e9a49c44fcecbb85583010825686dd69c4a0ad9d012f7a7873ae89b8b2549cd84b93f5e9041c4bf0744f954bda526c82ceebf94df1801c0ada0f3c5b1fc650693428595c2ae7fe2c415b44919c0d00e8fddf20ddba18e37e6b08ba840b2d224d64af87d22bf26298618fa65d1dc452aa6f5becb547ccc67caf305fbd399084ec15c177044ea8ccc6ebbffeddc7108e2cb7ae3d005bed7f22fe320df665c4c5458be88ab0072ec8fdd83ad3e4b2f71aa6d48d592c8659977e9a412b058e845c68ec1de217be2bacb74875c667f16adba27bb97b6c2de458179d454321ca1a2afc752d9b7e91835023932e3e0173d8e482a91ab3399c4c1265ae10cd67b51b9abaf76509ad394494a42bf3e37074639df78b4aa4cd29327e54911bb75666f6b9efa2282d73f26ad7505329bd1580abef8bb7c0d5a66db8f6c67d9be352f75a18fe2834c71f7846cd719b117478fe422319ae21960984cd0f0e4bf81f249fb97adc29c56508148d140838656ec25637ca4fb567627d624485756aed1378595c3d92f2e5b207b977d245227c79429f4c1e33fddfee4c3c35fdb8b1df445d1fdd80bf8b871cf82f7426100b2527e9ddce1a9b16369b05f755fb88f53191c9affa1d14183ea83d5440ac841d9971cdd81a9ab3b90727fdae3c860974a27613e80db7d682ba653a60806a6e9135e0aa7640c07bdcbaf1c94bbe6b530ffb0d77aca1245f7e5b7cda49227cd20de5315caf6006471990edc524dbc5f4579ee59660efe89cd26f41092f207b67db6285660ca94c3d652bb390b5eb5d6d67bbcbf3ef414c90fb031e37d2733316e7c1126eb90e73da160dd08e62ffcfb08a322877668142d017554cdb264d6d7e94e1ccbe242b1b6e3cb57f654d9fdca9bc74bded1869400627439eeeedddad7360baacc52fdc5f9b426b7c8039672bb2f0e786875d2ab56f985c8f6c624ca67b53acfb94ef8981daeae3798f8026dd1c2d9af257d47df35c295dded7f59ea8504439ad62fd33c0f6913f2905177bb0ad754de3d73f65f3b5133acbb31cb3e260ead4bb0957a8de8ec61a5b99a018281d8626bf62ed1f7c718c15e00b2b914f50c0b48786cf8514972fabf1c5942d16985c884eb8ad13f41f92b3dceb40af4775b6c9697c0fec86d8c222da4a73982c3f94e6557e5dac4a600b4af5e346f55859b54d08b225fbb96d4bd331aa08dfb5a68f98a4bbfd732e6a35c6168bfa93973cf08e7d90a784cf4540cc10adc219675873f7c95d5ce5078762e14bf90a01e99007e30ca66190d1a4eaec30dd14454f4ef050c1b24cbbff94089faf4c45aae27cfbebf4269896b9a1dca4cd09edaa447cde78acef6fbead821f0e9325d131b65bee98e965d7915fa9b7dca5c63756d545a70324ad8d53ebd9cf679d297d454d3ab78ce35e544afefa42c1fee974c2ab018073bb667c4cab3071e5b6801b63275d44d43d2edd7c8429d26ae30e5c398d7e74e216fc99bda6b6d8e77f59ee1bc4bacd168e9959bf7c9dfb9aa2149190937c41f35633d4d924acf749ef6424a9647cd7a93e84db44f0119f0ab99f68390830ff12af32411722e9c9f8735665e3b7810433b5793fe34a163c02ec95bcd452c29b55b107481ea155942a9f696eef93ddb8c1bb265dfcf08e983655a2d0bcc1cf25773a205945fe6e73cfedd9be3139558c8af5dec72cea33b72386b446378fe7e6cbefd2369bb4c63915c168545bbae58cae63161fe2bd0e1e60b67f23416a104e29f0d5cdc121829e18f7da77a10d3b51b861e9ee3a61006da225f9e226f641aa11b0c59d1b7cddbb1dde7a9972fb39dbb80c9520d2df3c447377df9c5a28e8b4acf8a3b10d5da3dde96d943d3a97774a2ebbfcfa573bcb7ac5d32f393a2865ec56a8532858f7b69f18ccf9f8052fbe5e1e0724b31ad807a5ee04acb4b7588cbed1221c4dc74f8d5c86217e7d1da78eca0eefb78ce0ae20ebb9a05e75158027835e562b40bf94b0eb29b07cb6df069955c5bd848ab5669a2f8f870faf289672464eda0f2f64ff3db0f7e952f5769446cff9bbfcae8e6bcd85e8a9ced7d39d9d63d0f23e1d617f66f7a702de2d363d2fd1632ab6cce41064f88f11702cab124eef09358f3c8fd0f1a67a170843b130a351cea5ebe6a8d1de9f5fa10a45f5df1cf2bf1dbfd5ff7fb73b52913863e28424061be2fa2134c910097edb78b9798a15731e2cecc02ad42518c0d6db74ee71ea955f9ce5431593a2eb5043dad5cf32395266f91d6e4382be22dcbce1925a345f9c86bfd3c4ddd98d30a09d115f1f5afcf28b55b77df69896b401674299c4eca17b1efa8c6f50ffa348a366466785dfc8b610a809e9110fd8d7cb6e74c170e404ff3f6f0092937207d3f25264328f807947a1b3c2bad9f242d6ea3ef74e3e768dcdb6bfc0bd487bb0939895992a7d43dfb1426275570b4da417ad84c94bd57b77acd5638318ac7aebb9b7f2d9e43f963f50186f1c56d1686550557df2541f87b291a031a33c1de6d676875b5b356199d3840c9a92e82958feff97adfa765d605f8636f69da9b388e6e399ed1a544b024544e69018d4813a7c3fda426e1a6d395559a53c95c4c0eb6239a9b45511a03c387095e0d1f9850102e00bf75f000ec7a02191b7d0686120e554657b0f1a92f6bf01c010456f6d2e45d936d1e24e3bf9fc90594637088186e08ffb4c904c7210e403da82e2263e480e081e8691ade95b5e16a739da5bf09715e65206e21ce3fb235e52cd7628ce99bc3c858d0872bc416cd0894e6ba471301d6c367b540964f3ec6e9e12b659831cbf99fc3969dc83ba005094d2bf7adc45e415e840fb1e271724762e43bbd613531e424942d96396ffa92a9c865130bb8527cdd5242c8e6268a4cf945080dac83df257c53400135770295d0a21bfbf03d8fdd76ab3044f90d0b9fd691765370680e94a513e8df47a71f87de5c34b4dce584b8f37f8e0d54ddea283b72caf5f1845c476b087b08fdf81bfbfff555b372bf54e65e9cde5d7cda51690f3ca05fe8a70d9116b2d9e7404a0dec3f271f9b67a79163ccda9791f0e3fbb77d7d1f51d8a2c916b8f7f11d979abe83cd3885310e889050cd6cbc87043b0b0ff9a2b6de40ff7eb7aecc7c544d6c52261c6e93c53eaaf53da6121407e2daf04785ef142d8e0e4f7bc9f4efc4d05d7072de39aa9abec618dff36f615ed44883ca6cd57acba98ef5c6310b6fb650141c6750953364280ac12be73c4be69f5a6d17f45c4c8ef49cad4d2b1108bb54a7fc2cb986f9facb9ee95286a1176cc55aeafb4066a157771e6aa7127447909ade6112d317447ee9bed9e58a24abc4d10ceb8093f76f773410943c6a36616cf26fafe87e77db408b35c09f57c03d3ca6c033f83f3203846840f92e59cc4b72003d2880d9816101c40dc850830c9421aaf428e5f15f082329a44a131302636e278e2e0534000aa1799571528180056703b1960e14b19e69a53ff0f68cfbc6fed6007ef488be373fa9da093e997e29bd3323567ea3c3658c7a90d8d0011dbc44ed51acef4f84782a3651f28aaffc667a17963c7655e6e303e98d660dbbd399a91cb844b0c4cdf9032846fd6a437474f225a0199829ad0aaac98ffe23f7616da1cfc216b5327f97df88cceee5826c2b02e359369be50d6675f83d1012b88e9719fa898e2cf04e7c9f7b1519a400df427e3f22db9bf7df0ea4ad68ebfedd0c9d08c13b29dcbf0331cf5a2f254d75510196525a57c00148f1ca4a46bb01bc4d66ca9ba9739a7b2d6be170ea66df088dc2cb70ffc9b48cf49c908b1dd7fc9f1293fa7a6e3897c4df01f1a64d8875d6ac9cc9d026c74f80cb121387489691ba6e245d2614b1391023c510ac2df1be572eca793c16e562373d4385b1227c0237cd700cd674d93983f11899a222cf488220931cee19f067a70bc85dd80586911fe5af55c20b178c722bba1013941b21ce58e215255f43c05dfea67d55e905faeac492d47b7d962b57ef4996b97cf492c838df21794bb27b053769bfc41d72e2e0849b53c63e4aa0f888a12fa02957f3259276340151ae5a2e47ac7387a73784c74b81ed7ed4ada1b9783d1541706711fcff5f8580a310c6d706af3b38d3574bb1156fda48e4b300aa7aa42ca9b250e2fca2976b08ef32400b03d0b85ef716ae2e6026c466ba720187d0bf3ff2b589b0f13ef6bbbbcbd2b7a9da65ee8b27e38ecf16287994e61cf82a1be143316752d58eabea3885b1e0fc0f92b22083de2d025fe4ef0f668069949945ffe0891cf324f45dbb44516e837e8fa84ed54373eb7ac562f4c7e2bb38bc0e7aaa9efaa75e9006d2174d36f8bfb746da33d6e4468886db05fc4729076e9f22a0d340e956ce5a5f9bf7d6ae4ee275fd299f29a39106f72e5ad85a762eeaad5cd5e60c52b448e596421b04feb767cf043f2cfd1dec9af815bde40fc55f7f74969a415c0def59f20a989af98cab32f6e2b1afc51774e1c0c30e2abe90214b0ef146edd935aa5a93fb37a61006f376993113e87cb9450a26b8314fd1d17bee6c7b45b64f195838fe18df071cbb969c5db1350de17f74abc717d6576294d2d62a7685ffe6424c7080e93ebd0bcf6cdd49dc8fa56827a49fd45e5d2d53afd3f1d79879221a7f06621f0128c2f1a6c109cf59bf1a8a056c98b9466efe0eb5819c650d0d4e67cc006b86c2d3886c0365f157fef666ebb2f749e0cde82e01da4b93f4dbbf88c28244f0209d8e19048e405abe0866fabc6bca7062f477f22e6fc4c204b14f3f569b3bc05214a884c3b7dffbf250bc240ea0372a36c259f778a842d3367495f280fbacc1f6e497d7e56f13626e9ae90789a6fe8ea948203b48dfb9df65017adcd14b64f7ddd10cc2be1177aa84f3d327d403e866794dc1033cc22121c6d7d77b4564994a5b6cb5c2110b6b782d21defe0720e8d35839c9b51a873720cc823d84ed0800fed11df146d7a3dfde5d9168e15be89388803f12dee46012961d89c05326d9321019f7b41e29d34cd7427d92bf4fc6ff423f025d2f0db94ed68112d2e9a697a9861bb310f99737bd3ca109e7f3a4185aae25ad355c0065737a545024ce342059ce0d881ae6b14deb0f28962ee064c24ac32db7d6bcb3e98f24ed904a311384bc12634a30a796da793edff88b55c9677b1942c826902508a99cec4acb3485a9c1d2fdbfaa4a50426973003ec04a5e99ae61e1d66a65ae7fc16446784b1542d5453ca03fd3c16cd547023c2ab172d882705f9cbe89b4d2f6fea012943f722d82fbd1cb27269b80b1ac2a353403aa4e5ec06e4376c0b587c08dd0eeea98545e5090f1aaf5d2db94bce8f80d19a339eefd714af1d92577b094a37a3588b5572931dfd12cff4df0e63fda800435fb613e64af3c1262628bcc48bcfb1dba92804b633bd23887274ec8693955a578156dfc367539367af36a42b96795a9d559079255b7fbfd8af4b4f70e87d3cf0cdfe43370f1f332e43d3c037eb577329f413f2bf0e4e307ec53e76905ac6467c2b09622a960bc220734a215b904f09f4dbbcb7f9ea1f117b2d7f64556c9a8d219bebc5db737df6ab70d6dc8c6b67d9ab2dd0b1fd5447d1ed1e3e617e956f19b844e3d8866a0d99c1bf2e8b65852cd65c952aef5db5d634371eca78803a9c679417266a9ceccd08e7121bcb4bc24ca6621d8521542802d170fbf6f7fa7b7be721caea318bc0c5b4932aa7bcb0e479262b7de52092c5019433b931f13bd03a7f4d4206441825f3a5dfd1b6845cea4ee2c88d9f64a2e1793eae1597bfd4985a06c0b0f49f47f890f28152c2ccca16629d55ce988cd8eaf8e00bb0c07b3e261fcae8e8e3a2d4a2454a1ffa7441973ce6cf2422f2dad1c3ac642a04c2838edbab0bd8bfbb923aca596ee88ac014fa173e22c632d7b485bd0b04a1b6fbfc3a64467de97b30174d0b13b488b1b97b54ccacf5d71ff625e692cfd116eb004def2d4cca3e9fa2bd603fd58664da3a2ecdd6ded9a9660d5910084b2de99ec79f7098b80e0a97ee73030ebbe12700dceafc075f16af2b11240d0fd5512242c264928db659a819560e45cdecd7a44d47f2aa562b27c14fa47c2194bec8bf084ecd3a739c308c3d5cc78ff21a0d02ad5389999d853932fb04fbae530af248ae165277a9dd0df892c4b91096273d399e97796296ccb1af88175ea45be882b5a5ad2ea106f1da88cae464b0ca38b5e5ee578f63a3a1a3f4f9ed087e1ac901a4ef97e19103e87a90b21f2d9bcc23d7622dcf1cbb3ae05b4c600580d61db649e01083ace78976414095afdb59485f973af1cb765404f4d8e4e275ee86e2800a3ae326185a967776a341dd1c7a3c7100e4528d7504fdea4cf14c7da257584248ab3a97701e218fd8694960fec6371bafd12c96f6b530399e9c4d1f8e40fb97dace986d425cfe6516823dec7611f65d56d0ffe85ba6dd83e7cbd311c739a405eda66840e1b1a8205684f3dddc889dcb3bb594bf0ab212f2f8b02fcf079c73e580b37c52e6c8271eafec1d936da31e86b65cb55aeab01a71d32ce4722e117759e658c942abfa84c0ae25c135c89678b5b7f896f7e9e246132e0252f9bc14edc4479695c9cf0480fcd5624fac7260e4373dafcf51786cea2ff4d7a6955904486d1e0c9c3db5cd75b2174b75ee525e28cce088f1590de39833c30bba144ec05205bc52d6b00439ab5e5e73e135357796fc48af24f2a0e9f91f6e54c1ae09dc180fc4a0ecf1280c6e8306a990614bd3769fb3fb5a932eddc3927c34073d9d5e7433adc183a4d0e2bd4b5f0c6969a824e1d773d5f6b63991afcba73c0d843f1363e8435ce3ef6e336f492efb2defc47f46206e60ffc1471c77915f1ec425ca6985012789aef8ba63fadd2ccb16d1fcc32d0e9cfb3bf85fb43106458ec3da3ce768104ab9a8772fed68d1865492210e94e42c8d0fd1ae8f9b9e73b0f6abc4372680cc76ecc0448d9112d75b4c010fa1de2683e02c388f681c31d82bfa1b078167ea14c537dd9a559f1c44426f7115bbf6fe15cd7aad3c8096ef85f5c5e35784b26c80289c202e5046ed07c17ba34b493c60019c756c17ef9a77747f3460e2cf853edae12ca5eb09fc040bd7fce5bb9a543e8d2cfd552ad218b9fff2bf27ad93178c5c0986e45e4ef0ef7473e48e80e4f222fc6db3d988cc993aada64473ac2626d0f30b934846b39141fefaf51dcbbe3084aee6aa3c84808ef839ac93ecce8458675827a59ed50e22cc5fc5005214a4765d9c3065972818ab31a346d5cc9dc92eff55f0d96682fc5a8624a0eaba7277f4cc1478212563c153b21469bb747cb882c22aced139fb5b22d19f4d8a927cfaa9b729017bbe0c2d1971a74284e82e379865827db6be18ce4e0f8eff51e62856ffb52ba05799d40f458ea3aeccd911d1bd73338c91eb2b3c7cc1f1dfc95bdb97edca203e26a8b0a2760889c032295a327d808fdff2890a51f097138bda19252cb7a72e5a6d320a234fb87a3fc809c5af5b1ec92ee739a0fc8e2c2892e7a0cc6b307e8784a98056522e65c72555305dbb2abdac843e6d97efde5602f9b99b5d0a98a386e37bb52cf5fe0435216ab85c73e8d1abc02215e3231e4c65b93af3d8a7ff8550b0282e33561379621643a9be1330ea0317fefb8e5166fdfd3efdae1c4244b677b9650470c0115a0c9a7944c67f3a8d9d90b1054279e165c7e9996c42be9608dfdf788ba105f1a4417887889dbb6e0c19871bd04a5f0ebba18fd8778263940d4f98a6e244fb045b9d2e19912f7382a5612aee6de40915b130f9aacd205fef65fb6ef0f6d9fa1a676a7030bf8e742a9809ffd5359e432b45a962f7938840a7b2827d238ec560a6592fa316d389315b11a45cf0df761b09c013fc32d0017bd123caf93635eb0dfdcd7f621f628e3f190e4cee916b48656de2aa6bcc665ce9f1e773a6fa2bbae7a38a19fd3a529ad9d99789335d879737b26d6d4866ad8245e3fd955e15a8f157abae43f55845c95c73fcd0ffa875b66e717aab9fe11925af4f2bc58f5309d2cb1b7e1e829a1efecc9de3e9fb36a77028394f557138d8972cb9197eba45d9c932729f120d550b444e0364a6213a86214850a9153328518a2312dc74f52eb0ee832cdcd6b6e4b9c5ace0797442ad2b2ef68aa9cd4eaceb77e1e55e596a4359bb3666b693cf4ea8a4d435817e80f9f8561c2fd7dc9d4893901611852dd636d09dc98465845eb4b48d59869541d4ec4f3beae8eabbf123cd5e560af35f0b1bf2d83cf40b159f9459a3f129f9ba8900e3b652cf53d590f265a09abaca7c6e8efb1e95f337e680df3f39f52ce68fbfef57758c78a832b2b0029ebce5d96b793a2e135e71014e24d810e8e4c06adde99d3636941e768a032d1ecdfe22fde13aa2379222f856e761c7b1b3e03c33b04f4d5ec0a7d31f7624633daf8465b9e1d340333af3aa4b80417e53592fae637e8d257b71cac6bf1b2aa664b0d5144ee5f8f7612ce751784085a8ff5dbbf8e25f120a36ab43983c641d9b173e5eb5c19274cef06b9676c1301def8d219387b92ba2c0181d1ebe04ea7b036e6fef20aba8a4fe688e9e901466b1ea2a0d688d6513d567600fa9f82129b257075e3b4fb928fa54a3ab1f42eef01be6daef11d546cf953d3860f8d6961da931e7be5dae3ba37bde589c40a4bb5beb70a2be072284f1a4b516da624b3869388784614e0b2ded42e7aa9fa8a368f2e2c13e39e9200c7f14e036e70150754eabb495fa700a8378fb483c71056dad4577e99767fae79380cd1f686b369bbe49435763070630c4fc6809b6b289e9ec5c55d4567f9e07b5d70a31aeba246480d7b5f7aba5b978261ce048d14c674bb6d1db1d4984e02a8d46dc7f6b383037e000a98462f31582b837cb8040155baa3ba09bb27ce1ef478142a6ce0f2887dab09d3c9dd1e8094357b3271212981fb04fd0db423d4c9d6006dd9f2c859d98424ed67eabeda66b5472800624665cf754bc3a17855d7ddfd291c7533cd54896965354f5cedfe272c9e0e40ed2915d26ac04977d4876b04f39133a22cac00df7445dbd1997136f3a984819f7aa09bb77c0e3ad6f570564addb994dc0b243f5f7274987d58d51e14392da88117fadd2b5801a05052a96885aaf072fb3193f0c16baa6f10d92b0fcf2ec6432bb7e4f1232bc5e9988685e28dbe7f367d9efc32f965a49f4120268d50f5afee8eda890ce442f7d43f83df8935c171f5edfc9b79cfea12e3f2fb6cc9b46b0cbf8af896c56c39f0036877a244c2adf1a14ca06ce559ac62afc20cb029ba623a2029f480e4c8d09f0981c86be333830072872460f18f8100ddf963c2e3f250e88b77007c90403db75a9d1224c109b1b8707023069a36c602e35b44f2ce61948567b65904d53894182eb76ffd2020e334f527a8800928dbf9b1195cd1fd5c010fcdbda5477a80986baeb0b1ade6d6f79ef6e2d993fd6b6084f67c40d5aecb9862739bcbb4ae8717947c84af2dcb040e3ba6743e6da3c869a27dfc1d06a9a89b054ee0bc0fea930f154371a8c463c2767ee3f383546fd601c957b83ea601e181585cf5fdf2bdbbd53540a1d422ac56e9e79135be35378ec5226a8f1bc856031e421cf61587ae71035543d236818ca83f50a7e508cf8c194046e2768821d8805afca314db969972703ff79b5bd8c2e796c41f88f006d7808eeef6d3868f6fba9b012cb76be0bd283c212968bb0446d86e72514e28b28b8bac6075d2779d0aa93a66e5cc280cc4ea8da63fd166f2bc5830f4ec4eb8b6db16355fcfcec57e84f2139d5552af4a10da0f2bc27f7cac5cf6fc24a239c5662817c94b0c9b5c92ee712f4d3e53cb63c1d79dd2d3386eb4723ec134483bd70f075c6e6a461a210f7ab0acf1a7d992c14d0c2969b7b4cd0befdc1dde4e76914e4d0c35b3aeb471626cc1346c0a777f36702124fa39089a3f77956e0f76e910706743a046a502e662c711702c0641f9c907c8288223bafdc0e7a3b73589677c2299db756628553f854df671176f270bb39ce2e43f65be432d146a1c518c035e669fe08a4bc6aa6cb323337b0185d5b485f38b739c34d845f58dedfaeffcf34030d0cc19b3c808c5037b41fa172fa654a285dc32dd91b9db08d0fee0ec03fb5afcc4eb9e04b895fa3bbca9b15606428d8f8757c448350726b7ccbeebe8b914cee78e68bada378e99606678c26d071d16555c10d735755f9fe9d889f11e49a5fe4312e1689d674ed8e190eb6dc4c24a46371b329fb56605d068a2fe9e3c9bbabe0b1a0fd0aac8b9e2a4ed040c94b7e742c833584f7f1b07c1bb4cb543dafb8c0b161b028b080b626bf0e25372ec9bc2b4437e957f83f70697921269080cc97804c314441bf1b2621a233060ab7ef7c48e6dcf6e0afffdfeb6e4083ef2bbb94a4c26eef383dad681f44cfac0fc1ceec5ce42566e0ae2fa4fda04bf8e62978f7378915c8c0f1e5e0251b7300fd3361448cd493621b3152db4c1de32f90b12f5e180f50f4cf7b5b312c5d372170ea666a1290ec15dbf9ad69bc3cc5002bb774d37da325a52276aab3a18a0f7469aad2d6bc0150f46e401e54e455d1ec98ecc5dc6bac8e39b7ab08cfe4c83540cbadce7a6b44c96ea3ac43478d3fbe79df5182873f2d69b2505c3906c90cb73bdfba99b4961175025163287036a32e58a955af5c289d0775f79015e11a156a5cd1ccbe1bc47f9783d122a99b931f0d79c485320eaa0d549775801a6a1235dbe1304c694015113b557f6f352a0a3b5a84a3cf60a21ca1c195d903b0d4e3eef6d372d7d74eba1133f73cd0b8c53426d69fdc5005dd2b518660f71a1905315e7d216e9b2fe679469bf5ef1abfef624e3017a8b741a75505d722e680401f96728820e03b32582aeb2eceffd0256e16c0a6426633ea416ff91f048150d3f51cfaae72e84b98f53c0111d1db8bec5485593ffc18f53e2020747368e7b85b2fc67b8e358b56120131eedf5b7279f6eb1ccd040fe43f256363cda8e2fcc14d3b07e2c5f7317732611d6a2e0fbbe8cef7f873f14e9409420f09c5e51fe62038bd48f5aa212582c02f2bbebbc72fe6c2fc6cf07173162b984235298c91901c8be867a6446018bd3ad3185305364ae8e1eb7fa0a961fe208ce0deccc57f2a82a763332954289f278565b68f0be80d8cb7496be0e24eff5b6f6550ce287ca7a927adf1de7696b05309c96b07647a7f61d0461f1dd5067621f5d4ab2d2ee13d8a94aada10abc829cec8f3aff8f26e27c85b72beb6aaacdffb320162b37428e9def8fb9a7ac14c491724a6911be6d894db7ca71eb3f0805dbb0ebabe260a67e85a04ecd3a48566352b58f933c0caa6d66f1c964a40da9136063ccf59d4342c3feeb058980fa7bf759af4ef4a3dd9d4021e4ed0010782be55792b31a3647754351a9cbcf22cad8a7432cc789faecf3ab1609a95344d1321c7588de76102c91fd35586955f2b8041033622239003f6f981c0bfad8ce804c73ed0490628d13bff6b82aac04e9050efd62516198f5d25c99310bd84e100d09991c31044e6b38b1b0e70df09a4a2e764051990d3a2beec7d0bbb3662c4a2cc7d3a2fe3575a634f8b1472b51639a5aacd8da52f61e2072d3b941d8906f6211ef8d61838cd97d4c58c9803020b5ce1dadacd58ff07fc47c69ed9f51930ef4bd91fa90f9f9085ef79dcfa7b8bc04b81dc2109c0ee7fb35930210ddeba8b586ace39183d02116095366f5bd3c62fbc3a8e59eb0055025bd2189b64d92e5b9115a1212c05ea7337f7046b2477d9b357c9fbd9fd01fef06040608e98f024ad2cd7178e163764056e3c2f387f2e51283a39f5202f2384e5bdb9106165de395a709ccd51a5cd70be3d7981e8dc0e447b740155255786f88f85ba27320cccd21ad7f8aef4d13f16772ef542006e80ca328aeefef1ace71bea5e534d51d41de3f19038ed6534617f1ba3c1a1e1ac520591f4dce1584b06aaea01a8d2ab844fefd8fd4251118cd2c4054da08ab8d0e02176a143868db39c7912bcbd91b2ebe0de11364d18563b024470b63927ca5b460edc6f8ef31d48e972e3f099885559526fc3855cc438c7bca5ceb9a37c788fa3cfcbb448f60fd3c69e8f92b049b323315a8de8988a2c5a4df6bd0438e41ff471acf8b81711e00055d0f4aea29b0322348091936f49fc422e71269dba5831d3e89cc13885a2bede30ab47e04ce2153468ab076b85302e7249e21b5ad0d191be71b335e59909af633d08a7d9252b75ba6cbad18b7984b800c9be0367c52754062d6fdce347d31be6fbfa2ee0ecf6e419c046aec3772881a577578ac4a3395843862a6f4aa53a0aa374f9084ea81a73391c1898149bd7ec40b1c6fac5994f37d1d81765a9f685563bafe86411f451cc09e3f698352038b653e37b9f90b0f32a4d247e2f7e890a4a31bb0f3d2aa05cdaf99aafd611683260849d86eba2d2ba481bd12748bf5ee16a6e4833452f9fc1f37e7b59e947ca35da1e32034f4b22b882e38435c054a5969cbdcf5b6bc944910e9109329aa93755588ee64ac32da094591007c7d19a045e88504b08df37d4c07830c49f02bdac65f4e6b3c94dc121851250352c13e1b695ca397fcfa9ca5ef991dce02da33f7488685d979bf2d19798901708904eef73a292f2d1b18267f2f3e31a1893729d39cb16cc7253d2ffa418a61ba74fad7c2b6e39d6b49dab0818bdbff28115157aebc79c327d8d783d84f6cfd98d6fdab48f13d2a59ce8563ba279377382dd642b6e6e6532432fb3533f7ed20fc0e0fbb86f80df048abe48a1cb86e52dc609343d1e6206903777a45d35ca9b400e88e61de21829fa21ca2670a50f73b54e96b9ed2295b9b8d33d244af1b025336a39bd6b3fa51f7556972ef2d57139248f686aae900bef37480aef5e5027ce744b193f9fec1463c39e72d904a70bab99981218a75bf0c53fbddc93b0f850c2d2231666a9f5dfc019c0c64a98644d69b2561f0f321a66372823d08bad1fb9a5dfe36b9aef77117210263b44330b280f17dcf9965f97bde0e992f56893a06d94748f63acc8dc447722cb14c16f4633c0f0bec1a56e35fca5a33e0b94f762f6fb2ae2c0f902e41fb031b19b487abf247e69859ed25920dcd817f2f0a24011638ce10390a05d7e13b301ea867d96bb721f352264914850b02b2a23fceb291fe9af3d4d45650e786d79b92fb16e970a3c8308819a8a1a5cd67a68928d9c4320cc8c241c61fe3df304ab670d98b36845cf471c233a73e31ba0627f7b8a43706e8a9241b809cc87b20bb47997676d865c6bdaadcbaf1f681bdfaabf559b72692088f884474d9e7c33ced644b494db837613307d3cf9ada5dc7bcca12452d33a50b261a0d2fd1022996c1a80f44751851e90d85102ed8a47eac2383d589acfc1b1d40d8c5959307066d64ec9fb1affc4c2f7657151ffc633ba5195d23d14b732799b9e03f8ef8dd408935d2079ea320f8358542cf215a7fd5fcdd242003e1d95917b7b041a7aa9ae3221c669afbe65484f5db6523d3d9e720fcddf93388c064723fb4c52c09095d305f773eb8d0caee35508edb82850e50e6fa2bc6f0ed45c756a14ddf4d4790c0a0e6d13d358d1f26bc2dc99b863e5b586bae9dfa4e8a80da4ddace7b68f7abd920b1eaab1e14a8afecb11ccae8313c640b50b2fa6ad8f272ca45a0ba7ea61779a8d857ef84f4ec5cc13a9227c40de02d66c1b4908942945b85cf2179a263df9c85ce74982797f469b53823e06c15eaf97cbb9850783b897c733976da55f689eb3b5c9460bcbeaea465cc668b7f7f8fe06fbe8d4ff029fec2e4a47fca4316dcf69538cedb1c0c377396443c3fb0e30f95996f99ff3bdbd1b946b1eb9b76c611dea49e6177bee4937f7a594b1c3e5ebf5fbacfbe60990d066f514c90bbfd9b731aab054d3ce98162d954e2f6b049c41490a955d190c282d7420cbe1cbe50eb548131dc461f9dc54903cbcaecf382f11c6da8da293e93785b939c132e31454fac001edfec6ab69a6c8aa0cfaa7db260a9770325b3f32358e5d37cf158f7a97d8664461aac877c7b640b1fb1c78ef50e98d07bcc98d9ea9b0d167b86c880b725d862188dc755731bfffb711eee6798e01718f14dce8871321a7e7c1eb0efe3b4c7bd2f7942226fd7c213522dc8901b061ff29b965c16a56046d2c99b0f14e31756a0159a24225945cf2391a7d941662295cac6cc3946abb81b77d8a5f343aa61c0c51c1beb677fbdaabe31eb884c829df5123ba529fce81e4c9750741ddc54b64f3d5ddeceda4ec5f8bebfba4652c71d9664d4767747fff2ec0857d19ce3684e88a97ed5fb41a7e12441ae27aacdca30c0c1cf7a75f8b51c17e6f7cb54699c70313138c78a8a75b6a9acc752804745bd04736dcfd46a59cf520cc2c64d53d186a4ab94ba015008f7f4e752d6f95169c6d1e77fb7ebfa2ddd3198716da0635870e0e6e200e643ed85a5818009c7ae72088a26ddefe2afd493fbc6037361cd7c884290b9abd635c96c8dfd163371790b8b407dbf52eff54403f6a6b69236b3fd950c5ddee2278ba3f70474d9c46fdbdb1ce4936cc78cae8c8453d8e1950d1cdb0d65c23d665119d6a32194d59f8e2a157defb2b08fc2521a69593064eb6d1a308dce994322defac650fa027a5d6ec717ea299173f5a8708f52991e2fc6d87282fceffd68c4560756018824523d839e41f0f478d973ad0cc5dc14c87b2039787ec3de5085eac11e6232dbba39eea2fba075341d43baf8c3ed4ee132a888dac31774356392aca06d45a88ef55e8d08032903665679ce60c54e851eb596af8e15778bc7eee6ae503776a5c2bff056e40916ee5167382d2e9a9a6583273af479e702096e7a049180becda02cb5bb0d7aea28f75875cf2ae0ffb082d1c2bfec01bb94b95863c2a538bb24f8075b721ca893104bdcc38de921cacf6af8109843ec8b0b64edca10536882d105fc9743457d28ffd488052a874bc42d5a36ae97b2120994241102594ca502720229a88d1eaf411da87a2a9754cafe8a8688e79049f79f9494447114869524ae8d262fdaefe2a9141784f6e503e51ebc4ebf6bf4661731d05bc0420185334a76e6be0705e17bfeb516f6a8a1af6cf3d0cade292ecb65e94fe4543041acaaf321f1f9d92abe49481dbc7c615509fb3f4c1fbfc1ce7ca0ab197cf15e1ecb2874324c493ab4a9ff8b8ad8c7be0992205cce9cc055e859ecb0a9d480ed0f3089a164fdff812d7fd4179f36f00ec2f9326a138cd0cacdabf74fcea635b5e60af444c9014a5b6215b48b19fa16af10bf665f79490752d75f6442422188b0a0d693e6800fe9298cfe7fed1e956a0d8ebcc6d722701155c64606de76bd223ca2701945378ab604e4801d14eda14a241240ffa5efb6fda8a8fb9f3eb4e8dd286aceeb0d9b94ccb82f4078022e70f19fe427aa3282fe9a0595cc72c9c933dc09caffc392a28c8a971cc4e5549a0323296816426e2b4adf742a522f1a83847bd5b78c1075a1040016d36fe73456c9d6dc3077b45c3a2f4ea1000dafb8377ec55886beebde081c86c5c3504f89b54b172f4fd154ca51356186354a697e4d8e88edcc5c2531bb7cf3736e76b5854e2f728cc6f0c3f869781a42fc2abdc4659aafd83262b61c80dfb388a53b6347d0a7a4ea1fe31fe073422fa3ad80046689dda2b9ee9572b8d8f7ab1fa890e4ea72a5884fe63e8f3f0f41194a11a7653cd362abac252d43a720a1533ba1073ee6715b55221c46e73aa0c3f7753d957413df88f82778768bc63b96ed515a32e69d72e46f57ed0d891c384e46a9456249d425a6e0ebb59500daf7c4cd1e83f3ab114991ada3abad7186e7ef86f7c3d70a3acef50117ce2909a8ca2d5ee2588623bbe706b9cb0f4be2d0003f272766873e00eea333d21ec76aa903f1612526d4a837b1987edf0c76e6a746448b5c1f7f7813eae87b1022d88be391744970730a593739a294e3bb30e71e82d4ef6f2b7a526d978627aeb5171fb6714881e74ae41e3d50ad4b2889fc1761ea449f570d8e3bbbc1292119ed8ba6bdd514eddd802c1b1510ef52d02e2bddcfcd5ec80f7f1ca288c957f974dba4e01c3b25e890b7212d09d61f482880e73b20c3d8fea165de1193040178624e618f1270b4078f5a90e6af17673152c9aa7e6fdedca5db1d89b3e515b26f4bd8b4c6377d8a79b1450ccf78a225500b54db80020595f4f7f80dcaee12de11ba935187a088af899fbdf87f62a575e401d886376eb9a7bf08d13eafb910183bbeeb3d25f93591060cdd9386a96f281c61351ca157a5cd255b98a99a559373a1384d6ea64b2b3ea2fc6402e72179a29f6793b9186094419cc38ffa349f46bd2b7d7f723356830d65db2694c6cfaa60d8ce7174b987bf5d5a510e162e861acce2d4857e9d2961b41a47419c63b10236e2a267797efd6a29aa89e7d6c0763bae544ac43c256878d5e3481f36a492fd5becfb7fc9ea6c52c142212d6ca4f02611278cb153168651326706238e5bcae5d184d4a81d7a015d38b97efc5c68208d9a92ae2fa8604c1e76f8836d4803fed62006a47053aa53875bef48c798145853d2a77228f766f0fbb2f102dbd5552cbcd5ac3487354cdc5622b199534d6504c10b3682f486f18270c10f40ea2efe22e16969b9d32e17af5bb3ca58a683e0874ce59e4a1af0bd7c610f02bb2e8cc527f9f64c2c689ced02862ebf23e1bb257d794cc3b866d1c200b2e06ea86fc4e972b259572fdd0df9f5e78c037599dbefd96d4f45ede221abcfa00a9010dedf5702337dc84aa7452d2bf7356e8d7904d1493178ce61e140817fcf600be5c5c01fa5dc6a09eecc730a514bcbb97873fd6bff5d4d4bdaea311795d7624679dbdd0f550c11d1417a73c694bdc58b78d41f369a855e9056b9c6c56cd9660428ce39c5b7cc06a0d30ea9b18f6423ccee17396d1daa852e9254c4a6ce069b0f0fdde6490e0c23d1e73a7b0c9cc92edf8ce3e55887fa8d97a226ee18f8ed3a4ac542d28a582fa77e8ce45c7ea27832ac5732c8729ce0dc46699e5daebb3f23e0f0b37c8b7eba8cf91635f843d85502fc745cf30b5c395ef313848abe790197fb1301e2b46a80b29cd0a743cbc08bd6c988bf8f4fd9b357dfe9f38a31b4856aa36e4dc79dcca5870f8cc6b9feef6a0cd49e13e86065a5ffe51e390c083648b8809ddb3930867cb065869e961b6390beeb5b6d45280485656250c5d8a9a50181d5de4e810e617c014c9d36cce47dff1e589ceae645a6f93c19a97a58124db119ccf58d56ee777e1525cb14568d59b72894dc0faaf741f3ab512f409f13bbb0a9e64aa443fbaa9641c2bdd550a7142a3402e78e549196b9c88fc092b259c076cd469df227545d255dc60e6a32bc850f2d8d1b7b141d2aacf1aacade55742bb5dc03f117b28ca9bf427e38fbd33ac6117f2008e1e1690f650e6b12e5dd839373f2eeeeec56b20b120183b4eea08cbb893e88ae71d01dab0b934afccd539d0c0af77e237880ce346d6b362ce2d4297bbc25f5ffcda93eefa8364643b5f937dfe26ce334341591e8dba7de16d1aa722747acd7bde105d503bdf72c3254f1a847d1d105079a946bf41b87633bf73e798123ca9f5efb093379f943b25a68ba1a92cc5ea01d9408e911fac27ce09a1b41b66f4201c68d9ffc695fb205ccea5c774e0514a57742da01467218437c7efa6fc674c7566d41b9caf4ffe0d4323c4dd06d2d15a0def6982d05f1eb88a26a698b4ae895fa69313a923452e04941c5dd1021d969bcd0544f71cd00033778ae56083fafe22c0584c2d97b2e8a745a7c1a2f0412bc7b5022b857e876a813e0a5d1856ae0c2cfcac781bd1168b7c6ba3773234a3e1915a48ce39d6d53dc875efcb516d4eb15ee068f8983db2b7c29867646ffd0ae680b3ce8b42a210aaf2573954f03f06aa76613faf1e470faa2a123ac72f8f24ea5b249c2eb4761048e5451a9d854223231b27322b6eb9779bccaed8033fd9ff5cfb2650fd1ba7b24648aa78c5618e97f8878f191b95d67a371925f33c6aa9903375ee9c18b4d259a7bad66f26bfde7986ee19211579d36b20b4a4b0be95a62f41eabac52955a6688a8098cde5b3fd8309f0e049ada5e6e1836a0a263925e01920767b26617fb0c98bfe329558d385928fd3d8e4db56f137bfb7afe3ca40fbeda903caabc41495692f94267d35a9d02a7859971ab4f90f0b148ad366dbc0ee3000084356ce9e47b95da7aa6f977805f0844e85666a9d0cc26c39dea6c5cacdc92466b9be5a39342ff0f2090bd0e87e2e7a407c19ab0ec30331e24e895268588522fdcc8be77c68c34d6a20240a8a29524ff6fcd6409703382a96f46e03a4e894c5a2f8fb2102df721744123fbc5b106fef8d5d140b9c6610781532a42cf4d90ae48c4261c55809bfe4fdf317ebbe07ba8961889f4493d00095016ff0dffeb75f366b58a0c98b952d106b831b3c7e4a0e721627181a0d1bbd6abc850ba70059f0bfb306b4e18c35c6932042eed7d5e76991775f7090c874c37665f1220e60877bc7e3a8294a21e097f5cf39e71ca5146d66fd9971bb0e90d1fea6bb54fe3705a75fb766a2e7299c314463738f2134cde09525243544cea36b5545ae38e8e2837a7f99d054b560682a23ecb1250737b82c0bfce2ac3f3199572ea21854bed0a0e1aaceb38883e53a9ae7b7521d1cf9e6dfa877b41b55a77c2003a68da7bf31182b2b1ccd1c0634659fc41a4c9cced9e12c898c9098349e6e9687c15a201240258ed7ed5603335de2d907c424fe6e856b69ce15f58f5d62dd4c2ef91c242d3277a16d3c4ec0f09d36ee65ad6551c293888f03f9a94035e2c619bd2cc50c142039e079b6afef14ad900757f778d76476a4bd0c25753e6d4d1e98f10c91a460656a2cd0eddcbdb25ace5183442088fce01fb5a74ee8f1b9ca36a83571faae1d4a2c48948bcf6bb95adf7e3f66ad8d3b15305e7c8c0c15d9bd41ec63ff625d71fcb85dd2ccbecee254c241196cf0c6b2bcb940bd345239e857844b9c574eda17256f77a7c961d2f19301d673685e45743abd0b589ed5410b6ce571283651c3ada0bc05fa4807f240ee2577347c4cd1859efd10b6a7bbe562c2d94d703d78a7ca27ba5dc22252c2a0c10fe87efb3a6423a5c6c60c25233053638291fe59cd8bebeff835e3728766861c87ec81bd14aed16b19473e98ea011a95053595f2ce682d8f5a2b921e02188a6e9dcd53e9f68f40c612d049d4538db585c8f5515620aad7acca3f506e8da5355aacd8ded18da1fd5c11444c6e61db1adb34cee21a77b3b648595472be1ef02282d6deddb253abf6fffcaa101ea446bca32285ca5ccd5646a383b23988a46e6a6bf0b5e860062fccd613ab307010ff5f61d420b5132d5cac1071877c4567a961cfa0b5903e79ddf358cd15c56b5f894628b06adcecfc0283408861def0c6bea9f6583c8d08811eab37b65aa60d6f3ba10c86737c5d937973c408b59824f6de8df77e2af84a178ab9a3a3113dbb11c25858410e58dff865a0df435cd319b2d0b1f1c4669a91fb7203993f74e20ebe9c234357524d892e5fe0e8a6118d0add6e10a1315748a50857ec19bbe1d09f9a9dec26231afa750273c8c908f413b84e234ae2cf6b4e682c708984665aa4a7736e896aa58570aa77a28664930a0e18257443025493ed237129a46b0b046ba74209c19cc776fb6e0b618cea30ba116a5d7413f346c5e758cf9e8c9d26ac456e123fa2795d15f34bae19096e9c51ce37844e42c070791c658f24bc428c3d982334322ad4974ca11c1ba53438147fc401d9be57dc4c2d3590dac1473e934bca36ecdb3a9e834a36ea52d769ae33d88e9a5898b9214ce16151bbaf223aa08b9756f885e1887c04cd8068f310d0a955ba72bf40daa0899c25e034dd3009cc58f0d19150edf62faf7ff072315a9758d02e57bb31b79560e532624a6e29496c306a04daafd53bea478c6c723fc8c6e88b27643277a71e034a5848c637496e783540b0f0eaf0606d0c893a2fbe8aed04aabb2ebb347a8ecadd7cac5245d5a220ade3674e9dfaea7d00a9a39ec0a8ac3db4f666201ee5737bb1acc2fb556d246f831c695f37ea59a76a101a2651fb861016817410ff42b0206135af855b2e0978c3b98bc57c195d7755390429ebf7c5a9a0d8cfe734a237728ad25317fca4966e21d2251a04bbf5931268e0a9ff4a3dc105191adb2f2354f54deae59b139094f273940783b9a0019eb22fb26b7342f760605435a4f6a68625ced95fe52f73450b33a8f0ef5d52e8c68c06ecec1f08147caa7bdf3ba1cd5efeb7511f0a14f9ee90fe1d21600274645dbdea46c94fac65fb45d79117df44e42fb5c242b036261c3917f0e721907ca35aa3163a8c4400934c740fa7d972666b20fad997f9415b0315e412519842bc352661c504c2b340cb8fe0c40960ae26ef9fba0d2d8b9327ba14701555b529b3885c5f077c214490543715b9eda3fe524adaae39d8bbc0eb200de8512c01a8b7e560c7a60efd14427f4b028755eb5f20eaa6944b444d0e4cb0d11eaea7b9f6ec2ee9091cb1c533f4c78c7deb6663e409d4cdacff5733f672922e09ecb04e9f89d47e5792a34e277a325dbd9dcf5830ff183b3dad07d6a923b2f2438a5443036ebc252afc43ad689727b1deb7bce9ffe20f630e23e4e9899ca9c48a34f744d60a16f7bb375e04e2895f4760af263b9d59f14aed93f873ab49bb303fc4981c9e9754838b43ac467664a30ea8dd73f16de7aec22c93c9cd5c473e39ead046f83899c93bdc82780078396fef7e98b3ea635f1f5e1e21878699b428b6b4d0206d54b899f9351294843215bf268edaf3fe8aa1daa49fc7c3ce95d5a1fbebc88f7cf4e705f5e12b136d60c890fee77b73d980a95ec18ac642b43706c692818e93d9f1db4225719c813cb382e4f77ffab2d3f5ec57b14050afd3997c064b8e9647a576cf580e364781104e3d4669acd2a519300a279a27d64e4e8adbce8dca5601dc839bc577c8ba04c34cf5292cac6786448ac6fd6d296500c20d955aa91436aab66b1ddb6381d5978b38b6a4321e7c0e08f05c2d7f31121bbad81ce4baed0c375656ed13e5037a682e93744cc6873a1684651c80f8b276fd8fd6ea97fbfd355f29c064d81bae53010b51b848c0cfcddb4a7e56b8721f3d60faa64df5768d2ef59ef8f46dbc2aabe8e85c17de41c1897532e49d8e0874bdbd9a190d879c0cc782e1a2cd0afae44a95341080fe538ea33096d554c95baca960b0b7dc1db28be30a8b36d3479988736b7bbd53a85b4b7adec2a48b47f748caebb83b9ef6e640cc127a7ee56a398ce0b35929511e806e6f52e7352f195bceca6c2e137476ab070e55331c764399a6dcbeb90b4f42f7554f92088287fec848164cc3e1a366fcdceabf85026f93b95066a53791c69cabbf497b271806e998c1c3ab74fc48da83625aa178f7683e444b645ab9db2ddbd6507addfb9a645776cc92078cf0d627cd5f9a22e61932b98c18eafdce7d22cffa120150673d13a768fdf72731f96ba04c3e4f758656a473d3818ca43b0164381aefaa3f084bf7b4f16d39ba7d8cf3eea68b34549af1cb36330ec6041b639ee331382afa23a07967df3a9b1f1ccf1849777b5db9d5045eb1c4916bbc749304e8b921dfb77430e5fba5049c455b1c09dcce6105eca5f87eac119b3020b2f6ba0d664230e6467f15313a7241994982061fcb3af047700ed9a2e6043cc757e611a773177334b72775a96bab7467d944caf5eb225b60f1d902b4ee67cc44982d906692816425d1564c1eb1de6e3c4958b7cc45dd7c6076c2352e4ba3ecc1d18ecdfbdc443127c44d5f3e31ba35140be8dc18474f96cb44835428855b3869cc3d1d8165870e7463e2dc5194f6276e2dd5c8e58b0493fe26ac41e6cc77b0d69b6108049157623dabff9cfdd3ca9995d92f2a5b25a93915be22860178a19ffd599998b2dc237ce31321afbfcf7481b1d2be4364ce90ec14ec9b479014c98e368e747277ae41dd3b12d938ffe5b5336d017c2ee3c131fa7e63238fc434a24967f7f7bf0e82681128424ea4c93251304c0019ec194aa37dac2b99dfbd4b22f3769c1cebdd1a3417ff5eba1e975e93fefa4c764933ac27cf95b3321c8791062a807a4d281862a6588b5be966b018c6192f3b2a9115c69e84e7def6be7ae94b3d73e4edd0f93fa1339fa1bdeb0f72bdede705000ee98f0e0287533e5f8733b6701aaccf8d240e6e1282bfac3ad84e4ce32264775dfcb5219ae82f3d880e464e51b278bd5166383914b88f40beb90dcc7c54d64192f0aaa53ed93c73df570bdc198843f22375409145e63596cce1559b82387ac42657e50dc19d9f3b9bd2e2722750cfa0ba69a0ec68d521e0054db59a3fcb929cbf2b77eea2890b3f499f73e17d26136ce502f7214fd5a7e302975aadcd7d1a17bed3d083766f74fee41b93415c6bfeedc7fb7fecbf02a47953a1be3f72f7a5b7a28d4c2acf8c4d4d3e6cbf6de1edae30e4fe196df2310c11cdab83bb0af695b43f7a12e5c1d372d3af38f384c0162f37f5ff02a9957f4a2a29b82814891f1778bba900daf5b3f48b251d456a050516759906030869cab8dbf352713e80d6b62163d685d344c520467382da44e9ceef53cdb3f4d564979b4eca1b8bb2c06364024db7c8bfebf54b26fbdb3200b75828af350c7ac172228941e9a60bee04078e22cb14092f4b1e1525a483b5cbbf734f583a513361b69d3f840b92daf3adc0a9bbad08e3da371c118c20aeb9985f37f193f0f2fcab65e18b7d98e6fcc58fe6e1bc55140019dbd7137c8431f5a011c6e999d5e4907d310e08a7222300efcdd5cd4897f6cc6b23d493682c185cdc94f00f1659df66163ee4270e368674fcc75317356c6bfef3c42cf899f339008d20694eac3758d69babd03ed476747fff1570ad8e763f0af5c923fba9ba556db5a878c76ea53b4c94aef3e9b00f14100c95f9ad1153613d5db3a0ad083e65539b32686b6548b0dd6c38a18e6a7077a9bc83d87eb2bbdac2372943127b3c250e4b39107e0f0370a0f42f1e6c605cf106adaedfa8167adbc2383bebb897ed0bbe142240e4db8e7ff8e0399c1505496c1800ade6e5192a40bc3431d93d4ac8273408c1efb5aee64e7a4811b6075c0cdff5da2c3f7c49cc3e5ea5ebc6115399a0e77fed6c7e61818c172970ee7281db3872e34fd771682823732bd49c7ac5e9d4889426f7c7405c350ce287f34220995ee7ca179b59edff44e0065ea44e88b54d8ba6477b0c8cd5ab68b709a9e0fc7313aebee2e67d8410a25a9e165a86d871022dd94c61e9fa56df2452bf3a2b6ad5e675f6f71cf38ae6c532fc454163c463a71693279e8033d0ce5f3db3b9aad39f815a2b24b0ad927fe9854e1f5b94b04600aeffa27b455201f0cd69e9050d36bdec241966350fe2bc743567812373d34271988d58c80f69954560a9a70694a3fdaaa002ab4e7ef6a54b413c47352eba3348b970b46134fc0c2edd384e733ac145c04d2a9b8085fc7a91846828f878c33e782c1f0a4a8e8378357b2fc0aefa490d00025c7645a55797cb5fa929fa21a3b9c15bd4b8bcd7ed02748d105c77d1882d3d3d6300ef7d1d248e8e609dd6c3e16080511060f26e184c43f83e846dcce1ff340d927d2936999a1c4215b4cc9e58de99d9152487a65a93547482b7b2b249cc4f5f3dbf310bc916a89df19c678bb99f46d66a02b50dfbb1719d8839239cc98790873e4010c8e07915dc4336dae007fdae6b5b36d4b0b8e572695f4bec1900e34d9571516b79c65c75bafc4df01b19af964a77add32e426b33ebfdf380699ea88ec73756c21393d2973d3272b70d1b96906f108c9ba4bde88e34b9582f89ea6b2314f71024ea17fb658ca151415b0dd07421bec18bdb42a8b1c1cfa5d8eb3d87d73d98ffb1c35665eb6325ac2122431f13d7dcad88dc5da24517e0868df7856a536709c882160442399d41d389a7e3a05bf10ad447058f5846246f2f1171c3398a69bab4b56e0d668d589bba23126ad377e4a9a0ce01cd7f858765f384748dbbcc752041c950101d67a47d980e5127ed8d7f623d5598ff7a2a108d6fbea18d97dbb434b686f6decb73e256169f7cbf822880a075ff0982a5b6af19420ab100e592a5f5d6141e00637dbf3711c52fa77d7c8311ab1de7a76d589b1b535dbb370909f7e19c03c32fa1c44e57ea3893ad6207b529dae799313f97890dad361f19e63a7b80046301da2571bc9067d21570e83f4f9eaee496db3da2d04ae5b3119f589f98dae93693a3530116df23ab17e3dd5220eda76e16d0cfcba892149a9957073c52fbf4d950e202e4dae78fee1fce6026cad44d097731f8fbfd8a5f55e8e3801597769621dd2004a6626f82798f4d641d62d67478ec9381230a390f31c377aa140bdf13552e9e725da9df58ab244f87556aba92cbeb7ef8f9698d394af55e7ebbe450a449f5ccd63cbec7a70a0f183b59db0c23cfd8ef75907cd4f9fe90741a43cce59c35fcd21878e3597b9fc3bf39801a9b1b96d5d63983a54339dc1dad1efde140ad0c770a43e569ea27253db14c7846f9700d399915d47873074cae8e5b1233052c77e78314037675aa75d52c63b038feaacb1d90a6b7eede82863eafd0f8ec5f73b6a680634f271899d06fc5f89ff746898eae8660df7c675187ac3ffb3a917a4d0860f74f170e94a3df3de3cb241baeb718523e680a5acfa8090f7f746a4406715bc613462b77d1a39a0341e470d1db92619cec3de73f41e7cc2f46e05714bb0d6798b3d020d8583e6d6070e942c8b3fc48f7b83790b6c7bba3737b2beabacf687796e83b0c92d712404e52c9623be14041493fcc2c54d2de0f899f1a2ff4818981657b07dc53a17c47b9a0ae9cce5509a17c11ad8162b65a6ccc41287ff792f54f7b6429c0a02be3b9cd6647b4a6c2628fae34b1790b2b64e86e87b3ce04c77dda1754204762909acf5a825b0a6a1fd1bbf89f8ff184cdc2d413ab7e8640691a1b002cd61af90e54ae7428b3ee6e2774543dc06950b39dc905c67c7d7d49c4d7f126845287f2871e2251604dd862d93bec18f725b7617fdf4bddd9f3ed0dabd2e9b0253d356401f7453586e6fd22f82c4322199ad07dba9744aa3ae47f65f244f1c78f30c2f226e97d2ccace08548bb522ecee858cbc7b5a068527cec2dff3a1568474dc20b3c5bf642bae10dc835e11c0d1b25d4fac529d6829bebcb0070ac39cc83bf8ea694f458f338be7a94580be567298e46080b2abea2131a514161924f84d7e050f275b1447070c86d1c5c301ede44297a3d075ff7a604615eead053087478ce283df22f89efeb02c3fc8407b74194ae6de1f5729a10ad5312cc7369d97f2e82cec7103dd82994c9048e1d0cab890bd40263a7649ccec4e055a5d1bda8a22c87353760051a57c87903ffe9344ce909bee2664d917c8fe301e16d1a4892b57963a6f5440946ca15d3e35006db5f23f58bb66e3e57c9ae1937d6f2cc60f863473cb0d5f8b3941a39d32a7408437129c5e70bd9ee9b94b459fd581a3fb2d9643afd99c1ed156e03e6b341155c4166219891f937594215bb31318ebbbbfaf5bbb52f4f187a345934abe2f9d4b5bc5c3cea93dad737960e250bf54f47e142728b297c8be97b8f36ea8e37b6be83de0e17a048d94369255a9c90ae887fbffb8377f6b345bae6ac3fcf5f8712d20a1433959d1d7ddb0ba7aacbb6cf94e2608fae644f228cf1237fcee0672530c2a812f80b2bd7adff632ddd7a8f54990d7beda1794035d463740cbc28a988016081e7c1d506abf9de71da6f8aac552aa3f31a497d9a7cf57b4cdd3719705ffac527bdea17eec06f853033327e492b342ac760498ce9e1acb73c64f95352a50ab68dd3c75174ac460bd52be2bec25f184e1272b8d75d994c52e3cc09c74c99743e351132a1e0347aae4d8979f49dd830a9ce0f5024501458936de2dfaff7b12c95126e828da8655b2284bedcc5b2a364609c32c3b02efa32f7a84f965a82bdce2ce6ed0a5f9b897f623c1228ff813d38c25f5cea675322f0adfa83c9cd69906e1f58204123772d15b0f38bbb567b12415f81f6f8c938ccb924ce8b93567d9ff2d1c7b847b2e01edb12f0fd1ab53b1428996ee9f6deb75f71540865d7e01d1481678bacc8c8ca5d5befa8b1e66bdd63003b39370fd3097cd8057e84d6b95be7b600b609a1e851222daaf5396d9ff75cd8e3843f9b97950d7fc05188c124fafa26fbdd6bf8d8bf18e63d7f58b7c75f80f8b23b8f77a5a33af4390442446f809dee90d4709479b60499e7b5f6c94605c978454ae7b87688773d4813fee3473015b1d2e21313bfb6e09bbf46606524db288639567a304c2c6087507ffdd32b3259a9d1c98e42c4ba0fc1ad14263fe42a1bd066a2868cf29202ca9fe1de40a5bd405d39323d80ad66f8015ba102fbabfe242a68eb97a13f3f6550915585e7cf2c1d87639fdebc798c8acca344fb191a8c3269737e92f31715f6ca3051218c67674543582a56063298aaeccc56455e70da5974a3f087dc4e0a645cfddd1da60e4c847f0295e1b13ae0bf2a94d16c376e27e52a2706c04dfc6c9fa2036bf8e4b3a6ee55bf6b0fac160941da26b128772895861f404ec31c793fc0963772beb8a6169eaefb6e53a54afe0db0f53684b7e6ed029583e6867ceee2449c29606b7be559114671a8dea63e5a17651c70ca087b098cb16c03f3910715da8952f6799eee510e946fffb6e6770fb403ae15653bf46f5ce58e8d7ba2cbd75c46b84087af066e7ca295ac518743b07d256d8825a35ed41236bf718db4fd26e4948bcc6710abb6a61c5a947c80e54520f8e49314ad9946a6d3542f1d01731ff243ba4244bb224c04ee73521a2bc055b07e95be65ee10872a6bb06d2972ce91489bb58c9928c746436e203b5d345de189c8bb38a15daf9ed09c5ba317c9aee4abe707dfd370d45a7132580aa67dc9872fd275ae953e0a4865402d605b8412674c6521530bd5b202be0f6596c2a99c2c4f376a33321c8db7a524d2a4e1fed7019cf4ca074f85c9f698a90f3a99e000760fa7e9b7cee31491bbedbd58bdce19cf373cbdefe6304cb2c3c0f16d50182770a2ab4bb3b6fd0694e6e7fbc423dfa8d71d1e07ea8fe4e4b14f1f84da76022cd7bf33a7bcf0161da0dd54d3e7b8e9d1c3667e80172bc8939155d4d729abbc597dfa9d7cdf5a71848e6cd48934509272498cad45cfd86c5bdf5225d5d6d3bc88a57dd54cc538f87877bbce2cc30cf8df9212991300ece9af9d15ae1cba375d99a78856a90f129351400fb77ffd2f65f0b129b20fb11a89e2498680dac04c14b6dcbfb6fc5bbd67681c098177f43a862bcdb45654d94822b298e2295e31a9a49ad4bc6628e001a43339968356ca04969a2a44eb9e4c7625f82cb47e1b8b517a337ea310c29f665030c7b5f1f068bbb3533c89cc38203b67196ba46ec98686f25b20cbd4f253373a69aec42505aa9a57391546c328140b2c24a9a5381e8098aae0f0952ec1e352975ba87a7f9f023d3209c8db0456a9d46461900cfd7ec35a86eb6af513aa7dc166c84783f5f08269ff49a67465352dc9b2c8153fcc49cc9160a7abf6db073eb7a1be80279ddc9637198e20ef7ae49e224ea464f08fe586af38c5f6c5339f58adc4f40f96cb5a48f4ac393614aa0013c3f019a835f241ffe00632ddf25a433c73305be481df8a3e4608a28722950aa95632fe1d35496c8318cc51db5c8b92710a266926d032b269ecc78db0751d82241e6df9ff6173e4bf15f51a67ffac0d5babadc56f8ee7fd6804440141c94decfb64706a2f9fbd8bff3c9b62b413f7b197e5b6c501034ba284cea14ee5fee65d00d15c25dba0d71262cafb5a4f39ae46bf614e8d1ed291be24e27069cb366bfd385586e446dfa027f58b0d7a3031c40ea2523b62e5ff9ef6ad298e6e7adc1c486019afe8e1b468ad1765e9afbd1353b8decf52c6646bb9abda90c95481a04c769856fcbeb1ed2ed2d497ffb3432eb31ce9649c8ed17e730c9a98db81477c5dae3bc9d3056a7b38681d961995ceec8ddef4dcfb8c65e1109072a80412778526c9375c89e4a385a3b5df042d93e42b0f9bea265905936fad1d389ce41e3829f452f21b3027c2a06696c9ec1c5075f71a4e609e10c69d2eb0cd6a825eee4300b70c65711a429298f156ab663975fe9358ce35a6443cbf868055d6c41dad5d1f09bd051e7dd36b27a23d74e2a198978bb2c385249ae7e812ba02c3e49c2cae80af84b6c7a52309c62829143365bbb1a5eaac31099df1edb729b9b8b3c7349aba5a218acd17c7c8cab95b1b27c65eccff213049814dab287a21a43446fa49585a11edd35c6c10f7f8b4bc0808bdc860c72159c53cd524d9b3097bf5f16d42b95457602d3a3621e44609e6dd45dca10397265ab8d4d5dfd40e4902c54e478612de2f5c17359f370ff557a6c9840fd9d33727768f650441c35649715a0b51afa5343a8d1a8393632a85d41fefbc6ae04caf33cf1220d911b4a158790454d242143f3fef7274b7f478a736705f1ce642f4466ff77090a8394e6481316482180a0ea4c50b24b290187c435e12bb1953e93d9e09cc8878a7a8082bbf7763237525c6d5e15259274a569cbca5ec736dc1fc635adb1a1dd8417302c636bfd90106114a09b11c01dd35228e6178daac01b6c6cf8a178842e2b0fcd058eae6373a7ff2b9060ce5b3481c28eb147d7ff50ca433a394d6c6d0304faf0c350cec9f17a8ac1fa431419c07147309ba0629f2faf7590ffeef25ec8929c213045f73da2abc9aed1394cf6d0fe281568ab3e0f67479651c7439fc64c906cd1a998f1bb2328ca23bc85f2e1152a7369afa90382483aefe7011fd08c45b354d99f6aa0c197e9ff6d957d850c656d5e305c5c59b5e5dd381993d5b80dca08f93e197b9eb72140c325eb1b9a5f3b1bb181301a208794cb4f3154781c52d7dcfd80312952766b2f7b6c8162004b354fbc603c3636757284584192de459dcc32139193c1122122db061ecd8c218c956ed6ce6ab61301dd2503ad8d8006cdeecdc619011d396a770338d87a12022fc1387555f459b61df82de103f921c617e5c95eacd18e35149f917083e67991cbc46749e6ebef97632a50ff30804ced6b3dc33ef96d23052d5434b597a4fa31edcae0fd99b1fda8c39f59355f3e9a3413e58f9943d22ea012530cc7b1fcefa1a5a7747c887fb589d7c625de8c43d0a243b28771d7122b3cc8dc68162c661bb1875130daafe03c7bbad1a2e9ad15c943f7dd5c2967d2e67a853594a05713b76ba9623d4da13443c38b38e67a672b2fe2ba818427dccc03e1b127b00aa16458a5d89752ce752ee87b58365184e473074e231e2f4e544ec52db07fa28b6670a20de053b4475e56f209304ac513ffcd0bfa3f19d149bcba2e6ef68f11778383c838961dc573fd8855b393b8e840fe8dd5f9b0393bf8b40472e5f0aa707b9e99e045731d26cd9b74091047067bef74fdd7aafd2c436a3837ae2417ab1ce517e7050d95a36732301c304fc47fb9d761d82a926800fc41c1f0fdeb6b6f88780d534bff6ca1491f2a588c8a3cb3d3868dd12439c4aa7e6f8de1d5ae595679b549f77d22ce2c8c9de45548a219f56f49470ac612bc83428ef350b3d57ec653951ca2b7d2b4fe4f4fab120c5b6cdc3f320e9df2b39bc50565a8951a1786a877160c56c133edf7063545e163b88ec2a4ae67177de8dd12464a409fe58198e9ac2603cb457cb098f4100bec76cd8748645b21f7006fb4ee486f2e70e21250fa9fbe25ebd3846c863e8aa9ae0d7e6bd06c0b80348d654840b453029cc1ef52516e40b954b1442c0d8d71d176e8e90502aa326ab41eb1aad5b6e3a9ce54a1e8e6426ba0d97c26839a3bc942e8657c9f48e92670d6eae94addc0020d441de7ebb70276c201a15e70401973d17b79da8b51cee8b0e97996526ccc846d4e2afe74440923558796ad6a34b9a53cfbf1288391d766feb291bf71fa35d894d347757913f5de69d8f637a851538bf40810657ac0726c50ebef2681e424e2fecb7ce8672d843c4e985e5ec19534ac33966cc9cc5721af89bed4aadde983cfdfc6d93d779f805f481d20bf00a2bf06246c2f790d16adabce4e5da087ad89dc1863973dfafbbc28f8f2c5cb0d3efdf621a595ebc5816c45322eae2ee039d154eeda849f89d420352e56659c22d3bc4f9131c8d1ba5e975948e7edf45579024e9773c6e73f45c5015abbc0eaa8f04447235502710e38abb842770f8571bc0adf8d0de4ac936b21c7c8473a5fedc69319de2708abbcdfdf3799cd6c7d7938e5d5dc98272196e646ddce56969993ab2f82b113ed2e7ae6abcce14e314b5584f32d869b4bf97c5c2ebb9df68d9f989b876fe5592a8cf52459e4695394df6c1ce6c883af790a68f713e3f869319bfcb2e3913a8c0522d634a96956a9e3e102e1342cd201993944e2e34d34a71a13a0b3e5a7261447259af4892a8c0f5e28ee9627456bd4ec9586cfb627e7d96f067c8499aa30ad4036a20ada8f66bbdd81a6646e7515fd02b93b745eef85dfb5961fb0153b13e623414e5a3dd94ed6521a50574a6a7165f2c59009024ba7cb722949e3abf3f5a3a8a20c91014f9afb0d04d0de4580bf8be9a18cccca230f64a02b8472a97ec09c03cba19e121cb2bcdaaffb4f7db56bff0c40297da0dabba4eee0efd1a79444dc2cd9bb33ffc16b1dea5da460776c8de8a51a5ee2f5a7193ad6e8b61a6d44be4276e81a480d59a5178dd196af8d812e7fa033f644a57830097b634a8d5c26f403720a34995e0ead16bfd1a63ce5745b925a363df0dcd918a75ee0260a775d132629273a232592b77c804085eaf6aab402c294a8b81bc644dfe280c498eb873d06a23de5abe767ad1c01d36e01a8057745c3b9a26f3d65312f9cf856e23701a1d4b6be2537d64ae3bf9ab4b8aff257b8e407ab87719711e74b74552db5d817de133cfc2e922e18e6a29b9edf821e76e2fe04b4b318253445989cb9d4848a186e1a77e6e8ccb0f15ef6e02e05ef88e44dc459f43d48c4c977b250719ce41951bb96e491e6b8238a385f4187b6cffd663bfb7deb99e481a31ce6680ebd10c46c9b054f3f746de9cd9a76c77f6edd9ff2517dc05be456f6b38eb9bc732f6627cce73b35e02cc6a3590647bcf5843961c434b8951e110bb2fb855f55fa33e7c3ba01e18051cce2e870d5d4810124e80b9ebb2d36c488f5b9e6ba44701aa5bb0ba42af18cc6a0a40767ac903d1d6b51da6bd5f28c180607142d8487514274ab03aaba3b7c1e1333dcabefe452861fc19fd4233176e7acbd6388767ae6c41aa5733f6ae4df1d3b7bb4ee29adad6328e88076eca74d9a649196d0e524380a5c3ca7a715e2adc659ab440969bcdc7a9c5a3cd21226cd887a87a051c7bfad6b7126be7d9b81874861b6aba4fc55fc7d561003276c133b1771a2486cdd3a1f669bbc8ca5b9e14f4367d287caadb0703cdce4e0c0e4e8e8fba96c05d444b7b70b1f7d0c4816751256fbfb1ad47a7c7040e418b57b9cb301464b72e9fb730ea8dfe98b5cbdf4853934e1717f691f575fa3ecd0ba7c5695a8ff57c69f847d49a985712c528670ad14bb9a35ec823457f8222593a16456456785767c78bdee264fefe74a99b77a5cafc18391099e808448c165ce357c0b8becec472d858af3982af187f464784056f79cfe8d5599245b79790a51999db8c51a158577c5418146bc6991dbaf7613333392557a98e7ad4d6bd353d00bdc9d6566394f7a63512a0b376487d60c7367ddc8b1826b690dbb3d20605b63432c07708422435c00c1e47412e1655e0746fa1654d404b7c29acb06f668c206558f0900694ee7c610e07d456d2ed0121401c6f00cb44579a61209f3b05b001a2d82a6c495a9fe6649b3adf43ffaab35110def527e5cda10d372524556bd9de297b3837bb8b3226b1bf3bc2d5f88382b57687a7a8c6a149f874d98b1d6adb707da42637d9929c90c41ad784c4eb6740059663a76cbd6ef8e58a7a3df8846df15d9080f325a8e82015adbbee6e1b691e0d4920aa925446607140bb6ec735dc7fbd3ad7798032ed00898804740b2af43a0949a254dd20c967ab6850de969773a8fab8d5ec1647369627b206ed65da2fc34be5b1aeb9b87f8196f7c3b59f2f28108bbacff5241ab29539fa0a7d69b4b8137b47fa7e4763f185db48e69b704b6be82403fd706d08e28a596e700a21ee2d26686408fec6717d57f68f61bee92e8b27d5585cc29892fb125d8ca7a5246df1b25f23b4789ba9449000e18bddfe385235f77fdc11e451ee425bb1d5830a33b29f8f275429887c9d1210c3542dfbdce47ed9f2fc9daaae7d2f983f37a3a48c9fc0be3ec75c98b99896b0372853561e6b3d6ed92fe66ee3fcc7a8066bea3ed9530ab2b61a21e4e53d52932a385a05224cb28dd4f6060df7761863476d252e37e36cb8532e07096d72ce9e89098d0f5e40dd90fe1c87a4715677d96ce7f61d360fa80ca74e4ea33c96eff0ea6c0e9f7e2853fa6d494fa98a8d3c65b8a619f548d1085539e788c137f7602b73ac3038a632b9827306139ed39e9485542130f4d7065b8eb71a8a9a6b28c4dc3ec50ac6bbf5c83fa38be2453e786f1dbfb8967248f569b4f063c699924907f9ab88d64c51269856da3a8be6d8ed9334dc8ce92c64b38d43d0d2e48d9b160fcebc38a1fd31dbe864f6a199c629be38297279a2e76158fad17bcf095eb922c69840cd0c75ea0805118d1026718577dd7d67f5f0f6ff1ad9411f87df493bfbc33326de8b80aba3517a1529f5ec54e8030013c30ba5885ff9cf3a761ddcab0c209baaafe426c19abed6c7e0dd1cdaec90da3637eeb880dfafb694d271a04fb765edb7afe2bf6037b498106d2a7f2aaa0f5abbd2e0f16e9a18ae547d64dc57a8de864b7582ab3806089ce7fffd9cf4dd7ef4ad09acab9a589480c6372688c0da124592f7e6dd02f0f6c289771f5aa49ad09db4f1b7383b571d7b992c8320611becf22c86014f8986996cebcbf9c91a415d5dfce73935a3805fe8ffe29c99422a06ed9e0ceb37bfabf1185884904c85981e711c1006a5183b42517bf191b26d98cc7952949d44ee338c73c580576874aba587b23d96ac74f59dc6eee5b6b5a737266d6600773d121a4094ceb87d10c18ab46a45b2dba5bbc23548eee46d2fab31619f4a83c806ad1bf0b37fc1105f7c02952cf1f0db4af894ae41407b2bcbf66af75a6675061f2906665081b4f99f51bfc20467a6667f93c1c85aabc5e676747334e98e1ac6ded2b3593394ad726c78956dab539801566125a57f08344671c450f420c04f9729640f5762b2073da877806ae9b606ab64ce9381a01b2b8252c5cb130910e0f2fb9ac81d22e6f98f64f92534bc165df743094ffb681cc065b0d8087b9c60ec6db5ccbe8ce1cb6935022b16368c957d92d9336fdb3419baf99b64fa6c63160b09c3ecd47777fdb58d22af2963ecc35aef5979a7dc26b9d2fc4448e480121a245111cb6393c4af503f94c82e209040fdf9175a8743246c4df92f199bd5aa1d58ac9cdc8bb73221fa95702fea98a89bbe5fcb869d57b83953d0f5a5b2a8382952fca316c18d337a13011897ef888204035e55742ecb72217aa1a1567b5756b9a430be6d2c0f8ace9a26162ae434a142f513093499f24e02679e8994b54e9fefc1bf9d2effce38f1a7615217f141e24985871a9ec2aa3351ffd81764575e00fe8bbf685810077622e250e885a0ad67f59a1745945cc3cebeb143ed6d32d1ce6ac18d55b3e43fd32f596c2f8e8ae46d4e308b834cecd9837f0a45158e76ba4926bdd607b6bf1a1446ca1bb31c779c767c36feec15e968570604d3d36a5e44454c1e6d29f68e9f2473244165dc534b746806d7f6f99ad764bf1a25abaf8200a0c2f8b5eb3fa0166231a0b056f89aaf77fa7aa0456352401aefe2853066d15cbc129e9a6395f44d44b1e684dd4ae2a6b710f77cccacd715f0e8c4ea72909289c3807e0448a725cf8ac36bac970bdf77e24a92259c221a5ef63c0b92b8828645993380d44db72c0f221d324e5ed91249bba7057e302edb6b3a7bf3f869089e121098523a81b2af9c77dfc51235911c0b5e94e33d326c5ead1e40301b3c20c11d7a93636e39d8802df235eb79a12426fc088fd28496fa46c13d997448306deb6a3326b1e5f92faf38530bafc720b24bf352c41bf97660cc56825d5d6185202d76ff2faf4f75102ff6a318ab06954e28892d2091ec452ea50610e88e26ba083be6bbea7b77d78e159236ece8d51fc37bcd8a04cf90b78a7a5b4cc9a75c837b5a08af6859435cf5adba6c04d348f3e22c50cafa8d1592b0fadbd6daa244d404af5039ad1025807d7e3d1fdc75a9e013a8bb6e428b3d2b4f44ff843278b6eaa38e1d06ba1c4934476afe3eddc308aa54eba64e5b4924c02c3b988e7e2b77465a27932272a298577d85301d5a9dc76221c9d280d032bd229609ab3c62df0f9e53e9d2bc4836b4488a67bb38b5fbe16773654167d1dc222bc0e4f6446e6956dfcfe7502cc22d6d95026696427536a3567849cc837cc9030e73686a8721b6795fbe471c3bd7767bf6763e8e5324b18318ae3a9da4d769da16841c5313f25c0062f4ba7bd82661068bab6a0ea760b9d7aa9cfd36d1a4cbc5150ee32d6575403aea1122602f38749b8f7b6a48b5261e1176f27f3a88fcc0ecd92d12b11819bcb4c3474acea6967a888cadb36c5a33230206468593293f7ccda6bdf717f88d419f3036e93906a2e5224e45d78f73f51a3453ffc3aba6abf5aec90323b64c5823e8b20078c535470a5cdd61d1f65fc146d4583713f70388bacaf3376ff252935dc5093e3f35727083938c09b5eb946feba786db9ab8987dcc582d49da6cbdfe90051b5e21c02593a5a0ec449e77d4de3734634c543bee869adf7e4d4a6878015fff2d5c1e07fb88c886a56c33ea2b86922ae951c92cd9e408a553ad0b228ce2f616a31fd3e3e63060a5e56b3bafbf1cef2c0b547bdf75abfbd1650ebd4a607e80c4637699072c9c9966ef87217c3fd40c9234d267480097cb6695abb369bc8626de4203e1191c23a471381abfa13e3491c90278ec333ae66e8b1280260c5792346f9d78f1fd8b1226439cf84b16da40f6d55f2cad8db50bbce04d82a6b865183a20c2d6c91c5ba8474c1b62a2134c86aedd25ad9cdcbf9941cac55ba8864e4d72ff85d19f39b0514e9002bb32f31711522ff7c779d57be3349aab15d2e8945ab326eec2e53e1137e113e39afe210077515e5a1644659dd47752e41807943b7a73171c4827fe324fb9b38d3f00fe06ec0fd204e6af6adebd33e209193a085eb1863d8b2243b30aad6bb9f694fc497d3840f64a008cfb51078799b2873c965d424e4cf2be2021acce137975675738cfeca93f5ffdf76d55238e96c1b8e3e9c041ec356610c6b39fe010e3918009bfb3f5f3f2d1b3234f8f30f0e976cc0c709a091f0c0a97afee8a34d0d115b7dc285e7fd36fa3514be09dee3c6d24006df2edcf23c363603ccc6c468c4a0d40ea9ad4c66225dc82c4b7b1fa61209e17294b11006a33219e47c37d11366dbedbe005c67962eec6c16a6c277bc7ed88c1538dd576d41049dd6e3e1761ed2aa3dd04e5df8b0e5501fc238d8f3fbe1141db64b1fbff88f51eac6712f8530c56ad39167e2415051c8ca7211b99acbdb437693d189079c8f8efe69e2d1e11a4e6c518283fd4f47f2a5282cdde729402f1fcb8dc852f62bee89f22bc03a8da20b73d7cb1a28d113b7cceeaeb4e6e1427a16af668953354559e190301421b7f7613abd628bbe7e8240374e5c62c16215f9cdf800c48cc3fe85893c60b401e34acbec1c510d7f15487274c19a788398c4fe9974ca0e9df549c54927bb26991c32a3aa2df99f10de9083242b9629bfb75c8b0467b9554d0622573dd86cfe6c3cd050096e586a78c5c8817d447552094af0f04edf87f90737ed1054025aec413cf07f919e957fa5051e7ec95b5e957b4ac4c8e9d9161b5880b155d2aa227aa49b862d3f8c6318e55d806ce562e5ae31523392fc32236272d2fed0ce9fd28b64d44aa803ab02196ddb1e11c34dbd6ccdd41935e268b689ade5b0dfb53eba5113df5a4a4380eb2ad631a637e8c0c6ccf46cdd49a82efd1f009bea13c58a294989c71a9d57dd6bc89aa3c1d5ee0fd6d4ce38617992ce6d328cececcb939307486151c2cc0beac0579c7aa0a8038ccaa48a46797f965c6812126eab65862b80547bac4acd20ff77da9d1082536922d11dd810af5adfb8baf9775d403359ee41377839ae56ca5020c5c8678a03f44aec3a6d0b69fc4b62b2194743a2f69d97064c415eacea3369974a275361238f461be0823fc75cee18a68a30233d5534a95f11816a836af7727ac52b2f5eb7b7adba7656f8c62d8d5021a5823c5166d761015e268c525fa75386f1282a4291fe4ef826a87f7f8924731b89b65a3939910306efe4d315fc4696f055d61cc3a8895d74df3dea89df61f3e4fae4b5faf2426ae337b2496e0ccf250399d1f2688c93ef69a560f4e515262fb4484b63c0ec1ef20cfa4a11a877acd784741aa37f0ce8ccf8d85ceeed490a22fc9ecd55240f2bae7b2fad9eb0bb40c6b8a995b81ff86b8d6a3204b92bded9e7f60c70ee6780c6ee96409dfaeec75f7bfea2896a8f0290078d3e2dd2208a100f0e7ede1cfe9d1f183753221730ecd1ea5c6823457eade20e7c092e7153f162bb0a18e60f0924b8c8bcbd06341924d23c822bf361dd627e82747866b332df359837c1f975ad57ea4f764e5953d2e3956802f76c3056bf97ab8a8cb6d8a3a5269bde0cad4d5d035f74cd24edbddaaebc9edefb68cea16cf0eb5d6903904a448196cc6f3e467c16998af74eda97392ee2839f8fa3f042d165bc2384b653deeec99bc46908b0ffc36adb213cfc847c2f113b8c2c3b5b644962fba3d03bd61e41362e0d440efdeb0d7a5a5458705d36f24c40c8ac37eadd926a8b001b857e39ef3245812076d1d1c5c5ac84d41bf2ef6d07136288fc29a294914162fe89f4b109db1ecf570ba4ac2c1a7f93b223e1bcc6a9b09c15d97f16b00324e511bebd1ffc85e2ce90baeec4869d2c2eaa737ae6fa11dffda97de217597bf85df6a3e9524635131b8e15ef772a45b5ce603cb45ef00e47eb017b22aec7cc22d3e839ceb18f26d2546ad3f606cb5f0454bc6f2fed6ce65ee083cdc2af345cd3c25e85d4e11c48f1bdde4e4cd0020987eccc434c4830d02487cb4e61d838a48590fa10550de0bcd5123b039b936ab8124de8b54e8c5b7aa93d683faf1394b1ceb3d767845854592acee816f4a3ddb21b6e150393c28d836ad2e1c3f9fed8a67b82c79a6f57152b6240afcb5e29e5953b49d530d26aa1027d81e56242e3363800b098c10897abee0a25710ef9d3a6ce0751aa847638c3fd877cf48ae7a9e23035dcec72438b5797ef9fc7eca7a21d23389d7d090076aef38e870c09dd8d6ded66cb704d4174bccc0accb118589fd52a1d05260f79c037538c748a95748baedfb32185718e0c2d6749468b67ceb2ddcf66a2e2a8fa0cf302dc87f544b6d0c10dbbbb86036e1204f61c5e9f5408f224d23a768f2d412aaeda750f7a1449b007909afeeeae36fee23eded5f97d2c0703479b2ab8b75030ad25f8b69864ebd8fa163eb9751ebf77e9b4ff5c89230b983d141d2a72a6299012268262f7797bd32b60fd703784da5cf802102e43ae2ecc7676ee87141e8db5a0905e9a4ffa8f09aec48a33a415e56adb888c7aba277c54937c2d727985d16c0f0d7ed12d75a0d6c8ab3148a48b60ddc4d9838e89bd6396508a8e287207c77e83b8c11094d8bd65cd14655af1a2a093de3a08d6fd41a1dcf5d852b17b12ac3453a315d199f8da5d88109ef71b9c878fd426722eb3a98cafc5f18ec68fda31b626525b0ed20da59ee4448a7a16be52df24cc722d2e90fab69635c1b522d69073af3e24dd9734ec8ffa6a8abd67d17644b18ff64710b4acc7c557b82bfc41ad0da6543c0d61ec9bc5f5d0802e59a28c298785d702347752fe84dfc9269e9a4b6e7a7304a3dd9a43faf0d7ef1d8d824db912f95f97da60190a66a858895a24550226f29c31fa052fa2267568636bc69f28faea9cb51797cd08e063ab060d672c48dc17e05fd2da0e999ab448b1bb48b385ae89804ed36c8a967b131364acad1124eaa02c22402931acaf30ca3196e42d9e57bfd48f0cd0faf2418f61488b8697acf03e0073fbe64903f29d60478cfc67ce20a5fd7b84da295e0604b0132e442761cc1662942d69cba9bd3f688a8cf5b8cb14098cc79943e30e23707579108095fce53f1d24f2eeceba4e71245e8eb8d3bba6f09fe6eaeaa3644d28edd69293c6555e46cb8c7f168df1361f0eb78231332bbf0e1b7446521a373753cd7f8c1e630083acae9d976466a02a4b72ec60d396b4a350a35c8d1f3765cd6c4d7bad829c9f3d665d5370c17b50958b60af67138f6b585275776d9dcd0506c47c6bef69011dbc5d3b1b7cf9d68b6c89e980d3e9195c2aea06774639c4db5afde898d23b623564ecc41b583c23944582ad415d524fb1ea9b795b1e05d5ef3e90945c09aac50d4165a94bae9ef507c9c8bab4ccd01d550222ddd04538de7118483d6281276dc27d8cb5610897a5b83d40bc0fcce8161beeee412330acc2438ac5f27c6f6ae9212c1a8ee76783b5320ae577f2f2a34bc8e39f9bb20d5fdacf22fafc0720ee3e068b3b3af9f622cbbaba439d5fb00e398a588e7310ebf2f20cd8b0120ed3721afe3b107e7b4c1938c14ffce39054bac4aee1456b31722de0d11201e0b0d87915385c2e05d38d70120e57477ac0fc3c49af70028f5cee799cda6ddddc8a77cb0ae2401e5d662f13dd27986cc3418caeb2e03b3978c2de64f920b7887305e4f27a6eabdbbf743451c0b6ea4966832f2cab5abd0f40e63621e06a341a77ddb4be0072a657ae0b966052e623d0abd41e58d7e711e0414267052230a6fee94fcec1d50ae0f65a25e8d6ef07e6872d0878d72211aab9add26b0bd939067314a9b2d466044310e4396b31a4f78306d44d0fd21c96afdeea6f6951589d890eeb2f8490f828c4745ecd7751a205187c25de087664e4b946ca22d699acf4ff36c5a7c9d65b73d5e0afc498f94c66642be450e67425606c1a89dcc3c9acf643a763e23348b212b58a398bb851cf6a11e8fcb87381a48f613aa33ca86b9ad013f0461c38cd4272da9a52537c674504649cc5dfa9d7db7b56b7754ee72e52e351f5551d50115eb717ad92fb47a9745395c58b392cb327d8e15ab1687a630cc6606dd45716025367a254ec626c6c14478af5726d82d502c3221c9d984780adb00764a97f415473271a939735b169a68ac852a38a8e03d331bbac284321a1a6af0ebbf553b8fe27c9d062cc7cc23adf472c15c8440a86c5591aeccee5f00266438ca3fa9493bb15140b2f4d7b09e29e7c100bded106abbba7937448214386574db0265060e98b5100ae5bc1a01f4279e75117524384434719ff0e0e784633756cb29e6b6daa2fa552d0b8df9d59a5ceccd2ae6f743623b708a838ab6a51b4672b6c3c76e4aeb0e3ccf41169e3df357416ec591fe876a533be1fa5e0db2fd636a2118273c94dd84d6445a3f2156983ec8f8637f52f3425eb5721bc96e6ca0b8a6d6dc9b7357fb70630049c8040f20330416d788fb668864edb1418a08f39ea781dffbcaed9962098018ba3f0cfbf8d052ac8e3440744ab5d81e7064cfdebaceb7d5ddbf180192987d99e4f34a189deeadf945123edbafd0390df0ac91e6eb18b5a48faae920daff8a990ae5bacf3158dd0602f3e03a4eb8452ca5a57ed31f943a0e7bf5ec86bcf6519a1c06f165c36d12a7f004d90df66f80263614bb1ecac51fecf27cb94026e603761fa1cb496aa6cb072d999c74a61d7b6193ee0f45593e468870166f533b3675556c42d4765bd0df249e33fc9675798a07142da0e829c4f1f6e71efa77287cc75fbfbd4005b1f14b83addb9fbb4c45b380676f96ea559c917236f6cfe481ca6025770c8126164d999df98c098a7aba81de7123c16c982bcf2b4466dcb0063d6bebf662b5941848905197979871e0f39c46207f1e4db6ea8d73215a420b9941e2318184967735b8b3ab9faf4ddeb7ad63d88769aa8979e91dd7a51cbd9d3aa4399bb311f81e72a79f8d028fda3c47946b3a037a013e43302e17541dc2d2ae442479552b84bb214a9e4a82734b17f1d475ea154d208bd739ae94a8195c06446965c5c8f563e4ba245e831aa82c00d7b9b161f8abbe424483181768051ee28168913bef26d1e8740f608fd7bd612fe2d28c49ccfc3ae56c0849e1c012d4c8a5f9cd851f76e1097bd177e99f9303bb4d01f4826c6225c3f8e7a055e9e7d965471fb49900e61071ccf84048e9505eeac843faf094ca28e4088f03ef44098874f5f0001aa1d4d9dcd8deeb20054e8ed506f1bbf28f0307962271d8ad9a8e750937fc85707fb779e4af3c4d086508c6fde3a7b30cd7244d4650a80694cea52b061eed89c6ef66cd16861af718437128fe292c628224b0c0c9a7362ad10edf3dbbc0ad3664a4ed8c5c01c95d7f9caa6b095a881c475257412f7c8e71d6aec1dbe22f638fa4db831b441cc35dd9a5f71e62eb2d9c42d5ff67ebd13ae26eff7b33b681942f3c1db36b850fd51eb9260d2b5eb6841b2ea8a3ee6ca83fe25fc73cf7ead9fbfa517d635f0559e633a66caf1d51a871d06adee9b93e3e98d414296b67fc9f610e5fdb8274ba184e662f7af9dc1f151812df006440e6e3ccde2a6ec22465853282616079b0f40e8307ed6b47836560cfb7697ff64148015ca3c6bd5d79ccc2b9f2d953a6e65b3e5db59a59478fb0d7f703d393e08f6a7339f7d5d04893183badabb8e3f5a6c77fbbb7f8a9bb488f8780be2ccd7c47990f9748da701115bda7f40e967f64ca9f18f6914632b846a0f483667001642b578eb117da9a8f7ffbebe7a24f0b393d4ac6959cea13aed79eb44a8be82fa89837c35fb0530a84857f4fdcc04edc0d552bf3485878fd262447646821c60b52b83d52425be4106ba7d9987786279d9dee2d801a42bf091d33c402b7be1252d2ec68faa33e1af97221915ec306774ae394abbc4f204e5270890ad531ceee37ed29da8de4ad1918940849c7fa08861649a0ad1d68ca943da51b6cc240e714976262c317a6fb1d4dacf3c01d6fc9e8614196a2c71540b7f04891c338774820b1867a5d95c77bb12dff08d4c4eab89c94b3c5878376b6cae945b7ead695b1e7c1a336b3d058a33f8bfdeb0f685f513cb89d3f94bac3a3a3489ebcbea3c3350b8668d6b631d311b96f6f5dd33decd0b01c2a1e5e0b70c11057bbdb489735da11c9daf6d29edf80525d30a08e700a4bc1de0d75b6325346a9512f7311a09c91cbf8fac36bce3a0b1e4fa0f3c47574940e73e5f02f326c5b6028ceda9b5fb9e7986c4e2afd112dc43f7e20cdf2992e557bd2ef4eff1cedde8223b0487c9c9fe3e16f63e7915afa14f515764443123fbbe707510106f957eadc305db5b91f9caf22f954e911b950d041af96a56d4c27b2abbcaa52950d8f2d888e3ccee869485a5594222fd37c2d02621bc4d4b51ebec659b5aa8125f56c9c78762bec6bfa83c6d9254009acdd831bc626748a0225b9c40154769da84b35cb6f3253c13c9c486a19d56e782019d9d7eea152cd57a96e43c5924c1f44cf8eb50ed60e909147f8feaf587e0b3437bc787cbb635a2a0648133247b0ab0411143fecd5f3e136ef13375c95822d5c8005acd4a8f34a2c250f45c3b47ec7fd24ef3a615fd966051372fde78f20258e45f3753cdb600abfe28f972457af4e63be21bfb772d91c513f456a6f2adba4f2dee49359597414ee6800adce57802095867c2786475bbee1acbe741ed9af6af7ba6e4eada72843cbf2ff612eb9a81305658bbb4ca6e934f46e6e11472fb3adb16a6b3655adaa2841bcf81bc95ad73d0169622a8ca46d461b07275ee63c515abe1b03ceefd3779e92a411f1d7a704bcd50e46304773d1510c2207fd5ab25215cebabefdfea45edc75327b1e041199716b46bd3cfcd2bb86554a614387ff8d507901fc7a6d693444737695f66a0d17adbf437d6cc91f927de453c21d0c2512e963ebc78a03405cbcd41b17b022033fbe309b79a6dbd2367ed792012cfe5f717510dd335c37f53c9f34dee75e80ad117d9ef416156de3dee9bb2129322b1e4b68381dbfb2b9d87cb6eadd5e0ae96afb585f28b54b0c66bda4f15d85ae46ec777cf51ee74f6168337af205b869fa5c6595ad433f2cea7e76b1d75bb07477e83f22076496800b979332ae33c8c45e582b3bd2b3903ead77ed438ae090c92e0ae9c6e8bcfba7aeb71dc89f778a8ebcd45f7f3f48024ee3a1356637791aafe8b134cab6c87ff6901c6cc3d4cd065fc0ae208a7a650dfa5841bb16d0f2a038859308996e51a987893a9f225264d7876202276590ed751bd5020e329162c2f0033b9b1548f5665bce99db6517cba21e7b543414ed9a367625b3f3566b1f56dfcbe13ebf839ad075269f9710d9525a69ccb737baff529a283fba99acbd765616a28d9e46ac1b6afeff46935b84162d0024359affde64271ef5d255fb93c625ae0c75b6b52cfab7ed1316edf1b8c88865b8f8d1b12c0a91bd6e68c2578e155b5fa641acaf2d6ea76a1acd9824185726e45181bbd3db47e37708d4c365ec1ac46587e4efe1f8b75fc3cec541dfc2a3ea2c2d3052a4f18c6b2cbfbe61dbf6756d7078760b9b72972e5799ad99da306d274b1e1be3b893be86b01bb719bc07f4ab178507033483bab1a4d0d383bba3c5246e97eaf89d4b7315a55ba14df6e97003c40e8d0cdced00ec8f4a4961a7642ab686d7ab5b3b5b75146030e8f18aa60f6a846098685b8dc2e1d08a6e94569530c146873a17cd237dc12bad8b355c7b32cb02ce0ce358effc09d8e707df2c10e676bdf8ab7b40f79cb9407f1e5b0fe78a85cfc4a96aaf6031f0281377117dd58f59056e030f491aff8fb36faa0cf0067f3e876ec0183f850c9a755a63b5425bbafcacc24b8252b7aa5cb6356f0b04d369bab9163e5e3a5cce0917a3420277801d6b6cccbf0e0fed4f662c38df7cb2682af13f4b74cfa9b04aaf9de40bd738bc16b907de6ed946709721567856b7e361146b58894f74d00f5126fee7181590dceb783e880b782669486d3f82516cb46a9f8657339d6e3e57124899f40305a7854c512e46dcb87281c026334e15568a1e26369fe269130440a9426780761d0d589e38957ca9ab869549a271fdb9a1ef3a8a7ad506302dbe936383ea96801b6e8572584c82408cbc120667b405aea76cc38eb17ffe4b94e15cb8a3fa460cfba7a71e27f6422ed50235b62975c8860b91972d6e0ca1c771e9de72703cce4ddaac5913583f8ae97c21764ef0b747ba83b2c4916011fd1b336d224524b2380152533707dd088414659820950c909f585ff2ef9ddad1e7e18e0854271d41afab2a1ec1eddaa7a83afb9f35f2eb8f1434ba1205c5ee556350592dd708ff5e0b5c3c8f51fbd2a82b47a6ed8e115e2293b6596ac75550b65880b95de2fd9d0d422ab18cb794722c679c4320c87f429803ed0bb7dcf7c9524627375dbd62114ff48a4dcbe79eb11ec629e0c9c8ea19406fc9e34e4be17c835d2b6452d105e49b23637738e9fdb2cfe538b37c163532198877598e80c6982efb603b1e2f82ab7b4d6c5e4e9628f6d5d2f06df5e5e2632f0330d7226c33c1b0ee2bcdd4e1f43d1958002cae72043ba318ffaa88c1e9a8416b3b60d08115e4db1ccf91fa24e0a39116774829f8474190a1a4810f8e915ba21becf973d561e347b2f037cf6f0074ea1e2f8ba632b67f69e02458f26c15c7092c2508b8960d357e2dbdaf879d4634ea3783e44571aa275e88e399ae2d91eeac8d941703cd455ca0804b0c2a04b6c07af69483956d871d9fa16e1695dcb6947579d41eaf9878253aab66c1d89f315160484ef756da462f65ac8ed95cfff334e32410017a155bbadf3b42827fbe673b72ef15e5d5a4ec9b7bc9e837fa2eed2c202bbc53c728364d254f0b46aaec7412946b895f0ccab3db45d6fba8b6c39845019a4e8c8cb716756a0ee1042bfd25d9a66b8e734668219d26d98202e4a05e901c7f1599e18abb2d6090bf5087e2848ab48f17ceaac03fcfb37e235c35dd183491c9618b4c9ccb474d50a4d1f028baa7e180ad09272a549e5fc63ed3a809a3d9a5099ba037501e462cac4b7bb2a1acd59ee2832c76236a8deb1ca32936c53e18f5442ebc773ed3a81baaa048ef7fe1dd58a5746dfb68b83ba15346022f097a0a75073e60a9a00b409b1dcbd31638bae9c38e484e7470a8ac1cdecc8b1e9088f881275ff84e118d34c9a0d9a70290fb6c0f567b6e7789a30b77cc42d6821ee24dcaa0a1acb21431b7e76e90c5523850e96465d7e79b34b2bee055749844392bdb6bdcc30cd2f30969069ddb40c2348b526547dcdae7009f86c6e9e49e7874c1990477ad1a4fea552233a1aea9a79314d32386b6d48084954220e5d4d6fd052dccbd8229db39bcdde7d116a375b90de9cbe988f793cc084c4290374ea21483e10d289ccca1120c0d19c8efadb53405e0d38f568e08cd6ad0e201906a726cda39fb7297ea14cf11d434e7e8c4858d1312c2247ffe56d7f7cbe87965b8391af40da7669640175ebcc525eca92a4fbca602e58d89ba1bc11aaa23da2d76dfd8e03f5b7051fdb7d4e339fd371aa4b53015a66dd706080c5dbae4efd32f4cbf660a888293121b4ea8866ce3b9c7d4b89877fd13d3edbc05a5a9299f5ba25f435eab50f69c17626ce39ce0a081a94e73e72868b7e163ff53accb91e6d01bcb6a9346a6b7be02d5f1804ad7ef9e3cb15bf9346589ef87988c75b66bc76dc51d051cc8a60d5441ba0350ddadd9d6b3400019c311ca6ecfd330b59c117b6bc2179e9cc1c15f431adbffc40b7dbdbcecf867a466c6349a5b286103eea14343da1d8610ac09785c307a5edb419b18f404dbac27f6fda168530668877776143291a892cdec7552145b3d1bfc46a9d3738286304ad2ad438e91788c02b40eb74aa931e566333a59098bbd440c2c15fb03ab87c407fdbc6c5db11fae97912659c90429c702b563ea7ec3dd3825217be014ea5b260fc32cba08fc99bafeb2ec8e4e5e3fa4db659bcab4608085bd2fc013b6ae5e919a8ea20ea47f89e1c13ffcdf440d9a58a36bf2050a01c41305c73775f79dfb79ef69fa9ff8c6f0bd38e827523879affe76cb04d3a9c9f60194997ef62b890e82173a76b0dd1e73e92ee5a82bc1015db76a43d8c1c13f9d94b47d640368b99f828448c102ee63b660d3234fb5461dc0392199e095efbb237da5f4fc3e315e79caef71b661be8a30712dc84ac2fe6a4b3a8552753536df197c285cdd4bb2c473915c131e06e7b7479fed345a3b16c5d1bd949f7e006c6342b4d888654916d946be992ef137284e166888f4fb4e64260e05a323c87912a75b8ba82692a0694508074beb63a7fb74550d33e7ff61534a19bb98c9c0403ee8c18432351bde75a73fb1e03fdb3f1a47a09d7f4a34466d37158dfaa8077da9b55b96363df7c9b7cec11a3370e80a622df38160679be92c67119eface6e50ea9d11d7e8b21569ba4d72f0ff7e5c70c35c4dba417a045af028551efebf8b6a70d3b58c69b5c420264a97298fb8f52c6d91ac07e98a202fd2c366a441fd635e548d59581748bb9287bac2d3d11e910d855670a2e9f7fdfce91bf3ffbc6d914f991ef9194572937510aff6737ca2d926ae930b2c165300c7e6311a2e3a43ae54e379a1e629ddcbd647bdf5a3f5f7f8f1a0b5f0414deda7c6e3390d77a4e04a1646e30a2f9b67652bf3681f59d656a60d98c371e61181f6523d7f217a62148253316fe9595d7877d0c75d15b0f4586845d4cfb742d7609c4632b9b0f3d26e1b0262ef7076adf75cd33c08c627597771e2351714f7ce3b8d76e67015e64a64d67a703ad17c3619f5155f5c5155adcfa72fc790a495690b5a140f24d1ab887f0d231586b7d73e09420d6d98733422a206c321caad29fe44969e6eb094c46af835cff01ae019396dbd37c958aadcfc78b1835368aae3fa8ec3be3dce26f59faa3d63ec9ed018d6cfe069ea30e2cb4d6622bdc1724759599f065a43ddaf5129626f4dc8319ef7eefeadb580dcf88737a867937a2801240ec3afc05c8ddc2d5bf56cedcb1eed1e665b976e3fea452f624e37cef80d545346ab755e7c4b1af80385261401ccbc0a15b0882e709e74becf2e4d435ffde2123319e8ccfc74a0879f4790c81387f693a3f05aaeea6c6ebfe4195c2455af88e30466400a28a300f85d2531398521f8f87ea1421dfc7eedbd3ea80ab74b38ec8f9795dd462db47777663492097bfcf879a30d01b888d6e7bdfc8499bd2032ddeeb56ab700bce6de9a40c67bdd09a0ebafdcab1513e728b5d077ab1bf5ab30934ea1312ff6ea4a282380f9edb90cf0b2643406481887b6ec81480feeab3b5b00145c5b1ef2e1e1f53443e134e657136dee29d17ecdb44c036f72dd811814e1fd2ff456f73bf2293e0b06db34ef6a44485691fa8d768f52fd6d60a19cf41df680568930d047cf7f8a2f6e39df76e9ba1d7f61ca80af772910af794a2e2c260c64ffb9495dccb73dc85a858f4ca75625b210cdb9054d263b7ea688ef0ac1e6ac4379e8aaf7956e5b16ace49472ab58a60c4aa157704c7d16dc08d3d05b24de71d98229bfe214896dca60fb224e0f3e61bb6c260a1722e80028a694b4b2147e1b3231e3d6458a6275181ad694698bde54200f1b747740b47987cc5293544b1f9fcdb10744e6bb43154b94dbc7c619b47f9418ed794e936051b7b222bb50f227c3997db1bd9e867dcb1fc94fdb831dc3343290d39bb329cfb09a27bb62497ef26b38386bc9724ed61ef7191268b5feded1cffa8cc90b485a376c1d840d498900d529f57a052b43bad6330f5c5fc2743ad751c64caad57f95186d9b0f648ee8c36da3e3926dff4ba86d8c520cdf22ad159b96e56347c0a253a7da11c3f201cfed63789708a8083f60052b1fd0327eb122f8bf64be4fe3cdba0d904d982acc89f4d5afaa39febc56217dee9a82d5953a487d14ab33e58651f534ea119e1a13c703f40e131321d6031b1da55ed278f2d6a533914dce4417bc2b17b4a2bbc94e7e07701e2d60fb0bf357af4528e8f1aab4afae5908500b87d0fe41e85e6479fda966ed575a4ed4492d9433d3162b3a1df75ad1812bd0214ec87030f0ef2833e4cbb944f6547a6db4c21e01cb63ce098433e69387e0cf0b34db052c853d54b5a17dccb4c529e8ab2a4c0a88b99a94f70328129cacef89314a8ecd075f7da6677385ca8572fa0be5d143f24fa0877433a6c9f129790d035f60c6dbd614fc3c1455274619bc492dc4d5d2c7b85231018b49605917465caa8bc092adb75e8463c182cc390d72d9158ea0165af9c7fa7576cb744b1e08473d1bc34f187fcff68b4562f6e232959625eb9c866c706a4311837bdba32eb346efa92a681f823079a39a6e9d11ee78c9f23cc3cb55f4e8f2f2e41f6ca16b2558092ee7db82bdd27aa91568cc21a44dd2ae8cb2c4e54f33149fed997a6ae0ed8f12d795acd6690b98b799f6f5c93dfb9f51e912d2e7467edb7f77a39a569ee423be59fe29e4cc9cde54b5b8c6474f45e17792314e570c71e8101ab562de6382e046b0f3d0fe26ca376f7370139805c6133cd5e7d3a7c758f80641bd12c0713c87173a49a70114435466fca8f5174322830153e48e245370143fcc26b2110c552c5466ba9017fa5aba8fe8b1e500d77713dfcfa16414b3da8b0b8cb4fb10988a24a990a1f7ac0d1e4102b8c37a14cbfca2ab7c5d040ab85ae87badd87d3f004a296029f36a74925f4b20d8d88aca19c160e21d62135f060afa694b28488725ecf15ae9d2a18a09ba0f64e536495d8210e3a56fcf7cf817b3c277ce29a223634bbea1ecebddaa73fe4b92d2e408bf0a1bd8447a40626b1b25848718c811ef82c8c1c21ccb3471b0d6d633c1f37aa3b8803deff7444c39028fe28abd1d58bf73a7a1542cc57df7f7720c5bd94876b6af3143696516ecf0a7e9952d01b970578fc54716a8ef5352a4391cecb5c12a6648ff6b305878242e7d68913c6ccab3a5a50fc1b73835ef0229d8d0fb252de1e1204063c665f4329b44fa5a9204658060d75e6bfcf2b67d0fe66900a264b95a9743174463f28b9f9c1d9b43c7e2dcb1859ce9e84a89e69d1fb7b4f5747ef06d9b55bc205eff6aef7a505f3a85672942fc9bc3f1dfdf9c354f54c30959189a23f0a5c49dd5f1b31a9f42092190ae126deb0c7fc26ab35545e0191cd2d2a4300408ce5b327863e175b2630367338fe5be613b99ad7717401e1c8f075e733f3596d70ef824d609f75b5d7b9798eab7cef20f030f4fb4c77351bed82ab47126d0c7c3560882b73be2760d80c66425edf00f6aba37646c1485c030ca8a5c5c62d1cc2b1276dc9fc0c4db7b9a6fd3e6ac09565abada3edf38e67c43555ceccd163ad4720102d6057e2c98fcfa4b5b7e6c414a04d24909aa7344b4ae523448f41908a678fb097b0460fc20bd5b5f5dd017dc92ed55266a7784281decd8e5aa8d86aa2ff5215cfa929e4237fa7d6992bdf4e66acfc5fe3adf2d288d40f9b188f764687315ce5cc5f4a641c64c940737d04127d0d3aefda6559055f46a6cdb6d82beeedb29805db51c6ada05f9f55c8fd5f300879f2aeaed33eb40be11fb5254ba4d631aebbfd1a01c952e65599fdcfde30f9e2b020abdbc6407e17c1f47f86bfd08ad03212acfed6127ee98eb9e636e55c514c0a30ea6ea887600f5f0b10b0d4fa6deb354528cd5b0642e8ea2b4a9cc2fc1369f60d108899e0bb048c3ebcae71ac48ca222b0f25bdb55ee626df6418402945c11ab481dee18c1e0b7ef6783f18159955fb0ad473a4aa202b31529bb13853b0c2f9acc93cae2096beec26715507d74a9d08f31d7d5d62b7c18d0755e363b0aa3a2b55ccfd1e0b9eb93d4431962d664d511b05aad94cb887f7ca50f820f08679df24dbb095a6a1f81ec10166deeb627b495cdaa573b6b88be20564134ded614bc7923f4208b8c8e112feead8bba79a68ffac60f70bd495c6d77eedab418778caf03fd8f170c593133d0f2ac5f02d98f71198d371b43bb930f33d8fe24910d20db98e17937a8e76064e0f0dd7f2e4ed0ac1d1b28957962b4593c70094a7dbf01567819a5ee9bee1af75951c296ecfa3417548d8b32ea6cc86dce0c0650ee80d11a152bfc812dd64c3e741d559c15e737137c50f3e499d15e934648bb8285a2f5af59d463e5f88af235e5a56657e15bb7c351cd2190cc45f05c725054f10c7a3855118c1e7cc070cc296769746ecf9533542ed05c4af6fe96a03e84f13d84eacd48ad8cb2a6d282da4d13cf78386d8b23854f4e72ebd4813251c60784a05875f19d82f5dbee66b6929542e35b37956ff1404ea7c5595e18fc8894af0b00e350f6b5812a4cdf186bdf1e88328b129d40a9211f42eeaed9c7ff5858f866fe0d8ba0a890f3cd3dc2f30fa5a1ac6c1ac1f51acdda578644ae4b2418f778f945d07597ed0dab78c083d719bfb6e470d4df76cabee90bf8b88ae8cebeaef2ec1d8940139f463c4a46b13ce1820ac84f70b5caac06e65c07f58563f8b1edff6069a8f421da27f66780f65d556a3c5d39e17b4a0c5aca22e29bdc05d3575894b86610a2ac6ea1f15aa913f442260a5fe6759bdfe0599d769ef8ed3fa267f05403adcb6cecac01cb20ba36a1629b96722ddec4ff27a4c736a8af83bd1208ec0dc823050611f7c8ca3c68a16d46813a8894d9ef0d5817f2548caf9842d0c3a13026b76d5104e5aac8f8fa0da765e57ddd38c71330ee30fcffb37e67d9461dfe5585b3a944b81fb587d21d30380b572c6fbe71dee40f17f023f85e6f05f0e1a6503e8fd022740e2165b3224331a8dd5e60ee78b3a50a47614abdb74a9cb4350c6ffaab56bf84cf8aa2e912a4c60abf512a8ba5b49c3d63cbc793de0ca2caf271c6fa94866684d09436f248cb32320cc0c7f445f04873741448954cf764d180b3b329614238bc2452e4c0d8bddcbe956309f821e813015974a863eb7c32648aaad8e606a85c75ec025e24a752c2928153017c552432be373115d1f6403736779b9cde10e0e97f6f224a1d6331f554a8ee1337e6a4f7d3cb05f54857659d2b92c730729b995682037d26459bccff96dca1998ad090d0b334bf173f4e0a17bb741e38bd897d72f174f7701479fc19ad7d699c3de85f984ede87718416ba7b30c763a9c44cacb6b9adf8947647e00b904430bdb73692a69f14b2bd7bb31aa84f34f166687e5d1ad55efc3bf798d8eec59a60cc37df39fc2f9e0e91293223670b192d5728a71abebd06bcca13b17234dd8194ee0b2966790e635e9e438824915c0cafcfc196b46260aa26fc73df938c496b8bd0e2e7a8efe237af63a0e69cb044dc7aadd72c4572fa0ca679e20256d22f526c4a17ff7e3dae308474d0e42523e4a1b1d0460e0c597e57ab55a02212d12a005917f421e8cefa6d7d8cdb74c3a0f3e9f44a9e818e3104a2d88eba586b541868177a9d730622ddf066373fb1c0c4e5eec69b1c43878ca47c6b674af81605ed0c65ac322242bd0e657d6c18919332c48e3e1ed48019f976907c84ecc5444bbc6852a6c222598e623b06d3274ff0318d326d23041a86ce40d188bcf9ad621bd50746f79071219e8f29b4e1db85d1369129c05653a556cc64107405dacefa26563cbe767fefd7e42dec6b906f417dcd096f1d01b13a5e9b16e42508e0a1ee99745c7339336ad6e09bc84cb313ae4b5c96513074345290b9e9c1e97573ef36bf0092a9206d31ca331864bcc9aadd01b7eeab6fdf43fe5bca1b9543a8bf694274affb9acf858f8ff01253411bb58bc42e258d1a19454d16a53af7e122a113c1b4b22bd7444e02674a4ee7e6cb877d9fff9981f9ca72e5c8b750d9fa349f9b81792cb830f71c23bac00520c2ee24131ff84d59f85208ae4f9b9b898a59001e8dd5fefdcd21ac501954afee2b39d181e4a8b36152c0be03f21a65bb41c8ca1448dd5449d51cfc4f9adeedbab8a24e4d11d842586e6cc0d35f6e14e1d025f42546222942078aeb5d32bc656361eb650cc1111b6c0f96a8f03c27b4d647c8e9537c53a3cc2b86267f7eabcccf4f91e91688e8773d00c89c1d9bcea90fda7ec461da8f2b9634842daff31536f7c99b7455093c2e089ad11c45d78dadfc0efe338cd35959be96aab1b3b44a58908c93c2904cef66c04e5ba02271a09b26af5a46020d053d5bdcfed8f2bc4e2e7f595232f5800837d1adcd81c4366c2ca1a0af9c5845e26dc4cfe524809e65f1047cf4ad1f2b6f671ec8f30e2b299c192d436bb207aecf64587d217843d72aa1922162c65cf4fc9345c96bc5ee814840901d5390c179832ef630969c3e6974c2c527eee72be507b0091f2957b4fd6565dedb602cf87d019cf5addb4e3588f272ac4befc32e30d1c7e77f9728fc3c4a81848e0db4386e469b5e9b2e394980c90880bf2008936a06d473d466e5515ca6b5aa6ceea86e5e0392510d54917e2819625dce6670d022c2124d5be072588bd8ebeff514ca80bbf2462d541649a243225c49200cef86677e50e77a891f2571eda722ff59ecb71e31a8ec186b2c48013dee5aba7f70ed7d0412c1ecc7b932d9eb97377f641ca25ec746761ad3fe5ce81e2ec484a37f99c45776209ab2efeab7bbc13facf4aa448cf21d0c637ac0f17c1eecab1ec62da5128e22e3cc368c1e5acd6bf415073ca90490ac8062dcbeb1b507306cf49bb4865e795aafce34fbbe5d9ac69b8428291c79c03eeb9352452cc0a9689b18366449b332d6d5792a82c272775202ea8f0ed499eebeb7cc8ece6d11c4582086460338d7608229a7de5a01cd03628597fcdec8a15c86b71664ac504c4c595aa2c026624997431d80301c8a791724e501d223d8e6a0355bde7eff4f4e268cd12f88329211a74d46ac6524ba3e47d520f1659836fa4201a09d867d464634feddea919f8987424476a4ed3da5a081bf7f6b4691edbb780d002e39ddaca686859506f8de870d6f99236c17f2c0fdd17ba4b05ca7c942513a5d9507912d1521348cecf7919e4264b97f3a4cf6b768efd3db36a691deee80b02c4929a7bd78f0fc5634d8576045de88b08b56ea3370e1b29bdc935df54b6f8627bdf8d0b703fa4f23b9541e03526b5369fc6acff6e5e749c5740ed4fc389cf65bcdf0463e1a4290a2b409071addc817227bd55642eac606c576e3e414c85d020c76ae96aa6695ed82623af57f8cd9c72d48ee3b4f939e1f3f34d7909971f5526e2525bf5ecaf32d5c92f4e7476d1d5631d593c5a491afbb2499c527b5ba2e6e8d641eb2e17f5f281d0e450cbda2eeea83e856e050bba9de7d8d17bcee7f8356370a5a4243ec4fc6b9e4e1d90acd4aef5b4fc1c6b1f3be0f705ab11699dcece0001acb8e3aa38670dba979a80c8de1ef9c36d8db7d99e9fd3984023b871fd9fc5df50dcbf5b5049c84c29411edd6c941cf39f8ac783c0c76a3cb0d30b6e4cb39be278ab1d830e8864a45bde3fefc8991a8fd88cc6d91fd1f40255d8b9317eae7fe71ea3b6086e56cbb4b6ed68d6dde0d5254fdaae8b7b3d0dde8f559f6caff7fd519084ac0624d13691c2a94dbdfdbee509b2914cbe3b1d9829205c796405971383b933ea4b3260aff56736eda3f8eac2d1bad0d08bace7f81d0c897174ac2f0f67826240da49c87bc0e086b5dd82775cdad268b67f0830655c198aaa8826aa7fea3a9b6468fd151c7338e13692eb4322c2c7d3b51a5301046ad5888ea3e969977d177c79e2c3cc82b35c21073e235d3fec8f5aca5003eb192e2ebe1f594e28ac96bd350fe5ca0383ccbd1d97301209d4ff1ea0d60b7e08b9759ab09155cecea42de09e9b45995ad52b7fcfe60b3f767c674a024ba6608d4b6fd2deffd592ea373fec6e418781efa8e337203749c54956d3bd824c739ba0d63018d92c295393d64fc5715e66e4c17029437f12b39b8504b5ff293f375c900230100bd33783df00e091c6c051432a81d8a0a047ea2a81e6c5851643a9c8a8cccc29b836fad13f8afc977b93eb22521cee6507bce233eed37ed9a927f6883746c397ec56fef75b05b029190b8bbdd5bf0dbd3d4e61062435a0cc8594402286ebb9d86451e6d54a288da1ed9aba85f9e0fb76dc5985072b3cacbd4bac1a21d5ecb7cfad4be7e23f7b296f2c04b7781dc8222bc4d13b8842586bec4f390e14a23aa96cff794aeb070d9c3332e0f64058e711e8294fc9ebdaba68deb2881756c245dfe493aaed1eef3904ee7f5f9c2864dbf97359e6451e3eea71d3927427a91c2b8c7b7d12c36feaca01383fd705dc4741301d4f0c1b5b60eb1a4a47c2a2a00b724ada3cf750401ed43992615f3ffc64aeb21a8b5a8a4393813994d8e5e1dbb29b94f999362d621cc3d5c0ac338c81d6639b7cc088284515606b7b2570b110d1804b99819c8a6473fe023846c2e4ed48c9aeac41865a50b7ee8ef568e9d1e5d8e23249e96ca732695172988f52704fb656d17e4c37ddde127045e9119e779d5aa47201fc855a02fb1fd83b66f71013b0578fd197fc404a0aed78021ff0cc8f08d4174b11058c927c086fd11710d6a620de94bec4d567728d46d19670136b75e01490f83067bcb97029740a9ef389ecae4d355b95a10ab4dc333f9ac2b7e68143f5336e25b47a4475bba756f381237c2d24e6080bb9332fc4c077a34007414e0776b67a5e61ed235c10cfb0923f54b6bf06c155cee4c45d89146e00e68c7593c959b7bf26404eeccb51337b744ffca69ea6066d8276eff984e7e0da1b0aefb410d436aaedf86ba3018b216c1a18b4b7a7c39517e621bc34a312cc6c47ff0e1b03d716fba74b25df8da26a8a7ca046321f6e764ce40b863c4411f6443aafa85dbf8d9fdf888bf23327eae439e9b9319350ac5151f6677e133723649bb6b1853e9f88ff9995925bf3ebd3e7572adc26acf6d3f66a79e627b6c8f9e2b579bde373efbfc4b9d5b77f3aad2dd16781318d96953ad71dda28d89121807e5c7e2ef142e6d863e421298f501dfc82cf4cb00176305b89feb66a3d4b6b5c0c5e69f154eae207b52dd3675055fbb0e0236848d00a053347125d91d6d4783ca32452e9a4dc3f827500d58d9c3f96005585991a7c1437626fbf3fdd77d5eadd1d5a5999f0ca41b1c396db6ee12b410c4c0c9e683c849590024e4e8bc75e0a079b9cbfd7367fed3ea402c19fa0fa92f0b745a76c7c7fe3b128f848cec1f3d352ff426e94ec86cea47fc64aecef3e8b078cbf5b8f58324f08aa8a77aa35dfecc7713124497aadf81ba1fdd9c9f87cf65743a5ac832572002f7695636848da7cafdbbdb87dbd46ceacba14c8e378b8abbc5a6c12a8e92fe9091f2c7885f00226066da426e7864955a45e1272f440537d47d19002addeba41335b36a9437922952e190c510c193a25e4866f34bcb83bf744af61b0e8f3d25a628350843b02446442189bb407afe437590c80d90d576b440f7bdd6af04b8baf52163c4d9e019b497b639b76f1f4e72665326b3c962cb5d58fc39e2908bbfc60e536e00728bbb9ccb33a2f84b9890fa02c1cb4223b58e4a3e898d81ab950c8859229da911bcd17fceba195b3bd837e1a8d51528eab922a273f10634468c769f7c2d99d2d05a6e8dc13de7e1934eaa916f33e5a0a02a1de5d0cc3d78916145a87565526216a0a428f1afd7004963b237369b335b427e68a7ca64fbea98bdc01c66d4e364afe909260664c3c5094e732a001646c03fdcf4b21f2d5c8030efa7bc5899b28ca7225684667df7f03c2d242bc2369fc912b657e244a79203a71fd278237b5502b7388867bea0d3e690ed418e36cbe4267eabfbe60b6e5c1ffb5a80cdbc73beba1f0cb4d3933f180185c3be13981c47387ec8c360c7bc6e9a5ad720a4408709e4a6dd870c7a1ea0e9cfe4709829ebea3c9278e3b7de34e913a1404de9b8bb88a8893eafb5bdf1b2facacade93ccb555f3620193e74ecb1fa495cbdf2cfd51febe40710ab851aeb7d2c811541aa3515d470ea9807451ba84d95f7310538a8d145120ead901add87d15ff99c7e2bb5ed88ec2509497960f1435040a695d3bfa32cf54bfa0be5695b2e047b53dcd567b3a6f1c57c79c65dcce5b746952ad391898dd4af830f895d9dcb48d1be493d159ed0b19e970471c87f5614af2f6317f61e931341a6b75b83c227d03b5526c256ca8cef5115c976ead4b0777cd6d98f3a1f15176d1731276c072d301f06cceb84b83cfa6442e71a7696f3cb1c9fd6a3cdf09838345fef145ae965a222b1e99910cba5000081dfacf817fe014bd7d10e8915e2e87458333882ad41d68aabad163ecb09fc14c600a53aad9c73647bc6daa9ba126475b3e17279d96817ee3cc0532f66cfb5721d2770c431a5ca9ebe5462ad2c5c99b672a9aedfb9213af2210edcc9aabaa99621ca84907e23ff2387b4849e5e3f280d6e7aa401dbc4ffa00a63444c8db5c6e6855b9bacf8953e7af07775d9655d95f7d24bac369341e5031dd424566528505a8ff5232d023acec5c81dd2effcd7182b9e324f3578b28d2471fae4bc70e2617f9859535f86683a631274e7210142a85a25c89576e5013b4394fde4c64e92d8388d3e61977202651084ca50d5f61f1e4e8fe04c05799e0611066ecd4d81cea08671efd15135ed445b09f55a8c81f8a0795891bac3973fccffbcef0fd8f4adae28d939e59f469f68553f1ed524ecf4ab67cf877d47e7b9f8459eb4e2f071f01ff36eac84009ebc8d9bfa693990a6115b7298af90e8d3e3ae0808c740e529b74a386f254bd838c3df98bf6757cabfdedc7a2a29ad850b8af43a4d24b99331cdbac32cb17fb498c7af8d4a55ea8e70d02b88529084cd0174d9242fa7162cff7f5f7f8cb81d664141b7490931c531911f7178af928d916e78ca3169c22a93f1076c02887f44cb3ee737ba9e9c7e08213ab33a33d65cc4cba18299250b459ec680acf7adf3a7ce9a9c8a64608fc607c3c3b158a82fc44ad9624cb3869321812272517f9ecadcbde86cefa5dbd8cf913b2611f3292932b41adb8447201558980fe8736e90f09998bb98b0194b7377f6f4b137b4a4d80b44552b93ff7beb9531771bd494cd4649642fb2ead625a613d17d4e7ea85f06fb7216dac52893de2c12abaa94ff32b281e05fc98b4f8ff8144307bb965c70a36a342b48c85a5bbdc043df61f485b0794432eca85b7ae3f3e205e95e491d4490abd92835a23635c81d1eab9348cbcef4173d7d221f9a30b69e711daaecb519b37b61e453735f7beb819c8b01ba47258a596a396b2864b954b5e1c0053895835ee95ffaee5c02fac9e2cb605486d7e3fd60904e88e680740e6c53955454d2eb07cd6f499d4bbf7297fa86ee24c8c649104f846ecb45618b4ed0b583034c260b4e534c7506938817c325c45c94074e2d6ca1a24d5ff32bdf7eb52513aa3c90734f514663b78d1b13725b70b77415fa79e5e54324e4d51580aaaa3bf33aec0408515dc6c106b30801caca316e01f387aa0727a4311c4dd136f011a575c4a33c7fb4e5f17b09d5dd740be773d727c85351f4eb3c35a80ae0fbc4c37c10c1716ce63ec056479778e96e7ceccda95f2a989691e5f2f4d3957b7f06e83adef7357a1cafebb51b5f793ae922282c80133661b008a3c1b972cc78a3ddee9e1ded180554a47da3b10b6cf3524f8c235d993c456e94e7c0cfcbf202fe70d3a9aee2506e96d4f6b60a7870c508f75b7e23bb08abb19f7b780997244b5b67129a996856e83e937774e8f3656ae2def65f1bcffba3ef3393783b093951393afedd877dea747ba78eec5298b342a695105571608526b2b72316bef06bbb4a585b1c463f90a4d1729c4d14ac16cf933edc44b467b7c317fdc2fbf0e15d4af4176ec6492b5cdc986704473c18299bd82bf77e5a13f9c850a0e9f8b2733dd7d379e42126ef3ae17acfa62b9eec91511a491c113a201a1d22b6b21ae88b2bf235bb455c16c9116af9e15c3651f4111ff255ea2610c2480e68ca72a2fcbb2c279cb8d10478785a84e72a7130305ade3d6df04675fc1bacb48e2ec0df5cad39a84020fa3c4ebe1ca9eb404eff5a5dfb7e8a6f289a0349a5831698c64cf89d409b8b74df0abe6d677a03ccdd4bb31589ebbf8dd0e88df4f821170f008dc5ec29939bde7b7c920cab43fddb518b6148342475e3c151e58263a7b92cad173cb631cbc3d065b5b9039881fc8e522e4f4c3df98731faf4bdc959ecbaa9a668db8028940a795494c45f62e8f907caa0adfec6d1c77b3b74a758f8aeec3c628ba3f96c03aa03d05869218d9940b5c8116ec75fdd7af36d4a9c5163eeb4c944b598c0b05b92adb794041e9f7cefe63bb0c8adf6b6d7b1644479d118048dde9b6d4545dad7e5a687c0117063f87ab57026b87cae148b428fb67de8f7b08383d87235b3957879c588fcb377979c2a389da37bf7405c37fe6132cd22fe89b958e5257bee6635590754e4316b28a6990beaaf161ee477f0347f4df1a0fdeee304b2c52ba04e7a43e553dd737762aa3728b65cd081e313bf28eb8354c0cdfbccf34d2ede52542b2b752df48970b31fc8080f20b3a95f811fd8d45dc753b8b2d2642c20329f877fb65c3b302412e3ece42097cf0e87e5d68298bdc8fe6b25f565c96b4d48684ae5c093843f1bd0e2a176a354bcf5f9cf8bcc80090311b0c7bd8b733a8c4428f6c9d7f6d880e836977f3e9922e6bf65a5b7d6a34290fd45cb755f94b296d14c2e8fbda9fdbc29dc3cfe4f47be9a8855e352ec1a996b214bc92c8e8ac7b19aa37130e94913531fdf4a1491e5aa99ad30ea5250e06915c2dc81f1d8801e6ed2d6bc1b07f19f3732f9f41940a5650352fffa3eb579d62787b09e87955cec76adf94f887407e7e86a1eafc76b07a4efdf3e79e8c472b7d5fd3c003d2dfc320ce524e926c3e67866f8ad5478768396837ec6e2449aa77316147257af9fc5f7563623065f3a4c244dab32d589987d69c69fbb2f04485f8648a0010ee9fb844d3fe12dff6c559bb3737cb388715e8d7e3f75968c625236bec3d937bf5ae89a4bcd2db90c9d42f01fc802948ddb2614189f7736a0e031d97e2bdb63c3dc1f7b4c67e1508a8f640224b8fe04d2f6a523714fe006d001d18e8f5027d08f12ed7a0d71cc8408ebd1d65823d104abe162b47bd12e3334ec13934019204bed3fb5ef89e83ee5ff20d44246b001f01a05382cbf35a6eb2dca4c41f1358f3f47de6c9dab9e8c0f37f26b3e1161b8a1290fd83411d7cfb9d119c50e415f205d95061c752a938fca2d30c906b26f4524f02644e222baf3e497aa3955757ae3d0a11261a335cc25331fd1d510dccc98f139e756291c9aa1e604e659eddd47cb0daeaeefeebfbbaff86cccaacb0118cac3dda637a6bfb72def3b244b99422e3225b8f20a6789e592a9855d15331e8a93f52f98e8b2d0f52f7aad39273fa34d53afe2000c624002b60f983b1a322e18d2723053bccdb5aa00f3531f79f3d442cf43c114e2cb534d0a9da50c70d5830509395670dc4f91d440693093c2d3c5ec29828be58fc45004fee7c5da004e5d39df671af4c2734a0a5355f9d2f7b071134aaa78bba88ee55f0738ad9a6ac369ee9ce1a46dbeab4099df6c2d1f008ad107fdc4c59ed7cde3771e22c8e27ff625beb07b3cd57448a3bc4f87fc883ad64f33745c28955915dc9441357ecac8b33a9d2cbf5c695c6fa7c05392b8a9f69f8b14c1c4aff87fc62c6bf1b66d89fe15471947399303416116315e96c046f86e74565ef45691313f9e9cb36fb2d69098c00bda5b86a0c310eee727cb1791f8020986a6ecc8406658e6a68f87893820fad200e5edc720d5080eee28bc1aa424de426a59b219bead34ad169472e46c06ef69c4080c559a3fa32aa5227d04239c9ff8281cd67515a75eed6f52edbcd3cba3cee20ab9e5ec1d8f809f97ee3559f52dc132f78c0a5e8a37c9bd5e093c4cb00f836d56fe6dad5ea702df4f12710db7b12167d558a85ea0b52f25d249064625174500799c72e74619fcf2d46f7a4cdf5f90010741e2a7c672ea26cacf3ee0527e63d5a64b13a5ecda6090f588d2cb5e1416a7c19aab00ed0aef76e89613d091abceb3328ceca8bd7146ce475e792997bc985b9c61b6e09dca0d70d0c1e470f1398fa417073347f7083f259f03ee39e591183d1220141a6dad5734adf658d0b55b8ca8757eaad52fd890ad9944dcc913246aa20668dbc18cacd57baacbf0c0d30ccc1a0d4e5abccbd983dd14592ab5e23337a239dbd3dd3b5d6bec7a43ebfd76159706c47b21cb89d13f36b4a958f9875d5016d6c36a5b51dffe96d1598d337ddc2a7c26588c1af6a2f4e25fa465752a9399e6e73c725ab61b40dfe99f1e4ff909e3d9e1ae8d68f8f7464bc0a0a75d67671bc6ddea6ce4e852a9a4fee82cd2b3f904134587fd9345373bffc8d44e06d12703940c4468bf79fb92fcd206e904a3fd9638cb74ff93e9ca18302759818b6ac79b412c69a7298ef0742e2a96aecb7a70edeb8b77b20ac4b6ff1ed73d430a2d998975d98da0f162f0aeec4edb08941998d7edc46ccc5c0a7f2a8792ae9c9185dad22314f10e8cc16a72f58daec645185896b0580f030ac15e160f5727b0afd30d7ff9c1651b808d9fa760b778ef6440b406ae4d8864dc46ce0b39e9b8b282eb24d7c9276bddbf3d0de8e0a13fab991123aa464d8f0167c859c120505df881977b902273d5b649592fe826a5c26fa33db07619271b8b36ccc71291565c86c713a26ccb35064cbdff8cea671fa704552bef98174ca2c508a78f06a20ac0dd7e8ff7173de0b41a65611716c1f1b4309775bd911252ebf35907a09b1c41d9ef41b114510a4e47f19345d8c9d2002322986ad55926756d9b996b75195710d46e991006a3cd3bbac81b84f04778b4f3e33d8d30752c11414462a680dc19535cec89ba563c6dc519c3118be651f17c6172aa143a205829a0162260ddd8612a527813aeeaac6df3895009dd44902c485b402069d10037e3f677bc95584d83768eb1cd63a9949b2bdfbc6e8e88df220d1140dead1c05950a8409cf14c7604460b77a5640f88c8bb9c6a7afc95fdc5c4590c09a302b5a2d8b89aa6e01aca304d324c51d2105d74e4f7f296e4c3849cd6c70b21cfa67a4a5f80c6063532fb0ebfdd42335d9e098427f21a611e71d2724848f251346dce30b0828442457646266d270182eaa69b30e437891a601e99b9f92de11b30142aef215e9de162be062ef89604cbece057bc07669a52413bdff281e3ebdd34fe6a8529cc38adf44a0fd3c1df027d5f22ddd6c59ee4ce12ad7ab3db76a503a075c6c8bc190c6e2e8407f73cd83790ab6c7bcec0f9c452a69ac64bc6df96c8532fe3b39c81f9771b58392e89cdc1ed22e508f1520bcb9c2855879315564d6b190423b189d565a7d18265859d16ce2ac64d68447faf45443475cf2a40927808112dc0ad94de2ad19d707333279bcfea2d3c5c4496b82152c0eac693f25eb922661adf79d8b774b8588a182ace0ddf9b0ed80893429fedbcc4a0e6653cbc43a74568b25d32ca3fcec17cbc5131cf2ca7397cb24984ab8fb0702ca537a207f507f80cf5f37ab2a089e44d2df7882bd7b4da8053727cc9f4d584fa5747dcdf82f09a1ba7936a6fcbae722e179772e4cb86f6d35a3e90ebb8772df3361b47e904d4731a768295eb1ee7d9ab4ba7680a6feb528e209655530db4f7375f55b66a15c9ada0b82ab3b9bafc8e6a2cefb9a9560fd8cbed43648de1a6e61c4c229ba0f1990fa4d87f74667642f16f2f939e37709b443231d537584ec971214610931e5051b2464692aae4d19188e7e2f098625faae6859f77aca7bc695857f39828bfdb2439f48ee5c44d2d00586b165d1f4e4acf00db5ec831cffbbbeca27a4bd07c35bb7e53ba2c0fe14fcfa89c723c65e6f93efb77faeb9a3035a7e88627386ebfaf07f26d7be4f77b27c07f66601033c05a117ddb24bfa7ca1168b793846e4ffa1dfe1c2eef12a6d34d2b3828612b7c89252b66c82732c260c15b7e8333c2612d926d4d3442e73421255cdb4a3799283e4e63c46b78e56061b40fb3a7fe44974e18ec7a10bf0487d41a1f168499a16b0ebb8c8bed9b9ece361fd9a625382ac7a29137a2b389f9d465692194de6a53ed412ee2d1d2ceae26ad9fa046ab600defe68d163a5a4f9aeed33734e67f37c333da2ea542175c7afab17d963f1892f3eddcd0fe3f402af57634d43a68d6a1e6377343e97799a04b49a18b4a7a8e923c677382cad349f98dbbf75339eec8c1f61d83afaec4a0b41698f96cc2fd4d9d5003188863233f23679ba40bcec82f9e56af591a427adfabc52c6f2d321cf4555bff6f7b793f3035fd533f3efeea4139e472b26382c2e6a6ae9e0ad9cea874e3086b28aa97e2b9e4149ad03eae678b9278117a8e5194f0425a46070315afee8e40ad6875bcac74e3636cc2a7e5b7c4a73a01e51868f03c71acc2fa3944bc8cc7759d70770f0643af4c5dc03890bfdfd082de6b7f2cd337eaf041998aace90b28a63af90ca93d5be22e94a3d8411a189b4acdbb4af493c0e654d4e42105993e28bcb5bc2d61ba1e56bf928594006de178fc5ab56a35a6f8e92cbe27ee0982313d9b75b13480c82a67a1fadfde52b808ee1f1cae6c31c9033f4d84deda9222597ef5a349d6429e7f98e80b3d5a0ec272599eaeffdf240580a5eabeb57175a94dc03a7f1f82ca973bb914238019642c64b480a95a87681f3811b697cac0ca3fc3a9a549e2bf3a97c5cd2a8dd1508f126e1ed6f7b9bc2a983c6c5a4a5843a1fff11fbfccca232e78c66d8e66aafcad061b9fc95257883a59beb9a0a6e3e6afad4379c8a1141bb2de4cdf2c9489067d467745d6758211ed7c4e69f80c3a4048ec3b7d9aa847a8160f4136f05055297d27ca46499a21f150afb59171af3279572aae0973d4581a5f7e439a2c0d4a5ef97b844f736cf1506b2312e170634a64bec7ba3a8f8f38183c30f832d010a25e93a867f57d6754531cbcafd46101dc4befdbb410e9634f0de65820729afa2b19e2f25c553e86923bd9d1f4f11622ad570d2054c75ed31e37a6382161e3cba66e8222a32d2ec48fc27d9fc9ed1f13b54d92085f07f4a1682b1e80369fb681419b436fc45f21df0a899f9223bc97415ecf4997e99bc2a9780dc5b31246d429667bdd357e93e50035307adc6ece4b7df0f9e7ac4db614f66aba0a0ebab422eca5b07e7cac4aa5b6b495bfa10739dfaa72330d943b529b8be846e7f4345cccf5f9ab90b38e7505ed0e412419dcd7c46db343758761be6addbf0c9fcff885a9ca62343d45bbc338f247c04c4fe5612c5d0422e7df0d9a87c7ff22a8c1ba6493415a4e41f3c53742418693f5637af5fc53f178e08d7c098de6f7789f2457442f8c854042cbdf4bb05a41c38ed41760879c3aeae526423ce61f434e65c60569bddfb6bedda0f0ad2a08343b24f88d6ce705c313ddf64a6d0445b9462a701ed0238911ddd7b3c53983bb4fa1ad56ddf2687ee7a480fba5e905e75afb911f598de09902b7f3a9e6de78bfa13452dc5afea36c3332618da3ff4a7185d2ca6b9cd0670a3063c3e66aa05335d6ab974587079530579b22b50da57e69c4d32680034cbe8977efa6b1635b2f7a8460d6e631ecbb64515ac0c376a92c75e3782f8319c6889de0237af078afe3ee8d3f094162643c1f7482f20c3356179401343bce7c05ab00f7392a9e43c7051f3a3e7e317cd4b76f322916bb73b4f67276978bd6fd93366647f3aaa2d0f256fdf43dd91fe6c0498f6681dd4ef3174537cacfb6a4dfce3693a99cdd8b556f39286e007c1d77d8c631f107964d8d3a46faca89416b7519ad894739c9125b4c00909fbca14a370b5767245ab51f380ee75a8fd02901816aa7c99136b0b771989b04a2d8c68d65925f758060ff8562b780066ac0a848f6c1d12127113817b20d0c070feab6ddb6b344a1d49af0e2a96228a5eb3d5566e01e03aeda6ab4355b1769067c714cb8b410f8c71b5cfdd2ee481920dbb3c09bb7cab6fbcb3114cfdf82e8f5da71175baf8e77be8eca35b32760a5975d2c858b2c41ff637cafe1cbeaf081947885f58ab1c40c27a6377b09d198b849b3b80b24010b1c7b6310409b7afcf6a5a33aa1f9660954d03c8c7c9e8864ed50848d0c08ac95560b7b6133a5ddb36229275e7ce292afb00c4fc135221307eb14945265564401e9f5eab752af75309392e54422c04ec6a17e09f6199695fa0f46f79092edb2c203ef0774e992100dc57315188723c50d56de023bbb876a54bec902fc8a2ac0160ea57bb15674962f9b1e3bf4a95d8323e5d30782881129869d544d4098eca0ea2afa1fba03035bf81594f292673576c6ded9f41e4949ae0a27e2822d8e8dc734d3f81e6a3f17c94f91fc2c0e1ae296cfeefe3a2cf5f809aceed5f5ef167bce2ca94cd21c871085fc0a452e8588c31a3d80213956682c9017f070ca57515f931099dfeabbec19ab1292855c5601a4abe5a902bd0b6a88f710541d945415156bf11d2b3ccec97469b3217e5e41b27beb0c2a28c431bb580b28756733086da49a2d62e2e9596eef25d0d0963f06df8d08e9cc7791ebe9c5d9900d80b7176857daea47ad5f0a8dfdc74fd14f17181863438424f9a6823527cf54521d6bc11085046e3aeb245855c11eb3dfcf7a8910292d2b5eb7d2a3ea047cf6dfa8e0e68d955fd0b25f4a4700af701eca09e6e6ac8061461111026d2e6bbf62caff052e376d40a044e6c8b883ec42730a8582a5075a35d8383291f243feae108e53c256a83458c41ef11325fce043e1ff356d641c3eba55825feb33aae79db76d9b89b6d1cd99766457c6ea12c17300ecf1014c7f359334380adc531b0228142fa2d243471f11e3cf76d236813b0d9515bc150bc09d726826eb57062963492d5fb6870f320a4a03677444117d0573da5a7e9f9cecd48d63e017b9561e80e0e3baaba728b243eacee4c8856ec1ee80ab07bc9c19b9dfff6fa07c7f01636a7a2f7b2796af410bb3337c364b09e661276678deaf3a0514698a99644c46e8f096b118f7d00b24f50aebba2250bb30ed95c432996d9761ad9edfc86030f6824d1fde085a473dd82e30a50f4bdd2649d15be81f45e2e001268eab238f8558166b1cb857a4ed598aa8e725c4143f34644f17ff27e92a4846118aaeac37cfcc562efcd17d7e155fdc920db0e6c7139fe846c8605cfcc79e74903adcc67c92cfef1e384f07146a1d6b99b693c042543b7a1db1915f0661b6c0fb3e10f3f8150c3ca7d46a5ba6a4bbd8fb7a41cf1e0ff399f659d26d0fedabac6ab7f252b28197b77bcdc8cd5be4c62805e7748634ac1bcb886959b67f9b21745deb11576a5187bb03874ea8db88e1d6c2e03a745acdbd8478dfe8c3afe1afd01361157e2c5e9d6a099da173050881155fa4232cf74d6424d1df3cac077ec8c8c0eef2abfb8e89a2a1d0d496e84ea75d6497dbd6ab52c28f9b0a2ba2613578953b96f481f927b75551617c36bd45cdb54d68627e5a49d54cc0f988c2647e5c7e2f974e07ecbea10b16a40a0ebc6497a070ed5a2b51c0d812ddb4f856ec8905065885844fdc0c99f9a118c7b6963bbde2a9560fd3e1bf46d98081f522612e79a2f9376b9cd30ef5d039b869d93b84783a5c157121c4361abde5c69a4aae43d9b51398843aabffd078ca8648437560d2d271da1cfe45a89304cf5278d83c2f791b410ce6fe2767c8b876d71e132d3bf1a54e82d795ccae724e4c0bf52ef72d8ce14a10a6b17417f71bd35cd656447c458dd941c14a521ef7c540328bb187f69da3be74cecd570dfc592de7bf8e8d05dcc7f47ab23e792494cb1d3600435ba6eb73bd48abe0536047d9658c32f2b0eeac7c35dfa21d873a9ef829f390553b36a2e10cd0bf3952d3b9a4c2ada276ca72d3affe49e5eadbd297034a367309a443355f729a306e4d1a09879ede51076c4b0ca8c1e052d548f3ec27976ec73150796c406b5ba831b0099d81dce490e1a932b756203a38c3bab35c2d77dcc2eebdb0c2eff322deb3280d713c7104541f4c3027632bcfab496f84610127515b71063824324d6f0ed3979f819dc88e118b20bd49909296d2fc3fe342ee5ed342a1d862623ebc7914164f7a8570d1f3241c0a31242ee5cdc68686d7d801dc99e81dcf052b9a5a37c999b695fea2254e1cbd6c8b3b05b1c1ee5f9961915cec1c325a9907fcaedfb188f6a25a442f7b70f6c533deb6c95633e7e80f0ce5124df57795f18479776d4b382c1e2e9968b6f82dfb2c5f7d2b6e09159f2950fec1705e916f4817b4c18243abf6d3cf6a8c9b521dfc3aaff201376987cecc26acc0065c5ba52844ab15c5bc36a1a33da9fb457c7305f39fd92f2bbaf2b545b8dbfee073213312172c590d7eb0d5aac7af880365db48944bb5ff97a957c4164d2167946f1f0ed1c8541636effbb86eea8ce49c84b86e69ee1a88d31bac69789639a9e5319926a7b3f2b64e9f3253e27cb00e097389148a211b0619463dbdb97e96e38b13a010909ebef4d833322dee514f07dbf142904ad12e3df089f2f2b00cdd074b7d6c29fd7d3b6dc6e3773ad9d4fdf00747b895aa00e9196290462b25c06c7c811264b40b6ccdd1c4ef2d64b283332a77a6051fa5fde5ae94447c6a4e27e2fca3f2ff622bdc3d185bc0aa99b414e0f39ab0e56195466b03ede9be081f300c76d152d7ce8c966b5eac4e5a196087f26ef7576671dec02ed972be7fa6890b80e373a451ca6f8d7874667817c6682fb9d6159ccdf221805e50297c23d56df433102a98ef7de2d72bdad1a1f8da916ea67476d7718f1ce3ef69b414ef767aa534932326856a2909d7c3b45be9202118a82d4db4f1e16869fede77bd3f9b5dfdbab38fa1ed2830bb4f0a4c5664df223ece413602d3ff4bee053254c373cd811d4179cf6e49c07cef564396b43a380e03a1ab0cec54a857742f3d4ee3c26f5f587ede07417626acb8d197a7b8c5e6a4193cd3b8adba078b557a82150983213e677cff593d578613aa604212e42ce5f206dc8310ebc661a02e3cfff94d0d07462c94e12c7e6628d178df16130b7d35fbf932592680e7e23ebc2e3d492f2b0f88b47854756f1d1dd9fe8af6d22eb266242aeba38baf1162b82ee18385413e3d3a7f3be5cdd00ad13d7fb44c319b5db523058fac6b86bf7f3da8110e598a2747ea12595f4cb5cd0e205fb50a71dbe71d8f6c9d0412d27d2388fdaed49518d7556853c1d61e4ae81f234701a2eab4bf97c64113d52768246ec3bc4633226308f5007df0c00bf79d220b5aff1a034da169a2edaa86d05ee631a02b58af1f2199708fdcbf57149df6afa995cdeab9c87efd66cc64009df9acaba071a9214429ec7a7e13afb8140b7764d37fdc8acbb4d481e1a57cf611f79c3cbf4b39e18da37886150cca21db9f5ae1bac9f92b1e00c62b29964dc4f7186e9ff770368d630bbefba8d0aa34e9b61b9f4568ecc2e49665c6b2c271316976c3e21bfc56656ef586a6cff79d1c2229b58ef5914023dab66293c7ccf3016e86fc40d0381a68876702d70ae3992105c72260d1a52c636b0005cd115affddeccadf7dafb208ceb573263bbca336b90af8dd2d1c621f8e574575b7ce6f0121441abc03e65a32385d812383324de9c5651601f3ccc0bee0a08d9c4a4c5e16e465933bad581d4c6b2750c34aab38ae291cf70171c5f4b7cecf02807a9e9c819f3ba85e43f961b2f3b5cb289151148bc5687ef34f7f5e206cca4da7f6e6e505d831cd51f566b5744bfef1245b5fc51e4a82d9d7548cac0118d12fca5e0d57d5058cf1508ecceca3a1e466a849dd511d2664a0195ef5ef3009c1a700b46813abaa1321c0cab1119d2a1aaa424ea24af6c95b8f0e60ff3edfa2311193fa13a6c8cfe3d0bda948852c7cf1bb18be912304f6c28648c7410dd1ef03fd3d94aae9d79abf8127ba40c11cc8dcca37ab6ed29406d9c9efccc000b81e8613f4091eb366752017fb8d67ba494dda1a8110ca801bfc3eda31cba54549ff7275de371e745be630b15a49b354fcfd6b8c56f9a58bcc82346ff5eb15dac3f49b7f5096ff8d6dc4059c35d54a19216addd6d98c5b85f3661a7d9a530b3b1ea3f28d66c1c5cdd2965479f7009a68b308014e38883a6e256036360e19ab152743208da2f3cb3ab8d29c23361f7325f2d6d1369a701a4ada62aa27ba45af68144ffd7c5012d7ffc50b4ca1f47e8b7b636d7c547f6d457abc638e0d42995e5fa51c78af16cf9ab8aa425f7048c92a94c2227c89db4bb0ce914cd6c2d83cd261601af09c3a28f013a5317f2c5295e01891951f00257622ec788d2ea04ed5423ae5857b1f84b88b2cf6014f7140203bd2de847c2fa0131d1b9b48dd18f804a8c133fded2c3276ad33a97c35a52296c5d13c425fa36f0e12b990fd4eefdbd39d311b19831b38387da6c441efeba3e2d68f59f3a05aa6e841582e7d7df10a91cb1032566886dd66925c2aa32dfe62ba0e54e5b608769589b8e46a03e990272a39ff78b70023c073f73fae59f8a97e572e24661edd7603c39386e1f89e3bbe4285ee4a268bf642ce368c1462fa0d60706f1ac885e7ed39657d9c68730d95a18a86fed85d25655caf00ec766ad5764677ea6054759bcafc829dc84a63b6909195d9cb7b7c24e9dddb84f68776bf875f2d41aa788f703b1b6d7cdf3b37bd92386776dcd0e80a3b839237ce78c9f62c47a816be5bf667a523adfe1b649113faf5e6bb4133bdb48aa063fc934e83086ea4296394ffdc37b91ce566c99b054072076f9024ed5b09f6667bace46815be91369432bfa22c71580226f68efe7be72704bfe2fb32af7020e938f080354fc25fb88c268df843f8aa77bdcf48508fb11873c73d69136ed3ef7eaf455b6314667382f9c1f48889cd23a1244d323e5d94eed4fd3d6047c7c138ad7047c1d1915f3dff711ff4914bd1719d164e9990a7ce3d50e42d2b7b1a3b5e975a1a3fd56149c707239bf53e50837a02376c26381a860732968b2bb71cc4e6f60cfd74cf1714c1225fd98c91567464fbb220bd8f2f0a99edff6206b5f427af41b2288ea1ee8822449cac5b16dfd0939779817e913f676cd67280c5f759ec9edf3db09e8cd7bcf1c1b2b0a714bc47b46d7615b7577d9d258ce6029736ddd40554f1214617a6d58b5d7ee2a9737e34b49a520f2272aac9d1307486dda7404d864c87e45e4d77f576bc0c970bb757a5ddebdcc19e9b9730a312b5395439eabfe2091a49a6b0fe69a4dc188276924f6452023cdb4de8a31217b1db89e0dc48111b3ee98f9e493e1021b920d221cbe47cf29c31cc8fc9b323ed90e344d8ccce1e893d50caa4acf5506b16c49354d0d6b7a689cafff251dd090269de2a95c82dd4986f02cd94b2a5e2ecab255b98ee56bf7be297827dc78b39b5886a07bc972b673619c8c15853041980c1d9b0cb933baaf7740c0b380b3a2b7f5291ad53f849995aba297d448d3f175684db10f2737fa3b07ca03382542d48edb52b388d336965404bdf5edf70cae8dc6de41a602f6a6e99e031ff1ebbacba25503ebacd3c036495f2be21cea6630b7064cc33ca13ecd3e8f2d6d3cf800cbc4833dbb1c6f79d2810ee7b881e62358624e48513cf0c7dd6f7ad4671befcdf59e1002baf76843b0fb9c3ce2212c112210a7624199f14215e6561e72b407bb5f2b38ff6d21dde9522e79d6d4640a404ad5ec0e5447486f41c341c5bed2ab2b5f391eaa5ebf14a1d5806f821d95092af5dc0c6e8bbfd484ba5821aaaa61a8bba9ee74bce4bf6a1d13d0f43b3b66a3014de2936fc27f618440ac172979f5ed12f1407350a54e40f26ded4045a5698b3116b98c2618885f410cfac4991a44e140f17b1b15ef5f012b751c39598097874cdcc7ae6b24deb236cc2f5aa588a73b0124c0d154e62b39504c962a405fcdd8ef7e84dc26b40c8f78756f7b5c4f9e7b8c968042c889acb64ab2075551ea4a335a94fff1d97c9d6355c990f2360d49e5d5b104996f1f20c1d6be1145ab703347b94d5ae346d0a4d877309d31670fef12591fe905ec858c5c79f2c7fe2c3510d96f474a2b4bda35db9b1454a52bb37b15d9569c95133c379e290132f879c04c6ad6f598894a5ce9b92832a9d707e0fa24b3cbe256b9ad2a1120d4cfe392a0b871382da211c32a5e51427341620fc21ee1a62253d1e379b72a7e9b0f4bcdc50824109ada88e4eab54823c6f8b0ace6be213653dacbebf3efcebf6cd6f8331c54ccc2dc461545af135ed2085b948d015457fe1937633d162ae528d7fd339a1799b45f62ff3b0d1c20c384942fa49fea7d7badab7d70b57a83fca00bd1c9eba7369e2302b22f35ac8b893f2be87146d97d91742a943fd5b15a00afb191e8837270cac2dd226fad8a831f8a0a328b357cb8b619fab895467fd0fc8647f3c9943cee92bb00a3b38c333fdc43ae6c4c98503ac30bb1f8076a174ef35bf79f2dea293d9233c1a12f9dba789cee5e28837186307a190fb8a1e976febe6720b3a390d24d5c21f3171de325ea6e00ffade05cd36d4aae142fdb895250095b6e3da72b39f2c6c494199cf6c3d7500eab753c1cd0e69eb60feadfb2ea774e273ec488045b64c2afb94ae14ac783fae1a8afa69ae036bf8d3547256c43eaf1543bc0281c6abfc1e11f66b4bcb8b9bbccd1be4a4f311b40972bfb50c4dee36257951d82c9c084b3b708ba3e02854468c91cb8212a08f70366b28d6fdf1ce35091e8bd04af45168ab2a5a729d60177543f2de77474824fcb9281d87a25d22cf0fafaf3bf10463e5456a7220df8c8a66178d34c304fdc5055a4448d304b79454e9cb8085dd5c3a8e5a342372e5c30ab1a1c3c1705b9894510ab93ae382fa47ab64d70b9e9bbd3640fef4f828d24f862e04124305c46bc225a72b4149cc5f35a26702db77290ef656813fcb4453d002c26ecc7b218f56bfd5069ebeb8a8bec37d28f2f266e690f05a649e3143ab6f870befe686a2ac69c8f33a52531733d72a9b922ed1ef637f47f841f53fb1434891637023d5cf00666b7519fcf3a67c9920c4cd5c22dd3344d743f54df579612dd0a4646483e6b7433f78c90be2fd4b78dfd1c176dd356f448679a9b6b293212dbbf45352dfc3fa2d3f5688c2c8a8884b2e0a8d9ad05062bb24179894a07ffaa90a9c1ea3e328a4f2afbabbde99b0aa2c55d29b30cab136defcd0828189af45e82c2125f36b57e93c8788f660f063f2119df79d77323ab721c3d77fa84217aa5a3060cbac10bde0b407d8086b3435f376b140c9988bb0aabfaa33c6e5ced444ab2f7b69ec5ed3677c1417047561d401cea70ec63023a6e28a679f3fcafe386599219208290ccf8647a9eb4940434e8fa71a9d664ef58c92ed31ac18036fd6cf31077335f704a56e53091787d757b76ee363c5a4eca4152efd7464e7d9dc9eda0251ca95913bdf762cfbdbc44baba584592e70eee8016dc3aeda24f5fc0e8e703639b0122dcaf7d10eee9e740730dd284972dd9830f6b0135e0369ef4779090fcc888922cdb60d393ea7ee7ecdd63d1e66ad53e0d21ca1e52e6eddf9efa0b329e93fda20d6e4251d9c90ae0cc7aff174c106bcbf6382f1d2a6418c00294363a8df316988c9e7caf38f3bf6d087cfbafdc8ebe84e5468b0cea3eebb735d10399a0d57531403b69c855cff474dca7c0b2d0d2606f8a29428e6ebfff66ac1cf76ee000bed5c54b162b6778a38246dc905f1bac2a23b291ac0f5125cf7b6b2bac0b3cdb1cefe5f2c77dccf4eabc8bebfd81f2a5b56f02eb97d471c73b2c3d8b513c9116bb57370972b01ee88a637d1b6e286c38e110186cc3d1c806073eed1725eade604cd613bb42ff23426be09c2ba1aaac025273f633655787675d9fcd1bff08bdf384aaef3c15c551361668816823005f51ee88fb66a58bd4db478f0566c9d573889c296639ff1dc6b1392a21fdda66713260adc99120b5aeaa36566daf00654cc7d26a8df4c559e3982712e0647c5950bc989ad9346655bb647e8ef83c3681f4c1e7036340633ef7505517869b15d619fc496da63f7d131008d7fcf0cc91d90f6aa0d56346871a987dde1d7f6a85f482336ab9a56e5c763ecbdef883824980503e46e8a0da13a8a164006706fd00cd69acb6ae7df3716f2c07916564b12db9b0992558e3849ebefb1e9d911fb78cae4d6d2c4d2b8b1cb5835ed73983211f18a8291052b1acf4d59497bb2a7f2586a527878fa90a2a31edc190f69820a193ef7511db1f465d92583a5d05cec4be1d525d8ae641f3b17aa7335e1b7bb781140fdb29e044cfe62bc6387747d6a818d60ec8edfd61daba33286481d6e585eac0d1dc9d7baa803a25a6edbff59dff2506670ad8e397ad528c02cc099bb4b3c1c77c6bde8edc513f1d4ab5c3a54fb40c5bddadc86a3857bd2b83c85241f1594befed0588fe5576855f60dec590461d255402c313abf31eaaa7ea256987bcec83139ab45e34dde2ae6e568d5815ff4bbec4dafdff7f79d8070e78c6f08ac6c9a99fdbf5f59cf0719b828bb9e737973a555396889c062e929d604330835157ed5f169175f3294379e70553aeb21adff806fd95061124eeb5d111e80b0f42e70f528d0baa1ccf48e29315c7b9f289f93a2891c2813fffe3cd958bffddf7a947ae482d4db08808d317bf066bf358738ceb1633333c0d836b5f41aa6b8594385bbe29b497016150bd5a2edd9d44a06a81a38cda23a08cde068e423e714832815e1279f54adc94a9a94f07d5dc1cac235629f3d23bc88f046378ef8ca27af17ec0ac8953137ac418cdd781ded57b8ff8fc597e3c245ae02c6c816fcd9905a80a8b86b74a686d7226cc868a194a3be3694d1d19896ead765072f7a7ae835e75665b8aafe75ac03a5fa747465dc0c2059604488503cb788fb15dcb53cf79b2dab5eac5014ab4ae68d6b70228b6078f39c7558d68458f7f6c52f349f244ad53f97f2614f82b6415c5a0bb56d1e089371be50ae262bd8cf9e1782909051761b11032d9c1f1533ff1e054f2b647d06ddb92fe34f3b43137af8f308c7b29c3b464749ce2ee521e0e87709249801f2c8a2038c46c926f371b04cac9b1dbf6bb3e1cfa7300ae6c00eb0e857899d71ece272e1b0ea3399fbba469c456bf612de176704ecd2625a1fcf0fc932ef1628244944d08568108697d35f4832dfdf4af0ff1eab6a868306d2e3a41445cf32f7e53841aa73a5add98908b0c7e6a7bcbf59267ca86637049ef432e19ebaf4259cd70466d49fca96bb2dd77778c6dc6a91da9954df34388b5f9fc204c7b58fe3c2345c568d9022772319ee42d0d57abb4900ae28e03f0323cbcaf40ed6a8c4e5619325a561956627247e32bbf99920c072f5ed93a0ff553e897c6d4fcbc05010cc5ca6f395326f88b0f10be37bf46c67d54c178ab9e43e895bd3dcc82ed7f35067952f444a945505de35d18c684e4a26ba043483286ae4e4ece289cfcf73c1add55459c9c73a9ee0b36550b985c9f5f274f69459bc56e20b5d22b6e381181b83236d2f40b7beb53d61c5751aa4feec0a520ac9d320ca0990785009ff7f617d189325c469d6bca6dd176187584d20cb7913bf838d7c0c3917017f58cf2e8cac86b71f9463a8da897b3771f081bb6789294382f14e4143c04b3566bb61778eda4af38f49cc0ab0b2bcf33482952157648c085a46bfaf7d2286d475828205ad517f43c4c31341b1da09ead425bdaf48bc74d9ea1b5f6b9321c7622c63cd358599d9efc3252f9ef2d3e84cf11ab6188045c2127e16c9ac76c1818e352a9934559a7f18b8fa540d62c5c9fae8c2653b57024c7dc16abb435743d2970addd0f9334da0b987ceb0e6f3131d96de0a29e782296d9636493d3bda2e944c71fb22fd85059e28ec7908abcf6348b1a0bd3424ab0110479e48cc86632a2a777ff659908952388ca751179f2581061e662ae9376768713b2224d8952c58b6f283cee67a0f27f54563a2b16f3da1d58340b2777aa142cc7fda0b23712de7243dcd793ec59d779ba6403e0aedb237afe088430129dec3c5354516f5a706664a22266e29545ba6de3d46c48aa477ba453901a16a0d6a5d4c7961e8390d829d65d6d93e6554592a55e374a36ea5b52afec9573216e11abcfcd6f65864963575f004f9bbc21fe5f05789923a7ad3fba003efe05913597acc06b2474c44c130401237dd06e644ba0c707ffb1065f63e8a22c8a9cde4d4a1cf5c4a712261902a8fef20f18247f21db49cdda6441f8d8b7244970d85571bfb28904f1f7eb670f9f466a9e6b9eb09519e9a605dca6e60c240a56a1acfa0deae98ee68650395c27a96afc845809fe7266ee38ad729c9861d3ccfbdfe1bf5c62803d91703c6e295a6c28bada8118f75c558bd572b01f1f8b896ccc2d910db939fa3ab03f51523acfed812d571a766f027be6b77bd4188d0baf8ff871ac97f2a61fee03b4170f23151b6670b16e81874bf037e483527dfedbd63358a87684939179e3d68c8bfae76e44e93fcf5a5d9ebfd1f53e1d4f4271212deea85907e35428d8410b799e3163869e0d0e71d04e0799c010ad24261fdac70dbc2398c9713b3ccf4eb2bab402d35ac01b54e6566b9c1d62404f1fe71f1f016e63cc3dfeb4160f340360ff2628db59268ba7bb849788dce05f2aa2d307e2f06f631cb4385d5ca1a4afac22c0d28250b07a53428ad5e26267dace1ee2834441d274eb1edffd9950fcb0960c4384f94823b97847a7e3f4d1a827d16f3d2d10f87d9ab75eaf13f7c4e134b6a1e4b92c79a65df64eb32a478358582548c45beca6fac1ae00375b81c1390e75c7cb66781d47f09c2c96fccb8fb1b2af3888c88bfcf7f31bdd5a773d68b099bcd2963efc7974226ee4ce22c4a0f05e9c575200fccfc7141ad7d2e735e835b2cb53d3cf5f448217eb50eebc36ead52350b51ba680fae034aeeaa84f02597ab52616896e0f672a3db32c196f1690263304b39285a4b75b71ab78bd0b81bc7798d357b0ee3b6607b4f5c28be06d002b065fff99756ace7864028a4519bdbce70b54afb42e27ae194877b8108a2dfe334a9c75c80ac87917265e96474c3ac1c9b00fd4f67187b944f92e158bd474310fdd155ce919d4e13fdc30341ed62164e05c20814b8b0b4ed213bbf47187701392d93f877a0a53fa9adb91fafb1b0925346fb2f67bd74904edd8300a4b8728f517b469b62ef98ac6f7578fc760dd4c748f346b32c307a4ef26b7087238e4d6b1fa66d6176caa8955c8a4d58fa6aa3ad7015c87d354bce981f11229236838a2561daffd41ce4c4645a105ced678ab82f25d7ba3c3d1eec3b5269f51aea256d5aa65580818a40b493ebf0e97f056b5abbdb9a36029d52c3322824569e1bf48ee0c3b9ad9ff6f71c2a47f95783913b283fff20557de6ba2aad8249f70522c9e1e8a0c843788669a3cafe230b5805856c67826a7089e94f491d610fd1acc6c0a176fc979e41df436502e104adbfe1f2874cf3825c667c5eb3762af005014945338d268c0bbb6385e0794d1bcf75138d593624f8bb71966ee7fe24dc4178bce9083c0611a236a8330d83415084c24c7d957ab57367b1f544bd49f9a93b3aed6b8e3c7317463c6de49614f6e0e6a54c476e2b57ec90c2b5f5427642a34e5a78080aa92dba0ba52810452239166d7af79f82189b832e652cd480d1ff5bda69f30895a29612638165d8b2843d93b9a93084d7f0a3cbf8c9cd50f398ad703d5c560df18394f1ab72b93bcaf57c4be5110e3ea58070540fcee25c3e549118c8e9e1ec95f6e310e8763fbdb66bf7425bc8152078493533ea2a45d09f72bc61849628be4cc8c190c96b39e153dcf2e3ccce3f11c4ed92740db789240daf77fc0dffa5d96246e1aa32dbf3cd04afdde85b0912ec2b8ccca1c2459cc7872b8a8961b6e5dc8e47bcf03950fc7cf72e992ec6d85cfcfe9f0466171b6873e998810e47854eaf70088d52c2aafe627150bfb01f0a06ad70984ebc45e4f3635feb16def2a517594a1224c27c4b873fe3dc6efcfb003ece90af3ccad2810bb816f5dd655a05e03ae00ac5a537015fe1dfacde9385af213ae116c40c5a191f104d52a47f30929aef3bd6aa8c4dc124758bb0487e80260f4c67ac3619c96f4236668c6215ba69e240244e0e3ae01b5c7b8f67e0bd4e8ba758ab6a49060515391edf3f7a7e0d3532602196e3ce2dba5288766e7db4acb38d4077535ef9f2fc7f22e22b8812f2b570b973420e9574a6ec9199a47029746811e5edce6e51d7c0ced83288f3d7424983a1db519a2ce60333b78bd22ac2dd33eb962c32d9eb7fe229f5656dfc9140911b3388eb22477c18bc6cdc2e3ae6f4ad1db972a408958f4e5183c53c5fbf8337b87b30aceb1b0cf20e5ab57dbfbf9121710736dc3d8fe607addde15e70963e2725bac3b538ed5cdb7c51c506d30865604b8f3e58b03d0ed9e68b9dde111581796ea14aff9841738efcb857198095be3898689fc2b453dc55ca3a0b90692985358808007ce606cee740b5ac7b6e94c9b1f024bde151d381f55711e65bcf12824fb7f424feb748affb9d19ceb2f574e9220087c5380cf766feb269c862cf669c959dedc20e713f526311c34edd97b903e0947647014e1c867d8095d98d94cc178fca5befe57181950f51e0bbef0a5335c92c3751aa79e7b4046d948065a04d2fa35725274ae6079b04dbd0453dfc787669554c39be696cef87245864abc1245a8e4f75cda524beb4ae515bedf90f6dcc8a125c7bef11c7881f973e51207cf2107ce79abd89a3fe3edb3f420d8a3ede3282c35792c43c739034f7a1ab9df75b68a725312ffb225d1fe865dc6a1a3899e6c4bd9b50639f184b3b5e7c797a0a61038a571bb0f0aea8ca4d006291f614ee05d0938f4f8c53b2fe9e23c590610e6053129d6c4d42400d322e4d9a77e9de05e0d67ce4c3986073763da6cad05781ccc6715162f9b02dad0780e7758f77d8b525757e9cf3388fd97f30c6191e7151522fdc4dc1bad6373c1940ab0a95daabca62b1c2f2cda95872f009d770a7bb801080ba9655c6554c899ae280cd6b98b86ba7ba517a5d1b054b18bc7fe7087eaf407de660450b65859c59b2045264adb1eb1efca6b59f9c0d9abb8d4bb5aa036660edf4b9c123e75acf22defcb039b955f52c57bccd9022acb9cf89e67559ce8b4d2af4629fb411ccaefee4e3fdb9e70477b7a4a2e0f171aa61559b42f7138309dcf3b43376a2bb6c096cb54f8ceef26781e250c5771c1e829f0a051329bb2afc5cbbffd69e85f1620ca7f798139a545b8d49a9d658d9bcad8922ffb06c8645035f2091ff4948eae7d81d5e0190067ad71fdc94245dc72737945d04334eeaaaed97a74ba21e4ccbbf2e5080031b5a8a2326fe67e3ce9e2fd9795f365b8d09d8d01e35c14cead1cfa9c7ee3dcf28a361c2cb84bb662c89d9402cb00b082996c8ae0b519eeee8b35a41b6d60ffb4157efab5ee366522dddce64d6cb168f7435fb610e5b0720489aba616baebd788de3cf5c911ba38bcf0b3664fd3a8bc70d7cbd50db1d045ac1ecdf6b4b18eccb0c57e5884f98ae1c39840ada3d1b97ab97188c1b521cd241384d2ee23509b572135161da9d78f0aa0edef2528658ce09421a4cfce0ea4ff7a4c386a14bea8a20823f8831e484b770d91544f817c957d3491703780b8496eb6555f1e3dddf2d042e4251f6ef189f09a04477595cb923ec280261cd7efbfecb306cc54d6e46ebce2ce0e1e45b5f34f2b504ac510b0fc07dc10af4842cfb956ecdd9ebd1d0e2741afac93c6f87062ad77f86e03e12520e211dd5bae1703ceb1f54f208ad250af52a3fd153ffb4d206b8b452ef3bacbd29d66e697670da27973f2f57960bb2fc5ff6d0a3d3168a26fa046d9f7bc93f7f204d44ddb56c09575161d0cf70221956c38f0c65a587f61fe2bdb956b3628db251ec7de6b7930932001434066b651bf1ba3c2849ac1201c278a51d479f876b885c7a069b4ac42a3ff7448d0768c1d3dc80dae75635f5391216506ebe39b422632f034ee3cf43d3b977d9ef82ab859fae60f32fe9894c0ce84b72804d7499264f4044c968d454fe51e9bd2b2b9fb5e5cb14202d8a28737e1bc433b449b0b31c169b82380867e0679d13300c47910896e410d830467602a155615964091e92f0c662beb58f671d8e3dbac591bb0a2bd1e5762508f9f0f2ec73fbbe5c5f7f65f1c809e48c779e59b812c6aa4805b1cdd89d8f5b92036e17ec468eca8ee33ddd863fa41d3a5edf20d05a5dabb92570353585f603f608fe6783b5752b38995567594796d980dfe7e4df07024091671208c2a655f1a27f0381d3c9e47acd0d14d55543b8598309c5d609d82fb139345fe7a15e1e0b382662f95c85272916eae045b02bf164804654cadd678aaec440890112f68d12a87e0e6a975e2442fd696b9af8a124310bc422281ff6e5cbf5786f9ca2a23b4d1f15ae6489bed99abe815c13b4b3561ce13d3728ccc79444877048322062be4ae9b513c021507d2fdeb6ded2e0843df506a5c6b628cd2555badcfbc1cc51efffdbbdb2d90927b1470d1c86b7df058cdddab5bdefcfff2dd5c909bb7bb3e0461acfa1d734a78829624ccbaf35db26629ad0cf54934c32378c6c1070089f9c5c9de52fc07af4f7a168c371143ca9f5df76c93d1244c453f80a5bce6bc1318e03c69c535cbe1c7120bf1cd276504e36f6dbb7333e46851ab601bf41fe96b550eec57db538126468660ec2e3e320dc35100af384bfd0f27cbd5de414723a5110d8669f8175468064500f0b587c82cf8aee750bf179bae226c87b8a443f65a6ebf928f7d5092b6cbb3c9bea0ef7d6c1046c71c015be115f6ee26064f9fcf287b4c9e71bb3f47c120e014ee85cbee1de45b8581ae6d5cf8702f973a055b112f7205d5e9b4fe3b60284c526d1bf65a521a79fb6699fbac6fd96c815acc5ece9504275a87b185180cfe33ddf94c0c7862bda31aa3eff29576d4b4207ee8e1c904b7c7130ca044a564a6ee9fa7a2c63c68df8650844530526ede92fb552b6443274e85deef4875a1ab8f4cbc5ef7a8eec34e3a774a70b17e9a5306baa19212f2304bc31bdb50913d45a215045a7f82e8965a9c5daa3059f5a3080144b636b15355788c552f0b960c3ee108b0a91e782549a76f024cad8dab1573f0daff88641c4e8569437c1c002ac39aff6db10f93990613aff04dbd3b07df6113ef79e2f325d9b3bed30beda865a6281691a8d90dc63daac9c7bd020924d7459e0737625fb6379482fd55ebef81de40fce81b97d9c420acb8de22d5be31340af032dc1be356acd15f06899ed9f305d6ce87688c153c289f211df3fb376c127d591a2496c1bd020f949909890e20d8871d88430e73478e75f6991e395b2cf24739035b996f7e07d31d84eddae3c2bba3fdb635b8bf6ad3c1454b83a3ec3837786ebde44dfb4c0a850b2b7ef4d70c32b54ce018f30f0e38fb2c1777d13fcda99763bdb3aac8a26279fdd8bcb82c0069a6845d9ccb43d947d21ee242d314c3f6543466d333fd7be70d2dd0d9af89c7ad70c371c618e0814895efcaa1fd29ec2cbcafd6e20835b677d68aa6bcf9cf10f15ce8ef6cf27543cca459a144844cef41ff386290435b5272d9c5d17f108af24ad4e8a1ba77124827f8ebc751e4f1eb8bcec83c24a6bf7c3fdc4d71f25aa18573c0beeaafe570bbedb1941ee01ea4be484191c7f799c3c7c5bfa254158f43284a7c9226a1fde8207cc439477cc3caff184e065af67db876f2ec82f4a1e421525154025fb5bb53c972a61192a8ca9abd7dd34c592445c90f38d1ca95801774fd2e97a903685d60f33317ae2358403781623052ee166509ad0b6b1715513a69eb2b36497909b8133664f3ea7274be4c66916c0eb1751403ae64e67deae558f075b7f5337c3cdf6b527319331159b7b1eb3bf1b22d80d95e7c4149eaccc5ea0234e32de084781b626e0c5ecdcb5790d5aa75d1c73e87687e0f2230f7fca915db70e51ac1978a30c508a5902399348c0853b5a279d571d224bc8e9a50a702c0bf5998bdc92b10f4a5aaf38f3571a785e61c59e599ef370386a68cc7f3fe717350d1fb4b3b1dff335078736eaa24de796e6920fd1329669057de2b22dea74e0f7b0aae31a1f41eed0949e2a63182f9e29067afb9d88ca1d7bcc5fa3dfdca224b856878a01c2488d112dac560269e8ce23e6a0d6f82071d6d28e590e371b42d09d4a4c3b0613f2e1f9e06e2c4a6dc213c4410279e332424da8cb7052d782de1785ae61e12089d53c6c0abc5619172b41f767e4d2d728a92ab764b77b286db6409db49ba4b11420ee08d043da01a6e35c400b4b330010a5bd0e9ce87c676ce122c6455ee8cc672cb74dbd7dc47ecfb09d2dd6ff142fbdf03481c3dd9c2c70ff9e6b2f4b40d50c6ca9269c67a13018a8a9dbd35846daf462421686e98644f755c3765e729ffa7249fb46565b255ae9d8231edbf4aa10250ecc70ebcef38e931314426fd100ccba8b077849663ad8daeb42903930abf57809ca4a7429119f79ea3603e17506948fbbba22bbc30ca381c535d5d77ea2f409e0a0a548f31b9c48190de30aa7276935b4d7c66fd014109618959b953f70d77b12074122d0b4020a00bb1516524eeb8384b719eca80704ef8f2ab7143a1dce8395b16cb185af8b9cfdbde7cb9b8a659ec6d0b52399d75ab0a1efd29ca3bd1c93d4cbaef9bdf0a1dccfbc45933a5e20ce5be37449a0b308fd712fbf3b57fabfceb1aeec86e614b53071829d40005318c4f1edddde2c056f8fec7133798091e4c36ff82ca4c27158659161cb58416de4a18c0c2bb1f799cf742aaffe4bcd7c638f5c75b895680372eec8bac858eb9f35af1acc6a22b33e4a1141b1cc52ecfb75ddd548b2cb63bf2a4fd436925a8f6c9c1e23e645453b3856444ee95e0a6398fadcc1cc373fc2f022822bab3beed76279ecda58afd63ffa1ed79ed63593c41200abca911ad95b5bda277a5e2021008f2c13465c339dfe3871aac5311364976abf8ef18f133872841ced96934d8731c6fa18fd5a8e4b46e289ead5258ec3f4ea774d99ba5535f6cab7a84a291e3dd4b14ba66a2ac33f0729b51078e8cb41ca0182376f7eba6e2656a13ba9e1f98bbcde7d27a4b2ed23a07b460c5a0d5efb4287b68e506f84e8b7b97b0f4e0a2b6e60171b842a2e1f9f508a5c49095392b66063a235637c39b5f1c6447e09db166b3e938561d5185c1ee94b5be6a6d77898d3fb80c6709abfffe3a96cbdc42b65334abda4fb053e91b608e0545a49cb19dbf3be90292935f6805c914540fecc177e311a47b0d7645410a1e6293378be800f04579bc40ff21570e42849419ee2e7e490ac6e063e0df7ca42f2a527e18452c970f86a9b70b5352b223f33d674f13e8d027151b33870399d3ee42055b1233626c2be7021a87518ad26d9618a149835cad1e5a4632b746631c511cb550be4bb07892064a68d9a8cb672596e83dcba3cea24b32d35d902103ff8ec503b05510541f2149bb807c8f18d3d3e96f59f88c63832a80e7e986d41c859f1120f583740c37180775d77cb5835f06451ff2a6fc416ede6b2c29df9efa11c5cb48aeea382277991455d2fb62263ecd13486ee0d8b534aef32bd23845363102fcd1c69d15314a2fdace72b0e64bc63f87e1d1658251ce820ca06f01e89c759d3bdedea5b4fb8f44fd3b3e63542c2df5b1325e26f7f66f6a525532fc294737a2193e6c807cd4f6a99869237293d0398bb4f36cccc4f2ac174983cdc2a61f25608f27bd9c2a655c1205647250bdf9b222fab7382fcb9204602cbc803eb9512be984b799e13ddf149731c3d900cc2566e184b3ece0cee261bf50d6f430925a2595656f2d2431df0e358cf9c29e980bb06f4a2dc6a0db785ed213711bab9eb62f7fc42016b5858c894b7a6755d62928607ba0304ae7767b8cda5cf7d2973e65320611f9f1d29dc0791e6135de6b5237aa35b94f925ea24ba73fad41ab30cbbc6a4e5b9f8a31673eca553e3659b29fb199d22f897b65ae7c4d0ac139c985ed4850bd2896c77ad5445a7dd0545d1498a9240ba5a2128edc03d269bf2192fa44ad2d7e5853e6cb2c06fd864f4dbd9049a28c9e6b8af120d2c9c52efb6079c65dc62b0118c012321ccec344b5b5c336283935cc44926195da07165143f80576f7825a79e7125f36a8e08bef95960fad3cbd79da2c95fe1cfa1aff6ac3ffe6689b2f785cae35464fe55b20a38816bdaea20d5490375a4717d0b69e3774d0b851832ed5e7df29586982a63fe11ffab3865759d8bd7cc6ff9e49a2a31c1cbbeeb8cf55b798af1c6c6623357b0c72faab98589aa2b014b089fb2368749edf6e2f780e6e0db2551db8998bb037ed3134b5d911e653c02464612c3fa529e761715442118b18bc63a77a4b98c60a305731d9521ced26c6fb31bb65c0dee346754a27181439ee02297376390b3053e5564fb7a24c44749e3e8dd78b040a58ac5b45e9d333b85b13273e5d1425b52effeb83d5791151b8aa249903b96230e92f97e9ac9f34c0bf41967d6a00103be1d86fc2bc1e22f34d4ec42e64bfbed8488a4a8d8a7a9886e524fa2cdb151a2457abc283deea7c459a756fb0999eeb20639b29a3c3b80501c917c62aa4e1bf8cac19c432afcbb510d70a203c030ddeb04ee4f9a5fa82fd9d71ba11d5c4e5862f8aa55b7f57c294c80280f40ee8f7aef1130ca3c3bf52e2edbd6e5dd8d713a8f9b73811dadc65042fbe4bbc2b16fb6d32625bcfa9d4784ef60fdc666210578a9a7c9d359aa75e50f60865949695ebc3a4b4411c16b498ba29476f0d2ba60b0d9840069b90dbeab3fcdfca93b7e74d655bfccfda0b1c2a743d5ad54605cf80a2b17285dd080e5a38fbb8fc87b6eadd54b49f3c60d193f9e357308123eac87c3a9cda943b7b8295e3c1b87fc1e1e009f6d88261e61629a524510e2ce3af23b7fc605e8efe703d95365b4a5ef0714c73ef3dd83efce8e921e9ff095019df6d5dd3e8bd33735debe5fbb06ea5103d4873dd4cab738650f335b3cc7aace157a48fc57eef28726dcf2a668cb5e4662ac693d4a172c74fc246fc59054cc324b948e221539775788fac977e0b52b38c79a411b4867aa529c0fa67e0aa6a5cecbbcede78498b055036e177e3e525288d2edb604896a39a9c4dc5b99bb34503c8f42480679b73294898bca7d61af06211351ba73db1c4d9281a510aaafb7c8741ad79b8311a6015fe6c6a189ce204029d0c1940e2aefab7168348c4b85d687a61c700ec2c199962b56bb05228fd15adda0f653bb973532ed7ce83291bae15b443dd6b73fa4a0a8b400c1fec1eb89b8bf8a823d8dc578d5ef44352ca3092b9d1bb0efa1b921b6570794c4515214660cb140530113107170892fd67111c6e54ae092f81a41c517fd5497ced0e6c41881dba18340e664517127e9f94b9c8e279f09d4496439efd81e4435267aec77334366c0709aeca3f0705d14b09504296be7dee8c0720710b34a7caca69ddc43d825044404305ef5655921e7c9ebc5a404d005b762ed88fee0a8fca9325194c3741a79de125d8168a990936a03cb3a035896921423cfbaf44b3f00107b7f47be32dfdd13559237cee1fe072a44441a6ea716b6240888f2c6e7282d9f44493d791e216065ba89361dcf0329dc197469729b0fd35d8128bc06919e2ccc1bf30c5c6f83d0668ba0df5bb093d5a38a8f51ff4d2dacfcde45d117d400e6398629a5cc506be32a03325029c2ce32cdace57a34b4700b478ae6509742aedb6b1ceb085143e6a7c88eba874fc872a0682fbc6c1590335fbdb0e770281fdc58ff6d6ea6619711671efec12ab767bbc65deb8722fb3b27da7d2365dc007f7c3097bd8d023212f1b583ac518992de9680a2f66dfdaae6ea508c230533bddde77ce96ca80eb7377d85e894020ba2fd79f32d87b65630bb3bc3084f1893ac64555dd9b072c574b3d2bd58410c4d3349ff76ceda9afdf5c4c94787c7ba5be3e0a35e46d2d9a18c697fc79e5035388618eacf815a23df4fc72451408c93e3cd435d3277c5ba2f83202b3d7096550b9faa11ab66c68e2397722abb7bce762a69c844ffcdf81b4254d82bdb02acef1b9320144a73d1946f4ab02e34a27aa114994cfafcda16b4fd243e30a7c0042a1517aef5000c32b651823e5d2aefc99bf73ec2159b866ac8b23a77592f1eb9f7e8eff3509c8435c0ea349ee9e91ee60d6f3947899b108a0906f94edcba6f39adb67446e5c083692643f93ff335396b2325f8a0a2140db381dccbb0935bb2833c030f72adb8e4649613dbadcbff927dea32eb37f83c49e6f02ed18a7ce94445165da76b73d3d683e4ed897d33636df926ea855abb95164c6a65279c69eac918cbb06ad09dce94c644dcd4e63ce78580ecd9a70369e15e47581c829d22d6b7153e3ea278d35d0e96ccf41c27c841548e06ae680257351088ba3336523081511a7b4019ea16c91e9871efa927b967841abe8d87d4c5be2ae702cb15e6040c71f5b398e4502c5c42d50d4df1ce4076b80ce5a571693de59e31fd20401cdea83975231eea9ce2c18c24462d82e481f67e6b0cad878626aa613775e57bd11a04eeb828ebce898ae00e3938beb7671e8fc9d79b43030b5cd4b01072f45034dfe582c9ff6c380b0fefaf970e6b9dc15b246165f8829df08bd2b71fab53c3c7d263ff82c45c11cdcf15bb1a85f4344e78f6d48592befe4e050dedb9bf72c64723d54426d09f603d802b181a8b6fd72c5d83d79f0764934a0849aa0620e84997febfe49f3058b1a3acfb05ab9fe3a1136a6cbe815b6a6e73fb8ae7c5fa77d3e16df2550fcaec29bcf99bb49bf20e0010c5a2722702af65bcf3189495685c1854d49acdd9ab1fbf723c8eb3f6a566b8a541522dd488952dcb9975043d1fd51841a5efeac906b8380a365b65966b04a05364022a456797c2885750c5a0079ca22a6d8ad88426f38cbb79f1b4ac4928218690608b0f01925601bbc5d4f45f6ed87bf731eb18904fdf74e4767cb8434a4aa5ad521acd778081dba40c7a2e38585d6e271429b46a5f9417a538137ec211410d2e13054a21bd8c54f39868e69cd8e58ad17671a817faf86335ecea905b8a02a2ca17d1e097bf56367c4fa960d87ba71e12e114792f6daace426a04c87ae6875d950fc63c085fc85c260a06e6a013bf34d83e9b44c202615ff0e36b41b8a1137d26d81b84c181ef967729630b99ce2aa0567b9c95748ab7ecc9a4d69ee284e54213b0665418a4a633dc1b833e84e9247552f7747fb6c4709a6f542053c37b57c7b42fd35a5242c0839fa47f8b221f8ecceb5625b68c0bc3fe96ec18190bbe7ab15ccb60fcea1f142d82d22f22db29d1094d531c42529a55356f6039e508b07399369d5fadfb3e87ece4e8b310fb3467abff14ce1a4c334f5fda4a57b25d47deef06bd29a407ee8b8cfb5852c5b699f81726e1bbd2d5ccc70883102d5e39411e4c76b9240bc1b8cd3f09eba2a032e3be39135606440f65bfc6a7d266f92204e1520c2090bce173d4857aaf21571f0e2c6af33a61c4249955e930851a9459e39ee4f11f1c778f10dffd85c1eb1f2b133d1f9d9bc4bcd3eee592d79024ca08c5b4813ba8986629f6457bc9dee7774058d5a439c442243757385681b9ef9eb3713921964720e710975abff39fda802974f256d764b5b4ec06a7d905b9ae2e5453e1ac87a8bacf98d8bd86e60853c15a46b2d7d63f9a2dea6c5955c4b419f8e2c2fbad2adeb07b37a27965426acc9c17e3f6bb2e54c76c4e163781722015186b8f3579a6ee4f0fb95e5a5c403599c8c0ac6a3c181e78d7de0255922ba4c6dc089ebfaf575165cb6973a2653539e7db84215a03140ea25f246cfa962110cd4a492ae6c283d96fbe9acfd918cd6b1f0a2b52c667e2fe2b4db69b9775cc89c13069b43a0498520289ef5c236a93275e6f002144d44dfc4e34dd455dd16a762fcaec0a65958d05e0cdf07062cc66c8e290e60490635e5fcd862c580316b17e8e5abf19fcf7de63b44ae6a241565731005c81980f6015b86285cafa3de0aa68e47de70e941ca514862b31c28381395b3e7990baf77b85d1bfba1baa70b5b87cf86db56a6bdd6e12e0ddd0b62b3df089e0599266fde458d703eea3eb880400f0c1d920d298a452939a7c79ed4dbb763bc3acaf0a95cfa9081f0794cd5711939ee76b2d709f80fffe3b1aa2d6e0ed822aaaf1304981beb8fedd7e22536196e23592f63468d8cedff835fc284137e3e252a03ea8e0f2705b7633bd8c07b4b548fe9875ac25ac3e509fa04a7657ac874312ffa4ed122047cb91f6ab548b36f1d630641110783e04abf775dc802d45b146d74f8b5a10e0d004b7627199c2885a929813365a3d68cf10854d24e8747f720e7a5c3e8e978ecd1a4714b89ce0821a590c64dac7c8c367690ef38f98e3cd0b30d19531527ffd159047e2a6aa5d48d0be99ed6ea493870c645a9b829a87526793415aec3eb143a622a2696b51ba37681ab7e179a1411c8f1dbe2ca38dbfa503115ac1a915c326377dcdf88c5de33c87fef66d02ebe87d17a491587511fd48dbd4b221f34b252ca3563e8ce36d3d1b1d1f45517597b2d5bfe4af5ac8ee0931e40d6e7177bbdc248830c313e608f05f09b9c4785c952ea0a0cdea71ecc7fb17b7e9a2064ad5d3fadc7a85b4f1bdc17cbfeedc5d2219e83da78c606bda4d1b3a803e1bc6af50764ea3a0cc729a33b6473679209469990722e490bf5d7609e2bf377d521fa3f4769344892ab741f5c7ba5d058aa94c7aa0a818d77c3a42d237ea6420762c44b3833a8d697477f08a715c085b1df1afb45f0db311aa56cd2917f7ed1eb05fa790db05501fb1b92f2b6d5b57634518a790cdf99cdc733653c8bdde2d05964454f8c86c769a4387b76d8da84ce1b77720c7fc02af6940465a6ac5935370e8ba87a8e1462d9fb98a7dd90231e49c38a44457112d4745e4ce6d5ffd3bc4429b7ffa581bd33576d905bf015c0e6b83007b5f68b9da704429409e38525f780ae5d2a4ae6881031eb46dcc4d0d43c4786b99c7bc77b2aeb257e8a45b3ca5b4d06c41c3fd31013b86a459cb6e06caa3e9161bb85f56e66d32e99d86cf15dd9dc7d285cc671c0dc996412bdbc991cb0983ee2fd5839875fd04646c6fd1ce2973ec37aa75c7f622fd156de772f0074511c20022a8a8b1928519fac7fec04ddc9b16ca4ceb5cdffb92140403fac5141cd95ecbb119235060d1e2abebb0def4196a77061fae3c20d33f42802ac307aa32b93fd1eb0c8594f942b1f4c5966142c65afaba8e6d1d7ec193197fd86b49dec8b1cd0bfd1a569ff472d792bda74216919095ea4d1e51ab7b9691a08828392545c1289b82a77ad5f875777696eecb6d300c0ac3a21d9ac5e4738c2ef7157627be5366d39fc15c07ed8ac1d9081dde87d85001e26018f431c3541a4871bbccdbbd36b66a9ab8813077488b1fafb13bfabe9d1209e7bfaa92d15a95ac4e595c54da8578256ede6696505d53e3aaa87b89d987c828fcef23be4a52381e802bdf1383c7a74b66449593fd983148a7c17432bd6acf764ff2a6a03e1f939c1e27e2b17bfb21237dc07d039f4654654906c462dd7d0995fef5f3d6f2886a8f2ff7f02a7db5cd59e760b8c0fcc7d2ac635ce98b88c48637f7236ce2aeaae77545ae8392eec755cfd7b84a2f79c3ddd7463e48728acbcb6fb2a31c9a655d9535e30fd46ac68aee92ba4e5f85b95ebbd114ae253f9bd59d54b2b9cf05ffca66da4c94ad4dcf8e6e2dd00a1ccdf5192ed2efa56b0723dbb68bfa04a99cd7792fb636449410ad45b5141e9c42bb66379d4134eee4822130afda608892ea06e28b51f98f821b058ac652f89417b48db1e9ea189c03726f430820cb2b4ac4f932b584cbf44b9ed0500efecf551f12c1110b947626b8d477010cdfb8d7f25fa756b270d3a2a84c840c5e67aea3d1c6d27cd5a086113d0e4b84b145b90053e92437765009c72b23e8fe9e3768d6b581cfd17f68cd09877ac6a9e7553237fb15dcc9edc1b1798a42933f6a68be2825c3e8eacc94aa9bf7027e4aa6f496f8accc36be55999b5d372f04e2f8f71c936adfdf96552b72dc69a13f3d7676579bbf16baba32df3349b650afeae257fac212832a940d58c28ea4c8ee22325ac5a6114acbb95aef093db7d510b7993c940067c374f7fd81effa8cc0e34ca54a7113540471bfeb4c2a50dec242faf26d5f9aead13bf75a6be091bd9308d38059eb0f4127c08551c303cda985bff60d0d5129993edce21cf2fe4a6224fa4162c5deac33c6395b648d2ba639d06fbeda87f4f9259d3c3c7a62ca86dcded351422903f89049e79e29d612573c9035c936867d672fed0ff3cc2fa433df1f44cc721a94e65c254fb290512fbb61f60988aeef2c626d756ec687d0f5f8a1cbb6724cb5908d0658589196bff70fa548abd10bbd96c4d0bf05ac978c47eefcddf4301a49bcaddefa1e10441aaddbb55550fca773533ce1649d674151c5df3fbf55aa29348a4acf47edaddfc8367d1bfca94386b22b9e546869d2afb95a3648cfe598a6543430020922ee7978b48db66cd7c6705f0a95741ea437d96137c6ddfb21da24a304fa1ae80dfe50cfa381bcf8b848058e13aa47dcc2e0a95cca99d439ffd5656bd322bf1fd0c6ddefed2e8b5c2c9bb997d705ac7df6bfd6a531c8e7d0d707c017b9591cff958c1938c016387cfb2fda3708de2bdc899d6cda92e6d46bf5095a84408cd401f339a3235cc2ee892d68174fb4c665404dd803a6504b7cb7854a80a39a6ccd4a2a5b8c916120c2f230e25aef4cace521e1b556ee3b6992b5b73eacb42ac002a617de4e9d705c9e54e1a3c17593b2ad437f68aee8e4409fd0e5459f43049907a4de76128b47ca549ef8667196cd32dcadd42f280337453c7be01d7715f28930c30dd5a9e986287cf0ab680426886f2762ff28baf621e1888e1767792ef7875bfb4fb086850e5799cc73c8fc5bf777df154aabe4be88ee62fd5c6778a90730383c99ba529c128d10c2efcb0f8ec441fa6458770e74ef0642149f0c5f3d7a077df4c4947843796f42dbb9f02d4d28837d5debd445a74f3d2b778a217492a624d6c0cf1dca3c3184241c36be178ad3a74114a1b993e2e25edbd357f4d6a337f8757136068b3a5d8b440a48552a792ca36c3b39aa474fea3b2f5c2a3471cefb990e348ee7265ca47fa53c81ff745821d63a5518b459ed72753927e825f8741abdae55e6e786f5791685a7833b8dd06cb7e47b900a3a4f18d97bd5c5772b71f6ae54610bdad0948bed9677eb23f1e663eb18d8687c230ae5a6b1432c1c61b48bf6885af8919711921c741985a6859619de72e525898328de3c926ce491f098be7ed3205326f6787da20e2b994080586961937f882e55c311336f8e5e6fa38a32647747ecb7cb1588945fa1f0ae03c0e796e872ecc6ca674f90f83cebd5b449eacf884abb346993b772e6932d9fa3b5138cc506b37a4cb8c998f3307b46b2dd58fd4300e421c6ab2d45cc8369490e6c33c2c9c1b770ecb3fa8e8699496fdd874ddc15938750af60fd654e1d27340418924ecc629bdd467282c1ffb29e2388d9602e5753ab5121384c37b335f678ff892d532fdd3a50ea80a3261af2576b577e80f260d62057519384efe6f09edb7d851836cc4d236635938074ec359bceb27e6995f40483f2e667bbcfcfdc6db2e53f689d275cf2c538805ac6f68a70f2512a137573f303184daffbe9a781789bb014141eeb92a118a094d704f42696b070e19e2fecfb5b91a5b2601b92e97f4a419e328081113d208f304ecfaeaadad6ed924b664cacb3a96525bc60ea161e340fc6e107f51ebd6d921e3c5826c42f68492eada249e0afe402d83261208441525abd81c151f01cb43b211faf8c98cecf23ee88e27cc4e6482db76bb9dcfbffd554c86cd5a7993981d89f392b87636f68f448c9df36aa7fa375390d18a12ddaa11a9f062822c294efbcdf8054ddca6a831f15dbfe3a294ce290d476d8726cdc340b0d348105d37e8686a83a623d64dff18f5b5a61b31969be487dcb747115dc92af4ee650f0418394d8fdbe04d36be2003e406bb2fe909ac3dc118a5d20d3802c62a5673aa6c5069dc2f342fff3f98bc12b7b5c4102f5a87a5c116e41109fabcdead51bd4db527ca3680bffa1d2c444c9e48820bf37d7cc73711216dfd2812d25cfbceefbe528df4ed7ed3da32a87cc06ed97fa996e1bfaf273c9e3eb33f758f213661d0ea8c4f6e2f691ee43d55a965218e9d148d7deb5ec2540d1b8c5b207853a5d10783fca14f4142ebf97d4509092feebe20d605adb6c06f125ac6396b817030405de815f4a2525276530284ada8916664fc744457520c25931eb0cd2ab82ae6d304489817795ea451a7f28c433821c6e3e96b97f0266c14e38352bca377e67bfbe3441db7eb0586d9aed6ceaf4487c230b7e37091a6c65c00947fe14c9cacc23dedff911c88d20cb9f3c93078801872353622d41281c824e018cdcb615c86389af5d4b247dc478d7e19758afe82fad2ba3759de0c5cc813cb9a763d45b0837979a5ab95542088244015da288b44bb43e1ca453a251cb1d7c91d59aeb37420c82d674e213236153050057d4b2721e70829c30daaad9995a221703bc7c5b0578c0375d392a87964d4019b37a8476c39ca0ac7c78592da51a7e01b5ee7c2a977cde168c6f6af1a91787d4811e746dfba152069a033992b47a27a4ddea2c3aeb4bb7aef6ab316fc7546a5a4ca25b06c80d8db0d9db2eeb2d14d7541cf3e24c68b270c8123ff7750ddae09b766725942c4e9d29f931406568fec240b0e34c7a64108b041c167826f41e2ed1de1544e04c27f94540cffc60cf1c278c6bbb527a72df83c6b44498e9dcf5b5c406c438a8a16b61204692b0cfcd899d786fa233c8c0bb5b6e25e5984bffa524bfe062b83ab620f9bd4dbe771f1383f0c950193286242a04edbdc201435f147d190f5ed83dd97ed5e3d6d95741abe0342cedd52c1c8e941f4a8f1783a53b67e698cadddd6b8a4188ca18f2adf10983c11363b5ddd5d5ac1752449111839757d48371145c0a42e3ef50585af899652c29b0d65e7782f416e3043a8f017f9df90c0a56ae14839a56d4aa329c2679a8a73b90142d7a75f813b51c4d9eb65501345b64e7362d81f439be1568c16e76000b0344272475864aa3da5159e2eb56684f0240ad9eb9f7c7f1e0f341cee9de929dd1694dd06e58c6c2ffad157b85650f328b3ab1d97d42a0a340eb818a649ecf1e404b1ef1778b740ef0e7b38de9f4c3a4857ab62f1b955ac7d7962602a1d07c1b3ab8579303d606bff1351c3c8a0fa16ef0b8eae7a7c384e7b53b4af7d5ff847b93c21ae3c64749e05bc6996f02afeb78194007e26dc0ef2199fd7e0345afdc26dfa67fad9f392c04bdc688ca627cfeea351d6fedfa680ab218871c2f897b097c7d4da86db6ba5cb3f9d7c738e3ead62c2255e270103127ac51b61aa08730140c515060bc737fa47f43a7fc81fccf1068d69bff8dc89627417916cffb4f31e6ee81d693a59f14aa4a055601f26283a6477f0509f363245e190211f93e3fe6f36b430e97afe72588e1cd23724413c24f9361d1cd0c60afbb28d7159cb8ed4f2d5335121c55bba067b674aa46a656a97144706feb6bac41a58cd88564943de9d5c732e2187c49a22c0230e579359c3d31067aa1805320eeffcf55a27f2a3cd9b1c03206d22c63f3bfd16b3efa9388dc1c31b358633c2bc55270ce0e6fae40a7d407a3251269d7f3914ab3589fff3193b4e295380daf4c7690effbc28e14f73b853f143d9b7befd9e9d6fa99a30cded4a311d976d11c413822e1e7c6406c36715da833000b14f1d979794790d77dd3598b5c5ed8628220b4f619d555ffb302bd94bd40ee8e0aac3430a7139abe38f8e7b3eb52207b1730a21311488d6661d91d1ed877c2d7fdeeaef7eff04459c231a7617c47416b5119aa1350041ecd823fc9605c7faa7542e0412735e7136c62de704a88d3ae434c67889073f1519cb70ac9fdbbf5a2954902a48634e0d265713a70abfef96a07a55761dc09809a482455efed5223a0e5e2e25b8a5b67125a093b449d48e3d489bf11d7c08312be3897838e6b7a48fb1b1e8397d0e21e292093a6aa8b350477486c430067417b8c6faf30a4ebb7e471520d1cf0d443c7d5e20edc83903e016a05b6af06b40bad770e333dd4ccbeeef516baee1c2bc5afd94c7646e447a2e4d97577339299d6de3dba3cacc099fb5759f5e7a40eb99f008521baadbc16ceccdfd90e46d7a4bea3ed141dd3b59d697f00813e5a514f819137c549f0b108413d423e7b72f14bfcdc0b256a64f6182de7f1d85d09674d712ccebc67659cf1a5c1698fa56eb27e714abd868f3bedfb5d8363018d2159b72bf21e1e537b726b7c8fb29c324327f6ea5338638a5f0ead15419f9e3b625d9b425d0e7143e34e88b19e04d5bf4e4b790c89cb6c6336a48452928a9b1fb1b0585ee818dedbad34fbe566815e5902eeb99a9dd44a2248eb25db07dc35d53c386c4e8808b8c2fb3566b4be72d01334e49c5d7da2f5698aaa79b457a4dec244ed53586f6456bf480d40c06d2962c0f327476c82efda9c0579cb2c90028fd0a19d1f85dbcc244b642e9eb5c44027ec9e1a2b853827cc36226ab0023c3a376533da3eea8bc7987f36b69c3629511a8f8b8d78534756d1f569e1bd2ba9ea22c81f30c22c5e2a0df80444692f4fbdfd9a971b3978b16cac40b8d5a36fd08d802ccc55044b69bd577049f2ce331438d13defeae6a5dedb70c02a43d85db8bfa889d921f6aa1e645a87bdfd37bfc8ebac80a37c6ab129161d75267acf44b52f857155f337751f5baeeb351b77b7d302b37964edd7ff5d13a0c236c08c8c6c4808784f98112b25c2734d2cf336f9e8afbab60226bf3b87171d233e7eeb3c835756bf26b319058d59a96ceb843c18f06200e37523268ed6b8c04548b2d0a529e1269993eb8f9f98bbd28f336534343181e69602b13068ece7b00ebb704236b6ae61b688ad33fee01355a61d6e637f15231df1463400b75229b1b73f710429a55e03282db3cadb77d94068c6b0e6a938d4e5effa06057e56368b0f8cd75e66e571366bde349e4740bbb7aba49de606a17b7afc3d966b4ff8af1f19dd7230ff79ff7a524fddf0c6c0dc11a88c968ab78fc0dfe73792b2f4ea43a6f1637547d4aa43f2d757c655b8a5cd7b4661ff296045a21ba185e10493c791e772f549368003b926ea4d39ac4dbf8b9f71682585e1ac3d9da30a239eb9ac86b5b43eaf468b7c8bbef56848585114a98f531a1ea0608b501d12a3725cb1c0f41e8c5664b95907c280467e2d62103f09416a26b26ace31bd72beb4fab5fdadfe842bb977cf4af9cb90065a6789e2b233f6028261af100e798d74c9bb19cd1ccb8c93daa4d6abfe247f31250290926a5a781d9d161ab7bad8213994e1b6b60dfb47cfb7840396be86420e55852d13841f3a59ae2faa0b362e8b81300c039cca0f9ecb52a5c0ce6a32d8a8a368211c5dc8ca9a745685fcc1a64316f517313bcb22eafc020fb3c64f43f8b5e2d34acd91759f012b8e0c72bdf4786566a675dbdf783d38835f8b19e3e2521f4f2cf09a17d8dc53b6d81e9fe92c547e34274c0bf4bfbf3084bd5465319c4d992200b59f0440de05d05bf27b2e77ea628be0dc796cc00005329b522c109ab77b475166ebba06d6002d48e787b616ffea994f2687ab2930a0fad42c83050464988ea40c09da00360897602bbcf6b623ede0ede1487b88106f545dff067c452df7192fa9054a19df2a7ba4fc4eb7d670bb68fc6c73e15778a53c5b27635c21f47854e61fa424dca4ee2d47ec64d4ff63b0fef72680203e56c897c76aaea25722d0f50c17eed2ccfaa18e73821381cb54a3fa470ed9cd800468fab1573db581a570d6bb3b57fc7b03ef7d6708233fa12ad8ec0b4cab8b15dac6e3f7d7ee16d8facb238c3de4653eec58274e0798a3c288eb9b971c366a7e24ec2e0349cda4d21aee509c77435f6d2cd92f09347cbe88e4a7104ec8399981fe53f529b1327f49386c1a9535862967e1753a3fdba4b3b252eda7e5756ab82424d291fe0682dbb351a13f0f5ca863a0857c3224c6d9f3bec600dab07ddd7692f15da99148dd4b8c260df231c4080fa5ba336a9fc7e236174a496b97cfbbed17c1a402aeee60b2ba710dc2dd9fbd27fb6fcd4cbe34576478a7ff66317ffe3c556e35cec13fb42f47222f39aeb922216e06919812606fc7215ba22977da72f728ad0c49e11bcee2790fbc46eb2a2bb4b894e5577dde55b255b9702eef9e56d4b3c4f21e149b308a78e1f20c6f98209226bc72abb5cc8fe411711f3fb5f0acfc70abfb2c281458ecc961f9049c94620ce0c0b11ae59a395421d7245673f9b67a79fd7c8a0df4e012ad51fcd6f9e1c36095108d54c692d933b7313bed36f46afccf1f648557733e653f1b24690bc0125f12cbe15c6907aaff018ab169d3f2e02a5b9e72cb5bd4a45bee1fb9dc57cc7ea782a12c760e23864f9ec8f7961cf562021da5d025f7d3d2da9aefe2aa0c79c2969983db0b260c470f56192085c641eae3dc09c6bd926872e1df6c876a822a9a6f08943ec26a23659d1f58d588fbb7ab41bfb799d0196ccddf742a3c2b1fbc9cdc407446cd4eeebe31a9da3f1bfa72c1da98e34e2c9a623530889cc7efc1b2e2bd214eb73a4d2b49b659421d03e843a3ad9c267174833b8af3b5859d2286d5ef27c68ac19c95d1050bf4979e58346c93f6d71b62e1455748fd998b018f9793e797100f7c8838d5894345048969838dbc54c14aaacf603739bd0e2c75fe454b2ba04ec0dc23b97bf3f658f653a52a692476e16a72be76b0dfb12c2b1ea78cee2d324f3bd98e40f5aec2821189f5c0756a54f29c6d95a9444db027a48af8e258c85d9fab9b4b429377b438f198514709aa3fea0d8f8e23222eeee19c0d9499b5eb8544902d02b82b58d2963c9213253286bb118dc5c1bc36ce89ef4b247ed943bf5920b5d7d693ad80bd539049b43de6507efe1a7f0e83db403f0cccb0a7d3505ea8bbe909ed3535da0a9cd6490f77a91e84700ad31080a4e7b814989eb3099c9eaf25dc3ea0c8bbb3a69a85190373fde629eb337b1ebff4f127181b6e2b61c4e6a877a1b6d3b2bfb8d386f1ea11256132dffd2bf95ea9afb8d27b41ca0455a6286f59982079f939290b3fab3ba77aba6e6097a7b18bfb15334357ea2067fc6ed79468232eb77690cfd11ada649c0644a8be9ca95065550c8563e1d85ac22175e28e15289223db042d55bb85eae0af08b03ddc62142e88cfdc3f794985b90ddf7981a8d7a06234267daad46fabe64b472944f7f1f407372b35033c783931aff8d74566ed5c7f162e7148eb6dd40c6ac036b8121b08b6d5abe57fcd0bd0629f54f88b73d83e92b67754d505d7a73db772e18c09ee340da4fd034c43eaa1b2bffb148606fd2c484a928958a81b0879fa6ef0f2ff36092a6558dc99ee9916c5ab0ed4a43bfdd03a748b1be997f551fc7536328204d884458aa05fa8e8f5e484d833cc783a520264b6712e0354ad3d5fa4d1a1ffc9694320c633a32e378ef32595db91e66c654009ee832d716b98ab6e15e4315bb25b0c8c4f7c1dda1bc9560c52bc952d03fc639f7e2d9c0a8579ec2fb78210ded8de689089bfbec05f6c63ccd0406875af666ccdf425980d0a50f6d4cd6d67052e15b89d07681540b7d5de77276eb88ef430b8a68583e3dc0fca421d551c48904d737f4c628b38f0b74cdb121eded44fda96496d048dde2db89e2badf859b0a2ea04185d51743196a3c8ea2205c3a4d356981e87b9e719fad117d081979c986536b3f0f047daaf4502498f5d4911658dd20d2ca3971db67ea6c11517be40ef42bd8caf8a63949247d5f3e97d4e1bdbfafd7f85edbe0b57186f197cc085cf23209de71b9ddd4bf341b9dddacc80ea1024c10ef151adca0b8d939ff2656e43780d0e6a95f613ac3b0b3cccf0b209e234137cb6239ce6d1d7bd4fb9501e5beb0018320510da31443a927e4d5bd91ff4bc46c988464750a49bd43e26f704e77853d564738783adc3c34bdb8b0826f325f747e1ae307099819c6259abd7d3d7b93a25c6a7569a4f6feeb3b3df24bc8d20b5f459d5ae5242a79a00e8624a439c796febd6c0e3f517ef06a19b728c15ab89b3722a291957dacc59b9cc97e5541729f078045e06a038e2bd3b5bc65bd57919ed4cd83f503a7f5c5c9fc9e10753422c2d3de3f86f17d29594ba80ecbcef422a3adb993acef2afc1a827f282cdd0eb3096035be6aed821d477b1b9e37b6ce19e06300537d6cef2791e23c3071daf29a6f0d7641190c2271a10f3a5267ed1b942037e6a83c62edf97a46c98752ac03d5071f33b75f0f5742123aab5ed81dafcfe38fe938ef0d37846bd3f9f94e07105d9c3e3750cb4cf827cc311f3d91a4c9a56275633a6c7d4e6c3cefb80058940c86abf5ad61932cf5722cabeb9b7215bebe1817b873fa14cc7148c6eab034715eb51b35dc1213aee4e8b368b8d318b762a78248173b120b55b328c6618e4badf54cfed268d988e3e3d10da73bb670045432fdfecc9e29ede12b1023e33922cd37ce6a043506f170c4733ead06c80b2c07cf15d221173219552216543b2b0e4aba7fd2e8c4e4760f8b545b456237f08facc02683cb63394461855d9462e90511cd1f2cfd372f260e3ede603b3b221947e25ecd73ed7671f5bf6d0c62b1723e01d56dfea8d1d83cce033ed2e01efd1b9c36caa328a98fbd08b840740125c7447076949fb01171bb459198d189472d708d7abeaacd3ee6c42cf42ca0f9b3c68fa78fbef6c25ca1987de8ed4710b927a64ee46cfbaebd8b7565a9fbbc94b2d51a610361acee34874a12674685516da773c40188acbf445fd48a0d70726247f975505303fd2802ed2eb824037bae90ccda0b7beb5016d33af1c81daf53b5ef5ddc980a9151c86aa3b9b3a16b538cce36daf1a489196da8b9d81db5690126147a4e52f87d570a3c7d365ec5d2b2d4ad6c0478e3886fa1353a67ddf2c2750ead3e610b3a47928fe2af5aa52ced5f73fd211557dcbace359dfdf231f12c370ef7077042161b47db729ad78ac8326ada502f1b7a79d7c3d0c386dd93cbb5dc87374023eda6b132d541359fa3cc65267e8c4c167ebb2535baf09a3e54f57e632391e6c9f553a0b0490dac909aed98825982e0f7365c7c8763fe850517e058524ae86bd8b51db2da69b4e4d1acef4e44679e77ce2941c4c4dd1a841f53f2bc8daed797fb7fb70eae4880f4302b858dbc2aa3b38311be66a45d18736cd4cd9f0bc0b4679217723a735efcc586fc7cfd5e2776c6fc5da75139be4d2d8d3ae6d54b38a4190e36f6387d075f713a1a41727267fcc99db0347b14fd0630e17867049791bed5ab08cf5cd3038209b311a572c2f706872860b30fdebe856f5b566c588b8a44a737aec48d80f86adfbb83049dd2684f7daff708b3c2c6917a30f0847e6ba6e3b70cbd061012eb637e9da7b100964f843edeb60580957f994fc2368d94f9ad0aff52be261647cba3e2f3c5b3c615c6656e280d87af32776285986ad30f65294ed78eace2a711e686ac18bbd5c3c3eaf1f988246a1182e149a9a5a48ed1f7eadc2bf379bfa7d07257524e7b04ce6e5ba1575b564ec1731215f59451a5e3bb8204308b8973011a06a692b78bfdeeefbfb3e280b027c1740552be5db0c39748cac5d23c34214b831e32a98c834dceb03e8ca37476a16324d84741e454c202435b7960d9486163969a6208ee929eec1c071e17289f50b0864d77a901a55c0ee3168404ee861dd6863f4e992afa568ae8ca68c78354b62b8b4aab79e75e379bfb9d1b1dca213b124c3454c44d908753d93d05c72e7512ad825999b57410376d99d71a933d4215ba7b8744c44f3d2a2b6698c161d014062c0a28126fbd9e26dc4970e6a7e586c7989ea61806517fb0af14184e9457f705b0030ac298b7c0ad827f5661eb7a7e4806c2e63b97dfe8e152f47ff91cf41a9dcb71758140ba809765583df14b772d54c4b60064e4639e0a1ff8927d37552b7f4d6d8235933ebf684d3e1c9372978e269ec58ff94a78da7983399adb55720d6b11f871404c1cb1464c77aeffdc2e0c0655a193103f1d6950c25fe448689a55dd1a232282724d5d2daac1f2df6702089ea304f0f007722e9fd980412b86c6d09263d99ce8841f1e76b183ac113b61572962baf02e55d89ed501d287250a35fbda07a48990789a24ae15ede2fb4980c16c15c5bd532e2f42801b670d34732289babae7b8752ad0f4bceea45ff3d9b0838172fae815ff1f3957a61133d99c0de1ddab6e9bb326b9e45a824433afc0e6ce6fa1aee521c24eb39c1b29d85920559e5b498dc755e73da0d755ec30cd4c27469948fa8c728c9c77cbc5a7e209f1230d4787d376b8ec0da83042b66f660ae683f3aabd9a39fb915e956f90baa88593b2129707087951f0cf7784a4cab3d508931263c22e584675d5318402cdcd20a2c3c2381a7df6bb4bbd8904f35fc2ed48760385444c67f9855ffc7abb0c650a1cabef0fe0fd61cfbd6e144c5d1338f9eaa1f630bb5d5095561163a8056c3bccde8998a69e505f7ebcb2ede7000c282f547cbae0efad759c421525ce3d679bc3edafc507e76635e165abb92d0136f715d7e405fa52ec6acb8d27e1042a7af999a723fb1bcbd18e71d551e19ff6c0508a2ea9926f03ae3d80cf1bf4d855a5b0760c217b313646cacd8ff1d869819c2a008211087b2eeb4d92eb55a7b488eecefb6c96585a1420db65d8aab6ae0b02da2f7a54b5b9437fb61c004faff134def15f0aa7598affddb9b30eef18a4e5ed37a1e11d1c36f9ab45fd5d16fa2b6f0233372828aa9e5c9f64e182085db36a9cd5c6880f4b284292050ad8cecdaf966b24bdd0265eb92dab6ffe8b90251bcc13419ba93e08772abd543f732a371d592fddb1145ec49a62ed25270cf830cb729859f2d2b2cb4300988e68c8f4c79a24e6151ce0c388e21a73393ff9038074a736b4f077e8890b54f34305368ba5316d2d558295fca66221ee0322f348cc07553d105b9c504e261f81036d5760e72c63262c6d81e32ceee234576a6ab44e1c47c0dbafbad0a5afcf5cb27314784596d9f68244e007cd4d46c0dd335d05d6f83a15c83ced3fd921107f741003ed162a2546f5d9a02b414416300b7839502d3977596ea297ebf72de04b25c9c26da05cadc33e3246c57ccc21c69ce8067bd24963e903784a14b29afb0360e46fb9b24ac29fb75f4b80affbd1e8a96994c3fc33c5ea1e015f6e03349b4f18a44a2799af0b0de17f34ba1731b8a1448d0738f373e1c38a27d5a3ad1553bdc20a3521583a8ec8012e0806a57d821daab2d63cb3d3b59e2c2b52cf82da303b0dedb7a43bdcd58dd2fc44ac6a6dd73103abe808e783edeaf7b9ba02807a439f2752d6c2b5ea4c9c3ac98624e29cd5d0b4054f272cedf9dbf261c7c2b7e1651f9c6414208d2e293b1cf8f79ffdc356974066d2f9a9f3f0e94a8f1e860c8a7cd9b775bd795b3aa13331f15a7e0a21a142b5855232f8a66e4d7988f33cbba1554c83d5a2195ca24d51f768f0d8636de534afc1cd585598bd87771ae6c3b58802dd4a8143628aefb2e6ac4bbff9f4c5c2f4e85abe482d51f6db03e7e272cdaed054b7ea8a4b1068f2485d5bcbdd8b310daa5bc55db1efa39bcef5861090ad1cff5c76591bdb0407894ffdd297b9fbae3ea6efab489736d176aea2f269d9a531ed0673a966b37a3dd5d897a0eb730ff54ddabc89f0d23cbb1b0852e282004560c6469e67ae82de56d5468a082d254c4e215bdbfa418ca4a18a30c2181727c3f39d75478f628ea59a31fcd0c3d29e833a77e4c326e9c78d1fdabcbcc971683c2885cd046a3c324c852ee463eb58e036c0e95240e6a7d5fc65b109bb8e6e50bb1f65f02b54e15aa4b294eba242e0a3c897a429ec8643de90ec9fb59a9bd15e137e4d62da67cf087453f582d2b21ed17f9a810d454eaa5d8a120d236225f9898bb5770a8e50d4d36348f31fa80990085a1f824a4b1e13a3216a8ffa142d76b7584e76b54dc954633d3c62bae64ce61bae2f074eb2dd03532da8f8a69820ef47e8b2e693618739f679571e500b3591919ebdbd29a1855de4187248d6a803cb88fa4a83b89b936cde2067786409a1d4255c46ef1403f7c6232b8405fcdb12883f8defa29c30547001f690f37917154e44388acae767f911ae1cea31d0b7124d2596010a9c1fc9bf58f8eeda998b96f992874443a074058079fe432ccdd5bc38678dad70772bbd557030ace6d1c776be65540d5be3e3bc1e4d705155b317fd2e25c82549d162edeeecce7cc1b236df4c48e1ce00751632ce44273d3e03ecf067f3a2dd1fb3386959009b8bc0d257309d7afb7837c03361e54fc4627986a2dad05a7c0f67092dad69f8b0368949dc85b26d1ddcdf53da7cd3b0fa88e4c7d07a63587f179e23053afcaf9035b135d3f1594761d6545f60f08e8006ca6894c681f4dc3d6d8c3494aac0187c029f36e6408064433c043aa4391d2a73a4b981120b9e4b1b46b7d6138a69b925a111f2a55960d1342752e06cfc00ee31ee91641655d7fe862a50850c6d422baf1cc092e6883cd3fd935f6d5af1e55f00a44adaab267fc106089a1fce0e1c9cf75672432c4d8d5ff07ac0a4669274e61ecf6cc1d8949a56118a296a7875f44c3a03ceb72773909feacbc86bf5a6d13c57fb0cbc931a4ef0b8c3748e935ebf13fde5d3a14295eb7329f8da4d7511f0f452f753b39834a3b92574dd97387639da4eb4b23d3c50a5edeaf30df78f8085ef41d995504df3004ce06fc0f4c91abf1d562c26c5d5be10d4e0d993bbeae524e5d081bd82b534da3becf81bfb3bafb5702f4112fd8e0e6722739a851077d4bbe36f17a0fe7778f88ab20f0e63edbd34f71b746ba8723fb386d2601b0f532872c7e83301b9f27ff632bc06c3c80f6e42ecffb4c610f36064e3da97e4f8399ab5c645bead6f5f2cf29f3ce36b2aa00d251c31641c82d6dd52cfc5b845ab84200de707ab1820084d39336c547b6eefb1016a954f63cf33a94515ad4d5d30ba3f2a86ad1c528d8b4fb9c1b24bb7dcba303e4b11c5a9cd7e5e0c33ddd1742fb0ac90d2889e06bf31044612a27fa49fd4f3e24946143cd4a4a613ddf7594d783be2164ee673718150e85f63c06370485c698781a11939423974f178e62deb7d708c74548335d2e1bfa8fee5225fc54c87122a24baacaef7b1e8c6a09cbefed373eb0d8d543703b35ece083cd84be481f972b3f9ff0bf9dab3f47da2aaa1acb5da8f2d7a9c70430ea7c68d012389f5a5ad62c9d9b99fa9526f05d902a07c41819b12e8ef51e023cc52ba8b40842ac3d76d84063254aeaacd0c5103f73d0a52388eaaf792d6a7cd0e10e406fb950df51cdce29f85ffdbae3c2994d0ea79a3e2027dc1f760fd5583b745597ca4b5e076db0af600e99e8f3c95625223fb4ff674a8c4ea8a29611c55ece77646a77e64e761a593ec850697ce50f4eb007c65d4451985dd1f0f0be97c9a5c645dde1472cf5ea88b3f198aa494eb631ab3747b4398e561543c0b699ebcf06f5efa1b3f90e667aaf38776db7f57663da6f61db139a6c5d2f46e6894e365e058bc08a25121da72b46242013904e6c8df679f6696afb21104a04b46e84668a3cde0fbabe873e35caa9fb435ec45399859e549710ef2c34847cf1f18e8acdf32288995e47240f86643840b1e18792f64551fab16025ec08c13de5e26764522cd9a2c64ee8b5d88b4921698ded773563e165fcf5fe2ef02239663200c5a813a78745d45dc26b58acd1f1bc62bade5bf398417210afb5000f7d2fd6c3917c20e79755e04b788c4121e8fa1accf3e9e42f0482b610a954c40175530807113be35dc335e41fc1231c777da4de727677ddd00fc29d206e9d6c2346f38984c0dd39bef8f0a2a1bde3b598c1960bda592e6298a5f56b8d9e10fe3250cf966b5e2c0aac6386e30fa231e8c75dabc794e6ed1ecb2ac87f810afebed630f60b96ba7869ab8404ad9717a98722e0a783d3de6d1de22f037106f276bed8e45e774830b5cefe0c15defccdd3e48186da4841e74b1b4877651d96cfb8d9ce6e4129de41101ee9d924de54c8b4bb376a7690bb4bd734b13498d8cb2b76813d29d0fadc916defc120a1ef4a6ab024bf1d5a2bf5383e09bfab9743da097087e5d3bd2334326ae7da7d4709082cdf0f515b687f166deecc2f500589bc8270f1cb4d35a4bb5a2ada886d8f824fd2f8e12d15e2204eacf9dfdc2e7cb1a70b82fdaa988fd35563b87571e2ad69c28dd1064fb889374f11e3ef0a18680cb14a0f81133d8d226b232797ba410cc2c8694776cca67672d218701f2d9108306e24d925fec7cb1fc2af56c2f8d1a83f6928517345a117dc133376f5f31b13cd13c2c5e0891de53816ffffaf31642499537da367e2c774258749f2d277776c0493a539f2086128b900b1595a8bc21026056117e11a3ee46cb469009defd4f3ab1250b97794f6ca165d8c65042c438393043294a0a874966b3a0a852a8161a91b1fd1ebf64189e4e2f86490c16b43f88ca489a2924867e0eea8a14e72f9eba8d4bf5fe0b842f69dff41a9ce7c8d88cc39821210e87aee16151a39b88af6f4d1973f1b2603284de72c969fe4b9fbe889e427f59fdebf5ec378c9bff54d5ed6064bf0f9d9e8a2f2f6f44a1b7fbefba32bad585284adcb1983eadb9aa7bdf7b4209bd1b0cfbb6ea0c9038c12ce4f563b54f9a4ef7a0652044beca55ae8adf045b7b60199e84fd939a30ad1c47ac18140be96565bd70dce22dc2d25f11ed81739b55cfbf7202f2acecb22fdb2a39096cb2d9394bdb7a2d7a7ca7f1d76e74103af95937f82d9750db1927ad773da3bcce72693ff4c493ced0d6545b52e407a8cffa33b262cad1476adb9326437c5565e230e3bf4a7cde95b18c9c4d7c50d2c22b545045d13b1664c8bd82bce022510712d3f98aa9db0c9e4e4f8bb090e1894949935be5cae187e106e1b1c0c6a1cf290e36355a61b06ee5b979a5cfe2f3aa57addc390509cadfe45a490db7c2e4bc754931592438a5d9846be954455640c0bfdab789a0fbc2d8fe9fbf517172e9c3c579abf8ffe5fcb332c1660958e55a1226dbeb03e2443e1b69d441fbbacba5e7491abfa628961cac457a9dcdb61f815839bb6b4a7e3b03d39e9903615d943ee2e5ecee77f66be6e6913ba552b9a4b8442a0d53f89b69b1584eb5fe209ee88dc4de716ac51bf8e3ae4a0b1ab405aa3d050465f204aa0e13992492133dbcb8f98f4170626449c740ee89d7c476c47b4115f1dcebcbd59c3f249ebfb98b5a479ac429756dc36dd494fd3defd38359f3f8f6c8905f4cea3a8e0edd6d405e38acb01d344efc9f1f0f7f910587a322ef06fbb07c2128714242580d7ef39e7e13536df6f68fde4569de0fd1f0371633fe38ef281936277420c38b798a4bd5e6107c06114f0fd78a159803df357c7d2a65238cb51ff6a1ae2cff0d22f092dcd393bb1ebaac6940f8d30bcd5fa63412958df5e581e68fad6816eeed175b8b2716fd767b82527cc1d405f66fc61a26fd1d96ef0c9c8bb3ab7951ba66dee81db3c1666a0b09a4ec1100ca902b721778ef5f75e7fbc8c616d7cbb341b2a8efd1a69f12273d8f389eced2e9fff4e6a6374b0090c6d6778ff1df144696ab8fff558503ec8fa55162405e749de2c1aac3d3dbd64a0b796e1d829855f38141e956fbece52f5bf6de40bfe558bac8a291b39f1e24b8475409448ab1f2e2fab82b3e3ae866089644e741ce4cd9c2b7ad8265551b189d9f9e2889cd867831b1bf06232cce19ab209f3d296652177aa6b8ff3991cc2bb34dd124a296fb5b6c894e9cd50fb3bc532cf5055640b19f1302e4f99d51180f371f77643230674aad195c03fec5683d47c24c49005d547cd22df5bc867b582d8df74a6dc06e91da712a5f7ebb530f2ee53e496a977f9ba8effa80fb2c57730a0249a68ad724bfb0543ca10f6265350bb0cf01343fadaf19ec33e6455c1184fa72a03f6335abce679d00615576c988f51ef9277da6b3e7cc061318764b3913f6f9193918b46164d134dfc4d75aef16c1fd137e99179f3c8e6bcc38da3942df8c8de67ec75a27275feb729d329d701d7c1aca9d13b045ce68d3030428fc063539e4cc758b9fe10cc72707f8c474846acf019c0e6922bc77f3bb4f09833b40d895d0a5f9516ffab634042381d0cf8a4dda955eacc241df73eb0ebdb61f68107c38badfab2401ddde9998fbb6323f84176c5db75de3dcce11cf0f4f334d487bcb32cdfc91bcd37dd2efb0f9eb212c982bbd83a21ac71a6a796aa97809f09be9017cf810047b75ce007c763d199806909f09a3f042aca0dc7f88c1a2a1b783a513c5d946eb21e0499669a3198155865b6caf9ec44481460e8c390da88c983a616679435b50e5426c294ab09421a5ab8a2eb2031593f003308b62fc5c9e5537af19ee1f213ab00e38774f0be8f64ce8d376c6a02fec840d35f585b702d821fb89df0113fedbb6f9b12f50d1050e54bc92aa464932f09fce53e1f8d6d322a5a9c964af616a14b07862d2e9b00c67881d4374b30092073d8a872af66e7cdaed05b2495455753b50ddd69a5198d4a7ee3309c4a11e9599baf10fa441489c27199765aaae863e41dfe2207da68e689e85502b603855d89223eeee5d4da1492abc866d37d33a7d1c04f35432d6a18693078791059fe6cb3bb32d6bf912a08cf4574234de9d42fa881fd60b556722226d93fe4b1801c0305f8dc4920d13b1e05462088b015f9b1316d0d3e38dba7ee1a067e00ae405a3a0c0e454b19b2c6cb770ad502642c7653a857981fdcf94ef9ff618c7a56ce00006e309c0dc933e3cf52e386f1ed753a67578e99d7ea504d0e91aefb396ce58ac211f1c576b69c5f27372b1e76d76bda8dd7073620e8cf4ea840151db7b2f7112070a57df77b7e6a47d2438a775cd2bce1f1d1ea35c61fc40e4176b0c953e883b9d2b368360f59cab540f22c17a892f04fef7bbf097df43c9b54779134c451b711f05e9f6493bf564ad88d35a23f0c420cf3609b1f629887856c95e39a9c789069e67d1ab9a16916031ecf129fd07e1e5fb0729ca3269966959c675eedab47c6d7d1a06ec7e6edef5fbe57a47f8504b7d80211c100778cd5a05ccc0c1b127d370f4d1131c6378b7de1d8d8a21e80cc6d3719f0a1cb79f78d4d40de80026b7362b8d75762e7cbc5c551b4eda040518c75872327b9686641534f577acc0d156b910aab68489422afb606ea5420e6b51434e3c9ed1463f62d688cb91ba9870c71e2dfdf6c73def3c307002aac9539b934e021f88ae6bad38f5a56c3007116797b38a0d7ffa6f01303e1db86708bcf83c92027b950af92388a50f22f91f9a3bb3d38fb8042647bd43e2fbe509f1494b48dc9746da265af5fdba6feeb319ed16868203ab819c84aa11ff9cd1d53f9a40f5489e8997ac3efc70540f006e06db47aab653ec59c52812f18c8839f520efe700c91ce34996cb170e1e6b406c1de7bf293baa51d2f82c846b82cace10d56d336e06d50408bc41a494fc57c9edfe81944e485706d7e36755c1a6d3b4ba5e217edee96233311dcd0ba3335668bebd5f8103361b0b122e271a7e80db04a982ec037a4269c96b41b9331359a12199982d64c4e9e2b4515ce62f1dd2a44ac0a4d4636852b7b4f34ab80b67a743aa5a8ddfc01ee29c273f29d033be568207ee4bf621d94149f5389443034581f3ef0330e939c201e7e164ce648ae9b0bd30d35603269cba8322cef25d900438ca8c8c6ff81a217c773285f7b4da64bd0ead3e2b623d4a2e11e5a6f928ab4a67f356853234d2a0854dbc405a1e8e17bca5db776ae498fd88557aa6d4cf53b6774cd38af593725aa9e8f80c2c5c56ff00670b59f492499a5283357e9743069d1a8cbc87d5a0316be6ffb17af00aa5341f5b003a433ccaa680fbfadb19264cd7d0f182c7afd3e8d4f67386cc597432ffbf0275aa6a4976b47ac7c3e8ba092d9dceadc7d841cf97ee61826cdd359577fa973195fc42dd0d5813ab1e17a6ddb572ce29e13f73e8de643c912b57a1d4354a2c50819f8b6834b27782ac4173f77724a51b5af932ca84cab745dc38fbd0eede5968ce490eadf387575ea4193cac07d4a8d272cc9285f4b8e3f971ad52fc6acad02c04f40ca135ebc7164de580d47f143d819b6d0a0abb8042102d32497f33a4f53f20a384c34b73a2db878e76e7fb16165cfc700cd50c6a1316280da3fe18feda5a12030f396905639f430198931de70449f00c57a33c85741fcc13006daee8449940d16c78282dc61706da94db89b75e7f84acaa11460bbe4a5bc17607ca87e81b021703650305aa756b64f7c76a3e51ecfc51d065474eb9e2669d0bf908b759662434d574daaef3e39ee91bafec21b6654ec9192c033a952957f23ee647be585a67b9c5e6715c7b53e14e53eebf7437b6a5aac5f05f64ba70e8d32acf2b167276ff12281df2e740180a044bb09b42d755df2cf11fe5ade0c3aa75eb4b9a3c220a1603ede767fc6a6203421406b62c2c3210c801024372081880d14b244099ef6548ecf3e841ced2ab499964294f16e541fda7b0ddcc4839a1219ef0a80b722caa25ec4a44d4631ec96ed0e93727e165bfa2ee2184f55428ac99957b01afef52bbb3c5677dd86dab6b9812cb18033a8fceadc6b1eed926281bc80b61d822322d0fe99ba3b9eaafcc87ff6db1862b75030200466121b62b0470e1d4696a21753b7a357c839f09f91b4172a2f169ee7a7aac32200d386eaea91eed7b1b05aa440ae1f7b897b119ace2b4d33fb1c71cc4f62a0f29d85f0768c0be46c9806c80c16ab50414fc5263d8da389714218c8a66ed5c14a773812ba094941c990c76abf5be7324b9c29a13e2ca6a47ec265f9231b34ff4752f8ca9ddf4d3f3019163f538cce89308d4bab9babdbb019e108490dac0ba15f9fba4f226e5f123cb842e6da5c5e484310d06c9a9d9f7f76a2a7e6639a04a14dec7f79cd2495457331101e89b8024999ca7901ba517aaefac52d5f99494e03dafe38ce3e7ebb00f07a28f7b5805a66d2633fd6b395d21c1d4e4deb1ff4fdd1336554f230f79771e07f2e20297ed510a2aad47da02bb4addb895e0fdc34745cead44645f1261b42c9fcd679d4743df735b7e476bb5d18ac2331b3ccde0790dd8c5ed0ebdedb2f434ec05c72d53d11b1c72693087b59f3e8812b9931696b5274f74be9f08705bd507134e1ddc6f184f6ca3b4917940399257530d015201b9f587988d582d6b6712c8e6fca792055a4242ed1732f3242deaedb3b588fdc9b5a2856d13c3be742b1d6fdfece080226b946d303aae880b98321d90a8ee19de0e8384cc0db27236737a4660f450997f4164331bc7ee2f4f28054a105bf0ab3e6102743fba08a34e1a6c6e4eb01514956c09cbe36762c66594bdf0a70eb33bdc29d876e38f6fcec0b0b35bf79a34ecbeec85e3d228678dd845421ce4dfe558839a33611b635017f60c8e5447a95a60711a991a9e1576a7cc3a7def8970b012d96f4f41125dcfc24ded61f44fe894737d8fdf879216739d1b603f1e0547087e67da66d20d71f9bb3d0bfeac1ed5e36d654438308f58fadafbe58e75263d7036bacc540991390c0f0342ad3ee3684858c153bb94cfc9a32f39512f4f329876d68a403f8c4e678e71e2aad94366130f83b315eb228675fc51fd4a88203fa47f80fd449035eb2bebb6f8d071a7cf1daa036d856cbf46c864562871eeece3ec8b59ede72692904a66599b5ec528bd2f622dc222804541071a3c39a9b7cd366db20a494c1a684fb889f848e618daa8f0801ecfc1a8fe4b847062c6b772701b51f8407f7fa12c52f6a0d529a9c2a59fff5e33acfa692dbe58ab0d861e1098e121092cfbdfb288df8f7155207d3cc547bbeb91322bcc851ab1ede5e682c89a33781303b126b6dc2c6623846934394a3794da9ed03c60b089f37875381f13e0548db77fba6534bb00b43690cd2876969ae39e866ea0d1c9244bcaae63000d67b045865c038ec96a25f3784a60ccb3e22a80c4b76232b1e20f62316433124840b78e08dc054ebb64ab0d25a8d161fab8748b006576f8077f645429d02c3c17120f2aa844975b81d8fb84be454e3e127a6e318b07faeb6c19ec25140cf810139610401c5cc47a3b29bb78c2e0ef36e1da5e54f0d8e941cd9daa44f89a58d2c01a96532df3bdd3896d7bb7fcd9bd1b3160135f8a5722e3d2ea38e286deb5cbfbff1971bd59d5697cef3e432ab73d623de866b747c7a406d957ef2d019f3345ff3b25b302e488c556aecaf395a493614821188b30b0eb1fab2ae0b9898a5a91b5d80d76cb6ba023b5dbc82087ef32c2620ff0f05f5c4f93de21a2940eaf50f73e7305d574ce59bb385fbb7dad891e0382893898c85a7ae273edeae13f02a27b79be774af56ca5ed4052be913089b936fdbb82802affed4290b3f9fbf5db98c9b0feb88dfeaa726f5f851a75aca8275989a6bd7314e096d08c89d167017626bf838d0408c3730cc125faa7be30c63de2d89b9c3ca95a71ce4cff43269e745b5d7b59cb7a5cb38584a26600cb4963027514c44dd3250a3ea7c893cb2bab59701fc56352b12adb358565b681c73726bece7c9b80fad25546a0ff3b3609560c5efa0042a157c26045822986202bba5a9c57a871bc0622e130700ee01f0f22590687199dc0502d3c4a0e53ab0a87416cdbf6f8e806ca311ae62bfddd3c761172ec18abb548264f6cf4154cab19d9ec6e8d0c1979daddddae843bf38474563e6a7dc394d83f6b3970cadf634015ca7297e8b288f06cc5c7116649e499cb7660b9e88fecef482c1dcef59643d9c581fac127a986eb45a27efa325d75d51e4094bb8865b6f121c74f8e1fb33719d7faf2eafa89ea5e257507e40795cd64ad5c3630db666b6d72c38abf5ccf86568a002bb3872fd8113a258d8ea92e426773cecebe09c59505ea8627f12ac2ce1b3940c7e4f9668e20a8c7ec7cc9d251735486d56a024c83edaefe98ba7c08e9a6a71837e6a355f57b5fe127735a542f1116c69123202957701c98ce32d6d5276b2711f447af31fb64429d8301f555303c2ad7743763ae916bd1227d76795bd58f8922ab3a5d3040f39b3041f34b87d0e649e017dc39147bd00e768328a318bf6de13b6a14d7cb0c95e6e768dcb06c9e73dfe373a9d87bbc2566f3c1edd6453f1517ad8fd08ec20f89e2951695a8e2523b4131021a23b4d803b840c5ee3bada6c84961848c2f72eb62fc5e13b78fcf880dbcd2320f2483249782d395580982217e0213bd0a1e702c88031b4e234fb506a76dc20d4d167654238027d7dc0209326036e419308981ddb630c7f07b2015503fefefe2fbfc79b47e95ba222f0524a44d19047f880a558f7d7cc266a662d740fdcf60a427ccbea3901028348ba2126d59c04c6cc1d69f54c045cea4507e29c97edff5e43f21a7fdd836fd0c2ccff9424a94026d2c7e80e536480d6967da837c53489f7d988bc6aee62321b0d59d04d81a941f74403d49d7ece27af69fe0c98a807a098aeb6430d3e0f7e975480c308d7867d49c16dd1398c0ae9404ef11b6e6fde50cc5d339996101563943d1df132146412952ed23c1a7e7643039122b04d138856a4c50c20c9516333a1fbc913a571c92e893a7d5455a6715b88707590bbc91379f7a466a3afdfff399bcda4bdad4c48a3dea4b4467499ead463e927dba7fddebd7d4ff699a5b34dc568c01f50078bc6eb09c8170497eb9ce5e5eb8832822e49a5002a56eed393dcc7dd9894d853eb7b66aec19ba70453ef4351c47c42a0de311a861c9d2d8743950713ecf1b4f6a1c03ed648420199283eacd044c7aa3650b8df217df66a1cb58fe937db568c8f085dea0d1591305d0349556589a477a5d00229564bfc946e46125706820cc896b4250f009d2d22505d105929b4ac970c55afa339c265181192dcbb60979c993b0d43ecd904c60bf2e2de23440353c45d8275e3d6c338264d62afbafb72d3ca7f072a2d2f7cbfee9d7f01a7d897c31d534678edbefea19a839d964f60d2dd48eba878769117343930116f2787f015332418f6f57aeb4a5d9384f4a980e6fa26b8a32e19b4010b660966f51b8d8eb37dbbc070436d2ddabf881b8bef7d36bb5569cc42b7fa08f0116cf1d71623f26498a1cacb69ac715643fe8d034044e9ec5e99146df605083b4601e18cee93be0b54c664f75b8f7f0ff193f685da77e0af2801af0b11eeda1912b75ad70d85c0e78d3a8339b5b8666838e24e7557f8ab48c4736b3aa54234470dbf2fb826ee8e56830d593abd6cd532d9762c62640bc25f761dcb0034b51e9ac175f75370d82616571b61adcdbd4f86f313d1392564aea8ec6c4bfdccd62b429001d63ffa7b2c182cbfe696f0d2178792339ef31a64714aa97d6e9bd586ceadef2a16011b630085348e694df4e185c4cbaa510e77ca9b9a31044eee93f0e75fb42dcdd3f5e197e3927a3a5d8209a1068027a409715b671f857adc080c153639583609d1fd7092ecf64181803929964013de4db3b4480d972c8bb0672289567ea47a6377e352d66571a735d9e8e470bcb93405540254e146883879a3f6bdf57307b17982823e03944a7135aeb98cc1f4e4d0ab230eae945045ec10c90f086acf5b1377e01388100cbd60be66634a89bd203c10cb81de516a77b0b1c9163d6051217b3fd67ef61d58873af4fd48d8be0d7a0a911eff8c734502723432ac23da426d6b6feed73911637fb30d5172aec311d1fc983faa3ffd01bbe7e2bff0e01efae258fbb5ebb67e86f64082ce1a59a363a5575b6f97b1f1fcfbcca33425129f0a052294515ad4cb28228eefe25d0607dc74a5e1545b8b2db744241ec56cc65d69d6fc2fea24c349d580389676ca909f416da009dfc086dc1099a2f9e44999e72b289bd1fc622ae1b691b8977e5113d717ca0095fe6080211399d1dc4f80b35bba7845633b05e335dbe83cfb45730482a267f4d039d9c4c112902f38b598e514ae300a99a9c6994db094a6d95d9db423d852ea3400e99b88a57e6265828db29dfd7ec4c08b7e603d1c882b9085c92012946a61765494b124986287e3fb4c2ddda05a49c03525942bc78057aed04c6ea53d95badd49dbbf8a0b7631d8c5ce363c28bbd92686debdae0dbca1e98598b15838b99148109c630e23a9dbb3ee3ff02c246ec0fe68c0e37c54d1f5c5339f20e642e709177f76100eac8f792878fddff2783924381def08bb6271b04d9a7934207510592534eb38a95b0fd444d20d47ae33cebe311b1004a413513dcdd671e4a6008404ec7cebede43135448ac8e79f30df0eadcc03af8c3b938f34e8165ec56c847162818c2db0b5a31e99d72a0138c5ff9391f90af2b38b77fb449dff0ea7f79c9fc69a1f83c18c3c6ef7ba24ab9f1b786ea42d3a713449587624384c85ffd15873b6f4e182b276b773955f2e34dc19617ccc3b1d64d0ff2b15f6ef0f3544320c22838223bca75c34bc2234c27c05ca48d7eb7a5108e283109dc54176eb57a819c8ceab1dd8416413d7f25510637672acda6ff00a23924f914b0aee39f64100541afc4a61d767cddd2c14ad14b168a96ede62465f5a689b6be0d13afaadaf0dc9bd3973f486df995cdc26d540e05b8fbf97b394b8a3b811746b944cd820f8e1aa320f5ccb8644ae9e4250b94f25fde8e41a35c7f3be2028e45bc3b02dabefc372f3bd63307862f5f93889b013ec1d82a3829ba9fd593f9d3c6c4bb05da4e4d906312b16f8615d600f36dde3cb98885cde6c32b9ffdebed6167a23a03afe3c3e4a6a0940c13df8bd9a9195f9c628d0d19ec1af44867044ff88c93161ee269bad72ba322ad31fecc7ce62b3cacf062ccd40c9f65b45b105e19aa54a0e983a1c672098af8877d1b3e7c6c10c3aa24ddc9685493a9d48f72168d922349ed267435a1e32260e366798ef4b092c00aedba6063c5e945ea4a4729dfdf285928aa1f0cb423c0eea0416a8e01072980f257a381f899d5720fdd9c48dd65f9ee89d3ff86dec0de0faea3090043dcc853bb55defc7d1435cbae65d48b1bb721ad75ba007db9988c56941353c960055626764b7360ebdf346507eae4ab6fb9ed6645020426c15711d7ea06f037821aff0a657597436100cfeaadbb7a33764ade51c6e4c281d4f19bb8e03057f8d4e318f47d19964ba25307dc082f2d840ef47ebdb70cf703b8aaf6a4b620173b08d64abceb899cd192a107bfd4a144bfdab08d174e40d43995ae83ba42306644d49e1e758cf713d4bc3c7da4a1d1ca35c1c0a60eb4db1cd4773a042b6dc2514b70c1447e731473c9cf32da105182df006f8de6f9841b5be0cd54ecbfb6d1261f194320416786b1fd1c0d5c0d9c748bc8d39e334850370903ed154513adceed8292676b8c6229c75e1a21fadd8fac8b8c9f9f229e1c4cb2338e805f6a79ce13909e7d07741322e1ffe3709d9b0808cf77cc71a675e11656d34cead9c553099bba87bb49495dc03626b41b44bc3c25a0641353fe860b7f99f427f4b9e809a96c429a2b57b8d631a865715ef2643299b5bc741194fefcf08d5404139dce7ce7a5f6a9a861574904912e1e24933b4676a2cdb34fbc87878819d22ba84147227dfa3087ead7fc3478783167262a51a722617fd6d98a80750b4a29c7a9ea33845f86d890a2da014ba38928199ef9a6d87ef297a9092d3f03b41c5769db5f31c1cfa80c1ea8882ef362fde9a7837dc3325c4b5c3a3b7c2d62cb845186968c4f0ab9c2d11535f46dc71ee021a65f5ec661430a6c5d51baa33614bbaef422ffd5245ff2ba5832d38f175bddb451abbd6ce38aaf2a284aaad71805206e719fcafae95c261551943c4e641bfb9805c17d818dbd51e678e376e914d33a541c7a8ddfc7f221896dc70486e6146fe4c65c6747055108316b4f19142c4c9f32fa789e1e3fa54c839e2c8b1006b1f7edb9ac4e8548ac868fe4f8314bd381c4037252a2b0672b67f1d7a50af6e4df629da8f199fe267ea1b40b58851c724316fad1d50bf969ad7f0f9432bfbfd2ba2c7681afcb4cc163b8fecad68e7fe668cb80c7a348560253bf0e4f9c7289d6f65f79d76df24012df3dd151c5db5900ed4ab4e9769ca80322eb590c3342122c2722b75f08202e649dd7b1925e20e304d829072dfcece0d42cb21cce99af74c2cf954b758f4ac0d70dd1c5c5dc38c02afa0ba0703b00cfec10237c1fa34e5ebb47fc8d95b8384dde47da69e69d88a02176f17bf38fef145ac5e29f8c3da297ed6b416ce2de5bdfc1414d2332586965871bbb87da30d15b3fb9fe442770fa6c62215b48a293b9941c577317ae5e9c5f7291efb2ac49daa35242741404676511dba72630bfbe464e5e1f858aa0f5effaea500b75d6a27bd05a5bc760bc8f056548bcadf3484f56164b945ea514b78a446c6fe55d28da3a5fb8b2423fedc55ea0518bfd70ee7bfd167b8821e658078f146939f310562b4a8eda08bb2ab78f6c46d073f96787938f73d96d402d80990848c49c747a78c82016c9deef7e406a93675599d34b8f5d93da246cab4de30356645863d3248ac295ff9c74e3243126bfafa14615d3a20ad42f71c719649b648031703dbf53ed813f0e0218c4b9385440f22b20617a03b56f40a796a9fe091633554d9cd0f1e4ce19adbdc2405384c13ae69e2659c91971050d01ca4f4b507345bca45cbc6c186ab449210963c54c04b78e598952ececed64d89081d218d5ac08ad1d41625315356c90995848f74818a959ed48c120aca561d3b7b34773c5accbb0d53c40e8cbea700a23865465360b7e59a3a985852b9eabf0ad23520a8f0b471fdd8d14e20d689934cfacb76857b9021df475851b5eb9cf25fea7965c6614e3fab8a7b84315844844435c613def99b5910f113b26df95c1200ac123d9c0d909f9e1ed7e8bfe78e4753a17bb08c89bd50c565924a76eff9043857fc5c4d959f705433e9d7949dca2ee0022c454af11c00fe15a3b626bef2c8af6ba7fb631b3b94fbf4b6e545927abf1f8a0688cf6ae6f9cf9d1e2b45e1d56d83898a8eb0a6953e8aac893e0f6cfd16617072e07f1932ef79e7df08b701f2310fb5f5d89ebb7315b4c61433acef06d7766d48e1b796acd820242bff0ef1ab83b43a54b1e20fa68266286485cef810b5483a49f806c92f1fc0c1b73f8ce041407e8bb085d371c69e49c0785684f21fc0b208dd7002a5e4cc0d6ded85b227215c1157f711484211c17207efab4446b08be83cc15211a5fcdda30d08ba1a6f8181dca67cce09eb8a0f10587a6370ce3c34f05c83ee823c221b61a014b8f381fd3f85af3a7ede0df1232d9cdbb2a476b4547935a0a6533bc12c94d85a88a5ade477ced59af65e99914191ce701aa784e46593073dde8bc069548b3747cacb2b00104ff94efda1cb208d1c2fa659987d7e9bb7103c92f326c9b17ebbdc58d8a33ea67dfb5460721913123b53e065c417aaf54ff3d08d78e64fe44c6c8e23f5057665b318cf7c16221262d514142c2d78b516619259894cec10a3fcde84b75172098d56d9c9bec8fc34ee5e7039a1c5b8b92790f69c29b726c8984b89f399b15f6e7aa5e66ed661a535ca13ae5659046fa3adac896b57b01305203f8afe087238637c3a3fb24cebc3aeb7d045cb1a2f5c4c9273d96848e8297bb842eff2d6c403260a231e6e0e9ee98c47a7281c26c273b9927fc7827c003da7980b1482ceb0e12df4acf5ed52d71746f5ba46b181581987a3ca598570e16d7be6e0da07d945383d0dc98d3bba4c70004e02e58eaf60a1d0aa6700561a34f23ad3a7fc392827a4a9db57dbe3ceeb7f272b69aa67159afb53df0a64443d7c72470c67a3e8a881043fb3ec1cbcdb6cde4b298e4a288b7c034f0c9245fbbb39c3f8b8a245ce12e47a0230e7b50be35d7cb8568fc1f685f711a6bcfdb3f11d16f12323ad9e960b976bd606e1711ecca697bc8bd48e28da15aed30b45262c282e4c2bbfea7c9ef93967e55f4d557daca5a3a7e481fda15ddf8228a9d22d16354255a834cd15435cfc740a041495b25e545670a9c4f2e10772a98966d797455c86031c78b4d8e35c9c95abbb2d9f48b56092d4a7597169e31b499e53498b02023446e59d0462551b9832d3d4b42a70945494780512e86df66bf7cd6fe55549ccf888f33a39a47539a80c4d9d614f5ba39edd644383ba6fb6257c743b39ad72f9165093f715c4477d86d06c8df310786a99f46ebee5a20ce77ece83ad6e4e9cf4a17f2e48a53fe8f3c9d756ccd52a3c1e24f3f10681d39036cd182c284c4508e9a5fbe36c07a2ebbc885806b3882725483b0ac412689baac96c040f12b6216d7ea040ec28d7e764a9e40628543a19706d0b8d1f27495ae994f5541d71df507b5e34d88617e4343cc8f0b93dd92e295ffe2246d2ecfaee9fa5b8e0efc554c84b75788c89cde5f7f5eb5cac88f4d4d87aaacf2edb88736651ea651267375489a53e1875a691e9e15b5348287b46f3ea37a2fe4b794ca006a4bdee612c93c5f77da661ec75e467c437e71dd413795e4144a3404781a5cd68a099a79134b901b265fa4a6b0afb5aebb0e06a9092050c3214df21b89170ef46e5c269a546b61999c25ac7dff79f699987f3759d0320f32a0d3ca3868a4bf8a6cbe88bcb843ae0b1b7507841e40d6d91ea81382370694debd52462f39a5e03df3e319b930792636dae7c29f479d18bc4f9d0a5ff1f3f9451671f5175b26dea6c691bc4ca401ebf509923a39e0860ac54ba1a04eb184593c190fb6cb0c0791d10810f2956a8e4cb41f9aebbde5acf42985acc851ac39266ac185216a21a4c4c01404f599529d62f5741cea1e6acbeb55c2fa928ea9d57eca9a9596d8c4742fe628bb92c03b72d3cf3574db5020ffc566f0451ed0a287ca2d19c0663b50cbc3ade12fb2553e7b2b6a9f437eccf86e0cafc5982503f59827b63e052c7e2e2c13f08354570a64e1b0848ed5da10cedc983734e317bb2081625c923f31d1d0ec9a81176c7871f047b6ef5db22f1d21ef2e38acba61ae1a81666b66982427b30c35a4517c2a8439fc0d1015828ff7e545c9a12ef074352c285b036fce00b6707a94924f22811d10186562e695ee2960ac82952fe624d06364ec98a848377be836a8f82054fd7fb858fcf1fdb20f3e0ffafbea48d0219f95008d708e2faab37108fd7522d98dcb72ac6ae09ff85849ab74dfabbc46b8e9ebb1dd28a106f36320b0b91f2883f38c93b8d3e396fb1a5e31c5aa97c7d77d990717c5303d80c7d219d39dff7772d22c2cda42c5f2703d1700d2389fc3803ebcb04a2f4ac1850b0af909809094eed87c4363a9e41602961004109d6c1a39520417ecdd0f05ae445a43c82344d79d2b309e1655b01824676af41cc2d607f97c48a2be2b6a1f9cb0d6ec0de4ffda25b6611724922f6e0ca64c9fb4e56e2ce69e025343291a7d0035d5ec149c9ab67e16098927927cec1cb05d46537cf5ef8fc5cfb2ed01344736bd72e26c6b610783988a44ec9f441661094c0b173fe3b365a2f354d62ba019b75e0dc9366f96cb861e281bf71d47baf696496cb226e1d5d005d2e60c7e9709dfcac7bc724eec0cffe28af618ccdde17b8989d081de4f829cc178d0ebeb2bfcba2909cf91830c5b84b63d018c566e0fdcd4c52416cbbf56954012650f4ebf4cdb76fdeabda11316babc315f5d3ff9cc16a4bb87c61778d48a3473a3d2538bc364de13ca89701289e4b13a7625c98e8ad9b0ac061b5ff4a21cf79086737219dcd9657ef8fa9c8dd4377290c650a8d4cc06c8dc69226a62a2fd9c04e64069cb5b5661b5e91febfda829d34f537be684ab840d1611053324ce96468de673bc523837d3f21ca4474ed14fdef89aa091eb9fecc225e066cf52ef33ec8dfa965a38ce68d9b65114d5618d9524ee1f22876ca3f66d5c3b6a27361f24bf8a729c7a5867d5b843ccc4148bbcd12ffa80e6e8fc9db93c0f146666ce19783cae9d06a36011aeec21aa8b9714d80710c8211391a5241b6f1805a1e24e604839477ac3b456c487dc9a46c136babddda0686322270388085e537fa3d19b2bad8348f69dc610d986813daf38b22b4a106bcd6c584fca3253722206f37ed02ed22ec7bf6698bacf12505e2822b48ec3f0f45183d8cb3e584afee97b48e3bd29d0437da536675466cc3094c109a8fb1335ec2ff3dc4cb9f26b76937e936a634b365c49876cf632ffbf303bfa6386fed3a4d20888d31b2812c7f60bd45c6f79646d9eadd648b37a570ed6f0755ab218256dbe5f9560c38e7ae95bc4e65972eae95eaf4fa748f3a98d85b318c1ca4b3e5c254e1d8f8a54809272773252435d55c709707a4fa26f0f78e4ea5825a9e3587cce270d3290efa8a1a5114f7f40308c01efc89a98854a4e4bc2ca1e8e3955c3805739613c2bc5435f957a17517a5115298058c47f011ddf90549a177dd0a2d07770782bb641dba2d0c2660ce1a656ac9cf9942b86b1c68d6d8df2b70e0e19436db60ee5c9477ead7749b4b24ba088bf9b52d5ac9194faf7374cb9b40ec5a7d42482b6ea2cd46e5bd1f27e148d5891f0282dc0435dafce125f9af08b1c0054b1a4e38bfa1729893b24cb9a3d6dbcbc97bcefd294795ce6a5a02e11fadfd6e2fa8f94bcbacfb3daee9e1126c07c57f53ec7720e63dd6b29cc8fb094844d05614451eb5032bdc4d7aac69d643121cb2d2304ec591c06745c766b76a9f1fa76f7171519bf4d1602aab9351480aab16a38b99b01d84ca8f658e744b7c6ca83389170943c195c16575ef8a9841947a38e2627162f3d25f03a1637766bfde1fd803340af136e94c6610f59634bd2aac57029c71de631fe51ff2dd068556fc77dc58cead655638b56a10761d24f13788fa396a81115eed1ea640af3abec4a55ab082cc9480128bf04e73caa96fa62d97a76220d68fd86bc70b674345b25082466d805a818259c0f97cb7462cd7c8bfc71d99aece083db80b3eccefad44d67147aab68480bf2f23f632bd8cbaf42ac914b916d708864a605ad12dc00c17ce0c9639146dd401c2379e7eab9b981ab124d57cf0c7889f400d421eb9dd76649c7292566c691afd730c7f285db17d0605f69fa7dd516d05b8c9bd179786254c863df29fc62006ef9bb9a5d2b8862ffe60e245cd472107c708aad37527e585406a7db3bee7abbcd0744465267752c2a41f53c2203db62239e6a7fdbcd82c5b47beed0870b18c545434383259e769a4fc29d793d0ce9b9e482b22d318c5189dd317fb5b18fe1192df298eebed9b6e7d165c923c61748fa492cb5f309de34d73695fe45f998a0214579ba8691ab5adf44497786e8d7dcb9fa1d3fb394fec6b85f2d347f6e8e7a40140bca2f242522648c21fc75e1cd19c23e8c3875ee3be486b4b5cc263668094a10f800322a29e1ed4ac5aec50a82b394507442e3427176712550ac41de0bc60799e9d2bb2b976a02a02699cdf700fae17f7c7ec97c74bcfd5ccc9a9cc22ecdb4c291ce5abe13d9c136566eeca12fb51024c6049b8659a282363dba468170e381f09987834d6ff65ca469bf03a5c8c1bb5e1b06ef1aadb9ab845645127f9fc1133fdac40e73ede099165f0af78b14d531ae223cfe240963f7274d88167c591e04bf23c5b7dfeef3515258c7312dafbdf54f821428b1a4c43c7533e42e387a9e5e7f27ac9fd3bf67f101c7091d17ec2f3d731df76d6dc13b1fec0bf27a270ad224684410c9268d12fc5364a4ae0cacac743bd522f4b918119c3d0c88db369fa7cae445319ee1c13286e90d00d891b559b89277df8849aa5a84a2ca787aa0614cb75e5d9769654f31ba14e2fe1588e2b25cccc52e15528e1ffa814f6142d02643ca87e0b8dc24a2d856673556e1dab4d36817bdb9304dad04f66745c061585499d27496cc8aec44932a913bc33e3c24b914c18a728d487f03c24bc1ddcbf57c8415889d1d6abb74e39d8e7d5f31f1b6435147d64686c634ee7f265dc0b7a4e95fca2b340d5a2b276b2827772343ae37f2403b4b499b2eebcea1d99e8920c580f59f5cee6d9a69458ad8bbf55600849a45b8f38cececcdce816f65e518454fbd393304220b4dbf1dcfd06512487bdbe27ec40ffe44c1674c44846f56c12918a8269d2394fefca94d33c564e122c9821cf023c905ca0356b455511986341326052ee3cdb0ed1284a66580dd302d81c9b969c716bdbac039f12f9826d3800f1527cf84f2d76660bdce2f60e8f0fa43ade865569f2d1daa3b3451f273b1276c8b1a39eff7885e9ba3a15cd5ef1e692e16b173ac7b8c4a99dcb8094bbd5cdd3dbe1b860a26773bd9ba8f62e65e4e4e6723ee0b57c91a1e0556024361b4ad78d8058809ace0d0f718a6817bac9f28d99987746a1a0d96278c8a34c048670bf75982bd5d22b2439db79fffc1d5697e8670f5f73d6a6562b572866ae9e8f6b23d20d09a5bae2587c8fb819f612261c4711d9c8101f48cd8251c902cce7d9dcf6e4fcc90e9037278f08c5ffbe6e9031584d5b3899a15ad61b294c867ad17051d3e4d69789ccbf310e4f5abb24193e911af521a066760004bd2085c89fb18ee0dae45939e782178c15127f437191f513ef250ffff3e1c457b664b429f91b825b103a824b8bd1757fc31f6266dab9dffac6211a1820dc4ff731a538fa06a84ccce8ca7eaaf8c315ef89d9b6d508ab56e1bceda18f58c858d48cab9533f16dbecf708b9b98062e98af6f230943b341e4bd4db74373163c30675483c0de6d2706182231b928dd729959421370278b02643f3beac71e95194f1be913ea7c212cb0bab714bd429cfd349f6af144329103125e4a6d3dc2f7043c48958450b010ac85a58d58d8543473db5cf448e1ed0f1324e371c3e3b306ace3749d47c4197c6162137fa66a46144ad1d9a885241e8eb33682561c7186f94696afbec2f21453cb8bb2be0238d68eae2cd7dc970756211d3785cbe4af71f38f9d1d42d5291a9a18888510b536ed6ae8bafba15dc6afd98c33ff05d298b64de9afe8765fb588f75afac02ff49cd69b5cdb5996fee0fbf0e48e587f7c90787881a2dd37de47fd3852f2ba21e9b1a64d4c1173155e279105dbcf8221a137c81b37ba93ddfea3e875b594b22eca656da71f35a8515595d3e690dbf0f51f33e64bd75012fa990802f82574f81e107c6c567e42dd153d71660f53dd1ecbadc6b6dc3f106ca217df1433aa37ab6cf23b6c6608912fea84343e7f7e00ad0ea436fe3578fa23504f9a04f498e68c9c2a051cbabcbd8978a69e8599fa1c8ec1420a3047f21763dbf743155c4bab20de8ea840c5905e9c47d7b2df9c6bd76539970fb9d3a2e4f7449009958e3a0e7bcd8aff2128f895e0d248ca356b7866fa4f8b5c21a8c706942ebd27130270cd168f863f8b56a1bf2fade141e1aace129d01f74661f3d56818942c5da005d9b0a004cbdc2466974b4db9e6f1b7abec9b73ec1b65301ef83b6c8ced6e7015544e85e4b38725950c09831f05ebd2882ca94f82288e3ade94d3eea87a9a27374ccaca6b4934fdec221cf98828451b7d886c4aa627b57d2e23fe6245d039be1a45010d55552107d372aef2e33e969b23d3441a0b124e6567e97669bfc4e071885bf1656163a2b64d064f2c41b7b85f8131cba0a749dd77e99c884a3ef18756c2a5e368a47d83cfea8ccfe654788480d4b1ca2348002b23f8afa05dfea94093c3342ce7a68fb7b3f8a5301fd7346456b09268e76f3f575a15c8571902c1752c165d9ec3616363e7d9a5d1823b84c5416e7bfe309341beb39c07aa3d5e69ca4a398626692d75f8c018a43ce60fb167df0a982d712c09dfc14c81a2fb2fe4110e22c703b41d013c7ccf1d1236cee846e93639bbb7b5ba8259cd75c9113dcc8ddfbf26b4f892c2f5b3716c86a2d985b87b0464d9e7b07eded4e176b3339a217a078ef0e6f0444588665035df0949bc36e39886c38e2ef21765e94263d2aebb8d43115eaa62c07752bbf05b8778b11c73cd326e42b83237e147ebe9f37230c591400b6e2e9ac482fb7ddd476848731d832568130925a7e41017b4f9d7f25fc4ed3ad1cad07b0d87814a2632875910a4a045c3be3da44a52a136dc8198812310ab2517d58f3a73501b1642cd26dc03dd6ae1e0d23fa6354ff8b9298c4ecfc2aa95d722bc15947cbc29171fc6c127a0217e329c229e78b8a09f528b2805499f06a0096cf1d88a755767742b66511ffbb0dfda0d8c26a504d950bd5c9e323f9722d421f2872a2d4031c13293e1b7e0e0f9d8c1be9d13d8eda74bd6bbdb7fff8a9f9d899bb1e2a3a62774a5bc963fba9b50e6e5a3dcb77891d7b352ea77d1f0d3e79a9d8c44ed4a9ea8f8c931308b644468d7257c2394dfb2604f8caf2e56f55bf7977878b88b0f6542e36b793442fe7c2aa9871d0391ea9386b0fb661578523bd6e26124e229f5e68640635a448d7110cd9d4b71afed45eae9348aa4c6d5e5c8cec8903dcc8173c1b04a30db8ba776842f26994744c9466af5f7f659876f65f2e2dc63d02fa3fba43252db821326e70b9b2d15a03fcb5d71c38fbf1c3f5a760959140aef48b5185f9a1e554a5bcb6eb5c38357adf7e1957a28ddb0e2f215f547618205ff32351b10d99e1df0b59c69a518875561f52c222284f948937639ce9f3ea5d0883be1451abefce55317d356f290bc409c48ec68226717a9a14da462ab1cf6582b32b9a7748cac8fc93923a793a0dcb90065b8df9836e609667da4eb645b846bc188fad9d8c163c433f74f419873e662312785dcdb8c24287516820c0a03473174ddfdfa5b601dce608f484442d32ebbb4eb63bc5eb70047e7dc0e534a3fb114b0e69cdf8597fa6557b55fbd781e1010ffd7919339d7b3baff7d099ba1c67de30484cb473ffc7f87a74d20e5cd4270d760b3e53a53e6d0dadd9baea6d62f6981dabfb5a2354d5b36a7416a9aa5645238eb90f7fd9c6d31b50cc56ec89e9ca07a7bdbe460515e6709cd3c24050cb5e968dd6108bcaeabe802120ad9a63ab2887f9b3304249d4fec5a89cea03ad6cfb0c9224f62bf42543db57c57f2c639bfd291fb9c233cd09659aba9198d220f6882a69b18b9b2525fc6bb9bcbe35e522546adac03744cd9d258b26fa4809ccd7d5c795c32ca77d788641f5b2119a2d6ae169f66a265502428e5fda306b1baf6495bb93504b0e6aaa01754558524fd63079c22efb7cc7a87ab38d9690e4fd323ae2329ccfed30c4fa93766cae10f0631b97e610ebf791292eebce23478d616437b7996ca22c0e6506e5695ff70e1eeaa6d9117925aba75fef50c4f6ccb3bd6b197513d23bb692ca94a4922f27c2b4e96681c98c8d81aeb3fb43abf33a962a0c3a5f83fba14c37a89e01d104bcd7cbd2ccf6ec540db3058813e621447ceb0b33fc1d25d4e844ef7c61322e3ba7ab89d47b4056590a521cafe8a0fb7066598be2293db5e8c6086788fdef78f582d2c5e4168f0ae0c8c017e6db9d253216ffe200e6ad2999759592b9acf5f1b6a7917b298ab4fab1f836ca8d274c9ba68bed77d6db43fa98a3fd8b701a8608d6d5630c2e0ca55387603ff91b63df6ae664a6c4440535f9ff5ee5c12dc5e826da0e78528e76fe5e7d5f3bf4fe7fcec920c2a41300b8a1bb6d820776889ce28e16eb318301217bf337c6dd7aedfd5439b8d2d40956a90692015fb28b063f42461430a6e1ee1c8075905baef3dc19f1ba0e4716014b3fc910291345a6af5459139dac2041f68a9167f43a88f21728e614f4e6be3218d5b228873cb79775847c8979679f5716c7d98ad51c1b0f2f1fbc26e8d816b254906ccf7579121fcc6b852534fe54e05a53a78fcd836b0bbe96bd4da3bada3653030838e47cf3f609d1517a73a9288e3cbced5557bb504a3f2279d99687bab77e207a9b934d0c346d02406dbdbc34ce1c2dc0bd3f8ff49567fd4390576edbd4bff11b91f4a7a3f3dcf4b882b59f475a870edb0730a55936c474b24324225612351e25f72660105ac23ea23a282f649b23d31bc6f36bd15795522175fae9b8e2c7873a6bde0f43e1927ceb7c752c40dc7f0b045c5ca684c11edd2e0aebaa81816831de522d523bf7e50505162ce2c84b20f43a0fe4b1eddbe8a03e11a16fa59dfa2df873784d90ec2f1b6343e86c99cf7bf409a872cb5d07ac56f8954c7b0ed43c8f551d1552ea327cdd0050c72787a6d0f0dfa1e5be7742e0b1c68563ca17fa342b25df53e287ebc072d940029417dbfae3cceb3da0b2202bca57a4eaff1238eb957cd3f98eb9c5a5b26e9181b30486b6f109399567db10261f20903822c4f37ddcd2766ab1662dd89845007c36bde0f7046ee13c8b90f336ebd6d66436e48ad8658410043386c94683676b720ce5274319f951a8fdc5017597f519d5bd9fdd96dc51ab703fa94adef3e2bc1ae1d24d2e814e0d05474303d4a73c439a5517a9df2cdd9dedf56f89a12645e70bce107d76d7323ca2cc24d50f642fc98f3bdfb13f7031a3cbeb0df5364e27f23c12db6a53cb0fce89ba594012d794036f4981becf183983a998ce5145b2a016a9f0a879f2a37429ed6d2420cd7bf68f480af8612fcc454b2b9390c7393ccdebaaef9cab432a926c47b19ed8c21325c615eb36961e26891630db4340513851a3e092136582a3c03d5795321db7b0b43c542b9f26c0099c66c84c6e16ff31cf55ab511bff23aaf72b5234200742f07a5ddd1e8ceace3ffd0b6fbdaa130bdc715f9bfcf62916fe569ff336fb7b3fc5120a6c86cacf4fdf899e463324bf00e664cc5bfc9c1f77d89f5949852be454f05b50824018b58a6506865d1c1ffcc97959d5eed436a631eab8865f276c310776f82ea158ac1454719c923a6a70f88edd066c4d20a4e226f02c5d2efc4d351bf6d0690487af7ef1cc572534fc006b355fa3d7bbc3f8facfb2a84e6b97b2473ac58f6e5487bce322d1a6e853d14e2219406e61657bf988815a7ec81f49533d150f2449004965af1a33df18c910ebe2d7d0271111f8a1dcba3c2584270c3bae7f1441a831e0aeb26efeb95c2b16fb954a4e947901b3a00e2baab667f8da498c3dcedff18c4a90de4bd3d02d1055bac7055afe94514cd6e255d071f655b4b2097ddab7672f8f78ce768024d1b415f575fb19b3b160c0dc7a02753651d26b7dcf36a0c95b9d7dc522e3b79adfbec28d2e1824826e1f017cd8dd2c0dc73e3c0684ee00d97492534dabebeb7a5e55bef87df55b42c74f883530fbb19ef56df47ba18dc6ed02e6ddd861755aef67147bc0adfbd14b310a48b80b1c2aba79e980629c5238d063f53ca43487ea8a639de301d38c84fbc719f76d3cea7fd02f7d87115a0ee793774651dfa020c8c0cec5f1ef2c139d32890117ef9d8d6d7804bac335f729ce062554f9301d59996795a6b44ed30c64d6a1bc398ca8477aec54d2d54cde2e5c43eeb6b52f5412bf3dfa0debf8b46eb050ca8bfdc6d3fef78adf713f2a2ecbd224951bfde92ec752610f16c65be6f8070db361edd4c8e3005344735c78708cb3c8cfb9855daf417ad8bee15df83f56ffff80c0f422659a906f15953f30a0ca9b120d3d0e019b41390963c2e0e54c21aa1a5a1a5ecc8c9017a777907d23807d072a4951bc3df55d2041ef478b4c892814d701076327cd6c52ea52331b7341f6effaf145fbee49ab1730a8fd05eaf08bceb485e02d39cfbec2c8126005197ab720b1db78e1e5c7f00a6b6cd5db91dd8d94b1f998cc3c9a5be1faf614b4606be56944457b87662b766ce88c835aa63531edd444dbfc1fa60f06d8f3dcdb6898088de8ec2268aa78b45a84354d54a3eafe77a6fdc8e904be900be1224c5ba4ac1cde9a34f9d45d8673b480650be996c78c44b556e7ebc3b2d9e937c369e45cb225189756bac620581e8e007864b2a18f9f2d101b0d1c66dd59dc20ca293c2c99c5d1e4a9d6d50849584a8b3c7e6d786c02b2ceba6312ab71a22c8603584c830c8c53c7f627f31d061d0f8e9faa82e6ac6d2e8767cd7a86a07b6578c296ae259afa4e4bdb4c8ddc58f56fd9e2d09948d316add94042409c8a8b85a72153c9aa28771ac13f5c2bb6c10aed206695c010f4c3b8e490f6f0c802f9c3ead3d011fdbda6a33adbe2298fe223567bff818543647cc2cf185ca59920b49cba84af88dd95ea3e0dc85c333fb9d337e6e3b0d1fcb730b2416d5024d2a24e25b7c88b105f88f9d757289d4114aa6538c21fbc38e710f42be8620a37ea218e1e219e9dd06ac0cfcc76dad5714e5a50b1529ff3ecc6bca0ecf58a981f8a1222d25f7d766f39c26ee98d3d31b9a25a39e13fc71b84f02302629ebf02ed1198278f7cf94094ddc1279004063094b8a1d3c9159d363fcd07de4b9bc060f813276583a5f023c7b9496a1705223d1fadd6222cc47f19965b1177c4aadf772ed6f767c2ac4cab7b043151cb00ae29a3926bed1c1f70d15dacaf62880cbdb1e9d348ed86885358ca4ae267ce27f98284eb87675a60e917ff6646ccb605147e083b71411ed387bb20ebf1614af399f4b030c360e3a2495ad841ac7f8c5f97719c70c37e784a19baf99b04bffe9d92281a4faf7e4f66ca15158df954cde8ddb306873fd60b51e5e081e0059540a685d78928334e0f0f098afaa9a6d7a8ef5e8e96cd154c946d07e7e598aefaeb50fafa1e10b5350a661f04e88dfa42e8cb7e2ec73ff9913cc7f9c1eb705bcc9c22b153104f159207164c440f41c92d1d54abec091042e9e7b045ed606d33c5c16708b6e4a27888ef302bc03764827f596888aaa227e036a817c4c7da679e26c2b070ce2db9e25637a97ec3b5a68f88b2682c1a7c9e1db3e6156e2840890b687b4ef14ff6baa02dbcd886b11c4d035872b86c00024431df6862bd8c95d307a9d1d9bcbe80bc83dbe6f8eae819b496a863423ac4ff1ca1aa26dc9c828f98a4dfeaabd548a84debd631ac310c54c8f8fe15f40ddd39dc74f2d907e92f81002efdf166c25e31ed9f6d1276c9b020896cd3503d65f2f86f38c44a88801957873183ec6a52fe9b917d25d53ea1b6608fb7e02d944ebe0573ce0e9fa9e48b707cd442426072e19520ee9734d150cad98360f27bf10505a5bc12ab5fd9694754837a4014b21003fff933525160d1d3f1a13dcc1c52a133fbcf4ce67729f8516f14bcf56410122c8f6c848438fdc553c73d53050a38cd77df6872f82fcf5b1047faac6b61ec557a8f3cf289562154f13f3a02f08d2799628ef4391006a72509cad472e7cfffca13c724289309298cbacc9486e906295468dc18fdde54ad1bf3b4972b23c6c29377ae4ef3fd07d461d951d8c5aa3c4c79cf80286bcee98439f1530a244d4ef63a1f39dd9d2375c734bfd5a76d74e81face0d1b00b4a08f2401e42485e478f1cf861096519a84e09e9085a3762309239c569d3ef90c6da61dac92b4268e161fe03ccae6df99353878f9d86d17ce24db2eee5c857fa70fd604509023b8206fa24fd5ba3f43dc3a5919ec99d549a0236a8d0dc940f87afa120997d804a151a70605c5818e9ed722d5bba5886b1f999b8bccd4a0f7178dec4f8947160db79fc8343f9ae47b281f7357d0df0966dea3dee924f24258ca4f217e200b1162e0e72e8a59e10eba61de6d174312b3422cb413b55234603a3d8eb80fb9dbb83d79ce6c221af3aae939c3a541fa73d41fd57ba6c30e664c7ab0b419207a735903c13c7d096d920ee396a449342df1ad942492c5cd681cd31d160b0efeae0b7491a88ebd0a7dde8dacc2d64b906d366c4c44100e6fbb8089bf2f91c5b303b61b60192cb643c60ea1e7644e41e772cb1a66d0d16a8d8c3b300229a640f8600cc3fd3ed769affcf2481d20b760705ffbcebbc2f118fabfc1f55261857223e97484849758cb5e059dd9572fc1d250310d71342c238b2349c8b5df9a039e2cfd17f376e65a99a92ed56745b9498712baf7c1c24a3045f3a8605534bca7f8653cfde0d22f50a760b52d69484118246191fd5689cf3b17e04264e2afd74a416086c6e58983b5cd3084a646e5bfcca9bcb8dbfbb78e678b1e15a47dfa67f4c1dd041f830d866ea6186c8ff273f8243fb289d778b99de3d94a074c56011491d99b0389bd03e42b90d4a3532b507a04707757b123576ddd7a61840d3c1bd02f19f54a7311df90c32eb5bc13702791cd669e18b565c97414632a223bb255cd352548a032b848da066b082cb2d68d4529ca0fb9eaf121ad56f5f9a4b677454c96c20c222bb6751e7221cd154f97d47cdc06136bb4136302c4568e1e6ea44419dd1a4950a815df2a246b81985d77e77af76446c755cd8a153606e5e7346947144cc6c3b510780ee8221da723fcaebfdf0a3ef58d9d06044cf7b0b781ab9ce66531f45130ec01e1a8bcba0b7c652c1e66724501ae2eb9188e85a219e1d316a58305e051f5a5e2a1dcab3f607722c9731a3733fb7821787ef4cfdc7bf52add0b0154ab78560afd5f25fdf484671f9435495c792973e64468dfc377ad2b0a1a18ee4dc4a0fff54056ad492bb99a1132bb80ee6c105527d838d880dca50ecb06145c7eb70acf60353a8bd5f21ee71f32e38083f34b36ac9c0aca15ff7b5234d88daa38bc9edab279ba3b6d0de72d7de5ea6bd15ca33f0b911bcf6d3bc029c117b885ea14e89770d46a7a52d321852d2da4698c2667fdc8a5f236306883e8de76e3eec47c6d986f9bfd452120c1901d61451e957187124f537596d621bf0fe47571f35f6135c4cc7dd9e4ed1c26ec7308b747433f84cb095db6d153e49a7b42c0401c78e723480f73d4b28dd6f58802b534eca460731e40a7881f30f11722a824fef57c3fca8b04d1078f4b1b3d9435650f5722018abb80a384aa6dae868a12cc3a718766ca0625f109423f9f138bb81c072e8ff4f2463f31991912766223cf2701dd702a52cc2b6e964a8e1d48185ded840617ee76d8e984bb4ec2acb3c2bdccdf6f0996ffee26aae", + "0xefd45b4696136558c998e6e9bcb6785dee80cc3a937677ef785096ba06439c2d8500381a18e40426cb54dce7572b8e9738a5ceb729d07ef542c23a3271af824fd0b528d05a6e60a9e0f8031c5539e19f5e1645d582d33fe1c5addd581d381c217eec7bb7aefe62861cf3301d0854ab31e0c3402058fde75e375ab84ed64f6c0604f74307d99ece1df793cb16562b207b44603b1d1b6b25d171331ab73c5bff17179796a592d082f5cd767da8382ab995933de3f16cbd0e0b713aa3034397df613322ea7a0618f08b5f7ad26a3b4502b4da39d644a2ca3489db052c35b24fd0ec18b642d1575682e15149d06c0219c295abbb1ddc4821481774527d64a4654916477d21c318f40bd2aa72c6bcc158975499be7d0b9d5afc52a62339c70926ed108903688ad3db7bcf5612d954c48c6504bfefe853123d13280074974f26707224699aa193834468aea7090892e6202bf43adaabadd0aeb934b375d877112c3d69b5cd64961a4c38fcd0c7b4b21bc31a95aa2321d73078a00015638e4436111f4900e8be97fc61f6c569a2e8b7e611122fb5d800aa40d67a1422df200bd5bcfa032387dba7828115ceeebddd6ae39ac79284c99ce945ddcc4af6e52b14811843d4b8405a60793cb3ee40868c363f294aeb45f69b3433ab3326544d9cc3a21091149e5604a5a09520cd22b73ffb3a64aba9a70b07c5376a919422d5ab8af49ac9f4787bd4ec2dabbb12bdf47000acbdef4661efb7712e23c749ebc71e8a060d8ee22da78265493164161cf46faf7eb09d41ab5c7ef42b60e6c75c2b6575bcc2f0c569fb05988fbc1441b13396cf2c4f864dc2908bd0f59e043ec78081f9ce14a8981bb8bed091dc6a7fce4309934a22a1256907f75486931aa2a315d7a4479f39abf53f3a72530628c12d9f4de1fc5615d163476e1f8d3a99cd09e4410f06d8d720f02cc385ce4ef5de69132cf37c3dca75fabe6133edbb9eef39031acc40f5ebc7c5742f516ff5f33d82b9ab81971719047bb040323c1df55a13a80482fc23867a749d9e7595bee42f5d7e228030377a20b82e968145c444919fb5b45e950e2e9fc1011a1f161ef05d423b9e97bc6c47b18429193486c9247085ddfcfe3cb3cd37b2254919ba3159835c5e2860c5c5ed5f3a8a015bb31af38f9550d5cd748ab029131bac31bf8ba55c3d23a6a2689b282e376034fd316d9e3741ff36cf94fdd00ef2f50d2c54cd03f7575b57c4d6f01ff95c1d19529c00ccc31e6aeec5492deeed235121b21e11fb7a84c635dbd62184658de22906413103036702c8a5110824acbce27813b525ad247efbb6d042e1003934dc903fa4dac8d37a1ab84dc0b0ffe79a204e5f2898355b68e0b2668587a196beae64d1fc89d4445866e097ff344a33dbf4c75d758eefbf43b370e824b100ed1df3558cb280c992290c95e7c893034e6282b3321272ac9d7aa21cd0322d5da644c3dfe3e6861da2b644c37fec13481a57f9e0ff676a255757f527afd93beed3ae564d2fea8d17ffee8b5b168dea197ea47b96b151a731538bc45536d81c111fd8ae26a6c42210016161a14ba431494d7911cb3ba17b8b6caa42765000ee2944c353d6d7b0b05d69c89882e67c2ef4a2c8ad1bf39b472e1aac9412e1b6d9513c73209ac69c9396b97b3a58f935e859c7c942ac587833975c6e3a8bde75952c04721f11feabfa1288f9f3b25c420ef9db78e666a4e4b972fb2f076b2d49307f9f4d77f8f5b39ad84c64181540eb2e350d12074b95800281c613aaf0d8543162921667e9d1bf305a7c0231bceacc3dfcf59cafbe93610cbb5ba3c610034c06298ae0522a178dd4b448bd1ddc28546a26375cdc13fe8fa8026c4b9d722cfbc1585947e0e441101b550da4c5ed4b47468a015edfb38b8744e796db432943be2a48bbe522533bef082e3c6857f3163d3cff76f0d4a20fba8449bd076e2b3d0719438dded8b59205d5eb9ee019d4692056c85326284d870cafe719e7c5cbe1dc254b4c55b72503df7acce185cc3101b25321475727d14e55e51c8678d4b3cb55a9cfaff4c69140411d08a9f697592a0511e8be9da83688e32f5d10187a239b2109f72a69d07c3ea138f3e4768e32dd013d9caf59be463ff65738710ef776c6025753f7e3d84b23aaa544b469bc4b48e15f2f0fae7bf5974392edfa008435754c3f1c0d99ae37e3bb6b29e7dbc86b7db6315f4e01c98f6172f9d9567a7a2a586a4748164385330e66631021f9254497e24094197f481fbda0d84bc36e0d4b7f595c1ffb9fa25ab4f1a857aa95d129639fe87e0f974ab621dec5848baf916ac42bb12020ed1ab764d8de453ea6a5f5537697ece87cd295edb08cf4227456ff7f86ed55ce749d73324940f984c6386e45c8658fc2a4aa5fdf8ee8f6a3dc0d7ae323ac6d88fb50ca5ca6833674b24edd6149fcb1d64b89c646660f9e7164c5f1824f49374050c042ae078d4185ced8b24d7fca11faf1446e78180c5463726e264e6d015a79c5d610e8b5f029899e865797478d599cd818ee14f9e85c30cef61b77715f6167aeeca696b04535e84ee6904b5125f6e187f926ff51aa83c823f1cf8a66fb78fee4e3cc7c2a4851442b1519799fbd3faa49f95f72dd187ce683cdcb4eea8871bf4554ce5a0accb7c928004c600a4231faafbcda844d5cc36fe0a195ccad35e9c031c891376b7f2ef45a340c06bd2528510affd187c765092594824152f657b1180f09ab791a7d8c327c3f41e3b87966e2f2261422622a6dbdda6aa5151d6dcb51c67bba0e1baf6f9d6ca091744e53518bc2eaabb6acad15c652b5f1951268970c448dab9724014ce9ac473a80a782a5a3190549a525dcf1868124b0cdd54f0d40fb2ea41020633ed7e2a725023f991c725af95a36c235a9bc4f7b6bc5fc2d1cd45f63b7b3ad9b4dab5856a4d065403c252de80f916a48072f87a5811d304d887669daace59eea029a7d3b6936bddf49adfc73a9ed7cfa6b0a5a70e2b3afc7e29c179e6fd47b7b84b26253abf0bf939cb977b5d95248a50a6adcd2bca0cc65749fe9cef50efca79b853dfe8e3a3574c76810401a9191ff01b086c65c636bcc35ba6670b3c6920a51ade9e038d1c12a56f080362fdb12d8961fb2afbb3e86fb2e8a9545ea9ade60086465552c2655d9159e406f484ff59f1bad22568573aa1cd84e84bd68c6383e468d516bd747b850241a11a972005dc54e1e7a6d933b7aa155d0c5ef8948298e89ed74786e6208973fbe75cf4a94dedd3965c1ad21292bb2a94ceca8882af1e6e2d13839791d33be0f2c334f2555ffa0db96e47b3cd207ec34371287775202ac33132c81b3847c0a6509d67a1badbfb226fe33222c7fea6f20e75526706d82003f34817b239dfc68a4ee2fffb05a0d3e1f93e298dee8c8408b8a565dcb5acd89f6548e7b87411f36dc20cf6703544f5f218d8ade91f225f294d5b989742af201add84d5d7d6323543ba68eb3b539dc5e9adea5e040b09ba69feda8eca930319a18e8db7505599c91e4a007f9096f82bbbe2715f494f9585e63025117bce9832d4f6bfb134370f35f58a1191bdb68010507159ddd5d3f9d95acdf63679e68124326b394909c9de2d9eece678d68898d867d2d666ad2574033e08395935ad3bce0a0cc2fef9cbaf9191c5ad92826eb50c126cc7c981b7c2bc79e702048b900942d55647a0e39761de178a9191002d1e5b60e5f4f4fecbfda1821fc3fd3b1a261e4f332c7685ac9048dc91717a4d20edf03c50d33a827e2e1052863b6e172891e965b278d64d17cba5e7de68688dea040ca5198e0c6d77364b099bc494b167378bce1e5e63411101e11603d5cb8b0d5026ced96f241f7f89efd253940ef518c539cbbbf104a571a65bf77ad56aaaae1921505426a1bcfd45a648c4ae9a0b73e46f8b0f8ec512012971b49b2728506704f1856912b49eb897d0b5d67162456291a93820c82c80c410df5fb1972653bc910152ad07ecde7137a384f219b39cd284e82aea87b18978cf90e1a1260aff5729bf6fdbb8e5f98e7dc0d872dd1bb262496507c3aa64b3da6de46e2d3047615c22fbc1de2eda34c74c09964cf16cb06ec58f07a44734b0028140b6a9070ee64b3fb13ff370ef532d75834b6cf4b0a05da2d7eda297bb15a1c4621074a75f4f883a4c564d9c8bb1bd0692e68cb54eb400666d34bc1f6271173f3bcbbbd2b9f6deec3ec946ed9571fedcdcf0b2e9c0b83d985e84fcc435a7eeef0e59e5c6de570a665032cfc6198e850f3a5cf9d8ea07d7abf07216364753c27e42e7b9a5a524da889bc56c563c4a56d5a22c3f71df4fd1481cf9f807f384e5ecabb1d84d6c96636a5ae7c784733e28c19897f3c3df12042e804ee1c5e9529f873980fa5075ddbea22cea5155b75ca025a2f90f667c0dce84736a1b0f0e045a5015fb3c1d82eba17dbb724dd4d0c9d79da0934b5197471c6a52db78dc6930f6f6d2e01d0796882cca2cb4f1cb2b349d86b8b522f54c5926e3c33b636969a631a03f15ae6dc3ddc3bbc1653dd833981e573d3bd831ce05cfbfc1fa3bfbc36f492e1f2328d3a02bee85f0e65569be6b7ee6b2c1cd5fc3f66d50540b74fb46e395d7bc87efd8d4c6ff63b1ae8733a77dc6860da12317f9c80f43105000ea10ecf5e1a85305b132c1c33eeee420085a3c5b674398c4bb8e5fab98789521eca3862a7584130e8d16ceaf88eb879bb033898ff5e2c3318bb50760dc9e13cd717869046a5f18f810eecc2cd2415d22b21bea745e6da7db52174a0b5e73fdf0498b65aa5c68cf375d3fc40be2bdf0b10b0b493bc6ac0e16d897464fe8ae5d6dffef10c4c508267e972dc79cc15c8f8226258a3b35d0a0bcd1141659e8ae6a45a2098be7731811f88fc368e6fc6c27c4f50fca147c24631e8e1dfd27578bb3a8b78a1cb64288ed73ec9bb370d173e418b77f2bd75b562e301a0caec3015a49641a48fe9bd486ad10cf4c1c48a542fa54d36042c17e2f8e4a2fd5ac310d9d9994fe5edb9317949a8c8ddfc338fbfecb3ffd17a91c30cf0f61a27470a1d6d9282a1a361fccaf7d874dea54062d40bd82cd1f1b776968869a51d552e0eca31d2b309e74ac249d195fba2b5567cf1e1d8e515225e445abfff74d840351faeb70eb58ddff445666b73dfd437e2265d5ea712ae54098da9b0540971a4b2023a46a193155d564798fcd1124a9b540e0293e63a035b97a52d6bf01e53c3eb3d885809109a596210b811c5009514f2d0a4040fe9d26f00ce3f976f7217e1e04b3f1cff40516be8829008aa28a219e674862a295c57adbf6cd8ec01ef15c9291033f55596e45105d243960e26ece467dc22f157c65d93cb1ee6ba38bee646e218eaf8ae656e6f23c93642e75ee9f6eee9a63a33e280881e9edc6125132faba6816b72fb6ad84a8bc210e715d2c3917746be5af2e80d52cfc089d7c7ca174ca089c260cfe6370c84af403640c0403dd7fba49a6633119db9120525cd3bb503a22e75f68344ef0404d46132f628fb432155fdb5c50fa77bb6cbdcea9dcf78ac545fc3192a72b023f117cdb22856b9351bb7c65c4496f4df642479d6bc3e7ea97396e4e44c54f67ff10f9ee2efefb264c162f6b580861b21824b0d30758a275e19f1a12784ff2ed3cb1f75c2a1521268db539fd8bc77137dd27d5351d90d04b61b129be3d6a19bfd57584aa53821d99da0ad4a51e9e591939902c0271140709c78643ccfed45de7ffff2b6b4094e95a06c671ea17fe511e9a20ecdb3f801b583d28eedd615da4800ce8c3569cb1301d5832bb4bd2c889b64dacf7f8b0e91aedffc294797122544c81183fb14ec98bde4e7990e8d4b3c22d374234d59b2792caa980c2fe4c09290478c13385a3837d5383c61ef6e2fb13064a8b8125ab3224de0c0bd92438902b68e3222b8b0d1a1977fbadfecb13e0a202df5a1efdf2ecc1003c7e01770a201b3d47dc627e47463af2d373e0a1add6a47a4fd9665cfbe1b4197ffab82d9231bdff24b026d95106f05f83537416126256827ef685223f88f93a79ebcc221e827ffe84f44e1b6abbc245d0efc60b478151a767a6bff6939759e3ea4d98e9d3fc8bd561298810f9c2c551a20eae133cff422345cd4ba43c935d1efd87738da7271150382a587bc0c2b92b21702d273ecab726975532de5441f224eda10e81515b9bc5a14e23facd4cdd6ec4253cafc54f1f5027465e4995ef78c75379fc3c126c850e875955b239d66f654f5ccf1cb19bc8f500b23583eecf9ce809dd198050820cde0ca936f3858c35db9fc276ed172555185bc8e09c5451a061114c7843b3b1bdb977fcfca580797a6ad25da47712913783a2fa334b3f3a1facd4966bb73f7d3a608a92452c1d1c4db09d045b206d304cfec19a4f7a3ad86e3dcf0a100ee8a5a3250f5ff98086b87aa669397dd5bdb1dd27aba73bfc1a811676d2b3c9ea38d6593332cc30094c9ae81a4f303f4315fa657a9deee3e4f36b2723008dba0bde3e522963f0943202d6ecd672557a8bdd6fc93a07c913524b21546da0e80ef1a90286902ec2b6d3d75741395e208c82690f2026cdbe5cf27c1deb6a4dcb460ce56707c28e9acfdcdc748b0d94e46970bfa4c217d4b807ad9df9543cdd0fe489e2f319b58aa64868987255c23eca359fcbd35e8276f8996c940ad0513c96b1e8688570608af98f07d9acb6a269f694efcaaa3ab2313199d1dfbb1f33eee49b53358458353635b42870008efd9c3aa93067006540b97e3e40f89042e96905c4a8a006f787790d78edbb9e587f7519cd78526bfeae1e5fb6b6e96b241671420071f01c24a565d698d81fdc5a27f11db7bdaac2f1888feabbd191f4c6684eeeeecbf793f7df6dea62dd5bfd86a34df93d2d9d06a814a0ca64a88ddcdbcc1b0191ce77c74170139ba600789af731d01c0694c4acfea500f10504309fb7e7826443c4a32ba02464eaf3a999be469068be7ec6f8517a42d152cb86865c0df058199634ec9676136019780e46a10bafed21b02723da80954019f35299f7a164a94a93a8f3b605e6704a2b29361872bd7f51babfbe627d69de597384cfc39b02c2301435bdfa596153b95a325f899e1aa6bd51fa1eaa896c4ea5943a9595dcb143ccf1635cadd099ca939b96f1b511350acb2cb72aff0d2eac8ea91b0791e536ea529305303ed71fff5a90318e3e00ee9e369136d75a56212d0e7fee0a2e9a92d5ac246208619fd64789f731c984bcb59b73dcd09006df7a580c38d518e9a724516209bba1459a996db209a4a0bef5fc618e2e1ad10461befb3ed082ba6f85130f3ab9675dab7ea824d3486c63bf6361c2c776035b1a6c19f54a8b02d940c936a14260056de00daba3f7787874de9b4893b4c6c744e29114ba78a0d27202992f56353a4984512e4f5b7bdd6dacfd55c01bc5ccfaca2d23aea22f597805ec1b3d65ef6ba2b6687d58d301b68dd53c92dbb61b9a817703a0b58d9f70bb02e667596f1648030a9a229ff08f77305539813b2444fa2620b2161d56f6defc70985d8c1644d747e3da1b66f860e9798652bca2515bf552db63bdc86a74c06e520c2ff6a597c6e209ae22c216486c334c9cc7f1760360c8cc941e6f375722fc0cb0759a6d5b542d5d08d6101f46d9f463730d8cfe37cd189b084af87ad666a2147a5170c61f3fc8fb09e081ccf5557940b2faf59f4a7e69fb29cd71436dd9466c316133c3199d7f4b784552516dc5db4ba721f04f025fd408ef4414cd5f5c402c35058556674ede0d7bdf4f141500b929887dee3c3134751e33d0549877c03f9c8a8dc7c579451e10517f4fb83d092eeee11f54c800e56a96d187c0667ac8f6557b5ca5cef50a7ba9e7c7ae1b6824cdc631f375bfdf2f5950f763ce32637c4f33dbfd2a118108de19884a3e5decae642b0cea5708f3dad57ac85222519932b66389ec17c3a9c2c00871c6e6c3aa1aa5da6c710adcbfb50a2d22eab73c8d14f13dd1a6222c51d0c776a057182e269a13c883de3795c8226203768915a20815864db2f564dce09cbd85507f355fbef1443ae7505ffe55861ecfef200ca255997568ac426b9bd97ce6adf0618b6746694aa7d0c21b0fa0d6818da44b8983fb8bafac6ba41a8099001a863660f9b5a9063fcae7263bd1fe52e29eeaa22fa0e307bf7226aff5f0386b3bf175d939fb572fb99e45c0f9de190239690efca0ed8a43f0663e211a7b3ce5313ec2d9481fb310e34911fcb8df86a994cd10c86537ac161754d8ff14cc7c63cba3e689da10ffd51552e319f0b7ddc612dd5b55c2df9c172a5c817f4a18b3904ff5d9c5e86d32731d7c24c055b2ce8408c00c1896594d61e8c4992bbfbfafacde1da2dc45a47d75f6bb9ee3d02bd083ab2f1bcdaa770a1133492689532d906ee91ab2d386c3ae1411407265f4d43d5455d4b3a5f03d0909c3ac0843123e0b6bff81d66f6ad8bc1fda9a1f334cba51ddd3c4f949a6dda177e50aba1d330fce1f72e9a02da34fac6135746b218cf2171ea7448425b3df607f7bb93d8c1be98f6df04357daeba85d9521c90405aefdf401f1ec6fbf1b0b08cb5d520c63cb5fc61d87b12bcd81f5f7c0e4d5ee7b28898105ec6a539c265368cfb8cafe0be04b7d6384b988820e368ed8b118b367f374867e7eeeddd0ce05b6e24e1f0d9991b1b44255d70ca7dad4784b6e3f1512a61f4713b89780c650a368c3c6bd8254a70cd9036515b3010c802b34d14c6684aac7f8a2e806d7e76af42ca60d2da0002fb5f6ae6f9d230d3a1344ae94639516b848e1483308ddaa3ff201f2b547c8ffeb9febb85dc7c8c334acbe262f2718269977b6277ea4adc8a0dda0887432ff1322c2c9e25b46cbc66fa588f6de3d1e68c595c941a72b753ab53b932e7848260b6d98dd142f036f6478bf43667b98c40488115a3e7813b48452cb5cdfb11a0ba2bc9c8163433d3af89fba93bb9688e1a9f8a7f091a4322c80159675db7781b080a086ef553d34ecd3deb7a4e70b6b17fb9339bbd6bdaf32e217d95fba55b10e1462af7c39e5b4fe21123ef920dc046f219ffd56b70d99fecb8a1495459ee90c664c1d20206096531200c3574f575e95d3fb65e268ec9771702b07adcf17c64cb50e8805c0a512d53e134d2cd4a19a8fd39e289faa7a7f952d9fc44059ce31526ccbbbfdc455845af9dcee34977c47970df53461eeb646ad557b7b26d2e13528657dcc73070790c31b92fef161ce10476d79ca1a7d3644096dc7b1455f4929647b7f098020fc436e256524257a8afb50db0935c006a005eeff3c3e9cf15fb2fdb302056c1747a2f551d55e4eb5cc324f284d58f87ee041c3b4b6f5981fd7a88039399b268e8924b0958fa157d1784cdaa8b3f6013a531243945443adb9152c6baf30c6e19d138cc324d2762e2d8ae14ae0276c34436bc1b44d36aab261657badecf2ee1948848b19062663e4c9dd09e4d976054df28cd1da2eeec3cd70d741efce1399aed07d75b3a97663bd1c6cef66653a937974901067a6c3ca8ea8a2724d3966a09fff9ab008feb78c5400d5f84128940100774e98a37eeac1857e600536f7f813d7edfbeeab08b13755da08fd2caffd703c0138928685ff503caff26b7ec8144b0b5d8bf8d36f450efe0eb3f26c6db66cfa5e0dada5ac9b49239c8d15f44d3fc223e599068fbd36e56eb36a0647c55a8eb08ce48a80c44e8980a09d12dbaf5f58a4682c9b73a214f4ac02abc49935c9cc130e034fc2b73761ecd0f05f2c510030e3d2034f85db3fa78f326edeeaaae05ef47a073d13c4da577d124e5db91f8f80eeb504f3929b617bf662b64a1c4bfeb9adc32cdac27e2a2ed1779fa3768242f4a56a7cd3f2f7676d8bb0aa3083e0f18da66a97f67bd75fdf65c86607eaaa40402f93a1578b75988a01b8a039d9a299c238703b9c9f9892b0044b24ab12be25a3b2370c1b87f54e4e2740d2f6e95a44ad5ee7821f50e6402c4e2637e0b0892130a976f21d503c8c4bb9471a73935d838c824114f9f832e3f342fa1d5fe53d29bedb133b6ff348d8588babf3fd1dcf443f597424f1cee1903f211b8bd823cd55e3db5c9b7fccad72b6889789dd1915b8929b24e223916c552561f6db7b272d94ea5ffe58f2499beda4b794ebea8f3caedcadc543ce687c4930a39a8d9bcfc6f5eb249325c3691775e97294a71ec9c0896aca9a207b2e05813319a9d4c20c638096f37cd72fa5dc1a451377dda00e92b70f3919b5f136242821d1000cf3b8950cb0fd14ad6b4bf873fe5789af10e5894a90afdae15849227749d61df322ceca3a7afb425c467148be470c104014b0be335a881376d6bf733e1d02674dcfaea3ca01c13f92ae6b5b6eea78d27298b13044be192ca9fd8316ba5929340461ce9683fb4c90b2ab617ddda423c37de2d8c71e74e0b74590d08ac0171f69b7e3e044713502bad9cc3cec3ccffb3c86750bc5f464248953bd825861836eef4a56782e72d424aa489e2ecc40933990a6055b86e6c09c7a35abf9dd4730098d4716475a6a061d57ab1215ace7be774cc38bb3dd3a14376cfbdfa74867deb37f3ac86edd40727dabc06ed1533308f6feab242c3a5ef452dade33ec41d08481e7db3b35515ffd8fd5e2f008a95db4381266865f72ba68ffb5d3c573735c764cbfcf7c2d208a8c8ff5c0629592d529739f2431c277ed94e4250ab90f5cad2e6933d7f2cc00c289e964a1ada53ce0ef4802e04f646dfdff4c9a30bf43c2725b247e06507a4d028b5fa002e8d7c61ae8df570bf7d987bd2da456ea6503af420629d495458347e5589afcbb8f545f474e1c5f05bf1250713f6f799bf16e8830852640811b04706e0325e776303751dc6c62ad713488ee2c49c66dc0a02fe4f8535bfcfef19cbe6fff2d26d8db4503aae0fe351f788db014c5a564f2f943b772241e9a7595a17676ad06f9acab809f25bb952706c715dced7d3798a4a5f975ad1e247064c7d3fd9de43a62a5fe383809eac2786a86bc2a1d4bc89b86e201d84640acb13dab432e89df4495ec86deb846e0ea68837d5e84575dbb6061daa84b01502de86a887cb5bec84ce83320ac0736420fe9d7995221a321da8f9d29ecb2bffd66a1c704f2605946ec2ec01c63f5740b14de02104e51b46bb76a777fb5bb0a251b2e98007d9b663ef181f4cbc5b3c621d2f28b71f1f16316f5a92ef71899f637efa763a6be645a80515c85c98a08551dff78c1714b0a734b7f7e38d936fb909c655d192648691b97ce7fd31e8bc6038b0082bf110b8a6d82a82159bcb7a714196048893ca1d797009522dfd3e8fc66438d1aa4770bda367df24a5d529269c1c9a33d8da6fff78aa76e1a8a627e6c0c74f69f5f12ce0f471dc6255ebfcb7798c8218201981d05fc7e1902f48e75b2c78cee17d1ca995be49a06197023d0711ea5eaf109633aa2f2d07e8e8b10ff8cf31edae88c7c4a6e486b44f2d34c6936473859afba9c352c7c59ee644e4e1806fd035cee444446aab825259c60b637b4bc60be70841c327617cc84ee69780a670d6038a9cbd867516de17dd510aa7159f68cfb71660b8934ec488203eb4f271c6eb94fc3dad8c3dbffccad20b249940fd400e19839a0b2998105558c7dbf5a11958a9b47d634e62f3842f96d0432ea8961b8f7e269a46bc535bb042e2dfa0df8f8bb41d2083629e67e0ea871ac293925f295aae539ea21793a2d7f62645d6f426979d8d4884f494b1bf783628f449fb807e011ac8f6e621c7657ecaa6c8866e54b10f1a87320bf807962f012e9b0e07179279e815889792542a9bd0fcd7c3547db45a97402d1fc17d1a55672271971a21c18132374f738de0fa43b53d15a2e2e49ee362566901760ac74275a8a21c1e07cc9c33a8d842bf8ce39a88cfd9eb67e41125db45ad11b4365c9a01d850b3b73e5799719cc3f6d5f374ca4af2aca3be99d33fa75114c57b315d8aac270e78866a69aa1ca148166e3843124b4acd56febc4e1b30a98e7cf6679022d3886689a8c4ee0f2a45af7dcfe16be3ab0db03f57f91016edec60abb07680b8e8d953d215c5384feb2dd76c1393060d9e8e7a383ff84c4666e0a04d8270fd5be82fc7a499bb7afb2355b0e58de2b8f824bc877d5a49584a0e95baae9f049a5bd01b272475844c0ee00bc15a94b824f775dbe53fca742da955dbee7f8c022ed959fdca7ff4952ad08cc3a2adfba5749c442cd607cbd0eac29951cf3eeb17546e5ea87dfd8064f550168d837de793d52c8e6252e7cc265251d1fac5eb6269ebe09d1e01d4f98170700bb4a4c5c407f818b6e0837c6fcf497818e18c1015d596e7d5e38cd55decc4760adadbcb89f7938a056546c40bb05a667eeab3165e423cfe5d7e44ea0fb7fc3cf87c115f95d3de00e06db1bcb56f3485b6b01eeed95f894ab90ac75a40998ae5c3e0c565c7fc17fd3ef087d7df4c283a8fde8503e7956c90d064a6ea44f3c024b9eb87bcac56febe461cc63c0a38ad365050f28621c19736c64de5c2e98b5819a3a27e64d806591106d41add273bdd5862f64702917d025b96217d2c059eedb44198e301c4bb7126b3286754a3c0f51be343b63f826869f7f423db1ad8cd80b4d3d184aad1069484f7aa439c2d00d99805c5478047c4c9151c285e860545f328b7584204496e91021d9b788ec0b28d16635355025956e7147c5bdc962a83918f62ef93b369dd3fd42d0e87377f32bd2a9d4011d88f2dc9fc7f471e9e6168847a3826001aed01f6a659ed20f95d56366af3b9fe0d753b3ae3d7b25fe2399e5ec9f75aa86491f713ce314dac7cbcac6aa9ae997321df504a60fbe6d138eeca9171ca03bcea875b797f8efac3755b33f1cc83d51cc7571bcc12d6021870e4e9f7d6340501dce0820b202f43b634584e032a50bb7a010436d734d06fcc8abfbb4ab467b8513f4e1833a067f00609188bfe76d1375e87083e4640a542fcc98e7fad93b6b51a41d8d65ee86c22ea734dafe64b3b75727aa41f38a3ba4da687e30d21d7346dddd15c707e55123bce2a81afe032cc39b06d7c7e9084e8ee40e1d7fd1151bb15b094f4ef87450a4fcfe9c86bb648c490e8bbcf307698e62e323250b3c76cd880bd1d9711f2b3fba43f16967c566d5f723f2e9242d404cf9c595e0115f4e66cf0c18098193ce6fea12731c6ec5304b551abf2a3dad955696c86ec05302c16f7208e2fdaaf68285323c0195f7962459fb178e2a1a97a822fc2fdf00b3e67c3ce598928c92379995fadf91fa1d2df1c0c24c618083fec003fc4f7c7655a8292d37a2c758347f9075108f5e65865469c596108d9a0be2beba7fb20a087b1bcfa4fad85f8bec176dee6da8a179b66b9fa9f7786c579f57733cccd19d5bb1d39cf1294b58d4b4fff1f4194c2e2533781250b6cdc65d9bad2e8c059f71918f38357019573764aeeab74c17d5d5454b885e0a50a79fdeede838be3d1c273fd3303f8a31c871975561246511e4e75c7d2d476380b21b236a69571157ef703ad868c6a6f8a4f110d73d2eb9e303a3e394c22fb1c246c02ccf5593b4fef07a3bb0bd186ccca3d8a4fcc0be8234efc5999f842182b1e448c24e2df577e91d64a6ea4ea9a208256f185efe333061924b8e37fb1711d7f6b23ed468199deb43c51494fd4535812b4f20dee049c261f73ef58380b9412eaf337036c59da415c87725c00ed35b7b206c8f2fc192deee86070700993750be8c38cc480c6b0f799f8ab15c27ca5ed470bd7f11754b0aca69687eee6b0868964193e2fe4eb33470941e6a4fa277fb7a81ba0044ceb379ab77430c8366a52aecc03188cc530d0acfe0d703a697a4085819efcc9f696bbcdd58bb7be5ff1ae7e69e43c9da6bf2b4e5d7848aacd67c0f11792ad68d913c5ba0a242dddd1177e2b40f61b8bad081b569c93393e34c17706c5093ac556a32c08b0b8a74115d1fd817dc2b709823da52a6be2c2c08ebf59901ba81d25968ae5d1a87556dcceb9a8e533a93c70a6d718af8fddd30a9b803c07562a47998c92daa7afc0630e368fa675fd5fe7bcda0f30040e72569e1681d1c9d5dbe6c92089dadb0dada75229b3cc3fe66a3bbf1c66457865818917e6282eb0331e8dfdb5be94f050892a5aebad2ea3dca789e2451d9899b25f2b7f263de436a0e898756c88a53b9b51774695a63e44c8c6c6521cbea09cd25474c7156baac41742f6794ebfb20cfd38beeb75ec7d3452c9b175ea917588381de1fd5ec494cc3dca2cae724198ebdb25c744e972bd2f5b894af254283fdb006acdfb9d3addce8732be89d56fa4bfcd32b482ae4dee10173198c034d4bc98f461de9fdd273c7abfc0d40d4dade4f1752e9462663882e0c6c1bffbaf2dd9f498193dda6ac6d06fc9cd411283e581dce21cc5b2ae115c1e158c6a70a98d4e0c1d20a11596b7996b0c46ccc353042d19a2b22632435a50292aba7c21e4955b5df3f62ac7e37f7dd3ca2ecf2d477c9b8042db1c33a7b935e6a8c71b3de5a887f228900e2fbc06e3ee3e1a28e91dc113ed423662ac1e788508e602053cb46b777118d60d94e117da4850b3754a92cc09127d94aaa128058c9ed60f3425164cd17feb24c383d3e3d3fe4638a6a9809bcbfaf37d150e407329c36466d92fc6f7313079cdbbe1cc7eebfdf7f9d59ca2af3d028eac70ba63f8219713d1a03d7be23069749362cf3961be7083dd7d40ea8ca755aa8f4aa9c86dfee31df247e73ec274788931bab659e6d4dfe4ddf1e6533c9054b2c8d40226d17c0a85ba8415b814d843fed2e70141cf9ac642872fc9b5cdaa5fbfae96aa3cc6901ed8f33b6090969dcaa4968d4995c0e79e217cfc92aeced2e82dcdefe89712f452d5b807ae08cab4e87314f5032ec017a55cf254e454d618d67e616ad2072047166af80dce267a0e8ee6d309ff3abcb3d60c322a22b3fdde8938dfdd56017dc18300f62606a32e01dc55cf232fb104aaed541b71306c610522916d6122e35b72097bcb53cfe1b8bddadefba19c85cc165a5f9d80ef1ea326c08b650eba19111166b9e3843ad3a9d3b808b9547aadad9c7cb93fc0963f67e4ecdad6927e40985d60047cb0b786d9c5c64c63b8aef1214da39d9aa64627d843684a03947ea81011da472a39399fe3aea0d5c6ff59630a218babdc076c0b211af9aae2e04221395e209556a4ed98a6f53747a2ee22a62b01680546b4ce67f5880d3b9d74fe7afa019c01baa009ffc511af252b845454ad5eb5c5ae666527078b3e4f1549ccfcdee34298e65c5c452860397d8b7516789c5b5148fe0249819390088e5af9e4f492466dbebf2da8f6790771c15d784a746883a4cfb3246110d42b4b6a3434f69b6988f01efa84f94da8ecd476345dd8be6513d8a45ffda3258bcd61a89efe05c0d873a1e8a537761e68b7601d12fa727d4bd35cf0278303b67f91e7a145c68b0efa1fa0ef9f145f22afe670fff1e41f6db67d442e45ef618ef71a78ac0d44a9600c610f0b1bcb3d673af564fc3efe0b7ca7b82f50878c27a94281ff7f8c2ead1ff2c819db21217992068eb12258cb7624019ed254ced5539a2f4c6bb98dbc49b3b13766fd0d7ac926d8d054f116a1bee60dd4515b90e423089580ce9e8ff728eef3fb5d980ead47c8b6a6de643e9ed737f635fafe572fa80fcdbc4a1a44dec8988683e60fa82b10ba6c267f880f76b7d84e0c15164098e345336550791257c98ddd9b70a83378b4750909cd1fb80a80d288d5dac47dcb4dbfa8e007de95f215568d427fd759ecf4495f2e3622ded772427b9ec633d3edd22813e5f5781b7e95d6d10508039ccf7c6386314c2d1a2df7b7e5eacb1e1d9baa86dbd32c912666496c07f54e7bcebd9a7f590d5fc779383d26e62d31e1c734a09e6e269d19eee806c73121208d965d2fcef7d01748fae0475281d210985380a66cbeea5612dd1834ee75ad88a4f2664c3544640581147167351ed4c273d895d041bf4fce3c11af321e9e6f719ab0f93d3e655c4dcc2d116f030be7b0567e1e0a57eb4175baddad62989820bd71f343f87048e0f2fb23122f63f630576e03e328aebe173c0548d3e612f71cccfab47823c81a9d65c0c707feee7591738939aa3115394ecb518cdb943071b5870e3f164035ceca4a815eb35a427e7aa58c8567ea00635588d39893bb4c5f0f5754b27c9de19d40b24f1fbef0b0ef58008d62b913bdc36cb78a8fbba8f141959fd081d41cf68099298db7438a42078d52c6dcb7e321e88f4c3d47b9188437f7b2cbf544fa38b8685f1fc72cb8b6ebf222d916139c97e1723dfbcb1afa0888bb4cfba87a16be477e488c65593b2222fba67ac48155b2c58e6617dae82e6e1f5f013b0a7e7a3b743bf926979b782f19533307b17f5a192d3e55ce65c9356a0906418adfd90f514bf7a489db81812aa11de9353b5cabbeb5e988ec14f2e4d9f8bbcf78bf11c7371b7375f5a2f17bc86cbba182d29885a47e44fda5c2eaa07ec344d5a49568a6d9f65e2cd5d091720993235bc17d970890af980f79fd1fb922e47ce66f21f77a4934eec08b3e05d8aa13cca6b454995111ef2311678745d474f849aa9a761226eef07b6bec39f546604b22dd6e070da93aed831805d888965e431bfc087c02c17a893fd13500ec486f7f9317bc552d9b39d932e4e79993eb3529faad8a6f0811fa2311422e49ff2d5a582533d196ef15c6e813e0b52a5e9eebb62a4c275eb505c9243e3a0bbc4a3ffd629e5d023242e604d30fa0ba1dd22845175c8415ad903b59b76d9a22773ad6e08d3eef51289b2e0c58c1612fb83ce5421f691239930ebdf94c95470088a5228aad07933e88d6b0b1b831678c77910b0fc3a854bc9dd67bb116fd245f76b8a943fa95ff55f96405ac38a53c1f897c24359ecee91c295a3c6c8b549ab0b9afc72d9188c2b734ca1959a0773bd24e45dc6c6e5bfaccecbaed57e8d617523d62be66f079e0e1866b90adbf08dc89df805ff6959d0f5d6d01a855ab7f4a4ce49b1ac17e884bd752aedbe9e4b8a8bc8694ab6199419afc87a3cace174ff27b00487ace016f72ee8d662eb366f5e3f241087d9da4728a01eb5af513b39e8c50dd6bfdfb252d6a5c41959b171e5533ab43a9c555048b9b119c4bd5a8cb8544e135f1eb1cfc3f74df0a77ffd5e8c4e1b9747cd4fcac54357a717a0085ee4ddbf4ba405a07796ae3c19ce28bfb26c48a98ec809955b2d9043e9693595f6ef77abd8facd6d5f40da1cc3bf7118a3cb140447c42aff8cfc4ae610b01b68ee3cda475cfaa69f8a912d5a6411b636315268038253c1419e2513d0b2351c0e7a80caebf05e0727e3860728e9b4a63279d6482cd9e0abec06dce2b1a07ed50455d937ca5b2f92cea27e6a94b4db5a60b44d3c0c0d26e70d816aa31f8311fb71563aa755acb58e26d5b3486bfeaadb4f48189bbf66020829128172f85f169ac5c63d7d06d388c1caaa3a331741ce849424dec54951a7079330f3bdd2aeb2dec16c8c1c0ef579b58e32d0ea923220734d1a45a546e86baaae2dfee235797a0a9d14027242876200a2d0f18dd3f4d7ca0ae08eae15160aa42b0ce0f37d6c0125e953ee0b0e15c33f736bf07842582b5f8d9fd320d49164b6627b65fddc70687a9f87bf4caf8c12337419b2e1ec9bb9ba53b8e2db1e84aeb529694f582355c983f4d71bf79d1d1035e3a63e1ee5b866154a8c71d47e554cfa7850c3ef9a08ab01a5edf242d94ad029f32ba00ec9c84a1966138907ad0beb3432be28b063eac8e6f2348d54495e996ef1da811e647ebccf70579669071c61f6029823827ebb11d1b2673a28b170f7975561ae66a5b05eae14ba0f3f279df87d49579542268dd9a8409ece318ae1b6ec96f61d524bcafa2eb33cc28756f3040ab18f9e753bb470c2ed882eb49defee1d8b2af84b812dba269989ed11e86133f72ec59c3ce305c076d3cc789c5461c5270099d3f639f0e475d21bbe093cb97aff1ad93dfb7e05ac705c493a2bb7ccd87b837a8e0db24e29a1aad4bcc6876ff533234c54e7d34d693a2aa82d1d204dfa23001af4938fa85a73f2f7dfaf56341b8fd1cb0bcca743677616c711e764912f4ee3d776cd9c93912d7e0013e7ccf883442553c7f5d043845f28e05c274349ba732f427e39f81d20ac05d8c62ac15b3bf04a8f2361a8e6af1fea424fa251ea23f9041cc18eb7e3b8ab5f458c9e3e7d391ca4980ff0517af35d88c79ee8218c4de423ed601250ff1e08e00a115b0aab196a46939300597c088a050f4a4e83891626c0c9964dcf38695939a29e96bdb45b0460c92ac8175a8646fdb480674670f4e4ef4ceb1afb71f93fc56b4b0064140c9d4d8a7c45a0947dd26ec6cf229673584c5c50f6d8a47f7a7fc058d80495c83b74f0ab3a5c005d186f54b1b655d3e71d292b65e25f771da53eaa400012b04a6eecb6b9b5add8f4cacbe5353aa05e3234b3a9c9efd87a4abe664c4de6a045b7202dc20645c6d9315d6e238daa2f6121f7083af19c5977ddeee8ea9fc93b95167f9d8feb9b2a9ce5ca0226fb4182d8c2f2de4fef89fe58efef7b759b30b26be376ff26666a425f8a3e195aaae23a16d8fa26054ce3fcdfb28990f91624761a2498730e4dff781534321f1b1d79d50656fbfa99a0eac1d748ed33b5ee7deaba237afd14bbac31704e65d933e01a8737475ac84bc909ad06af6c0ecbd2ad917d05031aec130cffc6e0e24169d453e0d7f3806c5901058244e3992c71a93083ede17978bcda18203088df4599e7cdc4990c6e763a4af40daf4c4dd42078f779292c2db89a10d6898f70bfb48aec6325eb91fc57d9b70c89b6a1a3e4ee00ee529bcbc6e14cd9b3b9f218414ca9207ead7b4b7154171bc13c8c34f40df480851024b230601db158cb137c7259e6a65789204f8ce1716df1f2ca78fa2bd97f398202e4a41c6c46aeb60abf8c12101cc05c214beae95ca887b67ca95e228624f241578381bf4b72caf5e870e212d716a60c60ad955f51c4d8fffb3341c31471ba1b9e9282d58661041ab7056668c5e3301b84a8e322e9e257663b4d237dd005cd0396b07c177fc70ff2e53ee36cac25e20e16a163bed3aec65622de86878899d62b92bf9b349e5ccad5e874ba04667e5d994401e78faa3e2a7d6ed83fca0d46ae42818d5285ab54475cd90b34ed4ab096216ee465fd5582c21879dc677f234d4ba1b1aa40ac2f22075ceefc4135626cd49825da2fd91b6526b81f366066508f02fb117265f9cf249e387e2ebbc16fd76d3eb603cf240e4bf7c6eb72c39bcae588fe2fd4d69e3afcdbc195cee39d59a115720c48f386c9545e1a35c77149f1ea852c836bf9bdf525e06baea6313bf80edb6c2f80ec372629682f35bb76e33a7025ea8cd585b921bd49ce8bf3631d3871ce4b0a99be5cce5cc007c4ff39e568d8b4cdf2aa691c684a7951c9027f166d8f772e56e109083e4e29afb39447bcd3cebccf6c16b0fb1c0752f8d89498dc73b973f470fba58648738a7675158a705b7d10d7b441fbf4a238252f83385d231315d22193ad856bc11139cca1af03242c26d3a61ec6ca7cea933a188a515279a5c6ab4fb6520cda3911aa8aaa362884d1df4061139b0bd059292183d1b09e1fe7a2724b38f3ba424bddada7a2b17ab0aa5204d630a7e884adfcd4074adc5ec3e05bf1923e745b5c58e43ddd89d0ec67feaadb8275d1d926ebeb7ed7c8b81c3ae0fa0ab32154ee4443b2a3a99d4580a3431dd83030d07abebf4468f4ee3c8b1e5c1fe628aa9db0a8ac9c536e4b69addfa2ef543bbe76cfc0aeb1312cb5cfa6d7df750505e6b65b21ced323be5f08e58862fbec5390eadeaeb6bdd4f2cdacafebd37d12fb6bcd89ea6c2f0cace2d82155b6f05fae517e1c794e906107f01c0f16f37009ee5fb16294db5630d3574d74eff9a1bf219ad535677ee14984dedb7e14e85205c26d37269eb2254e60083834d7f6055eccc55011b136932ccdb44604dd6d6b9a486b23632774c6f9e7dd39027a1ea8d70c2091f809fa9acdf96e6bebd62a815909d441dda1abfc41b43339ace61ee9f7cd0a792c7e73c76959a41a83ce188c488b78ad9d6cda947aafebe556e95acedc00eda76cdc24aa6106e754b1b877618d06c718e27768250545c65051bc5eadcec0015999ad0c1f6345a51a5084c27aa12d41a558fdcf41ccb92ff05d0a36f550b0e50fdc667654397fb560b7820f5d30cc3cfba9ffd544adf537b41beb40045efd6cd5aacdcc510fef1f5a4571a6b343fcf853f9381b55e892388bbeafc371db03dcb99688c460472cf50eb16121e2fb3002cd7f76452418257b8091ddac9523630345ab0559867dea8fd30fd69906bcf687c6b291c37bf6b410cd51d59fcded7878d6f71697aa941ea5e18d0f95d543c0fe5599cbbe60889456c5c45a522bd04901b5f459d26dc6d506319ca58d298d8e636eff7ee532f07e0acf0596be8710306ede4b3a98935592ab6ffe0ff58abbdbc2df400c9a5aed5da5576be491a7fbda3da6d45fe4a8ffe43ab6a5cfeeb445453902054b61de00e368ce9f0a761f09b87bb9d6515b3e7cd1c7c4dbc3ac3de781b9ca0f01cf286f0842cd5588f1bd1730b07ca1572b2e1ac4bbe71ef790b38b03dac939272184364c159dc655f0bb382dcdc7f6fb1a642873255f0d9a659d56be58f8fddd3c82018d88235fe762b2b7b66f4faf659fe746f6383ba2b14e47d5e00d01c5766fc08276f27283d2d4753a1e344aebd5287054f592a1387b248bae0e33837310f474d51a9729381b35a47f7a34fc2542c07282766b913f774cc5c658a58d1e4483421c5e71868ccbaeea9795dd6918fa5b732e1f8c625b65d8df6fd5a464e9c21be1e77ccc32c6ff6c61e6c976f281616651eaf9cd18844ed155eefacf5076eac8cbf0affbd7a0ad643cfb582dbccc7a8370afc5330d1ceed1d31567988c8666f6be54a767e7edc10c9e94dd13371ed8fa3b8ec30cc67e4d4094cdbec93526498c9523248297b5fdc531db85e11433c9d970e704dd7067e35e75478cb0cdabf02293184421a4638e82c2191bb8a21a8e7c496df84573d54fc392f4cd89d88c857178cf4cd13c874794b2c2bee7e1d0669c5fe2f9105f08570eb897fb37efa0dd4abd5e0ddba7f1a3f907e3afaf7fd7ebdfa99b16db3d68e32115039e07dbe7a7b8b5e98ee9efd04ba77d6910191bdd16e39dd602127fb8db30f39a3e4d4db3ec624e034542b68145245faee0fb40b6675b8e3c6521940dcded039feb589498a102bf8025c85f9ab72f133d7e333ca2ed947eb6947d1d6f2ef640cc7e29474175759a57a02897d804856ce83463e905c9c84d5cd30aac7a1ae68b1ea2cc0bd850a2bccc73fccd7b6fa2f9cdec4e327e0599ba804e9a76d968bf9eb0a8635f9830389b4e22ccf7c527986728edb790fbd412e0fcf8023f93157d5c2d29f02f0cae15f8a388345f5f33a00aa13e8ecfb2b5d1ed64c4182edaf8c80005b8269dfe75fb4dfe338b460e7836ea1f470af508d444b723d03dca29c6bf3b59edab2f7d6651125753b74f082109d37fa9654a92bb1d777d0fd6fc39b595bb4fff25adb6de41a354b8b8969d53c10527cc10b55ce94241f066fc9d07e46f313db87de2696c3a7cb7b39a4a5a403e65bbed723d71ba17fca9fbf7f9dab0cd3af2dea20e3576d04084c0a0f11bc6e7fbf5b997465cc687578a00490d0d207dba548226113b4bfe6f038be45308b52f16fc4e70c6aac84d2515d006866f65b8eda9504f82b4f6f2bea8f436b17146f7c60c912cd056f66a21d1e05dd2ec0a6c3756c6aa593eb24ac439752deef2950760c397aa48850c3e5cc4d5b734c28159160f5000728b4df5cab4636b977ff861df08b1602f988c04df03a0d8db86b17beca1f60efba566666b68fc31f800517cd0ca1baa7948e4b043e683a51bd522d52a7a55bb88feed0225c36c1dc6f1930e4668a20784728486d116d545f7ac7848d2e20c057debe75b8793942f6be0390808769130834507ed7e765e7ab64bc64b55a2ceef155bdc28e4ecbb48e7a4625dbfc5b48b333e67147e2f4cf36c2629ea36a9f05e294eccdfffed9a79ec63bcdafd677b8b54d328ee147d200a530b17ef562cb92b3b086a678122889d15884479a2ad88d5242374ffc02ed392a1d3afa0b88d3ef55b1f7b0b1f5f4dd15f7c5b8bb92b9f56104d5528e211b53994c520dcce710cce513a897c77935b83f03ba564daba669b73abb7b7f555afce357878a33cf868bc549979ac4515c6a72ed8b17fe95b441b2be2b905f74a015cd2766d1635367706135c6479995b2bbe4ba877e1a76cfa1f21f8dfe27f93b00137d9127b9c9a7c0e8b271e69a41401ff98418e086f716149d20cdb1f982c48be16d28aee24ea559790b1d1f5db544af91f916b785c54a62cf37931f3b519b60edde7c2db440d963b7806caa23363feffdda67e51c114780e90f43fa15cdfb09350b1a3198c29d188fc8cf10386c8796de7deaf9ad1191991506cf3017fe9b0106041b2e1e3b02ccea8afcc426e275e5e14cb7d5fe7df3930ab05a269f14dd5e8e2ed1ad1dd7afac7be33823468a1c474944ae4a81122b995c52ad4be3e08b0bf6bfbab64c04deeb4fe3751ff1368f41bf77558d2113a379cf6774847d5831a0b443c9edf4f7563fd50f3aac8e20bcf6228a079444c341fa061f5602e918f3499b1af829a8258cef12e15b24d663d4b7943872bde8ec445fa1dbd37fd7dc035cd4f7327472cabae35a438c41c07f446d3dcd64580c5b2ec640b2fc04fd07a46eec628cad0c65205e6d18b1693bd93cd500abeee69661c02048f0ef9fcb20b22dd337c455003a3f5a0fb40f5d0938cada88c8cd3603540ae318912fbb9b4fcb38a4251e2c82cf32bf5f5e478f23497e87de2e2da9f10c85b66ecac2fbe8e4fbb6f23188a4066f14d8cbd51bb5a21da851137bb3439b663fc40e8128d19ed1ff7f4430116b38aa6fc45fc80f516da61cc9535ee164d7c41a6860d01921eb2b13fd6350af6f06d3c6d2535dcf48e03d8fe41a20c035078c175fad861cb9b0ad5223328f5634f48127f723ab6acd3b1f7a712318e032c3a5b1c2b7a5e56f7e34ac29ac425f57b40ecfcf323f6020deeb96682336a76698fd4c630ce58b20e3445fdcea903c945a1bdfe9f59b77ff3c26e7285379ef2e7c05b253f8308ae911810db0fbf582b41f0a2238edb26bc11db74cdb4079f5a7de339ab7502492590d375bf695c03e2bc783dfed336e656dc36bb28076de96166d7f4c274c942e74fbd41fd6d8949a5433efc02f4d2b4657a972c46c07e6e0eba6e6493a850736b8d76826e970ebd5939a00c64ceb39c20ae8e0382f30e3ee3b61eb090bde380d92732c7ea1be8e8bc91c274971d45d4b8f912da82dd2bb18c23511c7c56494b9e398f85ad8d81e48dc2d1d1406b450cb4e29b5f56fba6771cca3625b9489bfc38c2dca8528918f704d675b842d9c3f2e29db394861517495a85aeb2c79ee0fea1b6a465df6f1a77814d8a1bf103749bd7e3c5d92878785c96bbe3d2aebd90fa314913166470884693ad773f8ee2b04493b3128ab7391ce683039eed644ddfe6f7217f56bcb2d13b8efb297c22008f9232c0686f66b4b9ba32254166858904eff53da2131b9719a6b16539877811023ed2af1c99d93ebc78df6e4d2f0ba5b251ff8d0e6af60312f947a0b46abf0bb742ae7ee245890ff457da1d5c59e982bdf7f76a59bea946b3e11336734b0dd3b51b358652fc3f0909bb8702d9206248d8a46dec1394c4fdc06a8e4ab392c0f6411eb2409664bd5b16275d70b6380f228686fa4aadf982e781d6ae130f0bc187781cb8043aaa49da1c7268e366594d7c471008cf24f6eb371e86b5e6b37ac30d963bf59bdbed29c2f0d1cddb54a7711f8ce0b72af6f545c8c24cb39beb3b4576fea4ccfc3cbc11500096f2cbbc596d8845f82a71aca5d032460050bb14bd6047d3f9047f1dc6e02dea54233b71136a4da36d6c2f20d581ff9809e772fa93ac7260086a8e563a067525d5160166b1ab69c1a6d13488a8cca843c1706d7bd29905cbc2580dfb22e3750c5cb55939347bf2805e32098b810b1519e33e926390e97d2784c25b783dc02e20187927050ccaf01a61ce07fb0a6489988917d9a158a09dc2d771b1471bf016d4b7ba233e99e03b3e02988d7b22df42e2c8f73540c9bf96e474d43b47d382a4b709270adac891e3949f830be9ea2f4949281df051ecf3b5527fba143897c623453c693346a27893bacd5a5f67cb049f1153baa290d892792a25cc992e0ac092d698fb1f7f9ef206e88c215faf4d0e37ae6e11b82e0546b5181f72af1ac7f5b763ca34f37b1548d3e8e948b50d6fcc9e188167b03624c6747ffc5df0f7f78704be902af07f0ec8b8b26e9571294ec1427526afafba38bbf474ed1ae18cbb0dc0ba1598af496b2e583ebe7d6f0c3e8e153f0256e5676b518fb129c5c946a302fd32babd181894e1ff32ad53bc89e2a9f80e35f844af2873009e45c8d5216d6d3626052bd0d3275363268744c8783cc53a8fc6279aaf280c4c0d008c4c4f2cf19b2ae4fd209ff52feaad93a362d734ac5d5e56482439592f842d72d4825ffa3606e96e7b1d9df08ed5ce951e7b896929c52988c6873bee72f7c6e9dfc51a8c8ad332f91cee7c9386c1ab7699528b5a5eca2e5480e2b94b889c0fde6707a37cd2c4ca03460a935a2fe45955b5c13bfc7bc41f1f6d812032f74b662a2b79f5d125c53a9b9315ca1ceccae8a9c1efa44407845b2d8386b3a5b07566b8acb6bae12e82f1be621420dce6accd07f1128fdaa654d745bc9902c381a285f678d15223b77755b8c71ff7f03e90156499fde42d8875b56aec3c00fc0439c76c9a4dd9653e865e309398a810182c03e108993923d8a88cea8bdd7df103a415c93cd2f4977c577c1159fca9e76775a6071723b0ff69ad12101ef49dca041e7b2545c9b5f9ded7d17dfaaa4e829f016c61141f6ff52549aecd2768107839e388d7403a562b1b64a997bcba57507e99f2ef1f9f54cfc17df9e755b24a9bb3920f52b23ebbb3b0aef12a66ef9dd3c8b338b8c062405a17d7efba23e81cda4ec6a67502e353d9a3e84dfcc4099be65791a84d00bdcdb37b7729aedff86c162246c54eeedcd9bc8aec57270f0e638c8e5c4f4dbbc0ea5cf0c4e6887c7389968cf12a0b3adf7edb8529dd0d18efe72a1839868925342dcefd1cf24583385ac0cc7c7242a9b60303cda2c14f1e7191382a5e9a4fe9831208976f1e063a0c4152d27a32cc2e13cc27a0ccbeadb6b4ec9ba1ad21f85a73db175955d8681cae733e44502f9ac4d13eafc6de3144c83c8c6d89d9882e6d081f68922dd51613c8d294d3d4c40877f584e436fa4e99569683d32e6232c12521cfa341ae950e349c95f5839bfa9d3faab7aefa5eed1e6e54dea82ae84b1c8be29eab05439e6bd8e69ffaffb74514599e9607cd205cad37d71889842fa560e4f0498c35edb4d742be279ac476948da2c49d386b41ae637fbe2580f66f5976d7893fb0e7a160e9d3ae0ff58283114c65a750ba6efe2cb625fa6a01ea685a2097ddbadf126248a7838b20a88423e2c2cf9d924d4821a31979d712a75684dd980da876bf7d98e74d75654d3f7a4fd7eaa79699e6694f868d9b6bec1254991549fc2de99d9beda5551f7f3da86c8ddeab32ac0de969457cf0d11bfb7a399375de10767bb0fabf607cbc52a6378b24bc5ba59dbac9af88e5e6723be62cf1295f2c5278dfdefa1d53b4d2d07f4c86a03572ba091b34c10c31d26d26a9a120cb446f15cbfad5f8c7bf32a2135d99238a45d36e5980565b8bdaba513503d8dc95b401fe3cbbb1306ba0878743fa0825655876bde2d9441eb38b8bbb87eac51b37dfae5d6c73f6162d4a5cf39ef9d5b116cfb231960ba3e72e28b66720b4bb187d643485b68f39d4a44ca6ae543678c8270d1bcd69cb29f39467ccb6e8d0499da811e18ef82b51098e2ca862b5c59d3589294a145521c07093b7b85273bc5fd73f641291c5d07724bcacd1bd5ec12f3609bc726e16b7d7fa26388433b9cfd585f629753ea8e8ffcc3654fe30490f676c0b15e3402f8bd138ad438b76c082335bea5be45c07e970d98389faea64caa8714c841c0ea7da7f7f7f437d320552fcaaf3b8a279ce88e55b122610d03339bcfe66dcd18d66a6c40b73fc059f6231faadf38800cce7585988e0b0c44b1d0786f2acf52ffd783202df39e27bb503e747d8d275c369e25b2fecc1e6d92618bb402b315969294793cff34bc4f44f04ab2cf1ff18b27892af0f45a0523ca39a705b4d70b50091b921a6314c4349df1f3e4eb9335b285fbea3e9df6d02035bedae861b4d3ae3c6ddc7c685ccb6397ce4415c95c6925ccb7073ccfd9a12ecc80d71ad3bac2cf027e88060ba7397d4c3aa1d70683d270ce4fa5b1a8b56868bd101c20fb85f54a59b0cdbf4ab15bb88cf236c0f91706d20a5cb907ae5f89bc42e4b8c04e21fca65f214194d4e9855d9de035e9c74dd7bdcc5ac7cd7ad28c70c8366f86283613e021479cd53afcfd4b47236b6e95c6c1581f614c340264839a6315b6403dd1bae832aebbb6bd5a387335dc14f0c0ecb8fd8f0714935f5332a79813bf8220b21f2317e00cd0a308d55aa3dae5163066eebbc03cd4e43610aad571628923d956b8ea7ebcb99d22272d9a5b7d3907acf491d4cae7b844a5dd6cb8e5436fbe8535ab0a51cf9effd6063161066669f14d55c5407184fb76c1b2dfb98d145f3311d60f43856d81b9cdbfccf0c7d70f86fbf0fe2923233e61ac7a5992ac651e23f7bde0c9cea209f51b92071d2fdbc27af36fde6dce76248e3116c7d384e18a77186080c6163abbbc079198d173817d066a82062082da90abf7c08461fff3c9d99f8207d6c66a8881c05ab98b05e17d683570e707e178fe0a41bcbff1a171bd39f6cc2f89e3f49f97a7de95dc69a5d7618a41861d64ffac223c616d91d5b6e049c76f91e4f6b5c7b62874d6e96a4c5cb5c89234126d87b50de4fca6207df9e602161917e0ca00ec7a22c467ec956ac3ae5765ddc7289fab09711704d1dbc6101d61a6ffeaf3418be4de46d2b309912e9a927f03d3419c20f858095faccbe7339bd74681622bbb4cd79b58292095ae3d49c52dce0163a23adfdfff490d4425de3e9dff251c7a5f609ca326d8a72506ea8f387689d08907946a38d35c2330a7d00d1fc445e1321a3d5ef5f658d3851447c84e12cff12800c36734506e7295e74ed4779496efbc0af2af7d8c31c16bff194fb0be25cd1abd3c4685d7bd520a7461a1e453a7752e7f8602dfa965a3d767f10588b444fd6365c2a08c740c6d7cf7394949493e18b7b7d32ecaf4ee3ec2b908d1cf5d51d0c59529adbccda64547465be1c47b0071dabcdaf1e6bbaf6c1b53cb1aad965dc820501dcc88906bac9a660545565d7b8d7ad2d76b4c61c49b181c3d4fdd0d251da78467ffe53aec4931cfaa949075a66bb2513c9f896b0d4dd36ae75f32968838df9e6e6c5b64e01a5756e1b15ffe368280f346f53d7f4a96374c2a411f7b8e3976c0d5dda2e845ed3f8b56c4dca4ab3841d629bb41c324a1428cfb6e542abf72e2939941d995b2e5ad73ccb732e0ca6cf9c78c9f5e71152b91172e626cc48dead5e096293f408efbe7e708ba92906aed709fc13798952b063e90551ea8661cdc804c234c895d267b0007efc038d8bb001dae2f79043e529810303ba9bb3f1435a4ef4303c189ce836b7daf00806002deda945243349dde59fb51a28aaac1791974ac18cdb4978b87e5971974077d92337a0528d42be1db59ea3ccc50b4825d5e4a6e46ccf80e19d0a95c9c5de6de2da1173b0f51ebc0c0b7e109c40b519f0a0f29bd8547773973f8f82474bdf0c95a3b4733ec418702f92b6cbffcd03dafdbea0c4ffe269122726fef70d6db0bfe1d0a0ff2d711d17bf37d59fc3438999f2fe30f81c379ce296cf9abefaac392c6938cb15ac6928f4f330bcdcbe4e10f04109f5be298f21e0b492ec6f585c3cae1402f48675176476939479c7cb3ec18b1fafaeb3a2165aa7ee8f914dc25f0673298db2dc948d69379f937fd95947d42b1e88121b8bd4f31d2411ac500aa9f216d1e65393cbcaf0ef5f3f48443343f8ee71cf92329ae4dfd1d2ca4bf6417ec5634c91dc816f660c9d7fc2b76d24cddddf07cd6147576a061f7507f601f8436c353b34198e0422d552f2d9f5f1a588a6f1637c511b528b0cbc265e77c2270a1420e048773fa71bf5bad7ba50aebd07a6a634022079cf68663076aebb9086793a6aff397a9a0b2a2c7c4fea6b9d9e1677b2fc682521658503c6653ef32e803379ad42b8f5ad2cfc67c13e9a0b607f00d81b0062b354b28e01417422a7063d5fd961a5e7d91e7d4ffa01ae7a631bce9ad48652497166a552ea80c1329ad726d18e929d0e82ee0d3857487a35b6feba18e5a6b70f596ed22d28d22e74a6f9f1dfec34bc848a3b5dd75ba8edd7b4705cb77d61158a8713e898aaaf600426cac7dec66fe398979393c4db11cab53f3a45437603b9ac62fe0f0ba30502d98c0e3df605139ce8db14aa4749bdb36442cfc081e1c61a99aaa9162e73036c4277685439d875367a7ea6b66b0d75288449a134881bb4827225e0b493bba1733a05a102b2ae7bd8c205e049bad89a0aa5c923aa83999bf37918b450c058ba7ea05265ff9538b03bfb5a9d5e67dd28fd42b25401424e6ecffce2b702136514d7d30f1d31da741c290176a70bb13990d0b617d4fb9a3e50c08f4b106a6e47a4eb54afc0b65780e8d856aa5b1e6c7e23d15458e89b71b3aa75dd09da93fca96106c54c5d5385ec1ea23c60593dbd5bbb37f3012b6117441924466dea7c5c64417f6a16e6377b499e25bb9e3d75dddaf8dda10d9a5c99d8155fd6d04622c5bb69f095a75f3ce19fbc85fc420612165d27854e66620700625bda7ce44f1452dbffb1ff9b76938f1313e51d9d1317d5257dc5248e276b02487b090284bbc2e87750e74cecc9240e24791b0e4b96e8973bbafade0521689f0d09d4a4fdce3a7d8628cea7da80b4d57e8f8503f94e2def67cbdc3ea2fb3f368a50cc8c948b1343144e1627e9407ef005554b03b2fd1b5f16354b2ba3ee8b80dde295050af708bc95add299c756ea3506a66f59e562351da5aa99934c1620c64575e8d520f61cd794c8c8977620d15feb3bc83208e357a0fd76bfd52f4f55775cd4226742ba4044194d7bb028ad3128591b408ed9bd35050d14effa2de2f4d4fc882490b3c589ac182d6d7056a55f1a36a502126e32ada404e8867c56e49ee82988055a17145d2c1ceedab9c5510fcdef3ce3c608ebd88e776892df2e98bc0a363cc4c7647c9dca9b520d9b64b28f0fa82362c238aa06e3241717970aa85c3cb40c018fda5e9ba09ac35ee971d9a37847346e36c4f8eea72a8fbe41f2ea8191965d3b35ad5b903139e90b356e51bc14b9b804b2b7e9867d975ef18f07429882b607635eb3f7b951cc0e45260cc25dee1ce3caec647823600994cc268af4215a9688a61bc0424601fef1f88f321dd851e76f82694a90d9f6410bd40223d2615bbb8c5cd115a35c239a13193a4c1dbb89d3054c36377c506e4610a5e4afb46e78dfa96e7e0bf0b642e668f34d9c90d873e8a7172f3350e7245a399d422e3ca7ed2c4592554021319e3f7989850a21f66a2bfa2a979c587b3ae12306980f842923e27ee754b0c8811e2da3db89652361cb2929eb01ddc09552c3f82e24e8802f80b470592d989b292d98e865f9128ec7f192faadb7c50c5a42fc14f3709b7af45750bb52ac35ac07e1b4fe3bcf7aecbb3c51e6b96263454580b830de2435fe7423eda241105d5ac301d636216d4f3c2506a4e530621bec2e67999606722400e202b64655b4dd7dd93fafe2f04081f4928ff21d9376405db1113acebc2de7ba9ab8481c53a7dab60eaf0b3015ac75830e43e99ed3d5d8b3d16dbed309c4666d8f1981e36b02db9f067e1704fbb17005ecf288462676c9610a1b5a58adb3ca3c9ca37388f8b260832a3d3127cb05531e37f7fc732b2655c50f9e8467c75349545de36e8c72ae892c9e170854ff5b09c2ff04bb1def012fd09c2a019de08b91ba88bef81733e25693d6f877364a3adac58d2565d4eaaaf4c0b5a6f73a53ae9a1e3f6bebe157144a2c68189876bcda1fcae8db029ec986c6ed124c87f4b90f47c673485fa1f2fdf1f7fab0c3c661a3a1f1c642b3be9d1ef3ec0f7839814e8a09a032f2880a9f5452095794c3c3bf2f7b402b2df11de09cf8eec7d5c2eba94c87f236c12e6347ef8a06eaea55446d7abd29a18a82d39201a2d03a474413990d896fa43af7a14d63091e6761af3c59afeb704a8a3c22d17d0c11605ce69c72f53ce7b7cf0c03ff057d40d16d2374834ecd58bcbb57d14e265785ee0d36f30414e873677cafcab888c141ac6959579264425d4cf04597000437a2f57cf741e80f2d3724bb7cf794020656cf85302f7852acdeb577b8009b04639bb9171ab0ee0fd05273733e589b21bb5d9b19db705e995197bfb4b46d09c3e8a5cf04fa0f43d428da0ca40af4ae0b8119f7b2a8352c1d2c18c9564277a59708f7d9e6012ceaa2426fa13e332d1bee4b8ab4454a71ae3ff7ea88000e00a98167360b3805ba9a61f58b9d8a4e48edcc3fb2a9a984b604791f2391a1990bb0ddaf1548cef68e05140442d9d129536102bf177d11a7d0c69cedc7d6ceeeff1295fb52433d2438ad0a8c368d23d6da2e128f8e4181ebf20f754a36fcb8294394cb87ec072b12965da0cd6f1043afbcce5760a01e8902b5af8902771861d4471f1ef2078b3f734bbb73860804fa34e2f970adf44f37d23e8e648eda68dc95a9e64804b47d7769503ba873a66a61425164c8adc519a988f18bd1291420fd63e18dcdb240116e05842956d8f7ac9af26c0ccd0db2cc3b6b01b66da8e359e56e5fd8fe5b464484fc368ddee89a2cb993257b36bba1e385280418860580669a2662743771f6428be373851245451287bbb16301dbd24e90aa15228b7bbc164d3a205ecdeae28cc8db0698abc659950013431045ec21ae520dfe637c899421549f621a759ae9d0801c81b217922a9725e8b4686d744097af940dbbacdec49c928fe2fe19f148c77c150c94eb0c8ccffc7b97d4be92d41afa1a749d2d61e21b6d66ce3b256fe90945a7e4aa3cbaf4f1ef35c93a024782f3746ffa3a547b0c05b7feefbbc9df878c3bd9da26cc6d6d6c5a2646f56d0a1120ab9ffd4d4582eb5ff911d396f831bca19bc5d9c08b5c20ebe13cf138667effb15f07c88d894793cda408728898df4867490a776753cadc6188b75f6d7187ec6d38747fd775a5c55c603c0ffcf344174ba5607241d1503d309d5e8178b4626ee1b3a9d02465f71bbe21588f46864796b2a8da4de048e325130bd5d69f0072e70496c2903e92a5a0997f5ffc403ff29843c99ca124108ca267e94a9534fa6cb1f94a3953fcc97457bdde6ec6105581f1eec4301e2cb79e6d5ebaf4e71302278188f09aa9aba55c60b87700ded2eb95f163838b5c0a2ebf10010e898cddbad1138e3edfd98cd68f9e46cdd7d7dd1ddf5b0458570f05dfbb137831bca3a702dcecab04038760da7fc5f27bd2c5c7b768b01da21a3d84a5ba6e7b1aa569159befdd27e19e071193fb50cf0625faa2fa8d3dccc64fb7f7050b7895ffa31ea132d9d964131bdb5312ee67bc96546a4a58cc59caf884ea8cb343467a7f42a261a7fb85ccd68c87706c996c5e41fa2f1c0aea641212f114f7ef52190b885585496689d84fd3eac39c236c905823177b67090e5b930dc5f94a494d9dce31e96c9ead5dd60f35ad547dff3804936fcd2556725c45abd78974affa8f614d43410fb72632280130713da7a4d19a6962aa018a956d2d3fccf7db0aad89595f1c1e06debe5cc4dd3b2c77702eaeb74c5238b2ac48138272d11fa17a664e31004c1bb4dc8e16a34fc6da9814a4047ed4399f69ea0f5d17000515d7b079df9401eb6ab7c6214f8abc46f1203571bb596b7fdff6f3b7717867f093b4354690fa8c025de2d4beaf0dd0292e12c621b914d080794a94bbfd9b8f794d1be9ec0f6b7e917805d460635c9c7d4ea1bf633efd358329332c5fccb4607b30211b631ebfa7a99aab764c0b90fe5d6f7cc412cd228e13d06e6684cde3f0309dc93ec5eb017f43c5fc075a20cd83a6058602b20b21f9fab62ee154568edc09faff4b67b00cb0595944e93eaa56c2edb020f04ff52f22644df945c6f23044461bc8aacd34a30e8be52acd70c0b8355d544732c0debc69a92d8f6e6c8f52af29e66aa3f43c2f3b0d4dfed672dc154358103076a629964f5654553a83e8ca0b38c00f7dabdbb471f77fc51dca90ff4ef348cf928692c90614f3be26738c509d8c122f5eec75cb7744d30bdb88d9286dde9f4be676138cb4c298368280eebb2adbb945fe1f99930fb7e26a2171d9d4f5abe0cfb93df7d6f418c3df9218cbecd785ac500be8385dfc9391ae9e1506cb48575dca9324aa060595997977f735176df60d312ffa4edb4332e53a8ee4f29a449f4b6a7c75e2cce47328eaad6f8b088eef82568c1344bb20b13b2bf2dfabb0dc5c5d9fa12aaeebf8dfec4745a446091922c95de3e1b005594204da990626d4d1f979d8064129a666a69680222f2a262bf6e22df77d7e5ba80921c11bd505abcddbb36e0784dbe6a7d61233f73939718881041ec8afb2b5ae72bb705b5bdb5cb0fa805e50c670eb4de9a2326ea2d229618cbae8057aa866667b01ed48858db55097777a21641f762a40b2e3e7fb8a6c4d83cdcc0af20ad3d0b6a9ce0d603320fee6776035e0c86f66c6fc3d3e4a093200162e5c08a2a2875a3a6ad0e5656de40045a6aa700d29ed888c554a36e46bc5c8f221a615fa870636f35008ae71b4537a057c92e47ed82cacbd187e5bb7f8326d9c316030e125e3ee9ed7e02b5d05d0e7d063859148ea7ebe3998befa713d654f2736c9985f0e42875256eadb028d5c582373a972037dc5451e87cd9993ff50bbbc0d9d39e6125ca833d989d648affc64c5b73f12641c181becedadc273411a0b11f136a7e95c94772148a445f919b463f09776722578e02871d0b5d2795b34093681bc72d53b4bd1290df2eb38a642c9d7b2928bdf92830afeeeecbaefdf9b66d572c97ff74ff8c511aa04df0f9746adb0eb0451dfa8adc6c1b87dc4277a0c0030d2ffac3664a1cdd1fab5eb51479ee61c6f1c64c037939a6c2a8b56404dcd14c8ec45cc6a958e30e9034467846b19605c7a738950e896f79c8c116fb1905486841de390d5500dc9563516b6caec4d4c9ddfd1f49eb789ff453ada09c1e12579373e6465a9368b28b0f94697e9d63e8e3f5c2f09fbed447a34f98b495f0e13b90d478ccf71f984eaf14b9a9341cbadb8ca229697b7fed487bebf59aa05f567d74f8aa2d76cd5391787163b3e463b2abea99187527791f01011984e4aab13e4603d7e4df1a014d5e9a2ce949156307463c350bfb67cb683b2f116037af1d1222904d4955e835a04d51ce2fa6153e27477ff3813472ea4feaccce2afa9e517aa6e59bae9bd477a39e8ee4985fcac9e5a1f9f70274c11d1ae95f8f3d8f93edadd3d2e426b2fae80446a87ffed57011ff9a6c86aa7a1100523dd958ee1103069b35d1b118d7503e3931b8b5bf2ea2d369c2398a4bbf2a029e926c6fe4c780a4e10fad6ee750b4433a193e1edd362f027ad46d11204997e6e6eac1df7cb8a5449e1e38ea2b73e953957ee85725bc8644d3ac78ce0900c946cebcd5f83e1c1a5604b6d6db7ce284e2c9a8a282712f38762bb554976294b40b75fa68cd60965cc0c84a2658c75891f4f7c226c4f1a1cc24dd7903e55c6066f691bad7b45b6ad0595cad135d376c2ba3de6f5cc6896fa0114a4e9057f4e4a01bd87d8aca901fd06ff681764ab01a3b9d2a6fbd353d28a0b50d2b3d2f6ec42660ad4afb6dfd44fe426fbfae64d51be9a4142ed343ac8acbbaff2f19d3695cec03311975c0ff46d286ea3ed053a23b6c0c505da123a0a1297f0674034d81610f119249492a2b896be551a69fa2933f514049e67a90a7566995b90c08cc791e1df0b51e34d72c36097b9f3703435f186e3db4d94f47c30bc244d47718210439e2d62e770e35c0772158f84e91083d6247146b31fc88220ec80778d05b430d1eb94f823eb879b308f7029799952bbf75cd6d9c7f8099eff3d00c3f7ab6cb9e770ebbbf505c18fc52b8f0854f3dc73a8bfcff49e556432c3734b51e2cb4794f4e9dcd66cacb4edb8ba7102afa995cc0b2191917ea47539e9f2c191a85b2ad43b8b60d9efeb39a128087419d91d14fa4a2fc1c670f3c1acc4d5f83c49405eebd37c357b98ddf4028028ddad8fa2167979e14ffcb3888ee087915f29301d3673f2b0e5a105688c5bb2c6121b03055524ff99ccac4431ca79132069803b78b6538f1d51a2539fd77eaea54d59aa1e21ebff2c31bcc68cc22b9bf255c86453fda48a18d6f1aef83e3c378c2a54f8c41c0dff45ca4b63fa7c2245d5058495e7fdd107d37847a626c5dcecdbdb72e65df90087115aa6181ebea187dce5bc6142d28917ac1584d4ec07b9b23a1227c8ec4cbd7df0988b1e0b984d5d2a06726d054991b8a57407f18d79a6c0ab7746aed3010aba5062ae094107d02bd3a34741631b1d379b16397225b58e7bd3f2cf52561e4a7ddb6931b6ff7462ce1d1ac9e9b8718bf987c3dbe0afb18daab53418b873c2e544d815774950455500ab26d4b3ed717667b231d14971681105fb19989f4e2bbbe02da211c3d8ba2799c144a79dc381c048460a6574534ff37405993854ef1bb375f5d2ff4fdd62a6d2fd3caf229683a48103a52dcb8f141d4def57e6731da4299901fd16b99cf706622eda790f224a6a56e41ead0806eb943b4731f5507e0c81fbb39edae4e42f7e33a40514c72003b34fd2f0fd6f0e51fd492d72f6cbf14a9d255c47e2416d7c983a0046922adb5f7201448b5e4054aefe63257db4cb142a67c7b1c103d5e69f3efc79446c5f05e7cae9d31a2849136e62590f3427477c9633432884691231506db1eca731fea3590c57d64f452258188c70859fb66ca48e774eb0b55507eca980c8bbf2fa6f80e9d152b9598d878ff9de370958caba66a1fc6be8986fefea2c17d0e1beb7ba96b31c51b02d4b043dbb0d78b48f494473d5af52011b78374859f852218d06284d37fb2e7f2bdffc5ef8fbb9d4f22ddc054cedd199cdb89f5ddd2159c6c377f941ddd434234c238793acee506917b0f415b12c13a55752b475100072bca2eea567844c82dde1f35a35d44801b7958c346cea22fd7e721f2fa5b5275c62efa13f948d4670a3c6b9ac5908b2ca9ed85a652665f81424a0c25debef52c986e8ff6106e4da462400b91232084b8dcf9c457e00d0cde13e8776794739b2639621a18390d96699788bccad7c9d1e279384811b05bd2d5b21038a777a5f71351ec785d3ad639aecd960dd934dc5a2f970e3a23ab3bbc89ae14385b17d445fcea99bcacad91e5a3bf92e2d369f6c9cb4f1d383eedd03c64a18af611f1d5bfe810f9ad5f3fe4eb775394f34fa5b10d841dedd18dbca2a461a3ca02503ceb29a180e14586fe6ac2a319354aa53046dbc6ccb90aa37ad5aee88ccd83bee37146788bd333f961b884cd14e8c9853d7528ba3c72dc2ed887f5328c43b2a90515602873415a3ced446e386d61a2e35f9db05f5d73b38cd56b7a45cfe35dcf9583c4bfd50f50319f1964c5f129dd27eee473c91d42f01c5a5a207944ad657dfad2439dfad9e09994d56a838854d5b8c1d2325e3c8c686f6cef2f93b30e4000bfb3b37c128f886a88b32cd0f02dbbd01183f62d2b04e43d5534d56db1b27761b5876c93bccdfcec1b5f770879a912a462e38a567a409f3637fca03030fa2976213accbc62fba1b210bdbec8893f31d8c205fc777aa3cb96e5de0519ae06873dc773b3b63e751357de4496bd28edc449d1a8203909740c9503adddd24493568ff665086e1a619f124e2d3a04d5054b2345870ddcb9bcfb9bb6cfe2601bc2701aeef0325b1d94c91c0679071b5f939a43f2de9ee2cb3aa45475453795fc7143b32f5b9fee38bec8de2ee301629e1158f483e4f1c2a1a20881bdd4dd1914a650f29f28400d068905f69bc74d2b266e80f06786ecaba9c39ca6ba9c3f091408ad228be10b9d25a1a0062365b55b5c56e2baa3f6b359eaa1c9882763a71645938480e9c2782176b1eb5d0a44279b9308a3448ef033faa56f6a73f4ddc646430592c77c620568b02fec64b91d36150b0fb8e3a7949b21c56d51557cbe303869c7a811a14ab2443d7adfe2145e97c9f58570990a02ddcefb1dc1aa5273ddfb2ba22e05eb72865e562fb20f313aa66cebcfe7a82c8a3280daddf537f46caa7de9b19b53ed43080cc4d588764363dfd764e6947def7893573df69893e430d67cebc2fe87bf85c63fcae737a8fe8f650a26c6bce134f0404fcb664b8102ae8514a17078252032d2841611cabdc1717eb9b7d1fc8474433d7e7739231c1d1441d45022c0154ca43f0bc1f8ffaa452e14715266c3d20b95d06c36f629d113e87468c5459d67e509a9c4b240c960b2213644dd49d5184234057959e3d8290b2deed2b6f66f5d8349aa90027ccfbf4580950de20ac9fd3a602a4b421ba16680426533f297a7cbc5cc66791bbeeb5af669074099e58c4751a1535a60246ae94586f01f82c14bc705bd0000be0cad09bc2508476f43dcf193dfd780aaa40b70b2e08c8d594d73a4fd4a22792e6fd64a68853477a574ce945fbad1a006fed01e8d209748433ace44028b7a79228ddd7638e6ce8ef0d5491b4e6aa058511dfa5a807358fd17931eb6a74837523fd06dc28bdd3dc6362e89c9f6a367c7f7893e751d5775d07c86b720ebf5909d3bc3e51067648970cfb29d9338878e6155d04424bb157a87ac6104063c833ddbf5f9d796b03fe22be6cae8c308a43fd547b529cfb84159410d2f03cffe7efc1c1226894c4d761aa2e35ca3f1ff82e9feaa3dfda7f0a8e5be944fc4aa62540dc3f01b77308ae126d9fd2a5a471fedc1edae78469662e9563b3d84edbca4e2b7481074cf597b47a01352866b1988633cf839287cf16127c8d40c83399c1aefc1202c25f3da3afa48412a6a8acc1fd597e0c8d68b0bd064bb847161f4209e25f9a1aaebfb7331aa7eff4fe3400c5aa54f097fa6548b2da094a8f3d381833474b1032c933015d3f4ca298f816751a384a9b958292b978c311b1a8181d4ca0a903c6a4c3f9231793c55fac973b0b825702b72b1de5acfadd2fcd7d26ef98a215b7603eba053e144816dba40d91d29e26b215190869d18d25e463eafd48bf341b33a33889d5ad432460503efc487ca572f19876c57a5360b9eeece0a8a3d2e16ece9cf8c4ec114cb08328d206a19cc330a67db5b479536155f4d8a4989550d7fd7e96e8c6658991675af929febd37ac3bba240dd0588a902ba9ed722fe2c0a81c824c1d4fa20a8c44a5abe1e5108a822d52579b1f709af459581fde9b7af93626e85ffdb67d008aadbb5acc038e05f60838fcb738298cfdf6d7b2a3dd2e1acd5be7f6760875207042766fcdef4d7ef134c43c7e4392ca7c2f2740d5de457db466785c74ab7474629d8b7ee72e83c3d1c5ce918190dac5fab3a37feae0dba65ab66931ba6407f6192da1698c11eb36b8385eb6efe6575fb023bf5b52bc449e26882a4393e86836064c896a02d4db3d3c0eef96de849d76f8dadc297bc5f54153042398eb7020bf9e6336d9450a80949d3c286b517ee988ff1c11789c9fbc21fe5ffd8e8318688a190af74c4bd3753b1ede648f46cdf6fc563cf4e5a796e8cfdee618b58c8539b739283aab6109e86eaafd7bb0cbad08a9efdb92abf66c33f5488475d1880b79cde0d33b126299d690126559f49635f09258ce64cd7cbdd7e91ebc7e18b786d142a5e4e4f96b6f818b8077276a242a2800adf66be4666a47e597466ab4b6ebb43c81f93ef6d75bb815cf2ef0710ff2279a2e27f6dde955f89451007d441e36d9b78df051eadbf4deaee968fdef049f6f0ac0ecaa7d477c07cf2987f7ad67d02423a9b840e2b533e69981621c97db403d5f0f3f3a18d005e485ff1db3d2c7129940e7f4c16676f186b7107ae5c4e0f328da6f29df3f35553749b008cc46c00709f8b87102fe9ac242e98db0b6eed851972b263dd1961ec1099c5e3bb36256f56a63ef4897932307c4697a4829a7de8104eafbeb4f4152860e559f107c2b2f04b9fdeb3deb43d1a681c1c6df9bf6dd5e7e4c886354743850f99d0679717bf680bb54e34d5c88f58a16afda246813db563676608103ca288bb8b8ce169eccc0e9cc67040903dd836a7c0914bd8c551baa101a5310cdc9cfaaea519e84c79d446c9e5c7d578c321540d0256fce439d956d44ea20f469a062fe364bb4080fcef403dd9ea1b0fac92dd53e8e3d1bbcac0da6ede96ba0fc9645bbf594bcc883618328a9dc6e7966dbd30977d38df962bb82bb6b6c0ba0921c73d54ac671413ebf03756deb074f721814726a14acf885546c9d9cf1d305a3e30967794f1df0f66a5398e804a3db1057a8fd987f1b2bb01ee8e2c96f646ea218e3451e0db6866f2d457fc1a321e80fd010fd6371b353c3062e6d06b38c338ad429da171490db1628fbdde75862c1b0ec1f9420d53aff9a4ca5b3022a0ac9f2b3c8648bdfb957a8a61e4231039ea86e2cd165a3898d8786418c6e285b465e2c79dae574e116c5bc3719dc19f30c299475e9a253c8408f43c6a753dcf90b77810f8d24c411458276bac7134883bf6a5b007553071c148493a81199f327f9c527c11c0e3c858a41563002b9564d268b7b28f5a6781d1ae23324552b15363d3bfe13ec64fa8abbc6e8fab98da84aaec76884c826eee23b8423b591c45c9f485bdfd4b0f92bc50a5d35a97e0cd6a180490901563b3897ca29f30c08b23a1c98b2bf0f398107051e3a42fc5efef4b423a69ccc3ac9cfca9fa7531918628dd301452bde9d587461bb06701cbdb0e9422801a6242014e428cdbe11fbc7141f0dcc0afcc7037ef556e9249c45f4792625a37d01d2faf9a296b97db23de0176435e7b3f6b8521efc59bb60bf1f71b9608d4d434e90af0ebd79cc5d52726a2f5b46d8f4448950b155414a0b006722ac38d35450e5afa8b11427cee275b4923401207d432f9c7cf08d4460e4004d384752b237df72616052eb7af4fbdb287a4e4a253ed7774d76aa4aace2ed6ef12a328d251df01a64bac3154bf723462c0e8fd9d64f1c19778aef551f276fc52f9a451a26962155acd41a28dfb8fb968968987afbdf9dea153a8dfd571befbb80943c874b8a019621303bfaab3f76a02a5bae37aaf6b78b78cbf4759a575703480409f52b43b4d056c486b48bcfb0333c48e6d118201bc60dcca7891eb10ebda5d70d5fb4d3db42e1c14acd44513e0425df1bf7d6fde7b0a38a1ac486803d043859f9860136131ea0f35ef130333253bcfc56d3c6e376e830ae77adc12e3fb0de7f5eb2a226fb1eb1adfc49d9f93096ce3de43bdcb5afc80fc1942bd1490e959bea06331ea12cb08c9da2e5d8660b6e951c0d1e5962080194d1d7ef17779394cddd74f06c0d758bbbeae2a13f8083e0a565ce28dda0de64bbac865932559828e0990216a3f35dea1a964a6d2712d7ae8523fc201a8b46975f93b174f340145ce686c0bd57dd5fbfec0cba18263636ae387dbac82f11a89dbbff810e88614b63bfdc0e1f00c7fd236d65ad85f3649da1ed5e67ec534325b265b05b4b3bac4d10c32b8041bcd4cf755f513f278a3a4aa0190fcd773f5a92ce2d999111966efd6fa77edafe88f1d8788950be4315a8516b767f529a707a7a5ffc3195519a734d8c1f10e639e8a65faa25975dbc1f6a5b2ae59a7d073aa29c251635cb1c301e18aa3305837b798cb95986058c8b54885b219b6ff305b722c96109c85d6be8ec4dce400f8dd624e3cb705264d5f6be9f1337134a90ad703c62d5955f19bc37951234f46b3b301db5ccaa7f2e633982202eff017b09bd69dd7d8aa71f3b71fd09be7afe856ceacbb8762e0dcaa5fc324b2ad1464d6f1367412d96a576e15359f146c57d0ca28ad3dbdd33659b603c78da25b22218ac94dda5db85f098295fa621a0a9bf2d71a02d131a7d35a77d5553fb153a1b0afa6633de88436cfd5d177c4b86e556ef319df2a6473050418d16f8566cedb31b26735ef6ccffe6d3ec24ba8318f61b8a0582938e5f2bfe67f1eee8c70f95ff68b6f74c0788fadf0c2fe278d29e720d83c3afbdf3bb017d50c30fe29a74d8206b9a7446bb7009a0042b5503a9133f9b344b925968e40c64165249dee512ed9b54507bdcd932301ce395020bea666d46d68cea8bdfcd1ab30067f1f91aab9c0476b006ef4b4ca8288743a84bca7029dcffd9e3bdbd1c548b76e5dada2d5f7d6a36c32d5f42106a3679b217f0d0f62c7c7a3b9c997fc29430d0b69c195cb427f1aa501e897164c4943f297a6ab77b5c6f528f0f1927328e72c41e8ab14ecd66139fb438fd4d2f643bcbdfba3f27ea89446076e850572eea003417b0fa835f9e7af2904271aef8dbff41519b32d40b02da106830b34b62083327a4365ad5b05c143907a006bffd8d3d82711277643ff12a3d8393fb12badc35ed96e789d340362d57ebee0468fe8f5f626b0e6e1f9fbca6cbf3a8f70abad3d122f62e8a23a1881742c5f7f65c01983e87181ea0121e05d7e91aa9ea8bb1aed2b6208a88018479884cc07094116983d4aab9fbfb0a7d8d7a3acaec185794077e04f1e80c87c7468f1738e9f703808c644c9740731ee96cbf1a9fe85ac16439f4a7bad8c61ad957373c051d6d2b5d526a55d5cf89b7bc5cdd1e474278c9483d18bee49bb5e954281e47395368812154b859860dc9f823bf71e27df1a81a7609a7cef11502547a21ca475a2bcbdaa0a8384c718908ecf1b65520c6985c7eba22ced69e065e32cce130cecca5847342e0390530605bcf944b9bfedd9c23dd6dede75319d63566155fbf45f17700ae9f1633b7fabc32cf29997e16988e1f60a3aaad77c188ce1ea7ea94a1c4e5b38a4ab20a967fd619449b32ab6d855239d034daeec3c6972f4d246b9b03b3ae7587cbd19030ac10ea4c77a9e2b3f3c7fa42f4dab2831587cc153d70b371694d424a48213834fd90ba92d0ca39c93f9204df84689a9dbfb6844966c401e01b157309c94350b628a2f7b3ef7f15c652be47552f2d1d7b64bc398ba2641ac922c9865ffb38c4ecb3c62bb65a8be5539bedf3ec89731974e1b73a0244bb910dc11344f74ff888920592262984e49b22decd67b248ffc061fa02efa46db96594ba7bb328d2a7dca3c6b019e480e539cb626c5f6291ca8d25a5f004866348c7727e433fba01524ca4bda240287b2a108862f598200d14e12fb22c9c50ea19152d8c293f3e67e17542729c604ab567c93f05477dc41292dbbba5fbd2f366262ee6c1749515f84583fc9e0b3cd1cb4306d613eb360d0c326a0df47e2f843bbfd9e114eb58e5255cbf6d3fccd541ad99056aff5da8ae17c4102f3a095d179f9254d6879ac9571c1b79173f08bd0910e70ad64e26949e6ac28b1cb54057e7644e2caf464f5b9e04a497c192075746b9c2a894c3c13203bfca7bb8ba0b7fccc42fe370ff4cf83b7ff10b0d4faa97fdcec1ae7d6123e1aca8e32b073b600fde94288760ef26a4abfa6827c48b4599b9d4822e72567868d08c65f6dada18ea5c1a555af9c9c699e7aba76df83fe4b891e072718d6fe39acfa7a6782703de0aaffbd7ae6679d6684bf44a86d3b095722119791d4d385dae7265daa1f221bc9b5b333d39fa0dc6e7f6eec39cb277aeda4e534cfaecf4d9f23a31628975245f119b4418093f891816b106e2cb48a088d53127ed1ed237af3b6a5f0086dbae754dc30cf6372133e13286547ea941ce44c6340518c193daff43f44f715f89806c109317da3ba9bc28e122d95bfb2e415553ab8947a97d76cf6454a063b92169a5c5df43c2b9c6da3ce50b7015ae4bd9766fea68d1757a412feab51bc0f598c941c3773e92bed8997a3ebfe2951da89f54f73176c658e262f47f3860c457ed3944de276ab962ec3f453b9600e9bf754e97729b8906986dc20c14dc30a3728fe47102c04a5a3a0562d151834fb14baec8957fcc8daac7705428d80e69865e21bc8d649127e4d67e38a9678d0d4fcb2aa51fce0c9fdba7696cf82969acfef9deb97e90fc8f1d3be718e78b8c9d9780f76798904c577a670307cab62eb571d429d35e477b96838407ce1ce4c6dbd10b13de2b33a4e4284372928c7d25b6ed8cc04a13577df01c4352d90a23cca7330d66c0d43bc91c1ee9ef987c81163f32e03e19ba225442981ff415970ebcd27a7521c7398350cc680a8a29a547a7bc0d1b117ddc1339d00be87463ca8b33f9b2a5802db2225c6ae5cc0dbb147592d74997d09ea7eb14e6b90c71a132f51a59fd2ce623be8892cdba7091c762f80bf0afe435fcb992490844c5bf4efde1b5a6e9a3d820703e2e0a40abbd0c0cfa777e49e0bf35c25efada30f274e2d02126365e2425dc521791a0b328b525f9ca2944dbd84b68a0b06a1d7360b7899dab2c915ef9ca63803077312502d6cd1435f6c37c019b96685f776f0e6a8b8eb1da9879f68c24d6fff9d389d99dd83de21bb5795b18fafa6a34144c2853633bd71454d0eda0a10827ee99e29c7fdb96cc92456bbbe369fc1c9f89a4a3f640394f5c8acc93667d6e97fbc697496c18e5d820e932fbaaa8e982fbebfc68250412bb87f74324eaae1e012f0ea7748ebe053c730379b9b235e4f60061796828cdf063fab41365b610765de916da02298572fc59c2feafa5529bdbbaf84f9b630958e033d96f97a3c81169d626858ec1c89b9e09ed43496e3d4a5f5e8b75d5901465ff160fbb72a07115d9aa4114075f270792e719ac1d15ba9c095679de3eaa29a3ee8d7faa0cf307bf33a3a2e7d0db206e2fabd354831cc1d6a77ee7147acdeba203e22f9c733e59937701436910a22081943f2dda2e1e033c14a242f1c27f75bfc3c7a3a3400b58a6346f1270d435248633a6097452d9507db12ba4c8ea50c95bd9d9e9cbd46ceb8225b6aa64b98c815dcc831af260a7474a9a6e10f86b6912b84136dcfa9fbc4c5cb6053381368bd897d052bd33e8b68f22b3314e30eaccf497ec24c16ed77eb92e69a68c6a31968d2a7c23c6f6a6d1e0c84b728705e1f7bd11cc368dc88f43aed8b634db03b935bca4500e73a418cf2109187ba76b36b58bc12a3baa5c114cc9d9aa9da1292c5f26e65776b206c6b73e4c8c9df98892df03c8de1e426cd5adfe0b36ebd191d1fcd079b10d0e71cb1710d1efb2f984cca53915673dd8d28af75856f4665763c175b11ce6bb14f8ea6a066e56a1abdcae8f1b921426845fedf78373edc425689a47a3c1f5ae57ddebac612d8bc8c6223f37a8611a961bde11a74b6fe6d56729ec623156f64edf128ff7d968067e9dfd399d5aaa9fad801af73dcfa604b0e12a4fc2422ad43396380aa84399c374e4bd24e23cebcf9fa2a8b64e98bd05b751bcdccef8f7f6639354c969d113ccc2ace5ac9d4c5965fccefd948fd87c598b18abb3e75b80370416b98c00059bb1927863185ce6e9658b4e57be09d210a8ed2ea7361121a60b73a461acc5bf2f2e7592ca0419dd6a605d736d0cffc92b8dfefa920c58c8fa0c626f6067f623c6c50cffc6381baa68bfb3fd9c31e10ca73c2976267001fdbdddb71095d43ef96b7445f98150be103c1c3dc90afb93a4fa37f8d747b2a95d6016a1584eca6b33b7507d4da516a7153c3584746e5ef842849f4d7866a6079da91988ac83cdb784c11b160df0f6ee698efac607c94f664bb5e1320cd5844502ec9c08cbc6a37f038aeac67ad1da9595dd122bbee1c6417ef83615f2a847be593f5f2abd33cb513de3a3a9147b2f417539f15d5a2fdb787113279de8aee2ea83f786fafe9f57316013ced311761e84527dc5023f64dcfc8409287830f818a17d0052ec816e333e507632d01ee7f6694338d95eb72156e1d5b8dce70e452403f16c05b93e73bdb3611a6b61f183e1005023d17ef75e6bf90b7a922f3dc7f0544c18cd2eca2aff52cce2f176e3840cdbed40bffe4eed6cc1e29d16fc02ea413003f9ca89187e53084bf273333e99149f2a364eac4c551076d0e283086e6a3a6af636ca3922b49dd54b805c4125b2372ce438969e1ae42c21270b4f8c7efdd81adaab2bd9667b77263c8ddd3536cd6fc84a40c7fd277cdb6716fb2ed0dca4b673f2282a5ed77030a01f0d34177f253de5e5e7e27301719801e881947634558a17254b13d723dd7e47b3fb1421e307fd3e0fbfecc1c09b61fd96504d624e0687e08bffc1d3dc824e01f4466dd40b162daffb330cf9fc2ce781551637a1fa02ece72aca20f27963a05c7e4206db407dfb76586fc05d045a0d213749fa8fe80d467e07f3d911b2f8ffef90f7e230222396fc5ebef36ce20b05b897a9bec0ad20aa159c671563b098497a0dd49818d36e3d03f8c8b9f8f61d4a1d84dcc61381dc0d9ec9e9dc5cedeb245420633e00a7d80e7d7adb77178486919daeffa3b857111f1ea4b177808e0d39cd6d1d0eb45303187f74cb750c6c3ff9b34b69e3da82a9dce33ffb0bf976aeed625e05c223892a9c903115fd4cafd66e34568a5430f90ecd99233281b0b315153b96c8c586fec7386018f090bf68732129b01edba2de5197f2b25dfc302fcc1135cf00636c4c602df498cbef5b0ecc52cf91aa9231bc531b1f53abf22336f703e2b4212b660cee5b64e33470708b27d98f53b6c9481e30f654a736b56377c7a9c369a2ea8162789326f6c75a92517c5a31e979336dc8ca0138025fab3336d3c1eb11787300621643fdcccb8b89c16c7fdb3f261c80580813897aa453e48b13953b1ac4d46948c610c8dcd37048377f03aefbf2c1a17fbf5d6f6be8333d3d426f381915334b126998b433c08d35bf7a752dca29c93951503f238af3b80834f805882a1711c6fd726f4a018ce5dd2d67821c2ec28acf1c1521507a2e3473b12250097439e70e8bc09424a4ffc4d44536be81acba37355102dcc06916560c2fe9e0d2ac0e078763c7ab41c052f461cd76dca1c2de309c38c7029d6c28cd448b31ec5bb26acd03794134e72649b5cfcea8050d2a1502483d2f33f18d8e463b953b31203258ee6e6a68255761e5d97b831cfe6c2b0708ee3ae23a991bde3ffdb3af2029e71888000fc28d789127e7421f9f95b2b6f40a4456d02035515504f48bd154852acdd353a2e4821b8cdf0639e29aa65c6539ed77c26e670ffe8b52d286895b9ddd594ef4842d7463bd45a4a989ee41b258bd12f7d2d751305b76328ca655dd056c1786ff79f189f10e77700b431b879974ea9c359f368960d2dda0304f2152b1d21e3c98ca764469db713d3dc029bdfa4ff9b4293fc90a66021d13465085f0c5a1135e3821d629962bb13031fc73392140ac46db6c16874629df46639b67fda104279fb8ce612bdc211cf4452285b3a86ce969a4a955435200b45f75abacb9dbf224e1eeecdb019d5adfe40947fd8629a17b83310e942a3ecd7957bd55ced858fb1e0b21f5053d74a36e4139374bcfcaadb5a358f8c007b0c1efe3758a8546315d072edc7a3bc66634de2cda74b43da134d36b2f5be07fd72272fa7786f482da23fa25b007b79faf032a5f4c0ecd7360b7b344f462ef36f8edb8cf8c4c7787f23a7675cec36b40a6df226ff1ced272b0a05a6c6d63d079a246a948ea6e47d1594448fa39f87b9d21c8f4edcd4253839c5a2f4651e2e754b3fc59580147c6153fc2b3fb854b231cf45e0a56a36a110c5b482848ed4ff14d428bc0417161f2cbd0236f977f3f77e45720fa600efe8e5962dc1b2355f2c548878c9ae531530737f0c00698fe7d586bcc5ea66e505ff9c5a097aa565918d00422fe6f26601610fe5ed9f3804471b697f617d11d5a68b261fdf36f0bbb90e68dfe3f3b03641e376e42aed18ae480c4d1cd99f5282bc0975dacbbbe5e90001ffbfff8f06df75b3b190c78124b80a0e7ae6b6722e115bfcc0e3ca74ce35182d60480b62172f0dab81a4a8d4c621a994667610f50199fa7665779e0521f737fc02630a370f29a44123fd830f5b3ea44d45262b2934a88182de3548be481e6e5275fde87b44833928ff1f6182c83697c0dd95307914bd1f295aa211f67bac3cf43f88f7e8e1273028c0aea9d67c853ee02a26f34da8cff732dca5248fa2368891dd777770c6b521f083f6c963467ace454f80c209b6c49add2b0bb4245365d6cf55c537c25a0081b848656147bbb89910ec0f50d92ffb5118a204b4a57b77dced1e6f41f6f38d0cea4c0b03230cb907a4cc82a30c3dc3390f76a4225e60be5ddae1f59330fb171130d12186a15b46dbbd264b1fea84e12b0f5563e0b03a205ad89dddf14f7a0d7ca0907fe625f600c99e6322952d0a0e7a0cea9d1804e7958c0a7230bdf9dd12bee34d24b5450fdb5d3f84826aa5da77785678133aa2bfad398004fbe394b57d7d8607b118f1fc9d35cbb72bcd9f123cd841d4697f91f8074e9d17d0dc05fad718dfc0ee5d6a426481dca89ef71938f1d1d3d3a607a48edbccf75f42b33dec5ff9305044186f1f1dde315ba485e3bd1f20b8c8b77e4222718e04166c24eeec89b5f74d42d234c20d7bd830c8d82793c4c90bb4eb55b3e4a84e2d106bcbf4c67a038414194e1bad4c9004d3d88c0f00cfbcc6ab788ce014700b2a6bdf5d4fc68e7b54ba2056365b4525124868fc6bb4a538ce58f507de6650b3b7e76ff8aa9dd32ad414501d11b1382768754ed59ed99f08fa8bde7cb217e123062e427be08c8bf5681cc82f4d51b9cf37a927bd2f2d898e96a714e7245d5078771886f6ef72aec9fb7d4af3fe7e2e5b528dd105c2a5259d2d025a929057e0a78a00ec264d7665a164c1bcb7e9d1540f8f11ef715ce8a622a076d9b201aa66740bca2a028fb69055642fa957fda2ba917b71690935e036a3da0c9c8d1c63cba8e1117853d40a4240168dbe68b7c1448e5076e9fd721f7083ae05153191ef8ea7197714686f283faf03d64dfc49b5a9ad647b5e9f984be6229a9b96bd1d653f49006ebecbaaad85264359cdefa986f6db97887d6087bc9cc68979d93d6193050b6c6e3c15b974c0724d0157cde6d20adf700b3beb4fa18b53db3f790f01ee198d8d97d7c22143d48b72192b3c6eaf183de754544540721fd92e6f77dbe2914961e114dc263d625747189729011dbc27731307c704e233baebcdb7b61e7d5d76291da91d6491ed13db2cc8598f3f99957b3f0b5894da122fcfb3fb7e428052160632c56d7a22ac892f774b6328e4d990a4117e0d88df2c47718048fd445a3db354be7a2863071a6902af62188d20759cb6cb3cb20131ef3f34e0adc1f156ed69be886aa83dd6df1cd98601e73d2dab106bd86355254c4f4889321c3faa5e1e6c96de88d18bb9553ac31178684b784d9832211cca9dc746065b796650be95938088ef32867e40d814ed2e3ad5b6115bb44be68928318c671248db19ae545ec87f97809931523ca52b02e5108c6213ed3829138d4965db1178ad421c7ce37e0bd76b90f63fbb3cafb65fd7f58f92e680ca2849484e34d6d13981e3eabb386fce09f2c65ca2627d5621173ff403fd88c868991a1119d175aecafcb1e0d6120e712b49ca304d72563e88c011aeb46a334bdf113081d27b28c094171424174941d86701d385bc318286401d408f90e7034b551752dd6366843972d157ba2f8442ac7aaa19a869b2c9874f8a364c28838d96bf1391ecfca8c228364db8c6b2869a3136b2f718588cead3ef42090432a16f276b9c05a78f46f49c24bbfb2998050d4e0093d5218caac7a00f73f64109da56b17808e3d8544123867413f48ebe10f770525240ec8f2737f7d21928252b6b098f5957d6f347bfd19bd4a06c6f630be2c43a4fc0beee39fff50dbcdf28ba3761cd5767ebcda53e89d1e55a4ec4ab344d46da604b97bb30d439cde67562fc58556e0c7c72fa73da6b65ba1005e320c0ef19e6446cdd0a806903cf81d78ddb3e7560e814a0bef79ef9605c636f812c7ef5c2295e794f74dde70407f26aec66607711af13e1603dee7b784890e3f89f14f8a700c3749f976c5ad81a0c87cd4e7cbdf4f8321db793f4c891ee0b13a82fc7b6abdd9b6f6d93fbe400e3d6e5926a69f0d0b0cc61650d2d51df34ecd6c2f3cfce7cc5d18a6e8e4fd500f21dbd263377152a95f0ae3302f6a868f2222ff6e847f6a5d30cef983281e17e08d46624495ebfa7bccae03e8d35000e7488fe056c9f7b56b302561e2a6925ad9c45c367ecc03ce90c5aef8d0d0e3a90fbb54df1c6a60b512715ffd7a81cb124591bbf52833be6d3c176fec1a5a296eb3cb01e399c26006d86402988e279ba309e2ca7db1905ee09e928f82cbceb205fdf611b9d7a08b99c385a6cfe90c4c314fc213462db1f53e2ea4eab977f9b52cf01e6a800520fc2793b9f8bbd70524931bce7775c9b19daecfa93a8655a12a0ceb2a22932f71fc7eda1929b3ac347c80a57f01628505c2dc7a6b657928363de7a783378fda11999ad102c952ecd63301ffb4677af940e87ca4c1fff376f69b58acb23e5496c3ec5e14056b0bc58dd12260d72cf1d248486e3a0c6b7ee5bea8f5a97794103d82b818681bd1f61314f20d0a1253f90643e13b82b6c8756c4ccbb84bd0fc0344a63edc232ee07b5aab4c75a04c65b8dd97c6f19c71c1b8def5bac9491c0b70b8a62f0b54bc3cb151776085533bada0fac5ddca22409dc24629c90b15d60906f444c2cfdd42408275185c9c2618e431c2e8e714f47ac587069b0afb0dd87647b8720d1886b16d9f7368a476475e6d32c4e8b0ac406423c9a924c3ddcc22e226d48854d25c315424d261f6c478940ff3925726b048d8d4e0f313c98df2f16348de01e20821fc9d334881d20f16c8734c96b60ff4cdbef3535ddf524b63f03fe288a784b63dbfde88b43faea5c2175d336fe64d2d446cef545f13f362e7dc9b5f9e67c2e19e4f61499453271c95ec57b636200a94df348636d0ce5b58d6a256338797ec3503a0b9d2e00c7a3c80e3820083c3557125f410af391787f2afa66102f2bd087cc7594170ee8cab252d0638737d628b915d9b03c50282b9f5417ec754ec7ed8d9c3d2d8a6ef6fd14ab755824ff9f53efce054f468f3bafe6c41d6baaae7e347cfad13fa197287a36bf851171aca841c0915a88fe357a2d8ade5c0da268642b7a0481e4da7dfe6fa046bbb834f727e341fca5c4324b5749b7769a598665f25b4e303410bf2cfff2ab5485b85f34f86c2c6584fda2bb8b3558818eee301882ba2e76e3127f9532d6113c859e67c017c97880eca48a808fd874f6660d5314d79e05e11c669609a598e99c12ce4c0327972cc2a4dbef6e2401e47f42f4139e924c2d6880cb4642ea61e935b802b4cbeebc7561c8f73284ccaa3e03b608301cbd0be4b445bb0957950ef999b3a2bd41d6867740465b98d94e5247e84cd2e2cd45d1fabbb422516ebf4c6a3b78e1845d6e586b67649ac625365a371000c52545787780e2ac72314586c867562db270a0e7ecf63338f272d8527fa4cec2db0ded8b866bba1dfecee38b686d242c8ac0cb9827dad72e0fb669365df0d8f8025253168d84428ea8a8f5729adb6a84f3fe717b7456448723c36bb902740df9524403950813fb99e4194665aff7e678ef438cadb8f129d44dfb4a7696d927921ac87fe9dd0e0f6902aed29248eb51fe2871aff2d276467e4f976d4c0b56f485b90e51d561d84742ce1ebea8d394b740f7d1182eac55d542936191dee4b457064b252a83f1b87ffa7e18305e173ba31f30c98cedd7c498ad833adb140c688e3c209de1fc1aaecd78f41cd7edcf7535abca76eddcc4469ca431610998b30d59c60ad957b35541b33c462053915bdd8eac517f824d7d7483df4aba9e5a4c1e693377c96cfb4a6e2bd7a1b8480b77531b1c265f26b7f72ff269608faa0d8ab444885721d68caed9976e79fb3d220af731ab91f3f034f79f5d227d8005a777a104bfdd4dfe02a7da2f3b0262ab1d04152e3aa92382027c975f3d0ca279e59b3ec44206bb135ec618c30c034fdc4a48a89d60ffd2c203c44a78c20f0151c52db05674f22e178392c057c2f20f547baa3a62e82688cd3cdb73040da707330a5989d928134607ba9d906ad466736d84fb38a9510571b359bc48104de57b0ebb92040928235a3e2f2f415dc9d14ed4be250c714df5aefd2801e59906f8120ba4fd41ceaff15db7717b08eec1918d49875989e842b9141e192309c8909dd222d3de3d5ceffc7735f66c3d69ed4ea3dbc0498b56cc3dc07dc54b519495ebba101c2271548ddc653994fc5aa413aa7b5e4d78c65f392c3a7b64b5456a976572b796ee4dd8207cf246091ae6b70b3b417799922a710b4d0575559be6466763eeff1c4b0a21b525093c7524f8db44df95010fde62cd7abac7f09aba95f6afc75175cdd26a334e5c2f62dbf26fc1405816eda2b4473cf0e2770a59627f296a067c908d797f895e866f72a46c0b40133a43f3461153a38b5b379a5c14e538667b02bb826084184f68fefa1bb2eb37e82929af742c6ade9e82c5ea92b5eba1c9108e8e97ba58edfc6e2575f1d445137c6c62b1aa288e0830f2b36d8c4ecf6c8935d7bafcc03db637ca3be1bb20426ba1c44b24e9ce45047bc2c695015c9ef1f223ba49a4b7cff44457b8ed6ff34bf1bda18675365bd27b6e9c2ae34aafdead24781daec5016b3f5c5ba685eb2554e4489e2243195981c12c9c6a38e6debd289316a5275c466fed2b0e07226e04c807514e087c2090adf08b0350c2f746af3585626b8aa6a412c653f4e9601dd73e48fa5d7f3c5d00417096bc1518c499993f98c43a67a8f8b6cde70946347ffa1ff8f8ffe970e4eec97f0cac99bc3500f6a8398101e6a92ff319f0bcdd710288c3d414ac0fb24f0275c8ded375d45aca82b72ddf7961b3acc2a8ecb7b7ac748ecfd2ac2d911f3a6f7e03b4452bb8e5af6bf40c9e40f815bd8c934a7cf6078adad30632026036c634eca769e5c804aba00964c1bcd3d4e31cf69aefcc18225c4f66ddac0753c21a69a3398bfbb7f026259c7a0c9033e3748baef4b4e8ec4ee7ce413c327b3213dd952a44dc9798f5f64e9e3d00292008e36fac78e594c0158ab229147447d58ebe24ab43d3c357535b399993850b2db3908d88c7c3f7975089d3936132a32993eddb03bf1c85e98bbd19965ed73425d29cc8ebc7034375588d235b98c1ff425c9f6afe9d14b050ba25e0919f057279c170fa40e54e2efb6122d5fcfc8d47c74b8d05fa564e8ade92c167948b7306b3d236d61ccebf41f48c3814227c916c558075139de7103dd4ed63374d2d58a224675edd0d0d68f08830a34e7827e046bf2498e95facd617d0f803d257e841a9536a1b64c6bacd822e9d9b0c1a9d20c330403a980213cea2b08e399789f58cc8d32ce4a5d2b467d198e43d590a450a619e1926c73fd45b81d7c0c433ebb9eedd8e3df3e94c3822cf383707bb847eec01157227a24ed99324f64f05a23facee2db3e4c9b7417cdfe3110e60bc238d2707c5f290d50532c14dcead84ba3a5767eac150a81bb6ebf316f0a60e042054b0c0e22cb59ab188e36090246a54c9e80a09785b18fb81eba6094950befd29b4932bb67270d4ee502c87c1eb06f60ca9d9698b09637970acb5c151a17f12a0ae6c0074a29d3b1d8784a1d3454915eda5ad4d768d186c5866d143130247712347ec11bab49e9b3a36030bd93c49e85fdab21ccba28bdf1e7d1efe87d66d67cd7a5afbc881d71e39227a2bfe37c1c5cc1ae67cca8c54abd57cb5020c372d49878a0f1fd5b933ab22e5ead9b26e90152a1a9db835e0cc16688e2212aa5f28ea4644f9f4087e9d4e9b850a8fad3136d1b8ed00759785938d8702e6750fe7e1a531ed19a9126188bb940dc567321d5a947f8f89b87c0e0d64cad4f6aa305d40f8e7ec050a57d768d544f0baf7478b463de7018841588de0ab2e953adce82813a67b6066c72348374db11ebbebc307691d1be1a12c0a9d771873fa0f2d1e5b8875d2497b007b02f14d62824e7c591bd4b90e614ceb452a82f3f77bc6d334b5b57677269522525118390e362fb0137ebe1b4bf1548a50de74211ab62204db4f11dc1c5799175ecc3073503ccc6ee5a400b1e5015948d1bf04363a08dea97726f76250e781c4c6cb4440bda4c76239a99abc42af4e7caebbac98e1cf25f3c54a2a4c24f3dbd75b9660b0e40778acabbc2c57856cfbcb304d2db9b7e018ab67ab4ce4ce1e48e8247b149c1603696457b67effce1e7bb2e6690954395d4c647827659c8252fee26688f7b0f9e4d8ed61caf8bab07dbf56022b08c763e049736b2063b2003347ca78fb228e470c3819ae272ac66ff70ab22b6bb475c6fc0cb9beda9469a89d00c401d6b1f03f92b016e10a46d5ffc9740601b5dc3dac71853d4cc52dd304c51b787a3e46f0a4ba9a3823d1a1e4d47b67a5bf6b14fc4e1b1a9a442ec6261b691dbf0b73864b524b058646b83699ee612506cf0c3420478f23341c04dcaafb0ca0a0241f99c4c15d341d3d452231bf6a3f2c28c6d551a98a6c47f5ff4e2d57f9d2a161d5ae8d0e751d6609bd2904d0f71f5ed362d72484d3b6c050fee10b1b52f5639f4875c549a3eb1492b73094452a802bf6bbdeddaff335e80f5abccc5583dd9252a0a30332517dfc0397c12da5a8f0c32b72d046223f13dc10d5ec46e6cf75237fed72f59fcbe4b0ab998a187e8e559d21b0589338ececdaeff8e15ab7da3ae2e8561e0a3a12e9f9704fde57d8e8656ab21c6755a9a0505eb7e1f03a8a99be51570c692f418384155e7732fb8adc2c61f9efad8110ba45058913cf43913e27d90672179e88e866cadcaca1fedb558ad11754248447c5c24e89531b655d4cad42a13e73b6ea19704a93d769bb0bebb30ba7d78664fb0b3524987bd519e0351f8a5777c9eccce13ae50a046ce8ad6dad9610bdd2fa32dcfe33a0e7e1f083a25ffbf64ee9c584108d8a8a26b02af280d5b6465fcb33b731f21b876a86a59dace1a013eeabe3afb3e91ccf4cdf353e6d5a4497b979658fb5d96308b0f1c7b7363002a2136521d13600948beec87cbb53c1d1925da6b3039cef470590b1f57ac26a329a4e76c0c4ca39efda5fdc71bad65f2242c76184d7c56753131f3ca2340abf2e7e4abfa4ddd12ef80de4b2570d46e2f0230d7f04aeade3ca5337696f3efcf58cdd4925a1bd362ed57e8283a1bc60c905ad5e15bcca16fee6ddcbf415c89de779307311d43a84bc6b548aaee3b6c7e79d44a1ff32a026c2de4598feddc5c80108a405ef13e44c0e935fa535545e4fe420f7c05da5de8e32c20aa58aa705afc6cdb1e4b26bf6f08f167c753fdb1578bc2759f710c8f4b1c224f5a80183ac8a4bd49c2a4fa7d5195d881ffb94b32f783ed35460419d3438d997b086afd99eeab9d52d9b3df05952cbe3ff6e249bdf6b8d72dbb1db580e6056f5290544269597cecb48e1fb7984fbe0fffbcb80931272a379b5d00c551370087a7c68533ddf245cce357b8a3e6d7dd7d1af015f324eb7c9c7ea49c816b31535b077c0d62518dec941b71aefca7bfc9d7f5eab1b82f9b1213e7d6d4662e427142a0899a8814ce98e554707b31b3d0b56421c323172b11d1ca66fe4815f2c39530c0d3809865523b8d216c2638968c9d9186274c5d78a9504e85221b8ceb5a0916864bb1e846a726a3aa7c40fc5e5a02f4a75681bfe63077391d3f7ee4c6a26e56738396f012b0959341ab4cfe4e55918b84cb21fc7a79cdaab01fd6aa83f4a5545d77b6860a35a4f4d90cc3980618f8601ded0de5b241ffce24c0f39452b336018a011d8180e4ea8053199eddc8da51f75fc590b6dd75270fb6e8aa7916dae756fce3074805397d82fb6460a2b1b44bfd333b77b03d2372299be38ca8a274c79ba2e5e55238af7e29e94ffb5d14dfef4e248f9a9e095a9d255a408f7506c92458505dd76acf98ee2241cca99cb444380cf49a3336f8e5b93272cea4acc40742682b3ad375e625885e128526213ffe8db5f58c15b4387c44e17edfd23613bb65c64e047dd1a8b5b8ce03fe14120f2a4aff6973a862b42253d47c16ba4b4b5ae9b8a364c0ffd57234d0831896b72438d5a65e910c1d08e78704908cd3481c2db8d79f9205a80eb893158982e9a2ff74d6f8e5e2c37e785c54bc66d13fe7a591d4d2601ccaf3994fb3777d8b18acfa51535d88f63bceec9fe06736e3a73446bfeed10e463e01f89e7709268ee7dd88a5d266f3dad4583ef532c5815dfc472cf5bf12e5a212664b633818b8fa9b8abfe987258e6ca6e3d6f9c1c68ab0e69a23ee4d2a522719eda1c2f2477e6d20462ad887a543f47f322c34d8b65533a9c9bca607d55f665c7f285aca76b3caa2eb81c665591b35637a79140001acc42de868671d132519105408ea56b9fb577870b535c4e2d5903c03b086357dcd2fc7231516e24721c992292480466d73f846466b1ca63890311b870c7583f67e063dd61f367bf8183d7c89dfbf7a225b6e99f9c529fc86b5d316ea502f3bcff39ee6d3c04da5dd47df10735bc87bcf74da3147881ae62f23473d348b55da5eb901aaeb7457ab07bd797d50fe6eb6575270025f5174d4d556353fea90fd92738aa5cf6206bb6dc92c2958a24b595e52e1b3b378fd99b5779fa78a8587dd840d0c803dab07bddfa783be7609081b2931b1f84339d1ae28252a2f1b115e76a45e3d392b72f43a697dbc9d0f90f60665ee8dc3805be460e861650b6995312e25c9b73472aaa82c0329168d9d80729f047965363205518f34c3fc15b074740c903249e3a9835d362c1439e16e61c2867e4689ed6f9169320745d641546876e5d87004f9aa7c46c532deb1072ef5cf6c8df243b6b88a51348d0ba999cc33edbe38eb262f9c30b43bed1171e6f23f7409c759e69edca3c06f3e7cc752190ebae6d8eb0d0979a752a47ff0c427e95847e83f8977e49416f16f473776f25e5afedd153acbdd2a027f72a7bab571bbfe0d4b84df0436372f2e962e31ea403993212e97d2920a18c16c8eefe2bfbcafc91b1926f21c0ce667bb822da8a9bf5ad0ff45fff63f11ed92af010b4a9998a0dc2d6deea0eff512aab52ecae98b596c2d8dbc9a18624ae46752f6bbe7cf76d95c6de176124b6b04f0b6a94e9bdab439da5e6f37f31de2157732e7ab16437f49d39783708c4ddc36a1a2ccfcc5ad036aa341bde8950a6bdd1636d8a1683ac1511a2dc2d2a059a4895688202c7dcf5ec769bd22801428e8f42ab19dfe825012b40ac43d5a4c20c23ecc389d002b1273234875637004d85d176487b4319627c9560f2548e68f9ea0a117512e4d8069f30390dd7c2f067558b0359ec1b0d7e707f0755da90fc76efb8a98b3b3156629dff810b1a1b134f02a4bead8cf71c2c1c23b3e33462f8d784b5dd3a7b4cc1fe167b271986dcfbea84ee446f23d8159588c5445556d18cd640dada45a6b20d0157a0f0066b7510071d8373d2e0e1b6322efa7d10414ef7e80a71517cc8dc667a0747c1efa96e0e58b3e3eddcf1e8357a6ad386c450711130089df746e0c2ab3a47d125d91e0e84d205ff9c39185fba56105b6c91cd0cc2b5a6620644cf00ee72b758c8e36d9355519823281db877e2739d0da0c08b3188fb6135bbf31129f527abf1fe0b16023b8ca358833a0ef53e58de19740d9a25f5d81a6bd67410f1bc74e2d83d7aeb253f5e7c605ec77ff5d24f0bd6a17d406a2faa1c561d511acbf19c7bc39e635b41425c2dddb19036449626a832c4c9d1946fce2910d9595f3277ef0314607a1b9f78bb3cad371f7b24f8b2b0f2dc5511ec8276293257947765e478d26a65ee2613e887d89befeb7e4b5830dc17ceb92f724bc350cd68364c8c028616e3b4fd2a51ed2ae3ec9ca488c08b690141e1d99f413f34e1fbe1b2734e51f64351f514c5e0b8419a224680b4a759b3e5af438f46e9e765d6481cd652af845ec702f87f3462cbc3d197b7a3ba8fffb6004b82e0c6c262201dff76f2949d00fb2bd22eaa61c87f79fd2eff956db7ae0cff3613caec13e0b52d2acf1ccd0360721dde2eef5c277fc28263f1c4e2e30aa60d93ce96782a28b123b30d795250f367efd432fbb6b84bac0c80a41977ccab08387a6fc8cc8713d4ac8e9996a95a3cde949197bb54c1b658dc99f29c21d69f5863ab179040a00e666961dfdc0c45716931ba61dfa01669b44f36fc2bc6d3e632b020cad618a89cd29759d307e678fd31ae2bb4e73c1b5e7d182da43c7ac5f5574d6eefd56966d297253e67b44a25ffc6fc405cc8932d6599dd6e11b2ed1c342605f8d33f630cda847fdc16fdcdb6c9c0f16f4618f0aca2bc40d52fc169e180e40fec26f8c89d7048bb0f5d2639986133e14805d2f7eb0d6082062ce5172aaadcf4787c5c9a8d684ff4943c5bfd2b03f166a14ea4afa1f0073ec4fce382c9f54584e3cd1c2ad026f3f5c1b97970569d9c04967cd267ac6ddaf8b1d7e283b19cff33f9f5a328ca24f88cfc5def2621518c7f190ca53444f6857cbdb68a0d8b4a1b69da35106332705c1a82b5a5fcf7f67b28fc226ad40cd37738d8d93c8739a037783fb0bb38322b7641a8d2fe9ec0980f77b0030625d19f62239e4357aa85b2aa662aef5409cf0b62cb40c9e1a995f425a39599138b14cb14d7db3c8913f88a7cb66e5e871dedd9c1193434d7a93efdfa253cf294ec101a9fe0a2ce37faffa431c797cc33cc0af4cac2b6b03595965a1a4debc133212a23cb7ec049f2bfde7065957def38de28cda430b85d5e8ef2e52149aadc11fa59d3e148f8c0f64975d434e346decb723369175e49610901432d546232bc29439ae8c177598ac656fca77813af9560e6a4e2890ac465a26c19f5fa3c7b003f60dc7746cb62c1ca41e537d0412574227e0ae650ff6b16b56df5b3995705ea5e67b066fd456ec608e79cc47b61c1c0fcd988364d401da569d83b12f02ca2e0f0da57f32d390bbbe698ae02076d1b21336f7c29da415b4811f60270cca33cec5665a22b2f5b8207005ad19bc3f0c7228a8dd8260c7ebeb7c2376f60aeb60f3d1e389d740ee2bcd609cdbdab137a9cb5ffb0f52d3f034faf06f0b32a397dcca4bff0cf0486dc2c97c78c474284b5e5ac1322164ff5d5d37394e5eb4676016c18f0247c674343227c0fde18e6b7456841a0260631054080461ed1e5e5e78acc3281f816fc7d7c2dfddeed9b0e219d5c8f4245e38e1867b1f22d18b1686b49c5b2d15efe79dd4bcd557f0d11a88c649516535d44b27ac49f4411572fe6eb890ef8cde93d63b068ab04ba9e8d947c38a73b6e95b2ff3658018dd68b2fabe4de378b804811977234184b1da2a32652c737c58c62a16c87b19a2259f49fb3b3e6e89632d7b4c4a34b4bb35019bea8489a9162ac29da019326a6dd5df13333bc99d4661ce3feeeedea2b8679afd2d53f133920083e9e5c7cd5c99bbf807311594a1aeda5832eed9b620954af59e560566986f4e03d982fc0480ebcab208a679fc04a42372b57ec5f12b97080e1fe6b54ae3736d60f14bfe3d8e8a6ee2d5304f11beb1f9951d2ea69a70471868ba310e6268523ce02db677325f642500f12ea5e641a62e5d92a3cce9630b20a4c8bdca57f815a6ed27f13513f727e00c0fcd1dbf5f18c071608093c0ea8d1ba3b594ff7a876602492dcc5525ed5c9138b3fa33e2f5445cd89b8cd03d588336d3e545db1637f1cbec00214313c3d990f0a69fe140f20d686cf1ed66dd7de7ff50dafef98c8d45b9206e4a8c56e74e886b83db545a82bad3740edca6056dc1f091bc263ab54264d396088bf995b7ab3c6aeca4f8398fadd56414f1f58f540c233f6b5083944da06d5b7bcabc49e677a92552f878eeae09b1f5a59a2aa206fdddb3281a3cf4643fee92ec3521aff6bc3f024feca480e26c27172dbf12086642557f6c8eef4d5af91c79ab4ada9496c9807c044bc96d0c65042dd7a01dc99e7160fa52713b1b8b68080f5f0498bae7704090044b3127da8e79b104c988b61c16fb55f9935e97d4b6f73c532c9ff78e5992fc0a03a8f936a4d2f2d7ed3f4ffc7b4884252e789f7f46563bd9762de3c6dedca7c5e9069bb87ec73b70ca2c8bad3aba8980eb28100f74f2017375d53d3f4185c174527acde21535824d647ca7475df7a7501948b17607cbf6aac98eec02037c2516b250197a8b3821be8db45d66a211f66e27cc998b2226404540602dfeced76d27fe67456846221914cc9d69d5901f42c3fcf2ea050d897fad32a5062b4dddac3127808f6135b4b1925517ed350592bb922e6badee81a3387f3a00a9919319260921d149495bdf0166c060ad8ebc36ecc568e83ece1c9d564b09520fa2e16f1fee4cd79ec06485ba84551ca8ab81e940002868fe128a8ef32f84add5f1c3d786d8bb1a794a4e33e7364ec98ffae0d621f2804813fd7e058226a94d6873c5c61b2fea96ac572185ab2a8672f7f1e7764fe9e311076db7c7a6c0b5f2b3258ab3b808cc7909c2596a626caa6cdcb7008d1505ea8558c2eee0657e726127a356898f14dd25b00d2ae19ce8f6030e489af7b21adfbe4b8288942c6297db7412b53c75df4c4c38e0bd7f481d2a2d7be571edbe6932eb7f23504dc9f61886ccbc932a358104c8942772ba6de494b9db75a4e1d63263ae5c482fd54803e8125daf24e6e2f274d18b865e73817ed8d9ba98cf84bc2ac8b32ef3874fa844b3548f3ecf5be74635d3a3cbbef5596837263ef111c81a86f83679d8a4c6d2cdf87ca9b16f67b6ded47990e4747d48edb5583c38c7e2b22eff57b3f1acdba8fb6eca0aadf28e97000891182ae9bd9ddfe655dbbc02463a898aa914c4425057678ee7c0a98e3c38da2d7d4e43bb88ae0a8254e5671d94daba4dfbe7a6fe2bb04abaadb8474856f067c965c5a34114c1f32ef22db0bae9354a0c5a835cf79640e7d516470e3ee3176ac622c11d33b92f0206ce0fdb974e3734c00ee5df3c3f24122aa965cec0480b1a388647eab714275901dd907f04287c7e629619b177ab1bc678fc914df305ab3f48d2489ff10a390a9d6137c66f50813a74c13cc63c1bac0946b799407e0b829d1a5bdcf891cdcbd7b3d0272b4abe6b5356b2e5a36990092a1c3e6c6750309735c3cb57057ba07e59d5087206d4757b425f99f82206de5bb4caa042c2990b81e4d71970190b4d29121dc4d53b8f11e64085f93d6738764419d4ab7bc19ffd2426496999d75f8ac2d8d066fc4da93732f857abc811f98ca79ee6262a8a8cead381ab20c367a198a1fc4c66894085cf11ffc1b721f2334fe9bb8c3c7c5fcfda49280ff9f8e02cc31f3fd67645a29419f239e8698280c53583ae7d235d1af92e75cc16c738f526d20ea2f09cd86ea77033e92f35b44cad20c31b50a06d2fa1654fbd31bfad62978f797961f36129afb4717b311bb05a6f022c9b3776b4141176536f8e4acb5ca107e6c5ff291b2c80a6f9bac7ee1df4cd1fd11d93b91cc73a42d4948d18cfd807b314dcc1bb810a0a9979bc550525bb4ff74b32f0c09cc44d465023ba0754f41a365a08d0d3cb82e1e52a36d8fe2d50de47cba08b489ca913f874a3f4440d0a497f56b798993bba8740474bbb8835723505f225e90fdb4b683f9a0b264b56f5808846938278d46c1fc5ed8643cde453df9831c6b12e18db8c04e6254db4f2b12cc4b32fcd41699cec7e0c15cfebb0020f6c8585d40f1bd561d90e9ff36cff6415f80e4d34e54245f2c6ce230d942b1c7446bd068322a5c1b419adee7399a34ff5d3ee4beaa05c44348eb337418ffd547417fd57597150774da8943c55af1e726090c9a2fcf3d4ed879042000fcbd559b34f96817316929b61a38136d45f10a3acae9504af968f380e3de399a3a382341c345197654f5c3b234c782075665b24ea8f295ce36a328e8ebf6bb987a8cbb387a72eb616be31627e43e38b4226ae951d38cbb43ec5e1686be023c74d98909514be610cc7344c4e8e43808bfeedf6eeb1d2a62b3515bc55fcbe646d168ca77c309aa6b7f7fef4525789d0ca936adbe8f7b9828f7f2ea83b945bad670aa9d3bc4ec40230d32b0d06de36f263228d110b087e2e5602d8a3dada2dbd4a21ac322081011cc8848c5fe91efaa3c3f2646388301c00e4fb6c5be321e151a4aa3f46d3ff55be3dd0dafdb7c6a2dcaf148b48b954996281116711f2d39d19e3d2641822c00c7a13ee44d2b61a3b68c85d8f34129e7086c5a272dcd7d355fcdd6f8367b4cf973666ac1500683f1f26691d45fec73041af962993ef0f2994728c961dee7fe8ca93c50aff325d62c98c7186ff8f8f0eeda3ec271b42424b0b0b6f31d843cb9c80b3ee04c0e7979329227739055665498ac78ff85dec1f50bd3e8b8df53c319a264d3b44872dcd1643f716f51691324171063cf01142a88fb7de68dcac2159d73fc159bea9910a726bd6241811255a126078af8e4c9dccd18ac79def6c968507682d3e78ba6462f62443db7237fbb77a304d3e184f944e0bd270717f1f0351a4b85f6f418afde66069653eeed5e3199106d24e106d77d70893f47a23b280b1a777b5519945e316b8177493dcae5deca13a74c7ae7d7875edf8ab0ecc8738b2fe25b2aeb94e27ed04a3f1653589e7aa9f6bb8ae07609a89667bec60b8265eaef57c6b4a3c1295d1459711c9a6b0cf25627885a3757b7ebd18b90bf7bc5676c3007bcc80859723f5fac6be8c6881f9496b97b664101620abcfbad2f82e1d7b5d306e84b57af28f1c0c422681a6b7527d8e2eac0664105204e29beb1289cf0f2b6cd77e347a7151ef525eead47816c96957beec63db5aef9e2ce77b96ead842273b683546d3bdd4186d964901d6e061b7283d44e0c5264eea663c5044642890d26840759daf8cc98d6ee49b90c899a14bd9c200409df5a7e8aa9f95c297b70b59dd86aeb3281faeb2ff388f5625b58f1558c1c137f777c32cc21149aa1ec534310bd994a0b0bb2527c7f42d89c249ad571bef885580b3f768395151ad91fefc1011dad38bde03443b3aae8027f5607eb6ebf7cf5fddeca65538d641e72106a2c18492336aadcc78c57926ba4c0188781b4c1476fec0771ca91db41c130aff39b6575a8bb37f311159cd87501f1c4026c9a1ba1b3dcf271bfbb104d75ad622c9e1f396fb4b0a9ca72e620b917ea69f84275c6d82cd9df13b906041941318060fed11119bb9d98b8bf6f954aae9249dd7630e237422a6209e83952d02811d7928bdade2edb13eeff3bb5620f65ea5c505c522f81e892e12733c1d9e9775a2657a5626429d9efecc09c433a39955acc1c9ce1950192f11a6e41183ceddc65a47c991aca0943f268062029d1d2140f770cb1669c30e0fb9a5a4e41634789f377881cb21c82cb364c04c003605c2faa718a5d2ff4e0b8754692c2f8f82ec7c63e006768ccadb18f14a61f32257865ff7f15430def00a1f6d6d6cabbeb98b7538884c1152d5a37e4546d0a27e1a6c5a09c82050402eb7e0a554d6785ef3c2af65bbb89bff7de67cf30a0a1405814f0f2780fa4be4846263da314ad5afaa9c154ae0afa1ec686b162e3c790cdd473172cf444f22efe764f6af32b345cc96ad507ee223e829b87131e397fe31ba3ec901aa7a95a6d089fdc7d4da9eb17593ac4577d599e16598be2e5149156869416c5cf5c4455ca6b2e8eaa0d40ce436f48a8ea2ed3cbf949c865fcea663e767e06945492ee3b06d10389ff621731df128e9f85cb7e976797a9cecb45c75c39ba6a7e5cfa7666cf081d502fd0f0a6f50b321a9a8fdf9df8d2074d9b42e43f5ca4b72585fd93b8f983d7134dae9eb1e36cfde033ada7b12d70f1412013ba04f31d64f50f34a60b5ed7c0783fa9cabb0a06e0c500c7220f734703d33a7dbd96db0c36072cee4a1ef340f737aa3f0c1557f18430977770a25d155160135adac68dd89e94d6adbef37c191a3b1a454fead708f7f8d4c98eea23fadd9e3c19c2d37ef0278710a90fcd2267ca1552628a74ee6a55422cbf34433bf9a45974398a3d7743eff9a74b2026574fbbfeae92c5d746fb9747f8cc7c9f917b311b1bd19afe7ac833be1cb37960c09c52aac0a3706ce2e0634c805a5fff12cbc741810bed830df8f1343733ee053c3ad9a858bb096df807f0232344fd29099a1d40b6a599feab4f900fc1d20bcda9bd3b2a88d01342579df9ff415cba766b7da20c9d6fb7e851ce9bc96fcb5ec9e6db5a493d2e5de63d95c879e5e627af636a5801a7cf89d7bc7c94ed780b847144eeeb4073f5951d5a284407c41bbf53243f3caebc40fff4ede0c97678b60b65d273e92b33993677b550174e45a86bcdab3b3e608ace7fba188947e249a22b1c058d9333f560b657e04be5065a2ce6553783ca5e9c9b0bc7c786d1c034da41eb9e82004d4ce71182971e8e6284bddea0f79ee121755ea9ea81eef0db551c2704443d3de8289ea1db751083233964f78f10fac0020edf24c1a25a10407e5c515fcdcbfd3269474064012a2bddd59c8e7b0c651b29017c1d766b66a8bdd93fc6b641deddd0df7bc19c87be570bc5d759dab294e1b6f1a8648c89347cb38ea1ddfc564d312b7425b8d5caddc8f30cf9cf51a19f9a74a566acc272e8e533310fd4f8819264ba81058d2077dfc18372db63791d834c80a9d2856ffe2d33d7534e2df3e44aedea252ee5dcb2dfad9b8dc98eda549ff4c04998afee95ae11cdb8d2e69be1b9ca7fbe88581ce43dd47aa805abf7a7379020197bb4f92e9e0bffa5477a94ad439694744f7856f11a1d3d08429e63acf4b4ce46d0d90504311456a70cb0470cf423a152922527d9dfe59c482954344962b90d83005e01a82024759ab341f93bf9b2200eb537117ab6e56ac9d7085ab0716d4c440a070aa429e67a37834c373725aebe5fef727fc80f226ec85d63a5fef5628ed3fe00f7468d739c6af69317a76dfc2a7fcdce7d7e1df39da63f6086fb26c664a5830cd0af9120abba3b94ea456ce1f719ad0ce5855718e803f60bcec821c6f92a52fd8b65fd58d7a8b5644efde06d23e7449ef2faf7dcf4d06e0dfd51658df074b888b0ffa08c426e7a6acbbd2b802ecb18dc86aa7e4c9b328800e9f156ca1bb81864ad7cca2b32bcd4da64e9d354e35a078c835c2e77f71699a0c214bdc74c0267b30ce4d0b3f52bc40dc72d02a72d6dbfb704108ec654a8e9c2c6934615bd33aec7d2bb8bcbd1db7aa0fdd50661a65643d36d8cea615e5e3621242700c0d49f8c2da7a9d96f824ede67dbeed2dcb45b6c33854fd1a2474a2ef4df91e11a4f8eb10ba1511b3026030b337e147cb467e066d417ee9599de5ef85dc31a4017003464d1d025b67aa463ce5d9862bd2267df2f70df71cea1bae1aca49b7c592dbca0fe34e16292f9e0972b336acc74f3a23b1be5a41cd806f9e6d63c57b7cdd4248e6d8269e79efe4d84d91f951423049e9252ecd83d50b839b5f7a3c9121f8d5bf1b239cbec4900b0bac1b432b87054794f51201d759a0ece33040b20333776ddaf63fdb4e90b26246c8279d963a6a620e1655377d15e9f4b11e5d05056e37809de2ad1a40fdae4bb7bf08e79f431b03a20333629ba0722f524f7cc0fb151ff127c44a803e6b5ab3fa991213b9926dabe23334e66734364aba98b691169973d63bc0244b47e1da0ea6b1facc866b89152fd303c625e864e5855658ea6d92c0aab7c4b622fa1976a317d080aaf8fc428d018c95271c986f805fc3d5bfba66b4627c1183c87122b13e643f159bd8046469944f47c3542c0cd136241b282a317d7d9aff753ecd1e8ed4a482fb08e53e2e696ba767411e1f2c13b1d919258b2d22cb9bf8a948dba5e97e6994c99a7645ced08dc6b485cf29f9559e8c242a5a0a45c188e05bfed7c22012b98886cd15d204387b4c4330fb78e2a269a5c4b4b677bc8c912b229084b4d8e41df556e9db0bb88d6c2c4c3e7b34be858035c416a65a557beb970cedee3fd3f8e32dac239505f5672f8834e382ba530e154b36080eb573f233f30a94be4d3f1bb1e72300275630cef5a6bb9e0ea2ee42953c4f634de2a5b400977662f6474a663b52ab27657c1339534be8f298dbff69887ea9c154f98159921e06157f009e4a03446da811b976ed84b0d697ba8f113bdd5f042d0a883e011dd97f4b4e2be2025a5bc043998a6f88b2bc29f2c2fa453db559709b473af3d1cb9de13c0f3463f9c79b7598043d6b7f61f9857df6d7cfece1a13ed82c643572bf28c3f1fa1551b740215a03c4cb0dc282f1dd429ac5f626d958e3fde2e4c28f3dd88c0eeae25265919eadffcd8e21235fd371f8370f8b6df9ba4f3d73b3a3534225337419af212fabffbd44574bf412f3f9cffadcd3712a5b7e6b672dc62d415777c7ab34c7e93e48d4431e9eabddc121a583f1cedcf6c2e4157dc1a737a0651c229c52dc28e248db173af1244f5c3f28c4b42043fb7b646fcf21662d61fdfadfe94352c9b6aead3f86af5f405a6b414d0a8ec2256aafbb85c21048876527d95918c9b28c7619d98cdc14640adb249da6478d9637aa797e65647869986f793ba66f096ff8b43862f534107cd181f8c996c15e1e96a717b3fa438ef305755821a6838066b30e58ac9d96a0d24ae9713c7beafef319d0f81ceafbcfa200899fcd8aeecc4eb78a14a21adeec4ce26e8b61321ca2b4a844dd04bf3109994555244b8172ababcf7d34affdb3421994985cc5ff6be6c57103a53676964896d8cf6f02fbc2437a9e95d3367f6d65f2f4e04fba5b33601e3a3a83a3dde5dc4eba05c48642fa0a5e0fa231b80e8239bc14c9e993f6cb2c5aa31b092265395b6e7f940278044768621d890e489089d2c97e6b3a024d1058bed122be7575f164b29c2c379339216c0d5e110aa71267cdfbb47432a0911d7cc6d6b39f8ff72e3c5a578e84358ddff3cfaaf943ad7eb2af330bd75827a2124b8a49dbe7ed826706eae07183a001349daeb5611a69523c5ed4b5e14c85d1bba81df66e0005b4e240a5ae29fe96c801ca6738600da2090a13e2db30c1d727fbf0c41b88bb60b57de26b3862d71b485376eacade04d4ad0c3b078d5f266b8692ae1e146ed7d8c9b6d35754a55c914166a9e9b47b0bf3e7267adb9437a9fe2f44572881afadf69b517746287119d37f71c6f97557500cfbc7a4e1d83feb42c5132b5b317e924d48413a97c133cb2e8d6c563d4d5bad055e720416cb6fefa405c6207f29eb478b6990fadaa7016e200fd7519b4b50bcdcc702f786e849a2a0ada1f65bee09c1fdee5aac59446c4a187954c65af58796ae206b3ae22031af394c803f05d72a4ba2324fbcfc188ce1a4d4d00c3f54d190323f668ba73e0671a63ab7fc57705119cc82c083b3f22a0d37e415a131c3885f2866c43ae55ac8f2dd214562561e1f02b7a8350d25d1f09e8f810b8aa743b59c2f7efeacc74fb44c177261fe857e2905cadc742584d15bed155348dafea80b7669e4a374be0145e42953bc6452550042f4454c4f0a0f6d8c0fe9fddc87a7cc48a0cd7b9e25a00555605730bece2d2a247af47ad5b069b5284be19c21ca3af28ed928632343b16c7cb44580165dc298692fd614affb9ff8c029999e99e649192cc56341afa05a5f81a797d90cdc60d10f88ba2ddc281adcb41e98315afaf1e3264f8d71a0b2cdc4d769672f5dbc8d46121475319b938c0b60008899b0756573d78dcf2932c96eed06a07283d360d04e34cb13ba89a35c3dadefc7ce5fbdb946df26a2315b5e84ab0107875cd18d9f7be321e0aa51016f52815fc87f006c3397e8ed421e8fea8dabdcba62fdd4c613063f9d69d22cfb88c72beb2a6cda927b1b296318a86aaae74f09b5cf2f86ed79e053a18c1a37f7048f1afa38f239acc174eb00bc01eb18a12e1fdee857d8569831b151c0ea17bb9e7c2e116b9ab40ed301bb8a4e71347cee34f5bed9121e72d0ae056a22e0957fc2e64675d69b387717ae6ae8c697b8e5b0d9c0bdc206b7135dad3aba861ba3a27bc3bf86b719cf95c4d00b658b5a1192abe4ee41e53370f3e3737e544370b0f284211080e705c2f93f8be1b8d00843d294690597581348fbf2b944dd3be427691b8906f3342fd8e4badfa770c8f56342a07ae2eaaf966ca4c6e340debf71e97f4abc9a41a931c5acee590d89daafd0ffc6a9db65872a41a835aa79eca324eb7b922af8359556b0c55a8e2fd5bcf957c238570a4e94c1b21026340532e31f7a581799da6064c2f0a28a955a71fbbeb52d8a9e46b29bfc9dc25d795e7c24432f65931cc4e85b1c29e53d8d2ef36fe04fb320fd5311a0802117db40228a65c8b094ee9dedcb577124b8e5846bafb63949eb380c74ce3e5effb358127a5a7ef83ea1ea456d98c9320642a36222e1b0a882b8d485e55009d0a5dfbd966783bf50ff72b0a1d8d524483012d76db43a0457d265eb5e6c61103a4cbfb72661851ab185bd68eff290d4de33be43e6b611385464d410ecc2ff129605d15c9933d80bbf95ae93f2c83d7a47ebb96ecce0641376909605a22f2ea79b59c5fa59bd63d6e046ed18cb7552639a69626de868a795ea2b2701c1f943f446fcf8de2f20c0bfffd28ac821a213efb4080c1a618e65be060a1ca059da04e192e8de3984f59d0d09df87ad1b18f5b984646f81a8d927dd24311faaf99170d78e5a5b5f22da8d63510ac026e3a6f50ea46a0d760f27481fca4d3fd9eb76ea9be5c58b1704b8e10bb78cf21cb5b399764e24ddcc3d8da6f880dd29829bc217f9eafd863522c8da56a68d6a7741c2c1f804e85dc8ed4866162bc60616812d3bbb7ce26bc2c9867f1456916f74c69f2526ed5b1409700cdcf18256178f747fc576bfb3481751986694b7891fbcd91dc1b2a5582257679bf1b276d34122a8e2e45644e5ef6ef7f6b1ab986904075caa8e353be4741a5df6a1e74f07d3b4a3ce3f3d2342d28745d39afe0f70d2ff2aadbd62396a3a6d6d822d476bbb583a24cdc92d8ec719b7f894435ce24f0bec4afa8e9237886bee78cde74e3128b775adc14aa2909a9585ba0b90d37d91325bab96a6151907e13c12aa58bfbec1615a2ae41f381f3b18d687f51bfa2d726481c8bace4bb2156c84d620adf9b72dea343a8e1911d65d53f52cb159a83535206784dc153b6ff01d476eaba3ceb84a59a7654de0c0ef01bc8776a355f0175b595950cedeb3315e05cb7fa187a1d33117db961bcabeb77f413e108e95e8cdaaf899d391d77fae145cd70cfe83b16481adb8b205c1916b22ae4729467beeb13fc466c26318ae8f35e7b9e2b0d57d7bc4fdc1c074a6e71ab2d84e6c0ead75d249af0c48dd213ad725bfee9d353dc8e3ee90066329f044f43a6b33d84c3e68d058a176c08debdf396ee8a6a105221c9b0a902b5dd71b7fbae5dbc089b7e71962456b731995be3372f1df18a2f5158c3aa91ff5aebd56f3ff373eed904192404e26d499924071d261d5c15ab014b891bf6615812626d21f46de6fcae82440cd11150f91df068a6b2d5fefe125bf6fd2212eeecafed8898bc4c66f4ed1dbc699c7d8543082b7e1dd1e3f5d5b697e372e8b13ea0df58d8bbcd157fc6d09fa884f7606b896963f15e0862dd691c12a99fa73a844eff18ab23af1e0da3bf18153c7cebcd63190de380f3855b1c6cac1fe8ab48d99ea6c1c028d213049a275b733e86c452be7f01422e1f12cf48584baf48dc28d55a0d8da9cce074853fd07e301ed482b3058efcb3e498e24d830f58abcf165eee354ddcb61db014474c905e59b40933c8f2881c0ed7f363f348df40bf353a20ad2e6fae7bf8d39c497486194f8309d861bc2b685d767d167ffb85f46a673cd9adf34f2bdd48ec05dfeda8928b0b5fe3f4b93c467fe3d911434274698f11f5a873f6a91cb32ce622016393f0754480bf13c1e2034acb467d622a67190b8353de0a16ff6ff8999514f846f81f47ab8048b9c7e94f456f511960a0d58166758f847b0bafb68b6a3ed350caff4dfe99ec4f6395acbef2dce2b5fc1ca5a1908e84d20b0243a87fefddac23e72b6e65d8e717fd8c8848a69523b8659f7a7fabadd0b95205da9ffb6d48beaa3f0eb9259956db99d997c9ee28de9bb34ec6a4e8547d5b1a2fad19ac27787c28c93929ec54cc46ff87ed828e83b66cb85c599d75c2f48d12bfd538c3d0bd2e1e7d5ffe9d3538f9ff56b69603f5c14c1e04ef7b788ac35c5386da428995dc6fd28a72399d03cb08a648708ea02dcaf1d5bb92541cc42f85af500d217d117eb027c305231dc75e7d2d3ee2d634b7cb25d5f936c0ad1bfffbd6356ce304dad4b4c238d1c6868fbcd4ce289c3d45aa0e45251f215cc75bdd6449fc8d3bae7eb612814e7472ed12797d59998f79d4a18ec24167084a8e3fb59d18f81bfefe20f0b73fae153a9317c55e9eb8bfa1bb2f45a3c6f4e6affe9ff5327b0f7fa8d5051b61f1e177757dd97a4eaaf21eb1925350026f558534484e2de62ecfb0d559c2c0250589763d19dee59bd0de6f0929b6dc8b6317ba863a2da031abb894c87ce630e91c64a5f3efe73e85852e66ee8dab3100d94930d7c15b78bd2334d9e7094704ea13b1f7b96bfc99c108ad5308a93d3bb7fe02495a7382fee95ad0223c4749ec385591ebf6abad10f6df9964e262c1741a3d4555ca2996d44644ba2ff625d216358274b2d6691a474321e8cd6e5db82426c4ddf6e4b1a1861c7796b4e602bb211a69c134c8ec5506b88d2c577e3c0171ed6916f0e88668e5e67026ef03f7ed52734b379cfe0e2a8bd87b44594c7e98f014d9540b1c9ff486d1a7634ee6b78b8c9d74c145f05165541d92ffa1f3e36b06550f010d49486179426dfa1a4e08bd3e4f20b798d90227b0745156acf369027ffe2b4dd33c1475ac4da04ebe9eb8116b0eb1c146386fdb03bd6ff743b1d0faa0718eb8e046d5dcd63e3074215a378fa7b736e3e45129dace4c0236faf4b4a21ea244688fbdaa19a4146fc5a0aeb1d0f1f94457a3aa5cd8b36b78a2c96a38281d9cc9ae14791d74c80134013ce7c3da0cd81948278e32a169d665d8e4213a28d4fc135d4d574c8630eccd1afef7b984162c14922e8d46c64f3d1d4bf40e1f9b1e74f4b604ba282fe2efc52513f55f99fb207a0fb3fa2a3a88c51a1bf6892a62b44ac4240905c3004dd87107a69b621174b38f26b86cfd06e3873e3e8acf66f7a9d663fcea22a77bb8ac56d86ac63f093b3afd93ca3d0b939d10d784b47f1d02420789fbb2fe48a936205b1faefac65448dc85ab7f0e8625f3e07b45051ee0d112df5d4d370a81e7011fca50dcdc29d2eb140e89ee41489dc0ebb7b9a893200200f26e35f7bc18f77447253bb8b59cdecc33f2eb327ea98b091b845514ab59c88eebe9b98e0c679fdc6bc74be2f6868efadcacb6862f632501cb91a3e896c7aea9082ce7e4f7fc783a1257d5e5ae438b6b86cd4c640385bb554d65702568b0bdfe99a086300062b1b0f608c2bc1672b886fe3e49716e79aee166404efd993c55c184ef62d0aae0d9b687b25b9d06d60290e2dd46a6281a0d91cddcbb6c86df39bfc47b73bdff62136866ac13f17dc8fa1e275fb545aad4513faff67738ed4f9566e631890e0c5f2933ea8474861c381c179386f4b8b4deef8c2ea7cb1d7510ee908aa6569e62d36df59e82a76bab39e6f343ad2f58ca7aa230dd8ed5ce248857a5e884ed6597536811c1f637629428249d2798b376b24cb01446d01fcce7aa5cea484d0b87c324aa62c45ffe8763570a62819eb8caf7bd94a464da0a4c0d3267ae8963cf52046a5908d05b5da44c50082c6a20db6c6972c10b2903d727cc64a5439b6db4d2fa6045e03e6b3a84a5a572744d4dbc389bcc69caf9f15635bb70b0aa0502e77a4bae95341c835cf26752660a6a3a854d64828af12dda948b5652752d60a653b620ba668eaf6f1a25b1aa8740544946ca5f419f8b9285f4ef7e4d221ad91d06eea61ce5d7eb0683ed45dc7eac74de6ca76a63b833e72e9c10f6f51a44b307b4868f1abaf8fd2a698f09ff533c8367c9bb2bb3e2a0622c2e40e7c734efc3cd8c108e31dbdfc29cfdec88b50c0814b2df90864013f82c6a1d1e5c50be4ff2e2a88edeb40e7e4d9ee09b6f5d2df008927ba72845090be0b426f6c7e512d8bf51b24cbc79b78c6565d58c10d0ffcb17d8c3320019d84610d4b8a87bf0bc22ba9aa032e893b91c045e812ae2b2c1a44e98451dc0360bf9c074559d2fc368660ae3a1e729228ad1d93ce136fe571c3d8bc0b160605096bee9e3349781032a07e8728b5ec62abc5cc7e15d3aa42e88ee03ff46569c730364f898b64371a2d50622846b970d889c46640aab0ab4c37db8bdf821ab713e913a4c906801e26472cc9960167bcfe4ae507bd4d9ca3652963715d0ed10a42333eabb75afad1cfc01f9c3d0c8b6e2c81dc78a1049c9d3e3fd1c3afbae983bbfa5140d9f593e4dae24c629da39679eb56fe645645dcb5901d9a8af6aa2e2013b09b280d6a68b038f59b9eacdb53361521313113d2baa3af37f9cceff6af306c3b3eb42f58ef6b347dd4c37a71c330ba9940089927c9e0d92b1134053078c1d0a2e5efa4d51863670698dd5b9dd9582728d0efd78dc3d0ca71fb686cb49575dde8b1740e796af477756929eb04a993073a211ee8392f595dcf6bc7403cd1ca1cd925b2186b136061be22300dcdbb980e71f7794f8b7c3aa3e445ab0809e6e08da60339c88c18577719cd97cd03f736400073258d0d009704b5a2a37ba19f4753e85122790cc5e04813d792855501ed26f9e285a8b9297b3939779d96ead891043bd672afc0e09f76865642ea246a64205d8e9ecd2c27761eb3053b84b85eac321c7c3823412f8011a09724befc8df325a1d4a14ec579c0b2ae17fcde2517ebdfafc5c00c45172b69e8da65152ab45a28e55270efa4442677ba0d563f1a832f3d8a91ae84279ec0ef4d3dba5ed7dc0991536fcc8109cc8d03fc57b9af6b7fc9ac64aff731185a5e671b790c16e42e79e91301b6517f0c1c47c3011e51943bdaef12dbd4de24f8f7dc3c0c5b3dce2d83fc18f61bb7a203a65dd67f48c612ac66fe0217d171557b6f76f0f039cb643678d7b95f3d5aff885f942bf472b39ef2ddfb52663e6e0bf2adef2bb6133620bce9ebcab1a71864d756ae5f3ad3148f47245865329c24ee7e39c6434b940ea78980ac2faae824b826bc703db25629871adacbb613d2804073701b355df210de4aa6f37f68dafbb9fb5c12406de560c57b4648a902989ddb840c3694340489bc09dee72b37fd2c566702fe77e53f82597268075d2b5c9586310f90a40f1ba253fb9abc11a957b1d09748a62fc90071d943f57e3761ac0cfd87ba0f707c891fce4e950c445796b9d7106721734ee9845a9ba04c2c1d1bc82b34017e870ee7c7db5f78adb9c68197a46882770284192c60acfe63b2312fd723880a2f44fe03ab2c6228ba4858030440fec10d1960d30a0757a207c01bf380dcbb1ea2de8bf233f5b098785b4e20fbb288a3839e7e083026ae61a8346aa15a43bdf7ac563739fa1db64374a73b7486f70cfcc723fb3eef3e9b0fe0a2455b1ba7a5d44c6190cacbe48bc59d06e722135d2579ed39bd8a847f6463c7cbffa1d1f7b3b1b5da28e5cc101a42dc4dddd16672141a58d0fc73de4434c06f2b793ddd44c5037b1fb505449f783f96c125855f8e7e57b8f8eb90e5ae340d54eb8ad69cfba28b44c41ca4fe9a5268789c95f405715bbddf4e200ccc9d432e2608766af7cf5131215b8dd99f57184a23cc803ef1fb7be2f07b0a6011bc24eae1648968f1f1436b6d3306195a23e589c099b0aab9e25c1f6cda4e0878259907ac3db385efa76d6684e03dd38735a0bcbe087af74224ed55b2f40b40e5902a8d073987264495417d4ef234a8bf71a70083c05a27c1f0560afa0c8159b41e668f851c5205e0dfae2090016e12cdbc1932e4b488daa218a91e16659bf03a088b7831a8fc2fca58e22fc6cbce2cd4385a9a130bccd188fa78f0a6727f7745f66fec5a066ab643c5a4106234ba2b47fd5b1c44d7422963a183ae2865f7eed0858a35263fbdbadfde29662f5dafd3a043a0a829feb1824c61c3e479d40ecc129b0d58830449365256691b01662e14cbc5f83c62aa3a97cd56a21bdf252cb190a505205db47a50cd8776175211366eda632f4027971fc8510e007e951dfe86eb32c682dfe97e997cdd37699b0649eb2c51c82ac249593e1f5a23a15a807691347fe9ca5d2af9fedcba855e7874325445bc4ffbd75dc2c607d9be2b035235ca9a413cfdb12a97b6df1e82a904c3115e279e3d4300e74808b8a6dfbcb4e40c4a86084967beff82967cf680da8cd5122dce112db89a62ea51a2f5f3f9cabed33dd0a3bf5fb13277d9e54d708a8dca8301930a27c4bda574a7ebdd4afff48ad71e6c4911a10bbb024cd87d8e6ebb50ae6925cd72b8104642758ab4c69f0d8b2d5b8287b1c37d389c01e12cd2931f98065d5882ffa362c0ffa004405a512c3cf691a7f710d2d33ee60b49910d41e322698831e7bb0fd00bd2bff2ab6252bb5ae2d2746a6c377de740623ecb865bcf0b925d23def4969e72bbf95ae07d0a5c3c043d0072cfbdb599782f2f81ff2f5716f850b7c861d9615cd7734eab1da0f1a7e355880143ae50f1f2d209cc24d1ad8b85d0df24a529fbf534402b96dd59a3bdcefd614bd0264c52a3f9c383e1c5ff310c0c89a637425544dd65b7821c19dd31b93b699c36dea1dbe48cc2277f55c9a05acc301ff21cfc8d4f84d9af396121650b338695d3a4f300d2207db31f08d9204ab974175d0c4f6b2a81b082de716b04131f0c90ac12e2bf6ed1b18a99fd308ad4472523b9b32077e28bb5415ac6d488f6544a5e0f966095b3fc8a1eaf8f299a78195a881e7cbef894b58bf3208fb8f2df2f18de2f49a564d3742fb04a411eb46b1d622986843ffbbfad005986a4ce2a830871627b8b2033e7eb3dd4ff43cd2722c1f4971bad379938636072a7f0d76cadde877c074584ba34eb6825922e50ea0deeddade58b945f9b151360764901d8355cd87a3687ca6c663ddbe42695f92d6f3d2ad6133b6a7a8811cdc7ad84c973d6c41ff0691d1d0ac832dec935862580829f3dba67e8e0f43c4442a267d5b6efab42411f5854ddd49879da4d4028acf3ae28a420cae8cf460f7ad1d49c8fb6ad7cda9500975ad5a73389b4c70b0d8d144586550c6b0fbc131a6ee3055040e93e41ed8e79436ee874219866db1652f2d23e6652481a7aed37c9ed0de338a99ba68510d1ea3e5d598d82c34e0ddd9d8bb25bc00fc964879821561d2f4ea6b48a4f7a7772e9838680ab7256ec7bd74ff0c7705c0f13512b5401403a8b588efe9b1fb499a6e641573071ef2705a1787339dc0dac20b0f3bc0c6664db8cb818ded249587cdc4858105dd227b6a7fe939ea9eed32389a680b7b4f89489b0beba0eaeef014bd6e511bf07e708f01366f9ffa524e61e7e5ade9cae47a8aa206399b1b12793ee81740bf4c1ce45eced135e822f19d96aa2ed6ee17bc3e8d4f6d6f58de918021234036d9f4c377a0de04d0fd7f20ad48edf93c48d0a27c0cd741ea2335f34c0715f2022707192d7830baefab1700b35a32b1c505e57a12e9a7da2a19464d9f1ab9c98e5e6817ea763ac0f00f52bf865e909064344bc7a859dcb452cfdbe91ed2e04a753f3fe8799a65431e3e7bc6434d2fe5664e7b489c3fc91636a9e3754794ad87021577c623088c183deb436f1aa4cd9b141cf3a8ce4f758230b7efc1bc4b1717cf923df3895881d724703f4d4fe83c1f8518b439305f1af824d3b61226dd6a5b744387bac2af88c571ac6506ab33e186c14fc2be148ba80854829101f3b1c61813768b87dd88da8f992493bbdc9037158e74a84ba5253fb8f133ffecabd59f5ba6b44309461024d6ec360801919d4a06759df12f0147b830a5a623f9af753baf5c52f066b72405854f6ae9663f1e3daeecb1b0f3dfa31d445c9a41a082ed37a4718e9484b19a9300b2a8bd91f0edc4e7b211f963c6d22dbf1c7744d30aec03a7411d7657a22ad71e95aef2e27efaaad2b76965af2079d98bbd3c3baa65a8612692a6a24a35864cf2221856b113cc4de231fb9292d3f1caa3b1e2d8a42e8fea0948ed67b37a6d6464a63b9e11e36c1d3cb5d2a19416dfd8d24e4af07a5f4b897806e2d755d94003a06b70e22e68642166688eb653a9c194493a09fd7c2990fdee6fd74af9fb78024c53781f33a4df7145b05b7ce1b51fbfffe49c9f846a935ca6036cdb0c2da2ad95a281b4bf210ebd6cedc59e2ff2fdd1e6410b16759fba8b4ad182e95bd2f4460bda9de5f5be31c4ba24c94f8cd26d73ec1f90ca4b7696c6007dd198d2fa6880469d995c0f80ddde48ad5cc32edfbb05cdd1b9c4c061eb1ebe4d1f4e52302f0467f5d8a286ec6573a93d53b4d37e5919b60d433277d02ff6ed3f4e3696ffccef5c783aaacfb8938276f2fede69c8f5f6b82e0be7bde99a866856acc027e8b752031f0b47a0be3f1b30288182ce2d59160d42c9d8dff19858b9a3d81f63a62db10ad4c3b1c8859de56a420fe7991180a8228a79a004b83cceb5c5bcc98b093585b305a1059cdf9f994ebabed4fb99200e856110fda0af0f9a63cdb8fbf0c726ba58c423c2e8561184640e9c18a85240608da7b050779774432fcd24332203da31ca37334c8176b009b66de903d36fbee8e4207f2128d0aaa77287b8b4336e943f7775e46c5428de1d3b3863ea3dc4bfa4d7752f9952c462744bf73e0513482a2d6901e6ce15af32ca98ae51a653bcb9c876b892074504beadc1ad3872eb9b4eb60d842b8176fc9bac2f6b001555f071398b9cc25c3df7872b3e3db58a9a79f08bd17ebd7bed657e777a7eed98951fa81258cbffae39446e19512db99f3418a6d28a09801310faae6fbc48a394c7a648232dfdfcb858540277c830fb49991493a3b3e25a857af804eeff6ab9f158c3f56dc9c21b59ca9057991698a0e3173eeb8a745c6c72482eaee16469ea9edf356ea78d281311503e24a5083ae60d24a32f087ff0d75d1d39684cbfd8840b9615d8bc7e9d93874d186518cd4c50281ad08712b884502ebdf23ec28531c0ade7e63e4b18c8be05690da6424ae910dd13722590b2aab5b3348776ed0fa2a67d0d47a426ef32b5fabbbf3cc5c432d296cccf74dff963fa1a92f7d50c257a5679babedad323fb0e7793aaf31ad65cf60496caf8502c3513792d0b9d70da095722d88d020ea5eacfb3c00fdf0cb309ad975c5915a7e591d84781f10efec10d9efd5282e84542a84a87790e573ac2baf209bcafb79c79eba1e09216a1b06802ac12f72bb71b8ee771f3c8855c99824dacd42383bf5d7eecdc04ebeb8b1425f9d6705cff62e590c249978fa400f1c1be95b70b20490a27ab0b581ea8b1cb35c874a7e339fa304ba7863b1449c15b23aea83538417c386edc63e3e53e8d0b30b0164cc29889390883ea4724922ec9f55bf4150fdb4f6f1052c093c713221ebed071791f35977380159c4bc443987e5a1b9ee3fb4cc7ac564db5b64e29b3e1ad06e14a40174d05cc95877970e1f392bb72e66ee4aa89e0b0705f81d4ce5e464f0da661c4524d492513d326ed9fa66f92649c48ad10586e205af48dd80e9ad222fd3062f2bdd14f7b3b944da79060577e9a5d49ce31d4b172303354e95fed1fd881be7814962957d471400ba5a8c0dbaa6c5f0df7963c744bad92b81c5a425b9c618ecee4a2df5b805ec32406850b6586ff4171c33b4078ff6d717d187388c8b82fcd170aabd3831b63c37d140fd9afc8f19b19807ecff13e959ccaaa02753a81440d07a44b5aae609c5ea0e4613f4ac95482edfe93dc09900738acf211a99c9254d4d8e78406f0cb5b963b8693ab1926e94d987bf1515c99cc729418b7956b614154c6cc8d180e0d43b2a1c4434bd3b9d94308905e217b3c5f79d496ff0d3918fdde93c8c0ad044a6b1f477712a484e26e95f138a1326980f6c62512ab932bc69b06049cb3b57f3142b348625fb80c18745f4aeaf524214c114e23c238127cddeba3612fcc6064dd06c5e2a6f5e29ed249efceb3c54a0ef1ceefcf6909eaf801302ff97ee43447851044f7c3846543c1dd987b754c039085de600de097e38227d4ef9c97cf34f50049cc8d260980555003d61724219a7e0f0fea24280ae18e0038891fa3d18fea1a85bd4e4a86c90480e63ca61dd2209f7eca69411a9deaa7bce853dc045d1edbb2a485096ab46cd40a9318f58d074b3077059bf39bac80ea16e4c32f86a6892eb0a4a02fc083dd1ddcc91313e3dd3161ec6dedb0685af489b4bed5fa92e25b7dc40c4d575797968ad69e73d2516a07d88ae2294f6a15e64ad3c71d22863d5f17fe6296ba6a19709bea98d44a6a9b2f2cf37cb58da183ef0648849d0f06e1a17f2a8f22b7568b2b237d4e3a57bce7e76bc4b884889e90ec2acd1af53071982deb085822501973e2ca1db886168c7ca3947681b74689a24d39a18bdf755ae601c64c64e0ac6208208b8db31b6c96de851e0531662fba375b4775cd29d3159d272e7069ad933543903715717e7fe52ef27069c95e8fe26e5980ab297ec4544cc577567253f517ee58f12bc5513ab585f966e5f27016c53b089fe5716ec4d215f4a6be67cd63d39d63b16d98e1ce67158fd31d896e577e4a1377e3e820d511bbb4f68544bb94c5b019c1e1efc62c8a07cdf904c1354c5dd3a26eb1f8e4fc26f6cc57ba9feee2c0b755439147e18be84541129531f1d04be164fd2610bec1966f85ea7c7676ca7cea97a86d39ffe8b2a12dcb5a493924c7cc1431b541a4b341e33886b45fc4709689dd3a87aa1581b10ae3c4cffae96b68edbc2d857dd3e2604665369093e0182150d59393f8d15989c8e31185a94e2dfdc3aca6e6800363920078b9d97025aec6568d24c4e1a8b810e844bc1da2bdd82f1f64650ed5cbd0f589de01186aa63f780a21afec2041a8b34edb4019a7db3ac0fc81c92477c8c55800fdb48184397eae1860cef9f73d79e8251d0f6e5c87084c291c42a4034d6473858caebfd215403a73e16ab722fb3db490440ef49bdb5ba7e0c2d7077f95d234788b7d7f951c00a5cd7744e7ebc04d3fdd2c149ffcce2ec5f0d9a1c9156db81fdb59e4d5eb2d5c2136876fa75e54c279a4976e8916b6e12f21df4eb16d34c2b679d458713d5d960bac4dd328ce8cfccf89035ece4d55b911e1ab9f72620a23f99e41869cc87414fad5caacb52dc51fef8c0297342e3e5dcd7dbeea9b479b10ef6eaacb10fefae05d39950a08f39491991f0ac3a8a1eb5b26641d98d409c4404635ccba9894d728b395954ff07c397e8b710bfd878b6fa1f92d75a86bc9c773fe3a259a827ec9bf414553b44b387e546fa4be57ba928b04867ea82b36c84fe825f5c0e6e22a1a9a6dc536c34afdbe47e2d96f569d24bebc44ef26c6bdc4cee5a59e4fcba6bc5d5597c8e9de075fd5ce884d4971befa23e6518f0633bf1c2a321f8fc5ad76219bac8c73c6b76de75e2433ed899565ad0d0165b709c0f850bc9ed6e036a26832ea0289a819d66d79cfc81121d4a4ef1cd071593471ce48c4dd79b137e4f5824871ddc581d617875330fdf9b5c4f1f8bba500470ab9531cd0211842bb75a50eefae679b5d3b299c6c414bba1b4ec557046e582a5224592d885f55e49531e3b99d27ef301ed3101a25f0fc7e69e8dee6a0b78a1df44a7c91c76e0dea8a93988aa4e266bd7e2fa36e86bba046da82eb1f16c98a2040b27018613ba0d7750bdca0b39ce357a0b30ecf8aab8966b3471186f34ab071a7d779fa8c7173b0c4d080c9a8391f5830c8524e27f6501fc7af69e0d7cd387618fbf2d6ed8f71533fa985e08ccafa46cadcc043124a4e4105177f44d2a5c332bf64c702c79c86e7ad39a303eb6ff45e77ac820180fc24e1cbffd5f0e97bd4532cd8fa263e15235830f7c394eb7bb49c6d5512db4f04341cea765ef7d68554c62465212fc2eebde15818850cdd7a855f70f6c17b63c225ed869603b8358b0fe09bcce687f1ab4eae5bf5bb9c1434d49974ae328d1a1462105efa212bbfbe35189a3e86ad9997d381e51eeca25048b4916a0ddcad2c129cf8041409fc4ff9d94f124c530aaa31cc766b13d2ea06ce5a314f3f8bb75b2b44d329b27f73c81375aae785322534bbbeca05e3dcc0482fa0e7e67cdf55b8ff129dfeb93c320ff465f6a5681e20d397b4ba2742add426988618c497cbec727e814642066cbbc06067a5aee2a38614ecba6fc6839bebbe77ad1d7bc917cf724d50e8999b31cf55d62155dcf8636cbc7961fbc0b331635df1dad62548dfc42d6f02082ce61e95ca679be7decb95dbfe3b3f649b92ad835c9e79ca988413e279705fecaf80bc96102cc12bd286819308af6bc2de8383a2abac17d6eb60f5ac5325f1016319088ad5d8e215d18d051771ff056cb098d8142839e76e38209d94d220884f9665f3eb68f234888799130b7097ac3172c007f231c03f72af4a78b7c5a1b7fac5b8e16aca674dab044b30e5efa006ab7dd120a626a218866843c5f9b2a254dc6cc02b212b89abd64f29f7e9d71c3c934c8c6454ab0491098dd7176c3219fb24061a9d9f6b062e0982e8947b27217b35a0f3ca09f1cc6b95c0a0d601e0358c11eff4f8c7600a99f165504ab8bca874e979547ebf5c0a8e0ce9aebd975da3a9af1ab67177e9961487e016ee68e020dc9ff6205c2d3dec843cb88f5d4a1f5839b2c99f30011ffdad31a488693ff189ed7e5f51796c7848f90d9974991cfc8be855b8d3d2782aacd282f0e83965c891e38e01579b695bcc4145e2e928eebcc7a45574a2e8cc8898d87d6007f059b18780769eccbc27f52bd2d2704c17c223d221efccfe76b1c72c787009a9b4210f6b894788f88bd2a707c5b30bed4455257356f78e18755a050c4c5b6c08bec3089f475bbae4eaa0d9ca5962339be4044fa3fefefe955106bded56eafbdddb18d7fe073f81497187ef7970d63e23fd0493c21987c39f6b58aa817afd3819eee98d279ab083c7eabafb401116e825ede6f4de684531f79883cd99ffc0a7b06c5e7acdd6aa3ef6d302ca97e455aa91e16fd0e8f4782b9ba044dacf13561fb5deba70dc1382469cdfdb33fbb9a993f05fbfb4ef874e0a14c0ac9b7a440b3623626fa3f3ae10dffe756ae68e01456cafbdc50d283155395b28bc160f0725ccc32b76dd8689f3bc962f3d0476534b557da70a1687c50280777ecc75f83436f7cafd013a9089d601a05ddf4c54e93041e59dc3ca37594826535acb06898808d0cab27cb34617d1c5eb803bb43420abe74c723adc08ca366705c844d6e52115e5fdb7d523bfa0d2bf11cfcd9305fc301797ce83d43835b3e3c4c93db1b5068d53e38f2090b6151fdfa0b5a6dff5a10b86c1ad85eeb27f3b07fdd1de97eb9df1c8a44f83d9056cdbe735503d0942dbf684f8df4d57e4cfba908c4aeeea3b333defc420752d681daa646ff4117a6a975135c586b8d3ce0e6eb107101bdeaa789b0523c14ccf4ea5577f8ea620d06068de242d9a6604e36ed873f4f416f92900b2a776031f157606979234a22346f4031471d46804c279e0c75c5c3a81b169c37805054bedb1d045ce8615d6a5f1a8c3fdd3750fe04b799c6978ba1aa167db9da20d771324a727ebf24ba764e5c03026ac3c4e02d042d09d6e454142f04f5fcf954c666869777e857602cf248662f04d35d56b8969aaf5224030b0527513417cf4816c6dbb74e42443a54c1f1481558045982a3f876a8a2f4490745eee30f52db52e40d8de43dddec7462e1556fc46a83fd88a951f0b8e0a32599e70cb68804ecb9dae701deff34b1533e4f86f0aa3d4ed59784e6ba455be76f24404f9bd91ae5f29129554225d080a89a76fd56a92b4c1e48a015c3d999ba9e6548b7ad51e0399be39b8536ac6388f1cc5540c157321a56a439b621279b4105d63e8d4bec164f4e194de8a9191fee4b306363f0d40935a294bda857e515f358f10f6486f2ecd2db6dd210974c404fff1e4d89f48a7a96d67c4d2c88091b988acb6ffdd79d59eb8c7682fcbe4e6f7f07f64b099cb71a5b3ae4e6ce1178d2018de9e463cce301cc89eb8c9597ee1086b478169d46b7ded5ba6fae23eee71b7515cba7f578846efe759f145b878b16c46d0d26106e04a8c90ee0b4560101ae5d8c8e952e91aa5a324d34e0da3de6edd2113a52c97070eaea69f11f77aa775d66a3e31dbbb5e7b27c411ce1e1ebcb3180e53190f12944127df4e903171f2a9f8d2c8d32dc45076508e0ad18a5320ec5d4ad00286687efaedb6ba327e18f7d080ef3635ca0c89bd57a5f0a1f6c10c78f210661bbe04f29a9ac780383ed0a57ae3c5788d2c70b4be57ee98611dbbabd1a07365dc1bac970feb377fa4256869ad5da7fbec40239b77d009b21a4b32681b34483fc0b4316a7543bcc37eb9565d296d65b6cde60f7e9527dcd269e2dac092ff24cff1d2f87ee129272a58d73fa41e5796d77072ffd40f23a6a168d896f065576d597675476c07c5890c202ecb985ca1e947952e95b7db72ad95503735c653146e8eafcf6837a667e4a646c2cad23c968c72a7d6187bf4227515989d80454e148a24abc69ff4f6006710196bb13a32c69e05671a114f3d2886f322ba9deb11b776db1576e982d3a841ec3d5359a5f184b69c231faee2aedcc78b7dd4b9b0446388facfad8f0def1605343c7c1ab29e6775871dff035ddb7b68030045092139010f9c116e8b3d452b93bdff3831e544c92c1e4c44153212a4556d25fc1527e37ec257c56fb744d8679f5e61af74382a4b9256c771ad9e54dc44d558f85d61e54b3f1e409ad22cf172bfcfd25c5d9c354f848a56790bd5da0a4c73f8d1411ddfde9257c58f521459950bb170905b23b97cdea232465c2421fb098a552f43514c2fd896562106436d3e4f52e7ee7dd16c3e5e18de3305a553df5eb1055093305a3ce47426d587408380c920c9ed674a4c44977c1192be3376cab48ff086f1310c850264a6668056cd907ddc2f5a98d75600f87c1f287ec5d534d84323b7d9a3ee90c18e8f43b928d34913f7c3d3ff80e62ade91dfac315e277a600199dc02285d66cf13770fff4c9da947be8f4ce731703ebbcb224b4934385aa8a1d6822db01414e6307621d40ce652ed33568e262404f94870f22712cb397b562b6d4c42d6612cc82e2f02f3bafc0a7db57fb3aa0bd3e0cd595cd3e00d84e37592356ec0a9bd414d2000f1a0468c3b36d510ac4cbc51b9714a5dd90bb61e7f1e335e347c4c146e7ec68462d0f62074cf068abbf743520fa2a58d34b685829eadc83079adf841d0c22ba17a13771ce6b60101f91fb38eb2864191d66921ca768ee3cd304e4a8c071cc82e955ea0c2e7e2fa3ed1880daf358642ef238292f99e921ff9dfc8e5feb972400ec19aa72c72321831835b1dc96fda32e37466bc1a92da9c771ff7d59b0ff312d040089c3ba65dbf82a28d22b6fa34c8ec96944eac334e7d701d703b413779c25e0a715f164376a2cb9697985fb7730960487bfd4744a568b51c2727ffe00d5315482b825a30f8ab551b7b8c514865c6fbc1240c74eeff58d7f159ba59c1722975daebaceaf7692c21c1193d76959d939827b1704b3d0f327286cfe59c12bf9f3ed3688230478deb776adbffdb485abc5618a11d07a0cde427576662f8100ce107f7cb22bb721fff11cea4a3cb5177dc4d25f0397a6dc7215af8f2bc937e31de8d44f5ba5eec298989fa1dcc42627314a552ff51425af3dbcf8d6e8f2b1f926de3668dc95cd2e2bf9ccc48ff1a73840927984fcbc3051b1e1a507541123df8e75241e803a8601de18779675fc33fbc23d9640c250a6ed3f4b90e15ea9f2582d43e6bb7040a7a4af39208334b78c63cbcd91566cf4a78056fbfaaeb2c36a99e758eae8c2ecc240976c9d5615e51c97c2dcd81bca3186b06f7d799952cfe9c19493b8b2c6c880a4764b40f7e8c53519cf76d7099474d75408688656cec6f5938cd64b2b0b8f1f9f029d9390c50f229c96a68207b044d246b759e2b95bb833de61ce88c7a99b764336fb2ad0128105fb38986c06ede90ed53ebb71c5f832729f134d9b1f5f322e04adbd1148bdd9bc7111655f57af351a9362c23fff112330156f463722ae9ada8e430dcef224c5d7836f9d657da6dc813a64b3aad4cc29f2f9d298b5020a1a3190f661b12f8a5614db37a90f50593af4b0403cf9493063920473ff4821030c837ba997423a46ebc650ef72fcd8fb9a7558bae3035afd154c648596e7468ff2327c808aa1f32a6ffa386085e55cd2f9e9be5b2d4a73ad7631498f52b429c6451b3ad64f3d674dee22ee853cbf5515d9a6756cdaf11c2105385c861b641c94f16c9a22d216aad340ef2706b668a39a92e6a7210dd33511bc996b7977a77283ca7fc62f2b1d48169e31ec579c0e542ef5238688f45de5148434849536f1e51ccab027e977a5f43916ca4f3a60b4aba8d9dc9d8f99977ba7bf79f3473bc254bbc00343808c52b85164dbd8a69caf23356a7fa3faa15798c312925e0f67baf71133e11fbf212ab0209af62bc353b8916ebe50aede830f0a24451674e2ba59125c03bbb55730427d6f2abd4923cc8b0f5536f1e8b659efed05011771ad9f2d84f072a788dcb3c3bffad9d14352d477cbcd2e8bd3929ae5950ca6c6884851d41b4715632be8f815639f4186b3b2aa1f5a7435a54358376cb7f242bd68d1813c0132161f88ae4ba3c22a310e413658f981192beb30fb2f1b1f1a1975b267aedfa1eb7797b5eb3ed85b0eec5cd761175d6090cf18d784b957dcaa70c1b68f849ca383836913bf6c21cfafbb63aeba20393c29e06fc95a4c6346faed939e4884bc00894b9b61d7db1c04a9eb2825b8642a7c94539fcecbcf5f183291c5fff36029dddbd2a86e9ce69868a3095c0b9c9c76013374becd96d16603a01153b5e512ad8df7ef044ed07b655f4c4f753b4636bffd495ae1099e0a544f0765dfc6128361c146cc157f1d799681c25485e7a0d83362fb6cd11df8c68f11d8f1fd9b46f5dc72daa5ac7d80121d0465c554990e0c0b0a83b877b014293d2945a1f8ae694fd6d31699bc4d1fef4f00dc6593eb42a2389789c503daffc1fe40db9f3cd189dee54e741d62016a784ff58dbf0add22900d2a0d3782d398ba539086f46e2bb5b90f51ddf64d03b024389a23734c80aa21c0fd94bb4826a422777f7a854105b143c81bc9ced6e15a144ef8e907007c37fe8b8484d7258f144f856c245321e79d9765aa50656ba22234de2d29980a6cdf770bb11787b2f571ffc26918283da7c3ab9956861101591c930ec690fe1229dd753f8aa15006c89ba4446ece17996ad12e17fc6a64d04cc3948e71c60fec088f703c40a4b8cd7f1e64bae2a68e2a63f8b6a1502a0a0b39dd1968358b211062101fb67a1754f1c1f02cd663087fce370a25d8a0308ca6fdf2e2ec5533d204094fb089e233dc34afd78910d7d53a22bb5c975c54adfb82bbacc4b82863055fc2250ce19252406579e2859538adc03def26c69e0b15b45fc76d8a7e86fa3fb8ea43891fe82a12c9992df657f7ac2d863cf745faaff1dd09ddf9f6ef6ac47d38d1bca0b649e0c634ed18117e9166374a10b1691264a97baec2e3b68ff5ed757545a0d84d966e6f915319174811e389a86f07fce0a29c8a06b9154e42ce279d882b7d77bdd34495d73701c7147e4404984cb3b1d41b8c357c0352f1af6d398e97ad2558a6574898750ce5644d03d91f60f7b4fef6a6aa0f735ed4fcfaf69dfd0e4677a7d591f51b677325a23c8c15fd8200b758256abc0a2385c6941fa165e082a36c3b51508c00819e6d5456a562df4b561f9ce8d529d4fdcba6d824f840cdbfcf105cbecf35a344adcab2f0a10e09b4efb130ecae57b955725e8af79d5236acd4a37eda085d3ad838abed88c5febe672b7c9477babba5f827cffb017400b2053ff5d20ecf7f2791f517172e990df7d28b5ac88428d9c765cd6c4701ef2d0b20b022467faa7315ade739d38b199fabf7e3f0b5876cabeff877eafdc5548695db2adb72bed6fc52f64a2fdf1843794e306ca5fc7a37aa273ca866849d7542ee4cd09efba59d1303fbb105282985e7f3354fd13fc05e0f3088de7474295b5594e221fdf71c6ef9c75cd1fbf3636f8baf481d3e864118a794160302532d2ba72fb3d5c5952305b88f0eb9528433df10bd1abc495e4ed47d51774c85dc6a5ddeae0ec09010f8aaa94cf49678b3d9e985adc7303711bf3ea804820bf32677a866249c3cfea4336e67cc77f0e9842de4ded6b7dc932a232d9b0535d2ce0a2912350649948f87c8ec27e0409750fd5977fdafff3b32578ed6f06214b2110f37e8f035209a761df5faac0a9c86ba477f7f94b700330561f1a363ca1aa288bd6a7c73f1df2691fc869997ea280b363773f856d695cf792e1e3de3565625748d3c9f2e440f8202675e0c607895895e45a45d42002b59c5081291c1ee5fbec3e9774b764ed0141a6dbee1fd71e5d0bc4f0f2c2d0e24728c229fc407c1d25849b188ae2fa3eb808c2212e925030fe782c06c5e4fd024dc4b8c924b46b3b32d33a48c45de4fa0d756bce3326edc591f36b644f635e7d8b791c259b325f4c97fc8ba32d760e37b2455ca6ffe9df33cd1adbd2b52cab5bc4fb0fd111e219496f6f3cb5a572f884a0115a598cab7df04e81968031727484438611ff6733c85ef8574f5e5f7ac1d5906b38974783f11815a5cc679176972653c8aa733495620c13a0829363cb9c5283164be08f2e08330578a2f2b7ac2f17c7e1814543f6c385c87f23150d4126d23b4a3a693b3a1c0a6778f06717261d98736fdd0913181ed1c09db4898c2a5168bf076bb611fd6c7c67595a6c3c517ae6b0a7ede356b1b53ec9bf074e6471ebcbdb7d6d2750626aad943b833243089bc1dc866c847260102e560bad3fec0feff19d7d23872784bf58647560cb5eef6ed4d80b6787036efe8efcd5d9c0d1d71b4cdafe90d93b1626f1aeebec655223618c888441c6575f2a30f70529379188938da7b4880c25a04ccd2efabe33f9370f7257ea4824f05818b8a302d750013672b5e0b1a6e4f28759e404ec4216c1867189b04e63140651bf1802355b6ec8fe9c64a41d4b7ca1ecd48235049c2e2ccd4e988657b196031226693d1881a8e1124131d6f786eea85003f029166ee84e1b1573cdcb32b5050dae531bda620d1d0abdbf9eed2c547014fb322bae111e52127299fe2fc0965ffcf5b28b8be7d89f8aeee5e63d780dd4c0fe05ecc9f482f572447d9772eb1718567e8a20e1a69f5e3f1e03deadfb6ea621e68d01212a9709fcc0c799a899796a8e79439083549da61e0404798dca4c2b30a09a60fd6805f498e4d108da671d442a72f935f0149a97009e3feecb0d8b9acd170de7a3ff722ee08d4e6fde2c78c9a1b0ad8ce95d24a585d276371c77cfa04d057ed54c7a77c7e1d7d559492a5bcf128b6bb877442f164d1ac6952944abded076684fac00a8de45909ad966be7461c308c3ff785a7f877ba9450adcc3196a6f19eadc0aac602bbbe2130348a9713e7483824cc27db26891d369ddac8ffb4a338da2eaed573c76b593ce70df367857833043accf3a197b91a3f21a0beb4afce24d5a4750aff91d7c64eabe2de0ce54debb2fd104a50a5977e25e0fd0fa21f19bfae0a86a78e292887a010e7e356010c55e67927dc6d5edfd0564d1c3c64f0d3d0602250c61a8db34e45885b22376195c1c83696e09f6f6b5c1e1b531372529a11a86bb82cd1011ba9442cba0e676310f0e0ef3143dba896c3425d78c805791a9b8f6c9136cb7e17e718a8f7e3aa6cfc3e934743818208ee1eb149624af518718df4093048fa50eb64aa1005e9eed9fdb2b8c503a5b403ece380c16e94413be3bc262c3328f7aed4cd9f955bab976fe068f8f93b6f349ab3b8dc1bc3f1bc6df66de07e33cb967e7291cb5471437737fe7bb686ab4c3b43829df90b6e7fa89073eef55e33a8750fabaae4c929ea5c568825a9ea866ee061d8349e871ee9b9047d09534990629f639d4f26278fa335f3583ef87427ccc41e468656221b4ff882382b7083c149d3347de27423d04560e144e2fc6d300eacdefc3154f3c00578514c8df33e9dadbf5e054c9dcacafa72a68e2b08a19cdaf87f02dbf08ff25e6fa06b12ea71fcdd7c95195ce5290f49e02478d2a2d76879a606e272679e8389937da409e8042e15390fbfca5183ccbde2ffc6ba267703421e3479e6d9e3a513aade59aa8f81baad225d45705de04393dff85be3c963157adc928c4efb57ce07bbe70fc98dd56ff1f93e59ee93bc26ccee9150a928207a246c31735ebeffa15494e36871179023637a9cd06600252eb86b4940bb795e536d472ea6d3e3442530e2ee9db8f0315e987c13c5ef2b716cc462c1a7a60c7e17715b0cd92ab8da9b0ebabac84fab8e651dbb979bcd07d7205609c7799cc43b467b413c0855e46c49103ee9a2f8138b1305c29dd7f121551c9e90daf9c5c8d3d9a13e2174daf9def49577c3eb959191745833a569ca8329ef1721676d807d2feb4b97af8c95a44c9d0e356190724859b56ea8be539dba8cc7ce57cb8c512489d7f7c8ce0beab79b686f03920b2fe3725cd47f820a36c2e4f1aad4314d4b3a86584cd701f264eb95c09c23e3b81967d83d9142cb183bbb421c772b75b0c904ac240ca3a57d8c666261823dbc7b3baa1e32da07dd4767e4f3e7afff9168339f1c9e5f1380183c9c8c488755e151c40d25b468f92dde5f2a928e11721fe9a1922ada8a2e2e8eee6f3a94b3d6fe9093d9f624110fcb03699e6632c6369821771b24ba3c06cab964df98c8057b8fb04e81d54483e19474ad88ffaebae2d44ff574d9f44288b3f8d96cbe89a4fe97957a331f1877a3d304b22f1f8fb214b9c4ee7e34d51ce366bb4d8d07b9684698468ffa5deb8bb4e0ccc74c9f080305b147af6541974afaa4b437c06ca3b10a2aee6bd93223816ce12364ec976f462b4eac0161d6f5ef12bce9c88f09c74a28e82c21f02abaffe82898772b7a4414273914fb68adc78d79b3876664b7bb0c259fcf807d5c74e09d05162196996f1fae4303295c592236d44a14d509c365929250d2ebddfab92270e5b6a5ff3ee67898d2117f6f3e88607cb7330eb49625723c319175463f09ea6292cf4149d502f81ab73e134ebd8f300b6efd1c1dbd4a6311278b50c57102670225f034421e755c18b690bad2480d44f7da9f19b5c28fb56e0f8602c98ede14fff209907c4dfd9a737f9d81923a22cdbaf0812eca03e74c5b759a21e864b9c3f3ab1528e94e92596084e5ada0f23aaae51c77ecd5fb762debad0dde69e51c7fba9e85762f8ba9dd873473ec31a8f45703977a34ca27c1cb6c185cd2c670da66273af9950458b3a43f2f57468129472b9ddfbb1f30938e18d3f14cc6d48ed04609b836089c09b37153f21a208be82e035b50a99d5d4d9cef51210ef1c1746826768f62ad4d2a8cef549c35f84bdd2caa906b04a915213e688477cf1bba1d066bfe02edcf0a27a041c208c500b179cd941c8cd5207b3dd1e75fc50ee3601270e1e59633a80905985f3c05d0269251f92cef794bdbbb4f18c4117faea0c624cdf5b3564bd0d3b9191d04acea01b4d3d57cda70e4e1ebe50948426da310fa523d53bb313ad14daf5f9842ca8779eb9fcf960d79504335abc2d7cdcc47cc185f3968cd5e48f1aac592ce8106b45926706da9b0d59f554e63d3bbad582efa4ebe920244c63e9382c1750a409c95dadeb2996bd9ade6e0d7c9dec56f450e2f7aa94fc7783ab48b08e8b72da16299c9db9d84c46547c7039c7ec335b745e7cb4406a09d4dcefa65ebe97c36f8925264629a96c019bde70f785fc495502521ed80442d5716ef41533b620e215e60cfe021cd5146a7c847417e5e5424989c39c3de5d984f29095bef89a8f3860df6165dceebc050bcb417407c983b26f21bf4a94fa4d4cfded3e2f136b506978b55a0fd4595e21bc1bbd137658f360748546d43d30a47704ba72fa057356cb43ca6123b6f7e27bdfaff3a725cb1a0f27b8cce81cc74603734146a5e1f695f60b81970f187513fcff76b48da9941e4bd010bbb59eb27fc4c4f7e3e5efa98760fc904c2b6fd0de8b737c23d00780ea549cb8ee3089aeff214bc50732399fa80807ca882969a8d5d8e247381f7936ae12cebf38335873595ca066859dbd56fa3402ec865bf050afa4d8f13d16c1f85d15ac55db62339e87660b4fc0087b6c823e119833c3854ac5a5baef53d2d8072ead595a11eec6b8644e56a5349f9a37c96daa94b3f5dac297f7cde4eed8e5561c0e0e768715894c3135d9a0eea55f595be7cb94ddcdd5f8451b2918554eb7a566845b1ddd86361411d8bbc20f9ab1d44ba83173baee67b91788b589237c43100fb9786e27878f2d8ca8af254c9f5bc8ae929e5a0a16e4adf6cba202c9a7df745f06be9f6fed9fa41075a464713e5b4f1b8a8aa4be3ebbdff03bede709392cd060dcc8cb30ed1bd16ba13967d973d85b32a0c74f7f93cba8b834da077c30efd26235f743ddb09bc552efedb8f80da19a1251f0d02631ab4223eb8b150eee5683771a2d3658c4bf7fded64feed25b418ee0cfb0a642b9984aaccc0e087d475fb0f737165f7b4f889f0a6fb001812b141a47633d8c95b4fbdaf06f821cddee525bfe8155b69320692b36e61a7fb218e4a6f3d1875c97c59e4e331540cd1629a300e9e8547edf86e44da78a92cd282bf8e315df05b9f2aa0d5ddab620aa64d48fd6dd1da7e515fdb6080463d9e138c5a5e8e2d61a4f0412c102efa944a0d7be59ad40672d74dea3dd90db56412d4ce2c123142b762760390293a1cefee9d14cf9193e8573d2558c01661ae749a960a58b17671ff9c24d63b064c050c5918a6f93f945a6f3158dd2113f96760c778837ea591d86f5e8451852c645f8492d8feb2629896b34a1088816958722b9a768f617b27b8cd7f278391c49c8091c383fef2b8281fdf2d2406e86ec0a2ba669baf214764a978c1147e3d8fd08b7753f4df91fca6830cb332181a9fc9eebb303ccbe7a7b562f3981c91fd8f1671f17e3410f3848bdb80f8e8d51d27ba76307bfff8c8b08f2fd0fe0496954156be05089f743b321c36fc45fd72f78a6ef4e5d1d499e963373d95be5c5fcf4b73f36a0861e8e877202a8ec6248267c8e20ce7780b4000c08b0e10e8671fc57f32fac7e63b9ee6255c4919f7c9ec322df4b9f68b5dd9dd99989ac682c3262ceae305d47dda2e73ab399af943f88b58c0964e6b9ac7699ebe85d82850824c2b36255c453390242e4bfd35a1a532b33b8bcc385b706c4ffe91792aae8a715dd0b655b1db283db246d7e0b58a87ba0375523a4065b0121c48d0210c853f2070350541e55175d7e7b33859a7b80b6738cf6a0a8119cc37b0f27b1c6457d62b2459628228aee0d15acf17e215e0fd626a469af527727f8d3de2e8024d377d1ff7a7c8e0b1da8ae1a9e3b930121ff50ac443f0c8bc8be27c0f1fd13a0f0dc738e0f81722551aa57de1026f6e4422e82ee01cf9d1f7fc249e908035a318c0cb831a9b30edd7c85750342125c3284fc6b49883f563eb6a88f8e7412ead7ad138d6f99e75f45ca4d9002e4d7f39ddb9f2d0eb75de2fb72628600f3a81311340c3a0220d2a294873c0fa764c7d6967a73bd018b4c21d07cf14625df3bc465a00756597dbe5ca407fbc390833e93d5e17227dbd8573919c6b095f5aef03cdcf3d6a017d5c17e73123953b138c993d5055383c9d7739d9464117effc1553f829b417592e09865a2e570e2d2ea08aa5583eb11ea7b337ee719ce2ee57ff6f1ea6c7d4d547199d3f9c4facc0ff6dbf1d8e3e175d4a03ff01a6cd798dbc6e43ea9b2f95a9ec36185e11ad28457827f9626f2c8c70f049989194e7a992caa91d7d748cf82e0a02fade828ae2defa9a5c0c91e265a980f2f5633588346b5808f5a91c9672842520974414850f3ecefb91991f40e5e607495cb9e9060496843175179c92d101f63229b41ba2996bc06cedd109d503dcb94e2d2f0c38314cb3b6bdb3424584c8433267be308bb2b9ee6e86a1f75536b32bf0017a76d8724760271eceb582296b65a52ea45f74e9a2534b29957b12ca26138fc84a330d86c99cd1ce6cbf603aea9d98a052902f3e9b9f6b3f0991290fd19161853a7dfe485730f88418519b95d891dd2737570cf1e159facf087aa93298fe9b3f2db151731dc64cdaecef52d7f35d2ce7eb3f340f3ca5dab4d08b077e7eb394c084d5f164dbcd303c2e0759ffbbf84494692d85572bbc9f0e5c863e47ecbce1fe46bf117639159f3d3f8e5820eed15cc6763c790259fd6cdacb504504ebdca43fd8af33c8ceec95c36d6b00638bbfcccae9c141343831bfb8c83d47e91c89530a06357418cf6fcee3c402c3e33d75810c559a1900b4569227b292c4fa1e49711599041fda4e54d43e57f754af424d52866d64baf511ab1948e62a043647dc361a113027bd488697b19df5d122b385a424cf6efb3f6083b66fb2d367d63f4ef9effd09ca3e5bf6c5aa234675b07dd90a0e7bff79e026d2c6b364ea717fc1e041e170fe2c3f90253f3de50d0550393347bf5dc7b1ae0765ece60cbb61971c3f0491dfb166cf7d9b446418eb1ed490d3622361af4db2ea9843c566f956b36207bd7c8252e6c9963d669604a2973e6b0ad93d5eb775b915ca3dd5d4a5685a965d7b7160190eeaed005112a66986b4b179eed94e68e02d53bd6968b2e73c7903813d42f6773f37be749975ec7ee9de691866566449134d6c6664e543461af263150db5114c6ae0f8160dd0bd607ac68a1c5aff86598d28bd0322cb535355a2a5cceaddc27a58ad40c0d9a2c0017cb1e7dcb00a249ff1cb8016310935258076bbac62e8da465d09308b7f5ea36246d3d901c1236187314d75571baa46d4c8d88c015877df42c3aa58d588b466e98ed42f923d5959b93bc049c7f5a4fad80f22ed6b522ba6319ef08c4bc280720da92a90ad6bd32c023e2bff8fd865afe359ce7d909f319a1faabb86a0ee8f6c9f976f8c922cf5219ca46a061a1d0458f73c5b699f7bf8f429a1a9350b67c576c6e29e37238d39d5d61545124aa6e57520b30205cd291593e9499e2dd89cd670ce21b90f295695fe6d8b964607abd307fae41da59157e4a71bff6a68a493698320e2c4e6eedd4f432a593da887c89d21112ff6a3eee60ea1c26de77656f0abd6da8dcf9bad6b21063c0018fe459608047239726ab974d4e628eff0b8f4d3328ce5e0f13e35107dabf3a4d170f8162df254c708bb583bf5bcc922c2fbe7c031468e4510ca619466f305bfffa7afc4e02f0c7e9c36456d69fc64af137bc9a9932d60d10adf6c54301c44f8c9fe898c3d1b607432a34b026031f8369dbe5586c86b5fd3c787abe388d2e6e73aff05beb64c4265b0798c8e9698d865494addad9e1256145e90cfd3f384304f73f7f4a156c2e6f3a6972d895bf2776a9b01864d48c4cbc5c013ba0fb717fb8cd7a537fedc34aee97da9d542904e9312e7f40580699d3c6770fca4d494f7e7a6f1b809152a53519cdf864f8b2b033d1d204d387075e67d885d52f6530018303e0a1ef4a01ab4c81e96107a0e02f4aabd31793cf7d703965bb2d150274e7f4e618b7daae9013b498d8383df39e36d6efe3bcd40643287f8aff1adace7281db3275e15250783bd486cb89addf138063cfe228013eea72f1aacebf11a73e6b67a0c051b9f81a48d60c592d74e37dcfe033ddd7174d3e414c1b240f020a16a86954cc43489e0f62297a0565a227c22122095ec027b29357d2de3c2b255da9b6d82fab278aaa22aa01b12450bc6ab3a762154fc8d9bf07aac873454eabfed54e4db0f78adf90c949d63a48843cbb5b79bb61ec46e41b07b7f7af44c9f527c1338760c583fab4029de16cab880c02d3f1ad328c8d978db5832cadd51d1aa07c38e9d81f3164a1db78a29c4fb00f5d6c4a9d903d27531c11f7b9c58277663e9f70f74f39bff78d17ff5d64bad29949445b52607fbd0f7eea51f1a0d3d1d53c7b89ddbaaa3f6336b04497f787aff19e795e7a0b9256d3d50c6baf4f60e89c5adc73e87d6790ac002b4e9e87435dd6589b3223b925f03dc22e28d0787ba6a1ce77d90aad467eaa73fc89ffb73700f73115e04216674fffbb8665b495452cfe0978545adc434a87fd73fe0e23292a7a0ea5142faeac3d5ec41c1fc13e3ba7824ace029280d9ba450aead561ee2cb0763623df27d3464fb5633338e087902c2ffd33da8fdf16ed366a2ad1556f0d7878602735c91634c0f0f761aefe6ceb7bbdf00515d590532b8208556d88dfeeba028c54b39a52bce812533a5f8d4e4f111658632b098ea229a4f1ae375d21267f07ac55988140344aafa993c8007e4b35d89c3a0f75d3662aeda91ddf7b9473977121d5314ba36b3a72d1d45452dabecad6012ecd8790abb700d446104efa134a9c05f9d128ff87c299cfd7d5807cc27197157a4751e821d054278e0e856a59ded8442eeb2ce24d5c74b740ca0a748d37d6f4477b0b42e6a0b6b66b499257beb3ea884c1fcfbc1ad7e9d861ea76936373005d15a48d296f27c486d4e22da3a4318bf35ce66e4a11d4f33e0743cd4ce1a0b98e1c9cd6bf47617274af38d1c232d3e8a88df0c7893af71e7ec3d51c9e36005700e60b88bb7701896b90083ef400cf202a1c8e81459d210dd3974ff50d238565e06d5668f9bafd23ed33b2f581885ec97f4037a22c8ec6f59011e8ebb7c425226887b2e39ceaa731e67472bf1787756c3463c5177bbab41fe036e41a698cea00fe678d84c03972f5d5b62d2727c8cd041f280e2f32af7969ccdc899ccce838252884257fb627ef8844fe85fb5b068883fd175820e1dedcc6a3408914a87ab2ed4e28482ad9491855893186cf20d7464edff28f81fd67cdbaa4fe032828e4aa664f773f7eeb4e699ce13b217933d294bc5ff53ccecb1d84defcbf61ff3c85a6d2ddb8499a09dee6f0d60c219649679b9ab09af1e8d7958962173a14c706b78c29b82166402933bbb9f5ade604c513acaa74a55d92fd3bc6863b59453152583894a87fde572a9bacb3d3e8896678eae11f6a7935f500afc0207bb02bf324bdd9f35773b8677731546d66377ca47b9f2d22e50fda1db7e7b419f1886a455a532d58f02124203681a5cca9f8cf68108a72511a110c79beec3cf04f2a74654f8ee28a8f8811d307ec09859623aaa1964ef73a39dcfb5fc714da35c0365e13a0ebae8389db50f759f80ca668f23104912251e55688b7856c19cc0f0f34f915f32271f27a9b05a646e9580d36408786b9dc1c4728284f899b7c49b72c9c45b4d6d278ba2b4abf1d05428defd492e5e325434dd08cda066b8d025bfbfa0e923ead3c7f7141e93d3fea164b53120b1f1b7c4992dee871950e4f4252bc6b7fa782a9e11de2c1acc313f94dad9538b507ef3631614750bcbdbad98e1170ef756957db12988b658bd842033145e3e5f33e68fabd71d480b6879dbbba21a033c239154cc69c20ba968f9a59f39dc332ff0151f8ef18c0ac33fe455078e06b313640192b433e061545b18d0c0d3c8b28b257b864f6c53d15c49c278958e8028c4470460a77bdd95517a9b2bc8d07e88720f371fa4b0aef74e4881c46aa312a3f9cc77f2a06efe67844b843fbc81258dfae9f938f2f026f3ac048df3dbc51bd9d1bca2ed868f0b2f954ba9e3afeb8b0f1a6e6f8b9eaa6c99210e9907643ac29a0b4b0c0d7a79b7105d8bbc54ede22966c82e3c1839890fe43e26a334ee860ef821c1a27e289a88f7d9cbedd7d105907ef65e9d12f5ef183574ce132133c3d25b5604d573144b22bca174ab220192fd35f86b14d0e4820c09461ded72c9901f516bb47c91c0069977ce4d132d3437b1c94724722613cde93cbe6add3d3afd51c883fe0fac5c70edac1828fee347342db457bcd7f50b69bcaee9763ba5ac1df6bc63c45edd4abff2ea5c4279c39f8b85b5ab38056ef3a6aacfe05f28506cc8f4a9c6af8a544346d822290579709d33bbc784219e04fbaf071c357560e772956305f3f38ac3f6ea5f808e1ee5d72ffaf71f003c116a84eaec5577764979f612b2cbe0676900c293668ad349410e7ae07c2efab5f38860b13498376e6444f34855fe09311600a34fddc6cc925f61092074b0aede84a15cf7a12e533919c491b1380d3a81433bdafbe12ff5b11faef93c87b0f58ae927147e228ee8ac70cefc6e2564a6d11a1eac32afd984ca6288ba8dc1631f0731c0d9e4208ac98446475575b42ab8e9848c64c5444df55393431916fb479ad2b36247bdc2363df8c57b054d4b26ee3f4482e517ac2a83fecf448b836409367c9f441535f5df95275ff69a66bafcdabfbc7f753ae0491370fe1b1868579dde295add430c68f309826584b0f2450c0c9c96f4bd251ce5ab95c9bb4d46574d4f9c47cd26bf705b100c2c154ec43444c8a37eb11819d962231c46283582618c71cd8c06d01b100e40d357ee63a624d23daa56d701b650861c1129d4a346ba0dda1839cd97d0f349e84d73859278ebf91ff882b55d41280bdd68c57d1056f1d709f62781eaa094c9a5b277b26a68305bd33bedd13bd6593b07376bda919cdf2ac4ac27efe6f8f62c30e5536a1d9ed1d32b54a4112b3d686f65d9ba1f1a3df568f14331deaa596874f215a3f3e464e17c42d9c9884a6a7d5d19723faa22077d525ff5a8a04b54441aad802cd6c173e99ba85c3263a4c89ae1dcf6362743d72cf28e5b93a384b90072f7aabfcfef6645e507e6cb5798c737330ace49749ef87f8e0adad6a5b8b2ac7b395704c2239afb281ad8513ee40c53c8e2a8ffa339567d65da70997646d3b61e3263922e85e03f82ab5a58fa21300536b65c713034b2d47fc800106af40812a689750465e31f52477cf3b800f917db6fe81420b65cd0af83ca0fd3d4f82af6ae6eb3d6437f7ba429e0a83be36bf4a98a4a18f309791efeeeac92b8877797ddec6a5248b0387f7edf3cd0027d0cbefe0d0059f74a6f2ec0192594475ec4bb136d12343b1f837c2d84582101b86a349a8d1cf0def3f960d5c45810958897c9898968b112c4bf3b3498a779f014284c3bf6106a059116b59ffb54b7bc8d405cb1bac851b3a16e8a699de61c5c088dc2e280bcb1d91b9e2c93d995a9820a582ca4db556ee7ad4a344b5d5075746e709309959e9bb184949043e5f9bc8ffd4160bae3e1f5c71689174a016fce9056fc8b6fddc295396525cca7e396cbcc8070a3833684ce407b5203bef4a7c0171426541f2fb12ed548b83334c71eb9f237e4612c45f834807c618a04b5dcf45833106ba4c960198c1fb4ceb4c0e6bff7afa2d1bbeab9134a288d6c0f307bdb8396698959077c307eebf0ee4f6cc429f7db5765a71452c67ec137a4937b3f8d21421387c7a991d431158d02615657ad69e6202f2a28387f85e81442efea399579885232b7736e8810689ddab482006b19644e1de0bd511335355a8a4417afa73cf768a702bacaa6ac9cca47184c08f3bde51f33ad74adbf18b77ce098dff9973c783cd19ed2de111fd52c35990b605e03769d98e26f3739faabb919a8545d7e80fe4fd6c46475678689160ae87a86aa7239628488f034bbfbaf9329f5e14a3ac3e84b04e762e3ac974643b945a489f8a6965113499d3d862a5b647f362a980806c227685efe6e143b0bf0a184c7a20b99549edf240a71d0bbc5ca5a06ec56f6fb77a8aa4d83358904eee13f874cbf3e1750f64b577493f3e33044b9a730b9a43c0838c078b5a2a39a26318c53e383c189d621b38a0764f88a2cb8b82f8aedd872bbb51f117b51a28a91bfd77ea4231e2e46122df151785b585c0fbcd96728f9523822650be14a34e7f8bcd230c5a725ee5438b06a34972d3bd57e1827bf60d20d3890de278f47016e821fcfd0a8ff0307f0be5190a3e01ee0e762d4be8560089ee4fd0736f7b45d1c8570291a19ce815564c87c87edf418c9f083c8db31a5a0927abf2bd814fe322ab50c28f613da78e4fffe1b8294f52a87d2ddfc5c6717e64ba67dbf2c237f44a3e0b4c6a2cd2111918674371a72eec3c17ec766c9ec31c6ce2f3c369f78e1048d321e876bb582dc89d04c6c888ba608ac37d1740cc8da014601c41f21b865208e21a8a3c19b21de1949b5817d1b40de4382600fb78924e3bfbd87644de361f3f82490c2e26395755f34612887b1f952e129ce40fd9566988fa2849b221860f03f43dd7ef15a9fc8f749d4465f3c661365201cb42bef1f608acff1bb67bd6220a19c6d613ee53a31118e6fdf1989c42addb6b80a5082a0235e040f43bb78aa535f67dde110da9f7c2a15ced6841e126edf6fde5bd2de570186dcd0b8a5458752237f0df24a10bfcbb1686db04b41f4595cf8e9862b7e5c93dac9f2a7e036a8d9daa46949f2ef9db7a4395288b30f736b6f5e2b428c3d983cbf8f7566d2d520430c08a7b3d0b808d2a36df02ade4b5d388de74ba1383b9b7fd3599ae536bcde5700f7653efe505bba6c35f47b875c3d39a61cdce96bc7550c747157b2a0c55926ed2d267a43a5eaf5f014e3e7d7cdb86f33a6ce3dc49f611ef9629d32a92818e4c676c5e9cdf303e1ecbc0a502061827f2894080bb9668116e902b5b7b353dec25d08f60df7bb0e2ec4163bc9d12cc928e53b134aa25de782e2785f6475ec6b75f331cc49409a18e1844393e48172e77340036f1960d3bb08a4f417c8a2d8212da5a2396125aaee350fd73859a7bd235a8db7ecb757674451682a8c0dbf49ee5d9341aa9aa9112d16c565641a41df60e44952deff81e1f2e4b3ced857cba8656185299086ca58ccf3d7f2975facc985a63c31dbdf3d74d3caf7ee82566ba2167206badf449e2a635296b41b1b5cd67da005b3d5b8a06c0e0e64fe6069be1e86b06d8b7c65b684d5ef45011b8c759786e643bf53675266094f336822d1f53c8419018df6133abb49b4d2b5001041cd2b63ba2213c4e4312838dc2937df9e6d16d184e0f119af18f30213a2dcd72b8c96ba0b59ac21380d25121022b7c5ea5bf90d1be8af45dd797c9b68094b90a402b775efb4c74cb91231a7c0d9da4ad4e46d892530a613ccd6031e944830bb9bd341843e2e1ad7541cdf4987ca0a23ad53758011c6ed25f95813887926c1eb5ac609c5d38f81b50eeeaad54eb7903f4df7575bdcbfd535ac8090c12b8adab777e0077e1b2ec96bc084a7c057b3830d948b4cc36353980ff5148749aca12dc5217a7c1c868327fff9518d6155302c3d99d0b3fecd4387a03efe1b573206b559450636f6d573b1c6fb0e3bcca1a718928a35b0e29489e82ceb7370fd0d32db64e76cabc0edef0bf9b06e61a4f7ffec544ce7d33c3d1140a87901d0c20432e3164c8d2a69f41bcb06e57a60bf7b28082fcca4758fad76163eeb6e0293b93603b30fc7d724a2a1f1c3cfbe5296fe8b60573f65d1f5a6305774e389e85ed2bae7d3aba538fcc23dc934a5adf3c35dae5bdc6e4d5a36da36a1a617ae98e8336da7cb120ac5e2d1cafd76073d4de484684324adba85a256aa8eccbb4c2f8512276a9073ccaa959eb95ed8056edf67b6df7ce6355f6bf0badd1da8570dd620522e6c9f195c6d0dcc7a8ca15aa66202c945f981081167ac807d6ad3d103775baaf75f031a349fc47cd820e7f28105977837420b6c27cdcfc36f243a345fd677c037c6f0e5216dcd67c3a93141d1b912f097247682e6af4379bb0574799c431cd9c907d108464bc8838ead371ec38f6e975149f070f70899bbe79f69fe70ed647bfcf7baa8c0bfc33cac86b178a0914881ea580a566c2bbcec8b408a2dd218e42f32e10b2b37c2d11ded12f3700da2382dd16286b635a2a0608788d4a812dc69382e1852eb68d6cda83fea4cdedb2250b8e3266d9eee8ca3c6fc96b64a9c22842fbcc25d84613b3e2af0dd50102b79ce093d3bb962299dd33136ffbd1819932f5b30d79c9874b3678b9dcc32284d108395034f029cca2a673b04fa7a309a808713f8ba74f9118177cdd4f0780cdb477cdb04a74eff0acd75122634b4f95888a45fb9c647bf20aef58bcca43c9ca28c76b9f3425504500d3f5ec32306e4b30db1d86be1b102b3c0469d9388f967ea972d88db43fc0b489326eb4eac581a8f5d9ca44544fb32ef92d6c1da6fc397e550608f1bd9655dcac3c2ec4f88061fce64538db7f5bcae73cb4e45367d200742c91e1c4115fd491e630b58b3e7a1ee97085f9b6040f49b0fab311add22c999d9db0cc02eb21ea593f96b41ad1b45be8544c00853ccccfda38d2c43d880f674a660f472dbba8eeee8df5c5a8492b54c4ef995cbb1b24dc2bfb47807d4a273263c0719ec9f6f3eabe89a9a30fa6060a1cd0c99a0f461d7b5bfd9021c866bebbdfe0a8b5e1f18ed66eadaee34cb9a064e59cb071fb3299e0963d47dcdeada57a4dc6076c81ccd2f353e99c66022c3455e64bfff740628983fd56f56f64fc13f14e5733d8396feaf3f7253508f80c5c743ba8668560a0e6e224ace9526153bece18d16708a197a9139a962ca296f1c4ecd32835b9235b9ce396615403c380aa57f5858d63cff488b2aedb1f1d6ca6b1f1f21669dd1306dacb4c283acfd8577e56c2ebb617e25359fd5af5d71eac6f3572af047102ff8e7c3c3ad8052bd5794d3770fae13b7bdc7f26f9054be0abd94534779314bd7ce2812dc3dac21d53ae27c687da166c3f5dcd4d98e402d964190605888a3f655f80b8de3f654a61cccbe9729ee33db056a842aa7b7fd338f4fced35773da91144201de27c83ed93223013eae4ea466fefff53c0980e0b9c1f6cae30ab4292510a6698e13af2654019c9a1489ae17b09ba927d6f1a168601ca78f585df7912d355a60e86aec91790d8ac362f97c318766c083b6adf3851cd7fff737da462b1b90bbbf3f100f8ed326d42057fc3d582e93f1eb43bfbdac28decd7c6d7dcc24266d8e7d495cd8b5b6746fa4e999c34b91a6f53b0563394364c64952525419d41d6aace8ac1a5ce4b14b8966d90b4b2d837bea5a3c98372d46d5cd7f8cddc77238e357405398e2f0b967b04aed73007cdfaf05de61b990c0e8cef29baac8ef25d376f54e43f7ffd72362bc37da54b4c899850ec69885764bb375b76bfe28aad18b815874c03e6f1e147c9ddac69d1cd61762ad57c425599014d8203d463d97fc58f25f4ae05238bcb813973c66fa42761aa4fad6fb15c6b6d596a06c18ed5fd18b1629870340a37e88cc2cec1033bb4b24c94262d98ec8ceb98bdc2270bae4f1de7d4d9a69b654d50a491108e351e4b7c89522c17eeb7c588394a3b4f0fe857591045ec594070da0bd035663aa66b4fc133e80fbbc624e523e98272c722db294620c445ff855b39e18424d3bc9f540e295334c52e06cd847b2bfc3a046d32d08ce426231ea8cc7e6c64358999169f6dc2c71e2f29c8019b419af19751a16c63c600801c503d5ab3c96f25d1ec1a25ea1ea80e7c275042dd1efcc0adc3a35e70b870aec90f6d13de5b3e128399ac53e65e6f71923111c8f2cf126b420415b0ae4726d076077ef7de7ab1030f9edcac48096a378d0fdcfd76c61b19ce1f0d5b079b05c7e8d1a67a19122d5d15d2a3446ac8115848028bffcbf741921bb46f31eb2897bc315f9706ef79946f8f8edd465566314afd509222bdc3aac678226e55f9a8449a956f057709162ae88702637053a2bb8def3db56bf11c5b4677a7febef523db8f7ed6a29d7582f75b63365a92ccb9381f2934bf152e5dedc93c7a49b90f9c598f817748bd8d5993c2b8ff691375be8f0847408910696ff3a963554f647807c9d1722fcd11b4dcf0f8b967aa6ccc13bad05526c47dab39ec636b0b57344997f7508a1bf443dd09653e2c46d7aaebada004bea6f733c470e61bb9080270ba84764b98f019f6eae733b7f01281f0a3ebfbb540c4e73eca3f461628e541b3a9de26c54954cd3dd613c8eb1c30b6f3ec2590f8031d195a6f6da63d2a67cb6e7011f7067d6a4a22aad82d48a32ee57ca34e8a67afa87d7c22e978a0789a0d630a233018a608e6214e5c8a9c8bcf86ea9738119e986d6b4a02eaddf153dc252b8cddd64a4341d1aa20ab0e9cbbc374adec6259bffffede9e9f09240555ffc3b2e96132b1613942a261ac55614f6cb0ccc461aaef5bd6b30790048757cde873b50cdd7ea2317afbe26c4933e6811dc360423eced6b7d9ec47d00a0e85b7494c4b3b59303aab305fb7c451ba8b25a6cf17d56754231ea15fd6f6c9ddd137559459cee5eed6420db860ece5a595ac1de3b2d810eb06164d155d369beda1ac968c1c388fa29badb52594127362abc13a11878310d3b42f007c3c307fd2ff4e4929a45ae17aefb5faa6f98b89a95b70b46eff24a41be7a04d140697d13d1963d336532eeedafe1f4410ae1d180393dd6f0a19b4a9e45bf12e9e00a1dee0c2f8461361b81278369ee458c217d68528907c9ce5ad2d5f52b752e9a54ac4a1ef3b0ae25b51f4c6cbd5478eba3fe6df524921c00a4466a51164d654246949713c5509e1a03b700734732ce80f8bfc072e6d7b3442db75cc6120bdbae08c949c65da1351e38977ddac4e5cedada990f63bfb72cdd8d98ec30fb9b5fbefb3ec28cdce4735ac55116ab2a094547660e76ddd16057531c652ad6c9b01a09ccceda2fa33ac07d745fd4489469051bdb3fc26de1f27db40b58661cde18e0ae607dbcd162a5d631365b08cb816664acce198b0e85ac4380f0977ae0c70978bfefbf8ca70a0eb8e6348a67f8c45ad855e2d1aed0c2a98d83d7fa4c205205738cd9619a4f995d2c3a18540b791d9193e2578bd623ed5e6ee7b8f94e01afeaacd6ce0c39fc8e9230af679ae291d3083ac45ad6f81d6e256a70e1adf1fb095ab0ba98da16896bbce816460978dc5918605d7fb719810006d365066d387b04d94e889621cdd435c21fd3cb88097e6d6371c67e15a758d796c2a2f714e4107d589b1c064554f4fce68e2a8fb2ace1d1c925777043e8dd0439e2dad8b9cf6269f11b03bdedf1862d6cf6422a65e60cf869aecfade0420c29340ea5e4980b982704c33972feaa8c49bdf46fb8ae37ba21967dbd93842fd2f07a1c6edbeb8f015fb45eca772be9ee5d84383d57b9c2202997b0172720a71475d23be9710a1dfdb8aeb64f1ecc415d79bb46a293f01609d7f2eb0149f9a661ebf36b2ae50c35356c27bf931527203cf962700c2d6700ee702089a846fd8fd2b987b2c17ae78e50b678124d6d6cb6aa700ab9e4016161197274d967aecf4a7cdfe9bb1cdf2f001033eab1d80126b345f058c3e9789580428e628ae2501bc5ec1ac98725c523ba64bf812c488b22bad98c6aa018dab13ec595f2523a3d55ab1ad878c6066882a4c742fc58c78fcec0817ec1d093f6c0e54ae20e7a28af9a63099b9286522472e0b13729cb68e2011ca48c487f89c076dacec785ca8625e303c71596bc8d8f57b584260c1543e5ca499b9f4bef5e92b1769a1dcd21e2922a85084a3529a66bf20231dd861d9adec55ef9abaac653b704c90995aa4b7cd2966bf08c28e4dbef0d641463271aa37d1ace344bb8221001be1f16a206f07b58b17269325748e65a7b849628e83f2e95d22aaaf64aa617738dd35ea0e096c39cadf14a36db0c7f6cf29ee9a2f1650079e0c7cfadd0f263301784eb35ea1f025de761018e183b49d7493fb1be9d63d88868230e687aa759c90a99ea654c2e13a110e85b57681d69d5bcad7969abc0e95f8a3585b0d65696debcc5365062587ada8054ea26d17a3caf53a34c1bc02210e94ef7ae303c79837560c06d72e8985a75fbd2ded7562c3109d3447d3fd597b045a90f32a1c0229ddfb91b0a71203bfc3b109f004690dcfea22ee720ceedf5f401fcd1284e2447116e4b677c674712492f517f93c923f81ebae1dba2bbcaf80bbce034e670f75e1ef39aa80e59a0dcf1a47cbb14e87db8439ed3dc3f6011e6a247cdabaec67b39a46e24a53fc6147e55342dc99d490909b0c8dda74b6a0f1665d469097522e4bf350622ddcc6625f42a98d45c7d1a28011340f7e66b8ad2b9bfe0998567b22eff11316082a422671947d34c74126e57c2591e41a7bcd6e3052d1e3e67e6e1266a6edb6ff6e346adfa8a4d18af81ecc1a4c98dc09fbca6663855483a0b5d3fa08280b328ea3a17554ebe6893207e3c023fad5e3f76c097288703a4d0b717ab7b4ecf3cefd65577dc8af80d6dc9e065a21f163125d3ee7f27ba1ea4df627d443111dfba5b256631840bca31fe72efb2308df760a5705440e1451fffbfa4b788b5085cf66bc3e98c434abf22679589af94280d1a600c706f83cfbc6ca4400a0cac6c3ef6e6ac30f7bd92b084223cfa0eca05950f9a036964fa21cc38cc849a97efe602e30dc46a154add9f06419882cbee78d60994b53618c77b42ca6156997e6298f34e7c7da6f3e0e61abfcd48042e70c498242cc22587a31a96c0f2b298e131469fda1f1d75bbebdeaae9927f54b3157b9ccc2f78970c64277a227fa315a89f3aa58960cc28cc78954616a081493deea946739bc6b239b2da11f5781d8e86ec0096ac8009dee9e8b91a185a621ca6282b812a58a49ee4c7c30ec81a879cb4ef07f2801cfbdafcfaea83e058a7c84ab55829dc2f398d1167337414a4928b867b920e0148d6ec42f722c7ef0cd2ab9f8712a6f3b92e3d2e68cab0f230d5a0a8d3f45b179347262f414b398f6bc6b4545048001249c8f7a3a152178320b4a3f974c310d2e3d9285d6a1ca3af95a49693f582161cab5e0560b71e8510450fb7864769f3eef3ee56c478a200467a54c48d18d7ab0d4df5977cbe8cda70cb920fd68d4fedfbf126b1ab5c3180b6694466b394795a4af9a2af271054537facdb2b7cfa68e5fbe2ef0d7de98dc57ce26973eb3d109074d99ba6197d218f4d881a7b52a91ee824b36e7ae39a1fd65f4027b90af8a3036329db861a297d284040613a7b34a2cdf80f80ced649025a54376af179d8308a2d6554a1204dae8c4ea18f4661ce6d162f75638a7aecfeffda8dd2bea40a62653525d1c9a84ba70409e7a116aef12faccddceac35a813f644cdc0c6059fdb66605cac1aa29fff7bbb3871995280faf92e5f9ea3b1ca5f4dc81f2a5cc872f70678991f8bd7f05e86ad0d87a7606c9ac27259c084792b2a2dc9b0057278376a495c3ae81c6ab0d754c0acec6ffaaabeb5d2633876b240913efbdb9066bdc0fbbb62ea0141913f307253b428932b2efd4c5f25697dc3b5d51d08c324ec236310c5f40d08c904c5e803f773ff071f13559b7bfb6e6bd54f8aec0c98e5f499ac3a280f51045b80d9340bf45ebc1caa6253645ff0b8325ae22b6f17b82038f4ac1bc9c58510c24844ce45c54e474cc261df3d96015a1183531315ae95632a6dced311bbd2e5849fc7b2ca9795af06017210f480b6cc30c8b0f3754b7395981f3e8608ab31b3744ffd1e2fcfe016182482af30d00623f964535644d8ed9d158ae4b04de33dd5172543587881eb250c8e0e463a0f91dc5ad714c7703857621113ee5af3c55249ed72b7175ff90075c7c6b1dc781721ddbf6293a23dbfe023bf81e35b5b45faf5868c45a871364f9293f444cb5098863d298e86b84fb49588e882523d116eab22624bc209726a09900568903cce96bbf03ca623345cd625d969240679e2ddd8b8368c18abe57c5a447a148c478ee85a77ab38927cf0d47f3d5b5ccf154e444f282fb1858d2c8527a55e0d30c04cbb661b639770fff4d43b02da82dde4c2e9e3081c20e6e29d56a2e91d0dd521800e5f6e7b5c6817f8edd530fcd3a6e1092473d33fc0117918f1ab5b5af424357734a803a1e1d28002acb804b8ee6076a8e52e4cc07f48842d0c070309429b537e5541a10ec56d0eb3931707705809a7fc2b3d7824ceae9a8c925a94239f956aacecca60ce6b1f90a39599db63f8fd64538ea6388723daf29f21044ee754f41f1a4add7a127acb1da59cd3077d9b258d3fb694e44f766d37588cbaac02cf4aba6f12afb6f25e37383604933fce71a85206e1e07c53c4c581ff5a0022a723a0aee8bb0bb8c0c6fe71b11df8ffa28e38180c61f2523a8fb64d8b4566362f85bff525119aa57224989217ac60832c6aeaf9ca1ced3ce75d56784dbd9dc1ecd0188b6ab572e158306965046a2258b0629d89020a30b16635db9b14635b22be0231b7279806ce7065eba6518415249c34f47f7ebb23639d25875ac48e09a03cbda207118455d92b83e0c12719ef5e0987dd6308ce583b87bea46a2ec94a60b1c7ae164a9374486f0b974ec0c06b0d0b61ac6ad67bf6c4589693757d534c9a818a5c84a2b6647de6c63e86eaff49c796afc012100a796a3ec5e41bd39de8f16d952ac33e2f39b17e3f4d1c76d51492f9c0bf3acf5ac01bc66887b0d2d09924d4194f9a7e178e5c0844f22f0531be5a90ca5cb75a5b6e373922057db2443c721d6c887f6cd94ec887699c476a780918eb64b1a9359495d14d96cea0150aa16ba78a7d2a83b5cc80b3848d88a303c6df980a2618059eb7b19fee97dd6064f010c08fae03213e25a57c327f9cb89ed9789a9dea8b3ba613a25257c5e27447dc69c13ef55093dcf84c425157f73c0b1b34e0e0feb4f0ef44ea1883e7e9b8e0a201f47d95413d4b717e7e84ec6efc7dfc1547fcca56494e310f9a2548b6280ce1f0a2d7dd3b011a986e50b2da56641d069b40fd47ff59ac4732df788649a9de345fb7f8570ebd2dfd05458767928f8920a1af52b84a7d880eaafbb943df3f1db0a6443589e65b3cade323f2764e7850af3f8c51f0b5ac7202aea1a8df01e7c31a83a901432fbb52785854a58f55b6777b988fb02e418991c42fb40b45caa57f05f74d7983b8614e8814a399ef2f5df76deb7f0d8565671e993b302cc69c3d34acd090d9e5cad2654781ce87b081013c1a77b468d01ee0e7357af95609f53a78a8f82a05a308199e9601456ffc58a9a718f00fa4410c1fcde0ad2e5b0513761674f42901223eff555492ed15525e6f0d3199ff0976e96346de44ac110e9b188cbb46a67918844fb83285a87fd918ed37554604c51fe2f3dc2f5b4cd0f07a0d8e8097853a3b555b4dde4f7379c8b814606bd4e9663e8205aba2c544f620a658810cceebb77e79016a74a9bf11d719ffbae8df1861e74408e72d00bd63f47a3400b3867985e7e860bc49709b1bc4ef56e93bc45d8f9e030754a11957fdefe2fa5b648e19dfea076ac10012bcade94e7686072e17ab3ec8cacca3f6ef2d2480d013104eea225fdf894df06f5da4e102009d2ccafdd571c3d1bd01864c619979c060d74fc352fc31bd09da79291e3a65ba2fa5db9d12ba6924a84bc0c288ccb877ab0f48f2946c9173eff0f80afe39a6b5b12ec22ac909f990a3c48c2e993baa1614154c0eb2ecd4ccd02f45e36cb5b9538cc4bb8b47ece8dbd8a0e5ab0c02d3a0edec202b9a7c93e5ceffde9752f2599c9bea6a603c3e07020494d5a05f85cd693cb8cb49df9f8319e22e27d2e09cd263afc7eb423c7643bff9af289b92317f7f3df6cd9e37aee25c5736af1808cc852f0e1082bc407d6a2b1c93ea66ab459979de96b729fbb345104dd1db9e02165d6ff0bf293922175564e7e60b8c34b0b64642ddf824aae275fc37e3d344cab4989701a694c524db4aeb682ec912b8fba8873f121e0866913a765daef5c69dbaaee2e2bd5e8a6abc9b91c1e4ac07494bc6c9df06df3175cd32045b5a4c0980562c07a85a83c67b22b28ea6eb46b9fd664a79e366acd2c17a2043a0cabfc0b928cbf95b215d82c4911fa0e249f3126cd81cb53bdba45b5904472ff0c4f87854a72ce879d3ba5315e465e2d2394ac934178e458ffc1b89ee9cbf6be367331b9f92edf470e9d25221117f67e887134675c5ddd7b9151d1b570fe59a63f179a7ae7903e227fd1fcf0387656e2941d76256fc9b4849b693710d1f395d32d501c7d84e96c27604706ab4121f85b0b1650a7ea837370015048daf7865166223a53b370cc801a95bb0ff96580ccd29b3f0ca9bf64b555542fd6780323a2adb3eb2f52c681c8801a04022ecdc7e0f564b903bdfcf7ee4f32aaf38e4dccbfdd8e38bc6da99728d335ad6115f9cd74e8e9a4cd97d66029e396a4eede62213ab6a7ed33ba62dc3b1e7783bb67b34b006391a07a931d20bcfb9ec2f21b5faaffff4d0172cbde9134b3a9b71952f9cd05b552bdd7cb5bcd0cdb962c6db2366b211adea41e38ec253733c2b04be516cf312f4f4dd344d1ede0ab582eba525c38a6f216e3aaa4cdf10457348934e18b89a43bc922db43c0adaeadb1b1fe555ac83b2b027819a6dae3ae25782e19aa07577626593ef8c4d8b02458df8a5f7736967050ef4b04b2d0a6254d362eeed6976256d3fc792964b90fbdae390b23fe0ef3203c1f629ee0c6d2912cbc8e78fd8ef3db7a95e58bb88e8bd5e268d01272173f82ba7205cd34c36d7f99012fc05b59302179b58304b5a50b9a356189427628553106d066c3974fe3bdd6d185779ac3823f61d41450b998d7b68a5027211f0c7103e18072c6dd0fb5e4f1ef7d3d1cc126019cd3fd10a239c6ebefab39d18be2bebea80c2a3faee76a24054aa2d580b7c0ac85e7616ff59ea7f756feea3b1e1c18054d0df9fb1224f521a3277b8a2bf4ca65a13af94899fa5c219d46071e6141ce1ce082404b9038fce76d326ee2626c42d1e485bd654df165f0129095898353d57857bd8d9c8ec10c447c2105709df00bae7eae16e65070f61a128676e17c6195103518154e87c3325387ff599ac6f0992aaf93d0456866337e0b87eb2926da886b506e446ba169ed45b01a9bc0fbe64e2e00ded7d76d37af6647baa9a277482c2b5e95dc277621534cb2f8ddf4297429f9dcf2db3efe6e8aff2413efec24914ee5d9e8ada35ca5f099d66dcfd182b3453ac7b8e321ebd1b71b793f97f98ff5d43519d3ac7f8fe396bcdf6c37cc48f74dc3964cbfc4fd917bb16294ae4b0cc43c6e4b0b9de63705ba804a54e933b39c15a1f70fd4cf2be4485df745efdf2896e67127965228bd98a5add2a1fd51887c2cf0e9818c80576491d0e1508171635bc726cea935788b2c2173db3fa692b3804348f6abaad600ff97532646e0c2072402bd9cbc9e6fabc65738f6023bc11f07d02ec8748e4df184fb753ea90716c07d5b6383741fb8679834137c582a708b9ab7cfa255ffa28287c21b2e7997abd5c3abb791fc09cbdb02c4e566ca473907d3629dd8d8f770858029518cd008b8201c84e0bc5bebd94edd7fa1f518022a88d2c4fbc9e6e16c9c4e15187c27c965327ad1e0d43de77bbfed573476415de261dca6fc049f3c1190dd5bfe122c7bd9b25c1ec1802aff0a377d66fbe0ad48e2ac5d1007a13257039d99d51f1fb2dd190f4e3c60243c7a0112f7cabe59dd8e4a90175e947961a34295261d57f90f6a2e0b4ee99779a29f757c1019384e7f55df7b2cc833cff472196a314c483d78f53f0253402f46dfb923a0ceecb59ab8f126a9ce12477921dda057ff96159fb9401252f917b27798b8d8db3d890da1c455370e6446de622f6e3919a2ac2cbda9f87705a0d537a4ea88e499e3e11c3646b61079d38e4ed99551a272d38ff4087eb3148560bfc16ce46a5c47766476e1f58ccf230689f777677dbcf76d43ab5c9c6953e7509ab89b2781e262e55f687dd7b3d15f530f9904a2dc808369036509bd6f4b42cf257c305b3d4f876d2c18fa34cbdfba37a97cf3a0d318131a79749aa28d67b96fc890fa664b1f4457d92d06a00bb03d61f456280f08af1b1dc2780da15bfc5f11c8f56cbdc5ab558f0b7e39f1761838fe65fdfeac184e30468a5a0c2f435821e0501d879814819adf67a93a2b70003b108dd98599c9860f9f0f3f82b9c781225b5b9630d56b77106d011f547d59de5854c267c4439327d679cc01c94b5904caf9b99f9b6d138816d8528de582fe6d537ad514a32afc49fa728eb50b1dfafec8a46c1a2f805d683ab4d6f6e10191dec5693754343806934151a464be8a0fde729a320492a150121cf01e141a114c6c8589d1b36a8f8e23692f77f34d229418f22cf7d4cf9f8ce34ada1b304af3d18cf14f8134227dd1b9e05974702c0e71013ae785596e39833d35ce8248ed483844146472b8498697e3dd579fd2f34e771c62ccf36f8bd303ac5b7f0945b1ab5d8410e1e854e6a9fbc2171398494630611709e037db22e077405dde9a0418458c99d71079d871fe4e3c7c8030294baf77f152a59881b3174176eb2db2f6d8558ecdfd71e3048cbefd5ced127a534561420ef9ac5d881973789e05c7ba35a867d6e548b3891d6990b81ec05b2bdad8afea49edc21ac8d831f4aabc60f9f3d65b80d903e9a29ac46a07101e018bee05d14595584ea0199ecfe82d820661670f13c228f85432848a414971e63f9f4cb09b28d52459026af1ef4a85c5dd696e36f6cc0b156c6a13019fc553295e3116f7d44e1057c58282739fff3d1b357fc3b18903db18fafa2a91d9541dbfd36c7c9dc2b452ca5cdd716b0e8a18a1fa5042f9863a12a6f7ff657bf9716902a0f1b95fc6ded71e3bf352ecc773f49de717200916fce801b32a53b2154d1e52c403918e838947e7cd570e527f971dbf5adb27616346ba81b58692cf820f93d1863d8015f35bbd45babd4493115fb28abda35703023d6e6dabea0480d1a7b9087f2837f52a9d4978d854c20aff6f005096fef555d6baeac29a97995be2eae5517775de46a6a7e20c48f5b8636c1643c614cad030c92bb7bbc975e657d805acee9c326117fa03841d7adacb4b457f1cec442396322de3d37aba1e2f75011de082143a7772258424140dc9b08e872ec6a8aa576e37792f154f35cb02c50c2c80b6a52be0314e585de9c205b04e507345eceefed285af84e24f3563d112aa2897f6fafb46ccd14bf1a2f0a958793fed129f07878d1093ad1c8ef1c4487a18b070a63f49e71f63045335ec2ae1c2e38f0f71139fee83a0d4e9391d4464009143f507a24e34befd122e632ad0bd9c5e5d6d09a9d77b9952da81d63649cd0cec93f3b6e4833334a816512dc99f4f8bc2eef67b56da5f438a766eb552ccaaaebc222affb1a8f264e2ccfd42b8304124b2704bfd2be30d232f1fa583d4e2c6a737bd45b62c51e4e7566537d17e03c71fc163cab24f924a108d8bf5252862ef20c04ccb0eaabf831ee7b0a1d3a8423fc310f847c22ecf5773238fba3b193978d6f8009465a4a24b21b5484f752108cb69bd167a506f383229f886cadd930a967eaf5f53d81206c241424a5d5c1f2eee0c40690465129d0292d3532fa2e9c166fde69fe3cafaed03c23f175130df86f7d87c460ee45af52d532c90f7979b013f1405004953982ae6d46e39245606bf6eb926472b26afe2452f6e95e17668dfe001c4afd2bf851e93cb167217e08c7f837ebaade05094e72c03621351a04d0650f0e345c76ca2aaea34923788cf8f4dda4683c9c54b407e0c3a37788d9495b6de9c7841d9710ac9eee29b5e20d461f160035656279bc4be05761df5c708cb0d3b78efb90582f5477bc21492bc9ab104d42522fcf98b9852015886e448c09d8197bbc9e3a3a0fdd82a932fad3990625581313c9c9c9071186c9a769bcc561d98ff03f0a65419fa86cee13052a23d9c9c1d69e3b5b3843ed6a403c1e31d217c447c2180e3f934f3d44b9afca9c9eca8e14017071771dd1820c5d3d8db26f14483162dd9c9e2094d2c34fa5a2025c24c64798d98c70fb59775e3592e5a32123dedff6370ac3d467ed2b1ac77db5f554b5efeb7b8e0e0c4692b3af98ceefb47680bd4e6599b0c9c60c468e9b58b1cd6c5513c4cf4b85b246b1ee419f828b091ff3abe4b85bfffd32666092dd7d1e24a3a3c97f9fb5c210cdcc2dd56db952ce989c569f155f37e930b25458fb98f1fad28100df8d6ecf94910c217dba6286b33ceeb61a762c1415c808ece098988b05f8260f7d8bb13b700fec7fa6b2307817cb5c8df96996499309ce315009618316b81ff6536188d270056f4e9c76f22c58eae8d0f28fd7a3c083ae87fbdb4e03d9d6de6efa2b520d9ff665e4c79bbeffc3a037570d1e019d47cbab8ca24b896426bedd2cb1d899015ca9c2e8dba9ed8f9adb3a37c260b9c1bdfa382994cc24f2f3fd4cf2bdac3cc375aafcb22e9de483aee969a88c324a7f882f6752998515fea7c5545a05bee074cec885c4e467afeaffff8960c486ff34ef0822565fd0f1b1a06ee57a4e7bbb80bf954e4c306d6b4616b606b27de1d5a2612d7cc2c3bd8445daef17c01d21a8b357ea5ae6d6068289f888daec90dd780f03c60b3ad48c3085ed691ea39e458e34f06066096300b390605707c4d8a891bf7bff56c78c3721d2129dc41ea64e189259d798d4e21befe32ee79eb92d846598eb8b50815fe64e067170800372f7b9600ff34a2fda8c02c8325f5bd3a245c4079a1ee492587850e6c26e128d6bd10623769ada6c1a7b0feb11cdc7190ed6468ba8f292f74101fe0a4945b6dbddbe587624778fe68585d8357a9ff8a3f5b4dd709e43207f8246e36c1145e3324377c6bd9d7a8f3d623adb8bcf2ad4319071afaa1dd34dea934382fbd8e79c1f86086ac5b156e336c0a03a843626eb96a63347d07167a832d4a565ea2e4353e8554ff717ea028b63acae7965342fe177c93213a7f347644f2651039e0c9853e87780a2000b39a20650d205ee1b46651c7d3d33cc6cc249094fdb6e62c8c8c8b8d1a35673b3fa94ebe56c91b3254fba57b3369759c0a8b1af3a10dc5524d94b49c2153c559408641e6b513e236291cfc929916da01ece91c0606cf1303e75044a42038fdf8c6af9b73f48986caa39e9fa08d9e152f38e99d54aa4ead64f6a59892ef2c51637ec8c3080905fe154d7d8136f2c2bb78e445e68dc1e8bd7832c3127113a0890149d18eabb582394b8dec53467baeabd43d2973f5974e04c9c4ec2bfb886f4fe9850dde4d146ac3f7b2886ac2c49da15561c6d9750f5d4becd0df4efee55b745c51bf7cf28f136c13b7186927fb4ca969c8dd056832492f6fac54ed5a97c7101e3da01e82b677eaf6ad742853e67f29d2d91ece39337b3eb71797c6b26a2eecc35adcd55f2a896d809614f8f6fe58b35c419a069ce994735654f59e973c3abb3247523ff3a2897b09a74f0746043c421ce1a0ba0a068a5a8a012947f1aae2d8f735b99fb725115fbba5f43ec8caaf92c3c0e2b6a68f80b1063afde1ab287a748a14a771f51ff6e39ced1f68187d8494d3f7187da184e1623dab8ae0b7045f1386570ab4ead02e5a7995d932c389f707d1645ee70d5a5fd2a79e48db5ec35ce2093c1ce899e9f85d3e7fd53d06165f662f28f40a30bedabfc458dfaa7a4758373627439e79610e712208c8e3586a3ae1bbdd74e03c3479e324330d8c2027abeed328427ea28ffb16b3d4bac33ee6786cc45acc593d48a97d051f06f48138bcbb26d30ede95d0ffcaeb75db212d2d1a2cbe81e2a1e7ac122bb3f1401ff59431c6a0f7b3b7b095372d6c04a5a655c99cf7f4e42e69b2eabe5ac3b85e1c3a7131e17bdac740d52d553ecaf80badd87883d4f44b26504293ac39392512e3236bd60a502cf102ebb113c0892cd7edea6fa9037040a4212d314ce7f6d2b0c3fc2da0c637f3312245a77bd2aa1e6b0cab96340e9786c7fd17d150b8e42e877edd855aae351eb89d581eccb01d0e4105697c642802dfdd8083ecb0379ce03a77b0bee36050a4d2c291f49f7dfb0c2fd57503f0e34a1661dd04af928b9b71af8ab4ab98c11c575f55533db7570bde0ede2267be698a8539be57014055f6f6e730b3b9c1836ddc3ddd255e1fef16b8377a2e63b7b4c5ff79d942dc93e117f67db57eed4e0cbc2599ed8eb1275028e52e9c16ad5d627ee87f93ecc756bd8360e4d671070db292b9e85a7cf1461452cdb72dda3b39c5013baa7db71abb1a29892703340d594fbbdbd5b0376063c6f710cddbf7ed197c3ea5074fc59b23ba972c439eaff382656cf2757973cf7897f3ebad2eea2439932ef88b92ca9057a21d59a382661277c05820d2134706cc433b11db9471eada64f8ca72cbb20d135e472af79b05401edcbe2e6e919c6de14fd3c52182fb9c978dfe478ba40b07a73f407c1f66d4f791f8e2aef8dc0773adf02f6d89314dde5492da0c77376591625109432975ac81741a55aa6c9cfec5f1cfc5413734dad62f4b9abe5892c1bf0acb41288c0b3edb78cd1d34f7e39e3a384e909cdb98730366140df275b74a00730415dee76b4d10721875d6f06a8514f8afa6ab0d0572f6b46695a678f4f418cb8200fb10d85390d278f50539ab2d41e2427accdbda2ba9e35c8448144767a68282697c367402ba048373d8ac48953c267485318ede62280fafb51d74a0662b3fb831c3ac83052ea76897267e60dad5ff4b94be988a58759490c0dce712dc73edb0981d232a652ec00464180cc81aa0e2dce937c626e0c80bd5e774fe4209b0aff9195675c0831faf999b232534b295c439fbd726a502fe427ddf84795f3f9cf60c8887d2b06023bf0cbaf1a1b7469c81107644eb9b0b2862d27f827bc1daa76beb5b3b8c804342af358459d4ddcb248c6c743f927ca0afc35e9b26461c7319f6cb82a643f30e418ea3bc16171510fc45c2fe03f785745f0a9b217f8fa27b11cf9d4e4eeadcfdba73a59e9d24efbab9ae9bf79500d2af09f81e573df188d89749d88de6806bf0450bf486c9ee4d09019b4a6a44034af995b2399c19b21da7861818758095f305ede0df8fb396c07c106210cfc86fca5240a928a42b11e933952cd1036abd216bdf10ddf365a6ead831a6d864681a0874ea4eb73de2a99c4e7ea8cc2894cf1dced7ddfc0a17ce7e387813739dfee7d6476b837656c13865a637f6117938dc0481f481133795e7c67d45cdc6b5e739e37e8e885f8a7fd42b8a89c04f8c9364cafd86f27650f83be5bf6409fa04b18d0f2ae685c7b147da2a3a07f9a0a19b0c6d91fe171e2bfb3808aafb5a5761ac94dc53583766779ad08d5389cd4a91289393edde2324840783b8978b9c1e0d2d5f75ecf16d3c4f4aa97beae18e4adbff4c56dff8a152a3aa28176873a0c7b8c721c329013134fd9146c5cd64e3c71a24675da5844f49ea7c48441b09f4f095436d0f5c6002878af91e91fcf4e25bbab7a9956b54fef2f61b4a9ad5f404268299fd6eac47552a2b949174809591e7a2aaebdef2e40d323a90f2d8426e9907b838d1aa595a2702b4d6b0c39b666107832a426075c7ecf6045b2d7a5c65cb9e22ec3b65bbcc69c232ba76ca4bea050729142e3c98ac57c5ee642c3ee77cbb47e6b698e010bb91bc9c4b3f49421e6723f2d126d6ae0a433e22ea62e1e27627212e48d75a82d639b2301c716af2f4aecec90c3d8bddcffb27fad876234c5bb21887a9de9f09242c158aa20a7386e9385fe81a6961e758d16187ed7a5f859674da5eaee5988f0e90894228098b90dbb9d39b231c3b6b35b1dd116474299706cc537f43900f8c07bf29b61acc847c8713ca6058007948a47c03ef9cf9897a1c2590515184946be34816e85eddccfab97f4af6fcf0927548618b99d2a467271d56408da8ecc2c8be0097f71902eedccc596901d016e104d1e9618f45757bf770626c3767cd6e47262516f1166c7221fc4b36e7f1c665d2d6c865242198ea8c62aecb3a02d7fcc652ffb5dd5456e87b715efd9c4cbd295e9a0eaaffe78b5fbd6091034a4cb53661fd04724e784c3368f68218f8cdbf33d8e3d9e98803e0641d1e0be4b47e78e75b064231d69836d1973254baedabea8ad1a9acd2c087b9b89e8e0944456f5e0387e1b844fc82155d62ee656cce30b415f3a63bc26aa02f7e79fad0705a5cdc80526bc1816cd44f2fe28fbab8adefbdc17be18dcbe22ea95c43fdfa07ee72c7cc69a20479e9e55a8c896e4909ed8ee5d8bc08c328c6f0d9580748408b90231601c40b47ad85ec132e525db5d727fe4e65d7467109b558c65180c9cdf435fe01129bdfbc2b35d79214c7b487fcae705eda4b3a51734a64991b80c9c6a1955a2fe3fbf0ac2be237365072e4a4818a31ad8498b15920d2a6b8f76eaec0b3c00c38c02eb0beb87bd26ed54f5359564dc1133f026db17e197dea89f76698e98acf3d3a8c8ba1057c21251af990e3efcc97c6c41b4ef859fe0d0ec4f3fe33ff78ec6e5788eeb431a8a36908fd81159487c1227c00e9c44bd683535437aa0db05b034a6ae4a0202a0e798dcf9d22c4d7cf52d1a854701de507b443b1242d744c4c51934561479b37885c17727cf81b403814b82876693e4fd60f9bb4de13611de36b6e1da985e7a19b53e9fdf0de80eda748e2153159929e60991ac29235de3baaa2ebd4c92d2501a19208951346a4436e23cd04d3daf431b27107faa2561954f580aa99e708b77a9147d708153c7f7333e3f9dee0544654ae5be7686f54a33fabcb6045fc652348e53edb19ae6f1a864b6a57e88091c839c37a50c2d5095c5f28301e5acd786e0540f0df8b8398fa772b821928a09ceca04c71564a644b2eb1a2ea1dc6b0098477eefff77fa8a7bd53f2f88ed57e54669772721cf3c1087463679ad54f8848d55cc83e83deddf44392a1b56ff181945a1c2e920632280ebb2d59c2175dec67f1506617189a9f9ad606076277f2894dc31047e2c9d84552c547f325d9d55c51c00cdd9473a2b0a2c936fc93eeefd48f50cf59fa616c0a58a6edd05a66c8247259a5d269c4cbccd6cd4756f01a8b772ca5d8533b049a6f4b911fe18a45ac10cf162558fa3658273cbb6a14c7a82a62e6cdf820db16507d36393eddfe3df7be5e712d8d817708150ddfde9a4d8fe7cb23d834321d533f21fa4d93516522e4aa5072aaebcb548a5b0e71027d4ec09041a76678ef18b0b5ca78c750c98c679637562ce36bbbd7aa439653df8e3ad4c7781a21d3df005d722bda18d395878d09e2c9dfa46ec750cce3b84c91e5fb40cebe321414fadbb279b9f5a9801e3838386f873fc4fc2a65b14fda8d6384dc09c5dffa65d6a53e85a1ce1a5e69bdd671f40d1304367e31d0ae782e81306f5345d5652ba2500f50cce3cd461feff9889f44ae8367e09552bfaad9f8d40a0de944c342136f9949a6823b0fae5c4131eb02f57807c0bb338265bf710977e51920c288e53cdbbe0d78596f9c2787984108a82b7620ab6a740e6c5aa4b3875f2bbe91b46e480fbc3eaad606475d67fd464255c2f757ec483d54869d32b5643faad1d04339127674b0c702df40cb1fa672d76b11fc98a57709eaf46d31d0d42aababf3c8171ef943ba9219f3fdd2e369ab1d55554db731815bf7e7e117f2b97ff7c89022d1cd718dfac57e3665264e225997fe3f3a19437a1a79fac75e4b39754f65863381232eb10e66d5798cce11d6a3513345474d9ba85c4ff5442ad5bfadb58b0be7e32281fbdd3013dd594245056d91669b5ce441cbbb40f6020c90dda5f7236d6471734e951d3787ee82c24d406c06f8425726c38acee45a76de06988eeed346efc5fa7f5dac07983c1c8c7725c39eb900e67f98c20e59991201e42305f0e187e9e13240fc1956e15a5936cad18b3ba5a31f729c7bfce08c0d2b21d48d816f5f0e67a221568780654e67f62d848bcf0b70eca4fa2082c15cac4c8b5d4c15100f62a0b6d4225fcb6b919c46e050a50056101ed4e16d508430aed08797bcd8914e16a3da6c347063330f4d449beef8b56598ab622d6c5bf9c7a63010c65fed32f9b2c77be9d2deaf934489f208f9775a1e79122571e2fb72da1bcb5c5efdabcf3a2037d7fe49ed3c70dd3011261339a8d1e9f7b90d36028878c25622d323246269de8400341e983210dcc0ab6a4142220f547e302f1638340e05202834d1fa63275c2403ac875bbcde66749924c826947ef5b92f646876a70f1947d3b903463a50dc3136921d3665614c297a597634f51568b774a89559235f3a2717a68f83cb2807937a6fc6dcb8c49de1ddeab893174018d31f1adce0b2f33ef759c261e4baff0bba75dd9717d02f9b3f2a200a2fd47ae04406e9bfe9f04669659af8f24e195e8ca4ece1c8cdd8fe875ac4a991bd546e9abac5d274beddd033c4ef53f440f834c50e58c788b3aced58765a20f898152867f5ceb6413e8e7b4652a66ddd70c3bda1b6cffa015789e2ad4376c6e495e2ea9f3ae59437a39d4cd27ee2b1aa873a439bf03e353ed48a2c173f4dbdb816b035e700f7c7c76b857dc347d2487c5f6469d6b88c7ae82a0c1bad9e91814b2f5ddc198a340d381e2ac43a2116336da2ad1f2b2028fd5c7fca75ff5dec1b36d9c2bbb1e4f20a281ca0de9f342af2d1d0996a30eb0f3e8838e4318fc056552048a434225dcb0b9c26d3ef0409d02a951110ce54d20fe4c9e13476fcd8d096d225ddb397335148f22c0028883ac0c2d7c524d994da78f3f1c6cab2623a5a620b59c91d7f84586babf09a3c66510ad69372d96bf9b2cdbbeca8f2b5cff36a8b49a8d659c693fd3c5cb616e961da57fecd255ca74e834e9bfce8fc4bd0a6471f5e9e83addecbfde4a582b34b2290e49a3a577f08366db14b595bc3bced4c0d45eda4058db268d1c62397acbb101f88d2e3edeb1867d538d64e0dd963928ad9a1697d9ed6c1c611761572f8b260b36fb035bb4db956f75d70ee2a7a039e5ac00b7865a8735b393ece8096dd2c7657afc60d4bbe089d4ca49e5ad3d690a148737e9d1039b6ed041cc4456bd80af60c5280de2dc57cb0c8a90d06c9ec46e2114e3cf3203024058f17e182be57ca6aad2d0ec668e7ab30df22a871550c84477109d41571a77a88f97dc5ef3e82d818fba75632ce4a77c2982ebf3a077502ae3fc71d35f081af6a25551b81a38018cd4b54e863703e0c2b49b7cecf4d37b317d1260b3450ff0ce523562095d4ee9070673c71ea2d74a94ab35d737ffbd2ca50094df52317d60c909ae2269fb5adbb647b4fc7ca12ab211b86ccde4ba658bddc85257e10b59b794dcc0bc5f30a74f78fafc421aa5a2039f3ce480f019018224e411a396d530a5b13608ec747d86c3f5c8ee9f0bb7cad1a3431fe93c0d8740aaee8d95cd8a8fbeba352e860eac94375fed954d4488f9d1db763253d724deba89a75471eea1cffb3cf5daee9e9be6b237c24c3ba8d2d35e378072de8e821b25dd71436f296cd636204d529f23379cbb31f00e8ceefa30f64b760cfdda188c7de233783d01e3c3b19fc4a6a5f32bf3e01bcb0c15541c5cbb5436c8f81170c7023046bc7ca5acc990d2bb9d22de3b9333ddaf0fe31de806f3c2cd8e6bef6bf8b6f864f53e1d612b5ac40d1fcc98444ec78175c8b3eb02c7895e55b1c56acbdde060d5f48f415ae17c1dad506d7e56f73757437179dac9a189f6df56cadd5cc18be23011e9879876c65bfd4c629d744520195e44da76a9fda7a15eea127b20ca08c28853bd9c8681eb9aeab81d16d8efa32dbe29b17f704bb98e9cdb8714d39a6892d3a4f1cda58606ed015da4c9d052e4f180a58d7848dd3965b488eb319b2302cad6545d456d2b10430c4b0f589df58d168781320c3eacc435a1af5077d2eaf366fe874d13e65e6be5ed070d6fd43a4b0cd2e4143f83409dfacc599e5b25d699a3d4950209ce845a7ccca76068395e5080728bdf71d58b2aa8becd102f83aa17bb0b2631634bbf86a8bdc85c3816a4d0e8199af133b14876cd49b5b771980ed5bd4be682447b2a7b2b80de6cac74478421a118dee53d5caec4e150f679cdd8fd7536071200653c28a001508df9d0452a181677ec2b1bcca473f242046b03d7ff5b534bf1331c8363c3b27dd29a1fa0028922a194307a144f9c60386d7b890b0d9bd556a5b31baa634cece5de7f400a53cbdd0b07b72c0e49bd9375918b0490a0256e1ba64223074455e6426d8b394be4ad5bdaa7fd931f5082ab19240c43ecf1d99bafe01e22ee865304accb61d2c183638aad89709926c5c4c2bbac3437b481b62b9d345bf8b28ea0777a5b876b9a827f31f4fa2b1b65301c62e0068a91ad921edbb6f609198f24927aef11cf2a4434022498f74e76bcbafe83a7e2b4b592ab2e4ed170375798f422a660f818d79c7575f7b5b31d19b0b171ccfd42a803c61721cc4f5eb467950d2b24fdae60fd1b2019d2a415f446fa074ad68dff17afed67c2735171b0e1c36528c014e31b39ff961f22f4370878f9d4fcb7a8443f9f7decf5d96fcc24c89252971828dee8b91a3dfa4f2de8fcfedfd0ff215f11f710aa3e4a446c8a0ee6eb12db72eff88c607affb5bd172b44de5adab9b80eb91cf51ab79df1dc367987e544b6f3f31e430d71c767a5f5b651f75773038cb9644845fdf9d222e85159599d6d533e4d535af90c08a9a8b0749dfdae4337ce978ed3c8bc6495d55ecf367a8c75ddbb932c243629352423350476d7b393d22c76862f04c6a02d63159aa705dc27a80d1e5233ab7d4a31924b37a35624d2a56c9df08b4c2d1a66752c0e9aa420b4e86b2e03ea2d204282a31795d8727611952b3244cd39fd7e7f03197b6fec6a31fef2ca92588ce29edfbc04d9f76f4786e8e9354cd3f03b4235499ea7e696c9144a219ae36ba5dae4f40e5071239a8f0d2dbd94aa0f006c1cd2e99849d6dc31bb980743f06be82a1e2d8590ffa08149a2a44ef5506cc86a8654b16e8fb77d41e519ee7e46cad5d2579f2495da8be06ee84607530582ac1341a3a53299003e7536e96f4088405be8220bacb28e579488a5518bc4e71e80fcced15911fb4ee63db8264f12eb3e251c13e58621572255924469e732e41cf2f4f774b5653f620dd5559f8316b9aa3fd44373655daad7149e514911303f88eaaf4407a2ea61e636d25e0546dcceec9f79d0f90b90ad22307601059e8d12161723875d50da510e114807b9199a1e5072ce5af72af1ba30db78a7d7cfcec6ea1fb6512b087074fedaa0e82017372db04444887152ade043740a40855d139cb03e507a97b32d24073e887d92f8f495776852815152566215a647e84a95a227fe31b09de0987a2baf23f0a7caab7a84ee25be74d0991736088413635fbdd0d00cc73f9911f4ac4c8e52a52af669753bd99a9f10f467e9862b0a399503d49251bf73c111c66254bbf7dbf72d4a980490665eaf0c1bdfc5330dab1a0a2311b73af8bacbedfe53a79f74a4b2bd2cf3aa6d6e4412a0994d734d5cd5556f84cb6270405503d706ee49970e91fc49edc58d4f00da690a663dcf9c5b9bd3168aa328a9bd576abf661c41326a23c5270d3161c74175690bd51ca61a24e6fa778215c4f178d3e758eab7c875b18e0d0e18c17efc9cf2906766920b77b7de1ba988d54927f5a66098b4faef5a4e8fb69a0cd849283f79f769a1cdd794e276b7edf4966680157c573c64b2534b758f7acc54ab3317e7e0415c01676608f03bf9245d211804542c0f4148e209ab7fe262874ed866ab0393f913f2a0f39e2add945425d5260c4805986ca4c7d64d1621561464d1605a22017a62dc1bfdd52f103c27a00188cb7ca705c405720ffb2bf0549fb4a585aead0a94a2424fdb5f12bd0c6bbfaebbc197794812a76122f0c7bc99b74ce508c4fbebd731ed5961a24c9caa9354bc2a49cfe9ca68e5dd9a5ea03617d2eea35cceac902ff026fbb03a83b03234e178840db1f7ff97c4f597ea8493c0c76bdcb591596314c309c798751746da89f7111d8c38c085b7835c1c2b99e59d528bb61be791f43415dbe7c2d58962d6f02a80589b35065ca34194502e5f0eee938471e53f2b13d05178feb292accd1b6b90d03fe102f1f37ab118cdf591187f8f06f58018df2f646ad3f31116a61ea320cfed78598c7b8b20df7b46f3cf02f5aed04ada89392693547fcd0e7fc3761fd9c04afbd4a54d5cba03a781911545ee3bdb82c2bcd7c443884cd7ab201bd48185a2100674b1f9a2366ab14aad079bd4e70fc4426ff6ae1b84f5b3a700ff2536b5d4b20e3396d868c163ff44160eddaf47928bde7250716549db2652593f8dc2202c0a995a06fe474e4c9bcf113ef27f51985c662b4de457dbd1a8041a3d72541fd2592c0a16ff15169ffae4d714257ae3d26222157f357dc5fc192766cc5ad231b5dfe2b621857f121ba1d1140265053c66c9ca3c7232a992bb22a113e7a93c7989d263a704e72383f753d96ac23e788172c8f9c2caae8755a615592c2fb3823b59ef71779f42ad6b28cf66ec89956a3a2cab815eb31f4d229a64e96f41cc7463a5f89a96aed0b611b32e2ea3fe66e4d2845057d89bc67c92d5fa05d0d74527fd15c9fec9f06c1081127ebe0d0324d21a63e88f8e47050943250e23f4bb76edbebadb96a59d8c130aac1f5b995068eec66bef46f32bb54b562039cfb789420f7adb6be1182c1d4bbe53fe992ce21ac0ee59ab1f0a1f9c75f074f0daa741c67eab588e55e16805a5f5e0ba2f9f2e41638fe7a97bef55581db944a5d786ab141ff19be68f13dd42c1cad247873e330f920846046e4eb35d87609126b1cb882ca08c18d9b99684ddb79c04a53e4a4efeca9d2669e9ea65de1914b913242297928fe45b5d47a6d42bdc8f72ad6678e9f47ff8522fa518d7b8300c03729ce862390002aed1c952122199090e297071f4c8f1a3d5f2bb41e9c42e013cb797b0e9a01714427240fef89f7f35a29404502fa7ba8fb27e1464861a3baf62dbfdc00c58e1edf65501e1b00b0583c851a5274529118f2f053c917e2b925864430594d3490582a712108815913d26ed30d07ab6247ddeace8766fb6cab340e9961d5a7e80606e0b6b79514ce21295638794c1937c0e950d9773b7a57a003231d30d7568480b6f27a815f1aa5e150a8b43f8eb07802536b03939b6259d89f9ff2ceafbbadc0ae64d80e5efede00a0603b148d6b29f8324f73ba2cf8f5ef1e89993c637ef07c85bafad1726bfadcbcbefde76d8d383aa2861eaf0f72b763853d0e61227216267f77a96a7478c3cd3e04edaeb3944cd86ee31acd237ef1541141e325efe31174b098fa86f55add427915b2ed5b6410b0385aa99742e8aa39f07d47ed6a4ba5e5982b94a7c27db38e16d035dc60009b066e3d170228cc7140b8d550f3b31ce0f1e78888566e9f5daa3c66a41b03b400e545fcd2a47983a09600d65151f758cfa80a7aac57f9b1b52db34818e9b8031a9cf35c9b38cab3dfbb26e80354b7484f195ebdf59a2910e0d5c12a6db475bd561fa06718746b340225f9f4d69c4e2e6acfec7798e8cf1eb7a59005df1cc4dad4a0f55f83349b167e0581017137fab88f171e16b88c63832244b5f1248a04b6e2cc50bb305cf3b79d54b3658540d6eb5a53e83ec4135b5176e70d8efeaec3d7b056bf33d5d10fb1cf1350a5af9a7fcd1bd0c1ca54aa70d310220d6c03000802f0ef63f3772c42e6a1e428bdf8bc9dece2ab1bd722ddab56714f507e7fca965f90bbf018784d525c6629e37e25e33cd6a34a59db69db17b40013adf5e7ad3af44fddbb337be31c7128aea965ea59c3845e9949636ce9bfe71fea414d4823b193568dab0de47c80d2dbaa5b030e67bc1c08e83a58d936831cbd79823c6233cce30d61db894517085bb87b291005f53c0b53a386d2c342bdc69f2a0cabcf3b8ef3a464d707e12aed14c66a2cc3e28a9bef40000b5e907191b4110cd8c8c29da111ea009dfe4000825c68dfaf5302c5cfc985e56e52249b9ddef8de630aba704bc66729ef3ddc4e4cc21af0d260e4357ea2acdaf8d6cb92466e7143642946d93ed2d857dfa84a7b8a27d12577b2b06bcb092a775dfd2fb85cde1fbb5913d213394b30b1d29c3809f9b79f87c96382c7fa8daca3d30aac6857fa8cf1aaf9ba26417c97e3f19a8655e3ce658411b8c8018e1c19c6b7bef4ed0ba2abe107436db97ce0b6ac34452992e1dc358b13580c7589e1e62b3de388f6b13e4dd697ccd3b8484efb5d88d6782a16d8d11d510df21b0d5100f6c1a364c28f1928bbea40c9ae0fc9838e0b51da7636dde83fa5c5fc12fb104fb3617c1f8110f3f582e915060606a889749e7d2f1a2f459cf77d130005a118522485e7edb63fe8f4185297b41e8f613c47a2d36c062e9ec096aa5982d6406dee0849d0d1834a0732e0617d8e2403db29c2bf8ff7e16cd5b5087179ea1e5598f4bc227ca7db7ae14ea804b112e2acf147da79c3ad4712f21ea93e8c6e90f028f99a7711b3ebb3421172778333d96b212c715d11a9a7b359c9a6bdde32074b25b401c9655ecb31061d5c895c212ffdd62ae4133682c97198f79d93fedc3094adfb0b4d429698b769c13bf5dde8f3ebe26d158c375ca65aaedeca95aef95a36221de430da79b296ed2c7cecf765a0cb54467bf65aa0f18c7fb9d7b0107653fc3c9f79247ca198e54bf87bdae90a549979212686099c405e8bb83d5086ec2a5ed7202442c9f223358b33b25019a0d8f2cd09914e1aa8a2895ad5cf1c997ff9e92cc370f8bf08b5cfcb8e55194cefa04b071188478542464ecdb317ba05d029b198e58ded58885e7990bb79976ac3b6b563a6dda98e15b5d1f3cbd3f6f3bc2091c395ac4a102542adaddedac7978c958c0a6f17b1bcccafef45bcd641b9c80caeaab1a73282965753e7035d0b6d2e8288827c42fbda403b1436000500c360e080684039cc9e85fd19a7782d1065b18bfbb2b2f9a9c8be0b97c5370d1b177af90a650c79b86cf11a895d3a5cc89657f4759fbf607bf38f82c1ec42a81fa0372383495a2ec861d5c202b950f8223bfce5dd66198128b947b5541b38d7fdc3e051dd19bca1d916582172b557c17fa81c5909c28c2dc4fe0fd870dd3e3f1d1e967b2cd17f47997bd7cccb9da8697faf9cb0c87619385ba6ee9d84115daa555d0fc5730981b1a297f2f84cc11586a51995654678168f85feca24aad89a83f6a84d8d535caf9dcfe97aaa7b151ef4ef3fc0251824a416e38389da4b88c0838152b5a8ac98bcd9e706ad21f86f3bc111701a1b40f8709cd20ccdf4ada4552b8de58614010ce6518fd3d14fcc038895ab7e59995bb934e9058b5c11b23765b1454feb29ee14795ffc63f08c4a681e1701483676e28ba2b0e031ddb8fb396f13a87645fe145f8795e1313232ed3d385c3318e0d2c6a5b77baa9606f16404709f78c393b16fc78429accf1d857b8b0905453edc6c388ea7a81b8bad1ee930cfd44fdacbd65f7205b4d025dd405173c53e9871c59dc01b7bf72fe7a868d0b5f7550769cd509dff62cec645d22e589b21f021ca2bf734487babb31cf22f21809d4e819d087748d73d826ca537640f92f7c2b2493210e36036061671b2d31c1d53c5b0b4768d09014961dae59e71e27c6772ff82743e7b0eeeb3e9ee27fdb1f8f95aaf5934075aabea6c8ae31c94b27e31b0bb160e5d3ff33658f353ff1dadf4c170f8449752353f0fd670cc88259df073451b0b9c5fc63bea8ae71eb40d2c4124b80e976fcd835c40f6a2e43844b8ccee5d016f02f61902405cef9d98e0c23bf8bcd5934f7daaec36cfc1ea4be353d41d3eb4cd6531b2f23b10f5b5edc8e664967728e3f401f518915640af73eca5780c1047d38d1b45ee7a6db85e559ec8a5079e544a881996533b04ec513cf7f0fb9fdd417d12b762c29ae474c3e8314a0f99899bd8ca30f64a6098945eebdb6f36bfa434e4d19801e169f1be8714c704f1e744a3ee6a5017e9f8cea237731036203df919961dba9ad0b2852762ce14950cbf1768f6537e1149798d01e0ca48e0fba034333ee1794c621a0f575b5b8a8f10ef61c7f5f9b4d3d73e23798786f5482d1933f9b33e11b4885b0df4a780082931761e35ec9b048440a495d178687d79618d0071417e05d89a2de31bc1c9f5b2ca263e082452c622775c7d2c51cc6d1fcc1abb22677d2c5d21f4154782f5246c6b88213c23f57a61a326f20f1f36a47b78abda91b90cf3adea7e9e68e5aa861fec0e47bfe19e6b50217945c8cd2b05b9f30bfba837004555f84cd59f22ddaf286dac16c9568b7ccfb1394a1ad5f9a3dde381524b17ddaad790837cefc77c375a38d1163ed3e8ea5d3c5e4ea0e835886750619b73b08bac745cb097ce82d7ff5afc9cf28ee8b19198cd850ae8c55ec6cb8401f087df0dabe50b2631457e46768983373838786da0edd398f79aaa1e644ce8974e9175bd5f019cc6482ccd77ec160c46e04282abcd6b21b9ef70ff466d83285ca1b6b75e40c96fa27fa30857be79bb7d8d347c36d4aa8c68b04033cbc4f352ecf33204a0d8bb06d367d4fd205c8f4c99076db8bd225923c97e1f6fb4883797ee831a2a59b5cc2edffda59c6dc4ba8c77fa2e45718def7aad22efa098dc677644e2e9f0aa7c41ef621bb62d2eb06096bca2ce15147df91adb10a44e07675fa09fdc88bb691ab889f876ee1a9901dfc8a11ff58c75c80cf602d9bae7d5ecfa26a39c21db6b36cb95aac1b35ab93fe7b9919ca5105432e5444684f38d64bf5633aa23dd009a411dd7a8b591bd8943f147273dddb44384676edfb5b83d36a33031c07b763dad12a15900674395eef1f6978002586a776d8bf895a4f54e5ce179f27809d59bd5ff9f691cc6397af55f4ae066ccee8432f147031ee1e1722e83a26c17fde7a09736a09da0bfb212ba8032e2cf48119422a6ef909e0b85af74b08dcbed867503b697849ee78e72655c82bc7bb1b6b36089eab8238b1f94d6ab348d9dff2ccab69a5e2a81b74f1dc9f6afb69aa1f87e1760fdb66a40fe049e850a88892a7c81ecae7d08ae0574fd9c328cc9abd49d0bf354dedb28990fc46a7dff6280b814a7f4561e347273afb9ba856cef5897ae6f90fd810abdb3a6663960e694eaa551b6b1cf564ad50aab802dd5be6a6c184c6bc604a2a45770bf062de28b561b379eabf9b5ad17d0e36dfd19f93b1f0d233fbb98f90c4ac25ddf628f21d7f1d5301c220e110a5ea0dbf0d3078f506a7d61774a59d049cbf6e5ee2422f4b2a11f6cc7574af56791d72eba12d5e08ceb6ce70d7bac0be77903bff5e5b0ea9d121ef599e675398c2b31e3b2e3673e2149b34d3b53411ad5ce548006ac7e33dd9046e9115e79705243dd28b30a04a37e4e6d75f7fd6454446ba690e84fc2ff845c7c50fb9a9ca412fbf1016fa24c2b66ebe0ca97b6280db78bd9913c2138052cb48039e6aa2d05f9331de2c115c6a3edf5b2a9f4e242a0532d1df27ff4bde6248bbd3d7e48e4a9c3201494a544b7f9f378d591ec668e076f38b00cc2587d2374029bb37ff6cc987528fc432cdd270fb6734b3f7c4ff7052e5b800d861cbf2a4b3ec9a036aff12931eb05339723cfbf804c5ae8f21bfe6e1d4d577c70fc203e1a43588d3bf4f762f012c83ee0ab3cf53c9cce06b3700a6182596b24d693ba9977786f2ac072630f5eb4034c40cc8cc885d64094abc1f996b9e60a55b42a7a65052381aec6794df81831d37708befc6a0b6c0729a22fe6cd26bceae01a59daf4ea0f7d675d76c0a014867b5174800e15bbba69f777482dd03bb2f2ad7bd57c847d540aeeb0fc4b1903fb66c8d81b8743fc5ef49751b14123f6606d2d1553236999eea39dce079f6f35b18b92c67368b480109b1e07a210a34c689f2b6093200d9bf9ade2949a8cd45d18d6f1bf77ee544aa75384c9b9a19dd4a236c908a7bffe6f24dd2216936c59dd78a88fc9ff99414954956806775755bc2f385cf75d97fdf45d272fd744ad8d8dd779a5d35f323568daed12b242ad028454b9007bf3970919b4decc74cce53f807312469a51c4e3f8f6351eddc3606309731576a382e235a25b62fe243f1cac8ef88a7a7650849a401383a907a9bda9e6de16470826d9f88e758399fefa71bc302c293d9bbaf9c6fb194dd96175ec382714814578e5180aa9b52a7b28927835984170034dfed8b0c76f0f76bf108c682078b735eea5866648e19a06b906cc2223033368a6d030d86145a7fd505266448dd7ef6f041a3f7b768f408f6d3b65295b3b60c2ed714525c2df3c18205c99769fd2ef91ed77a70d92e7f0c1c0d06aa44bbb7119133a9e152bf71d4cfc507e0e5b25812183ec6c3f62029f1416fa58fd21b3d85f0672e3fb90f9e5018c5785d88d5ef358c4e964b9294b63f96649d8006b3c52396a87223f096d76333a6b9fec0309aa71e129b09534fbd39b0c83e24bdf9bfc077242b452de68d2df3c0edbcc69633bd5472ab776c662aa016839bd0a1e311b13f1a70b1bf59c76dc10637e814da4971aa8b41e8ff27bec968580a1fe495920508ad3db456d19f83b383418495579fc5b6d6fb76191e8a092426a8905bb29095528ef2500d96c1bbafb5b8b40af4abf589cb1b892acd78653f82d342cb704bd907fad44a3c0cefee7dcccd39896f1879af3e07de236ac29c17e5aeb33784779486908bbd54cd7f70dda6b5fc15ba44d67d7aca2f9166797e6519a09680d6be500e52a345454cdb4cfa092aacb884c2449e029063585bff8f38abd5b8b0783ca80e5e0bb92b3500d8db21e96895a2da1ff6022d4afe8c8d033074bcf5b5c201602520986f554f008ca6d23282dfed04295ca697f092feaefe6b30873b73819352d543831bd0c68037cbc34b42b74c719ac3f46880a7cac230f13cae9f5e3e692a401fe7310d693a7c7d57fdca44228209c7635db0ef437cb9783d6c831d2071ec6c4444e3598e7c9d0bf21502a2f04e19bdf7d9c47031645fe66c40c8d09f8b52e58fffa32d20a89ef10de58d653021fdc0ae632060545616dfc86e1403530bf6b35adf44916ab2b1c19ac0e1e06af7ca58f22364134802d6391e7c276b563b4a0d6d929b202da5f53b0e815a6374059ea3f76920a4b66ac04439b53ef479d6662dee26bb68ae1e852f60056b143c31893949271529cf66981822a989be2a8fa234d590bca46acfd4fee2acd83607955927317202a7e42388745aabae093c88fd0c4e29171b55fe61e18bdc07e7150029b05c04091b1fa037dc87525f3b1cdb5ba21c2b899d8903b13cc77e58a69f74c0bedebd9a40322f33f2d1f8fc73b71590f7473890edb9cd9bae667f9245cea9ca30a91efbf41ffaa148823e4d6345b535e23dd47107995ef0a28f506200de89d665b0cc4f5a267c4c2220863e4f84b25b772fe6d395044a5f8ed267e5dbd1b229bc2f13411c1c04f3dd5778bc7e6ff2fe729d3be50fb33cba28bcbc469a3bf762e5f0602a78a736f4057b7e947a53d45424eb031644bb728240434d6bd56edfec3c0bc6daeaee89433e4b476ad63ea7e5a855526051603cc7016f9aae121725408a4b7ae5a59cc9af8a0f47bc7332307780dca020512b8154ca7229afe19036f6d85757822e509679a7a836f8702029c7c37f4a7e33823931e545032b5896b6ab50ae5bfec7e3e4396e768d9f36bdbc1588b70f649099f46dc76e35ec7cc7fbb236d128bc8b3d7a1881650c7c54620c80392f93086fd55143a85251c573579096834d84c450be7352b66937e420c7ac2af69edf06466b88808edbea9d7cafb46bb6ccd9e6c4c2bf10fefed40f4c1f253c3414df06b65de1492db01b8f1729d9f4cf0db6695915a38ebc076e7cd94375a73c1ae2f5c0b83b272a8a0110e01825949f744c4be5a13590d284d56131e78bc644fa1ecf7f4b8662a6703c32f143f40dccd9f1111f36e128ce309c363c79ccc430ba2af498fa49b625be72eee481541b4269a12c509ce7d1fdfc9a44ba4c91d948988215f92c1d4c2ce2cd80c0bd87ccf2a778e3e3e7dad05fcc6a4d49c3a7526b8107ab90c22f0b2ec078d55fc085bb0b2d39d8b35d22eea78dea3ecac1cd6e85667cfc177bc236a9662505322f770e1336ca1634fc7b7bd502c0f7187339085d650aba1bb1ab5c869a8ae158f23d4a9100b6b5e04974aa131ad01b486b140ff56fbd24d4d3d393175cdf917dc5e9f432bfa9068fbaf132deb8c7f8d291f9d3167d04c78818b90a511c623fec0e42088c13f85684aeaa49a43f947a77d57a22ca5335bd8272ede514d2d3d1c8384234e730174074c8aae663d9e92faa909b2bc6b2068ecffe966eac80f8bb6eb098f1ca2f2088c819d05bf7dfbe5ed6b1554025ec159356b7ed90c8091ad84d6027641ea55392d46e513b0f3bcf28dc2e145ce50c62f1026fc0aaa3568654d6f0850d1843905fd6d6348e12a519c07e073a7fff4ed02104cff0a91efd0eb0455d7d4f6025de1ee75dd45a5f2e61abb41e9ad91fe4a709674bf37af38685c666718dbe116de84d3dd1627ba52cad1a0c7ffdc4481e15a389cb52c7566a47ed9695694481fc7b69625061c45501c84b9532a08fea9aa8352b112c04a394ae1fa2e67612f8750a2e3e60287b5fc7c2fe04b3b4163a5cd51e1bbfb2d0e6209e3b48f75064c91b2a68192f641cb6056efa001bdd30d0ab752ac83ea9a47075fa4d7dc144126ed31655faba937259f9e3a0c8adb4e8db38437b32aaebceb18c2cefb63dd7f38f582c93fc9589fcd9e6fc93abfe458771235f03024ee6c3129fa1afd8ce3d122fa06da28616efa39328d86900fe926ec08dce8cc34d1bbc92bc4b949131e2aa4a8701f57edbbfc3185c5a718d750ec439dbf7518e72a0a24c261da33ce6e501b82bb18fe2aec97e8726a986950a22ebf1fc272694329f533b61937f961c980411b96b3a5ffb3266c384b1f7faafabcfc6090e2e5e8ed52ad70c2717da0002bce406c240d33bf06fcd81a1782a8f7a0015e84028b87614e26681dd5d16ea5d8f93206cc2d4054f3db47a6c28c0d2d39905feb6458c0cc1bf1d1bb81acf51985681b2c293a2926fb1d6cc48a5186aeeffbeb44a923132561561e042c43aadd53c876343ae20f4c3d772e8313140d17a69021a3eedee93e10dcfe2086daf38ec72cf541131c275931abb4667e6f124153a0013b691b48383cce0531cc01086e7b1845d72f182037bc9ebafebfb984ed52c6d62392f4ec2f3da41c7920d5127848dff1a509b52d3eaef1a93071a86e0c24e223b34928f96f9e736860367571eb6965b99ba6193f7a47bbceec3beca4e59c9d13777dc3d61f3d5ad280dccdcd3244e9e2b613f8ef341b3146e70b26c8d0b7d9a57b64db7325319d1e1d0661237a9e6d9051cc7fee4abfc12ed218ce3c0bb6b840e099c9bc51e67380f72d82250d2d7f54e64841858a4f34e892d46129a44f32f906cdcf6a76eb310a39c95e0ff634007abd8eba7653ed021c4afe22e2bf1d7413a40fbb04af27fd5f2fc5233dfd21863b2bbdb304d601d16ff06204a7f031f566bc8c44325697a754dc1811631cb35d46471ac2c5748bf27c9553d69022fb98322ad7df9192b6bfc7c22dc3aa2aa1a9f6b06d1c96d044a8e0804cf63d41dfdba7a7b0b36cda0731c01d7019d21049c3de8a607cf84f7a70b0a3da3f774eaf1887421ad8cb0c69c30619e24a3751e52fca0261a849b5b10f9e370b6c4d3a76909887543a418afb5926db8c4935174dbe3977a2ec2ddb94d8c68cf3723b3d7eb1128ae292cd300825ea9697d779734ef977b3da78d2b72540f18d39d0579f56fdfb6e89d63587438fc5e7be1b722c03f16ed2c94db183a290421b5ca58fdece7d06ba3b9f5e157510c13bb670df0302d7f48abb2644997176f81f64094a19d9af85045fa2b670ca58e227b678eb7ce47527a3efea7e66638c1c9d7676c015d4e8ece9359b9bc88da5e5a0f25f11598a2c86d11d17ed057481dd7e1dfd8d873438c313cf69fdcd425603f50ee5232c1f536cc7194e4126ccef0175fe7e04f9efe003a4e4cf3a88e56f28f1c4716663091a1185101d41d7e921b93dfcedfb88ee3df04bffd785268368a40d325aaccff1eecadc6f05b36b8631ff7b57d33f2679f5a94e52a6aeaa83787d6dc3f4cc9fd354fc98bbc4d9a1a2f126c7806870841630dd1fe5ad78ca773a08d1e6618812dbcfd957e2f27daf7654cc0834b2b6baaee871da9f470ff52f9822587f1f6ff4519242221061aff77b40dcd75b32f00226afd7c6b46b696ac6b7b8e893f3c3f3039ab401aff522d1608929db2ed2caa9d1125dd2c1fcdb14af044ed983e0b8d8c5e699eb37be29423e650f8dfc6f35d05af954ab7f68323d56d5797ad0acde32dc5aabc5ab0e8ad42126167690d92bab6e425b63da6406d8c1a4fbac6994f9998143c162265e7eeeb843ac2ff855f3200481b79d3b0ddc6bf5a475a63785d6d89a2606f41465b66e8b1508814f00438a94b32f5ef1bb88c55ef42340b96e0676d855e3490c4fee2db1e3f115e1aaf8e68fac884efd76fd34774fbdac521e226e8768ad50e8658a0b64982b45a07e0d06b81b66e92b81c8f232fb2159f76f9345186fd425d6677bf40dff68fc521907dd28a99b87cfdf9f18a2ddc212b18fcc0319b5e054407fe2d974199812481915f3168a781b76aca64b2b3c3f9fdbe0098c8c769f42bf1dfffa95e3f3e3d3e67ef120d46072df176c1e4fa782b2e750793886b1f37a24372aab9d6462c9cd7026471d9fa932fe7a946ff3fac1cdcc2d8c19825c50cdaf5b101e07271ce0fa619833e347860f1d06811f3214bd1a8eaed7c529722d92aa7e1528aeb69182b6104e6dff5d3dd0bb9eec74750fb6b36367430c5f6a3118bffe079f5feaafbc4b35a54aba230f7f91849879489cca8b052bd2233714cf41da0df58b5d7c2d878e0bc09707563989c51791308eabb8344bdaeb0945da264a0a34dac33c32c4626767d38ed39612eb8b31cc0e489e215a13f027b123fffe5fcae2bcf29383bcb6f141ddf59f77be57418dd85fe6b69757e7c69c78b97ed6db9911ca6272dccc23c40ca12da6abb20dd092c3f40bc9c0d148ce6e8138a7eb48876da9112bfc196374857350f52da04627b0a15275eb8759fa8ebda6f4dc1bbb8a3f1fba02779ea503958298785b2f85912dfba45cb4746e0ea135b9a6ec682c1cbe2cadd03ba1739e35a7b48e321ac79fe9c36bf4133ce9e1687b543e3d83bbded0ecda8ead796ebec6aa34909b28d5e62bd98cf42d4d120775a284eecd6e8eac50ef4365300881ff953f6f7df8c96094ccd354361abafb4cb803a4fc8d4f329ce570c8fcbee98d6da539ab4f487fb5d3d92a9fc5f915f2c441ba31236733582ce50770c7f81efd2d92ed753a450a1a344072a70a07dc25c8d3d6616c793dd9efd3750df0ce8961a07d8659e15032907a5b47629e13ba29ded769c0c0255de4bb17c4e8bae662a7aa11ff8d003b609180f24ff444cab914d71b2f25d5580ccfc9e6eaa68aee71d008a190d1c59c5724c6973b1f3d560974d274050a2d9d3a347ac6443212ed51181c82d4b2499e5a17a284840fbeac62d816d19392ae4d180654fbd48353df51412200505821b4aef5e38a595376f14ad544db2727769002db57f5ab1793f42948fb3c3424216681118746596130cb5a431e8e929c12fc24d39367bdf94a3f9fd17ba43a566782001adae5c5011cffc020bf4eb5871d13321177e14e981e95aca8d4342bd61945a76854b612b4818412bd6471574a78fb6f719150c1f11f9d0b1190db0fc9d9a592ceb66c0bbe0d8b0430b782d75b5f412042e9cf69766c87f55a565983cf5e356fc908ede629721861528838734a2465dafe7573bb579527084612250ee3b0c2b64090a07013f016bd32e8edb9fa9c90559fa80bfd396ddd49440a3de72b3dc0f3e4cb3ab993db32bfb22b1ebc6b7d2be4ec3247b9bdb911ffe79e7d2bf9606c545375f97f10c1e10518cd345e6f0a922d3be9599abbc5fe57d06b2f66c91ada18609d6d4dcb8a176a4fa98b4902a3d433d0e6c07b38236c79628be918243c25cf5e75b4c2864368aa67e5d31d870a28d96f915905fc78adb25e1032fe4c22c964759c959c9c4da2d9d2c4269df806aab9f6af8eceffb2c5220780c160017c76a92ca33dd43a35277259e49278d4ec34bd06e1f689fe36f4c48f956ea7fbd279d580b2688055f35538a708435337f6afeb8b77ef493149f23cdb3cc2213263c1d78d06869cb684c2c6dc34d87daef6f8a291cc2dd717cc59758b8454b1036b3f8d5315bf904c541b09fbe97be8e2bc86aa117ae713adac3a0ff601d4296c637febe2bdb288e8e9e0b1708485e73f8ae5adb451045a541b7dbeac6d6e30a227b9db21dbe3408731937d250a43ba5cad91bb8ea3ff6b599afce4f49d1d6508b0fceb44bd93f8f33353066c6ce00eb4d7ae0676b2e8fea1eb67c810d0d69d2b61207535f9af588262f37a49f52d2ffe0100375d107e900df23047478ffb18b4ca8913fe32fb7ceb43d6c7794c069d3150ff63d4d63b3fb4048410cb5776a926844c0c5c8411584dc1e66a8635b3773334a957fae0301c2785faff934932c361cc6d460e1399880aef69bae4dd45c70b43d43ccec277c6e14d901a628c20db8ec619f6e691c1952d17dbc189617937ec71d7c2fa16ba42572ee2ffb07dcc4c4515c204e79f02c83fe7f4c5e09294db8cfb9c8c88b37b8144789ec5d0e44ce503794b63993b864ff83aa261e7110aa6ce22e3bdc0cc22b0d1a7ac43fbb1d40327fdda4d31afb6325c0aab6e621d6079c4a6adfb1aa9fcf0ac6fe5c19519140d87e2bf8aad7da0f55ad9c09a66d8f4950087cc9a08fe308d5fc988c72572050cc7c8b18f676bf588e53c90dc92f7b22ce4cb9abcd09d0bcd5bf3448db190ada3d36ef8e5f068e60034eb59be2432ef834feae1e780b17d232e69e9e5d26c0bcb45dc7c9087d71ff56527f226c0bd02d8339e4042dabaa69319d4b3cfed06abc2b156eead53233e99ea38e11d3eb66ea1cca6cb4d7a21d31ece46c3156af7d11407761e5ac6123f5269b91598fce34ace3b54bd076cf9370700e59f42d1e5c85d70f4e7f91ab914a6128cc9e709f233ba5b0a5fb2cb442b6674441da46bc0dcf9a5ee9f06e93d573654bb6f6a8d141cc28a7c3d080f781418e0038802ded0222e6599c3bef02e799de9aea4a5dd84e686936e5c5e2e36b8f589287de0457e9205ee8fd78f7c3866a4fbe64bbacae57e79c32e3e9fae50dab549f5800b76590a62b681daf3f08f76a20f60f9a314f63137f21a2a2d30f2923069ca899ddc7dd16fd2a9df303e343b90393a5d9f73d2fc4f8bd54d7b19882c7355790f501f0d12950f19ce7fbce1b7ed77adb09c6fcfb05a3748e304e59c48ff06fdaf688979c62337874d69c24389156a5e23a5f97699dd6eb25582e52ed4dbbd7e924bd37c1a4a2ea3d012aa5551295a235621519647af077e7621023520ed357f0feed8f4b99de6830e13df6bcf87c12b71a9d1520ec33a217ceb5932d47ac0b750f892214d6a287ca6a461e5bdb3c2b20da941f27a83bacc5bade0dc13945e22a7a66b714f9eacfcc9be50b6a73e137bff59a5174f63a07ee50f11e05274a2017fe3fdacc290b3d04de460ba99b201386101fc7a09468da6c749cf8e9397cdc07a66e5ab6b23cc1e408415325ceb2b168cc54232022cd80c035c0f3274946835aa198c9c9a463c1f30b8c7c926276960bd9ce0a8d2757069ca80906a0d2ec5312ffedff12b7be95028c6800330ffe5cc2b952a4050b87b0490afb524cd250e13e45f09755d4660939fdd6c2506e1a31dedc662098833d74dd618c98c056cf94b21e8671c10800deef03e383458a64574cdef52ebf5d377d37042cbd3af561270999492eb7c1c1485b26976e13b2cda2840f2383eea289a9d6a5a94d437fc62bfeac94b79c9108710519e48d8d18bffdc79e15582f76010c7be481f6dd9b1e82130bcdb7c1e9f7f518302651100062e5aef710eccc37a36b987213084a262ae58766d51c547c4e657bbffa0eca743fec0737aafe10c2a4c2984e82fc5274f95f9db8579a643874c4b773c67c93d7843706cc4b5310d126bfeeaf70ea30e6b6d02f36d128fb11f50db9eda43758bbe001c0a0813687e7a144f8934011f961f16c9bf1e5803b0810aa542b79400fd71916fd63b9f2c54273e8b01444539e9ca339f36287a3991bbefea4867d7b430e385955ce3b5aadaf367734f31db681520e948750e6531e2699dd3356012f2cd2553e9ffc2443bb52a26e110097e492d15dadbcd1fd98bbc7560ff577f989555df650ae390b0427b569806b4b58ac0077fd063166c23cb1d81fd01051a819d98b0bac61d1d4fc0da94513ee464d7f79026ef8335ba54f0114e9537e0ce9522652ac8502c7f60cb0d69ec48e43ecf3fbe06d2d8cf929a3f4eb153a6e22990e5b14db9ef288f719bc0481df1ff5464437d144278e35bf50afba1a20857232092c60a1d3aafb998cac6d6de7b2e58fce7b830eb882dbed32d5c0870fe67ae7615dcb3490097686d133b45a14cb02b5943b17f2885d7230663ea4e20a0d767a1dcbf8ce58f188a0dbb848b1d05faecabc1a984e93c34e77d1bb60f885796997a20106613f37ac799fe3515b39affd451190dc06a861907099ebdcdde7286fb03f66e35071e12a7a94396a0fa3e00f7080156841eb920329a91d95a90fe1c33aa3ef58fda9b5e86a39cac4d51377a60f9be832235357218032480e0dcc4a64b2616eb9dbba17db038feb8a67c4936901195b79462d9aa736250c035964dc42f9736586a00a384f049b068570a608825a54b3f4f097c88314b9c97c230e94607eb472860a12925723e67360ebda3a73bcc99c1f5706b809c0ebc44abb7882521865471096dfbafad7fd6724c937d55eb49c28688cc0dcb065f95989d04125fea5a9308c94947ffd91f0efa7d4c94a1c5b115e711a63d0d13ce6412b3e8091965708306ee2e653627dd7fd1a4b4c29ceee145bc69b5c281e4bfae6b6ac3b6e24f9f0a32abc9e10f8534885f4f2b53bdfc9b204a120719ccc853fc9a9daf1be22b72f80e7001b029211e3a7d792aa7c91ee9e47a696387db39405f333b3117efa9c7b16ec87cd46c398c7f1418a05d98859ade8b9e69d7acb085e7d3d008007677cea6e110cbb7d377719a614f654c2fb705ae54bfe60bad4cca324e87018530d047a30b596fec40202841b4b3b5c9173314364c183953e18f4edecfee123ffcf8a8a19f141440883f3b428700a92b8462ca935db87229c7fd09cd60552e42aaa7c5f0819a04e9fac8ddaa0a4eea0c63607f4e33b2044017d66d4a2dbae0e211b65a093c114723cdc042be04843e638dcef2d546f790a8c7deafba71fb74bd26c4adb32d1f1192b88a061689bfbf71dca6083f61599d8f0dff03db6cd7db61f5f6cfef65d3942de6a90388ddeff188893a9c78615bbe670a95e080cc2ba61f50180ded2597bfece00eef230d703c4cf1ce6ef5cf1eebf2073f6905a17f7d034c831b3734f64f2aa73c3d490b6a22aa6e274964dac5cc37e49924cda90d07c6f1d0e9aa9b138d8d24c3aa721c13cadf720877a1ad662a55978b8776f8203527108f012607fa6fe288945387c448b639e0319fd72a691ed067d3e90dee8a6319ba4bc80263e0dc52fe833d859ae1f97e44a7ba684476176e9981ada10a40a700d7c81ab488d9a23789098dca0d60a48d70d9b9d1bb263f147be59dd6805f455a20c034077d35f226063e11e81ceb9a768845f3253bd9c6173d16ce32624899eb801684f00c9d35e219ac37aa0c6ad9d6203c956d6439d9d3d78a57cdda917fccdecf4cc97e0088b2f86605257de14432994f720b080f8d2bff1c7faf5080894e986bb0fb0d03fede68ea50bfded71674dd2e249ac05adfe70b00cf6444fba7dd6c4b75462bf63df8ac6f38e449e710eeff857b047ed24768cb0c9c9ae06be442e48143ce7d26b4d94b08cc7a85ec3ecef49c6d8302a8361c8c44014dcd5d26a33f7364a9f28943950139b29e90c4deef5387d6558160e3a5c53bd38fed263e47bc5c567ab74de39ceeeef29965f58b03d0443a391a3a952573d41dfa3babb9b6bf70a5f15cc50f71ef3b4bfad6569083da595ffc2cf7d4b47ea7d719d7c04ea7e6aff62885bf7b0e20f67e847ad457915437b8ba63e189e2eb2bba0f1d0402365acc884990cc4b627f7642653e353c0d690827e1a1b9216cb1f9fdde1c6d20aebeaa73da05b05ee98ad3efe60fee34c91c176b201a285532cc570e0fe7fce58b5062ee91ee05353fc81bc79824620bd38fc5525b4f8e8489a9ca9244d894c39cb520848bb498471010645a434cc5f6c56794c78ff3036becb2f0b6879842bcef0cae0ffc6d361ea5fe2e2105d2053e38bb4d173b79ca2cf6cff772f1d1335acd1ca9b165871b3f545a0ac52565f0c60e55b887fd6d2896bf5e415411336665cfb8fb479f13354da16c2b9840ce13357fce62c2a2e089bd6cf680128dc922fd9a7109977bbaef57779c521c22920d3ede9ffb1a7a79dc928cf46feb41251de1558f1ac464c5879beb6e8baae52aaff7e0928a54b14067cccf59a1e77f08102743ea30a7c002dac3568cd6fed722b58178b4219118e65f6018c704f4ae243944e79f53097e313967476520ca819e6b5fcd5ee9f17688c885c86ad16c62c14cd721da38a7728c87caa673f530ce62aad24bbdc4d1faf2f99443c9493cca000279e10a824df31493019fe9a07ca03a177b87784610f3a8142756e5500fe5fabb708b466f7f72a13359626c75597b771ab9887ece6714a89d67e9d6c8843b15229d85ee8ddcd2fa2e60a37bcb1adfba8b2d547679ef4bce34b43b0c04447e54ee8aba8c2b5cf0502bbf37cfdd0492c5d4e3869727fe9c9c2457beac293f84ab8b712846b2952646c66e31b21e02bc46f91ba32226cc6555924323306d10a3427c4112906560fcd37bc003c05751929f9a60a94c20ca7d10e4d49ab08a57409c077a0cff2d4a0f498d083880c085c88b1680a089856c8ab1ea4f19329c3f16ffdc62d3aabb008bbf80c39fefbef41c3e8415247eaf30c508503348505f1817cea691910b67328b4e09e050a54f5996bdf1baccac29e79b85c556cf4b29fe5f8be793608bbcf4b40c0e75cf73e9339d09218961d0983ba8d0adaca0a993426b80f374fe301529b340c5ac7ae6ee57b194eb1c300e7e79cd7e10cd0cbda5c0efb0451a136e639a9137b7e65c48313bb7592669a5c9eb3913d1a8cd78b906bade448e25a060acde9d55fb266d6d7c3dc55288fb6033bd830d73e638ab649d0d6fe9f7c213051743342658e913bc5c0c1b96bfc6445ca5ab28c761969e590289fce5d088da5ef8344d62bcbbf01c684d38c251a28500272770748ef48466c4ce57827f1ac7614d03b3f8ce75d3c04d3811284e83864832c7f32bbc9cd5114fbc576b6157eacfb161c6280caeea235dbbc6204afffd51c2af24afa62f5d15a7a245a8d3478f370d850f4f418877fdca877f65e8f9ce0bf369980d47a8f387c9029a2d01b02160d6a23a405fe51ed47c72d44c92f60480a016226c4ebbf4555bdbd9fb5b6f946b8f645d165b20b67ed145a6c1e8c54cd92b9df725abb7dfe367d126a392f2e3c3b9f4ad5f72586a5f5b901f6c09db06d6123c8d0327714f3d2ac19e311bfe418e9202adcd4cc27ce1617259b47f265783d8174bfcf71a3d5f9da0acc0a775628ac3ec14c47b768f1154b50254779946fbbd6644303bd9f602672e0e940382f68ffa750c179ca56d9899e0f5acbc915bb3427b9e6c4114f8d0e29da39ed5610e39e40fa8fdc251528b9be73f750e0f22a13b8b949972f4f1ab516fc35b2e20ddbf87a48e3837f58c6ad3191c052dee8491adf4e43df9f0e62b51b8c299d5c30c4a9eea6620088e9a1d7d6039abba4ed7f98908691ce334f81c30f95954db7f50e8d73e36a743427bcd89866b6cf3aa404aab4141ac405accd9a4767a5f4d9ccc22cd1b5d6e723838854aedad25ed3eaa1f745ceba43410e9cd49415b31e839be8998133571c33029bdce8858351ea4e469b5f2daae776365761d6f5db785439c5f71d595c64b8bea6549a1090e364906714abd067edcb38e69d8d24a50405f4e343ca878d3ecf65cc678a28601dd729357612f93c40e7fb623fb100b06b330cf1245d02d2b791b838e94efe775e11c39a39360e4d2318ba208f24ac7e65163664ca0f72e9d51b0d133a1bc8040be1bd125de91936ddd48502b1ce8f48615519fb263963948cbbcebb0ec43e79ae7fa848bce14941075ac121ee4ad5dee5a7d40310f7c44cffbdf85a2d461d3a2584cc8bc9dd6f2362e5a4c43d90eca0597676770baf6a8e11e19dbeff97a75a9f49a41113bc824d52c1baa486bb0981249b85e4d6ff8eaf878e628912ef22698ea85d083e641bcd65186385525da1185e8f7829f1134b493aac02b1dbeb554bd08d5c7961ecf9bc8552521aee48f0cc79c23dffb04421301efbc94c624f0e2ba974b5fbea187f45b58f0f3e2fe87503a398b453b2a475fc22b519b4a1f79e725e08b4367730312d80ae76785b847466bb8f3174a4570f232a58e8ecc1e05ad9843a583448203bf97a2e36d5e8c973392d57fe07c3949a9d9852406a7fd21c8053ebd3834319ea9d7629540a130abdbd033bd7da83d027234594bf1a5c32c11d8ed90b2ca22030bf4990a5ee7e62e2a6fb1e6c7743d1aaf0c4dc15c7732ca93bd8ef1c6ebc8a248151d257406600359f7d6ae291fa617c2159fe88c00d063a82832dd4579bf980e80b1968bb052a4cdcb4b2524246edd797fe3272df45f65d152b5936263a4422cb6d4b2d80479684c333a4490f4d8a5d75620fc2d16652ff00ae63f877a19e8b50d61ecdc9e3df7b9ed8a947c84aec9223bd9577b9cf3492b55ae2045046766302c295c4f4718e945fe4124030cd345decd568291b7f0689945d4ffbe756b9f36c9f6e61d52345767675061e78ebdf8b22b125801c9d7cdf8cc4cfad52dfaaa94f672f485e25248db4d8663c8902e14cdaaa78ba129fac91c7a916a2eeeff8985ddaacf096da4e884162e3ec1fc08db43100992961ded21f64579d94a82f85f58d862625e275d6d99fc0dbf3b586243b290974b3a7bc480f4576d0f30d84339bfcf5528794a0fd38c1fb63083d74923e0ca5f75141aff06aec9902602fb91d885aa9010adb2fe7212b92ac58a9959c7c699b999012cc0f3e68bbec325353be5eeebf4a75f11f47512b664e054c11b7999bf36f13a8b1251a4f7545f477f4ffe3246f9ee3a84f9a4c1c6d7ea2fd51a49ee184ec0ea5e4d495cc1280e5a6ffa181b1ab68443eb6bedab952f9b9187d6d77074194cd81fc56c7bdc3147616640ec63ea667dd800d838685828b4544bd64749efbd82b9a3949cddd87cbd01cba8fe5aefd45c4482aea1e3b4976380e2ca9c8c5af921b8c5ed74a02a3634bf21bd234ecc883653d7d6b36550097f65564130d83867323e6e66be167ac99f84364bcac49da3b00ec756fa5a17521d8860789beaa1f38dc25f515bc0e8bfe1996bcfa6c73dedc282ec2a305e600f3aba2bf74bc58df43740692c60827f149a376a50636ef388045e0a3883794f9ff2e1c8887caf841cf2b1f1760768d28d3c37fe213f12cc02213e8d6c5dd8e7e21978147f711df78ccd9d1de53bc5742a3562af40c2527bba5218bc16adffdc1950ff703269d70d12c678993331271fb236f7009b58293c2285315e93ae7324bd931813cfcdddba83f5148b82cb646e8c6d53f931859a367ff61cfe48ce49de01b8f1f31482761ee792b8744de6884b92082bce3b02154c23f5545490f8bd10b782db72323312b761319636d59eee0abdc25538302f44f49a911dd45fcd197694004cddbb499b79e8d551cf66791fa749ca19b25090f5e956dc7bceee17216382a8010f7ac5fcf0a65ace4a1639f433f518c0b68775563f2367f016d2a6e03d5d803b6d070660f72e601fea003e7fe86dab178c4abcdf2dfa294458ffc86e91d5260a1094cf600ca5cc9281386404ceabf8e6b613f206ee348377774e2c37ce42f6060fbe83dc249958e62f98402453eabd741aa3e1cb64d50ebfe4ae1f0fee8f641f59ff5c93e0a046df430978b287be0f120d96e336bd68907365e521bb40cd83171b8200ff844aa97d15197bb98515177b8dc7efcbd2efc372decda1867ae44d75e3c8ae85d733dd3458a0b78e67a12b9d443a5b1cfedd4fcc27d55fefd622bcbfc5b590fb7d0f4faf3d1b22b6e16e938c118f8b0a278b9270abb5ca81e7c6619489f69a49900d17a240ead4204a65e2c7bd6befb9ac7856200f66c34e30ee2c3d6ebe7acf3db27d463010dac717b4afeb3e119b88e2ba1a794e53e889e6c433c827b478ea3a6bc1f7120e46000a907cea32f9eb1667433c6fd4a13c8b03f68ede10d2e97a02fb3827ca601d617c79eeeab04efd44e1bafe4607b24e16bbee7b395ded577b39d3abdb582af8ce9200364c9f4f2b4765257f7c707580208a6dc5f602aebc2beeae2a12af9b0822d1a236cd78ffc06621ca34b68fd971da8efa235124d1a71974f2e93f510a8beeedff3f4a1632225c9cca0ff3878f06b6e71e06e43c25a5e6d22160ebc29d0c967b6d01fc83d0d8f0995c789d981abe5a0dd23b6de9282cbc3e9e81e7d52ad31ef757ec36ed7b66626fef62ec8762accddd1a1ae7bf9d4dcf9a51de5af3be905f408e4eac254eef05872be8be86b292160e81b6b89470e1863937619b2de175c0afd10554c42fb183138690f5a4e6e2d54fdc9f54855e6ecefe61384863487ce07797bf40ffa62ea4581b57e9eb7a2fb3b1a32c9970622286647e583e3958ef92f2a776f829aa71a766e8f6f10b03cd963b937588aae138029053f88919e0bfd70fac6a04af9d27eb82ba3cfa9d9e7db66534f86d65bd90c9452369819aedb01b0a1d317d43bc3907c851b5d1abdd558c368af2b0e58bfc8defecdcec35f2aac25648195b1ff79ed9a996c2b2e33b96b7f798c95a963ec159a75ebd6e5935eacca8fd791cf3c22d8d5859c238424f673dd9ce904e278e436b604827381e44833d48aacb6764b1cb7e93516809419bc9320ab4b2d5c1f7ed41bab60f9329ff774408551631eb822952db3b45107555733612ba9b8a29a9d7bd4f194d36f9e3d2b731fc9290fcf859fc3975ff95a72017d717745c2707d681ac39163fe149c8a12e2976c51d5098fa7598743b2dac2dfe1d1c7c15ccc6bab87ece76d8c45d72c6dd151035483c858a479cf6b05e5e2aa91b5199309f115dbf94f7ab9239927757f20c73861c400ca306a9144538241b005172138440ab6708c4f0ff57b9ad77f1226370ddabeccf0099f1757504b947b79dcb8fef8bd9a61c0a81985e495e095f49ca455d7c603aa90b93864829f717b6a0c83e406878818fbfc7a97bdb7613374a0f49fa1e0465f4d19eadac62b8b611d12ab22c3dffba602eadebcfe7a6cc1e9b840d838132ba869fc638bccc042d41812fc40773c96db84b2304caf6780fa2bf8addcce8a6bc63230796196799344a74ebd20dfd53f8a8f76ed226f2150c218265bc54a8b4d489b5104e3fd318960589c064cab43c89919fc542beec5a9f211fd3706c632a097b99d8c292c4dc0a77fe67efa01e70f5a7807bb6f739b9c407a76d7b8120c02df4752841023cca71cb3c3b6a8f824043dea437b68560f36e63d278f4c2e71567a239ec25b35b47fea4f1a91d31e71f84b0fbc51a08704702e48ac7593d3bd941ace211bac8ac54d1df2d46b65f327269a69e219c106722a5a0a2712a3eb515be0f0ff34329e814236ffa6faa66b395d84e329369968514a96fac9ce471564f0f3d37d0332c081487c1ee1051270a32fc5472e22b059dd57e4107580da22a49a8ce3338293941db865b9557f385ebc2144c66cf18e142036e84a62951f9bad7bec34ce96ef9261695d804d9f0e864da90d758cbcf7edd1cd8629e2bc77384a5691fc5c3ac284559e72e68bfb4aab7d0511ca363fe5c887c52231281a126a84eabd14354cad0c937f38a163ca3b878b3918238028529e31a10d6c275400d289d18a7b60b0011b2c25372edbc3644758b4ed3fe0df75ffe8e274e87e1405c85d03e1d39e9b167be165d54ae152750bc26ecac2bac05a8b0f07ac3476c7b5d55b701be2f52e5147a9e68f7a9108ab68ce8af6b6770e7078bd7535e709af10398a589013d2c4206e8524a784888380e5a4bdfd052c23000f80c35519089bf866bc4aeef2b6919e33aa722bf4483d9d81590ef800d29a412f68db4de83cd81f8285f52bb47f7af1aff4267398afef562b87b32edb117d10c968ec91f5ae28cce9fa33c5ac2f42114eb16e94047884b949ba19d42e9aa73a62053474e4ebd685a9460023d75271064eb285710fd1c0f632ab5c9d7508fbb0945000c4e0643634050a365751ee984e43b6494354011f53b448bdca91610cdd8d3a83d214db2262f38f4ec8de00d39e961e6453b21b88218e92de93461a5dd18e2f512833dc50659ecf80046293a2d801f683c4cdc3df23f743d3fbbbaf5b086d06a5f7f14e81ebe43eefb6695995a7144762dc8a0294b2164e46c8fdcfaeec133fc300870fea00d874cda4a0e148e8b4c28a40972aa361872248b67b128d73ff90162f339c65fb419ca7ab5a56b5ab96b622fce1ccc975dccd8a0e8b4023a8c2c9dfaeb5d13bd61ab635f50ccedf63c85328f21bbdca601ae2166ae42d4b2581fb929cd4b7957210ac64f8d12b56892945e4943e2603a83831c3cf2221152176fb3bb8d75deee007337f6ae68f16d3ec95875803afbc0ca357f95146cce5db6f3084b80dc71250957da0f62f58c4ec19e82f5c6baeef89bd1691fb33d52afb4eb133f245e7827e86beda6cb1b04c710cfbcb31387067bf597fcc2932eee79587b3470a56af4593567bbb1d16b45cd2f4819a8271897aae41ecbe686f7e9e7fa549f85199298213baae17422c1c4bbf554a3d8be23cc940b1cca88679da51acc571473d6aa66f4217bb49a26682579087b29a0f99efb3edd93e12dac60caa5e1974f31daaf86e99092d4b2b59306135347007746aad7bf75e7aaea52d2e772f6691e6ed40c25e2ede4d54c340807729dea6721e6cbd3e25d90a521c6a4e17e486017e7d93d07cce1986eb7a79cde5f6574e8e1f7a46439356da85c69dec8077e74142cb1289664cef8f8e2a06f59ce946e92d69b403422fd70b81f2cbfff3af0bb4eaa3ac650a00cd795fa80d661ca8a98b5584fb08a3bacfa593665c8f9319068cc6ea58819cbfd0787f0458c23c8d4e31b3ce7897deb8a80c4cc59bdb6944030fe5138f34e0a84b8b01a6d60e7ec758647cc4150274843d4de1f13a1699b2bf21976acdc158ea45eb9eb51874bb74c033eac002a228e16037ac4acbaabaf90c2724b81312335cf85097fed58e662bd279cdec32db80c65548b9be4717af38502eccbf6881fa20530567516650aca4ac72f5c7db30a5c95565bd9a8b546029037271ce53bb6ab679c43c7f4a6f2585c2a262d7fa6925820d66f768d6ce38c43526834d63a7f0d640705938a467f4935d0d8087cdc54b811c6fc8664dee50a1059703e2a765ac4cb392c372b80b730a17bbdc3e5740f2f7981c0de2782f95012b97c321365b065f91b0f88172a4d10860901ff3dfe60bf38a7c8147c2cb66b06f3e2d52a94e29d4cb6b86b3dea149a6fc732f4f713c542b6dd9b9cafcf178bc2ff837f59c94f3970a76b517b1dbc58583c5c99e5baed6c0b3547a57da8eec5cdde15f22314c31fa2653b018bf612252e0230141b21840df405177eb74a5ec357f79baca8cab311eb0ebcfa582dc6507d3835e58cb5a2c34edadc88ec7374d962e9c8210585c09a669eff7039a7d96786f969eccc2fbe15406d099e032bfee3597d4b5cb40e813dcc9072dc748800c149c7f4577f6de2dadcd7de094f934e8727df99c2e7735869d79dace14f139648296dc82818a085155f588244fc6aab909351c5a3e31132411d9db1f11a1ba715e6c1a208fe67132392749a2fd237309cb28c7d57c27d66ac57bf1044685fdd7ee821c734f35ee464f80e6513701daaddf548ca5b21705c329a6e426e470a9257c0f338f72e51ee13911749d26346d05c2cce3c54042158b76d4a4dffa57619998a0612ece2978db915edacf39f4d4df31335a41c3ed360d00345a9d26d5a4ef7093f50cb37a55ce45e09186295d3c790e450f1f17e031b2a02848a5c0a840dc079d6cb110121e44ed832db0e4f0494a304f843207ea51035fc87f604e324f111045abda0a6f799dab28b5e19810a8ae12b2baa6fc5a634db45e629cc9f8c8f5f266830e11d793974224d00c5d861da45b64a25e1188bff6e0e8f3685e27a56d74b18a025ece72a640bfbfe0fbfe3524166ed884cb4a69da8b9afd7e660a8a554e2941d901a15995cbb72960fa877adac16fb5e49a7f393a82590058bd950d9410a5876d3fde3d1f64bab2753e173a393117ace6e9881b1ace40f76103dd85e28c51662612da4b7123ef6891a805e22e8dadf74935ca5916811feaf8099e69af172d230d272a7bc95f6efe988a8de6fdbb8a9af5262dfa0682f74f106db440bcf18ca81f712a33a359c3d3b425503bf9d69cac7a21a02a02647f41b652a2245940973b19c679ff238f6fd2c33fd15b2751e4f9210392bd8fcda27bda630ed15f14c8822b9e7b54ba9767178070f9e30deff8f09e287bb61f3fff310355424450226fdc6126d66320f6936d9efd93b827b682e1c1e051e6151868b1d9c0adef30f83005a952f5003523509872fcd1bfc788be8ac3931398fc9163d2b8a9607814b0830eb58188955c30ef6de2f6c5296a3900fa03da424db009ac3ba7b29207675833a53f9202265cc434c2b180e948b67e2cb9569f638a9656b17467031d2b658de0a758fe1a66e0e1d720710198fab2573c4d36397eb3312015c887d6fe455e097d0dc3ae4add22db06589976929fef1dbe047907a2f8a31a2df69be3d890a443d21b98bd531b5f12e1d29d187ca4a3b9531661d05f52f3d286b70a3372aa4c90fbedaa4cb7fc09abfdc3ff9c5d9a062a320f228a4a8e203c5d0f196c35b81e95e74a66e93efffc1be21fac4623df62daa29135ad7c6b637e256e1d59af165b52dacb1eb572a607a78d672e151cd6a40a8363197c13c71da205a40431129a3470eb5213ae22f09816ef42822a7db068e8c6cc50e6b0d8579057a39230b55e22fc87d19502e3d872c66beb8deedfc5c8d3f045c3cdf87ed78a2b13093192296b43ec5e164d8af099e85c668f8ebc7c6eb19c76d27e139c24aec1b11d35c7588c02af9e0af5b3fef22b8d8f0636f7c2a719f683c11c30820c4813876a5815645eb33677ebb53eb74066bff3e5c5511683aa40af479dff6f76cd49e7c12864ed185e3f18c37acc7e73a7267b14def51c34c1504468af351d9b02424510343d6198f358510552463f7d28ece389c4edcd426510d8e9920c57f17812d5b5804e2787e16438ac3a574c1bdcad0c9014aa29473efdd60677c0ac61de7efe81b9ea624c431c20d3f0ed574804fa0ef32780823303a9633170132c93b9829fba118643e2cc8bde49adbc764813d6292adb27556ff03a850476c92d6317cb1ed9483de5f54e9163da00ba34814b3c7cc3a43bb14478e8a5bc232d32da5d3e4ee7c04dc1f27d629f3a91a4b98f05978f9cf7bd31628f8261d1268bcd2ff16f1da64d98aedb7704b9e48278fd4e4047b2b18e918573adeaa38a60b4a4af972b1ce83d2472135fd4944fc8f90cc02223228e90fe8712d89417abc07d799191eeccc9239bdf764202ab41642f5e0664f206a76f31e992d40ce489c83f47162a6dc7b10bcc896a75102e38eae434ea21f13c2b0cba666aeb6dbc3577596f7c1f0eab42252803be6c57811c2d2717938a50ef11e30c94377eea3d7b18aaf59c9f6be1a85c46ae862f81ffc119cd516ce2b40272050133a90f489ee81117cd43bfd330ee055f1e546d1011e62feb8c65dbb74f6c2a551cc84262aa28520b349542c91e3d87d2076055d692ace95d7001e764ad326d26b865c5a4144f78f220124583223ee2a2c09b5c7b8cd2a64358e428bbcbf52f7b06b10f9113f021bdbe0dd06ca7f817f350bd3afb36115e7f19d5f333dec32bba3734613e501d1061f9a5b6a2dfe1a59013ae8825536b6c38d661473316a2ec2fd5bc69d424a2fc571a911e786603c668e6fc941dd05e5759e29a9897ed6ad88c79f09a112b190a1e7552f5f6b263af0deb3535dac1343c12b8954c31413b6663199035c81ab5b2b523a831545a1acf33d74195a9a7e9f356fca9af463b785baedbabc35cf8d6fa21d343298322bad537d52e48a80268a85c939ae00d0eb8ba488249d74993cb75ed9f2073a4e4fa7f96f404284c3c0fb51fc51c1b347e179072623f939c544a5ca50208c78e3fcd34712a88e4dbdcc031de716f095a3dc6ed4fed45ba765d8f8d5acc170b4c1a42ee10e2097bf311ee749c56f4489614d43a67c881be8cf52ad521335b489df6ef655b1dac3301855f2ea161fd19efde886d28760892aa49e03894eec88f7313c0286325b82acb81b179f7164047e153d1e9608e21c72b7a2d634f6438f1745f4d09d7caeadee76cbe6ced04a1addea18a83c58646e583f9567874e41f867c3b3f638f36d8b7418a713398484971cbd8b6936d0b23b6b63a10c528f62d3a190d4ac5054ac9f99913bcbf4d2238d97f24e42656e717b4deaf1bbf13b40f6c0ea1bfe2d78fb426029fa671299ac2fe47d7500adf7c02b2a8187cc1e438f6b8d05dd92047bc345e65d5b8e08934b3fa654496e44dce4a4ad72011c7cb1bad450c4626afbbbd9ee8fc78311d92b6fbfd8c6ae49547167aa1c04eb927fdfc53a01fcbc6dd3d5d99bbd7bbc854aafa2ad0666e18d35bf0db8ecd41530534220de69c6f604ffb6ed8705ae6f6c3fdd418820ee5374e7711ec4bfa4038a72c233330ca39f3b7c892ddd9bd4df941f9077abf96ee1ac6709092615b190a7c27a6e76c24f6fa149a84e0158b9a0f83d2484e0e83204f067ebe70a8944ceeda6a2c0dafd74986ae0afd40d1235fab61ff535a774c407d37be8fc0d75f8f90e6beeefdb147952dbcd72124203bfe8b1cbb112087decddbdfaf93884c0a988625f0c991c58aa6133c63861f3858e1007d85ca06531b5e789ab67d2669f63cef7c513b4597eb3b5a6534bc132756ffcb45a06ba53256c561db9a3d722b19e3663b366d93556956b42274739887e6b25e2094db6029d811fd0d08a8fb5d7d3cabcb7953d57a355c002d722b9c1d0be16a7bab5ed0905f560ffa10af2417bf568877f6d73725370b14b11f7319389c6f0273750b9a709a4446a3a62a1a0f91f9e85c0f179b418a3b24e792b903afc60bbfe7444fb914ae9749c62231edb33855245829ac6cf7fc7172a585aecd568740ac5fb08261dfb44e9fadc0ff4ec90e01e32f2d0ecfb38f422ac3d5322bcd34dded28158eee0738b7ec572173b1cf014a35c008fc9feafb82981305d9f094f4ab5c7b109e95f4bb475ed0c80fce6412d1b43b2bf92f24294d26ddbcf532914278930306e8c720334a40299e9ad54dd879cbda0bdabc36b9d1c1f2424006126e6526579d7e790e865612c06f41cae1faa8797aa260019b7dfa9e01070384cf1d95fe4e4136be94129d9f516b53c618b9d235bdece86ba3fcdc79381ddcf361c51d142aa0996efa2801e6eba689319b6359bf396b25cefdf0fcc428b90d3d00325100a82feec6af8c03d6fa98df26cae1bbfe24a4eb974fc85e6da5b65e019004532200a2483226f77c35849dfb8ce02a144dada010efec276a1e6e118b035d2eff4fb777b1b33995282f267527a3facde5bcee6c5536a3639c2fa96e44bb1f79204ddb6c599fdb88fe5893c5d804086c3c3e019963d54f070ba68991c23855fff6821805de9532635e3b1695c9656a3b1ab822bcd9538451b6f301e6e3b94cb00eb273089ef32faf09a31dd1a0884985367168ef6719c9b4ab5e0ffbdd92b9d065982e001e26af69ee47f2c82a3273270c62b44efc642858f839fd007e4c0a77e3c583bd7c998f82c1927db0211bf413384ae47cff4c8b956b5afa4ef91940101e1973d1f72fde5e698b7820862275cf27a3511ba1da1a7c29717edd4d0884da719ecd1580750f56383a71938742cef417cac2573492474e0d3648cc3289416a67cb0c225e018036f705d4ecfc092faf62fbde5c9cfa5102dc8b30dd983b20276a5046d9e6b7ecbfbfd88ded6c9cb2421ef90fdbc8f52ec34608aaf6ba13d1cdcefabadc3fde5826a715ebbea67a33840b777d8a42fc6a70bd8987a1be4445eb296114123432e49338a90e6dea95b95dd4a577a1c78d3f1b11c58f8ce48d8f65f6536227187867a3bfbebb68a16feb4c9a77375df868668be6f4760a49cd62f28b4c4e09bf304ae762e43304a74781e1d4775480135c56baf814139134fada9e6554c86c7e69e8630ea89afa209bd7428050b1cfc2c07d562b53023afce8ff4ab81ea64743d80b0f2ef7a6e4e77564aa9b56e993f7f4be446da08644727a3b27594e4a55b6b56f5a38cb69c57f5801e6f7b77a19d762eb196b8b0c92e618cf3ff4216f95700703a208ed987ea0b4b1d655240232b7e9399f11cfae28b7a42eec92009dcb3f4ca1bd09d91b5a4e42ccf2d40bdeb32ababd57e03e0bb17032095f72a0aafc7abc4573300e908382af33c2b1cc78f61df7b2f10bfbe8fc7e3cb21a2ac2e1f666905101c651198a636c9965546a4a5803ae0ed57016837a6d2a907622ba08c6aafe599702b219e30d969b0bafa75bb90ff81f9d5518c6c2b74f2f1e5b429e3fd4e416db77515c66ec41ed7bec9eb5ff86563899fd03720e2ac49a92814e0a7aec4b77654b45d5d0a0ab9e8e6e30b293189c41490bd0ddbbd1b7a6a657dc63501c3b9541411058407c0709b21ce392e24bf5dfe7b2770ccd7d24ea006afab0e2608a3e7096848dba87fbd76802101dddfce13edbbc0fdf68cffe3f9d167f331250a70c66ab1601a71c0129c53d733b79e831f04458897258da48ca4ce3296a07ed7d918d7eea54530d31bff53d7cce3049565476bd0c238a55a89b312429ebad8cf7f3c1f6258b6e5d3cd8b451f7e57f839adb76a01542915b625e44f23d2233cac172d3fd51da8c8a9345d385ea9766e215108073bb4722bbde89d071f8498b8b4fa8066bd4b1a564fe0ab9d3bf89eb6368c08279cf2a98d714faf468c6aced15461795bdcc6a957626eadf9f160a979594d39ea8ba96711984062526ce575432c87a2ba7dda09dfed5f05388d64af7808846ac5c45e9ceee9988aab6cfeeff6151926966ad55e076ed5536835de41ca82794b5d9b23df75ba79b1f6d863df22213a563f126d1e7ad51af3e4de34b1c12e850799eda4dd51bc842f3b74478724406c523f0c5a71e6f54d135286c508f675413ea86299d77505d8be947c4da8d4b22ee2587776f54bb597677e9e402121f05dbafbeb4348ec3fd349b86647990e76c7adaf1d9723f91bb23785842a7c7b9e207a283c832f0b6fd61f25c51a68e76d30725ede421f6452e9f3cddbd6dd30fc39b52b89c931845f055af494c41e09900d9e1f14416756d27aedd7e89bcdfacb3f0824619e4a451c4d1e6c711a6a0da9fee583ff3401c5309c7093295c3983c8346a851d402d6095f2f7e0595b22c5ec192cdb5d43d310215d282773fed2f075c8a6f39b4ae14f5d5f8b2e98b8ba9aa4fd4f48069d959de64169c4a0b80da7d8183356cdf656995aa59926b055b7e7bc97c7592d78b23cc71f5c25fb56e51d782208e09e4020198a97283380442d5a5b15e6cecd90b7de9e425f1b242e552bc74f8bf544199b1954f4bbbaa571b1d0d6777ecbb5e233dd6b7b43a66e29a1d04043444f7bc4d6c63d5d5c60f2d7b8aa756437743de9e998ce53145f0bc51f88073fa4a132e4acff2453d043f138c9392b9cf8795b487afc92d14c99a0a37acdcd62e3526a87796c23f7f28806a0774375189091f08d9fe05ad8d15510b0706851cc21cbb2f5d24df4325bac17a8caa7fd383dd010786ebfd4ac18bbeb9f157a8b81e48ed625c0073b4cb961faa067919f9f9573f85f73eca41871fbd533ef541033bb9babf8852e7e4066bb98da869cc5f12c1b2451ea2883fb5dc131295b8369bafa12672816a94dd203dd9ce3ec5ddb289d7db77d62894e42c5f85a9a77d8160c7e62bd4083a02b51ce4691e431b85cbbe497934a0c44da0c95a2e6faaa76fd7dea47f0990d7b8a0668bbdb024bf70bbc13cf302a0cf742ea512343ab199ed0691a9236190fba01f9a31a4fbb0475af372c995b171830f3710e2c25c8c3de32320f8c8665786f4dfd12bd2b06410abf7737d9b0a9782e3d20ab65c4e3380a09b404602ceddf9be4207a0962eb2b83055a7d8073033507ef6fe9177e123d3594fed8046a15cf9ed9e210ce2e0f7a2e1c741ce51a852d4cd05fd076c1e5eacb4123443c35e97d2f1a577be9c4cf675b1c5fa49de6537db4812c1c3b31dce0364bff963ffec3cf1ed8baf594dbf129d75dfbea44a53ff95a7855503787b06d5d46f8d654d91546979d51c570fdd98c9d9a96231872e83162c3b3e17703e27a5eab282040e52676fefecf481d9867a6b642039b5c1bc7ad67a49b5e50f4caef6cbcab2afc26ef9de4fe1f57814d3c23b8bb41ce71fa1ca3203ffa86806c4b7d2be487509f0d7f2b4aff0643081120eb4d77a6ef449605fe9f7d2d82c0cdde54615981869d0d0c89339c09c6f6f1bde961b28cbfec45a209fd74ca5d4011dc1e3294a6358d6249641be63bd5344558f62b5d0b9981dc8545d8524e5955e06e33f6c356f15ff9ad228d59672c9503e08e1e49b644ce2fc4b0ff11c58b8ee94a6727db97f14f59005d78cc92e17f865fa9e2fdd7f156e853905505b1e1be2236b9a5cba8c7a02e8a27fabe2ab532615b167d545e0e582dffc72e53cf1b12a97af57a3241ca3d3ad3c767fd9fce9161ff7d05420e520b4dcfbf05aedb8fe2ae26c4fd20cac9d092b57b83f89fd186b9492afffc7c71fa1f74dfaa83f809bb44520abadbb5faa9c417861fc5f7876905232a19fce15afff2536718f8bb6b856dfe698a939dac20e457e341fcbeb6877a96e842a82178f76f14f189e912595fc63e5c8662b310e6eb6e5177c8373ab9991abfb86c4a8f547e1e318cda7ff08dc1ff8ee3e11ab6e278e6895f11afcce502c40ee6067160acc7e8e7da5b0f0fab3955045e13b8cf4a8fd4c5a996d91b57c8844070e7ee669bb7ec4b6f99e2aea5a57370aff078e67d4d2ccbb88d84a187ae5cb3582570ea449d9c5192e88fc689df1a1fd0733bcc141e7392c2158120169ee1e2d5412fdbf0fdb405c1187a19b6c05aee5f65a5cb25145e7c7f0ef4552c3a7bee4d1fc0db3c6783d1d45f19abc5ce85b092efb331a10ed69cc22fefc3d4309961625336aedd16fe85c36a11799736614b76378f992e662771b805c8dca197ec5c2872d1dcc99fd7cfca556a013477f9ec09e0dfde41e7283bcff70c65475c5e0ac88302426b637db45c16f7fa06b382bfa42ac1e8f35cd4157e78f3a0c58ed4cda5fd18cc3e84e5065ca7c20c932df06bd2d21f644fc755bbc7b51d975be61a91853004be1e746b5ea5070f2adb9535067e210ab6b8c17fb5d41bd0fe6154ad4742a4b4baff8ec4f49fa6d2d7d4737d0d8c69c5a9f09bc4ecfcc6c9d0b03af27c2b4496ad25917d15bda793bfefb17abf66fc3102e3488c04d23085064782202195c6666e27d7762db5b8a690acef3322bfecd4b9acb667335abbde0c51ce48a53ca7495ee1589f5e9b8bef40fdaac8de2895cb81ac1cd8388ac9741d501bce6919dc823f4eb67ec8a03bc7d8e00493f0da0e3541a3a07a86e61d1c28faa05c0b52cbee66a8d96c425be726a9dd416e8a2ceac73b662a80eb0968d9ac361a519e75be758b8c5ffa20704cfc466da11b01941ac22431020c53cdc908396e0e1e111814e2abbe8bc7fe04115b3a61520eaf06cbd58c7338783a545e159fe445c9f635881eb44ed6a37447eedbc2ee8027327ce18e87c1c1d76a1ba6dd64758a0dfcf0856be975718f72c325fae66401531c5b3149e518a198089d71ecd902507c48e389ca3edf3154f72b13f10c51731e3511c83286990be7edc5df39a4fe0e52699312cf1f26034b85823d5db5a41561e59a23e519947d446bc340ac4c91a4358301606b8476a387e020bb0454688ecf2ee78b8e0ee50f8716ff9bb1b9b4c8c5e57257366013390d1f75ffd39401ebb332678990025286b94df1f263334a905fd540f5bbe28309339a436d36a0f5aefc19939c8473246451f1ba3c9345846ee7e335a3f4c39f3d6bfd9f8399f14c6cc92e54466b1ba133e06d4451fc69e92926b42d68ee7a5c462f44a2ef447bd7ee05c2b4c96a098ab6e3be1624302f31bc7d495224369500ecc590fd5463d13e1d1fb8f781dbb5b6dba36bb4d1b2316a685e68341fab1129685df244a44ef2d892aa3bbc631d5c65fc709014396f81991a6bb273dfe4c3988ebcfeac15b40baa0afe95c7307615063b0f4f6e8ebdfe68ff040e0dbec790552d6fea4502fb87c7d2690a477efd4a234db0afe5ffa86b8aef81cd164f12a2b4cbe14fb82f2bac78f9ea7c71519431b3f9c3a25e3256a9ea98c286174c2915335ba897b86d3f706a19a647e7548ee4f3f92f597f85ba5fb92a100bde0d5299a7ce24213e2304f3762b37d875014ff84b5e3ca29321c6308ca00a051ae7cca115ce3cb99be9d076a4a8d6d22af7c9d3328c87fcf7da8ee51412dbc5314d92f3cc3c7d544bff64645c53b5195b4ec9a8d3607962406bf3034153bd63891e095931147fb306a096b83b16b65aa7bf988f47a57bbe5a27f286572938d3d0fdc7404a11fcade20900b702fef552c0370917d3dc74f76d95ec46dccdec7df18182b6f2048b8b1a884256fbf84ac6d2a84a475f6980c5b6d485926648fae631db76329be01fb71430b2e74b0f3acc3bd329ad9a03dd8c08053d8411ec6574fc5d7567a22152dcc5778918bded7d5079328b4dcdc56fff244aacdc0a98b2def5681931f3ac450d0a932714fc1b60e14b6c08565e2ea5de43a87257cf697cbd12a08e0c8d03a017323744973ca37454ea5eba78e43347fab036aaea0fb21194930dce19bfb87960b2d2b863d149adc189e11c7267fb75d02c1e5512cce71d9ee81f3a9af536a96d6957ef40660c1db5cf9418930638838c705ab0773072fcb1b0a43f79200790b740cb66cbb64743708984183623fe9e57c56af989d7ba5b36f37f7fcc4927343672789065f6da6ef8b5f4af3a7e7ad26c739946226407a604dc15ebe3aaec2049afd16a88747e6f75cc68d409d860cc1f2d8af6d5d028bbf5d7cb99edc847382d74e08c6dc814c0c7470cc4e1840c6946c305952e6adf1a9093f5d97062138354f3c9eb99dfa82a5cedb948d9da3d16d45d0599c386366e401d6e2a20b8036471791af271abebf37ee1cfb4ae8eef015b62ca79520be7924b7084d50ad7cb06fa59ad6913a35cdc957abdb396720de08977ec5a33d6c619fe4ad5b1da789cef257915151f6a379ba143efb4bbcd9f639e73376ad811351c401d07c2b233c17f9ec9057e9dbf7073c30b895f83e12928d49f09350b6889949cfe10d1f44a65d990821e4d48ce67ba63e252ec879996903811d3e0af75508a1d002df7c9e8130bfb54d3bb23e5cdb42d1c5b186a969c112fa0bb6d53291413dcb532aa6b929148fdd4fa8f43b3abf9a052c40cd43ca366443a38f30ad020ecf4c5b71a791661109d1c538136065cda8f5672aad6d4261e88da217e57e9bd7c6217af26a19076371c57b76819e24f67f4244fb25815baf452f711176123ccef3de6fa883b34b4c7651c4619d7ccf8e2093929ab88e3329bb237f2e89a7ca6e0f5aef05b2b9206221f1602e2493cca33b0f88ddd9d7df02e18635e137d19966613043df77f828d16186fa84ad11e01b96e429163f529f28231b776dc0f91e0d6d3f02348d30986a64d4294b2337ca8696c4c973ff29dd2e6dc9b058abd9f8edc62bd4cacb95dd81fd0210342adb35b1496392464d3d035042197a9b1b01461dc6d945d133511ee51f1d7f9bf5e7f657d3fa23781a9e1c6267b9c536aa564b50c2f7adf1ffff7f7abb94b26d0fd89894d1c740cb531448ee57fba10ee08d6af4f47121915b32434c65bd971d333f3dddb28b89b47e99fad3fa56892c1bb468bee0fd772732ecad0dda4fa6eb7844cab15f0a4ade6ddd11226ee442cb6eaa046c589160e3ba27c662c3e648ffb41e6950e28f55a970c1b60f4de352ced7a2ddb1dae7850cd850dc742783d5141c9c540be865f33cdadc0f3f8634fb86f1a4a98ffe00c3d51dc6e59d910916c2f59ff719115fdbf7fcf9c3b3b3dfcbe8300cbc84189e67915860a73452c16093629d5bff04514254bf974c27e98dc38f8e09dc5e16c88c79b6e4afc32ad740830220e7df2a94f690bf6818a5180c003a721f6b9dcc4a797e4d9122355bdaae8e96456c60b6868cb193d27d9880cffe96a4a6dba2953216cd919651bd4b40d9678e3e87e872089ba713717db6116c6d8e0648772e305473ff7598288efee07c89d1d04c6258fe07b7c393546d5e1c8a60cf8775d83fc75b295a30679d0b76cd2cf9d648d17dd2646765badfc3703e14421d35628aaf66fa32a36bab072822eee39ebccc5a6ff25a946d1ecdd2d6d4cc55b6f9d32d7b508e33d0484cda21e9f9da59048e99464e286f9e299f4151048725f2d1720b13692fbe273d044ec8339c0183c5945625db2b834cf97e71d298c8fce58b4e94a0d7a252a3b36bbc6f4b399fde277a01dc12820fe6e1de3fe87ffac6184a858ff1853f64938543da9fe3a613d8e8f6819671b1472ce8ec8a3d4a295335073ae6b3a3e2a892858f00028d74c612dac13c63f9664d2e48d5e19baf551f6c0edb87f924f4a1c3f8808ed442c486b162be6549ae42f57df0d40ab90a550d787db820b13e7b91ff1531aeffdfb2dddbfb7af96c1bb4a846031c4927d741a383c8ea9cddee424d92892b0667a35015b7b1fff76fcbe6f6e657808cf2397cb97e3889b1db710ea25af5c8213bb329f63ea7ecbad9d1bea66df7fff4cf773ab8ce6730e6f1ccdd38ab6e599adc975e7d2891e880ce41e55be3a113544879a9c6a5c5d8d8bc46423014fd1e4b5aba4c0d3f3a5f88cab4e4209a49d195f14f9d8db716fdb5c6e9c2db511d181ab3edc6da7a00905365c85568d494de3b9eaad16f74f2101fbe04515bf9409a1fcbe4dd986553ecef5a9e1b57f55e33546561ba596e4447f94dabccfc1f4abc3673b738a54039c65a3a5ab0691435ac9588eee38a0ccca8de8c35999926149140f963fd36c6cd4e5d21a781c63edb6c8c89efe3fa3d9d7a2b58be416206ea31a4764749524dbce479df305dcfe8c7120032a5d93b6c9ff4e1b3a32dcaf80e99d579a839828ec6b2c4b228edc312a5b7fdee787efc8a0e48de7508658518334cedb62d849b45439ec192c344876bd2c32fa170c68bc2f9f514185565caa502d79a22639f09739b85a1a6bb7cda4ce1906df0be1000dec475d58ab4054aec9815fc393a7b680dcdce7815cc5f9ec418dcac4331e8e357a62b4b45956b8f65064f234186c96c8ae94549d83727eefef308bfb9c2538a9a2cafb69f2b0fba96d01f56f17fd65cc4964bf9964347254da03384e208b76ccbb46119b8edcfc3546f344f6741f19b678d5392e2b74b22b682137e83c4423443f3544dbf1619c58ecfd30c214d640a421bb3605062c45874afadec6557f550a67081c3912416e979d139f68106fe3b84a3bfce129441840672d7de07472b406c064d62ec5cf703ffcac161a33529c7421a3d15aea2600e80c988e00cbebfe48566613e634546fd9503e1c52e86952e4c8a1c1b5065e87996e7fe30760bbd92bd92d2277d294a804f37f11e9e097027b68f8a1e24bbf56481b3aeaafd1e9db05d649545fc977ca4a917cb5386b12b3e5bdd4d01b40538f4224807c769101a10a505463969e30d80f0c930a37ed8d91be0b875520aa83db91673046854998e6092763e856ba579d657650864cfb912eebd7a586fd18cd06535389151a998e65c9a0afd2e57362b55af7766a251f56db33d10e2551da062ded34eba7c148f1f97eeeadad79c3632108f806863d00f8b6e467d3202e7548a7d849eb0aeb3255903159012c6760907311e75df99cbf0a9815e568c71811d8f9a69c89bfda1a275a4b24c169842555f09223eca15b463d3b4464593a479f405a5389d3c2d5f764afc95c2369c748512fcd738a0f8969a91a82387da3a64d77d67e5a65f0da8b26021406a9906f7490eee38b46b78b6a738b7406dc38114473c438d9c1f44108d459c650f7f7f14145b31a976b4fbbc04bf8615dfab109ac90977a2eef72d91e06a6e2251dac3c29d301cc4363ad80e0c26cd5dd46c4c2b650ec3873ea7bd4cab97e4e62336523f5e1abee6227f3e3e7f7209c1db286cd42abefbc4e4e185f68ee816754dec5d75182c65595a221ccc023533be956ad95ba8d55dbd69d456b0506038a1ebab82914d46e57b730aff2f9da2a24d3893054e7466b5580e7619ab5c0818e9ec4ff27cc56ad324f55f43983b3db3f10e990e8ca8f3a96043abd2873fa17561940517b70a212778dd5716f32d0ce3bcf415cd09609ec16b3038f8472ce30beafac2e329ebeaf3d51cce1798a764702adba525a13e62ed0f2f838197784e72138b0d4d22fdc82c2615b0a4594242b8844b95b701e661b0be4f275e5e1d8c38a48510a48b15cfa3b2233714dc782fd7fadbdf42cd8343341dd3563cd23b5edd347d03cee9cfc8b7f411f371d02cbe4e75ba7e5fe2409ddce2b10dc9b4932083ecd9e091530aee6138a0a47e171f90b1af290760b0d0712b491414d4050ad98302576c76db6aa795ba05e801e17cef971bff987930e7bc08e0dbd001342cd8464b8489ea6ad56224f568afb6924df75e97241d8bc9bf0fbf2917ecf4c1a7e9f9c046e2b110f677971e658d5ca1034c741116d41df5943d3fba91c11969cb1410ab53ddcf28be1cb2808fcfb78df26330c7673479f528187db541a37dfe11eda7c1b7e46a91dd698d2ce8688ae6d25f81ec3c19e44d403cf770d8eb5bc191723b6c52fc61554d6f80bf6baccf873f73e82fd0406df724eebbac37e14a468a823b0558a88ed2c858466083d7c44e3add8bbcef1ad57d23067d50f66632e5ded778decf23ed664da214d8916c8821a7705f127be772490ded84d9de80766b939b7c9c14e7241d9f5c93af695d5a78cdaca54aeb242f5cb7a89eae6fa5ffd653853261567e2ba6c681e983d505c78dd9654b25c74eedb07bf8425f5be00a0aed8b86281ab0fb2a8c594f5c11f646fa5bfddf892decfe3db5819c6b09c5ebbad225d8abb5f39a2600eed8a44d8d1dc7c62a2cfd4fee7954470c359313312a5e9819651bd537e785f78f6a972f6480f3f453a9eaf35e8cb716cf5dd0c8dea56c7bde0dfff9f8e6bf866b09484e8751fea1755b87f25e27508acca416abc7a932d78c159af4a79576892cfa3db881f645eb9bcf81b9749bd2123fe9a2f2561948af5ebf3f6e60667520b35f7f6c3716f7d9ea40a9cb2a00059e15e12b076c21ed29c0eb2063eff68f2cd84b39e18f47d2d13626343cfe80962380218a0b2d17ca10f0163da229adf8d64174ba7ef0fa471f2daa54379de9a01b8cfc7e4ea96efc51305b4b4f9238240948fd4a1f872849750cd0577a750bff02d1c519d84bf3ed7e8658a261513234f3e80c8897648db265ed46a2d592d69bda2c50dbe41dac2e4e0c2460257a553088cd174e28678167e99a2d7cafcd3fbfa890b61f5fd9156d1bd0a055b9a1090bff5d1ae90cf5af08dcfa48c381494e27f4dcc1866dcb9cb36245e48292c5398b53e62f36f0863db27f066f495843ea6c4dce7d0be586804547458844f681b1bac3ca399e74022454f55228db573047cdc3f9ce3bd0668bd00e9f0cac83987a6552cc8855ace4cf06c629caa8332c03f26bd91b89eee0472ca338aadfa6c6f48b475dba18a23c483560318b12b5b755bbdfe85afb30a89d8a13bf39c825eca166af053cb3d1756b9591a554a63cc7e760bbd117a83f9f00d111e70fc69681e0bfd6d726f8abf20aae0f20527438212f7721a8412ff49a9bcc723df19fe55e0ef5d2f4647a1577ef19f0f081bdb00c67883637d427def42017b1877f61d2d1cde5f820533de66210ce3207c865bd4f80f9a35daed6bfed2acd6cb4c26870046775646850cb6bbc8768346945810d7ea2e4147a27c20fe055aae45baf74a8b37f0776d3ed9be60a0df53b3df6ca6197186cbce735b578427eba81d0cc20b435a38e502bb0770a0101a3ee61d8d00ff6c2c9d08a388d587acc924cbf5cdca4d0545859ce959381f753a0db961c28808d6808076db5bd427e78f07460a615dc60a6bfbc94d2726637d1abf034240ab37881e5216a9fcd7d486faeca374704944f8d54eac47339cb1499f802774d51b8d854d35decf4318319443e4465ab3757d96fd31418defe35d9d3ab4952d0ea3603847401b9c9d1848a17347d850fd184a4a47db2ce57db1b7ee794e2de2d79e7005d33d5cc0d30e06f5e003322ae1ad0a7de00fed410e06a37babf4c50f410165c8ec8a848a3afb18bb2a5c8b2faffc260bf2079f75ae504cecb27ec7dd9af283f169eca6d95a63f101714c32c0cc5365a09c36627041f3cca2f2289fb6d4c10e386fc90aa82fd89f25ad64c24993ddb022dd44acf04b35b6eb20bd0c1ea22d84dfad9d4b68be8c30c83e9b37c27aeb5d329b77337f4221f81b267d166db311f614ff373c059dfd21066e9e9a851749bc6fd986dfaf43437e879e380e6a6af96388a91cda70d5ad24ae438057c438dba1c1d0d8e890b2dc8121fa135fb38a082d871fe474c2a019133656fc089d0131075accd6bc11094eb3339c42c064e983d2cc534cce8cbee11d38420f916c6d9f2327757618eb27d2c4df1790688232ab554a1c94880be5709f31a06339a5a528634dc5e0da1343b0d093a9d46298f6dec46f3652c5a4573652106b012ccdc1d4ad92ac8d432e3ac816538a7d552be9376ba0e68ed8ea5c0c2826420e24704a98b582ae35cda69f0712e27d37f56207dfe67c46e85a4c5d9f374242610bc857cef67c526117080fe3a483f3c74273dd6c19791a0f13a74da7f0117dbaeaacc0bec31148fa102a0e62dca6e43c8a27a561100c37ab1c827042020ee65f3b9fc0b4e9c3e0d80dbb1bb0ee9e8b9f367125ad3f3a4d54a6749ae45c9d003b9949c9eb5def02d6593eaf096b1d8245141ba3602e11a94c7af5cc391d86e68fe5a8ce514695c38cb3643daf192c0eda21cc1582a1f382634a796035abfbeb663a229e8341aff8c717a424041b9507a8b93a26ced0db49f22bbb5052a07cfafb006c30b2fc6aaf8dbff077b1938bef514045397828353a427ce2c7742a455384e4abdc3f50c8705cea9cb540205e50c2939c605318ba1d55a54f36c1218e700cb060c88ca800711d8004308f9c1befd19a372ead87391bedb7f8caec263ffef5aeddf92c61c1013c5a79e0bef57f8211a20d355692ee472497d17c5adca46e85097ac60540bc28f2be011fd4861b08bc354293569fc6a394ac07a40e064bca8a8e6e76fb3bcaa22df1e16f25d64a86290940229736e81a10760fc14a081b0cf80f62448784d4f6f7eb0dc9efadd726f615a41d3b3b25855ac83d92be1d9b87c9a9b6c620a3d4e08e66da047e01b68a9fb50adb26c33eed3eddeae41cf9208a9dc74f5262574910bb980c93144e76bab85eb4ba07285c7fe7c3ec4f54910d610d08b9dd6589b4ac7e13715574effcdaa0d8e0389b1a6cd1094248d7d6197b8732585c7e086c1b3b806ec33719b63cfea01464b0ca48ce1247175f0c7ddc027052c617dd86952ce9a1af48e10bc6e96aeb612e93ede0204ecd53329fcb9bb86215bccfaf50a5d9a08cea92855b5c09b5ae5bd00ef85d92a94854d5228a35f65bfceff00d44b2a806b1a7ec80c7ff9d9cd2944f56cd2631d2aca77efa37e0fe19fc13196e25d23e68bb91de56d86434afa82cdde0a9246f2f1f11b0523df6b4ff4179612db4a082d1faaa5fe622bae776bd435973aa896084bcb5391b693d59c0ad6ee9c5b6c768c1bb0e75a5e435833b969259f70884796b52ef677ff17c00895a9ac78b2f4be896fd3be55fa966ab3db6bb95db8bee9257972b333a91ed4294d5d9fc7cb640d03f8de73b73e61e2a6f56bbc7c3465b99d3cf441ded90fe263056436a12615de0835de31c33fd42b0870dd6e639cb1fca999969a61a585a439b75551a1b0b2c4ff4aa98aefef958cb83299df112665b2a4563d45e4b9cd5224c06aa05069bb82c452550b7b693c5e2e5c5cd4de315d90547b52b5c26b6b03db49009508b9036eccd8bce04ea9d518c0194542da7b06521de642b6a7ff95de33ce1ae2347933277cb0ff8be1b0612d56295856d68ce1567b60fee79591b62009c2df8c14c645a02eee00a70b4954b08d1cfe0d59a30491e4727c4bf43fedeccbb5188d5cd40973a6efe6b8002c19d495ac835ff85298c3686134dfef518cefaea5b3fd5d2fa387e3d79d1ade308933524d97f2e2a65c11abcba34bc4e899d092c642dd91f60b0b97c853eb812f78ec8bb5ce6897aa20db0e64cb9fbd6b50761ed87d5eaceb8cb5af70fd149cb7298a3b4120360cda4bee3113b11d05479e17ade7bcc899644561b83cd0602b62d4bf35ea6909ca2056030ea6de168bc5a81efc7a7de8067fabf00293c89bd87827f3c412eac4babd4f8c5bd6dfd89fc642dbc24ce40f57450585d90a24cbe1eac296f984c606af9757d30f16c5a90dd079059e2036a729cfef04307be770870bba54bbd88641dc4c24691008a6d4c5850a10f9b65d4dd1c9d7f28f1259e02d621609e5e99664d58d80e375f91ac672e0e84adf9467885e3f8393386785a2a4e8558cf526c514c022c8ebf7ffbe388194bad5de26070620e58a64ad93b8ea4570e74d1f48c974c84f6e9d5c9bb57172fb5a6267c1136cbab4d6e22c01081be08aafbec06db97d152c773405d9228d897957c74e2404b9391528a1c976cb589b40888b8fbc91e7bfe4fd0bf201afda25ca746265727934be6394ae1f611b314d10bca7004db2a18dd3aeecd7cc094a5cd5274b4401b4efa63d004de00b594dec338e27b7aa5fdb73c74bab20e761e7a1b11b55bf001bd65b88aaf7adb3a73716e7b2ea0330409c21db2a17f168ec67993caee2a4bcb84d19d59fb902ec6d2fd979d016c040e3ec14bcb5388e7164c655467387b526ba675f6945d41ad2d40d344e04620cc7368ffc52e9dfbbba86efa3a2b27afd69f2a0e6e6d2b51deb4e3afe7a612dbf5b0f476854d882ee6a927e2d94e3d9f98357323c48d23fff580caf29b3696f8b33a4b2095f276c6acfce8986ed37bb334382f167a9a55dd346860d913c976e2a4113b307f39039aaf0037f78f40f103b9633c13d1efeea8d0af7c2c335d54b12fcdb6426bc62aaa624fe0f1c8c82572bc9ca913caa65ea687fdf3c8226065d83e261a8c55efcbdd9db102f946adc20242bcef11c48b60b6b897f2ddcda7d57f61c6d3af835552217e78f1b7c27195e5f986a2e71d1a082c88760e022d5844a35a0aa5c353777f2935d537e5ac06e86cf90eb03f980272d18b9cc9e2137d769a9ca290e677effc4b71b3a96abc8c1886fd643de8abc230a973954244edf26a8a7c0ded356db9f0a918ca47454db2c8eae0989a9b4cdbffff3504823e39a9621c6ba2211bb179dbc0611f749910b7e8ca15d77327632faf15d3a42d916ba415684102ff06693515b21e11cc2b003b9a8e448eb16b7392929ce6e9cb3df07b134d008a7da5e42ab3c05b500712e389569560b66465ab17308c9bef403f92269f431610e82d30eaa2a78dc144ffe15fcb916fc9012118654140f36afc4197a5cc0a80b4b78451fe6510cadce451b5b8cbb73d6b2cf4f571b49f8d8746d8fb9743182da2b58538707804a5826ccaad81869aea73a05062c6bc173c8add7ae4c0c99b6b0de7df4774bb2754c1a9347b62709c1923b2efca6beace53e0933cdb1771b9454784f221a04f4c13b2a4245ee7470915aea09f953dd955d25fd09b3c3779ac231711532dd188d18c7dc43ff226c143986227c10e969f9deb53e56bbc7c66fea2e266361287f80c39239a2841db3ed4cfee1fdbda1562cb6bc48a5100491f7873a560f570dc95a9a3c4ef3323e9f2a4f35c99dac2b6a921390da4cbaddf7eab559a5bc9acf96508a44ac5512e8bbb1b448a0904ef7c32467c278af6b028e8af8d21cf244d31bad9379e97c04784674280bd051a6204e4836e9e89047eedf985386a7c369cba39096e61dce18a9b290f693e753e38e51f4658fb57a0932e52435a3960a00cf0cff888b668c975f2545c9c21841b45be128338fb030473a9224ffb31c2e4751463ef068641596b4fbb12122b9cb700d6db5539d6935bcfc4bdf3966d37bedd8d884b784bd2d26c4426c36b6c30e7db1314ff9c3ba5ed1dc6728b98d371079b75bf8bd989a5d72303ce02191557e886ec4f7b0e93d7ad24cb3693ea0264fb5f0fcfbb50c295d5984e1838a7831688ab88bb35845d101842df07d614e66ec26f8fece2fb619915aa05ad92e843e049eea4390a5cd19e00ab2545bcaed1f84c8e8367be99a2197e5248741ff5f041520ad7bfbf347fc44589a058e05205dc391618d13be9a79e25e5d7a9eafc73318b03817695c97268a8beaa1827d808f208b3f8242ce775e686b87fac5eae41c07f738cf4946528627fce1b9a0622b0b247004a528bc2c935c557201c4917436a755ccad51f371ceb7ddd852358c9e884022d71d8b14e2dbfd9b5a3eedb0fa9b6adcdf930ebd24f70cb0d7622d9ccca23b6eb123523f1d8072009694c114d888e02ef1b3cefe68ba54ed2f59a0ef395926e67c855791f4cfb4a11c999ea8c7e1b5341215d7e51b174da819952a26a292e5d1962485592d9a8ff93b18420925aa45bae414eaa194d2880c5eec174af4944a78717643032ab4aaccc88f1cf5608fb96226e11db0b9f1c3f262275ee36a8dbb42cf0538a87778a75ff5b27384335dba8d4fff023abb3f48fb7f81677f240b6c7d62ed53ab9b434d8389e654536f86b012bac51ac342cd61e0612cad77e88325b6726232377bf6c5499ac75707d4a294f3bedf9d9ef56ce3f264cc2101b3ce9ffb8628c7b95775ea7607a230dbe1e84f693ccd92e79c33bbf23bfa6bce3aa7697ffa195db7e42a9ffdf4fc121a7bb9acebff6334f522ff96b5ecc2f0cee12e615ccfa3e48e6c82401c2f09e4b41316d716a248a885dbee984d2825aed46968bc8309479209536e1feae7353d5b4a256d907c77051939e31ba24898e52a55bca1125a1bcdcf85e40d68859f3ec209b01f4e84c0aa36270688acc983966712775092e9496d1d945cfb6547993103bca5e2dffc48e596be4137cbe8c3c801f249d9e49d8e4a4f3854a1cf642afb3bad97ad9f2b04e76aedc469dc3029a7766bc666e04ebc1a2417cd3f32e08c5edb753bcce86b420d3dfb814a131ef9690767e715dbfa38a0ca59cb698dbbae0f4328ecbeb84721772385b003b9b06c115a18865ea9327c281791d8e1c063b295a90828ab5b8215ec3eac4de34bba2ef08675e50bd1a2965a7a018186292470fd65c9115c06556412c0b5958faeece0055d7d28c5f2d5a8559310d84e3f33f25b0fa1edd27f77abf5ec488d4b59379729e74ed625ac0a661f770ef0564671f6201a13a7673cf159dde0cc7b4bbfca5b047c8b5c66743d9b6207fe65fc64426f39ddee4b798c19327300256a195a2ea9dbe29b8a943555a47df250d10ab105040229dc8daec09fcd395c30ab090d32f22b5738145ca4b7f3e036c558f8058b9009dac743c665ee17537bfd4fbfd2271a137502125f98688dbd43b31d32b691a0a311a6e7f7f9bece964899adc0e6bef98a5817801ee73d8d031125ca7869caf84afe4a16e4bd3d07f91bbde21bdd0dde73793fbf72839f9fb0c8ff0d4dba0e0ed45d8e131583afa9401a654c1b5ad5076f0ec91294e3c1856edb62156c64818d6f2389450f9a25f00d65850f0a5cc92989002922b3ef4696819a20195c1612d47ceb7fb4f1416eea30d5a9900849bbeeb4b9357b21fbb73a07b1ddd1083870752c27f890a63b1afd4f3949fcf032d37215582e0c0a8a596f8416f6fb6f38d0b6f22989aaa362225fde52fac24b03a3c61810c8abb9e56f47c454bfd75d340713ca8235f93a6d729d620b86155481c26e62c72a8f77c12968063b21ac390869ba454b7c177b3660150d9c076b0c64cfe285321dd4ed710c8a7d58c741e21e850d7456ddc29f33e17b9ea1e80063e2201091ff9ffb2179ebfd1dd85e649a8f562491693e5b12f721589e568c5466733ad866d7de67fd682b20bc976d67055dbc4889e87a6afae2fd86e16deaa989b00d8fe93fade0655e4eeb7a94509e33e716794ba06a185e6db7b660472f86f98b677df5a8bc14e6968e668a06d9e2bee2b7eaeb98d7b3d2973bea5e79b436004d795f2b2e5811e6e2992f36c6d011f7666a7f96192e2ebd7c2dfbdfe7494a7a044ae58ad7b9cd73f656f943d4678b1ee5b85651482d9e2214f1146fe4d4135b6b0135dd62fc9e9bdafb07a21f2eb7b61abf3b8f0f82be0892ee353510c029415d6966efdf43c25001a3b565e2c57cdc5046329233016c660052b15ffa93e71a61b7069da9f6d9e5bdfaf01930ecc8b47aa2f19dc1282aa4f69cb0d6b455ecdaf1ab95aa85c7651524a1b85d8fce0de9044763fa42ac9dac907aae43d9f59b3c79590870f5e0519a8f3ca5d2b8e5bf33685226c65d12128d0768fa67b82f9c982e71475301b967585667605bd5b6d7fcd05f0e99cdd5f4a58dee38c3adb559c94bc8af1209f4d814671325aad5ed53066ec6a0f6dd0e576b505ddf89d16c821f4ae490df6244b9bed620481fbd3cb328380e9890d06571b5c12cbceb82c7896619c1af48d36380479e80acf7f94c7e1f45ca6359d9f11ba18a766daa840327f982b0c6f4271b8b0b0b634dcb24d9bb65f738a5669ab35400ca37e7ffa52dd5e52a26002d7fcb99caa39fb85bc1b678229d02b5a3498dbe5a8065f1d431525423e17f7d3706144e3084ba8eb2da304725502f1c54eaf51f7e4b35a7479e2e25d5345ed48138feb4ec70a905909495bcf228f51a664428e29ed35ef781360e12a07bed8c9be991b55c26c166290c42f0e016502195833993088c8427e0b838a30ebf93a100a4d1a2c2a301903722c90144ef6c585ca856675ea9644d67237faa0542d406b426e7af0e754e7455080b8faa85d119b93463b26b6fedd58b2800b84890dd1daa0bb774373dfe97aeab34412adfd373bdbe566e8438d200480633a50e4a234003e1296e22039393fd56a73ebcd262a8f25202ba75d8c85f82b9a40ca61d993c163f387b1c035b95da25bab5a9a85ab08bd05959063d295cc4c798cc29a1a0d14aa52e62e20630e159232055088ba0b567a9f82f076e43b14019ec8845fe7f33c427ad493986894afa2d7fd546d90795e4af5cc8f34e62ee299d2d280aa2438cdb379e3d17129cbae3fa6c6ec9b0946481dc3cd122c41bf758b2dd56d26241786a11bfae5bcc4eb075d2985b963c07e75035759d861d4184438e2a0237ce0f87e5965bef17ee65bd25e06160129ebb193c413ca1fde87ca0421c4ddf1391a8be46a68eba679e5f06ae2f7b40cd80d2a914b1b9f8328e6d2b290fdfe39b2b9916c830afabd99b26c58bb187465eab467b7728a1df0e56d6582a1f20cb7d6399fc6d9f91c0677aecc8cde0c9bd501f0c237f50273ab7bf522f10ae259418269bcf614eecdfff7733f032e41b78209a956d469e820e2045d20cc24b5d03c0cc6b661c297d509c294eb49844664b468925d83a772c052cf1041e1bd59f1f11f54a8760b1853fec82619cb992b48f54c31f153f9d42ed5c69cbe9102750b1565f6f7105fbd13b8cfa43c63b96d8a22398298d9d0cbc39144dafc529a0a5cbfd844e539166c6bacecc6a630fe045650e0a46d9cab59f7e630c635c43ea4f3e1ad99fd2a324df93149f743b1dda70bc3e424447f8bc0ef76c984a30a9c61622fbe4808730cca382b505c72545ae85120a92c65c7629bf02548f18127bd6f552cfb2d37f898d50a778ae2290ac9ebcd25d93e04de72e77a1bdc59dac639979ed5938edb939cc5d079d3108fe5ca9eaef3b3acb84417a34fae04f03f99e1cd0d7b6b3edacaf299e0a72cb458332912e5d47e97521a22ceed8276cc9c7501415352f2ca9beb74ae2fb7f800c4a1aa6c39560dbcb76ef6d4b275ff10f3c2b59def51d89dacec6e1f08c406e7910a1e6141552745d8a4bc13b7b7722df4e6504f344e4f077ab14c8284f674a96a7d15424de8c4abd985685198ad509624901a46415ee61639a862f523dba52727563983bf4f4fb488d414ae2ad32be454e6341f7a1c6b75ed46937fb337a2f1bf23848a4e2bd1f468db0e71b640d33bbce3734e2e23c8e1e05fe6d3b705b8aeb2d2e75d73357e7336e6d7c30cfa976eb12aafb781698b493cfcf08e1190e5cdb4837502dfa6840f23beac16635a27f08b7ea973842dc220745e3ddd9b656323cf8ce05974be089e7b2935d1f8107ec862a061e0bad1ea37070ae6721b2b6f09106b52856bf0b2e9ec7f319abc0115477300b805060eaa084cde35d9cdea4cd06d0fc45f6f4c7b36b1fa431e1a46012686181c360adb4d051cd0cad11ee558e4fc86b7c060bbc18939610169804cca3b2a82f20c9a561a1eb54f4d6dffa1443b3f427313229a686fcb9095c465ac4009ac532c17aa0d8a98a3be10525ff2b06506db63b61f6b7b50c4d27b85c43439229cb63227fb9a884c0cfa05ccf5c5c7fa4e049237921038e5ec6fa345d034ca456a20e448b50bdcbd84f614d7256e72ddc10614732d9f5d921d0110d4ffefb778086f82ef886222645715c01cd9426bb5a51b50d3555e71baacac8d2f1402b570d86b6823cc4d999fedd511ba5a3b4d7880f796f5c4eb4d84846edcffdf69c4b8d0654080034be931ab1d15ef8732565f345e67f8c806be9e68b30c7d2f3bf5b7d3d4983474679576efb56068fd84eee63071dc6042d0aa6f0136a81312cff6e80b8c13a042d87c9ff4232d2a70a21b0b7f85184779948fb100daad0ff3ca23ba5d532f587604bc52efe431ace250fb5e0d44c46788f76bde7dc1bf3a1e13de01a494260fb193571f61b876ce9aa07c5aae8365105da67ca5f96b87f277db40a889bfc1efad9f342627b6b823dfcfc2b9495b9ce08cd70cc8985c9466595c6ce12a65bf8e4e2bba55671009760e4fd9848d06ccdafbc72b0e8aa3ad01856338e091b1de04fbb9a741946ef67250ede9712a595705e81f820ed35bd615d0b699407fce8d32eb0dbba9ab7456b158a6e67e6b034e9d9f86298f50ebab60da8c5476222c8c609507c6c5a7510045f4b462e7fa26412fa8225dc885014d428436712a6b9ea148dedb008eca4c5bf0aab1ad065c208cbd58612f3a8c8bba1f3958c64ecbfbe39411f7958855c7fe6e1e5a7e59e69cb66e6ecb7e80c7a0f345c7d8572de8856c2114244bbb92b06e8af9a29992b856cd00fa0cbefc71c10ef167d33904a3d1fb690f3a5b37f91ab6f6f4d63697f176037d415a8b5649a62ed083b1a4c4c58e7ef90961aa6e283f42883e738158bb5bc623bbfd8f8c3902255d60100ac29293521c7d3dbfb4ee9137f5133d73103087a031f98b6b41dd38484d63e1e2d3254ed799e15c51b3b2135e179636c2d174fff9f9e9c14745ce949404303e2691e51492e530a48eb0b799655618970c0e3db01f3764dfc9caa8b004e33873c87a9eb1d55b22671c977b87365031f7e0f8a91b3d7d92f7ac7712a1824d4a483cb5fc271d8931ffc355796c0abcb80bafffa6b411d2d4d7a713c68c3996157e200e8c9637240727896c63fb390bb6cce7f34f7a1dbc7b2b4a1e29baac08d4359855fc861f07add7dcbb8d41efc46886ec7e4d6b3235ff1a94b2a4d6e52662f4f2abbdbae36d1e3f0879ee99d0822dc73cf253eac24549eaf868cbef95b4884b14581f139be2e4b579c92088d01b15384844979d5207fd30cea2060a5101ed0a4969b4dc48667a13ca88f2dd535eb3e4b767d649dcb63ac26a0c85a29eff545c5df710958b797b4a6e38f49866948d1410563f1f3eaf4cbbc02930760a2fd3af758f88e0e67c1169af21bc041f0bfa5075197a5f9552ed435d2fd74d8470ea9c75adf1e274807a0aef4b9ea74baf7354b698c1afeaad5f2fb5923e5380643b05ce59b4b6d2f40ebb342e29563df80614283037fce56a351e9132150711d8610f6e4927cefb164d7658c9b81026e66edb235ee1354c7eea2c49c01e0bdda9bb1fd554b6f055385083148a4e3a18e62038bfd7aad82e3b99acd0b3d73791af61ca8aa2db1a6fc8c6407a71be3673fc5ad098d97379722a17259ff721dc04186ff2414012811bc1096447ef01e9b35775c77a7412ea6dcc6687ff059a3e1d9d6ad5f91098abffcd28ea2d9f824bdad8a646e8b95247aae493dd59fff01a437f19b4fe563e3afbb6dff3d2779fb74347b7db32da73fc20a37b63bad5ee555d8f6e4d8d6fe13fa6ccce0aa2f0e9a49b294449ec6d9b79052341cbbacfd31b15ee1c63c5c5b4eb68dbbec184c616f2c44f9b71174975b290f4abb6f4ac47c8d598f231a940f9a331cd922888ccadad3aa64bd04f2000d20275666864f7392623e1f01feade2547e709e450dc008afe55a1b9c9aab6b41c728abf1489a34f09a419d0b84243aab362f115c269183b8f1776a81cba64a82ee034cb63a5b8849b6f6330d07eb7a24b750e6331f2820313c44bdfc9c0c6deef0cc041145296d033ce2627be170f3148b7687d985058d4a58cf9381ea4f53b513635ae4f3be00bb7d6739eb3d9cdd2935097820af060ea992ed95e7bd34ba9d3414ec14c272ffbd29bc3796771e0ae245d80c214bc63de52bc294ed373a6181c8976b0a76bc788cadcb42db0ac4d012c23646b509cbed0c63668cb0082980cd29fbc0328e59c76068340bbd15a2f361d9cde1fc4e364b1e50779e3778c855043759497fbde25ba3adc8626068433dcbec9f66daf7e4b18f8e948de8fefbb73b417760e577e43073973d3f8f2537c41fe5f502752e3424c9b719790f6ecb939b4aa18ede8ecccf24a9f19339f3a2e881d93091b94edc31a8ad9c775ea817dae2945fc5e6dd3ea6bb41f5bff0baba52e805bafdd4da9334fcb4fa3567eafd6be37fdf0eff06a30b73debe0869fa3f73a0118b95ba7f6c2d0a60feef24a32b3801b829f52e3ffdbe3c2d357dfea36a49caa5087aa2291c3a0b49e8ee70dca4e0b8b47faffc2a64d537eff8a72f8fdd7bd75329948628a48dac9c64398c33bfee15877ad5f5caa5093bab18ab1c79882411cc22e6a76408148d74b7479b6153d138f8c4f02c78ed1d543098ba0d9599091364170808a3086dc2012a5e2554679fd9f78ac7b6f07c883ee8756eebace05f4bed7df1eed90db6558702a798d5d2dfc15af8a22a74caf4eef91710c4d1459d7fdb3dee6695bdafc1249144c2c5a0644ce9602628f0953a0a3c4bda4a9c355445bbb9c3bf6be52779701b5b59e22e9feebdeb84ce3cc74c6cf73d1e54fd248b89f841970c82b0345fe2b081731f4eb0aaf3db044469274aa27920635c9e8e850bf5a91ca32059ba4d0e32200e90e5dd9ca4d0c83218474a717755e100d20b7ede6ef9f0a057c8e890ae140089ded905713896c845ec23b94e3f5c2d82146b63eb3674ca63b3d5da677eaebc29553b1cea0263bcae045f14e3bbde81481ce6446c3772540d01194588e410cf9676fcc05d32997ea28916a590468ddb5c7ad9bb71cac1220823802e9c6dbfa85b26b37f340e6811db48b461e849b204ecca9f4b5e608e257cf51a01bf16cbaf6961265a6b85e6061562437b30b4a7c1cb7572626b76056cda42cfdd01681cf69486aad4160d818392031f3ae339988aeffe716023dd33d155c8e601e75ef634142f8ed9d9ced47397360cb6306836a2f1e637cce54ed563644aa939ea28fcec0697196f6e2752d8edbb10a67a8753e4901b94a6665610f742b974cff6ad438ae995e2692375403a60f898fcd74d805a2ef857a12d85584f6e650523edea3e13222777fb5936fd7643f1be449261218051d650d716faf0cb2c44e018221c86387882a03b0678900feb58c4bdaaaba122232ed485d037c942014411dedfb7cc9298c4c0903494f0132fab1102507aacf5f3467f325f4bae013ab1af10df388b7b92270d2a80408f92ef594c9f6d739946b2770c9a9a420a8d66aada39d4b827345acba6949bec092e8a0956651a5774b577f75fbfaef2abc1d8a41faae25aa7fe480ed4d2cd70171c66dd465a25924a7dfc3d2e74990e517426017d35228632629875dc426d0c0d5a6bd4b43193a0a8a01ef4ddbeb08dec86acaf720020f0f514eb2549116ab494548835dadd18407142607487931962e3b00ae5d28b5e772aecc4eb8be8c5b16e992d0c6d51a172788e69db3370527fb9e4a2de4471cfcd4dc20cd44e0e1490586bd0b439d1ca508cd881a8bd8ea830e9521bb7abce5cf3d57a8f54ee24015c73396879d24468acd50318eef488c1bfde86e14ae3326380e9297d04e055c931c30cf53de6cd0183bad74012e97d136b5200a22c85fa32c0e6edeae407c0be1ba2f7f63c108e4f40aca22e1f7a016aac7af8d2a9a76f909bc3374e393ea3c6404074f1d332ebc2d08b6ebda3936166cfd0b728dfc8ab3553901605f087e8d9628b68ef5fafd2fa838d15ea23b316fad761fe1fdd572f4e0aa799cf9ac35486ad1737fc290d7450bfc6b959199c87efb8e58576dc8d5efa20528452f7cce96fd4e3ddab63e1ab4e80cf7ccf835ba25fda1692b0828997cf5ef35c930759b8c88112a591330ae032af21d8b509fd2e3af003d99536de6155edf55881ba0cabdc14f348c6d18e5e704120a29ca8932ac42056caaf84094c892215c66a2490a188b0f3db67b4b6682d2cf09eb3f577eb157bc561ce9380675c1bc2588447a088be9956d616cc29f4c4268d7753eedd4997bd353e85a947f83226b236666c61fa04e6c4ea78d02bd4453dc4147458248a8c6c35acaabe45d964fddfab8c0a7458f2791840b69c446df132fea635b37f508638d9afda23c64abed18937d6408e3fb857f7a1fd9be74dc0b4031758b7e277edb42ddff235da5c0125f60509de9baa953d1a13fe45ec06db5b2537c36746407d5eb90b97228deb627409fb4cf9a619619458ed6eabe966228071cf00b2b3eac5f1c84eafbc1b2f09b3f628ad1a0b9704aed3648712c7cba6dae18abd9eb083a8118009e660a236949494ed9af3b483fc53dbd486a3139630f8aade4d12f34ee03de8ce2beaf23f91a721f868a770a9dca565b62b25f7e9b97b1740261d7b01761978fb30b684c307408128d0a38830c74734813cc9cdd1f030996061dc76b94b01cdf2edb9b037ee313b906d0937bcf9e000020109c186b7eef9b23eea916d93f290991da6ab02b25bc8dc3fa4ab1f3eea4ae1c991ef1ba649d62f9d5e925f55c1c6a6bf1bf0ceb400f6192a74a8d379cca02f6541f6088716cc2a855f65f8ec9ef6d496f00a7ac9f3690a78c5f6921f4f7ecda832ec18d8bc060da041fd5589f0f4d0aa83fb21b991914b53d9364ab9561a6eedd923134c5913f5bd38a3bdae753d01c5219a69c18b85194c1eccd566f3bdc59031430b4ab0268f4e989e17b4be1ce6f779b6e81282acced7f8e7de56bf7e2d73f684a66cf03ef4e7a3539346f321e01322e0e04f6e262acc1bf586508d76a77bf434cc0245cb01c5ef3b95e4e8929f2f2b0bbc13de4affe870e5762d67d2b71163b9278d38c36645515a1a6189dc5c28c6828e69fdc32f4a9124565adc52f8a251bb9a44e75796685f0ccf6689393f1cf8dbd1527110b9f6cd30a35aa017a51f24403e9201a9eb56835b31ed6e0904ee5edad24302762d55c81c664279d0a27e1fc6d9969e278dd7982f39c6e7910ec50579d8a416af27b39a7b3b3c7eada73706b6c7a1de9009db1e052b157024858d4989de52fddc27c09079c404a6a841c7c4bb16bc5daa3bf4f7086cd248e20574cd99da1d0889cf1070239f6ea5026e312ed8571f762abdd7babb6847be98ca6e7f17e64b76bea19b501ea8de1d0d5777c83df1bb527614df927ee196be6fc8b2acda54132f87433d05526dce1b9c9625a94afeb1d11fd48ab0ab3a31c064753b2692b3234c55b8371448674ce5b80cc76131bdd9364d16fa491cc060f8cb624975bee51b74233dac3f41c5791870f36ffc224b3cae7419742b3e26bfe151c9dd1f2f1f10055634259e43560b1ad55930080cf89a9e1547e4d71af5bc12377840fd33410a0fa70b0e43a35fcbd39499a5b536cbe5cb59985839f2f31d64c0567c9af437851ea7243677c7ff18c3b1ab6b0364eac449c81f81e14a1e786715cce1ae9f50f4d69c8f53812e126357437aa2fa2d75113e747a35da9925ba2d07ef82a06425395dcdd77cfef167b1a0526e70fbc40e5c73510eef05e404a15d7954b61869a82f927737adca4d8e1c4e2e827e195ac065bb98464d10fbb5429a67b097a82c0b211d0c494779eb4a52fccf117988c816a521667291ee37aa8339c142867d0cbc4f466cb28d5df46b14d42c7c9218505ec6edfa8421f0d442a24a9536a525d97770a1395627232c88b9788b69ffc272a727764dba085f4927acec48af5b64b0792b88804ea3f695d1a8463934784647d059c2d00d72b0480207f5d13cd4168d279d644753ef3d662be1e13882bad3d225a4fd9d84344547e0e9e52fd57f283f36d6cbcc36e1e0424a7514c49707ca3b5183b9698741baa624de349d3e8e97bd235b687ed0af2114c409fdba4ba483e72c2300efeb36c9ebcc46e1320b79890413a6b4f2067705e89a588d5ad05a32d5cde936bad8cfb89f83d45af8e37b6ff188a1856fa8b84caafcae58d4b3f6cbc785e9d07d616f5dbfd610b899e6133bcf452f65c768d7fbb2a76db2a195ca0611e36fd15a959da9d9bfd63c3e4685a2847ba4bc97aa9c736da28c1cac0e29660fbb7a1ec7bb81ce3f8ed5303935577596ec47cf31b1b2199aba1306a533ee56b11c3ca3fba76bece82d11068f5ad4007014d784b8772a91ec8ea0d926eaf65b8fa09b42145e4d53ebb762cf88bb8c84a35503043db1f88208bce55b7902a14a6fecb3994bc03c53ad33f306d00ed2b6144ff11ce46475f61e24275a13a9559742685292fc9df39c2f72c3a4cce33d593fe5b8835e30db39ae2ec1a8334cfbb1f1127bc553494f3213f727853fe627dd0b41e5da3d7acc5a264c9f712b838072861de4addacbd4e63cf5461f53cb3118e401fa8df0c4cc2e74ffc4d233de5695877377aa46ed2670387f9c8b9c22bd08fa24ea7b6ee2c2ebb42dc4cce8c6f047979fd5d035839106bd2d77dac65a73aaf2af9f71e0ff7b50947a4a81c3c249c5a68bce8fc3eb8295f5a87dbae2c6bdda66017574cc5f275d170693c12d7a5e025174ea211f280c7c6eb3256f94564a4decc5bcdc9020da9bd5f6f2ec08e0af6a2e07e3cf8dc764ddca8f39179a008f9098f43940389c0cf9e2d94a1fc2b6c2ac330c290383b66581a3dc5a436494412230e2a52cf0c51a2cec0797af4d79a0966d2a5d28b8100d45314c7cdcbac4dc93736e2db2ac68c3af47ed65fea35f5602ac50d6616e48fe1aa5ef655aa8c21fbf3c8bf0bdc251ab4afd48579499cf76d2ed0a1f0a4450fe9b4f28334a25ad8e0a5ee184448341db270635a2902c0c93fe9f95770648f87727fab2d3243e6fefbd7523723c21f33f7f47108f67a15ec8af01d04fe9345af89313ac8a75ad63cd6627b3b6686cac27ce0931fcf00846326d3f47d0e4fd03b26f92dd7050243af84c6d9940f32a8dc69fee9cdcc6097371581774528d178bfbd0ae21f018bb2703f7f37675d71b45b6e5a6e1b2f306772c7a18ede66b2656cfb6d5274a984461c5beb1fdae1cecee73e0eb8f1af1fd168a1ecfbfce60fdb54af9777311647d3bd9752cb9b7e0a88ddb977cc841f6b523b941705bffd515da2fca96feae9451121e1a1f6752327811b4e321c168961a926a0cd677a6c1ebc764c52f84dbcbb245379a71e6b2bba2d72604fb2564afdb4f5360df2ba078e73f7491ea18288bb82f0baab4ce003d38513dca94c121a8acf9ac7484f60051bf650b10aa6279da04f546a79316dad6d8da68508de41affbc29b38232d68d147b157e1ee371853ea775d78deecbcf246dd7fd42c69be328448e288240aa4143830941e6daf959fff77170fc8dc4e427d7ceb3b867e2a0be3a59d1f58e02cb2566596ebd2e67d4be252c0949a35a1201e6a8269b35a38bfc9ae3f7c7a4310eb03c644597471e295f6f6c5ea586bcc57b161c569ff98a7190c28fe736dbeda033d9eca6049bfd5f3944d36c5365135e68ea0e28ce036436b8cf0f73d16a0e4ce2290999c4db19d4a3c4d1f8e9d1c8b2c6e0f9e39c03f14cb013366f836bf990207989c6e47b8cb6c85c7608a9687f8ac0584fb595bb034072f45e34b2192820a875a7fd71221789cc737867def9e62174e98d2c9051da2ec3d7541f69f2be617a2c20b0b8f650a4446993255aec70a98ef8e8be793da44792f14713967897eea25e577415e30cb3fd5a4e15f3c90dc6b6996241ae186e52a70f15f355b54117cadcc5845531aa36126dc34e1b288911c700c973e0cf9929a1bc9f2951c5735d97d2bf3ea7220b01518ed6ab845ecd96d810497392f9763744547522280516f8e32b93a31a65ffbaf3f2904bd5bd54561dd22e461e53850119e347d0efae9a51bd7d19dbb1880a5fa5bf03116c3852c68ad8fb534ea6699a5aeb1027befa9788371d1caf01d690bdd89e292535afa74e54e532e78599a32d3569d5a04614acef0f4e540e62289ff96e3abc718e5494cc354d17b2792ca17654b015b886778a8c1fb36488aeadb40baed3d7243cd7210e8eed254878e3e249c2fcec728286b29b9d6ae4d696ad2f3e877394336d47bb5b49ba3ca242e3810a15d1c5d1106ab70a328077507fba40b22d6d71d3cfe704eb9b2e3d9a747f8f34ee7b515fb88f31fcd79efb75f1ed91dafc2c8d00b65c006a8c2a75727dfd73d3c85e22a99b566a47902c03679c1222ffae8d28fa49ebc4794e07414e288ea80918d0e1c175bd92f5e339346ce5dd2dbae32de2c3d2ba972d6dec28b5b4bfe68cb5b29bbba623dec736efa36e089b637ef67f6ba2084afc8ec5af32147fea2d26a01c0330506f2aade961f27cc8e9070c258e36a2798a691a51ca403b395acd340aa7e4be812af74f4dfbbd47b07224fc05adc013fe53ac3fc02b1edeb235f828b841348575694d8764db00a6e2b2533b4f96ab083d22a4e4e4f6451532674608afa345abdc8be2e576e10d127b413f87eca5cbd8404ef3e1ec708ddc5b07ecec32b3c7da3b2b302a73442e2a7e3070f56533af9e1b3670826cad9594ac0c5f83157f0cbd57c873cd21e553315a6ba36c9641e8b99b04a10839c151808041998f54a30086b109897927c4ef8bf7346e28b2fe8e4c100b50281386fd49acc222640833f66b139d598dd745bf445927a1379dce08bf1ddf528a2139987ba588976da28110242d0e2e9ad62d4e89cd5682ff91d91c3ca2aef24b3b7e55053bbd68a77b65af6f402483e98c7cfe2cae7aa9b61759c433aa7b007b02927ebddddf3025b3cdb18ddd9827f36898a224b13d03e9481df2d6743284a0ceb4ecda78fa0f8a5cc5c8c2af394ee7f16c190bc91743f66904c29e88cb213167189d78da682b92fe3d5dd859c7f027aa69e79e9553d591cf5e1ec4d7ebc31c8edadd18acf49a89613bbc9d622358cbc18a7a41642135431579eec9f4b4d7415ad63a1dfb47c3d2ad3a5660319fde1c99d5a278c0d964e6a3c64eee56b769f56156a04f51f85b61daeedf781a7e091a13f3cb6f94d1282a886628bdae38c080b5f1205c5dac25416bac0bbd7bfce6f7b7d1af73d9618f1499fcba7e4a40a39fa91d6b522b1ea310801e640de96d369aa7798d77d804437aee1851c28a1b5f02723e4227edfbfd7e321f8ac86844401d5c7c6a90faaa1d88a7a764dd664cb2cf8b403e3153e99ed244cdb855c0126c503caa887929a9763d0123ee630114441ef804acae7423e6652039fc9bd0db9233fef70410c0e2aeefbc8176b24c0bf57a462aa83e4889e0242443f8880241c47fd9bd87d70a1191c3d61bc968bf7b57666ffc7463ac0acb124385768ec361b51e8aba0974584a36368cffcfe9186ae1d67e959b0800c0b4c4f2613321127e58af2284f4319a2a4197b2703ada3585f6b20e799ff74a2c96e369928b3a1aae2c03af50507d943f6c8a5d8c0aa9f46abc579134eb61f66bc2ae2ecebcd7e140ada3a64044699f9a9a86d54a0c022af5c7156cce235b1552ad75f56565780594e8472f95e92bf7a9d358de59855ba58016b2e10d405b3db69f1fcfebcfa48476ae602f7c559e9cbbd59e4d892269456072e5cce597bfee7419a5a74261629e68f68f305cc8c1c5cb344df1c344a91cee55dc2a8c9f468de44e9414af30c1bd4a162c12ca2434de804d2cc6ce54d8a5ec9cb775082995e8c0658f73c36a50764d22c08b922bbe1777ae567e48b27b082ad80acf42d6b354cfd3cb5841a1a69034578b7f817dc98a3dfcbc57a327586d97e35ffadddc8d52bd87924d4a93db263fc0ff1cd10ee4e6a6bea142138afb624673b227665c73c8fb52c0de794a0dd1466242d36a8b40b34ff81c58aa513352fea7f38d9e4e99ca986149fbc2a2dde1e715b0136426341f7ce399a01d8392025c6087d5f78897f3596bb1a22a74efb2c4e257e46072ba62afb1582aec39f02eade7c852795dea4c99af92e3b99e6e01361e7a42c62befae9eb5ed6fe27ee829fad78010a72870c7a6bb1a2a412a855afac70f55e65096ae61f1be0e34dc5992ef8072aa2e81f043b0718adec684e797b69f416f907f9696029d89cda54de6179ae9d1f764cd902b72c4b853bbab476c5936eee2ae5278c6cfdbdbf281c0774f268fc785deb95d9832228e054cb5e1ffb3ce29a3dc65eaf8108199eb5054b6971657f0e1ac6bc70dc997892770c0f09cd938b9b61cb83e0402777b4190f2930da1c7dcb40a5021c1b44a3a8388cb356c18f4997a1d62eb2a35158ce1e1a0c190277d90ac801a25728307c8a6ac5277419dcb76b4b1f70bfcbe75acb26d2636d8fbff0537cdd96fd30a486d63ffdffd7714d234756977dcc3cda20e7c6f3aaf96e191a80c190bfd823643f59ba4e916dfd91869cb745e3f8c8e48ba1b2b7729af0047d98a423ab5926c4e4263327291b689bfe1453a523cad81710c0dc1b9697939c26cde490ddfa0ca16ca6ab7e145bb040118464bd47ceda0b5333f9d6c75160d392bfe2790a780bdfe17c1b0768b4339b3c322a0a0ce32f92eb33b7a7719d58bf751759a359c72b53a46e0887fbe6b4347471a46a9a2c29978e39c323564a6fb7810fead4834edf81d890c7a46c252b6b74015e91d9112fbf670d4dadc28a2284e0cec117a46f5d766a502ee3a7b6620fbfc38e390d3283fabd941dd407d9b9176de667ecb8e06c23f74f6b46c51c01c81fe49bc16c78ceddcf09812a43ec5e2859374b75a2c8c001965e1addeb29183f87bde42306fc70cf85f9810aa8a6670eb2bd4f67425e91775f720ba8f90a08b1de060a96af173bb1721102915449fa3f51aa8c6eae11011404165165adfd3ee964ae250e417e0aad70438d319943c8bb7c9f096d3abaf2d506def72f218d063f90cbd2b50d03c1d312e56798c659d02cb16d797cf35e3c83c39206561b9a3fee02d07e2a4ad5e495a95b5e413e4a62006d0c6a25d118366ce75560c4bc3834ab0e7d42160640e46d985ecc1d707c9e09e3c593c0a38f932e9871d043a3b982eed294bc52951e9de3d1e73f7d7041338e4930ff91387aa75f9eaabfdeba9d8ef631682b8adf0d1f43fd489c836d55708a881ddcea03eefb797aab19a4f9cf8e1308437c9b664f04b52ed6ffe44bb62a3b1a8831dc77f9ba250e976637c236499917e51caeff442e91306ea910cb83bd0141bba777cd517d43a5e4af26e554cb0e6c330b53388be616c8f188f6b137c8415e32a77f3aa09314bd13faebccbc3709f44d3b20030ffbc894a9e2d8ed8b2c3547e3c2511cf8b7126a03eafc321ebf5e0aac636759d88cd68d01657bc56d9565f5aacc269f8f6ec843e60a514782d969acdea9539a696200b0cdd15fc9fd74d5b5ff9f7a33d3ae61bae9eddf5f78ca8613e04c3dbc57de7ffbe21a6ff0b197d7d629eb8389bc3da650cd3bde745fff6debe1e1b6e989b7c6ff9512333b5306924b31c634571f895910404520411da6fd0c5bf6bad60d7656ba5cd0b83fc8d52f290d6e78c043e0b565904c5ec8b4fe8a1fce89c8d85b2f6defeed14a204415304afb900d4fb9138676061deb8e8fa0168c3eaa8cf10e9f31e135c092a33cfc070b8b9c37be3b293ce82a1df05e17c8598ac06cc2e2fa2dac048b7abf0b417448bc91a1a9dacd8c377bed25ad33428c433fee115c6b430ad14d48bd74ef7475909f08be6ee2afda9d82469dc5522bed23233c8c68a9763675644995ae52fe02906b411e46f95b4f9b95b6d8248f03aaff67abd221b70667c6ef66840a0d2c7f2108dc087240996e4cb1cfbda8f66b2a3243561a4acfd3100e39f348a561d7268e567476f3807349ae0b40fa431533c78d47ca0b997a28c5e6dc61c8d698e12cb29244a267af2a49e5c86a846be06f14535993874dae49ac18246af703468e19c92178c4c77939b39ab8731274ad6f5fcd58a09d8eeedff89ffd0bd87f132702c1889ea6676960f804bc04325fe9c99ef8e8338b17c0c8e7a1066847df8380e657e3727e52a0b76ba58d0b3e4173481f4a169221cc232877966e11f91dd093d974bd2822647e589294767f0b9eb00e4f106571e2909756d09bc6d545907f7342b6f7e2787ff7ea46becccb0531b64d8e3021d1046249063dbb508a4cac59a796f455363c02811a604d158f37bbd4bb0af17bcca57b6611d1d3206b579d24d7ef559dfb225db3f6eca36f94b8aa4a0655613eb42adfe6a60642c90085467b05a2e46a39b886b8be43736b082614ad6165885959136fc52145a76200149c6248f394e9156cd19de90e8d21382122a61935a2959c6a9fe61e386a706399d2152d917ea954a7a0c03c4beedcc957e783bf864e6098a7f27076be3d0e628e251a518b43d0957cc0f2c50768918f9923e605c42da2b91f1ef55fc0db3381eccabcb42749e3eee19166bd1a5ec48b5f7d0528ddd887bde648482ec4770c7816095376844a9faff8ea63a8670ca43d04b8295dba7af67d5e9a867759cf5336e362fa2c84d18f5b38b3ef4b76ac103cb483634f75c6d911cbce50426d3a06f96c38386f7cb7b5bf42f2959b3722e1370672d3bdcb5665150ecedf9e20ffb437cef33a210b2354dc8dd770e51808718f2dff93acfdc5031859d8d0d7742bacaf6668579fc119c607ebc951b0ead30455a1f10c969b4d26f9a80f0abb3c79df5086a0cd2c477f21ca786676bb4f603e5460ccefeb643fe7e5c77bc6021de2407080ee839f9aafe7edf2c084f937e92d5f9b425f85fd9bb8577894f5f40d08f18122ead7d238859766b17fafb47477c06b7405158e8b760de39956bfd58f61692d483a9304ce4406aa010140816b31900733e17c3fa5c53992666bd34dcf1c4b7a2a21d2a8fac9bb11f2288f1cf44185ad1aa2f61c5b50ff6571bf82454c4eb18dcce6907c0b31519e1ee21964f659a4373474b6166d215efb107b18ee4a3be1fa3ebeea41ee0b4620d5441bb7e2fe0fc951d187368ea4dace475c3585baf3487e3f891a61bab0dc1a85a258aef847d5c01465f4c4fc4340c3ffac60bd1e3fadea8db65f32c25495e0dc4d20d05eda74b4650012634d2b323513c0e58d9f5e50ac56afc36b2ef82d635bb40b5ab0035474de3273d7295e0b65e62b78f43f006c1c6f9445fe9dea1b9d7747dd6a16478e234717c53631bffc1a18892266bba3f0f40dcab21f335b20d4ec82b2850944e418018952c2ca50bf15cee053818e8f6d45c9b6373e7aef4c9530b124832ff479e950c121399ccbf2bbec2a203f0745443c9d75d10fac0495b8eba7134cf3a16c88c1f17540ab87f0391bbd069754d4365e8117ff6aed65c23e8b886d3414b139e4d47e6c0702fdc46c1dfd17099c74d945ad205eb1e66f7f5ba2fdc6b5144f998fe37612c5aa45e70ad2f63c2db6c4d00d4ecf2f34b1d309bca591c291ac5a63ec36d21f10d7f243649156a2efbb7d02d43d77ddb8594be510fc39f9d45101baeca3fa76eb94267fe0fc6712536a80b73474f45b2de38984750c7473bd3c2aa1aaed6d981ac5a6f62c700373d1b4c227df7c7f94aaf601f238e591fdb706bcc481f20b312a6a297b111d123b2e9a59ecbf759b4bb2bbc997c3d5ed4396384c210e7197c8930fcf76ed04268e0818bed30e12f0ae10794576051225b75fe91d6e2330e6f530e8305cf562f50cae563d054f7a831d92b88f1cf15b9f495ae67cf3d389bee60b632f73f6c8e919649e4cb332fac3b8878c0463dda4a60ff8fd5ca3919a0c1a8e00e06dc1ef5910fb42ebe9c85e578149cc171146c9e36ff9740a9fe2c69eda12221b0f9652c0d222ff4f0b2a5e79f69f657be3061674e474de7c74b89b5d8cb9bddfd9e94091a61887c2e6fdf6b2eb58d4ac76132238f6910d5dcf0e16f5b24b2c069039cf24583a1b59a1c6e2acdec12c846ec258fc75ff4c56554b73440b4de3772191eb862e250ac53db0e053344f6bfd00b0a01f404277d41efd4ff85038a270e0150afadfbd110271de77d21ba8b99a268bf2ce099e94fb9d11f9b619ef89f3492ac352af2c5a8fc2cbbb4998c3ffbefa69320374119e7761ab5a89796479368d77608650bc4d0efa2746456bdda9398d86b82e3844779a08058624900799ec18f0c1a59327a6f74f0f89aec95d717ff08bf5719d062ff9bcc3268b77690373bac08cfd9745dfc4dd94f25b21ec6e4cdb260e281f3ee25c85de038cf94bfd22bd435cdb984ea7b91f419eaada8c0fcd1461b5cc9a3cdfccfa3cf2c917ca2d0a5e350c6e0377693652d57ac6345f04bb9a91a9b3df696a71ca5ef0e7e538c472c679be8a5088e16b6447df0414e216a6db426e943ea81904e7caeac44c1e3f995233edf0f95e8af9a4cdefdd5dc674af8b4ad972bdedcdf95d547f7d8758f0b318c7b8c0e1fe687c22e5f36af50d48a5ce89e1a4a17163a38736390f79f72483a4fb2e75d0ea10ad1247e3e08cb37568f0715b45c3d540690ab03dcd974f90d83c92fa9846b8e2f3a3ea9afe1b6f809ceb7d0fae2db9ebf57e7c3f187aeb529b18dd2ad4c65aee4d6e0e44e373cf711de1783c584e2961222246707c7090b3fdce27c3c26cd4c7f1c42c2015ecb81ac6136e8449d26bfc97573b62e1cc7eb856c435797229951549cefa5fb659759885099b156b4df54ca227baf80bc2da5f406dde282956421da32465edd9117c76ecfb9405b062ab8a30bf502108d04bc260314dcacf8ec0df617fc09c19086be6b168331183a866473cd2fe33c8619d9925ffeec1c5f945657d4984e6c2e631426d1d6b4710b58791f668a2244e7bdc5e168e62f19a2e0b801faf6de229af1c1596908bb040167d22937fca123a845787851ca812874fb906960c551d339b839a6f762eeeb3960b09d898f0f2e818b3087c6dea41cb2348ac38e0948983c02cc222b9f7d390053f1d905e0f4e7b06ba42f2807334e9d7cdf69f199e3c7c45f1b6b5471b6ef1334d93968a1150862473c946a61607425ea2b7971a28d0b8f21a115e5fc6f82915b6ade19171eb534845fe2cdba8dc20b37cb0608220d3a71e141c62059452bee044e1a3b9ca15af70bd1a98b14ab357443ca92f06eedede8f8f14e7115a09ac3d04c421b1e69af0cc91b1350276a3b6d8e679730ac341237076a90cbaf92cf0b4257e40f9f11c7552f0fc7d5dc401d11bf2358445a6adf3270eb0cd71d8320fd431ea71bb3fa48b8b24b9943d33bd927216252e3c5ed0214da145f1647a5beed9f3b54db058526824cdf47fbdea0529b2199f1f8939ceaf0b0c606238b453e8586eacebdd2a06afdf9f1e160846104a3d11269203ac96e93a3173e2b38e3ed090c50f9a16cacfc7f3b82a7c27f5d9f47683dd52c868154932459c844131b06c7a953ca93b8a27024973174f13e753ec2c08b06891725625beb2bedd3d561fc5fb9071688b0993e221621074a646c1a46d7e59784e04b00db73a4113aaa8e8264fca1caa4e390fb6cc5ddb9e7479ce7f64ea932f6a9fca02b7b7fa13bb335fd9f1804a4d9f08f6ddb355d787972764729ed3922f58e33675e86663a1185d27a6e12d4974b0e159598fb090cba23d7f78d1d2299ce7fb8c8fb5c444be4a8c275d8d9247c5b87d3050a31e00bddcd27aa936cc349c5be45247c87a9998b1a10eb55bbaeaade39c228a8f399035a9851ac1e0d97349c64fe8525d7405fb8c90b90e0ee97a276147a417ee3eba35fdc7fcdb055fecd67db341448df53f1681cb8306c09cdead29ee45029a6d10de1aab2283f3fa3dda26581dec7755f24626b0381f388e9b60e723a2f3665ea8a9f4321bf3ee968b90e9428094035b8dda482d2ea064bb0104abc5177b04de544cb9e6c0ce415ecbd78d0d18ed0ff3e855123db223217148814bf3c1d8d0ffecdd5e6a1fe2ca9932619d58d12d57525492f804e8e9c13d0ab3d4f38ca5c61898cd9fa0cfc0f2f31a7e1312d7c587ec26519c553c3ff4d90cc2557ea575b7a915b89ecdae015563169bccae65816c676e3e88c52ae6e33aaccb755f004839a82f2f3838c1eb86f5c4e6e574e3a403ba17c0d660d266f1a65fecad9bd3cc380e7e586b9386717f1269b89e29a8d0a91a39dec598cf896bbd252ca0acb0cdcf23553a53c9f8e02f5916aa04c3da539bff6b0495dd7ba34b1375b242013a1a839ab89d6f10a8bd0ba9b8db0c9c6ee84804f296fde80e58bfc03df35ebe261d4a23842096d04c0432240b894601f8fabd4d2fb8b3d0008d3805b08174bf78c0ffe7f38a87ad4fc8733091e216c0cdf827c5a7cbd4fdc1c72872e69f1b5eb63d922e0364599d6d85f982fe0731e07821c81c9cd89dca548f63be25a4bb5f849df6891e76f7a9b57c11e4befebf862115fad70582321c28dcf2d897a0366026bc12dd2fce585dbfe743793422b53c495111083f8a94f053f34d1ab438dfbf6c5c6512382aa5439c8c57aaf8683dae648677d9ad6c2091d3b75ffa00b5e3a7db4abba9468ba36d498f32118a62e0db4598e0a4c1c4ceaca3aa57476df5ffcf2493fd121a004aeaa28e58906cdbebfa9aca194ccf6a5fdeebbb44f6906aeafbb23f5031e5004f3cc8389b6f5ca439990d2a238a599064362530b94ee2ad5d4de84ea41b100dc6e5f8f74ccb2f3bd9582afcedb77339331a16f36ac4b6c4f81f6d61e8064c7183e6d3c8597fde19883418cb4a4d306842f46d67ce3bedafadf6deac83abec854b78a52cf04b9bd1287dd8bf47c19196e1a546605e93720d7ad0f90c3eceea0c8de47fc95a6abe7a699abbf6f957029e9c250e9c652a0576dbbe46505968d857bef727fdf32d02ccd038c5301e0cae12c6d2ffda516b454e37062f1f83e64322ad82acb0d0336e3a0e7808c8d95f973ec520b61fd116adee145e960536d4cf32cbbc1c5f29671924db7949350afd114ac1fb22e4c84ec9d2348938eb9b01b5d9d706f840a0f9d0971bb1047dc6d60070874fecaec9221c4b89a521e1c18a087bc00d4d6e0b3e804fd8e038c21d32f2ae966029786c4c3a7c9f15fd134baacda222b4ad02a6cbbc484a117da36279b386ffd01ac63860adee817f968f83036c092e30939c84863384db7b9fb4a7433326db63d2cf3a8e28fd3696fb221177fcd5fcf1a11b4fa559ee8678f3c580a349ab0018df287ddb60dd5588696338f54353cc9168fe65801bca09e3d80b9fc0681f0c4c8aad23fc8e3e0eb214671be5a95e660bc444edb2b0f751a7ffbb7a0d9892dd6059dadc916f1dc3c45de544d6970a25751535122e59afcf08a898513415e80859fb58fdcd94283f7601dfee9f7e79d24d5d9ba6f06320d06cbd7dcb3ee41d011129463bb88b6b9def103ecc39a866772030794284361a49ae2e1ada374b8af2ea5aa8e0e73a43b476f7a15118f2d5f9f26792b57c95a30b90478d24a1a6fa986e6b8ab63e914f89c89561e8b57779d3fbad5782b728501c99ac9c3d4c0dc9b35f42adba8f54195dab859f7ee68212597ddc21d7582915fff3a2eafafd7495e4b972793b3a36720131b03b17de64e522296ac802cfb3477eaeea615106132ce4e2e5788bad9240feca24eaa7b6eb66310e2ffe0e979f117e6c9d1566c063490b567ad9fdbc0ee5d1f96bb8db2f60caac29ac5cf6ca98503aacf4925ff3cfa436eccbfd895bd58c5fa5b34c0efb83f625027c72a1542ec62bb2aade7487adaa6581a73c74df832b6df9bb1fe832f4f7f03ffa6936b9a0acff6b2c3768b781225ca6e0983cb75c10ac2abb2e8c421ddb0dbfb965f99c7703d0ac47f7e4e8bdaa50a41dbe7babf8d21ae4ee51e8ac0bfc30a7d9627ec4dcd0bfb63d304dc03bef2d72c45a82b1d956440c3966eb2d22b12765962745661f656a1b9933ec5a5ebf6e08c94f0125bd5152a22c83b9ef147193ba2807ceeb5aac427d3e4e75c2b70374be5fc50c8247a98b20c00fdb3d53a722735128e6ee06be98cbce7ca38da8c512f1ee03787ec2c5430ab3325dbb2065d3d1f5489b446147e25e6a4fcb3279c001a8ef385f16349be93fb604901a5c3c332cffac341a00aab19db6c9d6e6d36298bd40bad8a84f80add6fb4a8972c0b1df317d1c8bd0635c9e4472997", + "0x02f65546365f449dbedb4d15903f8d2af483cbcc493fa0a9a6d1d982e0a353b81d20fe781245e513126d1f941ef3f17dcf3ee84b5a026981c833b726fd4ec0e179f891e14fcaab8c96e1f21a9f2a86efcfeb8ef4aab91c7baa37d5905d09b3eb4a8f3bdd149d533021ede698c7e59d0ed3a5f9b1c55998e6dd94111de984a50bbaca72956ebce5e79b8ce29ed039ecf4ec48e31459d20f6d434925144cdd0dff65b1de59cd3094b88294e5f9f6fdd6b8e3e42234b6ce1cea958fdfcd748cf0d5db8425688554243d688f6cb8fb87e390b0ff52395506b5e2df2559da156f0c8d22acb5424fac294a72ec018ca4784eac04a82e814e1d6af9ffe3d9da26d9d26a326ed10ec54f9370db7d56c139982075c0578ec2e014958929a26a5061ba9d86767c6771e9e14d406f477b3a09c352687ca62e62ed4b4f65656f4dabc7d2d59d514d82099e19fce2109d16f0e4e5d2f001ccaaf47b0f5b8c1018d6531af7fa5e974658f62dda07e53591ae7f9f0a7cbacff254f334bb5d9457fc5c3a6265c09e10b846cec2db8dc966b36236947453c2985ad6d3e7690d65bf3646b96929af7ff8a5410bede3e553c11eafd81fcd9c01c34ac105053634dda01257393f91007182638238228ec94778d81221226097f1ead47ed4240aabefa5d2d315b6b1a20d50fd7e1c39a45bbf517eb3908168f64d5c6742cf8001aec94dc71fb3e6fa9850fd7374b1ee06921c244558b6a76c666c9c2fed2375582c9e6db5d997abdc2a4893c60dfe6226c4096147568100abb137e04c0b4d06edf5c3ac8cae9d227b926d15cdf1c6980a60f38723488f7d96555d93d2548e594fe8ee066e5cfc30731d0bf7e241a1f9eb07e3aeeaaaa413639b84d39a5cfe39627d6e4a02a006fbaef1a6a0615325d15b9aaafe5ebaa93ca28576f3e85647938b5d869c2006ee6e4ae83cefea2de0cffce6db3682269674ef24f6fadb21dcf974d727f3c4dbc7b987302eb383982989cb112026747cafbdac25a923b1f919225c5f8d9c56b65acfd3ac31327ebf33f6f6e61f35a15c5f1bcfa8d85bd682b268f3777bb53e4ef1e7da3b3ca334bd80f248a154dc40d8af19bbb902c7cc13c548d2a634b3cea58cfcac5f4cb4938f69bd1ee5c62824902d4331f32c3bdb6841e6755680dd76b6544df2f440047544897cf1f1f73cd46e88aa4a25a9c3902b8986d1c77ece4c1e14dd2fec66aac966aeb76e4cefcd0018cd63850e851e17f8c8146f7566f7e187e0f41b3736ac94f66bd92063ada43e677a08e1792e3e55ca2c9d1f8ab11a6ac6ce9c025cca89b57582b4a7ef1120169807350b54edc9e1fce6d43b4db4d031e0b6253a61ffb082d320fa80169bb161f1a80c9c89b59bc543fc8e74a60f04658199a1a702c00634416cc56087405efc0d42b262c07a420e4dea46331bf57625912d685363fe651d39d5101a201440c01c7ecfc13da08030f1899a8ae7bb3af1e279960dad0417b9427f3b17d43f05d5b1f7121c8c57cd3a1d01cbb614d936593e24882250475f823d688b62da6e6e4e0333ab50b1c0d3d7e033412eafe6a707374c631fd5a6f09f3c0ba73e64aed11aabeed0470867f0204ae705427e089c168f5d8da6721b745e3df21c4f5e58974148f8388f0f46b740f9b3464edfa67ab61d433254d918067b4209da50fea8bf719943a306bfd96fe595f9d57aa62a762474c8c0b2e794b83d9e8cb6621f3659e0ea7b509c36de9283903fa80b271f1ef1bac56b3f38800e64751be6ddae9d0c77f1a88419d84a5068d9d25a41c5e1d19681e6aa7ebbab81dbc4ce88beab6692526dc90aff1dc50a9c77fba9c9b3d042607a79b820d08afe4b74341b9c7a3e36912d77ae71c13fd79429d8f7bfbebcf99e5cbc14368bfd64723fb5033290725c714fc1c13601bb02b979c9cb3d463cd2316784017422530a4b803b0978b4c4fabfd26a98c01b2389b1f0584d7bca5f7b5b3df90789aa00360c24e8d94a607e1797dda40d4b4e1aa08c4fb4cd7fab32fae8175570819b1ca6f0544283a4f7f5536c492dfc07eb132cb0fb273c62fe6426a88442cc3bcd8b0bd2a295fb64e28e5f6f5373c75b5886499c067fb1199a75292e2e7d6dedddf08a93b42199aac59b80388a05d3290b22c57d7bd2e5ddbdb504ee65d0ecb634db395ccc559aba5f7010c752150931ceeba290dc1cb717f3890b9f6a6ba2481267a8a1a8919d79c85efdcf9e4d5678e8d09852fad9aae10c5e65f3a4c83097617c55028ccc26741852495cae932bcbf4cb90858e16621867dc8d9e5412f79f3a1e36f075121e77b83688b7f689fd457cf92a0245962bfbc61ad4ab6704a13d49c9342bd6fe51b8db6665ae88d6c6f2a50b385a1c22725c7f99dc2476c8960c8ab3aa0b453bee8ee6df1d1d903f82758d64414b48a44962ba231e081c2e885f0fdcea9c0a900bbcc31b02cec6a9b3c812bfff000072e7d60ada658f2befe843c03db8877e431f436a07f9a7f4e5de0935b6e127e2062609a7f251c671646e964324cdcc8a5c86d215b6fc2cd7030c564aab8acfd880043def04d670072d94278996554fdbdb01bcf31e9a480a924ab6a683501da75e22ac2108ba4168cf1cf0a206712f8426337d4669726ecccb291c8476bece8a5e48165e871a61ca488655e0fab6f428ac25d84109bb08b8363e6e3dac128c9bdddfe15aefe54270d49b7e5d30ad88ee49c27b2136bf36cc9ba3a42ec0bf0ad2c375cc6d445fcdeef1e5b778cb5101c20a5c3c3c105cdb5e9875f5cb4eecffe0db3d2bca01a0cfa1d634e8df86943bbeac25dc152482fbd13c5411c299f4e249718cbb165d13c8c8031a152876da45bac2b763b1d5b76c2650e66f31f4e57f57325d03bdabf8fa05b070f720dd7b9a4a608d0aa6a596d3c5d853ac5619015ae89ece419431e2d83910cf9f56d1462abffd87afb82f4bf21d7ccaf131c83fde32c0a1efc93239b5f450182b73d7f936e8a86ae1fb381947e71ffb77fffeca65ed80bccf29bdb8ccf83eed867272cafdaba65e77b821d4fa30f99c0f93f9810884c0a98f273ff09b86323546daa6e131b7606eb9a095671f8cdee5bee8a5763f462717f84badc4856dce9c8567c8db46d2d90c191063503ef043136e7c9a6f57b6d457ade7a8ebc91a8910e0e484498ba5ea8a7959f81f3733c0e8a33aba68b3643cdf7f2dd572cb20c345731a032f13f637a1086624fb6d2e5d29521c9a0fdf00e9cb4c164a37a7f06332f409198572a52aeea6265e1c4aeb3c1fb2bf6c47718a68576eb0de6f1ac09292d3e810b947fe3070e099045204714f173190b0a6becb5766bcbcd620b9d52664728a302c9617380c7568bf7dc50deee26c4f1df65b885efe1cbb59a874b5d76c662c3bb0f0589b09715a661215353255401156b77009f1caa4c8fb3472e70ab0ced671107469bf94d5269c9d974dc7cadffcb49cd9f1d69747f18a4a31535afbb7c22a8891132d3dd15f97391d08c89e05651e0a1b84cad718d745400269935d9178f449a9e74779887d6a1a001af1b12e09299c23c4fe211cd19ac2cc93fca8b0985df774a7ab1e6e497a03d37414e9e69111a1de1efeafa5e3905026ad23f5e67fe62a42c4d2e92b2cb8d05f5541af259adf9c96811ede4a3406bdb86d551d253a56f0fc79e7fb1a20a4eef5c38670bad7dac3270bbbb162db01b1f81323413075a8490a5188584c4a10de08608f1dc934ef8202c17e4f163571282cbb084366650eaaf210d867217c1eb61e9196ab56ece6f5fdf14e810114cbf1c01c5c4a92ce087bdc6d6875741ff69f0e776094e5fb7171fa30cf3563773d30f3b52842d1a27599d6fa6d32514f3f588f33ef55227ccafb53110cfddda63cddc38b835a86e987d5f22a33313d1f86b11567a9ee9fb265cf240f9591c8d584433f072e845fe00472306bef6c1053471103fb8665a4ee89db574d31490eb0e18113a414f86988cdab369ffebf5d098ef12393a2430583d1418b1366a39f72590c776b53b13611b02bdf8af4696b1ab85f7e403f15146f9bd9c23539c37271ab2b5f75efee0ed4b89390f22e8ebb2d2d7c704febec9a882aaceacff4ee132d6c7a06ea61b338d1bef7687c58b724c892fe1e4beadee838bc7a29ff340ec6596b68c33d66454be1b361389cc54f7ad44daf33907983ee1e303503833331337a7ab92ea13ab2930c554d4b14b428c568f0eceb08d4786a28f2844b70180aadef1c049adfa64789ba332b05d53cf50bca882677ec12df25f4b841e85f126ffda12435d625ab1752abb4e14a4537cdabf0a465a59b2add408f52fb63c31bd9c6a0c00d4a6bad7b57ed8d46bd3d64af400f44c0e5f44b1b8fdf297550499ee774600d9d5877598dea4081a8c340f6f81ddedde694b9e346044d6725797b98dbbc74c8cf17bd2cabf89b8c4766b9f3ee56ad1d989bde4a90307c8fb6e500851baeea63dd5687d4facfbf8ed8f84aff39577fed2c5de2fb2ccd2b4b86ac2d06b152a457d8f42e1ae1f3126a02957bc9640baef30cf681cad55887932995ca43ccdf5739228755168a013104e46443ce6199dcb335ca672c48c480d6e48a3efc3d7614d6f44f5ec964a4e21c8dbd4a0802a9371ab963ad1ac52e03c732df8385fb726e42d9849f04a39a6fdb8309e1f2813c46563da14a7592b21075435c935d9f4fb59831e505c5bfc97c1d3d83f68af918cd907b34cc1a78411dfa78272f75e912d5e6afa024bdf162e806a9bfa2feeabe8636c170eb174491387ee87337133951c59fdc8debd1b917560ea7080262b9f2b1477169e16b4718d99adf04f30916bda7be92b07dba5a5e5dc68b87730f2dd5b85a7f608fdfd7195a285980f5faab47f8ab8110e2c85cc68bef9f3f8250f38b72c6f684d656ccc27e538b918d9145d170dfaddf881e0a5dadf39ed8028c1c7ac1b67301b9d403568c705bdbe4eed669822bedf0de34f2210dc73b39307d9a0890c4a85a1e24df68cd61e3ba3bfe752186996e7e69af688b9f5098f1d0e6c6fe6d08db1d55b8c32f908ff2d9ea0adc6807c02f4024e2021b49e6cf75afccdd6a508564dfabe199daf15f8a9114bde901ca8683d21b541d02b31e6d28ef7c7e1a36373289bbe34e0109d5631c30951d806d5e926c7ecb57d65f36f234089a2da3b20747f93cd4532041786799d8192059d00bd7e69c1d1356f289523a74e5d4faa16838f0836a1e25f90134de892e3b859449a3119612f83cd83377c555c23da0865bae4ff910a70ab73c9d193575dcaf67ac995ba6297228cbafbc9ba4469953543ae7a82e9beb85827b2946d72f16f8f06830c855f0308cd98273d5a838fc5ea9ac351b65fc6dc2389b936c7bd21e4186d43436feeba4b6e94a61c8ce85de6eb8d27e82a13bb02eebee48b65259cf120bbc46f663ca86e5e8443dc21d979bfa64d5baf5a7abbe589ba7ec4fcc81270a9bf657b15aab516a184d3493db66f43c54b97995781ea4dae53fd51bd738c8d9e1eb319fb0dac5de2a9968e826628dbcf4885aaa2765f3566e348e34b7eb78da4220ee0cda3e636923f06c7692f06d64bea795132bee41851eda563f19eca12b323b7f331716f41129f0caf30af3802c2d67720577bda64e8a739f8e4dc3d1636166265e0e590326c0067de391aa185238c4d017044b40fa0abf8f14d5233bd1a156fc60143f5ead1b1c772f973e6820488a9fa4980daf6963178225aa23354a9ec96c5f9ded99ee78961c93fb890849ecf66676ef989965ffe8860aef8cb88dcec5b6e28f518a03b746c5d505ed74ccd45fbec6953f27fa1faedd63ec5de33346746d40747ece7d9c033fd5d4a18d72cf4ad48c1a1a86e386dc7f5b8904792e41fef950bab4431b7d354960187816d3cbddeb1b692e680a732f95a7a77c5ed98f7216768f5d8c8a315819e11aec38ee278bd811693380100081ff5c0d3c1d9b445953f1fedf913f9385d8d76544fe54c76484953d1609ed3af6cf91c6c165154546948a5630fc57ee6e21258bc0dae1b68e6ee5bdf740997d99cccf28b287e5a06d91860960bc8f1bc88624ddea1e015fe0263601d2e5cce39ef056e2a3faf4cff655ed8b418645340b0b971fce848986e1d3e01757bfcaea76ea2fbf25d8593a8ebf20e0684f8f12a8a95d7b27a724a8f6aee14be3153d8e839d0e0e105ec7ab7e04c3d06ed35e0f27cc033fac87475cbe85a6828e352274bc9f04cfe7708e946e2bed106212b6b082d619362209bbd957392d9a81f0c8f9cebb0316f5122e3ab78fb5bcbecdeb39009a5fa15875b4ce884072dbb51cdd334f70304bb1f073392e6106f4190d00501be1be1907f67d147f242fdc2d1184335f6f04335dd72cfc2324c489ec9d0024ade915e8361eafff3801e969882d8922ca2041e8e13965044c2f44018d8b7dd553e0d19b225ff54e750b4f5887509a08f11eb2319bae392f3e2f135476ab0dff426d59ea66936cfa6906e94cc560944b0fb6bfdd4c6d375142a20b3a6e14e39e12284721f774876567cc15e25ec7df3c4d6dd10d50d74cce215cbcedfaa06fcdd51d74b5862488b5fbcb59bbc4f0dc45cf77809bf8ed490fcd061fa7dd7019f4be4ed2b800a7884e2084fd6445cd608570409a014ed5f0f6bc9a9e46f466ff75db2e1741356513b9790dfc181f5441f01fe7f272765996b81ae96deaf9aacdfcfc2636091ca94b72b89041c312fdf146e7be07099e6752b2e2152e681b26a2dbba13abd7ea24a668b7ca39df824630727bcc7134b792c02c6917e5e4390a013a92c69473c56a31270b8dae08222fc018d64b28d92c8f5022e23a44050348d9f88f839f32fc736ef1523ef65916bf3880c02a93c081b92670cf9e3e70bb1999839b83bf69a51cb951c35772f13f7de00a688b6d4be48e8c1283b6ef9db57652ff6d72bb4adda440dc0fe65d3802f799e40c46788df030f14e35cad12cf49fef897df186f81e2f9028100decc4883ee0b09b65fc3c36e579ed887644376498777ba8156ddcf846a7433a80b6f10168d34b8ba61d209b9822e4b929636371a762db38e60a86d555a21c530a7c84b20d55f0a7fcfce15d556e151da72ba772d8fe7bece119a0b12cf3ad83082ffe16cb34558d0eab7950d1a7040a88f4fa9379e46d0a770ac45e7f29e557ec536e80c36c9371b7ea8cdcdfb1a1c1b633746e9e7abd328c6e3662664b8b0abbafe3bb196ee78a84c37887fc678e67f39482759e8bac81f833d695debdafe79046d45c777d9fca39e4e9f6c48e7fad516049bd94e9d9d309afc87045bd577d17aa16348a1fc9df4dd52eea7a549b62b8304f63df220975ff74ac44e26574c81298465684956f7469fbad378561f7b263fafd0fa2467c478f065dcb5b4c618ad8e8aed599697d60ec6929a1ed7898856361ad9c44b9117e614a91183ca66d79d1cd12fd820b931d6a85ba3ce2a895111b6031e7f218985792d7de617702320dfb5ff069fd7c641f2876af43350b4175c23d274118320ae63310ec16df91b43d687e16de4a0e70d4a26ab453dd1578d4e4d47ab6ec03a5d0c70bdb72abff9daabefca701af2a20fb06aaf291747b7d45e129de9be3d4092cc9513707fad90046b521e697f634aaa7b6760fabb89bfe9d6d512d733a57def72464f0bf498a75cc9d755cdaea733ccfcac0345e0a8426040ea7f8386edd9c8db9192b87fedd8c0ad5e047c7de0e4d6d8ca88d1cf27fe001a153af9bc49e8650ddc8f3fee11edb2d551a5331251a1c60fad0e0499939acbad6232472c20bea3ad8411bbe9dbb1d26256602489bb3bae9478232d64d6aa5ceafae6604b4322f796799c81c44803d69e3a368211a2f295b5a9c983b011ba16705cc2a5f28345c1f3ac389e4c85e2f4342adff8606535ecf4d59aa66ca7482e7035b38f772c7032a77fcec2683c7f5388504bee8c2a44904efdf35b3632129b1a9589d5729cfcf673506ed14b09144ec08d3c3e239c5225043a625f2aa3b9b8f4a469c72a8fd199d0230baf0ef73895bb837393356dd9769ffa3bf6021d04c510ee090728e89442f5e32aa1ac50c5b5095e537578b1aad390e55a8946deda647712345953ef2c4e93dd958c9197b904c3712da464e3b5f360e8c53a3db44307dc2a570b160d412fb897e4334b986834c46b4c8f1982b5bd5d314cd36d65af99ea53a5c835eceec1b9e5469d7d3583f430112e32e64b15c7ee22603d572472ec892eae3c2e874a5efcd80bafd7cc49d4bb89fd9ca36290605f7a7fc59e506f0985339515270576a10d90560ef2d1f9527522ed6429152431a7f3ea588085ad7438abcc78aaf14b7e67c7e26f840a938cdc8698b81802c89551f3419a1da36c38729023ec81e7f665fe3a795f977862d6fa8a745a60ee2846e2b289b1efdc8d4ddf7c63cdc7ed113d02ebc7e63764696a49305d776cec60b002f929d1a3702bb7d127ddefb51f3bdddf29c0b3d44fdb612bfd7789e53635eb56a148a55f3baaf3c6822c9125ecdde05b6cd985fceebd3407567fc44b99110134e9e3091bd62c8b53c671c2231ae687e793ee42364b80c0d9401e5da1baa2825025f08bcca407c9ca8248e7798be5b7d2ae65a893a37368f0c5545301abf473ce087ac676e44829415232f162786e59c2f2d8f4ee9c2f41464217a0d5deaec8bf7de3e28a365686cc430929fb57f3cfddf272289eb24994836351c8e0ba925ec89219ac58995862248884f69ddbda9f908a1a90a220e8282adbcc36f52483d398e367e9ae03e2fae0a871e307e9f72c269f45c47511f04bb0de0765fe4613dcc303120198f563f21c4b3ff063c9494f139b99282a1811a912cb2dd117568514f4d23c82f21fc6f58071531b6fcf0843c9f3c59bc1e0f6260f16e959b3e445fc1f9bf663343aa0b1bb5d7e6ba6cd466b937ccb33a380b216fdc093d107dff66d4f9cd4c0948f7e83c8745027e781b69ca93d04690436b5dd37e0c15e8f3827bf2486a6e84a5e5cc0f880b4125d6653ea6b8b77cb1f7ae43ccfcc44c0d6462661d961adc4d75c4963397d09e977c2ae1a09daf6d00f04860f390c456bb1bb9488dc4af5b3bf59fd79eea1be3ea24dc15ccaf3014372f976dd708aede8b6316cb6a69f84aaa0942b78b868b9575cf1d5d43505898be976bb84845543a260f7aae4150433650b6c248cfc75ad22d3f07487b5313bc5171245dddbe287007f360d0d0f8b1ccf5a6a8b003df38b9d27b7960388218b2bfe854dff9faf92cc268e1f3ac125b1cbca799bed74f6f709b4f83176619b3e9438efdddf8190243e7ccd7e1c3073d40df2c9bdcc86f58f6cbc9d56be2485d992ed654e6e24c458c800023b22d7000ea64cae27586ec253b9dbd483a77b42a1289971fa78559404aa9e8f04fe29c8a71c8bc36374044f73c5b426f6aa6f60226f88f9906a018e75c58ee1a8bd90d60548160deca2a4c402079333c69a21aac2a5edeeddc46f8f2eae1809248d4fbd64e34b822f298ab7f7ea0b0b6a3c822a563a5873f559c7b81550f8edda38dcf19797aea5e1e215c45656e9abef33781d0dcaaf2413772b50291ed0da3135ba9f9116dc1a0eb693089bfa51ae130a9a1eeff786d619b75d1773d9b7647e352dc90e18f29d91e624951231c1a3d57845de86ee0a67bcb108c011871479993e86cb55d47b69c09dba1a83d8bca77f64887e9ec0432285246b8be9fd8818df48e973bfac21e7475b681e556be1dc1dac4634b60a30a917a66bbfa0706280c0a5849084f27babc781b0a40a94849e821402a4f37ad09dbc2a60dacd193c7cc0dbba6f3fdce0a19d76fafb8830e4b802eba89a8b9546f1e0351bd42a6afe94220a1847b82ac2e71cf25b94e737061142b8f1fd810cd61ef4a76edc64d21a19a7a99ee4555326d8379c8c286ecd48d6c0f62025611d06676b7cf5147daf503c5339ea2730daab20415133a412fa219e259f33b8c0e73eb18c4bdb5976202a894ea2294c2698e0a51ec49e6e05e770ec4eea045a143f3c1b1d724745fe6c22eeae63e69806b4f27acac7d5bc10899bbcbcfa792129be99a59103c01783553b6f083a4fd4cede2e01156dc87fd921234a19de4061fdfc48fbf8f41629bf460646af5bfddac5fa7af9624b529864d03d06f15bc7a019d809d11ca6daf6219ffe30cbac7ce6b95693158155f54881febab8afc083afb444e2375996d98947734deed4cc144cfc9d1aafde8c3f0230b9022212c69882e514d650f1821ddc339f888ffe77cec984a177ec8c5eb397201435903af0717497d7e0c9e825bd33d5f10159d695322d96f9db934db873edcc0dfb876230e90fe58d5a49fa5e6e64899ef3f27af017b91cb078829a92463c1b7e06a1ad33b1053bfaa1d0c971a11b32141c2b0f6543d27bb66beb9cc5ee06d2545dddb32bda8b5fcd94b9dbef067b0644adfba197ce2a5c4585074742f3f61f3d444fbbc42dceaad8166a76e978e0998abdd01b3b999d16960d944de27e1e400831820578225c7a1b88b818f313f9a9951845981e3c5095b3917e4803d7af2da4b937db6c26fb94786387e1f9cc81faf9ca09999937cfb33ab6cd8c29a916a1af4330774cc9b257515d47389c98a5701d9849a393009242c335e0661c2019be2763db5c2a0fe8e8b6725d513817a6dec2684414ef76a2365e117d1e6357b153aca38d9f9a1e09249c5d759ea16a4ba7fda799dfe0ad2dec0f1e5cad9b902d637dc6e82656effb2d0c9fc3684ffa3d3c62a4113ce14287369fbbbf57a446db93e516ef20e8a09f0a92b87e768f72be7b5c23d9a277587f7740daf933f9ee843c1988c216f182534d356d08495d6806cd366d208641dbc0f4fb27a8763bd73b7476360533d536b8d1f8213af040dfc21f96be8709d22cb4ed29efb4437f0627ab26143bbcb1f67387429f0051b348d5bc62c6e8ce1cf6b693bc5b4510bfcdbcdf27ad530a4209a7aacbdec30fa1634a19d04d439957e8538609f4b55db705bd4b3527af456e5f94c2eeaef77fc11879d47988f081bc4b88bd4c60aba1a9431e8ad10d883ad666cd67907c5ebdaaf2f5c955d98d50e94d8cbe65c60dd446f02429ed55a7eb3d150b63d319d1e40f96bd89b64ee77a8ce6b6d9e575ed012c143ef1c30b09947c0f61ebafd8d6cc9018cdb625e0f7d17532b3326843ba878cac218cb304da6266222c07c030bd4b8db772b21be83f5e91586404cf2d15ecc321e999372e8a3a2c58c81bf31755ed9412609609b5151d0eb21fc01881d43b8884ae3f788fbe57763620df47e8b1858f527ff9fac884c50b151c205afc2f9da370e39a3cb4748724dc42a4698f09a93031b00594bb8eb3838a067206a870d37258631be634e73d4e347e81e0cac2224e638d56ff37688e9eb4e8ba0a2d50fd486a18fbcd4d830b3c17396f2e0ac399eb5c8dc7a19dcedbd6dceb9fd293a4933f5a3689ff76fd0b6a44592e3a841efd175a818708406853183445fcdbee8f97927a39ae584e29bf470aedf03ea9da088d8ca8c969096918b8f0e8a735f362a73450e93a4d6c65bd21511943f22595103b2b3edd4e2307e267b387d39581e0bcb3c22658381f0eb2505c9103ac5f293bbc0fd9eb71cff38a45a0613b4c5bee62511743092c0fcdf0222a10da85147022958d601c8122ea0a1606eefa3b7d7a0f4b06bd73775c937e8885a73f0021d468df480130fe070febaa49b82b9bb51c72873c205b0a9fb23405728061eb39bb108bccf5bddf27997f3126bdbe65ab5322a040a87d31978da63a435e06b38ce677977ae2b32d88344d266f24929ffb136b03225ed2443ec7a95321dbcf6e82615e79b9a2b5c1cca20c56df5d1f4ca986260bfcc865be24503a2fa710f5df6f7377d93253aad1010469eec706dab26dfd1540c0ba6e69137541d9934f55702faf85593759a5ba71a993b6c111fca2ba10cec4bc0362372b8456ad061e896a4c99397f1c272eadf30a6abe1bad4b5a01c7884981fa53d6185cb00c7624e6899664fa61ddb9ab36fa18d619e031a52eb325705313014fa4d9c29a4659ad1f8f7b4066d12a2ba6c6b3d004a35b59acb3be95a57f04fe4dc9dc0387b3ddd8b331efd40fe588bb8c1b7d94bd30950754034ecc22ef8ac896d74f9ba3caaf3008df76ada0f7821785ef0cf773a0e865d307d070ec971c9b28de611c0e17819e942e38e3c13fb82e801467b71afcebe8ede09ae3a8039ffbe1eca171a90377fcbdac5dc26ec11de62748dbf482247928e0f4b77975544f9846fdfe0e1ae77ca68e9c02c078828fb587b5a807ccb2951bfcc319b23d69036692c87810b57b794f56ca33ae2d7bbb453248b2657c12c7ec217af797ffa7e8bc4cb14d60a925be724446427ccee1f75410119205b2cad4eabb750146de47c9f9ab012ff871821c6028cdff6f046e1c114305f5ebfec762e018ab690e09b106ea07d7add2383ada59eee9e102d6fe9adb24745d5fbc2c73c9201dfb8a02d69c79252f9994c1f77ec852cacc135a395623184e8ff654db5c915bdb47b77cdcbcedcedd41e22da0d770e6b4cb851107c9e66cc6d58dd6cf5dd9e5fda6bf2dd637a8eeceb9a6af3eb1871110a8ba1c8b233c66aa0e287e2a8b3de146d3db3ff3618a3a29801976a5914b43ea231f8a609879093e2a29e383038376b594b508a40c69745f38ad75799a26522428643a5ce135112be204a4843909d6de915c51002f951630d3040a38c7026c2ffca846762e4acb814eb8eee7b924c2766bb72d328f855df4532fdcb311d04f6a02259fd181d816889134ac2444747fb0185b041425e4df0c19397b1edc0a3a59216121ca17351d33bad3ddda46eab79c45cececdb9cddd76c9b499155603c9069115e5372af06495a532d0ab2fbd39cdb4e5b8fd574ce4e9d5463a94679612965e580fe9030fd2f5ea10aea8a944b98890d3a081e7f80dfa40dbf34747d9d5434441cf44c66630001b931e29a138fa3e1719d6f8ea8b3a81adb45b03851dc09ab4888367e58e8dc18c0b5e59107a06aa9f1d2a318af9d42a813849c63cca52c2fecbb26291fba22955fbd6bea32670e002e51f208a850c07cd24d2df13b28206290c5fb6169d48ac443ef24100ce7dede6938beac7971074f75739915e012e2f379d380bdf79eb6e79cee413a3e3e39230863464a5f3ef8052186fcc96e40b69b4ecc5b9b1fdc41d4a2e75cd4297a33941506edf769e51fb23cacfc148f31ade99c775e1c4ae7b3150c2c58e15d390042bee1a28bfc2aef81f185a69d5e578f035336a4a57743ea8a97dfc31b221e34b0d601588d4d60afbeb12131b3ed2df766484b7e67b779d6f785b49cb7f2105777530e94d1eaa9afadad009cd8c126a479b1b3707daf47a9641bb87591fc526b6dce2b9823329664665d2b590f51635008ac8fc1e2191ec56c212f5f47a36054f0066cac30d803744bfc5575908a3f93d3b81a5da543ef11d166821c30fda347a05dce7ab86458e7d90915f05f4eac9af1393410778e4d8cba3a3b7b6555f7b0b359d099e0b106feeec721362af059c51af8775bfbf0d9291bf20fdd1eaaf73411258ea86b70655a7abdaeef27b9b267eea1e660f673026d84680047692e27bb870d739e7ea4d582cf38cc945867a545dc441eaecfb410429c798287e2c7dfa9cf057a30912539f16ec4dc7940a93f8ba6d522e5b16488ff1185be457d9115be7b23fe6d201db92a2cb719467ba4184e5facb685eecbd5a396f1db0b7c59e928a3211bf7bc8ddc990ba62706e0718be15b06435933404caae4a85d9ec1240bddd9dc9d6e18c9ee2410eeba4ca89cc187d78250438db2741155968e324da6ec35ffd78409c8f8b5ba752c4c1308a68d49e6a48f782a22ac6cd82cfe5539ccc36286b9105e8c95794f83c5dc4ce88515ffe755715e4c26121b6cdf0c99dc335d3f1fca64d410f15804345fcb5c021f4dd3e2614f95df68c7fd4ca9884ebbaebe84117ab75a3faef1727466b8e36ed240cc0bf724efbe257c473a8759f2d1c3997b2fdb123f7745565796887a94d6ef2f224b2dd754bcaf4e3f14f93d09602f8e9a0022a55030815412ea392303d83a776fb97a0ddc28ebf9100484978bc35e3cbaa72aa1aad5020cbe223013a0e16c4b03ea3a9a8fbbd453042333472d25f327c913f0aecaedbcd4ce46e81e51b3b143e1552e73ac64f61bb648129a14ae466a293d18ecd4f775757a7420c35af72bb43762f93955d1f3192c41b245d2bfe134228d677c27c04aaa5fae5c698be66dd8564ca454fe21028cde2ca974ac2f03240f1046aa9f502afb273a61bcdab700ce72bc1a96149c6be510360ee38ed61d6137be4697320b59e21dd8bd0cefafe15ebadfad76a0ed0cdd1318010b32df579576fa967cbbefef42f13f3cc53a01019c8cb18fdce7efd7cb4a2e21614b1c0cac21618f7b2188572f24dc74efa351c447d78a5a7450b4525b0ee214a1d8584965d12429fe3678d0ffd9b23bc8e7a68310e8258999040d1584c657032ad80452b8fc8183a7f438efb802c82b642caf0a9b3a04fcce1cb150dcd52c1b6b00d91e068d455fd4f1181bc21c0a256472d71a5d0d8b78c74f92423630f10d60480cd61bd6fda3ab3c3610ec0608cab9d865e847c73a25fe6af8c38eb6c88e1d537e5a059c30d9bef3c75dc79c43047ce4d99c42781c0edf157dbb4bb249d86d10cabbaf10dcaf3a43b8e64a17f27bcb3e29d374fedfa57fa110a8ca093f277d248cc25bf39b78a7a74162ca6b6021c79a0b1e619a2c3ce7e6c61c3f086e3d96e84868e03b07aa3998fcde3c23ffa790b56c81cffb548ce775493de1d2e0dfee16465cbdfb3d5eb2fa8c38d3634e0561a247f48711f732859672446ce57f5684735c80fd5e2ad4cf02e9a4de2680f6acd4a2e6dc250f2df0dec2feec2ff6ef07043e6ce9f6aaec4d5f052b07d5ab79599a20b50512ad620c60194ee0aff47bdba8edea89b8b7ad76d68c27d2c2db5200f89b364992c9188aaa54a9a19eebd01d292d78fa5896c142b42bc97847128644199634f804b17c8e2e4998298f3846c70377c98bf15df709ace1930e68a1e336c7cce9371e181eecb7c73a1c159a3ad697b144b6155dc1c30fbfdef750d575ca962e869c5a3673eb0845bf27cf728e8b752984dcc470b3d77e6c56b017ff1259c185b1933a3151a3d511eeb2ee0627b7ea88d6dde1fd0a7e6ede78e17e62d037d99e029f90ba75e1a1f8a0db96686e141c73be781a0a23b02da01bc9b666895bcc64855e6c0300a3438542c5ac38d0b63d21727d68e4ffa84634e4ef53af5e0de7673b6b6c0cf61c0c305737f3ba3e86bce05dd096e8c6f55f22d02ff66f31afc889980181ebbe54d924f48b8bfdaecb6a999e3c742c4016ff6cae0a5a6229907c14067c69d6a548926443ee35fd98cd019386169e505dadce53a250ce4332d12857619d76a05ba8cf8d00e9eac0797c8a891eae0c42af414a79a41648a47a5905ff7aab5be1731db3afff44a860532f7fc09e91cb74eb8df1bcfffc8e1ef6da8cc79459182ae8232f28a4378bcc2b70b82cf79f87036c61655dd2c53bc6dbe619c9ea824584937241b569e191f28ad876fd4bebdc2ab0101040923b83b5251262a127b54ef7b6f3e18e5c1c9e92fdfd1bc56f6b8ecad9753b8e8667072a132a81edec8a62f6744da8959e9a93a9956e6442708011f22c81b6314a18298da87886114dd6236956fa6960e554abdd68bd34530b45170195596c1d4db893192c19b615549b6578c7f15239fa4856bf0e9f4bea33b1fd8f220d8fb85374fd8caa5cf0757dda7b6799e03ae93c88490324166bf98e8c522784d13735f3b1557a703ef11b392beb897ff138861c968d13cdafca21f930d2c891d49e1519d6db5d91e859616b2681d49025b8589f16ab762cd0e4a4001d8c6fc49c4ca5865bd8896648b6e2eda01fa0cb3c8e50dfcc4e95eb0ef17f675617f8bbf9e6b54b39f25f08b3f0200cb6c4f38d2ed7718ae9fe57b7a39dd4a49c0055b8847b8152995a10d899e56a08a299121c32971761a9bbefc1e2d9c1616bdc8e21b1692ed5de4845f84e094d966c121a205765e8bb43a5dd3ec9c397ffcca6d2016d4e13e5fc80b6d0d951d15e63683324aea0dfff2801f7e8990ae20efd5abc84519383e41cde9d89dbd62d7c64f93a1a01f2db2d9138b47c89581cd6daec1e7f63839f0b951b6b9583d91c03f955c7d41b1cba565aaa923a7b9504d22b0ec6e563075de52e56e2259426fd753f08298ca45c211f376ab268cd146730ae691153b06bc0d2bdff05b17604064ca65d535d84dfcc432d4722cf3500f152fb3dd485b3d10685053fca74601f4e7576bd9dc7df064c0e64b37d3cae910d4f3a8297dee52e5686f0f594ee862521d02d56f42f9f89e9e24267990071ee1272a2fe37e55dfb60b116e8fa60640524b1a92b5e5c87aaa7b6dfd9fc7105b50bbacd02ddc2f0f14db693bbff530c00146221d0b5fbe1090692bde8cf675c903a59dba36fc5e2831e972dce5b129001819ff051111db6d39314db48b5c0fc610d3662ac0de027e2c02ccb18f02b73f1bf1832289db4904c27ee109bc3dc3fd5956b33a86e2834bef4a23a9b9df12fed75f229289d19ddfef165c03d70219e6dc5c7ecb5d4585c242cf8470a2bfdcb9e894680cddd89cd0a8fd4d135c8780b629b4c5b08ee4dc6119c8123bac0a97c21fca14b5f1fa3d35a972703c9c4ce63d72ab2ad41ff8be9a7c26418ffc7945b262783ebbbebeba8be3d6086a3e294e74be0e37612cab69f1fc31f937ea8212b4b22e0b2d5d64be72ef316f0a26340c845b57d80c6e61ac5dd1900782af3f72ad59da2622a618d31bb19f175a0cccac49611536da9b224694b55abc9e00782fc41552474bf92e2ebe45a2f7dd44130d6c6f1ec2b6d88e78e53b2979fe92770976058b8336dec5e84684c2279ad5df2eb778a0239fcb2997da8b5906ccd34364ee4cd23ab827c794bb7acb01934ff96b8d40805b2616e13a1321d36953d1089e2a37e1c5c0cbb8fdca3a6d2c95656258e5c409637b15553fa4acf7d5609afe5a9f66cd0ca47516116033a157eb625ac4a9e0e0ca018d0fd1fa3bf2cfc58760ac2e1f761d80d1793a3431d1cd3cecabd54b4fdf279856ad6cefc1b5e67a9677955078e62ed3d602c133e2a1b7c931eeba79336875e888e480a137503e541f5fbef89c05df4732b1881bfae5e01dda951f17f243c1460b2e2cc560260541e161be3559a4d2493e2a9ce90c7c0ce3efa0cbc36433a8156f1d54861918b9d8755a7ba827c249bef24126bfc423592201dbcada371da6dd9f677b83d2cf077d42732c1be6446c82082ebab146640ea346807d32fcb2a17f949c4beec03cf800cc39594f66e0ca7c623b0b53c567d64a7bf16fcfd796f913652d857c3b6bba167176acaaa9743c9cb2342f4b5d619cc9b7b1729a62c9dfacbe17659879c1cc7e34890a4a540aa31eeb36423348054c8d8e7b90642dae17cd8ac84836b5caee66a38aad502be77fe984a3fe7b99606cbb719b37adc4718211ad88d204db3005643409f55bb3dd3e358c0def43f28184fb4813d40965255711fb53e36d5faf670c4441b4627b0597675a8b3cae82c0667342f9494115a5feb1ad5e9455fb44890899f0de727f49b45793610f9c2f7649b64367bf3f6463043c2d6059dc71401509d38279beb6d9dc6b2b1affa5b6556194109b5e3a4917775e3b6ab3583500026575662fc7d5b580ef8ce2b9da5db163126de8cd35c5d17aa99f61b27a3317a48e549770096ae395c374884f9ef5c7124826f4d057f34a6e64b9d35a6a55376e4bc23662d54ef9f749eb09ffcf9a54a458279ca8ba732ef90dff70196363b4fa46a08f3dde2af60cb62d3c47f5a8d1664d55bd656be7170c1c8f927a8416236867d9324962a65447e74e21ef1c3a05f8edd2ecc4f4c5fdd65e24f770df83aae0286f3c5670c0d891fa6593f8ce44a421deb6c0986a7379b33388863b6ab1e0e83630fe466d4e65e5013c29922e5a2f0135b096e6bc844466a2c2d8023a21703285a12552ed6a6682bd0700674c86430ceb270df20daa62b66a35509c640770be0aa312e7465fa3f7f2bf340172d78dcfe1276c6d2d75cce021ff75cf03434facda75b4cae9ce5f2d80d1a6af233d95ffe9ba39025c9fb66cdf3397a56791e79ff7ec5cdc6a3807f5e3f7d85438dad3e699dbc2fb26f035c07022b8b1e5b11827335fa94e068de5c799edefc38eecd8c0eab8196927707d0789c695881e06de6708c22c92bfd72f150910c191a7112732ef1ef40fe7cf4141387dbd0fa3252c72ccbba56ca07241b153cc28dffa13eb2086246aaf678902e633704830aef341ec1a6d06bc4004aab18468bec1b3a801abb9614d50367f65ad4c0572a847bc53673c230fa0c264de5bb37e02e94cb1110707d78c500363586c216c51d70ca342f4a82a03b965c350227bb8730e8dfb80fdd2e7904f8556ad55c8ebedb7b25547cf5295e2a766f78aed449c831eb4a852311851e1f1075a81d58ca3a86fae749650382a6041b5f8e8aec101d554cb46d6e934d7e28883dbb69717a83647548f686677decce8fb257ab6d16f025af9923a6d1307932c4266177c0982a5fcc93844e5199c4ced0fc2d1929e9520d544bbf95dea84ad969abe43ada0e2a86e67b0f8152f1421030088b518c65cedd50a5b29880a160b78c761659c3ec048af25bb1b7d541b0e2c9598fc43b5929495987c721909b28f0ea598aafb29bbc423794d3dae452075809ff54567d0f7569174dcd36a66da1a7391fa1c9a3b68f27745f12ac3f85a1c93cd7e7df7210c63a14c9feef1afc89868186596bb972c3d8d1c3943fc27bd64f3acbf0ad249dbe1a308418fb5382f63b8b031b0b70c12b9862814a7b1b1b184b14a59d005cb27750ab438d1c6347eff55b0cad54a096c1cb32201c9bd35941e0dd79138d4d9c6482be1745a6f4d77cebc10a56a551fc597de97fbbb0a29a63737fd7c5fc1365843cc374d9048e1f2fd5f042ad905cde7bdbf88a6d1c178b5b319b28616afaa79370ec184f331cfbbd712e41035bddb765b75eefd7198cc0db89810093e89693f8f18ec0e445d21edbff8ea06482768c8f08f5fe9730708d68ae3541dffab424d2f6f9eaabe05769aec6c13c233363d7586852192ac2dbc8f516824ddd1810e4ea9edf3147bd47febe8ded2082d0595a1d943a417383778274fd1cb9ac30deb04e664df55729fec13c229dc598713ef69ef09ebf10f9b2dca3e3dc282d222a62eab4345edb87b710b7d7bb6fc25fa5f78d002ff66b014b87e50afd548943fe48eb5083f9f4cbfeca4e00a2c2f69a2581fcf078c3724b2094abf9715ff1db5edd8be5cb6d6b006c115b7631d738547bfdb40d9a1abfd95da052fb4df0f4a714209a857e0d6ac4b2494917026ae2747ac3be4a7fb0ea84ef8be0a135cac957477b4b22b147f0c700473a439ef2f015d155d7bcb5e0c57748392d3ce4c8ef11e82be1167839b650acaf7f61cfb5a2049ae8491ecb2b2bb2790f7064c07b0feceb7d379ccee133b732faa558fa24a245bf165a4e3ef1328898380a7480cea476566599540fbae6ec869b28168c1cb68e2cf169ceff469d2175d6aa0bdf71032f143e19c3fcb4e7efaf40470d76d36dcad1d11e44821062f9a0a7978c5ff6860ca5bc3ed159e66156b72db4b1ba8d8797759c0bfa5ab7795fc5d6f99f22cb4cf496591149125580cae71bfdfb0964e1c85757d25f72271bf749ee8baeca92aa46d0c1655cf3b9f7895b31a1e96db29be5a3454284c4f0dd394b2aeb697080af52aa15dc1ef42c67e6daebbffb0600b5a6b3edb29fb1b069efe0a21b42a7ae63dbdb002c080e0369c50a192eb8d871cf7c21b5bf8bde249ebbb40884f291a2249c33f53274a55e5320eb358727a61a0008abfc9247a589698fe8edc2f2066d72bf2212b82482345684a5cf8256deb980a2e3e522731526d5324dd54403c51bbd67178300bc57c7da94abbf6ed798bbdcd3b62c1dd684272ac2e8816fa7b76c4628a75e1e43dedbc685255d303ea28bbadbbabec2daaf2e732dcd408ca54bf5f78989505ba67a278ca1b0fd97a4988db22c53fa9e0e6a3009b63e275888d32f228962983f3577bbbac46d5f2327184cbdeca2bfd9a3de8b4c762a7f4621fc2075175d277d24cc6e23e25fd68468f7b0a2774fbddef0607825d9ecdb0e015187279995e6750c7888757f1a57660b94587cdc12a337efcc2c691d68911500d1c62d6654702b67682ca935c0b8e83a2f52cd5b1e24c2bd7762cbd66a879ab99202964c18c62517f24c763251c850235adfe9ed4cf3dd1db015966d66a35f0b79169b0b71cd45dfd9228eb749072d7572046abc2523caf6cea5fb9c7542a599f762c4d7a99d87e8ec6d4b9a902f00e72efc29a6ae932cd1d7b679f3b27df04be79c74da43e86f3e290014c5b5d625b23be0ebbe0e58a95ca9766d57df320ccb6a139eaf40063f517655b4b480ca3711e71806cb003e83e9bd27ac7e580b1b09e31defe93c740b75ed3994fbce00b4c8dd65aac815e179ef7b13ad745ffb5db8f3a3ad8a5ac79462b2c0c1bec234049bf7913962c7f37c8816469418aff387ce97f1a48cfb64f7b45b0d7638418b51d21324c87d5aa857f2fdb5379f62bf14084649fd5c4c87686cebb1e534c1d8bfbb059f70b091632a0ee0b80a112c481e6425e690599e58c96d57a3e4976962c528912250c42f2364e438e8b5c7daba98a45160565a922f2f00a20624d47f3455ed767f12384a42f01d73d703f33146b3d22fa5c425133676508258967626687b639110c3c06b857888983db5180f6e58b6d2f5a8f91f0593ef9cb1d49a6bf2dbe800eb2fc28698ee959274c18ee02c6e626f9dc30567ff9e504c293672a7d63d5d68378dd7b7680bddfa6f82006c5d83a7e151a4eeaf748a4af998a8c32ad6eda639c62e50d80316987b8d4dede4260d9d4070ab4d16d8f69b034240673df74c2e12311eafe0e70e25c0e0042a5365341f8387c92f1493fa633a18e2cd6c7d5060271b0c291bec4f86f5dc3e5e4948784c34e392935c3f77a5e4b262742a2d122fc3629b2b262ecce1da7dbc84eba11808380881ef85513ac95926f273baf4d08fd0554dd2c6ac5e006252086d45a04f799f55c8ac847e571d2a48b3f47154ebf9773b66718b7a01d2df0a433bf1eadf8a8d3bfca5f5650b4fd71febb445206eebcbc4f90f3eb25ae8cc6c54e70d5f616b2bbad8ac384bfcf41c864b85a874cb668536efe62697c7f815cef1bd85e3030ead1aec065be7dd05c9347acdb9f82e6ed05d35e61e8bf15efc792ddba40f35ac651488e9d19d545d24c91b05c4c7ad8e28a28e2f72c4039686a18cb5ff9db23feccf5505059e733ceb7a583a0b9c415145c6559b92edcbc380b9f394a9e51805507a24f8a8bb58c7d589068eeb1418ca162a5c319a186b2c0d681312bbd3e9035d5a0ed8e9073885b0a364b84732400dd29f8ab39db0bfb9c463629f281f5e80f099dcae6575a0e304c59480475f29b30d263e11cf525c7a67e61a00e9b00f855d35a6f5f610e2b25156d64466a6b85bee1872f46fb9b2201d9524ca6b7ab164e1c2021f4f9945a4d387d477d1e8f12363aca9349422158245004eeb5f34962e2804ce10617f34d2dd2d3c1c1733543372c13262b4dc531ad91cbb22cabfbc3be17365a19b998739c29f324f248911329568cc3f10e307865959f8826b2376a663417d1ef413f2384a5b35bc93c33bcf25a3f343e1b30e075230b4f3775f7ecf626c26c9c066e513bf6e60264c58d939da3519175dca5605685abbb19c918ed7b2f26355635e5a7382eb17e26e2896a7519ecb1b8866df89fb0176cb562304271d42b96bc37da2e436e3965996ad6dd2b07d70e1d78cb9c1579acea599fc35e9446070289945c45678b1f48a64203d764e0a81b0a567eb7f733c1d76c5f4758d9b7af29d872aec9d2494c7856172a5d56f5a5d02717452bb41ab6ccbedfb894665d0714e07442bf133d4a9f129350633159ab206f226040d9261300270b69d8bcd2850b420fe136f21018d86edc8a35bd67d201ffceb3733814b4dd0d9844a960b4721bbf657c495e300f5943d6c3c18cf84426230b67891790d29bc1f3259e8960ee544217994ca74f6ea7b2b0769bd9bdb811c807eb7acc3fa4da123c24dc36b4919a4d7a7efd4eb40b631b7cb279e65f21c4a7f62dbaea61d14308b1aa3af5f428f24ebe9d45f241530bf8d05d895ff17a220874a97e618f3a96ce67fd9f585a5857f91da1b7df773d4c417b3bf7e12acb283a841a04500bcc92c26212027a4586366ff7ee121047f89f0d7c1ecbb59ba448e6ee9dae10286629c622b6f96b63d94ffd22370a3076e748a1908e5b0ef10c11171b3b975e74d7ebcf11f5dda841175624e8d8c3fc6a619ebee552148aa234c0db7cad0df85ddb8dfcd66d74f46d8ef1b6204529583b973018037c16e874e4039e9d697a14747ad2e4c572b92568a66ab870aae2b0b44a3cda8423e952949608054036d623821da2323317a07faf2cd076cbe1be648fd57e5e709273164dd9081bcf32f6aa6e19e0ec1bfc75632f366176a3b7695716b19f39c0e133cd832f90efe90362953ff1e94f2a150eaa29a5838d57d9866bb062434974c12b2a04141ad81d7f0b033b7092ad96fba7185c889bb1396086fa6caa5f9f338d4150f3e461a7e114c36c1997f9e3139fd5fae467d6489341b26d577c3294d4ea3e9770f05c30a27c994d941918fea159b6aa1909feb51d8d3e97408f6bd37801b390f24ab4b02ee44ca2fd71cf00ac3d70fb6b8697ecb2a45783619fe4312303310d533b607b5a3a4784c3e2289e885270c4c1df93df1515c76d648e15d237dc70192c4cb846bfaf3651e180076aecff9e40fe03fbd8543d1eb35d0233f080a5ea0e38079ffb86405fc1af36da6335b595e4f51be860d636dc402d5b6337391370759b45feb9d8850caee4f725d21bf98065ec1c99599f4f852f038e2183ae41f529f7e5f6f7a049e02be5b05b269ae67ab096ac1db612ee7c77fe7c6dfb42aa123be8f46e5d0ef0af9f4818b120e613adf1e6236bb2ff347bc58e4f40d6c83611f647f1a5dd8c111aaa837d5bb35dfe17bfdccf790987f9dae319cf63d17597b6e43119618df87913287a2db42942891183db828250894f37c483aa19beb09923f7ef8a20d7d953f5558fd030e207250966159013b9be5fceb6a0470693aba3d4223ec9a6796188bf80ddc4dda18f40c999f9da107cadf0a228fff2e7e5f6c2a2cba1ee3042e3bbda464b172375e020907b13d67b0e2006b2efc5ebfc1ffb7ef36e06a05f807bd0b0a1438a70716696d8bb9c78dd5535b147f0280ceb397ba379ff4c6c2081c2f677a8fa16103a34722153b517b06c70597694474eee3591b4525d5d1ba30d83a096a56ac4137ebe3e2581ac300460b84eea58e5c9d775d3c4990aa8a2c1d339f2af5d403fa81ee2fb54bb3f10090cf722fcd40166fa91cf34428c58504b48ecdd359d48be415adfb8aa9fdf2654f2d0008e345fdba4843625f398930e5896a506e787b79bdfb5d0dd871c16408e402fbb1ca9cc4e533cdceb7966bf61569e6659858df5bdb8ff5995566db9430231e8344cc70a79de2748ab813fe584ed11478bfa323761c01fcd7008f91bda5d636a44a12c27425dd714dda0a0c4d22741d5d31282b0dacd3b3a69fb8f7c7d339b965232f9e371942879998d7c66e6db82f89a758d88ab45e9083bbf063466c7c6019f796e87ded436200115c02df7a39459ccac9dd980d4dfc471009f3980b45a1f2fc1fb37fc8a64867687e81dbcf45b4f5cfb71e95f71f7069e11c1d6ed72be430638626a93a4317a29aa652646f5f92371e7e9f0100a9d8b585025a11c03c90666becfa48ca8a90ffc9403c8025bde6e3d82106d23c924dc6bedbd5390a77e5a6335480653cfafaa07d3f39f2e8caac7d4ec6aab826d617a21e8b354b0b53a7a4342737fa02ab0fb77e970572aaa4a6d7873838d57c44084cd3386b3a8e37970bb4b1f81f3fc538fe2dc2bab9f89fff7aa264dc66c6001e34adce9a882bffbe9e49a1afe1530720143c3c7cfab8c0be4f33dc086439017dc71a7b0e06fb7e8be51c8da0bf1c418d80a807348ad34209f1a957c3190794b49820333b4f6af6b671b06c422379da948bcc285fdc1c153557902f863452d755da0a2dd535afa10308e71aa745044a163b0028ea17f35aabc18de1b0d45b3fda25b264f487412cc6356ed7734a7fa18a1119931ddc00e89a0a47918890c712dac8b21749e70337401de1c86991a9ff22689b7c9a0656ca7ace9183c88530ee9212e34960a247d6ca82c5757e80011a377ef8f8668c8fbf5c11f3a3c2dcab40be5baa41f8c1a313d164fc4984482ebb03989c9e0ab817b90f4c0dfe0f5f3fceb7c2970b65bcab699aa85e166366a140b9c6e10ebb5ea05e120b7547d103c52ef4d5bcf60481ee4ae5a5058ee0e2541cda33356798ded88a55895e537f932e4cc7a6dd15c5cd4a9b519b2ecbf8926953e909decef9f709cbcef0b99d4bc59ee87afe7cbeb50092339b55bfc8c6daceff6854deeec9d3b1e4da2a9fc310785716b5af280dafd7a65fa49331e5fcb40bcd28715773f3c8724b706a5d07d3e80ebc2e3e2f6205d0c16150f11167ed00b780e4ecb48eddb2a7aa21da1dced008d817ba5615df4d1849ec2d634ef522592b6d32e5a174f8eab861f017cc2423556c3699d1b6eb3246b6aaf18c471c89f488fec14976df5937dd02ef68e237eed14f7d2439fcb1584258b6c07cf7cc24542630ea965a8b69404ad4b3cecad8210bfa24c10e73a2511c5c224b9587da5cbf261488e3d9ba9d5ff8529b68c1fdc93ce9b62748e4efa2b86b73b6b05e7cd2d00b512d5cfbb147d905a9daca8741ef044793fabe390fd98a5d2058c607d0c995bda09e85453970d3753d6235c4630741906eac8ca03faccde416409d50552202b34fa2e03e1ec49b7f2490d49ac3f5f883cfb68cdbfd34ebed379355a76fdfba9abf1ec918b3900ee3a9b275eae89b797791207f268d300757d6b5d20ce7407922e688aa324dd030bfcb5a5999fcf90010655485df7455dd003c4650e9696b8841cea2e30cc4464f38bb7e0d8a4edf9d4c4e47f369ffb765c827e7abaf05a11fb9148af313f5ad34d3626c7923cf2a25bd23efae62bd3ef1d546da2d83af099b536a16ca6542f248cbd88b85d2969b5ebd1109984b0127b0d2be6ada02bf0bd5c915885554107fabd1eef1088f5c31cb8d1630b2486199d401a82796f47234221c6f86a7f1479b9a93a5c2e638011da72d87430b673a4ec3ee90eea6c967b0b19a666e4b63d6d5b91eb5638595054109ec8b1d982a2942045ef8c55bdd225454cffbf0a7132d8209ba077f09d10f4242c09d9981cd937ae572d387e5dd8c34ecf8c5018619c244a1123bd5fea96a27dd9b0eeb9bb01eda01880a5caa0671cf06cf6c1517578daf7fab23e058d9838be312804302fa36051e0dfa029eb201c463d22eb014e38bee00584645f5db6c5c47e96cc9104489560dd9f4ef68544f1b6a855d44d3473e84ce285e180afe5c2c944e9dde368c8be390c2bc336811d520ce85de6062052b165a9bdaed296c2d124ad3b3b65b46f39062ff0b37d013eecae9a6ab2f148d5b49350c5dbdc718dd19846da23dcf963c37debc0d457c275bb389da5244069edaaed8643d9464780d45cc34304e013a25d7faa1e4e5345cbf9f30ec75ba85833cc0abbd0518d171851b3fd77a38798e31de856e23097737239a13d148a4683713ec5f35f3d82c63aecb602c6f98c78a287bd2b7530006777299509516c9b6d37ab2f08e7b748dc716db45b4537c6c2694024fd77149d284feb921bdbdb33b108dd1da3fc28777dcf066f1433edbebe14563b27b6e29ff83f9050f472d11dcc1ee815c78237293a191f40a9a9b5b8aa7ceaab3f1ae16114efdcd605aec5ec87242c3d057aee747b0f4d14d19a9696c33059a7d258af38ece8591541395e9e633b2b877efa45324b437065470fd9d118f87495092ce18a0ea7177d6cc541b0fb96b153eeefc0a45c01cd29e88fe7366f131de02d23b3071898656c1bd6c1af0aa1e9955d0e24e1b5989c0feb06850e681a84d574206df6961ec4de7bdb1b7bcda809cb035321f43cd0847bd99cad78712d232524257407de5aeed648d0eadf6accbadb29201dd506348f6296308956de15bb208decb2f1f0d3eef0007012cf3a13c3da8c615bdc0f59a3a6db1d9ef94d8326f965bf363a8b8ee7d9a3c1abcf25b9359d743680a72d175acc2724973fd8e098f2d00d3583323770fe89a8069e6e3967c3b5da938580ef2f07cc739640284d8ce7290640a3c2a76cc08d86b433c378e673efebac64b25502a7545daa7e0aa5aa79783127f8c32ea88aa9eab2a4d5ac70f008933f1243971f8c7a236faa2618e81e49c3e224019b84cc69d1ff04544159bffd7de348a645c0902aea774ee5b37fba4a3bdeee7ee276c35e33fc3a5fa4a6c376839a11c61b9391e5c5e6469df5d3ba83d576919326430a12d94f0ab1bc13ffe80f7faeb075845f79edd70b6ecca56c784496bf2ddff0f8f303af04ee8d6573fc77fae5c7eaa070fa97d123e958ec423ccc3bc5be86d778b9b64c496976cb9db096b92e95d464ccd3de95840cb7ce20f2e6b7f14bb8421b513d8a7745e6578463d0b7a6bc8662f98afa101e96eaa89d3e7d968d0c901002b356f0c72202d14ae8ce097d025670e683779de5f38f5b2be3c19cdf2a605b41e2097e9d02e30e4441f21b06d3b4d08b963178c0f647b2b3c962c79b0df94968d0bd15af7d460947ab0391b53683c0efc7678789cb31f59d6da865da2771551e2d5338e40b2b0b1386246984f150084e9af6b39466b080f608291081313d5050192e6028d0a9b4674409cef8ad2867057a01433ad702272b3c129f190be8408809da9172c489d87a6c54065e22f613e75e96b8e36959bedb8441f918fc9b6260fe34ce9f8e2b98ffe4f6efb7018460c8feebb7f88636737a851b74f215963804f8a3681c4c1f22c5edf1485ed5c908dba5123ddd87cbd64b5dc293c142f67f09d7ce05367f4d1bc73a45488c823bc7a0f58180508b0990e9c072398fba0030592d4580f1456e51883e106f13329ee914da5e114c2793886bac44532f0e15a883384bfb9c5403f93af5d33937e146b2712191a6f208a9e19afd9a4901191f598283ccb1fe3fbf202d9339b7d6dab1d46fff9329285411368a94947eb11f63f525ee4469371f999e05d16301c7d5712607605ec3eadd3a1c6e143adf656740a05eec48df97046d1725439992a3444fd8ec86ce2ee2ae598b4e80e467e7984090041d4112a3bccba0a0df5b076f258b464fe42fd9ad0040b60c00df5ce2df354e8b47dd99c00227a50efda0473e573b04b9960fed1b757513af2e795f1de3be7a1429aff68bcb6ba9f046758990c979077f04cf91ee72b849c121270b5869422c8e9422e93390d2774c1b0229d772b96650b4fd5bfcdea057c6470c98a8ca74ab6e29a2bac039df2e5df7d0d6e281a28ed1b62cdab0f12f62e8f91542db5070720d9ad49bf5cac51365de2770a433d50e0f96bf1e95b6ebe40980bb91e6d21e439b104f3909220fc6bec28f42175973d3c42bea63747d1895693d914f1f7cbd37199a1262d4dd3b0ff6f17c987bfd2c0e9fb9c22ff64e0c623ba3478614ea4a6b76aaaf4c5b074af984cc372750bc3d00de43ff19d1869a76ede476742b50a9755992602e26c633ed9a6111c9d350c06eac38573fbd8d9a42468485c3657f3c15838dc0adb122d263bdeaf2b0c7996224d725b5b6fe01ef87e51f4413a6bb9a489d1855aac4d9a35fcd6c8b6dd632f849362aa31f882252337d330f9ffb1cba5f413515411d543ba1ae5fb06bdbf90b337e37cd1c1a4b666cbb289d71854588b029bd4ecf335ae0b626a221b38180adaf26de8ebfb0a2e4ad3649d25f06a15032150712d2bcad30287794127e2c834466dab38810081d1196475169f95bee21efb2862b48979d57c54109d1046bd6de97e0cc86bca0b306385e8aef5578248ce414493333c1e44d9e7ba42f2a84c4bdaff1aedd6bba5fe7bb584de4c2f1ac66c04a7b7f077a6157ffdb1899b9cdbe8d328e465c1b43c5df87d3941bef7327b35991cfb43794de2574dc6f60e622dadb2831eb57e79ec4b34181477d57bb7f4c815fb1b1bd285774ef7aaaa011c8f23f86bedf63769af5dd021743b144f6cceaa57ceae7a086f27d6ff70015ed1469b4d1f64cd6784ff622e6172b56e783c69c29c2bccf484f07c62dc4552c53ff083fa5d2a275dc321dcf699ab8fcdec802dddab2f6f34d1d325ed0fc7ce097eb1e86d9be4ccbdbc15809271e1398cd9ccaf2b8d6959782678f574d77c59af6e71ffb9be41d4fe9b630ab16323d3febe0896c0d23367104cf9db77e64dcb72027a7c1373d051ec6742cfc8c6719fe55ae6491471bedde2c5e38e7c33fe87c14a303e5608fee42799d04a8ce00c98fb62f75c83274b62e952d0698cd40a723f5cccef80e3e003a30059fd790ae2996c0ff101ce785ef8b2bb80beb5eb744643013b75337fb03e27fedd6b4ee6c8f15a75e6259933e79addf0576586a34d29563c934d35fc0c0dce0665098fa2828a58b18383eb8a9ec2a27947e0953b15b4b79ac99cf0417819887bbc22024fadccf0e19381b0be227249328ccbfd243f27da568b38f2aea2699acfb5a332411d551df25bcd3a548e2eb15ad4a8d82e6d78e44a6be76e596d341aff0db2ef884e02d1339468bcde8da1caf4a84acac233d731b3cafcbadfc3b074557ea7cc74e07d71ca0a52ce5736801b733447763179eacfc0279fcfc8afaae883afe9a0264d5354e53807ec071eb83cb7c0e2060fc27800fcbb51cc7447360908097c06384fd947ca54dcf7fe79d25d6086d3a79ffc65bc7694cd749d5a6a3fe296ecdd6ea7af0bb0aa8fb21c42f3be69a7190a549df12dcf8dd1ab66fea6469c7f6ac8813457d668468c46a99dd835196fe7e5551ee83002de53fcfe5a8ead9fc469aeec8e76cedc3707be7d1ac5ab3d313f7024340bdb0d166b16d05c8058dc46353bd59ab19154fc818cbc704d9fbd627de940494cf163c5574a3f2b1cffbe49355effc196b093d643021ad598a175c57e10eb1295702c29530ffe8604ac77ee7dc9d1c7082fc31f0bdab41bc1d866c173abed50c20458912a7fea71e64190616e746a69b8072cdb8eaf7e2da67d3545bb037b0a259182653ad77fc28bf0d2b4c61bc33bb5a5c11668823492b65ef7c7506619da56ada5f30efbd68495c1809f9fbbe579d9687ce2a135e710e55c524672a39f1a6e229b72ccef364b540fd89e1c1931b5d82684e87d1314a941edea5424914107a7716fe2825f35d0160beb30863bad9905a82af0f2464d66729a22a22388ac20674a84b4bd18678c3138c623b7ec6f387729b6d5096072d096822681a4e5336918168365f28ca021f4ede6326d3c118a12dbfbc084d378faf6d64d58fa8b0d4aba6d1f73ec53c6bdbbd6016d1afe2f1b2162caa42b79c4713d5bc80ce25d9e332ea0a957f8a52dd75374191c4a4906158a562451b00c1090e1eb9cc5b3c5d64a363071755ae08ce4e098e42989f80d1477c64aa25bafe5f1d5f4f79f31309fb5d454f71b92087cf2a2ec843a072ab57e2ab097969c63a71385f7c92e029054583a78f11004428538f86a8df7d2c2224e118a285521932757a40ab6df26d95416bcb91b47eb58c50f2ae25845a9e80a7ba6bc586f5989d1f36b57509fe7849be75569dbacd9381cedb879b05ccc86938092230ce71ff66193509bac56be0e6e551b91b13ca675ed400e25c2023dcb48a78d90c9c3d26e2f9d71a83c1cc67a1830956a7db960c4705eb5326759fdac210af047a5404de902728de3fe3113cbb98f74e38ec0c68192cc7ec0ba01ba5e94878681fbdc1044801a73c6fc2a228b2072331f891bc12864a23b42008b53ddba1038eafad968be1e2a975f19d23d48b78733f4147ca3db1cd11000da67476987084323ffee7a7bb1d8a7cf2fac54118101ac6c630b44e3a97dbc96cfe3e40409a55e41bb3e07058094bacd812f38fd25723f4780778327cfcb897324d38ff5bf84d84c34d710c5ee8ef321760aa9a40f146378746889b6d7bc195bfef60f4702eadac18b46c78eb7055629a713e5a49506d9a43887cc44d6039ae6db4f114b704e64119a0ed113b24ac25741bda41d3a545fa67780f8a475f17cfe5ad8861179401d205901866c2ccc04b0b1259735f6d35d0e21ade75359d947654f6296f3eebc25c61ed0bf96d39f3f4ea41f75969637cd9dcb4a31ed0d93972d2990110bac762751a757a6ef2b52e6e052cbb4eb27d9c9cae76d40b589f80c3dab2445b846be7602f07244be99fcf925239bc06673194540c21783123d846dd3f122151dd6fbcf8be15ec1a9f9e3317595dd553d8b61105e561a040cb370e6fdc878f1a2c6ec4b97caf8d13cc92143388326582867190db5f0b3add3c1fb0a1e532d2c71be177942aa615469df19886cad31f8e59025a58ea10c86394bafd870ff4d9ffa9128259d4ad00f03b5bede239b1886b5e0bdcf627fff71338dd1c67cd0135e6f4826452c2b9c41413de6b202c8f5a7dc49afce5fb9d96d5b025fa8a3f2fa614930b597673bcbf7424e31d0c4224ff724b75a80ea79f9b671d22ff299a2c6c1c103d7103c65ac38839947c5b5dbe1385bf7029b17997614d5d22ac9e463ab05581ddbda8be7489e6a346a583883a97bd0b93b66331f3f480f17a816618719994fbc70bca980b65bbfb09ecb42783c6dda9a8b8f3b9751b5481165c3c001e22f30590d00de6894992dc5f474dca6d71a514093876231ff72ce42ac230392af31430a198de71c3db6c685a87da496b32713864b6d8fb55f58947c929103380ee41af892bf74f8763d7c2c23714cc97c3a81ba2ceddc456106afaf6b2cebfa7a1806e21fafaba0ad5aa9711ca31a690905ffea50a218f11d9ada4dd9b6bbff35999fb2b402a33efe1f88745e5a6747a6d27740e3774615617cf3391497c6efd06c3f244f22ea89a03bb933ee1b202b95fad66b6e411c9286b67c48540f34afb34d87756e9400a3769cc1959a68486f96ed8e22dc4085cb1d501b5077de81631160da2d3e99dabdcd15880134bd74f197d613ab3799207cfa7b1aca499bfcc90746ddf1a4a1609c9949d986eeab4d50e3ef5e7985bdbe579dc6e702134749dee22efe67a914eed8b4ffe596b073127a65bf6ddb41c3e77d1e0b95da46c6e0d0be63e92cdff1d700f097c04c5090138be965c1b5582056bc03af5a157f288b4d022114d8cd43dd7ef973e345015d37fc600ede4fa8c479a1ac880f3c1eebec116b4134108401bb55680da80a750877219353ce3061aff25e3edfb30c3eacf4d3a65cc6afc8f29caa73ebd10670c861f8cd239f0bd518187c3926e87acb156d78b28088f99b66a01f21d30212d57096467243e0bb8609775823727440f2227299799afcdcfa0f5efef35b428869504c08751028528dbf4b7eed26c2fd3944f25c70f7ec4a16295d32678a7ef2d37bcc2e30928f309c9309c5040c5feaf650309b2107e09970119913bc30063f977df5ae1c3233374227d74332c57d15f0a64555eba8aafa92f70501e89d0e8a0cb8b7df4fb3b50032860f14b8aa73365d539d7b63dfdbfc4cc303cbaa912f769da49928d61fb92ea58cc0e3531e3a0d9ea276041fb84b23b061eded1784e314c1813400456c6ac62c552d5811c6f2524dfe6452d593958839c8909c1c0e0c5f7defb63a1e83f39c80a84c4016895b3a9193d0ea19c09893db80ac9acca76d3d6f7060a8de4207d41f6a4797d2c55c80cbd5747c2681f7bbd95475e77f002f219bc30804d2ba5966d4c4ff563efc800c0b94e0356f3f9a5ea8b815380bec5e2c88919831069c25c46b6a841a0f127421e101f96bfb892ba242ef27429d3f6aea67f58dccf764a67f36929e900f6a8b1d7cc67490bc039a6ba8773ed60a00a7984c017906d2479d09218248be02433acb29df5f785d1f9a62763b5cca93f2cdfeaf7a81d55b2cd17d77562f11bd359c41a3e499f243c22106ca217bb46af878d7ccb2df72ec77897fa66c37425d35ee54c40c55aebe84ecd0e31d0875899ca9c88c8c6129017714268b4df607cf27149790149b71994af86d398d62919ce243ec0c78e8734e5d41f923343799010813e8a718c79f915c0afde9bc605e0fb58fe8fa69ea6b66d2e7fdb45579ff7b8695968c44081065002867c6bac8fa8247b8984c9bf1874eea5fd2b0e06e39394868105d2be23375ca1ec35f2ad9193a625045142c1aaa9e3a05dbf83f7c2df636ff22e38ead8d3889fbc9cdb2c29d43d2ca6c739a977e0376ba7e46903f6c5bd1efcb1a541377f4b7915b1fbe28026e29fd1bee5c2d2a3e996573cf5d05c3ac0c73999266963779dbf812a7afa4964d90a7d6a0d5b748fb3d6d1a77b0509ee824e99a4756086bda080beb956a4389dfabe80f1b42a13b1b1940ed1e25583c81ab53e1de8d10b85d1be9f295fe04c1937fc332e0416dc84503d0f9e75287af1940d78f5e19acd619cc761257945e88c7c3a03ad10b3207e32b116f7703fbb0f0a1407cc817aae6fff2d7de3f40b707fb5fcddb007118a1d33f7d3990d50743e3337a5f381c2d1649b6fa7eb435ed8f4b97f83bb459dd5e825e90af93b9b22331a0199667f52e9882520ca0a5f1d1b4fcfcb73a927f530729b14b4ebb57360f6d04d370b88cf9eab172007a5957a8371a76004a43c6df8d6259b5851dd882d242f101152bd0ac6e4bc50fe4a066a9c17c64b1d603bafc9064355595cfb4b92dfd9423eddde4bb4bf5973279ea26816ebb960941eb69b6287aa9ba78b636b186f59a59a9fb316fa950c9aacce59ed126d4bf2d65e90930059a37f3e3d8fd756b57a5eacf382e6234434d79aea834afca9408a4b3bc861edd312f1750447ec4e4e1c9c1dd423c04f57ad5e67f889e212c0fc4dbd9627c4b2c8128bf17d7aa8f989025ebf6c24c197626edfd9719a1a5d9a16fa3fac5cd15421d5087a3811f7ebc566e1a27d66e393b1bfc0db80633acb85feeae76a872ec9f78c090a6d0fc6cd8556525321df24f87e4322890b2431a70e05e154511efd7a78748016bd24ee7583a2f86f4c53f1b737456a653d54dc8a2c301d5dbba4dee9adc07812ea949b1f1a7e3da53301ab05371bfa25d881303fa70664da84665e1e7d439bf8e5cde42d0df1765bf1085f67059a67be5715d0a00df7ac11737a66fc9b162eb05bc2a439e0ac48b403232290cf70255c3025b93ca6a2ada2ff2adf034b6d23a77640f1454d0a5581b3af158b6deda9644f84d46750aef24b74e61cc18a41c65cb3ac747db272ef9fe0e4be7f6f1d76910947f416c64178fed6d5f02eb32ae2a9dedb32281881b41c6c5230d4220653e1c3c1a9286958befd4e333a2875932caf54fb32139e71c25c835f8573fe05c48b07466c0f0af897c0970cd535f85c68a199f3973af293d40b8960e23601b8afd7b661643e73c2a532ac964cef518553264051d782bf9615017cabb26c685d99aba62bf07414b7cf2d13c2d60b0cb989135ec7649421fdcb73332b1e7799c1e9d67175deec9d4afc01e26df6cf4c465f6edee3f3059d6e2fbb9382141f1c3bc498365be4a6d841483cb7c6ae7958cd6b8fa80532bf8b7d646d5e66ae5e5405a25670b08673027aae7d7fee5db952ae4b0f298586dec3254e6df30e7d67b05007d2a950dfffc519ffec0b61de43010c2bac2f2a4de3ab370cea3d764ebb78caee016451dc43b0662bb49e0f9b63da40f38eaba9096e2e5f8142b01da50463e7da02ce6ffd93e5fd576d36d5595db8c928ec7b4d8666fc2297120ebd4059114cf55b7ba59597c92d66b46b0c1db7010b6a7f42d9d4f5c4429c4bf583f5d267f045af2f84dcf98cc7a3a8ae32275f9277d6fb350440846fe768f569e1a816fbb574fbd8742bc41b556698ea10767a51cee566aa7067cedf0a778546cf4ebb61d3e9560ede515d8a3afdde27d1b44c7ca3fd330e3344a0a5004caebbbf6eb7e04bed561a225c2eacead65e04b1bb612e439df6b375644ed1e09f1417f9f252870a67a683a97218100862f61d13ffc2acb4a767adc16f0f2ce620130f75e11e8787a323215f3803599185109e8296781e2ce1a728b9e0ac649b13093d0957a0f1d30709789a3a61fecb2411f4ff9dc8368e64feb044f00721149582d6bae00a12197ed9fbc174b8f3d775df4af5d551b3b0020def41a744560307615ec569637ff5923a7967d9b96ee6e65dd961f607a1cf1998ec59dbe8472ca2eb8fd33043d1510d19088c2b7649f71fcba62d59e3b53084a8933dd68ec63fe44685fbe66709dc57a0d133f337052db2a126d3645d0bf13cbafb425b0034b2a247fa65fabbc19b3e5ee413d9971da82dcb4ecc49f3ec1ae325504c3093f7cde5b0dd34c175f369b9e8c8d9ee52d1d8163fa5455893083889e6a666e9af21e301b1b9a0fc15d5a6b7438d4410811f520f1873350f5518f87b0bb732cbd147e6dbb788729164e6048f9c25d6e6698bbbe1fa9ce6968ffbbd10d3b81fc81d0be21351f59be546b312605101b75578dc6756a3806f17c44d2c8dd5ef42b29e8e6a0a72036bd10fd3c6634bb93eda90f6239b11739c55f2a85fd4f8d1658abe75cc8d228a392b00d06be63cc33701c70115eb9383179535694f31399392932274c3b9e8d5607f27041d4377ceb73e5da20a7a93558272cf83353de4d3f9a9d9d962594ef4d92641a3e98960853012cd2d1a38e79b601d50814cdea0cd62ffd823e7b626ac70ee9c391542b99c4418e78ac86d8f87eb6cbd8a0877379fcda1bc371bd5b5500793ae443e3e6331e8d9babbfa8db792958a0ee56653b359e62ef3fa189f493db0e62f5f0367ac11d7d59eed999506d5d96793544d506ad5b182ae44d9a4976d1f3410ba0a1de2189b9bf2305f6d1562fbb917b10281ff5ce4cad85756c9529cb410bba44dfcd5094a43b19cf3760c5720eb4402795d2b5df6f1098c96fbdb8cb42c64c27ef459a37cb2de12866e0db22f7c5d4dc34f027f8091caf1983c69c8869cf4bad340cdf670169fde6cb9b69237138c6a8354e212dc351d19b815bdd538156533c2d26e9625eb9592cdeba92dc3398a0cf7b4531ab7d619afcd048c1f977dd39314660d081e159164a16d008733402fb15ac34cdfa20b32d6133010f7416bd862503c96e43647922deca50d39e04a8d6565bf98ced13e1f8c49b1cdd94f7a038fdb133e580a2bfa63a0312a862ed504d17be7c77468b3a465d66d2f20a0e08dc765fb72ffe8dc23f60d7d2d3258bd38f71bc255f6fc3419fec2183b86115c7f1379c2ecac8d69008152eb1b2f21e9e34f1bf614ecdf32cff2f0a2fb8de5b85a58fe7b864168e2975e291b2b8dbbe34d63aea2004864a66d5cf6efdad5e6d3ed4694239a8950d01fd03653e0ac90da90199a45a80c8870dd87e85b7289449c1622c82d70a63d9829590f3a1a430292975c8a185a0eadf74a630914cba49fa32e478787eb4130788fc68c28a167b096fae9d7c21cceda3a23b92db4eb8899088900cea5c7388d0e3d2b4008fc816a84ec95d172db13cd0d2302eb9728ccdc9108b389c65c07a5dd886f830a7d57bdc2caee4c0ae10b409f1cfe6b3129596e0e878ac75d0d3f57aa00e0ef6ae73a2078290f2ed2f9b48c123f6af02ae95125685678dcc97c92dece8728a6fe4ebad535dbd3a063cdddb2e3fc6b2a866b7add42d031381fbd5663c50295ab86e23ce83e0b90d5ee63b12944e2b45f18219b4a57e1d2571ff89de7dec3e9ee9d4b3990ec0b1b8f642013cc0102b5f81ebf16496e583b326e827e92dc652147b81936283c635f408ea78a31e770878e2af3d19932826c25fc307b58a596093f9474e4709514afcad7a1cd2b02936f53d800160b1dd8c6334df0b6603185a67d3d8cd021dd1c52b3514d09e36021995fb361a32dcf09f1b2c4e257b0fe59395694eb2bc904dff34d5dd2e176e909a7f18499d9fd721bd648969e8afa69afd53aca43a5c37decc51717de795c5958be65757c998db831e516f4931ccc6842d3d483abd1f9332d2041ca328981289d65fe1a486b497ff90824a4fd813f1e23a0bd155b07a550a1f46da7f1d24e01682637c9577160ccf7af2139c76484d6a68e3659c427c7cbc1d35eb467ad2af9a83975b3499d64503324499993a6f2cc59e7c029c834060b1d1a981b218cd18a861d355af738cb7ffa29bf371ccccf90fb7aa0f451c2e11e8653f6e7fa4540887a6057ed9dadf98fb4632bb9242c944589518cd6c9702fe720bb2b1ef579f87b1226546a83e4172826a24533026ae7225133bdd473aeff6f427aa5047c8225356ff97beb58b2bbcf4c330dec28770d3efb9c693f46c484928d44e0b50c29a3fd7a0ba07bf9b9143045a640a8323f948a24d32a6f2b289dd5caa39ccd7365fe14b5970cc283659d73abaece6f2959c6c20271085a533b0f7f1e4a5bb2d37db2afdea676676a0059d717f8a6452a0b522bc5e48f4d6d22d78ddccf4e4a70137bfebdafd5dd4bef34c5a285ef62b7d93d8c0c67d6f31d9f6412a78e1451f1e87864993e61b8ec4c980f83d0906c7442e3de7b52787c62c6cb874d8fdef718a12a9fc550af89874fc3022ca5d93b6615321e3a12aaa8919241e6f19539efff6817720fffc4b08f28b78051e16654a153c50d889f9bed2a9d3fb5f4f3fc22e130aee8397bbd298205ab89fe84ea51c0cc09ddf308a86de8eda9c9f75ea93e7e9e27027b7996a2595bc3d459dbda18502961b8428a6024c99331d1bbdec23174e9e18c4b7884132162ca21e2addac2679546349ab6200a0c1cb7ad52a00c52f572f6543b7228f66ac3334a5fe8aca617924272147c976c3c0819a6386d765a4edb476446a2343094301dc2a62cee7dd6958c7f557fba0813850376f98749c706759fb99be387a8bd83918521ac4da06f3587f23525a9a0a6c644036b997358f34d9d9c94d551efe3ef3e19361e84c8af399d8f9dc7eca718823410aaf2214839b82408e9feed2976cf580b92d39ffdd8489763ebd089e307d600cd0dc880dd185c028573cd130315ca59b64c6ea8cb60fabfaaa8f91e0a264440a83c0a639825c828fc78f7460c97d3b1887aba8ee907050b46a534c8b887cab36afc19adda3f4129b349bf85403b727b7ebcb9c852a2ca30b9dc41b0385aef813f64f79b2c58b30a729783745a4f3c4a8aa0bb76207b4ef1bd9862990a2a8a1948f51f6c97dd477b8e4aa94831646bec2b41aefd3efba64bda61f4850ca85f543c2e15dbce5127428d8447480e797c7634d9b7afe6c99b85201c1a9044f06e0c46d5f761c1949e6732cd783964aea8b868d9831724ec2660bdbe3b5e26358ab1382cb2567bb7315f53b353f3b9426f3fedf4c9b2f284777ef98b207ffa07002d68677f4c570d639fc12075b51c07e215f82385d8fd06c02f69143df0081f2b56a1404c70461585528f62bffa5ec5dd28b0b8806d7e34fe29b92a38f8be7a8055958af690cbbf00a1bdbecfa14dae8f099e1ca710c3e9944ec5cb0b332948e703595f3c60c2f2347a2edfe5c6b700e9029c0f936c686420eb124c333ddb3664d10a075e342738ccb3a0b5619e33828a41437cde74ca16a438d122b66324ee5ad086243f9efbe7eef5e47c7a6fde02a20f22a64105e3b3ae517c477d40bd7674eac59624ca850ae276d677bbe96bb6658a0503a364742d8f7a9c8936feda03d946317ae9299e8ed26126731a7433fd8ccc3b56e4fdc6b6ea27625af3c356280dc46c20609ca4cfba90af550b6768508bde93a5a6c02ab3d9bb0d3f9c40aba7c9d6093cf8f9ac55b40c1f4ccf069cd7d27c810768d24bec251f43e2ed215a7aa1c8e57bd6807a048a4c4fad5f586f7bb16e74192dfeda3ea88eac7eb41ab0e36bbe6f1f46f3caeab7353d15c9ddd0ad55dd9275cd8111d57531b43e1f96d36171bd0d679ea12c42b5c42f964f43db189260df334edbf34b3a3357ac746594cbb9eab8fec43f83c490c52252781b5b8f9f2262758de9db217e3a3a92b30c9e13c05583a99558e738a7ba2ba03f98294e4f4cb1c52d0c8a77f3f22010a8b5c672c25980ad6100f49b85b515345d20ed979dcba7dc6ad6ae64ca42f2538d57bb7e807cec3b1a61ea42ac5793fb35b1ac1b98014ca868be685dc8e9eb09f23e78d87e75f3ff28640ed2470bb01f44322ac6503c0d7f8087c612b313fad48adec0a4ed18aeb62d09491420d28cfbfbae49a8052e84acde686978a94981d34bdd032b9ee5c4a730cdd81f38ef514e39516b35f29ab20064e2d0c64aeea7506157f6c16b70f71255008b208769cef102496bf4af333284d8164e70e993f1d820ad505ac8b00894c1cb09e507319b28597d5aeac31a7869af2b012b46226f2d1e9b2ad718014511b9700c243f0e1637932ca12d44775322bf7ebbc4224cec4a3668af858536a9a02f97f1ec150bb3e629f68a043cee577c793a6d974529cd912264fde25d4dbc9df460ab8daff0c31071f9ab392cfee74591b76a0e37a056862ab853bd73ef6587bb31f19b299755e6276a1c9dd90b59ed399940c2cdf631f8831ac509f4abf54574255ce64c4639d53c61904c7c7683c6745c45c23a0c39e863b60406cefd2e0cd8550e8088a33f722b714a906607eea0a7052941b6b20fa97e57294002424b27f92387cb945d92cd3a160a48b32c11751b36bfa37db5c3b284195b79b16f1911282ef24b375732e44a1aa032c5005868e50b099d10050dd9f45657b32a249dd3f1fb97d800435a425b50377e5c1cbd150ff1cc1ebc0a153fe1f6b933702dd0733952ca736dbf968b9604bd6ade098e124a4e985b8fed27f44eb0517f406a214383c70c8c1ce7f09666f259bd3a64277ada9f43b2dc1ba3caf1b5e03704c531ebaddc789413aae4a19c96b64ee9c06a709f6ae00a7c6f5d5c12633b7ea35a7d391096f9775d88ea17a8080735f44c9588bb641329f38428a2032c178e3afa1f4a35692233aae9ab9ed847f2f62217bc5bd7bd4f46f7185123bd30aeeb1fa5bd7cfa8fb631418c6f064a212a0acc641febb5f6fad28064614c7298aa4aeff24e62dd6ae0fcf4c47da03b995f69f84ad68d730f2897286b8ad0adfab8cebf2ea1e9e4545e426e76abc91564c02099ef6398edafef684a419edf6d37d787c437591a66050258748ea11bc1ba5ba7024f7fdd18682292ab7f4591288aaa24f1c14e4a1f26b15d6e61f092997eabafcdd58149e31be97d3c7216b3383312596f710d23dcff27e51d725055a804cbedfd63831dea84c7cbe9eba0d0b4c4c81bc065aa7495a792d7b28631c5e7cdf295a8054dca432a957287f02227fb5961bf37098c5d4ca4a7315dd4c9a54d60c824a7faef1b153276c938540fed48ce0ba46aa1f229d4327a62f9a277bbfd5eef14d8c7b1f497021411bdad8e8abf2050b4965eac8cd1a6a9e425a67f4a59c41c67007126b58416121d928859fc7e8ca1f49e127550deb90385db7e2eb86b7e3f36e2189aaee576a9c581269d2aadefde81b97b278dc47d5d6609e6f7a1bc95c8d84bcae0a02295c051c86e3a7014714bf7486277a442f2cde4d7da770e9fb834fce66fd89865b96f330396a35dc7f0be1cda53bb2d5928737a03e81cfa5232b163a10467cd45227c0d4aa7009b99797ede0365b10f691a7cfbba3274f67b8a666075ed30a5f2f520d296958a55fb99068af0195937f3f221769d0f2daa81526e3d7bde6afbabf263cf887acfc8a481f391bb851d3ae0c8a856119b40e1ca712d94f9a91baf31b3bf5897b76f863f95d2d0f045e786133c411ec6793be4bed17b6465317ce34e513a187c94ef5cb6c087437025cc0a4b9b1b889c495710e84098a87db3665bd63adf2f041e843771b54224a2bc7fd93e846fdb1da84e2c894978e211ef54828fde45920b238a7d79940afdfed531587500e639f87577e805ea59a488dc31802bd378fdf430edad67e8377db7a9a0191b4ddf42bc66be9bdbd20acc57c28c9afe9670d8cfad4096177b33b6486aa4e4e7734bdbd89da793fde6c68f7296121a5df20934b008c53bf507d9f6cff5b9f0363544f435aeeb97b80cd936293cf3eebac9da550b56e4ec2037daacbffee280ce7a64040c34de8f37cc397d281680df726ac092fb3a183bc0acc48e576d33598246aa8e9e7ba78566ff6030a65c0d4cf74234a403648ed4c8c75cbe2503fa1bb64f2a452ce618f71b31a0803e6c7a985470a38189fc27ef924c8667b1c905fccd105d7a8338f89f51d3efdbf50c3f8f73a366609fe7a9b9959ecb14c7153f5108ef9e480fb5174071b09dbab378a00ec1823abb9da909b90fc3d28c39837fcbe8140f5328cf992a31ccdc18af2a65773f81da2c6a9e94bd80fa6ac923b14a1497a0d3747aa9bdbcf82ac71fada7f62a273a5297aa2a76ddbed9900bf15b1270075835cf2a4cc789e67c3d182684ede966d0de58ee6cc3420c3734d34f3ee63fc2eb017a2e57c4900f9fb6c368e4a5ace220abd042eddc9c2a28f9eef767d3f615436a399347f60674a24efe2fb1abacc7dc35b0569a4cabfbff765b76e5637e9e81d3d9e44938439c8eeacd1244db612ea76afd809e5c60e9571f463b5cddfc4c3baa5b357f0af12b7c11a182e5258641f7b6be9e894c28c066d05b8e5225bc938faa2e80e3490d7689d52782640825f9fae87d9f47bb7b6c4ad33c95f28e5ee48b27b33b7490a9811ec94d129616662dff6bea6207c11347d867ff862c14a1ff4bd7e5ea556b34166c1c020526c0cc2587b10df41863131a224cb7a3eaf6d5486cb7c0473f856226febde10981ecf50f9b43fe5d043ec89d2ba6271da63c306fac24b9d2e2a723a3839961b05cce034ae3f5245bdc90bc42c4f6e921b56d6ebc993439ad0f5b85f4987b839d96bc20e03991419c83cc9d916928161e3a2c304cc0ac29287af902f1075b6238694cc6f0f9c957c162c58d444690df8ae9bbbfcef09a880add895d1a5212522a2d6aaa02c98a812ee8a5c3608caec5d164285d7fa1cdb0c78f0148a9af1406e34e8ddb72d556499cd9e6e363215d871ae95faef99efc4ebb568921cb12a6522fd1b36001435a48e53eb9ac91266f4610f088846679ad1492bad43feb32595ba9ab25faf79e887e4a421e17d5e2d41b40161b01fb915f1475fac9358cef1f824afad52ec2cd8f0c5455db82405002adf13db89f256621b88ec98a1db1288576266efdf25b57b066b9684874d43b9f9711a473aa76d21c7c9a6aabf601a19a1b6009b2bb9bc51b5fd65772c9078ee5fcd5c9383255d667396277ff45ce491666942dd2ce898142c8e4dd275a78c3af06b7029353339861ffe93597a2363305f16eb7d2e206a125e17c571a95bed15a4ba0434b5a2178ad163ade940f85de3e48d96dd50908e458193248c003d6fc7588121047dd185b2135a7f7268f2923c7445a94d081061e79120032e262e9b794bdb997b9b76bf2b708f3c21caae42ef31582a029b557ebcce34a620bcbe32a7a1bfb59831c180abfaca1c2570d28f306117ad37a67c0a4739e372c6d755f5e0e41954fdf3c68d32c7f84da1185d5cd2ee2aac8998dcb0601b3093457f2cf0657d720792ac4249956f464ae2b5cb8e9ce741f8df352f587b7f75416d3118e3263f27ef33b9a2f4bf904f2558ee0ae93bfd521ccc1407c5ecb3d76b1e5e258494dd334fb28c6773e44a5aa2b79e39db18076dd9a92296a436cbc9a1a4ea01ac076f8a283f2ad2abe0c4a3254c523bfc8b7e171c581ec4b9311ea27d58ae37b5a9f2fb53dcaee2de35a5bcd2f4ce1a123102430dea1a952660c73efc18f6369882c4b0e13cc4a691da9bf5697f893cd48cd3c9204200e00b7025ba74a503318eb92c31bf082ed8e109d8dbb6132c61d1d4588043230b55f9245b2f22a68ac24424d0fde56e43cb5ff48fc5a12a1678236c9cd58ae64ad4e773d18e713d336eecf73cb894786badc7df7c6e361cdb41db92cc0308ae2014b89ab18285501be7abce62db549ea41334d45aa431a8c0c24dd9bad0a09fc7976f616b63a251522b423b1504cfb500d9a36e6a03e8fc4185ad235dde0f6dc8f5ad80313c743b5e6ee1d38dc9af6d254dedd1f2c297a88cac996d4f8b6e30846e145e7cdf6098b6d38cf4e6251f33cbb278f8bc91779103d78c084d63ea6eaed299ec850b58e548f98278a06e8c8a420e5cda93821489bed055c3bb1f88e5cfb90484cc9ed35bf4517f5120ddd09be943b2f4c908d14f071604441d38169ec10806f095dcf9320f50dc322ea7eaefb88647c0b40497e5dc25f2e09f02b1ac35c8adcc66c113b4e15fe07d75a7d224b716f58e2ce00ed570a4d7708f647ae02d4b34838b67c91227b2bf3b07962eaa854f46180fbbedbeaa4d0ddddd1267a482a551df927bd6d591d61c39d6d0e16fd20641b7bea72ccba4b76cbca16243475f729d42cfc028c1452612463cb4becde53a6bfc9df73ace2de575e095a951e4c4eab0f0d9a59a9e5bfe0d357483dad1161168c096977de048a8a489972e2430044c05cc0be9bbf65eca0b721ee145915524c654977caddeabd41feb29aa947f478ec820044d5ac7d1def3f2bfd72b0da223d9c90f20e7c941422cc1f156fb78096b22c8285dbc89a8232cd13f7299bc92c0b881750c7d46a89f0d013992070299b3a3031c42c066cb8ea31369e46fd1d1edbe71c179df88b4143f14700cdc269bf7d9ed4da6504b976ee20f6e4343dd9a6d1f85f1f92ad8eab42da4a78950e9867b41426aaae1ab5c84e94f62ce279141b0728c8635306e06c2deb614327b21277f0f8ce6e9e729e0eee919bec6aff1a9024e0704b806e575be2bc09272e3da1dd48e80778f7bfadae41f8edcd89b7ece0c43de76cc7c92dc4f7e56206d00e45ac408679a7999e1783f5ace7e14007c3da0e0d4e769f6298ff1356d5ef9e497a84874f50c6fb4d1d9d4f8c94875dfc097d68e14e92f8dbd1a77215213353b44228f65f6526388c394a26b1841fb7f2d128060b2127383bfbc5eb62ea9a4f1efb6d1f76132cb612630c87cc35653f931f7e1337b7b595cf5e7f3ef78afe33bb1aa7cab5038014b5daa51ef01d70fc09b25c5bca240072b66c241009356e5c83314a5725432bad119f2d13caaf8702f378dd4512b02dbea2da7d53cd4f5c4508a61cf6551b48956096dcd7b9452bd53b0b44b97fd68baf2c7a551f1588626dce8cf05dbe49576183674f4b8395f2a778434f560b0996ed5d2fece01422627676ff23ed9c6709f6eb1d42d4d9e015533c43b7965f2c3104188aa10878098ddc1be3314225725efe1984d71fafbfb4909dc0afc9c609886af23d385cee4c36ad0ab4cc84bb455e1184c1372d9af771ec297770c6555cc0efa3a571c68eb309a8c07cd9da550e956c7b5501962a77e181a1b6be2c3e598dd219c4ae32bae8d126b1c9b7de0f58b7a14dea0d018e78367789865ed64d33ac9df9b717d61722c1606346bedb58d2bb52899939caaccd96cb524f6b228b37306cde0c763738884d32f324b5607d37bb2d5082e07825d3894312543fd61e907f5369ffcf7d794af45ce141a9b2f4474758ad46ada1e4a3cbcbe7b86591a6640fcefe9f1661ae5eba422f20bff804ccf7c056fb4aaba4de62e1ec28de6f73c6c77af343d5b2d271a675ee1265c29a08df7767d6c310439192a159d3a739e4d5bb2d264ab7f71b441d0a713c7a9f632700905786677fb451ef8596d01eda532e1f590d5bad119a50c13f0451dd3b5077f1fe4e76bcf384a2098db6a6d1e80965aa4f4841bc4d70b49013d9eacdd25538654753bb9a028fcb1f625859bbde7de21662b373731f90c684c48f9cc5fb91293e51c057f0106c744b6e439bdcab2d81766ffbda71d62ff025696a72747a0447bb6c29d62219e98b087c6f0983e22af239e8bbaba4a0c694f90669b3fefd36353e62e90fb8326abb312435206090903ac337d1ff298f673ae6e1f13e6871fa8f773b4e6570bb08c6d6e057d755f646721e47372873aae6b21e617dec3cb5ecf86f2db7075d2008de129fdf3675b3fe27181534be2b5dbeece7de073d4066de2e34d005bccd7de4977e4579df0e8fb51937e98d823b87dc37fef6d38e76c7e7d369f0ffec27715497d76e5303b055bc0008c01409cb7bba72358c7711fc0dda06911e2a136b7bf6ea1a9a802054ddebd3444208b54667a0c4bf819a6754748f4acd5d808f75da1a57981962c20db5cd930e8a26f86f41b62ae845453351562b4f227b7ff4ae1983efb13c6b8f276e528fb2b69ab1f231683a506ac337d9dfc367263e7d8681e746305f29293f31248a21c13b6dc432648d3af4cac8cc19c291026279eaefde4b178d61f74bb339be0b222dd10b7c8573adeeeeab5584a4e54674f8a8d83ab51fa70939d895ad1137d1f1d02a735b9b9b199a9cb0b75b2f2daf8ef601ade85f857e4c37f2234850779b6223f41f4d44841f5c84fd26069a6e2954d90454694df7b34d397bd16174668c7cab21d280d1fc30a5bffa18333885fb17573bb225649962694ac46d1e5f2eaa4b30941ca0966e31614ca8f64a82f8baeb54fbbcd394f8e22b842928061e384aefeba1065a419275cc7d7ccb4b373433222d9c85e254ca2b658f559e8914d9281cf54489f6b9a1836f1e83f9314810bae11c75992ef16bb15715e3bf18ec6b3f9d1d89b0e231084ed2f47baf8de40a9b89e78f16ce70cfc05628f7b5305914b9aaf289914409ced51c245aacef90e998d28a95cb34bec591c6f1991ecb93be6d39c829a886f5cabb712526dcca1c0d139d334ff15d17e423141a6b63bff8fa859cc0ddcb90c3d4dbd2894a3d9e5fa929105ed65f921149fb16420080840d01c64f97606e5ac9b3c26321f275e29d93708e97c8e1a59ccbbcec86bec407a46f94fdf9cc09095b9bd2b02b2889aa4e347e8ef5d97e987b2dd9641aecdbfc022ba80bf4c1a6541febce0900734dee35540374adcc95932a791af072862b0b5a928d0e00ee2f9df0912a874b79d3244b5cfc5702b3012d21afec1379c070b15b3291d090338c8d29722486ca61cdd7cb77d8a9e8a295e5398c1a84f49f3ba2d786dbd09cdefe330310fdadc0651eb1279f9695279aef9971f2816b67138c05eb2daae3091936144afd3ad49e93ad8e10388fdcffb36d9f14fc1b83274e7db9e09cf66d3001a560c8e0540dd5c623a9a254dbd9cef7459aa62a1db6f74c71af6d28e06cb76a12dbb0e1a89e71fb3553f966831057054d77ff5d61e7f936ce1051f7e8df623c2ae382a5e4158e0ed5daa6e2172994af48c21a5df2b55b8acf27b18fd5ab54b49609e530a30460cd13004ef994caa8388b4b477253949e8b4479fb201f36d906f2fba0a1c3f6c325b514e95c5d6d0ea585e5017cfc6972f4177caa7c8810650dc24903edfd8a8f2c8f7db839b1a66bf4d1b83dc6c3edf19b9d7eac7370c6f1008afd77f51077d7e301cd437bfc50b65bc99cea84c06a7ba327e0097cb9318fccf887803c9e88fa9dc7bb38f19782328669623917e28d4459ebaa23b2ab6766e4c8b12758950298ac9bbc8211c615412db0f6e58d4e435389cb77abdb57982903cca799930d5baa9e4f4b7e2a85809cfb27e09ba6564f80fc072c493b7093a05993233c1242253c5f228f81bd885f29f4df14584634c33954158d483ff1d1fa61f83fa0a6f1c2b1e3d5956b216f382610f4ee882431d5cb25e6b8ecf0fabb64feade3c76ab4e1b5a683a71bc5624709f46abaa398f22d1dcef0aecb3304107be626a9ec5f81a23f416cb3c694ce137b931a0b76edf36520df10f7c3705322179255b75311265e33c39657f36f1ea9516d4ae3085cec68248013adf487b2d94d1a5a34beafcc123eb2c3c5677c740106c8d6aaaa7eb4c69b71a9c4c2d3188f5eca4eb606bf3bd4b3c0e9cb02a98ef6c0fa5cbadc2f8f7f44f05020a3faac65de2cdd6279d7874eba4dca8d121a520365c3b34364ffd4b740d4615f9fbec59ebe608b3c4c7bc89351155ced07689453d28530735edf7551bb98c5e0a6464b33d8a57889555be8f7eb5a38b1a5342ca1348e55610ce38798242e21ec2a71ef7fb024c2ca665d004c16e4fc8ed051aac9023301a1eefaef426a81962bc26c39c4d8b6d6b3b2e71641bb3006ade6a6fb14f5ab5912d24b2fde66f459a24bed9405fcd1b934a2f9a365012067553a093c3307897fafdf113b587af338a3c673dc1e45fc3a6fe34f4a44546b89b0a0e3819d4b94977c338814a30a53243da25d48090527553352a99e084d31fc390bb267524e1c31fa7ae7e59eedf9f80e846e6579dca334503bb4d8ebb397eadcbf63ebacb19ac7f462a8aea31f803bae3eeae4747af85d92dc75c823db49cad714af07ab7ed286530bd2a8a4dd8bcda5df8ff805066234bafa47e507f8a02008ec4adf79c494dc76b9ef996fb9478ac7c2213af7da0ce5a373276979cf07429028d1335719150b7eee4ed3ed5d502a8788fe2c01636a729a7b94d7bd277628401ccb86ff0c404c4271275a3ddcd260e2093a29c6a138f7197a25d74030f1cf991e0e7381ab43cf3766c2243f7c3a7e056d1364249356f88d0f486743593fdb60fe7b6f4b1431479af29ff166a2b92918eacbce288b56fa3d2aa4b6712f0e7a6aa8f3a47bdc14ca19c69c5c8624c67055304855c81e7749f4fd4ae3c69d0ae39e744cd3b084a2ff379009006717ce5d2c343175c9084732cae880602abde5b271ba2a496a23aa7747611c93f0ae76e810ec0171c97e86d9989a929076e9569aef4392fce5db886153979610605e650e5fa662b5f7a5e2ca72f75a3b1ee9f57e4f1acf49e514327b859089be61eea6d9f62bd32c8a47c02b822e9d66a87ca3ab3e50ff2095a5bd800e48defc676f30b34b22d76268191336b9af43b093c832a3278a2acd29534ce11dab1dec8109ac9226da69da40220c832017b203034eaad20a6d5743fe77b829daf9fac3255a6fbe7a8888d0a1c6ce6ba7626976437728a6f3ea293f3762bb945cd805b219139f5d58ce6826b4917000a4a0a7e01351196eb642f5c382d6f9b1110c769a17386fc42d71109ab05cd66198515c7c7bf006f510fc95bef3d999ae148471f549119ee9e5c7aa23c52ff194662556c838c0e3b4b8c2622b596260d2cba2373f6e2b1d0a17edc3e6335b3df61ce07ba20f67cd01bf9005c7172d3b7f9a086d4f542a9dbeab9bfd8fe365dfa5ced7dd8987a73ea04cbf939aecbbfb40da42c60bef1ecb1151a45d4a7e4cd0d7995cebf4f3cff4ac848d15d96e0a36a6069bf4c951486d381c245f9704f2e05b6d258ffd880a3ecfd0eedc765b4148699020098a133b287c666c1222a8c0c0cb26016039c327aa55b8a2e7f6f8fd8260179c13e3cb98bc113d29cfd663578ec8534bec07b5fe4dd748219ed967b4bb3744ab389c07842c18e61b070dee62e643ff4b6f678baca3ceb8c4a2841c8d30348e5fb38dc22e4730f872688f0c1d8427b7ad96641186e6b83943da74f8866d89f2fa398ced1b4d381482afe41eb5463495503b7c1f4c752135a6415ab141ccabe01cdc71c8017cb94bee5ba650d16d2f44779e11aec7a74c9f18c444285d42af2a8c3bc008f065c4e96d0e57dd38eb282c8195fcf425341df429874263bec844863d2cf3f431c0e93934e629770aeb5ba815f75975b578f6287806b9b5a00adffe9efd624432be5ac0a9ed143196d3354d333520f43689164d0af178748c397a4e0381c111c6762646516749f856839734e91df5c2872f28681a6b6a931e16533673ab976bf1c524ca0b68381749020f93af678fedb2cf691d2f1b96c83f457228d0c2116fefa6777cf03e20e25e37b4c11a7ec2e526cc1784e72e4e3728a9c26d73ce30712ebebec96373348dd39722402c172ae29012cf354f259d175372aaebe88f1721879f9d7afbec0756725d593701c844b1c29be9e990c9b1ac7bb177e2e68f2ce8fcc139b6807bd848fda860871ffba398e8fbb6aa462a721e73724a109686a39db3010a822a0c282a62e013450a0272005de5ded5123c0e2187161d6a254c6b3c52d993ad3a5a86501a40fda0c78c2cbabdca0224fe1848ce22532fc43349017fa2fccd9858206377a860e53d764e69dcf2242ffa2b964858f720e88a711592d87c1b3d3d5fb008ced174127979cfc216257d63421ca9d76af45c0f78096219a6352a0bb75913aebbccc1089686fc4b07b01167ef9f7440294e4094df2754b46e690a152aa2b01644c98479c17dae0aad3e8c3cc2806103fd77fe81016a75d784a52a227ce19132386499768a9e8959f4a06cfbc03fcdbf1d1d7e40f786f251d310be9aacf60954257f7ff0dd2e8dfa7600492c2b0db29c223f123fd9a3dfe9d1ed8fe66ae59156c307de7517f6c4e59bc4f52a4ada80b542ed9296e6f534a35fa153f8f02a0af248607f4e34d1c4df7a9b760f147be3b479c7a802de04066e8918a911a7250b6c453b0fbc90f5ac4f4949e7d5324765898d581b4b64b2ea12d131d112f3e97702d932b9b3a4bb33b6b8fba62c9ba1e7ec68b515acafff603cc931ea1b9b78ecd48c88345cebe23e8e7d1659413d541b96c2f070d6dc113f1b18b22b3aac36d244077e6de56d42750d2347fdcde153b0bb4798f99504955e7565667bf775a065c20a98034de309f6fbbb6da10826d1efb1fe4cac79ac66ef1bbb5ce312f0b9413536b6be3432a7f8517f8410777a6eeecbc2fc2733956508c454b66cda278daa6ed4ea880b34c55f53fc204d910da23b9a4ddeae8778f510e792180c8ead5932758e72d14b4d499e61d7d19d853f9813e23b67bb155f92bd91e235b23ca6d2fa637500439e236d28b89b7cdd73d473fe88144d14b3392c5e069a05bfb4a1de063d8a671747e97833b3da306ab3fdc7a62a657e277c548cb508cced3dc3fd7fac78d893696d953f5c4369611fa222303f73d81c40ee4821b5b90435c553521a5329f9fda335177c3aa848b04d2195b6c4c249b4096b5980079637dbc48c593d30662100991fe47412dc8a0ae8f3f197781113e7702ed563ba9c15c63ca2b5d9885120bfd8672baab4e2897180865c4c6de604b95574b7ddd7415a26f7d73bec154d640fe3cd9f92b3b0d5695109c18e898ee64981d5b42f4c4707a48bd8d8ec8ca1465edc3a8e4a9bebe6762c898a4a75ca07023d867ce02d379eec51031b50e5afab2e0e68d8c6eb2eb79d845a94cb89f291b63f407bc4cbe8670e9a966b16db58d64d0c2a2ba968c33dd2b89b6c7a9ef015302df2b9df08f295226f445151588363d53f71a67557b060abdd67b212fb950cc2e348977d2b71d4d3a737b04b9daf6026b82794206b69319f9dae33bb541c77dad3b6542564cdffe9574deba1080e1fc6099142d10ee0849ca39454649cdfe21ff22366aea96336455558704a5228978b21024c09709197c986b0a4ccf2af6b794a74e5062b79164c85e8ec2eecd3c470d25d7c501929bb9d9092ba78820b7031423ccc92068a9458b7bd96cc50ce83f5cb7f6ba458019a832edbe88ea72010bac2b4b9d122d3d352f47258a1df755b7e34d69521051471927bfdd71c47f169a793a7b09797724c2723ac43b17c9670f6e6c86f4b58abf7d5ae1efbbb6a765c0fb09863e848891610af664af5cdd88268815873bf51ecc6b60cc8f11f9ffe64f989e63dfbd1ca6eaf8ed8eadd0244be2cd8689748952b01d1d481df370066760302ba087432af91978f76a0e8d75a0ac46828e238d14b0f0b51f2e341852e3cdc443cd41d13bef0f717bdb40314b96f1d1b68e7eacef04e811331a7db3795db42a10d40e9c32aed0844fdec380d2d2a2a31947f027ff0b29ea07fbc8d8aa36facf70a263fc7804c3a477b0af515a53b5d042a398a6913b7f6a3c99e545ab3bc58f4739a8e8efd2353b52322dcb8315a1eb1ebdc7d863dad7617decf8863e06019756f6ba3f2168d6e3f098f9f3cb65e6b0874186ea9c05c402e204f9ec293edd58671069e380c23ab49f8fe790488783c395a90dc6f64dfb33cf6e33d450914b93aba0fba2c6de5914dd8a5b53b2497e79bd204d26bc17d770c464c53aa3ef83638a40a7f5aa0e0f274434cf5716ec60b80820687986f4d539b46c24a7d8b4806a4b371b8590d39dc22b8551f4c85bb6e1ffbe3393e5601915ca50975e31ef8101526ff787e4df26f9fb5b02d7737891cf137bbb2f5babe81ec0bdbaebb7df8a7edaee50ec3fb133317c169874598707e19abebd45544d2c2a2633fcf4bc25e1886b5c2e5293ac30ce9b01ddc62769b016b3c02c290aaaf3703c5c206387c4917d6d2b0ed6e7c4ec68773d2d5bf476293f9b6fae7d75faf0d4435ac0d77257eae3996960ab7e7c1d989c0afcb03b24943355f720f9bc28f9af6503c573f655fff134ca0a87597fda48ce534ee8fda41624a31e0ef6c9808734959bf0ed4d3e26214378e3d9752d1fa7cbad3dc052e058f4b1243bd6ec66395e0c1755f9beda7cd22c6d39db442a4c96dbf477e50ee907a802021f35bbb851724688dafbb49a5f0382854c632a6ea6b91e26be90540f55df64ef64ea911735109af5bd142d26f211d051d0950c66d50cea106675295f756314de69dc641fefd1d4740b732ce79c91bbad6f5c3e64640cac02daff6b0922c34b1cbfa2c677ae7c7a152afc3a42892fd07b45b14e05456e1e9e17e4c1c519ffddb9aef851c043c189d450421c9c27a7b88062b986324a6ac6a42efc59b59a46a960b1ffde94a58ce88e09cb4018abc6d03c4caf201bad920598c7769bafebc3f43cf6512e496de8d9a9b5a5a9308a8343cf7a9d81d4893c3dbd99551c2bd5780b42dfe4f3865b6b1ff3075238e5001f2762dae8ff505e78c63ef33b7926252ba68f83bb6baccf39a80c87f6a4458c5a495b4bab0004919ac0d9368de88d2c61f6fc2d69e2a45096ef9111e7948672bc9d9124de75d9e953f8c659dba29b406e64d6dc63dbf709026d07547b8ba737e47f13ab54071e145a695364a57a9a398f52abc226bff647edb78e5435afec29ef3b9e9f86709420a01cebf5653d43f41677a1c6243b44fcf7404ce9379d14d5ec8ec3af2add3b021f652fbef1b7a6d4aa9f23028bbd6b3fc2c2653e0dc53f8f6311de01a14e3a122ebd0f042678373c8fefe945d3b6e2ca4ccc8252bd06f4ede4bd61ac2d54f58d6bc6c222e7a50f1604eb4991268b987be906c37a348d844cb205ca3e03a0a212352eeb046f8d004fb1e1749e8f5d2dd3bb1930ddf91e6b4a712563361d438126b0782aadebb45258238acb56fd1e037ac94ccbf7355fcd4af0ab708bea997bb062f4e1b16d975ea757e0b557158b9fb99a4d791709b97df3fa64bf23c833297d5b58e8bb265f4f3459997e74d6fc40fe6ab738e031ef44b13e1a855d4b3f07bdeace8809f83872fcecbd89340b451b5ce94042cc038a26333fdc8c885c454584ea6e36eb501b6e824e3ede518cec6c0889b1eba4ad9d9feb5ac51269213db34a9765fd475d1aa149fc90623b538c80dd61006909d0a29491df685eb9b742356bf852e11884a3a95b94ae5c935c25b9d9a03ed1ef635bc0a12e601fa5bf7aa0a8d89a06ea353ad3c5c0fcbdb05aa2fb9e882f1f1cf1fdfad8f1a7cb4cb6ec0ba54eacba600b90b71834fa831d38ed22f201b03fae14219eba5fbfc345205e6f69d5812daf3312e6eab5bdfe196a42af3fbc4fa29257219f0f90bbcc168478e1e1f4dbf4203346cd533f9a1e1513ac8c13debd2a0e55fbb662e0c084be34c4e55c7af83f91f18f7271277a023af5ce9fa145ebd33731d413816894d22cec41021041c8f8f5183bbee45fc3e0e13473c33f5904d07c5faa9d007f37f5c535ad43948ae5edcfc3e14252c1d60c18eb7204e667a47219b9e8ccb64dbfc4e2a8b16e64e7cc86bb7b8a70e4677c4b2488f834b699e4bca5e3d56e3d76dae94ff39c5b61af1a72e6871715c71fcfe0f90537636f7028f585071a7976c6b64dceb357614e0acf33918be1e4ade178c2c4ea055bf8d7c94e76d6d43a03fd38c89224afc35488da7792749787495f5221621b0b1ddbc6064807e2fdcecc9db81ec49539d07e4a7593d2b9bd4ed79fb70de67d5c21c76ed20e1c4209b17bd6b1b902b85fb43ebb02aed0e9664c91ac2352176cc34e0dfd6bef6d8b0abaff721f14dbb6541ee6d683a01c89fff93b4de5bfeff50bcb24ebdc890416d0990de26ecb5423076a3004dab8dd40470098d4fe111df4092c26dfc04dc393b0149a49406366ae5472b77c5c344c5dd1faf2fc823a84ea3d1c501cf985dcf604ec62ab64447db30a1e7c458273379ca64296d40067baba433986832d1057a8885c6519cc3afa927d6762b7a29e7f4be2e455bad0488a2675cdcc233db68f0e1a8b64fa55bab2dcc0ecb1970eb29ab764eb056a543672226a09ce5a0002b563950d685eb57e6e4aca0d97c003ae11eaf406fe187c8a26f8408d5985fe4d4cdcc3fa3c63dbae698a093da2593df503b86b7b9ea222400b39d864e03ff9c7ab1d9991eea89988d5d93e6e47a022bba120c2e7c5c41227bd806415f8366f147e04399552d66ebd566f9a7e5f40d6c0b0fb1c255a6cc73889070cfedc87784445bb7ff07f2daf1585b56e08a43ca8860af82f01c4113983f3047218e9b09ed9d420061150307ba36e55ff533967ac851dea910971254ad832e25b19231292a5d27edcaee35436cb121137fe1f6a77fb6a6adcf6528ca4f0af3cda0caffdde6d3a9075631eca6fabe66d4e7dc15f445007c4b0875d2c1af98ab89fcc5758045edcd77b87254c6ffa532fade269fb04261e33fcc40a89da9115a36f1a09ca8d7cdd468b4ce508d84334a19018c8411ead6c7315bad76f0f1f5665cebb587e138a323309ed8d94138d5bb2406172d1d3f1c29e8da4c4b4b2ea89c65daff97441eb2a9e94190fee76cb0bdfdd0c5fbba373885bce80d8feaeff9cfe8e7748624881e1cac880a49353437feb11326ceb147e355bdfa19aa49dd6b2989481c11f5a9ece244c6b45a766db626e2db5d820ba68d828edb39898b3e4a125bee287ac1396367665eb322358ac552b7c10c7766b1a92476b22e465afdd74bea701e0bdf6c3b66e910c6f1e3c986d3dda1fc37cf8e91aa1eb5b913cda01e956e743b6df5444bd79d2c442214882b311d4a836dfd43c374405d73b0e6e21f3df218418254e060fe5b426b7892ed3a231db77f09f81124973e40c7cbaf216393ab2e7b768c54f435741781c00d252abdd59b2a7deb401c1025ed7784b645a95f84ba6691d6c464696576085fb4204b477af6c7231820aa507a0c1524234f797f24379aaae4793d69d2b514956399d95bd5faa4e8d05070dd6d9e3b4f3779f00a768b3167152c00806dfb383f27b669ad3fead99be5272a84f75d34cf4d5ce476e9475f0221a82c3b9701e926ee8ce041fa4e59a71abb33882bb0a499504f0177d630f9ffc7db943fd7c0a99e90cbf88f0edcff7ca3d1a1196feebe270eb3fcfb6b75e2b51ee9b97c4871800d885c7cefedfec3c90ed3b9e0ca32dcf06bab90150f4ebc4becf1a225acbe8f1e79198f3b0262d5be0e977dd4ea20dce6885aff3401b943cefe3541d55c5f7dbf58dcd07398959277c11f4de8b60241ff73ed3218836cd88e8d99614e0fbb9f3104bfb907e949bd89e678a47e7ef0f092d165cb93cb7f442ed6732654fb567ae8f701c06d9c8a78a661bc2d3f71a7a537d97a41d71b4a22aed903dc4079c8649345ceb559ad408bdcce31dce95d02ccb3e1a1665e533b0a085f71dbab48844416132755e69a5b2d62eb2bf9bf9ca01c3a84f76da89e6792c92609e21cfec23db5d1036756c5a539d66fd9f2e2a8c7b8edf04b47cd102ecf74cc72eaa73974f9daa925ae44361cfbe72275d93bb09bf08116a207dd4260f4fffa4d95789ce28d365215767d447f548afbff565dda1760ca1709ac4426c2127424e6b0138f6470bc0b4e1afe10cbd309ea39657b933e0fb6512926b2618c294ce8742d3ae40359980037fdf78f955cf3f4004af2175e93bf593f14276905951deb443cd3a2094149a4d40122b4ddd60fb750cc68fdfc6b6ff13eb4a7881b23c1c417242ad7559d7ce3403d31747d78317e1dc8972cee257bef9603af45cacd72428c65a12b5e981655581a2c7556bbdc2880ffbcca85b916e1420fc359d0ac896bced91b77aa975ed90c176d677f3f6ab36beb1243089d7de7d6a31e075a759b310ce36824aa05b133d09366e17a6f92af9f254c04e2a250b9262a98edcbbf88ea2beed95734a9d85a83f3f91ea00f7f8915a2336ffed76c98dbded481382b8d12daf2d4b529cebe8a7d2e134a2220479d3336e4a27034b86a6c5b5c41e33cf07c5a0c3756a86b8dc1c8fe22b727099902e151c1e803c2a11ad1b7278d2421682941d4dfb13ffba0fa98cf9e0bbbb1010f34726ade51e1d798dd8c57d5cc98cc6f0a4c0b9b3b36d64ff3f54e1659b2cab0427199da7e12ff93da706447b3cd3909253e3bdba08912585031337aad38e810625985bb501f3f4ee2fbe12c7f5b162226ad2c9e5fca84a35eaca93657640373fdcd88cbf89fd048eb52d5cb98691a475b67b2b77d979ccf77c034b31dd2f9db7d023caa89a6613ee16c5df5b8600561f4e24e364569009df16ba1cd2bda9e9555b56b0df104c88267dac9cc957304e367be319b5febb3afdf0dfcfc560e380f78a623e7c5c4f86fbe03e94eb63780c733625e8822e8ef7c392d79cf970754dcba6ce833ac316376139895c1b64d118070c286c65f9e0ca1f48fc67f3f2dba86e63339fac4cc8276c95d08295a65bf4cfd2803033a54cd7c17218ccf7b0f6d38ecabf0c3e8a94b5409c09bee5a8d699c72f96e25b2ab18b4908eef4f6d089ff104bb344e245298ad3ed5ff1b6ff2a8ed47924595258b3674053b1494a58bee40266e5a988e33e288da7b0feb046df805b34baeac0d137d019198be78c189eedd5f23fc8afea0b8822e00f694ebea57c34013c148211ebf3a89b18ec18e09ceda6033ee3b1becec3344643c7d350cea7e59c626f970ebcbfbe88e88ff3cf0b6a940873d4a40548d4892d4706d3f2cf94453237f998e25de3e1ce00113268a37265ef063ae79e3d5df03ec87be4b6c322e7149ba8560bc7e5527a596d2133000a03a32ef5b453f88920afaac87f77e7edf0bbc154a67db349ce3160edbaf6231e867cbaf85c9dc4f92b59848b1ead1f5042a9b1eb97c422c2bea6757e2ffbef10dced8b67f2f574bc4e591fe312e270f107c3c7f889d5d676d1506cdd9344add043ec17039329dc5e33cdfac0bb3884e82188327bd816d6581e190f91f79489802567e8e99c075507fc2ec90b01a4296bfd71760c2054ee86562d99b470ab12b106661ba66da43da2a258f29141c5d20ec4c8eb564f002cc2aa0f3c92e67bbe289d3ee28b8415751e829d0ecc1cde149902293bdc003364f25b1c9d0da50a633c42b202682233e1b91a906e6fc2e72a6029fce80bd743adba272a53de022ebfb748a8567ec073ec5d63fa94d0b1ac723b882fc3a9d4c3e21d039f6b9aa4b7f255f7a84ad8f866010c3a47b51513b5ee03a8877684ebd92333d54ee790266effc9293360e3b9ae135ac51b3e3914f1c4a42308fc7b3bb551ea23be3a7437cf4e57da84af5fdf9616ffd8274cdcf34fbfbb620a23d8bbdc95e0e4eecdd46dc92dfa15755f9e8a94836faf4432e9a3ddcbc9d7c711ef48a1d944e4b17e6b627c4a201d8c2e10d407d8898ad1f7052e947cf3a34ebc1b50dc4dcc73931c34d9943bf1b29cee23b09316530dded5d643c98851c21171049472e4b653deec57030af626ddbf0475214141c3601abc10a50348d11c884e31c3c7d4e307dc27e823d8597696baeb49126ce4a175b5cc5b450f3ca52c98c7f2da6c1af60a6e796821d4a3873583af626f298a72f549de055c5a844508e0249890d8f48891578429cedaf97e8ad273175e6f4671b4bafc84c7006700014402f63ae66574cf135b73f16de214f56aebc6a7c92c9fb667e5c96e6ed01a3290ce3cf62cb421f1e007805b48cc3ef505e294b4cdd5de19758a628a2ccc80a3634d1ffcfdedef3abc06468e918567f8a6b678afd2df2077f5946cff400d06e20d17496afe5ea80068c712c520c2376568d79badab6ba08ca9db5736826a362f821725f1dd1b0367382ff564ae9bee27b64b08f3429e2f43aff07817655db6aa050df424a17c3b215017f81fea0d4a414f2da7aefe209460ea946b1716833317c80c336b539ab49c2acb2c552b77ff1956298fc7c8a0f378293f457d2120e51c29fc51beb9d5ad4ccd8c8577d81dc49c2d02a3956c4d50f1099a974c8a989c2b0619bac1cc500708be0f8085b1a8e558df0d809fbe5e15256605437df2f7655e0f7224e0557316abe8fd9fdbe0a4722f4db3bcb7ab8cb300a912196b626ab802cc6b406e08698a6ff271b9eb1401f34c7ff37613de934da3ba084fa750c436a5a93baa0bd5a060ac157d0ba3ec93b071f5dd323420b574d95961c095c6faffc52a6f31bc024be9ef84a52a89af928fca001809bf0636f5829e4c0180e1a78f960c656f73cee3dba58061bbe1a11b77dcd15d259bb3e1b235112b41087b892e6305d2ad0cefa27bbbbea0fc5a44ac494414f994f1b58195af3c16fd257702f3898f3d1de96006ccf37f40221376ac6d4da84f65e8236985e9dd578216119851210f815bae4954d5ddb2977ffebee1e5a0485412330ced77dddfec40eb83753db0824f4adf9913f99ed0ed81f8fff8f98eb01145d246e78b512009ee9f96e7d899d9a935494f8d5603b4ff7a0965006fb52525e29c7d33363a939376e2e6e1b51efd684a7fe0513f86877e3babbdef4f041e41686cfe327e85baa5c1f64879a61593b85cde66b4bb440b8e7d164e1c466319aa9e068a4b4a61900f436036681dbe8397fed2914b1f0ce0471fe3c3c38179acba931edc66bc4ef2d25d3b108d1e4e5659e65b4b72adf638382d853784325a285eeb061a6f9e9453a59670ed6abf1d8a27a5023bc84d4851dfbc700be58f1741997defaed9dee2fd73962bc8a537922c7badc401b1507d483297ee08cb717e930045c85d181d396fdbfc3f2189812a0ea5a9a61ed343bd9219b3eb5105797cf03d9d237a26466274af02669b828a4f234922ece899d62300f17f4d9ec1c7f2e28dd1b14aff40977775ec78a3a5f3c9cfdf742df2b3ce91790a0095c2154af7fa41fb2f9124ab1a1be94c21f62562ff15321ac66f940cf8f52ab3daac778ec6074030e4141ca5df9f791795b6df5f59e5e23c5500f39f4ed709516ddc452ee88f840101d6efae8dc8c88257d5cfcb770de29f4a3f4aeca9d2d3539dd73fc6478599498a41a99473e12bbb22b999da10aefad4b91d5add1fc3a9527f4a087f4469214b9556dd6a3b562f65657701a7a05546c3ede4a52b6f4b202caf48a825f9d2521ffe2e1f9b71c611f0fd6c73524a63b57d761cf3b09af6c0005ea30dd43e907674ecc6890031da44b81db37cb58caa8a69ab4aceccea9b86fd346485292c686a9cc12f37148630eff97dbf4ea0acc9dfb4dbab05d9062762f6d644451313dc1feb4994cb295ba16c93507a40abf61d1d1da7892dae1889bad00a6ae5243f221d654b95e9bbffb4cb9796374c973ac3860539d11b382c84e5bdd8c0e280f6fbfbbdcb8ebcc89ca34db1c64c903e2296acdd5fe46b1a3d36b145241b1b517ff6e8a6a747703e2867e953ed6ecd1446c3f6d7ba66fd64a4c5de208d9055cf2b1d256d5566b577a96acabfb0a0eb37210722f077f57258d854a1e3a0b7b7ddae2089e8ecc643c8e029ced3e23a73104765bd415c4db33ab06f2278a7024e2f3b7efcb9ce775019a4a409b08a8513827cc7adae10606b3b9e78fe6894ea8a002f3ffcd984b31b9682e14028906a1eac96a7a8d5ec3e88689138c5fbe699bf5f4e801b77b6a7656881db6f0673060a3a41a1ba58ba8ebeb271987d1b8378a605ce0d7e24493af384031f431db83ef0430e8bc3732a6d030268b71d13cd50d9bdb007605809470e882e0aa12af6100fbf7180f7e2f74d145a6405131892c55a5f39b08d3a740102a25e1d1d8aac00487e8a185c19ef5aef0e94c5bfa487770d55733ce7c27c3fa2937b0884b74de5a3c2dadf4fc7564f5709ba60f6a26b8839b613bde5276673c2ba402a53a1275dca5b520dffb0729c541b9b3b7f660f210bef34fc0f9d0d04bc2eca063dcb135589584c55f1d41ae2b064f0599977d73e12f9ae7a83613d84ececf8d2a8401968544762af7ae2a06b7ac791f2742d7a54c4230e8e731ee3023415809230576a55c10637de48007e6e876cca3db3180739f86c6afea595434f7936ad6e2341686e09269b8adae2823dec570933f03d81776a69a169f19f859523ab3ddc047096a98cd5accd03338480850d609f382096503bbdb41fc77b2e29a105d3de09c7a7fa4a67d5176b44bdc5724581fa8b9b3ba76e244f22a76b69ace38cd8389d9d0fab6a5fc67c0e1c636f95b031a45d8f3ea06c0bb26fa6a43404dec8eb9ede91c0b1b714d88ebbc6211515cd5cc018590cf481b78dc7ef8ccdb20c1f1a16202b03741de16b1e96ff7deeddca3fbc981e41d15cff85a6404af642e97e857c684c8eec31e23364962655c01d805ca3ade8c4b59393654b69a0ee67771e42dcf1764bf1a74982570787f514c86d26cf9d8d81d31dd74137d11f3a57bb467f90abdc7033d93d02340aee883b15d49b289f6bfb6cd64711c0f1a38daa3e304d75b742dba0474a7c7c1091cba8ffd63c2760f35615fe7676fbd6217ec98cef9152ecb3d1001160881a634449d8c5b212f5820295e6ba91c17da3c6ca73b871ff7255039d017f664f959e019bba6a00b9a3180e109092796a270d665c86d6881ce0b11e9d6f7a5bbebb2fbe5e12360a9b2a2c1d8496f26c8581dd38547e8008b30cf230c6f91004cd88dc91e3de3330d7fa3a932b3ea93ff4f772ebc38e52f234cfbe94afbaf32cba7a3b2dc418b05c7a51b2caba5e6c2356963cfce8566eb2ea6df1969eb8fb7a5f1038a0e991c2880515797f44d05400f8ca426a0568f96bfc26190937b2a0cbfea19370b0bfbe506ff7680951375c5d47199db32fd39c55a80ef9a3bbd880252b555f002a93c19813cacc66b2b5e4d88993fb23b4e804263856063a088cdf38af7d8544b4482841436de416df6c3131db691d73e12b6290870eedb9afc7227093573fcb614518eb658967c4ddcdeadcb3da59b35a3febd02d410b01e8b35390a5a89d12ecadf7ccdf4bfbbf0b6a9c337a571890483759499ccbf37d2db8a0e92382032f2a60f1962db6bf4a48573826e0bd59dc0350682dc4bfeca2c880dc176e0da9c1455d7467e8a9c2b04e4190870f1d2c7113815a3f152e71289fa3fd52dd081a3f2880b4cfa3c0893349f1dde4e69b385c97c5749ce724af1ffbf39c4f265cb585da9028e8d72a8dc4e66b3ceec8bb375e7b3c7e99a2610ad5312078afe6f52fc4d0620b754945bb8f7dc52c6fc06174b90a7447af32a8988254e7f30140f60fb05cb1dc1aa250f255047311d7fac55450bf4d1f77a0f5a4d254109354a204310cc0dadea22abb8897ec2db551dba7ca1366e85cb7daca2d32474f83532891447f996f994fd9b8c68e2778c26f28ebe0c1f2e7d57f059d64f3ac700ffa26ac4cbaa5c95741267a67fadf6c485f161135f49c436a56e0103240f0752cd3d21020ef0e82a8ea572e1db8b2d13db42fd67a7e207c7a731507afdc7bc9edc91cfaed96c4acde9439220c2f704bf9c05e9cf41c3bbd6b0e84a7acb918540f8a285bb188953391f46db84d8ab030b67e992efd72c1f625bad7892a577b086e70fe1ec15f06891dcecfac6dc3c4b31606f2d98359e56a97d1fed1e1f62a6d8d0b5b2543321e301faa9210eb7cce049c970dce887d878831f45197ba9e2cc8132cbeccb597a343fc9915b1bdac089c31344435a04eae2969927e3555eb1bd348851bfc64ff833c5a0c9a27cc168b13a1c5ea7a763d7c77368a863684b29b499cddcec8f6565fb4a5b150a4739712d71cd789c4474a3fc698d3665dce75483721cfb507e10072c68b706ea3043e9877b5dd02b965e373b50e3d37f9eda496a50c189152f11a57fe806a3b1f4337c19fe610e64eb513d5c01e38d51050b0462d387b0f4dc6145d793b104e7ee987717d0ad37a813201d438d0b56b279aeb58faa230243f539666fc3746647122970bf4e2a93c7a68bb104a33136a522140ab04eee58a6c61b6914533998c300f89261211c7cef2f959ae54d715bc1970afaa9ae14e9beb0a811fceb382910b4569c514a020a8511c6b9c5552f85423c5a5c2dee545ce1f3ece55867dbdd80d4d2559b97b19fa4919b22f8dbc865ffb941c7483887c9666416855d21caa288a225717bff1b99395ce35a4df324ba562028d3ee5fdbb6ef72b821e3460c305bfb6df6f3f3878c3b52d9f62a556cafe6c6ab2c49c99b53f72667e3d9cdb229a686c51abf4e6907986bbe722c2cdcfde61dc1cd7c657637f193405da4f661559019f2afc9c79ef2cd5135846e3c0ca4ac199934e8b55f8ab3f276b22b09abfd0a61ae08c67d1a6441b61d602b75c3ad2079847e0de55610402a7674df458d25b149fb754c0b0f907f2e88439c7522a57cc05d655173d55a004701bac14424fa5e96172bdde41f356d47cb0126457bfb99abc1ad3ac97f54986116786ba3f5d307f89c763328e8fad48090fb9b3a5d3b87ed2d2136e12ffbacc6d91bb05fb2c56dfb4ae7c280974339c0a4ece8d78a3998a0d0fcb80ff891f9c3e3e615e64ed6b16737aa9cb0438daed12f17242938968c567768ec2d45a00278db4da552ed002f1c9c2446f383dcc664780fbcdb9cbe4d48f58f781acc2f6a53b7522d0501e746bb11f72ee4218ae23e106ad43337769676790e312c60fcc907c21404b855c2b8a96b37a0621897480b0e11a6b504d65da87360074028ee64457b12420cc7f600ed98540fbba03d12e94ddffa4e0bf33dab9230817671726bf27fa6605e931347f4fadd20354c876bd02a6ac2db9fd68c07b4360e0a03492f11d859af1e125604bc04a6cf41d8cbafc868365bc330fe34580b6fb9d79cd7b27bbb53ab8827ced5b6953683aa3b14efb3b6a4950ab0232b62fc5b1886769f4dc5a406461d938a34c7b2bf4855b111e2c55589cb40329293222a26fdefeffbc68a5f0d649b9c41ea39a108b6c1d5287a497048fe72062abb7a9fcef4678590eda1cc0f98d3b85c8c95e5484e6a5d17a48dddcdd176b7904954563e27f35ffdc75923cdb1f387f1648d5663ec9141d3d289454e15e519261a62d76acc035bc7a51b03e682dd10bcfadffb0b0466ef9cf493d83e9b5c3a43a3ccce92e61a0adb7a270f05229e89c3deb513f6e0a1afc4396ee12ffe6b709bfd1405938923ee3e47fa22364dea4918b5c333c63c365b374a9d07e6362a51797cadde88f6100905af46af83072f11aafa2823ad7c8ff5ef1d0a2a16af30acf8c47a8b8c1d675ca6380c0d36e21fe2fa2800e507e107c38149d34948748e896edc1dd2617b155ddb155eea55fcdbd92d3571d00a3dad44b8a05eddba6234409b7856ae26432fa27b9e31681102766e4038be7f5b250e3dfcd4846e92fd1a7cfe05271cd986de28e9991aa7f6462f4c90003178fb8d1ea6e555c4de647359e8f5566caaf31c32f7c74d5f2fa25e0a620f04c50368bcf0c2f79f923d52f583be76ceb7eb90a91277052338a11982b80421d4ea68dc0eed22a51117efed7db9179f85e4dd5249eb421fa0fe07d42fdc75a7a552169a892a8e90db828b0022e3b0b36bd29cb5776e42e5baebabcf1b189ca47673e99dd1d5da88d667e4b909bd5ae386cb93215bd6a5d6e20af8325ca139d93fb6d8535f7a72130c7f1a3cea282019bb4d735a7791b6bad6ea9876793780c830c949618d29de62a2189ade50365778c4212239582726e84bb699344121116983d8a718dd03b47e0db5d7bbb1728b88b992dd017790dc75eb203eee1a0f81e65199d0181d4e1cafa811c8ee9e6780b609d9eccc7382e9e31245d11697b8ba860df0d5315bdd4384f2287729d5386d523531064ef3a3cf7a54db5b0c3a0ef14cb1f8e3d015cbc30c7eaf4af7e6a872372c5e1702a303f5044e5180f62038b7bd86fcade4aa62453d65fcd06f49735480987a5fe3dfe67d243baeca50503898d90d4dde4e602fef93ba10fff61104d8874a7a1bc51638512df5e671bca8d588a161fd7a806a11c8113c3ccc63c330fd78e0d5140f5ba8f6150131589e6132c444b593e191f6fb81e7560a9600712c1a2f013e2179bc421add7e85612e1ae7c34fb8d8974f2a2ed4b293360229a8d2cb19af3b8ac73d6f7ef6bdeddca2e7a84a00aaca6d326c23bbd30aa3f834aad1d0c7001eaf5d19a7532fa8a32ed7920c1cd5100748433c207eb222fa83aceece6fd5003c1fa83511f1b54c33161080e77461bc64a34af25182aa5088faef33eda1de9e93d25c991210f308c8992fc8d2e2e769a6fea48f41c547c8effb1896cd46c820c9064d0b4c7e2dc923e976a5531a6ce329fd2f5092100fbb195931048b1816f9ca01fe863061a8b5928a67ba40e427e938cd71d811c4bceb3037c0ee8d1c5de6589f7c940f2b84d3e72dd1933188c46275b0dd1ea65306b3e8f1c21bb9ac1281c195aac4146a434861b59de93e899e78423ec4f9f39729e0291ad26d2f578eb5f53e40326df9122a078993b95d8b04464725a70b037120162f83c182ecfd78465ed941e5c418940e5b0391e6e87fac840c787a9eee45953a9c64c6f389a2ebea2d1ce02cb10f430373ff67d305849fe6a1997d000277300db90c130cec9beba329f2b3c37983e64fe74039911f2ec87d74e19d0c5cd904c10ff20f76e57577baf2a1e806447083135f2b3d394c196f3cdc557e41606a7ef055120963241018918f76454a92de4915e336f768b744e12b6cd6e2688e6b31e7fd882312107bc98fec14c216583a9aa8100f8c3287d76cba62b3870f4e59745c87a48e16a2f4a3a94f7c259ac21547785fa02221f94e09b059805e3785f7ef3c82f2c3dc5c20de4733c38a38906754692151d4ed834f2327a412b9b0315d6bbc2877269e6cdf4ede3e7522766d332e17017e2d85f1dd9dfb5465a5ac0abd90d1121087faee2754d218171798650da82391e836184d0cfc0123bcb327d28a844fc35f06811949c24c249fdb90ce6fe0107179d4b091672e6daa9387d9879ed71f80b03913cfe257691b38ce19b242bcdcc475fe97f7a21dd1b8ea9a328ed1aa57682fcf5c43dad905de4d55d8b3b219de0c6015484ca794e47d90b8bd5ba2fb1c58ada84e3f1e7021338716a9582abfe42ff8b6ca79ad5ac85ef9ea54a7711b35daa8bcfe6c1f22a26bd6bcf0df2fc153432ebbe44c0e21a8c292ef83fa074da577bed7a0ad4adb2bdb5a9eff9aaa13d2cf35841e0d94601fb531b9cd7165537c22a1bfed558298b48181951d66cff62e2a8112a6dc35304c72f3988749cfe8df5fa0b8dfdfe21392a0fb408711e6642a40e5b550c21cc4bf2f075aa3e5ba57311c08148817c8d84f07a53b4034bb0e4e6b4daf565dbb74ee8c0559c3f5e8e354965470d700a37dd156c51eca2a07300a07e3c89bf9b4895223a3d7c6217c84cba68bf7c44e66b06aca9fb562c6fc120ab23294b5450ce2259f08bb5a8d872601b59c2184cd0b7db6a2fd6c7172f77b337b08ca043afbb7965e686c1945b9918b15fcd8ce98eb14087aaad14f3f91e61ff042d359eadba6b2b15132b233b99439cb3807ecc69d78d66fe798adb0d6050ce5290c5b706d1274fe93f5fa9791b10c3236e7f6aae7b0cbbc1102cfb4bff36b9a133cfe8b994383cc4a11499f89c5d4d9037fa1d2fc153d6bda724ebbb6f5a374f11a1588a706405797c5376008765ea70fd3451bfa79806732718e005f3e1388a77863d7ff8a1f1d1bd6845bfd73edc4d1dc304ba2843a4934d3bb0fa491c3cd62e063e644e921e09c84d55c35afe13434000d27a635a0d869f5d1609f59a568af06f434796337d520c4f928171757f86b96e43e3d9992ce42c4f10ca044521522d321bfc7abd915075fb7bd26bd107da3413fed8bc4152fe214cda777ac378ae23b2b99ac2d9cb9ca1a67070709da619b527c0c348f414552a58d46e38e90d7246a0cefbf2aa0042ee07407ef5e864b1e2bfaa113232a920a3b391b182f8d344f302a04006538c4351c0ddfdc8940e23aa38a5b421489ecb9dd46d650fe874227971ce4b2fece41404d19b58a908e2852a8dea9f41bf3772b28d4556a70916d96e39ba44ae25f51efe4c8cd96dd38a01f4eaf94ed9a2aa6aa24c5e7256b4e18f5968be15b5f6683c3fcf8831bff74354961f353bfa2c5eb9ca9a184a2cd4fc39a3f35bee5b193340ea7fe5f45fe714507fb9706a3cacef996649c6948c81c925e178bcc1a53ff66e2fb2041a056fba5a29f69ade8ab421f9a1f3dfab0f029a726a50a9c69434a9fe0665d780be14f3ec99d7672100ed0efc7bc0e00df3d441933eec30f94e5bc19ebb30d665efaa941430fba1c0d20cf177798e42dc19ad44d13bbdb997523e6bef446b25edd61907f4c20b59cd51d98c7727f36f5e9d7abdc6a5182fa5ba20dd04728d66a2a8a17e4010e9a75cf136dcb96db8047dede579e2fbd7496993c39be6e32230ee341796c37ade3506679fdf31b1c1604881de30e91fadb3ef3ed19d12d8ce44a121ddb7da1883e769d68e9884c6826470171f2d72cc64e985e9a096f8c22f6971b29b1af7121d6da50dba0e8db47229cc86c93e6a5b914d3f0e44557ebaab277521f9f41f52a27de0d11feadc4624acd51e7c498fdc57d2740b10117cb06fe8aa87d4f16d7eb096c43b479c3270eea82b98824ef67b59fe3fc715b13e7d2b836e55c5dc8d4d160bfc233d4b067d4e5f0e9504658638f3d5ff63399805ba54d7085be1f44121c802ba9f22b103166e8be5b153ac7bea4d5fd704dc43866bfa061e610b52e0f559d0348d5eeb881277a8bb25bbe6e399f80c2ea24917697c73a73c514c4fd2a058a92230c4c4261b9f79bdf272152425075831ee5c02cb07729a54eef8fa155f1c6042de405e261c15ebbda698207437ef374c490b4ebc734549391da623bbb3ee36d5bbe23901883a97b2ab4f50608f9df3b5c6cabdc25b55ab23bd2db76a969d451f884a94e569d29f36286b1e46957dfce1400461554b1fd82e1046cfdaf1d533ea79daa837481016067043b2da416d210d7e03e4614841e4dab36df55b72df3b032c34f50bd7b0df8604992aa554d76cb66417ecc72d5b708c292ede4ca49382bc99d7d0ae7a86e23b25a7b381da6d6e2140d40edbd5d09f0ceff619a562aad2692bf5b51d9a23434ef0c7491e043f86d414aa40e714b724062713006e95b5b2e3d2c4688bc18cae10134cf3814c1e041b05412ba78375ad89d17b664540669e0838f4c2df941cfa700a682e80ef9b9384c54db8cc19e7478a94888fdde0f4e438f5fd48339203e087f3584a47b0047a6321d0417998033d6214c114791dc74fdae37bd756a40d420dec2265d5ef23a14f8fed44c9c45b7f4cdc507c75c3ac3dd578c6a64b859727e0028bd18013c246a3d5d9284772f205e8d6df94be154e501731739bc8f0dd9e84b82ebb6d3b196efebe7fa7745d3c54bb56d1a9546ba522120e845ab8a610c59e0fdbf81949baddc3dedba944d650ffadae2b20cf1d9ec03a225ae0ba3dd37b782d851fd3359c899a653bf6a13a9537895aaa12d7c732c1882dbd699fc515be818a86123fb94fc6ed05d1e2e7406d3d80b7bc11abd3a4f5fa498a56ef396f19cab2fe7fd43f91876ce8515b6612ba2ea64c73429b59a79910a8db4d65c4638c89967cf25f31b33989b08cece43532ca74a39db58e4e97d1515bbb536fcf40ed9a6a51637e879a7afd902c35184adc9c44b09af67d021b0dc436b3b0afe87808f9182f8326b4471441701a0f3090368dd9ca9d7ff6eec29577b9cb837c73a9d84941f4401ed82520161d2e014c46d5ded4366af79ad5852afc0acc97622bb49550c9c77082499a27fe92210d00d281983f3cc7da9f2e320ae707cd9c9d7696db78fde5d7406a8e6bc04ef8b9d6ba24ae07d02e7a4ee72e38515e7137a288e8d45041c14b9eceed39e8b24c4fca74046f7acc78028670251858ba546f97542e2809505805b2b3525d447c3592ccfa2280cdb9849d371d6fb69d0284e6d64f6462fa0ce4c3e8c55a406846b5f84239c41998262496e8d05f34c4a410ec6e0472bc1de43edc81375e532b20e634834867565790c7d033fec7d8f7f110eca2736c648fbaa7dc0e2783a02830532d5c77bc20ebdbafd843f54736648b9ff76848d2e6146fc2fef855673f3e6932f48f2562b5175ea6375c824eb2badeab1fead92bef90eaf73bfc2eda86104f7013506e72bc05747dcc54dcdc78b0b2ad2509feb85a8fc0977aa71c617086cabf8fc6a22bb6beabdb5a12e369927fc38d95d5ab1683be5f5df4de2f809e4a0e205990943dd5b57c139d16ae7e62636f55b4166e06ba6fd23aa9591601dc4c8b8a7b3db085683d9009b7f16ae64e1d7377cfc6a5c12a190f8b6b2361b2b73ff5ba46d2e743a50e9a6b07c88b8bb074b6c360959c82b8d6d80dd51c1b5915195743d0496d12fac4c0b9fad5455c78af28582b64672dfde42f4f3e77afce2997375ea70c3d2a126096e4b1e65fd0231cad20eeca98423e25525ca43c20855db7cd304e7e78be57c5a08104dc50eab58d17b88892c385099e4be842c78cebfd3c456f10729078133c72d8a42eaecd6ad638bc773bcd012efb16428b47086d7b2d13951bb23f5f3ef1514af263ea44c550fbe65d771055f10a4ebe0a40c0032f565a23517955b2ba7374d6549b63d066598f7ee7ac4f6fb43b6a76c50a739a47c55f9727f94f85ef38c4bcd207c218dcd2a7eeb576772bb627957f844f36b68c4e0f0b13d7c622b2163a81ef6da6de289fc69c2923316f450609fb98918d22190890b15aaaa582ffcbc5d1c9a5a8c1672b9949d03545ba7f3701a29fa1d0990dcee8a1f47f365d4777c610dc1ea67843e16491f6e4cd4facbc3aafe229e2a380bfb4a1fd58fca4f11d1386b95a605568b4835d5b9a39635fbb0448122436259ebfe7e1a6a85d7156269378a06d6b2d4e98f0584c751df3d3fee0c62d602858fef4a2dfffd91ea497dd66b2bf826c02e406e4b982c8d73b5674b489a203a32ab94919dbd6c6acd3aaf39f319c56a803b87c80f2ef9a02ec2bae8725d703153aa0ee83960641374469fd89071abbe1c22ffb8e1a4a25b6842263d72194acb8e756d6264fec8e9bf9aaf182a8491788b645884b2490589b8fcfec749dfd1e2a3fb53765226de61e2c49ad632e41e235630aab412eee56ce9499c8f67e1bcd4da9ff0ee650e6f5f8a96370784ff72b7fc6d8f2388462f590fad319b91240ff86a50298c811a05daeef6b5f090c4c1410ddc66f31214440cd3893266e38f7523e030fdae8e7de313b014801735429521b5e5c3670c453f6670a62d73e828a33b855281b34ab7b7a0d4e56c4ce29ecae180603e19beb50086386ab3c7be790673b9c74650db8feb6cf293b762bfb1486d30af50ce943241ed04a8107dbec728687582107c2f6965403a427cc5541944cc992a7d8566491139323600d4e64467b9b8d7f150eade9396bc8b8de309be606d849d06cfbe20975f4d6b8c85c26e706cc600de6b04ba43e4692a5a99eec99cc3c6d2e6f6017ac0604024ed81867bc3a2a57819511aaedaf591c318cf841c34ee2e83090ef1bb03dcb2eeb7d9d882cff3969b082f36150cdcbd7bdcb177a634cff5f6cff6ee085c64f8e941f208d5b91f86655ce3a3d7c4dced3ed0feef8b61b053b95f18d5faffe650012c7908a72ff326655e2c0e748d8186073e4ade4f227de145b1f8149f2785353a3a3cac158ad2c351ae83857b8893394143a83af006b7c211447afb5d47a41e5be85543b79d2950b0150249b537291856be5dbef5efab767a0aa6dad78807f11f765b10beafbd1f3a84dd70621177b369c1d40c96c7a7de84d8ccca1d2b8951386db40a10c868ea621568de79ef1c88790ffba670ba44c0dd0b8731ee785274a8ba6afbd8828a9d298a58d38a2ec6db74909d34fafc606f88df98e4b34fda503b827f8fc5568660b29bb5f07b5e9d1357ea21285b1410d8ea4a2ca10ac6bd23e05e6f20b6221f8d6dada0f7a943dfcdb099020c9ee0ab058fa0760ebabcd10090f0c77f043045497bd8a83a9ba308eccad806875892dec94ac0232c92f568a64dde80a0557135a473b15dec1747f8d893c8153b1f0467a0cee6ff97a15ee1fe0356b248a8a274b466f0af51ae2dbfe089689100726062d9229b0818fa6ad2c4b0cabf9ee2c6c8fab55bdd43a5d6850d2c6efec9898b49f3bdb29f5a9c664182f4c63e133fce0ccdc1dc654f43b3f946e34ef3c79d3a934b21cc539a51414baf8ff724308cfd74d60c87ebc1388ec8ab5002ad4e6aad36335526f5d1605748afbcd5819863c7ab7257d85774b4ef07dc1b4230e708a335928bf9a12007d6fa6b8debcfeacc24310bfb43fda526540ea93d3c2663e045fe3440aba3cc9bba4a11383e8d1fe0d8216446452f6681bc4fab42bd5a20cc800b2cde2c98cc873e5285f5c4be4df2edbe6d9d8297fad0cd9d2579e8a8889b655e45909c32df7c8b8746b5bf6ba9cbbc6f218d574be0181d0a8cd99f72729dcafe713f82a819c8dd98b00a7205f37180e47cbcfa69863146cb051b493b3a6bcf3a5854782eb047db6556e5da23e5e5f5322bde876a1f41868d577abb9e8b87e1b044cb6d6b09564f17c1c307c9c2eb288db99455e401f16ef45c88b2c08bb35b5b04b6b32e1cf23e221440b4e91a40675180f0e1fe58b0422cd51eb8e5e4cbd624241a32655142c135d3d57e09bdae63554b02b3b4cd86a96fd3cf1e75c285958a6c67b49ba3ab1c2910ae49ac17af5b9b554477ad3424bd32baa5b2541b991e1de27f7b4af4d0c62900b3b0c3f03764436e93a66debbe6d63864d4964e2794da11a1a583f2fde91a8902e668c8c089ee17f153ce4a0fb68f2c32ac6f96e6b235e7df99589a9ebe44ced435035aa04c21ac2e5046f5179e64a0d183485005827737e26fd865bca1ef66b136d8983a7f1f6a2ef3a64d2f50adf9e3809ec2bc703a0a8c362b17a2235e7187ca04c3baf57955ae7087fb4afc3674586c50bb06b0ace48efd80e05be78755f6554b30839599b41badc9927af6c0fc1c7f239839ac0f687ca287e00bcc95c721079262b1453a17a1821058b7b57fdb1fb13edfec5d37401e39f5aea138679a138163a6e3d8eaac7ece4215389e9d2eec15ae67a83c0f626d1404f946ad0e6295a16c43e2a08feba6070afeba5db6346b31e31120ac149ac206f02d131653e6ab2a003d0e0fdf85d98459a4773c5a6794363210fe52d86a1ae97b3bd87a2e651e5494a2b77ee6b1b665dffcaaa98f6516d151bf7de8813b86da695a1a9050a5b3ac4370bd0884bf84479673ef764cae4272dd0e59ac47d624f205eb845d9ad80e3e4bff180aedfea18b3810d3a9ff2ac618d779caeaf9363c4f9b616ea6a44e56998e0637d927f7dcfac4aa5d87088af831238fa5a479a94e8cfb423d0137f70d4e122b40008fec2cfefd2f79813c69cc82080ac8b13b38459bfd30c092d3b4cf4f8120b33454b7847aebf56dfa6350aafdb37a657aca6a09faf706cb322a7fcbfaaa59f22efbe9b99a5820e566b97bc009b37eefb1445428004806ab57a35539bafe48a776d947ba7753152333717691077e899c54d9f158bfd1124486d80127cf14311d339c8b899cb1016cf42d85cbcdeb3ccf864fd9ff9177ffe82c18aa4b592585f510c37dc1d8876dc4db88e0b270b651e0db81370afca3ea40bfe633cb8e90d9d758215b8eb1b1e07f138cbfa8e500100df8db1ebaf3c1aacba1787613035764ff645e8b61064f974fad3c3299fbcc578c77e0253e01c44ad7f3393d3df8a10dc8bd76a7d42b4246c30a0ccc59b083390c83a5552ee5a196f88e471a9bf936109d4738d076d4b3ef6d36631e4322711e1a805368489fcfb758a3f5086069062aeb16c7547e9c8dc7207820038f3c468137daa85705c0cde169304ae0873ea25cf8b01da998f2fe27ee8a12b745c495369df7763be2e89c0ed53981956bebc13dc3ba83ac5265fa95e63f7fc4c39a5845ef0a2378764041cbb200874eab48bdd74b591b40d311b8d5c1049ebd22e26a4f6399283db168451461b98044586b131ae8d0562de20d330fe6b91dc70e2f0b8a1b3b9253d8363542882e43768880e7d985437e5c752caa027f7f9bf2d21a6046b851843c220621062182d92abe237d62fcc72d5b3e69204d97a52f69a657f109622fb39f05ff21768dc50244cd28c195cf76d432f29cdcbc65b7df6584e02a37ce6ee9099816cb291772b060287dc09c0673368f45d9ebb540ae2a0019fdda45000b82fb95dabf6664e389cfbf972d28f867ea34d7f099a6e9b47fc68c99b68bc91bf246ee571c5db6d56951dce9dd402e6fdcc7823cfc8b2288c32839e1d79449fa3cbfea8a07740292deab9fe64ba8c3d3cce1d5a46986bf6dcfb28f22380cf1f67c3650d12ba638e2aa0b158215c9dcb2cd78a153fc7da6eff016bec13934c9b85fcc0fc834ee48204537fb7b7d371e0bc895e13615d76e046608d9661fef01d4a68c63d753c3b9b25991b265e8c14267f75a75abd6369313e5e597a391570824a75d7071bda5e11144ebf815631133f26a5a613ba657674f1734eb031ce9a7fbcb3ec7b02cbb150199275d2819da406d853c9658b0ed433317e8f7dbb138f84b11d75f955c7b5fff9fac9439de9b673380b67562659b9a90f781412d223d19798a53e6978f6c8b13d0a61ccda7f2b42ee6d08f11f6f5e3793bf70caca82700b2db9576ac0af0a2ff5c1bd12b10773a67167e529adb9999865c6d464560ccd646beb21e17961e2398a4ca6316d52e2b9dc580a5744e4fae5f47c47384c99aafa781c0c2a500b58273bfe2dcd9598d06327aa2acbbd03e3640dbf07de04726906b85f53bfc9910d966f8818f2f2204f37e113a2a86a435311a6e275b45a43e14fec016cda0b63bb84c4d092c555a23aa9839023c6d4ffaa85b49d6e3278a982b583c364660310a8c63f23edaf4504a986bf63f6cb41fb195e427705c100906b47696c17172e6451029cc4085c8f5e7110d1f39512ba0503a9aba067ecf173ff2177fe0a48037ebaff8f746c35e604bc018e1fa34ee2826eb2826b507810c3a2ba73f238d518975dfda4136030b4a04a8f33a707fa04c6a70f184da22162214e0232d819566c53bc4e3ac02ead593d36ad87fc8dc9869e576d361242461fb896e4038a77c48d7dcba37f0e10936bb2ba7a2d62d5abc1ca4c0823c6973831a0018ea6196f69932bc8e4cf64d5d7469419769bdcbf272cabb07590b53a42d681bb1ea3e9273484b8e74465ed72fe3e8ab511c81254735191fc522b7d90959b1e97b5a795f665c1af51960fac75e79a5954d7cc8bc78b075824d399b8d4e01259aee264fd2a3fb9c2c5c2551951bf7b27c0c05080864628c50f65809b2dbebd7c5680912adb52953c777e81d239a7447830b8a0db9b2ddd2ae3406c52719ba414819e7a7ce3ab3c47ac341cdd5541e3b505e967753809afe91e8008827d05abea796b909b1ae7af8fb479a0475d0ed8f7f95e339138b558be245397ecc3a6e0f0eeccdc437320efcebc6b918de0961e4a2d28f1b232b8538b10df6c86e8a57d7d01c5e7bce2f0761d402119386f78dffd12b1539238a58897b0960fbcdee851f8a604762d7f435bc335a01b6cec8724ccbc06683ffd40a4380fa72a00b68f6d3c099e5c4699a04279a07b3f123cd0e58a423023b166211f4236f68b275ed0e4221c9ea7e60d7cdbed598236cf32ca3560af7357aae05d16865300d2321b3baa2457f5f82b8951d232f6ff6826cde759b12e458aabe0e14356239165754981e890e8fd7563f65f2fbb55a3940138094239b492e0d03a66f30eb6a76a6c10854758b824c929125206f9da2bfeb220360093b474035648924f6286deadf91da57467394fd666981e5aca80cee77c04f1d12c305898aad5dcc6550716cc03ef3c1bf2c302b113d159f63a7b5d210fd4c62234e5f5fc89310521f67c5057f3dbde908673a826b2d5b444902cd2b95a8f6f9c7e1483d7e0b05490e186c804479b8d22e42a4915c44b6039857859018f46ac5aa9e9fa08fef03b4da972acfac9daf9ba2070bb3620337e48d27cc475fe4193320813bf9b5f72ab27599be9e48315c32b67266650f42f3cce8909a78669480209fb16951f9fe535590522e671c8083bc23890737895c0bb36f1df147db471a5e406530203c9aae1a239064802056d67e86036a0209b2b6f86b9ed028a14d7198424efe7eb2fe851be9da8a31c2891d09de459a6f5c73f1382919c21a4eb2791c879ca7ce62386d11e1abd36e62567d1610e8316265c1a5d47ac3bfd3acc29fc8168ed2b1a7b04bb6ceb0a6fdd586d9df63ce2c3a991b6a97331091da3b5e347f978f3525b20404deb8206103e36fa49505d21894811e2fb3aecbeb66ae19219adaec4868052cafe469201c97c9baa25584f961833c9276234848ec746a310e3350114e5bf9eea5b1f1362bcbb8ff6d385541bd17fac8ed41e19ab6d90a4c648e9058cef139add29c23d244c75430c00150f4f35c824d85f75fe7524fdd0cd49ad46ef35a457405f916db86f835d2d195319491eaade15f7e2bbd165e66764d4279415b8bf06544e3a45ac9106909559519523687e8cc321ab1832dc2db1c913c837f49e6e36e523cee2df18af072d7680c179059b67af185e5f6116ca728c52e16aa58de184de65ed6ca34ae3fcf9493711c3c9f2c69de16b9b30a83e928b826feb40c885fe64b3a83148596be7c045d951413e874675bbea8d4fbe0f3b5bbeb2837e942dcee69f6e13f8c9c4ac2abbf28e3a1624a2413252f9e1f57cbe34032272bedcf87df652b1ec8f493b4e9fe12bee5d0dc820c56134e3b78abad84a07ab03f9666aa3c60042e73eaba3f2a5b154fccfbb98079c43b0b8a0ca7873bb9461eb8cd9b672c035a496607e2266363d2b701fc45be2fa046eff741bd7b5e4d5deedc6038305dddee684a1f4814a6496137a4e77a4a2d5fad876ee5cc60a94a0544fce66e4d3cc37ccb809ae1aa91cf9df20d878545c8598fe44fb53b42c0657e65fa363b597cb02f75675347fc7b07ce71edc212651dae291b837e35de81b37f3b72ce17c5ebe37faead2755146d209e20ee8cb673ceb205c6901e28272a2a30d465cc9f549b2f1a80b8af946ee9c6facef0048bce10934282cffcadc44434e0e37e61269d54b7aa3b17ceec7a8ce41931d4dc7ce70bee976fa0ccf88f6fbfc63edfd7c68d6097ebf20709b31e73c87060cd3c98c38793d0b3bbaa7617ed70275e8194f2e29d2d4efc0be0273176026e5750aa0f7cebb785f78ce7db1f07ea92e228b40cb1e7fef2738c8f9b01357b8c7688b3a4c08b39d4e89f10f41d4146650ce32535e0cb7269b88ef4f4ceef92bc026161905049d19eb71c0b9dbc5a3d42421765ffad91dfdded7882184c32512fa31db207837f48b19a5451175a2293118e2735732590a0f179e67cb9254eef46e4829efec0420ec2495ea5668a17bfe91fa10060aed43076888ce77375a547cfb78e6bda07efc5e081c2cad694ddf569c6fcbdbd7e1984a9892edea94cc5f3a7eec04a5a6906a959853819d8f07dfe3f7aef7b90210c185faea24683305023b9c3f38a1b8b5fd6769872fa4fcf7a7df9d44af785f6e377b66fe60e9b98b8756351c4dbc428a4e8d184faa42992b19fcb946ddc4eb3482c9d0743695972cb609a188b65128c1f6e19161ea66b500d4faf1a449687dd88515ff681b8b69e0aee7f7de4b7b219dd1b479feb0c5755095b0bedd8ccde51204ef77d311e2770d7d8a747c9d022c616d644743e481d9d033f293875f509be8e63a225f9dcba326d571f2437be7d9bf3e7e76fdb098a5d5f70dc48519602287e137d38fe00149fab18f622699c82369604fb6d9dc0967b775e170fd51ff96739938f465800ae6ab1404c36a0f2e9497bebc8ceb17b3d11618ea4a4687d64a672c7bfa2954518b5466ed8b87bb0811928ca3af8e44809ee7d7cddc1d4bf97e4598293e34fd6309a171370e5e14d6d0129b526d4fe5fd214df2d04443383517603fe8a64d08720a6bea85b5c78cf55ed5fd2db502fadcc3b779bd7ae6ff2ca831ecd20c3c473d6599f8c27a2acb14bdfa20e53db8a8c8f4d1d6116a7578ae687fbbb2965039f04a7908c319e4cfc9a6eaa78aceb96c805e85e5ae6783bfe40d0e25b64f15f042c79576e6a1daf00d842509bca7ae62d45df2217838f1ee01004bb3285d18f751a2df1fba14f6c84f9991d71ee85c64525b91b5228ff77eef399ffc8f1b41e045912ae5e3b48a65a6bc529cb2f8cfa090d310ad3e8fd8229035c0710aa0f73e46ded1bd35680e1ada2ac48458f1589a3d7b4cf6605641f12c9eb9ada9497e2fc8078c0ff54536d7ce3478921282a9886e0e650d7623242b4ff3bdb6181c8d692e6dda37817825c09952304a5b9d6597d3f1d280df109f65e4e127810b56101c84f3fab3989b10d44b9e3f9cf58ab0874fde427c530afeb2b998d360ecae6a0d9e431c321c9e74368d9bc418b9c3ff417937aad83888e9ab8d69cc745f81dd553593cdab8c711cf5800f707a5ffaa9d9b5251c3afc435f1b2ca81eede9f9103ab1e5eabca487ec4762972dc368509e431768f1300f2d5951b7655f76611134ced358658a0006447f7e020114fe5ff40126d90aaa3bcc4b65f88837d211d330d7ec519d5e2f35ae1f9b08468f7a82f1518a96289d0a1fd6aac9e4b823be8cb780d8470207058dc6ae15c3a14f3a5c3044f9f4708a28c9fa21da940d3dae375383e3e5850adf4cb83b1da6f03ce3be863fee5370971ea6aa7aa5fcbc043871022ab38906b1f62ea9b72706481178d4fb3055b5bfa0fde452df24aa6248f9b3ffc3ef44e1455a7628bde59ee23e2b0ae2c9c0593a894fcbaf2478761b8aa7ce95210e7bb026b543ebbd7e0f909e3813d5fc5f6f1e199e978f1a512e0bb9db0ba5b3310724fb5acf0dd6ce1006aca413adc0cc43ce8223cd01e6328daeb4b9ba1ea33e9058e576fcb376b489770afc065f35a586eb38a5039bcd1e75cc830e25076291c78b7d57f8677c139e26ea919847ff4be3604290fcd372745452bcd48c02c9791c4e4e706bf1e35321b59f05ee0c2f73c7746973ac99c4f0ec72ec16baa178add55d91aa3767a2ca60f951ec1c753e885c743bf8b11948e9fec63ccc50e51a7cf8d5d07e88e2b8f55a1186ed608191c18f1a51dbda9f40fbe0f592ed7b0471cee3f692aba4f3fffca46d80aa87a561bd67349e2a93de4c9f05f70211d9613a3ef341ea80ce7d7ec428885d41475c945c20160d8d09a87529a5f066ac48bda0cdda9928325e4644685849d29ea57d54e5a006340de33438b0869e833a7a044045fcf6b15d4bb6bc7126bc795cc00c062700cd6055b9d8b43a9261bb833a600fae04a48cbf445e0276504837dab56fe068872d9fa421346359517f1644eb4586d9eb3fa79343c0daee729272104c29007adb78c030ff2b8fcac1071821fa7d602641694cc44c30ce5bb453091a9b26f03730f415bb33e0cee95b70c8d019df81aca753e9a9adbd07954ddde6d2015086a4ce67b5d2d1c5aeafe0aa7c07279f5daf243e72c5eefbb806e04268cdee2c7fbaf5bc97c7f564f96b7d6ea8d016391d961e9b9c26c49c9a5f7e4e9d9e791ba1f94c05e5165da5b944e40f1f3a84502e257446ad4299a4509fe3c8e1b53a035a09f1c8de99c3b73a41d4038f8f64ee47e39254fea657617cbdcddd45c3a0f95a00fa903c65d2e5dcbe421e9b6a4733e3febd04c0ad0d59786762c0c2f7ce407deba56e22b790f96e357036fc5fce996e7ba7d8f083e94fa4075a48d0e7ca86c8dca459cb6aa5abf394c595de189ad170161db154597f2468c35518c89c1e93d68b94eaa53d332a016866ca6250dfcc278e2880ba05413e0e038553302efb68ebae97b0d1234ddb55880d52140a8dbb7409e9af3ae57819d6fb96614260a261784ab8aa16f4145547fea0763617d9086259f19a37c52a673ee3f4ee67479d150fedb6e3f0e537956c903c3dfe0c32695495e820b5e1852ac21ea6a93706b55a31960ceaffa462a5f496ca166cf75ee93f87e46d5a5f73baf23672c985095d2a0c39b856def2a2ea9117f8ee5f147f901c5b048ca40ab785aad8c9ab152586f5208b020383d210168d9ca4880de929ec121d16310858a06ebe0ceccdb0266d39460ba637643023fb8bdc8e4f63531fabce999e233be5c437559d271a014edac84bf87c468a2ae2b200083495c331c6b9a87a60602409d76ed80c64bb5a7312cfb302eef2b91a12ca0e477b31c0cbd1581af5d84330a0c45c06e34aeea1135861a1bc8408b01164a5311a73054da7e5deddc5904e7461e3cfbd074056a88ba76ea741c4ca37bfcb59f116226750b2a7095063fa3eb2d414d05a20d4d444287b60484575854db123ff7de2acb3e8df7bd5d3a8872db16e94be7acce9950ee358a51f317e08459aadd2791a5ac033317775d13bcf405c4156e2422a28c5a965635d454fc12348b0b293c986427400d9a14f33ba3a42a304cd222bface2a049dd8187608d505c40f3e3eb2121f080ad4ed0e86d906d036905f7234a87e7a328133c4a82d9b2a56c566b9c8cc3909990222ba9a285309f403942cd6411fe43ac56b5db885682e8837649f1097ae12a290967836506428cdffa7b40f79b1b3042f943e887a6be7ff452a6ecd2fd9379443e0b007ab3ebd281144ec4b5ef49a49871be253fad996ba9afd09f8f11ab94c3f662454860e7bfe82ecafc8202267833eb048098fbfa43be3bba6bd435ffcbe237fd8bc12ee97e4b58e4b3b004627d24f576550ff7fbfacede79d1d68abb76899a2da3ae621485d0adf53161cd442e01b378c3124b6b6f8dd6c8d2bbd8de095c358a859a0980cbd98138268b9325ac6f7cf402b5224dcf861985e221c2be7e8ac56ffdca48bbd9ad984d1f624ff20de548d8d4396157ca42673265c836800995737b59f91e45a047fcb9932516aefe6e9e93fe55907494268975c17656a11f813e1131bdab12235777647a9840eeaba2fb9cd6318342b8c58a9800851670ce382dd938db9a0cf4bcfe1973a3325b040bdeebe080bd95b98a1b09ffa72691610ee33d27ea258f7d0a30097fe3283346b0977e7b4086f287e1dedb2ce3c37b599e19eda8ff3aeb1cd19248492787c9dd921fd69aef2d15c14d2b44dec162fbb189cf5b6557bbe60cca794fff1cc1019433ea779651786bc3169c1d2c3a5caf78c2b0401326713720213878b9b21cd50c83a06b050e4a989073e46564db128cb3645a159d0a500c4c6cde8673eb3bd295d23cc0aabfb2f37f6086be0a2a58599755a19b55cfcf85021ada1a952a929b44a0ae0572442c05c1886aee684b34310e23f0533c6db5365d60a13f0a38a7656558a7d17b60700eaeedd960af6294058edd250752836aa917f70cdfeb7e507a39669b3c3a069680ee3505a1a541ce183fe61c3ffdb317da5926204bb848d7b6052e54649dd53f8269ce18e3ea4e5a8172eb25cd7e9a12b952f4c6b71bf7580d71caa8ea4fa4856e0847d87dc6c39eac688d5042764ad4aca27b81bb487e8c0333a714720321eb534995de6888a329d967655076768b990a96b40ad3e0a17e321253ec27cde32573a126ecc4790e419c22692a04aa4202a12f3bc8e06cb6c4c83223e234927dadc6afec1e515dd2435b6ee49bcb87bc813003dc37a665e91b06b581654c845810763fcd8bf77f5aeed44983596e97c835eedff19e4ccc5169c2a3012923ae7bd0611a20743e59613a943326dad545d9c6014bdef6de524b95e63292c4f28f831b9bab243dd6bb053a80d07a5eaac9994708ca2671ce14decaee4d6bfaf7cb6109e97199621196250150e2924bdd17aca692fd00f56fdf343a6e768d9ef3e2b52d4642dfd86442206a0f8ef3bb21e88029a58b57a7790a649b8af2ee81aa00d12f625a52b6ea6762459df2d65f6cc97b9338da91e588e002557d4bb00b66d8b6cd1e43c386e06a5d4d2d0f9a627b46d510b899a81a9d975958131cf25b7591ad261183395f2a6dcc0ac7f990104b1aedb8871f517d9bd9257b2e2f26eda6c32e6a06216aa3cdde68afc765bb65a174fe7f78904915cbdc375544eef5a9d0834b107cf68b71739e70cf5c7a1383844e68bc55db0f5d590c6a6edf1f18574c80d59024d273d4eaa99fcc0af97045bdcefbf759838d74d440b5d71cf6af01762ddf26676a222fa55e7fb728b43ade5ebe02a2b73a8220b28863202d6d0fdc2f02658ede1f2ed0394a2d666355605b380df05a114db7c1c980a3f6d7f9f6935ec431d2d88fb23ee28afb81397456816366ecfe01da4506d73cfea8f487acb66ae54f30d7f6af9dfbbf8c577ffc0e37bad4b04893df7956fcbf712cf3c88328c2ee99d313630476898a4d47dce427095c7761e2c9141ce63b05324153d2b10e55fe3ba1f5b66852b19d6dce4c35caf62d465afe16942ce2fd9752ce2b0c86cb1a5338a19d7b1bdc3e5fba429d5df3cf52e61f1ee455586a8dbcda92a56f62d68ae940995d8323921c18fd85f5db22eab98ee6810e7bb3e49c2806d97f150d4a212878493c5c54c8dfb4be274a33a6d58ffc60d7666782c1bf4bb4ee891435fde09bea5a75927e563d1693a6e831fd0ac777c92230ac1bf4ec2748c429b044dacec4d377f5c2754390f14dc4ef87103d9ae75689a5c22c3d01ba7a39dad6daf472f2ff35e07dd6c25541c32ad3ad341a02f78f987296ebe13df2e14da8f0858c5b30dd730cf9b50faf45f5f0da1a33cb3d492ee236e0fe92c53c2ea1b5fd99c598420d898492a509e414d2eaa1cbd36c50be834807502715209a606db8043c6240b28a330623b4fcdfbbe20f9818a11582c79323ee87f3b4bc477b6b79d1fc2eece9b27a862057a8adee8daf81dcdfb6dccb527b66e608ae67f86ee156039d273862c7d9a990656c0049d09bf5eaf54cb09cbdefe120cb75d69c466ec26bd49146deb7e34bcb8e7eaf1e8ceddfd6b8600ffaba8b43ae6c4821bcd307c0bc366d3ab8473af90cf72d34dcd287ff085fd05127f9ab6501b26e455c5d036c878fa0bf3de02278d9e3852cf7c90968260d34918f39579393f171a17a13f1728a4f3e801ca23b3c2ea213db6e0d7102c739f72f7abce10fbf1adb791449889550e512b0de87d3f184102fa5dcb148097c616d4ccfbe798c69cd2876bfb6e02a1f1b718377ab30f6a576e8961448e38c26c5bd51ec3b47b37ecc5f24d247bb9a34d4d9b2df00a0dd4a95a9db5584c8ef9d2c7f6888651da13a55f8731c34abe456c3adfbc11782ed9017ab470b6b3169a6e74101a98358674425f23730688618b2f4909f37b6a8a03bd09acf1b2528873787134fa62e6789983988a8397ea2dd064589e3945e4125c76c320ecbdda2a712093dc93f15aa80439054e367c909ec28202a8f451239df4a8809c2294cbb7ea96f19a9c0c0c938ec76b367e5350292cd205172b9e37de42b48a14d16caf6925400e87034095e922e30dd9860fff532aa6b10dc6029c37e9fec8235cd1a6dc1d9a1ea60ab2bc7e3c5f97b3f24800cc1e2df6422b96375aefdfe4da409437eb94215f6008fb4647387bd7b08c09a8748c8763f1d69285ba4e307bee8b514b27d0303d79c06b0ea002df76f0241804866e76c3aab6da4f84826f702f42b504ee6701694c36bd27138ef983323fad4b4cb660e0c2d56872bb594a742de057d2a2087a1a2c7ce8a0342f0f855c2dc7593beb5406a0891699db88a28bd5f7edc4a29008398408b31cf3676117f1b61605e988a239b24c8ff9a5553b7d8566117d655ba48c38aecc4e9a0f59d34cffe7ef547316360704dad96435b924d458c890bcc6ec85142e2e57501ecde5061355c94cc2916445b97471d6b3310c5d2fe4cfa0bb8a86accc406564e8a0e0bb924fe6abd16408f5dcd1c4c6c63a482487b66db5f68949fd029fe166f2fd0a8a5b56c40c4fb535b6c648fe71a0cbc1813b7b51b6d3012aab9c86f95c1b224cf5352a4131ecc4f4187cbd809fb599cbe481b8b54ad953a44356fbdfc957eadf0d92ef7c51c494b222f28c501c9c7ac971a1505acea38c63cb8057222af7a4886ae211f78a5309466e9227a61f230d71f66f69658c36c2e9bf8a358edc7c64e962d0c8269b2bbb1d9bdc39a6d1bb4e7fb28665b4d2e1cdac572b5b16b0b45008e19d36ad7d16ce9faba5e5a15996516a004611467f0009121e42d38789bf4e59714e73890a42e1f337090505cf6d1249abec9facb252aaf8ed1cde8510c1c3569265dc8ac5fc22ae2744a20a77250b9cfc289bf92bed2d27d0077bd56e6437df73d9794284c7efc9edfef43ac7f25e2ac9d41602ffe87fe12fd90ce2526012ba7a77c57df4a5c2b57cf8190e24475ea118189b196fd9f69f3977d8cc9bd8fa94a994227cd4a58c633e5db41271c06ebcac5c1c083250079e7601d032f0e3d2db9acc4544cd11e834ac600a2fd14d3c07e63736fccb8339a6f3164591b74a270db5a6d8c727a0ba42b9b769d3a706e534e7940ea3c47d2fac7a3fdfe04baafeecb85aefb9c71772f4e90b3d626263455d0c864dd033c36569c96013ab2a185630ff1097db1f8575235589a0a22614ce7b038c68853528353daaeb806435d209ef9c5a90c99e62c08eba706d89aff7dcbff5295157e17fd2da6d1707b5818d2ec090e8907fe223f6215b7693cbe14d10d23c47dcf7d71ada172aa6122606e8dae693c2cf7662d2f087dc476579a65015077e166238c165b56a229a1fba5f0ffd2bea4e9eb5c96d3cb5490df4790eec020e21fc4852412d042e6012819b4a17c5333fcc1a76a83676af3e02033d95dca08fe9775a2924570c2c129e606b37cb6eee9e1c81b682e09d5f9fc5eca9294c33713883878f5e21f573a5ce770f2eb4ab117541dfab366889a113352de3f2bf0fac2d4a74173f27951be9987b97d511c15a139725eb30a854c885543d4e9ebb3672781cc4d34cf56d9baa3b771a4827cc168d726cf2d92ddf90d37180e1854e5e32b393e2a9da9a2102f8151e5aa462736755bef18e2866d18c6337097a218f0750ecad3c02a04844ac7ff7c2d6bda0cebb1540dc7fe041c78aba5d0a9fd9ec7064da7e34a4538d290b02c247b8b6eecae5738183aff3e3a19016fe1d9fb80a9ffbc66143c59f0dbf161da778b12a7be4ef7de559fccfa31002b75b9ff2c0db0ed2e40bd8687ac7d500e2284788f1ff0cfb802a34ae8108460d3223b2cf0c73415cb95d6db483f88b04eddd457bee06bc7a0c5eb34d3f016b9b1e2803d07e6021f47657ac871517739da2b2a598fed7597942a34a1dc19d5bba2a659e4fad4594930d7f4d21fde7769cef03c57baba559e659a302a00a39b1a0163d52ce6afbfc6c8b664f939b4be321f52930c95aed09f62616eba81b678935892e1db50cba33462eeeb3359f92efd433d655eb6a874f3cd2f0c3184113ad69db2f533982dd153b21470dc1fa450c61bdf906f0d77b2411e9702b5ed844b1d0fc2cff20511b16c5adcea1d41ff96d94f2c9f6d7761c8d91e93fcf88a76e593c2c7409a1d645d09bda04acdbb2cf7da315bd8498b9d7ceadbfebff1885f8be3b04c0956d84a83ef48e0e24d169cce1d2f6668d046d9a727c61826c10a4fda82bbddc5108099158493bc6c63bb991982788e93cf84b48fa6a006a4d7d766a79fc78beb899a5dcf02f87c9713f2bdf9516bd6fa40a84511fb9a50638edc5a6ebe876bd47edd528633f40929f94c798cd99c83f0a6b4929bdf7062eabb7df40f69f717dc38756d4d872671aeaad79011b327a2dc0f201afaf1870b55058e92e086dd2b8c12ff5467c7a466bc16bb996101ff82b171074cef4ecb001dee09a70638e3c9d8c579e108c05dc0bff78b80b4129936704f120e9f16745a72e89d37294eee166d9515a3eb905bf75dc1f805b8253814bdda3e37c923051424e85f5c6ebc77ba07a33e5cb08d07a965a9163bf64a753884030414d47f7f8e183a14c3c9988764e704748411d8031a4fae1f0a8c9c7602ae27b3e7a65d3c0d56a2cb2f9b88d944476c7ec4e51dcaaf4cbd0daf2f466793e354c76354a5e8389b02a7f59cb26d8feb6e617df2240272eb59213787175d55634edc32955ad59c870b137f229073ffbdc5f23f8e0e6e9243690c07cf9ad470e5c85b6f12682f2a54badccaa6370d507a125b52137d5ddfb8022c57d0e95155908e8b2c8099b8b41ba515e7aafae2c46afee3302205d4524b68f6b227bb8137fd7c8bed87ce4a73b357dd7de470e0a034c45f08b494f28377888477db616b8d4c8ffe2b83b0c5841343cb45bc4abdadb476263dfdb9be31a7abe85b42b9e1924a668ed3057506664f01e38d1c8525b8eb961de51ff415be312fd6e5393766c5a30035c43877307d1ef0b2b68fd86d12fbca7e4bae7776b0ec6ff8f1ac9e1e6929953c5504b2dc93f4637bb6ae7dc21031c81a6efd104a324c46392e6a0c530626c131cc0a65bd52aaf50297dfa0a78c25c2a580470e8b9013b621a04a5827e6c17c98e8726ee2cbb5ac0af6631f7462e6f032679e5beebf95b3711ea804e89977871058822312f1f2072b85b76728f43300653fae3a39d2852006d523365072983eba4108b2991ffc2641893e97a4a7cd7901d54f400c86576226c3bc6da307e10f19bc97548f8e1296795c442fca64ce7c852eeb8138b72f345d3c36ff52b41dfa645592e3bfe0967e74ec49fb8618195412fea91ca7e964961269ce7d2c19dfcd388d028d6898113ef53aa4022034d5bd88327a80f6c08ffd36c44499bb983e20cf5946bd6c9fcba50ddd6a9f542dfbf5f167e02834882b23729e30259fd8b2218ca28982efc1f664bb7db6141bfdf0d565709aad84aec619729aa7440e45f4ca66c310f5162e665f7c582f3ec9a0369b75d311551f44c386292f34f4af8df111e00e536e47f9d6f274c0eb3275982227c34c9e92bd81a72306291c6c3424d4189b47e598539cc86c619a9ef53a6aaec9d44a981a823ffee86a28f714d5c11489552734a3f573e532b2e0158cdd1f53e9656d3b76667bc784031f9508fddf9f8cf3da0e1f653cfb5fe0200918ebc4f5196d0e594171d978fed8d63459e13d0a178f820158049d83d73efc37cb24eae374d0b7da7b521e8eaa69690a99bd5ed570feb27f2aef9ebc114aa8d8d06c26e04349a6149986b4a9cf68c8155cbe0ac43612f3dea5ac2b5122bf6f5686e5923e51484fe836cc29459f343549ae60cb3e3fdf422103649391bb902f609d3e4b116fc4d7b6a68bb0f16383c8ffb73271c817c5908fbabc0c3c3027d8460166f16407bd9a23b2ca9e280743eec30a6f8f820c864124c2002cd5b536f0ab99f32a8dc7e2a5a6456aeeab5028e66550e1fbc1ebb1aec53e2f719069dd128044b01e81b8483cefeab6be7681f5436256e052b3f7d8a350326dbbc8d9a86a51a189fc47563856163dc8d03d2c126d98afee710fb878e172f0a8cd0816993bea871d747578431ca1c0c60a806da81f5166c0fddf9d589d556454cfa38735593f44c93cb61d776e53c9f2f626e51dea9478f9dc53ab18ff1771d1cedd144eafaef1d18c6c6c225dd2573243b71369b1d218f6baa39108a419f78a3ba45011bb8d8fcca15c7afdb21619ff4211fd752cd6ec528606f7f91d1548bc68d6b8b60d08a9e53d69ad9b66aff1c869c13287650ec5b8f2b5d6a46e0a14980f1e451acc4daa092560c7fd28d4be44d4e0a7423d2486a4f6022d618ff918d7ca57c84c30123d38a2d6eec7da4737aabf85f0e3e8e03e814d7a616dee6c1fb69b8be64a095a467e01164718140b16970dc4cedf6d64a46ff61821b5ecd30d126675a1c2379a5f2b1318e93aa0def828c43d2f1f27ac6e83b4909a105bad1ca0729dbd0d2f26e5d8ad934f80fc959ce28f43f7d946694f148f9c4e4007827537ed00824d7deef3c12919884bdb39611c3a8546044f277dfd5165e67d2aafc6c0654a94e23c8ff0bce43ebb05a4fa3f133a520e3398c20c4c0af6c156f50096a74f9af3519fae71e0bedddd04f2f29c24236a20d7cd2e93e98dc030a90e1d5c9883df53066caba77e9d5d9d9b12ba9e682f5d17b06e8dc945f03186090cbdb2edbebf5b437c9b9babea11d97888c6f5a7be7cba624e942ddf10577c88fdb81f6e1e10870e3d9adff312a63a358aa03d9dd05bbf301644d8cf0b9196d0e2e146e3aaddafc730678a42069abf6d83e4618d8ddf0aeabfee0431c45976d42dac8ca2c80580a96b549836bbce45129215b185bedfd3511c8e023d621854d449aa7356c55e4d7017850b51ab226d9f084087f95157495c4e6a8994d1050e5512d73e37517022f4f37b6576531e60d3ee6bba0cd8249edb4d10aff13f217fbf59b0a26800bcf598cff95337b3b0550d7cdf32930a5b9c6d6698f2dfa03410c361218f61ca955116122cab35d1fbddefa33159b1412122bdb83c1bc62be9b442653d5c1a8b8cee3d352b07c436314c0e852c4414fb232a75b63fe3abdbebc68710cae33c8462021746c9ae8f6f7ecf65f77fd0eb5a954195a822a9aaf02171b2039a51b9d89545da66b091bd8d090d2306440c2ca4bd8d31292ca1e56bed9ce352b7b4f11079f1184bd17b64a6fd4cbd6f4ba01ec31bc30aaa3e413b95819368075e9b2598db389fbf21d8b752a78cc0254621f8c515b0d4eefee09e7847c5449ec643e63f42fd701fab9c872ea107b8ceb372f85d393d748c4ac82e645269d287c02b23bbafc295dce839f35c100a8b47a6a598600c05f871fe25a86ce4e6d6a81c09ce23fd2347fd76a74e01f11d461c54fd6b4a6de5905b0da9cfe7023b54d8e7742c73c2497b9c10e841c672e5ba107b03a5b7832c5a5fe6b5c2ef1acc946575d3ac0bcf25b365de9e1c586534999b92d6a2ea404353632b72eae5b55d6b8f39437b3032756a1a159030e9b43aa467ce1b864970f786a4b72077eb3d16650b749c228ad3ca8511e426c7acf6d16ed3f03e90de57c7fe32f687df68d2c8b780aacb3ca49b24a1b4b35aef5c05409a70ede9fad8e8d0ca6f885cdd882cf50a0df31095702ccd2f00b48df2b6ad00eb865bde0808804619943ceac4ba932fd6c20eee25c0298cf407bb3eb8fa6a68a790b89a4c65368b122d5475e330e2e2f32254cd0bce1167776e73a8c16e33329cbb7a758488c158f1971a0ec562999e33a769abdcb5a574c4efdaa7afdb544ad36cf317f730e4909889cbd0df8b06632b3ed04dd4f5e184edd81084760e616881b70183eec06e9cba88c9cb272a779d43c73dd0ebf3869f7e8b74717c582a4aefe89407cbbccf79807124067c837dc6fd96c7924276319b53fc13eae00fd0a12bfefedc2a5034dd80f36f60b21c45d4c1f5dcd2352c034f03366a35140bdb08232b173fcec93804c212ea494540f7f212a011792323db2063d66db9b7296a8a53562c3e3319291f73a6f1834b7f2f35e847b8e51b501ef27b8eefee78cc6e96b199c7aa5f57d17104dacc6d6f2c802e0a0f4dc6b50b10ada7a448133a57f96f7cc23ec7f23dde8d47adbf9210de06aac211b03dce91baf4747059f164b49568b0d616a963a8cd484b74727497ef10efdfda2fe93e8167b95ce1d75bb5d0b77a7d8a3674441c6f4fb956a8cb4800d04509ea638c7a60a8b34bf9ed32221c3815a9c9e8d97d3ef47895ce45b992731eaea635d76d9015ef07804c280fcd0ee0290a31af85b957913b612da7a1e3f053fa29a582ae4d6db6944185b4eb099e06d15e95e4619dd8ade4cf1647ac97e129c05b95172613983aad89e2ef69a1c93c14937c2fde0cd0a4766a00b5216ff5afd16a571a8e7daac142c5b3458869120ab230a0c4a16078154ebcb8db214da05030e1b0cc052d1b74be7ade5de631fcb8ec1771795368a8c3f0e3dc976cb39ae5ab4d57e838d048c50dc35e9bf0c99133b6d190a661155f08a8ad619e368d5cdc9f657929b316ef6ba333c0ea8c98deefcac354daf3e03ed2c8af0db34460a66a809e38a92a55b7ea6e0da4e022d674ec8d4f485b705a0d36cb3afd2ec7e8fcd229c32708cb75a6a80c43422819fbe9bcb76cab7a3fcf368f935121d7af7924b923d5d068cb45a999b02ee241225e55a62aa1eeb6b6a745308f48bb027c38a9864a9e2e3ad9500f778d9e6391f24ed6cb7d4f3aae55e86ea3861ce411ad705bdf90b333d221420e88ba34b5bc39330c6b1136e8e0be41077b470c073469c8cd25cb4d43d804323dfad9f55f5af94c9d28bea00644163d09b28782647efe14d60fb749b77fb95e18ca0148faef92dab26c713fd9a3af5d939ca4e78e5242eb114bb1d45c92708d803ba991b340273278cf48cc55d6368467681f85ee1407cd5c31cbc7f14abdb838e29c1ecdeb2053a195feaba7bdbb7a6b2df93e3d3322025d8d3277acff4ec0693a3bef1d5b042ae03cb97bac1a4c542a8e50890e7bbcc0f86e1dc8b69c45851ed17b9c8c01df6b7018900f772f053651e8e2aa42c0e645da0facb3aaeeaa3dc9fc828999e9ef7f8efd56bdcf31c7323215530f91d3ace4f2c772f91abddad0bd25c431d4936367faff82efae8df41d44ba572608c920dff2119ea80ab5e3bdb19ef48064253df47b3e3ae4c3f7e69ca029330f858e1812d29fe25273232b64430d51c882e6c6e958bfe02cf14f044a86d2161a3dd297194e7fab30c27fdd857362f712fc1024d2df5cb4face539d6fd64154fb37392099634e383a56c6f58224635751b3eedd6de1c14985252100bc98b27d66cfe561c0d67f9d3d05a3e51a9ec0fb111d4886a33476fcdf74886853752ed8a9344e06faadafd845976b287a0fc12d44c322c9be30fba3636f2fb8cf3b3ec1cce9628fefb3076b3b4aea4af8057835cfc4cf879f33f81f6a7b8320115c2aeaa5480585b2f8b32b834cf83132f58e389f514ad7321d778d79337c283e6fcb8a58facd6ae84f67448444e8a91bb89df9262fe6fb30d4303725e72db8f4aeeaeda98023384ccfef896acac0883a0913fa3b384ebca4c2e992da182c14797732f9aaaea04cb553dba22eeb46ed7c08adc0a0dad2a53152dedd88febbf2a2ccae92432acb1a19fa2baee9a6d86403b981468796081c68763f2a9202d71464d2dd0548f11903aaa71c5cbe711702c78697ccd382b64db724bfefbc44fd0c075550cae2d34b194b82f5aa2db462ae3ab90d9ceec81469b6d42c71ed16d81db043da4d47f20dce0d75f0b9814c2240e603d57281255ba98f042289467eac5a3d2d53a4d447f2b653af2d64150ae11f81f8f79e936b9f1751b4beaff1b89d735ec9e63e091db6ee7b25b895a33237864190730a16ff0319c8eb754b36b2bfd79f72f50ceb94d8c7b80c9a8c75fd849ceca89fb9165b36245630ea9eb88ff91630a684a8d11f81cbc76001783b177d0ab37f277e818d3d38de11dae5b025b8ad59873f70d206b63ecb61742797217fba0c3992e089b698ee839f1c73ab7f70a4065b07b168e5e2a7711116bce430c2de95605b82988dad4276f0ade1ea5bf2ac260c1441562baf0eedb7fa8d994c4f81665e9b7adcda8668699ccbaad5ac8aa77ba9a42e239c24f0f85e8cb7a5f2cb287d03406f6ffbe24cb44121b3f019f6b923e33f6415d025215356fff8a093145c9c05d56c516292983f0005a1c87c236233918464f3b2341999b2d6e52f13a70e6a7bdcbe5f14265195fdc30dd465c62ed52c8a7f6701895f70c9788efa4add3fb762b74ad02bee7069e2fee3c895b907b054d12363d276143eb6d317c286f75695191e2fa9564810e55c167d17833130c849c42c740c25d176d811f39e07f70546e428aa22543efad69da74f3edabe6caa72c75098ea9357bd525ea7358248bd216ce887df7d74c6add9184171f920f773dad910bd7df3cc9b8cb95fbc9f3efa473c8e9b6e3968d2c8c935ec9f72e82935aec5cbc4284a78a0b0ddaeff7b5cfa4b4625059686feb33e2bdc6e3e8be90d40c0e0d69b226b3f0c2e333b3127709d175dda457f7662ffb03fb89054c07e332f075dbea2f73c5c0e38d5442f277d80edb9d464f9ae337a264b11553f3f9b81d41d290f75085004be47a63720f3769bca769ea6ace904162e19a649416aade4cabf604cde06c5fc9f9474bbb179cbeb66141d9949732a4cbe7499247659510719514df2a07b83548ba02ef40699bdf5bbf8197673afd8b45dae6e83fe55d37e2e58f6a88d41c0be2dac27e465a88f2647ea5a1e649292f3221d16dd405e821588fd41084b08d44745426c2200ee7d6135964a2f0e25e852039a09f9eca6d21c7391a58f18d5615ee2aa2657c7288941440b31f5cf0685a9b800797d071450f1ba0366b3c97dcd6aaa7513301a0611da6c3efc3ba0e78e6240b38666a3c2601a876c6821302e026f20f705bf3aae3e005b889840fc0e54c3961694781780d7af5384929f2ee788686ec47c74eb373f674b24d944c4d449c8da149eff6d4e56efb829bb25b8fbee6e073a4628442f4e192ab2f087a2265b337898a96d85e6802baadf2a1511937cc8bff734e2cc169017b2b779a58e0787a54e1440aad82fff7eef4bacafc2283b6fa55fe45430e1bc2ade1b0f9d7d0ccfdd0dfefb242ecb4fede0b72c30d30d4cc0f8178d3c64779a2e32a9740455de7577284f25fd7c8a6adbd492ec26ffe38e4f228de913fa37476243924f26c6bc8dc1cf025ed02ff5320a47ed3ffbe2229819686d2ad1667154876dea6e0fccf6d689649b5e028dc4ba7c78fedeb43d97f78d712dfb9c74e8b0d9d12aa4cc2573eef4a99dc28f746854f42ba1c66eb8e0ce2b5f8296b5bd57632a94ad2b5b4c2cccbdd013e5bdd38275ec2dd2a815e8f2b7aa57e9eaef03e814a7c933a50d12af91762208cd39276a69408a34ed539194fbe9f11fcf8874be6b18b4609c674f9da8a4ad0f2a7824a9d3e4ac8d41cd90e11720d0a946386c6d35a1b33ea1b1bf2c31d2d4bb60682b7f025f2e47ba0b2cca9604164dd6b81b7c6148d0b7f0c775a5c0ee0b28a7cc715e11e4b7f182c0f99234ee2097e83481eacbd7db1cade51fe76f99607131c9f16cdb493ebc1e3a0250561f0e56424c87a6d7d9f3a1a66ea7e2392ea3376e7c0505be33ceff38323370d0ba281c87a3be16d9bf9adeb3f9971daab0272153b241372b2547b40555c432fd1a4ec1cd2f1391507bb64f9a1d1f31dbed1e56b90492450c64aef83124b42a2385b4e044b012e5f41382d586c2644cc56f7904cafad025f4d4358f641717be2b734558e707d6d28d04e73416fa71afdc1b1fdd7af91602223bae5d4e1c8daba9ede9cc4069638c9e68c293ed9fda30009707951a17c3ba5386dfee4ad8d3812fb0bc2442866b3de04451fee244e4b9b7c86865ed23d16068182def904d1622f611130a263698808c745ee7b526f3c7c217c28bd97968bbd22cffb2f2c54c47d3ecb26e65433fe77705d4a157369cecf63904c82365afc6dbcba5ae2e25bafb7ffc5803bc533077fc0c01e4c36ed94d6eb176e03b38d72eb5f3ccfdcf04561e2f70e8bf3c1c8127b43f3c4c69fe83240651451e995c05d75be124dd9e3bbde373a8395f7653af6503d68ada2105663f2d62d1cda6f235584aa39430a1b21452785b83e0a7132c9073879a71bbe8eb7f0246fbc0c0d2747afb5f28fbaaa924c78399c607059f687edda6ac5a1082bb5ac3ab9acb3f01d2bc3cfaefea7ecdd471d16b7bda0ab8c8f863a907c1afa43d5a8ab6444796e746d250fd2dcb7ec11bd4b607f925e4ff723a3ea2233516c3749c5dac50927ce45922e2fa890fecfe66471ad0b9f7dd0cd474527d0d2c76b151528d08c58d2d05ae45c5c4744cb82b7a77399fa822ec2acd4ba0026c7c10c91541620b781cb3f9d48c8b2c90bde54ac7e2bf121abe3df8f3587bec28e41cee37441c2138a94296a979e532b7c077684b5d2dd4f1a6e14ffca8959aff81423ab0c740ba41a2a9733141d5d03657f3a20d8f8c17b9f97a34623ada2b1a59a04d844c396fa1f7c9808451b1c4e2a86fb4787379ca189a05adad84170975d46588ecea4189629d269781c6f60cf57d365de9da772d3fb1aac536ef792af83dfbae70c9a74a930d806427f3ebfa11c5f451f6e799d13529a5262456d6a11445babae8a7579039c5803b41df12075e117b8f28917634122f36f37a8bc4333c8136d96456bca64bc6799db7c46bd14d180e361524707438b9a9e27ad28909b8e715dc9d3bed6ba2142f8f3c9287f7bb33474e0cc04ad79cfd6ac52d64d3c53a55799bb5d12c19a33ab40a3c696aaadbe18419dad9121d0ef528e805ee4086090af50cbd24b74d10c35820f1223e2ed245ebcf6ab553d917e20a07a30fbf9bbe2b1911ac57e0340bc2a49840c7d4ad1ca3f4ed7af19d4cf9c6f4c259ddb103783f8a39351e83e1ce4b65298217fb0b6be69173e0fd5d7882e8dbcae561efebbab4a9092644bf3819f7c88fb1039b9c431ddbb6639b026766542b2bc3168acb7458ce73d227080686648c219934aeef96fa4fac906473e2b6593875076e6bda49e00c95603783125ab336a7678200186652a8c66343d712cb09c7b0374dbef1cf6490f1a77bb6595d086691cb7ec217c19f34d037f7aabfc7bc9e49848c291f6ce182b3bd0b87b56c0e2cdb1de9eb5cae81ce5fe496272d5d8d2e6b0877da7448b685ae3597879b5c707a2b5f3b6e77ff3859cb8e05f9cf13db417c26505fe03e27ba2996de96c59f619f07ca1d3773b22cd2b949804451aecac4acdfca5112a5de59b27a38cedfe515d22885ef02804266f1b64118ff9cbcc098c7108ed1c09c64df78680dc0958f46cf469143ffd035145a6adf3094f478e878bad2b9ceceeaacbefa645c069966b085e965603dde49095b54fa00dc3f6db2ee85d95c24225f89adfaf535217b8194d213d1c0f471da3a3f32f11262162c51568790fb823286337c09503fa5749c394ed99592952b83422e6c3fc8fb3a9e3bf34edf0f2b9bb4c77d211f33ba7379662831f638ab6286df9c2ef1d4ae8302ad1474f68477397cc48016835ee90b0bea1498ccca8e9337724d112abde767c3254a19403b38a2418e57dc8f233c21471548531a92e9bf8283e06dcc6100afb2e6a7129489dcf7f7eef0e5df77aa687f3c8366f78e076dad3bf5c7316e16f910771be01bb76d6b0090001f8d64d9170738318fa1f2f92999e9d9e8cee7311c0424d0ede68059f2c98337423386295ebee792d6ffa389c7227ecc9090a5bb8fc47ca3cc0b950cfb14bd0c8e74911581d5aafb8c50bcf9abb410cbdfb7d34360d7d1a954571c5d2aae95151ad8c9e0b5bae61dc0df0d9aecc55af4d7ff7198651fbbc2e3f62dc56b0a47ee4ebf889512af83677e94972917cb3b789bdfd32bb56d953d2a3f546dde6d74b2429ebb5330f0706e79db1109d510331848cf1fcb8a7eff8d37ad1207692e9f05fc9866ef58bd1d6dd9f5663dd213e937928fd2a421fd5a10b9835c77fe31b0abdd251cdf59c0ffce53fb3542922ca77d81963c9f373e4fde9cf21a51ddff75b1bc5b877a568b0fcdd6ee50ac1cd1dc02f1edfffe34de48b38a8ba91f549b1c256320e68833ee4b1a5c1d3d9cab419914b502945d3255f6e0e4e15a81d4e5bb5e81828a1f76df34a0b49eb800c6301584881dc6ef56e0c9534399f1115f75c9d84f2858d0af954f4b5f382fa96fda29872381341c49d57ba79ad1262592a3a29863e24a28d237a4e7bc1245285909d5281e73d361ab91864b81d42751e51806277720ee7d033c420d33a94f8639bcb94980c76b8edfbda9b7442314c9db3e9a182a3ce50fcf25b91c101edac3bb789d3021e115458a8767b0c089828737d36526f94b6573cad59e4b42a3232caadce9aa387bc3d490cd879b2aa6f948774d55d6f076b8520a060bc133f99d7741a92dbdc3fab85e8bf495e4426a765629e7b8b3dc8fbb7b00e01cc25d1d6fbed5579be39e780c4de53f60719e76ea1fdddec317f514603e9dd173ee6422f33a334288e2772f291926197a26fad4b8a6bdfc0f824d8f2c1bcee8b48cd0d339dc648cef26f97a51621ca4bb7bca823bb81e77168185b3b9c1b3050ae7ae3781a8ca48edb6d01f1554e55bbf2079713ef88614ba2a7e93355f2925a0b7b838c5efa9c246b27426df5c0a3a63b1021e82bb00d0bf2416a7e23c77de29a5c5c32d4ea176df62c72c69342f164b7ae6a53bb2bb534c3d2e7094ae4af059cfa36b987eaa0342ddfcb444320a825f4d9a4b936249556e93780436514d626a6ba4361afd934a1d3164a253f4a0624a66f4b02673fe3d964fd4d54599f55198706f9178791c05c329f6c64d5503edfa5e3daa85c5429116ec37a853b16afaa554f082ae191a59a99ecb1e3eb3fe792334dc70b360da31a70d6cc285a895e856d86d25698c574fea53dd18068683d9bc59ce28ab2b71fee5eb180d16f1b995f3e31e198eeb10a1c46aaf16d845b76b80df5d20d877f33cd149e801d22e2fd4cb73ce1cb16e3a021962ca1ebda1ec4a6da5c7ed9a5b7df34ffebd029c551693ae9460399fedfae9efa623980f06fc3e49a0c392c8dcea9ca60c49efe817247f71704af5d43204def0b4d7c6fe72b607182e211a29eb529e034d6f9541a5daef6e6a4fd5051eb370ebc6d7ac0ea36cc9a77ae9b7fa2af781f5a455e7c4b8cc61014c15089896217551176de39781c40b05f4b9506b8f7243f2cf06b8a3f7c3770c81617a274e9467b9b0b3fc44f156c804cf487122c530e8d1b7fa1da49fe41d746411ba0153eeab5cce6efe95e2cf7bbc9b452bb66c78364f5d0081a08528f3a19c1ffea972140f99ccd8915dba8a0909ea07013525929c8a504cc70464cb8e02884862556c6aeb72a950964408e58608febd059e66d64088b9ad0b5379829087b91fe570f3d36b0e1507df458dc1b09e940d9c682cacc2b1f02bc5a17699ab2585a8ff1882e3ab35120d063192f5e2f1b758c9fa6fc26b51a78e4e1abe4e06569cc3bda1fb20dfd72666692b8e9ae6eca318e830730e7018a0924a79f1085896ba0317101f923c851c00992b1d7ed1c0ba00a0ddda586299f7cc7791d03f2ae761bbe7a0c9ee26f650b2b67b462a7e5e89db6e43996332cefc7e25c86732814ea7555241092bed8496a68b3d1340d9fddb53b99ca8f2e09299dca0978ec4fa530f4c8114ff408aaca4cd60e2741e5e9ae21b4f95954195264b87a00bb61d23857a4bbaf09164fe921841fab47b0fa27365248aced9afe6adaa3fea4707e357f4215a73e0f00a377a05b56f4ddd75ba8b09d6b45b06aefcaf850f2d00d22614b5a310a3a3e56ffe50155bfe1ecbb49f2aa57e2f46be359e9a866e50ff4a67e8621f38d52bf782162139d95ae918cc6b5aa464e10a8156693c6d2347a39a36b397625fa51e5c6676a0e9357c48b3e2786b7d32de1945a1324ad7e3ca5c3b66e87625392158bde99ca2f7db52246639f16f35accc58e27cfbdd98f44331a8cfd52457d53c67c8aa0da2ec17613ef33f57bff4e0879e4cad05f0a44c863b5b14de4a7a07f30e92c5593efbb0b4a978c6e974ab4aa8389e9749e385fcfb281cef9294118ce4c2c83e88b87f7f534d27858deec58d1e68f20cfcfb65dc4ab99ef071351cbf4830b7914d761023c76649741251f1cacde10fa6dfdfa7c2814471c1c762a2f5cab5160c45821e3a160499ae4003f0b41f4de3f9d41d0fc55f323b43e7d251cc7fe4b1e1490a26bd2389e6d715307edce0c7c9387ca3784656824b2b73452afd7504d72121e16e5f1f2e0f42014646e44f61abf6c14623d37c4577f0f1fa398e86909af8e0fc5c176c7d434aba79e58e2ea0e52de03e880dcc20482645376a6bf0b5e9e5e4f7503024d89da8814000d9cffb05c5b3a8c32d9bcd7a9fe6c45bbdfbd76cd4a98e18882cf108ac3bd66691925f542146038dd5899acdf1fe70538f590c3a3aa024efd99a50769cd6ba4921f4ae2d9011b3bf3ab6e81e35828b3696349f57addd3f0e390dd164bddd2f7e766b3b2e91d68273ea5daddb17816a972af08f0e969a09ce1c7323b7aaeebdd241884f2c4bcf1aa5a6cdf3bda2c5e7d1c7620d0de993d155a0b24ada0904ae73fb66a802b6ad8c6e20d356db45a4df37a2f1025913bc88dcd7861d3cc92d925f5f66f52a4318cccf90b98a0309a3b24d26538612822145795deec811685cbbeb532f5b280f4832077238d36ef939c51673e66a067094c18377834c6e005ac2586c8cf3c1e502fa79dba18cbc2e790372217eaf10e360dc847a21faa80de900777942490da36ac52c420ca14101d25886ea340d4f036516b7484dfc132946165bda17df48bb0216cc9f2914a74b9a353fff626d2336e7161711f1cc0237f766227f7ca886f3dbd64442fc7bd8d1210fd922136f06a7d22704b01dbb20bee797c7cfd08d26950dd1ecc59f8042275be07dda66e529286cb67053ae6c17634f1407e91deb20a682373bfcea6061ae2aa5f1433156eb9424d6a244dd5685c2c48e53e12d1321f0a81b11c1c56d9f8b67de4e65b07c1620e9bc84f9124544232c76da0757c96fe0bef79100ac8c83a57b10d307b5c6f737354285cf7ad9ffbae684984ff9c6ad8a54278c6ffdb82f0c5946bb6fb9d73eea3468081233051c7fc4337e58a1365e58136971b8677d2f622c8c30835f05b1f179cf672e4091ebbbbf42a4c8003b412f0763df1eef7d9620cd7344328fdbabd7203c8337c59936ec763490e76f687e18731db8dbd7ef6ed06d91fd31f69777d3c61be11a660d118baed188ad78469fb2b283cab3f81b789377fd735cfaad69515cf95e29222f01dae1a3fab8ffd259f8c8e40a8bcddf3496cdd7fd474842d74bb30972d5671776d50e7aecdbfbfd2a2604765bf6f62d4a45eebe6be707b1d7dfa3a1f7c89c328ed176e98333512bc1c88dcfe40db28a2d6089585545690ad7c7c4ba95b4d7bf2d7902c699fb50b5363ed56dfe013a9123432bce75acab8ef8a50073ab7a1351652955ad5e9093671c348230a734f36e8e028f4d18cff9344948c48dd197b55028e3607e0f505e0254ec03db8dd9b5648c31028694bf7528c2501df0eaeadb77534d79dbb94e8bbbba52e196a95e8c48e66d062edbcb97461bebe326c53e8857038179ab100ef5baa32da56f621fc0034e0b067f128e93a36d7af5db48376ad33a9a8d9a50abbc9c22f3a0d449241d13ed7782b542c4ce05a66899633a84baa2d946969634355df2250dc81a63f1eb0a43349c9212c19566c78164348a7b54d1e2cde953fa1b63c0619694fafba43e0e547835db93872175fd845267357dfd3e13496bc876edcaff09da3d0e15e9d45827e039d91fe4b3147fd5583bb6c2931ec80a8eb03acf7e1b5d2088585a7908b595b9c6d9431406db40756892047cb077356ae00bc7682675fe911cbcab3fea0868cd08acbdcf869477b3b073265c23a7ec6f269ad12f81e2203ca7813549f6c6c5bda52888c4ecbdea38f78650f78fdbb21ce2669948cf2a817ff0d518168b78f35370a5f7d77209175c059b96945f99a74464394b6c618a3074c646a4059f3c6157f880e6beabdf20e77d232c552c37bb382623768744322f0cd2491ce1044509c83f9bf1be3ad996b9e9b534d3c46175b839f78f0222c8d6fe62b613c7ee571e9680dbc4aae74704f06c8b249ae9970be611cb89e6d9e414c7d44a54f9444c0a3177a9776b74aa537b6102b11af0acc736c57c744f1092753e6e23574fd491bc871772f9a852390152071e51fc8848be992d2735dfe3d3fd9e84484d4f4ea94854eb278e63d85f1da595034eee0167d54ef9b14922471bd6f5391fb82f93a9d4cc99be5a90da3a1fc33b7d635a7dd91a28d4419d1803d4c45066f59143c4bad71342af010ba51e87920b79f09ac4c06a2f4ec06c543dda78301a7a06932b9ba80163774f6e1f1051ce5a8ab7968b1466ea09603b6178fea309b042bba21b1d5c210418f7a58e4c376ee3652fe43622b9b60912d7646984e5de9145a8ab88a5f3fab4975e4bcbc0c4e4ce6563d67709b2f8a80e6d2caaa4843daf5f80c542addb04c17d7b1ff58e371de30864155c3c2716eb4fae17430cfb261fd1a9c56642bad6a757bf33a48e33633b6f47a4c003ae774f140494445c4fb190bec6d4d1878d778236149458c9449e52e2b97672f9200a4761d4192ca83f68fcafcdfc21321ae17f30e98371ff318ba74a1ef8a88f76fabc7cd6dd9cfa3bb97f10b231140aaa120cdd4ea045221fddeeb63e26f188e7a5e17077a808ce30f46ab09c96de6f1a4d86da23790dd97f709ad68c21127b65f88b8d4e85419521ab5145b4017cd23a52a44a517332fed9f97783f254ee5561b312e6a13c9132937a5ce67500bc387bc1c15017063c2058da4c353297e6d4e15674d1fac8df80c684328f9dde50bbeaeb639669a505022c04a08bd7e7ce0ceaa6016bca3aa6c9c22990a09e71030986b92bc95beb1f1ac11856c7b7a916e62f0784121ebce75030c6075eacaaaae3d579481a9ed23f13bf2a5f4f027d609c222706e963a62ec9028378715231839fddb93fbe0914674bdccd782ee11a683f41b8fa573fdc97dcf37f7e659d8809a75979876f3df90056805ef290a9d4be31c1287a886dd94aa5cde27e29d38087f84d5901ea4936877936ab74499c9899ab849cb5eab92a59378595f992bbf71ba4e49dde6f6e9c6230f069094f369ea538619e8ab20240e41425bd79d9782922509c1dd644e5b7a3a81723023c111c9b38b64358554dca94b68733d519f01384b7c677de32c0aadf45727ce9cd53a90f5f53bcd30feb17e30ae28d6ad2c1aeb125572cd006d5d6f51ed30d5d65b22cdc33af889f5fad206cf01d7ab469d2f9acfc006f6c11ba28c37c9d29898bff7a44916dd0d5892a3493bc047dd8a56224d932a6cf46a9d215d05f174303674c07f12836938b13127cfcb8395bce34b84e01d11512f9a66b9fd6f98bdcea499946b5fcdaad8f4891c400a004b75c2456a859771acfd9e6e7ec95303e278c2216a90fe5ceed4db8c73c1724ecac6e6ac5ec13d4d8b827c9fc4ec9202bbf3a0af34a4a0decaccbb64b2156692079355eed807e2e7e9c3cb5febd40979c2cbeb8c0be25768aaf28d9be829789b56f203dfcb28bdf3e7be4933d2509988b15750d61930172e63eec7b729a830eaed1f4a6dfde0cd6a4546650710d4bd9d248478987778829d7b9ab3d1c5fbe7bd548361e4d79e3122e7c255d36780644310d9ad4c91c0016d51545819a4bbac36a14a08c5a43e82b3b9403309afe1a791c5ebd37403c7f8a500afdeec8893ed09a30a6bda6284fc94d88d4c1b7841b4b6300b420b65e762858e04df064f382fdca02d5e1118adc2a9720470e6414453fa098cba26a4a2a678f201936029be09cb3546d0c06f756a0d6089e97eab090107c2d35f26038f91475993b320fcf79724aa8c9b64f973e11886476e2d935402dc0bfb1eb403386cdf977389ce9c8e8367d2ef13c86c7f976624aa2f8df92763939e2718bc7413086666ccdf0027af815bcea3b5c04aa545c26c1cee6b6f6638b697b7a74c73e8d089315c7eb1429a73154cd12bd70ae6766bc17463e21bb4eac0b1b3c6cb980fa6d6c2c5a1266d1361d9acea565d651b7c8a3b2a093f6234adb648d8ddddcb2b7a6cb299b2b1e76db63e454e9414d99a5ceb0a89f004043bc8c6796e556e8816af59b606bc1aadbabfe556f4ba032091c531bc9bda26494ece4a5fe82084afe5b7351c657a43359d5e078af58b8f11aab4adde43c196620b53f145c2d49f8d53a8bafe372671fb4b76da8abf7205c733a396175960b2d3d18ab9b405c14d2c7af7ddfa728e1a7377afe4b74f954925bcbb980fa3fa1e539ed6a7cb8dd888ff29bdcd61768ac7e7adf60e1857c357c3ebdf7d2a9a4096c8a0e748042886542e16a100e1444a981849952d7010786d12c7a364b490ff2c84374f2fdab1f9266777cd586ae597a7f46240b38384c70b2a96f4b274f0013befb6dc4a97a5799821e4dbb22cbdf070c9638b123cc48ffcf41be202ea115a4625dbffd39cec82958d7aca4490441fa641f3ee21afdbfa224af18313e8d3ae2cf04bb61d8e3c494a4100848e00d864366ffbe2f19df2baf3c8be1122cd54f90dd7397ee64a5284e71657fb48e10a4948ef7c39c7f8be1dc0ed2b4e7f0e7dc71ee31225088eeb874f4a44dc656b7f7e5136e2c22cf9481c764b730ea28a2a4cfcc68a56b96711a4201c6c5b37ae9d2f107ac892e3347cc70d390ffe8e12f29f796904cd540662b9c08a80482b36a08b88c0bc11fdc7f98ba43d6dac4b9e943bbbbfc9458196c6086a9c34c8fb7dbcdfb1808bdcb2925fbed0a7b7df34c47f7ee065c5f75e44ac9acd12ce40911d521c3cc62c1faa589a437932142fff4408aebbd7d07dcbb7a8ddb6d883773441621dbd5cc8aeace43182694eb7705d7bacd0fcced7ff6009e0386aad7f62747035b51e4c93ecab144ab2fdbe84e3642d3253bff39cf5b1f570242c43adbce45ea42f9aebc543f5537232ba4669b595e2e925354f2745c1f24ac4a680dc7e9bacb50ea874f0de1f37269d581a195472a9979c153b62c7a082ac3fba4fefb4cd59e41ff00abc1bf060a034dd69b296eca9d6ef27de13dec131a85596a06359d2e4c2c57a02c50d71fc0e697db1a614f27e37bd8c7a8061eaf9a2a899a5a8cd9d1d8cdd5a48f309f94f0d81d3c0cf001dc71c86627bbb92c4ede6855aac537d0917b84a0dab9457ff8afac293bd6f1ab74388d1730b7556b0e52bfabd10050a4af96eea47f9e575467b2a86c6d54740dfd686668bf07b6e1288eee1eccf3094ed1cf071038e93bef9fc0d57a018383f8de89045ab9f93cc834f2b06429fc021948c0ebd612631894eec52b4b981a07d1105422f1d41cff0f3a97b0d62d9e8325a7f71a2f9e43d67ce7c069bcad9ee91394b86db7784188d99381c1f34241e6e5a94a3c140ce0d153f120e40c91a0aeca43a7c339a7a54afba23c9addf7d9a1a16aa8d9c6666a0eba9f5abc60ed38d418f370b789fb228982504aa0da91a3d2f5e8ef8446d5b2b9c6ddbcc33fe2f919b3dbdedfbab56f152b6010e1d42c4b7d50e07f26ddef1c987fe8d0c216acdb0d655c59cd68d7c48bea922dfbda6b2e3376ee7af496243b056219cffdb5dce50d8b07b8dd2d507bcd6499608f9db98f30ff09fab6bf2bc291e080f295cf2397439701955b2d3a725c74d66acbf318e287d648a78a6c8cc6ebdd50b5d67ea74dfc8eaf3d788b2650e1aaf198c458858e6fbaf67a48f43076aa31174095beec31288bb59ab8f179f196c739dba268e3d451c0fb9416720bc0ca2ac89587ee4f66b73a45a95e0dd9958d42d797106681aad0cf926c6b45ca9b26099946e0520d7d035ebc5f320ea59eb8c6cea0feb927b8892250d0f9909ce3f480aab38a93d976714b9317ce2b88f081b1d3f78e69b9d908ca777091bb06f26b3a832d1b3d0accfe6c9bd63b1c124a2e97ea49e4a664c1012aa4edfcf0c675f5535a77e53f4e427abe8d11429f6421b6bedb4ca74263a09b79bca54b9fc92dfedc3179b36ff690bf53e9c137f4efdad69f75684e324bf753433bb9c2fa2d7f5059c12a4504ce156bd121e998623f6b086b9f559710efefbfe9c402e6795a17154230011a1a831c21f01ddbddb0d5b5b3843b9d2d9ccee23d1c0efba658210c0985a06903319f7ab20006ea48ac193b7effd9202c3717ea7a6612c3cc14f52b3502891aa7ae0f821e60624d77a852e7bf293b17036634a48aa19ace15f22c70760ee04567593e8cb0088a5e83f8b41440ffa1264f55f087317d13e9687859c373f115f61ddeb99f3d0061846f757e1227b4f6865951246cecffb38ea8f2a88d3168df1fb84c6ef2d4e7666862fd22c3a92fb9554c4df92432fcf3d360ee5bb94f23d03204996d4a0c6d154ff6f08823558ac385a15eb85866a2525595c049212348c532f71b487f6fd98ead7eb555cd0794dc14f63f2beef6f06ce969ff749b47ee1fa44210f59d80839c56b0334ac697501a7136ce8cb62739640f3e06b011fca3cfd454174b71245bfdd88958af2edb7414380c8d093522a694531874515a96e72c4cc4b508714d6104e9b296d2a04aebe6b99022d0a5f9b09b24ecacf8c2a0afa36bb6d26c59352a87efca619253bc5404ea8ad7b1a675a9aed25956627fbfe32d8a08395fed7b621c1848b2fa51c780d8a7ea1a5323a03441b305dc4c6e50df9d14e21b29a50f44aa789987f15936f73a89c6feeb6645c9fba288ee6ce6d3f6b87cdd8cbd4bdb24452c3860f3339274b190dcb99875cf33026049ff717d91ea2101250592ccd1e65d7b34c4df953365827979243a0f28118a7643c51afb97761398b7e106b41783406b95bad5e27c6c9783b53ee6fd9658c1b9ddbd59ea2bc4ea8689e05f24b88be24e9250205ad4e02fe928a9e891e4cf048377a4897af4f781705ba64c41899e013347183387b74d6368952c536d6291663141ffb1a2baa35ae4f13d0154a2f2913f06a6b604c9ef738a852f1e01df8f84a34994dbb85a5098b8ce8fde290cd07c68d113a5e4093bf1928d42d95df20cafa567ef74ef9cfacab8acedaa6f2217af07d97d764f8857aa40ad96eb39851f5f8ecbdec66a05948973c58b5a0b73b8773a15855d2cad9d70ca4c82644fed34fd8292f578e05080dc30580168b6c638361c31cf93e4fa1caac172ff5b737c8bf71eaa0b26f33e18785b00cbbc5a643159380885b6937f17b4c41b2de308eab82877b0bb00bc7f29c7e628ca29f48ed1accde7d532377584152b10cc84b190218eb341e487341673c57b51c26ff8b359f9bc9e6ec2ae8a8d81152fc4555d14834eb9512a4b72452aaa76e9dad787be9ff13c2807f89f1813aa8be99d951ca76e109fc573bfe62a7862ff3b1f5ce8898c71ad66d9db8e1526e2919307df54cdc4a0e57d6a23157cf8dbc64700600d7c9f0c24f51f98bdf48e90604454e83b343ee9ae67ff73707a3d1f3364d3f82de769ec8b8f9d35a5bb4572273af9d3b9e7e7366df8e4705314493a04454fc6abef0fff72f216681982fbac0619111115f79fd0c4ac12b1445616fbbb44105bcc59cb75de5cd56a694191b127e8dacb096299dd99c042c7f8c3117a52dd173507d16b93c00f25ed0f4f9eee1f6335ee2efadd9b845b7576c4ec997401de4746eaf0d1cae93fd90ec41fed5207112ab0cabec7e625da6df670938577303ce90cd795712d8ff0c56cfdf7fd9fec9562b8781b860d16b23148a40d9bd9cb54293c1ac2d629c015423d3dff808c91deabcc435c9ef967ab8d9a4f131a86901296f41fb21d9a652fae7caec3dcb698197812159c66a5facf8fbed512319716b5a68cc6907822a446ea29ef9bad678fec5edf9a6c8be2127e0cacdb4285c0a4e330e9119bacdfbbd8da92147d41247df6991909798b70f7801916f516af89164ef065c1689365bfc3e9b03ccb1a11e37c8528556f3b6389ef920f9f70bc585f5d064e8a7d9b0dbcba82953e63702455132475cf8d42d912d696bf3ae2ab4c745c77e4f83c46952d2098e64b9cad2817299f7a3c4d9b02c65d0826fa9df2e7a611abfc39d9a80cd7661f6b9548ef8e67abbd66cfc11777a63910f0f036fa8abaf7ed224fdbec145b4290a744cc891162566d4aa877d9dcd69d985cbb2e9ebe3e25ee546f71cf6e2d02698a5c3a8226a4e142dab7c1d8de84ebd0306d66b04ef877434a96c623d9b76aab28530714421df1f2be2aac6073ed88abbcbaed753463c9e24c84444e3fcc415a8a76492ee9b495d775be059172331260ef8d57245197c8a9a1b0c7c837be8c01876eaff393b0346ec1a13ddf7c022de97b79af6af81995d780f07aa1d2bd2f2bb26d4d396003e0daa9c225903138ce870dbc67e84a665d919ed446f8b74d37eb57e3210b94f184610dac0341b50dae3c8cc51bb46036135e43ff7e8596ee955589c0ba28f0b1d9eec054bc62887bfc4f7170cfd443d7beacf4f4bd10e259890239a2b481d2f69d8e408251b5add124cc2b6167c6ba111a49ad29aef7e1e52b906772e5be288995f3efa059d320be9401953d73fbe271e2eaa54cd5ac0fedef206052e4ba325f9ff4ea3395a79c3b080375ae06579bf7c1a7ad145535c552e4d704e0480315d96e0b663e47f0b122d127175d4ab3be79c47d120ffbab3b7faa5d2b286c5b3b0db8d59e4880c32d57ee89ee5ea25b2e460fcb1933e7bbd96cf76109d8ad398b4e13965ce21d08d0cb8b884ac1c391acc8f7d5083c8728d2a05212b17f4049665677b200c5daf851d6b1481b27d7088742a545bd0ba347122987a79df747e87cbcec3527f76da5bc8d7f2ec6aad26911dd20a5d597bc8180f9e3d94f3ba5a970a6084cd79361720f2d49680a7689d1efa016e5692314d48a42fa64fa4a23d246d9cfca4317fc9736b45863f5c18b51311c91db53c73753059b018a3ee6d8dfaa96dea41b53519e5141dc53e730d66d3ac1a8be078b23a158176b8ff8317bfe00f014756a6c52e949dcc2aea7b47b9e7f4877abfc8f9d7a00a8753e1c9b0d92487992fb08857e2ab9aee5b18972e9d00f9f9e21a511a82b5a59c762a188d3b1ce857f989df2a7e81fe2e0daa05720e4ee2b5a84f73b9915c34e284e80aea8a6b058fdd22c251c016c9e6c6c054f442f4076609d861aa72e07937d56be13ed6f2ef399d3399f5e22cfe2dbee284c2dfa4076d2182a227c7f1f180b548a1d023fcd6acfe976a19151e532a4ac3a9b3a00131b15043717b7a74080d5246931eefe49f16907066c99642b5276349c2985f356cfb85748520f56398ab52872c01cc45bf82a4349370187c5877ddb65b8b1f69606826897a534d3203b50c49bcd5861461ba3564346abba9524d036fb2a1024811d3d73e4646877551fb0e3174110d93cb8071f88b45f51a245f9a1af636908f2164719ef513b30cb3cad70c09aa6e09363bc20bde15f72cc0cc9bb7a60d923cfff9bdd7e6fd2ffa990aade93d51d62c49e63ffa99c3e9ad6c945e8bc89576ab103cba7fbfc927a3c3271a1418ea4fe3d7d8d07d96f5f19bbcdadce13651bc55f7c6745961c1c4b2e751ab3c6bea885092186a4c7b1a99152e2f6d83e1ee09119866de500e602ae1aa50b101aa1e6803b3959eba63a2e7b4aa01db61398251fb1e2979db7e7dbf76a34ff3ae98a8ba836ecda0face1b8a26b1de4db82f7f1337635d4e4d858bb0a8578f8b564d4ec6cbed769edf02389a530ad54feabda4285f0e1d9168e7d7be1494dc88c1c1c836ed9102981e496b779acad7a9a02ae51436a1767f30300c70ae4397acaec79d206844da46f4b0820e5c09a486d82d10a8e4ad3ce20f33f1b26e6f09a02fa72a8be32a22b7bd06d0205a5e18ffcf37f9bf83fe451a4b8dab46cb945cac8bdc0a0d4247db7112506efc8bb2e440e41aac60c3b38346dfeed9e235cf17336233d32bb86c9d0beb14dfc72ba2f012dd938c5c638ff9ec9f3d6eb2b70c0db68b3859d9a6464ccb4d6a8b71b1f04ef282665d217dd6c27ed157074759904e300d227f7cb6c4da44abce5bb2df7d5ae94101d2963dd224172880f59862c630ea209682f5d823ddc7ab3f75ae9f554ee4694a223023b8efad2fdc7e5f92c5b5c7968f669931f8d2a62268e52e3da0d9eda64d962c24dc120ef2fae69fa9b1c6eb1ec213063889411c41869158228d88b30a2f45e639e944f8de82407cb168b5dfb005d08f8ccef3085388dcd812ad44fe99c76871a911882d399718142c5855c0c0925c6319c50d9317eb9dd714cb30feeaab4240fe0a16ecf861b924998cee21dfe9e751fe6c758765dc05235c04499ea0b5181dee5fa58ef7bd75e5dd82ac16d1b7b1e8b4eb188a485a667847480bacbdd5c7e1ab8830c8817023f100497e9ba9af1b96d6faa613432a9f96a5b8a8a45211499c6114b5f52a2ea1d88fea71dcc80ea9f76eb3fbd3e0b8e8bc700688c4fce6595da0d6af6e977706dfd8d73fdeb79a25f87503af80196de41ce706231a3f8b974c4b12c034effb4ca3e2a9a2263c65e7038cab4db5f35f113886e4e464204a81ce447d1576533e42c2d1b4c0c0737026752a4670e5ebae1474ffa3444eee98e150e8ae88175bb55b43ee763a2ab399565559dd052a884db3153281652af8b41150c9ca08fab9388f6fd11f0fea9f5124af30823020b3357191847c0024f19399e1ad684c49645bbf1852ac6fe5d780dba93c22987fae32d19f655f57ede84ffd7685f7cc9acb022a9092af9d2a9f1fa88cfef84170b06a4c998cb58d92e07c4e99c9811d3c46201c94e224d6e72003e1ff692ed8c77b8cd857eacdfbe57b44b8c4d564cd09b8021982f3c0233210f3b788bed680b9ebbee277bf1bc933520b03c89eba8f34f3e73ea180691b622c00c06c4b2951480f1b72a373e0452e5129e755004f6cee6e7d1be8c1232ca686aa9490b0a7dc3446e8437ade77c2c4c4d0699165023cac87931b0a0e64a38e7a58b368161912fb518f84bae4a5f0d905d72c045fc4af441c9b6687d381ad019e82f897610c560c0daa1cb5d72f6859c836f7eb8fe7f0d013d7cd3e17d3d6a7a30f90ff2c9e2d1f7618304b20e60a9a0a5c1b742302b2f9b1505e09fcae9890cc54e8630df91391170a0e7f7bae4998f54501f253701a80946a1481afff11fd4fe040a1d52b03567bbf7f84d94a245a0e0ff8b9b41db7726dc43f3ce46f4bd5b266363ddb7ec7f795f87c4282084ecce7de8535190fc5633f98d32c8e648392d60585047ebc98567dd3e78cf82bd8e58789d14e7d08e5b535a1063295c8c565da9b1c3648f769979ac009ddd054a50417976d471485f1f0e71051fa6cade9700e46291f4612274985a154bc3ee2333d1da0c35f9cd26bfd20b06890bbb32b1adf33451e85dbb6dd23cb2a043a53047120d5f83fa94e62b6d8e7afcb329457704ea6a59e9ad3ca1daaf75b3f6291b94540a4ccee7c7230e94bacac812e5185724433093d06ef92f85e8faafc8dc968ea9db58d0a2f20bea60088e7a2c3c0f853232e2922c428df94e54e75c7793c4df692df265053dcc4acc8e3e9c1bfdf71bd9fd85cebfb05c69d28913c11700b4a2b0f39b7d5d75a57a387c30c68cc3b255c56cfe04015dcf6d55c9b13e90673b01db1ec1ebe9ea86b4e91ed04b42973be02742d2e89c05ae483c0d940f1ea89f460f6015505f183acb867d68d292da3c1334ca95e9ee574eab91aaf3b0d18fc613b2fdba46681e69f99d7ff4a3e6888073a67649878a92767c83815c770b83ed5df0b79e731f0e0aed1ca6bc9e3ac5da82398b3ff3b7f722b9e2bd9d3504731e4637bdbb929703f927d853c338a2b867542fda5ae2ef0f971ca727e29b4924dda4bbae399c5210cb7e09a6412cc2c036becd90b85c62bc649f6a0352b639c5c65af3b49637caf523d6ccdcb60854eebc4adc13170771195368ea82e0bc87d41d141aa44f2debaf183ea0534c12a6d3a83d28ec8bda33314f7d89c52638bb577c32af30b84297cf6832e909908f19a3f11804c35a7ff37dd05dcd686e59b16126fdf533f5ef21a5981571bbc7e3a39d3b10c56eff87af3c5bb3e1a84d4618e9b60d74004bacd23a36f4e2885e9a4ed1ebc1420fbd999b8f0a7011117702f3ee202c76c63121681fd33c4d302fd6b727855e5b3a44289c704c0652bc9e941cf53e728b08e27092007d60a6d5ac6d90c428206f3842cace7339e0b72597fdbcc46a9c05204be17515bf3e455b2c5b1eb45395e450eb54ff5932e0fd88079bd584d7e17dd1a5a82a5976d7664ad00ebbe933cba226d2dc3173ad7f00d35d99b820a88c4cf1144d3d9502fcaa4bd99d558e2ed598249e721cd15d144422de2a8ffefbce13180605303c9ea0942f5dc1ed9e718836fa72f2a9491edf6dd7f153d4056cff336744caf613e7fd0d87a6141adbaa83f2271b8578494acbc735183fd8f5b17c565def5d78b0e1e9e1cbbe0983033ec4c39b47825b766e30bf931a353d0c74f5e4bac74f13be01af4019e5986868941ba95d763bd9217b7b671b66887cfb6eb68f768437181c012f3d74f3c51ac85fd0234c52d7ac8be25ff61aadfc613178eec8c121b34bc78f4e52a4f4b47f7dea98b7e89dcd43f44c1446e531768a6d128d471d5c696594267edb9b6c2d8ffecee46e34fbc3417fcc2955425d06eba78e7d877dc94393ba86b39670151ad9aab01d549c2284fce5babfc46f82bd4c47f385477f4250f42db04e29e412c9ffe9cf1ffcf55a84fef9aa315bb1f203c9a723fe0aac8d3d1eca58349c7cde6e359a93acfb8b440388f717e08371c29e51f101e998ce7e33994c2edfdb2c6eb4c6ce6102693a49080aa8bc5fcaf1e1ee293e85b67b57fcda621f6d48358d57e78fde6116639b43b2ac54bc2e638b6b6b6611fe1a83d19cc66af3954fe0a3f1b882c201268b432f1ec988070aa37f49d2761d03f54266ce10152b4cb8723db75725c45877860ef4d76ea4a6208558950c985ac0309172baf0bc14a7ec69d56b14107cc1287d7b9e37e03ed4ad27d9524e5f6da2f4092b573b2bf57f71a50ec5b2732045e19d199745135911f64b7e688b335d98288b50594223e28661e9bb9afb8d23b20c9704abc033609d3ed78ef7f5cf9a6596b9f4f746d96c28535d78df243622780f2071f7a81f00fc1955bc75dcc456be767a4eb4c2751c8ec40fd0e3295622a38772490a43e9c5724f74532ae8f527283c7a9e971c95b843886df8a53c6b219041cad9c9de5792a8b685fcf06e1902d9d1a72399fdc7634bb4cc18300f08f33400e88cf5cd65dcd09bfe0b64453d7c0e52b51f1e5b1286aa44e52247d2506f159a92b851dec1c30ca4fb62d0403f67976c9bebc57a6e87b9f9523bec6c7ff13f35117ad05b4ef3ebb4b8df946254b48953141cf4a6475ac0f915b2729e6226eb9db1a24917a2533715185ecf7882ab5e091fb6ca07fed5a964128b2c73d92a8fcc46b4932e878d6fd8214879da2772ef588073861868e1d7579196efb15cfa93b1a2ed0f5b7d5ca9a97eb655c770e10b953d176f7d4d6d62d7bd19f5ae732def452067fb5b37b1b135fc2053dee3aca57a21d2cd92ea3e4bb12707d63e3d084bb11c3f17aa1aa4a3c70d9f420fd6d8c9353cb79be96f8a70b643c7a55aead8900f78d67902c1375a2648b80667f580e2966040da0a825d4894e9906d6441a6f000191d9b7e7beb6764e6c49b17c0eefafaa6e2c746bbd9ae31d6518ae11b2ec0b868eeeddfcb1d7e1f47de9b270a000047e7b26209263f51b02927afeee633cbb0d27d986de73e6e9f6b5f20477bdd369b441aeb29c4c67f1be6658ea7221fef7f48d31d433ad32e607af522620f0164119f9a58ef0a4d705c76336b3ae7e91b94c0570a37e3458ed53d40c0aa968c5ced1fa3f20f60cc3b4325ae15665e5f14b9b271f590348b7da2a202feff32f0fb24b0747fc6a3a72053a3a513af44aa87669b316a9e33931c113be3f6c7dbe0b7098116bb33a3c4d38784e3f7ae6a335ec97e0e89d61c8cf253bfbc8d8ede9e4c2b845a08a7a676ea78c0032a7f37d0535d5eb274a4dcf4fbfb887e0afc5a8c3b40f1f18d15e338a71733dda066244139b5c4d6db20987f781a149d4201c21316fec39131fb0839b3c21e7a51a03f0077c13f3132fb24c4a2b885122f695edece503927231db5b18e92a4a05446a95fab7de06f6a938dc2bbaa21ef115ac95a8b4d571cea29ff14c2904eeb042c18f87d6fba4543cd90351447d2798db27493af9262ac26ffee061a03887197b7566702ca6887797620b5fd34a6e04e9922551e8468487971fe2778132100f199bf5e445a87577131e4a8cd5a50792e086aa5e7f7b60b42cfa2af02e4cfe1b999c701d79a376328b6b60a5ceda591e7953989df7460402afbbcd6bc8ea937f2847294816d9e2e83e325f9a7c621d0c9434d1bd719bcf3a9e72712d2a6abe188c2da7963036571478bf4198c746024069fbaf271a1e79afb702e1d1e9135f7b6ebad82296d3983551b99ccace3a547791769d9d1bb3ec72f0f11d4bb708ccf214bad8b2e264bd8f246bf2c0a2656cd150894d29224e6ea529e87dea473589a051e2e6ca1aed18d379bc4e4df977dc34f8f4c71d170462dd786372aac022588eaf99b340af28306f1793bd0bc9049e32b00f37e358e884fb4e43e355db7e282a6c7f1bcc8c81e978b4e6c6efce18b51d466c2f13a511ba1efe7ac288a016476ad5a4183665ce442d5f0cf240c9f3aefd4554433333e33047e8d06c39215e428f2c933dad5971a88ab119551260fef3961f3d9b6b8ed4802b2fbc612ae137da3d9557e67f815893ce63d1f2e6d3369bc450834e08e0a93f0a741d600c157af2a03d571f20632fe79117c84818fff0b0f67a4de3928ec942462f519ab8b88dfc6e6576d82b4f6cb9ac8c91023613e5968f0c6b1fb4c3e8f388730e38e374cd45c8cf169cd26aa4346c4c5bf4c111f7fbd935a5de19bfb0960f4b77b83907f3c56dd596df61d9e418deda3c6bde892ca727dc0e650df3d50cc95aea084726c25da526c179ce5bca21608210badb9f62c9cdd1624d1700cf1203710014d36c38495025c1937e904c65bc58ba88b6bfebccd286241d0245e40f83d55c4c0260ab1134cd4b8c805c613f552216c974c7c347c72c23fba78f9d377800c002849cde9a6a8234fd9f2fc72f6b5eb593d136971ed82e8705ffdba07f5a9ec42390218cbe05ffccac65c9ad05b8508274cb984f7b88a10fcaa370f7aa9dfda0cf461a9dc9a224d2c638adc9f85d5bec0f69a036bd895e25ea9711a8f7797a8514b20e3038fce3109e3a72352c56613c2a683fe174820bbe7de351eedbed2d6fb9f94aa0d80dc020c1c11d2e4f9689a009f92c769376e083aee6e2900412f81660b32522af23a18731335db523c661e016e21d973c9899bce8e6505771580afe27952296e7397ea8edcec9c1c9c2654803016cf6d65080670d3169fc4aee0b034955a7f517458dc43c75f80c8eb9e3beaa34bbe2f97f95fbec09ce19fee73cf157f80be30b0c9198ddecea85f9d3cfee308f948b87fa11bac33a313834a41a0b25bbfc1c9253daef8b6e1a7eeae2013c1d54302aad5e0de0318234f3000e26e2aacc1b0c39f2222278d4ec807a71b320f39650eca756cb4ddeedd97275af0c81379cc7b24cd57b44fb4f7003da17c260c6c0d70858336492ba5536a31046bf9f64cf588d9e93287b954d80bac6a05e32ad5ee1e6619ab542fba2c5ad96f7e58cefe2c4331f709e8437a5a6d6eae95508ffa9ad6a189a2bc02b6527ced4866b08d4ce9026284382ee072f07126325f3197441b888c2e2b800ff030e601fa589c984577370307e68c147d0b497a22b51a5090ef7b20cb8cf696a5d780eb40afb2468540cf90c30e9978c6c96d916fc8f7fc915c7d7c7b277a2a60fbcb48d3b97f643d8d9cea4591333cbaf57e9939e3bf930734db6235102933ac0af2f612f7d2b4108ddbd46942fda09f3081434df50a3ebb80a5b9d88cff6d1fd4bb98d29aa469bdb00d77f349797a88624745b083f7dd55c05209d0d13267af7687162a9ae5ac979e15dfb74988b38fc966d73d4d65820195e20241a35c065896631a5bade01bd44bde7b5511f5ca6742ad375336e0f4db18a7f5ccbbbaff110fd593c5f96e44a204dfa17ce0614f39a489258c4db72d393d1959e11a7f6019a09a36ec55272f176d7d07c8790369d14937678ffba3dcb5df7f48989cf0078449f7f88859dbd1e7c4a54b25883d512022c746ebaf15e4197fbcff287de5292856a995b1ab299af3f7f06dcd1862d507e25110029daedb0aba4361e8a9f3cdd24bb90d0c41a9e89e455750cd2b8cd67931b8940655be8c8e012375d9018d4fce3bb921137c3591fd88bd3c1e9dcbcae6ed56a9085a8f755d29f8e4cde71fddb82de2da6a612f5ecd6ba25f4ee89e3afcdbfea711f32c4a05c0ea7c16c83efdaa9eba0345521c8a400ed047b9880545b36250eb50d8de70db580aafc373c305ae4e96aad5fee64798ed3d6950f84b1caf2955585888f883bf31f0147673dda282d64ca3d7822b398f133e9ef38e1084ebb4d2d16858c2d0adde25e5beb3fc52b7bff90521de63f993d8a7a159c4e657bb575ac0ce9132dc21e59d80102d94ea0e1976aa473b7e93d3c2f19288966c0317198c924e2ee5db48717ee73e69c21037c180b355b66208144c1375de169c093b635b39a1054139048f993f900808c1cee137038e9532cd5e9896b4a95fa17f969865a9007e0115bc9031545da856cdbc549bbf4026974a7b6779995174838f09e8935bc4116cc1018e131442cdec56d6ed4cd4afaf4a5d39cb5bd50ece7cf673fa52cc0d3c51440224a510deb2a555d5e2a871032e22d48b6c02fc3397f6859353a4ff849e98d8c8e13dfe24239e159fcb9d884ec742f67269610706d7b7a432802ef72472806c510a08393fb751b6daf46052a32cdafbb6153cd0241000caa66b3a3e1895e8226b96af3ffa239eabd7fe38c83759a58f7228e5998313f3069f763d62a5c7f9d26aa05932c9736c3cc4021e2a9a61cd536d20d286f109f279422929722bea3986ada3b95855501a0534b8db7cf544265c46e9831e32f63bda9e9a3a852e4ea6fcea399d9c9ebd1f75f654b70466f2a7b26e0bbecea53176f066e76c33746cbd275840f20aace8d7503d2158ce5df40dd2f3f0246682a58b1c0152031a309279ae998e1e56ccebc52e13fad6281974e62d1a0923999bc2a7cce5e5d85a40571e6c86a97b5666aa28fa213c66262387fda7c7d46381bb79f0094eb844197aef62eeb91bec8359263373c9d0f81feaf8fd19be254b1a8bb608ea31206b0106a9f3f8f65dcb7deef0c8ae8557ac2e640255cfa51a8ec30a1f531e977fc5bdcc297d005a79ec8457993092a5a57fb2c3a1e20ae8a17ac09a1963672f78837ff33d74b25bcdf6ffc03ac85a51160cce3b84c47e598d89ba935b081947a5297d6849956aa3a333f9f18b6a17e1648dead4b395d6b4808e3d6f82e79f03357b6f7faea6bda97bca9f7c12dd2c830b8130517bd12ce54438388079a0f7f1fa4c139ebb61f02a387dc37e5b52d032608b0f2132a491204a9b813bae1931e5d559aaf8f1857f6998305cf25bc58ffee91dbc67e2588bd2622f4f1055a5f3248391785eb7029840a7f0048e5ab5c99ea88fac0ffbbe91560101bed0405cf8eb38a44716c5d39d060aac79350594325c48f51cef7f57918282d54eaa0e388c36a2bee5cae5a4a63f59941cfa930950467c0c89fc69d56b014fa964aea82c12e11583a187d491fd1fedec75ab1b0d01baf8fa38932981747ddd3dc8ea60bf7e16234ed2c44e5fa0dec714adf771b1f237c876afc77c5bf49adf6426122760dc0ecdbd5084ab5ac2d787c3121c4571288bf42a3acc0b70a8c223558db49a17c71d1044f97d89a54a7f8bc4962549b77b3fbed067657da440bcf59cf307fcf2f2108a462d5c66135223b1f651c19c591668dc828a6ef574e2180835ae403df5a3de5fee530831e7a97e5cfafb9cc7c1f9b57e453a6e2f7ba56d30cefc79b63a33a4ba54520729af521bacc27357f48477de0b9bd23aa751175e80b37c2e3e6b8ff4752918e69c35038508323a014842b851d642f1ae8160b8768581b340a88cba76d94a17b659fda74b7705f82c79b7384141ecfa6d27667dd7b9828993edc549d47706c399dd08dcd55b95f68f081e46f60fbe95b8c3194eae6fb8c9327ea9e5f78ce415619fbb7603905da332bd0d8678d90e2c51191a8881c176a40b802bcd9b75f00b36fd7cfa9ffed1103146537084da906f705f777b4a51012e35fc7e51281a6a2659a46424a529c0730b2464cfd19f80d0c9188bec5fe0c5e0c83cb358e266adeaed83a0614d4661a8863b5b42aa421b08a0167d95300aa9154bdd10db692be661d79c7455f6d84bab1cb4b3becf31be90e919c9a1cdab588da34fe46788fbd799a440ad57d3faa61ffd034a0ab3c0972985c4543045c2beeca5d7999f4feb9a218d911cf06fb35cca9d4b8541faf6bc557ecc29d9ccc97e3c2a3fcdb88740af907d55446002108c16db62ed54575acedb61a3b423bce7de67b5c435fc6d7333fe336e9d198ee22692a839dc86aeac1247a2037c0a57699dbeb1062548c31859896c880642d6527a70516e6bee8cd813670c16a2816861fa7537eda58d2a8f6ed21dd4c33520ab5c04493b39f8ee8557cf4b2124eaac6eac2465d42652d789f47dc5d72101c60ade4b8b1e22e45611c2567ff5b99f0cf58e47487900308cd23fb5c4b03de898e8a4618ddc964633df8f97dd856a6da65397bf556b1955e9dc18a5cc52ade2138f920abec0c8849545967169626714aae1055072045c020b05a4005b98c2195efce62a963d805b3886aa88b60385c802bcd6218b29b30d78939e794636ec6b1dd0de4d394e145bd692a2c1bd1ab2b3d1ad2d3fbe55c86060e0a54c5be447ec1831b120a63ba366d09560cac1562471b8bdd71913b2cb782b30cfb4074dd161abd4e6f576a75f352479bf8f43538d92f3290405c33b25e6562350721896b9c505923e4432fe7ed3b2e503c606a08e1b45dd05ba113b0cd2a4d3584d85945bc8412bb7242bb31820d774aa652615d005afa645d4b58ca8739af8898c4dfdf04b4436e1d6f1e70f4f4c0e092639e58fbdfdbd8c54d17f8f984eada27e6425a5e56f4f4f3b5461f36864ac3e0a861f40a2225f761d7a4a242288b11af2ad22e2612700d658eeeb99c78e005ad34894c98b5e862678d256a2872c405fbf0a60bd3e200350d94a92239b2eb27488064d583e3c175b91b1ea5d51fed4513e75f6382d85d0c68c9346f268c131bef5f10a2afa5af88bf7dbeb159dab7b79ca2d5da797e89b32e2d1e11e85555a1628607db3ee08ee1520ccc2079d2c821047f742df15072e8071bf9ae99f505be5f54c2295bfad3d5be30a9ed41672a8b99963a215f659442e742656a73486a45373ef02450605645cfc17982de363273128306324bc79609f49d272b7199ecee17d5ebe06d028688a8be281aa702f29bf62b21abc9f503130f20ff31ff5cab9a5334594c71c6c957b95d153253fe68c8a3954bd7f081d003e95be2588c3d05c1f76a761b86105a6ba825c8772676c0f2ca12053511744cb8bfcef306c545bfeac6fb6c10b0589a81f9d33db5410b7330b146001271ef4f8df1619208ecba4d22308b5c412e7332a0197f84319f85a841f0e45fb972497cb4774d257db1f6c37f771ecee0ed605701305870b5ef16a08aa90a82bf164150229cd2891379c3b08a69db0717417acc8faddcc602660a6055ca1d6a909cbe74d2d7a7dbee062ffc4dac274d003e33b416dfd32da81c0f76929c86a4b3f7dfa881efaf67b69e5eb84c8ddef6316e6bc463fa495acbd1d4376b6943ce5fb505fd5fd7081ed996bb4efd32c516db5c283feddf7cc984b9a8484e9145c0de44fd010fb205f2ce19111b784b284ab978a5c5f897dc5d148eb3e03ab5f1e705838024675f548a663c7974a11b687a4ed47855517a4285dd5db3900470e3a0a43ffc605d8fe1e101dcfddbf9344cd14f976787b283a95b03ac890dc34bdf3d9414900d2fced28cefe42f3281caab236c88887317ef4678d36221104438d5ad920f26104b397e6f36d0b27d361fc03d41161451e91ea135d9defe8c145a594533d8704db3376703d06e91d28ca9290531bdac0619e190b90ed4aa58c71ac3be7dccdc794932a68a411f1382bd985cf34c6408f0521e036c15be080637a51c9c7ba3885c7b3f37872b60a4ccde43594ab5ed2a673148300a0557102176bc413100e74125ad63968f37770a49011c5d24d894609fe6bace9e27755eb96e83ada3714e013ccb305b62848325f37349d7405ba443ec1e2e5b4c479f4759f3e6c61feba0e9fb5e285cd2013b40f7631e83cb8f2ea9d6ba61e1ece9e4de45f2418205c5d45ada8718cc5d35e2eb6e4d914bd5724466bb3662d23eed5705ef4a07f7b4da7ff5ddecf0fb1a7542a06a80d54594b71dfbe850249dc22cb0421cdd8e693889c6b095a84a97ffe4b0afd8c28215d66bc2d4138638fe434d7c2fb5cd61521706eec226cbe186e6fb77fc89054b51fdc631cb547157e5247e7f71fa991db5ed54598ebbe7dbd068e2813fd0e668e38e4c38e526dd57a403e2c063f949387095b65b9f456eb20b260f8a11c1052f1c30021d6f014984ce53da0e4f8fe92706a8b11507231806ad7e804d76c722465b718e63d017e88a03cc4369a9a17536f74f37b8d5d6ac1ea8c5edebb1de7983446d8b68059111c853f1fdac72c73db60f0d486586714ad91d801b123c0fd1eed5509b350ceb59df1ac412f1cd2c9dba5b94197ccba2c6e7580a3323b0cb81ee502d66bd19d2d843b623877de7570aea20ab2d3b68f5491526b47dd03f85fc8b13427781baac67d9f43c2cb67cae9f542d9671d1a8d3abf049182cacf1d9a97ad429149bc83e75abeb4cc62a4972843714331cbaffbddf40e7b7695c572eef678a880df354443e81ba1d67a98595d8b9f0b5cac5ec8154d16558cc3624d411e76ca983a7838be589f147c10d82e69754325ec22c65605b2668d5156f6bbf65b4dca76fe715b4d161564ac830e1750b056516734bb2369386d051853232bba75686b4a847aa05ab0afe54ce177814495d4cac748c337e5793cd23b3f625c24b37707f7bce40d78257f394a9c642b26513f0368ef9869bffe0a8d30ca7eacb971ed92aea575a76bf5ff215a1fbd4e8eb21b6ff969a870afaab133b82016aafad681b138bee528de3f8aecefc67920c3827362d8ed98c7ae2b2e99e5ae1ffc8052adda57e4609036b3e0692581279f2c0153fd4e84bd5ef29c2466cc6860986227328efe3307796c36a6769a8768b124b24b289932a11e78eb5aa9000cf5495521929846106e45db07e3138d6572943c33f3a0bb9a843ad20c38f8472ecd874cef95675c45201a6082850facc28f9a513061168096d8521ac44e1f1e582c9b8b5ac56ed04716a84cd9da3c66399c390be6b4552866c4673684ce62efdb291666b6f19b00f244c7f8e2173db8d58a699cd78d86aaeca39bd9f90d4f2a95319a2872aedb8bc40de1fc78d5d7bab7e152e27e9177881b82c5eaea06198b3c82eee3abd1ad019bc92a5f0c8ee373bb384d3ac7e8fa9320a5d33a64d68e4289b1661400f6c93ffa46b03dcb24beabf5be2da914c152322002feb4a14198dae825995f97fcd32f9a442ebf1c5b55c94bb4e52d72ccadf046c4c872b82c47fa319965e2a08720d790f8bc54475abff66af1705943beb37bc5c9d65dcd21786b589e4bc9fc7d89ea908a4a96cc2f6310e95d14867ed1214cda258c498ece0204d316112dd88a52580297e5436548b1206876ec470641779a649d80aeb6867a5416bbb86d609c1d7a57afd7358ffa6b6a2bcecbf031d0b16b9c2dc271a4be7e3e4196c8858167efe0e5d88f454efd7f43ab8a6941f6421ac97383e76164919bd4da88e00fd8e143edb5095d7918ed6c425be5dfa168e22075d581f253293dba254bc4a0f89cc732a530b0f8fce4cb3d8004ab7a7b88fc49af6dbf020ad4a421d68a53e0165617a47a4f2de1b0fc7b11f1cbbed58d53612ad9e906d84d0dcc06a85f8f3324849494f3f554845a7a4433153b954b592be6730ea4d624e9765fad555ea8c2cf5b466a6669ef39bf5f53c38467b8b3f87ae4110280e1b065a32c185fd42270e5d4f7583c6f3a0e34c437ef17a44571045eba55b2568e4bbfd7a449adae554fc3ffb6d66b76655c6ce866baadfc6ed158c24633c6ae778e71155e142d6cec6a979e58201d55163991eab756d31bf9b9d91f708da5a7eb6f8b8e937bc32d66db1f75f2cdaa8fe4aceb6ce70cce1fbfa78d6aa0929eed6ca5b270a2a33dff982de79e607770d2ddbeabc014b5c9522dfda9544329aa4532d640e78d521e872a193781c2681944014f960d45bf2db0c6a06a4f496ca1bfa79de44f7b006b6515873b9bf966619ac4c0a37edfcb5a9f9eebcefaaa37f6e5e95d70e03478daab2be80f8c2e8479679075d9b231d45252e0e795dddcc440524ce2c067a80707048fdbb0234c0483ea4117e890eae20dc54adf13505f5734e6d5d1e5666840864a38250c398151d2c9a7b258239d5c7d70ac39bb7d31f9cc88bff1f57a2b4808a073f4a84cc100ec8107a2525244d87f626dab72425a47c8affa3739f34bb9e0335e7aa2b443e66d009b474427ba87479206b41272624ebb2da7ad927a45139b556ed0ee2b023a56d60d98f8c54030f5f6846ca4c9d67657b59d2154ee3dbb7cadea2e2c243dcc5aa90075e36df9b2691c0aa63b63c781b042e8aae5d7788c16d66d736e26f749421087d7aea56d2590b04d5886064a95952344fbea81dff847f368f7c6e4789171d2acca522a0a7aa2c916606b19f9584fa8a681d04c82b9554d9db6805bca161f97eb35425a9eb82a74c48d52457022559eb45ceab9130ff668a5c54a863c58de6cb477769cdec6c26dc703f01ed131cb96481d8f9f6792748f6c18cbbae3627536eccf63b2e3c0d4cf26e5ac3f41fedba2f158d81bf9944f3caf9853af14672ef66c9a20fba8e1ddd3fa53074968923ea0710cf3266711f16f858cb391ec5c17258159496d8dfbf5c8f1bf833bf5f87b6840ce2919f32b6579d34c5f57c8b8e1bf6a906b74d7809dc8cc84096418b9c53507d1121403433063d64b689dcd2f5477de6d01ee2d1c14b7e1d8c4e306636f5826b68b01a18fa6d19e6bff03618c807e834648391dd9b9a1990be87f792c5de830306dc6fb5567cb8da47beeb0922fc578df7bac95dc3c9cf313e6f72d9df9756a75205ae4a5dd96dbfb1ef628f53409cc8840c96aad95d3ff6e009a644b84de4f8280af51abe89115ca132bfd589d0d04084639d40c14ac644e422f63a8cb4f0e2cb1bede8e0dab9a515c74a66ae87299526df3f05efe65dc1643a1f3dca3370a03d68a47e6d4ed1da5aefc5e02c11f7718fbe83da385f2b22e4aede1b5ac535905d3b1efb4356626de769fa458e5e5801ea1411ffd0f594b1cae117ea03856462181ef5cfc2f7991a379b6bb4a31130769687c60cc1b4b9af488a31fb7669dd0870001b8dcf8b20d00d17d2aaffcea5636c6c2aa553d4ba9191ca49eddc14928cf128052455af59d883d813eba3f9828c9655a0efbf81917497dfed7edf69937e5a6a11b3528e31bd3052b83722f052f03716980047cf195fa66cf2cf473d116d2003e2a8bed5fb03cde994f3544298fcf613058f87577680e463a027c0218934a272c386732fd5e009358374bdcca615da673d2839432eacbde1742ecaeb0b31281c5251afe38769d6e6f988cec65312aa20e8ff363bf0930233cd9f38e9e2a30cc5971a67683228e968c0f1671e581dcd590123c96f6c78b146a3806394ee5ecd876c4d0bf1bdc4dd8ad010d902144ee37554492f2b4b872ca4dd4e7fe2281a9b22a66c07bf6f5afa0cb1474a0a0632708bbf1936ffb87f9f8fda74a3dd7d17f20d2c72f8f0a0f861782b40f87ed3ce8a70649003aac71449097ad7a52775bb5a798f92c0b93a396999a8f5a1bf21e4441f86000aa3fc8654f7f681a0e5fdbfd798a316a5e0f7ce30aa5198a8628ceeb4655adff686a718c64b65defab09c08df9fb491e300d3a40bb8509a3ce2204e816798f144ad46782747895beabb4aafcbc1541758611d138d7f9da9dffdbef234a80c3f896ad367ba30a1d3918cef2f73c87ba901a4907489f994b9ba482adc77ac9ef91d3268032793c86f80ee722c595bd7918fc01f95ddfcce02883f0d4628b551b0a3a8d7c5aba9c658b9b6b7894067fea5ae65296b6607b5e95cacfece6b80833787114725a91cdd49137b168a318779bfde8be2300500053552982f37101ed86184124405da0b4efe98105172f9812bc3d4616b5d1d10c8b777a3ad7e8a95d4a154257d8afd67c58ecfe46e136c905a6c0a84fba713fb39c29fd5dff61ec7215dfd135bf6f2381b4b8f339d30e82fa51f4129771ecc5c95c4c482ec35f191c6515c71e90895f402c92ae3b31c2152fdcff295a6d7a613065186cf1efdab5151affaabd7707096ced4bce2ef24538420844beab16376f4b98d2f349441d6050f79279e4b7afa9fca8c55a7b3f7b4603bd6bb3f227274f319790b934f76b856c24102a9d24f302f81378c0c5f8019ce1850caa7a318fd09e490dbe2e318232a6af2682cdaa2b593e651101902edbe0800cd70c27179a62c3598d76598ddb88eb06b0f5d5c42a7845de21ab50aadb780ba657633b904f435bb8d342109ccea2df7ef7942a05184b213dd86aab65ee7e17c9460ce6a9da265b1726fd456477f03ad0924b03939f219b48ce455f0e27f6558e69c1fc402011a66e61d62ddd71575196caf1e6a670fc6148e5d32e87a41acf340287248aa55be3781ef02673649f85d392f2020e0c7b8f8a32077f6843fc219dd0e8708dc6219034e6669e875af518681388f7abe244d6dffb54a97b20cd18d0a2a660a73c8dd46676be9feeee8f14a0c0d0fef2c307b01cc451063eeb8de67575320005f5bc7a1316e2177046be02a5033f1b6f9c65ca9b6712866408028e5c24a2e42d3740a209fa2a634adaebcb087325483d846bc3b948e44354841545f6aaf6a3751b607055b91e9bad1263533d9b617d901d6cff568c2ee3a9d51e23daf4da698951b10acad1d73c3cb1d85e1c5767b52b43570358668eabb06fa60b423e3c4ae936a89e813c4a2d920b0aeb62b82e0bea06e9472876804aed249e928b045efd683d29165312d6d4ba15f84e2e80c6733a004aeb333329d99659328ab9864bc3aea14f5e6140da07b53c897684278d8d9ceafaff6a690e4516069f05f0d5c846b771e4d28d4c39b6f8109c0ccd77527d26942579c2c5d3828c89b2dffc75257a52e33f76fe2902e8ebc0d4a355b3e3d7011cadddb5724c02494ce83eca8d9292a4fa8e1aa01daf616b63afcccc4dc424ec8097fcc0c473b356324524eda7de78a280b786a1b2ac664812a18ec634159db77faad6e3f61e8cebdd5fcd1a03b9409a4954eef6be1a75c8d451e93ba8ec67c9c155d224f779e6f9c13e95ac72de79abcb83c9d477f981225a39da07a3a0bb9b5b44180c43a140a204f60a21cfd1784705833637963431048428e26bd3c5f93b9b2fa828d4eaddbb312f289af60107b8b34e945e8b3ec10ec1892d8a23e511ca26cd4e891cb08a51bd04ed5f5d7f4499d9c4f24cc52de655376251edd12935fe6af2264413ab4b2156db29592ea3e75995004a49038e9ce1be5d06001a8a2ba15947b9f35038121e0823eb97fb4971bc47ea2760ba57102fac6f6a926c2c691078221f333c10a7ee2e2acec9fe835e590a36a8df89bf10af6ad21859380b59bc3d68c6244649dd6e386c81c8e9dcda1c764a18d9bfcf2d47e76fd76c421930adc28795ec36b5c72a3706d60c479df8c6b9c99da7edfd88cecafcafc78e6802fabdee37348aeb1ae5443b13346aa7fe6800b793638c2e969284500acad815c252d48e4ca9db921e17b532b082f0d1edec2772176bb1d886d324c4c4ba9bfa4576364e097c63bb906a175a335cd1e1f98cc7036ce4d23bdd4507a2563fab6774bc8f7da7e3825ca63d0a15bacdfe85545986736f359cd9b1924df0bfe55b6a348e44ad96966047e421dda4960196f652b5c1225b87d2a589d62920699b3b5ed6e9007c04529520e45e037285cc9f19a9d983656d4c499e3721f96b1c365acd3adf9638c15ae832396f56213624614f2f50cad3e7b5e6bc28f82deef1ef21e11c152d71eaf11b2d9181281f48a33b486a7a1c0d033ab875a5d50abb5ee1bfe58b45bdc90de1c91cddf9268a65061e86d60a72e81516173308a22c87968c1ca2cdbde2b3a7f74f38c7eb0ca8dab0846bcb89694a33c9dc81a442e5a41655648699dff8e1fa84cc49faa3254ee3280afaa3d1ce1bef94a7df1e096662800320f3da9f898f3ede2acdc7209fe7ea9687a2bd92711ad0002f5d413eba12e044dd1aef080cf90add3f138a94ac03274ac5c8c7d04b7e3158a886eda0914b1d266740a1b7f29cbc5ef6fbb7e678954736bbdcd062f8acfc2a3b44a8deda21989e8e53fe5e0a2040c38b19002fe94f736f612b78757975b0c985a4601e2e6fe604832e774328ef5972dc4ee9402fc769af10c9ad084f8ea0ce31c37e77076a3b95baf5aebe28f80552c03a671b2c4270d67237746edd4f3593983dfc76d11a43f06a5cc1bf3d14fd5177028976a265a16403a929cf23e538b777e7439dbf77229a91cfc2458dfdc6e0254de93c392353012004f9a6c26cec9db5b1dadf7831dc7a8cc9bae81fea00756182ce0b4e9689f6a807354452c4b4ec35f55f26927a915d42d05e501f26aa08cd9dfab697b8d8b131338a4c09f8ab10be9347ced853f573dbdf62bb64475996c52902c49818aa45c1542635b39049b8e9a0cc276d27d0d009444a7b57d435a11e33a2efe1fb96e722de2ecbf639a1562f85fff6acbca0ece12142761b7873afee47f5a724976a72c66321afec7a6ca2f4cc7ef4edce3e244334b5a40f1ed5c76bd3978d15466be430e703d2057b3117b3155e4e08d1e236d07cf6959c8e6ff7d768c4f81eedbcdffcce9cfe410d5e752ccbfa23b1a71dc977eb96e852677cd07dcf3073e3ee09296bae444db67b1b3dafa6020aa5641ae38c3eb8d559888fe8bce1fc3d905f232c833e46b063cdf4386b22bc89a24cfb716f9df5a42d51ea57269154c7ff5ff477c32a2b695d8026f1d552b59f34b242c2c4af4834ae46f93aa9a17e3aaccaf73b6293c6913ff293361fd8593b4d6fff0c4033a8757dfc4134cfedf1ee719c5ace1d674893f5f0eb9bb5d994c2af07e4e6fa51fbeead5b28e80846b3f421c3182c9df626afd02d7bf6da3d908d2bbe86cc5d3b6338c1a0fb800a3dae8ee43bad7160633678ee8c88e4488fd668a626c89f98c1ca80f6aaac293873f3b16bab616041ccd756ef8adc43e5429915f7fec422abfd2109e97668952233c78af5d9e4df8359c405fd3242b6864fa1c78f58c77efd3baaa87ede1277137133f61ebd9279768a9a14215f6524c9497ca7f85c62bf88b33c4626f8460aaa7f600886f9c3daa266fe67eb3c6f39f275cc531a3743548fc9846266af138b870b50873c068e578e74cfb6685027e4e5813e5a58eb4893e5e3bc8cbb7024ba0b30b66d0a5c98630a98b10c696f2cd72ad98bc17b282432ca0b9bebc602675d21b79469805a0e1b153ae848166f0e0bffc41c816d5b17cf4ee3c0b8cce688be1ad6ec5edacc40bb495c4d9fda7dae397cca5106c18f6e6a50af30c182dad7289ef953e2b1383d27e179001897635161ccf837b10ee7ede6ff77ffe72e552a6da27278c080607c634258430f2a223c476e1970571eb1c48bfa81baa0151a76637b16ab76f3a3cc1b2329ddb245b088f189f45cc1e16e8a87f2a1bc76383aa462f62353b80b28c81c38a0468796c81d2b551b412a3f4a6a68e72cfe85641f03c886ffc9eb12f179d975ded3e439075a0388ead0c4abcce8a3ee86c001917a707582987caa5c5850e7e0540b7684cf0f4de1b6e13396de9e118c92d4ae8d2ff64f6e895845d9871e81ee005bbb18b4e41fbb554b10a159dc6d9a82216601981ebf5a457b3d78e5b90475a467874d5b0456af73c567adb763d7c3d07f97b8b7b53350e4d1ca5a98b3742cdb4383e4195c104c6b8639b5a857548a5af2c2433c069acb60d855d691c9f6be2ff7a910be4130d88dadfb7599024be0e6c5fde561e2eb4a58effe46c4ed546992dfcacc447dde27100f16eb74570951962572d317f29ee9a0cf17b2712d7c2bd3a10882732a04810dcc65982aea3eb9ff40debffdd0310d467ba638bc55018901905cfe8fccd28f523db9a4c3a57e8ffb3613bd1480a421beabe759e2ed99d9d3a611bbb03b3a6be21b58c410b5c2bc5f9676693d90fd656b25c805d1029d29788547735fc874a9677e7af33aeae4042e6c816edd33c6c8b9886c7ff54a8caa700d710a880f7c840337cb00c17026fff684424f46178ad46b31a90f795c88b35daad7c2ed7d8f0e2d59ece7abbcac9e73bddb86b7785bace8748987500bd751d79b15c4a06fb2769233f2fb0379fd4a97fc00f7157a4f189d18cd92c9876369b8fd9af12d2d2b5d2ed6e5e1d0ae86889cb77ca6b20ffea1c12965da7f813b657db52a1183c506380351435b2e7d1731ceaeaccfba4006c11778f9f6e365107898dd5d41c1e891c72e347ae03f82633c0fe8023f2ba7871770d56333beccb96cddc11dc07775e09a477e710b0d84851863ca8301613ea8be0be4331f5748af0667022c01015f4aa4361200d290ff7692f8a34a63a19810a32aae2af12f1a91f297fc9c14fcf0e9ddfe0173908503984e79d2033e33856df15879bfb974c0a246192c555d1c391efe24780be4b7232ed19f3b7097e309f1924d489d6592eb4693f8cf9297c98d0c3ca9cd7d55ea60e11656c2e88f0f54cfb96b4623909a2e888347c2642f4abd1824c56671d393983dbddeead3a08deec37d39e8e3255fa8970ddf1a2ee7716e6f7cdf4404fd026f31bbcaee2f2b101b87885de423d76ff6453328e827ce0ea1803968d8463cb0ad93a9bd170e56dba65fd2f5485f5a63fe87520c03db868e097e828e81bdb0c8be9a9b4256163de8f38e6e59d9c57e167df7056fc5aadd9538dfc5025be1e93b46628733b0ff6ecf38df679790b70ecbd65595d33448af841cdfdd365e9d71d6d76b3e755019bc142b1dad449d4d82505602f60f053b1f2070fe44ceacd52633711af609b8c354ae609a0d6b6bd081a0e4835b2fb1611edd167e5a30cfda678dad3760bccef537e1b6ac45ab59403899450458e6ca6741853ce6b66e04f70cbea06e53e557b7f1ccf52b1be486cf75bf11d28c3a8b52e72f4b8290f153e832ede5ce030e9ea7a940b9f589f0bd64a232f8e0ea3fa1faafc96fe02f9ced5ed5c2b54dcb70fe7881b3606b004fe519803c4f43830d368a42a47254745b897c3920c741829a5b6d437a69f1abc380bebd269db6e74b1f0264c81e756850e35d28ac54e867ae64e260941f71d547c35359408e171bff43b55d04509ee608268cf9bbe0e19a0e0dc440aa02d94dd86792d23cc0e8116e49cbb3f0046e4d7810896d6338b1216b8613de169698eaf407622d57e6cfc249b8c02b657f4844a2e94b58b5c54083798d67b616942512e3ee65c4e20c16c775ece3221893d48f29e0b91b7f7859efd6df690876a5785805796beb332e2b8b144cd83462bf7cf6344830f2086c2df7d63f556258d08f2bdae6fd610ade210fb97417326096f0345c460009a5f7d1d540817e80f3c9eb8f732bd395e78b2e37e0476a66ed40a2028fdaef6a1707bb483db8ca7b573810ed79a65eb5fabf2bac1302732f30a44b2628eab4ba206f49f8f6c932489eba08ea0bea3f928cc1174c58d224e3b2ca649a9edc7dbdb5713a70af4c44831c3fe1590da5ce531549942acab9450643b8aec1869a6ab5adcc32a84adba1926dc82a38b78a94f9653b692188d5f1d210bdababd5420f8cf17c3b1c93be7f1275437ab57a98d1ad8feefef05097190fc9b1226998b6f6cc75d73f75b8142794af79ea53896bf7e77224e3f073dbff32a3439f70912f1b7089b88fc1ca6d78ac6c7c9613946f2c5f20ba4950f73cbddf9d9cf0126e726e7443515f3d342a6352cc1e1faf9390cccc750687e61583bca56341a9ff85d1544a198a47ab73c66d8d99352be8abc1e57ea005969376853d1b92f3a1d95621270ee808c33c99a530745c5de4e37b1bbaba6fba9630bf6ed4425dc473db2df4b192faa7b40a48dad97a3df875976d8c41efa0a1471065d7e741c948fe8bb1eeb53bd692de1d3ee4ac1194ee9144d615a5b78fae910fddcc3367f40de5823dcb66a8d84c6807a5567c933a7eec05fa58c4adf30bfc358d7b48812b01103d42aeee2df09c5f09ade13384010ebf6b44c7b10c96c638e621dc0885c27c29011bc2e921f9b832cf3448501fdc8b482848213323299b979e28772c84eb0f20d40bade7f4891237b67f606436a05548cc57104596ab5b8e49120cbff305e5a87d5958ed1c38d625a63c5d945f730d8393c98e947301c4381effaaa04220dfb79cadabf4cf9f8598795f421a743f04434138830414ad20d310f69a05c0a5240acc3854698eb81391f68e97c45ec815d60c536b2cced1dd40d36938f3d172d29fd6446bac7d4092f3562920733a3deb0b9e0e33d578eaef87652dd2c77bc9ff38fc28d4919248ce0761219f9ec05e9ab919495d7ebddd0a51363a6db034e010df45d275e28b2b31f90f3673cc079580393e3373db3a5ac76cd3e941320e05935dea5108dabc79da58cc46261d928e0ae78f10485277a4294b2a85b7a42a8f82c1c2230baba7a32e9a34c6e0c2ab42d2a49520ff7ca3407884584b9db38318e8dfce1e9df9676d0596758d108119711e5725c3e9aa2c22f4500c5262dd00ba2fcec9415b5eed743a083392783217f95767c029445e1f4bcf0e75e117f7dd437a69cecd1fe40555a11000414d44a6a17a4300288fcd5905b2c0c32d1ca861ac6dcf0b61778e382f46b3677ef7392c2de0da12f5c5648e1f3a8c3b9065ebe32eb7e48903e6cf6fa672598590962561d2052347f0f64016d8223cd2a1889124d586cefd57a2107494264d2d735f338e741597a9bad6b4935f2fbe60d9bdbdf164c978ae62412f36049340a55886201c350db2b037bdc7641d85a6638f5d661eecca126998e9fbe93aadc7ec5875be71385975f9461cb3e51fdea74b8983d8c864398f852708b9f0d91ed89591b17322b894e71349e8678362df1e5e6ecd33f12b3425fbac2fa29363af512d38f6b76cbcf08f5fc19a069ed3e98725c871ea5f4432d184c7bb628eacc2713361bb99081770fcf7a66f663b44f00572703f46dc9f0ed0d53a119b6904af5da47d943b4679c13eb1363e9289ab37dee98e6fe1b2e87627de94d660a51e7d9d10d190527cbf016a2458d64931686afd2988962b8c854e1d1f874dbab3061b9c45620ea7c6cb1919cce71b7c7869126f76806ae992d154bb0f660927c3a82a2b86283e98148abce9307831d4346a61e6fa5388b0eac2825391809b1659b95bfe5277ee9787f742fb255ce4298ea729399b26da6e767921f67341726cbc05b02dc3ea0eaa2147c573150c340c91bd0ce253edc4e2ee6f90fc0a4d1401307720b56c56c7eac37dd9fc5c383f3e9193317e2a93cc1f49490f80d10c1524fd52d8f5dc78e9047d1f5141ba1a19375c824551ae9bf00d6d74a4e21e5b9c134e81a331a175fbbb27c82875c7d809a03b1e28c008659de83b206743eb401f84d8e43b13df57176359c99dcc870985d9c74e64d49d6bb0bfe639080ca4f7f31f580dd9257d1f6268a027070004b0b1748a9e84be3c31b8f6946f736710a1bf02d9cec457db1aebc51291a0cdf63cb7b870ec634de0a94ac55a71c6c44567583cd287be7f1b8f5a8d2c27ef748969231f0ee9d679ff4f07b67feaa956acf69a521020a6d4f9f0f466fe35c93c20fda4d8ae096edc6d429c2b15ed4c941384debc6f0a3f7335301e09ac3253ec36d007453adb9a34cc0df0d5dcc9e0b8d6d0266967d3dadb88d7b6c43a9b75534d9ed67ee5de36e38803643e7f8e784311dfef3763066270320363f8af9168c1e37847cdb55a456f7040fd4112a49c77e347737cee7381fb0c70099a7f4cf38b87ed1f30d3c7cc02cec4248cef47b8dcc6659380ae22b92838259fb64ab6e68aef300edbaac8cfea1b409925dbd8c3bbf2c42c002d75a906517aa2e8edd62b9c28e18cb3e1d0c01a44721fe2793234a6d08b6aad724e428b3a7c7ee1dfdf7722d230c7d316e946a8704478ef179144ee80cddeab713f670e76f26de8dff558816a8d1b0b7638cd4d6cfb254cbfb7252b6ff88b12400733cb0b875b56f411d8a1ab12cb5c1a3e22e89225944d9e527ab9f6d2c07122f0436303d3aa19b9935d71f75c1c7d40e45efb51264818becfcd3517b8a44666d361596c51cc32fe5edf61d48cb85949d7682c3981da2a09286003390696870cce5d96f67afc37b69ea0e6798d518f8ccaa6c69a469bd3a152b6cb01f2081c44f042e51a8c94d13487f4f96cf0b0f1fa94e836bc43eeb5885cdcf8382f6962b471ce78d3b7e13fbdb186982cf02605914f188e96d89d49935e2b38bc219da99734ad61e4c88dd260eba444ee6bf18799df040527959d59b2cbb2ff83882db7a5a12b1ab473426f2d91e7826aee9ae5bf9679744f00f88788d11903b8d4c044ce26dcfeb3da5610acd35e5ab91182c2f2d2e1da462aedc550c5eac1d39e8d7cc3e237cd58070543af7b1cdb3ed2b17316c8eada99ec99db14d7bff7daeba3805447642ca359dba9710a8b95a7a2f38587ddf038bbf9d9e53385b5289e3471e597bc17223830dc78044f841df5528c356d498960241e79d2388adc1b0f61af33e68e0e9d094b04fa0dcb828c9a1c65f6dbd323df055532e6003f225ca5290367a4b1a0eb8eaabe0cd8809a01a9657aefc7eb93e787926d3832ab4bbad290ea71de20d0418ded22a0ae041f1a0c0d4a7ac7774bd09a65273502be2cc7876640b7b1eb9638706fb93b8eebfd7fd651a3a7a50c359157d3ef1b4c693a5cc80786908731534a32a9e67722f1dd589ea7aab6c473664bf00d787ff798f31250cc58ca1f9cee59d5960d82146f04d1e9091ca150ab57bf30e9b8c8ae4062c946d4f4256b20c6296b23ef9ea9ffdb9daba0d69041cae5d28e2e56b1e5f9222505286bd6351066e1adddca9fb165b870cfc784622e722c10cb3285cb2fecf60ce95b3d05a2c6e58f28774b70c5131d84d6cbc32befb82b27214f67f8e6f9e0293a2a654f72790da1efcf578ed5ec5c1584ed86b00fb4436708207bf1216b346c1eb56a4424f9776ce990778b0818e3e5997e91ed1110ca4984ab81c2fa90c8889e6210eada6991a8a696988de901d6b9a429cc8f805d61e504d1f649251bba74ba844738193fabf1caaea8cce6e40ed9d8b6e97bd1fd447ad7a406bad519c0eb8d3f959c4c045d48056aa51720739194fedf474518da6fea2699bb1df7e51fec845fcb7627bc109198047a50857bc8ba6e0539ba884d5f3b8c96fbcfb169b83aa011fd9bcbe0e81374a741eb44a4cd201fd6eb56c9ed36172f66ccfd418372dcc9afe3d2c44e25fbdb834a738a94eb20bf3cf6ce151b354c760f422c1e7ca19e39137c5ad3a4cbd9a18b84068d275b16e42321883182bb4e480b6cb46dce838fe91e816286e29e20edc7dcd4ed82f5e445e3721e2afaa9b0db6e9040cfb221821a748c90a64f61aa939064a3662a366e0b689edfe9676daf1770064f6f303c8de882127b70f6f23302260a4ec86a711f276aed4e9a91efa784e50bb66ea9dc8cef6823319f3a1ed9b46f164149b69463c34074a1d60b889bcca3031c991d5a9fff4fd6b24657cba33fe199ff23cc1f2bbf27de43aeaa29b1cbdaa47d6b9d56a7e13e89727ecde2f6e6c7709d85c5466c3a08695277204bb430d4c5a86aa74ccd2b8eabdbdb0d5e21c8828d44cc6156a03216b82271b47491adb596c1c969c1fc25739dc9bce6e4d39167c5b2152c85432fd5fcb8363bf0dab72853bf60221662be524b0c6281dd9fcc5573b91d545557fe55964f01bbd346d909aceff21640f38dce8fe9d9f7037fb33ae1bf6c548ce180bfaed7ba65822f90816c6fc5df63e6ecbd139abacd754e9c07903dd6bf8e6987748f71e0d2ca12c02828b485fe6d36178557c9acd59c4df0dc234147d09f7ebe685cf434a3fc12b21a120580fb4722617ccd19c64d8c9fb46bf0ebe4901d30ab76a76b43f8aa76a51677fd258336ad7b59719db33c32cca2cfdff37abd5394b7c8d495b1695427f012b70de53d421ec9cc145fb4593642d163b4223ab1e8444fa799646262d433afe304f74c5c4a81c1c4addb63097fcfeb5374d4c6fe38dc0b3ef77e680f554d07d7a4548611852567094f8154391c28fceb237d978b2f7ef129f3bfc84a744af568dd0f1976bf1dcb2118367a24c766c2e8d120a348494fbbe2f7b50c2c71a5ae704fe8028da3bfa1b555d3644a3d849d4a5fd95fe27cf837513723a52883fc9169f5f31d65a827e7dc3fa54a237ce2036d5a551102b025b624a27e1ceeee90a7b99b16d79015b5930f40ebe25a4ac58b64bb5567fa3c0981b90673196008c9b1173e8e346eb08b60a76c5c109c8ad483e54d2f6cf9ccd96ca2b25f316414b0cd72586a2cf93e109c25f49e5b378b9d1b351b4dc319744c732782d58a65e874a3fde30f4b22096f0eaf86d03d2ee50e1ce734ab37ed8d22604ba11c50ba38e6263f6bb2a9e3e619ee6f68013b6d84fc2f6ad75d9a5a529a8d2a62aff154c2fce74a5ae1348e363fe4d9bbb6cc3e229fbca4f907f1e87bf9b0c474bb386bdf51f38272fb42094c5821eebe681c41d2144a240563f4d1a10ab7837ca429fda1a3428513b37afe86a181052b048e6841da7ba1a0bfde751999b0117880b6654254bd26dd91092c4398c1c8a2691ad9ed5599da2c7c8a0a4cf7ce4fb09a415f8beac89d08712a574381c24a1eed79a0ed4fa606d290e09f6e797080ebf1ef25f090693eb901fc980ce1de7691d91e9bd1720b63c20597d373f93cf671b6cba12493f2696f47a7ffe4054f459de8ff0dd1cfce9da4783fcedf5352da09d2b6c262e54694ba1ad6bdcd7c9d67f8cc32bfb15a5c1eef9aa563e0e980db6f5d2d78039ca98041a47962de992b5f60a95697cf6bde6e5bb37d70ac2098d8fa28d8eeb4741e183ae6e0d2dbf2c52f5098ce153e3e26487f1a63cfb6e1c2d70834effd62495a7b74341f01c3e448206e26cc213d74240207be267fb219f4dc8b396ceed99f43322fb5c298440c553b9ed229022290f16a03a06dd4be3963718d200d06471a039b04e4da1bdccf1382eb921586647b66463b569fd053b618eec7892680fd06a4fa63124f2a42d30b03064e8ba8b70145f8768a24f8af8a8adb844646de51d044d132e184ed76840547e8649f38f452f01a4b79f5419ab148f8c7dea5baf08ad75365ca56e28690ffc5522399502382b504fd7578fa43adb9b86e0b6d86d16b722d97985a7b796b33563050dda52508a47dba64b0b3f703e751543cc4ddc84d30eaefeb77558ecc29c7a2a4a8fb4b43f627843ebb9c0bbc59a1ba14b75bc92ea1ade8b7cef80a2edf1a6b4b9a42b4f0095dd892a0da3ee5068430e9e61715afca16dbc2ed5f6050f80e9d660e2f66b5e880620270bc420f4c6eee460d38fd98b8739b2959bf5cb506e8118a4850f99a600eb1c2afe4b1cffb562a694e3f50529da6c2db60477325ddb0da3f6ef2058bacdd3a1d1bc2203f7a4734c65b05436b825eb61c47dae02af45f06835155c1d7ac67caf0b0f1437ce9224582667f73168985f004b7f09994de946c440b02edb4af07bc2d126462266676c9f8e1c49fa8ba0681fe8a267bf6cddfd1e96549b0b8c97d5a5a30606ae353649a3816face1c694d4749e3292b2627c5a6ca17350a61be330b0f4cbd09dbb9fc0683820af5901f20eb7a8c067ac126efd6b3cd75498f7806ea7c43ee1a3daf94c8d00f5d8dc622b92ef8b507cfa4953f9a6605185f051396eae030b891b9d7eefc4a13ec43a4813ece7ff8a963748db3fd15b809f0eb705e931359aed305f04609d0206b87b4b5fbc29eac579f184d4be6ecd4bac04f661aedfd69cd11596a92d974ad64caa5d3fe6a3991e9e4391d68a4858b62759f70334f1c09d0c9f21a8847fd81794cc84bfbc707c22588c94452ca7166b3a830ff3f4803b2160f92f4409565fd2b80933a94c215feb66e790dd9dcb635080abb4bd2ffd5e43c9cfed483cf5b27e18422497021413e561541d83ea14cc9538bdac21915cea4b5f77f610e9cc19201b8b11db9adc09b204fdc41e33f9f7b5da690fc182cba46092762f36c702f106413235ce8d09886531a49575d2f108c1468be4472117c8f8e857894336e6e306cea7e3604d2264ce9524bdaf7df74490440afb30c9b8922b954970baa29ff96869a6d8dadba9aedcfe0ea95c16b930c33898dd613326a40578516f93c70921cedeebda0a1d67746b43cf0c2a323aa02f660e9e713413ed5580a550346bc8fc1dc4ae04f91b214839bcb6d7c30aeeac783a73798349735d7f9be3313fd639070a7286dea6f791de7c49e34441b91f7d14ff54f66d42f16f5698b96a0a4b9e5904b1f9d909b9112e48d9a5c978d6a69aa78e7ee8706b4ba944bfce70e43430e697b6bd0238165c67f52e4bf92c9d34ef9d2643362b5798e21a4f293197be845513eec06c79d55e10a84bc7ea7cce2a65f5b6422926bba15ab176b8b505575f2b5959e67efffeb5f2770977b5fe484e621194d2485053a64d3899cc5a40c1934eacfe6bc04aa8b0f1f725cdd31677876a2bb3e85a1cd9ba50d7ed7b80430985fca7261f3917800158a88309067038033ac7c71f5fec432942cd1a0e408abc1782ee8889e056e8669458916c20f5686ed8c116308af1a300541a67b48b08756bb2c56387402861956b96dfc6704bccceaffb4b5b69513b15cc8a0b7ea2c7bfc162c4df7cf3f7221fb6f7182b6fe8eec61e8937ddbd1e453132bc66153c08f03abc635052dfae2d6cdfbfce5abbb406600dc2638b8b542a9388ba02710a87dbf527ca84eb0f33c12132e97ff833006b6677d42d0704fa60eece27c95321a85f5143519d29e04df8d699d563042cf046aaba6e8e08c818b3be572de99cf51db67b193807ce13b59083e7c8d7030db3382d46324e078ab2912ec8081a17fabfcd71b18ed31878f371d56bfa96e57cd63765fbd7afa03e26812606687f0dfd175f1f9112689431d421d489483d207c91d9bbc52ba2ee3b71524b2eea51611faf56e2563cabceafa54a90028944653204d42d1c433a92f96954be705747d3a30bc732e129577f89631553fbdcedd92e8e4e075f0a474e3a49d4219b72d1903b4b183d7acb16c09a9eb21161316cade9ef3b6f6f860565f43aedcf67a89351965c3bc967a4a2060b2d3316f1b881c98dcd6f394227f12e81055953fd67831ae3f4cf4167fbadf630e01b284011a76e21b8114037d1a64268577a44b48eebdf5e8a223b54c0dac1c93dd9766803e24238c0346ed5decaca518287b818902dda94b1c1f07a7b6c4bac1547b7789902287f6cdea6eabcbbe54fdc799e1191370874415eb51f5ab930e878888f03abcdf7db256fd96f6da28086777467c1fb49ccf5ed5220f8549f70f8c2d3e5c26207137aa1cefeb656f21fa6316c9f7948fb1c7a05ccd6e9cad495616f16f1be7e0152d6f35cfe46ffa7c454558780dc88b7d38686eacd25c7310a2788acee00869879a5ed9f76f6580216997ab110a28d33cef566b8a5275f7f256135a09343e8f9afed59f3e6bcc650dcbaaf88b506497583d4fcc4b37a59070f6e4b777f0e6dc219a775da72f8a9d5732ac78d3d6daa93778805091810e66d3aeaa531ac7e6aed6f77ed6e502de81864c4d27a3a4564347788330886258cd07cb9048afbacb2a4c5f25b78ea02be23927fd90fe581e95341a87e81dc0a15a533f73c685a1444294621684b4bb950f6cb8b0ffa4a452fd08c18c6b2db7430c6221ae72b8a9e73e4c53f474d17868f27c573b4835cd9cf87bd0b4d16315643cc32b7ee277d148903bc9ec6a4bee5372d14137ba9f2e2d2b57319bd38add5742bb3af1d0186c60d68c1f5d7593ab76bb10157ef4f1b3091b3ad1c3a49fc5d5ed41d266f2aba24162eef38696de2e382af05831a07e5eac75642117ff9cb7f8452198a087ffee20a794aa54bab96ef3e70df15254e1c6f1fa6e976e71275312366bd662120da1aa552eeb2d114751718291aded2365935767042b31435b6c4d12e8faa4cdff5ea91b5720dc40c736330829bccd98e2038bf7bcdaff7ed387201eb31752cb329cfc41fbf87e1d2d6c8d738032c91c4069475f382772f6a15f907ef56299d9bf27dfa26be890dcdeb8916e808798135ea8844d7395e2505863424293b6ce917aa07db296a5fbf373d3c9b978183f275ebcf5d71e2e4b7772365f69a911db327df8dc93f8ab3c1733eac1bfd9a30389e331d76771ff31ef6a2f4517ef153d29bff9107459b99904501c631f48cff82820aa0d028299a5f681d70a586788996687bdc2a55e5365146d001e37a4a21526415c9404c0924973c86dd12354d4dbeaee340737483f53bcb01ce5fa1609def812903bb3820273065065e7890687e62012a385fbf108dd78d36ff79e54539b1a8424b72dfd0755d879e4ba2dfbd4d3f00120ee44547eb6cee6e87ae10cb6242b030bfda81c413dec3d469c7fad11c6a9ff17c0c34d3452563aece6fcefc937d793c8f305f856e00fed99505baf37482511c8604a75017603b0d43e8dc6086101dcf7701f816fb6b75f1f74f6dd653ec684c6816c0f80df1a056c1cf2d95474ef58c5876919b9675abcd0ac48005d66358f79d7340990f88711768af75170957e627327bc84e6481d00d5ac57b60668fdc69d1f6b06d49b84c325afcf3b85d09fa0d6096376a9e7e33c0e051164e87568e4c177242733e9c4a9a246a7a59f429f1ddaf1cc9d3ea714108dc79badb37d41d6c9039825592a99328bed5e992dd2f72dfa3974a9df6ca42d19fa4b2eb8e85aee6de471d235c7b7626f3b33c88577b5fccab2da2f505c3bfbacd8a14e6eecfca2b87d1ec3794aa1aa53ad5d685d15a8a96ed1b2cf54a4841ff6e7fe80ef6a9d24890dc83a1d76d0ad3060f81c53e1e88c202e9021355bfb99d7d7fab7786383d1159200f4dd672843729baebf675c7461ad52b946406bc66fe935829cecf2376363005276b6cd52b27b2b048b7cdbdacef8d8f4f9468f753af3ef28e552e4e68bceca2e106d2a00361e8c3d73da9f490876d96b081d5fb1ed77a65a3353d1109c87b7fc62082a3c1724e33273af7f6efdb1a9fb011d6c30f925cf5206bdd230b3110734ac5206484acaca9731891ef8e7c6ea90c1a46d838466a706a702c137f0c3eacc9b5bfbac5141ec81aaddb5b4d6e6e76527927d8ae2d2f66a6bb904ff104a4b7595f6cb78502d6a3878846d9135d8443e00ce64a582baa1bf521cf714f224df48af3a56d6a0271b96ed3944fc3776fcf99dbff7f0959f0bcbc789d2846a2591059e023874f83b9488731c886a792baf1917d3822357b8492f4902337c11f636f6036d836b206a03768232df051e7c410e7cfb46da63712543d3ac26f09591970d455e83988a29da931fe2dfc13b7cca6d922d066adee6ee182a54cea372c7c1eb17fd8f979ae14778fd79395c5a56d267cfe19f841f6c1f9d8de58d32f3bab2c78834f3d74c6d84703ea76c0967c6e0125c95bd459709ccf6f4f3ccffb0634c770832dd76029fea655e0014d08ea05b6de7498f781df7e793a933472ee90d9c0f6fec68d49cbbe25bf97dbcd41048b52beb0498285925578bfd00ed004fd870d78e97b014c0f99cd0faf84d184039ebadd14d8acf17b6d03ee4d8534748374286112ff2fe07079c8a41b3036b9a7f54b61cb234b2647f916667ddb6b7d3726609dff4c3ec36860f9dead2f495103cc0bb45457e3ef18ddef04d558758b32599493ae858bbea88feac45dc2cfd5926e4f09119737ce79d575fcd2b8d5bd7bfd1aa1552d5f02f1942c1eb3e543c74071b5b7dc960e48fa3198cc96b970c70046a40de3db3875fb34f2791c8e87f3d3c7392b1f2022c4c44b100fac9bcb57f8c94ef21fa361210c7d336f22d069d6e370d05b6b5bfdc485bdd48471b2c9b3f4123fa019af327873b1cfea988be2918fec9d7a836f4c4ef7721ebd5db8c702de59dab58745f4f04e75221d9d202182ca949be581f5196955c28f17fa6efe9208aa822d6a578d572178876426d1b958be73964091d4743157ef629f1bf4e4a5b18ba701d8b79458c0c8d28ea9cb02f877af441056283ed0b89ec8f358c9e111dca228a18499d72397b9e6a53086386bdb66df6e0227c7730db997c4c186e2cf0b162c04e47f4450c0cdf06303df400cb067380fd160d0bd2085f943e9017477f30d0c006af48c200dca151b42aff554b6739f167fc2327e156e09347c68026857e8e5162f112f04ffb844bc9a540df43ec3b72ae147d06073e4869e0b16b281927d4466f3f7ea303ef5bfc05e56ffe2b386ab8a3a56f7137f15943d9eb564d608b816a5e127d4e2630ea50b006a7146f07a73e5376ca4cd9d153803e32ee6d745e0750aea3ed50deaa6d0505885bce71a596e19955c0771af3a1a676e70a7e25269d4e1d73ce78803ef966add0e6c5da75bdb6ef94e4ca43a460d1e29244ff12c0c71ba3c482a4a9409ff598a69ebe1c6bee38f186374aeae1ae3a4e5c11057edc2fc0871d27b9bbfa6b3168b67dfa069209241f0743dcaaddd0cda493766c1e7cc8e0eac9f55eae28301c350f5c6c6e880a9a1df24618b67f22ebbb29492938794596b359bb35007b1b3acda7b7c8d8fd666b74a875fdd1e1d9c77336feca27fee14cee1e5b73b916271b60d40cb77038bd9c738f40a59fd299131b720b9b9f0b776613b0631edd1450b73cd4bea57092d2836891b442e355d4cdc9bcd7f6d8f3e1988e69b3565a00a22777469002a0f8e115c199e6004520fd745b953bc70fdeba4224eb2c5e8b5b118637afabd9746d3a41141a7092811e8cf9cba59137b8485b307f967b53941926fe01f73b1dea862d6c4787fb8349eecf1efe35570e0180348b4612e8d07f2476587fe9941721ec4d7332dce0a31e6190335db45c495f2a76ed98cc3ce1cbd8ef8a2cb6ebc972ddfdc03414d21057ff804c5f3386df11be04d4ae70bafc3585f417df739f39acac4d5827b097c10d83836aa8e81bcac606c0e8b3741c00f9f142463b9611eece3d2aedf836dd97305bba3672afaab7cca419df9b8ead4f5cd3b17b107d0e21d58adb630ab00d500c296b3ee784740a878afbdcd4386c986759ba440fe7c563a720d351132940e0ae44b1d8530a71042c7ffea93e333fe1caa3d2d2737853baa7a2ca59ef343418393800206a07de422fa1f01ebb003ade8e4598fb0e3ad76ff445327d36655e94c04176a959e65feb1cdeab8f0169f1b7edc9ca028f171e25cb53efbcebd50456b3d4fee32633b22c14793c291cf6dfb8c82b16b90860dadb42a86aa3dea26b92c61745498123e8f4818c577e1b79da928b5badb988496c00ea38ef91956c118b5a6476ca52093dff368021bc1983942ef2beb4d0e36a3ab4b38758ebb7dafb80e5cad42266e2749b769644419cec343712ae7cd4143f9ada052f1176f8131415688c19facccaccd025615791bf4ffad33df58b7b35a948aaa75e618f714693a725a0a70022857bbed44a93de5e8bef41d1567af9866c72c5c6550d0a3e227f88db308e6f5ef7c15bf60bdba39543b03fc1059b6c0eaf4c1a47ea43d2da5e360b7a1d5b96bdac8bf93c3411098f5f3d7dcc297766007f3d0e1807ddb086320dcff277bd6014519f27bcaabe0b9489e18186611819964b94b55729e8c766dcf9ce0706f8fd15385fdf222309a6aeb125ba0e3c23f3ed69d219a3e18aa2af1d510a27c423143ad919161babf96d058ad59f2abfc1b4489083d010562ff273b992d8466142295c4bea189e211367480a142ea6e45d474b5ca664f9c2025303fb453a67be202cb7cf2854d7ba380025ee7f1352152ce2eccea454dff1c3b1f42ee6b8d472094793466b68017ee477bc336854b3b5854560c9dca67ec5e12c1125dfa789484766d7b615af83c6ad20859e104f7c9713179696b8564ab4e98a55b499d812bf771cb3c97a9078c51f40d43606543385c8a8ed61571c644846a0293498132d89adcec04d8c4daffbdf818bc48344ffbaabb448b9c550699e4d3ebe03a3e8e80c635253b51b1f2ec324390a5ae6e86e6873d7fd14c6f045e89f853b0205a882e43c671d96aacc33c77bea8fc931f13334efd3144929009debd5b50a15d896445f9cb6042bcb1cba86e0d7b229a5d136b542e9ce14b7cf3b817fd40fa761b0b9ff0143bdd210c184d522896a555fed1cf8efc5bc95a6e77b1972c518237f862ffc3f71bd8d909fda5b9d8a736c13c156ffb1e18ad1a6986d3267ae207c221306c07c153682f19b21133cdc7e52cdff0f3d27483c30777523e3eabf47a6de8c9469052efd7b0d42b7ced2cab42cc6d3e71b4c1ec3fd0f377d569abd881a84907a4af035c56721f48aaec32d90e848b52b77c56cc5e95acd5e49b2df4656cd310d6a8f398ed78d7e30adf542fcb3a6896b20fbf8e3897b9e568cede7c75b1bc52f03b316f98227335c141ba3ec803bfca15b023708d3a7365485b3838f2d42745004bc9208c117eefb0448085c888243d861589e15a590ea36af96555a5765f070907e30e7134da66af0d8e0bbc43ac420de6cebd93e5a2eaa1623402864e4d21b7df4ef7b9b7b6b8e21a9e863759b440074fc173fc324a3fbdcfccb5e67577fe7d6bf61f39dadf30a3199427e9d98a1e1363b1491bc241d55b84ec38d749b98af597db8e505641a159065cc41833738fc2dcf8a20944b240b72885cc924ef5afefae6c16ddf46f3dd03cda60933f37429d79a39ab1c80b17e686d8ede151f6d375ec6f157e06552fe1f072cfefc303b82a357a9b908672a670d7367df68c2faf561b7e88bdc08ecc5d28ace90f0c4164176004e9170bbdd37646f82a6428729b891ba20f64d106ed3db249a0167866952290c5a71513782ba8997f2f94b8f3b62b097a982d3e534e54d5e51827cf406300878ce8f0a0c7ae628ce40e732dcf05b35101f2daefc7d64103361508eeaef2154a291b3dfeadc72044254cb26ccf90acce142c546e239c76018254cc16420c2c2f496577a9d8a9f725c603a5ea68c35d298e4caa4dedf864c5335297b54a1adfb5e61fa652ec837dbff31a593377068da3201aff624e514389fb950e78450a11aa16a9c91a129df3e16762a817e0dd42a9144db0f94b9e75b24faf3758f10dd31663977d13cca4fab6fd37b6a685a343ebb561ce4066c7542bea89a58e0528cc42e30a66060154fc9f0f11f929daf3f44f19e6e103558b34b929cad07cb2d1f4b0b5fd157efa1c45111c9a3c45ddbc89f8e66b85123807c2bf6f91bbcae70f3b526e2e93848e28c90aacf7ecb6c033965bc85af0824731269a6003ef82a6869e02097ae66cdaa57e915e786fa0e2846e1f30304bd67e4c6e04cfa85fd634484223933ffaafdd020519b1bd2a5155ad3115156ec991d53be4157036552575382c34804fbb01c6597d12f94cda6fbf5b728b5255beb2366a68f1da8064340816d808de687876b481608844b22d91176c30eb9c679a448dd2ca158902b5f0cd1800a44392525f121a7a6626cb99fbbadb3db6fcd7dda193afea3e8b278f8dfbe638512dcdde1d2f3e6f25e6bd35fbb7ffb5ff966934946821595ebcb05a6aabea80a437fc3f73cd38945d337ae008f61289ee46261cd8dbd30cb230fd3c4cb48b025ced09c08db84a98d2f1ea871dc3d6d4c62169fe94111506bae5013f2c6260e5735505797e0ff00cb97352622ee87595547834f43569b3ff2091ee59108f2d2952dd35c8da119b595d272c6883f920b58df6c7825016f4eaf6c812a4abaf6a7c7190524b5badb509587ba8e9c197a3d268f4497feeb547f476b69ac88a7ec7f4a556b3241ca462a08ce8cdb5d3f3a64484718a9dff330b22fefee9bf93138bb6f4eb84d43b8837a3f0b24ca49aab6b877c6ec55ff792f7f357df3d01156a502f97077c9358fc512212121bbe856d36a22ac2db338441cbff8cbd1da86bfcec7a3e05bb572e45dbda7ec1e544221e86eeb5a1d1c87ed84066baa1a15d5eda24e9803bc2fbad0c5085f14c71763b1234e2aab6ed28fe688ab56369877bc68b95ff9dc0347b2789d70eb264245de77af22686d727417067948d56211c6be046a475b3728a46125e4967f091d3147baa670e6bc82d987a9a80fd7ce8719a237d891469f64afb5ecea8566b6fdb2b8af32dd142296906f6512afa0ebe979f47c6408b72dcefffce9c3c17c4bc1944dad5ddd1a8524100146b2f44773736483ca35d19e2285ad6b063046b568dd28a8626f5652f0c7a1929fb7de392f36a8e114cd35614f8f8d9b514d6c96de1e4f6d26e4d1cb2243371d6ff044b40e85f7e6e3d4815851a57506ea8719b7ac1f38c7525157c8f2d7a1c04a10d34d8d3bea2ef79e9f4e9c7c658f758f8747500e29e2b1c8363f8017183ce2b49d6b691bf296fa0194065558daf729536b8762a05a6efa8c0e5b379691790f4a36c9aabaefc34a89bfb4fbeaa06965463f4e874acf235c291ffba22d4300772fc4f8f8bbab9bc928d780e6d230efd66ffb83ab17a6371c3e91300fb6717fb8c153da414b75c9c2e6da078c3bfcfa360594a793b900e94194a8c3fb61e4492f293e28b0188c3de02dedd99d6d25de8f952d49baac0cfa524a00ac5e257bd3421047eef14bc9aa2eb9d1fcf257bb531604148f7e89202f202cd49cb6d2d03847a3cf0acf293007324c0767425bf5f591d527b3a2dc27d1a1870b74edd75bb6ed7b48b00f66ac0f0aa9e388ade2e5c55592a3841a21c92ce41032cc0ac5332f455adee8b25b49c1a676d5bf1a93c2a7c83ed1e129b5ca1304a7cb6db6067da94acd370e75a59ae00c09f4e15f1b30e27d2c8642d3e43c5a3b0c78d78a7e7fce092dfc52a6d0e373aa3d51b63ceff6a3dda5012f9663d85bfde22bbc37e3976d4d88c6365124ca46bbdd157a2577257a5d3619c67dcfd17223825c83741287f7df671913b1b60068bd384d60dd7eebda489173397f171c8129725cc6c2be1d035c89e294f84a6cabf5e8680ae1ec699d1959f14e28dfb46d7aa54ed40023e6ca8cf31f3868b1b12804f4f112a10c497f604949dd9d391f9eccbd0630cca538ab5e0642d4b4a3feb888b990858cf5269e3d854b56ea55a2838ef0e410b4961ba85f68f80fbe57227bd7619163ebd8d601690c36389cf63a0c635c3cde3b6f69e8cff331e59442b855bdbe4e208940f90dcb98029bb4ce6f2eaee11abbad41fc3342053a25d2c53c6c54d079262f88ac11a5669ca7e51d626331d059f7bc3f0879cccd07f33cc160ace85f0851ef1bf4bc49a97a1b21268527b8fbb69af882624bc88a0646c142d643ec62b1713e45fca165ae32c77654607cd40956df0d812c6023c5d76bb6ce1d25fc1742ccde908fbad7f132124337a167ab0a72b3dad53f1240fad28075fa9089f40fc3999a17eae219a4fe74ad9b8b70d1ae373a504dc1df655050fa3f53046915955885ce33965a3965effd766c872637acb84b255775e8c1381e2076cbdf0637220632c46d25455f36b9cd182c25992524a9ef584ecb75f720dc8d1d287a630edc00b4dca8672be9e3aa9a322473de4a1c20e6843e186e409656b2b728d9c5813e09128bdb397a116aeb2d49a4e68fd65ce421001125e41d7c6b516863b5390d7058cb1edc24002816c3e5d4e96d48a645e749d14b078698386f036c0fc60e37ed094e5e0ccc735a665532a08b782b826c6f3771cc362c11f885b3de37e656147e8e80f1ed9ae90cea0e1b7682e55d69161d7a5d28f650a16ae621d2109a6adda7a13a9ce93760c2a470b92029cf87eedd62d47a9d6e900b9d8561b468d863920c6fc948d3013795b5d0b9b7cd1e56a41845bd47bc532e3ccf3d590670c1a2af6a116de2f444b33f451ede3eaeaafb99cd32dfde357e90596a1c4662511948f22e59daffa9e37bb4fcb47d947a62abe74e9398c977b0c064782537d253f2be2ccad4b95dd6e51d4786d200b0b5b7204bc8337ba2ffa2ec693f85917681ef2f2b3d692829c1c18764db4e6430900016d45418cf879089e740e2da897c0cee09a88c65361a1f388edb60ceba3a160dcfa06d540e5eb47da7dd2801ad64ecb080500fe0685e554c6ab513c3a9a8ca8790aac37668e2329ec530d27c5c996d5f0bd9c75837533f39389e4838ea86090421a2d6c43e8d683e009811824955ad44e5213d109010014277ddbf92cbe3cbcd51dcdafaa744a733bade1955fcd93b438d6b823e52c3b0e58cde0f25adeda6a7704ec084eede0a2a79ced7a350f65edd469b615ad3d7e04b3e49a8b6866120a5d49a6c2d11756bed674f3e59f6dcae87988fd9ec5cf454b73aaaefe16049b238542d7a11448557bed318c654f14a0739cd846201a8c36b6b90ab3d7cd80a185ed0670e3b6ce53f1eaef1026319fe06d07589aa1f698f07b834ddb310a0c5be82a7de98aca5853ff90f8170ce987b97f3e302bcdfc3aaffce7e0d37d5fd01736f3fa58dc8bd0229b7b0aed8e16f263789ad41c095cfac649daa310b6749afa5ff80aa6cf4b608c4886e93f5bff2a5ffb82f26d0461a7b212259ded30a7272e2e35925a80d47856439ccf93006489ca2bc09d584142324c3a20e50fb217a4451063a113cc75caa45e8716ea3caecacd6639d7b3a91e08971aeb203c205f5605d6999ba084f92c05250a5e0b4a72fd3ee4d922437fb3adc621611df787e8e84db816d5b42aabcc947b0d8d200b2b3089655549c27318ce353e25be9a79b827b491fb6c7871061f353f81c1b6067f13be9909165a44e281bcfcea49323c8230001eef329722d3bd9a79da6333ae0b4966995bdbdb043d29b4c126391529356e97780aacfaf98b9979957501b80ce9c1481648fb1656643d674fdf74026cf15a9e795e305fc047eae48151ac6f21f9d69938282413bf2a71d108a1da48750ee1af605ad05869ee0b2ebada51d976b7d38d53f5596a1a41f026d137be83ad683a2395298f098d169d23129b69179ac599963278b45dc2a407b474219807b58089ab25f3add963a5a256200b938232e20f055deeca551e193e27aade3c9d249c8109443abf398d023d122643c8062f91613c4790234c07813be08d0284aeb1fa1d9f55f089a4674ecfa11666f6d498253c1fa779d060c72b25a3ebc1e7362d183e94946f3b0b5ec108a9ae0ab6d83d24269581650539605d43603635bfddad3f405aff611e065049cbaae1ae8b664ed223f8cb2f10251f7d13c9a5d5dd0d18b8fc37a1c8bf2a8e8d57f5270453855b588a331431d56000d77cd5fe7047bf70d80d494d98e430a26afb61fbc841a792cdbd901b9b1995c58879a4e1c133c10880aa77d8bcb3a879c56282ed98ad0b884d70e164752eb054b345155a0b29a9ca501541ab6f7d8aa8ea95c0958e4b78a150baff325e60d7c96a714c78aef8eccca50dd9fe94c54de7eba3c9e6c3d4920f85b0d5d62194e8c2e7dc870d0383a7f0e75bc370a06c580e64f854a2ee9d8d8bc7e5920aed976e760472b1d6ee22f517200c137d9e8e197f26409787e5ee71b6781e65ef6dbd5d1d809c19144a64dfbf5183f0701b4cc2b5aa7c46d4db501fd9e42c106b814501f92bb8d4eee1e2484c9f58d0b2eb6ee9f12fbbd40802d324bd2f59678a84086ed32cb9f9ad64def051067d635f03ae59a1ef5b90e6ea900eed0a3eb934d5e09ceff996aa780141f0b5b4e310c3a117e4ff462bdecc52d03b24aa6a0a38d319f52a2faf0d43cbe6fc3441f16485311c43800bf5f33b264fee6762fcbe414c1962d46b6bf608175929355661964fe921b9b99c0ed12391d967118c0daa1abd82c58250ab809bbca65c1af3efbb261f16e5c56ca5b992dc98d3203b20f1c3d8600f17727aa72b131be3ed2da05dafd106b050c7808947fff98e541b141bd5c9e97c4e0b1bf4d8a82bed42100bcc89cd4cbfdf3194ff75bf9bbd9fd3af64b8c36f3b1db40b69a0d7ac031ce89d787ada6b8555930eab55a143c255424c71b632b345d67e2e9810c38cd9b16e39779f2f330aeeef32532ea54203756141974fb9a4fe21f972f96b3c0a549e88f60e5c0ac88126bcde2b243dd41e88d0722a7b868d37944d47f87207b5ba44ea3a7e851c7f4d454dd6786777bec6d7fcc3f938dbcba41ae017190cab578f333483427cebc27c0f17505bd8a1b0fd0cd879e886880529c92fb81282c1eb9357f3dadd4ce08fe2f2c9b87a53350fcc4d8302fcd4ee32dd7079234c5a34a5228b25277f107ad3ae3dc8b78757dcfba14e512ee38ffd92a0ca70cf8b3b031ccbec8eee3d4b0b05398513233c77ef3e5e5224c79a4a899866e52a1e35688af698d418aaf5e099a4ec718b5c5d7593a1e962f53f7235e1e02761bfd404e7f0521e8e434d0690bf8ac0a13e8a3aef0c50900036e4d4878a8169a80c0e658e95624b8160d945af1db68098bd8299912dce4509239a6e0ff383a8fbe0163f5e12bfa493dcb0fe2bb5901f49c42eea36b68a2cfd42348f693173438bdc7f50de7f025960d38dd504a0a97e68619e5fb29789c3741f0bbfcf94f81bd348f5b394e7460c65bb12913ea8b18c29304526120bdd4884c374370ac30c97c03c9675a646d60f964a714307bff7e4e32dd8a16280dc56fede49e5c49cd61c2515b6fa876f2328765215ee668891ab872338af4a7e3bfa6a9b82586b77ce47e0c1c836a1bff2348b53965c0bed3eeb994c9518f71dde0f23cc42a2f365ad26a745a7aefcff436a0919b76b9938a1f0789151d94983d8d9e7bf2b3b350c5484afb55cd8c68162f5133096b4ededf6cc548c263cb83698493ac7c8075dce0c5426dc13faede0d2855ccd995938507c02aae2eac683a6c807639735fd2bc12fd7470485b40c065be43907503aa2cbcc78f09ec2d92db7266663d39d61e2687bb4cb906baffe20dc803f8da072ec7bba4890644444a414f07412d0717df7daedc38ee0b217705da9ccb071a1d797e44a6dc94aeb0240bf96f8f8e6847b8c3b94ebd19dd6ab6b605efb17cda11d1d09d165a715bad71b00aca7b74bc16d4a3202711b6f3410c35a933516dd487de1c8f17fb9aaccfc8c43fcc7244b6a4b0f01ec7bad13bab4cf3469b3f1756c204fde78eca78b8ba1d4dfbba5216deb796473210dc8895606e1b419a5d49c2c474eff72270b5cba1c8dec5f849de10443010a0a8201355fb88b461013d190cc115c912476edde19a2c45c526c770fc40f9dcee4f80f2c5ee7d0954a622583fd69c5a1358659d2fc1e5954bd51c5ba4d0846f67434763a052d68c289c648af81e6e80d7c8ed159b27a9ee49c4ba7de0b5d0489bb2160a997d9fbdd2fb26fae90f218fbe5edb1a3f9b4093d4b31e4fdd1a21bbdd43cf00d26f5080ab3cb9dc5826c2af2e7efb5bea354cc5a6c4deb09aa71ee8c4a897cf650d02f6ed1c16689de62b481087a0659ec0b37a9f686f4a69e830f3aa427193df28841b3a1a4824a72a11fd51418c1f13e6f10a40e3866f74044ff530d70c90bf5d1961167ab4ba78c0923462590bf13335a3062e5a40b236c4c0ecb854d1aefcbae3fa68e28e03a4587a41b9ec53f99cf302b0b5756063fee789f8eaa646f97c3d4ce1fd81f717d6c474884e2679db21c03ff642915d6d70ce79ac309b56f19e1aef5705c985bd4c86e5011feb85754905d268e87b0d29036b193039d515c6b1dad65894b1419656ac2d74ac96907acf3b3e53dcc81a05838cf12779d306c87a43107122984d1edb0280a37bc7d94f20fdec14f9afa31b9073e31da803092cb312e1720ca4c2a6d3909c7d953b48bde0e502d43d7ea41b1eb98d3a3fe7652086882be111c0812bce660df907bdd3f9654862dd4a960f3ef484f7a6fe47ae7316c2c81ed522fb176bbdbef8631eb15c3aaf405fe600b5582d14fcda697c5991f6e3e33b61672ecde2630c063c4751849e2ffaae7b8d5b83b98f307246bc5864af14a0b2a13565017b7e9e1cad508514038c0cf69882ad2ddd323ede208510c43f479383e47a6ae01595af14d3b159458f2664f56ededaf6afc1ea72c70e6a6c95d5dfe960324029a0f195714e7c7a5c9ec36489532713129b4f49d5cecfee2516ebf64dacbd9564a34eaa7bc4a832d33e1c58bc43cc3885e155cdcc0c1220af1bbf4d3544cd80b5b7d5e5955f73585bb1402c805a157019141a3ad21c977c2c719f8fac09d93ab4096ed1b04ac8b82defcaab9b5ba46b679c64a87ddc4ce660d7ca1611be28e538dc5aa09537c0d30c21e199f22c85980335871c22f2115ab4831bb62d8c6c95fa052a9085dc2cfc2e27085c1358ce8b706eb3667a428a2b1b9e811d567fe52c6d6df2e75271352cd313c61be08bd153282ba1474879033744c34d638b061ebc5693e230aa3403219cac148a3c1adc8ebf2485132c8669bb10844b7cbb7732752b071f82bbe57d8fedeca3aee4798769df64574dc81b4bce3ce5abacdc88a96e5df0f0f9d44a18846f82ec6cf4c299e695ca69f47930ee9b4bdfbf3bfdd7dcb8738744bec8acac3f8c5112a932357612468b4e7e8b8174e53ede82f45e64f187ea9a771e2a58692335ef9636e6b21d0454ae0eb7cd0b106f5d44f53c5d126074940a78b08620cd7d7b27dcfad540bfcd828eb001ef93475050e446ce2b290e14734d3283c1d7b34a927776ed188ad8bedc5c0eb3be1f4b582b87d15773d7f56dc3ec4fc09fd972389e934fe0855de699e89bfc80c77a58f8886ae39670aa5e0a490646576780058451e09839e62ca59fe0a2c03f51b42f66bebe59ad8117a6a1b8ccb38b29b0497eb1fa8d098a8ce1919a1ed767e7a097e850270bc1fcf797ab81031181f44c4ccc8b2e07267fb8d80fd28d0a1ef755f27f413e022ec20557511c85ac1db0bea5b41101dc35780e29ee90c3d9b7f4aee15c780f88d53b61d5836fc0fadedb73e60bc8a715d6638f526c83692ef6bdcafbd6959cfe536210dd38d9353479bc5d13927a8cf142cf63c769207963709b8c8fd5b2588b27f079a810e1fa435cc96f32d329cfb32e73538cfcafc39be9581b79dc26ac911122e90ae6a33906785325e7dcfac249b0b44d690b656c688a6963062f3e75fd3c4310290b95afd6d96ff91e5b086cbc7377e4a9cdf06abf38f293ebbae6845df3ca82c134482e6ffd29efcded9407739659ce6d5231094288e19e47bdbe1dceea00380556951b16ebe20abbc9868245d954648971de69d3fcf1bab8539c78b376f40c00ef8df01c7d8bd45cf644ff5e12cc25f6c762fd7e9990e3806b994444251240918f69bbae6619dac5ba0656f0083f33d3a1600daff52659bac0eb1fe493caf8f390c59deed52f2ea10b6691b2243ad4f5f3bc35b352351d9cdf541f4e848cbbd747524d66cb75e43e0c8e6e399b9af209c76ce4966bfe79ce59c24c8f7ccbf608314e93c4807d95b0f4aee01505eb9c42b6abde47f94375cfa1ca23d17beb79a9dafdcdeb7871dff5ee788ec8846f839a63b4bb0c25b862673e0f15f48db1f8f88ba56d5013f5e238bd3f5384e9737ea4038e654b6355532d483105fa47488baded6778a7bcc7c41a3b11bcc0779106ec62049e9f70c39f1b63f1ce4077fe2edc34d308e516c32e100c798d9c41edbae5066a78416b4d6134a648bb8c8da5427192d4cc8ab2bdcecd08e43c1039e3dd6f4c56dabb42b2f83523c40de393dc0a39e93f834633b5d3c43d9675f0652dd3e2a52b02f3f745875f00317934aea32f780c1885e0f96374af8cee94c0e959a8b15ad4fe7a676f764556b3a7d7794b3d14094a3a7aad0f692d43432e55bb4d889a6ace313e988befb543b6b4d3d032234c3b9ca01c3eef707038fb884644a548677651d573c8a462ade9bfb1fabbccb7003328c9963a00caf843a71e334affdc3dd01373e6b238015b411821d49d17308da8d45aac9384bb611fc81ed2cda1df8015f66c8ac67e4535fe5d7f57e005aa2f04eb0e9426ab0d3e059dead5c9730e40f4a674644a3c671eee98b676af57a5013a1231c6a8168d049fcf9a9efbf9cd38fe2211c0a739e8988915a7788a0c8780fcae261bcf0f8d0c141278bc1fe0a066abce20b654d9090ca659a723b6e215a687e7e239ca30619a4bcc82424c9bb323eeca5103192653187ccefdb7d951fe90864f6e567241e2fbb3c5ebe852dd53d9fa0ea62ea7eb11fc735068ba500d50bdd58e6840bccceeb420519aff54e4734025c4f8ffc311d1076ab1988efb6101cd232c82c151b1e5bb91e0a930f32c2832f55a7246767fe7225d5eb1e198b267e0b202024c67902ec6f50ee712c3b02d08d5d214eff840ea5fb9c5cbe4f1ecc07ebcd041f92887b0a4391e578cf4a5608dfbb7316b698835a1b0cf74576311ab0e3aba2cd8581059b036a0af0451a8437e736df1666c66674d53b62c628dcdadde1392c68bf8449b465281da67fe4e7c996273d0cf42c5e4135bcfe74034baaebdf839a43918f4ea55e0f376f8af755540f27b1d2b094651c1d9658fbd9b037923606f6fc824333ffa9acb57f22eeb3ca77b4b7c3c1b1d1b243e96807ae7223fe978ea666e4f199829c1b002fd64ca4496d99265fcd5eff100613b0a0d4ad6159206cad98fe8517570ae32336e527ea3b9012da2de310346178c5ff3e70cb571236fe5afedc7125dbefd29575c9a543282476bd568efbfd035ad50f215bb93b18d7bc4e1231ccd5742890a12818e8df095ea65f01850ae0c5f276b35c4f86b94a48caafd773ba07157d9bdbbebe40b7fd0d298ba9b9590b7fdf3eadc9cd1a2bea74659a4f74f2f3d81d45edb838121a6d39b6e5153c130562906977bf18757395bf5ec0ce7f8fb4f78c2b7b25bfd79cd2752bea32d4ecbaffa21e79cb52edcefaf2a7b7e7f3bd1c046f4b3b2d2d5ce84ec83aaf3cadebd4ef099583b49989831fc59ead9fd5c1bae74a30e02886de4fc1887c25af419460163a4024813645f33c471cf0d018042ba44da68fc1c494a8c4c17c144622faa5d0a3b1f29ec34ac8d12b6fca1381f3f88007798afc7317c2d2fadc5efd2be193691b62935585a59bb605dd32e63bfa842559c725db5274dff613170ef701bf32a3a98683a92761a9e0fb257e29c727016c0208cfe3c4ef8c2ffecd8ad8925de18943334f765eb70fa6fba7dfefd0652b30acf6abce13bcf5eadd9f8e393345ba13e2a10a3da17def65aa9225889fac7d0d7896a752558405b3ab3b82186cbf9aebeebb964adb0ce9f5a99adda6a8ef7a63fa4293d2b31db6ad16c874c7d1168e962aba2d99bbd19646254600186939b717c01a8d929f30bdab8eb0a1ab348f142387ee7917e05f59b172af75f54ca6df2a6cd6444ae6b8223a3293897c4bdce6b0e93be9233f3effba916551914f0eff082e1ae2dae429c5f8f20e2a248e9e35d8cb67cd3583ddd203cbc9f6946d3beb25b230c786a53b5cc39229970b6bd1bd15495cac1d6da920bdcf05c1d7e09cb86f07614b9214ff44b1c7d86099c5ba2c83a6e5dbe3a0e0f9f0be3d9167e20ec3e710e5dbc921305e4fe90cac624a6a30486268b9de191e025d91662caa76444ae8a2e19004f5f354018b5c5d9ef710c8c47f25d28f22ea7c987bd92c3b996d42f83b7e536ddcd932dbe919ec53648092cbe02609a2749211ac829651ede2a701f6705cdc7ab45041ea6cf4ae243f8a2f2caec33266c29828e8062610d09ebfb5f45f9f04cd341b8a9b53e59db3871e6b375b9326e4311bcfc2516c855a71682d37b3d7114a9a11c0763d6be2f259e7a8481d2b40c05610020a47069d19c5930e6131714a121e81997a531f2b36c3e6441113d5f0ce75af71ad6954ced9234c5032f56f02b0315775b7668b30e7ef4fc095cd4ca70d84c18ef8ec2412b97b04b1d8337d71be8814a79e068f83bd904d0bf71761fab2b2b1a073256f7a209784528e7488591116da7bba131980b667f248b0f55c92711e6abaddb46307adbae8c9defa2b1df091c22105b9079a01acd795784dc42bfe103839219c248711d2448fa9a09eb0c17c0570951453cf3f1db2053a5e20945394a564b33fc4b59deb645400ec6d2537d86625cbcae8d5032636972d20f3bfde07f89ce02707c975908f074614bada1917e0565aa5d9cd503fa8feb0ab4fa208a9126f95c1156a675d5dd1e7cf8701a9c3f67a06d3668f656fab6b8117ac65b58a33f0b0a34c0929291aacc018973948a7865309efefefc1a6ab91aa2aa074d3cd9fc294e295b7ea81c61904e07971a73d3e65baa7a0f81c4649413b4f1c10c1ee067db01d6931eb6ae427e83515f6ae6d6130cf77c9ff523bf78ead0d706a1d7817e8c3ac36d3d7f521d30a383a97812af0a5090881b1d8cdf53ab7761ea87ffcd340d836bc2399b89b642bed8d6e9b40875d969e9688e4804c4a59186113083a1d612a4c60a82d3f307d52fd51c99dd67627e2f641d366472f9eaf67397801197a7b3fc55a61fd2132d10eacb541581a4ecb9a5df81d4bf46fbd202c9f25055aab7ed6a33f928208bea9ad2101522db7677279aa98f7b78e323783843b8ecff17a21fc4e4a84d7467a8222f6a1634a13dcf0c6439aa139e336e3bf7899495a344538dddf5b54d515b92d82193e8f7046806cdf49171d8393f5a3f3f0c9b005eb401e1249b2e80f4fb51f135e1c0ca862db47378a5abd9a4c9c4ea852214d6525d3da5c8debc4e945e8026fc5ebe3f987d222f865ced7a2ef40a679ae64832f6de57ca701a61b6eeae7d35b7ed569d0e510cd0e0225ef2121f38269a73672627686f2387bf3fc82799d65f1840c15e65c7c84ec71babcec182c95af57f7e361a5615eb0fb0872bf8a0c0e80bc017b1d0b92243d55f016c743bc8798383bbdb13d6e03b12aa1c982bc07f9b95b1a0f91faea76d73e6b08114c197c0a7db8a01f3133d959087df5d6fe6b843bd24204c7053ec2ed8fceb947205dcad859ff5898bbf695c115524da7034ce338b8858f4aef21f0c986cf180ccb2478345169dc8d0f2f359b78024074c0c63bf14f1e6f2eb7c4b31c6b3d1f6a344f8c968010006d0c2e438eaa301ed49510fc1986278767c21c4eba4f0e9f9e4f442cb2e2d4a007b0582088fa93b28ef701a15acb3ed68ed95ac2de66221605cb77a1809f9ca674216c5bfd052536c5a0fd01d76d863e3c579db0d7ca4f0577ebd440220ca535f80a39ab4785cb0fdf270a13dfda83eb419802044f9fb3bde7c3c8621e7992b01b3ce9523d7c6c83567fbcf60837444dfeb48adb1816a1448ae6fd3d0c112f9d9862900ad3b02f502fb67ce71f2f3901a61145ad64a5785be43118daeb7ec0068b15917d5fd0153652681dfe3586da651c2b99959acfaaeba4fc3861f397c5aa39b6dd884157898f48385ba2a761a2c204f8c3385c0ea8f8c1c2326c9f3a44872dc2bf08543bbba580f8a26405724f95ce01745c7946b0ad9d2806717b7a2b93283e7460aca19e1d0b3758f2103c6e38b5adfa031ea64e41670751ab9685a0c3432a32525b59a2cad2a70904f37686c67f0865afa851fbb110dd1f52209259e3b098d2150b36f7ed429de504e34c8c45e351434fb112c2669749bd709c8465002601dd2e67d998c3fe2445a299a7be315002eab348d158f110921a3e9288428b45062d5a7d180427cceae3eeb54634ce11c8698454cc195d1fc45b48137876c721242cd38f785a12cd16b002799dff64cd0d6aef5899e33c5d699cc54cc061cd123becfa0dbc81385a346ad71f0d64296291eaaaf870732dc49e5b329e1e1795945813bcdb8ab69d1938908e355e23d312501ab003e76f25a5b2c838cf5a068074442010d4ed288ed936c7099623092449f800d1a9d6ef956d95eb64c830fbbcb93c53995a89f29cb97c664358af1582a166a05555d40273d2131aefb82df3d0bba874ffe7b74def0431c365c675fb2f03c2e6ea85f020c4d36d7407100892b1f885a1ac20a3006f6eb656d3618b175da5d0787349e694e1b289c5549bfd7efd3257f0ac49eb5390be1266ef2aa8e83de8c99c7baac5daf0ec98f4c63efd89ce8eb06e8c591783a7110b0ad409ad54527aa76941fc96ccee1b4c42060f11a37920e85baf0e55066fcf1a79bd559c0af9334305eef7b817525a7d8c8292b710bfb175b244f6e1a3b97c63101eaf2c2a136ece0a0d8c87bdcbc21c15669ecad94bf322adc5387e082bf264e2dbeb0aeecd544584d2aef8f075f6316bd0e6304146f4433f6505f985706e14ebe10ddee4f6ca851605eba8c1d19ae56edcc9f04e30ed8af5efeceab4b91287839a58cf0b6a98961cf8c626b55cadddb379aaa63b297d86d3df9c1d6aa9b1329ebc87b07aa6e46827ef3fccae4a64e7d7332a7015d741b38fa422f19f5f06925bbc4fa615f52da6aa4757c392bb31318789509e0b208bbd540bda1bf6b73c3dab96ceadd18216119df18426c304e7d77e485daf9a32741aab2b150c4c698f6ba2c95c8d08358693b3d863dca6da7ef57fd0a0c307f99a140eb4bc80aefead605c996cc14a0aa165eac8e9de9c540097eb0eeddbb8d9a044b1c1b2238e886439c9dce13ed4b7d14108fa110e37e72191c6c4152d92f5d61e1cc94cd29eb9f85b6e51ede92f26e585fb955959c0ee7e6ff87d5b19bc384e8083790e84c10f8fe979f6bda7d03c9b45cb5e6da6d8a21c64273c2201e0baa3ece55cb2758cf6d289a4b1e83b9c8113b8ffcb031c095f2ff75b6e442827bd9867cf5634f2a086ae028a9a38ad9ea7e6e81c6b60b8cbd0288851f58f06eda143dbbfe5f3bcf3e72098aa0ed575f717a46d2271e0dd6484d03cb1903fa00d4cfe09cc42478ed3299788ac9f192a25623017480b3ac8da8a21e0b4a0bfe5fbf716fe854016b1e010b346a2826c18ed6cdc502a362646fdb253557035b4c699cd9ae27a9a50af38a8301a2cb0bf2c7777d175db2bd71cc4ccd460d0f24db2271d647441ea327a7f8d4445ceea17b086f6e17e86d7b265aefe73e708f574be891aeb0bdc7f544c5c5642ebb24edc6c96490972988f6c86a97918a92792bfd830b98e7c10a76003df0ac3946e0782c8ad504fda1aeab0432e240ff8c409d34a65a42fdb26c670bae8fb9fb184ccfe0413da1f20f1dbeeaf6493a113cd1eb4d6cd84b6fe3a7ebb2e950ae41ad1902f1d8fe73eb87f1738255611d5afdea1802eac7ca5293e88af8ec0f407f5a58294fb080367509fab6e9f191566f27376cbbe6bcc54e788bb23ad510388de4dadaee8f47df5a7c5f94053f25ab08363ef1f94028bb665ad6316d9126f5b7b3ffb5f18bf114973f65c0c23ad0b276e47ef7c7a9321b958feabde1516ce71d90e9d9e3b2d2af16b46f0fe641755769b078903eaab2ca3560a06ca0f814155efa576b08979d3e4b6da7fc6c5d515a067f70151a25f7a2409e113c500c3a98967b5716b604f2868df1d9257eab54cf4f5e139f5ec653ed53f9588cafef811eb386f386c377e4fc4f34accbe9c5f79cda9ce08e0c13d9ee8ed972a19c5feb680bc5ecec0322914a2134ce563a487afed4b17106e50a66583ccb3b22ae790acc51e8377dd39495d07e66a2cf54d718045daf4b6d3e8e4dd54cc53f9d5bcd89b3d15bb2f3b35fdc2177dbb665a94c73122739e3efe8f91d80a1d46c00b639d01cfe6e0b0af9357e821c4381e9f3e60d607439e1fa22abb56b26f6c220b099421850d35904856d9c6ec73e0a518ca2927959ce83c29d5db31abd29ca35f780b64c7587362695e8001429a89738471b3abd54292cbe91957d06f707ef5c5b8b5172ce897f399ebcffd72db8f05ce6998ddf345bc729e387901ca064e514c8003fd83dec150a39288fcdaf378a1f192f86674f46c58256327e3b19c8d7c2cccf5bdf452304ea1eaaca41f923c4080dfee6300731be0cd59510ba82c9792db520377d77aa7a2e364b1e321771653f8e1893eba2b2bc4fc1444adfb6930a0232038cbc3058fab0ae6d27d1fbd3ad14b88e899b73f45e955bb79568141ff45191f8a638abfad44c2eb3f00771bea878359424174b81a76e3618500619eafa0e875c00a55a18e6640dcc8eeddaf6e78211dd328c421d632cbb7a00decb3ae19185eeb2479bed065da3414c51ca756feb179484f8d05f7e68beadf807f832f816a6fd5b79b0014a20a38d82385f736792c58c8fb0310a837b241cd10e3741583e21f9602713ed7b998710f7567bce1cfac892e0db1a54ba06966d2d74cbb8618c57678c53102bc03b10b91298c437f3c712f929f4c3a81e6a44d97b2e4b9ab5e969857293b710627bcd6e939a77ca2f4576cae14c3c8e5c51be5ced251ad70d216211149119431b51bd9166320afdede1d93d8c8511b19f23d448b9b4b4993b64eb00c48ad64622baf72034e39d1324adf74f0118464ece928cd6da2dca5c19c69a266bd0fc024d386b5ac26a427e57e0ada436d09775220f29b6db5427db6dbfc707e34837517450a9e5c13608cd8454df11594d16dec5523acaeae2702294abf46447ed4bf50e0bc3dbc2e7e223ca07e4754b82094732d6c4807203ae523c4ac736cc4bea95ab76353e0bd65b58969a89bbf238289f9d5a757c9ed8a2d4bf419121dc04ca908a22e6aec78d14237ad5a32d11891e6ca661e57fc4f6fa10539868a1014f19c419a42f7b974a190f3c212d7cd565642ccab3efcc70e643f2d53bd07063743ba77d16fe4bc58103117b0cf714ac1064adecda146aeaa3b7bb2379f0eb6a51d74ca494fb0c9657eceffec9eab153a2f08f5ca6efff5f1fd7fe89885f7281d8352898c0ccdcf7282fead0add93eb0860c754ea9b94092bed4b97dfe7909b08ff0afe93f5d188301fc3f5ab3dd7859fbff8cbdbcdf0bbdd8cee8bc594bc1520ef037103a3cd32f26ba8d11f949e96c96bf82fd78a6bfb43cda13ca79069eff84ba9c93de084f5a8e3a20b3412b1ebdbea2fd0ebede6aa9a8dca316210e083733129aa9dcee43b162baac9b715842122f6a33f530aad0c552370840798d0472f0e3e6b2e9320c7182b516a0131377d2789644e0b54f70ec6241f77a8fa0b8a8a48570ad3fcf04dfff882da8d63791127d0e5dfdf91f0329759253a7d10cf979cd444f421b20b550a2e58b650bff1bc2f515d322ea6922091c1d808e9489e8b2fd444e8f3da08f2a641203bb284dc35fec93be5b3c7f07f35b192d7d9198e6135aae202d6bb55d2af4fe3bcc4993876543a9c28be6c897bd2abfe7c062ee50d61d2c9e3cee8ca80134267838aa3f5d662b970301a3eb2e41f7d0f6900a6bd9a413bba0761308b1bcbc409cb62ebe19a9aef582cf73fcd85423f64d916aa2726e1fc85d53abb8c8b256c7ee23db08d0e6263a5c3e17c5eeaf80e5a16dcdf414bab69e545f8bed1dc58045341a5cc8feb4c48d9b6498184674d95fe7015d37dee761272cbd0dcf4c81ed7b134d7e04320e0af4a850c03768b96bfac624abec4d1a3ff619a58d8b47550453eb41b364fa5d51c181ba9f45804d64b9cf6f2b0da05880a9ac6bee936762609d847092005c6f44613a4e08ccf3046b7a7250b55f88d9eb97133b13e8b9a54eaa497e54c0169f636d82111150d75d172f10440662d04b59cf3d336573d81b52a8ed10594d6abd8213254497f6b0f076e7a4603dc1996037636a165379e23ea2d7ada8a192371d47ccbf60b7383b2488acd9325e6247d1080b0401ce1166bda98c960d54cda168af61299056a819dec22a8789d2fa4e99e110e2ecc9b54c918602761e3b2d91f5894543f79bc4b1768c2cf3fde5387522eb8f48e9bfdb1cae8afd663b4405b97ef9372fc46fde990ac3e452e7477c36b0e50242022ca42256be3d1d19018c0358f73d23c5040d506038095cef8c1e5e6da0222ccb139651c65ac15d852a2c856fcee755a04b322bfd2ebdeeacac4b0e1d81149261776bf1504fd74c88166559ae9de7bc797c0fb8b0e04b2281836aba9602e9ad86e2ed672fbe017c59463b0b97d9f797f09269f4d1f9b23e725215d6e2306a2b1fe1e2b14b7fa8e1d2db386b51c91102e4cc3d1aa61afd6ce73ca23a042f3a060285085d029c9b24671bfef4ad09f4025b2e06edec576c28f7ca3b8538b2419d80e3211566d265e523f061260d08f9da41fe0dbb5aba74ba716889efbf836e557b951316de176feff368226a81893d836b47d684dcbf864bf0e5e7640b01c26527381015110eef7b28362578f426179c6b598afcded6a952f8f731d6859dafa6e3ecd472ee94aff04b30484d93c8da436a47844f75e5e66db2b5180e0c5ccb7e9bd7f5c84f389fc463cfc11c4630f38f0867e1eb28c382edca1b0c888c58c84640a23a241dba337412b211dd837247a2c9d626b46fbe089cd189b30b373fc7bed2fa0a7e16939caf7d1b81526375f19439f2f5524216258dd544f60e1ad2f46e4f10eb46656dc52c787033b9657444b638ded0a010804ffd08f493200a67780d921a0814e1a728c731bbc670197f23cf6601ef4d5ea3458cf0254ddd3568b243edd0d4c182d271d79b2b844b5dfba76da7872142a69e555c00c69b31d7d2ca6cc5efb59dd936f0ecc2912063bf1e186e1ddec764bf8078e090acfbe908b78f27f6b9be68764ed9529ae40c952c742d3cc93bd4bee1cf3c63c410c3d3e5bca3d52b747d4528475b0b19bd5608e85dab862a13e028970281904d0d8bf0bc9cfc61a3e7d7e297867f2a13db185f8c8c455fe3a250f75607fe8b0623287e54a3b1e8f3e0f775451fddbaeda17b75aa89d60060678b5648bea15eefb732d5eb331a1a9fb047552e5e1b96269345d07330e6b5f3a63a49ab7bb9c479911f60ea423c7326ac7e46674244dbacddfb1cc1308099b0e5a17ab488eca6ff5ce82cf0da8aa54caebdd1c8fde6ec31cc9265af8e5a2c7d6f02573ca106c8e02944db4a99f4c7fb93bb2b63750a21ee52aed9001f4cf88fd40f1c7e7692710bec6fe9a72f422b02bb0189cfc6ef8ccf86724f681113bc866774d3472c4429a3fe86a13be2c4eb788c38ec9cbea496ac22e4dde8626bd9c3be656968dc33b90f996b297a0c559a30ef83c106606636df04d9327d6775ff99364951dd13e814fe5f3f77ee9ca096f1d1efd8db62d311a1ad78864c476c4b136d686a3d5130e5c3d46b2cb191c9f4b6a4ec91fcaeeeda9bc54c4ecd7eac59cec6b516238acfc425df3a997f8354084cdbdb491fe5f19c6495e111585b0a0181e8a0b5e3a8f677b74dff6a791a67eedd71ac5f9ad7efe0038bf602d78278b22d3ffbf4b6068fa8ec4ecdc6199456b12363875ecb0c47d43fba3e3b716afeb6fd7aeca98cf654f177f6c2d2164386dfb8318c21533ee4da1857b1c14adffec5ff0bf723343dc241c5bde0ef700d96af27619d02c7dd5437cc3d6ab9b481ceadbfaa0c2c2492c8e43300722621ebe00be9fc3c66a78aa9b2bb6a1a5c73449a08c9d3b22127225cb4337e0587846a4b1f52107936649c286ecc8008a211ef9d37ac4337e86a0fce4390dbf581d82d623d002ce81ef89ed0482a45a1b9949daa1e0a7ef495f8ecf60a04208277da68c83fd5e7b59b2bcfaa82e02398b0433efd59804ca617644331dca4397602e367f6b2ff59bf2de1a0ed8763a897f0a11765e80c38ce39980f242fda7663bfa305486cdb9fbf45e43aef0dfb0782712d3eba83a51028caff425d0a550a699204355b63b05c8cb894f5e7ebf69641c3eb1fa4214c682ec3f040bc95f08f8cad7b7dbee8763362ce70e28459bc4e295153faaf56df17afb32a62ac9f7980a2d9a176ef93d14e413ff0434a7d044ee580a862b79542b76fd46d752f9f1abec6c3b24ea9825eda59ae5a0dc6741858fb8e78bf96853f29e27dac38b8fc900c65511f4583c35a888876446d92407253db4a76cd33e7ae0fe9ef1ce1d4ab5f93d13c5633df05540ee3d92440283eedc77f149f1bd4c50c51ac9d7d99a95fea5f717c6d0128e94da454e6089981199c649ebd388dc3eb98997d6f32fb3ae4c3df7236652b608551884aa1be3f8c606d7b6830ebdb4ad589d6ccac7d9988668169164353450007d77a704cf42c6c220383dbfdf20ff69ba5bd2c80fb7777b513b3867fe4732578da407dd5af0f8e448596a1352c0b2b94c9436747b38e8cc5fe5b417347ef0f11b6230fc332cb8977c1f181297f0110978624a221864a7701c7610f0ac286f1a90d719830d7f6d4f59e7761fe0af9c132fd60936d7e0d6c3193a88d64ea1b0c2830f95babb25b4576c72fd32c444edb3a92b8c52988aa4e0351784501b923200055927902d47863fc69c238531f314a73e935ed6866eaac7da1ff54c070282b2805940a5cc1018d7027fe72fb4a25774fd1a24b4c4e0b89e771cba783a7477612d05d4e21745be7298c5522366d81bbff6f0d25366c3bf4ee6c51bf6d90b1f48b26cde693702122d4f45e772d54f127470f4a4426bc2179185f6a0b01072df297d6ca241ebfa3095b605393110bf69ad359708f720a5556c140d1d2a1c09411a32cbd64b07d62e9c57b927800cf612712ba5aac4da6e3883ed7a6ab3c78549ba72f147bbd7796be2c281d8bcbf1dccab9cf26b5cd4bcda6e2c5ee8313deee1b1dc7be30a8b3a83a31d61aa1bcd26174869ebafc640f8689f476103af3937952cddab2cfb32cb895a55553a3bc37c05ade2d3ae3fea077c8e07b59c553841c6fe8a568bfc90018314b23b6bd7d7b1ea35bce93ba32117d0330e379ee247197a1f2875e31a631ce09d3d1d61f8b377157741ff4ba3e5f69fd0b8a049849adbbf7649794dd3db916fb89e6684d604b05adba3c4f07bd7a7f865d9ef3960392ed8b1b1b10cf6e19ded05a65c7fee963f99a6f2fddc14410f836cd5d201bd267a803ebd85b404ebf492a105371911271c3c061de9730696c80f9309dcda78428f85df7d80388a58a2d2c00a888083cc9a89c523bbef1c8fcb86530cb1e9c84b6ff11a6d61715708a94038c88529dc91445125c5a53401f7bb5ea29f09a4b97e3737d4519ae7b6c873f381d1cbadf1a7e094110759f48899a7fc9a2a4aea69ae71ea3c3d7609112461ecf8a06cc669a0cb8aa4d98ad8c712393dfcb162a73feb55d390e9ccb998081d93c105b3c11c283e9a901e1cb58d3c66241e5fec214fcf6a208f6530f8331814a2840dbe0d53699893853b90d48c895d0a48ad18ee5ce47f299afde53328ed301fd9c7732245ed75706f07ccad891f6b59b32968a1e6fcb68354bef3ee0ab27bf4dc152cfd40e0c65df75481d1191245f9e6a8717509103b030be0d7e85c978fb0642fbfaa93fb59d62327d6533dec40ee69909786aec5f8d8d575945575ebe6071b42b1960d5773a08b3afc58272dd77175594565608f053e8b970c653cb1b4d048223374ef24e4b78df4ca517168942bd8ce13d1d172a6db6b48cbdde011b53087496819669cc3331983e2fc483168c9220151ca29ac7d8d4966ce46db1d5bb092144c9e637752c7e133ed30875dd669da196c9e9d84ea666d42b7f45ce10fe1aa68306c923ffbfbd724fc31888f853194d067bf360fe7d031a7ad14483364be75573d283e7f64df8491777ee313fce318a0d4e212276153627f8a4c2e0ca04954707eb8a86208ac613582b702e4fc28c74cac230d8a7be4a0aadc679da6f4178efe4b27fb0b5fc87cbea5ca4203110a53d3d3dc3cd4ed76d97a0868566cd4b952bd5afc1538080e927f34ff654280df56e6d8476376d581a35a93b6ecfba22f36d990b8fc1b1c6bb2fe58a8ad78901f156f4468da91349d85764bd458bd6f8bdee1b14b50541d019232f59a3500ba9d12a3991276a05494b4722ead32952b4391046bdd0538d77dff2ff4a1559d6b52ea7f25b0ba2a20891064723d32b1870845e431b1facfbe66fc0afb1cb38d14b693971fafcaddfcdef7943cc3cd599fc28d59ae9dd19491dcc1fc5255d41fa82e6fbcbaca712f7f0d423d3cfa54c8358815453053c2d556ff9156f01b03667e8190f4a1116d5f16123139c1aab994c3de9704bf0d9923a04b80d91e4ae7776fd5f1949abba391820d2dca71c6e541e95c0050852daeaa558893c2b310dd903b5a8f77065082cdbc2daba6d4c2118c9ff3d36807582417dba0632ff901b64fffaf1e83b099bd0ccf3772a4fa2a40a9f4c11c6d8c56acb14ce878bcd6bac6b982892beb9c8ef03cdeeb3a3791c320bd705d6f393563fc75f0c19066f7208a94b9052dbfbb7adc7a4074744193b1a5ac1e2553f765e10a7c63ec2685818f35287f5590bc74c7ee0e922c687a98390cb7d549bc543b632e38d061d01ce13bf604411e77effe575262a382167fafe87d713fcd31c855db01803553bac28e0726be811db71c2410c4a0cd9717931ba9f18c53203dab5f54855f8f5dda5133cfddeff15144a4804a50f4aa519f0a7461f0c337f842a9a4402b36f01fb9797ac796de4b297367938a84326d230880739032579235e2bfcb548a5bb6894a41cf684f62f6f8d9995c72ae946a944cb71ab1984ac9063e8bcd49f99c26dde634aa6a154f04b09c772022765aa096639ceba2ee74aec272df8d6e2cd8629b610d28aacc2ec35a6e2931d45a8c4e38736950749a10293c091f50e157e8d08685dbc3661cbf193f0e5d5b03399afbc2dd58e36f6ade593576dc479c2cb4248c6aac981eef404bca0197d379041c02e6ad80572a7318a2f8e98ab33f000027d8f9bd0069b9a957ea58b31935f7fc0672d87e0e61df9d25daf2909009d10fc10253ecca479a63c98fe4bdf88163d83a8e32aea45e7c91a48b294d9c4d176d0bb914678ff2d1d6141677a7e3d327287c763535943ea9545ce0cd9e00b42da4e0ee012effcc0ad23a0d06e7ebf606ee4ad2d3a481903e4ca0256a75b827c1182eec073ba4985b74751ac86ee7d3931c8d9f8de6505b0ff24abb8a8317cab6dd71082732dd30b786ce6066186cd85d066dc92b79fc7cdc130c43552dd6ee56cef825495aa4d2853cd6472935e66192f58db0d0de5266404f2fab6eda0730d366723e346afb00567ecc2c02182e43a8607103f606e698213e131f1c22bc84380b426397e1ab54adefe6d8e4280489c8306498d6f24df2bad5dff168a8551e6c7ff93f8bd295d4eb2aec79c3acd75e3fdcb680fb8db57546224305b92f11321f3c2c6e0f9146a5ccfc9a3fc5810b4c281a4e1fa8b1aa8ec6aab4043467eb80ec8d4eea41507e309cdc2cb085e7431a139613f6218092bff3e1ce4c9f7200e69d6738f12f86d9499ac7b7b30d7ae7bd3f19f9f43f4fb3cdc863781511e9188c9b6d501886c428b704fafe39139ba08643b5d33e712c3bc5634d1b3667091bb79c1b9eeba4cf59c9a9772a864c52daf6befdfc08d33889210d7bac85283f8e2d39e80d8ceac24de5e64b263347cb52cfa94f3206f289125d77de2437eda955b33535491bb03192ce4dc4720ebb36b9f8e6bd5c1088fabe40fb72459a390032875a8fec0038a4fa6e5ba38e1ab10bd0d201c2e25bcd360be3482d077d004906f08172663bb48042d7787fd197def0edeb552f060bd9a52aa604424ba3a35aefa8e90cb48de92c3ead9fb3332c38b975d90c2fa9d51e84821ec111b75e0b1c6b80dce0d92f6e287c760f8f7078b69b63ce156ea995da28c9f19dfb9affb50d63aad03693a1357cef464c3396aa4cea20d14929f2644452225d269aca2440f03370a1ce48c0e4559644a82cc9f8c5475c9a65d98aa14e659ba71ee693d04c6320816dddea624a10d4d941e94df28dd684d92cc659d09dcf2e5a3f949a3f6a0ba2c87987efcd93075ac09092ed75074aed84292330f57abc23550e9e9aafd7d71c6d94909d731c4f4bfe98cac2629e8568f20308d1f490b68b996ee035da3a0ca1ae043d9d134efb28930a580e24d22a4faa71b4b85b2211488dca2607b6c632114e3cff55ac7fd8051eb857a14cd8b8b84125fd809ab4ddd3be881dcf5fad009c05260c736d01bd5239d4bdd37f10552fe8e76cf099e1b606e0edb9274004f4dd30639d0fdaeeb094db382debddb41f11c0a6c43f7a83cac436e0b20d000c535210fafcc9a0205a5e409798e8aef8065f68673e8d9499b9cde3d13959ae4e8ec24146220cdbf155b3d808b12770b081a89078ab5c85de7c2ea26d826935b9b007c471100a9979fe5749de14ed094cf693405d986716f330012b3a6db330f7e906ae4ed5916ae8b83e8444999d7513a913b79e0be97557dbd89c8c47923a52d4453408d1850a00e2bbc7a24d33f14dd7c4875a9e28f213c78833627c2c391c9ec436bdcfe66db960858389b54b133a198e54b83b3c25d4d00b9519c92a5bab39f6760b705bc42bfe3e75083674ad8cb2103490d572e9cdb55e9a0fde210e9b12b92c605d689268068d765b0ac1b15b48576fa8eb4e654188f54993ab17e0cdb04b9407fb45a8a18205beb9daaa8d231067608e14c8d14e38e3f6b4ed81e4dfa26774e79f68dbb691aec3ca5f06a890f341f9e6878dffab79e72de727e52ee51f98abc60e1d737bfe5c4c131ae4dcc08cff261e72429897f2fbc3e223f3201e8f154a5c0a8bfe33c786121a55932a31f4252fe21e3ccc0191e6c58ba7508e7c6915a01f91820916d1b0988dd066eb55242083a9f52be91bed9da84d215d2a3db56c9c7065fabd5ab3f40fb8f594944fe0cc0a001c008998db3dcc6964ec4005c6bec9eff4763315f5a53bee89381f5716289bbbd18492fe76f51f7b9cec37ede2db71c23451f854797d0c6231ec46d85a059d92e2d31c768eb9a01d1deea188e283f97a37b0bd950320c410f0839bb355087674c98079ca6461c3029b009d723b1408588292773a9c49c24aa71f88f95104fda818a24b0fc94bf886b2e21309036966e4cb3c63d14addcd8507c8d4c9a0852256b23761b117c72399f5ae93c7e34c46c18c0117eb1006be9296279da8ff013c477fcfea9e18aa4145db64cba1ae0703bbfe482dab71eadcac495b1563d537b52b60452ca7650cd1d468ee9dbc8e4e4d8d97f69b1d71648ae1c581d8c04de55b54ad41ccc9563e3250f0392eeaef28fb6a7936abf428fa76771071a3e8676d3d2502c986e0c9ee577b388cdca44748279949cfd1592bc7a60a885f942955307db2d6e1abf6fc75495a03356174e7bf44a859ded61044b349d27797e6e82866b209273864768ccb502ed939b5bead8bfb84fddda81cecd8cd15cd7614c0b395a80ad56d68ce5681024ec0e3fe2a45fe025fc1ab76c7866fc84621cd0aa7563945b586898ddd2dc7429b19f976bae81facab5504c6880db454775cfebf4a1e5be1e33c86d7027dc710b53a730b0aad8d4468a77b58fbe42e9f42a78475d1ebddf5afed08cd26b6c9c9703fe47b3bba7d7be5a20e1a942b9b00b9ef46cd88489e56dadd13ca60ecb0e8d4bc64fe5b413918fa0201450a65f240fff3457e7adaf1ebbf5595db122c9e5c8fd9b6f16a0a0348de70365640df714fd3dbdf9318233bf735cb7e03b6042c282b3980139fe7e17d41f6d41d84e0815d2bdf1b5f174cf61ef041e4abe83764a99e34f15f46d5634292915e6c2ff73fc1d4420e62bf1e77e94c15e36e06315a5eee654eb05a286a9ea399ee9c75aa765a8966a57bc43b8f95029fad0c658bf02d57b157d76d14a37900306b0cd3d7730257934c92fcc7d93a2b3d65ab3ce94118b9ad3f3990bc7c6bbb61af903b8cffef8fc7a706e7e75772f1ddeaaf11d3187c8ac512ce319cadfd948f9523ae2fbb80d55877636ff36afee964caa1602169e5a7a543c86d9f930529d459e86fb4609b79fc37766e557ace0818ad78e4a1e92d05c76e8ea36330c48747f963b041ddfa658140418ea48c257b9ffc37c9e0725388ce72cef3422e8ea4091452f519eeef164fd208a110ea9d0ad6d94e76d841bea969fb5f9a979df5649788b51d1ce2c24eb05c6db16cafd5ad20382396a90bf66563468dc9cbd2f05b2af9c92ff26566569426196a414bf911e905c0e20f35d42f302d9866b46bacc56da7e19bb516aadbba8510824bad323a7e304528cf5c621ca97d58825fe867293018eca7f4f2b0904d66d6f2dd380ec8ec1eeaec650cfc6434ad864c45c3dca5da1fc1db90ca1eea63a7cf3e218f39bd274a64c1b45d12cf2d197b22b53ae6653a44a4629b696a1cd34bb70c0fabcefb07747de2d9a2bb5843278111b284ada9c64d1a69ebb19a8207e5a12aa414e7bb16d04010002bc6365bc15eb7bc5a887c8c03b9a717eff4eac75febc43fb83008c0fa2eaf4f9692b1108bd05b5970102ff550a89841e5d3e213b4149dbff1758728efc672cce9d4a7dc2f3e6edebb4fd32fb1050c0b50f1ee3442e8e6fa428ea7e627e2bcfd4c4b71bd9ed056cadc4d02eabf5f64697354a9716c53b9e11bdb6496eab6b2650cf9d501416ce737d5583a125b5b6d6d4b19725027d8582473ceee5df98d198a7b3e86a778c71576432708db11f501762aa285d69bd9cce0df119ca3d6eb7e6d0e9e171cda28b9dc54a75ba9557b2cbaa0b51afca61fba9ee8ed4649cebb63fd4f0dc59a2609369d42fb40d0e54f12156048bb2ff3b7e1ee2a512600fe2870b4fc7f37188fe1d908095e2e8be638c9b3e887b5f78904f1e7f30fbd407b62e80ba73d31cf26df100b8d92af3e9a204485bce063aea97a16c5e0a50f276e37a5f047f982618cee670e3789cedf186c34b74d174d8defe38f3da7466d73a76d575b977bb495df89c6db8932c750d5551ed01d0a57ac964c74e8291afa591905fb49a6c0db55ff6fa44d67246d462addba282ce56a3cfe0159c57e9d00a0de66000f773c4a47187826a26fdeb4529fb0bdae91376e53c79ffcf81ea4cc5c64406128d269860829d7244a445664cd6052e7486a98757aeab3b241e62bbe5640570fc0921ee3099deb98a03f985fdcf61a630e5df195f5ee8f862b60792ced29d10397286161de426b9a1a7f1736697fbb87fc0ca49c69d15471b4aef7c3472105b50e47a98840403d69a81a71169e0939f7704bf574d73095208f11847a1ed78c1792da58ee5b338ddc4b5b9e9b4963cf0e54adb4b2a8f116c35dce1523bc48203cd99b61362133a35f65c69b0bd61df53b7f87baa283c6fe8a8e28fa2d31cf1ccde42ddbed6f8b6e0fa501d54d1d3b68c2f53c4385bbcd6c59fd5c9707c6c1aa4e2e04f3094540951d0b6df9daf12d1ccab781cd1918bf028a48f1d592a036728accbc6ad0d5bc60899e4dd614572945ce925af470556d8a608117910229fd4a0296afece0e76340e7254ea3f6d2c37910a96eb5eeb0da05f9203b2ad34be75da31c8393a4a21ce2d9490fcf3d71a4513d49804cce46ecde85bae00820c82ee56bf6bbc7053bec10c6b68ac367e1a1d75dc2f714b776ad6073bba80810ca3f9caf2cb50ab551c710b8c49b92d3e8a7519a8a06dc5056da83c3326b13b841be4ec76fdc2c619e8f4f7b64a856c8628d269ebee7782f826251cbf72f8633aeb10931f4163402d7995904a529684306e105d6d1fd26f078aa07afa591cea8f917322de2288423c7953d6d6c41626ed66e04d44790674d8f66266f761caa2bda2174d65c00bc1f0b25f2fb75354d0e3f1452167385dd3632b29f2c7351280ee2a992016a0c8a5e8eda159ded64112684716bdccc967a4d05ea4cf06f9e8593868ab64103a210d951d342d3e98f45ae69a80ce93b67654bb1bf8b9e8b8a446b5c2924980f67b921451e62e751a275a6ab281e0ecd8223c18d63eb020b582833fd0a86683edbfac5ac2b9f2ab2fb7f060576ec2c052c74324ee0200217a23ed919fdb083f26da1a361b654ecc2827b177966e3e4d03029815cec51f83ad0a08cf7c2cd1016c3d600887d35b7c001ef0bbdefc1f32e6386e7e147d59a0fc2099b0df32a38a115d514070a34b87a8e4645b32688aa8db0fd993491045a5d431cee13994e3ce2334b0e9d8a7079e0be959a8c5579fded6f3acca71dc12aa6a6df645ea9306da9ebed8e31566a599e83f6d439b3f75b15492747cec32a69921e8ca2db07d6ea0307d7d91549aa8a9671be18ce6ec5d3f4a61758671d67ff18a1a47bd973b9adff6f67313bbb215182d587cbf3ffe7c0c7014c414ad8178a4165f11047fc4a3656e3291602351548db8f3fa56ff68aeb3eb29690bed5f4baa0577738a01a70e5a7b3e96cc69cde1fd12900ea468f3bc5ddf5e95bf8f92f0055a07e354ce86e6610bab2cd007b1d3ab28f3eeafa5b9e8785337e6f267adc74c4e171aa02a952db9530ef3233c3b2ae6af887ad1f8aabd6a447aba42163992f85593bfd7a91f9b9b1681998051def26f28dde695f20a3a365bb2967d6c333e0ec7ca9f89f101aa96ac200e96adc23ab9522201dfecf14450fdaf99904b8c80e314f27457b62df79ec78eb90b323fd15379b0fe5886ca741ced0301ff10a83f0df3a23f29fd29f002076dcb9b2166da4d0a7fdda95bd425cca987bd1595e0cdc0ce552f22128ed1947ce9969b2b78315c49ae54fcc5a4e0991ad4174def00f431ccee1a1a9589f5a5342eff82786c9bfe56ff54c8f8a1109bd6cb648ab2c9cbb7dc2f899d715c72adabedf344926dc907645819fb72870aa2870eca3317706ac2914049b696de08b4dddcfd8acb5a2b33ac43c7e059e562ea7b841248951d5beb072f9bfec8f762df4433db25594592b2bd6e9f71fe9f948977d992ecc46de9aaa46ae8c0f726a2b6ad2f2c45a9f5a2dda62cbee47f6cf7dd3bfb1d23f8f13b7c68460c2614fb3dfa40922f48a464186ddef36baa38580676089e099ae4ad3e7a467c2cb4879c322984218f396b40d6eb1ddcfd2f6544f6298eb942c8e0995dbf49a621a00d447f0d5b253c48d86ecb47f126460f3e619c616a0772c7ab240f1250c76fb3e0c0f4e945eb5bcf7d83a4ac71b4948b91b9a4c04587309e73ac2ea8c8c0cec8e5f05323314444bf20494e127d8a477ec2a618b31efd4becd107270b35dc4221b94cbc7e2c058879b3414829bf53eb14f55935941d6e1b2bc3fdec662145c5134b5c6a4f49881372a61bc78e0bdeeb021c5492698da8e3f330cbc9cde88c7cd9063fc62db02a5927fc3fa772dc9cd4088bf0976c39b84bfe83a1f53ae12585785425c211b8cb8d43ee472f19442421f3add845dc7c71e1c8d625025e7ae8490fa5d588ea6951f5f81983a2e242b09d72858c49d1c7ecad1dceef147971926c021f287c0d65253feb1973a3c23e9d577095e0640e3902dae4d00bf2db7b423ecf6d8c83168ab4f2372c5166514cef1dbf027a240732d462f7547ad6c5b0fcc7842f82aa132befeb6f0385b3e014ca914cb857e6967744dee33ab022b88a296325f81f0f16c1cbe793292eba3e68fac6338e46302287794fd7be17d5838f15e272e98f208250c220666ca0b210f46c7453976b561c455f0b1c598bd49b8d7048e76b8e2db9b651fba2a2e050ef2db3b449ecbe712b0f25ade004dd0a76e4ce13dcabed42f61478c2f2b92a07af388456f7848aa66489bd1a39c8504f057d2714221c135a786d3d74a6656c187e703abdecf3eeba5a335f998b041f2196ee57d48b6579d75351299e91f6c87ac254535162215ffdf8ee06f2db0af53198cb9f922cd92d59852ec94993dc168ae1b9f0809e75247b6428f1a5a6ab73c01e3922c94db150d51f672ef99f125f8a5b885950eb3cd9865d3b24333efeadc221c369465d2b9808b0db6eb35e3e63fae4d1777a7d71ed8edb07e468dc67ade0c9d6e0d555cbcf342ffc2121ab9c14b667b05921ef812344dd643fccd9feef3e516b567864e7512f1fc4e4b88eec19e91536b00e301d1510a745820cbdc2e4184329812cccf092bfa93fd9fb826a4cd1f8b052840d87acdbe9f2c08714c66f2b24cf78474acd964ddd5825c20e963c51a5a7ba9cb37aa9258cae52df4b536befcda9375d7dfa77e060b5719710ecac520040863bca2a20690f76529cef4922a406b61eb91023e36c395e6a2748f812f93c34f88d0f81f8d3cb5c1ee4106ed72920687366ae439c737ac441baf02019a47e15761b92596c4d7c24db3cbb273eaca725dbc8f97bf6effb762cc17e571fc2c85e0b66ec178cccd44ff061ae3cff1c7034e5c4142e5c966f86e372d269b87226c6e31a249fbdfe1ce88728ce62367e81417f78711dcb626f262478710729f9334dd3d20e67353e09940f74fa25f6fcb6a97f83f2d354775f932fa899aeeefe73cdce625e2480d84b6bbc3a4180c1db155d1be09bb29f4a3da64ad53e9d34a61a2071bcb63afea49827059a9caf112d278d714b56b96326b6c83ea945925f6c388c785e6ffa62eb14f126fbae48d35dde55003e873feff51e2dd8918da386dc6ed94655e27d349a6d099c472f42e78fd6372d747f8da564274769bd9badf211994062cb6ad450cd0d06ab2df7b8a1c4f089c0060285794c62834727f9e9a30a1277f429750b65a42f1fdb74e5784bd79cff6413664d7674fd244ab49509cbc9823c4cc942907769c156776206eba14757002af51446399f42024f5fc2c8504a62265c3143575e0759df0d2eb4e553d425d4060d675874e9bb91b97594524e4191df39ea243045d0af38f185a1ff86e51c98511a21206c78155bebe3c3f193b0bbb59ddcffaf2b9460ecb923007353c73785452314487c781668cf91567d22496a1968423b256507e2b2c270355247b40d5384eda1e6906b4bc352cfaaa7b09deda81b27111b1a79f70daa3acfcbe2af2d679206289cabc73b6be5d0b2d62a258d795b78d10cc6d91113d477aa7f18312b11565c93b361e54462fe3b73742d0da49574a6460bb8115b35e71b7e73d39ca54a9d659e8b5d3e74ac95c316b78ddc9511d3d4dd4093a7655c4ffc3b096e90d45197da7b1dddfbfa1da7d428b8cfe5c4ac8b9a7473d1b6ba79bbc4f9753bfc62fc58fdef8b31d514d6b752c952ae89f4aed152eedc3b36c01c9dfb539cff0da3cf58721a443f3e7c234864eba89949c19580fdf2f5728eb139ad167dd971eb64c2f4a8725f02e6c558644ff15f33aa183196af79186a80a475669f6a48be3cfa0bebd3b8a406853dc81866379dd3e5da00b5930032e95bd4ce8867d23a0887308be171ddbbeefb1db8f502608b026f1001a37a94170d86ad6594cde92be2564c1fdf6521e7efc13ea1919572b9ff425d95cafb0970c34f53805311193dd63a4fc4d19ff0d952a3907304bf1ff53e0c9cefb9250a93511c9a9f50b81461df8d126307553914f5cf03ed6c7ebc59e414cb20a1bed42dcdd7afa159020fb6ef11010db4c8417fcb39b148696dc62d4d09b5fed814daf8a3bdec7b026ef3336a5a79ca72a43ee7584361ada10c03d1878aff2b5a5f8e4b126f860a214ddebfa906233abce02b5335bec9cb3d208c6dd49089db43ae18e6b0591fd2536942ea79ccc0fe733daa2a92391d0e6a1c5b562c9e435b566bbfdae26d6c5476b86e19995249605a4ae38fafa0c593daa125feb8c0eb0d796a341b65256bc62d2166a63fdb50949affb551622964f5400a9d395865573e378a22d0c8d9e18b604f3b7e94be0dd93fe6ad6094927076d70463101efa34223ce49e4bef6a24d9b998622e33b581edb8d086bfc4b211dbdc4245b8d1606f75dd8d5f199235574127f1abdeaef291785b233f7e825609920f3492766b319d528ee8d969bb59aac45fefd69f091018a0deacfa6cf56ecd4337d3980b9ccc25506982aad74c51472756e1f2a13dc63568df0e38da569028219b82a5fc443e0675ae86e85077d6eaf6c8f0fc59b77875725eb61ade73c0fb7c89f80d89fcef5f4b3dbe46c0441a65aab4576e5ad68f815b3e64cb6a2d95fb55d23b1e578e2b3b321e2024ec0e4b7ab3dea4aca670a37c45c7453198faa282764cb0f8ed796d2713f9f1ede3066bdd304c108e954d754414279d8567633bd3b94f33bbe16e87a3cb9e78753eaf763f2bcadf63ebabbb2980ecf98389877b62d739487b2fd59277ed7f381b5e60dbaced66db3cb0b9bbe66a8b01398897aa06ceea54eba649b36af431c6f1e9c53db316f4d1516b1cb4ded1ddc7b11358e822aa48eeba6718a9feb2ef263aad5e9009758b2dced86c17f04f9db70d17a42b2aebbd340469c4331b8317c1db18ff79b49f059866e3b8966360eb0ab5a9e990133eb44058b98444d3baaadcb9b44f0ce17e83af6fa7fefbc17bccd3b5e6a8f8999b1f9f3ca6c400ae00d0b308e949caefa7e7ca6689b4d49ab6a7948932f7f5601af4dd2b42a0941d5e521304aabdfe698459ce1ef642ec85c1c968c57d000d59eeab286bd06dd50d5a1e8ba9bad062dbb8c30f03378596e908e2bc76a18041fd1fc2f4467631b4b4f8c72e586d7814ca25554b22e14eca4f3a86972e0848f5437f39be883126800e3903e6770301dd462a01a8f3c9e10b54a4ae71fd74c0165d3717d4377c3bf9af8b2b4d8a0f8ac7cf8400cc0719772774bd349fe1df5f9f9731e334f7359332d8c9be25478789077f4c4b011802bcbb4d9d5a476a0d346208272b7b92630345ec66de56a685432fc001226a25ef5194125b44ed90bd602accd900da8b1598d1c6f1d17df91655b605a389459a664bd43d1379880b0c9a29ff6f7829bd4e0f54857e810e77cb2ed03807c6439fc5b2f0d3cd662d99e2a9b6c3532b035e145c45bd3cfd03d9369292dd7ce5ea16fb037bb79ddb450b2cee5bf24cb7ee00e9240e4351f620f1f5186c25d2340bf1cbafbbdc188c590dcdd7354dc23d9e59d442c9ec0543c0544dadea6977c743c8cd9a1c66b89166ed456da15031e13adec145d6fa845d3582f610d2c962f596fb309c63f3c6e6c9e646c73afbf44dc19570f03b10a1e3bc213b5382e2b8d90eb6a703bdad42ecb7b16e942b27652e6ea566badae49d18fd431060aedf03d27196330f96da7fe64459e196c94e31b63a6f5b4c6f1b896016c07d72625bef0307e9677547ff677dfd99632185d69a196953530565e575c7431340985ac814d36aa5badd8fdfe83d0f4b2da02736dc1021673879785ed9790b643d35a960616f73a2d264dee085150194b311629b9b591cb213ee29ca584bff8a1882add2034325b25d1b6d9c05dbfbf04184abdfc03463c52addff1c96310d43e70b5a269d85b797dd862baae4c6a247579f6feb67e718bd2d77997beac65fe3d22ecb94a5aaa809071d79ee8df27b8e621d8de0f13c58ff511e919989c7ce44359f2d4c93efe231c2ceaff457e0e8c8a84a24a668fe1f4aaee72e223c98dfb495e7f45956d1f05d98797e20eef3ae59d489b5af817f4fe26c1feb94babd5518c4e061352a9541d15e7313c01bf30feeebce8f198e15b3f570c3c03fb562539f323b59a492c17deb3a041749e68e728335258f748f992082dc065041c1d409ad98fa89f496a1eb14b0e9754a83d29a49d8292bdb79e6a3537ccfd0bcb506fad4dbf6e3c2f3c3e32244d2fbdcfdb57263e68dd5296560bbeb7f38d5a97f0dc50f365a5ecb087b55266be5bd9c4e8d62c8d597a874106aa4630b10dce915a48c8992260e7bbd605bd6d7395575409839c855a06514a4eeb79b215ab38d02a9e3ab24ad8c3e74cddf08025ce9cabb76a6f3dc95c3e40fdad6491dccaa74e99e4e454f17aec6696151ebb0ce0acaf8a93f6b41790d8ebc9de6b86f5196af8f2954f00be087bd8a7f67ed9a845de8a81c1cd72be110f487ae5d4ba487a0512a941d1c2557c7a5dfcff68fb96613e05e99fb883b765c242e06e012b842ed98264ea758bf2058de2bbbd589c3d036b05b51ff8a4077ce5d51a0eb0ead070c99306781c8e0b25a0442f3d0f45b15c56b6e59f29c0634730b4d0095e4e0923ad1f81820dadfda6a2ddde9af74e9f798e1c3272262ca94b3cce0a95321175177581c39bcaae43736b48356498ab43125675a19c7419890d3e489a6de5a57e663899ec9c3b4f2bb629115b3a784e0edfe4f4deefcbb82b5c0ab120219beb7a8f757966bdaab4230c57a2dc13dc20e4e38dc524a4b35d4a630da78500edfec2302bb0ce369a80eb1e74269022b3400e88aa79637be7a1e980fcbcc23ffdbff937dd38c9cc204552ce032033d9055554352e3919f8e8050d53e0c15977d25dc6db1bb9125cc8d80e77658e3fef308a15b56e5a1d35a1dc93aa3d892c7997d7ed72428d1af45e956f89c027513b70d5f2366d5e407efc3b3b88355fd541e006f2b61445d91965308cc32e6191099ff02fdc18353d39d7ddad637ad6ae5dc45d8788475bbc52e17bea11ea509cc4c12414356b226b328a77e2d2661a7a10af5fd01a4ec5868775f8f0bb3b1c9e21cfbe5c2c55a55883832b8eb126dadb6ac500dbcfe32393d5349567365c82e31a0ba0f3a44bb6016666d5151be15c6d6149942d3ff19562b2f537993d479065d7e385ddf4034b284d2941335d37ca2b56d4f262711b9ebbba28e5ffb1e7f1c4b44e3b6dbe04086df4fadfe812554608c57ae35c83d63d69ba035f09089d24ca948c6a6c94914bf96196cf5b2404a019994e9a17ea4be3b1d3785300776c6b863a0c7d23cbca500ff1c2dfc59460a559dc506f243ba67f3b8e0ffcc6ea994022f230010367e3527d1d139489e1ce9b65c36613bc75cca868664791da4e21fa803805fb2b1959480a8a2e202b8ec994921ba2a55ebb41a2bc5468efddcc0e13299610e301a53b92f85e52cd276f1838c37987be346e997cb56c968a51efa3ef8f2a240ecd0ab6ac94b6417efb995933f7188c356a3a08215417cf588c6e1bb92d0936901aa640c884375b7cff7e2a08ba3bfad048154717a2f5ee925033fcb113a4d042f6e0cd66b99a3b031ba3fc54e260cca4f9273ec48ee8c3b935973311bfc1562a35bc6fe3bdce7c89f1f7e3a3d58028d6b3c547c4ef185f49620f135de24d73036a0e4a7a482709b63583a9d401a3979aa1bf792f1cef6740102021dc686a0abcce252909c62faab322a89ac205096836c7d99fb54be1d960f81dda34e393da70cbad0dad438b95ccc70f6e00964ab04b4e417bae120ba459f6f0f793a18d8ec3735fc703424d0882c96d374f7c421c91f88208487f68c7f14732eebb042b09405522ccd472b5ac5ec1ed6b75f60371389d3353e1f6669c6e68be247759bdd5293871b351db5028bec1f06c8c22d4b9fcce380269e3ad57ef1853ba57f4925e8143d62af3c0d2eca5ec1fc09e5a479fd550b7497336139cdcb84570fbc37de28bc4fc13d4ae5b1abe9c272fa8f4349d2dc523d8cfe6ca2d99e8159549a95e54b708f3c2668cf1d809bf41e33ad0b67d063f20851c311119b2bc8afe86556a3734f4205559ec4931f16bce4bc7000737df1da1309edac5a8cf377aa9d12b01ea3a19f342163a1303c7895520911addc13ab2d8ef431b999ecc102622448a02291d85356fee0a504693a8b702d3c9dcf13f2c14da0645b2e6d25b2ed96fb63720b74ffc2e4bbf59bd76bc1de3713e32f55e5a1506957d94e6fc421ea81d3fe0ddc26b8ca7ae819170e79eb43bcf593a6ac2e8b0ffe3a1b2833d8bf4f28e8b886626487af489e7cd317edd40beed046be755673a0c78b318e9a855099fb2e9b635393e76f818defa3f26bda75e4f69a0f94eefea86475cc3c613c6c3a8205f6954f7e4a612a4826993a7b6df3e1bbb07dbdc60821a08ec3a7ecbffe6526ddddfd453f949aab3d395a568c93d6b838ac821f041fe58df3905b15ffc624a7fea7fed0ce9e2e13bf250da6216750a79a398cb1660519b70ed1ed8b6ad7bb25b970230295b436954149cf76d696bf445a0268c63e315a80d5c77dbb0b1963091695d34dd518ad127ceabdbc87e04e5a8c3ac0ae954fc233d7dac44b38c84b33583a1789937d17b10baf8ed5d99de3c04015a87ed4bcb9584112b7a460f3f63c22c76b2b9c8c01cd0225b8d5dd355c9e8c4d3848c40b9a43e7a0b31522fedbba1c66a846ae6247d1243c2a22a7a71e9c6e9e3b5d1b8220076e53458277205fbd5a87f2e6611030bd98c896583803f7f03449eb69eb9db031f92473b69de6170a885dc2cc491a58638b014ac84cf045586e95bb7a2c8a660018aaa0c402ae67c7215ff7b2fbf96bab910393fd29277f50b849383f51acf9f13da6fe0e622d609497c8fc921e99b2609a4fbc21d3f5f73aee34f11b49196fe3c4798bde00eaf9463816fe985adb6757e6489431aebd053756a676dd941c9c2052a9a3a9d9c09aca3a8e2bba0a14e7f2ccb7854ce9746cd269f4651e1bb378127b60226c6660ecd808b70e1fdc8da5560a48409eb4241de9c1f785b239114275b1ed11b3a4cc02872edbeed31b01fdcbf30bf1a4b369444e7e8df3a8291d6d40d240ec3de0ded2e0f68945714f21c62636f30ad6def7a8183b175eb72bf268aa2d726b57cbbff80ccb1543aed913c332b15a9fe36c125aac46fa53201b5d31f2813bea476e70ceb2de17630fd8efd9739a7b46244114aedb541e9f66f562b1d82d7a54838144d29c91e810231b411fc350f797dfcaea90b95c72b15f9db8f5f3d2b1a774d8645dd133285cfe168ab09231513381379722f7a7662177a0482f46bb8703099d4aaa9b863bbdebedbf5ee24f7258f457b0a5e65b6f36350db285c298444a5c3e462b3f6ac7e97d43c8282f242510aa9fdfbd7ded86855a7ac7b9a9a05851291ffc304fa537b9785a0286e72b9ce40b3261fef002a99d22361098e897d4a1df42e4e0e4973b19421cbe802ef6e9295d0987c8c23e59c47f35463be220efc88072c97b2dfa4612cd0cc0a0f74a86d64ce0397a5f511bc261c3d81e507e8238a7944bf40a7b0fdc30dac0a5c5f0ceebb9ad6eeca077f7be59206801220a8db7583e5dd5c03010025e2bec119614816e6c30b541d33dfc2e2d3b4e9787d2b06286d4c778e7520a98a38d6484c37e44efc43eaf0415f8bace296b130d8e2ab23c5cf0a58d1fa27f7ef6e4bde3e88e1fa3a44c92962ce2c6af4c9df859fb7efe4ec21ae6ee3f3737b72c8f7f580f70fd0b10e0a8ed2c423a558eb56d62516b215ab15dcec9f730bcc99e7ea717b1152f314e7bcea3833a32e0e5fd9aea22de4e163d9c74141fdcdd37e1ec26fd5a59e96786d9f5544a31504cd55cd9582417da03761c45542f802f0288ea5ff6f6ffc4ab1e39a54df5d338bc90b53948a26cbfcb84307fb49eee873c26fdad3c09853a875cd57589b9c715d61244fdea47111d30a176b76c175181b2fb30db5f6a492e8c0a9f940144081230b0ff1b3d5f86b58cc6b95377c577fc9b0280aa20482a615c24ba434b9ccfe2ccfb0ebe06f5016ce74717119834169c614f344f1b7794fe41cb4459864ca339a80e20c5ae8ad3ce90a5af7eb278f24771f4f7f2415fdf0f580572be9b28cc5153840841dd3fbd895446d380709a07a822dc982f270d1a05430911f0cb4e0f66a1be68fbed9d4aed39f64dcd388201b0ab4a239918327c34791830818d3bf83a64422eeb326f6973d44c2e7175db450f25fad932091d5c541b2aa896bb0a6592383fb9c2064cec33245d284c2aaaf2bf9e02bff54bf6e1015de8046a14404fb662941961afc7296c06517d92db8cd87a4400d54d1ec8af3c7dc26ac907b1fcf5bae44f6010679e0036d22349c4e47b3f9229fc9b021e5de94e15d395d569dd1faa8bbf882dcb52f5db62c7ce5c5e95d1984753b3ea44f44f51ac3445fca75c09368506597db9caf5af07175031945f3852c2505f3276969b581df561f743d40d1e9b40850bec6ccfa8e5c55408c63c3e06335cdb69770b5dc6c04d074e24a387076953736bd3a6f43cb5922f59dee4f2be2e8d57f078480852482569f1932059ba0941bd7ab48afa322da58f12405929cd3a58795e3de97661363d4deb95c7686d7fa7b2f3cb491d02c792f3b01651f85c1d5fd8c0d32d63f1b7788c5c907e1c232983d5cf61b7b9c27e662ea522ae3b1afc4d82a26e4eed0da37093cbe850e415d7025c7af6f4d1ae7019e80a3ccf12e5faaa76e721de1bdb9b7ee5c26b49b03450bcb1d2f3828b3276041daf05435e964cc22b779184532da2e796bf995d75af5ad8f5fe8b34b28c24f59c668a7248d4e76408b7da8de1b189d4d16f3383ad9399dd780eb0f033ffceba89b4be58bbf65104e9d442af77a71e5554419f1ad478d199426c48bda08f6e32dbc02041e5fb31d2a1e173e6a726f9c0ef3f02d2ec3c66498e21194db0579112df9ef0d4ba8c9dee72bb52886bfa406709442606fad0238549e8fb2bbd65b3fab3e3ba737111525c96c8b76b9e08e4a41b71876f8615a4ae970d5ab0442da393cc8c2ff105d64b66ba81949b814a01273204239b1fc7e38b4f24100c6987d3e070367f57b53e6d5e7ecc4f2337558a557172e147d57ad8827a8725327043bd3c3da2b83a840c2821f625635748725da08dd7b542bdaa196ed8ac01ca4547b2dca08de07eb9b15a962c9d827322485aaf4fb4ccc471d2ee535a470914f53fc4225fd8bd2f61b6d37b9b9dd9869312334416fd63a88d9b5461a939cd7633e2a07610fb932ec82c2d22b589266e516bfcf252782602331acb6a9e583567d4ba85d89fcd45070436f2685f25bf0a72a2bdb40a6d24ce8819ffdcc8fd5081538fade3cc9d9a336a96403370d0c7fcf4a683bd57a1c3683578a077e969b7f24e4ed97faa959f70165a58c2359127e6367fb8ede7a8407de694f76479f7a1ca0690d61322725f8f6889cbdff0ee02a37d51c1ac7b839becceca0b41221d2a5fe3a625a56e896a5782ed3f85549cc7f370fc24f9698b09f122fe6c6b424055baee3f21f39e21e9a6cbe4f4bb0bf212cc9d3fbd001ab4466b9938f28e6c57d8ec56934946161732f96e477fc23039fdd8f273b4a18d1860d8f355ffa2e75cbd37ec24955e0ed31fe2dc5b6d23d5c593d844d451cbd2d9d1e76fc023ca2d915439a614e9a511929dd946dbc44b7fe18b0bcb55d6d3904d120b533d245a6e8d1bad1fff1a8e7efa26e824068d5ca5857861a410ec7e817ce4a067c9c1090a2684d9156e1ecc0a033462b0c8d66634e60cff4e386a9ef0f00b907a85cfb81b1dc579ead83ff43c29cbe56beff4fd0ecc35652ea46fed42d53b3edcb26987e9a41ecd25358fd5f0f7b33a986bd60f86bf13cf0be815046a625bd1e2bf5ff973b23c78ee16dcd4d5dd038bbca7b43fe502205492fc3e08729e7992666423b3ed1fa1109561e571ef53ffa625ec8793e95c06fbd3773f0ef96a0a1b45cecef53c9f3f7d0b889e13155489ac5fd3f32041b3fd30c25567f2b0e346aedfdd13607c7cb5d2675dac32741f9b77c0ce9d8a1275a908b750abd2dc0ccbc1997226a27b30c7f462757bfb0a557eb6ddba1f8b75d5cd3aeec9f035d7d1ca415ec7f3c23bc30d12db14928b2c58c3591384087ff6d560220842be5c8f53788e1adf384d73fefd0155b2ffff00072e5dffda9cdb1721c2d48861522d068775893e014a3b0f70b3a874060ca504c1129406f949c4cbb42306579163abd0236b4b3f469dc0ac3c29c784ac87b985bddd38ce74fc7cfb5c6da141230af298e21e4317346a201dc2ca09f252606229b2be7cc326cd4b04fe24da760a97349b0ba390c36af098e90986bad07b5a9d66c9b239931db67837af25060a2459612b557968c360370bca0bca3655cd123c08e96636b2a2417e58a52fbc750f939f2d12c32b9c2f596f2fc01a2d5bf2a832af48ac20d74e652a20ed9a8b139723089cb0d8ab5970aa55bb0225b1e00ab6cf4e5879807d2efb62bbf5b620a4a8a2a60488e2c0062851adc4447c6885ac70c5aef6b06a63f68a7d4beba0d0cdddf40607f84cf434c41cc9d40f6c6d12732046e9f729a80d48559e63e19a5696949751dcd631817927b1232c588708f02043d8effbb05a4006d35e8ccd2d04eb97273fcb2f1156ecc556b43c9fdf0cad4f05f10495fee68ab91a10c351a0c41b58e4f9b2517314add101be2ce60d767cb0f0d540bedb0fb704de49f9568c1b5cb3315a832d4e445b7762e2577077e2b2dcf1c00ea2eebb5d29f11a92779db5454e5ac9c30448129c2a10ebca5578a74ab617c4adb0e9d4519c8e1ce739c239527c147c0d6831f99902222bcae55d886258ae74b206170c30aac8ddc41a5ac863b88ba48d8550a87e26c6934bd95a8cbc9797f784237a15d82bdb98ea672afd3dadf0b186c75751ff49aa967955df0a3e1303a3dfef0118eb4a4fe88eea235807ced1b1ccc2214ace3947b933befec872d4e70b521485a65356233ed86143a8cf7ebe6d4b758c972678614c8b58cded0780e1ffc09f8292b8a6683365cd167303cdf6ed7ed40d8843e9501347bddfa64e16539ee3fde04e0c930963c687b15af8b729a0f8abdbfde78fe1c6631b5691bd43f17dc43d25660075a966ff3019336709847fdfcbc069d759df478d4a1d5f7041168e45a8dcbc8cbdd0b8096975cfebbd91416c87f9c05cfc9e05a8ad4fbba345812d97a632f66b19d7b3505a8c8e84fdb3b96c83b1e9c3e0159549e5df23398463c2c4f8ec559ca53da13514565516a42d5bc2d4fc32dd2053b53d52f74938bfdcf9263c48e8e2336bd18db5b0f5eb590800e26e666e80936b060168b28d4b6749b7eec16e8d459ffcff20677ff62d3c54e158e26d2a04e92a8848cf24553f4c04a69eb583c390301bdd2b26be516d1584fb3f6b8e5ec6d71b8e7958cf5186dd7d528f937cafd0128b70de5e54041f26e8efcb4fa992a858b9362fbef142b7facaa96cef42f2dbd7632fdf56b03a1b7d89d2bf8eed2c8ff3da9bb73762660c540dc1b58ad84cc70ca509c667757c1ee0e739f7dd961ae41baee295dbd494e25a57d03dbb77f36ede18699f09c77847445c54e0f81d79149dce09ffd1bcf93cc2ed5ead21eab4f1cd36176badfafb9ad621bdfb3eb43e101750d460573172418f08b9ffaf8fc83275f8439e67ba26809447495ea22422ce8aca78d78e80e1bab975e90300d02a585bd273a36ae23545740c0b32e6732bc6f6bbcbb6245a35955cbf9bddf9efec4fd942ef5351a309991d6858362dda677503d17403c1bb666476b77d85ca85c2450ea96a8239b3211032c2b73ad8ef34ddbfe65efa490980df398bf1462a05642fe4550173ae97f3a2251a34a5b42778036ed7fa88f6fa935eeebf233ff31d134224094b5e6352572ba721c0f07af0e0705f641dd2304b9c5f60bbe2e507e7aa7a9b4c47f1bdfa45ec980bfe299d1705b1e1ce38ac484e6a06e2b9e77f890f2b164f5f16cc300e4d089911f8716547c0d73af27223f6dd2e98db539ba95e909a19c1a2fb046681e8081af2137e64bac0f8b5f0a0f4ab42a2ffebf4c1d1099873cb44bcf1a039dc6c580be9d11a307e94acbfc58112ba04804999e6e6bdcfaa873763dc2c1f84ea49c711e5b5a271dfdb90124fa92440cfdd2991d0ce042e3170aa4fde43f1b4cb350b50fb0f8844d97ec7f39e6d04f0cedf7579d0b490a1ee2c3a6c315df93c6b3f3bbf5b37d1e4a1e4747fa9d041a03670a6508b9722bd1a873ddebea812c9abde5317483197adae3541059fd09eaed3ea5b5eda65ce8f162dcd323da4864ccfd7b447cfab8867c9a1db7485c19132dc20d6b3f56c7a5bf83f4b13a42398dbe52ea17f4faa65e7107d73dae252c5ff60b47d3c3e04649b6739d909b2dbfc554d77c2c6004084fcfec73eeb8aac98780d8e5a5e0915995a83a5df55b6385ae18b82a5250a3b4fafcd5ff6a1e19d9d301f1b9c2a10c77fdacc2986d010a0ce330fd1385ee3b0c3cfd5a558eb24331c5fbf14141e644c4c8950b740e119d76bae9a2e513405f3f2d3c0e5a4628f248d2128cdb9710b828c4887933e82642eb3476e9326462a918106a823201e667b218e3f6224fba6dc9f03aa18f8548c3c214670bad574a2b42a057b44958b4379399692c0159dc3e2389671aba9c601689fcae3dbdddc7a4e3c8f47b4d05c3146ecb8d914ec47b948df027d69d144863b102b76a3a35e7c4816a43cc72284632a86857125308a399c70f9d780b1814a85c71cadc7efb64227aff18213e140a62003ee70100cb1ef4f9aad5bf6d2c8e08c0eafff9f6c27ee51119344ebe53bd15e98694716cd78d4e161fde3dd7e637540a11524b62baf3182d91e7eef0cb4d1092be70c6c654d17c99de792ac460dff1530435c9620d3bfb5b905736db6ba1dabd68fed8beb1abfd279529c5a7a785981e053cb11a4f65758f740dfd94980a22568595b1d19ae6496f421547fb4e27b4ccbc71dbdf143f643eb504046aeb07fd8e368ef59cda4a8b6639e786f4eb93dd37b8d0eb5a924e8a2858bcf1dd2df2156ff4425c788ee46b3ed2af3aae64d5b2073dc9299504ac7b5c4ba07d126068e96a6d85938f2dce92c0e4c8994e19aac2da6dfb63fcd469dfd400bd057200df0d37645b84f54c41e9d15fe3783e617c015fe2f75d1edb4b150a14aa69bb86bbe504286fe1f1c2c0eafa55b33ba5f9e4bd9d61e13f2e0f0c4ee257662ececd2041f91e143245d8fd9973894c4b9fb5d257781d0cb04ba60b9bf1e996d9b3ceaa7a01e2c2b7e4cadc007973280a82fe1b679c126d4e2f34ced8572fb85ba2e1cb4e056db2a4ec469708f63b38e49b0211cc9507b0125e848c7f319a06ac4cb720916dde7d404c33d1d9f906b0112faac60855b2a9da4582b3742a31308a72084f697098048bfeb374b97e4be6d74ccd88ce801ed2efee7962d1cb08a0040be6e944d658a371c028d65bd7da64867aa0775b4d80348b09e124c717550a9dd3be6f52830f8297a72b887484887bc7f5afd7c7c693199e769b24f083d85d7bfaf4f7b8fdce7e83ac92c1a258b58f3b76743c12faf84dd28984ff877e62c16e538eedda88f973b7b3a9424805b1a0f1da29d58a49cf363d05e516e83608d1faa761fc46ea52760a91ba177a5279c4a2e9b8e9f8895c541ce550569b532ddb3e20fa8f0fe2c2dea87656e103e2b93fcab2cecbf0bf1cd771df987977bf541271c2c105f226614f17537705786fe0077f2ef83e6c27d769433283d0ef2d61e41abfb0fdf334b53b84853f41ca605eafcc1c3cfd8ccfa999c0da8d8ba0418b346002b0c0191046c3b9ea03275eefd5b48824bbadcf99e2e458ea1f6208b90084b7d73a2658871bf4753a6edd56375c45aa56e7324ca8fc0c7981f44e18827321eb40b46c248a42f0eb315a317a5519791cad85430696bbcdbb29137cdcb5cda758230ec2cac649256093e4c3cf2494539a878d6d868c3899eff4d5989b6bf2129fca5c880dbabf3be7b98ae1dd06782188f0093f2e29c7574140a1c002577cd99742d1aeead28a8b0713d3c65888ddcad90695cbed4ec6c2c80644527febdc5a44112070759be2ff55d6a846f8feda119ee6c6097fb2387f0db5be6d9345fe4b303a189db7d03e814700334fdab8f17ee7a095d91369f60cde4d4e3c8af3e13cb57ac6cf6dfc28ee98e0ca6d396ceff5f0c04e5f8743645da6b160fc4ced0baaad906584d1b79940e013104afaadb7091e263b4e785b12a4ce24fcedd099f8061450aed757edc3e19533ff7272739fbf036f1145fb14b7bfde50d552b75c755e75815f3b1c6509bc25ea8e76e7b3f20e7bfbf529adf36b0347ac56c23ca7cd59bcf0894a4db71416dd104cefe0799184c079e408b3716bcb38750cdddf582f3c172c7a8c2d08ce5b0338a93a9c8c7ea5fe6a5ccb28984455ad66905b511b3fa52c3bc15d06226bbd53e9b02a0629dd13e57b1a4c7908cb1e4f130f30c1a7ddbc2325437fcdf73a7694038475724c2f20b11e0eadc0d2ffe9152aacc3fad61ca8f39805e6fe9df43596787ff6d9f31654c1115fafa09e26cbab13eb8f39a752eb7db365d5bc589b0361952dcf2a6ba872c4a783a5c130dfda0a939f55a12e3df6954ee22e108c33698d987d1aea682a7a92af305c0208db6099f4b9420cc68b699b326695d3994bbb8e0b9d6547a7ef6d99ab69c85e133c45e7a08c003a3d6673a31df6feea43602c4399d37b925fcd1cc53b32981a5435e6ee5699563ac92b64fdb1dca441a98be78248e7472111b59bd2f22d7bcb3f6840b9a488c3d0816f0220d6a3a1158dc770a810ab385b94f53912cfff297dbf88a1bcde76f604e70bb39cf539fa104da3a6d4033be000ede66de5f8723f647ea6fdae86ae7d5b4c237e8d8eaef7ebe9c1c752e4f97a31f659fef08bfab7020e10a6098588ec4c9c06a986d42481e5fe08c73ee4996fb1453448542edbfbb50e504b09d1e9d4ce135ff20b9f705f7d899783cae2d1a92ce6cff48931ceab1e273a3de0a8c2121267e53c59fa3f48f326e3cbde6afc91013475330c19d7eb7b3fc62143e56c7df910dd8b82f6a8a55003a678f7ca5637d96d16147d9812068f264617a6f943069f0e7bd3f036f344b678a4c31b6891fefb1c8029e521f56c0bd839859b742debb7727f5c6eb5cb3e9222267cec8f89d5f2b412a5190942d3573a8e8f631c1a8136c797b8d2fdf87bc40788bc12f356979ff239feacb3ef16bb511f3f54d54c84fbe9ffab87c276f904437ea3a9ea70586b9aa01919e41ec83f973c44c61a46de190f0b6ef756bef4430bee2b31d5692dd87e421c2f4023f2475784f12583deac415d4cdd16563f4927a9fa51ad772f979e537a69135aec3bf9b3cb7b1af0e69474649c4eb37cd7b5a5820a7df17ccb08f63d901a6cbb402c1f5d0694cf8ed369b8b6165fc4ee95149dcbde14e5f5b0a4ed857bb6d0b47379000b80a55c5119b7c8dc2f0a731feddec58a4e8dea3b91429fa0f0347a7dd63a5f26c2dad4d963f69022499f24fd3fe802137ca5f8ba40b4f39b599937fb27618b3dadfcffafd292c8bd7521c5536f70d3e8ec233047d582b7bd206f3a1467e6110e204d3cda943c0593af2b792796aa7e7f2bdfb88cc221936401f1db8dbed3a46d97e49d06272cba1459a1713f068dea963ab615bba70a74db0db16fcf8f1d72e072a50bed6403497007b68ca748cb8d6149fea2d95d710fa247fbb04e8d4e00f29a74fb61317940d09e0172fe324be92e9c4fa0750bcc8f7750dd4623c73e7cfeff53c020f0388a1138f5b3b9d74f11e002375aa00244036ce11371445c045857fdf62fd201122b36176f77a09fdc02e252ca15e6014443f2fb5aa479b5a98bbf030feb08434fd5e4fab9a510edb46085c2240e44e84979aeb2483c999304781d0c53601dbbfb511cab86d179a3367e55b49fc264cdcaa832a4937b6de34ce4a9f623f2ba76dc847d23dac021fb09f8c0de99b7eff06936168cb65bdcd22b8fd525fa6e4d3f8198affdb6316110b9a601020a280b411a293f46c04550e537d01d12121a32945a9bdfa75b27769acd335388647d5d65c434f72adb3b90ba0b80879685c73da172e6bffbd1d9c2556ec150a9ff414795cfd7d59c1707e745a64619a649b4cfb5fa6b96214debcc5e06db8421ca86ed3e8bac476d81fbbbb4d11fff9a42ffe020f147506b636dcd0071fe14df0f2babd1ebe1f67b4a89e99d4491e50d013ab4d81eda0e73a35734d463304cf3074aa36d0dec8218f9f4687fd9254ca2f33479b7602c49264728f4ac3e9881fc9fef1e084f66f6b51b44346bfbd1c870928b1909ad751a83caec1594e6dc3c6fcd2b1810a9c276119621f573d7a731ecb7ad2369dba535f8361bf0e6c074704ba95d8849590caf110998c841c5fe41604aca777db10ba006e9e028272f8814bbcefed7571800861945caa55e7d67b6b309330a497a28c6ab5da04d3b586acc27efe838941f9bac7a88fe49c82a56e1053dc10f1c1e4868ef47ceaa1c416f5c3fe008a14d1b79d8fc2698ceab1f7eb6760ae17f650838bf156479693b45e7b5d4eeadd1074af07fadb4d3717ac2e7bca78c4fc302aaec02d97f924d07e061dd2f6c3c59cf76ccc99dbfd4fbebfd97a06f383607d9aea146f4dc4c2876c474e1a2b0a6d7b22b7ffd64a640bbe0790d2db36d983a45e6b62fb8d67a567935c395fca6b1d91c58eef6b5c6e1fba2f9cad7d67e53bcb3b3165a4d716b72762d6277f3298ad6a5cf04ae842b02f9a48ac2016dec65cff27763e54527c27003d23c98ee2048cb33df91531d7cde008adf7f042740636b002254e8a5d75a92d2adf4151edd4debf5b52befe8ee1e8f4f58c4f919e73c231dd5fc1d76e629d728ebc0fc33b4c6d0395025d5ac35b4011ffb93f085779dc3cd35653604024c992f917b6939f786a9a940af5254714cc55fbbf8ba0d7351f6d73f1635f4f2088d80289d7a5b5fac3c1426c48924d88767d99459fc624df1bc2b70cb6a2aae68e8f3502d98d98184b5cc57fafa9a07eb38638395bd9673e32218e4fdd0a1153778a0d526b176384e97010b838c6278cd6352c15fbb0194caad2f0d7a10e60434b9d031760c2828016a706393918be327a9111b86f11fd36a4018f426636523d2d21aa78ff3fda4beccf29e16023599472633343283be95f133d05cfeaa08d9d0f74d937acf7b3ff905bdba8563f7ff46bbdfeb01d5d641440fca5a29e7d022a2477ece70383844921e02c79dc160e82627087151a1c0e123b15d26b0e9599214f0e0d63d1317daaee9940dc7b2a512396941cbba011da1c4544e1e7e5bf322372a490cb1786ee26aee43929c74c683e7a04ed8c90491a326ca99a0d686af385d4a464ac34b77a8f27c3bd0d4d26feb766dfbb8196c3592287493dde3718e5fc47018b0a982e18ce105c039776b34ea27c09a5f8c9f6069c478c181fcadde39fe9afa679d90be4e0037a741caac17d5646a7f1395948eef051bdb47ddee4dcb38827988501a0c46ce909dead37763df217a7fc8d00988420298e8be0ecea5ccccde72903b7f4db11c59d30e7c5c8c4731a36279c22b501f1449150e689c16e2036f0cc19a042caeb8becd04b300316ee3847dd03bde44a21d7bfc9d563cfc92cd8466518af77c0e7904f788b0a48958fdc13aa61205eadfd9bf537809f8c50fdaf74266743b762da1d46a5524608ef7481945c3247cf68e191724fd80a07dfb7e2058028ffd87a7f03f19b88cb8c4e82b3083c46e3d9096f9a5bc03fd1626942020c1a5bf2e57acd4597f61c2d71e4bcef744cb6bd8f9489d7384fcd1b526a1edb9de18e449ccf468d23c6c60624bdde3b1fa38dd1fa7e580d747d0d4ea0a1d3bf51257fd6f10233b1a24257fa6ae71e0312cb989d977be071e0c1ff5daa228496c6c1236d89aee981c60b82b5dbea67ec9f390d86d713fb193051521ce2b283261d5e0bd8403e99f566f93ce3628e76ebd7d2fac29e12b7a27c761e204e780c457bb8102da38233fdfc7b196ebfee9ac3127eb944c5be6bcdc17ba76f07f86a898802bda377136a92258d390305e515906bcac42b99e508845e22deedba643b22f34de9d23082e4022530c2571cbd4cab42a3b7ed59b56d2298abaa0a2a3d923eeb0871137a5c1a186082ed4c403c4d7bb8145a05bb67d0f016713f32ab3a2a3fa78a0793b4fe7a7ee25b1eb180f75b3f3620f31767bc8072650df6fda98ff18ce0af82327036cdb9d87f970640fa86f7e6a050ce7b438f8b751479371f76908352872ca3f5b4f007155db86ab7bc76e43840373c057823871a5c3c55210ec3573f0eee56bd516bce8e5ee172726af7ea5f7a2c958caa8ab78cd48535528ca042ebfc64bff71c6c92decb6196cf78f45bd2b2cc1988bb49c0e7f088836eb8298421a3360806422e06c3391187838de03ecb581f9de5a5bb99ac9f5660c2bbb800acd431f100bae5699f8a76ac15b5c341cb1b9bbd85d906053ed3a39faf3f2c56dfe511ad2fce9f59f77e9ecf60e969df1430ccf1bb657376669aa8262adce7460eb8f4b1946ac124f8d503e815e86b212da3ced4d0f36b73d0c899c13fd6034213d6d5385f400df7edfd2ae436590ca162c00eb38191b3008c2f7f128a2e46a1caa0a0c178b85b6eca54d33a9c45230f428501347f4b9a048d656812bcffbeee948bab51fab56eb3a5f8df0b73dd91981f26c721ee973a702d2042fc1c2d2225d868ae4ab2288bcf37285a9ab98ef8f191a2e9bbe690099aa71bce5e036138677ec685a8a46fc2c35f332ff3c26ba9b2f469a9b6f5fe43739c937f815f5b011c725a552c868b15da9ffb8ba6b7e110ece50f8a049b3302298f4b3e3e319061b6277fdb7b4421dcc39d04f89312bf0e98c81011cccdb3fc50692752f00f1675b011c007847a4c195ca31492eb238af98d45a6e87773b24bf9f553f91ea2e4e16b2a76267efd41a84f206510b18e27462bc7abd8a3eb5aabd165ff6a182963c3b96e7433cf53c26a802563663fcbd00dc2fc9247c583eb0e2ccba148c8f54609c65fc42599355ce3b3e9ff3186a55aec2c586835d202a08cc1a1d5bfb2ebc163038172463e147fe500469152fcbccbf09c91e7e2d5206cecff42c0de230501177edf6ae446925d457b39424b8d03439ad324a09656098663236e0add50d1fa4fad8465f71105a0b1cf65135319422e1b80cf2932acdec04687ca685b5ff08dd47303e38379f7e620dd916b347a95d05c64156989eb33b7bd675eb4db0498ef2882f038d21ba81d7ddc26385e61eb187d3bbde3add692c5c0c51593f3b6136a84b565aeca4a8a9c7652b29dc8cd87c8c0185325a056f7d4eb3d40b0fb323e6b2f607ea808bbc41ba9da67388f4a83e9331ba633195f53f5ef6913853d7a0be324a1dde676ecb1757cd69cec62a1489572df48135ec10ac8add327b1e13dfff1101226d086ee5e396b2d4b47352e180b540e125c4f5f", + "0xc8926746567ca6cede12189315a54fc3e17ace1626e5257b1d4e0f2a51812d1856c1ab5c2322444a3c24568fc99bc6ca09729b8fc86baadd38df41495970072b7f3056ad71b6c9e27227261ec25697007a6bb196310786adfb99eee89c95ee8be7a6fc6be3c1813212ffc4258b30c677faffcefc7f44874feae405b2b0e5f9fb974fe6eaae63a089afa29d06630e8887f38eeb2d9f9c5099cb0704fd1e57e2497b62063d1b10606f643bad05bb827d4ff4ee636dd69af24c29902a6fe2acbd79e35c73a0089f87294e509ecfbcbf3ffa2eaedc5b3c5334d6d4c5d1eaec1058ac02ca5cee68aa33100d036d2ebe59a968f7e2fb913c2904535f2fc477a17e366d729bc12bbe3cfd94485ca6b3d2d984134b8c5c9d16e6cae5a126d6b45afd8b25af1169bca6cfd7ed26a894893a208b3c46825d375d1f9bad357d2b98e3aaab319734e0a74d9a4045d5e2ead5eb96dbfaabf6ad1f7aed7685fa30ddbffe95c17df0db7dd6f42f992a0635c1181234584a6085b99e27f225d99330f158de68dc9de247af2a706ec7be6f80f4ba8c4c8f08f0d45556f4ae5573e72fd6aeace3910c79490fe1adbc74c248fc3a8f6c361db507c753b1c52bfe25a28cd5c90627c89a24fb09b02699863ccfe17f6179bbafdefa38d6f451ed4493b3422d1f7bce6d2239090fb66f78aae8c42858d0ad5b15613d5490b0a53b582accf0c33910db2a3d6f8a9463acf30effed53a294b75f02fcea6e4d0da0b8fca0e5eca86ebe6d541762686c341747a42f934da30b7abb7555417c64437546c7cfba68d224f151ad7612582e3a7d207edc035432508cc0e72d220df9542b3e3ddc48a6cbf30a58bdb36462b82fc2bd30b80ff6c56fb8a0ac6795e02b0220f65409543c45e1de7fc9b39ffc070c585b43ee8b1f74507cc0348642049dcf8298105ce46ab95136f3b6e8f1b0edd0ccf211e5d03537ad8cd91475f984e1e1d5492d7fc37f96d44dd062fbe8565da03a49b8793b440a264dedffb92cafce62709f20f6014ba1d055c4380cfadb5cf9d34de04faf38aec15a071db070dfbc1fff65debc71a38139f2751265fd9bd35b5ec88d700f302a6703d0620e00e3231202b820e72afbaae3bdbfa90eaf49bc78b55741fcc5d258c5c9eee2c53ae8328e4d642caf070413c0c2ba27fb2f677b8243c00c263ec114d7e43c2f381fff45e586a44ba92764684502999a5e824e5c278d8a72066c10d6b2bdc742e1d7295b64ab23797e6d7abb90f24f5c5d0fca763ea6f12a1643d6d29c74a398d32bfde8b88954f5a50133cb53fa12b46f233d7f35b921284a3cc6f4625b8d5ad00ad1b8f04518c012cdeb677bf89d3cb96e5c43dc82c673dbd4dd35e2785ed1580481a67bd7b430af00699e94ba4fd9198476d540d5e9bfbe0e213635074e81d1d2bc67d08a1b26ce8fd99c5b871444ed5e4ca8ed1622c5b0ed661c74f6039cb2cce8bc977e7f896eafeb838b97207e45d6791d01c010c885fb35141e687bb2cc718ead8b263c1d4b5cf195fa967aadeb2e6e4844df30e01bc5b0fa3c33b5d0dbe35cb28acb0bd235d614764a2556319a8af4e79c95f5d9e85d920c14613a6dfe68b9eeb8068e1c2b1f9d69f8593ef7b1714cd8f49838ce9dd73aa7b2b36ed628eadfdbeb4a1e05df7e42cd653a105b2450d27ff7b2f8c8c3cccb6e1419b307597893070758faeb42fe92308546c51b6af737f8d340681986da546b903b581022c35ec862c8b83ba8ef66c934eb0d2f271a4df688b44b25182110ef38f3607621a26409d0870f84b1646531f310bc7d8ad157b21d14a8d945c7ae5776d1143f148ec08f4e53eab638b4989f878dfdd28f18fd529178c112c776b5fc969662878c26775b1541d181aefa12106bae66880950b99c388f6995dfd9e8dc46b912d6bbadf6051f389ffd3b95a20b3cb4ccb8bebce8e7b71b9e73ae22cadce1e5c991618727400674882e1da896014b54f003fa05609fc57077f6508723a85b79db44b0c00cd2a003710e409b93655936f82c9cb794c967f96667a6c0a4880806ec98e785f4bd714b931b31987703fa77bb1d25c1555e6db3c552138b8fc3ead5633474a83869bd8276a5c30f4f3b9d27dc182df9136b7ab1b21d1c297450485fb1e3a1208fecc4353552b132591738ccb1247796ba471c96410910defdfa34d35bb84f87eaed6fc21396a17a1c6ea1dd03f91cb4175e011ef9fc4674cf416d93e507a19aeaa576dd6617a7208b82344894f953d4d4459e95a1b2a5b96f8456b77e7459bddcf2ef0fca3846a537d404ed7907f259ff36405e631d35fc4552398887696d744c9b0132a643854a9911f3214b33280b2115cb6d35269b94a6ecd206e3b553eb232253f607ed5b99605e3f2c189ae098e89427cd9b172c59ef4d2b63192ed06f5ccecd60c62e15dadb5fc9cb35f7cb0e623eb41cb6521d29b44735864a8042f33ec82646f9aedb9e6bc10aaed7b47263bf4de20a9e271b64fb891e89f0a3ff8c346eaad4bf2fb6390723fdfb7a858cedb0b485de15eb24718aa55d3c728fdff52643c20957c1ae3fd1a388ca20d078ea4dbe45f186a31b37425b7c9f851df40c7118b93b80b0bc0ebc7acca65879f1fa8c170a3050e7e0a48bca546b624c51535f55538f376b4e443e4f8f121bd3f89f4c3e369e64c63c2ad450f88ac440ea70407eeb82bad5fd451744690274bd92c4eb9803d039d9023d1a2cbf9bbeb6c9ad055de563dec90eb623e6c55efd41103372b8506f06cf17d68932106f5cca5779736d74d6b6bad4054271b0832934941d4987caba50150af32831488f1542f2e5e16ee4528cb601de461d79c15da0fe9783666a01cd72e91494c3c8b30fc5d7278d3dcda422412eb70165a6dedc139c17b77be22b8cafeac0cab69e4c31a7491a7655dd6a4fc09e45517951918107cdfb63b1b7317aa42dfe0b4960fb0335d3bdd2a03099e07468054852010849f75802ee2b77a02c4cadddc2d8db1867a9d8b00e747bf8d2399db460105463adf047d12435ab1b01affaec82d4ef2c1237ebba5bd9aba2d88312d7c29f4a36d0a1ec6f5ce0f1d78bc4e4c214fe6c77e7cfe245d28d05882f5bad3497cfd60b753340c915e9dd1e56a498779252346b169469e0215227edc749da576c4f60decb77d02f378e18ccec9f16299429da2e0e1378bcd170dae8ba77fd0fab44519f0b3848d5d46b91d53e2012796c5df81c40c83c30119c07e5107034ee1a6a5fb3dcaa0853899567bd4b60730b758e0143b27d0c361885ae24d847b8cc76eb3274935d62265e739d1e225fbb0a6bd3d7e6617e44eb17cf47398b218c44116f40ac3a1abb2c442397262ea37ba1db68a1fb75c27a12bb3f8b8ac746e93589ff271e6e94552c1c61d916d8a8ec83a03156ad417ff392364f2ed5535207428ec7aefd04e77e4c4f377dc472166f636c1a49da16c516f4e979d1a776247453b5d175738c2c9d99f7f9521a7a0f6d7d67b28095e8148ce68ff5fce59c9b2c125d3ee41c92bcf983984ebd952141a20cdc8a0aa5bd17b5bafeabbf47504b0c6fa2a15788bed7285d6742e3c632824ad1f22f9505f3e17be7789d3dd87dabf71d657b91bcbfcc9fe123b1f6d43b2018937fcc84624e6ccc878d0c3d780c7a59125cfb84b103e061ab807ef2f90d341c99ddca66a0e02c9cd888158c5ac348290b3a831cd44280abb91b6462018c97fc32dc042155b8f915bb7493ea868071b605e2984a85da912af106567ccec856ec2dbb54794d649f5b38a974fe58bfeadfc5ab3abe98f7daa19be0bf11d675b6dc6137999a0446d551f8ece0baff6eb63651b8c7ded790dacce37b1ca5a3a1294627a77e0c2fb47916ca25d38cff18e5c57556ee477d3194f85819aa3e52c6d0b9da269f2b33ed3f141e990892af5767e0407752dabc931a0d702f3d7115285c255ed5cb8facd939228dbc6719bc9c27628432de99380be3b202c3735eb1836b54972091f6e89ee7c04f9640aea5472647595beefe8abf2bd6ca4fcb6f000dc5c3ed2148386a01b751c3ad08fa3c0c92589a24cd13bfb6fe09e8405be871bdfd4bce0a478667971c19eb8b74da2ba916f566d52cb4d7af9b3361f9356983f26c822ca102b14ccbb0f6edcb10246deedba6a08d948846cd52769d6cb2004d5c85f0fbcb327d36aefa0193bbbcabd013ef4e701af1e3750f1a8fe7462063f93bed6ab42f4c1f789ad2a5cc8ba85b7a5f102bc1dabb7d429f67aef1a5a87945f2efe2d5dae0cc19a686672911b94a611c1fe0c0b3691f7ce81a664d615d8a01de22065f02baf353e52a4260147307d1e09d00631514c068847e70f4e2b8da938a57e157cebc0e157dbf61cd32d089ea24093ce00e8e353ff4acecc38f10d4762e35854536ec4082851615ec4e9f892029fa8031735796ad2be22bfabfbb5fb679135cb8ed19d770bca300e0905249b92c50e1970d20a454eb8352bb47f16675b4f079bf601891ea07a0f7f0f65c3f52f4d9f414e6cc1a47ebeade918f9d206a2d9db071c07f1bafc82a640476816a5ba039ccef95318c8fd5369fe63cb31d5df8759b671f5873b0fc52d22caab58796d3fc4234acef84aa10b7be8b6ab8d2acfc48273d9e3a059631320519177ad29c2923a532222e13065ab25a347192b3ca533c5414a8bb39394783f8a2f8c97258fd8c29fbdf1a6c8b30977df93fd2d4baf7d210133f30c92a025f5441a3043e8a7f0cb8e75068590e0fdf76d744036c98c16816e15820a12a6e0824947472fa451d13cf1108394cdf762e452de5be7610b8bfa02d4bf85db110f313dc5347e771363522d8742b6f3cca7b2f40868646e5ad78b32748cb5b68eb6c1681c244e54a24feb760a777d5dbf646b9b725a6ad6c30916104eb3829af4e96118c7c5d3edf8fcee20f2551f164f02bd51f82a10f0ec640347dd4c7b7187c91242ba9fcb49418bf6d10cdfecff5fa599868d3eda5ca7ccf5f505747fdea181425309bd235a04ac1bbd3cc5a369cc5b9b86613fadfb0c83feebe340ada9f70c4319321494190e578648ba4ac9ce054ccce51d6c7e367b2e5680c690c0066870c99ec6701e4c272870fae3b0f3539bd8cab45b396daa85545d302085647a1fc4cdff966fddfeb2b44ec7905d59b93adde11c33c64e3c0afd2fa6f292d5468bd99621ee5567a92311a296a359c8dd0c953ca2e89423b12be6c38a2e5e8b305876af5e006a63b9211073bc403050343d551574f4bc76993ecadc1f261779d7639e9cc696f79d39c9df39a0e023c5e35ade386d27a15064cd46b9138ede852eff9c74a08f18139b211e1db947fcaea6313bfbec78c43f7dc4900c0502c92b95525c97daecd5319ad8a24a2e5fd5ecc7e484926213c20e9f3bb35dd9c56971ec31263af7187df8fb9cc2a1153b57f9daa76a4c13ae2970cd8e1f07e8082f24509a629f80c410444d4597eba7629596bffeb0f284d5f3c21e4b9f1c0e70147d228b2e79f5daedded52d809f6a9cd1a700b2525bffb92b13305d845e3bcce13ccd72b9201e694af725cc9d0d08cb993e94fa7bb4bc76400733c04468e7207178f012c7fc64edc90d56c8f986c806d01aebdab7d389a5c12fd1f2939847d7bf4ac45c28a8fdd2e385fd2c43bc02ea742ad419977293fcbd7885892f6b1d74771647597138e032a8c8932e2a1250146e060354f2c53e882da62247b21a17c83d6241760f921d11ed96d04359507a73f9e49ea3ff892a71f3f47d4ecd747eefb4c35e71e074d7e62ceae1326f14e93a486fd265bcd75f6df76424fedee12b1014400533773afe32ea519ffcfe2e37eb4a0f5a1c89131300d24e88ffd15d1d04435b3fd4f5fcc00131384bbe535b5e202c63e8772ab1415f4f2dd1fe87bd657c157db3d05828875f3e9be0fe9e73c7eab476df95f82164a6d69eea4dfce49d6bb13689d6b6430099b87cf16b17b66d59655b78cdf0303d7f5ee9551edb10ce5cd49045b62ddd627db7604c140c710aece59e6c8817032a7578f4271af011b9a02bf07eab5b4875c3ce4e353ed352295e2b9e3aae3fedd0be2394de167828d1403405a7112989ddb3ec864e4d4b84b595cb00122491de937327f09925ad1a5f4524d824ac6cb85f92ae95ddea4df238c4430c596075c66c48b0f270c7cb36adf9c62c18554415fb071169883b0d33806b704e25dc04a362dc17b06e66f1b65fd0e2b9062d7fd2d209d3f7b64572f1563879e4e456bd2dd52acfa904fd780ff7dc73405db32face0ad148e0ebbbebf880f541d10e31d618f736359988ef62e20f51f5b01817e77354dbbe2bd3c9de340272862ced1525bd46f35ac96880106a682f3142f8d27e3187d4cc77aa8c83accf725a1d0a740639494401a9d71a0ffbc27b18d68ff64e165450153e56d606ff9257fdb00246eb5771168f5353a7bb8b5991aa2fa2c523530b1e51a48d35d23d3b5ea11565410eff1228370e6e44fe32efc932322d7a7f392299d5485b3c0fe47da7a7ec39c10c43e4e1c20a4d752bed484af0e2dd56c737b489642ea016ddf74f4ba8517580c28e84bfaf4a2aa06c11afde3ae697891086ff94e7308f7032db6c7db83d8724f292f04761c4d4dc492370e7b6e4efddb6e9e53df93e31ada557d2c1a0aacf97845d0f9669a22a132fc55c556a85b23f27d16c755d6ee06c95dd4731f5dd2134694627712ab3a469069248b6c4b15c0d880c3ebbcbe3cc636bc4cfcd419047bd605765f550e5ca03428d8d51eca8a23a29932aceac707980f39637e7bc387d2b3d7359ccedfbba10efa98a54e2ffea42e618a1ecadbb3f62011c8e8f31a2f34560c877f52b7ba629aca21d0f500cceebe3b139a54bc3c91fded8a61f14124f0d8309971ee82c54009dfd2e400f609dd753662e37b68b975d384097cbf2b628f60f7f758caa829c5db5a02572bfebdae72763dc82b1d37cb4909d3d47b4c78cf399423193c588ee6ff5cb6f67fa16bb6fdf67468a52be20685c12b57a56b97b513addd19e9a14c96971a8fc96f99cab36d82c9281bc797f6d58a7e4461f35695fdf10bbcb475645703edcc4b8be44c84acdc08b6f3f0d68c1c689f0597105c0ead5cb3b0f40fc8ad99ebc3d62119c65a36d471e5e7aa3fe0e9009c513b7035c89172503f08fa557bb07c9e7b2e3b48a933416dd1a63d73ba683d2917a152e0db427c7a5ced0757cc9d912c010f0846f0ceee77f8755c568c22f28483fd96f18b1895e1bbe0c3c6084e716d0f4a1ef05b090c25e7a8ce3a7200ca120d2cf53b74e197840ec14c47bb722579fc79bb26db35736f72ea6ef69e6f0fa1687fecb946dd0ba559a0c98dd470bb4bacd6b657e9146d06e461691f8d7132868ca6976525bc38f7da52aaea652b91e3224427d438d80f50758a7aaeede05a11965de4a04fd5d1a409ff33c8c9b9cbd1ccdb9cd7b041ee0ae116eb7bce06a5d71d1ee69b4c92bda0c766e36584b4b0712cc06501892692170e8cff925e565927a9f96d9de94b46eafad15b969fef9a7b0521b12c000afe000597fb5c08cf37a84e93558f22838bddf27871b2f23773f18fd950f4f0d060933b88f2779d7acfba1d8d612d5b15227b27c3416b1a8c3266f1e8b5e53f9c2bb84930272103bace82a39eff760f7d39826e395f408fda2755d1d7b8a8fed76a891a1703a98098f11381f1094e06753f29aa9a1a5e15bbc7191e00730782caa5e9b42b04dfa27cdfc2c9b35e294f24abd533e8af9ff6c276a3b4b3becbb14ba480a919b347014e168277ea83d33b2c225f9c70459b7327ec390c9707ab5f384c2e70158480a3dfa3e922ea4af6367d7ec174e9ac87348cea14aed336cf9a7cda96195c17e2ca633a0988c322743c3a5669e71c5183071032f251aa63ece1381d94997dbd90ee1881ba7e6efc5e281649d62b5deb9ff75a5f563423db1af5f473c95ef681f3b5203e8f3fda850c554b7629b5619c98754032949b3ed29c90c0b86e0020e4012c8d933f31a05ff659d846f66b5129281bd25fda0f110a380d75f2fe8229e9f48617c36e231ae59aff7d7b1424db6ee3be3226235a69b17ea69f300108f764264c3c6b83f17a99282949b8f943d78a51698ad8f599a74a252de7158dc0409be42a1d2334dc4cfc7346432342362282408bdf9ce61c4fe8db611885377e0f7ac9191247c94ab9feb0e113df69cfbdfbb1b0050da276428614ac6ed3830cd655155352d2c5e1dcea4cbc913820fe8cbd0eceaeafa872f918ff395a1caf8055b0265ae58a63bbc54511ddcbebc706bd5462d41f7c6e38e99d2cdb4c0a7e62562fbee6526947d01e87d281f784217886bd223afd102a0e96c59a683a487b388be27ee22033dbdd1098f052efffa40e7eeba28c8dbb1a70259ee80f22fe33f3bde8cba70dfec54212a0d41724a7d8c51820a2a5582d4e56404e813b376940a7ce9097855bce7e3a887015bfe5ee37eb7411d2bf34eaacbdf553d483b2810bbcb913ca658a814cca9c2154938593effc92100bf011f90ce131f5bbf97681f9d8d827d91d9e69fb6c253b4f353f011db22fa1591e1d9bbe80edc6a4a0e016c1d381511dfb53b510cd4583cb79dfe1d42fd7b07de82402815f91992709012c44d152bdb064095387ff46977e494d843487e1719f843b0fcd7d05652ebfdb3b564934e1fd2858ea0807568e43fd67c84658d11a0c41ff39db3376c992a3726063c257e18e3e683ebc7f7791681d6e6ebf53c4c763c2c775eb24ed742d0ff8793d3b2427e2cfb331dcf8fa15bd66c0ebdb8c283faef688775e1a26fc233b13363ca99f35e75c9265857faa81a5f2d5e59540002617cdd5f7ed1295f71debc30fae93d4a11da4d5583e2e04bdcb193aa2dce9b0ad71a083741174e6d7e0fff62a09929a7614b50cba1382ed7bf54fdf36515a88141139c96f1cd0befd239e161da68beaa890a8b3d23e372ae2f46747d4877dd8e2d45909d5e0f1dee55844c2139897503f33021ce99b3596906754902e02a623fe0a07d05cb7f3659d7486cd69951b09340276579ce3b2c7bf9487f140cc5226850aa4d0544c2534f959640c213bb18519b31efe4225167960a1704ee25c4ba4a3cfe386b570114d8bdaf00cc1ce5917fcae0038b8c915f3ef5aebc3e2707edbe7ac81588fa69269b878a4d15e191b829319c4a7c3adbf5380acf5ec1a753ace21d4bf6c54cabc6687c5234f264a5f3f86421d43124d15bd2aeac1ba115cfb392fb5b1704a27d49a558e600efcbab14cfb4fd7029555ae824c2711afa4389af2db6e31e12ea16b9e97258e0cd0a5288c39f165846c622fcd67eb8c2fec9eff4636e61aae41bb6816bf76f53a65deb1666ef231d30fb17f6000c12d78bb456cb15dd652d5dc41c2efd6225719016ed3469e22ef72967ed372dd4855f35bb774482b21620bf390e34ba9128f985bc71e3159718571cd29b3aa4e509641681eda448beac7d2c3ed5d0af655d3663fdb6202baf15ceca93dcb276130a77ed68b85cfe91f792c30cbef5148259b131a99ee80af92c447080b0c5f74ae90f502bbc8f5b06d71c38e69a44e3d7e6b226c82fc556c4b87e3bcfd84c99957bb5feac432e4049c1b601333e1ce3c88596ffdf14ef5d6aeaf665185d2b5c8b88f8a38a779d13e14199793a04b57c76e6eca5a81afefe7c4400dfc509b2468e4d3e886ee9ef406072a8813f494de069716e45c3b329df001f3fc5f6ec139303fb5a048c0daed15987d28e8ced655723c0bd3d8276191912266f28e3d9ea87e335fcbc8bbb2e698646be309ad60ed14622fa99739d45c554d979cd42e6cb2c6596e3f0cab07f22ef88c970046d43fb0b1a22f82a85e7fd9c0bddee16f0eb4c3f29f1630f0bde1262bb57a2741f577b50df450abb327a404c6561337c14d479f4effdb0b8d0be726a60707efedd71172bda891b6ac8ca4efce12055d7372600e45d860c076867af848dada4b09c1ce3262af942701399f1314fdd32c480710066db24c2461f16e74c6b7adb41d6ddc05d23282ef900c83efcd3a645acd8161e0d46dcf68ea5ba91f4b9a1a9d508e6ca81caa6ad36221e459765d2b4ce713d76446e327a498e3e5862472c23cc32cc74855b436d0c2e963f634f4082d13cd7d0e4991ab0e8d25d5cfd7c8f03725a5a78fac41c82c07f3fb2c3b3f288a871b53d08feafdd074d0f734bd12b6f2f096adf6f2785b82792ae12c403f447bc0bad8f574bc062b1407d1338541bf684ccd0bc0f5cb4cbf78bfdddb1878db3bf49cb67492026aaadce8dfc0f2650b2bfb45c667d6c4af144af5c3e36dacd86912f9ac24e92f3da8c80fbd2fbfd029bced6e0417d17a262b3e832a2db6d5fcfda037539b5a96c9494c2fd390aa371670ccc51773f4ff3cd9044cee65503afadd9d0ec691be2d13eda648128a875ed9a2233f2193fbb45d9dc76a4f855336283ece63c35b0adfaba9919f17cbce43994632b8f9a873533214354230b2cea1d0aff58cfc919f0bf7a47fb8d117af73aba1adacc94da4c7a5d2c5711cafde69c0cf07cd1a8cd82364cf40558d361c8f31f5be98249a0c36095571e7e26e03c16bc636fd819d7b1b9615898869ddc03d539c6052958c510e68ddfeb42a1b6d2f3db3b8f95be85bdc56042f790db4a6a5b7e9d5f5389a8dec5db2b24133554e6d83d1cff9a38425aa28136cac6336653fe0b332d3fbc038b4a4310d31c42fc85f847f7263013d332dd09c19f78bc57286eae76276f494babef4f4827391d0c15bc7f9b303663b06194ab5e64b07df3e622dded0a586c5783d44d90f1ac2448cbb952a08b1ccfa0f79093e4ef7941209f3a8dde191d864b8efe0ed828797c0136fb97dd6ce5f0be7a31300176bbf490f8a7f0d5975c4b97fc6b266f653bd40bb29383ce483a44326124fbc5179e1a9babb07cfd4e0c2f9e2ef68295689ed844f68606de5b90125b9af2cf295186142406bcd1e10b669c093c04948e915a324187ffd49f245d0fed045a991a899c40556b715e681fe4d10a6f0d623067c6348d42d58c66e75a9678f6775f0487e53005ce26d8b1e04d6fd9c7eb44eb15f79dd1d663b67c2addbd2eb6c300abf6ea7c8a3a9fe29026d4088c76fe2172e8700a1747b199833835af4003d91fd3e7f3effa4c19810dce3d5100621c5c7ed267fe546de42120a126f7168c12107e4ecd15b0b6ad2a273a24ade8a756dfa5ea8fa673730b492bb86bc0c177f4ca6b84226848befd9ba8cf3f413d138bf2dcea7db2e95832c610144a2a6fdb66382dc3659e42bc31c06977c4cd3ea9c6b808b097ea2971c9f7e30f372d6946c05350ad48e2be9f474bcd1dcee8f11e788cfabd946326e55b44f84a8cbf1837a0f716c6c4eae769b1dfa033dd69795f729e47b98e714930966b77274c2cd0a5995ab8f5b33f04ae43d9c72e6318ff09bf82b3eda1bc66a09c81854df6cdaa76ad866407f927361a741742095fefe9f040954fc71d1951dbb18eff286c9fa4099555202c38047fe8e76031be0988f9992660045a4505f4572d0dc767e55428addcbb17781f18b16b523a79d0927d7ebf2c6ef5db9fee09e1c1bfd97cf4eeb627ce6c33633f049989a34a76c5ecdb4fd1b0321325d9a0ca17149a2a1f9bf9f7302b21964a7372ce3a86a613a4a9eb4d7293f13936328037eea0b54dcc6ee975f5b70a25ecd9b6490e2f9d357be7ec3af9ead06fb08171fd2cf48c8e40cd488695953e66ed5d6712a47ae00adb4c9372ef857e2f59c4913eee2ef7f40021a761a76c20cf56ce2b19345c22565a155591933d13309b3d1ff824de9d12d2357c3bb167181413874895069c812b102edf6c59181ec6042836231021e72f419d713eb2fd1d2a74a9a50cf9e55fee1a6240d7663c01cdc7f54221cb1f8e941d23c4ad998ce171ace45483fd277b951b979d8616b20a033a214c7fc0d16335f951af10cbc39ef355ced72d9940645cb619812377f6f2e5568d759d2f14f205ac071539a1dee1a9ebcaa86766fdac1215fa16f0cb5dab683a765f52ab10fb89d019d32ae7aec9984c86c89d9169672a6578e8b20a46a64ea9f142349df30e08460a79655f7790d63efc51535d6cd0805781e88f5d19039487ffedcbbff2b1ebb0cb4fd63c9665b9e91057649fb73f9da13ae342a420480d5f2a0198a1a3cc7af695e5c4a7ffe11559b987314006b7cb7b9fa2bef1259454e0b7107127a260ffc2ca8f603e88a1d8fdb3656dbfaaaa09232d5a8c0be7712d5b698b910887bbeb04ea943190ffca4c2bd106daac6ddd34599f2b67ec57b7c347cc883e512ea24c6e96f094a21a91109acba7642ebc694de3bcd67744b51a8dbe1ae1d0e14d2e12f8a9e3956d2ef60fe6b091b27e2652e50b34e644f3666720fdab30a8ea5b58555d5ac2ec5dba5cdd0fda13616a2e33091c87ebe392b27c08e8f4a86376c567c59d6db2a6d3c2ae66fa7394f0d365f006e8089c38eb3d80748318d196e074c3d5797e4bfea5fb2555ef97f9902fdd767845e9e0167d61eea97a08981257a8dc19fa504b3999c2fe5c19f4eccb07e2eee18b512cedf94a72489a355ac55e182e7aeb36d0f3ede99f610904bc577a0df7031891a534c7efafc255d0bc264f6e89925a84cb1dd252019a34d9d633b9a2c2bbcc59fe4482cf69ea4399801ed30a2d971b149e13ec575bd070732f8e893d35ec8d0c03527886ac119b41ae576b1c5c9345dc10a7d407696f7ba9fbd6c4d05574c41538492b30ea0dbe5bbefbeb0573b1b3921ba2962fc74e74a19bd6d8f4b2a8df5916fed2992f5daddb9ee3f914b28184612b4933353a1760d9a68f4686921ecdb1b893d944ddc88e27b866938838e29babdba620c2e4a6a6bf6135249406d985770c5b5c398e242bb8531286e7e93f1fe152f7c63db91493db1d859c9e41117f22d76cb0a81633724906bef7a63765fc63b55d0018b0d1d785465f6b25c4e439f4221fdb5fc44ef69affa3de2009f1617c602aa0e38ced06311c9363863d2db3b4e415170a4b2d6cc0615e86da3bdd415ddf5ce9403cb41942606ee92b3aa7f37eec16534306fb2f0202ed0f1b7631d238ccb8169814b0ea7873c8770bf955839d73f9b27a7b14bd4d3531ecd1451c10650fb9d2a3839cbbe8a8ee1b7402c4ee76d90109a545d838368a9f66cdc5313b902ee9bfcbf2fbb080cf0df72c5a59468a61ba65bfd466e78492411641437c54059eb0ef4eecd250243473bfe36681a17b04e28321aba8b2591e846f9c9d60a40046686e3ecb8108549e453eebe8c39730a65a57a0029fa8db8ab832b15a153614aea6b64780d5a8650925d1499a45c6fc4218868003d67d7906a2f729a990589c800b384f352fe44c1c76ea17525e4edee5f2eb38f7ca04baece1ab50cb5e1e445877dadad911d4f3a1fc8e2ec51356ca79e51505213cba9c9b980c25a4c7df990989744ce27b742384ced8253e518509c8b3c74726a33b8a641a2fc36007b6b3da6d52ecc33225fc0a9774a3e6a589a4352a78bd308ecad47a2afb19782302e45a8eb5c3f78c2afe629824f97b2c94e0112ad17e3427cec801c8acf17a12e67dcc6552478e562ca2abd73f138900d9cb877d31d303fc4f4d9c3b50426e82caa952ded1d19d23b78110662db77f4e14da84fe2cd31a057d1420be4ddaa986d84955e04fee15c3ba0fafc7ec114b9dff9026f408db4cfc295c4ec3d95475db80eecc5fdc72c18b0be14a0f8e963569de4481aa3ecdbd4f4a3eb4ad8160dd3af4da6816fe6a81ece1841264b92c3c89f4e4d130ff24d1607a911473a3557b73ad19c1452dd20a0058edf64c25af28210bd86cdaadd8f8497759fd82f31c298fe4a00651551eb1e3f167574b21ba0d14f1e8fb965d0c8e19a2c76a13fa65db5c1987e3b9579a07380f2604050fcafd03f542dd765c941d4b83cb99d1922d1c1e90477d10879063817a55d97be4a917ed6e7eb5b8a747d24b43336cd76b94dfedcf16cbb22f458915e0c87497a931425334bd868d7122e701305c00b08a05adb32247b2cb0bc10de34f30c893fc5431cb25d7de58a1384ba23d735e28c5ac561b17bd9adecc6b37a6bde189bd90818e60a296ee925178e19a7f455da3483db91602746d509576670e8031c643a84d5efc0f059c9a503c06fbb1a020aa12083ee47a122fcb811656eed65a13cca076fd7756c7e1b5a1ae448fb143d37c78621972da8ea80d1b8fabd05ff829e5642f4f7a658a0d37fafa65d8015f7e79a25c7f3bc1e3cfb4e40cc0319d0ce469f7bef695ab7faf3d4651442147a520490ac8486a93d4e2d0d04f8c2e7b9ae464ee6eb6609fe94cd223b80b3acdeb66e5008ec21cf5c165a4c92515b0c3cd690bf2c94d6539b8272c65afd2ca015ba8b32856a12c548e78bf2bb5dbf9a7b30bf4422a71e27735adc891a2b4c2f62e0824f97c53b95f9233c646971c09398369c42e98b442dac15d9c632bd823e207df7d405a2b0589a1fe94e0c2e761f275072f9df8831ae6a03f0d48240b509ecacdc49bd71bea881e1422b0465bbe2f30df40888b8242a5d52e97e58ade0429111cecff560148d91fa26fe4d38a93afb964ac7dbaeb55250f9cf28e326c69252b44e033e9b05339a43b1e9c18de86170602f61d37cf75f5a48c56d04630eb58aece4852d4479b2dd78bb36ceaefbd6e0d4b249e6942b3aca3edf6e79da02a2d97df464d6a75e97b657d75de40386aa1746cdc492fe1eb63e98b3048db6be331f916df672fb9eeafe147ceeeff0a1100c696a1fde83735355243ec19628a8f963fa72fb750cfbc9738158a8c92b5d7bf396844aad9f02cc6f436a3b4178b7fb3fdc20da96ac5adc73531e31d55c58a760e976dd7d4dea4b96e241628f6c545814fc4277d9f71451618f53dfbcfc02ea2715e951d3d3f2b3941243ab86e5e9d20caaf53c7fd45f91f36e1a9f0c1dda721f86fa7aa52cde0713d69155a9c3f6950fcf443ed36ba8fc1b296b9bffa7d6dbaa66b09bfd180e71401d14638467c02f87e8e76ada5c5f5a041a3079b057d4d938a20b832e11176d68257bb32b2bcd0a395e3d494a423fea2fb50caaea398fab9e117b6ed509c45f0aebfa45b47a412fe5e0d2587345c7b7243ec2c94167e809cd32c146d28fc9fa013031d780059cf5c95611f3ef3ca8a00ba31c1dd3a46bf8fb932734485bdcea79d5a0284ae962532df64b5c4611eb4fe42d63f8e726abf4cf7ebfb97c9b90bc964f27f2f0bf88f9baf86d9f97a09b665195bfba15f7c066f63d370a01abc5d50889a675a9b5f41d4b648e1109a2176eef39fdc806e2a14f63f7a2b2d2fc7fc8a1b07f99c61aa6fc1e2b36d11b1228f9a39e57c8e305bd6c7c27c8d1f6ed6f2462271f3c060163e67ef3ca058cf13662b4630f59e8669322a2e4fabed5c34af5b9daad645ee06fc70877a4414f80584a8be43477a9bcbb84b7965bd1e5ec02b22a7f708ddd41098aaf44e81c948672fddf59dd85daeae37b9887732d2bfbd14f79f3e2fee46787a88606796ce6f24e5d8602f5479ad5128eaf6e3133a1a061dbb6a616514a18a759fa43225d072125f6e1bbb6b73a028e2b56c73cb1cfeb84955b9d12c9dfc7d1d2aabb1864dc55a4ab47c135ee2e21216d689fe3f50f3c2892c69b2d70b92c0a4875fc3b91aafe3ad86bba4dbd32e2e536d5db8ac45c7d55eafef17ef96ebe14cb82ece87de02ef4503a3ffde4877103e7f6e1f8d7c2bacb6cdd63993a7e77f97e317e997952469c70e575653b49272b27454d7750ca4b2547d49a71c5f8be1a5d34ce64a0d60a212cf281def80b5953e97dfecb81dc66f5538b0d0550ea529a17462e1646c8f6cda307b417d8abced469ad146426dc645667a5d787cbc3e4b985a1133bba811d72961b7a8eba147daa70f26452fce576745444adcdaa3e029fc3b86ec570d1103805551e9d90aa478daf0ead042a5d919ff9de2aa30b2a38fc570423cc6bb19caee43dc6f0ffe86d87817a95e7d6dd69e260ce214540c14e35b798c5e85260031c6252f823429981d7dc75ca5ce32d25efa20408e6b87e3c6867670fbf19417e1db3c99d2652dcc57be21fe0b0d17692ffce92c10e12e6c0d10ae501450a2b8216b8a2695be1d8f1cfdb0990f1dd0bdce077c1deeb7bf02aa3e0c06e301c0170cdf56f448c102bf2a49def823792938ee5a72e88f3e2e198afe9d904c62b06bf395ac95a79b5a76a3a87cdad0187d93665369f2a22d2031805c1358c92b0b643bd2da876c9e94a6a1b03ebb0d0c3f3d6fe1826a9426719eaaf845fce4cebcef169af5b6e6e595823a2e3c2e1efe7503f3cce196662baf190035adb5b79d8253e93c5212861c36b9301673c5703937135cf63131331a9c22ec30e845fb3b739043920d31d774c37fe4b0428a42b4354771ac1dd3ec6eaf3225163a789d55741ab8cb85069f747d6c4a5fee0509242fc61e0ad872318e94bf26d60732f237c1defedfdea608ef1921f3641edae4137af1431096ef3fa4a80df93a5b13e78b6c9a232b7d1b179840c56dda5fe99e8082a3e0d810ae62b37ed2301963a7da19d580b8dc9047cdef0d518f4aa10ff28a42be3bd2054561c55ca75084f224f9313732473284dcbddf92a76884b86a2367cd09dd69b339cb53be4bf621fdbe400e1c027a498d5ef5495381f5dadc322bcfc96274f062cc2de3d2b77d1b1f858f45e38db78a213970f4c826ce622923f0e2ef3808c9d9d4867dfbfe03b916d45c3141a32a4a7de38eb0e0fa65bd207257908d5d0527e7ae86304f02f463445600fabc7670421f153a5a79d5a0a8245a2b5303220ab8dc3673f419f386aa2f94a8d7322a67f94a0aa94ee92dc9d8fe311a5b49c686970dd6bd6857a5e2e0011563f851a3d6f485d8fb467815319a5a1550ec68378dd3539f9ea33cb2bf27080fd8651cb2ede11cd31b17e3010857481d6d1dfc1d6a9b8c7b46eaaf6ac1f337a89b376c87cd779dff93addb672f65bb28daebb93ce1e919667a87cb99e9aba4c636596d7b9dea5d9a53d58425186f0d35befde31e271e5fb9a91e5d17d2980871492d1d24e139f1aa8ca6f7bcf2617946164fd416f27f468bd1c9692a962942bf6861d0bb0a82b5a82048c05ebc0aa0e0b1757a8c3c1cbd19bf08a6bb9586d45a9a58aed783be482f4d9f60c4f272050f161ed69b92c134478308fd577c85648f8fac336ea6160ec38acfccdaf89c91fd88e17e030524202729120e0336553deb0168af2d60e5ada5cff8ec3c76770f21c89b1b631b5a7a9a0100aad9bba3cb6fd3c6c4227a2890baa8761d7e3bbeb1ef2af5ecc95ff540fc15715a84e2922252d47aebaebee9677bdafeaf447506892934ec42955df2f3dd9312d779948c784b50aeefce7781a5fc7b626834386311b1d3c7029f2d9d18d443bf901122eaa779c53f6fb1ff460102be6000a9afe6a4f3da0126bce950b7525d652766916daccf66fc619d5d61f622d0eea34079c302e265673c8ba1a9df99499bf40718bf2b164cf18a2829ef42ff95947236f7f8d0783ae3e592aa5920b2278c807f287ce87b714506be2daa6b831e02028da34416d9602457b065540f79236d0ca0bde84fb6e870c6748880353d0fcedb08ae89bff07599dcd5d369c5bdf1fc08aacdfeedb1dd0f0d363a5a2dc07561fafa6eff1cb37a07511994bf616d03a79c3d0f6bf4d25002f3336867221ab1714fdb783e61e12159a81225cd81cf41c4221d7a01bbc5a803e2afc4e0a657650d40b352b32763de21668a83a2cdd2651ba9bf2d573cdf7d671c11da189118ab2d24582515e92e34b6257880496d693c3374b3a77a950d4133324b321a7e34edf0c975e53d87c20da9135168038df5694179d073368758a05e8e9494d34d6f2621ef68c428c52b18f472a6d5fde0c57e80e33ac0e5faf1ca9eea6cd3009f3d716bcbe9f1eacda0670f1614c9da1aa26e8091357fa577d6f6c2d7f3e4935d991bbb8586f831a9a8e6c2ea7e60117567bd9494c40098acfdc952388f3f5f32e6b07ebaed3e32cad3518a6ba3c7bd2db5f2dbb51f2e04ec1a89d1c4e1b4270ce6ab39fa0878f78404c2fa2bf43bf004a9267cecf4d054aced2dc3871145119fbdc2a94be70bb88f4707b74fc83decbfabb998ea7a905f0822c752615ea48fe208fff2a477c323883c562612da4812a64d893590538ee63bc1c34385086da08fff13ba731341a56d0e0a4f4015ae5f083334b4763ecdfa2a320caafc86371aa7a9a4d018d90f3525fc7cedbcb56889b5103fd8659bcbc0dac90abf200e1349ec236c1b68d653acf670391dfab508b882b82c47ddbcfb1bf6eb050c216618e666f479a62a03657c0dad05b1858d0cd4c935db49900a04f14abb6d0c831111b5df6ef46f9d0bdf4ffafd8ba47a3f4423e6f9b72ce5f3f0014a5aff5c9ec36cb86729134ef1eaef603187a1e80cb917b1bb189dfc76b2c2e28cbbdf861d27fff8d0804379c955ef3f8a9a6d29fe7fca9c2c95698692dc00284902107880f43f54322da9afbff4885cc1a0f3132cb116f2a4bda66fbcc73dbce072ddc49a5807a169e66c9be06e03e3f791c10e024fb9218f98ccf62abbb33c54f32ee013ab00c092188b212c446e662ffec44f03e0c988de60f76946f26558c91bd292e6744dda92a814831778c05fd2a588b7435df7b6861220ab316f6f700ad7291ce4c612268fc813c70b0c32c12ba25ce0ee70044d01072a293b9d69230693e09030e0ea0574dc86b7e4495abcec1d2b5ebf041d5ecba1578d6cc314014f01803ec224753d716e23d872dedc60a89dfb418920df37e60cf8fcff46ac5e9a671015e4637e427933d321fbc3afe856d86692b218315656056037e1bd90274180215ab86e7b67c31f1dfab6fc435ed41f7d90b30c3f11a6b77f0836d13191c4eade32affe4fb94a8becd1501d1bc86259e14e99b5394562aca780d5ef61cc432c12e513ec9bef4d6668136ba7932c23861a578784b0cc9bc44e22c7d07d29064034097eb408bccf7dcc8a1a34f68f9fdb5dd73211a1276646ebbeccc511a8f6b7f0496151511a18d07642676e0d86446c531963d895125df9300cd5dde695216dbcb77f5efeff32f19adeceddd20fe05f97d0794a6e221c5346138bd7a1b439c061296f9010f06d7f4de1bf80fa4429bcf925e429aab2c5b3c27bc7e35d58166aa49c1d7b1384dba7d9e31f3767b835bdbe42ab3952957db2875c1838ed142fdc5e0c49a852f1d4ba92bec7fcd19d02be6185e73bd8fced79c7ac4071a9da2531bbbb06fe2aee74d093cc04f42d76efb09c7746408809c134caa7b7c5fdd639ad69883c75b220187d1ff51640936f4128b6138942653d2c8a447627081508d1cef66f2720306de59591e8b1afbab4a0ee57e506198bda632a5138ee795536f7eea216d7801e104105150b7e37549f972f701826b36fd91d6b5f1b9f6d94f1d9715dc8ae2fb26c58af8fdb9b3cc21f1730df96e8a79db51af4a87f81b92b434a87c51ee5d11ede9866764117af03b4f496f3eb5d14c2c8997b00510efa5a01407b5231076014a735f07a1077f4d6f66645f7c22aca274ddf920b9f76a49e13549605f773bc2e50a618463d34a25f278abf4e7c09cef969b782393119e9e682458e474bde99516326d8afb23b08d908df24ed824826e7dced37094b1166d8e37586d3d9cfb12a77348727736b8b1f21cab81ec248f901eed23f7015a6a980846aa0d10f224b54eb13233eb61ad01aac12fbebd9fffbf35bbbd4742ad78428ca4f1c83128610d28a4ba284fe91b45291645097767730e2d782fa4c90d82d2e57700922a6ff36e287265930b88b1b3948d03af77d4cf4997903ab94098e3211e4c186d6e164f45ce9346e37cdba86f2de4a22af9b325fe14da0126d00153b1a325893e387e2451c8fc75ed7bf4281a7462aad88136df104c2bedc967a3b9c4821ef6e6ddb770626687893b7483cdaa89faca86fa75892fc384690d97402ba6fbe638a7bd777559252a0041a2a35aff07e7181d2ccdfdec18725fc49bc213aae11370818bd0b4d6862e0eecbe5ac46ca0dfd4b696304c8b16fccb341dc8406a99012cdae08ad08ebf99997c84797baaa73375da59d5d81136fb09b1900c81f345b3c200e01aefb10337521c043df728431eb724bd194bf1e69cb85f9b7c03f53d425dcaa3cb1971f97dc70f477df6f1ff54b6cfa74e6461bb819de4e68f34bbcbcdf2e0aac2d43a50680201ec4e96440f26a92a0a5a5c973351c67bccb1b9845af9fea72f2ee9f4b01d2854bc7c1a2a8fec070212db616d6a459069557a7f8e9c24066481894213c328ac5ebc320d23885a93dae291498bab8d9a033833aa54c21bfedb0ec12f4104323f8775d327ec0e3e5d292234b21ed97a907c2ea2aebe693c0c269be30328c7c5c5e6cdf186f44ee1a367995fd0df1645af4400601b0496508adea6d0a6c8fa9b8a5834167d4c5214db165a961b05ac98115e3b500c41c77011b3b3d907d0d06ff3c66e9a83fd4876d7bed32bf0f78f0382b0d359704c61839d21a2c04b5f0c0bbb83f3ed66e746bc8f069bdf5f6e2ad9c338d1dee4ee2fde32f60217e492fbdbc47ec7ee3e625c7945b2adbf552d6c54da7da046042faae54f9ad9c6b2188cb9437b0ef335e11c3684ce6c045e1606ef1c571e5fad21cf287bce22d0ae9a18b1c89ab601ef7a9b1c082f29e7d2ecf29b0f29bf600ac49f49ac0e379ee788680ed947b42724a4bb87c65fa17cce4e60bb92037cd6962d56f4f86a5267f8cb4a9e8bfbcfaf0419eb8610b40ab746acd54bc4f4ea05e7731a78cd893a278c8411faf3f5eeecbc2ce1e96d3a4e64ad0b30d6f189554bf2ac2cedb6cbb5d6a11c7c429eff9c32c28dcef298efcba3710a2fc0a4918829e1dac6bea1357b5383211240233a2b4b08d8ed288346d5bb99bfbd5ca91b5ffc1c4c3400c7aa2849ad2cfe528eed75de8e9dad40832dda6623a970b71412ca024ab089eb77714089abdbc2b4f869a6bd7f8bf5e623cb238583884fac411d9b47584564a04f262821978f5446ef8c39d78f6e51a31bc62e4d4e4d6810c046f9a970f36ca334bf2dc4b2781d240fd222036298b9c75c59b8da360163e964d3f0c1fc9f7792463924f37c73c77c43d05e9723c873112a0fd04a8bc25be3354e23ada6d82ccde27abf538b1a79bbe9723d6016b6f9e52e0b0cf5868c207b9ba53ab454d7f030bb63a197e724aa33472228cab79257a5f0f56863cf0f1aa7f7dd3b3136ccee07a0947e68ef2b12ef12118b1ad815b7dcae311c6730cf974e51e1e04ab766c249d3da52bbee938aa055ecbf6388bd661070ab8842dffb58ccae3cd06a8833425095e38c8baa7197742c49b8df0f779dcee7c56f7314378631420f71157a62776f8c60966022a8271c16d46056dbd65d43c6ea320588aaf6e2c93514d3c512455ca15dd2e6982a4735c93f854bd6fb13810bf0f8b0f0c0c107fd480ec8d8837937fa92138978dfdba314262c0e01b8ebd6e0880a8d923ea6afecf4ddcb5e4f1c13fb3637e88f94bc22520bb934bf2d858bf33eecfcb3f23279e52e349d3646ab4d2d69e6a0c9cf1375e40eb3c66c1688d4fa375d70f1f9e4ad9a65f7b3911d9cd285b14064519b935c8074a1c0e40a073ceea8bd7616038642c414d49ed6df32ad3ea86332bda39c49221a58313280ff5d01768ba9560e33b977cd4282bbd746e88e4fd7e0b535401ae8381bebb202ce04d8adad80f690e1d2067b81ee0117cdca23b7257049a80f65483c8aa3e797150215d170c492eb899509e70233132aa7b9fe806d0894de9487ff9525d47b366668d5e354a509ec155b43bf278f2492926a1e9ae58e2ca8c726e77048a79dd6072b498631948ff5b035dd1f932306d08d0edd26238aab4de20258b68ebe8bd03841f6a17e4e45dac3a6176e8baa8ea94cb6fef47f552c9a3aaea1304b29ccccdc73a2eb57eee4bfe3f58e385684d6e9b7f35f16a419d09024cc8a6cc1712fe383bd57575fdc5ee1f1ddf9e3961c6f3bad6f031f074222ffffc0f037890ba5d3a07a3cf884fda5dc1ab183a8dcfed8833aa7683db18ce72e743d29695b37a782a40be20bcf23251f14f289d092d51e0da8d4290d1875fa3565a6713a4e9299760e1218d1f79e71f112bb863c1c8b5b320aef2cb7434ea8bdd58eb11951915c90a9a2df07188a70eda8075491aed8ff64ce4c8f33fb755aa7de2bbc770107ebe0c6825e5527133ee4de191a6a7078ad861c02a1f0060dd3575f6fcca0b211873ef0cb15f7d7ae109ad6b3ffc27fe04984b0b236050a99275152415e700868da82b205fd48c821b66cb273a91f76b9024482fdff3b896d6669d5930016164f93059e11df10ea9de4e5f043f1e8adb7691b007330354b8e2b352ecbc0ccbe96c090df4c1e5e3453c3623828e8abd2f2e588ed412f3194941fa5245ed0fdee46c4470de813c2f94dae2e4746db81759e96aa6711945379f5361d7d33b38376370c4d97a7b425b1c73eedb8ca56141230817e47b04080ef0cc80e482dffe6d5466c6f48b2e00f1165394e18b0304505fa2b74dc336d8c43b3297a0f5595dc0ed2d3c3e4affc146b8dccf6323d8ddb0ef0338ed423670850e6210ca3aed11618e1cf7e210b630479305cb2d797afac642276656db2cc9cca70b5c087d20f499307aa24847fef9d207d59c5f3ac14e8e994315b53768cb6e023114117340593408038ecb43e8087fffed572ff58ae5d50f3d108d98dc8e2f2aac73dbf7da88d9ca6a487b2b684eb111fc684d2b381ce3bb2fdc95ba9d2b1446a61c5c4042415d43d109e0c1d7195e86484506302eef8f63e84a5cb3661acdc0212f83990e4c243d52ee12b36f01e8942c697b6e565636356add93681425dc026faf76769b2219897a00b321d25ae4aa94a68d259db1faaa6df6413a2be75744b83c43dc87a2e0d9c81381298443c67c82c352007445473fdbdc2c934fde6e1677177de535d24079336fac966c39b2208d68303351c78ae1528e3856cc0a0c67fd778b2d4cb5eb64a1471a495743fc795d5ff6ee2cfa8b2aa5619b8a10203febed34987038312035710a329a75a912ca3021920c025be4275b79143c2b454a0fbeb95d92a801d34bf277f8a2da3dd75158b535cd56dd73362f068e3f566577c53d4d4d8b0ebd512fe98d836ffe34a98cbbdf0b6cabb7dfcb8e59d56f691017cf08a8c77022e9919f0f4211043e8ea1b4529fd3070b406e3f1cc8520162eb4a6513db61ea5f1f9ee9910c4b97590cc4edaafcfc1b83d8d19a2f5cebbee5b07d79278670eb8541d3388f42808cf3bd26ac6628215aa4ebb43b5258765db7c1aa1f5e5e537515bedf299d40e187151652a7bae9ef3504f91897c48970964245d716a9043b7cd8e4b6af4465056eab945bf3f25cecdebbb1dabff76ad76515da5ece4a2c63c5594bea6e82db453f05ff7ca6e90193b4e724ed691116569a61d6f5b85a11fbba66411b104635b78656282ac8921ac37a28fc1d046e072ee27c188338443f36bf935576aef5d5cb83384ae724735985b524c8742a1bb085a2626733f048a73f7db6e96a73e82ce94c27ed610825e0899c045d7f235dd806322f6368d4f90609146cd710a5ebbf79e801618ecdd68df707f53e1d5329d2f682a60565e2c09e30bc9324eee8c00546c18cc5cbaac69d6691a91e9c8da97b32e4adb2d903563877b7cec70e419a101eeaf0a2501ecd9520e5d36537febd11b843cfd8b1444e7d80ed057da055a3081e5c391262e5d484ffe8afd34ce477d2a848b921c52b899dd796e2a984f1767617bad6751777579186ef7729d8c29e6fecadbd324eb9bf4572bc54528a34a55de92a1dc2ac91ead70da7efe607be2c51e08152fd4848fde52b1f101d42e23427d18bc555a587b1991bd6da16fdcad0a7bc52919f1a522148f34f0b689e601c5cfe926a6241a0e6ba443f822b08066d4f99dabad424de6076a45e016dd16dc92ff3790ce5070d56912e3834ebf4fb99813c71adf52639c1f1c88af2751b519dda7b6e902e67ace4028c98c16c37f31f581d6572898e6aa038b8ce9f217b4e6bc446583efcad0f05f42fa7ff230c4a7d1f4460b16519c02c9dd2f211b87171fc7e67784120df0043068f9446fedcce6779f2283a5f6bb2e86bd013138f4d578d904e072aba2113bba64ae3f48e7d90424f3d617f8a79572e625f2cb37eac7d4f0e003d6effcf9e9e6c9fd8e94b1004aa940264150ced91a774883fc56528bee606931ee39366e8b3c7d0af0cdaa686ecd9e4003779df2ed4e5973660be5f0cebbc43034772d617d3feebd4c469ef308cae36a443c8922d89ac81625e42cc3f6ab1a202b964fb136c7e7cdc7f2381abc1d3ff6a3ad1067f6c2afcd5e09f19af657eaa643e0d394cff760b472ea49932f43e86be445e8ea57a32cb7ac93deea64e81c6bb3d7e80f8a3cb8460c7895d4045ec04562accc5be835ff5d93e105852915514880363405e7f50dbb4c20fee6406817ae8db3a8daca9badd0b2c7d4f7f081f6a2240b80137535986a49dbbe5ab3ebeb96be74de843e5b17b2ac25002c685a4eb348914b36bf097b29c58190e8f27c32579077de5a2825e2bedf2c1d8fd4c3a3836d480e4f5bb4a4058fa8760deb01fc45393f4ee10a01bd0caf5866697957c7b33fee075de2fbbe8570a16a435fbb68e160a062717b26c431cc4f9b9660edaeab448ec79ff580c2571166e3a90e0712fc58e28b2d000344a3e9f4cbba558ee79afd6b54f655859b0ec30d3ed4b69c18f54658910cd26398a9f8ace8d7a86accf452fc534e9e523bf2e6b2dd27354f1e543792ce94093ff39fccb3f251aa159c691c0bed1e5c912464c62268b7c944a2a0ad99ce8ab0bed84c66e3681b3265700cf599c83b46100ea41b25589b3d0051e6f362d958c26c0dddfc19240ac85bd5b06ae7563f81f5973ba7c7d1083e30d4ee267c83a35cf56b954d8037f5ba4c64ec9d7d84e9a08cade73e4d618555a92bb05e5515057c5c46bc10a9c2e5c5b0877a3d0b272bf373f655b946e5d4ff96914ed5096f8641dba216472755fc4f67ee5a7fac71af25832156a3991295b3645a505e8cb807abe3930a56f66270bb667f1e698bcc72a2e49d7240548b7ebbcb06f3614a3fe1be39f340c24c61b2b50eb9ba853adcd650d44f8632ce530beeae70d8bdfe66fb59df8be2df9408f9b6c98cefeb757fdf7603c92af67a0a75e52774ea776adfd754fa6801a18bd050f27aefea1b3d219e324336f0f744391953aafb154ab1845d13058393ef04e90819236ff111dd71c016bef3ea693e69e011ee632b675a6c7abcc50dc69b63d030630f10ba42c988bfbdb2c3ad10bbdfe092c8b07126e11e5f984fca7f9df1738ed7c0d577efc2b5eaa2d1a8dcea3f15a05c6083eac53c1006309d829a5a8d7cd5661b5a3800e843ba4ae27231e299327ea047766e088cbb44ce5a6688c8e1719f7c067b7c0c5f50b80c025aee9ef90111d2f1eaf839183348cf2f9ae82d65636e2ed22ac90e95224865ab302c248c7a0fa47c91e9c9a9b40dee005b06c064e7078325f6dfc28928b5584fc23e9101c5f897fe8d6a4f1d44e30b4c900c56a536c244bd9e94a90071d50ddc8983121ab165abb8387ea8640c7b743851fff90cfce77e92cc456172d897615dae334df02f9fb19fd7e06710f79cebb7f838eccc149572f3f8c8113fb76bb739a3944ad70c19265a3ff216cf3a88d1b1e6fccb55447533879cb9bc2d047bb4f1bcdff765d240da314c576550f5b2bb6497ed4a682a2fe8fd26d5bc4ec3f3499634ef225ba1d328970e374ae77ba2fb5262bb53eca1f11b5ab51e19c751591510e74e72c7cf03b025b6a111d43c0b2911ac3fee0f297679e78085e321228560c39aaf5012ae9ffacce7504ec2a7cf49d2286d034e10680343b121d5312e34776c2405c9d7735b25bbf96288abba0cc7a7aea00a47bf0e3d3cd1d1d30270cafcad8b268fbf2622d948cbdc0081535a0a0923ee3e09ecd0fcbfd17e3dbab00365cd8e18e9fc05645134410259c3b8ec6dc56237a5b2273cae2751365cd7d2378107a5dc10c68d01545b4563a21f8f188ccc4989bcbeca48bcf7853c16365fd82df5113e04db0c96cce4ee6229648853265d296a8ac184785c06b03f55c0ed236599dffc46d8c456905db37cb9b6068f86ea46cffbe28df1ed53065ed5d90abaa1e62b90fff17602773f8904ff73922dc0215603d834c5737a251801d6d871e7664dcf35197a3b1da58716bbb14b5bd0c128a47b9c2b4354db1f99b3979bc4809753d4fa84ed15608265d844e81493ab5e11b185e07f8b9c1fec00dd9d15dcc092dba121c42c12faa0413bd466f463299860ba231208792c779462786a9c7c90180e9a963134e28e54cec372935a3d85a6d89f560a1311c32889a4c3399dc198cf272ffb868599ba40dd75aa8cd5fb0c7d6cb29a161ba5d4682797d231eee4a8f1d0d0f86682823dd89b8a18f54759f1355758010fb7b31e33556db13163522072fcc489941d06871b89f6a918d563f7c504b1f894e1d4fd26034f6da48daa35269c09f6ca5b2c4b3c4c7256e5f008d68843cda83fe5527d83a53eac1da8ee3faa1e45dcb480ac2478b6a93af539a5abb81b7c73ef0c2c324e9a79892d9b41f6dc05c17cc6387d7b62063f91d17a724b9295199d8d2ca1c1c0c2884b5b517e930450457a534fce6634ba07a28fdc42c9435bbf2769192970832e41dc1c13459b9c14cde5c7c1956a90467fab47cfefb6bb00a395be0019e2e61f2898bb713990e596c92b2ff3ad2d5fb64352faeaaae4f7a4e94feb8d782e49028272733af3a3347dc70f10844116c1393fa39d1ddab9cc6751debd2ce23c62ca7633133ed265759272582e28b2182e3e7ad18c769aae59c86720d2fd2fbd79733a8829d2722a071081a3460da1a5d34da7ec2956e256858242ba791419771a462649db944298e03d91f335674426e86b3fc93e77aa2f82966e7dfff459c131d938531b35f29c89a4f02891d38f4a68ab2f2be8b3c6b3893fdf22f4536d9e13db8e2a81b01d46b538ea7db13cae2b0a9fdb5ebf1c09cd9edacb684710b0b5636f466f864e791d1608192d119d180f87c654ffab245aeb0e40d720c57e54de4ad0205e1685fd613868de2271343a59f51f72a750699d154f6a7f70b0e9f69b63973bd62e22c558f9f8e2a0e6cc1bc5ead5f37124c0acf1af85665fe71736c57e7b34163f202ddff1926b9cd8f051a13c51c9f9286ea3e4891011384a0b14525b9ebfd709d8cd8d376592c1b6f5d37390381856cda9c4277bc9f31537c8152a222a5931a4b05b8ceca806ab20038fbd9878571ed12371f454a91d4712eb80e4d8c480f8a4761c51840855a06bbc15182a36c50ef1db25b905e445f7ea0bc5b78d26662f243062569956ff5de1e91adb45e343acd8caa44bdef2b91b0027c0fbbc6d3ece4d113050d9b468bb92a6341e4f2d8610015b1f7b14906aa8a476ebdf1ac901ed4eb3b3d2db83d55a0e3e704724f67dbb0142b587d8c7360e7a5aaeb79bd867cdf6b2be1d96433aff7d49ed65396df219105c38fe62cdca42e190c2642a611928494828711af7f927088c34c069ee7868e0b69fc746fa76a00e165a186065a99f7875d4730b8122ce9124a072a724df63b6de3addaf2c1f19100c86096f37fe4b5cf6caef037e3a78586eb94b5d059b75f13efd40d25744a4fbdd30ec97695515bd69d316ff4ac8bb47d423df5acf215b80df0c5c7ca880d102420fde10a6953e36d53da6e4dff3a2395f741aaab8d1dde0c3271927ac3825383aefb7821205945482e3274b49b7ee0effd687ba9f2cf28e7b8720720a7af85ee6efaa59fa19ecb8065af292f24290cb0dfe19033ce819618a11b667b8c0844bdd4a6185dd0af9a0faf23e7d719337c801ad8a50e14470d3d101730a108bef5097b77f9a795289f57b8ef23592be8b00e8c4412ae3199b697b58c0e77a3e0d032d9d76dbebb7b7e9c2efd1178d3ff4a89eecf4fbf10a1d58edae2db39ded4925b07665d5798ca368557c19d8947bbf72865d844a0e9ce3a2b038250f889d1c7ec9274221b8717d19f39ca95f5b56270a418ec30e3e5a9629c1e3c7b176e627a1063422425345de8da5498cabad4bbbbb9e34a6ecf920161b34739e0ce3e298935ad9af587b654cf0aebc68debbf5359a90f415cde23ebf468158cd3a7e356ae8ef9ce76c57af4cd67d8c4152c28b65fb8206dae3f853485537bcf66040e977994373da658fdf1460dfc9ff136d1ebdfb1b2420d553e3750323a700b971f681a81e2d33e2c55d0947d30a5e65960da115f655c6c362435cd69e083dde76019ded3354600228e45151ad4d647f57a5fe615d96ebb2cdca8187d5a4f65d287e9b1cf71e2808fd30029ade17b150035419d27bbee9e382e34489813df7f058effcefc2f3cb5bb6a1be5e29849f983cf4de66ee2bbad8a2716ae09a6520986d737f3a4c71cee637dbed2c9b6e9811dc744e6c97b63490a0d5367c11bbed52ba9ff2e56c26be938b4c760553edfd67e3263319646cb86d31df80ad6bec27f20efb85d676001b75ea1769ae0d00b7ced70ad6e3de157c5b22525f4037a4196655360d36c2d959eeefa6c4da59657a2c32850e0a525e082abdfc56b26c9c8bc4ea46fa7c1a43ae874a58b0845b73df1ee95b27ebd95ffb2742825eac239a064018b364a05e61d65718e764443623fab6f2814adf5d79960f900c4c37b7b93defb9123bf9c7972dada56c99588677f8ddc72cfcfc243a1a8d6601ed89c00dfa78c7bb7eb2c25c6fc97cd4600df5f08d1df689c351d7e722de0d84744942ee0fe56e81ce820d0297e053a8d617a657f42b4ed6bd6052657fa9d058aae741e6bfed24d9e232878e2cd757619716b5c457bafb2b663f890016fc6d16e7b73ede7b8cb3c747cb735948caadaa2022ccb48e5b46559077e971333cc88e01f6a9d990ee0f7a51f845019645ff6190f18430a59bd2f58f79f71026251b949cf5985b044065af622096477e6bf1bd487ef5895d3588323b667a3e917abe7def7e0510ab5050d17500794a453ebb9ad1e562d70f8263b387069f91e4864107c5ac695c148f60f9c8500d10eaa78872dfd5585c3d15e0835693995994ebcfabf0e76eaeed1cb8d6967bc2c1732ee7cf2dbd7723d874731bfd3f1097efd255b4f6f7da03dc3c70396d5c53ef3c84a9ff60a2d8d7092c19fd0c0ad886100c6c569bd0e00363602b8fac5ea98a68b7c9a70c28bb9b14dbd3f490c0f1d164ffa703a467e195fabe67feca9c04b0627ea2b5e838a83b698c0addd4dbbf91112cec78ef7c8259a71b5d6d67e1c7bf8fdec5c0166a50576b46535bddedcd4c3ca86ccdc9c0977592c0044b3059a02628b4e8ddaf3bc610e66d81f89f59e5466ca184bc37005f9948231129762192a74e1d14de99193c9b0e65b5277b3b18b2402afdb6d4aa1419e9a0255d1923d6a4ceca90a3e8f5417d624c43cbabecd85a1ff29b58671673136a9044053bdec40182a008626a309f63d61fd1788af28e434799a4fa00e052486841acd5c5ed2152fdf72227f05239a7a4083745b26018a6e25c7d64041ceb0deddfbb2a7b4dd2ed4688ffdf252f6090b00e81847db1959b3b9ac6cf91f37fb5d7fb3ab8aa3c1b492355dda341e3af6459c5230775735fe04d4f73b334a5b93dfac220bcf7274c76516d3db7a668c22975af9c839539dcd46448a5a9c3e78e6d7917ba53272b3a21e105f0fc72aeb5dd159aca228e4a0af91a1fc7b5e5c703ffd77c705d08b7cd2ba9061c7c6f83b0b97804d4d4ec00e1d6958197489504957e05c60f4e63d92779cf0aec552a5c5391b60519760dcbc2be3665e895bb4ad75d65e764dbf49fd9bd6730e36da53b54dbd67414c6a9404ab15cc7e9751cc6b21d7638d27a0a28797ff93bd7842919b3841143b437e5f42505a48df0129abf4602f4ffd4915cd3f843b37eebc058eeb41a69b71bd4dc858f33b6c1e763d77de8a2c1571f3fcebfac2709d436b9a727d5fdef4a914bc052bdb1e1c877eec3365a620fe69f0172ecd8fd83857606d600d1ee800bbb9c917231af69e9de4e83be55b6274b801162c94a65d5b34f7f8f0bc190d09178370beaffa970698e3a78c61752acb0693580c6ff77a9edde3c2eb8d0647bc3c4b4bf9bf7b8340e22a521effee70864ec1e5ee3f6b8c2fc6dd4a7be9480d5442df220048dd286699b0e2c68a972bce61b145392eb8c3b6561a34601b1e0d8f513dbacdc43c07f411545d92ef4090e1623644d7244633636c973381d5548ebe27237467af4131674f50470dc0803c9149c8d06a5223a1c2d7358dbdaa95863997ecab050bda0a618e7ecbb9b400650160ca76b2ab081470dda32917913b9d2604c2db21dd0652d9be6834cb255f6e37c8212823666e4c50b5178f2068bca1b4ea16ea38adb8c416002ca64e909f9140f51b54cf7eb09b070dda461a6fa13687567838c10abcf51e2b2b421b192b6e112ea5843a3243cb9084a07952c90fb35369ab4d6d04b6220e4b911e3f0461ab980ecffba585f7056131b8cc28ffe07c68d81b3555b0301d501ca4bb213db70be106a70bb8bf4ff5501a00ca8f7c4b5d1f6f9aed09a8b7980393e6e03fd16a9389d85c221deae38497beb35c04111b9209896b81e7880470e9560b0c3873c0a44c1db9c4e655d6fd7e8c052dbb73799dfa9aa5a133723bb3213fb7dbd9f8d433c9c1e3f0f915586c216989e432b84616f5a6dfdeb78b3791a0dc13200edbfd7343827aa3d37f3d81652f6fa571de01fb62c72fd98f7ce76db5f2317bb8bab9a09c74f77847b0a261a9288d3ef3444149f1aa7901d5f2b9b736f63bbb26d730c4537f67a5a105a01605973ae6b42fbbdbdc120dc6aa1e1a4ee59278583d97459dfbdf70bcc2a30e8fd22ffa85da47ded07c549444ef35fc8a62261dc15306350734a4a90361f05c65359af4e02017fafb5cda52db7df17941a445f05c9e52c784df303e49981873dbb0f3421faf90f72249a1b333820e7f432a34bc72174c10d1ffbce7785689a7be764c0988e186a10a40ba27a0d3ce8540596e915913eabf975ed232690077c325fe29617456327d9363cc54e7b176630f4722d99f0fc702b7e9d4159bdf59173b9d0314c5ddae3269a19093d685ce24b5f4b33712d8a2f2ac7474d7e5866a9f8455c72565ea7c8506fe54be3579a5faba6a373fcccfdb9612633a45496129385cbe542fa3cc00dd0f22794ff6d24b36a56cf9f1bc07f974469a023a600bd9e289fd01896b4b015d4608f5cfb70516569d80f81449cf26b1a8fa7b742ded021a320a1445ad292c8e9570d295fb47dd21a1d86552f596b1be0a8ba9bd3cc7ee358a0a4bfa73c49196fd0aadd2a15e80d7c842292c42508ba03473635f528b2ce10479575e803d24025c2338f289fb5e6776a65cbe23f1cbb9a1dcd5ea22e6119de8e15db069953d1b55f5b84870b3dcc07fbccf51bf642a2ed7d2004fcd543256827673f391af18d3dfb587116317e52ea6a084be58fe88d2f546353f117eec08666729f97679563a36ce93bd68ef65c4ec92309e997665ad696c9ee97bccdc756ff3fd3b2a567b892cbadd9131edcdd89fbfc04e9c966807d9beb5fd04f467e6745de589f97d6eb9307afc95ee6e92941f2dd0c464f7dc0bb523cb02d6223301de86ca7e9239fbab748f97d2a713ae8dbffe352eb1a72ef90dc482fe351aacae90c107cf2abf54e40407efdfabf31e744d1475644c1d70e18c6d536bd351800de687ee6177ff8ccfcd2e52c4f24862ce10ae4a2f4c92d9fab4830a7fe6942377992d433c7cdf1b9dd12da9228e3400c655252357e5d14380cecc45c1e53d4c94e348bf3a7f335da710dfebb880170004d5f9a387bf83ac211db0f8f1c652768133878e9ca74e126ce6fca72e97a6719d8a6c2002f337b50444cdeb3f0649600338ddd15d1422e014dde07f331c7ae30fcea025201ad12655f92e3acfed258ecb2a861d6273b5cc8f39daa7ed815bec4dbdc4f0a5206d68656bbdd58fd704c5cc8f12fb6e633ac537c2636ab85afca4db4c12f5e4ba98095ff9fefe6363ca939fdada66f62a1b190d824fa5323b1328fb8e9259aeae6c3c8321a8cd96dbf0c5f6ab8650b18d2cfe7d8a554a9d5f141ae9036d7715582f56fbc6f5afa241e7ee2399fd1d0acb990bbff550df892edd1f2905355f0214385239314fe347bd71e7abaf0225570f39bcb3abdcfdd8f2b260e29d1752947a1d4ee86637fcf267d749eb26f037e5e1b5f166abefd10867e60a4c6204485493aa0c6dc6276273ae6ef5caf18411d259666f13db8e9dd3eb46ce2918ec6a376db272f6fd87d001c3468d84227ae9b623af5dbca0a8381e8451615842f89771c49c0a1ec599d796d941f87652a2e722a291c955c5b48a36f0b0fd69e12ee317a0718318fad85a9128f1e20a80a9a8e5b25e217d64c112628235de52fb4d1493113d2e76040310ade7e839a71428bd29e38fbac1ea2b60bc86e4c725bcca24e27fdf82739fb20649c70fb1b504a02a5f1c784d7d64639a6558207ae041c8c2ac28c298d96d3f1afe99a241b73b27e7f513d4753c9fb7fb007e334348658ad025c172af6ef95a81852a42a468c6f662e8074232b7df66508367ba6ed61161e6bd60dca9f6ffb641ef7766d9f66cd2fb15924f68592ed27951a780ccb4fe48cea51faf8dc32fdbb828d2ffa443af40876d9c1b615b7cfeeeaec06733cada860621138b03d6b53213d390e30a3a55d7cee7bf81476a234f377ce5d6fbd63d5241a891aedb8d3f44d8695edfd93205750d529863abe081b473453d0481a1f03de6dbe83a86ea51f95db951f31e69921c75e8d6eb018fb55fd2a08f21a7325e6b8f46ef9d9b5b18d44ea54f40ac7ef54aaac01d962114b76a1bdd6b17522240bf8cef1b5254210df52b3f6fad9c10210d4404ee5dc8c557ca27002803ebf3d73d5ebd0df20e3d1ddcc72c5a24c75b24cf51fb32b61529e44d6415511ddf82476d3ca8ac8fcdf129e3ca5ee3894ef14ddad1e633d20cfb6c6653cc66071f7fda1c91bc4e5ab5d4098a30174e45137b40bc39abf65716c9f8ed0967fcc0a1f952387ced8ae2926d6bcec93fff3d3d902b5df14a5dcb7f19202db2f898addd008b5e4eb7a3b551673bf4b71093b4b8999a5fd63088e0f723d6eb0af4f025504dfdca1092b39d85507055f2069141b2c68b80b94a476b121a6070e2095308fcfd06c2fa33058fe3eb5d0ac72a38912011c112ddf3a3d0c8ffbceda157629de664f417fda3412ec610f27d55a61d2937527d5c7dafcdb6f5130009c0e577ef97e32a9b3a1c5ee6ab1b7d4b0fac97a1f3661f9344b3f32edac85fcb4d7645649cd7012289bc73b8b6eee7153dad2e4293644d6cd341d5bb9a4cfb8c69a3930106971cbdf30ceb4a2c8279627ae08edd1adda1c03ed51267bea19822ca4d3547eb7c57173850a540f7048ee33718b41ed0330d888f198a8eb247ddde3a5b8af1e3059a5c4aa60d8c258de10937e94936c0015d8c42b746324673c3c515c52b498bfc1f19d0fe3b456958502511217afc388a9b8ac7edd1522dd74da7cff69add06b60b63a4db9385999c2ed8b28ca3284b3f392004feea5e81fcbbb46c7c0eaa775e534856e388ee2ee89922d80eb335525632cdd064f2c63d2bc1890601b6ac88555beba64373ccc71266d5970619e7676ca28879e5918bc2e27f914b9d0feae69acff00de49d39a6bd87ced8059527e83a78e13f646b0453e24b25fd7528afc24a8ee13568f84031641efbd5d75128fa5b3b69d690d82a98c174c170aae2a6512ab5eb7d0217c372fc7fbd9fd70b3c041f1633e860056c1f199b320f939aff4d4424fe76166acb9827e8ff98963be72f6d9585915aef64d63a52acd74fc56f7395079268abd71674f2aceef9d27e03edbdd079e1ae13f2937a1050d9a6626103c93996ceae20c8fd251b0f4dbeb9a16f1bec265e24d6ab8c06b0c9bd325ced430592d8d506bca9cc275c2af493aa8b2d3726257fd1ea3fdf4f024d3ae12b99fcc76ef9e27411e8a16a074ea27fe9e2638ee4a732a74c170b03386e9fc163fafbd20f6e09483ee2dc6e41f6ddd38e608e9e6f2a57cb8a5f75901f054e23f17c9228915696dfcd8a04538a4f8290f925f22951af42c376dde5447c893b04358a141899f488fd0fd544f49d60403970e4178c86de3d6e7de606f2f71c71cf4b385c5a0b6011e9f6d6e99e07d71bfc955e481ef9e203d0347de92671c58d6b1e7a473e53af1761a79ae54e4b23eb27eeeb13aceec347abe8d482f8a7304199168235e51629b65e24164f80c68bdaf2e7b3cbf7631b2bec2f6f2a5a8bb8d2a190aa8c8f653dbca7c062e18faadfea902ccb094f8376c9e2d49d1b06a9459b5564c035f9b2f42c31401979abb27d6d9a293b272fa961ae4d9a72f7f5811b885a1ffd1dc6313bbc51d3aa985277748bc21141c4f9a81d5a34a70d426bc5909ccaca57b5fe5eef56c455aae666819cbfddcdbe43b94340c191a3cae387b4336b225614739cd0e29b7a7b3caccc7eae5a3898ed4bf5020ecdcecf03a77630e1a07f01a34f26990c5b3fd550589b3a82ff3c3cdf4897e92fd90ca101be2335e3792f61f2475dd2041e29d7d8fddd3ad5256b3440e9deac833740ac343c85c241468dd44fdbf820819edc4aedd0e32532999d201aa0666729ac1aea069973760fed308ad3917343f24b9fd7b5ac2051d4f9a04e0b2538f89defc59d68321259a1696d6b1e72e7fd92c6398af18f9d1bad391a4f85f3f07fa52d6e68bcc6c79d4f461f89e18bfaf43066aa86321bf9f50222bdd029caf6ad05889c53edf9c65a9327cbe33f6edb49b8b6a74d3a16f8397cced23b4a2bbccf939361dc48d4267913410ca99cae4d0913f4f23f67eaa533ca2e10c8e3df14d4e6d74f492e438b5f79dd5240d166c6bf3d947a49cf2505fe9284bc062f719ab4115246d5c3965d19b4daf2c017b398c48abc4cde76fa4f15abe9271bffaf20f726f30a79a90095fca62882ab2f35320eeec559b30ebfc8c029c8711bba2d3a39ea1fb55d101b0f101f4e8700649267a1d3c006ddc56d1ab665619f53a9c1ccf7002fe841b56378b450e4770e23f4d0ed72ef8f3d0923499871470265bd08b60428f0dd5bfbb6c4510d1a0791c98636a9c9473b6d7ca4323442e2ee7ba7e07f5c6f214182ccda370b5730c4fb1bfa0cfc68f55a8613d49e9c42eec21556ec244e42f8d7a5f2f7fdbbf6fc080aaa06021108d61f7ff83ee087bcfb3b117913e5260e9efee5551954be3e6738ee01e298595ffd3bfbd191049125eb1d03ae012ad4adaef1c9e9af403f33f04cba29cbd619283155bf141e953e147629095ba57b2d5dbae8681b0fdc20e727b7db4e84ff0c3c6c4730445ce7f059a962950bb184d8dac6008b41f028adfa338cc4fcd06135b95d37886965fd198162a7eb571e27f98bcbf60ce7ee7c9bcf4d041c75f93329bee774ab9476f660b9d6954bfda5a01fe935b210c709792a34434910f54c806ecba02dc7ec730f930d0cc300d246bf2638669fc4f9269250fdf694a3cc9b21b81653ef23b2603384996041d3adc525f49a31dacb1f8d294546dc9f0e2eb9cf15257efad595e91b41580177923428a04cc75f2891516935e4d17e5f9284023c69d1d56435f7db01350d7244b4ad3b882e502dc40e374b79ae58fb1453f3d03db27cbd0b48eaa9dd24bd0c7b42b90c3a6445ccf6d4f3a84e686484ab1656070f0486d1568765e83722267ba390bf6f984012e082598256fd98b8de6600bf8a98355061caab98d389d7a73d14746e7aa1b7f002dfd9b013a46c2de3e1a3f5c3ce9e0bee696839c72dd0172758f8730a1345fa3e405a31feb0ba50015d09ed1f1e7532b0ea3f86c8df9d0fdfe4c9eb3d1f53dc96748b151cea3217b95c7d7f90e7982610b6dddafbcdfd5c6221d1a1f630137a7d8da19ed405f36521984500090de6a72ebc9cf42a395f5e80bcb7615dc0fa515c5a658073d306436337955c068e59ea5c16267143a56d405b5352085c37565110b30a96a9f394093c625a9601349eeba07951a4d9998043ec6728f123e6a3dc6a92958e0b21ba147d1ebf5cfe4ed2473679b19da1f2126a7ea794a7a407a937ae00d8458f0855f28e7e7767008298350c997519f7bfa3333181377817d6722414ce525612b24455e61f3703919fc58145308c2357b7a251780cb69c78afb5844b1d83efd578dbac94f9e7ee3e963d5bb71b2e67e4334a969b3fff40044a3c05f1bd6623fc93887db97a7c42196dd17f6c403e80e4c688b73676918ec0f8585f1c5741ad0e2ffa540cf97699365030e325de262741585ce2b8477a3ff2ff8a88d461ecaa78123a7a546f80242ead3d39d2b11ebb0ad74085e5ad0af8a6f9c93c96f33be10adc8648f28ba8969f5f5ee51be8ff81f079942a557b79cb2a4a29acd35842eb78c7eb79540f291ca9ed8eb0dadf1af0c98f13b6f321eedc92a4c5b86e7f7c23da06d984837ac6a972d454509fbcae6d11e0cdda7ec9ad03359f2e1e4231312d2cab3e96960d28fda3e4dc382bc9f15a649b37290bb664b62d58be0f9a1e8dc3cf1cec9f3c16c197eaaed86cf5a9d38605dc37a781fec546db299157b7b845db06243669378e25d77600edfda85fe3e75bb6567e1b93fba3626f0fc44edccc327a81258edb09e40e7e6fc3b8a319032a6ed96ceeea93a06f27593bbe074c5f24b716b0df93f63e31baf7100877d8d38e6ebf765d51f73f2e57d13437fffa77ecad9ebea55d295f25e8a623726de002b22d6e6d0f878091c16170a5b74727729e2ff600da49bdd9624959c934fefbe2fda0c746cb1806ef2778810640624464b077f4d290fd41a3cb2186a16b598efbff616a7f746408bcb11217f3d4cbb57d5ea0d3b36b343aca063a1c2cdde07577583022d06a1f98b97a6b2ff8066d5971252b29121f3aea92cf616e2703abbe9db26de8f053d08c80fa03e9948129e2b63a7b6e6ecb7276cec5e82f0f230325be0fa0748bcd520b9cec1cc75cb15402ad3858191628d151874d2381ce53e8673bb1f25cbf67555cfea53d066edd3666e62b7044f94360fc5cf5eb0bf71d8c6b9d19b1c6d932dd12ca2ab200aea48c7e2bced1e75cefbd1129ac1e300ffcd62bd5efd0a6221dc282a9fc09a37dab061bfb0271a16bb79aa7c7c71c40c960e07e1c0b6492e1572f872ea796f0d76acad49398a60de7ba3dfc1c804ccd35117aa71b91281ffcfc2499f484f0970c7eef48d0e7aeaf7b85ff74b20a95044391a4b73edbfad3cf38f4357f15729788800323602c296a798dcdec84f4e51a1b1917c364cb5ca9294ec7950e81bbf15e8986f727569a87f2e5aa52deb0aec9330abde15253f4197de419b2e4942e7283966ceed1a3e95283352b98549564db2023350295350cc3bc32399cb4977381e9c59f3dd98de33f4408f9ef47a400c87bc1508cb671129576c3cb2336d3f409f90e7b739a68b9a3a821535c7a988061725997d3fc60199415c147cd1795616c0b4b519132ab7dfd4b89898d9a9d6490ceeac2590d4457286bf37818c9b62c84e2bfe4f536f8a8ceefab8210dc02332089a342e129e5a5fee1d9fd16d7700ebc4b0bee1790dc97032c1037cdf6fdf49b3910b84fecfd0279fc97cb52d55b803261439c1001b809ec93cc36d52746b53af5327b60ac4210af00bca9040d0643ee1a5b0ef6256aa3c351231f820de808dc6e991727f95095fef341b29a6c72d922225fd805f32d6cca7a652ae4783481146a13c961d041fc2b4897d78e712a098518eb849ffe8451ed9d86a0808e15394ad3fa049c7d4bd212dccd5b8d064a5fafc54b0e0f2033a2fe4e975e60d0664ee10e17ee204bb249e6319f55eb8f11a996dc1e66272d12937eb0b3556eeb2561785105e3bd6e42b801fd5a316da0177b0e4be5f2ace0f4bcf33dd10c266273163513b8f154dcb01849695e2f5d1029ac5d45e9099033e79ad3583d1c926e639720f00f5b3fe88b8919be3be3f17043d7e27f0d79f7b2d90cfb598cb39ab590129487c81780e3d7cbc93e4cb30416dbdbc84897011b9d2cd6b6292f12a4a53b36b52cf450c61b0fc5ba6a005c1830cb5bcb73c9d8edce9e215ca0e30f7d9a82ba027a09e43fe9ff02f8fee46eafb0e33f0b4a322599ccdbf97031ba949d20e8d7f01916e63bb4ee2f685bfdcbf2f20531f3efe284c66e43ce64a3791eb5f1edc99556021d9d1c759f8d2dc62ca86226212cf36287bafe8cf3d8d5bf3e898404516642f1841cadd2c7d682ed9c789b56c2a1f216333fcb962279d85c1c244a7036028cb1c85bc4c6c27ea48ffb86ba300a9792fd7f5e800af763d40bef52f20ebf104fe3cdc79d96cdfd5e927c56dc99b6ca2e1ad8eccb7d70238adb867451183a2d74ef294ba495cc09978a270101d7c4abfca0a0e3185e7335664ec297c10f79e3712da8d07861c4264e7258bed05cf69d8ffcaa8b6b4548246e7819ea181c50bc809cc69556065fc778573eb9fa97564ef110c077a84d1b2f882715768fe5185a9465384dbf6b6bfd47165d372829ad17c0b41e4fd0967c82df70d3312eea2fa5abf3631199bc5bbac8230c0fbeb40a770535f467fa7bde0067d4855da1f276084ad0e32628f9c49ffa67f86de6734190b6dce73118e21b9bbc85f03188f2d1bd2b9a068f8e84e15fc0289fef9c2969c210e59070cba2ee38ef4fefde9b28ab2a875c4f6abb4a10ae4b11d603b7fb5d4c44e8fb45d9547731e9f7eed947c46f4c6d45f32af40e53bfe67344a522f53c011fec2a0d049bbb5381f76f7c8daf10351b3a5f97618ed05a3dfee45fd5a3ea0ca95e900456b1227f74e989f24c5d82974e10b09c4a65527a873a87a7255a8dc8e5ea97c82628f7cbc90464794da53e64ef4339f1e610c57a3762507e8818109f2ae01a9e659bec436394beed9ec8c275a0d80187f3fabddc0d39366bed09a301be02eb8cf2bb932abd6d69aa2eb20f4d09b742ce7237f094b4e185c032ca396cb0004e4a1030e6d51d08cab6a96829deea3debc74280b7ec43df5d326c63087a21727cf338a7bf16b8fb5c4506709b6c51ef1fe8720592f252c132bdf50b0d0a63402298dffc6131825e2b824e8af077751ab4c883dca17a754a4adc8c348573ac8bdf94e86ced65c3aa5ab186e03bb81d23b5abfa332baf493b4210ea6275ca4fabc9bde2abee089a999d9dc81d902a948fe1cdf2f31b31774e8ab594aa2434a3b0e9584b2cce2bfca1bf56ee6f892d80562989961f7ec8415ce42aeb529c4b10e9bae866f95ed5f49a1e4066b2c2ad37fe3647aa1e06a5910ee947995e2c96fb37aec6785752ca1f562a6f0a415c6259ffe04393118a2e93088423f735e80776c5a98d63c8c3e5a5e5e95915127e19c284b81f8475846550e7742a0aab2798ea6a8454fc2aab013ca776d58dbfcf142f137f42b9a991d3e50ace8522eb04e6397b8bb89a6a6c6fe61b7e64c419fe751fdbad0def59f50b35aa7ad14eb7dfecf5ff00b8af9b4a00830ac1d5bbb53bbbc677ebde7b6d14bc364db122206ad9c8af49965c6d71ec9d5b69973297abbb4b22a699e2b7ddfa4b4e6c855e78e65b8b89bdf635c9afdf72431168fd66623714840f49b69cc1d40e419d59e05c888f1f7e1e3da4639c13a3004b33c0efd76d33249b42dbc6ef7503b36865700796e53e112d7cf21d785c9404de08eb434c9eb68bdafef842d3d2244b9d338aaf7c9075595c374169baf2c6b4658e024b9a0e66ea0cacefd072864ae1b725f3c55907379687e740981ef13dc6587e1e90cf88a1a9e5aeba86354f9957c2eca09cee8402c40778bcbd92da776d5c25b8f1c6d74cceba1c23fda28f8301dd12f0b4218897e044cbf3e1be10f76433e6c80ca34eccfbff40427038cc59ba80722a2e9e553ad1e235c6982a5c5a0cd7b6387d0641112afb18d47d6f306b0d6aba5d0ef773081df6feac42fe6a05220f9f9c4dd18ab66070d8596b3e09b61108f0815ff12c5ded40e48582fc4a59d92a3d4530fc052d099a650c1ead4a28db3beaef5a3d0f460655952db297ef7c4f54449d5be314f8a923da9e2e950970a32fd4271df47007a99b38ea5ff6b3b5a055f8d723f41bfa1c0507d1c246ff5b0c0faee79ba4e6b092b0e5a51e51d14f208db3efab3905d1920cedd116970bcc1d74cc91d897cdc1883128f93253ea16753c62f447b6bd42f59d4372e0d0af31e16e54e38839c2dd25208205e70e815e9c5408aa6ad0b6b97aaef426f61991a0bc27c3faaf3f2a91d837e81f8fa57f9a155f3a77385b64d17c4b9fdbe324fc6eef3e69aee140aa254626424b89faaf87b82aa2a319ecc1f2e30b169557705c66d235e8322ae6b0868368ed82c1a743e4f7707de6e53fc900baa3dfe38fe9c683bd60b911d4cae935d6ab3ad584f14db892be1c45836bfe14b671b62636826d48b51aa76f8669c94feff4ed4dada6472ef68867411275e44bd346099d4e2d2e9a413651a3752b06a0d27cbeb070b18cfbd17f555801bc86a144d87a4928c2053410f1ac1ba0cb1dc6db26db035c9cdc58a1d875d0a147efdd574461a4767796a644027f9651c5cc6993af64ea4576dc8a2a8868d817adb29119d3481eff03a5e897b5e6a66672967f4638eece414f94fa361c64f5bfbe6322cca36d7284f59e77a967d08b0ad3439d919f01deddffefdd052eb3c163a01ce7834843c9d9790e0824228156e9b55c5e522b9ad0350b3e703b3432fbd72cf9547a69f1aa47a927c697881161101db3d8b064aa86a433b6ba4ed1d3e1ddd29c3bea69d1c1ac5c40262cc1ea14f748d92033ab94711ec9edecb7991be66130aa1187b0f26c04bd53458b864d016ac8a7de0cf0b3ce7ecf614561b3a4a771bc4b51e1a597223d057ed9a81ace415249b6f11c3fd2b151daf1891c9e9c4383c1aee449b3b6a2886282b24664d43493abe6254b37b2dfe4e261101feb45f3e7c283a2068d7af98f7a47ca581b1a827804dbf737588778a96cdb56c6a773fa83297fdae9dac25135e256e5aa8a31716ed67b6970177b723003692c27c611e625bddbf19ee2a097cdba5dc36917fc8ffebd71e697032ae44b7c7c6929dc9c1a1701d60f3e2fdaeafbbeafdf717132a94a3aad383ad8251f1f7068383228a6b2bf032edaf8516ce19843c1c18509df0a8004e28c37496f9a2708e5ed9ee854ad7792ab41f2bf039a4f14afddcd2ce31cfd9e0787fc7803ad889d907192b9e16cdf0b955e9381849eda9eb50444ef71472362d766f8804b18249e6836d7da1985593c385defdf83960a93b565ece092290f52513c0330aa6249d751c3d7f5ded97fc9677a087dccc900f9b71dfe63a01fb175382ca626f401069494cbef39a70daeb2f70f084cde7247c265585d5ccb19003d93c477c5f15560f45dd7976bfc3ffb553fb1bbae6be1b1058b0009db97c240c12e61fef5de7207823c7c2dd1fb1b3d3a9e57e995da6c2e699d005e5a5cf59a4f18a0cab2ebbb414ea5255abed636ee97f59e4ce2c536f4b73113521ac58477bb24e6bb57bd4d24d4706d5add53be113c29124f6c7bbdb6468023082e5151606b68f3a02fee385d715904a83b4b776ee9a387cd087f3ec992ea3d60d6d6af5cf0c087a668888c1a87812ac88d2b0cbbcdcf8d7c9907e95b7c6f1065d7f91f043d4c1746958e30d83bebb7401476ab95f9a0e7bdb77ee03c9736fbb890b652c13eed8ea62374901e6600b5f50940f6600b0a19f9d0020fc7500ab164c3de80ffb0cc28a1c1a1157c5f0b83718ab43e60668703c99be6c7e814d767a91994113c7fd450dc77f471435ebe94d96c9016ad60939290a5323a6c2f3299b8b7d09036f03399ae623cbad87bacb691a6a42de0cb307848581eb3ebe1cf527356dcf5b821ddbebb53bf5097bccce7cf665780871d63f997409bb01b0a081793abd939b21109be7d53b49f9a45fcc1a24222d6c345b5ca8a8ccac354bf5d4dde2c3b3e9d8eb2f62beec9a3f36b7c722c771290a7f3b2fc75b382438781ee424a8e49036eee1761b2739d4615706f42147e4ac730a06df8ddf7cece02ef03bb2cb59e2e7f583bd2aad6478981875eaf70ee7fbbf839fb8b6ffc6d9fbb79850fdf3cabe139c465508aa2cd7e014eb413acea7a91f2b4f3065ef551acf73f82e1741332e0718ba1777495ae16f2d642df252a9a61d312f566b817209c8dffac596827cc06b0943eee66c659b76f5ebd5f92034f96fdb1209487c8b6871f16dbf85d996511e5a64fe9aee4b4a86a093b195bbba09a09d299adc7b5a18cfba387f86167bbb13e6d2ac1da09964eee3abaae81bfa6d845460b668e73a42f8c324e3b4111e2f5180feb9599cb4c3325c4995ac7680f08c83f2270f06f348f82b274cddf47c2fe4505f2033bb718e2e39b1df71a4f9ccce9f10ffb7710fe6524415ef5ae539706260361e8c024ad91c4d9ee968f3da3a44a95073f3e945fdd67e716d4a48071b7495f9f35b55bb59e1d6897ad5d588d27b1f6c419fae5ea2fc770ca955788b2d19864d7d735584bd65c3f09c8b0155994655002bb95e1e61bf68a4d321ea59222375a7aa9e81a8190910418d5434017b0dfa503611db1ce25e39a95bd58b39ecaa1ddb977c952db9a2f94fdfd0d596ff4e13a0c2519cdcfaaae163b48428835d4be5f0b17045cd3f25459d20e8253180e5c08e6d7a3dc4dc381bffe4fee6f0a1ad932ad874c0353501c51196f22d660abae425eeed0295ef56ec940c05396a57dc29c1d2a67393d80c64036aa6bdfab9a2a1ec57d339f4db7c6da878287f9e26d96cd9f03d3e6e78ec4f4f08757edec38e5ff7048984b18c289cffe9e886570bdd670b812c85b97c2ec55f4b4fa8b2d303c3239da4439f333e358f1ec3fe452c9dccbb5b3fb6c0c6664c152fbfe7d0d86a205fcb44dfec382d4e3545395fe62efd8012515dd29f5620857fe0afc873dfa90ff1b8dd5cba43e7dad3d99bc25c954da225bbc3b3d77ac5ee150d2f04502b5b35afb9547ea64a4a88e66c61b9e89fc9820ed198a75ab795a9184665f58b645afa485dede8005008bd3ac136d4ff32dfca0382e2ea61d507d073b7ccda447f116b7a5bd0c3f3fdfd867926bfeef312b97ebd93d920f4ede1e0bf96fab5bb7506ea2ce4e90fefb13a2babf7a301bbd3796dc3596e7bf33a6e5dfa5dee3f39a3f506375fe50bdd9869a007b509705e8eed5dcf261cdeab577ba600bce95529b1a156392264e5eabd9bae6368f5eab54ea1e5c7c8d4d0a2fbbc0e65d65bbe3f74d92d622bb3579f8d9625a022dd3877ab8bf2f81bbe1b7f38b1d8aae35bf7e0034cd06a70674207ac367c714c4341f2623ff8475497290c5a29779761242909b43bb70a676ceeda052b80f477330e6f5c520cc0f6481225e105afd117a9328c38e69722878dbd50da7808b984ea75cdef4f51dca2bf4d9eac76338408e9e3c049125ed3a64e93a17f6f793ab5fa283a6f2342365e92b198bf96de3a69c4d9d004e81dd6d7c2678490d4276453696306a77107264526133d43c530b4b37a6e7eebf4c6b56f71ba6e1a40e2fd00858221987c9ab8cdd73c84e8b41541ddd1ff61696de5c0f1dcea95282e0fada646626f89735616a279f16f60a41626a32f7295643462ab47313b8c46a269a966f670f1c0973eacd66c832bda8d9ce68c97f39a05c4126e7fbf4568fe58f2359b6feb7f3e845eb48f155bc0783e182ae7ab60e79470e544d7d298fc4ce47621e8f5ccfbc0bd732b1cfc28d2d24be62b84d96a77c38768a0fe3fd6fa4b9fe08030929b70a72cf02a562601ffb8ca2fa66f1f1d7d581a8755aa83c402623ef75ca6cac4c45ff098f0117f8cd320f943f7dc4d342c731c1e2df54e6b67574455f594d5711288055b46a2a3ffb07f83f89256ea6df260115815309cd5e70d595823a280cc94401017ac77f4e0aa20aec9f6906a8e5de919ceef01b65d829cf495d1b96cc4e7c752cefc183908ea0ca0b19bace69066afd1876f3c45c0567be2f07500bac1287ac175a4a21d79f929644446c7a5e765db3cb5e1cdbcc49231696834c282a6e7299e97c13c68b2a7c92ea993807b960dda7db0e31a014f70e729c402b9a56be1be9a9e814772b3f566240f3b9251e0a23d2c18a7b9db2a40a79a4072c8b60fdb7e866f408f580d88fb403d4ef31ea13fcfa560d4790acb3ad8f0c552fa373674cbcc1f3eef04e4c859c10b4bfbb0d084bdb5c8d66665879c15a9ee83b98049138e55ab589505c9e0dbd2587709fc293858a9c06ad4a9896c7115b63fb4eef36a818d926e182143af24213b82fae9b9d333df44576c1dbd06fa18ff23b8b08fb22668439c0e42d2b6eafde6b8ce6b0b17353eec81dd5775a219e5a5b70300532fcadafc7363508cab272a528fb3cea1478b7bbfa855228d877060e352e12d9e1e2676a48161ab5f4645648eb54f4aa2e068cabb99115cc99c0d516c4af54ef1154b9349477b4dc591cb8294e54865fdef62a7a99aa65ae6c7f6654b2535dde9825dcafda3345f00ee69388a21a1cb0c0b87311c83f62ef25eba409d51a5379a5fdd4842e6be15ca7c35e42c5aa96595ecc6994d3417fdd836d11d24b2c2f615bd879fbb90137b04627b105076d27efbc4823d0d1a311524d24934487515d77fd85c8fbc31c61e1b37cc13fb7af7806d055076c92e0eb62a6641a2e317aecd34a298d732aa8cc2f489eae4ec0206690d7b25c7396740afb6932138e83364f21e5b9585adcd32c4ab05e9ac24a544560ce3028128162502cf8caa7be563dac7fd183c7cd2a917fafdaff93b78c43be23aa335b9f96ad534c511ad37212e9be5167a617007e19227c1abc5292c1c9334d5438524ea8df392e86444374b8b847954a950ff31767f5147a40c0a9c527bcb2f149a3217c85a40b7e200c4b73cc0ca96198343914b89262752c53a7f880a9e3448a3cf959b0adeed2b729396e6a6aa2104a5137c110908ed79439a8d85da276b5b0d2d5e775f4ae0dc9d2333f7f7394661c4ca0c4b7d474448253693f2a4ad2cc859fabe86eb9d3da489bc4d616a26a53d14d253ab7fd3a0a72fd074ab77932c766705ec2380bede9db66fcbce317396f0038942060d2bf33d5aa21bbb707ec2dc504c1e8f30236095c2be25dbb6e2456966bdef6c5c8d4788e505c164421314ea7bcb16cc51092b75a83074b1919431e51dfc15f3d9a7395779fa1cb5932d8c52697aef7575837d798102da39b521af745860e00e2e761c5dd0e9787575ee74df0807a6d561d98638cae204483a098945b06c29015eff49d00b71c268188e660c6f2ad46f33f5d0de1743f0638e2afa1cdbe734bf84de74395fbdcd27fec3959fedf4c7864c98367f5894504c2f1f018ac1ecb6cf2d772074306379bdf46072a02f5bb656188efe05cc555dd51d4ca0b5a4bfa852f7a20c529110e148f8d67e3cf25afeba7bd041e5b2263f2b67a4f13101777bb1e300006578147bd6538e7c8778ceb0b78d81a666d0266dbe711a05f59476cdcf1073bbe50d1017c971997df9f97f6221a43dac0c23f07b480e3621d952b9d73203731b58e4bcedb43c62f7f01890cda543fd70fbb0fab6a3dc6e4b27783b58fe63e9616fe9477c6e88e09a0ec43f838f4d2fbe870b505f0821ec82888b53f06c3203d6880071f09eb07eb55bf6ba6544bc492362a04a400d36e63eca255bb61f8a2862468dcba4c1422f02571d28d18aea605aae9b111455b7831fc75fb8d800ea5a38500273f1f0ed30bac0c374792f7f69fdede7987b069ebf4780569c8274f841da2049ffb49ea4de6522d54eef70348e9a1f20e4b59efa771882a01fa714b9056d7243bf8f89ccb19b7863e265b327f68373ede2a81028edd700e8e8c0f558ff4a2859b5a267de30fad5d13db9bea20e29591a1bf275dde6ad6b35762c30453677840441e54c77301c70af71ab714ad638ceec15d4bdd2a8e0e6b8ab063b35cfdd3e2a7a9dd1c1adba67d63a0ff9d0bae750a8ae0f006d7e18e5eed4fec009238c9eb010a12003c085eb5c6e726f708d1a0d228b9257c28c99707e9fddc5001558e4f01e0d65a9f669b4a71ea3e95e209dee383eb728be7345db7dd47334ab63313f84247cbf792e46de4d4d80572e336af11dae2a2a18f2b1a11ca1acd589e1b86419c42c107a78bf0c1126ede8b107273e135484fce0ff7ad8c4131e6297d02c57c3577eb9ef5f94a33dab6d060e5a4850eb044674b1b1a9cf5b2d9af32f14f1e6e74404c34fb8b0f209765d0772027ae0782d9c1f0096f8aeafeceb728884c70ceb666ca26ffb82680f00d4fd99fba776fe837dbbb4812a35f5e1df087e3aeaac9dc02cf330c6425e396e1d1944d76f09cd5420f505afa911d994daf0eedf8f181a35877ff782322e962c8db371c721f1a74a4fe74675f303e8c50ed411b972889cfb1349300c1dbc7c3edfd591346002579214f915f5452b300e556e6c5f36d6b27842bdb6a7449c87d1d4a126cae25324714a336a93395bed1718e888af037223e6cc227c59a7bcab889b37fbde63c66e039779462c17f78638e16f7c07707a00dc798ab2aec09bd5ed42343398e8b1da93a91023225bf4c69b3efc6ff175d4961f48bfe1c722a28ca752b01f8262a65fa98cc79a61dce7afccde7ccb0db7e76108c899f6cc0f2a4c4da3de355822d8084ef5e18280fde9502aff7a4b5ced4f40810ac6bb132335ed5d35a165fac296681a91fa178d06b05e490cf2d1ce41d8229e586285330d299df2fe04b4c287940b79efafac3568486922de10ae32d8356ec9c95fe21b98b2a119cff380f907bee4a3d78ae40a35fa7df1ecb22ce989b99e1d979f97ebc7ffa2023fe15efe88e82622b316a6094a24c238306214b9ec6e6f958128814fd0788dde5f320353fdfc3978a1680907c4a2d32201df6659ee0cfa0e97c011f83e4650be73b19e95a48ab3a47b3678aa0ff55a47e7b53cdd33758a75ec41b45dfebb5930425c69d9f6dea631dee3834ff4da36bb72731e713d57afec1527200c012b40278be704d69dc60d73d5f3311050e4cbaed4249f5cc9fa241553f06969bcc2f5678cb65467885a6b6bcff38420d195739af409b49f4a02f112937bc9e707d071cd70274273e1a860334d44f16d23f208fb42ceb8ad6acf73c550edc1fdff2b2e0b2c074ec1de37ff24337202b2f5bd535bc2c3f09fc07c2be1bff91331ca1baed9839bd0af173420ddb937c1dd739fca179a96222932fce84803b6c4182ae3b58b00fad9d633c372570b2d2c9de1febb8d22e65b612ca490c20bde2c6bfae695fc8e324a3f951f9159837ba1c40874f97e52018ac06e9dacb4e2ec9afe64c081b641d0848cff9d657a1956e73b6d2a6a790d895853831196ecb5edf3ede09f2791daec244666850621f7e4c8c96aec4087797b604a63213dc8df54386f9a29590f905bf4912e69ede8fd3550784ed5244bb089adff735c7177df8fa6fb4aa723788c7f17bd6062caa8336b17626c94a55eab024856a09abe615526b56d95b9ff9e80b4c01c6ec16a9f58c29ff3f917dfed0c47cf15ae3274c4cb4e32c91b546530f30499d399cb168b94dac88c7fd0d71355c8c92e94418d431171238207d2440e035665d6c4103922bedca7ee88af342afda833c65e34fad2a998d5651d80b1a03bda35551e7462c8e833c210a807ab517b6562e70031094bbb54ad9d1d160c77f78066db48769afbaa85a644085c24b4c773a26115d948c3a9f26ecff3e9d3984cf183af88c8ee6138ca361c8f43eb13def2c862294876dec06628eed2cd03beb0867ef02d68da2e1823958726836f0841f6988d18c8a3a59c6221b9a301b915efa02582c0d703c80a2623d1b5d46f8f842f6831f68b24ee1abed61a4b432632eb500e43eabf5e70d7f08dd9728dd74feb7194197c00757dd23304ff7a4e0003814f9c4dd4f10d67fd23a8ab3e8bff38b4bdd5da8d3061dd396bb2433a782ec755f8b1ae230662749a3a95f2484845b1c8993c25aa02021891c4242d5648a3a1373d62e8142d2aefd7c2c10975017b209414c264ca839050393dd7d604afd3f1cf901c34d62e3839a703c47347337330a6c5fa329ec29c7b03f880c0885f690264eb36b663f5c655edd7999419bf9b6c9efe95b17f13ecb5ae0a4fa9ef6214f8a9a9afd62f2b4eb5b762305c0484468d98d482eb818b8b694787434ce4d40c80683e709d337948b2f94a1022a6b53cb6f739f79c7594c1ac137a11ed36eaa64ec94d06a5f085b6883a5fe24b3c63714b37556f27673a2ecef8ab7be48dfc7e5253b0de0e0d99df64a7c674aab3853cd87039786020ad7d421cda673bdf595f4ba9a5cbbfd2ca06ee048ae5ce7a5decd1d3bd2522cb7fc44ba0f413e17242600a62efe9c202bdd0e6e4fcaa151186480b55e39a692fd95642a24c29908d2206c175c3740da00852e4dc7559c0353457957194517123a1acb1e6744e417e33b0f8081d1570051fa1f45df0c7c8bee355d78a12fa8a522790abacc4857fb31c701fd339a7a1b9551e3d394531e3fe1ba17c3cc78fb761e9209a65431904b0123bcfe77e11ff67fd7a8eae7af9ebe31b2618395629810c7ba2e065cc8a8ce9f478545c3fdab5e7f8923c8f749770874ca976a67743fe42e395a943ab8dfdd443b318d7fc68c6e4a9aabdac07231c19b07e1a8c6f94e971dccb0723712d1a7779e2f82961a66e801f130d48619a690a041a594898237c74e23367c29cb3e512a20ead9485a4e7fc8a8fd597157ceb66ba3535aea600038e464371e063a6936100773a833ea1a19e18e48fa84e4233a882d796e2b2bdc9ea8a68504399af7ce9cae834df0b4bc5d51a69751ed9e9151193227bc663dcd7a74778022de8e70f68602cb922ca6ac25bfa6f2898009f4ebacdaa9c964385aad0257f0e2de98429ba2038cd5712f6899bf79e59d7fca29779aa18e4d067c52c5c63bb18882a05c1661498c5513c6fd1317bd5209da2bb448c0d6faeddfb2a22de30a2d0a397356ad4e7d5203e563a91a794616d2a69be7499c1d5224254439b23123a6f14642290172dbb4676d0481fb2f997712182bacc9eeee2c7fe4e2fa0c6dd6510c801f786b88b7b77e3e2a31e5b3726c6fe911ce9550149fbce4fec66ceee642f26d83688cb8f4bb9f0259c989a13eab242d29debd672ece7627518c281e0e24b116cb0a8b7a8efdcc939b989eb0a28d90666fa2a1b031d85c33546d10ab78c22317b652ca2312620425fe19cb42f2c2691486162d23e40932cdc8f40ed84768c0ebe99f14ba21976b1e11f1d8e3bad2082834fc635662650db42e5a0cb40f07e8116bd67f70f18071ce6bf6369c396f6f6ae3fb9e269c78934a50d645dc5732002329078c76cbf83e7b24542147e197f77a22551c4dd58324d4b6078b7d1eeae12973a83e908edb10b15ab20036d98bd4e6221fc6c924f03812326713a55335673a7d5e3c442b6855e3ae73d24a7b8ccfd33a19507af515669b55ccdd955c8c21c2df53234b27eea697c401ac5bd66feadb640b0fbc8853c53af701ccc3901383201622a8511cccfd5ac729ab212d03d202bdb62b807173b703b36aec49bda504d4014a370d37beb3b2e288e52d753d4a21095613cc16633e8b68b5a32da3ae12f1643c1d19bc7c3214c808295fdb41febd2cae473a343967e5b9a1a88476d5caa668f276107eaa67af2d6c9f1b3c325e0eb2aef0b15b8c7e9a8ed403a06077d44c19166ddf671358814aeba621acd174c548a2d1356d1909c591bc85b2fcf1ddd4e7ba7b54f63a6cb55de0711bf0f6de6940ef835d23babaeeb2866405dcbd888125a6c890bc3a50d526843f4103cf4e27116819c688abe50fa422f4b10559ce738d27ca14def080a86cba3f3e95ef4473d52b88897c241c4a5d57aa036e0128f7bb81c0cc967ee0ed76ee733c8739e967ca168296323cfe939ae7e019853f0374ade2c3aeb216ec4a93ff1e74708b2d6bd2c29994b2206e9158c6071da9404d974aec6832131c6de5923d96db1b44a493f217d7da589da4405c5b395fb1011f8dd7cc3d283090bf1d4a75859c0795b43fd66c1de153f1dff9add7620c6349d42383e7a13d91d107c9140df8c3e6a4167f4c37057f27f6a67c149a72a2fe72174cdd0cbac754aaf11b4c31b93a1e82c141c44c0b3d2b96da6aa3a33e46b108acb158438346aaaed22fd310dd734be5b4bad7b237f70c930f9f2b1c152e212e0218ce1f466f5beb49ad90298567bbc34808bdff9d12489cea40c4e628c7e7dadcbcfaadec733ee4b6b0eaa43160f0b1ecfed54a5991b4b5785749464cef10e59442fce8fcaac2e2216e50c431d9221681e621ade562f7edbdded991ab989bdbc28ad9c339b269946f73b15d052dba2ab415c751f9680c65f41258f97971feb05979f9c12ca447f9f9a80468c11ad8d00c9a91163fcbc4a235b9eb59c2b5a2357ccfa71f1aff87a2e859c297c939cf328d866ebc945e423d88aa8022ce256262972c958a216ae640e29e670b714ba4361716efa7ae167dcf8bcb4448d43710738bcb556a8d9b3683f17ef40754fa92c0fc89cb3143b3c13f3de82a4be2fff0d0edc0e1b89241dd44b7fb70c57cff88c565905b871f1c2e568da06b4a31f53bcdad56136b03f5530c4407624ba5d5a92d76091e1bc82938a3c3af002959b09e2ba6a02e69b5eba7d93213595d281bcb865d3536a586ea25b6e75d2ac213fab87ce58c5317a056fb44df8164777383f986bab0eab307ce92a3aad7eb2d82069f48b7810d6ef21504edd0c39ada0bc1f15efc2722cce983eedb8a7e8a1526855c09b812c6a2a3b38b35b65494a97821a7dcab55ee19e0c3fe512c00131801426af57d754f604063ee55881cee14a4acc05dc6b200b14aa858f11e29d53e8c703b9aa0255c8ff61b9fb7b2f2ca9785791892943b2c5d66bee7648df4e281795db346299706af21c0a4a457224c4427923d0ea7ceef0276716d2d8e4f925c7130ab45b6ed47bdd9ab16460cd81f205831f1ade2f6e68f8700fc07116400723e9b6fe8da6d81af46f2a2f2a552ee909d5cabc6c664527bb6c07ca4a2048b4119d0416186c5f87aba070bcdf289ecd835dd172a57f69bd60d0829ac80ff57eb05ddd46d7b5753add394a5b277bf4da33d6392f853f0caed6bbf1218b8b4ca047696d1d1226d1f952ab5dc798d16caa04a2eaf43a9f60d7809449bd747480f7da08f55a142914cfa4af2ab8077e221340defb4804065365886f3fcc6812e9691413b715b645dae66fce1268b4dd2932ecbb51dcb9de53ded9d77bff5239e92d2b433a9d4f3b27dfe1a6df0f1d283659cc5a918f7f280baf2e4a8463de4a87a379bd576f160b0d5e8826ac520954f5fa1dbf5087492f96bf132aa4227685888437fccc430ceb13748d067f264eb515065fcce03ffebe9b43f99b03d24e3323d3a29ed7406165406c3f52fd80bb2cd87103ab954257d021a9209c61212d5f7db6395bddb0531c00b9cebdd6dd1da065cd88f38f9965fc3c71b0eb76f12a33ae961be5642dc467cf25af90fba9e2c9ca51badea25495f390a3f35465ab104beb393ade0641bf49ecb045c1e5e98cc38418f579fbf68c299d4cd12b2a95b7f18c88a83c5f2d38e8889e44a0e097d6a2f917a3665e21c2d133bdaf89488256a377a8f6adc1200743586e39c5802542a32f90319a95b194bcdfa16ca27f7e033cb6135a539dcbda7d3fd719081a26ba5e3648d09762e0129dcefc787fb4a84e584d8ff2a05dc5952858fff77edd7a79c6ebe20c09c129967df9d427d4fa7e01a527f1685b59329e420bf034d54a22036ab77ec4509f0c9b220a8fe2a448ba8eb71b709dd50f635ea4e76966bb49910e09906d0dbd5687326485b36534d46c67e5229a76fe2edb5dd9c7f98f8aa6513332564f875ba4b0e8b282517ca6f7a0242a440ded526d55878fb0c6cb4a645b46d2d8d8c5e50221f94b81782eb09a0fafff4aab4d58dff6057a62f3d3c808a4c63d9036ad141a6788a09685cd81f82674e72db4aad142f8ef7a162dafba01932f8094bf1a2e5464e0ceff16fdd66c2b30e2889f009281dd853d4001d5208ec3585966de243f7a416cd16b2dba59552e2fa2c31491db1f7f8b03bc9e1a92c9172bca97849b413183e7f824b141bd1fac478b4918082adddc75fee629189eca96ae92ffc7a37642ba951b184741468d6822dea2c8fe5356463805dd338db816a77a6c88e20db671d07ab49c55d3872d56e0bd1c98e9ea3142c10cc0732efaf1e8761174755231d61f40cbf9ee8b0503b2ed41cf41eb399ea8ecc0a4f5cfb32a22b4a9f45d26de51ced4843412596811f2f49227cd9ef11d79fb450e0e418cee8f88290292bde5ba90f714d03ec2fb1ee6e8487f3d60b333e843377509f02337533b00d981ae50117af2e24df3d7176e6903353314308a17aad3df81dee1565e4ce3d7abadeb413a9b56824f2344fb29c44af56d2013e2d56e3eacb263b582761bcf652bea5340f55d763f00085d51b77fc28b4b362cb47931e57aa2f00837b2e89c7eb540a45784694c64eee8b1a1d32f4686f79e653586533d445625f5836214dc62e31a0672d5b0b2b4446f274c75e87d68c0a134430f64bb6c8c94bc23324e9d9218f901b30a59c28ddb6db944fddd7c43f11580b1de2324541d5417ec3b4959a89aa46811ced5bff3191a7623469c43d0e7e03febcba6d9cadda8f577d63c14579442c17ac2b534f684c41c5ed0b2fc59d0446d19d81278408902e32ca573fdf002176a187109585da0201b2c2a493ce119a47e3d732eb8c0f94296815c8c5d9738c008f5c7d1fe917f11b283067eede81fb4bc14d382ef879e5973bc885bce0f3d13b6da20a8e7123fba4f91c5df2941226e79df3f4aa37ff67245fe7705b9d04c1283dbd809cd132261d84f0e08f11aade41a9863a8b0ddb6326d768fd1891ee3165bb315f795f321c94ba8420cb7a0d2a6e7d68d4629774054ab51eb7685fa07a48ed7059e8c47dac5823d6a1e29272d6cb10e7fef9cd6cddc87061bcc9208ffb0f8558d534a1904739ab46bbc59d35f17ce015e8e743a05f32dd7a3c2599cf931befe56df486ed8354704219db0e714dea448138fd2c9763c40131fd7c6b43273a1ac27099ff1c9c79e6173a17b9a903582271857ef875a55353b6dae9a43e22064d3c61d57e71ee18f7def3627b9fec896724dd2e08c046c412b33fea387bf0519a0276cb6f307cc4fe5ceb51a39728780c6b3f2a4e254912d211af00498982a4c6661913c6db6d40caed1e2980239b1383482290db2217ea61b73fa2512ccdc5b0466b8abc9a8923f59b5b35e07a6b1accd4edfda975fbd0a9541875963e4a5b8fbfbcf8ab2bc0074cbdc67172ff84fca1667cd9293ea7dd2c0ff8de67c5789495ab1481235ca34a149a567e466314d06b2da26b5f3aae003dd3b2e31bda56e7d089aee4acbfe95d5be058e6e4390f56eac5a1ca98ab07dd1ec1a953d4ece9dc51d87795e640eca7afe6eab6b970ac0ed100b39406549030a04c594a6cafbcedf1189398dd3329f4e40b8165cb48e55dbd06857ac17789cce254cffc26a85b6e48b1d938d1c3c473c6d36406f8f0fbbf3d41b79906f4151e5eb02bd8f904d78ba0965289caf1014ed8ba2ed332cdf10ddbf45da7b44ebd46596725f08bc94558023fbeb7b1dcccc08a1d50017ccc0cd2554481ea5317ecc45f1d86bd44db3fe7a0a00e2fcbb632d180f98ce88cec59ac89699e06331273ac72f8aa2c04c0617a3f21eb89c69fe68bccc17b79722f27c7a84c2696626d076ff8aa05fc5d1dcdbd5f372e55c995bdd542f9080490d4885bc146fe9499aebe34ad239a6a7227a8144b2766a21fd332cc48c8f34dc49bd545bfc8fd9a4c2096c415cd8536be379af548b6556a7c39e3b5bc4d50f9aa3627aa5bd470e68143eefc363473eb7bb5525794e673bff3de1283dcfc053b34d1dfa8acb099362c330bdc936425817052002de2ce6ad0186c24de4bf44fe10cc81e2347082b7616f59518b445f1493d60d9f28a6898bae9bd26cc9bdc3daa90384d8f24abd035aa6b174ab5cc413191ab974aa9bf902c732943ddf58634ea401397ddbe82a3f61afb82a1a8e2114ad3dbf6a7bf4899d855d24fedcc366982f9be6a6c14e3b644c0fbaa31bf7675ad20cf380db73f2db797c03f74b53b6a275e28fa0c86478ea1a8c2c8c7865111a9b7cba2d748dc7b196bc5af66c74296f7394ebe17c1b6a23eaf60f653b9e49f3d2aa9fd9b25d8e68bd5c95ba62b91a061cbf8f190277ddf879e37b6e160816dedf14416136b3b858860d5a602b72b105b364f125d68a9277e292c6c205214dcda3eaf3e163ba4a1f93df616c9b4c9c2e6966b648539bbcde1c58adf7b3fc7e2361c7ecaab8546398c8a37d5e5425365eb6de36f8c66401a2db1acbcc4e6aa89ff439e942358b181d297fd3294e195fc5962777dd2a4b0cc5eaa0913691bdd6e0e3cca784343ff5e3668731e9f18cc61a490c21e0ae0b492942aaad83caf7342779689d883aa77ecbbc62fb031548fbd83e2cea5bcf02a917526dd63d27bd34d366f3b195c0ecff993a4dba1375bcd110f29e9a8deeea2e26ca2abf0620e01e62e8138249fa324877ea66ed14d0165b121f3ec837492c711b4a3c32047b8e6fc796c8ae6e7c9934dfd0b8ac042f61fc4115a85d646541fa02d487b77ff05829004080fd01533b037565a951527d5d9c5b63e8d03a740d8820f0f1cdcccde68387ed81f57d9cd8be26575831beed4c605c0b0ceb143aedca05d9cdd1bd9ce1c9e9706ff7550c5f5214210923f9ebcf6265b7ade4c0d4b43573481d666ef3d31ff906e5c26b3277a7bac9fe89311fd62a12a0ab6822a3149f8e2d2b0d0c4945fad18a33eec0f064aaa5438b74e461211418c35fbc7fcf56847d69a1fd1d092428e79fd7c4c181f9c1deb02594a3f8e14a62f8d9ad234e5cdfd5269e9c5b556989a1915c14ffd66467703300985746f86c4fc3d761ef7d956460095db6d39db98604838b7025cfe480dc795eca0d3a4d9614ab8706a1068984442f1206ccdea24825dc0aef6396ac36c77618d6350e14e9a649707393a47d28a640546caa7cb4f34275b6cc0111f55d2c08669370521ac5e638308536f3298a1940eac756b260cc1a8a3597aefb03ab0dcd6dfaae381c6f15007a74250ad0286ac564bbc60e9920629a48e409d3a912e84e99aeff451df6ba0955fd69761982acda96cd23d2a71f5901b6bb5dfcd09a7b241945b2a754f37f434a1a29f06c5f1c8f470517f4808141aa0967bc2fefe283858edeabd847e95348f2c7cf4049f345e56d5b450d2b1fb4cf947bef4db4ef51b7627b7224aad18f65c7401fb47f1bf412d61db04eea6da4f4ba5aa35e69305cf88b6878577ad283067100ea4effa53f9ecd28b1e4a41f084ede7f0d0d857812e5a863fddbf3a804399814831d41a2586c36fece8d529157906b0462b55a34956d6cc698bb04bb150dd1a95090ea95ddf599109a0c48f3122479de45ec3dd6f43496fb48cee5a9edebcdfa19df394983c39ac53299d90c26d5fd307e8f948b946be537139b95bfed0ff8e5a5c3ffa67309f501e5c58905b1f068a71617e842347eb321796d4c6deaec3dc75b74fc4ce92ca5623dacf5e1fffad29e750716c5bd451e2bf333def1c39c514e737b3a2c63b0bbffd77ffad4a5842bfb203775844098099a8a04798ed50d6fa6ca27206bb8d1ecdac35db8aa8c784c21f7b2f37733e9b68b4680d99572ebac4032ccb9b0ed0a28d15c7bb401c5ae643ff680f43b58c9ef1eaa54933b8e6e1756fbe4ab89459ab437faca34d1bfbf597273cac15871ff778f22007a63d43c3bab84c8081158bbf3317dbded32e33be7ff13ccdae9c57688d9c01c26e6ce7c39ea837b224ce99cee06df5be437436ac9ebab9d39c5bbd61da590fdf9d9bc7f21c4fc24c54ef29e216f51376ce1d43dac762434cd45fc33033c0819a9d76ef09998096fa631eb9990e871d5291f04fd74dcff9baecf558b8880b61d0cc7d9872c3515999c8f3d8b88be0afda4ec60a46096ae8f468a14c984697764059839045489f4f7c757a3952181f9893f90c27ed3ba0729869997eee8768cd2fd730f081ee8812af8cb483596548db654a45fc12cf62d076a848e31bafa2c2892e8021f479ee532a1c1504a668c44ef11a86743eada59a00e4cd55372f11a6e297423687b7fbb22c2e0725b007dfc04842f94ab720e36707f2793a18c1a2eafd8d9b8efa9898a0294766b993fd49b1da405a9a5f319978668955f122d1e8e6b9ca80cf352af4530088031721329699881e7dbbc0f5c77364729a1841ae982583a03f29b57703cf6c0f220107e7bec52e7cc67365ac7333e035369fafe50d46b143f7edc732fcf2e4e1fb625ff79dbc1e00af73db3b26a19a934ea78c42c46c6fe11a789bfddaa453933cda28e574384ef34625f6686da22f00b6384f1be14312b4f2604ccedd01642a8511779766af3c1bacca2cac5915902b7bc392f2a98bfd9e1a0778c506a44e39eaea637bfc6bd19a97ec2d1000dd0e195a72e0f3063b7b3e0165082a9ef65af4757a0b31a235b4ead01802edf9fd52a2464d6080063026c26b3734f9af9a8622a2d01c0d2889e2c7b6f057a4e4cac056e62b9cd25c70ca5aef73ed9e89db0421e294c97e4161834dba87d3bce0202c891478bebbdef9dc7e790f38f83f3388d618701ed9078f3b4de1117bdb13b4e5055fc0f69f0523edcaca1423b627df875f1f470e1675a2845f45e29a23266c755b8a1aee22708bb1cdf30a5e955e84f3704145bae8ec62c81394b9ba76c6d093d80b567568619c92a1deaba4a342e406ebc1b6c0dbafd7421e8f647ee7248634628dfed6683e99d4cfc5ea7af9f6a02fda53b39c4766e0ec5f8daa8b7376d9b30c6e2e779b1140c39bb94af3e3e11137309f9860a49f5df12af58bcfc1745d79f34131ab2509fa807e1c8579772f2822d4c154551948e96e34c7d0bc33dc96a1224ef6f2cef79b5b4e2780dbe94f637943cc804834371f883a14e75d11eeb880860d53fe36d2b6c84665950adf73d5eae3424b9361a2750484821154f9f07110bdaf15282d33786be836284f09133878509d322415a7a50305c9e51d07abc79a5595e75094da1ac6724d8ce81a6a10a361ca8f1594c5a38522381b3f53ec033483d6ff43f127e7788b333c530cf7e3486ca9f09af56128c9c430a9238a04b1d586bea50f9da1c33081c25faf27fe7c21378e424f4143c8c2a6a835d85749a62c1e4983fb977355a77aaaa2011f053f1173c3cc2d88169d2e97a8d3f14f93246c14acc70625eab056ccef5a48b0578bc11604fbbf74eb7dfeadce113fcabf02b8aacd1918a9f899c2a168ff9eff843531da01f84916b6c7264fcc581ce630eaf7edc65a49c4b454792142eee9dcdf072f33df17009ad0b50b32e799858749a325386638f93ed8052e357c83c49fff57f09fb8128f3c734a118b7a4d3faaf471680baf8f8c2f42a38e29697fab213eab35c1160f81fd42c70fe371c1b0d81e828f2d599f09b17374b76b31bd9da33d6bafc17c7c4985beb5ae1ecfb749ed3864bd6a4e0af79d132366c44f39ad195eaa94ccddbd013ed17fe8b528558d86b89956ae2caa28066b5b4e9314683a6c49f89de123a420d647983822275f1cbf96318531c6316481e9fc31b723dcd3bb6846d628a9b8b6435033361809cb58cccf74e356a39f0714a0da9e01f33cf4996adcf304c257f9e5008f9d37219c7c1fe6a21f6b7e801b16c50b744f508d1876c35c2b87309b2692d0cb097b52123e865ebeaaeac4017b7033cc90a1dbc1e8332bd9ae93ad140c301a55e1d698285b914169c41c19d4fb8ee8ec4edb85a76cfc1bf74afa6558ba09a0d936257f63a6389cd175ccd3ddbf9986d4aa1e181a87e15324d4027a572f1905d4a0b2aaef6e4d00ae4da87dbd1ae3d30f3b18ae8a31d857db55717f8a016e52a3497e4e105ecd034aef59561cb5fa397259ef38d631e3edf735d2feeb553c7333ba85b4dd2391bda2c6b6cfd0d78147c61ff9f86b4405a01bbef2f2c2aa45b8352143ba538d234c93738311d108b02d0e1abf07c4f4b64022bdc64d3d411355e918db53b0ddc65011be2375f563724454d064d0259e2960a632a074da2fe9e1732d55022285cf6f792539098b5933840b8af993be4e96d795368abea56770dbc9a5a063c68e84d2eb5ca212b6bca30d00edcde307873440d68eccf84036d520275115a3f85fa7a6b8468684a44b519fd75977287e0f3a79f9a419e3be0e7f76175b9603f0a29d9ddc40158c901b72212228c51ea75e722802ceacb54da395050f687b58ae76f96a8dd4730793920f1dfa238e54684991313816ab94b1993ed9927cea8e3e3ec548d61ad20846d9a64235efe6aeadf761410d036d1e8f64de61f1705b2043a9897444680b5637ee67e1242804e45f57584711fdf3e4850baef38af393a2d4cf7daea3114aeb2ac57771e677c501ab87d8f5f653b2ea1aeca646aa5b8938b07bb2bdca5b13762d1cfd0c44eaa8e494f6bc43a80ef92973bd1cf6ecce3b1cb6f852e877e8cfda76f04aef2431b0c2e32a41ed6af9d20ede605d033c7bcc1cb806477d3d325dad1cbd2efe8db593a254747cf014a4d0f82f49555254e7c61998c69a4d7ee974ba94ed433d329879e021fc041151424dbdec82862bdf9bd389b6bc122e7a44bf7f072e3158930349aad9ef2856f39f002642a797b91aa7d0f5b0423b786a9435b07283df1cb2719c8684c0688a5d9b466ed2435f8d12bd9a7c70021489aeb112b29b550efc4ec747ca1bb082bdf3d760c74e81971c68f6a74e885431410811ef21d2d4228dba66612350276dc2a09a1bd5e112553cab6ff333e49bce86e893ce4a8265b40a369cbf0fa08d12b06a02ab306ab8f3ab424b9f02c7f8d5c2cb65d6b197fb22d0e305e662be9d7e62170f4ae784dd6988e4d7202a19ed5260a678198daf8f77e347d970c5487072f7e02721f8671fdcd89eddc02c07cc1e5261726a471b18ea6858282632ceb601523a143ed98cc3d8027053b81ef00ed78e661d6affb2afab291e88f77a25e1f09aa398f3f22a69da536fff372aa4e9568c3dae190778d4fe14e5ba68bf132709bc8e29cb20827f907c85c3370df3b7feca3770106607e83abcfc3f02fa42b07ce453664f34f54af30fb59800988a1e0d482dab1456dc5b13d608ebb0768854c208364e5a72f4825805f37a023225f92e0c49d43fc662335ebee1e435537bae055d77613e13b8d2943a8fc7ad55087034a0e55b06d8d9c5a0f004b814045b7a65df7d2016c3cac6b5ef2cd0b50dd3ce8a8f79aa736406eadc8f954abfd1457bbfce079bc12364f106484ba4587c9cf6b3eb931eab74b5f573e1ece71956bf60b62b70019e48934fe4cc5d530658628575cae81d47c60e3b78d0babbd3028766f340036acf3a393953e87429086bc70ce3c46d8b7f4db7ed706bb6607a99bea86215633c0976d3657a6c76a8961222f2b777863419b0c3996763de64a1b360664efbfbf41d6d16d0d80ce63f23bfdad1ae04410700ca7a96118e49e5f03a07acca058932430358828ae03d0579781a80a58fa2231628e81e0b6887a370f00121d88aa83fe310ca9501e4d6eebd55c90066c2031a328e3efa648d9036efe7bcf001a5808a09e284ee587961534c05dd10de4a7de87e720ade38404739f707770a00b573bcf3ba617ecde2edafd24af71a68596489707f34f493e887985e8b483114dde463154aa518fac884f6257854b18923d7244814d42eca8dc9621e8479966d850c62e83d7a2029b74fe7b8fa09e734615937b3c3d153305f4ebbcb5528f8dbd7dc8e38af3b9c6e9f5136b9ce94222bd1803f69d259ea4d30e4d2bc35407e8043f64435b18f774453af7f6904b84399b3b1c4cbbd1e74d3f534089fb0bfcff7fbabc777c751fe110d884c6d42ab36664debc874b26b9c0448a79105264f1aae7818b559694dda5ee85daa6243994ef669a4f74f130747d1e9ce52424b2706abf341f66a85c81d71650e1753536e0157d2b72353f8e4a88b386dbfaca547d028ed4edf92fbdd24bde75ac33bd5f6dedfda60e62aaaa9d404bd01ee5412fd04b7a7ca716c20a857dd37016e2bbd4ddd56d747713829fc64dca1ea3b033fb8947eaaf9f2b93c3b17bf0064593a179b548fa29ee50da8a82efb3215254f31343d7a413e48600c705f5153c31def7e22444c164dc22e0b932484633e318ac0ec801bfa8ccb36407ee74825055a79a5a1bae7972d3b3a7079d70149c3183617e5a6e129f1891cfe66cb7ccd0d8589d2fe7be288598bcda3863b3a9f0183bf36be7cdd65211e305d2f08f686a861735e473e08d385945ca8b49ddd43480041701dd5f9092499bbebea540bf3ffd6b636fe1746666f5df735fff238b7572124ed62fc25b4032b62289622ca96a62f015dbaf9a9b05741733566eb2ea172ce9029b09d2cca937d6109c1cc7c572f013768154d432891e2b646c072fe4bfe3fbd733ed216f044f3447609455503563e1d00ea12c6c61b32f83c5d89c823b33a5b6f05557893093c3dcb65c322cbb735c664e21ae388511e949c789e5a3c5d719195b114e7624af26a5b3f4580c11b7ffde4562e41efa2bac7217cd67dcc2c2e2aafea9d2dd0ea31cfe85ce5185e4b198c677c48e47f63f2fa3b12e7eeac96a5e25fea177d935d5b412d9d5676ff7a3a54e6e2359943a6187d8b08732ddbc494109762cd0028c974bd54810b4d634295f2ee4335ad462ae78b69021085fb960d261fb47bba4c3cdb9a8087d4602f2514c922a173d21b57be3d5efb5f0dd23292f51275e27b84f235bf4555ffeb6aab4d15b7b27d9355493870aa99e8e1cb24e2fa61474d2796a8ddad2bb240ea010a33fbf7a5002110ef602cbf50927d73101b574eff111e0e012a682e52f3c7445bbb3abe2b74966734250ac453f9f8fcf00ea1f3193de9baf8566f417075bd67678d9d00d7870bfb3fcbfc1358fae5bde9f124b983e6b52f6bf4dcc638af8d02fde90741cb6de973bf859abb2725a6afa6c1b0e1aee83342a7117317040c7692d9587e1bbb5c04f6437461fe03ff64f24c0895fef9f3c28f1397b9016170ddf621da5fbc36e3eab2aea2b4d4d73e5246fbdc137966389ff5e27fba44eff6b6f26a9e8a654ae6b559add94b673a6d5393da43120c9f1fec17d9e5b2140a7e9caf51871fec6c65659f4652999541922761be4f82484ed110dd1e111b9b42505c39a4f21e3bbe5d7fbd769e387124dbe26055a7a60fc57bd7f126febb74aa7114001a9227cf956637f1db58d2c3ad61bbe2e94f021af19a2543a20b2532ee5bfd579c51363961e1defc726d00837e7f5b5cb2df8174a3b7f08584c2b8d73f33b5f81e8e64a0d2d6bea2630da761205751e9b1792dfc265948b018eab35d11be337f081f483e5fdbc52edd9fe640e87cbec628357de82623eb7e255a06319fa98eea2af4c6df0d95a5eb024243b7a8e91dd794d23b3de559e2ed213d91b24ae55c204c4ae66595bc14ace8a7de8f34a1d12142e0bd58c1460cc279b462b7c41ed7663eb85b46cbb3eb459f70a948b1b62c4e6bb015680e375303e210d30608a9caeb88966c0c620bbb0f513f4193b998d92ceac2d6f1390f8c7cbd10fcde2358133ea083f6d4f7914c686e2bc9d94fcfcf2e7884ed4a42ac9c3c91d6de6ed61b98d2ae0652d074c63831ea596ab3a09587e97e850a207d8d97158989b15bf762b581ed921ec5b9c75b4e86d1526f95f9bc98788a22f1ad80ef1f0cd2393eb29197068c6ded8e9e1b7e2930dcf892366bdf99e0178f926c4ac33561a4cd249114478129382f9740e7f6306d872151dee53deeb35b6daadb848676630b900c57da0ef7dc21be62a1726653d715a9163b1d1bbd8196f334af2efac546e5c36daa3e75d0cd00dd059511e986a9735401225818d10b66970183a47c4a6cc49aad8faf36575cd689aa00cc4b455c00036431e3d0167793093381fe35ef4666baaab397903eda7f900f695fdd0b523f7046434513200c473ec4580c8be44f72cf358657b217d395e004d1736fda934155e1af9fe0a587c3f2fd83698e1c0b73e893245759dce4bb47efe71dfdb69dda212560e43dfefa0a64ffde63dcce1b3b00fb137b746728e3d74b880835293bf2b533b0cbedab3c0f343d8eae6bf46828131acc852afb2941ef2486dfd6c173857be221b45dcce84fcd00351b62cf51f756911130c6b971fd0d9ccdd56c8e8728023ddfd56aa8f107efe27bd3e961f217b1762002da2c9cd7636ad1606ba5fb1bc5020d74282ac04c6e53e7cc58f177b753cfa63765be0248465649832a9fb6461525edf57a5fe4c0a218fe70b98b85ef7d1a8f38e240f4dc8dbe40417d1a2da7384bd1112ff955bc67c6bfb3e87ea8cdb7c89a70ee667dd62f157517e5379e0db150dd732fcf440c154b6b120bdcdc2487bdcc8faa49c142475e0490801a603144c1998a9e5b79ac546695340ffd215b86d2a37d09e3e11c27b56b4edd6e3c73cf625663e53a451c452a8f2952fc1ea5fa54258903967830fdc6d52cc7dedcde29aa5cc03bb00331ea7f1c7c3e38d7618382b79f0aa69ec30354b944079d473d5742f2d2c8212a8888a17a96ecd56e884012cc942bba85493eb4c7fcc6df6b4a178a2b433f99e8fa299fb6306039ff59daac5ac4ff5fa09f434f2b76f45ebe5f6c148e6fc2455ab533dd53c3fb8f7bc9286d2b9af1855a97a62416f396d6e5250d27830ef6f845d3a89342382847a54bd566f1c75d0062ce2343a0107b88771fd53d9a9b54a76ea46e4b2654fc941001361b3534ca087f17da53f6edffbbc31e30859b3a4ced73faa967ec91e4ec386ccd050fecc2b9fcf5780dd89a1736b2f82c626afa2c8842221798b26ae98ca5254e10b2a1ec94a1ed7ebe6667bec8ae065ceab7a1a6da146b1068fd4337f21d40be1ec68183fc37a957c943ef45c1a549de67856f6f69035dd1b13e7ef861ee4e5a819269ccbaa6396823fff9d176104012da7679b05f25016724ac5d67603c402485f8c7f57a99efddd5d58a4ec011c11b73f591ff0a41dda7c465c73a3b6b7d9ee43db3844cb991627ec0b9f77da26e1c1a22e0015d0c858068ec0c368190031050a7fdb12375f1aeced12f450ece9052ea97934d6efde2db3ce83fb184f865d2ece2520a595a20530ce560acd8fe6b7cb0fe5dc4f6aa9a70403fc864dcbaec96d342a83b29fdc7f1919cdc35c35a64ce706d9c6bd4bc26c7c87b36a0e45e414490c789393471669a4bb05053be2f8082e09c5aba8a6c94defa828c593c905b0aa4fa0dc9fd5171e43b8c16bd39701b88ece99970be95feef539b762f45e39f8e04997a146d5ba1ebf73e665fa93fde223028864ebb562af322c32e8ea8a9629e980de41d4f92e85329b88888078f48588144826ded40e7b00c5704a4cfd640aabdbb51c7d5fcd4090e57a39a51c964e365b73690691915628608c2b76bf40069c41931ae11eb618af7c8f67c0890730695c70b7a622971145e246cc0ec26ee64719b21477dcf791bcb37abe9b187a2fa829cb941b51e8d50332911d30c42dfe27c6c637e74a7aa8484c8837e543420eece20d89d5e7c91c6f8ada61845ed5b8614fb72a0b6f3ce85ad69132800e61e79ceb4985d019bad1975982c8356d8915257529b75e840ad7febf14c1845b598320fb1139b6239573cc6a39066c2ff0b2cda44894a1240d080718e88fab88fe695ceb8d3b7ed9cbb31da360c6f50015ecb276729171f6f192f8a81588073547cba7edc88df2f420473f58af62b8c8035253ada5a146051d0d41331c7b392005c77468c0da05a1d51a92e22458b459b83a804e640d80a38302efd84d8b4b7eb116c815a2721c56a8ae7f28d342f0d6eb057e9633d80b39ab672d09568a986144c113c8eada96a0f6c117f85d37cbca80aae41f9dd86d9ffb37b23abc1af2a7d5e63bb85ff6a67896ca76a4c6a9fed32e576da2146a35b75e1d7258a8395ce9746f1f4e8f4fe7d7061c11a69f88180e01438740ae076fe98fc111714b6ed25c3ff1a12acb19f9486039c4aab42ed1636c095443b5edde930ac6ed03421e2e3d63a12f3e107e43558b4bf8b822b8e983db3217212586a29542fec382144c542c0cac0ab5e51b60e6d2771bfa44fa5b16aa95c9a0e0bff2e23995ccde585fb7e2e5810ff29eb4e7208d1ce9f0421864f8f3f4c4fe90a6a4c109b092145794b594f2e2febc1bc36d7793cb83718fad826e07fec9481eab13bb81f6f59e64d06989b32561d2d75b956fdab5e656fe3c82d093af061962703984a3840b0d3c8c283b3594477dd67ba2e2ca4285d9a05e31e5299b72451e33862821e18f2485e96694b2b1c9062339240fd446427600173fad2aa203da0319f7d2e4def01d246d11a28279034ec9b769455921e1f45a89483b8c5d9806109dd324af1aa54b9a9436b2b1d53e09c43f1d4280e587561cf08c198072ab75c1febada535e373c636fbb670ca9147ac2a15cc2946b9ab8736187ed756b81e0e369c7e1e2b4b7c4cc93957794dd3cf592176f00a37dc1abbbd74ca1a9db5e540ac8219684ffba188ee1e306943fe15af9560d64ea7396df6621677cf2bf3b27954ee5664f43da850691f2653a06865126773b7a8dbcb2342c2869dbd7cda1c31df54f10b0a6369110defa19594c842a9a988f3ec4682111b12eb18adc0ef31de61b60be70c8f541d8af210471195e48a83cd8a9117b4de28d661051aee84f1d0c476a7151b6fe84a05a863b2bde4b5c28d04a3bec4d98644c2f649f94187d0dc21b42ee8713a3de394b68fe36f22d322633109effcf7d8ce87840a8d64dd38d35d59eb07d66f7be0fc7d0e447afe92e64657a8209850f85687593349a4a005ce860b902fa84b617c44115c4760dcf7240d8815956f20dd90a059f5c7f897074ac197b073a809bf0eff7f7b27c49c3d13af3b04223d6bd49b9aa441cebfbf8311ceb6421baaa3fc3b623370b19f0b541735cccf11e418fb98de7d4e606655b2f672d22408bae4907383edc3211a6b5daae0fcf693c5f1c7917e4f19e66fd2415e50f896af79568bbe56aa03118d8b2f0bc0a699bd025a7faec227e05f8d7ed099ed4cbba2b0c40dde483b40708aa1d6c01500001ace05bebcb6fda6aab6c4731206211ca756d1ccb98ef78f95f5920eed3d7714cb2e43f505725eb3d4774334436142245f9859911e84448a5881c4cc6efbc4e339d7dfe67513e21182e4a48e83bf40a482983abbccb30acd3e2589b6d456ad1f57f1232a11acec1061e3a6f4a1a52651a7ef5abad662657ab85b35a51f79e1a06b02d5acbb91ccc2aec360484e119541992cbc954fb9fbb66c3b802a552c98de7848b62c4fd43c80cb4ebf645460487243d7bd6549e27b2a96bd4c07e2ebbd77293386be01cfaf63dfc76495a6f4cb4328b8a9d823bda1826fc32db2ccae10af51da0a481c108bcb8e8b961a385f89f9696617af2afa0bf1afacf7d5b7d516ebff9359070111abdcbe41a6a9a71b6f3c635eb33f84bce3ac17917ad0b4e6a3351d0c280a82781afc69d350ebb9262297cf227cf46f1b046a0c6f1036e60089bb9d7f9fb687e1e5578496e1fca3f90cfb832a96cad41ce0eb45e1024cf231225041fddc4007605a5bf06184ec25b4a53cb79c6dd21f03df6e8a2dec8d4517adeae3cd0336493eca3c837b1540757ff493da1dfbb3720848397bbe1f282575b8225e6689f77fac28711992ea71f773ba1a022fa72622e11f14715ad68091ad87b7f5842c36ae5c6a35bb35846bcc8b9853dde17579849f8bce68a952abf840f80b5e5cdb7bdd449e07d17fd310296c3da23fe3da0d10d365b7ffdb72f4b8c252a448eea6a1a4011f2a68ddc3b3810ff0ce381ed4d9c9fcb32480852c5a73eb73ad85f7c359fe921226872d059d849ac484bd79afe403b393effdfa3f0e2eb3e572b40f84a66f6dab4592a5a68ce4e567d4df722ece6b0e08f482c908f9469dd3e883de23607e194317c02def2ff386b5b297959048693ac9954b15b13336a04022838845b177db73ee9d2704ab0b613b761b166c97cc42d93713f4358d205388dd81b5f09a861dcc63a4d05b19cd09655cc80c2215cd782ac370149b083a4b00f580d2fb6f1a9693cfdbb2ac05258a48059b162ab0570915264344645cf8d281ed3271d4579d645fd390d507f12946f5f5375c676aad9eb2d12da8eb721565bf6c0ce7b6cd7a9edfd118a00fd0c515b513844137d75127783925b673ea61958cbbe48d872276066670a6a0c98b30d8e62bcd3ff0a2491c8f580b45e4966751aa482648aaf850e8221b2ea95d803a0cf96f82ac1508a9e0802a5c43fafddba23c258f2a67c8c152fa835af430fd663792f27c6e9b5b7214c032eae651d9e25dca89816da55dba292119914430c9d625242cd8e33280c4f47cf2aa671b9920658a4ee4070857feca6695062fc89c024dfe795a7ac0715923fb7693977ae09c6dcd719395c1aa093f2d72e304ffa345db729a6dbcc7bd546f50ca84e98904756c8696606bc71c4730976f780c60fd373ec932a7d4d10362790d7f48b9b9905e184f82a3fa65ca9622600f83fceb40d9298849e1c9907a234dd22b9de6ccc2f928c99f5ae69aa324a5281a82eb0ef48a6a18cde2f5c76cf0493ae55215040ef43de87bdb6b03eb8e78bd1a1a25b016db0be10d9878d0b7e3f4dbcd77242199fa9783491301a0ba5ce305df8997cc971e9ec43cdba9e64b3a8e528294aeccbe7c0d8a5e574a287bc4aed2fb2ecbb0dbdba456f4cccb4bae018468aaf8a48f8d3ee555b5c5c92c6dc285bc471a96d33b057837b0bc7fad7b161c836e17580347bb80e96c35eacd257fb09d5cb4fd86830322c450a1bf32de72ef60faf37e12e357005145b747620a0666f81b72f830749004af99215e041acd1016029e0f268d654b0026a65700d84b2ec82699018243614e25b32c4f250386f8f138befae021f425c89947d2811e850ed26414b12b18a18bdca9223bf584e78fa4d7321c9eb4743ee84dfc7f41c0cc79848158c9ed913bdbc2ec8c1ec61bb3f5881bbcf23b0c2c5dd793004c86751a40dd6b586d6c3cf79213d166f8835800d675c6b8f0e123751f96e1bcbe484a89f598d689702620605c410ef6c88b626b6fd49df27753a8d3e8c353a641c21dee8b24b9f9f20e3582147e4133637571939f08e97ad2147dd6f33825afceff22be1867cf70bbc1e773f8a769c2d2c155e99065f796ba1e3acaac9b3a47ed836245017f18a8010697b0e80a6b7b5816eecde30398bc431da93bc04298ec1ede372d07fb558d9a571a43cdb38e823feab1006dcfa29e363f484a87b8ea4b1d00d252efec8f97b87a38c0640bfff00c542a5ee30b6d49326bcacabb5ffcf08b03b5edbc70902bb2b22e11080d4e0dccf074ee1661564f244896399e0c4387ff043906bbe8681080102d0e2db5ef1379b6c3438b383f05eae6467df7e053aa7cb30a3cce3beaf3e571d8e8b132ba8fcce0da288fd70dcf2c032a79a05c6646d035a6dcc8d82cff7636ca663bfd6c42e90d959f2b2a297ccbc1c36f795fdc886311e149bb1e0b7be8630eec2f32249dae0e612f84a400b4628b4835fbccb5606dd063b07a0fa48464efa5551981e6c8b1e4bf8382f98372c6212432cc9c198fa33f280ed8dedcd1ce2504a4777f1c3f1fe6c55ae7a6a8947e5775350367d047cd3dff884106da852db993754e730ff206069cc31a80e77498e08f1702e6cb61d9410c15c8018715a8cd2f51f7827205d5cd03ad5572bd975f8c782c127b99175aee476bc3c0153cce7ca8c002c0d816f9aacac3feb52c68cfd769862c7ef2578843fb4f8e2175ff18aa443b32b23916fed158a154823904d0305308980430a6304347291585dfc4d7af3ae0d4de71ae941e264abf216d199072574847d5d18a2b24a0e530a44e75fb5f38011148c13d520642fc62f655d18d1b4d422075f79343854d32085601b27110de7ce4064c5e26eacd4dce9702ce207e3eda9790e8e5aa69ea01f1e3fc1802ef41e9e5f19bfec8d07d9bddb38a3697b4ea2e4b8b8e5b622be6628cdc8599dfa4698e10ba1a0aa3da1cc72dc685d3377243bc80a9f73634fa05a61615a7d85f66d230250699a1f38d0746b80a903bbbe2f04dbb1ad66124f0ded425adb2a58ae7efab69dccbe33370af7f7249cd0f0eaacbc1c827003e783e5d785076b97e7352a25cd119ca45fb3f1b7c0a3a62486ebe649af6e9f005b87843af761612258f48c65bd8cc917be68865e21a48f59035477b61563c45bd4b8da194a798da41772ca6889b0981f042393947707137b5e2e289da3b0b3fb1958d61f6dce56f1ace6d8263f733ddcf805759cb39d1561d34b738055fc14589ac01bd5b07ccf454345511b8b7cb4d9dadf31b0a3f2c885a6576e7ef4b5561e71626c65b24cfd0cc82dafa17227e5f5d79f7e957757b87c3e114275a0a65c2982a1cde4359fd2f77ba635a25659f014e8885c0508e031021fe42402727e13956f1c73e0e4c647f575ce741adb635092f132fb2b65901636a8bdeada08903bd14b5d071a83493f5831bd134922a6fad1a186564a01454c69154789b88beb1e7e595fbd78960ca063a1b34ad868cb20bee9d3090f7ffd70261d9b96efca2f57668cbe1239a2216ee022b4a9697c67aa341cc6b8447d854e465d8ef3d2799eacdc873d6de6769982ce8b2fbd2869ed3d7f1d96ba2db08fdbdee793e51c4b058705112aae1ae75b104b84130b5f5d39d7237144ade2db47be3162e0caa716d3a8b8b1fdcdf2e6b8dfc59eff3865fe9b71e5080c043a5eb782ee38f007ad214956bef4cb5d9d1b5d95f33051204e421c8ecb6d9dc6ea4b04c7c6edf8ca781ae5e02255eb7a7227d0abd9b9ea1dee17dabd0eceea211e898522d26e5534dd41fa867d4b9c97613a0a5696133253a61c07c23d19e15723530f1a71650ef3a6c0de55406148c4514f37df95d3e4a2f4ec7bd1f8af803e95871f1d347e180719a6cf6a614d4426779baa6ca1a720a4a83c06c67fd3f666574f0339e29f635a891ee8fe12a18e303329b2c7a852dec0da405b67cd8d80ce89d902a79104464c968afabaa5678de97ce7b4e6cb422646bc7a88248295ae106cedebedac1d62e75edd2024a28eb7071d70f0647bb61e64ef2fb5a97864c006b1e6c76b910a4b27c46f9ec32e36d5d3573072d778f390912629df399c854805258c1b7148a46926666b59b713e52385a5d1d71abfca03807a7d2426251cdd10ed3c50b6b31b158ed4d6f6240b55398ac2c7d9655a919ddf28e3c2b6be50f4085a2b318444dee92811e5c9e7767d6c9cce93b3d2d2b3f858cdf2da00e14f243af15f3dca8433bb1c3fc75dd158af1e9abf5dc7baf2b749502e12ea70d3036051c857761a48613b80ac39d16bb6727a113401d26989c5f3d73b877c10bd8f29e6b7177b4c990fc89e183502031f1ec0f1ece7e846dfc2bf775926b17110f3379d4f1997eadf1241b86dc9a16e1dd62e1bc904e96f3aabaa0919d5e370be550509f72f3ed686a28306d17340c575ce2e2328b1eb5b84d3d53c2d4305849afcc50abc36b03181a8b61bc1eeb35c7523ff19649ee958944e779fa9987d7ffd0a204e87667885dbabdfdcc3ecfba872fe28654a77b31fa2da94c9e20b01ac51362addd8ece13ddebbc0baeb8be7690491bb8ace57512e27b28c005a874101790840c237dca8ec1929d20a424454801d151f531128de5db176530fc856e51d525cd89e770d59a374398f2a3a4f3f59c4ff07c4bbd97ecc617bf8745019f43c584ab1d6cf5f413eebd6594d8e69c5247b93001b600492345824e6813fc58b50cc5e86387e039ab9d7cfe0b20f81e0b8d0c2aa801d630794023bfe98f6ec51ab98f1ec12191df3e7c4e0f888ee6a4731b83c13610bd0082617022d257b18cf83ad7ba93b97da426c804b5cfe9338abd435261e99bb24e62977d69ccfa976e0de51f92ffdf123624442f51a82b184a3a7cfb9637ad76508c970179037d5bd37b71584201bae1c908b3e889d5039424b3df2cfb8125234915566a09b5d9549f8b7a42e81c831e3e6a5fb3c60754536368ac3105743812a3099001c5c37a87d39b006be929086f5bf39565bc85b45f68fec3f2abb5ed14f02a4521560cc1fbc482e8b2d4732a0912f42726da9deea2f0792c87f6629ff949f03678574583e9f4ea7a679ba65f21ccd7e878a9f4803934708f54dea17f62cd766c5e587e89b2d331e1eaa4c230a92f11335b73951d95cebabdbf249910ec284db23967e60eadf8ecaeec7ea3bc5de9db6570bc422d6f9852256dfefca9a37aaa16f2d35e44be988156322c7a34265bee5e3e6ae4488bdd6f5f11b660f7cdf5ad6c761c83cfc44529afef53fa5dc247d6057aa319bf4998b1a5d1a87e78fd0abacb50353b48d3405677afd3df11c9d544c163bde4130a9dd855343eb200790cdb0e4ba0a1bb3ae9a8cdcb75e0bef683ff0034c81f7c5ddf9671a1bdf138f2886e542303032965128fb676ce13e5cbe884b3978ce863093b0e1e7323b01a8cd6ed8050300107804a35995281599c7b57b5d03c0c7be8d96add28965731773188d3b9d6d36fbdf65ba9c39a714c0d2ac4f8cf6ed7015d4417057dba6705713bc710eb2b365529bd93ece5db9edff57a816c2ec3c9bbc8d92682ae13a7910168cb6c452cc795196a963b913cb0d72670b19ceed5ff766589ba3571a9d5c87220eb75b91e6335d421ce00c05570f20598832e131618c922b37f962138b175e40ffe6080c983c59250bbbd4e9bbbb30c8c9aa927a2109d220a42b23ca191c5ca090c519396cf8bff34b2b67c54a37d49bf3240b73454a73b47e739e4ebf2126c40820633c8b828bc3acf536e24c7cfde9ce40ed520c81077ab3ead5fd50e4a66cb68e261bd1e0ade242cf9ab2227487ff61bce945eed3197524e3f97f1e7a3277e527f664623c26d08a08fa083f045f7c29e5890a766878b5508b79b5b68de730e01df4d09a66ee61694161dd106dda32cbdbb63a37521fbbc91631cf6758ae28af75064f617baba38b75ed6b24b1ff5ef04bf312441b0c1438536f13b1e835e2175c3bfcc98a2cd779a7ce346e79ef20992f21d73f6f66de9db3993a03b23a9359225b5ae9020f8398099400a1373b5b6565cd1ac17e0c05465e2a2803659d5c779de61c637fa874be8874e5129f7eabff4cdfb2d89a53106fa325ea2c34aca2af92222fabd8dbbb9a2e85050fbf1531b02c6ca0f307f6b5ad13f2e46c2d4c30ae01f1bb10420497d73bcefb3afd147d9d28075b43313cd5ca5641dc79bd5d1c3ea84b4a71c4ad9f490f5b7c9ab2e2e632286b4633473e8698e6b58cbc6da570831f917d4f973882f87fb983849d6060a369245f708ca05a2c0f5b104507c8cd75267b45a0fe766074a1b65495a34e1e452326897d5fd9d2b95b21f818a6bfcc3dddcbd92c5e7f90b808c58bfbe1065ffa0cd64878d72de4589543c8b49fc078aa4edaa1afc70b83c500c8c408b3c4ad8d51c000232c92d2b1dbfc51a46ba61f60229b7fc09a191933c0d824e85f8df2f40440a2660f09fc3bc9b1ed5916e901c483461e3eda3645fd3229dcef59486260fddd4f2ff1a7e271c5fcc9d39d371ddc08aed5da0ea866e419fa622140934abee3bb254263acaf1b1cbf8b67915b4bd1cb9e134bacb3f090f5048d18b06f239532c7d417c67b5623929f37125315b0c272789cee03d4cbc91e695bede5b5eea0e2913e5bc45265266bcac6f24223f590e2873a3aa385df3dcdf7ff4a54e2bce09d4d4dd1cbd37f234853c7127e38b3bb416f3c2ed6c98633baf60fbf2f49c9f37102689aca1b7617fed5bb8f6323f68bfb8a067aa7115467b8572c2537b0dc024aaf35f07c2a90ec3dce7f7fb23ae186a00d59b03375f62974e58183bb36a86b4ec2663e294c3e83f9964d4e98b00c1468a31eef78cf9e8866694b3cf3bb6ddead832984b3cf063dbf977f4a283b11675e11736cccfd71d3e150ecb63158633dbf88a95acddcf4a71af6aa1c249106701aa2f685a58e1d22919933e177683b616ef2a1fe25d31617cd7acf76804c13d684ee37ab62274b2af66544f6644ece433f50dd3fa689fd6409d4ea72c113c5b78b2e35adb39e0597dca63e8a6b2116b4975b4e56e4dd188e269864454cc4bfb0cbba2ef51dbeb43b04b3977b614d95176cba6eee29a381611073028b9fa906b5a2fd62f04f24c83200233545a2f3d7dd105eac4c7a475c0332348e0f54bfdf1c695fc45ae7b314d589410bb14efcb7a5a2a8e6b6901df1e3fd97130c2bc59038a33d1c49fa8b95302b8755370aa24a0c523240e3fde02a19e3971a29efbc2c98b43daebbe097bf0d8de694904d27e793df7400d8e8a1be1db54b2a6315426fb3eceddfbffecfe1e60b1d9f5b2362288734efb1ab2e99dc6edf3c344f80fc8ff6e49669bc21c3e47f4171517e5dcef509ab273679c96ae7859fdd55b2cadc2683c4c434bc7922ed8f7595199c3a9d5ba220e48dd5b62aa208f813f7302c77db6c13008ebae5330b2294a25efb1155bbd562c216ec07f9f7c2c8cfb1aa10c3a6f1a728c4d36949e616e8e0efa8a751a5f2bf7256f6b1ed0410f2326dc732e8c85c6f26add9f7d452996d0eb82625a4004e4248305df6f334f614f84b9bb3bdc0ea41c8151fd62e5dce90c8042cdfd0e0d61e0eaa25e11f3af08a8f93f7f84e449f9f875714bfdb28b8842f679f1ae5ac433b81192b29dee6d259811273cb634f548f42cea9150d6fadf80591be2ba0e9ed1c9309320ba373487877981fc93b1f5eafe51327930edefc9ac19820659a7c580af85882b4a95c1441e837db15c114da320d47e08f7874b185f8abb90bab7fcd730d132ec95032bdf17a6b5f5ac6060b16267c77de4a9f399ed635f447a63c9eb16d8fd14172eee9a7dfc10996b7d8e112903db71cb4c8ee20643f80f50e5f482cee5dcf250fad3f8aac333981a9d16ebb06184ba20dd0b5f4827fc3a1a0b5aecb34337fd8ffda27832dd7f61b8c84e646f82bebc42bc0181ddf6542a04b60350fdc5e4c6ad03a20f944fa58937572a577928f920d0bdd40a86f578fdd05d9b95393f3a62fe88eafcb9c5c251757c10a0f15a6d1b32a9b3c6585313861687273a430a268a5c418be55b0d16a181ba0201b9e481ba12be6132379f3c5c83541aaf57845c22e2937a62bb983c54fd6913d33fd43fed532bd1e92d4c431121f5af1cbd8e94e03a1a596aa8fc03044e342c0067fed63340958ddaec3404c3e1309da1010cd430a72404415f74caa5689a24ffd279322c1a95f6891912d391aedd0d6a6869cca6b534f8d69c5e6fa7fe7028ccf0219d6ce4384af87c06f3ba9a6bf3378a10478e717f83c239bcd368eb5d6e173213765e377d7feaf5159f59d55ba33688f4a16c4572c83cb7b4ea34da5c3e24b333f50a3fdbf0a4a7a7a21072c4c53371095c85182a90cc6c105a1c3f3e481292a9ff0b87b8d6601407821e27ce9397a2c8b1b33efaec8870bfaa53e7254a8bbc5f0c130ff39106b2e7329ead3766b6ffaf492baae9ac1de75209f7970b070fde8518b83e5bc6f60ed964f686d19355d3bff0f16e319cfb238096556c398d57660eac82b33545eccbd759b98801a07d10fc662410c1975ee5a24726e7d0cc8f5430ee5e90bac74087bb4e77b642b9f370f13b583fbc6f1303375748f4437e5691e8c9f0e996791e55c873459fa087f4a029bbacaef899271a6145f16adb58c726742277276b5368871f75fbaa3e4b0a41b7e85c5680b4ec1a67686afa32990493d71731b44c4563574b936981d04a1808af8de41613d8f921310dc0cdb8d7fac6585b772942316a7ab64b09fc2292f5b8aa540af1a2ba14b0cf27049d322f59200394fb2dcab536ca3191eae08f0031f046f66025d6a12c28f393065535b3f7d226d3dfa255c888f07094dffb8aa7d807a475116d8725d17572e5a4f8af3626c3d618985bc71f37758c1c290919795e70e96c002646c2cee1c6c813e15f629dc768e8c789f96ef2a47f6f254b5446f4e6bd69a0bcd43bdb658ff3c30c581b0ca7f8ec8d3a386f4586abcac392eb0df9e2cf5903d6a9cf7b430da5c4be82397beae5adefbec3ba9b79546bbef89e9a516d4e07fdbc6e378f3da8b6c54a198e01cb5253579d507759302127dd83c271c65571a5685d837b2597693c1b8c2c3a8216a77a55b687d04d5e9f94c27ec311c163f16ce3a87a958fe57eb564301f556fe40f1b199b86420ae8bec3054e9c8002b18a488e989ae2d0d6baccb9b029e3ca58f8794fb05bb4e85752869a2d602a2dd67e91a81f5d66dc4812a97e8ed71be080952f5e9c8d62ca129348ca5ab50f3cf211dc154bf2dc477121ce412b87006f8a5f3b29ac9499d91c9d793fd6544441df0ed4207abb9d5e60a58c455dee4244339028d74d5c40d83df183e5178bbd051840290d15d04dbeddff0297b4937b7754a742457dc732c5fbf2559fc4ba7064ebfa8b4a667b62e777b7add43e51b0c9d9e7d91d02286ce231697a16b4d9c17a9b90b95a43ba736ba3f687067ad92ade4ad797c2abc801660102c1245bf14108f0dc98bc02c15ea3f10bbc29112e9f4749c3e37c4b64ed5f78cd769afd9ebd9794ba666ed4753817bae7e351ef27a2a30b3957a609ada79e92bd2e63e0949b4b548bf2d8f2f10f020da0d98130f06f3eeb8e42bbd6c7929c272c1a4b13178b67e6b6ea354a05819b68f1179e798902f98e57418925ca34c0ef55f1e64f8182f1872339c324b2161176b9aa1a4b46786b1bf0deebcf4442790ad96b60d9c00d0410be6f5522af7d590678af46f44dca7d15f84ac903b67804563b49293fd5ecab85fa441b42e7864ba2d56557e71bd3f051d31d415a1249e07864e9d66256026b7f4b20a40df9f9a2441ad09450ffa49161272d3fc744523cb41f75a827ec91babdabb67b04b737dd3fb6e349fd9e3011675f70e4e3a6abed759e9679c0d6ce268316b7ec3fa7ac17e5ba495ad16d3bba282bf5773289ffb127f3c123a765badd250d87bce685135a3c5daf9f443aa67f7dfee3d15eb375cbe8980d90e67e52cb37170ff270bf87f60178a670a3a4031dea8f94722adc6d3fb6e89afb861b109d6b3c97f9ebf767e9270b16f3179e7e436058b2b7a7300a4205a38e309acab5460e88b3b7678508634db63a1cd4f0100d971a71e1a3d08998fa6e99b59b2c6ee2858e405d75f335e5f94137800eb609306157d1d9a35073fc3851103697773a06c8e26f0e297f879eec143553e6dfe3acbad7f4efa33b8fc9b73795a4cdf5b0e8229ee4ae5f9c81ed7bbf143eadaf6cf0042483f9de8bb28032714fda5f830bef05dedf6422718835d474aee8873d3aa40d0d1e8c3d3159e98834b4b4db13867eaf447da5e158a26fe088a25bd0f671a70927e640b29310dcd616dff3662a0d2bc774ffdbe9600a21caf6b99b2718dfe9a2470f34b408b2ff21957a5ba9623c9df4992cfee3cc92a149dbd620ae385923950985323d5e6d033b9038d885e9acc974dfba9f6c92d7db72fb740a6dbd7aa11a4d9f472d55a31fd7ccdaab2801945388f7cc56ccdd40f1453bba339462a7a597b4e69cb92290e7f570cbe1ee7eb13457967e83a48cd56b0e251789d3b8620d8827e9dd98edc5b55e89458e314b8e048ff580ccf3b1dde786677741c0a1f63eb0511e92f353773d60870d9a0de50a799252c7e22d12555fca5402dde8d66994f720dc1ebbe4910a04beb91cd7de3dfa896e435e42ab2d8157616b0bf563c6be1f485b63eea6a8fa96e68a87055ba263060eb2c5562962becda9d2dbf026b0dbc1bfcb207f90aef8be9cd4220c97964c307b7713a871d8f6966a35d8ac534b37974279a0ff10818555dff59fc05e2a72af018c49801714f063866eeeeef272f418cfff49fc8642d7e593e1c1a7933d1c8f7378e66ce7b8ff3c03c7480a5f3f15ef29901be9c68499fc01375ebeaaee9765a5624deb60dd93eb8b167856cadc9d7c584436d79a43986e55ea381b2e5921eef1297390342d83aced7391e8b5b1cb132684f0ba3eafdf5a1f7d7c143ca4d615b3936249cadb4e6e9a7521e379d59a02a27920e7e2c61af4d3c6d06907618e35cd8769b2bc66c059290217acc1d613b5a19590862cc33a0c494d52525239abd3245d01ab59288d06d3b0075a0cd21ba03824d048b350b1f43d2dec33f9ed46d22036c43c24bae988f7b96fb42fd8c08443f1d12b859ac784d092d63768a54e5f306d01a4532737789777cf34d1a43ce1e2fc0a48a224dcfe05c23be6228a6a554411c3c851ef332ada75c890eea42712f73f03c97e76911c45af45713bb9cafd517256bf3cd85aa188139c77554d96bba9808ac8839537c1db27165edf80334cd1bda9f76791591891b2ad572ac11a8fe33603978d4ffab0798a6bc8c9eee2bf40ab109bda25c9a78678ea3264c8e468d58075176c559e32b20ff493ccae290da0384238cd3e923e1e9f38c350167a0b72275c3a6525d7b07da2917c4e39d194f676a1453136a708b35450720ce0c076f1b25d4eb2c57f47b848101dc851a977cb66233227f9fd6ac22ca0f20dc356f44d8f63d2fd4e40a8a31b11b247d5d6c5abe463b586baf3ee6f201f999afb6d78c540c1b0e9466ae961d02b95eed8bde2a9a5bbcf597584d2fe1e2ef24eebaae35ca85d4f89ca15a17bd0882a7218a1b7da4369735f3f00765b2eeb6d9aefbb075a5810ade788c9255ce275419cb450b8d55a1f208a6b288b931b986a4088a50dc9f8a4d87f8d37edd561b7b6cb41820e39b489d2807cdebc59bbf655d9cdfc01f9bb366ac1dad8c89b08987d6f26ac7927849b891de7ce8182babc1850388ad8fce2d54b92d4712fc446f9128f497e92c4b5b84befa4c1ef89fe808165b50e2e2a52a90acb7ac9d94e2be6c34411522ab9470c06b9967ab00c96c4ee2c0f256c9f35fe1db9731db899dc6a1f3cb12b70b3b89dd8f0b653ac4d39f9098ba279b8b8b5f70d9be61cade7a0b26138c9265ee383f761411cfb99b25aa7ffbf65d2459abbd0272826748ae376aea48e5368b37ead706509ccfe6545c71543d73ea132abc5e179062b3382173ec628a7e3ef673e5f6bb7db5c105034d7149637aa1a1e17ccdc2554de989f746f56168234e218df941ab3fe682aaf522ecfbf17b10a024c35f1b321340de1ce65fcae30072765a3d8a09decd00189940cc2170230e2ac7edac9f5f215543c5e36f30356517493cf0f9a42d5cd6c8c962e3fcc586db66c241c9734401d432d3e1903edaebb20242c5762c61ad4a989143e1a96ccff2c19790697d9f71d846ef061c5298670572286efab22d245b03671d2635de6048eaffc85cd7cf9802e23d8073f4d3f3a8721303a360248f5f4e83301542d81a77621f0abde49996e4107bdbe1352cff126d57fc5b7b87a774cf1847ec6b74ef6e5cbdd023df721c948344c9fd37b403d291a4a694de49c46d571b34dea92500a9e490df31d204cf7b6a6955f25782f9eb91a717300de93b413d9b101074e5f7d13f91037e6adcc7ebdf78c1bcf884dd01cee53e4357f7bada9a8958d7974a530659b38600022c56eaeae89addfdde177ceb756bb18ea224a54d118a54a98236316e71e6b4ffd509a3024c9967a2d452036d2625351f38a3219b91aad00882d1885c61b64af36f9a2d030ea770805658a8d0266cf9b836bd0cdf31b3c8fe5eacd563fcf1b36ae42d3b8c77319ce45434bd20cd2960fc8ae5162d1c22a866ed58355ad9eeb25cf1ec9992d4a042cbd75badc3f1ce22950f37a9a285a34e2673f1177102e8ac41e76f00db33baa08cfa530f6ba3b57ed480c4a1e30502721cacacb08abebef874aa8cd01b9781e27b71096883f2fb6a8dc80680ccbb7a57bfcef7d3912834b4b640318eb4c145e6cfc0841c15a7795365f096e7869c475662879ad7b206b067e5f4ca4d8d98728554f72244194992ec85616f37e805162bd7008327aee57d97e8e3b1fa5422d681e33494e34189d3a8da14a73d9a85eab39a2901b9914c5f094d3ff97d638c72a627f19b66a0492decaf0fbff1ba68c061645d7e83cfc74213975b6daf4caf8292bfe845b4c1908a83392b4c206f4a02f0252fa0d52f5e52ca109f69a60f4c9e3c028c1b4c21095999208b34f95fa0609c82ee8cace19e115bfb9476ef56f2543ae4b186d714651471b456bc8b5b44b4c4401e55129c6f2842630a796002e5ed8c4286773d8ad5903f16a04ced168a2ca94d9093efc92e83c8ae4049d5695a6a11e84a058394c4f1ab7e6d643930d613d9eaebf595349559fc318c5bb9126976360e749fe598dd81f3c4cf2e18e1881a64baa46b55a40124196c84219c32fac91be4cfa947ed31d4b92dc9997bebf204129cd330d6af0b88ea10147d220fec5c68651e2ea34944be326cfc2bdf52902023d83ed80a64c2881329595d47a62a7cd2f06430acb2c13bcaa789819b9a50ca83e5e3099b4a10462e7d96189806c7a393270f2278b5a2ac2dd32faae24c1c95c91cb8b9e344d33a0573fd44f21f8498e2b58d8e116ecca978f78fa62c908e5e4a046e23f039f61b431ca89c7910785f90d0d73cd7bd2304167015f6eac46b460843aec88789a7c15812b11ebbfeb839a5e5b5556db311ce143c922a0d255ac9c0880b6281f1b383d0e0a72fa3fecf95ac415a4ecbf72548548d7f46f0102e6f183271e089e158cbc0a41a435fc76855769329983799e2003e548b7e09ff6a1b615085830ce4a33607b4b136731df26d8f0ae01601b82cfe36d9d0133e172bf3e33606d0137c82c6512d0203e825ac1d80323bf36f52c3261157f9c67a354476ca4adb7b86afe3bbd6b45a0792b3a9d21b627489ba1601c72574e0892ab0ee1cf51c56747fd0a6563ddf25be2a255e7ef458025be0372e8e62a85f8fa294a5d59861dff780f1178c04d268e152b3b2f2ef83e757bceebf295899fd112b0462c98862fd869a820811fc2536a1f2602e93c13f768b96efc1c9821972e340287e58b9fcf9e4d573a533297f792e5308aed4a3a6bc516735a4b9541285e366ffcc2040f5dce85d77107a69580a1615189f83dab0d65e9cad3e8205206e4cf97ad209467b53f08b10f76c7543ba2abc10a292b2116b58c762d60266edef7c8cfc8030d52e996150fd7c1379d3496d421e7845f5de738008352a465ec8600fe822d8f94cecad03f4742cab0bd4cf2901a4e73f898fc03d66a12aaffeb021e3248bb9042578fbcc0ca9db8d903421eb3bab03f0c619d407136d8ea123611a5b18b20f35186ea7e207c66772bcb4cf775193b9b629f24ab94f5d4e16706d69ac4fb754be121380e2ca33536e5d3034d9707931abdd1bd18416c11912d8dcf39f120af4d43af86b73bf9d1e710d4a36642d9c0b4afb119ebe30cbcffc53bad700ecccb54dfef9598c987b2c297748179ca92fe4609cfc19ed599d1b4a22ed2612644c1dea1e9262658535dc2662c61343502a90eccde603e2808f03d314643e4285e450cfd5c4da8a80c9126a3abac37958fb532b6c08befc57dbcacd7c081026ee8002679caccba414216f2eec8019734cede3a5a7d5564df84c61401685b7b08143215d569edcb45cc696bbd22635c8f183192c7be3e67aace3b103aa20941e8c572e8b6b49f9f996c2f9fb7e666031ec1bf0ac385df57701f113d5dfc10fbccf9294fec6637cd5add80db30711cfcefa112558f1d00a5ec3d7ebbcffb328308a12a233b168141a6c7ba32abb6052d16154b8d4590b456fbffcbb0cd4b6c6811a725dcc1c377bbae5c5efd6ba96d6ddd9f16adbd1d748497ce7cc5c697696de505e019e8086a4f238bfb56200d990ad9da4416077714dd293bc9a7caa415083c14911cdfc1f0e4e50add9b916acb44bd603d0b71c0062227804387057ce3e48877684bb257b3b511b95cf16915decf09cea134239c32a9fe06369b4cb83f5fce63feb0e70b98d351fe5bbf08763355841b1f1f46bf51dc584dfa9bba48240d40135c7ab0e7a8a08739592f670925f282ddd0babbd3bcb8a5c316445c3a2233b59f5d7aa930a855c16800b00cc9a6b60632a0db67a8304ffb7e6bd8ec5a554ceba769a72b85097d808ae27613edbe26a667b7b808f2304644d8169ca2c69d88986ade9a2c02c778507134f93c3a9dbc47a77a6f9f1e5458be5204590bb32b484e411f13af1454f9ac031372164e9162ac2a758068fdf1d1c86349dcf808e2a42ba5e072c3d8c1883822d0612d9bdbfbc9c9514d643d651303f68c777d9f54e55f272c3e1828030143ae3809540759dbf5e844a16f044e15bbc1b77df8292f0b7d0799a21aba2014a06a99f2f55d5549df114526ec200adeabd414c9322ba2479a5161eba6f717c3cdb085677c0865045ac10eedf897e50f0ce3da388b7f0b8246ae4e0b496411e66a3408f6c2be02bbf83337ea3a925c57ec3bd02a335070d54a4ef5190dbf95aafd4ef3f39b21d294773b817635e925fce57a5c057b81860f3d9c56cfdf3c6b0e0a8e7bf46471d4a6f6663ecc32d7a3591951e4b22eeefb33e29dd00b7f7ece64787d2456abd2907e0408c68cbc8bc65a7cffbc1e020262f6602f324efa23cdd64be84cb7e0d22d9e78def23aa4a66201795c5ebb0d85a4454482e740c31fa2dfa809557a1f1fbefa1d7527bf9bdb7be5db7ebbfc5aaa3abd4d8a752a4e2b16ce2b686e46ff9e8e792d7990e75d400aae1268d3dc80b351311842e67a42ff10478f55a2877965187a98963be266074f9aba479c5850bb08298af15a433b31bac1a24c81ecdd29554c23a320c43ca9e3fb7e3265f09079755d18e0b4ba17d9c20891a73ae7d63a99b44f226a0648be4cb74766ab2acd11923dd81c28badb5fb3bc766891307e1dc26b176c21023c0b00c7b775290f2f3f646c62469741201a63d1480e4042814a7d9e7600e27a0f827bb8fbf497ac6c6fa640857ccaf11390110e0bb0e2dd55bba66cc6d15e118539412de8813093c49efb45c7e5ee900b95f38e56d86b827e39436ce78f53d0439d4a5a684185570a073fb7b9724f88a290684130db7dfadea166243c3ef3a37f58cb8b3c2ca813c3f3d00b1bc9e2686b9b766c2fa0bfd0208e6a93739e04da31bdea9b08c5eee4514dda66c9801d6130519e25f41a69d2271636a8233aa4a9e1a9707db211d86a34ad6024851c73c9c37a91d8edebd094969bfbc8331513a8fc2f41b710f2bb4c4f0dad538368139b60f1d9c571e3b9ec62d1bd4c17531053bf7ce8e2e82df4b14a64f735d028bdf69a5d087f21617c777a712100d858fb8aadc6662c3ed420c7fec081c28141f29ae0b3946ea1c9ec1377528da6f03563139b41e2d5efc5023ff0b64d23bac2746e8990344e9f8c0d6363cf5e71f75db713445be3b5a78528cfdc2d5f387a82b7fc77d50dae2875304f8fb3048a18fd849975c245b518a752af57e60f13442ed8f3492bd672513e2881741c278f60710b13c6fa16518d77061d76454f7b8dfecba41848a2522aa690e8aa039f0fd7b2f9d7dd7e311dc6b93ed98b39ca6a0276a386c91de25907790039ed62e40f69b4d59c4fb3813d288f8ba9f749df9097d62cb3ee51c966164f2e692d24c688a307e6fe002c88eb3be83bd6ff23f3cd6c36c86837a12dae45f6ad34b94fb3e63d4d75fd2206dbf47a165cadbe3632ba7f5ef3897010b7387ac2f19a6e2a998a743cee7eba581e3b6f596e001f300c212eddee1a150d185f163ea85c00365e49334b9ec9b8fd29352181c3a3e86cbe8188f6e0c76edfe554d0f463834a454eec0f41e409a435d96cd6ff42efdcad128b745c065d4610949ad852b8dab61660ae143f2fcfcfe74efd1f054341e3a30fa79fd8d34f24a4078850d29b6fb12619c15a067a9025814f19397cca7c4525b97041526732214e31ca10f1ec162dacf8c97487dd227db3af87b5073883fc1d2634aed9494146fc1fe1bfa86ce637f1be5fa9046d438597bd208054d2c00c8d2275b9a34fd97d5f079e38635eb99f799a8ffd50cd123cf3f752295e37a0f2204c6ae81e56fe1351c8ab40a542b0a6a9405a0ff6df94f7a65d9f857ef9151f45187f748cbbd5c637a3028fe9ceadc7de3b35c04a6a30fe821d1b9c62fa1284b27ad01dc7ae2867cede7322665ad88a2c4589afc4d733af0775f0e43e3d1331d5f3b2cd21e1e508ee5723e8b5741b6a2f5431850e164e3bd21addd7dcfa92ff98a62b0988b79fc33d2108b2a040a6c5a72bfe0bad1013edb7a7b3ca5bbb934f6fb575334ad30c03ea936e7d7b7a6be8ce8d361c3d817b01d20fd71fbf1a19d49f8e7fa03fae8567c5747509dbc6a31c98ef115694a06310fc62c4c4a3a6ae6f36006b7728118936751b90bd920347d04f763bac4ec4090587ba8600b7f4df2020e41165795e3a5b8bdb07e039da97c94a4755be921b94a622703f92c8aabefe48f57b1efb06def6af49761cb1c0976b97b57403178d8ab03f78a51f92b25f45cde667b3e7005f813c594c5a62e98d0ae3a5a1c4b12f587b6c0082f38d3c5b728f26c9b06fc5cc79eab84de334628550059557e7fdf5ce346e40330c77865071c5cc4613d12bd6a6774711da6fc6cdb1e3090788deeca0a818c32a7a4c935ed84e1ab9096a7453e761f38200057579f19edf9764ebdbe698264a6c0ef223ab34e68fb18771f9bf921cdb62cefd31e0b53cc1df16102e9ca694d61459c848e1667f18f1a73f46b669610dc3d704771d2d3f642b1fe8c723ca404dcef7d5d5ab0f65f9f0de4fc97b167fdb8c83457c8fc1dc8bbcbea1d8be5bd0a55d345cdc3b0ce73a57fd66f0753dc749fb111c3059dec9a247a271c116ac1e9015f3f00dc702ac0485028741ac1d7ecc1ef34fe9e2c3c6c5745ce1e6b72cb60261f1779607fff7f80ebf9aee50c1ed29586dd29c576c636d60b0829e912816333e54958bb91e7af23847037533be7e0ce3933bc52480ab811bacd172770cc70ebe8673891e4e73a87c3571154a86f889488d7ff77f5aac862b934fa6a33f7f6a8768f6757a1448a50bbdb3532f484ba7e8299655dd1d07bd08992036308cdac252ccb5ac9770cfab478c6739a25f85aa77ca0ead7bd800869e6bb69b9f1766986c46590742c5f01f457fafc90356d6de7b96ca14d6b8c216ce8d513453eb0227384b2f4fcdd56247522261efda72c148d102574a3352bc8aec816384150de176aa9d19a68cd29d3f6b044f3250dce1aa29a8a2e418f159b142c41b849027958bcd0d295e58755256c3d99aabb347e225856906afd1ff80878c95a9c1d6c20ac43f8782880f2ef809416e3904f6398ab0beeadc24ec7a84297b95fc6cd90c5554b06f673d115f4458ff6712c42ed8029fff562213bd75832e322d0e50f331a02067557b40c5a99c28ccd965db1648b5724877d6dadbae63caccc9fd4d5f45c526bceda02d124bd690aba5611b8ca06436ec181baca134dac7d4e68942bdb942129f6308cce687d46a52af1046126a65bc13c44857ae193468cae8af0292699b8c10f6487eb329d831acde0d794eaf142f39c273fe6539d17aa5c77ccec52f5e5aa4e69f07ed0a926657f2a4f98a9df085ad741b076e0c838a4c8958bb2310585b07b8ae078db34ac927224bd434b5f49b13fbfd28338d41d31c8c567dddefb21274bc529f9105b191a19199545f8a1bd6e3294a5c642ce8ce65a1547d05de02723ff46faa79f9216c8192331641152883e7d0a9b673d5ec8bedf7f25814ec83404c3cc9dbcc6a7b6c34b74252b3921860c151defb190343ad6bd6aec067960a9e95cc3fd191f4cb565fb57218b4f4e4f66286e9c3cfe3dce60d26aa27bdbc68cfa70614e8d7dd719656189755e6e26adf94f7fc9d568e7c06f3cce9dfbb2a49b8259401322d167bfca5c364e5104ba9447263a9843046c71cb1d8140d68b0c32444d5506d2a4258e68b45e96f9a81ad72eb93084d24d0cc26d178fe4eb1ca2b4b4e9f374be6d734be7af9a97e14f2d39b4285db77bed674ac4fc98424e6dbdbbc1f4b23a17f4b86de99fa9408af5f3e7690dcd6f0cc5e84241b6d8ece3bf4fe52ab13c65a964ba4c242e62dafc2b5a1cc41ae97d5e24b2d939af830ea482a9b8276c40124cf0d7c16846ea00a4668cd9f9394fa52d7f459c4262c4a108a835ee91ab809cb54abb0a7a2bca2ad5b648e001a16cf0446c826b789fe1588e06cf0d2c526564c538dba7291a351fdc190cf5b3f5c21090e013c4c86778b810ec3c9ecb8c442537be9d7067ea2709460de198dbc399425d36af90c505a8a5b3d6bd55cc9b072bb834ee04346b7b7acc0e8d5ad218185f27a36a6ed11a02331797b5bf5e2b25348a4404d05fd0019f49126f14153abf6fcb1de164165c2864832f3f84e7fca5a591ae609a66832284725aac81408ce7335641c7bb0dcd55d05bc03a627340dd4daa6c3db6882d40d05f1717bd34be272cf49eb45ee7b74a2afcfe80c8425d55f140f8976b9fb58b01410490634fe5ae5e9569e61073b7835b70751b3b68c3f773f9ced8ceab4fcfc3dc037cb42530bf6f6450422aa8985c31b6456b89e37fb91019c9c708d447a7a2de2836642535d2dde179ca676c565c047cc0629260867c7fede3113c0768c8f537e41f36357d875418ed99e70c33183fc847c2d46730005bb39467ad6c94027d43d73218091f7ba22b179a2f64d4ccde4bb86909d032234e9058cf894ef199de6edbabfe384501c654ce78f379e2c460200e263f4d511e918a0fbbdc84e021b59019a9a348809ef496dafa2fae8f8b571c600c3dd1b60756ceb0f916c820ed3650e42d36d47a00717e80534b3cff008f1e763f6069a9577a2cb12c3afd90fbfab50f50ff543000689d4595745eda765291e8379a92c324247a879b125d5f6cfe723f727d44ee99d910cfac4944c10e0fe8b45a5033ffbb353f051661cae05b7fe890c2d350fa61527afc9c4f3ef54930e330a01b2559a5bd895bd2999cdd2b202ab8cf45884127597a1040bcc49842c137e407c41828b00958b7f16c2521b0a24500182627bf21ee70814b967c30a301fb7901259f15beb854b98038c90651ee66757f57b1798ce3fcf72f4943bfd837b90949c675f38878153f2545c8c734086839fde0b51da335a26a2c5fa803309809b1fcfd89ecb36faa41e85ee8185b03c5a5e19ec755ba719002e315ad7324debd217ab72146d76d943217a355e6c74e3466d91d5a11fb14693c1bca279e89e1510dedfa2399fa532b84df720466ced99c46a937e49735b72dc4bd2b5123410db9546e2311dde113d9233be270fef572ff7ba8a3bb6218c911934b3f044422e3f8521ba07dfbd1c9ee09a3037c4069f7925184f4c82fbddcc4c9eed1822b77a9c6a53c86c3759978db990853123c02d4139b363621dadb456bfbf8513b5a8efa8ae7d0777ed0fadc7b683e3732045a81540e4c9564be584d67b4345e37b6918b8223789225f95f7907370f1f560cfb632ec6a4978a4cb8a1dcfbee2c6e322896a7ad431eaff4e964a111eb174bf6a4c97143f505513c76866cf35f3f3d23fbf69cfc0f493d3026335b76ab4c2cb87139532f1cb6658946856d2afd75721a7b4e61b66134af4d59d0c0ca8ffc7465eea68e39a9e8b86ac5854f4db18fc1cc6af50c0a520090f9baa11bf072bf4a71f99e06b5f91d685fb3f8e92c5e227046b1a2102e1cae0e770b9fb001895e59af92bad2e7ce6ca91e66134d098921c8e6f69a88891ae83d1b074ff0450b8d07ce89ac438e9ecc5b9a24c051677885763335f7fdf71b328362d0ecc84acf5c2df59a920b68937fe61dbeb438f5baf979ee6329ff735b6ce14c045ec3e5c66340c9f273c7bec5933c0a8d995a90f6d8151a4662aa4d380897e294373737c867c7c2f00eb7c9c4ce363d66715972fec9f005d569f1e5b539d183e5d3e67e5caa55ebbba8c5401db9ca8791b18d23ef2ae2391c984815f7fd49b65285ee50674cc150e5f24c1cfbcd044d894c794ccb38ca9db11a04eefd7a85769666ab9d42fadb7c0e193250a3d55be9e1db05ba858ef704c806be81cf890ac92b19d33c35c488fbc8414069190aaf16657d56c2622fece923bd31817a2ff9019fd96aad3ff869b8dd5088e433ef08e8ec4b24e74653a0bf8c0358ad1b8690ce34488f7b0bf9e0e8533700bb03a66985d25cb4bfdcbb8e4299a444e3d96f5bf8f066bf6db768acfab079770549946e67ce30ef2de8b870ad511a95811c04c59da5d8c09e82e4df984181ad36ef5bea4bc056f976d8a42a10ff13fff223d672146de6394c796dd59a0a3f6ed5df4d2d22a6667d2c89a42c1938f56824e0d0e701d843182284688f3fc262c9d9183fbc3792428fc7f4a89f9c9c0927eef854034c05650bee05f4f7e3b0468650bb468a0b68e4bb546ee86c7a3671679e9949e6e429684bb6a654ee3a0674eeb6e55e6e34ffab261b9e01c2146bbfe5b402c78b45a8ecded714d71c2e81c377aa2b285dc6b473aa63125caef838696ef405828b0a0686c4e6f2fdeece73ba07eff1159308f086fefaae0c48e28ec716739c2f09e1b98e2da551649eafed62b0c13dbbf5493885decb65adf4e127a31d5c1a1a0d220b8a3134fcc09755c15b957ee83fc16ed28d31082787bf51c95d9b3945ef03082f8177d87b133fc0f630c3c07a80f1543d22a12e8e37b3bdc87825cf764a1b20c7155230bf01f21eca085b7a8ea1d445471d56c9850164c26bea490b2ee1fe656f6a711b29ed23c397e966cf386f86b2eba55df4a91a6496ef76bf49ac29a6ddf4998d71ca563d63766061f6eafbaa6b4ab53ed036f26c7ee794b90a92c437e7bbfa40dc1721c2f73ab943c261fd0e4758dc15e6974ba4ea490844fa4b0ad6015b246c905db4bbae3da3450607e2369d361c9bc261fd8db17de6f8256391af3ba61312a70a8e99ce160f48dd87ca54c77065fd66129e65ef94d215e59c6c028fc14f0d1dfb80330e7e9934a93c3d7fa1a7de0413fdddb3d8aaf6d796cda1d8499972a63dbb49685232902813d2089b19d1623d276a450cfd74270515e2ca0a28270e008edb3e4dedcee30501d8c7a066b7aa925f845a1e2c5c26dc5845c07ae2469dcef0e609431a3b8307992f0366031c483199f834c36e9b5599ac5b039ea08407bc8276ae3a952251ae126cb017ae8318852f8096d00321052f72e19552cc3a0a1489761ff25e6f60f142f1363e5271c28b615e44268666f1ce91fff455e30bb66a9d24028b6198c8fbffa028183cd3222f072e5120b6d7c0fe000a13cfd04148a2711419825ddfb583595a62a0df437b8f1e9bb3e79673bda308cfcef9bab68448408c74c6a963c73ec1552308e39b3db69b79b5cb89c544a91a689bb5e73c06484b97ab436340134fd806169e65557fa528fb741bf33a089a0c7474b7e0e05f4724cdcf66a1036bea737e490490114b066c1f666fcbd7e4a5cf2dfb7cb60bcca9afde7019ea2471dccf815f5bd2a0eaaa46d9bcbcf91c801a93dddaa249ebd9dcc199bca9b029dfe7271c7cf9f7ef872cfc8ca7d0df55d9cd0ec3d6101b9fb07e00a6c35e13af00d435d18001f3d86b6ef70293d7d17a215fd17df28ea20bf002c7407ec226b6e240d3725c8bf60f2c6ced1fd3f5edd6af3c0e48443fdd0e8fe105fe4fdc5bac9cd43798a23d814d5d47b998affe0792ff38d4e81f06cae18c36a778189641ba7217b6edf45147cc156cb3c9314a6d97f233c7f3bbcfd36d16322585dd44edb1193ee918ad2f5c66593d38b3c994add0e3c89b7191b887ff2bfa0e7fb270608df22fc7f91694d9a271e6f56bb39d963d94595c78fc37d8226ed50c48a82c2a02a55a5764637c4c5765bbf2083195325348c631754315bbe189125c1f6a9ec9858651066f54e564a50cfa4e7e6f62c5dca5e5c3ffd393a24935514728478a5aa43770891f2bad2b0ab0d47f55d83ce44d763cb308aa14256dad094c83d4a3df983ef7abdac565cb0cca193c5deba155e241962ee962b3236e34c25c0c64abc83f7aff8f4a4b9eb24b326b6fa0121d18d96a9b4d43fbcdac33bd1c51a6b035d67f6b039d56db4cc552318a461df2e4706546cb872f5b9a04bc1b47c2d77f10df2dc52967014231d8c00999406d7e8b101cd394df2c207ffe47dc5d2bc2d1df084d5ce8fbe942253f9f3888159b887b94c3142b010c99d044147c654e9eca1dd460c61449c3b09b4ed99c8aa62f95c02a11c3807a7effbd0c8f89a132c54d8dda6b621fd5c18dcde5eaf781207f09d9fcf8371dac20f71180c63fd24637d5bb0ae9805a3eadf5d3ebef955005d3f8e9abb2c18944e1877a87f4afe21ee9a724725f2294476e33d9a1fe3108110eb956f243ba2064aef32db8b0fe7a6da8c804b81fd6293b8fc5f88af04a5e1d7c22b8e409c92e592117d25ebd949d5203ffb95ab6aff65c291b0f479194236f81721dc275bf0473d33b68a58612fd2efe214b4917fd6355d127a9e80134dd5d9eec7320e28fb2a7c6211248ead5a480a55b16a88c801a0fb90bb9a214d5ddaac1ea1dd4d9c62ee196feba093678ce332437a2f7e8216ea395992cecd10dfa51d11bc1c4205add580983dc15c9688d4a8e2e4adfd284e78eea562770ff131581914b6a6f1bf898a53c437dcb7e06250b449c44200d2d054cad80da4e0aaae5aa26f5321896f829795bf945b8cae3e1143be938190413fad89d52eb9518cfdd6b4b100aca598dded634c493b69c341d3948bfcb13cdfad53b46207ee7f998b3d3be226566f6b8c603dfec48d632cf1d8f7303b4c59f77c3feeb183cedbe9b9c0129121a483c6ac29db261af8449b916595fbef8113f2dd09d8717bb9bff797d71ff0d10fb0bc7f62995508350a896d434e5d97b3536a60707f0b226256dc96bc726b3e847c27b48d6f2b1392b1b9143fa7925ef96f4e95d65fed6951d1b1a8f17b716ae285108c0e7985857059fbc1aac569499cae74b1c1f205f961ef95acb6505d967fa8fbb2ac0d407fc5ae3a15d97b3ca69b984d1c5cd0cf2e43d306dd93ffb463a4fa5b92146a14f29bab4639a6656f9d2a1c9e02f35f91a6fa299433d5f42dee0c97bd9056e852c08fa5dd5ded1408422e7f6b587b18b2925da11e5a086f29c669376eef66c87b0653acdd27104e2ce9c32183300751474899ae1fcf82039bdddf9eaee99c88f8f62c38b25a74549cb6b61048f354a13a54aca4b357d8328be487d4b64f35ce77957428598702477a3c0c68b0c93ed2ab7deb1a60b7670da846ee2d1717cfddad0d191299fea78cf0c479859c84495e702b7da3d0eacce795f793294041f1a37b571cde429dd450895cea0af2631982d2bcddd103d06c1ff27f6c193b08814dbe5814b8984afe0f49fcfcb02464fadcf1875c91a23bedee3949629ddd784c7049bba94c342a1f34de4282e9162459a1675a9ccb7bf8bb5207fbd0ed018181c3cd3b1958069433c1770403527c084855108b165f5e1384fd55d808f68dff3668ae4cb58449debc11159939f627fdfe221de69565cb22bc5cc26fce3e5393e2c10686659982e63fa360399362f01755b9cefeb9ca3aef1aadf49ddba811bde1de628220f8e70fc5f267eab386136c4abc7bbc7532ecfd191faad55bf72668f470ec75756cca1e5b69c270f167449081c5c44a922f7e05780b0edd6f2ab514be550e04064ad9f19258f983d7a3ccb4bff417ef2acac540bb3755b4aca949ad48afd09507db5b9bff064303a4c26baa6e10e6a72d56a0e9a72acd259a3e4f897d8c6fb9c31ebac5bccce23cc959dee51c362be4df99b9e2ca90d19337dfd43caf21eee117d8ee9fe53fc0716efe365ffc1a2d14584480bcf0b059f57148739d1091a833f5ebbcc71c71079fee07732763dc904e03b4c2ceaff00f96af685bd33a4326e9e30fc2c80638e43f5622f5b14c602ac71f0dae15dc68251b499ad764a8cfae417ac8c0d0cc8faa29eab0cf1ad545275f41a029de148a53820baec9e93a7563d9e7b7bb2a9b03fedca1000926c0657728d0a0c81235d1bd4cb7c5ef7bb522dfc06c3cbceb242bcaa6a44a434ff3e29450882bcc27e18ba5cb80fef907410f9fa8e05e5efd1d371eb4d3867204f8ca0d89f89cef3902ad21918febba5ae9e2b5fa2b117c5bbd8d3dcc400e8a117e4671ae0438f9f040b14c5b81e0fc241e6f8bcbccbc91eb447777bcb10d4c56d6598220631c491c8d939a6ce70bc63735f7aa205321b6cd71da97a122c8a41a7635d2f8218de0cc9ad14828c46115eae408e22ae6823f680a09032341a93bb97a16240f1f879be55f801af6135662f0c9e431b7c02870b8589cce63f12724e31eb73c858ea796b79770d2e43f6769ede3765548ae2bc4a3a86169e6c778d872454fff657862fb4541631d3fa9780fab17dfdd009094ba1ecb56a4df9010e89ff524fabd3789ac39204ede4a26fd6539ac8927c4deca33ff96b62e7ec9f60368d9acc475fc208d623cb00eb77ef11929cfd7a9ba2053bf396315d77b25e8522dbe3ad12049895be160f6a4d0eea6d7b5105863b475dd721a8f8d23e60b4937dd164294e577f25aba99ef3273a75d6dfce38e64ba0da424c3fafb126c16e8f06d7826239e3124459ebd512ece4dafb647214fbb7eaf1923da8a4c19a79390c4241d9cac52f7933e2ce24d158478c99a1684a2404034e8c3dda8d6a8c5066d93e165986c399dcbc6cce234e15c3678a7bc2e420b260a3f6402c1c9dab5a5390ca050d2fd79c91fdf8ade2b79c187001366229f880cb271b4d9c6a9086fdb46e07906d32a0c78b6e1fdb8f0167ae0ca2ed7ca7a7e3c41e66843acdb6841c74ba6b85096a02c79ddc26b97aecfb5a9dd9476700f778ae353aa50ed410023ba0855f11cbb240cf0b0b6c867e2b235bf279a10c4c859eb5451dfd406e97ac9bdb97fb6fc433190d511751e564f3192f29acf495c8c32a16533a957f7c3bd000959be29a7e7173673ec95325903bef588169ce52f9269c17d3b2efdc67843168cb1eb9777f10e6ce9cebff8a56bdb53b82139dd1acdedfb15160bc3fc3c96616b412357eab1c9fdaccfa27a3679061830769cc25be313393ba9852126c278ea7aeca850227f7e8403c4f9644bd53184905a181219b72bda1033dbb9553290edc67e24fc65457c248ac60b56e725c37aedccbce4d97e0e274ab8c33b9e3ca1880cffda149da7b144b00d685f5262443c4f7dc3ec0a6e27b9b3c284159b31b2273fd1cffcd8afc7563812d6e997373bb5339890c47bedb882a86f2dd3e92fa46406a9f794c90fb238bc05b44f047dd85409611260df6360679aced54aa86015eb3b4ce74c45f1d63225993d0facb87109b79c89df508e1a39908ffbd4fe439e9a6d25a84fc85630183413756be8b3f6eb14cc041ac9684a53a40156d9940dbc915fa69cfeee0b0998fdb6a8afd11fd5576e3618f5aba684fb8161bbe91711fa03877a9e5efa253763677ace0ec849fca805c49c0639bb2126ec77f17db83e2cbe8f89c0b65214f660ad0c3045efdff29d8da87f0c1c72d83a38888324adafcc03d8c95e630041c2d1df2c21b8aec53068b0ddec7ddf17e3fbd08ef7a5ae42ce00f2e265cb3341d8e86250bacc2ef82ec98a6d5ed8733271c0b1cffc287848766326a0fc78bc9539176c99d193e182df362b8d5a52adc967c9ecb46ddf4e400fd2ec32f99192fb58fd891dacb6f8837fe61987ea4cc33fb29529fd3e2573a486d87545cc4f4e4cd0ba197c21c5eb40f5c8cb751434d3b9a5c11f3ab643b1c6479a22ddcba1afeec11dcfc42ba3f54a2cf82fcee17d5d18392b1d9f813cd5bce50c0a0d08d818d7c70533ae1dd996b321d124babc1ec37f13cb851f8b19305d66c0787813100d189228211cf9f60f5192fa01432e19d070b3f04bdda03f184b40426ba56920ba02974848f69f10e9127de40d4c47c62e7130567ae74c2b65135ef8151f5dea6cd776d8ad4ed9956f66ebe0045d3e13ee4359ceaf4876d0f458b8e95d68b74d1506f5f725d8646e2fabb1d2983c0c3805b230269c65a58e2711594a5dbe7474ccfea8b1deac964f7cb71993ee5a115ac9e20a3186ab054d63d0d9c8e4aa45d04b92c862d66435b6ef6ca99b1d0c0e257844cddcc88e7eda9126af8bf466c0ee6fe2ad40627c94cce25c7735b392f7a3b104139a4ed97d1f9f0bd384450d6c3cbce2fa01a90a25caf37cbf6b2ffa738af818385a1b494d08fc5ba042c19c0fead7687ccb27c8f60688eba94388c106af36d78ce3c37e0d501e65f1ac06cbee6a09cd2ea32b65e31245c47547a45538ad381e3442f13bb07d0082d32de7a6de6dc31a06d658305e9d97047a47e25b42862b0e6eaae3f18b759cc7619deb0a5cc614d15bef280d22e02c80ae4f91cc0a9e26515137e99f62fb75c198e8cddf0d763533241b64ba378c79e5ae3476dd77a1a1f3348fe901f661113e35d3fa2e5deafe284d0ead680eee33d269c74abc66baf6cc4c9dde0e836e772bf06416050d8d6eafe8daf7a0a01ad6f7edb23a19cff4e7773a3e54c7be27b583a98a7724fcf926d90468097bdf7c215007446581dddf17db94f3ee532ee15c495434a8877a87ee5e539ffe23de0798619ede62890e458f41a870e173f4540294b5c0e8b3dc5130c002c5c6b477a701940bb1b7c794463b03f118763b6e07bfac48d8a8db36a678f36ad8a6586946e894d049639f93556bbd12578c223981b03adaf011d1697bfaa66f4eb4c31ae61bcc691055daf837531b4e0913637c25787fac937cc8eba30c11baf05cf98ed12de02946f213ffc48b2eb71e92a78f8bbaa33628f7eaf685a7502c2fdd6237eaf74a512093f3a2168f57aee6a109594ca013d175c7b80773ea5d30bbcd35a36a13fed3c0043795ad3fbe5d827060fc2457ebe046e03bd52a978ac4d6912a454060177f4f078d736c615a3d5e3fdfb529907354986f0a2db19492675be682c94a81a57039cf3f525e1a8cdf97e403fa8401ae828851195d616c3c461f5b60b6645d7c13a986afe0f3794488ba48d534e8e2f1bfc8995e1515cc894c09d46a5016a019119dc79cb2c1edbd504bea71c264719839ad0e44eb470678fcd609c7fd383999eba0244378d1c9c4d9335aeefadc6eb9ea16aae9e85b91502c51045da19edab9310ea1432f47c78fce38bf836b9e9ff7bb5b1c38d28686890e6fa76ea8057cf17ee9375f96728228ba4f520e97ff4e5d200147c3097b253625b1247ec43fd891b9e252016e64fa63f1d5e1dbd70cc648c195c17c3f924e0703d083848b76eefc40bc549a4fc6146b93604dca3c69d9680b375536531b09dcfbb41f7878e682e9fd6010ca250318d3e21b0cb67b895dc9ae5781f41470ffe126952923063e9ab7863d4f5a8fc531467976a7385358aaef632cf910cda2fe4554f1244ade0b01d5c9044e09b770f0bb17233db7f5241e0788bc222db6e67874d82f6722574cc831f0e43e246a7fca411552ffc05775991d62f498f4d25104ea4e7f9e18b933c0c46955c3f177a49553ae61b2bd7bf70170233fa8afc939dc93b6b34ae706c80020561376eca31e0fc4b62a30ec1456bfc6f41ed6a5af385ec089d93cfd41ba6515bb9563cdb4f15735707de7b01b2641e2a2f15950eed98c9fb34c1e3465340d6b3b3f8b666a9d7221875858342d7c76f7bb909a5cac0a8b53853bead68ffedb9f3fd7634d647ac77278e29951d0f9553c30c4b97e64ac27910ca070f81a73f7bfc2605455431ca4ace133d4d4f94b5684c78e081494134ed06de4d51993364b49353939da8ff7b7a37d8fc6096a25f7ecfd338e95abcf910c24990f21d08d07202886e4da2e1195c6cfba409abdb8389a197785daaad4a61548de6a9fa5791d93b15c99e36fac36f6bfc8aabc4b971f838bfbdb2a1302e86f41630568e574c570beb990c8fdc377eea8cd7bb22ba3364eeddeb521190ed5c4822a5676aecefb2ac15677303c99973e9ba2c296fb73083e2e9de85f400f8fe33391a2244220fc0b71a2efeedbccbad1d613a07c4227a72dc10f7f0ecb395c51eb7486b2d94acd7a8ba90a2fb0426907bd94ccdd8716299ddde03831a7e9276ad9b3711b36bfb44fc987d46d0e8a105cbdd90e597a5626ce251c06c9c3bcfc1007ae273de48dbc387a0dc74443a37fa1fe86c4c0bf333cf0439e90c6f7548ff089e03f4e6fe4362e78a25404e6c16ac7c6786079481b8b5d5005b1cce453b64bd02da6a4fb2833f76413611e151be933e308e727407d3ae7126cf6c27f46ea5d66e81bcc03db0bbe63e2c660e5e5f8ab931a73b0f542f03171aa23382981cb4bd73fb0ec31bdd8b4c0e8cfff8d73f8cbb9a4b38454615b229c0dae947f6099a38b414f818f91fbc93893bd701bac2c104fe86642c9eaad59ce7a421d55febb6dc739335e85de976cd3c64514b34b3d6d637fe3a1abc419c2adb73ec5732d3ccd29e36b0766c8116180880fb1b1f3b77826f795b487cd5b2ba22334d1187a4930507d5a577c0896a5ebd538be2e828a21bdb57773e0d22df7b2856a495200b4107f953a75d86f956639bad07dae2989f8e5829c9d452ed3d5bdb25c3ca82474447206941b553141039c8d5de70c72ee08ae28a9e6d642909218b838d1bb9e23deb676c92e8f631022f67a5762eba2d440b84759758e5d2ef0efe6602ac6d07e9d30678da3c9c83ed5fadaaa502b17bc69d9a8f8b1ecab7b95f594ec17211ae9efacb566b5f7ef4bcf7db037693fa009b10a0ce964df15c6092fa7259a43aee980a551316d672f79a7e59552e25d6f84c0f4b22125fec866c1f7030b34dc7ca75a94c39e77c6ce4f2ef2b7456cddf1d86695aba916762c333a88d9d10df3e274967b11af4b7bf318d2480eccfb46ad17d0c12d1ff93ec60b28943e5be73d303f9d827d3da18c87651379de9864e66e334e8734358673534fb1d112c7da0f8721f8ca957337916087096bbaccc3e31186b1acda3120e7f663bb7b2de1ee8e40d2b0de0e51eb616116f7699783ba2fb64b31d6e76cd052ea314721d8ad7919ca30425aec2a1e882e6dee3c4f4878cc8122e40d6ad395b38fa7dd534ce15205e4bf18b48d266ca2522b86ffd89c953ded90c8b22d6903b419340c076b68d6224524a3434fc1b2395db39daccb73be282b7c5d1064c32e3b434ff1b22ce0b6ade9a9f2e9914a67c09bad318d48b72c7172b4ca20cf8aee7ab7f0d88b591da095bfbdebfd25653db6898340fd3fc4f257d166993b57fd6817dd15e960f1a4a948f571065e48891d2afae5be381fea156bb7a7fcb2056cf241b03fdef34a309969ebfb9ec99a836b144a459c225aef784d93efa9a1fdbe3be138f2d7db5a31f51bad37d6e3c2f29c43a05cd737f08a96a1b89b416b32ecd020f3383545c248e7cfdd210282a5c81fd55ca3a22000e90ba1416a47b14984e701321f81203ecdeeb73e5cae2786cf90745fdb9891b92cf32ac701abbe4c277dc71c366f92cf49635249ae2cd2ac2242dbb886016f81e70d539967e0ab8b0ac6576914e8b67efcc6b0df81b57596af114ab16b2564e8a4bfbb998988bd5a79ebec5ed22509e958e966be6418ce1ebc8ff7ca15b360285fd844f8b7a9bf20501aaffd8be002e584d94b2f88fc64845f75ac8c5533ae39082fd9d925785f8380e11161e38ac464daa8767744b1efa1056b086ebc8d8f34050c65606baec55c90e00e947d9ed86969fd209e928e663aec1e2934229d9ca0ad633fa20676f38b19c6971784f8634c737459758fe577bfa8abad6a22d44b87cde08fded5dfa39f499ed94c234655d0f0d4af40ff80388ca24e506a9bf15b9b27bf7ba39cecb3d161712bce0d8165830a1245f1c6b53328946e908b30c50f8bef7523aa842553c73732c282f67bfba69f1de9b170033dc90ef226b9c9036e9f4c32bbe399c47e10b5fc83e2177f4479c28a3069aa44a5f4f5e53e93102cf71edd2148924b6d896f58a49470aef413093a00aceac66fb5d2fe73acb9f57a8386318dcc4eee74b187b19275ec7c255ce0027babcb3ce7908137299ca02bf03a8f4dc2ec8d3abb07b0e8f5d21a450552b9c7603733235ae1767f8c7488a862d9242bcf568bcb12294e343f5850530f8e226d622988bc34eec90905e4ce29a5b0e3350c7783a1398c4a64f1251af432bc6e8b2e8f93e8a00112dd1055d4abba1a72ce7643caa26166e659bfc278f7cfac8ceaf3c088ac163d5f57cb421ef31a4e0dc9db279d1449687989faa12333c3d86c09b4d567b47c3fb6a6c327340807c6edf0d15c8523e3d5637e5199340183aa699c655f5aced83e614e2301f2b3edb0bb7e8433bf6190bacf55dedf6bbd4b1ec009e798fd6b90775ba724a0b006e01628a54d206240e73bb2408570f6485c8b86eac06f08213913165bd943b1d215aae30a218ef49a0c4ddc04a3e9418942a8b78db8135f2bf9e8d7ec4035af2f82739844c6c4ad2a9c44d07c0b44f2e7371cd87732f670e777b9032caf5f57f877cd3f60e36be7102117801458fb7ed18d2f75dd6463b1575ec8a2c2821fab4c5e5e2a60d77427511e380e4e868156362a6d3b295a1f16a167f5abac2bc1000f750554b76475ba55a7632941e617a80d1447ac7bc3b0ca8f01b7a1b8816a6966a9eb29ce2bbd0d6888d2a11559671dcf0f108a259b43b2107d984b096b68c13f7a2abd83f5afd739ff9a6488df71def84bdce92e974de5b5ce1d8298d21a95c7ecba78a5cd2ea45d0340206c78b733891d1b7bd06b5e1335df2e3eb1eef851f1909ed579ed198acd1eb173264fa8fb89ccfbfcfbddc594e96b6c5f72d767f0f6957434387635a664d63caf313abef17f70ef09d0a5f902507710e74f6d5d60d0eeecf78efbfa7662a237dd9989d776fadcd9592621e5618d493cb7918f0988bd86cb371dde215cec7659fe8125ad230a9ec35b08d68c3fe400d640d2a2ff90c2856de8f875e84b89dc13249dfc7defc4041f9034c5afb240b257ec82679a9526a5021f280d6847a6986259b8c2491ec143f25c9e8c50ccb01932746520947df293ec2e2baa7d3613e6d81830ff347b9f9b782deb5950e3e6daa4d913090dfe786bf6b870aa119b843ded64756bf09c7f970c8ff7ac851cb7512e17771c7a3ec9335669dc2cc8fa12aec5758ea13d1385596da54feaf8b49df2f435512b36993d78aa0d484c64f5b7c50656931aeb655cf7b0c0b7bd30df383bccf5b442af4befeb65e0002a68bdd50967b6347de1beafe67517a64cb877c832b7c988626aaf3f1e5b6345c8bb0fb0ff08b6303c1cf2b17925a8c5384970b57a0a85098457c24e3f5ae7ccb464d6efc4dd5bdf84a757966b590c7472439408ef8fb746f02f5a85f412eb3e8398591f389203a97dfd94177db69945db5c34efd64d61a3e6d85b0e3daccfb617b44130b1c80e8dd45c04f220ce837fb8b25a3da5d358579304b55966c4fd46c1e1b3f649a1c19b9df2e16838d9d29cf5a663e7482e79ef558ba39910cb7972247882a9b6d24f7a81f1c7bedf5debcb36333b880de66ec957370b4543e712b3f55bc165aed5c5e33bf04bbc4a12136fbb9b09de0ba8c59a72fc379791dbcbf583ee0dabe3e4a7236a29c131b18ed79e10accd4a2a7daae966d66f104f9ad919135381de8cd3d69da9763c6d4ba07ba293e73d54adb0b09162c724f2d37b9774061593c77cfc88460621f8c55e4f987cc4574d2558c8c943d7b06cc5d1481d4edb782912cbcbeb28b9e01e125aeaee5c68e2db0c1d308b02a100a2d2b78ab764f301b4cf0ca550df36a6d63202a8012a7c516dfa5d7bcea57c6cb5ab27d45e672ff773f21c289e1f8e061d86aeb26801f7763d05bd5db358ce35c6a179f36e7b59f005d274161d2c1665a87395ae01ae5c16abe97cbd0c1bb8af0b4c51414bb95fb6d6ae145b9e606d348ae1280d0835207ebe8271814c418001f808427d51ad5e006d23fcf665a8c7e8bfbf82bfdc4cd6fa835380fc13f3475fc17283ea78d87bd758b732d43c078d75397de119c4df378e0d02b118a9ab11332ceeb59e3f2f90ab285260c1891248701d9034fa288af49332d9cda3b2b917f08524b734149aa262fbc0f5175873e4323cf1b8830422553e8f47945fc8c1728a3d7f86553e7632ed2530e5cec0673d97b49ea501e22cae14d95d75b7953b10cd6bad39c964145229eab7eafb4040fc25c618e8c29664a2dd5852e63d88f2f807eb2201023437911e6cce640527e3c6d2ade4f0002e38359f3d0041534586e7d052943c53549ab7dce9d0bc06664abe9f330a9023b94bad9e876434986cea2ed049809f46d3684f87b97d5f29cd034dc24099e1f3acf2468a7d21c50d7fe6f0d324a465c15fc2ff57b87a45f4d6af45236f214a9034bab636f9fedd041d96a4a3b78397eb3c3db7a1a4cf0bd402845154043783336be07b9a5c63703f2fe9ec4d91e45e0b9c61a61e54679c5df1ccae5433f4b720bed702f1aae024e5f923bfea9a536bc6212b0a13d793660d4a643fbfd177b146d0c6972f15a79b2d8a5bd90b359f667bb78bc60e60882785c73ee73be65e136c19072936440d3de269fe88557d5a79a56de7d05737dc428aa5df3a4e9751a8f622aad965ce0d9a19064ac1f95a5ddf7b20976a47180dab4612e17ddb0a78be9fb4f0638791c45ccec0d4810f4e418c3fc4662b2416fa598e3272f101b8ff93a77bd04b2b1df6c83337028d00c3e6dfe8ba17dc428d68592bbfd4721b8699d359b775e1edf488cce9e0926e87d8f06a2759de2078b47e5b723fdb6905d5fa20f53dbd13493504a072ce11d2f71b45c3e5cce3f3241a49e3a16b720708345cb547bdbc12de1018f78bf76529cbbc9068c3ebc3ef67b739fdcd4f16d4f61dfb0b937237c260af17c14d3c44a3ab1dc1b8360c0e6a3d4ba2875a5e598e648a999e88b52afc8e32767930f6ba7177768bf448f0ca5d985e3c0b46bf60590485fbb1719a43a3dd0850085db8a760f66fe5531ef5ee25bea9a423c7cf663b92456932d49f6485c540e332e8a83fbc3b3f8a2abc2ee8076f92d977fef337ecdc7332a026d4240eda42119cdbae8887eecb791cbfd3188ea521bf42bf92b5f3ca5c260c65204fc91334e0542e8bdf02f2d97562f36053b2f61e9f6bb051571875de1a24996c62b5f844fafc0ed574822804851e012961d8dcf6a52e486ea51db0ba684fa72310668c5d2e7321bcc9944a9375c09e987e9877b06155645ebdd29fd06cdbf233bff631e9ed15926536790ce1547afb53dd598a7e47ff80b9d1702d770838ab0a0bcde900ce9320b368e60b05f4c4537620bdc3662ffacfc9a7497bd32044d42f432b95d50a4c8445de2040fe6ef4e1a8e2d69711d5aab20a18c6af8f1faa5b19e7922907003fcc956b61e6689bdc9c7a2d3a37145a85584891b4b1c7714ccd8330f7fd88b28e9c13b78b24169b85765e04d36cedc115840a95e7af5a07c2781f88bf9bce478f6b50be34dc8752f00cfadb906c7d7398b87238248e11d6e219a90d9abd3f876720624ff96768e6eafefa19e1dcf7bc2252bca560913358645695131e665d6241b5d18e243d9343f5567d9df9a42e4b5b4a1b9a52e5330986a24e9f3e3895690abf9c72a6ab289735be2936f3499bb6c2abcce74dd51bebcd5ea5ec8c7b7b53c4fc0a485a3674d67c69962ab4e4bbf48bf5c9f372d23602d5407aea4a76077a65505b2e9d3d22375bf221b0aafa2fe104f2b6372da14ed92359dbba4d07795b49c3959934f65eb5448e737657c380bd8ec14fc0014877fc1e48c433b0a9c11a317822cf84e6fd8ec555081ba8a4a7ad261cd3b1ad99037c03747260554ca6fbd3ac1f6e1764b6c8c68db9b621f034397e0ba3bf9474bc6ef351c6003ba752eaff2cd3e371cbd6a7e224f44ddb2a70cca39f9cb37f11de6c12147b059cf8c1f449d9fdf43b6c8d38c9d66d5f486aea383b6075ecaafbaf12b24e1616e35334cc4e234a37b6630bcab4a7805bd38fc22f467cc3da248cc5828e66510c6dece24783a1889880df5270eea9f926486d4aca7cfa33847c0216e11ada66781b0649e0941cf0d7b0827780623f14990e1cd306366cd803c09424d7ddb71d1cb775a2355ab8200739e7741645498f0135112643e0e46305cb106213ded3a56e22dbb388531a3c119e758492c6f7459e4ab897c30938a54be5e8cac51e8e57185cff8b3fbbaffe2ffe0c0915d82b7a240a9faf31f9bf8a2bb1c585232c3c327a5100b164267568716735bc09009d0a3cd47b1917d62e820e6af7efe4b787842781341725b5e12d3b7ed6c5963e352304fa98f166612c15f3726016c8455482636df05255d3d7dbc573accc2d0255928bd76e86f23dc239eb34b3120ee8fdabacde97b1e988bd539a4cf5da012cf1d156be7658f4c8d8eb9b4d1d26fb0b03d32ef6a4497d5a1e07197710288924bdffdeaf80788682464bbd0dbab35a566b384d108f9ccdb97824f7b10a750000d37310e815642a0634a89e47666ef78f7db91f77bb183c0619b9bc4250afe5b28b61cb37b2264493d69da26dcf2623a2963fefe4e1a4501d24a6417cfff97c5679f2652fded59b25c399bc00d8a733a333b0bcd68e61337b3329389595134a7db59727197475dc1d5cf4f64eabf801f3806ab7aeadf834eb24a3a4ceef4a9c97f5e1ccc399f0177a1b0def811a2d696700f8c9a6442644c8ff395ceadadb0168170d061d391b409ebbb358fd1ca6cd8818f60a93cca07acd11ed8df1aa98cc871790f99b019fafac8085760d8e4592de9e664b74ce2a8f76a5b4354b953b93fba36ebe7b3c4ea16e24cca4e581a1a14baf858ddab06263f0f350a922c797b3d7bcbde2c5fd95b4cc26dacdeecbb4e77a62fb8817dfd87699347e0f1e7227c9f414c9e42c7cb06fd784d6f66590e3d55b35c02541b40f6f12ec5de56449213ab4248bbab699c7b85f1868b24afb6be0ae33530404d44b99dedc0778f62855acd420b64d37e76e5c1f22b7ac9d768402a237f1f745db8661943b5f6e50e18c8b564760f89aacbb8a71c0c921eff979377dd05485989269da9d087b3d656113857034820d01c0c8589b5456633d4d1a015fa226687b0cee3989b12ab1e2b8510e9431da50a635a33da418c557235997e50851ae0f6f592d58e95b626ac8ac26dd81b0737a9f327495be6740f856ded9ecbb47841dd7bbe737c67ba45b4ed8ba6d6e6406b7636c3b21407b61d2772eeb2325f0fce8ac8589779d97d04d1b94187d36ab9c28271f95842a9e3d872dc0b61b5a2ac6fb010acaddf25b195acb1dbc90a33875620585d5c74319564e96b8e569e517b894524c85d570604672c6b9a56ec035e0eefb173bd5be59336f05c4ff27e38b2a27a8571cec9840d0d966c934a13d46ecc7b4281800741442c811d84d722db238d98b677b5504ead7a76f0f38f9e52514df20949b7aa967df4bf4b834ea98bf3c05c94ce06634427447d39c2c0923d0c19ae2a14fdd6b3d5f7d365cde3541bd75bbffb79e18f38553f8c91f9aa79163685088557da476703ef9b082127be5c0393c07546b8a4304384f388fd870a6332ad096bc61afac75a0ebd92310eb54244f7f20da297de2166ab3656c504162ba7cd863038ac3208cae9663841235eb8d07b0f889d5d9567ad3e0021574bf165c009ec05aba08aeb56cce2a12ee0f1ddc7fab7bafde2892671a6580df45d03a2fce4a74f87a8920fa1e7f755fdab11446f885762043162111bd26b5fb3b204f3ad27986bcc5b7edb6672481d70f585e4390040adcbaf7eb65e0dad451b89ed2d964bc594556e77cfddd50610659c6a40cd222ed358d41873b3f8db6d917fc46403a17967ccdcfff41f9292e8e18c07dc7618e7f37060d144269206b2492324542eb82e3e6300ddbdcd5e882238e8f46afd42aac200f9ab0634bc42312bffba1e0ce6b74404da09e20845a4c2b568010cd2c8e9b3220ca7871cd8368ee9d56a242983260302b6d8e064a62e7d338649d10b684362e9da416402bb79e6c6606401231accd1c14bbbab37d758fc35e116cdc098a7830b1d0e2959191df3e41137e6c94a1ed699cb7a858651c1db6eaded456ce5392d6e91e958c71931e414347cdd7024ec5adc7f18a2dd77514a4c82b36125f46dcd324ff8448ef16a072abb280f2c3e4c8a2a2dd098d2ab3034d3cd730deecfd9863de0a7a27cbc5bf37712752cbce0746e39d549c6f699a313f5ac8f4d3cac8874092790cc92620079ea5bcf6151e4f9eb78b1070c997039cb61f679def8e28470caca9959291fb939c074ec3ad29ca51816233e28c545e46ed4e219ec864548750779eb090dafcce8a70fb6018fb78d98cccc087530e2bd8b68ee73e3b71b70c849a7c4ad83f2072476ba691fa96ce51541d21c6ef83808b818dae28156e6f82bdeb0f43c9b536dfc95d7604b10134f57c7ba0fb684f866b1611f00117b5d01cfed8449dd42a62c6172a573a7ff9876619eeed3724c8fce2b2ed2a1bddc9df0b3e31ae3fa8de9c1cd910777a069d98cbfa829e843b9fb39a55d85c2b8112d8bda4d60245e21d2f6204edcad6f698aab71af3aabd453710a858e98c1c07d7a9f196c59bdcadf53a395d9587402c24f8e56701eef910df8d0bb36d43e8e6cf749984e7f7baebbc324cbf4da9aca9052dc47f4fa88311c5377f7b560e844584118da05b371ac8a25e846fb77048241ce9cc1e8bff6087af3195862ffeddae78890cec3aa34ae0cc5a90ed9cddbd106343b251a6786c9c4330263a0729e962b79c12406024d359f195baff4a3988643d4258b14382fdfcebfe0ff01a27ba878b3c773e68c9218dc3d20ff3e58e587de2639f339fec20ad3df843826c95b3d26010e254f042cc25fcabd5494f2c8ae02516ff5a0369611c109025da9e95c27a99f28c3b176860da3f095152bd26a7c47641f0ce491320ba5bcb389d984cab85d472d69964b3c41daaaddc5f1bd3fc96e0bb27a7fde57c8c58c32051756365c28e50a4ba88c2286c4bab4fa0a64d40ef09d2a0f37440cf8b4426ee903e8788024105967ad8d785157deab3c700f542a3abc6774b9e67aec4afb5bd2dc0eac8641e3b07da0458afa786a54c0c1fedb6ecbd4b946c4e038a822ac6a6548bbf83c25d50e2dc5050f359b3ecec2c119c03d3a50b2436919fd204b8c3f913e6c15b9289d842a273eb4a1ca0249e7b992e2a4b0122e587e02cb28076a9ced9f5ade5d1a918e8dd67fd1a2c3d839626f412babf4ca040d02a7f5471838ae3c5ecc364c83b8c771da57c8450b8957f39f97ad5f2800b355342cebf78410bcbe8624997b4d3618f83a202452047ba0c11fade456cf4da1074a5373d53cbe76aca4d0893b7f4fba8e20d4c27f392a5e13a5879a0e53ffbfc8b8f3a519f8d6acad139cdb18e2371cb61d5bd03615adec8fbd8ca7a66a14e5717e939447cb7f6306882e98dee780c0e15fddc5070b6413af62515af025e27dd43fdff3a41708194f146b20e9100ccea333dd143d6537d31abc0e0b06ceed0a529d236dfce861558f4c300854802e360d790ec80eada9654cfeb76f1cd5604ed38a0ef973d9d4f5a0a89b0d7a9ea37e769301f5c30b3646aaeb2675497e676ada62c1f52eaa9e15375bd25c01fe9e42e33ee7fa997491221174406b43bc1480be2b91cd9230511867046c2167981b8b5a98ec61dd7029f24894bea7506fd948e5cd824bffa2037b9992b712f443fb6287481d43e820d60859fd06d2f80d9e72d2fa1d6d5f576438b0b071f4689719496445329e4bc597c6ef169305a138bc02866cbb636ad2d340e03a83dfbb5553c72f74b6d47ae166f2ce33d9518e35d16b2fd9baddb8d76a2b62a5041e0cb604f65a0efe9a4153888832161440a067ecf6ad9e788c747aa359ae41c231424669df26e840b6ca2b06a56c19fa73097874aac403e74bea8b82bfe2d3fe0ef5933aee89452e6fff13f8f9c3da36de34e1dd6a2a9d9888ee596d635f69dfbc22ed93ca4980eaf0755edc0a8cdb40bd595283838dd233ce893f51cd10260f79f7841b722bdc1414fbe8a9ebfcd10362744122acebd71eac6d6adf51abba3de386ee2c0e4698f9a377de51dfe33dd6a8f7e37d6c83a1a54697f03f1e7745cbdcbe157aea0bce95cb7a59c03904b5a668b631a5fe93a331dda2410b0b41ce6251f3d6b0cc5ae224deb47ef6e3630d2aea57a525878870e4e08746967145361ac8e509b18cb78cad736d9364b1ec42008ca170d4a400208d36f3a5b626f59536a27478546591df789f4702ce0061a6bffa924023358b055fc51eddb7c1168567dd451a8bc35466494b6ba8942b88dc26331021e02be6351fd7dafb8a88847e0859bdbddd308dd554e17c010e0c904fdc70a74c51cc10d236ea917546c53474628e958889cef094bb319ec87f6b811010234c884da3c04cacb5839b961dfeb2e8fed03eb58de81dadf19eac11b4ff321afa2ac2f09a3c342f457b2b2b4d7ed92e7081855ffd24e84954d425bb458aaecadf864f368d6f7edafc2be0ba8c36448e2475ecbbbd77be0bbd4d5717eab9ff49f4852a12dd5d56c219d951f12f536d433f01ca36ad54e55db599c3c087d94c36ceafe83813310de59fc8f61dbc628e7151dbc111f36fa6aa44245143609d70dc05f2065ff65f0c5c6bedc96822b257dc56bb10ca057f0e568709e2fc088f5b08a48410739dc5ef3bbd4c210988b990e04b884f5eacd420c9b90e210b07769d07c67053a33ebe362f218b45441f4fea496e8ff75a975b7dd5afd5063e82bf5988eb639dce687eb7706b9b245b995eaecc5cbdba0c1567d91e12db1d29abbadd07c8b2293bed1d5e3f72dcb10cd913f91de037ce3c856ab5f14b7a338ce33eb5e43ccb9ba1d6d9e39aac4a4d45e1a5c44b2038c9589bbf277f7dbe255df1e9964a833cf16d6ad247c67b66a3ae2df5bdd171b8ffb827d2f0a36aed42ffe5aa152b1a53c19b2915eec59d18ffce3cfc9d86593b561666ac0709ebe1015ae406ba92994a025ee8a00fc11b12ea67d235b5dfadb888c9d17d1dfa25dbb3d4619a9b120735017bb1a6490048708ace4bd8d9eb6c6401dbfa4ff77d76bd8f672e5ed8b693d7572bd3bb7b00873645edcda431880d4d3af1d4e083e78baf749b273c5691b0984158d9cbe51db6b51193f0db7a7bf91146938cf6044e2fbdc1cdac648a011ac84f437aab4309cb70c877b8d5cf7e1026e634895ed46194405d791cc68896a70d863bd6a0f9650f48ebe11d8940cd72011e9b6c13a1442192cb5d26369d609d972bc922737685eb08186179c40079765a5b2a2fce262271432156db3460b1676b6af1fe8772d14931f0bb7f9944c9968ce715e170e1db610072f87d0fe577bc9677541bcb77b2015c1e3ae10c9675b8b18c7f07e31bf82ee79e116b5f9e9673b681ac9d6bbdb17c9175bcede76e4ddb51e63947e7c2241e10f746686091dcf1e2b9bfb770655f1335a8b7c6ec9472623fb7a38529aee4c514571962bbda8e8c516210fa897ae8b35e2053255d216bd3d55e8ff08b4f9224cda061c34ff03aea643aeb4c11af02401006cfe81a089308c9e45bf37dc10e5840cac3d0e3bbe618f4bbf88cc4ad6e0a50395025cf22390ad5017827b4efedbe4e027968d827a03eb1aefa1a797bc4827bf9bf2309dedf3653e9b09cc2c26eeabde7396c16d8edb15f674070456f5c825037499f3036ef1ba4927449ea4bd2d21de61011caf03f4c12469372f04a93017d876544a37df28201119dbd6a57349d3cc5d6ee795e09e6bf518a2ad6d1c340f76aa95ed9846b9b36538a88c955d1969891eca0df928ecdd0a572ba5b7acec173d6961561c42c88a9c163b9ba61d1602399bd42e44fe35c725a1ad17a0e7541a3071d3bc7e62ff0d0d655505c283df26b8249e06a1a2945ddc2873ed79e5cd56b453976610dc0b664e756d27295db6490915122477e86813f248becfaf719a6d97b36f45e9301ef805162eba3bc202d7e2206befbbc4d45b41b543d3d79d64f79dbdb2e5a2386cf258c7f7a40bf5cbd5bef9b800cd4f407f69bfaaf2a112b7ad1ccec8acf192aee852d259a0a8ce41180e995cc6ce7dd67fb25e10592bd183235e44af67b723a280d3269da84dcc36fc703f907bc93c060ed945867c801e9b0dd71a792969b0882ed5033c40da089fbb17ede06efe73028db4358f085802391b6bf9cc79e217a6011f56648241d2164dacdaaa982f954327e9e7a6985019785e441d60d3ffe6c680b3697a05d9155bd46744a281d30d02f31761b6423b7ad944ff9f85729a3db3968e02938db191cfa235ab51796febc0263f36a0f13c15bf1f2d5e9a73bf10c08e8431f98e6394f7c7058a911c9273be5d3c55b98fd042f33c6ffb97413cd840215442ac80f917ff31b15f132c284586eca22c4901f42f208fac488454da9e0f903df0defee12f345e11d8d9b225d6604558a30cef097458e6239f0040e43d07d3b0a676bd131589992dd1bc7cbdc5de6ca82cb5603a648db85c99bb11ce458cd4e4f38e4acd9613d19ff3e7dca088517ec46967275ca7197a38f1fbff1ab701be697bf5a09a598df292975ac4016a5040dd353a18b1243786a6301b68da37515408a7ae8a8a19d5dcfcb9682851b938c94baebc16ffa68797bc50081d56e36764800c6fd3bd176de0f5d739b9f341a7337ac46defcf748ed03559c305cc2ab53ff8fe234bbaf6fbcf4fa049e866d701637e2b4102e2ad33549a90e10b4d7fb1482f0b69982b8cc9a0ce8de73e90d5ebd798ff22bd1375446e91d30e5a1ba6548fc52d12dbfb99459ba4a6b70431f2d394095a6ce653cdef4b203885ea21aa997d2a6ba61eeef3821b14d03036b8a16512ed1f6fb760974944d7379a655f5604940411e09c2452b6e1585f1fcbec9e174413bff1c65f4dcab02f3a30505e06183624512ed03cf4baf23ad3224d2ada9eac0238a9c398f0cf559c7e438a1463e08653163256eb438d08edeb2ebe2932778299c8c5fedc1c175b0e14601dc453675595eb43a241d9d19218a90acf90dd5fe4fec665c6655c47d4f0c1285bb7034019a58eed7f079e4d473910d265c159db1dd6c01d9033a666d9dc84d14bf25efffec94e6d65d2506942aaff7474a308b2fbe5be77f33768612f8887a46c33d1bd044fa93696c453b5b706bd361f63646d30a6a16f74d49d8880b04e80bedd63982632ad6e151e866232c05f2e335dd5dec864e7f51d783a0f2505255624a690309bdc8f716809e3c7650cb3c9ecb3c396b0f5d06fec659f8e7b51b2ab111e402c20f6844d294ec3dd8d8cac450e46736d461ec63408eeea82d1690f19897574b356a55b4569d3eac45f501f36460296fe002f0f12d0a3aecadb9c96cd6a0e12f32fcf9b4fe31bfe3c8a16e505e6d04528237d75c8b35a012abfab260b13bb109e6927de96fe25972dc6ec516ce88d448e80ae208ddef3f0cba88a8ca648c221681a24e2f8a059f41f779168fb47cdf51852091387b1460fb9f66b4e887b02808a4e267588d16d27c2db38f096a56383701a3afb550eae3464f0d7203053ce3042b469960d2b70bd68ce973ef53eed02869a41ae8671049a200fd3e42f8d5c7551588d63821e5814861556432335cd3f0dd67c8020dd181ba5d6542caa2be58d7b72c7419405d0f537444a2400235f02fb27f9e01a93e6c98f3d91e8dbf3c5380b42166827051e9ab92a2184bf03554a0d67860ee19f19fadea5d613903c48894cfaff66d1bf56e9edd6525f68697bf7401a397ad734aa93786502dfab0ce2ca11bfb38a5dd843acdb24874557035ec959bd4e6fcfd298caa3decd28a0890c272eb19dfc4a44a8612cdfcb97bb7486735e15a6e4934415518b2876cbfab509adfc0ac0594a6ecc97ae6f3e5e187b4fc11b953df05e699ab8c247809bd67f332cd94c630bc3287cfdd41f0b3ac66486699fd1693163cfc8fdbaf69bc8651fae0aa679ef0f5170e0d833e9e3f26fd7543fbc06b6aa441e0a2a4dfee6af6fc597e34763000a42fede3507d6502195e62ce38aaba0f09b51478d361e1315cb990f412607075c18abe9e8acf17b81097ab1f3e416a64674c33b5196853026e809ae37b1fa09cf0ba1677625c95a8c7504d503e9334b40d1062f0f6fdb1ea448674802d8e756c3855e220a987b570fd489a8487c461ac025921fa02cd7e607ffd519fe90193732a48860edcf5adb9cf4f59406c5bfc3bada39a89618697e83388bab905218f9d7bb8d9855b81b5ddafbc2f842af22d5f8cb7a2ab1e272b94ab05b16929c56e1b5d117e5f8e796d4e2dfef632468f8b72dca94071a1f1069a7399a77cf6fedd3bb204fa5900f19b62eed46ecb8e3d4ea1e1b75f27ac86eebf93946b31acf68c9d197ecf2558d43d7b443f4538f596ba642f770a4bfb837aeed288add2547a460a9591cd88edd7cdf41556cfcacc3b260310bd07ee32f8765d7168ae51962b71fb83c306f7622f125566ca2dfef621ae081f626e34c5275f96822825b7133f2357b4b225625a2221f34228f09d938ced02bce814c08a82e6ca504356c21cee9d0ad45e71fa3480abc2be7064c118c0b0e599c5e73ac9e9c3a4584aa6b84cc94566b1b91adf421c85c997fe026b76a8511a2db7706d0049ef989003e89cacb77164f764199cedfe33881826b1eaa21d93a0efd5ec2c08ecf31d6eafc86eeece143832eec1c8e591d5f2adb36fa94c312e1d4e6e6f19a55e4bb3c48558e4d53394b59d4e91e3e09cdae9e4a27a66da84160c86f5ea1f7538e1fa133147c0aab57d475295a4eb98cd46c7fe2ddaf7eeb1c9588e49a0e27eaf6b6f058b43d569ff603d3a556796d261f56308b6e9ad3ebb7781686d21f545ec798727afc1990622ccedbf1f486df3bb251f58166820ecc46ce260b47ebfc56c18a2aededfef128f86bab6d19bfd2d74d2441d322cc42f4f2149e19c099e35fe77ed11d032f26abde450cab194ae1279dc71de576d66d8ebf2ff4ced52dfa69355df405bee7b4a796e529f12e1267fef64649eea2eb8b0a7e75da3b0bfad248e91b60b986dbb15ec5c009bcb870db51ae435c7b9aea149bd21a63e4b8cfce345b6820dcd9987214cbeec6384f5119bbf28211ea9a62e1b748281542c73099496662fc2ac73860949f1b3dc8a5b4a0fa402790f0111b169b776ecc41390e8208612c8bf0bfee27a9be4947843dbd8f7063776c14d441b9c5362a01c286ddebd4a551b08fb553a7a62435f7b6e7afeca30255ed31a3b90178e24a171ac70e5476ab458efd8786f2df5a69325c1892ddbdc5c406f80443463bb08ca191ab2d739aad7dc343c47bbb2d945cf2aa0850950c032a646b6979af5a13d918e449379150e5e61400b316336fd921fd85a99411830018cf64a1de7464319f64c4b6ee718c51bb7ee4b6e5350346844c0866bd3f38c4da390ca56e7aab6616b555703a2ca50ff70236fb9b3751549d8103b693c2e47419b764aa7599c7da9c9cb098d4d6da43f0724f72a2e9403a38b37780b65d664a34b2bf8ba2bc1325a4096100d833c891d3df1d245a0abf55949d1b4eddfe400e40ce467e8f3c2f01debee900f46bf5240754a1cce9233ea958bada4b5f78182cc1eb73183b977c139b2b3d2751794949b6f571cab0423268ca0f531da843395288f796a82bb2a3bd8d1245ae7019909307b9365db9d494939896587f840d10a2524f53db36540f0363415ec990fcf999bf562f34c4f463a6ceed6fba7061af700fbb22b227696e7de3b7d9be5f709a3c5252ad4cc75c1d52c0b454e552844d97ed33cec9bcee33618e017ad207f3e97da4789520fa1c4a4b004b75f74a72c35392f4f7f0b81f1792e030f9ffddf244eb0067e124c9fdf225b4e674ab82fe10b91b98900e008f94c7b9df84853d7e6a9500581f984a242142d7e9a9312747d7afd05f6158fa6969c191d43b3e5ace00996aaaf0a00e2a6ac83e1f9eb2f60adc86a01186d9b706198c6f70b3cc13670e374c548abc645a61b6701091a10bf18b13d443ee488e376bd5d4d5749513fd7f7dcbba377d703020fb9ff5f5decf7e71629254dd2f2b9beb500fcd7b89bf72a47f7635d498a782c3a35fd9f1aa414bc0f71abe6a605445682ca2c6b9c0cb03b21e11da53479301ec17df69df67f4f9cf9fd7f202bcd0a97494b90091e474263f62230c39f1eed03f66c199ce2c77ab98cfa76ee34933a8e748dac05e6aadc0c960cab1212e7e0be7a0e1a201280bdc39950735a29d82f45d413fc7eb9dc70e2fb88ddd371334f3104a96356ed1d31c7418f485a58df6ddb361979df97b660036963b33bdd185686ad0459f40edeaae2eabaf2daa3946a28e3e1527bc5cbfdf05510d4c89a50205ad1b5e7b565e02cbf369c7753e614011d4f102e45e6e76cea98f96e485138bde0f290112c1c87d4b716cfc67470aa84130ff4baf7bff9f02920241ad2e78c189cfb7f8df4a042e82f885f2c57b778f7d9248af58a499b0b514ac562c16e68d6bae05c3e3ea5e183e0196c6d2e66eab59ad128b62dceb6566e7b8dc3e6354cfca719bca334faff368a468eecd68d05820781975561e85f265a8e8c06b4d1d945c60291b125d37452f202704c9357c4e56aeb41098d45ef6a756861b6ba3cc7336ca73252aab56475957585f54538935244d0cd55961370e74d5f087f9473ee42b7f4f64e5020d04564f719d581fcca1dd1b5db55b99bc03e76eb3d54dad0ca49c54aef4cbe24c4d7db2f57b55c8ac24b31c4ddd674486e8284d2e944d604f94a3a3bb72b6fd1d7d384e28a628d34d74da1d50f3159ee0a5dc02cf3aeb7ea99b66c808ae2eba8f2715964b58719502e11c2d1c9339da66cb9401d9efee37a86c01a5c906bdb37b28402072fa9fbc1593c91e2ef2849a6da60822be2fc9517149261f2186083718b78a26df14c3c7df4a7e095ee054793dec5b2107d7f4a7c11e199e7d03a0c95a69e605f73f2d892d9d16c783964f811d810a1fcc50dca53b901a9105e9fa9f2a5138c0bff121aaf6e556782b057cb52d26f11fbdeb2bce05d0b1e81369c024639d7e7df14ad126646b95005a95bb8911187b8aba97f937b95b8598c436ac76a668870797450dcc266bb985618d1c646ae833acfd8d3009a0f89b1b911378e8ff9fe24b3ee74cc01d0c65f3c58b4f25221cdc34d1a53d024489f0edfcc30981562b4cdbb858c4f94c6e047831caa69b8558a6b8d9570ff54c963c10523dc57cafc1866e6c0593c42353c908791a6a0c2f29722feeb11a45afa4be896d1e4bc64013835d33244b3f131850d9b0cff6afc0a8b07580bd3c6e2ab38ae09bc51b845333ba28cd4b60df74fdc7e8500517326f961eca951afe7d1779a4a485958f8af66bd5efdef45ceac0f3fd7369f637345ca2a6534fd1f4928740bce52b3b55e480e518fa830b19fe1469967de756abccc0fa8d98029cbe65b275e8b8f4062f51e4cb89326ef28d880ad1174ee9e0eb00e8638404e22b54bfb4451fb7c7aaf8c3cfdb73a596994e4edde024f02288f14ff9645069352a44fc9ee6847e3aef16e0a181c5067e8a1ce6e1b96ab35205fe289353977922f8ba90d362dc2fcd3153842bf4b42afd0b8d3c4c7c54a9c5abee703548b04e056f1a7fb5018aef36becc3d42f5438ca5bf331046fc8a2becba0c017c4588e258234be2a6a79f67c2541ace222283cab15a52755593a452fe9d8925291c5d982fecde6957c75c44ba6feeaca3fde825865c9f5413482e7fb0cb501f00d67bb13bb192d462be64b7e5199184371eac05c1e44fe731c664d3f7379da26fb13ed867c1bb793fb7aff514684ab3bf29d373db0a333ed3e088b7de89cc580cf83d97ff33b3c27c6ae3b8bde768cc2e89989e595957bd2f99b85669873e5cdb3906df671660ab515952bca794e716fbfdd2578b4e659c8ce39a1e8a69abc06cb7ad84676897487b5b5943a927d70b61834f94dc04946682a4f943260a4008c60452bfff28273d6b9a349273d096db75256cf0b564df7a93a09a3c2a1efbad1c2fdeaad4f50744c653ae716fac98e709b8ce29ed81f18d12584544aeed3a9c60ef78c725ff5eab32fd3aafa98ce6465b97c5a1c50603265909e9da2a3c27b496b3a17a5652b0d376a32f9ccfdcdb4398dcbbde80ced0214e534341bd52a74c0389528a06bddfb2e79ec08e3bbd91dc31b02d0b7f11a72d3c323d017c5ee0aa243174a4baca645227f75f5c11a24a45fea3b474efc46c4ef8507164db94cc8d7deb90d8149f64503310e4e66a09c3632b3f170e11108c5b58e8f3fa21d057a32fbef91a9dae3a5dc37a988b941aad520126c2ec02f98e81f9a68115ed959214664781c2199857c1f701fcb05940c5e07487b4cb24ab49be565bb04ec5b9f8f68f61860d78a043d3575078406110de0f8abab48707f975672f5a99fec20d7dd66a2448994493008220c6d0279a11fa97863595a4edfbb5a23ddbbac642d30735dd0c64edb309fdcfe25a5fd6b7330a61f4486dc6dbf20ded3cc67a08aadd5908a155eeef3a5a495072a477c2be09300d7448ec3939c3079540aaca6b3b99d238becacb6cb7b2c4af235d71e5a019736d5f0b596a00bddc405ad9e95bfb676b20d5a1d393281f87295b03ed3cead2b0083cef626b7f84346490e22786a40657123921c77af77ee3106b6cde477dfe2e98fdc5a473a84342cd24e4d660aceb17d2da1f5c98cfaafa4ac264ca8c5fb9a08c185a9d5cf2844b1b2b7052a057d28c1903a86e49074dffcf6ab76d13964c9e876472ec24c959ee416ffd1cc1dee36613dd46ed4e982ef82ed836b5eb117488dfce7fd66c8eaece08ac1e9b82a230b9e2d0d23a4aa8fa040906a187a4ace68f1fdd5e6cfc29eeac8a11fae066706bd519aeb28f46a1bae794e67863d434312285ffd6373d2a574ab71bbb5b35d7187641a6ef5b2dda8cdb1a212f3c928a364d84b3c1f8bd74a4e9d3b8f8dd798ba44a57179cca51cf578f78203453fecbe6c2447603d2af86ebacf6bf49bb02dc0e564c26594ee4ea7b71a071cd02b791ff061d87c0406845d28b8ab7812c633624358429058e80ddc5571872c891633be7f8207a775be35e7e1fd1eb4f2b72bb704d58e3dc1fa08623f5784e64302b4cf55b8e9aeb213e3ae00b5dd53a51cce3611a948c9940246ddd7cf0500d303cd7b9385e1d091a3b783b6096cf310b4e34484af9ae551bd1c75649bf7fc36047fc15f2bb232d11c0030fe3381f2fa09d022b21bccf4246cf15965abd8b4640017437b1848d7b9c57b2bedfd248a41e9f49a0a305ea79cf29471807d20e6150a42cc95bcb9b2cdeaf74a0b647b7aa41008e1a6071b970945075b0477c1aed7a6cf6ea9f5663fc2819174f2251b232c4aed25e4991d4dda5992b769d4e166ce31b40c2c1210f26560b9264dff9a4aa655d9d14f969971529ba3f04af6bee4be776e3b5bedaf29405a1eafd2520b4d818050ba2ddf1dd297f513a8a600f923357c601a70a646d358b17a3aa2efaa4e0725ff4c54a978e56795d4f725806c2f02458f0b8a3559b8fff50bba9ce8e13b0756b22a220bcf48409c3e69d98332fe1dafd347a7977d915c55241961137f94a3eec9227c132ebef2ccab47a120be9f0328b92802c4a17d1d6c871e5982683b2f4eacc1658c4d632c69f6272e2171c880c5a25cafb81f954607f68d873dd3860982f45060eaf704dbbd2c6762d762002d2c78f754d81cc2572e960c314b5728fe9cbd2209b216166f3d7adac7158d88717b436a3a0e546fa209d86cc025920cfbc91338ed2c1a956bf87327779845e67de068e91defc1b8301d45584e949df957b97a0b72b26e047cf9ca66506d3044371267546f1495ea2bdee8bf9b15861d271ba72da025e38ef16380bc6b7b2a2b13e81a3573e03b23c73eba72a632f23b2cd17d79a46695f2fe95f19dea6a4332a710825a424934f0ea8f3faf6a1c87218e49393888cbc252b2378da0cb1bec55444b1e610e418d62de1cf48f1caf3c57f6155dbc712bff91276d0d0566e2ab81a41f4529a66e6ed26586df8b5cad4603f8c463350094f3237be16b01e61a449109b4efe4c3a02bbd6da5fd4a60b634c6fa2986673993d2929dde0a50c02007711e3c163f7aba81f749e5c5b2e0aea9ce4aa3c8b9e86cc25f5bb253266e9a2292c2452b1a65ac6ce6db1bea0ec628b0800c66a1687ef3717bff1c28f587d04b631498aa440cc7e2e08c303bd6f78b8cd48281d0136ab291f4c0af5acf73a34aa895af676cc83a80ae52a4dce5920b9e90d6e94fca2f943ec428fe5b3f3e553ec1fbda7da3cda4d17df75e28816222a9f87e4d3b6d1c399e42cc6172347a91729881cb306cd622d43e340ac5782b3794c33ba202fa3733520828cfa755f794992b013b2d342f43adab1d5b90c258a6c9263c5861acd7f93334ada5d5d82d648edbdf841e8a7881b78b1d0bc21e2899aca3eb55558a92423ca1b3bf387716485f1ea6983f54b05aaca3d128a884094edcda50ea076cf66cb1085fcd6fa8eaa05f7845a9b0322a576241c619f0bac7d260bbd4bbd46aa6862f026e801fa03b6e2f45f6833ceca2f42dfff6e973e52b859ed11d2c9817b5036180d1fd580ac45cacf5b33f830de5f848e4863b5fe7cd66c929638227d7f7887d80c13954ac99d7ef8d4491ba445dbe70164ab5f838ca09dd1ed83ebee22670acd34aaea6aba1f555a1afed1c8b9e8c9177e939ffef21cf991c1948bc27c196657974f5f764448b6994222d405b59dbe5f6815a4cdd392e6701d012efd7d7ebae9f913e53a22c5a1a2fa38e1336d980b8de35e3f3928429ab807f742b2899d152133085108e5e827872723385aa6792bb9b4cb67c68b46a1a6d293fc0767c7fdaf41aad98865e2eead75b31f7b703a4e763073b51612dc5b02e050d14bbf5ce91866959b2947c3ae502fda5f70222ad5b125f4e858c8077b03d1c3fd169a29c738c9a41713508fb64af44cc5d723d9d86652dd6349c47789885cf5ff82891177a1795fafb1974467372da7a30f5875a020ccebaac2e248619d45ff1b6e78cc4dc4c9d32ececd0ab8e053014c433c252d4d065ce9dd9742b2512c77d7cf4cc093ec58ff3e361c7eb1fd6ae69b870abfb05f60b56da3720380df32697e1dd097050a5180f0f46458f0403f606d0774d112c365cb284b368ba321b14aa0be8f13534ba393391bdf9127b74b8c2240c4536c9c292b310dab89465a705a9091a7b5a2884d536f1854709b755bcc204e7f7b8d5d68ce428288db68492959e57fa8550b7ef2bed0a27fe2a798422f5049cd25782759b938941ba95e933e62f9220d5e1bd64e58fb2f54f33792481f9fb144fbe2fc581b97fe89ac4f77edf16d78ee705204550474fd25174ec81dbd7eebe5f4b8c4d9a5045fd53fb7d56ed3a3a6ea75a4eff97025a9fe928083768f63cc5931971c3f10c9d5fff4e586c2c643d16f9ffb6cfc76d8599b44782da5584637c51952fb922a5436f4a47c011f2bb6fddcc9b28931cebe77d79f73dfcdf425c9c3ad70233c74b7c71314f6503fe0ae072bb31ba61ff2ebf485ccc4408d1c80955b6eac6520e72a958b851c5c09de9ca50feefb5ff243d725fb6d4eb52cc9ddf2fbc773b3dc8a854ed3d88f7b46b7397dcc1f094d114ede29c9c30ddcbdc04557d90b6901fd6ec7b8f71643606859fe471c0c7285e38cc1e370818d5db781c5443801e4f95dde92ae92a7fe4994e0ab07f02e58fe8947238209f1710aed5eef4579d7707f22f9abb092bfde8d6e44c44aee274eb49ad20d9820b3ee49fd1d56faf7c949ffe6657f0634fed06c60f70f81e607dea5260e6bc554b44dd88dd315330f17e4931c76996ecd96193a524f1760aaa4039e940f8def6cbf6cd5f109491fd40366f7b5ec2d5f52d8d1d113b4ac57ff73afce1aafa709ee683e23137892885a862b46909191d6ac5d635fed1c61169a12463be11f516d71ef4614b9af961f94d8419141dfbebb50b40f74125c0d1e568821f316d107c33d12206a86337fd81ca6ea403764d3ceaad0696df1134a681b8f0d1c8495a97ae4cdf9a34856785786bf1e474ee392294d3ad72b99f7f91a249ec9cc6276fdd3e564129d721e336df43d06224fdbe24ffb731619af24bc4c943f8bb788a528779d18407bdc2966a31cca82aef7df4bd0f7c5b57eaffa7bd995427ca42bba399df97c6fed223749d9fa49a4ca7c1a7d74353b982c72d0e0466ab037bccac29fc8be5f1bba3f8b19f0cc9033c8ad5ac9014e54766f2d4edbb824074ea206bead0d5ad2d59d35e3998727cd29af235da68960ad5c5771ff1ef6fd20c55f72bb1deb8303c479e9028cca35593650264e2e4a3996294ed5e5a17c745b951da73c8ab2353c21d2823b3c4b76413a27311c9e1e656610fe51721fa6aa052aaf246ef480b381ba9ced74f6ef864ece0d42e0d97f12291988815098dcb4d9e6ecc87640c7ac14705f575f8cefd19ebcbd5b7de614e2169f0a40dccedec9489cdee76bb662b543b99ec172d1dd2de58323e69b6ed30836d37766efc81487ae15b64e6f814599cd1e9c034c21c8c231d480d6503fb0656338bc99f251f4ba138f99bb1b32af4c5ebe64d5c7d661c6c2175fc913cbdf6cf9253568c179756705383e94ab3ef57a87c92fbef5d440e1bae7517822a9a60a4446772fff1397ee28b752e5347bdbf5f3070d009efe294fc39289351313badff21b6584ef36f39aa2a4b9f4eca77c877b4fe3da9ebe6d0c909a355723673079c5789517c2bd63f6170b94f0a4e1c2e82a10bfc0d68154a2f436b7bcc1a70166bf030a5087c7b6a013ee1b85982e70de49cb7055aa399b64b8d1a3d7f0f8174c4cba3516b0377398d4c04e6336f5b6bee7967b5376d9ff31a18a97e25e26f05ede6a53891034ad271fea6702c28462e17c9b53b066dcdd093cb3d72f7e1fcad9bb390c99daaaeae679492b268d898fbcbd97ec993dbfda08c353c5b97a74695fe21c6ebdeac817885daefff30e99f4afd25b98278e83a29e20a41f5fa5db6561216132470e818b5b425dd9a04dacbac0c54f35d8cf2cb40e78951675d0af0bf1ce275402a00b1cc1228ff401e79fe5c71deaac3779443e8ecb482d99246ecc9bc4e1f624f56243f7fdf05f8a83b14cd54c3bc24501580b915095ecec273a3f35a4d89cc499c653fa2221577fa60623c9cd633078407a7e17c38665250d59b1b0bea6ad4b4938bc658f376d6d9d2710668b1819722bbe9f0f91d98318e3b6466c59bb4ca9e4015d897a3a8728c880d85d7124c3ca4abd381b078130b2e85daa8f78db7f35652cec2439a7a6e091e1951ad6e4a87da414014dc026447b1c024f60c79da583f0076a7b02ef83153bfe7f46c2cad6dd04e6daae7aa0491c1a7b3fadb1ee3b9dbea6a5b0c3f6f87203ef4454f9dc9926b6561fa31a7f10867b417fb4438cf65e7960d1a21a943be059b0f1890c327e03bf0efb7217860faa3ef4fa23f08c25f2185027b2c517e84b78a26a50b07b9da9b1bcda9bc32c97ec23d40818eed56b9c06d59d2852bfdbfe370874c901793d5cee8fe7ade31ad4ba944879397ba3c55f7c12ac339741df7ffa8b4aee6880be76fdbe93cdceafa1ee645b375df004df24ad6f1ea2974521523ab7cbb849fbd9554e01372ae47f2ceaac3a7947415eba693e16fbd7b8e88018b67c2e19c5e830ba3916bbfb78cf64950db7807432e7a6ae017776aad93ba8e72fad4bba60572a7e9f3d58d9821b41a7eac9eb084a2c871ba9c4f715b8c2f6d0698476d68aee21b9d8bd617b2a91d0e48a0a954b438b671768762d0041f53bf05f1ce59e9568e6a9005d223a23941d409938044b96b864cc0dc63178d9c24186bff6a8f7f3118802c8ebc8db1b39e00035b46e90773ce2d12c34bf266d0927ea4175378a374c776f1fb96483ddcd00619a0648028ef11077500475e0111f8a5be16282708e0df373071bf2d2b54dea46705762587f87c56715bc2b8c5c4c83ffd468a0fa4460c7f5bcea769299ecac07f3f59ec35d039fa538a859cf174d6f92e09905511ee05b124b042f6e0591f05a87d22eabf33b7d0f55568732e9d28998cbe74bf52c40121744c9c89d0256b7eabb0663a1e45b47f1141ad4af95015817c3ac8b6332c6f4b604a0b186dd0af02863490df29c620256128b8add02f1e2210023445673cbb4d76d7072ab0cb0d8543a7a706c13a637167e04c526c630c2c14cecd36e5c3cf98f72271c7a7efe30da851ac14a734cabdcea2422c40f3ef606e88c8144491cfd303137c4cb04df3c7426d13559ded1629b464f896603109348d9ea131c3e007e758f141127ddf196beede8a7be9984fb2a222affc51c8d3ae0f9d4fac96a91fa2f7bb7d6176508d31d64cec3082209510ee4228a86121467eadb780781db0e4112021ec32de2a9f029c594c95dd5d7739468e62625c6f585d53bebb48fd2c74d686cc91a74e5909d04b370ddf51cbbefd2dee9ccde33f3e1c9d9a5004ee4a379e0673f85743a2a4845043ee83d4153623267e182c301c85d346f03d3bd149bf8ba1887e916821c02651bfa07465e946187154b836741a1fefdf3c4f79fe43ca8fa98af5af091ba32d46947905d4045b2f17de470e4339e463a8e8da6ff71292e71064914d3709019241ceb9afe4a82cefbe0319b1c64545f5656659b768e9766c0c1e986b151dd20ee6f51286bee39bcb460f85272374a14139139bfabf3d022abe9a874263e130063df05d09d9ab033be65c54e65297f9dd31f5960ce8cb0374f6fa41d343a59aeab213c017090fd158980661fc842e2390baff9fa0f222bdc22597e7c0c8b092586fa49d3176c8c333aa06fb47f01d999d399b1915e91c557cfebda92f47232f2c7f629665fc69e62f16db7f0fed1bb19f690fe95e12518014379e2c59424179bb07ef8d237d4c4e56cf8d94ef06f56ccf1d2bf60fb8d528c9487c44a48e8adce351a7aac897e682243a1b595bfff6955c829b83ad165b4a991da2fa33d6e2168b35e930f650644a72c6aec9cf5762b949bf212f59b4a14f412acda297a105041a9c0cf43f3ebe8821856672198f5c31d662ad91143f15c2f6f08feae12584ed5706fdbebcb7838ea048fd0a9ff06cd8758da7d7c04c909d7a7d5d7242b71e0b2147409c68f00ec2ed666177bd55cdb82a54552d22a49acfc2885265c8f5901bfb387d1fceaa40f06a616ee9c2b7bf2c4c6e9103b14276c7636d1b2d0f67d61471a794a07612c811e45554eeee0f809c484b953d10b58835d6030c285452ae1e47a84b51984457507e97af049c36b8e404bfa1c9bb7f0bddc98daa4f25ba9182e71b3f3257a62f36640edd5ba21d4e09f94d24e121daafc4ec5542aff4731d139b8360a6cf132578067fcbfc0c05fd51676e7323d7e12b6ade4782810e9c08bf13eaea49ae6a4d00a772eb5a462a836a4965ef3569136754f25daf72359e4f833847f8f7fde3ee257a73483dd55263fdb1a392308d5dd56f68335f5feaced7ec764ad3e487598e5c9416a3784bb6b207e4f43342f034b8b2ece580368dd8fb91cc51f465265b0839adacaa6d877e17ee81cc40039e4cfd9fc218b0575ebf1f7e0c0ece28b67e13ef18cc2e5d5fe2af2498dae4209056a1bdd440b66e79140ba604a0070648f41e7493318d0d66e0a89b0ef561b73110cbd106ca99198157d3aba6372f24c044a282bd676864aab9a42e361948e41d52d413d50db79f606c8e0df5bf78ec83abffc2ccbc8ea7869f9930ccbc603d025bbbd5aa6ea129006afcc6ab9180e0d0ff4314f3eac24576107e5349170c83236805bf25707d5b1de14513dbd50613363aced9f1fc61e6c14b9138d93f28bef17c0d9ac14184012842373f5a6b518f822162632af9d08c5dc8eef883380e1456ab80731171d548ecf57702f259dea0bcf89286421f8d5f9352fbdc97690c3077a734b5237da15f6021f34989b8330f4f10513761561bc4172cab6d88be80c025470208fa3460ee96aaee3cf288e697b20a35b70d8a9b7974de387b13bdbfcf48b5692dfdbf1cac2afb5531c9631b8b16790465aaeae07ef1054cf1c1280b81cba21c4d3c7265c97a74c8feb9ae3617d4a8272c09b9eae7737eca4da4674c749f1ee6a020217d83fbb0555261e3f4fbbb0e04c8b6957f3f2c7ce0f9db12e9689afdc4fc7b2c1d876305e99525faf91ef696a9925dd24e217d4cd8bd2520ff55e0b3cd151949af804ebdd00863189d9852577f1f25e57c907d05b8a403b1a988a1fa86003fa2e59fd76186628b274fca1027b3f1689b3bdd2b34ff06ddcbc9863f776021ef527220a6e695886252d748019f1438858b1130c19a596dd0b14efbf7d5dd2c2f011fac889b69b33e3e7e166a05c107efadee76ec695c81843e8ff6c300e7c405f439037f5b9a33d7c2683248ea28e1f708098925be6c889e6fc0c389a10c3b152151330af571d2e8553c222dc97f98d82b24aaf0e0449269d5ebd86d50dfceb1a62bbf50f4965ddad4ca705ca42603ac1ec6272ae9df4e902149f7f995490bd42e73ed1c3f9101511e860dcc4f7278c84bb0ee359b6e62040f3a2c293657e7c86b95bbdccc96402e695c0e1d32c85d72ef0bb56a0cc30824f669ab110efd6e49d7253235d08db78fd7abcccac9807a425539d75fb94561afd96bf4834bd3f47f3216aa79de3a404b5c3efb0d1f40b433d182a4fd5f2d105e8d22d8745ca7207a2526b05b03922cd497a176f5a8446b690f39f7e8c4f8dfb10f76567cec8bc6a56aa21fd80af6b47b5de95b54b533fe6ffb17a5f282b6ba7bf59ca67923780b6e8bddf4e3bb2cab87d19f1909dfcd128cea5fe51afc6c0d4c8f825a39d4db39ecdb9f9c76d103d892426548c53a7ad171b0db20f5114d4687fa92279eed25e04b665495f36a8f7651cfd0d6248d5d5b62fd5e20fd7ad652ddaa6d1c67b482004f8dbab610440df3371580d3c8f9022ebd9c21dfc0c6e216b982126af9998aa549b0681aec3ff10d28be96a848c7ec0405015b534136e2f546f6578f3fee640f522952f04832857acbb79e0452862ad01582e4265cd93a73e8abd06dcecfd3e2c6ea7a05ce798b81d703a4b1cbca03d9ca7a71f29df9215afe7816db03b4491d54adbbf59fe64eaa24b7d2eb59e6f9959bf82ebbfe83dfa325d9e33c04d1e3a0193c3ffc14148d6dc7a272fe06e6a3b64b2cd0ad2f5494b0b4c7340fb2a1acfe1ef10d40cde001c63f976982f8074731e9a2c22455032f0a65027601a474dfa0a9cdd38ff8db38d66ae1bd8280bf2e5c8ad349e2029bf46ed7660c257b4d8f8ffbe9e27589d4fb2238b39000503980979386b2e82c9cd9e58bde27cb7c49e1a123c37238de48a442515a44701b34baa5fe70745a23d5dbce0f0c004e05bd3478f0e89b096cf75b2560687873f85cd685f2a4f9ae8ab8e58b52ba4b882733679408dabd9ccc1d79ee6ecbabd36953436f3a076a810ca3ca0c8802d575494763b382f9ea9d3687c60f9f4378cb3ef92dc64cd8a2d5e220ab4299e9c8695456f32f1abe8b397d05a812b4674bb68a274765388baafe11a4a292f70b54d2bb5b591bc901a8b5a4a0741e49efeb20ffd4df389eec1f2ccf0f487710f5697471a2ca380a5854bcf7831137817510119a6579625c3eb83d719ebcb95834db5a1942245c7badf0f4713081c1b37abdaec64c9790c804531b3bd28e6e724cbdc3e8ae2681cbbb179ed313cb7a3c4bd92bbc3de05b48e2f8e90392e3bc5a62da2cac55f94bc199b2e153506f31cfd1524deea927c37636872b3dfce25d71410857fd7306093f879569499fe13291a81adc6578b6fbe730e781765cb6f1d4d32649f7adefb899f7920314cd50d345214f180513b483346da8024af19dac8c041047c0110a6251fe23c1e4ef20c76bc20d5c23ce4c2490eff2b73f37f9ae585968c0f0a19387638455f87bcd2efc5c21de38c31b96bd595b562a15b35d9d503b00925fdf29954e44dc22d8d85c73b0b80c95a741629706972d0369f8e339cc49beb101abb47f11309a41492035ca30386dae3b46fb270832d6399455939f6347886f91064d4b284f7c33d963ea9be783e8b6b34521231efeecf11826cee465df492af6d686564c199e775a5ab5c58e370f7a1359a29a51e090be0db224d51dd04ac1655f135b4aa705831d1bc5726559a5c1458c52b41ec06d15f14e4c1c2b405d31d57131002219e62780437327c2fe59c2dc11d1e308358223dfda2aa8da227eb475779d87da96ad8e3b890b6cd0dddbdc634545fdaa737c0b83037df1325573dc4cd13049628f68fa99e8e63018ea369477f011dbc1a11b3fcddc6272165c2f516e3281cb60b43deb88923eb92e0956f56d371dd8b0ffec5801b09bfb595c2a35128703e557c9c24e73531b5854aa6401afd0ef4b0f27d067f7105d7a09234bbdbedba9c547611422cb4275b27032873098db8100af7ad48788e1915ebc73b15cb7a08fcaddb5f1def92a92ca2176f414b5c5bb00326b1a3c8577a1011ac016dcca6cb3672df331e62134bab5f3e7109a80c24a7feebd8f34bc819d60d5743e49b9895ba176211b1effd3a0e3bc487cd0966ba9d065b6355124fd7663500667d0dab4f07191996c9b6e723bf83fd8db48cb30d8ed89d51ae24a02437df6c5aa1a5baac35e39b045a17fbdcdfcfe4da861f825c493955ee245929d5b0e099ce9cc15d806c14b031de4e9591be9ed1ff33b4624cf19bd918a2379da2add7290c1d50c9386b0a6ffed1244bdf64cb70c94c00921880189b4f59ee450d01456269ba1964ce02c11e8335a7260a0ccf68bb88cda7183fb219c1395612a3ee76c1616a994a1a9800d8ef0ff72fcfa3d3532241daaf2250ee2f607c078f64ae437742096545aba6dc53f1e824938d4d96f9e2f5494e9624baa9151c7e3df3ee934ad6d725f4de39827a194c1df576e119f360c5a5d13005a261ae584efb704ebdb5a3f9202f3b74568d644ea5c93768292232f96c54248e575e1233696b7ce2ac431ff74fe1c10c6506750367bc10a1aaa6d77935504e2d88aaa6f5709382b4e177ab3c09dd3fca1e8789020e7faa80c03b60555c44d4a803e178a81d1fb23f37cb5e9a386d650d687081eb738e05abbd26ab3f4652df9532a7f89cb1fb38f57f874fc327a5cd45f7fd7ddddcc0c7fce621fe0c30f1a9e0dc8f90e37d3d19bbef8b94d1d6b0f77903ffcefd43afd10206edc3378f1b9549402065d57681ce68564441bee4a79bc24286e3f6b74b767fcb6d945e029884e376f1dd8ed83c31492a5d62ed07a5b2ce382be874c736e7eb018a1ac3d13f54972d28626bdbac81a062fe679f1624005ed5b695a8fda568f08f2507ccff64d29faabcde91785848202297797f9fe8e8c7625574c76eeda7ec4aee0383e9b94d0b244d42663e56c6733184e61712efe975c4a7808b54fe1f7299df8316775c6f3f6674171635c803b4491b4658772a1064054eb1b0ba6ccfc9e5a76258dce6cb73cadecb0fd33f27f52ee5e016ba1068a536c554783bcea36be0597f3fe9a750327d97ff8501fca4bb9a10ac8a7f377adf9db2a028cc83e6879213e264ea6474db14486def3033017df66777ce8f8390cb33f614899940a780408587861947dd23786499887ddb5428e653ed64ceacadb7721e8667f4df986d1c82a0079ed6ff91147d7bcfe3a2809ea2b4abb0c218d7047517bc154e5c1597c804ef6d1d2515016531c2078509fe32249c0b79b04d8fa9632f93e844f905fda951ede2db89a822c87c27b8fbcf8a2d1d33256c408025ad34ca76b8c0f23cd30a2197b56c91e7f8a657882cc02b7f4dc4523c99b8fdccb0b95ede621f4366fe0cfbffd7f202d15aebe617f39c737b416f9d09f4c4744563fe962e487152159a6c2f5d5ff11c5a75c6b3135f33363e2efd1f43d5cf5e3b0bf7ad01cfc5a09d741213cd06ac6ba347c7a5d30990ecdf2d11c65e79ea0b6e027f6463e087bd5491766df0ac17db602541b9ed4acfba65ca1c2bc87e45131736a727fe67ea1d94a5d23f5ed15ae6aa3502ac6ac3d1f098863a92aa6b392a05a9544290d764a4519d2450151dde0689f5591ab6d5003d5557d80eff26dfa35aef2e3441a53feb6d16012252d8ecc4a7b26fc6092a23c30b233228c67c381be6b3de8798c930a4e7e335479b72e50bd712e903912a41890d489c81339ce8099a329cc2e840089ffb8a3c3269fdf9a31f8be081668799ec4b179e51199c7c4dbebe0d47fa8c6c49d9c87cf489ae80f378e92beddbb2a510a254dcb110f343dd143c7645a332a7b9fb095f92445fd4696accf22430632e7a66b8d311b3fdb83251a63313c33b819667f02ed74a10c5352e2795fbf5157048f86f6356b87b7926f08b8d83c8b32f6e06d5cdd2bb6298293dc3e1bdf2874fbe379b2770f410cf43b48ad31b842e504e1842356bd41a9aee85b99cfa283c9e0d5ecfa372fec5c7d4c8dacb3c883ef5ae3c76c9ab6ea43ceaf3fc554419fc6e9674943d76c285de28d4c5719bc2fec202e4e27bbc1b8ec97654cd8fe7ff517a0cc0e706cf5ea233d80f2904a34b8a1b7e13aebdaa7708a2511b4535cffb0b9334d0b95862744e5505d4f6639aa1845be74435426e516b0f6101ce601198bc2a2c896e3d25812398dfe0b2c2a6a6912682d48491d364afa333fbaa72de263de66c675fab0df39cffe717f8a005c2dac367dfdf6a36aff329db8e6b77ccb92742fe73588f006199b6ba44f41c18768c8adeac3df735dbf826052379deb8485b4787da1aa786bedf175f0be9901996585e82bdc7cbccdaa6e9727b9080bac57b4f32d7da2b526e96466010ab819b07f33b50635dbc768a872b33393ff6dd716ed994bec04cdfcec95630f525dd20a597d5e655117e4e2347413fdf693ea6c3e06d0d366979b93be90598d1d5887268813f8e0ea9194d553adb5d8ec8b48b95bf93494f667c2f854b0335694b40877c71acd8d7212e151ed6556d656558f31fbfd4e51dbb65808fa5c8487aaec318382d3aee642703f4d3349a773521625877d7d1598a6145cb2195025a293656404bfecdd5749e6b0268938e3103302ba2e4c267a299c4b54bec1a896abbb38cb49b31014d7e1b788f95d616c8a19963e0727fe35b1d4536ad7419e8c386056c8264971d01a16bf93e9001a51c8db798e77ad2463ec4b9557fe6d9779c40a1d75b2f052a3b210bd385c5bf59d30bbb0b88cac19c2dcfe8ac14bd870517941350d526d5065183ae1d6e71dfb4d48b27d85842175e50430fa956dbb30b5f3d76012d12639a6df4bb19cd19d2d5241e546a516ae4e5dd4d5e2658edd17ae3b9fe217504920d820ecdf1547e2f4c32f1ed45ab8afaf596b27bdab0deba11f2fc6ea03b6a4518722d314d2c2f3078feaa721cc64b724b1a8afe8eebc72846357ea22209aae55dcd7b6bb2f5c6327bc18eb63308bd26438749f32b91f43dbdd665075451fde1d9a795b1b970b839b8eb6b621cf5e7348e20095b929a8afd5348901e84ae802a5c63206e0f1fbb69e4a66e70b8f4c181f6e043aa4653ebcfb7f5a1fd9482bbb3157cfec14697258ea7380cb0918464333334d64aebf61c008f6069cd395708f734aad6fb7b6fef95cce86f4680cdf036cd45d6178b936b3f31695c4d8597587292ea7d25c7e9a711024dff2aa1d768b91398fce2b3faf622f0c5134dc87cc7276d4074787ecc69b72a1cc7a69cd615ae20d5b7ee60cb12a0efea4534c048511937420ce24810b8e23debe3dc3c48c84ded0bb376b5de34968ee4e87b1527cdd271c30588004e3a10b875443e54df5b9176cb892587a1ad425fe6d0302a50f9df9a2d5c3e651683629b537514f4746eb9f1cda19cb8248dcbaf90577438470251285ac9119f9d6520003f80f9f27926c91026a6ef63eee6b7a22e56fdc04d6f3d95ff05be9064e333354b4b5ec3a23a075720ec28d5d51d72d76e03954966c73d7e032138fac965aa70af4e069ac7297e7d4a1ec3547400cea25813996b8093eecd435f266badca351007ea88e432b77ee752e631c2f4457dd77fce7a32a89b70f9a8f562058ec6ad69291cd10fd84c1a27b2f255fe4b6a991eb9b340ca525ee94c93977b0fcf418a2bfbe29f9e2cdaa89150a10a2624001de0d09d027e22ca0248f54334570ca26b4ddb1207909d2345e499cc9a9c044e6abb06556f06bc33680aadf30364a86392908d07ef15db3b4ff8b0b448e68073c38f4fea4828875a4cd0eecb9279fe026590c42a959b740de987b5c2c8527862d114a038e3a27410e47ed23f426ae2f7ef62adee061c7f707a024ef0c277b0af1f03c26eaa6e23c2e840561ca33958715cc91e85a8c83f452e71e7f1527b549d9ecc75929a4bffad153368d2fd8ead9280f04d4eb1ff1472736b5dde8b2e23c923e5e283c59f3212ad20c972cbf75e2e51c12ab4ad9217707e1bfcf2eff75597e59a9826d0a585faf54fdab73bfa725e69c1c5e9fc5c2e47c4520e3ff88d8acaff7ea1fb75eb84a0b65ea829aff734e5858361d0512a8e7781ae6976938139b8f45d6ba602208981be2ec5e03edf79f408a8111634eddf5334ccaae6a098833025c8858cd9327a675ce2c2ac33b0d8d4796d097c814587bc218e138f73f85f7f5d2a79feeec167a2e6e8616b8dcc80e900d1fb14e756c301cd6f3da7562075e44676381e4cd8509a361bc42d7e1b98b8ed3e2f366aefa3ef86ea117505b4267ef15aef0590fcb4b129e83661edfb4af332d326c8e2fd0cacd9e9ba2e3016a2eb530d2f886c8fc82a1f916691f406f8f3e429039e7a58421c1a507dc9fcd2f3d8c2a0bb40267a66627e760c8262a221ccbdbffc7c31d3b5fcdf8aaf0283da6f3f7cef7b93162d193d2f746a4e39630fc79de299875ca611b385373ea44f8bf66320134ea52beed4131f4e25f531404939053282d22225b927aad77002e38ce083326dc25067773dc7c02c5037349456909aaf1103ffc339a1b195e0f4327a9bb09c3fff965ee590e18529bbf9e0f06ad9a85f0dfa416f66b14119d318265c419128d54e13bcf591d869ebd66708c1ea609c791bb78e3117c1c66b6bff1af4b4a0073a1a86bc950b926953bfef33bbf19f8928e1d35c2ac7acefec620660d60c064d8452a2b1c0c74605393fcf1c244568a4dbe72f78d48a312e573cfebd54575472ac8ae681ae13c1c336df5130e15b22c826aca8809c189f3bd4226de8380156d2f5437124522bbdac865110135b66fcf332780369c7dd609221e7310e4f69872ee72e6e2a2826e3ceeecc791b30801cc7beeb80f9a85975f0c4cc8651c06a0b29d362f032553f6bb8bd28b0d3b675430aaf53ec4d2a39d8d95019e8443de8b3ccf0cdcb741493fe01d7cb477a50c7d0262f335b55a0ec3815b9972e71f8a12f030460463876abcfc1cfc0cc818bd4c3aa61a03b53f2b1142fb78142d370e08d1e96b1475d6e7637151b810611165929c7a056c260104d70f53e81275c0cbe0f51be2904d3327f5ca04649d48380a55fd34ea043e7b9e8fafb02bcc6708219ae347ae4fe21ea848b05470824e5cf3dbfca367a842894d95818091bc868167bd24396dba3e0a9c8f16ed43bf67ce0c780c87c929bb6903db2e64e400011a276805f2614aa3dc5ac5a08d74b993c98732c901e058cfaa3b166467edc742a7054944b8ed2e37b6b7f6b84e3364752e9467a0804f85daecb97f4dab156bdeae60acb2f1a17216f968a9998c7a1189ba4f74dbb9f781b6265a7b78a49f8917702d3fe1927e54e0249c3bf7c269cd02a1c3d64551f3dc2fad4c11f00cf0eb06f9fe16278db160cb31db2ca6e25ac5cc695c35a2b2c2bed2d7b45662beab5d563950f909f6fbf8212256f6a2e28f304698d2bf7b03bc6b208fc5895c0653b7c57a17ae348065e734614cb1b829d7d30c2c7bef40170e7f76ad5e8e9b4434f24442069070e15630588c3ff22b3db0f52b434c52b5b08614086455136c3e1717b9799fa7df15cca1ea6fc81430f0d020ad5a1a3989f616fd96381eef0ed2d525eaf196facd672cbba8199ce19652cfdc9f03c2ea4d48619145f3b0d07f3ea0dc0625c0f3505d8e2f58ff24cfd8c11ab4f83e6d811a551e327a879f561de0486ca78c7ff64a9a2b54b5a9da039dc8dab1b4254af23df1a7340c2bc094979f538202f35881a54b691d1fe7a0440b29860a292033fd7f5fa0c2b04763471d2385504b68e9acf788c8c0eaf16892af18b63540ffcdc997c9a05131ace1d97bdd1f551b236a263ee8c82703154508c7c70b5c40662f175af928ebe84bbe3f651deba97bb43e6d673f678435e6e2013bd5afc22fbd83286ec5d7ec716694ed1683c3061e08a08692657247fa445e8ef21d75ff825b6fb6e34d8f55d76ecba73233eb4b31f7a6b730c9595b484fe0e559a66d695ed0223b9af4f053da24c36e5656ed008eec288e78c864fe414f0a89a1c0bf6ea734f032d2625b39b67d882705365369cb5d48290f41a470b7ee2ebc120e4998c095599b787fc050feacc01c0daacd2b751277b16f21290c37f9d7c2223dbee8ab568e4f6657df483234cbb2529b5a7c4935577491b49b86be9c66f052860b956b3bdf24576a35cb25da3fef632d9624bbf07df68678a13e6211118d33236e65df1774304139f64acb8e154982e73ddbb0eaedcf3b3fe7927a1b9fb41cb4fb837928e68dfbb45e777a7bebff31601fcc62c0b2b0e3e213b7b77578ba681bb25316c7e12199012cef173d07e982a599d52ba8e19ac2c494798c5f9731c63a035ca8accef1ed8b67a95b512d5b06eee8b93cd7fd18706c2d1613f96a6c3884a713daa580a4d7d3aa224e0bc884f2825a3a56df725593874ed73b0c76eb48847ba7abf7f8c5e8eac3b96b568175464b79a0e17ab78e8921de66a75dc329f01931717700e18e4bc636425cc88d84970292af43c877d5cc819582a0035b74513d34b9398031912dece5bd3122f8833604e7672c019e791f2ba484756f2fe1ce4a44603c422be5c6dd5f8314523f4298bdcfa6b7bcc45630c32c11e92f423701ef9c290b85681a208c83ad67a49c5110c126260bbefa3867707ae106029c04d6c80a48beae36919f2e0d76498589f714269fc53c194a80d762305cd822ac2620028e6ba056b72ce8f54ebc4dbe0109f505dca953f384ba4b266749f4f2cc7a610a62b6968bbbc49eaf124a751a20d0e9e3e4a3ee03c6261b7d21a2c2f3c546754164838a5757dd532531c3a6033ed8b56177c95c035965b75420e1e20cf88d08aa64b1f027ec9f8399ea9963ef72794e79fcd2af000843cbfb2afde34a0248bf352ea16fb3eaff2f4d4652978644cba8643e04df4b117bbcf1a108b11dffa68d3b24de0bebb4565feb5b4206c9be659a8345bc3444c6a3dc0d4e7026fae2c62f4d4a302ad729beb142dfab0ce4c545a8a913b05ce4dace11396e21a9ef2c456242cfd93e00faf089a53ddd227f0bed9a998541a7209e7d42bf841b2fd6f8f21b28b4ba2a0efdbb81401bbf9514ab6ff4aedf11485d19e2dd19018aa8439458af5339419ed7064f2aeeba922fc43250df3ebcd944ff29f77b09a9f823b6f688ec5eea6d4f917048db558b2862d109bfcf00ece3c8d7c80bdda2d69b1c04c6949003cec1dab80b35b1c5d1b2dbaa222abcf6237e9efdfa02341087199c687ee7d078e1c461e2108bff8adef94cf76228fe40a4d979b55b5173fe64d6c90fe5a633e96f21e1fdcd99904011caf6ba5fe77c6d58a5ba81a22af0f6b05227ab6eae38fa12a18b263185d1efdc86ce44b77aed0e1ed77a47ab40d51994423712a01e9e70461758d6bfad2c8bad2375f42fd12a151fd9f0faa82958adbfe3775e982acb899a1939babf06ca8d47fc5592277849c1085bcde70fc2fa19cb5ca1e855447764aba7d7ab2061b0808dad5219d30ef69a7340df9a476376470ea9614d058de1aafa21efe879b1e56654a9c5b22eee07220945abc74bb6701cc7d67966c88e0a2b98a39ac1f9cdda5105bc07ed65e6467fc00077a8169c38d4efc9ff4aafcc18f7262ef3f9ba9762b92c01f57d96633bb36a531f5c92b8b80991cea15b8078165c5ec01275dd5b9c1b60cbd84dcfb04245a9acae864143b37b9ef86f21bb40b2e5daf3405ebdc346600ad90fa098ed81ea5aa6b7d0ba401711d86711988454df890512431a00f35bca61644803a37a6693e6205d773484bd3210bb72bf6944452603cad343048fc8a274239317c2ac8877962f48a7b5bcc642699265e166205d37f8d824ef9a3e93867d8a2fee81dc73f2b29df1e22edea113848c1fb0df4ef9375afe6f126e2015661b3db2acda8f01d0ebed08f53e2882a493921e185a3bbb0c5288f44a494161569949ecc1dd043ef36f860d08232f6e3f99f640009282acb2e749da1de8cc6ccf93139503f3bcd49994d5f43144e42d4f00c08dfb2c25a88f6f33e17582eb57417ff57f61bcb81029c5e614298f73a7ac37a81182ea0bd124652f6e80991a12d3f4e92528a8d03b5bdafca9ad51926b46edf5bd6020c999496e0c80c979d79b7e7b170ca0347824149435f0ba464ab465f44095d354febc12dc88aad4e8d20fa91bc411cab0c164a1a0537c996ba71590aa79f823454354daa1d4da9fe77637e6982b3d5a2a887b5713af4fe76b9abf915243b2f186a6371a029811396d981f3747ed2dab3c27730da6773458ee72d96112fcee12fc19a6b4678bcb29739c3ab56bdc0e343073ba81c5fc731c14fb084bed8be2ae17a2bfb308229815c5ece1b9d6f32fb9bc68ed0446738c479968c7be865ce2fd66648e81f00992d26b6d95ea3457f027fc67ea1b5b029f861d1a017ceb86e2a7cc76e79da3bd89a01e057b20137e22b104072d44d873c3aeeabfe59194fd7e9d1b799fd1bf0685f797e76f88d97537e09445b6a9cf4c4e9b7a2b52468d6e14d860c76439089f74518bea038ec9b435742ff702525c4a7dca75f56c16499f4cd66cacc22e0daf4cbbb393a1bafaf5de58599b20cb51b06d9f080c45b6e4707f01d8c43f3cd9588a5b626f26f083f67acb9a8adebc619af1fda548b84d1d81cd641716312621baa39c3f261a709d63e035472a8d0f72b2cdd595431ae909163b0b270906027758d21c6bd255974b7fa9722755d8f8b0f61b87f66f5b3bc648a4449283cc47789baab605940be1a4d28e660f5ea3f01ae2449af36f84e5d3ac16ad58328a5d8dc145c53b86735d01338c51e8576bbb747ec9daa2713a0e9d947916cd5ff726772d268b0f7c9c0e9e433dbf6c24923a29e9eb36cad85ac507b653a0839e11a569de03cde6bf6854ebff72415c9da580c13e901d41731da9140217c745dc19477d57df5695bd94e1872476e8d0648836fe4fcf01c185278e5191a7f8e0ca959dce0dfe6a951240ac4ca45df017d4c8e56086f5b2c8b863475d66a01d30cece57ee495163033104af228046d999c96a952491114aa5275a3a4639dd43c366c39002ef6bf0c7e21c4b7991b644638b9c7ff9fff60eb469dbee97c4e5e73d4dd5c74c84fd1e05f7ad47ddc82e45c4ca31e19f8c876ad8ba760354e491749b0cbd53e2ec86cc08b51f672f31e617991a8ab9dd38e03a0d118c9ebca900e8a5aca33ffa9c56ae5f9574d8b21de21b715aaac047e33a8bf4e641e6dbb02651a92e3858d3887d331fb321f117887c13656db2482c1327b807732e62dc3fed064dfc3e206fe1266824ab357c555cbb1f492f55a5b508d82c8c2248e5fe1c11b19bf9de3e99ff417d1051d0290798bb3ef56685a4b54433bba027fe6282ef5a13af6062443165d8b27b9a7d2c08ac3609f6e3b72f7d536174f1ce6a26ed644d57ee94dc7e9c5159e61e5589edf38f5a3bac6e3b673eef2fac127d3db2b98b2bdfb11e6f0cbf560ddbfac7ee00c557d3c4eed417ed7f4c0bdc943718b5a41bd7126e9934a4bf1510c4a8f5b35f286c13e232f5ee3e119a9aca3a55b146cf364a121e6f180a9695fa2016107e1427fb891758b3b45ae237809eeaf18ba512d8a0d5c66c1c584e8f248e4e32449ccc9e871faf747c7783ba887521a3e2415de230a7f9b3b4d6465805ebeafce7616a19ced36af85d172ff16cf0074e1df00024f04add83fd154504176cd5109999465b3692683868ea74ac7fef88a57db588c48f60fd9cd0f95a306d732ce1b81659a2b1c316eb76cf064892526824ceca29ff8f3b7d9b34852ceb5fb35ed6a26a4893a9372dc479ef98c48c848a0ed4a7f56d4a1c9a0b9c1748aec1157fed62248f2882c50672d9d560ee960b1213511119f81b9fccbda427ceff77c31fb26339661f69c5ffd61a3a65516d9ca9667c2f6ead6896a00549a6c54c3512e34bfbb201a176a9db07f2ec9b41c14759979c1d2b58672acd55f18cad2a3dd06f1bc4058aa7a71f3a44a8322c9ee662fe363d4632405694a968114a67ced1e17af93ecab94ab620fd98e29f0b5c218130e63aa2d3efc7a792f2564bb970f4580e7730d3aabc23f89c3f46aada447e59d8abf52b183f1402aea2ce79a6f8d3a1b87169610015be159fe14d5873d507f4c9401c035e3956f67c7befee79089173b82039dfd92ad74a17a20bfe309f309052f644b204e974b049a440da57fc1ac3f2e0ddbef099ef6bdf6e7bdf0f28d9e5177f132dd70b12e9b371bff8f3ac8faf74a852fe7388cbbb1b0ea2b4e4ecec96acff112584f2906dc5adec08e1d06b8d4e5a31b7538d0ebd98e59a8bf2adb0b12b33e7104c8d5d42a1198c02bf584d2ea80b345cd41e103f538a998f1ce03593c3c9937763f552e8ecd5b762255d7e4c527d9f865ab495079db62a14d9ce09b8ca25b308af616bded7afedbfb837ac30a5cbaa128a9b4773b8f602edfc7a82e9e3fbc8b1ecd6cc0a027aeebba8deaf4e903d65232b294f0649f87ef479b9b631fe25f5e5b73f0884c242528994f403362c4204224ae1b86ba276057c42fc0febb79281f8b4b25fa12b01517d38e99ee5271584a044c80d932c59e1d40d5eab7d765042c837e6610118c34c0846cbbc85e7d8d69ad24d6dcdc52d2bb7a97ebbc18f101449c04df582d10fa3296c857169e939442d08a105716edecf23b93052ec2c3110c3ba57f73369bcafdb7651e6521c56d99832a226512b54c44980d539fde56b28ce82ea5975178b8b66fe04af243f431da64da8df7af0e3e79457f869a3ab235affa69670eb9937a7634cbb030ce67c29248402750a052ae1bff058d1b2fff71c6cc8757b5ca98845b9b815f46e8af49f37a2b3488dd2eebf9faedf2133cba74068810cb7e665366069484d78edc46985590c69909712fd8a86d458fe6728d3f057c91aeee9c6eb91cb5717318aa978aafc50243158a29f9fd1eace7ecb01dad41078e419fadeaedc598e716256754f122f1de773de4820d940ed1f1f3a9545b990f750bbf55e4363049e96dac7346e86f026c6feb7d8fbd4d285054bbc2f1dfd20a9dcf906e87b20dbd9207d87b02237b13b100da9e7f08c908e20c79bb6b9b13978844e6db46a91164305f874a2a7ad208d1f8982e98b6f1d10f6e552a6d3569a3f5d8accab36976c30b77cd6b26ef22c213470b5baf10700fddbaebc5752d442879df5f3f8ed778227f006f9f816fbbdab4e1e98e278334ab1943ce7f6af1f86fa90f91f4e83dd946222d691b50dc16fa99003eb8e29ff1f14dc7006f1e9b3def186a67897a555d41222d699e4c3d4bb4520deadee7279da772177c8a1ecdb0ada3321c0076b94f4a160f5152959299fa0372200bb562f52be753ad334a26503ed1e27c8c8436fbade32db87e326be21b2143e97b770ef7ae57f4f490026b01484dac6ab2ba7832c982996a0bd1412c55149a9f2da4a1667585bc25b8fad10c9eb8615ab4a29ec915b7efe4d25aa421f2385972b0aa6b4a2d23130aa9f2d99de85462d751b62019470cead9c456568ffdc8fbe64ebc5f6d5237c3df17e7ac44dd4c73ffd5e14d8176aa7eafd83af1ea81a0065384e1f9dea2b60cd407805c75079b470276ea56e05fd3d102d01901c559f8a864c3d7bb72a3480d8f35c8320821d1d5a6ffd1831bae1a5e21c9563f5d907a1e998c71343e3468f6a75177e9b9fa4181c6d791b79d57aba98ca148580e52526ec5d472611e35523a2a0b59d9a9f44f8ace48c7d7d20a2c977c28f79bdb6c193590bb2381323a74d518ea9a1adb06e22f41212b07abaa14e15b215c15ea60c541f69113165b504d1ee5f90a1eb859416a33a2eee21ddb86964716d2c60601f6efc630c6f4c3d1f211fb43917e8c6ee12dd0bd571ca19dfb8094fa9a351ca34754239f45b0524aabe7351a6ea906d8d4b2d3a536d9b6fd5732479da801bee08a810709d29f396c51d266310783bc82f0530faa0e3f5bcd3a1b9beb1002a3e70368bb052a056b14713ad08b4d5da58ddf36ea660c6e957195718003d841255a1312612e25901f5f5068ad33066c9db2a914dd4323faefbee1df1716fa43c1bfea4b6a049b9950cc5689aac57f62e43e6e28f541eca1f5e586ed371adf289b852e162028d0f43d74843867cb7e0d9f9b5580551a209cb86f3fd1eb4ea2aaf78ea79d1ddfe323e94beb35f8e56a8b5666fbaab2acc6554d4a92e6f28dd768c15566d4d2eaf7109c795cc567c8063c7419d301d5bd75e44ee5b04f3e6eb8a7069bf93202af0c2b60b9bb402f023da0cb44499f1d0639c1575e4c657636e37979a79a9a44a8cbea84d1aac6c299cb290d56a365fa8ffd998abd3376739f1547ef1b71cb8432ba501d177f920577d86954f1df5973669a280c42cd00c6668dc5e3515064829f8ee38002b376cf9db8249ad919fca193d00785bebc0031b1f8c6f34b90eb519da112cad345276d38749042692f35326fdc6fa40549232a3d20ad6036e4f2daecb5a55847bb7d2172d16a8d9ab0e7e73c729d996652b55b65b5f592775002576890104f5aada49e21f0a226a05530161b40679939ece524f3ed0f9250a298d8591a16151f22258e43c009970d80e828414f2f5e7ceb8818c1d7998f0d0b3ac1210824d6a117240c45dddbd18f880b1c8edeeea47efcdc7b2d8e365ac6c0374a2d3e3500ddf7ba2b1e98fea835db3503679094ad9e11f9cb5cbb69e9aec695fe3c6ed6c7bde6396d3c3a795548249382e5054ebe153d6d344c0f48d7f73e363cfba61da2381c4f4c3dcb0af2b30f375356419fa0d447531ab49657e23ee83bb9e2cf02cc6dbc82b478e3bb01005d0ac4076a5b2070978393ba1bae6c8fa867fc744b8cc4dddf32875b55f3e6d7492c3668cbab8f1d35e3ea75fa36fcf2470fe1c039b0cdadbd3f1892b7e3682395e69f74295342bf07c81e3f130dba91bc2d173915a06ffc29e4b0021a1f34af9c180977c4441301934060d4c400f662aaf7a2daa371f445daca0d986fbd5a65574c1115a677de84cda4994b18b5a16df85059a376bdebd8214ddedb76c9ce152e7e68ae1198051fe035e1d4883ad2989d7a695871d8a95a18ec48612b97e8cef4fe550b32daed22e0ba094d11b1420c0752d09c14c3c35b5c8164ff093ee5c586bd325b5eba7fbfd6f812a06946d020ba85e35784c696fce358bedbb1b063cfc6b3eb8290e8a86ba79cb4fb9dd8ffe01335c86b84fcbfa18d61d844acd2e967062982bbe6f5d962a7add8d169a07319488bfdbbe5aca3b862e6a55c657c5d4c15fa8d804a9c8731f8e71eab008a78f90108cf831d80e88bbece0e939f948ca27b1db6ce96a1ac51f76d58c92e4e7b434852e4fc0004fa27cb3770f0eb45a5b1a0283ab2d76844d754180d9afbf08e0d87a4b255dfe4874f06561c30f1ddbe2ae0b06b257d3dd12ca34cf7f83706e811e11a05f8738a0380c0f1d6aa8b134e01d0012e3f9b45d8df71aa8542a2ff638f2a6f7d1f6b7d2506c87d57111048b1d338c87eb191d1627d450f5a368ad3fdb92ff80dc072176822b2bbcbf63ad7a8e382ffe797b4707c7efe69cca91e7e57bb28147dbc11858b3d741d542b97b0d69e99a50b96d0cbb7448196660acf3a39437d80e96cbf0d122d3f9885e6644444b787772146a4c7a826b10266b06ad60ca839834175f5ebc287ce68e7c14b45ddcb4d3f71f7a8da698c102e4001e8255e97d734c7eb35bc290a9e5d778361dff3a0b509d9bcc4d2161c982d1962fd8062563cab93cf3faf140bb79726b84fccb8e823f14bcbbf8052f6963d4cfaf51a6d920e4112cfeb3816000857581ea21bc69baa084d2897e0bf02ae13e9456c377ac1c5b6835e6bea0812785366e0879d98e1dd5877a8065f894c38133178d483a7121575791ee48383c128581c9f919d0e892dcef83de4cddc6eb2be1bae0052b6ee93ca5c92a10e689b97523b4c3602ed10c56e129726726911f3c0d3f0080b8d08c698e82657fe59fd91cbf8d428f55d40342c9a0cb157e67446b1350841f5b6fde486ab882ced3dea2ccc7b9cc8ef694f622b79e03ec08b0fbf45561d2653e0860d7b8b4a8e83c0ee328561c63666829f8d6b2dcc071495394dfffc2c6ef45c38b2cc3fdcfc81d015baab3b51da52fd035a4b48dff733c6e96f7b214aa38da0d2755dd1d053b021edd3610d015d93909a2f89f0ad946ee381907f74b0f48dc822cf87227543abaa9989aed0196b5fd9336c025ecfe9a135ab5b82d7a627b61073189d66b6f62526fc95fcf0e9bf20d74b29a35fac16460943a9efe231d2665b8bec7ea4581f3b94e58fd3ce24499b6f9298aed69d57353057c5a35f964977af41f3b9377de2d5b85b76033f0d6ba3e80339c6385ba4077f322c23ccabee69b79a7f6a4f795f1097edd0c60b70af976f9166dc0eb93dc150790be4dcfec1fd407aa11d71fccaa2ff17d6f36f6e69729459068d77b7c46400561a97f6c36970bce38cd3f3865823fdb949319b18188fcb70512da3e0b4b26fb59abdb499133fc2ca784281306ce46499054835d8912eed39004259f75b0183939502661bdcd78b73577b9bbeceb34df75d16d5aa425cb44e58f172f5a8a1a557a4bd8d43a67877630a1c140bde9a9134d45e872c071642f8de745b5a6cb64241d9bd609e8c6b86e1f34c95baf3045186c9a74c726e7f9b37b28497c9e3bc4be498fb4a4c56ece00608e218437c5e6fba23a699b46c78265eca343bf9aa46b5b5761869d499454e5fbf196d427854120c1639d6c9c8263036a6c271f06b8efaa766a411c7771fbe198d9eb8246259260880d1df70cee068bb2360f595e8a197d7d5f74730178dc2c8baa1f11ab2f9d981943b876b0f6f6463871e9b8e37d58c477c1247da4d2112b3cb2062617ad72097ba2511693dca1bf6f3bac76b4e14dfadf956ff5f1e3605b4c9a82dd6d5d930c5da6bb5c066516af6d433f329337119508f2b910ff69d1cac1d35c4df223a050d8a2221fc1ff48f9afdbc2dff6efec7ef8880d59cd4287881d5196fa3449ede27c599f53164f3b1547ede96799c9efac626fdd4a3c7c25fb07943c98b645cbecb2d13463036ab56eb7248e4ed2af3c8941a1c4efb6374bb6bd478431fee59edfffbb31c774c4eea214b2ce035b1fdc8b9e9d035d726399a4d4cb5a026bfb47681154ff302529c3ff14fbae9be69589a64c66730bbe872af97b4247723c68aa737fdff3ee78562085067b870e8b1235dceb131193dccbccf03b5c3b51689c193b88c33dfb8c3055c8b58057ab2a6e73787f9367f97520376242b2a18974ea493dda9a7b1c83e6c392f134221bc38b2d1d2619a250c80124055278fb537e38cc1676a1fff2d7a5cff7ebac8139251abd8148f8f81163a3e703b67a8723e35907bb4570509a147cef17d778f114de4317d4d80c73e6e49646cd66fa18daa4055e681c4f98625d7b9b887539371800356f6a52cfebad9a94a3e20a908138b05d269c366571d8521a8df789ded9d78562dfb0c96e489d01148153e1d3b69a582a72e86a70cea9937a758679bc492c9871049e3e2faf0eddb37c240bd89c76bee3aa4e55ac40069404cf5ea8ade622d874923b8500e6b33bcf53c754d0db943a877ff0fd23ce10c301cf0f531bcb2b2b81bcc1512f7271beb001c455be09c1c9c5ab65a79d80870810b633d82c63d3b6b580e5e69e2887ab07121a7de4027561205056774e75fd77cc4d13111494f4a30e3b6b692eda534781fae1f69eddff6251a6956eae5c93cd50a9c8766a94a23efa215064f16c7bcdab0475104eca1325b97260ff4ee9979a6e28c4f63892538cd5d81ff218eee684352181d22cb1c41102ec4905ef019411e184e9f4349e8e745e7d23f954d4c941efb6e5340575484c2608e58b3bf05eb5964f2c9fcab318d0bd9e579125dc791b97c3bf421b221ff614c12d6380d0d0e43b36d28fa36b2dc8bc81db326a97b6e3e1196ffbfb2ae1b2d13a3efdc5556ea74fd15727a44b093318cdd8f4060368475c439d65377fac1ce53da963b61faa374c028a50fa68676bdac0fb03bc8fbdb36db012a1d1d5abeb8f4116d338d834dc65e457f0323209f5090a01b4b328060b551727ec5a3f577f4d0e777ba2474c2a898f085a214801b024601bf1434afe00da43139831c47f7e380bfe5e443c05182dd139fafe03ddc191aa8f70f9528e2c35788425e679e3cad8e40e24f575138486d78398218fff24a448d30796fbe431628e53538eba0e649e3d67a621982eb6a205005919104218712ad8e6cdcf6af554a5b227ae7c328751e3093160ca6331134af3c6be29eb545ec8badf9228bdfa6fa1fdb8938d411f2d8c0e93bd27f16aca70d7c624db3bc576baa6b42caedabda640cd868aa7122e4853e2c6777c7912d90c62a67483c7da39014c7f61ebdf1450820a61e3f8f3334c5251cffa9ab256c449b73d97fc64761ccd6c9bfb45243c3e8fde7d020f4ac3b7e35c319274a2f7d6d2fcd5068f494b32a81866b2c376b483a69e6aa51bd0b3007efb71b1c3a1310d58b129c31fa73b476ab24ec0faabeb9b7ceb0f68ddab808f31c724b0e043814439b2b7c332449528f6cfd7be51f40e580bacd093f8d2fd9dc47afcaeca3d033dbaf45dbba4ddc957ae2c778b3bc91cf2e607be7cfef73d9ac3ee7a74d0977ed31fb9b827468b72bfdadd5c70edab7bcc81680ba2e6bd9966095d0f97a9b9656c017d09090fbd44a9d735fd5758aab9e67d58a88c84119075522f536e1b0a6d0747fd232209f9e52015de1802a0dbdd3a0bc23c1d604b9776e82563ba415353bde145b611d823bba8b988788f55bc65e448d2c8a681dc1933f9322ae9c8cc06cd699f1a402e42e2befd6aa453e9e2d03962ff1eb2b46c3f97df877b9c34863fc9f378622d79d46e136ca5ccca9b4b7eeeb2ac83e9d0f311ca8993a461f724da622f999721996d9a968af04c004b02adb882e437ced5c0266bd20f82d95a80fd55051f704024b561c77c20b6f9358c0d19a8cef55a2e4abdd4e7cdc14a878b519c891fa122c5021e6b3c3990704a968fa82bba633adb465c0fb62b6dd04eaaf9c6d736a62d2c9c343537961f7264fdc20eed56e7b78abc1cfa2c70beaf3f38fd11e92e05a73f06901db2b7dc8412e7fd9d017ebc434fb914b2e673e98350391f78deec12fde92b19c88275b0d49dc12700d645cda81ae1fd2e541c0b18d78f330096cc7206192c861d33eba2d8e24390a65c331a9691fb1a09e1958bb4528273b3a5416130f65db9d3046b6267684c6a758dd2884857d60eef7f575593adcc511e4d1e804d995d3402997e48f9eafe4eac980fe58104b425b0ea1973a9ccf5d064375c61d863f6688a18f80776e0d05d27e1eafbb9ae3dbadb62bbd3969330c17fbb24c5d6b94728eec0ea8e77036a3cd264e47e90feee9585d67edaac6ace78d6f61872a225bb0d4e6faa726ff7bd7db224a4424bded76831d6bca03d2d33a33f63fd945636eae27dcbd5804b15db9931d70840c17b4418d7f14365231b48e9c976b74df993821736ec28ac6c113924a73c2c7d40ae9734994800633a9508562f5ea62d4b83e81610cfb82861809dfbc8566c077c389a869cf92ca3a421c84477e231f545a93f9e0c75e8711eb5c24e55926b34eed6442d318729e0214802e994f64bc703861a6e785637b9e025e8fea49f0a7abac9c12d9090a104ba05ab056025b9f5b9b67231192888cea8118695128572a59ae2a4f93308a13e7c478d8e5299dc65070766aef99cdee8eacc358d7ec109a21f359d9cf80e40761af2103617922a3725af30129f538a9a1974e76a5e6760bc03949d454cf50cb8be98dd4c75bc7801835597bbee85372f3dbdc2cc27a07b8dc346d8b6f51cadf718a68c39c4acb7e512db4411145a99c7c5a43edeca8e5fef60c0ea909a08f9f54d35373b95552189ece26b885574c13cbe38db04dec56f55e08c5bcbeaaa481ad0463df631ee53c221d65a8daa95266831b7a4aa2904587a0950512ac5c4f6e6303a054eefef0f8d11d3b01907253e74641fd8bd33fbe27025f8fd6f4719c23a67a873c6c3743ae5afb05e5f6eaedd590a0bb351c5f7511f97ffb903422d9a9218389b745bf92dcca4c3508c5f8409c5c498fba2bce4017b56f36e759d11ad87b7c8a07b4caf5793ae1d15f45ba731ba75b09d2eebd990426b6feb4a3edb6e84db263ca702a68dbf5d9f11f808d2d081da0eadae79f1d8e1c0b6872ba7ec81d0c9a6004226b4c2dedca440af41b1c578860a90d41a20fd268115bea1fafae758df3c2fa4c01e47b6a0f8c0cbbcd72b9ce72f17e02c8d568187a12416fc68e6f25da3dded9ddd94b507f1d2f34c86329933121f215707a0536fe9e4a27a0ccdf81e07c45727eb7c2623762d38c45a886ccadca7b02092ba6ac476231f9a795d4bea5997744ec6e5f5d355842c3a3ff42e3bc35f489c2ba543094956cd5c9588a62eea586f522d142d71e118bfc02a81e28a7db3992491e774e97c406319148703330263acc081a0838a833b147ace9f4b522ea4304fef1af07e34d343de8db3c1aac93c95e78642d3fb7772b28c38c9810f7c7048b9df14e95e8e4390b854e1282a5da664ddb300ce08a2ab281f55cc0121e861c5c117f513c7512a3d6171eb3e802db98d37ce16174e8af5dbff6ab03fd76745b74e823f34f69b1c8efba90c690a7eb653a0a4068878cfa145094cfe6b7288e14f20a06cec54971a700fa2a2d8822524e75aef87dbbe3164cd21aa0f79aa00740775e768bfd365706a603386574e3cd1674d51b5f8c5ea1128994fcf94ab3c66dbd6666249ec539ed963d48ffd6010c63f3ea9bedef884b72f422442481c5e587c568ebb1aa30436bd480ae22bcc73520d657d289176d5b1da756dc6bcd0a33654d3ac0cd305e74ad9bb80122059d5fbf5198fbfad3ae296db3f1aee1a5d8b32b75b2c382323a2165147c9c1fc1a418407784b6e75d3ba5b049f2a81e55c41b83bea375cdadfd727ef57f1ec2455ae00ae3cb88de845fcfca611c39c099c25697cf627eace311e0269a6aeaf8f9bfac9b9d3458ee86943c218a7ad8f408c803eba32027c14062be2341aaa8d0043e64fc7664f4ce125a98da35777d188679f3f914cadf7f8919ad78706ac2575223650f67db8a9936021e6d244126616154aeabe4b1b7f02bf9255eb7aae892a0d7ffa9bc4c2f113d6a227dbc26549bef55ef95b305e5ffd8b3f38748c68c818631f77e25b45b7bbb39880b74758bf6ac92240f8df1455ec7f6b5bb26716732a70f07d9d85a6b0852674af49f33d6e13c5def10f360d3f1411760b7dd4cf2e782485a256f801ecce070f5bc44bc40f8d895a7ea937f32d663acbb6701bcee4c9840104e3082194633eb2cb3c2dd5bfd007bd8c3137728ed23b7e16eed88ddb8c7fac0e4e22a637a64cb245b779dbde97ddcbfee936a20ff115dc3fa7e4986842a43f11c664ce9997d12272eae2b7f070ae2ce0ae25ba66b67a4a4ebc226756ed0a89f96a0e3fb3a115211a97ae4bd1e30af2ef77879ef694d129b4ad2d4780f1557bdf88dcecd21d5d6d6aa557318b2330e3895bd4f4ed97a8614105714235f7f83ad5b758bf7987c24fa229850374b14f4fb5a217bc0a18b314f3a730c4d485d11c983928ff65955d417102dd941d7fd1fbab514c461a4b30de0330429914d8d40deebbb82a90569d65bce14326413b8506b3cf300f53bafd32d8a7ceece3d28b9ac9fcf14d42c258b07b693025209e78a38b253b5604d1300f3f3cd61a7f8fc0967e6f030a0e8cb29f10926d1bf9b2eb302d965292ee85e1fc2a71d38044310bc39bde00919032f6e03369378e4228b4fd913489f0c7770417c023dff8fab9271be21fbd9afaf7796b95dbabbff18719b85d97e5f4d804027da7d20d5387ffe22862ca338b6d3fc4fa73af277d1d6853a01f7f79066f60378e7f6ce11b2cd4f7196fb2796e6de6950f14a16571e6003befaa143347118180d8344837cf37d8830e76c6cc6db33b8fed24f9b2b304019e1545bed24aee2592ee11dfa41b872f2c1e6a8db819620bdbd151c45525576dcd8a5a11eb7fe0ecb6a095126e7ffbed191f27c746bfa664e209fb2578e5d729854b873f56267a5a6935749c5e08bea7810e285f57950553f8de3b45dd61d2193d30ca338f2931c4742fae58d4d6346f1ca7c2a7499c36eb89f6c21de70ee0896c553f653d0500a803b76a0f38d5351a9dbff65e8f9e5a3abde57629b912e76ce83f31bc66f11644df52203b819692cdbc79a6277c6281b673cd6ab3561bdb7d68f886c6a336b4ffa7dab6fc400791f9d02f2e386f06689882daeaa4afa826bfaae607d48ed998221068f3506fa9a2dcebaa081e3505a1ad30cb9826c70e4da0768fd82d3cff9342959a3f846c0a7b9504db1b183a025e9a9ef651d8a66526740229783c3a18d9f1ca28e673bc2bf3a45b124a3b1b1ca08310534c8a213bb063aa49859f21f7b0d05f54b4242d8c600377870e8a5e1b11c57183a23dfd516d0c3f91e86e6bb8d7c2437abb08dc7e2086d88fbf1dcf1288149d3a25f699ddc971fd87cd3f550b2cdb32ad1e8b0d7fee1d08ba458b157dd0315f129ce9e89899c2270b9c729fd7b850695b425cca44aa11d2a3af80498652c75a0a1bd740c1f430f3e0fe74f069f1c36b0a0edd0a5b9e6488902da0274b91414f970a92ac9a2e339cf6dc6df9677e0b65bb5a8989381f1573b35ef4383b4d1bc8a0eb8a32c9ca5caa5f6eda029826378c96787c7fa9fc412b57f9be056966b42bc8b89016f9b6c2e5b808b3aaee37d73b7fcb8b5c7505b47a5820f396884661de606565a47afd408e216f516ccdeddc79f11f2d88899ed8e0851737ee505db01d3375ca41bed3eb95077fb442c5f28cbab16436879c144c7a1f5e046e5861ef096e69f30e0eeedc4ed940c415e72a9aba0cd3e3423d21fb293eb2eb6a9d7fb817b71f84e2b5032b84f1526d0becc94886ecf70ed8b1ba86c34a48a0563ad7b76164b6ff53a34a75042d59756c341d621850724536fb0f5b0d704e373501e3dbe7d77ee84cbbe7e02cb6296542f4b728193347904fde8a31339e422e935275e8af2113f05a899de2a177e9df2048a7640e26ccdededde75af63913bd6db29f41f4bc55772cd704c8156a1a2c7743e7a490a94708c8af20af1704aff1bb6681472d956fbf4d3762a9a84741743accfae3a64e8ab826845a3743cc5cb02de8b6cc48a19a72012df438cec57bc64254680c92e7a18363b40f42737aa048d421f6bd88277d1909765690bc2dc42ac05d1c5c914aa4572100d0d22d8175eae5114f866836e787fadc41d8a8349c06a2d4382ba6db3af49b71c4be3c51af731643ebde80611002f053d5234f91bf0dfd39134fa4d1e06afdca05eefb63a4459e5d5feee130461411d1733d58c7e46cdef56b8043e4dc2809e105ff334efc97d86f5038f7400a756b01904fa66d5d2683750b65c3af20d01f3a6efe9e125a73fce1f0fa22b55bf8c30120de43538f2d935e1a4027094f9f347e373ef9abeef0afab7e6dbb76397ba6c52961bc3f1d1a9cf8e589b031103de290954b8d80dd7fd7784edf9f2208b807d2ef5b584fec1d1928424a81317ec1c99a051dbf95baa793632cb8c21952388017fa8a0279357515a0e8b7210a9e0d4eff2eb61b7659be8a5d3a41e1661258d81238583a8955f7620207e8d76a0edebe08ed450e0dc5a82905ae5b72034ef098e7bf20bf11fa14056cf2f0ef327c78d25c8731a9de48219db1f9604e25528a1c9ec36b31701708bb9d772defa3fdff1e3387d2de895d13bd95e479cff1dbf9e9c5ed451503c0fe76e14abcae839cc5db73794119d7d332f1eb7882e257a372abfc0f4115487e34b17094e2dc83eff9d866500c47b1d9e959baff195b46d49042182e69287cd7511b55cf3590ccaca6e03267246c267bac16d2eba13058ccfe9f619a94f6ead45d37657f529972db98fc21fd7918a475f06ed00e335188105f6de7e899a0af96b2dea69a14c9b09337b59be3e5fef17dc8a7a54ee293988169e1eafcebfa1370d7baba3f83c19d775fcd3b0ce781628136e0640287e11f5fb1ff62d7621fc239c00633c00ffef62da1d2169c784a34064427c3a7f935cacab7ee67d005ea12bec2bc30ea206bd496b29cc9f987cc217672c1aa0ec4189a7966590a74dd4c0f113d446161dea1081cbb573cf0542edd9752e36326d714774778d83ba89166fcd1fa3a1f705c2d0d26cf9f5b75a04cca7076b1c9289a935b4707cef46291ea14994133078d758f65516de36daaf671415db6780cb6ed9a09e7bbba7e0f552d6a3c0ab3701138c43fcba8eb9003fa017adf09b72c796da8e7926db56a22ab7b24ee1607322f180e70aa07904b3c7f3c36b55d2ead800701a25a3e10ca8a0cae271124c3b0da28e8697d300ecc203533a40bd2bbf30fac37d9325fc8e930bf78266121b92171e00900df3526dc12bfdbc90edc84e6876a60648928def0a4697ec3cd4e6853b860f4fae4126b8888b5fa8b3f7673efdf70d96df7cf4fe35aeeb3a36e2599d9714bdae0b0f5063b026a35b77437e64ce089d3a8476a21640928d124a90507dec9c633a8e6d728d196d9a729c699969a0422eec79ac5e99deac3336a3fe5c8e229d2c7ff1383ad867ff007757de10b19ae7a86c94d6cd44c3b1d93b20ecd82cc2ddc594c56ce7c180833f3bd06b52d5c90aa0d8bf75991929ea9c45d2586fd97aa2fa3dedca19de0f892565a47c53629d487e807862d0304ce1dff982f847f39d6a12c420d21bd4057e4b4b6336f17f6a0f40394eab5a4eee20871628753ec0a041176a6a0426d612b30e2c136449ede877fe716ac39a61d4fd60e37581cfea9e9f6517ab7d547a307059f1ab305605b4adcc010301966e46740a784abba528d5d927a316da487b1919a92899b15684cde7a9cfe96b3e8b9314e3413f5ef06f27239ffcb46cb2ebcc6104933d41ce6c17f1892cfbdbb7b58bffe1761dc6edfc9a1c5c46dfc536d50c93d3b46ba924badb40b6f5b167b24903f35d2a64c1536cd8f5c8dcc7897410e0decc19ed1d318645a3095c932234c455661a89c6b37f5ab01da72af0961a6115c56695ff063ae6e571c87abf2b6c56ddb62b5aaa88984a93826220b27c4d86b78782a4d19b330b2f5c17bf670c69817d648442aa750c1418635c1db841d5fc9caf4039094d4720fbbf527f5166cc951a5e3d71158d14b878ae8f1c827acda5d9a031a63effedf90592c80755f2d57b1c5eeb4a6e20284c12f53000e3afd1614a3f54127e1527e76ed696d0e3ce5f99f2569362ebf28999e9e82bea8315e0f50fa394dbc94b96dd39a9b0867a1ea6048cef0f8ff73b592d216ea0a95d906c3c09ddbc91936192c8cfd64b1032f6f373df0ffa33b079d0d7853bc167420d5eba61cb09c046946efa7c0439bb339c8f83657d66e569139c04040bb6e85527f02c02fed58fbee9889eef68e8513c1680fc9a870a6629cc72e92f5a63e78e1eb38a1aab0c6bcb4ae791be141dea1d0806c080c4999f2b055a43bdba394d371e243f9db35629b26d6d37e0ca90de3de2e1dc1cdd6e9d5cd03f3e08b36e4972d3971dc2b733ffac90f5b331690a8b1460c11cf669d1c1e1d2d42d8e2e4195b05371a5843b715a6604d67df1e0a810b2566e099ddf6a668ef7cff1707e2b853b53dfb622dbb11380869d5245bf649e37d39802218bbcd86ff1053bf6e924e1adab99c49f8ff6e00e6c1075b5450a785889567e979ea82b438efe6908cf54e0773259e442035cc11a9cb08cac122e3ce191b1f7994d60a7fcd8f16ab752d90e5bdf03dd17f67d2e1f5a5a9ffc59deb72d79e05fc3f948b9400c57c6b2a18356f342c7766db2323c90e0bf6457ad12edb09d0120376faa25eb546f18d1c0abdd284d9bde579190734fcbcda2d7541ccf6ede73da1a3138e58b6476458eed7df1bb63e7e32b8f6f22365242597637999e8199262415d6c788e2d3620b878e63bbbfc8433405f0d80c925301429753abbc96fa7a5fd474c63568556005feb369131c51917e45f416eaa22eef927bc77643709990bb8a203f4ec7b76dd05928c75b0e6be1930d9d56db1d6e5cfdcd6928b06468171c6c75849f5db8c8c3a210e4f3a574e831c4800d16a9424c9e17f20671dcf200573135cf82bda5119b071d857b4362f41f95af955065cd1ff24ab15038d5ebaac699f363b32ed250835b49fcd021b5a1acf1a7b11b603a70e53adae78a600c5da8e3d211be2ad64737942d816fc9c1c867095bea371fab21cc205a0f202442342054501cd6e1a2b83a4bde12959d465d295541f9211bf1f85e1641ba4dda2dd504b720e28bb4648ccf3f5d85614f523a130f7fb08540183edf9eba2febd0f17fc6d81cd359ba3504f3d2999cf2677a1441b818130370c135271c9605ca67505fde083e873c3ea05d8c8a01575bc1610c4793378fb5fe4c7bbd575fb323951a2d349caa08933ef194f991a0c9360c8f9b74257e8c3934d585f8fc06402064ee85d16ed2a254ee5a2f5236d22f814c93d50ebb6cc080cdf8e1de1b1bcce87145860b5a9bc84133e7360b6a8110545880375ae4d5faa17b75eab7a88ffa8e6ed38a04c29de315293ad22244f99a1c5caf7f59f3625cf562920930fb167a70a0342e090b711ee89e24229d7e459de559d7479c7e28293a9b5acd8a510a31a461ecddd41e087cd994064fe7f522b658a0735b55e24aa937b2a7589c49e2cd6c9fb3a03be81dcee6c301f0a82c80a42c5b7a0436bcb2c94629fcfa2a673fbea25b17e80fdab15c3514fc35a7ca8dd6d00463c83871d16e76f32df9e89482ce852c67875c69945079277284a0175f9a48ec7c4f9ba775ab88f9e0d06d9cf5f36cbaf329348f033325ce196272831a9252b69570c4caaf4ddb99d18075ae830359439de268485714ea9054eb6e20ba4d2bd9ef9ab888c6736a21ef9f33e001578518b2ae7717be2bb027723082235c2c742189180c553b1b8059464db7a907a3af211d06d57e09029802c329ab6723e7092eb1e2f7e8dedb4ff6bb423465577ff655e4d290898a79c4c47a2b57e9a767e0f3ef0253bcf540b228979484d5d663dc43f769f944fe44a6c36203624df7cb4b383cbab7906c726f0ddce75d9c171c338d4d5f7e408a9f418a5c2ad85725ba781982e808e81c200d3b762984c36ff37167554f9512c9576f57b4b31b736c653886796ee18921e1df3a3310bb35a21b3f1cb2f7cbd4e67f6a9d43e4b72fdee6aec1cc8334003b7934078df356441710c3894a3984a3cd541483639b02bba3cbe4e28e3b8b1c44b6c19344c11422a5f7b2a1a7dd0f1f622e3864aff7a570cefab65602b1d870b6d73742cc1b5069e846dde7a23903eecf8ac14e97e14f46b854225caf96d3d23eb2ae6d82ebc5942c256af764079f39e6864683c265105cf4ad7287ca2121df6101e8e0bbecd083e455effdb311232c845581fa41096374cf076f3feb8b62743099d75c9e0475fbb2a8ed3c928ab47b158853de92817a746028373f12a563360c6aa716cb669d2403324c882c2744d81e3ab60e717a29e628f4281800303e0c7c887936d9d5a80931ceebcc185b897eda718a9c7953ae78452bceaddb02439f10ab7e5aa088be1b42b17b86e44cb9a9e447954e9dffba7d2e6c85b52826dfe158d09310537e6daf2d054e46f35d191bf8a7132063704d6b089e533d0e6c8083e6fe7d5f694bc77bb5d80932ad5fee99babc39c0fa36505b84240d23ed39b27d6251073f5ba97e1dcee0bd85fdcf926c9958a2111f45868c507fd09c467e488ab1c0b41c2b53919497ce050c21b7afe1b5ed2aa9c8f7f7e118379eaff20c74a9285e8857c0f8abc5e53baaa7c400adc9e1e6f852b0d5f25e173ab4b7a6db089dd1ef47c51153c6f7587061ce736a6ffaab736d8ca1abb0ae340a35e4cbd8136ebf200c2e20a36c5706811d09576163cc7c199d0a9df0e5a0b85e8dbba5561be672b770cfc025cb75b08ca2774269a59cc29b7831cb9bcaa58a1bfd92c8440a154f849ad93746d7c58f16f64814e7d14c2e0d359c3ed6ab5402c0a215e0b1d3ce1dfa6befa299e120abc196436368a7c1ff1ba99a8632b8e747af6ac4c54f5128a4a2adac33ed7240c0ee51417dc22f6462eb45ae115483bb44f44d72e7f3bcfd46e1a31b3af19547bcfefab0b5a295a2d90b0a0e6030b1d423635ec7fd4d6a6ebfb5873dff4a9639c43b3e11046a256cbd644d2606545456623a38bf124f135ddf709c876f17cd7dcdaa4779f26d39b8c6208d127fd5cd0d70a5932ad8fa1ef1658d286195284a60c647fc14dcf8fafeabef6e27cfdf68e6dfc2da2a4e9dc716e41e6ca8e38708914e6e129e7ba3f2bbcd2e0b6af6fe7e742810dbb7b99eeafab088cb2c5007e4a6ff706ce8c9e15bf1f2ca2d173398ad6cf45ce31eeb6f9991ee6ec9333eebb49645a1b6592cdd10a515eda51c1438882903a8e17ed44838139e1317f438f7cd3ec749706af3f5ac603fc4ec9b5ba03e2999875e4a70b31479c491f61d7e6798dc5e5d3529298635af75fe636cb1bfe08d80ff85caf71ce3039fa8664e58a13097a2dc54b7afbf31a3b6c22c9825fd459d99e6c79969e77fb4e708149c49a4b5f5fc337ecaafbf9b52053e20df82812042fb3dfc2860b5a5d42956d80f068674625514962c57317e548615c3337168708ba31b623a38ea076d264ea3243e8338b04888913ae7196346ac4f253b68035e29b80a4266879865cf48c8064b396fcf92f1478c6513a8f14a748680d171987df256037799e258b60d2b7f4269408c411f418d2db4af203a85b2740e84bc46a261f65ba391f4c2877e2ad69858d8165355e7ead441af4238a06e300217fefab01456566163e482ff3c0c0dea63cc0da594cbe7f6b772bc054850a4c600a69d574dff2951f50b45bba8b1930fcb0801321f156187db668c0faf1b1aa5eadfe4277255ae8084fef1f4e4dc6f354445f1f29fc3f44d00f36662083ee8be336674588e36064b20dff4e65705e77b787f8a2f9fd7f68691b77bcb0e6a94d56f24355acd2bef782b0786692d3cde7f8345435c110bb3418b1c341c7e44fdb4e3a90e83032a961cdefc3327d520a20475d02a70c719fd82ff2fc55898205d330a6c6c4a26e2135ec4b9249481e508ded3ee6f4bfb99515195d4aefaa2cc37a314d938f7d0a1f22f3d41c908a963206617bfea1ec7640976044082b9656e8543623a382abec35fadfd86fdfd8840da3d2b3a33c4ae8e61ed9bc9897dae6facb20b67ed6253b0eab58aa5ce6d9e2168d4f28d0e9d12f059b5bc082c39ce7a1ca95b467278166ef334c16461c92cf13935c0473de0bb3dace95b4324671b879c484f22ee022fc22a655110b3c9bb32d0e8dc4ef43056b15de1832cead46df59d1d19ca93ddeee0c54a3e9e2e9e9567d44805af8afdf341ad50d1f2e231a2bc2688a284513c45ae4791602550a14a832984ea322669876c6048f79e35951aa624a203d39c4b498e01f4e1a3d0c82d70e6b3b1ce7073688cb0493ac25ccd3b9a3be10b0304f4b4c5ad5ac315147cd5a36cce71daa0a8d4c35a8cf574cfd5eefc60a2bd916f26666ac5dd58dbd3589dc30cfab71c5ee36a74940214a55b40201ad685ce5d3d09e0e373f8c86f3fb32359ebbc05a54d91ae47e69c9ab40bb942a253022baa9f79c7fb49488e6f0d4ccc9617cc4e764e7a8ac72fce1b68b10cca3678de71f0e997677e125dfbee36cc3f2c06c87c01b141c886555642257043b006cc4f7383b5802d6b6a45b2205713e62ae208eb6ff3b799d95be84d81e071f27aeb56b80108e82cb5feb62a4ce94a70fa65b9ebbdcc9a111ef0568c1fa7dc10f3aa90fb97e506999391eb3014dffd525d2ee341a59090a894a290e5df98eb9091451ca913f92e4f62298e620d49294185b9bba6573603bac852db535dc6327b18e96666c53b634c120b5eb4a40b58b937847547098cfe0889906c62bc0889ded530a58833c787322a627fef55da607902f714434b615c3570f3b2b5c9e9bc4aa061839a9c3a16c756b8cb2d32f34a0580154d3136b2584afdaa62816801fa55e3781ddb495ec7758b9ed65fb6543323ac213497641d1f333cc99d0f51225a17bc60a0bdb1ee4dcbb229c5c7f167c95e48a5b474bd2e0240fe095f3e1ff06eae25db0d666ab911faee24897efc581f875093fbb70e49d4a5a218a4feb0b8c9ba35f67c32ec75d5586a1b8befbd97172e7f73c8c5773849fa6e96b2d6d4aaa8e1681bd92f240455e1b79b505a033bae2de2c970f7a3b75ebb7763395e48c4f94cff0b929fd6fa34b1c3563652e63fba1e7f2c9c19d57189c918ecfdc60611d529695ce77ad1af0f8b53fce74083df87e007b93aedbd4bcbe7fd7c3b4ee7156927c3407ae9ee23075517f7d9ddff74da169fdcfba62cfde63ebbdfd8cc8b8015fd62bc98cce77c069a496aabbce1ad79a7ac9f976d85459cd9f5c11e299f7619e373864535f6f6c806e01201beb4fe6a3fc2e790e00c45372a1ca9a7e4631ecc16a33558eb4778cfee4bee1b9b01965dcd8f61b38e02c5c483ae74d88d923acf59dc8431e84030a9c6cac8286094479c03e804747c8b78ec9e17b14e4b88f30c6f16c367db8dec56a8461508eb122a0edad46487a36c80c916153d5857c5279ba22fc07fa7060e1cd4c6b01771e3e06b0bbc3d756f95bb18ebaf03b67fbbddcf3fdac83ee26047c32a70735af962ccd49693f3ac417aaebb02c5cca1a4ecb0eb1899836257b28f38b115b133df6b9a5c3f26f2a2ee3e0bdea31d664d3c5954c000ccc09385c3f25c14590bcf522cf1fe0c6821cb3fb12403f917a7d7d03e84a252cc8f391d322924205b3737d54c2ea4c8dadfd86f13d6df96df10027f2601c86b192b6a8763225f48fc9810c266748784023589b0b6a92cec350dc87a436eeb2b958d975e47ea1121add5e6c2ca805b10ea2d60a665488bd4ca0d5786212db179d0c2bdf0e994d6e6cec0fe5697030186b7952eea9e7b310b250ecd7da390d1bc6744c9bfd6199af5a343a8521f747ec0507ce9889f4c4bb01a3a91cd51017e626ff6a3024b49f34fd0221e5ca09b2edd0f3d59813d0aedc8d9ba10f7f8eccf5cf094d72438456f1c6ac31b714950c8c087f7694a923ffdba80ec2711989b51a074a4fc44162872259a517361911af79158ac734b75e5b5d4467e86459f43daa6a3373db486c3b558ccea184eddbeb93a1470a462c6583bc4343feb507ef707ecee1b0b7bc6a0034870ad493177e5a0ea3266d35d88df4e1f6d992a0483469b724e3fc9d3f0ac82ab49d0af55d45a559617766783cbc651dd04fe90c607abd93f0d6190ab113bd4da5023a7da2ba2827324eca80c6863a5db6bc35810f21fe5daa55f672508464754239c0f335dd45f7edf78c9a4887ff358653899f08077a8d1aeb53f19391c9c3b04d06da8260596f426402aec04ff117890ed4a876b4d9136d7f7c69111df2dd56c7d73d5aba830da75eaebf98bc403c48077bb8c4faed11cf365a64b5980da0c2d876c294cb3997638eaa0d39e2110a8662b11c76fce4c1f18e1193a5527adef1b037768c96d60d330670ef85a5b09f447984d96c269a3d9c9d8df05ba27222f583edf2abe37af42eb8144d6140ea25cc8be936b50a70d6e360164876ef4d6a318d9725a64b2e1d442e1fa54c27920f88149554be299d10183e4ae4d1eb89bc40c5c20b7ab0da2e0f5bb0a4a3501d6c4ed47705000b82e3c28a1141b9c7d27314de9c256a07151834ad0130426668021dc2d352940e587cd5e67d5681412232ddcea8b1e21be441bc3fbd5c30d8c21527d19c395e3e66ee39b87e2dd0f0bda1cb6e0164ae61a8ccce2648d3cd1cbe900faa126ebc65df5b51d24c3d9459aa40a72b0d5ebd71191fb0169ab173b2288b79bb02d969f9f50fb87d723f03e19082372182e64b42dd4d532c09a7146c392678526f1918a096f7390e2f467c7769f3ca42853ec065778c93589d95a39dcc1e3fb50abefeaa5965dbbb21aba31f01749d2e29f0f6e69170a7e2f98588f8e65653e6e9055983f860028d49c1769c0f1e58264fa2e32bb900e465d38e3b36dd708efc4047e5d3cdb236da0efe0d3ae3fcd693c91fa2b911f11b46b7be68c09a74d0b10bab6c6d8af94853c6d2d06a8536568cd16fdfab80c930e03ec44d54fe8977441f460409f7ea5ccb7524844ca21311ee178118cc3bbd600dd125147ce59af08dd7371853459a90a5e9e2fd58f265d09ccf4e6ef99a961efda5255971f10404a6e4af25dd3697c918efc152501c83637c5528181662f7f5ce2dc0d3e0df35c99da2b81ad1188f968aa88e1b7187daf845305b75c0c82c15c31082a1330a0f5fb91a5d0d1c862818beb87adebc281dd6ef2e3b624a773781b1d80cfb719366576e00225513b627a32376c488b23817b73503a7d1acdf13c6f6c2417d15022e7f3e18bd9d8d1eece323d5db5300b6b6701c9ef5f838d18687ec02d8c12aa4b1bbfda3ad98b093a6869763eaa77c69c23f9fb9c855f65f79b73bd23b118c8d9868af6f928a16d00bb37d4a81200b1a055bda47f6870a4d23842e5767a13cc690f09b0f95b52b6fc3a1033978b40360b47d3125f5a8ffcc0e77a561ccf4081b7841663b61b1a67ede112e294e9282a676713e69dfe5335021230e15d0d378da11370cbd1a742861fabb9d115b194a3b6c869f0e7cc0a3e5169ea232d84ff6ef6d1fc71fb4fc4476a19953b409f8dc2c8a0265f258ffb17c15eada2acfa0057a737a64ac1fa73c568b218d5d7205e0c88c8de8d9ee6ff5269aa0b0a4e26ba21d59fc00448a1811e887d77df2ad97347703fdc2486c6691644c64b10d9364cffaacb03d098d24698318890a6d91e12018ea81e6571f639f024739ca6ea4ad591215f1398682e659af165eb40117bd426c5c7ebc3a091a6e49c32596c00f69a8c946297f8faea34a0fda8c4a25a2f015e9f07f0375d88f177f5cd5e96f0c4041e8cc1e46b09528379e46a2a566facab028ef7eed9181e8fac29cc6fbcc2b066ae3acc35766542a17485c9286a9d19a7f85ec803bb736a9c2fe901a93e3aaa9bbdf6b772cf62abc14ba465066b24d048b89ed17112c0d8a52d3ffd0535071770e9671a8acdf414a8ef90e590759de0fa40c50c052523a8bd896b98f51a7f51dc6635725991d016a789637079b7f08c9edb56960288fa6ee270da6dfea8f2220f78c39e25b8d3dfee4e3e35c1ee92c9bed69432a9a1bf90b583eb5b738e324d48a9f462a39365b02bffdfe335bac5c492a6f5c741893dcb8110670538fd980583def2e78f2a875f74289331fecc5d5ad0125fddbfa88faf911715539539fa74f07bbb39d983ccd6888a2f573657229f4e5c0825f2c1091ed613e7ef1da03236423389c856fe8792603374939c3531587884fdee4239dcd1dcc18ac9a2d3a4dbc43f3de811b70625092f7aa64dbaf3808e2078b008c801d3165f09943705df684a1b99511e40dbb4d4e46054912018c7ba62a58566f8c5046f1b4c464788cad6e4f5709f022ada79d87b9ee8b6fdb30ef242fcabbc0cfe9730b7fb9cb8243d92707afed3b0219a42bbe08fad01412ceca6f1f903a934e0943d87369322d97ffceea922d00ea5fff0d346fd76a594bf2c4cfef59597313f57955905f010ff62e8b0d7b4df0e909af9973e4917d331984da7dbc20ae3ccd20f2bf44cba5803c4205110f42b580462e759bbe9e9d4791a01f3abfa3085c11f400c2837ba7c24fddf7e75cf467f6da9d757a29b4a3be6bdaed17e2b7a57fb8341d7b2b30222e99357985801a2cea3fffb19bd7a1b19221ef00f6b917ee34de6bf8168be6394409f2c151ee8199f6f07182129c940505e1a15372eb075c3048b386f5f8df55a7fcaf8c0339f6640ef3e09e59eba24ee32c99fef3be9be92ef9881d718a793dca98ec5c5a319aa71a1193a232a0932989fbfc633671e5b6ecbec417ddf255c14bf3796860ee7e86916c72d7d2d725d08fda9f3518f8c72052cf373b4d61a3456f58fde4915db8870897ef966cb7b9999f17d46bffa4ccd394663e8b8731840231b9706b47f06d805e52dc6650e0c5fe4ba9c12ba49575b503edfc3545b696e0e8e80ec11a650869bf3f8529e6a6c2d6b5e155bbc2a71adb1dbb0fbd6dd5debb0794e5f73ea8627ddbe0b6fb3724d045793d65fbe3a34793ac413dc598b67aaae50c5a4954ae7b4885fe182f4d93fe84377080a49bb351b1ca1c086599a6fe4cab11ef49d540208d7bf4606dc1de1641d60f6805808670f4dcfb66d9a1af2920c2bd7fba308506374120f07de70ab030b5de9970ef8f878897d94d75f2eedf5f28c2e5b0c71faea0800a6a886c0f1d86c38145a358e679de3592761f2c3a00fbabf7627b3fb2f2451cd699de8f011f7e70c3a8791add666e430427b76897027af4c1968e6ddc67ec6fbfdb15ba750f982bf081205b193e33b204ee71215f749950d509c300d1ac8d72695428b3e237cd2f038a0811663c5013f803e677b7ec419b4e931f396cfb7b11f87c0d4bde5a13537650dcba53ce385dd166b52ce9faa581b170fd160a76197896632f6ed1b8d22b432e609bd3bb7b0be832d093ec05371952a0be99b88c3ca782fb00ce565e88256d5f02dadd4def3ecf2997cd67fda2aa76675e074c33e05d616eae2a34161205c329f2050d39cca0c30971013f39ea8e3758bbdcae3168088f89f8f9e8c2721e4e3a0c7424256ca4e8660a2c2adc32edae90392f680f28ca86027644a797194a4284fd76c1d154363d906dff53aaff6472b85f5ed2d5fbe3cb2ea2a0b56f80e155b4175c09d0a7011e0ece9f19a8d13009a2f504a0c4da043fce7b519147857a0e3bcaa5bff0438541b4a5361c5cd663b3710f5fe8b90000ca42ebd3df63323afb93aa775defb7d1edfaa5e3dfba2a44219ad0cc89060c71d2a660d75306de29d6fead2c1aa890129846e9929e98368a4137e4f9c8dd95f35f54806e28af19cef752fb1323c6ccf6ba448c13b38aa5969737290ab257cb0133d21699b4b8ade4fba1f93464706422516bffa6930985ff86a6717b489ada324e5547737c48bb33507051a484add919033b157197d8fe69ccdb3cbb81733403e55d6602ce148b53991df892c901bf6addfcbad86f91634e1069e2e62baba51fa24b10260029b2671efe0ebf9100e55bea213bd03a879cb2ecee525942454a16cbc81f5803560206054ef00df4aa984542b5fa6429c47e266f33996024df4bd37e3faeb02a4f8cd543d270467aa021b1e7bdbb129aed2e464c5becdce7cf25442956061d8a7cab93df6553d73bbd2cec5088765e93fb20a9dff8cbe77db8a1a8f5a0d984383be294d407d63e427f867912ab7eb4e3f42fb48e03209a7a15c42f9cdeee75829c08bfb2156cf1d7cf63f9d2f91c98ccf2282d4042ed7a403ed87d7f4065d0cde43f23a67c97dccc47352d7a792e5f3b5b3537cee76857c7325c7c787eba5e4b5bba0eda075e29b5cb7dd1b7d0ade56b99ee1509df21e1c12d02425534452ad2622a8f1822e8ac2ab329315aa9baf11a14e3f0f84ffa6f8051dc7ea635161c2eb749353587a8d902ef557c38dbeabef6571168233ed3301f5221e05cc6320cf7932247ae513d369d33795c5143ebf69747bab5c8082d9ea0e55bc53675f591a1fe31e5d786822d6a3d118d533ba08f79422f2c19276631fec14bfdd303fd1b9b68f2719171b0691b7c385057927bf692ce3b1e942f5dfd8041fc7fa659116478642ae72b5847ec3a3ad54b5cb4c68920b7cba956220fa33ab188172ebf69fef768feb191a2c84d1f356644dcd455fa3f2702849178c2443420abed426a43afa5b0aedc1a4535a65bc291a32af01ab0e4286b97335c1936ce3df1b8cc4e5c81b62cdb15c766cb1a204b31288bcc424d80f4a3103a1bc089dc2e93d6db196503514f4560e959b99ab942762ae48a6ee95fd8bcd0c146d6b19695a95c4e4a959559b2154a9853e45e1b3da64902d113a99b8dbca80503a35f94dcbb92476a39c1601f8c7c57c619b8a84c61f3187465ef90212f919ae7aab936ab95177e01e01b644a4d4c5b9489acaf50b3112e4d93e7b81cc5ffb29fbe96928038b124248ec7904510c59d6e98910b86a5058b431028f4fe6f2ad997dbd576d6e23d5df63df4456afed50d56ffe6b3bc85fcf5b0918de8705577067354e159a21018b2f43666d2b7670d883b9aa6e82b10b30edf28f23850fb60a4a4b9a5306295b1c34d3553545dca16050d802867fd3fb483fcfbf489cafa398be5cc0fde4f6714904905a7a502051d41294aef6c57e93edbe573a0076d511fba6f8196982dcd7f4ea0cd7793803cce461e8cbe3922b42cc1a961559fb3455e45325267e7d93493eae6c12c2214aab81f982010c96f2638ea86c8104fec339b06dda4324f4b816f030ebb6aac73eafcd664461266d12b2e32c0cae47623d277aa3853c7a9a4a1a01d055a0ee272bac22a6c61a09786d435b827f02d495a15523c4869ea55b2d432d948cfa4081e486f69fd1fd0387091d2c751fa3ff8bb2113be9b1e74272aaace68d07b0f7aa3d41b379e5cc18e890524f0c1c48184d7711fba7d07fc0dded4621784e2825b59016d47fb45ffb82d1b68d62fa63ca63bcd8c9d01f832eb9860fbb0c7f56bb9139a8d906a59503073d1c6324119ad618902df521ce5c4d3fe9d9824bcc1792401a3ae70052187ba96a25d9c10c858f7ac59c96768331e536eea71f53fbe16a9918ff1a2e0aeef09594a5bb656bcdd9a2740ed466d519b01951925a51e5c14b589b75f3bd50dc7cfd1791c8cd0190a88b766aee02d22c618733418d7ef7a9cb8112d453f0599a1ca5f67dbd3176143007eb4cd04e7a5a927d97f4360eb4102a8e6d85f9c492d394ee57b46481c5d3481eb7ca0e684116a35ce61cfa7c30df4b0ba1b5741019fa7f9a05cf0364bfcebc2c00468ecc91d1d1f86c8384aa97aff78e28eef55d3fe974ededebcd8d87347990b2523d0c46461ad6d80224bca45bebe37ec282dd0c586f75a16c3b321559dea5fbaa974c3091a234c0cf09db2adba455a58c633ebb1be467d8466994b3fba718cf33e368941cc1c21b517e7f8f72f8dfa239dcbd393a2b74ece4e1f882dd274665115926ac5ae5a0c58887204c31ced0fe2582e2aacc29f15a967186f6a7cc8ab7cbace72250ede2fe0bc4cd6ec0a01b450ac154e5b165804690e8f556232fda0683a38799eeb1e1eb8b7c6f188197378af76005f310ed9bf47dec4a3dbd1fee5534ad86243fd47e14ee2d27fffa55e2e1631f5b93abbb0750a13b321c5f6eaee90db283cd5c15f4e4f40d91ec9ada8ae446ad70b90088ca6783030cb5946630cfd3850c103fc3e62d784c753ec106792f46a4840b3f2225ec342d1ba1023ad25654b32e5d54043fa12d13ce6520aaffe4f1449d6307cffab41ec1cccc2cd38390ec91d599ec0bb25a0186e5686b2b282811100a50ff47403a62c48cf48cca43d61cd7ee9d73810552fe45b560542850a4fe8cdd94334c521cca31282df97734412d1683b67ba4d1ecc6389ffbdaa6220515cfb1a74aea879b4af04d5f5a5a7232e2df6b2398f7ee6a9d960dfaeab12f7c2b8c0a3387eeef1f12e95ac6b24f02ca4074159b077ccb74fc8086b34a7b263e22d66f969a1eecb1299f3f727457c3736338c6c42ec89a97bfa3458fd95c5f057fc9ec63472d4880a5eaf7c527d94c555e623abde282b3c3dba27c8d1e53f48d19c3f5e1d38f7d5d65b9bff861a907e1338dfe95830d74cda756f1be26cb1f18d8eed98a4c9f103e65f7e9950b479d4ad926d8d1e666b7ebb418cfc7b3ddfaeb7b41cc8d96af56be9d0001fef60a0e074beab6ea11913a3a37a32662ba51fdcf7d2f404d5206809b743ea2e5c6435c53b1d71ecdc403523cfe44c6dd3000d390fab2cee08ddb7337bdd258d22478bfad945cb659d4f5f552fd6bca992d733381af72189147cee719497295a14749c058229ea8e454877b4664c8848c55da69f7061c225fc0761f6908d1c301caaf72dc8017d8b7941648c4478a1ebf9aae24c93442787c9e00ec77ba4168f6d08c418334fe718de6496bdcd97ba8d14a9ff5d7625400cedff6d6342e6b225782c963dd931e4f183c98538232fa21736da2a380ed7cbc719cabdeb712356c50cb7e203d4c22b37c905ac00ea80e5eea7242122ab07bf03299e5cdb9574eeee276df7c39f67267d222b0abbdb72a949132830abd61cd0516aabd03191eef4d5e94decb2dba2ae3a780bf252e7e48d85439f8a22801b245d1e4d5735a38b869ee2dccdcb904c52d7a601e02e5bf71ac3568e65ddb51e4ff50a354c2203bd2150c4f62333f4b816e414c6ac7cb81ef5bcae28a554c6814fd30564da2b71dae89095bfcc866e0a9a6e41b5c88ac31a4d6bd4de1f77246772c442781088c6a09dc87b3f2539ad830e9c13fe02cb75e52514b5d83e44d88fd53126ca157b1ff171cffae54f789fe547e27dbfd380202d205c6b37b785c20032b57e87d665d5ff5d03ddf7a8aa7d740c6dbae964e0457760c1310267525248aaf7fe0c8236a90bfeadfa72b5dabb8d55996d3497e1944266e2dcc76f8b0a852b62dfc5aa6d68efd7ad9244c7a10ea14dd844403fb0253e93ca0ab43ae0caf61aeb9f820ac424c33dcf36057f095dcd832c63902eb6239ebb60efa67bbc920c950ad2b1de57640c54a49dc1594bd6dd045f15260e042f13736aef9dd647ddcc27d48d526ebdb898d53ca624f07503cee668d9163fa8d61b2f5c8a127de40d270d8fb425172ff9dc4e6bb32718ad80cbe55982325d0959607823aada0fb2f30d4caeec12411158a1f5031736245253e526300fe560c8c8aa003f6f893beec9ecd7b7c6113fb72c345cf9afa0041ca4dbbc42c4732110c7ed46c81322ed21c8e38e9b285d32a1188000e356500409d6c3b167491d81290e0ddfd76d6a719e89073c8d4498ac510cfc53b957b25033b23a844a4e5b1d5f8c8537e017f40617dcae707d9b2eff231c9802822e9174a8106ac8e7e9d91a509fe29026582e51c8c6a61cceab1d6015af1b9529742440f147cda13340eac29eb8e790e77e19de0ca394b8de7f6c27315ad807f855c8812da8ec773f202a770a9fb9378208615e871361f83e2927675117db81ccff1a3c37fd3955352074fefb4ed2268ded1e193be409ef3a16aa15d9fbdab602c9aa702f15cac3ce581bb336180567b437c593c71d7a00720791c0635f705d4a910dcf9e5c0862bb19eebbd6619642a75c1191b50e492be0de25a37efbe97b524cadb89502cd151ae0926c661d1d72dade09255a398ec434bd4fae809278671d2dbd85dee8742034879a5b8516c7ad9b8ea3564b9593a636f3ca0cd66bfc737b93149c3beace680e0085cd51be2cd1379e01d2b62bd85174647837b0c261198371573cd83a8ca5a4b63d7b1067762d065214e1a7496313b4db45c86a62793eb7903942245123d6c51bd8f523f6486b9052ae09447119b2d37f8990a01702c3f05d49b0dce6e140b2fa02b305610120477a2baaf38e011dc6b2f037d8fcaf062312fb6142ea5adde168482c4bfd7523eeebcab112978f9fb84e03c0de7f227bea9541c62388394f7aa3a682a536556492ee40060ff5c256ccf8ecf8c43f52589ed31e9c10252082d83298bf2cc9a189210baf52b237ec2a3d01c9f97001f9f18d0c8e9d4697ace79af54ef8e4c09560e046694c602a35fcdbdfefbad217f59f8fae5a35d8b39050e2e39d09dd7f904778a33e1b98de7e6ac013db80bcdf65dad67270d3a4a65e80f7577f3ebd405b7b8b8806be7ba489ab7bb46ea4acdd90a1ae752acb1d040ba91ec4db63d903f6598b7fc9d75014165d53c94474c0f1faaa89cfc1e3d0661421770e35fcdbbea6819463668c6df74151b8d19417225216d937e7d3dd11ba19421d16182f4e8c4a247367a1bab566f4c6de7884bf7c7eeefdada3957050327129c55e074a511de12a7ec0195ea6b6e3c643865fd0a4c2ba6becf374121f577d6b1331e3031120163b0e2710ff8a73f82f8a5e4ec6c357fd3d4d005313dec9c0287190d185529ac257025a8356a972cae7902a3776fa398f13125f19d222857988da72b7cb37d99cb94d8da505b4df74d0f5c24dea7dcbba569698ca28aaa64d7b1f2afd8a894d791f5b006ac5cdce6898d70275d14cae3a7950d8698abbbd44e66028222e7da71eae277ad8610dfe3a6b631c82e2c7b723df9d4cee8c4656c14ac5406a85f21a9215f8ae430cff3a4ff1a45729d20a271294a55104a7df81ad48f58b850cb1cbc41b45bb32af538eb46a989a39291156334227d73e774877ea938f4944590e23f77baefc16099d4ce24a9897e4b1b4da1ad9e0ab729626978f591ff544cdb710878886057e073701b814a092d1d6ee94f88bd10961c6db8d1a1cdc7775f8229a1ae355ca89caeb9bc0c2c7f1273142bdcf599787eaa42d5ef84788c1d4dad4d552ccca4751f33e03adc3b95ce70a6790da0447c972886e298d79e02b2665086c8a3868efa3ec91b47251dac0fe2eddda5e4952d18eddc46c8ee8ad3668b3c5f1feefc842b3304215871ce543562688692b402edede9cc2d93abfc1b7e17e7cab7dcef8344a48cb256d7a3d5c2e5a845acf82ef5b2850c061d5354ea648213997159fb9da78ccf0d5a0ec9aaa10f5511089eb2d0f42caf039cc00fc69db53706871794770b087b78746b670134fcdd83d7ab48deca55cf9c6d2325267b66cb2bf5565cccf9697bbc8f1c3c3c376c9f5bd9046ad2bceff30c3bbb3af8a9fcb18b747c09e89d355ca65932e3727679c3f959b62735f97974d22d44771b8ccf95880180ca2de3d00988404b5cee4c3f24e4c3f6f2e1db398c323405abe662c45aeaf4735d91e30cf2b57ff155aff8206847c035e386c44ba2b255b2dda04997c55eaca6c81ea6dd6a083cfe9ce7bc97c06fe7dff4283d88899d1795e105005914f4c220fa712ddb175eb093a57dd4b2064e01b8ad9f70772083f1ac68c784eb8ba1d981663cd665c0176a80838b34b36bfbd5e78d15f1ccc6b7d1b93c0b8087edbbef7d1ec50588a999951dd0e01e6d97308e2ab78cce2593d0b162a7e87d945e804b7db86428ef0fcd5afaeb7e8459d9cba3b23d56fd0211283beacbecf85d8c8ff220da090096cfa049e6c21d3881044d62ada89b0c3a94607b23b096346fbc6cb2ad23b342fa9f84d62cb9a7f0aba95ef78542d62c56dcdaa898f6dde79f0901b99fbdfa88f78cece613b1ba1b7da647134afb5886a3d73ef715d8a7b71b4518bde8ce868ca17dd36def272980686b7619d2c9c4dfded2f67b0abf5381eed1e2b69ab095b6b7ab36185c427bb0a8edfee08eaa9194c347b12271033075df58732801ca79fe8be79509733f6a4da1f514051f958cdbf1c9e3b133aa0301a56143f66a9e1818776576a808336618575d93c50d04535de74644df39b7858abbb5aecf26bc6bf2339be27a481710d6e7dd79775df4da1a04eb4d749695e3f968f0752774eaff85bc64e612403ebf002c3e6885bf94eaa3d582be8284553c14b7c63bbc6a2a77f38141140b2becfe4aec0f26009c369d9d221d1ba9260427a66e6109b11add07f219fcff12926b0cf254ac1dbf4a75e49870072a673a2d2a7e5d9acb3567a7fb8dbb77c20b8f3c5ae090cbdb1020f20139fefb768231ab4437710dd1bf5d7a2e3725b07a34c81811a0b6e693fb2e760daa6b7dcf7a634664d370b54fd20b7d931fc631c766f4658a1d718e9b0de3c473678be9c80e4948ef255f3bdd561573b0e944715063fa58d3390e04ecbdd3ec735215c238d0f3133e0ed036f7858da11ea7bd723c2efd7b312dddada55c736ea0183607bac833091d82ba5c7e5fd4210a275122b97be78198b9067388937b2262ea34452c2e1d744e68910135b37a08b794df98782c4852352d49a67c7639647581a9233427e00e0443ad6245b96ec4fa6508492fda9100e53442ea09241ba66877fcd9b69f24a868aa50e2b93af3a0bd99c9b916740ff2bb7e3065dff5204120ec2bea5f2d5cd41897d1c0034a23637c4658056beb1fce7e2c57ad4f411402527c0ee81e04bc2ca37cb1e4758b0492cb780ccceeef8af428166d12d0a7a5b10c888ee0a5fad0820e34aef2c90d6a16cd617aac65bc001e68dcc14b7cf7d4962cc99729ec9edf9b52b6154e9ab22986bed5129b19f3167b21cb021e909b44bde739b100af5a827bdba6e698e826669c6b1ae5a4578a541ee98bc93ef09c5a9b444b7d63eba737010aae87f2986bef16b5055cc2f1c81ebe8ba85e97a032518e9f6b9afa6555d2a0b5a31f83f2edfb6e126c1060ba5299e385dd590b4ce2988427dd9dc423dbfd49a289d8d82130bca90cdf0a2d0e45cb6b8b3c0a13c1302e195fdc226cf0be48270f56973bb7018bcbc0bb0e8f47639bd8021fd0cc71e2c454a01628d9dc0867b92d8ef2622648bc4e5f89c8d64953754f86e8d2a3f4cbea439670359bbac79ef7a0b071e947574c5db0a7f9eef7e9a94b6499bc4d81328493bf1c043fa1a5908a01705f6fd7d9f1728c4dfbcabb87dcfa203165ac79bc436ff001a37f6c8cceea5cbdb89ef549547b61d7324a02850ff2f1e09713ddf1ffefcf7151883a5af228b2a20229a6f96876b065519fbeae216a400e5c8ed34c0882592f8a29eea5266978ed106752ab382b90cb788be2d2ce7a2d256c0225dadbcd5ec5f8f8af9353a817a9077a44ba8f7728cd9fe6ea5c85db0a3bc47bc169e3d7002d53d16ab961356a6921ac2dd35a5938aecfff5002a389dd80727d3a4f113e38c4510c4b13456543650457a13cb2e491101559187fea53e28513f045b288b451943f1e4808c26ce560b0c498afd5f798223e24456244b3074aa4293d6fae246be8dcef967e1ef78b684f57efbf9aa4c71dc0ae61ea1c896f209495a087451cf9338e7031003105e05a73c3e5d40ff52c155e9cf9f1f053f06140b79022798c4349116059ef7fdc86438a4f9eb155e7e9136b691fecdb2a95ef439c531df632e5df323c0fcb62528f8593daa38df13ab28bc12ee7f038591c854457d42b76694e6b3e949d83578b07d65fe360bd19f05213ca0aead9a8c378db27c71f895e82424122c10bdffd5a6806e6e8a5eabe2726752be4c66e0f58509bdac1e837544b59108226aaed6acd239f764326dd5369a00dfe739ba159aa7f1f13b505d3e7c87ea631ae8d8ec6061e4ad805fbd29531c5799ca68fdb1e889207baf2f0edbac07007d2240b046592310d978c2069d713b0956b6b4c596fbd4d9ae2294605c13144d38a7b3f98ce6ea8541021f61390a50dcb33fd7d97617d26f87c004aff7d6ce1fc19b8885167a0c4cd057dc12732e29eafe58554cf30e1c81d2c5d633c641782d0b38909b7a8d83a11c10a277189b3baf3e3c10783feb892b6e9b39937b40d384a6d0e2aa51fccb21d1275b75d24d1c9a02cf04e1a897916bf61931cb77fb166bc2a521532a02549a2b27960b48937c9a7fbede78e696a9af72fc4bd8cb2fb43c64c753aa261a10f19d8f7f6dd3c0eccbfc0d51329aa589a26698673e6424f5b9a9536cb6cf4be8ab1fee3b0bdd2f1789482da164cc8f9442b1addd82eebd60e9500d1415044a5320b3721ac19993d85440962ba5273dbfadfa662aa7d0fff102386bbd5761848f3bf803f6a93921e43306a91cc7b9a34d4cc32d44a98b06fe7f705de08abc39aaebefbc54d30c9ef1118cf989ee69b2c1baa7d5d40828ec47194d13b1b9cf69fb775fafe1e72399ee78a920c849fa635cfb2ddb1b59ddc235b1d91e99832e67258cd3e3388ffd798cda40b8357bca1e722c7412af75b29beaa817c61c7f437fa4df2ebe09ddc731f621da37ff5882a61fb5e6573f97d5b3436f122ee397b66d147f0f6c14f33779956a60b6dbec37b94754ca0d2d0e4e6da2aa33af141f58f19691c2065f8abc8fbef99b70919ea4f0e5d4efcaa37f29ad386ec324176bde04ece4fbfb3d3554f2b88f9e532ed9410b5b7727ab70c79ac019da682b533fe0bf401f2ecfd801fdbb70ebce06b28e5e4b63949b262d03ddded97e5ec3e176684e183d3d10d84df7341826c46d83c00715dcee534bf2b07e3caf0fe359686ec664a48d82752c6ec5058791879a19d9c58c614b35de7673e70ecf7df02a125a649153a7235671447fbad9f8e8ce8449ed68fdf147bf6f01f802d50b4dc2962a960fbb5ebcd249c4f5cfc2fed4d772fc3fb60b4da7860da7bc8f473dc926de902abfc098220df7311bb1d7d803e5cde5f66d54e8276285b0673c02b34754d30ba191cfc4f60b7121aea6e6cf19b7ed82b85bc1d4af3594c38806417a920abece5e20245088fb0d3e127bbf8c3cf00241eb7ccc2137a33acbf75712c21d88f9ad0721e1280f4bb78c4739fae25e0f8d059dae29516f7a41d803a8b31b1a346f72cad0883090d18a58959892f0cbc9f6e2a1ca71f62211f652342d24123b07d885a708e2c9ef82b617d7533b1a37c9992101cf8a030a234ef396ae34dcda8d813ba8c7497d9b480991833c87d0df66155deb3cd8a09e43847eb2a5d98b7051b2412a22fc0c3ab989d3988a1726e313ad5e3f65c03b4b3dba236fd4a391388368903951f976b612da1ecaef2814daa2cb32b3a2768f91cbc53c318529c005f17d78d8e8381514aca3ec41f872f4269df93c73746c5372d105741ebfc01a6aefce3a3b747d8a114d3eec14e2816f355f49f2c9fb75dc485caca59eb0cfc95738949d02202663feec293ceec2964645aa905a0a4a2281ee819702fa94cf385fc7ee8e995f0ee9d91d9f0c2af125a96314374b3619250f025ba2d6f3ef6a354743f63d8258da46c237a2e00e355ce73fb8ea3d11868b3e41e518df07f649c6036cca268d65baf102b3759984298a910f06fcbdaad586446b6fd3de6926fc02ee7f04f31b0e7aeef2fe6e106e3086a38ccff28d1e5a02a74ea51909ec787c8608bb15a87fe81308ac51c1a7927eda24cd1417b953fbc0023782cfbd3db5bbffb16df7682a73a3a661028bca6089d767372c98bb377d29370b349998d069a85fe2eeb9911d0b4c6c90de7633a2ed3201609ff9f3e09c0c7c580eea78f6f254d4817b1801f3eef3e4528ef10ca9c626eaf2ade05be3d96338997c3095cf4eb1fcf06ef28c72ad4050ee309a65ffa1942ea79228f299eafa0a178d2c4c25c6257265c9856987668ee28a6696e91abda10100dd911f6d67d8dc8c2988202618f24556cfe10ec71bec364f5ea932a4bb063c7c335e4316106aeacce51117923780afde50a2249ab64bf249c56a7633e035822265d66b1829b69e4bce9e4e3ffb260d0026c9bd875e514fb97e01cab67d720fda68c784b77bf57b05f889030d2dfd35801a04dea19106713cc0eccfd396683ac63acff25d547c98daa4550dd16c7e10da1425089e1304f6dc7c972cfae4958fcbade63127ec74199916482e986eb5fbb9adc7f207311d9e627992f83e0db0e7e551312faaffdf4c082642856116cf4374fbaf92e2c97071764f406744b65272779fcfe5a06894fc7e2546836542e9b6b26fca10c6e194cf805205f8df731b73fc2061bd47e656f1538190c50f76b25a658289fbe0e161163a04688730cace9a09b1ce2c1d2cca75dedb7034c8ae7b5451c03dddb5fbe3458095c2f3c92287a431010d1eab7e8fe0dd660de76c83f42ad71578b817df3841ba3e0e9b660293c1ed07ee93bda66ae92de9354116412188b07a89c57d7ac461ebec9af457f75955482e52f95a066a76892b3be30bbe1576ff17447a52570b3b95dab5c45778ffdb4be602ba60e690900625a9c2f18fb73b22ae086753c7677b9e9be30065bbf8487484b6cda55e3ae6ed2fc0eae5fedb2ab1f009acb6e5434b696895054831c49ac64820156e7d49ef200be5b224e7ab137b71c85e77386fd3f8fb4439045c1040a659a0102194a984424df6ef9a64ee08e96688e9a0001dbd82720765724997d4cc3b605a9af0490baf5dd5347f737016c9985c1ab86094cbfa75ab9bc3c0812f3640aa923e09b2b3a2c29bf07ce00ad82b8486d4cccebbf88706ac110f20035afe23d0e95994544fb724d86ee8b96cf45d8bea49c4dca198c8e4aa43a1afbec12ed1a5bb72a236b1a86a022c82c9e26fe3969be3f9ab2331cfc8f5fa02ca6508f28e53738945b61fb5ebb336aac27c7308905d60021535992216d539f351e0ec31aba51251a869e7b9a87fa33e9c19a55bffa4b871b2ccc285cb0c49490e1e918032bd968e6e7cbf4823fdc1e26cbd8dd57b1411b8cd941a595695976aac336b6b8040456cecf480f6883e55e8e7c938a8eb21e7a7f2061d3369a9ffa4e9f5eb9e7e28b458deba7642e9242935cd92e13a2670dbb04be47cffeb1865142995fc847bd2c4206ca2ff240c6c686875ce11b55b77e438d92052089a2e26c295a4cefa51628c55ede5a5b4eb3668016fa367c278da4cba6a81fa28c02ebd802c5c8cedbd6c382044057fc7ba4bd237fcb8fd5018bf57241c20d421d11bd24b2558f1a0e22c846f01389ccf8c589e1ae889d794dc3aee4f38bbe867a68d9da5f81ee67ccb003e1b70305111af82cf8a1c1eaa0b25e4d8cef5110ec34d7a309b028464cec45c421416718df6b252b04aaa651f1f67d15da9616590db425e25b116a8dcb39e062e627cebf6e5ff8b320c60f8054b67d8d97e736e19f678542c1a6e8cc16572fb63529662e3d81f80f98ae5d7d1ef0fe014c2b5d653d2d06d5a68deaa29a65a49c6c25544aff606a332476c11e84a2bc00b19f5e96feb4b58ebf8287bf5d5230767a8b752e6495c834bfe2718f61ee43dc3609c598e5eefbc55c277f6aafdf62a82d3f28aaa7854fce03e057d0507d192d9961318418cb5eb6566934fc25c6261d904ca7bff4e2e0dd1dadc5351024b44e831479e6ebd6160185cfb963ed86c8c053fa422498fb76e44aa8dee438fbf9df447c5b3fbd80c52bc7acd0a065c94e044f0d3bc402527b89ead96f5a45689a419690f1849d0c2d1c9d7b3b49115e6c5d094f4a3e9c2197161fa11be7e7d0b41d6df9859dcb8301a04fe4c908d4407dc557a9026465bbfffafd23e52db1f2b8dde0f757e7fe28c9e6a82f1319813411380969f1bc6ae4d34650655aa5061953321fd7e7b3813b4a043d28ead0b9d17f38a379230207a0da31e321d61a69ab838c70d7cfc41b13337042ac33111c23e3492eac09a4f50fd79568d7942b0bceb6a54cc5d8d5ccde8088fa71efd6c0289f76125bed453554b06fe796a2cdb70ecef77eaeed115790a80caac0f0ad0add4dcb03fd1d3aba94df62bc84f9c7085893415b67ce9999beac9e2120fb37c49480d8fe78c010f19ef1352a288335eda4f90602d2e402bb881a49d640b5aa8ed44834554db10411c16c517aec1006802ee50db5196dd423c45ef7899e2a50a0f5e3f8c9db3a893ecd1644ad75ca7e2e0ef2e23b54350c49ff03fa839f6206d3333640be6c79c67d6e6a40bbaa02b42e8ed554583b959a462331845932eabe02fffaae6dbb26157539069c6497de1546a283f54af0e2e449be2f2e462c0bfdbba9b1e73a1d2f86ff2203529287bbdfdf42379d67fb9541cc40d87514ead25e3acf56130c96e25a8f466b8046fecba773a4d9e7b9f97d7f9db7813896f5f70db70aec61b76bcc8860267de71c6af5d43b8509b3b9aaee5ebecc793cadb1244c07daa8817f0a3c3b7bcf026f5bb992213c0b31a20f5087130b1919a8e34e2bf18ac57028a04c5251868bc7a1922f621f98ecad9d699147c6b5103f89948a2de66a27d490ea76f6de690a222bce1e8fb039dc0c4f5f56f8149114604fa4fad0a8272c72f5717c6ea7c12d9c6055667a8ec774bea666488b8d2a72574ec9e72ec977e60b19485b76a81fe0fcb5fbd89ec2eb1b7956d8eef737b55cde3e64f84c6f7690f9c049a49a8e1ea25b4501edb02dea97b05604974909c428e0bce82d92d22154fc35fb7f4a3e44b7704e8357e30287512960567a0571d454e3c7d5f6d9c1293598c474c28d4cb41c08b27c750c4a3d7cb2758ad4cccfa82866433e577d1e0ef63a3d5fe08b85b2b3587756a4425fc59e7f58f1db22f872f55c79e169e85d8d12767800d71866f549044808ec6771eb356f0ec5cd8ab3ce40f795d3bb180963297bcb57594da2c869b0f1c89c0704b66bc9648d80c63f8c647027b644af40566fdb954ad4c79fff1b7be64ec2da70dc1ca769942edacc4a6df7a380fd1632980544b7e01b94f9b7050abda08e42608da63eef6a6a9efde241a9e1d8579fa5724d921691d3dffeeb8b95af751e0a538536c90e7d6f156ca15d2f9dfb1750744693241b9ee39131d5e61c1b2639cb1e759790a2b6406d2651a7d4f83453aa0bdaaabc32828d93c81e4fe3042cee6369b8b3fac83747942b162fc9f5e89480edf756a34e6cf1192ee8ae718e3332052d5c48156519638aef17dddcfd2b6c8e2f5d96fc64cc16878197809b84bbdd843c7582399f41a024dcfb5a305cebe37dfaf72f66ebefc989157cc570d545afc7b9c680dc614801cece2fc23ac1a5a7970c76180b62aee0fbef403e9a1318334a9cb8f386dc6b12ec9504d909c2b3d67038238b4fca25b89e4a2f4f58f28bb2092f9e553b019536f27798e8d15620c887e117f01a2887fd3d16413a40cfef8c50934c7547076ce0daab9175b9591141e783b7e98d05f313f1740399de27f79b333c014d9beb7c29b2dea8654c0bc0df952b7f23a4ee65a92b3b4940991bbb85e071985f44eb6b7919b2035c299101bdcdf923bcdaf4b44c0e76adf785f34a1e37cd13169a0a3a2f303b5f564b735f86b6a50165752c9a16f0e4e5ae6e97cc3a8ac170d7fc90997e19800ad5c81cc092a2f8d890652fd1b76a77e51ae7182d98ce0fcfd4c68752f36b00b117015e9fb39d4ede4b289c437e4ad5cee42a2561b7f050e7c3323fb74c332af538f7ebd6c4721b189728924523a4dab6d4769635d18470d1018aca28a3d1e3da320addf63c2b630d615536e274fa1437a2b2e5af43862d1bd8e081ab09f9040216502e2e40723fc475a333382cce46d0548cb0fe1a669b2ede047d8b1d2bdab0fd9941c3f7325f10002535e6822ae61c5e9939fa973aa208b1061e1136a8a5ae8a8d581c3040833176396d8759c19ed3d7ace634d67b7e3f7bf58845267c19eeee4f1b587fd101c20b1a104001f2ce998f55c19bf35b3f5907f821c7c262df07d4f51776762843f502b0d859faa508a6ca61f8a65b73477256ec15ae9d921585a64a3c0f9fbe4526773381f039479332eb595e1a182cce33f51bd280aa18caf90f895f9e47f31bb67a8a4daec833eabf611ee9554911611a89608c38bc5383efa94db658604e693aa2c18198ccfa3a279438323628ea5f0c5049ba550f4bb99f33645f96ea13e9fb5640e6eb4f5fe77ca4f9f88433527b408c6f9704520f597ed40ed9cabc11e9c48a8c4909579507c341359df96a523d74162da251dc114294350e880d9d47caffa68afb71176ee56bec41a7c9b959817290551e6e0a62caa97b003532f4478225d12751d4613080ac58eb40c9f2d4f6e9f1679304eb0c3a416ca48c719bf51b7cde45252891aa099fd82eb71b00919f9369eb4b9db36f4d61472d9da186913225919153db90a36935f8ecfd73280456a9cc4fd612ad29b52f201b5cfe4ce1797cf8a43d0ecc30b8fbb43629e58b9544ac0eb786168a7e965bbefa2182d29535c60e7948e0179fc7aafb7ff5423afc6b7b7b82f4c459660958520729ce93ffc02deeb25dccea8c978a55cc3e1285d91cbaad5b794a883c9b6686e713a3568c081437ca6815738ce0a4efdd87096fc481867bb6b6979ffbcb71b6a663e940800eae815fdd425e248bc7658a77215b16148053760d26ba378fb7589a024a98da69f3f45a2ead634e3857fb9b56355deb261ec47625ccd995d043e11abc56ac5cc0dc5c94561ae4a2b9f12b119433cef25956273469a29452e93aaad6c042ad3753f259d7516a303995e0bd1f43de05df2693acb68af7c9862cf4aa0c242b71fc732a840fa15349e4865bc01b981b5c7d59fa3a2ff954513d5de4072c5fef690606189b49cb2f2adcfb9a1f466ed6d3c18f03e66a6e93d5183558c52ccd994dc104691d00d8d7f01397bab891c26e115cbf5eee5e64ff4d3de0fe26752f5833d7fcb4e1dad5907475b06b17a138ba7ebdae2a89949a8dc76c7f4486462804278b909b8aa253081efbd177479a9594bed2797be728931f70cba77ca97bc13b7542f432f0a9e7601229381364f14200d2140f31386b17d8158be1dce5d9e509328573c6d858ab4e03b759ffcef5d0d69000b51d9edfb07f8cd228479655e61ebc8ceae49ad4bb433654597d39c16e095875807c54932ef9aa916ee4b071f6983ecd4bbf82fcb9ac944f9310e92275710ff6deb77b3b23c6d296178f8551af5c73c51cd714114a3dd7951711e244dd30e9490e80488d689b33277b0def2a8cfd27c6f5fc8766974c1ee8260ee213c5a27c84a3318f9b96053d8f681c81866d364751069f1074cd418965b70054e6efdb1e0f058ce5ca8e1df09c9f497d2217f268268e67d76a9d109f82f64da87941bb9ae7efb7d41af24c03ba539e985cb2e32a11652bb540bdc59951bf99ba20458aaaeaf29dd517a9220a68ad19dcbd49afd31373280ec46423e78e27692fe9a92dd5aaf18c11c75f3713354afb29a34da20297369466dfd24d703df494f390c0e59006a330214202226edbbbdd310413fc6ddd417a8aacc6877abe208c4760009fcd6a15d84386467c8b2303a1dd0951c6f118b7ea625806ff32395a66006082d24871250cc92f22f7284b1d25817ca53d7124d478d221dba837d684c6e8ee85f64c540876a677517f3b2974d456110eca4c14640933ef922eafcb368d6b6cec7ebe83c41574ced371490269fe124671876e854af14e0ffce9c1763a5bf289bb6d9881b7c848dd69e02605d10198c8155e2fd1fb63efbbeef185c70ee4a1d79d733a0e0e20318a1ce645b47447156027ab961200325addc236b01465105e4c61a02a974f873adbb60b0d148f0c1bec3779b63778d7585fd5ae9c04a6f03fdc79a32ccdd0ba4c3847bce55253fd6c55b948263093daa22107937f996b7fe7ab799cd0403d8e4b99a2c9f4c3649f9d3b8668dea7187ac52e3eabd196043453129e7bdbe616033ba3dd00af715a8cbcc158def5a3e0abe26de3aa4966f264276645f22a702eaf5f94d5cebb41437ca11b51df04c5586be174639df45a6c7a8f866ff3f6722d739524a7f4d79f1f209e6475d82de90358e979af623fb1ddf0222b43c4927d0f81562c384caae963cca0d72b070f66f6a343a4bc3b03f3632b78498c9c0f4da3b22cfaaf9cbc6177f311b8c0a11e195b52fb250467e77652164f4a37d7628c0e3087bbf57e0a443870f619e48f331beec5d69804cda98aaf997d5bd7b2f1b245662e433c52d8b276a0203f2ab33cfa839f8412bcbc2078b6db07e721a2a4d3964dd0c47540c496774f7a6e8cbf68fa7eec154532b807fd55530e1b702ce46f20005fd2d85243397370b101e6a3400659a51fcaef50e9fdaeaa7b79425e21ac56a03b056096fc5415a9d1e4768276a3227c1d688014b83499719c99b8c9cb957f8f67424c50b49300ac94ea63396b78fafaefbaf688e85b1fa00aa11a17d78439f43576a042b9f548637327337bacac97f28f2966391edf00e9967c51253205f29037f9a200066bf5eac1fc5277edb4c338517c6ad2bd6a2edc198d6cbad11e6eea5a8d5d5388fa845b609c92123ce9dab64eb89f4ef6cb50d9564f1cc4304544be7a0721ae40306564ca94a6af749a50c8d91d2533137340d25a81372868b161c9d44601b32b2f7eb68f64a587363a29e9064922dc29928ddd006b3825406c83de221153c727b0a63e7f2b8e92da8e7fb4b17c3fd97342fa98863abd42ddd7be4c50c734b8486b2b300f4fbeff2edb00339211295ae852fd5b5ad908d2ea1afb9505ac026f4be54ddfcb4e7b3ef9576e793ddc11abe662413a8d387ffe6469747584a2e0b51b5fc06bd7146d96805b1d972b1e2dc103b424d692d72d6e64c93a368ee1350c9eb12e3bc4c51f50a31177d41c3f35d74cae3a0339333e728d9caf594e132d8b2f34b3435472836d38b57b41781de619916ac83801de87c704e90c8e83c036da8d685f26e7146bf2bfd13a947d3d836484b64ad4453efbe60b17dcf460b28533190bb819a1f311bda3325a5764804f0dcdeeed2bd55137e6a69a7fb9e12b8f78a25235a494d790ee8acb9368c25514c24ebb1571ec61f7e7edcaa8f788789056379fc426798868e3811334c7d38a9f744432d962bc459e1cecfae0f1c753077b9e934537b8a3febbf8029eb27df44157fb2682d0e1acb3522ec20198841938d875990ccbdb341975da22c81827324fe9407110ec7bee5e176345bb5d7a85a9f9241c6331a76c66903ee1ba54c0b0a313d6cab56cca04ef66ae3912616f04a568155b05de6473f64c77ae123d94e61a55797857817db058ed924fdee0773fbc20e38fa503339abb6f7e3b8282bc7914ff59541293213aaed692ac4903c2964114774965fe581e0e9c02914f5e53a4f78106f8b4d750ebab2fea1c55eca3b6cac03d495f8eef482c3c979cd490bcb2acc927b440b494242fd604b15424e64eb4d3ebe320e265f4b4f9c83ffdaf9fe921aa9bbc6cef20e8bbf9918c6e4e84399dde82e32771ad682ac618e3cdc56d7ac55bc06f22b4d2ccf42b57c71e2f5e0be81b882c6ba6160e78731f0dd83e8c6e0e0803e802641d9026012562b502931e3c439ff4d25a28ae68dc5b84c9287f9af6650317df39cfe8be408f7cd62381a3056efb2cbb1ffcd82b9d6d10dec0acbb7a66de813ebcd7cfcfa54a2af801a42af20b58df7559e98cd55bbe05675294dc1af17156daff792f8e2f5281e867ca6675e76ba0c529896ddea0db644a6592fc5db0abf923ba94ccd60136bc44125f9c463a08e7642a5daea23f037d823c8cc14aee345fb923ea48a5d535960096bd4fe1d1550b7ff7a254e24ea4af9ba41cabef800d73f6aa91509df90859e596cd490344e2ed368a1e9b41b1d62838121cd8ddc6e79d6276fd5f84e2756e0d4e5ef731336fca1d63e511c92d0b1f8e109ef0aab357f53cb73d13c44b1baa6960fc7c31a3b586bd84748b63187672e6ffbd2f6eec26f9f8cb6b9aece70cea3b053c968e5d8fe1143e9b07628af6521e24d5d946f45fd7bb3267c22da1251f9c7cb17c1866384311c50494f92a7ce92903f4a4d568e210e14b4efcdd693148f7d511a0627f9a9319a16a89c0872de08a13b9babe4e920078ec5cf1f89c506d8c0636ee43bfd46785e5b9a333fdd00addbade032b6e7437c2c01a7c9aee3633ee4ffac65533710c223cb532332f3a5f4f9c1a5f49bf49d8b77e035386ec273085f6337d7995fa6dafbfdd078311bee32137283ec9e67b1d81e8124ca20ed3c60d4837735110e4a562a6acd54c80ef3729d518e561c26cfcfe9edee3795771ed15f2a776c513f5fd64bc676b996826e250c9423149057b6941c4279eb784c6f181a88dfc7f39ab9050ae1a98dc80939a15fe695ebfe44d18106e0ee9b1cfe7fc091ce7436e394449b8237f866791e26208d4fbb983d439b468e85067db3dead3b840353247ee61eaa0a9dd12f44cad57505078955b53d074f5c740e94f81da146de4b8f2ff697aee016d31f31eb940cf269b621291c7eca29bcc57e74d69a0f95d955cfe521a868947c51889e526778758ce5293706bd01af0939604b5e2af7c8fd8843740fd9dcfd48e5cdc2ebba85ac71303b7ca491f18bf1b17fa8f88a9955fb040328ae57b087b55188c4187f431e91372c3754ad0a086147d5083c44c26fb72949639cf0e84054fcd7b493164b147b47450c94e62b4f8032e77617f5d1ae9f0d8c7184495d8af25eaa0d82cac68002651d2245ee8fc7d377b1c9b615f2f7feb68a135d0ef4eaa92919c60838a2945443d5e66e2be1fad862725c6a348d36adb162664861d669ac8a9bcba2c0683db42daa375f4fbf3d9e5f2441d6f8e8b28072575bc9414c318ae7e96a3f710479cac07a0bab8ecd482c81505fecd2c608de9b93418e9689630e880ac3a024e6ef6b1a7fea3cb31ffdf53d6f86a2c8cd842e80ae797e5727de4b4eb7784c2fea36ac72e7a1fbe4c675c61a1fb89686632415ab74c1c25e828a7955bbee99e58420e9418c925a2b0c01651519724730d9d5bde0d0cce4f189fe2c99f52b416c58d0c309cd22da7a77c5fac8c1c2980b56db201365299ff3fc47299503f967ace8b21b339f5b5c69f604098668a2bc7a4733f367808acb4a3ef286ff4e02335bbe81e13fb22bd80b0f3f217ab1de0d36acd4d191e85f9d964b848c3bda453a319fd6b5282784ba86b6b641f8143a16681e2fc09a554b9d942d10ad62bf8037dbe2a7ffe3ebde83f4bf0b9754cb6ede4f86ebf0f3dd5e541babe1d3a187572cdf77669fe64ec22664e0ac767f9bee65912e1de10cee3bef8336f1f2ffb7cc47bf67d4ab17e7f085297c6984a1cf0d206e9a2f558fdc64581364126cc70458263b099d85cb4b4b15f1cafeccd8e339b838d4c736fedd9c34fcbcf3afa48cf18fdbc5cddeb2274b52cbefdb61e75ae506f34251c3eb235432e8af1d83eac605696ee4fb6fcdbc8b2c4548c9bd9d4d2a2b05acc8887b3bd13b1fcb271561fe2f01aaa37d53f691bc8dd85e376cd27f16846015ea1ad778047bb4bb9e89e6fedfe6c3f044026ed7c1e257672d78d94bf1ba862e729c89053361369661852d2747d4dc4f60fe03a5b5b9ba7697fd5b6975ab6c38b320ba6eefb06274c4c90c0a7cbd43372f1aa7fe72d0197ebe5b8219f683b424ba47dd38ef520f0f7c53a5a222f7bd466a8705752c653ea45b4a805aaa9fbc2f7baffd95847ec10e5389e59834fb1264488b566c1595942ae4b44a46a2956618685a1d94559c9c56f4dede13bb708dee3fcd6d38ba23d018e3bfc7b6b157502966849906355d27ef7218bb2cb59eca6ee029a39dc5b3e98c0cd8455653f0eeeb59aaa5696abcf0bfbc52589a308e9bad1aa09ed4fc8672e487a189dbd9eb38eb1a78b55d88d3ca2ddbca0bc96fb85857a9aa5b08c2c61b2e4708ab15cccb3bbe8ef5cad26735bef2f81cf5a1c51addbb38de02e0f5149a9a914291397868a2e86261f8aea995aa8ccffff529f87a4872ecfeed5a505a34c277a709c9730e10538d2995db17c884ad4175577c403952bf5c3e4ee249751c9fbef8c2e944e1f78e8d1e1b9746198fd971df15edc8da4bc495d250ae25ea5b1a970ad7b190c8b17d7d02f8687cef6c9cf5bf072aed09d18b1a9201b6e3278f4603026d9e5b7f9495dd406887b0f2e950c8d33b069de28783f4262ddd6f159ebff1663431e4210d69ab5aa7af7b25a963264fae7cea993bf0edbef5c71fccc51f23caafd23c213a8419ee62e830bb034ed034e89978b2af025baf7bbd0b79237bc71ae77f4f24930ba8f236dc4b10c8279853b3db3bf203cff38cf8f150c0840efb8f162c8b0e9fce3dbce9384ff9ec3d875dedf35e5087f4842416f33e991c000c7f7219a7e9b71c8aa102c1c9499ba78543ba0b682dd1c70db2c8c23bd1990f78948fb56028abeaf78d2ee8ed3f79ea316ea50707d99890e9873723cff9999309d42bac18602792a9415f4b76452fe95a59033aaa460fb4222384610a7ba8389d4bda77879a577cca2990663b1c3f0ec5d2dc9cf253809a8b86c1b44b37dff18b67d0424ec26d4871ad355156adc553b8e317125154f389baab140cca4fb8f3cfe736f8d159f34d1c631009502a80bf9fe6be136edd6b930df8397dafe2fdd2b1ad3e143cf6abef848b72ff42fc151ab64c3c0f3076cdb5250bb5395cbd5e371acf02a7b189c546d92ddc2016e76ca19eec0eeed250eec3a8a59bc5d195494a40bf8150993fa03f26ccdbb867cfecb9fbcea4154eba897a730a8c70777bab273c36ca3bd0494be27f1e4efa4debcf32d62eec613602cfbf277a7ace47ccd09b0117d00d7d6dcc82f128eb1005a962d5c6a9bca007135f370a9ccc3eb4123433c672426fd98607a9511656e1c7c55a100d0ad38086e46674ca310519ee14ff6f0ee1d4a047b02342008af7b72121f381c846819318b8f9370564e117c0022c15dffa68bb0d6cdada860208b66b0f6ab91ecff37a5614793e949f1a4ff41ef7af9a91186d8a356fe8e5af3811d2d5353085fd43b0f6a93ad8d15f43123cff0d4c32f27b38fffa9fdf88a4eaca724c31a90ab7cbe5b880027afe82ed75ed5aff992875ac774adcee59256fb86ae74a15e188fa028527e8b990c03f6caeb0682fd47dbca71db94d552267b6c9904c1d9968f42a35f89753915343c083fd8161632ed0c162a4c3d7a04fe89141a0bf1bc068eea1d8ef379408b137dcd63213e10af512afbf5bf565303b7620c57deafe5e2c1262a919bfabf457f43e5249abcb6a10dfdcc501131930bd2bf091d9feb2c9fef857cd4354c096e0d1f0579de51ae35fb80b49e5645585f12aba596fc57ae563d0d4fa7d52778e3c338275ff4c1c6281860c3d53dac8d627905f35d57ecdc7facb51b546f27dbe4bbc808e38456d75b7481d6460ca45ba2780365ba7363a75e19ea2685ce4d6c4e0d9bf8c2c85eabf2497948b0980e282ac6aa0545b6bdace6d30edabf4f7c596e0993f5905da8fed49b13740471f226481957fc6c53bc80ffe9f4ed00fbfddcb10b261d69390b8aa2bfce068e60f97a23f8396496af67005d876665c394fbe5acecde6997dce01f6c085c235cb6f1e5c5a8d472cd6a8ab65d639f57fcd908513e72d8c1c6b183d8c35f235420ff4d097b4a7fee47383350a111d18ad56296b0d2ed46559346d54ef6fabf4de860a336a716e7f42eaf3621492ea1de30977fa50798ed4c9aa7bdec7e827e815d6a2cd077ca8a116bb7abb814cba6863eb77ec7311fa8c860b4a24709f2e27f74f247390f453da46c126b85cc36ed14b039b41d874ce32dacb0f38c912f232bb698f6560e78a7972ac5968aac34785452a82427f09920c625b29ffe75d8abb98c915fa09de2c367d1d50f24c1fdbaf317b33673c11076ad63ca9d7f8b0b98883ead4cbf57f16278dce4feda67f21dffde6838cadfcf0c11b1f6663087073dbe80f3acc0b7c7a7bb93a64d4a66b67c2b7b64d8e51026a3bd2ff0761b4f4da1bccbc010d5ec2989a827272c13498ea9f0ce43abb97a430afe2cf0cef10396fe63db0d2ea135785481e5108ee1fc38e873fdedaa4b9323a7c9c35d75d7d5544325056d621e25ef28ea3de1a980d32c7242ff04b01c0377f5422623f23ff6ac93e44d54280b73aa78cf97167aff6613f4db235efd203c030086281ad4da38bcc4ab697ea3eb393a8d9c29e63fe50c9c0d0d4a84b648c723ebc6e6982a9035dbe12c0f881a9ac4f401c252f6fb75cb40d319d91562988ad76ac0a0a80b8dfdfba914497275674d91448c2feff50603664fb8c4476ed1890a487224da1060b5a00d2daf5dc4cb50021b4a617039633d51fcda25f6aaaae39ae32f62fcd525a6fbb54fb1a5b8a655f81cc344201540d5cf4c4b3272cb980deeabfe03337cc597aa7c285e7e28104df032fe10169ec1670a23149dace72690c9a644220c293d8627f0c74f5a8eb8eb321f5898d5290f42ee5abca972fcdec588efc66f3d87fe0379d305a8a988d99eb4f5e9a570d2f73cca3d517c3369c25eb732f876a2415bdbe49db346f657b6fe579c3f3127f8a6b8380d41702a7252aa8e3297c2ee8a01c167f79ea3fc63ace0ae505ee20cbf68aa347f0580dac028ead1449d0b489688297d4164f623b4d36af8201ba0cf8c7eee433c9e077edf1f2f0cd17cc6a51e0d94520d1196a37b2fcbc470c122b88d0350f55fdb6b6dbf0b8340d8afa964e0dddbd9a196bab6876e74597809c5622fe1f88cfa777086340261b3699607f61d38634e790c0a7bd13b02abc25e0d7ca6d33b9e9104474d7633be922ba515f41a1429a9c4c29b79f11e2784b076a901687eea7d9da1a0d7a25225e8d7e37a2d9f011c30e2245b65a5ec453bf336d625b290a9ec0a8a4c91368ea66ebabbbf6b7b143cc5ec6bf44c51c7982a15ec6df802faf414b96d2d9199189e9c371679d1fee05dda2c21b5597aaf07f9f1cf16669b2ec6fcff9b8f849140936f43cb48ae7d88a0f6a0700a384aa410a435e04bf3047c0ed724fe292eca19b24ee75f0d90d1d5e88a7c4b877110546325e7043ad6896d7735e5e1531556b5a1a6c214db29d869f36aa55a9c53bc5c1281dd86abb7b8401bf7f393394928eab8b785449862f3f7cfa036c16b79671c7c0343d67b70e66927f572ca190b98add36d7412577e8792d778ffae62b2c9114d7819a14d8ea8289bda7bdfd5c9e2fb4affec68c6de7c07709401c382cac1cc3d2eb3397d475a2c94489adb5e18a650d17ed7475448c14c2e8af33d85acd16e6ead374d89cb9b48db645050c92f69af35823963dbf2c5fc291ac0044271a0bb812022ea6b8acf39a3349202121d133c4f7ea711f6ed00e393450773043376b9d992c4d69d229c79abb14865ddf17063937ecb8a508a6898e1a89afdb7e6c3e19750bf37be226d23395ccfe3bb2eaf93186de275948afc2f2050ffa4161098e142e78c8618b1f2e8972878fcbc24e68407363dc8c7d73df33fddf23743e12cea3380f5d782789e16150b062b5b3b8b11bdafc3f33856b02e6b40e165793958912d909c724eef28a8a61134a30adffc9e1e576e6552415d0eba726ea1bd011c42be2173b5442a0b6db0ee2ddbf45bf915e39dca53ef25538ad59bf1d2b699183d5052424eeaf2053d991412e6aa0f256bd2be79dd0b2c22635bcbf4da1b62132909f425c082c59b3c2206789ed82b88b73dcab177eae15f2e15f7b5e45ef57833dba80b3a8eb09431b24be7a042bb0fe131e3bcac08242373543fa788804ad4c0693538bdbbcc7ae706925c1699b90bd32674772a7d0e8cd60593f1be34d15aada33cc39389291ca4fed2c74ee9d5ae462d78d320991d3b584dadeda1c3915f1d350f19170e980fac6b0d8e2bb8e6911bddd358f0e6c4d59ebd0eaa00507edddd32bc78c6a2b228d723fd095a0f2e3140861f9d28e0cc83547c046bc16d6ef454a11a75ad6bdd0335be78045e074b6d2a6632d1d6f4b87193e507261432b16502b915771af5c080c1b096406c981d0ae0e3343524be50526280c1067527bd15900a2039a561ed4029c07ff114bcf02f8f14fea0447628da4056c2ea7ecf489072e4534c85e2e92c9ef3e041be29f6e9b60a07fab40fae43c4ff96e38d9c0184199c71923874f1efbb7e43ccee377ea8dfb14cc1c985d1c943f82fba318d2a41b09c9ec4791903777c532d2268ac5dc0e3380f878d40d82e950abb6770d3a6406e5d82ee860eb9783c4ed1491185a2eac74c7c71efa54c37d9e8f19bd831589977a120eeb7ae8fe9cf2d4239b10310c023a6f7ba4132442c5841923764f8438b4da39af86406e284a6c98f5d7986d9441aabe32e08b2675c6ee22bd32acba4f8ce0dd3141d4be74a0038f21860f7ba59e22782af1677429788bfb138e49ceae6c8e4ca9f2cb469fd31d62a3e4bdcdc48df5fc3b4ffa25eb230e942e63a87adff16bf6fc6736dc4a5f9648f970a52e93d49f99fc5d2e09d072aca708fee6ac31254f47d0e8d9ef30ce3aac75f227c56c86585e8002b280ff29d3be09ac681fb901aa00bcf43c02642bc4e22c96533325d50a74b978d633b55584283a1544c7e0fd59c4bb45aba52191adc897761fda9d4521bb250181484141487d1f3868573cb1ed8193ca283b6a9ec238f04969621e9cd20f603804cb89ad7db55130b065b20b4a2ec3c5f3e22ce236bb27a8299e9bdb1086a205f9d755361609f3780c17811f3ddd85b010b16a5631911dc7e0c8f5386ea9726d4cc4330a41725ca7947cfc4eb287195290b7b13c9d9e19e66e04b1404c2222d70739b265400f3ea51726704016f6ab9004fce3ebe5fb52713aa574c3c77b75d75d830af820208eacb2d0fbe187a1aebdda61211df414656a620b7aa51938a7565a7ed474b4424d1867f4c845c6a17223d93c3bced9cbefaa42ab0c4c0a3f545e058fdf08fb767da3f3bfd0d8a3579ab05cd5032d770be59e1833791388e6534d26831aec5f288f2e40cffb3d38f80a420205faac7e919aa354684ed0257f1bbf2b3cb0cd1a69c3e77c246f350e0b0825f92281f4f073b9b0edf7418fd1b9fe792966e96f2435e92bdff00f1fe22bd8cb210dbd095534ecbc53b9837204693dbbba68b5dc39faafac6c5b1f150da015daf1cc2c0a09ce651cc367dd29933244c9d232b7641ae65353d78cbdf5072a86667345d37a6e18f33a58f615474dc12034c744f7bec9f5435874ae1c84fb7fa698eee413f72e6ddf0aff7788fcf33f75fd04f8908f2f68da0bb3e6c5f2642dffff004ce28db1edff7c2fdcb35a94745d084688a3f6a6501526320157905fcf1133bc73a0446e4802d96e21d6035612e5dc4b4a545a48641d90b259991d61b2e650eb0982b3b275e6cfd9f5f0bc7a7071fe9ae35c282c529f7a91caa452c3fa909691697b90a0fa6fef2acf5964808cec49a26d265e8013324cc5b9ed6c28071e55b35c10b8139442672487d464463d50d6d7d185e34c7490a9dc95fac90ae3a3611040746ab8c38972155cdc27c43af50ce688ae3ce25c107b6bbccd06601290b2398fdd0abcc18fbcd0fa697159fdbf64593b0abc5818daec189a87121f8b1c9410c40d59e670a6db42ae2b54b65e4fe02b73f7678e84a46ee024d6068383ea52a25bfc38e291fff9c1703f1bdda1a78ba0b788355bfb249302f8993ff96f12dee2e9bce78cae335c58aa18145064c0bd6215817a6dd0ce754067da5a7a9c0c086cc586d61881b889a80a2835eb06771f28485fd6a63d881e406cd548e84c511bfb3dedb783f18e54450107620b743f5adbffe0149df602ed5d63b024f8597a8688faf974fb2da2b01951ebec6b85bfbc69ac374859534390d589336834d4461e28140e41af42ab14bf82e24c956ab798ab1a1ab12fa78a0b5dac918e34e6aeaee01224a092725bdda26a4548493877692b53c80acafea975c577bf8f58adf49db0bee13a7004b0d697aef5e720caa92d4fb3acf049eee03e8da21c752684155f5e093cf52c6065250228d36f312777e002d38fafff07900588ef39c70bfc43852cfa6d0c1b3b0b1f3d49134a5e5e57f2e33c1660113bf5c5904f03007819ff3e4bbcaaf94fd9340fa5304954d8c58efddbe25fc47f47d19a8b67162ff976fdae46836c5fbe1248f594d7cf850181fbc43fd5ca95a318eef41dd8bb5f3e8141484b288b36b79951c306367e1bb4b58e8e85994de84eab9c7680998cd40918e1cf63bdbda61393bdd6f64e439dbe85f0799654010635e4841752e9af6a5c78d43c64612e4385bc3bb58005ccc642c01c4a03cb1397f99a72f79028d9d75009b2b7eaee6390d990811c37eddc92f34325c5c063d55fdcc7c18b2e03bd45537dc4d9c420c8bb1f278313a47cd467d54332116680ce6571e03b6cb970ad29080c574daf8234bb36c5edfe640a2bad09d8bf8340576712c020978f2cdee71f5433f40c4b1de316ffb09d449554681581582dbba669fff17740c01b6e4e9af47c317a59d89d2b7350cd43cc69f2d5ce661615913e4ca9da39deea7bb86852d41cee76999ef099f7f5e2238fc135fee77ef0911326753dc40be77f5404930b321c6eca95ffd4069321f275df3a478404fcb143a0126d85156666c296e0bdbaacf52bc54e4c81adef477d9341537303d9bba0f1e20ab83165c5745b678fde2a0886b20ae8daa55889304bcb8f7e6f137b04d299bf1c7aa48089bb3c3957927c82195dccfaab12a3775e061dbf76e0360d0f1f9a1fa4939878ba3faabbc182677d87797223ac1917d1f3e4701a4b503528443f5b6908d8379dd86d27c39ad1aa8b22ea6e7ff0e1933cbba7e82f6ceb48883237575d8471d4619a7f4780f0d6c796ff200b1ecfe5bf208e0e82d60fabde22c503e0a1422471dea59ad962bd621ac07023be8d394ea9b758527c0a2677a258f85d4b841005eae0761cd016796ba27beeaf14772f69fd07e0443717bccf8790166f2530a0d78afc2451e9859017d74c091ca5fc4b7fb78377003681d1507e94badffc6ffe40458a1e90c6dfc1d4a4257a1bc13adeb0e3f3c4354427cb984e75f706e8f2b7bd7e60bde95461c9609e2a63b1f1aec32f313a835a59066813dc5a06b7e3eed90791b09559f1f9c9104caff14a48164438fa8182d1f5670c13d3cbca103fa28db09bc0abdd4a687c7e616bf573026b3a1a1f5c278b08cad5ae8e912cd73fbc52e2f12ca59c8bef5aea802bff34c3e1587a7b597cb67a03c0716cbb065ac117d4edc6a346c97fdbaf95871573bbacf9e2d3be777a651f3a0bd2cc7d53d991cf733b99567bb8d2decc29669eeef8c37c1fcf14f79241057ed346d240ef721913bee0768be904dce301b919518201da3215098f33a5bb197bed3ab0fdbd18afc6e6fc43ded78d193e5dc8bc24979f999bfd2e59e49c1dcef05944918eb99c378e1e38f712e5c35e10ef23c6215ef036f6ba86a60944c4c90a3a588b4e2b0f5396d6cb1e47ebf94531b76d00cffd9d6d18cdf820bf13aaa1ed1d947b9b47900022556177cea407438765d05fadaef933f39e592b8b0b658315c21c7e48aa679af5229cda2e8a01c13ea8c9f89beb7488c9af5ac4044c95cd7b0a756563e2b35adc529ccc3c8ea051ad38a5fbc805b2660a5c204c4f04da210b454b91360d64e7d712265d02e8ef1b92134cbbacaf8e4b71fcb432694d612516ebf9282d1d22d355c96c3be9f7b9a0c2d1f564cb8d3cc60f71be68d79b4850286db6ff0ec9300fedcb033071e96f2685596e360080d0a7fe87544e53d9763008aebd80d3eeebd972a8fe528d60bbdd276542f88ddbd210c7411d65dc473f41c0c82626cca5eced039bde121db67f5862b6d657c0e9b9952267b81e73aa5b2998b9be207eac21e10ecffc3f8f26edb72de0a1594068225702d4289bb2e7aaab22f1bc6baaf0284d08dc69a367319acb8adecb44e3691f8db3f73bed4b09fe112523402c4e16f051ea5ddfa682d3c08301dce23ce13ae29dad21928718a1cfe5ad98a444982dbd91b103df09f6bb2c9e39822ea59ab9a7509a1413c9681cee89e6314d4d2e7a3a17d730bf6f1fc1a9091c7ce85d9bffc0ad780321c88ad9bf3e840040cca653dae0ef93089f6517a9e2cadc9b35c7bf876088be00255dbc91fb43d4c790385f7f52b5e133a4ba953bb5b9dcf7e95af403b3391ca394a022e7d723d7c6a30cc00a94552555b124c0ba5f8fd90d55aa6be1044e4c0757ac8253f08a50a316818eb3a6425b38c70daa35492d9068e2482335cfc6a4e723e178d104d954f6aaa85321a9fc6566a0ea828b9ec41d706922e75e46c08beffb0bf21648ff5bc6553e7883da5123d9a992857ce7c82f30ae6e0286c7e52f67c2e2f07fb0e4e1d25a9d0e7243772864a436c59f1ed22da3686281d6b6c98a5e3dd335c9f7f72e382542dabeaabc8ccf43faca31e9db926e27c8fa5c54739782224d1141d89fcd4c1df6936876bb2d8e348e74654208e597bf7ca990a714a537e2d248ad74b9699283c2ce6777413508a1b8e4aacbb0b0157c87bda72238ecd18675872f6d414f9523d9c5090d8f53732f83fdfe2e903af2ee67e7d97e8b9608706ac3209aa62d2911c3c16db3cb863ee25977ce4dac063efeacd0396200d0d9c8284bd2b443a150af450c5155a8c2b006b053cb0efe7580294ef3a247e37691d14936e2c90b0484245db91818045041597c002533f2c56ee44f8abe78b8f58313c0997ee6e8f6875741fe4781077d2d8fabe4c0016d1f90a811aba3e2199e1aa3dddab493280235148beff77fee2125beac3aa5570fc9e0276c7d28bf0dbde409f1e48f12606c4bc6e5d450d553832ae3f7c45a682d9cb0a705f51fdfc0984f0ad5a758605494ee5f7dfd073b221aef9d6aaf7c3328b510e6172f8be1c76f173f510ecce82af9c12d52e7671c7a3d9f01265d11b9aee877f6090227c7dda4fc2cb373e33bf4985b861915e6fdacb5e41565f1624892d4f2c27aa0c1c1e6f2e04c5d01d11d60b52ced895c8aa43aed7158c49090a0121c1389401dcab52501d44408d312354d815b6d989acc9f1b4183aa13b1646ba83bc5828aa417c4135be68da82293cb95aa8e4e8824715e63d06c806322e3d9ef4b37b8b99dd926676c5b2f6ef05d7f9b1520aeff6ce1ab7890f85319a655e4bc96a610648c3b11264a50e3b10c28afeea76b3b8e4ce780dfaa8411aef273c94b089f907e1c161e8ecdd061501d543234bbc37748cf42d26a05f9dbe6592f800253503a103529e5f942a0933b63a42ba6a8a5537b847d4541b608ba0a9c7fc4aaf0f1d09134bfc43b908fe07fef63e881fdd06", + "0xdbb36146f6c78513d4557fbee82d6490e87dcda8dcad4e354acf52f22ce2e4a2ede071bb1d832438843c993b90632ab1a10bb523f89d9469bd50be3de50f45bd2773bfbe661215c62910151d0c483c50ec40fbb55aed6247e023e620dd668556b349bc91496072dc17f97aa14ac2b854ede1878eeba037d7901f5f80c31a33014d2315794381b753539bb48edc1c54019c779325dd033b359e1d0f5a2dd9f030c97c4ef1567071321959155779569b724396a3af21ac002c4de5663912a2ceed8bbfae8d87dbbbda5765381d7b0221d704745950ef8eb42fd8e5fe8f4f30944c0dc0cf5f5f00db782fa69e4d60b9357f51cf0c3742252635eac020ee22f2bfc15d8c71776b988433796736b84a190e3472256d5459a0631c24a5073eb2913c9b9c8a68a3bcd5a95e3edd366f7f5678a00339a345382ed7ea9a78e1f3840d0fab80e7c01d686fd4793e76f933e95b83f772e8ac66254e18dd56d3da9b07617f73d254713607be68136bfebae5967bb96f8554edba2b35e36cd4c9bf4e0abd7df3f117376136e85ec26c916e3939afd09bd3562b809a42e8c38487fb5c405046884e687544181f45481b5d0cfda768f223464878cd858465b84cb900efc39f8537ee1d3288d0ea9c950734064c5cf2fce49f17b994424cbc5c03c864718e6f7f1bebaf892d0887e5daf3efcb65f45f6005f2afcbbaeed2745ff7e23762023bfa98f38234286d4fe50855a4894ab20e792125af82bfe7ed61f568da637c623df17cc787f7cc303c0423d8a089ddfcb5894b766cf19b50d3d6cb0bca1b4d570a4f1ebe291a69866ec98eda43e40fdc07b73df24ec21290ee208d8793a6f66cb632263f8d3b0029cdcd1bef9c678181e1a6c6ff7391abd3c4b7d5fb280e43928f81af4a1e21bfd6b0b5d75cdfe018bc0ba52bd3a585f787e9d41476a77d309e65c704f06e582bcda003e29ca43150848b6ff5faa1a18ae10266b77e4158d0c662a761d765c678541fd65bdffeda5372820c5fd4af874a56de8a288af952a928745fc3b7bc7db73486e23f865be8a0459f4b681487a950229511a7882c1bcc44422002dfce76bd3af33e67a935647f601ed55f42861ea3c4c0a2ab58ec53717cb93b23b0b702c9b844cd3f9198c092475ae8923a399a7480bf8f9f4e2af4469b226c1221c113da012659c13e72ddbc26ec2bb3ab2f3d71dc0875f0b4b14f8a4bcbb5b63a22b5a9f02bbbfee1b596bb4a5c316d99233adb2392222146f254ab9d3ea5a5990d4cf862019348634e043ca5628e9cdc6f89dfe5427c54b49ac97c860dec8df00f7ca4b7a36a37dde0d5994eb7ad849fd62498757944f3230390e45c279ed084bec89d55af541b1e5f7424ff72b977e19785a66a9f027aac673f965dc291a6b0b54e4f25bc573f296ad38e95ff405ff7d75e2e1ece7730dcf298a128d4a39d60e72d9014ca3827b3841c2294987cac0856ce3d328353883398a385411ae32f97397f8093bd766ea9159e66a15b505090727d5d08651a25a5be780892b2e3b4e974effa18ec8837a83aa83906e9707dde856c184817711b1cbb0b4be543bdf30183596c9bb8b22a836a41b231944b21958662c85b1f3dcaf31a766f6bb6752a1cfdf9f31a40fedbc1e7dcc9342494322f003bd9f3d84dcc7cbe92af387cda758d0a16a8151630101d037d7947249a2e75598c02817a7fe57cc3f1f0c4690a23378f2fbc1211c6c0042eebde42c4c760086b60acbe298a7aaa3f6fba6b1e329a16aa200f1a2753ef1addef082449ecd9dc65f9d02320ef1633cbf6eeeefc3c40b683b8583a5aca50b53ab43c8f0d344fb709dd3270dfb5c039db3dd8f0b37ce3ba6cb3c704b58a9961a9b7e14812f072b72ba0ab2976eb5d4fec7edb7a568905574c28620b573ebb5a1603c5bc1e8fbbc98c2cad14d4153cff7c7fa97804dc9ad65ec5e36a91deb5151c840f76716af732007bccbc2e0dde44d86ada3a23e6a6154476263e136fb5b7f4b91eaa00487e0ae2fb51f175ed9010b04badf425a771075e4d5b272642169c3c1e6aae4ab44bbcdd275946d811edc7872e123ee602f22f7fca7acbfad791d284f3c27bb695cf8804f3fd92574c54c2ee363d948c5a6e29e9d85c5405ab469bb5638730849bcc02341c746f6dcbb2ce8a31c0d6082a43229b1edaed697b85ef4018d58f4d6a2e90cc92a9bebf5f44aaf26c8fca1aac355bf076314879eb4ef724b6627f16a85befb76c4221e513e48c58e36595eac6b6a98eb2ad1b3d7f3493bee76a88ed492aaebf2652803948789d04ffb34631c300f8a4f6309e1451e0d56bdefe5a1cc546b133293385c2c461789f83a34cf18f08c47955dc0e610ddf84fe752946e80591afe0ca4220247370af4c66c2fabe94d19e497a832e4207689afe6387c3e24dacb5564c1503a5b2c446959e950a9954d1ad7582fdc16278c7c7bc1c5cebc95bc1a27f85ea2643783036223aac175163b62a025ead11d53dbfeb3458b6fbf87e3ca9853fc944d8ac1feb463dca21846f14e36451cd6bffa3aa9fc060ead6687823d20975ac5d4e7bcbc75b1a6a0d23632db9a37222a1981372ad99958383404b7978aaf29a33e480809de8c922238bdc4d22c33bbe86b4b163942ccbd1abf55e08ccd91157cd81110c369fcd778e2e82f9a7848c5d76e044d6053b73621cfd94d551048891f61c02f9d025a837dfccf2716775b5c5cb4ff11368ceb608480b34715e07842fbe2dab2099b193d48b3b54f9924c663969189e6a58faeb92c6e4ca549ff79341f83215393871811268bec28ff09999c0337f1568236f11efd0be6c7f94370dbebb46817545c7abfc34f022d158c4d787935432384bdc394bc42fe98b11def0eee2c2bf02cc5445540e3b180739586b0cf660acd3072311b2a4afe18ebc6c86c88cf50625cfd30e91fbe0217914a660244ee1552ec258e5be95a8de2493d6260b9ce53b01c1c1dd1b62942083ffb06a328e13dcdb9b99dd476317c63a63d6f1273927dfa70bda5da291a0c600246d07ff31d35cb2e4aa4848fcbb55455295675d4fc00fcc8a60974236a2b42a404e7dc1b44563caa46d2de8f1d982ce55a120660d1d56ad0f3c04d4e6cf441824268cdc18971ddc15218739f888e179ba331e616614291fdee03dc399d246b73853ebb361c6dd612675d7266c9575e3a0c76c5090fc5e45300b8ecc2c2e2e31f33eefc819823718f96cf819cbf08e067a0013a887cffc90b149ec60de397563642cf0fdcd144d6c6611581537b2932c91e086ec8b5f15c5025832a8d3a83647ac564c798f611d2977f30755f6a6d9bd7f4f234d9d9baa4f384991e294a23fe2815f1f2273f0e43cea7e4a10f372f1b0b4f0577c06e4c20e5b8291628d6b1ca2ad0d091a120be4bfb21c889f3a4105bff4498dc4d16e24aee88427788e9de1cf8d5b9de809e91b7e7725d61d7f042df6d639f77d4cbc68265089a76c4bf0b32193d557467becd42511a479989847dabc47becf968b1b5a8a77e9a11edc91504dc5482c968beeffe410e80f02fe8dbddb050bb4d4e53ecd3b355bf2e33d0f18e53bc10e26e39bc4af37e8466a5144c7ad25f01dd375e068d5d8fa8b17cfcc5db7a4d80c4031e1cea2fd744f6ed14026288e9033889a760d93a025cc1fd50efe5dc254d2eea4672df40b3b7371e5d365067c68674677f8cec642245ec9f8917caae915b3197321d3adc09578f098680d09fda3a2c674b2b2f466a5f989c4b32d218455944556e60dfdb031be2d17b563df77c5f3c3bb2aa3832908869d292b2cc491344fd90b20843a207f3887347b3707209cfb16bc154c8e9c766cf7fa501d05209a663dd2868bee8cf4ba02e6d8cfa7858a920ca95ad04243d022b171f805d3d7612a90f2edeafd22213700c728662f041d60e8fb278c6c966439f6a9d7b15f71daa1f0322059db458fdb8c9572cb4451f05e21eb175537837d756d23806f663a94d79360cc4a120a773c85b16b1b71f5e786ebf964eaf7eab9c2c542e72274957f60f1ce81e1bfbe40f08fa3079fbfcab4170f692e87c92038055dcf7ef0ee765b3855d0bc0d975ed749fd9498407480ab3de3c1ccc81c6d9016ee75dd0262e9734d0e3f0336dd1dcb1ac4d27f33e31ceb0a7f4d365be88e9f77d246f72ce089b05542f910f564e243a7264f6eb16674d3fed89b731d08332181ab34e66a2609f3c6285e14c1ecc7c335062335ef69b4cb959aff23b07b821a1d3699428385afc50c10d5fa8d6f9bb9e48e0626ab82db589be21012a0a1921453a3b00b4b80d459551945cdbce561e3afb0d703f79c3f84380e29d89e40f126310f19204e7a65d68f089c1ceaaccf80cfcd17831f4f0592f8e5e9947b2c1fd2db965946dec865f675df4c7e6d4dd055db216e5ad385aa073e39b4afcd9811aace1d57c5caf669f7ba3bc9189c9c027d5ba825e3ebda7d02e2072fad83b7aed09709e18c42111ad8b9990c40204b390ab1b4ab49791322def7d6c713c8155540981a25eea262b7e63cae1322f8c6fa7c8000114ef473102befb22b60ee4556e6920f38e43416909f38035e83edf8010308b18d94b7d314f58daece095ac9748d14f192ec1ade8cdb93e4748b98cdbb8a0bb7fb85229bcc597d63669791d96998feb8906ff1daa44e57735ca13faacda540f857c007222d6f621670c3efa3628cbe89f1b8e3b26556de66245826e68b3b64e444174936fe79bda5a9b0a4c77f6bfccf5a8037fc7218e39c5e6b1d21810b64738824c3ec5b740958962ef96955dfc978d20191dd00f17f1a9ecb65d8eeff450d8e68ea4032e4d5f2fd0d06016b339cdd46a6710c59318089fdba38eb4450b787e2fabb71c901d5416a855109c01f9b26063cb320592e9a8e99f986d8aa736d38b9cae37c362e185aaba5043743630eab46bf018af49e6c8e1302c15f7ae3c216666f3a93e5b9f47254deaa575a2ef4469eb29552ae4a59980f56bad6c3ad390ae688fce317fb4a233c92ad055c5d0ab48b07b14021089737b7daf9f6c8d7cdce55b05da65db4292ffebbfd821783d4b3ec96a0d67b0b15dc3945091d7e90414b77f858db21cb07d77aa29d8c4ac3683f85294427fd840966449795f41233cdd030fee0db1d4e0ec7519dfcbc2c7d0d017f105f737d8f45208fab72546119dd7e0c89d169e1cb2c5a6ce9561fe4c5f112e64d330ae56ea81e53d2d39d7f3ec7f0b8bb44a451f9f1e1758d8bea0eb38a5d2a4d29f6b21e4c87cc7d4b4a31b1a26e86d42df225a862095c4e1af63c755ff79f2b8694753045c6bbfe637472d6aa15ee7d5bb0680d4936d3b33b6073424e97fd90725555fa0f0de750e30ef27bd8cf07af4332fa57b601d31c4508aa109481e017d4878c1505c897f70b2f92ba9a7d121c3b6f0e97b07d15e4caf44f2021574946bb42e62c6fe519ea6c46e9a8d967f036fa87acf046039a943279c15604d61b166834451b1ce33f901269c2ddaceba7bf912a302886b1242ea7f2d668f7e89f0d275d1f5a8398ddce2ac59cc26f54e1e430bdc974079bba79a14057d5555b00e88882febfdb9c4c246e4129b61d046cf45e22fba713dd286e76b180af0826d0cdb675ff8ebaf9ead4dfcfcffe1f5dbb9b8adb1ea494807ca49df781393191811de51d54d315949827b7622a8df75b63b81049dc224f128bdca1e0ff4e9c55edc32696c211c4563ab28399888e6c729fb81cc9b7cb1e556a91edf2939f4880cf2423942446d3b23bb6de2c6bcf2d01cd8b0481809a2e4ef59de5cb4ab98919489370bbe631517b068d3bd70bee09c0ef2202afe19567304bf1031423e391785b5a95778afa5e7b8e24a9f9d15c2c802b816c7cd5d58f594f53e42294c76cbb7055f1742618aa66c78b9683dd3408f74b5cd26a2adad3a8293975f906efb412d51812d7e493a4ed2a8fecb482d8daab3e4d98a00631b4f3c3a9be0c540a8e6f38aa33d9829616d035650e2ac465f0b49590fc8b5f6d91434d32f177500daea92ec9ef9bd046e3c1e96a9341e1f813ad0757a28d816d50d3baeaae903e197f62b0c75d8134f81ad74af0cb53c5bed52ceda5069e8cf1d079418ac0845737a4c199f2249f29a9b4f5e314636494d7901ec6c7802bf481304bdc8ba89c48e36aa6298a437cbbd1887c3fb4afee24095b77b54cb0c0ffa513c0cc62c6fab065f310854a8c860d8267e87162862d8041483afe9a7a5d4b6a6f9f13bffb32a5fe195534841c6ad3d063c18d789ec766e9ab2e8c0fface45378d3cf8e105e330e06a20a3c44cbbd899ae832d31dc19ca06425d6eae00bdb2f742588702fd87ccf8aa7ba20ede317a8c9a88edd41171512f6a3b566310962a8f99190ec2ab29eb8dbfb7e5a2650a298aa32deef60965d74ade6619d2eafc98a05b1fa2b0b01871a6fea485583901eb54939857c1ec2ee9258ff731b71addbca446a198e19be83745328b7c855ec0db8d1d81cf5152454cd490b83ed818d6a950d8f40c907a038973d8172c773d88a5038d59052694c074e3400c8084ee3e474cf28e5dd382b0a91b6adfd97a1b510c515c0928982f0a0e5d10db5fa5779ed238cec8af63d12b4ab3b21d2a769da165cbd32d706b4b2276999bafe45ea6165907fc43676e6b7915b68218ac0fd5dc19c1067e9368b25641e2f90d3d406aeb409f64c6b37af6f127f046e74f679ad82708ca80500ad59eb5e46e273d041d00bed48acc005ed82391984e69e75e34239fdc7d3ce839a4f04cf4e746d9e196e060af84dd8240b187d73bcae3ac72917d280fc5e99f1b57ca351defb5ac6c4cad840067e1afb161b37276cd17ba2193b57b8383fb40eb6dddd306fe647405180cdf491d58c4cc0e2b4e7fdd9f92e62d3ae5febdff96e8833f3ca65a5592da9011f8f3e7533f6dd6ab4c82d60b97bf5f79c94635f6f453c2c5bbc0e79d8e7811f1aad4fa87637325d0c1ca318192473f561c8fd6baae7a06384e3e93e791eacf23a605f690b718e239f5bdf69c2f5ea5cbe7385b0b9ed30cd9284c4c69ea6aa9a1ee0a33da8754dc02a6a5e0f37e60331ec9e0b180a02b3359304fabbe8aa383b85b49202862503610824a83d473f1b7d673bd0a8e16e2a3a981a6b56f877e650919cd24dd9aecb609b05e78de6552341c294ea1386435fc4de83d67a39d86a9342660c683c754382248b8df98934b04eb47599dc4759fbfba69f0eb41a8d7ebc8d6f00b0644a4a492d65bbc719aa4ea14ba3aa50434422a07bbbab2be2b9f951a5248563fb09a32a5db56f876002d04ec8382fb52146434b9c7bdc4ddcc2c28c4141129436f60d4724c6a19a9ad54e3f838e3417c89fcd8ba2d110a0bd592a9b16c2d9ec8275b0a011185f0fe6d54562283703b0d8d50f197be656645b5d6d4c3fe5d7da743128c42870ece106fe6993ba12d28861c9f37fc0378d7327db1ef494238323973237999ff0005e9c98efa03e3eb93efb8dd4209b552ffad64e067cb036d1abd2a4704de3dd4c6a6f17326413079b22de5848d844361c40044059adce15ee6941f65ca98f937a27745c7b1c3821ea338ae6cd90d4f52f10a1a176404cf08064bcdb84714619e2eeb84bd8fd3646e35111eb9828631cafec68962650a95345cdaf2051d259596aecb531782b87b6309e3c8d6939272e570fa581a0e604f01b29b14dd160d2af7b275ba39c1d0face24464087aca4528b7262ef77e0b8ecb9a492f7ef28a9a8d80820a4d65eee2c1758fba0fd0d5644909858de6b8550affb07912876cf2e0c607ca462252582ee450cd0040b5ee46da8f6be57de96cfb22cf6cc76a1881947593a2129abf4703167548f0e5bf38e282af0fdaf7f413a5e4209137322588dbca1da398f93e24e7d375c0763c0bc3584a06e01e12820d6f5d775b3f7bc865fc6625dd61299992169228e332b91150cc42d686e0accf27e089502a69dec0f2b301ca5fd917dbfb924910a8d9513196adebddfbceef4127401e4152645996f52bb7e37d0d1126129ef884a5c51fa46c7fd08c97d72d9c7429bf8533590dbc1949b164fb7f9d2a6dba19907a814f18ab100667ad720fadb136426870867d166e8fac5879316095458221cc3061739f923f86c962ea652164d4287cc5f75829ca1740fb0159889d2cbf0c086299955d2f8ad699704571a7929ebf13e30a8d4c0879a308973d3facc029d6eb86f58c89f521a9e6650a81468a56b409ad2b4902d606f0c80597fad99a64e701b351cde7bc0ed54a9f8b47118dea2e6901f9076e0a1eee5a8513905f82d3ef458d42d8bd69108c4ada2b93eeccdc4d8cd7ff661617982ea87d70071e22339daa989d757494603bf21bc99669b21d7c1dcfae77e98008b8c70f7b8f3761c21d27b7aed5c4c46a739fd805a424cbc388a72bd258e8692e0ad85a7aa3c38ee6dca2b284450de19749a4ac2a6b9fd62162ed064b839116f489aa4ff0250298ca5ae2f7d33a171221cddb65d4cf3e4f1f6e3399a6a79557700d2c41450bf852be775497519a5b075068513a9bd95a0702d93bc2e4b0732a738a496830872183665819d1ad7d3ead6cc5f349090976354699abbf42de4fb1496996aa502fe72e8e54ac63252143df5bd17d3c6fe9f794129e6000a28ec8eacb1aeab01fa8f87613f633f80f318c7045c96623b66f7c6a740574922187b2c8f975e76cd11646757e3c0c1ed26cc7f81df36fceaca0726a8567987a71a21dafd477d16324ace279b505e6b52decc7a6ab0c8d051516dc4ca67895632136732f838e275a20ed32f149e28ccbe0ffbb08cf061c7f6c396e13042cc57f229a3d945d1e2c5bea94f70e1f53d326c33149e84ef0134fc10f690160a35741b47dd0875ee9ced24cab248dd147ccf78c65f45f6b503d032c9c061abb95b3c529ec3e0746211871307451ad7cb5e9294ca6b6f1b7d605ee7a5400e8398c3e05e1eaf76d66f0e75f45701cc73812ecca344d9323034c2a586feb39421c9717c2301b8cd6b4fea5bbb96fdc0ccaf7efe25bd381a76fe65aa3e52be5b70bdd3abef41da2df0af0d87830463039362fc69e0c1f6787eb2ce51f7c268443cbef5a9d01d2a8ba12f4e0500c6f6a5b2bd8c38e56358c12c5947da5796b2cb3667096e6a9818ef36e318062064329e3075bb5c91b887ed69b235d011b6b19d56263c833bfac7156cd56cc1c049ec98435379808457b04dd2b13c6b5532433cdec1dd94ea4d70b16e80a5746547908b76b62a9de7e02b4dbffc2e7d26bc4b9bc1ced6e861e1d305d656153eb510e803fa0e06179072be00ef6dd15c442988d49d396f420ac8c3cd713c70e1edbe73782762c275ae32e38fb3936d767af4ed54f8c264e76b5ab49c290906bf914b521ba0cb9514c1cb28cb0430346c7abb9b25057c51c1d9b3612e5a0acd87561abaf15ef7836374e99d8106bc6ff0d3c05932c65062d58f3084569a813c78c16c01328ca7fc93f3bd4d6796e186c33969aaafef785d8cdbf694829521f723edec362ade30cacaed7ccc9e3cfdce7f06c06a02a004f984796ba2ffb594451cac244a31dafe4f313de0d3376aa32e1ddff302cba35881ea51bb3476adf560fb9a05c464560d1980aea5ef34491a905664d526f6b0accf892154424e86568d9ebb630f35336eb6dce00d3aea81dc235b1f5c26f5bd8b901e6b6a34edcc3c0499e277510262c8ed24975d28c7411873753921ce7f5c54da924174fbff8b1eaf29975bd24bf4d437011d5e67dd7f31429219e3d781c9bc132b19ad33434be9b13d0591f5331de08e5893dcc7b6f33e43d1b504eb15364a2ad8d294597bfc7fc549487dc25ac54d8dff102a3b4c73889889420a2db0a7da182aa26c0e8fc6336204a5e6fc508f12dcbc859ddf2f750e276ceb1f62daaf1bbe9c43bd6cf5ea4eba4a3f79cd25f136f1fc360d1d3c4404b9ad6e929d232611033936d16cea958e84ba7846fad055591ecf7e57d1590a4ff062c5548225019351c45038591b46a296ca6b41af7b0f2cef052fdd8c2f380b09787f7c13c165ce5af8174453bd9caf4f6ce6c2d6e941f4d7949b04dfcbf7056cee1cc314f505c02d7db08ee73fd3ced27fde060286d20b3485d8b5b29c4842114a7909fbeff2be9d9f246fb20dc88b11a599abe1d1d95f941c29dcba451b76b25851ce6c3f18eef8fdfa88140d9067a633a9384e3d08f25d0ef7ecee27448ecdbc06ba523fb0ce0ea5c83af7d2be587f636a93e0a5ee58b8d2e95a17ac632777e60715782a24ab86577e2fa1b9234458f0f1891a01213ccc7cdf1e6aa2f314fd63ae4fbb6ef42b86f9adcf9a4d8e8905c229491ff3b7db51aa9935374981db58b4f87ace2678c4a75aeacca2c248788e636ee9fb53cc876f66ea21a5ccbb39720540cb87db7c4241d8b097b2625bd5175329e07fe52525e8190e677d51679a3188ed1cc2ee1145fa9101e8122958599e74bc8aa5bb7caf99e2a81009dd74a162443e6dcd5115c0b22ae83a80fb6130813192a88a195bb44bec8e28fdab77a66696575f6f69697cb94fbc4c5f335f7cdc0e4dddf8c4e3d3cda4184377ca7033b7c049b7734116925280cea10169cbd0b3c4e0327e127f4366e544f309ff7187383b21e1cc71faf58dcf8a01fab268b5ec1fd692152cb74e906b5453d95ae9135caad26b44571ae66d9ad8f680cb242819391a4f5f545ad20a3bdb7fc7007fff12a8a085bb810e7e5d6ca350e9cde21a12ca809b692850bf36c37d19b1f54ea690c89588fb798c27f78b06a1247e7eef61ac901009226d9bc5e1b0c6b90bf115dd84d06c164187231bea89c2574c4a007fca4829c1dcf501b81cddafa83a319037f5a950572bef04566d3c4c7f867d19d60d4bc63cdf711dacad360155f7920e498533f5c2f8aa3297d33c20246a84fba41342ac56ebe3327c38756d225cbab8260c2343284dfe6937a46fe01f08e8dba4b26503b2167c142d4757a88d349e6e24f207c4c0e933384fecb573712c90e1849bb9d6e22d5eae2ce586ecc83df642774e8f24614a0c825dbff58521bc75aa349e00962624257ee0f30576682eb1faa726b0b7398823013eb6aa04373b78c7fe5d6698ac9162148412c2061f575e92d539d4f326a43bbe6fe681a4bb6ced3c737e90926e827797573351628aee5eb8c70175f1919a1a9aab0bba5cd03eae0222931f229917ca3f1e3821d30f5a634fd1d32ff0e0e275c9cadd9de7d174d885255ca74784bd89dcec2f96a6c80531ec824b07d3773c3752fdcc73448dc138267d19cde63bf8e94e4810acac7e9ded5c2d69639e48eb4090509eab37844355ba37ff89469808fa0a9403b2bab8b8341c340e65fcf3c5b9b485a2e7c641955c096e148794e6eb059cd0a69e2ad74b0ddf2fc14cbc79b7d3403881bcbcbee3d1500d0727602178bb1faad04d5840706c0ce1e3074f7996f18d54d2a729d6bcaabf71be191eb99624c7d6bbb1279d55533ef2c4724c02740b46deffcadfc987b7fcd0b644a7ecdfe557c5aea27a256ebec28a3781edf4c332eb062a6df7d6d99b9f746f62b5b11817ab9b7a81bafc278c1cb19a4a8ff200224f9407244bda1850b4c475fa6a2d557930856b52569ec539827d7ae936deadd51b97fcc8f9041e223c22d73acabcc1c46751844f3f5a27d55f1c353a06edd6464971e10ce6a0ca6eab9103cb3c8d544666621f3268e197cad2a04dc7cb467481a92c349238e5c0da6b356be70dc5e90b56eb4e9d4ce2ed452ca7569d7236507b5f21aef2dbdab2a4589860f4ec3b8c6bf67e962367b594b676c79e538eea524263ec77fafe50f9c743c8093e6fc3ecc816eed75bbc194ea6e9d70852d4c55553ffb575b093e1640a6f406aca8dff491a1d768d5a4e01bf7a73ffb93f9f3fe02c55c86578d2057bbc17a4cff923cf4ad4843fabada76d19ea399887916d54707bd775cbb8b63a91e7e6482b316f448d92592cc2aa545c75e30fe24e625f86308fcd4fe0f37e3578e17d9122f1982dec08bdf63d7866c3aa6b0285a01abd6d3d25d2ac05302e28a9c1f017e08b242dbd87669fd8bbf29dbe77cfe369f070d9dcf0577f70e10c16270049a8ef227f6289a31e2c9d419208351e693e86f2877f48bb1f7c09442338869a040bafb57ba2025f42b61340e36dda9077a46127b23dee62c190bb39c371cb77929f1dd0ca3f378c43c9701705c3d530d3b71741cae9477d2aaaaa4effd41568d6c614d9866346f82911e28a1ed415b70c3fb88c47b2ace018cb0c7a2d374409ab1d3316aaf5165b0b59527cd7a06bdbe5879b0dc80ebee5a0729f8f6ad5080e5b87043b9715d3f298d93e24ddc8e31cd499f0288f4052c2a852f31a14091de1290831c090222a2991d777986108314e8338efe00263fef96e56088b4e0c8762c96fbc4e3e549b9e4c92e63599c4395153b657622c0ca282fff8f3297fce2389e3d3a0422ce34a7e3382b22a3da81afdd4962a92397d96e5c1eb8b59d3d8e60693da4da74bc1230b43e75fef0a5030824e01c25cfd626358ea0c4ff3b84282aaecd4d61770e247ed8ea7c1f64207fabf3c03b7c26e261b8206ae067763b6681d70a9d99bd21411e5b97dd83d2a94e7e8cca23c0326cdc064752adae849855bc9998e68f18c69242f7e77f9ad8b14648060c1dacee26959aceacdcedca6ccf624549580b3212d5a132bc4d57433eaaf370fceb220051d8b77ed0aee32f9a9ed628103d773f26f7cce22d33d8f71b75b6e2448b83716a5eb875a018c74867fe883747e072eca1e1e4557c2b9c49b6b76239e11872c3d7f60aae0546898d248371777056d7153ab0cb4d51c513b8b5fc0f4af91c1cbca9732128353a3302bffc98a46bc2f3e9e441ee139e91b9c1e8275613ea720b0af8ab7531b6cc1aa1e0e21c7918551d9a09f5e253508777ab49480e6656b9f120174b2a5d3f43657ffd727f87d6dc3caaf4fdc070fe3f550b37729b2f3c36c6a7a50ce12aa413663644a2bd024e4cdcf09af98061f6a6bf00487909deac58cc1faedd34ef50abaccaa825e4610c855cb4d575c995463a4ae940689d202e85396026c7df5db23069e6f829fcec440c8a4ff297270b008adfbd59ea4042505263d374c0913d880186b16f46d4c3369b79509e98a6fc7f6bb453ae9816cf12e23f9e512eff83a8ec42046ff458f47ca719d355f4beb456b1c3dbe0cb0c43950ac6d7977578ba7d672b26b2dd1fa5ba51eb1b418473e65d3b19a5e6ab95f849fe99d06253a6695f9be18345e9f19c10e29c69aab69e07aaaee849a59270f8de1bc6ac10a4373d1f16d6013cc593d3ed803045f9010ca6aa85890f8f490fbc17bc962853ce1cbf9ab763ec020a2fb894b90415f8a57122d40f42181f606bec4567cc35063210d02ed16bbb7990f4bcfb4b1715ba05966536e31ab43a46e03ec903dbdc4bd3595b2882e0bb53cfc3f32bdd7c9f6a4682d7bd733d0cdcc9dc2c4003668a7b0cd7c26e85a9c3e1c14ed4595893c394f7decdd36900ab6d349968b87525a63e79e804ee08cad1aacd8b792ef3b5910e361c1c11cd9c316ce1b1cb2336f7a8704c2796cd8128bd4258a8514cbfbc1cb69599c06fd94340aaf7b526233d47f44e2c475994051aa3afd2881bd0db82e9e7a45359c8d778d3584e4cef4966e88f06294f94058a36ee06481dff1ee336521938c970a75f8113ac2d34e76e36e5387d19f7ca1441e569de272f20932eca3d0ff4286e948a1d443a1a5952d7537f925d2d7b34f7730aa0bf4e510d23079bd8c5458e866dcacb67d89f0c10db2c46c8de26ad6b36457950bc321550bb637891875cbe2c4ded125998f3145430cf9ada56a61a0878a65ac3fea73f7eba7425d9c2d2745d8c952d44d01dc70acd47657f85c7b795bc6128f8f495c17988207fd265bc9728b20ad50d1011e1c5bddf11d3267f1d013fcd040a5eaae19b0a2ffc625a4b6015cfd81f36336ec3d17ec22eaa8b2fb70660c1f4070f55d5ec45f58f3ecc0fcdddbf09113c3822677dafcc671cd344047611bd42fa5b4ddf4d8f693643554e5de2f30e6d0b7d5e77053545497be8f8ae1e3261d1b39aa5422e5446de29b537b6191138111880553a365624f63b8826fa81fed26fae8b30901585188961e0025aacfe42f7b84bc6e91a674691d9ceabdb31c23ae22b23fc23c90a8b949a36e5485cafd574f7a75e2c6e138d3e67152dfee38fbefbc589002f46386ee2f72a090ddf836d90e4188a6ec940f6d3ae2138a25a1fbb42ae311621299d0ff07b62b59c3e3a55fb53146f919732ebfe2bc07677bdb24708b1ebe650c70e1f9f30174a6b1a7abbe2ca7262b1fe392e34872c68cc33d68ac2d179192c11722a3b5c57208b078532f52860314e880c4cb7a9978f226736e42cba20daa6d33754beadb0fa6511a018c88b165433c97678cea6c373c8bfdad10e3d6d142fe5c712e78000a9f76676fe35b92e13d13ac9f98b349fd8235afd12f608d3b2fd6a16bf29e536f9223cdfefc2b9683596bf64117263126fa362f6fdd03e81c640400520e04d9a54bb9cd53a82caf4c0b12ded7bb734c80944b7b0d97b4ca805138ef5520a3f903d8547d45f24bd1beb7148471cd9c63ec0af5607b1fea587fdf49d6667fc101f98626071c99b7757958a13a484527648ee6c6037668eb7f2281ff927c91e39fc5961c281f5acc18e688f606312fbde28d700a5c9f9a786e5a0fd9f4b1b04968c48f54b274f232bdf4cba224dfb58a9366a91bb6c4b5c817025e0a402fa9a9544290640a4fedcf67e81cbb82f68417d0c8a92231758377b3f3bc7cafe419b140e70ab4aa6b99f4a0331de143ee6a62180a0f1740e8d51d3b2dd7a2ed14425c6baeb9c9a0e1bff0f66471e93dc364398d25554d2c344dd3ef04a2269baf0554f96ec7aa0e40f6bd78231fb37b7a7d23754c40288ed41cc6d36d4efdce7b325573f47125a8fca5fe3d3bfe48bb732bb5ba06b8ead9808b6a2d4c6e398e12501a45a7a627393223f4ddb98eb6f08b15d36be3b510ce52278109dabf0758a984603fc55b101eaf6c60f61ac611c10f6a3a39b92908053de857b51b519f9dac5867152aa840c9536f81a884a51b097e31a1fb76f59c6bd1ba374564ed91412a63badfa7db0f3fc1e6741914ab81551a47e42a8462edbe572de510ea06d61c0c292b99ef19ac9b57355df339703a694fe10365b1b24613343978316b8e177c22b9a0a4093a5f8984cd90e12607b0bbe1d322efb8aedb519d629407e26a59a2fecec9435eec25cb6106f71548e96af6f1f5572c4f54e1b4a3a837b54983b5409d86cd1f4e6985b8a37576c5d388b879cf55e427c305404a87ffeba3728c1501e1eacdc45a2a12b8d72802a965d758d69a244c0f2fddb1795e4f24fbe60c1301dde86e22df6f28c9f257647fab539653b883e3b63805d9770c31f32cdf48c951ef719b0c5895edfd2f6b5e8821704c6c129e9b11623993d187e3166b46084875abd671bc3c76cffa3e6e1708df64484f2cb73fbbe9cf91e570338b2dcf6882e594a4974d67655d78c24a1bc972be205e041add713bef0767f84e6faf172e098fa99034400d7984c71e645e99cf3b18b1c611c497f0d012e015c0126ede419c53bc387bf8472def46986ed2c748cde0914f566bb160345a2a0e076aaf4656a3869fc5f53e2d9f86edc19b1aaa9ec61bfe7d9682ebc16249f5498f00f82cdce9701fb8c3bd77e2d9c43b76d61a1b96442a560aac92d9662b467cf8ba958bbf8ececc6a9587bf337e69c106ccf5bd924bfcf336a8993c5a67f318ee6114ef9bf4509712798e4209518f881cf39c79b3868f4d4e3a1520ea13281b07fbc9fa5aa31c38487c2c3d44e379efd204737f41c6b0c5d4aec1b9751be41b686a4bfd6e78496c64bc9cd2043b837baebb649cd74b638e76b97b3068347db821b5f5941b3765ff38bf7e85e2879a27eb615ca5401a5edb3652c51cb0031849858166647e86f0a5f0d457408b5bbe02d6a4cdf306958ce46255459976d932e7e91f01d749afdfa71fd30eee0a77871e4ce52bf2c6ae8bb8f2ec45e3779a1ac49b7b6ef563f71a5b4fb071a23d439dcdb8666fb896f52fdf4135338b9f9274cfefd0174adb4dfd6d8e66ae522e993f322dcf97b814a5fdcb49222235ca1fb7adb5eaacd5e315db01d00ada1d6495bd1c6b64247bef85b020c86548e9ce5db0fe81f6a013ce43769523366d2560cffe39fd529a6bf8cab8bffaf97ef4313ffdf38ab4a90e2aab89bf0fb5c4f5cd74fb91b61503b5134cb6aedbffc35823c8933711e5438588513eb999f09e7e2876425633c56d2e977702c906d3b9cdaa7339228f5a2e1e8cd5b8b8c3aba09bd528740035b06757ea122542b390275123250a422805ecac3c7e8b1b8c7fd12cfa80c7c0f31e8864796b5ff86ad27547686af73013a14486ce523f61b7f61ebf884b843cbf8ce85b4de922976908332c563d43bbf76ec2e44fafd0f5ee49d7c44c9f8a9c88f4a541db0c9589cdb292d280e505567b82345dee2631ccfe83305ef411c9eb2f066054dcc112bd04b4e9354115a9e575c02e63c628c4c83b45c1b15a1cc8c5ae3bbd594199a8331f1a31da7cdf6fd4889b87dd6ec8e3fb5c7407d5947f21557acee7fa92ec9966f1078abcc8adeb7812fbdacab23f5bac51eae144836affa1b67e09315125dd7830dab4d3c9f083ccb77d06f62a3bec31de8d13eee995a63015f7d6c123639e39f23f9720f5def571fe75afbaa9c7ca9f0963c6c5508bebef785902cced83baf63ac1bb4e1138ce0bb194bad9aac21f3fa6c906f22ed1b877b929c6631621441f8319d0e41baef3e20732d55d390486d97e85438222c58a971f5d603f986d03b65edf280574461cddcf8bed8ffd1492d3f231d1b73683f33475ce9073aa00f293b02d38be6cc054c3091cb5fb642745170b7268de7a57187ac2b71d401481be7a13661beba8d07bd8bb602684163799ce5185a4b46bdd3354121c4eec7dd54bf762af0fa4e2cac4bfef0af98724a6fbedf6e88664f11e1242d83c72b350f630148e86f53e002637b316902f16af6bca8e0b54f10bf4ba9672d14f58c1f7bd36dc1d93d5df9820300a4e868a32e8ebdd19deac2ed5c85936337babd73e941cdcac19f458994aaede0f3e09112aacddfa41c18c689ff97b79ae7889486e76e4d65833654c1d84c0c5298da290f71f3660cec786313729fe7ffa814f07d8edfc8a1a65ef24fda3ef3c4e21d615b807ef3e353fadfb1e16837977b608f586422992566b53767a8f83f0caa97f742fc7a03906f3c0a0e7fd522d7e6c5af954e9b93c2ec4ff7be722dd5f5b2ba4c45c3e55ea24830cdb18e325735ed8c87a47456e0de21e2f92971d4c5e8f8837e01ef4ac5ed3562dcda977bcbaad2491e7fb8785390465bfbd5f6b6f9481409be8e8406c948cf6f27909ae2183e5d5b72f24837d2d7bc76c22a7ed57fddddd48bd866bca02afd60c47b732ede551932b49137d460654795f8b0726c86738d02f88f1e96811f7dc75856b50e50850af05ae595ac317650266e77d6415f8b2a9cb333438ad9cc92a6ce1cf00edaadc0803da71ae4567c053c9c72a5b61a6f4fadcee5ff753754ef64af0c72b419d722049ce7c855530f60763e1a2391dbd6f47fcac904678e15a7ccbab4957a647397a6c910ef97c6227798191cfb1095df8cbf3a30188f6172c5509edc5494e2083a776aa0ae2ff1de89630535f8831faaa11ead0310406c4f1b525f62061eb379c915ba89039603bf2a5b14ac692aeda2287ec71181d218928698ceb3aa09daee8dfe69af8fa4fc4a75347bcce44639a009a56896903d87cc487ac5308b523395393ab97df98397765c7fe94b92f35aac00ae75fea1ff6a32b3d6e9b3a7900a40b31e9384457d848a59bc9dfee14bfcce17412ffd5a2767c0020ce9378af134a9516ab19b31c72dcf0e80f4f3e6ee3995b4547b751eb2078bce9cdef26ff7a9e25d19f5c838c240fa4ccdcbbaf8d22fc6499649bf1b8497b1a9759c8c0706ea652924725237c5f6e7f15eb9de3b619b58abf9a034d59225e513bd718c0ec317a111c221f741517bd0a00239203d41ad715554908a343336d1e10d741167f23ca04be75f537387073c72c8dde42a85e4ac239340a8fd41bea9f8cc087346164561b3e22da8ceca939333a5ae6eea1ed4ac5d3952ccd1b7588ff8c6891a40c99737ec6b3027af8ce6f9aac61b30faefde6235e2ad60eeec1f0ecd433ec30d8c28dd03293268cea4aa7ba0d667698af2d82593b4d33dfacaa3fe876c8889de1439fbb56c204822bd628356e7ffe277cb9554e86a6b197765f865cea5739f045b4bccf170cdd08e94c6cd1b2484359807bec9d5bb48364b0df498ada3a3749ea4d8ab174f1f688ebeca28f57cfdfa36d53a52d95b022591c120142f8ee9e4b575ac298d3e51702a9262d8b92d090cc93533513f2f0c894ed0c9a6e5886ef15693cb21e329e0ff826a622ad0082b8e5c7e823cbe4e4f3768ca9f56f293f8ecad565bb5c10502d6f7d78ce2e46ffdddffa0a4abf8141e8e3fc836745c94941a8ccc6d25a31bec9f80c3b2fec4c7929aae1665b1d48c12e9918d2398886bab7b22f0c03ce8adab9cfb91176860a6feae2505b58fdbe1a0f920f1326369643ffea294fe926fe95dc04beb98b56f88a13182e971ad820761a7ce073e04b089b0d1824af38f0b42f93bbe46e882fa73bba97181fcd4d8fb7a43bbbe98a2fc55f381f5aad347d3af7427640813df118c198d02b846f3c896842807f6f3febdde7bfec920737e8acfdd472ae69abeac9338c427d1f54269de85069c9878a37b9a13fecbc3d2f619fa33517b9e3890c94fd18ff3738a4e891d26d3a3e21ec55e7983e1171e41dcc874ad56dab13c3ebd557e2b97714dcc17f30fd1f0b3f5abba63ea46f9e6497afd1b12bb2e707f59387a53569451749a8932ea603c853bc8a63cd3d64e0ce4673f0b030edd2f4f42927eb7e76573890f07679d37030116fdfbb7d384d41f769ee0a11e0a1e762455ea739cf7e77542944955a3489648bc4e7d24aabd26b2451461a42bd89c126a4afc99c5fa3af0fdfe7baf13c09a4f27fcffc320cbf8c3be31c96884c6134637f7d8e00076aa1445252c5a0a25cb5d2587a0db9b9676778190f080a95c4bf0579eaa48cc62da846751260dbe0c26abb7d0ed4e971a55e6f818320d0a71bf225e78e04283f1fa98e10060812b783f7710f4f8d50d95c744dbcc8267312978c7056fb1a3236d5b2c43ee0ce5ca933074fa0c65614f99681080084de9d6b3c7a4f030b3702176dce7af0ff98df7e08c939bbc1ecefbc292978976f3c06cb02eccf61061c696f3ba4576996cf9ec03d61c45c193dd473f0461e5e6984c750ff2b609795e643700cd6e1c11dc1a03e89724a74cd98cd5394ddbb47d1aa439ba1f95eff82ad2a72f43097621f2ac58d9fb196676f8e32f2e4c4add73713d35100811ea94d88686cb0187d8e4aa0b182c8b4808d5cb73acec09a72a85c06939a353f6dd68be5b57f96cee1d6dad98eb9837128b4c801dbc68db8a9e87c7994a5cb65ef7d1d5ba16c167698a44e0b18123d1af19c98412c9f412f51d9f1008622398f93c92e5a2e18caf893b36dd5aa2e114e217a0c12b080fa0b074f1f08b5c66dd635980a71f40f162c67919f7d9bf6a1cc1a763a527f7627679835b2a8ebcb6ea314febc04f5ff59dada24926a0e15fb1f702c59c6ccf1400037082fbb416d03bf12c085ac7038b1917c22301ffd7986eeba2fdaa72d451168445ad0fa706e717fe2da1a994033435ac397e72ddad610e7f981542ec92a8dfbbf50b5569d9249201efabab19b0824b6296340de7c22de78691d3f5be73d3c310b2560cacb24449701021051baf6c48c66b9c27e9a1acec93e6e7b92567d31fbe5a5845773702d78f289e1cb7edff4e3c0a22d9d18bc909c68d5afc9c6ce933f3bb326fbac47e2b9425b972b24c970885478fd9ef0cbea187e2672588879b6a993c308b8887e5c6ea3f58bc6f75e0408006b4274324f0aa84f2b42b313aac155cb606a10f76ecfbf8c0a2fa04d6c3a9f9effc65ef112eb562220549b5ef1ea18f5a816898776d4c47800f8ba32679dfc228c86078b23cb707a352b8d4ac23d682ccbc20ff675a7fd2e7328c6dbe287fb21bd735cc657af437e10047867f5f31f758fbc5e2250738c86b25ed1711a85b85e128ff0bcc3f74066480f08dd465eadaecfe8b79572ae7af53df8efa96b41a1f35e4dd85e4304ec23eb7b0d8cd65c5d0ef711912c47879dfb4d44f687d80a62c6494e3ca6f7e84865f951ca60a867d18a8a860bd3c060ebf74c86bac787e1d20ecf621c3dc032bd5ee61c315e2527dd209c075184d25e543f58c883ab431846dbbfe3fc6cc8bb94511c665e21999c4ee0590730e6f602705cc57d9059f984daa63c5878adf78f9c9976ffd67bb3da623d7c3791ebabd8913798f5de853b41b348406cef0b7ee18528c71d554a094ee939d867a0e1f03117870c9da1e0c0fa36bd1437d1f3500d03ba51432edd92955797d3b4c22ccaf3ff4f111209a5e2d3b88cdad13594a4afd0b74efa9b1e2aeb4f69e605b4c3c472246fc8054eaf1ed42cdd033ec53c75c81cb96b5f7122111c5c0e1edc65286a5f9a1b08ef24b498e8c98ed99b249102f0fdc4487c07f26c11dfca9e707937cdc21a13dc8c058f9474bb1df6b0635f4e9bec03f9716a36c3e87e001b236fa8020b7ba90339f01ffe714465cbbe243ba1707058887311da819c89425e38e581a3278b446f0a9bdce321f6ca1ba978bc05ac736b7090abda783c1656c6e87f164cb6eae5c7c7300cf64cdcca7d6ca966c993ee14234fcb4a5ab6e482c3be54581f3fa744e4a90ba00c14c157dde46cc802fddcad86177bf2412e3e785c45f3714181b5a057ee15bfa050ea04fbe3395c05e0afc4706d041527e7576faa06659d5acf97eae239ba645085f278ea97b90ceffcace12efb73a16fbbfa225bdabe22197cc311fbca8de75d5e9f3b93418f061d90ee84026ca47a5a2571aa30841d41ae56974c4c7c1ed72fc2d78a303bf0adb416f54b9f16da9293d7fd437fa227864e37f5f435978e63cf711b85d14ec6231a23fd38af77394ea4e55ca1b1ec6ec1b39bd0244976e86c6c391ea2da5c56c37b418b6a4d7ca2fe7e7c1157c5c14a5299534496ccf7536bd7b068248352a56645ecdf2d8c9cba52f52a82a5cc060608423d016b3cc0979c068c20e95770150dac90453beec52f4142ba25f16b557a2df3112867c54c9046947b5abdb5e0f5b427a36a17ed157e507f9642e55c7a72a27542e0dbcbd586693f9d972a529efed5f1c339097564c21a2ec7026bed436e1695e33df6640192f0697c507eb5aaf2ef89f3e1cf689e6394b377de547fa0a191a4aa4867db656a4999a2afaaba94e20d32d7004919f09cebd50f9fdc080d497af7f935622fdc5c50f7b7dd80104fc9f3740d2183d1bf32ce41dc7cd89253ad2d68fd27be91a244a8d33381afbb567de99992fe4c4e78dc81074719daba997015d3d603a1ea4eb7e91e9d53e2922930bb3035432e3f232d831ba0574031bffeda9ada30795291cc8fef5aee59c20cf6948e1aaddac9d3044ed57556a33e0c3bfc22dc52349ac62b2cff143155492310d44853d19c05e1d489727d0be83b30c58d548a5191c35a49372da4e3af7cd4f2c5bb7fece97ff04013900b44b714906f681ddc3e2485fbfdc4fc92752c818242928484734cb9d0e643b61c0c0acbe4c058ee8cee22c99ae180102efdf8d690403a084f5617a6235768caedbdfbf6299b283ca950592f411499b524d821c8ba62adeda926e02fd9888b99243c183fdc6184012be1b489b05ea958b98fcefdb90e709f219592b179519e528818ebe38739ce39a6beae5ed6d44b0b82e257eb3cb436ccf8f50b7d40ac880b4aa9aa34a73aeb66053a7c680e64af05b915805e2dbf24e82cc0915706dae13bdd4e7817d1b1f70d56f1551635f777201df058f6461c14aa8a3822f8fba3e33e606cd58737c79837a5c7550b8a1a375a6200ada6fd49678dd2ba928c344bacd594d49a10762753f1eb4b649d6249ff5432111436b42f6d50ed52ab3500ef09a368adf654b087e7cc0b616e57ac4fefd6bcec34c242354b773098f3861674d9b10d0cb38a001f375ddb38a4773f691649d8d1183acd54b7c7b2fcb00891367aeaa2cb4dfa356f9bbe42f4d2710109bd3bb23cdfe0e92089ceb002abb8b510f7a06c603882e3f6ed0b687a026ad771f1df0fe592cc17f94d59010aa68791804c059da9ec14bea6b5e7eb5861bd688b328a1e145b6b85e699fb99a729d962f6a2b3ac0362364b3411f435bf307ab19c3637d4b3c6fc26dbc38d23b91307d4956b25431dd480dfa3fe5ed1e6d2e264d61604e0b978121d4d19a89ea6addd05f40c3baf50bb21eda39151d97a56ec1fd79bb32ad00f156b685a2d1884751c6a9c34baef834c5ba293837e75d0d9c46b93022ae75cbdc1fd507dbe6d0591f96d66f1ca4bd1d403d84e499b6602e946904b54f3324ca2a4012f4c422276ec9cf4e571767b7acb02501984e0a2418a87367957bd463db2a489ff6e6542275ca2a180a12f60e882d64343348a02ed034ddbde32d936f58f788563d7155905b39cf3f1e54a4db9f71143618d5bfc418892112317bd4339902a08e751067448a58e2e48ee7de01f5bd96131ad1872b8da0595a1a685ba72d29bde7a352f38707a7116a4db666a149c67b787bf0a8d5bb3882c5c5e6d65be28ff751ac74b06fe05b179450b04e71a61882cdc4a7eaab11cb35c35f6588c495b5d12d8ec592f9f1aaf8bae703c869f9a1f9a537a4558054950eade894c851e2d1055c9381d39b9af400fe8bd55c42b14a1375e3b34612164dd2c265ff4d4c26a48138e299c328a3d2c51308f7c12f630975945eea5e9d1b60d3188491ddf48358a7c6bbba4184f68b0f29e6e410f8e4e2080423af59bbc0947ab37fe3927b7ae2c91350a424a22effc8387cb184fa71e6cb5f94e04e5619525bafe26df20e726dae880d1490d84f7b6eea4f0dab444a7423c717eb84059f5f778a6a548903dea14c9d60dd222bf3a76b0579b415ac67e7b8ee0a37a961a853e62ce44d47adeddad8be5deb66b9b4e48e580156f089c4784abf03cb7a5e64431825d0683a73e274e55e70f169d103f2d22c49a68409e65e0b647746082a0e53b79f75a7daf3437f11bb958d404ebf29a1f3a6193d34f65a4e6799d6a21aae27a4e1fd18b9eebb266fd5b7f175e9461f733ded43d0c8a93fac1b9cb4ff515a14212f2359b2359dfd1e5dafecbb57274209e4074156655d29eafe13d8c9abf639850a3b43f5119662a86cebd1e5f8f8ae89f4744b1d6f0cd64d4b05321941d84b853253d2feed184bb9af9ab05f877f99268090008a64953b04155a11418dec79036a75dc2557ffaa681b7d3b57d8b9256cf0801f7d665affc739d7feeeba0db42c7d2c579e84c505d2137892a712528e2dd5e5bbc1f83ad56216b283c5160f3a639f4dd750cdb6d281fbce6a30b594ad62a9bd07e72ecffdf5741080f025b51c5a97537fcbd14c3a26560b223832ef74704650bc315c89d4dec076f7d3d91fc5f6e581ff8aff6b33cfb0f1ff25e94c63d6a270df74c60e669385e331de42640663b964677fce95cb928b9971bdc762e34d951d6ec90a8289229172d8fa43ca5811494472c659438b0efeae8ec61afd79fe4f71855580184399fb8a4f23712f98a0f11cbec2340aa0ed15baa7806bea060a1d93449707cf5631918f76cae839910e73a32334b3df291e312bf18237fd752e01ed3c6e423cb2ab76eb5a6cb33b2d65cd2f69db6de9b4e3a2d20e6f84e67c0384f372c7905a53c857e7b4d73f54c526c89656d8bf4062b9b79eb40654d35eae250c2beb004a25a1ca38e922546182f4d05f20949e648668564dc4ba6b3a8876278332567b554da8fe719ab8beb8ecb452e277b69ce430c88eeea6e2f6e693e01f3eaecf8c0a226ac7b84501406bcba4db721f291397c82e8a6c9d38d6cb32b1916d005fc97bf3b8522f13ea02a2f418007963f536be80099e460e95c5939612f5d85428872092b55746eb83e55d4dc5eef9d597a4aae127fb732e44aac7562de2043dd0fe1ad9baa0dc101fac64bb8e3d3edd9f05687150a4cc83b2d4875a9905009f0c76fa146e705fae3b3200e3964399c7e2d4b4cc019bbe62a25179b200bb9d7fea01ea4780e473d2b124d217643d859ab344bfc9834804e2ed45698aac7a14369cfafc293e3a0342a7b0b63b874a5d3e428c36d7a0e10368ba086d99a1fcb10f9e30e038e58b1ad36222e76ffcd78fb556b57b9155f4985c9092af43a46176b5b7452b0714cfcc92724dd2f7d2a3b1f4b4c88596d08ba14330dd135461368fd9f531a09da99ccf9dab370fa185dc609b84bebeb5a8df2d8579a18516e9d7b69ba5a4ce97b75b8b3b256b403ecf2e0e3b3e91b7b07d861ef88179549d7a4d19302c17166991ce37b1231a534c7c5ff2ef606c63a735073f75ff6d82b9bcde3cdb504373c8fd35557e462fde0ac5eb7fe5ed56ba9f342e9ff365809d344aa3a287263d05449340a3915741ed5512807896f58c91dae96ad95acc2b2f95596291dbde244afc9cc7f4f16d12ce9a071e840ce75f7df20d4922e24e4cf17c1603b5480e8e163a60df75a5d576e883940cbf1c595b010977bbf3f4568341c72c699758563598d8888ab5de2f13daceff2eabdc2d358cbb9abbdcc7bdccde3c3bcf9e3fd834c6bad7ea708a24526a247b4a474d8beab21fc17692175a46c6d078cd6bafc03452967bf0a41206ef594fcbc39713caa31ca2d4f35b6a5fe062d00ba059efaff5e539cd6defadfc9db387e66a715c98dde9cea5186f3c318a88d68c4edbe535f2528458bd26fe9d6e72a6e0d7f007d767c43287915a64a347da56cabe9fac8cc62a5efad76694b1f718c23c4e74ffa86c3d5adac9c7bfadab25b2b4ca31dfc3ee9633d37d6ef9635442328d5339f0688417396e941cc542314c43b8b6e21f810921463b6832e60c1a1cfbb15b4ef0b09734fd3187d4a21059e40254fefbea8aaf8b6ad0f76cbc19b62795008b3589710b00ea63572f0ecbd780de44a94bc5cb9b170f68a4e3cd7fbd2ad0dcfc12ddd5ccec428c4f9a6834509386a98b03548f800423132e2df42b316084beec04533349b60c497d1af7ad20ca61c233e8004894fb3e47f20c3a87a28261bdf4e3092c58ed1bae9afd1a76ef0bd51e2926f0cdce4fca85db101324ec65cbe71867219195bbf9dbf32a2a79bd675d6e392714129a418ab72e4a30ddadc942c0037578a90383dd6a1e50e5807fd0a6d26296b6678d0a32dc2cbb4ebf643bd8f70007accf7117d1fa2d7735d50746749441148a4391975069a9b0c7f36de03c507fdf76725f22808b27b239eda5b4893ed3be9066e71511fd1a9f404806d99e10be31b0b2b55b37549cd40c5b3138be932587cfe5f7338f455a65bb7bcae1ba936c86e09163fa11d5df331c18716a4d99f4b4edeeb5257190de7c958948ee11af8f051d83f3a8b0da5dbbe47a56d266b25a3d96058a0cfb2ffe0a6ae39894de08855a9922e9f54243388244c12f16e94d446291fbf5d25f9d928aa004787fadfccc6a97405c8e2945909038cb0c5fac468faa61b052956bbb994839caac90fad05dd906185117067e15d110672cbac59a2741439637c51db4c59df53a3b64815551ae8609dcb70f890b3ef7e9ded49297117bdc17e47c8ce3f3cecfbcc9945950febf71a8b7be27602c245fa2287c0fdee92e5de1163101efc3573ec3ca98ae0de6d3a5d8b11c864ca399846004d63102afd1d2224a126e8b61c6184aee12a5eb42df19b1af4871cee81e570b5701c94bf2862ffd27bb05dcf325ca3bf8b7ca78b377c6bc502db47aa3d274cc9ecc12d4644e34eaaa43c447db2a02f3d7c5d0cfd35b40789f2fd6689544bf05d2d2074880cedcc8cf6e777cfb0e8927f617d0ea07c54cdc3a5e04dca761439d58604758f1b98982c8cfa61faf19437d7afdce43d2d75bfb56121a216589745852c8d317d1ee2b713fd0687f688a51009ff2efad3e030039103bc62891ab7f77c99481d37fc53903c0394fc6e5c5213dbea176d667ed4631a97775d05a41877589d3aa1e03695713a0b5feaffea3cb8b0c8498fa22963cdd9f046b5dbd781af257fb19b25122b08f270d410c5e8457d37c465695173cbd4da2d0363c2ee7ecf58e8f1d9544829eae16a703f38900a6223351d349a35e62dfd3a21b21a6775c9d08924a24a58c90ffbe559dc5fc0ee6dfb3f7cdf14c63a33d5c545c2874701d5ebac9c2e2bb6b45409d4ae624d426228f613768dac678f641c39e506d5ad96efab228329ed684df8abaea7ddebcfc01ee657c314522680e2b1a66fc72ce4e654eb422d34b4de671fde30ee6f1eb6c5613698e37e7e86b1f32ac1e29e9e767509a1edeb64fb01b8520f8941ce2e2c0d07f7c79a8b85b2b782f346fefef5021f5435c0eac18fd9aafdcb85c8c48bba86a8f926942eb80f769bfe80c1a8e0bc1041e6f0cbc85a3d85f0f57e40aed74a0de2fd1eec0c57658ef206b74a3465e0d41e3c8209eafc6967df8cfd8dfe46bb92d5ede9420055ff715d5fbbab8fa98ca5ff8dc0c80b387d44e2066412ba4e0f6ea82a13a29ae976ca5653f0c87709c12c3b963bb9042a25f4f5381990faa2976402e925ef9bf30a3b7a1769e2017d7635ed16aecc21570c4479cff7546d85abf7919d1ade7a2bb2ee0c4a08f9144f0f97738e8511a384cc55b15604d9d563cd5987795556e22551027203bedbeb2397d1f3fbfbbd3e6372a546d3abfd86c6542f18f747053226be9db776474b974f8d66d1b3f5859d09dccbc4ea0ca0eb8ef7e7fd75076afbc07c790822124d7b7c33f73a4415aada3e7c6f1b9c0d3f0186cc0ff4e76afd864e5ba2378f2478cea19a969d69b7ca06954cdd1e883f0cda3aa16f3d8d813a4c2d5c873ba42ec11d4ae88a2d13c96da753f87207cad4dc1c31bd351ec174337bd494c1ae83230dc6298eee6077a95234328a5af15f2716805f6ca961d6260f78b6ec904efdfe9b7d056e3f73388a239be226175d2395df53feea1cd103214457f3e5bb7c8e982fcbe823efe398ffcfbc6b9e09ae51b299f8a58ceac060a2a565dbd95bc0f2a5ac8aacf074f5bfb2e0ec53de62ada414d963bd384b84f1e15f9f41532243444fd66acdfe362f0e6860739b8ef105fb38e99f3896bdf5c3d5d0389e70cf53acf6ae7092fbdddd81cb8a0e8763d7c890452a4aa78086f11b11c3170178e4e3a315fb72833e4b8d2bb54d6d3aee79e8c7aa721493a08cd9af8bf056d4061908c4515d9c2ff97693b2d7cdb622f6f1bf80e4fb442e417211f563dbc46e87bc7d262b85ed4329f186e90a8c0031a5d38802de473252bd59837ceefa6476d6f82056e6f3baf1469dc172a47cd9e41069e373badacecd1d321d5fa4f3ec1242de72cf93ed2ba5e985e374905ec126ea5f55e3039b1804c3c24ebac21047f04c3c1b115746b90bdd524f5f1ce4adf25d7ac5df8228a5da33ee8d3cad7e1411df8d643c4fdeb76a6001adbea5cb85d2700a01a1408021f86bcdd2c165d52471ceaabc45c3c8c6458afb67219fdaa6285fde37c075d2c75243561b00ab5aff77e98334b5734d5e550a912d0c9dc9604acccb7c806785eb0ec938e9439003603bede902f7332d4ccdc32071fe5c94786aca3648a775fe71adab80c03ca0a5b5911143023c2dd52ef3f9f7ec86f84ca85305c9f8e4daf0538a0851abd9dcf7a0f4141e30ea6c76f90409091768b6851bf3990c4bcde19f1eab3cc2b5352efc7833f2c42f9da049746fe520b3cc2ba1f1b264c5e65f90b875dd90827094122ac9f5a94cc5b621a1ba54db2f428c9fdcc1a4d0b2d0200c258d25db5b726ea13bd00dca225d7fb2cdbc62488f8b7fe1b4127c71dbf6c03882b07c6f29d48d33ceff9a9cc483d68e44bdf949eb1ae5075ae058f2a2a85653aebadff91ab23a42207ffc281f6c73b2e7d4a2999cbdd5c4421e6223b21a268c3d9fad1b5aad774f16a99370126bb576cb6dd611cc08c945942e303028e4f9e07fe355e6496c4ee9588c5691b57d04ea56c81295aed229cfff6a0749a3830bba2920578da0162c1ace6b32b844bec1822679425185b6fa85eb9fe2486ed67b0b9f848de98cd94dd8e83c3e0d15f2c70fabe67299d3938a19388d4d2288a15bfd5650d1a7f2673d464929bd0386fd7b0819ccdacf680c393fb9680f1d490d445ccc5ae53c89745dd6f013f1b7aa6b6d9edebb301a72094b32835aa52e21267f54f58cb5f8523986a3dd0abd4451e98632819551dac434cfa983ff8cf7495cc0394b62e5d272f4b19038d6173b21cace0f75133725f87d92f678e75e2f4e036d5d0170aecae066b90162724ea5c583b78d3c403eb2b097243b3e17b989f7d3743528da0ef4dd53203f118b16407a2e00fcddfcbdfcb778ecef8f88f95d8b68ba5520db478c5205f2d66a0571d3de0b25fa897aed9114dd4c25e0a7c89b3dc30bfeee3eacaf71caad8c6a765cd5a6fb5f1c1ec21ac55ec4d8358ed373d668c7aa3ebce8be8a177243aa3da957c0960439000a303144faf097dad9e3177169bd65f5004ca12058d21fc4321db4c743d0a632fff38f46b2685bd3359d9b35f1d03f25b1f5d1009e434942b484b8d3352dbf89be8f305073f8219532407ae04792a96afd003b8689238c405b4493ef5e8ef7d3475b1dc382ae8cb015fb5d6b3475498e1c9f90797a52b79788f91c935688f5feaa0438b9a15e63e256738a203a535478ec97ff304fb7e8211af16a726a56ef17bc0850e0fd1f2900a84117c16be7750620c22b876db9e98bc2ae31bd61569cc7f53c8952b0ccc032e172fa47565249861d8e7e439bc79b454268f7f7c28ab52be84712a5cf8421312705e3136c9761d6a77dc5cd84d07463408916d987180630ac242ba7c72b1b6de571e381e81ee26feaa3204712cb0b83ca2f90d36dca0bc9f5a47b8bbee72a64c21cec425b35a7da862b4162d431b50493adae397d8f27b289eab9754ca35f8688e515f6e98afe4dd0d2f794e37e2f2cdd0a7821f4f85d910deda0a6af8f4e651a9bbcd1ddb2ef7f786a137d85b45ffaa680f0747dbca7a263f936c0f49e171ded83696542a614e58e598f92cdd71dd208fe2cd87f34d24c052e64dc3f067a2930d68dbe314102e3d91712813771113af3a7354f5bdfef411a00d96f80c4f818be400d7ae9c340b73fb4bbc2ea109e4d6b51b8cd9fe0580d5cb544335f150fd02d63988ceb51d4142b4f4456f0c4dfae26078b1aa27b3b3130eadb8c22fe744ee052d7cb3c7255ba95a06aaa24a2b70bf088feb0579cbc35c50f2f349bc67328b31664824a939982a96fb2181943e8878dc5008a0d4fa84b69e6500ae8774a26142c95981f84ebb1b61a73896945429efa660ff76049b264c3084d600560a2bb8e05181c59fad3819414361b44c9e04aa746faf8dc5e46e31160ee25a995134990855b30b90b722d5f6065e701f3759016f375bcc108e94314add5bae26db9590c85cab14eb46300ed1a4a3eb96ea7aaa62f7e26c7e72762cf05e05b5203d74ede52d615e7563e2a42ee5af4a2e57a7f8572889a1e3b1a3bee4ddd6691b78b2b422bd151e7359758c19fda9a058bd221d4658664936c714f1bc196ee91aa977282c698d2b7f89b59d582c6bd1a94f976c468b8706c831907517325595145304805cb10cfa62c3b49560015810bba40510c0d503b9dae69b8c9c3980237b2e44937586d7f83c1dc0afb174437b3b9aa91619ae221e7c0e434eaecec1ddd6192ce6e7b4d033c8baa11beda37cb4fd2a822d38cab80c7ae89fd3b77514ecf856980c6bba50077c268b93aed6817a94ce7ddba0f9f457213b4804ec6bfb2ff9501831a907a457982deb1ae09638481ee29afb4864ce3a3ad8c03218be15d50cb7d97c7e66af6a64cce3e797e9388538738867f0991cdc8de0919894d477494a8c1f0879f0a1497847e4ea8ac67e37867dbe9ece219ead32b80c8e3eaee6ad96eb5a9cd0e0d61fff1d1a86189bbadd9e3e73d0c0fb79e20c1c2c541101a209ea59a0f477c3ff3b53ff0b8bc1e98992ad45c0e8fc47d67e8ebd35c29c274c8da977032cda653f9a4807eb3ef0a42fb92188ff1fbe6ba1e279d25f3fad98bea61d3686dd93d7a7fd4a7671b89fd97754c1066d3a590b56044ec6940ff8093e22fad6bd9c265cd3c9d0c35e7cc3ec1636f21a8bb859241b57b94f3a028b87da8b3bdacdb70368bb3aeebf6c832262c5aa833576105ed2169c871a6239bd260d2f85c4f42e43e202ed2e4bc5a71a3dc5804351d1d81583b410d06783521f72d0de02a1ba1f4fe01633b7c9e3178b60a895a97c80cc8be96714bf97f0ccda3b785408b40e0e36859c9c69b531939f510a01bced87929be3382ff949834292608fce1242d2ff6687de8bc0d5dfa260aab4178d31ad5ae2aab0b26468fdf8422087bbc6370cd10583d2c9101bd2cdf3184fbe0a455d9f988a175fd20e5da1a1075eecff5af5b7e89fb079a8d3f3988be15b4dbc206a7de94092155591f4d0cbb2711334eaca65bc19772ef27534b0f95d5a60bb22eeb39bc36a81dcba79c6ac2aa6dae24551edcb82905742d71d593b0b447127c2d63b3a2bf1ef9733d22d61a216b55f4ed6a899a8b468c5f162aff9deda7a02faf4f159e307bbdf4f488898b7ca0147c42d2dd88b4ed2e5f4b0bfcfd2236aa5ba8a8a13a8e943615c9fd032e04e8193feb5e1d16e324c838bd724007cef32a95622456b4a75df83ebb90e6f52aed4f05a2fb1dce9717e1d465146202fd795cf79863607f3948bdff83690323b62ee458a6f4c2ac5f559c85c45d3cce6167869da4d41bc2dff99f8ad3b10fd033aff30732914ca16ed3de7da6f3445cb011d028b91fd3d7d8bc7a342257e366c1cd07a6fdb640110a976c557ff009314d949a3f312e27cd9756daf81006b4272201020dd5c99d54c352578a51657be84b96f30aeb1e6ee7262e3df4590143a4256f72d53b393d388280dcfb26df8fadbd61a2b5b4b9941b5aeccae950b687475e9a1ade216ec77d5fc2376d19f349c24f262af3c8330d94d1ff4bbff330fbca27a08acca70a5f584f94fd07eb1223fd3981dd785b571e31ccaeebff8ad14abefdc05c85f3ad35f19b9849d62e2c66487da4c87e35607603caa03a57dae5e206222d90b414ae90e52f096b4a01d4122172b7c841621f3dd3fe09fb1ae1077459934fe94af97960c4b017c1b750017817a74aa083eb37019994e27abd2a6450c353110bf771957194694628d5b597d3530ff93909a686c406bed3a35baf494024ffce31b546616a4c0504b141dc44ea0c8190931b0e071cfb98c4733244a537afb1fa153e5b213d5a191457fa7a72b912845bfd0834c7cf10e13044249c4a286d3ea48191e3f2711e808e18e4dc4e1b44706672a0b8bca70e72b32137d82c07b8b5619171a8a4b06c837f1a48f92d731adcd9cfb8d98c1a759a6e7815a8e8fcc03b526ee55ba33e0ed77280521cc53e1c5bc49aaa8e9963f73d3c858dfa41a4092f358cbafd6bb94063733b921f03b7688cedd4d2b4e51dfbc7cf4e103e772beb9ecf1bfc4f363232df495c7c32878130798c1a124ca2e11bee336535318c2711121a6f815bc9f38a3b0464e832f8d13a43fbe34fc3768aa6424e493543eeeafb9cf0815e04aca7dfdc0fa59295be405e23c24ff154d6bc1f9752296f84143b7c483fb76fae23443fa670069bdee20a0cb8934a6773f4f8bc2e5092e626fd523cc8e41fd4f1b228aad3de6106aa1265c3a31444a1452a0ae8c042d2be8eaa3a3681c54d6e5f0a1394a4d5443c440e0a9b7b88e09433dfe9c14b5109c2f2019e3be0c8ca66559d2267d6dc1389d20033bc05be40ba82463d9ab62454e18cad776e00bbc8a7e34cf5ffee966e9c0b85b6e5c7d48a8f02846d7a44800cac5ae416c7a14c845fc0da032c575e3a0b805821e6e5b55715c909fa9cd685d8da6d3941906fab22824c16c933457be8cd72ff3926505a8a51ff400dedfe4f24c5ccd473eb966c8647a8f5ea4d773c64be41db861d4238dfcbbdcf8b92e2cbacebe2b79149adc3b5a9d70c9127be7c941e5e751cdb10723312f90dcf5fecfcf56d81ef9ef4e63ff1e7f6145061575f8312d500308049a01c367e7bfb604f14e2936fd582869d8987047f75960f184d0e226854a8c11f51eb4cff486c54590622458bc32d7026dac7479a01523b677c77b935df2d6a2c979bee2f46fd2d9587e39479dae874f92732bc885b9b60088e51a9f15908d67b4188b8f1c61491bd9bf32fe7bd082c274129b214b08ff1b50805a4ad366f79ec96eecc90512f5c7f2088ee5868b6811f4ef83c17bc25d08bbd9ec43111d057ddae714f1028571c0cfe054b8c780334c876f2b00c4eb7d7415fad03e5a1f48a2cc1d5ea86fe61937ce764e4679a0958e3a3d02ab9b52c5336d6b3c445f5dfbf85071d498b70073903d544fb7bed66d5c596360addd33383481b1d48f2e9b0b9000a099fb007e3b8eea164f6128b03e75dd17572f9bbb01e83a3ad3a4137d6cd0f71c42113e53c6e7c78ecdfd18dae9e89083ac9241aa2ca96a625246a7e6665beb62286f45f04ee7af5e9e4e83ccb5cbd1ac83aefce07a624ca26f73d287d7e3f51748e682bc07fbc2d6fd8d33cf95afac4dd365773f6c1d8fb76876f111329cc30677811d5579b59ff00b1aae75c2215900deecdb6e6a05484690d6c47e80dd2aacc89ecae8272c3586408022fef164cb0a7da4bc97bbce99c8ea3c357bae3712c678c2e765865a65f659c5ba906e82dd1dd34754370012412c9cb21f430f94d4e134d3049f88b9ca1e6cf26ad1d20d007d57dce3e155124bd90e9d5eca0b0a823b91d6bbe7a2fb0b86127519bb39a5565c6f80090d3ffcadd77c4ebc303fed2de7351852e6c4fae0d06ce66bb0905c5e3232a2f556b55b29f0009d45a48edea2447c36e83dc1f49a2cd13434b66652fa7f460594a420ef9536fc89c7c6f1aeaaa8a4f8d1eaa840a0d33e750a47a9126cd4029d295eddcdc298df5b946bd3704f6ed57f9a70d9a1611af615b9883b5834472d8c2fe47e324703ee85db2a68955599740cad8942fbe7bc73bee67bdd27d670503c0bfd13c5ca966de61c0086ae18a6af37292aa45e131445246f4ce391052c1076e67cb73dcfcd376be09a5c8e069f45d2ed5829421971229d20ee214b12ef5813579790aa8ced23494b6d5a460d0d2ef7b67c105e5b87a67420839dd57f3e4d607c042f414889901c41de995308ab01eac407a3828e78c542ae133e5d348a5ac3385e71a47dbf3a9178f9b4321cb16e47c083bff20a5196030bee1cf7296236f491de4da7a0b745bfa09b4ec92be663dc63da5e1b01b199dce816d12f76bfccd0f7d2d821f04f82dc1e2dee1530a47ac36d6c098a7772240a3adee7adec30f3a88c8dadac1487f9683987f0acf5eb2b31f699793d5dd762451ed69a7f8d7776d030efb97c60726f2835d595e8a6e9d5e5237d875eede2e46f0ec168c4d82a4e1459fcae9f4d9980228149c6cf5e6dbb90ba23d943b954c4a0e5d53f15364e255bcbab7eed0f87b6981c219d687448555f1e22c7b1ed6cff43e4605f2774e824dc0762a3cc6f50f3066be26d02f9c9bc71d17916863216db03c0e917ff1a12a8eec20d05b223cd5421914eda510b41f293def42ce6338330c99d0f1daeaa699a581833e48dfe70ef182e9c93291050f98b99666d4f8863e38fdecf41bf7104561dac21ff43dbbcc6ff9dfa16aba8201b4f7a309d53dc8948dfaec13afd82bd055f0c4bbc3303d935699b6f7d0e5383e23a323f3df229166036b23ead5976a4757f054a00e964ad0212eaff600bc2a270e0b110834cfaa3fb961a7cd20e9526d04df745da142a409b0aa77902683fbcda18ecddecbd3662271ab8ca5f8e3fe29394d8fc73ddc431ac8319a4485bd455c9019691ccf2d572511df7bb11809af5b9b1c7bf5178481e291aeb525f117b7bb8db0cdfe1f1914ee23fe0b99119926dc1154833c5751548616fd003755a84b93d30d2007cdb2f94e55a57fc3c63acc8b4404e5c09b9b37b4c8a2da4a2f7c42409e4de70f9f6b0761faccc7aaeef1c898263c75cd71157f76fc1667210f77a5eab0aacd3a914a4bae8819ee9696659f05680d6109e0b623c0689b7fa41b817e36ce4a0c0a51ff826418bc48f19c76f5a702a139cfe077533daaa473c48e05145c411bd4a9c2c4dc12e9e2192935268a75af5bbe5cddda4defc1d25ea735c1c6a256bd45e67a130229deb97cf568cc91fa6e12174f384757c292791593f0e06a53de82ca8a4324d648fbfac19a909ef241024f70e3c633cd9b64b9e93737703638af7ae0ef9d42927feb0e9ebbdd851b4d73a42bc04f21a5556427cbc892179fa9218dab4c3bef29a67dbdca28d4456f768b13169f1065e0bb2206839b202bc1f891a8ddf982d2207c226efe13cbf27dbe5a7f560d3ac3bee7120e0fe211092ac1e1fdc7330d7f3c8b71f85a056eb88611b331069a70d9b9430dc65c6c2cc81f4df64ca7112b04bc85a404b6f43df0fb07ad6fa5384d59931acd6be7474a36c0c039417d585f50ff9b18fc5cf20b880382221ede50dc1200d3746cfa80d926913117de0888df63c839d18936dd80b82dc3337646f11ecfb9e0066d9a3f5a115c2981fbaf00175380b6f3aa63be980bdc60c2c915df88fa0103eae256f8e2ff6e546dd26b6923192ac74a4fc28423b3126bf657fdc8821fdf9f6d3c866f9dcd9c4453990a8d583aedebc389f304432faeb4bb3197b7e9309fea3e99aedb47b59643b03058bebb3662a6f150c754f04437053f2e1df28da4680bf3121d8ab12f792886dfff7288cc0a0189cf2fd37744cf4b76ef59f2b45de4ac8395ed064222a605da1f392dad0aa0d3e6441e70f79fee9f98f605af95674a2ccb4705f0735d464d357b91fc4c33203b8675eb11e3d1eff99ec80278de7f5b270984c148526b0cbc247765d63d6ec6ef8aab2d488393a012c82226dc2f71114b64605d5a00ae12f3b891dac6894b567e3a471ed6726353c6193f87949d3d101562c74feb33ceee2a074e6c83f01565ed7fdff000215c2badd928803d301922b16f2024deb57954d3a9505e3864f58a0268f2bdf8535a9c571221d5b96534483b5d888f16e371e1433b8ca5828ce1a52ea625e3249f7359c31413b478ac562a76df99c4d92eeaecdbdf7d1a68426498230f17fb96f2bc2b2af2187e7bea48ef740cc647bd9d367410ba7906c8152c2e391ebdce690a616b4103108de4f90fc8cee23cc69d4aca7ef075075e2ec86e10127157e25bfc06155e613d670c24f7b7b1c165b105e0859399bd4e3a2cd11bf4644aef7f87ae88b5b66d021397ac6a6391ece7a0e1245619efc4936358dbde6b690f6861b45df9a52949a17cc745a2ef3d0c43bd5e6922bda8bdc3fee244f2072bcb1f5c6119fc51835c11205b991b3de6acf7b4551a0b37756311b037a0c1adf0aa1fb04e446a823dd2e3688cc4e406e8be3ffeb234f8088073a1c481345c51f980dcdc03174ae6151a387a76d6b6b057145767e3c87710222d4735067bb77a0a43871d861d1554a766c050f954e0cdd8e853376a7eec05e6d750942fa5c140b08dedee36b64e7d662ed67069b8ffaab7548f616c0d0c43533a6438d81344a4991bea409c966a0e00ad9e92caec8d6433db9d8d2ac4ad6a22236b36d7dc95742f506535a64303751b633ffe10d338548fdfd7f51905e9cb98e38ffc144c1e285fb3e58ee09a60c6f291228ae9c10ddfd128725e8ac4839ac8d049a07460a752966cb030e04a4e8005c04b6dd4fd73ee0d6326a78d0cb1565dc27931af4a80a316cb79522757421e693abc57f346f79db3a06bb9237a1ffe6c9796a4d6f36f951dc2a549ad99d3bcdf8fe782c74be2e7abd43ed583c057e07fafe9259674773ad666180a313a8045ea1238ac4032a95af2557b7eba236b30a270dbe76d9c64cdae7196c07f3cc4dc805aa32bea122421f761c38cb9fef1addbc34fbe186e34f376c3b528e3f17f8cf9c24e98b77899e75297f81f663d5affda951219029f45d69edd5d80fd81ae64eae843adeee698673d7b447b26e38597fb57542f331c5b850a64d83a73676c8c81313560f04fa5a4c6f7b008f084b9400e7f366e66826e4030a471d5e4f44dfde244525c2f9daf230ad55007dccbdaa67505687c00a4529da30aa96fe5cb05e3988b2c53762c61a77246f8a5d7f6fe7a39e7d164860926aec2a9f108cd635bd908b5abd5bc4c363bac5e858c1a55490aaca553bac86c9593f5b602867f8971822d3712a72dc268971195b815adce19621fc58fc6633aee24d40cb8df83db5c2f89c611bcad47aa2739479dbb6d5c8b5bf050c8156517019890a9821d114d0a9563deef572708af3ec5358278b38b4228df53cbf1de59d452392f69fd08a875c7e93ebaf918248840c202821ee1fe8b3a465fef9df28b2651bf64986b320630f5b46a8b0b6c32cecdacb79be7fbeacaa2410a206662ecc0c731b2832b6858369d9128df8563b89b39b1405bc09d98373c426cfad20cee99ef4aa89554dae017391e03f7f886b557d4d4ed110f6ae7ed42d9a3f994cab7c7223d777084f3b76c95fdcc4eaeca1850d580f29ef981c74b2dc24fb3f808a342b5aa75bee8ec489c52e61321d4d94624ed55e7c76b53bf9fe2511624f622c07733d69e92829ed3f347ceb2fbe45398ffca46482160846727a97b210c2deb50abf0630e5945a3eb0cc3cd4364bd02daa31eb7f6862daaef5d658d9e5b60114b2b0f798857f37af983dd1ba58c118bce43e1c3b424dbf2979a049e3caf420eda516c9ff2bdd9edb6fe62b27b1735dda72defe8ab0ebde435ff2c6ab2dca508dd571a99d746ce98b58201bdacec66b88e453cefe669dbdeb2b68c04388f5fb766f75139e3671032d71bbef4e41d13e721502d6ed724e6128d8362500bf4749b3cde056c6b12f0c9d4d2e76d12dbbc76ef0ce031d03fb747569e19b6ee765f0e59f081d0e3035c04b9f3022ce8768212fd206c878ba5a5d134e412e3a48e7c886c5ac0ae65a6b90a64a466045f7b6dd344d166c7a3932ad46055f5ae7799fa3358745e9a3181a8bf0acb86f530ce004e308d337618939b0ea8e31f72b4c9d458b3735bc927399390b244241e5be5b6602249ebf8cf00fb2bed9016322d22b06e48ee0a004e21301bb86bddeca40b624befa8e42c102621cca5dd040ab582aba9962ce5f6515b53bf4beed8f511b5a0e360fa262706e1bf425987af1ea7c474a74e4c1f4afd87b41feef484196de3d74eb0ff510043dd025728976f3e60e7347ad8323556c5078a86fb98a44cc99a6586118ac4d8395cce2443c01007c04c25afcf4fcfdf3ecb1b1d1bab255ff565fd0e27e40b30c18dde9e6f0ead0cae05e016812fae08a3b3afe7cfc978940beb60b88b0ce6419878491786e4df05912ebd0570dd85de52837181ebc765bde58fe6ee49c0605add7225a2f64aea72d75bcf7ad316f3c34c5e38a6156396c8a22e80246255dff9952a561c408ea28e7116511c154df40eb9da4bb24a4a516c25da331b4b651131273ec21e7a2d4999556895405578907b62a18a625a741fa196b238676c4724d4e164732cce189db6fb78cd4ae5b9957c359e944967c65522dfc92953a35bb903712763f8f93fc9a9e139357bccce9907c5c0daa06a0abd0e2f18016dbe246b116c28f6b5cd7005b3072379f24452a634c84cb656ae35d2107b80cc660433ebf4cafc6705af8504b474ff66103cd03aed97bae97c53ff582bf8e44ea2adde025e6894a93319e48989afc93b86d6a78ef1b1272d85ccc63a64a34bffb265d200ef85327433194bc0394698206deabd3cae3857a80b61caeb0cb912185ecd655d5245f692ebd0f12b304b9aa87182ffc2b772427c49aeadd0543f35a824fac79fad31f3a434f5f55141d12362ad5cb47f444939beab22505e277b9fd82ff4f9cd6ab5d9d926501a6f9974cacc176ba116a9cc92867581f3ed147893d78b3999f170a12f6b263fd5d70ace91469056fb67aeacedf4c563b27f2a871d1cfa377a7baba918d47334afdb690328c262f8288393c0004cd5b346e529b998f347d512902fe5ae09e334f145c5363258d1de553fb181fb86be30200f8965438b02ebb4866551eb35c359a3d55311a9059dccd463008e760ab5efca75fca8e3e795c598255c4e1eb7ee52db46e0424529c039528a362af45218d7a5d915e07b7d60a4b764d21ff86571de5ac756f8fb918dced624c9b9f0c27123e9d2ad310f59093d76c1936d216431547ef0d76a8b302fea9951e94783f20ae4fceb6300760e73381f6d7ac463f58c1f7ba05e5017be0f21a46676008e22757d1f407e7a42dcf9b22de0c9146225ee3aee4c9768d5e912b8415ff8b97eb50c255cd8d60eb5b747bb679c9b30e13bebb8baa800f2c9df9f2b4595ee669fcf3d68d14052efc032edd9c827c752a041a93e38b7ce35943a6aa8197022a2f68011a747109093206e1a843c8a0595c117dc87b1a652f84ab29591a5f3382ab81a5593175c23367a8947a728d80f7ac2e3eddf320cdb09691a49fefc58716245927fb66052a65894435825c8931f6404d28da9a85a19bac9800539e41a5acebd1353ea8f74693b9abcca5255ef861ce57024da4daf1a5eb57f1e402220499a1f261bdf352c5466708ccd76043a0e4d6726727b6a4dcbd1fd148146a3ed8e13f802529a2db4c924199fad4ece0163096b82ea2a6263cdee2a908e326b0ab02ca4036af012900a062989e88b0ab42c42766f359912f32416b769311e58ff6afa2046720f090c985d4b465450dac649520d849d0e82f7dbaf5b157ad9b49cf4386ceb4ff6d07e94c1d69339b862b54f749bf618e2dd214ba36d2102669b6f9fc474914ff82f48f88d7159f24dd758a748ebf50802c9c724dd49350c7b279116209beae43ea6c5b860c6d19992546886532f68c171fadcb8d0d1c0d70379396ff2c194884175b7ab9d4865a07b8a29967c9a5269c42b122aeff76ee79c86c09784ee91c653f6cf06ec0869a1f0369c4e91886bcaa4577375365cad091ac0f615447904ba174167d8b79933ad4e70aaecc036993450481f3fa0f8daca0281ff9945ce106505228dbbae033a56e5bf27711e0c5fb01876f24faeddef98105317a6bdbd068ee860f35643ca26347b0ca94524727b59e3353f91e7feaf48b100f06e855c340d5f576aeb2f001d3cc7547ffb2c3d38e1aa37ed1c520fbbdc8a778c239c7404c15fd7e953eb6b9941f7395f18f8a42fe6fb549aa9fd6d0b67ef7ac6fea5854ab0af61605e38bca32f2b5a7f0b2ccd870577af96337a22b69d6c26e8df6455de3c6aacc25197cc410ef77a3735cfdde647531fd6445de9fd43404003ab4410e9aa817915cbd2f95eb4e5836a62ceaba1d2dbf130a7bf500bd9dd5bf05cd4f985ab37bd6bd87186991af148453c79f1e693ebf78d9dbee4db156acc1f9245ad980ba314135e460fa89f0b251cf40417e9f674e4cff9fa6b3aa44167a63aeeedfa21318c685fe20f4933986471e2078b488bfdfa9f861a34d22071163059c907641a21b60fba1d77ee48f27f6ee7ffaa40f11f0e7045456eafea3d3bc2f5f3bfabc40711863f924b97a7e3255a1acb3b594a08ce4df2aa9bbe7a9ae077e02fd54a2249be4cde206089a82e16d5bc2f729ee4f9666118f8091dfeb5bda17b64103b86a48822b96a18dd3a06cce775548ba1d4c86f31c3e65f4cb66b08f4871ae598bda83a08a0583d0d0e95f82a9046f5c3b85f280682ac399b32d017acd802a2a8613745095c94e1fc9977cd945575078fee3b08060488d554cea9d6d7e86b3121260ab602a40e5625573c17b5aa354b1a19ee9ce50c3bd089fff1052986cd69deb02c7ee25d792ede5de9276aba3e54c2f59db844e389f183ea584ffe2842ee5c4a7d081905cb55f1cf779158da2c29b22282f012a3bd08375ebf278c1c089fa180302037acc132ede353b0afcf003c01a96b6b950f22d940d6bd814f4d009a6ea84d27f21458dce625dd0505439df267d23900e8998b164a5f1d50346f32cbe702309d08c7555e9e85e96250814cbfcc1062a41352cc71da425ed81930470d093008f5c0e3bf0d371641e2529f38c92b84702a14623eb5f12f32d59e560dda8f8059bcfcb05fedf5f720b3f2b3f3249bf9805067833ff1f72dff685f00f78a3aac7a111a7c4722b8c0b8b35525ef9c6d14c41eff98b0b8d60761e00eae9b297f6b186a1d82487813dcaddbc4f3060ab6b00196b138756d4d05a644176f32d01b76b1a9ddff7af652c89976a284f33bad7412ae7f78f99cd2b850bea8491b9a22721a882c6ab883c1c9862efdaed771bcf463a44dc5a76c946097c762ef58246371fa473513219bf4a977e689b2b5622ec4769ae6e172166ad9e42e01ea0f9e53b54cbd8b2f9910095ddf640e51f5d5c84a6284656e4e75c86a57e9b6ae0a69db93e1a3a54245e503f327ce8679e5cbd03d4f675d81b4a10bc343b52072384aa181dc45b877132cc90f2def8fd333363b29fbe75aed229ea753ac8cf9292a2abf783472345130fe5a40c057e00074400c8c382999c6991312ddd0e7fae49665fd2c35c35a668f7f52e82545da99a12827a96bfa039e1d1e77629bcf9284d8adf7c0ff34a29b69f3c42e955c80c195a710540f56e1af39298bed31c059ef6c79cdf9060ceb5fb7e00646bc3557ac90e965af3030bcf578dc0b83685b720675044041900bb8fdba46ffa53cb5fd9cb7160a09f1946aa4ed17c2684beb3c033ae15f203afce7fc74e1fc54283786a8916b4cbe06174920ac00176698b40866a3182c3f7482a9e62c7e3f278989da0b8be188583a8e05db4e1d8ef84319ad49c0dac45f0045a37aee5fa7f1ddb6b4fa756705e1eb2593df7182b68df18a34c342bf133e77638a8909b43c0892a0f69704aa0dc189bb210a360f65b47e4d03f000960bb7c43ca1368f16810590696a364e6c8f611b8d320bc2b949df7709247874c7e11ca685d856d826bdc3acb035185070b923b937245ebdeb31c3a12ea4953b45e32732af8c01ff2bbca5369b89a26bef5e3a1306d04cd6ee899370262a25990ac785509d192c63c9a7c86caf5962e3a22162e88e12f33c69ef5f91562fdff32ca0a339adbe5628c3f57c047f234e5f5ca47490a359f626eae69d60f3879c527cd1f0ff0b8de6b4d29970a62111686c2e4859738e914e4d86067a72a22274e7b3a483055d5ac5328bed48707f0043fa2436e490a10b0f6d8427e40ded2993813a67ba83b0f145124e0007716b39f4dd8db7caf7143897c819716aab82f1eb18732e2e03cafc17874f41752e8edcaa4dd11ef24f354df4a2364edf7b4b593b469da50ee7b65f4c08abb5091f20557d66dac20451e23586c662a076e04a906fc94587c8e1b40008cf872c1c337457fca90fcf664a5d612bffa9c17ef051612e0347a4aa786836885d4d230c485236c27adbe95a9d674e50a098271af68173147a599a178a635689f4e74bf6b4219984a0c4f3643fb1eb40fd47b966f09e284a58349cb4c4fb1df51b1de7e5bfe3dc25c71661bf3a972703f07a2a5011320336eb3dedef2c71effb1ef0640226fea9e2011bf0052a3249d355caede2407cbe6726ccf22b98641d618c16fd159ad588ff41e0bd0ec3b4ec138de18f55983882521ff5fcd5349ebecfb77c31ee3f387f49df93fb48491abd24ffca8d26e62edc0f8fef28b20024c48237da6c832d980054176ac6de1625451c934cf89c2e9669305503ffaf50a04b6867562f89f315bb9d8916e44517ad71d2355476b227475a92f309aead4a18682de73c7b040f5b0badbad465e14f3e9f02587478edbabe3751107f06aa6bf2da4c18c273ca774421c4920074d454074d8d7070affa86f09925f4209707034d7750a3d75f55135d1f04dd3ec42ccd17cf0a77d917e55fe9b3f60f218dadb4a429f2f31083324028bfb5ca357c19faee99f169ba2ca4cb41e2f272e43905f7caddaeb6977e674e3c44f56fd582f92c5a018cc75413588460a53f5454600d972cbdaa60302c92032dc82e423082aa48a384da18edd1f3f98cb1348ebeabfe33687f7ba74e2532174629afa1e31ba8480f024964a7e345ccd1fe202046f246c034c78a083a687fb615260d4c101239baac6bceb773bb4755af02ccaae324f30598c5474142cd6d01c76f55e5e2661e3f72d7a7a40a085d1d9e7d40f3f50efa1e6d9d4cd5033e018d4cbdb377acb4f60dad0461bff9cab3646186f16662473cfa3a41f18bbce0e2e25a29caec8a40ce6ebfb04522c094469d29bdf59045f577dd5ac582efafa93bfd32650796a189223f2f55a8e9fa771aec86d0e7a4334ae1df6e607bd09b0435ce3c8a13a7e156f6720429a4b6a18532af2bbef6f708d48a6a2894a4c03c8824bb7194dab86285718c777f212d53e45af27e79d3834a084bbf5e380297e2e5531b97cfd2464b19ee27f0ddec79b1d45df9fee1746816ab56727562c2f114878abc48c1dc30495342715363a2c6ce346dba73331e67a4f359ea126333ab478bfa5ed359813b9acc8daca25a08c4a9548b60f159af65569074e22654ee6a9f17f736df75628ea4dbcdace912352bba2d86caaad309ee58ec1eeb40f1f914c62ae66ceafa68361fc3035c7d5685318d4fa809940a40b0d358a9e836b4a654cf66349d93189ba3ca6dc5398a1bfa1572139be5d44f58fba9fbb7901b704a1a2d83ad59b4788c29b9b8a7d5f2470d9836e915590be3a748cba5d8ef84e4ce19b45880a64b680980278e0f557ea26e7ff3cede135eaf2daf13f311e522033c48b0b9617b3843f545e5529df4564b6313e94550f55ea8df6fbc5515a5a5e103620988b546c4ac53774d68947ed855b3a06b561197bdf0906a5cef8f38f491db6677bb6167fd5e1bfacec456d5ae5d2af9df74ecc2c934f2a67859f0f8b25a5917c749f3b2e19ac01705e54a704431b1f2c759baf6c5e230cda4bfd9151a0a667c2e2309f158835cfa5f9748d780ebefe5de1e26e5092be5ae33ed66131c5dcc61b1b48d60ffecf5335d64f728d716392e4633a8f6f4f151ba7730524adcb4d6d595a2232fc06cb73650955f95a4b337afc1f875c3b01d7587933511657594f8aae8ac4e0440afcddbba1b4de4de3b7b4d041c4c9bc3e90951da3af6e40fa1f6f911f04d76176340de35db09ee12fe85700cfae901732a6a74c040729a481edd9b79f35093dd3f5760e9176320b369738790a4cc2af6a92ef35b17a62fe7205ab03b38ad5b02f40364950be4fdb526a5827b57388378098af4746b8a9ee4f1bd1ced39fe42790359532ae3ad99841227567971e72aeccf9c42263519b8c15bf9057013a6b233e14c79f1a65b20397ca37d9341c670ac906cca0d2a0da02ddc6e57d839f9876bcde78545cfee4d2d3ad273dd3bfb5df053bb1e0d15fe4efcf3504060ff7b91bd42820ddb87d7f3d872463a31671b2c0dabb7f59935db0c6d0f95b46cd0fc1514fce80899e3c978003360d7fb15d3ca881a61a99e0807fbc0c037eaa15c024d61dd125201833755332bf0d3193c7b5bfcc387b7ea1ca28f2147acdc071ef9e32949942b296ff3979a2ecdbac3f30bb6c679814333d5e40fd79bd6cb3ef0c77adfac22b8412bbc61174d349f8a039de48ea60991a339c216cf7fdcbac3a9f7250b4e4a81b03e2668b1a24d9664772da496b2448dfd3a701573436fee44e965ee47a2eff1b7b9a77555369939c99ebbeadcd08a444a09dccece42ed7406898f510dbc54daaf7653e7e3815824de01cf5c105e71691a6083da0650df9b566adbbe499622eecd19292e8f7d4279b31f76d4513b85d156eaa5251f86e375128bf21acd4865477e11bd518a48f15d900762e1c6ce4bf7a01f446d113e0c5b3a971e3e836f81df4b19626907c981794f1f3a45fc936b79433debc6332017669668dc777e4ee8195901ec2486ddce7acba87a7818665098b23ce018ef8ba5f76a264c04d27cb73768bc994372f98a915bd83024deed3abc9ce9d59fc5cfcc2f3df7ec9c3c2080e173f6b21c12473cf35f8eafa77edd6dee8a79fc6ba9ebe978a7761ee5a20329a4d7b5eb18c5a8c85ade05e8943ce4165d1147e3dea2d7a1fa3d6136fe59123e7008c9ae369233d0822e0a6a32de83a4da8f925731c7885c26832895f64102071add02068706fd8dadb6852ffbef31755b826a25ee7e2e562fec600852b0366ed86687f5b063565820b87b3f1ed76e2f7b611d62771c62978cf53bf68b2a2618c759abc56b1ecf22a42bbfe4feb3bc9df812d7b17ec242c2784780418ef0cc0a690528e506ad989505aef8acb114a09c34ea4bcc8b9ab7a772eab1913a57f6eb1fdda5c3e2a52567967ccda482771484b638935e7a5b5205bd8b5cafe5f2662cb390df42f52d1ea6ac81394e709d1e79a66e934afa1f8ca1e1d1b1f0d891316dd1b4df2248b7038b1e716e9eadac663f54cba12e0f8d563928c1ed46ce06c10b89fb1a1c7a0f1e3accf4c9e81f230476b19d371290483b572230335979c36008cffc68303cbe8b9715e9b4fce298e5a5d414df0ea9bf8339224cd23dfd424e6afb8e1d1ad3b38ff05fa97de4c3527e2b76a0b9ce5b3d2362be2d2bcf73449ddb4aafc4a69a4776c6926c7fa3c7a4a3d076e141c4f7505d48527d9e4d68d578765bfa42397d86ab789db1280aa224c4de572a2b11a78462e97e273efc5b2c8ba4b2b45ca57ed1dce4f0bbb23641ace28cbd8f802ce5635da2a42130aa425396803863e51433cc3f5501209ca1412cffeff488657a02d2a9d36b3ef5a605a28761b9f319ad469b583ec75f38a5754ed7ff69201a32a0b0304a3f120674020990156475e738f472d95e4297e64763e828d52eb4242138d62151cee777a2882b0bdb4f6120338f7575cdf138c1b0c83de0017a46c3149654869b8cc49baf5c4a3f54f172e229fce1c0615adad8161013dcc6275e06f5580f65ea307dc95f37fe3f8aa610af9a369278ae85104c2bde8f31f6337737e772a2737135dac80a45c27d922f44f814c9c9ca74815ccef68af119843f036d1fac988d815acc8a89a74ecc912f4324a757547b11de2770e39e0df42313fa6d6322f26bed22b124f9f2c2e9a6af87495817f4fce532d1b93359a403d218fa46a3c3fa56f255a73f53aea0d0bd9a7825b75120da2895c86b782c83d8d5dcf83276d470cc2b7df36df0d9955e6c42a20f55e31307da24bc75ae3f77879c9283b9bc6afb533e6a74186561171ac0d97eeb59bf2bf7d081d4f68eed0f1fc58f8f2423f3f0fb72af27f6cdadcb2054f9ce5a3c6a958ffb51015943433102ddcedaafc1ae6d387222be3f8d15c5881d1d82b20f7f4d51eebd55d91f857612956ddc13a22eba1eaa604011ae658cbe1b252f74c72a6e54d7f2740f3faa64d4ab2e454e84db0137b146c3ab9f5ffba981d61c4e46aecdeebea10e46d9db6cf763f70fcad670595e24792c89be35e7a3fb58dae30ce0ec1fc27f6bb6faf8beeb21522249787e157313df06742d139b866db667e1e2a9351c9cc609f9cb13ec6fb6ee7c3184e870c50d246715d5932263e361ee1ae387899165b3493df8f25840ef1cfc1f1c6583864436e0aafc4664a576ae09bbe90c207fe9062a1add9180524252a8e2db0288af06ca87d6d2320cb198539fc1815eb5ba5085140a189e0646cbac963c679d731b0fd50abb694f46418bee475515b6087d2e78bae3b5fc99f55d6659154b6bdbccba13d2d51d094915ce7e47a952e1aa8f292e01e2c040a751246300f63d722b9a428336491bc1afb3f0e8157a6dc21cf69677fe0c2a37dbee18a9a9f5a5102dba80e8c588b94ca54e8673776223ce3d2c5c290516135e75f2b2e3a1772c72ddea9f4a9799b172de12f14c258b2f8e0a54589cc1f84d686a4643de145d121e942c4f73af58c770646b590306772820abec642d66f37fbc563fd60c4e8ce96a794bba7375795a772f046d0cf6ed98b7d1ecb7bee7a7b5f5401ee80489ef52024db1941d372e782b9195704020488317695a12344a785e602c18de00524d62667c39f987bdac72246fc2c659e69b641993b9aff8fc6f95817bcd005d769c53698901bf8ef100b8704d934d7959903b2df7ec5b77474c568e225ba81e85b54fb3c06f285090df9d0f2958dba442d60cd360616ea2c575bdf2a96f656adf83184040ea7eafef6a1c7622fbb241bb89dd21ae9eaa6ff4fcb9cc000e360a591897e04df842d5d21bfe0df80dff9d55fe21400e982f56ceeba86d1fe83fec683f70b5fdc715ab4e40dfb1501c4268d5b72def8f55b0d4777e29de797b1da2e97cf6b728526660bec27332d60c3235789147ffffd029ebfb141a58425986e4698f0a33b39639e8c72aeed61f9ba3fecd55a3d517202ba018f015c97b44fe090dddbd4823ab1a7a700a0fd46c34029f2149a8ebfb458e7c1b0bfc56dc0f4292fb6bd46987955c11414958da2ec14f5671689a4e0a46310ccea4ffd37f655ca0634896deac2d5ded7aff1b886425cf4af75ef221f951d8627249834d6ae2a779097aba42a67e650f5cd3a2f3c3814b0142746e19452de391cf6f8781da2f870768eb9706a26219c0730a7223b57f65e7dcf42c00f01fe9344efbc5626c04475861e432ed1053250a07c1cd951c326fce88d7ee338f12a0e82435ac960b37711f7ffa2f8e1ca7fe3d85f9efb9f554266904a1f724aaadaccd940e45fab54dd332c3982fd66dba176c0c761175bdf50bcf64c8ddd868961a0936becd1a0e329e0a0881978343b6deeefd8d4da0acce2ffefd1d056992224545540a1fbabdf54f46f1e859a9d8f63adda2719e88c2de0456dbf66a85db1dea2e5bd24d50a8d08b286c14dc311b47029ae08dab6d9f083c1ac81ee2ed847af9f552a9e586edc29f16c08fb855b26c0c47fd01e8032fc2b0f3e7d2daf7490776d06c93e8bdbb843a1a2f6bbb2655be204b74598bf4221f2b6cdf46590d9f8464769f384f85f2adbf63261a210671bef6d2dafb425c3dc019778c76cb2c40b357a7531e1d26953fbbc2fed7d22e20f4e74bd404174b6b716de64e4605660f36a1a220ba3c1b0df9302e4db41529707cbee81676e147af806ff3e033c860436190ad986f3f923c23e740c3a8e357f80d412180f5e2c7db17c3b8bf19e2d5e550719125cbcded60bb57b89f5af06bc068ba31398974b91d23c1b823c71c11a2e02f1bf58b0c43c527a6f6ae692dee766cbf97eb0392fc568e0555896eee76e35e9b9df54e7bdf44e0d281db6e7cbaf74ee4970513fde748e35357c92c19fa4315496ae2ecd9c09db469844e0c1f7f22ade6b70e2105c18e92f06bc12a2ea74a00fd5d60dd7118939a124c20b15f4101700f420c7e944668712ba18c1b371a7a5051532a31b9cedf2dc0cb98f2dfd83ec034c8f57fff2854361fee4b199f05af8e0eac4df5a4fcf84bb218009df36eed81d19c398d368c7afe98a87e22d2aece7d47ce76112971a07526edfedd71059d121d5551436889e725b20debb9f06dc513d5a24df3532f47e05a288f2a70efc143eb4d662bd5ad95fce5bc166b6332d5234015e2982cee3f617c4a7cc26c546bcb612506af9277482254394f3510fc33947f9928ccf998c19c32fb73f388af49a53d3fe73e3fde36936f6e421f7263fa3833a186a1e1cbb922c184a67d9551051e7843bddd35c885af91252775d90f62ae2c286f8be05a6f631f53f7bbdddde482989b1d81a39492c7c78f7573a93e54cc282b0f95efccf4a5fc7bbd71d0cac3afe4f673fafc910df7b8c02f607e42488d952a0a96d1db6a6a60311460dfe558f5efc8065ab884e458b130ba54c501728221ab467167f712e27a50bb0431cccc11bdc90bfed826fdddb63b443a7574402f9bb7cab09bc1316744d687240a73a035c572ccbfd1a4bf500ba2c0ba46282ce6575ba810ee90c11ebe65640327a3e34ebb83daf07c1d714fa6086e28ffc0d500f329faca67eff42d01c3e16b9676bb14d080541a6e285e470176ef9d2070748db7b4efb6491d892dcd5a57e80add388d902f3ab0ad4bd5ba06d8f4d8978494cb6f17ea8c158be8c4f1b893cf001a7f07361bd12a0385f15b157e7391ced72512a76fa8e1ab621d97c2101d078a463ac4631419384ec534c6ce9c6e4fdf5cdaf8a35c84aa18fb93ebbfb8019d0acc65c6dbad50f71370f2e0d8ca4f018699d4de8185be5c5064adbcc1a9389bb3ec6286a9bd897051df8934d084cfd4ce27a628da11dbf98fe221163e0292b613395f819edf4dbad8de70bc68ab6d1473339ecf5e2e0e9b4a6933edb68537bba71b0bdfc1f1527ffa2f0e0022027a0b4a00681ca18db84d8f26b0dcf619bdd8ee4ea0a781993fd60105647c02b2ac323263f9a600e4f3529af6c46e8746c12f2961384409bb7f9d14898aa885c64e275d46d1f5676b2f14d5ec9fdeb6bc1d43913973431e0429cd5e59fa1e47b0f22ef72586560d60dc5ee0cfe27b96cca72e938b6d9c4963ef700b04a7b5fcc2bc49b994a4c9e7832ab96499e51996ed80c53e6507eae08a293c728fe98e00b63b1513b6dd1be99ad4e14cf9c834c439f7f9f3a57a58b871e5e90cf33a6d0327d10140c7858657eefcccbed258b645edf5301380413fe3d40cdb3b9cbed37e15aa9cc9946271d2cc19b09fbabe844bed05634dfd4ca1eeb099a49deb9cbd256547f0aefec92fa706f2eeaf7c0445a73dde2c0a788b0d6ecada7fc1b62df6e15f963da77b10d31b6fa9fb539666fb238984313c20bf998828c8ce48c3f25be32e998fbc95476c3f63dd7befbc7673f29efd6fe678a4f17095672620506298e5649febc8694c57a03cd14450530e9accee8d6e87d968b458214191548e811618730e203728266902deaa0007f71033ee118a5d99ef709a7c9fe3fb2d214f420334ba73c699b41bd02cbf8eb3f5fe94a43eb79358386f1d5c2679fda3a2fd5a5d64cdb7f695ae108b90ee703bd1575402d63b060c89ca9c0c916b6ef61dfe610022427e308af085f17711d898c2cc0837da1f9e1d885438ddff187f2f93daf01973ea76b3f91a95e7d374217131439626705d8d6a3250db2d5398409979e0ff3cbf0835d3f98058749766d7e93ea7a31e6281055657c83171b48dd1bc389be7345178df10b1664f4c3fd286433b8e29f49edbf152193682ce0f0fa155ab1e2758da658d2ee18f9b7345edfb992ea94266b73f97cb7177a5bd909879bfa421b9a0ee97516f5a1ef27badf3b7c95307a85e62553b88aa1597442d1146ca66e801ff854736d581c059c37af4b1e29828838bfa7835f8e4db57331bdfc28a2cff9f337c88ab54d02f10e236aeb4c020e07fd9fd2b0b0b92bd1cd8560c8db3a1c4a9fb12422aa355ff30276e7beb59c10648888d157a99fc0c042b1e7b413e67c421826bb70d7d32baf79c344f701486fdd2eef09291b8be01cb5d742a9eb090e1abd810a0e5fc1b52b78e9cc1ecfb2d00338811d83db3478f3d11a28ad7152851cdb06dd0c2e4dbdde0f33f2ca000a947ca8cfc9fe6d05b8b5a2fb0e193d8a96441ae52724088cfa7b374bbd65c81a1fc112f656d03829224668eefbf3e0684242d7273cd4b5c698c70f630334e42f0f95c8e225bc705d7a8640e7284a6289fba3beee89fec0faea82abec42a9a9a235f4095ad7c461ee99bb7d790f115cfd2aceda5ad069077b9588f42217a2f13fef28b44a3ceb6f2dd1dd7be64d15b1469e7a44323f6978236863fb6f21d53e9f755fc5e47b7aed19aa161964daa72eba597374e8e4231e9e746942d69cfbee7b90411050017831f5bf3fb656e83bac03bd613db9438b23e23cbe803bc9062d1a32ab093d6e8265f318fbb112fb9f609d3213ed0c4c5039b529cc3cda3491b2947448203f9722eee7f4715fbbae181b38aa9b4a80d31d71b722b79b6dc73f079eb912f1a3a07d8be7c3b8a897fc169f5706701b54363aa1495af21a1a8d7aa630b5ae9f990533c15b41d8d56b04f65ff0b0b05819dbfdce26154fcc54b58d697d5fbe8fe9542080f87ca59edc6cad616d3b3445f398c56018eb899ce8fd080a3abd1ce65076c6287a92eb9acfadc4b36b47b441997ea84256cbc67a441ff47daa5e30ae94715debaa07deb5dcdd02dfa8fd1b86b1a60ace55aa0783eb38388f70c6ab95eddc19de94ab8328180d593aab8a398448beed3a650739fbc39eabf12e01f9d63f25307185483b7259d53697e795a5ab095bcca5656d13b07acc873545365214bd4bcabf8c34dc25f6c515ac88ea2e5024a4e0ac50bf24efceaea2f714c328edf763d44fc6fc782157ee7379aa80704109c4d77431f07b4eb538f6d50e6d8d7f8ed36e77e83a7dfe726c5c68fea5e5a36e5e24296d8ea95c54eb3756dee97b493f48ad60bffc20872fbc429de6f013597609d6e20911e7ce7c26f907068fde1dd698c89bb3673c5f758915a79c2d6b014adebb4a8371989e59d6513370a19c49fcd7fd4c1504cb9dfdc58621d642f0b975124d808cbe5c306513a2101bf7ec886c8ab4f5cc9231904eb92444d496f22a9331e9a97e211876c52242cc425193717a4f95f73f0668af92ad4cde55b8871b32159de2328ec6e0699878db110cc5a77cd25836a69c126e907b3b8b6f64410fc49b6b8e5d812618524a2c4d805e72bd95780c1ceac13de7f2ebcdab06a628219c0c06ae04652877973482e6dbf67e602783d67cc84b9b0c215774b9c7d7b5fb5ff8591ce55d357a80db2479fae0c365a0956679790207c4c717ab7f5e6c21d5360fe05d8019a0471f955ce297337e2e009f8093cc5ae5397bf905186d38d894ea50532ffd753ecc645d74eab669f23c51a87c89feaf89f78bcec138664aeb36c72e3db697876e6e28301f5a410d40d83022d79d41a497ee4ed6d439c2d9e6029ce63aa671aae844d47d5ae7fb18fb6172cfa2b4246751a6218f566deb8784262a67fe35e069ca34daaa4f448bbd9047224965b96b105fd57c9c8240201c687204a9527961be5e417ca3fc8f054f951201f8053d972ab877cce09b852f8148908ee302b284a90ec544831bdb2d937463570dfed84f5061a44bc37f09e02669f662b65b14c18b57bb5c80a1cfc56739b8114e40afa7abe981b68c5ec4079656de77bb348881f7ac25474c172910e81af8b27b7633c95e4509b6ebd0695277625c9c0848c428d63839a7a1a24eef95f10216dfb9a6eacae71a3ad769ab1cf8b96babd31edb8a3f1e1278927c8d8413b6cf9caddac227c7b9680c858a3f5a5d509ac9b9b4042378ff61a58d36fefc43c8fa5cab5203595291bcca7b05b10d0383b8d66549d5d32d0819e207e1d7f952f59f01a369e93d9bd34b9f4945278ef9af6528e5742151300594c1daa04527bf2d4ea0d2dc801015a08e59fdaa9e491fc23a667528dd46b00666210b8624071badb1718d57ea918833a8d5b196e3fbb634c4da97c41ee5f77542bc0b302382425ee8e56b5eb05feb7b0451ec03ab46796e1b8f000a1b6294e46457430be1e781b2d790412f982e6577fe3a5399cf2ffa4d2193df51a43977f29a27a358d6c04849cfe06ed16fdd8d83d58ed20e277e644371173e38f978b368936a43af79991c5199561966f27304e3ba6bb8553b8effa1b57dbe16e47793cf44cc634f7879e19b0a5bfccedc01d3f4deb1541f74be415b9ada03b2d57ecb7525d39b2a4d6dfae34a8ee6db66a23cd32bdc75962d700799e1554a9da78013bc5185b0734b8ba9b542861b7f7e4992ac6b7e0783e4575369e7e6919d494e921e7130d8b1f2ec8a07ea2ad1630712c61762a326e7a09e8f97f20b908d7ed6c418e1a34e38bc65abb52ca0d8a4e1b5a68c347d5c45693f042c73dff6af71561e561c1386139e0f2878197df904eb5f88bb616a467c0c79a6f16525c233a58371fe33a876e9433c574456925ac3163ad2291abbe55ab59e896f894d30cd6307064c0ce1309b7df40c4dfab056f78af74942bda06675f1a4d331c49cc925dec207d8e93d04f6d82805fc3ae491f7d421eb1bea9a420e9e7329d488795d9528c72c24034371f8ff2d87857c5e0e55181ce56114f829920b475559813dc76e89d23adfa9bc6bd400c4ffe7b5f5b8f048b7b684457d06ef83ae51fc25236baf0c505b4145c7e98ec9e1fdc398271dc69457114b7fa81c80663c7ed7aa49c853d637e7a6e81640f08f5380f49ec7b62d26cd06abd44cc6d7aef54983a3fe9b5f2ce064f68570052f59dba87563df9fb4ae40c4423daabe9ed1e386bed285d1b8d70adf91d48e14b941a7fdb33aa0bc94ad66b77b5ad5fbfca0e157f5c0f1d02a01192dabca216a154cd8fc85a23f8bff08f8a614bdfeaae2e3ffee35692b04a8b9b6d580f92b6bada16a9876e56abcd3263d9ba0a579309855ffc9be5088312acaf069f97f65ae389d8c1eea49e3086a0461abedf6b661646a08d6514ea66ecc958bbadd3289e7385ae7c6341cb3c659b5be69e6309b2868e22205619c90ea9c26afeb584e1a30efb12b59d8b9ea39e26fe2850ab5689fa80c29a44e54391afb603d5c913a790eec744fc39ec0adf7eb0839f9ab8d44395a365d403675aece5370859da6d280c41cb3b121c197f905b775860838748fba1ab2a1a6d0b6480293d623706f1dec693772d6fa17b05f7136cbd5302f28910486954ad3a44409157dc403238452aee507524bca33a967921b402b108e47da64fc58d42b21f6ec6e50c959f153adab94b68f6594b92be22382dbd8cd7991723f60231821f3b6eac0af58de73c04c4e05c2a73d8b163ab1f77941f47a6e239b2d2b790881e9a31337683e508d47391210f0d01805426b8432933521a99a1b6c3ca2bdd66b62c5f2f9a57641567fe71bd5bf4f9cb56a5de8315335e8f07077889161325a0430ee9d8823a22b116b6b6f8765c05e89432c77a5ffc0308133c147a55d41cae32c7c14a3faaae981688ab9dac9c5b3a8639c4e6f73e9e368d7aa9d3b2cccb7f8a1b8106da397b177c5c31784cf956d6ef5bb7299d8905a32ecbe5121a44fbf146306f70e1c7978f5cf1b5d9a656f7096782b9c86b90422a1de48a7a7b03475a8311bc4f80cd0ef63b8b2717199f05d0a38a62f0fe84bf79c2e1939220bffb0275e3a04f2648f655cbd46b0b2a2e545fa37db8ec20229396f2d35fa610c783a63548c782c0ff974bf787b291b6d2319b9a7721b00b4d72576259e94585affef75dc49adb812bea8846bab50b2e3a859fb8ab2e51396ecfe86dc320c16ee3c419702c17b23bb7ef5388e69addded62e3bb92dba8bc4e3b0492f7cf3b20853042512653e4346ab7d05d30db1f252933f70476b9c3a592fd2cee4a868737eb057a718009f2ef978518cd289b935bce44af52f7f31e1b4c1b59da74280a49fec352061803cf8b32d5ae9666ac219710e9bb563c80126b7856733721f2fa6a4e55b857c4eb98976ce94b29278da1279a8564fca6e2453028dd2e076a5e722037adebe29a8d9ad095ee291b938101a29bbb695e4bf5dd72b80b646c6229c8252716728a0145693b74fccc22e863e2dd001450d3f8d8ec37cb47bde45030d7740ed3b14aa277b519468429913a222cd7326ba73b4f6c44e42095f73f65e827195540f458f9d435d5651fbfa85cf187e9c087c35804a2252aeeeb0a48a9ac52a49ea5176cf197115bf5a47df1ed7a54b3261ecf620e5d4cc47382d664d144d1ca7829ed2ac12a7399336d3d6c00ba5406955b00b0b3b985feb9cc380581711068308277a86b3b26b23a70e80b6aa8bedbdcad9012b7688d25b06830e1b8f6e6b7dc4830303c0f9b66467a91321b1b3e9018e631538519a8e6212bcff2f35d112589815f50ac2810499cdded9b680094d789fc1bad61ab3218067d99784339c875aa03f4d930c20a787ea16afd1edc83502365f178b0a30bd2cbfdeedce74ed99c6ec18fb375d2ad14527ba87cd902f435b4bc4867b51a7b9a8c7f96e541d65da5c45db65a6266f1b8fa3f2e6b6742b1c66c3c4170391d00f5d3f125800e60f22f12840e2d7cd5302aed67c67497d16e888808b0b14a1cdddcbebd040ca53f00c0f7b31401c64b665f43497363e1e80d619f78b596ad07fe4104e278d6c056878ae91af3ff4a79709c4db9695ea3de096db11652c8e08310cf236fcfa6a91ef07f8949214bc56a1152786a55a2e5dcfdd89798862a67f9bde7f9c431869ae20a21963d9e725195496f84bb36fb25e09e57591090f1be24508465372c9d09f13f42a6a8c55849407fc9cedb451778711ea32bb4ff8071e3ddd0b8df0c7c82076eb212ad7eee46aee9b4aaedd92b392c7ae52b387197f3a70d2243fe81b7b478f3bd750dfb8fa33ff2be2fea15802f39ef53119981f9be4550251d28ea6ab1a99db1aa20caad8b8fa49577bf6dbe19a720ad5730def619c0eab2dbed39b9ed37585d81de9327cfcc6f4a8fc6cea81e62039d445ea1d77abe9af35f22f034f06cc3a4c167db027dbfd106ac18767e2803452580288769e4f0e14522e2c38f52902bd46280ff98c4adde6d9eed8c6415ee02d27f5bd770ec30d85faac166add3b671382477cd4c784bea28cec4a92db257e20c06f53d3920c4ecee5c04a1d8e7613090651f08028a8d8d4a35c3ce9f6a48f8a88cd5af07ec190634a485fa93e57b1ae9cd5a32dce955af096b2f0fb4425fd4c0821736a702354daae178bb99d6b6cd4560e687e1119d7ce8baa348e8fc0eb4b369c168fe143706c4abe90cce7a1b893202d360dbfa1952a3f23fc7db70b10f0d4050ce28b171d78f5458db74d1582c7657babe7211b99257d1c2d3403b3d2a7decdc9999aa38101aad01722ab909a8dc6f8570cdea915c229dcc136bde1f5630293191fadae072b94353a068d41e7cadb6b09f09a5a9d6ad97bea98228fab19302b9392a99ff2c1b2ffec358855e6a40b17c9fd7d0b8369f960dc83a10a3640358196465f7423b20770ebd2df7ba1066e83160f751ad26e88618cb567613d5769d94340f9f986905865e6d57b850721c11306f650a2c00f5f97a6014177fd5f6a4f92bb40b1660f7f4b57882f9df4e66d514ef8af50b1430824b5cac5ec515de99e0ca7af08b88c4974760c50d2e58c9c25fb4cb81eb1e629678d8cd92c6eda8689ec2553d69084eb7b22d59aef71105970729fa276dc387d69c954793bc163bf6b450c7e3b1b18fe9ad82a6cd826b0c7afb19314903e5e577e4942da1f1e09e8d2ae674b5cbe90100838a645e6576f69a9303c4b0d8de0c15d780ed803c3e13a2668f5f094b4d4c8caecbaa400bf957047a1a11523992923395281b3624284f3b43ea8e116f3f593a2482829698f2c251cd9419fd56e0b778cfdf720e1a2917bbb9726c0171aa2e6e242890b76be84593d8d8b0a14e23817ae1ae4a6a84327a731e04b21fc1fb30d6712c9e3b4d3afee692d64dbbcb8ca135fcd4c4c60346b01744ca51e288da28eff16a6bf2f870669ab17a531d5b7bb1bdee948971cb908291a42f7b85f690d18fb513489ced1a294e5919bd37c996ef53e9d88dbe0a3aa3c8cfeb70ae16e3602ad3f5bbd0ed9e3390673860869582587085fccd88b068257290d8f4aa2b2835f137e57728b4cede1c6291a43f04c886f5bf86aa94981c51d11e8df9d5db4fe9cfe4e38ae0f6126ab32db009cf04e242e23f3cc00e51a2d59e2ae39bb54b4d5b25cae600d2d92ba2d62a7561c1b6fe9db13d2eeb9912176a50037e45cf63fdbe4896707b990b817701fbf2bd86de1ac737608e4b50a0ce22c33d95b83cf210613c94ebaad90d071eb63d904d9e661a3aa05c7520a1db4b674ae48cb877244ef994586d851ab013fa0e2c35ad8b9b3ec585d59f27ffa8cbb39db6f98fe3da355c34080145cf314bc3a103e1aca92da0672befd1261eda8be5c6cc7d8692d179ac64c42f609a28d67475b0a2337af54558d29d71398477b10df95dcd6bb1da94459b7475aa6490483778625cb67d8eba2fe11d8eb1da74406ef76c391a92f167dcf8543ef5f623a98f556605b5e88aa997e2b4aa4b8e9007a0409033acd315e94cca4ecb86f2b99f0c9082c8ea1c3214a6314e6db096a7f480d2620ba983c877a832df18f8f1a741b4f3b4616d77173a968de4342ed5f07d2a9774d2918ea3c4687e2279dc053746bb64715172e3f840e09b8cb1e277e8b7d7961ee5884d394b22b4619e461e307799c33f2aa99504fb6653834c96227f93277388b48a53e0d9b75ec03b596b48c9eadb1515cdb549540bf0f0a3181d4a0dd65598db10425ce849bea913afd7d347b5ae2b9ac5dbc07307e1eb35737860ef24cf0997cf0fe4f1416868fedb41e4c729cc6b690de21a06fcb34ddd2fc5beae30483aa494dfcce934085151fb525a62aca968bf1e92d0bc9b8fc4e494aaaa2abd39012ea38955c7189c3c372737d650e7c6f332a247fed6df9d09ffc272ab24619d979e67c9cf4c032ebda5fda754acf8006608d646150712a82713c0c1c4e360c1b73f7d03db6b5a2763eb28fa6f1dee15989de9f5db34cab4c65ef097829008660bf8ced91442b445baa088b6329f3f78acdd6a2ec165a06812b0d4f85c3addf257e486eb25d1ff7ffb158fcbd9f898f5754a19cd6d35ce9a0bb25f372694adef082818477ea3511617067824bb05f1de3256079093af5adf2f8d915ccab68af28c9c279492432ee832b52b12d06f802c2e8a80cf0c02e72cdc55d4de1899cf540874902b0f17f109c8f08e9131c1ce378c7020c940af2c01fcefc6481fe00e589b28a5f8945add18390ce7b31615506e2d169d9141a93caf21f936b9beab06f37ddaa521320eba26a72b92462ef73cf2a8bcf1d3de5432decfe1412a4934e82713804df2fcc92dddaf437cef64b08405bf9983341d89c4d103e055ad80c7f507f2ca8dc8f169a23791d87a8e4a1ed8c99771c61f0f9193f47d1fe93b7eb6cb15f69d75aad8722501faa3c905041bbc29bc029e3e21d9a3c66362fae4e99428c608a88d2bf1cecf734c4bec4b0f5537af92280c76ef9e4b0bfcbd7d22e6bb2548767e7281497de796729c8eefef0579d4f9554976dff1fcf7b28ce5629707297dcf7d081723c829f23a0eb76b49fae3a686cced11c9e56bb3b11fcf72a86b996ec3758e27bce86cd72380a2c8bb6046bd8c98b36a3d9fa42c9b1df6bd0dfc7f60ee045a329923dc41d8cdc393c304745c6751ce004456025d55a0a3e8e995b7a47d691b3d87b1df036eb6e6fb7be2be3c8ba842e900a3eec0521a0fe855f3bcfd12febaa8af73f4a6e249ed58c68a7751407be810d0c3254d960ddc0626eb06aaa4635ac4650e2c8d062a19582a87669648a35c43b223b451a598de9d66a0776a6df0718c46ce95fd56c7d2f916a989b55c44ac5632a3e5bedc3934d95a411cbec9d2b0fc9725891d96a9000c0aece9d22fbd2630ce082feb59464a0df5aa300e2081fc5e6e5da8d6f3d071a9c6f210bf4de95881978340c56c7893204821787d93996a27d013ee51f56686743a75bec3632d0f0df91e40e8a7b2100655acad41ddff7373361f6c680f709253ef38c2cab2bb4c8f7590607646d5c0fe2e29ca221a2dcff438696d2c4bb96a6a064871d1c6be515d8a973c3263a011fc1d17338ec2695f15a6b5b7823438f6d2f7f620cf5c5fbf18486e5c903c7e9a46c48b8c912cba3e3d823a2e9bcf5c78f7f47fae523e50495da9f7ecf7d8d811ca4e7d8e1d0023dbeb5766c99dbd6e66d4d856cebfba900303f5942c171874ca5f742c4e011b3ce7d6580e04cb581e8b9830c9d760a946497c573985c08f35ff1a8f371877d2f74056baac9bb0d8a9ccdacf4b4ce0fee98bd0aa9cd57122de4834bb45994d99383c182b214c15ca52751c8239a0c8e5c79fd5765911a916e973fbefff96f5208001a8f0e541b5a337e31bf76810fa084d734d45677066e504c4558a751e97c2027b5b0b53ebd10f7efe6ef1e5a810ae6f8aecdb6794fa296672263b5670223ede689343a2daedb13990b8d815debb8af14df6609736451ea624f3cbac4cc2d895fc2412b9f7aeeabef41c80285da184ad6ea2f8fa3e797d84bfeb753f5553ee26a6e71e8b5344bd0386b03ac1114058fe10477cb303711a243399f570ba4c73d1006ba6cb70448cc122e828905da322b49975951a08555250051638b1bc2bb8311bc58198e490639ebcc55f1a73f5371163ee0805f82f2744c9b603cbfdc1da85fa0a23449497daf874c7da2028e5afbc591affc3f92a07783814a5d946e0ba5a192e7a39971fa617dea73d066b89fd2c6c11768f397b64719df9a06ba7c0e57b104d16254283960bae3a7bce6e0c57bfffe8c6c924c1ee512b01e5957e3ca351e8de65df52b74cbfc8a9374d8eca12f47b6d21c1b284b33880ffaca14b25853ab4922a11a8412ca57af72a859298ebeec9a638bebd9f52a2986bdd89e98dd44ce11bf3e0502d29cb452ce53c7ffdd172e81e0d048519e9db7a866ed266337973279aaed1c5191d14db0581e45ba6333c10890ceda5516e786066615e286c93a35a244226a971b323393d3f03a583a274f1739b02cb0966f006804ba8abebfe16be0574f1ba697b7c8fcfa36d2724588f422e28f30e220ef245dc133dbb657a4192b721004ba7c7d451baeac7b3119d0c04c3fa5b86f2ff9031c857b18cb035fbb5f0a3a18cc2e693590d0616a4e3c67394bd919feb6f67543afbfa384d178267e541b2ff471a4fdf8069ed5142bf61ed62437f21d59b8549c74cf0be9f7f8ddc6ba1e67544eb89c411b6aa7b5f41a5a85ba947b9532ebf05deb487114b06d74aad191c29b11084a998f0660ccd887e02622f054cbe3395ae7d2f91b56ac228d73e86d27500a83dddad349449d49415d0dd1777986e999ed3199c16204ec336121b13ee29b450a76b4db6ff6ae5265d38496a3a97345fd73431999b0f8d70077e662c073cc3fc4e62b454fe94afd63ea4666822fa3b66049bba963020f6f3665a8ac2fc6d52406cc17cf9c4d01c52fce06f30642088238e54b7b638fa98242378377b540cba0f4eea21fb72e261c5884e6185d3afbca7d7b38476bef2c034231457998d268403ea1cedab4e94f00400300189265b97bde53dd4d279b815cbca1f1961edb8c6191c4ed08af06d99ee20ce19e197ce1bdd1e226a5171496e2bd273d1748c6b8b3af4327cd81c16209d8ca08a5f9aff70293a616d7155bda4d235413a5ce51914841ddf76b7d3c4dfa8b6d6c15a7d1e59c454841d07f9dc34728d5132212b16334c942aea1c16c41a9d89cf348dd4275e6c287521e622a4b078b6b1049dd319bbe5db8ef483d4daaaf775cfc50fa4dd8fbd406877e3bd26ffdd6c08f202c974c22069431518cca37fdfa22d611aaff2203e01e30bc33cdaf91a8d64b3d5e1aabdedf3541052e275adc3f46462deacfcb043c8a33dfdf2492eefb2eb4d47ee693976d54bda1cd4ccb068e8c05bdb03e2f54c1d08baaed671fded8fd6a9f8cec0286b1c2993b979c06cad4a540ddbf070f884915c46a501f64b6edacc78beb229a78f5279ef6d255c83bb88c170770b80e0327188114c915f255ebb953406a9d2164627be68b4097967e60531e3b7b41360cd500f7b2e3035f30b4804d6e856e0184c9776220ed5436163dacdefb1296707762c76f26c49bc36ab0d229f4d2edc90a41a6546b7d59334c2e935518cb880fde58e4c7325c413b08d9540cd0bed2aa627610d52c268f5da4c6d7724623de46672244f2dde4f46a264c7e52e2038efafdd72550f4cc59476196ed9a8db9fbad203059731eb516f3497cb909808a6fb5b7f8e005370bc1c818b35326816fb2c0e6628ee6d9cfb400bb4c9a73d59671f7c3cec487b60d867a58ed18e34a0c6160dd78497833c303bef1ac53881871f58330b0db3e378a063e5a667e90852514507881236a2ab37dde128597728bf1583ff52e7ce68645fbb6c8777e63e75857b9139afb9288a9e3167c05d40f4f9a0fb694363a0ed3e3b5ca931f0a85bc2023a61c750ed92085069e60ab51720529d5944c0d159a4ffd7e24d561239131cdb189c96d4bbe5d22ceb4758c0d6144caa22ed61aa5422db11ab3c45297196e6c0db4622ab6d11f976e18afbb4bd9d7584bf8b696c611e030472cbdbafe217fabd7e11a0fc239ec9b1c900bd9c586d452060c218000e6b5fd3d845086d8a211fa23ab77033b2f6b7cdb66711e0a4c7a6ebcaa6381b1f6bcd2dd776c740508fd7a3b124a4c7d81362930e59a7b17c1e6f89bb2eba0de48fa7428058fb4a8b59d8bc9fb367c7410f8449edf129383b09768562cd4e15938f0e32cef0a67757cffeb3eaecfbc1752d846d52a41aa7f97bdcd6bc00636d9f474a44b3e5c31bd26d8d130563af2dfd03c0c5d1e87dee1295e0a143eec638002d91f00bd8c5828f0517018856a7b02a9d67362196c31f0ce46fca818adc152b85d51ff7aa813dc0ba6be1eade990110e01dcfdfbd93d0b1ecf02f0e301e8fbc3fb3b89494208f81b87878fa72f8401c46f9eeeaa69a87e6a6b8a44da93be60a179e23f410823c0b95b0b26308b6178a52de34f8fbf9cad330f88705bed837426d2bbb33d683e7cf148bfa4679ab6bb1feb643c18f8e989b05f0ef367fab2dffbeadd1a5c444913c50cf31051537f86b39c00b0342490c44db666902619e8201a9b585581b7dfaba8a8677a569c7b8f77692a37dad5d06e27f3574a61ba27f254017b76d3e9872803dc206ec1746f8e95e9a12582bc14d3901f854a069228e7cb2afd873ef5042ab36efb1243ad0f1dcab4ff1eaa51382591e00ddca857836b78094821f1d9715e894bd27570309de6e740f6b45295114a63b9da4cfd16ea81a6ba55bade821648c96a3cba40db7037541060c080da405ef51d3f725e10c9e7751de4563eda2853ab8c2dbc90e5f923883075e3bda39ed46a55db974a29f38a58b9f3430aeeeb05dec3032e9fdaf02c9208c254978fd8fc982ce8d2e3ec3b9197f4cc268324df5200d0cb659121c17c9377b9ab1d550f838978560f6f1c218cce9a058aaa80ef982748c6dbef156b984143fce866d08701fd686cafd8cfe5d46cb3406ac8f6dca95b9577d325b060a466d6af5d0a1fc10de7aaca412d26c17735a8a201e8d0454319bdccc703be1e2c5f4f7e66a7cc8142ec5a03a51f860287c1bb333658230ac3d2fb1efa3dab84b19ede19285d0faea8e7c72ceb856e4d29facfaa9c2c51f983692f20f3ebd92c2729755d9c5314f98868051a73d8d64e38a27c5af6bba0fb3bb911fadb0a8b47df18c36448305cc320304e23f8b71f8ecfcb753a6e20e029e90d432a55f856ba661a8635e5a227b8ecb636a8cc65933bbd5d42479eba198557a624e5d7fc35863af127d41ddbf3fb3ba5afb50e46761e619342b293ac58400d398309bebc18b643f1acdd460e07fe865cd8796966a704287e069c9d5e7dce776e11efc3c410588c85f2009df70c3f956ca16fe1f2d0557c81f452affa21268862b29936060943aeab3df12850c39ed51e3f6c3cbc28acb6d33f5084f08eed8826941b08550eab127319ace05db6026deb6bf8d1bbc09453002f6d8172bf80dd3d1a30b3e827c63783852cff610d6867017b9ff38967d97568b20a84f87503852298592edebf03d89674e5d42667b227c53a1ea8e318f686bf4a256dbe60f1b0c0db0b2eb49b98fcf89a9d847ac6c9aa4ba79b272dfe9b998b3f8f3b414ede7af887ad9cd06461bb0c8d8639ac8ed972e06c5562ebfe630caa25cbf5c67158c91e3f7a7efac05d9ec62da9641390c2f7813a6ade49e112cdc9b54079d3b71ec07c9d8f6eddfa4579326d01798724124a61e4ab6494fa1087edf2c581b42a1dacce03af818b3afdbfeb56e36ee65b102e6756a347bf6ff7f9eea0b6e1f766e137c5317ea2f64de246a47083109138b754ad56308bdf0555aff70a14f0f01f79d984b0506a780141b4a368bcb2ecfba48002186fd6af820c49081a67a736b4ecd6260dc4104c0866d041146c86e1825b55699ccde40d9deeab74bb5ecd24d2c7f236e3b84b127517506bbe01205eb25e4798e77a1e7b7d715c639764c0592c62ce35b772e04fc273ab24c6172cd2f303a47a019a1b9fcea77d5117a235383eda5317a1e835ea6a7911018d3289b4c104f0aec8e218c35dd9048dbc2f476920f405c6c6906fb112b98eabb5fe27fc4326ec05959acf564b5fdebbc668af566d4ee89ea63077d23ef40b61b2a824a8fc876707aa0eb669cba5f2532a9df3af359fceef317ce3629eaadf73a3278539846ba76f79fa68327675341fd79b8de704eb457fb78dd8dae2d74bc88595e933568794abb583e18c28e623c14ecfd8b4f5e7f6059e80d69428646759b1ee44a0ad360e5d34b62675749d7b2b8be6a493d6fe54afeeb8e952ef08a1b3a7d2658e7118bcdca0a95c90a13a10253544d5415e9ca99dafa1d7b8a2ac3f793220b08c31ef76b4feba6ea13d1244ca2aae614370c40f630eecb1cdb27602e0d186e93132d4e922fc8315133d9bd30b56f7615f7119c08b5a99b17e3c1e49327b676496890f5d98147aa475ab2f292ad39d8b21acc92111d0595a1b4235fb4ca79e25d64b27b43f835fdef8eb02d9416797ad57c51471e5310aaed87372bb1fb111db95c7f7887005f00af3896f60b946c64395405b706d345aa74e883bd23284199a76d2e6f53a6d73ab6099fec5d32bd030b214ea8400b8e549f724f2a01e9b2466a4258411e00320775ca7ca4123bd510a4950f4d46cd34a55b556c55d114e2a714aca285658bc76bbaa3a20a80f44a82839ce6c7870ae06104b9a094e4c71c9e01b966730cc3503d831e47dea54b3cbd826fab192432c23aee27459b3a5432ca4cbb760b71d8e29507adf55a582fdf2a3f6a43d370b66ff8e869c002606ad0b9093534a225b04ecd83343335b7bbbfc9d54e9ca4f67f5bceca7b07325eccc6b87b12fc0e64e6bd2dbaec124b0f822d6103020a456e60e1c9f9982d63de8d8ebf0e670ac8bf16b5d2362f98eb2044d5aa83ce50a9c8e6cd04214eed23f214bc319f666db24f197afc86955c8007ecc6377712becf95608996db44142aed160c6702b698c1b324c5605017e20659c940acc8861524daba6a4967a376bb3c4e80bb5d3c291604a635c3f0b593554632f48ce82a647c9ef300d02497dd6a5dc610e4dbdafd16404b810818f9ab79330447c51210e1a3bf5df734d6acdfb628f6962fcc0683a3ddf772a9136e50032326e8b166cf533a4873608330897498c677a5c1735407b278d45350bce7a1de1ed6292f92f67fa21e0cb83b7b536490181fa3f2578ce143d742b6f2bca7c2bbab868672b789063f832e6e43ee3bee1c70f9ad19a6a2e9282305e827cc0bc3168401d64a41b4537b822e5f1f26c50fbf1d60167f8f249fda80fcfc438e91cd0bb038c317330942be6477ccf7d0b0305f6b1d1cd1f7736e0c7938ee7fba4806bb3d6949067906c4f3caebd335ae15d1f5e0cefa32768a1650ef4fe3f55f34cb71560a258de5b51759b59f4ffe1f15feda76923fb4ab44c6aea9cd614e6fc78bed69cb02621741e9006bb4e4bd3a3184eaddf0a62d5529b916ca9f298fa892ecea15ba376e103dd338e3e59283b45d080f49552ac14bb2dafc06ef97df789fae30cc0ec20d4f2a7ace6bd48af9485c075d44c47146b6b8e176af2cc48898d8d812cc283765771a05d7f0a151772f85c4d70d3b38f9563eea9936fcdd13d4b0c0879ad2a755b73f259566963e734972b482b900f721baaf1a42bd4eb9a131ff0fc38a105ce782ee9696f13418d313d2da95cfefcb5a5c78b98b3448ce5958577daed1181b8409f13eec9b5addc192ad64cb9291888ad49ec06a59538b24fa0a64d934688cb54047952edeef548b18396f61e3415ed8a3f7b860bd22214bbb7d703dbda0b57c360dd03a8d4dddd9ccff2962bd32e9d6dc0e5767dba778255b2db69f13dd8f779fa151969709b43987b2c0c51d1e46e33653a9bec3e81112da1aafec134bc5f5dde6d22b13da15778577a1fe48c0aeb60ca152be00699bd0d35a41b2455ff8bba5a1ad172ad38242b18d1c0fb7425e4b911df2c8aedea3171456054d38b28e45283bf68e0a4ec4054d43bc3d38f1b2b195e142bd28107b5764b0fd0989814fb39ae042d0ffbc3e53b89c49bccf831bb2f5ca796df84462574e56a3e958e5cec18f7383d0efe4b3b8696ece40f5b5bf7c4b66968e66ef92e2454364a2d550c9030bd07908aee72b18f3fb5a8577bd6d2ea9f89d3f8e86d2611004fabb429a9fea0243d01de8032675a2d38b354ad1cff594b1e1b6952c02f9ff14c3a9619881f12919aa3735d0aedafeccf6fb65a2079d373c4dcd63e7e9e0358b3a76189743bd632bbc8bfa04aec796cd012e581db0ff6d54a625bf218b78a04b1b8d9b1a6cd04740871a65b2e7d5b81cf1115322ebe6fb26ecc68ea273cc8ee702bd81b0a0dd98bbe150f12c63544637d2c79140df2d34fa828d8557b71b2aefaa49e29d4e7d4ed00ff903eb23b0d2f0d88fee0ff1aa97407c45293fe7e3202a34af68c6a6bc6d7fe9797cbade22f632d9f2ce3ef1971f01f4dbbbd6a5d684e0ce951ce99d2d2c727731a9ae8a14c6690087980466c891306977b1dc9b6bb17b7ca00ca1bb4170070f00800326a88fe04569dac5b2cc1325b0fa4b1c564d68722a0622e6e0b4809a5b7d545f3a6bdd71e8e437034416c266a399aadd176d0ed7c1bf700f915e82ed2782226fa731d036f02ac6b91578ccd53c0abf615ea2839e4211616853e70fdb4a4685413d224754c84c54e4d7e61884bf23ba7357da18436b4179c0291accb410fa0f374e4b8852c3a8f5d0b8055bce3b66990e049b78672f1b4929f70232d38ae501cf980d46f8b9781f53554be516a52fcb2350e3d1ea8d4754c2e8a2b7fc7e5305b289d70d364392a004d41653655881dc4f54f8fce789011f0db3c9e6043156e31146238363ca91c82848a19dabeeee7b185c3f53d28aac1fb36f3c034e855019301f12880b548d810b3c2d6b5f2841818c1a008b33c36aabd852615a1af9dfe69e322747dbde74954901e30bd09df42cb9ccf5ba0afd8a3d86c063c1235b8a010a5ccdc5c42c71d8b4360c3f19678bf5099164515ae6ae6c5e5feff37aac7f0d944524a337c0a2d0642366fd263002c6305b54d49e9674d4e8596e383db3f4c87be928078c5d8efac7d27eae53cafbd721013c31577853115125f4aad448db8d5c576c08903b20377e3662032cefbd51fad71e57942141d0c6bf26d3035dae7ee50ac94269fb783f3292870c88f3d42c243c466150c11f3fbbd35d6ca04a40ef3f25835f20cec26c2ef4f7537c2104fe5341e47b0fa037bfe0d5df90058122e7906cdbcf5e5aad61a2a9996147b8d60c62b5e9fb5bb11a6040a69fd9974424308a881de1c90dbb545e389ef78c1a310d8400196b133e04b513319521fa6f8df9d80ebf0b876a05f2049d18381ba2eed42ec478dd7be3090fc538cff61b2690d2860ece1fbd2847a9c0be9e1d0e590cf5ec816957c01529c72450913f45d0efe0fa8ed1c7e046b9b410b147c0a6aeb6f3b243d4e9a48cbd9f106aa88ad00b3ffaa85ed80be79bdd9a6571408587142461c660bb8517ae3650e24e36d282a3553c5fc08449a28a464fa7d3227e6952004f73d63d46296e507306b21be4556a10b21c24c09d79640df7e277071675e8bf1f7a7aba9b2c6448e12f4f7a7a5b1a2daf2e5d67c9c723248090800c08fca5a40fbbe52edcdff01194576987e31ee76bc624e9381f6bae6b6831c5d3c98ef45f9145fc78c6131f581abef8f989427d8c90d021d5b557873476a399b4abea4367e0b98145ebe06dcc5fd9a01c2bcd78e1283428e450d05022450e9cadec33fb6bdd8ef887c5d37500b4736dab55ddb9d47ca76499cd7e509b95a9b8a2e6c61851b2c751339566707a76799b5466e863a28dae504084d32dec7c3211ff901d2b0c2e8a14011e897fe46919c707da9c802191e41a32b718d4f395780add1d16db58da40d01d3f5277340cd4ea1f80f622309f9fea2ee26ae6448f80a70f0ac2185f129f0a3ee8364cbd6787c6f45622760cd3f852ed3b5776bdb1dd4001167f77e60f773affb3ca9d033bf8587bfaa563065b82317bd4aa2e4a74e6b13cd5c32ac6ac0d880a0ef10ddb3278521c3b1fb6032a0de442e75f30b0ca9eb37b4e77bd478eb65de5f0db6de1a08c656a18764ef072a096544aa06ff5e605a811aea1f3b60122de54a2c8352410d8b3fd4fea50d19f8afe1b2c1a5c4d63955293949591735849cfc38889398cab52493652e30833da5d36b8b76b1b6090c118bc56fae19b2c4e1b9f27d234480d557c457f372dbb43b73a2e6ea99107f49a80f94c85d9043081cddaf0e1149001414d4266a92148ebd66a0652067a4b86fb9e53545dafc44bb5ed26361ec28866e7a5423782bc01d9f097b148151f89d96559ec1db572c48fb836097419881b9b233567f4328c87848b5fb6c59ea4e37e63e09200468254d1bcf6ff99b7a9f9604173a62b6a449be970b1e1857d45b351e77ea473ca67caa225f1264013df5b75b20a13d01e337175b111d94110ca7d80e1e63cc8574e2054b7138ce2a1d9b8104b7f4ea1750b9b6da1819147ec0e0691da02703e3c7fb248373ba8570cd37f21d4441ce2f9870d24b7ca0c57abba79ac434ddd0e104d88eefe6a21850e5f4261b195d5844cb237e5c28a527455a84d410ad38db0bec95ee6312e287eee160f245a695c795917392acf6a84504161ab22492b879729609e8eb84d5b88eb6604036015df32570944a52d82a793f9cd19cb593143f2b82759746684d9e1ced92635fbbb1443c1d3c1154d09eca61777dcf8c46bc5ed0aea84566a3f93ca556c6d282083bbae4e4340931be7a2a3c47bbcc0833ff82fdc913f2f1cc6882dc4b664f383553fc6d1d493a58f82182828913ae9933b8e1d46ba734c3ed02e1967dfee76c6d7a12e9ab78efaeb6b90b4df2198f4623967e7a638da16a13aac64e5538ccded2eb40b098aabf0d4d3077985410be28dc5b9397130f49a8b2ea4ea2e5f371a2e34ef2deb34ceebf350122c31ace49ed85b107dade3a26f5d9e504d36a5e1d9e30bf56d049934d07ec7f0e134feefa563461bb73a41a4ffb335f24495b28780f64a48eabe74a909896b3562f3486c4b9d51827984c8d8118da988c0d083d86049814cdd52f6e051c820d8ea46de63e7f710b8100651538dff6e6824ecd9df0e2fcbada7abef10bae6b84e462b828cda7b60b246bcd2eca97382576ddd24251decf7cc7081e7829609bdee43e338ca441daf9701874fd3bba13782fb05c23e586a15666b3cbdf92b6ce34576e37e20af4c59ec34c22674978d5034062abc7cb39ec2b64f24bdd2129f3f72710c18dc77a964e5dd258eae832868306b16c06c6aafa8267004f1327a6b00333a367d7f01e6aec58763cc4faff9be95affbbcf37611e67ac5ce55a440cc487798be697f5447f29d5899237192a7d74c9d3b2270b3a36ebfc49c42d7fb229d29891357b01e2a2198360cd0687b1d2e0495589b2f4e38406bc4f9a6407de17444f61315ea0ffee76b0d5287309c8aaa38ad546748462d7c5f5b873bbc24ec9fb7b0bd488d33bd92eb6c4d65213546b563b4402a65f8efb0a0d142fce89b317fd4c83fdc6a14791126d8f3b10077194be3cb9b2c2fa918654acb5017f2732e6e23e21cca18968afc4eb9b3aa47ded521b40ed8f2d2d6ceb4714340cf997e15b632822853b23f8323e5ad192dd70cae2a22abf02140273e1f7bfeafec0b850ee30cb250d90ade5d084181e4b87dfc0c15985b2256d3ccd1a219c78ce8597fd3b024baef01b3931926ccff32e4002b8b1ad5c6ad5381ef54ad7bb3f78a3d1deb6ca7aa6fc2ba070c27e43c55a1570528b7e36335160253c7d5c8ae9d68902dc1e6e27d96657834d2e60eb8ed831a260e07e307a6bda9a44bb1cf7de86791352cc78667686e60e05b2505c4a4c351e696e16ec514af502860308fed0da485b92caa676931c2864ea179e987bb0032f276130a8efb7e7b7cd8fc43b30e022e160c243efa72cf71fe146242da622207c09659fcc2e030c3ab96b73f2b67372c175b4add20e65f39de4c034d4d4bfe4ffb28901360c70660b3e5b0101dc656ba8fd83849789172e4682717f05129129d578f44dc42a38593e22113ed464afe39119515063bbc14d695accd673f1872c15e6627609501ba83982b53346ceb56e825ea3a880ad256aeda33be9fa068bcc863a7dc678e77f2d964dbc78b5e39fecb9556426924af22254a7de49e86b926930e7f8ea227d23e364c70b765b2dbafff3f9a9aa22e4fbb270449862dc3dd4fbf5148bcadd455b209e0873db0d7ceb19a73c51c4faad04027b6a6d29b91c01344d1cab9ab294e42ff57b70bc24623914d782683e123f15f70a9f33b335ae90b6b90d25da8f65459fcd60480f34b85c82fc236a210c15658ded7e8ffdb61b1ec433297c1b88d6bce9994a6b88a4176634b6ee46b1ea0fd36db333438aff92d4e0d3671dc959a9c3607da12c0cfd60729876a1403210f2ed0e4f01cda520c3eb4c1ef2614d97c41c74a520c930db356fee2272947eb0e68c9d16bc5573d964346011a961488ab175bb7058bd8a2e7def7fa689f5b68ef6f72f044fef1739adb41aaa9e95bdd71f9763242c6cbd47e40f4ed083d7974194a0051d38239feadb547cea974a63fe5f25e1a253158ab1586be76df1883d40126ad57e07d1720ab09b758d90e37d03e7f00a51da1b57978d1f587ad71d61a829826cb0e35c80c6f17a837c37ecf005d3d6fd189f9ce9b17ae165642d2a580676c91f79042e6553e72b48cb6ffb6ffa5f316c44d7544b50da218ae3614c6166f8cbd1b03a7d3cf2df1bb375ce65f9866ed83aba88d81618ac415c8fd487079e94498f306573e8dbaae8895d1ec004cf06b28d051019a485b4d65d71586fa60b914e044afa97f0e71d6d640cdf310f05d2d2a56e9c3bcf09f8ff5a15b81f59011cdc4bf2858f4fae92dd6d8fc4976fc19f2e3358b2bf53e043cad030300adeafc520dc1a212acab466f47c5a32769c71dfd8fb05a8f5f55ea5a40bd6f18e39ad0141918902c2a9f1792e5580c4bb4dae29d5faeb2ac5f48af0e4ef4b9f672122a6af18dfebe9f38eb11723b6c95324eab77758a7b8c37d373d5c9e0fd2e17a4071163f61b86b796277a78588c488c1b5e655decc259b1dcd65fb663998e975e483cee28cd696560038adb6e0eb3678c9b9c6c8ca19c0661f8987bb7af1e30e29e0e88c69c6debea6e54ca478aace012057f31736907848638b5e142f52590148efc6f2169ec92d83738b0d251d27e1b08977c2fd5932d06d924bf98523707554fd42e212872e57fa5cebf3ec99205dc43d926b2898294fe08a6ba0a04137f23eba685a4440c470ad1d19f4bd23173d6e05e67ef3455f1ecca221d5997dc05e18b9bdd2ee99ffaef0b6a7572df724b17799c9d364abdf7aa5cc1b19d31a0b1cb9f419f34ef9410f482dddf11d033510e451283aa2e95834124067318e53be81c847103ec8d957c9480b8f195369e55547abf292ac7401283ef99491ced3b347a0f1e66f39474702efdd0e52f1013a8a58cb1e566e93cec1e436ee56ba3b52a6ae16209443646e9a10b42675add41e7d85f638a867e2fafd2bfbb8c5369fb737c93f92130ee6f13017a62570f3a2ba7fd0168461a4d0dca4c28d8c7a4809b4e359d7103d58977bb6944bfce59d5d9105ec39aaa812210dbb70fab5c1d3f593606eb0a40a77d4482997406948f0ac76575b12fd02c36cdd5f6e8facc6b5d3ba127a7d5425340e8954d9a7353a656950c25a7746fc149d1e94625f968dd3890d5509557d69614d0cad0fa5814c8b23a9eb74e128c8557537a3e0c3dce8a7ee2c74bc37bb6d5aa841a599e320699a9d1236f6ef0f7fe0058b2898d5d0dc0d5080e69f8061ce9bce8512d10e077ca44d585fe2e3b0d861372feb30f35f2381ef0f8b5e76833f0e80c17d0a58c42d44de81c2ab231b867b45f309f942d8c1d2802ff9d9c18ca7a11458791af411c174aea5e7aeb9588da540b6312129bde25baaf82a6cec69c45af46556dd9d6e65ce518b4b60d49e48d68a0dd83fd2ab650d8c950c75e9401d041d4fd3cf10cb90ba0c1e892d450eeb2b5c3bb439ac4fd756355bbadd8ab94249a19d9d408d4632545aaf4e4e0304ad8c4175f07aeb66c3c32bb477ea09d69f212530c1035afbcf8f6b09c924a7f901f5997acda107d7925ae5daa80b815b5d1663b85eda40dbe1f7a0516e58f1f579f5177bb25839d1673c5164595d72ca191da98943f20c9cfbc110bb5289418d30b4444de3220107aac14f9a192c41e7777759b73cfa0fb49741070971551e72eb9ffaf4564ca2ee345333a63c25b5d2c54567833f499f6695c581e1906cb3954ae5e9796802a4175a8c478bc1cf7bb23e41de1cc17f94e0bbbdb3efb49a4dd8aba0150e5cd8528f29c646f1708aa4e9a8605baed7dbcb64d49d83d63a04de49a4b95584f29f3a55b208e3bef99222e1520090bcfe31a7882d540bf3164a7dfa304fd616858bb0df2c83408416894e60b084c3d4981d8b8099511aefd5efe45a019e977d63044ab0411877b5057865751a554c8b8885617c3911b2234e28f12c7d54eb546e7d65f8dd3f15b5deaf06ee737a1aca7a021614a8c68bcb2a212504685afad327cf9f4d487c9aae8d9fb55fb4232f6fbc0d1bc454598f05bb002856442c3fd3b4575b6e67e4fa40806f5cc09bd0203bb520e679221c5ca7ae0c431bd80c0b23882e40166dd11ff94c54c58e10e9960f62166f309bc0c5dfaadbe4fe74790132b238bae25692649cdf6f218bea15cf7d6831b39c4add51a9e0061e20e67f98030fd07847f7231b43f49e84ff2bc61da59d2235ea11ffbb0c0f8c266225cf9c76ccfcec9278500943ebbf6698ebe966611a4d788786a570339bf3d74c3a9eaedb02f6ce028c45e5e93fd723cd7012a2c9364e8602aeba144aa8592f7de4cebfdb59bb99e8b6a4dc072cf57cd844d561fe06816cf5a80efd3259acd0a5f30399aef31e0dde6f4d104a42e715413a86424833cebb021f20b608a6cc801f6fbd56a11884ab09fea414650990f5f1ac1a7d86459a09e27d027e706fc2a909efeee7ec5cec3c734cec720fe23508e37c4e5aedc50d6e7c5d83c7bcb9dfd9fac8ee8edc3aaa4b68234825ccc139a05185f1b814c14308199bc8b7df39824341f20e64445b35a6f0797c1f858c6df088929a875691247799fd80aa2d9e1d3db3b9aad447062ae152d1ffc4f516b1903a18db4e7d05d461c67469aeef3c5cc00fbbf61e707672d2a8ccf76de51b94fc662a75a6c23ea3efab455905c6126febeead6ad51208f6168476e4e731ae7a15d67a03bc1de0674e06b63fa7da3a198142f22e61087fef8ba2e63bf1a9f1289e1f5df9d3e168f330be087ebde34a9e6666fc917eb2dc38d4b239fcc1b724aac04313dfc0acd4264875ddd027f63c7e25c1022cbb528070d9280d4680db443e86d3e4346ca5dac7d122458cf727d1d46df48e01fcb08bd84422f165c9f5d75862a9c275560a66ce08c01d46f40291458f9dd4a7f911c636045b824f2e62a4c2a63179480e10225aad04872a18c7de9802a6ef27bd7d77c8ce311e71b3e1619f0c43b30cbb0f33e18733821e127dba91e0236c202756f69297bc62f35155ad6f2f874f9796057772ddf60e85c5d8260f66cab96e6c3de1f61bedeceb7448c9260f73ca1f6d5fe716fd4c57f3c7eb573f78ea6c7c934c3f715ac506c77e4bf51291cfbe16211bf676b884bc60e3a715861a036f26f79900e3159c3730421e66a6fdd1bedb283500eae449d7679831fcbaf8e18016c90f998c5571e80d89aa28267ec4070f0c672fffd9c1bcfd9702848fdf53b0518c92af28e5528eb891ce79e3a63ed289e9356560f5b71a9d48dcfb3f4165a3b097771b36d3d00c7288f75cebe7ed40def35009a918dafc42468ade2db632dbf0974baa8ef3814246158c7b071bee2f9eee3fd56b28054dc3de742ea5754950100ae967dd5c98f1e9d0269782fcb1668eb461f72b8fa160eb9503c1d9df970aafc4de6264e88576e1c5a01862ac7bee59b33a277fb80f25a19fcfa31cf5ed96446e2627c7b8b0fe34f6eb85ad2f658f4f6c1385e79524bdad68a60565dd0d7c11022b693cae37313cd6bde8ebedf8b531f5e65e351cb6a12a0f5c4d8b614c11d7511f9b9ef2c67b97ce097036315a432778a1346ac5379798e66d48006fc1588a7da466506e7c7541bb4bd61eacfd096ab2ae95270e670a80f4749b5d9a08bf687fc044cf52dc09bf6ea2562ff2f1f86575d8b1adf707a61a7368dee79791e20fa224ae1b90d55dd92bba3af9fbb7379a2675b74e87b133ee52b00efec180c47b06c49dd361d6a0f82b874b7ea4abb4b33fe6580545aa1971b307417d961f05191eba5ff9bef03b2b1ad0ae402cfce706ce66138ebfd407c96e2fbd5238dd0d6b3281e6e5e70e11219988fb6bb734cdc4f52911fc06aca5748d70edd1edde4a20de7820d3e037bce6bdfb8e59ce54550568c9c04330505339ceeecbe6a020d6d091bc07c0efe308f98ec66c29dd78d307f2037c9ed5a24ffe24cbb7e85d25360e0f4a662d20610d5d89a23348b41226d8f0cbd7fb9373d5563616dca4d93712ddf0778857c1479ec51f00f18107b29eddd4a577ee8bbc015ddf929232e73afe2b1ebc571ee6fe0b733471ddb0ee5ceab6a3567ea3e1ee9427ac486c47040ac05c5bc297c2e6505c66a0e34b2e66787c2c78e2f57c3f4fe19461e6c90bcc69b07fb9d23ffcdc0f72b5b1ab55ebcd403ef1ffdac8d85262785d75f42de48288197320882ab327cad449a75e0d7e6ad2845ffafd26674c69696191d7b23e8d0eb5b2cbd695d0ea8e0a18377d427fe3c18f5ec0236f3461ee22eb14a34e37f5beab45cb622d358cc2b5e909ee1f4cc4441223b97df8334a61493392bbced0eaa7b8e3832699dc3a03e9283a482f9effe9888be32455aac5c314c95049b5933de3511c2a69ca9c601d63b7dbed8a7367e25d6f50f8e74e126607a3ca7a629fe5e6f8044c0581bc3410a5c06ff6487033d91d56a6cbe75d77b30f842e97339d7c6514b649ffc2d12b2214a271e96839825c3fb29de5291dbe0e6711dee08190c0bef5a7d56b40f682059a78cc48ce48d1d53ee985ce4d87b2bebf6df247ab311200ecd376a6dd64b60c759f61eb116186121129bd6e24eaa6ea936eb4ec8e5dfa74865709d8dd000c6f2a7085273417695c2e493d7d6c46eda6a78822722726a1c7683a3ecd671c0a9dccdf80cd79df2522b8bb0d3e3e28631110616f202d3c55b152e1171d5f11fca4072a0ff2fda9cc2f7be1cb90c080e27d518882d7e9bc093b3dab6d9fcbe470a7a596e288c2625077d0e92a4f01c3ceb2664575d1a8ead28daf2f6b33493aba5b7d8a1fcf49980b699ec56dfb0a278a35c37e17356cf96b53ad9711d6395271a4fc80dd85022338dcfc9af0be917f01a7a2bf6b78d2e4b2a6e094b208b4aaf033c13faafc10e777873d95a0b8d17f1e303710279355372994e18c76876720d640f19106ec3eb14d095be37d9b78a853fe88d736014ec6752abda8d94ff219864a461de51f1cbfa18010351f9db45316d01846369563a9e31a1e9b2af75f5da8edfb6e31f299b941b51b0d2eb4c281609197d8fb1a561fdee9b8190d51cdaca6c814334695abc85bd06bcde92696182c08455a0aca47a57aafdd38fa656a2c3070a7a4752eb5ed04a53e78a0697342fe90c76e1f88f340ed675112bbb954e1b87325aa81c0d301b5886ebf3a4d987859eb8e13a7fb78e110d4d062f2e1034ef771cebc24e6478cc8bb7221b07d4b90481614b9476ea8c5e2e9de13916c424e663dc1ae8b5c8d24ff61d4819050edd1d63c888c537ff80905d5c0f95f16edd9c6105d9fd65de93afe0a1ae17be3e3ba96b2c44a57a68fdb3f87c9677a51f24299d3e4f19acb79f1ccca6b96a78a7c8c1b008e7d92850b51fbd8569fd01b4cd8a66e96e65e290f2756e271b35d8f1c3381ff7b54760cf094c5392288a425ee947930a88a21675bf4ecf72f097c3e5b62e30819632a6ae8e0d2f0c6921048e2a6e041de0fd27b3fa3c2dfde9af446dffbe22e0a6e08d043c476ed9f207d4b0d286f2aaa40d7cf419771f4062a4c6819f8258b52191f045853ab275f4e2cfe5557fd6406b2877777b573ff5ced1e713611d39a03bab1c3b32891900089b09a28fe25048088b03d6a99aab12372958de2611aabecc5b6f54a94e892fae6727e9073c6662022117ec54bd9ab131ef5e5b702ac551b5c58ad06f09723ced92c3062db84fc28bbe1cfd33e29170cc6148d72723d0d3f2975fc62d42962586e6fb62fd5441ad32f4780170ca6cd0d54d9be433e06ba417b219604d34bc987fc1d3e01ccb4de8551dfdc87cdc0124385c46edef04566a7af2141707050ef56d9ef100c7dc02634e23b4e3df4cbdb155f662617c8bbfa8648701a4e51add62e58f0dbe1181e92d42c6042962d7fa89618e43331122c0b2edcbea7e2f27dce122bff45d297c497255e45e71e3f78ebb5db7828335de3b2c1c3ecb9a7d1fde237fb52d678776caa2f3557b5c5c0b70212f0f0a6dcd32b816ee5911f2f9411dee9e5ee2ab11c176d375ff8c926441fc05b972d82173dd775f9367827b9abbed7df632f7f6b8287f711d7fb11f8c6f9819321a62bfe13bb0dc49d20f328dfae56620347821bb3c32a0dec2a44e04570dba085e271d117305f95a13a994060af00e547b77dbbc79715de28c1ab42e416cd0619018f77849446baff2f184f5e34dbf5f3d7cb9dcc1169472ff0c2c9645e8db6d734875eddc8a24e8c9818ba84d21ba4fc549e86f905fd69c15c9dba9d1fe1420b41d7dbd5b0a1c1f7c47f0d77c488c067ac14c81f8a64f19d9e225b2b1704f6060073636bb61ce7fe35d27a2768699960b4a25a0e7b928e88c218f5e166218c1ce01330b7480528442366f2d7c00614e113c72bf1f88d72d4cafe3f680f5c94e363d7365656e1a390f76540b1f2bb4567c4111d5ee236bb0a29b73bf27a67ba6b9d2d8087d5575584d1a2d71ec996ee51987a6dd7621a04d34902c64bf5af7af8b917404a3ecd8bcc04373489318877a8b107870862578d1805c974412e13037374b647d60f104cd094f8ff9bbe24564509c46ae71293aa822f377ffdba2842d5a028aac249156a62bfbb620026f5f793e905353265fd6bbb0ba6bf1d921a676fa3b9ae0ff0c46d7171652857c2569755720574759165b3abd256181f910d540ff55f6a128fd694ddcecda64912ec9b2a17c34ae5935e27c831fdc439f719c5bfa58b9af1b1bd8395ac728dbb369d68f0213e9ad8a973b6c6c71963f1e9d32d0bd5449bfc69a677da16fa08837528b95d2afbaaa2d56c9c98aa24bb6aee638f6c399a92a6cb810b15ca84e48fba42f1a9a2da10dd61a31b51e3879410732fc9de9d5f2b597022e2f3bcd092151248ff754e3fc3f056665cb5ed691e30491126495c3c79a3f668c7a5912b491f2f7cb49fc384a3d2036f248e3a48b7fc222228dee909e0827e801ae1253596f0e8dab422efc5eb747c655878ae611dda1711d55f4a8218a52c2b931205721eb8b77860ac91f33f64187579dd22f151e3250c05a3973eac8bab1eb47df6ad686539735812bc3a5b64f3f090f1e237b963ab3876998005836aa6707c516c2ee4e5b271816d58bb93a56a083c103058415fedbba6a0c5695b7450132ab414b592a886b5a535a18eae59a18bc996bfff99559453b7d1bbb84809dd611f914a52000bc1ba185ca61dbe0300c09b6538e2c6232c7ed894ce3890e407bd3d84a307733d9068fe0dcbc704dcb2444087b8039746a53304c9f9b77ff88a374796653a7c3fc6d1177948d915062507f01750d3cac7d32d06674f6a1720a752199e0af655d1588537a8a7d1ae248c47696c8415f3ceeec014a57618a12fa5cad202c1feb599e16ebf4e49fa020c60ad55a3cd9e522613447c46279e8e364c73364bedb3004b1f47ca24e24c73f0db6bae4017de4c03c0091ff1b0b839f66824dd5ea4c205467494e247f9a9ec747b76d02e43372b095ce8cb1872255faa4cb6089e31a8b013663b69ee695f666985c53285a62d43ccad52ad4e62106f414c0e2afd920457121f9f0d9ee3fe3adf80aaf0c0885ec7125f0053898cd20c0c413b6c21fabc8edeed51f9ff6a845576b6349aafa74bcdaf842618488b0058bc09a2d61350eeb552c355915fd5cc6c6bb6a5fc28b1f5511c0f40e84a13c9d846053ad880afaf9673b7eceeda505cc7fcd4f5d4d8cd4647e15866a4f568a329d89ad94da2e4a4d04382f9714edb744130a8689ec5134df47c9b39ab5ce44db89bb09255e2f360f24203f00e0fca7c8fe28b31eff50f4532ad78594566751c3881361f81fd93986c50bc553a9943b5f64c1d281592427450ef746df8621c979f879c5d39ebad24c9c553d29374c340f6dbc28ce423a1d3a89577bd02fd6f68cb5557dd641be0d4cfde12d0b2ae99799a4620ddea22148a2f0a4d5a8165179c2012607ba3a8001283f168acb6796a987453a2b877cff83687b425d60234532dc87bb60eb1f693501e8b66787cadabaa709df8d42d7b9e0c6481158d888374e55d41d724c1d45353804243499c242ad903f895020ec2caba4738937d38765f8a2c724bcee5a3ae3dabf3d918903086fe6cc730412ee33429e0a3fdb0416f0e5d51b0197bd331497644232536a6aab28d01bf43e48e5c0a0293101334b5000fe8607b50e793f079593e7cca45a17976c8c0fc8fc7bf296c0c00cc789f55c1031e67848017faf3c8bb15b58fd227beee45a76696934789ef56841f34309ffc20c85c7d3e65e9a5763c4daddd6d653a09c97c832012fff81b3208b734708a75b0446c3fa49bc172f667103f42607ff30b6716c6b792d22dedfaa184c96ecb4290959f74ce2382c76caa2814f0e9be7d0bfe46672a5f9b2756b5d7f825898f21b2bed12a5e41769b3612aec83e1393de76fbf7770e400326b97689d6e1c2fb799b74fdd6f85e7c6760e21dc9260dcc718a7224ca3811a42f71a0ce007aaeedb6e51a4359c76a3add2ef5c0a4c621b2c9dc82b0ac4466d51049ea4f60cfe5c080be124083f642d1e896ee8b00df34da13d30e573b113fda33023de864a5121be16859917b3832e187c33ee3f159d4d9262ac2273143cc6078d05c96b723870054b7769b1a417cf1c893f4ec4bbdd83cff72684fc1c043863cdd6309685666b35096bbf1054bfa8cd61a605a55b9955e1c8d9324f734c5d01dc50c5240ae5c1fe382d0f6e092c7a5491d85d36fa09a08e03492b2838d4ed19419cd82f07fe8d3840d949062d8fd111f985d6e75e702f9cd73b63cac7fc05f72dcbf48738232cf825d490981e281339439ecdbf3a956b24a28ec734200f3a2710960c76351769be3aa16782ef8df1cdfe21e35f824fb3643879f582ccdd956860a1341fceefa80efc3d34a516938c52e2b8191d13a3392f998f30207e4b8024b4283561c3c9bce328a28cbbd053c1da0ddbed10bf1af500cb748cbdc086911f785cae60485de7a1073fbb8f6a13817dd78f647e7f4b04ab114138dbc41acfd909b6cda6ef2a09fc1093054649735f4eaaedb27bd0fb561063101fe3c599204a5c1216341164c92ec6ab56f8243206845e6a9e813b6ba134d6772539c5fed0fa527717a73649f9ad4c6e4673f870867c4bae602a27f1006e0613db03928d6ca3a721ba993b4088a81e32f1667486dadf279f4b320a3b5e9b39ec6149bc94012413c556108c28cb5249c1f1c7eee98556ba674b19b814a5b3ff366cb0f1ea133ce8fd1755aaf3f146f5da21fe3e80d0c8d767af6dd1c91a0b707228b44479fabb46e9c77c27e4d8482a9aad2642603b551568d14b7987d65aad6accacb25dc56244dc504c1989278a6951de0bc9df09461647bb217c0d6da1e2fc4fdb1e1c546a294d951c149c490ee4a111889c72b4e89f1fb226f8366d89236d3b6b2667cac611f2f78a44029de8f865b756d2094459205223d4773bae45ae2e9e688e2c58b24c0fe529b13e2d6b71b70d602aa4f401ddb9ee0d6457444268003b6214913282fbc4ef5e3b9c139566f8f83176a974c8760d4cf26532a73aa2e9dad2ed2945d854aad02d70eb66471fb44dc8fe8934711b8b7c96f1dd8a7c3619c2fb1785e589d18bb743052c0df4acc35c6e6b349927aba830d8cc3de46aa6085739e7a9c5befc58597a6aa7d1ed0053fb7e6db95c7ff6f3bb2b18d956337c60184a8dbd78a4e68b246b19e3fba915be474b5753a853696fc7b2e646ab39404b7f68de34ae7c20878b5da99b4a6c1970ee3b51bfb998f232219895692941edc6c580f9c45f3b0216a4b126d202387181a7c1469c92a61bc36f13e154a0ab1e78387ce55a2ad7725136041cc246a4d4e354c0c8101a13a3bb7ef5079a6d01210bc76e9234ad751f95edfd0d0196290400f8a1388b673ec2fa5f4f4f9f4e9b3174b12175bc9b43374d520e674f6cf1007d62628270f1e1e5ae9d40c36ac477f1043416a1af4bd92e3a47bdc18c9ce475185ef650bb2d4843486147771ec7011e1483da4bd9aed80887c61e801c08d67df8419e96442cccd669ac4e810904840c79aba2c694ea34916370ae0d6c19635079754c16aec221751332fc31dcc5482d1669a5b843549ca3755fadc24961f913217bc62d401bf6285ef3a43c6602a6e647121bd39f02f150648eec8db9d27865f8841935fa6b4c64a71b07bde59dd3cb50bed5ef98c5289958bf4efd01b64649f736a4c4d8c043f1aa1cbc65b5f99f4525a2001f58cf46d6991c060390d3d6f97967b6ae3c0c5ec24c0c2bed695c3a29aeb833ca5f84b4df97a803b34925c6201626b4be9880c3fcb4a2d580e0f48d7409e914b4484a9bd32a4bf0e40e692342bc835b12e4d20fa25ab746c65caf464ccd7a62951c4d004f6fd1f09c1e81039765b6b540297d2517dbbb8dd61450445190bd7280f7272059838f41580353bfdd8bc1595ba1c0954d218d2802d9c395ed88e18f405c0fa3261be04f229cd97075b5a4ba130deccb056455c25153a30da0cc4c53080be25dc0f7e09e5cc4d98ea9c7d0c3a41517085ef9af1660d1ac1a58d8cac970cd00bf95185a2135dbb42f44caa43f84d9e9e30b90d036e2b979fb38511266bff2d98cd4c6bd94c34d8fa21b34c0395b9ec655d81bef56929cd8f9af5d9f0a4ee7c9b1d198b75cd8e0deee528b85a4170bf8e634c5d7059e488d8323131c7133671ec63440eadb20ae4e3b99a755c8b5e61d2d3ce5b02a9dfc8d2e860ddebe57483487a4ec7fcbc2c0c75710ae22fa7f461c286f4ef8e4bc1cdb894fd2527cb0db5e6632ddc3093ddf6eabb0e1d4834a72173cd5be62533d2ba16ca592aeeeda764ee78c740e8ece9fd494c50471ac0716e3b73d644347c82c67ebb1688ae80ae3244057a011deb7f1c48ac0d11ed584f301b18ebbc3630e3fa6201ad517881d0f55e89975d7b6cb53732d597989b7cc1259b0b57ee57402a8636cde95480a381bf1630e2b1915a02f70148d39865904cb037388679a43b329b38546ab1340378f09fb8143323c4c22c2684bce726d8fbb0a8df1be2be4ff8e18a8724bfdd66305d240859782718b6cebf6ade449094da7498e06e413d5620787581dd4405536882acd2d3d540fc817e5552db773b897ab19bfe09c91a0c6f81fa69b2fe1d27a4c94a4f1587b3082ca23f4deabeb4ac71917c2d2b15e7134e481bf7927425cca9ddbab7a8a9272ba20c4f6b538dd32dd6d02a31454f9d0e4eee7017c1203a3c050fe7678907c0903536708df499fc4ac9e9e2fb7f204dea9eacfac757e65f4f84c805cea9b14fbf17054db8bf3d27b1e9505e143474ff8097a44390bfd7ecc6bc1341006c6ab8f4e2252fb13a22c039dcc11ef6710a81c5314042a2384d5886832d1ab92be0bbfa11f4a416fd3fc3e7cb9b26ce7adafc068b229325574b6645732afbafb2b7c95c84f2aa14382da7f5e34db02e4645904767a8f1c78339e9cc6daba8bfc266945400d45b4a2abcf39ed5d3b654fe17433dabf80f4778e893fc12a2851090de76d1ad136975abe99d1156426162825e0d58e1a4304ac5e8956d4c25db884406f5b5961ddefda31b839ca063a381e305d512b7d9238c4e31fc82c35596197b05e1c52d07f08a90af9dc1ef63a53aea4e8de8801f8a08ca15101e69522e1ac65eefc6c4d7db5f04d9cc4b058ec4699010e281b2aa7e99468d2efaef3ca4ca29dac3041461155e25d049e9a7173f2984ca1813663c0b35a0c8d1e84d4ecf3e9c3fc1c0baa748302c5024151efedcb2a887116ddc9207c40c19c7c33efb666a8ee12515b5dbef4fe665604bb7f227b6949091f7f469465e9326cbf0c1287dc15df73e7aeae07f4d368e8f9c435704e012ee41a6b50b32928f7606bf9a705ae5dec7bc6ba0676d019124ffb6984abd58a0bb0bfdc9703a40314224bcce75ee21dca371a304958c128021d6640ec5d5cdf149bc63fff0b67cfb9cfd5b2b49461491b005fea63b8d8c2229bc4f02c530356c111b5cc9831ddd46eb12f3bdddbaae2e826965fba39517a7e9e393568b62d7ac74dba8bb90b18fbea84d115a8dc9f35986110cd9e43dc0d6c9924defe73c57fe52141712500c9fe07ec4bf18adc82caa3e44dbfdcb6d2588e77fd53696e85ce66a27672bbb20cd83ab7b01d131ea152d4b05368856df4f2a66a4d198a91d439a8c42c5070d9d834cb75b3ca6643e75e34467197eb9476d3f0d5799060a4da5859ce45cced2cb71387cd8dc79a7a8d640684e3246fa6827dc36cdac7600cdf5c66510d6488c5692167c029c7149f8b2ae0feeb72d178e552b0e5b2960d35a53ae3c17f665dc8b7d0a87fc4c7a6b971c09fe8ab9e3bf3355e81d0d35417383ad46712531b7490b1f0cb20ffcc2f4812822794c15fb9ddf6ce72e75551b37c5e7c691fab4f38ef81f679dd7763e9776ae3c34267d702d683a8c76c486f3a87c131f7d7758747b18993a0b410a23e493a7920a25c61b252f5451158db15262ee087345ece6b86379eafac554606d70d366cf89a83d3e6f10f344e5c4cec5f8ff9f97e24f71e12189e8eed608ed5b091523944c53e7fcb107b18698e3a25dfa718998b4cbaa34a6bae8b20c9246f0f8abcef524bc55de67ce26cd27367a30faac5133d644d99d171d9ab5d1ef1a745aa004fc162a474f88f478e290c1b9d6ac73665b3fcd8d2a848600bb52ac31f27e16e82523e54e21c035b324e54e69ec140c11b6b7262c8c21345b5bf50a0eb8618e2ee1e0e59a073a0d2704a87a1495bfb1362199c143991d023a811e1f53d92ced3113e9ed5418f7c9e0877de181f41063592862e1dfccfe9c86ee488500aecd82d39510533553b7a5acc728c4c8b3a05bc38f18d13fc3944ed1b36bb8fb50997d2db472079d1572a01372dabc3e7fa6cdffcc7b51dbc07848c3bab03d1f20017e8cb04ba8f3a45e222e49cf5f908976acc38907ab32291e8e323d7b203640573cef3ea39d15a88ca628a33ee118060e9a3127c60dad0973e0f54dbe78df18a3725606c79455ac0cf0dce7981a36b0af49f436f328b38c104d414ca3f552d1857c832495dff3a2a88bf0151689e74490e902fe6d244787fb42067380a664dd2e5f60ab9682f55c2ca07f3e941f8002936503fafb6596edf44e8c4d1f7cf36d602b301deafbf3143e4f7907c6059430169526585bcc645b5ae1393a533c23f983ebd2f4fd0cd6e5c628792bb19e9497cfa50a7a254abc8d96bf4eeddfe15fbcce8fdc1d1b11614feb7217f67c70be04b955a877810affe6210324eeafa22d36768afa78bfaa39b7934860ca90c715c80cce8f9aa68955ed12c85f195b1636a8f40d2859c8d139e484d05f9e022f30395231c2e22e4b75ca3eed6c1efd36d89b5d1f7d0a6d8cf983080f787a5518722f7a2e45813918e8cde98771ff5b36be5ac2eef84709dd06a5251483fc874c39880b2b265e5def4ee807edf0945e61a173a62784c0b7ae903c69889ad6720026a45fd602936b1097300d72400ad38b7139842b8c9abcca37a13edabb4d77a655e9ee3755ef01ceba604e47f86085be8a45616804eebf205011d88d66bc7dd7eb40ad8ab174ed0e7355f10d94e9a52181f1723d4f49d8eb1b2ba771c00f44edb6967677dcda5ca931936d0b89cc7f5d50dcd21f8c2b657e717365b9c148fc27175c8b80200be301d8be9c1c32877feb686943f10c88b9becbd3ac4169fe3a7990081db091a54998e0225bca136889112b3f04bb404a969efc15207effd9354e9892eadbfe7b336c1d2cb8212513a081dccab63e36cc7417986a23d4fc1752f341f8ec0f28148f63c0efb631fcffdad70ab8520ff560a175b5e624643e0a036b65ba13f2712ad91c1ea19e50f7f8ac709a7e2a2450cb25fcd3017583d298f8d1bd5e1131b62d2fd77e1bdb8abe9e7a5176d1ff1781c4832b8717af68ccba9daa45ed375001be315a5c5b6dddc2e5801df32d2886cf783f350ee9b1cc3cfde6a9c87465620634b7079f05ec1db3940b517c52c137c4093a66211b2882a30471df3b850086d11a4e81c7de13b238c6fb3c10c1f512ec0adc910fb4a045ec03ef52eeb30434caaf8f8b7550e878b06b9e7c644351fefa0510c8bca037484f46e9700d191fb46664421968ea6387fec8d2df4963252a33f50ce03231ce363ca8cbe049d4da470a624ca8e5ddb89a0df380030ceffd7151ccf0a13b9ad3bfcc1d449ea284ddde6702765a777f216205586012167a25c8e3ee2a99eb739dd91928f16f7dcf33666b52fc7304cc4002c5370e681bdd39dddab4b6d91b38504b356560153ddead041c97f329a7e01274b923741060b2d0755ceb254290ca573a77015dc676df4bd621c579ea067e6da1b9847e5d82d82b2058527b04efec6fbe453c8eddc181baf89909b9889f8c10612c16230d54f2fd3b241fd57fbdc73cbe7aee65c8dd7bdffaab40baf61f9546b45e68b7b9e6e73e86757be7b44d66739612005f9693057601e47d0777f64615e89a5e978eec63109b570147dfe63b924ddcee8bc1495cbb32ad871e7033f1fd7b43b01b7bf355b21f694383fd7a9829567a4c750aba432b3b6858b34b270d4ef0ee69e05dce6f878682451152ea37b421213e48819a7d4cfd819fc20b83b3ffdd43685be2b4aa299f1a0006272db3ff0527fe541654548dbe9e3f747f4e232afa1ee2c20a40bf8e6430e1a05ebb0c2537a759dd4b1215306366cecd41ba3d02e75ede43a06eae3cbb3d47a69a302711d82f3233e39092478bbe1735ecae096bf48bb788034a3b8e11bb088a047b4c9d63b1fe269f0d9ec3a24798c226fe2f1632749e8f17996c071408ec6900daa637f0ab47c675ad948d36c2056480457f3475be16d1404c0dbae72131d85491c71b10e52a6acb75d1b4209ac3ce38e66bb6336976b6b2f22cba9c6b0676917c211b50c7d81591b336ab5d356e4266f0881c57246b6085969da2caf1105ebe9d8ef596ea1825604ba7919ccc531b218311d8687773bd4dd2762989fee75e9e59c841e72ac44aedf68e94dc83f6349fee643bbaaf62f031d094c436879a050e53f2e5452147df6ce55858a9318e1c69d882fa69a4e106b427155ebff9277849be0d20c7c8267fc28df775c8c3841313bd933b6978eaffac3cdc18553304202394841e049874f995c25e076a78f8e1236e6037e2a44e2232d71125cdf699247544a1287b5d5b8ea74108442e333c791396d869a2c02fa35e299ea4120dc3b5576615579cbb9a7dfd08722d920d56668bdf8b526aab869c3b5db39f61565326e66b74dc843702e5c4b59d4b95e28214531832c544fe9e53401242093c778dd69c8eb6ddaa6bf8eeff118d79aafdaedf918b25ca47e497cf24e783d34a78aaee9900b8dafb15f7505bbfccc14545fdf650dae30e61c9e4bf004a72149da456e94aeeb9a62f670b1ac59ee74a9931450f67cc8ee60f9fcdb2f04d4c3af72d32ee5003ddf0512f56d19e2df05353a091e537ef6cda2ed1ee9bbb32165024a353fca5f4ad5cc4418ee4a492fa406f1e9f91f15a67ca2e67b6aa32a016527b10c1e44c09952a3bb17d66e57da1b76b9162a831a28e9d6538e970455458920ab7f91416ba65707652801d60507fcb7741812e3cc39282528c1f5904282a2d1ba36c314348d1e1b94a09e22939b83a6926d75a2eed4ac0f9f9426d0bdda08dfe0efe7f139af128454d1e4d2d176fba8d01f128d70e2f16badb146d0f1a1102586b872283c3c2ce4e91d7b6e2f74e53a93e93bb1f70e0ac3d37a734875a9760541a5521c760a2b34378e38499fc03ceb3ce338f2d0aa096688be372ab5a93bb8167a845504fd8174d5204c92c49bd2f272f7c7ca8edd3df669003b046b62826390a35c45e610a345fad8e2f3d60b346f198cd8acec9852f3c9818a40f06bb88cc8ca4b7705fc4615221ec3d4afa9d465ae2b8923f92e3f776e884dd87c47985ea46126b150af8d3c8991be144f6397572f783b0aa54bf36e91781b798a8d16cea359074efd579dfe2b42d4c757bc7e6d8ecaa86c78a10c6883598a068f1f641f2e1a29fefca7ed303ecc826cec58e4aed985b504598703cd93f2ab122545ecf28abc0a71247266229e2a50b075f55c7be4ff8c399af9c5d813eeb91aad945cb654ed8c22b64ee989761115718b8eae749d699c5d90bf81aee2161b276ff2b0c122dcafb85673c69db486f45f22f9f97d7e187e905490824256769cf0adc52cd29e8eb5c66f1d8c065e5b3618995c82e8f80c2c674a7f8062960b3c9ccdc4103932a83eab8996d324100e843921c3e8f8d987c19453215e190eb41cc2df043c039134f6d72460d2ea42fac9f868ddf5013439cb50114529f3558ecc26194e9a8a48bff0c71cfaac961d6afa2cd320bfe9b293d49e1dfc4ce162cdf201f508478f3fbb9bae5729e197b9838a321a62960f0322cef4b3926fdd8871af72090ac957939946b9034241953f29f1e8d2a20dc85be6d91900e56a97feaf05a65c1bcb666411e235981dc22470ed40799b0dedebc64b61bf48ed6c3442b891c62c553962f4dd7cd0f584bf9adead76586fbd559d0b2f27d841f4cbfaf9961cda98ad4b7a812b4eb5cc7595f7f603e42ad9f794f88a1bf7e59d502314e56c716bba9e73b058e9c0a2dc8d14026a1b2e75abbc36f0196f05d2d676701b0205f60f462f6c42b88ee10215be46a3f507170c95cb1c41b940d47771b8c2c8909a1c6e53fb16b1328fa57cd56a6d44674cea40a81c36e62eace9371f3a7121bb257617be78ac31a428396d18390777517ad29007980717e07a4deb5369358470423dab9693aef8ac4449b137bfcb7519808ffba4aef8f865930e5588e4f58ee98f75207653ac5b89467d7a639ac5db4576c4edc561e39be0fca3ab0117b217b549a9c3aec4b04766c0fb92a85441c44a87c89d1229f849557fbca2b02de09bf1b2abdea01ef97c4cbd0d5a90acbaba9a16dd805aa063ffc35032ced76e2cd7ee595c6b8d2edecfdde31e543992e71febf89d862016c065a6e54c106e4164153d71efd8d95d055e04d318b2cf9bdb63706acaaba69ef76bd0014ae8c3cab8ebf8ede4d081e697f3444bff2c8a6ac7490b0ca51f526306714a99f97e169f8099f3141158fba49f5fca84138f62894a9336267611b93d3347f710438e9f5f78e4c638535caec48b661650ea4c2d0ef42a91f1dfc97ed022111da83c00a11c57225c63e7d75e801d9c9d0f4b423709f95c7551a224c58ebbc8f50150c2d9025044a43d55dca895340d5d3b3fa72fc67662ba39f4f4d4d3d6603b3e4a1161afe9bbdec04f2f9a1e15f28187fc0bb2070827818826b6999afd32a60ce87db7ed93d48f05b54710d93103ca78287237bc6e7e429ad05ca907ab123e9e6e4421f64c8bbbbbf45e2041375a3ae5751f79fd97dd09a9ce550c4d94ddacff3734e5df1b57e25e6234a7f51ee79bc91ba2704fd5d6b42e3e887f7905512def0c54d4af76c7e26dc2f71480020ebaa32e53da0eaabaca6a6313e7863a01a898a54272a9020eb7480249ca41605079e343313743cfe1b1120a52c429a0d7e86a564c1eefa405f19071d6af7501454eb04d1d512f4562fef1cba3b8a8370432ed8b8b481167c54ea79cb18e9ac74d17e01102406f5ab3f067f974466f08c8e87ec13b38dec4d08b42fffa8f2ec415b550291482688ff5541bc826747b523b4e4608b4b7c252132b55b7b9d0e1ae1a2f0cd3ee1fcd80853a55e9e51e62b0f13c4e8a9f68790ff2c03801d4e89fe642d3da1187be6776c334682f80b12b06f4443ea6194159dd2765af6530991aa020a3fadcceceed88472ee5ae92d8b25e874d2ffcfc503e533a7da68e47d33ef9532fe96227a53d2bacd87abc18cb66eeaf8fd78cdcc41a0cd3f2f550227ebe535c897f5350a2d236eea3a4fc9c27bf6136e14d752dbca2d4bf8b092b5b4bc67d99d0dd780fa03eb6da0a9b58d2715289afb2751aafc158ed9671dc690aa29940bc3693bb658f62d01eb9d5c8013f0f7c6836953720226e9372e9decb7aeea50b00010976c8da8517fc2055be588fd5785d824fa6f1fa80858fef2d5364379c1d879a35498c16fa578601adc119cfcc1fd44b599311afbda8e2cd8a3a7e3edd2a7e2ba4dd68804d76eb01f9cfa3459b342fea13781418cf054a2bd4f29c19cb346ffb954869a937c1def3e6d1204332e0d4db20ea78cb20097596225a6962856e95c8baeb5a3318d52ba9db578c401368982310e7c91136696c1f2436a4f78f4e276a191d97b8ee55613f9ed77251556320acb574c3aa99e59afae1d0a7a1987cab99aad594643c4e615ba2254f5df19c02a5fc38965b2cbacbb65fc98c11e4daf1620a0ea4a3e4fba65b076696797922248f1594ed93334b230747a2fe7764b5d181a80b88e9e0d9e945ca09a8f30d58eb858dbae3432c102e94c07c2f50dc8b1ac24566178c86b1b03fb680f6d2f7b9b7ead39ddc878825ec2066847aac7cdff133e9dbf089c3ab1fd4d2c431e0c236d7a821c1b849428ed85d6322f4a87ac84a809c784727c2c9c187c5f63182cebf2e3de5c7c58a58a0e68d85328620676ec6fa3b8a31a485a2f0c3604fe7b8efb3220918a79c8cb22bb810e8a37273183e6a8ed498b4b77c1bc93bd3700e153faa643e5675283438e74e503ea1d741ceec9c675c6302557c00d1155a404343b97a8d3016b403baf0fc631165b0f9d6e174a8d8a71ea93bd9b6bf6150ef27e0601ee982d3f791fb50d55c30119b993411f3b3ee1fd1958a2fb37392acae9b67b6f1695094301a4ce9181e8ee3398151a6f660b3413a768c06c154feb4186e95e9a466d5a094e8119c996b8e80da0de8c316f3e98d0493ac2de9f7777726963543ed5db54d8b8150b878b7058de301a90d5c6c8e645a5b58225b554e46d1baa129d07fb802ac19222c35277da335e8c448eb12d76f631e69b794d1354d93863adfbdd7a302e1fa01915bc6b846a852d37d35af8905cf8abd3f7e3a6d86ef1820b23f0133447a65e9e3be4dd7d383432b9def92f88631bfaf51d6fd93e7cd65bcce059c9f48af7f4549935969f245fb9f130067cfdec326c5352e9319163f969f885b7cb55440410bab4f88ba709e89ab90b7cea044c763c6a5c69f360195af3db66320fcc72600183b674ed7198741027f7308a0accb6e436e7cab6a9a7a5d7525d9de6e848656543ee9fdb91d49432ec3d384bfc272af44805e76072ac44299e46a1352dab237b734d60bb96943984506f57d7140e05e4ffa95c7724d8b9699583f90b5bb626986de95b3e45047b069bde8a54c8a7e5f4422be915f1725083a678c0bba33906629c7d59850d24af8e37229a43c00a0e5f9ec7500681d31adaa010ccbc0035c9b7dee730fe1147d058bf97bcec87c36e5fef1dd7bc9be9400eb9361aefbd61187519a94bdf2496331052da4d0c875381ebafb3473b67b59e498c5d4d0ebca840790a6ab5623c8b8fc8594f92b12caff215826e8e1c61cdb2322bf938683aa9059cb372bc22007652a1e99e8b81b8bf1d6ed21de04a37dbdcde5d047e280736447a1f31223a3cfc480d6432ddcfe4e055e447ee7222351cec5d637a37cbcdd56444d5b8db09399294f8fab9c03fd06301fd3ef7c60210e1fdb868ddb688db429ef80b3e62c63006f246e9a70adfe90c845cbdae7e907c11ac7ed4b150cc19eb07b3909c932e5ef74f64fab23eed4e93f9f52171c7291ca58b364d0139082f737cfd5ed2220e6a58b5e11157b4c0fd26c0665500524f002bfb5512d86f78ae2f4c491d80986d4ff17758ea54cb7b7de5d24865feda0338454190d8c9bda6ffacbffc0a6de39128dec20d302c30841e65f485447343649927fb9bdb68c0c12e276abe7004792db90e6d1071a630eec32ea9f5e14c39fa3f1bdbc740cf061927134ce84ed20565f4c51fcb194e204e3a3d02d0e5da6f8b0600b7f8361a3e50f197c54cd90aae892f1acd44daf3cca17c8337bf2d4f686799c7e6ea79eb6d1b6f0d59b74a01deaa2c7a76895d270344ec63129a8e44ca759cf5f2d0ffe74496b6853dd3bdb2aa61aa2343f531c3221c6d3828117a364c87c62593a9a13675889f40c161043ac277b0aae65b1e60c37b8bcde4d8e5042cabc183fce67f0721294d357ceae85dec4b63765746e5de685c4de3641a3973378b16518041be0a57337f8f524fe2001b16c242d5c0a4e147ef14af203514aa641067667acff2f49e5d3d2c47ee03ac0a6d569f3f73964f1ab10658661b7eb6fad1c2a98fbc4dfe958600201e3be01273af856fbcfdf0d30374b97da4d361074a11ee9b3c3a10679b28d530cffa2682c732e76baed3105d861193ae84e84df1f4430acbb38362ed8ce61258c88a03728759bc9ffb0edca086b618eed5d1162dc86e2d5f0c0ffa5893432d4500dea2fd1ef369e9a3f5899360fba53847a0545523d31b91c0454af0fed7d1dcd819d46157879c7da72b94f10b3a72f7f175b36bf1b085307c5e2b01349500b1d1fc6980576f93633dcb9cb950d4878cb495b552311fe11b3b32fc5ea7ea0a910a79de6034dee8f759dd81ae0b5c55cb5c13d5540e3d36cab72645dbeadd6ef9952cbdab113b0f6985ecabd782cfcc7ea26eea9a883dfac52988cbd2c967539c9ba18430d26ea63b02ace200ca5b99e1f1a25cb7ad0f642a54ecd59f75a803e04a8001605807bec643ed97383757d0240676e61e61a57b2be4781b24c2c426619d1ca2d1565213b5b45da651e765a6ed530faca7b41a838e1f277946727e9a6de909e4bfb0d15c87cdc6f66452fa1dd34322f30ed13f3f2be35e116e94d9c687449ec8866aabbe117bca5b4af0a358e43c350f746e471372f182eb08ef60f9e5b58f30292af795fad4553923eddd301f7fcffadcdc9bd9e2904882077ddbd6f238151ace470be33e24443ad3ed4f06fbcd97a5af9c1ce2937af4f05ffa843acc8f3500406e2bbdac39ec6b80e4b232dfeaad3639874684ad18d7988a801beac7e52d056ccb3a646814929416f5cb71a7dfc86129870842ef14a2290433545ee8411a25e4d053b769d8f67ec3692fa32619e47415e1468e293771f0cffb887f6ac949695f846711fc1481427bb7bdb09e5185f3f40b4fe8c293a032f057b19e3dd2e8f7376046cf3f5bb74475920c11494be56ba219be23320aca22f033f82282c5eae6e9c3b40ca72407ceac122e51d45a85b15faf9b62891384af5bd8805c10d25dec99f46c787a0912915fe8874ddfc1fbcf508eab7de7e0bb0444e62cadf26e92618bad30795647fb7091a0ac457ed900d8fdab375502cac419c06375c0e7adc091ab404c40a8976f2889f968c3bb0c0720d1dad4caa30b770f66d8a8dbe15d15f806472dd0365661305347776111a3e7b09e02e4f228d6f772d679206886fd50e44fe1ee6f96f7b26a3ee88adaf25a6e5e16e9d16204ac04b32f683eb9b27d62f85b88fd7eb4cf49a25dc9a56d43d4cd7a538a575f3b10dc3696fa46b8f3d3a714a56d341e502843e706fbe990dbca462b50013d14e7841d8fb61b67900c5dbe93cb6b16ae7ea7452b5555592007218c236d0061edb5d93a2a3bb679ad730f0d2a0f8704b424062947aa2c35b209baadf4efd9069f68ca54cf56315e60d27d7258d6fd93527f166ec02716f07e9424942b7d18ad6955ed9ce33cfdf14389a9c0242ce965239e1a413a33bce35652155732a4a7eeabe6f19627a72fff0d2aa5f0b53f6d22ebe56a007bf9c23c745eb1f846548c30e3182fd32a5330b2cffc063885e07979528c6c8154eabcce93caa84fe1622d1ed2fc81fc2d827568c97a2b6a10051b4b891ed88d8a372fc2a31b212a91042c36a2397c538c7950eaddd1474f5d4959597bfb4f530857a64e83c86ff3b458cce97b88e2f00e01ca6161654cdb286baa2508d646bf5287daf2c2bea46668dded103f377b69bde68ea0784c976e50cbf1db813736012b45e4dc10dfe417b2f793b4bba72cadd87bec867dd1768adef0106d91f924adc1d58074017e94de456ffe7109ce6b3bae15dd9de5f37ba32704083b80cd7d38b0bc663930e4516a29f151f861b6fa06db8c2436f8e39cfb8e56a6f8d1b635cb2b47aa6749cfbf8c278dd06231fcf6a266bd7c9e398a27aeded7ca9e0b8b429f8905321469ee1f024637a271e5523893d80ad242d1008457999e34997e7961683a493bb36066bdc260472de362fdfed90ad88fc65816c7024f64e38cf17e2d7ed7a9ee3ae0502727a5fafe6fee57f21c060ffd6b72cd1447ca09085a0aef85c2b982045434383b69e6ef432bc54e6ffba49ea85a3dddd2bedd0d853b6ff3447ed771794a47a0ff4bacaad04996e3267015f5e5963e2fab42b517ff25af0546ae53db52b0d67b4ef46b14ba918ead0c58908a59bc9d635e92d1727dc82376bc7a3e6673e45bb24f3c92f97df4ab549578c85595cda44b6655408b9ad029e8d9d2837e7feff9a2c30be689bb159e16459fa353c5aa4a6e689d357444543ed4c466ead1d168df9c1d7f50d77bc08e458eb4c9066c0130867854e7640d83ca05df7952d37f55ef646ee7475d0a8dcbc6ffdb76f32ec7de022b416e350c01a91b5c47193b6e3330b31eedf1765d397093c3fbc623b3914c85778a7be54c8dba0a28f3a28475a274b5795f90e30e76df3a6d4562a2895d98656be5e415d1d531981d41926d965ded8c077bf347e4290e5d189a0b042c96bc2dacd6648d209b98e28c8c22793e76d8cbb7b07babe76d6330d7e312db0871761bcab16fb66985f2d711ba6d709c034efbdb37acfa0fc435fe70be1642a0edf3a36240a91e324dccbbba1d25dc04b83e19f2f46e86794abca57009d255b00cf2ea123b5af8961978a67e8f698d660e15163f7ff1812eeda015833debb67110d54b3afe3f991d3632030428fc16cf010e56394f72857fd83ed4259fdc0ae4d7ecd68c2434fc13826b11b75ff64dff804a32c35f6c0decadfe7da5a8157a2aa787cc75f1743f813b0165308a95cf0f10cf7635cc4ef99a3d303c6c456733f8eead244ab5ca24a607bc66ebe76a79254a23e33935550e63c63754a0b8a5e60ce5610a4b9561910d5b0ad04cc86ef0353507ae75f6247463fee29912492c48c1ff055a7861f2102da38c32f9750a1adc99c0ff03778a362c6640f67c0c9893a3a61d293362c05095d3b3707be729a33cd1d673c01e11c676a861e9106ca00424aaf33db04705a2b23865413b6ecb7afabaaf9b61ba37766e080802563c6d5b5154d2903aa59f7d1db250b1c3dd50513bcd647b6358b2ff8820586858822b5ea52461d145a23bfa7ab668a159e50a20bc70530cc2e881feee7358532740eb56e1886ce250cbb858edc2b542e29514a2f51a60ba8329a97274942c93a3e2018ffa24d45b982c43791418919e194e9ad650d89fe613aaed4021dfb4079e2a46dd167c9c06992071649ee62c0f1987147f6b3820656def62af4911792746ab7b12990c2961627cbac1674d32c62d3bd4a56cced1ff140375ec36388a7ce8372d893d31741fb903c9602ccb2745ffe07b1269b72df1e3f6c6875fbd5622fdda069e4659b2a7094f75b2c70545e50535a5d6d7d80a6ba22781f52f91414c86307934b9692e932a8dbe4e05095351514b01c416c93b1372489a0c63b62bc0be3d112da9595533efcaae6e015f3a099fa3b5f2fe93fa8108813d89eaaf0557182079f5955bd7088aaae86f19a4eae1c039963d89cddbc1b928af8d6793ec7f8a2d87f8d6257d49bfb48e556c78597f53cc21c382a4fed452e8f81c33c24cb930601a28182cd061e7ad4f44ebf070e0c4d3d26751e7732ec44c359df68a021b3927c478e6dbfc6ec198a608fae9e7d3aae36c50c82c62399c148a5dd43577ce22f768634c2e66c41551c88e9fdd287c69706b6a0c9341d151c2bf0c203d47914c3312657e203a6828e84b69461f9ed329339ce388c6a5c75e3dec3ea7b41434d34a258197e5f696fb2c564e0d9ff42320a63caff342715f2a8cd5eb8921c71ec02215ba65e3383c620af498a796288b2253a7056200f9d1c3f088efa244a0c887276c9946cc597ce2a45ac4cdc179808feebae16cfe93cb6cf2218b80993b40d89fbead1368612e6862f7f63d04b7498478aa80655f4eedf31de4e2ec8bc4a7b71aae071fde885bc74595734c9fab8263ded2e69905fc4cdf86997d06a66db3f212a8ba3f9219c30e4860250459da9aabd6875ba9e4b2ef66539fc7e838792edb217361eee6c058aa993a1ad7361d541df186e9e878c9553fdd2892e441f275565bef9971768ac155f5aa05dfad324a3215e5e0d716d2ee33310991488e8af93bada7821a9592d8de6ea6bcad6abb65e3e8d753a404b09d91f7c1dcb95ff1c1035cf342912e2b2cb8679bb8ad12ae66bfd9b199bf8fcf3d610fae6f1c135ce7c4f66f8231509d805b936e9812a1d06151c2c4cc8290be187266ddaa0b8ce816845c8def76f2e94a7c358e9e5941593dd765a44de30ddf7134d89ed2e266f713d2acbeba79d3ec350a04db305ac97235483c6f3e37f3b1fc631dc48f55339a31ba3da4197b740c9f0357e958e6340359ab4859060a0a44618216636c9839b8db00f12bc4818c321c18900845fbc4bc0ebef3b1d100aa9bbc21fb365b198c9a0eb2823678068220f11ae491c881a4348aea24030ecfd0a120ff37cb2ec86726dcffaac977b0bd539a45f03ad89e3474598e13b5ef3a94e50fed05491fef242bea702d380622e895444ac58b0e94623cdb908ad7ec3120c5048e0318499b3acff25e2ff2eed46405533652232a30a9fcc349984e40edb2fbe9de5b812c95165642c56fe1fd069cdade2459288ccf9f5199b7e4a56b264950a191432c2de9cb2e3c5f3a4e82b6e56e2ec15720bbec38b93906283bae5bec247f37d7991300da79d416304bd3ae271243990d69e240120d53657b459224d5f2cd3ba4bd8b478efa15c33e8fcaa4780c4f408abc4e74783de92e7e7c6196d35347ae666fa66ac2b69c36627644635ac13841ed7af15e00bad35d89c7abb8af159dddc5b9561af95d1b9e089ba1075d4a1ae141f0e2d8d7ee3e546b6ac30974f8f4c119f9f4651befd82e341b474e3d07c3b12070db1a304029f2659a4013d42466378354bda358fa2b25b4251fefcf9136f400ecbaae63f7e6fb68437c0e211c7d08e15a50e9ea4a03130fdd160a4c3c29cb639c00f0b9a79fd0c20a18997edfbcc86b743214c2ba627ef8f69ea3c6c0863d4370551ceaaacf70c14976794950167f02694a625770dccf6bc02a31f110ed086f3902f4bf77c5d4fdcf3e73e25775207272659a2bcd1c91c657b5356d453144c1f775ea83bf25934bbada2b4f3934da4131b3c4b1e160fb7bff3cee4684d7d15438c1e6087166d78690f91e638ba62cce614873a851f8d53b653f0e69569aa227391b9481fa54a8ba2910a362be8dd5bc5e9c9a2332caa4a69a448c1b4ce9c7d2645e427f658f7e598bd4fd51bca38a13550bfac890d126e945547edf00675642c58856bc320b2b8215c188622714847b8d561401029a24d9417d063a876b18973f3b4b942d8f0d8bd396e52ff602d77b5521b81ecac58e6d7e4e4f40057e109cc63d414bc9369b4db5d742bfb100a0b4e27318bff38aecab735d98f6d2dfcb7934f81f87fcf034ecca4ab0726598fd64013875e4eb311a65e2c552d4bb02859127fa459cf9024e0c5a7a836265c5dac57ec2538d0a99575befa04dff1c0c16aa1176c98f9482e2bec837ccce6b798903074447cac4b2a6abde92f20f7a59bbd8a3c248f1a1dc3d91e714d99a32192de09d56499423037a94d63e9270caf7a5cfe4d74aee1b50118019e8cb049afcf448f074a2e58024b3f319cec0a931285e7c8ad42f416571dac6354e3e0ba2ef26687c7f62d77a45f1151c6fc22d0de4f51fa37cb1dd93a799c5c425f632f8b3f9fdf43a69c582a62fb1a8d2077542550b4b35b3f37c47aed8766610aa9e9f7e3f0a54cefeba6c1db4241cadba7d80589b674104256b32150130c6f6d5aa4576e010c846fca9e9934d5851385a00b803a4ba7a1eaf3825c002a67c839f7f293925830614842ee587e2d47bb167eb651997072152f73020674a70a6a6ca4a1958d117958a4ae155894ff09dd822f86b989c3f9f17afb8a7140884c211be13ecd70d1c4b626e7a2dc09526ac73566a1b2ca5e6f687b4f55aa9c561a1bc975b0baf2307a337e146bc6559fab7cb344dc6b94c188bdf826296584defca6351fb134d06db730a60b20946b0f6ad2e44bfa3d58c569103332fbe29e037c603f5f15110ae1b51bdfbe7594440ac4b6b5b1f144a3f8c49f70b92a677bc8c1b61e114dfce42671f9b31cb56d5adc3f359ae2c5a9970ed2167a3697273f4bfbe831ed4785016f962ce93cb18825a7fef50ea6bae72829f16208ed22aa09473cc34c284b5d16ea16ce801559a6a73467ead62632a3e1e53f094a09244551ab72a8464e31d8321fcd05b71def6be4f13cd534d806995f739805bbf7b423e3a6daa46a4c0d30afdef840146d934431fdf90250fb7e5c85e029bad3f28a6dcf633bc91bb09dbfe03c191943a0340d3e864888d98300658a3c25fe8d7b26a0007c9a840249fce6e773f9237d9dc27dcd8d59af8d1968e7c46fe4a10204c57548c2482724cabc658b1dd11eb8346acdfdf58a25818d29da0fd2eb14aa2cf91d219c4af0a5b6b7a32cfb6751b0d86a0f2a06f32a1c949b3e1847b7f607bbafb4a0ae00d30049c33642cd04e11e036b33fb09ad34ce1f9419141868c408b250ee1268514ce6dfcfdcbac1fd47eb9e6b78321d73ed6a4ef30b9b47d567d35a51b8d9dcc601324999938d720caf6ef60a59066cf1c4260ff4892bdd8c6ccb130199a47ac47f41dd11aefbf024d714cea19cb7dd9ad9332c5f70bac687789ec7251284019cfa6d146cf29c3b8c9cc72ef5cae701c8953ea42004723abff30f726b0aaca768725592ff3920f78f146dae7834722775210f2aca91ccc8504e30862a568898b44b1a6b1fecb006c9a03566f96b76d02e0d94c38bd94d7d51feb0eedfafe0377a24cc947d7e949ab4f8d2dd84bb59448c9c5a2fb2b6f517d382fcd0f58db7d61983d4154fdf4efb7c94dc5b74209fe8bc36c5d3586a042d88ebe8e6f9ac31ce0178f645de2691414a816d72f611144b77f6cd48885cca3c3944c66e39c4e5f47dd93d3a0f0b98fb58b9b3af6623f93d0f7e58904ccce1fa0a3acfe5f7f66e3652259fdf070c85b6221f43d5d7898580a3bfd7603a236a6fac55bfb5c05cd7c61da3bb40e686ece3fc21e8ede3f3640cbd05e683bedc5cdc415f5e8552a959bb07a53d2f0b8f9a31e1077afea51c88347bcb36a8ad3f20647a3bdbd489ea5026a1a00eeab55aad94d5a4606ff0c0d8985032e47557c689e36741aea53763bce64de651eec0c3358fea6316f444e5dd0e75d0510892b868f99ed14f9d5ff65cae23deacf328e3f6e81f4c467384920339657f0bc9181dd2662e6dbc0b04e8619bfa8b9a84a93ea1aeca4f1c622bf547260c8add7d703b674ecb3412392d1d82a5b7d427da3b94528e90d8b055a6d0b15f4f57d3897318a8fc7bc3b5e64f1e400c409b754887ad415c4d5c91698a7ea967f1aa4d2205187a6748163ec47830bc8c988917d61dd0fd3f61dcad0e1b9ace61c52ec90d9d112e4059679f5b89e01bd03a909b274f3e449c47a0be5c2db9d349d22234288973f20c7badd4ec23b4c63fa30a04cd5e833b9a95ef268e034201190ea9895c4c35b635a1d170c60d7c90bf2c0978c767a51dfb0ef47ee23b12adb9f85a227999a6338f2ce509f733e28ab0f8878ea91ed86f4ec33b52b0129c47e9d5d199eaaef8acf93a7d689eb896b00d2ff8b7cd3388f75ac214e3598b08c83d5f0dbd47521b7f08a219c9c00496b0b1966626bfeeb1cbe29670445b6b6346b888f491a770804be7933b7c8aad053d335bb4e76fb865373c4ac3113f7fa0260a0b3c77b4c684046aed2e27fafa9237dbc7ee787835d4bbe0dac10bf88484f33fede3f2225616ee7a792fba4eb202eb21243875ad8d8925631b54147545108acf75d9ebe0f184481f6c9840cbb0f9c56f474cf2c3de5a85c852349928cfb3025e1a45606fa4cad77ddbf238d9f0ce98f68612286219d82044bd11007e6f15c7cbc40db3f73dd488564a922a08956641be199250b30d00810ead161b5f84c3550677c26df8343e65dc0a7ef9164f7b1f47d534662b3d8961931996d0e8fbafa8ee2ec35322cf80f213d8d9d42c8cc484caf433128034e7fae643d482de39dfb548d10891d5c417e9c14e96276f25ff3cdafc95cf4ea86853927b16baf0c421f1b6d0ea6e8755ba15edabd17b669b8543791e97c6d3d8b63bd83a9301d215e5f35dd6b961aae1e1a996751bbbfeb9e5c3ed5ba0e6e0508445fa56359e2c8d849a13f406766da3840d370b8f0868918d5c7cc71d038071648c105a58ad64aef7e248907a8a781d49f6c2f1b7cc5123cda6d371844bd8326062d1c20ca5550a234bbc2b5f0ee3e0e73efc833ca1b33e65a56dd5e34ec6f36058ed7de06e9e390b456da16579ec9e931335e3267c1e23a98591daf281c927c413c6d738e7e6c38ddeb5cd7fb953490ff4eec0585c50c55ad78a9c8f27d3723ad9646779632a7e69fd1f3cb7d703681375c69047bdf8cff05a4ebc423a17342ab6d174fb7a7e188816fbf2e81cf8c09e808c70f42cfe6d4ded1cc4e93081c3c953d67426beff6e91c3ce99232b8ccc055fac4a0fa4d59adcc64d83addcef1ce383917b49402d1de9e0b0740bbff310974ffbc93638e2ed538e2f570e05aabb25424afb0f5c9705748ae2980cfc73f8c6f13d32e644d6c1fdcf832463f24d0521dfe7a16b7b6be48f0deb02c210b44772730339c8872458b48d757fae287984abd7bc352e6eaa5e980813e6fed3910cbacf046fe7c40efdc61d23f0a73ac4398cf52ab0ef2f13bcc7531633d6ee6786ac6030d579315bc3cdc5b306de276951ae6537b2d2f09f7f16120de8e65816eb3706efcb642bc9da9c748a8a0e28e6ecf0455672d55f8341869448aaf9926c156579e1d8ba44b71ce0168619b6973b07623ec1553007a9420c7d652575179e1d25f4c436df697b693bd687e5d349fdfb0b0f974073134e3a64922c963dc90306e1e2f8d8c1c33959903111fd940bd356d0a03a576cb40a28cd0a1352809f5b0cd5f7d9e9f1bfd50a02fc4d45b52ed157f085d05ce17466380d26e3e4aafaa2a4da14032559d4490c77059b1767018157f7026ab6e401f804dd9ff7c0a2750140e9677f762707715774a42ea9f665508b08112cd08d814ef0e02379da9cd49d34aa408dfa50763ceb515014a6e435dcb7c6a03eedb52a535367fc0df5382fe24dc67844542f7045bae7befe95bd90fb147d074d04685ddbbb515c1199e2d24c3062db8a2557beb6d22fe54ee724008d0b04cb67c692f4102849fd48b28351c95977810a996f125a89870cd3e2453419d2cebf5e3da70437c1b895c2a6d0860000d80cbfe335bc5d22278ff74cd31ca86c0ac1aea5a4b4f1191551e311898fd290caffbfa5cdfec97b414a37b20be8a80ff066fe0f8286086591a321c8bd9233ba9235a102348721d2512d897b41f18b5ec5f1bbb5d552a52dc0041605345bffa192fe9cfcd820e232095ccd6854299cc3e95708bc880d39d80c5137c6f58264e42da66ad4e211e867d96b3190d54bb7b9a790209d33f3b74f73b713d3613d6722a5e8fef3cdbf14cb0610b3ae848b64cbf5092334388d36124c74c53957d3e03d7aa2f76a509af9b40143400bf5761d44d51c957063909072ce44487251d9f182be10740052bc0348e2356e62e7a57c5c229c300f1913c5fde9e71384482f31b75d97ddaf861d5666bd798e10cf22b937e7968a006b549bee81883f1fabbef17079d1f2586f2748a7acaa8ab39c1ae97355799f8da2ca1c6f9063034ffdf0c9ec3ecf51269c91b719a6c8e469a2e41ecf0c9278f1663f0d94733f4d37d87a590d8b7a65377f3ed671881d4b483453a69dc4da2b6462b5ac6b8fd1e7ab64f2264f9a6670e0222f7afd0a1fe1f0e555b7d7a54eef5e8363fb23fd4312da55836a94a94c018182dfb8de0b74fe7507054cf7ac2b2d8109d9688e4bf8ef518c92bf2d80f1e53ae8ed6530f83e0507eee58db5c7092721e5dd6674ed676f99f494065e5d93315ffe26e059e1806d732eac3fe3bab361fbbd56bd598c958aaa287118e8a6a2fd4e46d337bbf5e084c11c3cca39eb22949b949c4b7b1576fdde0b319403c6bba6c8f932d249591284ef29d4b7fe63b81418362e5587cd8afe944023c9c6d3ccdbab660a1c92ec0f7c582de8d120cee58727cac95f37bb40825aa2d618b386f516958013ef6b54ffd682ab13ae3a3e91c761717158dd6eaef5ac5f223403a4a94232249dee29f75ad7a7886471bc83aa4dd6a77651d178a4116d7928d91f8498992e42dd90a7bbfaf452290fc8265681bafbd042348343b6ed83052e2400c9bdccfce48e2c9af8b7507d445090797ebbee7dbdbec2707b6f997dffa7d7cfca0d538bd587aa5558e2048b2e2a83c2faf658a027a5dee8b484920ff59c031307109cb99bfef23114fb9d86ee5d6954b96db04da48935afc54c22c53be09009a58dd74a703ef52c8a9b5f141919337d1f20bf6440b494812cf3859c480c7decb53d903954ea35fde4dcf2bed6d38a4ff0ffc9ec06f7ed986c3ad41487890c8ef95ca9a5fee66e2903e2a4d2bc5dcabd9a79588b386b0fc30cc5d6b8d8251fdba06b6d95fd603c00353cb249528ca54016c41284e43a251fc9e1fd17c008aadd1be9a21581c84c282b85eee10e800aec781518d90feb4ae4f7d122d44569820398e049efd79924b826d4ef8569dccbd9d013c619ff3d0c860c39c59256f16a866776efe40cc6ac2f2c52886f3a268fec777a5c4d1c2ddbf605dba63b83746f2313075098f975a9f8ce956297397b41a32643bd3c8f1ca91634f9b28a71e8e8d71a4d9735c80d136d553230a14ddf8dc84bd5ed8706528b6622c92982a9b05af507253a593d201a6be5310db6b1dbb812c6a9e7e03ed4e64c19e52f9baa7118e7d6c3355e6f91083ef8d7e70efc2a2e0d1c9018401b7184647e47fc1753e11e72718d6289809d832f179a3362e7a6d1de52823bda1d929999c4f8be7b4e219776732e6bd12383406bee2cfffe0b8f3d23c4e1a7162c9c800f1c4e2bd3417c4820a286fca7660e7806a6806e5a0353dea78f3365841e5468a9c3d6fb6eee807bafc9cbf3c697e086ceffee132386ba58fcc438bc79dedf8a5384863a78061290b6fe61b858e3604966c6ccc9c041910f80e5f46d3ef84bf16e586596b9112b536a9904073814c2d6296ce8430cfc22de876dbde714eb21f1a2b2dc3f624938c36f6d8b451962cdd896213f6c3d32dd02f31410dea3564eb4a3787a63c3bfa02ca6c31ed28666324b1727f5dd76ee64e8b168d96151feb7900f171ad7c666609b96dc23d54f1230bb12d29c1250ebcfb9c21b0e6423f79702cccdd83d43e786ba091e59cd223c361b9f27eb65d8d41a7f0e90e7bbf37a71af91050862ebad51b5968a935fda83d21ac53bc78bc1d4d353b55ff1c5593f252aaba64c0e778a5904cdc51ca8d47af5b54ce784f85347c4148e451ec43af39fb82fd473bc70817304844d3e61e72dabc5a0e18458fc1abd3477dc43983144105b1f93b9c20f9dbcca12e5ae38f53a69a195c5a2d631c7f246e598d315355310b821f14133c5ca632bfb8c5b6f6619c95b27eccfba3abde7117c8d455693a1678624fbd985dfbb2c252d62599096e6ac90702516abb4773e3e1cd36c9416a604069ceb37d05143b20df4343762a38638d7a83a2ef04bf2e7f6f4243695fbc632a72be884844ee03ed530017307ecffcc49162ca05f1aec22dc2f301b98419d8a608e761e43bfdce95d51152b1b96251c0e9f4a9c0da1a26cf6382679b2f215939a542791f2884e72e020ad5cf8eb59dac0f2773b489c6155fcc1de3dde1cbe870fff19c7988eb9a60453638ffe220c5942a462e2c9a5f8d29b804d59200e9687076edad42450bb8630da944d339dfcef1938837b045ee540f60b1113c54a62307d20a2009eaaf160ef3507952fd6963cbc1cdbedc45db6edac5e561c573464259deb380584f8a0def262389188ed7506824f84588cb15a8a28660014fa4ca5818a4f8eac74d8afc7bb5f6db48457d098fd935253ac4891142e5de21c8f79bd84b3f7e9058545ec14c740e0951d2932456578708f1e7237bd9fe346759b42e9aa996293824fc724468aa77627b9e3fda8470d570394916ff645bb16a9f4e325a7e754bbb5bf356eda0c5536951202a8b8354f22f9461ed76604cb538b5801f3926ca818695d9d82901afdb54ce48cc37dc6cf3ed2cd44a007ccb67d10e48dd3a150b781c6ce78de847906b8e6174a5054b3a6ca6e060c88160cbaca923d4c4c66f042f916c7bb122751c2e35c189ddbf5e93342994c19a1f842c172ae9af832933907a1155e6764d66ad0e9c8c303c54a9e68e9ada6b09c60ec85f301db03a12eefaf157a310f8e982c871cabe49f2568062b5f0eb70b5a4ce42088b6070bf170917a63673d3e4f578dcd3faf0136e7a4d240f78ebf5f6ad3c9a34802169152f9f408e14ad1ef876094ad6196da5551a6fd190507efe4d18919d724856e80a36e6d3c36a844601f7e409734b10a6ceb6a83b16edb18300dfe7c41a900777656c27d851454612010498810767fd726d6e23f3d49532118543751832f8aa7530f647e194c8776673ae8759a7761f16818afee761e6d1624647ca1939944df98f5ce169e5a844a45f0afe65b0387cbbf4f36f7d264d5dbca13029e11f6e8e33f109ea278dae3d1833b246f5e89f568eaab774b08b90c4f5be0beae0ab0169ef90cfed1dd6396712ba42db148a51212807881134944590750627ef00f8c0cfec1760d66a58b99781c5dc9f9f772a41fb5f3e23a51858a893869629045c8d16257cd6431a8a35262c2ca52f2790b89f632251bf375b896a1e8fb12d6af4422d426d2c7577fac6e8dfdf45390a6fbd0d47d45f248032eb10fc2691d73e382caad251c2c0a4901a8333c06beb4933b1756f82ac3a399d676822c597ff89868aa40442dd9c799bf204b3ad4771f0dd3ede08cc9da42a2b37d75ee3e43e5159125ff17b2438e97ea4d891210e7f1aa3c23ced7d3c5f90496bb3a896e1c35dd86dc2c38424a2735199013c377aeef518d017a89bb7f2a52b67e9f755b93638dab7a74389cd8363cad0aa60a6476b4788aff95bc7e13237ba63f2d97ddaad0cfe00f38f97f467da775a0550a5b72f49c2d9b2f334b08f58afea1a3fec78b2686dcd7d11fbcf93ed51dc76c60c0fd1f4c77e6c49b8bdf5a8c55c193a450a55050197d1f05a7c6f556610187f5f181c0a3fff8a2d09c73ebfac6cf4ab0ecb510ff84ab2983a7a7e7186448327899f0165297360770b3032a546a23916d63a459f2dc8780f232de8a297d9f28e41f592749325af89c47e15828cd9830d019af053bc643d310b5e903f64c5af2a026f0ee5f613fcf4aadcccd65ac25106be738e404c68d2148cb9bf9f9112d04965e7fbcede71b12128968bed4f602c76c80f37a1db8f8e250e4e5c08ae5c4592973959fdf224112c77a0145fd98a1d8358fe5407af8be7bb6211b2731f573ba13dc7d61cf048f75b87108bcf876d76bba39229f03980dc3e2d5acb7a1a47c6e8d0f623e63aab6ce22ba0d244c207e68fc96461f73c873018166659e1ae87e12400af4b95ac4f09c7ad2d80b8fcaddf89e3cdb8170b2c750501d42c866503be0111df2040efec262fc83a5ac7a7865178366eb0abe3f1e48f67283ebae1bd60cd99f7badd406be368326e69a0290dab0c2fa9512093c90db5874b4640764b914e2b6c0211bc6cf3631e119995529233a2e925038c189d4b0a4e09e776a457181bac384d0856c144827d93e7efe9bab029824e6d9be2cb12e5c192636f0a1e4e0738570b0499f170ea700627e921fb5c734ed26e8652a10a5241f9e8f25af2f8884f4b8356c3b6ffc5059f4dedfb212e51722521ff97e6f7e409b866b898b87b2704999eee5a7f791541395685e8cc6b4bf2feec4ca55277ab622af74cf46b5453984ac6bf75ef49048ad1b08d38ef95e186d8ae05ef1288cc3a10d8705a97ea3eba6bcf98ef5c72e6b40b439a47539b91f772eb16e745e69e370df3eaf6dead921a8df73b86510c4a4cacf8a9a112601fb24f1411a7813540fc2af614ae778416a145f1c95c0c9cc6381ee48bc81c94d6a737dce6094efbf6eb52fca1d5aa89aaeaad00d2b700337493efee97a7b5d9c037b49b9289a969e9c7d7c56143551c290de12799db54623442521a9d36f53b0a1296c5539183f9f24feb80021f6a3d0cd783636ad663fd36f89c4f274747f50d8e706b769940d5a27d282213c26e3ef0e138f701a93aac6458c8c07ef9ea85c5e118d2d64d3913ad07094dc857fcbf4dd829ca65af1e4e9942f4d802e1731a94062b1693343ac0589b6fcc45dc4000054083d3bc64032cd8c7e2bcc2714942a8dc86e09cc604bab4a01c9b6e917d7994f4f796f79c15fbe3dc785b75eb28f66d4bce2a1db0cc599d6d3b7c7dfd88d0143d3bb15b1733afe4a5400e33989feecab2e913dcfabaeedc82d623e80d4a135413867444dd6f1d0521e8c992df924a1ffe83c41e396c08f1cd5fef4e074147aac21895aa388f6e3209c3de0c61b885440f8a63ad6370913ef1282e7b81ff47617eb0e5442e8f6167054749c5021dbf0405b31af301cdb9be43eaf9adccaaf5c9f01424544f1d5e2d9c8d921fa4a24fc415f32a6a5f7bb16e90429fc1c37bb3580d8dd56b671c573deed540beed78b057540611c605e6320c9d2f96df3c3f3663a16833ca02227d6aeeffd7cf8aa9b13fbaebb98d6f6fdde826960acd00d9a259387627110af9c040a8126acbf18f00c63f65c717ebeb5fde53bef40f6fbefc94e98c5872b82126012ab9b7fec45bfeb39f7ce41af22273ad8cd4c16ebb77e4148f0447a0014de5e5d1c0e08fbd8fe69da1fa2944ce51a45155698c8cff22a6c6b53b791615e25ed8119ca4d4058445fc6aef92853fa9ef13ffefe4a331f2972f5111b88a0c7bdd0238e13221e2e5be8d642e810efdcd2a66ff3f2aa26fabc894dd6c5b99fb6728e86dc98b70893224bbb6cd512056583fd14d157225f427fef924b5a6fe8629e6eaeab47088193fdbf73ca90131ec5535806a92011f79d303924c5935efe1f7ce6e4aa2e47aa4b2945815dfe10d7cc50d3296ba551cc232497a29497761903caffd10bb3ca76f8852da9e545cf0ef1d6d9c53f4bb788659d0db1c7a3d5a95173a1aafc7c09c9e90be13ce2fc8b680c51589818d7af9f9716ccbe066568ec4daabaabbb6db80aeeed04a3d5a4eb3809a32383c358996c0395083c08a3aebc68b3c25b31adcda589ac6284204dec2866c71d13b80d9713082eccfafe6c8d8016662e843a844e7aedf6786a021319e1481eded94662f3f63b11eca96801346f959e46813bbacd480dc9e0a27e8e0967f10ea8497c3899ebe40af38f0e13bd3f486bc1ff3d1308c6e065e959f548a32d7c75cc507d81a2b493c20338a965faaa8c5ca61af0c73e751a4d6b002a40256c14648a613c8d04058c8cbdfd1b094d9621f578bfdb12b760c52ff82cadc9bf2c7a2e637371c6ebae09a52679444f63fc654642992ac4935257f6af99642796760e3a3ffb83f322afb795a7788ecc05f6c56d20a130ba3d90cee6c2912e1f3080985e8e88603124ffac59cee44457fa7dfcc50636c7f35905139941e29090f8035fbb394031b80c8c8ef448c826f46044090216a0bdef65585496d913acdfcf366270712c39fc54a21fc9ebca79002cf8b31ab1ea4a335491cdf9a40d283b22fb9e41e494d8bead59a0616dda651d366f772db1c736c8996120f3ce6e4488d35627d7ea3bb3f2eb170bb8291285f780af6c959ab5f7b53e3bbc0a203467a06f31d32caba6e00102d64dcc904d5ebcdc296e1896dfd37cf57b82d5afd3d3c780644ba71182876e76d14bfca2e502b5970a0185e6330a8b2aaad667d41bcf5f1c851bc2a508b2c0dc1aece9d7926d7e44d6802fa2021fe5ed00cd05d729ed11c0e07553bff6814933ee806236078ac2d7ab6e42468420aa12fdfa179cfea3e304cd095947a3d008db9c779e0dfaced9e5a2c398c8d64c2017e5065c256a971f61d1d01bd35fc2ae940e5cc30d8d3dd1ee98831d65336c2a6a56c7c33583cdfe0506e138b2c98add8b26abac1b0aa46eb3ed72d84261ec6c2565399b875b6c42cf15ab5afd9b809c8244f8f62e166f585ee0b44a5de09319626f5446449b19f170688ca1084b2a3e721fdad2235833bb1fed5c2587bae8aff5d4859f62b95b423f092a6f3ec27424402d20ac0e2cd6e7c9870a32078b4f99bd9c587b2d517896c9b3a90f7a8b2936fdcaab065d4de6660ba121c04ab78ce779de8d386d3f4690bf8a747e0ad8ea7b8d3013dbab8ee006c82321382d45cfb4efe5c12820a88e48b6a927a30df8c70f4c4f4603eb7c09e80e131a2534b1e955d8286729ac3ff4d7026214f94a37f47d693ec62fbe1f1a69ec93298fe6d4c57c0db05f1c3f9503bc6a4d6dd1bcdeb69d89a829a81be8aff4129c1f737c4c31e659ef2e456e4f508cba887b1455e0775b4ffaff836802097ce45b97716fa056e8b938e72c6f7c355a0845b4dd9f5f6f06bee487bf5cd2cdf0c475102151f62ebd4cc5217a7d6d384109017a491ebc9c1e0fc43bbf92c844db6057536e5d223e1e5d8582205ed8a3d630384a09767ecb5fd385460216bfcd9116fb3e6114a6bbe95bb4c360bb053e941a88c9dccfea5fc6ea3eaa879a26580a00fd5997154e392af8b46cdf8bb763aac12dcebe49dc2aaea18cae51db0f1c5d996d30a69cf459642d824b0684ad4a1fc53144f52cdb23709ecf6fd6538072bf86552a6fd2d82a282374380e7baf2d7fc597482fe9747ffadb1f1e9649246bcd57be811b80065b438a1b231da27f4550a6cadb1d59eadc3ff01db36b7343885d84f84a156a7d270c3766b89b4418adb4a78e8fb20237227f12f5487a17db517ef6df2e14f96029ba75a4ba67feaecedf0227ff6b0112c325939af107ff09d089de5171025daab9fb0391375b04b2d5190c9b82bd858dad09b71461d8042d47017dec1a084c2be0ba127043c4e60fc9282ecef9535132853e2a8a289b8d0cf6c71e103b73cdf1a1073f12b11692d21805bb0e0264f518eeee3d16c477e59489fd8b0feb1fdb8ab052987ec60e02268ae6d698543fc8bba393e6806dd1713a3ace1b3919cecef79e32d9fcb68795ecaf35e63d243a009b8b05d190ae4ba79d1bde454e9ba05aa89c9453522bf45cbe8eacc56d6f334c01934f671e489da6e43ff69dc14034f7bd2790ec7d5ca5957bc71013f4115257ec9880b922a0fc6836724a69dcea0da3138d90f70df46d3b9892db78117dcf66330d58929534b9789f5df06866971992f2f745c4707c22f83bc05ee9a6371c6f823266e3ffc2771c0e86bcf616788fd3ba2f7c1a0e422f3714aa3cfbe0c72906362ed7e85f61f0e40a005c56793ac6cf7c2b48913e61e9e45a5f7a323956e4c936f7c943ae5c79e73156debdd9cd7825aa922c968dec0f4890eb3d5e5666ad75f548d71dd5f43f8c2796a51e915b824eb095a42d355ea941456cf06b8825faeed17bb2b3229cd12c3d543edda6a326291d59cd412a9cedc2ea90635d1d7b978deca07245c3d32d8877546898bdedb283649c87c65d27421a61d58eeca48d96218a3538f0e2f5542f10644c098d87ec695cee6e5679237353c118795616594482ef6ea8e158aabc90d50130a95da9a3bf0129e894791483e324b9ab6482db3afb2d7f6d8b9b7be23ec4c0bd87c41e05d81e3c060e8fa2adde70a5c6b85c47192ffbf09f1c02fab5176558ac10291b8caeab2be23e00a34a3c8d3ddcf00de00fa3ce795f00b97a3fe2fa570c08466bda9f9252d1b69f712d901d4f08644c50469b0ef74df16cb6d2ef23fa37dbc593c3f72a94880aeac4595ba38ac4e935c16169f11609cdabfe23bfeb78cad7c01ba4ecbdd6d6d14d49e22c89feca4cf1842f64c3a7c55d383702702cb997c0d0b6b4d03999d5e5db5c7b6181ccf7be2008997e276c9902db49835e824b90bfad2bb64f9590042cf99ba784eef38fe93fa60cb4393b2c45b2971dd8bd8e3fc6036c944f44b5f18ba7b47d744304e64083b2f21210c818096aa2207ae478f0f1a64e7c64064a92502f7932f7a13fdd75285d430ce52e72409056b9ac2443bcd424d1c6012b76eb18fa194c3976f7469d0fd1db5a6e8782cadf91d5d7132e74504f5a2630fdc6757c62c96009265a6133dbd51760c072c0416139d21e4c599dca3476815331eece765f3b8151bc9c9d0b4faa8044860e073af9a65453cdadb233151908cef3d7cd876e170da6103d9be1298ce42d604d3963093837fc97438ca62a4f265b9bf394424f6030557af1654601864c0ec9f296445d419ffdbb2c29674829846671c697ca5f90eb1f21b81a3468c7fe43e0d6cc7b021dbd94bdb8f7518dd402e0facf62899630036343663b1b3cc27e84dc10549695e94ca0f373794cc9bdd994bcfeff873d89d4dd619c7d72570d9a0cd9cc74672caa13f7da5588e28a6167612ae05e3e4167c8af1acfb3a4f43061be88a65bc739074b90b1a12aaf314c6e187de0ff650a88a1e0738134e03b292046ab9f79b52c61279b5528c2416947ac0766986b9c82986f12de16667a07956e721517ab64b6a967e4f1f6d8eb76ff61c59ed0a1e198d82075c4e0f6567329e33fc534c3453d4acd7728363381cffb15b1a14dbfdd943683706786d6173b9ab1aa6adb49dba89163ed1d5a0af1320543dfd2a602d9ce0733190e2a37743493239c19258735f5f2b060fc1574a0a3e3eb14f6fa41b995cb2d5460a1998081bdb11f201c456e45c535d7cb344c40ff00378d68dd40286da88dadecaf96c29bfc3575399eac2b6e18cd847dc22eb6491e8951ae6c2a86c712fc3b1f0b34eaef7fa0818fa9d54e322e852044e325b62586995025e65afab44302633ef794887c3065966a315a3fa360d1c9c3fba4bca57b49961f5577580f0ec4358edc42cde755e6bb5846ea8888bb3760bae846bd7862b4166d45586bc1c16edebf5cdb9e628f0dd378728bae0cd2a677cd25bcd9a64e6571343c39b88d937b9081f14cede979c231df5a8114007d1d19df991e47a0b2f5a2cd3252d5744298d33e9ddac3070b7aeb3f4b6e488eaa0e94f4a7c91e59104c73f09a79068d59d71d0ebae52e97589ebb544fd0d18189feefff2f43d87659842b9fc97ab82a095b9eb21d3d9f46bcf0a4c068f45776a6d3c4d06d70999e6d28825bae532bec5ea7891cfdaeed28c399c8ca85ee9ed34baa8d108860718e9cc2f12aea97b8b49c74a2d051755b584edf885f8c45532bbcd3127d36588f7e9553a33029ddb508d2c68ac3b217b3a4a037e1af0fccdbd0ffefc84f45e79a0b6707ab8a19f9944ac6c0e5c61531f36e70697391da6f484f43da58d335fcf4ffdd3c3fc8c316e6412af35bef44c043a3f79983f6247d416508ad92824d70326bd69eef83ff993acbd7197ce7770b5d025506a865fc77764477a4b820a3da1f9d4d0a824324168f0bb0105729b645b9ca27302710df112b312b9ed876c89df3e00dc1aafe1789bf6a1030e0a0095a0cb153faf7bedf6ba7a32828281c4b95096691258396faff1baeaeef6664db2a5960b04321bc0eaae33bf297a9bc04e9dd49a2ea27c8a1c93f7678fff91b12e06b6f188a974dc4630542d91217f5ccc5095fa9d7b86539aec572f85f9298bbfec058e824c381e64eb0005b62052eb3eb6aa37048a74df2820f7b9c22e4c21e237c70920f428dd06f031bb2549b7d9afc4fcfab748da4266050c3e109843d054ae30a181761a89d0394e107fb4aa88b11ba9f8428b3a5f1bbae4a48a6378ff9a43428b3cd17054c9c87f16fa325323da0f7601e4cf3e34b1c293e11ecb598a7a6c0c7ad8236acede494248df0923bb43c7ea050f629620b7baf0d6123b3c038083dd27527abd6d5f4feee50d02e24608669e14ea4ca7515e95ce6d7cc8655c7a3d07c29a6758d38019432775c67a5aca4a903dcf1d7b9cfd6d89f6c9f7c210fc2d2ea6157045fcdaee30ac9c92a58e305b9beccd76911d8ee84d7337d3fddadd5b55d31c4405b1e70466fe1c31ca98616056bd267182482e22bcf25a51f166b8e517a47ccae43f89f85fe3234ab3048b73f302d2cf9a83a031c8b49b0bb32e6db6c2e3f5fa19f783d603b5f201ed5a607af03efb01dc06cb37fa6db444ade19d494014bb88b1e2ffb3fef45fe7e83f94b3aa897ff509793800709f353f8349318008c7f85c970906d770d5533241c16053278072b9b0b0953142a403e4b99dd384863f48e143c40b6fa57f4d52b5970230a3a299f04b12340e2fc7d3b85e9c73c0a6313b1ad8ce61ddd877deccb99d3b7ebb2fef13fa3f8cc4ac6db326278bc3de7e53d691b267c08d4f9b2b6cb51bcf9d417024856532b74fc5278210c279bce241a51212c722c45e3fdc6ebd45d408f60b181971cd5df3e75d3e73b955bb174bf2c65c2f43196e9a4d0d75df24ec34e255d8658258392203cc2b8efb6392d546846f14a349c4a17ea3c422a18ae223ae8080d3631b5a49e5d9442fce8e77b8f9611d0e76ce20a655db9ce9ef22d0a9a24712e2127d5614c19cba851cf738c7d0836413fbddb1a81e48e05596f30b2222b9fe4302e3d15168be0714ec2f6dcee68ed26199d89539c659f9834acb26e9d486595f0ccf63708c1cce34d3ff59db78ab3d27676d2accee1fd9a50c14e7dfe57e30cf35d9880a8fdf238fbf6a7cc36a05770a945daa38492de380d52290eb4e405de23f2f6f57e26a51a70cbe549bdb28c6a3a352c73b7d5dd4ee945e4974357c171a0b843bb6f9c80b4eea98f63fcaac46ff775181f5a13f885d80d8eae9565646afc9985629ca74492b132b22cec9dd3d1d2c9464694627774fb12fce3985b60f0a02ca6ed6daa2e93cd323592bc65ac274bed4e5ff092645d813da835b339d6c4b614a1c87e56b884f5e0b777ed8d59b6a8b52cc05c56fc023a52c76c811cd99c45df5812b077b04877600d2b12b6b15de971c782941eb3bed01bd94fcba5b147ca9e3d75380216ddd6214cef4f03f999fab6a5a0182f1480845f61bf86ffb71ae742b88b605f2499d35bf1a3a645b50f23b0f25839d7d71da35fb6dc3e40fcd47807669ada0456fe5622687bae0ebad10264c0d8d244fbadbc62fbbe41ce0ac6b0058aeb71f4cdd29a72f776e056ac1a53994fd5e1bc1621be403eaea57774af04e8c53f6168a79b23d9a8897e94b67539303b91b82578eb991d9c6e50d07d3e16d8c32b170e6cc1a6798e437613af42dc798c24b6d45426d5a2006eafbdbd0fc591f61d08da952d13fa30f9551fac23cdb78515bae6d67ff0d000c92403834352dd33163f60f4f9be682c6bd157c21fe11c8ba1c0ca04fcdcf2cbe7b88a48d311188fc1c9a529610f3c49cfdf2c275e184e180400b15934975beddc64a8aebcc0177d1cfa046271b3c1b9e6a9d9617cd8ef7a6e0466af97934258897152975935f5e5cf9caf6fe7cee5c2959cc3048970667fff958a18776a2958799ea384d4b52be883762d81446f32399e6de58e58f4947eaea52e3baed01860c77abcb7e68fb4eebcab97d0161a6401370909ff1f3150161f7c50a6ea1e1164364963fb797781a901a3fe86b09dd7d051bbdaccf7935f63ac95b36e6e70a81f894d2545834b6e48f301adcfb4d3c6f6b4d36d11ac9f7834eecfee50828c0e22dc10cb8fdd411cbba3a5ed73991df43f631a74e5b017dea70509364cc624b0607a72394e9bdcc45b90aca8e770c4fd794378907712fd0e25ec93e8089a8dcfbfc87e4fceb694ef53f981812964bc67aa792288973dad1ed468f41d3f39db8a09da8d744410737e5557ce1f940acca3060b8b8a1f27af2a505bf5e1f24fdb66d6ad11c9093fa412f3874094100e411556de678f4f6fbbc9d23d7d47d4e1511279ad15736c458f82719e4c2ab547ab8ea119ae83dde3f31954b3ee665744680479af8acc5616c337fd4511edeec49c80a3c170c3a3399ee0f3fbaf1cba086ac402e9bcdb8b7346ffeb4e52a84e3020f2dffe4c05eed522e9646f71adb02deeaeaf393143235e3ecce93efa62de1a74445154d22dc18278e2aba07830b8aed4bbee5beb24d8060a571ec6040bfee1282eeaee1fd94c3c9aabe85dd10977c63faae2c7debdcebc60bd3fb4e659bbf6c071fe8f25701305c8ab07cd1c98edf87e9c63435619c2de29f24a474a4e43cb6521eac18002dbbf8d69ae61fba126eb2d3d680ce713723b850669ab09d7b254386b7b0ae3544972be901ef676d6e4bd288d82a37a3aa2cffaec95585829aa83c1fe275535c607876a2a7882ff71b92e88cdc57e01fd722a0ef5854972630fb1bfc5ae46bc08695cb1790e45c8bef5f8a069d273e4359393abe8b8b31a05c0a30b3e73a9c6b0bec160c01d4bda6ed0562fd0fd14a36f42aa1dfb346c278b1971f393e775109ca87b13a064c80c78d90ace892ae029c24e85ba46b485b6d173e60d7ca4c3adbe6aeed7144c8bbb56bf3bc8d89f5e74dac9f222b70bf33bf7b18be72ce08cabd0934907d257ae45ba9c1762e8ab67e282961647391822314a705d9218f78b83c45de52e1a608592f8382d407718ccfe708cac63fa2122be7dfcea41395037fb71bca5f635524da28d95f6420f511e9136c259dc89114eb883ac9e7c52db1dd9554e3d8663f5a0a4dae22c76698ce5cfdc927733e19512bb0b8e3be8bafbd588c931b5216e85ff1c4e02f34200dcdbdc967f7881ca7ca539a9a76186437b9b4f0e3cd555e85897c869c7df2a66a762590f4824f4b7225f3bb83923920dbe67e1eaad3deb7123bfc8c4a48e178cb9eb385dc3fec12df703d01550038da89b885ebac2bddc202eca3a1fea3f2952ee9053a254abddd9f5c869ede9c82bb14d15b2c29b8b8b099c40ab4a5e5aa2eb6c9c3e3e487ceca3b07c970cb3d55131aebd8482185c67e3af3aec27645a4a29d7615bda6e26310e5de23ee67d746bdcc6097e05a3cd50031976e53680a0ccf800927704ee1722ec98058a6262dbbd7d1d5787fbce8a5bbc2850f7cac0424adceebac934ced26f1441e4d5304f172caaeb11c62fdee6b8f903db87a751bc240816a583736565d43a6b28c792dd8f89c81ae6c4ad92d4f32931376de8438d0d674f6658011b72bd1653fc39887d5339dfdbc13643a8cee7a3c04b93f47eacb93f8270f56e9b8557a025845ecff5cd955e6e3ff380bd8d87a879ad5887eab45527215181e7a4ed794e88187bbc14cf6d4828ee4b5a2bc1369010e83cebcdd64d12fee4589096d5fff0e50a43ab6db6a42c3f2b93efcc3965c15105db8312a6033bf13de6fbbf6cf0334addafaefb669c612d538d32dcacfd624c065798c2a08cc681d32bef502bf09e47a0bebe349f9bf0ff56243ce061e1e37e57f58f4f13e3fa44a1171a5f1f818b4863de89107774ba4dbf9733dd4576849dbf2c8594c76efa2ea50a276befa2b5ada1adefe6c1219399805b300a944d58999ea12a2503bbc492849a551d977528d967177a25f4f93fc37501ca54b213907d6f98b6f30ab10347b5833af61d6a3d7dbb35eaa7c83557867ea0dda251eb79f92925f8806f6419ab75fa89502b101c4bf760e35e85cf2eebba5acb5bfe12b384e8de71dc3e23d3558424f51d557aa11f0f631e62d590a3c97997855d8016886aca694763b4a8979266cbe39a14a9bd7708f9576ce4db23076a2f14c458c3af8a5fe66bcd09a8ec3d649441687c2c3c1d544a72128e029a6bedd4b94be824b813898f6f117553c4f87ca63f3a62907d2713c8712820ee2c0cf2f34e90057c65921dd0b506b90f31452e4607b979e0f4f3c3fa83225a6d31d2cbea4d33c75d4f75e19c88d5374c6e54a11dd239672f0ca943d00fc96cc25e41275c9c09cb8e7cd19fb5dd545bf066154cd83c22fad986ba3c7c8303d7724f5c185f4e5c8f0d49719195a674944249d2f1ac75ac18a15dfcd94cf9aebf486b4e8dea2ddb362be401c6a7b2eb666db9d0bfdab3699f6a4a59cfe56341f61062388ba9030a748ceab3aca1bc663a1b3f1a2fea69cb015989b7782865cf43344459a13de3c7b4cc1e9067928b54e02ce10a7ac88b4eebd05edd3446bf937b000116028432d221141a5369caadfefaa0357d2177a6da5fa4cddc88888a94d76a15a22fc54f231aa0ed07bbbdf70404e54b37a5409778188670c843af86607f2077d87d7d96fe521fddaa441e2bfaabaa466e8fd459f765c0c24c1671b3ef5eab7b55cc32d5021f2bb023d00e2f0f649cd6b05aeed274a1ca2163cc2daf925f44d6fd710b72f658d717bacaaec54986ff8623389a8e43ca2015a102077e7cbfc45f4dfd06a1236d72585475946ca9e30511a37b35534ff7d08c81afce913bbc21144ec5c61557ba9fcb2d208529ff5a6010e32d56727896ffb0ebff4d5a440597f044fcd7a8e7b5040efc1170aba877e8179939b5165a9f0b8dbe44a072f65aa6fc9a383130ca30b3c06dfcb0806577b34d4c33802a31da9bb279c63842c46efdc2c2fa2c8e60191e6c113cb206b93f258d30ee171bccffbec549b4b2ef4d43831719e904cd77b885ce0caa485ce434d464bf94d3ec362764701b530f1d4f3e9eca78f794b42f80f2b6fba4784e02188fb89c13c5794936249bc76e384369c3a9d96b0cb5f2c7d356a55f186cbb8dfb7fd0442edbac6103937085d5abde172b622d40fba1608047fa716b19a44832c7e8674cfa54205562a2e516c316bd2f1bc47d870bd04900366a018f4a07bbf739702b6f42f7f25c79806c48924cc341901a7f7100fea1e1ed6ccf57f1798d48050e00f2057a58dbf99062fa2968b706b0ce285502fe73720b1b9a60a63e5fbe60aaeb06e6e8abb8a786456880d5363d2b927982060c1307f4a338c484debc34bbb8883c4c9b0fe4234996677b3ea2ceeb70a22eb2a3730d4eb3fa4b08216ae786ddab3474264b763ff826e51d7e92e380aa866e8d764f2634fea73630ff1a866bd687a28b5e6ac74bf570b056af72157891df879f73805a028dc6fe8ebea684c5db30d5784ac4c949067b000839a62fb6150bf30dcf86eb29ac8ed646eb2e11692a2cf6a14a9e4ce3faf343ddb9ad79c9003c6981fd5f090bea6e886d21c6299b68512874eab2a21d13a903452f1137e6b3ebdc2198e57c920bc219db99e1431b7610f7b1fcaa2bcfa57f30c6848966a18037ac86b288c344277683da654e68d968fe7b3f8e0b6a4a798a15bc40c48c01555e23676b15602171a1369829b16d1eaaacbd84e1c910375a53a26b10d9e76af8f045de413051c8834f2561939f1375ad0a1121b960ba637e05a349cadfcff8c0c53fd1dfc67b0f3ee48e99b147517262cc5115b0247e673d6bd5697a24114221a3ec3d3ccd7d7a724945d1b7fe9039fd8b8dd906bbaece6834c04d94695ad3d42a62c77a333a3694e2af3130ca49dab0ce85b3fffcd97fc64c1903c79e5c27de0e04bc16c0c95f13cfe1cdef980a2429acd4371ea528a5859cc4bbe0dac95d50849e42c096e786ea30e523d2ad091f3bc1ce833466ad95256e00a00cee2ba0ebe96e87781f8c4fe714cb7d3aab8666038c5d51614ad9274e914fbca0947614278764f254b3b44370002ada9cd54abbdc6eccaaf4aa7dbfc8ac51b85b74eb961fb1a88fe9c8478a10705c1abd1086d55d737f118f2f7bb5ec0d86dbf2471cdaf7dc3958cd396593a6e3da6281bd668059dfb976e50a8bbbf0ed9b6ab36a58b441e70fe9fe5f557f0e04a9956fcac1cbf6c33e451268c5f7bbd49b29e3a373b8bab3e46c9e8be3b2a3e5309cb0dff48096c530d67fbbc359f68e1ae9346581cc3b929a6e3a53b6040d04373051714d47b8f52c7d87a82946f6394e0a82909798109240a863da401fe570f1de486e3ee45e9856bd3df3966e2ea98239fec42012c3eca2793dcc0ce25e7b2c52a7c74d1a647274b08720e5d2128cf875ee27ee680e424acac805db4ea8a0b6e025e06637623a1572d1295b10c0337bf6f4800cd0cc93414b8ccc1e476c6c615760484a89ddef9f57ad69c1fb4c45d7581778153b49e43c163ed9e7164ddf7a6f87003e29952f8632cb7c62ce289eda8e5a326a42ff5323f9b8d256b45ee1b52da1654d6fdaedb8e054bb6e48f85c85b122ed83b897f438014db355b1fdd964bd5b3dde9eca7c09cca93ed1e6a135a51218366d7a3aa0e07c59adb1fea0df33286b85144a2f40db3c4daa512559a071e518d1940ae83ac94694d889c12ef6d6bec40f176ec1d82b5409d3775e83eeb7d84b48d83b4ee3ff6ff63bd75f8539b54ec9c69cbaa9cbcd20f89e39fed6542c4c16e00fd0f2d63fa4b84180f719f29a1cd6889a154485cb407890e42e2063a38b0606e78f0b32e6c53ddf34f45be1001bd35500872150d127fe142f57ace025f210e25a2d952d42ee28b0c47b1f1b5f34ac21a0d23241f38d75c88a01c115786851aaae723aa083a080fe1a1e669cedde9c2ed11971e81cbee87e5f8638ddc5d73191ae979f1b44497ccb91087b00a6e723a21da95e737b6aafe1b959cfe0b1125ef609c5b0eab60a8a58d1c2fe3d4f2a162eee2f698adb074c8f1fa4b7f881ef8c0ed4d9cfa55a7159b34a8e9bdab829724a20b28d2714db9c499c4a6bb101df075c4bce57aa05cfc819a52b675e4bf58217687ab5645c66a270d7d18f473b931c70eaa30258c9a42c8e3330b63dd8f4b4a529197fc8a0a7d05681ac0cf347c87e08e564db732ad0d49b6fb507ceb54bd09f95f15eb77b869f19a0deffec350df90959260bd2bc44931184b62a08c195efb5f67e1289dbbaea703b7aead7c5bcc0a5e376188908325f4964011b1a8a2c234370acf7aa4444bcbbeaf35c6cc660335f11a9b74184c934fa891a37deb8de11de17c43925aaf46b2c4bf75033313df8af2d12d8007c7cb6077384f7d817897d95cc1b78b60b52842238990d3fc00dd8cf8dc8c31e95fc8c88fb1c359c1a9253ee55139bd1efd7edce6e85b0aee5d21c15231ffcd51dbc9e018019f498ce4ae5d4646ead4d2ad595b84cee3633c9cf0435f6722e01f27d2fe923bf83a6fd1bb9e2b7e8047d332cf1dd6d2e5d6889b34e8d13a640ef8d529ca481ad6cdceeab864e8a0c50e62c17824fe2754b7c037fbe78e738841f574d99fe637b61ea8f374487d9115b8a885f13dbf93d6a81005f824fbbf281bc70f3207eaed0861b0c8a5e0db4be4c2b7945c431f06486153fb01f9e3832dbcb8c44736db6fb249ddca621aabfe364fa3e2de646406363ba6f68f96602158db593f6ea682ad8b49a039a7210e9b251c17852086bfa063980d3e41f94ecbbd2bc44dc4b88cb9e1975e92d4d92f025fd6fb7bcfaa35b7471453b459664e834213b789a76a4deef40cf0712ee6946ea6b607131d739a988c8687f23d7d597f25b1033c3a1a96ce78cc2e845d4276b54e7054b03da8ad8891d5d24ef7d761d573340336e45acfac17c0e1c4ec6aa682c26f548dead8ad74e7987bbdb63b8ff59282115ad1d9c876ede18bb4cd15c3bfff68c168e105f267d68b508d4b59042eb82d46f16f52f1a00a57ea2ad27ab5ed16365eb9625e5c74d9cfdd3bad1d4b2d71bbe5b9f392e80ff4592b20352cc355af05a64ab30cb8aa1eff17017592ca3a1d3b45cfd2909d0b22f5271d117fb19d81d9c2759d12546f070f673d634ee8a66f2c1a29488d6abb828d2a02e683bd78db54655aed356defab023ba8d775b7c6efb57075d449e166f33c0c7b198f6ae51edb5794f4fc38bc556d94f8584b57a9792bc27dba4c39bbccfcb2c6715169a641fee6eb08bba39804c52ac411506397bce4e51c7f3592a153a03a6f9c80196b4c3d796801ad1357ea841a7d4ff41657bc63d60871217cc6479f522fa80f686add12f0fdbc25c33cee1f45c904d8062251cb84581d2078cf57b09a888af70b09a653acc69cca83c02ac3cce9479b9133a6a534bbd7b7625fa933087e9a8f6382ecdc4f5d04e0fca26de8558cd23e6ad9bafa19cc357afa76546d9e7c157674710a939672dea5b64eb9b8f82a8314def9e2b633ca94a8f472e68f03bc9a08d085ecafe02c17c48426c63e0c13db3fb81545619c4192e851e5de96bc47ae6c5ea69561483820c721e97e69354682c6e4e55f22cbe09208e5cb33f119713828524299b85caf6fac0d997fde63acc13035d77f1a7fc93bd43d32cbfb1ea1054ac696a3e6db2dfc7e01689c9ca67806bae8d048084f2af9f86921054cee604522c93df1cc0670c4038afd5c6e02366411dae4343f17d37bfa3ddc30ca84f60c8bd571d3da67da4a769b10792cb4ac10aa74c20ceebfc3333718cb119ccd22d2c0fc0e2f3c2727115530b463d088b3e59bd30771b5156ad9fc4f2661df5865f3ca42810058463f233e45e7bb56350ce113acd6578eae60e9acc2624d343fa93074ef7dd29e5cf78ddbc3f0d871d89ca654e5648400150620f130a0f417fc652dd3d59b48a9af00e0df2ed0450c10b4fa46009b16a9b33002005edded0e490ef162d49c97a6c0e0b2122194419b4c88479ab034fa103b9957f12282be9f431e69ab0f81081ba92a1b6df1b73d414cce1b75494276d37b52aa22e8e3661d6839e479a94a79eee08639460ec262c0e715a9b5df5b9f14efcac9ab36c5d4412b9098a9f6aeddca474fac8fe13c093d9b9747c24351e447676148e353756d983c341c7c75d0b7ca8ba61a2250cc40d07440eee934a48146a38bfef218218ab8bb19ec810683a37747fbac1926924cea5215be5470a40db6bdea857c781af74fea42e9122a8ace1871d88f42024c21859c7977847d97edbeb26ebe4d645876fd24fbd65644b77951f5bd75959295ec26dd8000655af0de1276d74b2505353afb2c15dcdd29cc7a0f977d11c433828ab4ee35e3ec683d6f4353771487767c6c990cd806c9768cbac96e419fd545510e149badcf4d401d84689217c3a07832aa8820a5c6827276b80ea3f259d3c7583f9fdfcd15b5433dd5169b45473eca1183f40f696e0782320463343003850c6217663cee2c9c201f6ca60f1c55ce1cacfc6dbd98b8bd6ae6c56ff666603d9a9c4541b9d82ea996242bc99ad0e276d43d0ea67ad23fdfe73f348110e5bab687fbacb48a3e581f2b2b447169ecaa3906bd25f8083b047154381f559ff45effe749e2a180668edfa9d3bf078b1aad286667a2c43055eacb6b49673952221d761783b2caa8b6d4f8956bf7f2b1e4acaa17175a9bf96139b56209827a1dd6cdd6fb039a23cfbdd6c8eb501d6d0e8cb0cf91f21636cd4e1f07dbeaf9215c4dc65689fa4ef6c58c61acd692b4aa3d6984b509a011430fd62ae9732beb04fbd666d11e1133d49f82e83f3c84135187e336fc14017dfff3bdcf98f8d1892287eb8d048bb3e558452a00303fefe63ce31c9a4a769ffea19f10e7c16ffb9852395c22ddcc73b1bc106be4991b9bad9881e5c7e245602d95d8bf2c678d9cf243595d8cd3e0041b375919f1fbfedf3c43cf669846e8c61682d665c15a494b05cb91a139582dfa5a3118e72bb6bd163a86303b2bec840dba2af8bba7469c9a528010151a5060fad74812d0b71a88cca21cec546602ef9c8e146aef4945a510efae8a0825a1cf5cb2212e605f0e01c54489002c6d4532fafb020833f109bac5069381c5d2ceae383d09e39d113958ff45bddd272de33514dc4103cd5099234954e85f969fa6abc57e68e9f560c649259a0e3d1fd56f27f803c01766fa91897eaac84a468cfcc38db106974001b62505927e911557ea9f57b3f9598fe7044ec570dabffda0776658c41b91dc50bc40fa4950ca12ecd0b4f727b3e74af4dd5be11dcf5a2a626e30e7da32bee5c9b2707136ef610f8d4567140a8305e360dc29cbc0315cd160d3da94c9dca1c28f9876099e25f3737a422300fd2c73824f1bf4c27a85cb45ac3128a79c328c9de82278291ea3ce98b7de40cb15cc00d04b2a6ec102b44ebc59b9e5ac112847e2beddea4925d34a078aa2b98b5bcdae46beb56fa61fcc10a0035c51911bae2b8420dc92967703c8fbffeb83f14abae22278bf5d54311052dd44f9762661a5c8a3bff87602abdaa2cc6463463053d37a842f67523da9547b8f409b56c8bda0852671a6ec60ae1e8f67cd7f55eb5c7acad4fa4245c58daecea11ac3e562bf77ebf5b2501d993ecb140c911b2dbd3d6dc996d647b642f5710ffb7cc53d9528a97ce71e4ca793707829c7cb18d82742d0ff8621429d559080bbbd143789e46f8d47c1f8563c142b1120f9da15f837ac08f95722de9fc220e8afff116982f13f599c6aa7a95f4babd9685ce1315fe8306747677f40d0fef9d0521daaf5946bf7ef901b3397a58effc5db9848e16d6076a2627ec42e761e86bc9c75975cf40c29863c49ccbd16508a20876c39d2a67b9b21eb11e3c7a4e7c5139bed96af39431b14d51f44c7981f85803cd823e12aa5af161c79afcc9e5fc6054613e74e5a484998189790b97e3b7c10568b3b1d0ff63869764660784b482fb6c318d1b50958e129ac904ad7a2f7cd246efff6dcbeb1ae70ee4112e93da9bbbb722a1b57d85d45db5afb3210ac0c2c22035291e2dbaffd7e2684451811aeb6ee55d39389a1f08d6c5ea9a80161b322b441ef89904eff063b80d95e631ada8387bb3c8b841ab002ce1b6334872a4a89536f8e232e78121dcb0ee325a4b4cf168d3917566c9421a472fdc2ffda2725121dafd5e53bb9108ccfb36246d9a5af7b9359e4d06e43f9a572559257467613bff71a381bd8bd7d0f2df1bed05e61634dca8d29d4ef9c55ec7d71b22f628e16690b6b465333424357a73912b8b628fb3f5b49cec3c59ed2939e4a189ce7d8c23b87a5b7e114414e874bca0857e14ca797185688038611836acb7a045910ddc235b890e45c6fbe5cbaaa5667e84512baae7bc1c27ee117ce724a626c4487aa00aa6fe14d1f05a04d7be411540b2bf98d71f3fadc1f119de762e3a67cdfe8600bc2b95f0ac91c46404a81de6245bf6c22e382fdf85952741a24e27638d0d3f668f9e37ba7bd45d6151e1daff47eb11abf99af9ed09f733b6359e9397c6189a2a69ed30d1ca32c6a72dee161b1815975f43cc05c33ed7052ebd1949915001e862455ac38eae57f9430e7d1a0c27f7022de0b4b46df3e207acb15ec0b36c03981cb95c6ac7233e4ed5589e290fd8c5958a25614d56013eeeb1ddda44940d7684a162bf6c1c800f99bfb8ae6595821fa6bc7043dd686f2a9fccf9a355ad41efc3119b520240c026d044aa148d1df9822111f0ec1b9c0e5629cd3edb71f099479307e28240c6ab5221e9bfc95d1e0b4860fb50146e36ef75345492e9b8cf5db9c22bd4b0d3f6dd9641213bbd8082016466e658039d6c5bbe02bfbe626ed06b9e754323a9e4d31f02a208372c247cac804587cc03f5766c5a1c10a55cdee2499c2c017e324ce62c16df336aba69b3eb79339080bf2dc352e81dd01ed4d4f4f082d9dcf8ca18ab3d88be2606245bdf23129dd543eede95314e71a91d4a75d3438fe24614b3ddd8e03bec33587659e796b29845c4a302a4217f6412566dcb63a80b5b4828d10b567d69b4c6d7f3f2023fd7e41dab6ca6d76ded7ca25b181e89bd9daa10e9039fdee28b02dc8a4b73cc36383160f1bdbda969019ce1ef824e37863ef6d4ae84260de941d5c71c0682cee7e779439a7ddf0915c18f450317d6644deed36fafed9a1c8f9523b8c967e535e118c04369b4a379df17d3522876dd17a325b87d48cd5088efbcf98055960ff47467a58bbcd84b1e606cd7eb2d8d7ff61e7e6e78c228c93a87ff9abc9332b3f1626ac652f2718726ed3fd8867373f2077ad9bd455a47af08033fe8bd5c0fc606b24f52c1b2648e70e962a799b6b3aab43d69ff76cca3a756204cbcd36900dde4693da30de5beeba33104c19ba6fb6e68dd785cbfe9fc98d71a50f3cf0a89bbfe12b6c1c5eeea85f200506bc00f0089f3ccb2c0771031e5e3d0f53dbe601a5c62988ac3c161659a5f0c0831dc5d2d2ffd0ef3075ed290f9022fb17ac6e0872e0c2ab898e18a2f1eeae8c64d39facb2b60c27ec18d9198b87ba6a11ddca1df0b11d776563487395e3f43cb81d1747c7c9357806c3bd2f1d77ff1e675ff914dc4381352ede54ff05b58ca40b2b6f2202cc6c8c96770e9ac40ea31e0a0f6eb7bc19dd1107cbbfd06155721d852115f14959b531d24719de1abf523619e1f541ad3dd89a80938b0333366505117fb21a6d04a4da4e816b53caca497455cad6e4f70ad946615101cacd6af43d9ea25636e420201cd254e7a354a09eaca64f654580c1b0ebfd415eeafe4790a96a904c9664124b32b256cc5029362ef5aff2b4fbfd2b2d47221c1e3e0adbb5b45f4323bc420c6a7ac67afe2b0c63e52a74ecbc1307e3117a890a0632f9d1b9c97e1d27dda46aa2f6e76de9decb6c6d6b0ae8468feaf6e187e64c0a4839af11db5d490b66850f74cc016f78644847ee9962af41e25a0a72d67cc1a6978a623bdeb31eca74856d20c7b109bd8bc93daedd19fc9d75e82772b548d948473ea18c4bf5dbd35a8f2a98d378540979a500d4215fdeaf264cdcfdd2b7b8f716c59744a000477b1f49841c847b94742437517595e76b2bc4815fc8c3f1867dd68dce33deda0630fd56e07c90d268fbd924c6692cf3a83794b2d6a97eb02df3ec335c2f097cc87ee46d32bc506bdfaeb6f6610e1c61ddbecfeff829e1a80bb6d3fdbe4dacab80fff43522f5447815b02ffdf54362d4c71721bda0232b835b7d97abf79c52ed5c5206fd1a878c7145088c878b773ce8605f2c6b14c48163517b5b95bf9a0e7d350c2439aff16fa564c76a6a4d71ad74205f03420ff86a023134d319f438f45b92fb0ddbf946d858b23536d6abfbfce2f6a7af7bd5cf5455defbca5c91a19d6c957fb270e7c8d477da4eb57db43135926c9eae0edd820dc7aad89e55d63ea79f5bc2bc17911815d68d2f7f0cd968a64b99906f48d5824a0061e0bf2d6cc53330a7880340135a72ffb1987fed9d3763c7e592d737177d2340d10233efaa1f66f0e4f0183e8ad265988a2d7561eb0fc440c9ccbfe7c8409544609b15835522e8a5deebbcad1ed18b4e7e9c74e5fa40e21af51273693d3fffc25a11110067e46876ac7167a44b272859597464e91afa1d95a02834af5bc3a5700f45ea48cb6c1564b775c2b3c80fa0892f0281d6c214988fe6c5b736160c309bf185f5fa1c2a26dade642dbcc126ffeb3f36da65b101bb5f678da5833d2d2c5146549bacc251544913893a8f460172f77b38d3460f32b1b4a06f196a37f9891a1e3fdb7b05d55bd4f70530621c05cc4e9407a315d0bae88bad962529653d1b419dc5c5ecfa137d0c5d4289105b5d0211ad37d7a1cbbd933560d94d55424a1aa9d44000185cd7febda67a742e804bafb91ba8cd8449592b69e8e009938617a339ad814529a463a9cc6ee853ebe19f9191d0d13a08f97bea6977a04821d45334d5a7fce12d10a94920f7633ec4abd70aaf4d22a55c8f004e3b947ae833bd5634e2731337335aad31a13ca47f06cf39a0864db1e91f86e19ce511743f1e2a3b69639e4a3cb5494db544bd4a1422914f7d0b7b81b733b42a5bcad920954d6a5f80a0dbfff95c735daf2943b831cca140ef5fdd6611e4ba8bd508fc8aa7137a27885ead830d0fc202fbc44640bbf1e2ede915d99fd05d811399f2b7302641472577a8674f294aa3d4fa1dbab0cd794c2181ffe827207538aafc8f6e5a3690feb9a427d66e92d5f0fb131b4f4c37d895cc708f70cdffbba0549334b175efdeabda4b0c041ba2bff10a2ede8a45fa6f8f1b95c9491ec1e88c28ba23ded6e039b7e10c86e8f146ac0cbc37313881cdc5551272c3f0508f8cda1f1045fd3e87b6083e6dccf92c8173051ea1020be79b82c88aadb46e6ae3195ba4f9e8cec7da1ddd5f53b7e8b6e80fe0f5e0f186cf0346efa7919766030d3b67c41b9d3e64c166957a8de7060725ddc247eeeb7a2ed74836418a59e538b178167de110acf799000b92497f193775267209c7d7a3f19dcfac5aad9bd7874730556cfb09bc22b2ed32d19d6a9ade29053ffaec5248ab116daf7a2d03478c9ada528adc68a348d2ad1957ff37aadc288f837de47ddf08a114a890e719c1df4aa2023f3b3d1efcb1f8817ecd8034606c55061eb7d814c6f0fccd2bd7be899c4a4aa84592ea84f77b48b023c7e1082c8132df11712fbbc453520ff4a1267b5d6264ab55a25cb1ff51342d939083ea4a0969b7afa59680b257b98eb2096cb5ecaed72a75ed4ba695c89a889b3033d8253a127f47e777752d39a15eba7bb07f351db70a2f3b922a27689c67b3950a0f355edcf13951aeb8a86c66642d84ccfc77f26776a3168fca822e6667440da989525219857bffb2da6a17458d6c5690952f4718118f4d9cf1af0acc9ef2cdfbfd0a071d99e893d9c9df941bbffd48943a9785854ef275920df062b3c8276d969b2805ec07f2b19c5920f3fc2e555499df38ee12aef7635dee998d4d61406a9b0c19e3396b3284fab6017593073b9879d27f1430d214b3a0d3b459224078a3347bbed0b7b36d38e15b37115389f9d5a8cfd75e0fae27456cdab486ea781bdd9b9db10db3eb557dab5312f27b0e1bf344f67c8aac437eba00bd7e493a8d8f3fb30af971033f310bade230f6ec9c427bb6fdc22523ac4cfba316e5cafb3880d62d59c0e449a22618cfe20131c6ef941be14e4415556412b3859d25a6b963da1248cba7e47eb387e33c675768db223b26e4e21b10e117d5d0b304896db90047471089db03d1ade72d20796497f669c3126b0907226964e4061f782c25e6e7862e3fab3f66d38a30bb6dff696bea7d87f88d780e2b294f0f4bafe427c58af16761a098a448fcaa30d6c12307c974a9cb174248205fdd66d15c687eb8bbdcde0ae20a782575739f4cca4cc69945f19ffc505abbd6c4f8cb02379e36d36756d9d895e9b888cf30ef196acfd25bacdb874dab17f881b72b99039f3914879ee192d6c153f4b8cd6af1a88aa788f27b22e3fad249126d673a66309c0ca0e327d250fa93b5a832f754172d84ec07f565493fa291ff08415923dfaaf836d7ab41b06bc99a0892916b2e3f84b49bb587d05bd7715cc7995ae295a926c29a55fa1cd30dc94c9ca03e5ba0ead6fcd4488a58af916ec97f0be2b0b81278cf60aa1f5bcb3a3d806ed09d8d6c722c412793fe4b7603b211b8527642403f17348d0870989d6948f2136301d96b9157ebec553e2c22644d94a031476bd5d7a7cda3c569e0cc3bbdc3303e16afdce01069b8b64e31969a71528b358cd3cb6bdaba5c589a33351bdbf68070738f01206eabd02420c529ce9772fcb360762804aadd68c9eb05b6c8bdf4701f758e0f6126a6bdc1d1067b25a9bf4a292f23f8a00d5d46c890c0ac257f09465f91d76c753cd4e49e1f48119d8f25d09a00fef59ab22525d699403fc2e9e4d6b7e3283f33bab13562fb90cf1f2d39aade36fe81233a65db385a5576fa211bd457c2514a6e203fe623ef19374b71af0aeb726fe75cc110eaa7274528acdaa5a038ceb91ebe10833f9752d3798929e1178faa72f3c4305d91e5ab47b3cf815ebab415d9976b7f067ad08adf5c6b324f5d37bb78dbebec47f5b5f308887d5086b2528fbeaa1f6d54aa398514eb6be419cc9f19cb73b1070d52e6a22a842a5142b6c6688b842dc180bd885e7df787f1874b959806b682feb2405639c01c253e1aa76c64f5f8915e9e85c8aed96f536c82d928a3979751677e0b3521d4589d917ac3bcc5c54002f748d6c6431a7f765c183bf6b0443041ab7b12e552e29bc13f31df7c1b5a08a4701ab1792be67fbc17fb3c602da3304013f83f37b75a40ba5af42bb08c24ce48ec36822dd019bf1e920384e484a0a80bf80a8df01421028e4fdc91872b2a91469bc16c8e90410e75faa8ede88dfb1d54dc0696cb4210393982e497d43785cf479d64a7dead2126b6448880a40cc7f2fe94093f688b74e381ce6cdcc028e3d4ac0fcce8eba22ed9f1b5e7ec05a4ed1bbe687068dbac8c8052dab91dcccb055958512ae495f615166f212a9db91fa727783d60b3d0a10fbba53572d252c5416e013fb3d5f76433ba97495b56b1a505943a7f3f56706ea3e34cfb24521f4500c064d5211f87ca1b349cc2a868cf076b75b06939017b7f673b1b05c08dc7cf4121ef3730f4b89414f6f8c7e46f9720116d57c2bcd24dc66a0e40cd1858d993146bbb932217019c99b847b105a406e082efecdefc5bc0a0319ed9c5653e17e020abfdb73ca53b33d78c0616a4b9f56f1ddbcd0870b50ec835dc0a47c4f047f61fa2358646f3d3e832bf3e3b8052a6a1975e42eb53a341f663f41d33b43a5aa45c92c28d0f7a3aeec0893519fbfd5da8772ff0bf24cac6ad9aa77d17998bdfc33c5eb23fe7d27b5acc9690229bc930ff9910ed5926f32a9330768fe03d0f1ffeb2f6e52824c40a85555398f98b615d3aaca82b05e16028156e9ab82d4a5643f9c819e5899d5d0f868c11826b17c1dc6eb4a83c6d9f337bb30fd317f2d08e64611d61fb743225cd815afbeb5c347307cd88429e63f0dd2d11c5fdbd55c54c711662a078544253f2c4d7d4f4cdf562720555ef136b26a94f23b4816fba81e23726dc932e5c331fe2dfd48e99bf173c65111986c062d9494739f589385e3e491220e5de85f2ed1b4cdf52a9428f765b8c0229a2fc886584335015105e559e99f6bd6b5ac48e5fa4a2780966ab50954fc88fab59235367e10b1f93b6757c2414eed470b35ee3f9574281e2ca8cc91be93c2f1d44cf444472738d6573ae92b9b934fd88596f6c31a75c4f7d74b6f550db01b0ccd04106a2a56fd3740a94e3297483685ebdaca3fe6ff7b3ac387f65a4ec16705eedee76ed2b75541b58d7c6a4ce46eb2fdf782c60aa9315f698b75b29b77d7d49fc665ed3eb7c64ac6be5c33d3ec4534d2de443d6244dd31505884b14f99a2b591b19abc806138aeb7157566efa6fc89db2bda1e650858078ede439407541e82ebaa7e383ed917c916f85279265f50c1a950ac1981f6bb9c2a58291aa630866bb80c98c7f84fb11cacbc5106a05b43b50e47e37fbedf1484917732bf671cf83c985f0ca7b58228cb7aa2361990bb3b7e1b7d15c9f8109199843d7a9e95392b372d53174fbe21439ed1796b0286e4dd9049e06041a1529eeed964ec5ede3ed04a647271cc5defc26f50002020390181e015a067284747f3fbc0a0ed990d3f861a9a6c56064ace4bfcaff90147979c772b6f2200efa295a952a18c9cc05ec51ff932561e4a8c6147e5ef5268cc0a00c84151153821eba95b7927ad676a1de857ace265aee2347fb8d147400086e42bce1a3ae682295f0289e04c23ab45fa52ea49c522ca1ae7acf1e47fac355014ab125fb13577a883c1d86c1b582bf5d736e7d8ffdd911e2856357c2fc8fae59ca363e492768d5241d86c5c08697c25d35a8820fdfed51a019d66047c1cf523806f871d00a11691a9e49f92dd2f63a45a297f7d8178daa8a3716bd0909e1e8c908b9b1640b8e8f1fe4cbefe473f88a9fdb2a8b798853dc87066b2b318bd4b916ce5952f1de9d276dc9cf43fa280cfe1a9ebf53d577f43443b771b15c3fd34691fbe557f232f6bf408a1ef3350219990702a6d6a689d9b0ac7843fb1b78f2b88c28b310fa8a4bae5b81c85c8fa6684bdccb0a88f5043a2c767cb52971cd805cc0b6cfdd2f6f069381f410fbb765c877b44cabf2a36a64dc980be55159d715b0ca3a44acc9eaff13fbf056dd8f1aca58ced2f480e45b34e7cdaa81653eb8ee8ea974e9d0985adfc918388d5eafdd4e760aaa71b3bfd0eef3144f87f7817761a542d8d4ae7c8bf374a83b13d5e187c53d6faca56a8f9efefd31a25a55f72b71addca59dceea28a18f812a0101a304c7d1a862bccc854e4b87295779b868f6cce8a592fcd26e7bc03dfb0c39cea874fa5081b4aa3923442485ca8e30e911ccc3ec2b0188052377846973f1ce9757206b276f29a6b2c233fa07214c0b872311f71be3c98e0c3d1ac597cb289a7a4a3aba7806b913140de960ab01f9ea4f4203d618a59353b97f1bc79ee892016dd171d654802b5083845d135183fafb2a06f42b132dbc2ac4c5e8daf333fb54c26d5523343d0af47bfa1ef4868055f8707d534b129cd03cba7cf56cb51985457855853a2b3d2075fa1806443d19636ae7a78a9f44f695ef56255961f08b284f2df4b5b061a88a475cd83c891f3095e128f9a5afeca2a13701d6bdd4e07f3e25e76882889a4659e0af0a95e0f7ec4a4bc0dbcfdbbaed81542bb89e9c176d1d74e0050f3d0808bf3b59d22eb30139b5e1112a9b5f428776b9e18ad6207fd2c5896dd07b8e397dd2c821286f0af646cb6248b61d63bf04b924ec1c7e6833b09eb7a705277aa75ddedc045646fce8054f81e1c5da24935c552782d51a74020c427ff792bf08500242104c7ec6e9c4aee1c1208f7d86b26b929fba2e1d3f336f59dcc59927dcd4eae126d9120a8a4d3c2836a4bf6386c272eae78b35af02e3668a3d95f226a7c7372866cd5a6afb19eeffc792f8f76fc59493bc680bd393e10373fe82a6edf8292f957a18f20555e2c8c206604edccc0a5a98194466d1f67659b674ba756606a9bcdf4edb489772d20f9ca8edc9e4608b3080930c10f881e50319e2b251595bc9eca576f5229bf450d1ec31e7e6e1baf9e587ec7d66a829cd9daddd29e15d9d0972ad0e8617c7aece5bc07490153b24972f6ae87dd9b5cfcd4a1106acff9dcafe23b434a311d0febfc050dae33c59f94b25b8a0177114b0e72db80e263a689e8f7ad0780dd180c5d6599ba8c932e1b499c3c1db8e45d74422f0497a68559205c01562ea2e6b20fcf04005b66545be37bc690e28f3047f3bf3400e94c0c6abccf03692a247c52820f5d30f3df5b5fc17b75c65be106f9855b84e697ac93800f2124464ee431d4def02371dc27a3674001b44666c9bdcaa4e584f684c60096a451147567a5a80d02df4d3443d8272426b06acb109f6b57621c8fd5dcc36cdf43f9e6f91213b542c7126d137fa9b8515414486a13907f78346c3158f09d8c94f3da78daa4249cf0629eca035e0c87f462772a4917b22b400c67ed7eee212791081e997f2bb167d7960d0741014f7e6c386c740b8cb2a91ef368089eb74a60ac5b1882957f116bea7f10dc44126da31cc956d758e56ba48a6050bf44ac4bce0d6b311ffd27d4b45a52538cc0e3fde4e78ee57c3c80049279c9bc7e5163838123d0e087d6e727e9aacfa1709bdfab11c167c348fdfc50190884261ae99b418e9fe42f727d0447899a58a2ebfd6e7e6f252c958a0272f3577d1dcd8a26a69456586c504295dcf81f1fb4b22767fd9741736f989a47a651de749cd339c8aa4d8b8c2782acfe9046da6c5269a79d87f8047ebf41ba96f9ff67d40a8ff79903ca3c81adf940efa3951903998ae5675f8a1345d982ba423ee44ebdd87dc99e563fdb12f661bfa912522da755e2660e0480c03a0e7a6ed91aa7e77d31de16212f722416f786c4e96fb4a83966629302ff562cb2b976dc17c05397959dc34bd1a98497b763e52e7bc4281e01bf7f120a724bf1ae77013bfe57b62e07dd0ad97ea285715443a68490d481518a15049cf7106626f0160b56c16320daec2079962d2769ff93a26b518f15120a7e23e4aa06168d6c19d2de1af3877c9780c9b1591132958c7f4c1dfa0d4f412dc1454f93ac6b1cff64c38c7557ff396e7e0b8931f7d448252e476204f572b505a8ac8bf0951b4e86d58b0cc8ede420139f5481a0918d6e01fc8fea4350c14b49baa38bbbc09058175dc221c6e54fe12c00c03efcfe39634e9ec75d68bca761f6838bb21c552cf5bd3b25d016dc175686227131ef7a29a5c1f4083d5298e736362e809afdcfd534f402df6b4e7509cd11700a5278ab75b2c6432808b0ee8fc327d47b62c7c708648e99ffcba9d71e9a06fdbf0ca950fb6bf0f6acae2dbfeff117ff1a4ac65d87922eebba61f335e30fb09a6a37faa21a3d5a945a913581f5c94861749fa18709055e3b9faabb035b03a1d63bcaf5cf9c842712e7176eedc0ba17f565a1c5ed39e4e5154c5a301a4debdf3ea382dc6532edddbbacef62cc221d8afddfe7dc2637552369264bd751aaf486af92bb005cca55a0ca1631743917aac2ee5a37b12bd812e816131cb42985875728c1663b917c27b60791f708a14473c6774fe9ce2397a9b970192fdff02dc8f92929ea489536585e550feb4fa7ecf759a78eeba08884523d13dffbb280fcd9d63e9fc2e9c5f3d7bdd0b179eb25c12a05b2b3ead214d908ffb7786d29eb81f4212acbcc6204cbfc54098237d741321f110c977e10bdbc262d7829218244bfca2e2d1a56bc6d573ee37f0ece726f35b7676974b6969f448a1984c05c5e3fadb75a81cedc744f2a6e5a2ec44a253d6ef341c3c40a423a15d3d6859ec5ae60c70dc4d570343d26cccd494e777dda8523713e662a7a5e312cdcbe20d5a799f8f15cb50e49daeae922bd9d12e60f67779e1cd8bb410dd98995ec498c92de060a3d747419cd2fd98efa32257468516372800f6181db554f7a7d8748ed1d4aae35242ef47fc60d7561a9ddad2faf07f01e95fb76c62940ef5e7d0f9bd0a4e19c3fb87d29ba4821d319173e72644a4d61563cbf0ba0a3fa64e5fba049184fa3e0147bbf00b27ddb676a6f418e9f7d56d535b1cfa0993866201a4e3f26cd3049680b11f4378256ffdf77cbb8ae54b657ac3443c4eb7f58d4fd22057bd213b69c588a4d29258c09239871481119b282a0f0d617631f280f4cec769cf9579a9e8de471e4f1435556f788266b158bb4b0df30271bd563efd1449aca03199b18070f94bea8d132b8d74de4292d7edae3a12b411f5c678f223934f8fe93fdcfa31c153096ac4d16ebbb84fab19b3d70c05bdd5d2fd1dd6ba65b18e44ef753bf8a75d1a5aed0314c28b54e9a02d087f26d77d9c7f8c8f8116012960e27741c344810d83f89a3bc8010116508b0a7d9f7d5c0cc376839282da687eaf4309093aea1a7c2f06e95e9499c3244ad96416af48f2dc59b9268dd3acfa0b25889db251eb6abeaf85a5b2190bc071727ce524abf3a9192c6d2c1a668a053d3a93679c4abcaac98ce08e82346d150c1667b6b5819a1bc9485e5daf774120b3ee8ca7395ec6d1247a617cc186e953b574161fd85e92080dba7ac547abf7cf4f535d8fc51be4df5e2db916562a3c0b4faf03314afde1cda2075274f38ea17e5c053637befde8f713e17c20167e38a9fba732845ebac1a60fdd9ccd6e6e8dc14a0109a219e3164a8bb8a24eb29e42a80cf9a6032d9521bf220fb3692396daefc6e90ed266c3a6ce371008b11443d40d18f1e9c960712416b74715863474fb0817fd41ed4ce946d0a546edaaf361fc38cf33880d35ee9f30dfd1e405795739ebff77df711a3b97469fb0757b9b3cdc007138951d73e29f9be45b660285e62edaaa12ed7a569dac00913a2a5630292823f15f246e8316e13ec50785eb24cb4a554599b11486478e9f7ab0760bebbcab022fc6ceb4e325597f18ce5038ec78513e555f37a197f7ba60f3c4294112c5c2b5d54231159489ac31860a78a7b967da4ffb71cd4ca64ca0b80db7f93ab2d3df64bf476d5d4dadb55c3904d40f5395d2e39dfa8792073626bd23e6fd32550307f9f56ba852929904ccf867ddc07aa3f709b638bcd0d44f2460d6b932423efb551aab7b8c0dee2c5a72cff4337320725eeeb8d687ed623ae679c903f6d8e82b757ec1d6c466f1162e9c6e0f16c98fa7ee8f5723470b5a76ada3e66790c7ceb12987c1c08273c1c72bf2b38bed5ebe32e3c68ee51f4d5f132ee23067a6d6b64ac8305306fc11494fb04bfdbec36b1b764b9b411776ab828b11207360c4ef0d50ba509705ea855fb74e5134d9c5f182738ceb57cf79d8e27973785339dcd50cb7fd23fab70a2576bc4eefbb95c57e3604dc629b099434397764519569c16dacada32d59d59d139fe82998a990ba7cfde1c8bfccc7fdd23f4b6a4694d1ab96aa8952659689e710fffc0d57f4ef3e12cf08ae6aab3c298e23cefde2411cb6922165c2b5f27eb253fc455fb2839b0e93a7c2425ce94e552c7449092d306c62ff73f243cbc930cb76bcee335e48f28e806b810d5445c7fe9344e46fff72ba145e8fc7343289938475c3a8d6bec8c5431afa84e95e45ea69106daa8334629d942cc79e8dc5fc1f31b8c504453bcb68567ed12d86ad4b131ca6210b8fa086248e8dcad1566d4a39ab30ffa9b35f08c9185ae6c6e9baff2363774e3f4fdc3b16118176a12d2d37b6d086a13107d00edf782a9183e8c24540cc386ce474dfd02212ad86b3c5828f0f00552bcc5b0ac33a8f0cb368af883e5cabb5be3c216b3190eab5668d6114cd56a274bafe7ef92416151e74da3d6d099797642ff271446278d426a6b95daf53a19d5aabb673574523e86d3d92e8d5423aeb0b36edef3e5af470ead0b3a696df05df8317aaf0df943d8c7cd0d2d5e2787b467681cd1c1702744353aeac3c21ffa2daf1047ce052f741a64c9eca817510ca0b3752d6ec1c651335b428b7b7a8b16602b75863e24644948003c0363b875489e27eb9ac49ae5cf411895ff4bfc785785093de23c7cb1f4489193383a7cfa99335002e1a8f814083082fa6e393e8d038c2a0f70017dd5456d21a3bd73cbb20c9b4e328220ec065142e2d71118323dac0d80fc2f18da41b7391f70ab7c7b1df38d1ccbc1d8cf07677fc0c74fe766d12b119f4cbc6978cf51ca2e41726e6ac1f2a45ee583cc0b1eef4ccc2713e6516b4e38c20a321d722099f01ccb77f8e1eb566892e2abdd8443fa961a6817cde97634b3f14d416a4ca2715514ded8d86275fae5e5ccc70f4e770585cfbca4882b3abdec4f629138a3fe74a584e83c0ea1d572746733d97a80041a4c709f95187e16ef2afa44125c5e778b2801bdac8a863daf508f044fa7e160c068fc6e9f2360fa8ce19ccc11ccaf6285f58180849068da8e13035c138729d0c0d020c59cb6ead149a2019ca08bf5fafc2110030b71ad7af158cff8c937490b82855628a701f0fa2f265726b7ffe97bce702b62e1050ee6193b0eaee30eadb47b620583321d017b8a98c453bc096296c0725a60277e9046be87305c5b72b98ad1fdf6a28ce1b3abb24bfe35334ca1587a297b58e687639c5127076de5704148e99737f8eb72bc65fd32cee53069007c0ba1cc39abd604d6244863035d137affb749fea92544488a80682d22e8d1256536398b7334f64abe56458b7f9cff88404098d09ec393cb7aa347857e00c31d7b4a39726cdb30fbe28c5cef3a2ff6ee65aef466aa439fa32715e473955e0fd813592c67ec635469683759218748b38a5a2ae3d84f204fe1299de2bd61a783ee1ca9f77ca35d6c1e1131594962a5fe52d2df4c5001f2fd9848160e5eaa7b9ee55624921001ae98b317cbd8721c65e7a722e2e9693bb8eb0fa28213c5f5033bd296ac6dee2569a8490d5e361c49cf8f1a4b4ae4c63aca0bda911e4772236498c717ad7ec721c75df69cda4df052de9b4c1ec7ee801c6bece58c737e417c9f7f2bf478b2dee9bd9a4bf29f7ff1c60c426ea7db14df501b2c47ee0be5513a808baa749aba6602c272fb12dad84352edc1a8f0552c4cf8b6616b194339ee5f49e630ebf8403c54043af51980275c4d6685a6bfe0679d8284e4b6242c518796dd09f4efaed12b5d10fa8ce37b29eec1e6b214e9c1afb43bc4b83f07d4021fedb98d42a1fbb43aa1c5672e64a330df3479da1b566e6c0fce9d8ef03842b9a27b0d59e8fbc502fcedaa4b7ae2acc96c3afeb7f399c8c9efb1975553d29a26777d31f4b26eca50e5b51a3f9aaf69c50854d5a52c5a88153305e538d34a145f39a0a4a5db7e1d23f8cdd6409333da2163f7cf027a338a7fff9fcaa06c7b605a9d775020c5d143cc41ede5a9129daf4078cc5400056b2a1a52fa20442b64fe27c870296c2856b85c3611c9d8c02863907609e66504421a0aeb8785c5596550560a5df1c9dc619bc06d71663c819cf473cdc47e08132db0565b5aef76a0c5ebece694767f07d0f917c63cfb26b59778d9133467f6e8d6a447b37265a3e5dacfa44f72fdac2452f11b60fff7b6b307098369f1fc6e98487bb858a54dfa34b66cdc316b50b4d36ae036b58d19014d9ee7e1e63556e36f629a4790c9217ff46167d50044d5780f849faf40e892f86ef52927fe2c87d8e26fee235965c31cae9d454734b1ad27ea83e2ad0c9b01a3558d9e656c4fe469d4dc61df8734e6413c8b328bab3ecff1d88265821e5b88f677655bfe027f2eb05f07296e7edcb89fc8d4316373dc36968812d7c2e1325c6bab26ad922e9697fd909fc1d8960a9cd3a6e4f8bfe2ce1be1e794247df7cab039b5100ec63f501ad220945e84ce54ba796e02706a929c8793071305d4472e7bbcf99e966adaf5ae45e989529fe8a061a6eb01654d467a91a467bc9ea0fab81a4ee4afca74f652060fc38712d541eb691345bd64ba0e61fe93b7b8d3a1517f020e3630f675dd2dc05e1add7056682dd8eeebe262334bc45d79db9760dd03e2feb6e399c0f2eb6c407e63538093199c4bbb418d987377276902e46d6c8e0331769a2dcfb1bdd77f3655796a11414bc5bf23653ed95587250f6652a6afd85112eb067d17a4bcadac6e875f5f8ee53c4e53034a59a9dc782c74eee6b1767270d1ad4f914bdb916c34cf2f584413997a3aa7903805d6db9525a2e26dff147cf1615be67742c732a0af59080fc3e0f6c8c34200fce647de716bdb9a0c97becab09047615336b1f3063f99131e4fcdac2aad9145381f8ea0f368b32a254473a8d6c13783a0105c0984f2dee1aaf04e56d6c9455e271b3ab7205d2e2a8cf63656dc2fb6b6342d84e952328d0bfa54cdaa5596cc9628caac154958663e0c2404ce36a4f55eea3f13c9e1afb9e99a029d8877df1718c50db82808d38eaadd1f084ae12741e9003d46fed7be5ec9492cd8d915e8c0cae9f7b37c11994c2256df6d92fb42932d0a5666003cfb8e591e31caa2a87a4f329db046c6ae68458935604d0ee27c1b189bc036c2220dfdce59ae41b189edf4df2521455cf2c0c40f5f15bd1144564b86c3d613dd25435e7d859bba1080ffb5f15047b8ccacf1b787e68b3c6f09111067b084e705d902b01272617c6094302242ea71640378808be169bcd3873842d5f8f5e7d3852a8dd1d830462ab1169e31eee0e4ea478216527d5e42d91b352cbe7d4a7dae005a915a0106317fb77cea4cb9cd64a1df1c558608cad91b36b530fc4488a1f6e0e6a6a2ae75334e277c7bcd991604a1b8d5bc2dc3ccc19f57aee4c513f50a68cc632ec6794978444b2274eeabb24a01737f0ba029cb94d69601dc25de29eb236cd6e116b98779637ab4a4b6e1b4f4379623649d597926298c47b12dfab7caa2d8772d584e8705f654aacc1c547ae0169821158eeccea6ff5f0e7e3c9eaa7f9759a4f3b026caedb2d5d11d0c6e8f1b1c6913242a70d6f7cd653b33ed7433d998271b9a6128153323e124009613d39ff818bc48427e0578c43fe6293362eae75a2bcf9bc35789628db7f48452897f1a792f2286bb101ac1bad2800886576072d8feef4bff314abed4b1b5d2330db044aad4ac4c5ecde52ae7daaf8eea8bb87dfb1be3e954f107d89a9413bbec70358169b9edafd1f19f75f85848f89ecf0850cd0a63eeb55973a78d6b42355539d9905ccfa7b18400ab99d7156dd7721dda7b55767642e69caae3c891663ebb74a606854ee807a803bb173dee860788d9d68426f836c406e3e6cf3236f6a208b4099ec0711977f93ea421812a21f59df21efdd42c2b423ca7bc7308aad77c27fc94672cd7c5d361d8a3e9f1e14563c47ac3449c6aea00c357ea1b3451ecedd55c28e49984b91d3f142d4fef870b89243567b5b47160e8bc33702b711f77e4aeb1d19b4ac204aae996c56d00f0b43ed4d8914abba8ed9bd2a0c83ec53d0c1fae75fbec3f6a046d73c17cc760fe09a0815877718a1ee72c2305589692126dd8be72286f043f3489d88865395cc0cfeb37be1a735c2cf81d26ede50112dd89edbef94f5ff2048839059af54ffc053c4752601ecc3bc119ac10668c64564ab64a47af7ad17f74f14d7f4bd838c229a6f0ffca2d3c19b5800cdb12732e90dc6b461561f5b15c4bd93e4638fb37a5e6b4c439f528ec3338a7eef9a45b2faf63666ff28f7f18573ccaee615367847af74a27d92f7918f0952482bcb5e8557976b59156dfc3ed66eb8d478427b992b9608754368479139e8a1ef7b8a02256b20bac0b158c0c4967443f370a95655a23c9cd3881d4ec2351a276962fc3730d816d9f8f33a69eaec273143d7337872a6254bba507dec741e6ede203d6bf425646f65f1f9832f7a8b12cd245baac2228f215382383755f925cd801ede29a7efaf265f25e2d8e16fcc04630cd72dccb5b62a96e2d0248fd66e2e0c3a11afb03b87f2ab23e44b6117c6d8c37eb55e5f1b55ac1a80e613f750c41f45600493e4a7d0fa90a7c10e237b759ec51d4928fb3538b8890e1c4ebc406df133e7c3620bbc687f3b4112bcb2225820bfc469f552fd43dbb2007800633813d0a0f23cd261b471ef3b8e2ba22c210f8110b5e8abcb70e49306c9c79741fbf7bc9be877b1191ce23d0602a850c173e56b99d2ad2c005adbe81caafa200444f361f9f5fc2dd5375c2e733ece0737b053f33ff08f3e40df13422d17d6be2bdbf233cfa29455304098ec3efc5a8f6903dbc16b2c3aba0ee6657098a4a55089fdf633f976d683346ceb7f88836f68c37fd1b2895db085a04573c45f88c877c612c5e397ae3760e4cbb59354b4a644c8bbf9418c8e446e61c90830a9aa3e44deb3cab08afe8b56b4f2c09c0b9f922a8dc0ff81698b0f386f03adb03e4697f2a001eb2cfb682a000b72d99af9ac24b63b483573977d3e4a1def46ad0e19e34f2f4b30ead52128c8c8232d95ce58c271904c27a59598c73772630684aa248c8a85049cb346835b31ba4438771d77085b5ee5e60664d65704a955f840c9fe3471eb0c8f2a42121989275f4b23e00e7f440b771fab09c48b6dafebf058c5b10163834584850093dc7d4605f466f2c1bfeb1031540e0d5ec5b0a85eb54f1b2dec7ebe77174a7b2d5005c55bd2fc93c5d0497adcde1efdfc303e6bad8f63ef4506f2e68b9261f2a163394374a5eee86ab6d96cfa89dfe951cb89011fb6b38547cb9e950f7bd4688d6558d777987979377d4f9b32e0fee9727ab32a9530dac913e3b93c0cdace24be50e087a11a0eb28d3e80d1118b2693f78b0fd8ae259dc8d3f8629e2d384c3398bfd1d208cc2362e5e1096a185b1787252ab1b1bab92e353887b2523888efe1893783273c49613e949c9fda18d3dfe42c9af89179e96de549bc2f44d079184490be116babdf065f2672be24e6509ccf7455cf06b10abe53cad623348fee3cb1cbec6777e274a2c04637f364522d39f3f74facd28ddc551d249fca356b8bea4424ec0898932ad2c137d9c9477d6da0fcb0fdb26dd6515a85ebddf1306da0995dfe17490e728942a7dbebf38e72df951b17e93f81ed7eb4f0eef1335fb7e0a71eff2e628ddc3c24194dc0328f18bc4585aaecfd6ca455556bd7e79bd2dba466eee048ddbf57a90ca4078617b36e2833f490612fc1dd18852159b52bed82b125f8570221bfd8e79339a038baf91b30c52442d52ec7ffb1efe6f3796fe861bc88ad06918e9fdfef09aa0d5c1e724d132a5744184bf836525aaf43e7024e8129433e82b17ce361fa4b3081c91ac3e401aad2f8b70a8488095218e132b07ed3ba8a2367a18b0485671ae8ce0e40a6f69dcb5e783593ccb43daeddd1339a2d1b2c2f967d9741ef28b14e516622676999dfddc87f8b68e7e92a7561898db5e221f54918ee6b9b834234f8cfda6d486d033494616cd5f92046d88b2a790aaf793eace6ec8562411606dbb52cfc70b9a8f9f1627e482978752a2a9e6231883fa12bc3d9970b495cf1e1f199127f7ff5248e7d33f9e7f6441a5dfcd6581117d85e2e983867a35b9bcf48b18491355ba47e2eb5d8ae147eddf4fb6d53fd872f83878c158be843a1d7624c46299fd7ac2767028265ffca2d891f3fc9b768e41ed2495359dc703ab2e5ce0764e0945b9d16279aa5285186fe38690bb1ef52b60db0a26d1f4594bf1a932cdaa702aade11b515ed1e9a8d9d19f6d4547eee9bbe41fee70ae867b19bcb8009715ac4831d4ca220a8c0f79faf5ff61851f737c36f7def3e55149c64db4a88e4a25773a27cf1f049ccd2a7fa1fa0ed1e7aca1471fe9e32257873321294969db3192787f0a0ba58269dd9b913a3937a86607799f001e11ee9f6f95261b8ebab5fcd8f2a39984d3861dfdb06e2daeb9e224e8f11ada45e3e30539d70bdfce2bf434e30c5ad9104ac3767c28364030a0a79b877f4ba64bdc570038e35d4cb95edb1dfe5925f26a314faf6aa511baf2e9e458318444f641ec275b949171a4bbdc56d620c86c9313c078f6d48f98c933400f5122019434ab908dff83f77466ffdd8300fe188463acac5f144aa07c06528322c2fc72b97b2c23da1fd0252d320cebc260192b197693c0eac6005f4c4c64f3140b53e5bec2e809a83f23e048070b4417090c4235f15fa43632c58cf29407150bb1a319107d7ab74a177f199d1dbbd0ea37c9c29a7d71eb64a0a04c084506f8fdebf01e2546989ebeb789b718ba16fa248e78d855b37f10aac11b6b4ef8788811912b47560fb4e89a35467ba3c269ccd5a1e841dcae055a7661d390b86b4ce6b947ea4985e3ac319e2517d79b068d018cb3627e72a6e413f6a2a0b21eb1ea725aa347d4ea33b3371126700507d864b29ff764a6c11c06a9a3e06d0e4c3d665ed68b810e52bdd216175506d307850b2264e91cd55fde5bffe7a4dfb88370f56d31345045011b652a29df6558f3eeff05687ae7a2ace965fa04eba4b69748bc1959fff73891a97120ef224b360ad97fca16848abd6473919edf9c2f10d2b1bc9c838f9face2b9bdf1a30904660674f677327d4bda0907cb58753887bf8112720edbd01c955cfc7d232e62cc7b856c1f77bec3ca6e5b680894d4414e08f604dfda8404ab0fbb23d6d24f7d5d11a2222b729542e23582a8f16cf4ae84312550ed2ae87d7548e28f9aaa01d43d8b9bd242749f02e62843e63b83af7db50ecb0889bfd8ec4e77ca7227d73614f8872d8fe9126c48a1c09ab02a4d6714b3b373746de0e0355182c48ef0de6a48f65936b7da6b2c80d774e0e26b9cdf195ce6733189f36c9d724af4a1170841a398f5d3129d2a16a8e2e826631e84044ec1a6af103ebf17659355c8fb89b52ca57ec58297b0b3a0a48db4798bc2e454d6f9e7e423fc020d4266a8d1e23db560f5538041621fe867d0555dbebab6cb4819e032ffb3c6a30631f48e39fbd08421acea93e0052cbf88b1b825a8dd8937d6916cf9976c9a20bd6d76c88e2d340e86dba2d06b132d00571331b8b0c49f46e249f962510370a3e928cb44958d1e82e61e270ca394a244460e52db8ddf9a64be28a9b65a99ac81832e43bd198112e0fa1a531a26b06c293fc226832d835595b6a64e29a27186ace0582e7f5dc405e4ead1194255e508b5edd717695b97efa8995ed21c6f33e486c8e685bdc814cbb975848728dec309ca711f6fe33a1050f9bd06d23b079761250032c8c998be3acb54b36e3fc36859d9f984c03f394b3a8ea9e506ea7ad7a4738cff453221e8771c2809971871ec309b8e735b36cf9c148b4141459f381e8b1561152b596062bb14ac757bd9bcbcd95bb6610fa691de32bde5c87d92570da39dc1bdcb56230669386442581f729da2f46f22251a1b0fac2d53259ae86f7949d4df3a6fa412f333b00ef7a362f666346135cb7a03046665a206af6bbcb1643e390d58490eeb840ca3812ddd120762f49fde7043a77d7d531e168b8b633d3c2950baf188a2626d24d1fcf71515e91639635ceea33cc3fb486bca66374e1b7811e5aa3b85dbff62f377798e717bab0a84530bc7ab40cbf1f532d32f67e074f69ce2088202db14ca8419eb5ab4da4136083fb5253f1247a72c3992dc6c20cacdb67376af4605f6d1fe87bc170c2f5bde76d3ea4caf085f95aa4304df07154e3bf3bf8061342e74330ccc62d05091af6eea6e7bce855f1a8844be05b1677bc8e9e2bcc4fb87ae8dcdcb036bc79c747c8da0aa81632c12356d0bc85b66d11374ace2225ec6fa90eebceeaab0598759b833a40b2224290adb91c0ec9cf1d741d37b0d8f8b7d76f9e462868cff5a803763a4c11dcc63506b9e89e4bfaabee82fa7bfced753f32a76b66e3b1304a8b23764491c12ad9e52694dfca5ea864470696bf1eb71d47c9a4e9eac38871191a2ec0bb72d107a9f1ce93fecbb999a87cf0f9b0a245a54520b87914d7ffa048e3de0d00f6e1d77699d24c8a8dc944386f8e047fb08200e4f64cb74a843682152e602c3581aa71f4682d2f2b5370e46b7abddb62996cc2821b5b44962d141d8d516124c1af32ffcdb18c466ce10acba8b2803e1174c98db20d0e842760a7a1165b3145d036c2271dd6be423f36c2a4ef738f4349c9e0a9bc70cec4ce940a59e60418b1d1d938fdf462d1f176d12bf05140b78c4d500eef184e17968280f01889fc66d6f66ec00bd8fae7044b8d7a1273ee2a5860bb3f27f727c169dcf439715e79fd75b7f30a1740101650d906c212102819224c94afaebadbac2b9c5037951b2338754fb18e841a70c5b4a0960e36743824bade286f997854f82d228077d4454887be3e71722e469c738d05d9536c012b95c9678791e27d0d27a3f58d4651b96425e1c5c11b5f18f6cfc0cfc673bcae3964c83c8b0932c564e8e240c33d8526f8a7f56d4a9101dab88499ac5de0a3838b704837f98c9685bd65e15058870e90ac648a803023a747c4341faad899ac1e43814f35ac0e29a372429417b5b732cfcce4ff8e8b0bdf123778f4be788b5231dde93196d1a1ef3999b77bac415e7e0e0be1caeae9f8805dd9e1ac40dd88af01dfeb00c035d87d16937529c9c6afea4c977f862be5b4f7425757256dec6d4be9d42f299ca0edc03c71356a4c5eecfcde85ce9eacc6584d4e4b46a8e44b23dcd5a0ef4e1842521e632624aab6f36265eb85b4a00b3cc2b60119808e2a6989b7c718accea32e668b75899147af5434beefe7d1e9ad1b3aa04f97c69c26128c3756f5878ab3eb778d10288dca80d1372c38f40b8839397fc9218b5395a59de0562a10a2d5420c582107e95a63976da3ce6c91bc95194aa7d3d5f1e453d7a3305b81f208604ddd1362e17ee9a407a0591c013bc044fcd987bfba1b1852d046b377adb321ff5422a96659aab42b05a4fe87c447dc17574f993f95961da1080b77f194279c0fdde1c436dc4cbdc46c5937065380377fdfff856c20e80f3ddb3fde742f5d4ef7f241dfe60e4b81b33ab5b35ba305df291055d75f8518771d0af80ffa0b6d91fe9e7446e4453f1de911c2e66a7a8791e3a9007374e70cc38d39925fcccb97f95173b4ea390cfc015ab7308e13f5ca4ac32e41da70d9b1c6276fd1ec06a4b4837e0751fd1ea2dee72296786b98048149c465365dabe4f57d419985fe1edfef912372cbb47079f1e9d83d88d0e9e96c89a0d945b44c0694a8be06c4d9e25ad951e7d102c8d0b7def233dd05e2a5bddaebe85b8fb1312eae03feecaf17aa08c365f3c7707202b8b2e53dcc1fb119eb6588e47b71fc90c1372c09e2d2bb526c6feb60f77513c88a6e2c5405ed8e10b30fe0b5131e09761830744564058d0c22103a048bb6baf36f6a9694a75d3bc9a8a5eca1bd3ebe5600ad34a353e772e25794f1f9b08633955f88b0c172bbd1fa3378461a58a97a8538b566b072e8d9674c47353017676130833601464dba946d0e61da5887246d05f6ea8c02eae05feed6be2be87691ffaebb41d2c0c218fc4dc919eaf0313c705363063823c6394b2ee1191ed5059515511978727280d0a50a48e250b60226dc091a20b08978a58e5ae88ed00f0203b337641b19f1d8d60c40427746c1e9b500e2adcb8c3353685b2f7f4aee8d2d2bc4459623d5ca416d27efc4581a229862397a2002461d0e3184a8ca9da22e4ce811fb5e51321cd5014ffead60a10d085acd736cdc0733478132b3037db9b6a87cbe9d9f107eaed19f13ce2fa94fe8f2a50df0fd1d5351fea5b05cf74de1478f7ed17eef2ad6e319f0dc7d54c3389b56606330358f349416404ab68906e8f7d0d4a466194a6b92b1c97a56773d700bf8f73f21e7271d83d75c85e42e9b0d2e42c3443e9b4aa1f3455207b3c7798461de8421e4dc09a59e6f1e369670bdc5553d0715db295ef7f6a2aebcaac7d40d0cd32c1d01514bc3746cf42e6e6cea82471f044d6a28fee19b3b43a0b0d11b8c0de897a1c4779144a743648fc053c96481c8ff1c5a34ae0071a58425588e530c33ee746372f27a8a3fcd61f362ecd9e3ea1e6f8ec69a8e59fa1b582a707fce5046fc0da6625bdadd41c43705351173d4678a527160dfbe848bfa03efaf7893752befec51d3bec0ddb14b0034752d115bf07aa2e87c3790f11546b0eb431f144b1fe58f8b321d58d52063ad90ebc5f4ab3cddcb677c0e88af862477a5a27233e1f8c12dbceceb8d026e77a11373ec10b054aa3c3300833265925e05e5333e9cfc65ab8a3e54918d1798d1d7cc6fcc49e97c5900b675e8c45e39e2caf07ea86770978ddc210dec0a815e229dc04e2403300b686c3e574490dee043bbacc6a81396b796bfb483cd5c3bf8fed77242c5fe23a7d7dcf321d143199a369ec13489c95dd2bb3aca58786740555de1620d148b6a5bac8017697eff871217f02df76bf4b08b31d4ea5a2557d8361cedf9d18c0114a67036e29e6d367ab46252e2fdc127211ef5b5e397832a57ea7a02ae8d3995c267b1789123766111b23a8c4b58d4551da144e2654e300d11999b845b1b3d716c2a7e5a75eba3811010e51aec8c3d5627832378a70b42828fef094b17574e27d3b9ee931195b27229494d5267a76fbcc379d807390dc15e51552e4afb43366e0a71999ea318960db2cd810da0232bfe1de66ef780132a949f0ddacbafe25230a8f11de29f52f61aeb7632efcc4e09ea9ad236f78e2deeca4061c337b3bd14ea77329af0f78aad1543003632a431f66dd33a418639abf0cc1560006ca20e8258cbf437d33bc348bd3ebc090a0199b0adb144e686b74e0bc0e8e08ea503c6b477c2b89b66e8058b78f1054793a45c4c69aa6e42e3270b8a30f924cbf855ad59d1243a74c77429ec872f633354f495b1b34c7cb341b919aeeb0eecfe596751331ba658f4cef0791708e4e6344dd8121bf9a1175dc963f32caa1dd5cd3533619625b00f4e9f468468c4342652991af3985518b3a5f666c9ac8ac39ec499cbb3ed190ccb3e4071ce74d95dfebd9eea088e3bf134b87ffd6a4b5c2c3ad5ec0e36350905f77e4b3aa080276f7c47cf6547336a6e5a0549f9221ab923aad3372c9781cadd2352a9502008955573e5f847441434378ebf6939fc9cf05f57f6fd37a97429b475fd5ccaf13a21daaf312625948f15b0225c402c084cc24fda5aa55311ca642b634961632e78c68045eb0ecf92589b3e7e1897cfb615e8f4397f6f2911cffc77f604950b12da2c71227318c8fbf898b3cc73d8e00bd8709546ca01bfe9e6d1a6dd7db795ecaa2cd3f351e6e59049af5536af532f81eaea4d06037ee095039339980b7599f6e6204967ae7a85effb224672539142b2935ece20d62aa660317c72f98683da76c1097201d8e6f29e13033ac7aab7c6818f18ccd652acd62a0e65e907cccec63d227f9d14c28be654679fc13245ff70459144f2586ccc27084a1f44fc3eb5dddc23731bde81ea3967234f987c75374ea9bc575b417dd39f3b2c252cc24054122893c4d173d00436644687b670d25aad67284bdd89c07099800d98dbe7bce47a7f75a101f78d4d1dd526412058b73318a763a6b298d5322cfcda8edb59a027df177fb966743a29d340e8b0a90dc3100ccced594ae44190fb2896b4cda15be2f7f89c401af57dfec29e094c2cb9598964d0ba69483eec7fae8dd6365ba0646b71b06ac1e386a0d6688cd81fe6502152aabeb467010da1a191144304a3e3b34603c9bdbfe16d118e1dc2f977fd7d8521b8c337befa9991f625691b5bc1cc46d22eed1a2bb444e3940876e3d4626635a4676593ca3923d0299ed6b1a74ab09e02773d3da1928b4c3f599663328b2ba38138d18ec76b8cd7688cc0e9b2d3fe3f2f23ca9380f80925a62906179ebca2887023e2df87306400cc42f5bd20e14b33efde50c0cad0716d17ad52f41de7e85d5b0b71b40012710e4fa8c7ba3ed8ba8805c9561bd74be6c6168ca8c1e643f9e3947ebf2da4f220a25984148322cbf2cd5dc3772dd5c863f6ed8f2b99e2345b9b1cba50de8bfc04c7d782154d183a3b9918164c361f7d8968cdff346d871e514ff3205151735bfb67e2722a626124cd04a8b795a85cc3f0a97c516780fd35af877f99c082824bc7d3f7818f9e4202b52cfccb7eaa743c11eb9a0ff8e9957da6150283f061e8469f3fc4754df56282dbb2bf2c9396502cac856f170b1491695d8a1a358a54455ca8437a268feb7924ec3aa40cc77b6ebcdc704a907c4135e724be5b3b3fb2e5f76c5bbbbbed1a4e0bdaefbe074d9b430e36cc743e010435c0754cf0be7849cca91c68106e33b003a0b4fcf43236ee6e47cb59b11317c36594a7134fd0d7d88cb2c92ef2ce8aeebae0561478fcd69ebb0199ff4c1fda3cc6e37fb6ff821c96f660e8d461d90eaa7e743deb52efb389f3c88a46bf3f74fcd4e24c1d6f0d16a98e8a0b66114d36ce82de78ba05ac49c3819042deda3788e836133df2d35e92b0daa838561c16a3d6b26a42bf32a85b11e54adb198e09abb8adda092523dddf3a7b6535f74fc3745690ad33bb5a87956ef20c1b6c33b8b8775e92d869143d584d169fdf01044d5b7261b18172a91e338ae766ecf271d4930568c86ab436a697e01131f81083ae4d65af2ae62ed27513464ddd81e8ad73a995c9ad53c3149577601e08c8250314f6fb144e123dfc561339aaab39320975652f99eaed93692da12f914dae232e9f9b165d21a06ebf3fcc2e053b33d5f3359d2f8a523ae964ee8e208fb3f5533a04902cf161789830c5dca437f68a7b4c18d9c4c333a5ccfffa21fd062c46e19281edc7975a8c14febcaf4c10665cf2107c4f72073aed05616883017c94a75c10f4bf048342943e9cbd4f8f45bffdad9e0e569027200ca65144e65fa020513ac1098a15afff3bf781c73406384c6341839108cbcda90e80c145e3b9bf8d705142d575bf9066c92675292200855c3ceadc7ae6a1919f3eab5b5993a9f968ab5fa74366dc1351d032e7f11aff68a426034b1133e75ec7de022b7c423b4cf25b84f3368ddbe926fa8a617f2b3bf23548916ee5f5442c13fea44e9690716e6672c32147203b28b13f1d0202471d037ebbb9faca93b401809475be471abe7ab97285bd6b4413375335e20700c0c524ef7b4655b31a054f5f319a1fd94f8c690c3e150b104f8d0f0333526f2ff3852944ed24c70b855d92040001a9c2f4b65b673624c0530967ca9a32e99e3694649f84aae73c816bb24e11cdd7177bde0eb582d2474c7ab8717e5d38a82326ac9d12350545974bd65052d9030fb480edd806a9e674b1ca4c116fc9fa967dbdc11d205d80988b6221574d9950e264cee74dcafbbe89ec613ec28a11483afcccd308584d9e5d143e313bb879b14ad52ed01aeba4a6c5edb94d9039d85823ab46c634f04e8bb7710488420a984585a81f92de21bf9e4d21e7939d7b05d9604ed0a2ac46a78aecb947250940901698be365eaf1effd6a887ce0ca057d2f0086fe8952e34998ee7f9b47c00b2406eca883bdf968367f1445ed60b61996301b477f0e1ae2e4e0fb5e5563ae93ac207246e66840eaf9139ef57d3d93ee08d1900e1ad19d13bd10708194efd5daece8ff83f7879895655bf5e653411aafd9c600e6e14d473b385fbb7e720ac479f0f7657be9b89ebf0d8b3a90daf2ba8a338d602796bb321d2c3093cbe048867760f06992c43160df1547fcd56ee1a5463c0cf874f200aa01b85603412c3aed0d8c61bd9f5737f3bd013c5293e06b45afbb88c489fd79f648d4ad2e3e21b4d6a5e008d776132d7b7e878f201c1ad2b7df6241578f28f1919a1a6eeadc9c75d71980c8e9457ff7d34201805fe7481df129ae2554b3ce74f1e1f15c09e9a7b73f46780ed99359a525b6228ebacb0d02e822469187a75d56e05c10a3de3948fb657a4f7ffb0b2787349ebda40fb43b733cc5b7f04c3486e1215a4668d4f232cf1d111167a49d4a62c0f626134bfc085c3006cc55367cf7bb4c88baf80d72c1e3fefa7404497f2009131c3ac093053ba3bc5152c40ab5d04a74df4c6f416f5b4b80f28c98811cdf969281b2f0e6b2a0c47d42cb37f575f0d8807f5fb77ca8c4b3ae60386daf1ae5e9de0102accef704bf47a6609513a442d930cf3a72455d25f3cfa931057b8a3cbe43a4054f420d5172f1a78e7b5a47cbe75a623bf8f3d02598a299e2315a8bbc1b68b64dfc3c7a1afe8a9854079ea85c552d6defea6acd75f88212cd4044860918d1b5329a49066590530e0a188e506dc73ccc1a386f03ceaa2e5b19ea4e4b88a4ca8c5a1608a302a714e145cf973fcb2bc70a1d1a1fc8bdc744e8482930b1f2660e0f4ae96ab522a95b3484fcbf5f5fd56dd4c1714e65e622b889fa5150fa3165aea029bf24abe1ac4a6ec741cd061d934e01fb89567f0e0b091bd3a1688a07836de35d463a3eb5c1c80b68009ece9fdf77d65a5575e0ca532bdbca30ed2628e2b48020ab25752bfca2ff232e938e052846b8a51ff4d902ea734560a808ad9bce1a9e5f0c3e9713090b41f36e923bbb104931fc715da7b3b157324e959145dba35f610b777416a9aeaa5e1a15425a2ec7094acad805091f47dc7f93ebd1883213317e373242d246947ac3b7df5340a6ab4425226071b86dd76d58666090103dac969331cbbdb097d340621da134f62e76c233daa7750c36ab21551cc047daa09dd3d6cc504614f8c9a0453648ef7cf34d9f1e754bf22b65ef052f9fc4000627fae577541ab36cb34aa8d8f7d69b1fbfbf71a2e44266eb050112bd2c58e4041ca556f6e5d90b55e404b9a0f41fb85ede306432ef8ef3059ff5296c66174bab36ee6b3394d77a1eedd8bb955088c82f9a38ac1fcdcd10cad500d5890ec1c2cadeb2443d60d2b9cebd0c38c4c4bdc38bcd7c81e26680dc68e21a28d3e962519ee812eb48ac81bae6ad9dd47b5f5813c27a6249a01747ecae746b4260c51024858ef438edf80e4c5cdd67f34e68b78a79d8d1fa7d3c299a55862246686f370455390fbce6997492ffc669832d9b8909720e7d76cc0d32a89796cc465030997df40997b6565eb07212b042f328a1fa5ad8bf2be448e739bcdaa162d8d68caf3a8015a01b61fa53b3436e331b9a5899b8ee17de83c38b3b26b7566a22041f9447989bde61c32f33ce28714636287cd4263a879c698502e04817b2c7faf2497daeb83778b628c44900d92a9745988050f58560c5b4e33cbbbd0f83831a46db39ade089203494fc9ee79d6e0d9e09df28e20cef6eb89085f0d40d36f6aba3fc923f6604d310577447b4d7f9ad1ce47a4366feb5b0a2797df525a3b1ecd7fde671119da83fcc05578ee968797b40acfbfc47f1f3d523ce70ccfccdc3304d9531f64f2ab03ae16deb7e5c47345a015d400198c1d3e9d8db4bc1de99e41ea7e66eb7271ec901198bd66852c9a182d7e2dcdcb5897818416b1319627f55f1c7ae09699499481e54947725084fbb6fd6b16f637a809b1f5859728479fbf5e18ad25d10c7193254b242e0d6d69ab759a16ad00f1c498814fbc0d85bf90bbe0cf4a1af0d9a4f56c5f930f388edcc8ea3a4ec18fd1fbfc47f25357c889dc83446c5a59981de1167edff9cde060c10696d5f2f2c8e61d7f6d7113d8bb1b89217dd937bbc5e9ebe72dc12abba2aa5fc4e10b7a20cf7eff04d89a7c66f9fe412c3c90112cee28c9428cf3ee92713fe3b5fe4e6e25ac89fb2d9759406e3b22d27a0f026cd23809474ff60f8245b992dc1c5ce8ece8434d6d7f6811c6e29e96af6354fca085032074f760a01692bcefc090be6626bc2a2637a1e470a80141776e8d225158943083226ccdc34f713c546657374fe20879b03daa67e035e5e25c484f901714dbf68a6ab91966c74fb27f8a4d7ed7f84ff63cea7c06a4efe67c8a9da1f2dea72a2ecc256b9ff48818a7084d5f70ddd87735e8aa33237f0ed2ebf26d9efa42b9fe512073415275950ff130b290b445016b7c026e9d7228fce52153df91d2684684b43d38f5502a627ce2c02296c9698b0691b82bca8425d7a885dfbe9a9c0f1cf09b779a0c1a785624b368e9fcfd439e58c5165aa722b5f389686ef6daf408612544bb85bfd6985095ae06b7e31496f92edd907aac12485554bf9c1c3859200cacfec327ec6dc31f40f1b71f43995d6cf5a6328a9716a839718625e4ab98b267f7eacd741b51d10963bec81bc621875ee4617e8f3934558cfa7b87a824ac7894fc00c4a395351a45c4b870863207f8477f4bc714539bd1729d1920e8f59a5304196803ae862b31813c88c6a0614fb43763ee87a580ba8cc14cf815c4d84c3901495453d632c56a5c11b67d8ec8ce1c4e650ccd533755de85c307c8847c6bbc25aee39d1e3b4098ed1fcad0d890c2ff42013e4f33d1ac0a7ad743fa11a7b50be165b64bcbf1e22f3ad7f270ea40657cdc17a13edfa90e99959bd1a379e565aff8af3ae1eabeff2ec202c27393f43f887afd3015f34a595e7c52ae156ecc8ebd0165e7a1ca94505ef464c8fe88253a3b8fd8a1fd91a84a7d09315a2cc8c88eb8e8bcde8a7e749c45b6211ae0e203aae51f50d97dde6da946cbf02862ff7ffdcc6d65b3eb5c02d907dff8055a9c5ee759448a5e1d82599b53843222e3b1c0b4aea3e84941802a3a95bc508927161c23c1ab7a5bb12caaba6cacb09b362203d7e6726310bc4ad5e11c8f104b26954285c9178109d10c9bbcd0ec41f7adb779f5fe178c0608dbab216c0b4b2722c090d3f9dd57a3b657f0ba35a5ab2e8b7ab1b7979f0850829dec80f5dab895f524a6227d6752367ac7937270674417bd9ac2a6236f154b05b84ff88d17037591b2bb53c7b2ebec24184109057a668722e710feb0bf7b65d99dfb158bd4dd04863cec6009cfa4ac948c422c0558b2c7805a9ca3e71ad829267f89fbd095f21856fb0cba8a65332189683d9a873021fabc8be1a922df303f74d519688bd39ace340c1634a32d008f7c750e6ab565e76073394afd56c3dc546eda7840c17b6a4fcdee1a4d3f75f5061c80b6a0e10d27afbac62d1f4b4db934140d5347ae6c8a6a5b05d3c68e9e9dd54bda56e85f7372cdbcb861107e59b17500b179f7d2fde20eab1bb2d9bb9e9147a6d83d7ad7961ebcd13a5acdfd969388364e37b2f67416f08bda90824f7f371d4c54038e9fa8657df498dafd570839192c2eb4b3ec904be0e553e5ac35ded047af2ab5df4a8f5931bdc735bac186fbfd65e16a7fc800c8a8e1798b3b2a6dd9c9b9bc131fe867a6cd86da1e888d3d7c2f0ebaacb652e95a6b89a71d32b671b5d4536fde59a5fd241b0a8e09f1082bba825d4f368bfb6497d6da16dd80ca44b07dd52c30b374563de382bf1a54e5a4781f91fcd33f3cfddeb684682a3574d44aa461e0ebf90826197767f1a8d561d1f5ec6861166955353cae70208e101c22dae380fc38f0005aa6fad5c84c8e862cf16ed9e016e09b010d1dc92751c841c575aa94f50f56608f691d1e90815be30602cdb0204c99124a7d856249a56fa96536cfe3c5d6088698202b39b6d5f36e023efe6b8d6ed1e36bd1f34eb65dce7f40c44113680dcaa6fb349e954cab2055972f535ed56c4268b68035e98137a610a835add6600a7f7474fe9d5689883fbd911cd89a6c7052cfef1fe9d424b22848823d288632c7fb0172d5120b47f86cd4909c49c409f26e27cf1bb147fb771f5fc8a94c0fe7bcaa2395f539eb83fafab0877f950527de057a8243136fc45689bf083250698cd0a3853630e3dee10415f73e0422fa85c9ceea2a23cfed25c8ad65e495f84cb24f0470df6ec2e92693b380d15e553aa635564e5a2eb53a260ae9bf900b8572eefc99bace057f1ebc4741ad308f179652e5fc779bba4822b3c7b25557fee6005a2c33c177d66ae4319c93679d8748c41341dd93eac9b6cb1b51a14c171de42a13f02542ff410b2fb821196330a36473b9cb483d38a5eb6894646b38c0b8fb2fb954e0f0c2ebdd41a6515f8b566cd134d7a6cfa6e946d128b4862a81d8722918f2ad932ecd4b03bef6ed51234eb38cb1432704155695001af9ea5f11fa3bdf8ae6f24ccb6411b902c6f1d59babf437f49a796c214b6d6f6b43ec7deb52a2d012c42a0cea7e55ce5cd811a2bbd50fba59b95654b7897ce5df5515f8bc237069f93ce9ac22449d7b1c12cd764c874df1e645c8708045ec415857b91b83419a09a604dbb1c496ac486cfe0c182452b62f5724fd8783a7dbdb0f561c33dc977e6016546245ae8528eaae4b56aa0919b97b34022e8f0b4caa8785c32bb5ada372819669430183da09413d4a8955aa9421cfafce91f089c5120b13f0c6835ef5a18b5805614f2e8edfe59871324f8acd5ecebc3a62eb0a16150ae497977a02b43cffeced88758550e1e98adc6aaea1a519b2293ef03fff37b1b654527ad07a18f619e66a509e8d02d2b731c748ab1e501b5d0995c899929671cdbf23770dbdf1d2d421c90071623cb23eb415e02b99d583d8ca3ee8698294c5a86aee4997281f485d4fdb930afac842d02bccd2c0dd8f50b0c6fc00236d032c758dfa7a161117a9234675c0690b24575d5997717358ae32eadfd7cd09deaf2dd06c7507366a65e6d8adf116a02c03f8f9e5426c0712b7b5901399770beed2275c19ed997fcf249cf547ac2d5ad6cc55d3414212922400b60c7752094c2e9de612b1d75256f98770a4e486dd905a1a8b01b02b2389863527c732d5f45eb5b60f61ed0b21520e54c229ae658e75043a2fdfb0372fab0dd62acd7b38a75b94b45c546046aa7d2664a722ffb293eb87b0b8d0c7c6876395b676706c582d40ada5a56602a6c338c4253b3569da98209fb2afa58cd8bf8b467e0b1ee153e853e08abbaf99327ac1fc183d0cebce1d1635abb0fd1395bcac18273be52b0c527ccad512881250aba58853ffb79583032ec4ba3e5bfdc65521c784ff6886aad1b5daf13de6184d2d9ffaffa4ce0a73280ca03066cee05986bc9eb6a035a719a02259ba370121d9879ce9dbb0e54d1b155fba162f6169e02cd5bab5abb4c487bc6116017e0195883cf8f0b7e33e5d7bb86112a4dfaf24125cd982ce38399de8f01fde09fcca0c529f2008fa6ac2e699342867cb0e57f3493bcb7b2082ded073e614740dc5294c133f32d91d5fa037feba09f5ad862111037749cb1eca32f7234aded6b89eeb420cde466c2e9233363779b9fe1ff71fdf6241051c1092e85f38016bc0ab5bb07160fa7ab34eaeffce5595e0a22e7814f5ace2c7ed9120085bb36de8dffa057be598e6eb4133a4e4be6e3a4b0797dcdb82cbd969bd12585b3addc26315afd94d73207230bea769e10d1ab5fa324dd4beb5cd8c5ddb56dd0dfbc069910b460f5bfcc7210e6f070800dff69fae08f6ded4a86589af39f48dbbabac756ce82f76944a43f86c97c4fa44732420b7b36f0ee36268559ef4d9466730b428a07150dfa384abcecb34e5ddbb5ec93122814499608752cf2bdbc3fa13fb2f88eded8057964ffb3cb719846cfbf78e04968f383d8babbf1e4ac7c718faac3701ff400d32c4739312054c4dcfbafb20686af8c371b5b3f2348627cb4293592d1d5c3b37e3bf41b85ed604023b5237b148d3148f6a383851dd51b60c54f65133466fdcb3aa55031209a2aef9de40ce743b2e4afbe9b3b4e65d4ffd9ab73df4b09bcf50280ee67b2cfac9c39c231258241bc55898e3852fe0a740edd70ef2f7d0d640cbb523a5daf8d37c7ee8383ca57eb49780aeeea31a10187c85fc27b315023f1bf36aac8888483ae6e0eff4d172c282feefb888406a6dc70840954499b578ae0d87cafeeeea56abefba560222b6367c38d8e327e640906bc4b9ffaf0885aaa66bff4fc1488b3de813f9d75e9d72a3ee3534941df21b38c734d8f1a5f171d374796fe6744f137ded06b6c0299f3dd66b32c6df48991ec8aae680f088b68e726668a16fcf92347b7b343f73c2efac20c6ef101099e0f4c4847cd0d96832cfcb0df56c3ee666e1fe2e577ae4361deed71ca419266033cb5882cea15bd999646496d9949d287d34b429aae01e0203aed3f8ec8f53758102d13fbe1f7a1830bb8829860b482ab203ab4a7792be1a1b49f17859917e270f9c2109a00e0e850ac2c762d15bef3dda61d8f603dc765172f6948e5d9ec1ff60d35faa5b7442655c3274d49216b7df964293711ee38cff59401f4ac07eea53edff45d0a64815fd0401269c5992b9ef7e0a19c5cd1a580531a77c37d7c3fea87da3b0f8fae0dcf459023707b1fe82bc2315093be688c918debb98ca204fb2e5697d24f328debe0f680d4847a5c892ddbc21e86484dfe163d558e4db0fc4f154179646f1ab7b36322499bb367a92dddd84269db4b0ea3473c3e1d6341a14597865795f271e4395b846e3382dc68c4db61042f5a4add86d74379b662c5c64bdaaf241e0fc70507e1dcb2d29e462d33d182c612072b271cac4e63c91536364a49262aad8ccca8568f04d853d6be68cff8704b73262146a9bcf63dada31f2cdc864101580362c48201cc3cfe82c96ef5847ad54a39d2098c63c621fc411cf2d99f6d65db0fd3ea0447d3e98e20206fbff0f4604d09728fd466fe2a559ddef45b8a0d854677bf0e4c9c8c829a45ad5a9219e4e0b7707833fa853dedda60a95517cf170f4469eb96775c27a10ee693c9be00af19e3f6f83698c7e51973c982534702fbabf157bb6f465c3580544735bb8cff64ca42e36aa7f2a9bb6c0b119de23d3ab503a3e6def5a8990a89e6c1a7e2578840dce31508fc6ca2954551dd4a4b116e53d154dc7759b2381bbdbf1c8c4e3d622d4479776495f4b8ef2c79eea942762793580761336d04cf566c8a322e6e3db2742e796f053379d6ed56fd49a121810e98d090fe4a1556f1ca501158afaeeeb3aab49c5eb34274761129f65897a9f2e299f9a11349344cc0b18da1eb583b65f8fba5ca0646681e2eb9e127a1ebe4a010671699b570bd4f624693a5951229104ef948f089f43419bd1af5d40f27ecd7d55e32b6f7cafcc56ccbe1ea4b8abe599944151c02efd7fb5b143cb69497bb2cff9b97373ba24d2a56fc2bfa5b5910a54d66390f18fd5d305f6f2f1a8a15df9d4b336de32b4ade876dcf00a4058ce6b5ea08fa7a64f28c474115fdf384e41259fc52aad59c7ab47aae62e0b22dac51d52bfc28051c4fd8a810edb5156247e97f764aa723acde53bf95edc473a93d09fc2faccc145562df3bc6d27f0c2378d32d6fdcbb34c6bb6967059dfed3afe5e75b2ffb082395850404c545bd043a71829eb441dcaa8f383e9edc361cb1acde9681b1b4866cb6f07b46a0a55e82079888d191ab8d68ed52397a54c3bc4960d20c06ac4b2ecfb8d5472e4c94b33a7879eaef63a214dde9d0b979f98416aab5d0565fef75f7eac770b3d9bdc5c71a97df38d4dc55a77a08771a037caf8d11e30f20bad61b5fd26de9abc050b2e67fce266c59c89d4577d9cbe559c575e91f520a8aa3f57a2a49707b0d2ab5aff6cf838d400972d24794365f4f25131c813fb59ec28f2a2a7928d0777c1ac1cc6edfb269fc9a31eaf8e642ae8f3b038121340075a0ff41d1eb77d8779c8394c2b30e5b6e8c15b54b04477c475216206941397db5e1dec1ac6b2401f5e36173d87649ca17f950fe34341b6fc0b77e800993517a5931b72a0e9e2913d0ad5209a347c8aabddd6405e62237f7d345c16c3548c9bf1e2f393739b0790a0e803c2b3d4bf1a11c4b6260bf63fd452f9bf92d28d6f42c32f154ef2dcdd415e56ca7e1e5f733e0349052ae373f8dafa49be59a678eaef546e6c19beb4950e7d78aa6aa11618ec3368336c66a2c95d06c2993bfd7c7fcaee60c95c368043411cfc02b074bd059c72681c3e3e789c4b4973fe5a84dff5bdca6a59f4c2094b8b2c835c0dd0a225cc58a836a6af3c76359b95b4afcd89cbf7082bffb2ee2d4a80b8bf1553c963937c06a46be0dd5360d1273e2485966a326db4d1b1da51193818bd7f7fe78279c8b3ee453fdadc60437a4f804dfc5d283654d760bba54c694530922ba043aaeec0f8b3d41eb793a77cae179a22874b20c4a89f4ba1bf91b98807e378847546d638d91410a84d6fd8278f2b0e846e65ebd4a99325bfc98068aac13654399ed65dbb67e84e79a7e4af72636ccd784d17e4e359d6531fd8509c91e808434975c094bdb82ab0a383c313d31412d29e93086636ff7bf2e9f40ad38be671c0ddc20e43686419b128d45898a3b15bce3a0443c231a6ee5fd69a5487878b5f5673e37f69050960ba044161977debcfd0bf38a921249e6220683b0ab4c18d5d75654ae4443fc8547628a4cb42a3990d00221abdcf71fa5a0b64bba940b503ee4c75fcccee7fc544026b8d4b5def342cd0c969b6a70d113ef5d6f28ca032ea7126d5138af5c9aad04cefbdbb820b5cac53873ae99d80fef9463b2ef42e45a1a104303e798553245933afab502a2151f88977747c9f8920b935c7afe011f36c95899b3ca4fd06657b30df029bccd47a74cd675270428c9aa68cb12abfadf3f45d656065af09cda19dada5215ad71de21fc3e5e5f4ff99d4c23a4747e2f32fc42ccf0b21189b2d918b49319a1e5979b6c46dd49010f3def8c7160023cd153fce0ccb4a6ec35b66f322a691b3bc8e08c8b846118a9655a0761e8b5dcf4d6719e52a3ea65edc738e07108fd6e88ebc670f2e7e6e5f6d35c880e11b42cf6779ea41ae13559602bdc0139a8be16788fd6c2513c50970251c2f8ff3f89c9b0eb842fe20f4ffd1c8bc8ee17f2d069217f289c78342d16edfa271dc220eb921b014e89c6851805b8300303ce4ae0d81d8783e59c996dae3822c25e85d433b418f872c804ec95a9766b4fa764ab1727d17dbe560eb0d0aa94440acf4f7dedf50ee7100729820f37af58fb3e5a22fb28623172b05d0636a707d3ec08afd3b5396092bee1eb1583e0dc0712c6267f55ece70329c99ecbb7f3dd06903f2984616d0e141cb93e0a105ee71447ac8c72c3d3c8bbd270b86aed2e5a07e93bd86703baed63d33c6142ca3cf3007c47be6d50bead8f3ca74818dea96da52a23f9a0fed5611e8ce103a1880f64a134ede2439caa82c215a8cc442f04f06388f0c52581adfbe6702ac230c81bc35f9eddc7fa6377628371831266a3d63b119d9827c665cd71abbdb3a042bfd0edc8e8460fc13040e70bcc5e7ee882dfb2392863fec0521be4957023f7674d1ef3c0975dc236da857ab7fea53e984a190676f4ea73c2d6d8903f9f7a314cca0f4593b51c690a525f358b860bf02bdc7759d62e05fa65c151f0ef03131a32b57c675541c178be0f9b2707f939a7b65e54ba5d32ad5e3521edf876f711ac7c194a4a2b796cab43f731dd6c975f5a709108a131360b525ca141902ad48724fffbbdea0c6fe63c62a28ec9a4ef206405500ff7764ca75172f8f906bd8e9b20dd5fb5b0dba93655b22c590110378a940876948f49a33caf383b8ffca3634353ea4d514e0e0f0dbce6f90aaaf1652da5b308b5a2242c231a9e1b790c9e972bb80a34c973ae108d02744fc92c098ad3cf91e05fc4a8db3670e4904660d2e68e860ba228586d421d7151860d1e7318a95c69a4f49ec8646f126b63815641a0fc66e154514e458b483fd5e7aa7739b564fd8519c32903a829577a7c824bd29f53fe7f4d08de8f178f014dfab867fbea4f959994efaf2d23ddf6a8b0992f4192ca4ec77e7cfac5240399040f694e6a434c4cee3abb879e6f69ec5c5614e6de99b294f66ddca2b6b6cffdda5a72d06a69007e28edfd8f86b8f642b3f12be7bfdeb66e53a3205f15201e9f35e455f507998bcc76aef9aca110209b3b0fb39a0bb51d774f01f19176b4e1eab09b86dae18a4002d9dc89235f178288b1df58d911f525d2a538334965121cc2cb1f34db39c5a97b8c11e2623d8f7a0ae2cc57a1718ebbca2d85297e27f4da56ebe562a9e7cf4651b6a711326a3f814a9549434b5b4a81b8340d818dbae145dbfcbc2e22cdc63f6b05f2ee9d061ed6c6b0bbae5236ee186a17f67a1075aa52d63ad02883ed1c8f7af48918a5c3f9952306c1b289d13b46fbdb75baf27fc7553404169e345cbaabaea9293af9e6996b67005ee8ff5266929c83db9d410dfbc909bd7b4ee8b86abb61fc6f96350702c4be8c0951f87b1886cbdf0f135dd98a5a8e4462b564235cb05da9f4d86a4d6cf07aa1781cfebdb4cd40b63ef0c6a902ee692fc92ff65c8e0e5e19a5e4b2ed140a744045b0d88d218628d98b4272623ca95119d258071829c383dc4b4ba176a4428f764a638e5c042f90f5b9f673046f888bc04d9a2df3d4603c0ff3b2fa885604ff5bfda26dcedcee26d678f42c6bc0e93ecbb63e47d116cf22c1e50d91a81d822bc9b66a08f42b14936f5ff42023e4f0f143032fa8e3ce1d3e5663c3cc565656d76dd8fe236c6c9bde55a6e84ea233c5aeb431a4abd84c0172c7733af8deac93f71df061cb8d817b4aed03e3acf7dd555ad08fb6ddd6fa054f198bedfb1bd6f6aa03125f312368f04d293ae29f99f09e463b29eb48003cbc537f3a54addd0b00633363d009b0c916c87ec482ca88a2d71441925a157f415c802365dc58fa14cee370c145002b04a0976d8c2af61c2c26a1c5af569646feb5fd7a312f7d3b7ce41527a9be233b322e1bc5b17348f7329bfcd67b579fde62eb0cc9a98db45d558e27dcb452cfe72ec5c8bba3cd26cfb1e65db9f0eee9f8dec852cff8342698e58f9e3cfd9978d5bd1c5491dd1b1473012d505b4161b92682dcda329044f50482d71bf7381feb672becd5161ab8f0c03688df77a0c075624dd19033b2bf991d4a877519ee93312f1ab093718533e2654c48e017ab8eceb146a208ff7978c9025a201e64aae7ae4f3436f9ff70023ac154cdce73929bae40bab3be18bb42810d58645e80dfa0cdb9144ddab3befb9e0149f02beb8b39144eea1e957dd07411d77f53d0778349695dc7892f0bd6f0c0005f98bd38a184a3534e54d1748691d43f3ef2a6a09d7b700994bb3fdc2733f5ea5828ab07c6eef88bcd5ab99ec4059125e220ef5a6048580b8c5c777c0ef06d61c5d1322c8fb3f0c9e49eecfee6065f70c10309dc34b09ebdc413cc09dcb2c87e45abf562e772ba9e0ff25d2486e0361deb59ccdaf0fbe52713de02d31de0fe5dbaa2c0b89425c59480402201342cc36f055a1dbc07116a1217768d5fbc81f1560f37bc6a410aae89b255a716426ab9f3eae518b4237f500bbf9ece16567639d807cd0267610a68711c4a7162b545f18e5d004a464153419bfc9697dfdeaf362ab11d63dfc27112ecb8889e9a1a1fed9fb31d59496001f1734ab3e497aac7ff8693438fd610163cd8c0a40cd42e36d904b4423290399f8887bdcaf66872fc63c0a1329b330ad455316ff34bf581be860512b124d1e9272083ab2660f96d520494c77dd96a564177ccb5b6e77933680404d9e08e276ff36b599b7ecbd3a42f5af6f8a0e657c876b7593b31c993ebe989a541530a33ec5617f715534e6d681440b3add780cc14888501a331173fe9a6847a3befa193a0704421b0a113e91991ddbd09b5c6a7a9ee844ded7425034bd7ad2a48799a20a55a3ad02ebbb95de4527b48036011740f0bac2b2e14a586c42301170ba8380047fb70237804f401d531bbecb112e420db16055a309e7ff76793c09af4df50203732c9c89094c0c052a46825901b29fe288f25560bc7a0910f925272d0a6db9ec3ce34903e416cceddf0b0aa26add6309f3ba6d9f718b1535d7c9c485162eb8d94a317bba15766e2e595f4d6eed0450093eb6e8193d43c38df1d6ffac4ebfec0d615f3954fd18a716d24cf1875900cfa3aa1ad812e1f16087214fe04c0a6c82393e28f2b9c10b2745716e56328aaf2166ffcb048ffd862c06290dcf309ac456b1cc3d12ce6545655c5c79f74679729ba446e4b1a8721824ce1e3b5c39d2197e91e1c46f29531df75726b1170f7daeeef094352fa9af62660524d955926a03d8fbf6d5842bc6cf78045570c1342d4b895da6bf3bd273432372363b2e25e0ddb3e402fc79e7c4fc055c29a31465dc380120d9393801793b1c560587b281c147851f88ba00b8312742c9cc4ee57dede590648c8e29969bf1b409c93a11b702a2a89d4304fe831938f1928304aa608cc7a364325d8b4856af93b83fa430d70797371164c204fe94fd1ff28a6fbac47bd772127578f2d3d3e4d1e11b67551e9390ed650e51a06873a4dc94d7cedda2ba13b1eba4657fa66ba1bc7d63fc18f9a83e1cc20d026fa96c437f8fff722914bdfc47c549e020fb191d25eb782eb062c911b001f2990cb5c75182fe38402fbed51724a21557a60967314106c99c815593c344dd8bcecc9d392aebda7c327c26366c11e7a96da2363cdd1b0b643b0c4804ce492faacf45cf408e42c38bd666879d0aa87d97771d6d59c1952519d31df00af1360938bcaa4067221dbbc8cd2d00678148b8c202180c78a5f5d0067d59c611afd08a5f2af6a7a5ed33239c4d663a29662809dc4bdd11acf10869f42b0e047bcf7cad21a1e4f798dd0c6c57a0bade82d36edeeec5256f3f35d48e33205d15c5dda675e71ebfb25a40334560a3f87200e46035209709ac16a3d3423a74b0b933a8343ced92f5db934b004bc048707b413b9eb6961bc348a990cbd6a091814c67c20a020d608992d197f3741414a2f9a37c6d6d2e614184bbf72819b1b96ff04003a1ff58e3479e399e9bc63da13da2c6d2186c0aa98a7252f5f15b3e7da696cf07a7e22be6d4797c420e05231d706423685aef4eedee8cce4e46391047941cc7abb86bd02a85a34947f17249ca821cddf1d8d24e550a26b4e76f37c4d1f0f92f93225ea6e3083f9ad412d5087cc98b9c21b4683fc0976b6c4a83aeacac133993a7b6f3b63be651ddf69141a51ee1ef01322106164213e034259091ddbb9ab3e392b046ffcec324701e977ba72d3ed3c16017d78aa02c7686cb61fd49b560cdca42aa63532d8393d49e9cdd623b0bf1fc6d0ccb5cd609b878b1cfae8fa6c327cc6ba0f5a05b2b56c62f4714b66d5746c41ec1acda9159a408f29dc2cf6e3b07e90407be8453a38ca76dce2bbafe94aa03bb1db765b6352bb6cced60be40406509c8ed4a9a803c17bc59f5b141ba67893e931e391ad9d5749e213e36e52581e875b5349da9420d8652d792eebf84c397a376d01a0bc7115c14f7fbdbee776a3d1b91d0b0da701ba9482eaa746ed05a9efd395d5585fcb3c6bbf8a292b366fc8824601f1963d1560b518b138e4d295db3f03628b0a02d9cc557f36defa976f1efb7ef4c23b6a263e2fd7db443eaac857dc4c9fa54fbc0b1a6ce59975f50ff346c454dc7301c13353ddd7a4804ab8b795ab5d4400dde4fa66262c129a31eaca96ae54cc33bbaca777be159b92bc28c7682673c553a2f298810bf6460a190fd3febb904d1b77e5ecc57e8d707edcb885183a069deda8ad124494ca19738e6c55c1d225180401dddd10e7212c4608becc4acdcca3a2f8e7d3ba4217acdeb45ac8fb2d55015c83e46006d811016ba303b0f48af4ffdcee5987fb91916b28f0aad9961aae64c38501053cd2c3956e41089e1b41ded7941f5406b4fc23d48592699c353db3931b7e5a2c3529fd9350bbd029ec54e1e626bffc9e1a153df15f0af9384762734fe017dd893e628a077cff661e6f4f85e71638f38a2ea6b8de465e09378eb00081690858568c58221382a14797a4ef3af298081c8899507fe113603e3a61055a60570f9eb33a59d56c64004b066252e16a0b07469a6ca118c70ae1ba518db294599107e44f0bd251a0cab4c7f82f1211b59729c3c1938f4b4b7634d4abf7d6ae20068f83d2a3f68ae86ee04f33eee734d35f6e318c945c09a8493671cab96c2bb042bbc765bfc6c35cf2f0c2fc55429bc6d461308e51ce782ea954db5915c54d349060203155ae637b35c73e8644b437da07f2fcb362df95893c05886a4866b72a60b1deef9c51022dd505ce752e4062aed6e9f53451a9129705d3a51b7e80ba286c5fbb28943bac40cb75c8bb7c5855f2127b646473a61a8f99656b0b6fd5fb360a2ddc1bad771d2dfa8c9440d55353ef55e2580e51056aa007c0b8c6eda98b739aac90065dd4d652a4f2f19cf7f83ec57aa818fcd6fe3aa0e7dd9a6a042c6073ab03f467c8ccf78df049e23777b6112cce072361427dd465605ed116bda8abc5172d1e01a3e296b89be6410cd16ae5cd44263ea676fafc033111bb5fead5536ed58cd105c37948352b846a1847642fd6f3080581378667e3de4fccea589f799b9c8e889060572679dac382c2c57252aa782a7ddcfc2b78ae440796c1adcff4b7938e4f506b2aca52d15381a6b2e129a27da6c0c68372b12a5c3b3f12c1d4a78e87c776fba62282be038dd6a90c5120df174ba2c2a1995e9c6430d96baf2898eb1fc7009091f20cef307df2d712763c2115db1b82a484d04ae5b9ae5f38d71c171bed64850d5f6c6e108de0897fb38ff720255dd5678f3ffba7a3740f3fa4288cd8204a31de05c30c6d771b5bea8508cb5913eff56481b96bb222c59a35c3a1e955c3607b998a98b58faa282a6d853381e9a0c344162ee2ceb3221b8f54e4402f978ab567fc0ef3b740ab1d02c37465392d483c71b10ae478362083969e9e077ce0991e30ccba20a31794395be862632a41d5eb72fee0011dc4c758be01be905e48331f737539aa28b6ce9db1564dbafaff494352ba524d91cb1d2b2c85f29f665a37850db44e0149e791b3e485354a706128d2a14d66e907cc7d0858ff769da52e8b89d7085fd54683dc87225f0807a2de6e8ae0aa2034d12ce63306a368a03007dc3037b2568ba2816d3bbe55b618d2714f092db774bc9352facb46b8ac90aaeb8cf9bc1644d82447fd2742842fccbd3386ad762117de46fe32b62eb4236482db063f15913314dc0d1c989420f782059918335beca831efbf0be643b4d7f5e92866b878219c39e486b90fcdc31eefda252d2954fbda51ed42ae734af6113aefa6ff1504d30db5eca7d1663e381d0d7edc3db978f48902f5a911d23f25a8ddf609874351a15c2599b09be68c226e2a8636e880db0f2dcbe7ff605d4adb1ea5c8160b193e1c1cebf32c48c48f696d66dc8f3ce7e0ecbb3de8ac793be8056eed6cea2c9bb4e74e5a371ed1155e98aa2a6365e7da476b8ebc4651e69ad44645fbe76f21f71aa8d957f7b55797422fd6bd8ebfa70ee345dec4a7f7cfb41a56488cc7506e56e95956aaf1e156ba0c391cf0e2512bdfff87aa0703bd1536d0621797bbcc24ade92e983f1ccba056558ffe2540b0e392d8800fbd7f3ad91f9ba39128a63918ce362e3adeb23ee7665f452f53bb0e2ae03402bec4488c9b3018bfdce7cf0fd80102d8006a505cc74d7a1298f591ac96abf686627237f358a758a3b9719aac434ee7ad2ae0b417d200320399ec5619f3dd557d2c501b6e620973f09a0ebfcc7237a02c9296ccac9a8c7f1c1089fdc7f1b6a629da411a273637f19b787c2ef9d00a54014d0fe83aa5915bcc41e865b6160d99f9859a9202a359a366d6631a8a79fd3e3343057961ba472f414802076d26c327cb2bbc2d7deba277b2a820effe4865d06fd48f558b10f79dfa21796e721bdb61a41487b26181eb9f71fb2f524f6d70f390e4cb8cab1f556df96bd15fb85d55c88462195a576a3b89fa242c656fdc5aa5d1efd639ab45b4c1218eb4e08155e50be18fcf8377d88df4f2d5823a2528d63510dd21ebf0b423041d8abf6ffa0916e74171b2eab1abfbf242d65f3b93bef626715aff7a07640eb1dbfa24708c8b2cbc35958e3e796473b219243e2da198844b3a0795cd1e159fbd14e887d29cc922d997d5a6bb2c59b0a255ee8debfbff29a238dc3a2533586f2dc9b025a0a04568ef702483cfba0583933ac749ba6e18f686ce97f8275738ff642f217a3bcf6899d0addb06fbfac15a608ea9c1064d1f4a7c174099637aa85400b82c6a19974513c0923f14379c62386023efcf888f878c3616bc2e045793b9d0ead7ca12e3fe303e80a039a2042bfdf5453ef5396c2151df0693c44802ef3f015d046743912d8bcdb97917bbb761b0f9106ffe241e9d08a9f71260913bba2ae48a188f0b41fcde5aba6208e7e1c90437cacb8aeca5435d22c57365d1f03fb60eb7d016df550b031d5414aa37d1e1b0136ed0e815d02f332a926e2cef349ad246e41ac48d5dea3077c67642becc15b9fae6d036b89a29ada144605d1d4bc3f2dcb7fc463f112c7012fab5dbded4426c96dc1663fc4e18d70c9607c3e555e203f353ddca3f5435a6f795d4293f656d1ffa85ef113ff8ca98cb4655ad23ed48b34167d7671f95ea4d24523a70abc0c6914aa8ed5c44a04e33a622298ab0ada4b795d420c3aec8fb86110272926b53105b085942f6f8cad0e7bd74407d0e95947911edbbaef11dbba87e94d4f0b2b199bcf218466f9415949c33ccee0a75d6e5c917f911b868fb98a62481a5b85d950c5418c83a58956cb0a7c58407e7d60ce02a2f71bee77070bcb46ad2603811fd72528a170120807dabb82d90fac021e66c383dd66503f46ee16381462a492bfb6397c01254ca8d6d4c6a671258bca3b1ea805469137e0fe52d3743778326d302aaf8a59d2075a93257d2cc07726cdb113658d3237bf5f975675e8a10f136d7da89171f7305a566a5dd94c0c08b9e732c222950f63ad4505be45b691c71a10b77de9a4b17a56970c2019b4cfcb1f5925e37e2a83c03a1fba1ea2b6aa1f1677f3d0be6b1d6c325ce39e6604114d1a462b03906f8beac7fe9f887cf178b3a3eade39ca6115c60ba954964d508e0bcc373b10761aedeea9f825c36227c373a852dc477ff78f09c1c417ff83a2b7e86798486248f2f160a1a55c6fa64aadc751beb59c87f0c5670cb899e5a27679280e387c0000577795e0a222a15701abbf6cdedc7c37e3a82035d57119c83dd7d0accdfc2453ba4ce2be1261c1a32642c4d48b3bf7febda9c9382ee6a6bdda5572216e47415520e2fa571858cbd2489d6adf3d94065d3ccf364319804c302836a3f217180515a346c45f5efb368d2aee58f693724e64741c00a9b3b05eb2717fb7b628e22960f1763a64915e224d42a06403cfab55734e47dd5d5a85cbc4f8d97fa4e6d8044bcbfb4090e2318cdd3b5b54ee576f605c04bf510d316c30e4713919daf987211887d878c3864eb19273d5ef2e36e74bdba70263919f0834a48457179dedfb66a28fc9757c3753df767e76476198680de299475380d01796374dfe9336b17a897ae0d2eca3b2504effa1c95ddd5134b7f613709aef3265a75fdf22ed141accca7e8c1eb6c03786d3fc58c09c8e57c72498a0519757face1ba2bccf3b8c61124bd2382bbc7d0c2e7f64d0c4c0aa44bbb060a04bb3b89d5a68d05edfcde5a1326cbf9f4a32b4fa59773c6d9c2373d5369668c72df2bf57591f60b2862c6e5acd093f0d70ac5dcedfa171461a91de6deedf3b9b6e28aea79cfccf98af79d8f1c68794e44ef2ead955ef9aa4a10fe593b40692f9b15132d1ba935964232e9d2d60f9ac1ac9a77d711f59b78778462a6f9aa1d7909fc13c5b63d27b608582f1bcdee2b5b9ad246c6e89e4c321ea6bee51a0c9846409290e90c3c87e481d0d94acc557ae5fc71548aef63c9f5839e5802af6122d4d62a96a00fb69edcc715ef2f29d778bbc3ac159911cb710486302eb12cc3d30758470e6fe9f362611b3a61ae64e8be7163508237d4fcff0bfb17f2cc0b200f5dec796b62154039031f5ad83c5064519c7ea7f065bdf7461c01db72e158c8ea1da68394ec3684db4b63aa9f42eb3e4febee53ba01884b4bc0182ab86910bba57913e0b558593cf7c234fb6bda60943bffaa323b725da93606c9d5739dcc6d8147ec1d531c9b248166b710801142005411386edeef8ee2fc7a1e5eaf83fd6c777f261a47836a2a68678ce0f0445957a1eb10d198c89dd706a7329debc2805b4d9902e9409381f07d9a5cb255f6949e86a126c82acd67ae4ca67030a2aaa928758cfca81927ebd40de4421886994a641b4886069505f129291381c29fbfa811fac7cb50f737aebe5e41ac5ac6e3e79924af9660571aa32d92c553d707df37aaae135dfbeb7e406f477dea43811c4589bfc5e36012bc089ad7861332640933ad362ee9013fe3881a027bd3023bfe49f6227448f77b4aed1c1fab38065497c93980070a200993314f69bd9b5d04145f5bb2c4e5a4b6f06cd73fbd4df717d74fef413d500133a5a0634b5c5882d44ed630823b016f5e95b538b4c03964b69e5bab7280e8517b9737f214a0b001420c903b1d6b6981f0ac86d1edfb4956a4c5e7f31115d1a355109edc628a63e876328321e043b18aeed6a832c620c71cb1010ba96b3db34b5cfec763f5a88ce8c45405a2d07328f0548e195c203671cb8db5161395cf397f4bdaf83944e150bafb1a84d671b2168b322d38dba16d380f6041c54fce1e56c3685294dd581a65b72a8dc2c79aea17ccbf1699767cf92de468d904aa27444a953e8f484dc5f083e4772bddfb134df6397ddd18ec1819cff5ba06d56da7e78c580f4f10876a8fa20c3890e1e86651e1171fcba7ce1cb1a3ab7499af32ba03dc3a3b7c2a7d659b30e2a31f8075dc433c2e2f8db22e1dfec421247a1a824652384f49f4ff597335927935e874e27e0083e66496c986fb025d040ce3137690e0c70e165422faa388aeb31092aec82c219635db0aaf6ac1b890bb42f9c5c8c69b06b72c68b31ee32d7568ee9376d6d9dfa051e3458151f5016d5097a5622cd781c1fa421dc7a691f44cab56d64c8c6e4cf1f2b203957d18f78d551a67cbe1e692e8c75452d414696cac6aef94fc726a7d24cf5e99786f1259360f25f4a041c201bf5a14b399611b6d677b98bf8fec627d09abc04bfc17bdbfd27572ea464c87dea124175009ce9d5c70d278342588371aca76dc98377c77780bdd3a18e7e4048f79bc75c43c98d4673e8d197752833d9db0f9498b67307e29de56328b43fbc99711a22ac0b3e83b6a2918007bfd9dc2be72cbc45b3fb0e4904ba335ae3948493db12e4c12328bf619287bd9dae238693ed23deacd7faed4e1e9c19e18eaabe0a8f7ac5559937891172d7ed81b7d3a2131e44ac0b033f369683f76b994abd2ede367ee83941238815e787b0a6b32564dc41b5de591bc5fb3684d4dc2d527a54a65198a1cb323d2acb89d3d04c5dac6a9a2f76d6648915e291a23a453b03f0827bb4f7bb834717dcfc6733554bd5c99c5656ab31e4bab0c8af14638afc610ed69f0536745b9f37bf5e7f3975b51fb82370373d2b16a08be8dc46bb069a91b727f5415ea3681dddd2b2473b8006a521d1b8e9c6dfb32e9c747654b7207b5d6066493843d428e8d3c0aa27ccfe32b1496fc293d4d136df750ff29374f963b340efad0c263d70ec59c071fc0799ddf4c4bdf9f571477a30f6a7fe092c5dbc2614ce40b6acd7d6581341e597ad8b7502c21c42e0085bbc22018f3ef0745f186c6a0409812811cb1e0f50e73c09b633d3e12863b98fd9e3b94dd88237574dfede873ac98d2ccd2677dbe8e124af8ac244a0c9bffb0748b97f4258a0012edff0fbd57bf64d74b4405caaa486fb056ddc944c747cb24caa7201e2d0ee235ad4f7e5e3e052091a0af90e86791262a14553e891a5700031e58a51c71f43aac4623ce2f648065d1d812e8e957be16e6c57c3c78fd3fd9beed55e82327fbd533124d2dc2a8571b839cc5c2571d2ea27a49faa9e825a2c4de4787330252c1512616b70e2229762de0ce2e3de8654d10aa24abd3dfc253d73a4b999f58e03238c042bb3a549e5c2678d2f9c078f7a918876071757ac18357f53c65df589e84c9c7ed875fba186523ed132e9b4109d798553445806b974c57656005153a7051cd276f4fd60270886222438713cf6ad05d9c69dd546a7c65a7351e4c6b94b3bb8ef3b23f670be4d26286e33feba31e06bd2c40abf76d3140a2276838ed51b4d3b6af6fead6eb570e437eaefd08d71ef23b1828f8bda79558a4622680bd678a0ceeeaa0daec1d4bdad8a2c10ddd8e4f976282181051b4f6d6633ceffd1f30c9e4ed90c857271ff342e327998f903101e32e226a40ac5a8381a544be494e46708bfbf20c60aae632c9a926afd0e38b14eeafbcaaf72c73561dba6529ec167abd933e6aeba6e4a3bf989e1e7f0b0e7b40edc840f0096f74602653b63bba4bc477af2c7857e963a1cc06cab6b675f423a075601ac809d8ca75d3bb9f0504e2ac86277938cfec318d9ced9519a8fdfc1a7a9c9eac71a1ca2052383d8e146b978af7abcaca577f9a4f121d28428b6baa0cf4f112d852f71b9ea0bb6e85e03e97464c6942761ff4a3f93f7d5ce1150f65c248c37aa5ae91a3644ce3448f051ca702e3632517f80946e29928c091fa5853afd9b0fb63e6e6ee17ba7f4f0ec9fa5c041a8f22743d5205d7e8c9ee5bcd4cac0ea2d3b99a13c236620024de838e8d93ddc6f61dc94e9f9596b614d67222fba3a1beecd10383dbed41df837cf53e868c571f3f257f40eed5519094564c71cd836cf8a9bcb9553302186b32e55b77896b8e83360b23becc966d1cd1e0a2b0e5708de2261f09777eba3e9ef28c185227e7de64eb0bc31b305475dba0e58ea2d10474a5067969fa148983f1e2d6b884c0bfb2b4eee78ec85b7d6f7433fa126cfee4ee640ee4b9c13589f5eed4c437e99312002d6419c0336d695cd11710e3cd2abbc088fb18fe6c81c3d0539e049ba519c5eb684a11393c7ba2a0d048f18c87963f450cc1557ea16c35a72a14e1212f24c2927159e7c0d622edf87dc0811006aa59e7bf01d8ba1c899c18d4dbe4a1c3aca7a6096d5a8de98b522e22af19c57cc1b24471e1b87de3e74a3a0998c2cbf53924f484a761fde355e06545e0d3177d1cb366870259e665fa3149eb48b0c0fee7b285bfdd89c91ef0fc1f91e419b820b3f478ec0d092dc5ce28dfb6d9ece7c65938c78e9a28d3fb5432cb4500079af5a9a0d789a3c1e7ba16b6919b6716b5453ca82bf750f94d17a10469961bdc02b66c40518cd926c9f66e9683b93c1738b1e81187b65fa0887aeafb1f4c59b3754db42ecc84b449f23c31c2e118dcd86df678be01e48037577c2f634d8c308f93aed62479251d84b893ae5c5ced05eda446bd16e533cab17e573c6373cf03ef77dce96dc7cf8edf8f316ca17d58f08b8a4b019db12589e635fba1b4ab0ff22746d1faf37f7b624a2f3174675ea5a19ffeba5d745d547727fb588419e9bcc5a87828abc264a75fc3c1f40dd13037c0aa069fc144dcdf603c5b8c99d8a0db5f99c2509f33d1d2d62287fcb7389999018207de3ac9734524644cf42b7071eb29ff3c48add530b458ac0c798745397e61619957a194da879c43f56465d35deca72203bf88d03471aeed1638f1452cd5d7db97d14059d95ee51acd45f4dd4d8c4ec8985cd3a2c4f6abe1b4fcc674afccf2641ff25aa36b69463b5fd634ecc223411ebcac3e872b38ee0d2c09f0c626d413487ccf9cdcf9c95543b838e7ba5fb4c42d6b14554bbe8bc9820a6a5e7a71a5c0f74c183cba151796a4eb897650ffe18952c07a84bb22dbc57a0ec82cb8867f7948771edb4e7fe05c4b603ecc25ce0f137a6b46010477fc3bee59c11ee5b69ae065106b60b65adb87e6d226fa301c563384f07b6222c9d71d0f1c405bcd7bfc680f76d7ff0de10e946233a757f191bd9b70746a0105a1e1172be3255f398fde957b3d9e2f49d64ea36b9bbdb04e20eb2680198d77d8a959ad4b9feebeb9fa073f0538ce6eaed57bb61c6156c383d8aa9ff453b48a0bdc5261941e6779dcf9a5557b9f8ee26a10a17a61537f25c32c5a91f2f0b67d9b5e6c2882d765440716ad522593045aa8d19f96e25e1b0146a667228ee5620ea79f9d8034305e25eb1c2a3e7bea18c950abbe6d6a8ca1d5db333b23a06085b7cd52c9ee1c27ed1cb1ec410dd0527c21376eb8e3b04920f58805276b6ce184a62d7513954d9fc2e392ec55e2160649ea7b2a993afd57fc75066181173f35a06f95460938a2d33351bb8aa756d94767566a2438ee06919810ea16bdaf1f38d2a91610b043557a9331978d078ed7bf1ed34b1b2a0f7428371518db36bd7a3c56b9dda654cc664c5118e8e810162832e298b4a0826b398b3604a2c593909aa2068acde9691c653a63881ff0000a42eeb369f60ea5378d57446f8a7d7abe703cf25e0509e49d29aceed0f332285239037ee15e71fdf631738959ac55c1a3f7f68fcaa58294c6ba29e68767571f6ffd4b48583582df570b1b71cd275f948b44193e216e0767996469f2cc776ec6ee6b723851631011da6aa69ae9d4a624ca340fa59c1184ca95c589c72e6cb4a4ef90b43eac073b0d0d73cc2ed1afa3ff5a1c8937303f3f8d3a91d8faa8e6ad638a236fe9a142243e2f85646f6d6df0f2519f937a672a86ca7b1cc5860fa31d40956b0eb7ed1c990fd201b6ec1857694aeb247877104315afaf4124d0d4f5f7c7a00891bdad4f32cd9696157762ae2d5a3abf82007a4cf6ccf3f908ca00b19837f03e035c3b2b363e88333480d1669b23375a92974f6848cda7b5c2fc88ce6309f746de9cec31d46a06b5001f1a4f6fe7870ca21055f9732baff7c3f4530340bc288f8a94adacac6a1f8a9e0874f9637ddfb1d0cde1214ce56176e83d4bfd10c40eddfbea02358e65a18e6d3ce74fbbff07a3be4003049381adea3187693726e2c2394a1bff3e8eff065e21a7041fcb3da7b0f653c594b39f127ffdd1d4a2fff21d01dac9e599fc585792bdaff381348c29f581fbd4d6f1c49225bae160f050d125e93173a65253d2ab9837d4832ddb9d3752be03a50d1547b8a036ba22153ddd731a34aa0f8298c0fae61ead00a9ed0c20a7067fcf6d03159d339d6a0bb5db592361078ead6dac4c9e0718206f1baedec88606e2b2b90a3c957b03d4783cd72087a2f8d3a656f62b50710f6b4e73dad7ce70dfe32b3760fabc411f5326b2db4921c6970183ba1e5d1e2d1e6b51054163151da1522a1b0346b3879a060436d9158e5bc8fc8302c81a378fa590260d25baa9dffa14c63ab200733f94ed24463e4d6613bbf751352d6ed8707fb8f93ac2c5ef206c2a4029b3365551565ee904621f9958967488857c159ea262ea4af7d949562515f864ff6343b1b4657e1f433bf44e86204c5f006365854baf286ca036c16309213ef5af977f22e78348c40a930d92313f30b542a2cd456d995bfa5a0595a20505f5c9f22103cb38c00ca270c6c4620fd90d469169c85c7ce34456eda6175346930caa9b41547e2d7de15f425047cdd16aa3de51e8bf7bc970f4d00db070ef48ab88be836facaaea20cdc43a0d052a86737cd061c28931b67aba036f1fd0866b993f882f4ec57a7a8abffb38c26732a8f6d394eecf7414926c5a5200f66cac3cc3e28c27c4f9f389b5c5f97dfa0991e3e1bd5ddf01179fdec1382754ba22eeeefdd35a0233aa68f9ea962cff0787cc0bb57b9c28c6cbf4b89db043e5eb59cad2253c6887e1014c9cc40da6ffb6ed3f55f8106deab3901f7014f407a2733d4d0b9a4ca32e9250fcfb0febc17a142449c188cd69c385342d408c3fc7a28c15850dab3b8c003725943cbc88bcf65bb355ee79fba05a6b781838ab06fc207279db60243b40130559f17123866cd2f41cbee6207dee36916e00d2687e0820fef4f2f814c62c3166d2a026d131ab6cd048b93336e28017b6c5b08ad4f253dac966bcaf9a860a120796ad1399ab7d16db87070966ff971d8b0b1b2a81e2194f34eecb1e3059ca4fe4e06bdc79e743125d86e21df7457ee02913c2ad056ae25174d4d4b0a2cfe5123df6637db70e8f36c82a0caf2e3ab157d3dd83094bb9e1cf5aa2f800d962e7d4649ee6e2d98eaab9ee0adeec99d6643544627389653bb3a89d7ccb3e1565f51e2004da2eb5e9e6d7b1f2509f2cc224c9287c5592e1bee4c7797163d4d506087b501a7a7362c752ca8f7c9200e042714ca253ca5e686ff568395a6976db972ad44147b8aa0ae31e42cc61d4454ac5a71909ac8b4fcd591471983dfdf30f596ba56227ef0b4d6357ef534a2280bc40a34fed048cae33444b0c6c8e198dab84ee4759bdc096ea1a583517398f313ed17833052decdc2af27d1bcc6352d83820dd370e9932dbfb2287475fe3e895dcb67f1c8811a68f3f4ef4152a54d15955fd1dedcf4d5e60bc05408faf9cf9d6eb3b3d36aeac51985e789a682b5401151039ef28eb9a824aaca0abe5a18c229e1a80e67419a94a3bb0102286a61626d4b2dd41222eb33716a2a51cc77130ed1e2acbc49798f59488b87e4ddccac96dbea5f9f4778a96e920b68740315b57a43b35c35a1c3348b74208981ef8d458605e9e6f3d931451fbac2e7782d5b6f319a2ae06b09d4ed2a1e59b5bef73924149ed92dd76636145f77b763273a57851d3d3128b612e5b361c047fc60217ebcb6629d66ec49325614f086363ee177c3d7e8457deda435c2632eb301f884acbd962fec7f7f4513291485c275916c10c82004f85da21782526d99955fd58c3c639503d26b881b8d8ddee76edc230bdadb2b9270ad7d309469ea0d9eb8b98646559c932fb66000977b26d582858265715a3cb5e5312982b3b31b5caf9a21160919d9d6366b256deb06981b6c76ed2ad6aa57e3266359d72b71cad860315ced6711c6c7f04dffdc8a938e528cf916f6edc70da51589d26ecf72dda27ac8d50e660f2370b75ecb6d361aada8b6c88337fd589af4262a83ce7326e1227d1e40dbb0723f38bbb1dd31f77c8a7eb407d6ca335ae019e5c90ddd71b3d4491b87825c13da375c8095d83d97ebe315c20e8d7b1e55022e6df75bc22527ceacbbdd9b900264095c5e09d2222658077a1005040534299947f1ab14c971b147fbf747e0f2137f9c350084419276fb67ea444bb9084c64cbae36f90f1c3af127761ec83c257f4a293ae609705e9fe98e7cf5b5280d232bc75e170822c4e950d7fdb39f6a66a686975ae39364e77db6d95e3198c2d6d7b160880067d7bbea72f405ec813c758815bcd89fc586492d2ab921f89dc9536e44d7bf74a8fc4730ae793d33966f9c4c0b966515f47150940562b1be7621e350df02fe88510b05af9a6502a94aaae5bd4eedd6167cb245d8d62136ed4f58f5c9576ca36518d642e1ad38c89ef692ddc8c9f4c8c5686730e4ddc9e5601f75e68914123ac9720e5942e7d9701a4d28e6ff29d2b21a6a0200e800e2eceabd54762356dbc887747d98d48cb437589fc5cf19312d2f5f1ba069d7d095facdd19f74910ffc2902fe095e9cf7203745ef7c546f95287cb599b2f4e89d8da64389a30cae4ecbfbb63ae69523706ac005d2b01c81726680906af8d0169c25dcf924979cbb34ce71b06f7eaef51a04b76f2218276f49faf437b2f994a017b5b28f52182bdb7ef981111a039425f5bedf8c8395c981916aae45ba85f189b9d79e1957e85c969e6ba88e5da8cec8e0129d1cb38c03a0d823612bc8eabb19dceab4a10934445a6221c2f3c2f44675c1cce110ac9f85da73ffa7ab43e26d5aef30c9a29df081f52d674d9b46b984cca8b33b1199fda5e2bfbf855e2d6b5f9ced4c968f3d17f91cc308b5fab68c76ec12f7b7f896ad738df1a31430e50c8cf1df07b74a75c9c2e89981291463e4f0fa32780b54477f3e56767599df403caab172922cad6ca82954c9aff10319241da14f40d9e7328b34dae4b0b97ff2dcb8f899b45e05f2e831c07fcb0a74743f028d2fb62929fc6c295d7dac26f83e19ec23469dff9154ee9a710ba5652a7dc629ef956425c461a136443adea986040a1057284401070f76560e736b0d7a957725fcce63ee1611b2a79970a3203911e90cfa868fd610429e28259e7d0aceb8b0626e4cb803b24819908b002ca073c9c7353822b08ec7fe5083a40d08e2220a5a4a015238f2df4a077cea156bac6c1e04707f2865f53f61deb6602471298ab22325f7b1ca3617a073e8af782f27b1d4f50e033b1ac7fa7acf4091ffd5c2aa0f319d9599101e8a292492726dc55ea11a8e743b821134720d3c5954df19fe3c328bffa46dcc1d99039436f225c46def6ee32462d20b6293142dde281f4a088eacf490f0b6979c5b38e41491c1e8ef23d7e3fff7df20583f21d66371be58c901b1f862cc1eba5c1b424058d5dd20ea1966a7c13d84b9c4c983af7ff9786f8e8b804f178d7b33c7d75d6098e9b626a680121dbfbc11de597a46bb5b6a6f5da53629f2e80aed4a24c3ad13c819d8502c5bdd0b12beb84a1010f87e3ed55fe15b9f94772323093567c42bfc3c5a5c77f88448a20cd3fbfb7d3a467cfb2e6ed2ab78e694ea3718a392f66be6f6bfbe1081241d0eda4d3425911d68322fcd7c693b062bdbd4ac614de4272f67f0053be8293d82d6a6c526c36cd258f2c0ee142d3fa3550c666a88cae559c5a80d08be0f462063f28894a73cd8e5e10f6432df41393d8fa1e660f74539444092314c66efdef725d5a45b4fc3afd87539b91cac2188d5d45c6ffe5de778d175b21c759494103cb2ebb97b3f66079eda0040950cfb3402e6ff40ba3cfdc7a0d298fccf8ba2ed40c743569ef6083f20a4de7f697a3b786b8382a98b813cc583fc85fdc7a28607a5a2576e2c35b019bb7e3aafc81006f950fd61c97134a76501459ec36f03d2e9e4f637fbd7f1d606c04942a6c5d498e20212e484eb33ecdfd4eb076cfefbda11c9318e8e105ebd30f3019a1ada8de288671c67ce7f0152386b319f994edf072ef21231818ffae38e0d7c2ef8632ecb7b77921940369e7e2d69392a1c5d7565ba5392457ecfbb24303befb42a1eccf096c1d3b2ac1c77ae3e24bd36f4ccfb6a62b41626b28f3e1c2c9c4fa152b128dbd1e74707e8c4612c44268e0bd163b60dea31fc89d1520cd52fc6789daf24cae7521dcd9189c3a81c9bb0e857a98b0f86c2b96aa782e0efe6654128cb0163a3708dae764cd43128ed3532968abad24868d9917c496fc3597c8e0ac85a42bd4cef01779b72402b7afcfad4dffa0d6bbbf2a2ceb4146ccbd4ef77120941db68cc1e8d6a34065d53334abbf1504d9eaba8b3dadec573ae8a8af3acbd4d1575faee5d110d8b32e04e2f42b39649be5a8d9ae8f700a8e6ffd9d7741964e46289f12fd4abf837e6c645edf4f708613c912f5439ddc7ffad3a51f1ad9bd311f7a62d321b955b713e5565fc4e6b3b987cbb5352b0dd9bd40c21d39717f3cbebf5bc71c86e4375a99da25f7821d25b5c7246dfdb12cb37979acd01dd2c438103c0d0e58da5621e7d871de8950d6f4759d5ae5da2fa632c785f90c2f7326c1de0f239970e74bc3ef29b1c3a3fa515111c9f387cf252225d0eb509c22877d03d490edff57fbc3953064c2392c052017f85aa9a8d741b1d814d25b9efaeb4b86f6188f45409edbbf08c21fab084d9db8d0cdf32067d926aa5ccc103fdcb946eba905a6f6d9caeab385eb41b5ae18147e9d091ba03ed2832a75cadeae3d87a50163f51b3da5d66c067d5a640d9f341f1767d06fec0a2e167bceed1475c6a0e96ef5ea8049d9d4bb24a9f4306798d75a7cafa39cd207afefceacafc6b67853539a6c7beeb9a5f143fc1d896c40e30f731aff1603729dd1c2c8f16db66c8e3707b1060ea0819747a27447d1caa6a1aacb0a51dc42586e42369d8aa90168548cccbf518b7cd45201b925b255e1ce864d5155f6fe4950408a6674b3be35969e4d46592b71a30af56738e25151a2ee42db8e942ff1006155f989c3ecc336584ca47de177067b3cb7ffa48d29acdb440d66ee5e9cfd8225071819a5d79c047a8746af62a50071271d29ddf29bdbc28e14df51aa3600267ee9681a9288ce823ee573f7b63794a6a5e3c1eac033ad1033070c250f30ff32a4fe9d60672e26c7a2f8908aace2bd20fb1da1248ced4eac49a7080ef0f4eb09373c3be49e3a4e62d8c71ca8f6ca0620a6e0292840af57a161057b660629fe4ec82d2d685774dee90e792c01db2b325dafed8c20dcf9485d8888c74050b6f923c45b65fe5fefdace6675cf6380860a850ad7cd978467f61f77a7756fc5cb15e4aaa3103a09a26d23af80e76df4b081d2d2bbd3f092cdfd10963286bc65b569de743ebff64437c275bc9b1bf994b92acb10c64ec8f521d53aa4616d77a448c8900c7bddc89463f3d0acc167ad34e51e096480d2b661f0fb56026eb40a104d253e290980591c2d1e83739ef8f628bc06e99bb8f56ab0c755cba8c605bfbc0d9ef2c1cf0f3e52a9e8f290bf02a78b00df55da6f5479b27c9c5e0072c1e7e4c3bcc1a8dbec4fec64d780181063f735d73678d2c057c09915d2397a8fb7f7bb5f6dd2329145e6d314f9c019f9c9790a76342dcd65831cb00cb30098282c385b8c6a984da3786ccdcacb33baaed98409682c625100801213eaf953e3095a9e5484335ddae578edf8a33751db06a27ffa670c9e3a9dfb3fea7bb71574f561a950cd409ef58c972add2e8446dfe2e67e64a65e512572a5666af13ecefff721790de72b37cadda92daa1d1cad8a88445d9649911023109cce95afbdf29666f09f64d3e657029326206b5082c2c0479fe0ecf81eda3335c68ccc2d500e52d03bae51cdcadba68bfb57c2225e0a52f8110fdd6d948b7bd3a482c95730f9f01868d36c1ab65cdad3b8e1cd1f05ca0862e5019b97db28314fc741195b1fa4e136ccd31e7c840325e3a82f0fc6e12f82ef30db22f1518f6e0cf0e3f1667054f99d21537ecddae7f85c92997b43271298ef67f26df8dc0a0ade6012983a44b134b1c38c763c6f2d951a22d445b05f51fd0f9e11de6652b816a2a087fd94141fbe69d24c994019c4193e9dbd42add6d14634cfdf754c69e75ec86f95329bd0306ac5aadfcf7f4cb2b4280642dac2301a67bd00a96ae6d6efb6cc2ac061b699992e2d03377bdfef043f7e31ed6414c9d8e900f21c76e6a452605e6eab766eb779e51d693b64758e1c1719f7b9a9cbad9f0db5ea0177ea5fcbf37363747590bec25c684dd4eacc87f72134b83bd46f97c42dc134f7fc13cc82767bb6d8655d03c639336b0773827546c611d053219402344d7c8176e8badc5d65c5a7a9251f0a3aa0b9348c6e7adc16c870bd726c54abf4b51b19b0323cf3467c47caa05558e758a09ab9331ee1bc505d279c9214e7fef6498fe0ad2489de59aad495b06ff4811a86a25d91533a86417347c30d68c64616f3954f568a9d2a4240c6e060b0199768b8e7bce4dd0c33b8bc4a624dea968bd70884c04096c53b1e73975ef8aa07f962cdb45259f94accceb3c6edd7fa7f7d4c41b0dd24da86784f771b1f3b83785bc9e3a98e6a881cf813c7918c7b2d8e10cb44feb4d4feac576e153b43ed4b207a9a7986e2d3a4ffb886aff3c36aa64123e3dc22061b8b46d0cb16457e59014d9366967291278e862f2c973d5da45c695868dd78fc594f951f1ae8b54a998f12da6851a1ad981ea6fbd551fde54ea4ff0c4b535984024a3d3f011956e672af4dbe64fac1fb6522865bdd471868c6ea2c4b7aa48fbb3d50e0c72b8b229f26c5be87baa1a53b77829d17f987bf1affc36cafb81bfd0b6a88ae74288f6135b207666d230e4c3a8d8a8d09e467586f8ffd813622b0c8ba898dc0fbc41d99decf62ba625289044031f1221290037d1997a26a6589be70b7060bda6876ab882560575b24a7e274738ae0b030a46c0f27b69145e5f78cbc858da5ad0947351c1ce67e01ffdcdb6c9ecd2e9ec9a2cb2a1a32d6b27c3e278ffbf7bd20d02654b2429700f2b87f9cf52f5c6370dc9cbd2ba694d458319db6ffa83f0bb67082aac5a276f3727df6d05fe2494349d785c8d61e441935e3621796567a69e68310e61a08371a13c9489749841385203101f6eb0236f9738962221b2da2c76e7611cb9f677172b7724f436cdae83b7c554faa9f923d86a9976b4358cdda935a283d7eaecc303c82496ebee61a20cbf4c04bd9497979977d816e3495eea4840a8d7338bf8723dfc836eaf4283f3387875d20f284deab8fe32db1433e61d75ee943bcf185ee54560c25f395921d7d024f4b7708436205f92324c1d90d90ce40c9aeb2572a9dd92244b4865615c1bc5bb86ba036a4972299b632ca13e9af9f25c5a8be85cb6949288655d830b01b4d366f798a0c165cad3d55b1e5ae0fa5b9c11947fa7ff48165e62239b100d15aa7d05ef044811f68023cf10955d5e13ed57549be2be673668c49b9fd3fa9f73c051aa9754160a20fea26e7e08886225a98bc3a49dcd031d3e67b28cf766ff795fe71c0fd6dcfd842071679da892db9079d0ecdf700929ad3b3837137269edc3990555a92ec661928b21c8a908277ed87831d761f4708f8107c45100b2812ff85b5a040370cd50623f6d6fb97c7940b602b979dfdb33d387b05e39443af30ea519d60ce4cc5a072c1c3d91a22390dd3f0213423807a9f5f82773bdc0d347d82c893803f2170c6944336a3532d761551b30c890d029d1d8e1d1edbe67ba5f5cc2409bb432768a7dae076ab7b27c6569c3329a39bc12b4c43b6ef8b2a9df75717546cf9d5eef51ec3b20ff45c26fff22dcd2d406b9dfdde794dc0322349c676f4fe5327203c67a843d8df0657901784b97b5fc32f9a4e0cf487c6a2d006b60b37f593d9876c1e7b7c343bd6de145cbf2284f20efbd5306f1482bcc04b187c32098255eab97d3b71c6f703a0abba9afeb4bff33e1c1e94d267525a36c428ace99d922f6f862c47cedd0230eba940aa64dd6894ea1733366298446773f075af988909e200454cd83885bfa0152314bc3f25d5d4f3b00ab971a7c7083ebf711895a8116bb03984e70efe2a13b783e9e28fbec5974b02d3e76fdba1897f150b0240165669a6110088447ad5e83295b01cd4bc609a9750505c33c8f3d7c6781ab7b717578243d2580335c13f2e2356ea24f073a7ee5f24e331d216046307769c637230acb95e96782101cb18411be4c29081c8a42c705dace005d6690ccdee8bd8494445d126c05e0a718267653bdb01f6fb9de16ab7c99f41884f4a9116dbda971c7ccd4410009dcaa066634af7d7ff145d04a65f29e8db61a8f4f7e268cb12a51bf9dee9e946eed9f41997c9a1e603f9b9ae0a2cba37edc345817f442b21ac00606e28cd24a05c161478da78d13a27de510d60ec9378711a0213fc0abeea7dee02ae0f36afa21a5e63ab5e33ca47319f372b981cdfb6e48020e966f9b6180a2383af70700ae21c92560ba7e916d689e5cc4b53e5b04d56027a6dfe872c2b136914dab9e5d24bcfa72a49ca0dfdd4f967a4ce7f81c5a2a5708567ce9d1d8ee4b5afbc1349d4f26cb5412631a3fb85b1d9e16c07e957a7c8939eea13e06049e38cae26e9b30d60446ac5e5c2a6096966470707cbd3ed50fdb9f2124bd96b4379c7d22906ebf942ea4005eef57af62aa9cea6ea70e054fcac0bb09cd398df1f49fabe1fa6561163fa4e48bfbc81ddbf6024d67af01f8c16d80f0a2450489d2cd2ec7c9d7d32f20f972b685c9b26d16f80ad9768a133e77a22ced4b8ea69106c8be56850fe26028794d6e8c8bc874fafcddd7fa6a06d5b2d127c44807eb174f9585a547c7601fda3747cb076ec960c22daba31684cb6c26d0374d42096b91018232b245ed371a92dcddf0013890ac7fe281ff32de30b77e587425c50d28a187b3876837d5cd56e5df4473a77b461e9449b006783bc5dad4559affc067f1cddfb66cc4dbe4f42918fe92e3cb569dd9385ee061570ca45339fe8dfe098c985d195f54f67250325ba7793b2864c32d4bf72e6d3d04741b7133bd1583d7e9350adbf30f0240e76f5ec02d7d510c7862743174aab1f45c5ecb39ee172d465300ede0af699a0ff06a40c570b12481588de99a7618eb649db4803967e5cfd6f57828748f202dad15725acec6a44c24760aa6b845be65d12bdbc513d35ac0ece2ed91fa6e1f2c69634422256463f87da092b4693e24fc806386591cdce232502895d8667909a29a512373c87f23b5b5851f8c5ae1a85ff75838b79c26a356ae78c26ec4e6750918e2697dea75377b1a6303ec90f929cd823edd79501b5e7a1564f9c7af0a752fc1cc3a2272ba31399e4516f4e3123c76afd8df3ae881d3ce7b20de54dab238a3f5bb17e17a9ba4a359da1a307e406a24d202a85e8aeba94936e246048bd5f9d51b9973a5d1d327b303cfbc4f613338118243b5ab4ded2ac384c4eff61b9075971ae991b27aed8d057bc2ca4edfa0e0ca1a71c73dbf2a5ca80442938177759b0ce03845a42b74734a42c58de320f909433966c76260303f823b3d698fa22c4797df995efbcff791fe006a6023a06debd142c66133251e422211994ef5315f1f678b2ee0f404df80fcfe65e76fae479c0dddd18545f6212b7b5161174ccdf7f394ddc6447b9e09ced4abc18de9ee8e87d2744b3aab30c2080d2c83cd76b5b035bbd38c6ed922439872189926d6d8ff3dbfb76b7a8c23f8f051b615de0f39f260f7eec00e774c85154d7b6cd6a4375220b318e60c0f941a99c86832779640017621b286984e890aaf49b000a67aaacf9b9450fd86eb3d9810119d5d985bc37dd8cf29c110fd7d309d7db3cf607d263af3c0d8a7ed024982280f157f97dc4f31306f61ff4c447f2a2d312709a1647202ce0c71c4a684d8e6512d746a1c6f872d254fe978739818841ae2d2222b33a9ce072a9d5eacb881fbfca9c4f7d4e0a03a1106581aced98873a6851ef9fa5cbc507a9c2303344ecb17c350efab63f3e49500f7c6a142ac41fc56f69a7fa408ee6cbb248f243c23b27fe51f46f14a6b30009c1651cb01f66ae1874c7801ea8c56b009adaf8fb1d529feea21fddfd6be751cd6449a8d3fef5d6837dc0cf2a9c56017e15117f01e13924f6632ac9647503a1e76b2456606d529ebb8b5534d865d4c24f2149e641888475c2f7ccf22be8418c8d9d27db677c1103b37d26988e7b3ae457526df23d5841543993e47f9adf73dba884b6d2f0b640ad3308812123d99ec8c1476b930a9e8bc336fced8fed480ea10732cc84e9f5441da577f32639db5c3b4e569d01e51aa7019c2d6a920fcc0f552f57c41eb6c8493f67f1e559f2710c3772e2f09e7415f5b15d194c77c027048b0fbd214d12fe014ef835928c5c8d7ce36ed1512cc6e7819c99629a11af5b46090de3a7c6e168f891e4dd8fd6e46409def5fcdd74e37873a71c5228d333567ce70d22f3a904a5aedb566ab4c23b1003b8303250e336fc1c3cf3b0c420bef35ba1305c6152e25b1f0cec6252c35a0c2884cc52aad93b227ade63c325c5863595bfec17054475f6e734eb7fede34d99bb706611c6e0778256582f4bbdc3cc59f8047380046cfd1fa0d97089243f0447ed00325a752d5923e4a9412eda5ceae5d0ab6bb8bbaa996aa890bf8ef600354642fb3965e1b391762335d87ac00306e086f2f9bfe87b79c3966617471e1f834e20378b127d0b7d2c6e667aa651938ad063976e6e606f3001d55c3a9b094fa7daed0cfb9933d84cac9a25356f87fab35928538bdf6929cbef6bfc3ff18ea112ca7edc8deca70f37123966ec3b3a804d45b856e01620f7788d93d1ff3bc79f819d207c923b43d018bec67202b476bcc9a00fe0887e36114dd321e4f75c37c7850da9ca34c7dbbe4e257ae247e2a84820846cbef1abef031a821e4ebbb89515dd2958100c682c5b45cba7895b7401316d2805850fb7e2a2503b8c7dfa989faf3c5315d12c4dc7b1cfc76c4c5965c1dee5380273c9ba00158e62630693c309d1b1ebd2b9d1184be1fe2a809ecc9df0a82ebd64f97cb6d69d5dd1a3feda51204e624ecbc4c4916b7ef6df1ad9cd3e32582bb5df856a3aedce512a1469a005c1ec88919335b73be50cff3a48f14353b1f909c60e00fc1b9d6bb3cc44cdac2e07c5ad5bb878741acb907bcac7e53a7208d873cf5d9d4bf7d58304ab18c955f00d5a964c0045c63d1e5ec3bd9bf066d996556ae9e4865f9f7698fd69bf344bc6082174e7fcac4ac510af2ba0b8b4307678565ec84a8abef569074bbcaa5d4669a02cad1454df6083025ced5928e11d7e32c910f36058cf7b75cb7512d7856b51f78ad37c7d3a3734774b091516ac5754d7fb13c1d8202ff08dc67339a7784390428043d1ef985728cfa84f1cc322bcece05b38a99d391881827db9060601332cdfd86736b2f31c9e8fe483f08ef8040132c3f63e5c3013647d6c76a2527d5e31e06163487373c61c08c6f7b2c1e415b4bc2f41fcdb06d7c9f8572431e71ab04eef5f806b0aab6a053f255a45330bdf2527c30e6890aa35b5155ea189b1a4aa2d79fafa39873efa8c044c8c7740988a117726503f4d7cf32b16d55ba79afc92e657e52eaba518b375ada95105a82b0fb75a1054ca632810ce2744dca8cf5099d4d3283785f59eb2368cd3542bee8cbfe8268fa3e9ac8f1fb44194c003960e4b637fbecbb5b72e3b22a7d7b542b7ad0889e0badef3a59a865a08c277b8b9c2e171d4155a422d8c03a270d5b21f8eebfdfba349ff8ea3d664db3029f36d4088d71300d3c57669aa0d159e5bd56cfec2194fc6d93f87fdc65039234f7f55f361512158d0c87331c1600e530671e7e924e4835a6455c4435e9cabae0a635456dc0be4894dd4f219621b23d5ce82d65ee8826c3b5b376a65818544a4713f65727ae64dc17c2bbea9276e09e9ca530cb87e90f0ed1f529daec2f2319ae5c714093363bfbb1a950897212acc569eabd7bd518ce3217a7a258aaff3ed4dd3a0e6114cd464b20d149b2e722e693fd0d4d92c4d9d16b06dee757dfb8c054a3e921b0c0b265e5c5c25e6a7b3c3e3cd6a7d90c3664486e02b5410aee0c1f934f2553eae178507e28e7393e09e1900839d429c67e8f9141d462b8b3cc9b4e943837b08a7853385d72a500903f5610a0ad88e8c3e5cc600e28e32d6a82b211983712cac5b53bede7f2138f5423cc41f07cf8055928f212020d2fd4a2af5911a1287f665d80e2b5df9938498d8bd3088135091079f8d302aa7905028604b499286d599b82f47243e57dd9a3c5a3243b092dd774bd79b0e619c343a860c6ac13716adb6424de246b7d5addc6dd6bb5768ef949e109c36980c727cee9704ff695730afb08f9429f8f9b0c3ceb7537203438f5b82d7164902a45460898b98c5827d639d6d948d72ae4a9167f56602d5a4f43c09f8af8dd3d0ceca3dd957e804f8cb1672f290186b4f3221ed2159acab98030be62df1a20bffd15275a638ac0f9b92e0bfa7edeee9f15136ea3da6c5e4d805d95238d7a190f68be9dd25363f656482d1ef7648de369ba4375d49a868b81cdb5b0a507042221a940379d30255fd67d359c615979eb1aba65447ad605ca17550dbf42f6df8cfbc671075a4aca4c35cef107abbaa1c0890e4b122ea5b3e66c6f0435efcef71da27b8287cb3a4da5ade64ce347be34d06da323b9edece67e0ff109c94e1d7c8dd0e3ed123fd9326174a11a3b8cc4e0c04126bc368c64d687a6472df5d8e7cf08855a38688523ba0f887ae31b989bc4e5f5fff02cb24371c827ddf77a0de578af5a4b692e7b1d2650cf5f03135483a7c972e2e2626ec2305d5e3b72dab8723816b405fa6b21e9535a87f6cdbb7d04aaaceb93fd4056cab635c1a9cedd48813dc8b5da6a0d4699157702b0d329c4ecf00001e28c56367b7894993ff00d31e573be1010cf62bc809884b647b47cf401e4ecb2e66ed65265259179a42a395fc051ec9c71679f250074729b842455363e7acb23096e15389bf69902f923f6bff527b5c38bd25d4914dcc9d957ee5958a7b5aa2a64f00e1bfd92eafba1b719d3d8e671bad87016fe26d920c9b2bbb02c13e1cdb57cf5dec95fc019b9ef153e508b7cee8c6a5aaca1e454a63eae6d89f56a5a2afd71ce492c71ab8dd0db2144dbba6eecf7dbaae32118429c2bdd9a94e13fb4ec84119834547c2a0122573bcfc8b015a01392f7e294cf23d98be4908698c2c1f1ef7841291e6f01062de239c5f2e5ea32ce987bb7614bbe45a4b2de99d76fb04da22fd5d661c3d77eb76958d29c8cb13f36a4e3d0f879ca5e91effd091e04abc533e2cd8eb22d4323c4a138e468c2db579500ac821c021bb625812b986988a155b2297bc6af3304fed858f1af5b5c73805a7bb185b91dc072183ce00a038abaabb408de99e50b54f0957d5029f17ef9b1d48eed754fc75dcd831ca4aa5acfa1a93c08f0453d69ed2c9bd0160f41742458bd5a5553e9fb1593b39f27c4f41b61e7691efbacfd134cbbbf7cf85f33721fd592337a03a6131fa64319a82966d5af2efcc883d45b7279f7970f9bdcc442f4fcc2d2d9ccd0725c7d8e1da5ae609baefea5054a679b629e104c8c9e8e5b001397a571c3db891516a06b5bd6accf24d4092f121134bf087d8abe92fc3f2b5880e2465956bffeb7392d3e7f228204f468b6661e31acc971e7bd02d5adfea9040f0d02b165ee329d665653f9100ef3b34f9fe65971668d2e4254235593a014722dbeeb95fc3f583663e190c1d1387e500013a5074c9b0d4824ce3825163a03bf3c8c0cc5d46fb72c82a773727f68d41b8c94578189aa6e2f3000d0a3cda80d8b1a856b62519c2890ea155e55b10bdc92395aa5541295768b5392a06ec10a804583a9e8a676cd1b2cadae363acc11b092c6cf29e4f3839d05b67d938589411fee366ce77ee66731450f865634c2722c11a8114736d63cae78c1931958a476fd795638c96321b9624179c8c7961aa48aaaae74c8db8cb0f622d8f7d1b6d7945e4e44e937fa2972bafc0532d4c92c270e964ffd5418007008be7fa080e356c9ac836e4f403f31259dccc594e3d371f9c0d371e7b1b66633099e02db5439b5097de2cdaf3c4e20cca1736655aaafb12240a50722d532ac53933acac67f27628ba3cc90438f09ac42fa8717eea7c99a2a98a3eccfc723ea4d26c300d61a78884a58845db52c301ec86b0e316cf53e039e310479c5580f0f4527a159525e1db0856b83d3a8f6a92681d74b58f263b7ac8fcddefa109f11288071093bd527ff6e3f8ad4772fe614d7f5520f9d35ebf4e4129286ce6c4c0246e776ffe4d0d082cac092a0045406dd6192d0f64ffe6772c6c126481fcecf01a28af06b9c0555c7a812f96128933e695526587020acaaab2d38e11e72dc4798781b1f29530dc9cfd5843b701d5ced26d366cf7967afd5e8b0990133fc7045d00d6f9b26c0d42016ae2b67d52694527eb16b5261620e0ca70909ff326f195ef76f01b7065d174640755cac9feb14caf98e301c0887e26ff86730e4d955998eeed96f6cd748ed7ef1bc340321de29d6299c15ff6909d9707519bdbb3453686d3409fbdfc8a13b24f20410e0ce5812fa0f495f6d6b20b46a99c6e00c79972f2d13770b7003823ea827eb15f8b3de86641a12b5113096c993a44ace677ea54e6f9c27a955ff6d06ed16d7a915a6f92b6afa5fa5f77bb6813b5dd341022d1458e65cac03d5ffacf5eaea09f8fcb18420d0dfcc1d44e1bbdb584a87f563734f92c8f10becfd93b643a7396170606fcd74e6e228f27dbc72e768416a2c23957c7712ea7a59fc3e9a7d7a01e845e52edbac72a7465c6641e74c9d61992bb1e48d36999d35e6f8a90802a79886ee373457416a82f078611a9ac45ad640bb363a4232ede3554f890170853f89bfa6306e051f7dac65c56e5ce59a07fbdea980b944810cd532f7b0606f8e5d936cec075f7928704b66a7b1d1f1332aba8146fcb8e16ee5fdb364716bbff9a74fdc039b26b7af475c24e889dcda82d741ace7c3dbcdf8a8b204c0ea7a9075292c8672c0e0bcfe41c866323c75659171677c66bbb04c50ed683f5a0cfd480577bdc786acc984d0a12ecb962a04fdffb554789fbc689c5fa043fc23d5e98083269ec3cb65daecd7482d5a089d1a7f7d1c5826f4d375ec3eca3a2932247011189556879749cf1437223291e0194cbd5085f231ca8c254dbb1f893540193c12c6fd06137fa0ca2f095d1f9c5a4eaa82d2377c6a0a4e88f6db6449652d05f9a7dedfcdbae042057bd9764cb81787a558f130fb58a1c637fd529f6d1579eaf0998ab5249f574d3f072916aea19ab8533dafc10484006ace0b0d197ad3cc8debbe44faaca649e5e246ecb42e7acc1760fba07dc4b99cfc2100a932ae6f6e16af735d8127795c0d0bdf0b1b82d2794225da6f7982e16f30935bf905859bcf3ec477771c9078fc89e00de4a8fd5ad1f7b3ea59d942e77551044e83d8b739011560bf0b92979ad7d5fe14c6713f4ae860c84cb0af584d300249c3035e2c40394b9503e4e3f5516126d37a7626aeb635e9ef64592b06d125082143e8ca78ef51182f1ca2e54e6c518027a2accf1bf717a761234f1684585d2810a4d2b6e72e49a8d7783923a3e622dc4b2b9758159e4b544b291ea40a12e513a5891acf250fc21c6c616f17873f935a8fce55e9a8ca77d694d06890b5444e6401674a5903d1811da0ff61b29abb2889fbe37c11ad58a3575cd8648d5dd52da8b446a085f350f2f85296fe2ffb65a6b6839894c2d2f1bbeeacbe5a02c1ea9c7f3ce990913363a35438b58b3ea9539b571ae59b1a0c200ed8319e281a966db7c8bbe33fbac37fc46db6a91d751dd6d37a5eb87ffe1149d23de8bcc021605a20dcba4809ff9b18aee91be8221a85d6e44dd367a78412ea9d9011d7a73622fc7cd9020dfbb3c61759368faad9396188a4b1d3696b2fd281ed6fe89778454930f403e6ca59e44a4ee47a598dd50c82ffaddeb38d97f7c956a222da9f5f5867c5b52e87be1a85101010186f827eae98fae019c363ec260cae7f9f46ee9f359adf7039f2d5677728d4c5b857108f23d960df781f4b9f02fa16ac2509830c4eb70edb9c1778205b22748df2d77299b0668691b68da7d945142737654b9292fb966b2d07fd3556315a901476fedd7f808448a117c715356c70608e3765b3ac0f19a3a608b5f1d2ce67b2aecf76d6f89ac477005fef1044cc9c0406e8ca09edb1bc4e05d0ef268d1e1a02d1b7434c112bafd35fd224600c82fd44580c4c857b8ee55b10f736e93634a8c496f342e7a8159c10b64e5ccf8529ec981eed24fd8e54288c105f26dcaf2e02693cc51cbff2dfb8fdc06cfb2a1b6924015b7ea417f684384a521d34e290ea6b97a5ec808af5e574e67cb5e2312f4c47a7f0e768a693905128a777d97ea384cb95d837d32b0fe1cdb7aee6d935966d7f97289e745dda46355ee4f02ef166ac55557da3a9636dbe36475b47906e18f28f492d0a9e915794198663654ddc8cc681a9640bbe5b95c51256510ca397f252d84d90c21bf925911fa9813706eb7cdf6f7bfe6a35afdd0eff919dcc5b4e55f816bac5532f3f78df2d651e8cc43cd16d2a48e2ad5e8ff14964df120619c8e4a3f4e0a498309a135a48972097a991d8e46ddb4a104ba651d40ab1c9b192e63aaba276eaa27b79d212bf7ef0f7351c1517e003930fe262d01fab0c9be86c6362021684b63303cf", + "0x3b5944461642e26b9ea483970adaca91078dc8826c991ad82f55a4db6fc67958e37e5095016886dde8b5e898744a1d31950b3508ec98272558882c04a12d799872c0cd152cde8d36ba9bbf177cfe74de246c6c52246cb34859d5bb381e7d774bad777a4e4578252e30db080c039b75a5ac4b24670c6fa97dd0441d882224511bdd45ff3f2f152b46867627373d655062e602dbfb1208cf40bc8a462b796339b44f00b7768051c8019fed1dee31793022d2dae1fa97024787028f942c066c2332d4acd72f020ac15081ce3aa13a5087273351c9166db935efe985e0c93ecdc06d428e0e9735ae1f84d7d596e98997f3ef116d61705f11d09f9e98ef3daa336f68f140e1f1cc62294c6e9f06cfa056bcd63623c0e7aa435f2db11dffeb6977afe73ee765262cf4c392b8e661ebd8651a94b2caff8c7c78031d96616fbeabfaff090b66246bf098b7804c57420adc34cae658a1a7c97c313f9326ffcee7375834403db132166784769f63ed9be62ce19f2a3e60f0474184954f1bc8c81be661a49f3d28de71144954d45de6d0b19b9c177c41e05651d924c556973db6c3256fccf2780274352e0b57e53a412322d2631c4e7ece2e5a44406a949e98d8a877fb3847dfcbfac01e830c5322cfa5e0cb047f04da7027b4f726114c97627a0cf194d7f868f1ee8203d00c96ded30e515675d73a7c7af4ed5ac70369cf9d7b2cbd1a07648b5d54ff311a153a5c360ed89779cadc4df08c3a4af85b9bf57d0ac1974b0179c524afc7ad05e4e32e4109f7869aed197f1db256989324b89fb08a1653a477641842b553b3f4410a0bf35dce6d6cc38c0398b0c787609301c435ed04558e7d628963cb12311adf0d4ddf8fd96e258aa111558dfa52cea5d341c8fa2b17de199aa1c69e3e495cf166729e0003fb83d666a4cd10bfa47eaab054d6528aa7a11991ed246eefd306bcd29cce157f5c053577fb3262d61ea081d0240a21bb263ffe607eb0d3b2d84d6bc611a4ee382d6c4b981ab324d1d4189e243662cbe44ae320576a20226e18a0edefbb090bfddc96340147cd4845d080113af9d91aa9dc3f651349cda6a585c9b438a85186f82fa610f78db603788eec2c823ca2a0353b9a158ab8dd625ac6e588918b75c795bd7303943cce9ef47e878051b2e959e9d829c286da820d90b522d7c939e7c83970581b1a6722112d86fe43547535d4e2b8c63d6fd2447135e15226d82ef159e70943da286404952d7dba714e80495430f5e7110f4a5f76990d509b4406a7fb579c1e5b8950adaba0b1ea1ebd34a1c1493df20325ef2d6ccfaf2db7d904663bac0f894d0a89f240dd625fda55d47758f251d68545f2a86365723bb95a8ee5ac6fa0d94112320ae17c45341c700961649e88ff2b6688f1ac97b4d74ec2aed7e54e5c77ff23b25f3204014b101c5e7185ff4992820f6beec9bc09127b7793191d88a97fdf8d3578257cb5954509c4f6416894fadbc358f867fdb61de0f90e744fd1bdbc65e229e78c7670310c6710c1e64d7acaf2a28f96328c3694d4c116ec0b2924ec91a5c3520fddb8508c9778faf74da1e878b3564b9179b987ee7344a349c93e55a3cf7888a51504f6dfe51a90b4c2c10eee847670a2efa065ee125748e93dbeaf486384a1167c427eb96e762a6e202998570dbc23051b03a9338eb217c4722c5a765a663724ec52fb6012eeb5b70b3aa0b3bf7a4344452b5d25e6d96b6a6764e05c9a62a8581c885e12964d7bac56eb7041d9037bf4ad18703823f8ddf31815d23974fe6ba9d52e7306123dc8d1d94441f9cc325fd77ffbd47d875cf6821c43e9fc7585775fa800a9b068cf27556be343cd85e49a95d7bd76e2b5f76c5e57c680fbf287b2f79aaeaefbcaf82aa90d7a058ef1792be23177fa8a05e0f9c13bc95a2cba577bed735ddc8e3c0ec1c2cc4e1b8ce757ad18bff851f5dad1b5c8f34bb7a5e48c3ba1ab266e66a24f2079a7ba21510767b8a80a431ecaaba70a13eea1ba5784800ccdc7968e48255a3eca50aa0a0a9d964ce01c0de28745e6330a52f2233d40d46b39de2d31e198b3d8058b21bc7cf2554ee7bd4304720a334fe3fbba537c98eaffa340dfbc8e27440d215db3fea2b41a13fec882a26d1bd8fcc3c248a232a26a6c0ae0968629bad782b4680bbc443fddfd508f9d33b6d04390aaf53f06e487bd36cbc9ad1b50729d216735668d2bb19c2bf3211bfa937686d0fb2d190bc90095ba4e3d765c0215aa5bc75c179ac9a4d72fd2fab7467efed948d8d09f17753e632e2a3db66695727605d51f01c66d4a14e1b4e4de8a533814299bda72048f85e0b7ee2a24504ab05dbebd1520305f6a5c359732343b913236b624da860296c3859016f1edb011d720e98d5100017a86bc2ef54e0f82b593e14ad253a1d1ecf8123ac27a33fe45326234d892448927ecc6d7d66bfbc1341adae7451ee146a53b0bc337bd89b466d82cb395d321b0cb080d50afa434e8acf38e545fad3323c66c361b566379521e2f6a85c0cbe0b101bcace860332f8f404788cf08aadc3905771e786e3ffe221d5b6c106bd15f2e42b4c050f87111f14322fc4eb9a7f4e62f1393c935040ad8925366c755d29187cc1be9d1f04236aaa5f14051ce42e6d5bb9b283ec06901f550c0f0834502f98fedfccd9c1322ac4bbdd54d3d1f75f2173a6eb4d7b8cf3c09e0e0866e9c3f3389fdcd96254490b5bd696942536c78ac8aa6b6d10f47a288ba117a0877f71d6c72af866f90cbc44972a908e12c8b207a8ecd45608c5443a49fd92e3c5dd2fce5a68b790a2ef58e9167163e11ce7231190d424103e424fec6ea76b84749748e73ccafed1d080e1b6dfaefc15a4589d718d09d10a272719717e4382938f4a6b902122e1ee07d19deef889c606cdcd4125b2706e9e73d7b60323468c47e60face0ebea5d590f0cc43dee4cc3198d8f29799df2ebdc2e9c44fa9fe1efd6c2297a0280def55f07fa4da3496abc455cbf563df885525e5bc668680cc19ddbc38e1297760f49cc3d622a2a1edc148bd728d020c0def0748b52ed5b046cb6b09756d1a34bc126153078ecf05e77c460d2a1a5053960169a6acfe48a5c03cad53740bc62d969b50ed77bbd5f9db7b2d28ea8d53bcc564cbff8c1a82c19285777f27e6b143f4513963dfbcbc470613da15da3ca6a23962fc1595589ed744e3acd5ebfc34ecdafcbd885180de6ed2ab367d6fffc1366470f7efac65cab088bc5f80337768b10b6929b85bb5ed1f02ed482e1f4878fbb101cd58ca8f228a04190511be94f2b11374bf4d3189c4c29ed44d9a9d0ec74800a21c6065c86793ed5721fd603c0d1caafaa52be80bd9f2bb2d0358afb23ac963dcbfdafcd03172722fca1a606b87ba5ec42035c5505dfd090ce0a289380efe3ea3b8ddaac3b3bff53ef0265607676298c664d5989b01653837c9d6c28045bba8345344c969dc8618bea140add43e83e358b8782b2d076128b0c1f6d25d0fa622b5b02ea61298c994125f6da793429e9034ef10ba80d25cefb9322724a9d7bd9ffa9c7e48dc3dfbe7562914f785a1c9a2599290820c7475a910aa35b3b993cdda41a75b44a0be85cd1b2a83e7deb52e0e332d7360d7aefe1b38580e40defdfcfcc7f2b19ff6ff4489eeb26815e0258a46944a367975dcfe270c2c430ebda63f948219afc600ea09026eda58b7a429ae1d6aa5daf83daeaf0cfd238a35bbfde4d96fc84890ee1218acf82b4b76ddc602f238f263decb33007aa1503e82cdb30a493972b2526f9faa433db61ed6fef9fd2cc26f5bd81bbf1373880fdde5542624852292e90781e36b573844102ea472ae116b1e4f31d936c00075388977e8d17b907e7e2d824f8bfca268b3453129bf36db3e1751ccab2711b46d5288042f27a95225b77fb01598723944294607bc814b2ba6fc7531996dc4f84969c5302a7e1e6fa3f128f33249d57f38617ff4698fb7c82de854aaca9ecc37a7c74c27954e9e6b1ee23380e61da2f7be6bc092e8a7d7adf6898b6e4a79d1c96facd1da3846c02627e5eed762784ad950febd991dcb1d67a9673de08975abb95d0e2ad65750719ef43b6d492b0fb17e43e38e37a70f8fc1064a8dd8c247ea5623a3d09c93236f06c1810787ed45af9dd72f2ff9e64345c96ff12504868a519823ab639bed75cf2e435ed74a49bb925205a601435191ee17ff1ab34f0805574ee47523a8c588783a7e3e3c0b38d59aface0e475903d04c730db966640100a525a42e7713f858a6a5610a59bf06da7cde2469aaf8e136b3bb3b0375342de49a79be436a487d61679cf36296b31330e0aca380b67ec29a8e2a5cab9897c2edcaf6c6a629fd2c8921a1fff11d6ec2b2e3c4b7de5ba2607ddbe0d4158df770187a0d873686f386860a8383b95ea357a79650ef0f6cbc22c3aac555ed940cb787263447df7849a3beafa4541e8b3aafc07d2f85e623a0ee04a1b4fbcaf4a9a497fcf90d619959ac666e92b79e1d62fecc10b16eba9b0391197bfc3af5749a59725fe9be36a72b8479fbe8e3c24db4131d3d1f76a6557879a0842d2b69e28cd37e643a43cc037577e5df8baeda9b6bc770e4182c69b4f3cc0d1f380e7b9010dd3d5855260d35292030f42bd4884ba78d385abcb9df81e710f640db2c5cd2a12f3238255058669ad9b0ea1d9ef1e3bf5c48e7a1dd0767eaf01df36262bd81c61a41373ac710e429686cc680db9fafab59ac48a69d1578f0e020d3b6f1967b3a42913cbca456a188b68e5eb468d83d73fc2b2d857770a6139e5793b87dd7202c454d612da4eeb587ca79de1fbf21e1b59e2cbc431a5b4beccf0579f23e5dd78860d875fcf801d87853634548473a323ea6100c6bf29fa2794cbcde95d02587595ef37be7532be91e7484e93667958ba6bde4ab1213dc4b9ac04bafc92e121e2f6408292e4239692eaaf1ef2f87bc8b0dcd2819bb45e9cb14bf99ef48c0f50e9f72546a945029005ef54ad4b8869e96daa4c64bf84a7709307828335185e8cbcfa7eddc349c22f706a096e7ee5bed51928cd428ec951bd3db9b2724e1c5fd4e1597b55323bba1bd554bc3cc2dd72629bb27960f910cfe576928730147d991959d471f54df269b630a2180fa05c5cacdd1624a50d496d0aad327fb1affe05a202dac509b9692141fc94c543e83e88db04d5ab9ae8086ee44989dad56e2904976eba58f9537d798cdfa1e2136c3870e88b56d21e3f82158821f2722aea45e109e3fe41ae7535ff5693d7b84d7db84acd2c3f0161cc2dbbd23b510f5afa3b2d8a6bc3387e5d23ce3966474e3e8113dac4b9b2c2679de00f6cc10e1f5fc04f446201e0e7a1b7452991a0a383f855fa8b8780ba38b8ff7e706846e9d0bca248a6fa0547d22c8213bc860aeab589c4a732e1fe5c522e558eb66383748f763542dc83fa2a3215e13d92bf4685d11730b0d57cc5e94bf7abab73238395ceba3e820721bc77aac04c0b6b10b29aa6a2003e4df4d89d0833ddbb9e1b87046457e983073d53d9c9014a1a32ef8853bfe0f824a6736d4be6494ebb46f50602094782b8b941188246e9dc436c1b81f3f4d81debded5ea2a102d6c7cb097df92c7e2b78d4a7f98a03e9e22f214a678ff9cd07db895760ee6227d102870c1e15da04c5b208e4bbfb4bccd8117ad6c9e796310b5d02f01cff1dbe44c0a187f77b481d870b0be506dc531aacc56e73c2c55af64773cd0c332c7bd9665fa78b317f9c91479df9999106b8cc3ba500a6def091fc4bacf7848eb20f6b5ef5ab3cd82099a5efaba01795cb949799abbaacca8be77efbbcccacd79833a2c897a9045ccc4707fc32a7d54e9d855b8be788c4d8d4ff800f77aeecfea3ff8436774c47119fae2affc34e567dcc3d120cbe1be580767a81920f64d6b55b653aadc937a8af40d74d1fb5e099e954cce9ccfc80ccd967befe64b59bd1f51e93a824850d4cd24ba808969f2208d9b9dcf2acbcdcbc245d3128b87798157748167f09eac27b7b46537a302e6cab9bf2863e43146c0242c8bce7967c46ab3c636d80bbdd0bb98d2a59dccf3b38b2016780885c9a3b333969c2495a872fa0066ffce21015e7a1517e6781e9414b2ddffbbf9276b83b1db36ee22b33cf0968dc3495edd10e95f8f2fc8f0c0817c9e98e2fe72743cd9c827e263505a525dba78aab05883ade83c402cf9cfb49fdd3176c460252291f9d170d3eda8c086dea4a1e6c5e547bc5f9c7f3528375de008f275a8771b3c49e32b0f592fffd065ff9ce6d36e30939a088759f7537ac8ca69de73c880d1862793a2f7193c1ba21a3802a8c85d7360d1e9427c19a61072eea7a797d8ad844857b1894df2e87192a35e88c5734994204cd749b7a15b9bb308d412188e7cec46543f0764156bb3acb1bf67ded31bb851df40199cd30056914b5bf4f508da8f16b43e25ebd0c06dfff6eed8e31461292ce3d8c3e22c806d7f0d9ef86c98a9dbfb794f6a01d08675894ae17e54be6e550803293a0c76fccefee0431e26cac7fe39c999fe150e1d3dab068b2622519b7710e83bf4b6a2d33a4cc5ed81cb728bbc21e70fee5e7d43ba349307b18ef6b4fc04a23ecbea0c0957d5a0ef6eaab5c103d7b34531d991313a6abe353f79cf6095d78344822627bec3dfe6667594c9818c89f13432ebfa2c7b8f642b96e6370887ed1bfdb578baadf15336790b325fbe784ae2ddeded8ccc1739ed605c23e5446580241f9005b8e8ea60587561ec1605ef07e488fe10722d25ce925bb636e15bcfdaa00663bf7e20c3b97d636b1335df98e1a525f6c90082f44753d4b93f563049edf3e43a8e6f8d8639d6c91578f49397d40b336035edd6320af851ccf1a813540aa2d02c6955dcc64e224842d6f60eb1de471068980a4d31f5ce9c169e9a3e03c86bbecc5d41349b4c4aeee5c6feaea37ab23037fa849b118144ca1b6b06d690de52d0dcd575ca520b3eb79b8b07a2bb571b05b54ab708ffac25082cf846e27aeab8b7eff370e180fb59dbc73593b1eddc3e415cc03d6e9662670bfe9bab983bcb1d76fcc6e7fa7ade565d760114ac45466d4fac9503f4a20535f138f6e8a84ae431b64b05efddcdfef12220d87240067ce0cbd4ad2fbea9131c63cd3fff778fda340790a4bd53e24963fc4efea24f817a897c2e6f1f4f84bfc45f2cc91bab6e184bdbfb0dcecd2ae2f41539e720e9c4e50cd3c02b64ed7f2c3cfe02d89ff9b498f0deda69eea2b7b2366cfa4d5a99fef5bf777b84f9806caea4aaed2154e470ae1fcf2b981eec22671849a2fd2717c1d0fc38ca38f8c91b5a88b3a89a27bb7e48bc245ca59da9ffa29d8412faa4f4cf1e683dddc6b6221478a99981864b045de11ebda3d5e2a92a9f23135ffa1678fe80f4609f67ead1b2eee457acbd17bab97ec122b6aac5d7cee8575c5e182f52ef4edb03e3586ce6b2c8912085b26f906c20871c0c5c4ee73642f6804d518394f8d96b91813e4f3d983e2675f1de1038f8d46311c5809dcb7a853cf5f5db672c27455256fd320aa11aad41b31c8457ce9f1fb9efc2d44c0bf14e6de11e4b0ef2eca28dcc41563fcb9f310483aedd99b55fc6f1f4e8f217be524f1f7c030e0263af8420b3e65fc2441d198709193e9591ce460fc5053b0696bee13b7e85622e54a8b8a174823dccd3d2a45fa01f604e0f8817cfebdf6e52ee1ddfd52e628d889b4681b605da319e1875e43f1ef7b7c0e6bebead7f306170c2955f34ac2e366535d04c2d08ef16fe96a76901f7e77e910265fc25e770c85c99fa651651150b7bb31238344bd88ba0294158073f010a6020d649097505ecc2e295904fe8605b6e4f67015b8ac307d5a9dd63cb6840c52a36ff8d58f0e2f720b23970da512d8d6144eb0614c5b575e4059cf3e923bc5511b79f386087cb35fcf8028020da3b68b43fb930719467ca7c63e20d6e94bcc49d002478bf04e7a5fb3915e8d49e86ccfb5c060d8ce85afc7f2999ba87d3a1aa5493da441af5ceba17133e6eb5dafca9eaa614f5d2aedb9cf7d61c32ce3cfa31525e121f93e1d6c3b8e738b6d1bb1ac7a179e464f36933ef624d4962dcb66720c1bdae6771787d6a32fe197fa4fee43e77439ed1d5e7309168a3feb4b984c1441139e8873e88dc63787119b8c44f3c1f09a5e4469500dca2ca4925579452e572f49a2c01b24cec1b6c9181bae8b9c41a0adf2f28bb12eacdbbf9dfc7f9ccbc39480a0588f592f64c5b7f9e00520375d8a19a92a0c9e509cea0f220679bc6a3ff6499eb1645f878b6cb64d53c4d2156442a0ea972cfd3288c1cd12b356f0c58c1957e815224e88f39677a797360af68ae274e11d5ea39f97f0e9a9a959d56d238adf731ac64a83d29432720138d0cdc386683c38c7447f2ca94c325e9cd1d9f9181558b04121cace9b6c4fabbb30dd22d0267bbcc237aa7441a6a90588daa06b55a8512bf6aeb913415135f647e81cd86582d55c5e071f7bb3cf9bff5f8b945a195d826e401db764049bcf0f736264cd6dd10fbfded588f11cbbd92eb28bb806ffaedea4eaeba9cbc30be58f6e08e1ea175ace31388f3f5e40f4ed4aeb4550dee785fb66b5cbbce74375c3b279dfb8dc13cf390b97eb2bf604b170cec5ed7cb472fa2df4d5486ff0ab51f4b46b77f2f516dc0684da41392df2719dc8ced62562892a2f317445423808ecbb5a2c29fc7559c23272122a3ff3b832cc82ec1a25d2d71db6722e448959ca1825bc3aa56c071b05079f07f08ca6a92ab09cd590f2de4abab9b694822a3f457e9b0427d2d6c71a263694b4d580003a1d7efc9512473596c84cd3a9e357ea316d56f318fbca891e7223a4c725d5a3863a5cb20c1472a4b208464e68aa8a2d2b491690484e5f4b6fdda7a122168d7fcb8fbdb86e895be2585626053c044c943281f6b583abd90c59f0e5335d7aabeceb078b4dc11d6cce89ddee88856394562a1856ccabc2544cafc3fef241461d48ecfb3b7a62b9d5ab075fd9151aaacb855cbd184437827a6c460dba824ee081cd785340438058f6a0da84245bc223b498f474c235afd5ad35753c73b03644bba25e355ee1a031cf06cc4666dbba50ca1a82d02fcb31b43d729ba6dd3160f56f570f48e559172ccab8ed5e168a3280e38a7ab7ecf5ef7e7b5f99c3710266c1e8962282d9c493a647a20fce426fd03a1564b4bf6b51afafce4e547a95859752f46dd08a7792938dae3c4a70a0862b7d2fe3ec15a0f649d71f5b357dd1837692ba5178aab42beac1f88d7aa169c351c2535a43f6bb742dec3488a8b6a5d139dca9071c4b9c5b40cff57cbcf1bc1e41de72cbbcb41519dae8d8faa0c5ceee4affe7a9e308ad0991f2bdfdf5e96dda72a8bb11c055752e68bae839118a0e35ca11f146955297efac700fae4be079ae4b7644199bb64ce2ff7e9f9175c1c93d09134e06229aff1eb43c90f6a9dc926ba8657983fc459c0c5e14bcc348b30cfe0f5e8d4f1b15265ea3ee2dab408d72b95c77199e794c862d55f659288cedc8b817ece62b370d969cc2091672004be7fba979ccc109c5d2914b6d974446115e4f0e6736fed0c03e03339300ee232ecd15c9c29b0488c5e5b5b90c63a5ffaebfa8180c35b864d3976d67f8c6c5a33265b569bbd7ab3677eaacac810a7e4333cadf0c5e1de7144eb36ba8458128bf6cbc11293934f0389f348847b1642325e398a9f3a7224d28305f4791aca35a7a4d15851da9257616b71a793f27b1fdbae8eeec8c4f6640888fb8e8905ad62d1cf7843c4f0ac9533b95caad5dd486f4996f05d4cbf754b34449d2e06b9f8102afa136493ab8e09c79a5dab7001d6ca962d150ba5673959d0e425153b8634817830f07bc5005b03482b199a19837f20e34d20e380787f377bb3620f263efea77aa116a1876a5bf1470395fb52cdb6d0b34edaf356d7cf0a0c61c9dc02c004cd27c1ccc5783e8d44e3d5c5e60d53da7df0db16d614a84e3cacd12e2dd263092d515ece1eac4c4a5cf4c50bd8841631bfb6b2ca09916e9d30712e10b283aac9f84d23898a27bb1134fde6bf32431bba8c07f6aa4de7b1177a2fb09a024a23a5a12d87b952e5b51f7e99ebdafe0fa0fc17f7eff6527d752fcb6926a743c6e917d738dc37feb0eedc6981635ca2108c57a8f22a5dd03bd939069056bba0302fdf1ce1d98780fafbda115375b01ce57651b0a27e7165174bec3ab27bf0ff99656e15af6ef80df50078acbd59a86c8f881f520cfdf8e6276033abdeeb6b6e0b54a04024c34b77c7603d81729199b3c92e0b3615f04feecf2eb52f7f31e58a3beefe1619655a104989b2f7e4d1ebf70def96b8fa001dfae4b3cb0fef5b0f06166acfb4f0ff0f433a3f3826ec30d360c2ac811e35ea8444b98a6c6285614cc42346e1f1936808f7779c4ebe3efeee06ed7e526a0ece9d00b224de2be9c6eaf5504305a1b4ea7905b6d8665729885b1f9dcfbbeeb9fe4de46e81449cbf18395cf85d04430df7fc894c86bb2506bfa37ec408033bd4f0032f71ec86448a4679ec8bb38a59a3302ec74482bf58a78130dcaa3c42091d91abcaaa9081fdda6bc14997dd29dcfda7841769c9ac9d1b3fc1a11b65486409fc44c4ea512d9cc0e86aaecf84ee5802605b7afe918e64874a00668bea424ff068d3b84df4ea96495874fa52abdc0c2b033956e48c98f4ff88f3b521510720df75e5f245cb5c8fa1b3643b168f0b905d1a03fe7459d6b7cdd7b5ce5a927c11b5eede43bd0ff59882038440ad8364ce12aadb5ea612f76edaa3c1af27c5072b5ae2fd66328acf4004c76ff2df85f015a1c42c5d2926d2c9c456bb39022b24a4c5cee648d01cf9dcee7bb20821513b96251a62163be132f9d7b899e0746754aa5605f4a732eb6184461e7a640d57514d63162d03143f6ea117bba209125529c79b7d2cdb7355bb96accaa5dbbae22400a6e349e45721c101a5b0bd39a116f7817e36e4457d3a5224c5ddc9eff6c6f966e79168efd0fabe141924b58b8ef8e14b069fd1b7f747e9abbee56bd25af03d4570a517400d39ea8c17c75c5a8b98ffbc852c7c209bbb0ddad7f6abbe16abfd83c9ca02fe8ea56d361daa67e7cfe3866f8aa81fed7009e9d61b1dc2e3d66f12e2bee69329876ef8bfe4fa98a1f5d5a6fad054a8400cdbf11f6497974bcbcddd22783fe4db30a6ccf74e40a9f4a0d3a3d46f5b2e35661fa4690b33295935f94f48523f1f1702fb24f3a84c6662358537a1f95e0161b2dbf16db7dd27ef99017aefa587a5126e253aa00817cc5a21c65b79901b549bb59ffef80d739721a68d2e759f2ec2034142abe8b0d3b192e49d0904adb0caa7140eedb391a32c9a4515fe575833addad29bf2952c2d6bcae6546b1b0c80b5330ef93682b3ecd756d8d9e3490e487cffb7a893c961bd34cd90bc80bcbf178a5bdaa2f63a36256dd33ae1cf927aed13eedd3f5e464f8da704467f3e6e4832b9f1b686a8ca947d2f01e1cc9cdb6c2a0812cf541654f1ec92b65bca293c12f8703555259b07fd50fa52793fcb61ac2cee1ca1527d9c3b540f484dedae813aa0867934850ccea96482c47a2cfde00955a84a65b54d69fc8d5174cb809dfd62ee26ff15c842c0b365193e92cc115a2e74cc7c064b9b1f7c8c52a89c894e4adf8a7ddd4547eab9c095aa4d7ebac5187a6acc737c1a033140a4086749eb7c5ecc80c2abc2c5d7db3853f3185e811a5d98683017a769ac457443e17cd61b2414864aed45392e8306dc36a277304a968f67ef23b777c365d1314edffd14948a77915f2ab576973d09802420f1f734b919d495633063f8fc25279a4cd4a268e125128f1a43c468e4c0c2529d9cb3c296c15e67bb37220a4d94e58704586d80826cb6e7514e0f6899a3830121a4aba4f3b0c19e5132cf4831b84f8280976d41b59c0bc055b81f6c93091ce9d19c81e806cd5e81c48d883477462861b97d3a6c735ad6c02561bf9e6ca86cecb539cea5564dd1e1cf6a30adc162b9242668969b81fe4dad127cb66a19f28a13b50ef77bd17d4cbbd4484b99d0fd8900e217151a47e32e91c2952d8a372fadefcf02370baed1bc143544336c29fd859be40d621fa65a47c1b15e99c152c31bfef9adf557ea37f19eb929c1993ab04a7478b12b5df139bfcf0c28a36fddf52a1b5d99df9ce2c0fad905f626e78c5689ccf35087a80e1dbd818fe94dc726f2a883161cd05bdca489b65aca236d39f733cb3ad33f1ab7e9601e34f1ef9a22d1a98988e8e73aad260c8b39304e5a7ef9cee1f4a8d30c492a26a00cca7aca0321c9d12cb4d13a1df8f5ab21025e5180ad5ff3b687960fc1c5e8e1f32e24608462a84ea719e09f967cc3d6a4e8d12b1c6eb1edfb39340e72da7e998f615d0718b5ae04e1ced4d4ff139a0aa3ef93d7e70a4e1da9e38a055d4647e2b045e83b35ab966a274da29cc5ce5750d6b09a9fbcf5b3fd3484ee78457f450c9484d4df4edcb715cf351bfb9051bf40b322791cc97fc15a759f48e9d1899e9735fc7538ecfb27f7927ba816aacc01823e256a046be7da1689070a381b5bed628e9cc69c13116b17b6ceeb76f67a2200865ef77cc8d4d0ae608e447eb467628de66bc9c359a614ffb2f0cfc1f158f10ed6cb32af875dbd6c1791330dbd318f48ea610a94d8b5742c72880c16d07762ed55594c395e7e9711bedd228575462d45715f6834915b19995212ac90de47485f92c7bbe6dc570adc7b5738c78dda965a38828d1387950044439e0abedf2e9653d90d08cdf33a03c19a3e9cdcad014c766506b6dbd47895ca8ba1454fa542ce1b25720104cd1023839b53af3f928c4206ea495e69da52319f1ede38236dd804f2f3b222550a1d59c0fd43215d13d0419b9be9dff27a00bda9585594a21863fccefe5a415cf346bc9bb4a43e28899785fe734452e63bb10e1d7884f926cbde2b64d2a5523cdd8d6029d09ec1b66b91623b562091d1324b594d2dde2980300e73083471f031ad62bf0eaf00a16a8d3839b87f7c22d8a2fcffe1bd51b696180f6a17f73f45dcb0b541edea5f33dc7fc127f09f9efee4b13ab4bf558136b37d1d935cc1a134d876ee07d68b4408d0346328cd7ccfba87ffe6d4f0ba28fd463ce0b5a80888ce69e363de27dffe41843af8e043d1bf9d632ffb600c793cd30383e9c4546e8a6aaf8c66284ecc122834006982c009d29a66b5dddf82d22eedf0fe5416b6fd4e613cb96737ec5a1b388090d57cd3e26607a0b56b7f45263499436051a0819e2ff0e27a8b65355989b75cd81b9b55a80c169815f8757562ebbd71e85989b60dda77b52550564acb0d6acfbe19033f6e4a8be4c6289a8f669d784e8359968a8a74caef27e127cb7de4f21b202829d002c7d784f8f9c0fb16cd64a37f457f4ebe9f8f10665e845e87055df7bd80ccdd2fe13c9f0bdb1dc7110f42d599d528d240d4800b3b499d06dde0d835f08a5a05ba2d8980f7cf901d55bee05bd12bdc0bd2a268bd9946912fdf345bf3d1c8d765c2a4cffc4394893f6e24afdb8c53ce119e73cb786bb9d6129a14fd97f74c7b5b5279dcdf63aca4cd3410c14a185168626685a9e2ad6c4fb4ce88e291651f946c3230504ba38ec0c39528b9f2d8ad60c01dad3caa3ce7a7f01b3c09ec68b8d16c97a525c85dc505447ff39c531f4bf11ab33e1be19b79b71288dfd3acbddbd976f6785bf337fc6c97fd82f02a23efef8ce2d346da76665bb8388f891c0ca6a3c5051afcbd6d573b766c682a4ea59a868949d98c1d5103f27deca004fe48ad30092b053535976dd8bb3829851966b22cd84a54015e661bde6c388daafa38e50e0951862def15df95811b6cf7f446c50d67f6e7bbbece9000ccb6e9a047a752c5cb33b812765e340536fdd19fbef1d59f5bf5af978bbe0bb116cbb4c341f9298fa04faca9b18bf9457e158616385146ee2eee46c039c8c03516a8b5737065683c344cd49def412d2621046e1acc9ca2a194a9d4b89dad5908dcc1a369d2b3ec8c5b8238046189c2a163b08e79c90fda157d7f6ae2c20d13a6865fc6005341bca8f2f7c025e5978ad39c69fcf5043c71d20a9d6d87f9d4a45ebeb89f5a7dace09b80c55b5659929f1355d3375b8b635ec3c3317ac0c059c9402a40ef5cbafd8b458654090cce6c07a99a26cab1652544f36af717dce5557f7fd966ec250274c788c2cafdfbc6f5b5196708adb8385e4ccdc907ffdb775907d105c4cdb26f7091ef76f45df8e445b2882a94a4b6a903ea7c20ac6a02b9ccf44d370efa7d4c5569b3ca4c92e50ea05ae59980d1c0b98143ebfa2fdd6838cf636c2216da3f32829418501011447bd72d737e1d499f90d12736dd607978ca0a2f9be02d60bb0f3c8afffef0ab46723f375df0100049d6691f3adcf444105a3d5b28af769c04ed599085b840d6fdd8e5efd3762e893b11fe27521293b9e257aef564ecc14f2a2472b9a4f0c45518650ec25caf4be27c516d98db1c2c3cb12a242eb185eb5d095cde7eb13abc81c753a85ff44674da2bd2fa5b907a62b3f6a77cd875753f16da681fd9fe50596c77112b71ffae27cc2504b22ad12fbfd9ebe51e2e95e6497a465f4591b8500b66974d4b3ce5f5dc4ef8b8d24af870c681b126ec818e733d2f1f95ad344b9898c7f2dc5067b9078e03a4df475115b5c69185fa99ff48db7add39b0dd9f5ca77a5147f54e946caf3769cc93d80694ac84171120b11875030b16e195645e8067590e300d06135eeab874d061fdd3454becf588a1f969415b38ff2548e2a063cfc9db77be59558032ccdef62ca46023a81d0de9d22613c24413174c28eb50143658f656ef5fa65b4cd6e1e0bc6a20c057d346e13fa2f6ca87096b9ed6c7f0473018c808d354e40ce69a6e98512217380abf92c2a00948c33a558c2f189e8162948ed883da37e5ac4983bb227a1a9deb9083e02119e781137d8c8ad02f156994813b4b21ac6f2512b83f6d39d1a127284177c2b6db6f2898df1eefde40572cab3ebb8897142d4c13e426c9067f5d557f87523b6d6dfa261f2afeb1c7183b5ded465e9a9c63b4b1c5bd0c6b559dc4a1def81ffe65b6f34c585217f7817caf59e188e247a5087d34983896a8f19658b508a0d1e95fa52c3024bacb57d577eafdc7165885878ae15eade3b9bc8a5169283ac2328c229bc324eaba6fd3c47773c4cd36d42ef5ec1ed5435c8820bcabf3eec7adc5e46509abe08f37f278511fd477eb746357954f989e576523b51ad1d4056e141ae3a4ce5518ad17812d272571cc39a590596602bcbac3402bf0946d21b01104488e7eeb76bf2daeb07823caca3bb7f965eedbe0a51632553df7ce0aace51f9bd79637a3a9db506260763d42d363d694085495c3bdc56a2f5a5079b36bff4d589abb8295dea7332cf83cfb4998ff6e2c983015d34f0192a3fc123eaacfc299da5c15ca76297239de25840ea0686f578c1878397f2deefdf2ade781624047b9167ca02953a2dc36b37f26f98045cc63ace3f90157ba84a07ea1192b8178606b5c22f5308acbe942599eee87208c8663fbc4c40952d58338c04b533433fe6e34f9bdce10850b85b3770bc20432d0bb01f99173d0ae7c9207d0952b878b46fdd6b2b08cf125cc53571faf20c6841b12c78e09eae1bf400948bcf894def6977e5577759db973c936e87136a785325d4876ab80c40a3d37acc8d450f6495f1e63727d2545c7bff7d1d918d523b097afce41b3e28452fc9270afcd21c282893e90e3272456a968e6f738b19d1dfa59ff97835e2f37a833ff31d77480562bdb2b52e931515d536ba7b5ed6bfdd2ad3034bad63d50a1615fb057d4160c2b03b87ac51a9b6c3e99c130390b5e8697755c0f4f0d7848fd1901c2ca6becea2aade204aab975071d67a976601d1f40ed08289d91ac726bd7953f3086cf9e27912b4bf9f4dc5b32b877b2896cab665c739c2ecf3eaeb566efdf09f02a221b7f2f9237a523a5d6af229bbd9037d549674b013df08c901c32a6aad860fbd08f1e85b6133584dceaca2244b09c63c7e0333ec879bad584ae78d560692cf34a312e973fbe1ecfc4d66bd2baf4af2806e24bf24c4d1badb0adb182729459bd48d5a3ada4f267a1f4f4939555f217bbb3fd36cae822487a50b2dc149789e72b78334143611316b8511f4d276498b1a287245737a11f882121bd0cefc0bcaf55ce939e129caf9263a10258ddb4d5b13a96a948f3ad0900f918917db752ba4d12043c2b1f754c5aaac91ff5260c063d3e7f0d53f26b781ab49acc30246d80b4a61bd03403e5ffc7ed51a60ee53ea70c0e6afc41826ce6acedd5c1e9da84405cccca4c32719f05100adf740c40a8813bad0b9f8f777b3070e8677270a0256acb1a1eb9633e1dd3937eab62e09f34a3b1a1a00b014b5198e66915ed1693429f7a126a7b2e1c352afb70fabcc5f1a56a13ef6de263181435cc0e8754d4e988a483645934c826b4e4b43416d691382c302e5bb8e806e108df70cc3a668bb577dd2cffb8d8b91fb27ab273a57a360531f2be411b03f851fe45a9527def704a2b8c8c64e17082fb702279301081d7e01eace0ba5c94e64f0489553358f545eaf26635d7cd7dcd4c15cd859a7e34157ab193635b7c098785b51b871672de92cd365b0207a1747b08c84f0e468901a2b9b94b6ce0e63311f0ca7164838b1cd6fec4938a12d45d73dad1e5f461b79318196b7fe6bade00d048d89d274951974ce5b576ead6574310b0ca1c8aa9c4e8726cdd52f253b4c4d6fdf47bce690e66420474af47754da5dc094dacca35c8297249ab0c8ce431f11c3f6c880f59b9c0b805a92ac532e50a9d2d2679d04c0cb6ce4f50360543ab6e5ab970528e16245933a67d09cef9bd51583303de44a42a5c5ef6cf82ec0b5d0bac5c88ce35210efd22e395ca03ce20b5b0ae023facdbbd04802abb26bb982126cb738fe2cb959294a6dbbbfea66fdb97614d1346d2e21cec95c2ec57383f383d906bc913499368a2d2b0d395a8d6f47cded7661d7bf65669d8c83b9c6c74f1090274b8e9f2f8e2a835a783c9a202f45da038eed04e7e724fe187e8ad0b464090286b7d496fa77274f7953ef1514f4e4709b81ef6aa6f3d680c83e2b843bfda24f91a4532507e522d069b8acba4a1e7b8cde8cd3edd2741099707cfec57579739f053092e61ba9bfcb65a2828ae99203b1a334d9f7aae7a92d81705da67fd3f906f91a2b051be429eb5e75b3fe79399cdb904195dfc9f33c3dbefc156c4d1f13036d33498935bd8b275e29373a063506037cf46d9eb1e2a892d91be66e48fa8580663430f7c93a9846b454380c999029282bc91fd764509189de7204c2bc6e7874ce50b53d08c304670d1894c2cbd98df6d5bd382ccb09dce2a1e599ae6186f8049d23c2f4b47a089db97f5ecc4b0fe2f40ac09de6d90937a9a76440fe8626754111ced4eba548e29ebc455d2c825c7a45da9106ecbaeb8f2531c78c15b1d7436bf7a27d08d2bd528176008cbbc656caf667347e056cf597e364687fdeadc91ace3fdce2740e831f84f7b1983bc9d3ede347a7e575901348c6c26a13836cbc9628687e3d1ed33690ee505c65391afc212545966ee06ebc5b2c56f9b5f72175b8a479bb5c83a0d6f4fb74b78abffdef47107761217f55b5d124589ac455840e63609ddd20d3e0e81ad87765d0d8f12f67c9c5c55aa9de226cb333ab170627c2e08589ff005b5e9dd9ab430ab6e292fd2a63404e48aacf2133251e6a74bb41c05af4489f8345a9038ab9117cf0afc7145e8fe6a06fe78b63f274b5851a3d6c4a63781f66c9a8064889893adae47a5f7076dfc7ab265756eeb7bf56073801198d6d948c5603e5c2a0b7262fb82ca88b4808959ab11a47db2e56c91e917397d8a252d9aeeff7520137fb6aadb21659df1c4d022c37c972bcfde690c65464e3afc3cdce89bb7d4263dfbc5b81b527cebe66a47a4cdd086a191942f5cddc18270be2ff6bf02b044920e8699665f0939968840fd318457e474ed78a69a6bd8edd17deeb1f16a00de0699bf1ccd4f9c7a10288b472c33627b762859fb9cf883c658f07f96908ebaf5334564b52dee6e0f354d95df33e65d14ce3f8aade18e88b7a3cdd770293b91201bf3cf0b64f2f31661c04f9516c53a22a1f5a95e3769b5682c5d8139350c4f4e475a75c75c50dc10a1fa019afae1190f7031190d923306fa4859c62ffe9d0277a065c90ae74abca716cfb739f06c5e725120c8edcf7ab1bb67e085d3dc62311e8c18793f6bfcf3cbc7312630c172bc789234ec5272e1491f4ad92dfbdac292a81a639ec30e9fb377ed96c65a4b598a43ffecc323a08ab7e8f4dbe28651ccf8191aacb2a7d72d3957137a99cdbe842c4e2ed2f130b01fc8303cdb45d135931387d22445c3300725ef82fdd4e7c75fcc413ddea6b4e8252b6448ad205bd7113032f5c3999f0cdd7516f7f7266c75df4144fa98781c94d031db995708d13c1c7aed6c92a7ab308e66250f5d4f124f46b7613abac61b70c0536030b54c5bdaa0c94f755949b08a07c36257f18a16463cd8358ac94593db7b0729cc8f2612097b128c7ba391e47602ba949afb94d8ece052655c7397defc526b53f902c7ab66fb770dbf64827dd6790487e69be6f426a881f96e76925655fc2d823da2e0afa1d06842939fc61ac49eed74a9fc7a4aa31ea8164e7586addf3372706e5f873dccebe1454de5477766ebccd30461830fa1898347c8309acf3f878e404cd5cf9cefca8e04959629c5987f4d3adf130787edfc374129f130e64b73ac249b369435b82363d342149045d23a8490ebb62853fe345502c92e3f8df5c0a6a8440e2de4b372197b5fee6680dbaf9c10f61a7883098dc2c457c8b95f2c32cf9340cc2ba64dab2e97752838629bdec8253c91f50f084e43f45d5a453f5a32480c6b2dbabab495e460b2f739f5e83a006a14dd5d519e75d16c8b68d65141b9e8379a448e9404b6f541460faf8141e727cf87ebdb12461d70fb397824463c4aa7b1ef7ba90c7683ccccab8fb594c6c314775488ba2d5539fdf1b74b22a01ccad54a0c4c0215e9f74fcc7433c9188fc0d7c009c8b0a3fc56f0d7f9b70954db313ef5ee0af0027e6d845252e16efcd8f2068d312a76f51f7a274469f14ca2cb7f5a159ed3ff360cdef9cea8779cbad4f7e09ca2ba5fbfb0fe1c59f1bee505c0a15b3291fd0a90fb8070dcd3302fb620993908511f9fcdc742102a354ef71d7552ee0cc2ff53134722a333da0bb5efeff17e55e12b36582bccc04c9e156bc4b3182da3f54337f95257bc2c523e455a3275d222934ad4c3a57c6f7b1e1ad869d8593c4e839b7ea18efd5feb916a344d4dbc217c48dac6a735127d93b70e5647c0b89b9d15678b1aa966e4134042e16cf6232c57e50fc9eadd17dfee8583bb207585344b3166e71b62b9a79648c4ab7f9cf1be349abfa6afa33778e963fd30f8329b5e6ceae68b02f88e5a72ed273975e17005dbaf12a740de5f40683b99edf1ae68f9499a2ad562afc1861198e2b2d3964d6cfdbb0a307dd5eaeb3a41044c8b87e62363643af2f03a4cf508c2028729204ac0ed39b1a90d2e8ac3a50ab3035e827bd29c0b3156a182bd7b35e3d2262ed7bb69f507a63218bfd1f132f52e9d6ca9a88be653cd71d12fda2dbb50afe7f038faf3ed382f2f12778430986cef71e1dd063b952f64cbeba27bcad33cdec4e915abb59bacad5d92eeb52bccb9a8ac44a6707d26a1a08ab676f3d23757bedd732c7489328b6a4d8fac2cf1f8f9ff842932b9237d47caba3f15719cbe0d2c32950ec5441b6911791bc15b2faad36e0593e69de0952ff334b3d241e46c5c716d419343af0f3bf54c80a437668dbee858be00484da6e04eaab530e6acac76ae86d9552bcddbc2484e902c55b5a76c96ca0af86f735772dadae0a3a48a1a29d020dba61527b59b8e481f9d49313b0ecde22e78b4a1644ed6aa53d243da8333145d29cb4c8f1716c73c2bac590ab020443e03c506e6ed5b957c595905fd1da46fb5dad333499d0cc2d045b35218cf7c8a76f65417da1bce6f1a4e237f9a1280f7f530254d983f4051e3e977884f83d6ee4a4a8ce7c075772ecc002b9d0b2dc3f7cdcb5fb18f0733ba991c5e12f8011e7091b86e63c6ed84fdff85b8e6c3234db122752e5add72e580cbe55c58e8ef044a6b469d4769625f80111e40915638822f5e44d54856351c28eaae15da1dda2a58810707011b47e4b4432b99959193dce5cc8982c4672269db5e1cdf100fb8f6b49183bd37cf0f90dd1684ad7633fffe45c0d38bf2918ba82ad117adc79ce65bad777d6ff6be6cd8864231023715253cca6eff2dd211a4cdf338a015d1e0c0f72b21bac35cf296c1ae9b7d4ce61e4736c52300f086874925884c58b4c6fc1f92140b888dcd5bb6bbf7adc8c186b1a80819a941dc279d4cbea31da2c1efacdadaeee44b03ceb9743de492fc0779f2ffa73c766d66a361ca2a55e0856ca9563b3a3607c02751528d5dfd4af81ff2eef9552b4f2051f4be3dc327831d6873a8cc96bf35e2f61dacfc65e9740f8d6f73d57c77209897e59f5e3907a5b6a744aa26ce956adfb61d260aef79c2b770a3d8d0022948059644ecf11abbd30de8e03d5ac29c47195395da50b045d9c2637206ad1d186b0aae32d24d6b97d7ebca4bda9542b9e74f86d81da12cae3233cd3c8f294e848f8151c325aa894a1b98f1589765ff4ecc562e3da2f47eb9434c314fa5500816937d7b67a0dca5fbd74b28dbde7bf6f3039d9a0a14ae51bc2a7f5b836596122f452191fb38cd93ff3ecaf1a0a7c76cd7de5bbf03dc21d6de838242e78d99c7b6ab452c7055734fd1e7d343ba208f85eb7a56a4f93a51fb4a5082fe2ec417d0f62c9b10d6ba729c1ac2a8ecc3533e429f499f9d927f3f2d75e1a8eb7271451acb4829991e2e6fc569619bdf77bf90babd9a2f52e922023101fd7e9e2a866d9c873d42d0c6e32b89a451514803b29c883bfea38f32396395e6f8b43b3ae638820f838f0fdb4dfceff850b6915e5e69f0bf259cf6c9b3008ccc4e5ad06cbc60f29782d6cc310f28f59428dd58b062a3f004e20ebe5c2c1c338ab7b956dd0623f3b89b2f3e260a6684f8752071b183ebdcdbc32e9c9488beebe0144993e489d3389d0cc6ba56febf62626b4200767443329cec665aec7c812fd741cf31cc9f0d33bf206294cdfe2ebcd5e3029552bada2f7c8d760bae9254dcbe24370b33368a1517eecdb759062be4d2bea0d6d28c32bbb12a4721dcf42a7277adef9a51128d518348f8d8432762d13222632cb92209400ba301089633342633975adfb10e5ce5e7604ac1637dd92b367d08f2357351d8745c3dfdd1a0251dae3738583dc68d3ae33e526e5b189051ad4f5679849c5aa1ca7671d7fa12ae3c0a7aa91f55f101b3ad7ce9b98c6214c46424883e635673968566b0ffe681d7fce73ccbfd2dc4d304310e19267267e9f07fd9e02a94307a51c25e48a0f9ec08cd26bf3334513269e265f43cb8fc7313d5d5e72bf16a465bf4d532788fd00ea8f7b0219318328b4ee5a609c97fc70fcc96602623cdb0894b6e1c751c7064ee832dbfda19176e2a5f901bf9b4aacec55840e62af25edf57dcb5816bf845e5ffc207113cccfaa46ba82e59170b3a6b3e646d744c161849a5a586528963dbef6d9b0c6d7459ec3a84928f9a650aa96ae0f5b783ca1b1917f3b270ef73c84bb28295fe5749610febabba1bbeaf5ac5836631b31487ee15904841855bcdde453b8071932fab0537e410f4e11aa1b8b10d82666fed0298916546d199c6be7d9604d8656771f67f66b9f561272e604239880d6df1b6b985cbe39816a420c8ed0e55428052804f4c11e9335888455f52d599b9f057b2c660c57f91f3634c7493d6a86674225cb7122de1c667c80eeb71ce460e50f1af351b67220fc76661553c0d17d2fe690f2601ff5b937bdf2181704d609bea464a9bbe5ba119f2e79822b5a649562dd76ee25e41cd40939bca96699dfda755a08722b24abe9e4ebf9e314b0f82f535457dc87d87f83d26c66dcf93eff06090ae7a7c919dd3c7aa100bb966072ef4bb1db1c3349d7879c222760aa204035abf110cae53d881a65cc20b3fb6706e8085f404039a065ab04802d615560900f44a7f0be701717b07ceae8d6d294f7bc39673df98d2dcf98bb6412305c5280a0ecda1255810df4e4ec406a1f700cbdb703dd77b9877f138b081986ca24cafc6d74e9338bd1c7ef47b3f282796adfc4567f17c631644b2925454c95119676562fdd3e7df43f1fe3b12667e4381dae448539bcd02fc2e5fe2c5e631feb9f4e28b5df881c814e9e6e136b001036265dcaa9b399da39284be1db551758e5b00def1963b99e0ea291f9fd0022c481ead97efde051b9d87cb88bf4c0636e343ec0639a09d9b86687a8529a328793ad0fef4c2aa9d448b78bd361d549c5b20b4360eb84a3a968be6a2594e9a7e9a02601295e026baae39d8463964b2dc8d664bb81ad87b818975a5d9e2d5fd5f7b8046eca9f3f770eaad77d994002bee61f41280f24450282a6ba974d351d889b44fdcad0419e91d9a1beede8a106e1b7a7510f16367ff0c1968cf2f1625e6090cddecc086251723cf90230701e01916d03bd79a32f592518a9b96c3f56e3504a0f17ef3255c5464af6c007f1a9705aa3ec6973b02829f7d9ad0da6df0a8b202cce4af23740df2f535da01559ab6cde7cc5cf8e1ead11f1f4655668029c98ec0deff3596df36dc00e580763da982f541412cf5fc4b7245141a25b1b7eb98aa413894fe9e9394c829627e2dc93cef20439417d008a52218ba40abc4d8070d38ad3eba230ea0ec972302ba0d2c96172cc7d5e208d956df5c403b78d31ce2931b6ccd303fb446b4681e905ce77aef2c59e9787d0a987bf0d5706049d1c95ffe3952d475dddef9ca31300ed2365babe19000c3f56f6c7c02554a84d4709cbcc7c66ead45faf935af4811e69f6179575398a2ff6e5a0e113bafc9c793a161f988dbc2330690a31053a976514b76d8d92cc6b74684ad3efec7746817bd5057a3c15ffdc6134cfd4c95016471f9a2ca23c9ae508a2e8401a4a045ede3c81bc0e711aeb020b51a05c95063330a6847c1aef28cdc5cbc99d210f3e20fc921cc5fa928c0ec270f5644b0c5e1604221f68ae6c940c6d168022fc55aea1832c81cf76d22a4e2d4dbcc7adf8535c667d46613fbf8220385f4d0c828632a7f1a03a2b97a5e462349e44b70ee01996d5981dbc2046b79bb6676b1d2a070c2cd90bc44f9ca2e054eaec76e87bb39cc89547b02ff014e1a3fcbab61ad69869dff5dd0357d32319051cc768519acb5aeb6a0f7058fe24e871219a464cafaf2ea20ece487f065748a9366574adcaa2006b2335d236471b2bd20d8aad00135b350da813beaa7d9aaf477eb61ffb5dffffa9f2dffdaefaa4d5a99a5cb7078f8e87ea865528de8e49203a944ddbffd97f597a9b5dc80795acb56bffce7a36eedd14b702f6bfc6be5a8eb24de776be4dbb1ca66ad1346e87e9bba190177ee754fe392728a7282f71715f34da856606b667b76a01d84b73708ca26acefc7e776d9e07a1ab70d98b29459b163a5a98e4713808f6efe9668ae4090bf6c24f28c6a46796bfab91c3715b801c0405f6a82bc7664ef01f87fa8cc645c20cb1e39fba763aded143e8a91acb78e37e807fb8f476167bf00e75813330a1c085125d61bccaf77658eec865e67d63b65706e2001862081e02d9996aa1eaace9cee6714b396069618bb76f49d53ae64c38bb3492b83d4d2327133ed2da7682856a51751e224b1b77d53f75eb0f9b285f1b95d147b657eadbd475bf5e45a605ec6e8848ec6c803868548ef1e95daac612d0b1d61d396ba2577157fecf2fc390e004130b239172bc3e5cb3369fad17476a7bfd0b8c2d8554eadaf60fb04749cdaae85724ed0ebe8b36f23a4d5591f5f68d14296770c0f8a2d3e295ff1a232ebb0fee7b809ae3e5455a526f9c40c10a4dffe5f0a760e763d463cc63a8c2bab928ec7a901aa81620e2bc6a6b686d94b2360a10b3c6efd7c320a5d037f22ae9ee1c5806122ec4303269585cfd0fd78b4df01107562f918c99dc849c1bfb99ee83f6e8a0b6a9debe5d5e9200593413c7414ba9127f0249451e34b4d0a5f75ef06a41de698cbdeed15ca9265f9a34568e8b83c0cc18d745058868fc8124d4e175ea84c317689e977f6e13c23918a719cadd0695a629b6d5145ec18eb797e064e9458c5773a3d83f5f73a9e58086ba588952cf7963fa4ae57ddda3ecee7b11811ef6eb57dc2bcc7f111a95c4dbe8a8297eab33019a8c815d8e6d826099649f2cc771c525c3e02b05b41b3fae2455a6767e224f8b38610d415a2496a49a660f8bfb850b172d429a2a6e88cc3eea85f5bb05ca62befb8e92603a5b9440cc52eedcb83ec9ad346fbd8be8234900f03c0cfcaf7dd2f8f8286bd94853d25b7ac0c8a45e5f2ddd867464cfcfd1105fac75f18dbf629f5e15f54258e2e9883de4e7297e306b5cfae4ea97ba54124ad4c9673f059bf881be907203462d5d2a79c14cab32d73d4bf5a4e5af60ad8e83f1a55973364db9052d7630ca9a9020fcd0b8385f50de3324fc3031c9ed92b5c688d4427545044a48de2c74e30f35c1662de50520e437e3f8b985e1331ac067b1849b3e81bf913b3e79ea2f03cf8bdaada35b398e01b463c2f7b530b5ce7ab4682476cedcfceb5a9fd93c49368ac61a026b9c6dc7718f27f28465adb6e203a6763792ec016aab91dcf77f2f461d5d571fcb230d2039e26315f350b9bc26251ee5a553ee29e39056c1786ac288768cb1e883dadc69a330094ddec257be1eadc22709d0366200fdada2388288568ad0cab4e9a456912ddb4b9c321d4c38e9ecf9a65a52b9940b76ba3d00a435a1816d093cf6d4d39bf2abbc4f1c588815d138f7fdc4d94b2e5d27dda7737f816429ebec5adab48750394df1fe177bebc6f169d73d7597c94c075d66f235174eebe595721a31004a165fd1bceae4245024265ccdc7e172059f0a0ad6632e441e2312f989b0d06831d0a32cf8b9f205ebf033745e905c868c60cb45ac68d631dc77c06a996a5a11fec249b4dad64163f91cc714afddeea1381b20c8c99d79ddeff1478112b4161554cd13a7e2ee9399bf1e5926dfd26cc692181f7060965b9da590e59816ab5efec57c6ba44d573893d7fc9197765a67ab05adc2c1733fc998e41aff4e2bf5d04fafc95f2f2158b653cfe309d8e141233ae0c69760e902364a35e04106ffc5d3fbde833c32c39f15701761935ffe970413286bed97290ca7011824ed673d4a72ec11bab17722618b92419d5f24b7a0ed093c0a67d44f50d963ab2d15dd73e8777d3da6612f6fdee0f78e2f5f24b1efe8a146d6662aeb3bc1e6a2359117060ac801aae8326e6362fef1ce643be2077c1696808580ce4e283d578dac9387325e553add1bf4ac1beaa3668d1325e119bf3b58432a089b72fa15546b93a1e526c9c7e2540bb5457f017f4f91577f2b65308788eb0adc8f638db3d295e0baac2471d4261117b9fa38947b39abce1dcd73b00f7d8ba3bb4c44ca3c97f42a0b9cb59b8725ef8d0d6e3fb563c7d3306758d8b458c26d3bd998dd8f35c084156736f04c4475d3089eaaed9ea02d9a5d2e623a47ac9567b8d6ddbecb0e3d2f353043ccda099fa410189aab6d35b7e2387d0373296c6afb9909a9ee668750ef6af64e87e6a39e15990e8e2657da40f5f0dd59b9b093674b46b52f2be82e1249ec5225196ec564401a95ba196075bbdb87e804df2984e5db12e6c5baedd4ee0f74065cb8e7b3561053f9b6a6d20bae10bafbaa9cd8ddf525b3ba64cce032247d5559c96e9913cb7cfe59fe3df7adb27d9c1174eee397d8f9f6342b6884a747966b1909be9e9a909305987317d2ccf5c98b918f80c1c186b1021edcef416ec0e31e57fa534eec6753f886d83ae7dfb7f846daad2bf25829336b255e2f55564977fb2f3fcff1a28356d7505618473fd0574f00818121669fc3df2539fd39a07242918ac093019a0d4d78b8f8b0659c29bee7e54669fa24fba84b651d6bfd511fbd98a427af56dfa3470f45304f7e923e1a4d6339cc4252039d99b95b86540507dc95b963cd044ed3d1a66850cf855da35002af1a5210dcb40f83b66aa89aec375773d5293dceb9a5dc90621278ede47c6a4997b02d2818ba39156c6457198e8e40d01b6e0464be0e791af61163b8ed0314246742f9db54f9fed5c886b63b7f3eeaf969ee04e4b97e620c0d4d75a575056b75821ea3f51007a1b265b3868f3b511dcc3ea83047365359c204abe76fef651d1fde156a8467af41225df2b6b50d22a0f14060ceb109634de3b3735f685698d7337afde99c446f3526d2ec84a4e2e00c3f911cced7c17758042ed096e8d5280399ed2e385ec8fa2512f76f2dddc90ef82154a82de782ca88c0e95495630f32d5b1e30610ced5b80446b7ed2c77d706675e82126daa5e8e7b0f35717814e0e7aced25650f5e2b41cd43a2fd0f23177196941e2e13d54c67c7e4d200cc8de50ec2536c31032c8be617cb59d9d38641d01049621242ac59ee366234be72abe6812366b9d4434f69287ce48fdfd695eff71469529b5b7d542fd326ffca1ea9b4ab05f676b921c54e3ec306951159c6198c4c8570e7b594432bbe8479295a5f0e1161c3e2d261ce9f94eabf91958c46cb8cd23cebd95fa62757dda704421fe98dc6e0019b15cacfbc47f68bca35369313c78992c599f5da241b54f703630134aff4201d44fabd0785a993c3b7dfdd116b5fc326ea1185f2fb55ce3b703ae53c8c5a3d5652ffeaaa1ac38bcc4e268f90f14d358f0471822fdad39a54dc5c49fb01c9af14fb24053a68ce05f694bf29cd27dc404748abccfbeadc9585e0c11e3d8fa67e04336f93224fb999aa77054266072c89f201f7c179c2a8e3a7b84631f5646cbb5b676accfc97a732e2f07691d7a6b0d9ebec516473ace37ac7602a20becd2751e151a082f8b46ec1fdb134f763e9b15c5accf68d59272e7ff7a291e69348f9228fe023214b2718bf76ea85080f15c82147b4eb3545579e6b675804f40571987ae9aa09b8b0e0657f0c435431088b68f46cc476c42c093b0d0397efd46315cec665d8ea18524a485359d1ad6429495282bcd3a377bff2824d27a4226ba6a9f8a97aac6403a2b2667bf99a445d6b4d1ed2ceb0c0d79837e4cc354c51b6179c88583326976103c49aeaad3aef6d716eb909c028e13bbee0454d11ae942cfbee84476042aa944a4e74d8245d28e28ebee1842cfb5d5e98df7eeccca0e7a2b8e0042bbf7844d16b1db52352168ceee718ab3b4a3f4f01db69db2e1899abc54b5ab744b4fd138ce8cfd48481835e31900afe78588315a30cf89dd9315b2321fa515f026f2b49f6cd9f7c908cc904c3c8e315e1df1cd542a0f4789d6bd5f8b9914e50ec93361a8a56d90c8ade4189d6bf5f01c87cb5f334d33517918836b635b2bdf5e3c5fb3fa7804a150630941aea73fb25d82d1d9c07c1b0947b80b24d93e2dd4bb2a844763f2c4fe05c248e89879cc6b80861d03f775f7000ef716f9073759364e6365cff92913de6ec32c5cd94ba3347e4386d0f7354bfe132cdc3b9f17d9de603852b20fd22df552d86728034b22e301fc4888231d89faefe0146e30b57468a014c61a3d02b529290ba836036908b277e21f2d554152155043a2d8f9b7fd99d17d5575344be28b136a78ece175db1b50cca76851fb9ddb64aea2920deccde82de2086826fc2d9ff6f9a3152941f3fb4a37ba8d7b8a5f32658452c5f8d35592dbd634a865638a1790fb46c15c6704bd4bf7dfa5181f810ed2cd885f787b70da9a731c53707ffbc528d47ac65d643c91aa83ac93f77d6c6c80ddc72fa091a25942df34d73c5b28b71f96f8f353ec38e5ce466842fabb02e671e075f5a758e519ed87dc29b477473f0bd3ff19a966575c603314175c4f212f0cbe52871aa71ff0edbe9941303ab9e9e31365e4ff99b0c57b3336fa8954d387a07073e7af0affe3c0eff03c588148d7efae4ea32f1bb626424244823c10f19935085a9156e8d801841d35b9ff1b22f4640ef53c4fa067a15c376d7856d3e60bb8fb615c731d53ba2d67375105b6cc6e1aecc6aad94f119e33c7424310a60b6e7c00c5177cab0076fb4b4ed8f736dfeee48fa1536e00bcf21d7781ecf232bfeff6d711df36faa432b817eb41417a1e03e0a8396ced12d1670155868c9488bf360f9a5f069bb9bf1113336a79dfbcef7595a0a5886f1c8e148b01e05cffdad3b5ab872d3eeef8a7c75ee17e2ab6d33b6fa4ec24b94ab81e276dbac3553c20959b2ddaebcfad2b8c53b349f55c21ca28a8fbef7b1d430723e98dce28b0e2591a222346b9cea1461375d6056f6edf78545ba221e4142e7b8aca3f1595579e88351d5a8c9ca7d49ef4a6878a78e371a5066d24a85cc816a343d5e87e304553790f5eba54bb55870aa26ff4988d332c727aa63de22e8571c8f6ee4bf482f24e93523fb3ca174820d19b557d91bde7477edbcaaaf198a2f45fc9626490405add69dfc8c21436ce8d19fdeba1fa39516f5e23d19dee85595c4480e6783f0ef7c3e57499a736134dad31c5c041a57e634888a61d9c86c10be5121fabef723215f39ad2d185af1d58c5781ef292706db6f338f5a43d11bb7fd4bb017971e7668ea3e8636686de3cf9627acadadb68ed06e00c85b66ed28d84f1bf55f327666a4f4b9ff5ae4f1cc73757d066b2a479103585ca875850a7614d02077ee23e95f7618ad37c959e28de7087aa54aceb4f3a95b84afc9963f802744373624d08492ac3567f6cf87cabd80132ef2e5dad70fa32902a98ec3cfaf6c8fc3fa9af67fddffee472afba271e93dbf321a812473a78a7638d028edfcb59c3d55671f259183592b946785d454ebd818d2ca469672f7a37bff282924aae268fbd66d923f95a3d1965ade94b9f1e84c8ebff893ac7984a376519f5f30ce9bad1c4f0a45fd85affc1f687856e1e0beb17560b6f2fac17ad72807c04b0cb660301530651b6ac05beb794c11ee51c0e5fd85a45a81a449bb8f55a41c20651703410039bf86669bc0759a6efa5e02ee19975a6e7a29e551f0ef4734ac3c1ff3ff201de6c82f244ea8073f313d0461125099f58b7638882d43874c36bb7cd04722c74d7147fdac26432966274deccd7ac062393fa0a1725f8d22349a3cf54394d970966229fd5a10bc6cd2581c701d4413436f56367016091f4fd4cc8dc8f729ee75a2b06c985d6a673e8a96c3a91755f722c2d4bcb5ffa874ed85d4ff849e4f7dfe3f717864392e86525adf3003fa28ae98c42a718f4a297604a57db71b9e33678ee019ccd64566d71050d48df1f5695625e7fedcb3293e19bf1497b6dd93ae98d41a50261a2ef4716b403d5016ad5bff450586c9576114811fb93e2015cbd5dacf284a854672a7a003419d266bbb15cf9ad96b1520cc4ff57bfb3d0ac1c85d122668bfa247e6a3ba5c2ed732d22c8ec5a5844b2f44d8594a4b49766db2c2cc187edc68cdcf3118322226e24460ff73e68909b836fb0700951f925d07c9237d99c7aa1142cf4e4453330d8e07fbabd9d3c2d0d405cc6d6243efcd8a3e5709709c9f9c37660a0ed06d3c0958517196af2304277ea55e3532f5f573525cc4c7efa86ba13b869394716222054f0b089f0efa4ebc01eefb1c40ad870073ad5c6402aa584a22f91ed7e3ce6a310860929552b2d3246756fef45a362a76d15bdf1aacfe254ee4cb62232d521880a32490bd04a16458483415237ed529d94513c2d8016088064f56f59835a32728e0ad7950963816333aee612150a3a7b377c352c10b87fbf1745b68aaad73f726418354faea1a28f5c4e224fef026d192ca10d8ab77bc0c32ae97b09f44596ab741a2e85db3e179c3ec05e6d9180c8a865a4691a11bbc830d29de43142f377fe09943728c97a79d244a77c36a860e52a408dbfe624896526e0a28ba79fde171e892547890319c1185b292d679bd749a8597db2cdfeb78e0611e372890c2f732d96b1684e6d72c49b6703d6e6415b40fc7d7cbd0c0838a169b18aedcf289262b02ce95d2ff378cf56c0d72339e1718958be4d0ece0df4091f064c0a28a1e5bcb7751ecbcbfc0a26cbda74c2b2a2e87d1f56f3652cdb4dd7bda87db2f172192608f117e80ffdcb124a6dd19f024a2be35b01fa1cd49fefae6f90eecebaf6e45ff6551a5440cfe33fa88442a6938ea9f5567f97fffcc3151de8d1120d637d7af1f59307eb72576c35ca7716cbf294969474ddf8ee3ff40211dfe4049e2eb2361b18c6ec45f0023128faa920f4b4cbcf37c961c7cd2426cec03558940cddd6ddc016741f5cd45e83bdd1e96b0bc0a3a5034fc01035927e5635dc041ed106dc43acf1438272b12fafd0bf3e3d3d261405e2e3b920d98f440ba9312edd152d6230c4503304a4075f79c4afda5ad8264b335d3943eaf0126bbc032408a4062a1bbf06e6759c1f4f5d483a074a07a99b70b7e4d4eb30a2fe9477af6e574989d3085a4e1b74b896f0a97e526749aeb8113d50c6f30b4743ba0760e31bfd52f60352a77f82d2a5c7aa0dceb5d7e566507c87c6562090966896324460630a3caec373b6a0a4ad8858299393c94f61a17a73670f445297a0e167cfefbd5bd31c12214b66f67503e5a974861dea6a3ca293d538b1fcfe5dc9a88e9d42a329354382e7adc82c3c79d7f12f620cd56318d89a228d785fc163080fadebc83e8fd0d0d4e6c5a95f2f9f57e2a602abc10b2070c1e549808b09ac85d0e4003b6faefcf55bcc3bc8a7d75784c8c37aedc4a1925f56187ad77c2d28d484b2aefd2db7e4c9bc0aa37bca58f0dba3c9fc6aa8bbe6e1c2d083efbc3234691da6c5477ec66d62af522bdbee1dfe8056fb0b10dc4ddf4348d30b8942575f357b607f6a4fa835124d37c6365bbbe2df7b1f8db54e616c7f92ded1f51f9b73f7e0fb2b8757d58b325abe11b3a3ccca33ad1f8badb8aeefc401740ad06d059f9ca3158a512608b13b64acdb8e6c26d7bf10ca2775e024d4e37babfbab77cd09f507598bb9872664cd2b0904448314622a4d5e268496dff3b46341404f5ae150069dc4494d502582b3d5ecca726e0c5270b0f125e8d4e33c8663c7b34d96626e1d7d5e2d305b272317500fa9fcaaa973160f883b9c297ffbee24548c5773e84c0e63a2e6dff57ebe37170e505ecb13000293dfb5aa55bd98ec6015f2cd965b49e8b0996b371a79dac8a402c64b22a4683ae5d325a332b1fb1858eba5adef7bedbec8abc3d2552854a295fc4ddc1ab56fe91925491f8a091a29353e78aa5ffb123d48ef897659f46d229a675648eef1e3d328b82f750c5d16bf3bc875f4a1f1d6be224d4c6fec1a73e0a89583f6ff021d8d2ea50cbabc5eab9ffc8d1511b4a97fb96c48e9978be10914b765fe12c982789b734488d19f0c686eda00c709e6d39907b2599cc795d1182a6eacd0f03faba8fa5eb66caae03b751cb42186cff351f8207211cfc7c79dcc1f5a6ba585133a9257d059bb685adefe7fe99e6f9c053ea040cd8716641f2c6c8f7f390d9739c8803dd774b97687907bd8341fb7dcbc94173bbfda77ea1b3ca374a6191557ee82ff5018fcefd6e947cd36b91f20b33d44cab9d9a014fb98806c940f74e9cd32f377e54f4f2d1177f2d356587f7b44ee9377b03d275ab86e73bd079653140d3a6808e56c6772caa33dffb45904c26fb2fb51dcb342e346d7c514b5252f49c17efae46e3e79201e754b9e9e036c79722877ac687f40b284800d1829b91282efe86a7ccf2b86b9b55b0c891a442520ae4e3c03e5eda1d07f4ce693a34b3b03574d8163054bf9fe4b4be7c10c7de6bd6f35cc391283d2d057ac76c71670c43b241cdec5e0f62be825bd4295400f9a18a0fb345c9b252334c473a4fb33219eda54c9cd92961becec0906287f514251d1a9f870bba2220e00e1a0d2df8d5d48eac8eb8d75883c9c649280233a0b3f8165bddbb5de0dcfd156b8ec744154f7359e2b667a0cfb26614b3eafe2c0b67015cd521a48a4c781b6a1c75ee76bda2b7571ab28b33c225d518d794c256819e2ccee025d4629f93b0a8fe5defc91115fde264939753f9e3dda6ff77cdfaf90eb8e4135f4aba169d8f4f6000e1e7c1b3eb2ae6967d0727b37588e004e244c1ee862602c9a9eca9df9f11256b889fbcd3bab3fc38a11c4b891bfa61cba7c4b0cd06b24ab8025436675c55b82666627064d6d5b79b7d9e2737182c3bb951eef70ba5baf69064d4bb8dd5b5cfb209c79b3ab63b9eb4bd63c53ce8c45ca1c29a74313404287a1351a943db80fd098d07aeb4b865c4fcf88008fa84592b5642849ba786681769c6333965e6391315e581b75adc26339d24d154adf6f989e014cdf097f256631dc3e9ddae0f165438a738ea5b46269e510e7642f294a4b49d2c7810f1684daee80663be22e3827764ff50aa0b9e606a7be35062b29fceea4dbfee46d447658d5bec9642f1269b7b55d5942ec067a5041fdc8812ba66e1e95dbd7bb9ed16c6c631e7fcaf36bdb447e98af3b0b4b31888c59e0963630ab937f509ce1e79ea2fe0170111d61fa0d41eb850fe2ed1a7b1b47cd7010a09fc263d93d97d07f53f70fd23bbd7ca479836e258c96cba79a5ba356fc9646833c96d3045cc7fb6c6c5f00e1cd953b760b5c723fb969759c70e5538cf57699eb168c7cfbe2fb08950a52750e3640db479c1ac08417afd77ccf8f3510d200bb01035e1ebdf5450f23c952516a9e994b573dfb9fb82dcbfe6c66adeb695c489b922fc5bc2700b84fdff2f0aeeb27ff8887745fa2fe7fa256d6124b0c08d74e633880f49281f26d46cd1c88b0bdcc24ee07e8c2ef3f66a17e96647dac44b1269496d0eb5840660ab5ea13f74072437306f425e47d09b5ca6ff88ab1e3b83171e3aed341a9b4c1cdb86c92220eee6ef3a171f63eb81aed0815d1c1516345f7b54d0cd59eb259d3f16f77cc3039e98878e24c431f6b481f68087ec01ab1f056c1ee584670a418ed2767738c021761d97519abcaaf69a12061d3b89419ee339a2d2f4b90951a43733f56eb5ee94541ae52c8f259aad4cc937f65eaf18024223738cc3b57c0dae865bf65b217d09e5d576cb9923b293fcf2ed4d83af41bf8f5f89ac1172e87d3d1929badc9b98433f8585614de9f052f95fbf88f2f3b511bbed5b54603b75585da9a2ec473de597d51d1c23c6604d4880cfd5b15108cf08a29f0eebc5165444be53ee16d5279a6fb306cbc845ca15086013fef6d0c4f706b910659cd25d496001430b29556522c80b437010e0e1c3d96a15db2aec7ed844015bd6d88442e4bbd28968f97a93b9b317f08b3a375e2a35b928e843bb61a34c4f049dd04d2d72dad33522bfb3a099d74430fa8b48dac74cbc505adad24fe880e1ddd3fc2527e93656e504958f1bf5edb3dd34ce487cbb7f20687baeb4f0219246d04d96b1c178bbe56977fdb9d62743079e70cf90eb4fe57f51cd21d0cbff0a94cddb1f752f2d4ba341115b82e33d3a813102df996751c9e49b1eb912934bc4ec6321da197e14396ff1f376f4242fc872177a530a126c291c45bda008ff296f57aaed4cc224a2cfe389f4fb80fdf3f7f9e1cd05d2bd9f39d8831f258dde610fe5814bc26e58a1c81fe141fa35d9e56410d3b7d156d56edea2c3ad390b3c467b276521cb71d8e2d6604b7b678796b4c1e99c2e19b129ce34a03cd4f34dbadadff73f46baf424f71d6edc1a9aa70f9853a25f7842f8bc030921d1250de18acb3c8d0966258c51b2b6d27badd06f464b743d3ee5359fd9925f051b256401a0dce3e21aee69dce5ea2de85592a8d8f4cc12f424afdfe0080ceeeed23b7b1dfc85fe6e7b7e234e7ee104b173e2a60284d72ed39ad5b13cba179f43fb83f9e5408d07299e0ab8d21e032e8383b0b3ceab805faab80d2003ae5a1200794926eedf8e4fe048e9ceb8694494821c089b063d774d4a9f0726f274e3195a049672dc8e9379e29f90d1902c2894eb06f38d15d8e33613075cbfe196a83b339bacef2ae100fcf18fa06f21f59f7c2d53529f5092076bd3c26d6e80323f325bdf14d277296ea48c102b1c6ca05914d5498848cfcb51d4f54f6cb51f285a6da20abaf66504291182f8de8fc115b911477ec7e4d3b7cc6800ce6da09021d28fbc62ac580d2f7f36da5ed743e69fb1a34a8e5a34c4596eb662f7473b1009efeef256479cfb8a35db0bc256f74696eee863585fdbb1f8116094f5681744c16b15a7b1d986c471ee1c836fa22f3d483f76feb23fe2724b9c9a832a72c946303542a587708222baa3e977e587b0635c06d567eea8344adf12af5349c06bc4ef35e846cf101ea710c3841429d307fb1581029aabe223207b3d7c6b585d1a2734982e65c97e8afb85ed05ec4a22035e3217eed5d12ce14a81bef4d3761276d3bcc76f1ba6ad1fb174d5d9c0930f37865088fd0dad3b08e7916d9ae67e702575df25b9590f15d5a120383f9b13a179a014b888207f0013c0ef250a4ce0af505b00d24e478375cbe0b17aca2f8d4966b1790e5be20dace2c86928704a4b3923e509212575a807c33a6d04e295f78bdb4903de37f9f73f3a24cba60f64078252feb45e69e005aea3464c0a424e10807d4bc1055186da1243bd130dbb450fa88fabb43bf9c4c883f50557227b99b70b33bd5711d1a091620870fb225f054ce315a716dce73f820e6715619f701e11a2a6af7c6d55a01d6ffac1812e79b08972200d6bd1f9c1066c4c6d0c68d8e0a2bec8319ee36b37f79f6e2a8cd6992aff237218856c2b52d9101ab233b6c087ec1f4a55a2731a5edce41aebd4a2e55b83fad0eee6ba2ba0cc0eea141eee06f430fa2443f3ce5a0c60da9c78ac9c98afc9b9837d2a34dce6c366fbc31e87df266cf81160492c97c4c639f3724fc27fe23f55d865f993d49ebd9b30eb81d15278afe61081e5e732eef9c2042ed3b47a216756a0f9659ddd0092988d44e93fba1d5e4ee42f2d6800009c1e16caea460178c250b147b78c77580ffdbd387abc4700042295ffda0ac97a872d56dc06599c8eb4626338facc55265e128f8f7f7c7ee3c0d3edf03473cab342da54a791bd6ab9e69313bae91edc12d7f974b060b7b5db81d6fce6fa6d346f32c884e349b69b56139ba3fdffbea7b0b424037310a098148397952bffc3aa4a952bbf17fef9f67c4d36f8c2c240050f4bc6767f5502a7e7d372cf039bc0c7f791acbf812a1854fa1fca7bb59cc5791cafbd2a3f8eefb542d702845471e59646e276a68e3b7e23a21d6d99d8d5ed39d9f766235dd2f86a5efa6fd55631411800e57e78e37658e4ebbcde43047d62b15983df85d6938ec2c41b13a45c4b23c29020949cf5cc06ace198296f71541ffd98e98b1c9b21408da75cd218a5c972fc8280105f3315e4a75e71da955613b4721b8719d5bdadbfed86561d1d41bfc2a3c9d7d270bc76ac919d84c632948e8c1561c9c84335b9c1da27ef52e107ff5a87da71ba65aaffe53b171c5548719aef2228a7881b2c0709a1da44a8589b0cd0ee98bc0835e9ac4c0cb16621dc67b7cc877fee4eb8e1793261116d5dba7c79710f1055e5bd9f64697d3bfa927701dca066a95224981a7b1e8d46ff29003120ca98fd00c03b28a5299c4096bca6c3edb297cd638edc20d2276d33a6506a75efa9292c5f73d698ea838a22026a7a2cbba8237cda5ccc5409b29c5631b6fb8337b5d79d58da14dc0cf3fd8920c709bf88fdcaffe062514dc5fb8bcae0adfb67ab41aa869c01615918d9bf249273eb1f83337e8044507a88af8bfd6be5e97462885d1f17b13d8f2d63a82db48127bd41a8b1e6f5b7b1f8abd60089504f24b65e9539a616633551f3e007b86b7347a1a1f91fdce9921aa155a6891c8de4a1d476ecd2244e9e5fbe1bf705679f31e6bc9309bcef0ab69df07bd8c6744c9aa52588c0a573c2f88ad4d653d354c230bdb79f3590e28e7f06835e026aa635aa48c3d79066debe7ac4f38b896d2ab504953fed1fb02b65f9b59c069f7198227ef00fc77c3ba6af6d5a5ee27017ae64c17086c0399d7539aba3a157b97e8726ecc82b98a9b37fcc3bc7be59937b33b86090bf0671be1e46bac49daf976283e47c3e7e42ecc61393aa079e7220db24d08707a5f25266baf64007bc170badee35b6713457297c7e11fa3ef0662fba7e944537f5a8353b8e5a0823d20444b60121a401bcf51c71d000b39286724f105293a4f2effc3af515670dbcd5a74e59471f1a5948d07c628eaf2dd79aaba822482f2a77d93c3e4e7f0a7cb65fce985620b466df5040a6ff32bc1bfd466b2fd3171e9dab7c0effaf2d0e0a272d5323204053730a0f6b4ac9a69f9e2f0d46ac5e0e37ad48a55b1ba536c9dbfda21e41a32d978a550576ca76cd07b53951949a398f9156a8a54eaa51e6a25c6545b7057ec4c73e8d73cb3562fb010919da8a1ffa8ef319fad25e8a403a65b5d13e62c5f0b4b02ab6e26e1cc777f5689b55e39b0316906483046db4a2645fcae8ddd348c601c886119c61a734006e7583d2149af6c415c16419f025b64d58ebbd1470965f83a4cc673117a96f45b64df8461c1bbe4a0dac157131346a0e519f57f81a730a64c4e2cef4f997256c4245f307d58371ed87256a72995a7f761736194399fccba6a38a967cffa43d8ceaebf553e1ac28081e5a7e050cd65088a80975d580ffd29b220be3244d604932f5f291c922d74d873dfd5517559f2ef962993f2fb9ead76b3c51c38aec9d92e0f1b833edc286ef6dc82e5619a596aeb609e916f68b82ca910d013d13908c888963862fa9cb86124e030602811df2a35c96cd947645b54f5e2a31de666730da173bc548c74f970ad5d31b8b476d417cbedb116e1c6533bc7545cae1ed03b460e621bdc97823886e404faed8697d989963f89c33fb5dad6a4d26c5d8574d411846949ec9d024c252df9837a1672db3e10699042648e7d886b3efc017198654cafccbe66d4714811398109213c71f2422140b356fdedc9fa845b6abdde85fbbb8c17a66cb39fd3f1e66d103569296e019311f1921bbaf1ae5f76677454020b28cc254758a672e1ad8d57fcbd2d55fbbf0b3db6b8b8166384d92fd149ae0d4d0091e6b1c9974c222f5886808e321d2a0a525ff1dd6f62d362c300b30914c98ba886c56410569b8f452b4ee17ea0cd9a584c652f950847948bac28c64464ae6c00932311c90329cfdaea24ac25cae113c0608cd6b94bab317628a11e98d6500edc36f6282ab1fbf445f3198d08025f71c911184a462c97ef229a131e75a6e6221711238d0586400b18a5135e6ea111fbe783d706c330785d74b7254fc82f546453c80517bd099250f3c8970b7e11886603a9afe647870d9b8893dc79c1dd43bac2212da97f03ac35a117187f7d663ec0c6b6a7396f220e89a559523531ba5c62bce9493da2f28b50b3739f5971720420f01a51c78e5daf67077e305167647199169c8b0e13926276ad5211133aefe23c3a37454dc8e8435d974e0132e895dd668b5e17fce685d2d2b14fffcbb33b467c374b7536a0ea95e1aa11f5366b4cee54aaf08e57907d8ecd75ebce3cdf37ab8ce5580d48fd2f5e7046681cf806b46591c72dba4cda60954c1a2d787345b8d43f306968414b4bdc29908be912938b460f991e97e0cd8426382d5e0218820b074d398f347b92475ac98e6e3e5e101ca4eb91a3718134d3d055331fe8ef6f7a6c21597464b8d38370f58eccef19d2481ad3e84beb5dbb69577ad3a6acf93ecb98b51ff72e6e2dc437288ccb49b0e7c92620564eac6ceb94a4308d1f2d4cbaa36020b910d4f0e43797ac5559cc0d18efde3a05f1c40aaf641c5a64277a1cf20ef289043e21a5860e07a161ce2ba0272867c1ce829c50976c246c2996fb517dbb7dfc8b67092cd672395c08eb538e5d233a06f92daa3d9bbf8a58d1f63ce556ce9ff4b4468d3d84d0f6a0c7d9862a4d1cf5078756a9e3e67758ed55f72f56f01e2884bee32c3cab8175ae1fee55160fd6b922dd20b86bc8aab413fcecddd5efb82dc29ca69d1c03cd05558b045d703cfd7effb6e61a5a5d773ef678c3993090ab00bcaac5b8a9064753ea83139919c752d0f7e7b05fb1c4f8a9e66b6907878ccd332edce8af9a2d464d60de795522fa4475603860344356a0fa572094096f96b59e62ed82ddce9c79e419106ffd84256449f96085cd6f69107b1b0aeca38100133af723fafa358424b16cb1b74d39a2d07fd7657854b564fd960687244df49d25797d4372f488b9734fd0a4cc438dd20b88f3447e6fa65d2d36b24b6d87952a63dc66e71ffea844f47e281cf11ee1bb04169e3b45d444c4fa35a7ffa43f8e173632d86cd2649b00617b5514654bd7cb9d1811637b8aac836decf9ef357285db3c944f0c5defd8ba15ab9a4cad89b79555dbc94a23ebe517f7c609fb979e4437776d7c3af1695ac0f69672ee3bd4073d71afbf9b927d7150b5afc72cc2392c639f1dfa631f06dfee4c3dcb7c3760b902c0544b6531fa068b6b7e6f35063f01cffc8744b3e446d71438adc999b4b3a21585bf51c7ec77067c1b73e2e235a3678050dc5eda31c8078ea0460460cd87008ba210a76ad3478de16e3172218bf81aabcd324e5c936ee06c51bb743448c8ed7209d6e43cc6eb7b869a722800f5a95dd28b6299a85857cf5f9de383ba52bd5a466da642c1af3cb8441d3e4224489e7f22450d77308b05ff955fe83fd4d4d5fcd7c29f94022318ad8d51b8246a0be006732c5db8dc892fe96e1524f9e5bdde61f589b8687b50f689d079714c1b8fe29d2a538dc49eeb884ba9853ca09379adb2924874b06c365b78fde4395bd78636b600853d10d41e644e084a08db5ce99c9a0810a0ebb1a7fb07ab08054bb759cdada77c473c1c593ebf6ed7c1b4f2ec10f225982d032a59e4cfb7e9102d45968391ca8bab8dc41688165f14bf089804de6c2f81396b35d77f0d3271f488ad01ee40aea6c5e199ec43ddf9119236f294eb52ac822372a69b2e61abbb6eea2e829107245928819b43b29ef3d1296d05127bb31dcdc454ef86caacda94699caeb845a5444ea6c956a129065de0bb7c1ee0f033e18b002ae3fb5019386a20c0a4342a69187b40fe223c54411b9f8cf370a92abd858d16094b413e8b5c104084b1d084bfa9d3710e36a82b26ed774e733d4117d3558b51afbe9fe48a32087ad6f33919329e03a85b97aabbf362c3c3118ce3dd0a69a98d6fadc618a74b0ac7abe33298cc1448be9c1b55880f765b40e0b34a0c437b6fa5a6b3c1fe7509ad6d0a4143321e2397c18b360d3b82038609f89a214c7e6b51dd3a53b8c99af8fce0d12cda48df591605af0fe1a302ee76ce18bd849683a2e88239bccf0d5c47b3f34edb685192c7b1381607d60d2d90f2562dc6044832ad6864eb0b10895a3c63b24672e7428414a70145cf18ca37ff47e7e85dfdab3971ca8e812b4852edebdb4632bd72398639ad88e8411b8811d178c3376ba391dcb3f3f9d776f8ac3afa50477b14ed86e5be5b1a996b6b3b798890a7fc0d66080b8e1e3c274903279f88c66c930f9ecd94640e5b989a2805f3329d64f132ea2a2fcf0efffea160783963d7a25f9044c7c885a5f1c8e84d5945bed720652122804d20302ff2d2a8cfde589c5bd31b6fb0cc13592b2bcb09d773e8d84856b0f6be675ef7f33df50b59871c72ec5408b8e45ee4ef16e894a76fec80256d2d27dbda2b77b0eaeac6a6a121e7e83975dd0ae20091a78f14ab1349900dd56453b02c150ac8f1901669e08815a32f2710fc79a68bdc2223469d65ca3dde6974a7a69efbcc0195035198bdf6d1fb890bb9a9ca295141e704705c5aaa611634fb2b08912afa34225ce296fb5bfc6abd6dd9e08adfc2d9ae91e2c0b8b6d630057911d14c980c22f51de93a4417506851ead6693b44d5ec2946de6e4a4e58ab5aeb13c8d090452b74d2ccdc5b12f98372a61ad314562509f7f92b70149d2b6e6f79212f399b91dedda66f60a258d577c9e1dda19015c01d43c955d7d064f2692f6fac7f39457975c79694ef33153e1ac810af4741d13b2d95f32e42c1a2280c41616f7f8eb9fe019f490191b5f69fd92c0fcd0d3e5d4272601f85cb1f7ded140e6274cb6e186c990d31f6f32aba35dacabae401f3572d6584072ced9c4d8601b97cb5b5c8da9fc1de8b29e65055d7b2a76883610fe9dcdc4bc672cbedbe4b60180c4d00a5b14d40bc4c51f2cd2e19d65b9f8331bc79b83ce1c266ba54bed940d9b5e539f8b5990813f473d5f6caa5391f15c7520293ed79d87deff385753b54b055fcc88b1f7eb50f43defad9d65e83ffd79a3205235e3952c1260c0f42188928184e5d833104553c27c94ff28d3a1a9a1840bac83ad7cddba0e521f4f1053e0f697e967ce6dd7344c677e1b406ecdbb06ba9fc0923d7704e87a201a45545f3bec0c668112dbc0217ac680f70fe8e8aa388842516925087beef202f3ea441ffa1432303ae1c8c9c5f6acf76331726f22a7461ebf85dce2210ab54dcc03cd756cbdf1af42f4442c75b06bf56736d91534a77e0b2478f0e8b2fd5d3a5b8bad891a5f2292c25640d3215b968a84236f7fd7f0c3476b673387238bb55b5f3290ce301467448de725ccf5ed175a42f1c5b5221e1dffdb8c3a1a6bff8a0e03d9e92d3c1aa0dcc8dac0e4082357ebe00d3aed6232fc69e7b52cf448a4a179c117ad790c52eb4df33773afacfa6a6cbbd74c60e40fc781c2c3e0ddbe4dadeeaeb7cc926ec4340d0c5abc6737375fd6fa23cf4b87feef8d912c4c2df6ce5ebe08388eed721957878a720f710be188a579bbdb55372a9e0bb27a41cb2e8080d1c14cac5d201fcc0ab403fa69d6c1ea9751daa1e9f925e6b1fdca7ec228c1229959594954c649ed06d6649a0da8e9a92368b2ff518f619294b74e0c323272d827abfbb1f99c2dc4c2e342665d8e2a929772e7ec9c91b87ba732cbeabca47703868a80efcc04046bedf81b41cdd99caa175713b59193e57124271c12d1263b3193f66a2ab3822dfda94cc4e26b091adae7834002440109b4951aadbf5f762987065ef1dca088aa17f932e48d41a4c39bb6d271b70d6b27f986340015e1db343f60f67ed54636a1e9a1e476165ff27bc3d9d1199bf972a7081f582c06bda55034de6b31096d80dcd4fce74b38579d6752afd9a1d1e8cbd7e2236159987335f67ec5415d36e5984a9e411f863d1cbd755b9428e727fd9865792bf145701e39a421931206573f047c2e3bb31ef57bbbd2f7235cba2d1203e6f7fa4fc2b025a55bc5e57f6ae3a98528e2824b5ff9b3c5714bb0025f204f09539c5680352942e31f86320a75e4a7ecaa6aa5476946d8388b9927ac0fa51b69871fc4d019d426757bcf96384bd686db7e3ed3f6b02006931969d7d5765301f9c2ad01de7aa56bfafa485971c25abed0c799fe1d7a4b9df85cb9bf48361044f9296f33337ba99322afd2eba3e5bba318cc0e8976648ff9495646680662373bac43a00972d0724895ae91806d723e1bd075a6e231de90661b4edd69ac0397b5ff7d3a613344d92444900c84b15d4431ccd290bcf8aaf6479e50c11d4b9739f22fa72c219f3508a9eaf3578eb74b3fc50d9465b14e61e0afafab1f25088c00f8137623561013dd31baf8529dc01873b06392f484bdeeacddcd7194ba89ca0e563200e2cef8e5950d51c4f3a9ad5188120146a65dad10115fabfabeff13260397d4422abb9dc3cf0725ffa3eac1bbeead184d6c9959dc7dcd7361e6b875f002f10e9d350f355dd5067b58ad54c3ca0f7e01eb4120e43ad7619b05ae285e6694fc1855bdad61723d94defeb52ebc2b51f103853c5623637ad83f0adafd793e497c6311939a0a5ad96acd284dc6683ae770b2242c0f6969945fb6d62385c120397f8e5ec9b70f7df363f48f879aec8c77209bf9cb252bafc889df941e91b62a4c68c22c6ccf6cdadd5decefab8dc2678bff33d38298286d277f3fb42bcaec6b55a4f54fc9ebf181d0f5de8aefeffb45d2d61daab34d602d74e6a5697f581b68fd1858ff4840d619182fdca44275ca55349b3d189ee1f051bc40662a351a23997c967458d624115b9461f3082d6801fab430b7dbce1fc38b3db1be3174d7e8ed25d697dbd7e5929486095381baabb24a25b78755200ab3629c6b10ffa3269f42c1cfb3ecb76a2d27b052cc62775e4c90a6ca580c4b8fc5b46a42fad6b0f21feeb56f4552fdf43a09c17818ff7c30a4cafc61292a0653db2efe0f3b3d60d5413905f8b9b9f379d744165727328ebe2d2bb13494fdb7293bd696f37e80b5b7a9e014967033e458cf74c8c18fd74384319a04d3ce78b6294182d59cdf2e666a759449f7bbb3dd6f3c4d0a82f34f49373a32b2d9f7b11774795e821fed995e28407971e636910dd12813d70fca01a99d16c081ebed611217706aa3098a5956356ea7fe3b5609a89a7420f1628ed52831be48aa5ab467eeab89fae2b5c2c9740a61ad11ab61bb60b3aa613075bdb7b6211f8104ac5d4585924a3446140d8905c331095435e42c736d66d920506c1ae5885c540d5e8fa252ec8c9533630bfa3cbbd3b1a24f34443b526a1ef1bf7d7277e04b60b89df5c614b9476dc99201c50c930d8d8801ebcf5d988ed7b005a9b9fe0d117912d36821fdb6b35e844caa5508078bfa888900fc80063c44df2294eb85959025b42f1ac470e8cce135d9fd58595166483a50cce194443eb649983d894ec50f1e04a9d7e658e169c14a5fca42c404ec3d303455f4abdd56123ab2d21a9decc2d349085b60033e649d6133b2c9bc930891b678369363742052f5bbd8a695ef39e68ffaa23293e5976a3135426a8af5c2705be1dc7edceb7f048ab4403928ca93af564a88fc00fad0efbf7257e37c1b64fb49c40657438717c9ee5e96660dd421b716ad1c85ab971a48e88bf8b730286fc7741d4129e941eed770c7fcc1d2d7ab3e93cee33878c6426431901cade39a5a5c90ec92deebe1c37872981364f74ed6b7fc83a2a2833ed287f4509651d9e00eb7dd67a7c86e87588979d8316b18554446e35053f661e228c9d3618072cffe8ac8c4cd8e1963ba44fc8deb9b782d24ef49f9a7ca89ef10ea94804113a28244b4f53edf9c6ae038dd56e8f17b2fd52bd5cca591b855b1306629d264c4b9423c4295114d03380d080431f0dd6cbbb115931367a2007ac516391c2c1eea539748ec76d8a185629789b6bb8adb5948d548b114056bd4b9632be7d4349be54df4a17a58e0720badbc979e36b9e24c863ebe70fa93cc97f7ed6ddd0cdc72014c7ea62070d1e1e440e3e9ea76878f882d6538aaa446da59c090bada55b17dc836dfad92e629b94c28c24339664a99f273d62fe323113398c273f372928af295b62ad39d5788ad12d519316b832e836597e106143f1bfd154d7aef0e7a7a0185bcd266a453c68d5f9bfc4fd45f1660f95a5456bbf302edcada935086191767b3fbabfa45e0e26b3432a76b4f1fc9c3b4814765c2edee0252819ca3324f10b2ff6a023aa6f5bc089d37e9e96dfe703b6055fb1d670f71e7ca81cd6b254f163509c4bdff39009e0c8da91d4d23c869e76722c411d8f13812d4bcbdfbfc2210df3c08965cbe6194d6066cb3cc045f5f10d0bb065e6f5c96241f38f23dae22a27327f9577f01ec9dec79c94546733abcd142f4448481d0cb21249ffece7b7f04de1a9e39b1716ba2563eec4409cce1673326273a8785ff306fa3c0350b3dbd299871c33ed8fa1a3e6eb1652e3f0b72d54c7bb007dff35025c6f90ceaf1093435606077ad3197295cedbfa855f2201f624b007171169a5dd281c4193e005b8f41b6538c92361c3ea145988d3cf597ae0376b04f2a234975bef2f7238565ae4e77dc4b1b56dc38f0a58ad7d07b2c14f8468846b230cbb41b2fa254863333ce44735387fd5fa34e4d0179c2923bfd9b6a9efed6093ba912845baf1b455f6ae519fd0c1152cc25cb55236403d63be29687002ef14434a2871d6fb0fd86d008acc80dcf74fe2f18ec7cff14f5056d69e963d640f758c8ddba045cc18214a27714222681f1276dee632c87e3b96b181c9d2a3a7386bf0094f58a7daa95dc71fd0e4af55dfeb997962941f4943db7981311978528daf5f0410fb70a496f7021162a384f43dde2e9fbd98be3c8c77fa23cc67d30b40dfc721706c658a3da8726d21036739a4196c843764f3ffff3ba1c8b7842ffef01d9f3af8ba4ed52ad7b6b9f2a65a292c80cd8f6f5c7f980bb4489a05c5f81f974155068fe75622e5bc9bf1dea3906a81c3e2088189d97b5bc5dfda607e1dfb08b3cc0e33f10165dbf95d8e0aaf9e6b0236d41ec1d748aaf122aaa62bdebfbd2a561d591997eaf3e9023e141584032eb839cb832925f5bf9de33f5bb9e32ddc8d6988547687e70d0765f9ba2797f51c4211034532468a5ed1ee32044797f7086c67b483d9804587a6d5610c4aa785055f5d6f7a0940be023850c8576c63196120fa6430413b6146eddbbd012f9c453cdbb3d529623b8f9bbd66057b8bfb88092643b8744216ec701ed63c50a194f5f44965720ea8d54c292bbf903594a1b63f2f65f5a566abb95b094c98f14e9d76cb09c7d62218fb825a907d11515e5736f8585bb9708ac5f0cab5b8b7a7e4170d2f6c8c8e00e18313648434bafddae6e25378efc19267dd2512110eaf972a302f9536399dff2e2fe06ac9ea992e614cdf027db53388c6dbe28b16a4ebc0ef3c962934611e42cd3d6563f8d93ba3cb4e617cf72f552e49e81c2a14fc04af80ad501d2e79a88b19a5f0ab2fb9682678122fafb979c6f5281ae61d74b6f391ba288dec40a5c61b673b8767473a25fd656809e501804e6aab78ccca8fe2ce868ae1b0ebe70c8f04559f07b61858c281da111920fa16f1c0147958f005dedd2c02918f9e99d11acad0d8c6fa1848aee40fe7a1657332254a11df80f741d4d7262e0e1f17e05ae0ff86905d70ff2b965974b75a0231ae685c7ad186e3a280aac8aba281bd98adac3e4e548f2adf79bddfacb50a6b3f5874ea5d00b382d9986d31ec5759ebc4a14d110043416ecfa91c954c66cbe268958eb88661cec3cbd483a8717a432380d9fe440521fd7d39b65d9c03abf0d72f8ae4637314a4b037878501b9764f2e19503a5fff952035d6ec3a1ca125206040e6014cb35c77b5da96655c182b98268458a160272886d775abbd4877fc475b1f04efeaa8b79fb377e0398a3a37a89b224c40f04bd738793d6410a910ec6e3c56bd7e068de7c62f61266471dfad373067f04be0ec737ccb31fad181b5d9d40518c61179c109df5207148d340c0c58cf4a5e0395bdeedfa50293cfdb236a4e30ce0d4d8085ee10842bd88dc99a5a163fd56b42b43f922219b3e8d545e5bc7d971131fa4a613fc311d5da9b50c3a91822e802080f1765575e1352463221f0884da05b2bc5774db4aaaf94f73f5970f752fce862cc54c7c012ba6eaad3393fd85c9ab03b763a91b447e83c68ce87f6c1e79838d03981e7f1d4ac6ab2250ef5004b040091507ae8fc78bcb7b0cb7424a60b195a1995b94bcb9f47b96d005803e33cd5ac4f2a9fdbdaa65d580509808221165f37039be5b8279aba8c130e8741935016db3c28f6c62316dc30c5b9b3ec0429a216ee8c9a8969d79f1a3fef587c648ad235c1a12fbea1f9620f9b2c135c2d8f415527bafb4b1bed71598a0b19d4048fbd2c78eb8a3f89daa5645d465491c6f674f97ba2faeff573b696120ae2b137726de03a1bf1ce4e838539130cf349690aab4fc9654cba1211d2aa1b39269e1a09f98a0bae04538d694b8a5bf159a4c3df4ac046e6cb02c3b804061d4d60ee18726a3343a6d833326977bea1fb71e2dc1a93c775e792c282644658ce9b8a55ba33230d78f0e9846a6047aee467fec7eda05addfac865f9390cbd2747f314a2d2e45eca669bda69923c768e4c1a6d75430ed6a0c3896bb5befc1664b10e5014985fe7f43f0c1e6872d6274218648e51d196b5691fd17f5e7e8098cab5c56b834d610c35313cf3b1da84d11a051916f18b190b144ae1de48f8f1e5b0f54db50891d6ac0ffe58a549f2e20c57f9b4aafd840b03ac252bc8b1f6c711e578d162e74752f9d740b162a0446b3248014a304c5f32ec3e8ff4df959588fcf484ff70438b4634d633364bb755fabde89b756f39ade66c15b9b85716f2916310a2982cfaa5a53c281a677a7d2aa0d6d246a9868e85553f101b0866d8d2ac5e0a81ae439b3d21fe808e3d1d92db9cdf3002d5f8b929401158652733e4d67321c934d92f2d1fd03593549abd44cef7ce56edcf8094fb2ff4ad81522ca40c6eef9205d78dc96132c26c8d7c3442bc88542e48004922cea433eac0feeb76cf32288052f774028d03a7787f8de7278e79caa7e2f36e2073146a8f7ecd290c91aef98e05bb6c1c0f2d50aba5c3cd716fc5103787a86af151c463b751647cac3721704b0278a062b0cd4d3b0e99f8b9a72ea29b571af695c17f70f25e5856fbb96c7cc5a0af0bd4c9de50739b5ba98d1f7ef013b3319c53aec0c1fcae63b2186b176e925c8e3e79885d3f52b12072438cb1c35b50b98d2dc9762246c32c76fec7736633e1a0f0d98c1ace2deac695382e18f24f0269e57c871b586d5cc7d282af3f62035e795606a797dfeafb7295416d772de5ed0c20b54a22e84151dac0a711b89fa7e0b019d415f693a802712538fb27b669643c15a2ce934f1ff703d7d65426a9ef2b189cbe15d436b3600ce5b3a77f442d20c514cd0b3404ca991404a9e4da26c4b3c470b2397fcac3ab1d1059b87320b6ff9793d1384acc6f067ba192ac13ea8abbb01dc77b2846cf981638de8d7a7a7709845299da6bb27f2b07861099a344816f9aa665d7bf5d6640e95778cf0f70efc4af0586a39511c91c2d6c3b0f8b23ff30dc0bbebcf23ae71d33f28a6c0ba8edce4fb754a82119bf75fa663879b304d8f8c15064adfefab98cb56e18740d719fedcc5225f95e7810d9eae876b29be3e9a38d03e39b8eeae561b1f7b38e49fa9f40d8370a14b297702d872042c4c6721a74f8c05892747e4adcd21c5f2dd1a7a7606c3c35d89d365cab33347109bac00b061f5dd9fe6db03a2a0e8e7a33020cddbe9dcfab2d498a19c365c894e5560b291b9503af5191d7dbee1d74f709237eba4e0e7f3133cbcdc73e9cca794ec6faa8855bc68981f1b248e5ab7a12d1f604cf21821e2c88cf29e8f0db755825f64f9bc6f24afabadb487244dbcf9e7da2b2e0b57e13c6cd9c3d9f1e0f9e62d64a367b39631a0e340fa9a9380263e5b04d95fd91584747050278ce2f233ba9d62bb16d955b1f90adb20c5765dc29e7c3753b86a37e203976253246c88fa5e4f3f4431006e3b2b7d119ebc6a1ae272f05f467d714542e77839fc73df10e9f0b3f51ef9db9d15faae6b47cb8ff89f87947badfdc441e0fb007e7a984eaa7ac4af021ef381fa9795a2118f3a0b907b98f42c87c5dc066f4ded6e942d10b6df6e1a9f6006f0d793d573ca37b0872ca41cd41d9a1b583835e15347e37e3f7d416642caea2488417f4acf4a1a35b03982cbaa3173ed7ac3a7201bf50e313ce525f46724447a8c02673d77d3d578b7bf513b208807e9a8efa39f7f1f5a092934e5f73d99272ca53ee9bbc11f86a6d2efdfc4974fa446ecfeaa9c907d380f6de563036eda8d705e9aba5217a4d8c7b8c0bd679f6716b1755ec143b07ce940348e82b016aa9c1ba9f37727761c1b45299b79c280d333cd1467d36e18375179edd1f5a945f544cf58aac6b8f06a1d8a6416b252b5fc301dc0adc15853ba89f2ca6678c681be99a5a57805aa2ac60039afc413196cc56b5f12e4767ac19de605432a89c141d82986aadb0fa6df374e9dd30f946d076b9613ca48a99315e9646793452791736fe655ea0bd6925b6bee429d257b489d386c8448a829b3d84ac11f39623e14f66560d8c785cb0500ccdcad5ff40e8579095a8f13ede1ece49eaef579eeb4d9217d666809226e27c4f3af306c37f1aa9a9bc4665640e54de9c4e6cbd9714e0c3b504ea55dbe67fab16951c99f93829b32b2d6b65eba3389ebc60fb7a4f1d323001f72d1d3750c4964b07ebcd5c3dc18280801e81da313cac24faf336a6534d82268ade5606937528fa4ed616ed5357c961296b5aa4222139871a6f17e3b8ff7c653e24c5a18c8ac782b2e34d074be194b932bf2bf417e936fbcef1f77ed5a2c03eed1d1ff4842bf7731a3c0e4494dc049fbab1e3a9aad6599a49900afa419756731d188ee8052977cf82c859764697b489d416c9c17213e3e3937d2c7ee4d0b71e12466ab0d39e386b65e225bb9853e32b085dc8d6777a9d92a41c92182a1bb18350ec1209d5d4d2d84598aa3ad7f68a5219d7656bae19cbb2121e96512703d4251d23a17668d80199ba6fd6ab4b21e74382df365f34b458764e109fd3428ec4e934660c1e0a5a988e4aab8adfa3257260752d4cd692a34b4ceba3c985534618bababe3320fae61ccd78d2dec23010a75ae009ac3380f430f17fb0eaaba5dd1be87e17be255a089cba8ad87ad164969d16f7fa6222069c93666fddfeb99dbbca00d3e4d2de466c77ec6fafef9d8fd30db8fdd71e8f40d0a1d3d2f9cd43c80755ea5903fd4accc0172a9d432dd7c6416ea0895deb7a172108dab5bb42535b63a17941ccc7aee646f4af2415deb1c6020890dc0dc55b7b28fa0d6b61562a13f2f6226949d284cab8a3ad89db0b6e89039f75a8c0c2c8dc9b747cf633c5181e938c5aa5ed3ca75de838ee7149b5941989da55bd6bbcaf19e5fc4b86e377d1aa5ee3f3cb3d8b060579721108bfcf1e513dbbc19166e626bc954303f759ab66cb915bf5c52870e105f05e603c5941e302204950108194a08281cf65d77e68fb6fed2aa5fe8bc7cedc44663e5ee108760814f3e74bb637bbfb5f056768ae8df0956a159a462a176b1b77f3146da2853fb9bdcfc29f18014613858e3b568ea41f0ce5298a0c19bdddba2207d758d2db0341485c364f3b0d716ad3705cd1656931f2dde29bb315a74bc121b8a1efe434f6da0a6c0f25112ab7494eb78f5199b7b3ec07e3ff67461640be10e2d371148e6be4a98d0002c2c1819808acb48f8b8ddb8bfb8036ae74eb8112c5a503e3afdad98650e06bdf187cedd8322e366fdcf66a49c28138fa857e261da046fca53c3e26bc70829c9c7c31e986c74756c7d7e05b5fb9ffe58b3963420ad161e688b7f45681f07337df6c17f69de698f39109e6c4149f7c920ef6a68db220580c87aca9c487527d3f90efd0ba0bc450f087f29935719276d5f837d19f5ac8cd13fc8bd302f2683ec0ab093ff267d582a525eb136e1c5b05638f807479af976de93e8ec4e92f09614da14523f8749d4e7088eca52d8fc19e5d3ed98d74b5486881adc2dc838e1c21671d7dacf770f37a21a1a4fac8b3043f08974e511f75efc452801d8714633f7700c91135bfee2a28a49351f4af31bad3ddc4f2c209ea5f89fce5508a5587573d63d4225b01f54672252484df714cd550a41ae4f9690ce39b3eac24bbeb28515addeacb340209af0c3614f45c378e7b188bd1f11e53369a2b2834ac9a07a371691d2096aa354b64b19ddff8c81ad106b5b50d5cae65b9d40637933a72e05b339cf99c49e1082f070a276702f48ddb8f81c2c739856333d7e9f828cefd232e369ebb3269be8ce4e9033953dc4f371b1dcd7c1ff2054b4fb8cd47ba0a9f9db81691cd21c072c43ebad720a6447a1c943498d9bb91ae5b0c91883053637954d95cecbd97f1402d948f65c194ca435fbb93ab306de30716b9bc8c372b44599d570bb18b78b48341d0a55c1ccbeebd6aa8b9ab28eaa2a43bf181cbb0788cc815f8add55ff6d2db05fab02c39dbfa971eea0d6654723120cd9f9c22b885fa3c720b711886316c9097422f05b6a84b532425d739ee767a0607f12a1e4151d346f55a1adedf2b271f4018631d4bb05230f8d6483a0b3a16437eb4d504b5f94ad7c0c89d6722d827bcc651ecb4e5de1b23d354c9ca637d4f16e301d18da1d70e57804a27d3ae6e4460f21828e3c42893ab844aad35bd21adf44361a009fe4d8c8f097a0921bf6d968dfda9f07e6bcf803c09d348c610f1d8ddd3fe1d9bc3eb7d4f6b947bd20be4d0382f0d7d3e8046a11563fe25ecad1c372c20463dce51dab8f9e020a77077ae7e5e395871fb10dc686c4994038a24e792a5f5931b1e598126981cb0faec3623ebb0e86a77005adc83712f36ed663d77d98846788a219fab9b13d5c3433fba0a059b74360577c11137f91db71307e741b4ae57616eff31d0f9cf226cc148a0fd649b4e9b5170189a60f54b2d0f3d94fc29c9a45c4267821f252c61446b0fdcd88b97f8bade153978167b239af314cef57539ff0ffd9c3607d3f63e2f9b418a33d5ab5258eb7875c59e7c63bd588233f43ff556c4cd380c55e87748cb58a512f0621991e1fb4844ba958ef3e56969f6cff09008d178971659ca62bccdb8e53ef5676925606fd853093d8504acb3a75903f3b469f1874ed70dec8bea325637d0eab28a8c8a74f9b8749b351ba504e4d29ed4eb690b97c5c71982fe5fa58196109e05f0bbb28c12923feb81c25bab144668b8d3fa84cc0bcd7ab835e4b865f452073e28c7f78fc66228ffa214fae476a41c960b5ce10851fdb5d6a6a5d9ff0a5990a3922c48003de376ca9922f9d44456a4c8d4f6746522ba7ba164d147975afd4f49f6773df3af13f6e0be804c2704d00ff112bb8d6c798dabfd9d14a8ab2c52b87411925cc5153279b105c79a36b6e1d6aacc9e24fffb655e8e4c3bff956ffa686e7991e0b6a8a21101e6fd7c3bc8930e7a88c6c37f6e458f38b7512cd01a67e042d6fe30fbe742f8c0e624e7381f227b2f43d57f5bf1af300543bcf4a1aba6d583dc455b1e5bef5543ebf46f6d3f36b265f87c9d90360c05d07ee8be1e86dd42258e66611c46de36fb5cec6719c48a9b0967c47ff9955f897d66c1426f6a6aa80a5c8579a1b59a8692820e74f58a26b3fb50e7b0bf0a9ccb74815a7ba158042db607f8933bfadfb259508570e8924883c1f978c103da217b55d504131abc8dafd03c6dd0f5a69b271b61df1a8e7e957590f520b11729b5a84cf04fc3aa782015be77ba7b7d1e0255166ba5f122e7cc2b768df65e842810c55cf1f78b67364c6abbf1f2b30583aea444c7ed16c445e183a50c3f299995538dbf5135b6f8559bd527c5aaf625ef3d4fee1cdbdf4e383bd039de5884844ac6bbe5e54dba092ffd02c4d761d25b95a5341ee4cb9cf4dd5a3746713a858b432f58710db5c8d7d2ae5b901df3186751311e312695a3188b09529dd7b317f332273aae3a61dbdda5f49c786a93c3f0b96ee30f0d02d88b06450cb0732b0be09d0b17c1435f2b59a59fb05030a726dd6ae4728adf7baa455b76eb663b13195ad1fda418d0f123ec788b936f6dbcaf403fa89436993980c796023c6fa52aedc3d0bf098be3bf47b748de5d5c91b752e666f1bd3392191ebca8dc3cb36d701203321a1ed8dc73b85fec03671756cd4c4f9d4901cda5ed754f05e217dc6e473666c0263c47a45b42e6caa3c11349412df3c4434ba22cf4ac62767b6e3be80d0b779e4e1fb9c495e2f588bb160cbfe3ffedcb0dbf4b13acc1f6c329e969a9810db4c10bf5d87ec8be811d59c7b9036042eaa5b0f12ec2ba2804abb6049d77c921147659f186b4c0d65bfae45902971de6a305c80d09f70edbcfbf28c79b960e2d0f0d489fd110a6d612a73f5bb0602f65fd21fcf8c289e2d5df63c23452ddd12bd86e2959a66ca3c6f8a308acdafe67adec2e4a1c8dc8ad5591af3cfb3d26da565ed29ea8c4ab671850e28d9d74f3996b0c43f0b0ef5d0ef04cce1f5fc02f202878bd70aa46cfcd08f2053e1bd5abfeaa92a964069dc4fd3d3cfc98894032f84d2002d78b0a94b6ccf5ddbcd22c45ca5172ca6a0f208aae7fa7cdfb708ab4d0a7fad019d17445a2e1e079ec867029c1df243ff092310c9790de94a68fa72582724853c0d87e76277673caf9ca1032c0672fb8381eca756a01303a97fba51c0d6a1b55d1461ff9fc9e7aed528b04d5f2deb32eb28d1aa4130c8308bfe55bdd9c51641f593bc5fd28505960ba2e1bdaacd0eb6428572023dc1f0e4f5ea1ae95b2c27c8293212a2c2b7d49afea5cbbf286ef7aa6815539140c201d2e10ae0a5e234166833d8f0dfb6f2971e921d445e1653a0359038c4d1079e80d0b96e994c6ff573bee18053a7fc3dd0b85eefa344587eaa7bc2643ae58fefd54ce0cb03c2e5f761da1557721d6611ae092b82bda1f33f910e5aad813c9dc6811429a770f18d52b02143242946c861f505780f31e19156b0a487998cd637fce3a65e4ffd13925055f6f60e4d4f7bbda6b1f9c5085b00a0bdf3cd4ad75029970ac2baa7beb886aa01374ba98b90dd78ffd614bcc66cb359987183f398a9824038c06fc2abc9db4ed38b734fada9cfeaa2a762b24eea3ff18fba569d3da114c8147f224b51b86bba68ce36d654ca36b9fe5d34a65578df64845ec43fe21df7b8b9f56ac19794f1e0d6c26b8996b77a353ce50c34412df13382e0a226cdd006fe0c535483260f8ea543c5817a009509c950461fcaa0c877dfbbc697a81ca360961b7ae2a72d5045e32606fa1eeecfd571ff18daaaaaec97fa02b39e2d261ce85966f687a9a01a7e05746dea3e41cdd24edd7f5abf66081bcb229e88853f09c6cd520eace02beb87302e437c33da22793cab46f239710cf279be7a788eec2be408326e2fce6ea10efa284a6d75693748819692a9087f97add394b6652bab9872a88f02df3545c9a8b1f70f8f7b741c408a3234b9170e0303994b4b9b8ad7bd63d4bafc010929c94e394dd348e9a75766b73d131264eb9b4d5f24523abc62bfee53bba8ce20f711db6d4e88100dd1194238835cd4dd785d0b013d58b69855f10db224b0f2c8a0eb8f1f9930f7ae181363f86b12d91addb95d9e3d0355f759c0017279a10f1a94a18f9a01f31c2f59add89b106129d986548a2d96f0b434c444cc5310183824e5a062bf481d37f4a9f6b88bde9e8351ae177d9bad1b4309d711b5a8adac76e9819175ab4c80102a7aef9c122233db59beb8427ca481c4af3b90c8b742eb4728fb9298f1756505d0d440208907b4d657cf928e4b8d2bd05be857543285e61af6ab8c806263b28817a8986592e56d4f039eb9353d3c425200ef8a6bb850a6d4294af0436516ae9f122a0b9268e22dd6f8a74ab19d10510966ee27656d049a4e962965dedf214163b2b4e14e39469a2c1c584da2c259670a921fa85d9c4e6cd414bc91b2af9d788115b33048920c9bc9ca6ce6498b395a3d7c3902b26c1812a75f18a003b2e089bc267a67b0dd865556de013e0b712603db15a55888a683b27cbc9129785c4393698b26cebbee2106337fe83af4276ff9f69fbb2e45872c12fc76aaec9ee56cdcf1e1d98e229ea093f2c6362131cf61eff15109fe14a62180422beb0f65fdec665250f178a3765d0fda32393595b1f88d0450ce6965e843df60e068bba11524369f620f267f71657665e62fbf15962e64b9f1371c6b86004bdaf203828a3abcd37b39138afac27defc2bd812f4ca05c4172580c8e9c1f970228cfa96a3c7b343ca2085740dfb6667254304faef8c0431ce055c29635df5dba397c236938e2408d61e5cf19fa9ced3c30038f147bb6a37a8da23fa8b4b0b52eebf53abde2fd008619e5e8889bc59fbaa3cb1e285a9d81275464b7065c84a0d8945741fe01f94e27c08b3389198e308caa4171f7c21080e8e3046322b4a32bf07cd63f904143a9885f8a478a4d7de42b7962c45cfedaeacc40580f760816207d608c5ddfb4c9784495cd6bb613709344f5620904023658a34113b8f2e714ab12f11144054dbfb5b412dce2a6cdd513313972e8c9e39b011d1292ab0da390f0f653e98c6b64f52c971d85f438dffc2042154c8aed5d273628b3eef0fbd4c4b9e39fb8819535c4e7960fdf0ec0346f0e598a9b115a4c8488157867ea82d5dcb1416154b97a608378a6d6959842b75eda1d4f2dee3f33709a2d87156e0b46a8e2bb1a9a5bc36a922d0d73894ec8db2171974ff27351b8caa7775df3ce51885f634dbf1a16c63bf16c877cbc460214c0333529d25f39253633934a33902244786b7738950b5f9f68bae09b92f2bd5c8e1369af4d344de94776b1f0e5bc10e4893b22e2404896c5422afc0c5fbaa5afdbd4c967f19710154977edc8f01df819428ec70ee88493c393425623430ccb8fad4a550d981fdae086e67b9d54c86a536983e97fd2428c0f128da9c45cf856808c9dd20f7d2ecd2433256e0ec4bdde4cf73685f07f8a30077f5b85e944b4878d60ef84101fd667ded4170e108a998d7e3776248c32d7996b9f805420de9fd2c25dee5665f2df16b148a62a6ac0837da8fd446e7449f9e6ddc3ff870a73a59baf0029689be36a9d64510b0738d6e4174dea249a3d6bf97e68e1f457dd240f74eb1a356defa9c6a060b855016966930734bf50f66f80466cf63937d3e3a92b3c8feffba3d4e9765433febc6e415e76d5e9c35dc5077eb860d99478c4f95b5cd4b75fbd35712788150f9bab9ed773d5df3b3af513f5ff31ba4307e3491197664305279cc02089a0bf4bcfa06f98ecd1d5bce297cb9fb3ea4ecd4c77dab06722591e28c56af16976a9e1034c63c2b3c1d544919d335c92acdff4afadda7189e0dd2ac9835125bc9681efba83a9eac066aa6ed1e245faeb8dcd97821bd080b521505860d55eb33ba5b73610fa2b77ce3c681a9bd6b83941f2177b261fba1f41790b58b04d90c67080b99ec9d03e246057d9e916da644eeedbb6c7a5d413240cb574df745e823c82f30eb0f76e3c82198abbc47224b761a5d81c88dbd48979bfa47027ff53a329d8df491a263afd7364d5d156c69c380fb9120b2e2c817c9b5b1afc6ce298c9528e08d42f1c15ceb167512f8d075ccbe83651e90dceddfd1c17fe3470b01209b3b6e9de642dc642454d11ef1d0fc925f2d1f082dda13c18228d8f85f7c5a98bf96b451dd419a70310d9b8c1fdac803e249d1f613b9b3ad1e53b2eec4c274ee109b45079bd7e4080454fbe56e7cc7bd0ec95e5f926b9d18a3453438bbb6c0bb47732aaad01d7b242edaa92acdcaa25dbaafec392828e811af1d226c614bffd0c10ab8482a60b0f7a62242ac09f1754063389f504985ad02c90f919312fe4395f5154af7357940034d4079fe935cd531e4e51998894b1a6519c02b183625bfa5dedf965afe0276ba8c7dbe8706bd37a703aa7524b06b5475c3335468e0c8aa33b4aef12b1b5fcddeb93d7e18a50f4f2ac27aa27de62dce797854250ec0ef8704f04d26c366c99fe57e3a914fcb640ae16b8b2a875804d24b058f4b5ce4d9cdd47691c9af03e354dfb368f0c14b5a4b736878daa8e1cc5dc12872b79c232391900fc87441e8aa8e46b61b82191298c51fca1851dc9570f32ff7e2e53c929c91cc7f33fc62e53ed176b0c01fc412f97942f063fcbb13410ab6bc0471c7325fb2f67b9e3daa9bd2f0fe230f645e7ac5e80602a6105c31c5cc26b62b418e81bbff1846c597eda936ec6e19f2c4aedc648b00877118f1b5b605ec38de284fd82e235fd6070e326c4ab0f7b7ce77412686d266ac93d4b4aa01bf6e4fffffa7ed9bc49c19a53ac92e2ac7a75bf0ef4f4c38aded1f0b67914816664ad8bd88bd021ec715155cccea3a14b4426b275efcec8091b49321b8d4bf5cbabce9404a5ee5f21b35d8154cec55e56afea7671135eae129e6cc690e39ed8f12c0196671e9a1cfd37453ff93552960069137fbf671072b140155950ecd46a9111c19efe0830e5fbe524660d7c986ae3da6014bcac15520a9ab98dff83fed0ffed93ccfe1846cb72f3e501acb99a228e8c8ad0e8b8e1519ea8f476db91069246db90d843c5a5e39b9045cf0ae0b7a6a6f6ad24c39001b79faf691bb32f771bcc8b2b8b0e76a9c6b2f51ec29c5527079a69ebd2ea32e28e56ba51fbb1e66c3d8c1c1141135d5013216859800425fdf4dce9e97398524d2695775b85faca77aae0a43b6ed8d096e9ba08bce5d6276945bc2375f3637aed913c5f2a9e1080997cd9c63f166545c26d0b7d917f2dd70674bdd8ea105b512028d153ae1f1470a6ad25c23d523f3c594ab1c5751109ac5e1f8f68b7de67fcba041f32c155cbbf0fa08bcbcdd2bac5702ccbd3e01184392d888957b34507d62985ee00f4807dc98297f1aab556976dd24474af0029d56a9f15bff4cd814ff681cfc8b239549d28da3af6e13334efac3ec750413eb9218f76d09c8113a24645b048ccab297a43a0931619dd32d6753bb96f2a115853201df2e71a7dc70a8911ef1c917de81079665d1b73f1c43806da5df89c8b563e8b58702d7df4fdf13f6510b91d8b6125529e541eff28e06e8170b5a4d2a0bdf56243f298a3fbd8e46793f853eb86603ed80a3e55721f6f1cfd98e4b850ce47a5008512c1eaae514267b7d961fafc45d4c44459dea47172fc41f255fdd3e526b2f8308a679c603ebef4205e1ef75a86d40bfd6d388a811c5c9ad3b3403d233f32cd9711ecefd319e04de6f4096e28df1d36165ac7b990879df03b1ed28d631170708b46d69aa7e984bd16e165106132058c9eb6548773e4b53d168b08f48e116b97c1444ff1518459724781ba082344d50ff5208bab5ec6ae472d28bce787f654dc3dc8a696506162a57482525f232b4848a3547c7c917e25b06867ca56312914b1ed04ccbd6d1079107156bd6e9a2010dbb5891bb6de50cc522d1794e15dd8c321e0d9d8f93c6fc7b45d534d689a8051f79d7ac0d255a8e8f3fa897f27ba5f3267c3a9849e31b64ef1e3569be801382490e50ba8f38e59d33ea159742304a0624992edadb0f0805fe92ba5009c7c91166740cf72595b6e7b14a6c35f98219f0b529b89d666c007243bc9001df3434fa6e6c382a26cdcece129b7f5b48de74616cf4b08a63937da170618a654e79143cacc4f3c2156438a9cf640e2e5dba46123a5682165848c8d8941c4e94ccff7256ba57128bb27bb3f53f3845eedc8c10304f29e5f83b52cfb1c6375b770430b38e4144da39f943f464628c95cc8b4066a407f9649120f73de4955d81271121b6887f252f9e3396214c60b7b0ef8d55bf49104f02e47f7aadadcbd810ac045de041833d14cfe764097b9b05f9b0206144d663ad99cfdd8ba347294624115364fc150a3a5f44cd62b0617452be4ef9d14fd62bc208931941ad60209c950ebaf24bc5b729d278e05c75e6fe01978cc626ca5dbbbf375877ef78051ba27ca01289b7a5a8c4bef675e99cd63a2637e2a822bd75c82af2bc4f3a7777c3c1d8ddaff7f4ae2c45f2ce0fe5a052721a6d59e9e8e0a23c470295176d03b72ef757b3edab04b7cd1c8ede4717bcd06289d1442ecce86a4c24a98bf5fdc7378252252b7ff807523142b7bc5e7a4deddc5c468325d2924043f50603d21ac77a3995a9315d3b648c935763ab5fe3d7a9eabbe8810deeeb19e3cd8f924149b7f61366dfbea551383d290a3074e1b2c08cfda941181a2af728293a8b86cda3ef3f12becee0fbd9515966be7ac0b51586c08a433afae81d390f152f099344f82dfe65639ae1d15edd2e302dfe8ccdab8b379f5b461c46231a6e2f33b113e07fe2da8f6a7dff5f6c9c77a6485d75623e12e61f9560a74b97771815bcdeb7061b0d1f2b3ae2e394c02f38e19f9a1d15d5a0e9804382c7412789caaad0125542777bf55f7e353d023b91f48a15c1048ae461b06d53176fbafa70672efae7198bdec32b48fbed66696fcf745bb5bf82ce2103529206e3c4936675f9f79a35b8fe48a72c6a8543fe9ba8b0216821f8ad2b82ad394718e811d68e3fb2b3bb101af0835009811933b0dabb622be55bb2cf0bb1be86a5981903df3a0bcc5cbeef311238ce508d3a670c9978a5d38965cf224a86229e7ea5e71f24c05874f4e182ff429ae954b16934ed8edbb1bef2dc7ab6d65ebedd78ae6b4899e6e4f61233aed3b1143b0675b2d413a8a00dc44ece849b08f1b8b1d0e782bd3c1acf0c56b0fddea5af9cbbafff906b0fecb4d0cb08d8b348fb7562e28a21da54ded15f95abe54ac37d4507114a3cb43e69f180f627eec2641223a9329a08559b26c4cb059dc3f5037ed54128503e1bd4962288abf946a1630b9116b0e619a4c667eea51f8e3db48898b60f38d00972e146c33aef48dfc785c4fe9e6dcf1b55e22bed976b186d128cdb2f8c082abbf699741531f07a68525950885cb536542752e7c7a6f7c84dc2d738bd1f9e465e2842027f5751046a8d75f178cf3e892e1fabdb6c6bd2ff3feb4ac469471ca01fe5c9c031cbe484f19b0711f19cb1747755a5c329397b31f30beec5f36d09318ff0e4c43e9fae0ccfcb4b73e6ad6ffbe068669834d6804739272f85dfa12f311bd7f89aca69ead16644aeffee8295389cd73a61ade4e05057f9b87755406429565d69b581712a1ae3cbfceb1c8ee9426bf9bd1a6659d22c7202675af17d1285fbbfc9b42aa331663dec3bdf907e1a702227b535d655ac470eca67f74826894b57223691e45d1ea7feee91d81b8d6aca19713fbfb81c19097fdd099a0fb19fdf3423cad69c2326a187d2b23220e31311af369ca9579c07e9d44ffca7f9303fde9f97ff1e8e98e07b418653c01dd6cad36fa06d37c1479b85e7cb19f56a6993606fbe7c2029f90e8e713d50b5cdc9553d8e07722dbd1c44dc911072a5850228b8719b3e6aa3cdb3fa75fa2ef0e3acd2d75e7cdbeccd0aab6c88249922bbd3ca12eaae79ecf9a8377542c521a13c9ca8ccb061db30cffeb252f3d603763bf55bb29fec9fe7a05902bddfa513b775b56c624fc012c87e679ab86b15b5f878631de3436644f1a827ff46ae671b794a6cd43c15a16a4628bfb26f420eb7796bc6747288208849d1bc00173b665718366a3e047807c2052ac4b0a96a8e6e61ccee4336f6ec8be609239842eb844220e54dc98526b597d425ff8eb0830c76a46a266f620d6fae411b9c1e8c5750d42a9e69287727c56cab474c5e9fb2b2c0b8b92015eb66dbb4304fca6e2b8201d802eca7335451b20b7574428dbfe985799d9039e6c959f6944a40c28464decbacb5e6641377512e80fb285cc53f42daec0619d775deda02731fd6efbb20ea48cec6cd4501cc036e449f09f0f76d1883ca75fbb9dfb9c3a5c0983b3c90ea9811eab12250aad5b96cc1f276c859595032d1e8b6672481dbf3466927baecfa7a46289f2e76e7954ff5d3e9dbd73a9a3f256620ccb2f72aa0b1d6f5803ba16e4952a0b487b8db7bf24da00ee23558fe748aa6c18e45f1a25404cde14d0739aabefb08e28c90d72da0b863d1743581d7101c6d296d362ec650e3615e84d5061ea9a0fb5d6bda60670b32b22c4cde0046f3966377327eb83fd1e17419f9c3f4ce110c75aeaf0a7f42119962067a60485b398ed4a7c2083a39a0e6e8f3087207133b83d204fb171fb6ad918ebf4eb0ded2c82e25bf2e804bb90f47f72d9a5474554c338825be2fb8877a8068152bffbeefb886d77278b1ebe3838d0f510f7fe97a0ed658282de4d782dcb3a4bc85e00c211d2de19d362d54a26b8ac22c0cf005dac13d5df61e20520fd8891480ccd0215805d276ffbb501206beba37472df00478fea7adf2e59d5b055486b4ab5991dd1e4ad5d23961ccce362b2085e702920323a09ada4c3c102e4d6a82e4129891fac9be73ac34260383ac10171dcf53f7a5e1f0eab19cfc9e7f99977c39858ca0b8b9f4c9eacc087972bdc6f3b1df7c29b7ab7ea1368e9aa70082ccb18a5d82097b445ed0a8f02d411db6cf104322520027ead4569018fcba09913ee9c1e2feaadd33c81237c018f218d40c02fd524d6a653bb73973744240b9afbffc5ae602dedc9799f3588b1ae18fe937b633e29096d5481be676563ef5c97dd5e8d8c14f42a52fcf6adfab9789908130f0c07650bb691e28f0aa757b8d14ec5faf128df04e97295bd9e0ed3851b9cb6d2d91e0398d0efaf9f942246f5ba8b07b071eb85b6e5c019453d43ebbd6b03fba23cd099e38010ac707de067f4fd5506a594fe4dfc8e71a98a653c7628277b2866edd449517f0d32412134960c9570dc71612ca8fb843df89e143387b64318a890687afb8ffa02091341b4cbae0e288a89e6cacb732113bff9ecf5987e88fe9ebf6ad66b1f116a2e9580c39b2c0b717df5b4b81200ed98c125b379253c10e7496e780bfcc05843a189e8a8e2c5c1568ff5616928c6278011b6d3f96e47ccf6d21f589d7424581178b8623830d679b9d07f05025e7143a77920dba81ca4fee49b1495d52e350fa3cba0410bafc8115dc0ecbd85b574660c3becfcf08c37bf7136c7ff3756c86cae40dfb8488acf7c47c4552c12766dec8f859f8c44ffb17a2c85fa29073411d43a3ab15ffe133a3d6f004df52b5b28e38656f9877ef7376f8abe17ead8b62ca0dbfe12b2082eabf0b9e49e421bb13b8d1da75009d37c63314d4cf8dc3aa8499dba5ab6928bb75fc24a0cbf4058f060e2891465d54f16c72839c1fce066426f8a728876c2fa002bf420485ba007aab80c0e6c88d1eca6b6101c5f7f980718a89db96afd6bb288cd5c06ef501887d7ebe9cac4cb882c8bbc7823e745ec0c8063ffdb6005981f82d0e3cdcce9e009dfad8c6211c6a64c9acb4483ae938690f7334b064002bb78e91e08e24ad73645df7abb6a539d8006edf02c6c31e255ca2bad13603b032606262b5b23acdbda2c148e73afda368adf8b023b529e130e159e085bf6c44e93fa7c8e0317767292bf66f460453ad6de09678a50831328a60214641c76b1909ddbd6b539656112a8e3794f666cddfdbcd439f7a00d891bd98045e1c2b62872447a995dcba76bd46753c6551b42661704ad3bef32f6a097a70d7baaaf142d1a6d7b98549a88e464a199975c4a444045beadc07a62bfd791d1fb0de4b69bc36460705e3c1c3090242c1efc4071a310c292c02b9f5e3fcfc360c7fcdea0010796487f50c3da0339496042fad44365ee5d504ed4ecacc6ad281f7a0575aa70afedb79b6e23f3b44a9e9b8d9c8e28578cfc6a7fc174a296cb4f1c20f8520522d9c61f4fb286989e503fbde9a696b8d0be72750c5d95eda728622b4c331a55c813df59114e508e747147acef067d444607c5ac9e7f0f0bc1642d63ac7cae33ca04f722314f30af4142fad14351c94dab0f946dc078dfd0dc33649faea7b9ab4c263e994c645569b68a5b9a02de550aa53f77b95df467e5e08889fe34bc6abf0d6de2c359ca063dc7d484f63c56e4e78cd520b8d4df9644a4f0a8635a8fbae20edfab083fa26e419be148dc84c4a201432d6a3396b0cebe45d713f546000c7d0f65c3b3fb30639fca5ddec4897a68aad01ed21856ae8875d2b1d8a0144bd26dd760a37560cc8b14ed6e5c2cc55d4aebda9e8afacb22d7623c468e93c323048351d2b7e25776547178f4cc14376dc6fde40aee8f039128d0a08b5ac03e8b8603761563f2be68c11eef95798232922ecf62cb17303d56efdfdedcd160709066250583f382cd135a925ef8e1ff390e2b849b35675c5e561b027e77686c666fad98117e95d10e5111dc2db57a19ec1725f25bd7e635f295a581e480b52587c0d6fa5ab87403eacc461d3ceceddfff782a237996ed01bae3c7f8dd0bb48cd5a9746178b70ea1bae8bb0b4f8b1768513f63d7224ed2aacdf3dcd671d883ea45445ad5d2e42f1779979c70d1a4604cfed2820106d4353f4c8e4fdf09c8e84a22a7b8d36fb23335f3f68aa9e16f6e299203b6463f8f3a719cb371abe83fedfa7e4bf7cc8b9ee7af94a7f228b0cb521f43de6f811d0bfc173dd88e24f0f3980ebfb9b4a30420e09dbf24c7f32d608d553e5f1f42b42fbcaa259a0e0cb8d3a2dd28b3483394c525fcb49f36220bb635720450484a3e0a87c9b6910775f41362828a4955c7da11e02a0d1fc96405e09724d6e4b110504f81b73a2034472c8e075cee9670a039de0a6ec0e4d97b868f669d30eb5d3fda00b1d8f55dd5bdbff0558e5f07b5737d4e526ebf5c57bb92ae66105a9bc336fce1d238c789b2e83e79a480be6612e8589fe8b61b163c8f07d92139fe5e5986a6a2ba04599c0d2b1033f55ca5248e1caf598838c08841f5294fbed2da1ed1780dedce0ee1e017bd66f44c925c803d20aeb4dcc7b9a9e3fd843b941f7ce98a85ebbe6d4d71b52b2a89934854df8ea877b930399a0f90ea4d186679630905aadb93b8685bd8d4d2d2670e201af04c719c24b5e0d02bac55a0d6ae056821bee8dfd44b54f511cc6a69839ee5203d2f8e7abdba1be6d353b24274e943fcc685bfa5aaf4177f477d0b7523f3d3e394e223f2264d0442b1a49d9685f45b6e5d30b47ac1e5087d60d22dd4dc0beca82a2e0e5803ed3dac69ff6f90ed25c415b567ae5bc8d2db1b23017333686df8f5ea2974f6ee9cc6cf479dd63c9c6671c927a2fe7b93c2e5a6e402d797c8aa4816e03a58884aa3adbd73026e359d974e68c5305dc10e137711ca218bd8c17c1d99a687f0bfd5cac368bb4e462e761afd53903687470019977198bdaf219fe1cad2f1d6b8be192c482aebae986dd59681eec99a47dc9a050a8115aa267249ff0a58200a9ba0a3c92b3eb670db4b905709234f48aa83e0fb551ff8c8c11eaec1d986e0a53ff00e89c5442f7bd0b5f1d865e0044cd0f2d47f6fcd68c1234d756f76fbe41a942fe052b7c1d02d20ae5862359454a45b1480a9d03112f7c27b08afd51aa9c0d8512f63549c15e890cb26c5f0b6b8d3b188c0c50195c122a1f7e8b5e38b45b41440221510a3a1bbf1b5fe9a3f3e5988641fee4e0568972e7465569c73b8540da25837b35b04fa0a5dab529d052ab8eae7614c67acbbc7372f3d450f9e51e71aa1e95f16e1d4cd168efd42f094fb6d655e094d3f94c4ead71449a5da9ec9889a85b9ea1d378ccebba292cc7a5235f6f7a985a211705edd17be2bf805f6d6531b9d7f3e4a048618e3c86347a6e2e28b662377229f4e8731aecbd5377daef516ff6169640403842b6705fd341fa61016d94f367854bde22e6b490f0d8031e388cbaa97625c822a736f78035f71e74e24bbad4ea783063363f425f45551fb258dbd499d6648cd7f5f8441aa45999b33fbee39fc5d5b4be5c2318375fce0da8188d07c05c0ae59700dde6b3cdee400d8b0a59eb21786e587590e0ed41c6a2383c5aba2cbaac4bf4d7faf1996a1bdb858596e15990f9b4f4a8a6efe2b7c3f5cf9e82705dfe98b414a65707ba9ea353257434ee60a03cbce85e07ddae34e408877765e2ea7317919007667fefca4735c7844f41514c4723b3270b69a3d4faf13d46475297a628ddee956f783284b52a1e6155945fa9b7d916ec64356cd2366d4abc2984426936b0be71470615b35d619ccc05efdb27dc164fc69a331f9159f4ddb6ad4656aeb351dbd2c675ed6374bc7dd1a41a16608bff0c3eba4e37e18cf9508c9bfc87d4e3bce9423d8e56f91285dcd52e90af7596f3e4c872bc7ec1d4ad218ae2d0785d5bfa778af8f24102a14d1d58c766475b109c64553531a25bfab39b63452a3211a6a85d96fa3dd36219f77338f8d2aa8e1ea050002dcbde2313ef3d2b510e6e0501fac0b36f85372ac95eda87e41638b9308c3f431fb812e8fd9f61ecd63c8c83358c5c6dd18c6eb45fc6ef8aaa7fdcb589a0a3b4ef8cfe869f545936d11cbd0bc3867a6b5df9fdb2a14866d6b68fe4c8ee29713ff334a46b5e673ea051d1465b0f4d0ac77b4b30e2a012e550bdf95a40e41f45d2a7dce4dfb837824b5a9e5e9f74a2abbd1608366c2ea9d7fc69a7c9eb4f9822184d5205ae3a935038f3e862fcc21e41c7ebdde5991b2f2c2d552fbb9ad58ad08af07679c085aed8ef09efe01b08dcffaebb9e471119ad6778b9fd3a79c1e8fe0ecb08797206e2391e4a8a59a3acd1fe77780c1cba87117fa7f0ad7ce8b5ed61c5fa071a271190b1a98eb4e2cb203d35534b95a99072bd52cce475acaaf370552d7ad4a6a99b2adfddee7145c76bcec1e422d79a0d6e893f45faadae9f914e7bb376a876da37f6d52c82c24c13a8184fdb84ce5bbb5e505b94a251cad7a5cd6b6634bf7806f7e64f242c2a068110dea1320595a568accd2ea3b6cbe4e94b86245c035e34a686364fdd193bb5345e6076376362af31d5cfb76f504c836fd64038e448576c689480a5651cd51f50469bc55cb24eaa90c70b954da5bee839229c45b1af8ccc5b7c66d25ca5bfcb8dc8c183767e4869f03c9e5fd8a2d7288faec469bce1c2a6a6473705457044a7701ef52b78306ad964f2efeed91d73f4c170907df112611ac86fc97131ac3fa046bebc46a946c885dbbc2df252062a30949cb86dd08462ed7e05caa553e6477a3bece76491f387c5abea62aacd95448ae80caf2f12cf3440b97e2f8500f896c8d096b972f25ad9a08fb410d09b2a86d5e22fdd197bcb8a0bb150264011c8b646f4b99ba5c1ac952730dcee6cbd8682eefb7b88cf2bb74d830482fa7a66bef77e8d071e1f56e90ffbea9fcc901b6d47f6c7305f04985250e041f376942c25bb00e5e451e81a754c39d0ad369c2f6140e9481ef5584e9a837a766d3e21cf53f86ea28a11d6d05755fdbaf1464a7a9d570582cc0c6b3e00e67deed72aa404fa5f5f7a3e7fc89bf5b87d66cd72d4c6b574960cd483a87ca617b3ffc6f59fc05d602a718489e8acab983fec61a20d3a2c9bb8790a91bd73e061db5182f4c65bdce2bde111f19863143d959a47c4360ceff5d5b063e551d6e146b0220e0b3d01cac2f759609fd7bfe6d0c024a65839edfd3259e869975f7114d4938abdb8d597386c9b83335ddc8b2f589a5aa44e238a8c719c862bdf1a6ed8bd03fc6d6d95f6c6d78e8d7b600b14f25320505bb216156b78682e8f22392ded9fd53f6669506d47532ba7cf223dfee290377d2c6124d01af452c34f369c37c805e83909098b36b0bedd7a15deedeeaefe46405526bb545352d58d346b06a4bc1213360596c94cef8385a97261f9e974ca7cb97b88f57f29c214c3707cc567912ab9b9d99991666d7cc55988a7af38a76d9bc69223874c42f5884f76b3f8031037a453485bb6d6ed9bc4cb5e43015750e40de6fca3a513444492fe4cd68807b29ff9359a7d60f0b204bb88ebfcf21893a55ea318d0db651907dade809a714acbbbf36734a12396b0fb085df73cc9575966c2d9958c272b04bdb17be6db1a065b7fbb84d86f769fe52f694d71d5fd8ecf9ca0a0f575bd564f257b76d983ca928b8e4f4a26ec6e2b8830a3a46f3b3b0bd574076ebef543410bbfb8ba3f8085974df5598f01b472b68a26abf944470c97b37987a33f72c68fd11f4c7d0d2a2ff7670e7aa9e88b99017d875e090b22735b88b83b5a7a67f4f4dab0a501ef96e8b4e012b00767c2c9f842e394e0763a5e7c9e674d8223a0c4a33fe36412f9f1a16d963d7c6660091ada332ba2d2e3edc3726504627484994be413b286ab3f3275815a8adfc9e14554f34b32c96df7ee861493c66ff81381293c60f96ccc9691c3013daeaf6f0a22de1650d3515a41fcc052f69b74a505b34b837c8de1e33dcc820745d2cda89e7fc028cb9542b8dee76a85aa1450ce7a1639cafa3f94b54f43ecf7b08c725f8c96f16e309e3cddf513a3270a76fda1cecddb7796a0cf2087f4a85b060b32782e001c3644d80e38e07006f5ccc2c5ea95b95ffae9903e54599b0b20b9b5b82cc179574acc8c5ca85697a8e0df2a2d5b33f9773e2b564aa8bde0967ba41caafd038afd9eb3611d3c2000ca5bbfc5790b173b694dd9632fd2803c8db6da1f27823c7bc65efc4aec14171532ac1f4e776944b16e76cbe234c4d84dae73b600e7f8bf16dcf32b8504fb608207b035b4f814967fc743c0c9b39eb57718b0fe055b6e78e5f920534b8a8167a1258eb71873d8707014ac460cb1c6bc68f67a94eabe56561c76cbfceaeedf58f5464ed7c684cecbd4ef944012f7f2dd87c4230852a28091ac8e204e9f4b3aedfa1a7a23884e46d922316d4ce03a0dd00a2875119f26e80d666bb1bf994825dc7520e710df14f16f82eba78a2cdf293f213c3f141e4fb4c13d9814f3c2057ab403aeac3becc6a132bb9035860f89cc8c2d4296d7190e6384c07036680b5226852ee6dd498932615d2b992f19393f815cbd90e68c7f09c1dc5add623f75649f52a8230025f470bfcfc240c6ca7c915cbef026c2fbc285bfa347acfe0450024802dd0b0bb7cc7b0d7dabe9af10725364e367c63a9a7fcb85a4de28a2c43227f0c7c31ccf63aaa4435c1b7681cc9ed514fd575b4d5054c1a0d5834e78214a61b4fc8e74939fc5c08be5e2b297399ea91ca28ba44de9a723c29659087109e5d2c58758d4e31c14fd325335f91f51998d5da336c9fb7d816af66c30d538776d3dc0d5497e8dd77768d69a645dab8ea792e5c9a247351289655c3bc4df602d1c0c77684528747d778b45d595c4094fe80655e3cb61057f8f1e779d1215efd0e0c7dd445d07fc8c97fda8c897585dd07a37267dd1eef7fb3da7148ebb83f53ec16048ebfe089e5a7ad2466a25d6e3510a70686818b28700038d10643fc9058774f54ea0c953fb6c5f4cdbb559743648ddb02346ae3fa28ed573b8df2610bfd466bd89a15c0a3dd142ea191d599534685e2fe08ddff4709e8c0b7ea6c80b100a170f315fd949812dd07823b09166ec89200c33c1e92155ea87ca2eb561b443882b579c132d16738cda2e7cbd7c869f4dd63d1f948bc0e83689429f07937cce1ba4832ed6cd73c07e77958d2e1499e0d59a8da7fef8c01931361d112cb00130991cd5a9d18c0a7440780f369441769bdd4764516ade05fa84844f29ec0f229fc9aae242508ab1c8c0c34ea973fd8ac4fbd7cacce13a8bead555937d76fc0e0cfc3b032916a8d73a7deca03fad9714bff92225e17a0335abe8baf1f0c2def50f4ab5b1fe2554e6877d87416c5db11b1526f57de1d9cf28f168fa97f02a8f355d9d760f5166e431c6c56329313bbc54a88298062011d056094842ffea9bee60ca35e27b7077306928d6ba1f983538c0713ec1855d5831cf3c73e7c982380945aee0ae6d90fbf2b3314ffac60278312dd264de0d5732c691394cc6f1c181abd65a51f42c28800994b91d40bf0bf067446553c73352034bfad5e0b7cae5eaadc18e4323d5114b81a89a7400c684f2f6bbe3957197cf981af53d11e7245f32eb4a3ecd05855b7455e83538c3f98f54a5347367721e53c7b0dbc29f0b12e3d0e1bf92bd93a14c48ea530c44836e71edb42e53f8a965d580d3d421a177f87a5f155514ec7c9c59486606cc315a5ce02f24b23bb084509cdf7af623ace88c57dec4ca6635aac1616245877ae9cf75a7251a28d689a01bde17f2c4007d5042f36298037144c54a6218e3d76fec18daef624003461bce18525f8d22074611760e4968707e509408ca8883ff1604f9d7f3f71232d237a9f20c2c55aee0a83a4c919513f5e8ca2ebcead6cbf536098f896e192a712ae8bb1809ecdaab79c99112c0abc7f465659fdeb10355e6e9cdbc8526566cf7faf6ab94b5173c42e82c1ef22028f650f99919652286a61f49262a123a5f30d96bf30c95de393f3286c5702962d47bbcb390456e82bf6defff7a12e107cb63c7cad50ab4462265920c4f59648aebc0ad2407184876f2c368a9edc2a32c4de77d9db7cc6c2426c31b49c8dae4c02d43a407e3f19796d8d1bf5f00a3037a5218a5cad4c704f93dba925327d0988ba8562723ebcc001a111e485f90875e032f6aa3501738195fe2cb6dbfac5c23981b6a78d0eedd1d23005cce1fa4c82835b57139abf97c6f29d3717df47c4c86e709995f790252e9669beac9698a8708926659642762679f99b84b160750a2c8cb89653dc61d3586808b9f3948fd652f1427ffced04a443f1a6c4642fab41efc896f08aaa0b32b25a55e0b4b0fed600cbe5b258da595d75543391d0422d32bdb09ba096950bd9a3f00d1261203f5c9abef895f14e3e81f1528e23d6343c55aca34127ce14e655baa31f2401024dcabb8498e99f1433f7154cc0eb31c385920154d34759624b441b6032f7d4d5bf8a8f68e39db6f85c854e593f313b51250bb64ba2eafffe4b9683060360ddfd52b79bce1711a14b811749c47127b36534145e648d9fd62b9dfefdec8df12643fe5c6aac02a465621239c88b00209027ebc2f14dd77a7d71edaecd5809f2a2539ed9f009befd23174c14e1e2f9c4dce750ace10c4d46e41a49dc9d08b004fb3d2d16e985bf98774660880aaec38416967cbad478bc402cb68ebbe2ad5b5213f58a9f25d136736051b328c30bde99f14b653966bbbae54c97f3e77c6cef3aded3d5df4732bcfcf49d2837bcc775580cbf427d3dd6ba77965698651c5b92d9bb1453fa25024f9ba9137feb67e4c6abe6d17dc4e21d74460a4c2db2940abae5de57e70b9c2fa4616ba0bd99811a4fed65043137c7b798ebc51aa7954ff704bb17201fd27abbc4d024b5af89a652d07f48fc3826101fdcf76b2103a55018e591f558c7fac33afcbe84c771915e2c23d82f05d5ebd7a649ca890b1ca9c7561a3365cb159e6a5717be08d00dc5037ad9dd528cd70fc1eeea8b77408e5b040cfdafd3a861a55c4ff29a5dcc27cdd0c3b0cd7da36691ea70be891472ac2bba8c98e962056c20b07457d0213dbab6fdc1d407c0814c788ef7fd660f1284fde69a95f0ec5938cb6dab2d07f7a8e24d3be3f1730b00d80fd623b5e11ed8f1145ceff4876a00754698eef6fd9816be550dcc1765141e4d6db9e8a723ad3ec69edcb79954d0bb73c4bdcc9e716194552f7cd26b27f47ce523120c89d9fc06fa890113a4839d2db22c98e498e139b39ac15680aba16be2604863ac808abcb0f2a296989bf1255ff2f7fd6d4f497d0874b4c5147fb426b925263bb702ea5105d722f1cf691c193ce346acb1e128b5add95041019c410c8ff1477d71f51de48ff324d4b3246ae61659f5408e32776ebf0198136eb7047a9719b655f22733511e2fb4d336a98e661f16ac11f446579cde9c6370b648a846265b8c10a5183ac8448f62cbbc051aa1f122336b69f4aa1fb022a1d5e71bc087373c4993ca0bc6b6dacc9ce99db4799c07b7862a88dfdc135d2efad543b49364e8fb78bff471c81579f82b05a8a6f6e541b1708f7dca7b7214eb7ba8c17ee2b1fb129e988b9e02e7022f976e9b1d7ae664a0a89e8b33817885900fd88cd40bae564479a14ace87e1175e5733ac562328985bbc6786435df966efd53583cd44f8833d1387c27d09e19f180fd50305f867e82a4309590c2275ef0db8c1b8e2c5c831c729dad60fe8a8467b38cb3d9c39aec67f1d5c821768585dd4be94f1601a83b185e2493dc441f1fa20fbc1eb6a29af843dc3c49144c64572c903f92aabfbf67949e58c04fe79816f271c6d11854565db91e2c7adf7f6a9f3de4cc3114d6207a5ef3fe809daf2509c433af2a77e482d685dd1a50e980425294ea5b289ddb6fa71d2b50d8115f3433ce6c7611bf675ab2a2c936e845e17846184851228b14c6ac0c95cdd7244f21f4e707572ceeefd6806be75b6ef73be206c1f5c1cb85c90a298bba9703a58c5bf9677fdb692fb8067431f8651c45fce7b1ffa899db9079448a4bc4eb7067665651a1b85d23239ffdf0e5160428fc62ed3d4482337de8ee344b1c08cd85c1d4b44a56702c4ea18bc01f7811b576b783143e8c507258c76ca4631dbda7d929e970447cc5a3debfae0cc73d654c58ccf4cbd3bee23da5ead75aebb0f052654e1860cd29e2b1fd998e81358c19a74b55e53bfb34dede7a31e9b4f89b224a2227be3d25fb06e9e4c401d4663ecba8cc2ef823fb9db6b97de149149f85814e8cf15775ac7f16c4d52ddb3e4b5b0b44b20d204b3ba676252456cff240b5a41780326b13b2b28b13debd44d6b521f521d5079b96da715687b44959482e9defcaebaf1fd4e6db1ecb48cafeb03a199a96c686b69db75ea049cf76668e95b83ae7bc3e6871fb458007b9d939a95eff909ae917fb53b9e6823e0b3c1f6ae4f868a2242415dcbec3a9b9bfb8f669cec4b13ae8a6c609b9f3c69ae7d01dc85578aaddf2f0234db44bb219277b65bc02b15fe4823a7cbbe78f948cd9140bdfb2be6bf7cd53546e9ae87ce3a5406a050a62d534bc390c1922fe5deecdd6906122385822c538a00a462ad3f90cd26f09e39289663e3f5e6814dd5ea9d831b6828bd57e7491e367dd65bbde1308df108b7234ba4ba91dc6dbe5f1b79b65b593fa31d5497ea7d2e05a6d800ebe335cdc7148818cafeeea2e32876810ce56e0f51138806088f0cae1121ddbdd8d9d9d70bcbf166d16bb06d34fea8565bbb7c648327e8b1829c3a0b8891af8ba03083e1a104c9098aa0a1e63de08d8bf1c977dc7e5c4b00bfb7cbde29c15cb70758af36c5e7e2098fe01e4b8b1dc2de497e064b61316443f388567a738431b8d24ecd3affabef6d4ab798ca1456691930550396eca309457cecc7ae626d41b4be55c3d26f21079379cf17351cbca75b7e9bfd47dbd9b3a77e15dfe2df7ce51477a1689fc8ff2915b438b2f9803925798767b7f2442801d723b2af79c306372bf9c80a088512b247b742187525b39065c0ada7613c1d358854b32189b1c195e4172ae91429bfe83d788c0a903f7d1ab17a53789c11cbb5ca12f46fe04529248f1142ba19917173633ee3deadaed4f614c2ea88b9e1578ba8d59eaa5e4aee4bae690424309c31dea44814feeab0dadf0faf526b805ebfe65688d93499f12d34df788e4682bb041b28bfe167ab91219292c0cf66dcf7c797f60ef346d24f8e4ecd64322f6530c5fc94f3e12b792b524fbc0e50f41ed16795e472076b3f8c2bcd3672b8654303c8bbed312eef3257d35ca7687745122c39799a18d203a084762901e3e15f57fd0173f7a36c6d8aa2a58245afbfbadb3329031fa12fc123ddc29b5dd2ac0b362f5ba43209eff3d2e7d68e4cff716aae513f930659a32ea1b647a3fdc0944929ce87b3634556e31fa10ad1327c7da14d7536b003570e241c85c38457c30f6d5a720c67ab076931b31095a13bce385b5ffba48507aca8539cc0c8c6fa83d4c1ccff0a6d2f0c92e8bb9890d693a5ebcd8e1b9b5ff24637bf536af6b4f48b090028c414d652bac8a564dc254d7ed495dd7e08f330d46d6b3f15a004dc44835add529385947e217d1a3284f86990d2c9a58c2b090fbdee52001bb89a92615b147addecda007a967e8db1bf4b8dfeba98f4612636b61d6ac2011d9f596ccc95d5f13b7411575373ba5677defaa3f8177ecc57842f03b858ad95b77262c7b61814cfd0455238d8bb1e646d9ad398160df2e5a84567771faf71e42192e641b643b694c7f220279ea8e2b971ed38ddd4b2c82974ae9dbac9403769349ffb3d89364134bf2dca0e9b5af5ea448c36e820b5cd368f031c15af44a575bf290362eb7baa9944720ab74d3959a0c86056b1f5861bdf281f7af67a9d5aab31ff721c7a8aaf1e1d31c35376bdc0198e9d9a3508bd85ab3b0764704cc7c7828e58b01aa9cdb115614b1cf65eaad7a7b444f8f783610e55d0ef8fb8068d43c6b460fdcec6287a4366e69e18b4f74130183c8f7ad752c64a1053f8a931e77518f5cc2df01026f35f7ae2ad15eded7faccf48a6c890ffa82e280979416aa67e69f881f4fbd843dd966d7e3fae443795abfb8b22ee4911fc57fa89212263cb8f83f67e21afb811bd0aedf1e28741e786cce45acb7da5d87b50a1c2e91275ae0d803c89148dd60fc74ead08eca7ceba82476a8c2c0b5b8c2558c228fa7bbf58a9510352fe5e3a8259ec640816fae312c864c09552b053adc0e1aff562ebd8b05338961047ad31aaa8df966b0ed2be6b39027f10ed8ad62161115cb3f1950f5d5a4ec9ca9648c4179e192d3b1f62aa52d31100849d39c5d9fb441b85cfcf397d79febfc588c3380590fee210a042581c24180e8c5963e80dd08836d6b592169e2f8803d908f4a8ee61e77f0ceceec8dd45b0e2b6d0314c6cd71f4e58d2fd3d882b7fe99db678a6d7d3a1e1455a47c469ca0675b4b7d0acc3a7018c7be6d3a1cc3d4b4ab56f2deff041ebd6851d10e2547f5d18b1b3f2f2ff3057a6cac9f89d30d2a8879d4fb63190dafbc94fff722242ee8a6af5614ac0898a01b2d439f7985b9725e3d208fbe1ab5cfa3a86a17816fa03769225a1130c5b9311c58ecd7f3468a5a6243478a61d4dc5830a345194980e57a0ceb9d28acf5a804e6957f5e10d3b26e390e5b8a6a0a9ee2894447c18150d1d98538a446fc2d194b2de052c940ec13ce72f2cccb0c9d707ed98348bbe6281fb857a885389270a29ec2dafe0b24c77aa9163fb1db9ae4ef8cbf90537212b4b88a03fff211fa96cd3df0a0b2c787bde7c16ce2ecc7d41a4362e42007341e3077bb710f5ec7f45ac002187a217caebbbde7d88aa9bfc833b56780208a903549347abeb88257a4bd3877d943218ac1c4a0321a9dbf3f7ccd4937cfa9656afb2e017f2cc6474e66643cf7257ec5fcadbba03331a530e771c32f503149f0f7049aee1166e9fb61bbdfae7b1497dd8f1f5ac7136c074c5478041244b2de28bd8afd5a23354a7d47719b09ca22c09e89377775381f0741275887f0a82b388aa59933aa57d2e110dda2998d2e0cb7f9f487d6c39c1371e58d5cb83554f0d0147cd0f9a09b88463ee2acbe5c1b88ff8934794751d7470190d7e7ce9794ad57151ee97bcbebeb539c4d165577cafdffd6ff1aaabc86e29b2354a0c067e7fe448dcde6dcc78fd4558ad3a5a63f0f954f23c4791cc8c585c51625ae11fd2f02cb1b7a1abd232f67d8ce9577dd51702bdf97f6f09b0392c742895901a17c01064f9c29fdb9c42bf58712f1ea5ef48e9eb0f8933681e59bba3c6861464b288487d355323218d0d82c2730307455fb1005f37be81c5aae5278c923ed0db011975f4a4eddef016fbfc26b01a901a9ada4eafe93fecbc72e3693362d9f4058a5e68e8a71b6459ea57ff4f83cdb9e973b70dd433ff29bee57bcc4aaba572d128a565054d4daddb0f7bf093e87e8949ff222c35284193edf57f70c5057283ace615a53fc29696d376a44954ffa687800be9cd8d9096a894547ec8befa0720a92562d45d32945e70b8ba18cc51e04171d168c89e09828a229ced1cb1595289b1e0e29353d9e6293d11447f2eb7f0c896a1a227b1f2617fbc894408fc8d9bc2ccecf7f76b598d8039d3b43215eb473211a509a8e8dab6725ea83cfbbaaea511736e3f08449bd0cf81d273fc3e34d717c203c33e66568a6f8b0fe6b9eb421b82f2f4514395c29de6878ec33a9eb47615790114903a658d2b8e17a5dae4f3fc63e3ed0b19d001ed79db19155eb73c464d30e4a07928d680794925ad481ca83dc8ac62116e865644a08202286d4fbc98e358b5c686374f9dd698ef0dc53dc0b3081932251aa6787c58e2bcc0826aaa02813730ca7b16e6fbde40e0f2639170e33efa37216b8386adff3653ad499afe14d4506fcecf4d7273d46f72460ab270ebc9de14d9a1b33790dc9c5b46849c95270ee62a862b4203fa1fceb085f5937b0accd587f571b7a0af95a876988a491b5763819a5aee06245dc71e353235db59c9ae438ce28375d17eb68fd8e8c3d2d3838c924b53ac00d70efc6f4bfb2d8270d29cc6ad3ef484d8c431e19e552d51deaf471b7f62aa5773d88fdb1a6914d00de5022b44d6d547f5d8d9cdf4e8daa3ca94d46be0d9643ace7f77d7f58e769fee1f16708919a9d502d8e5004894709e9ca979efa6b308f059ce4e16340cb3f4b5134ddcbb28ebb565537408102fa787961b0009750cf8ba24f5d2f7376d7fe450abe421be05866a06f9034eeac2cfe7646d34ff85a24c8be1fb648981d060ca80fd5893e7365bca225bf89e0c2547a7858968f9fc6e4e8164c48c16f18d33cf0588ee67f62abf2b004e1b45501b077d0416ef0b6776fc3f3d2f73499b80a8bf232a2c1056fafa5ec84817af571117ade6c0a554c2bd890f591967dbd07dc1327b715e9a2bb6c9781bd6fea890b01517e00d64279ce9dccfd63d5bd53b76570071711227da51dc6c2068c2241584b4942be7904a186d0fbb7682646034b895079e6a9c6df15759781ed3bd92ac2f37a8a0d48c43f356f1f74fd83d26afcc7b4501fd9350b807575ce9482aca6fa7fa7a604543b3d1ba85fcb5a5c44167725c3bee7c5282c52c6468aaeea981d143ea2bb4c9a0c26e6d81c077a17bbf254d60a5f147783958fe0055d00dbf570d84076ef673159f7b4ad0bfe22207ae48f9038126a468f562981fee2f70536b3fcfe976a2d81807428310cd332db5beeb559463b5c9ca527a2cab8d9fae3384a68a383de24ea2e65b8515b45fe8f0755402b720783308f019dd006697188dcbd26933073624ae0312e164ac5dcccceb833de4c0fb38d261f1516f9ca0627614c3f32a490f6fc0ba3337b99b5d7f7f1c1091e5c75a419a372b78bb339d7867b432d604d4780d5bcb799e8128944ae2c8a6f25ccba9931910e08d9ec632a8baeb99c6ba5326268a34c620619c8614f4e6db513b59f0e6c8bd278c4512e2d631dea25eda1d85335821d3e8ad96000357a225da492ee858687b7a3fd050959e701b15980550a83958e52279f18e1d42d1ec278ba4bcfc5f7b3054e2d463affa7eb7794a713e2a491d0943cd6c2710f1cd9eb12b3a0245a2c8c54bdad8cee5a648f3f95267325ddac366b496904f91e0d7270d064eaf7158db89104cdb816f701e753addc67865dd65560adf843621a224cf864efa9ce90882a5ff96cc7352813411359a7ec01695a4ea1239a20d846208844a8fa7938ef451a0436d110dda1c2322539016c9ae73273d1a53f99a242d7d3efbf69661e4831ff5af290162805b65714a962861c73915cb9a2ccb9b4681a3efa5f15a41946087b6ca386a3dd433dcaf7e78dfb419899ce1ec6910f732953a02f2055c9086ac6843b6e60bfb25854b7ee93e7fececf56e1ac740f2bfc73e296bb18a56d50cf5660beda71b3205e8db05cb07de1a4a633fe8a1404f08163cfb49326bd916d615666301ffc12fd9bf9820a571e37b4f1f483350ca3b83f7815d19f4dac781a73c166ad37599411e68f211439d0e033dc6c7055f627bf7c549a26fa28bd95f13a462fceebc35d0115f3dcfcf66f039146c7d480e2a0a829ed23f4f77b21a5ea86800ba03e89a49d7fe31d83c93ae6ee5ed2e8ff4b298a8da2d4f0767ec69235311e619a9eabfdb5fad6a9f7b558232249525f59f11063ca9f90fa4b7dafc36ec00ce8ee0ec11ff9e6ae9824bbd3a289d68ad09c68beb0af19f63efe523d8362c0cb9bb07cbf2d0d54b91549e57b722e79f99ccd47e1264e78a5001fa5e595e80dc69b82c19353effc1ab72d586709369afbdbaf623fa6804c48060ad51b15c799de565f64da4fda680627059dfec48524c72eadba654303f9dc1b204d4617bceaff9d2924d7b5ab579484e4e234b7d14991638da9c89b8bb5786fd3e9ec1142fc2b3b05d69eacef9a9d042664ebe344b648a82364a32aa543664763c407e5a5cbde7d6300d966e7e61d11215810bec1805b2f7a84b9eeaaa0d96e3be83166c4566acd890bf1821ee4909faa5800a975ee9f8706e2a4ffea42e7a8c25855ebd1f76dda827ce7cac97ac9823f6ef2aef635bcadf78197d3b887b12ba86e0fdccb52d9a4e3ffcc48fd76081b2d55aed11cb5d18ca909a91cc159384c7486bee2a6616c4a92ecd63adf25a2c5a51ac676fe9bdd7d67912ab8255409bc29c1402cf8cb88447ea90c3c5ab0ae78666aec308e0a5806a6c631e78f8c8439c7cb15bbf508cc4462b2dbfc11d986016e4bfbefe0c099153767dee827d4710e90eabf306104fb44cdeb929cda4942ca079032a70b03e0b879474597781f9b83192c013fce3344789cc6b4541e0e4444e37e96da8defff2ec97144b3ae54d94d33150dcd6f722b3cbb0f44c5f17808345001aff9d19c7d13c271be8a3b389247166e4c197ab3cf5a62a74ebda8a20299eb17aefc02b4133ea6f380632f10d88f2c3150b3ebd924ba64151c1347d275becff325f191e182b2158b7b08abfa30716572b544ef2b0b7916ad8e4e4fbc6a0584d6203b663e2cdd24336a4ce7eb78c90f4450ca9fb1b83c240465d55b3fa6548fa72a76a9469b2d1be29d6bbd61624be1b4df8b08d8eb88765fba7ac57f87b96f2caa6de50cd78fe9dfaeb9fd19881e24e46adc1e6e9a59a37f234686c87945b79ee73eb294040846971bf1a73127af9023a19f63d5b5ea35433e8c6741fc9467508144ba53d2e2522c9dfb0741d8917894bfb3ed42c3acd16f29c03d7c21786bf31a196b921ed96b333102e12824b5a933366c9a116556b802e9c5ffc4bdd3e37bfca945bfb28efa5d2c6d70f88046937df42b5d9a70cad47362afd77495f969b544fd8f64c1220e026ae6f640e1885908fcb1bbe8f8362f422f9893e95464a6e7885aeeb2edf848dc22406310c932a637810667e2122d1417fb2b9388a1ed960ebd85d6cf1497e7898bd9cf008a240648675f3196c149836927290ba1ad73a0e1443b453ec0c1f6c9cbf98092d18da05a8321081a4c7a4a46a4a7da91145290366d9e5cea469e86e88a4052bc7ea85ebadd13b6e6d6e3703aabe445b77a0f856c940bbf4d1a796e8829ba71f86b32f689ab3bfb1bd82f7d43947bb776a050057ae3110a4128efd041207de00323190a7018c95e9c23d180c8bd14f67bcf29106a7faa14358eaf4e540fe55f362c62d65eee39ddf231d8d1ebb3d661848ce847516fc2d3d230e55761bcb8cd78ef8ec529993260873674ebcfee08125495f4b2fc42ce04daf4e03f0ad6c2298caf13091234dc1da76a2ad59fe0240a6f0519d44e896110617830e678514fcffc6ff8bda6e146aff2a18baff6461223514b6afb192d55612478bdbeb46aa3642e415004520bffd890258b514beab29f41a81fd22279dde2753c761165349e99db249cfbad47a00be00b6970ee307409a3b0aa05a043220ae5f9c770c94beb7c7d954dc8c9045b414b3caa441a68d73d3b58d37b854eed97fdcf22e55840d35032c159bc07d747f7ff4ed0f3d1cc9007ef0aa63a573bf5f5d3eb8410b35ed15169d0e91fb1e2da320a7bfb067e13c2d8e4de6cbe849a639eabd5e8e409a47337ff0e5652e37ed41f43ea4c7cefddbf1a21329b82181391250e459a4a4acba5c9b35e48361c803b6230d42d258958e7595043f39ee7421f5e0d6a260c0ff1afba1937a4845b61438fdb80470ce66b2578d1757e17d569ddd5264389a5844ed82a37ab8c467cb95d5c9389a566b3898ca6354870c930dfe946ecf99dec9ceedb6f309d50d321a54b7fbe97756e9b4047e5ffd45b9340029e14b344d3e6fa188baa95fab1d0ff5f0b76e1d526f37e8ae59930beff092101803752e5b2966ab63f41f9037435e035c4ab589a5f44e7fc4076a8145c0dfce59858b17d25b41e4d3c09d371c23134b60b0ab9a31c2d82a664f283eeabf1e138d5a48cf42da7cad62f494f3214825611881cb8278809408293f70cce62c2df1ea4bf17e40fec46a502e1d94af433155737ff94742f9b3c395270f1d2691843fbab79d33e692629210fb9681545eed56b5c0c7c2197c9c30a765a03efbfb79b7da9fe47b50015e8fc6c6a0a542d85386f52266accc52c08450fdcee997cafb0b3c08ce6e208d2bafd09fc721d0b9a4d9a013bb64f04582eff30340299300103265a521a3faa0f2fc3ac99d41f833a186f4a55e0f5a315545ebda6f7b6c30957cefda6ca7092bc25c481d2161d890a2e686f97103a6a889a2033a0c8c01f4071b080a5a7c78094471f03f9bf331b46e5fbdf08c4fb3ab7b67fc09950917f54e01f22f336cfa86c1d65da16572eb2bec7454373c40256b12b40a0f4e2bd585cf3c81d4a95b43e78a066d503bbe8fd017cadc98c96ce21cc4945763cb3248c94c41a0483e598d0314c6349d0269cbf5dd8137a748cb96e08f677fc1a293e06b53c6cc34e0c114f7575d778b3871f22ab9221eb121b22fb49f9b139f0b73f1eb33649777a2ca9adb55f032156833798b38da9d08957a617884d2161778e03472cd3d27549ca0e495b83f133d57b97b9fcfbf9299f0ac22053e9683a4707f433aabaab4f051993ab2fbc4fcf0d31936cc918031d0713c2f4e814bc4ac3c5a208b36030d253e1feb509f9685bc4a4f8c54bbaf82cf0d5e8697eec33cda213cae3fff661499571fc7223dc1774b91c683e929d2e1f799f2eab929d8bf46444137df5c933d33abbda37590ca52bc8eeac6ca261d7ebd0e52637706be15767141e445eaa613d76500d950c3e3c8c2ab1c217724cbdbcede82bbdf3a637b20605a48dd9dfcb473e7f1c5a192e8409a34dd08ed51db518b9c8d01c549f121cd2e25d664801f5062b97349781ba954c81662117b250b8bc967aa0a4097c3ac3c2b12664a4436ad14829d4a53632453afa47d752041db08eedd7aeb44d984b6a32cfdb4923f2ca613500c307ded49c0f04882937d527b9d518660804756dd49b50a4ce1518a4ba74dd6f76a78ef90d09f53c36e54d08af1f7f444e9efa317687dfbcff0b343f233b5733ce87bf633f0434b6e2a99b7b600961dd607dfd765870be2314a953f8b5f2f20ca9fff0f283eab6bbb9212aa5e99e8904e03835cfd0eedd7e83bab9ef854d298110959c7f60b8d3cdf958a1096e05a9e5ec8fbdb13d9777b99723c132dd073651aa2678a7a5ffc69bac58e2208ccfc93b0840ff3e3bae4cc438569d4c6a58791e56c51471d75aa4800d7c0f57faac996cf2b2f9e44f639a4d46b05821d394e32a26c4f55a13af9af6f25b7f617983ecdedf48a920ac4050a8700fe7a5a055314022a8afaacd2dd13c52f6d6d5e0b41d623da36f55ed2e8fc00845468e1163b2aae35062149149308401544ef0e4a55c6481c5f2273bff06d3e1ca6fe848fe396739da00c44091c9af11f93e05af024256fbd8c767da2c27d2c504438c225d06c43771b24f17096218c36c8671d6e55a56805fa4bb78295444e8bdd8982a1e97c885d3a1f0f3d5d8218681874c186ae906ffef69d28dbfcaee39fb5d3b3628ccea7ebee2bb616fbf8c767c0b912d190223af75d046a1f8339d23e6e115bd8e69ab94395dc0fd5ece5140bd5c5ac3abc4a490518f929331495fe825f0aa50aa8e5a98a40f14209343e88cba38b3d816692397db1992eee377edd668084de11fe0cf969174e6d74b98bc448a30d5bbaa11d3a7cfe56c19d1c51c14adfbb2b9be4ea458dc0b0be8e7fa7eac3f3033ecb1203935fcf44ee827124d173aa204d69c361a426dff6c600a59707a26fa24df1f773514bb5fbc4501175a588c89dbdd15c6e846c9f07d32b373bfeef4be00a3b7f6ec5a6d63ed5b17cac3d1601eafc3c0c19971653b2c39fd4ad4ad848e3930e6df4799bd3d775c0240c610db5a5e6a954e0afe11d1422a41f8d10307270aa9f1200b69bba5a008f85c7844227478d29bf761a0fb25655b4008a20ed6f84e27c94b161d70cc410a3105700eb54172e6109ee3de51cdac5feb8ef04a866756004816e60c7d2220473e74db0265ec1790ba4a9af2ba31b6ae5c40ab020684058eab6ed0da6c0c065ec653c27727e369b7581b209b0adebb17f8e991ab773e451b69b6991f36a7ab6f07c69333395e81c003446f1c4c5c40417f0b0fbf306ed1043a27227f18a39fed2dc6ccf323e9d0aa25cbbbbbca15510ac86bec6ff3d8edf42211c582753c3e3dbeff38a1b7a5b7465691509724190f470d492472784f4e7b6797d4ce2d34c9bc9a43b18fee635c5e6a3e17cc31ad0f249339d875fd4a938778dc11bae6f87d84b0909f2cf88f336d68f37770f56e9a55397c322bd89320baf853ef5e15f171586b42afde621d9097d99f650bb1a33f15b2180d5fbbf43e65fe94f821049a6e89301cd9f801b150e32149b27b2ebdec466812ed9f643353fdb03edb798df03e4fe192b083cfe8f7ae48844b6e0132f8e2829b396311491504a9b3595169c065d48d066439e7a23039454c712b6225eaa8e4ee6525371e2f527f76ef9ef7f1edd674a91548f017a9ed896e366a978497b35be6cbba47e267fc3362bd1c9e9cb70417c2eb3dbec18725a70fbe6b3e330cdf07de8a594728098c0f79457107a6cea3472bd77b13757e95791e258d14b1d15453fabe635571395974c190e72071047916b0f0427c742122118a176836fc0aff1a154dfbc5a23a61303ea5963a347c81cc57724b442b6f99dbf435a4eb0dfb06046064904b0e0c9d43a126c9aae20028eb31e7eb47c21e6c65d13e93def9b0335b017c90aff7d87ce4b173692fdbd1013ce009ee86ac6fe28b2cde55c792894c8f87312726574e0c7fc5fb20a0d4165cd686523f3ae6c236584b9ea3c04c3fba3510bb101071739dc09dcb48646f51d4fbfd54fdeaecd76b412b00d73bafeaf05570220202ed85cfcfaa5cdcb54efa922efdebd943d3b645dd075591858b4065f32897660fce12c6b4a99846788928c43c2281f67d342b73e74fc984b572978d98c84caf0aae4f941db165a264cae71a349aba989564fb24957682aab2c4069ce517263295b3c04e9bf71869ea92567a6470d4b94738bef0423f3b0de93c36f4b4134fb0377d01fa250be66a5dd52fda56a75d00386863d07d005860dec1e739452aa959da14e030192fde2d5fc98436c5758f0b6105e9782f423bb65a41544a0e646ebb937a35c6debdede0fa8d512bc830d8b72c66dceb462825797b84b4698ca06fe3d60d15ea22d92f3f4d0a4dbcae034865f22c8797517633d583db18e5c0a7733b3ac8c1f2fe963466e8ea83abe55375e8890f945ad7890cce2fc226afd92b239c94936c5f8141e4d250147e9350a6ce85f26d8cddae391e87123d29744a58110d2bf1f38b40467b60b48903dc080acc736eb61bb8e8c7382c7fb44a32a1805cb444335c470af9879d1843e50638161c4c6b0eb0defaa3b27a9bb02b25e6b9701389571da0a46ca466ff0010c16d45290ac7b220936fa665d60603cc9c2a9cd76ee73bdebb619062da0ff8add48cbc37de77ba17e308706cd399b0408ee1bc225469b1c297dd2e55163970478579ea6585c951edac0ce584705cee892acca12cb47554acfb9f50e037c51f0251894f0df52786f965b2cf8c39a17fdf57ad13dfd9b9a27869bbc493ff0d0966a56fd5854f649e9878a98f8525070ad920b81451411c39c46a53a2c128d267e4c4bff0c31d8dcdcb66cb78ed484d6e546c651c6731bc6d02b30d493c25f45987d282e226a6d79315b31371a00188b63db46a6e8454d0bd88ee80467e13c871bba93f7d17b8b3660e8a07eade5f15d41efd85dd858e4ca3cce4a7659bb3a41372324ddc72cefe151ff92ab6c9e780a11070037ac9b3dfe022d2d66ac8d3368160fe77e0c25ba78e18974e15d511aa4131ef401e7aa59e00947365d25234845e2c3dd755762f02f053ac9e7840bc81263981fa3fcf760feecb26235b52b5b3ab7d77afed121f80ce024a618642b789f1ebda0e5845a1ad8c68b807089b69396bd7b2873940e1f0e3e38359f3c49a290ecefc81d0645771077c7b4de81b3dc7ad8ccc396686315e33cd73206a896c3d662b9a09b816a092e4e70f694444664ce9c601caf9a356d352301711665a9ddc8284e60ed2b5d85eb401391336a02204382a9766fe34d2281a80356057286f5f0e3acf9f1fa91461805f6a47c7cdd456a80790cb3b4cb0d7d2fe05bf3cd8b94e8419b8dbbf33fca08baf2a43ac1c0cfd889de8907734e7013b5398eba7b884745b1c2f14162c53397fe28d8760b2afd5b97d08e0766876eea75d7100da0eb1f959bed32e56498c6b3960edcff0c38d23d35ad2f8569e6907c8c8697e3d474326b32ee0dc0754b6f8502cc1f40e2d39699c4487684a98a41c1096bec3b0c39187c210875cadbd93c1aa93b6564d26654c0e271df05f3bf53654a9f6e279c206ecab7ce10cc2d43dea7785445d27db05aada81fdba0631879938a568e294e3c57e35949bb1e51782b5c1e43abeef4debb8ab4274dee81a1ca4cfa9551e68b70f62a4fd802419ebf9ebd37f7583471ffd0452f450fc308cb4551d4fdd12003fff5383cc4a9381501d59b1f745d9aaa3bb233406e6e3aef544798390abc095b680145dc9a26c5cbde129038c7a44a031dc2c5a0f1aa9077011659d3a9d3ddd4f84ba3cb7b2362ff18bb0dd71f67a8033c224e429a78cd4ed75aa37d066dd4f11308517540011a7580db022d27b7a6e0573ad43723803e07779e877ce2f15d78fcf29075fa502811a59e08d960f66e06cf33f9559adec17766d4cffdfa5fb27267c697039c586cd081d923fb0e5d57e1d67fec3aeca5e0c93bce47e976c8af00a2c44834be94ab8da27f15f1ce77295f9e4f70b0b857b94041c6954187d10817733202286132a43ca32d3b1ce6a4b8e2bb1bee99ba6eba0282d7a2970435c3852bd979753294ef84739fff520097c8a3e41e9be082d72c702f819352034006e08786a9635ed1b4e67c38dbdff3d843b5f0d8ac0f02728ed0f52950ce0e54391f218acbc430342bd3a47fe42ff943c22b9c8a9d926093bc6026969d92f968721b2a3b6784d2bcec62279cf092a6885f1e4bbd80c7f184ee0b9475c524f784343321716d3a419b189472df43afeaa9e17b53bc6757a20180599fd7ce3502467ebcee0a655536b8453a7d3ad28a327e2feef415d6861eba8b5935ae462f68602819a266a7ad132d450a90c20f4ce2341746341b467011d4559a74539860b1179488a0ebac9313c9b46b1a3251144aca64294567bd5a4a6886704203f64e03c6a910a28269abea8e61faf767bc954a9348fd0953719e4903341c5a5dd1e9885927184a18b926c2347ae17ee5c846efb60d47777e7bc9b225be9446e5e3a562d23e8c821edc30f1a5917aca5050555eb120fd544b9ef665c277054785c7c01ec884ab010a049d247f71daf8f42ebba0d26582ed6119888ec4214555071f2fc0e32ed08bd4ef29b495bc357d3e7416efbddf45b72c8eb8c98635d2649c4ef7e861a2d3937a98ecbc6e61473c41232762e9a540eb5af4b3a35aff1d7858c4fad29452e5d57cedb338c4dc22e333831420222bcc47609e2a0e05893059b3d06f6062efee6960a177b2074c1cccedffdb6108d48af4f34d901f3e54ef99090f8eb3c4e3df932f062468d84fb0d06d9a8bf68fdd5c998f58795e32e590ff1b5e2f6b47247a49f6f954a28ebe959a57e9293c7e939b3ff4dbc718031d07a48d6867d88e4d7afe47e3d1cab426636170a96de0f0d61482a3029bca44646ae766bd533fcd1235c9b5bddc528921728522dea61dd5f480e5655832657fa5afc29278a67b50fc035b5b36a6ca7e75ea23fc817b9272cc6cf0c52e375aaf17332c637bad2ff2751b9956d878a3bc081f932fc75945dd45d2be91111eacc6d8e1050c35d8faa72da4db46496df69ca3a6b111e8c1de8218d95a5c4b92e828580c7c25fbfd12f2c131fad195b9512c83da159e87c9a7a1e17919ff791dde2e912bd32af2e6016fc0f055208eedfeb1bba476f2a17a64cd8afd9614337d12a5152362fc85d9364bf425036132ae6c1f6bc819d00cf0b36e0093b47ab8587b4ce8c9dd5e722e92c604d90c432fc266a3bb0daf1e88513a40387525d4bc48bf5927c429795b2d0fb863c48e7d6a818f1ab6fbc2675e117bd2875baf09386351f586f79958f6b3360a8ce40a479ff91d97e409df58950df4084b2e3fc54bbd0dbb9b24ef6dc16913389040f1de0a5a3ce1c4738043ae76bc9ada3958f73795993df56e600a4d82f6d6f8c5c905297882f20a184a9ff69da493d25931515f16ae7f08deb2e913507a08f351d17f807ff079b30d3985680d96d2a8d608cc5be9a07aea20b7a5e329d608cf4124967f1e7e59e6d82e351b8bbd8c93efd4212302f29bda1e853ed564c5a3ce24c29768c2ca28a969d78f43eadac8bf4a7c503b5e62419d1e7499d564f9bc4369cf544eb4bbb1614ecc9bc4cbece1d7c52e1dffa41b42a68e1dfebd054dc8fe1e7ba02029dd7228c4d90150b05008da604c8ef2dbbc6613b8af98fcdeb5510d29d8d6c8962b1feb8e759116fe59c03e3d856f27a1b4eb76e674f9cc233e74c878ca5356e0821d5fc3cabd08dc54606feb82ceb19d2d0072ceba9300222862332ce2f83a2b5108c4ec381aa704e4958c80787f2c22f64a1f3d354057a1bae2a9a99fa9976f532d7638c8e362f2aadd842e6c984d1f38614d5a8eba67a51bcede1225d0981512105191df768e07400c7b58eaf68aec8a548907162418540d912aa9cadae2318ce8e1d47cd4dd9374cb7c5d17b7ce8ee421f925697fa60257b029fd64b90e33001e6a8c4a2577d91a148993c2be3b71343e06cd783641ab223eab034d60361209d2b1d33132937394b8e62c323302c2fd13d8bb90932f4d9d65ef69634a91585756aa5772eaadc09dd9ca01dd0044e51b7d9e8fdb478af9b6e435c359f4208c25b0e096dddd4632fd704f782c5509b0f74dac886ae6838ef58c9c69855f6dd5271cc0cd8dc431a4f7c8b904ae24455dd8c761e8f5684163ebc24d2c618f51f01e88a43854f7761dad0111fcd0a5e96ea724e73162aa42660901ff24ac0ed8b96617bd9525f5c39ccb8e04b36ad40ced7210b7d795eb5a703255bf4ec56927edd09fbe10ffe06bd257b72223c0ee1cb5352cf91f524f39ceabe015b87cb27ee1dc2b660219fef7e9a5185f90c1f824cbf18dac49915f8142c558706a14fc415be579cb2dc03948c5fe20e9e8793821dff43ba23c63877302d987e16094e316c22d7c8365d9a0434bd89352d970ba637833b3474e6197256f12ca2f28e601114ed0db92c2e6e418acf90906cfe3cc0879036641e598434b8dc0933302667aeefd6e7130d760dc0ebd5e6c0d6347827beb2238d5053ca38e7dd7e885a6b871646831cb57875901e5cd2f7e28e777330a4ce40125117eb47877aae17efabd907bba09ad2b71a9f2c399ad51330f5df98ac08d0f3941c2d4e908d62d845a6a85fc74738d280f5cf2bd3583cddcf0893510f074a2daaba84a229cc88ea74e297fecbade1627fea965df1e8a2dadd38f0aad6c256f3ed695bc5a86555895c42db51943c3a72e119457cfc9ae825c8b4fdd49e1eb1e7f2308b6ec2045f6d228bddfb73ee6d2171d1df5ff554e2e795692db887574cce7a76d2a0bafe2654df913bb0cc7b6ddfea533116f46186b5e7b9873ba19c78a0e2b34eb0a121fb737abfb892ca4c44486d897a2f66139c27a1d19d8e1acd0dcbe627c303b8efd9239fe8a90c67e3d35e9786d422d1d5794e6046480c92ed43ab4b030184e22a6afed16d39701cf0c12deb1b4aed62fad954a52f3a72770939224ed3e205133a75bb0fa6c6c681ab3f348ed974ae437714b1659c0cdd2f2bac41a085cae358fa6f9bd46f461e6522921be20589a058c7a93061a1c3406ec2025a18b078ae907007da13c7dcad3682d9cd437a4cac89f0e1dfc17a163b69ab3fdbb487c5fff2896f2f27dfd8012622596488653274b9b9ceb218111a5f563870934b9da3fe7c967f6651170613a885ef6ed6bcea4790825d663e6998b686751f930e0201cb77e5339288b36cdd57fced77294eb56e1b7040935fbfd66ca7dbff3a3b372508329d0029072da2bae5aa406f27cabf80f3fdc84a617aace81d38a0e8258cd16472e48a91a3fdb6228f7e7875529076884b2579acd76811e4591d6d8cebb7e0e5d0b331ebb86a660b13e1e108933fa282f7dac737a6b86f5ce4468d17652a2bd8758ff61783731973a15698c7c9e0bde8277bd8b3e0527b6a2fb8beef909730b8a6e5d085cf6e97bc60be299f616dcd414a0f731c3df0d09e1410216e6b379c34f3981bcb0fde5050528ff0a378cab79cd1724097016d4582c772aa821767e16a6f67fbb90143b330053a967694a5bdea8439e8b6196d6539d2bb8f4050aab1884e30458c4797285d8404c68e7002d3907369781af48be6cc776a6bd49d47a42e3193677f0dbe18291e38f7e4b5e62658dc1518d03cfff5ccd7ac8bebb1fedee2721c91215b98031eeba9b4a532cec6195d78ca17fccb49c85854a21cd04edde19f3f4b65bbf81a05d93bc2492158bcd2e14a484f4f4b5edae81b309ecc709b66c77250636099161f7850595f37e1f70af994854685ccad134aa7a0aaeb8697dd8b71237cc4e1908884b0ddd0d1f69b4d39d16ffecc0150f84b111abcadb5820c24e2493bb665baead34396e443d22286f4ab6c8c6c8ac32efce57ebe5e9f3ef73d2d7f624b0747104591f6ebac235fdacd3a8c8e26e5b0b2364c6b92a6d371ee63e37540b40aaf262cf69391587ca8ae0e55c6b9d17372bab2c4c7bb5072a4617a04a3102ec6fd526014dde0e8301c9e5cca7efd8078b6a8629b888ce2cf0e1f47ed6272c8cab44916a139dd8d28fd711f74ae863380b63cbbac9aef4d656d1d3d2a664890ea66d335a796f4db2d077b3b5bfbfafbffef55c9977adb704cad978791c299635f5ff6a81937ef4dc8690235d1d2ed74b40c3aea2c3b96206bb22b177b14c391c6ab1ee67c3a8d3fb47ab652690c5f46688b599a87dfc76e631b87a84aeb702d9b9bc6a14cd00120b787658748169c97f727540b7ab11f676a40bbda05ae6b9da265b2d7c794d6ae1cd43765e44d0b2f012f30383ea8b7ccd346f91bd836d3cd8ea52e38b518a6d43958925a3d306f27ec1e287f0fc6c2c38289c1bb35d70ac6d826564dbe564952c46629963f0ea410cf138c7e8edae67f5be2ef2095b2aefc044dc8f5ec7bf2638940c424bbbb1bd748ab238eb9bbe5a3894261759d1667bc7e20539a5cd32e453cc68cd04b46317d3454e031042fb56445567803af109780783b2237c87869026327eb71ee5591ea5eace426c963cfda8ed3a3018d8862aee2fb71001bb3a41d411f76ac1e4c5958a343c5c0a624738e93dcadd534868b515386dda7baa02810a66a2f1d83c2a5b98576062e80a5b071711a92d8be2cc2614f132a18e6b44427e45ef3494bfe0dc79c44c8aae64a7182e4d4a7afa90e4d6ad06e7078ffe99a145c677ce5b4792e0dad9d1af0f41d0333749842c40347516852170801afc5278b7a87268a263bf99d3a507ea05a56f747ecb15a40287592da13938a8379ff1bebae63fae307e3c1051b7c92f5d3c915466711db03a9cffa8665aaab496aaabbfaf37e0ccce16b0d6b344360c3ea13587a1299f972452e6fadaf6b9efc227ed185db47b836dcd16111f9a3263aa51d1a2ddf803b2199225674d2e59445747d48f8a09dac330153fcb31d7e3451eb9ce9b2878978fd43be642bf8a03db87b9b3b23313ece2fd944d9f248134d7c688070f9b5b09b2e128e682a5d335c692ae914b7c4d42596f6c39ac8553554001b54e5c11d7eed43ecbf799dd88f0bee94ea8a2d043921350ce4fdc0c0738b513d3e890fde53fc66a887fa7ef7a38f126e3e890db09385300a4ad7b427b1689523e0b229c52d7ce6718f7f5f7be98d81e1471623cd5b01e6637c71ef2cce9522360677715d8f6aa72de6cc9d1ed9b2ca1a31d8926021d424b33e6d8a368ef2190b29a4556e2c1127067007e5d3754ddbabef31e5528c6df4aa4a4c295152dc25c99bab8a83dbfd252f86af6fb53d71f8b92b538fc689390b00671d0ef4aea10d0f9d06e587f5d74fc5c725a99c7bd8afd1c5308a2c99414ebd712f92bde2f61a38d5742eb0f6c765af67625e13aa542fb4a76cf09437a9374941cacec3e4ef0c949c1e4b8869e15c25ce98475e8ad36e555f6a19a261c6d52857d98bb01586a02d6f248eb750ca5ccc9ce06443dfd6c69fa64f8eb9ff4998e42f4c26a70a57e64fec3dd31ddb37636e3419851d43c5f059381126263a09b4c5a94ec113450845c3c8098b138f253826eeed397e71967c758c529040e61fd5b1e4549e2f1b92ec7f06bcffb880d8663eb98a0cd28c33a210dd973f6559f646a3443864ae101521fad37e415c0ad6e3011941f35b67179dd171df541ee633137279d2025f791b7eff58dbedbb65eb0dfb14bebc888dc478ab42323d4ebdbae6ae1b70beb3e9302fb3c8a16472d10e75193bca5624ac0fcea223257e08cd9d3f2acc8a7246077a4cb6d3f8f655f97f0e965f7d6b4fb5fdd42eec4100d7f5593070c5d08931b70e19d4b30a107682bc5b51da31b3233fde98a4708081724e7bc3883d48acbc0f5e4d50bd6547201e9dfa99978a33b0765bae41e6110d4df4d6d2736e2bc3f3a40e6730c1dcd9d334f37b1b2c6ff30e7626adc20e4cabf2deb0ecd0a0e93eb52d25c3842e6a1ca26c4c59382ed413bc047964bfcde287c1746ea71e133ef2346ed446afe860a78a00ea2f5f0e369edcb6867ef5d4cbeefa88846b55102773f7f197471f846d804a8d9a7f05ab12414509fb003df62e4eb29001a49477eba13ac9ffdb61be140856f37b00a78f6da4e68c81a75bc05ac84389f4a43cb7eaa80ea11a77d76087997e41b5a8a75620f4cab45617c8c50a0845a7b7e26412e5f84e6c06ca4cae11e413cdd626c9f3c0dc31e7a9eb4501359a63f4f7c04618e2e9133441685ad84741f64b98e7bd4dde6847652a8fe324fdd7db9f91b5c42f1122009f9da60d87d6a74824f214d7133c43e0cb87cc3f3bbd53b61fbc694dd8061b9cf7c160d474d7ada9525e623543f81c7561fbe6790428fb4fefc883984b5d0ed98310dd206e950a9d420c9fb19979c12e9fb3f02f183cd540744b055f2e0cef9b1c0c0ad23394955a30fff3fbbe575222a46a3a77c506deef643fe94c5a6280dfe94d46cf69ab653d820beed3c66dc9308fc02dd4b2fd786d70a6809597cff70aa5b824b325dff4d8b698625416bed9ce59fb00351dc419108d066b83e3010061c899e10754687addc60fa6ce0db4299d4b300d036c5c43e396ed851d26149d5aad4acd4c80d6acaf96347235baf717d1543271de58d3ace94e46fb2aa02b2acddb904e77ae0054721321eeae075d8cb615a24b09489f30553d2b51302db9f025df60583e7df556292703b05e2cfbde43c8bc0bb1a4638413aff980b87083e99c10e5d475e9f1c4b212580f21cf1becbf96a99379d019cbb23d68ebd6a78639cb8c857a10fa8debda13e9abce0258ebc91113e5c312d1f043ee443dfea6fb933b4b0499e07f7ac77780c3dcaca4a0129b89c5bd6fdf121c29c5cdc72080432c3849500d5967dbf476bc1e92b9d5170fad1adf9825aa72636a093c45896a4ce53c40949592e9ddfc936f647aaa8bf633097e9c6c60f5f6420e284111b4d8db6def2e582eb9fb2a21388280e17ac2f93362f7875d2475a29f7a04c71941b549d747fc245d6e78774deb7367aa2f8cd338c89892766fc8f0d9715afab547e60797bbf80152c22dd71f80be5593721db96968dccebe5ab29f5d6ba92b2e4416c8a7c02c3265711e91206535ca31f793018b97df649d1e806e3a9517e424cb609b03c8671332da8d2a5de65a89d732cb35c0c9340dfefe63a9bb85724137b041910190c355ff95d37990d79399915cbe5e04e68e90ac5818a159db9d4977708550de235ff2b2eafa896423063383cb555d7e843afaa1c58f2bf29c5045075cdc98dae9d827eb111286dba14df47cdf629571db25ae7c2801f9166c3cfa7348b539161d1b5b2f4cfb2cbea6647270bc59bdac2293211b90cf6ea2d2d73684ece2718dcf753c04ab2b1cbfa429dc156007a0d1da7838c79030b4d9320d2b84c474d5915eb5b6f2e1a864bd2b6c41508d2a5ebb14120ce1cc62bd77d98f2adb396214993ff909c6a370519cab7064f9fbc942f34c3dd6771ced39b20eb7d6b5b4ed36ffd86f98d564bf8eb46dd8c6dd03acf10dd2e1425598fb6c23a3f42d4bd4ae50fc458625798829b30c964e97e2b587452cff92137fdd33a7b49fbb2ca1979b09c1551da4e1fca1ea23b4b90666384b5a15d6ee671ab5bfbbe15ad63018e19df809cc33391482827b58a365936754058444e5548986e9847e4478b915b8d8ef134bf5486965f8f4dd2ce810017322b35177689b0b8b366a100eb7d98dd4ed5bba55c89acd6ecd29e6093fda6c0ed60bcdc448b8a998e4c3f1b0a8e7b2d1bd5e4ea3ea2c57d846519a004dd4e8353186cdb1c83c9356f4f8c2fd1b760a399cd684dbe05b53007c935540ed861dfa3e45dcc8f6261495ab7a6ffdb5d12ea7e4e169e4e8fa2e18627593eb5c12baedc0bb719dbfdccedf626e1b69c077e2f3f4d12dcf09978b4415f616835b15bda8ded396d3d0886460348425c04a836e5a51f532bc37f65f364e8203faf6387a85c8db38effd6913d02ec0415d764f110755c261b29965d138a5fd87c6daba68f77f28c924ab0f24f34e9173756ba092d6ee5a93c466397c81f2cc3e30d9994a17c333c582534326a2d2c9c2b2ae2fb9866a85109c5e60e2b31ae8ec8168a918394b4d358331fddd4996e6a21b697eb9949f76419245501eb3c9bd96cc36fc2f6c35371c50e40063104c48c8f3faf1deb29b180aa039273950eb6b8291170aff0b5fdccf557f9c284aeb5c18793787ddec4d812762d0babe8cbd9356a577ac343806bad26d413a857d0f6fbd81391180d199fe0d75053b538a864cb75f487d0d72498728835f558dfcbd2e001569ca197f25a8044ad00e0e3ef6aec0ad9088872d1d28e9d6689f13b2c574cf3bd55edf68e60de0f25e13fd75dbf7dc9fc6a0510203105e9724d98c47ee3cda2be90775cba2eba83728a2823edc9556d05c342cbd98af1ec66f4f8635939266daa08dda208f1284679aab79f985ac1d8aa5b9f56fe16ff78c10fbd04205fcd483d5461ce0be90e10ee404ca1ba2103efa15861041238f24850fe180e5ba86cc84aec681daaeaa9b3ce1809bdfe3bce3e18a92f5ff4031ff391253ef0b0fe63ed39f8fea8f5b90873646d559d174ccc7c0a3d9652c199f026f722e9c0d41644ca387e519527c38fa6caa35be6aaf018ceffcf86e37e66623b9d33d5e7fb9456f551a832d2a05776b333678c2a2501c4e2f3a2d478990f860d5c8a44dbac4414cbcd0a976b12554852664319ef67e055e0792eb6b370d8032f41ad7becf86fab80893b1b6a2fde65252d0e79c08360421c622d4ad876fe9264d23c432473127f062e957d438a96809fb20de956f02678a66c5f0fc6a4b58174b1b8682f761ca6ba70b41ddb7fa5213a03cfe7caf43cd9a3d20a6980442531457bee3d5b8b3b6bebc7188212529e23fc2f0db7d9317cb878b09221475403984bfcc017a204a5cd293d55d6e9d34d3750cbdede3980d35ec39a6fe33e0433c04914dfcec71b30fd6b476968304958602bba9ca9ff94f48926e876bfa91019465de3d23f8628a5e4ffd62c29c55b847583939aa7111ed7e8e379a4a9affa2edc5d1a8bccc9bf879a4dfd353067488aa31508d62bad48a2a0460d8af9b661bcc78b8821dafdcdc9f069da413616a540e87c0c38cbfae3f9cadd5f1eec4cff83618e402b5169fec5e778baf51b03630a9998bfdfe4b29160f286b0e5219e07a098c2ee4f209b019837e08cc05f10ee7bdd42473413d2b65c9a4867541c7ff0bf6dd93a3fb7e68469c9491fc0a9e28b472f571d28bd5d1e52b5fceddbc604e17777c64e5c8cf0ec923d76c6d044815ca3e008872d8838808e2ccb0349ebac4b585efedca0974a257f65df5e599d869e85928930d9e0065edb5c7415fabb1675126005404ad520171ac82acff8c6e01846beff26157323e803966b64fb494be904cf4d8ddcc8f59831206c76f5f621cc6d2fcdaa13b5a3dc219ec106460f9621299066b5e8f56ee998dc37303207614dc0852594e65d6c92302ddf093668eddc819d790bcc6531070f9f85d877f7a96cd4b4f443bde655a2596f0f42cb15ebecd7841ace5024ce77e0bf62791567fe08e482155b500f61e0aa86da906fb95479c9e7648bb0c6be4ffdc7748c341fe633d50cd8b1ef5bfb96690530accc5d34fcedfa6a7afadd718dc4f54bfac1888f06e141d849fc925336037561b0b2ec80781708f4234984671916bd85c1773080caa6652434553ebee9afd3ec0630b856ad87ef8af483d75dfd5444bf6f664ad557ec90b3a5632f2ac53710176cc2f3bf47469fdc91a2788da4e3e557d6582b14cbc62d2cb4fff8a47cef90561df8370d55a39e660d890cf6364cb003a58fce8af4687bfa745c6fefd7edac8d7aefffbd775787754e9dbcba61b7e62dd49d5140235f0fb77887312254af3015a4e22bf9a0a186734d27b58e1e8c7e2b09a276752d9250dddccc1b62a5d9dd96df5380955038de86fa66a8314c13a43d5eb423b5d805fad16d7ed2a40a95e8b7cd7e26b29de26380e90b4afc29c234643823e27403e99c3993313c85a5fd7993ba6928df8913001a1d64d57c085f43001505624532381a9f0085052848832d059351f8d560f033858b288623c18b974679b8f49262e52b6a64e41c306baa95c34832e8c126c18c4936471dffc6612a826d260ff64432db258f8d33c33d85b54aafdcb11857e83273ef6b6089e2b3ab262effcc1341ac0b17cd4f429e016886961b62f00276255d1126529883ea39fcb2fcb36a0ee503ec226c1b043a25d074ad509da4543614dd04541b11e30b63b5633aa4cb85a2cb8805a87c78ffcd31e0fa8247b2153690911ee7fe9fcd72cba0b536cff627fb0339d8768a618cc4639f797c57619a93e3f18dbfa914a6665a3bb85b5f93d17e3d30e8efa6c707f5ad79ae2b60de2bdd6c869f9d8ccb282bde3930a28e723e3d03efdc46ac7486f512ab722743b9401db76ccb182a20983893018a77b7044a8d32cf2e95c6787f4449658ef1d2674505d5d613fa2df6f89c642d9c7fe0e0bf4bdf7bedeb47a65031fd4d2302f0bef4782e8ab313b92f5f98db0d3adcb440bcf36573d6673914d3a060fbe6e5427b40fcd5611cf0d5374ac6a42296e4a5819c32578bbb41499fff1fc27b2df9f4bfc9c5e9c945f27b7a116649a37476e6a77fd9fa693915fb65a3f6e0cec389b08ee9777a434bc1dfea60943bfb2d4b0bd6564e420abed7ac49242cf8689a69c04f49c2efe55a19117ac5879c4881fa5eda85de243ddf39187255b006b33f3c5e4f0b6ee9d8f35b0fa5492234de369563a013958a26016d75cc5b1aaf8b2a091e3e839629db74798fe7216ae9c292018fbb6a761cbd4c874985a2af25c1d4dcecb07e102bbefa0da74369bbab3097830ae0a9438b4df6ff3791dfa40799a582479d1d42a5e88ecb71bcedc42416171b216a842720f5d3fde32728cba24baca125e13aed64d2a58b8fdb0ca2bb9698a113d6b2eeb42a44720b43151b29852ac694bd64ae8f8aeda10a2fa0a3698807d23c48f3ad8333643a8b22f8cf87e7ee21265465329e316c4acfc9f999a1f537a4ca059af797ac96c0e8c81e051e867f0d212f5b64177dee4c5ebcf0b1129d38a6d5f7b1020e045ad8527d28075b691494e3b961165d38c62fcea3fd366072753d4a2cad65b6fe6ecec84b6acb600f6294f9c4c9e6a8bfd8937f1b67ccff1baaf9ea57a54627344fe73b82633f23e833403a03e263ae83fd9322447eef4f72a463ae4e2c23be8ff3c50c35426221d7d604ab8e4fb0358bac41cc44ebd4a006d7f1dd8aac9197d0ea743bbb775ac1b75326fe61f62968f1fc98e4c409f3599abb0ca7aa599e0c0bc00bfe2e5df98cd2799742dc71d57660f385a67155cb9ea4054d42f0b0a5d727b12a37efe75e086bb9d8c1441d90b89d20d5c47ce6c4d5cfa45d70c289ce9c5fb5c672206eafa036cee71741ac4a5cfb8f29881bfe293c79972bcf2ab68534c3d3ffa4287b0d3ddb398a485e53ce51e505526306a39a42368d4d7557339dc0b8c9fbe333b44950768e7cf48d80ce19588e978cfa4d86c54b59cd541aeaf0467401ffbab0ccfae51a8950d8a02349c4665bdfa339a67e553435bd216affb24683d83d82d18aef0949fc036ed1867782b4f3b9ce084e75ab1ed342dce0b4c17f4536205c0edc2c157e8a9ae13bb7d1d7fcb0b9fc30bf36156d4002a93cd9a8ed6d72f115a2f9e9dfa33044885e7de6a38c8eaa377f37b41e38981256dec830ca838b362f0d9d3c949ba0dab09fe509f5c64785fc44b5eefcc885e6c54dfe9c4563ad24b8904467e1b96bbff3c5581cd29ec6379bd50395471d97d27cb432fc84bd07f28cb487fb9b47fd641f7d44ecef1fe29c840cd8a65e695f1bb9600e2c6193f4fab0c37b426b01650c7ed853f494e66c3d3fc6fcae719269b5d043697253bd6ef5314d289d0097f18178c83778c4a593b474638f667eb4fa200b741bcef668d8ac08a50bcf792e9be288a6ff4128a28bd12a494cd3c49da40bd1ad5d6187931100e262af64fbe03db407af0182163591d0c461eb321f50a8a1d6ccb997d390de1b98de4ca84437a4da9c8253937f4d3645da988c45648328b9d8528be924899e2b69ba81d6fab6613305a4d2a685ec00904a6034c97a202c41a0e70f5fc0f951faa5581485ad507de26cfcbc96fea659f9342c58380dc7709e42d40735c12ff13da860c86d22efeb99d557d9642626cacba6f77a1ddd4b0de00087e6443acf12875d3c430f4beeda65dfe52f2557aa8b07e2bed98d8d31e4f5ba139312bd50e20e999b00d662a0cac7d1ba5257b18265891801289d5c34e652a7adb8a19f7e66ddabf256bf18c7782af24e36f03d94dbbe58465cdcabc324a5e230a7749cf9170278f68ba8531d9bf80bfd999639dbac4132968c356881b48d769ac356b2b5c7d85023f9bb14ce69e08d8800d4e6e4a1f449ffdab659c55f82a98d88d47b79d5947f3840ae37fcf90dc793383c7b4fab7bae10721e24182943c5cf16839060b68c30b98fbd543a68669e2575cd795450293f5f913949b99d8d04ca5579e45acbffe26cf7a4d412d30d952af60a133b6dbbe007aa68ce1cf8f7030ca49c84ac875032dcccf55a7f25c204f44094f1e341818c228bda3e66121ee5c817a3806ce7ecf4d91f890773b1d451b6e83a303cd0c47f549e50a4f3288a4e544fed4d06365f3af63efbb3539acc3708e7d814cd8a91f240347eb8d16c0396a9d19970ba2441a70a4c633e760ffc6e668469912e5332c610e1540142662caee6fe73c21b310b0bb0e0b826a95692a8b1d0267b8fc8008df1e8cfc23e279be3ce90a041915bfad0c7c29940ada6f445acabaddd30e65f2694bc10b1ef4dd51045ab29ebd82d861af2a861ffb8d1673f805d6acee7f1fbeaaf85de1532d7d9b3d67cccc77f1121e7180fc6eef0bf546538bfcfaa9dbaa90e7ac3daac1dc1223b306faafb6af63caae51a683ef3b9b18646f31abad1267f6e33f7fcd1737d48f3a4e7bf5b5149ce1548900ee352835a0efcada5c11313ff7a9a6027be3234b139a99742c63e3ac7acf3d579b411456158140e09398a80724f75cae67506d6f5fb595d493d135345e6de09041b2948a257290593716f13c9500d67afbed3fee616f1b35f8d025e6b47c5257f54078024233c50d03290e19adfb0bc28e72fa85bdb55b4e61b139c21dfa53303140ae510aa2f002d04ce9025c22da25a6fe4ab33da89a56553a14b36fc43929e44089f4a1c4d92ed999fc55eec5b4bcda57316381c391d2c06dd7e98cba5491a03cafff18cc09802a28ce175359265ee1e8c49c31532b0e7094a42a7c9966f44778b4d5cf31af3787bb4115f5b2f444d8498ee5af9e6320f413f13cf96269c72117d5d4af6cd96883948ad416e151d80992fb9a587ed89454168a6efcc286e2ed544fe67dcb3e783b10de4e35e2755c47ca2f9661e7f0a16c846fe43e8b31f3ec678325e9486a02939ddbc6df4cfdcab1972ff6993fa6aac39aad1c633a22a7b41283b0206694b1b2926641ddf7a9c697cd64b875b62436a773e424dee14fd280752726bc55d4a7a2d69cac6f61af18e343a942d99dc1d7c76fce2d18aecbdbd006cf5f9cfcd6fedecbc9238f5a3384c3ebb9418f13217d020b40eaa0352214f58de1f9832032791944951e0258e6e86f9abb21f6f520f10358b8e9fb5304d154c85d5c057b02c9465cd19489558d8538e136f4658cf69810c7790281db5cdb544329d144368d782771a5e474404c2b1be2ca978825e5eec67c4ed371dd6994819298b872f23f08280951c01c4954a858de5b09cad5bd9eca692c15f2cc8274918a3fb71dcbe1a029bb85e0969954039536129e56442ec4e17544f40e28791e5604c1d0e5578ce98ae91074cf5920e8bd076bb8c2235ce585c52397de453c95d54c54b2c2575de235841f28e319bb758902e9865cb7d6c24482807b31f2ede646b233a28bd3f9256eb7f60a970c7e3817149cbe61a018b6ae345fc268e5f50b6876eed683e3f4e476e13b9ca5faefc2d82ba5da143d07461ca6d3e2b8bf17551ee2387f50848ccb83d5b966ad8ee59096e264847db9e3c9177384c71d735ef0c73b3dfe8290de4215fc924bca1a77d4ba16835ae243e8dbf8f90c3c4ff3b2b740202f1cd39a6e3b56362d1be30ff6098ea101578ed2d0a55c43778e8cc5dfc20a3e8102f511078ef254048467fa0d00ed6df7d4b800740de6b3fda8fc0b53c033cb3fbe178a925609912c3930335d915344ce0c59f0f258a828facae68a28248e9a4aeda62b850c65a97a75aabf043bb3e02899119ac29c85e650b997f47e5d56d6d128f47e3d5abac27764a7e0723b59860734944e6d86708cfc2ad640cd1855bb975357bb6320f132a087835326e58f1f7eb14a6ed08dcca30f584761bec9be0a4d767ad233ed9ce9e1e40a62faf167110032515939b834dc211dd3ce40a21c53f02f6ccfd70211095407d583fbe543224cf7ddecdce19370e1bc01d993419070e75f0387bbe82d4b4e92a01a68eacf2617fb5e2351db023753d9b8eb3b7c5b0891f363fbcfc020db608d0e32e0becd82c3e93238baed37eabb5424f6b4e65f89eeb0ee83ddd4ed5e7cd4a4ea50263a499e3b7f02f58c0a536071c42425324752d189db564754c3caac9d77b5a2452daf577babca92dc38ff382e8e179052f398b632f4df956465cf45a6e2da40c8d8e3d8662a722a12e1d921dea2a9add17ed0006bef7a7383147ce6dcc2e5b61a134a43eeaf4e833821715965c0aedf1039d497c1c86802ece99d689cbd05dfe147f116972fdeeb6a7df55ec7c0c046b4fc41622aa6c7672ab5ebe30d91a0b328db29e27129b491b68c17d27990e30089c488d9c8bd9e3bc4548cc8cac16c909f1fa1a892cc0b4d279e58d6ce22f09b47b81c514b71f022dcc2f596f932281aed84088ebf5aa0dc0cae5d864fb18e928291e4c425d1073c14834529ff0a720d1dbb59e2e531ed6b7e71986f47cf771a500b7a24579c3bb602fccba77c5ec182791ce47b67c23b590a3cb1341eb3704b1aa1cbc5291dfc271959926d660f8ddf650a9223d0f1bf4c35fa6ce07d51d47f02a03822bf2a7530494d73f598dac68b40cf10077744f019e98dd5b4417d7a809457b506aeff79f8996c544efd845b7adcd236983cdcdeffe96b932277f8cd399e9c8799cf2d8ba1c988b85b4cf6e4bc7acc41830c905f4aa69731d5c443f3e389d89bf2c63901d5b91b0e92144f3a84855697b0b1094e92a888bbea015f89e8b0bcadd1db1d922cd9862698bfee9d8b864c3344730a6cd3cc11006abb1e9706e389efe940c808bde777e93ee6ddce9ca39be9a6a339a42d4569fbf5f46ae7223010c423494b2fc66b67a0811340d6a5a048a39d547d70eab693a045910b4269adf9b4045043d7cc25e18feeea67ff27728f54d1128609c611684c4bcf44256c321b07fb33046f879fc01be79a1cb998546c54bf6294b792fe64242630f428af506d7fbd6d354c07b974f27a63d1a7d637ad9599b1f1fd7237595974d6f09946175a8a70e7c2208e4ad3c29cb51e13faca3bfd119740f0df66faf2f6c7b1905973964e52aa23369556e3b4b50cb148301c90ec21f2e3514664b7d48b5b986b51802720fa832435de1b4f626ac408e7468e8486f52c22d0c2d5716768bf2453f018918f2b8134fc6808cc2e8b2545c3db6c63ece80dffbb57d0e772274ea4982b79d3d4e21727a671c3771d234c584910c90f009a69ea1f614c897061e2c9121b300c557e0de096925fe80baec3e8523665bae01bcc0ae5ada2796b2b79cd70451433037ab8774d8bd4d1d8abe50882f33e3cbc65de4e88e10f4510b96d49cd5b71d76893714e52471dc7bbf4518d5f0050593203add46e5153090c62a769584cceca3e055f28ba17ce1b4ebb38179274fda400a5697b3d4b49e71f14afd6ac4364ac03edc1ad407a89b5333ff34909b2a7cc1311f307076040ecc6bc5c0e28b75f0919d6099e2f2adaa82d1608acc933bc48e794e2f7808d90ec06749202296035d626ac360c86334fde5932320285e999c8e789a09fe6ec4f9b6ed9c18cbe28be28f048a36753d5555ea5ac2eba6cbcbb00df93957f1ada663cf5923b819342e1dc74209bfc9c9b6a5909c56e027b1d791fb7b3668836fce63a0dab32d0092d3fa07ea5ff41d3234c981e3568421695b9f5db08e20ca82a94d26f4bf6b7cc892c92e3b4192300a1657854ca510fb4fbb4786fe2846f45905c09dffc99907e524fe95648f40bbc4da954c09eef26b445e71fe0196aafd89df2b0ca52bce0cbb69a4890ac686d6378fcee0df55cdec2ffa1e3707a3da744dc63437682ccac962fcabb1c634d2ef21b782eaa9784dce77f0a00992bc3daf03c98cd61a68b2d9b5d7824ca5091953a2c54675d3b774fb8abae5c4da20cfbbadf82dde6285fdeed30ab00fa62be430bd2543cadfd82bc65a66bb0649e2da7f717813d93e3c13efa07d60c840e5c998dad29d79e4f33b5edb2214e8fdb968ac1a1ed46e7cac55b741c51762d95ea31747814eb10ab206bc87dc9f1349aa3ea694a2c0583f048f50a408f7cd4fe90688b2561f8e0fdc97d9dae94c363471a50d7362673d8076fd3af6f44b617318d12ab132dc29c538ea0dd5c781d9f8ca584e6dae9f238b8177ca2ac259a68aadc64c3a87f2c791bb793f7fe6211f84844d83dbab7e707e85623f79478e46cb5199952bc103a8ee027d6c5f85af07fb5d37053dc5d7adcdaa7566dc1f95a9e320d99bc3402cb4e82660b804a01ce333bdf82db3aa2aa9c118830e94defa2073039d8027e20077a2d75ac77dea1c4d3730663684e220d5f47bc190a35352fc91d9eb24de158583d0cb3bb2e1dd0a9ec6bf07979be9fc39d6dc4ffd50e00dae4375300255899bbf3d7fc345c9d4b109d111c2ff05e49cab2bc6ed3aa7db7e3d076542ce5d5fb3cf47412892d1378fbd005c91cd74ddf26d8bbb218ef706ad9e4e8ecddaa8f8b3385e939d081aba5c302e26c0e0bf9914ebe1ff47895212f82cfc97228f4f4c69ab89d7f885cba5f57ce9dc43d960f544a0edab435c1031b571ea24ba724fd0f252e04ecdb28b38e912f333290af4d598f1c214ccd74cbe3a9465def4fd07f2f6ed1368991209104c3fc4583ae8bfaa19264882903d65f10b4dac4ee2cdbb1e9df0e15ddff475a69a1005f54853257d8768bb35ac237fa216fa758b18e7145c90eba225433c04dfbee01601c6dc32911c4b2ac02447001f357e68b0e66a9e708cfabead07996fa28a60896691191396f4f6f9a86c26130e66eaa3296c81499c370b346c8565748b3958a4722b209b66f9e15f6424a228656c8b34ce5e42e9e04a63143d74cc54a3cb70e318b28fbf5977a0e99993af726cc9daa2ca8915b6da4aeb05912242542e4b42750554df1a23bb29f5ba945d67d342fe655b4f5bcd285369c0ebf3a23c884f93ba7f23416a435bb138e9ec0944d566f56957b72cac65b60592b2c07adb104f2ecb1c731611090f09392d4aaa876dc050908ad4a9baaf7429de4af111802892f1f24126cf95203559d3fc6179739cad522ce08a9cbdc1ca0499886ede823cd9c62d779f1020b56be0b711ea2d8fbb09a6895d002d619b5bd2cd6cc1dfbae30700af89362c0021dc54e88f651e27e21d6b61ec4204b8b9b6391634fc3e040b672e607e6040282e1c743d7c005aca59893766f5ec80b5df3c0a28b54644c23150ea5854f3daaee6c648e282f3cbca2214cabbcad290b06ea5e5470f285558b6532968972f964bf52eafd70d2af4bf889d9f7be2025ae54ea657cda8e737b1322cb191c279f5de95ccac6fab249d04c7984a31e1a21cf4678046a77d9f49b9e810ee8a72edb9e9154940d3c4513c39bdc96a5e74739e63a9729ed9bdd9ade03e39f33e68340212e5496a7da45657bfb33367f7fc040017a35598f6bbd3bf9d4ca3b44c5b4bcca4355d51bdcc025e3f306c98e409e712dfade101a82bc036e9766f99869c1edb0b2daa8d379ee7e524dac36583a25c27e9a3617c2eb0a27fc01c635e728828955ba446db634ece191c6ff7f322615fcf4b29d4bcd9ba9ec8a45364e0ccc97b2cca7854ac0c2e867c9ac75a68885dfb437b84bd768eb9d31a19b400cf026ce343326c4856d23fc5d357ebaf6f6de74df1d7062cc1479520a92a365177b6bd02509095fcdfa81e152dcd351cacfd10b12c1f05b1739280682be31dcdcf40039f26886170c856340674bb8aede95909de3ff65f502f101633b7d4f7ddad2af97c89de225878f83f23fea49a217f154710c3649ca885f7c6c10795a54696b2267cfdfe32de727d2c5fc64f37e105bb8273b7568cd5f69199f4903c7aafe94b00dae975a237c42937f7ce48b861b6478166f21d87cf4cbb379809e866e9461cdac6ce7579ee9e136603465e6fde00aaae5c31eb314931674df7523a37badc7faab65d55880393a84e2f96232d9cac4888689d59d84db91a37c9c4d7dd430d839c17610fc8494c262c55826fd528ad79d7b89ce45422086e00d8ede7d058356b7258acc14a9d4f2246f5c7de0349130bbc928f6b892a1991b2f7ca99764fa22db868c02cbcd7c002a7c3894dc045fbbe86927db367d536c5f2284f9da126c1f4c51c6c3872a4d58422c6f061438c1ec7633dc7e389d1a2def000d9a81d0d5a9f921f736e0d963b36acbc0700cbd1ba4ed52da7085b0c7ac7a5b0daf44b9e3b3f565c317ca91f62fbfdcdd1d57e2dd5f0fd64ad92cf3dedfd61458bbdcf65119dfc0944b59d534b8c8eb202d064da7b3dbb8a66d5ad027d12acfcf0c54a7c41b167c27c8ecd8940f4d7d78ba465938d3b9026108a66c7062b6fc5f5d0294f952c824fc623894f8a13ee35674861bbb9e15f1b924b7d0516837948802981e521ef21182eaffd42151d65d1a57753c3e09df7eff41a81951be64a12bd1cf9335c92ba56f81736bcbf188823cd2f8880b8cf69ae33da9417e33733b8dc7aca5186dedf838060ab65e661dfe2fb36e0649c4b386497d587b4dceac0128d18cba0aa53989eaa356526a82807e6239025cbbddb4e8dc1347eb9978a7fe75c4f8a3a2aa37f3cd562aaff43efd51ae40a70c97cbbcdf3298a29d01834069c0a7e7d347c35b98b8f5b41c0e50fd3cb32b3993b8e1ba4ce1b4a91d58c1a56cc77833c8d1ba3b2b0d1b640af3032fdad155dc3f7b7a1fa282d4c6b91370289de9c46ced4c93cb62919ac6f90d9dae0701a21e95e58e46ddcc24c04d063c5cfed602f05e23c834d22969d36a4abd9feca1fd886bba2f218a8726bb8a088d0c0a6ababeb2606ae73e089891f8566d7823c44a24c2076cb6f2efcacfbbacda6f6ee5faa4076022898b51197e604fdd049027d63e3b8f8e3e9e32078f24b975bfe712f24044ce90f711ddd911a6bdf9338f36c41c1beada47c38da1b9aaec71b966d608f13eba2b69df4b8664db72544e24190280e8490eae5854c4481d0f3a13b57b06bd6e1e42419f16ca8d4c8a0da7e5cb7469846db85c68c5c891045ddc00a3577b7fac734947cc6230c1a8e13a23165188fd8bc84ba8c8afce1624923deebc310784147d9f311a079ec7b9d17ba9ffcf33a078f2bc22e321d28ae3a427412c559395bc17165b6da57c8bdd97a97d658e741402e1b4ab511ae9e3b41a78fcb0cc186d424e5c18c28f8c00804367f82e28ae5b7bb51f2952e4068f031d4529c2c057012c318108088c41c7c5d761075d2e929fff1f2cedde2ac0e66e84d72b0d2380c5f39681296bb4cc54dba96b77b89b452584260e82b459afb929b55b8983811f405bf27b9112235c97aa84e3a869ccc6d1b9842bb7ba5d50103ef3b83593bd3c4806a92ab652ad6da078cd02f1dcfeec92a742ebabfe843d29fc27243c9f66c9eb33f66c4f6bb3ed0d1d209822876cc7877522fc74bcd9688090361ff3efe6aa739191892ae476f23eea1baf305fddad3958b73bc0f620d1e7ffc61d0908c8187c1bef9d75d68ee719b9ea495ef867df3612486e6a13a45f456f24764624553ed79bae40bef3c4bfec1b4a251b2e6f139b43d0084192a894f07fd2f7cc361f8098ebffcd868e6bc2f04fd1561b46697c62516604cb98e19d6be70736e1e628a10b2b3e49cc0d3d10e5f24b6d54b1bbb03e5cfbfe76978a1168d4e09a3769fa1bcbfad51ea7cc50cc95af77d1165b9121b9a6c7a7104346bff1a82b81af75543c9627b3f0928b36033cbf21e4d792b747c5bb169fa6c05ee66f3ed11e4d0023879d57f2a7392fcb74220fc2014d55e255ab2e44b077d1afe815b8847a6692f2311adfd9a58e590168f46a395c62e03552caf980c11be003f6ebb0a9c1ada03ff5ab61dfe1985f571d9179010168d36ea2d0ef31f04f42778ac96f5548ebc3acf21e24441cdc3560d825bfd688c7d57dedc6b25dcc2773b129f14ebce634b5078b7418be4bf630c03105763a2039b77c17c8907c19e615c531019a2928fcf06a971136641ede93ba8aeeeb33c2c6428df95a105eae28386e7abecf30e1c5f9aad29dfd6928bc082a2a855ca160a629cb671ccd47a4935aae18075c6eaa6eb3dd5bba2b1e47e29d2daf24ef0ff749e561ea0749fb385eb44a983ffd4b7e1a0bbcb890ecc6fe200e7f3a2fd9a0f976ae27874db9b7dbaa582370c95992d119352eaf8d12711854f078e7245c1dc71754dd586ad3ead0127329e58e7d8f991bd2b0cf1f7697a69adef6c3fbb6db857325eb32fa77bebe600161206c792a24d5100e46153317246741a888c256e21708fc0681049c633eb6d5c999a2c59eb4753cb29b9fb1dfb05c2ca28008d42c137fca2d18b9cc41803fc470efdd04fae158ba0386ed99b80464b857ce3dcad64fcbf7d0c4708e68d1707535dfb55561f61c102de7a42c238dbfde06da5138a8c64a0fe7db03450c8850358c5c4fe1efe684e532dd9a6dac24b73d9285803c265e5d7523f7400d4e59b9888676bf833527cf834230d4d60aa50330d6b31a292314b5c49660785dc6c208b3da46a322dea8222fcc59b1e8bde59c691a30beb75693675074c202b8a64cc77e9981cc798fd754a86398c84b75e099847f1e34d593499a249143acf6bb8cc5db89242f457ffe1d712eeed533d54b6a9d7415db001153dd36a3c14f687d73ff9a5707fa372e4683af7aa4fca8792eb14c52e3efebe133cebabe63111a802bbed14bfdc82a3e1415848b7479a80fee65d3cb9f049d107869a75eb59d3178ac8c030ce44ad1ee8b44cd3cbef07a0ae1a968ab0017d210f5f838e7716954a4f63a4a42309e354f89f76ffca631534adae4e6662a4982fb5dfb07f2338c9183b7d11716f5d52b5b7f4d6737445bfb026fd5a742f2e8658c4715da1fd528187fd7a32ea9adaefaf9438bf996b3a491b761463b2c19a77d53e54098af53a024c58b31d29a0fb5e7a2a06d056f16b9ae2f13846b1ed06d816871de1d9748d687d69f4df7997a16a59848a4798a205aab6935d4dc9ba34cc5c5133749cb6285d26e8fe5690cf8e0d715607a08966b9fb3096af2db2a90a43af9252bbba9bb0d9a80806dc8dd4ed0a5d40527e90783d2c60eb0ddb281412969743096f37500bfd25cb34be2101c81614b454f06723c88d88ff892a8d6bfab93d773cae2f12e5ef5bca268d4e94918ed7298bfbf4539ad4ab93e944a12f15ffcaf9a2f4d9d02cd9ab3d6a339e4d9ac131e0897baea372d3a99b29e9d4b1d96134634761fd2695e239c507e1ce409cc944857450b2db16480cf4f77ec61c5f6bce4d0c4d9b69154d59c3f5c542e934f3ebcc85dde13acfb7cf7336f9e3c2e7a14c2a2231c5206895b67aa09cbc8461b6712589d79ffaea5bbb567c88556a51890efd93ddd8458da8f1e469043364083fdc72636309a7381e1a3d931d9c27a433dc2ab9ff9c0f47289a3925acc430708512f78884c4e08ea5e605fbbb8d5b8b61745dc5f8f7e99ebfbf699c4c171ac6f65b5381dbbd074672bc98679c9994d2328e7239043b745c8788680b73ab829badfcdd6cb46f1fbd0a204d3c1f7e66ee66305a6eae3b06917a7ff5a31bef05613af05c7c658cf6d337f0fc158fdac6732d80c30f9bb54910fb8cc1071c19a3f1fb049575fd253d6e5112f841b346209b8669799c9baeeaef65cb33d25d176f0708da023142adbdf79aabff4332da18c633c35ae915d73e0bb8a9c70fe9196fc4a381811dff615edbaf792751c44dfcf437d0eb9cba200981420efabfbe84242c4cca98bca30eea0b001cfcd63520d54de84099b28b052c366f6bff578352e2a64e70ab233229e07c5c6095f1396983998c15e7fa3239325195f8083ff9313b7ff1b9437b7db3b5a893e44bf40c448bc88f04f098a8be12bcdd80b3544be8b6672c404b83b874010c1e9fa1e5e6fbe76c4046cc84299c7aa6377a566627c284f2f0e5100c546607a8da208d003e64ec3a21e8b0097ea733035d564ebba81d101803409e7b2d6ef882dba1bf33d9061c8dc909db469024f50ae73f098a125733b561ef034a0dc00423422baea0b211f4e355a5a4b0523008b672b591815aa2440a3fb0f286758010182c701e1faa2ece5e68c5728ef631af46d5b48e40839b5f3a891f2d52c0827372af27b8b907af6243b94a877c72cc2cbe606835dcc6971dce02791c648e3cae46e7f9a32eceb4f27e37a322e9580a9c643888745d91016631ebcf18838548672e10529170dd43ce1db914cc98febd8843b5e1b53f4b491f353784c30f5f1256c7b4a79426e564bdd13b7d0923f14f5cabdab6eef5f334508d59f628794686f831ea10302a27c4ce70b5aa4973bd7540afdae75b618c98b0519bbb3cc687dd12929c2f800b0a76317574ac4649068b0ea5aa18335e51c1bf7d04d5a9108ee20193ebcbf78c7bcb0a7e10c0afb9ea863faaa744c637c61d3671d4aade053246d9e196ad4c232360accdeabb7caabcc7951c4b72132c8fec0e728aceb26658e020ad7a86387b64cc29c93e19e757072f671eef787ef41bfc75287ec50289e0f5c42d1c0079f231a5107ac2ffa6d0e5470317a30a7f3622c59c1e085e24d8e2dd7619463e0a1cafb3f010d7f4bc7aa971ae331074610fe869d9463a5124503fa04c2eb568ef3ea38e755c4910c38bd04810e06dc4d48f5e647972283354037c67e7afd40dfdd3bbff0d54a2d87a8f4cc8c053864fe53b0ced60dcc0f3cd96f3dfc9df8a70010b9fde809407290fe618ddd401cbbb2e8dc764e79f347238c453ded08815135747ce4b5ad8abc24b432166e826790e856f414b603bf0e446d96be7f177f610669e5875cf83cf6bde2e78da2841ce6710c45f8c6715241823374b737cfdef19d95c5d4f921c51be8f83dd0f51964c61dbe0672e57f4dcc430d4af051c701120537d5eea11cbcd0744f194db5bab0f40200af9aa4385ac825ebac475c2a8d30a43366351cfe051dd7e7d8c87f0cb306d3501d77c7bd9e115878730ff728245010b6dea19c24d994416fcd25531863be6d57484accde2511c3cea73f69f60481d113cad0f4327e094bc9c5e8ca12fb297a689ad65caf9af5ab12c983a6ea8dc99777231a6962943710a5b23c34d5da2d3455762dfc75b762c66a42dbeba417ece2a112c1afc30b07ebc8e796e3e6a4956e66b2121b5a75ed898429ac12f199189abd1b36c19c066b7ea5cd4df81f7c88a7347b26eab626acb8505b89810a1dd9b7c9c43a2b77d087e1941c836c866eb0181decf64be737bfcf285c315a44f1da762108def05b339d2268c61fca05ff84cd31aa310c2a77cfa8d6a9af34e1b9781b5001bbe05d0d14840e0ca62e74b99ae24570d8c9d2e1a6731f249d98002ccc0daf3c3b254e49ba940b74363cfdccd53e4e5c2e8471c0ae03c6fedd08f87333da1a4ec1f4528a7540eda66345383f00613893574bce9e498c8c7dc4b7f2d08a19d809a8d187427d1d5eac0d275f9ca8e0cfc4e9e0af18d27a4f32a0e79fe2354d82b56413bc6e52746dbb695ecb7ba2b016bfb0c25f52b45be80749b6f07ed5615fbddef92c240eb4673bc0a477de5e41ef583a63a99b185c911fefefad951debe7ba8024e2dbd0efad0da9099cf7d97ee30b99c33e4f547b0da2209020ad6c203ea361b247126f03ddf866e047317fa34a5edc263c25c60b027135c2bb2ae140bba37bea31d3f344ee6c75b2ef40b06bc4fc0b8a2850f40c5d3e2e162eeee6636117950fc62015994fbadbaee22ef78c520b7b3c160c59a5dd1e785f961c4a34c4babcfae976f1f338a18f8f09013608b7da9f1c5eb1bcd37a7684b06aec37b0f76f3f0b2b5f42e5ad2ccce0f151fe01fbdfa1d66a27f85a6ee9a1bb9ff44c22dd44d8fe9db5494f969dc66844cafaa31ada4330866a4716dd3f1e44081d048bd5dc09328cb2dfefeb45b8bca130ed4b60f12a6e4fa8df2db99bce5bfe69a0b673a5dc1c76b07d9e0706870480ff6fa4316c9da02872819ca15153c8ae111c1384b150f5946f4acdd2c80c35d2767f4e1ebe53d7a18716da2311e1594ad781e9fa25a792209c25e00cc26007b058b6d882c657bc21f2e42b169921586879463640693750206ba36ac08dd424799a93500683ea7e4ee37978851a2d5672f69ffae715a71a3b4f1ce2dea6614a8952d22d4a44e5e0e3f51cc650d238a316c0560e4929507462c2b4b905462e7b3f1b8be23d9122a5fad8fa62cd70c35df855f3f044c54d5f4ae457cc0782d423568493b9f7332b1c739546ab97c49f7d0c841ff88358418a81a3ed1d95e1dcf69fa6c4ab0d3d97e79c5d30b02dfd25d5d0647e619187382ba78bf37536104cd156986e1d7cee46ab59c2fb8bc7521c47b15e74f647421e81370434ea4b2089ad9bc210d952dd9ecbde81d3908c8ea25564d932141fa64ba99d2c289e5d4ca52f4be584bbd2bb1e3513b22f5e0f52ffa620ce316e412db6fc810f630e01edcbf437f471e0bfa759c5b07568e032d9cf16032d0b63257ab4ad4bf254ffd3c850b5fd290c8cb3eaa216f26c1613c3733b22fa5030489161a24531a8b0085afdcf91ecef2650190841d4a52426909ec4fea09ce313a22d4ea273c7f40baa9482d9dc34eebd102fcf9d8c6ae0742e2baf254161b872a14c592a9fdefc16fedb1acc02c716c0e9f8398219b3b9759702260899e7b24094c553b7d8492fdb788e48183471aa11c0e9a3120cb6467837f3b0fb07be5abbd43a3947e5331f4539eb11bdee870c17985a9546aef730779752ce87672d1dc083701782f35bbe9b82f3dd70bca5ff7b11a8e99d84c19d806adb5d2de48bd401178765a98a4c02580f97ef612411653bbba17bbeb43ea53e727a794bc59a9e728233c8fd4c5f943de98c0e6e49c88cf0a618b81caccdee78ea86700074b9b34ded9425af4a9be14849d22d7d0c1eb669565227d228cd25b6a6b6f734c551dbaa95daad21ea58e0d8b751a9f42c03b372fad8890758c05cb5165cda4e93bba26cbda4c951db18b494f73edf407a5b8b6fac35e4b9ece9b2c3223a3c3dbae844127743247bc31fb19598738f495af63f8d96db91495b31e6c2f25a5e5475091f638291ae8a5f3c826b8aa6af4087085001405a125c0b8f711c1d59ec511017973677ff7f4a9e9011f726047afd80b2929a0139353581ff97b8b0bebd11b69da535370705a93ff57f9e62666b77a0d9d96c9ef00abacded7a5f75afe8a0ae9d4ddecfe6037fb54a1c44c2cb43e6db0f5bb1cc9ccd94eb0a981cb5adc31a5448e4e657d546fc1555808a51bf02c649088efd07ed069721c6ce04465a0c62d5eaf364dfe100d15711cb5cd612c8692ff710f20cd58cb082c7eea784df6564a4ce5e671a30b7536a32da58fdc52214a0d0f363edba52f64cd2628faf6a09c59ed62ec4b7dee675da1f2accc7f9dae6b73857ee3f76c336b070a1a07bcf5eb4cdc599d107618d56c3a763b2f1f1c0e61363bd9995e5559a7ceb661c3145d72615486b5b8531d7d5e6ae68afd3432f69bc05bf040347d54b8ae1c7a3d00d6c45222a4028e34426490b11461f23019ead2a7551c7a85f422f6810f00434672bee03af420120a03155e7cf75f3d945a8076175b68eef540f84b20c78a45c7d7aec2efbc47507e8eb2afca29e60ce256f91811e6a6a0fbd8f795456014d2b5bdd86105c625ec5f45db68d2677f4336c025c2502f96bdf5aabf0bef5af25cc37440f51cddcd7f29405be10a15e53a26219d69a8b6149c2a96c281161a5e64005bcad8ff53b31a79c9aed1eab78eb66953441113bf65dfbcf1728b01688d2b6e6aa9395a7eb6f354de545da579d267ac07243a95d085edf3033dc851ef5a9006a91d725c3641a0eab2f1245ea995a5d23f8fad3d358f2bc88951e5a2c17ebd4cb782ae8b5973620e2c418a9f378d39eed499d43e7c2eb27f33401ecad056bb4f44aeb5c3485f602066d98f593b0e651af1de1726f9266c4c276246ba763f2166979eee0c6756d6252fbdfe526f6e7f78969701ac43e7d0487d14a5a6ee7b69d00879fd72a04596d48abebbc1b1f4cf9016011c75b52dade4c0c22e3ed8aea9dd87d89179e12166072db176b28359856d9913c660eebcabcf73c1e4bfb9e2b124146c402699640f92036d1d038bd7ecdf9b8878b0522090b38af865387922d4e144e581d73f9831b4aaa0bcf613cc4a826b3135678680559ced5dfa6fe3a1d68fc336314acbf4297af673b8d48ae7f632ad9d1abef787a3c0f93fa3ef2876d260cc2223403b0ca2336cfa869801ee9df7d811567054574b79fe5ffa0a5cde0052b319b133108797c7c8755672ae07cb71b9cdeded108abe9ac2dce90bf81bb9335b685165cef0ee15776849bc6ca11a50efa21d3ae14ab20ffcec867456db2025c0b696598094e3c61e7832133addb8716cdb3f5744786088da6999ca382c51b16fd6308f3169e6e01120fa74b8920dc4fa6f7ca7f6d8184e7b299a87420af2f109e1c8cd730ebe3ddc3318a2addfb73cb48eb8967c6014cf762932977b758ed9c4a6d2efdcd8f97fbe31cb8283483bb4887180379c83bc4252898445d01a230ee96cad7285ee097a2965f7fbc96800d0bc84e539e29cd8da0c55cd9d918ca98a57fcad698a738e1044d9d772b0338b9c66dd8ac81c615352941f1f01f20aa294ffffeba98cc6af81691beb398fc408f3f3ff5965de638a4e4f6d492c8cdcdd7066b3ec2532cd91a3a7cdc54460bf9647a1f699d4ffab59f496ee31fbd9360ca926e18479a350341c4009b5cb4041e60704b862821a585546368a2af7bbb6cba16d318c970d6a52cd2c915afbf2601c4485dda6930f53e35def370e25f56842b77cc83b6422ff12af95d4ac675d3f12f6dea94d017f182755f5aa2e97b1627e14293552c8964e9c1c59c104bd0aa856dd9f5f17b15389f1c372cc5cfef8e920005daf5672a28cdc258c662315a7419390ade7457d35d02606020696d43d2e166797a6950c848f19d2f3665969864e3717bdc7438115564c1e355c20c3d3905b0468a0b027fd8b195f893b3ad61efd8918dd68c3cea5c630eb10591f95727d16a3f566db7ad1e1f670fe4585c88948866fecad10e4de24e0938cc6eb5eb6d27d9e788720644af8f0d633b32eb6056922bd1dda8ed979ef55811639b881a0da57f1bf2047c4b62acc01bf2db2b974d4e46478c79c4177559ff90e6a4cda13d30eddac01346be5c492886d601941dbcee839596d59239a7a5f744862e1b858069e6eb317e04aab0fc920bc486005e68ab404efb6024ee9cbe70c8d7468379a73d9ed5f2d3e90646d663f5d5921aa63da82f4bea9e87f3064560a1b08c7226b07d291cdf8a9926b862530b96cb3b8c26ee2001edc2e817d806c522133d1f23e6458ab2f7aba43a185fdd0698723259ca9cc3ab93bd65fa5040fc044250d3cea3ae0d44aaa916aed64d647bc6ab42e29fd950e1124c96fbd0fa3c21d62899d2d33469df878037fb649caf834f7cd38c8dc5982f8c4e38ea1a0b85fb9cb4f6c27643a91a71b2e6a6bf185bb095f862c7b3dc48e15d93272704ab5ac177d3f45db5c517dd9ab5dcbfb2d9acea4282f0e68a65aca66ace26e0df9701aae74573db1bcfd40a21555a15d72d04f250190b559d1a6c1b9729846a0c5f678e40ebc9ff75bf4902d5656610a6fd410de5eb9023ddbe48031ee2ffc13dbdb6d985001085b04bd95370a84967ebec477d6f3987ca5041706c765179b966ade339901842e73b97169924c761dbaa17cbb48f0b9014802a18cc7ebc3281cb0bede2c97dbeb3591ee15a4e41cf1c5cca8332115db167fddcce54ff4f7acdc06840a8aeeaecf7f1cf4dae5c448472643f9a48596446ac964db5bd33bd65ad00da0d15fd77526905ffe3165d9766c6c44026a4ace0756482c82ef9cfdfa6939dca1214d6ef1708d5ad23b4326b667a7489e197bbe9286431ef919447a151c19466b0a6747651ffd2104023736c3f0ec0ce3d3d663416ea29bf99f3bcebbc0b7301a70b668dbd94d87f73c09d9b2abd4affbae4fd8d6d9752c516c451873461ff7179cb814fdbd4e511d1d1732c6eefddd79d58b4508cd6ec0e9dafaef250d9fde0086db644ac2b2046fecd3164290880ef0c766a783c9617f6957452c833b4c9b555107b4badd923c6b3b43bd635b99cfe6db6d5e1cc6cb29ccb4e6f9fecd7be4286911d90faaeb9214b380baccd4db227f82659207674909982df04170f348193bd7493166f61c19b593375100e8f9e95319c264527b1c71908e4b60841012f535f0ed7acb266960685e2b10ccf026636c0831f3fb5eacce07a8332a83f0fd53fa32b37fe64c7b12ae25b1c0b55496b551b80e2a5da4024a33c4b7441d3f6f073245438ff99cde19878732a5c889038e997bee66c8524cf6218b3bcb3e6493ba974bbbc9c941825adf61ac075cf929cb77df17eb8a1b5c92396ff6452040d9e6a678293a35993bfa45e83218ada6493a29f7031eba212ad95a7775f00f1374d8a59014c18192413936e0671b66e2aa63491ee19f76544e620ffe1650ad11dac23b4ef4ceae3eb1da726f07e96c9d1367655e142c8fe6861263c78e1a91c348e50407b5ee53a2091d36165fba921e53e85d1cb24bad21361c4ba1646c9b4f3cbfd6ab3920d67fb0423825d048fff7ba0b6af206d875aee38fbc9c734f6246f954a644d302fe1f6caace3d503c711a9d82cda30e4d476eb77cd4cf6c917a5006844254cccf3816e977a530e8e9adcdd5a793e7fdeb7f2e01a1b37b51ea9463af675424e1240e9d39ccd5dd3762ba2640ace15fbaad75d0b2aaef62fc72a9c683cd57d6c39e946e4f8e5a8fedcfb74d3fd3b17360058afce007bc17966bab3ad4b97d3a9643efeb83c325a551267d8637bf09e9bc72031a46472c0b20527f123afcaad972bd1dfe11785850bc1f487810cefd0dd2e49610c2083231ed482de210d40454e564a95999375f891c8c1fa2b98513f759ecca4bd77d381f26cd89b2f5a4bd31701bf9b5a115f56272efc042a210d5d93abe9e93297a7fa545bdce534dbb138805f655180e464f5a5470333c40caa7d214061f91031498059aafde7ebe20b46090b7ea89af45f34a6c165aa48cdb3775bb88d240d4d4a412c9982cf2b380f3a56b1b486fb292f93af6581fc584e70a5fb5962828ad793fba4ac2819cdc1c8f72e7ef373f2df5be4a46fd1348a9c70ba4bc4e53dec54326afe8101c35acd1e707ca00e985965746b140459b2a805821553eb0375cf5d81231439bde55da2ae959ccd1bdf84b2fcdd4de6dfee011562291e07d5d923db45c374e908e49e1870e14192948de0c75543dae7d01c06b48b888f7ef08f73d264996d16d56457f503837d2693b357c2d20555163d35d1e80039e0d37e819bde52a11e88609b23a3943f48cbe5fd4a3816fa9fe63731cbf22125162cefecd2530b3ad82dae17ed6979333cf13d0346e67efa3fcd9e57867477cfa699eb825057a1607e339b234e0c7064e98e20cb72edaa9832b43d20b3523b76d46ef4e508fafe6d122bfc6a5279ffcd7d7caadfa15a373b27c9f6461c745f17c572be9621805c53bac93eda33df26a03f2fdbb4fbcb11a72741f8cefc5e58900a871233b9b574d54bf06621bfa282d0a4079ff5fa004d742ae22f17a573d75747df8e4f3351ddd36f0f3934ef9e201468f10c9eda021c05256863c2ca9f61f76cc3fb0d8aae5173fa57905b41aace8179f4803ed811e49bcae438a706ea8a36dc013d75edf6a4b2c9cffb824fec0d184a501944a6a3905588c5e21815a625e75375f3c6f5e3115ba628de99e8ee3d179c9f1586d6801376cda23cb17a7493f2345ce8d36d5b8ebdedd7007de753f4cfea8ef48dbeb0eec9215b8636691455a2faf401fc5973c6d93c334336ea15ec436d20c8474474ca7c5cff57de1dabb9413710cd202190496bf20e7b0aec62d4aff4d805c6535cedb9b2e9c34cf475d7da83910b2de764340add4af0d6cdb10b2101061a2474f3cba6f6acd82d42002a173e995322dec8b8f2913b7f1579a070b188930bcea97c9124b52ddbdecb496eed31905355b5dcc2951e35bd8a904e204e4183556e1f1bc4d34c86f0a50d317fc78926543f7cfe15fdda1ba28a1db8438d091a4b242a489bcb140e7e6ce529f3e9ad4b1a815ecb7a7aa7c836876273e84e2be9ee404dc77c51f452325128b80873391f950bf83f9091bf9208386b229eea2dbf77ff42bddabc4f58eedffda74582430549bee055165e96d2e5f288ca5be9218d3879504e5f662807fa53f21d8e06f4ba387180839a9fc863e3caa87d6c44b1b0da6283fe9b869ace2d27744f5b5033125eae3c85c6accc3f19269bb3cf7bc7b76f5a6985a39c8543d576aae62985b64d78e7ba18872f2f75c71d50458e2ad46dee8c53039c3d8e4f99b84cb6ed8101ca976db962a2e97cabf8d707f5c97ae7cec18fc0a1d9accdf068ad28c9c2be4c37d9894ce621981388b899511f70cde91cc020f8fce57815ac56684e62f051978ffcfc511a48eb110b81ed5e021247defa701e90b6f34ae7e47f06053cac3098c41e4734fe498a3766d3143d708c31872f00c562d31fbe509df528e4f1746b40733d0fd195dab7361f7ffec27feb731ea7a05cd8ba1ad00cefbd115dc88b89e24e1b62526dc60711e0debffc07e56ad9c699b9a1c7f171e305a3e67ff23aedcd0892d0ad0a3a4decb6790dddc460006c2e6169abc23d598ab8193ea405dd62c2f7ec57694dbe6e9dda8317775760c2706af8d27ab7c8eef4c93565f2e05e21f17d5ff2596903e439a90a1cfcac5be1b0b6c4f1e0e9368e034689062d94469f994ed14ea1a469b06a0843170dec9403de4de92856da4efb018007df556aae48362c139350c1668175c6659f2f948cf579bdaad0433cbfbe2c43f4a483f450b6176074d257961427494b9137d259f8d53ac0e62573237526593ff7f5d30d327787626160a1411a67bde1a283ab232b14987a108c21cf604a5f969eb534bfc36043cf77f58b265b1942606de54b2f8f692119ba6f40b4cd3c2faa92746b59fe06b57577920ce5862312cedd1087e099548231f34e3fa9b0c96b0e91db817309e7d898b6566068defa9039ee6a42f451ae50a78a0d849e0b714c8a0167c1d20a0e24a7246349cce1e0394f98c2b2508ee2e05f15c713db3012f053336d2fa5e449b43860ad2f523bb4b19fadb6684ef615acb8078397de7322abcde7e46e3e42f20d5b0a8571d6e8cdfa20933dcb2ad875d0244966196b0b10d57fbb17a8f4f5d5390ecf3b64299728893a86008dbee3cc4c9c7485d795bcfc2d287aa9abe8eb2c4bcb7506e355d8628246487b26d4d1fef2f249c44f896641e41090bb3afa0efedd356b650ec8d6152e01c3bf19c565a8cb9e6d8814c4c7e2948b95883a75e08f204e7a53203fcf0f6269d90b2df9e8145e0ccc9ab92079da4a104dead71593b1cb24001d736e5711aab7f193571e6e811904e0e6c49f048ef9a59ee58d9c577d3f3a9eb29e8f47c54f66506e5d14d2c59abf843f8d551fc339446656e3079e4f612591eb39fd440b9e37ee97d429ada15849710f4ffb3a6f685e87aa7cbf599a00ec75a2c854c4eac215dd3264c8a73746531578974834aea77a9477c8487e11b19d2e453e9f39707b41dc47b393a2cff09d12123414a7740074f91df37708b7419b02e66bc7187f373deaa1c99982b4322200a7f5d78a27be758bb6846242e652ab12025154d4ac78b846d67beea3000d4d12ab820bca02b5caff42e1697609219d2a6f6ad4db84afad2b2774161d65f38dde385c4eac1e1c0a1fc21909741f1eb1e6e6f646c75bd15d168647bbce165da87fb27eb7851180135191ea13cdeef54e5fb91ba533119028141f80d0155c73c40e66018837dbf20c21852ba61497641b788255670261f3fe69fcf583c319a51483f6e3466e69fb4e478cf5033761f4f3d49cb83913ae3195cafdb06591ddc0230bc260be858c964b90c465dcb271951d90ee4ae1963b1363c9fc77f0363a2ad1f2544cdef74d2706cbcfddddd87f2cd186aebe9be2e5c0cd53ca2759ef3e1a1f21b678dce42c42918381a5275364180f7b8a86bdb963d67b0657b59476722a321bc91c517f92a75f3b71541bfe46cd6f1ca790e4e7a75e7290c5ae3ea271b6b7d5dadd00975eb4cd02329b3e8cc2172e70406d0ea633b7f55c80c8e693a2e28b9032f6f86272b3dea3b09b50a99e2accd2edc527b7e6bf8352fdc19cc57f0f8c44415459b78ceea049df9d8268bf20e3255d85c4fd8d06c436a130788487271f8af495b9ae3cf87dab9b7b133f858d68c68b2575d5811cb41c9a820d4b3cb1b0d00e79dc24df85fda23295a39680f786384c1d1f2068a5967480dee0cd57bf4e8a1045a78594f4f37bd09f07ded83193b08d3fdf48bdc2ed3444f4129c990ea385a6fc80db8f04946ae0f13c28479155becef30b10469b553d949ab3e662a64db13267d1bbcd1d32c381c698d90f8795ffc0d653d93712d7d9d8f0516cfd9ba1a2189f768ae6885dfbe191a8bc171899be1f5ba68492f2b10c11ce8cf3493b8b779e91665a7158f70a41855f6fd6d3c4c271af13b51b216b0bda1359978631fc4bf8c9c2eefa230aecf15ca161a26bb9aa2b6f0097501aae918658e6f9fdf244d154ab42c26314011f8962fcd7325e66ee8524110698f7689f04fdaf54950f0d50c9b6837b869a7fb10f2bc2fc3aace11bbad93a778c65e424bb6c558a2ef1ea23e5b2a505ce0e3466ea6ae36b2d23ca0992a3704791d19a467d13d43722c3fd04c784ceaa22287227ca7c7780db8294ddb15a48623e3b36183aff6e252c95944608387c3d412b64224daccf79f9d44740077f39b39af0de8d491e7fc28db6462686c784ca4d1ac5e3a4f06fd0be66f7c23b4632e14335844b14ecb115f1ecc98a7ae1ea173a836ff89f6c2053316428ab3fcd6a580f59e5a1853a1928fd6f2ba56dd5e11311c349d5f9fd1bffe5e8702e34c53780d60396c214c2d259170ab2b69ce7f390c8f1e10a71c09169d33bcdc73de824a28665aee015675f8166bbfd7bb98afaa859d7c4cf94bc14c814194c5cb0633a0aff883b0a8cb4429579e6b00393a7c239bb16d723390592ebcb776117ad5d71cda6a0d532777aa3669d7e0d5ba015b58121d212c7109b0477d2bfd7e9941055495e7a30d64f079864ee0c1e1b6c7244c246a5f5c8475ac34cf8f76c9b757f729be18c5c5cd6ccaf9d679a941fc9793380b78001d442db6fce0a6650b2da50ac4d42b46750c207791d380a3b10eaec9063567720d4d243b7f6e0b00f10c1142090e72cfe0e7929e224974b066e88cca571c4f35f10c2a2cf01971b2ba1b6ec3b2e4f35a9ede02241b95d645b92c8afd1c0a36619e33ec7f64c8029a0f715459ec8b72b76b27f22f56b66fca9f155cafc041c91f3ce363ab6e53d609a0b23cf184e57b0ad5168dab002c4b1cf9a51890de59e22bd1396830cb21450898106a1eafdd674b2b236fc78d1c680ba7ea9b348cc3fc59220e1a0d1d7999cfe16deb95514e50c5ca009f75bbb676dd78547a9331c25c0de1f9bd48ba9ae84f385edfb1e7cb5697b1904eeda6fea9c9e5747b89f155cfc1290b636a88fd21aa09e431eff1fdd536669b082af178997d97a71857a2da988352b76500e93654b529183e73f6646ee92d927b6bf3656a99c472a220565d5e7409e9771bb664e87d5425198211b0384c93d0fdb4037ffc325ba87e6d73ea934ac34358d14e2a1dbf8041cf061604cace3c183d4bc967a250fb9168aa5d5640cf79f6cbbab3925a6e028f860d3ed620321341483ba1450270c1b1bba6ad42b55fbab7bf73b36910307d0f4f4a6b3c0312b85747d4122f1702e1e19817fa61306e04c5ad1e27deb0e2a6126293f7d4d1574ca4c3295465f0ec0edd2414303c390078ff87e03e7f0110dacab66115a854c286535690de89b705bc7936997bf5f42fd47f6e62dee66c7d78f11c53c0a491671abcf1261342bb9b1f228a06c0d997a9c53b6c5109a337a11da581ab3d9b4e2c6d7abe49effab7ee1153f7a0a0ae923085964cdf5f307b26a1eb9dcf2cd77a4f9edcb21cd1be5cb2b62b340f190e1818c6f65d3fab17926be98111c927bb5edddc58a0064c4f1691f7576adea54b1cccf4bb9e2c7a8030018ee3d7c8f3ff193c0e0870330df57ea7cedf3ffffca50049c52c6363cdcabc304ab4189d4179aba2c45eac11d0b76d0461a5fd4456c7b0a01139fc24d4019c733ff58f3ffe81779b859e43d562f0832ee99b2ce743d61779082948b5b8390ef807b02d473372048760b9a3f4ba66449c71015a031b99788bab935fdf7c2ae7219901187577c06e19d5a1edaa196e333c5f25b218ec6d62259e36c26fe699e705f6aeed29efb0e8d90941037640b13bedcb85c88b0b19b3a8438980b67b66bcefb1ad02eadcb373a3528da09cb5a09706b14d33232aac530b2e25e00a9045b0de424a53e3c1d5e326077b85a118b5cbcde17d978efd072556dc5de2436086ed0424d615610ee32766a9c1f3d386f7d101d64a62da78bade27c9a1e53e3f6cc548c80726566221c33b5caf68bf0f8273514479b3fc943b7930c97e535ed2f1d2c45c7600d95dc05fd0a98488b939eaf0e38cc3eb4ca9ca1ab6b963ee065e07f7475bdba7a4016463249a12a65796c786cef391e907546e64147f79db20229e1cd3ec0399959f6a798c19952ef666c80fa0ab8f3dccf2d86a36532df699c6126b201c9ce52d5bd0182faf038734510602d8afe68720ab339d1f644654e2d7c80d18d83da9143ad2258983529574238d496d6f2cbeea02125a63c2a0227153090059c66d4f93c4b2f1e9b65d455da9450e45474951f70810f9ad9fe72b3e44765cb6e56f8c18364205f20779d65b90b647bfcce409770ddd9d3bdde86b466fa587b6001e7eb63d0c551ecadda31d5c4d1d2ae820f97eeab43f5dea5b0b0c10b42d13f02925a24e4db8362c7167156b21764bbfad0a84dc89eef9f2350113a5e5723dad754ab78011bedbce9cabfb0a63c7db6f809ce5ea60850a5ee55f65cc9fe7d5346beff3001f4601ab333e4b9de824079ab6ff62e0a2a71c9c0e060f3055c832397e9bf8118e956e489dfbc2cb8bd3eeba70ed9fd3631dd245a403a28231d2dfa441348c9c30f94044c136e4cc48212757adc9a33fe360618a7485b48b987d1bedba9019502b6a64276d5779b8511338f56e055bacc67512ee85825d44cabf5734dda32d536213208d2e060cec878e20e8b61016e7d0f0c358ddb7bb033e8dbc3c56edfb839b088999db616b7f0dfbcee91e140acb176d677487b86ebb8636a32a17dbd94878fa0ec043482ac9e007a7851b19ce99fa89815bfff81c44d2611a1743e9c0f0a834ebd9c2b020f3b31f0453315fdee35af3ad974cc6eeb955d366726d99d0a3fbbdb78cb074e79e7254b1ffa65b1b01dae31870720a11e9386f7b3652cdc9e32804d700e6a6609a2703702a7e4848191d0703880a9937cad2df86e971ac929c7f1708e8d3c82da43436740dbd368ebc59a044cd2480130f491364703bffb5c4d21cd9d3e2c036400ed8e6f8524ff80bad5fc4b6c682e1bee45328b1add5e18d4a462edc1773259ced1c649d214df871ff5e02d3a373dbe2ad1699059b626725fb55bf953742e9832a267d26f541e0ea76558ea6e99fc54220bcb17df82fbe0463679658e18c37662fc6362575676addb92e8fda38db62310b671ff2e23300d2327f95d65c6f04693978884a5814318384d93ebb2507fc68eebdc6e643d96ad0002bee0114b00c8e5613dff164ed36e1524f6906da21e0f765e33c3d40c2e0e0c94ca943f3c14fe7537c9c7b08115c50218df109b200df3c77324cb7dae56612620821022a358edb8d9e94778f4beb9585734c12efdccff3d053744974ada8c236ab877705c4d27ad43f909f4859118ca24a0329d9c108525011683d14e2734e04515ed8df66e6e2d5d7cba11cdb5c5ab8f43523eabce8325de58d24a28c3a5261fafdc95d7fd8b3c06f77bb64e9413e53b01300dc694f54efa37f9a7b67927a41c4102974387c9410b338230a2099e35aa96297b41524a34ec38bd70f23b6e4d1f11720f0ade9c6b6c6a74338961e4d847efc97283dce97e0ba35136b8a030f5184e68d7b4bfacc1030d0c52b73f34ce84e4fd6ef9bbba294a6b4b6db877d59c42e24bc5718cd1c5f11b46be8b8198dc0d9dceae45bdca8c1dd715f1b254916ad8dcc65485248e5ad45c8badf6cfb278db8b9200a34279086748cb1a5e5312a1fadae0d69cf8fe261727576d27de3d024c210b4cd7014dcffae57fa2645233ddb11efa4e61b8f42dbf896ea76a5828c71339e6027f0215ae445d8a22cb7b27a4eac8481d72d7799e0cefd05ae0b6cf9db50344069154ede5afc4b72814093e29956bca4abd639e6c3a8ed4451a09928a7d13af9dd99a20f1b6f9ea0dfa5222903c1b351efce0ea7738ca16be3f7e605bf8c273d8ee8a4442b35f4b8e236db2771fae0f35956effde9d8c410aef69250bb8c0a97c764e26fcd62234c636fe1ddd514885563e71ce5ab09f7f715bdc12319e7048a3e946e1c6d3f3673a6047a00a8bf4826d96a99734a024f3c3017fd0eed70ccffe5a65b7aa087eb210b77901bce148fd12eadac31187ad54ae228b0be8fb12907d63f457b8ee435491fec32429d3e21a58194617d843404ad162faa3407427be2dbb3c6fe4b5abbc946e8114fcd0f95478bbb06ffce0e4da3d0f5a1902e1e33668d2b020f024f57365e7a03b58420d87efca2af2d0590968f2812ac68de4a57a7f9371c2def749966038f84dfdd85a846fa9fb3e37b94b72f7b06c8b1979afff95072bead955142d96d6c302388c31a37b70b2d0337e2fca7553653387348da3f1eb09625a954c9e600cb4a3e6629153b63fd7c2af1efa65de8f694a85797aa86eb2ed3e58c71d9c3019a39694c69d596eb04c378b5ec6aa10a183127b8a1c3f66bdbac8875f6d1531b4305f73fd3693e45f26a623d22f02919f9b6795d0c90118581d98d7fec43cb992ade85da50347c3bb29b958420555e399c15bffb5c0f40d14318074da47522883d96bfb2ea6fe7fcaec5ee44bda970cb3121b8964b50b17532a954fc32e357199a22aaec5ca6aae0ef1d7d4cd67248154512a0f683f988653ad3f1898bbb8207c21c885302371a1e691897dff1283d700a0495aff2c55d6cef5d51ef905fb5d25144499f27d69a7089f3fe984cb7a0834e77907de700089ae415ca90f5e7af09ebfa8ac7aa0cd8e1182b177aa0001a562dd0eff60c0dc0e95f4d93ccfc9c6206dbc62886a4b34a34e905271df557cf3f07d78cd773e08c3e3758d1bc3b7e40c80ad15c6bbc7c0fa8ad07af3b1506610721386666b685020f8e12b27e46bf61d6ef697025b2690d148d7dcdfad9c9b3b3fb02d8b78697505afc569990cf4676538981fcdd98536c8da6f5b2af58518bdcb72a64ced0c9a0c060855d191f2d88adef2ebace3b655b17cec3260e24c1f483c7090bdcf761c5d84005942af0448e93a02be36f259f27153c7e1bf33d3481c2c8da33269cb8371d24c0ed4fb28cce1a7c5622e2cc54a278c781533d0b3550d0a23d254ec5bb660ac7a1a3fde5bc103e5b3114767facd7e6876b15669744ea34e6b70d00436d55485d1bf3afcabea02043625773b623154d6a9ff0cbb958eb2700309c4a946389f95aa1aacddd3321bf7b332d81ab0840a057c591e13a587d6c08732821ac464989662fc69fb9eb2df83b12aa5228ff7bc00a47a7b2eba1a231d0b16bca77552b9325c01bf0bb6fce1630127678c07f21bb97d5d570be8350c15ffec83d22e0f3bd90d517217c77b848db691d7ade5504e5f3e2bcfa52c4590840d325b1adcec3a35bf489d0807462aab7f0f0984f1f0a8783240b8f161b2941c48a52d9a2189721c7278157d507e6d203a676de43d21017cf17a31d0ab64b4b07e6029f434b13a8e57938b91788b209602d6a580a352537077bcfe87eb5cb797788564ae50aa667f27d13d357800f90b84b4da42b6409f5ebd287689dac5ae29a7af166d48af371ddc7aadfa82f6fa87d6b882ce74d0b0401e3c4a156254c772da9a4e26a15952a9870e89e96079145d51a1bb981362bebb53ae563741c6076d963a628cf8827a1fe9634b5c72e748b458adc35463592614ea5211ed9815df691dd5a3b29d4a9ae73d9b113f7001a8c52124cd093b75853e4b8113fa4b97c9d06afac0ef9802bf066e0897b168b18eaacabf1ced6fa9c48d24a4050dc1ea2cabe55f5a49f25cbf804d2496edc12fd4ada754ec4d392e92832f6cf3f747a68bb29b075b01af1045543de4e1d388b7ec3b3305dff3ee8eb94e19b2f8afd90fb7858835ebb6825513953b3422a262180a7b1c4a25b34b67a50aaddde351d93c29525f868180a9712f64608a84a29b2e367bfb9ced2c58cec76c2a142d3e5adda054618ff1d9931d58a5f1577203a512c683dbfeb71814ebe73d59589f28c7a619c1d56f46d8270dcf20818cad959c5f0f5e928209481b489f92ba6a0c18e8a8ff73805ce4b7ce5010505d2996913091ecca569fe8454c94b71568737c436e2a2e5fddd9b437ab8e300a6078a6b1fca09cc6b9d65ecca6dfb9bf231d5d7b07b998c7a7a60a3802063234302c6040fec54d65e01f2a586d36f60c25dfcf539c2bbde3add0989e9ec72dc420eed535a069eed8379fde5f50397ff4e0c6066c417f725b3e9f98663fd35802ffe0e426fe1030d9a0a30ce4059fc28c1002853674e08b01de71e2130c96d8d4ca6b8c665fc775c845ea0d391049fa96b4045f13d3176e5a0039ca4eeda38e30b5f10f1ce0be1ace64384980b8818afc398d6aeeefb5b5532cc011c8e4d218093870248ac740d66e72c711bb13d13d926169d19efde0380f2b81662d7547ba43dff7d53fdd0755085ae2c5e7fcd1093dc8e806fbd7f516aac9d2f955eb413729eabc0607970cfe492040de6f9ba80703517240bb575fc43bb39186d91482e6323f6b3d3fbd66e0b348ce9b775d52685888c8a1ed7cd9aaad7ac8b35067cd432d24b5997e1377a75ae489bb180c8d1f3130dcb6ddd897b5335f93c6f25d27310069d467f1600ecf9775e0d63dd8e612d737bd5fb301c5126e9886f59c661cc384be032acd94e65a0b199ddc8adf51d9a72ff46dbeaefab12c7a71fe65c512f4ea28d92455074d043a9e58c8a91235da785834e95d9e0442ac604bbdae5600d0a8622441ad679d3f68ed63f9eae0e7a730937a1d8a1be17ca8035691fd460d52107a04cfa9b97129446220f74d5031b92cb0e7f6275ce4ddc9530e47ee0b62279330ba4db8bbe42242122e80a3420c8a2013ec7538749f87c87d3e058c3dd3bfbc6ee111c9b0e0c045556fd9055d9d1b3fbc41c6459db9a8b325d07098ee1e0b5d5d41972ab60bcf33edec6717e7687ab60de1aa5392686f321f37b0490e5690fb8d0f75edbbec97ad10193f3ce94bd31b18f99c7cc3d02b5cf1cf7ef719d353203f6ac33afe724491baaa6c6f8a0a4d3221e02154d2949f95c466e3077d46707c1df1bfbcbcc5b8078e6ed27be5fef5ba297b38e3a6851bb693f4cb8a4e8f75a6c2935db15168c0ed6673c79e3694999f14877e5946968cf7bbc3913e2490f036ff533bfe39d258569041e71b6a91d0d6245053b5c119d53d4d575f207fdb7240168ea5ca2f27c1563373744d0dfac3ca3e698df0139fad2a987bebb351fdbef512a1ee7b0d62d9d6a9d356a421e749e7844957da62d91a57c31c9dcb55b8f6cd3eaf4fe79c14dec2b7a50e0ef4ee35df0bf39657f2e5457a2174be52e74b7335cd770b6cb5c6eafd132590b6fab636fe17a66ea80f1c01f34e291a9ddbff02c9328fdb5390770a711d15b9b7244aeae0cdd7006781f5bb4431eacef1aa5d1abc2960ad7e45424195884cf12627d72013a1308b011d3f6ff98bb21697d257886c1ddbbc55b8ac09eb31e57d37c8d4cb80f8a299bea1fd388428d3cfb7e4f68ff193fa27b682320c55d9411d29c010ca82f752553a687848ff1cce097aacaba9cf7008aa5864ed71e20817a5570374ab55a4db3e03883af307295f528fe4f9b46aeeb56466f6d15b760a3da5ecce450ccf84c166e020293138f665d505a2b1747decbf0289e98570e545c48a18b8f507f68f0519b18e2626f57a67efe8fc13b0552f33ff3f519eb0aae3238284813e7c4e67e6e741d7972710d1b5c21da068595b3b739ecafee3f872e4f9d0f2021f690b47dcd3b500f2f4efa723dee57039c7921f1fcc6944b0b6891019aef9fbbc9415d378e7a1861ea8604bae7876a5765297b7dfe0414153a64bd3bc0dddfba8e1ba63b02092820752e2ce96503afb35f3ff7bc45c12f67b3e88713e225da4a194cbcde3101757089360056610dac5c52623615b9f65a11ebc10742721c0569fb30acb570cdb8690510b73d0ab230ac4b468f707a93581444753ba774ac436bebd9091c02c5d59af527d43e9009d090ef5ec1b953ebe1274374bbc4fe8252797a01f8b2cd0881816f0b2bdf2acbdb0b161d9563335b5b3591934b3f48faf10d1bf667db2392d2143c3ca005b208beb2b9d131e2b82f26ddcd6f62634b262f77772d823d92a5e93b52003f7fc694982f36901a30d1202ff131aa289cf5a4585b187ca443c81ba85321b61a7b8ad59ebfd6a9d44963f430f7012705ffe7135e315b2b489d8b32a3acab77f90fea05b5b3b49c33ae0c1ac3abd0b786bfc74d93c4b8676fbebcd7cc0c7116f5b173277ef2e58f27e6ed51b47b91db5eb91ed112b45bc1ee5d6ba0042b29ba16bfc0262876fbb6b4f986b0610a7b7e2ce9cbf244f406b904f4faddb3354eac70f96df4f3cbcf366bf3a391b2adb9e308f303be634c4c9336445783d44b771a6102a494ad93a5655067594c22f1f122249be1a32dd812ec56cf38cc460283d977e22f6706049680abe910bac81393e3414d865c5b876dc4ef5d79d825e29173f0872b2a0a684f309193a5e2a286f93f9296ca9bd79cc104077878addfe8d00ad13f3679b59c23775a81905f757161fa35a87e7b29313dad59ef8f4f310414db853f3dcb0a9166e26c552548822ea96db8da3abdfcaf9d2eb75798e5cb9c4064401fd430e1cf1c19dbb3deb8f4cde3e3ec26c045355846a51b857d1854078887785c1d550eedf9216ec6ba47548fbb3ce8aae87385bea6f08415e320a1137221add542837b1aaffa98baa7f78a6ba40d432728351148f1e043e7d8349d80b7eae84f7eb22b97895ab13f007d088cdea56b859cf941b421f5b79c9f47ed83eca99ff1b1da363b61ba890d18e555d048a0924daee9918f5363f91d7d4d9244fbff2ec8901345eed6fb315ad8f2fc4b03eda72d41ffbebf6865f215a1750a606e59ad445740222ee34935656cc2fec2e17cf17874e488faff03ce72190c15678bceb8b9134a998db40c25effd853531aef8ffa4f3b9d64cbbd96fe8d6f51f5f3dfca6e07e2ae430de0aa2bd816de5453b2e29cad626e495d688dd6dc1f8913fcf1fce536449a452d6115e18940b71e3461d3b291354df090edd1fbedc41997576ff9e149bee84bfc4bfc14c65c99d9f2ccecda27bb533aed4d326d97cdbe161ad69ee078eca5f59a148fb2cb63b1546685c753d51c297e1da04a9818a059cd85d551c7354d7f997a2503c8ce46ad855e8de18a463ffd5d1e424ccbed7a186a1dbecbd855a143501fc35d6c607602a7f3018dea3c1fc3303f19ca15a842646fbae0d0fcc99dee1b5ec63b5361d890f2a4c186daef9284cccae6f276472c82c162f07b7be61e730e51d8975be44c6dff2903aca5bea9b29da44e78ab1cacfbc95eca15b32b00b255751cbe9430d3291253129a8e3223b77ac67c5df5691489a12ecb914e4198e4ae35f527d2dd1f651469ed0dea6d3d99d15c0ef5b2f4a81559ab0f511f5427567f987c441eb22c3bf8bbb6ca7a44e36bfbda1d26c5cad09742d1664ab68e710cf190c8eda6d49af8b5fe019590418f795a011f4a8bf6b23623ffc0aa5a673e78058210eb5a8cca5a1e0aa93a4918609658d1c71b57f03d7823ac0b0a4fb2c8e41e12d03271612a1fa62a20bb937f4034ba87d5fb487a41e69fa876ab816ea2d6a7257d01d33095019eaa9414f8b7e6d80e8944db60725d9604f5cb9538d5bb641db61760201e8f3d0b342485341570d4299ad5af6f20577d27f13405857e4015183dd595785f7885ead9e9ec8b3a4a36adc94a15d7f8793b8c10b5c9650026c49e3a5305e48708c0cf9828a8f61f2ad092280efe7a9cdeb52c2b52ab1b8469cc308b0b0c5d666f1916efadbe56b311997b5430109af14667e24efc578b4de87521529daf742c8161d17d884d8194903be30d9c01e94f51a9efa2cc19cccabeb24bfe4f622a066d083b309ae5e5437ee1a01363d52a0ba92cd4e7631106cecc0b5cf1ba9808a15d56134ba34822ac106b4ee715606ddc3a8289c2eca9763746edaa47aa3af9cd623074044b9cc4db360648d3d58189afbc65154b0d8c16675b8d3ae7fe42df81532f8b3f4a92b95b24aedcaa8fcc3ec5a6b035bb728f78ed7b0e4f4298f22c3f6f4691b9df3a07a9c1be3653991f1287e29668a9b1b6bd6212a598ff7baafa6af17943bf641619a771b35715138126b499a182e5b7c709ef26ed32d34d5f54ef7f0eb88d2f97339f469a2d7e58073129deb528675da1f2b08402f8f976dcbec80095baf205784bc7c0408d184ce20421a02544995754b24d95a460b3488edb588454c0dbe58562dd64d166fac4bfe61f75e521d0b047416bd0a690ab5ce15637003fb3519643dba50b9a6157160c69be43b7f2118ded0f2a4866b8bed3af5b26bc1c76ea4ca0536887b9cfb73e7f75e008f46640858858a631dbf9eb6148be43c1c7633189bfd97b462f5ac299b90dedbe8da6b1d55cc1786722cea1d5db13e013920b185682c768a3872877075a4928f5e48af485d3ab6bc4d6a29e40001880dec5b4c39f15492ab4f084177fb7fb5dff1bd1db6bf35e6d2befaa64b6c6191da2e861a6dcf0e4da71e2061f3af08c670297994268c6b0b38986ec6365ab0a901b76966cb9d212d8b0a7fc3a7257c080ccbc36a1a6d57ef17826d7c96f8ef2649c07d2fc1394e5d03c39c163b6c8303f4e9bfe8cbaceb3c0328a7d228bc52dfc05bcaa6a00dde290bd20e5e5ed1cd0149bb52c9f9ee050228432067877d4db4eed517b4938ca3862d41a77243300b927de25abf8169a4371a8324ec85b991040b066f715e4a92875576dd7f63492b08db2783eecaa5be332c9784a6e00e73354d9818aef158b8e92eaa1a8395dc3cfb15cb6e6f00153c3057daadef3a53c42f48a5396ccdd52d88169a8dd3747f24c7f2e3b0cf1b01c2d0b36397b56dd9a9e15628e46333d182e79a573b95176aa809fa82fc8dbfa4f996827d76fa25c337bb1827f27c29f94ead8c571d4715b4fb263d843f9fe1737e6bc4c4aa52d377f433fe9b4a574cb2c9229f223f36ddbb08c42a46e6ee45dfdb1b63735868e69a8040e5753fc67188bcb69849f8085db2374f73b65ad5c81ce1d6e996b5795f1bb7e2c53e8c501b21b57b137f9133f7845375fd66eda679be18afcd3525d7ac3691986e3b1dafb81917a6cdf8dd83c99f7caaea9cbb258522612046a5d967d988fbe850162f52ba7b91128a7a94984342cea5ab8bd10bf0057a84b591dd240b8492da5d6787dc73b086bc80ac7d650d6078e1242ebc8421c4da9ca17b119a51e9ed7df2aa7ea3ce1e29485f9fdfb33d48951de36ffab13d0d4c0b3cabe16bc41cbc61d4795432ccdc697bd99fe89ce08cefdd5f984127501d8fda7adc36cef16e6f1c3e14cfc7d81e5abfc9bb3d10cee441e7552a556f46bed3f5c0256a0b9db5a8c6fb9177d6ed4e4ba2e19a3b53d00138c625a94684ba9eddab16dbd200cdcddb7c9749dc8484f5cc57ea8cea7d1a959c4a4af64d588dc78032f26fdb9f2ae1e3e09540232c58dea23395ef20f80efcad05dd380f4e513a8c209099686daf885e97c2b6dedef822f131dc4dd106564f88d02a810fc1840251f3db33c405a426aeca8c1e86db2d05276ff2da0b3944cef044589a4d7c9c43b38be8aa2b93ee1175a673142e1a28c3a4afc42acdf990e0934216bc7041de0d1aaaf8ea975ab16c34dc82271ac784cfb3d7094a4e025d28f46c660ec3430b04a27b1719532e39c07a21df848bbe1f172c71e3972ce3885edea96f313aabda1bae08419676fb3bb8b7af62d8bf14b63e0c2c0e036a7f5bf332a5623b2416440351c31a0f7a3c67975bc249f46b8f58025e59a28cf89078ad3b4e6edeab159af410fe3b9a92843e3f621def111e29ae20fb6e64323e1f27c19058c4a84aab740337720627bff949e5ca8398bddb91067c2a86a5a2c00de819c6baad906cd36b2c32bc0ebf05d394cfc63d53bfffa93c5b98e0b35bf28e5cd0b62faf3efcf8a1b195db145c93e27bb29a9ae092d40969f4df5cdb18eda97c064ab6bdc74b7b1e8ee1b48c542606cc89476ab240a87b64abb701f6aebfb91da4f91383c9d131f809938eb6a069b430071183f7a91e7d1aaed47a8cbad7efc8ad384bb21a7fe24fb9f297477aad78f2efe03db89957c2abd8c59386c1f9cde12f142c6c8105cb1a70b45da218b86d050458f5022d16b1600b59c16baa2cac1cf80ec3b321441dbdf4c4559f8b3fc76748168d286477e46b5c999833abf737459745e3f295327c747b9057e5f6fb49d0ce65ea08efedab7ccf1752a61154ee54655da58ee30f809234a41fd2af27cfac54fc756f862987217dfb4f4d87bea4d9819ee28bbd4e378777cccef2ffb0c67053f99b7f6448affa53498ff3b2e502ac0adebb43c7b4a1bb54b8680c8e57af335c9f4d31ae318ebcddee3ab6598e02f6028b1228c966333c98ba54b4af6da09fd88881dddf3f4202b25e18a561677489a4450e98092855338777df7825fcc22f8b41afda8e721ff080f81af357b27c8615e69bc43be7e433e22db9990395d4be683f542912372aa6df09cfb65cd71252bcbce8a4b6cfb053f6d07650c938a665a52e7230e4779f8240f0ef3a963580dcab23e7fae579ff15c7580ea9e84e9fa90e660e8acf0a6c34c1c7d4de8dc3e837e22dd067278209269b845dea40d938fb0c22b1df38c6b39db81dfc86185dbc7e535e9e9085c179e175cba48e4db87f84e6d5e8d6177e4c862e51899dacee440afbd5905203a0f2b2475d06cc0b0c95471d7cc50d71e9401ea7a6c1a247081cf96c55aa07697c883cdfe60cadd87b308d02505b2763f94f50ec978e4d45c4b205a2c331dbc5f14352e54122b9c9751aa3d9c345e8187b6be4be93fe3bca58ccacf7a8332e17d7a0c46d59172d4244b0ea23d81f6332f63b729934c433a41c01a49e32fd0bc8310ffbe652a1c3c62e6337f0310c3577999923eff0b5f2c1423ba0f1dfa2aefaf7765e727ad70d52b93b7d476f2fd2e3af1447906a4c8fa4113b6c6ef07b13ce6bac93ef88b55bab7b4fcf104232e263886fb21ece27696ce6154f4b06a29f110dff8544999b3482f84eae06cbc2accbf220f5bb2688a963e5afc2e23675d4189baf41ac89ce5f5052f9a697871096e274d25a5b25d65328d4477a6fef1914a164709e1695f67c44baa640cce651ab9022e3bd619e19e6d73beab8d2a9f575fb2fecb9e2a79e2cb7fbbf3b8c423f3f8194e7297deb8189de9bfef75e6a33abec593f427e52b8c8ec944120dd8b9796ccd0234ede72dfd24b28b9dde06442f3f4657990b34316ad25643e1cf47199a47a1913c03dd02913cf48a78360f45620f21e2093b0e3f20f3f0e5b32352d8bd7f07ce40d577ffb37bdcf280d5546e6ab4d93ab881000676a66ea52b8796036f59cb4faa0c372113cc2aaef8d44b72edb28ac088a7278f570a16c712538b467076f566c705fb5cf2720a184400ae4abf338db16e56682019c2cbf1a3167e87058f49d8383a10fb9a19d8dc30c3de0a17f455f2c47bd6a5240f2784141361ba47f251a3f4492adfb0e86645b5e70d798a27aeb91b77db196379c25f128f5ebde7d395dd2a149ede1435d40504b499cdb7d0112016216fddb1802a2c736c5f2fbe90f6422031fd160c428a27a0aa24df8a490ae2e3188a81601f6257593edbe5b2d04cb4b09f50b8c94700c04ba354742a2e6b13d399c9f9febb13241f0ec2e64d03b0e1b224b4120995922ed758e08528b601b45f26bd3b39a67838385a27effd6c10395eafeddf9877b7e8abe2f9a82a51ea2d442c6d0f10fb58b2a6128d9192d01766f61e7e19b685487022f373e711a698b695a3be9de94ff05380539952423704593e9b30daaa47ba1d183ede682bc4670fb5bd9ee6153f79142563a8493fa7ec0a11cb92b72a8f64146f101035cdb774070d8e3b9477ec569f1d947e561821bf16c6d95956113518d04ca69ac6b2847a52719108fc009a7c28345d69e8bc35b77799ad7ab87785a6285751e2c5eabe2026f3a1004e0f3f5834a5cca5a91bd212983f010b01dafabe992b63312a7c62ebb0d16772f1f1de39d2c1e1d02f932ca16f95cfd54fbb25505cc4100d7fe4b4501bafd3ec8d9b0626f214667decc8538c57e50ab6320155c4627a45217dea01281a3457d58cf1d0d59b918ee5817a4d1656971cd072dfcdc5f6979ec0207f3c25ae89e0ccea59ef6d093820be86c043895431ea0b0eab4086ab0f2bd81fa7cf1751d4238836252bf09e7860b3d5eb2dab14bc00cf7c0d24aa9e9ac9be980dacbfccbe9b150f3e45d85fdfdd82d086ba92bf5edf4a43ee046f859d768db246d9be3f09c5c59a7c766bab4a3132787c97f46665dcfcc959f8a6518aaef03b4d066bd7b49b607b4f9d148fc75692c7b8319a9faa600dc1cdb1710912ce209c45f9dc2d12eea23b16081195c634d8e8bb5a1babfd799b5ccc527d0044cbde72ac8feda4b18d6001ab1092a6d496585de3f2f41f7d3662ec4ebc9c30542884d83af30b0b5678c7dd0e67fb45c4349d5a232c0eb9a8976b6c6b24069fa4aaa6bad67b44ad1ef1c00964d4dd96c486e71884a8672d1f28697b86a3d8ba0ac50b54bb32e7fd29eae9d95194cef721a56e0467d96c07ce8fef225ee5de5860c1fbe459a337ee2f8335bd88fae2457845ec214964d2aaec45f95bad28d1190162454454e082d9c6244d1d1be72299ae8c97230e2fb0b2bd558c8c9292d0175734c5c3a1f0d8a923be484d2c66432cb1fdb325aeda94cf19de687c9d01eff420fcec4d97fc143c8c845f695b2f1c111a71eb0584e0829aceb27e2d35120fad6af4516171a94d537efccbdb5df4c4aa51e3b007383dc5a40b6d2d427540da164db80c9b0f3f0f14bbedf0e33f7a9ea5518e35df8de7c2943d372aea59cf0acf30e2e8da3a23fbd66ca4d9ff2758d3f0236c20bb9832d307f78dcd4559e048fe144ed13b491c3615b5758413ac5757c22987fc3897170af758e7cd5df9a059b5ccb7ad8e95490d0f352a57539e35ecb3f9c2f00c4a19a0ed5d270cf145377b0e86aee820e0e04186b1fa7d97d9be23c75ebce44c43340cb08cb919a6347c057dcdc483f31e17994f42d439e7b4ff769f8d8a0386da94974a686d88964883c42e491c962267926643269c1210c4f8f468c108b14a233c4760032ca4a5117aa1e80c8c632049c50f3be6f4e5feac09a8a0b95c865cd0ebf729778d32e88d690bd84f3017da5cf572aa49e9a25381b2e85e30e8e9b5befc786a2b7bd1e0b0a88939670b2f62a0e3bc3e5eb5fedf72bcf23956a792e3e7ed8808d00a893ff677bc1b48ec004758a9190f690d8b792b12a7637c7e67169e5c62b74eb2d3430b951edabe4eaa4ae84270c408570945383b4fcf3b48448586c8b00ac39a61f8c09975fa1f7cfacbf2eb1579ec83b4ceb49f49e86c3c1068524ed5a3b48a384a4680c0d8b311679d8a045f6e27dfb38eec7803cc260edc6f4a567f15b521fdb2e3a3f6db7272c74ebdd93e950d5bb7c54b2eb690c072654a8db5bb8fb83fefd85168a4144315b9130e8038a20c754a6fa182011debb6e9a2be0dd883edcd06a273b21baa54d26f6a3e53565009e574e1f5ff55a46de853b0aeab1dbf9dffd21368b0cb9235b2f91815491aa9151335fe7c3f87d6645578157484aa9391cc4fcf81f314d589d1c4bcf4fd631e6b0998adc7aafccf2ae2368266fd807bb78b6d15769cce1b49338d3d3e3e2f3085d6fe56854d3a3b57db7e31014c370735aa16b62de0209fb1fc6c699721ee27493d0c25bf64ba70cc84ad4b35a13af0696012aca3d643ac4fc42176f283d659ac8f4ad6ba4e61269b6e4582f11ab584f32771d665e8758fc83122169804d706012fbd1af980ec2d1315c4eaafc555cdefadd95af8f1f5361c54ad9ded841019e62e93524ec07f85fe24fd3ce35089f74e2f562458a2dc508ed9dd6e917681ca09168f2280f6fe0bf7daf9a4695dbda8835c57b68f02d01d8f999bee95f81cca73807ee02d2fe35b365b0af44309ef2c59c1e5c7f5e67970dc4b8cd01d46b75685c0dbc58fdde7b9296470ffee403b58aeff42a950bba04b553fac5986c90d38be72af1b67afdbbc4e582242cf7cc9a68d666a7d7f992e23687038ddbdb86562df58aa00e0d34cb47905bc68cbc7363a83daced17b7e4a2c609fb273682a1215eeb15bb33993caa2d19dcce5f593394c3974f604cad479df2999e90df7253e1a465ecb95dfeb5b81c78b3c4e98c79c5e7ef5c651003a4f418a04a144b88a2d077ef6454a87ebb15cc978f59f48d155b79cc7032200c07a7ec14ee8ab78817bec38e160194b7d0b78d24d9b04df7b5bb8de1d095e04986ebf7b724b9a05ade9b691ebaa8862a247cbeaaaa7b46c4875c7093f885d5fb51dc1396f19d4b49082bbd78ec4046556aab57051df8335d08fe1f4943442840594df0dfd3413e59229e09721bfc805ad338601c43cbedb35c47cd8e9e0a2ac4219a931030dac5ac91a309a3275b433add4d77f36e7e5270bf8561086e8fca04b527d26347b96ef867246e0385b4849a048c4f089a21c22cd8b5f5330b26211fc551d99c37908d07a2285b54e4b39c1f96cb2b010b36a4c20d2558fc8ae5e7306b7ca71cbdfdb95002beeb5aafecc654220567ab928ddfa625e98d1bb30afa48210e9248b1414d9af972a9eae1d8a2245681f049fa3b6156c2244a4d49bddee7d927bf407f32e8ae4ff316c00985b5e13961c6337d119cd2928f7a51267c3810570babe6083fed217e98262b77b9e7de180f81c26756042e4501bcbeb6b652e72242a533b65c0424ef4bc389e8a70398932ec99035a992288ecee1a4d3859be5cbc151dfa83e976792ed49923a043a6a9e30dd08c9f144dcd79f71ff1c092497467c26564e1856157a8d086ee7f5a0dc6ec60d4396559a79690927f83fa923ec9605f1ffc97ab3d0712bc6a35e7fae78990c4034dbf91b141a9571f9d2627419233a50d6f19167ccc15b3ad27fcfbe32e26d6f2c3f2ace7ee01df190b1481309521b384bd722ebee8f24923ac270936281eb28a5732bc138d255fe2102a0a35a576a707f1633000791a3ee1ad370ce4bdfae0c60b09a8669630f24684f53eaf34ee314c9652d2810fc8fe2d8b46a7936088751d524bcb1edf96a9fc95ffd52210a5d128a1fad2a87f178f8fba8d481175b3a40f2b8835b73255ae479b4776a46307cb056c0d792cec8b42cf86e1234c93463b827b774a2a60e02196cdaab631e951a046c93502ea3f5516ec8a193c7d399e4a9c839ae276eef669815f761948ce6fd7a76076092a077fe24593eb5d2c520e29ab8759b8e37a67270003beaf7fc13fb53a865dd95d505c7a5c29c34d11c9f8c256a3cc80154b6d8e42d24caa954112e2020e5c6d26868c3be5366c1a5bd5a03752d4f4bae644792ea48ba096e72d77f4a9f5439284db241316c52a311fdc1ffcece5d1144d7f5acaca82e582a3fc44e8e90d4a53a064dc63227b4773f38ecff0685ca147a7286ef0b238a02694ebcaf795e5bb9f07c0843e8d522c238fd642a04308d3789f2ce6717af52a2d80eb068f019fe66f4e3a03bf249c76a6fc3033448e7cf05adb5654d98d7527dc98a6677ab7037eb36ac6c2adfef174c3734d22663d81e21a778eac488fdeccab3b8afb1b5f3a66b6989245cb4b90da1480343077a7545753e23faf7976aa476b05b60ceeead020c8386f7a56bd91b7c3e573bfbc7f332a1b9a41fa6a633c682fe73b9f0890a35ee412a5dcd6e4b746e1ac2b0c4181a802f66e053cb4ceb5be17f3f1da28e0be198a1ab57352031632ebfc9dd174e5f705317aade385424d27438ca330059d0c6ac6636186954fbca5a76004f93e05888e0a0d2aa053dc4fcecd50ee1c7196cc2a6973f3768d4640b716bad4ae65579131c5a445f8bb925636024a7aecf520c5fa900eaf22cdb3cdda92d055500cd1e33d9a32fcf3d2e0bfed4950c8b765c6f38eeaf7a25c19b01edb832f2d2fa79f150095c47930a3861d166c1680086e1aaa48c78dde55ab94a3e5a506d0dcc1f920e8c690dde1625d10b5ee0f54409634260b872390466cc03a22f456617b997980c93352fdda17723965151efc6a4b38d36787895d413e176c9af313c58ea50e2225f2bf2398a66723c661612160c7b6fe019a98cf906fa26c0cf17c6bc7ccc30e4753eb08a755c2cdbd555ad4c4eb65b9355e91221f58a7ad69e60ebd0e71f1887af6264c7e077e6392dd8425ad332aefa285e49e5a4fb35474457cc4397743d8ea6104713710aff7d1a8eb7d10e155195eef362438228c621adad7a982488e5c923c67a6db41c105f3908141d1f55b3b11bd8985a20e35a43c0f74105b42dd38c1a85c81a22e7318705fdd438ca3e0f825c002f656370d1681d2b80c395c9752eaa526cda925a0dc9fec6cb588bf000037ba1881dba086fa343270e5273d4673463b5f1379998be1516e28e18afdf6cae9ab84c01c2576bba7a2a386cfe5d3dbdbf3c208c1a77875cad737a19ce51b634d8829a24eeff4a43025946b74d86a20658f9f77e490252becfc0403050e445b649044e874c130a7bd83b9568d104ca28dd00be1cabf802bfcab10a8404056037b185541e529c162ae23e3e6610a02b614deb18d01f4a9c5efc56284145794b48f00f1103aa181b1d5c3050a42cb8928626563dd301a02f447d6151c18fd8c71b71f1d07a60f698fc45c697c083be7c8094622aea4ad5a06449a7754bf40dd485463f50c8661b538de518f81e9fb8c7dbba36f6775b7738cfaca21dcd42d8c49cb9504ef9586088a3982353080dbeb0d641792a416d48068a05f25a2f644cabf6583f3222a311fe52eb46028eaa80227e40da306df4bf13a85ed74829e2510bbd626cbfb99f6fda254fc5de335cbe53b67689cf983188660304b91cb23923e21090f8d9060d2f4f64df49daa231cdb5488bbbb50b0000d344f1a1c67436d1fc78dd4c5bd243fa13b7555e27e676193351ab2918637bba9e23eabd21e73fbf9e54e992f6ceedebb0aeb1f4f1f4439dbda479915d4370fcf2061ddfb4e63224788ce63a2d69961499f91cdfa78ab16c2d0bb634dbe2ab421f736cff02fd1c8decfbee7753f154f914534557d18ff82c6f666556a17f26baabecdeb56badf058a94cb6c0a451fb13fd74bc797995679602218dc25712b5c73b3b40c09b6e143a8c3e3b4f68c2a84e4496edc3262548f8c87dc5432ad0667f4036b2818d3180bad9951aa5252e5c8b5240df9c63e783b323a3ff2cc54df32d7b85c6801998f7b3c3299404e937261f2f8547cad6e217bc627bddd16155a6cf4fffbde6163dd1d63fcd27f49715e7527be06ffaeb552a1f83c4e20ce3c10698e78eb5020cb0a5252e0cedbf55b018e13c4d053b0cede5783de997b901f10d7023ccdbc56e063379cff66df4f7bc017d785a388366571378647d703a899e256f5eaf45457524bcfe8b75dae78abed24a9c488029487cc8669377e8f3a33a4a66000b9c3d761f2db209dfde30e6249a61ba79eb6905d36a9b2c82d4cf370da056e0b4a68cd95b58e992ca452851f9b04e93be26e4719fb005a8fd52b952b881f67689adb29848b2cccc58d26f37cb3d92704a4c1de91443a5318e2424a7eb8e31e1b2c2564fda0bd5bd6c6d69edceaf22cf571afce6a12111984e7484185b8aa6b2dd4cc2db27ee54248fd5bc8460a0e6d9c7684f30e6ecf28a0241d3574ae627984593658fca63ed1c767ed3b05c5d3bb44694448b15ce8729e2a90d903fb73acac3a050efe32e18196b325ebb017b7294be1cf107c9c521e1d85ab422af649b4f498eba04eba4a0250955d0884a304eae23e4cdd880cba59b51354c74b2d7b80f6f287c3da3ab25810d5ce0acf5ec8aede25133bb584d0d3eea1be0c81b1833b505ef96dcde9c9a823430088faa8c51807d1ee6efb04de776a8787c3079406460cfa0a8faee28c7cf5cad099feec6c4311bb288c3cd92d4dc89aeb083d871d529cde07a16e3a9c7e36a666599dcff78941dd021a7af1a0a5d892813705ef8c474ca057435fabb8be5a626e4dbcf69f5fcfdc09fd8a54bd3f97321be940222a41110d02694e75956ce8e6710ca757c384c004b509b5d280cd92691cdae02619c306994c2e6cc2d40e05617b841f721318a849169007024a7a210e5e2d5de330624e4669d290c42b36c9299701f2c9f46500162823fb014292f104ba2c8f0f4f1f2f8f2b20153bff1eabee010d30a28cf03f18c189fbc1c2c860a5f3549f023a0bbfff91ead81ef8b5eabdc3104c64598e03ba80aed9369de2cd2fcca89f6f309e620e4a5834f4feb0df63eb3464ab062d3e8ff1d8731ff81c439d111a9d2e85726296b2c07cf12cc881ac43adf0d0161241f8978f371dde9f86b06bf3ec116694feb293d843323bcfec9c4ac9764b1bff1c2622809c24601bfe2100ef8d82750f519c686427a46a1e587d0b4a3c92a187a36ce9da85a0146e397333a44bea2d5dfc27d5a45d9d331f0c4774395d14bfc360a922c040b024ae848cb0511700ef04cd61c2e9c15127854f2380961b6a871c7a5678b78d30d3335e8d133973f77520364c21d43231f566247b90073affa6eaa336c57f5d285399495540f374589dc3478686593b00aff69330fe2d287a561c9598c91f548bf2b01b8c7e564e4ec2631c2d4e8437f9f79f2b5e9ae5824f7aad288891d08aeffebc7123e85a530d2f9e76e73acf9ac31214017cd27f1ebc81e64ec8642e82473edf2ef88c79a45a0d53be1a05b684daa262bbb7255f24377850546032d26c639bc09ba300120e48d6c243212c402f8f20d460897028092b71bf33cc46d5f88f6761f9f069276e68025a1a25f583b2bd62b549d253d0079b113b8ec7e7807c7204b3117c95b825df29a7b692fae54a7632e104fc1db9f38e40f99bcf825c0a9b701d567f6411669bd1ada8622ffc122ea9542a81af1e672cdaacec9f23042eedc73377f71ad501daf28a28770aa17faa13328e6645b5db8faee8f6e71bad5d64a0d6bc00e0b080766faaa6212b18bbd36b028ab7e393f972bdeecafd8c65a3f8f52069b774e472190fbbfd9773b06be7708dde1106c411c6eee789ce5bde11a74571208156bda4dde4973080610c2fb990a668afb1d66f7ab85c5e5c3ebd3db03454946dad9eaa21437c00a09207d18a0d9126ce537e1b6f282ac3e5e00ac8826daa46fda17ac1f77cc7de555fc382faf6f57e5a8e80ccaddb46a488f8f3e7feae83cc28c26189a7243a11a955b8bb351151354a5246e3eed618a18089292282ad575b6840bbcf7c989509311977ebaebed26d0b122c96840c09da198e4491f661a7f3c2c4f9403c0c2c4c9f22d024fee685c328bdd45ec1f7fc98805c5998a59c421bbbf7ff972aec5fc5cfc41ebb3a9d09ba11c94a4d1fe3d1f32be5ad3af04f6dea964ab9ceb3a9b3f78481785b5f8bf7220ef4a82a01e11c80d952b7cfca7655ee0b4eb931ce3046fb8f59bb16c61a6ead46146adacce01ff6f13a4f60a70db2cf581d5763ce9f229796cda9915b248af040a958909538cdb7d2194ba6361b4ca45e5098b7ec20bbfb3b287eedb923c85ffbe8385d5db21ecf881b01dfd68640a82eaa60051092befd94077b8beff6e107263269ecf99a5a0f31011acbb54eebed443d13e769de07f56ed25b9ed1f9eeada72d3f368e9f184b8cbb21075dd6eba038035404b0cec9d9dcf2f5b427adf091cb7a66ec4c1524b6e67f38d37da911c212c7effcc93c70ff76ed732b6181a77624fff72561108a742a31906d82a18f1a723ddf32e131b386c2c820ef9c68954de5e00a61676c7f62592cb9308e6591e1e13879d140446e8839a3d97883a3c34054f10c275cb39bf61cf96b279ddbda395da3622c027db02b6603381eb9c97be588e5a7b895c79f593f06bf7c7984328a70ea6f9c7eb21eec05b384cf2a2d2a8eb194f7420259919d98e1c59387efcd8bf4f19aa25aa92d64ae741941f1678fb1eed2042b0701d212ff0e20885fe8d97dc90d494afd05ec178a0eaf19977e8a851a845814f527e315bb1dada3c3fb0780cb0a0d24face66e657cef6a492ed7737c5cf8f92de5a92adccf833e77edb39254f44a208a0c410da2c0b3720284cc25f46ebad43c017d01b41a41c7de98f71bcf1d23db2234baba2a47bc7ae08fa315ccf5cedef81350ea1160de44543572d91fb6800df9934fd8787a3413320e0bfe92c2b9de88196b5327a5046cac272edd97383b8b659d342c9da16a9b98100824648ec9f8a14689afb154c30e4a90c894a27a301eb1914ed48b674f823d6371cd865f8a23e4cf5c10039811e5965cf1275676c1c27394b9080404fa163f7e7307164e52aca05f089193fd46e59c06f126413a53f4ee6e43aebd0f24e9b6dc0cbd6a42b6cb3c37a69065279c2c42d01f89cf4acf09b562eeb8c6d8adb9fb9c911d4225134aa2adc3bcc67ab577e9b56afbe03221a22f22725e3aff15fb00602853da3e063470b8deeb37b2142b794ad37e6a5abc20d785b818bc3d03e2f5774f897f2ff49edd71edc785c1a2eb0a2df0563d7b153a2ddd60786084c205869853434301837d8019d9485cb32bc7c5ce6b484d352490ccca3cc7edf7bf905d65da02d84f1f846ae2fdfede06dfeca4cd81271055e65e1f73d37a9efa0c01d36d5a3ecb68761d4efdab2d109bd1f52c3f84b6d057dd388f65df76cf1ee178d85e9fa79793fc6e9db1a7b510657bbd51e459d40e9b8ed33f10cf1f44c7159f967649c24966686dd504aacf820538ca0e66fbfa466d02e4a6be463dea43a90f538f4bcab02835016763e09699d0c9457468f60dbbe7460b931b9aac476d3e5c84696dea55cd223bf0fa6a639f03d1852a78ed781612ebd273ef55e3fb1b999c3537cbc2b3f4b398b7f9ddf4fcb15924ae94149e075286b9f45bb841ff5c268f1bcd553f68c4ad589bb3c26c0b6b4da8c65fb6942892314f3d2633358aee7249fd474dbe5a199edfe6c014193bb9fcbdf9c8b037d1dc086268b9ee2ace64b0785267cc8610c1522cc087c50e59629cfffc61f483ac60ad3a046b4452ea50353239583c8fa9f35f5c1f453994fdbfc34d686708472bf6c5e8ad33422fc6e7fd53252edf933f3d9a408296c85b6d9eefb72aef841d2e46799f197e2dfdbbf12375ebd0477da162a001ceb9418e77cf00f5839c98c180a3f6211ae7f9e03c3f6c6609badc16a5924fd4103562a51a06b96b84af83a90082ed3f79c9d2ebd879bd424e755a15896249be155c6116fa9e42cb55441df688371362b33897ed54eca10f447b506d21a9786afc3566cceeb0a833ce1c4eb1fd5ba226e89d5a17b8c7c4edfca5a1f9c749840d47990e733c205cee0f5d945c10afd70d9282e16d7b7e7ad9253307724b655f5a10f1ea903576b0b6373a81cf97e37236d734280c450a39fb80008bb15634ba865b02fe7158ee5d925bb83b669511392a85d9dd35d9531a8829720e4d0a048d5fb03442e22e81003a5c3bfb7f41d975ba0930e3392b805c32433cc479c26a936d755524b87ab498114bdc8e4db97273ecfac4d024b898e129f71bb44343d0cb29ba89042f799f0ab1662bd7ef27ff04f6ff8f6e4395e0b0ace0653914c5d1f8416326b71147e19dfcef444be68471fd492d023d75dc2a71274b3284889bdf22edea7205b5af3e7fcd59e573cd414eb8b4255af04e60b2f4e5e3d9179870af135027ef2bc2f03b3e2a95776e6d8152928892abec0cd245aa53c1674b0b4ec3dbf1c8905ad13c4e4f0f7cee6c18b2cc6bdac467cc55c3162acce19fcb41ef524d40839136d406308ac79c983459a51129ce915ddfcc2d1daefb833b1749155a802411d35750607aabd4e7039ff17e0235f3bb16a8746acc93cffa060243d76b4ea78792cb69f4e4d36702751a291509fbb07b315de1c2c9ddf6de9e351c2930d8a5a82092bd6975066a3f6c286b9c496fc3f8d4693b0670b0f2bfa4aa92121e00962799210c3576ab148130de35b80983c7c6a7eb11cc2ed8b6b665318c501aed5a121fe0b326440f1a855e66584b76b2d7b6bf35fd4e3f42da7b17eebc5a1f8b29d0f8acfb3ce1e25d5d097c81a102793890da4d1109bc8157e302d99d07f9087d6802562d85c2b83d170ff41dcc94d81482cf6f207ce34adddf2c3cb3486b581b04512180157e8969d3e232874c94d54a609189cdcf31f8ae6f513923b9d0b329da8e48d369d5314cd033b08165b9f947fd49bd6e2f080815154e429cf85a1251fb8a7638ad17f10329877c0bae2cd1f5320fe2bf11cc9e5dbc6b9f8b0ca4b5f2acb44c4ebafeecea4a10b77abf1f6eb66c720465d4c3ff6c3152eba3412d9f6c46bede6adcf8abaf63d217ec1889e570c4b3e03c557915de86d197b347bd186ec26f36969b489afd495b65019216d0ad04b269837316eeb2101866cb814c2a5c76c5d0541d8388b5a23600f0f6baccc321c946c4a2023d95d45defb4c45325c6a1d31c42e4bc2bb6448e59dfa774f913fcb0519df903d8a691881fb9fdde1ceac78b007bf8239a341d4b7597550c7d567d161951664938e2c1cdb4b67bba6649056d53d8c2ddd1a416706e7f359401f762196129f30efc0a37e2c388d46e1d4dd35c63f924be3032c456f2eb4661328147119fa94400662e35d932bda084a2faeb61701e98d4fcc7d3ebc2bd8311411dbdfc7e91bb18dcb32c6f3f9b87b617b83fbf2ed35cdbdda98807355016f3641c8bc55cafe48368fd751ef779554de3202ff94769054c5e9cc084b2b7eec953956015cc8220ec3998b006c06616df32ea7aa3d742e53b719d45c739505182cb108ece16afacb820fda761d01b6f0f73d79b72eeec2e2ae82c6ef8db9b38d80f46985cb23d79f714e1dffab346aebcd8be74ef120acb98fd244e5f3d71a45c62e7b5f8d1b07312ae152ae1c81e503ad99d9058ba0c32a0cb22fadf1a7a308b8e7e8aaed4e531fbaef9e753c54beed6b1bd5eb0d4c1d2add27e9fdbbe018cd36059b065d2c7262b7479d9bf2f1cd6f0e0e71eb440abcf4377d572618b13ad932986e37417d2cab1879f9b79e30bbf49a7aa6f7b522a1de0811fb7de78e9d8003ee0df4b9f62628d12b538c6909a5b1f8fadb0cc547a4a289e5a5f428daadbe6792c44919fdc4bb662f26bac3a72becbe215abc6017b7f16dcc10cd7687909f6b7450caafd9aff9769bf7afbb9ddcd5530fb315c0c4b792b30966becbbd2e21158597400d3b22b2e3e84c5ee388f3f67ccebac4297b28f98f27630c7cb3b76b3c2335788f085959f9b0972d7b6b6d6924d81be60bc5d0dec5f4a3835f340d9fbde9c59ef5625abfb5e69d13f8868deb20e05797e08e7640916b68c911fc452849ac4749fbd83eeb2088f630ed5531a6dad24d3f4fbb10c1e9c274ffa519b105365bfb13a0f78a47d41489a4819c9a7968fb64e5e89950bd3d86cccf8207f829cb512287fea8f71a752e5bd37a21089475b8e03d79b56803297dc3ae23449b4228451919221b2ce21a96995dc1611d5ea7b61802e8ff2ad97090fe5c5cb824115cfc8038d3b917f52594cb4d0eb45c57d9ebb338ab4b956874226c3d33743bc4d163ca6baf3ed744e97c88feeee051c7d39034f5bcf39707dbaa6c4c45e5ea1a5dfb16e74b6a9c4143ebebd5bbd199db5018e55379af87994cddf4cf439e333ec34503ea028a9a1684c22ffda4da2924972c5c9163ffe006a3ce4a38855ead9b32049ece09f867d1c63fff79d644f98c24b5baab9e12f1acbab125e3e55b4d4c735d7113fa614befb4906b7281fe626f4108eb175137add82212efc286e186e9c094aa99b7cb0b00368ae6e3b6e179ac8877d887e5ecb2b1c8b064601e942f574b422d28d9364a5474fe6012193a6aacf3b8f60ccc0de498738b12168a4c3244c53404c6511db5baf2f544633a7df968afde2a42128d6195b5e51e9da92eccbc4891c7ceb52202cba5e261ee0155e73ff5dd7b554fba4fdd8947081f43680d589f9170a2564359594d773cbfc1d235e12359ee0ee924aacf156e7b1fc2cb0058ecdd66ec689721b19b92c1fbf52fc8d801fe10466badc8348855583b5a16b098d32adfe45b9b9a0c8c49a65461d3a781efa759ab23262229ae42aa3ccd6fdb008d91b46761d79a061df71323838b68627692309c8307d4ffa9c3f1055a0fc6fbe785cc95b957df98094706e97332a180353758481dde58014b8fc9133eb867c3a47fe788133952fa2929048a6f2d5c4df64a1dde9d4b483f9aa14bc7632d327bf84926d67be014fe82ac7ec552c7621eb8b7bfd60a77d140cc5cb8029090e4a30ef68bcc730bbdb53d3552281ee8a7ab97a7af8055a39704dc0d0934d9488db134e5c77553882766da7aa33f117ee41a62acceef8e60028a239a51f510d371502eaae294ab9c221f8e3d0c1f6d9b92893547a2a7cb797c1a630968f81417fb21011f7638e494650f16b7165323e7f1f71f89e2db82fc6ee52884470b313572ede921b298ab3b6270043633f03a1ccb66bdaa8a2ea218465f989bda895f8b215e344604eb275f0a07817ccdaf331049a6400b0601456f3a22961238eec7a44c9987f8220b843257042b4d0026871821eaa35daf5ce0b2a23989ee5933fb68848d6a1e5dfd882cede468dd56dc0bb1421798acf69ce71cdd778b5899a5add26e07c8acfe52ace6f0184374f6023b8bfabe7d03e2ab82c7ce7a67f031f62b69ed52f20b584ee7429f386ed22a91be9d51d4b1e725364d508008cb69dcc1f1b476a5bcc96f5d8f91a01da0c979949225ed00951f3c6527884c5f87d72339b779ccf40fc6ce4079195efe698d3da7309ca700d8740c21917192807d573a5084fdfe6159fa46dcca81ec3e8b6f242609cfc8bb8a390e7d725b4aaae29047c96b602e688acab9ec45d42b7cb30a10bffa8a00357cda7ea3f0b81e4e9c31e48a7d6ea3b219b8dcbca02364d45f44e0c9d52cf677eefbb53a8a633c72b5410af956efb4d08ea9f4b1a9e4a9c0195efd90392066fb838690aa6c722746a70bff5344ff6e8bd993e6fa96b2f4e7ec84aeea8b36f061f9db69a1cb232aa340f857cdfde297f1dae98c0205804f10ee9dc384fd575b446532a665b9f8f161e0e95ad0a96ef8de2b28ce107873c89917447bbc86bac47f157ee32d33d38124eacf61f06837ac48b339598b8d0508d8d8c5113d8be050c88e604cb2b2a5896230d0df1c1c7f5c51540c5de683d42b5d27778148c6759004a058d9d057c7271b0bbaf963618f3a087f0d400258cec47301f10d3d1d93ac66ffa16947f3b5c074520d3ab4e402956b4db3d25e3b028d08893f3c263d51f4644d0088eade40626650cc179019c8208e69f67c9f150bf635984c5cbaef3d64156d8123488e81ab94535e13fa39e7bb0605ce407e3472be6c6c8c074c0204e4f7423b415832a626662b2117c4e4cd16ccb39bdb9be222cf166db188ad31aa9f51908cf42e285025dd1808fb5afbe7fca98ddcec4b5a5284d4559eadd9af6a7e651a44dd31c4488e1bafd6e8c6ba3109e77f63529c94661231a85bb06fc9b5d8ed655d60e16a8c060c170a40fcdbd3948afb6cb9fd7b1f25340c68c3d86453673673f9026bb666413367f9c9b6860cb7f0b50b2db4c42a899be2479bd93024e20dfc7f7b29f26927cadb664c3e5f7eefaa480f1c03d8e9e65a1cfe646ae381794921ac3678705194de6076406317fb5916500232215dab59cf69947a8811d516de8a7d6af67149375fc45a354ec0bf6b39f142fd714a2d4a0f777696e613e4e50e3a1492350d64f7191a8a5a3133e7c4c72ff183fd714fa4f5103571e29f98a3e907e7a09d5c60e14ea4cd11571d4866bfb8bdb7ead9220e304fdc79a080294dae67a33590bcf896401b16776aa1996528d86550f2f34f0d60fc52197a0e23cd2ae15dfe8e1d2cf4d373c0e0c68708abb323f466c8f444148e4e3073aad7326e96a91ccc0a7246f3191b5e60353cd1275d00d5af656c06e6ebe807c515f65955d1f7584c1db0d70a479c837f76f3b6bae1bc8465aecdb781d0fea90ba6ebd98a1060c2d10f6491fe18b84a54da8586b8c6d4ef80ef47cf7798614a6dee25180a2ece7fefab78ba8b73edef97d2bd4e4e13500cdbcebbddc48c5133d68884da318f657c947b3f68007322f7d6faff651257042e29f8f6d07855ea257910db076990ef4861e26a2a10b79b2de7d7d17d4fd06fe7037888fa5249e9f68adc8d0f36515190202fd1d92037b07ade1a724820184223ad496d966387d8cd4d03ed24e2f26658988c8e74203ebb35e7fb920077fc21d03d8f7367fce460f02b89a33fd4b083bb4c6b8f4b7f3e69eea5eb0a0906c9d6622b8f9447943b472fa4f66420c17e443379e3c2e830e8593f04d194d0dd6b9f51b15d8d7d8eab2239a8203a3c773dbe7c862b7f10e5ef6c3716eb165bb64a0c84d79c2748d399835512893cdafaf07d71587db8db80cec4219b4083b07da5160ac9096d734dc44de7341338dc03cac85c5439dc8ba8c1c8914923eb3b99763418feb3d6d2d639af71ad9bf8107fe22aa8e6a5c59e8e29cf27b5b18c7768f7a758d9ecfda786eb27f94338c9e8a2024bf5bd7d86e369e41404b185f048c33ac0a6a518e756e837918642adcab7eba90857f31c12717466214ead0a80d0f43e68f108f9bc73df6aa88d3d73fc3cdaad47df9ee2f18a449297944926f174c8bff9ba168c1104191ae3a13f455d7ed724971cacb36cb98b9115973ac9e6c84f87c468fbd03c21fe483bbea85e32a0705c1e95827ad3c1d575305f5ed8ce8fc8f67aec9bac204c164ba3df9c8a1d36ac084b7e5f9d15b60c1c4b175ddb07f5c2dc974fb6218300ecc7017866b9d3e5916a26c1054f68e02cc2af527343ab55a1d873cd631c35585587942e18584ab189153e06b9a512c5048034dad1a2224beef5a316f2c60b59be00bde53edcaae5b37b2ae22ef54034ccb989a8eea31faaa1a9b7eabf0ee48f0dee1aba0c41eadf785a0b5ab7b4fd2893a94a04476f67841495ed6bc959a384ee23391146c4166eb790d988e8cf9d0d8295086d01994748c6f45edad6f8a637f0bd3182733fb66b564433f38b18823be53e958e415f6d8bffde1fcfe070eddee8284f0aa6d8a92fa84f354df51436abfb666889bf7e120c7cc3e4152ddcf6b1b10d86b8ecea0a27c9d14c7786d26347d215b69c30e0ee0239e8b7d28bcda08da3ceefe2b2abca16004784bbc7114879d3711b3b334783c1c494c74adc2256468ae05c42a026a6fc5e42dd6385f305a8639aa02b765e06f39efb57094610b604f9e32faee7ccf3faaac6e2579ab7c1ae818975703ef784516d215bf04ec8793159d56849aaaa11925e1c4353893912918a47a95423394a07da4363096885cc8c1084a679d399459e9d29fcba5ce425a3bd2d205ab4756f6d870ba9a5d953b7e2de12b4dd6fc262e1eed4ceebad95877407abed3a7eb36d1ee6e485609d1f36627e4f70443e5a41c859892679e4216bbaafed38e119d6e4ef1623fc00ddb27e9651bd6ff4051197af0eccc4819b01d592cb844acf6ca3f9fdc5f56b9e1dc7fa0494612d35dd3faf509ab79621b9271f310297803f4686b89250737284b6e6bda6fc94cbcb7d24c0b693896cd4faeb2237843e1511d6506e6b79fa574bb067a19150e4215eea60391f9970f64c1fa76f55f4c0fb675c25325459e3c0cbc8d0895477b78e3a111892eb298c9468f788e6b7f25e335f8593dc5e2781adf6adc82b7e972404b863759de9ab46f57b10050f8f0076137308483ddf8df21e40642c09f84fcb418017bd26f235a57bccc349406adf9cd07622dc29780b695948c5d129fea07d7365bda7c07ca9938631806d970d487a7564316f8b19263eb6b62de75bea971703981b33f9c1172677951842408cb8f8bb9434353fb4557a76a15fef4374e3327d7530f377ac83385f1bfe6a1122221552665dca3dbdddcf89825c5b3f774690c6a88d61bc19eb856044b01a0c752c28a7ba4fffccc4894937ce26c4e22ae19fe6f19927ce50c6689ac9d978cd448a2b9f7f147b9daee2cf6a557702a8e2fe265094799562c8a36b6275b40c4d8bc8080bfb90a4f27d03be722491e1b4657fd397e27cff9331343df7a63ca92e95e57dc5afc8d1e6af346720a40be4208fe42a9b9c751836a0087f9ec27568c10d10dc036f7b8aa6b246018f6a69a69c8991186c7dbbca5932cd8d1860f957bc871c21f215d017b8802e93882f6811c2b3049575affe1e7476b4dc19aebe07d83f6715fd01e973b345f5af0d0f190c40d19c2f1498618fd714f8d32397c1d8a25d607845bc3108f72ec28cc04f35792fb90e99f0edd865cd141bfeebb04968b8783219dbf501a6b5e3b21bcc947ad86ba1b6e28467907c77ae718863bf0486ef5770e9d5bc4e8c7a40ad59aca9dbe1bbeb62578355a8bfd54d841ed198653f6b10dd73b731b74e007e5f37f3a7f3311b3db974e3f191c849ba5079676ae6f006e2a5491b0ebb93fdc0fa9d04ddf72a6f852d50f708adfef5e301cdfbbc6b5d5d5b9a1c99e8b8a5d8cc958abbcb65d1e1fd687c9f5ecbee80150d8b31286149103f875b62dcba29b16d856dd45b010c06f82638ca1ab93b9bbc83c9aebf13031098c2707313c140a8a67700a29e57ea8621b647669adfb031992ab3a7962a0d56b726ca0e20a3e788f38630fada9f7a8271d802de83537ef796d13a23397aed2a2b71be45d66d8fdde1e9cf19969e91e219fbb15dc55b2f390cc871c53db21bb9a027cb82179d455c4cfd6dfbc9473296606c540a7eb1b37e4077f8b5a3aaf3b34efe8c592f1121ba40079e0669b99e1408885f0cf332c4753e530888ac410a8c538d9b0791a333573d5c2cbecfa2842b07c4f897ee97ce38b6ecf776ae3ef6595b48f0d8283fc893a9f2e19275aa43ce68094fb02f714718f1794f446be15f6621c016abc39255698ea99d8f5b5c510ca694d004eb689a43835db93adae9338daa8b8111d9076663dde11e9b79d695c77067efe78c1d7e9b2c3c71ef1c4d5ac247cc51efc7792c870e95c20d27ff581bab27e1339535513fb7c29c8aa5cd1da58dcfa019569db708ac29b9f2e068bf397b9f582703760e3673f9fc734c1c1c6023e0dec89dc40c179b59b02ba829aa9c587aac69f4ba9161ec42f072ce2244da31e56685b50f2d23e42b470e56ba68b2dae9c916c8f3faf9da5d23df617ea8830af4809f3e43ae36f0b4ad727e949da6eb4085d22c5bc6231b6a3e63af804f2914ee13d1f83074ab61451bf766fd4b95cbb44812da235387fa6ba01633ad6b623d499460d95d9ee50516840d16d0cd57def9e6fa28fcf94fffbe0701fac1cef37aaacc7d34e28478e82688db909ebaf8bcba75db4fa1d307c57a00fe23560ab91b8b0a5e886728757668077b3eb62aaf42a92954035a9ab950b635b62ef0890e91ed8b0a71e83d6a435380ec71b84e35d2c93aa42e640d34003a19d1c44949f6dbf5b22d3faa9000373f63304ee8e251be46b035e0afcdd42f8520fce279a133d99dd160e8ceb5e1609e097fafec7c3b8de868858840862b7f9255afb5a94a8eef2cbff60e7686411b92d073e401fdb747353c69c3dac0f904229316abf998c08550f7db76e828a3ed95071e914fcb6c1e6c87fb7d619b21060f077a7bc7f3588548d2f610977227c63814b197ec033c65c3b80dbe7fa664fa8639481b413bf5f2d4adc93ec81e9bc538f396f57d5d8de9bec765fd1d177b700b9148a875e16f02c33a7e6f3b81a8356110390a3510c169f02ca3d1c95c28af44ec89b29242396ecdb43d4892d206cc74ae5a5e88e32b2f8cd99936a2629591b64c74d4611551c5cb8b93f2012f3a3ff6243da9c3cc4a8048aa022f886118ecfe4aa80f54876439c9dc0eb38e6b06af4c78fe2a2c46523eb0036d2aaeb9ae434c962d87f44693fa993c9fffdeae99825d60a71d612d30173bd812cb312cee98ebdae3b3337843ad5417f886a62b314dc1f9cc1a8110356a4b4d1debc7cb983e70e3a54476890d01280e8f6025b965fb8ed9c0ecd6d3ee73a911e3baf6b1c680516c113d23410920fd75e9e1d0a0a0891d2e31af57205b0e80a02b9fdc8fda4b29a732bccab52831ef93936bbf64635a16cc2aa9d13895f68f3c67188554e1753e9fc9325f6079ef27d685bef76e62007aeef06eb6d2bd65fe3c5a20cc57ff4ca943706eafc7d4d296b2d0ed941f09892468a7d955ff4ad12b1f42e25a7cc44b51e988375ff68f3a453e1332b18ae7ce30878dfe5fa26ade41a6a1bdb3fc761eaffc6cdb80b2064b717e51145c5db44d8646801c2ee2c56ac4f9a13c6b1a77b56cbb7eb8d8a81681c90ebd5dafa8f784c51a93dc933dd5ad53e3ce4bc1bbc162065c8a91c52483cc4ad5e0e2ec98836273fcfef8090bb2053da1a01168c4f8a1e8818164ff075106ed8eb32d6b55cb0b9efe9f990c62e4263b4900078eb5682a0135704561f9b891296321819b36fac6d48a13f107bd30f20a30f1a3a41357e82dbb78c3d9633411ec5277cd3797102c47d1e2ce12b0209e353e1af54f3f25195f4a18791a7fe427cf3fe7ff1079922a32f172c1ec4566877f840bfe1e355a354b7eb1512603a8f709c52247745c78bf550a93096a188961c7809712d8e6270edf2261a7817eb9c4257d3d41812395598f4f72d591d2ab158ce76905685f086940a95bc49a5e5d0b740fddb633d77a89959a29c54e9f60d9b81e4087ff6260b2df7d7e7beab260a5e2932e9762bc143c7d03ffcffd430afae5b066e8c10e8f63e675ac9b5aa1d19a6521e914a2845f68c55044c19cb2ad3fccdd37678736c913d77b656b7ccf643cec47ccd89ab172823f49291711a8a669fab417a310992fe1dbc17c50ba09abf9c872778fa0e01510d57cc56c95bf68c4323f1fa0aeaabae3d9ab210df2d0f3bea47dfd27579e781e8151927bd86e81bdc222e16be2ef3eb9822f07875212256fc335d007100d1d8899f4815c2070a1f248ff216fad1124f51f0da0070f1c727b018118a1542380c6dd99e3532e91c54f1f826e38403ab4b84c0aeed203d68b4740965dce9f9b3e672ce13216961b6af56ba048beb8e12a271be294cf0cf637c151d7fc50952c0c4ef061a75f0572dd696a550c0c2370febf1bd636cd0fc7cee540941faeef2ce190a647953bcb3fea3e6af205a772db8123dde7c60c2436ff056a7b494c913a1e96898ede0778491a5ff4102d1aef837d7004f6a7e6a73ef59dbaa2b8e680d554e329840c4e158b59e8218a2c33784ad4dc73185e2b4b8817648161848b2317ff5599a8aae38546d062ade89748a23fe5cadd144ec894e0f8985350a07ade91ba13f851aceb7d49a86cce92249d9b8044169abbabd92bfe945a5295072175c27a79de04a5923bde27f2fcaf04cb15c2c09a1fffbbf0decf554604f6a16911e2d71c7a6300965b3b881a989e1ac2a292f1991e9a11ab3450dd15f0ae7e452b330fc378fa29a38e6d3d494d3a439a90a64a90234ee3fa9f33fce57bf3fae77d5e55970ac904ee82b71f2916536ec2cb8c0449266f06189d086cff10600add4d54d2f2677056a198cae0a9a762b5d3235774946c53bf77374a04d8763d7fe618a7537c2a072b7a886fc7fe1fddd4b237fe06d753c5c3c35bd4835ac03352033923dbf2e471d0297a919678a03441857483837fd723daf7986b666895bb477ffefcc28f663969c05484d0d27651c4aa3e28783c87c249312844f37079ff0cd3a3d8c68b1902dda42649e700cb81d0c7cbb0000a6e7b1704a70ceeec7664cccbdf74d89c67a3596e61e94c27433ffaaa40bf1b26e1c9f904900ac4af209da85feab962877a0c2acfe3ca5e971cc8619709c6f707c4e8f838a5077facb76d8ebd8fdcdf73e31467e4b97dc01b0ed426c91c4d5677073599c5ebbee2324942759e7d17f3b822b08718c8460d7077539607cfe209549fda571824b16de8d75ae086b19bb4e8c110d6edc907b70e1e0a0d155ba5f4ecb50985ec23c3db76aecec9ac4020a1edecf64621e147d8066d7ab43744d5fbb33328103af3ce02fc53fd9927c9075acccae39be797948f484718a5a7021eb5642a244c2615d9a3bfb14bad9dbd8848f6f6937f7e649b269c1f30762c5840f708ee5324251ece2c438d3e33b14702e6fdfc30b07cc4bdab2d9de96c801bffcac2db091ef359f2a25c20b20e8f8be408ac43ad3eaa8498a553782309e874a5981aaaff777fec806b00eb10cf34648dc3235a63d22d451410e327a281bdd550cbb4aede94ed4887d29b326f0d67d1e394ce4e917344781fb4c22c4f7198deecbfaa5c2df2b302532491c7456ed470c17d29f0cb1297babf6af43520e95977704318c5aef89fe04253c19244bf67231e6521f51420e5571ac906749ed33724d01283cf8e927d4f8f624369b2a977816ec6e222a1b742299fa79775227b898b998fbe97e9c8832c62394e6eed4d89678675adf23d3f0a5b9faa8c7a9678ead97ff9a95f33d74dc267415808783a57850fb61c11c2d9c338a5a9139d64b432a4ed34731f3d2753aaefba40417a24d6ed577617767a895dd691e592e32af0aa0fcda1a1857725bcf465332bdaed206367f6e4a52b0f57bb0ef975c49b0023888017b80d481e4b9bc396523a4fdb3665448dca2f3bfa6f4ff9502a702866ec8a43958b8360e0c6557f20bd09f0118ebfcb29b044c757928c3d2a87e09a6c6d8f09a3255bbdae3fccbeff8058db518758a523e9ce9908f46012facd87634ce2a210d91bf41aba35bd396d5831986dfc787db63ad962bbefe4d2f8bdecf5ee1a4b4a172b112dbc92777d5537f6e97030948fca20b48f2e006561f4870d841e0d0948ddbbc36d95d46e6caf021ab251a480f809ea15b81c6967b12a49f35c7205d4686bec31c69bc6459e57f062f8a73f5ca7eefed2679dceb82ab3934e0a4409ca964757e90e1a370072831bfb4af06625a9b237fd5253bc74e7d632867e8eb034b2fb6f700e4031c2a8ba9503cff3b4967922c7e97d411efac16c22a02b80fae43eeb30f1746496012a8f0b1c50fa044ce9b44222030beac320be61c74337cd9a9eae4fa9b277cf74c236b50dba285559760793b743e0a4b298b1a96bd9eab67913bbabfaf6e8be0d686d58eecb745607e87c5a908da259d8a5c8d629f40405e9cc26eb94f248ede617e373d78c01bac0b1adfe130c0f1770d4719feec9ecd691bfaf5182d6b98f9a8a71329073f93673c44a76fdd8e1b334245c81daf02ad54be36fd61d30afffbd468ac8cf65a1b1fbb30766eaa4b5b2ebf0cbb26166ef094d43ee4ea1ec989f4f07e129712339c49a80354113e4edc485dbf83b43c6e02bd1d598c5f030c22b76e36d6f000f9d8bdf2358e1ef7a77c6784d72914ba7224092a35df40a27d005abb7fa02e7b1f013840d3fe6eeb6217f487a1fdca0495c8d84a4ff960b1ac39bae351ad5f592512d8655cc96f36327f5c13d4190ca5f9b62a13b2f56831e3cef5480d1d846cc792a4705047a2976d2890a619f24537350a276837735174ad15ee64d0560f29a3bf023e9e5c1d6172c285229d95943e5f519821ab0dee73cb5dcc9ef0416b2194783fa4807209b6c329b565eb5c4ac7bc916b3a712f6078863a7b2f09f17450561d0b2b87e52519842d9df8bb9270d92c75329191d29f0ea5b929165275fb33370ffa53cdc9414b229c3dca72473ebbc0ada4384b02f84e771fca1c31f543b7dfbc0473a286c47953ec9bfc6ce7a5032a7a1b5891308a73b57495ec36cd87ed80f4051724f127bdb4a040c16a5cc77ce841159c13bdc8be2a508532fa76729cedb73e028d3b78e7ad35b945a87a79d66173b436b45dfab166cbdad3822da5966af5d2b23a45d8a26f0217b0773ac8284d293e708d72bb93ee7e953237cb34e63f574a7bab95fddf26f7702b6ec771461ca09dc7e8b17c46a9b7ff817d2929c754d3122bf792b194bf8b5c0476be67df4c2fdfa2c902006f7fd4222b835e007260c3f946845251cad08378d5570c5073cb4db78fedcedeea69e04e41dc9129b67915b5d1fbb84efc8b65e6c38cbe0914d223fa13648f0397680a9606edc48a640f945da4bd7cafc6c9a2cbcb6bc01ef8ec4f240e20d92d661b9251804fd8fa89935bed5657048ee48d7cd01c04ef52dd0ed0d1a524b971c7f71c991ba74bc7796353c5b8bf08977e9c9aa28636261d3bdf7244cc2fc2b55c542dcf6194b131a8b6e62ad958598cc9fa2973f5dfe92945acd0e34c04c83601c5a115bdba95ed549e49c49ffa1dc3f4741676fe2616d5bdaa8eb86db5e6042081b8d24c0a9fa205604d1ef58779a668839c667c3e92b2986d9af21f961e815ace0f32cabf0c6fd0b4262a7bd07d32552902003c2f59086dbf1e62c0ad7fe67ea981a47ccc486476b78fbad5c0f77990a6be84b87a4c52b8472eff67d499bfce27865a3e982e044e8b5e088323b920c516ba38e8a82cbdf0a58362ccd8a869954afdcc904fd1c9fd05012f4474abe1f05797e51813c4ae67ec414ab051be9b0e3fde35c12f01a006e64caf1588250a33d22b58dc7dc839fca4531ae4fcfcda9c444f141d838b691e60bbedb70bb4fdeafa61e2045438aa9dc9e156d6cdd30350b316ad363f35785a0d76b0c71ac3ae26adc4d9b19400009e5a5f2ab40d09c5bbdc2a863977bc172a8492a666715d2861b1da156cc6886dd47cd1e3192f50241ec163ea4e14c102212679dd73fa8308910e4b7352815ad88f494f73533717f8d5d2f669128651e991ecba4a54bc760087fe7b5656627a5b59ba2ff12cdf326c29427256165dfcf1f83d89454b66a6569c9fff21887930c4865aff1753cd127f5c8b62487801b43336169a0b6300ec62b1bdaabe7385ee189da822c2438c31861741aa9985f7853c980b823be57f12137c4ca31a8d8dba0c8351fd76ce1d86a81d4dd9ea6f64238cb6fa745a6342b46b266d0da6acad048b83af91d8244ed76053217e9d11c57c171c63ed4f4fb1ecfe3c193fd89b2417332037cf317b28f3ff1493805ac2083fc7c1bef1e723906477edcc8ba8b1f75fd7b3bb31f2382ff728dd5a138b3b82d4f7585e8e521db7cd1495caca137fbdabfee4b5e62ab93908523b72aedf8c60a8f96594a1a4813cf9259fd1b39c8b610962e8f568129b19134a1acad1ca20a2cf922a394755794e5190b3620fc621f37673936b6682a26971ae56130504d1b3e67960d107c2773fa65035eb809b2bd1a7d23eeece7928289873a593a6060b2ee7dbc3e16ea93387ecf2107262281fc52cd6782e1e981bff475fca40a0900462f5da6d39d3b12fbabf16db9fc2fefade060a883b4ea7905b118f1e9c072600a9a909ff3cebe0d2b93cf43e3c17b3522436adbd466310e3b660f36608028ea1a725f2997c3e23119f0bd4bc7a9f5f6b642530988e2c5f65b3b1cdfa93045352f75990ad1ea5c9a3214095b8b0c22068c3ecbcb59ba9c8a1eef9363a71ab45b6e73cd58fe9cc08d27d0d27d84ef19686ce44aa96397ea12aabd6995497f2f72f4a5725e8f52a77c91a2911b237af676b2bac0830d502e3fab38a365f458e407579f8d9e953d89286731deccbcd77bc7e34b21b4e2bcaad661b64a0bb617fbb330f97be5e2d973a4d04bde5e8521dc2581491d7c670e8c19bb7b340ceefc446c5f95f93812ea532b13e5b3fa8721e2b3e3242697c5ee305b27e1acf04163987f4e3b98ea83f0fa32ec66fcf73122eaaac0100ae2fcbf5044c2493e02c6e3d62d1208fd8bfd9f1985277ce7ebec0d27af786b8b922bd3c6bc79a48541a9ad784958d840c947f708373fbaccb925d94d8f3224c518b1d778cfd59fce39d5644dc981be0bcec2536b7f9ea444671d6a784b5779470d5773cde938d799acb86d41c56f4c5ec7694ffeb37c0ff167f0f6a455b7817c5b56ef27adc8c545791f11c3c7f699f957f0908bdd31cc07404544462ebf5fa330cd153a0463e004f9dab1ef82123f3247eaa2f2dbe230a2e3be8c529403b455096780f305f4815899467134ddc3db2f86e8b5a1ebce982256d96d76b048ab7e7715ce032613281619926f600214b02e7fd56d6d87e3e7dcf6251effebf8a97766f81834f56d635062203b6178c65d8b980e18b894c5010b52146133af4018db134b21b55c7c6dbfb1e103e5d47cb4dacc13061bf38ec82f6faf64c7d485c51fd2e29e6b6fc89fc9a718622e27eb072ee99c277efec5cacc3e939e6a7c6e34ef555969e09cfcc138cb2bad079e53b88265c1ce2f2002a4ae141346b9e27b075e9bd2a948807eff8524895943949dff6ec0eed0283e339302aaeadf5cc2fa47c5afa933c91508b1cc0cd86a3fd377e0a4d774c07c25218a70c7f54b79c1b0a7d8050110526b6dc277cc832a2e4b3147a48f3e0d4b36463420849cd11001ca157c4b90c3d6cb623a683af4ac7d1f7cf045324f653c01fa1f734d3a7cceee22d9a46b6e1382fe26c82a54153d3ec4bcbfad669ce3433a3ff43ba559322de3fe0ac58efbb365d0d5b4e042c4e921feae25bae2bb92ebddfc1bd57086c704ecc1fe700aab722870fd7789900828199f24e53acf4b73ef2df5a84dd00fc493ea891cb7a09ae126314c7d5af7cda804f70f83a145dbc9acaa079a0b1618999b5466913b42157354c7c2f1a661f9b2c766dbafd1fc5c8e5227a878b4dd88b383a4a5661d1d9abfbc04c5f3a31105e990a1801a479df7db039175bc4bf6b23215b71a16ca79eb176e1300aea585599b14bf67812c30bdf7833ff218d289b2af129934a3541e5193ff50972d8775a24613b2bc0861281572b9aadc2ac3fccfdf8baab395a5d7d5fbfe60f02a5fdc6771021cb4b2a6e484a9ed83a3954cc095279a6f8d4faeeb34b64c381fdf2aea4a1ae0840f3275407b7a0bd94b0162d12b5048b258ea59b450d0b3de6237522d627ae40bed30c359abdfbff465a39d4b590328a8838b53e214bff2bdc6c4444dd52e6dcc87de1f57e0a36b5d3467ec685cbf2c76e3a2767fadcfe067b3d57d3f19a3f33c69e546c0f76ffdc9bc0f31dd260daec78eb64d7ab13046e43b978e467316f60a49884e88b60ead357eb3f88f889b2a607b2b2056abb0aa39f10b25e66e0cac28db971a9f5947fde1faa56c602536d27b8b1f79cc5419f0cf4eeb17cedba6b7cad05e764b9bcc8a6040e862f95b463a3f01c59fb7da9cab43f6a604f2d576bf603c5b3c129ae24b637cf4b2b2d8d6ad37c7bb4b42336d9c84c16783a2c8d045a4b4764ddc91f9800c49274b8af13dd753a785c0d8bf98c1a711daf74bdf3c518ec8f44c9678ad457d6fe9be8479d34c9d5079c820ead88a1de80b589c795d16201dc5b090744def395df426095d0261596fa6b41a18022f783e20fdada995ab16d343c159b1d92f08cde56db2aa08c233a4b77acb1c959d97c7aa01818d62e3eff7df5db910d4acea08e35a55ca685bee4bc02dbdbbb5dab121a82cd668a1f8aa4b9373b2eb187f29aceea215fbc6438199a8c176c95eef24c5eb3d3fbba89d6b066b48ab2aeda2441c4a844b5e6f3e7c7a60160b1e9e5d71174f2da2fe513ac30391b105b423010fef13d17eff086a46a9734e81ff35dabd60f14e7a508f4544e96a28a288058c519299c38b852254a319fdd964317435de07a12cfc13eb65fc688e8a87a14d538825a59593638cd3d3ee7c7848206960614d80bc06e5a89216c1f1d907a8df4c2238871c0b7c772e0f200fb82af21485e570269b9354a8c2ebe67d3595577d49ed15877c6b1fee71e4ca59e906c0f674381a6700da43674e48a768a9146d5236cbe10cf580fc04ae24e530f685dab3f39da7a9ce5019728e1a430fcb872c166b184f08579cfedef9e849f1af129b93be52cb620ba58b69f89a7c583c3913d0b55bf3cd6bef3a703c88746a2cd50058191662838dfc9625b81cb0e7a99697ed62332706ed0be0a4059a054f5ccc9ddc3acc796f1f534c16237cb433a99183c114c825a20ee42062d4c70f40677780c5247a43d6d742e7f7b57d7b79d1330d160e47e2db36840295525b0b64a866ebd1698b499b32946ddb1579b9021ca9e326a64f9ba31255479bc67fb64666afefa3a7bf5da90b29d4bf4ec51a995796b0a33272e65341e76b2af1dadb119c49da911ec18a32a04cf92a493e913284a3f7fb4edbc8354e1c787b352cc56b4ec972d318e86f157e622c3850939eadc60c0723a5a313f2d0fb3bff4990876336b9024f827ec5e1d7317645bd34361064fbc40f9781b250cde57451b85c64ba781d5dc3d215e0a129c369ee3b78e501d9e2249bb31b8f6b9974b89cb323c87d2a082749a0b08dadba43c599341849f6e4ccfcea6d629749219a7cb72bb9dd90cee72ca85166df163a28e88a040e94a6e4825f5e39b40267854652934c1598e52c703ab8799387fde020120744661f424f878e65918d3680fcf1187edeb653e1339a7e2d68e9e444304ee6a922b032e19b34a6dd1c9a6371223c7b254609bf0c187462010124c785e3c9cbf658afdf34947518a8a8fe87f7c7e7d571e4e233961a774d120e9e7e63310f5c81c424b064c7454d1b92e35f8c621a99bf967f32946c470621df72273083d8be0faf67714606ed79671cd31c164e22885ec5f5a2615bcf88b7dc858570853f1320e8e74ed635f93383278b4503eab847c466f9ceb8ba2eb982409c0ca2a3460a83cb47b25d5e2c10abca17c69f2f97b89efd59f60043dbccdae0c2beca599adcbfd5806e4b78937b4c49b7b213c5ee4225452a9febb88b35bb8485814008d9229e52dd0cb18594e03e11ead38fbffd7ab8eaa28e5d330038a35d7d2f18df041e25529ec2e0d49a0854bc67f42021634f8b82895eaad19a8fe7ef76210f7f54e675509e90089c7916c2f94cd63fc71677281175a3cc3da1c51688a0eae2ca4e39f78ca05391e32ac88c66b64a772f190bc384ad35f513cdc509295a9ff185947ed53317696bd60c865e8941e2b370ceee68d9559a642beb3a92dc4f6462f43b5c9ab44b7f8dc1a09d29f3b8ba7424c999518515f668714e6cf8de5575cefe682fbe0cff3bdfb9ca559fbef26145fce98afa1dc9c8bada41d5e3f690e8e61999696b8e178d9591684819426246ad0c43c71d4174d50e4072f4fd0e60bf789092e46ad4c3a94da2da4ca38b6c3c78af3cdfba2e67931c28eabbd1b9752afd4b4f4986c286729787a59c8b65e3d766b368cbc32b3587013bb4313b6dae577866f6a4900500eb1610a56d3103b389458f9fc4496ecb6b2afc3f9d109b14ac44fe199bc68e3d20ad9dc84233e53d36621be896ef3817694d5132461d04298433a051f311bc4b0ba2a66b45a320e3e93779c6ee3f5671a3cd3c83f88d557184b4bac7d58eb1bd1e9a51111ca1ab7e0c25fbbf86697176344d33593815fdf77c45ff9c75465d36efd4eb86ffc9fff147406d91477580ffb8c7d61a0ce286b8781f8e394548219cb75232d684f817b6ef9fbc82d21fd5033c4bb86673894b28b17e8b64647efe331072ab43fa50f2193e978ed5a24c3decfbb599479a5a60d1ea41592a163d2670e1f3686a379e3cfa38172c3debacf44e4da69abdaaf5dfb9c1dd2ebb17a199f0f473a5033e3a9c434bcf456f5a4440dc03e4ea4b4242d9f2c1190070351e0cc5c1841b1db4b0b25d61e6ec9f24e054ceb5c0789d9d7c83d47f0278325786bf0d9b0a8bf00ea7d792c8057d0b12cb6153338f1191675e3c0dd4f35cf856289527cdc088378444d2e9948e83652a4e901c67a68455439363708bb83ad92abe8feae644078554b3f1273ef55594722bfae6007e9b68dbdf85446fbf3b633ce1743c737821081cf06daceb673a9b630723d8ad317448e3debec4ff8bcd58fc36f33895adf2f2663229ed7e7652d26ac78d2e01cd2808604397975916dc923442026bcd5b6aeebecdd5bb71182fd7a6fd818764bcc2b6ee9c39b90129fa828a5f137cf11a9d9fe77ec700f0d64c947114eba3b1383bd3605dd928426da574a8c15c58d5228f2ed0a772101c6b5506b8cb7eb7fa641dfcd0c0ac64e69ca12aef38cf4e34484ac528f8c18c60e26eafeedf6df790bc8f1eff83940a7fb7eea48383f2ab3d05ab04c1496ded8fc90ff94622a50e6e6ac85cae5b62e31ba2042862cdb92b6a0ac1bccf5d166ad926a8ec73ca8fab34deee26e5436633bfa38523e69009c771270feabb2df83f9b712a716cfa61ec06f45821438a4d410ee5da4fc56fc7b528061dd9c7b156d8dc2d7f11633d903a32db9942b79a81cd912dc9a96a99ba58a17fc31dfc4af41bc111325f05793708ceb9b7a3fd871f9084abee611482e576facfae6cd64ea7e547ef9902bf238343033994ca95a04cc6280680fdbdae00f903e7cdd3809ba8828a16f95d226d49fc2f6b75412ab241d8704d3f34b7afc10011fec6b8f0d2c2827327029dd0bb20605873e90c617fd1515ef5640823772e1afea19d9dafb690a04025956f057cc42628e3534d718c4035b3ee6f9857955cec7ca81e28842fd3d7050c1b86cdb98311ba3df250d88ffd896877cf7bf688d6626ada13706e936b7e2805203cd9c90348342db7eabf47aaac65f8f65c0e212fbdf665cfe284d8ecff06f7a7b54b261b04c47cd0f02bdaa3409de474355b08525d4f2d74f6b3361c136ebb47a0d33488de52c62d9cfd700558ed958e5f0f7c03f523ef8b6f5b3be2ed00d98ed17d97bbae3b12c937577ab8d17c5577160265ce9cd3594b479cecd996083c5d8472ff9a781ab6828f8f05083084a9864d2c7b284a303c73edcaeefeaabf360ce13642ec92a1cf137d3909f810705ad0e2d0b23b9ecb24b3cb0ecf4efbe18b279d31b3d1918dfc8929b47f3f62d06da11b5e9aff264a8a50b814f9cd6a74127184edc9395fc7a6dbf7158e6f3c8f6f7e6032d19e05da3f4fcece118b5be4303fc98eb9abec1edcb7a44735dafa90681584ecdc8f3c338b7d38f5d8c037e1ca00a46bc111954831731e3e482030603c306fb61aae532fa6a48bd393a1cebc5553ce24083ae7f09f387e0c62fefe8387ce5889e1e301abbed890be7b6c08effc220c4c0e88cdcf254d14459751333057bbdc515c293f1a5bfb6ad017e94fd0d6c572a082c43cb3a4f9c10f053372b3432a754bdab917d13ca649e84299ff0b26117aa0dbb68811c6c258f1e30c39e92969584eb1cf123561b1b9a47fbcfeddfe8aaed66c81526efa0df780a4247925204ca76c9593f50eb1bd8e951897280e5e9edc2262566feb8f0f1e5100ef581255d5e9573864ae8c41d8cfdcb24bd012144d279fed9fda94bb8b51027f122322e0abb5942f2a4d09cca9ad6990249f16a01de92bcc67e6ffb453be8a0eec90f2c0f2363f52f258184e25d42e84390ddc7caabbd8298149943cfc3724738072182e627ddbab669a922f0a0e436bc74dc1dee67274d58eae0e90e4700e95ca085fb6f31364d8d4de550142412a9b9b993f0ba5419a5acb3ed72d6ef2ccda479876fd6fb25a1ad75810bcf1d7ba72386d165fa46e798aa23dff9a59ab3b6e61c3ba7f21604de64c94fe5b7b5a51cfbe8b414cd282e53bb74eabced5c105d0b37b0265c656e9af0f48b716c8838d6a6506661477762ebace206f1f4faf287881db2bb0a9f3f97ffe4cf55972715d57d106067bbc5ae497e2faaae81708136584318f425d0d572894d18f6d6954296b0e146b4bd372238d7209509466b6a7c53c4a6dd61d8a80ea626d9ec76cda79e095f525598082ffb66fdafa5c6d0c7fe63de7eb112ea30a1aa2a22c1633a96d3fc8b45f90d04790b9515f75ae733d13ab2731f4df30f1daed757d38c7c3c246a2449f728050ef4ca083877ba8a615e00d289f59a74a1d95e5073e1846aaa577799e06ad8f19a524f8e3b5a86b9d639caf1ca7c4c4ed066f5e882aa95724b206b8d7d78d29933c49bc778036f974743de3c05f087f3207f5397515a85495c220029af05c11ef603e4ea4b3ca7021a625ff3ab896b80e90dd0f5ef5e4ecf0d516afceccdd30e15b7b2879670211ce947bb36535488afd6f5d4552eeda3ba0459ce3b0bbb479b561b0dee3efb871e03031e2c368bb6686727ff542695d2a9d8da4b9ac9cd50fa9205ee5bab8242daeb60d5e1b38ae5846f07bbc4b3e66ec2977524d5449628683630b2864c651ae5d720ce57cc50c974962597f9f225840540a1c9e7823c4331c5d94f6f1136500c32f69426a88d8792d742c744c80f35c24a59db70eb18edad53b373b1ef4834e01a5b85830f44c60803a8916f5bae001d1c976107cbdcd21d0c1fdda6604f9440e33210ccf1f9bd633dcca08d963d1d76929cca1ed24a36e0abbe93c9e00490a9923c4455df7831137d4b7360aa1f9b957f0e789f937fd19b0352d0b871eba6a0625502f8901e6d5e0d2d64d388e141e825dfe48808caaa877ae5b2251818110a438b87b55ebdaf8d0f7a05cd674f59c4be08aec90c145b2c895020b65d0fb55e56ff36dbc60c9f56f423c7af4499d0a1f71708f9e0da88a33d04619dcfb14cb37298cd3feca9a9eb063b24695d87756d70866bc4a7b79991b9295b437e388b41a285698f14a87868df74d0dbb5be2da33de581b3e977dcd3b21082d47f4156aca5900f1f2ab1d2b7f002a0c6941564a768d79d5b14c6ad23f1edd4fd6cec63886d40986b3bb69279fbb8230704f81bec6cdc473bf66159bdd5e98669e106d0caa0cb2e3bfa2f94e19a83333c55dc5ccabbeaa93d44e9b96fce7e2aca00497a9f1adbcb533cefb602b62ee15999c7e79c3adae3541730d957e3277a63eea13fd1691c56dc7c7d5c7b107c8db529e26895c09e92b16a2913f22d5f18095494605e50a452c9580d0103bb89196e1e1c97f99a5214dd9d5f7d185aece07cdea2a60b44214f2912fbd1ea9f886ed9d8e1f3f10a115363f5fc94fc2b83a5efbfcc1ac9f2dd6fc010dd633df8c2d5cd7be01cd8c3a020c819647528f6b16f282c1a5f83b793cb255c24eacbd6f2da326ddae1fe6fee6c3b9758191a2420a27fdc38fd8c260d7f80244d92219be8b242da8b90422957e1de5db76819b41c936c8f283c238698a2153b9fe4078081604a309f284c03c3aa7640bf1480b77c7add84f74eb2524a8b13967e4c010fee1184a3b16956828f7c0e78e984c8d2c9ccf2018fee64b70f026ad14b2ae1aa4870dcaa67ed6f1d4a16732252565fbfc05d00ce8fb03b19915a0aa8d41073037cdb108091bfa9c13ad65fbdb02f61cc1fe4e7ba3ead608ee4939d7e5410f5a279cc99a45f265e50be22e7ade0eb245ac5b8f9158146ac6110ed99d904310363c0d74159a78cbf1d71b4ebbcf95cb05f1eeb8934e92158915d97a4e33d7f74f5320a1f2737c02b71290b7894f829fce5e40451f1d2a7ad4f7a7057eb264b945c3e9ae1583bf6530ac2976046f78839882e178129909915846ceed5e2f67d146f5027107cb2472697b464e4c6f5d722fccaea303ca5904e4854a717dfc426105a9e01d7e5f197893d8447ef6c3256be85f26d608f1579b86cfe1e729be8a0771e3b34852c3a176915f8e437741280e07e44b9620dc05893f146c4b6f6eaf5490c7e4bafaa5bd340ab2512b37f9acf29d31546eba2cbf5c78f4b482d70065d114eb91135006b0859814b5cbd1077e331860f3055bf232e512f6eb9cdb037fa325e40bc14908523228a7bc1ea10954e102d1d9cfcd90412a571270c6101de3ec48dbe420b01a6a9afaf15e4a34b4a927972ab9eabea98138d27a9fb99d0eb8dc27eddda7ebe8874244d124397f10d053592363b2defa3ddb4d8506ccb30a705bca83bd21578a0f7feb51c418c15c1a7c6df2857126840a3d73eeab99c56fa9032d7b240a9a01a7f98ab7d045531872bc63e09ba95daabfadbc8c19bff1c54a244abee4cf8eef39ad6e8d57973a12eaa82aaf974555023955e198788b682183a711753fd9ddd1c280298a803852329d340af854b49d6cf652487ffc3ed29a11a9fe332cf502caea9f3ddb5a0af5d148f97efc0f7f6fdc209ad9d8880c4d6cd4be92b568e605e2de4484a25931a57d25b2da1b563665b0383a6996abe26f5245015dfd026bc3be1ec236880d2f3fd31e35e0d2332c107a99853effad2031384ad0141296b864d361f08347dd2a29e278e25118c30da210a6e0ec48ec1c06360abcd69ce08666433aac59f986890709516eb9f958c1248f722f1733dd0c03b9768f5c4de244a13fea7080d81da5a09a459d53cb5e63322088f560c73020294ceaa1f913e5b52306ff10cd7505f64e7aaec7b832f9cdfd8f76955d05263168d6509e563fe19e657b71f2cc9989d69eaa836e7a066e22497117390b6e94936e7f4556aa21193cc68136e77a43af034d54c102fd6788da810ad69b6ea3001c38a5f64420955be4305916d539d137c92d08d2c0dfa2e9c8af8bae8d448e07d54007394ad29e525aa15e3bc17dc766060e9d3cb3df53ae3de89617731e5100c58f517bff7e5c4764c44463609fe778cf58eb07b9745c6711fffa860b487af1e59bd126967f4d30f4d807545a1940503211427e5587c5089781c38241128bfaa48ce535deb631509697dae57f9a2d397b23485eb49c0dd422fa52092c0776bb87a41d8107610466d9332c6975d21166fd588cb9df34a753bade3bbe39056eb139d551a72c030c39ffc5a4d687e7d0bca8312a6bc60e7efe1ec239763085d33489dec110600c9c02821f5c44d741757ea02b6f4d68e7a16401b3670761756784d4f0dc574f639d061e8c4e23acec42b16a5bbe33ef678105945f241179fbf8195a96068e7a2adb6bcb0d0e5702e4c4607074f9459556a2277d0af6018214bcc5f96b50fdac7ab939e64e3fa658eecb74e9d00550b3a6ebc024ecaa6bb87617c7fad7dee426a895709580db1631ed48077ad436a429ab7d8bcf425b173529b20fda44f283169f3898dbc217ecfd9aafaf1bdf066e22a09aa76aaa52be09d49443eea6531454f69603eee35534f550613121fc414920a3e9aa012b32d576decd19ca01cbfa489be24a2b926413c00f455aa6eddec2dc4c3984a87bca68d54bb45983578484c429aebd8ff112d150f75c80ddf4220e1a21bb96f3bb1da302021b00ad69d16e035f99a73cbdb94e388fd928299593027d05b21a70688ee82643c880b5357e55effab40b5fdab63c47df67b6fcb6f1738baac489483b9844ce9604e6a709313587ed2b838396ad606413c32cecc3401a1cfcd85b03bc169b5c292feea29e463872e66a434944a70939da067ac553c930bb38fed4794a250d6860e53ae37ff4cf881b4afd7e93cff8c5f66bbc5e77fc575a85781c311619f1578c2d66ffd3fda1291db28775778b05d3ac6748068d94a5c239fad9a4f874ba1acd0c7831b221c34be4ee6898ff934a2066e0dd7668b89990b741886bca1c6973310cabe0bc928b43c557da931fef5a48ffe8bf8afb823fb84f9bfcdc3c0fab1f88b69b18f7cac7bc58bc813448b595bac8aaea9a4e90fd0c3e468cc8dfa5680af016de138240a8b2561be6640e616172c1ce5b0388a41f1befc5c02ebe7eb8c5f64f8eafed00b15bd9a9790e21a9b5d33301cd7a46ae1065ea179514e2498f4425b7fb3aa30230f78cd452e0e777d97013757479b3f160c19448e3cf4d4444989c08718d91d3a5943e739d2ab10048abc141b573d205d53dcea0a44761a32cf38223cc47a0f13df83a67aed543bb8cccaa2a8012909728d6aadfeb912a05367d844ce1102a539559f1e0b5502150bad7a2b07a0b35ac894643b66a7e213bdb8c49ca92be32183733838a19db6fc09322ff2dea7ce5893ff9455ca9c10a41e6b13d575cda5e91ecf5a2eacc74a13233211ab237b22ab5eba1b512e88e4885184af4de9538b0837b67411abf518c1f9ac4efe8e92a2df362d9c994eea2179f43aea986b04b7aa20afa743d3263e324bdb4607eb8c3de361ad9e2a2f05c73418d013fb87b6d9a31c7daafd063091d4e2a69dd92ced528ca73dec16faddb4f9fb41d0f22f499de9a7cc31ca1b6d3adc9e7c15f65e9147132adfc9022e2c290edae9c3aacd8d6f165ce9960a71e40cbf84aa3ad85b2ce993cef49ea91c903c3cc456e4872693d7e75f1f3e71d6d65eb9e5bb5f6c584c508c357bc057b9aac85090f731a00d7a33bf67aa1085c2f52449938526923eb897634317d16eb7f0329bd465df3ee63d982546543823d9b980b323d4d59ed72d0fdf383d64e4f8529a73f463f361f61a90410c252dfac193c77d46ee07dac6ca86ae5bf258c34c16cfb03ce0423b897c9f63bac60f0e4ff145f2285dd20254aaefde2eebaea97d744d30108f38b2e19ccb7c807e3d37f350a6a2eaac63c60582d5643b086f46b0e02c5324ee3fe2fc40d9a48edd049f88ddf1e02117384b0c47249868739ee01109977fcdc2d199243a9d92758b6448674c9543704972ab7b2644b7e4df19d1d6efe29d5b6510da5197832717ccc784cbf7b12527ba9970565ad5609daea40889b5e19a866b9a5b5fb065e326a3c67b8c6f4827fc3cfc1d68a53c1848f96d84a6ee43e7ea83ba060c75e26e3ab709a822fa76abcdc934a5ef7fc0c6fac5cbdd8f9e3ffa9594637bcda9af116a56945cfebf1b5877a7e5f2193f2e3754e5f2bbc631c8cba26e788d72fcc53a813ee13a2e9ba79ab66c885f4cc1dd9b343d005c7c11bb58e6a8b6c1951addfcbe0a71b955c5d3201f89523e3f6971060682be1270aa5c21ac733cd2df33688c2669a3a6f3dd395c1f489154e871dff094a031c31d0163ac8277092f1a9226c55f79f69ff802830615808c5835e528b6785a17683c2d940218110b7b113167a527f71198adf5ff9a715ff37796bfa1160cd73a8e8c56b030267c3c0d488051ce5012565aea8501d5ee0913d3580ad5b7f52aafd8f60cf8c86fbf236e78b8e006541600ff9bbd353cd3f79affd0f6de9f4018c37afa15215dcc6b7cdde76ec2b7704359789b86a39546497f8555448ebb0489c6c06b09f50a458031ce8850f4705d7bce07d4c49b6bb67f9d60097bbd5a9f868885825726ec4005e066ed2ed06288a341c5b91e1c8e4a4f248276c51bb27bafcabc389221a3c130fc010ac930e3e7de5f1d10eeac91697a634ff8720c5a6b6dc5ebf813c2d5af255badc7f97cee5a014a4f0013b94b4de99420f66c5bce8e6e3eab9c5ddaab37a053ac6636b2a299de66ee7fa3bb56a76f64c2ed2844efcd22a129bbc571533521e0f6b086fabfb556c96207b1649355f277f44de1af80e03fffa84753727cb16a2db4fc60f52c2b422e67989e03a426dffded201f9faae68dddfd7fdd42dd6d5fc8c6fe139e73809f388d14c11a71ae2854d386de6979917e37122bcb72ae81972e3f6da8a54377a43cb6e343fda42a382e4400d8e05cdb503263270b2e2c063cdde3716429eecc949c9aea8bbd2d77873cd188b861a950c38e844920a91ad3fb19b0ec5aeae88a807446d1927fbe12d53c7e81529f16e89606998a5a163b4b2b9a5286b08d4ee74b149899f4774f332486446b1136416b6469dc8697fed93861dcad9280f85cb5a291c585a97d9beafa9790713a242a6f867a1a4c240941ba228157c38b8df665b98dd44ea619a25a90f0c1c4c3e4b4dc194836789a57453e702f1aaa1aee2098fd2421abdc6c25fadc71adc4cc3a270957f1a5a7d29bb890459a770bbee2863918e1db24561a2de9bee91cfb00b3b15ec598f13346f7f5f65e0c1e01d73bf536e36f854063a08555a4e54ce66f7fe0940b8d37427a84595cd57778ec10cde0bc34d479f318313bef6dd66c93a39929795e89a8214e24c58e63671d393722dc07a2bf606a9627236d7bad210900066547d04c0bfa46ca1d8b66575eef102f24c59bc6bb1fcdac542114880382b5aa4f9202ae39ca320ccbd9eaecbc162c071503862a5e42c5fba99d9db22177cf6b07bcfcbea0b6bc2a3cfb58396ee8c29db3b1ad07ef6b98fa41685249797a2a2591fe288bc1a7cc2162e492b9e0d124a923b33dcf6ba79c8affbf6a0081e15aaa5704ba77b338cc90308b94072e474d082f7c9517a2c779070a71e929a13fce2ba310fb549df52a742183e945ad659274c544a3f7b60d23ea4eb97ee3b6b0b13f26b84cbd3feabbbab2a98924636695dc78c82354a01fef69fa3c337391f366547429d0746a80c6bae4e2eefe8ae0de80fe96e9bfab4e4843000bcd3d765492818505031b83aee46bbbe575fb11dcd0cdb0f48dd2f72daf8099b1206e9e670b8436c8cda505760814c1185c441bb4d8f90d4b2d23f7780940be62c058b5933a30c6c0c6cbfcb142c7837eec6a7dc90aa237291167f34977f3b028bbe35c6cadcd5a9aabb98a3525b313b2adc5440592fa74d4698e87a0288a702a5ebea8dceb9d7974532d653adaaf84f3a2222d2b9dabae68791b2238ed4247002a01a121d847908b9b56571f4bfa7244f2762cfcb31ef488d25a88ae78a740186ee2c49423006f7110adbd76f04b7794814de6289ed3f79f8c9551fa9454a92a3c888246a20ec9d5553f096525beb7fd5c963614464f8db08fd06831bdc096bea5a4bf6887bfb8de8edf404f18085511f820ac65415a32b6592e8c9fda275ebe75755389d4e6381149f67dd9b2affb339c7b096ce98f8295df92d22c1e201c1cd8f48c9c85dba8c9abb36c3513b7570a962ac44f2db2c09c6bbb211430212f86a184abd743374c44eeccd0c0702998f5f329881588d153949b96b4e92f74ba2b2922625ba9b6cd3556f2fdf385abf59fe774b370c41b435fe04a9cf13e982591e63c5cae5f4db7f340b05ea0d9dc26991cded965780fc02b21043cc68e249a74459eb507a3e0f92cf97bf07e81e8e90296dc40bd62e59c336453cb4e2e9689c2616d7e69f42169325b43c50e381d7e4de5106145143ccc0c9fa5d5050f45249a9d3d3b8b04b33ecf89f483c3dfc52c04cc2e6de58e75ea891019bb8ffcf0e36143436494211394b13519e283cdc4baa99aa7c67fc4c1b62ac6c22ea180f402eca53de7a6b1d5eb6239cf327874a5f6a4dee981a41f84911c2f48b835ed30feaa7062a4398448a8d08b1ed2284df1323d314beb13809d00cbde8a331607341cf6199af04204009364cbeabaec1196c2a639b9011155272f00e1064faf0aede25da9a9133395b658ade384f2a7aa147f1f341ff683bf576b95416e113805849c10447acabea48b06978f2f19da6101471b9005b1ece599a7b3a9fe4e28bc8bd84e318bc5793bf69333babfdffc3c177a8077514c25e460f8a3340834ff9cd3eaef48bf2a4116ae551300e08b3292c17ff4503296f400df1930de1ec2596f9469f6fd22107692658a2dd364754435883d388f3b92701396e8922c7a4b59c38fb03477fc0508f76dd158038d8df1d53ba2945f61f63042a9e7f8f718f85956ff5e016873894fe446af53ad00d38c69192057090fad5186f3bc90715942f9e7ded6fb9a6291b8f4a80c5dd2dedcebb95c2b5e10d656459c29b12bccd77b6c3930c0e06071053dd8d2b35c1a3054a573e3bcb56c45c2774cb9346e289046273156866e556741af74bfd59b82a3769f4d93d143695079c035ab5890a6721bd25c89d8592cc998d4d472860dfb8f96ee232fea84fb4c36a5838753aebfd2c5904bb529527831cc4ff0ba3f2734d4980320288e58a6f9676c3a21fea8485de3987ac32f169e84985b96985b491f54752a48c1c4dd392baeff02375896c08a6a18ce7567986513265505049ab7e381bd58108d9a5f02bb629ea00b03c2ccd5216cd0778e33dbfb9916f9e7a0214a96104cc6e5a251380e0f607a73c63d045823a6313b29ef729c85213afd77bbe0daa4f8f282705cc317f186e25709026dd161644189fed39fb97299f7a709e659aec2470bb71d7aa2057da2055c5c9e4c891ef75c709950510a5c0e7617a767e7b949260a32c7228be3d981ab22f0792ee971d78b59c8ad083c3617ddaf853494242ae3cd5e0f89915c5ff633af1ca4412dc66dc49f1f93782362bc2d353bc7de6feadd529299e6eb6d1e66797fd93470075d2893f7759be0ba3ab2ab454509160f2385254d8fd8224d592e8347473dd29ccae11d5365f996c38b63437184cb3ab903a5a5c01fcc40fc06d631ab26485ed77397bdb3ce2b725c15ccb6a2bcce67ebcb05f5a2f87ad2064f104fed5e6af99f1570a88754c204a30c239b9e145c0210515aab1dd177caaa158fab4e77e34837401266c7dd31dd819a557113996d35457e7ea94ce3ca994068a534c3214ee78dd64a080414b93b225a516315ba6679cbd105a653699e0f0e10ba2bb6ae60df2e900362fce954f013df1e70e7cd5c2abbdb194d8a27fbd1cf078ae9d1933d8e097989b61c0ec552222bcc10a389ef6ebec1a80da0e094812dfd3ad722eb534f2a71239b817ca086f93827a0a68ab1f132bde3ede1dfa6dafcd33d8778f4cf933babf804b4ec797d3373480fb2d1202f459d0d01fe6fe064b02001189b8f9b477b2f47bd595f1469203bedb040412f5a4d439958b96361848eaf734ac6c4eea5aa59eab58297a78fa267a225fe235b19f423988a0e8fc6fd55ff56f6de3c70df605831f8109b34b4c1bdbeb22ba3579e6bc87827144c463fc5c261c602c5e53313b00528f637ea842e7c2d8e6a5045da574f15b9dbf8dc00125e326665d2746117b861d5a67999c1cad308e9a6a07ad0d6ea11253374890dbf6f118ce9f8728bdf1d171631363a0c6f6704c3ce6adc49785e8b8cd3a49947664384888773c6fab05de521d9837f9593d1a7d0966ac66ada85150312f3063afd5caf455e9fd659214de0eafb3c7c17351e59fecec083ed0ecd09b797cce2c8d2f288e03e7e0c4eb89426ec3c8057d04b4d375aaf715703e3b825650022d3d2046fdb459e39e3902d2de8a8b132116f6ed4c46e15e5141ea25a79317fe99ed574f1177d1b9788eadde9bc95d27a5624c71c6258e1674824f2dea53fd39acae752cbf88a34870db03beb4a66764266495500981f81a8efd1f5016ca4e6b344992e04f415579c26a7312a3df901ba054f92523222403dc247f8958a8a6b35228d1dd67d36358c7c71a9f2895c44d584e6f4572a951f1c0a0b8300eda4ac246bdeef301b1d2ab18ce1a86309a42bcad29679466169d4230cf8e5ba29488f0bf7a19a354478858819dbc3f15b8c9c93a22f4ccc2a1d069100e9e6d350c576755917f9bb16c4c7342ba1f2e220243c719fcce98aa744118b9b13856a0ae05175de5ac5cdd8ed34fb9fb336d37cf5e766b15a9796efd25f98255f7a37057a9c1f97aa312a4bf5a5c84c9eda34f069eeb951d1d4f60c6ee02624356b02b5cd880c7690dbc3cb752da8ad5b83c77d62d676ef918928c6574503928e832961d2d4da7b83ea404841f64d262dbc25213eaaeb639f029d38b57ae4a73f961e83a309aaf3d10b7c0077be8ed20a203995c8472d779f7f39433f33e134c4b1e7740504a1bfe6a50519c074e5e60cc6c26acb2b9174d8f7d5c0a581f7860e849d6f61ae67b53b0d9dfd9bc8efa07020d56e3b8d33cf9cf4bd922f3485e31ad5edd9d2c5ab0a8bbdbb93e6f1f0c71a105a613c6172d6d6da337b610fcf8f49d69ae61f5d9cd1119a0b3d028f4cbdb9888afb740e727aa6c1eac7b5137f69c102f982b7917185f5ffeaa94f3c0f1de9c377466d2b982043008bccaeb11f0f5dd373950e90e3a61e06eb7bdd7266eef8ab8441f1a0128893f1332dce2e9f98e496068cf695ae681a9e54b8794f24643ad9e9d8b1ee4dbe2d08f3f83a85d5df9555c53ac71a146cd569a10a8f1e3e2df436302c9e1d7d23b1314f9420b7f8583dc5530a76a6598d410200d777ec4f556027bb24af20187facb4c07310e6257b61f96c76f42948c0381bd41c31e515b555c83c5c1f025b24822832a6f07ddbb842a95ddc6fdcacfc2e6933299701f2f27ecc3a534940c426fce2862f416a7e08b29b87994cbad83a856d6819965b6c13413793f7a52a969e823b1133c29bd7fcff06e079f6c320808f56712df885ad99b32bf47aa5e458fd25501ceec41b926d86797176e0035efb9ff081eabb6f03384ce963795cf15672ef8c6282b189beaf8e2dd9c34d346e31a93d800d1cae61102003b66f3fd01e5f291295908b26515e9681c830be96b23949a9864db383dd84dcd81982664005dc913ad8a27f81a2b234ac85d417308e0a50f763ee659e3098d95a8c921335a04ca9ee4667c36fed6c22a9690de825edd512fb1b23fb5039dee72c63a774634b048f266aba5239d34c26cb62cf556aba751ede624090007afcbb4dc4a1dc96a5fa1df8c58153cbd719e85471429f3d68e81a3d24bf4f9999ba19832c44eca512903bd34c562a50e13becf82cb13c4d6bddf1a9000f1621e1a220edeb8865f838628a1ae7fe89c4bfe339273dc70262bd518a32c738eee9be325c4da348a30a8230f31af3ba07009fc36d9de01fde9f5a3cab6302519079459b79c0cd30ef40a0d0b580c15cfe2e97573bc469240253c44ad7df6aba4bf6a911c5e3340a30aa0533f4cc1534caea1ebe9e03bc3aa5277fad330a6e3807cdc7afd0a1774faa066877e9faa7c8a7f49020415dd343a47296f4cb75b0d1404f9be4e62b8b13cd8444113f78a564bf16adabd14a3c6aa7e214fcc4c18882373bc9742af83738452b57fc31d0306f27d61a1855149840a28a8ce8504b80bfa87b150b86f697f4d0d426017aedda96e76fdec2ad901e30c9b7923376a6d6c7cbefeb58cd909aab8df7780925a32ecc4612e755de881537566e40c8fb1efdc774b7d8c6b1748412ba2ed784d840280cee628300c9c45df7b6b9b22f0c9b1ccc89520eb56c986da726a312dd2a53b9faa929e73f6d1ee714fe358acd61198d8233dee44b4165bf77cefbbefa0655454dd566ac37e6d638e4b1596c2c0ead5fce73dd54dc3775bb365275b0d94b032405b6334c9aabceeb685210835a2e49d5290c467cd0b4dbf5a34f1c842d1a38247a578aa921d7302ca43027fb551ee7e5d8ddfd1e2ccd82d441cfeb1a1682af0535ab79879770973d3371e78589fd91baeb2d901f9d7ac1135c42be13e482dbfc99fa590d6e02adf43d54f9d65896aa331177a50b1c11f1435ecb9458ed8ef93163f34c49e8f8d53bb51c5627bdfa466139b3b3901c9872477acab5947105f040ebd8b3a9d28d7a8fe1309fb7f167e90d084770fe4de946d69ee888b58e5416bc47a44d82cb422082414eaa443043ea2f17f9c7ceebb616fcbd1ae46f45b5eea8331d5e8c1b2ca03ab8ea73967d41d978099f84189edb49996357b2b98db304fcc93596631e8e6def0b1df2f5850ccac96c6a531bea9597e09bf8794d7bf49726103375083b8f0e70b4a673ad89f6f8ba6cff91b932914bda29044e2c72ec7686506c815f6c009f9ff9f84f91598f741455bf23f848de55e10dd422186b7771f044ab06af597e73f0614fae75632c8157e4f093828c3d1e255cd953194885172e1177ff25ff6cb9ef703913b3ceb53b356eb0f4259c5cfd2a637365f9384c0c7c0dd46d50e68f3eb7b52d35a7a84a9915ced13d5496e930482215b3c82fb3120a6142afa6ee40617b29005233218e4191291e6aa5e99d192a1033c75865e61b7e6c0547fea5878800de55e03cd7afe9f882973451b5a2945031b38fc1ed470d6f04fe301531936921fc6f012b3581c6cd1bac22b8b9f04b8d7ed97edf5c2ea7eb7ba10e09c458ce4a12e8886cdd296446a7837bdad88deb899beaedcf7a23f2f27ed766e0aa5887feb237c9f2264db2cd4cd0e7de26ca433fddfec3760895dcf8bcc8c002e2cbb052632595b1a9b25b837acdb88f8ade8280a0bf78fa93293f6763e898bb3ebc796fd9700f23dbc390b8875640daed8eda6ff00808465d2b521a68c20ebb27c929138b58f3c4ba704474273f3751feb118047da9508a4abbbae4a358b195dd9a38118cd2f9968e4d7bf2aa57eaab7dc0f389e1baa5b9ecbdba07bd18ff435346e8ccbc92e09eaffbb41f14c7c94122ce0e1f3b4c0f0a94b4babde1b405a09623fac048386165662fa81ff8a40193078e023a0f59d47874f458b352690dedc8d8c3fa743c1877d7e481c931fdf5c1ae440b2182466d42daed6589bd78624da79b209bbe7cf4e7ff95982664a7d7138fc9556fdd60eb6b6e75b95367e91e48a3eb7858497a49cac1830cf64c9c0a7236fa47956613373b8b41991b27cd4d4c8b4661fd9da807b700641e2ae7b2c1ecf9408b5585d443bca00d7d5c309ee027c3991ee5b865ef4ece061e6b5def0634361112483a007e3ea9155989ad7ab68e0c72b5846875ccaea6c4b292cccd621f207bcb5ae51a44d3addb3b842a49649adf2b07defb19e9fcbcc7e72ed632782825393a495c3632d35a69f827cf0f844653a6e60d4124f1e35782d60103ec35ecdbd8ae295173635aa47fcabf690811f2953afcbed3946e0f3ee40183f5e9b1af84e176e208d992c57a665e8b493bbde3f5f9c6b4bba8e2b13221755e6c9e5dd6191aedb061fd31398f4e6a41e9aa3cc0797407445b6b3ffe811a81f01428066bf050f9a32937211c2877138a695a3917098a66d8ad272fb09dbd83cc2d36fe9de846381dc554b29a058aad81dbb802d62408396cd6522883c9e97c39f9cde23c2ea0b6562511042156dffe395b3b12d22f16d714fec9c5b9d7ae54b1ff5ba74189fce3db0ec191e5ba9b1834fa2f2e4347b21c74827d3c97f5f69e6422bbf8443e99250bb0f2075d5cdafdec79134b46abc04e4674e310e687ed58b37d1b92047f1e3a9987f90bc40e55c94dd6f34a5ab76fced865cb5f7217b594b51bf3d1e36a7a720d9ba0a999863cbd39a0a961e36af2ba8b896d278e4d3e48b57662b8679feb9d43fd7c871f9d32ad0328f233ab81d3df5520cffe8f00527cb1cbb67bbb589d69eaa49ad7dea4987ef477b4be5c1c63144038d6924c5020e9dd3cf40a2b2277de05937d3720cea30fca1efbb207f9007fe9baa611a5d2e6a51ec49129ac16029a6e49b157759be9b134ca6c3aa03b450502cc2266f9cf7ff190f5d04a51b185594e9160502f66568957b14d077fc64990d077a8c6ae8fec4101925bf6d72dbe70a791affde7f2bf8c4ccf532ae02296b2adb166a3acb42cb973e9104b1a79cecfca35d29bf61586999fedd76764f96fab87a2e371e2a9f4d59e0d2d289eb14f4ee1e31820fd67f307d27e2dad8e1a92b95f478e2cc01e15b76bd433a00738a00b66836d795d0a5072d8482bd647178c2dcc5f759ebc93a5907aaa499ca14fd4d6aad3faf7c07bd8ec9adf2e2a5b694cb275ac7dbccdf643029d35e401d94eeaba4f12f8988e7c0ac175ef24d7fa2b97d09a7db15ef34ffbd55bc7fc3fc15f24fecef1d2d87903fadaba57603837646bc88c9183a5ad7da34f6e9f2ee490d0a91df3df31fbf241a07b2d154ae68cd9987931431f388101cc9c45fe6abb20f4d1905c9c886db1b8566f87fc3363557e083b8108205278dc832583072d0d6f92ba69fd1e3906315cf0fbf544d8b85068792e0b414a489e7b90767e7457b31ee90b3b9ece7a6731c922f696e24f812359b4d471541fc586b4e53dc016262cf53b0c055b0782ba348931f200b189a5d6d67764e720677fc5d1705a8a2add465df5644e23f1a14c02670d50bb6d8c9255d49eacb8b9089673af88504c7920b7e4563bf73ba6625525d359f7c4820dc6efe94318c175cc0dade7948c2e4c1caebdb97ec7b8a9c5516d580af40ca1265ada1de3c1f44de126150fbebd8b2eea933d5f8e3308ae32ee6c208ac8f72a34a7ac3cbc60d78b3f615001b93a7080db1e5fd198546aabc66dfb879f36de6e262ae3c1f74102c84210873dffd222d9935141d3569c7146ffdab3c37d748db1cf9c5f50506da538154fe75206a795391d5ca5e1035e8586fc127594b63fc508f994e3ba428bff4fc600215d48a2f50e60f77143b6e061dcd2e9e30bfe03bb05480e979c0621e8aa2648ea902ffa2105a9952faa78519678a73be460f257972f3ffa8981d13c484fc38c7cd836a52ba926ae8e62c79507f290bb24d45966f74de350279f26bb9d3a9ab31480d115d9db887cdf1453b16b3c76b691a488766983cf23c61c35e47a4062ab72f2eba427142cc998152b2ccfee65cddf13e1aaf437c2e41fec863e023980cd5c851700c3717ab1d545b1a811da1fe0057b9f3890d3ec67cc31821a717f03de1b56b39f909f6cf3d283f9a266efcafdbe6e64d0a9489029cf3d7f8894c043a6fb35a4c1248654f272ab7625d476113709f42eaba06eb0050c1475214b19fa3ed0a66da549ce5b86bb261719b9951d9aaac4b8b34a2ce8dfcb847e480e85ef1f6ce7bdce7f3360ab580e33b942253076a7a366906f72a8b037d5b951659c9af42a10bfe379a6174f16daed9df5d8cb41cbc13ee64c066c0ce1f744496fa34606663fbf549c3fa6d167a1edc128b5ae2326329709111caa803d5558eb5ce89dc502d6015b83011047e2eb89e287d5132c8a6e6e7564c191112324c2bcf371b19ee3c3cb047d6b302bc011d49b9283f7c010ec9fcedd17d8ba505244190dfed7cb72e4fcf40ddc2105612c1bac1c9d579d91bf66ec885f2315e3fc967b1850fe4c1c6bc83469c33e6ac596cddccd4aaa082e52e05b66d1dc28e078113994cf4282d25f5ef6fca526ec14fed928a1060599c9258118ec497306b0eb3b699976f6298a2b986fe5ee70c01702f2da68f2ade789a9adbf82c358f39f73cbb750105dabbc34fa037692f75bbc655088447e111d5a1ee95905a144da5de0ca6d76c7c6a8e58b9ccdb580e3ce95cfe4fe2d5f561e6b8b4cf045c884347efbf114dc04ddcc08a8cc34dee7e469591a077870d50974aec23789888c67d1fa606db6e99d3ca828337aaede464118623514a32c439eb65b756ed3056908b8ade798dc1653b73dcee6c0e9da4fa1e52e959665d412b66a6d5813bb6a8b09dfd8996e2d719ed68c897821ada69ac859df33dc80b0ed74bc23593360572e049d9e3daca91bd279036a963b644f27a1afbb211ca75b42517681e1d26ae1c3b983886df15aca86a94084f31ae792b04470aca58dec461b20e5cc2caf8410f04fcf02415881485afafb7264695462ceeda5c0ed12eb3445551812ac25d5605321b2db844a1ff1fd1836d10b18f066e8faadaa4f5961bcc5b112a07af3b74425ed8cc983951839955910c19651d878f86cac3f199190cba1da0c8ae2be8b9e9e6f92e35efef7246464ca6889c70a271d8cc6fbf01e1e1ff491e026f19c614934ad6c25f6d8d4cccd596e6f9baca436fc9b957ac6e8c8cc538c10911b058b90a17a39ef6063c0dfa207a58324ee7f1bf5c9b5ff5220d4bb8a1ca628f3e47fb3c20b9b86f6e7981fc00905d5987e508123bff0f029ada3269c2f4b10eac55a693f93a892e6e71ee0fceff09b15c32cc6318046575998a81e1b539cb027373559053d429f61d0ae8d69c3c18dfd75fc7dfb8402639a1b6605d1bfab326ded02a0920dab9c51fc0f23de848c68a590a1eeff311ee511360a14b4a213050a4b264e1070525ea20460b3d87e4a6e100ecf91a41d6dd4a0e8ced62d1ec35de041dde83c7d661e1aa13fe5ab848de4bc98699747cb72c9c47b1babb1bde6b279c1d1e826451ff7c19b0c70fd7832938075fe6122c64c8308712746a355ea3d2b238d38b7a5b269de9822a394b5b548753d5506fc45cf650402b3308d89977e4a464abb0b7887d977b5d2df782ee655f53861d2abc7cdf3ee4e4343a772c1b9714ea6c5a11e8e0e733e001b606ab50da86ddfc16b438c59bd9e322fad20c373d435fc9d50be9bb63902175f6daacb4b9eb1be08fbea80e4d352cff804ef53faa3a5cb0214ac44dff2fe5d493fdb58ec7e55078d9099e1864670b67635e8d9db83c667a3a6d9f97e4b6f7f8b4e295450c337586a9d5ff356a9e090d3acb16f6a0efb4ea6ec4a1cebce777d6a9c52fddd0353376e5fd4b50e71cc5c11d7b9483d69b6f8222ede5063cff63041b10ffc7c5419649b43174f8be3b0768284a2fbb1e9e09aa421f19d85de38defcea2deb1ab12e12a918ab90519813a84ea0218064c97c64aec6acc3d6d593619e1b3576297a5473821195080589f59bf036d25ab9ea7cef331002cf3d6f2af4bb77b2711c01983fc4976955f1b1673bb9ccaf8657adff371d5fa11e876d5a8ffed4827fee2416fb42ee30df8342e39e4c043629aad25f3bc8cc76f0e4549783a538b6e19cfee59083a34daacd5d477320955e036172cd7d8445751568b3b3ed00b6e617a69dfc7a42d4ceb4076b9eeb0292f7deeefe60191673ba988bf9da53f59c1cc492d41b17ec3dd83109f60c9b90ff0bed095adaa5377755feaae2bdd97ff8991d69151ef925210a02d21f8cdcbeba58272df97d3c14763a3d836db3292a5d27e9385e310343f412fb049f51c055af074c1a1ac217ccf02cbfbd64d0669907bc879135d3ccd1e5d4eb645007d16f5e2bf85107bed2f5efaa805e77373a014b9b2d07b79f690e2fc9cd5f573465fdb4b4ba9b6c8d1818fe22e253e12354ab4f41bdb6af45f16c368b3f80ce799b4132ddb683bb19a830f2fedaeba370877521b912b8ca31421182b537fb078592545e3f92d79ffbec2f8a4d065c4e9efc520e36c5b0cdc258597a7ada265ed9e7a19017f82b8466127ad514703d5699d7c6540a8644e5183d52fca27ffa93d30a680667f055265061686f97210a00c3116a22554d9b01d2f93ebcdc4196c5887b3c49f3a6f23b46efc689162aa4d7fe376ee20176e3424546157882e3bce8629f85e55b03e026a41f56c7da48ceb8c63212dcf2c3cd750f8f00fa477053dd9c6fff70c0a0c2b91a3d4be68d6cb167873c2c2171100fa002d0dfea73c6e30d00e839e1b048800cbc7dce3a2ff359b9c7b0a5cc3b02e19cca42c474911d1ca085c618326212c460fd177df92cf5354cdc6cfc90d0c781c9d83d76b5c3b34f35bdde515c61ac7d1661abe6516ced9bd02911c196c743afc168bfef002506f33a1bfef29b3e2460b0ba2311594abf41e137901bab5c7c312cb008def3db5b22cb9020d906ebb462e83e6af3c3df72c56b161f43be7f6850978b5d2656d0f6191d0f7f3b73c2c13fd4d1abfc7111ff27a9d7c807b206665a653a755dcd29f0bb85d8d31fae7b29f71945b88ac737204aa6209d4878dabd1ec9fb684e5f02a20f08c10ae10179894b34780273d86689765c12b07c81399c73d29ef577c4f682be75c075af0c33df44c78c158062a1b5d9590de82c7b69ccb18a57b58c8a7e83961f78880fe7b732ad04a1e7ec97803d01fa11e4775e725835216b8ff206365009168e0f579a789a9420c24ee9b91add632ebf1b8ecebce6e22785fb45198457aef9ffd234e7def5cdd508011b833245d8d631b836c7ad509bdfc7ded2bd4514bf5bcf94245c65316ffa11f51b62f9691baa468b499b9976ca94e9b81e7069ea9aaea967fcbb2bc4542445acf583ee404cae00f93543a8c6dc0bf18f5d5da4d541c66d6b62b4415c9d5d9becaaaea4c66f41169d7bfb8445c3fd6289fb66ab45d9e8b01753e4215c2de9d7b3afeb78b4eeb1e6f43133f32873a4f26717f599c62e6fa55e9f3217e1291765ba6c02848513675a5c81caa23d655707350399707f2ef5041d687486877e2947b0bfc250498f996f3a28a1dd621638a935c67fd5236a1ae07da76356075b48d77a761f214af69b7550f774e85f89eea6ea9ab480b198d27533a7e5ef0fb286381ed818ccbb41b338bd56103138c17506446e33fe34134674a888a19080bcf6b8a91d777e7f4a7fa06bbcc8a3ec48f8126064cbafdc59424597bde6e93672ce9072f154e88753f38252384dc249acbc992654d138d48c3a48c78ee34533149cb124f579a19080dead21ebc455fbfc2128d148a2bdbdf2d71b0a972badbea68a97b53e85ceaa580469b68c3dd69f4fac5cf9fef5a021761a59f5478ec6946eb64e11d4e7509848c5f2f7e269e1fe3d219d166901a9d82409623f623d6bd078911e6e34af0b0e2057b98a4eb05ad764b4c36c3069b647b0f225188043297f12588d8fcf1f07bd938d521f3e890ef3e443954d2e04773ff03dfd508c4a2e4d5095ade5891f7d71bb327400bb2df34ee3a41237f06dbe755dcafea845b254b089b7e7613b7018ae94ef6ee9dc9560300b00f7c83a696ed997e0701dc0f64c56d8b4b10e31baf0e87dc4ed1c50c7d9f0073ef5c382121975deb237b0e4661d5f9cbfe6f3ac660df7ba11fc29d97341230984864574e2c62f996d63b0ec2a721af80ab195604a7942f42f94cbcbe7937647c05b3b6c808a7ed3d73f33e99a7793549f3768f81f311eb79838d5914880637946c499ff64cc04b98387163ee53834da3e82e68ed276eaf29e592d29237b435d7c9b38724c78341d8f9c962205bd2ef9594597339853c37bb7896ca34a24e934968f5a4179763af6f3e83d21095c27e613882e6ddc52228951c2d6a5061a334263d3ca9ac61ae7de68c8b49ba906d116575627b3fabf33383f3b0aea91935b512a8d2ddf8a73cd93d19dc3442f7ac9c6f9f0a4f3c8f09e08ae96edbee85cf82f969497284aa287763ff6aaa2a99a0873f22d270df266285eaf631d84e70db82bb251c2bf38a8e90f82dbcf93756da3629cfaa15620d2e30251395730b996ea9cf6ce38a28d50ef8747b89cc4136e78190c32d416f83ca3a045ec26ce957bcc5a6550ab04a5225d2ccd6f613a4f3798e473394e0ae2eeef471da168f9d0595d43b6012fccf2855ff01f8befcdb3bae251981475e2a5cc20ed0dbd0864389043b7938d8f14c581eeebec9da9a854805eb454e4f2c4d44111e84bf7c855c224e01de7af00abd6c25fd5e144bfcbe2a844a42f0172c703fd9276f20cb8258c413f5c35156e94b1d05b8d9d5f598913ac997cff233479d608f4367cd977c128e302620b196085e19c5e9430688c0a570d70db9e4e135ad90bdaadcbd5632c3f92bea17a35ec69f6d506922d0a01cade809f24b166be5f2cb942c3c33f28fb78427c8da53570de56a8bad0495b6518f43ad0ff76b48f70fdbbb043706c60d7c0b04b1f5c7de7b8e2d693bd8d57e3989e6337d6b2b72fead2a76b5ebe0661ffd0dace55c8f7817c6555186a15830bc29ae846599d04531da6b74028c53c69c3116aafb02a7fc4e6d8ceff0d61d3dc61a027e0fae91a46cecd65611a9e1d140ac82bcab4a6cfe26377c129823542d514f92a4e72db68a6b7b826d48fcda909cd93f0a66b1f5733979e1af3c50cac40d06672693a68ec9b0378d06a473b589d993e6d84e3237495d9817c4d7916dc4d5c5a82cc136f2423d2197959e6ba113e11daf6d8abebf562b2ac975564c8e7cbd379b3ed7ffb437bbbd3d5577624e5596a2e34aa5a63ef0d625542a9f0fe3bd42677fc47459ad99845fd64aee1fcf59dee781e8708492fdc5b7f3769acadfd0f9836b079f1bd5c916cdaecaf78ae67497a7aeb40d358ef49c4eda7a5ca1fa0b940456a6551335350233619e76f5147a0ffd5bab85c898c7df7e506f09ec8d2f58a9fa3eef9a5008bcccc41af5e04b66904bf203947585ade03c2bcef25a428a1b6c7a9e0c034d2d3c186a306c1d4d5ca22f8e7dbbf26e3502a53a9227b271b3a582cf2eb4116f8e2cf82962779373bbe8721a56defa527d36414a06564c14a21d6de036b5b4ddfa5b6f08add4a11e5dd7457f5198a53af33db2c487cc4ea1e04ed9971cdb26d7d6baabbd6995b4ffd33bf2082ec43067c666d420a9327c727e82d189e1c2b70a08fd5049e03b90fe44c52ad24dc568a328b2e1cf6a03a55e3f778ba440b7497b45bd36d601dd35947d3aa64c2a6fe4d0a10e314caa24f2fc8e3877e00667964b26f3433f521ff66499558c4bc3dfc1d567d875d86e3dedbb76465454b88f09a26eafd1600eaf47af7ef848e0ee417f2b75dca0f36eafead3a2ff269afaecf5586b2271b29024e4c93446548706896c951678d10d82ff035277161a7259cd02b41bd1f0ca1990efd7049ca081e17c897858267c29173954197c5ba4fd90df46343dd44dbbc1717a36bbe949618187c40168b2388955ef26c4c6559d2cce5fd39daba6dc9b176b260324b39d7fbef89a4bbb04017672cb342e63b6d9218caf2322cd46061bc780b0df013438dc4c248be7b2c6f9a6737a6ec8b747a0dbe339f81b7ff5c423c6cb16c0fdfcf661fc914ce5a9819a4d39c3c74eb02d751498d127b88c590ba8e7a1afa1d7d0f5c1b22d1963497d7f09ca60b93b0a731c5ba0e1f1b1a08a131b26c1d3e0f82c85d59cc63aad0a2f8f9c94c4e13d5f1063b7379dd9812e22863fc6776b86245d553131b32c683c6fe5745eb63c06cc82b5b1cb4270b4e5232696d644558ee8ca26b946cac3ff0c421f5463c4ce7ce1a4758c78b1d1de94bbe9669058f844f3cb1b6fc40c380b7a7ca0fc1c22f673f6f55f6bb8ca0d23d044322e40cbcb444e119196a116b942e00190d7b13d651792a26e1b1fad95c04e527a044d8179971fb0288e0701ec36730601bc4d6301cbd94dd526e6db2fe095d494d913551d34f6c2a988b11583f23eca6a4e7efce5e44d3710a007c5b0130e67829a866ff3e4e92635c33421ae278c12691cdf267263d472e92132ec7b8a4fbf9e1905717ca60301294fe586bf74ce1cd5970f354d4ae0534d619a02c988867058c31e477dd8269b229dc49d21ae28fbfea12c6148fea65f70a3b6487567143482ff0885e55eec54f012e58de231a9ed25560faca4269f6bde34faf16237d4364200b01f109096e0c178f6c9e22380c1155df36ba31398223195b4edce9e7676c2bb224b7e74a859dedce18296c357f3a9d631dcf145d33993f3db620a854fd698e2ad01e989ed5cd4c7cbd18b7fb814100678c18ccbe48e1ed9c3ceed03ce8d8c387bcf4b9fec9fa4f9995074816a4cb5f74e4479f974894333dae94c137942a1dc3f9eea9510d94c452a6172eac67b46f0ef4310e70129d5f3c0426460c84432d3c2924dbc500a1d8d4b16f8fd5988948bc4f503119b6bb16f5eefc2dbe6bfc02ecae93bf30a33c199755b6059e180fca252744aa417f03ba7b4a2ff009f2a233d5ce9a40327112c1b96d9b0a465ebacd691b4d2488375c1df2551f6000b374b57a137dc71e3ce3564eb04e7495f136291836d3642d3b028e2bb4ef71b4e1288a6769e6d5f1f3079ca534040251e9e28079e3dfebc79e04295bd1070f2df3663911135f2ecbe6e6cafc4376f8240950ea0ebe9f249b4ec681c64692fa0c114c1b9ff7d88cb8067f25246262ce9672c75e730ce62574c28098b63afec5a2aee87260d627efcd5ce2d3f8f509e9cffcc1fd080ea9022e9bbc2021887ed5527fc158fb97836dceeeb612cc5ab068532f6d1f1c9683aa3f41dc17c4ae8b748d394f759e4d09a3e702b4b1116d1f05f18b2e376600325af56591abad295ffac2057e8bbf6d38a641db29e2efd525fa864c1a861a3d179c371b65706acf78fe073530d33085749165b978558a72110465f97b9de68dbad8011033e8534c1b9d5bdfb82397e2869bbc3796ab22353a6c624552b190904477ea61a958b99ccfcbc1555fee8ab91ac0a9cd8c3168c77925f96ccfba1d5f048e5e5ecdf1dca9debda3e8e208eed93ff8ffa0f9ef9006aaf8f7edda6aa9e0eb2273807544ffd1d758285ff247405feb02d79d8e09162b2fc19dcd8eec59e10ffc6df2cd08f3300fb976a0b3e9fcaa75bd002c90692d0f6cb92fcbb877192b2c0068dcd534f3f31bc6147c3dd04a94190ca1bf59c25a904cd75ccd5cb3ffa31e27abd3e162b5e057d7d3321e8c89f67852aaf0d6dbb179bb38009131e8946a68faadd01788f27c6268fd5dd73685af157c40bb0a32a4bd29a0142020035903b0a5ce2bf4fadff0a0ddb1165a1d5badd99444098ae373070d01ebdfc86738ee40972f43c8c952d4b758abcb933a59e38ff18aab00f0a5d5601cf615fd92d86587b0579635618793129dd607dc8162dc69e87d77a9c60d601e2dbd9a458de69d96067856b482c7fd6104748886f9a12879192f54d6244c85c9a4c7125a2dd190a43279a4108b68dd1783b26557a59613394719a06f44dbdce5f7936daa2a99508b3232f8e808dc2debbcf6bc0741c2e604bf147f6b5a02d47d7aeb9adaffa0d948d96a7631a3cca157294040c2ca847c9a51404e59654a6d9d4c255f3f9da6997ecf8b4db24f81b01c485e4aa9ddee0da0dbe0b1da4b4ed3d5562aef63eb5038f4231e8b87d9004fbce5e79b50dc94f51d5e796f244b0071bd564c85861dfbb1126c7c3e9fb7afceff6f26b142ebac98ffa69d8c81b5beaa6bfb41701ad4a780687457273e3362186f5a67b578bb01c7948941f9ce00d2a4fe11da35460f46622881f0a07bde1ca0db926574e62484a911a78662fc242ebd17c2374365f1b146a71e2bf5c35afdfad805bd4eef9085c60fc74aa9934a917f5bdaa94c84511b13e081d8c4546f05f63b339a22eb34e5b908c0f8dd2ac959e4f22c6fefe71dbc33f078debcc36fc269a0d2174ea81cbafedeef5d91f075ad9b0bfcf95f848e08689beb1b6277f20acce687fc6ce604448f554486c02642ccff567684ef8627c3d0c6eb2c582bd74caeb1a7ca37da052d2f94d3e09fa329a80a884308fccb8b9e0afb557029709d25ece70b54f6ac0d66eba9042f104f711c54db20eb6d671f570be801f140280b3f4b34f8434cf92a28ba02480096a8355eaf8b8df23e1f7a6e8ae08214790d23aab2860e51c251a7e42cf45fbc42404980775a8750a6efa9f2f95878315c286b32ed91530953baf12dd537397e1c3c6324fc0c57db6d8545fb766b6e6ff65a83631f4b436a6e2b59e35467534138d79db3c8ec6cc2a4c34ec6a4574e92e2d60b3bb771f5b65b1297291185b923e8dd44b8b1464d525c41e59e18fe5e930da5dbc0a001523e9dcf29fa26758abe1530f432adeb8c995bc8c8f7d766d529872187fff7be5503fe367f538f7e11d71e4706057cb0dd00bfd8ab636d39f5a4977a361746b066793d11ef5358cd6eea50aa52ca13ee2a28492356554446c1b93d34cc6494a1b8c6e19c85c977f1cf556e773cbc8904c69ac21097d14efe3b2629a75bf745a0c13e95079e000360381d7ee01078f8d0a22c2639087d73f8374c417eefcdb482be0698f84cdb86f1d99285abb5c27b3aa41280ed9fafe56db825c938a097055c47163b069b7bd261fd60b1b1a7a3e6aaf80756ae137854bce1343caafaef810af4050e3f8f0ac6ce7ab8e15f4971498d861227b40ab9d0e77951127cb6510eac105e65a309669e3fc2a5833881a8b6d368b8116920ca6515f975b2a7bc39fe23625723a66dbfc51974ce1f50a8a9f6747bb8f7ebb646a30e2aeefefd7d349e98fa3f39b21c7568ab89190dd2c8b403e6f797868e99f4c1c25a890fa199cf48f61df62ba3c0b0eca40d04447c2cbf38a9219764576feca0c21cb2e08ad3a9c06b362b02496694f29764a4651e3bfc16bb02df6181fd6d93c5958df8055b1bd7ebd86067e96700b27e259ea71fa933672438faf5fc390adb256084453061301cadd9d17abd273c623482887cf8f53e456cceea81e92d0db55ffbd6c380ffef71ac70b9b56f9a0bd7fa3f897eb63a4855202e6fc71fa8511597cc1fca3c6e29e2276eaa90a2a1fba5f33f26587c48a4fb511848c6aabfe88312afe436ff8a4103217fe8136936eff5a7978f25ff1662f114b391b846263f16b9149a1b3aafba8de281f54ace6337928439e40e0883e9f803a68137e84aaa279cb6b9ebafd6708174eac4a74d11c0f9582d33aaf65c43c7ba461caa364c87486dd5cea8f715c45e263747be569d1bead8583b0a39c7e46f5bd5b2ff0abb55d6010a9afefe602b850d753f65ce4777551dd82b3dd8e417c20bc93c60f32c78d2d3a5aec481a1e9bd7ed494358e6cc2c922e6e664ecd75b10722cdeecb39e84d881a32be5971ddf56964d9295e38d920e47558980231056cb3f0a2de3c2a64e884d27723a252eb1f6b254c6f90c2f8e26d19738753ee92e33a2e90776c97715539d8ffb8f6845c280f79e74c9c07e68f0675879e293997323d05a0f7728b37f5e7b15b1947045b4f4cbf6cb60a5d1b75a97a290d48b70d7a68393147c720b4f1b15fd66379f266f325a2052ffdaec307d4f9bb17525656e91771b0f84ecb6f5403e565d982deee5f012ce370d6e2011f164c9f97471f43ad9ee886b3f11b2771aeb4ce874a7f4130327a58606e631c1710eee7df8165029c62d4dc50710d24174b809a2b46c7cec3b10525b87bb16fb256a6de995cedcd15bfd905d434ca7e0056122c8892f9836df08ad9d68d97efcf0f74672fbe4009d902b21e168db2fc1e5499aa66878618f928eeee898222f90d2199e23a9bd4222ff086b4f18085a6570f67232f4237f0c2fe5f39561e92bf8ab9ad2c0584cb7dcbfe98814c6d256b60f92cc35e0dffb38a99493191478b302b72429c3789bc08e02a85ea8456abc5e7a6c96afb3af6c6682e80129b08a08d49bc803346d491cefcf21c64419b978565675cf48486d678cdb6d4556efd10c2f597aaa651f07427915b6cb84ccd8930aa5c45601de4249304f79bb164771ab462292a3ccc31a127bbeccfafec795c2ca02124c769c304d0f2da1ac65de831362ec4c9c7ba3dcd3b9264cba2cfcf5c8668e3f00646588f2848f42f1742893c2dda549e103253b8448a423b9307aacac2541cb7545ee74b3e707f9a51dd2235f53f70c67bc463974693fc26a4e91a7b7809a5e7133316e0b564c2bf002f42663f2fe7e62b13a6a3795f09e932450834a4cc6401a6567c7cdad667ed29807859653ad6b71beda79e200e6b1e5fc58137f38cfe12af4e921cca7615e1181f19e59514a03539539a3993d63f7acc2d0dd9ad30253b1c687f5cc51567927f08fc0bfae2f5a30b3ab3a6fcbc6f28b72d09d517867cb5fc0190ed26009434a0ca0b07997f6e77486412392b92227481529c2d7d107236d9d600caf15fd737e78792690422c093747d259ccad9e9fa6977aecc4dfe25b051982e3efadf984bc7d1351ee41217d3044656851ed8a6758119674c6a382144a41cd590f9b93352584034fbc488ee946a6fdf2dc40a510f74ce4e421e39613e31ac88bfdf9230a46cea8b689729855a4ec8a2e21ce912f11a3117a07a674c41ef6ea68f604fdc86da8850e485536ad5fa306648540f3de467a90aab45e06b5a217d835a87961fd107eda5515681640b516967234dbde3976fe9b9966e28b16ac965007aa2deb753e87f379d688ee44cf04dd4a7b4ea2e2f7e044a31c9e8440e092a14c424b9ac623003ee1a1aa8b4f1e908c71776af27eeb33bad52ab1412bad23c7437df0bbc6a11c26e5f9f60fdf41f49f821509a33694b270739cd7e8f639a30c7f932a340ff129f351d7eb8cd480bfa6a95fc9f937c5080374664e2462e7368468a0877c82569053e683408ef1d192f2291c7686325eeba5016a1b575760b749b9a8b8d5c1e7a60ed9449b395e74aa7cd6bb312dddd713d3fa4663f05f3a5a2703f1fdbfb35f8b5e53d5615e2918b1dd9c98c1b7", + "0x4e7a3e46b68dc1b093e7eac2de62df5e0d90c714236243925dd6e7a34a2731e37b9e16f4fcc866cb2fce2b453b1281172da54e9c1dcb11b1ddf9a8f82dcdb62a1b033727213ad9197184ae16c6ef192e9641b6714c5290e23e5fb3705f4e0e16791a3a74ab1616d835d5be87c22c68829e2dddf879cb5905767f765635598a2094192ecec43242102a6f3ebfb7731cdc8eeb82f3506fb9dc8fa0518889e5479b9d1aff2abbb1d9c4530b863fef4c4e452182213de113556626e4d0f6376134a67d0f131d8146f5018ae3d4eefa9268040917460b20f5b548eda50d6fa1ecfc0d4c8481082d04c7ecf878c8082af77f066a597215650df281292a4cb42ca7f8bcdb31913d79beb0ea9faa96d3189645f75dbcd09eedfdf763349c3075c10b605d2b60650d42fa9503d01b04d11d9c07f86f81459b57873f5afc5c251a4c5d6383f41805e10b6e4bb5b5ea5068daf971e31f93a6102792e0ea82a1ccc34123f2351f2a26767b124688c8b695b3b1280150632f246446c752e35d61971112b645f54cf865a8dac2ebd75af74a3049ff580f24622c7b80b857a73495db71badb806e4d21da98986d276b0da2f48f0d96f1bcbd4f53760499d12647c503ce3574f6e3a9ee2299c7d422ac5a212ccbae3bcc0a804f0a54e8858815e7e7b15e0536e9f11a9869fa9cde47880d9b82e69d7922df31d62ff8a35e209efa8fef54af7ad6bf0f56f4c3f275eb43c386f58d922841028930c2ec912dc1ef786bc5ce3c1b9ede2b443a60c6fa43d77394efc808950110b40d3faf732034b4f011d43eb95c190cc413a182bc428dbce2e20f8ebeb3929cd3d97985ec1077b20423c807b7ecf2d4658e4ee399297c712d8631eb376684007be8f2a3059d08a0e8b4c38dcbedd1954ce8b7f1c6b16350435e6dcb3bcf460c356ff9e6a9cf6e69e71217690f142aadede2d849d4b4adcf693d102254b78ff7fc4f227f2a59ba08decbe2b69fd142c76dbf3c8bf22389a8b45ebf665201583dc2b3ddb8ba570857bf107dbd1d93470e2701432c79d8efdf922c45dcc72e63b9eb743576f3af44241063b43b2e0c73b02b004a0761f4652f4257c0108cf48248cf59fe0850f5ae46699349c3fb93a79eba4ba9aac9d214d5573b2f633adf08613c1f06dbb1e2e341fa0f3b70b191069ecbdca5e7738823653998911fb2071895f35208b9db626d9b0283bb2701f958c78a18cab745f46ed0a3961af096d7c8b427fe73a4f6281bf159c1ed4aa1d65a57d3a24b53c95f0377261f2df7cddd505201204cc70dd9a56be708c072c8ec3b43bb00693eadaff9c6a5801ce303b3a0be1ef8ac8491c05e362a8f805bb65fe75c080be92644249a9ad766ebb126ee29310f21c0a7d71eee3ab55f05a02a72e4f2b43026a604aae642c92083a8ea28bfb1d77a296295fd617eab8a8145ea51e2bf6e894f5f06baeeed59371d364614c08771e5362269990f2348a361623ff440ae18b8c97c89ca8ee2bc53d919f59c036648cb5c48525a0941588ec95b7602296c4a9dd942704f7dddf875b925f71f3247bd7bc96a355c2b7dbea08d4e60d6040dced90249bf4ac7b56b7b7e670daf81f2a555192559870085ef0dc139d2866cfd2221c4ee216d1e5142f51e554065066dc8c17569eb38025c74a6336a2604d75ef95b9bcb65c69ada034fd2d75acb083063fda8e77b7bf4b46ce67877b944a278ba9a7b2dfd05d2200445eab56b4c14d9a7b4f0657dcf6068075452dc6b81444cffd71e347d4b66faf1aaf4e846baaf2c386d99d6ca8371770c2e97d52282b882188bddba22876e924a82dfe201e2f1b0aec0ac8c1c9eaff0546af3bb47fa76d9860af60d496a5a88e26019a2793064d917673c319553657a4c04187e47f58eed80be6d5bf3e733e16127e8b9cb66e5b9731114023911a73c779b363a1353afc37123f6ea474560e2c3077021dc5e7e7a3714dc716f144563ea61e236a05433b4779c7f6b10ba4210d7db24b1d3df5a52cbe1f67884932776cf5ab0a468388472e61564103ba162b5c2cb9fb3998258a40c55a3c52876d754e2e830a3e8e661bfc37753cb5b39f788794413d460a6ddf3cacb2d81ee9d35b8f7ac1cfd20afe4f54ae86bab25f5fa454a3ed7011975eacc4b113a8fd0bea2bb72b4cef016134a0b69de274df45b284654d3c795fcf79566c7187003aac71915cdf7652353a4dec942040c52467a827e0a267023043c69bbe9871509badafe511629288e64f09607ade93e0a3ce24a8db3973be570864a0f54115e9f27d6a4a46ed2ffce5a7d2959b38674d51e3c87e3ed4e27a04499ea5e1c9f7c5c776ccb8c8bc42fc64ad6bb4a148ed743d5667876260eae30c607e600494dbfe016cd97eb37d595d4cea77477c28fdaaa7028a5cf225ae8af019b0cd5583440c2d6dcc9e1ceed165f83ec84f164eb1ab5a06e5ac478f01a4545c680bab903f5806afe2f2dc4690e7589297a4cd492bf6f3b1fc397158e2d45a52ba1a9526c2782e96a9b981dc5da9806bbeb43a19cfd7abc78f9ccb705c4367730eebafa5aa029521ad777f39ae1b2a330d5688ea6ac4ec102b47872a6f3aed8a15d98ff0210e6023c6317f4f3a4280dba2f78110815f78c0e70742ff2cebf2669ce52a1b87c6d3f3ff77de2e4c3ea75a39cfdd5d4614983c73b6f28a441df84508e59949bc275b16b0cdc117d000e11e232ad38af6052b1d3817a6e07f7c159d7235e82116eece309f38beb04a52c99b0c16fce6a79ad4284785b639d44a3d116ce4287107b10c71b34936f8ce25eca3b1a75dc7e07850b96169c401453d85ab66cceb339c3d72fa5412caec90212e75e32c0de487f38ff81af10908dff5929f0c1c48cc324b95584b7fd4e47876733703289011f0908bb5d9949b3342f26b3a5402e8934ac4b54daae4a07e38f0e781dc081a9327cb0fb4b7e325c258ff63484d80e98ed4a2aac03e695289c22bb83581880ed42e395227d3bf314a2facf2b3972879984e432c220bfe712b22e78a553ca55161ff5f5b7bf6f00b59a015bdcb60d62e0eebc865d2e5725bc126512338e259f24f92a9fe2a01b2cef8249cbcd88b454b77b91a92aae37ad2e1940c307f1ac2849885ed4f31cf570c678c2584938b2dbd99ee6bb3adf64bc069cd414fefa20206bfb1958dcdf502512bbeaf2e0c0c467f98a54147f86caf4f64b46b078fdf2a6a6bb0316b215c33cfd6f9ae3e51437c1399cdc6a524749bc4362f969db683384c8fe0f842fcbd94189bb118ceeb117edb3929160f08be611489fdb6710294da4d42962a033de92bb082643445845fd95f49c1c6df8fde0e4f1985eaf051220cd800308643f7e6fc4a25294a9c1600bf67b32e922ee8eabef4159fdc1295c4c6db6b6f89df83c47b3d2058f578c3e29843fbe014abc101197cc4c6730f230c1b516a5016daaae3cd8e97b3c1a60969c322619e7882c5e02543d81aa355a47e03c73098bfac29a757a8a0f2527a9817ae18fd4ec316f13d1bcd233f77c5e90c842526a5eab53bc78752c302ecf1670a0c3c954e45299d6d858dbafd62d7ef3994e6edcd8b69212530f9ca8d068192c27d999bb20542230d9073e7def3b411bc444371533f85ac1e6e2783561e76aef814eb8a21d4b66f381ecf6deb0c0ae51b2464d4dc9d8a9810504b46b65b18587bb8353a652a42637f4778fa17fd6d36c66a40af38c6521a238d519ef2ecd278a83bb8abffdee05de396aac393e0641cbd4e8f62c0afd88975861c1f83668d599fdf5f16eee640daff55982324ad98e601392502cab86481d566d9d2df41255ba844711b79b3f27fecd9b5aec488bd2d1ad568c4f23cff0e5d6e0efc424c832b5d40fe8e60e0ba6e4533012ab5d282aa2b0f1cf142c79b1db8796d0fec6fb3c8e4bd265346deebd0969b59df4a29d396f3d4f75dcfdece1f0461fabea397b06083514ed262a5104fb65367e3f0163a23dba9b8c7b2ed47c808685c07d40dd67385292d9d12c5bf714831c51f1bc6e8fd5ed27569edffa9e3e8ca8a2f9e09df92c0f53f6de718d77fb456f43ad55142d2f9b4ccbfa66e20ab96d59b9a25ac79d9f18970369f41747a2f50a95f290492def6d781553daeca667ecfdc1c6ab36f5ba436e36a6e7a090e556711d0bca8d45f3495b124829ccfd4c931f4913621fe9eef9c2b8628be85db2335fc449e158adee4fb2d5fbaecabb26b8f7353caf6f23d59a02244b251420bf6e5f09996488a316299024846596352e42bb3df2fb1a922586250c07e9712bd4a52a7c59cbbae7de6b1dfc2c2573df6858236c29731eebbabfbd7423d93638a4a4c04490dfe93fc62bb5098b991bd3885972a1af3f4823a75fdf55cdea0ee2342acf9a65aedef53206f22f5ed623515dbffe11137667f657402a1b5cf65629d7c2274cf3994a545f3eb80444b66339d3cf1fc3d8e48f64cb9cf828ac3e7ff2afb8bc3b63666a2e56ba89533a6dca93853d321303458a2ed490ba4f49996485d05cdbdd5d5c1959fff2789af1f8ff07de194d2fe8845e5d6eadd2596981650ddf2a20bbc8da232d3c29e08cef586465c5ba299d582723bc2313dc83b69f971c4f89eff4d4f1790814729a9181b84f1fe475b3b315f1e15980c41efee990c9242a2814b95de19bcaf06bdc417ff4f1ca7253ae1e985e6f0897221b6e36f5ebfe674082cf96943b59ebaef2eddc26d3a19a1ae65c269c87e095c5816c82121467d73525100b75971e284a1c160e22c202665961413bfa60bc6a23a1047393897e965d0beaea2e848743e06ff33706f1ee404a26763c1829bb77b64e38462d38481beb39deaa407483ce343af0335a1b8d09b939f5803f8fc05796957b7d366d2dcc45f102f26f0d09db3c8d2a6252d4a8b049a28fa7a893f2b2b400365878007828493080d87d05919804c7f34b2f872d6ac264663da5503d23302b461ec5e6da8031d31576b4109900fcaf5416de46af6d3ba073b4e757d0286f5d7c3a1db4e73f37c192c027a621937c7086c44445e446562b01aa638b9d2ef5611c256dc297c21a3a5fbac33e2f239a05784ae4ad25b6de55307d800edd9e23695e1e2e89c7c0227bf3f0817d4cb3900d4d6fbaaaf12077bc73359809890759c7f1b87331b6454fa15d4b6060066261bcdb7f8d8d6a92326e12b9fc7ee24e2095733430998838c3e4be28f3326c6670892cd10b73d64b3efea953fd5de9f761bdfaa7b9c7c674a607ccceac7c951c36af001369381fe5fc7da78ca655e776c9d18efcd94cdc7202195128348e192255e64a72634754fd34c6d04d36a6e795d011acb7f3229a805b7aaad364a29682a7ddaf8bda8f267b35e8bc597e5537e9226dc5950574b489086d4981d2c02cf414d10a2e62016c5d111a5512afb7eb534beebcf4961042708b4a34a2e9b002244449ebec7afa9f1b55f35d8f44335a9cdde66c0ed77e41f56bf183660756bf12797e13835a6e5e96d759e60410849f108e6a200379470f3157dee50b23be11813211f9046ef5ec978810d8799786193be92219b4168df39b85df1c7ce2052a6c58cb48e3ff97ade45e746ece45c2eba69d490c6e240a93a6a94e7c3b34f63d9a0de55fbdabe5addbc795b912257e7db489a3a163bf487be2e84370a7c8e8063776d8cf038ad719a73a871c2d1d29f97dffaaf5f7e0469dbaa142f68404123f800528e16a3d0ec3fcd06bced0f043cfcbf0b319d9c0c0ccbbff761edf46c82c82249b0e2d4c38a26e078b5bc472c83119f5b890ea6f0a3f6da0b98e359cc110e4435d841d6fd0504b07712378ad3e97a85bacd5fff5b815b9ca3401fb388ab5c4aa1ba88ac0ee8a0e1ceddaecf64d3da8bb9cd3667c5acbe4fab4c36355a7e9a694b68ef0f49ab461369206ea2a9da066b4b86b424f24c719c564378444f3fb6d705a837b07e952ac9e37858485420597cf41f1b4bfccd17d50f251bfe0c0426a52de845a042d903439da04f5d7d8f2a5b7caafda30be94dbece21d85a73d9675eb14c4e1dabdbbcffd2888be118db31d34b16194d96f22db842736611e5bd51f97552a7d6112c62285f9e924581cd61a9ea0b82105f86dcaeeda4f595b4160eb52e3d072f57ec672cddb52f325c8afd0be0dd78bdcdacff55d71ae9bcaed9b99b0ff8575607d76059906c3922dbbd51d4a09d9df02b083907686ac7d8b2a708715684c07ee33b41108e08f70f736a330677a49398e78292dc6e536cafe7bcd19d9b3dbabdae302405078deb47627b83bf9cea89c276646c6a25f4f6060fb213a148a1deb860206bbb3662c490e67773a9a73eaa15b63c156b27a8c218656e3e233eeb12318040ad0199bc82ec01288c579f1f9ee65e468029d1896301e560bbca0f2682d71497d1febe0562581cb55f791643182016769ceabb2ac7f065d97c70df9cacbac36705d13024ea1eaa68e60e418e2cc078fd9e955e91eaf974c081e404892f0833219a24ab37a12c5dea60cb181d29de8fc3186febfd33bfd1ae2ba61272ece4932534a08b57c7a24045396d969b8db44d2cb3f6504c4fdf4312f5931df40ba67811c68c1de46531198124ce230c20f365869168b0f7ef68f5dfd5fa1f91fe082a617c3541ca0c5f770a064432410c00c62aff50d44a46fceabdbdeb7d857c3b5a30869c6bfa52f57418243fc88369a8fd6a4cd3c6c6b69311f609ac145259287525aceaceb46fb6be97ecd9ab5be6d0541353b66601d599b7fa5282aeafb478b479c7ef144c5c4cdfa20cd28b1a4f6936ab2c0232c97371ae6c51d8bbb02a0d07cff5cc78c3cd13bfa3667b127d877bdc34f8ea33fcadf74d96448c44493d790fdda74f83d14d51179549f5029c02507d5a5da32183dbd95f225fe2e5ebd40c1f0275aedca8e0a1f1551ecfe14b36012052ecb8a3189ca2c0933783e57c3a475ab031a10a43e98d9cac8dc8a447fbfb2c1cceca1ffdcdf22dab93f1fcc9b763ce731bb6cc08a4728cb98cb728be3e9ca80423c04277751b8f26aaa27626fd5ded3984eb1fc2f8b3c3365a4905e1643fa1cb9bef32730de686cfa662b6e205f2e7fc18fef46bdd5369a15b8c9863e6465c93daad336f1edeeaea2190418bed2caf85a15c23716408f6553a13495fa6623373e1ea00a372000ffa008e1e6118309abb511b76bf37f7c3a0f3967ebd9ff198e106c7400932a9d19b5d82fc21499689d49a322aa5f2ed3affb9ade0ee168528a6bef61112c070f7da559305b742638b830b5baa8395e1799103ab32a091c1166eb7619be3c73eb49ba6285a3150863aca86f9e05b782bae007050b17be5d3a38913c29428fbdbad742bf546d8d9881d59238abe3dea5bfece19afbf96297cd15406ed11607e518320c2bc891a732a047f643416f0bef3ff6608fce99c88181944146b10b1a076cb4ef5e0103e283633d7db4d9736d7989918bbfd9c4ba1fcb43bfb3ce01521e8ae3442dd3fef0ae7446f54b1015887ad2e12eb65dc77388d9504c93baa3cc10e87567aed12f373e5fe9d1ab02b0b3b8ba9857201cc4258250d15a77d34bba0e2c34397d8bea53e64ae7a72527e49b5115efda5198e875eccb1fc300e9a7e1403dfda103fedc92183bf3b01bfdc4bed0b439cfd933e2fafa754c42c7c18f1cc72ac206d796767665be794bf13840f195339a0f2799adc13f3ae3f8d145f2d70684bfd724540737af37097a8b4dd6db8bf290ba3c26d6cc855f30e89f4fb39449fc92032fd6143f2c2b06636175dd772ec8e2b376497f8e7b92bb7ac065d26aab730d81d873acac39399ad01c9da996e1195a225e021e712dabe8fcfbde388059bfcaca41a489d1fdb037b0cad11d5b975968f18df89c5050b78c1c0c331c9720cba95a754fc0b5dae49e949b145ebdc6219250a7dac1fd5b13cd6fe479f77e4bee383224d83a92b0aa0d3234b69208b269dd3256f70ebc759ccdee8a5bbd9bd18d0b5972f0c357f0b124e68d9bf05cfd8b2ecd654208c62a458a7480f20969d565b756d38b84277e99192c670e842c95199e1ee537b7c8fa96b741b962caf47214e9b8f67fd6d863efff2744fb8dc1e4b256635b4f8561b2eaac7a2527065fdebf988ec4a60c7553844e1effbe9db55c61779f0cf108a795612aa6c957345ed2f1e8ef699359bdf9bc49f9e8e5f378492bcc194e1f2da35ae94332676acdbc4e02a374752c4ea120cba6c8797e24cff9dbebddea4530d0f3d4d9eeb42f98d7a6ab95b903bd81c9a1f88e3c91e16150353a6f3998e152a02ad4ce8f270f871fe0a153e0fb4ed510296e252c471253e6022783427af1b2f709549a2b4ac3d89a6047f10d5c606c04c71fd5124c17db53bf5e0c4db864bdae1892edc0a6189663edd869eb9545e56753c9f78cd9efc0a983d6f07621f6d21164ece0ad3e717426f9aa4525fbca93b19f24dadb3206bad0dbefdf1ce1273a615a388636930e9ba64252f4ee39e7808b79c3bc67b541f304cdfc1f6343513c53752acc043e64c738c3d10e7ae990ba557d373438791ad7542cce7cb089f05790b41856a319f5d245ed275f8226090fa1b871367f8150792445467031cfb2c633e8a14a03fa7cabcc3ad51bc43f2da7b51c84360b7d28c3accf290353fde3314ecb0323f8f46864dd0b363f8172a1130dc12eebd51650357637a9b14ad0385465ee2934ba3ae0261fd5c943feb6e648d8f5e2bf75d6cbd6e4315cd48ceb2474f171bf01667edf6b4b9ec1d7039dadb67626267ba99090b2a7a4a9ab56fe2e16de90cd6a7aee281aaed06f4b5f38f81e008c7e58d567aa1749dcd53026f8f4020dfbb0665dbd0ad8ab557397621ddd11c0af53af7e5c13aaa512313d3f4dd2c0d3ff6f58d5393e1f3705b8d8616dfdfab4bd6c43ce6d9b346945206d284b5aed7888bbf58e7761675b64a60935f3ff7d10a7f686144a84169b5cfa612d7d1877b9e2245e9a87cd09b6b31c91bc4fa377b9143c69408fb21911a1f3aadc204994475b5246ec40cb57f94d0bf957363959ca2979c86b9b9678f78291aa8aaa7b7746a83c0adc9868ba6856cebf6bb99cbc131675404ded2edd4db06043cc59512fcf23bf10a68b709960b79ec0e0a6f5fe9578cbdac514c62c677be7f3feddc9d26ed6042aea944735cb70b420a5f4da6807920f1955334e066b910e4fbf0ad017a4519c792db8ae95ad36f407293da6ea544733eca40c7cf3d6007a6b739cf8b5665a3c0c5719af2d9b5f42ade44b0abc1bf4db6ffaa6036ff88f8cf9c00ca5839c638370342530db3f23d567ccb93e3e2e0d8fabc77b980c73630f2d1177fc0fa3d83b89f349fa76d6282088e09952581393e02e1c389341c0f4b78c168d6c98cc37ef56aa3f2840b16533b4a135782586540d19300d5f87a9580607429ba49cdafcd1a5cfe0480cb74ba76494d95b35f500abffdc9010d3d0d535614c9d3c00885b5264c092b34be24770e8c1b1d7ce020b5833202ec8a727cb3932af627a9d01cad3e53d3ed19fbe90330737b6969d055b95149c25c25b76e6002129c3e668665b617ce9d75bf7ed44f7f286a778f388d13386171e3682d9aa780a3fe3a4c94cea60a3cc78d6e2a5d947bb431bc94ec999ff0dfc4468ce3f470b09b888bd963b13916cd306c01930d92cdd87989b263b4c93dfd8fe8d2eecbc91141e7fd03d30ffdbff4f6d42f76bf186dc70c4de1605e17ce0de27684ff755f416400cdef31bfec8c57265600b4752b10c9f9ef86581721eb063e4b433cd6bf3deb3741a7562f19643d5cee3bb4c5c80cfb9cdfd85becff4e06101db0cac7dd24f4c90fdc45d8649c7f5978e56119ff79ae7fbd5a3ffde2ddcf8e4700c2997df89a76e0094d84033c1b13650e4c52751075543df8e3ad0b85be90e8178ab06118da40bbb6c9455c60fceb08183a91f3000b6aae2439a1f3a021929aee6ed633304e413548ec554b69173346a0d94ba18f5beb16b2efe678d5b14a8982480e6617c50b9746695a4b409ad408e516e75878ea7edd4c37705bf7b88fb27fe460cc349939732f1a0cb51beec5d8b3fb5a441feadb59b73ce87a785c54e99c4f88fc3bf9ba8a1e1768bcd47846682eefb52b97a92dfcc08fbf4929d44d97533a2af49301c49005a1dcbdfac2e5f528f656f9ed61b8c9c80afdb9d2f1dbfd21222c39a5a0d4daf268d51c44684df25fd2e4cf76e90037b0acb35b2fc8f817cc0ac22ed8f282468e3315013e4880a15ce226d5adb40a2385ee71a4e147cffef9b485de0d86e0e632e6cbd30491d17de7b23a623e5fbd40ad5cc427ebcea05432b53bf55d4a1605f11127f5c7c8c68f67aa889be4b962584bafa57b64c83705eb1fa2863ddc9d8bf14eb64ad42013776dc392760c56b57d11a231a712b16da2bd8c2345a43b0022d0533f380d20cc8a065f419ca7cd693cdebae50c27114dd980303ae1d0466ac6f501dfd290721370bde0be7f005b9a6bfce358d443313e491dc68573f86bd6a75024b0fe85018cea3b344ac9f64f84ad2d007be0c0c4f8a56a57001a045cd2db1d758aa7133aded1bfa771e7349fe869980a7908d61248cc9f2f0f08b4272e5498e4e4d9b640186763914d8c51a371937674ba494b695479e788f958d48c935c99b3050e583171fbd759af767b894f4ef735e8ccb8dc8cc85b0499070cfb73b3cb1728efaf258711d58210e3c2a0acd4431fea26699887ebd46ed092f4e6261f8037be1698e108ef167d15d139313b4dfaa7eabeb61c242a1609f59c354b54276252a6b24e5ee9774d0696863d22bc5e8c3e5443a210843230456fb17a7e0a1f4504eb08a14880b2646b9cdae3854e2935d6e2c404a113d4b215fd68fe0d66bd5792d83129ed5971d3d287abb939280f9150650031937631f01d8d3e0dccecce611febdcf62b186d1c72f25f0a070848c97d2b0eb91f7cc982736c53a40c3540a736fcd69705cb51124db1f73a57a2ebf69a615778a75778508c09af4fdf42bec131f0b4872fb1c39324f73e484c117a9f38e8dc0b0f5d5794911ea39aa6457bc3325e8fe6816ebd7d0404fcd305a3ec0e949c2850a63f233ad9ac472b85b0d1c7587e747c1182a585d77c81eb4df21f7afc91a940fcc1d122f1dde5f85e319b1f4c4680e03d3f95e6853e7596fecefd151b4adc756e3307f47330325314c5311c44b425b18f957ec0244063b53a3c04492e60306c87d5c76ccc7dfbbdaa81ef855012c299ba4787be75180020929e36c3dedaade68158a8063991589c34f04f854c0f96bb0cfaea52893afb400263a77568b97bb24494ccd04bda20d3f5d541a92d2a5d4b5dae409fdb83beb4e49a845f43858cb645a5f49a11998ee172fdb1e357a2b1c6f0aa57ab681b8111dc28ca59f9e170fe7b0b9d497ea1fcd40eaa54d1c6b31df6e06b2b4f044942730c74f29ce1b6f3607542cfa473fd4a83cf4d60c664f84542e5b2f208a6a5661b30ffff6a4420933977593caba7d65c6a7798aac72416168a6f9595e07f22d43055afa1d875a14ae78e496bd0cd99054afe7ca1a4953900644b5d0a598eccf0ebfe7af4513dd84c96397fab9fde16649137295712d094f9dc0c56c2f16ffa59e8ffb68c71cfb27d7aa297fa7cef4e1318391ee9064dc0a23bf47aa35efe54c08cc612685dc1586ef5558522c5ec5ccedc37f063794b9eb280dbaa04835e962a0c9e58c0f0e429592a4860f7848dcf89111bb6d48eb7f2ec40e828bf8a36fa6392ed8e1ecedcd3bbcde3a503ea815c5ea9d88593a42854f582b68e218c36d64b9648f171316b4a216629ccc42f91ef458e16ef8d0af11058c0818021e08ea365b4de4e9e6052b583403fc0b1987fdd202b1b7d6a3a2e109f3ffa264572986133e12b30a52bb1742fc2d4ba5f9c489af93b2f3521a6ca6b73683fa6908acf2a914c25e5ec2229460b1aba00fcfe5ec9e03d37422d24d8571c71178b0a114731213f44a48244c70604098b402dc0d279421dbd3e5a18694de60fa59fd9c0663cc734160072a43adfdbcdb66679d818ec6d91969cda99063f4ea613cb5bd0fb00c2ed28d2272210336397039d8c94748687261d74d24be70d181f0a5e4b7d05c5cb79342e55e715b4b60d7d1b190ced0ac38427ee4e8a6b167ae147dd87fb3fb86eaf1f4ebb04055967f667ab37a46771f588208ecd2640ff719049046c46538d96d139dc03652c328e77aa12f8e8fdf49d64fdd807e71e55746800d0655dc50af32ac398723b62c40cc3b58cc98c781aaec8eaf750d14851515ed0a5878ba9553e8714abadeb04a88174ad6d3c0c228fb3af4ef57e6b1b3582776febf7096ec2c7c1f55f75e408c2dc9a1f514c0f974c78b4f55849f0128a260d7456cb5ba4f3d01be63db61c095bfdcfbb3536ac3595325895b4b8813105516dca02e9fb14df0989a81ef1226bbe3d632b14961019dd1e058c325825f8c11b6cfb2048c1f853937ea40a5f30b89d76687b73618c25dea81ab0df91b8c31dfece98430bb2d2e035c9d3563164f3dc3c5252e0189bc88910800026c216f8827993701e1630e92ec1b4f7aa1fe4e4adcbdf7a4e63cf4622df7c32c4b10dc8c8011a17b6ac8f08f58128c2c16b8f9d75783a24cbc8a46030dc7da5bfd25312f478a75240f481215cc16e7ebf1f6ad3f2dc98a7bbf2c1cd62e050a2108f737d509a4529657b177aa9ccf725d2c53a590a8bbdc2cf68ffc1b57d1f857a4c2dad6c26c564cfb5640e9ee7b40aae0f0080ccdcae07d1f7f4a6576b9ce9662f46301e35d492659a972fe048f7501ba270baa876e5930340b041c602b43bfdf8579142c21d5e97f56982cddf6621270fb6095b14e412b77d3f9fbd0f61b748932ca455b26ecbdc6327e472028ca9353773eace27804f8150f9493c599ae9c72af6ebca3533dadf56bf23a604925bcea3e8901148e3a4659fae5c72051f5e337595516f95aee2bfec86983a61759ca9de54c5a1212fb666589824ea2272e37f409abe4297ede8943f80ab2525eb07f73df9cb3c04620ce8a823f352d7dc74c4509182acacb6280732ebdee481c62a0dd1cf8ba2a3d309a2662d65a5ec092196048d4e0ed1ec4adee977d6f70b02c7695a3f25267062f0613aa1cf27254d359355c0a74b36bc60fc15e6d0582a7c14e88b661114b2e50f5a77e5f037fddc40ba6e7bc479e22288b2a47c0902605d7f9d35e87c1eae9586d4bb348ebf36ca1f3c767662bc1b45768b724f2856522b44cd367c2e2eda3871992a895d7764805173a94d7ebb88294d3e8a96f70637bf9a13a201827b1d000c6ef9dd24d0745cb4289c56cc376c04f5c6d542d6c70063455447285f5383414e6f7583fa375f02184a4138fe4da17e978e9777dad66ee8548ed2465e7f30329102e44fc852903a7af611e9af21e14d2fd4fa9d4f658ca4f604158614c4d8ec27e6667a17338d4cbdc11b2ab8510a0baa8ca0c122391ac4e06b88e56a70f52da8db6db6a40ccc9a2e425ba96ab1b21a89a32484fa1dea214a7a0d5462e97afbf40f59c3894d9ff7ae8e2332f6425f9bfd7181c32f134821a349fdefb4dd49dc8becbdab96b269f5cca2613692536791dc65ee537299a17eba2381c3f201e0d62d0552b3e94a09e8db13c4b5056f48e42b45e8979726518116b6f339ffcd4e179645241d13304e9c389c16db4d4eeb69151a48ef48bcd6b820c705492e6d4b0cf0ce4077840d2208f8198917e70b7fdc63035647c44c7a73c854d4c651ab8a77480e145a006977cd18bef730c6dcd19954b6919150434dba7dccd61cf86e94aa618b62a16a48075d4df5305980658e8627e53089f4460ff1d9a464f334c87f33a52d2661d8f4542a378d6d4a6e6b0d6a408ba346912d2aaa64c89eb8d4415370a52acb19d0e5b58da95400bb9aebe02750d9f61768f67df8f03e053d377ffa2165d50dfacbd7b6d083a58e8f3721f1cdc16591fff71c50d0ed519a903a5ec75c15d81e7220b7eb312ac34f44f3c2350b48e3b54018215a8765aa7b190c0e040fc6069804ebc7a48cbf9a256e78896ca2e47cf017c1f15def92fc7f2c56f2f9a3f19da2e536743150e6e9a065dc65c95cbf49a484cb9735cf976c212c58c3e4c095e1dee33f82894451ec1c3f9dcdae002ac7bec7e5881293b54399650a618aac7a855d10f30123a2e62000c08a131fff56e8ddb4f132df940727f4a0f80cff362966e40a020e27b0c54297f2c63489c3d97a379ff995392fd7d08ef2a90aef4086a9db29ab22eaa4e52a962f462a7fc516d51b21bab5d1ffba7e4ef2c813d457a8a71083220471dc1814e379853224d19988213d99f2e84c6234d43c4b112dbdb0075e7957b8a6b10481c93fcdd524ddfa3a3729edf62131dac40bcafb475d0fafb5cb9f8250ea452d12fb14f1fe3de58805adef368de3cebff2f6460cfd18d034cca30575794c7b58bb4693e28a8435d01cfde9b4cab0fa45cbaad077df8bee8ea9975f69cd2f93eaae8839f7e8c14ae608346bc3028a9da097a92adee33be196ec55a50540825bba63194a0984a3b7eb8bc15a2ce86eb4fcfe0ed9a83295fb398d33fef32e5099fb840d8f364f77867897b32da749a15d87b24a7dc538c4309c8d87f8dbfbff5996047c33ac25c43253804f70e84f615955e3b7ce4aa9f2341850790a6d51b990be13b2ced062403bb8cf7d858f25cb303cee87f548489b4bcfad02f8a2481b862c32d50497ad0fca232fbaa76c97ce442a3d99cd21675163a74954cecb0a1b1a751aa1a6dd9896e423bf23ab0a600f1cdbad0af594685f4e5e5e47ade50d00e1b19316695d6b6ac2699c54efc3bed359b76e30ade2e97c015644f271a31c7a2dd6fb826a49367477ea5bc4161ce4fa7323ac673439dd4b403abc5e08452bee60ce941b07a2a9082d89c65c46db73c69d8f028ef92951685b198895ee206d2949be47e8b692813ab741d0e8115e51d1a598523eb16ce17ea09acae23ba75b9b873fe848af30d9c1252accba6335a51a85e6ab29a84327770748f2ae2901acdb01c9a920f66cd49bcc033149d73ab17cd75154394a15f8a35528a75ffb7465dd9345fe3b7545229046a7ce6616681d286157e5005e528007c450bbbdc1f9c58dc8bb994dcdaf77fcba7b88254191a932c0ba20f0d6c145342b9259ac4cb9342df8f579a9ba10ee6f387fbb26e99c8f8f4a6042c1039de0b45d90d76a0c0f779090dabc25a0d5c313309bda32e6c715f0ae62794171ef3d3160e9e56d78969cf1cf46dcbf6a1982f8af55a4cb32d0d5e86a015568ce2f757381cd658f8b9da6b1afa188610a1ef30e83d9367cd312c95ee72db8be22c40fa593857af121f14072e686c0c2a228362c5e10cfc063c6dcd0cb40a580579595531bee732ddbc316e5960ea048668e7f8bd3ccc74e32008663c4938f295ec818e8cbaf0820f01225a9a305bf7fa06a52a780bbf49da68451387947dc34f2a2a788d2400b68e102996840b4ab12c76b8fa5e983738cedb03ed2a09f792235e7a8436754a9a4f7e5f768aa285badd1d12d3fb47670b033232cd632c46c2db9bcd87b347248610372f9e6daba0d94a7617eff82be7f4d30559fe91e9109a5b52314b08d087b84cefd916924f71a8c2d22096165b3375ac87113a182a7ea6cb05e8ee0e4192490bebf0b52de19538eb9afa259d8b2cd4056487f78a92bd2345bbea1cf0ad08ab6b89dcd38df7eac7673464ed15d595296bc1fe090b207f7ace80600b7f8ecdb811985952ed401385d0a294d6548d97f5c53a4b8fe52177ccba442a4f23d16c59d314f6f294edf8632ef0b3e11cec3d497540572ed3b4e090bebf5a7e3a5094ae49ae97fd3f9543026dc45c6fe97ff97ef158a1a57076f7404b8db7a21b9496d52706f436ffdce39b742e215ba6851d83fe4fb9a9caa07c1404ae3b7c2606e9377972182714f18d0fde8506e660e463acae81c613171f36ce5d989593881ca76b29bde2af7e1b36f3727804713be56624b8140160f5756c98bbaba81ca2910da4772b87f3365d9ab8ebca87072ebf26e0de25387cd08a6cf19a520aa9346dffb137e90e8b4df5b9e19d10f1b95db58828759c4ce63b6f07a8a06086aac580819402ced20c6c2e54450ca215c814d6d4b2349eb31a665613e898419bc5defb3f99b85404e36fa074638b66bc9ba55f3549f25ef752fac3e856bc5efaf315e8060df78727721951e4c96b992493c26f3d03ee5634940bd5e43fccb70b7707b0487c6398928f09c4b2885c8f7b9b14e95e0ec2c09e0de33ce7d0d70d699aab4f9d83eecbf2478717b2b6f7a4689b1a6a7206329ef9c6cb30d766bc256146b26f3c307077c5f5c7c0fb05abeb83ad9bc733de5c691f9f35071eeab2987862ce7886f03fbedfa7b35767686eded82a36bcc35713067e9ac9bf273b7c61e2071b9f7c14aae5e9d75f2717c4fa636985d565260d557d97814903e4aefed40b84040144de6424dd70bae5edb772a8a9f218b9c408368b80cf546b4b9b66fd122b5f38a82267f88c251f0a1170afe401e6f449e8edae0d63f06c0bd4f31b5f49fa95279679c2371817d1b76d8aa3fd4e5b19a843b119f1fdcfd245fdf51e07b70a1b60a1fe62437acb9216310b860261f1e61469e15c4d20b817f0c6e59d6296d3833a7ea1d6fcfd73d6404f61b7f47ed4fc87527f0705317f7bac36dad5c7d53cfb9b88067e62c18340a4007b92f0de78a9cedb66df5daa067226d49990c89681f36f3df7c8ff399676ce3dea9bc22d25c8114347a4b89909ea912e87d15eb1e24110bf6260b1ada574254619c1300c4dd534ae2b09c4203b2f66559d83c430290e3154ee5f97b991e2f71f8f99c390bb4350a5932645f3b481ce5f7c3a4fd1f83f69e7150172ccf523a70e44dca7c18d5c00941be7d5ddb5bcb3e48558f987f2531b84dc590faa4f1c6a1f067b541cfd33614bb530c83bb0a69382092c5af9a6c255e00c11e3eb75e14ca0ed15fe12fa7c577e70ccb27fa8c4935a81d5ae0259633dce092a5b795ed69ea5e1b8848796453545d34e0baee3ca5e90de083e2f9074b7cb2e4a071635e8f5852c15755340e6e09dc28296e3e50465cee5fbd0447b345473c01932d4c1e74a5b20a9eac4cbad63e4fa1867cac04e09c19b1334b82233ee096da21e9b1f397886cb879c1a4e142d61189e9825b2791d9bc122b2346bc80df45ccdb5a6c2539129bdb2220ac87e66ba2ff9f24b1236d290614b4517e857e33cd3621206cfcc1eabd9378e3ca0dd6a7bf6f428a492dce7596bd5c8f57d4c96115e2d041ebfe547393f85c2cdedafd4967b95722eccb07eb4608ccf13d5f5b944972255255ad9573f3aa59ace92359cde6f3cdafb1d775ee11176e2ed9bb1f4cc74b355a7fa60daf34954c9c226da6e8afeddb1b1db77ee266af4d3b1990a494329a6f704252cc0ca34238f24b122c0b935c84b08cc49604d4ca483c190b7fb67941b89f06d4499012d17d6df33a813e8febe4050f7fdc0217f8be735f1a3c49943a2f3f1b097f815057afed405e9a67da76e43e8c586bdf5a9676f575b6cd46102793de49622814b74ccac58fdfaf040f976bfc86e74e81c6130df25f2f83ae8fa62ed796c75f2296b0c35b36a6865dce29048f8b5603872421e8ed27d1f677c66afdbb2488dc7fb77c1d3a2e2c18663b0902c16fba347d121c98f455e77ca10ce56ed68833ba04f3b81c1d5d8ae9cc7d34651d5972d979d452fad984dc927b9da4f30c67b95ba79ecdd51720a8750623d81e5788e99b739b3b73b9af2c4b532b67dd2ccae263710eef0ba90b8be0a6f44af525b88ddc4908b81d04e43e60a59fbd976cd1ddfbf6f72f3d6bdb2af2a8e1fea4a6b2427128d7792866ab7b4bab036bc7ef104f86e3530972d7931891944ed63c5a895c53ca224b60ed94ac6a7dcf660f7b4e14880c52611d7b88070c8784c7f39aa91381e45d12008395030512a6d12fe65c9c66cc7720857647a1c61f884116f198fbe3e6fe926315e1350cd059e9497a80f288da532db61d9d075cff23f91c83454fc7a1bb39bd7cd4b15b78121b729f53ce6450f7beb9a682906527bd033024bd59788cd0aa990425f380ed4732e001655180c775be6bed406406e0c0c3bff4563e0e6083032a82a7406eed7d51688ad6ddf4796f23659d783e97cffb2f5641b2ade91d7a113e82a54ad0989bdc237ac945f36e59217189edd3382166934715bff627f450bd24f961e31108cd6b66ada067f7225f7f20e49ce492cf53d35b0a680f686e53f8a15faca7575a692f5d355b6e5b8d88607bb6db75ea2a3c547f43282b7d64a4834d1957b06a1424afc8a0b21f7d0c5aa7e6a919c88450dc1ab3748cd8c80907e8b03d99f842eecec13223f77c04178316abab4edeea383566cdfc72e3ffcd2ba2d42ede6e8bed941d7a60b12159fbfc3593cc52118a639da392c9fd556b4b18fc3322b0200d55db810e8d83953c82e697af82a21606dc82684845701d6d4d4964327a237cd5a72c851dee73c8b679c1c726d3a80e171aa8557a989002b9c62cda29d94c4bcb838e3e59ecbd5025da47069e3c3895b2dc127bed5607ff35f8900841df90fd0da6ff302d3ede14e882544f5638419df07d02da83e20266b50fb49b8eefbac2d1bfe6d594707687d8dc386d26cb4464c4a00419c679f879fc66c9ca2eb782dbfcc70f265caaaee09ca630da67f7adeea915dbbb246c45fc3921560d04284c4c60b727b263ab82296aab376320572aea79f57609d400f223b51341f5953e4b8968d571f1554eacda0f79f1fb6962e9fc06442a5bd9b11d83c468a42d7ef93a7d46394608a944b1db57cdd2763a4b39ee9ddd6898b27ef4f1da1dbdd0b3c4196f20a440ee934ba37cca26386239cf85a34a5af00cf7be39aa451728c7f09cfd5c7a6a4b435226d24db33eb2d1b286acc4422cee76d61bbdb03cb9a5db20fd4b47303989dfb976901c78276419ad86b909ce71691d0ac5865462926d1ac9c1b02f4cb2561a1e50a8a39a0c6587191ce13071bd0da1e103129582feae30363235f196bf5058fc682ed0f1ae2d4d95e5d8d70be27d8d731cd75fb7c3f2ca2da9d62c336d6b1c79f52f55d00964464ea54c8b14dad0986a24c05482d8306e841f28a8ed83bead8e7d27b3f90f0d89ea4e3be1a6dd5259222df5b8dc797d1f4acbb005e62b96441f8af32f2f1c4e965dcaf04c653767176074c76b20d5f3b2bb947296b208b67b18967b9f1ec298a10695101ff334ea8d4756bc86cbc459d426b1809c5050fbac626cf031052fa2ceb40d5fa44237d753094ab8be8c2b768777666766983472526f38e10c4205759b2513df0b4ea067c50d08e5dbcd0a5a3acab9a1b62b55984143f9fef281a216fff34fc43e4b751ef87cf282e425a04759097d4498f141065f181d3186789817bd9e67c3676ddacbb6aa8a47eaf5c4dc11567679b0a47583835804c128286611ddc789830f6b1c53eae92bfef863cfed6d40157664b3cc512d5930467c4ddf179a6d822dec022319038504b203d12182b25eae2fe767d0dfd2d4844ed4313244184245e1806c0e959a030aedb2a9a9f2502dbf4c9867d89d4d9bc2d5d38af30c282b585a02ddec8409fb6609826c61efe0c4cb11f2ec0b9bb0f8d32371e1d121064fa44aa28e80edd389570465fa020a83dfceffda9e1bd1a724b9cfadfec0836227b3a367a25e04298f0006e52c8b8cf1464b98ae4e4dc2f6cfc05ac7f32147cf4e07d3c0006c51ae68cc49df753fae56078cd6696b00130815bddabfa1580bb08ab16a7c77c2a4a99db88297b487f3de8761fd04f4f39f72e22e9dc616255c3624c801c7512e02b04a6a738222fe5368a8e54949359364946f9be1a6008e2cc93cb2d9a0c1f9958206a942432844d7da91448d36deccfa1da374a00a9153b003ca101df210a6effda5c5527f5dedb52f1a1889130b27e952b154cfe0998b708887ed5a5bb875cce636b025a36bb3aedc7e0d91a40cee0c1297dd7c1174072b91cd9f5af7387c26a40834b03cfbd15e2ff0faf3419f0394e7949d3eab15cc9c12296a39f9df2e47926dff0351f279fa39a3cb720fb6cedfb133b7c12d7f5e07164f292a27e656b39de1446bf8be70c0daefd4d6fdf0208c7ecb2e12183621f8fafd16becdfc6e3a7af26b9655b7316ffbe0d06a2a9d2b71637d266f891b2b138edf34b0186003c3d1ce944778d04790c2375289eb832cd7d335d4362e0aa04dca12a43d056224a33e7a3faa7837276363b192def43363f0ba475025f25df4b39c78dd79d38e9455eaef38140992854b9996c44d92e29a82a4a0404b83daaff7732db80bef3f94a959597929c010edbe864acd03b3bcbc6141073fde6e3625a4bf89f2a21a11fd7aac6047bf98762d71c898fe743c6c8fbcfbf2b744c0e30da268187b6a96f8453f5c74f9d940aad9bad8b8cd4ee78cacdc0692944b66d4dc4823f30795bca2a8467eb39ed19cbd97b0011e3955c967866cadccc1e36c6659f303a32bb5329e4163958f77762ee8f50a467665df2d1f914ffd10e05481ce6b5bfdc973a9417a21b1f7190d682c596f87daa9e134dd7c8cae0ad1cd048f0d195f1bfe5a49d374586149997be29badcd4044c36d203ee369e31f966ab3c02ae933e5cf220da50fdafb2984a734ef852498f1cd2673a63954954f32a96e5578c476ad83ac6d7afe4d219261d4f2f2f5a3faf1d62d603a3caaa3ce08ae5297f210a286616225363c08f69511840a003eea59eb4b1d6942b0b43f0f35abeca46107ccfde25b51120b66bc9d77047a90d16ebbb0d7e5046c489ba96fde29e6a6746012192a1748cd5574e019f34fa747b648616c3a1e367a235591a34f7d4e3d6593f1a79b3476a3d9c04a2dbf5028fb3736f0b18f563e265088f58c6f405efbf53a1da3ee08bcaef3abcbda3e89e729065a5f15b5a56aa17f96de21061a619583bd797d19d915fc6698c30f0fd1f690f60a6d6450e760294642a4d9b24850c0e0054a26d9a1d599828ea784e256ab88ce4fa4a5bbc318e0a9fa0123f9d4122ca17cf7954e3e71e991f3420c5047921e7a7a83eb4072c347e6dcc011a0dcd4d3b43c2f1a10e1ddbe3932ab3ac24daae2443bfedad30bcd06e59513f2e3ef1506a6fee65f1c7dfd4fd1c6f4a7fc32ed372adcfdc5e406bb8162cf6d5d18cc9420d99d5fec4a3c29a59950ba3e043abd79bf16de5ddaa790ae66124d74fed446655eb3f06e1e94efd2437ebc6606d9b9a4bfab352aea959d32512690b5deba6503111b64b0d1b80d9ebf56045bb86db9dbda1bd0de3a72fffec99f732421406603dd50999ee5249b3d9ec9cfb94a65d65ae6a2ddacaf9591cd15425d6ddb6d181dcb9cd36ea4a0c20a428386dfa75a625aa69a7a237c2e3edfcd0eda5df6645493328d78045af2401682bb1ac200650c212ef56d5b25711ce96376d6cdf3af755ff31c38af3ab5c8e0348e6d32a49891c777365d030b4d9e0a015668d314f4e0a85a770d4c2127530b7599c0cf63393b11521875e157a6616bd4cc0169bb105920d70820edd40a32b176cfa282e8d4289a41670439be196fd7eb60461477cad38afa8dfeecaf5101a989e0dcc2cf48174b8285ad8f0717d6635f0e03fa19028105a0a33156ea2583640ee452265b8cd9b657881b89bc1e0d455d8a7c2f1142fe7627d6cffa2520c764797f6295eb0b85df3aea77df599bbc2f381ce84e691ce8f068e3e0e7d382f74b06fd98b7d5d687dbd0f918cd3c1bcb2edc5708e614fe3759faa9f994e0cbc2b24f38803255015a19cda87f1ab63c512ba24cbc4345aa28587b14c15efe81d829ab70558e4ed8e2070aad84cc97b6eeefd5ec1eaaa6e1362e0594345f107b5a199a933e4c171b523a39454cf5ffb80715706583100de92ebbb6f4782bbc5582416be5cafdb3cfe10c7cfd04695557b3a064b3b582c674f165fb1600eb4a1ce0d3ebfa915e353f44b9d90a63acefb117d5b76365ea0e5cc1099585879f3825496b878ad003534b5432a9e3218d2e6a9f41bd5bdc1d9aa62ba68003e152f661ac524cfdbaf900171d1abd6566f98aadda63d506651ed51bc696aa4e77acdbdc5dae03d0b11af6beee68c80f73ed1bafc75ab956a8c6bde5903c8ec681e5739ef8b64cdf9a83c91078db0cb7d517a768983f87d289340020e60a5d69df3b45da20bb8d3c60bf8932832ae5857a91349b9622d4fa3a771788203430ea622ef53e1e5d1b775e5f687d448d9f475fd44b0f91a1998ff3dda7cb12251fd64cc5d9820aae57f6f9253e620362efbcc45063d67facfa2079d4a8b6afa2ca500df7dc0c765ed290048c5b135907ef3d6579db7543842e8aa0eaabad17502da65fadb61b2eef7acd7cce409d1ac761a0f930266c86714827aa0fe3add240c59c164c740b3fd05098ac11f00c67f5676799d7e14feb923532c747cb7db826b81080fbf510f1980fa10799c1f7ac977fd193093e8e31060821aa0fe9fe98c532c71a9cac4fd4e8fbd4561903f6695fb1c77f380369be1e5eec49f8ba77ca87f3ef7c731462bc0e2cc69fbcae59708399f226cfc89fde681774a54c717dbd93012d91643dc38faabaea16477b53080c78a2af7e3d212a4084bf49474f3a14a2bc61a9f1d4e3b22dcb1756e5624e6ff3d14a4d6082f99b62bfaab4f68443f206ed3021baecb3befebf45047f3f682f001262a4e5d1a86f9b6ae7d39905b77a29f089b5a52a3b474b82e04b394d2632ebf5258cf19e77f775fbf1c0fef3be2b1672f34b8d42d18bd3e7943d3ec89f96763405036ab3f5e2d8ed26065b0e36b8e322de29cb1bd4c3440cd2780c9a74bccb6ba37167c1cb29cd0e5c009b6a8d2ed1566fa14d94a27e219f5ab3047217209eca5b615eb073d2ed9daddf240682b62d28599745ec8f674587c2f7348071c9bc1fa7a5b00c37764399ef8c097db5c102b981c0cc88dfb1bd388f8f533850a690ecfb30ab45d09de3f9777ceccfda2b60d87a8ecf001e9315799ad1f3b7992b5d32e99cfd79d5428a4d364d005110c0345aaa3bcaec16ab72edddb37ab781d5c2e33e37bf51fe861ea4ced06e77bff39af11389cadd0999d0b37721f0b21aa5fc1554eb3b4f50dada8b8e5fd036ab02c3398d81934ff88e021054799072d4ac973781ca899a53d72189042dd77d4ad7fed9ab436c193bc717a77902270e2a2d69b7a92e72e58a7729d5e9d49075a55415065447bb673acf2c8946b5bc6146c78f17d7836ecaeaeaa2cf2b5d46d185bd02e00c31b807a453f4e0d57ff2126f620e22e9d7d6c396804bdbbecfdb88a4712f016b02ced6a69c891a2b86d6b26a1e21f7d51c6c4bd20da2b89c8c2d24af4f960134ee7a9ea6bbefb3957c22e6f63de8532e9460e91d5483fc574bf9d76135ee16524fe0d44940b9aa7e07d89e04602acbf3f7f750db952b0953cdf4463a71fe52c7f01b13ea21e9add63bef431e717c466306560cbb2d16682149da03b88a00314ebd3763b44854174d407ee9ff7229aa61ca17da3dc3951cc12d4d320e0890f50be2e06e59f566f6d8b9cc09dbe0fd26868dacea7042c823df01f8266b0e2f0128d36db31cc6df0adc565f11893b1bcffff1300322fd87d078bcd418e4c763bafb51f6829577430e6216c0f4a65115e71cd189edd1130e137665b2bb8db8abbe8d3e2f5d9c1bc118b23e0ea04350c7fe643f8fdc497e9cc66288aa858d8e7729c4c01373100edf50eb4b274f89941e455d692e79f5e51be8519fde425942cc0ffc659bef5fa7841c2a0bdc8543b5204ad8036557339edbf20a96a8259b176aa33ad0cccf30dede3a1167c24dc586ed7c83e4bda59aeee1bf7ea5c7295a8588bceaf70228c8a08afe12c53cc7942349a8a900f838c7a75fa8b118217f54420914b4017d53735a8862f596a2118dede9d35fb643f3c09a29532f98c1016256dd30417e14340c780b383f9136a9527c47f0c8aac2afcfe77ed249fa54e2e3f17f479af22b4de6ca9e2d1cdc50e65a92362d549b34275b1902567a76959975865862ac7d8393346f69b1578a14da106450086c9ae5fdcac9df694d67ce2908d93b638e3ece206e8223904038da60f75e6b7d9a0497f2b2ebbdd3995a90a5fcda9eb5dc8895619dbcca72559db81e03efbe1fce5bfb46fa892f3ff7591fa525ca25d7804805ace1c3e8034cc84d3c03fba14cab80b5095424d95d4a5edb0be52e0d91d63baf06b9c073b6d8eefbc2a6afc284fb8210efc5756491d7e5f284f1af62f2d7bc2febdbf6b8fe339486fc045eb1c718b3d64c5f4ed893af8d036caf3bb004d2255b1e0de98440c486ad0e268ff2d8f5a3e383f5d8b5fe13265c8b772b6e9a3f2060e27c5b3ff689b58a4a3034fc4f652139805890ff547eef85710fecc46dbccf8648f35b2d8aaf7453da9552c09d324384276a1c78fbc1233c7a4535004ab519c94fb6305c0af842df49736144304854111d9853f95012825f89500513bc26b88516f7714ff754dfbeb1b8eec50f4af799c3046e488b4de7bcadce94592ddc25de4ea0e875d80c444e1bbdb92de0ede8c9ffead762b19873f5e95c5029c4148bb0f15b95fb52c3b910834afba2cfdd445fb67b34d26dd9924be7aa1feae9cae4210cb7ce6ff2d6b323d36301c8626565a610c0769eccb2d6c53c25beaee88ecace8d94f6325b2f1ac021397f2bb3fad47fd958b53bbf58354c55027978284bdee6b98a1a819bbccb01afdb1ca43e5263fac7dd7d5e57f7b1926140e2d303b206db7d5d06d0fdae1a1b14f61a1d054922296c0b578d22f1c858f296ab1d969d9410f94b179ccca77b0637d1c52815cc790394ca3d757c5101091566cdd9379ed8f4e540f9d6864bb819c146b55fe7e1d023db654c36064269211499644512d2ae85d4a247d01f43d6813946dcf201df1f4966d2f3402a1d082860241cb5b629cbd61af212e2d5d722c66a052eefc2e252adff2cf0c6d3ca2c9a2cd196d16f119ea928aac9d354b3065148ae19869b79ef1dacd81ac6544d91edf1f9b53c130b742f3b55dcd665534605df9f36c5fa6c58696e6c9512b12d2fb7dd29e3c3a7e503c509840ddf9379f9ac203f50dc94f077d9da0dd4cf9988e1bed30c730f36a05a0450a56e6662a75c930e56ac39ef5553c249728028c8f358ba674138a99e6b84f322013a527eb1d72111567676725a58d3421c9bc53438f4af368514a27cb901a511fe1f33450e412c77516a578d26f372fd511513f4f8c7c311ba5c158b079a167b89c15c90a7adb55eb3387902730aa341b098f4803be2780ae0785c0d0a14bbdbe15d030d472f53abc9256a203eabc467ee9842c05da86f2a3c2b4f317fd4a4cf68f56b568c75cb4bd97c8f0f6a27935d4a291f9953be9ac2af5928826c2b05e404504e98c5248fb72bc7dcf5ee1f9a88456475df35f238d55156ae135ec910962e2e6e0d8552233f50fd0a5ef3453da2fda1ddc7e688f406669c3fd4aba3b38dc0719252cf3100fb0b1f10c96ac93cdb53bf55cb09b9de9b78dedcb142f7839d1c8ec617cb50e70bd585b23195fce1e273668b25ce4f4b635f0d2b42793e200c02fe6232806937df0cd8a6f51e537b478beee0b8451230eb456205c05f14b8ef1b8852816b8cafa6e6f11ec18db52e7eb79d078af93de2bf556bbce84972f2dd1d4e20db17e60da0daff21652642cf7fc44e7e6df80d45b9cdc8899bc98377e0c66166b3e6fd5528492521e85a3a8d551ab314734930b2ad5a98382854dd17c4448759b278a69f5ee3274849b42dfa1937235c2b76ad32ffece22de09cfd1f24cc79ac6892c94890a3d08d533ee8761550f32263c47455e393510bb9a7f2a0c742343efc99b0caf0474cb45e0d876cb2a2c23f9bf9054e85d182f5e317fadfc0f11f612f97f6288be2e755c64352935da2a93d8a2506f2e6a88f2c89837e2e99c3981a48b6326f0e3d2f5f3aebf61f524993d11d6b3ae4d3ee7034438d0e98a09b742eb4639a2fa4760053bdf33d5cdf9c181984a8e97341a6e3928ddbc73306d9e43114ed321c68de901861cd1e62d051da5d118d46a5f14a8dc5faf2cc226467022eae76bcbdb42121e0e6adf74607bdbe5c84122069e80f5405ab198bea38ba7cdbced1c08a33696dff7e826b5f6a85d5dce743454850808aa6bc93b1eb352300e9ad2667ca908c1ed3a2c7321024ebab29af76d4d6e096982d3579596d281ebe109daae90c19df52f455b1774ef083d9d67aa548824a6f4e1e2c9e72130132ca61964bb89396a293c73e168b4141ee536a624115aa6dc5964fd6fba53bcb13d12152c3a31ad456515b8513e5344b9e41e3d12f48698da9a4f6e1959bd8211da0174f63c0e34cb473a0ef77757f75e216c784cef824fbd8f0a4c9e5262fa3fb30fc771b32dee1e81038c43739ae0a2b66f15a5174290e465e3e38cf83c404dedffacfdf87a3150585235f19814fb61724714fd27996a011b2668a5e4d26d1ba1fa1aa248a8d975278fe430cf3965ae5740390cfc2dcf140483daab70d97dd55c9681c042a77c10daf7e4b405669b531d0968311af8c2a347c56c5d3bea708b9eb298ef6ab18534733e18beab59e359aeb442bf2551528162d9d103a847a4b55b22dc01aae0787c8977c19337c6fa37a88cb67b6995a5b0a32339365eb18ced7d26036ecc57e1c9c4584ff7a1ea5a72deb360745354d90bae26eed4c94847fe5fb8fc2f01fbab6962c7bf36e73fa33fd798f4dcf6107c8efa79d6319785b28b53a43ac05db8f046b5b676798935fd694d380e688892d35c531048a53d3a01f31e7455ee58606c75a356a2c40dfe8a0db02f1a6ee2c44be359cef18370a8f9b3772953434e0e2d83259286fd7c6b3304a19f3d410229b1b30071d087aca552a68bc81a0f002133afc8dd49e1e3db5cc777de67408cd518180fc46943b1cfe07a7cb2de6b12c308592f561d83d4356950bdfaf796450798ada128c82300d1858cddcf87518b0392bb8e2eda62e2f40409b20da01997412dbba66bf0da62b513d1388b6b4a577e974b316f6e9728469b2cc75d705c11ff7c6363eccbc9624e96ce889bd679c894cde0f303b3d9c3348114255134f1e4f14342ee12c125cea7b4d5bf9e366c11365a26c81a857553e6a9c825308bb866d4a080b3167423398c1c664184ec97ca371bae33d23c487ee7f5d6d5b7665393c997edf2146a657c192a8e67c7118d6f3e2f68d037dbfc6d886fe37a7cd90d874d71323e77884a31653d4bfe79ba91e135832ecc9689a74e49069c081c5f0f05b6d6ccffa9aa7d3731706cc51e7ecfe359668a671644bbd0569bbaac400838f342ce12f122c85431b09d3df25351469ece66d879a8c915aa167188437334d5dcbef826a3b76423065aee4cae4dfa6f1dc9f874eb472b8714c44fe6e0bdc3436dafb26df94345a162d059f19420aaded247aaaa398794cb4b1cf1344a1eeaa8f815fbc5aba0a2eb34d3d0d436dc84280f5be5b0f76e2767121b85997bc80e26f4bf4183c4e954742e4501a9987522218efd822849ac05352cc761022239614f7a277fe72315b1674940e659b38152b9ea7cb029690fe1c3e30e300022180e38cae337a7fdd812af3e3a9685f4bfacdc2372e924245aadcb84b4270011eb3d1ac4a94dd359e24cbb0d3901bdba74b84b1e4a088f5d5e4d21e14a2cb4ba97477c70dcbf5e925b79af7a179115db93b4c0235eaf8e896c558ecd41dd7d9bb6c0b776adbd58d9c2e4598bd9dddf1fbb4aa45d9c8ca732123ddca302eb8168b555f2a6cdabddb1100da60c11e8ebc4fcb6365ec039ae75289a33c01c43a186c993eb72adffb3712eefd70b528b9ff9792e59981bbb2583323fa90582e5f591b20e7e6f4d1284c6bc1cee5cb71a4863cd8e12e5edde85230c577456d37499d64c8c55d89e4c9c2e2a54fd1577597c9a45a081ff4dffcf2fe8d7d11dbdd36bd9f31f270b744f3d7d19953513874118adef742e09a2e845129fe70ac7636148d1b45fab0901f97b5c18eb8574514a589a71ae9304a8e60c514d0b6d46e0a69827511db6faeb69e1c5a568811b7921ded7b4b4475b0e3a05ff413c448dcc877bfb104d0aa7ed6b1389880c3d30ae07f5cc602765589c7824463d3c1017e047c89f6504f4ff01dcf9ca758b5b9d924340562514b1acea992fe5fec23f619cf70c195cba459228fa078107386192ae5c1a46d5bb84ebabb2c7ad245fb56c091a48a5df331119b5c08af90283b701751050e050f0af0d85a05a0359243b3c82958531ccc557ec2fa51f52efcd7c2258338e5d405560ef7528af62d180d35b9141b7e0d0d6f88ac664c1fffb895af1edefcd699e0d99d0d14972d61cd48656dda3198822cb58154cbe2a4837dd20ab241647a512a0edd4c7c7618142a1e63f25ae3534fec395d3c93ba9c91448d455876cf4261c1c02847b2b6e19307600294d8f18a2fbdca2ae9f6ddcf143052f35923582f40bcac94cadc0746878e2e3b07ae9aac52fd14db534394884d61d5557175b938ccfef9cfcf24e00cb6117306e41ff28441f320699371d131ab76b9f09b3f1a55f8b7405488091d5b4440b5787dfa99dfa809a38316f8dc39d6f04ef5f50068451056d91487fafee293a3a651e8a2aea74d08633f61ac851cf3fc6efb0bde7193adfda11f9f836ef421a5e26ddc9285576b0bdd687e3c66dc283010e16515ebf68a1286bb94d5c08aecab77072e76fd3761d72c1275b2d6b5e6a78a8f29c837d1b952c84cf3d80bb2fddc3390c683d3d1f70894e3a0e57dfdefb2e3567342c9f086fbcefe1813ee7197e74d8e299326bd02faf71cc23e79f5370c5a4da7f15e6d7c91ba47bf38611d7b24a82ac303bc61bb520730a8e7b7a1fd6564d78a14913a570cf728f4583ef66e8e8a128f2fa2d469c5a9bc6ca65b07c08160bb0696b0d83799ffaf04c4bc2d8d1f81e96729439cd07121bf7338bfbf3f52212b55bdcd3f52fd27cd5d8a93dd3967e103de1dabedeb223df37e0cea3e5365222fdc1ee9973cfe9555d1b74541052f39be4e4403cdbd3628b4313a7f606f4e06ac4d295d9eb0d6fd905a23574dcdfc0f45988163adcce718a7f3ec044dc1c4f718ae445e93d7692f733de32709afcf888ee36e8f72ab80efc6f91cf6344eed9bb91b2f6a4be92ae62af3d049a3eb36169f7c810c3c5a67d4e3f1af794eec850d560b17906b6e7f4e124d34b4cd31b31e44da0d023dfd6fa7a3c765d9adc573e7d4273961de2bdcf1da48e477af769121bced47ba65f9c5e305912dbb8e706a07cc81c9fb4f2bcc279210642ad5a4b4e16da70916660255db2abfbde5c3ac9a5a443e96e120c56d47ef5cd233743963078d8bdcda9af0c0cd7ed3fed1bd52f34f24bbf04b747fec9f05b61a7470a48057dafa089c950bc9757fddd58d60bd022ae3bd52ba43139c1e7f39af1ff9fd346654d06f960f99f529c5d461bcf04fa70a7b265e4bf4a73ef2e42bd909602c0d7c024601a3795278847b36beba93cbfea5113747e2287ac92b8300b241cc9966153a83069a3c299bd054963f6610249f8a806a198aecff25c2e88f02d779d223373d2a7a53c53b64a958e95db75fa7e9133f50e752581ace4847bbad2bbbcfd37d5a04f4379d028748a937eceb79cfd8f6b90565606edb2e3ff1de0851a7970e3b192c85089f1ca71108efeff6ab25cd917498bd6ebd63c4f44e7dae73eb89f28102f96ea1927b70acb5a3ab199dec51bded94f6ac6f79892ec338f561e730bdacc7efb8ae2132bb107f60b92d912db166eb9fa81477ab87692c344f2e3375d0aa68de7c8d40d3a48a002034d0615edaa2daacafa0c828980693b2f19dea786482beef157879e4ffd4c45f562d40582283a2e2bd2a0a321d053a2869b0ff82fd1f435675bfd0682dfa5291fb880d02b9ae80c094d2d64b8cad2e52f2a4d74760fed7b655e3bb7b41ec03dd4744bb9ae02accf3605dac471195454f5c19df7fa06c9de088333d78a1c26b2bf1bdfd977c96d48e18e22b2f8c622234f15eb75408105ffa7ba72c229b9e4dfb4f73e9c63cff10814a81b94e985b3ebbb36ed725a18e0822019a187cb858bbe0f435a40d4e5d4e74d2488c10c6a1a26a905a388eb78cc913395576621c7486ca5aaeb5918a211802506d307619e37b6eb1f97e57375d75af2c705588671bdac440edf5021c7bcb2fd788026f6e18f5ec859a7caefc4428c3a7da2870189c065c6a011df89bfd720ca9c6b5297d5d4478cfe020dc68665de4227aad1188f0c20aec9e296ece1acb2e35533b54564d87db55b9a9806e6868937877e4973e8bc8b5a6ab65a8a792612ed928cea82d00570ab5848e7f875f9c8e61c93b64b6494f8c5683be140cdf630c7bacc846b308274071d958efa21375f7d2ff213b34f41ded6a10337d19e34bf9534e385a162c5416d070fb1adca1e1253818e0da3be365740a5bc3b76dc44b5d33b25e706c6d373f376dd8b77eabd29c7008688e0f43da1f2dc2222cb7e87cf7772c317483e400b1c295fe74edb41f22c08f21bae18969d1b029bf401cd420b29e37c74364fc5ec5c2e5caada97c53fc8fe218f4e995353b701380a6a81b52b836527d5f258935f38b79147e011b2e4d96c256357f3b36cb0b2d59646880d396b96f100e83e698fe53b24490278503abcd45a4bd3bc45b790ffda1bf5523efd73d6d63495032c0e89c0d2cdce04ff9f0fe350ad342318a4c16528f163f9568952009aa02823f94ffd379c051e3132f4f6c7a7221845a0cc5cecb1c3d8a305ae62c9bfe9e9b69e292b47e6b6c0630d1d64cbc8fbd611a6678cf4451007f76a843bfe6da874abfb5af2ea1aba7e78e785746e3abae99855d47b850cad767c3de6530dc9eac2930902a2c2208065b88097ddab0f941af38415d8f55c413a4182f3b69165ae07e3382401010887661d0946692971f6872f5a50e014a2c7f524cd8fc8cfa76a59975728e745c4e645fb5686826c87fd76eebf4f06352710359310e0195677872c9f715c64e2d1c7d867d7d0d1631dfcf59382011fbad23e12a181d14d3481e09d83f96e7a4933e793fcd2a2e9d72afa4e3c83f7220d054a2cc9fa920d7a5f478d210ff364af49186acb9afd029516314adc28e77e170d80edbf94150df06001887be9e47119aac0faa012e5c95fe89140371b2df4a7e5fe211ae2931f3d584483ee3f1c6a60365810eed6e53907d33afe945e4509633938debf57065ce9cdc066530edb89e76fed6ef2ed888a25770675611a520a21fd77b565f1ac51f12c1367d73646090a30a1f2028de12b62fffc3e20b09b99db4a5540860e8a4cdb0553309553e43481b02bfe04fc04d346bfdef05d4b08d08c8942f395d9e7a9805089e03881221645145339790a8a96f94d9c3c89bea9eda15803456b48cc3cfda830d2380bd1aba96f779fafda121b6e2edfe3dd532f9ae3272d2515ea8bc276e0ba366da9a3b2baa40adefe00bacfdff67f7acb3471b5f5deaec299433567aede0b81106eb1fd17470f031916aa3aa7910df9812de9b7d07945a25772225a8ebdfc9f729af85ed420a27bd7e48955bca14a1f8edd35a3d609050503286d72253cd908e94fd71f19e06f62184d06fa774daea6afd99682651dd69e79d976e3c222e491c579920990eb391e87ce505e66b2e24453de747b092af49ce6265e0124f6d01c5e5cd2fdd55955506a6f9ea13c0d467e5af5d86db0376efcf0188e15e66346116fec231f788e2c13d15ca96843316c481b5df02481b5a830eecb3043ae2663a7627175893d0dbd88b9322d8ac8429b7cc1118e173813d9195387b47bb9bc380247fc9c9abfaa18b90a546ccb69c84d1a7c15aab82b748e4bdd0c4d83c62f491a7decd0ca925fe4c07b1baaac4a0fb15920f7dc575a9325a32e2072058c590f786a122e1582a9d94fc2f7b245878e2a8e2ca2e29123ba532ed5e45db92c8476beb7ff34f09e944777a2b64f32766ecdd8543620518f7d9f61f9b58f965b025f05e6bb49d6273c8ec8b95bd48e8b98e7aa03801b5e44d0e49e2c884a19225f1f044563335e87d1a4c31fe19504efbc751878aefd7f90d9d30b12bb16977a11ff0b942d9ee3edfd929535296ce6168babfa6b0f152d24ec6fb8db7d3ca33034bad2d7f89cbf47c1f7263f3a355dfaf26ee26beb54cb63e98f15d68e4e83b99e010d2fbc201192c7837a9f9552a4aca4d9da4a19d08070585fbb7b2b9db3f6dffad8af358215d08b7d5bd21d2756732cbcfb5b8244944a7adf7fcb7bc17b1408bdf897bdfe1023863e5c7d879fc8a9f918cc5b9c8e5dafae62dddaa01693f6e2d6dc596834c7c610b42432c3a5790357a47433d130c6948f11a9ded339d5e440c67e5088aa83f4a5e010bc26ac8bffda4bc2ffe7d1596443661924b08e066a2f820b242f45b2ee96581f135e28529f1facf805c6b9e657a8b11cb4d7bda89690f25d2986d407b762c62f4e5513eeb1a09974804958ae992597ff9a9f31df1953734946b4853a316167912e5e69fa4678981e6d93bf250a218d630e569863e2a956b4248f6e4ab48d8ce11ecdac481a5165adc7d02546cd526185eb01668a39065f82be84055a4cda1c3abf2a60ad0a4f6eb8d976636d0172b2d3473051578a43464f8c01a8162f9b10b058e090dceddd569a8af179ce410073d50d82d6a1466839f9e01617b12448f621d2f64756534f7223d9f50772d64b6c60e030b3499c9b58fb3b4cf565e70770560019186308f04f1ce905d4c6b31ab91fbeaf6b7bec7338989c554a96bb37b26a6b8b97206fc62a984e374bc2abd2496a1fe1c504378e61d41fe00370c2670691e334de9dfa7a761781f7f990725d606988194db9eb72d04073c57126c9124b1f7f24090862045a7aa05d11d75879158fc94ad2e6d3287695e6bdc6ba96ae72eddb3abae65c9130c3f593e880dda1d55c6841e6d9057bb61b26189b54fa8f0004bebd9668fad108a9d9067923793dde79ead2627214e3ebe8e7146d2a1c84909a65a6c5bfe53223faea51e1ec4448c519fd38dfc7ec3ce0e815441bfad2ee4e66366c768e29d578cebe57e4245f45f1b2b29a3dde13e656b83ea86a1100b47c388ae65963440d328a748b673d2fdb1d0551f2206a36ae824f577481e63330f1ecc8a12346a0fc2fb0d736f372eb20da6f69136ea53c0b8b7c17ef6d401d0b94a81fad0d54bf688384f97239fd014e0a993592d2335457102e7b669eef84bce6677177566caf4bf37e6c9c89cf472e666372b23c17a27ba18d32256816d83276dd5acbbcec96b97b8d8b4759e90e78fa3433515fb48e4e41ea0a0b840183286aa0635b077e6c9fc826771cc43686e3a48d67f232e7dd18eb729ac08c909e5bfcaab6987ff02b8fbf2cb28d080105ad98ed0cb8702705290ac1b87d822eb209fb28fcbf70281a46f49e880f07ef23fede0b470e18bd7118ff328e01495a8cc746962e21ad1aead9341daa51c795c593d25cd844ed04b16a9e1644aa2bbf730b552d85a80ad9d481fc39a2fff29870d9a4e8b423f6c4ac7ab1a39f9151dd3286b0a5cd97e1aef6c0ff9c18b8575b9d9cd671a9c5ff906d3e74c611334e42c0b57542cf308e4d834fa3f5023e673fd96cc1eb50a9173f154617ba0567955185f2d63091caf308a38084bd3262b877e1b71041d2f5106c037f4073786efe9c859699369e6cf5230b0bf0cae8c6866717b3426a2066031056b086da226145cde8c396b09f94fd2ca30a6ab3586a2d93f02d2cd4b62ac922385af7d6c08f8b1aa9be3de1e93b776ac9c928fe45d8b020447b75160c578250b09d92283f53d35468c30d8fd38b56570861952625fe35e897b919fa341d12bee116ce12da50867cadc31ef3f2f08e2f4f84cf6e6ae08714cfe4e7cf712f9fddf01f12d77672f0ea0c7698f79966998cffe42a82f0da9353dc450317a01c1553fec63affc1b1c00afdb63ac62be5f3116268abe7a0a9eb9659076473ca61a2e8e9dd1978dc5b8ca0594dd4a625d79e2954128d44c831466427f057f450383a93cfeef17ba1a24ba3d7c3cd2df5599fd040ecc06ec0e7feb57587faaa63dd1487708cfc4ccf27d9a4eb2e9dbaf5d87f73b660654fdab7906bd82fc290c92c2b5cfa69e7bf9cad76cae46454462f42cada2b7c5395b18c204a4919f5bd2deebe42dee15296853f47553e641282b0ad9327c643953754e8f28c394431f06c21d047aa1751a957f5d4ba69628d459ed1efdf31dbeac7e788f2051532e3609deba8a916adeee3cae9884d93438e4d5206750be1824495b6bc2dced849d1ebca83523cb916a40d2e1d3575230a734a23efc55f4090499ecedc56869f699185a1a31dde10f9e564f2c38d77fe22af3eb015fe7cb561d5539c60422745980f02808d1cfcda9a960920f0aad0c451462dc9e6453a78f8762b2b206c62844c0b2badaea526e5658e37fd9b871b966652184f8945029952ef01f6a572922f499926a941d4b5cca31a5172db848a18d5804fa5f8aa3fc6d7b64d71e4963b67a09f2dd519097e5e207cb9f460e6efc6ba930e8ea5a5d9a22b7521b93e3d1cf0095a92ebee6694881f677f02925456c7e0e06b8ca16bc0bf808cfe0c9773cd0a5bd91602145223102185d7781e5b29cccbd1962502b6898a178d77030166f36e9880931083f84e7d40f1664f6debedc1fa63669bba421dc3ecbfa29fc8e7fd4bcd87ed358bc929ef9bbd5d8238d98a4b0ba737faa351714abb9d5cb2baec78718c795d353df6b8c9106e6135615b214f99441c94cc28575c5d545a31fe10ed00c3b605e6e6f60870c97b47595c8f751555f358437190578649480c6e5912504b4ef1d88e8b06527c8bd19f5e97f4e6bdf902340e34559fed5f8f5056715205bc98b2d0684ca42c2872520fbfdbeef80884d213063dcafbb57c74f5286c576ef35bd473c12114d6d6c4517a6707466bbb4759ed7bf344e79b4cf60b48644b0b738808ad771adb84f3e517ff4c67a8e21b48a102e4e69ba513b1460a13437d2b7d3d51f1cc9446cd95ea62c0b6a024214d8647f10250ac707f994dbef2eede2d0aae86b6c488e4159e47e17f065daece86cefd103e4cd9b44e97231001338551f5c9d4398c09081c3c25b9080adb9ed16eeb08222996875d189b9994f6692b16c3843996a49848881156036a1f203137150dc24bab079e310239b0ef47c1b02ca39d0a2bc9c2019362a34b01b6c206ac549f196b55a30d40078b20079ddc94f78fde6e52ccc3d0b8061c1355f62ea18499c10eb1c33b445cef47d2040cbd7e9bade2e067e49b1a7f0b584ebf9ad5eb55511038912411b9aa09ee6629c212b99f4a96b11e231685483b2fe5e742ecb01d85763f003fe6643dfcf0ae6e048bb21e24cd832811bd7d39fa34350fcc4520fb5f4c6102921f42c03ab231fab13f7b86cf7dcf2ba89fb02c2b688f2878504e77a41df0896778d535f6aba95fb2284be96b6b600a251692b70eeab7c4ed76b45d5211d1a5f4baa2c3979e85b3f952fcddfc48d6776c6bda3e4e3b66cc5af8ad24ff11feffe0b1b28e18c1686d0cac8cf010ac25e0fb6c031ba572c80a44cbfae5a28405accf3a11a8c8eca81a2d649ca29576139ea068ccccd91cff87cb453ee7db918845c3fa5309577dd0e09d44f4fbfab9bd816f0cb841f9f99eb3771582b2eac3bb5e77b60aa12c261ed09fdafdaa087812a7b6f28f2806982e5fc587b1bee801e93e09ba516f6c4e06061a0345b50610569ce360db558edfac880e441da8fbbef0f0890c44b22a9dad9f1236ffb71b99a1d897e56c38d80209f58f5ef8f8868ac0a153658522ad3f6e7c63ec80b802e55e82650fd55d9ae4a99a971bdc819e0cdf4e3cfab93fc61b59d0549dc3847a68cc85ee6aec066ff7e5db25d144423be0e8c4ff4609ad9d90af86071de6a310d180fb5f544ecc75cb89918b1410e1f4aa07ee7adfa29d77a06774d997abd629a2e1de83edd852d5fb56e5cec805b541487f70923735514d5ead5a2d02f8276acdab14e3b62f100ff281fce0b14b5d7fdc249dde0c77a048425db94097578ddedc6dc1b1df391f57013272eee7ede9452ae1ad76c7a29974988c71f9ec77178aef0bf07f5da22462b006a254e55d94c792345475b8f32c35950038d535a9b2387b3c88e84159435ba48ec205f1ed073fc0ad9710962ae957bbb3d764856477b9800c95b8911021f483cecf6556563aae1773045ff60dc8cf275444fd4ec18ae2a15cdb4816bffac055bf45ea3235d46fb5be2924d3e50a6e07c57c88e1ff8e00535dc0033f21c95251cdaa06a189295de65e683e52fe262af39e3da05600a493331980512e3575c1d659ea2faf37c28ac5321190272cc2ca2fa9835c46cbf77b74eab3647abe1c9844387f00e18672dde4b2d37de641bf01d664de7f9408e7f7130129a1ffc46655b0326ec7efa303faac677c5c82985a4db88292ebd687ad15a2e006975f11e8f11984100c1f1e6c516f6d03680e8d5630746a8c8528b9a67a32e045cc6cb5971e8f5eaed0c06c984bfbf7ea1d870338937cb622fab6351ea21aac75ced083532dd766e99d7463c3d2e5cbed1410dc926013b6a803fd35b0f51dc4d346af9174d5ac34f7a043c05ec198c2fdab9a8466ae18ebd02166163a61b3fcb10ae6bc73463fd4ab66fba48bf4ad4a922a5b678a064e8cdfea0bdc5a4422fa2c62cf229e3ab04754fd0f13230510e4462ccb772aa02c04ad6058ab83e34ebb32ff18a6d9fb88016187dd744ee9d8a6c97139a7539cb57178f39b4f98ba300ed95e576f798cac6ce0885814b000edb9197110729097b3278a1c11b51f531717048f7a6922662164c9791ba31b4ddfdc153f0e549522bd2ba6ba5a70048014ce5c922ec2bf8029ba156747b5ded9c1df5aaca150fdf3e7b94e9a4535e5201d7e97dc7e6e879383b2acacdc429993232972af816916e584bfd6d3785ff5ceb3460aa1c9a40ec25c841d120826a612a33350765d28be0b6d5f44e9cb6b6d153b9b93ed2c606e276ede29d45fa2131a2c0b23b9341c4e83607103ce2c7d8b175fc4d0cb1cdf77f1fd60206533d92bcd2bd27028815698b6b7fe67425bda23c6605da4e2be25f9fdff1f07eedf548dddc53e8610dbe9f33c30c6002d426cc1066fd50c52fd7a112c5e2296da927ed3335b19358c2c70599ceebbb9db6241566ea4ef4ac3ffe895d384e801fa0229cfd480c0e2e0d7888f82e684ce56990c7c71b24558e7debf8514ace195fe6f084f05dca4e6dd6e516747bbfb8c2f7ca3442cbdc0adddf3128ff0faf01e66a73378ee36cc3859baf108cad2afe774bd7f9a236d215a3d1a38a3608df02515e5a6ae4487527023da1150fbc463d8b73d3f31a2c67c68ba984b9bd89a2bfa2e25c10db38ee1110d375e38a78a8d9249f5250693e8b896a129acecea76e48bf4e3c9700d333e2ed7d9095a4fced8851d739770fb6e105ca4c97d6dfee9cf16b457660b8baabc50297b4876288aa230f9739fc276d7943faf882529486c949c13e823928b1ec6bde649d3138dae7fc2dbff6c7955f0a97ec495d0447b214f2f4005f2f2a87559017df6672b77e4b48ec78ecffd410d85031524edf3e00f130ccc88a59d178c87cd050b46e4d29fbd4e57f1bff48c76b4abd194ae7ccaf162854579765c973ff52856f9b560bc9dc734c91cd51f834a96de6e868b4c8f2cb7bdd06080bc765a5ded54917d9afa9a36ce6985d1cd6ed2de735407bf1c89ecfc314e6643066b970d9632c36c4f498721b6886513db261f14ea332fca26c0211414d8ff24c63eae675e5caad1fd43bad117612a22424d9b14ed7ecfed68391d5275a064eae498975fb044df02f103b74601a043293c9f238e2cb8c0b1fa18db00417adb42505efc00e35af7d95dc3dbb28572bd75f1f81f8482988f60710a9ada0697a23d337013e748cceb338f17f3fbaf4560f8b9ee09ce6942f28a54a13c90954374cdbec806c68ee8d8702294fc3d45a28cc9ed1dc899c4fd7a82a2a3154765ad9b4b823857e3694329f653e9aa4657ceaca2459747e4f23573df64702c19d2fa23f453469c9696edc8ae5bcf0519a71ee161cb04c70139b4a6fb54f4ba902640eb67c9f36bce265f6e85d950566cd7217f875a6d591a76502c7790dea22f761b4a2940682c8d20ed5fed514604296f0f17bcb0b740aa2a92e6b55d07dce94701902176c40f676ce45d59ba1454f0ab24f6490e4fe200cffb8b5d003b6aa81084cb1cb2a0800714a482c41501049424d9879c668b42c079fa83d99dda3cc77d20354a7cf7d3abd050fb2b21aba09a3b158bc820bf2561d6b3cad8310577998f581abfe67e2ba3e9fb740e108108bd61d4cb02680c30af6b2c5bcf923a03e0832756f365b211d56257fbf3583efe6c28ddf4250c649f4a3280547386aa015690183b42390f7f3c7b51cfe391c7da4a2479182ff24f85267b272c40e6a194276d8a526d6345a6657b316dec5cf566ae9f56c2c2146bb80a2682c4f5d3c7ca75afe97b18335f1bf0d30f939d6420a6211dfebfa414a90f1128232c16fe1cebd3f3ebc54a5b21a8158cc3998c6880e2e2a985503f59cfdb2b62961f69f4ee32cbd815d3ef9b25661c009fdbd459b09c65006c1721c1c1fd9dc79a24798c312a58c915ba59fa7185e4ef95358f87e917cf7ac5017de2846a7dd40a3b1656f00e6c97bd19bb898e7c5ddda6e861dbc71c7cd52448a9db17683754edacd31fca7c6ce6a487adc35b3d0ebba142ed25a9347ac1e9da9eb387500b78687c878ba861af65be97ab702b708feaa57e5d7bf90f0b47dfd17b4ade328c3d914bcdb2258502db697a9620dea4108bf13ede9ffe0127f853eb03dace3b2225515f84db516426fdcc95313307e0d117dcda2184f47cf8f215c21a06426a8938dc8b4f3ccbe7511e7d8ea57059e8a856167ddcd18c415bb4fc244b7d23b65061716e15d15986a9a6c3eafd31de3e7e9689b74788238566baeae54529137a5b0f5f55823f81bacc5e07dbab19b9bad23d70c3a0a83aaadcf6708959efdba2622f869c85cbba4d4b8a24b9015c7a5734a9811da7f20e47bb117e7bfe00d2e16f71d511d05b49e02ad2bd7fb99741e3cb594b8f22b1571eaf7bc3d04ebc7ae164df762a5b8ed94062ffcfd16e3e33e0d07311005a96835e9c50ba27861c204673c3a96ee2dc5f9b6085122a218d021b118dd0989da804f4180a72ef8aba3116a4de828762d1e64283dcee70b414922e6fcb3ae0ba3e7dfbed0193355e5d950052ef0cc7a04a3fdea1ac188772d2ec6a6053ca74880ce0689cc43e20ae1a49d9ae8783d8a2d0c40b83c7104a85d8195c6d0643f45f3fd5c8d533b8634707f98e3b34a28333f9a72464f31c377f868c7bb5913d719caaf6990179fd569b776ace50f2411363dc70a476857e18d251336d69cc95902204b51bb8c7bdc542d0de8299f6befc0599abdd5dccf117581e67874e66d609d430f8984bf0544174e6cf6497c3e0da30e9f010b14ac028cb263d4b3ee6fbce1ca1cc243bc2b67d8ff0a7d21b903eacbfc6bcaf81c1effa4e75fde0a7f8289167bdaf77bf3e743a97065741cffd598ad11fc590cb0a5890e2ebbfa20a0e26b1a7624d1c439b4453b132e8acad1feabb499bc21f05c4a91bf2dc713d7d49c6ebd06ec062e413bcd6a711789385d0101a4f6ddd1e97c8af08c833c6f62abf8b3b5b5da8a1f48d1a6d67032f2f7c59743dcd3b30645e7c55ec152dd234ce02257ac5f3a5247c0a5cec84eb20d6886877cdf212131a2be63ba26d9f587a3b069e4511fe10c8b5e8f4b1b38134a1f5560999b369206d429ae70cc8d305a9d6475e8e421bf9a98ef8e33d503274bde3bfc8d54536263fdc74d1c403ee1d8119514efce299c3882a5d0496d78e6a15c56672ffa412756aa524e4815de55f041285be0a7f64f85f5f3fc92b6a4e6c52e36dd65610713f5d3e853032fa0c1f98e23ee95328fe0f943750cd5952def18fd9dccdec8be0fa58bcc9e27f642cd58040402a06f48e5486721be0117682627d1677ea7a5c61f56d2777c2ff0428af97f46f45e67b0028ba032a7bffe505f3145ee2da088ec9905ffc2ec760ad39d6e85ce856935b2a41cd8ff4c83553fb7980491dbd827239d6f9ac498cbc12b9773fea5546fab40eb264f1a5a77b938d5b3fc145d9f118a053051b41ad974b74cd82a3a5d707ac26c9d8b9ad516b22e0ee2288af7efeda4f75f221eb54385598a82da103b3b1edbe1fdaa82296e69cfffe40b04afdbed2a2cd890c8489b88e2941189329fe5f2264678235f5cad34462498e205af59c5faffc6a1d89ffa03d0c4c4238fd609a7d5fc8430bf2e2b281f81b6d167a7747a40c2ae806637de8089d9949e87e8f9c3443e3f18994515d5bcd741ea0f6ae3d09a742d872e019eb7bd9bebf0b08b31fff86c7af40a9a62e023745ae2172107bb8a46c4e7d80df4b88188b9f9fd94c379c3471e679c00be74897baa5d3db4633215a63c1388d9eba02534cb9b6fa6b994ca49f87ad700dd422acae883fb65859764ead112706f84620fc230bf566500b534917c90a695a2f2a70a1e5c6adbfe23050de09c25aeb40016aeea0178dd5f47b8ea034f553622e208bde891c7f6c5488995768f7f470a622ce7ec5681d3e4e92c255618289fef06452b03dc72df12cff04383ea693ebc4e9bd31054b283b35e71412ebfe918e587e59c246a48a4b2cd6516e7324757a041e4b18c0b58c4877d1a11345667832d4979215d1630a0a4f97781f8cb95176ca6cac3dd0afb6b848288f22d5edec0c5afdfe274906ecc48f8a0fd35f2226a3ffe575c916d7ad0931ca38cf5c7a37b718a3ef31a466af252741bf174f0fcee00d7b610099df735dee186d991627fa50e79ed59a8daedbf60f0dc791a8a66e641888a765340db32fb376b91215c3c3d51da9a20773de15f6098691a55afeb0c4c847e77ed7babca2aacec64d625172a24aa2b9a47249876233065930c3a5cc624a589ffc9ad3d7fd200dc62c168765542d0b6f8d41179481962edc006b1b62faf44036490d5bdf3607a5ec601a50816c7a8a19733ac4e193b5612202bf552562b6e792c080e730a1c90a012d9b4b00602e69b2e5e69fadf43444504a653b58c7821845123320eb1b9b35f73c34491601a21606e07f4c735d40458c7fa02915eef1043e90b2457c5967249d24c1d2626925a474791443e3872d10f34450726940b7bf186cfca6801a9858575759a133d0a14942df3f4e29a82b1b9ca181d83fb6d1c2f2246d2af175ba55edaa672497f6a5de77f7990f8379841bae932e161be02767d4a7c2caa188da2566b7fdfd3e134c62534f587726d7108d8341c057a09ec370a9e41d1410261dd6f4a57b8332689b774837e750781b082fdf7a23bbf1500881c9d927a98164b8f7f440654251ec62e3902e9db592bf3e83307cc3d9d8830da110583cbf721eed1ff756c576a5b20d114d000d951bf53d53e8258b38c16bbfbd8701c39f54c30c66ddc2d09486f99c8e3434e5336b345b27dd1921d482b385259d44ad289c11e8ea07ab92c28b0bc78cd6b4bda802f91bd1bf70efa0fc69f80ded55664a20943c4c91c94b5a4e5c35626acdae605226bfe29ff92bfe7e189a0e9a6a608cc8fcd7309bcfd66bfc8aff0930e10e99d0ceba3280350248064ca5a235b5d0878bb631c1aa35d438bb34cca1607e3ee75f575a5cfb80344b451bbbab38e71969bd482c2a150b98b7d9c073eaaeaefcb305316e3ff81d06c77f73a7ec0b39db73ae65891e7c96d412d3909ccb57a757b7f0a22b7e6e0f04f034367f8ea03a987b99be5c505ad9c42a213e8bcfc23af083cf5ef0013bf94ef09971139d98ee736be2f672fc9f482a0fdfcf4ca3b2adf0fc76d99a7204765c62e43d1489fff187c0a450335d5f4cc9893b12749a05d2c9d7d8a18dc12f95c2d9640945a692b2f60c92ecfb3489583093bb79de29068983224a3041a1e4728457715dd3ac99f5f57420b75948b9b07dda4c3c586b4b0f30bc19e87c08221c83d61f6638374f31b532095dc6e012298842288a829d29b4dbd87645edb3e2302ac3d0c60c48d97a311417e1c74b2d764761841012a3b2de247ea771d29f51f62b7d8985ddc2d10abffb44ad665810de9802183057824682820a8fb7ef910ecb24db1e1760ee5e9a4e5d2c39f0de405c85a46c9104e4b36421ab8492b98f822f4aa32fd65af7db1a3bc4c39fe536dd8afef900015497e8d72ae57951fd6544d4dd14ef6e366f118aba4d6dbec6bcc9e29f673bbdfc0e32c939107188e2228d60f95dbf0974c9fde4e22a55b72351ed24628a2ca0e9de0d48bdd643ca3398bce26b239c3e33dc2d7b922020f1ffdc7dfe56b021cf40428ae609b9b96451dfed1cceff541b8a66a524710aeaed1ac45c3a735b07da19983695e58bee180ed29b1fa7fe97c6b087571cae5494932477831126c39b7432e2a3dc6bf3080afb9055e4761fcc89e9422f81148064bf3be77f6cfc5271330d46759642ef405c55fd82dac0d9bb4b9dffa7bf8ea5f23e57080128d726c1f6288f0088394d363edd3e3998bc920fc65b0cf66537eb6788625473ae4b920ded6aa97e80993097565b411f21272898ff4d17bf24a4100dcce847ad789e9d94576828ccdc999116d07e336275cb6c69d530b662fe2de6283922e2ab476781927af8c2b992adbcb27d0b07ba5abda3c49c1cdfd2e697d22e90182c5f29572d54635ad0ec259bcf4bd104f67d91ed04d3273670fc559b4f3d5c61ac869ac8c4196e45d24f289d3e8a9e9ff9c8e7b23c30b7e4a8bf8e9069ec6d9df19d57ba1cc9b56ee812281b5215e44951aedc1fec44a24fac789c9e436c71860ad9ae954070d768593c2de5a5191505007ec5802a71c0b50318499d91f3b9d40e3165a9ef97b34610c9283ea71f9da44d19a72afc06dda71acb8d191e7e9cb0968080921a6617151a5df76b1c32983f445735d7e014c04ec23440bb48dbf3b33eb088e4699077122984d9f59c54f9493479aa26470096acad35fea07f0ca8b927f31143b71e278714828334124a99562faf688415f0bf38f4449a25caf352da7813a2c692fdb34355b326593eabe7788dac97972307574c94588ae841525cfed8ce42f7bc605316897d169b334d389a694c309dbe6eec94ec5d1be19416275ff64253dfadf587fbf4cfeacdd9f7e6db224628852531502a40426bba82fb292a026a6ab90ee66b69fa33423c6c6ccb4cdcf1af700ee468f3398b6bb463760d3a31a75c843faa48d8a76d8545fbbbb7cdfd1cb43b212366bd637f6ecc9ff528833c63b658d2ab669628ac4ee7eaedfafdb0ee15107cdad7c7aede00fe356ff961e1b83db30db83e08504a560d70f6216e65dc4a9d2d61748fee2a1203353f6b7361314d086c4277b1141f073d1afd70244fae5673bb6397505b80ad1846561100019119dc1e7757c60f5e1cf446f3ceb3e493512c9e9ec31112fec4f321b8a34c89b3344c831d9a90ff07ebdba97a1dc36148ec83c268b10591bed13f134a5f53c878df6eb44acaa546eb38c5ca1b37e84447a438090eb4bb3f604ab77ff120830dc1fc2cfbe393c86a34c33a84cc0d27d0109a96c5f97fe4e21d32245a025622af79b74356f1b151958ed65a88c6a33a8c7e3bd842b19b682677425daefd1bdd87b92debf8bf642815d49a92d9add80ac427341d3a9e052d1d6971a217a029d771edb237c9d499a5dd4ef4c74e07455707d655945fa9d829ba36d69149405b53cf147babe1ae2f3803891c7913ff9daca7096b99d4a4f96555c12e4c887dfca3050ec196115aff4340ad545b287f5b2f3c8e25f4b48617022a7187462e3e29a0fef2b9d45ad195807377530ce0959aa3211f9b198a7388bcd9adc7b428fedf4ba685e72b7331c70f1eb5507c642c765ff61b024ed798cd3ee8e6246f7a6d9fb96dac9b1847bb859fe755d0d02e0d50821c4da0c890d7c7143c2cbeb2b75ea96dcafebe1075a6a62d190c8fa28e3ac4e03cb81d889d3ee764a456e223890545b4b6612c60cfc37e6f207d32a328954092c184ad595c55df5f4ec0c2062f859a6d2db43395dbef807210029fe974d27af259f0beb11b36aae5508d94b9face01cbb18b1515555548c61ff8145e3dc33e3677532859a178e40c20846219cfd0de5ac6008ad8ab7fb86327a1770123ea4e68d435fe9da6eccb101c7611a1a8f36489778ba4807f3d1d9025945f15196251c0ea7288ab56246ba9043859c013eadb6dd0efa6ec2953742ebdbdda7ce71403cb786e07e9d2cebbf87b2ab41eb1ce3f55613a953933fd4a4cb3f0fb07a9412bc801593bc3aee2c9068952873cb89256fcc2cc9c9cdb42d93a73069cbe4e5309f84c84df107498213e1b02052b72bc94d4097aa0d9941845308a8feea81a07374fe5c78b562035127982108ce1bc756b0055b37b2f855237402a14cc0624e3382d9bf5ad8aa3a48ff7f0a2850d88ead9ec47c4ce7308672c76aae4d360d9fc363f005e8d9e61e4bc04fe8403185bf75b8f841f66c02c012bff047ac760770f98adec648afdb23d692a2911a182cf27905834bb8e843463ca9b5666c1e893e27810fb250c6864500a9050a968ab12052fdd867de9041699b20661d5297393003a6c0a29ce0b37edfc8938bfbf7d66b42d102ab98f54fd7a00970d9d8a5f35bd9da4be26807f60c0166d086d9b949fe525aad5b99a9ac87f3729e3dda472078c306afddce95307ccd271cd9d7fd8a8115d03c1606007885fab4491336a7aeca6f5a272f30441c9b2a2d1f7c50ab2fe0805372ad1f63406868b866a75bbb89d0492b40df0be9136d22e50da2b108033d28fdfd22cd1ce3a55fa96e3060f72259f6fe3813b5555542d8f112fc0821e6cd8301d7d608744d537da4f18b860bf640a932fc5357d091a27c7f59086b2f1e469e5e076001bfcb8833a4844360d8d8e5a1db5945acae4f60c0eb1ff8d9e1767869ea709354bf07b2c8eaa4c0c7b82a95ab49bec7504a54871ae7f5f795d17d8fd65ea07b7c9e7e74516173533b36812134b0d93e85fc9e45586a3fa97dea4abde988945dc627a7c562a57aa324b88f99f04828dfcc96c942672d0f98d85d56b3491621cb46ae9ec7948d177d14261e0572beca749bb8894832c4cef8c627035165910eb3301699e5317011056b711204276f4f029424514dc6ccd4f1c09db3b0541919073ffd72cd1c3b10b578eba63dd16843a3e371fbad84e15f1714782439b732cf3f99f0ce5bc645ca11b7a332b36494f9e02ce191d964cd5915a40842689e07b7c1934cc4c204ed7328cf9694a4d60f0f572f3e44baf55b350b2a9cf51e518f0985c783c97767e76beb235d968ce88685fbf2cde4418cd24316d31e247caf67c37025a1d31af8fd86ccbdea28116bc88c010e8157cc877689d2f4bce1c452a5f518a3f623800d6de06e56af3648a9dda3e5d710f5d35a61ee076e836fc9305145c5226d2ff8896ba7b115886353d3c1ec54cfdc5c39c22dea951dd7da2b422aed841272e8dc47f8c5d265451ebe6f256832d7c9d7e1faeab8ea8f377e142bcaac48634fe1dcccdce610d6c97d32ae0ae6cf8264ad3ab16698616ef971fa7d34c2562228c9c69c4a5e1a4a4e70b2eb12db765f865fbb72f286d5103a8d5947e4c86044dc52efa683d5d309fd4087eb85c5e11845fa3cc37cd83227fd710d9f559737a6db3aa20a68ef5582b8510478b77a2afdda96bdf7493edeead18f3783f8dfda86ffd19484341f1bde897c1da9eb586518299677d11d633d0318933208e5c395a5b693bf659e33a155a368886a08e4fb97526a1c584f6c03c58e599dfaf1cc159a2a802ee325adedb0b9e2bba81980abf05e094330f5966402bd5843b266031a165d01422b5438f96b0d8407e72c306c5e5bab3391637d7444138648ac1c2ab9483bf4d77d0fa25a254d6b33a4445553c9406e0ab68762d6a8d7340a3d9d0544f815c3b578e1418940b9f44cdee7a50393cc3f5f9b5cb636fb22a31dc7dc2d4ffa005a012b276062bb9db06f03164101885c53f3ac22dd92a9abce55836b4da54b7c5f413139c33cfd787e2ef8c22f6300292fd032106d49253511da930e096f991e0e1e11a3604a35e3812b30612239d349ee519819bfb5579452fb7f11b3d220112c5f1101e83232906a60f80a7000b51b1a0e4d2e8db03a3458406e7878928d66a334a1e74de5882d402728a3db8a23b734abdd37364c5a27a1b4271ef3638690f72f532dde896b55e5ed3fc5db9fa6bd4f307c8bc6ba591bd051b42d1860b783bfc43370c97cdc6314500c1e3371cabdd201e6e902669ece8e7762769beb76fd701df32268469b479172f9385a997dda24a0974dcb3f842027bee9d5da789739be2aa531c6ec4e45387e6adf74aa94b885d0dfaa591573c260f9cc4e40ef2b234b679fec9b725a12a1d349cd7996d19c63b03ec68242df1d6043a8c4d4482e021c88d5380e552c077b432ac02d925e11937833b7635ddde8a50913bdb9ef8db0316ecd0ab23b0e22efde0bbcc928ca1e29bdf44de7030f520fd37a3caf65ce1efd47efc6bbdf0e1f9fb475aca0e3a727722efe813e58c802ca79f9a29282dcfe8e7074048a757566485f17686dd18b0657ea725bc88bef2e10274a0e2969955056be360a8f787530dc8ae198951ea9367d387370db14fcccb5249b8ffa5d120f12e9a3d5a67e5bef8c2aedc8903db64503ad38db79d712855f29adfb03e6050673244bb39d484e123c8e422864c27b9df3f9b1b92eb74ada5ce19b4134e98cdfc2fbb0c03c1ac179301bf44b8cdcf7669649acf2a1fd2e340e84a2513461153110e9dbd72d5e5bf28e82c2d1ae85d86849cde3ceb22c23559d6754bf79b3337066f1e2b1a589bcbb7cdf5203344b8697ed043beb8c06619cd42e3bd6647d54bea24ad54baba4b93ee555faa6d4d0729265ebe9ed629832753696b02ac46e664a2b4622e8a0d49d0e8f623e317b1a9479d9475105870c420709d54f00a1a2d5836d946df888609de717cb9967de438b34139aefc9e0f9a2370c38120d348138852026295df0008a54287e7f6409d9dde6f0585f63b619e94c2d6f0c4a5d9814b3ed29fd9617834d1d00aaedc3357347bd02579da02278f7bc662898116dacdc47f9f818d6e92f43597ce7bcf78d1018221b8c6e44e04d6564b093b2068dcb4f925f4a0fcce13b48119edb44ca08ef77eee5491484001a1a7c8026c3aa774693e3a0f02acb46505a347578909cc5648507881de9134098bb89495b731cebcaf452a6336d1a11652814f501b299fb3cccb203c605cda6ed46031a0fc11efd0096814174f9bdb591beb5df0f5a0e77577fc0a760f2908622bc61b15bc369952f4f3bf869fb70083cadb49a2d3457a2fdae94493965ced7f045f6a79c7cdd1e73299b3bd4fbc818f117ba7a5b43ab0b7b91bbcec8bb04b4083b7ea673f91ffb82c414c01bf62049bdb774a8e45bc51aab24b724d7ca12686f2ba5e0be2521bf258e6ee46b6bb2d69cda0d1c495827fe5edf6e377c5a3bd13cd83efa8a9325046bb3c70b86ac7eadf55dc6f031e33590de5c1569f4029b51256f4e913bb9af76a703d9536501b12874ee2c8da169db40837e0d1edbcc1098dc1995f35a45a86954ae71fd2bb7f240f2c59622d1fba36828cf2d6ff49e0c7f6ec9b548cea7b91077ec6335256af05cabe38dcb332ad84698c0c8e63520f8a9fa7bbb9aae9a98a7f5d15feb25ea2c12e8394dd78f0391072e0d4fb20869d6e418ba18fb5014735c3268875a0bc0fd654822f655d316e389249f1042e950d8d7964ff36e615891e1cdf15b6ffe20d037cc27bf793ee771485c43076f9b9d2f2462b461f0a5b3794d73f50f56582fd588647e7f52478e1434abe2505e21324d68d8bf2bb0476e3aec5b21c4c9c0b281579a398456afbad8ca4582241bed1f0fc95fdb1e649eab705bb5ee09a2402bce10017fd4d965910e59bbec8b8552c3f4d8b6ee29a62d8358b1344719db01e1139e741ca412a4eb6c3f988a12ce430801b00792e456d0c7ce32a695edca5415effa36355977fe5e136ce326a839c5ba212662d48b89d5cf13de01661899e354be1c82b628f4043cb4fed9d0d592002ed80966a0436b6576c5d1b25097dea4108a9901acbabedb804e56ca7786d0b8eee6b4cc658e2924332034457f67b0c8dd5865b71a5015a2cdb8b28ccbcec6887070da905fe639e6b6762c8c830a23a4f243d29b3c2642dceeced3edd3286386f5c3fb125b96c5dbfca9a98697253dfd4bb3b22b5b1846320704d93c48f8cf06938f7cbf38c61e4c0d67aa98a73571a518cf80e3fa135cb4ce51f4e591de5f8b92a12443656615cc3a1f2757a8cd93d801940dd3bc64989cb2b24594489602d0a69aecc649476847917b279313edb4e1aa7ca217a27929559363ee3f4fb335f8840bff7f060d72dd46566b50e74498915911e8ffcf0d73a3fd7afe0a469add4cf9fc3bd1ed7b4bc30b7eb2fa4904cdcb879ab82dab0e197e65efb876d4feac3a3035bfa6c6e41abd793917093979b697e371578b01fe221c206dad36b4e4cda7950f4ef8d094407cb8441057a069308c6acd893a056001f83623503f556a3b9d462f9bfefbbc3f3e4d1f0ffed2e90c257f3cf18e394032da051001bdb5589756e60a9f3d4871625467547738a239a57b6859ef3e6f68eba2b2b2161c195371633144bf6fc96e364149ecffb0b8ab1b94150b93202c1c389fa1d5ce0804632180bdf7f9adcaf7710895c52347de4388f29d49186b21f93341aff51e89cdc82ee7507479266e9209a4f513f3e7323c7b32fc666c56d7f82a49700358cc73ade7af471b0f663df2407347a1e3f5a935eb43ad35f6a02de279a950aca2276d7ff97430c55c25ce94a71217614e0d1767255b874e51388b72d2ab3b0aac78550b79066756a561016e28670da72ce19e05d0cd0fe9802e070403bc2fd80d9ef1ea2a581acaef77deda0078673273a8e9bee846552ec9ec561e108ce8f237b8e5c4f8d84d0774d7d3bbb4ac18a9e5a343d6f1bebdc1bef6ee0bda171be0d14f1cd97efa43aebe3e66410b9ba8b55e656a32b6504d03825bdf0d26b7ec5acd040a248e8a87dbeab4c096351d2a2ec9b3280c3a7f8ba0411fd78589cf22d601d359bdb880114ec7742f320240e2fffbcb2bcbe5cf5ef9aa9371e29c03fefd830188fdb54b5c67481369960d748216c8c3dc6bfb4205f4789122a1e37e102b87edb76c0c61a179ee4d9b05f25b0a200d5901960107cd1756d401ca1b44264ea433c7a82c862351d201997fc5a939ca864ae9c3b8796ad57b881c986bff6b645fef7abdf3df34d459aa48e5ad881fb618ad899ef650fb0b9f1342a22343d0d56f31068547991379f1909171f95b9c7309d9e6ddaa6e8418640773a5fc2d98822a8228612c35ccc474a58de7c9be56c3b75f939397fa9569cf5d48da06e3ad0eb68c6d1d7da9877113e610f8f882ccb07ef7730d9d650fcf5028a780c0dee918cc3077b606d48c2ace778fe5d0b8feb8a6d7b45f2c51707957c52f0f0cd6a90310ce97056a297e80a9ed276446d96715e55845ee91b04834f1ecb86e7ac24f093daf7d70a9016c2c4a0682a53055324f88e8e4da8da4ad560c5611f6dfff3c1bd87f10efbc4c3868f8c7406bec3aa2831067e2bf2ba82b797f5d542b3edcb03a6b477f31ec0e63ab0e7776e55a6f7c6c32e9be39aa5a676145249328bf2c0919ec3d4584277bacbed98d49f8b46f6d5a77c1f02d139e81fce28e01b6d5d5fc1a35cd0e237d3e726b96cf5bf8c4b04255fe8d117b949528580e5f112c8d151a11ae893b68730d0d6219306577ef3ae7f546fb344725c3b443899c9adf9c8571770199fb358dea7edb4213e39119091246994bbbb3b2d88376d7df66a860b8c565860cc26b7a26049938eb4202f0884c9addaa451db29beff7e692c406e3bfb67237665290835647ae336cd79b35419870d4bc96895f4e58a725bb4f4c24c8abfb8d4471e6dc41ed742da2e24cd016e4562f40eccfee43dc602f76c29f8042d17513a19ff166e5986001e4c2addb246840366e44ab184bce371025b30bf816c0af32c8c6b0dc9648abc097cb1649b7e9861374d28741363dd0be6c915a3b03d2c0c70b4acb95e13177c87a2a4da08c6b8a87ffeaeb9036020f632fc7c03d727913d916b1e9a2884bc63ea68db0fd4b073b85b8b7c6b7a018abb176c327f0cbb07985fc5b0de19bd300f6506c01ef21469f56ea155dfd47720ffec9b9559bb5679116d9473539615c2ed9098b5c1e8b8609c5b5595761f6831e3aa763ce823402df292fe5deaf670bc21e70bc1514f5218474c7f89da9d4ec0fd704072a0da08e8556921c46906494b204b94369d54d462446e274e0046b16e26001774ee454521a2d0c62c418888a2b67fb56d3c3a0e733e7302fa1e4322480540028d9a2193c9ff6c29794aaf357828acdbbd08d6996b6b0efe2d8b74121c0dbb947322fdef5a7c24c99049a4ec18d3dd8345e0121a8e2d7add59fbeb734f771e1c8b17bd5f2d73a24f0351052aa11f84f43def6ac9a399f4e547106f2c50eabb61ea4419e34945d68452ce61652596f385dd4d725879d33c9bc11dfa5714af09fb491a1bbe35337253d6e4bdfbd292e47a0ae04e1c8891198c5f173b5b4fbd212a3c9ba50e70616edd6cea12ea5375f268600a388d2662d22ed63515c64671434e50dce9b29bad85a0684dcc57ff211e314afefd14da7db5cd51611e0671714fe403eaef7f8fffb7aa6ee74cf1a0534a883215802da40b9383b3ad21e947254d17a3cf12c8c62ec6de36c56712e18bc10f0df136cf64bd4248c13d9deff821e5e07a568331ec69b94860b7e6c09767adfdb9dea92fac931a0d9bb2436fdd1ce7b9feffc5dc784b5b82cb94047794bba0550645f6cf956979e906e57b85e446c5dac3af2fdba16bbc272df3f3bda4250cb14ac14edb86a23f576606e0d9586f140c74746df50d4daf5bca3e5798e3accb97eaf078d5e9f4527f666fbf30acef0f071ae100c20df74b5c9186c9bc9ba3976836cd4d9941d61b96bd529dcd322d14666972b90b506d6b27000655a0463c93d171ed3ba72d7e08488742aea5f8702425e48d42884c7a2e2f8b72fc50722ac0d800f9c3c339cf083612f75e621af167b2ffc295dedeee771e7656332098378974fd11fce592b51282300ecc334c2aa68eab1882fdcb8e6dad504f621d2eeb38b4b7060d76fbb49e6b5d8a4a737813d07ddb5b2ec22b5ffc8589da67607d447e78e2a6b6db98702afc49b1df15a0487547f7958feef0f05338c9761024070cefbb6eafc85c74f0b6c3a289c5ee66054e07520cf16f098f653f0745a4b08271836b575ea84bc94948a520a0ebc1f5aab30d0b6c73f5d0ec68158b005b16be8217cfdfe5d0857a186ab336ec73261c982350fa0f8bd6cf0e58584b19e1b7eb86ea8106a54e4249e9a71cefa43539dc4dc0698aa07e4900ad75fe5cf8d7a4267120fb2e414430a74d1128c9963b1fca35d02ba2a7e9e9133bc09a64fa52c4376c43a6437b66e53dd3be41aa134358e9e23dbeff143b8f731882b13b785acfe5f8bc8bd2e07f9c8582461734e640e1f1501650a7193873f326c61c3c4a6c1b5a375e89e647ec4305d947c411cad92627790c58473377a8752cda80e38ef93464bbdc1a9f5a1fdc156de10e0ecbe9c72a8ff664b4bae5e0f4f0d2d0c021e549a6ba4eb2c8551d26438a3bb40495fd27755b4d7edeca4184b1ff05e3dd1b0964f47ab1a0f78301a2a31efcc4002fd9d15d74b114e2df9d167b4f8e1517ebb17370a6638ee7ec77ddc142d2111ad4f4a9dd8962821620e3ee4fdbcc02130a1e2a2d92ab8321274112f17eefa7e39cf7f07493c71b3cdb4e3dcd61e245cc2605a461932f812a38b61427b2865d7d744116df72ebcf2b6eed612917384fdf910ee477367ba8bcf53e92b527536e9a64665a7e89fb58aa632393b212f8480e25561d808a81f4cc68d79f7cfa11280f9cab41a9d1c9fc405d2ad40ba6920bad6bedcdd2ba14825f499398705d01a7b7b38cd643484cdd3d098b3ba2993822e7bb59a9ebdf6c686cc8184c8dc269a2c99d37bc4ed61ed93d2da789147f63df111c1153c747a52157831e7d90221349e35b0e115675fcfbe196310f87e74c817c4303e94d753f83baaaf5af15d9ca2d69102921eafc4a7f9296b2e31d51736670c20f5e94bd9f468b1cfc48eda1e0430540d2e88be28c5a7182046c170c1c5253618aa4feb88d21d36f2bfbc845abeb58200767b738ee63dea1d830412dcdc01d13bca88cb5b46e86b68a86976d030f34a1fbbff564be002fcc3005c1e0d24c976b621bdcf626663608b8c629e5c64de375952f2158ec657bf7e57c6c15b9220b662c0ca9d7d5e5a1be6511fb4e553a67c4efcb448f9068a3ee22b32886d685666d4054d7cf1bca66abd8e436ec14a6a648d817c2c664deec67e7600c9cc064f302b6d04ef933d6557469e655a5edfdeda95365a614468eddbf87433e81d2fd2015196d34edbd2c2bb20831ecf0ceb64d7916085a12b8b032ae2ad3c901ab930c14ecfd49ba3e58ad63b5f3828f26caa9cf0c5813d9600018654c49e484af31bc1523eb7e449ee374c5056097546c428ccad383b7d7885a00ad3cf75b7e83803de8a6aafb94a882dea4a4e8185e98d70c373f3313f49fefc1b99eec2b3594aa1ac4d20a32818dcae9d2cdcf002da89b5f92d5f994fcb603d8a7e9ed6da19150d76df74cbc96617a0672d405dd0a1db7dc275199f32a033feccaeaba2471ed8d67f9db0f15699d5312789c5768097b35937c20146a5b618e093940a598f85e0dd30e350a72359b8209e421ed89b2cde1b868e78f73a7cf931a48dd7640f0612d768333954b501d972bd5f01756301e338937fa073146eda695058ba87067b3349357f4065bf7c70c97e7aa71ea4d004965e6e5cfe2ef8265780a65e84a40d99625ac0fdd19f2a0639df8854a3f3309f84624e7e51f85f8d3f46f59f0a7de994829110bb70be295c851bbca67482752e6d8027215b565de0d7213adacf5707f24c8a0e5205d43f64d14545812fff4f7b7c562ade955b66586c2ca77b2435f595f1fb88d2da1e5f7b31b8820752fc9994b1005f26f89cfe4d8b1a32406f8f9bb0c8fc268e1b71331c13feca74b2380df0687d350ca7c3355294cccf231e6767cb3c578cf6c27b91e2b86e487e08363f032a4620992a5b3d514814b75acc2a837f2f9288f367292a00e3434ee5b0d4afa686de7150a5ee227320444168f2ca2cc33041a68b633dd7af865541d62ede3af0e24dc9e21e58732228d158f9cc7a2dc734adf8e1f0e0cd67d70c5ea01e7bfc3e2d85682466c957f30d952709720425013b07f2bdbb2b9bd648b153ef3953e6f9934a5d5071dfcbc83102d9ee855c9d2bcfba5dbd28f75a25c896598256b3af18807195c8840e13bde70a7ce95be11525965ad2e8beb0bd8469eca899e3ca40a66721112c1f2e373ee5fa00e88090c82143e41290e7a9a170f760a36a882b57e10ba34a7930b8c7e2f477f3d228f485b71e472c5a5b419fb131ed5d94f9ca2976f187ffcac27859a59db208e27cf76966e769d6f667e02851f83ce4034b5e8a35e1c43a837fbfba962b16d09f254d734bbf32a8789df5e98ef856f4da4266c72a96a78765e584fb00e43e10af97b08f7fac152e197e1e37d4ee804740d6e9dd818f2bde59e93495b10c529c0a7ce6be61ac5354664d6a95fbb94d840ba12c4318fe444a6eb2f4278b970f3af83f99ecdb57d50f4d593b7d0a202e0cee01460d8340772229ffcda773b23e42fa38c28ba88df171a836edc4327b9205001c04baeb42b63f23d0f87f17774c6ea73058682f7d1b95d1bfd438f79325a8b94fae89a88e4ae650943ad1e61a7e562d1da3d3aa18c6656a2eec572c1a16a590a6d2e0356c6a4fd6128035dea15a6696b8575be04423c127a7d330c965d5228181ada585ac80cf2f98db0b088fa77a67cbed02d35caea903d49cb6006f1af7a57426888e795e4add70de73d43b95c17d16e0c6a9e3f69476ba18bd631150d6334adae8af0e2e14e2848dcce530a598a1c08dd9dd9bfa39ddf8a52bc70155b0e2cb125d7a5159127e2b5805257a85822a14215b091c2db711f0a9ac00c608b385b95f9eb21d7bf3f373de05a0e643ad82579ffd377b89192727c2678894547b35c26f8c7255d83d1d7f1d49dadbff5f83c1d21f947e43245ce092cda7c2868e577984f72e57e92ca04ab9774be730da0dafd5459dd9f72c38f7947c4f79ff7461f11dd73e4e6db4e7259c55e8f7fcc443b5a46ed567f2ab806f425757e4e2de6be717a59e2f33833fa46a37d34a71d2d1afbdbf64b04d9c6cf7ade12916f16e4da3d5434d71ade841eaac718188127f537cc0f7610d35a00ff21cf22c45d51f87db6d11900dcb1ff5b37cf171b75390c31b004b4099c466f1a54471269938deaf78402a1fb9c03984c9a738a454f0036a488e9bc122b6891e4aa67b3c6e74e18ec8ed66af6f933f499002a2307486b0ba9ac5ddcf04e33d4f62667b7e10ac9f4afcd9d95e75fc0efbf206cb607a4247696479829d88aab202cd0dc37d5818684f9426f46dd01cc169f66f1c0874d0337195a89f8ffc3294adb08c430bba5f4e1dd641f28597bb02edf2f69de500965619a578865475d9da2e11db1012567dcb81f9b5fe6bcb158ab2142ba513629f3dcf599e9cfe97262667ddd12ee23d845cccda779b3c6c6283a04e5668125deede48025015a43288b4cf83e6da0e1be42723115dbc31d2efe37f3497877c68bbc886077ae6ca53986fc216530a3c8b2a2130d034ed0ee376337cc2b3f61acbf2b2c30588a303b4461949a852ee73c86a1ad2aed4d9698a2698050d04a1116ae7307f8ec3416fe758122ed7eba40e4fe36533a4560566805c08c67d5327f3e56dca673800f51ba97912d7a2728e67e1ecda800fab95766267e8a317433433db09667a8bee25723a3902d329fbef64f7ec868d545c460328dd4dde923271b77862cffcb5c8f65f856600e202e2cee157f7ce0715e4440f0e4439b99c61b6b9edcbaf57a67ecf9387befb2c3793235934fdb710fe0024744ff400f9ac99cb8430605243fb1635669c71f6c3c1b9191a60b7011d60dd1ca5f8a3237e7e3ce2cf6ce503d661bb203e79cd38543e02baef375f7c99a41b3a21dcc8546425ca516f455e64228b36e4c4d0724baf640099e1b0e3a38ee24c9ad2ef42f232401cc676b7f000d1edda0c0e9b49bbc72d40c548585a00e7b8d454c56d751e97f3c5c354a1df5c70709bbb140d977af3dce4028b6d45992b41669e4b625dc6555ed163b9f315e71e3a7c4b7a12b5cab81ce18563a73d01dd5d2fb5d2e6e029b13f1a7578aec175e535e5b2dcc739b3e178f577e1d749a9d2cad33a6c2800342cb866b0cbd47f9b754ad78b2a35632e95f372826f3880613bf574e2f1e024e4331f648fe8a6147f6458b96aaf454d69ef0608b336f2de61533de666d1c42503d712479788af9056b3da7e2bb482e07490c176f748e7d3b4d1038385966a75204d0007be9c4b071baaf50ad50cb19e544ee5aa8174f78fff74d748ff11e42941e1ef30a6277ef225b663d26193e87aae0e4f68b32f9b04b67315829b69f578145fab5ad1a63929219c6a7c689fd590ce33baa133bf7b0d0817c8b982d45f943e7e34642eaadc1fb94657f7d5715d06f05f7f753903e8ca83fecab9a5e4bf81ea91dd619d25293e0bff3a5cffe6487d9725c2286f1476a432f07e2f358bac8fbe05fe04772225bc9626e72a33cd452b54b4f1d1101980562f23bd181ab622554165bdc379253ca3099a8f45b9797d11a257a81cbc8d763d0bf4ffdb7ece986288b0a26199aa340f15321b33dd384fafe8849ca27337d48d9dd1cff2034e7bf04b2d6115d1a07f1f1d429ddd37d770dd771b6681b930324392ca122d1a20f502caf87515644eabb44335c2b3264c59c8dd0e074581ab481ad9d5c48f0d47240e8e00715046d01e15fdd61e87c1ac3a04e0b7a08e161fe351cb5ff23a272c79a9851f6903690a9eaa0100adc157758c79b79ff8b12e560cfb30f6a329da4c7cd9b4609d585cad874d061b0122a16a5714ee8c4800685e10b55d7f800b2969d9056b5401c07df9eb1f036f3ba21d7b411a918cf918d0616550b4f25a05dfb5f17a7c9e80048b435cd3a4dba93a05b44da5d3e7ef5188fbc84584d735b43879eaad6606c3edad3a193d1338da45a8b95f27c82086a9d2de4739ebbaf101374fef3ac8ef7eaa5eae2f959ce393afe1254a09081c456da50a516ff167fc0f2fee691a018ea524b4cb46c5cd4ca61d9de8919cacb43dc764c6a26a2f03b32fbe73dc440fa19e0186edd060c51ce5baea3a3f005663ddd15dac79c6d6f25c5b8f43344dce2e5b67c6b1211d325ecc15f58854c9b49484ad994e580e4cbddc8ea6d219919b217f36481646dce84cc58bab7ae5e5de2653acc7c76c90dd338f7eca1727cad0297aeb49242d033744ec8a7c16fc9f2915c9a52764155fb695ae94f60a41e9c9beb3bcfa409e978520eb482382de8aa2ae27c0cc9393cc70125a2267f505f7afd8f3e3e6125dcf34d3cee1924b52b4577965592a127fba326f88778584a4af4da138ba298c0b097eac2be2d4fa3fcb2b4cda80e90e03beaf6be671847cb6b76990ef972ba0594617ebd78d7c9d5d5b8112bfa0009103ce5a14e5bda2eafcd37d4e190875def1306b73ed85864f18877340b0465e48f147ded14adc3f1c0af0ada4bbf12bda8b36f1467e24538f6de52b4be8110dd5063c4b5161359fb164d4a2dca7875367e7baa68cb41d921e4065f9f94165915d319dd653edba0b87f40f405cc764ecb5d66ea5b2b59883c6f847af5b41bfb8f2e729e80fae2c719fe597cccb4f83fa3e7ce74e97786996ec4907e2acb5ec9b4ab4ce41b2c74991356f731a1aeb22a860e3e57e1295094dd5d1f7ca8801be5d0eb77765f65612320a9311ed54cd40764483d0067e876e074e7f8cf4bc7b91c92a1a5040a78fbf0bc22721a70fe501fce4e0e01727f25ce64339ef4e3f31a9790d90dcaef53ba40e9b43f7fad50d4127b6f6a794f26b98e9d3ee55cb5a87f20c1d2020a7135b379ace4573379010c19c56cabf01c16dc5a5945824efb8f50450167f7bc0c2436ef8da66413f8e131d029eeffa94e70ec1f92e7eea75fe653e69003ba73cdc02cb21b4be1a20089ff41cb808dd32b75e993875d61b984d519199331e6acd56414c9667b00b79dd5750eef27a24a510a617c3bbcc5dc7d9ea9f692aece96d98fada88345a5548b412236817d57112d91174af649eb445494b971f814627ea5a6ba300c39c14abf03cca78e6249fc850d64e8c2e2579085e6fb6c9714ccf9940168c19d93a92adf02b388c93f4291ef9b7ac4ef6c7308803b4a11213bd5331a4b3737587d3520c597ca2907d6fe8957381f9e8f5dfd192a1bbad2b04c439b3b2e88bc6255b7d300209abfc39e6bf07dd47aa8fb4cfe7f5c29e4aa3f2cbc9f11551869640e23f05260ad3d9bbcfd5374be0cdf4c9ba7ce6330e8cd2e54ed1349b714990a9bf31f33b7be29d17b092a2557f237e224d3877efbf786c2def942a63896be876aa1534c1f05d6ca623805ca18ff89e10615a7640173f8a21e71c57d97a33110f5bbecfe01503592d280f273ed5e92af73919fbbdedc325bc74fa838ab122c5c58f8f8d9d9da66573741f484d5bc827897081aa2a03875dea5cd86d3f2e2af2b04c70025a5022beac8604635de27e6aa8cca5d28df9270fde8f9cd6273eb8fbc76420d5c2847ad41db97d01168307879608533d2a7c417f1f9677f89e6f53354098971ad004273f8be41ee77bdf7be5c271f3d1938b9dbd7e46e6e0239a1fabeccd3937b867dcbcb315a7d1cf92bd68e210e32e987c0332e51bd211b59a54cc675dc6adc7f55ca1d5f88f8873c2ade8eefe02b24a4b8f85a0a44393555528ebd5964a41ba34bbe7470593a9436c1ef9fd6e8321dd917692418b97646ca641df87aee7137e97908faad0c6af2f94d4a491538871ead21a33967354d58a2897251a5fec862b00c71fe2e937ca5232dafd64766b6e2aad001a601af2a08232b4fa49a6f7c82aeee62711aa5a68451ba82d6dccc6a1bfc3e1062d75184084c6199534fb2f4b3b310f56a770e17bce857589b992d05edd397b6c516f90c9d851f29c3360875c23cf74aa28d95524b2c3904be2ef57d71a9dbda09154b63219ff952dd9f0accb4d577a1f9d51c9586a3e82a98dc8bbf334201efd0c639f3821d1a6e8e2111063d4cd04fef7ae2ad93d0c48bca2766a7b58c3dcd9dc8e9bcc1d943ec471749384ab281202b69ffe6f036edf0b59dc71fea4a7cd259f7413175eff8db7d2d90c3783099a8f8ef87aaeab159c403a96950bb8c535ed098a55a45fb20d62afe637e9aa850afc3f1efc1271b16c71c7678b886fafbbe32149b1671a9c8694abd780d3628314b9ea4943e1d41dc4cb2e797209aef1717923a613b4a94d4115ff5c852092b2115c0e28d54982d86ab369be2b7bc6453fa6a1fb522b672c1a1ee5330437fad08b5030b29b338bc124360fd145ba4aa265515814a39ad96cbdf0086e3a23b0ff5166571af30f08036a0ab6e56f981f445b354c1b8e0bebb17b4a224572195c5e6ca875f5af189feb2c0d677524671b2871fca6dde278b25b7ed65b1670d17deb26c31a5968b1d2dee6d640e946d0abc4ba78058fd9b480ea11fdea2d462ff50a274ccb8f90d9c5084f71de95447d44aad02624011bb4065fb8027816042c123b97ce6678a354a1fce548be432a3cdc40902bf09235e50dd4c0d5d1228fe825bcfd9b2173f953f3895d97e777d99e356a628cd869ac86a4b725a209702c49ebfe5628595d3e9e6e9703788370d787d5f7e4b22d0d0e7145571bb1617fd97226c60645a7758577e48857a826dd7cbf3a884223c2d65b4e66e825067bd42c1523411084f0c1ed89c949e0d05baaf3c1174e179fb8c1695102bec954245040425d53bee26dddcb6a7f1e296f2c9e96c9852f717218e2319d1d789dc57763003c4f7fd4ec5bc3d885b6c94abeb1acdd2bdd1387cd917735e016e17d85cb10fed0f04c5beb66823ba47519deed7cf0c8ea9f418522d8207fe88cf9c18898c142617c3bb9ba8b957794fd3e02a6295b58ff77ea0d28f4e7e67e45592d51b8073fda5d1593dec637e602a028a5f7a964307380f725651709e2aa8b098ead4a25397b2e27e3af9476f1de410d381d380d2eb720947092c2537ccf713de467976aa20edd1c37de8525afc5eecfeec649999a49d512f07bd5dd1690db78a5953c414113886eb6af8ee5612c9217f16e8e0254825d61d2b03b6f59db7a2ce36af893eb72ba49d0b0b0441932f1580215e4804a66bea8b7de3fd08cdd5cf6a4a5ef4ab8c9010d514288805b9ea87555a8af5cd5244713d81a4510141df95cf6d366ff5d5e542ac99f79fc0842b6f81777297c83a78d76f9374c275405d692a218ebec8e4dd67716b484f4f8c741a4fbbe1ca8cd344defd33e18eca9b6eeafc77c62c41e9df532c7a8cb936f91eaa3cb6e78e64e1d935425160eb7b0142431703bdc668a0864500045af202d8d4d5ac7756c953e9dae7c2a2c95ac9c8a0d60fa359a8f4551f781305ec5d7fd916039b6f47dbfcd4e291efb4d89643c8613e92b703598e9f2e86e6249fa16ab1b7ab4b219445d301fc6f7c87ae08ff3bf3991f9128383cf0e99b4551772488506014330c5b5d4ef1293724874fd16cb5d62c1a64b9f9baa2bb793d52981f31520b538cdd81100e14debfda3a22621c8d224d363dac32da61c346bee5ce3ec71788a55a122cba23b68380ba3374a5e75400a2aaa078f52de65233d65c06d1aa36fb17cfae4807f1e6f5d736aef5b64b572cb2b98e9d7ea7d871ebad47d388960f5c7b4c9504eb4e5304285dda392cf0467ac26ea11af1e64958d9b078eacc82a0f6ab835452a3ee6cf6bf2ef038ed9edf4e04a8d8f5225896f8378b8aa69872e4e82762f96acd26e602975d0cce9c2e602214c872b7796cbf73f5e71f84eccb5ea7f5cc8e478a9e7dd6d6f5503c91217304c8a8e1edd6833a9e651847a8ce1dc27ada617a28b388511236beeca55cfb51154ea984a89456f686c40fc757db75fcfde0b8d2111e6176cb22597b92e58ead0b9bf151fe91f2dfe8885c9e7b65a7559f2fe02048f25d5909bd70a76f0fc72bb0284502874f9d80b78609a8222726b6232f0cbcd80c078b49a177170bf3ab196004ffa3e01b2d6699e1902dff81569f2301b6131175a5eafb82c8741ca7a6468f2d11b32b50abe76bcf4a28e84f75d88846a2c906e17ccf05972eccb99845dc414421f58d9c5180b92a02185643795513368a720d4a01b93ece209ede73036c90871c62af64346b46d5989fe8d78f67d802613143917a43f4df39b4eb9bd25a2a24dd523e2c2c628aeae58be0d217d9bd926f260634c89a6724b73825346f48d1d2ba086c13d0622fc23784a4533b310085c0d8791037694b3f089c34b8b90ed9c620626c63932494c223673e748bfdae889655033a9b4c4a9ab98ba3249c7badec8239f92a587b4a038e41dd793faa2d03e7bed0dd1f3080af439d64af3bf64a784c7dd0ea083a99bf12e15295f923b30613674e377f85fd238956491079d6c1c3a18831520b49fc983b3e94333338cc985865b294943c47b20ded8c590154ba7d0fa6620b9e8ca1a92a5e3cdeb26bd848b6c3716b7a84d5e42f6c48607198ec2781ee2c9873e7ea66a5d60aacadc88a163b04c77ca6d595a0eff1fdb44daea6e518e85c3e1c1eee53a9d25e4176f86aa8fcc0330ab680667f0b59102cd1bc499ac261430411a0f883f450bf60dbd654d22d97f919dc019ffa7ef648f6d33ecc579c0937bd714307ed2b59580b988ff76b0f639ecb23a58665ab0753494da9371d8e251026c8d04d8a890f763177405777b50f70bcf89bdab7b50d3f98314428e5aaa6ab1162d4b14e3ce20bf30c0d4c97dae2fc7ba7804a28e399015cafce510435896ba5148b4de7e3862e70278b01d63b3a9610c868fc96fefdf16b0ce6f7d75f14b3a57ae8f04dd2219929597175bb3625d48bc41307c810eb4ce6a50c75c428166dd2ffa49c2bfdbb2af13e7bfdb3a32213afed76f96df547b1a8d49cb783e1a886534bfa090bc91f626a6389c0c62690f19fcfe451049770a558b8e9c0c345696f35db34215b1850e91ae21c3a9c7005d1acb851067adb9d0ffc2a4e241536459ef5e28982414810080b2c71bad429eb5a21a4c3feab8b6dbc215ff08e2972340b1fbfb0ff3c055f2df68fa0e3ae821af82afbcf98afbf60dc99ea8e3c62ec3db3f68f971f9821596b0b68722ffea0375acddd2523ed99ae83be3fc27eae90251938cd2a9cabd7b4f73d0fac677166c6f2e6e587640a5bf8294cd7bb3aba98ffc0e1e48fe6f021e9ac2500002c2949ae7845964414a518432aca8cb26b6cc7afb21137639ee41220886fbf00729e38ff68cae73060dda01a4783efd99db5250cfcf100821bb956462dde73cfffd8c84e7f9fa66467b054e8240e8af873ae1af42fb508a9e8d848e561da4d98f1f51df2417b917cc0220358c865626f2206f92de1a21cb9443947f88e93205135fe51ae76f56cf2f13a0f1c209234cbf3c05b462a34b7c2a07c2d9942b0ce98110d4f36a9eb7c2ff9cb6a817be029c6c446ecfd28405a1225e52133b08e6c089ac657f2a8f5155ac70f300b0fac0ef788c16b0b7b3873572c171ee62e153ac13f1eb81a07ea3883c011e4bc73b64849c2cb1919c975daa7c3abdde8b512d6843c6d58249d726ac53de9abd1231010bf0e6fd2ed3b943f922f931c02652f4d2f28d92cdb04b1381a0ac4fe5d0091aced99727da3fedf14aa64474fa5fe6ce6fc680abb4b1df32028e9c09ec0cde0b919a4f9a8a5c4d1cbf78fce3eda6737cf9fb93230ca8a77c70e0d9ae2d6b30fb4d7057269f4409b74808d8d32da2a0509ccaa63c1fa3342b3439f1f9a9fbdbe4e9ba5d2d8d0aec312a871ea9138f6873a8a1f3550bcc20000e63d8217575dd858ae032acf8948d4388a02bf27801c6d4654d0bb8d3b26ffb78b766d271ee5d82e9eaf7cae98d214bd843a9b716913aec9b8c7cf1542142cc86f4ff201ed0fa7fd4cd0f35b9f0f589918c8d7a431f570e304e6a23c0a812dc013c1417eea76fc577a9f5bc02149d847f58f785325ff78e83d5fa7887d2985d0dc3837133f1b5ee0c4eaf16906cd232f7b25dfda241527e4863ac612c90cc5b8ef15b36e22e1a409dd928429036c19ef41554d06c43b0a09e8d2e546a0ebd397932dc5ad31101630df0de0c41bfcf4a0379d378fa91d00735058c0be5bcf41d0af49a77f13d60b8d91e48d1842d56b5cbeb16765fe88e5dc944f0a315f83ac728da487bd0ec12dc79036e342f855d993c5f6eee80fefd62b200ee9aed61534e0e07023417f4639214c345fb28e5c7b193d08e97fc3e700f20441b9a9e859ff9644513104043e5a8910a3593139d1bedf67340e321dab004b2168257bef66d05abae09bd2d863130b485d0149bf1b9cc684fe1534e698d4b310578c692a17a92b7c298c190dd8b66581d0aa95fda80308fc9de98c73b25cc0b9b5b7629b8a7fbc622d449d309e6ec9c97d6ee6c6695a15c07aa63ea81e6bd05f7de2e673a5025c6b61c91f9e20d5fc607a1742f55406f8d8b5709d91a66426437f0fde888c6e81732e5f42c3a81d6dd6f1612ba4e10a8721a015be6738710104e0af51c22c716f146fd12ba4e7ccea2b9f89be9e8eb50316417e264f673c9d2f95994461b41e9fa5f68ebd60710115b1552882055b5aef33d4f129f4e8453998ed4d234316f6e4d0069461b03e4cb5e87b6405114f202cd347289bfb17c2895b049086ff8bf581cfda24bb202b198eef886fa59ff1ddba90bd2cbe4f700a34c5514b42da0cbf925b1d58c46277a75d8a8b5414eecf05a85b0c10a483169e388d19cafa08d9cc8e9d7071221946921737a5167b73fba2f9f43f6b5ae24fb26c4cf93bbab8f6b5c9e1e80bbb6922e9965b8d1f515b8865b03b14b2984205536563608c4095a98228ae8e14d40b75d84af20afe428012bf2dee7e55d562471376fa12890751fe107de4dd9448ab0fe29fe37c74c21c330f91a224b6ec64c64da533a65835d2438939fa464d9c40a6a5279154d7199f0fe0dd97e0e6c3fb58f5b7210941f7358ce26df2af1ff86c5139c1f598bb1c30c932fda9423f910079f5b699f9bdfed0307741b3f04959000d12442460f5cf840bdceb220bbeb470c522907e8be71ab14aa95a8455707d8f387c6fdc5be6a28483f0a75bb23b4a487fbbb4b8a62828e93997e6ff1f78556619a420644b1c14276041af1fe26cdf480e78d7a58645d01d20e0328403320933562e11d1843fdbacd9e8208efab4f77e7a2b2c6f3ab2d45e67780b40a9d4d57c7b60a0757151f201a6e6d3c38cc84744f3f3ca5e2539dd55388e4e482e4751597ad96831103b18a785ccf4f1de1fd38f4bfb18ff80f10439027e68c1a23bdcd926daa4fc71aba6fab67afca46c3955a077c75889d7859fbcfad6a90b8b194d5ab71da3233a46d51980ec11e864aca070111bc4ea88caf074956fa90d61b81d314942ce4d2622c4dcaa1429a1280bdef0d965d17147a4d0b5108a242c10eaa5405cc1089a8197e7a002ca70fad095d4b22fc586079d3e7503e8080f3b79d52c9055785fd0ae5eafaedac3e1eda5bca6929b94fcb26492dd9462b3c5b7f020db62fcc054e7a1fe820885a60010a772ace8468e71074d3c963d048a94e8bfecd739fd1946e1668b6d5adf1f2587085055fc7e7b92075aa3d2511a2b0312a29d1ace675fae5498b41293c313d8b4af843cc33675d7fa646f14bd324799ce4a77bb552f9346c8ea23c76792d81a77b69ad87283b418ac964fdb90a0250dbada06cd57ae35476aa22be6a6b283a90fed08710e20f3bc8af01017c6fb380e0d6d5d08e91f2e4c9019c5bec40d468aaf559543e6eb5b2332c50456c99ec31d7b8e1ad66a22439ddb3cdfb1808ed87b5da58703f0660b2bed3db7e9ae288c27a0bd467ecd3c23ddd30efd5bd9a8f8146ec7ab1cfc3720fae5d4f57b99fca1cc8ff1fd88e555fd60482424e4c7cef4a60c5c24640ea85b66d4d925cef2c23192a411ea999b38a9b2ce271bca63fc483564340d218c2752a127f0ea9c93e46966817a8d509d1660ff4256f8cd212d4b14d0d8ed9684c72b0ada901de2dc126f2d547c5df7bc030575450100cbd9e2e7001c00fc7b14bef446588611ef11bf6048ccddac0b5d78fdcf4d0fd39f20a16ec3431d2e05c8e57d0727702c19f8a16d48e45466e81bcf999b1479ed7d4c746eaf52d01d72ea3bcd133d43ccf2dd34f83f920f971d73cb0de7bfcc743a2b66a292fb71ba42e5621e8859c67d4ab138cb63ae2ec93e250df97077ab567a0b0aeee44189cb802c207360f815836ab82f5eeee3452e32249f7f8bc24bb7d33af4694b155843c7b8e0b3b5e91eaa52d8e029774cde994a116ef23a58f6af3e843d80c0105061f1ba2f604efa2773e60ed70c306af54bb697c80751d8895d6f8b0319f3a697a49b083fcf648e468749ede2bfba917a8b0ca9e2a3863af53ef31ae6d6aee5898ee0bb6700c589e87ee46b955a8878d21004135431d69ec1e32b9c8d635fa23435fba3a0fba3624bf8cb66c7e7f48857409cfc9a89989086ea80f91fcc0052dba5b96f0ac2d2c603fe836e130a91d1d3344398956d26bc724f631ccbed0e077417e9ed65ce2ecd79bd595e58b04be1099ac2bf088e008dc60afc1140f245102aed255b99257247678dcd563ada6da62c57fd3d1d24c02858ff9fa235dc457bdb88b9772ef7c46a5d44c74f9e6c9a726609c841dd1952c1123963d1e2236b4e9aed6f0bd4cdb2af3fdf8e733216449a534e66d4bbc23e47717b654a85636ea52e328f90dd4f657cc577c3d8e3434bc283de76350a24001b0620b23fdf139dfc92c35afabe8f46e6fa8acafe6425b6d2fb7758ad82cda87af944cd95b458bdde7377ccee92ec6c9abe8f71a5aec1b4b1b49851bebf415d0f814b488a4fddeed9b56e6d56968272c644ddbb357a1b635e1b09059cc2ee612c6da6f72ffbc01a18efc778d8ae2b9aad94e116f7c965fbbe9036fd776eb6bf079ef8a3358b93c437ea21b2b4df0f64700aa86eb95d486a7ae75d58810c07c1728a83506dd3614e0a25ee996fd3c5f36ed5afdc713d347781ea85df6cc883c95ebbe570732cd201ad5493e9f05803ea987912eb8435c8f27fd44912fa313d4ac94e29a8a6f450700add5f8107e1dd93ef4efaa51e53459d4ad773f130bd79d47f7522eb590c4dfc31594c32c1039b9179fe68f5056b13b78298679203420e8d8bf51d20cc58849d1b198e0da8f91057e90b4ef9cd94556d14ae5cc5957e4682f9a9df95f94360325e9ff923c22197274246ed6125a98e94e9266958ac915da623fdf0ebcc3862f0162035df237d866fd95995fe48ca556326025cc1ac7e867094733f468e2aa0c5c009bb5e00334a9d2c3fa6fc4bd81a1f8ab5673825ad84661d220be6b00d51bd0277ac82660e00dc25c6e790fdfcfaec19a89c8d0c6cd410bf322582485a69b98cbd738e44faa85194143005b120a53810b93343c869631b8f617ef8808f4713f2e2368ddf8be9c2ce1f5a6412744e6327b7a8b68e3ad9a4df8105336cad70f511201ae2a6775abeb1348c3e7febb6acbae7a462ead56ffe88f7d5595bb85c80056752ae2f1769b16c71ce3f10bb3d88e482b983fa185c5e5d3eb6acc13b530cbcd707f72eebc788db4af1929de105d0b534eaa98c42c6467c62e69d50c1571a664908b57c136fbe7c07c44a8d9b2a88dd9f0701527852a371863e08965d26c68fc7493885d62cf76d459b4b28ec03249dd6d959424139dfca5e9d9ae62340cb53103d89111fc6913b71276f871b7b7fb1e21a3eb60bf07512b5a6d2c7ac076f6015f0b1fafba6c9b9509bdce7346ffeec414199e0a461c0f0e9d1205e96ede19f7f00192f1c234f907a22cf5a8529849b621ac017c1b600876ac80f9d02ade935265e586c5946779bdaa7445222e2346d2a35e1cc7aaeeef73e1489181598e62c9bdd39332c3565c830ec4e8163543391721c2828cc864677801e915f77f4859c9f9ac3c6321dcf9b8fec00e46163ccdd86611dff16751c28dc7d14bad767b34caa2a7e7aafb54025df9832887ccec25fa7760d429caef6871595a0fc64749bd7659f5e2f0750fdba5cda94ddd7f5ac6e8a59800c0701f022808121e65505d1153059fea14678e37c15eacfe8daae9670d80d0c3ce3fa64d38659ff24630be82f9da90a189925f4466ef7a5b2b02859cbace70bd020a4eddd26bb34b24a291709f345160ed37a5f6e9e1e54b1c7e05a1e18a6065c92c6a5d070aa38aa4c70b2d6ac8936c2e916395e32afabb752a7a9c3a05dcd8571c6052b0bc0d52cad2c91a0f78816db76f535eb88c29d2acab3a0c3bc329ddfda0ace79b0a7481638c2b01636f369f638df1500552233db69c98cda5be4cd6d4bf6c6c0acee3f95b898a6a081c5e99c916a9a16207f2ae8ad6b00ec5b26d7ce2b6f57c2622297ba8018b3cb22cd44f5078c2dcbc4f6b677db22ca4312ccb64b40f833f3c73ee720e4b6874417faad92c4b699bbf2ea18ef7ad0be50c8c2010e3759a8aee46c46b3be12125a9481f2e6168d75cbac270b8bd413ca193adc29581fd73d8e5811d16bea20de9e7ed04133f02025dbcb593ee178bef6891969c2e3eefcbf9dd42ad69bc968e19ef04d114e68c492f87bd55ce0bb5861d489a3cd78fbf3e1829d00c1f0c250c1c7baedc537376a0113baac505932b6469da2e95c68826c06960d211af2bd7ae691dd920d433c969a45dc15c6f9399aa049f3c70dd42316ec5711b03926a630efb010421289f9dd99de0a2224e56f6c02d3fad32d9364a840a6ac058564f0e052923e24f17c14f93763bec375c638fda7c1ad568f152a7b5c8f739c511d0fab48b906591fb5d861b7f24825fd4a3a5ae87af4c658db44afa8ab1050c788fdfb42973a99a66cb18534954c4f6b72e0b27ee62c1459f8e0e67171c0eb5bbfb63a925860a963d1b4851b35421ff606da4c5b89a5c0aaa0148e290ed408c2b7bb8400bd349cb0ef1487653cf58dc6dc9b88ee9825ccafeb56b357ee333d6507937a787c24e524efae93ff100546792ddaf51f36646eb0d10470bf43d799cd0b461c09e8d33a555f7e0afdf5658aab81117863f38ea1a6e7dee077874c7984d4e0b5d86f9649bd8628a07729dd6cce1f017b9e05c47c008487aefb2b349e54bef4dbd876fa353d0170ef3e718954bae42c37cf039b5e63c607267171c5a1ff3116784d653cefd47ec299b9aa58d4bcbf5a06a8e59be7b9734ce1ac9449b2c26160e5783bcf51871eabf7995c8dd11ac915c89005c1c416b7a4ffb05f9da14432ee1cfffdda198fb45d5948bb42fa400f2c56c046fd49369f44eeaa78b243c7b462f2d135b7a54f462fd7240be08b1cc434096024b5dca89fc4c0b1aa101db6b96060b8657688ab291bb202cea9695669024deb5a402ef073a119c7c94e61ec0b13e5c2c758ecaa803f447fb32f836af732453d116c461982baa2dcc19b414cd6a7ee3edd54c59b3d5c8116d6d98ad5c0a481fee2f95d9d41d415e0d6388b818ecc57fb5b95d315775a07176965fcd2fff9c264f21c89933a16d50f1afc9509813af4efcbf9758c96c2bed79d607365921acf7633fd317de88d131a9fcf82dac3272d9ab8944c58d7420bd130b051a365b25546773963372ba98dc8092fca43e6d2ada0b12bab629f2d8c7bc10bb68176afe4d15960e2daf7bed13aa3ae1ae22dfc1f9076badbdc75f96c16d27dc2971bc5ec8019781a95aa8518f1437187c0916af8c291ee30adbfbf45b70ee6329480ead56b8b78d6c3b198ad2906b30601ee6553c656ace87bf4be8b45457a435fd9db23e2d3cecbdd49f9e752e24040a61b39e1cdb088de89b2d791434a3fe722d896aae046daf4f1a88cb2930dfaab58b1b9e2086e4f0ebbf2121987e0924eb35eded269d871bbc74798a4ac3058004133b935eabc7ee67ea11971439ca2bd1139bbeef1d05af3e9ed4aaab353e2f051619371b560c86a800cb82807a4f4b203ecf79d510ed4a426c5313d6ca9b63c9b24a313e3ba932648e8634e8f24dd5df847a142f0f50fa74d00c32c3e3b060d8055cbbb2d277bef392cb04092460b65b67d8e851861ae0a3890d7f60cd598a3ea35f0785a50ce7798a6d80ee477fdfc8be7d3eaa8384b5462f929b071764459d7037a250e140fb178f53b6996e3864efb964c769229f386a39bda7c19fd7aecd079d8d3414474fece84d921f6064e2d1dfc1960d7d7a6fecaa4ed984ab2ba1f386cfa4a28156837004dd93c886b511e34a91cd9fb39d81a2f76cbf0d1e319a870f3d592964e097aa050069168b05eae294a7cdf1a53f3b8767cc049dbb6c26b4dbce3904168abcd49434cf8ab379918f06424231156d37e27587bfa75f173105629a0b462905395b4564010a8fef93c025d44fa6f5848f5c2bc9233c88dfcd9bfe80eb4953c3cd27be6968a4262cae67b81cf652a2098727c9bfcd73288c4d833843258014d5636379ea80daad22d6384a2fc252e43fad4d10595e5e77f4468bc3895591dfac206d5c0f6a41ac4936705c8c6de5ac41b0d91b39d6db56f89fd7316c34ca7bd57ce5d6ba0c18f7c4648e8286c4c89959d78143f391d07fbb645cf00cf9e982720e08b08eeca85b8e17e536ff18794ea930cc0f9f155608980949ca9cda12f18dca9e0adc93e2d83d280a2ab9d5b9715075009b231d6d0b0b0a2120a57a95d287dd621c63f62b108dfe511157aa7cfb8752694e3c8f1253ea59c882e09372c22a94068400282749b9ede59dcd7d5d9764d6a2e916b5ada7fcf80b1620537eb4a3cb52a76eac2639ffbfab0e1c95f36ee7457b4773378065735ce74ed704c3ae9c485ee1d6f82c490b640f114a5614bb9c3c527601b52d3f7f082be94f32d3fe104eb87eb2f471de6e291d9a3883f54608733841683063231ae6ae0123b129b79713714f26e411c1f6863a5dfcf59f1a6ff9f19f2b0d3d98930bd5e80792cf15bb8d91777915b9dec82c374f09fd14963e23578eb49b0ce7ecc0c4276e23810ac362f6aa9a2da310040b03e025e5df118d6c536f3db73f2b5eb844856301911a17e26d999cf8ecbbb06be4794382d04e6fa101e9c578f62058c7890b71f81fc63d7b1aee6eb936dac0c0e57f99bdf2aed5de382328f55a4c6bf40966ff1b2c917bc0982c6eca10475dd9423e4bb85784b84fed809bcd3e10a2b6b9f10eb4bc8d65abffe816bedc890d8b0b3100fb854d5e8d3c820fb39b9eb8a38edffd520c721159f8bf72798cb1eb210a9b8d2bae349760f523bcbd36062276b50777e2a8ab50363fb7682b191baf2e9b28583b29e680df2c439909021c56765f8de368261fb6f35b11e02c7de3f747fa02265e80d59037c9cc2141c6a493d9897ed536ef3515803e3e6d204113ae7f7cd60001fd720a167834c0187fcaeb34137e6ac7e8b3bef9ee3b23ee6b0a94f84e5249ef69178a2f30d35677ff886687b541c21b980171db29e133b7616bd83d62ef3cf61142cb87df2d73c19c45f0d9920a011d6846cfa80b0e1dc1f4613b0e7e600e529295707edca89d826157de7d6fe95e28ceef1577cc378de0e6722d40e5a257883e23ba8eca8f075219da9505899457cf0507635a41d291d2075654467bae2e4b2fa2328f60674b5a1191e3676275ecedbf1794cba87671c6210072687ec03c6c0f4ba062ce0641b68cb6f9b5dbf46486ef1d38544f85e82258cd9f885c4f9833eef923804f90d90f595f613fecc9260983401805facca979d9f8e07536d37c11a5b12a7c2a213e0b34921494808dc0db864cc0f61986acb105a4bf95bf44aec8508ddaec383693baedabc7abc84544f4596d6b94a5af730993ce744833354b2e63be79f962eacb4d98549f848b45ca58e6828380c1836fb749b5fb46693c987debcc53ee891dbc5ed2617a878774a9585b05bfb95f3af07e7a84ae9f55f2f225e117a443d8b4ac9cc400885f19457279b001ea5bbfe9b51a7cb5fd658a983fec956eedd7c2617817c7a891b43325f6aac9fc48ce6d8bd7de3227d4426eba5da2e6b902a4b54a690ae92810c0528abeefec06a3b98605650cf59ec4deaf3ee3a865800c033216dffd80bbc8f454b93494d0f9bf0bc22c734c52c0be1fcc682e40a349228a4b7c8bade1297ec47061a93e3dcd51fce7134b7f641e644a872a3639de3775db6b6c51048628b0193da02e9cb8a5dedc44e450cad37c78e9f147187387bc351cba77e370b247bc04fa618ed0af992b5dc8d1b88190a3129c58610e275241767f59c28c5e41393aef7c67a44ec11d48725e1c126b6324857416e274d22c2c3fa3242fc384064ef665373d1175fc23ea4e6b2980436232eaae8a6f961e2c14bd578ebe870b0272414c9e63a9362f1f203d1f9bde405fe698af24439ffe6cdbbba8c69662ff8403ffbfa379c6982486ed0017107ac5cae12b3ffa6c7c9b1500fdcafafc9a0a21bd8efb5f4c14e63df64e7d4dde9e6dbc110b470523ba6e9fce264199437cd2baf47dc2fdd657c5f1c0a5d874d9341c0a578700c94fb423fcb0bef4035b028b98e313d9658c02f335c15f8a974910ea229b0a1f61e288b6120450ef9cdb40362071da5ec7cc52ab932eeb2639a98c3c569cc50f6235035020d0dc45902b917088ffb3a3bc48e30b756543a84b9627bfc82575e0c9b3137ead9f10c7befe701c00520340dc9bb8aba8a877266c1297514b277ff59b9564c1e520851ff87c4c0c98b58633fa4c58704156cf2a220f391d9c0433a57cd6c73137dfef46d07d43919ee92a71ec659f7869868849203bed6a5e2ea6a59fb9c70f3ba42ca5d86d0b36eebb175d664d2b0f060c2a6a0f0a8ef816238c069940448f174039b6ff9d85cffd3ff592fdacb0aca730d0b6eac4ea8d5c4e5be6b01a8c9add35fa41825b3c2ad45f96e9d8aa762a1f8dd1ac38fed76a83e20bd937ce000ac2dfe163d507b5ad20601e89e2f869a47ca486d52b967ed71a4a0682d1352c0d51f61959abf0cfc9341ec8a6a9fe4971c43e9544bc5cd477a32b73fb2a9ec221082c0b902440564d0a13c30ee6b8fc26b961250bcf4f0e4cad0b61530fc57ffdfa9df90656585b394174c471df31288d8488b98c5ee6cc4aeb43d93ffd46f781ead561aacf4b5ed2540a4508fba26dada99b1979b85b40fc381f3b3caf3226fbd9608cc620eab7999b739616e30d4ae4bf02f6b5929f08d974c7745e35e1c0b9cbf0c0e34d873a4fdd449a3b52b427c019c7868a3f2e72fdf20626de9181c386bbd25bd3283051e129327d5bfc51fc17c7e1893196fc68430ed7423c274c925a299fca9f45c377b90a75ac72567a27fa46c90289a993c4456f642b1dd8116c48242bb187df934b3040b12e0ec21ecbb925bcd1554a872c92f34ec39ce4a014d2e684d42f7bfa2a23573119905b378fe70aa877ca99a3c91213ac52d2ee09cbbc93783d2406430891d82ef001ac5e0d5641bca35e2b03cbe158d1cd5d669d14db2a68d6b44177c8b72abb036ac4edc528c4da149ae37f9960c89a7cd66b82f07c23fd0212478f831bf1289f18425ee880aca7c7878516e033d38838318118a2ea4a4d0fc3390fee70ae4d5fb71218c1224f61ab488a74f13c5bd1fbde82dc1d039352079c463547c12e92cb15468e88c6b7cf1a4f62c0179ea35df120dac593a0e8f7808bde137a6105db78480bdb919fefee3226c5d490aeb2dab6cba62fb7fdbd6e78f063c6d7c1641eb7c69ee81dccf24c3bdb7a1e2415d15468c3b5cf1f81efed5e5c5f2e6faf3b21cb0a2b6da7f08547e382fc45cbc204ba886576b1ebfbd76e058661c5d80b0084fcf2cb542af6fab2a09e29e32bddea74a4008979f32b906062874b4905393b2239a144dbd9de90c02db9b6d93ab1aa8daf880d68276f3ad600947fb061bbc25c367618b597e034b450cb76d228ed29776bb84d78df203d0b7a57c30c0634b5122a0536c5d0c90cb7c30bfb5da96af613aef0cc90dd01b1489184332cc1d1b601542f31964045431eb8ce36e5894c6e397ca3f640e7ffaacc27273cba61b07c9365feefd36a6c2de259c39da037ee8ebafd8b6ad2333f2fa4d397cbaf497c5efc79cc7c08a38ca63af8dcfcbfdf0823da37915292763fcb9b5e41bbb91ac4fd856b354901283b02820c38e8538a610439d60ef78e64bde2da761eb1cdfdad9ae22f28c478d54ffe7e155ee1bdb041a4d2c15ffa4c6685dfec98fb8b0e9865c26efbba75189fd80c9c28c75cee88ec5805574ac80ccfe83b56ec5b0164d77acef34028b629dd14c30ad680efe2870f8d7b42ce3eb4f95f511e04a5bb7b15b23cb63d2895ebdabe38da11b28ab77f606d5e34139e8dc78539fb7da63f16140d8f638c8720b24685ccca78ba9a5f915f5cb538b65bc6a35b14672273546ba1b68fb0296ee640368a021ced4b3d82ae146e3c23506a01e1f19c9a556638f27444e190a822eaece11b85d73c4345c6015612e753eb7a944cf2056a47ee686fdf8ccd83ae4ea9a7a4c27060b5e4936238e798365fb78f9069f8db00f2d252cafd6657e9eabb12981065ad0415870f6bbd017efb3936659b02e0993d9e2cecfd963e26523d98409d0b1204de99c8c94627f25e7b182bccef4dfe546739486d02286ec85b503c9a409c03cd759cab73dc9e78e9f0e172fd5cf59f39e7a295d521f0c379eadd2832baa2efd160ab5e4f823767322d0f5903e050863c806001c7b5c2536d22b84ea36b3f8eaacf3e2514d623ce60df896c9f0369bbca3d3685ffd25e567b2086b40e0799e85d5fc0ccc540b723e19edc31bfcce84e297ee2681fcd7c42cf6a56d056514a60f1807a2c0e30ff0f7c3041dbcc3b27b261134f35293601e30680e8274b2ad196b52734720b1f1b523d0d298b732d1fb6d1ee1fca88714b460c7823a5272b60406b4e35211a8d162686a36fa293723c466deb861b4f4212a799ec7340b7384f9d679c44c72cd52bf92217761c4fda257cbaec1b62df6ba87185446a82285728b697dac742c63c235b60f26baa3a7137db74f6a844f9e89b86af559def027fcd5fae8f63e5633a153ddd6e14a777430c10c6dfbc9a0c01d0c617deeb5b19fa1f4a5a20fcf252d7d4a4a538e29f79afff1e63f96748f5bccb97a9aef1de34e9a88a040cc83b3bd057147250bc2aa4992a1203aa5eadaaae7561d35e29df36c7c388798d3688c8e68c18774f655ff8970a7e7ed8f84ce2c4e5f7d386ace40740a2bba3b86c014944f59178f9376aeff4ca061a3b70e4c240eb516606cdd65e1478fc9721283ba954cfbdb457f8b74be616a604e3e4aa661421bb50bf20dda1dd015f2895edaf799198da528765117b004a826d6dd6b4b5c5cba0c5cf333dfaf2b73a9803ca525e0d89ace031357bc4497423ce1219b3fe7c69de219b238c00989e13a6eeaf71d526acf6c4116818f67f2e25297aa75670a2c36c5295e9b5f92cf9d732d3b94ae97ff7e11107986b9f1d4773a0bbb8ba2caafd7548e52ec15c17c675f21e37adb35531e1a714973a615a8b6e53e3ae1b5ea203a1c3b5852e0661c0515254d55f1634ac890900e279c7c22947ef3797006ef77faf8390206df7e76c092f80b09688054bc9c083fd5a010f0cd8ab78aa423eefb1814e564d62320bee5aabc742c954f8eda82f22484b1ac896020e5a0df21f80b776a3720a3d06a264600502f882e6e8a2a36e76592482dd5112a8212f4c41edb5fe575f3e3858a43b6129f919e9ca1a3547851472d349bfbe6bb34c2ac7a6864fe02b3d620212887915b396b1e1df0e8298ab3b1d9bc6a20ab77bd5f4425387be20eefe476cbe4f8317abd7e71b5aa06186cc2e7ed1b094a6e01aac2edb5f32380ead6371958b8047a70ee462ff5d20ab9ae78e0154232d9038431c84b97f34fb1656334cdf24cda4fef83cda988868646d38235d1edc86181456d89f7e704af2f27dbad6c1eb2611ab3074a609b5a591d3ca7a1f5112b95c24b5f73fd8408881d25f9b26403013b48f051f78b0ad16640ad0b1d278c3c33e71079c65ee478717cad39cf360ecc97cbcf760e96675191d45c7abf652ba2a4d24794478fbfe051b7fe8f08f8dd73fe96fb361e9dca4f99a59308b37c06e7f5abb08f78f98d8c47187006e8d482bb30253b4506f5748beaa1ddc0ab922286685cfd018377cf00f6502a0b6a870c3680f21ff3b5a4438ff459ca328b9c6912b415c6b41bdb26ff3ef36f6bc9e36867d401c2166ee4f1dd66833d0a11e8f0f65ec88dd9096944249cf9753fb64d92b287558c3baea42b748c7a4f10bc958f894badd62aa959a068253fcc48b03f0e6f097819702507708a0dbcbd374916c569b3c0466bb259050ed0045685eac7bbbfe4f71f43f7e2c3c0916beb9690b4ef65503edcf4d10aebc3986cd2f85307f20465e46ec16542341e18cd7171da09d3605f2c324a187fa00c1b01f5ee1fb3ee039253fa8679e4288e5dcc40b328856ef17ed0d4db1cc1462d8f2d0e386e96941da7ddf73491bc86c555774f7f5bec23b72836a673bf4d9b3247c04322820d7a2e7a200bdfd96fa2b98d7fdcb389d52d9ca9ac52f8d09392d48a7059314d8a47f27f3c824192d802134abb3e86602d66800a46d57a9079c242215409d7f01266043d57a2d2a287f34557a44598dfb25c06505b0cc0d5d79c23ef69ecad40c0fdd7fb1b0401853de73accda29295179bd7cd5065eb8f6f97950ce0df3f83c40444191330031ac71aab0739d0d44f069071e4ca66c97f12073182c876d69f3541b6ad2d12b4ba3ce65c22b540d0e49be9220155edb7d29010d140a7da46d3253ff4b202be5edd9b3703b4e0ae0950186e750429522e70f44b2d3b47b018a01a5450916f9ef93acb1f3a21fec07c7632764308678744d6906fef2e273c77edf48abbff8f921428b115b2956cc9262b3d733d2c173b1b57757d65af6385b3c5d4e33ae006c1f8e424c99e104a16a1f152395f0abbc6c153abd56bcc8021ce8ca5d55c8f4962710539039f09a0536548e6970f441c800c51bb08a8ec3edcb73522d7c10db41f191f342429a31b5c8cc6e5d3ee950d4b36fe31cf81803798889090ed453b13a978cd276e75d171524ad48883e97695dec336de2f954eb0b53ce3a5f69213bd394c7eb790d7f61aa078474c4fd3d00a875e5bf56eaafe46b29bd64189716f360d22acf489bb1509d11ef01c12ca94d3bd4a359c21df8ed45ae9c3241c5da16bac11586169dcb803f6f72df84c699c462aa3624e2acfe4fa861510278776496bf8acddcca36a92e7f1d66f6e386bd93ab2ce25d670fb80689690e6070ab6168cf47d4357e66ac5a76b91af20ab1aeb96aa6a5e77486e56241ea263f6c87dd6651523b3501978231dce0976bf825b6a5360e16d6245791fe0bef819dc8587d602c9f428256021af08f22963d03cb493d6aaa46d602d5e75d87e272ad71e2ee7b4e2bd79533e4f06a137f96d650408163a5c571f48f3c377d3a97f89767fb61642978c20c837c287c0d7939795ce7facc4a735396bf5d201c0ce0a467427d27f731189d3ce5e105dfc7b5377d7639ebff016468077c1642cdc8b8aeb2aa82cf535f4bd6da2aa4ca6ab02d9ecd426e50dd34ca82c9229de9b09ffef028def56041b1ab625dda3e0f32d9ec2f13377284f5934e67f8019b9148a5b8d7402e6f84d4a7e9e35cb05b09c778630f34222da73790146473df163a0053f07ddc8163bc23c8985ba81ae567c869461114a1189b40e4ce132c732fe3e1031a7ee6d0a204a01b0cbbeabae8aee5a8ff5acba9268eab08e4beedeba5b466780d3794a9267359ae42e2bae7493dbdd8ae2edb01f8484bbda20c2d67389c80538e8731ad30b41013e4dfae2d446651bfb90643c562be208586f6f37bcc6cc69e64421812b97b77de4c8493c8bd4855c7ec62bae3489538278c2fcab169c8234605ddbb212d466b28ab99392d6a4e3d7f2be9bda1bea6562f96718e05045f8d99ca1a80b97d02470f2b536282bc7cd218b1bb901581aa7b6be1629167164c01ccbcb667ca7d7fa13433c53421aa0103e9e026cdabbc8bde6f8905e73d0d9d8a77ea4d86db90b6ef3bb1784e193da6cdeca608a2a42320e8121de3cfde804a1616510c8786a94d8b4e766bf1adf610713e68936491543b1def42664f17402ea78a55de87f697ea8e9ba30f0ad301027ba3834eb0db9058a8e56d1481aa2ac0dd96cc28ff6fa831d3d1261cc8b535f3eeff6176e93fc3546197a19902cbdba3d764934960c7918918a746404d34e8c57ede161e984ad6f2c6ed46d8d4a1245122fdb762b9e5b3fe12563f0c85609068bbed90b4bce15a245b91106f6acb5661dbd431329349a6df9e1aefa09101399e367e5acff0bc7e503873ef6636d85e4b203c2af8f18416edddb492f85811c351ca08ea5ce1e65213834617fbf1cdae989eedd4ad74bbf6365eeb91daa640f81e9da582a0713f622f910013adfca4f8dc6c83d80e3628fc00b5065ccc076f6dfb0693a499a0fa97ab3b5ee916aec7b8fa53ff463741996d4829535491f93535292cb40db91c1f7657d75e512d2d99907e574426d821ef41c522a4ce0b4e5d62ddff0d4a054c0a9c2fbcc3f6e364ed701b9b9b884456a18e8013cd1b91a5665a44634ad41071ea9c5c1994ce65fa8d9491ba3035d92f36465a7b27a602b602f8cd4039c6637f4326c6109d7b53bdb44a8a4892e080fcce461876101e3eac977debd64a193b246d7674baecc2b9e69491327037f5562a9ab8d8fd69b6b655c157a9e01677bf8212233abd5510b29fd2809ea4f5ebaa7460bc01ad167149e8ceafceedd5991525b42f609fef0adfb405843fe08a34e60ff8690854827b9e2e40ce6c07e63ceaad24744ecf953937103a65f73516ae1638d11ea928189ba9974f4d08b14b9d5be80c536aa966b7cf8e7327925c9caf1f7c6d1c6badcba91b28651bc6712a8a62ee67c0a56d46f8980c23b1b06c85a0d39de07689b18f22d794a04d46544d051d400398782c5b9d3f0cb4466e401c2178e555539bf2ddbdb9dd53c21637a3739cd006443e309059a33501d54ac312c37655897695fa331e4d988593e75abd5d193f66b3314d15e69501dc0b2408fc513c414e23ffcd928c30ba7059eb5652c0aead6fa081cfdd06d44d8948472ad0ab88680a4974dfffc44d1b033d0d7fbbecfee8412737741e9f6a404150e6d56c29b1de3502cf8602d32a1861dae6d277f963de50ace8f6d5d5f9d5b0da78d30f9797b3de6292eb29feeab460f39fbfa8c28db0e21273433f4a88b278ecd418debc578a279770eb86c6d0610bf2215a957aaf14954333486158d850ac0108b26077ed07c55106072df1520a213b493a26ca9e04d6027aba826d717855083b4b0360554a818a25c8b8a416689350feca6b81863c6a1734dcac6ccff6f12a2b449505ea66b98c4966c39560ab09c460b616d80e6de9c000772e236af4ef6a01fdcbb4ff44df550ea76f43cf6a5ef96d10fc3d1d853e7e30ce1ccd86e2340b937bbdd00008f943c519e343707420b9cd0597bb8df82924663ecda905eb99ca549f68bb8ca21f1481d6c6a0828a1193ae1f87e28773bd43d49e5ca09dff6aee8ad92b4e5b1a013133dac743784ea810dca00c4e51fce2e0503d29f43722e81c80c64ae2e67a5f51b4f21673089d91b7781b8eb3bf1fd478b97b55095e44c807cd136ee91e738e66d2eee85d656629dc05221683ac66a25861aa4939eb27b3e6fad62316a520fadabd6ff6b8e69d0344a3e1d2170cfdb04384b82fb774ffc4c10ad7591457999e20704afe6abb346598b08694788a25356af7b8778419290d8cab52e4d1265a8d8fe5e041497433cba83a8854a8cfcebeaf92065475ac42120e297cfc5683e06d94443c03e479ee637dde59aa86cd61a9410c093d456a024ca05d3bbe2ed459f72e4cfa0f63bf0190390c8f5540b9aaab7d40386cbbadb3a7b530c5a85fc98279c0a3513072443868ced32db64f92904b28200162df53f304366c3f21f48186542ae689b93d38c4367da5ca550d592964f3be9c613dc24bb8a8f2f6ef12cbeb7d3c8245fe7ecf34f829b0095bd0569ba7543cbff13ac19c0b2fa0a5bfa7f9640074cae4d9981f67e17dc74d179f192616ac80415c7b9ccfba4e60e4a09b20a57909ce1a26c49047d9d9fbaf7a6f05a08aba088e31543b34768c422d889da533994fd585474cb999f8184ed69af79caf2f6839a6c451230863d697c0ce7a7695a7619bbea0dbb3240f2329e3320ee40903dbf50aadcb96149abe6257ae076109fc219fda1cd842921f4f8b82219b7d095add71b045894105a785a4ccc9974f83868825cfa6cf5207df95090de71767045d947a6a2c7625150bf550cea2066c884641c77bb1f4adfc3a9416d42ba073e08686afebc666b9f3bb09f33521506b0cd29aa364b1aaf226cf5d37ee3792e88825f26587b9ec6b509f6e4ce014b98376d3c4924da0221f4d701f10457abfdd11de733063703bfc4e14c779baa987cf82885ef1f87a0744c5a391723a052d438829fd44aa9b1c5b436bc96542f64b1ecb4255df45c13a30ef243bd8f40f64aea7d11a3ba2adf40578672995e772b87660e6120ccbf9a0276d6183f246715251f1768bdc355dd70d6ec3529590780acb046efc69d42dfef60afc943a312bbbbce90b2602a825ac3cfaaaf39708cb02a2426840635b69e2f63b4d10ab2fdd3650955810b7a5c6620adf3d5705400d6eb6d675f5692a3da6cfd8de8d0de14fc479a578451cdcc237540711900f1a463dcf9dcb88fddd4077104eedf08518e9e8262b5c6cc68be1080852ae7290f8642e527fb47c7fde8b74ebbced8945153b61090d47fe8f50adb935f31160bc56b504539b0d7771bf3adba8a70509906f776191f251bd197af5a738cb2ae0738a6e512159c89ff6a9ef42a3a38f407c45f265bfcee47a73de4d30ebb85f0c3e3327cc96d16a4fb2994feade329ab71a55a7932fb8422ea7058d4216d808ca35f55d3ba8768d0d5e3c82138e57690cecfcb3a80046fc5a20ea4e068fd1f1d473ddefecfac75fdfb035b77014acf226d18eda7c783b7cc7294f708fb4dedb99bf34a2be805a22e671629ea05bca603bdffc011288e67d83fbdb97a23fe6fae090949db65c77aa4dd076ecba8a95929cc1aab23491378d3e13bfa98996247848acc9ed2b921ce28a5afddbec7289995e93199bac0f4392eed09a51f81626f18ee46e027f403847ea2e4da725438b3ec95a370ffd079042c691e180000876f5adca3131626d8d6b6e3f8712d354d7799a905683b55d50a97bc394e61626498ac4566230b29fcf74fec20be0ad2390fb185d3512527362a7dea98f7d27fb96a7d1d3c59cdecc289ae42d225c96c222a5f67407faabb5c570bfd023ffb97489ba3e98a476e25a8bac9c4bbfd2805f2d0f03c0281dfaf4fd0a2564d26b266ae6233a55b1a2cc38e88cf2536e1272a8d402ae33fa8161adbbd2d3e85a84d9041bb7e106b867d84f9fae701563f48b237dfe598b6dd015a101f7230f2d52a93cdd3e3dcff9f215cf469d1e8fa4ce29ccadb57ec8efd90966eafe279a889f39daebf40846bad2a21334778f9310ff0c87798e9ba4b50d30c9223c23953b7a70b1510c5007ca7d722f076c404fb268993f2d23fa5ee8034b29285f5051fcb8fa05b528d78ac9caa650d84247cc86ee21c028c34090d4f44d2b5ce6f7e5d16ee04ba8e3568e7675788b8cd450cd53fa4497b8f1d4ed073f4d6a09a4d62cdb7829b6a547869c959fafc8458eef99a6f8589c7fe30d273ee6fe048741d47409f691455b57f57af04bacdad7f3399669dbe8e47e0437461810cb2ac3b9096511c94e493187b78871e2fefaaa18b9bfc098403d1372623fdd856c0a9fdb17cae91ae283813ede579bb090327a26a76906a609764f800b97ed3521c4b0cacd47add4ff65c95bc30b7b655c6eeadb7dd2d284f718f335894a27b16a4132801f29992582113ead2346bb94b6420d09d56cf2338456ddcc506432b05e141e466cc830016e168d7a09adac37269f801691f50fb8bc3e443208e6918c87c0bd3e154a429f071c41f98653f029cdf4027b61b1a09c1d97288b68f25fc2540f37d963a3a6faf6e735d8408fefaa609101458f6b526c7fdf76aef060cf761b52f861c0271c517c75c3b6c80474dfb130dd971b10d438135806a46725e8eca6b33d70381688a7b40eccaac7f48150c6065f262efb52186f1a2f2d2f35771059fb4b7755e14043ee99a5baf8130e6980c41ebcd35770a2aa97003b66d4d5efda636739432bc0320d8dea65f37747f9d75868b50c28c3768b0d3a74db74ff3c5d67ff4d46b040c0ff389b1ac662f5b5a27086852bd034b3c1c406b4cf9068cc68a3029f82995903435f9cbe60f7d7b6ecf6342f833fa77e342a2889882b2c1a3f36d0ef11f29d5077438c2acf2012f7e01765cf65105d825e15a8b5b2e170c4ca37c6506a38a4c304ab1bab433662d841886a1273398d6bbacd65b094b3590c2030ffab14469fbccf7c9481f125569e711320b9362a656a3fa1d02411f371578dad6a3ab307df5dfdf2fb60b730b7f00ab28f1a176d7db4ed1deb6f79ff46b23b5c0f0d58bf240dc8904af29980205b09ab309e93286e036b40422430b9cd485f41ef882bcbb3f7634e88520e2413d08181dc44d319c213af29dc8a1bd744edf7fbb8e3622a6d8cf3ac37921438e121ebb0311d83e2ff26c02d421be8878096212d2ba9863a11fd8ba45e36224b7987f67939ce04c4e2817f4db2071b09efdff469d1390967f8c2499ea8b7dc42721ff841cc11ed2125ed856d34aff41d3184f7588c482dc5301575ec9002a44eb768df465e34d265703710dcc72a2390d4e81cdd285d3cd6f377b67241f6ecb0dac6bfa994986a1e1fb0fbf71dc344249a91567024540dead42b5b70d5e96b696503e9114133fb737fadd20a5f783aacb3a9b40f9fdcdadbddb6a99efc240f0a71c98f6a280f164c2d08e9a7467d4a21927f165b65f969230d6646158f62c9407828067d47c9a8b6ec9d88227db712f02e046bcaef8280744dc7a7a67e552ce0911684691e125b7e26ce2ded73424be0364f811a2ea4ab660c2f9ba6b621d37039eb7f40ea323df6c900d4f332ec584220196953f85d56df0a33d94ce7df9c955fe1963e9a80c65ee01c524375b7af4c0142630a09023038df30aa25ee1cb7ccbb9a056dbceb237c8f0ec78f2b5b05d3ee4a62c176b9e25be6c39a42895778574099b0a89374d637a249166cfbc153c1c6d81a86bc001a530e51401d47860a5320c7bc5107b1a167ef4274449a89ab048d37a4328424d9fbf9800d5e3192e54b0ff0b725234cca1320f1026ef385d6cbecd4a8f18ecb21e57abc36f984d619d6404451066c82a4d667537edde03cca4903c126e84a6bea8843b3a653e6a46af435d6a1ae64a5722fbbeaf856de68ea635436c026dfd0645e01d90262e4c03858952005993b9a93e2f03ba82887781bf6ac0a9c44b99a947ec3e5bff349e33cc4227d8197c15c01c1044fc1c2de0fa596c13ed645f2bc35d5af52469cb039121c69aec0e076771f71633365be5c83e4038c7380af32fef2178edf26ec04e390ead1569893b28ed912c0789d25755ecfa5c46e32eb177cecfd9c105fec2f76f868b47e22f3a6d511d975b3680edee145cd589b2a5c7f268e717baaad0de67bea505d1266dd4a975ff2e0fed6da237c359b6987fec7853eb6b6ac3bf7fdafed340330618f3effb11d5b6b7536b035578bb93265dbf47bdd2bbf638fba159ebe6ccdc8a1b8821d15c97243ba4ff773cdf64f338a569f8b6d6527cf3c954fbb525858776842487a49af6ed372b2f772eb7bde16f2cd294a309f951417d8fb40012a897f34bcd44de5ec031ac611e013f6d5e726b858a700b8417587bd2ba2c09a8a5f4ee55c0ee219bce2f5e3b0cdcee2a99581a14724036d98486c0c45c3f5db739a373e0bfcdb2413dd4e7adfa408db88c0ec92354e0b0bd80ac7a6a96cb5fada2d6067f60df5de92d2c84086cc17c0c205e016a8dd2c21755c487584d07d1f2bd3306dbeb07e2fc5bb556fc31e2ba308d54bd93f63a492ca736a218a537ce78f3e0bc12ced1895ab6e8d4497a09e4adf9fb62f795a7318100c349cedc27ce30fc303b57c169ba29df62a7fa0d269b1e194848efca376bca0cce49764a41817776f100234c94b7c779970e6e8ac3b86d390a10f7fc9665f91e2030a3cd2a97b11ee75458bbc2b5c18e47cc2c19788ac832f50f132adfb3597c6e6b07cd5f77d35b1397d6628450f3158cc60b0f346b97e269416c8863f453e69cb881fb0537d9e36088fddc1a77862953c916a02577791538985fc4ff7ea6f3f0e555209da50976b4dc25490f70cac17e72ae3429b661b29fce6bc02e95549e9d91fcceddfbef47b3444251d3b542ae51285669296393162c309d54ab208426debb031962204e095e3a3d5bfe36f25c54dffc6a4fd558f28ae5f308dd45ca241ab188ae52e53716c8f54e208e18d6fda767899a509555c16557faa6695fc499ee82ac391994f1a83f12f168dee7513bb25d681148288bbbdbfa36f045568c6d0f9fd45280d90e08b43f072933100535f62828f2e64712fa09b28edf70573b98ce16b9b60e724686221b8a967aa9bf58113e8a976c646ccbfb412526884c68f725e95206f1b0bce6d9a8b2353f3c9e64be2fc0c2f17723a347b859fc3a45b8746775dcb4953ba52734ad0997e459f246593b0d5d51c14896da44d4951f40206922beafe10d699d42389d43e3ec247fec4fe7f9ef62f7ed00e6257664850df3fa96d28700e8e851aee9e47768a8d7da2dbe0e62be3fdb6a48a3b36714baaea2d4f70451afca44feedf74bd1da75c15feeeb8e52825c4f857eb529f986b8b6dd4719f354385913a07a0642e653bba73eac4c982f3ba5c320d71c0ed9f15298ad9b8503090331d81c4caa476375c6711acf41a467971a3869aefbb9d4f8a29b36be0552f2a3adecfb73b4dd6324beffdc0790abe23edb4cb3b167ed375c48730781a2072f2d0dcc5ff0d167131ecb958ff6197fbd433480d150b1fd476ee609c31f010fcc611a077725dc3d06133a7d803b10f12f4c9eb0985043b8a6dc9d768e65dea15d789aaef9712a75fef0d8446f0d2349d89b43fb247cad003dca7a45727230dc707f182a97443c1ed3a8777017a383b396cf25daf6848a1f2ebdd5a003e81596268b9c11524f3ce30a32cdd7a48f642067d3e83da059e522d3fc9e650f3e113f9b6684019433a063fddf1dfb6a381082af42cb2c2e151bc2d50d24905a62024e3f4ed738c2a225616dd178fcf72e4954ebdf57a2ac6960d9162092434b16f633a0b652fbcf9bcbf154ed814738a02ae1fe47d4a88b6c9f19b03412dc32214725f7ffa88e97044c5819bd72c634bca84ce1072a387f29372b11ac859f0c171bb7437e15ec79b49fb02899ff6f6906a189114846c85c85a1add892509c86521e4e04e8c06004c3f7f235ba4c693efe72820861d0f1538e7c44e5e7747b19b0bdbcffa9e04b063e975d68f96a63a43ab5c386e197a7f646f9fd59057dce19dc12bb07e4448e7ef7abbed2603ccfc8de3991c04573c3bd76b146956689ce4998efdb530e2482b136d9ea27a846a7e26d5fd0f7a37d37a92e2c2a300ea341947fb5f568e5591f3bf58d510a805ed7b367024dbd958f99df3112c436efc7236cdbd22ce6030b82d435ddfb787dacf3f89c8a34df11f3abb65a575a90b6edac0fa4f7c9df1a480b99edda5fc35ae0b2caa48b8b64ee34e20e4dd795c633a3a94cba52f044f14e4ebb39e85a62b8a3f3953ba1f6b4dc9d2c84c5862873e1acf613fbeb68ca070100d3e90dc63e6778e6e2b7e0a4632abaae8825b357755c76e2b8008357f8be5fbda9ccad841217f7369d58cdb24588f166661d8101e90d528ca58d7996da7780a056f8b8c359d02a5dc4d1b29656c8cc25c7d854993d643c469fb5c68a9029466b0fc3a3a9779bd7e0c9afc106fbb275599b8c047907126830718e90fcab6ac19f571c462a41ce34f54c61a7d2b8d80e91fa420c7f3fa0ca0f942639c2b8d77a661e9ca5ffbab2359a034a1658791da9ba6b2df103dde050b66ab3bcc6ab35de27446853a2115973cf23ab277f25c59cf183b8be416696106ca214c46ec7f231022e04afffda5d01fe111c2c8e2f4fe1b134ba005c76b9665736e63bf5846f3c954fb1a055c359dc61513f167516c3fe46a4900d0be69ea5a07f8745c183c3e1d6815a97f6edb2d7bcc47ffaf3c90bb69a46867c80e5abff2fcb9a683db6c2557adfeb739473ab1ae5847b33523a4f4d87ce94ed9ecf7a8951f8bb79b16bf5c64e8c4cd845f569ddb9f65ce0f8c2e0b2c5f2de5cf33a3ab2c0eb477ee7e08ba53d36d8a4212ff2b599a31e8fe81d5daf4f19805b8e1d046cdbed54d008f32e27e98812b6b21c7cb7dd643cbac0d4b051788465ae9980b2d25f51f0234086fc6185a65069c308d87a4f65c2dd4c249be3aaf8811f31e84cb37d0d7497f6d7ce365ac8503084694a6672fd4dca236a16a49a53cd116dd3103623f2ecd4984fa74ae1751649b502c07a9ca55bd1181526495dcecd1ae6483b5028466a14dd8ce0e0f99025e439deaf5cea5f12d3fc0bc75667ac34baee49e0699b84c71753a994ea8213c5311637283f2b379b21196d9dd84db4c9f66b33277a346fccd413a3897521471b66039cd9a9a7730fa89a689ef040d0ae4deccd5370d6ef66134b25d08e7cb20df3d9b535a058dc79d341af19d0552d3c6564ef85781c388001d3c33246313e15b0b6a2571ef22ae2e1d1fe4874ca20ae200f963b28dae83cbe9b70ed5a8ab388bca6932833f77af717d666354aa269ef99bb44cb919e940e9c8c636c560c949857bc1d2d5f961e1de24a52872dabedac45509f1835704fa84ff50b73a91964ca0bf7defc666cce2c03d14438c217c0e304da7cabfffe36e13d70146e9cfadd919490fbbd064336a8da6f1c3454627fb3f1ddf4e675b3ddc1567c8366c91a004afa9caf91b752a24518ffc7a0ea0b9180115283f60581f42d5ce57805afd73462dc165dae22fd5e1486cfbc222e0e1a72c249c8963a868facfa7a7d026da1f3846647e5e26746e170298375e08e982946d0f78b9d0b34a9fd31671b13d98101d30d3155378d4c2aa9c30fe621a8132286f32a0f74efccf41fde6b5bc1340a83ddd3e0dd9db78b41108d51f38f6ecbc8c1ff1189b5d6552f0198737e1150bba11d4eaae7dfeebb9c055e871a1db869e1ed0fc8c4936bb028d2197fdb6adbb0f3bf27026e34b105be97aea4cdc51388c8f1dbdc9a7a2ba62f4c5f0d2e3cb5ce44fa44b03f99dc7b7881b470ecca353ebd8c97f429aa7cecc7350bbc78faaed6a755c12bac48baefec538b4973605ab57fef18d8c1528b3e98f4728ade9b9a245ca51c324ba98aaf7a0dcdbcd1073eb1da049e8e27ee12d3a1b97eb9bbbe8d00ea1d20cfba3c6f07cf01c9519dba031c25d4637a19c6319939c345f6e0fbb4cd18ab3c7621c4c98f8b00f62e90d85877a08656fcd16e60f9a057a8744e3e0029031a5bb5a9571c3f0a28a412c965679b1a5f2c48b871d1e4db9b0da00ee3ed4be027b554ef1d6e67739c824d9610d39864103cea51b720879e286c3ca739b4bc4a9ac2e88aba3bdb7d84b8268fcb7d74b91801c09c339d7431a69538c2a61977f5a9c24b99063076f649f90573b38f407667a2d4af1d790a35efa7e752e2a4ec0eb6b4575079242701ec4aca6fa38dff4ee22461deee442e458248c7a0605e9cbc16a07b4e815351fd570515be96e9c01cc20badeb5bebd26f4790ed0b8a58ad888661753e82f3af76177cdff65765950f02022096a25b0dc43e6eb74eff49e96bf6889918d9dfb0478eb98206be0eab954d23cc151c5224fbae168a32caf1aa311ab5e92bbf27168c2e4c1cd8b40a0467ab58f4c6ad0ad18afa728620f06a71582cc22e0c96bc6d952f66a1d004e48b5bc696094870925aa352663f7a775d1f46591d9e52cbaf62160b5bea8c1698ef974624aa804e3e0c643a24f6ddc3f6cbd2eb89571ae8de99d54e90c0cb81bf3b9eb2d883904933d04284ae815dd3fa8e104add83a36dcf8bf2c3fff69f55881d01bb8021d413f63515030b800a907154332264a57222ad58d259af4e602a50acb44335cd06ea2ec6b60685a85a279a0be5cf36dc52f550b1fbb5b9b2a3d60246e4d9077ee29cd8b679840aec13350e39d9089bde2f2a36424f73cd4e340d5582ff6b070ba78e45e2c8bd18912834584211b16f2f5df1bcf5e0f93c04367d7febadbbd949bdbff40f6245ee19c37cd3fff34225ba4e35f7a215419a07d5204f36b494aad99ed8805d3013eefc44d922edf7c11d57b8b995bd86e9acb4d8afafdd7db2fdce494be3629144ce5b7fb2a39de4105526cbe2e5980f012ab6d28170b43f34b594ec33da22e9b1316e4a5b4430d9eeeee4a0546f52c3027ff21958c732bf6889eccc6b1b86f6935517ee34980ef60d93d4d635b6c7f790637ac53e489bd63ddf1f8290e884a7bbf63fb928483ffc9b9c591be67e3358b15d5d8de3d425bb62ac89224f4e173dd704a97fe7d2a281347b796d85c6f9a65fa157395dc4b1d16262ffa9b251273e323a9d210ff1d4bcbac7dc1d6f7751169e326ccb6d6304ddbb447b8b3276324aed887ee98d2c2bd001d21da5a2c268ec423393a6ff718e9e066ddf5ed769136021a2b729f6bb3c63b8d688d2baa8c1c347faa95f4259d24a7f852ffdbee37ae6eb61aa9ca517322492847e96c3f17590fbf4abbb2e3b0e545076fc95e473262c3070f24d305e984d43e69e3681930f5a76a800d88b307462f600f6877c9ec7ed7428a3408504f0fd3c0a3d4e725f837f8bcafef117c8416c2966c97a79d9a01a0895871e42abbdbbd89a0f718170e78a131d04b09373158acc96234e255564196b90e36b2bb07769c0961ec0accbda53a438e0faf7ff5c21dc227c10b9542636e30e522400bf660df141838b41feac1ee34b0aa48d2c23fcad6f1e40af6dae41d01f998a570928d0ae56ac38b6081616b01b693ac8e356dbc3c56e76894c7133253134017e07de72f946058b1f2522e1fc9d5c2de0fba20f8af903882d8af9476e69384cb8f8dca399d2628a6deaa66c8598735bd6a1dddec9d79ea4669bbdeebf40014efa44f86052b5847954e2e5c53a9ca6dbca51160b83bab338b65aabe0ded0b62a9da67e14d40a52e2c3c12f4085e36eeb37b9516393239ece746b0d269be8f273155639265028e3703d1eb280dbea4c2bafb5fa3f0c969142b10870f86b22adcf01297c7c1b06525963b08852da006f71398685eb6c0124d58a9823c170c9b42bbadd8a05413f899ccfa6faeff377d1c2b7664d03933975d398bc67487e6f2da0f5e65b1b769fb9e12e277d84fd75cc8a0119a39554407af7e1c22a8cc0f0d6e6f7217842625f01e0158084ddffe23136784bc0b306c8dd06f62821b8fd66986c0ac1e1549f72e6a969191e97258c31bee05986d319928f22be759e49f06c0f4c337cc54ceffacb6fecbf9a03174cc81607339b9c28cad6c7af7d96fbf8d1b499926a7a7d6226d9aecc6b0f652633ee9eff2e2fee11d2d372b9a5afcb382585d53b0ea652ed2ac9281017a851d8ab07e3104907e844b287307e3d81fb08826cb9c99c35c58d3997fc67b6d7b35438d6b8a8f0331c9486ee05183053e09c985726c7e1e4b68ccc525b4fe24193b2ee763acc65a41fbec1b66d7b9f7173efddbf5c9ed9c69ada19babcb2c0a35b943351a22e8e78c6431f78d8f043b374d43553ca28953dc2ceed11d3fdd3fb96308ebc9eb37a826f0a64c05cd3598835bb641f1ab9c4743ec2035eda983af21a67973ae2bbf00d49c0d8820feceacb3aa0586045cd83e2d0c092b6e59a65901828d8e8ae2a48d91bf77fc53fdc21dd2df830228ea2c58a0b2da005825a5267dbd5f7221bc31b80d16a3b3b9f101f5c09968095365ed1093c5f66b47d8521bd061665abdebd07729a971a78fbf7083b0573e9a42d8b1cd7375ffa43c282303c6894760ac18a01a7c7fac7bb9082ef3aaafb61df27da9baa297032c1a3fef5741802a93bd5a6032d11f7aa93cbd46900ad55eca28064fdbf3d0ca932ad3926db72e9e43c746dacaa7e33211c23b3cb0ff6eeeafebe9b06d30908ca998cfe3adb2db6e63230b07dfaf197d121902fe0a0dbf2aa404d0bf5994d89bedf38cc6ff4f3905aa2d9c909a52f8da9db4ed384a8b1798f18501554152dcd198b199604ac0c328e7c6f07a552960142e280c1e8e26a273b53feee2e90c67c159a812ac63ca6f3f8fd54e0860836e263bb1fb02a95c76af4f4ac101255c18fd8b968bed9f47a96415c1a72aa5e2dfa283aadb7ddd0200eb2481054a114e6efaea9b87cea5a6a1f118f90414e27e42a97c18cddefcbfb5a137035a2f89e49f5ba9ba811e2166ee50c56c04b8b1c0f8e353200329de8f1f0acbb436cdd99147aa645c857c6c9e773704116550f3c80b33328d63ed47402d5f57b9c0d767bfddcca4cc566b5078b69c4b61a33623e8cdeed84bb7a891f8dc8d9400af22bd4903c175bb2b9284b2430ce2d8a5a415274dec46ee6a8773ad318145b63e7095019c6431bef32bb61cb62a6d77792e23c095adcd2cdfb0b5ab7986bbce377ae52bb957becb30e7741cd1877f451e073fa0c467e25f497cb212e583be8101678300544160c05fb88d2d0318a4c963629febe9c801042431e9566cfba3c9c61c0c2dd800b5dcf060095b34ef1692d5859877bba7303e2f3531bd0614e4e4aa24dd517e96a144d0ac3ac8e416f4afb75a0b4f1707ff5301ca77e4302369d70d107f8276ccc07f7ea8062b9b992637139350315617762e27bc543bc3702be9e091a8c9e2ea5cfbb851d74ca31dcbc3d2b3d9116e1f05dcd4a52c84182f68230bbe16a1a1001d86b28477891ca90aefee95d994e477540f26a7095884e1e7d7dd20d37ce88a55d5db276d555869abddaa3026969101e19eeeb5cda219ab551699a0243eae855b003cd844b38897b6b1e0be2da431c265031be7e322c13f9e38005b54c0e52e50045998a8bfbed49b165e914983c89064dba05320eb9f71aa58fef0a34e88069b40b043092539972bb75020f1a7d3fb916aff7a10e5cd948ed65af24e2a70d5aef8bec818a802839bc7c22d50bc4cd383145045984c5c3375d37d5b350703c5c5d59a6b519de0c7887a270b8b217c00c5e5e6065a2faccb20b84457d98eacd1f7631a934c6d91de9589f7538c689b955c0a832712f21493ddafe6b6aedc28226e928de2b9175b3fd2b25daf8fd8473fe9560f4fc1ccda762128e9d156029f0d7d3606a25dabe9eb9336f36abdebc481adbef2393a4a75d5e55624c047848bda1d8730b79bd07de6cb5a8c0013d00e6c4cddf0966aca25aafbb0d71f8adb7a8098a2bbb0ba3f6bf027e614d984eabcaa81719a908001de243870ced9acf393f62c0652a63845e72985a97cdebd4fb424d3dc4de4e07576e85c179495caadf2d8321722ef4145276d50f3b3ae2149aa8b15a4c7a8bb0435690ce7b8cf805ed26e759ef6f09734cf7e7219b881bed9768aa0f34226f05ca325f06726c4044e885b8947df89fc1bb06d4ff4af14ac2f377b3a172a62da80b5b373e3839e163b4e84782169d68499d6bb3162182ced3340cf16035740974940dc1ceaaaa26fd3dcf4672267560c5ee92a33c4007f4900e192bdcde35b46e3bf3e96ce2b3f6c3dd6cccaa14ab25fb1d745567f571dbe63f5b6552e8bf9d24c6e37f727e23b1f9100804cda0ba39cebd7010d7b46a31260480a970599b5d7d8a901b1519976af5b50f3db6ea2beb2fab510daa79fcbd9aec60c9cd46acf42afab50cee9c0dfdd1cc34028e00d2be7df71be13725933a4368106e74180347b4e8ed8df5331a9d5c9092c6f18ee79bb302e7410541b6074977f0c31971bade802a481053700d9f44a0392b4e4ab2e9e976e3a2e43da5b93a562dd044272cceb701d40010065b20ffc065d597231b15951a6d4373e8577bde6d6bfba576d86841000ca255cada6cd30ffc78fd832af4caf1650a3c6c1063f14d7cc2509fa8c20ad6ca540bf41c022aa53fa598d062e1598fd1f0760b826019dbe4f2635ead64ce6354954dfb9b99422a44697ec0dcf7d051421ec14f1e1b6262c2660d764f24fb1c64914390133efc6529623b8ad082b845c1ed4f13f435304b4498793e60405d358cc9a8b8bb646b6decb3393d655bcb741b1e587c129b1c162ed0f2dd29aa9687bbabb589980ae870e26e9851d9ed3d204972f6be7efdd9d0fd9921191a8b261e96faf678c3ad1c1eaed8c7c6458bb1f7cd5deb69437c80a7fece1cc435f2701b0dc8b444c1cb16188f904c6122a327d214914864a6d2c2f55f49b9002b77260a55528beba253058a3cdd898dd0439dd70763f7c64d47867d83a0ab4add016e82e8d95673862a50909688e8b20059fc496b8053d652e0bbf837e35324e912fdb576e48183968b0cfd2fc3c19c6926ccd6e27c6f2524f9a7b69386b2806193cca37d4736ae886b0757030f324c0863d24d2cebbc72331d691655cdf5791f7381fa957d23dde53c1bc8298f5701057100b3611996f3a58492c20fdb1a75540af954fad4e35e38ae2d8858de924618b0e599a4f389ef29a4e2ae07d63a103e0febaee4d8e38c571fdf34b97b74d2dfc58f5c730a78e3d9e7e9f2d3cadf3c6d5d47410635ff13b32cea947fe4f5b799ef060df21637b4e99505044dbc7f006327079fb317050dddb538ba64b83a31bde6a2937ea16275732ca39569b630eb7fc12d5f97e830822004e9c3bc2cfdb94c83e768a6c8a57548602089e66fa663765be68efa28a107a1a7bd7391a5ca0788a1e8177efbe53eaadec9f417eae37c5dd2365404dab237136bfa6be0957f36501ff194e87636a5151569604f19b637b0487d5072c3c40e385166c2c649ab88f64251d2e7be66c521d47b6ca455ef0e27b26129ef4302a41d93bfd54dabf36d545d10576bf692e532bf67fea038f881315a44c6f8643e8e42b372174a5cc9a6a6ddf5981dfc90a73ae5aa34f032df963edce072222654676b69c15faa6387311521037b7f0b75cb777f5896dae2fb6aa61249b0defa7535f39210926c75c37e12f73d1e868a0064823d1cb01a004550ef956b30049dee150714ca2709c43bd9fffd4edfff1b9ecbb00dfb8a646590f66a92ccf5790a209d7e77e7ac6a56ec1a9d0f863fd9420797508c7d235785d442a1710c2637657a4fd91349b92a161646b47cda347d652190f70f951fa1e9ff4f4b2c2342000f6d204ef690899cbaca96842c92c499dbfbdd7af509fb36aba4692d6b7213ab92b7725994d35a10bbef9d5e717165f01555a5f0bdbda672f5d05a143c35766d160b9657af489f05ef8a0c09d42891756296913ef7256065c871dc3a5effc071ebb847d179be39406704ec7ae9544c0106969ebb4a518dab285235efa8307273a1806cba21a127f443196629d92174561ad5925a2085ccc2ddfcbebff78c2b63e463357c99c5c6db12672bd6761695e98c03e1230840f77b8506fda0ee24f2ccd7742ea6b45f8a5758bbd1d3e58b20fb59ea3f2f14d55072afe8ffdfd161f65660d2d30b67d9481ee54b7dc6d5f0276b33114e3a94104f0a8324b8ef4be7cdd475335ed45c8cfc58a2685ef822d79e676e2a2d85e0a286ce265ebbb4b36003749c05d42548ac0cfe731afffe115cd5c699862ad85147dd1bfbe58cce12b1c0f7497ea0113026d8e79dca1135d6ac7392a2bee3c8f92f8b283f7a0cc80bc9325508be913b0b6554d47232ac7843ec551e69ae2906df53fd3785a75d13ac5fcd21d27a9eab00ae74e877cff13b8b13a4b339d601de21a2ce79c89afc7dd9f43cf784f3d07983d0937236639aa34c32a4d882d8d0da71b4e28f1e6c6d4e0fe28481d21fb8d061692456fe7d3d8a919affdadd911a0c51367b75abe58476d28be47c9d1ffeacba1cf609e0b2d06101676d0bf739b93ab77efce3cc5a9176562ed6a74fca98695f502f0bcc18cb8c6ff42a598ac5ba3d1888fc5361f1ef888fbf2e757ef1a8a309ade853c9e972e3b1668b6c4da86130545a8e0afdac1f51f00dae48027bcb38f610d5b5ab1db8799da52d752dbd64da6bbcaf61ac3c1a8c2520a1ee722b73b07b2aa98ea04497d4af2fd021f8b078e6e0c3de21b7aeef42b94badc41177cc870f2c772525bb3a93f997a3a70d05b9e8e737bc3f803415a31ff753d15e93e7329a6e812bb78526250b970b3038e17a438afb313015752d544209ac6b1f374dc1bf48652c796431f29629856df2104fce6ba4887d408e04f221ade4e20d0595048c88e4556a205748f8b408e8543ef26f25450c0b3e74da18afbc833344e6cfb7c7bdf941c8afc97fcc1c964642e29c6470316d144291f1f2e8434e03d40f02e30f1d0a81e34f27ed09b29f3990607a85454998e75db81bd2899d1a2178f6db5ae67a7a355a791819f9b6a1f684f63e473e90bb3656fbfbfb193a3d486492d3710cb232c0996ea955c7229abf11b1909757052d08289cef8e086814f2b07c0aea337f307a8bcf017626a18921a5c8b560b128a1240bdc19bab939834770479edc57c3c862978fe219b227cb8a5481e0c380380d2137e559c7a64e60269d2ee2f54dd17ba418e4d754fa7afe9e97abbc401d839f8a45a669ffcf3bffd01527bc22cff1085f2607ff253649f26b8ad4fe30aee692d528a787b15d54ce3b2f8c0b56ff7a87143ae17a2a1624d444d7e4b0fd9c5fddf7cf02f490d4c07f338081fa371a5d45d2a8cfe4c95c150da68c524c1df69921442fcd70361ab4144a5793f81921a7df5ee8700a559625081e349d4de9f12fb088b36ddb9d6909d6c88d88c886aa1fefc92af4dfd3d4a8b615e9f57686e0fbea69fe3534db7d192767c30b427ff12a96b09d3f892fb565311e6fc2f34b49b97c5a4d870c44f1fec27877c2b08f28c4256467a7b652b7e8dc3a2b8e1bbb8b0f53db0880e2a1caf4b980ebda822dc4782a971e4329f6ef733c6efde76f8491478cb5c582afe3d7ca2175af6a6e3464195b4c6e3db8d0b5fd350740cfb4ed3dc79bf077a6836200ab964d9dee45ff5a89d83ea901c2b01150fa3174c018db563828322f08dce6aeaac33acf1e5986f852d0ac39ffd34d3da1b73ea3a1df5f126d1eb41d603e9a7aa6b0424ef71d101d0ce1d19976ad690f842ac5f1d695b7a6bda59d5bc587f3c3838493a9212f2a15c7d408f4bb2dfd7ff627d6ee20252b889c2aeafb6bfa2963b2bdd346798fd6c3e2b3bb7c50b8fd6996bb7774a88651daee50dccb28d4cb365b1caf23c9695aefd3c88502a0be98dabe37b0889a169ce7f506ff8dfbdbe5d2d09629b9fe28ea4e0098ef95230a1d681653bd4c175d5bb8f470250236d74ca03c69fa928199670bc5ea9dd845a92eaa41d0480b23330b9aac15faf1d5fa26f9a50e38d3518e4e93ffc072a1a4cc774694e2019b48b8d6529e78c8cd779473d6e62f55fc38402416e185353022e136a53cc045100331af72099cddced45cd966e8d5e5bc343a0a70bda2976b40d3a2ce5828fd8cf63b83be8e846f2057238b040b40d203901766e12df6b5c8e5aa9b983ee95747858ac60bc9d717b6151e930528f4ef1d8ad3a4be3b853f1a167c0ebaea0c3a52ad4585371b15c0ea758ec3da828106da9f9a7b8c769612ea2eea805ebbfc8fd4f9c0bcd01d3bfe956a3da4d1a607b7561dd8ea289ea14cbf789bf155f83d87bd4f9d95b83e5ddd5ee6e4a68726bd946d814fccf57a97839053a8ceb59bc778ad6388dfa7a7f374f739ccfb2be50caf3e29d6cbdea077cb948e54aa4a54a9b78522a9f09cf6b0d65ef338c6dfa6acbc1673b12d9e1d61d8d5ad10310d0a216885fa446bb9b27b3f57fde50c116e90d2045f627539de26697bc2c347154505aeb7d009444ff66b132aa694d0156529d32e79856f46c6534f00f840659e16f824c469b9d658b8fb89610495142defbd52b0c3129acc890d2368c4e1ba2cb32b5b78455bc1a6a3d63b714129c6962902bee449491c96b0967ad8362e1cb1d5fd1026a14d8886bbdc89c97fe3d15c3913fb034d77c0f98672b67567d7e3899cf6c0c0841c4762393df88d56d080093d1479d6fd777177ab8771376bd470f6df0226cbe49ace5f4f5af584d5f0ec37cf9c4ab1db263b4a4fd9c2f0329cac55c43336e961d909a6a4e56e9befcb416a2028924344b3a47dda88fa91b2763918ede6f74ceb2d0aa83bdd52a8f0d54f52ebf0d942dc9e237ff24623d2a04694340ea7b16fe82cc5dab93baca4b80664185511b20a5181604914d8f176570e3512f265a9b4d0a8cf5ebd98ca09be74ad197b0be7b1f665396c1f4148631ffd30e97624ba6344a7e308cc71246a4f99302462990f398a7e4d6e85c5ec251a90e504605fd3015484596af4e6385d010e936cbdb494c2512f3a852c0fe1d994aa2097488072dd18d92e1c190c886eeaa76dc9f39ae6d0ba2abc50fcb3b1c6223d19ca8f9bc662aa613196e6272e8cfe9eee37b8bbe134c977327c41e6842295799dd4779478355a46e29a2d1f829f1131ac6846c410070f22cf7eecd0da97e6fcd1006be1734aa9d4e12a89aae153112f77a134d9966cffc8a2df4e2e897f7d7bc64d892a3f9c32980f8adb0c3114cf46b04e9f1ea8b41bf765a44d9b1b6e85e6ca6bf52740fb8e51daf2eb93783a26c866e1aef93d5488b83445b22b89c78ba5e35226f855b3ef3cc898c929caccc4f4c677734f1bf5c737352f2a34cc90902ed7748f0f27acc78098ad8c7a8b2a1191cd0b07e7577e8cecbf0af33fc4e12322f52f5eff745ab1d8339301b9ab0a2669dea0ee20f0ef2b67965d1209abb36aa746102183d65008f89c3540668062e7941031946e286238c86c3c8aa1a07e5af4cfe5d2d77d29e00891f1e32c64a7ab853bb2ae747321c72dcf08c863d93bbe91e47c784555e32a3965e35fef68a1b2d9a5495d52b1486cf1af0655b0886bfe353b52a87c09503330d6e11fb6dc2c00786a09572af4e68cf7ae053481109c58f0dff8f3368a0226d39e1897142b4ea17f47419f720cb94e1c365cb5d993773bf6f47209aa2f24091169473db719098547dc809f0419bdc37506a661d77c5fcad78dfe9619aece2e51a39a366f20e4a5757d890baddcceb49216d5402d1a8fd746919ad42cdc0db321424627795ea41dfc4f99d0cb0a94a5204cec9f9a750ed94bef02b8bda3b374514e4d922bae5a64f16f9ba6b9b9d07d1c6c969e231323c72b8882c9ea147ce6f6d7e3bb3cfc2fc2b3a2821b42f3dfa0a7b18ab1104b782d573c39c6fb043c406bf5c6f29a8da719fdd7ede9680266583cc5f83d00dd61e6b92730b09028d14e21140ebb69a3aa9f81c6ec5154cb6f98764eb39db62e13c4273eaf9090dcf28e004cbe3417674fc28c449d40971cbe5a65e5d1ee2d5528f4ffbe45e2122f8296309756fe4438aab461f69bb9db512a133cd48040a63a1e8eaed1812971aeb5eceaff8586dd99f140c5b612bd0dd94a4c54de8d06c6a698150d5e4bdc35648750b048f4fe13b5cd85775fb9ef7118114b6ad621c95ba71f4207be462940ce80107fa89dbf5d124c3abbdc76639956da9a79e4fe4056b57e1dff06b6f0ce6dfdf33ea1ffe94669c6eade570d611cc88d3fa7a6e91b086eab574282bebbfef2d56051e7aab5cfb0fd2a6a13096d0927427571ac11e80868555ac1c7c3d58d76215756c585e206bbb6307d9074519e4c5a128b67c04d09be934b7891da3157ae52f80e6dbdc67dc0f00df669cca63cf62331cde82a5f2ca6908a9355c7e46c3a928a9934ae6eb036687676adef17bbf3856a77c5462abd56e51fac8ec4ad1da7415733edee91c37c6057727d727ff10051f81ebb020b2f59def0737f824b1a3089be850f0169b4eb0430e774384e4f8295e2318530b34672c598eb61c81738ad03a15c1140fbf580dd2cdc7db93f0bac9e64db87e8953c32945364a65e9b7a3e9028b0df642131cb5fe7cae6bb64030a200838e4ff2a22acb6105d97951b51aa032e049048bd66931a285061b45c49d625e8bbefc4bab3f0128e8d689dab5efbbce2c3b49dd7940a96274a28a1fbeda75aff031827b69f1e2fc2e7db3ad960637728d84f31925be1ddb7d8ca6b047c77a09820c62a5ce15b7980d93e9e9488536e1a3e36ac833e36211f6d64ff6ca12e5f2d43070243ed4a61a1cc6998052826105147dff46b1247ec8d8fc3f99875280cdbdd4d96712e06247d79295424d03ef030939865fe4ce548842d2c7ac1168cfbcd825db3d178345301fbdff4c664b050faf2f746bc037d4a6f6044c40d13782e903fed48c0c78bbe7b758407ce079446db8254b3272c1fd39da2ca18680af7b30e4a7b4402795fdf6c8614189907896f3d7186975d7ac809d796ca9f9b11c22e15fb3df3e914665005de575fb5f3a9ed647dc8cac02bccb2180a1d58a45d3f32b21da1587e5d8e558e8b96d28cc49604a45c5a1cebaa4c08d41256ca3f4239a4719f4fa43b593746abcc7f70f67a7fedf9167a422f9527357331db771cba2f41ff9fb3a7205a4696090e1140257f8a1f2f261b2fc6efb9edb6f5b7cc2a8bdd697b9237af1ced623f6022d3da2d504eabdaf3a97fbfcfdba6635cf6070c0a2710315f982467d23793f121bba09af867fe9164c68d33998d995658519451a77a4860a9a64127106bee9a3f01681c647a16ef8c001f2f067ba7007398c0212ddac6f5df9724680ab6dc3fddee9869090c6bd2ba176529fbdbaa1c473412cd7caf17b14335b6972e8bc4f4eac77a096e6b0f307eec5a4fabe8d5b6a3eca13ecb0e231faf0bdd58507a2ca24ecf3bef71a87beeace66876659e6cf6b61fb9cabf024201fdf01b7e7611b49f4c75fdae4a8d34cb4cd7df07e047d955e352029bda289df563050ad3fcabe90975749c1226480414b23cd0c92541bff7d03871aa3ad852ab632ed6d25c7dbd8c889ed028b7729311914b2ca235d973026f6086c312c263a1af45e69a69dbae6a79c7e478db3619e895cc1ff69e3e8b15b996fea0d24bbdda1f6137dc12bc2dd38269160a92cc2c38dadd497cd60c25b41ebd9b7348cb26f2ef57bfaec928eabe5acf1d9f529dfbb1b399b846fd557bca4fc82e376a35ddfe9b7c4d98fb2422ff8cf64d99b637cc0ab4eff34a16a3d7e72218c0af5969a84bcf8acc287729e1a220014aa58919a4bbb07f33369e587ee3cb1ac28aa789c57d6571fb2a5dda312f7c7a866fe4838de4b04762e03e9987ab857e9f9e0854b742c6087672d0cd5c46fa458d3f22ce0116237e6085d0941e141f5b490b7bdf785f39b127158de547d676d639fae6a5e6387c3eddb9aad21de550f1d0ea2c757d527b94fa2d28674491e4ec6f3408937d648e79fa990c2784916d1e3bbe9290e3808beddfc3ce577d9b84d256bc987ba29b6f9965b4a3dc001ca9ba92228d02e0e984d1d97abb09a23bf672d4d004cc8d9e7762523866dcb775b278818cee17ecf1efc15d92772a0419d34f12dad60aa8e731ceca437204c61d832c12e9fe86867a5b3017c2d4f7921222202e02e0493f0f81567710492e9e8f2c462573347dfc37d2830152ea4c568043c48fef586a00c9739442cc73153ae80fc021675ffa688b95d34990e6f425a5a84da3007fa7d9a7454946c1033f90bfb70f51024c9c4cdb0398e30a58968a321dc59b67e2dfb7a398729d0a0f0546303239c625578062d7d2a42eb41b4c8b7b87b90a909ff35b993b2b4f4ee1eeba3d8fcb59cefb3e2277fda105d2270eec663fb57f167f82e31b4f37309a5ce71dce1e2cc092dfc281cd9f440f0fda9d368cbeb07c7f03de3bfd0308474243fc4682954255b20013c93f3f92cc97a342fd47bfeee450ccd458aa0b52797fd808e3add9ad19b2b49d0b4f7230769b61228d165be9884b90ab279e2df931476e8dacdcf8ccaf38527690b555b85dac29237a25cd8e14e09a2b185d6db171f0b50eb95f6db2f80ba020e963f3b6717223844cc98f31cb6a1b22fc4c270ae37ea2a0812ecf611482bebf1572e2608824e763ffe351aca523c4f738270dd4c7c75672f456e79671f898107345b6a6fc2343bd057b3b1a241264c7bdaabc48019c421cdfee02c101c5e2dbbe747769012b449d4f57703fc9bc25d9551c5292fb42026e83dc798071b84a34d65331dad092364c2fa4955c26905874a0e147d86a889436cfb4c2329b6abbc88a3a9eb0b43c9463740d5918ed1f8d7fa1c71b875cb316e7cd3c0c127f5d89bc835f18b74d06372377e2a819899397cc20bb78b3af4ffb1f65812399bf6e02493a49c3a2445a1c6effb3d9187e27a1982df4a99d8f30df593595bee44c8f1c2378cfe4a2c4aa9ecfecc672e6463017e24058dc28bc82b8a4dfc5347eea70a7f31fcabbb6c1992919135e3ab2b54279f7b6b6b8487cb5993f26ed89a82f07e66456f01db9cf0ea70db0e51bcc8a2d9e74e63cf63954f513417cb6eb14609764197f99efb138a312fb7ec367a72041ad7743c2b6a64a7fa94c7f5bad54fc76b992ef7e63844ed5c0477547a00b4f37fee11d8f5b19bd2f6b3a88006759cd3b00fa69a7e4b19755236308ce8929eb1b1f0569126030221150971fec14f70d2e603ff38d46dadbe72630b69b156e8eeef6f58efb97f4cf3e0f7e2cffc39d63a858ad3149450064f0c9d630ae99af9d789acd98b326066610f12b329ed6b69075ab360b8341fcc22e351be9e09b12add66c3247c14c043f6132a04f77062c8ab032023a369942c07b208e6266c55b4b67f2c4a526a7a91e18d356347814f530475eaff2cb01e5c8fa3eab1aad2a714d26289617e3f16d4f7d5ff6c2ac31a184877db3306c61467b6d91d447adfb3ea8cb0c3a57026c3c79974ac8736fcf10d5f24f182a830fa44c1e8efc8e59d898a5f9f7b865eb2651324aa095a7b966902616d356263b4d35fc157d0004df6e5cb5f78c608f6ffb3a0d8e9b2ea4b202dda6b95e4156ade8b012c251b1f873b6bd5521a3d119c28622b4b5703911fcb3f0772b3e3fd6f7d67595741b3c76aa069e6da755a710bce5ed93a50d821c4eecc561c33878aec238a0b52116d35adbd37612c102ad24b981fee6ae223023f8388785c55a99315a88a7c76ec48d3660e1b981b8446d600adfdea7c504f0906a79fe1d7ad100cfca7174b4fa07dd24a74c01e43ff270d033ba2ae06906d5dac1e39ede4a1264bfcffaba9deed528706b344a278c2c2910df482651fcd3db3bacc855c6eeefd66e053538a1e07cc964cf2cc89c4a3756e0c8c6e5d66e5fd9b2d3d6198b324a958a88b7ece9b18223fc73dafe1968c4820413c290e17eb0ccbff1e82568625e1e4e851e8ec62bb0e458c062b5302fa7ad3034219e915a65d7d39c13a8458aafb82179589bf1082e64fb4a0b12a5c7f6233615f03c20111b96c399dc99827be31bce60a9e6bbe7283be66c3beaebe4099e73557d7e23dd9d0f84ecc39b1144136bd0ba6b895ab82ff3e020b414991777c18b2758c1c99e22170488cd31743661c146326e853fe203fb30979924568f2fa9460040e67aec3a6a24bbf1c1969358ed46f87eb8facab4b2c24f000254492b373e6d737e25b455a282a6a6948590a539c9d8e76cba6f97d06ceb9e6cb76cd6349b1c2e249b5e789056639fc95ac14263283418678a8d37870500053093b2da64eb31e012fa75df89646fab6d89fd7dcb8a06cc557a675f3e63354423b59cf000f1e49cb87180dd0efb01e5bad29aaddb0b91e018faf0f546fa92b67110ae5437bc524fc68b8906513f23b5acd473ae641f829ad693a461a9b555b82b0a634387976931dfacd37cab44c8c363f850522877ca578f541b3199e7fa34bb89b979d4a1500e5f650842e66e76f7302c5e090d7d76df2ec4d638401e620eaed827a7965c9d99f4f49ac1462abe615196f72bd4439a03da27a55c5bd61d8fc8c3d5fb597d50eb0baf41c5358bf17b51038b6c3c9bd21d6dbdaff2ac50f333381675d0d90fc94184979f1e6e88ccc1a6ddd7da7e46b1865d519ca6149f07c750a829c4e267be41950fc7e96b6aaf473965beafa93df70a5d61791be45ca649d8dc2dae5fcb27cde39cdca633b9820112d54f4d4f29056581258265918a980be9388e9bd55995d370ff40fcfc8f307b7e495e717edecc049bf7acdf63379c6fe391c2e6e34df8b68ccdb3de95db6027f49f9e307c62ce4649daabfc4342014ff937c24b927919105d30074363d0c904710105c316bf6bcd858d9a9e2e1eba9d3c2b3d75a549efadd0a848d606c94d4b4d476989fcd54894c7de22abde55aaa8cc25c6a279b4fd9f9834392b9872c12c166f33463bb844d24eb30583847119e4e30c59179f43842a6aba1428e93f135dd09eca068f3674fd5004f3caaed41f3fa8a5b17f15a98ce9166748e48b5c94ca1472e9e9e6d2d9b4aeadd51a5b9f57768b0e85a81df661bf9a1ad1f62fe9d090d386ec76c11e38059c8cc0993fc5fdf2b9969cacfc0994ae32d2fcd26b36641586161067a54321046a24c481e59df43f0943c6ee29f327f6ef2e32947b74f6e5391da1ac37b7ea35753eae76d5661a05f89bb5e1e2cc7652cd2a8f43a0a86305852d6190179f8547de66b322f309e559bf54a4a96e019a78ecbc7a6737db2c7c9ddf9e85f9e018202128b6b70ad09a644bc5bf1a8ac3678632bc8e85e0ec19b25aea0c384a2635153c56a454b08653d15f6dbabefa1470c62e21e1a398e57b5a31237bbe4ae7927d1fab1695f3095a3074f19e07c01ff1dc74fdaceaf81494367664a336b72632fb73f8af41cf2bfcb0fb0258f6a4205670113bd4b54626a183fcd69637072c0d90ea45cf7deccb988633765c8b8eb522b6eb65b0bdeab5a29f697acd5ff133f58b4040cf6d5817d1253c10a327c5bbfb02545b93d3d5f4f1134b275eb6e1780226be1976ac2a5bd86b183ee865cd556bdd71d8f437de55e8eedbbd55743806c740231873f7fbf9f63cd7d581163723b21b894e435777c910165b0bfa0692321cc89e536565cbd570df9be0e3619cced2c7b36db5d5497cef2ba3c1ea4bb55006d95122c0449cba94da3c535eaf67cdb3362be9cb9e0dcc38a0e28ba11d7744fde92e7d592ced34fcfff78573721d0fa0f5811287dadad0d182e6fccea4344036b2df0bfbbda35dfa23f7f33b9783a0c9e1dd0528e035c3c8dd7f50808eb5803a3c24c11305a7912bc59f2d124f876d3418652b507a67fccff88efe896dc0c3ad8e6d45917a30c4a7463b5afbc62603b5dc41d5fb8640fcc29e161fe9466b53ba2f9551a88af54ae0679ecc1db42e2e0dac52722a27e2ab1ea8f6224567b152d5cca5f290f289a9c1336597c6e389bf2a7a079fb7cd4bbdac2d6f271026846d6a64c51122d3e9def1ebe9dfc79970aac340f03a031eb604e58999aef15db907ce15c97d0d756da430f55a8fa8f5663f4f6fcb07c60be3e8af6fd2432df3af032b6944fd5f584c98eb487c9245a4d5ed2e6221989db62aeac0b9e2027024c3ace8f2fc119e4d3a23f3be4361c19c3a57702b44c242879ebc6a8460592f727258f1dff5d1df56171a7ba42fc5c1d4db49fcb19a4d303702eeb044921f38983a5e1d06f3d12ec4a7f95a89d9dfa4bfd40dfc6c09523da96dc69f85ab0d357455f46629d4327816264ec617aeb409de0924afbf4e91a5000b8bc8407bebc566c22984d7766d3e2be4173a5e1cbf6a1cd558a79cedda8ba3439d248afb5704e46ae6450f5c2412f13f44d19e8f936f882ca0fd02d0737a5b47cc60c19c25958f634fdee5b7482fdd94656c4c6fd90d8156c9a95c80b104e4b6e9a38925e81664b5938ee905ff0d44f72079483df6a8bb064aae2457d9c28311c255c9fbbcfbbe6a09cdc7f6450b13d6eccd729566aeea06bccd36a6c8f5afe5b4eaa3cd9c36fb294cf878ea78a8593e348c2927502f3b6e6e40a5785fc3e6d2b9d77ae784feca709b38121e582b3d2c6a3eebd1c211ff368c12bd1c6f9e4ec7647bee1470474e64b8fa23001819648e5f1d5b9a65d0c85e84061a326df8c03303c9c5ce8499819260686eb44cff918ef9d591ca0f8e8194654d707b56e3081dd13d5beb3e6c22fff4f0a6efcaf9d18c8123e0b8372f57afff140251130f8810f6f4ed25fbfac608871d2846690b67729fcabd4bb7d077c27d9509b4012c340610d912be453e783b5adc681286b6e3cde28ad177896093afda8411f3cf7a5b9f2d24c5a432a56b7f9749120b8a0618d2479b57c029978a9bc634f28c324631c8405d2a9190ab0550278217b6d2820ccfd4a15feac45e67482ec3cac48b6f90e9d45987113a6013d6a512a0e2fe1ae7f778586c08bbf782b5d71cdeb0a1414c0692bb9f5ac1229651f6fa3cde9f4060f37bba47b82b969bfe5fb4a4fa82399c937fa73d7dd335bc67481474947b6934bd2db707266338554f9930253c35e1ce3bc90a815921da08f1abb14e1531cb5cbbe92cefb365faf5e6e79c583873c6a6491975e9d123d52ad769ad00907044315e2c1059bae845b10dffa688b2163ff9788f23f6abf03a19f17ca7fa1dfab04980c7d42a8ae7f1419e358454d7ce690ddd0a41a37bdb511a13be3ee5306723578e98a148947c4f7b352f6b812d571839c05ab60be78f1fa1ca6822c0fa8b906292db7f1785fa936066dcfa3c7f89972069dc9a88a217f07763d2d0b887a001dd70c31b0e1391997cdfbd2eb463cbeaca95bf12b577ef9b81c2bf7a3ce9c9911a348c80e4461adf35ece41f8b681ceb4d3b7a64800bdebe0f577bdd0f24537f0ab521a29b0b5a9b7f425aa39f6dc04c0c356cc0104201227115f07afb8f368b9e95ca807cea140664ded6d9e17a9213bad0d4c7d92ab8588afd051255d0b78e3d7575e1076b808149ad5031cef2001438a105d842e34bdd499df9c586a1e99d5ef2b4a90d93c92edbcb24c2daecc712cbe389106de70782ec71290339c453c6bf3b721373b5799acd7b0674d90560bfb878d6694eaf2db8e53d56fe7d4436378075ebd9837f867242a3d697e979865eb4478d5e531253f3ec67e6b652163483e9e29dcad9dac98bb40bc39c558f577ec824e375306b56f60a8ad80e4cd3d4df731d85d51d7e391ea7267aaaad84d191fe31bec5b9f0678656bee4d618ae51c50cf4e9ec5e16abfbeb1eb7fbc7726915bccd559211a9748979fe8b31a9f1a29e96f46c52cd61dc65aa6a3cb0befcceaabed623ae9096efe907a8c111231852ed62439ac0e0212ac7320876dac5c9143ce9020b19f9800e3c1adfa3c919622382111da73d98fba35d2d429023960649db6bccf4b503728acec8c2018a1bb58ae4534a2015bbfc986d66b63d14e476cd7092814e6afde0ef5ab8442c59296615ab4043c6549aed06befdf7a8b0d4a634ea3fbee6191df3263e7e0ee0c76ac00eb53dad794bcb0df8f242cefc39bd7d04e1265df4a7143e46c61e3127ca6a5b473f928b306af39a9478e4a3722a1f26ff319f992c4edbcdd402c2a2c1e3bf2d693f38a5c6d8253e989db821332cb9d54422de64f994728dbe03066d07c957e5b6f839b7e437aa81323cc084a964c58a25bfbf682d7e59b4f1ba96105bbd87722675ca13be33e1b8a30b7eae82159aae554e0641b31d1089db2a75623386a200e8b2809649c5cefdd7505506705a9c162ec6f7a9e3a396b6faa8c953b2377b44e1402b0119cc281dd2cb50740cefc1deb97ef051dbbf08a1d66917b3dcd6d5e96d2fcfd717f45917087d866df70914d0c93db9b7479eb4b31fd40b95355803b275b9bd0c81a1d1785381377fef5aeb9a97860a98656c68e79edfbe833802770edf45635f65467af8eff2075c5ad1b8353a4e2564f0f3da1471c74755a289d4c17b11af408f7a2915a604d9f4ffca76eec0f773a06b5b33ebaea33d06cba6181dddbc9e9a7f632193a67fb536aeca2e170a26adab2c4ae2038fb14f83b9eb6636df5b6325c11e1ddc5972080a9b661eef0ecbaffdeca581f7c28c64f2142244227af2a250686595cbbeac65d2b54be700f2398d850ab00e2d4184dc4afbbf5c8a2fde31b0759ab2eb70d8982a505963a98b4edeaf6f7971f7aca8043f395b9762b2c9010ead6cbd4cded1d3e95704950ff4dd1d66f3d346f19708b82b872c220a702560695f8110d45f4c648ad953c35db2d15e9d7ce90a8fcf66f149799a987187b4e444de3b9bcef42dfc1da6c5a48acadba7dc6658bd46b9a7dd0b76cc7fb2f38046018fe6468eeab547e7b648f3083947832a5dea5ad2cfadf889100bd119ceafa1744fd953cd61627a79f5a4c59584a38e9ca7485b041440f1116c1ed660c1723fe1ed435a68083eea770e8067f264b9a9a042576bc4a245e940924fe75183b68f22bb4107b05e1536d1701b74b1a4970f87548e54329556f3c7ee55b7b7c23266d5a2056b2a17d93f3bbf65c03694541e0fb0ce50ccae3b927ae30b5695e62ae990da21aad8cea002578f17540a087c79d7a2bab81366c08b0ad647dee8c38c440fcdcd60efecc7f0858c587c080c371fdc11f11914fdcfc00b0d96b86eaf021833396e625e63b0b40c1dd9d40b6ede22ef130171fd49188fed728faa176a1f163c6c108e41af830d7dba5c369fe37707784cc5e0595fb747bcffde9d9a6815623f4d1e266fb029061d66e8acd906da6b47611aba3f83fdcbf9e66bb33028ae368cf517c10ccd562691f5688f2d970c2ae20ec6a0030cdb05f7eeb387630dd213eb04cc22f4dc2ee2dee16d470dbeb383bc0ce2879bf2132619d75ea8def8e0dd9fa2203394ed312b2b4038e1ec35c2d2fd1e518033d8e7ab31531a101a1b998360534758e3fdac01a559d554c8b88fc21a2a290fb652bf5f48823f076617726852534aed804357d5d345fcf11b605b5ffce998988eec1e2891f26ad46dc3f105f331d2cef893de43e846025aa7501996b8bfe2289acebd402e44e74214d6022d50567cf50dc4221a15e5c84e0d3999ff2e6761c16004833d3b49a25c461bf1d49b89c5a2ccb6177228c8b9d8caa27f30d75a05f929b37ba5746d662bcede23618c072f5f84f91bb0b107c251f7f9b71f50260754b0d36fa2cef59123da23995151d39ae9e41bdd68ed3bb563e93a02e4245020aaaac91d6d53829e1023cffd7d42ee4f32e14d846550abd6c72bc91f060a74672f2ccf405b26e6cbd48d9ad8dc4f8ed192da7629d5e2ad429e2d46bb1d4a6a8239557ed9444a5075acc69d3bb18df00d9666407012f9190521fd7d12049649f360f306261caf347afe26a4e5a8526b4cd5c318cab4d30fa3003f7e61f755416ea5a03b0a120da3c779c6169d6c8c0a1f73af58c6813db6f109b493b46cd3a1521f064f95afb0c59b2fac408900630c43b61b5261bc90ffbc324ce475f06d868e2545b10ea6b226321334a235df18a5ae07b8af9391656ef1f1beafee867f620d53dbe417eb7d893cd04c50805c6eb87142cf0ad4bbf8c947c52aac694eebde3ca3e08359c7df1fc801c0e90c515d482654031786fb4c06c37255bcaca3e7a69320b7e059a2edbf84a89a120cd604f70487df2ead86f675f32b049f124673cefa446cdb324d2a270fe40e7b0c380def595f51dc84aa416b5521fc0f0f27202125ae58411ba1de83ab2b4573e3fe3752409f3b0659f3b1358000a8fdfb5cc4e4fb11c09522fdbcdb34375eef84d94189ec26e2eaa44a5513fa9dfb569a470595bade3e47e2b9f20f3cee79c57ee18dabec719b89abc74c1423e64fc422aef449872039b27aacf2db3380aaf8f961951217ef50ff31c50fed8b53c8fbf653f013dccb758c77cfa0410a8475475afdcc40d347c04468d2ec067868bf189a961c625a8df2b85c37b1dc4075dbe9f15919f42995909b3cee6a4e12e9dd545fbd150db99bd9e2577749a6c874d88c79968ef0b41b3fe53b00d2d65afa4ae8f97ca49195448db3ee510a7ac196757ba7f8200cf24016924982406720e880d316b5685ff340bb8022c1fa5bcf556e8eaffa559061e769b490018fc12d4bc1a9299330025b796503cbff5270f164efa98c7cca52970f89651f50d2c0c8e34bf68f985c7f6fe800b71e6a9f53abb35cac8777d54243daa9f349a8452b64d594e669459342851f62f6f3c968846e8f30fc623f6facc0e02cba3a5c04eb1271ac32c2af5247d99d96cf63231cbc6e3bfafbad526c0464f730875dd8b3501b407e224adfc1de2e574f3908b330800b78691f5097c5d55cfa666cba2438d7a9180d2e6c4637d99e5b90726de0e495db45f50da30797e73444397f065378d9be1ed00c7493029407212284918b49c1fed10b4162d2389eac545f3b22b577a11c70f5cc1cb0c648f04c12ecbf7a9001cb8a326a7db3a19424eea81810e327b32ed593f6d0dabb10c3ad10e9d8f73e6bb320998678447b81c3f24c46dbc447da500609cdc85f6f44b56980ea6c9468f39b9ce816a6b719cfedda646b1f697054b31523549de163203bec5a1c9df12b83e70e2fc13442c788ad07d3c5312af063bb589fa3a76429ef27d0345fbe2d64fa1be671b03b7b1a477a435a4107ac615554625dd62e160e78ebf26fde8344832f7cf9bf827e04b31e44894b9b72b629971a1b5a8bd647ddd6e58f05b770ec9201f11ca3001d26fa1ac91e1b5bd372ccbbb06fab5b27b09e8b83e5d2c04fbae73aab950b3df0fa86322b8bf20f44323a71dbbac88ca53eff02f0b8728275bd93d483cb5203c114f4bd1d89333e90a1922f0895faa495074af0a7c145b72e297dcefd6c8269dc5199703717e11add88041533d68547489eb7c73f4390e8616e12d8e06dd8c4a0b724e5be8e3d56b0f8eeeaa28ddba7f47381d6afa496aa6d4d8e6651008e20c37a1ff260485bb8aa5a29ebea0a10a3e8a2025c4b6d525e3cba6c4287a79ff8593ca280f7327debca40d2be37d826c62846fe833785de9cbff9c910c8fded042dbb5d55843ce58d2aa1972679d629fd21be819913191489e48ae38c4dfd61483bf693c416982c2da676b9b356077fbdb6b078719f92073d4d0346152bd7807d8649662e53dab4b9221b0193c2c95f04942979903871dfffd99084d20c0e52827e4cf15c0fcf6fdf6329cc3baea8b514ca3108987bce86ed6f5e5f2a042ef9152c998c00745d3e05189399e018793fed344ce657718b6549f0c248f0de4ca88c4963ce61c9d7504f62586328874c8c08c0f0f6899439b35de59bb247608d747603e7a4fc9eb73b5759e62888527b868e3a4c82c3b86308ec02d9ca875556f28e6abfe3147fcec5a149cd0205a98fd8197d649cadf4fc19a922b55d15637d1a3ad38afdce60041c1c95d81892ec5ed2d302aade67db10cc5e7ca09c55b5d10dcb337c4b2b00b5ad34133b463222e54f74b5b1b3a7ee195d94dd7b81f28391b9f616db37f90958404e20465f848593fb12bd8dd268eba8466a6f0d20b0283cf151891ea6d6efbd7ec03c9cab3794fddb208444151653a16e68b092167bcb71e9187d0592a19fb2eda420f2622ac1d6802bff64761d0039d967aebfa2da1924227104ccefe0b3cb057f079df473055224114772c58aedb1122cfb0cda6a0990113f0981cedeac4e6ed813bf66e958a636a6c06b423112c34770f49f2075f920307d03e1b1506806a9d10a1bec37ad7b4b70d1751595d853a765cf8d391770836e751396def54bf18d6d086f05ad659fd3b2dcf1543181713535dd6665771cb409aa27b1c2721b7dcecbfdd057b78b0be07de8a76a80e3834cf6f4eee2e6f6e0ae5b368041c08ff0752a22ce942b28261e8a456dcfca1e3fcac6aa0138599c84c82af590c5811133b0ad40cf40710f89114e37507de5437a5fec95f4c0c9e7339e8681b328157d4dd2b5baa3d050940ac5782df410c23f4be32aff3908266502e6e0f6d649228052863224939365f09398e4dbd6146cc014600b918630755017ac426862d6591cfb9be3fbea476ab0a7a8528ef9bb3fce84094595e24bce96e30f0d78c2dd6ff3ec446b2f3c6413b7b0690ea8826c52858f1a2fba7bca8b2410f3d011d650e06c1c1200f64feaaf6997761f74cabb905a3943ef9ab901ecc6a72d707ca4fbb50aebe412da59f697e272503d2398a2cc33db4952177c813059b58005297ce3f91bb31f1fcda231213e8f1f3cdfbeb5a8d4306fb4ce9e530f0cc770d7d7de2277486649e5e3da7d61f2628c5b276a4086bf1ddd84836ab8ac7b861a7d6e93669bb0f6ccafa9bb768742e66c69e40e52e3d2b2c72376551420e5fb8f75c3a7c3a3b39b108d3d772d652d29a92b523c0de81f50f9359d20e86488272b98d46928bc74c09588266f57c77e511902fa079017ffbf6921aacedabf72a305d98d5826817765e56e9d2186a2ac290b52f67abe0a40a4e4a2176f26045229fb31b254cd14245e810513882c73ac682265de136a04b95c1dd1a8a92266e78efcf73657bd0c62ef472e5c900297ed235789ea607146a310e81ee917a9808005814c13a97daea0a3e95c64c3cd80eca26b27c07a69b871961930b0ca534bcd1aa9a3d3c5ac0f994d86fd69ab3770d185e5ba48599edf5aa48b78dcfc09fd7c6f96a2a7abdbdffeca5b0d6210b971b29dc26b3579bfc52e834c80480e79f7bfe4a329af2d26fa61660b86062ab121eef151101e998606ef887cfc81ca447bd5c5d6ba31a70bb567c3100c074af58175d81005c5786edf0a4365be473490b37077d2b105aa8eeff68dd69bd7e23ed12ee313bbdf6006290daf8d7c9a798bafdeb6705768f17a7c28b783cf84093c72c1f8543d8ccc1572c2d0ad13ab1b798d33742b4bc8afc464579b1cf7f8be863b8f1deed0213e0dfec537a3702dc770cc1dd9a807e8f2303a72aa927ffc499a06c6876c15ebae3745ea50d136548eca2ef16809159d7a0d3dd7b5b03f26628c4420e32f65be4a72c92a2ad3e7768505ec1dba39b3d0e5bd1caab971f097def43687094a1a6660d547c6c6912d4843e8ba36d90a0fdd565ca77df88b0192b42263ca0b8e44e4d7dde2649061d9538369609cdecaff1412c17c09ece53b226da19d2b15e2d85563b53d023204fc3f3729b5144d1dc405a6bfa1d5525fdb538969cde3f08dc93758822bb09da39e97912ab11dd2bd97f9dfc1575d49e9f2bbe88cb40e424e1d74f958c44ac1e43df628bfb71e634e9ac7b70be79ce6a95c72a56b697c44e235abf4484d5e270f164997384c573f32036d87837c45d2f089281e34f720297c05355be3763274cb19cdd96bb87dbd11da38c2323b67df1db73de5456b248e27c57d2d028801715b609435d6e433942aeafe5e4ad178d8dde61ed5bccab4455ef12ad24ff71f599d841b281f1abec721921247241b9d1bf3d5471d6dd6325d1409a913e7e5b2823951f6518215f1713f963fb6bc875f2bc8536bebc491322808df9dc51494db8138be26de5ea5b2227d70c15d9cca87c5aaa823f60abb9f3713b5722e35efbd51920572d035d3637ed01aa8e70fb8a5ec7dc47f1f93c205648d84aa93a76e851ef28d0dcd87277c6d147f177b4d5ee6ed42ff4e688ed238bf34f2ceaa6a81321aab97706611a6401748d3854dc9c86e3cc4c56c400e47fd97e8e07168f1098df9c7f3e0cc02b9c60ba6f549d8fbf33d9debaf243c8c99a07edde908f5548394bc7467b9f2a4d9f1ff7636c407054dfd0137bf6b387760ae32499ee6a0af38ac6d68c1e491cfd4abb1c08101d756b022dd9fac67347d79abfedf06cf4edb83cd5b64338e4dd3cd2790295dd89144054b8189f6d7bde2aa6effbf7382ac36117a4b12570205c9584dfb8a455cc3e960b1de169e3d3b0ed754c0d25103ff2f66280203dfb024e70f739eebe0ca328ccbf6b9e7c8f1abe0e35b415f2691a7b17c15cac818b5fabffc915635d47bee56a3d98e27821000048b5877b6301d5b7e7014d1eadb065732d49c76e5a3143d33f91fabd014fcc18b4ea2c648acc3fef461d0ec0a92313c34daee693fb4d49d24824cfa7dfe1d651fb898a1054605bb734457d4c3c80bc3b8d90cd240a725e52fd01b6f688f20eeab1a68f493877df2790f91c70cb0289b955661bf8ab95022cbe4934e9102174b4c188addc98d1b6dc9a2091d966faf35923a1332dee0f2a4b765b313ebf1c9d06f9305828e4ee7fc8e96a26da6fc14cd28303bd00345abe29b686785dd2d035f7182e89b8cc2e0bd7adb44996853937163a4e23b1fb4d1a1ad4e23a102e1b77ecfc743ef327c2e25f7ea90dc696f92c4ec0461573abeb9161db7d8bc9f807b77ab5e7f7d44573bf680faba8053b97f61da2660676581de522543fe47e692bd992b0183bbdd3b510b87ddef3b5b5b6343b6938acf8b994d1182eb3a01048d9d60049a0114b9c9e77b71a4fed6c44d7db531684846dbad77f2058707f42e2a73e3a570c8749b65b4b26e24838f69a23b24460f24baf58cb1294cef5254477e2b17c9d0a2facf485189c03689be3aee8d49f33bb8645cb901e752aa89cc95b4d653c29f09d9ba92c1adb295e7ead34b732832c49fbb817552b67fb10ceb358e4a3e20329ea910ecdc6f269197163709e0fbf047936f88fc7357a76a00c49060a4adccc6c3487e37e423204cca5ec3b61824c304105cce7472fc543f98afd25f54bf816ce1c2e1780e8ea604f71d86400f713221bfc5bd4807bd0743de0cb3c072b16a3db46408af1c702f37fcebec377ae03f37cf2c2671073d0edea8a1df01d8424d213dcda3f072257ea7adc30af153b76650f82b39a13e4afcb946943e7de846fe8db0ceb8c26efeedf195b39ac6604e97e118b2cb6e68eea902e417e33746c3ffc0585aa186d58fde5a3336d7e49c6023288b13d8f30a53723ad3997802d12c7a9b1fe2bc0e33eb4a56eec8bf96111ead26ddadbc65a5304e4785e0890005f62e6fcb0f7ae30b1e6741536b036cbc7eb4f12b1c57fed33be6d8b1fb5c0f1d2248d8bd6b73ef4797b8dff63100f9ca171684226783ce1d8edbf1ad232a503fcb77e6534f56f1c90afd029e84efe8aaa485c99eb32d7dd4421e4622ea1ea6a028a6e0c8de30d63a628c08be05acec0c237cd95f90cc68971a65576cf12126a1e4cb7f32c3ecfda9cd796fa89e0aeb31ce6cca709191d81cc15b6fcb685be661ec1d0b55c3406e809abab20c4499ab6c01151731c9a0048b4ac986ec66b9980e4db407cf065b141b81188fa994e2ac30a1688eff447799000786eac48c30f30e42d2210bcefff9f284d5c4eb1153ee629c2c7e098a3dc77764eddc568bf6939a9a599f219889a8d0b94bbbddae413a2a17f1068d45b3bf4559b0b66b500ff8e509dd5ad65ab4369c704ca648761b88ac9c85e08b6c18786ccf8aaa0a55d89930b39704881d8a005f86746754d61ed5b4eef448f134d666a809acbca0f3bd88b9f154f6651dd3e7decc219df684aeac9ae3287c30031dae80a88c2a1af7466f5e6465a2b403323c125ba56e334049858be26b4995900402777a7ac41a5d594e54ea6a465b96b7c20dbc3d261b3772a97256af3f33d6248c8c6975854f6208b8b5971dfddafac4388782ac3cc0ea03938deac849f8fd6e4f86d5ba1700aaa016d1b3833ee163de1811adf07f10c2bbca0ba06a957778a580fd5d283d92c7d75fcbf1bd8a867212608141c0e2d9ca985b2dc9df012df3cdfb6d90679ab0d1889b5025d07e920c82c226dd7744351502ac93b9d26c5f7329cbe4b43df0d42b29302b63a20a242c6f2d35f05ddb1e1476a1a237b550db23cc30670017c2dc115a1cc41201aa2d1a3bd5cd9aa8f57a68d86edb48f9dfc47c92db37fa2609c680764bd1b249ec558b89cebfebfe3421d64216762fbd73fb00bcebe25fabb32763fdde854d6614d62179aeaa4e28daf69538cf973dd3f7b2e2fb24703a962b310f2b8ca0b5f9d9d028d6cc1d6d8439bd0b9a5e384da9b94c39b896f2f471846bde7a441f8ecb6314caabc7853e35dd93deca78a05f3a1fdb64ade78af5ee350eb252179e3737df7d9e14ef70ce05f39bde68be5b8a98fcd132b74dd0136f65868278d802abb8c9647b4a4aaa93c9427028de1a2367a309e28968076966af65ae9a473a43fbcb461b7ece64c05b9222ae37a3f2c6a9fccad0ad4ab73525bad7986ed567d28517ed14eed2a22aef94cc0da64ac2c132ababc0eb00eca0e636bf93ccf7f0dfe322770b40b657766eaba748408a4c946678a7a501d9ef816e3a73d6a0f91356e48af1098fd9965a4f0006725ad9950eb960d1c2febb67bac1da8e55473e13d3b44d103295521dc14eec92b21341ab53bf2a6e0cf89bb0d83e03634a458de30ba9300bf9e0d0bbd13134fa684b9efdd4802abe295def5de44ffb6a5e4ddf848549dc612b027fa66348107697bc4e8697546c28baf282f430c9e1af7049bdfc2074f199f1b560660bdbdb93ed9072547fa2a8a6b8af5afefec4b89e7dae906fbe6fc84ad21ba76f52af458b893b20932614feefb5a259ac868edbead9dbec1db948f43fa06b0678ca90858ff44503ff30c1df41395ffce68f9766d716a106d47cd029b3e95abad0f9d7a5cb7aa395bfeadadf2667857d3038b772b18c0d16f58de331d809924875f1c177b6d279516e5cb01717381c063fdff72b95c037911072800a3416593efe7717b68ee41e734ed448724b2f3d2aa96aa0ca876fc186903a1b31cb44d7da58a9a6747e022337cf9c5efc9aa55804b5dd501a98f5709e75752c791ee2b9135dacae0fe2718ab60e05457d2d1f377b19c3bf414e3231f3bb7daefe905dbd39c3be92342f516f1453dc7ba1eb75b9b59ee8e0470ab5675992ee97b5996bfdc53e40f68b4cb32e777c34abe431be282042af13cf7f047c59f53c6028bf13b22d5d20c71d28225103d1cddc30ff61d1205637fcb80e3324f5debca62e0ad3a56f0cfe4f18b01ce7fa463d4514d56681c1d54c30c39a9b8523f76e30f65c4a7d27c3f4bbfb66daf5bf16955c9fb4762199a973e6606735c17e40212b24bc4f5153d072dd2c5a26eebc5f9dd6c789b6fe9a34de5f09d3606851628ed1311e4984f051b291a6e0656397085bcb6517d35aaef5ea0f392a5844c740c1e619ee18afc764d1020233dd342fac794ffbe4b1f9b485ecc2debd704a080f0e1b404b4c793e3dc6b7895d3fab8df18de74f6fbdd11a127baf101a89c7b25c68af8ab0ad14228d4f3059dadfe508b6b655fdbaee27e9dbf2e0fc4ecc37de5fefd110f772cba94bf170c39eebca4fd35c8b9bec9e581cba2e08d8e96d54f40e034625fe7e3092f667911901730a33fc4fc162c05610ef7a7fe373a32929e0b5cbd93a9c9018ee62f71921955fe9082d0c8d8fc6814a04fd5a9f41d7d9fa2c2a039b955c819eb87a189835b3dea980f9248b62b1a837f4f0c73f2118403390e54dfbb1c92bf1a84dfffa3e5db60ec68d76b9222347516973ce7a1bd3eac8b07b0f619cd880d88dc7846a0747fed733e2a75a27ca474542ee20180bab7e849f7895ef578831f3cc6d38504679bc30f186e7ee476254f23deefb2b05599ec70939f0872e709971ad67516ffed063968d7e4f0e588009beb93ea5e69fa6551a4fd6579646390192ec80908f3a307494e73060cdadf372d2901e75d2b8fba911604fc4c504144d00434759eda72e011ac8e236600b612a10fe94e7dce4fb88e0167cfadb6b6eae81cc088ce79f4105305cd5c655bc0cdd73ececf7e5bee1a0caf24fbdeb4dc2c1261a6d5c360b60cf4870613c4b62c5e7087f29895b6048f32110e63b5f2f76c03b59bfb5cbe0bf580acbd9614fee9ca55bfda1aea1921940eeb25171ce15feaf4916c52aa0257cba566788738e3349d31a6c8ce1960f7940e898c9790489f8a24b3e02a7651f5a4b3e5de05e7d4a24ef2d9dc28b51e81e78709fa27a327a81751d2b702b8c435a523e5c1952d4525684cdbd2bbc1901616313509807be134244374d1ef217f06e50d8d6a4fea3fbf3a362289c13551ca29a8e7d4cb50bcb01042c5d136928e41fbb0e2d5c95151e7b76a42c7af7fe591aded07aa1ef1af41dc9a85d579a39ec38beec8bdf96bbccff4e91ff43cff1705c9e410d02f4084cd861e06072c1d7bb61ecd90911b92010f517533ae3c8922be20d429aa77b13f14caa23426ff8062b984f719c0a0f6b4620e16df7708e7a8a421eaceb289d0e539d980b855d07e28d1373a83f5021ba5866496d2e9bc5583adfbb50914d6b88559a7141fbf317e284a7c096b2e5259515ac105801d700359d9d7ab39ded39c98fbee4018e00e1a08f67ffabfc24c5bb0cef235a041aa970a7cc4a36c1ff341b089d5e9c29211a1496f594621cad2a146566d3ec78ad5a8ec166a5a475d9c8275198f7809235e96ae4c944dcf7b90fe8cd1befc08f20e44d24fdaee7d33f1cbf628d8590e03f52f6a6eea0f2c6ccd1aa731838cad73bd6be7ceb165dc18f89f4626747fa8f088d623cfe5b3cbc968f0694bddd3f5bf99915b0d5527df8c5b136adc20deef9de0acc982690415fc2c51b2948bf7ef8f5c20dc5e4780db2feb50971f98f0d92eeb0133cd8bef7145cf600bc62de35b101ef3debf7a20b8879b14c4524a31e61d87dd927abe06104b2215a59a35c79f148dddbc32fe9a3573d73284a075a3da599b7bbae3fd0031a43cba9a284a96cc0389209cb59fe8c68d940d38011f4b90ae8ac82b48a2360bd39670898b9a87b2b155f62a1beee5f905c2218b683bb2cfca39e8fb677a283a496eab76dbb9950596940c2a5086d26fa8577b42b408643d75d8b2858709f6be590db206aa23ff91136b02c7d7bed26521813c5b362f7456c25e2fec461ee8903af220038075c880c1c1ecc688936dcdb61f1979f4c5f77c5d371f6df77ae7bd7731663115bf38ace854d480d52a11f5fc22dea4f6bc841437e0738358f3011b7ada46793c085904a76235a8286d8cc04707e65a3f82bbae2963d4d9e636e9840397595bbe507b036b1f82e720ee9371da1ea5e946efbb4768681b0d277a74b0c2388bb79bdbb032b9bd9d4ab5d63f0018291f2014aea992c74cd73e96541d8b606a9ae3728c50be6dc260798c968b0336216e4c4c4e30563416ca772a74812ba9439a11017b771aec9218c210e2d729341c3f8ad433fcd8e8586cda8c3ae451b2127306faa582b7eea604f40aea68411a845561de613e5e332067a577f3ab7821466120b0db96c6e88bda09cec8e5d0befc05b479e62bb2dfb51906e216e074f30674ad4684190e2cf443a43dd8dc3f98c4b9fd05547dc695b315bbe3f4b2a667ba0e9268f637ce44605a5439033b8f5a726de11c47f05ebf21a2867a3cf1b9f056673fbd645eb53d8d32b6362cd7a163863508d070c6cdc6873a719b0996f64c310cfa953fc2e4bdb64d5b1472e8143865b54f54fe44c0c0b90ddc398a392128a95c708d1bda0433e825856f738ba892f6a7487480331bd3df7c632ed599ebe8e60aa113cbe169790ca6af06b03f38c852590564a65fe7eaab9e91274118f58bae9e11205e5648b427b2ebf2ce6843829e2c38d0381b4e93f2be600e653c5bae25f45484287cf9472b9c09c2dfd005127316a242c3bca5ffe3da8d88ee30da294dbbe198c4db4f2820ad93bba32120def721d13543198e9af226bb82a6407de4d8f6383e45bdfbecf7a398da8b6cd0ac1fea2e7205121dac0c8762ec4e61dfb5027f5c6c6fb2ff5d312d46465fa5bacc52235f8e93061be92e19980f80a6fb83ef7f95cae00c356aa17053536d24415e2d11eeac345b4ffd7daa9c2e4fcc8df93ff88a097e64e0b91d853b58c5256d3fdf0e4fd10df9dc62053c405153af0278703ba8f96013564f7af847de2d49675c29082b665fcfae18f287146c90d3f826be72d397c3baaee7474b6bf97b138066ea00ffceb64df409a0746f4becdc50436117748a12ba8b0d0571ebd07a6cc833ab8d0a1f2ce9ad3819a33dec1316ce0f0f7bc9c866bdeb0f0053dca2ca203a49a1568e4fed9a49fdb5e6a42c23ee4609e0409166232b0f4ffc4e6accfd5f70512c9b5a8f69604fed65c476fef3766540e9dffdbd59b66c91c9b3f4a0c13cf081e9adad8568ba1d3bc9f77285b5e5f7fa1124fd71e3cfb5526046f81910310131167262a23a2eb6a0aaee59cb4e15d1fef0adce02d72eeb3ec2c0c9a93e9a151e21e26ed5f8c599279a4ccff31b043928c76eeaee184e814bd24e20bb3d35c32ef88cb2477b8bb55f61670c1ac853ed2dff2f379a50ee9420940f70a783a84ba2d61215ef47135fd7c9c9624261cab1b4f40c917575912fc4c699142eedfbb4fd15a8f4173bf260e6b6b38e0947d2701427f49f207eff9bb99a744bb6541a7232ca99e43d1540171ee495d9fb3ff9eb70662cfe7f78c2ca06589dfee5c0549bc1bfc2bbcd6a1a9cf0b1970cbed472fc07fcc9ae0177aac6d124055f57d2dfb6ddc815f3aaab2204614a1433720b9263d74839e4894c493988c1104f77875111cd2418549219fdaace0f192d02c1542bfcd7bb16c20578ffc2fb179dd68428a60e3363f7b38dd48f2db8eb113a29d6966d6ce26ac46bd0cd57cde60d78cf4498039226931edfd4c13daf7e62dc71daa2f52316685da132e54a993e37e54d683a1f3fa019d694aedc935afe0b1a204616896312ff5d1940d792bc542a1474bca7df4ca9a7af4f179584a24a3a1883a42261e367e0b7b9e15ae0b450ee67354eec104929c34c01495545b374fa6d81a39478dbf8225efcc130dc73d0ca55b78cbd1c7c9ee9cf9681e9d34142adc31a94944e037c3a2444ce178d1162627946cbc268c09b6e24377f3c77c0b049fe31edf610d2003e1569bcd1d7f40d9d21bfc46d05cf43aaf3950924ebd66c6fa097ca1c902e627efdb482374bb5c962a0f111632f85d277a125683d892259494bd767649e88d76c2026db5daa6d0226e789b47265d41504ea23e8d900bb0d4089fea729bd2765d154d3c6c9e6f2193e3aa9912015c5ecebfa955dfb6f38527c4c6e905639556a5101ba07b57c67e31105b0f0bc1f32cfaa214a9960efffa839cbcbcd8319ea1346b313a46263ef281219adfc0cbaa9465969def7a1e36bc2e8a3502ba97fb3e6e2498e688303dd2584e1864683682e70bbc19cd35da5fd0522730d1c5e601239acef6663aae58b0a1c563a42081a697d9f89b60f7552260c68452d37aab135b83d5c7567d10a427d67b67ac852a33b348c960a9057da5c26ba8eebb5657350e36018aa8ded20dd1608589495d01c896ebf132abf609727d6f691b9f62933378d73be5fae9305c5e1bd11b4c81ee577997cd2c109440778520e6203fad1ede25e1e7124ebac4899df410d9c65124a6735abe5e65f8974370505e71fe98a7071525b024e263ba15385f0095ed5501a515ac5a206b719a32b0ec6903a8c749b5d39cc84c0862d86253b445aea6478a1553116626389dbd16abfc5a170d1d127d4356141ccf7445d2bde1f2622c2d8d0be77489818525fa36e1e743bef4ac9d33b3e4f4beda808f22b3ee9bba283bb96ddfd44239a159cbf75677f969aaeb51542a1562c848bca26ffa173faae9f3ca6c22a61e483d5bb404c87e610aa5706b9ff7d596354d8bb11e33eba1d73f2b231fa77dd01581bf83cc3a3dbfbafc3af06134542afb28a11f8fac36a785ebda85920f2b3697b7686ff178f7653b7142c5bdf413a60d2e038d96fd03fe4752364525abcb66f59f794c24b5837ca7c900b4c7c0c30298ede1b7c2e7a2bf350adff817e8bfea018b156fcf4bb58d24b2115bf4017ae2b5ec975300bc9512bebc71219fc29a926b43f209163abf28eb3d5f69440250138eaaf37b62739d3d79140eae760f2e7519e3e947c09cfecd61a5f86c985cdae7bccddfcfcd33d6738fece5072b25a5e2b4acedfc3f901c1b33594912b48fc3b18a6678fadc6b7c6191b88e783ad65d01f1b1507c3f7d00d0682f03e0ee970435c9ca37caf7682e6200c6a0ec7652d212443bc412701fff8393c0ffe95023ddc98b2aeb91c93e90153ccd45c20ad60a1ea0870672875046235b03408836c4c50cd39e55755132c75a4200baad020c0ad03c9626cd3fb8ae4e965c5709bb2d722a3bc6d49251d026898aab7a59fb8a19d03c6c8ed7718efaa346cccc5161bef667463ad352e0b12483b9e6400913a6e0108855ace8ae2c610f6ef7840ad05f66556c9cf5d0732791302fe0124e60324313605d5e28fb857158b609a852c1e259662a04291c59e47735846637c6e2ed42a0d9a7baedce01a9e129e29f6b39707e1b7503a32dded01a6e721c34f683726c1a491912f46f440892811be8ffa67fc39eef22f4a9085213ae0163c2774f3d1193419e0bb0b9f2a900017185d4044b784f6a35aae5af39198d01c4ec75cc9247c790335ed90bceff90ae09a76cdf3c1cba0353b340ee8345fd2b15eb8b5e3806fdd2de29db812db1d8dbac8922066f4c642ac16f690525e8b1855335f9247dc296b423af5f2f9eab5d7c5ce262fdd00b238cf70a76f65567428447ba5d784404ef87d1884500f51010536f9165966e9723a4f97f9b5e7db9547f74432ea024afb15f359712ca6f6b668a33bf7f1ce8710bfaa1810bf0d9c2ae8208332bbc2ac29a57b5db63f0ff3c71b5cabdb813b0479e8054705f03abf961ee390b175cdab5a282c8a6b2ff317f24d5103b91f8b6298b1a0ba7e8e795ba26985a8814e6da2962ca5c924e8ee64224705205587baf3be5873ce51252afd8357346ab438bc7dbb6310075e585892a742d286c7cc8cdf5740be2138296827bbd13b5ba3800a3f1b4af0b6f75b928b348efdda89cfd9a1efbf071694cfe5ccba19bc62888f1d7c6a712a49c3ea9eedb2964d6618cf048a8a9f175445498dd663c0104ca6594ddffecaddbb1fdcae8be5cc449822c3473d4b37fd478dd309a14f220049013915a65d8ba709a6d146ecda8bb6824b59b231696d129e0351777dea32516da736c3211a81f2b3e51a31cb2f6b265c7abaf533770c3bcb9a5cdb2f5ea0943089048f3604f9cd3f31a4dc9521a745feba7958e1f92b5586b408b7704c9ac5efe12988e0a68992b67a42f9ee7088ed67ae4e782f4ea5ec4a46bcf46d59c5e568302479ab16604c2540ee192c14f628398b7dd1e6dfcec8d70de0b1458625df42bf7e133a10e87b1e88bfe5dab99a3a39ae0e5e20b0f7d8aed54de88e5b09c683bd2277c266e93e34eebce8371b4810d4ba3701ce2b5d5998c9b3c7d1e33f0c18e7616d8cc2745d83bfcf65b51e823f954b98dd325295c720db5da30976235650bd7d7e76af390725276fa37aca5b7ab0322c27652ba762143617b528504369614fad5e73fb1f47bd6ad40ce20610677b4a157cd28e4b8008c5159a9301b61be292e30d07653e54f136ca29fb3000e8efd59e51b93910f6d2c5215ba1a55e424f4cd86bcb9988f0e8fb68df077d022d2b711c8dad3557320f6e6b051feeae5b898715f0ef84cef6d05952a4fe282a5af19186f2168f6c669d9fc055cffdaf1b53a00bacb3ede6125a9d3d53097f732b2898f6acb05b2c501fad14bce4125c0dd6da6dbbed651f603c4ce70e08a8fdbf586e64d70a11f3c67d2e8c09870193341e8c59cd86884b53aec1b53a0d4ebca231ba4796092bd22c61e57e6f567e33fb9ad2097ffd870de7eedaa4e3df0ecb39049dfe046222434abab12112df3823bba0de19d7e20c327abcb34a1578becc0048041cf423b3d2e73d96ca552ac64fe6e6ca974e5c643931de72077f87790056178aff372a737eaedfcc003a2c5bf2240a056a7ba4fe67f59d26b27def87f62caee55811acb8be745cebca895557a0c10c46c99d883df85c47b15416460f0fadf0eb780bb0d07623b417ed64039ff261cf1ad108e99247e1abc5c8ae57952c9de41f9286928545cba84c09aa0cc6cd599bfc689c3def18c9a0f34759a052448133d34a0680f5ef5741aed315390a95de9ef9074d0d8046167ec44058d554b679abd6424700b9e08c4aeecc7fc51dd2fe66ed140478be7c97a2e702185b719747beba6e106859f59ad1c03479e2c11b8a6849e5f9afcdd8f7ef6e143cce07575403a06aaf651714adaa6026b7343145047d6d9c0877298447481b42867b946a3eb49726117501443eec23111d545a205660906d5daaa4a70117b9bc4de712e9372f948e726d5a41e97120fff04eea5c2d3138025cb6b74f05c98cd5f44630407776e90fb7f34fc8a65ae05bbf23274ee4f442077e1c1f1c5050cf2b4c044e6d15ae5d1e8d0401101d8a262db8489aa159137f2277f2c9d48aa03a5d1a405464f8a3c91aab70d42fb826c3efdb258b5057d8d3d2eb62183ea132a68b0f4c548ed343493d99591f69c01b788a2298495607f4f9fc97296ac6af83b349442ffb89db1ffc64afb81b8f8898ed08e36f48f57bfbc326d818fde68a968ac00323d49785ed55ef27d82e071c8fb61027f1079580e6f6a226971b52056ea62009175b5c8e08fff86ad97f1b893965424156d082bf8fb22f441d9b48e395b1af882ddfe18eee44aaff2ede99018faff8f14a3c1fc8386ac971b9aab01a997205553d35049ac11a71e31ff8f890d1a317a26e9342a8056db4578cf1c79889c84931513ab0b7c7a94a6148e17d1403edddbfd7f4e19a7dfefef34dfd8a477cb785e92726a196eb717ee518e91b776b27ea158d513fc50dfffd30c3002c760a85591ab2ad857839fa6cb453c108f01545e6080d372e1b852486924fe23219d1e4a9a999f5b62f651154dd91f43e284f028b04c869374a98c2e3be5f9a2090f13416d2b754eb00459e2a3cbdac68b82d6aed04a24fa5fa6023d386fce1afbf90ca494b99e68e5e5200f6df96c9ec65066b4815742ac3ccd96ffb753d310d59584e7a8903eeabbe2c003bb5314718e3f57ab4d18a22d9376228aee3d10da017f428a5466b078d3f13506ce675f49d9b594c7f752521afd73f2dedf17aa93f9896ff5d887d2b836a6e9c78fe9d79e643559215c4f97aa0c41957f9e68cd0ec2d7440401d95817927482cda7bbaaeea7651d5b026b16a8a497c9febd372286bc146bf551d480241dfce11ca2c2f4292ab77573bad675b1faa57d91a892abe535aca610451dbe9bdddd2ea785f33afd02f36091c3d2c0369b380f94f6fc4e47a6941dc5482cafa60404b316fab5284faa4c38ddc1c864d837f2eef0afbe663c34def7da4a443909620d31b77dbecf90cae934fdb37ec15da2c7d0c5a154bf6b8d59e0d146fa8801535280eb249b5d8e11de3a47be94cb27348edfe05043f188cb11cb6457e11d037d8ab99bbd133b089f8300486db864d1252e3571411252649e2b8023c52c832c73ce40dfc56445d4608bf48aa87ef11361027a5e26ff1ca6434c9eb6b85cb5fe79dfc988cbf95e0df9b16075638cf234a6165195ca4afbef7bc27f3536a4d33086241f84e2e2b854d4181f150f9e36b86d6acc40bfffad44322b0502ad535a1097ca5b81a39de56edf48e4cd1c4db3150acf25c0d97855b5c31c42e74379d77fbd0400722d2d9e8c34a9173fa5ddd8623a38d961e8996c80be4caf6975b54f1220cca11f09d1c6c7e8c216df7b500804fd3bb0c532986b95083a9adbcfe5d18301622f7a279fa1531a4998f236dd2400fd51bba2c4342410c044f60883f6ef8cc57c94743079bd60bf19835f3fdd3d5c97d32011b7acd86bb142ea08f5872a1f00a67165b307b5f7fd081828e63f8de8202e844a25abcb35694ba0f886507fa9f2145982eb1e9798cbbfc36509a290ac6860811aeb2b832af53ecfe8f02016206b4d25538e989ad375573959a2cc35d97fec3d2cf55003ee713c2171d6de524107b1febca5fd3365bac9656b41a165332d12d216c88e4bddcadbd1a646e6fbcf0976258faa5924d5140d7ad9fd0e7c0a1d9bf9518eb4b77a12f61ab4bbf0ce33ecc77e22e8165bb300def5d1d89f0957a39d434ace52e8a5a86b82c3cc6607690515a83039441c2950157dd4d715c6343f12c66c43f1a4021fcd0ad5e87c229c0b2aeea510ded5231c5d08aa21c4bb752596b7dc0cab22abf6a38e61c60bb084764390e8e3f849398a4dcf1105d54472e659bd275bf2b925f858742f4ae8bc9535c654ad364f7b50ecc421fba5ffeeab412a66a1eb8cf339004d500eed8a4ef8996c112453e891e43b88e05780245669d85dd2f44fd7b502bd1405d4e362dbe92427f32a5af51da3de98ef102b31c04141774baaa32200b058469ce4c5080fae957f39c41f2bb65f470d60ea1cce500811003a9794f451776b1f451e781ac7e906c1ace9b7c07c340ec3dfc9155fac4c1df0689293383b71d810cc9227ef39b8ef710bb6b46c9e034d25e70a83128ef5e525e4ff516080c7503dc644a764d4d709b9952e0a2675004cb18eec35b2f2f89cccf60d29115b10d901723009be43925b0998d3f859e4cfeec0f891c7c43f0e67f802a31e380ad9538705a307b9687ee069c0f48a6fe0f525328ba923d8ed37c5d7e4a08bf33b1fa0523573a54777d44ce4f57f6aa697b977f11447518acfa3add3848ece3aba346466b07e0be4cf6dd8e047f8f1f980c565cb6276fe52d22f9bc04dd355a79820fab09b8ce4410a34376338d13d496240484cda88f6f168ceb8799cc7859c58f9459c4e0d252731d9986f35479e9439e38a54c629e6860bada0e934dcd77c6d0e256e30009ac56ca85ce85e655a9d2b4087aed6a2d9778f9a7f8f301aef44bdc9aebb58b9dfa508c677fca8fd1134b3acccdb1891bd2bdbae8399c7f6ca735f931b409e5ed5a2c463993c76c0cea0a1ec2795a7a786106bfa291d7687e57fa8cc813b66d1cc6692dd7b6288854dd3e434f16ef41fda819117320d014250b24daefa815a06911b8ec8a58bb8bcf756ba7d15b3c938a9435d0a9ce16c83127d00ef934813ce4cf8296090ef1007a35e8d841d34f435f1b89ca247d1f7de81030a3a71fde8542c460674d0060219e7662bd1c84fccdf852bae7f2ebc23c436109086162108ef6b8a158f5ae4337248757a84fc25aeacff661630ad9bb06189f36a5332f7f92cf84c7821428f88d5e8c9cc1201c442f63fe8bd79b182a4ae3e323284f199968baba0a509bc481f232cdd8bb4daddac741d73717cc4f14ee38c55222c8dd50fa7203d37ec49404c4c31a06dbdac9fd37081ddcd8de89e1e91d5bdaf7c02c98d2386842f42feb4b94fa31f74a4c08d6308135e0301c17dc6dcc41e31d52fcebb9d8e5a95e95e04558961acec543304f755c0b22dcfa03b69ba4032ba9cbffc5629d770fa8383d83289fba828abc7798ce2d3e715a59fe04cf4b6e842c2ad72726f969af388af0bc91610f5fa35fc6a410a68212d9cfadbc753cf453e7d86b18d0fa2c76099d22497553bf857caa6ba92e389a3eed645bbc78486213441bb91f7cdf0e88865cf6a979840268cae1d1a45f9c3da11e2f444334d0ded0a6b7efcb81533fbb41ac46ff0a7c314ec00a3dd352e391dd41ad197600b05ead8bbd7d2b71343c1a75db038feba6a4d496649239740b4405a3df01dc49267a5ef58004561fe6506355165a4454b6f06a621c7a1d414a3322006ce0e33934d2ae2b25b0e5c28c218a34bf742da592f6d23935ea8bac7ba6b15356d159ef3a05fbc950b57420be533474d985fca5c3afa5acde4ed1936965236f1885f346d787b51de5f224c77b463d48f0b38656701ace89b3110343ddb25c65229dc9333e95e2d4d2d61c5d8873324923b4454f582a0cf69a367909ad1035c50d3fd8a79bd09dfc65ae03fc6984d8d64221d9b1682e74d245224cde37ebfba30dd47f0c361f934fa37b889dab5da34a261482a9ceaced728263dc1401c6ed776551024b58b984d49042db972f633ffaa51ca87ba951b3a4e0854c215e47c1c2f0750b65446ec8cc8382312aa5000b0ae37d5428be2ed5046089046d688d1f8c0520249db09dc7f2cd3843197311990fc77bb49ace34b7a622982f3ba58a25ac3b3e3d2f91778008645bcf5ba91b3084e59a9b697681910a5ef83b9d15c5e1e5e2e42c9930a903b6573316d7cb714a0729effe27afd6ed6304065b77a0b6dad131c12873d8bcf7b73e605d2b88371671f6f878455e532d30e0340895083a8898777a4ed88c17155ee1966c90a8f5f7b4af1bc77e8e4e021d1cb97ccde0e3d77cda901d5f9caeaa59ca5e12c2d5e10394c06b4cde3609f63e7179353830e3a9366df0f9a1064519dc912b9efcf93e841f9f6d8f4cb1c4e497755b7871b809511da5beab57fb3e5705fe2f670957437b0b6a62b9b042ae7aedc4cfccee0fe818227bdfdffbf3df6da25232465ba1c118d10eea19a156fabeeffdc07b63027ebb9ac14ea4072a16fa3b6a7a173bb26a43a12116a0a3507c86afcdad1435e9dbebdb78b1f0b96bccaf7472ab3c04a3dd1727d18364fe1402fe6483c3ecffed35cca32c721a709119d1b765fc197163e4611aa0b62118abbc2686e643982b69567654a4525e8e158bba379ccb99f71c2b25a2ceb8b3689b09522d495e748fce1077fe6f9c5df89036573c0efba835f5781a879df99df9ea02a8cf10e91f27da52503b1c019a191e34abc121dcb66d01f12936d57c8576d655a5432f16fdd6eeb5f3d716cafe7de4a14b661db33a137d2af1923ab2b5cdae0299174652b440d9fe4c4f8e2f54fa4e57e1a99a032d6795ff469adbb69c6079d226386efbafa768ceb514d68cce64aefcaa7b91e88b245ccaaed45d554bc43581c5e6dd819ee58fe17fae19b07edd4a52f718d7b3d63cb367e398b8d5f911ebd54100e7d1f46e00a470a068b2dea62510b03b2af292a443c0531e059080c7de233993079c686771844026659c498eededcc9826baca2fd1c7a35f4e41dd3797faa2c6062d74c6046e1bbe1f9b7fe4e710daaeb9dd8a7e7ddb28cd8a54b38b8b1c4310580dd98b7c062283e9af2506d0537be4f22e62f9cb276ccf29adc951a32e38bb3e8c190432d5e95727954274ef9ae5f6488aeadd7847af19df03879fe7f470be6bb0fc1c0143fbe06f09c47cf0ac62b8aec1385b759c63cc95917dc1075b2fe30fc50cca9977514f7ed1f9722dd7cf1e11d56bbe9afcaf67b597dd7b93f98c3b9cdf1879e974dffac38816787efa1da2181e24afe62bee8d2250fcda0c43f4e8aa47b5968e7508cda2c7b4d3c77bd4ea4736087c52462d96a5f2d5933306a532ca9fb822887f247b9a3d4ddccaf98bd0d1673f7797abb0eea0c885f42b7d34ec230bbd5493500191f21cc36ffb9771a8c06af86272376d4f41bbd06463b3082c3b51a350e9455f4bab9cdafb5b24c7e34809e3ed37918fbc91639b7654a6dc513a2e0eeb4ea57342bf64b916a25c64fe6007b53fcc25f4581d6770868c27415d8b93e47da8b965e4ff6f6ea7251d30bdf852a8954fefb00809d7fdeb94301994b499d1cc8389d2bf164e679e5c52a9bc6913f8ee118688e3ce5a95baa10b1e79b349c3f9498a4a9e75b7f93de51b614ffba767c99f167877052bad11286e591250316e890b97d36e3f14dcf260ae7dac9306b9edf9c02edbdc4360fdbd64ab7f22ebc877189e640074eeacbca127386ef034394c4a958c903bc2ece6e5b947e144608e5cd6ec6b8ce8466a26ecb65e6000c833e9a7da2a37a5113395a753368eeb8ebe9f86bd4811d76bface4f31d19e386e78d9bb8cd10e556c3bbd18ded29a5d0e1bbeeeaecf7c0e3fa38158680804ff8add4e5905014a3632ae2237fb4baf075ead9d141acaa60dd192de995f8be783d2bbb45a976c30a4c65b48b61a252ea34a3ef280ce751b93d55693d7cb782ca5a671dc557879111cf8b3b0a20eb8aaab59ddb1b99900b66bbd6523cc1c01a0b4aedd39f9b6c2064b704daefc6bafaf9c385f99e622110b8a309640d0b0eca73bc5e72f24249686214e62c4acc889d5b1a2d9c0d10f3fa3b03aa6b3e4b7124116e0f76c0c0577c6d6d6519773f21b29230d2740b61c980539bcb3d4e0b9e04d7f087a57021d9ded051e1c6db74c0de217af69e38ecc1c92c197c493c7a9d934e8d1608aa61d72174fa0ea3d519d5869c92780efd69b3f2ccca43e1185ee11cfb5ffa161a2d41426260f8354bbb2ceaf901a95f6ee2b6bb597a670c696cfb3a63c33b396357ed764b9f7d77e437892d4d79593bc97b17c57be65093e60427d85968c16ed2a7cc0fa198277ce223f9b1b2affa82b350d429f62929c5c2e2b3f532b22c8ee05510a2d10411ae99c3d3634dc8bc858cb570267f54323392bc360440714d1b87b27a57145ee1ae9888781cf06032a98e75bf690dec27985c4fa595858c9b9d7885eb251aef9f4cde50df186cda2c9a1e765c89192c7df86465e3728ad970d34b68a081c5e06cc7c5c85cd122c88e4c550131bcbde81789ead381d05cfacde0e5f1db3672ecae750d16db0d0c3e57e31294d02b6768acc61f06ec0665195410e0a6b6f66e4482e3c67d70b9a63abdf42856587dd0b58494344d4e9a93023d059271a3107be0eb17796eba0ea43fd11eeba6426a97af0bdca1e86f71e1ac927c7c51b9fe890e122c438b3085731ff6331edee4ff7d555dd5df5345a6837b868161130931be55a563aad0c2f531f05ea99e1cee7875b9ec298fd1c1929972fb83eaba09cb5b500c8ab7547d248dd2ffbd7511fc7369bbd673670d84d038d75bfca324b7c33c1bd1693ef6408fee7d9b3632b403c065bc42c891023a4e6a2e42c45884eabab930d82940a90b64b91fd6f316f4185f901c45683fa1cdfaef54e2fb5a4add2d0b4cb728e1ef81924f8ea5476a33159bf93918c4ff998541217bcfd2a130351c4a358f03943dd41e98a39c87c09ca5e2c875b5c79e8886ce0ce2e505c5ff0bbb88ab22a5bcb4690130edef7880947b3850165b4a5e1a8269055b1e4500b4d5564d432f381c58e3e2861b34fcd86d7679b404069db3820921ee25ffb1ede389a430ddd405aa4a7d8ff7b91046f0df2ffb23d91b35b89ed573da58adab79d1db9abba8ead8c70c3bd5c5e438d9a0c0bf441d3b8af0a55992fd18b514ac4855c15ad11ebf62e26cea0d1eb4925a88e9b3278efc7dc67f8d865c0624d18910ddcc4c5b7907ec41fff09f8ed5e4b5021249b9a9dc19e16f5815e1136f3950bcfea1164f702cbceb09fd4f6b61842f0dfdb822df081bff6d46b0d59056016cea0f4fb3812b307ee5107b0581ee491ded10731ef1597e9cc27a57c792724753c3557b35a9bc1819100b8a032d2c785cf0e8b63a223f92d7b5dae4ab0f7768eb0d03b223703632a38b4777e9a3609aa495b1ccaa85cd47fc97e4328f5a5f4c3b6e8bb6156bf4d19410b3e736d4dd8562a2fb28a6d048937be069c5ba844a9795abebe3eedb73b074c91cf8166609d1e3a5822bc9f029b91865eee3d916db5998245eebe3fe553d42941eaf98467605fd1aaa6ec3ce48a2eefbd72bc2c184a105eebd995d34644005d24f905c36507b68c72f49c6b0379916c7217da4b7b124fe00ddeb0729eef332a325f1f1c36d6881195d8bf25e002a3b3ce962b021464cb4d36afacfd98d5b538d08b98e382af7be298d63eb3f30130e244a55ae42bb67ed868785c0e4fc7f6c29635126be113fb43021d77f488b268376d7ca49678f3644c1b54466a470d08573a4a06f94bc1b630b83db97c63505f5cfb1d5babae31ffcba487264565df2027bd5c3f0f7422205e637dc97c3f668c3ce44764d1213cd49c38516b536cf218ea499d5d01a772f050f9385f7d74e44e6e3639ba52cc27ec03be48b5ac04eaf04b5ab054db3e98a181e5d4aae94492622b6715e9e257d85432174c5d7e68b149ee0a0dea97d93cf29082e5c869a4946ed915ea93bd01f79d41a9afed8d2518e8f8bee43ca7d097678cd5c44f0d7f947a228819ef14745d5c4037f4a38b9c93393a75f839c5aab4c542bd95c745cb85729d603245d0ee5fab4e6293f33428b1cad7702a262082bc9aa807c92eb1f02fa506520b739a59b3a6ca608c02471698cb8e170d18cf98eeb24c1f9572b44d5f4908d14f6b4019e5ef8cbe3a2c41dcf59584272a7d989581a3dc4275fae5e516f4920689b25fc27b2b3538a97ef731d220a7a63f9408239c43b978b11e48833024c68414e36403e1838603033cf5fb138b9d2d3af0d7eaf02c9bb024aa53d498b96880682ada5f2624d416fe5daf2ff397487046f9a1274f3f47c5f25fd250bc76f1907bca05978fbf7d41190a871b2f2cd325ee6aeb46a61e5350a47289efc8831f392497d8cf8e0a7c2751239cbca3d452b2d6d4785590b0f9812a0cb4f61fee22baca7d2ce4873cfd717fb96f0cc43bf833621af52f74a0ff6ea1c84d71b22555f3d5f75265419511c7ef95567092b5cfd525f3e7b1b5dfa78643372d130a7d8150d298f33363d4675ad6b0bbb4ebb8118ae26cfc5c371eb822e55fee956fafbd0870863ac5c3bf19293cb9323e5c5d038e6f639732a6558d637b38add8f655d22f1cf9566f8e9f8832a5925a5a42e36659d00dbeb9a53f40caa52e904c3872335c26c149577ec149402dd38fdab32c7cdb81704c6bf7dbd942eea2227826e788e31abe03da82f6220f18466f62783f9127e5ea7bfe25ed979077697f9bbdffc6ef3765d48a231317ebd96928146dc422f38fa8b94f127a414e1e4b4bbf42e4d6eea9422821e37282106eef9f84d18b8c873530cddbfc508bf4a4857fb86627cf1e8a7097efb1704764683f622151054a09cdd84e094c7c8c985f4804ebe83cbc38702344be39ed0a5590f4657217c9c636944c6eba5cd14254f8371bd544fbf87bc61e89226ecf80f7fa5b9ee1e011bf00900c09e11f68278b51ed99ad8c21179cf53df8ad557fc8af8af85df2c43a309e36eb100f251ad37c3f75f49ed2cd5753eceda88e716ad9f9720189126a48d9fd0091423df708b3d7ced017696903b49b7cafd67a8281ff22dfe1976f6e5f4bb7bbfa2b425e14cd3d12731474d42c75d08699cf01abb9670623b76979144b8add91f582b32c6594edfcc6989d76945d3af1d4329c188cbc1eedd4e6fcacf93c55f6a7cb2bbfe7cd00a5a63b4beeeb60c8f81f7f156e77d27ec9417300ccfc6d90c2054f2e37c884f363e3968b94c5ecf67d4af128237a6483e53631cc1009dcd11b5d6123c9fd0e65b0c33150c41ac1278fbcb26bee9be04f6ca413c82c7bda59f2cef8262abb2145387d3b0a66c658ec97ee57de1763446804adc019e0d0c11e38ca93a347fef5deb6bf1534bb0ae2044beeaebf435f09faee26442cd629f0f23e9b6ff3f7057d743e29af918c09c71593dddd7adea021a6091c928ba7ce593a08dc0e8240d3a45b31d0ad31ad4cc6559471d1cad33b04de7b4cd9bdc9a8a991b2fc0f2823b0accff2bc69793b3f9bb60f74fb6ca4cac92529a9a504e1c6f1089cbf53bba1a789e86b6ab7c528b1364a464361fd3eea58cd19d9d22fbbd8ebd341bc730dcc065b6add4a826a575887e6d14ffad539bba2f2ebb94eec35b7c99160df88d239e0ee5e1b42371b0e4bd249c6a05e0b2d63efde06d5ab3876db958e5ae9412a478e56ab3b29ff0597869b41d44dc5e0f48b3a11bbf083e921e323a073eb49c5c72a8b13f54dc92ba0691e961605534d96e09f87b182aa67bf11918004cffee0a912225e68ee25bf593956bca689b86c5893d7190d352f12fbcb54c861cf77932f6b118ad1c0f0935e9e9690152f21f566dac2f6686830ee541ce1e9d4fcdb21fa9c8448ab6dcbe92924b49b6a61710cfb6d08976fac7d8ea430d3d0afb8085b20cec02c2311681b3dbabca45a1cd5169909c1b61d490a5df4dbb306363c8830ee73194459bca3fc1e354091fc729e586bf13328e5ba2fb07013487fd013d807b9bcf407caf370f10dce28d6610874852268a391cb2cc0558a72716ec39dff7d6921e0db6d30920795a023fb1d98cf960e3829685104e97df7b59ec9678d7697f8ddb4898d5d249d332b99f2f670cc83532ea3b96556e52ff13fcc56bc6c5b962370cc6d075df95deed43548aef245b4369baf97eb6e80b2e697146bfc14faf0061b4545c584c2a1ef6202681112464983d5b9355e4b6892e3e5d0bacc35a222266756d06e190b7554830c8045dbc394ecb4160cf11f5030107949dd78d3cd50a39fb5baf9db02d7e2459fbe91eab15a2715319221d1e2000845f665aec597fe0e510a7c937918f6ac9d0befc0f15cb52b5ac661107a85e83b5e4fb51c38824845d072228619647594e300b791361ab7b2e932d51febe95c3a7e2de3622b8d6243b5183925d2e104385475f6921146238ca9ce72462671368285ba64bff19c52bd5ad53c84317cd6148f1e0c387292d8d98859b73be15d5b78f3f14f07b23021815ee650b4b8e6b98c197a00e758a5c697f777112607d7ae3370b15e85e968fa6124b2258b5a48e910d965d9405b0789186c3f20b936baed1545591383e75df97a539c438101b6d0e89c4898ea23620148dfd286c3413e6393e0fca0684fc6971657ea2b0a097d5aeb92caa4abee0e8b964d0fe703af659f1e5423799298edfb6cdfb701e5c23d8a08cf1da6cc0ef5a1683848d5bc3a4199e8d617a1358efa9eb85dfbac48f1d570b0cbd60c4069b816c82614d7e75202e70841ca30eed28505d6899aa97a4f1bc3fbe354cf43f7372add1e29bf1798ddf5ac933f9ddd558084c0de8ef45309669df9d5ba1ada485c2a672e49f81263bd6b206e92b090e1694cc31c1ac9733eeb3dad4877faacfb356a05e73e91ee3ec41cdc9883513f90d73423c40a206485e7bf15425d38af486cafa2dfe91bfb689f3e4c7b9a7c5a534a025b9f1023c064992111b04cf71277fb6ebe2e5bb12452a9c3a9a6d510c76c5520c138210681da0b1f0be16acafc674373a0f101ad7f25dc07164aeb5196f4140a935decf8f1d6b0ab2f0beb4ab00866c5bccbe7f09b39943923bd19428756f4daefa2602270bdcb1448c5666ed1e1f5f3ae5ffdc4e09f222817fb87351ed2c4c140dd3fd807e8ab16818bc61fbc8bf4103dd776a3a3992f6281203641aafb2350ebabc3843423b76e173ebadce1332101c4603884e41cedcd30ef7d67223932e0eeea51ec843044b44fa1c159931c97f647ac52799a551925304e23a45e48998a3b3d41c5a94245822dddc46e9a1bbc30256e8fae4321d1fe33c8f439d3b7e266268badd38082c23b15fe3cce8e197f5b06e10d1efc933251d009fce39e6a1e105c805cfb028e24f5e273ec48de95e6275742ef8bb672cf94de663ecc6e19d9a7170bb2f997f54e4c089227a0171feff7e251139b53b8eff3b8520d6a75cf62d131deb4b936bc8a39f211ad2825deb9b7b0d4e40c3b14a42f52eae6a9736b655fd0f22274e5dc40234f8e0ec0ca0b0b3e7615367ecb69a824bd6ae6009e22cbad1c00960da1c184becc09a9d6e87418ce2e5f2d336d4d161a6ab6c44df9fbf4e16b08b8646fcc6e868c652d90bcfaa794798441c4548be7433bd268a9a552418bb1ce878264d246d4dceab83c93137e3a665a46be0aa14823956a08896f55e25dea58addeae9c7ee2bbc67dac2d491ce63e3989879d43bbaeba4bd8d3e98a04026a72de2953657c444987fb1f5eb8cf46b07ffd1bfbd6086c18e84cce454745319c2a53501c5f359d91a2c7d641940f83690c797250f504e69cd6eafc1739799cd6544aa6682e989e0ff0e57ed5a12b24efc6009d74f01f28e050a7603bdec2534e069e70e96bc79bd42cb1068ab94a59e51625f65548c929a7b3d8ae0e0af9aa201d683b1e2224388a765393ed4ab92b876a6eed1735a2534303b76659665dd4a4b7b6b0515428fd65d3ce9d72d5877e59b1d9441020808869656ce640eca2abe8b750e1217611e1b6aa9578dd7079f369e264d11a293f5c5fa3b5e1d76d446b50458a312af15a08ec48b3bfe645420f9375ab10cba26462c8ab12dcfc0b2b46ce4b295c39a0084cd35d84752f11163750e89225db9191bef01087886ebfa41f0cf9593d9a54c14e557dffcdb9a68661a53b070ed832c5602d88ea3037d4aadb2e41b3575a53b92a24a18deab769b2947f74c72373736f97cd6cc986d26a7801905b4b4525d56c02a9a37208a8d4c28bbc1d423a117753e1243bd57fbbf470aae743dc8640862afefbc5c5e363f5ba1db9c181eb27143a296717e51f62ba56f7e536f8626f076e80d92bfa50ffee953fdf7229e6b95474d56c468652e358d18528394ec70a6d0a9b565cf74e1073b5bb2d46814ecbf82d55f7b21c363f3d44a0cd92fe5d65c0240f8ec5c113414fa0f81cd59284f7f08f15ba6a937a342df521a44dff48a87efe619e36b3d5dadf106995bd55e169e4b2083f1f9db559c082491cb89035b11590d0186243534e95537fe51eec3c5bae6128b9a884ce87e0aaf3aae7c1b91e6cf32b7064605b9d76f53dc61fef4fdedeab9efa7e8de32a4f61f84531052ea45b9ee80d3557d8ee9dc2bf8667cb413535487e0f40e44a991f36a4fdb0d474f22e6dea72374c1f85b6145168a42df6222ac73471311f9122380c887cc56662ff267dd730ad4386c48371f40d087febaa68952062b54e9722d51f19649372b639f8d6fb9740ba82f65b796ca3c671bc7a4ecef4c3d79d3207075ddb117f04da434ce907ad7ccdd2fba62525099a9d96c86eded4a6c682efe031061056b662d3233fd3335950f4722e625796e33e2c38ca0ef651e2547fdac98aaa220aa7012273e17e91ce9247624aa1b5f9e5f6954608aa4bb444767170279e6c4e42858874fdb88b97c9795a775209dc6d11056e10ba702e3a48c673188fcd98350bc6e56a693c092fb021a3c70c52d9e0ea363f0c06c2e836c9044ec9decb8b6541a673d6fa5801ce8d0a7363e0ccfd5bdb5478a67bb8723beb9175bced1ee90016a52c2a3af0d26893997f6894d6f98a07b168305b9bf4b236f29d5013a4210a4105f00c51555c441196faacae684c98eca34c02496b199dfb53d97da40a4a08b74dd63f38d2f5f2d7ad3a85f68a01b9f9026a22d95a31503101497d72554100f5c9954a67233c068dedf365eedac0012fac3c03f94f246d5eef5d86475d27fc9a07f79f92f9aa3fc74c0065ed0b2c5f8302b32a9d64346f8f32a9c3584d239b1a5b592c2977074ab520b8dadf608dcb74687ad44069908105853ce1a6257a63b45c4780aeb89a45a9a7daa59c35d61bafc85be1b55eb68412c69ad65038f5d0db651b09c3473cb1228006d42a77edfd2610a8a57bfda56d8a7738ceeeae98595f15b409a8a42c7ad730c2b049264e0260afb468532de3684d3e8c4c2503aae25ecf384551c6bf3ccc9f147d0bdaf5cad51c68a71190486bb165aff8c2860660303bee8da294d7ffc298ad51593ca3b9a94fd66bbbf6a91afd5a8ea8e5dbc997cfc31aaa4b6b2ef5264c9eedc48864b7c746ed4bd7e84638b930a992d57a44445b17fb40d19b710823d0a173231176efad8231e1791e0df7581d64c77f2d420e6fa9c6c1b5ea2b47c09af5570abd7097e4878acbfd09abe79cfae753bb96a019df32c476610f806bc008c2006e85c81efc5f1f91874a72641fc692b0cea7351e772b6e365d38b31368d912db4ff79a5f991843ed6d390aa7ac23f85cfd280647e455a764af85877093b15fe69fb4cdaab04171605f5ff2f163d871cb3f34cc51de32ff35af8a66743f9aa4f833f27cc991715a13a6fcd477224d40fea9bccda8f98906676ed15bcd287e0a3dfdfab94dd0c1005f3b82a9ea63123b786f02037149e6b3d9ed56df3341ae1faf72ab99cc644de48b7417a7dc97581163e5208dc61d17d8caad0970d8825ea0947df692db9cb63f9af217075de6761a0d5e7f7ca1b7b0a291ce4ffef91826cf3713602deb90a254252790977a8165b6203b60e71cc188361be38226efeb825d640d83ff58e03bc8b330c51d96ec453e371e57501ab63a4e94ca6c3b2c5e53e468c18cfd5265ac0f0709ac88ae15d684a9b1ca5c7b2ea5f0f262d020106f5dec9e4bbf17666ba8ec3b0070f310b800e7bf1d76db6b286c3552aae1f58187c786bb83ef28d2b4e3f9cd47ef7716434beca3e0eb1a7606771952f1c98fa9eb9e756a140635fd439647d0e03cd1d96a6777b5690b905bf27063ed1424c44c2c51e4f53e83f79f6fff07ed981ece0e9ca686258b8fccebba4798775282839bf936b0fc69f7c18541df4bfee1909365c77d84f88e82c55310afffb42ce8c37468044179b887aaf980face51383faf235c0728d27ec3699f379eb83e054f3b6e1257f19a8c6d0a3b139ad4e97b0ffadcd482e52cf8888867ebd1dda48124ea287830073408774c938d0d144d19974a76eccfeedeb8d607e62446ba0090c775bcb4723cbe52860be7ed22b5b71ea0f7db6cf6c30eea0a6beaf5bf0de9e20c5343e066d737ab1181dc6fb05cbf62a92a168ca053f91153a968714661fa08bdc0d17638535b129f43f15d1049bcb16602a5f79bab2b7f35549cdda46b65d8159261b87798f3a75055198f9e7e898f3d854e015a3912f2070efa0fe88535c346c97c3d99c54eac5582c1fa3b046e7bc763c8db739aff43765069e0e62f41cdf401b1eb75871175740f4f6ece2f41cc558be7781ffd0ccd00838016b5a4f648b9ab150cc701ed8a85b876f8be021c2b69883f66bd1076547a61bd10307f76349f146f85af47f993f7fe04107a96296b38b95bf84f8652698bb2f3aa766eae0ca943b8223264b6a44cc8f1d4f19868fd2f50fc2ffb20cf1b2e4e6c966bfa65304aa31d5eb8f2f50f984cd90b1ad96f876b2601088b56483134746e6b35586f79eb7bb25f8c472fd40655349d6ee387343f5eec45ed7fe817c0722d39bf4e6e866a3e6bbe5f28005353cae97269aeab30b2d5267ab599ab10c99c543e392be74b969e2619c614dc15519313880c57425dfe6870989694ea409b90abc196c587e7b47dcfccb71e2c0166c310e05eeda3b712052674ed35d09e56ce8cb70c95dc5cfda4e1e31053617d0a193fe3e650bb19118a4777368859f66d9e28fe98d4e3d61d50dbda10b2bbcb4cccf550331d57f5d17d671e94dbc3962948ce7f77b73046b68765fcdcb7c7f24ead9b8f55a6fb6a5d8eee1e4d568a922498b577aead90b7db4b3de7fc74d46cc592f2a4610548a574e45ca04c1555deceb6026b84b8648b958e2747db36e4087a18f289f03440b20746739c9edc7b05ec4efe2402cf20ca62fe79e94ac0d93ccbadcbdea03d0e2cbf086e4df557fe9c1304bc2a7a52a32eb1a0021dfd11e47d2af4f13c92720ce374d4bb8c28eb13183139a9a7fd925623673c58bc0cc36a129d6d3d86eabd2a63b735da27b112b5230527bec9e3634edb5c94dd5874e9fc363d7b889953fd009f4900427c2d54c038a2424be147c0d3e4df7101bc9492045eb7ab5cc6786e2043a2818d1ee0be9ca6f0f39c5d897f100f2e7f855bb0cb40c8ce598b328c2b76346b8342ec2ffc7bf22b9cefecca19cd40fff1d56c723a48b2d69acb25c3b7d084041eeaaa23f09d0962ec6d9b737c72eafa05bcfa644596d93b7db7d8d79bdab8ff5a6042ede9376ff98b33caaeeec1113d47f5bf76cce429f896c2f584121c93a3a785b35c64e140280f8e3ceb05f591d7ac79907e71d4f920e403740bc5d5b76a17bc276856a8a6793df6465daa370f4d837acab370255c59f5ecd4b397c6658376dad8ab132f064ea87b607b2bae481727649f320903b15c6e481743862e30502c7f1ce3bc751a58919cf47f6479e8248f6c047a7523d177d419e38a90a01ee9edec90724031e42121c458eaf06aad52a778c1ef73bee20bad388bd8b675d79840db44deead14084ede835fe705bcef77a62645a5f9c260decc0828206f3815bcce4b651879bd82fd0058c43de54c35b2fead567d7bfd189b2b2cd61b674dd667e7db4191071fe280d67b202f002353bcedbec25f96b561b5d5bc5535330a39e7b9a7329ef350e45c9055dcd8f1baf48e033a38a27895574e26142b9fc5fa81ee375bd97cee6d0b2d06bbcf55db1d6a6d74c80ed63aacfdb8190dff8b0e85eb66018a41cf9cb6f6fadd9421246a2516d4a5f628a363513a9c1b591f8a9cd42678f9207974a678ad00da976802394402cfdde1002276e53ccbd3642a8c9027be82b10238ab0ff14fb7a257fdc75312961bd7ee8d8c46bca45c62c737816707424172f759b3aecbf6d5f55c68a259872020ce580f53f32c6aa4d2835dd473886ba28449a15bb00ca765d6d1f32582c22f7975b6324917907a427f3dfd06294be7cd1771a65f7bd4ab8f5e75e3f55415b9d8803c99732e0667217ec104f66d6cff08de4c09d682733ac7d7b365f7a4a40449858de60688ccb65aed56adb0765b5d22821ccf48b607e1c66687406408638b2fe0c39f9187e1c627a3274f97fc21090cde02b43c3734daad1d97aea4d55499f2b8804bd3513fc638488bab166f06ecdea920a89c5e4f3487b52e1889faf26375192e86cb380cbf61e261212a0c29edee42c15699ff04cbeec5fb79eb869da9bbef6d4ab1242aabc044263ac58f3005098874ea7439d0b28050ecdafe93b66600a27ac8178c1e3ebc690f614120a4360acfabeafabfa1975cfd4ba82a4bd900e0d293edc56ba83cd8ba99c63bf674681b51ffc0e883786e9a8fa1fa3e0c621a2ab59240aa518983f1dd45cb8f1090dda27e757f6806bee9bb7a4b3e18fe92e0c72ced540a856fd33471a91b114d765c5196981bf0639d6f8b00f52ce22f5bcb2fd5fbb174c9b702e86b676f6ba85ba52d61b8560b2a8d33ef0aa24431db6e7eb37a721090b1b09ca053a43affa70d1c13f5a65fa35e00a02dd0f61d9ba63f5856077a6f8667d2835ef03c008daeb8d0c0264f74edd9602aba10fe070a36d3740e89e26a8f14868b107e446b4cbe5b95b95414c419e6975f43151fbacaf9b5e511bf93f40e59708129f02bc673bf2ab8d1036b05fb970666ea139b573bdb1f4e09b1a33ce4c97ea43ce67ca5b2a052db6cba83656eab869fbc9182c709409028aac224fc0bc922fc105bc39ccdb76599bd2b0db762882c35442d4be93dad481df4a7b196b9b8e2b1eec1bad7c9120593827ac7f38f765bb85a48a168f18f92be519921287f9b278808c197c3058a4b23ad48c64b446c7426c24e97d5bceb747931cd44fb0fa089f1fd544a030e431ae86cfc55f29e42dd83d762d8cb29794ae57407622e7cd4cf2ca65d5e2cb7d5ab4b0ac01a7797a6f6300050e2f93602be391b7d4a91036d6fd63ae4f8fd1fdc5d5851f0df9aa22c8a01279028cc1a9e8231624737f72a2d9145e5d3ff117dadab0814e9fe766844493a08ea60643ddd5adad91e7a13ad78363461e61ccf741abba59f5e9317b861f612f3c31f7e5b2ebf795403a63f825b22b39a8d5cfcd4ab98873571b735d8ff5ee17293a41b6a49c8bfd3f84661f3649ae671c38be7b2c641969023ce39f55ef8803744708897389438bd8d6a7895d6ca096b4b1a5e58d10418a60128c7e4046eb72c9dd3474bb9125d6c6b520f28817f2a1c1640c76e15d52591bf61e5658c40539ca0c5a5398b2c1ec45aeda78b4dd19f4f9c8669ad1facf0c4ebd8b2ac721e8ffc1b1d0465a65fbcde9d42822f4cd0f1218d38642bdea760e882d9420e9615fc0adea8a2e4a7067ed493450550cc19f10c901f463444e387d9f9ada03ed91ee4b927337347e5bf4b67b761e609a91c117eba94577e400caad539d55c0048bf7c422e8c943befb67045d53cdf2cc0034e51b1caafaa49d4da3bf0ba6e9259a1a22b723628978c558a7ae8d189eac49ad4c977dbeeed3bc2d9a9c9d87355a2f0eb29239dafac5d9ade4fe889b5ef4a492b2656ebc58d27cb98254e677fe9ff671927abff7cd7eff5cf563c2620d7a3f4e90dad6cbc0f0a7367ce48ebac15afc6a379c645afd5efa118406b61cec266509f46276f8b55b091b5f8ff914a153bf28e8c30ec7c93af2a6347cfb7c1e80e2c6fea30de44718c3dd3660b9f6e54952cd40e3f75b3443dcd918f2a2332bbfde9766e93dcf8b10b759c07c87477613ef94b0e7858f855a18773a271d52817ab0ebf5e377fc1b30550aef47a0be624d9d83fae0d698c878b44516373816eedd6ec907b893c1939060846954b27a5c9cce51b7773b064c20085e1c34fbda27734118105cecd515b67d6c0a27c98c397d12cbd2b319d324e2993731926a5e457ab0f91347188cc6db9bd560c9dd4b74a543540b13f243a6f280a72e617fa243d2779f2c6f99af4f508b612e2cf791abf3d0d876ef802ceecdb43c6057db6e81719ef408981eb05ce252b6e95904771ff003f1f93536095cecfce306ac03e0446ed4e768f12f9d205d16db3e79dab838dd66add16c7d8212877281d7c12c8033975923a2056136d014a0d78a9f00c3ff57ac150d0a9085776cc63979a1e01cdc9bee8420f861fd2383df8160733334a388ba13121acc1bb6e4bc790b440aec2dc592b6de138ac8d9f3eebc079fcad2f5e2bb351536c98e40a691669cad2f9afb3d10dff0a9b5cd3141728dfa126a1ceb76576ca4caa53446da3546b1d7e48a7eeb987ffa3f917e70a0604f6618a90020d172ac1eae46753f319a9ac36bc1ebd3d5f539b60eacd8617e8b09af3399e1526b1f26360783366807771fbf4d633979200b6972d0ebfcd06b7453ebd656a8e3ac9594748376e23f99449684f6477dd492b22b8fdf3bfb0e1a448265e40d97597b5f05b4dd73a808485550689e86daaeb02ec003a591c07067f4d91c011c85df5a1457a4b4516e48ee43b3b437b5f6b162b8d4d856a0fed07bff4f41b73a5dc21e499a4ab10b254c4428882339826bee2ee9bfab06d6b50af52505bd68db08f42995717dfdf1d8a35443c26738cdb45901046a2d007cc380231efca8111f6f8b3fcf87670ae1e2a000168ea45448fe4a845e0ea677147797563ebbd3da13d143e3e33509a73b15d99413e6f370eccafd086de26d884fbb383974773f7c2298f849e77bb766a19cab6d629ee13ecaaf1300331e718331d0503e1b1fa46fd59e2eda448398579b91b3ab5cd5ed1802430f021ad8b38d44ed501d841bebf26317893c2efa2709b9e556f8c2fa0dadeceeda6771a4c98eef63ad5e3fe8b4daaa7655fcabbab5e2d76b3a5ad32b2977be90407318ef5d6f4c0361f87cafd1347d35ffb7f159e4c98e38cb19b6769f0b30a971071594aca7179068fa12f3c9ba76cd99e1d76e2d19f87cb7b5f2b3be31f56c81f11852081e931c444bfde95614ba115a0f9d985be6534b72e7de084bce0c32e7c03750575576ed7a7468a2e7e944e71cdc50910e993c6ab3b739d2ff9d338e02304f1691eb4562137f99281fc7c36bdd578ae13ad16778f5a264aa06c003fa8f1ce4054568ac081ce044eb54cd0fcd3e084c1da59d2d28f7cdec7a81108bf334107697155bae9b267526561136c06e077937ec6c0250473c4a560d0553626af9588b5e35cad330c690ec2394a5797ea15c72817ecfbc9c8c6a5b5b1a2d8fb6cab1f71cf0f0a03e1617c838514de5c29a3cdf911fc74363712712f3bef0ba7af67a1ffc234ef87833aa33ef6dde794425ba8b4967147b4dbb93a91fdf368899b3823959c00240b9bde6c3a0434c806a975e763bc1114c8cfd60b12be44911d5975dd16f4d8064495ab012dde35efe49ebfb0dc96c5fe2460d741dfe2560d9c6204f0c94628712f2328e17318e15712f3f9d0c09fd49f74f888977876ea6ba9d2ec2729c2f76c21d74177f993bd980df550790c7db80b3a94beaf0f0811a9b7684514091f3e66e3bd06fd3ba157f19a613c991d3c21ca196fb2f46439035f2334a607cb5869e104dfcd387c2fb1a900e03dc207041f6678b7f19a747c766696f8e425d84d0ca393730363964ffa1c00ad4d4fe693c4c4e52806f14b9c05d2180bef5b74b4f916af8a9eab5bee85c4d62d7a382046abab716f0f8e5780c2566972f697ea296edf86729649e14b02a6a7e82e5e2aad87f1cdc807f6a5db10cdca49a568e18c8dfa57d7500b12c0693dd09f1c249156415331928e4d35da7646f0a99aa522321eb396cd6e412decca821686062545b431446cda343e1525a0791272f7df9786de4c20a99ea27c59abcceb9b2e7df3f7b6cf06af02af93f2bb4896a3d9a40c28f104d218f9bcb5d39dfb9ffed0446dc69ebb960d2dba51cef39eee50e9a1ac9fc92312f8e3efdc72a3471f1bc1a6bb33d124edd51a1a5626e717e5fcc89ae103d2c542aedf3504c1d140047ece83f1f7a3c47aa37340139e507f96c082474117148ea870ce2b74d7aff2489efce98fd7716c89d942fdaf08519ae7a36996e2ac85da598ca7171b6db6063f65c9c7c7be0635d303b95e3acf29bda862ee8c7b6099b5ae30d9b3716901f9bae6cf14ce03516e2394362b678c49816f4adc64e9d0de681b23e41f897190210227f2f6a4449b35fb5863374c909386014d219991d412a267aca9fadadb0e00ab495f93431c40b25b125fa695dc19a8df5a1fecc9428f72015a2c627d1bda77e9cd6448f42a2418d3d02c0a4b461852f8783625272d76ebb19bc26d9005f2a5b570bf93e04b21e3142447caae851da2e69c42bef9a78840eaf8f2ef8afeac4775b2221d46f18bb7c9ed7f7c87d6ee4ae9114f20f07c78abc5d9bf687b963cf3f66adabf4a1cc73e3dfe9c1ace48871fe7f07473f7f9812de4fdffd198606e08a6463bb2f9819312c256e3432c7e5bca1e1958e0df84f193c5561f65afcc1dd4ae49e87ba0a1efd8f7b9d88a2e7bc29bf659a67eb34668731caaaa1bc04b6e2f905dcccb8bf50eaa41f72fbce4dbbcd78fa57a4b807ebfecd3047bdce60bdeef1173fcdf207f6494f912a02bcb982cbfcd6efd209b9fff913e549ff1857df6918610de11a6fac323357c98eced7267d5684eb5566e358396cd6c622883cdc7687233097040ce15660a39764ad7eaf6e4a8eb70c0152bf82a8995604c034a6151f8bb6656f47592b32c89e7c48539a28c7a4228cad4193af2f7896cee49ae415280f52ea4662ab5d9e912e7ab88b57cab4bde2e613b9450b2d5aa836ad6470d972c9d9ba7a7ec39a6b245a2fe82dcc742d360e06658bda01dd8ab1c8cf79d9e69b68c7c5cf6f62a50afa79313a13d0846809a29111ff6c1e515f5a441d6ae24b60aeb8424d2499bc0beda57d9c2eb19de2f2fe684500a95945b95009da2401d02bdeef32270652526a0f3f2dbc0eaf838cb867ab293d52b8e038c5932854e1f64a1bd2714853c7112931693a4b5a7ec60ae985502f88be397bb1ec0897c7e0d26a796b55de080936f8928a548a10c83b5011e450e4625416c31e80d321e992a7506de9de87ab7a30e03dcec488aca9491dcc735e15a2144edbe83e503d903c5cf35e1d7b0ae7539f2adea462cce531012e15072d3eb20f874dbf668ab8a65abe6059fe52aeba1f9403cd3e9853ade60821f9d94a8a21ea3be9b33e088bfb19941838252ca4a93e2a8d29147723323f5761120489e8ba603aea878fa7df4fdd7ec73c51d91631636d5f7f61dcd32c2abd9c4208f4f2abbd71004f268aee22bdad8babe53aca971790ae7da5a5cb6d864091bf4a5cade5631113a55412780102602de765cf6905337291af21f51eaeaa463bd9916e5c2649f7d8b46feff225ac37f589fdd3e8b16a7722fb5e8641efdd8eaed68b5cf7e0776ea0364f3abf06ed5b0a23faf495e7bdad74eaa612ff49dbfc23e64615f6848b3de05fd1a1f007ab6b82934e8ec4840444976689c56be956330664b70d7e7f37056c7558a781e602408d81107c2da46c50219a5ac1be1273fe06ac36992fadc0ee655347eb019bc07e66fbfa7a6915f4e6ff25b0b34887498e873e00d215da81aa47c788891162e8fcf62ee9182759ef7f80b0e679f8416681dd43b4117b5b66be9c0908863b5130f14f0e6135fee685aed11b9ad51f8e49bf3e5ed7f9a3c5712448fe3849015f82f669d40712039d3127745e31316ab9e9225e4a500cb33d39396f238e2c290d7eded1a025f37a5b4416560d5274372f2cf50206ecd336ee66fa63400217a2f4f7532dcc295054f961c6922467e8cc9f71372513db9c24b3369528f791298e4a724dc12a269444f0ff9610811f2d0ef207be58f531bd4128fc446654be7b4616aa4f642d516ead59ea4277caef3cb022b31a9136666d3de39b81f15a0ce869380e8086b485b2ab17c37638428c8118e02e578817d730fdc80f7e355185e8489341873974c0c9f14f7bb7a40972f859a6a57f528f42cedd1be4f620483683409d9a4362fba4b24fb0dc9846f66067025b37fde7644ed8ea16bd506eecb046d665a24b7ecbf7910a4f0044fef8daa0a9ec7bc0b0fc01c64ea8cf0661348956a79e9840a77123d3655bd74d9771a6d87446f73b5aeb489b7d23636952e5d9877c89f0f0bd3cb6d8ff3ca6ddd2854f0800fcaa2e827e7221dc9157aca73dbe8d15c5cf4ae7ffe33ce432832320b8a5635f6e833e0033b5afe59e9e450b49d8357dd2911ec54b00a275fdda1e7d873bdd2acfe762d87fa88312fbbb9b0386cdb4f8d444b114ac061391a0ebb439d7e8bac5522f1f2074c7a900774a04418dc602e47e2a1f9dc214f48cd54917973a473a5417278d6065f375a10678123d5cf0470d563b8e978bec82f5565c7a7d05374511c291373f53ef8b6d52863505befd58617aa030fbb275e728cae01bc2305b36f698a0c477b4e477e17a49a74a0ea043fbe1391757a537d434ad6499b7b59aade6ea7d707018ded6c438adaa113c15ebe88d18d423f2e2b69759cc960202a074d2ecc657f3674c0ffe922d1a9a8296b4369304edb6a8c778c7ded0b4ec895c737fce0a92d6968499f4f85d465bc8e74314f4f71d42945dcf9f317bd7af4c80b4edad4e1c9d473cd8c3ae61242df5cb47242da16b889ebe1c1af0acbc7353047a873c8b935a391281c01e73ccf8d98c56490be205332c27e0f0c298e2f7d0a4618f5d2dbf6357069512d260488a7577da81d654faeff87bb6103946be238d5d997ec196eb95e9fbe865880bb25d7b5d0ea51ebeb6c4d4c1eaf8d21142f7b4f423458699143fb3393ef324e9a18102140a137fa25b3ea7a2966dd62ab495fc6f2d9e30ffdff0c5eeea63ed84ede82bf4dea97eb0de6948ec521d6d14d5643e996feae60568c86ca81252e5f9b5c5605bc4914951fdbd1211781c8326567a6782a642b2dcd5f4dbdc6e67e779c6c7822954b2621dff608ca8ee57d40da0d18efd14b4ae28cc863f63a75c7bcb42580945d7e29265487429eb8f619a47e9038a2119d97f82a1d25bf83a5b4ec9a52c9016a2274caabc4ff438163856a89c7c2fc9d03f13f66aef30bbf783a1de0fcbcc0a818e6f23f1d6db919dec43d90f64bb14ce50b685d61cfab1039cf88fe5d93912357ce43c2f52831bb44720d489ba79e5dba7c9a4d51971417522d1efbd540824007db8114775b2a3facf0a6a995ded64d210e8bc17b674b87b503029a10010b841ea8ef7317eef1455d478bdbbf1287b7b9a2ba8542811c617c664f996b9894c23f7fff484956002ab5b60c652eaf3598771573a67f36fff63e56e33857357e054f62642b3dacc22381cfcd0eb29a3f3907511b63764645c6d1e213b5e087f7bd9ea07d020c678cf6cdccbfbd5f4417e32ba025476f220b79bad2f8c9f2d46a4e3b5a4c104cba4875edfbeba0830c5f62966aac2250e2152aa8e1532202b0fe9c17392ea1b63a86cc83ec8555a26889b8da2eaa1f5237a5130a6ea4f2f2daf5cdbd99f582beefec49b547768064e3f6f108cdb036de2953bb9630599024c7810bca7a5c8520f1f7a2096906284c8e2b956583cf4e409cf7d6d5e88da74a29aa0317dea2e2f72a09aa5820d07ae96cf845a21efee525189e74aaeca6f140ed1a977a79b2fcd2107d8c1875cef35bb8321e0084862e329242ced03e0ca8172874c74b7bca66bdb860a24fd33046ec5e6a1faa59c36646b9767e6c063f11d9ac9ad04f397220e0734aaf399cd085e7e055ba0ee6c427f33a091a79210fc080e537659f32967df3f6355c105ea0d2ab2846c4f0fb3d2c481230cf9519c9a707f095463023be963966b4e07678efbc84fd432c2e26327865ad31b0329c68d2e9c04794f09d9547cf69afb3911080d0b5959d0b3fbedf67f7a3267e6418329b76807191422ad06385bef6768b46454f05c5aaeb47291e754e5c97ce47fbcd95779f8ed0c1e389377ba12bf6cb037334f7677f60eeabe17d8d8c24918051e9ac5a477b3a79359415fd22ad5ac6d37e1ca08dc18bb79489627ef1ea4be860f7ffb0929ab2045a589994249a06addf7ea19b62546647513ea967977c40eb20a2b6983ae1c4ff2f29c699babbaa483c9ae9c4531f97c3e268b695e84c5a2232b5a71e191cd81e744dc8d4c86e186ac8ee143789b6a639461655d03aa2770b301583886938c6bdb995ef29dc8766aaf2a09c702c91a9614f159050f754f50176b88c23ceaab1fee7e6f331c2301676109032b28b64bf8dc82bbf30a3a05191e68de6265027d1edb3e0cf0229dab72191f7f98aea3842682a2d5b43006f54405bc6579d133de71b05b68ec6e31c212e8ab7f8228f410dbcb276399ebad2e2cab63bb81e8b6a9d99c986a04e23c389ce4fedc1ccc318062e9851651d90ca6cc9fce9071f0da3f08a7392ceee2052504b270c1225342252010ec1155537ab32256212b67932006ef5f477dcc024641409dce2eed9c439722b6946f22cb0c9311f8ade5a7fc64e81ae2946091d26a6b37f77976d90c6930c8da54bb448385e5db9e3fabee26bbd020b0fe8b30123624428c91c1ffde7692730f7976306fa52e2cf2c9800a36ea311a44d9e9a1a380143b5b958b39ed251d50324294ed433b56ad6f8df9ccf5c87e3162ce19b4eb26841fee1623789ecf79260de0ff9103722833ddc6bf48d8d7b33e8078ecae8a90e33ff6322d6bfa3e13414a9c138c8dc6d572a78e10600d8ccb73d4e3eac596d842000ec321771b699760710420bdfd91724b2fa33fa38db74719ddbcce5ac256d728c270c9fb781c7bc0de45ec63e445759e4777307f325bad5a735c0610182d7ec64415c7eac36b752be69a2ed7a04e3cb86504ddbb35f90723bb1134ab3689339b6b1b0dae4fb6ff1f949c1410690f8648468ed34ab22f60098202afc7367b991edceb625e41b5da04bf88be04c892f7ea08bcb56500fc4b4ddfba0359a49f760e87c5e449ffe1876d5a10c0d29c59993f0429b8fc06895ce3260d6cfd355d358fd5c681ca9adfd06e3e0ea4b9e4295693d4d52675dcd3ac9181335f202c2262dc29567c6c2e4e3d03d59a66e5d9dd7f1867b0dbb750c3591cbc3c02ed81e03289958aef646a94a07f5f4df60831fb48af03c0cb8f3a8803821faeaf105a03f850e7af4358c9b88a17c61fb9c87f49493e97607a58a23d514864ec754d513bb1777283b9702759d371235609f515b6fe9ac05e82fc23c96ad8126e97dca0ca79ba3151e4c4b52c164d7effb094d392480262b4114422ed7debe2f10ba13a6d14d027ab2d0e84413234632171bfc5a4eb20b91b6873a5573907ecf3fb29499466791f0f4eaf1a54ca425064804894860eac3fad5d39ff39550ab9644885bd6ffb212d71d70adf34c6f9242304390a9abe89d642daed8d9e09c9903502e2d42b8010944bad293c2cd02308149c1a43236a89fd685c20394393b985a5f102c0db4727f18686b1c9b3d8c9755dd711472f68ac193d74768138b4b01e5b0f81d6c5c834cd476e2beba7913767cebac81f976ffe0bb649da3de630aeaa3e0cdeff281ad4f870449aa14af10fc71c3f29b0c71bfe9a7a15f95f6052b991b9c9663c1e7edd53743d61890db571a381d0e7d8f56d957097a4115a2765cd3477dde577ecd566e2dd617a3e1eda2bd0c6d0ddb30d48a2ae1cd81200893cd62e0413261000255451df09fda01d2502ebdd1234f0faf50e5ce9270afed7abbc08b1ea44b9ba18784c0468f4b33f9d01f464605d99dfa07a2cb11be23d990b83b2ed14d5a97b7c444822fe85104f0be5eb10f5e0d26dd8716497d170d697ba7153ebf7d03893c40aa188266827b481892ad303f552e01337dc8f7bd65d89995343b22f5d575085cc31708aa8caadd0725fb22fe9a5fc281b6315de2bb98d8cc23e020a5b90f9fa9bc4aba9c2b95d10606ebc10618421d36505abd480c35efe8328430acb774e818cfea458062a291cf0992ab35ec6a234cef60bcc2a66755af5e98467ffb3211c33a9c33e4e85321356aecd1a1dbd9b508323e44563fcc29388440d8b9e0ab7f1b67b775606d95ed91d1e1cb8bafdef8fc4a96956361cdf9d50a63a94751bd4ca71c53e7182af6e930043c8f6b3e6693c0abe3529c11eb3f19d5393d51ab3dd96209c2eb1a44d2f2fc93499b22d6ac508bebb497cc001be0dab77b05560dfeee6a36fb310d48eaeda48e85cbb0fe7fc888364431f6f7c04f258ee544e962f927150257bd742d9a8875b882e56ef1a5db210906178b461a2a4fbd867af9dcaa890cf1cbc2785e41d6ffc3af8bcc976bc6496ce2002a3a9bbae3650bb9bca4416c28fc05673774c168b6ac40b998e60b1ddb8bfe5c946bc3c9be9c47fe8965ffb2ac583a104752a291c5dbae98f7a2bca42182061efc3d7727e2ce204a1241da50cfa6f0974de2e3e244839d3b141d1981b69cf172bc5ab066b5c02f18490d1d8542fa41333f0f45deab04d8e080ab6dbd31c51bf453a844cfb37896885141cd10e8d67b606e98a1f7a9283d91236012c3b9a89ed9b669d2ecc0bb5b649faf112efa2b1728280686723d24d673eff54610706baf0a03f7b2fffeeb8e9ac5d253dcb384a1195ad4db9f7c337de71e0ee494f9bfc82571b5e23b90f327c3cbf11181cafe268febcc3534ebf124784d07a6d1094c372dcae2e49a20f4a96bb66587682efca1cd0b73aa943c39186c34c2350a9a11c48db5c7b5c697018a9a095d6ea3ded23d6f319fd8f352b05fc6f33a8125ef5ba6417d460133d10152797893ff3b5b5b113a3d873af487328233d6e865bd9d8091be5fd773c55b6ade4fd4e04faf310af4eefb87446e20c3423d66c7a2ca4d6c9beae3c235a6aaf503c6563737d25b244dd3bf694632e43a589556fe7a6b072fabf71fad429387a7e6915283abd1ef885adbe38ba0d9c2f6e0bcca0edc8d07212773e8729ff0184b4ae8924b28ad33d15ae05dc63a85fbe7f0bbf0139dc3fb7c867bc47ee3b09f542c2ef18a43bdfbad17b6e856614eec2dfd1a622d3a616a3ef65a43370771b8d5faeaae06a4a00f430b6ae0a14ab831cbdd270ae816dd714253643a4ab18029007c9d024a0e197bb252e4ca809379fea3321fbc47b7ee5ee58fafc72374011c282a8acdebc6c2cc2b6fd23881e7b84d1b32d9d25804a09306cf8c46705e09c7499013caa574ae8b6a678e4972cadb94e3a3c9e299609ef9b6a0fa4f751c87da2cf2cb3e8eae71af8cfd092afad878a1dd392bb8e0388a6f3207e3b535d42901c37a8f9b24ce2b3d3153b0408673a86ab103da51141ff24be117439c5c78a36c6aa4b269c4241c9570d5c66019d8fff9c6e6580d8f7cdc0a00a44e560ab1ed6e1840d0a44db8718b3bfc5b83989108d61d0b165ad5179b647dcf59800cd57576d2226a9b9771e7c25285a4ef30cd18bd88dc4e00826a1a7def66240947e45a88ec518b7adae8e78804f784ecbd9cf9905c0ff72eccd771619edffdebf0c093910a9a820757324b23727f435c08a8518d5bfec108da8ddecca1ff308cad13d7fed560983db2acb740186fb52886752b1f00836a2cd9a77f410141f68da471e73ef93a9b1c597682d07e8344a38ccf7cfa3f2f5858913f7600936553b88b428145972d033a4c98aeea5d49692396f2f20d0f0380aaf5e51421c0afcd2b847ffe0a35de4c2b576f9eebe0bb1f890ffbf18f24ef6f42951d314d40e1214cec7205f4c319ccd196c9e0798dc621b75d5236d35976efe9d97d53146d19cfa2425e099aeac8af6b2fd43364c4844ee34aff39c9917d353f13155590bf64112e48eb29af2d56c95d99fdb1eccd159396eb4cc6326375614a7e5da31c838fefe19e384f5081e6433de145a866e1d051894395645308d48d609b1ebc045a4acf22b944a3eb757cd115cd8b9d610c2867ac5fd6009adecb2212689b3f419855639945d618fb4d3b59f5bb25f9ec7edcfa3f3dcd63b98d5f1f294ecba1be0d812aff061b604d6330805459cf0101fc0d4aa583057aa67fe323916153f6a013c9248618cd23f4bc76a9da261a381eb7b0afc3d57e9e88fe7595cfbd1337a0d985289364f15e4ea817176b3a63beca9f23ed7122224cd18abbcb361550dc5a214dc0af0196e1e8fe035d3cd3e276f70cb80d0d21986f5417a5e093d7e2f2ee70c57fa8a20d619824c9faa91fca9cb6e87624ebcdd7f3d377bc92132694776900b419a204ea585facfa626eb659fe8fe657c0c5711df4ad5f86d2f4152e3c87c0f05c1d47c9e1aa82da926e5f51c4f458ab39bca94dd027e16795b4011542edb9ac156144d380e50ad6abb4bd62aae610477dd84011610fd79694226bb4219e44e95da233639a0792fc8ae1e3bdc582fa0d58b30a503647c9d447424326cdd211661dcfda936912a5a31f7d3c94bc2959b09b1fb7481b188bb33f791aea332491f0d828166e8a6b3f0ef476ab6630769a6d92d2eb3f0ee25877bc2a58a94b4a12a0406f14d8a288da8f07f4b80e465dacdf83310414dd6f321364301dbba64feebc637c060b863430d3a37ff78d0be783561cb20d77a686202f3da0a9eb12646832ff4b2b2492a73457e38ad7e3d18c1bf7f519c9d8367f6bb645c188c44418c4d3bb54b75b051d6ca3c027094911d3f08e9f552df55da9ddb909169d2aae2b890f7028a714e326067b94777425a9c3d513a39cfd0cb8d144a8ab5f242ef99c1c37bf9f88afe296a09a66efae741060747bb76cca56d8f58e69afbf6c2d1d97175b2cc0d26cd18f040bd11fb6821f2b5ba4f57fd6e6bb22e4ae50573025d7cc3131041d68b7ae4dc77b37fd7e1cf9995b64a5b227ac10fb7eaf36d57c6023ec7153d30f7a4ebf56637d53bad4a1d5a128ebe57702e577f11075f40934f503d1d4a2709fba51eba7c0c617b8b3458373acbf7f2469f2d221217af7eeea83380fd4be44bf086922341dd2ba9750ada57cd1beb28374f60dc05ace59bb4e5596cd0604d0e5860512598c166e635805882de9f80c859ddcfd386f5a2012f9b65505740437a6407f73ac3b06d82ff1826a8033cd1f6f596cbf3605cb28cef1e9cdb6489164e87831ede0d965e85e1ef1e5a16d19ca97727f46a86e5e40ceb532fa025e5a75a50379a138a9ed82a092cba4f847b7a2eb6e0de2c144f84c763107999f81a71059cd6bbdedcd1ab5ed4ca9be12f3c86a38a55b670661956f4a36654a1d796cec71184bac71a487145b4a90d8ee0ac997db64032303dee1940885a40f94f248fb0f2aff65db48efcb6dff9f97743a26f031af2c5adf017ab4ddacd1ec40ae005e0379274b0720e57bad5875ce47bdd6cd03abcd1eab5fa702f7bad318ae5a1980d015a67d583847e11b080a3bd432f2a551a1cf92cf3c196ed5da96fb99a610b00536c106697e06fac459f23139cae46545c957c80a4b396065201691ffa579718264c87ff0a1a20341deb96950de57a66bd7c9b35d0db01e99d30bc72b1de32c5c40538c226cee4822f73981b79126076d92a8f5d0b02117b698289c8a4504d0e7a3707d469b976257aae321f78eae0444251a6510e1b7895f8d86b1fd76ca80c901114dee65d28df616ce13f4d6dd3e4e56b642a59a82984b5313cd6e2fde66c9ee7018db0682328e57edbbd64becd3cc5884e49e8b733880bb04c3202c8def1282d8c1256a87faa9e8813ff641ae289fadf3bcff875a4551139d7daa7ffb9f08df7e8a26fa6cec39798220fcf4e90da0ff69525dd82709403ea125ca7ca7ad3445f27f73a364706eb7d3a1b2f55e594a542f176e17ea9638ff3c2a6ed8d81976c5a48cd478a14ba36fd50f6dcf373ec6895cc30407eefd1eca3188dc9094d4daaea496634a36c59df51f0964c868b705ab312872657ec63c9a97149c486c99c57b8bd077a29fa1322a57c94ee4ed47f64e62ef2c8fbd39202dad2f709952a3d0175cd784904d649f76449afa0f442cc417922ac8752594b3002ff166220797e359fc088773fc512c5a48c49ae0d27dfb3590e34233e436dff91b00bb8dab5c0a28130877912b0b9e1f119e860daf293095b11cd00c8d14e5c25cc9d333faef9858718cb711a4f3ce645d1b620913c99f5d230ff7e9e6f376d395979e1af68336940da2b4c19dccfd000da0225de63f4b48a3e145a59c0e35c96adafeb6f5a0b32ad1d87eacb2b57f71415bdb478387c853e549c2036f804f5377f33627c703380b02f3e61a9f6f0c9ceacfef6eff85b6c258aeab73e8ebe08bf7f5d938552f05bbc21b6439d3e6865e24b7f531103924c3b0394f00bc62aafb5bb69f48a2d9c341777d7000fb0c1f5a8501d638a99754d4747f62a9642d54d3037f899dbc1252f529d904fc894b2e8b7445b70a8342b91d827b00bc6cf3e7395288d407d668dc4cac651ab8c6f27f03bfce08757ee2f3bb31a2440b7d45b8196c111e53b3268b051ff90e0739fbdd4c103f418c3bbd2c66709f952df6c1528a3ad50ede380612f517c44a9597a4718576e07263a51b6ad0e139b908afac7af614c7ae06899b58d0c3b6d59f4254c682ca92b0539bf545e62a2b8fb6021c313f635a3affa4fb605d3f88a9b641786e023b595b0ba117782b187c451e57bcdec21c6428e4b1d49ee3f72213d5089641df5091fa7337dbf95637b761f200b9e2b8742b65a884a6839e29f3a0bda68891ed171c95cd8ee20cc098b49e5e85362a397afbc96c57fa142e557e4be08324bf9af5f343b112860483678fc4b7f593a64fb8efaefe23896ed9455aff96ef4345bb29d25323ee79ca293fd12696629bbe57791785827637b14d7283152264185dc40b408d82b02c3bef6435313b4786e01a2bd22af17ac9b46f4f882706f13ae22d3156b1adcc019f3648e494746e74ebde4ab47f849d8d4d64957bf3a89ddd7d288ee7e7e8439b67e4849c49b90d94de6a63f1d2637cf163abf978a1191c35b54fe719af1e3e805504d3657c6f37dcf7a99b43a714de7e7b51846881c7eb6476307a5b7295244451ba063d82fd17e2ce578ee1c41c563e25e8158e2a68991e07239ecf4952a8d0bc189fae498cc163206cbb8a3a4fa033367e6b0c58b96941ae06f1b13df74bfbe04a1b658ceedb8a20f640b925a4dfa1dbdfd57e2b2699621f4b35df9f7ec0f1a930c04d96d9442af2ebc77116ac99e74f9119eee9cc511d4b6321033becc0fae588f584dba6fb98206609a2e4b1ab8239eedf62300bbc045912a966c2af9365e2859586080ecebb8fa05cb579f8a43a8a47ff7bd74c0d13ac0fa3ef8107547e1b1d5bc000bcbe6e249124de179123b935c13557f3163e2af96be924d723bb744c8f3c0e227cf1604f893f18538b6f60b9a35272bd8a2d352901ebd845be30f65f89e0bfb3bbc1916890473ddebb76c4834a1f60d524a3c06344159dc56affd786f65ae07680fb6868b54d2ec4f5dc21ad4cc5471bcd7b560c60595386cea99863184d305bd292db4f20ea493544c556112f4d02865c5802dccf27c9cb1b456e99fd323b880dc1f75419d8b1d36c0a392e6b52008d74505ea5c8245b36ba1d4d24f4ec2288289899184f619b42519403965a23b69f6c4854b45b6914cbec8d4c3302cf81f7e49ea451d43e4e981884a71ce51faa82dc0f0b5f91d0ad8ec2e6c1503cc51ad93ca94c25b3fee309fdbc16decde82a7a9c71fc358b812ee2aa397741ee5f9a5c8d838ace966736120a75af3c1de6d4ba6baf9c43d5b11c8fc77515d88bb951d9ec22f9b0433b139df5472dc882f18fdca90de3be38a81c327b754a75a50c2f2b40bc49d88f593d764d621960039072a97427b5e15eb05e332b3cbf779c89741821faab2ca1a0f3ff2fd69a20c789ec3dea2a49834b4c24c7718424a9c8345ef13f6234f43dc78da18c0f116a36fa6be563b200808d68fcac0df546f9f9dee23e5dcd5dc08ae78f4e2dfd41b0b594e93317e520060b2fc4a7ec4c48a2fd46bc7c2d526361af1f63d8cc78f706b2d63bfcbdea1868899b25f8220c293bd0a7d0ac03d232d79b40349ca8f2be5a8e26f4468a3fed68b727ebe534f83d5c5e641e03aae3c07158fd910a5776be194f55b27fd8167dd44392dc20dfb786f663e8680f049eefc84dcf86edf4ee3dd6b9be6f10f5a73c0413c72e9d0f4bdd645538ce521e840b892e6d6a4ef948ce7a3340e2fa29de05376444154c37ab251c913844fc8cf66db94c5c3d5874ea6200bdb0cf22d3beba3be10624ba10d0d7c9bdccbbfd9f42a7c9901798aaed3693e36251450b21ab26d31cf85b7dd370dc682746c7e9de9bba2603e3a2f6718650b3f795be1cf7f45a4427ed2a752e8e6f3873cff9610f66eca267c9093ea3119e4d2886542f5e20fefb55fabcc8142ef9a6cce52575a0774643fb76f6c6f1ad23a91d09a969b132b2861e778fc64068ea77183afd4506917567ff005d182f58a14ba34780093b5dbdebecf55b2cef178db6d9d92630d7c1a7777e889bef056188c2c159a2a5f6bddd4503ed28c5abd4847340c142191d7e0157f171f933c4ec04eb572ddc1a33f6280d22171cced9609d54a09f06c798fab708eac4b95a938de1cadffa9f6a01fa88d3b341fd8c73b03bff0035b67c488e03ce99c8c6cd39b2e4ce73539febf78cf59924aa6bb2214971675975b79a5136823990e4ba4d68ae548f0cb57932f4b2e778edc0aa163f2bc3cdd8563ce693b7f41b8a7d52c0958c00d9c23b0729043b32f0beed45edb57596adbf045d56c7ef9a68b8c07d94295d9ade48b25dbb1ad0cf949c480e81661622b154b76c01ce0d0d86d16f6e4b5a424cd187029145e522f060511b7d9bfbb8adfb9bbb0070f870f4e898d5568575c1c275ace3ce6369289b7517d77ee0c48f43969eec9e5245992f6626f44e5d77d5e096c8f011ea24fa72353be138ac2473ec1698969d9bf47e0b0340cd4c02b05a4d5d199580ec6794b96bc9db434c33c1d532fc4df27063e56d01785f4c0a38fc47f3dba0a09964a0c0c24a0251430d98c9f31d81b5537e333a0ff746193955d39124ebb63eaee894fba2433cf7a19a396a7124606ae10a3a9db83cecb4794b0e22b9e46f88ec3671c86518d1a58bf2d9a43152927c241aee4347bb8c4d13888a87c2269885559bf988af7a9f5c3610afea0e3128ee4f0e439cd6573dc8a7affed4bd8d491a594d52f95b00ad175a1d232bda52966ab4fddfcc0a791ffac97ccb4f0c339ae6755e450a9c5283c4e70eefbec67827e713f78449a930c5cd98da5bc5a3f504b88e3046c7e61c038cf91f70357d1f153d705b6dada4400ff95228be08b986ea3796b4b54fe925f789dabdcdc792acdd63f11bdd9774a18ebc77b3c721700c41eb08a2576c71fe3fa04e625aea1b3553c51cd44045721f79e3c48555aa9c7926e25ec4d61ac26cbef711cfdfd734bc8a87787d6bbd97e22e22478d8517ff003c5d6f4e6fd3492914ff79ddb3366654b64606396934c6b3e36938529a0e9096e8543808e641a5b6c5dcb7dffad4650359a805f86e2752ca179014db666ce5f29aaf2ac7cb9cb9a2525c8730a85b3cc64578f6975640e008a1fcb75d3a926794be6ecb8ff9aeb6df313ec4c6c63a1f3a59906830ced41a684e1b06a8df481e6e33a3eeee6abd0a679fed9eb7a28d76c5dc7a5f5ab6c31bcc3f454e26fab7e6094507a9fae8205505f4155d9596970f5f3d3f0970a0b71e67b9dc0f785e055369e6733347fcec9fe212dca6413445c36bcaaad21c9e78acb8971e0d214c14e0cbf19844551d38ef51099c7548563e0ea4c3767906b257adeecba03e1d28348ea767a8acac8767a169a4c7d27038512578987ee9b6a3f30f9e0315f9d9d14339a915be55499f7e9a552e942e3cf4a5e0ed210d53a4f5011c7a0b58be9ef9896560d9d3b5d8511e9dc65231277d1a8040a1817f3360ad976ff1ac203f69a4e0ac9b878b69f4ac0bc4b536109ab1fc3970fcc91e3d1f9ce2c702420a8ba8334bc5822ab81880d0c5a0c274feaa050a87f67e4af83794f32f2d7f0b43dff6663efc8b2344eb0154aecc4958c9be4a4eb78e37249798cc732fe90dc64ebf3e5fa78270d2fd368ed04527aa660a70c75c511358522a92ee5f4790bd1b4be595d0d400b0edc4859364f9e32d448baea820a2e9449e0c02d245efe17ce34253b4903c62204a5eb2ac59c9767d14c294c10fd87b5b1f6adf5d2ea1f0262c5763437859a12fc397c45d65d3749573b684addb427110ea222958674e07a1a79674c8919e3a33962c19b6d802dd0aa57912b709ded785b3517d25afc3a53382a965c8b49da423858038833ac5ca0c18ae4d248540eff3ca3484e7000990630dc030a9d4f4dcdccbc8fb860855abb30de41c1e102912cdc2cb2bb5aa05f15c1a7914d72061db14246372c8b83f2024fe2afa5a02ad187298f1a2171d85f2fae3f888cac0fc05a8e51ce3e66f1a28b35a4d97d18bbff6a37dc862e3268622e601316414eeebff3ee64b0c5c77a1ebf87038c463f359e2aa96bc1a12e8ca5e0fdb3c932cb1f39719984373c8446cb4e2d8b3b3c7990058c70f2dbba2b9059a3c267163fb7145ff246f34700f4f945f6676b7bab9b90e18b53dfa7c06f6222cd9dc6d6b15548f66ec099c39e332cd90defd68751493eb074f48e3c956abd99e864d2c42d8b9cd8b5c1d9153071bf0cedfacfbd4c4a3d464556c7755a2c31cabe223c0025f48d73bbcd01aac4d84e121d6a651e9dc1ce4c67173071265c52b7314d6f8fe121ca4838cef074e1f15f575b6a7bd2346267bcb5dc2913c8a098d3e6eb8ad81d40306d9798b9660c804efa6b4f7ea29805e466d3a67c829bad0287c1f9a7282da54a0c35b23ffc6838fa4dbc81c97c1046916fd10bd2aa6e656ab02d8bab2fb40edee2ecedd7b064de1557d5ae1ff367fe6ccd258fd5ba75c58f1f3a836a81f18c41c1f8bcf086739997529ea54cbd3ed142ccf19122a54f8a451883e11317965ed00e1f4da781dc95322d6f88ec33e919878c9895dca11ac1d6d3ecf2adcb2d3fed4331cef72b9642f20af33e5fd4e0e81d80a5caebaa98b6b0ff2deff1df17eabc6eda78e81133be07c1da5122c2c4ed8df002265d0064f6983a2acdf8770fd4f3b0bd30a845de449a5c5f9a2643ea707978807652a4334c3b9a1c58fb1a445dd1c0e4db1adb67b1f399946f3a417dbe9987a93444e02ff9a72792cfde3502fea8667ec9b66c6163b26b8b3b4ccb30a5e3e1eb0614bc568f6e5e349c6698eb2f2800edc1e7964a1cc27944a21c927feaed1e0e349489f0245eb063e3aaf7bf15de00259a6579cda5bd9e72a4f26d7cd62c28f67db55a14d29700a203e36ab523686b5b640d3b0b5303670d6807d5323918c1bf1e82863caa8c29cd43aaed604a0d5b0498d585f8ae3698b390aa69978bdbfb22e26928eba3b476293fa4e12e667f7f21cb6605cae921a7dd51936c080ec2bd2a95289f5e2048283cd8cd896bf5f096e0d6bbea70d7e940e0a46d425e062b453b46bd0e56050af475bcd68edb56abf88981ed6b27914fbfbe4c76f78b7f74a1680f7edde59a3c82adc2967ce412d80dbf07f7400d0c4bb9cd91e3b7cf2cf5341d6551365c9f2fef69ae114245f13dd3081fd227d436a27325dfeb577352d03810237b893543724cfd2183b65edd485cb64bc2617c704069e4ab76cb1cd628368cd1380821ff971c6fc99b0f0cdbd14d0ba40832216afac9415ae7aeaed8fa8f05dd9d2c1576abda360870690b8ec261be5a8264d5c51af56ff6fcbdb87badf700babd2e74d5de71c6b39744f615dee4c7aae5c48f048c054fff745c78b440f4492f378f4065c5c2e4a4a506ca40af3980fe69a42795b443efa2fa0f694ed5637940a190613a6622d8296d740056da550e6ca958611622ade318ef02657f2ff4cb722fbaf73cc4d860a3823d38fcd64126e172b90a1ef1766404c38255afbea948662058c1f40ba383d6036f6dfb649b179815a5271777854108ec827355a75b37fd2ef88ecd733324bdfb00c2dde4152cb0677c2e0914f4a4f6fc17180d4635e78b4beec7c5ffac6fdfa446d6b01bf555036ba5545a3a92a5460afc1c44a537c5ca57d1feb8c5261780647fb169cf942e93fc07ebdeaa62a9b94f0fcd2469b4c2847dfc95b8032f5a25984a3aad17df44276c90cac79b1a985affd2649dc7d40b3cfd0e74245647e148362c3fff34d9bbf632b2d04101a5dd403deb22a73c130e3fff6bc8759f626838d20d0f9a3e17397741e16bd876a13cc18ea4e82ecdc0cee706b8dfedbf6a3971cab8a170fd4223ab851638ed58e270f66e6b6a41d57f91ff2462089b0fbb7600485e501dd99930895c4fabd675eda1cb4d53f05c90c8ce80eb188765a9a535b23c141ebfd16c45579a0cd2775e7ea5f2f992a60ac5657a31724d9b16faee6819bd50900720a2a212b7d41b63c602127059017e213ff899cf70b7938bb24d9bbaea7017fb3a34643f75ae37da931d21a75f9f9c540e732bca90d3f28630f079e321330726b1b04fb90aa8003d3826620f630e5eefd09d5bc09d5ea3d1adf72ef9453d1f4879b7f25f6c547ab9a9a63cfe4f15e4e0ac940c4129dd3c9e09f68b47d698a3b81c7f11b8de46dd4edfdd422eb91c3779fb46ac848b165860cc77049bec2e0505645165dc5697b375003d54ee71b3f67916f65a1be895f3891a76782f66501a8cfc0cab57886505ff91ed8f22310b9a5c27bd61c90228e8e0a6e3cebd3e32e717e4a001c2b55195fcc9471781b77b40f05307f90b3e646d5e592460b2946cf6b74594983b7bff2cc4dc5aa0b416fc11b125125f00121daeca4b9030d6e47a415ed981ae1ed399f95f8568d84e02ae2f7b93723ea7a7f16c86f1f5faf4ca3da900c695df82864df8fd436996b48651347ba79064be09bfb834bc120b4afc79fe407c11c46b14ca7230cd87dd6d1dcd447e5526c8aa8928b136531ee8bd3f559addfdcbdebcdbc78b11eda0af83d9aab003b8c4df2c8c155b2b803fcf3edfde866c8caddb4cfd7ddb9bb1c8afd5519922b2944f48d9ee3085e54614febd6c833723c8341eb2fc281cca07c4949102e96012bb7dbb8f9c69bc893b2ccd9bbc9ad1acddf29fa29f89e64f178f6b361a129eb18a5a566ab47250c60d8d9a8ca6da0451800c1f01ed677efd90d8a9cd092e590db0c52fdfdb4468576c2e844075df73ed13bc9cf17509af20d4831044bb7bceeaf1f33e0ef2982649d87cf257ecaaac8398d02b8f44bdb77447245e0c04daf7fbbaec91755f6fdea9bbd9f26e731eb15d9f290f1de55548738287d175c5531df4e509d485aa8b579e1b18624944840f0bd03d28cdffa58d18ec2b7c602f8ff56d347c24d1cef3220a8a03e76971088bb84996b575e2064e6c44c16439c55c5645c3c83cce1173ff3d8fd5bc9d393954a47b5161d02ad6156226b27968182d7546c145e769b5194e5ea0c14d47648dd1b0e5a09f1c7bf673e2ef97539aa698b754a79ec5e0f5ba9673db699d7151dbf75790485d3fc44a460fa6bfc78fedd6136b3352679b356b1c572e6783f6ffdf3281f124feb9393d16155cac4a5d914601187236b006170882ed41c7b5418bb9ddfb61a0ab12753a851b5b96224465eaf85634f18ea289b07e617f8ba37a896e4ba03d3ef387a734c926cae6698f42e885e9697e03c17c46a250c9261f1f42665f594615b529fa1f39fcdcbce11edc0ae691faae75affff2291c0f02d958ececb598e84d62b16574e95ba16a9489283f3ad1e2a35b44149ee4cfb4faa99703b15cf78da48bb35cb158215af747029018470b8b56300b5e7a2751e6e0ad3a484a1b0541ecbf049cd72b1df89ec067c64bc5318a13ba882579d2c750f82d5231ad4b88838aba6b56ebfab9a84cd32a1d34425947f8a051dcd26473697b5bc46bb842b05ef9e1fab9752dbea22548f4234f90d9377955ed6b7f215e5d16da5e82aa48fc624516ab7e03e7bc51ff8c34a2bfc7dbc9df46bf1ec143a001681a9ff1a821d98391cf11c7a70308c1e537074fcad67765c46970df9a4325a087843bb93a263779918c4c1d752435af955914305ba2c350980e93e0512a25497c72b7f4cbeb9a9710917bbf07cc870303a059337fb675ad20087b7bf2f6c365c2fa8b232c7d6add6cf465c0f98ad276d448056be886fd38f121843acc1289a4cb8aaf901123794a150021ba6c3ca121e4e3cc4d6d3f33f2f9e64090f1d5a0fc7b5186b892bc137512ded4f18752be49c0e569818824014af7b74bb2b91b1a71ab7985a3aca70fb67b97f8d4f13265392d0a2600d683a80efe31b46b3fe79171a73413ebbe399e3300639fa959a3b3229f86a1dd9b3484d3f6e44280e217ff31b0946d850cc8e6886043b124ef452c12c20c3d8a3ca86a311b5a0d67c62d90177b37a2844040a9c6f3f5285ae8255cbbf59cd137c28a11de7c6a14b8511ecd64b1c0e0abe4506b0f2131b124fd53f57aca28a0ed5ef314437de5e6a5ae386fa36d24b21de921f21fe9323bb3ec92f0418805a3ecdf2484ef558782414d1aa1e6c1c1de6c229d0aab5b9f6864f613883da92eab403dde15f9913fed1361b398e4314d0d09ca46e28d1eafe2785f431df85c58f3bd123b66248fc740ce605bbd12368b6457faa57288ebadf86ef2a45b5f04d212361c24e0750489226e87f5cb63bcdab9c6343dc15310c91f0b7ac02a94b7387a62bd4f349f77d4e1395425ab03a48f16d6db12f6a5ed2d2e2a4a1e41a9bff9e3dd7bd27f97c367b6640a93e170431d9e53b8c98af27a786b7bb6536a7d1da56289803f848e9944d9003040e09fe1101f117749147bc071d029981fd2ae0110f7e41a599355fcd6712212ec92683bdcd8ea27f768935b1e104dcc96e63c5347d8363c51104bc36b91bb3f88e85a02704044be7d25d2ff1c44b4b460a3ce2e52d7d7fc99a8cf1af7b6c609bd453b5aa6cd0d9326d244f054563db40358bb5fc4889e1346a64e012b95ca087e13d45c7d1bfee2c12aa588f48175b7413be4ea201e2e60f9fdeccbdd149f97aedb7d9421e5e74c1f4bfbb5bf85b0a8845d25850c19e16569fa04a1c0cda055d6a5bb83c8a9fd5416c20e78ae611dfa5acca41c504223c86da7aefd656f2da6e5858d1e5b0163e31ecd8667dbb9a02104f98e4bab8e51d4a05eb72f98d458300a8fa74df0eba2c4793ea02bc23866170db4dfe776dba1f68f1795dcffba475e939c8f6d17a68129e9cfed03ce8a2bd8fc4faf7617ad27407c5d14791a5982e0e6a2c0cff2cb2724f9e3ad4038cd40e610bd1bb23f59c6e9aa0cbad4804cde29857a563622d5d32fd8f7dec7368a1bc509b04d090347c4ca4539148c7d9a54f01d57715d7d3316a5bf4762927a9c228007264a20b82ebee3cbe17f94f3bc35b0b45c746f9e9e1b46ec672a2ffe930a2276d7384cab83ecd4114f3bb494f5b228d5047f8d3c56b0b726d4a93f2476b33e0a6c8817a1710864d243f7086861a1dbd745054c566576ffdbb773f825f3f968cd81e1c12818a1fece5d7b7fa086b09036ae36342c30400cc67047a4d16a57ba3ad929bcbeed5c2f804a5c5dc3560bd3f0e5f8420bd79f2c248e8d20995a7d506b38f12fbf74762956b134b91edf7f7300489666e7378394834ea35ef00e52cc52d7817528acbe4489f54b009021d702de85e506c69823dd17de2fe3fbb1d5d30b67769b2de692777a3118709acffb5815879b7af844a781a3d724498f11808d340628e598ee7ee3a30d939ecde1eb10eaf6ac8e26a79263f0c9f9be7bb698295bb47e49feaab7491955ebf17b45360a0c32210329aa8d44d8c328842e27e4577a16aff2bd9e358e9869b724c11af3e75b867c0db46a114fdd28f06f9f6fc2cc859e38bed6fcf93e2af96ec8d83cba90bff6f3d6d183498e5250e46a8f4884c1066807c18831f40752979cbfc40e19b006f5f0fa2c80d37214b1e9f216784d75c85bf5c0c70d1139cf1beac243c66d35dfc3070a2b3a0e4fd19bc699844554a7946c06b77dfe374dede8e4dc17afdbd3d9726709d7345adde1c599848b1aaf1c00ffa3549df95d5b647b19ed9c2041817ea6f6f29b3703b8b12629eec1ab2a1f47cecb79040b61a2c9e5ef29af1fb5f9709ec42fcfb68ae1b7e92aa36f42d4fb39e09ebd2eab120490198596e1e6173ca52b32230bd3b13cff766086ac01fd83395afdecb749b287981f979104cfae0ca4883aa259f9f0103fd4990bcf407c8c4349e483aeb51cd552a27c4afc519971df4590742e6e028a83e07dbd2a55e06d0faf1235b64d20bd6d6b0a43e7212a3517bcd6d5314dc43a662c42b91e650e853a661368fa21b9b017b73bd5948ed468cdb61cf8dac7fd93d6705332741e8bb584af29b9f0717344cf7e6caa4bb36bdcca48e17fdaac826f72e64deb0c6a47e21c7ac674eb2fd6b5c31df744e026e6a9b3fc57055582c78a6eff8ac0e1765575fdb81c1c7c74825fc5f010751b28b6ababd35594edbc37020f46f81d51b65bda585723e9a50ba845c6d3d3e570800bff0ac44c2fa0dd86deaf61e185bda3f404169ed345e0858a8dea9e7c900597018a22aaff4a6c80c4835d84d50c7c716be85c1cbb4ee976150229050945066ed17210dd244ccfa53240fdc2d6de12f56efd3265085868cce9917b7689284e849ca2a4d901140fc1bcc4051a90b6c76c65c2273412686066e1cc9fe7ad305dd54a4b55b52671545575a2c72065677ef8043811cbf8b9725bc16a67a14eaa9e71435e434bd4a9952bafd445adcc57e7dfb564d89a693bf192b6c59879f4b4ff687c124f5544f3506b1e359eea8dfffdff0ccf5589bd0fc19e435a5f17aec3d5017c643ce3fefd1620ed0602a4256cd7f95d063e66a20c0dff794d4c25d21d15766a92e7e1a466e5f5d56a3ec6cfc1c0fcfd191e61403ec839b4e2e692a860d7b0409f89a41b45513627e9d4596fb3ad4551206892546100708905cd4757f931c675d30ca2d1a0815007f1a377d50bf7ad26b18fe9096a005b5ec363ead8ae5c1f4a3871d8e8f6f97573501ffab52869e3356c361272ff42dbcacf179c36152895f41e41886fb6341638bc18edee7aa223ce70682260fa348306fe2dcdb71ac4f28297153a74c50d43924b18fea508c294e4e2e8230fe9c7c7b1cb238a3d7dd69a34fc2a40aefdfc4740fb446f25eb6595ba6d8eca6e91d4c09cd49fe48852e14873660526a8a820fe862bdd4e50d1f99d45bdafe928674da39f5af259be7ff928533525c0d50918a718203ff5fb7b558d5b03a07a7215415f34c525591241cdbfb08dcbcdc3d3ad58d981810b7b3fab7a67743b4683fbac0b441e9f4a2da7fa5c98d4ce5e9bb0524334dc9b9c2c86c66614ca83831fac1f0a86944ebb7f15b611a0367f6f87bb675d141f1ff3ef4f9a66ecc14cfdf66d2b0ce2f86f8d71c3c06542219b6c2706593d9a1f7e45f4ab1f21649bf890bdb9a8648140db50113caf4415c953911d15882c5814e672793f84ba2b9d4418c9bfc84e9f07e524abe07fddeda56151f46106bd341ba752bdc5a886e7902510b1e2f714b30bcfc57862816e9ff028410ad71f6c13b32c587f8bef1ca441b48ee438904142aec8a76e4a89370829ee2df056b51b0a41868d3af25aa772012a5a6b0c5c4384777f4104737a0c8d931a58a935676c398c7f2674f0fb869b25ed320f5de82f048e3fe8b78e1b42f9b690018aba8f425541492e438fb0a7be87ada2fa5ca78d9843a4dff89e3deff5dc10c204a30d008a70b111846b321d0a0391e272f2e24f5c87d87e147a32bcf095ad5393a1de3cb20dec07013875e368fb6faab2387f6ecf71678dbd4f93ba573350c90bd98908c070eb9b363a55dc2cd421fb13fc8cc3e8ba9c39c71b57ff844f4d611f625afed3d548d841cc95644077d935a743ac18ae41754ab73339f99142096674c969b6bbddbcd7f3da2f1a5dd091120ec13e8eda891f6fe5be6fbd8fadaccec88f7a5d780b28bcfc66f0ad1e528a47f1636ac636360ccef737b2c44ef1e891cfa9a27dfd482b4e9e0667da0972d3f3afc5eb7d89948e35afef8fd2f5b8ccdc0600c6418f6050c75c6424dac828eb1ef8bdb87c72100d901f881601256aa89f99efe0bd0683c288b2bd48f7ef7169dfcfce720815bcc17da37bc82a47b902237bc82206cac596c0e163620e96cfbcfa36b5a94232cf0a361493e32c01169d964f4fd81e759ea43f9d3b9c1eeec7f60ff1e1ed1c37234b121170f7bb633988cc603d260f086aee0168403c41d862a89f38f2b2ccccb65a646c05ccc4a19d4892d2be93a0ede9992b39fe71a211adce82134102e9ad29877a251b989392010b5a86f3649555c0787c281775554439cfa2c158fd9bdd4424f3b1cc873b34e8e825a271c55f2cf7207ca5c2f31db99b840447753092e170acc1ba0893f8b71a3de77ac1c2a3717a95e00147d188d6ed5a78620cb5914a3b7187db13a4855f2108c4b6de160ece987ef1e58434eee94b7c815a4224e3aad8db2165050ea197cd64f4d7bac2491087f2e99b6be636f0570d46ea7359f6149c3d909e49533949b00c2a05b9781ea8ddcd9afd82007f35b6799a40ac04ed5f823093811e3cfc4fa3ecb3d033d7014e189ccf3561ebefab91d07973310df5baa887a77a193d42623fc9cff3f772a5c41810387537ad6bcb15317d02f9c39c8bd0cf3e46a12d907b65f3db6fc3b14b09a00cd8304688e3a4f34624032de68a2ee05f579f724e2908b70c5b4bcd74ed56d83c407e63e97395e0d6005aad6f44f562f9d5151ba06ba51cdcfb2c3d937a17ce3c11a877a69fae165b17f48a3deaa605f9420d8089f0474032176bb024bf3df0518b23008d447ad2af064c8d8018dd1a17cd9658ceabfd11de55c2b79bb78993b32ca69040233ad4cfc8a6afff51d117b8b393afd5824f43b170ca56b05de87063a0384d691424e2a01e5c9f2aa19218cd7a4f6640167bcd943c6c851a387721967fca7032456545d0f82e3ffc582659448a8baecfb75a6aad7410b21c37b3a9aba7f8c61815e84abf6f3227ad1fcabd091bc8919bc6d61a90f4fa3edea701e9b7266e32096ff1c27f1cf82136ad684a9793706999eb289e86544afb9548112c9b008629cfb7ab82e0e4ccaba2e755ab15b6736772f00effe31960b484c7889caa4e9a34d3ab9ee4898c9978334792ad0c42ba0daa2a480769ed09a6bf3617cae87bbb7229c6e4442a9d94ef50ac28c2a3ebe0b414b55dc6b889a0ffca3e422ace9f6013f00aa885b27753ab4d11b58172ca94079ef1c20fdd537566041a3d94a13900defd4e118aa2a0f0f9f8c1c523e1a1f3865f0dd1f8dacf5372dda2aac560ce66ace0565ebc6599ed5d0103940819a55b050781fd5e57639031e6fe6bdc382b0fea2b67448abfd82e0d275384308598282a8dc7f05e4b181aa3a7b084dd8e4eb61b17201ee547b4f0743eb0f9c3e272f6f23bc5cfddc851493d4e1aac319839e3546cbea4c0f74cdcb1028a4a8ae1df232c05991f02cfa4b16724bb5b24832c21bec61b1e96c5d07315b84c1173544679fc28d228b62e4711fedcb108662f0f39182108fae351a3e5a99eada510f2330b5a2c44a42b7fc694d3ad4dbe8b7608cd33b4d6d2aaa33ff6a534234719a550a9911ff3c85222f909293ab87e8b048657742538a6eef4e418fa483364e56c3b6dc034d28763595b493b4d02a642c036b55505bce4398f60ffc9dd8075f5cdf2465ca64edf59694a11b4641d0bf1c3b90fe39d93a718b886e1eadac3166ad2aab6acede0b573cfcfca350b8cc1bbe50335421170f59cad2c7d679014638a9a323e4c491e98b585ee33d202d32d29d0bd2525c89580dab2b557fd08351d3f7d4b76ab93040c6557a4b7953ff595a7aa1ceb56307fb16c2c851aa22cc2d797b8931e8c697ae88e451150fab184760452f79234cba822efcce7fbf9b2762445b2e6f089a03d4580fb762b71e111acf6201a87308c60eb83d14506dfe5e9cc1fc8547b8b0dba244e5302f1e05604f094481b534f87b2384e4eb0b7e333743a9eb014c6539b82ee4eea906e1ed7253fdab83152abefccbcf98a1be4c592237e616b1015f5b0662e9dc5e4ac796d6a7f2899d0acf265756e316fd8fcfeb1e9dcaac1efa658e85dd19906f8e33146bf21c3500984e59669eb27ff1ee038fd6d5fdf56c2edb714c44665af628dfb58ea8b531ff626da29c59111e8bb1bd26e2da80a49ab5f22999f81687704df7ee3c4cd6445afb43bffc60da71c331e5d32d23d5a6130a8fe0eecd2ceaf644cd9b35a84e5bc8c9b05bf8faaa681e9292117ed8aa0d40eb5813c23fb05387a491b43b8d4ab81b6fc4ab7b32d50aa27fe99d27a0fd393b7d3375b7e9e4282cd6dca9f7117ef694519af0aba66eba40712f212dfa38c2cd5d680aea97cfaa726435d282c25cc8e7694ef2ee3e43ed79fed91613f388a397d050f6ae469698e397fc215b533c244b38456bbd07617ebfca58ad5672e3063ef676ce8c60c0e1b0224d9d56eda36a46f034687e830c7cabcc02996a34702f003e0733129d12d78c206f6351f24f0a1212ab5188db8a3ad5ccc6d2d33232ce5ab5dd3d0e3554c69d589635d688b9bb7d230ad62857b85348cca88aa4a75fbb6246a91fc64d8b6afc6e9dc97765e481c0eb1ccd32d4c4a9617226094c1716189c136820b54c6fb7e635a11f0ac4deb8c2de6c2b44c9452dc3a2e11acde6075006c56d43bbdaa6e01b554279a5ad8dda44622d5d6a3f1032f70a9697fe9f7f1a03e4b85c97f21a5ec16e3372ec3e158c63a955f92999846320b226bcb6bdab3c0da1bea54f858fd25dc6cceb203f8fe92abf14f15934a0872335fcdae4c9c3c075c362a9921ef1477337f6c779ebd53f4d571a401da06bbde0f1d79ac2fb8347e0b01c172a5a44d523e5505bfb7753eb4953cf65b27ded25935cf107ec130e431349bfe3598754fa78b6d833a4dea8ca51331edc92d7a4852aa2862b6dcfeba61bb7a8555d82486c7684f4153f2c26d5ce0adc720bdfb1a711101f733b001c9405ec5cd584c2ca15ababe9145dbe9f5767dfed64359cbc855cdce896351e14646b77ea222795112634f01380b41cc9c7597b800535ed9d8622f56885264370c0e6de6a4872ad39152e084ed15681abf2372783e290c94539a035e9591c35c19c92cacc73428429a2e2c29ddd9d32a1d90491a1d2b138b478a0b3207e7516e0f3e52f1d2e5309ceac4e5ad2a28714b5a95a9c440657c5143493a7c69d15f76b4595f6ae0ebb52d05f062486759c11a7ff2fdd5dbfa06b0de82c385fad94e2b724fa554e1031114b3eb3f311e48507a78f3dc0d3ae454a330944f412bb75c5fd749c15e1a7d2ef77fb9680e4a1bffca95a9ce1838fd80f256b8e697253fc01016abce14a1afe5b637953a7adde0edea09b492fbc863f863f3446552402a820485dd70dbe2c279556f79af8c3bf80ddc6e9826b97026b1b7aaf68aa18da5bbf91db416071dc4fc5dfeb3c537bd4ca7113fab0ef5c9421897a54df7b64eb524cefd5a1927e50c8f627e8a957c30605a225d88a34101f4509c11faa41978671c60e7d7982ea2f9b4f3d0eec6fa532569038b1b664058519f6b9f58b66038d69495c21a38bf10f03c9f964359205caa5001f2389cb8a63c189b05ffa4c76bfa8cb2169e1a7cbeb56f1ab830ef4b7493fd609ec5b74ed4a0f0cd7b58269f244e02159397c5f5901685b8e0871088366525f4fe6f4a955e0006fa3f5257f62a3f847f8ab8c6713edb96b3fd381422349f8ef268f887c6d8537a47111801f87771d356727e428bd20f8c9bc456a44372a651199209999366387d5bb7e00860bad1369a6513cc6b2e9ab6732a2b0ee2e97f5c681aa1401d426e9c287aca5c1dd67770e9a0be282684201da5eb5bd0ca055bc3d50008965739a73590a8c7efac61597c9e06e5e08edc3fabf0071f195128eca7f5275bd5d02ea5e339109b96fa26cc82dc9e99c0c89112c2f93f7f26242597c1e4d7a3881196a8000789e4d79ca3d8a87811bea99dd406e3d69cb0ba22c569d0ba3e808b92fb2e98716b3d01118c5ca8cc2db359a628056f53e974169446e68469ea5bab937a0162f71465133546fd59d664990436e4e6b33234902b0bd69da6335038e6f34493a06a647d579d6cea9a824d21e8f8b43cc2d1514df95c1c9b83d749058a8a20b0fca34157af8b4e7038a522ec37371965c5fa5712457fb09cf21e9089b666e77ab89914cff23e6d5acbea417c05b8e4f2d799210521d99e1f72c645db03c907bcd3514b39ec080126ad04acb50552bf638e48cdbff28ae8392e946d684fa10180fb7dd5dec5197304716a89ee5552a426b2524115ec770145f7066f8ff1d8ec055fd1a989fa37e3ad8a4fa28fa20363f2e6eba1e527675258733c98c7ddb7effdc3493f211baca3030dd7e54451ca216c34cbda02dd66b893148d98596f41ca1774b61557fb7fb982aa22e5bd907cd41dae461b2559b8043a9ee303a8e47b4ee1ddc02b6317d16186619557fe6fd7c8bcb35656efb5ef7a9b4205d207cb33e0f4029c87d0445e895a7e85963e5f341cc0839dc4037a9e53d0a3d6df28ddf2fb770d49b25900a9541edda4205cbcec46471aad5e2898d43b4341296c0e1690abe9a6103ad5eafa9876959917da4c2b8b50964a657b7effd30b1cc49d97faf41241ea692e3247605f107a9cc171c745883f9f5bdab7273330199c29f9975b72e65b0b09a5848b306af315760933cf1aacb3847f068a60b55a2c0014ed7f1245f1bc0d393722570ea9a411defb34025bbbae1213f4f3b2b7cea2e2c049957ab9909a24f582ce5f60c4182a144bd6fd154c0b5483f2c1a988fd109debc1bba8b2353d966fa6f7272595762385cf8d7a5e4c43bd60140f5e29cbac94c56dcda338e5ad3cd5ca0290abaca96171014be15a7a867999b1d980201088b95249831f17bbb4fd2595a8942acac410d67e66fca1e820d49ee4a752981a9bc24fb6ed7b846327d4ebb561cc6a6634074d8922a6558031f8fe0c3c3b51299ff02ef77c0b3fa08744735ce375b42bc1cb3288bb96077db080294c59f3b6f2b861c7b599e18cc6f156e9bdab29fd786269258608b416eec592aa0c9872721df33f0a7ccdab10405b706c949e80e0dee0fad9b0ab84dd36707c25764a1327c78854703b7b57740b21a5ae9bb14147a648185ad8d2a8bc8f7a11bdfa709ea50100cad9c827868039e65e4116a9e8c0492c90f5f5877ac682c34065cabe31c44e1427495a52125670c26f0348e4977bf6b61698a191379370d39bce5eae31362971cc390ddd262568c0ec73fb39c7760f8fd4bd9ae3568f0dc3ca39f2a5b9337d3c7f516105abeb71ac69ddfde44105ac88fff4419febe7df712686032c3c7c2b71cad3bcec047bea3270669d8045f31628e7b51ea43713c30cf33bd62b45448809418de3b07443cb4e4c153215d4ad4df41e5e5ab0cfd569e4f427f14990eadcf9eae385148a291c0888be94348b988399b0464311f38ed393595ba048e5e4e4fa6659b0b776f87c82b0a6a12692579fdb7f40cce3f888da762f08717c6c3150248b125ae03eda9b5b3e59ba257133bb584a3d0ae5f404a970e5bfb8506dbd46578ee7d9d20a9dc059bbd743abe3e4a71bed8eb8d2f5ba40028d0e0cdca89edd7804176bba1a73436a7fcd26ccf70663fed9f1b45b7f92f2b0d84ac884c2b0a37c37f5b0211f4914f09ee551a50c26a8dce68a7fa02169e7bc10b88bb56824183fa7d82afbf7c43362e4b933d881e26096e01bc14350d79b2778c4b8a12fd23030ba13c4391c7d353aef1243172ae62ae28bf5c40adb055d0adc43f71950afd5cde80248f92bffc632d25a79c2d27bd7effd98f40daad0d13c4703b270bc9663eeed15e7366fca21d6ca34d3937270f0da768d65799fa56f4b14f8996e3db52bdbc541b61943799a5cec25d25bd1852ded27ab4dddc0c801bed7991f57894bf03a86782bcbb7f215dbd71bfacdba26ffb08ffe850e0ae929aedcabfafc86256ccc589ba4dfe0a38bc1db67555d0e3d07d455730c978b3bd8ad2dd8a7e62e1accf022dae04e9a6e8ca91476f1283e029dd9d0a884b6b6a4d8fd6303e382bc233006a49b83fcc331b87469215df80e634a9d9fadb3f2f8d14414b72d336d21242d9214d897d0358d45bb7c063048ab174ea500e3043809880b73060b5dc2ec354a3c90470660eec97c8aeda082665be11b45d1f3038a88d470ced738ed84187e8698d4e421253e9d3c73814f719f7477d78f5e9ee543d8438c83831eb1116fcfd0c11e0c1c48f1d376e811959e79518dde1a720bfde847b6cb5e09113da47a148ec431ed8ff7b9d0afed560dad0265033e9044904885fcf16bb2474968eb306117d9cf1ef6505d2f8115e995c92bbbc53a114004e29d339900bd8e98cdadccc1396e30e132d964cc1ad0141d1d367812c868bc468fb1c3bef35fca8c4b7e8758b3033d04078556e7bb0959615c2f29e3130e1f2c3349fcecfe25bce286802520bcd49e759c51b5133a19abad3a7ef7fbf9f608cd5a984715b199ffb9633d85b57b52e731fe6c4c3380fed947f07e11b48d3a7c1db1ad2f89f1ebd2fb9087a5de8c6e5db39cee86c20cf1aad7bc2fdae2968323c58b33a9cf73eaddcafa6fd32181b53900cc1fd6556f3e89865eedb17d0f53256d5dc0c5e34546719f544af2a35f395b2945546845ce78e3f89d3f6a5aa5122d1b42b72f2c462af8e897c10fb11d4cbf61a352b22a63f58f8bc0b5b63a3cf793bc77b81145a92196aa7cfcb5c6280a46d6e74c8d01fc9ad27016d32cbd6ab3d3b7e0a14b88764e2b8e04d2adb3e2b48d14f468eb747b00de616e0ba510fbf9ac35821f171a09f03856f10d23651eddee1e13d9641d54dbe99a9fcf0e4f6bd0abd607cc7d229139606c4ac55c45a65de34270841f3e12be38c102aa09356fb1f3b43de142c692787587dbba7ba4b62562669a3fd3dad226a723f36ad5836c7f7de597782264648b6109b2d3f07f7ed3f9c70795ecd7c6dd9d7f53656bbbfe463127aa5b8895b1a74bc2a39b9d21a31eb41c8e1d1034b3a3811509bbd20273d18511b1642074fb70c53bc5d9d07bbe120c8eeb6880507330fa607cb901054e0790df0a6fe2af145ff38bf33491dbdb1981593e7628ac7481aa3a1b46de40c422ace7b7d77b13a374ebf54de8e786fcd690ba8cbc4c6b38783482d55a2fcb42b22aebde8d382fa645c449b4871d2194d021573dc32484d3c8a1b0a19291c9e56aabac49b3cd04eb4d0e0c51d41a3b0deba89d9c4adf6e70388cdcf8c5c0fd00cb0fa7e7cca7b89597b1e90ea15f4a42b393635b04d3c5cc2b9fca56b7c8909a8c2f5249839e7f9db169e21bc7415d0579c1990cdcdd58b9854c9ebccfeeedede7b81d26f32f3a4ff659e16b2a66479a39151ca8cf34d59dd5ce9f31eb66e5e8a5e62dd78da570c921743034cea5ad3a5a6a780c582649f0d5d2553c35257fae02f6f0db89c4ad7f38ab5073f9d04c9232760877619179c23a62e26c155fde156086d755e3eb87babd2c46666b0213416760e10ed4123532d0e92bd02b8d5628c84cd589ecc102143a1a5510a074275d141ceb59ac2b8ff8e874dc7f5d005ba63fc5d2636ed355fd117d80b8240bc9efc7cbe8c3a3e133dc1c78aa12f15b4280e8cbe3ef58c68e39ac6eda6afc0100724cba5a1d699cd23c57c5af25bb86ef5ff447eae20302f860e8aed97414757b5843b2e91b6941f58a3583ccda5ae5511b67524710ffeea65de52276ebc8b197858fbe7ad526d076ccb541355586ef5645a98260f3723017f017f6c224798476d28f9d21482401331b358654416772579eea4a0a2b1179422cb1571a3b2cf4468b2971e7d35aa97624be6819490712439e548e5bf994dd36f9540eb48f451e56f2a275c2ba43e42eaaa71ca6a0ccdbccee0cdb09c2d3c6c793205cad43492447ba4dc92aa77046d302837e127a06fca3ee07f230925de5970901ed1dbfb05ddc8c018f6f24b49a8d955a01a09089e85330ab865396adc864bf59c9d22ecf3f108566f54e22daeb2f6140954da05c92bffb3f6076a1eafb2eecfa86adfec5add8b60fed5a75f0dc1f792c6133eb74704bc9354772a837ca931d6832736289a2d3a3659763551f927c802b6a6fb68275b2c93468fc46940c70b06eaa0bd3f46648c560b877de11ac6a32dd81b5c9cd42325d001770394da3ad5a0c68cf8befc55c0814b50a91ee17a0dc4216c6f3212a339d291b18e3fc7cefa2a5ec8608a1f0194d07e976d1dfb5ffdfddbc2883cbd0d0d391f090c91b4daa638c502c90b504e1e9615c62672c1853311e9388d1a385b0fdbca5e01821541a4ed6ab54a7b2663b24e52483ffdfdcf6db20cef9b32d9c624ff4410c1b33db70668353649a5b6287bcb6fbdfa803649c7cbe134108c25e24ae38dd45c667458682f42456f725c3dd5ffbd1f05866e419c4e976ee31cc69383505d4492e95d857ceb159eb13be56b134416ef266f520a0fa5d31bf93168233b4e1c0240fb29f9a4a819d8e839b8b1553ba5c570ea54093779d74421627388c2cc5256745c608b749cd6012a3a59d4d4847bc7ff1e88ab22940ec2ea9abea735448efbe536b2093f45aa1b712e802429451b2c892bc0a311192cb2fbbf6f97f17a83b0adfdc8cabc550a39734570abe2c768f93da3b5adfc5818031c48b3ef214980f3a3399aa1d0c8d54a0afa4dee3f8ffee1b94cb188defde655fbabb14801de5e2c6be916c6f6d4c54d0ee235f1955325bd3f2d1cd56cbe80e159c518f4fb8e72e0c91ebe1136020d944a1be80cc9463408006ff39abad2c06ffeb4ea382a1c6689be34f83e5b035eff83bf928d279e7388d4a25597179b419882cb85e104689117a8ecca911fdeac8ca7307b5cebcc9fbcc19a296de29858e7967717cdc4afac5498f44d13a3ab71b79c3f09e0b8b5878763356f63a4b6dd565ab2ae7f5025a788c897088e92f60c3cfecc4f259067fe8433d2e340780239b0e885cfda4fbe03d92436f30bef880252870e08525c2efe36e3e3b1cb7ffb44d789354a87a72125a2126e6ed3784600fb7174122a9471fbeba245b9d780f4471c6e55198e1dade7194c0b16d4f171808df6bea1748920eb9dd3d71584e90165e4d9cb137cb5a9610fe43265f96c80951e33b5ae66d94e5d660be2eae1a73f4417f592b27f24cabe8db06e0c50604a70ee51c0df0f8b05d547d406b8d163dd67e7bc11d55d4c0447a070324852f09875309e3126a2141fc15963d0d849589e3c010fcea01f7f6a009dd58d0c6f56ccd07042cb3f901121d92aa9882d4e683c165f33965433fe8470f05c6dc1fb593e0e608d721b263e4cc018812c991996d310fc3284bd929be0d8ce7356b94223c700d5185436433eb73e28cd60604681dff7a3b7ed4647557e5ea932e68ddf8f5cbd1f81f8272125150128aeeb2d7947d3ffa95754e5562c7825ad35fbb911ea189e0f650b19ac9b2c011accb4dd9920adf21b249c81b04d3cdc82e1b0815a9f97bd752060368009f5e335ec1a93f6656808e15bccf773f7724eaecd7fd6dd908f9d88ef50b3f801be9c4c888c3c64c87aad533923deff9606df66fae3866f2ae70d16c13d8357621ff7ae2bc2a1de0d547feb81612c3ae73fa05e6deb195911f5369d51d0f2a9b1caaa90c5efa65140f741ac29461f315443b38f249c03b076147ddab1129c7e56cb813d95261d12a179bdc08dd5024caa03f0ed0f5a80703d1b136c7b2b26e6ee8e75ae7dfba8dee61e74108c62176e2030aa3758cbf32ce9f8a9e1e08a2347957e05abf323793587900ac09a84fa24522b2ab64dd168e354d84c473ddba612ef6fdf82cdb130c057a1904dbe2bbef136357692d59c165383482946b40032e66f5eb32e94d645bbb974fc1a753eacfe560e3f62197a15b8bfe5eb4120648a510f90e764b626a04a89558ec0fe04d37c5689c9c5bd0ca9b002d03844044b1e72e9cbf8955d67ef4cd4f817a21f4a402b8fe8713ff63710cf193cb9928d6663807e95496abc789f1a231fc9949fb65fb69589de29f536b5bd4d83ff5afdc448c39e0fe12f13c0b2fc1be7fc9ace63b4d05e1c73fbec4400b50f81862c838a08a9ef870a4929bb34b160b35d595aa927e90b7b91e9e81cce127c297c529111b3267985c363c308c39fe41f612d5c0333e392d8e5721796c5aa45a2b503e528993c79cbbd919adafd2461edd77faa7f297cb4b3c0fe23ec2fd35b767cdfb2be55493d6ea3189a4921c2f7521614e5e69623549d9cb858403c156264c8cb18f53ee968b947a100fdc7b13a9472a4eeac4f75d18abde24a8daceecc5d99987b538d324f26a7047c9cd5a9e369fea3ad6a18bcad90a0ead27d75bbc09fa4789985cf941b9b2a6dd133d04032911f4f9aef8af7f6317a959226e68c838b53a9a771f70197f9d1311101bb5fea33eed1f831adb50c1376fb6e18a92dcf0b875a255bef9e25b74ddb6488d261a59efa0806abd0057b26df5254caf58dc9e2e24937aa7d8345492b26f299612ec17d0dc06fd1890972878738f74a470de08e214a3f0de42cde62e36c0814d75eb3881f9e8d81269fdc9c522ab08bb138dc4b7244706732d3c83f84b8d06a98cb630f5e5871d7b9aa57137995fe09b62bebe7311f8d100627a107f4cebced4d891031fd067f158fb29aeb2c9c576a842bab6cf6ecca6481067646e6c46d71b9f48cbf0c4bafc46f103438494b468eb562dbfe1b74aa2d24d59cc98e0a98060b18635aae1e6eddff559a5921128f898f65ac2d2b69c22a3356f8ad188520e257c390477f04af43aad8a8160fe738c1f43baf9e4bc7a4bff990851972bc928249d848d5d8a4546789f9034dff9f32ec8bfcc74ca64ba83417ae7cb8e8c775c79845c3a7d182c9d5de7e9511178d70ce70ca7974bd969f6bdaec413cde70a9859e2e7079d4e70b50268071f7d97baf99ba8569a3ddac512b77cc33bf29bfdb15be35e080af9abd08d5b67196f42f8eb22d70908c9f9250b620413c8130d51df507d3de1c537ac33004d676c0c46057bb414a14000cc2f58fbba3831770ad83fad4e444c0581dea712cf897c3549af68f6b21bf8c5023f34eb62f3631c41715080d2f197fe04b3f92182645f38cdcd14fc8323b503b0f51efa33624018853877fdead323084da17a2b3bab6053a2ce05d7b4d553302855599525201bbffb047b940450e606307d7fd95dd57e077a8a65b739c983263f956d238d4f3d9f7081099a5346ea2c76b3e29fbbaaea3a81f9839c6d3d484bd92ca4688226644b5fcb3180ee42cc07c6d67fe8899d8c2b2cb35095c74d79040b248efbbb683ff57bcce79ec6c53edfb49eb84f41377f319e9fe390c701437f40d57dc9d55ff3d7c471838cc1888563141cf2f07706915157e4f6be7c12a4c627b809ab334f9972667a41067591fbabd76e16c3086cc49f11e166804749f12957ae8e08f214bd92fcd7c268474a8e8529bb11051a5ed071f804b6e7b86d51f3e98ea98e96a5e02efa8089b8f6d43f118e7454bad4b79e61a35f8dc9b1d23f6e8d5bbff27254f81042257f3ac846a5b229575437dff4ce1f7f14335d23b50b3eb89e76c7eb66eb503a6c709ce284674e87900bbeec4732168e42186d13c95a0406f03a611545179fe4428cad9405c6d877aa752af4d351daaa854e17c683a257f180b9ca58b6cd5ec547e7a68ad11034e5c314afdf6fe56fb6f10a1e2fecaf0966e168c912fdd190a391f90334be2e5fb2846da1c7c45d5b5c4b27c80cfd21bee5e0fbf15e50dc8d6be51eebdb0017f4020389560ac75c84564da2514eeeebd0388ef0cc80271a91beee162636e85af68381750fd38238e85afc1feca70dd68ce5dc050b9d06ad12f93586aa62c099f18f87c2f5e1f47c1c1d67624f7628fcb1e764bec9b40028f2b95d76b2a9a3086848550528a73066a10db3d7d953eb4d4c6206e1e714ef147134a9d2647240f290fe1e58d602656904c1010c4101060dda45f8f969ab726efdd6ebe90d366b346785ccd76e3c69add2288e31d2835454c224eed6eef42f27cc10caf1e771a9c007473225da025c8a5b085c9f429bc88d1bb08e0a34745aa34340a28173d9c01c6037dbe4c7878611434ff74e10f150f7c196696eaae5903b36148c14604bbce12cfe83400b082683e4430c5d72a38527bec0f89b1aa13fbbece99b8d044bc63c48f258650753f6d784a7148ed90d7484fb20fe7259db3ae400f2feae6700af6f48c0e1042c235838553ef1c700f17dca4e97bc950cba06eb0726949fd800f2516ed646d38159b68545650a928d5ce288cc9c1feb7e6b4ff80c595d6e176296cae3ef450a476e5dd0a69f7d9d40fc30a26fb4e22085b467a8dbec82890dda51594a59bce69ba850e09d46f13bb6aa9acf0fda2e2272a6408c1af6ab4516eded8e99c826293fefc8af65c4e2e2b66bcc1ba869f1a51b6f31a835d91b5bd76c0c8f4de2d7985a44f1eb6105a7ab1730c467ed3865a0ee7412f418aa5d65a9c90e97e5c5ef7c5f3e25790109e0d52a05d9e434dde3ce1331a3dfbad8446690f81173b23b5022f30f6eee70bcdd43c091029caa571a2ea479eec776f4b13fc4efa603f55de25bebf03a141d893bf9b50246e9d7a12984ed2d65823790d93bc9fb2dbf4cd783fc5afa596c05410fa218c910fc79d410d5c676b3d87191c284186f812f7610db5faec706a6de52290dd4cb3357a8e2fbeff40ce906ef7350ab586eea7259e722e1d76e7c2a057039abf3ee23534b23b7df9e37693c674c752426db30b868c9b7628ca1d8923f0e261373121f9be2229578d2743b20ec9316c76b9ff5c84e4bd1c88f09462e516f887f9eead6af9b7789d318fec14a2306c7514bdb6c7bed975c7c1132547e5c180a4c03544d63b89118c91a9b8fc6501cb7e195b7fb3fac505deb18901bbc15e3537ef004a05d45c2017b5574129531ef247bd4de339516b99306027c4c50c5125a3987be9b9a20f235cbded70d2ba6892388e0de2492ca4768c2092e90591a1714495b5f11e94fc3c2e0392269f22cf6c8540cf50162b7f64599ea0fb32bcde6199ba379116ea716d7a63b3daec62c91b18fdb06a9c1abec9d0889f5e7cb111c34c2fa4e6521c02feb4cff66ae780f6a4ecd4bc9ad80345ac80fb00e1475da3ca773af53d64d3ef163c4ea32284b2cbda306ad582a06cba3d7b4dda37b17ead8e509a59b171168ebbd46c3f6f57a82d0f3160ac3bccc53333c801ff057d3b6676002c4d26ee20b376acdd11540b043bd513e2147c7e0ec8ac800ffa9d6811c105d7ffaa28c07b7560c9817dc6a8e2ef03ea1ec493f630c733e457e0dc42adfc31cc8cca95e1c3c98b5ab92dbfb28b96a45c8ba44150bef5d0f652479a88efd5816c6755f079089b00f4b92fd7e880b0ff81fd72d86a2565a63f819f0729fd38abb8897919226d08b25861bba872aca80e175c21d7584982fcb9b5513e2040d0d0fbf7b536f78f98b9ea95d27477fb064b180fb324225fc7c3b70d863bd97671a4e41e485326f6eafcdc736d3d36afb08675757f6718969f60f9cfadf98e7452913896b58a7cc2d5aeb39c8982cc6a3c04ff6e9c1deca6718dfc8c74d4db711b0a2357566bda332bb2d191be433dd687b6ebd7eec1b966bedd7a16bc4877d6e238687ae5176db2a0839c5d4155df2aa6449f2a0bb28af75be3c58ae46d3e43b9834e51efc8eaf7d098e62fbf889b91593293a345e8f6901c94e238180474a68b34b5ac8c3422fa2b03257ca7ca2da1a1390249d71922f4354a8ba9af9974393d1c612d86131c0c5b2cdce9624c5713cd6029e79d319feb6bf93db234f97148090b5e2664f2298c261d336c4df8a9127515b7ee9c1a5e7fe6467c67346623958242ebdc9d11a43663d2fc3c83bbdbc9ed26ffa668cad9211674fc1dcca4edfbd229b407210fe2108f70aec41220a6c34dd47302f5775b6b8c8379588286b6aaead0f275fd6b8e56fe1f0ed1895b48ed50d0b9f3ab394a25f64ba0f6516d2f1342800d51ce1cc170c078d43b71afe02245981acc50c1eb8319f0d80206158bdecde98d155dfe9937860bd324bcc081ca1a94a1f693295ec88f1f13e364921ce534eef43f380240855e576421c383e26a828eba3c276a949ac9e85210be67656edf0757bcd3a467a6b7142beef89dbdc38bc6849ad2ef66cde35b7061a20dc3b34bf6d6bec9fa2c126b8b9347dab1fee91837d050a8ee207bcb6c8503014ae995dcb8b285872d90859c079f8f24ebc819b5c52301825185fea72f662baf1d23eeba2ac6c79cdee4e52a275a08a1597ae21bc4b045e80edcf1507de2620a6e42d0e603a170a0c2de8468271892d449c02df62b22321ad90434005b38931e7fd1bd994ddaa954b56fd0501b35129b860fd56b9e8116fa4b3be5f2aa8fca26ed0f5427a2cca89afc509009da15bf40d959380dc6cb5b5defad44c3935f59978f358f90c4fc3d6c5425b9dbd264e022cd8ae40a51edceb91743001d50a6c49d769180302fa0220af7396e4621a96a8a34ba9b43420b6495ced1026f4965e9e2d37ba32bdb59a7cec0c3471b3eee2129a68d64ccf2e57915d0dc4f2c7f54efc227cf968b321c0c7f417feb9e219a4472bf8fab6108137e700c7325b300cbf09a2f944a7e2c74f81f3eb95a72973943c79becc98c20eb33af9c6558e1752bb8c740b3ef2491f453e53beed7acbd42dfbd85b791ae0a58a3e3243b9c44e844f57ce223e048b8f44a9f502cc0361da2fd5cf232341905760f1b7bc015fc60e0c449989cdcf1fa312133b2e5027e47f1ba9d22d5d1921973eb6d60662543b81884294bf2ad2cd1819933bcd66b635bbba36f9afb1b14ddc10fdf52b25f1b3c9db739712c9354130e8b7d352549417e7978317c81ae558b9267bef9628e5654123578f2bcfc4f960b0c7666a302dd5fb804fef338af5c61cb3f3e43d5ea2dfd10006012a98abf3a5c790781b663c141f09996b1d65f6bfe55190d6694b0b8f9918812990320bb6ab29ca808b35e387090832180c040765097bc97b1c8871ff7f940c0ab2df5bb179f2039ab5330f801e1a644741345da24612df200445e4681ba19cf391979f17a3e527ee01c5308fd61da59740b41f48cdd9e08a63c2ce6a22f1516315836498a6e8890241a841c04bb45bcb0aba10744cf9462452d5e60b66370642458397aae7868845316b1b174bc7b3249d6f0896937e1af43e676b59f9aee8d8dca9264e976bbd7f5ff21d554c0083b79b6e3f9950d7ad21aff7b23fbd932a0dc3bc736ff5ecbd0ae5f5253c164e3d63a94969fc7c5ae506c7150a7600a6bbb429b696568f7d6bef407ed3c9a266f966d4049fe2babd0f134be8e19744ae1616f74770cc8238d44d4b6f20250c3d85c1aa9819673a9e4e006ca94ec582f21de5cd4f8cdf585da3b00cfa4638e88f8acffd72bcbdbefd8e1de026d6647bc0074f8067d472becc212e1527f8307e5bc3d918f16fea01bd11af81408ee0b5e95ae7fa5912003c8dc678c951e260ae653e8532eb4b19052684a7e86d8b78d643fb87bca4423811485741fea987383ab3b3572d2892e1d266a83b3c369f84d9264676c0f9b66b84cd988c24b264565711e9c14fe678fdd70b8e12c7ba66bf94f03e5f58c008e4488e8fde3bc366e41d8d26627854c5403e8a5a14af2aa9749881cbfcd394db991a20505db988b2bd6ffbba70771736d8a4bca119904b06ad2bbf0076fcc36ff050be5f4d9581ba166b729088a2c7bd1b285c4efd9ef7f4b0a7147fcc59cf0461f5c6a489ba82a5a158ccd03d6c738d7dea8a1ad3689c117de8ebdee8f0ef0b40de39e7d8253205694a2a9a34c519ef5f374b984438bbbc01e1362d18a98f2a06693fe1421d8cdcda4d6ec3a9502ff0dbe706ca56a96a0948a3eb770cd0cb0cc7b2a1dfc60960f6bd28c0b09f021ddcc2e8084b1afad3fbd555826ab243f807c0984df215a8d38b0b160a382192c08664a001080835b317eca079fa6da11c8d285ed6ac3277db3ae7dc7c954c46e966e47985870c68db3e7617d023907a716bae8ff2761886c44c2fe908701809dc80270b8dc283b9b3dfc9008eb517f6e6e247a0fa6ccc03ad4c5fc2e7ed0457d220a521f38ca752b2738bb13a2e0f789e8645c66dd0793f0ceebe5a12d92a977765a481f98d32c5e74d555362a819df6eefcdd26d087c1826431736c9d35aa36c9ab04ac3c839c873b9f99317d700a9633e2d194032783898436854109d3eccc6624ec3d8b47ee60d687a366f1256d73a6fa2fed041e8d3d1a258222d65ae718db33bc5a5e6bbfe7c300fe9027478bde77a94762cb2b91795f6596e2c32ac5b3e9ec422fa47ae44211dd6146e0392f90f4a598205c6e1dc7b2dbb865b54b75c4aebf6248be0dcc76aca0695d4f25dba8d77f8c6325809b570552332ceea696a9584beb1702e61636015c36458ebc91bf0e2936e2c3cb2e533b22e29dc779245f7af34c0a50e32601a1adf5ba469c4d4fb1260d6922e7871d6232815a0853bffbe19ac808b35b30147823a04652acaa8256856fda7554fe143dd18dd795a53242aaf430565378baaa923856acda60410171f0b43cf51e219b56aa8378abde51df0480a47dc20024694ee888e10a10b51302351c916de712b3b08870d3acb1960b825fd1a7c9f6a28732c53c0e7c09bd704b195b6a800d8b438485c35b6d965569f346b0934ba57a7440ed7c81040d4ebd9c81daa5acb9024e50974776a6dab97b62f8701da19a140178be335cba6cd0d28718fee20aceadccebfa3948c3d2dd181863292a5e17745928e86825e989b2122c9705a954dc002510622419148910378184ba8b1170ea57077371e93af0b4829eb865976075e88228a4aa1b6f8602189bf05d27f9d92a0fde56286356bb3b8529f3e4d27df74d8ca3e88db7858b9da94aa1fae72b883e89cda31bf962a1f32eadd884d2c183d5f23e5dfbf1c571d66ee87f07c522a9ae14124a6790c3a349dee21d556b1542a12dee1d45a281d9c62df7fa7c0cdd9ce95f81e661e70ef1751918b131d0346d300fd63a286e870bd8324ff3c79f10a3d245cc2d1c59dd62dfdbad2e80e15edeeeb59db0233ea2ae6936d51e3cfb427e35820003bdff7edfe9e83097e8ffc6a89d91dbfff2882ba267ee00b00f56c1884738a725beae1f21b12bb2e96107361d29f49a4838547baa57c9447f88a572c2b0bf35a612f45be4cb86590d38158e3266a30a4a8029494183d17ac59371592146a48f02dd311b19e7037fe567d2df5384efa12fd6c0838fcc8e9492adb2860fcb38cfd9efeb43024941ccc22b5989d76212386384f06dc7f43ff4469827b2d16a754d0fd10a53377f7b2a4eb67e38512e1fa2a1bf436d5531b414f0a52d8392fce4977edfedddd5000cd2b410f7d2a5029236d715b027ace220bf3f59a7026bd88aa507210572dc8b6f270380c769bf56a15ed75a41a17191db0add8bf583edb63c7e8ec2997b6095add3102d307cd04c89dc60bbdf0f356b3f2d9caca064f78dd872822ad20719a68fcec16f908781ec35a278bda3d67f8708c6a1b67d81037d1e3d3aac8fd93773cf1c3e294788a30373e351a5e7afbab5aa874c7728d1fc37c685864bd3982a553132e1b91fa27525f1345cc4b68a39fef698a6882c9829c3fb9ebbc3a67c7ff1dee7a28f1523aef10f460016989fe03e963e5a38196c69bf80bfaf4731a245cb1be244d87eb91a5accf1ec06ba4ad03d81e616411dea3b029a8e4aff96eaa5215f8f27448549675b4eac6036245b7a0d696456964f2389dd86d106eb47eea3cf0c2ecd53cbe8628685bca389d3afc29dcbee1f32106d2af794b44ca95eb2e3e3f761bcd07804a0e438f8961fb17bc3aeaf8f59d45b241bd0fc95794b75cc9666b231da12494d174b8c46a9d5cb32976339eeea20a72c9dd12803123a9f86e447e0c87144117057b168e400c71a90f71917dee25b02792ae9d9e15789ceda471702718f291cc472109560048d0d8847b1b55a93e4b95b419d764440dfeed3cf68c9ebbfc989a86b9d1d6c8ee78e4b03c745a0ed7eae3d1e68ca8e869c3ace18aac525bed960ad918e99e38f76bb2a05270b6c2a3081e3c96795456d56563b3119c538268cfcab12c6d9314c914f02a680c046cc1a1b5ae48bee598c30f50f4d55969cf15d82c9fd56c6a3e54948ae47245d7cac058fe96b5afec51d5fc34c564f58e374367a79b29df31fb9fd236250b4a31a52bb2b0ec713391e7846dd3f110c67218be7955ee7fd5c7898c6fea1b10a80c81ccd3679a09910b03dbd878cd735cf61acc32749be8415f09c14860f3098ed52e432e2476adc8295fc4376e1f7d0bb1e56d8ce564f17d01b0ff4f9906fcf3eb23b01fcac97737cce6e25e881fe4256e9f55c9b05ada9709515ada5725998325a580eda26b898f6a23f45c9a820b15ac413b9d7efb9b4ea6330166a1e80b6449c1a56ad86681f08dfb26bdfd96aa3e1dbb782b1de5608f5c39a6114317c5a1961bc03efb33113b52c1fa5d0f71cd4627e2174f001555398354aea54b1a02c73b860a0a8181af90eb908146b127fe9b6637bc1abdb8ece6c54eab1c8d81fd5ddd6c0d91418cab4e1dff1f85c720a963287812228d8e047ea4dfd70d2098fb81150f65b2f70723bac31724acbb6d0ecdef00b0e9cfd57d52f2129039df08a558f08a2428c3979c0049accdf1fb375289f3ff8bcd85cf37b956ffffbce99261496db79ffdaad6482731f2a152773d7ea79e777cc9d5ce8803cecc821f22cea40c02cfa53114f02b0192712456245d865b0e1161d289d998fd280b6c81b0ff5e3918ea76344cc8b14a94434f3f7b33a24796bee5d990d83f34875835b17efe03cb8a49fecf04b56e97f5a06483fac68db73d2e072a7b584979e4574ad1bc27da362a711b90cec50ed587c0f35aa24483dd3d0cc38000da3f578bf7ec855d63830b3d1204f0a39cb5c4af052b2277ccff8885159e377bb221689a07ec579738f2c1fac5086960d650f2e87ed106044ea5ff38fae9cd687ca1cc8520261667f23c5b0e9846fe44039f5f3eb48133d474cb982c10f55fea17d45395d912850ad400a31a610f08742fed4ed4c5ff40faa4917c6cd58df0483b6e3d644fcc98855d477233f112d178fbcc575edac4378a07846fb64284ed6a93f3e262fa52cb1fa01f1b620a930ebb444536a7dd19d51da725e4feed1203607479fe53d505dee2a25d39222b2c5c0e5e3f930d8f5b18519cf1a3e9fc5925db19dfb7cfd3887a1dd73181e528fdaa25d8325b00e04156474aa54153e755b2b2779d1bc1a893b4e49c8ac88f9a370318da511686a2443123abe52eca09fcb15f9a9020e9dc62638ed77174f912630ee409b81bba8777df90ac91bf1008678580975cec5a35c5a63792d8a76f2bdd9fe8045e67496e7717399c539d9cff3cc9560e5098fc69ffb03cb4820d335e60d86968d350f30043d751a4432e1a8ab9ca4938e6520b2c001cc1c504dbf8b09b900e6a015f10a518f90c58ad39e78f05b261894a5c967c9ea52ec405b7672f256e640078fb08b9b33324504aa696eac66fcfe07f060153dc2bad0637819d3551655b9b07d6da2283b455d783856dd7118f62490d9483936727ae32b496ab8ab871c76ca95f962eb3fbe0a68dbfe8392648134a528aa955d3af6440bd11154b77fee040f8e1e3bc24030cb36b9c35aea29379c6e4ced17a434a468ffcaf54a36ecec2e6bb5e7ac1ab02a0073516b76b1789556f9ab1b09484608f0acb7e545a1334ee284991a8112f556bb4255984f7220708c31fd7cd1bca43bd5d2429f62b930fc755b821d082831bbdc95116e7a6827e189e3ed203f68c0b15393dc78ff35a5916583458e7581c3beb640b56def1c0bcaf5b361c034d44761ea6ed5b68a647f6875fe464f704eb3fcecc4d479c956bbe1c86c706cfb4f22e226c61c03c1e0c322a19329f9c33087a449ebf210887fbe34f17d53441a2c17fb084c09abcb39583f2776ef58a2b0069ae081e903db5d85f6149bd20823125871ca0c1200ea9792e390d1724057cdc27711a2341089c23570af7cb39933c427afeb958d34a64b5eb3af13d3267fb4416751d392d6da62efa298c682cc7c1905cafbdf314fc794b03963bd61e9d15526ca9038dd72361d1cc4086e1fa479af4d9cf3af777a5878727d00be7a0aa6aeabf7de35151137dff71f684f7a68d80c69dc2296de73adef2f1d121e75a23bdc5c36684470edda14d9193ea894ee96687962ec01758a3fc43196406c3e7b2306fb15dfbd5a952104ed8870c07c8ff1d38137e555a843ddad256bbc34fb694d8e0e060575094fb14eface3f381fd474b8f8c6257aa5159015c79e82d2cbe1a969209f05d3040914a45e1dead8f7f8caf87394d4e7ae2bb791c5265bb52b72c47168a92575dcf83ac6b9c512c4e0b6ebd0044f6f1d0031b8390008deddda3c1449bdc4eeccf70737963b73cb63609e07f6b8fd74dfe99a71f5fa02049c1296831f30f33102597b9e51d003fe89d5caad0bd88b1f520ec7f6e3c84c3de7870c217f2b5d1fff1f0de9d193021450336e8de2564064a6d3238d6ccf77e63f1f405d94339bd4ceb9323193ee74d5692fc890538829ecc68975affd2f93cd92a0c7beb10f611fa301cf8bbdea6505c77cdd1f1907303858bf0e29e327f4ec7579b01690cc2e9a8519985ca0f9c5d8fe981d71926370475f9cec1109296e8027be2886dc5c9e7d4d602242bb703c9ef0ca70883bedc361d462d5ac2a433a307c61498c555caaf206c96e4f802168ea60d55a2d84daa6e1174eb086d6880f9df39e0c8ecc7b76cb2f3f108e62fb2ccf5165d3ad22b40489da27e9620df51cd9d4cf4475cced149a019f4866ec97644b907d836ea61fda3781bb6c51d10c5e062950d5629a601f96c386e89dacd8ddb7606ba54648912238cb23bca8059185df9c00accf33e1d3094a07af01060371dff56b121a4f346aec5a981cdbb5c8c4efc501591240255282795dacc39f108b89d134183d31671effc8a246ae10f772490e7f6237cd3a21d798f17e6300ceafcd9abba30d97808d7e7a96334bfbdba33ab214a14f1248ad1db9b4336c82c1362c74a73349f9204161f40372dc8fe8133ee415489de37da096ce11c6dda4cb602e686546fa96571a63255b750cff478c00c2efbbd82e56c0deea6086c2d11841b93fdb115fcbdbf41cee4fa089253bbdbc580797ccd880d2cba66d2cb24c0f38f09bc1f2c525adce6edf452b6120056686cb228a87ee3cc36b9c35b53446c0f64f297df11a4748658228ec92ec3508aaeff99f7b8941808007171728482fc884485d95df3fd64339fe5c7183a7f38f8dad3c8e9340b1652e42061d1106bfc07fe38d91f57a6580a85ff5ae21657e6737cca824a3ae907403eeec5ea5e115ef3030473799294572819fa6bccf229a492071b5514fc9faed2f020c27808d39775e92c71585237126a30a67f4c7410fee955ab8d6c40b9b2d7df6fcffa5deac71cecaa5077168b316edfafcb5533977c9322f814f8dfd54f27735d3436e0d0c74368160153b1802360024355d43dc97bc68c8d6c3d46fcf0131ba41888c771596460298251cbb39d60b9bf8fda910ae9409a0fd43df83698bac7b20a587c2cd88dfacf80a16071500ee57e6daba6c2f1c6b2d2d6ed09832b246c39084220a7177f01c9557d3f0e84c6afa61457e3d6ec382004c43ba40e015184c55b9f03715a4d62d607a68c8d9ab2020faa7424f5089e9662d3e087c744598b6ee1ed2d758a15af7d331d3e97af9c0c36e49f3cae8909a686f84f823911c683928435d93c1df09f58fa5ea2bed0d2c14458c56d609d6f4abba6b3fcbc552871a208f4f4014e438cf55b9fd61888155823b3f4f1f115565d6607126ef5e3bbddfe6e47a291979af3479ad84f23b3abcc9d5064755b8ecc2001655de59f3e9656e48b07bafe975df8a88bca53fadf3a5c98e28d9902c73eb6a0cc6c84b1037aec679c3f4524c81bdf67fc6480dfaaf00b541ad071e44283a70e289700c60be9b483ef0003f8b0a594ea81794310d6de20c385cd07906fff617152f122de98784833f4d7e5ac88d7245e61fb62ec1529a8ed12d5d6f0e1d9b284e9fd496e2ebc44a03e4594a561cc42f76b86736ccbc8ef65ebfc50e971fa5062ddf3e5bcec54ca5e567ce936552cc3c2f25f62e826380bcd993c5abd3e0751da009ffd9089d4ffb95f52733a546b220634a7ef2d6d4b5167abbfcb4ce6a4b35b1c44aa30402c8c10f2b6f4708719fd2fe4f42de758dcddc03fdef01d79ffd56c45e09aaf52511d41ad49e4b469d99558b43b0551d2b00f6238a50b38f508fcb37c918e8df699e526609fedfc052b5252f855b14177330994fa9bcfcd51e9cf8fd4f4dca4c6161926d2916d2e03ff3d4ace4e417fad293235f581e6b765d3dc3fa2cced6814d670c88185f7bf67ef85f8691f19663990b59d5c126bbf32d1119d7b4fc074b28faa69eae8d22b3f0ffb60654b71df922c0394ce7870b85f2143620317656912b106f4225178328b7d95233981d4a7722e4d51d0057a6ceb6eaa04c6c3831cd022caace77f", + "0x15175046d6aa23e2b31eb54063c8a1f7fa86ca5eff07c963d4521d4bbb040b43b43fc4d70da6c50159856240e5ba556467d801e08a34530d4da5331b89eefd73213bfbf24326f76f4dcae119e91b2b3f41c1d813d39ff9148fc1ccc89eda49b61632fb027a3b44da26e79c14867790ebc687b24332b6486e83cf6aebfcb9de10719ea12304dafcb13e85f9264a48b86e95318b0c9739fa08165f30715b5f1ce6b3cb260e0991a57b36b24d4bb4d1f4db328c627601e02ac9bae41b98a581014a84e76055049158ee70a40606bbcac46d87c5cf2d0842353ce245867f788e482d2da228b44602d1b2948f33ab45d8dac25e943f2654198cdb89753651a74c5cbf1c5f815a72ab1a0f0c89e6c5b1d7a995e8f09e7923cf2dc0ac209cd9b94e4efc64f56658ffe71fb1877c1d204ef93fcc395d7470c75a8ba2cb6a0307683539173a00637fbaee8f177930254ee1aa7aedc9bda93b2670fce36cbad32f24c2b85479bf4b564168d7cd9a5aa84c2352dddff4c1880f39fe1a2898952b308eb961f41f88ce04885525cd63c4dcb441d794557bdcabfd8dfd9fb55c8e6b67fd9563fbcec4a76e5846b6d9947f80465aff717001cce521c58e9b6f4a3f825efc09be0d4c86aa10cbdfdfa0b12a990b0597e4f78fb36174156922b9f5570b68ca52b40603a4f993d2b296b180452726c86c41f211c37dd9c998cafe78b993dbd85a68ac816c1476af6268268c953f6ca21bdd91d76f22d6bc8d91f2f0a294a54facc7adf9e598967b1b24fda59a3c5382a5c52d153d98a5e17905c0fdedf7c588333415c19eddf5a158aba55e13fa4ecddd246d63141e4cbeffcb9f465b37ff91d1927dd20dc57161fba4468e914cb6dca395e33d2ec2a7ec30e03af2ee6868afbea9a24b836cd84eb10c94d01e27727bedf51b848a3f6f98dc213f2f5dcaccd6bcf858eea8983ad0aad8d802f120396ca17f76fbf8e184052e1060ae869dc3331a7594a2920102a3a12f02ca2e4ddde241324ecbb1b201089bc9bf25056833a383d3e8ef5ee0f1562fe90f0cc4963e0667d790ff7d6fe38b22ab65ccc7e78339a749d9856760e2ce73524b754612c876092c5409700e560adb28f9e1bf4e1abca6f160b501d6b9c00b710af4e9f7fac19cf8f93b2cd02719d1b970249d97db265a3958f6cedce03a573e933b85376eecf921244fc12215db35f1c55b9a0559266207bf629dbf301a1095e742a6d8d5f019fd10e010d73f8cdd1e09cf5921fb9f0a807e36d8cb259530cbdfc5b6981939a06ff7eec76a53f90d1160cdd1c4f727fd93e8568872f1b22932ffc130793e2835a7a15ee7688e039dd1942749082089c3c216c6e458e2cd69f7dafbe22feb93b071d478dc2227205f78dab063229b431abb4c3273ba7a15331fc17945ab9b4014800867294448dae56c57c43e8d730913c3ae67b8be770dc2938a06de1c2c6d561e9abd9d02304e8eb1d5bd9d0274400712efd778a4fe0ec48228b2b43b404bfc29dbec1eedd2addf11b37f262132845a86101a89e41ec41d838a50d8b02f7e845162cd009bc1be394eccedadcc4c220d6100672eaedaad013df0f7f2df8c9fa1e6891deebdf65ad39ea771949bd49e1ef1931f0f5ff19e568e9682ee7d0fba44cd4ffb6058a1ef0828947832e38c2fc0586a43b3d8b93d6e65f510a9a7a8d07751af6cab1af5fefa39cdf45435343e57d64df994d574870bcc7084b96aca5608ee1cd88f28899e7c75f1d8c9604beb4f3bf30bc19fa14cb9dc740544f278b5014e038a69c9d3f6513047a0fc46e288bf7a616707cb09ae709c7180dec98fc8f7120033e5c4dfc6beb258c6a218ca1bd779dea0bbd46aa68ff2102185e8c161212a2667496e6edf64286c4e78cb2ce0258cf96b05cbde7f1f394ede9e753fc342baba1e4fa057a6725e3c3b0cdbf1c5ab452f23c15d67596b1fccec117a982968f4b8358a2b1f9521a920179da688edbb8cad46f0fa48a7e6d8e24768ef673e7051e8eb617965ba848a836f05fea82eaf15f2f6b9d835b163d2652f04df8ea46606786499650f37a7f42055b8af5a9366b25879fb0ea3139a670da564834b6daeb9e1296890bfc0fa4006ddcd291dda9d1f32ba6822043cfd52c6f3799d44a5fcc24ca622ab81201637b7a01f8058f60d3aa7c53ca313f0e2d1e5210a70b5c62280caab728156b4c3bc2c3c7569598e5fc57f4e7ac1c1c7f9b6668025134341a9888bec1fc1a5ee5f099bd1c005fa7ded2edf2bbcf8dbac0fe5e023ab11a8fc39ca9c8168c278d387760e856b7fc15057f62cd69535035e28ece161dd824fcfdad7d266e9d2c77e1748f702b2d9b4cbe3a5a9ec831610f2e3c2aa5506122d06f8f548fc16c5119b7805aef3107e4b64b384a4b06c2a974f35d61b5e2ca69be23ead408745c6ebec403ed38ac15afac6c26ce189b04ed9b068e9c59fd69bd01848ee3dad41bd35c820d42efd45a49050bd6e817fca8e0e267a80ab80e1c27d501210f3fd78b3259721245c04068c31949f2dacc28027a414bcce3b2b639290a74c33ef66b20a6b5734a9215dfb7d0ed8291c4b23a58fb8b1cd637510a044992d71d408bc5681401a10f2cb496eb725982206639965a8da89e110ec610fcd4868af962d36494762866004450cc2483102698ffbbe2c77d3fc53c0a2976fdaa0d0a69197f24fa583534487ea7051d4a278d7920f50120b0cbe913947ebea56e551f1ab67700cf90dd11b4f56425b9c0012f68ab4b0db6ff3554e0b63de4b181bcc7dcc4b138407a95fa72466d4feb138197d6e82668cd0a29f0a1682b141b2e395baec26a438e84af575e1d07a4857878da7aa489b862be049eb7024eeb49cd2f68f55a8ced00a549ba33b800d4ee65da05525489d3b3a8a58dfa28edd2b20ecab2a915ea350198af0e7dab76b5bcf4f39ff707d5f6c6e6aa4166a300f3fbada6596db1915e2b89aa4f490cbf42e806b73769c01f6f9266458c88b67d71dec8b47281c617e2d6b2dfd23cfc70f46468d1b7a482b1d467efa744966d9cc22a5516cb9b153194212725677b3f8a3397e2a3518ede4b22354304b733f7b4978bb595fb19b91860ed9879ce546ad9e2aa2cb77e078a0365775d8055a89a6edcc2449a1e0c9aa4a69820ed0f9c6ed723e09eccce6b36b51a702861e5397431c18e10c262b9d254ca960b287c1141d932b6a3ed29510ec4d7d796fe54b7d2a7b6ec97ed802e3635ace77896d0ba3a6fad572655d51d473961500c1fe6f135778e6b45013b2d58ca2398ca6bdf57deba5fb0608f2e8c1f54040d70ce11f5872bf8ca5cc2776eb2939f61f5dcbcc459a14f1f7c84cdaaf5781b113c35937aa80c668ef5cda697e539891a04f7a39377fce6d4712db63b48732e200dc05a4953942918b7be33f972119844787c6bf9aa2da6847d44067d1c25280cf2ada4b2cabb050099c70cd64947e296f833c8d353d46052951d31b4aaf836f71209f432550cd59cfdfa1642a4f6b495e647d9795a3a48ecccd1d910c488b59c5206f553cad1e0c9fe80affae4fe72fcc13bf0a53ca8885e4885e01d919d5ce73ee3bd78bdf69c88be935387743df559f934b08a16e0bbcbda908f410feedf61f1c46d1da423a55d82a1e18543ba399a86900b5c73f4b823ef04130585208d1cde3a774197c5f536c91b5ad104567075d75cf97619fe9e2eecf667f71a77904a03fcae185c16dc2d35e5f7948e2c431d05a3d4876af89ef1b48833f01053d414fa1ef3e332f3995fa4a76a7b06a341a7114e46ccc6e551d683bdbc51f2b7030fd2faa1eed535f56164dc41a5e2799a94b2bf2090d957bb15a416691e5add6f444066136b1e7bedc6fe50c47d25bb6b8d08ba81f92b9aa3dc0ec4e4d5b62533bab84d16439caf90fff7d82dbd880b4a866ebdc98fa10992cee4971a3775773dbcf6e8a0850fdf8bc0a844d3d80ac9f8b44397789ddb6815e3be8e2de1481e30703346ea6e84b657a3e310cd2b681e7dc59a3f8bc360a9ed53f1a685e084ef60e207636e036b4309de8964e1a5709e0c9444ef094661cb172ad38fed6c59d21abcf9bedba3d780c3d5262189cac85420a99fd8437df9381c1d39b516638ed7fe393fd733591edef4863fd649dbba8a948f98fee0dd9ac55d520b04575bb1d4d7c3f07fb2e44c296ab04239caed594161bc560fc92a8337b353102716a5dec6ff7ba798d9d3c72fe7ff2ba230545b66c8b5d5790718f6dc5d9405f9e2cd60aea2439d385146815ec55f0d4cca518d4f42f42aa1ef322e607370f2f4b75dbce68433dc6129b8a84668691e7615f5badd9d3882231bea1009a5b88fc2cf3bc97b7b01492b8d2a10f3898070b1d953f17adaf71fae6e4d2fddc1bc5baa73c725d4a2aa601ce6d16a671b4a8c432d909d8e2311a486e4348e0ae4e34b455928457b69db8cf01f6355ee32a201c4557c46952579043912e1e3af519ff3987717e4d36891332cfe2aebea6067b1fed0e0567b893c89d26729278194ffa19bff6caed28ec1a570d00090a95b282af37de50a3354a388c9c9f0cb388d7b69932102f7b8ec7c8b362245411cfad176a255ce5d7ccd5162375ac715c343183354d80463c8e2e261ac93787c037507ecc2a83f35ce5218716c5e0dc7611fb6faa2db0ae5bf2e6a5b2138a49acf59ecf33af2b959eced22b01b71518139891a9e22552c952a999021d63792066f3300036925607dc35fee7dc08446df647bbb8333cd4408c4493822fb0683b4161232feaa247f346af73ce708a62ab3a1f657cfeaca2b8a67a14c3054606587f321e2f1b2470d0c735958115a394789d256fee28653a53a3a4326d5245e278929d687b0b5129a983a2bf8557cba84bfde188051a870bf856424876312155683d9c0d0b66d53eccbe364348ad12e7a633e21d46d8ec2b83a874f5cd0a20b641e27010b433524935df16ecdcac972f6e153752d4ab9cd9488181b09b6fdfe17a3b1bb11031dbd8b520c91ab4eb126972e3f70e192d56cd96d854e66d3ece102811e4c018ad796f2904bc6ccbf84b3f8cdebb1e4cf90e5d1deef9aafcc4affd7339d706e12caa4b3ea2bff41ab0a031e0031f5a755e696e6a9a25fa61081b5c865843b4326ddd029dd18703417c83f1252f44e4b6304239e097ac87e9d6fd9e52613ae9ecfef7eb787f2a80aef9fa100d025177f2a229dad1c90820dac8140f09ce144962a7d159d3b0a5d0d5d41e0119f9edc01b6ddfb4afd2d998dadf753124e4ec9e24e2b7a5fb6159521eab9c608e07c7cec9c2dca66dbd6051d406087e4c1d2192f05dea0916e18a629e2c379a4bed0f8bd99cc9098d190243754e06668cfbd76aab121f4cb34fdff6ddba44d3a63afa4833a1068674accba1b36481aa8e2474e6a49aff37c3aee5c523472c2aab9f4161058425b5ffc5e80cf56fdc02e19c231c8fcda5e96b378cff0e41ed444fb5a2de05166d9470592c4fbb284f1375615471de3723e88fcaa8957ffc9a2f7fe85e3a8d5358c72c378caff8c664b3d96a3a9e83edfd0f0df071140f14d68a1390b9289cb015aaf026a3d16d1a7d84e65a4bc23163ab4dfe35030b9cf35d0a10807e751e8e0734622d2f26b3ef4bd8d3b2c488a26d1c288abfdf03aae47c43c39d79f0fc3c43aa2dfb92ebcfb558e7f874235d8a422e1b087a690d98ac94cba111fa69d0331622165f51be80327f57aa82abaf2e5b37c286be68d2ef0a9ba6f6b458bf47247dd3a39799b98ff56e12f3dbe349d0647fd2fc1c88424f2c9a05c3426cf7926dac3b5a8cb527e0252b6c212417b35bffc3e5aeaddbcaae74305567a4126f6501880fa04999c20f358c996273d6a411e7b414948c541e06da0d9cef6bac1561312cfec2955a84cf00bd76e68a728f194a7661c3114b8e916678291d2f9eb9fc026843c118b40756ebbe9d45f6832e307722f233f1fcf23960ca9387ffd36437983d0ac35b83788d7ee3cc2382642de4c6441b5aab0724e100f1066fad36c9aaf3629f6dd84a14df3f529d48b5b5db129d5d3a6b9ff10095a1eee219dc3abdcedec2737a6baf3abe748889a8a6d7f196a46260529fa209ebb857aad72f53c87f01fcee3bc1fc0d55bad54318a073655bf33bcc9f1ce6860613d64003077bbf1a4ae211fabda0a3f47cdb5ca47af34d44994535fde4ec420b38a7799e40ae71bf9dfae85077acc42a8e133ac78608d99f38d1e5f0ebcad1fe0b1ef6608c6e648c6800cffa0e573e9f52485cf71f224f11aba2a5f9cef6695a511f5454a13fa0e50d627fb0a27bc21a4319f647c0fb27286273744d98ce4ccfdda4ac57812c8d1869c3f80890155859c67bd215860d2f15276f14c5c312bffffe3b6224a141dfee86782f837ec85b8abb358bfaa217b82f19b764beb064912ec3853fae650e9302810e9023fd5b10a067630f80189ce33c4fe08bff7acf382798b8e5f8e82afae4ebc2514f0437bfd0d9f4794e7c63f3aa4b72f2e4ab3d77e0f81e8bbc61aed76a990799cf57ea68eb452c38ce3af8ae32886a0d645400949bb0940974dab68caf88046a2698a6056245228078f42ad890b9b8f8ace74a2482900c3dae1de454a1bd136b9fcdc2552b6a4317501f8baf4910c2e1749db46304530bb2bcdedd9228624477c65a3842de10cd683c0bf388a8a7df41333abb1c7ace2ca4192fc92c3c03d8002e8f26cda8e955ec40c5fd6f6d88dde8dbda3e21c8869b4c1f42d7f874f4c643af864d92044242dcca1a89dcda207cd7dfc802530c249a80ea59b739f2e439488e9c95d74ab34f3c8f2b387715d8f1e97e6a2e3c9252ff9f82791e2ba1780fb52b7d872d8a7c0d30b38df3ed076f6452b41acf379216b4d3a021469e39495c722eccd19f3f785ea1380565d83c3572e34713552a7dac369cb0ee6ba6810ae51b4f68c675d550fc36e9347cac60b4ab2ace9a14cad6a417b0e3674f55aaada6432f91db820951f09a397cecc25d59155ba157c477e0087d2a73b0b687d7474c84e6962b079def1b11df6aac6b44cea7071d0002a796fba0096815ebc12430bc632f46f41ff0ffb05d11d07612712ccfada69fcdd6c2784ffd84a33a1cb9418a055ef718c86a43b8fbb2704b73a2eaed0f4d4f091a248a6c852b0a733fbc6e83ad8a019d68d5f18da3d9dceedef16ed65f0890ff2ff0886b6056116e713ed924129a562ef902b15f2171b2648fdf785139e56bdb2c2fc8d74903d281b16577207f0d3897b06e5eb27bf2d77a0ce52b9d6ca4222db2b352ce08a6b10be571e0ddc7c4474c45afffde6969df3fa03f5fea98996d69b7b13d80ce7edaed136a40f7091cb3e3bde1288e1a42cf85dbe4fbdb96d25567e2356fb3e4ed8b0cb58498bc3f0fda95d16d2a414a9903642ad39d0ab3d12ee36fff9d42ac1e27d10a9d62afa24d9fc1d8c561cca908b8b878306284b86487feab7ebe99eba34da88f476606de66816a4d041bd794290f9ee6e8c749cb62c9bbfaf9063b6ddfc08472570e2c117cb8b4db888b5b18481afb8cbfcccd125bd083701b333dee4ef25a23e7d53fa21ed76a02f78f2a490079f55103fd7a347ef6a2fa68b5c85c185ea1ef357493e046d87b43380267eabfa577cd59002c9e4cf6c71769139a666fdad8aeec462d778c1779e463ae0a6466e9b23d524ab3a0d386882076bf8657aeff007f9b1a48af0a6c183fae275d097d3d978bb2f9555a83c7dc1f8261ef473cae1e9182d9d4829a81b5a1c10081afc1195d5fb09d4971e7679f3b4da6519b9a80bb05f8d8f27e4c97cdbf2235ea93fd460145888c3c9eccf611add05ab9ce33a964d9fc7579764cfd81b282e3df926256c1e024b3d0069deb5749e0cf4797c5542ae1d27174049907198920d3fbade849a033c8491968fdcbf9994440b350802b22d7a507a2de38ae7d699ca0afe2654fe6efe8a51e11f5466285cf39c6bb35f4e5769904f5f7d7bebe40ded8bd505a2d9dddb5755ead2a3e64872dd8dc0c31ae12aace431373f6568b03f2babeb0aa25154ff10d48dfff7cb17975f6694a92afc8c431d0d8641359bc7efbd39e1ac39f60a51617c1aa954c63ecb85a71fb46772cd22396d2667db2cbb7a32a1b1cdce0d7e4fbd2a2af032b740e17450d26faeae9f050ffc4f9b29256dda139491f5c769359616838344cab472614baed9d95aaabbf450b24b87c289fc7418b10218fbbf44b211ec3ffd6ea1e9a3756d1a22efca3d995779c582b140c090a62acb72e111ec5f133f7047d18a18832770fcf77940663a5528c80a381a78ee37c2d6974f27763ea127ddc6e405df1100d115612298ea567e4866621c89ed064aff551b0102b3f40e4730f80ef426d3774d392584bf7bca430d144de80c49222b93c1b9e03a8dee938e831a14725772f4f69e67b8383539876e89b01410f3528818f41f2e9223b1d5161cd92ce3c44847577e60f05776efbf9f84488861894f99c4dabd98a10d5d9be571b1b97a52c32b3b7db5c9f9c4acb1165540bf39e79c0d4298f6526add8f092b78f4864dfa36a42779013bdbf485ff145cc90a2039d8728abaa1d2878523d0060338b0d4ec1ae9f186f3c6031ea9fe0e31ed047cd33a5b4afc8325cb473fe64a8ceaeb9bb58829690f07b0847dd70a03e8194ba2612b7b5e4970b1de9e685f6d8e3ff7dd2a2392be95a065bdb19a088870d27d05d5bd2d64dd1252c6134acdfab79258ea375a354c0cfdc34c90dec84a7b5eaa863c2c8e6c4ae858eac36bd7ed3b57970220d924ec7aa2d8973d9f276b60594194f5aa50b72b12dd21c9fce937447eb99a76384ac4330f20e3e9c1cab85b6a679dbf6c28d59b858974a8ab29ca7a1b16b6f1af2398e8b234a13d1d2fe151023ece41c1e5eca6670158f24f84ff9055ecc19f2fb23961d21eedeba960e1e1c8d2aed82c48defdaf9988c5eac24e95e137d29d382de5c1b22f013e1c84289a8b7f59d21840642b4f2a4a3b1cc186deaeeda8866e7b4777ccce1249c33daf619fd923cd43bf7146a58777bf49d746eb4ebf3023ef4fc8e394b550cb2aa21370ed0273a896f9007f2d32d7f3f591d47e1cab5c68cb470e1da7d1dc70252e0d3cecd58a90202e094b6c3ac60e1e0254ac8ca84ea6f394ac1561b36d7445da08493bc4cbe2636d587dd1db88f636fb03bde36b7e5c68f5a1440e200c1d15ae4b9941f1754e059b87ddee462c49e72e0d36f1a4a139c687bd244304e8e825b8915ee4a99688fbcab6d6928177adf04903e2ca0a2351d36698afc9a584b9c898eee50211c9e09d31d1c9dccfd701ab6b89d7fe856ee23bf49de06647489cc003bcf86e53fbb2aab6ea78d917a2931970385bd60c8474e6be1027ae2b4dd35f922f6c3c96228f5106dfd1a15c66d46b9c07f1be5d02ba7c9bf41a13b33618c97ddd7c9264a764207ba6317c96cc622939a867b37e3ecde137a780b05f33142f45497d984add4037693eebd179f04a9feb58c0695c6bc13b06099e9a99aefc32b7a9176e03d9b1230010c7930ccb95ac093f5967484352af3fa2abdad5640c589cfd5f8d4e6c390b2e1fcf836f6beeccaf419f3b736d2b5a5fac35626484d9d21aba4ef96526bd93fde519ace8bacebb036c6d7d92373710d47942407d043b3654cf553e82c550138e0731c3c586470f619bdd2e2fddd477d35dcd017e2d3fa8fdff48a703c67e7d03b1da8974888e434a831ed2e2838ecad037330b04bb380ed517d38222d2bd58f66e025c959ffd642fc4b264e9f8f02612e418193831a075f6aa5e198d14faf26ba9fe4480075e0d102a8bd897d53d8104dc4f8842948b2a0f1325f98b426b696761190debfd89734e6d94dd81dd9acaeb18fa26fd5fcc42ad61e20180f26d6baf04377d876dc963ebce1b64a8ed789b129c58e3b37fc6cbd1f183c849a68889b9c13237515788e7039bbd83b5aebabf7e3a250aad1919fe93602561e422b432e6db63c7917676be2a0d21dcdb3147b3cadf2ccd4cb0806297d744ea869527a62d532c42b1ba98a9de487d579ab3713256b9858246e32fa567238c6c25ae12f9e90e596325efffd58eeaf5ecb739b5c25fc0927e1e0e4929caccc70a96d83140c3bfc4509be72e0c954122278a66db4bf68ce08b0ab78c021b8e33637ad07385dacfd3c0c17ccbaf955ed5c771f3d25e1a0067a99464b79158ce4285c09df49e0f93e3852821df854cb71bbd3497f2f5cd6e10074c63df6dea269416fa69f6910ff6b0bceff386a63f042c346a90c22c4e326dccb4f34ff89ebc2f7057b8487fd4d04b8728f33de5c41f80de7029e022b15ae01a2849947c0ba70a23b39eb543073dcd35399ebc00b6ba15373c657068416e66c9c92d9dae199aaa99273d5c4eb8a9b3ffcc97dd3af413d4504413b9aacc151bd81e0e5980e53db89d908691cee3f3d2d7535ceefd2f841372fb1b1fb5d0404251a9bb2c232e121a6bd257293136e9176b7a805dd4162159ce38b0661891c29a7cf8aba9668fbd0eaf595dd847ccdbc43818e0b349bce964e8d20eab1e0f77ca6a7ac7afd40cbed3f2fb23d2f193db301cab11254264694ac4552f0cf8d99d1c36f02f245c5fdb4cb24f34705bd7dc4a84e750b67e43455811d4b126f5a078c0c38ef28f243c713058e15568e1b710e53f0cc2e760d5111c0c9e52c7eca652779743ea5933aa22c96ccc5e8d6503a0423df62768e6b77730e3d097c1feb98b0bb5fa5f6b7ee89d70e84fd1e71d7efed79cbd722f545751e1ff8582931d8f5485e79272ce587311d67859840050ee9677e97fa366cce3b26dc1a6cb9653a4fa53139485ca6bc40be51b8293772ae13e0f24229f88642c59361803498ec3fed910b525d20a864efac5eecc3127ed8271c5c0bca730e3308e2c76f5e98aad1cf68d51da615e581718eedbb3d82169203b277faf0f775a3b183beab386c0207f09eea0c065be292853ef0ea725d21dff08f025dd3975ff3025cf6ea232b2d1a1437c7326118fc3f1f4b7deb281eddd21b71cfdb9fa930c41c445c03a0d4225f2f4d064aa3f5c1b5987832728763d13c086c2d31af4ab64c34892352ccc412ff358eb0c96a9f633e0d3b6744896e4fd368699eb4c6d8d9ccac6ba02a98416c7ac2bcdae52a472dec7f3f2faa64a582fd53a2dd3653766513d39ef255eff37633e92b94955823146739e22c2eae13119f742836e8178bd84705cc7fede5657b831c4525f8dfeb522f58b83395e3e44b877f5d2943ca434c6a65113e1a46897b1c12099eb3b05c16e7e606bb3720edef65e87a6535790c683bd17dce82e9317bb93088b426a9b93975ec482027f72176678b0a0c016b1b667ebe966772f797585f2b68f38789451313d2abb9c8d21df4dac26d489052e527c7c6d38f0278d634b01561384ce1ca50972b93b8d0c49d8c832a5636355aa65a462222a8d1ab6e6c136bc2826e1a15e48f6617dcc664047077244e181087ddab450d6346103fc41fb438ec1173df77fffc2480f37e36d96cae0d2fde9565ce0d4618ea5fefbd9f4b98d8d6d33f1a4522bf10ce302f154410a2f2a9fbf0c4ff0bf2ae0144b9a7ac715272882324b359350ac5334b0e4b9556a17ec08e3684bb2f56b663661f1dfcd00fc4a0d7a90890b76f039571a350beebb9d24cd6a919927411ffc3f9866d812e058dd0a009d24afa51ca100d32aad4fb58eb77f88789d7cc6f6c435a5eb6942d7c505db85cbfed6dd20a7253ebfc9193053e431916f720b6a01dfd47c55e7238030fa2dee5b362fe8cacbea9cf40d590d64202c1ebd7cadd7b9a7ef11179baf881018ba90be8977fb245aad669e7212386afdc92b31673d5850145cefcfaf05f34581b23de99fb29546e2005ceea1adc44444c53dc1f7ed7267949497d4cfe3fce7de6b741340427f2ddc09686fb0c50ae2ca33ef4e7929b45b2703ba1e4ae734965977519feac2d9f925dc6586f6446812184afa8781b3bb81e1936e98a319720f76c990a74f02e4b197c1a0b26357afda96615a476c8253d9a939df35a9b50f8c8b56eb368501207afd8a79754b4ea0816163bc45f0b26eea8a39380d76428f9e8587d6fe85382535be123740abcbb7e0c32dd62f69c755f1a02b21831e8f15bac500803a700c9cc5337c7d94f4ba649d3ae90aa6bf7e1dcd4dd94e063e8c3ea1e29dcc76e65bcc5f1340037ef03f92bc953f93160d90077c8543563f7078178e7866d35a213bba34260f53457aa2857e33b5057bfc774d28dfb135dfa4ff090339c47de61a0b80dc4fad7fa85aaf03463573a16cf8741eb005b33d24ba965e382b4ca3c52245a402d7606999992030463e9ee518ba4303e3c72e2f86168fa29f9ac3ae94dbc22193ff9fec574934b2a4a0aaecd88ee450ab52f57c386bf558f33771d138a0bb0aa74df2157e203bb5eb425874d29f8439cddf71812f14605d57c98e957d4b4066c1636441fc5deac0cd97a6f99df9940d69e233bd9387965bca1ab04519ae1ee54a240121d2d40d5920a9ca85c9f6b49652e8067c263391a7495dd11735cbf6079b3f541239eecc13f77f3761b5a4f185743cdb8152f49170c8c6f901807ff00f6937f95646fc8ea2df03b28b997e7d7016f4065f34ad238322f37cad16d57ad3f6cbcad8dee5f52611c036a48ce1bf86f6c023928f2df6bb9171e1254ceff182893bfac56dc5db6c8282ff01f1a9512c28caee026a9e266adc4a352a2d1357929da4ea8b6eb175004b8776b6d5c44df3803d603f0f52df2f4de56ec48fbb941cbd166ec22280125148fe6cfc093dd38d9b77e2ff3917ac0c4b65ee4c6d751f131eab30d848a35e74f3e5beb49775531dc739f9032ee64d7648ef4627e8447ee2b0419ccca8ff3654ad00b4cc2fa68365dafa57e33e1eb870a74e681c65ce6724d7f2ec54e571b8e825afd763d661646f803f2d585fdf4f6c822156bf8b0008aed11bdf660aab5fa03268d6e591a20334a4c5922ec5ec735daa0f7c6916d6b1b16c04411bc5169155908e98889ee8ff984c4a3996eb38feac217157bc6817f08b916769abc4807c7706f979675542e238a140de6e2e4de8812b18eb81ba69a58bc68bbdf8ab101b85995ed58a7100b3c3d08c8c0b20e261ac218935ae6dc9c75af2babb8a0e8ec20f54a98480066fa5600df785ceb5a409673a4e994c6a76b783bba971955b9032b03cb16acb10612a28c87b69fdff8e9cb13056af27a767085a0b200765780a4e02a113bfeb0fa2e0b99d18e2fe79e40d9a0d684a3a4441939d2df1df344fcd0addf42b0a4e2f06df4009b024a04f04a341758b81c57b55524051c5a6ac1a7af7046d26ff6741db2f85c4285707aad6f43c7131c058d3c1b59bfe3d43bbebb0a1a7c25499225dd24c03f3580e29fd3fa859546da74dc0fe306be60ddf0d863cfdddfb660056bd2afe48844d0e773a09c4ce762af8304a92b27428c7eaefb4191f342d5adc1bc1682e67f8546ebc309e9013e226c272e9ef33996a8f077a91906e71f657b6473678f30a9ea2665e957d902c3367962fa744112dfb92241a05e87783b46ea4cfbea0f2d876ba8956a71490746d44dc2b7de9eb289d637d1ba6d930d514b6d825348fb69b9867b0f08e3781a70f6f72d597d9839e81f05753c6a4cb1ac034ceb125094cd2b263d1201d78a232d80980408ea3edecff39681f014f8a4d4f023d36d63dbda477104b598fd08fe8d0ee68b6b37a7fc4970aaa6c7758180a42461c1f51a19065ae5d8e025e05e22a59fabaeff926b32aab23411dddbf6e27baeca9f0d6c59199d20361b38375cde1ffc440b15fa288b9b53d95d0d8b08b362b0f6304cb1e9a89d288f209ba3b61d9e2823525430febcf681745b89698eef446fcfd64687dd97e798c64e439984c20a024ef4de46147573c6959d0e230110a83317a97e648cac2f13b6df6c62c38d768edd21670c11b486eafddeaf8200f57b5ae0db693011356b7eaaf377e0d197377a7f18d9afa33a00b523345737ce68e9871276d3e2cbbb871ee36b4b17f5584faff6c16fb8fc05392fb20d6cd2cf2f4088e8570b62ddcbb4521695489fd54159f396a24e374fdce4ed090b47930fa9660d7391a06bafc571d4eba119d1fde383feca17fbbf58e9d868b99c5d7dbbfe6c211609a0506bc3d1a57ff5e4dd5faa568c90e64e46d16a59c50b774f4aa5e625d9087291b3818da779e33daf0dce21467df819be79fe6cc09678d43f04c4f2e68bd592ac43239f8b449a5ef60c81d1583ea8310a9722978f012e882478b271d297dddb00a6c93aeed11f2bcf8997a35e525ba0bcf207083f5d92e0f43a2cdf4c84d44d895aaf8ea7ac5df10f608ddd7c065d9a02b07b425be9b859e2af96e47f2640b0667052e9b76635d4513bc9a810121134c430cd29c46aed1f055974e90c46ff17ba49f7fd2950fbf5d2e4132b2a206bd010cd540e1f8e2e6226bff2335122bebdd984243949f9f972836a162f220777df3a49e8c9cdbcae7492685d99dd228224da5d25259e70eb2bc7ebe45c0cc1d0ec3c5367ecfca954c31caaa8be03f02390a58088de62098260b61f6f02080e29fe410932f89a3d3a94bf98e8e89a2acccb1b51a198619be119e797116cb107c8416b2cadae4aab2f9a8105d85d5efc7d40f42307326f992365095a05cd35d3060d2d2cc26ca27336578b38565487c4895b5cc015d9f30fd35de0a9ebb7cb0dd02adda75f974ac6054f9613e474843618458cc76ac03399720862c448279285297a4c5df317cd3b8709205f28eaf05aa6e6cb4c69e34999f4fc07dc0316184fa6dc85bcf5e827265be50a496c012d058241a2fdbada06a043e19addeaa70e4ef0740c825db274c752ba96861f5b3a7a501529b7c7c025a3bbb302642be2e7d5463533ca29763796f44bdb1e52abbd3788d6be4a402689dface5e5c8dbf3631df8bd6709da4c2657fc8b2e9e3b0a4804f4f4908198167294dc45216f730e4fdeed8b8a36f4317c3cd8ac2056b5d449b43672b823852ce37702bb623b4dcef1a01e77ae3d81e0286b2a04f858be1c515940c8e2e484b6a1b74cce70ae2b33f6e01881d9828fbf6f3e49bdd612f9a975e3da1fc19d52eb8696da05e93bb128c36f7ef3a0d5addec762c15bf4bd2a8a14971fd7b726742e133a400f7f47e69e903685cebab772020f69cf0d9572bc313d1b0058887db064750808ba06aab732b6c07787de41f7c061c3e5cea83e3e2c724fbf3eef9c9258780b2ec2d2be7466f6c431178f4357ae2a352c5a3c84e15c9f8976d07092e82e0829a26a32c1516ac83aa458a87336993aa0fdec25d9fcce67578ec1cdeb46eb41a6cae717b1e774e26657b7c9a837d7fbc067d997c589162d60484cda8a83043f56fd99310db0ab86b0e32df81985a112dcade8820aa540728f3897b14b3a090f0a091800708e9b54ff769411994b81fc97c58df28b13547c41c46b7fae4a549153ad09b3844441a1d7513feb913ccc803dd9e7cc96ba6152c6a93c5ae357d1207120d2d6d7fba197694aed355a0c310462ca94a0fc23257f31777ce72b47d14344880a1dbfbff3a34d4b068107f453118fa8536a6bfc3436171044c483c5eed18984ccc9f20056ebb6d129f791327ba8d23b777c7a97c3be892d49ece5c1024226a3cc8f7a121ad27a6d0dae83874b28447e28f2206bef4564d9249952ed28123deb44e53ead9bd26a46aba3d5b794e1711e7958ad92a37ab2f3e953ee42d47bf653af1be76da9262496c0c2e40c2ea85bff4577e14a0895ceb10b333079f3e54a4850c4ab537d05a7299c889ad4e2f216b7e963887483aba118947e1a9325c7e72c912b6c424578bde13c26fede6e5c7911bf47b81849774c85aa34e652fee945d22af5a4833b077834c03664018b972e8c7384f4df7bea60276a285fbd5a4555042023dd414fc1ccac20655c9609286fda29209097dd39bf8208b56ba0c5dab6fd8711be0e5d60b366449b4df9027325616ca303b30f3c1bed4b3fe009ec4c59ef2831525cf78bef945b946a0b12f8aebdefd264c96340291552ffcbcc2120717fe28ad505bf7c18fb8eec49b3a0c58f3c25efd1123cbf7378a6cce101f6d63144e8551ac44b825376fe07f658447a5e609d636dedfb85e5eba8e67c81d75c614bcc2ac3baa42da5710f6bba692a65e7613a107a5c8840261544f3066cc970db96599d7bea4822b36e0b5e4dd5949705a932964385588201f1f3ad31a527025f983e47e7bcc7cf4e840ef6359366f9f856e352c13216b132501c018c547bb18bbb878d367ee99527da45dd771cc0b210bb72f24d52ce721a55af8377635fe7c9dae9aa2fde671591317e749fecab7c59df42c46076b18114f7239568027533f4c7dcc8017136af605802284204dbaa9ffc333bf15464075f82bc91a82468e5fcc6853167305b7483b5c911e86b71007d01b7431048e0e1c6161dd986ff0312771072e472f6560814c3f6421da8e2a15a11b0594ecee373962632a102905776de522118e5031e38668ea54e1a4adeb547022988b809f3e296fb66cf7c15eaeab52b6072097ca047b4390af00c604c8745dfd3bc9140e8e44d2f2c52ee91ff5818b17201f1e8e237d878dfe58a015a3a32675d19715b147f0432ceb4744bed6324ed0e4051b4a687c116255d22c69566cb8b8f2c196aef588dc99be7c34f7e38bf5a27ae70b0a23026712e854c4b1c285af3433d2f1e5984338a5c7631eb6734876a85c850914be343f9002740b2d4797a7a2611f54e69ddb46017a79a34ce5773013469b46d2cc364b4025a431fbdea17ae47d94a74d063ad0d293b5c7fd8b288f8b9dab842cf2541bdf8af243d47002a517f2e8a2ec82f63a3aaccefe85541439b2428776f351646c0557275b7c4d7f2db9e473ebd93e4740a280288ce71e6cb2be2738a38e09e3e80d8caf7c0e3d882f573d3588990c2867ea6123255787ad95d6c5f6746691cdc527af1748c3b8b0cff9a20469ad6baac0efb5398e2aa1c27dac2cd2725ab1a209fadb9d8d4e8e0238b217d2e216926fa1e71cd7ea3243bbebdb58acdc5797eb866ec1801563a885cdff8f7c5edf60252e6c0087805cf02ef1800a105faeafdf4b7968029536d16db7738ee46f72ad74cf0559b1d3c6629b66f326925fc2e291b3921253b107a1d5582300e97d78ca0cb9ee5214dbe8d437b3b6d9b71e8f88584a5938c9455f07eac604cba214bf16c99a155a887c8f4188768ebedbe3c777f204857fe0bf1e38dca2ac5f5a5b77a814f83f2b796d88aa84dd75c0a235fdc2caa8555ae0934e9d19f2a244511a029318a1ff6850731c4ceabdd10e4bb177730205166bd9773217d355e952c8430fdc45e235efce15aeebf84c2f0b88a105b31d3b50e692f8757e78dfa0936c8b6a317ed9512973e9f94c8bf434a47ff5c99b1ad508f04dc4e2ca0a9e32aa9d222bbc6d94b5c4f038ef40583116a0217ee08432ed34295052953ea66341b5f6a8da11b7871ab0f1d7c8208ac500650e31e9f5ceb824c2cd67ddeb119bd0a5caaafd50d6d07ae6900fe7d92f3197918e12858525eba9657b6329c4faa7f9818e667e7009f61b688197096e4ddf8ca33cbacaf3121652144ce3782abc13105a56737f81f58a5719a18719f4a956e8d7d782fa984c187a06bd2fb2a9009be35109bc6cb789b50ee27b56555da10708599e599683dc8b56ae7a3f66141d0c585bc7d5c6838cfb2f21898f2319675e625b3c1b65a4c9d99b7c2751ec0a76e186a8c936947ab086da35b99835066742ddac1b4b5eda27b702ee6397258a3a83de31037fe15e378fa796a63c862998396201c1dacd9a4c08bc47611737457dff0bf23d5520524b3238b2adc34b5df36e474633111f94980d1ebc15da66081559faf97873eab7bc88a1ddc677e43f2a4d20a134b42b1726d3c1111d813492cf6ec24e88dc272237e2190173821dd57be8b583b9dffea30d4586bfec7c92554062f0813567e9c9036b090105edb59fab4307134c2eb9a079ac718250958b749eaf239062339cf537f53a2994431de7d18562f515a0eda62f6bf8e46125593e9af73e54ae15e382a98f9f3a18bea2f8c17852fdd6c558ecadb8a573f99d940f85e25a3d8657a3ce2b1e68627fc901a866aba9aef5b11a391d8052165c0026535292f6b3a26c0b7f51531a5d770f2e34cc8e5c0dc0274d1038c211b28f371fff773eb576f7485cefbe147a8d71ca5d0156a6c83500617f953ab66a611b9cbb6655d6838316cc34d5484660f708f7eb8790fa78f5b747708cdf76b527acf393597cfe9f28a0a9a9baeb123e6933019ab32286269fd91737507765f2c91cbe7943b6c64b7e85bcb374e1de57a7eb756a439455e45f51ad04525ac835d8e5f88dc8c9b04020c483bcc2ed86765e149d65036b7cfb3e347b5a756abae192b1fd08ba7d1a86d8d4676cd69dd3add5c8782e2724cdf1a07a62f1a292fc8ddb848f93797ad6156d6312aab7ffc40603cc205f5c5742a011d2bae25632b4ffe71a93f38aaedf84bbc81a790660432a9b10b4d8224ae402832f786a46eb7d585dd2c6462de546554287266b580cc1cf607870ee7cd0027776be5709b93647f6360082dd7788559fe73fd7f3ddc7adc9e89ac3ff7437ed7b4116406a285b288e955bde2de1a85b543661d31aa5e31a6fb11c29a22812abb126a0b4adb0584bc9b495dd2d5e516113cfa785edabd1d829b85d420a91e73368725121f7e9b2bfd4d2c95cd288058369f59800c9b68c2cdcaaaea93df5c5c1cf8700dceeda4e6c2929e05a8610d17a417b5fbe5c7c030b4691cfffb833fd83535f061836243639379aa57bd436b210d65e43cb8fb48d7bc12518c22223050bdc22d6ace21e33b8e9d864e68f84575d84ef876f6d0a7783d91f01a1888d845e773499e23476229e5833cd08b4bd5849f66283a35b2a2dae2a7f14faf4a271455d5eff75a1c180b5e4a4c800af854fbb19ac6b5b13a72be2a273a6dff59b045a267e4642f023fcad1a5a71050048a569198222dc62612beea53bb14e4a5dba9d8a9a859c3e8828cae309edec92ee76375ff86ff77d46ebcc99d44637bd2934efaf3097d1958b69f740995ca666a2230c862babeea5392b0c3a58625a9fc66c87c21a0f49a08f0063bc1a37a1c6b4d40a81cae12ea0733b6a79400ff948e4bbfc50b8711920b93972b9a70616542c3fb68f0449464d6457899c1d1d727247b8ab4d4dcfbb08303230316e6f3bd0b7d060f7d5b5ceae8753c90a8a9cb927f15c21801cf828aed094093d49b7126a99febd87f7cbf33fda310d9305021c88d7d113763406617f826e542c20c85a48f54e0b0e6ea919945cfdd92438087007ba24148d5514633ed592b8996f4c9c2a33f97bcb2eb5a99d9096e30b20ef135d7a666f9c357e41eaa1b3f75a26ef90c262415d0aa791157b65ac5fa6c97efa6ca9758e9880688fd2790bb29efaf1493af8a37f8ddcc57174faf878b092b59565a26232f95df2a5894306a5aac76686c3e7a26f3f55faec5ad3e885499b65a8dbc94e4d16b29839af96fa7d1ee88ac3152963ab3595dc26e23000917d01fd655bd49a84e6cfc2695771c7bedbedcd37e1834f9de1f9ecec58817a36d7a4f10fe32bc25156d2ec7fb0b7fc91e77435b75a938a850d1a4019f0e594b4144a4409a82a8f00b2627f1e6ea7be06b72b2053b54d2a397fb3dfe779e466853cf87888134c2930a6be7dd5167350aed0a83fe78fb5e107593b0d7ebca2879b7192037cf9853435c36cd939c6bf3bc52e8434bdb8111bb6227a85d3c50256053345702e17b7d514483de070c8251765b9ef54f944628fc08e24227d22475fb6449b30bdcea085275f8a4fa486df54d5e9bcce9d9b1c635c55ced8fb6191c5cf9f2b81c2608fde79962e403dd5050d2c466d24d61d1c31a2c42f6c3170bc49277e1d183ebef6a8bcbfeb59fbb692cd08c2f006aec04004184c0030ec6a09dbd13d2f15f99ac21321d95d216b756093cc6aaac00b9ba13a347ccd4d1b99e68bc5bd573f6643b3caa136315cb07f18892194267170d3c699da532f8038bc505b2aee5e9e3c3a0bba126d681c8c9b46eab3f929a9bb38913a3ff7b6379fa423445bfcdd895f10c9fca4316567a7cb9f328833990507748f45e6c9e131d68b25c64165f9a806d102c474960f40a843a716349f6af33aabd0236378021f55cad8b2a8ff8dff17ae0588e8f30ad44aaafa3ef87151485a1dbc5275e4af4e3feebfd65d85c8f35a0ab8a445b3db4c09a7508a44431cd8b365e53da158b7b3d9ef5df2af7d8f3ff29fe19196b41cad064061850203f6ffe45f7653741289b9b2d6123cfc3ba7db5a5364f95709665d7fcc15e2ecceec1b1308b5c60fe2133d8c2a58ba666178a35660ac9ed8f9f63b1ba46b6788d58aed05c7d34e71a256db6167b54d8e1e1ec42051a7f53de038d6bdb59216cbdfbc369b20cd12a97ed399008ca13b288513782db95d2f5edb876bdfe5f0c784a0def8f1fc0216d2d7928501b2db9ed8298f44a89f25ee33add89aaa765f44a36163aa514e3f9b9c509011bf300cd7a4aea563670ad7c3bbb623c39bfb7b6ec15e2b4a70612abfdfff7cd4fdc04517d31d20e6b3a21a8ae5989c467120c0b1d92bdda81efd6b4baad553cf0438be45ed9d946234f6a3e206f29d164cf39eabaea041271cb551ba656607e163a3a0e01bb7ffdce615b42584fce109a0c82e30f6f021f8e1c093712b4c319d9f85bcd59a27d3782e1811b18bda091454068a278061da464678e0f7836ac4be057bfd4052e5fc413873a819172214436c71a270aa9560950b582939f7fa9ecfb552811a653688f6ecdd503339ab32abf626b7381e71a6505136f3fdfe560fe3b93505d30d7cbb61c75cce5f956f7ff1bb457ae015f5d404b12c505acf30f4d69d97785b5d731e300ff0337fd3bf45d51c62100e34808506147eb893ae7dece3e9084fc80428e9987342364b2d213b00983f8a81aecba7d03cc5900433403ab6f46b4e4e05c4781579ef6ab7f16ec790f3d30149329d8d944bec6451101b212592edc4d573dacd8ac0de52c8df9d9bccc260bea20efe450b8bd62ffeaa9e2553a9d39cb6f50bb911913747c69df6b86a6d81162a0c4363e7e6f25d67d3ae1ddf08ed2c2f6d538d15889dcfa02209cf122cefb572c43f235d7fc291f78f6b0f7801f6618da5f15ca4108af54ab8bdb2487e827e54e9859a0cd931b83a6d43e982712ed158d56242fab7188e456deeb1602eba48081066b0061e4b176f1ff63844c4daab3637522b53d66d6e60d4f8a2488ffc9e75061cfff5ea53d965d56b8866f5acba1fb4d0c5fc9ceabb19106eac03a2f5f51ff94189abf0e4536c2eb349d16e898b573c1c48eae55a5628ca0feca96ed55ad8d1d5001eb5c30bb4184a648d648379ce4880b1451e9ddb43dae9651ab8b11f3aa8cd515c951068aaf1df067c8f0f6f447afc3b3583ef3f07b3446d049c23fc026088d8bdbb238a4f7641d4929fc3435bd148ae1b74b1a290c2a212f782f41ca2ac95d16edc880404c3c45da5da8cbf7e5ec9ba50ecb4333c9fe450f6cd121e4ac9f003811e0cbf2553b3c2459d7129ae53d0de904bd5013cd11382efe8d219b416a1e89c9cb3735e32b1779328f70486a654fa2a4e556c7d4350aead3aaccabb59fbe97265e1f649c8c7d00c17b79dc0791079c9149f5a7623559307455a4d19aca05b5a3f3367f1111cc8b3c68a12e174735d039b4b8ceb74d16621c1e57b34206444c4ee7b8410f1f07dc36c87bbd3edda891be36903499ae21f6707a89ed7887539d821aa26389519dc3bb328cccc3ffc9fd63a1517af9fcb4e4143f2e7eab1047f42872fe1590f6f9cd09e0a65cc52dae70c90e4e8d0ccf9d25ca2a6f12177d68b8e758450cb791e756202fe19f8c3a7ff50a56f699fe3548cbfc5c25f9fa3b87ec2f39c6a40c58c23b532212cb30ce31ed309a8ffe832e998481d9e1bbcecb96fa6206250240b77a902fe0e266e6e58b6500bcf72fbc2f998fdf0886a0f1439de491b4e627ddca670240326f82744e7bda53e379c26da0ee66b5366c9552ccf1347fbd0d6c96e6e9d2aa067669742dbc5ba1fbb208765e28b4a613204a1d25cb479e9ec6cf6a10dd9336ee19c0327acf50383386fa623ad850c932a7768f1e1ec8c35724111984db0ffea23126438041550e7d215692777d60b68d5993b71ecc791ceeec87b7305008ff7a28c4195e40e7a711122ddd503fcd3b004a83049e21abc8ec751f793659b3baf46e63488982e2c6ea684fcb7077b129ca3ef33baca4e72bde90ff9f6e7a2352347bf44e487d010e47ef4686780c78de0f3a6fa36933c699d587b65ee11f03e47f59a44937ebdeb52c6bd4477c9cbd03589270e68b72ec89e729f6f04ff04d74bfcce328c5a231c5def320cc86773c65109be689dc8ba1e6ace73585aaeff15102ff018ab6bc3cfb6b561564126a4dea09ddfb8bb93c8a5ac1ffcba8997182c1fbc13cb9a10aaec0208a89a09057c781f6de1925933468bb48bb4fc8f6db66af805f68e072dd640010353e33e6a4473fee7d6d7d72c3f6d066ba56fe50392f4f0afa90e7ea1bdbbe9440d28eeb722d00f0d56d906dd83ec0c450dfda6a9bf8d8387d37171aa92aa4c67d2603eda8d1ad59ba27663350fc540ff2f905ba4d0b094c1e0c1eec1ae971045ae18f2ccfc5996fbe4f408593ee3b79ae83a0ebd71ca1ac6c48b69ac0538b73a3046b5db92380dacd5c57b9852e0235bf030e5bd0dfed62f20ac935f9854b7a5dc7452701387325552d4a39c3e356fe22fe629e7ecb3e9d6456981fdab3e243a525aea950115342faf8700230f39d914a4d0bf94d45512e64962a9125a3d83da6d887f27cbe7a03e590da26d6805b2ed5545ce70f96eb0ccecbec1691dc1f9c9ea87b887045fca29730d94a145f611b5d1faf980e5547d09bc2420e5c4fdad8f34a68e2e59c1b3a5761aa281cc5f02154b94e6def32763a54f3862c36618d2a573e54eef132b84b24b2f30ec1e6330df05aff7d654e9faa0bf2cdf975a48812fa561c8c5ecafb3a4346845e96478c3027332314b47ccea7f48c9b4f9faeafd3d2ec1e10d5b8f4ce547c090c5ee333e0bce5892e0130125c80fc99de39c9acf5f0dd6fc4d8cfb8b4fe2f2b23c78598f55d0ec80078e5cf160fc74daaf776cfc3e1d6b563917a4dfd2358d2407ceba94ccd5a8c703b458ac7303ab38a2b077fcb2493ada065dad89bad03331582860c48200ec898285ecf86759bacab8fb13661b007749d65ec8ee7e2f690e8e5ffc34c0bffa84769a7a80dce722a0c5cf4751b86a924748501651e526b9c11bcd071423e63537fd6b1b13a7c900100ad2eed5657420db2a713d5df48b4b27f6e8cb517d1f901f82ab3ed8e93b074af39b173b03905b5d777c1e1aedcc944345bb6953cc066b39c05558fb109de91945abf018c6bd538d714fb1a7583fc23c5c23c192779d1d309bc7129ec56f7a500603afe9128f10a9c8ba99afe3b537bdb06f362d076186212fda82aada6f6329638f1ac2b8e72f88121dbcf7a4656cab438a5b134ee2be83e43f6180798df07cd67ce6f09905873d86e3e76fd6c484ca2f79ea0d68a613e4817b3bd2f8e7453714c5eda9dfc09846649f646ffdb10d58b9fbfe5393bd3799d22af55009115cd23b7674c9f918471e27e10c7dc8a575367c77593670d1b96e11148e478bd6a59d4d090e58a20aa23795f2917553496d5c60f3c966d1bfe626a47abfb3946bce24e514a291ec35d7f4d1806cf0edf1f26474171bedc87d8fec35daba709041a77ab057b97dc1f6380f1dd2fbf0ef660d022bba5284a8adcae2b7ad3ab5296b420dca6a5d38dbe31a1efe6d9e941f1d9a79f31b83fcf8b7636146fa2f0a2130a57230083b1bc6c2e3542369c23f98d96b79dbc5be5895368e7a4ae17cf2c4ac85999654aa337b2fcb5dc35cd93699723d70c36e18618436d84370dfce446908640a97a22939255daa8212184bb293f450073e85d0522a379b8db53903fe924b90c93487426a3f036ad6a3f8ec1b505f0e66b8d8961d0ffe654d2a28bf534208095eaa41ac70795f97984eee080ee324643219ced0c4f951fc114a493bceaf333b716e8a7939c80260b2e7d523e97de9bb3d8e73f9b51cc9a06ca8d98a1ef7bd1cad3f33b8505e2d6059ed5a3f9d988c31a658e025089c63cacd4f4becece9ea70bb089a4ae2aadb464fdf72405bf4225e5b136c3ad32fb6a24446fc134367ee83b91f1c175b57f6cd3e6447eeebb6662ad3b9f93bd89e367e9e106f4007837008b2ef0690d9595c7bbeb9768ca1fe1874f937c953e4eb7c783a57b53040b34d37a920d43437fcd5feb10325ea4a5081198e0a7b34e4839109f3f564a93090a46439c2b52ea68bd1fe54e748e2ae8063d625b9de266be93d50092ca15f1afecb0fd816c34c80cd70066116a9eade8d07827d24a82b6fe44e6ae346af40ce1ac20b448693ff06b9cb960bb2300338aafdfb7262ebb02d91b58d1f0a68832a349874a4cb801e546e44db81fe1eaa716581412cdc3f02f254488e545251952a1103e1abec3ddada62eb34d060c3e3ab794f4165145a3843a6360a7e4de98b0a84e7b0221f0b84b5609fb88ae02d97bff7ce923ceb75a8676c472ae3515a1222a909da2cc12f99c6484b56245b2313c603ed674784a750ab995bf1cd313c770bf716e6d6c384acea4b67d16720134f3b474e78c1305f3b5e93335e50bc3f7269e00bf467fbbe6ea2d52e213cd0ab42fb512c5cb79c698b070873d20620ac3db28abff66d9aa5bfcd9481c776227fdba85dae8c2189304c1b970ea9c0c03c1ef5ec1b5522380036fc980454f33c9470a28661bd571338d60b644935d75fa7ae06685f0cd5726b11ddf98013cb325202606c059289a2207975d59f5f6bc44828d0acc1fd64650457c43bdca784bb007676a8ba5f8bdccc89726a229d933df9e39382deed6121f28d6df8b5440d864db4505bd81e8971d882a8f5c0162e1e23fa583c40081b418e17ae308b78e2be2c8056be31d02fa5eebe398cc9b3800c7975aa081bee3776e470041a353ad8854dc2c94ff71ba4b67e712480947da7f730e27ea0881ad7b9304773249a69f283071975dedcc6d0418451126d9fd708023f3c8df23d1bf3323638baf8c747cb7bb0f72055c977b332ce856c09e1404db17980ba1c19097e717a411f8d70cfbd66a818cb0564d5dfa56b1482755e7d39a1942e7768734633351546a11b287009a082648e75cf0d20db2153d719c9a397bcc95bd49f16e03866a5c8040133dc50bb2d3da160b7485377cc59936d641b471d16c762602ef9ca4e1c4df91c9df3ea6a0cbbe0d53e74dd527fc3e1452fce423b93c14c28414d4258d688952edf0d7dcc48def80445ca659b953ae2c8adb1b6cc67952f0dbbb45f3620fb597657d21913095028765d0a7c875357ca26fa4bfd9809f032d638352d08eaba8b77c57189d5147421f9b975e3de141a420c7bd4a2e17c92f155f2cdcced8b228cd843ecb4efc9fb0a6a10b2d640d4a4a5395ddcfe2910368eb7df926d55bceca388ca6abe445643e6315826aff37b44a6d9b47f99ed5c35d16e82cab208c5aa11b221297142fe692fc0acb6a65b965bea2e3ae3dc1752a919ee00745c08d714bdd2a30b3861ea377fd37baa0fe428c3fab5d0c96df56ffd3b3f5eddb18db7972abc42f8b572b475a58ab7c9cc86de04d468bfc573d218f7226c18d4b5f3b7323f13bfc789837df5ee015bd3cd5983baab33c76f85783d40eee38311421097c3fe50f5349ccda432bcca2d887cb179be2385dec625b44979da58f9719bec84874fc06e6356e1c07ec3b60a64862b1ea909fcf2c41ab266b8009a5fa81ea0e88ca7353fbc469fe6e12aa3793b8ea6d3000b35a8e085f9ab86a7b0622992bb76cddc7c73dda9ed746f27f761437c2b5f304c7a53fe1c13f399b837fa5755e6ad83b3d1baf48627e91b582e6b24ce2bff9d62e45c984cf3992f64a3ac1003375e0485b3eee81fd4266135e7630fe5250b1a3c4d61401bc50f6ba1e705debaceea62e6dbf43932cba82d625728ac2b0c6e761632e8be56fe4f9d7f2a92b0da22ec21b013f267d9f575b87c94bda44af7ca1286f921bc002af0271db90fba44094ac106bf428167cd8b47ca4f3567992742fec4b083ef84457fdb3944ea9f3869cf6f742428616da7d102df1c0f872b557dc0de2b0420638d342f9fb7d47b5c74835a1e15ab89d471775da50ea81d505c5ca9b1f3580bd949ad71492ab660e2bd5e67be7f4d17f43dd5e99468eedb582efde77744233e043a96edcfe659c9d2ebfc79cb70f89ecc21be042ba4b8739c48ccddd5717217ce351da288cdeab831f1c52adf9c7258eaeac3c197a6a2d4a7313aae9c11f4f9f48e0d404a719f25ea23f61e2173cc71263428ac5b4937f44ce498ed1ada161ccf70b4b4e63aff7682fb233fcc180b02e32821fdc7d1afc9a2524357e9f797336ac3a92caf61b4a1f9077459f69a58f8adeeedb444ed44d075ff3a20f1ae77834d492349139a0fe2267a5bc0ac8c8f0bc21a392bb81814c0975e334a429697f8c14de3cbc2bb28044a649624e573d4f6228dc211cd8c57121f5c9b169d7aa5c2fc03b2c806efd8d0314a161a7d7bd76a313540155f7b0c46a80443699b77f9ebd64a30329c8f38125cf9d4798cab126fe776c51aae5d67df64c2716805cf0cdb63f370bfda4ed5266c5bdfca5f78129f0db28b56a8ff8e591a23b0d21e2565784c36641b18edae2b23931b360eafc51393ef98056453c316d614e594a648ba9a917e19beebb8185cd4551038571cb10c58f5408c13bf65870798e973683205e43955784627f52deb75266b08e20f593f0342314e30a0136e9713b7fefe6af7ca74c103bf8d4c477bfa1becf0bce74a2ce84f9cbec2ca65da4e3a3d3b2b4362b697e480924da49b694c5144c5c16dda53e4d229c2483168370fa73278b1b825d3a23676d9c51cc08662746ff4ed70c94284e79e2c7d2725f82fa534b27cdab552665ffaa7820c178938159dc3ab5f3aaf3be156c714264622db9d681bc7ea6076822a3686fd2c7fb3064d5e3c79566305ac4c40d81df44adeb1eb8d26867dab1af6e8545db14db2838b266dc982504a810fc53e15e19d81abea96b171cc6d13c030eed903e391133fc24d7096c51293153f8abf17b44935583ebfa9a875cf53385fd768d3ab6ec4b2dc5535c16cff5fe4fbdba5fa118763e03093467f5ed586956eb28ea51a63ccf7a7403d2f195601c92422e4a76317326123d289931c4979676b9535b59468ddaad67ed04f55d5cee03f4fe012490689c5d55fa56e12cc18c00fe457d2c7a2832e8a32f1faf280c26dd35ca55a718a8d12a32fd40bcf854c55e85ce6a1847a6958d8485afd0b80715d4d8fcfdac1210d78c4b22781efc4f661dcd8eb170570de63f3c1e18bf14b09536a7cd73cea9b3345f27b8935291480bcf871d8eee7883bf404cc391ed0894f922de07bda36f139e9fe67820c4159be5111cf999cd1d8e687d0c4ffd5ba2e4aff5ada5f665d7e5c497b9e8820469a60523254a5514dbe238842973fda8b6f99524b93aa8cdb86f8ca66604572d7118df95f175361aedc7d9a421cf129a5be6232d9b2e2a6fd06c1f5ec53fa7b4974a5ab602812928b1040287c956b4d96c1de7ee5fc7a8163f88aa1a45d4943849ae04d49041a90329628f95c8089ef00926fdc707048e8c0865bd2b685f4b21774932350462dc4f7bbb1fb619f5cf2c1360800d06475cba9336942842d15939164322b97e3360f3729e8be78d93f73db3d81806c6d0435f2ee9cb0dfeaaca859f7f78405150ab1cfa7be48b466a3dccd32e2361220afd6287da4251598d95b8904d9ecb810e3212a768d8543e04b133a3871f41ec9eb15c3322282f25174491ea21dcde4cc2b6b62f6d9d03be37cddb16935a546868fe122b6a7b11c813e460b1643e249ed06f8deb66c66fe7bcce5762a00223cf2758914a577f19baf9a0af704d97739b91ed145b78a3922c14d79984c21aaece105deed081e0800ab99eb3b2cf2f611903ea829f0910a7d6bc1508ba04feb60424dd05e2fd92bedad9efe18a97f933234b6c46fe58d0c77fbb713006af648b8759a3380774a819deeac0630c1654ac770aea38639be0d897706d2cb29a1dfe609b49bbacc9a09ae23f13a3d19db654097f5012dbac57f2e3be3e84c796ed480a90a11ca259f7194100a173778fd12d7e761f871851bff5f881558594dc46f0f7347c739bbcee806e85c4951f96f867b2100073f1030471c454ca8d2d94ca650b49da12b021dd2f6f097d72edf3e78332528195e0595e7406a86fc3e968c6121f87cfbade367be35ca5eaf88cde36a5c386e4b182f0d78ad1287f0ae42d20a87fb0a2fb84a1f760e59fdb76a7eb0819d97323561bef4d970d771dd57b92610d6d67f4e7e606d1a6ca0b451f718dd013215b9a280f1713f2f62b2e92d2e6d50c9cd9f641ada4b85e60b6c0b21e9f3471f7ccff5e6a6493c59b30321751f0ebe6b53a00076579ffd213666a6768016bd1f04a94ec593e9b5260642a5e23ce4d4bd50e029cfefc4fb8de68b6be0b479ac752bab308af3724777d93b855b6ed60d20d45afe44c69b6b2d4721b71487114ed97a632ea615fc98c7cbdf84e3d0f20f6e1215b3e8792399b9bcca9f866bc7c95ee5331f70a214576beabccc9315a81b5caf9daaecc4f8631ecd1e98c2d7c2a90baa14e3468b59a7df7d793fdcc81da81b4bbf49699736f1315c09b9369085bdb11bd6471dd22cd76aea289818cf9f4d1804b24df5554448a77d432a36db9046e3ea3398defcd4575bed943e5b639c4ba83acc1e4c6e43ffc07bb25358df45c453f74cd2cc8994c44d88e0bdfd113f03905fcd164985c9296d14c6e0fa24863b34795306eb69833bdff3d0af32717a572c43b0d41dd70c712709ed23d8a9a03843da30b72ac4c18080a44851b47055df96eece242881c8b50985ed12ca661a1ee3c354312c0775cce25a5a1078556916f2a7887eff1f80edb8d844b195bf41d72116f61bfab7c386850236afb79ce891c106d541754269257a94e459191e4aba9c063af494c4f0919dfa411397c20b9e4ac87050a51c4cd48da905833376c01e10048284e25f53b80f8eaab202ea459fd7f8d9c406dfa47892153b233bde9bbaeba74b01adc95f87e1898d6e0f3193cfe7ef7f5dc9090cf5c14c0b56e986c06248d393a20bb1beff48e860ca8717ffa7f916c58968617a2ff5c639efac151d5304d7fc2743164e7e0ff6e9dc313f40049150c89897ea1fe2738b8bb3a37f048b4803a4f7a4f00f7a3e0de83fe89ad1e285b882eea8e0a2705f907207078550951e0ad597b4c857e60ff7e93df46fc90ff27118dc22cd111e58498dca40c12ad85db7c4ef0026d50b0fba9b91b0160ba2f310ee5c5b67e4ed0d32a2598fa157db9168e0d2d6e86a337c7524aae34acf784a7a9feb8ec9fde1974c9f402519d27e6e6bd936833f6b2ec2b3b938ea03c4508a92aac1b714d051708e70d26a12c3447d560386c18c72d46437a2fe7c739a696cc1f4d8d4d444ff1c5cc6f137f9d4a00239628bb860ad8e4fe52d50871ed7fef98599cdd6d8e55cbf5589b8e053b9ffb436a0aae0b89ffb6a05a980f28275bfe0ab552da22bbfc3e750d41b04fee155a59c9f1d1d902a60640efd956bbb0bd8013b668b19ea73292376e32b3ff7aeeaec34111d54700835d4bfe6165bfd20dcd16f2002f7ad76cddc0afb071b9cb0be98d96d06e4f323facff1a5af009e9b16b6e4a4535335d69c5aab57223a84e283cfb2133fc0f638bacf1e424f13507de67e6f6c08ba852f4572361fcddf76189940308b8fc48f6f40788be4b8f22adc1b93f60018b9ee1b3116d2f213259d00320d0381e37e2f999677fd3fccc748b07f0adca87383cdc3c115c28cc02825d633f4043b61066c61e33676fd3791158d94a5ad0551e8fe5f101db1c675aac6287c367f72b8d822f876f22a4e4eca5b2d9cee2ab9e88072a6f5767357b95137bc6b10ad9f17f8944d5e069404a6c1e19c672d65267dbf8a7840892d064b279406beb2562b8b3f0a08f4b4816a6f530ecb26e39601f611b08011782b134f7a3175cfc66159b2fd24c91759d915750d18313e006cf7c4a0a06cfd76f7e1868d90c4005af60ed4c6d2dc54f9c9e5defbe53006aa7842497c768271d288fe4b96ac0b22d984fd103a305af844de01e2ef51f6d357fabe945358bd91a8f0b99852663594bea0d02b07a06e4810c3792e0394141b962ddad7a9e74ec1a185afc82e2c2ea72253a7c929defd4f40997810492f983fe181e2c3f2b811adf4edea479f8667cf8fb07ee7fd8bf8b9dc62ee19ecad80ea9dea538236f9ae9d94f070c69c4bca6fcd332197f9ff53e4c9cdd7475f03078e9e47b3f48ddff61404bae84212854520447c09095885fdcd836fa3d62d99a27a1cfe00b534d9fa55308c52e29092c4041a6927ca4cc7cede513696b739a8ac66d398922567bfde92761544251cf0e9f2173cb4c02ca6d774a0803c6e70ff47e052ca8380688ae969cc2ca4bd1e9fe3f75e3fd86718574b810bc4bd35c58ffb949abc99171775e8a2fae9a331747b33bf7633117302105e5112b78283156cd50ba2a7d4e02b169c8d33a292bbcde231b5311b4ce1d6966465924c5a732324c617f11d0f5ca820511fa8f0cd9372826d5cc3ebdfa634ce25ca3cb1da22dd71b39143c98c3fb99f825886b9a5efca119338bf2df3c9b5c86e77f171217d7738208ba7d8e85e68ce3bd91a0c6109f4ba46e24684d0f284e74f3d7551d8dd9fa704f3d19391126521968449451fe922b7f1a758de79e697cc254dba33c3c81a397364547a69c55c707e39dc0469dc3c952a8f98523e56166ec2aa376d584a1698a4658b5f683432b30a73231cb390fb4a31ddb27bc2bb12cd3522915ececd28bf52efe02b845b2a3afa8800a3c003afccec99f7c34641a164ee88e1baa1d160ce28fea450fc089b7579108009dbc73b6160ff9432afd480d4b390ef9349b3d340af7e885b3f8d1d256f5addc56a9f37cbe907770781f3c1f7fcc5e71d4303d0d3e83563eb8f9efc67044adfd45e77eea375807a9297d8efea65dc41c694ba3e6d7df51e2278d6445c779ccd31879e7225fc3f5c83a1ccd8257f17be532bc0dd4408a6e566ee1bb6932cc4965fedbb249c74deb5c2dc732225e62bc8ce79d602c8593a4719360742d29e171cca49720081787b3276a0d697fb10a0a251956e30bf94f6a80454462f13944b5b6875fba0c75c8e5a173fd62daf1692f96ecec2cceeca661c5b3b07cfa12258be48e9f7085047b8173e802019979ebc61c2035f69a71f4c6f3386010ef1a9e6dacfc8d07ab710159fe5592f0c6fd2de4c6617e7dd52dafdbb4d5290b5d9905c277ac1c42358e96b6d2da8c258fbe6e15f9f5cb24aa4144db237bec72346f0b8e44a163c9e0fdb2fe3799855ec747faa7eaadc9588a3bdba45225a921495fa57024e45e48eef2cb33a7f9526064c1c4d4272ef99ba61cf428c6c5d58fd2e60b74bcb21995a4fa7c2751bd95f8ffcf8b3c0f85d1c6766d11d6f6fd32cdeda549f4c6fda009cad96ed598e01f62570524e55511cb2a3562e0b3cfa9aec719581f04903757602f798ddc924d6559cee0d3bb81b8914b620f9198333a1da7ba5c3e707b72838023e25e4b8a5e600aea5fde7a6e6dd74e40ae50e875dfd35399cf1bbf7dcf35a9fb4a8dfc7f309404d61e9fb2cd06811856f1179bde836d356231de51a03cdb519133f690a3c5168dde08daa0a1652746f1683fd92c9644d625a0271981831ae9c291d0acdcf7ccf9f6982073c2eb26e29df78b5b0ea46b5fd69fbe26d1a7d453ee0dbc7d463b423c34aa6e8b5a42b7b3b056a5dfa9c42ed0cd7257c3d89562af7a4fcbb7ae30c66552d860606a70c586bfaa286e16d3676b47020096ed206a635159db271908bab92d70a69c46418aa32728c9e3e1782f14e356f0d8ff51e4005ff6c9b13bb337d648f0903315fb16f385c7302b8b08b53a25a1c18d0f062fc515365d1101e87c964a19e33a526552fb3e0a93d90a284789f6d14d21b3dc43d9e8f8edfc08f3c3957b8e417c4e1f20f2f8ce236c444bd7b822c3b9f595766e8ed28c2759235a74a44b06e7daab46aca41f36e43897fe81d3d8ef6bd7f2031cebd0596e05d84ed514cc0a7edce26d15d5619677415401e6b22ebdf1771c239ed3629ebf68e4f0ab7f334a42debee2eefd3281f27a3f3054b79b5215a8f80efbfb0d3c1c4fb3606f845b77cbc1df44552049d7d5c91140228c7b02a630811d2599dc93d0d7e8a1fc1341ba2327396c8f5e21eda7e5f647aa4c8f42b5d7438e3379db722b2ddb4df40789b00b9c929f75aa79bfdd93101cc1847a344a56e0a876c39b0e767e16162c24f8fd8d82071b19bcd537062ef277ad5645becdc08f2b8122b2113f3dd816de22f76c44d387e665dafa80693325f9e987db32b12a9809818337b84aef92f97f17179ff04956fcb8bc766b8ebaa6e93b558e8a111cd97981e74afcb9fe6ce76b47874d4afd8cbfa4f115e257f366dae8b5902b59c6445570fc8ad23ad2c14bc592a01925dd94c25dc46d6eac8ec90d15257b4222c35fc500559d76531f9e6643ab5aed4f14addd898f54cdd9cc28b2941fcaaadb8ec242c51facc71ad947afcba1d4ebcfd56c956bc9649326284fecb9435d67f2de9de31a2fe4b4ef55b30606c7d0f158af38d1a3da7ee1430dffb1e967f9aa81692ffabffcf6b901470bba547634a62515cde103fe432991d76d74010cc670cbb250033015976bbce42f55da258a1a917dbad729fd9d016453c19ad740cfa4fbfae8e41e00011468433045770180fb130de329e19a340bc65c98cc608086dcf774757cad4c705f911bd74ae96969518785ffab81e1fae45acd830c44f83d9f3d85897d31e1a6180a721dbd76ecbbd0cee51bd5c658a03060d086a2e777ad3e11e64aa0aa0f68f59473b19bcfaa8fba4ce91556d95b1ea7f9df99d6408a733f7f34f11f3f39ff728e8875710eb6254dc160210085652f3d3b232b7bf0428e51f2974b8959fcb8c2241d010703935dc4773048fbd42dd257a3a09a4776ede3d85fec3bd9410264c6f0da1fe530f93eeae299e44c90e1cb10f7bcbb02851cb9054d1536eb4b82d91c02194da72be172370b5926ae50911f8bb2ca597dc18e3d7d2ee6c537f5796f3eb0173e1e3b22c883700890b22d339c577f02ae5c76fdff91e45a07e38b6a83a9c23559427132b24641307b3e36374ee96219ebb40631740c56b12c1b3926f71ec2ac39f69b17c4670960934d32bc0b1a97cdb67329a672836b53fbc688d7b0ee848a2b99bc3a3b9f3ab4550967e7e9be3e2fa79a37a6b644ed664d84c8f71754488eb369ef9a74663033982f57bfc24c681eca4917f461cd05478ff6d75999e2e84707b8eccf7078917f01c9b92eb78c1074209a8d1677d26a21446544c827020c5892e88d6757e230788d2f2182aa6017901d4801d85fd96e6f81aac9f6b77b4cf87346006df1a3d07f0b650cc8c29758922b2ef8ca66607d09707192b0c115bc02fba58f532ee067519fb95cf8ebd25a59268fd9813c97c321cdc4d13dc2404c8833d73212a09dce7741c269ad5379467ddf30bfaf74a707896ced8ff4bcd3efa553e843f8fc16f1b93c9f2d86efbc16e299465f97098df03eb1a0c4c9b4d887b04c380ea79d9bec0eaf9243fef4ae36288f2b5904d47e4075167f18813369edff40591ca70100b8f70fe7b2a55e64fc366ced6e8a17e7c3dba9e2e7cac69aaa9904c36f434a9e396ea325c0276c2ab458d1a675edf5ebf6408bfd60397e7b34bca5550cb0bde6ecf3079d3e7d21cb2de4d2a90664f787a3517248d776711eb8d3e0ab8104468079acaa371cfcc5e1fd3b797a3bde8832fa872741a69037b8ccb1a83d5c3ef3f8ddda50a221b3633fe5ff4299fe987a18e72809793d7b6dcb9cf9a352a8527506108a90c220a6495f10a99e1dbb0d80e4a58489f32f2d36655892aec4f050a25634a4567d0b0c8aeb206e702075bdb117d68dacd460d0b569029a559263bdf5efcf3d63cdaca57f51333892f6946d0cf291408c5fa79194f0eac25c4106930c229564c829fea0416652a6513bef2beeea4941d744848880b1683e391124d22906ae536f3c5342311b0b99edaad3d69db966914e41c209aa80a35796fd5f1ab28fa68992e8d5b9714212841bcd2cf5c1edf335480c1c7947db81a9d4901493b22c58de42a10c2169632ed0836ffa61e517d5322c96415711840b6b8386eb4f55f67861e10f6599429fd7eb41f0b0adfb81474bfa96d6dac52fd3a5eb3dd7727071b07ca80afde96ea53f456858471fd577b28ec36c44dca341394a87fcd787f6de538e22db23c81eb8b34c7a46feedad1f08d72c4a793df19799fd850037fa841c2cf4afd44d2bcac08acaf1a829a49ee23804f0b4ee3f7868b62e4763210ed614e747023b74aaad741148ba48879a28657bee5b54916c052df274e4cbcc7c4fc01661a3781be647892607b523ec22b00f6bbfcf0f64cae99f2a7fa7f18fac76b5df8a6ea5796fd9f8780836975248fd263fa0437df8217ac846df8fee98817349b93d135d7772ec569aec875a9301bc749c71bf9f16f59017cacfce612bef9640e19794e584a5cb34571064495353fe7fc38fe1f52da30994fea84b6290c4d10e65c1c9a57da7049607217dfeef24b5551d7c5bd869ec4517881b204122ac39a8e262dfeb1301ea74c989f73d757b3ae168a3722883a6aa99726e1c1c1ef689e16258d5037f741657d786eb2fe564cad40a5e814ea9ff218f0def414025949e60efd3fe9d6523e2f16c60e66a5d1d042242b674881c1d97532679475c989dfc1cc63581853e58eddeeb4a68cee2de6c0243764d88533c7da7737e188336d047704cfadca6a16d9a6032ae652dde5bec8f7a7ea362c6be493c443c52fea9c3cbb623405d66436390365622c7c8931b4eed7c6a1ecdb8b1f350c2dec8f0ecf1f57f0193a846942d3b823544e9991fcfc3fe5f19fcac9d74795e5e2901c9af49d84e2dda34df3eb249bb8fa01d6dc03c5fb284c48ff5ed195bd432dcb7832bbbaaeac583cd22feb02fb4985828cc7b8e9ad810eebdd68cff1fe572765abe0913443f304813f6858da2ae37cfc1b864a8d08c9b967f3b13e5ce6236268b994c82a4cd512bfa15780c1e8064a215370faac22dced762989c7775ab34aea16b60656eac78b3494e9f9a63c6547046a8fae514e6fb37090aefe3a6a540ca2743c137671813a81b00eba2f22b6b6ce7f4fc68cdc4f1c8a8c31881f4cc97235c39de24f994980c60f8e4cc94bc1a948287f8a2d965816a8bcddc0e7a4e5636b1942452b39c46765d969bbad4493068121767e18a2a88578d1389545535a2a14fbb5cd1c6e1924d28423a0280df336b894183131302757aa2c30f2625a75f3c8ff5c225881e75062d33caac2b48d4494bf61abf0cc28ee44dfc7df6903080f07f008669f575eadcac86d578aea18e7eb1b05424f10e7d292acb2928bf213fcf6470956c2964542d38a6e67ca30104768882f14da3d4d54e667b313ce0fadc0832e3e998e73e951239fe1d8be929afb58feed532e54eb175413426dca2e8ab721603b10315460c8e6b0458e4234dec4afc92e31ce0a1866293e7fb79bc507f0eed5807d63e44d31f5d8e9d5e38e384d4f8a36d409f02d38d459098eb666ed096caee29230fbfdf5ff377d81fd48d31cd1e36d2ce946f4d76d3c09cf8ddfe296b74c24955dab7e9dae5990673e60cc459005902d611f9a883d1813f4ae4fdac58e5076b9516fc39303e10650b2043ebc1a20103eed09927e76380578e3e72c0a2cc3bfaf5dc05c22fddd04d3e7b4ac3e6fdc4b00c6c9f7f8dc38cebe7354a3e600c0601b36c6c1f82f791c159b098a37e7e6250d7e5a2d563be68e4f81648afb93bec248ea6e46c369300d842bf33dd99841eb6702011cde737e6b9e9b3fe67d524d4d92792d1026c0c4790f46cf65af8e5ec0d126543f138a35535d5dfdd98464556723ad864893093e3bb4cbde45504696b8eb3df27f9a78c44a3e7f54ea3a452e0f7c6484ffe94abcefdd17e908fda4eaca0a9207aa70e0f8c0e5252e14588b0a7f496540190eeabf117c3bd8dc4a4c3d046629a8b49115daf5eebd786718cfb6b99f1917b703240ed00cd4ef748af6d73cb5d279c16c93d8a73fa68e0d9188009e9053aaf015ee82f7c3a4703010fe4e2031581c2f13c894f982d6f9a92acc3dbd356ad6efde6775c2e4d85a72761372cafbecb64507cacd7e73459d94b17fbef6c69ebed7a41960068b5264e952a64f5bbcc064147262b3f7cce18b6ff8f9107a3101cd3f3a33f9b20cb0d9a78a0e1277f899d0500a519d583549fca22e0a56a27f509d7aa5343f3db3f623bb330166b2574da79196ca059950669cea9ea898a6c63a1f515eec4bd737e0fd44cf4e06ee9da6e36b4167f8cdd58f34276ae4374e6fc742e2e56bb94ffd244ecad521006d9b8eded2d58870b008d3e30fc830f13f7a43bd5c626733d55c2f3f69480ea10330c4f45cd501d81c5b94ef132bedb4230e54e724ecd0c3fdbad5466f731a737a8b1713ce0fdbc22f12fad102307cab2d50f2c339bbaf9c8a7fd63d040caf374085092260f2b707fd7dbe834a3c8b297c89af7eaa46982e925905d23a2926f702707d632e6805b9e90dc111d16b29e2e4788f5a24e564314bb1b47ea620230a90164c684d70a336ddf0a3bad3bf44c0f2a3610bba160abf8268467a166f13e706c93cedc37d5c27e2893020b671caf4e8997579a1c837ea897e2c91a58a116b3daebbed0f7116519121700caab906e71f3af7beff634540eac24bbf22ce6299600ae4a941b898e95a7045928d48e642ea02253817d4b17b4deb35114f35a5bdf5f4b8a5133f8430c1af2305b32381e0149cb588fe7af89d9128ce24d1a7c843007997b11566a9c5578d62feb9ea4608c91a129c247c9bcda3d8588f5abb4f2110e147b3461804857f8e80421362fa0cc299b09ac7a0c98e66659a49d22e8e5cc97c4d17a7e1709a3abc9de81a62f891a14dc5cd934be5805771d59d9d3c61216675b239d32ba3365b957f45b221b7afdb8472e7192950d6f93780c111e4721884cddfd7476ce31a37742fe62469805ceb270ac65ca971932fce2ea66ccf12feef98e51b59c8100cafdf3ba5c876970287bf8a834e737b629a99a62ab624c4d5e04dbf2320609b28c0aed68ddf831372f64ab1938a77f6d441fc9a7614390ff231f9b17bde6eced12570b4f147f00889d87089986e6c89f1a388b2fd4e109bd7ad984df859cb86a77b17c36a8bd3dc5a99570e563345900d5d528363972ef75186979c71a5c9a76967852eba3551106b8ade9614176031663bdcf3ce7c93a07884b1f35ed3232742c53c2c072449394dcaa41914ebacdbe01119283996116c853c87bf16aa20e58443c2209ed75266f2e8e5ba1999b7ba811253e92c4abb900009e39a6a6551b2df63e979f74db29c9e9f09fdebfd9c7d63da9e2b4fa30256cd563e96690b39491757b3f60219ac58962a8db3b2e060a21f25f777a60240bbc7b6acf23be4fe934704f59acfd21facac60553cdf168ffb421de2f35316255166425c237c47b505dbcbb8aea52403f59b15b734f187f708f5d0d737d530a2691036733dd1d7bc3645761f501067ff13a8cb3579fa0b476053b6a4fadfd28e4bbddf9bdb5a51b7539b4af34df03638423c3dc483ffb3b383e0a3989646a1fe2145f6078449eb4d9dc591ebdf6bd5bf0ffc53f7cd51a250ab6dc2a0d059dbe6f9187c5dc724acecfe3d18b54bab6751b6cdb1e98ab14160bbcdb2ca7383646b61965684d0a16f47ff7e61b85241e220c3dc32eef30514773f4ee5b5a6758b9900b5e0c1c3d4e731856332ffd327ea58dfa28b1f8754ca508d6b2569c429c3bafb74b38821f6a08a053ff4dc86477ff8d5be67a45b0e639602cbf67033b1568b8e0644e2729e3bcb8d26f202e418d5de5d1159015bc443fd8983d42ac0b66d4c741f8c6a8b59d7752cd04cecdd0026b67fdf43fbd98407e800cd04ab92be5319d04f7171885e101fbd1675e3d1fc70f173797ea3be469da784fc7a6d25cd1be0b4c4f13893de282af818af50dc07170150868dac167962da87fa98b7b2096f9bdad16c69ae4d7b3d112150597474f416db07ddb658b02d50f8a0889663e20c82dae84225c67a74e29ce24cd53cd7dbe2ba1bb7af6df01926ab3a8c6af414285c54ebdfe0c161b79a8915ac6ef7019db5001c516a6943fa03713f77009fa28a67a7c6b320325ab2e004f39cf57d17879002cbf2c4c018f23cd16d0cd73fadfe9d69e2bdd6a2dd6eaef8cd436479479be0631e48a19204c4f8ffa95b30f19e644510bc61fb0a80916a2e2cefed0e3dcd13150e552e80e4ce9f353975cf7f2d1fa0b9139d21f781af7547fa8ee56ecb39d3b821df6c38e5d0a8c8ac5d0ce64069889f09500b4604d2b06a45d52395edc5efef19395e087593ee859bb5fea1277bdae5ca6381089efe6d427557e4bf08c18777bce6ffc82c365cd5013e57ee47cf072ff6bf268ff7e8055f29e72c2dbf13ca9337446112dfafada540ed14c84bae0f674689d703263081f818237e45ad91ccfe0bfe54edaf79c751b8a2f9ce210d6524eb81c6c7635ef71685dcd373170f0627dc2379300a30183b147272db1a338548ffdbb3f8399fcf4cbd1c956240e8b74b7758df7b9aeb146f581abf5e7ed648d311ae79cf5a5182ce544fcca7b120c70729e0796430b30791cd4592241e63d8fa1ba2e78cddca97a81adb39384d01ef2457f495d7fe66e852e70bed5bd332fe03eb06396eeb3893984b27f07118c9b86f95adfa3753cb4b284a5788e1d729148df1bd34ea1add1a6611987c8f6859b360dc70230cef74fe350b7f9f16b86a2584a68ed971101033ca384cd6a8c18529b35cea69359a2c57a1503d8f66f0384a0be14e212d0d24a456782023d31e43cc3d7e2f50f86a54bf02b77f00e3b9ef1ee6a4ffa1151fde46adfeab35dc60b7d978ca1abaeee1ac28c3d59d0fea0b2a10ff35fbc846b69df3bd08efde72f816b97a563f4e2c92c83d5ca5c2185b6d781eef2e1214cdcf6bfaf1436108cd761bab0a4a1bcce7606af2fa70912d2588441b974cf6ab8c4f4ce021aee29592963b5b2be259a3cf754d5597b72f413a5c3dc94785b57d9262a084761a8d9d7184f735b600eb97972571e74413b8d0b81f918c1749cd2d86a6ef4810029a8d498900a46a7a0767eb17f5571caefccaf12b72590d10658cfded1ed352145806422d01a11e6ea933fa3a277f538aaed65439fd36c6ab79d60305690c3817170bd34a03ded24372a95d9b8a6d884092f38445b1346118e4df6f5365926f2a09f77cf3930639b4dcbdf092fa5bffa77aac2079fae1a0b18d79d26c2b62dda728fabf748c8893b8777778fc63a7db8c1f942c53d6d0c8e4aa4659ec00a7ab2b1052c37c9051424b053fbe705253a32fba954784e18564a0d3b959d6e6133872137cb1af2d39730ba48cc343975b3b1b7b4695e600dbcdd9415434804dfa57b9e0d34b3334b2e663ff757bd027e39cf8f79fb7cbf53935d8d3b9a26ce25ae458ba3611643861688d4a85c6a7bb27bfcf7f1c519c96547d314e698a4d53626ad8f4e28dc365c54862b29fa4be31898fd66191c3e50205bba85b83093198f5111a7d394a4b3915c0906b13611e2325767ccc3893d128a3d84115878a556839de47e9e1f8c2853c0e9f74c9a93577df728575c84273b65ef152b6c0df35f1ce9292516d3bc1b0a72b7f969a64bbce96dff8b46e154fabc6246c151dd7a07f6edfc06698ddb86dfad34cb713ad711f38affabdb25df26e1b163490b4a9996e251093f6a7798437dc8d825a16978633006106b3e8a28f481c7ae99370894d6545f13345aa32288e0264cbf81e196d6860c6ef67eb550b6ddd5da93192214a9d2606f87b487b0734f6af01bb2c33a4b5d8f284bc9cec0b63207909ffa42a530f22186535db3fbaac36b5631e5c0928c733da2dc977ca218e725edf471cd3789a32657bac7a9bf045cfac5d8435670113fc0138b24d066cd189702b75a469e10c9bff2c3ef4e3e46a770b7119a49cc4cef9208ea91e83f9987e653de824d123f6042fe8c41acbcefd91c5b14fae33e8e7b8adfd6864ea4270b4f59f35cb4b00fbd4c33c5c720041941281434bff584725cf04d5f36a6cf2f071f00993e42f6f89933e17d3b40e15d8422f7911a6202e4d2e3d9f70d5b41a98f9429e7f55c4b75fe666848cfbda6da8895519f93cb3dabde8f5e0284553c102fd12995bf1b751b3eddbea4cfc0a738070f1f7026fe5f8f46a68da4c0a048ba80d149f4e74120479258ecbf72eabeca26dd95dde9deb706547a69ee1a23ae3a11e944baa03d5e5110aa91827125c7b9af53987867fc36772408c950a43100d7361fcb9bd58e2259feea5def43112441a6cf434c0f56f206b22fd9633cd48f0bd4ed04b709e9c49bc80397d11a7c39fb60d766707194a6fcf56c99fde604f31f364f07ce87fa805d19be98bbf0e7f13d6ca5026c27b730b0c6605c985e1288cb81bc60516f02f661d50d4e554c883787cc24ce679730120b53904b091d93ebe95fba903a6846acf4fe32bafa8d7f7ef971e5b530fb82f3985ddbe0865403803fdcd58cb607088781c1d472aae2633ae8eed7560a55b51b28994b6bff923def4da87f3ca02fd156bd273c2044363d6574c3af83513c62faf9c80991bf097ba3383408fdcaf2cd475e3e630117bf3efb38d0a3c2eeabb5a1838677c768b36d4ab94f1b201dc8717064a5a366c0fc777e07c2e4cf983c6a47becea6db37d2535824457e697a16d547f2d16d365a449a72b4888918e774b9c507b9aa6c9b8099837da07f907e630f2ab582986af933b9e2f32ae24034193e1b93f9866d1a4eba489c147cc307af51d9dd2886907ca79dd94589199c50a5fae96811d6a68a229a656030182291c5abf7a847944aaa08dceaf2e1ceb9045a11f6f74d983397e1795df6d552425d93368c770c07cc9f1460a91828d8d463883ead35faff03978801f72ba660ab70c2d48577a1e9608f708930c67fae60ee04d19b4e63795ab3c096bfd4d1545a5c2dda33dcfc29e5cea7459b28711e8484ecaff3e6929f4f5e1f5c843e03f840d8f0b1c8a62e8d4c366dcd8cc7a4b59a2825f80aebe0484f198fc2d8b551d2c02d260addfe6ef71ace39cca8d13a10b29144dfdbefbe58988b9a8b941a715935729023ef1a6fe9eacda2c217790f980d8ec6d483235f8ebfe8937851848f686a91c6a2ddb8ae02e8ea006508607e80a235bd4dc6cd181a2ba7d2a7eff692a32028a4a76c26d8ce56f642912b1577c99cec64428960ac5d978681ce1227a92b8c2e0bffc3d964220bcc053835a0f4dcd93546285518c9dd94e6b612a04e5b17d57240faef990cd1ee904b3e5f1e2aea6d55cf1edb2c7615046dd146441198749ae36cd66037c19680416ceee86ef6791dc38f176b91418ea0fc52acee7065376baa0da66ad438a2509019088eef70d8e56c7ffe7b45565a74fbb33151d22c5c4b165d5dc6bd484e841490e01949a1d772c9fb492635dccf5ee9e8536411d3b03556fef90ed3923d56c84f4dd14bb41fa9ba64e5aaa9432f92469469e2a50e2c940376bd447f473a95d7f54402dc3fb91e40831ce9495eb018ca1e23cad7ad76c97c39194b41fef120be113b7fee67be9ef92309e9aa674c4ce82f78df03bf4ea80f5f3a6dc4e6e36fb60f3d1c95f627a6798f0754705f7d5ea9401028f0ccb8fbf3381ad388d49d0a7892bf331bb97be967cae1f9fc5615d0cf42717130a187fe156598101ce7b20f46d6dc2032b4b9cd73c7b449b39442fb4e96e4c99a3e9fe1b01b6a97e1d0acb04df77dc52d0146ee16f50ddac5aecf8a11c70f02cc057c4ab9c699406bfe96b354358a075166b59a27d162e897ffb0fc0fcdb335bc35f3d0172ce9c76120a9f0b78ec04f2afc52543b6ccfcfad15fb26b7c8e23b633ad681b3b4a74dfdd904d7b94c51090072ed52d906fc922d0170af9e7541346d7b1e5c4c9a75d50d9670e7205ba6284dc3faff7c322557efa0eb938fcd9604ff9c8bd82506fcc893c4773826850aa04d706979682085e91d5119a1da9501d18a642a5c816ad972e8025ff2b3f108eb9a8b86144708c835679d07fdfed0a887b4b30ec4e8a0e08276f0e8d4f3786f85d82e38d59fd0c8cdbcd8609ea04ea154464ba7e34897508e02b2feae2dadd77070286cf717638e68a4bc49d1ced30f2c354876fbdb95d98d8365ede7f5b07bb15ff4026a85566560187229b49a954446b58ca546e4671c5b8b0810f7ab34e5d11252af4fd1d8fc32f8a5e8bcfdffa99d5e87e27136f1ce383f936bee4835b65c52093b7daa02a102098b872f1003e670610a291c94fad849e049f9ec7d5664653fb061ff07ff071486eb44ab8f607ac2ca24a95bd63e8b16e48619a722f240016084fa947bb0aa5441acf29db5b385dad82fc038e8028a0a9d7fefe8f33691c7bba87a2e54be4ccf53637ecb5d2d04c45f82112e91c223f772c5340da2f0ca57085bf17390332b385ee426cb7c3e14cf3d7c27af0fbc938fab8569892fd343d0e5f17f3fa119446459e45189e6aa500ee0dba9a083641fecc2c924609f63c2572bb6f720fcb84ccef61677c564be46d7d68f22d8280f1509543aaeacf3d7689743e9b7d97d693714916720931d9e6c467a767ea4615171469126f91a7c88633c998a1ee09c1c9d78ac2f91d949f0c0bb9ebdf34691ed57e84cd28e6d74cc9d7713aededf6b0bfa5f078d40d43b546a5859d4bb71c64e9c96914cf4faf25b817da27557366c3270d53a39f593b5644284d4201bcf35df4cddca509e2b27916d08dcff96773085ad08eb84fb7a8f3e356a34ec847b84c393ad7df493fde72225d4a7dd0ce9ce03a7c98758a0c1aec5c37b8b364687e2c446db902377819232ea23fce00f07241c150e9d5cd6f34b22c4e8de640678f5732f9d252dc85e38c7613aaa5643fee4000172b3abac708930b1283bfb98c592ce6b1100e3df4d1e10a1e23afd973282e03db4c0af08eb59dc7678d8d40f5b4af246b67f0d4a9c8a08f8e7da4a1db9d9255c34280de7ecb6a3ae564f8cb91cc1a590f02736e0ace356269c57d417deb92c80794bbd414e27b9ac06dd05bc5bdbc2c988b80a43731e81a8562be7d9a0331489adaaba9bc29580930db84d4761b7cb722ad6da16fb7cd0b4ed99a8ab30bd981f1f95e01c4b7760e0b8743cf1ec773469e642f2b5e19c7e503edd4ba877242098c069e01ac041218a967993a6abde2b87b0a6d1e1d7d5059fab6131d68d51610ea7676ee64e3255d6fa8383c2c3b6eca8e0e7875a22e8ae2e991201e843d951c48d0e08b6f36382807a3ccf494d0fe2d1b313ae291cfbb58ef0b611059a5f4399520ff691043609ab73dbfbfad545286bc8d6c7dcb3eba0ec9f5dafaf4aca5a6176cc6b37a802015782dd41e1dde0347ca3850ae1e8eaa0cf16da12603c43cb00a06ae6025a2585cd0cc82f5c583aaf4d2db5ccb0526c194acb501cb3100b7f711b712d146b512c7ab7fd301a2ffac31d326320899964a622b6d3221c981b184554fa96087d38a433efa26a58bf607d6ce2ae59ecfbd73b87d40e6be15b9a72c85d7471da0981abd46292a0d65961eaed5021844ccab838d6a70417cb131b13a96df1b4aeda0ce45484611452c18c1e5ff68508d7eb1587eab4daa0542fb22ae05e085e9c908f37460c759006b0cb54522f5305815899232104b6326152d71ab22e4514c31f75c8b8752511a952e9be85bca21b229f56a6ffa3a76d6bd217a3c47e29fe584d18a90c7ef3bd8bc9edcb7f40bab2a162e9a6fc25a971e93a9922a916bde4b13749d325aacc241fa848effac423f4f8d5e3156c1ca93826c86b97bb5fae08a4cc231accc15fe9d078cb322233560212438de5faa3a79621f0ac45e2e7024b19503610be4d815a5c36741dbfdfed2b5b8af09b76d6e27020d779308de1578b0ddbf71b231ea09ffdd307b940fa741d3b9a3aa8d65713fe76d8b1ce4fa2b25db5d88e3496c749709cb37cc0f21ebc5371f968959ecbb821bf0389a59225e1790a86e700f81ebf87ef2f3541d3c6c250d4424874b95b76341d99eab225886a86857a1a5394c09846ce130a3934d22f55cda1c216e0347fcb6d91abd1ef8d0f215f1b233aec8a7b34622025fbbd075aa067597ef67407135137178d81921adb464c25e623a321dd53ae8bab65768de078c73ecce081890a8002070fbd9cb9c27d4c2788c9a26bd879ee7c3832286fd37f633be6c12cf473144d7612c7d219d761ca0514e08614121ca59027ebe41f6c1069ce7d298a853f43a22a4c1a248b0478017671c7c60bad46ca58af4f63ef55ae4a879a622dfcfbca841d87e4238663685686abb1e0024fac72d8cb30ab9886c4958dc838371fa3afbefeb6b73b231902111687fcfef134027209f910d7b7a636d31897c4ed3776f35aafda5a5ba1c7aab15769b72d93571af057bd10b34b0a8764f866d91890eade05c8aee49be28e1bee538e8f3be79f6da42304f2a7393993050c89ee77fea5a9d013308a27ed9c8d3b648f9cceb02b087042483cb0c80729d9ccac9da7538b965d0eeecaba6a4eb8aebb39c70af6a1095a7c8ecb0c253ff6acc19e10b6ead6d4496c2de53e29df42e4dab4c46483972b870e30540de0d5946f0757f8761f4bb84294dabb509baa8b961af9dfe1670300a12875a5886eb8b5a9d157e760d56c1a94204c980257fce67f26960b1275c3d94570ffb48fa521ac29e55b295feecff62560d571ca9770b72a7ec9f586c33091867e04bd7d4283dbf61c55728cd67394cfd528a559b8e4015bf6e418682ec4962b5e58f7c666fec910e4bafe3bf92fce9eb68a450ebef75ecf34050209d4ca05771148bfce156cd973be28ff0f49304c326ed371c9cd1a6c3135184814982aa95d0b44249db6f5e85bc04c691db981c08d1b425739b1311e30c833edf2a13624bdb65a3783963d61c313268846c4ae78df111fcc1057c397e8113c2495db93b1e9ee829d9c65176dab7693e506e66bd686552eac3952ba64f408dab4a6742d2a0a84b630a4b7d060d0b93167e42254814b23f260ca57b53daef8c177866039461dbcdcb9c08409920b438ab89a7bb5631d69bd3f6ac1e7b480004aa50dd64c4a2fce840dc6a81c22ca8d915cdf7a6dc4e54996a7db0d8a6e5c9550f050d280923b687015e664187daea575004eaed50fea9be808965fdac6c5fe72a70a91a6ad712aee90f4db468fa8acbce9a528c02101680841b5fcac0744d793564a178cfa192904962f9646f38e58b39902fb8322647084f306ce8c8f5e8fb1a25bac50f9216c6a1df600b39a89732b0023c2194934a548cba9e36b8cbee90c5a935ac9c26c725523f5eb5cb36c5a8ad7231a4814e7ae90cd85eee32b7e7f9ff2d671f55760ab10271b0a13cb787e27044b23e0ccaa65aa28e0c50663283ae2f03f0483bbccfa68131175fa73d3e6fa10a3030a637d59882870e1beaf6edbe3f0316a6307363ae7d90e2877eb71ac9b232f63a1f81f4d243ba6e1bf752476af4b97bd6ff0beb5da4aa183a4851d7b8e0171f0a1aa49b7b12e490707d9a1f20293bd5e1d6a6dae33f45dcb5ddfaf18e400d4dba36b7c42a01329b9eb374a8a555d786f425c47d92d1191a8d618a3d627fe505a6801a74c6e6c6a01c0a6944e2e1cc657ea9cd1decad4a8a5c39a98209eb1482576774f694b95d70e010f9fa3caf62f423aa0cfd91c9980b4122887f3d2fd22f9c59859de8a8db9b117d406bf14e3829f6590bedd60bdb5a7333ed7617811bb187f429d27e68cf4e1a81f7c2eea764da0b2bf6a6ce93cdfb8f005d30f957601c7c3a168718f0e883776374750b22bc3bd8ea62a01d948d802d75675b7026986cf8daeba20143c1d73ce7ec1d8440e4331b3dfbe86ac6e4d052f8fd1a73c0ed0fe9a757a4b0fe201f58d05964e2015c57c59d492de95156326854204417e6879a36903303bac58c944afc6778ef096dedf7f0a1e5ca65c9b2cc200db79311f18144502ccf0f809d08b6bf8dd48659be3e33d47724ac9a318c4d3b7275aad76d02b625ddb9c08800917eb0f417e5800e8d228f796648e49f9ffe4710281441150c50b7b1c25e624d4da855a450845ad083cc88e2e5ac467d0cf267212a0a353a142dfdfcba7561e09eb934e3a130d4f72741ad50651e3982e8d28f255fd7f86ea08194d26f06bef2104cef5579e10561011294aa1634710c576c001c6f0950fb500f1ab8e03e7c918033e132efb9330ac6dad1b751a3b8fec29844ba268f75bca1707587e966ab99b69bfe6ca5476fb8929c559a8f9d100412bd1bf2667aa550dbfdf9ae6937d1246de0fb0392438233da7b65d42f392c691636568eb81977ef86b706af29a5dcfd6ab6f531bba51af848fc59465f2f2ff9d9e87e63461c80a9216bcbc277ea1c4c53ed2c145bad9317c4b1721f3519f56f30cc05d0a45f693b8bd7f02c0c4abd72caa9e06899b7b95538aa70217639819cdc120cdfb7d6840a4e0ee9aaf27eda0b524001df329be430dc14cba9fea1bb100351e1922ef2277590580523c16f7231f87c6ee2d049a5d77a5cc98b0a05fb5dbc4f7470896647b9335c93e33345e87fad1d61edd206000b2b2002c52b11b32572fb0b2dbff75895e7e6c89c6d86cf670a42b813344f0d019a70a7ca03fe5e02a1a962c77cac74e326f14fcdb8ba51640c66562528b3f475b08990adbdd58641a8c5c639b2f61d7de9e805f1d8c15bb9da1ec0067e52e74c89b3bc6661515ce4d71c3f9ec769e4a0726a2ff6b4f77bf5ec39ed9e497b13bc8ebc763e6e284f9a51bd01e1f7e3f113721c8e670f92435905f12aaadb7433d5bc8cdcfe9367a85c4bd95a30737c63ed733dca1e3e6da4badcb654a72b1b0e43fc51baa59769876eeef8dd1372825586bffae9fc9244aa0bf00a0c019c5295d34b953fdaff98ecc072d81831be9bdd185af547d60f57ada021da12f8686ac60323f8fa4438c2394a558ff428eaaafded57091d19d51ffc517e5a283a15cb91d4636141168f00c409b33686c4cab756b89f355492f62f54d6e3c49fe35035aadce411962e75b9d5277e7839ba4c2d55dffee4b27ae05da0651ad4204b90a78d38b479a0069f33ca21a7fabe253d81e746f99727849502b30e8e778ced8558303daf43c31ab56b4c2f46d818e856cb75dbe32cb8f8206db579d3bd1e04f9c68e3e237454e1215475d77033a78850efce62d79159bb725910984207d683be9d7c655c2999bf4349e8101fb7328d2e56d52fa349c622059be33cfb0dae3f31edbdc708dd8e635ac8239dbf0a04ce22a31393fac118691867e2ce628e5b5316dbc09c1547b653aea67e9d8e3fd401fabdb8caf2f7cc8d2424b805f6c358719de3ca703140c83f44dc647e5b61bb14c499394c58c323d95577ef402809296a6cc1aa502926991d5ab45f5ffb4f790d37a7cff109ae8671e46a467f710125bcb68e8c318d41b8db5cdb7ff3507a4f02cc7786632b1cba18dbf9e796ce9c8198b3532e448a5b8675aeee2d9b841806cf74f35d7e42eaf55392b9725637d0b51418af5a37815588a23401c927fd4013c184389422ff448e50122c1b7b3643e1b461367c46bf718828267b251cd9a0c21a76824e878e67d49a0f5ecc812d636eb205109129362b50856fb276f8f4ddbb94a988d19c56ebebfe625ea29a2312b44851513c99e3127dbf00b3e9dc41078f7184171eecbf97216a2e9b9e88d79334f670926b009835c109295ce0006e4c4ba05e43fc4fe79786a4aad91d950d35970902755637f3bfce1580f7737da3414da67971ca3c8e2ac67fa8ead4d7f093b3d3e3f7b8915813a194ae11299b14a511123841be283ad8b5e34def2e1610937778076e1edcc3fbd91d1e8053e4ad7b89e9368d0a4af57dac0d4a6628f3d6631eb3cc235b8b4a4908446f55694c16f218e6e152d0ce9e364d7311f5c67e1d5e158fa6fd13c57a52b8d5d4c9a8dc80ad4f467f0af340d54cac2d038afa5f5b2b4c3d59d4f1fcd77849a1f26acaf4685f49f9673e25bb234591948147f0293793bcf4fbf73c1f016353ef12f3b92371f7af73aac27c7d711fcb3e089f46ddc4c2d09f21d6038b1c2af0b72082393b5fcb717c5bcda4545fa357c45a1c09fb074f74226531c42717d83f97fc696cbf3a67563b45abd6894062f4d1b1c6f240cd8dd5cfcd06bf5b38eb0f676711b9060869710314eb6c846cdd039aaed88d25f87ab240558f42516000d26d9865205496f57710ef6dff69dedf2c9d9b986d1f235f329db83b4b6b824b971e87694931d140dfc3ac4e6ef22869700a25b939c62b5dfa96c3bca54cd0aa4685e255b43e68d865381bdb72cecbe373dbb631eab768494f49b428954ec0c20985b6b7c4c8dd7f0d1e3fb7eaaba3f204ac7923ea9c83e1eee55aae1aa374487d3db96346265505058ca2df683f7b4dd29665fe4693526f38cd05a163d1411f01b79e70086b83f8964b01203f6744fb975a975dcfca5a303783d90c3007096f1190b104a6b3b4af8afff02a6e99646455f2133a29283bd5a26df5a35a6203b785bbdbcdeb5f8fd9ad84965385d3051f9a64e2a021814a44e22191b0ec7e32aaac78a073e9da64ac8d62139fb46f42edf199da38cb3102a4152c60d3dd3eed3dbfaa802b2be600479416c90f5cad11e4f682a17d88e0244f068dab94436ca68947c52313a286f6220a31b0f23def465bc6785b49395558c56df1580d16e6862a2018b0c46e61a831461f471f2b06dcd911142df69149cc21b1a5e16a01207fa3f2ced813f9e8fe486f72102147bb2241ed1b6acb2613146959c1d01b4f86cb1477c4d70e5ff70eb0c8c1d25988248b990f27768f6f944a0566bea1ede0386c87861022e76171a60b818a4cf5d78e2e305452e1040ba5af95100931d934732c9cba1ed03aaca73eebfb14009d1832b7aa34136d73f22789f88729c0012815bfcd685f7ac7d0aefa7b7a73d71f997475cc5490da43dc889854bb32ea0da1e09f3427d88d9cc83767d5988a5b9d8ebcaea39cef291db6807c00b036628745038ff4e2db2b0bcd81acadd3f5b2719b08b888e714b6da83c800bbbff029883d8b2b8651b2548f6acd3c9e3dc36140c5c3a206c77443b827d8444bcee7c43329bfc78c165c42fb10eef1aeab8826df82b1e9f0313eeb1c84554ed63248c51e422b5e0203ca5e58d06b04257072b35b9aaac778a6683ba5f33d7ac08ab5c3e3f9577538b0a8c5f40582c29120d7001ac60f41cc745dff58178a3cba38bbb5980d25876258885850abeb09aaa82f17aef01fc87ad0d2d33634446b8015abb4623b9a0b7151c0eb30629d2c611e377dff1b548b60b23bdfca2ad928682e67e7dd8c740c2784a563c42d0d9c1e2a8f6804f52b72a46ea840b8f88776b6a3713c8cb97d70d661b97e2a71869043bbce04401a3b567244a3ace35d3bf40c22b84c93ae9c54d04ae1560ba9f09e922930e24db19b277ad0b2be748a12c04c869a1715b3cf7ffad6969e11ef3dc3286c623ae5a7f496814a9e8adcfb18a59ef7a3b8a923085e1257fd485f7bec683bc1d9883c57e53c9b45da1aca918c1057237fb2ffa234a75dbab02e30d7d3be3a15246d9972770311f898720e1a5597370e3574f38cdcc853f714e82cdee543f3f10a9f942be21b835b7f87ecdf4ae30a29f9a2da5c9ab992832c15e0eecece702eebcc23b76cf7c58df2dec054dbf6e960f50e2c159d58347e85e6aaf50460f8969d42459ef461ea2ac1ec423bf9e84845703dafec564d4ab63f20801133b50f42089a68290734234e1e9155527a66bacd39f53d225f46458467b92ffccfd24d6cf5be1ae190c1394268522bfffc743472b61e11e838ecee72d93d55d423c6da7d082033207e8bc16ddaee1b02ce7cc07a1cbede99333f140bd9b915fadd7eed024dd4d5ca087f05dbc1c7ca52ca7ed2ac3c03162840b705b784bfa83dc76d04345fe9568cb1a62e456aad41656f03118dd663d368bfe3314a43b3a006bed1fa23dcdc5ba00fc4e9ad2daf91f0d4e4592cc43f63a4261e4119c6dec099ed24bf7d33f5a6ef725ef916859b3ef1a607c771c9e1162fdcb73b9505aa3f1b0a9a800bf50e634e5a306bc7d44fd0a91d34b1287f19c009a009332df02610d9aacee052d6e8e846b5d5ab466f7845fe2bacdf94106766580f73a7c75a5207392a1b9411d448c168ce8329e28b72c261ca83f82b504d2bfd1c92591f42d4d83ea220ada4df4aeb53e3ddd10c91e8b95689f85bd81b1b855fc33519c02364743f567c468c083d55c823f2a14ff676c6445d3a40bf3d7840a30d9833d7f6ce58714ed3014178477a50316f02c57b54e1c181f463b48cb65356d45c1dd8b88edef2f5079374cc51e86b22c88791c53e33b0a60393a6cd1dfc727e9d7139a809eae2056319b862ae760e1934ede987c9129571ff055053c4ac4b8eed418329a2726dc54cb3d0c930462c72523427e93f4f5757c000cfcee500418d78a4c630b2d52672d1eac95263a2e807deeda8adf5aeec8e8a46adb15734f984011ca10534902dd97e8e9833a64e1e253168abadc45ffbc113a01add385c19f17440c8c2188e410c349eaba73ee5cca47094997d6ede68249c46032cb2d8196b642a22fa7e95f9930449822bf5ae6a870b9a57a0fbc37ccd9682c9e7769c68527eff3eb62e33e4a45416f1039bf15815b1a4fd2fad02a36eff1b92e70073121cf7016f816dc296a3d8ea31b2245149e3ba6b1b9217c424c374b424cdb2a6f3446b3b0185eb2f12c13d9da1d8eaa2aa529d9a37a21c7bc4cde0aa20c88cb33af0be5ef2e7836aa3c6db8746290c09fda44b422c7d3ebd51855e4a93e5f367dc906f98b0149ad945bda21634646ece6b36b3e1ebe18d7dafa2a32ff5e1f892bfa8528dc71304eda6876f292ca47a91e110afe550debae0b2c52748c18a138e7b9846bfb8e57c61652946ae4dab303dfb72c8345c25e464e4459ca8132348c574c8703fd384ab6b2bb2faeb34b441d58e9a2dc209cebaab0fd7e7be50dff1fa90949f2304639340e6ab845f1cf93abc02d7820e1f0eb99bbf50872b414ad6164e2ce7f785c0d467bb5409cca69067814af79e8607789049556f1bc92bc221694172db6aaf0866a08933784e21793e222bdcbd088886993f291d20b0cff5fd63b6174e6081e04111bfc9daf19c10359ed54cdf98ba94a21dc97f3366469348c1efdc721c347291fdabe1636e7a01ee455c5a88a34716d3c3e337ab7f725eaf8d45f93bf8cb6956d6801471641b6929b1dcbf92a401a13a64c76142b2ca1972d348233db40a40148ef01bdae14f76e2e33bee288cc5494d7b460ddd6f0ab591304052dd496679fef78ddf9424f4a625c51aac3d4d3289378a029dc1ccf3d52e605a535cee6b15d189b674a7b768a007ded6c8743b9fb92e987d740098b38eab54ab9ec2ffe10b56bf15cd2e5d012cff97532248ee50ad2bcd40f6cca53cf7ee4d9b51b220427ff06687a8c701e99e9cfe0ec7d7373ed97375448e332847355aaa7ecbc176e4af2f7554309f0e055a60f8a9d5233ecee4cd679c48d36f3686b94db06d4410480c0c56780659d34bdbe60628c3913145596c87108fa71d463780067f05816f60085e859c14894384a287b6dc607dbc6e2636d03acf6a128d245a3eb2f13d3febe1f4c836bbb53071ff7ad907d1d5ae42953de43b77c28beb24e04f2e448f699985ad32f1f4b413f7b5a59b12339df4c7e0d6518f3c48cc11b76fe6fe691c2472f38cfca7d43241b4b0174235b6ec1ed9b4d0089d764f7ddd284429fbbf4bee191988cd99ab8a81a51fb086816c8d9dd510ae2e2017bb7ed9808d32369b036ff2cf4c4c5a1bfdf3aac79b13b81ee038ac4dbf3aa5c46bf3a0b2288824cbbb969b3c929787a79bcbebca723f58ce2a1f118114b6063fe254f3cc88de77f0c99a1f07fdec276829787a933a2333a8217f39a14bb0e2c66a255660be23c803a6e72b7e8fe9b52f1acfd070488ddf91150a8b0ac44b1205f150a59eada900fd793975e461428114f9b886806c26ebf7838d32c609d6492b3003a85609ecc8d35a8707db1a19480d8ea97c9f854979e353f5ad2c4b169906c09d5c76ca8ba41f60ec6da009ac26ee97e3b338ed1290e57dcd41ac71ff8ac497b8d56f3485d4cc66e9dbfe1e7c0d8a8264cfd54e3592ae50828920ab9e0995cc208708722954041331e20a3e6169fec10248253c94a9041bf32595a0500c75df29fb15bae1799c60b864c52e5de88d252e73f66d4edacf8838aa1c1bf806c0a41b034d2b7b58662692d1c2cabb09fbb625caa08e9309961d847344c55eeaabf897bd567ddf1d09e069cc411f05b2e2e9e542f58027ddd32c9e2559f6917ab91c798450013e7c22d5cadcea4e072eca1c6a42fcfad84b6e3621f999353c0e7509ff4cbea217f5ee62ac5dbe99ca420617dadee6b8b62b54a330a73b89d250b4bd561d45123f94f76f3132dd6b8e7c378cb73bab5d207d56bd404a232854e0a18d5b9b02908c05b837eeb1ef8be74ef289d49ce58ccfa5ed15be2b9b67e2f686f2c8d2d1d149140b357230a7faa901f664406b2df5665391ce7136779af9ccad40c64dc685ef247364d8d3d436d2715c3f2ce1767627378b119e53acf720c4be6cc8e351053f9fefdf27901136b36608a406f7a0775014d8c96c812ded6292d3a6686f3593161d1be1e4dd775fc06dde5ab41fe15299baa4486b46c321e37e504f8dc490b8df180386d22674bee38aeb112a8564cacc93e4c188f3a434040983343bed96bcd34b306bc81cd27019d7dff3a14b25d40b2933cfcaa06ef671d80422f0086b6af7e0f68b0233b136adf0d5e4aa0ee7cb90478d2e7537bc57245ddd945c3883dc142a7ff2fc6185f510267b04f3799de023a06dc136b9f807270602733a36c32e6baa291e410219753a827bfb94d794f9822e5efbc135a69300a36fd4c77cbb4d7dd6b21bf892231002fc5b5dc29ab8e0dc59b3da46f0f83a4741dfb05a3f4849fa5d1a473995b825e99c46c71bc8a38868c12288f6b68427f1a36697af6dc791ea6ddb4f79fa2ad644a36b91209f1b53ec79ba4c89b9743a2516cf7e61efaa388f355420619ccb1808ffef8c11e86d101751d8a9b28adeca50db0472ea7ebd8e35825599ed0007c12fbb4ba61a0294bb2653615d9cacb2851625f045788133e8cde236b8527f6e5ee8e24af3cddb3ffc5a778e757d8507126d68e470c4a804ab3a0f96fbf673ad4deb6b6097b799101c54613b16e60412ad684194319b3caa2daf515651929073d1e135314b1a6fb4ccf5985857d588eefc811a36cf209c9235ae5f45da2c54bbcde127e0251ecce981562349562d801d1966af5eb2de5396bdded2c622cdee17dc45ec0fe338042235df9ffa60567e7a28f5964ad038cc82fe51bffcbd0ee1db36713a104132f024080d02c36ce56c17936e82045d4e60cc4447063b767f32d7dd5cbbc5812d56cdbebfd408a2a329d1fc191a6c3a0ff6832a296cb56111cf8310e7cc3573366f91c219cab770938d9d19b45acb68e12e679fbeb15b0b2916b25861b67e4df8604d136b851b963e86cdee23943d5682e73961ed56a59704a75ada71f85f362b4884856905afcaea006c8e98d0d411d6527292f65fe4a37ee0aeb4dc614956bfd82eb3c22d5c86a489070b7bcb6d93f8c69c72554f0bf35cbfdfe4830a45f904a06d1bb09116b960ded6987df17db838d1f324d45c46d5eda87b5dd4b6e53c8363f4e39afc4e2373102f546c0b1e1434747f8c55d2c0fe9d3c45f458f5321ef77ea932fc65aa6d8e35c6718bc667cfffc9a52022b205cd05389862d833f4145d7ff1faa1b01ba053207a8d4759ea5d75723584ad9790e540e4a5e351dc56aefb993ffcdb45233cf005e3483583dd913f7d8053bba937f7814056871eafbd17539319b4d3db7c34b1afaa5e5e919009c90b7f5421ba0c081285f77eb09e80142cc2e0ef3c5d14c134afe02ececd91480a1e40b256cb5cc7c22676a1ef7f64c287ebfd71ed398d3c3895c3a3e54613971aecbd27ab5c898b864b13b7d245b93d9b8c20a3ebbf15f7d3de40db7043def471452b92d5f10534760bdbbea65508e6f9c94ff5a55e97766802b54e567b3487a6884e8fe4689188229d72a3f2b93e6e5e760f18bf7e3ee2681a5ec8ace6433a8695ff0002798c4821ce720c98a941b9b71bade7fc55eb26cee77f81ea3a5701580961d1c4c0144a891e1acc71b35a8d62f797bf74e1c176873e1ea4b6cfc6a26ce79e48c9cb00115a2c859efa010e13dd12000497ed6ea4f4443cc6f9f6ddbe5d05d6f60ee0b9932fc71d3ea82a4bf5de55129ded6cf37dbba1f9b1d437f1c80902609fcadc9f62ac88239d41adb2c269507c8b503de38c802a00e9c611e1cca60d8ce98d485766b9c53cbbdccc5646deba3d9dfb5c77558d6721e664bd018b93150cdbf2e8f582982ae7b2af28fbc68ad0c3d01d30f61d04a169caba9d9b9e66f8572d1f2a620db0999279494f46a35c35ac0d5f38719f9acded9cc60459d1075f70381a7ac0bbc6f9c9fe7f7c0f25330de70a9324423a06d4cd4e042f5299988289e575a70cf4bd03d6f05f52d76269c78cdde49ca04161e83923292264f0770481b2e262545cb6c985241241a89776a90b96a0296b6b07cf37ac05314de858f7021b7092e74c4ff4b96e5d76e0ff2631ed557f24cbc48918a29be71a1555f9a1383f50d3fb080213132ace63954a7ee972c418b3b90bad9f7ec11ae344b89d3820ebfbc0c238fbc854b484646cd8ad6b709dc78f5c26886dc70d564301719deaae342e70327439283efdd753deef3a5670c6c4f33d2b7c6f542d81eb00ec91d6a697cbcc34d35cf924384b89b051f8e4b994c8a4743902594d11cf4755f76a72206c22f54cabeaf8a1cc91f015daddfb21968dac4fee0f5f13959be3196a3c169d13baf523c7f34b2ea2e66a9bd2113ef7ec2c42f4418cf3abd781b8cf2f7f4f68e622a8f86dae6722ca6991409646153f9f090d5cdad1956fb19409fefbaac34658768d37076adef251a962acd42ec5ed99c8722e699abc6220e9ac7d25c6714ec4fafce51bfb0f16fe84f639aeb76d31f03811141d874311dde42f6a5ef76086330b95fe3634fdd0c5eeebd6972aeba5777c38e65ec3b5d604342efbda8514517f6fbb6b0d622a11643b6908f51029cf3dd31e8535a6abd73aca01dd06272ac45413f0b43cf13d1c44fc47b8fe30c658d30caa4df2be9d96abc49e7a61ac9020e0483da4ec97e5f7eaf9708a5e98bc616fc735de46c0d268dc9beaab674bb545f0836f1a88368a6e6826cc0fb06e9073ee31e7116ae9418245e99d03035b5a91f67bcb1b780c2b2595e66c360435293091c31aeb186b196f0b9dd9ab5c74869331146566a88bf0318cb8a2aaf8b62bcf2ef454bb10e2804194d1d9c70b8df13734af5267d25383076c68bbe57305a83963a3cc98d627a8a794169003f3bfb30102a55def6271f24c14062cd2b64e75669ef9498b624256920f014127aa50495641c20b6582106e82b9db82802c17e16b993219c1ef9eb60686748a423f1ad60a95f56d6efe9b12408362597e4c243d7aec102e33b0a368c93eb624d7d3de25b9d88a420141cbfd4bed734423348812df0a5f633cc847a3601702d9b864b468eb4fe1992e59756d67a4145eb9215b2fcf582f7438918bd841922ddaa79014937057d2fb546fff14e3ba92ff1895419102d2d2ab2b87c1a01d2e0e5ce20e9c387c8941dde673a30131037c370670febfd7a8f1c232de7645b3ebc9c2ccbb12bbfef27832b34f4b98496890f0a6fb80417d0265415df99d0f0f87caa7bb9ac508e00ed5b85561b3698692d7f144ba1356505842c49bd51b0ec4e1c4e511750afe125f246145a644ef51b2ac24b768317fa63cf05d6b5d54114044a6fa1f8b6507524171deb9ec4c3627f78883fa5fb7610d940c346426e8a8f32e9805f5e1e3bd4ac8dd7dc78f792f070830c1037084cc208a49957f2694341438f3369f86872a5565ec6b8d3fc28921dac6d415c8f425527de2d2f8a97d67f3b06f824369b88686be416672596a71ab7c8daaff1d7d25fbf63032d4acd6a41a5ce517e3a62be038950aa9f4bcd39cddd9f8cee040dea4851bc3aa7df65000d279af9297389b3c50e243c35306b78f3966e909b96c222e40607a0314fbc9d4279cfcf5be685a7bc39b9d82eb480de2b8566627276688d2c8c770948e2b28b8cc6089f58c5ea4985cfbaa3296fdf4d623b2a582704d808607cd00576c32da28bad94ae8d75f21af338a7eebc459ea3a4ef55db5537ce2afdb8ecda557d96a4100af624180dfd5b34f8549fdab69a5c4587f2730b906bb8656e38d400025aae7464643ae6320b90537867e66505f049fef102a3b978b3ae278037e1ca396aafe265493bdc6d448c384edd457a108555050efa8c98310ddb2e95fe836359bbf8a3f8c45aa73170188b2585e71cc2805645db4274c494c6036102b60fb668c7d8c1cb275528637f1f19be83435279cbf52c98b703a0e18ea066601e3723750b488ec978e29fa10370a290cf16d2b995a2c57e29694545f922a2af07ebede287a5e5b0f3f8065db10c2cecb4a9d3b8d296043dde3f1005ffce978bd688f53241833b6986df3ca5e40c3d9f5166ac13b9eb87ef0d4b8a077c2348150559175bc282c4d95310f5a81a0da78a1bbf3a1a45be315a640045f7b1d23eeaa15dd18097414f0432eb8e0e752fbccd5965579cb563535683e26962c14a58b4cd70007fd1559ee42c3841ac3aac1496a7cfc6160dae5af27fab0b0935ce7f9c3fb3d320855a551d017a43a855f245ff741065719340338b60478203781ce830be4a4f654d0ccbcba310dfb4d4572dd983fc853d52f4cd3ba29e5b895caa801daa70f86fc67552f4b92b92ef685ab09d6ea1c3889a4c805bb830abe8946aa96b74d08404102ccdd81d8daee5e76f14591e0cb5e57efb2d68847ec2ac382667dc2136a78c519b98335e1b1e64cc6650ca545f474154766ea5e1449c0a44659a56cb8c53b0326328c13f443703b556f98a243ab378399a20ee1a87846818e7fa50202d147a60c3dfba362fcbd2e420ada0756e48698b601eb26f69c73df9aad995e17b4ada0c18fce5eebfd725c0801c7482078a606da302de97db70968f88ebbc64d8741d6c66a2a1c568874051ac16cc5ba0546846f232773913673e65589e3d13dbd39238f961ef4fcd6896c7843815650a09e842769f0a72d669f66dacba0aebe308322d0dbec9d134085af35621f1d643f578cfe6eaa85296c01c7918543efef887878e8d903cc6cc545acb2b4fc23abe7599228eec0e5e59a1e2c30a4a7bf1f4f6909ee0579b5ebb7b8deba804acf1f4881fb05dbec510769a7e6634db4f7f05d47b27c4c1e1fa0123340f81da47ae53cfe8b512c979521d89cbe2810d13f479fd69f63905c3b12f2e339a74de24f96c314bb06a808407b5e66a9ca3ec6cb2e1f4785c84dd2ccfe3761d13e261feae80a636e567c1a8830277d05b26e1f7af7af749af32380b5020236aa2e6d97a7c52d5cddaa5044e0d25a194cc1ba22ff5ef4532c73de8e9696c837f970e732d68508978dabdd61a6460fd09005383302268350c8134f0a900c7a28de4953a874709361875bb48ab37b7e159e92022a0e5e3e35a3f7835e02f69f2ae9e38ff5e47f30214fea04a44ac55f75ae0b8b27687eca9136789ae9bc558bb6880934bb9668219670cfc21d1dacb22ec221570465f92a3e9e0635e41c4ca3f7067141c84f98e2fb9f9896e2c4e1849dd4e6ff00c5dbbea6898ebaee4e455b68cd77a320c270c88ce66ec6eb28a82bb56e948609080c15c880069fc020ff5888974e8280c6c0ee449b56d775e8145543fda03e6c86061059a8e1564d1e3d9816f8a81a65717221ed08ed5cc411d0a8e58ee0ab0dca5f888ab3ab8275c330fd0a6879d574fcbf1691a5a4d55f6ba3120a7558a6fc38d1428790152388f86eb0d377b878b7c023d7269cb54d1cba8f0e94523b841bc6a50360f66dab9df9753b3159fce99ed851ecf1852c68ed2ac3836f0d0ac495f22841e17ec0b92b6d3cc9d56cb26712ef5a28ec7a8ebc7927f73a267b8cb7c3aae424e969d4054ecde5f981dfdd8f10246afc9a746a220344e0d32599cbb63979ba8a296865e1c9f0e4b0d63d9c3f55a3e377f0cec8ff31438cf588c20efd13d8c7a30c938d42a6bee844bf924ec2752fbc32f3a1e676155d30906f64bbdd5c5b59381b549a55397bd0e0ac3489d0d706a4af3d3a23b54a6a88ffac0090a635162a4a170d1869216ed1613b7d419e3c6d15103fc03e7e8c0b27ff37bac7e7a546e409428ed0b5658a4eb4020f9db2d02466af363117df046e3df73656752cf68cc3d0e0a40e253c13ebd36840e6626f035f311165fd07b71a007373cd2a22d0802638c276d1ef84ec9307fbe0ca35b93dd31abb6c406a3de40da9512695c236fa96521129e98c15787c2fa2812d73154d4b72859db3dfb0390d168620db3add7ee3895c500591d9370f8c71de21f1f7c7f1947ca823f6c4752d83006812aedb114acaf6245149393ad640fba6285c7be9bf4db5d5e465884b9f490cbee2e227ff058c8f320b854a61e785d8c1d9a5a37b746e6e356d247cfeec2620a5f3d74796ce2f520cc07839bd52474c4c0abd4eab713e365148d8b9e8fbfef0a469c45410483764a8648b9529950be8d9d830592535ca0b2883e861a2b62190df5a3155f4ceb2bf90efeb1076417cf782bb77e289564088c64d1903cc7077a7126973387687044f62bb71643e5dd963b8388cb7f5f4a9f7fa067aa8f5cadc8dc740bc432928a6ba424eacc03ff33389be55694e0e3ebac0ff77e66da567a092de0e1da4f97a31b6647e1512d4887a605319f8f95291e4dd86925cbb5161b55bf4ccfab805a35ebf565b7f7878ba5783c6f8c62168c33e0c8b83d111971eb40d4037513a05038ef96546415a8470f99754718d36a3dd2955febd3782e30f131d82f09fb0703e28cec6cd97be12d1abe8189bbed48bf1a0c12cd81a3598ea624f4628f586490b3541a0b2ec204a5e3d3dba7ae0063691e3db36ee32634bd94b3920ea1cdb328d8c08511dc3a044a13c2ff36ba8e54e7a534b4a11b496961be66740dc6267592d3f034640ca4c6696d370a71979b9fba4748927d6819c613da9585195d3de7a780bc4e6df3e45d8735656eb6e0f335b3cecba2ddc75687df5c67e75514feaed55fb8b19a3d6a90d860d4810692521c7cf07bb1e0abd6eac654b684c2f1952d9d3505f1da8bf323c898beb9891986cf0f54199469bf5d4e3d13e91acbeb074f16f904472400e4a0760d95b808f8f6353ce8edea9fba1cb2aca702d6ba11ad9f67124f37f0d9675534189fb572f13112288a36c36e474349f129797e4044610550e97daabc22013809aeda5b57cd571dc9fbaab505f65adfdad49abef17d5e8fa2c3af47886a4de92fa288f870a7942a6b2a9e6857415c3daef08b34c5ab086ec2f3d4b05a94167d95b80eb515d000f72dc570129aa3af65a58d27dd99152c4a2a572510bcb200e35d8819a3c53c8d93852350b6caba8c726b0e4de3ac5670e1e824571639f466bf5f2e2895a288dda8b87b7b5a277d691ea182640622e601041e0c7122e39f3945a5cfeb18f284312f63698964b27d6b825cd1239a852fb4cd80a251cdd021ef29edeb246c9f59c096f5c3679db4400d63a4b3de983e3b1e3bd922467c9827da1c2a80e8efb83527c732c50f1c38a06977f67eeb6020e77309867b4aefd9cc764303f97671ee8fcdceb17f287b8c40df73c3bfe67cdeae1d26f9acccf8b3d7801c53f50e9b18f760955fa5114bc414fe44efa3df45900451d137780dae4d05e5d3a7d86502af72ca66fb9d10a737f3f0d35335b74533392bfd5b5d78684e66df81c32db09553733fb697ed9931003ad5e13b643cff25f5106111ea8ce164cbd8071ed9639b4453500b1debf0807e83b203e8e1ce28ad40542f1b58338cc141d53d611b1e14e96616a5c8c69732d46a048d0fcb9275711c6359d07b960f989f85ebeb6357114d9de301a7e049716a60084358227fc0fda900d59802dd70a5204e9850f3ce7e9db015241d6f7ab66a8e4107e01ad1cb43e44a6371015c0aa312d495d54dd8efabe6ee1e647591f544cde443b732aece16e88ef06dd31ce8d391e4c8f67df43c6e619630050a612c2aa81ec9631dffb9aecc2dc23248d0827b55c69ce126612180ffa17061ed8c89957165f65b7ecd74270c144e7822891b658c483df86687939ecccbe42b70def6be67497f8d73ae4f017c85c58fe6d72b5cc920ac538a74462c02b59feca9beda25e974d7d9ef0396a1d53f13d6f82177b2ff69863c8dc69dae97d8677eff50510eb9ce5594e51e73cfce354b450c4e4bbd8f5657b16eb66050630f4792f9e7f2ff53f06a06418c5836c26450e4e01f6855636725e5522aa460ca474d2a6bce7a445462dbecb216b2e8e786c35252ddd5581aba7fbf75f9b6ce0153c31fe89e466be650caf64a47fbd71da4233fb616ad274740b159edcb56b2dee9049c8ba3b3c84daa854ae26e395d40c367f28aac7226bbf1e7823c4017c6364b3ba10ef8d4f278d97000568274b5123e3fc3756c343fe34b0e3db540b0e8d0153c812e68da44a68e1fa39153087fb77994a291df036034b0cd40abb2db9ae53fe2646344c55d1848aeb669f18e40b905e48f0d24c6f8a773b07676e985822f4e51c6e6a6b5a1da8caa2d4638b4e0a263781f1bec907e48b1a27d458757ea8b2cb5f609e32fb5950b69f09cdd792a28f9a0fe2cfcf5eacd312129c0b50a412b4a3b98dc183706740f7c5c3c80524fdeee886785c2af3a4afa3dff79e0909851db33232327ff4316fd18c16587016384fd68ae14e21aefe55342bb345bc925a76284649d7545df97c99fe5b7da5cdfdb6b6db6a7cac98dac5e1ecaf29d6cc318e4d6fa9c511590a39d237fe9bce41d11bfcf7b66b8481f698106d1d900db7148633bd7ebd6d9d39716c8bd5353a5dfb3df518aa2b4d9b092489724e521b1cf8d8f43c5029f2465bbd702be4ca4fcc93fb57e84f57189d24886984f685e5fa486bffadf8fb07dcb815d55195216afe2347ad29faf1d7f1b60c50091610a855a379e7e134d69e6cbdf44df5503ba2b17c04a33249680d2a47e612a5c9c4f7b80bb2b67a7265c76f1af783d6fece800b8f3aff0f2f108858948d643d7a3de4e4786f39eb1b15d9e0b27f78657200349f98f29d7faed97736b9c17e55c85db6206339ac69ef2382bad5821dc72a35546735bf8c2c1452c38f1df045cfa62b01ab7e524c1ac73c616aecbc6e919a6737ca00bab83e143c4fb425c49b2f3d5af33773b9c906fab5f93a91e5ff5198f8c5462bd2fd08810112a8caa3ba73f21b1ea09cbec3c50b3e8827ebc238432d688c17cfd6b81f74fd5d181308ed8083410a554352719094eeab7cea0fb7298aef76718619d470411093ed5ace21c2c7cbb97e1c5815d2a3e76f4822c6b61758117853fae0495980b1dfdc1d392a3bf8839d25ea3bdb698eccf97440afaa56538832f64949d86322ff71c83fb3fc5867cd0261d90d11d085f13510423c19ef8574e93daf4e429638182dbdcd8fb907c5039a4953afc04887e54fa74a2121533ea997a59bbef9c504cec6c904b1c0a51e688b8e01da0a9f7adf0f48d0b6e970f39ecca7d46542c339de8c1e93a0cbbe6ea38a03cf28a2488b00cfd085d3221f958d59e4760a8c0da1298693582abb9d2887a778bad8aa443e0786fe645c0235183aa4a9ac695a327fce8c344ed0f7ae0ea3c1fd213721984b4756ae969fe08eb4062eabf43c7e28ec68dbaea44b9d48f8e912abdd7ee777a98120718b671939064db0de156305d9abce21f836b8a75906658341a4bd3a8a91121263fc55b147ed518b8926c71d568145da46a8919814ccd5d50599fb5286936f6f06c54914ce4293c2d45a75a3a2a4e5d0c8049299e5c4754c613b606576474743b74c7faf0671149fad137cfb4a5e27ef1ac255db90f1654e8808102761ca7176a6cbdf037a08ffb38f4458bf0b341bfe355c37ac9e799caa1fff41b67637efd5b30b5e6889c063b51ce688e83c2201630ea5fca921c85034f9285c641e034241edfc115645a11f46062af2c4e541959eb5a4d68e817deb5885f3abffc919659da5c4f19dc512e63021839082c7d9784219c7e9932f8d13ed2304d378444579489cff6af87e7391a603e5e75546818c4322924751111577484f45a82c11cb9b16e226312a6fbb84a6582680b57d2b8d3787d5875cb699f39e23c242a4b1283d1438545924c5cf31e607adb63b78d13954899dcc0d73b5b3fffbfdd89ae7247ca51eb5973d84fde2b9b1c4d4ac9ff6ff14484e43f3c74cb9904d61053865afa6f5e8b7b308c0dd7454a46cede94a04063c1c5f3cda738a4166a000c9edb3ed8a67b5fc99e33422d42a637e36c3880f1c0a3ebc91a295dbf7cee5fe367a1679c7c46a8daa0e6907d6f3a140cf973be0623ce065f0c23ee9e1f743a01a0746f07c21268035c860adcce3564ddc6c8128bff9a2bf0b3a7a9bf706a7946272dc6b5ded4e6a8215db9ce570994a859dd44ced45ef31b28b382bb78182cbb62363046d9582ea67e5d1b18d1bb75b4b1a4b273fd33fc0ed6d71e3c62ef05cf431845d0cd7a8ec022d99e510823b905c81dced0878e67c01bce59bd8007d829e813f0aa4ca21b2c922c2a5672a179b78a5e9e9b2a37583e3d01c01f7d0d220c3339f1825bb72a20d3c8947c7e1eb2e3db033be9b0557a0a07a4180b9230803f02e55bc11225d77b89382ca226afc31b550e527c77247886af0fd52002163397e02916421143817a323a300586cbf070d1a9a663d5bf8570c92fa4fe3171a300583f5e5a40ac4c7872cd56ef80fde20c005c8ce88945d56f5986e11010a3d92345b6422fa29e9ec6a61d4630c7ab255a819c6dcd892122b160e32135b4ae0394ceda265c247da2902d881e68bb03a9bc50e747dcc5f628936e43aa2c61e4f38fe15e41e9b0f1c8cf1599ec21090c42da7cf02dc5c40b28630b69f6de51dfa15256222092f7fa435029bd37bef398287370bec24c2a8469290ead346cfcd5a5f31db0215ca96689c58294772da83278ca4d16c2ca85f9b2852f32c70fb5c7bdd71bd2f97c20d6d7ee2145987a1bfdb09e1ed47af80137d29b6b20c5d2dac54db18c6f2f91ae70abcb2fe97c25405837b2da7e4b0fd0f4191005cd790ef871da101dc49e220bd448e0e438764d9c3ed3e386a62b376871dc133bbce1be80cd8e8511e0f77e9ca8358a43dccfab8a5f30d7ee602345f9aff481043a30a518a3b84d224c3cde947cbe641865445eb091602dbb87d2c9a1f43f0b62df4d3a8b244997ec9d47d91d2e72bdf2cd86817181564de630e86f4cd01e7319ba5371dfd357501bc441300c3aa318077fb99b6e6e6abcd138acaa49aff6dbebf40f4a31719d87a9d32be1d5b9e9c52d46f5d65462d8067e9b77b40067af2399ce85333b72f95ce029588ec4b89f846f63c80b8b8a4038a7c837dd51b0385042666c3eb97bee81f2c8f1349ecd6438d2c7b39b854528e4c714ed2884d5010cfd63ad1f1070204a57ef70333e939cad57e8a81bcb0375be44e72f3ed81b7f32aacce702e2e9da4b470c25a0d8afed6d601393cef353f6c3424ca7a41a9aab6c6160ee2c7b648b90fc5db4efe197c2a4e40aceef2d50d9f2e91e9153cf3e83dd03bb486e40e7445598b895ebd41ecb1335c2aacd102b349316174190d0c188dec70eaf6589c43c5bd02e93f850357b173682edb3c8c87d0fbba39b1c7b1e3fcccfb8919290df4cc8c5974ead4ae989bb46634fa6e528125d74a199b5c1fcb0e21d20933763f87497a737b9b848da70df4500fcea56e4b3f412abc9e1c120ea2977470a0dfbaf549902239c18e7d8ee6a678215655d2a035b1af8cc0fb4917d72073b80c3eb51b404e14e13a01a568992cba92fbf7e760a39797bd90451aafe61d80a35564ef4fc961ba20dceee9b052c0a43d265c3b0b504fc3a379b06ae868f6d539c2dd429bc447ec6cef3b786ef12248efb51c98855393ca6c6d095cf34b0176ed9112c55267aa2ea6dabf39a169d8c779aa375a31c200e0a7725f4cea6d3d0424aed22a88feba01f579e51e10c1f3d28150c4fa2a328af1bcf498a7584b0b35dfb5e2afcf2f5fc7fca9b9ee7a980045ec308cb2267d136fd691d2a41f600605a301d2ffd6c8f6bd75bff8ba288e1843172ed179347200c0b71fd557f28efddefdf27e992c1c7571570678db1894d916be2be2d2108ab61382963b3f3cd91d2e733cb0f10d6d8466ec7bb46b34d81dd4f48dd2f18d12ffabe67d2c2e5997817140a721b7235c77db2ed8344eebdbe31cfcc7e69b7afbdb76c1518371bc64807e678487fe78c928a0ac88df88e84b194670bfa6eed126db7e7b0d885d5906911a342ae84e52ef692fc0ee4342190631d9595e02d694ea8fbd7ca6e8b62b9c066526479325290b98a57cb149fb895415f9a70e9f5211c04e70389195c31067fd1678c08eaa9cd90b363dfc7d5708a2fa29393abc4ce16a80913257b9ca5bffc09e09c25a493238d08827ea5428b29ad583c6c285ec43e4703d96d67fb1433a61afb2cb8f709741d7736ae8cd275730a868a5b26fc5878a87bc04302a77332f8a4010548541ac69e0773cc190e732aac0648345b9e3b0bbf732c1b2ed735918c198aa74f1a3fc37c57dc077d4c715660ec1dc16645242353716c804ac7d5aa363583c45e7b843ae206aae4a0fadbc1c2601a3e9da2e1523a472e9042b93ed92f55e1c30c4cfb9cf9fbb7b8a030d77bb1bf95dba106100b207c2e7bebdb160054742c3ebb31787fbd9d57318f0f6356d1db7f3ed198b426de914607b32e83036ee3548428d6401f596872ce8ca1596a229f8afe7b218f5f65afde0f9ebc894d940e2517d20a14d8187d99622e361793a4795b29f1f033d7356f36ff96c8a74a95e15e2f2706edadea0fb0953375e2ee0b50e9bf58ade69167d4ee5a0cc58aeb739d13368b24fdc56ed4f8638da1d66085dc70345e11bef642a8bd35df301c25f4300d4b28d79ae897cc709bb4c6270f8bb3f5f2aae5cf5269c238b9a1b33972376630bf91aa4f06dc1a8c6150ca15e6c85e1ad530bf03548dfd35a42513844e6977979a368fc2b0f4b99bac2c9cc816114036ad444cb292bbda52c95adca8bb7bdcc417a4cdf69d2f3c5dc980fe9c8f602ef4bf883a66033315d58b7dd96bbef363b62398503b274ff477d685a01e8bf3fe7045a7ffea83cda83b6695af7edfc5e8d0e2e32e31cbfa29f5485d8509046a6cc5e9dc0e5552f80c8667433de6ad4237952a1e9f83adbf3b136547f13139fc0d234e5345d6953ca66dafe094463813f3ce0726bf4611a1d02dcb29571f2dbf5030874b9700d457b08bf3ecabef954590763575d975e3387bd7e765007c28f9a41b9e1848907ae422acffcc19ee5e69b1cfa94212b5306870ab7fff6838348651f20fea36f65992525c2ed97fb42fbc7c650975a64dab9733d029138a66a14c9f234a660aa223ef501af4bb742b2a66ba662f65265729885a9ed19c8c5e81c14ebd3415457bf2be4c6855200d1774c6cd8baa70562325b3ca60378e9eb32d7d89daa69a8c0fc1e4746d6bb05bcab6cfdb203c5c9f4d3d3b12ae6e35e4dcbedfc1f2edc0adbbf0da1fbce36382129c74b0065d863842b36cbe6c5ff3bf3b94c532324853277cc4bb394b801e2f1c5924357db6e975aceccdd12e4442ea55d34bf1c96ec84521e4d93aaf979e9dd722578a52a8efe3fef4bfbb322d0c14afe1a4c23105bd195adde8282592bb7808ae2a16a2c3121b33f9ae73027e510dabeafc27aa2c3ed368a0b564106df434c0bd0e1aa74f5175f2ccd2995b6f1faa465c6e52e9f2e34b5aff6e46223c4ebe7a8e81a146c66f0f94637fbfc58bd6df426b06f1c1dcbbc949337eca80a382937666dcdbdc570bc0bf5a0539fe31c1d4928ed90abf6303459159efd0e75c7ea82a1030338a657cee106d221b2b16fadb7a0028572473b2bac5f069b1eeb52faaed5831b2b4068973c7ff014699c1a297d34092c57eeed555065cb925520fa57dfb8f358bb285e7ed6f96cd9fa30e6abb51915d28f527ba797466e5cc60607b14070a3fd29ae19034705ccde043ac6229887bc832d568e5f6a1bbdac86eb29cf06fa319bc094ce3d08fa01893b79f296397486f3d6d6ce2f46168a33883a24ef1033687f43dac94aae753d62796be5c892288c0821fe5da5ab0642f9148e29043ef257cdd541d754f1f8c0d44af3661632f8d81c5bff701c15207ad16a7b7cb8f1dd56bc9936c0181810406a70a057a290cf06293b8bbce346d8b71f8567bcebed82fa5829c9ec5f13c9b384c6d802e0b330aa59529bd065a849271d1251c1ef0e220bfb123678f5c19d1cfaad9cd00ac687ccca12c7f98b24d9f498fa19b937ba21915f53fb4705f044db8349b6a741000a7667cb3f445173e9bd601598f4a18388f53bbb02292c41c5a41778fa464b54335de7ffc051fabfd525e95e89fdf82807c14338c84d5224e654d7f8921abcb808e5f997010ccd3c7f447f9970bff3c14dc8be19b60480022801263de5716d21664cd4dd964a800459464b563244340513144b24f7366e026e26a136412b0073b28c5b841c6ac4a9bacc7efebd062be5b00eb9197292ce83065b5d66df25370d492b3b781ee29374a972fe5e707b048cc522de62325f901c307460f9cea9565f21df9b2660b5327e516fed56b58e6f87234a47485bf42ab2269662fa7c3f8ede4881eb7a93b983ee7ccc069856549753037d18a658116d6f353e6fca7977454eb5619d06614d1c9aac249cb706213ea66f02a7997a96c88bd2e3c86c1564dbac24fa0d8951e377105e457ffee9a3352ee7939b314ab4a236388356b7b44399d1bfd8f2f195730bf2981cf3714ea5ca9c8efc2260dacb57b7194375b8d79d78b22305f0553ade9c535cf82253b4464e10bf2079c1508752f1aa70feb56607682d57aa333d687c1ed45648a8aa82eefb49828103126cca4dfdabc5324c1382aaad4b4a5d0b33d8236fabe2d8fd04072b13eb906428b3c183b19f15270d1963374ba7706f11a9b6c751bbd5b9b1daa7f12dfd4a650234f8c02700896c0c7e1b54bcca472497c62125a7523b3b68eab6548f929b8bc442eaa7004e7ef163cd5bd5702dd67a227c70044091b1bb1811b1d44cd6e9b5f6eb9d9affe181ecf51019807fa09095065f33a3375afeb9583e287e2e8dbe65c7601e4472b4af94bc149776364d402206281845dc951a62b107eff1087ad12ba42cf65addece35ea2a646b5be62c806fe0027c320e533e82bf823385a0a6358f371c125d6f1bb45ae05ea78e2ec52e5b857c85d86b6ef1d17e115822ef8bd1e26e97c42cfe4a61c6131818453996533bc5e7846c3b3fb02c1867a4656ea5af827e2264bccf9aa75d26c34a95585aefdde6af688e49c516c47a5121741441cd6b085595302ded6e35a269a3f09b10f3305135840439e5f4c5ebafc7a39830589392fa3ca19d4aad934564e38f9f7c844e5b4eba7f43e6661186f9ee991d48bb222b8fd2e54c59870d68e5ff79a1a4521d23c277ca8df67d4635b70b597ee0ba782ec782a99fea0019ec6e481ff753faf682ce7dece3a378f2a608bed7ce58a1811c0922f1476e3df4e158ddc2a3997a061ba37c0df9628bda821c30fb598f7b38cbf0ee7ca87c5004fb4e762cdd48b95087e47d20360b39a799bac40e086b65636cc924b0f84e9e0defd0785cc1791799472c1fa2b95a3b729fbb1513a255e6dccc185ee86541cce7feb15e3c5d06169492869cf36970fbf8758d427ed7ba5dfceb13c76e6259418fd29a6c85690d0a1a4af3aa1ce3519a7500b08e47458b7fef8925206d6dba36b60a85b857d073e14b8ae822fe97648960f93c5058febee016946d9090e23058370042803b235ef7dbd9cd7a3fb6f6b29c485a2ebc3eca93b7663c4844cba8f40b56f5cf86a6baf8ecd57f11813bb732d0e6c6af2a042fd593b39bf3ad3eb5bea7349678617cb6d83850ce489d313b9eeb705419c43fecc73c7dc2fcd5980c1ddc3f7056e1c644d5713a007002377add212d689c1b3607422fffa29ea5b4080ba59aa2e7f84d9c8b0f664c7e6f4f5093d2687cd5e86b09a90d8b5dc7a45f26898196a1323253b91cfa13609d9d78fe1529c59e9afa2e7fde885bc8caa1718a9d39feb4fc6fc2da61c58bdc83a0a5a7f7713eef1945647a3cca1df0e4ac4d79e4334677502fdc03316e76d59f0793d41e6978254825c510a2707a928c1115ddb0bc4e595403cb7ab1cb8453110a5df16e02200a9f331fd98f7237a1953780c4bce0ce1d7145534ac026fed37447e0cd006f01fa2b407b725477a4c3239624e169bdf05dc833f1c364a92fc57de7b41eeb60c769ee5149fd4879e3d56c22ea0a92682202fbf746f85498590f612203fb9acf365b86c3d09f1dc347634be495b8e7d1a0cd3f50b13f8a88a3880f7c8760bcbe20ea32d72c01369a7530a19a9a8ae63fccd2c9d436b5e502d57e403cdcadb2c931c4205c0fd0152825b48999d3c2534ae8f77e13cbb8e4470c314ced8427a1753dab083f5c3edd746b995c4c69c64e74837afefb0b6b65257155d6eb4776038ca1f31d20727ed584343e8005e2a0f1c76468f75535357b10ee9448511925d6ffe3074d489d4b0deb29340c064d7f81158827cf3b034253f54d0a1dc339264f1fbce4c997c362056399c33be788342fb863ed97d3a100296fb9c7f8f0324b26144e9bee47d1036d430f66b0cfe1b667026d4657c095a44a5a725196cb0ace6df47dd4699acf74eedb404b841ea79eb4b392929c05bea32df2d81f80be5dcafae5e546bdcfd77e0b1093d42c76e3ac2c1a2f8467572d3993ed391f9b760fbf5d1629400cff45ee09c101182d51154074c1c5a45e109ee5bc4aa13081ffe8126b8913233aa9a815f0d86c62988aa1e14dd1bace5548b1ebb0bdf1a9ab41ca8a530035e65821eb49910858b16484bcbaba7d14b124c5fed08ef2ccd06d2b0cd54c7b6b9167242262aa8afa378dd5b118ab2a4151cdbf38e2f3156d64bf0e5001ca1720c2603a333d0e7e14db04aac5ed3e25cf86f2b74bae6f556c14d7fd3f03444dcf2b99ba483de2a85fb7783e66509614fd7b9ecf6f88084a9b069530b33392cad3116e8da5c5eab6999ae22107fb31840c2f59699606d07e7351bdbc40ced27551cf4305f5bfe7441686eb26cbcce3294af78e027c8587856783022b8a73e3508c51d468a418014b7f331e2f15444fc9d1fa4684eba3544b4e1be0b26ea76944ed9acd082d4143b8ea8be939330bfad62db429846dc3859f6b104527e7516b13753ec0fa76b02b51b42c73619a6aec3c1574d72fb38c661e24480ede813e77f963e85dd3a55d45239be939af95cfe1e2b3dd8edc896a24f23e22511c559e5db56ad607fab145d51f7a4988f2dc4d09dc1c692375090cc31bb4ed75d1c5857802d058ad6f2aeb96af9306b7024419565cbfe14340fde420366a6e22abaf6b84c29354fa225cd28851d0903f17960e60d7f9e610b93baa0be5f25ef4cb52ac085abfc5d52be504c99680889e1fbc2ad4ea306c0374bfda646249ea0bafea095001c13730886b8e810d2b450645800f75f62139234ad83156dbd2316602f926f10be64d2234c801e5ecae52e1ff9b83ab83836b8d44b933968f64ca07821e0ae768c63c5bb778f33a948cee246b41f0a6de67ef4a02fda8bce4df3bf71dd3a239ddb94ddf81927cfc2e758a73bffbe40d83400b7792771ba7df088307f56d3d36bb3d5e16b2c4ba00105b4f0f2096923e3ed3d4b5fcd15aedb5979172eeb411381888622a1e2e4db9951c969c23b3501f29ecb9faf1f8f965692aca43fc9ab500c363dcb5baeedb7ea98b6db4c2e2177fdb19f69e5f5dcfba9fa7879250eba5a07cd668c2b8648ded2b041947964f07067b4b22c8de62760d28d8948c0f5fc2ef35013317f5f69051e0fb8ece8f8fe0b587baa21e3a1dcfabe078b3504802cf9553207ed792279623a9f6f95095bf89fa872433d483ab7cd4eeca17993edcf5a23a901f71db6a529527123733abd48c4af6fa64fa7514658b7ab4e9354f863fb8a740ffdabde7002e10ec5bdb95f8985712da19291785347e60d8c757f9bb1fc0920f9d2387d8da76c6fe2c231ddbfece77490a75dd37d8f88ba740aad6f5e736a11a894faebba4b711b0a49a5b1c35aa9c8341b6c91706eaea52593e8cd051036934ea87cde521c3fc35729ac357570f99c3a01e3568b3f72db10b45fe57f8de0551f998224f9bd332267926c4e2a1c1da6259204b579ba3c69fc299504edd4ec3eb84c030a85f776bfc4fa03705f721a6e274a46966be7fd522df1c7e2de32bdd1d6ccc5dda3e8db724bf49064d5dbf86d74c91e100dd72fa8b37de90f152bb985c2789a41a0e51c11e4797a6a17f77118f12a1d16e010d393c9317c5b05857389b3e80b69d2778511f9b5265e72a279a324988158ff5eb62292ef720a683a78bdbd00627cee75dab2d208d9f55d1eabe1b486c8368c72fba2b3a3a4b9a48691e0e0e9c799e2e40921a7262581e09efea09bba9f1af4bffbd3c5b97aa8580c84781bd972d32e38b09d7de8ad4a80dd132ea22ebbed5981c533c2af917dee5479c04b72821a26d3922a1e8bd256c3a8f2ced518fd60a8989ba85b388ad419a3984546aa3e5113a396735c7e4cf699409a5b8ef5f6bf23c3c089af7877c17a0c7f8575720dfa43bf0bab3e41cf2634012559df797e26297e30b6a6bfc334e628ca938946a492366c4b72e5f8a9d2d080ef8da393aa9adbebbdd55782902982abb0c644b3e7c4833b9e5ec8afa43dfda246627dab7ed629e7281ccf9da3a62a9d81b1239d708c5201c573b6b56684c490294dfcfe6776b661c5192c07f8c4e7303bf042fcf8af82d417e513ee5fad20a269a83674819a0083822191014ce2280cc28d1954c4648614f4e2ef15e0b8079c42561be9f6fbbbdc3560124dcaffbad9fa42ae280edc0431df986a7ceba901237f5994bd8f39f7e614ccfa7eed80d39bc995425772763611ddcd736459789f8fc4106533c8f718b8bdb1c3a8f3b6848bdc4177f32b213cd5a6e68a95bcb79714b3acd73fb30efe8d8d812f258aaf964b2e954a71c3aa99a85419bbe85cb82672eecef1a011ecedb51cac2d838f892f7c7809564c440fb640f683368346b68e938446d0c1bf59570d4420d67382dbed17f1fc916ecac26c557d2504ec883c0a8c50118e06fa1a1f588951d10189a0aa879a0b42ee8dd75e1e874c54a5497547ac7c2b18345b5767e66d327b9b9d4dc93cb4b76b24d5c7bdbc3490dec2f196bdb298960b317e79962c744023a5be7e88fea81e8baf081f75dbd7ea3f55946f967c15b1e85feaa64bc0dd167dfa03c3cfa22ab9af532b31215ea62a7dcaab73161cce454e0642225eb57062de96f12241ba16d8e25a2034f321be5c34cd7177f30033071000fdcfe1245b3750d997d4c98096ce59ee65f55eb6ab514a442a7bddc38eaddf4701e9899c94405f352482bfda10e32cb01976bf8d85b5476a17771958bc47c1f55b69caa135a18b88435293c09192caadcdcf117f7d5f6086c89ca2d25dd69bad28384b47f40d26ce0720328800e204b26a0bf88a58df4d6203583998b4f8e51943fd9ec9c492d95cd438ef9c1a68e5482cd9892dfbaf10e578a0873814e49426e326cc7412d89ab232f59cb6cd5178007da3dfc97821e12a18ee77b7669414145d98982b0e9669ab439b41efa25fb1b0e2fca94a564a4fa3e862d1188df41d744af3e9acbd39d43a7f73c57476e2d884ed12dacbfcab50fa1b044bd1122e2de65982d545ac959faa17e693eae1942bb4f5d90978aca5c51ba22daa8cde8970745a64d365db77e09c5827e7fad8e2cc025b35431b46cf6f222a984208579be544931228c72e6a12c7528fd2921712c3280eb4555200be0d90adc37185105109e1a80a5e44abfa514f654dc310bc30dc408702f6425983c20fcce09a56a3d081068772b922df928e4d487d0f0eb2544bc1151c3c4d8e0df976d0675828b81a9aafe0bf72d8d6466b722877ca1aabe4e7394323b5f6b1c5e3f259d0b8dde4928bf2f711a10acc3d6187f68a4e40d7e40d67f6a9120965af6cf6ac3834880ae1277873d7fda5063e287f2c0633ec4cf3ee8562a897a16a38e310a0221598f2ea44ed3ffa0ee8a6534fb9805f797fcf1463e1fcefde03ad8400626ebc00acd18189378fe99f486f0cd5b1c67dfba8e7790819faa1a4e7fae071eda223dc9cd37f7ea1a1b9f5673b3cb04ffb107d8b3b671f0edf42dbf394bf302aee967a9b9a38fca9214edc47473ec46b6fd17054f26c1db4e9dc2b4565ced6ad792a3e09cdbff0034a176b1aa924be7943455bac5eb4c2963378eb325bb7cc74c90f8474888802a641b58d343c36e9e85be4051681b28d3a64989c635ec28baa7fe98ddc18ae23d81ba32a6a258ba9995d8ab8d6a6d3b663f9e39f8410e169bd7daf34445388900189216ea91e89bf84e63190f6c69bd851a6fcfdc2d0a32f3a34bd542d4e5828f6ad18f21892e3f4fe33118e1904af4655c8737061216d402ffa894425725c4d846fdc01201636d282624b7f0291eea501eb4ad8f58ddff3a282bfcd14d56f4212d1e3149d8784b7f5795538aedde89237d1eac95e9df95c19e6b69210f6cac80c61c1a94c7f20744bee9c9e4bf8ef2cff7684db867da9af3e321a1899a0b8362abc69087e6422ddc12457f960b91abdb1daa589f7c4968de0dc6f302f862c3057a35d5f93fe639a1b9b3d21caac7cbe08d9e3771355a08c529039cac285c36fd3c92778576ae535dcd5043575c34130c44ac085d6fd9379e6e23b347a70df8b3216fc20a79eb67d3f932000ad3206da03891d71254f488943fe0b2bb788aede17e31092c4767ce36262aa65f470f4f724ed7c847e6dbe985fe3f3f90cc7311172b460ed0c56591b0ef97a65fa3f5ee6c9167ad349e9d6284ae6bde762dee7739231ab2a4a31ad1ddf3ec317d3a85590bc5d6041716c3355866a657bf41dc9cff801181954d47554deb94870c128107e04245eeb1c68aaffc92d0ade01b814974c1f68356f3f24305945b3cc4b964af1329ece8c6d3cbd71d0a210df41aec20785b9cebe09b6e20fe6b945f41b4ddb6dbd8b18ea1e8d6ea9fecfd8e385bd0ac3ea6aacdec4917aaa53b8f66846fd9d507c55fa48d24e6f519591f6a90b6a996ce0fd42d7b3088ee5a70236d70cd2933789053f45d17ee3354ee65000155519384a3e9fb4ff72ee7f1465ca94e3c0281a47cc569e5cde1cfcf1d0f3f35cd63698fe089846f0f744634c68fe74a5fcf651528fecb7eeebb813e4e31f1fad41a6573e0630fa717e9ac5e896a83f3462bcce89c154a86e5de1307cea9f7c3817c7e88cd480b05512f5ba15aba99bf39f08a4faf15c1de219e3ec395e6d42519027178a985355d238899a29d011e840cac340fac99476a610270c3da359e5b711806c5633f9fc6b1417af8891d16000bf6c303574513950d1b068971852fc3e11bde4040cb501b7f7150b035897d537069489739ad3dcaa76e3a4a00bc715fc3b115938d3d907c22af30cc6f0739806f46ae4d418a47fc455c7d7301169f5581a13fb9aba87dca0bc115bf6abd12efcbfb383cae527a1f1f8048219630b470398f4d8062c6cc2e586dcff23608eeee011b4f8c519271ac276d7fa728aca79cec392c0e8805e192b6e0b5430d97412bff78c4fb1b9c2621be4d4e0cdf90956d3f1f0a59f73576265c5d388169946d3c6b7de55bfc6ed27f673d168adddec699caa679aed64c4ddd0824c2f1f4e7b21780e224110ee8daca9b6d5f1159f46079fb36e22b2efb09ed1bc91ccc40db679a72677398179cc98da267f9c179b3938d84d5fd44ce108b53b8676bbe50ab85046b37f7fc58f2fb537ffd69730d9250f55d35734186e58c4df9641669f5d0d17a0d070f60aa5a552feebb8b310afdeff85554f6bfaa4252de36b583e0f609b583922a4b78eab8bd3570efc4bae0b9ad81310abc2bec86654d5ad5432c0f6d498d6f264d0fbd5f9ffe678e90ff9e2f909d5c2b774a7dfe40a642ea6fcbb41248668f7c4c839934e928469a2aa9e2c121fe2a2188b489a9d23739b8512cb51c46c31ab8554429d752d4c5c911909ba75e7ba8198254fcea5c14766412349f2620bcd0f93658f6e5c127398eb8459ee75c8ef930abea95d92a95b43219bcfd688a4eef8673da69bab8c9e5c52f8906657fd44b36a789532decd3d7b0f71062197bd8ab1c86761a36a86971adcdd46925789156ee0e192503522e9f023d713ed18b9e3b0a30ef6a7bd7365ee2d3cfd93af9296bf54fd6f3f0b2c96a3f4e9490057e496c53919a78ab55679788dfdab6fbb6a815a3d3cff823120c10146e225cd9c565cc5d4ce0590313b50de57e875272493b4d9115686383e222be1a7236f5d45de263ea05c0acf2cfdc63ff9f1d622e8eb534a904d84f114479f29a40e21a4c2d94fc5d284a75050a1eab1cac1641e2660b6bd7c3ac0d0447447da315aae17cfab3fa99ef254cbb6fbf2f250ca1037614d8ebc9a142b651f5fc95b0ba066eb1385cc5e7680adda5ad8a55478220597af9da7f59e94f13a880dbff4f50e57eee010dbfb84046b568984a84693dab3e254273bd80fe5ad50af85f3e750525c8f8322dce3cee3c6274d052243dcb8c8142cb299902163e1a9255cdd96f1c1c1dbbef8275110be1df96fdf6aa0416c111c2a4268622b8ac43038aacb3b5e9126b57cdb97c8b6b3e57bba910b75e6b7e24ceb7b8261029a61d3e69466bf30cc4836c7ee1285ddaf22c73937c3da821a826936bd28ce8c30555b8ff2ad21401e3b75a25f0049b30ae5f220a9bc5c7d15a7f239f8a0a6f4ff53d81e6ad7037449341915f3d3a61e1b736e986d4b57343642221f29992df5574ea87a0641ab9c4ec7e2eb404799bf66740a53e0fb0451ac7f21621dea87c93d6901de9ab92d4f47dfc7c4fe570b1eaaba0a3da38fe2c0a3af5ab2ddbe2baa14442ee2021417ee2c44f17dc66d919c186afdedec20e12daa8521a2636f82b1f38f1e9b32af672f5b7c1bcd96c0a163e8de7e0852101bdc3b02a94a23a638bb602c8d7676cbfaa813ec92009c62418246a24a7034f4251d02436807a53918e9146cf8d0052cca130b6553f63a2ca95eb5a311c324839f0a88a39b8c696a35af67ce4068c8c6229606fe9ff9916684980aea707a38d0355f39e47330136bfc1086f00d1f58de2b2f92f84314f980b242d4d1d8af4a5417bbaced3c5f510eea9eabfcd8d360cdc46f1ae5d290686ce710631a3800e98f3a293bd94e142208f3fc15f8f7f9183329a8f18708e53a0cdf2cfe69369a072654328c0367f5c0a57d57617575cd7b351f3e68ed21bf689b1ea920eb2a4d0c62bbf8d64de9b5e92e0936b038ce1921e72d156a5e3635249c768d6df96288f2830eb5be67af47f24cd5aa912c1e1588ced87cee543de42cea84ab2a3700767b2cdbac3b9e8e8a04d75759987dbc63287a33f934ba0ca4c6675bbc337115dfb80fda2ff04e4b0453f2905ad7c89c23fde6d10aac74cb211469a31608c4c80953493865721cb4c46510143e35a08273626a524abbfae9244062b2d422aa7914b72893d9a2031dca17d3efb9a633ba26334b518af8a77fa8023ca3851a854c14f655e095f4240442ee13ae4a629125528a4c1083cf6aea3217c21ef143586e6e9398088997eec4f503eeab22e133f01ae565afe93c38d549bd6ea06d9120942769ec9fa0afff5b3837cea0e81df3dc7c9eb3fb08a262811f05888a786163586854c0ee9e3a3bba03d2424c89c1aaa2e8c4c38c61447e8e7850f2d88bd292b7ee379b781797eddcb9fe4faefe1aae5720024f31217c3d8e20b6b959bc5c963eeda64703c4a55af1b850f0eb80d450f4e0161fe75982abfe71ec04f4a88888d8886cee296ad247b5eac1b89385ef748bcd6b7ca575d8206910fc7947dde8bbb0c607c83fc729893b7282104807da04e71851cc0f11fc27949811ab0fc260de4f187b76e2b649636acca60f48e9d745cfa554d62d40c58ce349abbf8de46daae2f71cb54a817b23ffae7b9ac20017965c61e48855de7a4feae228e5914ecd49303b68b7613c0b9aaa2c334ee63070c9a8e49d091103e7b746c42da6946287249cbdbcbb170ad28e6d1da7b0805b35c3ed961edd90263a4038580cc1594403c834eb5e59db405b2f58f865a8a2b8feed0903769fdcd705eb4f34af3d6e9dc500012e435b828d2bd6462b545824dc71781e945535eba80d95d5591c57cf897e0e98db29da078dfe5084afbd24efa4085f50e1c80a5135bb810f0ed19850c4fb281612202667a167894c6d93afffe88b76254fa0557d95695514d6fab0448779e20de92cce203e4f9f8c9ecdd43866f80f1e0b3be763dd27d23f1539c1f012c148583d56a295ffe9e99c59cbbee15418875122acb3ca3a970e2f7f0ef1147a0947147dfcc003057d24d3b11fb038ca4cb7310640eda0f57e2eda48b0dc8cf1b339bc286e770dc50b3337c62685a7d481879495aae4c3ff03d232c254207d0b11ce89ce8355fca5e95527f74eecb97b493c0d40a9644cf0d5d2840173d26806e0dfed21c323b04107d0dfa7722f6e9c5332af250f61732c212862fe794554fced620afe0e0ba1624a66524cab88a329744812247c1c75b2ba2929ae43e7807f0de608fba44a739b2000dd3ce0a3099d8e71292b02e145bd6442c0c00178c63199e19d3e5e7b8159bac48d16b98f172e48d94cf0338a15020a543ffc45fa2dad323c089065584b97581a3a4ff8240f430805a09361e2b76fc67361b8a3b68a11d9001bd3da1768fe88a7024091084f2185bde4a53e3ca270b9df9b0b9333f24e99a3170b8dfe166e7861d8f382b3a17588c957445cf4a21ba5114c38bb3e57b6b0a09af3ca919e29f6755074ee1a72601d917e8e8ec8a613aff6922aa8aaf9e883fb445899b9fdbf5d3f2a2fce4193c27d89522b389f5657417d569fe6d4e5002a931fc95d75f9451a6c275040cb51ded759fbfbcbb03b0c77e91e258752a12ed4f006fe382fdbc296e1642d9d1d60930703a9ef5d7d1c64e0d779bb69d4a96544a1edf12452fac23ee26b976d105a08ddc4822a7fac3269511043dac45cd76e7485793efcd2b54dc9b4675765072c716a23fcc2d813ad128c93764e2b2f033f80ae3a4ec4b26c96c22e41717b306b59bfc2ca10091566e35ec3c8e9f8babba1fe65351dbf4da6a85e05c35a70408731ffa0e1db290ce326320e4de125dd5f55345d52b47822b038b689ff8b171468cab007aa993aad2fb8784ee4b7219df2b5326bac776b1cb6b79019ea85ecdddbc6e468fd2094d0153552728f705911b2bdb995bb688c3fd8c6f269179af0e86cacb5743b46cad6b4c128e52c1e9fe9786414547f285fd5ec7b0040a54afcd73e6bf92f4598541aa709c32df5fa57d8465a8e4bd118c27c41a98ffd47b29c9c83ad2ac510a564401255f007a7fba8d2ca739c181da6210269c712dac4039649485902c90b9e0359543add763bdef927f5d8841f510ea089e0c6fd9b922db2464e376eef21b0c57afd5ec0d9d816e5629e07657899ccd6572a3f402eb14ac34642b03a1a0129d32122251ebdf03c1833afac50d7c5bd7fe325d4bd911c72ee00f7f9e49ca6c77105e81732c6b055d2961f4bf02e73f07b3e5615e47d821421d72eff9bd2137fe8185aaf7829c09af3eb17d48e71d9053e342548964825eeffef559752aa01379d751698c115b17891afdb4f8015d6494f4019ca50181645940c7de298e9c53d9aaf7f005f2514d6ff7bdd4d4aac7bba6ce35fd741fd45662bfc2923b3e32ce1656bb3c03b2fad27b778c4397d0b6c24460b90e40763d7b8ffef64e2860f7aca178a5308cd077f07a1d290b837557246a1aac61ffef42e5cea4b4bfe37203a91375476c5a423f576fd214f82d2d99815c72fe6bae2a018f05f92e15b3c1457260f38f010bf194e5e562b9e3b8a36c67995f0e8877f9cdc9b76dacf7e4f32b3b425eaf814b38d56e5ffd21eb7a14525efce1539b40e3aa30b11247a1b47e98a284640c1231698f529eb643943ad237ed68771d36c0a287864c1d3d3fe12e29761d79487b4c4870ecd407d623aec2a8a925a75c3eaba5542adf69d1fcc4a3cd06b8545464ba8efc26894bbba522df4aafde798277bb8fe50ad7f3bb5901d0ad097570942b63671bbb8043f969d7b5ad18f7fc6b7947b6a3444d5f2aae287e603f268c1510daf470e6309241f8d1e668536ac05ee8e4a510d32a7250fe26c7715b3a2cd19ccfca88a2fb410abcaca98a69ff5b1500169a18008096887f8e9b39e6e2160288d772d0a6fb3c36eb2846569af9e5dbc35309357b5a590471563e0213bbd5887856e761bf3fd24d691a9b52dcc27bbc65de175f4239ee0c2a0dc87ec45b396063c81b9e421d3947a99a9aa82246bfbbb69d1fd2c638aad37ff8a39139d6d42173347197afb007dfcf4dc8d17fd05625b203319ef73488d2e42111631c047f9aab8f444cbfbaba8098ebc0967f5969e875538e0a1c6aa6bce3d5a4c7edf8d36ebb035fb172c732bfbe2bae5d520425043ae72dc8a790c6fed7b0c4f606a6b1cfad8b848ce7f3315deeabd5c8a3843b0419103af4720bcecf05ed2d91abefbb3e6e1ce61efeb6e2e57b6309a536d3608dbbf291eaff8248d173486ef7e506d862509bae9f19c84fd567bf3628a047cef9385447e8b833e33f28836af027d9b4ec0d397986859eea506e8fd77fbcbdc105bfa2227e4f48f0b3ab28db9fe9cb3d8bec63d8a5490b057025837fafb6e6fc8bd2a51cd3a7d4e571f311caccc0c727f0fd67ce15771e59146c1454bfbd4642523b2ae4b6f968dd4a15cf1878aacb69e4ab0056ee37e08352ab628e3ac1a9dce5ecad5c8411c0170d67f2f9c280debe6c0293dbd12b65826aacb0fdfdce0a19887e881cd4dabe7384eb087425d73925fe6984be47db6c3b5005ed8156ec02c92a044deefe9ed6f80a2fe6e4f4b6f662c2c325d4e64b08f5c35deb8f6f84d5c27c5a2a5070a1de51a9f5cb7a3af6597aec19f7e54fffbddefa0ebbb311c6195c0638dff5c803a54ac75ce0b8d9221b3b1d569c2ef8e63f84d7dfd508b18ad1f455956f44d11bca586c5257f7063ca6b2d7afb7e0c3160f5cb2dfb7c2cba0776c3c3e29d73ba5f40f1084aee20db465b205c5029f7040583eb2a1cfa4989330a9199eadfe377910a9fa265df9677497548c8e6b03d041ebe6b45a9c8a054ad2143919a73ad4b51486353c630f23de0c71f0a2ae1ad24f6f75c7a33de10517e81a3e8588c2307fc1a60b3236cd97007b2a0b79e4e45f88dcef2ee3ae2a311532aca092350182c4e0311a05a32d7080ad61ce9cbbd605f5d2bb009e667bb1e75fc03939bb15e3b2d8eff04260fffde8033d1908a6586e489e264b3418fd813af0cedf794f52f8bfc9d142903467e1611eaa9c111447ace094e0cdc9e46ffd9b2f531307a8bd61760566a694c85dff0284d7cfa3f37355d8077d425d5ea1bc894a51bba65792fd6d6666e66d752bc8405ab6f4ad0e226d3029f534505efac4ca47cdf15e4abffa19f52be20ca3f3cd2afa7f2c01908c1e5d24246ce1d6f306718950e0bfa866bb565033fe1d9427ab764d2d9c0bea5c47bf244be25b759a2c1c2467acdc625f87e183a0245fcf0f399162ffa0239735d2d42c8d4dfc2010b857f52474c563b30e2452b85585b047163094f91455af2be129707338cf200b722ee39a5a94f622bcfd7965c8130d3d7d1df660a3e21b46c8545969aa09f955284d1864a45f369ed7742cb59ac643b76a3876422ded4403d886843e609ede4bbc4e611ee4a27ace7879b95b12737f4c14e345ec3df371d2f77bbea89411f65e810b09eb36f1918c4924762c6d7f70e6ae59ad718f1aba9910d386be58cd7096eb05b3ee90024567181b02a34154424685ab5f2a9f754d2f4719ac7c7c78020a8e4ebcd1196e0c223b055d5e6f691c805e50c33152b714e2061257420712166969799c4199a31b33c139b09f9fd0107a349468e4a90621f2db05425540d3a0748a7e996ff3f5e34576114ccd555ff4723a53146888e429131e22e85d471a6f81f89fe290b5c8fab6b4861bf08fda3e7533c05a24855563ef6a3330e53cdf4dfaf3aecf5eb232de1a080dbc38f7c5bbe9182fc342d1c14aa2f04475dffa7581dc844a9396aea76bb69fca7a76a0b88604111ed3312c3da53c88eed61d5d9e903959f127781d7bfc06919db3a05c598852b5f62b25e828ce43a05b6ad9192589b6f300a14aed4d0437ea96715299646b33a9411c95fe61a12ef7543c2e2a97890d2afc51d563b9bdad94d5bb48d15dcb5a8046a2bd346dc0eb25d7139cc2c9898cf3b26fe60ac9e97f07ebace68cce304ff551e31a5053ae59faff8b88db3812958725e8cfac15e7f6c9334eb0f23449ee6f1c88f05a1f42cfa15c6bb9497ed01ccc3c2fe360936d12c6cd33d2e703abe6db0a44c7f8303c94a3e215dd6663bd2c14b2a7fda7640c056b160198c056603bcf430aeacad45e64ab1d96024a4fd7622ec020fa98441fb59fda50f7803a65c500d318e7e4d446f1235c011d90134a70c3779a3a1d5a513e85a2f703adae40af0e550f1151f36460a1e4e986b4593b9c04d123233d86eb6e09c33977a9bfe1f894e5bb01a580e5c81b7e297af932593eaad42e9e7c7f1c48491f5a30ac5cf4f593492611a68007b7f9d48d98e08cb64542762898474c2182c3c3d9b23ccbf3cd2690a6e0fd0e61acea86d765338c77b3cef97a836eeeb4065bc5dba144da5afc89a381d1fef5d29e91df0bc89b104e1db4fe62d2b2517674290e6449b03674d171849b8b78a97973ff8f508ecce2cc2cf889288063cf039f210293189f8377efb0294c7a9c17be8afdea67e7394f261ed0a95e8a09d9630c8225931e2418d2d02e3e494df201c53228706be7612f01457f8cc570249cf276172fa9949684b43d2e37e4765cd0df30d9af9106a5a3ad8785244cb8f6b0744c4f30ba52724140d7e37c91ad2c104e3de2d1a3a0aeff28dc1db4776b62261f311abda657c829fb925c9fca6d48119386174946766dab0ed40cda2896d57c5d7c9e3d0d443fa38034b4d1e2765d53df2baa7d5f2c9cfac90ebff94ecb4662deb6bad360e1a395c2db9b25524926b591c05278b6c9d93c1bc2b7189c9d4141f81e587ec59709948e74304151afbe97a0ce4bd85a3a528848384f8bb42703f5c6288d64cdf57ad9754421895c330868cf531c9e86cef600214fc10aa786a6347cf98f72062c3afba86326f95aa31e40f13e329571bb469e4ff78b0eb35a61873ced78b242939172d23cc724b293dc921df44c66fd98a7b158b71d83844ad0d38a12d50aa92334607d0f711a86d96f13a8ceb79c38e14daf0328d437157d53dcb4aa084de7fb2d2b2070dd22c112fe4ae19854287677b5fbe0774a9e55217b3aebad81bd51dd64dd74c5c896441c598e211476261e1daabf11e7f7b497e783abaf44ba7f57afa85f63cbf844d19ac34564758afb6bfcdf04764d1e377885e3bf0c4f0b9076fc53f763119322cb74c5b8c5e59507051f1c9deb92086cab33e53f9ae14e35c5717ca7ea7bc33ff95410d089ff7c7fb2f8ec955635992fa42f56d7a9be52143a60b3571ec0b23ac829747fee551f3590d9f23ac2c6280e853942da17e41a4f174056e2d8edccaa62a8e3c9f0eb4158b17cb8e8076cb48d2c17c03424fff359402a6f6cafe1573e28c6889157ba497a937c1b320f605cfe7612ced767f35570cd5e25a98ccf5984a93fe9a5cb2ec65eb7da441ae970326c01773e35735696d3e2bcbdea38becf9c53121bc280a9cb625e793165be7d588cd218b49ce2f26a3dad4c2b23060c34496403096df7fe1d85baa1ca40c7fd6ebf4fc8ae8bbd483c3068b62f36b8e754179418c7edabf62a59d6808ec8487a5383cde3a742c608480f7ecb0b3facd37aa0211df7c51aced46e19a4c825e3102feedbc33e31f79b932825fabfab3327df168e203d645fb70cf994825a4e51f3d40c294c750bcc99ae1a58dbdc4f128f729b68f5c300d6553dbd33f313a419e7703e7461fc991c534540aba8e3d0108bf315fbb3d1d5954185957fb19bf694c685e7966c90973f4a830b4cbf360e9fef548988346c264d87c10feedfe7a91ffe3b1618da652de4b5457b6a229a669461741e12990dc5042868f38c7e46033f1000f2199da5e090001e1468f643fd35df205f45c4680c959932b876f9f5de02127110b1a8f902ff4724076b077d60cd36715b4bdd3d7c22439837ae9a4d50f22e9f09df7729f899df99705f43d133448c6ab3adce3e6ccc011923e01276ee5f219ae57a84c6e241ce5bd8033bd0bf6bd6f6be6bc70387d4a5570910f5b1cf18bd4f3d4bd3e889114e255e59a55d89d1622b4ea7ba0fffe97304f4653b3675ff67ba287767fb894f4ea23bb3dc9152444fdfbb05dfe4afefa397e828c192294a995f543cca9822e3f15186ac5e2a277710924cff32299d88e3dbd571c6aa93ca611ed8898977339d0c395b7e4d8a5682eea113dcf0da81f2d448b8496e3d80dae14da9b8b6663a66ac64de8bef4a7d5c83d2d80a1e95613a892dffb443fe2348cd2bc21b655a64ea8e3cb87c2e5c00c83f23b8d302e44da30bab7ca5af3d58e2f09a588b2f8803ada6a5fae919b59b9be6f57525a8a9d12bd77e6aeb82219413a731be5fb293fc8499f497746194e6be0f85c1615e92b47a5d9d4d05726da4506498c3890ecbfc6342b0d517dd50efada7aadf9938990820839cc21d96db63fe2c38b99769738bf2312465ad06ba50d96cf677a28d9cb30321ee7c9deb04f6d71a39677f6d2548fb27c30be47c0863c273147ec27802e70e83ea0277cfd946cddad096f6c539e8d79b59055d7f5e6a45a3837186586d379aeaaaf0b889aad0c72ee106fda345c51238108a3f76d8e41d389c6d6e508046ee0bb4cb02bfbfeac16de6e5fb3da70e385d3e22556c2d5a5340e6c3c2c7b330318e70b12ffd822223ff352b884b22f0619b0cb2ac8edf4ee721c01ad8ea39316f907b6ae935376162e28c69668b8c3f633be766d5aefc3ccf11554a7125f32d0921bbacdd3a41e08428eef4e73e8a8394b6c0f0fdc36eb4ff9de371baae721db8c74a96fe44002e2f77d1751aa85a652f3a24b1a767dc04102354ff8dfa127980fa35ab8e6f36c5a387a1438c93b4dfd42c18ca28571913c8571fa351461a2d65a602e0b73b01f938a88a2099ccb2bc52a0d036ebf7263cbcc2846abe0fefb865ac0b7b140d6237863999304ca5d034fde3315832ccc467f53e117a549a5c715760abd6dfad56e4c6322846e572f6c0f9f2229f33ff90ac857b7522106de716760c364e7cc7814fb79b9fddf80c9671a800b03e7ae1b827d47eac4933d431321c6cc4df9a6a63867e128362f351d75cf1f4fc0fe16139ea5c1d72629b5d70e8ef31ce4c988b21050e4ad09781a1d4f59be80712e998af1d9c84096c295cee39f57e94c39283e087be86ad3d0163e75efeab3b2fd63eb9c2ddb253b43668a2dc626e5c5b528dab7ed722684ea67e04094340d232c731e5aab5fd3556eedcd224cb8c79ed5d49ede51c0bc36c72e028323b5d0718f1f53390f58a50aea857caad265928157d3c78857541955d75fbd51435ed1a1d412f286c11d60440133c9cb492c93860774e1fd8395cb8a60e439eda948f2344ec2967700430ccc40433f95621c688fa174ade1dc20447ad11b1c1a3ff14b12bde52e942f33cde5f5aa61328eeac4e5e5c61925a58782bedbe43da35c0043f698cbbba5ffa712730204594cdc5cb33d33ba74243c908fe237e799823ad1a77cf6e9a4bc2d19c8fba94829e9613e93ec6a495f85b6d9b338926da8f7f40c4434a40cb5038315b90e64b16e53e74bd8e44248528c8a92a9c6d6b6d136cc1a4b23a374a34002ba31b87d37ace4f4175e4222b3aaa8f964331dcb440221a5811a77c97ba1595043bd2a9c06fa9d1a431fe9b0b55415aae87341645e56309a5975c805be15aca6f3f8a26fa77f13e4985c16f99e0b5e3292c9e040df0349bfc72b9213529d098689d25296a59a3eb85fb35cdcdc87caaef7bdbf8fa7ac34ab8177127d221593f669bb8affda1a152fc8f4f91ef5bf09ace53dd56e0a13b1c27acf69323fa3099004f0037fe1d29fbf63189a487ce18b910a4760244060415878b3f32620bbbcba425290f5f6155e87e474f81d8b9040b51f50aaa984d0acf19c35508ae4ee3ad765ee5128d44b5c408283a2da798b145e6e08c4857a01f79d697ba9971e00e8b068bd3baac61ef3bcfa1182fe34c84fe2190cc786f2d65d673fd982325859c23151535c7f79776346c74ca4b229851631a49167458a3c80e851fc83ca921f50c3ab9f4f918894edb06d5ea13f4a6f6bab2e120d6ceb990622cde9d8333402cd3e204fd9af91fe0b378eb4a8cc87f81301d3f4c80f4a8f912774a9143b38f307ecbdbdec07103de1d20553c7b8496e9aa1ee32f3619ace111ce2bad3ca7608c5cc3f6c797b1253903b3a2ab24e53e58b3f35e79cdeb86854a077bd2f6982ab6354b60c920073825a048d70a7f842f01acd3d51a0b35fd4c958beaca4ad507f1455cf96d23d9322d97fdee0b2ba6058bd9b582c9878658a7a8b5592b0b8535bda571f4a04b4dd057c309512bb8f4c107012a33cc3579e5f798065f06f7fb96d8febf59e4ad14105c7adb630a00fe467d9cccc91962307692b90cc76e60ef2fcfb06184d72b47b5e530d0f799a28cddfde71cbbc74ad7dfc7f0e110ca3049ac1bc71fa40d730bc6e9b26ed714edf3b250494190c8a4b87902d1f6ecf23477dbd7626a3d3490060f0b629b3ecab502542ad49468faaa60a2f20878c12bdb692cfd7905a78950339e0e2c1b5eb8f69839f5ecae748590f33bcbfcfb2be1ccf038350ee98ca3ebce47602bdedcf630cb372a4cf47a8a7083288e9a4e783c0ec7373a3dd66e85af7d21a723f74ff1e2150c39e4a6522115bad468bb212a868d6b88c7cc2c1e07a9a7076a4cd9c4719b62d8006cd86ba72f9caa20a42079584cd62d1a149f468b825218c41b723d7b73879ed88f99475edc849d8f7665cfa18c354c01657ce105136b382903f92df4f878c7270b3efa598bb9a130a6974a77ab21af7e566cbd5257868d3a50dbfe20d49d9e8e2c94afbfa81f2fbcc10a3db7932145f7929f00dccf9e02aba3fe8beeb192d49e867c23549eaec5d4230daf7bf2ec9ff30bada0907c38c733b0b0a60c3d34fe23cf64285a083264c35c36da5c97947470b58ce92af1a2cf9833ff93d82ff412fc2ec724c137d1114467edad83aa9c1dbf2a63fbc63bc650bd5bdf8b17c955ee7f84f58fa35b9a5462fa8e4b8ca21f19f6de1b4ac9970447c809803a812dedd17b5a267815ec00bb658a948a3824448af1ba211c152740f158a55e421a8064e0b795ef014330d858cecadc75f235abb7e34ae00f932b0153cb713ab65ebbd8a2101b19dfdef9d33f61c3becb1e71ff8875dd1990077b0eb48c97ce9f3c9557851ff0f7dbe0ef020a45cae07d3f1b790d773689643927871e80534f7bdef7665773985053940207552ef5e433e650fef81fb7b7236894b1e072fe02b945d945cd58b115b9f6e209419cd3dcc876ac811ee01d6bb81278410ea1def33eb57b05ff320e361366978cf524841ecab91265f9bf3f90e30d7acbff49f5a3e3eb60b1ea63d713799f873a18d27685fb3e8ff129515d12b7ea717ace543ae0f42e7a7bedc46d2c9b0d9ad9598d6e61d28f6a68ee2ef5a01cad7adfdb04f84cb2245f494caf14ef39673c4ae89c9356fb31e4ccb00e36004ed256e347be3809d27e950eb094a4bea89d714bfa2fa939d3793a49786072225ca7de747bda78d3fd743317a527c8a0541b3f6048fbb783ed2ceafc747f37f3aaef728da18c0e6e4e0f67c51b14862b385213c590e5bf508ff44f157672ea6e6fdbad8929d6f99dd740ac4be64719d8679affdc13c442fd35a0154d763c0c5c384ecca1468b0e031cd2bb9c3ecb59008760dfdf1527ba5e0d3815520cbd87bd637589826f67aa34961b7d214029387251a4c6db61364a437adf9b1cf720abdfa5ae66a4de316902319084c46a680db313c7514dc29d435d928736f698e2aeb385be990414f28874ce17e9892393c1c22eaab0ab8b8946ffa07172c9775aec07de561b505334f02bc2397a3931d00a6d971d874610b31816a2813b57bddf250d61ed8f66235e080e5517a198410b47fd5a9efcbc2b7d809dcb60c219b978828310e20458ce12debc44367650622db27713659526b820b765037014f05c1b1fdcc4f5bba5e3a73938401bd6e38ae5fa5073c4aebf19e9435f628acf28bc7d5796a9107f9bb6a9a1286db47e08100178fbc1d7b88cb28052cbb9979b2594762822bd58360cdf6f79c1e4937f4d30548087568187f06e4dd69e09ef539cc3ed4d9b5498ba99b7c1addb31fa86388b32a70220b954a338dd0c1f09890a6ec95cfec297f41df5de8aa1e6d5b0d5eaa477df37202b4ed18362313ea4024f274ddf65b800f4e431b89f4c91c5b4e3ed631fc7f0ec25c868c3407387796f638099d34212dfd4e95beb91be99e9b0fffe966e9dde2dd96fc9f2a881795afc489f1c0b4626d833e4fce29477059e4873906baba5df22e416170c463e07cd61ce70e78a187d6302cf234d7249213532f63df865f86b1c34f26b93f968968e260a2931dc28ac4bcda6cd9f8eb20b71217aa1b4500593003366070ba8563c0bb2eaded3eca11030533a448ffde4380d8299ccfaa84719c845ba5f7f150529e62ec641cd7f2d31056b072597a6eb533402332a8d2feff3029b4daefbd11d29773d149bbf2d64de923a5e4778799f1c07edfbb20fb17f964f4927270f36bae74876bba971f50c84f2bc44a6b4b25e661b55132f881ea944e5bdfb8d526ffa2097bc9c674b5c8e7f1699d4c71330b827f80ee0b5e635dae00e7b0144dd9cc146d7604675dd1e33ba41480dd91fd57c9f9b7bc3bc77ba4f7ea7262f3bccfb28312f13f9ba597124388b8c54daa7ffe8eff4226bcc703da253a2e8bc74c1237c54f9a568c914d03bc75e371fc63f0cd834691ecb6369761489841903d26153d09e44a0e2a709600e7bfc3f7c90bfea330652530ba7df2b24c4e7401008d4cc888f53a0c40855dfd32df6297c3bc0c2128c7b7df137b1ab1f40f963907749425a531c8e6c50bc250bd0b6bbae0122a834c6a50992fca4d3c1b9fca3df8370529fafca9d0c762335feeaf70431c5895fd36c04c051a8dfa91672c42c62c5fe1410503c220d8914da875c47b50587db32f6dcc23e82926f852a133c737b1c2db72e9a832fe6903ddcbcfc8cc2b1a7c3d5bbd67b4423c5c4c6454fe1c3be3b3928fb81680d9b90f1be5a907c5f5717325a4c70bfca92353320b7a9452133b9e4d5bffbe37941b2a5111e252342c968d834658494f035c8726e6ef68e72c417f278098fa5bb3e02745062b7613a50f0af51b10ff1b464171e21eac3f4013c83aef11b3f8f8424ad9c54adca6a181db471385f64448122f538333911464b5a2a6434767539a45766ff54087144e3a0f91d41a7d7ed836d46a4b31368661aec3be44537db6c8aea78a37648174c5f45a876d83391c1da2e26a9dd4bb1c8f9f48c06487616a899550732eda84eb1e43f8f84d49d70888d153574c119e0f7f048d72096df309f49f7297bab58b6f88578d911d96e917e58e69a947c03df11932f5191f12805b81986efefa3dd197686bf9f2ccc5bd2d6460a857f0264ff465dea173abe2e718d53debd25996fd3d920cb96aa5aa9e8321d66dd0c75d28a5c653888004fcc326d9dd534567eac83a09db74ba08cecf42d94c48bf70cecfb2e5831294c42c145db5cfe7fe167483a9eb9033fea699942d1625dd3619242d228c8113f8aee35510de984f7c80b9b3d7b5c4373a8ae11d8211943454d6571ebcdcbd274addeb0336e8d900b32d22cb9339f02b2bb8f25c191cac14f24169bc932eca64caa5e8f041c5cd2b8e775a5bd952293de4c8f388a8888f8a9328ed1358063b630f81753f26ad02b30d734be26c4b5bd2b46617c36e5ac37ba27c82a3b75abb40e16be563d5f4197ee9390192eba4c92eed7dff31777f4ed9c9618848de35b296205cbbb2e3624bc3dd29e22acc046d015f30f305484692ea17906360d30598672ca4ba353dc1ed9f8eee9554af804a102d135f98c431e19e7abb33a3fd5526553eebc037575eaed7c64e19534d3d09e9c6cf9551862b7b04b6cd5883fdf9186e6fef6adbcd8054fde58da6c299b126200039ba26f80c6e6f4e13ca5e971176bb80a2b53380e380dd90ea05e23ead70e159937aa01b4f4e89f92efacb1400ba4112aef9d73d7e2da747294ab3731aa9caa751df45f04fdf84aebcf59ee167a3100f45ab03225255900916027b133b5d27fa430b7d3ef7659f3bbd5c3224f648a6d0834996e9ecdf6da1e3505e0873d32b4725f25c3e47019e7b7d6e02c5f1c288f852a92951e1dcb7fee9abb91196749b7f52601f4c8dac899f8de041c49f5ae20902519b9335916677cd361a6a94b28bc8227afa474c05f027919e5d829410ee0d49f36c49f2e529f66c928c34a61f21435c935a93554e2479a48dfb6ac9f31b5fd13830cdae3fb71ee90d1b3e530c69f6ef0dc354bc98be9a0ce877c939c1dc83c79bd908e5b8203797843a7b45c759b4fc25fc56afe899e3246c06f349e9189c6cf040019e701a114a9a315c7f6c6cf3f79e2943cf893e0ddaad877f823895b55bd06350ee9b759ea5690c882273ef269491e84dc2be57392117d76de543618a539b528b4475895cf8161301d249f953e5575c45c99674623f1718ef7dd4f2ff84a558085afae93b84591eb2375acbfefb1e0a540b616afc9fa602de820cc7293d2f8c2b1a5352541bbad27f38cd675f47beafc0128e56da18238546bb263f53f69b5f2996a8d772668764d42aed72e87fb25118c4eafcb2a78dfc7ce28758ec94b2abe54acfc83ca3f073c9722761c29d9d7bfc09e04e1c8ee3f8a723a24b0825727bf2d096589b3333331cec0e6ad1d62c082f3ccd1594536ea394d2cce3dbf168743226255fe0b54705f96c38980e8dc39576ec735034b83d2bc69902dfa5add8ded67fd23932180f71bf3effb31d8ed1c16ec800b10ea27ebe86354c7f52ff55f11e1783a2fe6a6f981bc0bb62b790b1da91f8bf247185c9db3ec1f7b1fa0da6015ac8cfd4f71970c621ea4b48d21038fae2b81e0432d9662cf4c0351ba12898d43969dfad27b6131571724e2d2658dcb882942857263730085da75de046ed7236aa11f4500e44516e5fc3a3da7a2f29f8aa6fb0bde5c30290485a4dccfa0e4286285c82d9d2c377695f392f5ac75bf7eee210403949bb1825d4e10ca1a1b94a0122b92bdeafae9b7247ad7f89a4389628a9085741f091c56d6cb7cb10e541a88cf338d9eb699752ef0de0baa34b2c294bedcf779bc72fd694ca62e70d84399e5036f835c1076849d02c531bd172ea0caf1606bd4cb0605c9ee1c7a15f5e5cc7eee666a27c8a314e34da53f7142650c4a096ea35394d84b77a67fa1357cbcc708d9d2a5819758c8e8da4a67a281cbac08b0ca00168f622d5828b4034ad54dbfe299221a84b76cc63efb54ac6eab17f6f6eb2d3ceb52ffafc6cfb69a780ea1e8ad60f90ea2b3e02a02d2b6ca66a8c450e974c3f063b2707da20f11ca5cbcc56454c6ade1167b5507f1db386d85d2914dd17cadf657c7586bd37d687dabe34a3d51d9c887670e90f3cd78f6b3661e02ea381d808ded75c093853bef96cceec5704b678be1a1a9fd2d75dae00a7ad8dce4316ac5566b6894fd9fc2f1adc31a500f561566dc43f7294c45283850287dad222b3f77205fa423d537ef4b1d0218076767f08165f4aa477bbd17174b285841225e36887fe3a0a3340272ef61fcd48c40d9ff372c78deac5073b5e7717b242e81c6df5c3a0e35aa7c06b763c99c89842b040c95348cae542ac29bea00cddb4990d5384b83d1ccb63c13b23f70ed2318db473be03990e05a1fd65eb2602d412ff8539a2403da11a7abb7f0b3909327759212600ce12acd8380f487a7dc6378be6d23cea5b3339d40b0c3c7fe20f6ea4ca1b9d245bb5167b4e8231485a950289876d2c2048abf55a9799070f8c129de52f0347a6a185ffa78dd950cdb3b193ca73d345f69f1c3d6efa7937089fdfb30c19d0f378da91f257bff73798cee185493776e4c711522998304ffb32fd5b7bed6a91f3c74f301ab11cbf2a152f9cf5c4e572f29adfcf9a0b7ca6e5a7ca07d9f51b3d6001b91d1efb0e8cb4636b74a8f8992fd7c2173c7204480e852963b4820f8c33d613046a855710d8246193dbb533c76d4eec5c441dac75dac8ab685f92b142dee2f96e1fe3f936b10e52f403f1c220b7eb6074888043f479ba0a92f0861f27399f6e3ef0732f8b2e7c27f4c0c533a4a5dfc47b86526915433c552daa828634ef2e1e13dbe59a7a15a69644b7ce447619adf5a60b4a204ea64ad26858c253caf08de102b51dc4824dc340f5ab4c25107e32608152dacc660c244ae4c8e39d7e26ab823ccd863ab06b14f02f0dffd22e130348eff2af5653fcc190979ea3291bb9db57fdd7bc14134f76196553ab1caf547b01d382eb756025c5567dcd8ea4acebd67bf8571f2a1882496766a60121c33df865930279d71746f6c8f81a440e8be5bbc32e8887905305f9322bca4652f02a538daedd4b27297d6a15aaa9ae5d49ce5275b8720caca9751196dec5f77ddeb913cae14c0ba7a1c86db351e6b5f7a4f2f8d7077b774f4ee5bfb0068777f474d3b26d5c19c338d6c9045a3c8d3ffce12ecffdc6082e0a7364553d56c94014f1c188bc4351de5124107bbb9a7b1d1c2032bc9be52aea0afe2cde5bc60c5511cbce92ce34e7f0356cc47f3a10ad1a4d1bc282568653bdff909c6ddd97783e29ae1bac30fd45ed809727300172017737802080ae02c99ea1827893424ab5666f78726de198f9666bf0f17c2efd4de52b77f43e762fb6eaec1680159e7fe911c27f5d8b244373aae70d5428d8d02a30b9492eab5dcf339c34f9294e84419e25562ce7c6acb2bf30cf8ad94716bed4f2b9828fbe170ecaacb3f6c9c97ad28a85aa13c865d59fe49b69837f7309713d62b50ab6a8df520ee09b5c44cb96a1a5b6224218efd8fcda666734c1736324bd8d1cdfcaf6d77b54672f6ff283116216938ee592fa6816f1243121bd293f2308f6e2484e00cb308a803ec386bfa228b53804716985d396c024fe1ce1d5ea0e63b18ef49b2879cd636daa5f1fedb51e9fe47393b41a133c8b900afc82e7b9b21c43dcb24f5f9d92adc42d453f1513a8571bc14d87db7df9e08443267db6154895133d8f554ab442354124f01792fca277a62ebaad4a2238d74aa815f8018d0650e773cf576b66c8262a58f74f7febf2ff92915b555c0d6eb139f98a5e72d299e5976a00ec4541412173b33f195af2ef8c50facdf5d4e46daa533d7e4f3530d070c8db14d7231b2d54bcd7d0460b2fd8e6ac711b07a95b318b183838812ba3d01a9d1a05a9f26f10cc726d395fd426abb2f13660c6031d1b2b3b94454b64310689402a3068e8f2f06abb93f876e3a82543306121022044a7aad79a58c5c3dedcfa79172e858ebffc01da4f0e56974abe7826941f024b23a518fd398afde40d414c15cca08ace3a9605264b7aa42821baf74e262f07421b14459e7efbc1290d638241bee9e57eba56e5ef88b0a74205ed8b845a766785b3577f113e40efc4a9892cae821ddcd9024ed8489055737a6d31addb788d02d5c3ddbfde092c20e8dd54bf9a12dcddd508739e14de56ec570309e3cd940f767ceb7bd4ad379b047abd92fb9f2df3c3d2ee5be9bfe8bbe251efa3096404f24ba7083208802fef41a8306ca091788bab3928a78121c7ed0ac450ecfc2f4f66506e3f5e46796e8087b0853d4e9497da1f80672449f3ce96d8c3e1b78466bbee3dfe857c66648e5697a07c8f58eca9836961ed205e6cd194f176f2556b5cef14233c16424caa603d3495c03d16630b6d4638d9097d403005c9a91043427f51f1be70fcf9d9c1c370595bab662bb7f372969bcc68ebe2bb57ced55e343337c9b7a66faba7ab3b1d91f807b26b0141281803c5c43cd3e3df2f91dc9c1352ef5fc7a47843fe7060d2689c7cfaec5b1ee7d222e6309e4c84d956dd4f6f39da4e99de57fedebfde682bd66c4213a05b3a019bfd29dd045147f1f43584aa0ab4bc51ce8d9cf3ea2d7df23a65769ccc4cff1c4eabe788249cb1b38c8524f442fe25fded89afd2c2b1d303f95fdb1fb3cb131f4aa85f2bdfc27d929cdb3942df1bbf68a0b8eaf9edd43fbde0a8c196fc74cdba3124cb554c6689f60d5599e0158f1e28ab5e564f2362c4a301f5d1c666dd77aceee832fced846cef0d75f04365f6d3e8de2a3f3770766554974e81932c62cb0f5829f23e674d8ad0e90321999dd53f708797dacf25ce4e8a10e0d9bb925c30a9e55d08e09fc889f955dcfb1c81b7a86b04e69211d3d546194bd8d09f41a8745d30c23f7dbd210ae83b5cef5b8baeb9a014d4d122230a0a6e3138236703e381a9f5a8a29b213974e7a221c6f2feab591baa57b3f249b6aae32f0bd43d050217d94f9aa301911678040d57deb4aef727e5f17f265b6ea88e08895714249a9459348b97ad54fa8e3fb3fc54d24f9fa4fdeb6418d75618dc92ed253841f24f45d1ed39a044bc663a2cc0661068b7e5087cc4a0aa22523be8ed05fc06b443f413e6b52fde3bea46dd885c6ce840bf2bb88b4ec10af68eb1e085a657e81a98d627f0868da48684552833bd5bc220fc0584a0b2c3418e41e2315567b9719f5919a85acb8129757b792f78d2ec2098e28a87b8ee4251e7d154a1aa11d64dba8e79a3ebb6ccaf2b83c07bf60f04e6286bdf794e5ae0f84409d2953822c041f4dbcd230cdb1d54b74cc11f148db2c40c3e817fd456947956675486be86b675100510db6723835ba1590a06e5ad68f6e776362bfe8b8137df9d3c8673d03e6a0ce7b607b2fb7a23db16800acbe6bb67dd2be108cb5828022b0e0e22bfdff6874bc266ba053662d3205667ff26a491ab460dde2fc837343fae3372f2299d1226f7ccde30fe983e60b7751df435fc130c5b8771558b97ab080246ac1d43accd702600477eb64ce9d2ba6239849124abb6fb499a84bd649be4dcf7d127ea6a7b6d22feff5242e0daede388beaf911fea7653322f65abdd91af53f69bbdcd500c1683fc8d49e5389d9db376cc2dc6b1a821f324498f817e34f249f9affd3e2d7c3ff3d5cf96dfd9036cfc45c691a2382727dd009a0864567f7b0147227a3800fe063fc8ed9163ef12bc7382609bed53ad057becc1bb7ac29008924c4aabd91f0a22b9ed3e9dfe9837d94bf48fed5b5ee406166bced061d2f02b74a592b8e5fa8aecb72b55b93039e686f5576fa5b266b69fc195cf24c2b44a3ec7e6e3fae98c5f24601512c4a1fa0d073a415f70e9f242ee77206779719790b4524340c5d81bc747da7d8821ad5697bc69fc1f7a8f5ae83dd196300d2e79f69310e4fb03eb166a85b8c115fc3fedf5d75e2c79c1ace44cf9523f460ed9fcd87c1af587eae507d586c8ad697af046bf864c8ac85b6be43d7b83f8d1f84cde06fba3e5b072e07241f8f269229eaef7bc3dcefa48376a8af43b707d42d3556f61f2d905af5bab35c6ed59ccad4dd4ffeab84521b9cc4deadae9ed5c7ee2e95f24e7fb8c8b515979028c88b910cfa43eb9fe56c30db71fd074550ad338da4b1fc4018050ef442cf0ac997cc11359722ba2abffb35f6c4b6abf6baec3da227a5feab23ba09e4d1e27b1cf9940932b447e921c4ae31beca762c37fba9dd2b204c27ac1c1b8a5cb1a17789b0154a45678f786190d05e6252743f4e82e05ed3dc276cc812a9d5c19dd0f6e80d67393d1ce16d98e94bab823fab4038a7d0e083f52e0207db2d22c071ebd5eedaba51f3f9f951259da63a121c47ab16433fd650fa25e6119f1f20d6e3c953227e799e1a0956b2028d82e3091438a3303b9589aca87f556b7c246daf7a1994665426425ef6b09fc3bdf5b0eac4076e831a3992ee20b154b225021f4fc26e221383a5f3cf89182fa077925f108b86f6e21cdf642ad63b29f7b7113e0a0c27679cc4c37ba62df4fa91cc48e3d336954aaa4df6c055326cdf1f36644752437333ccf1ae374c1eb69e801563e37d53221bfc9bcb3ebf28f1c75c5c20ab4fa1ab3c8a496499bd1d243b7e38bf3a096a6d3f930676cbd430fef2acbd464d4c497b9934b9f7a737c446f813ca0e75b5e9c532234121253a639eb7725df508ee178a4788a7fd7936c8177c9e5b585869a046904875d6612fb33c3318377827412f0aa419044fbec3d7f875ba882c59e5ec819c09017566477e2ac4c365f0eb9209f6f75c9dd53815ddd515c1950124c614aebde65427706eec1a8e1cde1f091c1ddbe63eff0c3b7bc8968f54b1f0155768a4fb7a53428d40da1ef61eecf3297b5ac4fd4c5c6a329f392e9ffc2aa0c1341ef186acd42723b047aa2901e7bc68ff0f372e6e43ec1a12a223ffd2307e6dbf1045306d2e7768fc84919627cd9dd7c2fb3b4c2b24a9062bbbf0f33fe68f955dc7d5ee0ae590e9f797b97029baa2f994961d8f87e351993569ebbec6e500678e759b5a10e534049f936c2de5681949b5e1db136903448ff065be2ae27f4f45ccd9e734b5e8cc6dfedbdf09a5333bb25d415558911ef5345c4ca405f1486a473f2684dcdeeac6ad69907f845344f4151d2ecbc325bb37ebd8dfb19e32c853b73f5d5fdab0c93d9e0196ffe0bfe697c701c7b81cc8b517a895a87d4cd359e993a8cbd957ad7a10f08afc07a4f22e9e10948ee80f3fc7d2764e3f5ce708963a0efa8ae5a1657272a894b78f1b92651baca0dc55abaee6bff35ae2394d3fcf760f4c3587abba21f29ceee59dd656ec7d4ed3ceade5608acecf0c2ed3df5479d6b01035bd8aadaaecf86f213726908c431921c232161e09a5515e12b001e78b0ec0a65a77f9bf2e68bb0d91b1a3b861c325039f5c79159e4bd2f05fcd9dae31cc42bca113d6e458583b41b787a81ad2dd008182cfae55d1bf3f5b8652a1ec566fec8050c8a30005639dbe3607d48447602a0b8e293ad546c29bc85d0a7ce6e8baa9a8da7e06fa26555e7b07e68a0e9a2e9725e8b7050b36af7be61597a572d879173e32e6495a539acd04d6dd72ec5ed031e2375ada160c388823a482149531280a4570eeda7d8b338e2687eaf6548dd4542b25bbea79fa62003e4b5ec72bda87072dff72cc542fdc18e119aec6742b9a50dea78b495f744b3622161d3fabc9a8ca13b19355b3364638b061c95473f570ebb52f9e7074dcbc0e1960b600ebcb54c0d76b204e3214998c2153ae598730b1dc04ef95b951e5e68246c4e6140221ff8dfa5486b69fe3a809bbdc8d4e1b1c5e5140d25de77266191f780e9789338c508853a7e02fffc5ad76318688f401b3226a5aeec19bbfa7ab8843070aeeeaa3283a929c2a7f1a8d9deeee4f36ccbaaefcbbec6f55e0a365f1f2743573dac87475e390141311a218ac62e98cefa0c6feb5ce325546a0b80f66a7cdee0165bfc992f576e49d72dd06e115c9b0fdf80b26619fd47cdf2cfc0305831252bdad3eabfa97abf791d4eb9a231e5f4c00a64b30691e81d340b89ac81b7a6a04c75371e7f02398acae8e94fa97e96bb25f3ba5316ab158aa44dc4686c1100dccbbfb88b57ba83a17c699a725abb6b5fe9b8f2b82f3af2780a014224585df4062f2d01ac66b6888132515ee48b5196f79a43d892789e670c70e4135aed215aa164afd8b526e5ba05125c2aa4eac78ed902824b51eb6154873b627795303f3e81d14358efd23abcdc56088aacefa91afe300e7b677c573fc5414ed6ec0104f88a5632cac96ff365a26c1efe4bf31f1b314646e7b75c4269394619f48d561133c07ba1be6124010316191a7ac8df57d1f649863b923c4cd11ced1afa12e3cbb6fb595405e4cb1fe5033ca02707239ed334638b6e514edf7989d0a70c79bf8db24bbe35c155bfffb0e4c0e75093a964c9672ed1a383adcaa4ea4e59a91e5379721e9b433b79850b728a62d1ba0cd4b7ae525bb85bf07ecdd1850e5c9ca67fb2a6f0ae10f77a18a13a7009331182b47aaa08f8db4865681fd27f0c3fe283fb36028ba733efce31ea690a1b19b13aa58e45da6c9a4c8b62f6c51e02b1cd60d0a1b98b4d78f5e927b3b6ccc645e82b0a08450dc051a35248dfd39d5f66c889874d1a7bdb6d93206465193963524c3381bb91f6ee91d454ed97a5093491a2bbe510c9e766d75a7e953995403a7bb53cb1c070d466d769fe6301e989a80b5168cb5e92cbdc3bfb0b7f07ce691fb9611ce85c56aad5e378da7e11c439129b3d970d09ad06d539845655d9329a7624a0a4b6ba0624611317e0498161d7734ea90cf41e47da3a8e7ab45a02d3b7d1f13dc90f6160c08a37c9db68ba6c5eb1e18d0758ba1a0ceaf13d57babccd782064ca64e47fcd23612f3759784d8ba111b5d1ab649406a3d778bca8a98a88d54a1fa890d36f92d93aab5a67b8dae33d81abcea28ca4070efa23e2ad7372abfb96442ba29ef09a538fca6a7ff6e9bcab5379e4c5619b89ace3223b32b7b72754fa7ef1cad80fa27e7a3eb9d789809f81d264e04caa5d262a764b3e19252d202cb72ed7aad9ff2b4b0a972407bf1d35c3b437d4754254c617a8c6a9c176b5175fedcd040101ce74e452068ccaa2acbdcb852c005797ff62c01b749f03edf2ad908514ecfd5b3254457fcc009c2883589a3310dc14f1e368980cb57dd4c514a4b5c14c15b4e39ccc4d1d0b35f08d14a5baf9a42f6552d87e441ab1b33a617d5db835ea660da4950c9db393bf9a4f2b7be68979e15f6fbf5264e7e247de11ba140d38d209e1825f748e14596f981441bec1c61460bc5efa2d043f681ff58cdb9576a5e75aaa38e5ec01c19c9c0b1b38c138343c157b830456862d149c34f10db79368c9012c106f5075b5d1b40880a1357708a7db8d67fa639255115b3fb62fb9cdbf37e0aa4107e7af3cc955eda8c2b9520a348602577236407a981c7068abe46af19f1ad25af926b2e4d896d15824603de60d7bfd3c72f394ba3af4359f6004f2ff9c0d014bb1cee939908ad20ea489811c442dee7e9cdeadedac3013fbe4e729e22655f7f38dceadc766ae03a860a4706ba8641ed16198ab8f268cf39746db4b0777d4f975ae58680c1caf24593d808e90a02676857bf55432449da125ed192714b4c2015781fda177188ab320ff4b7cf12facb10e18258b857992cfd8e2607ce4436eb39ccc6f511d7c5727e2711bad0f117861302b7577cba8c39db2fcb596c264704d382e93a72f4ea25f57ad87a7596e56be05bc711dd70db79f9d052c4bb89ac2ae137ec0093bf21fc282d66b6116554cd433eb1ccc7914418d0f802e465ae3849c5c5068c2698da7a5266cc93c94538bcce898534531408ae9d4355fc8bbae0c614f7c453f0f4487a8abe8e8f5092c9e4cf9eea8936b86c0fed4f7a097a2b3f6777738499f08be239903f2536abb324f65e849920883b38285864d4a2b9c113bb3009fb4efcd2e2848d1c7dae7d3fc89a3ca1df2d5d613be8193379adaee6be203747af4cfbbbc9e68afb7714b10b190189161fe72466c53f4160b3de2765c654fa357ed846fdd9ef85b068a379fee0f3920a4ef0d87f2b2c9777830e8d5155923bdf167ce20b99895b9698b00758c98241f8751a5df146d489cf195a9529b943993f7a2b892a555bf845c5756dd2e33ada653372a809f4b4ae6e5d16af86e542b02e83bbc8959c3e81489dab833b24ef253c389e912096ddad696a928339efa9f4c45da8a5e2c0c3658547f4d61be3103655cb8d5844913ca8570daa40489033a4c8062c811a59c68e99db15e8945c984cc0457747d4cdfb6a6b4a289214a72b74b5d2a43bfcc3111bf9e50449e0307da8a6942605b639ed0178d8f974e1b6efdc04e94bcd0f9b155cb9e6be60c0e2be38b3b99b722c44077ba7a02f4e0c63ff2477c83bcfe645aa0425d3f4dfc25afd775d4af92d9866f1ecf241d1ef8ff99c8d3fbcc6aef969e5bbc89485306c66a1f27df1c2149395a0127b8f7f75d3e4fd42206a1d850e72fe857a86c8694234953921eb6b5fe9d0030eb910e7225a390bf2b44a45cdfb0e43b5fafaa79335da8c43a4893530ec98c0231f7e02aea42bb22565275f72e6b11b5531b48b4212cfde7ec3b25daf7a72ff8129472d9f7797c4cdb9a03df0cf112041b76c13d6826eec156c5f9d0ee86648640f1006b1c57969911bab4b8066ab3b5a4e50a1e4a27a1a28cd1ef70d96836f263d2e215ab0751dcf510dc38c8e3de28b2880b49d4f9559f95c91d5dbb4599118802b8bea6b4f436c74e232e4094a54936191132d2fc73e5a44ec796a1a7d1f2655471be7577344d6641b5667f699f3badb0bc768e0feabcae879ba948c08fda11bf4958c476e41d74cfb392b9bb6a7fbc3ebe353e38808191c1711ac2a18abc905599fa4c9725220149ab449207052365e222640929a0980ceb7f949dc4e85d180d17d163ad657ab37622bda5a5954775e135b98f2cd0a85fedea07ecc4f0e8c7669acdd8a945a56f095a9cccb4a217600199c9d3b9bf6180827e2b601444cfe3a653d50fdca7c5a20c446a14ddce4c242ff58a1b0e6bebd62be96f31359357330bb0cdf77397a801159dd35b2ef365427863286d37265b254e5332cdc412ce02c96c2b9bfc9b834a80f1124bf27e0669fe2a491036694671f73b9f6b8b08cac73d4a500a103e9dc5174a5698c6aaee1d43d82d853cfc6beaf4ff0ceade0472ea7893e6efb9536119f6e2455466359afd7333dd0c31d01d6eafaf896330d916d6d7ac8a2bcd2089b2cb3d4f0b80277c0515503cf0ba5196246032a2b0af99901a4a3757b0c30535b384f0066d8fa7fa7c8a6a784de1d91d979903e23bc695f18e7b2801f53c8757a01228b12af42e40020215db6d722fbf1bbdbd41acfa585fbdf890fad4bd9ad83dd5fd94ab7952f19843041c74fb5f6312eb33c1bccfc44a447c0e5af0945164ebe0f0602acf23d83a036b6d7f2bab699cef79500653e6630ca20e7cbb21238d5be8c69d2481c80900a078e8549781aa4851f3ff4fc404f4a00296a45b1ea2a632f067020471a50dd136b0497581c5622adb39356c35c1fd6838d5a514f9b45ae8301c05123b85563cd9f891a1c352bb4bad1fab161eedb75bdb32b57fe985ecc77d5b052da05fbc3dfd35cc5e939b1de8eab4591f6d8acb668359b8e08779c1dbb2d11e4dcd3f0bc01acf69ab5ffad0348075e53b8fe28f9f46243a30e71d69072893d6beb3bc3f841c44327cb437ebb5ebd445624cbb266d9bcfd477ee684e3edbc863e6a167ead0d25afd5cc268e533f3d601310abe485aa7b15e421d641bffd6ee8a7038461bbd9d2fc2eb2ab61738a061b074b8f0d4040094ac40468d9d6729b0f181a69a63d983ff4070d3b2d2aa530d27dc16cbd698384a1792a67ea647011b143a2eb52bfb0d3daea1422fee646e313a039bb61208a400b5003bf16ae66f62f257af61e86056dbe45d710731d42de2d58d5fbf18e8242d2061b05c468bc41941c37b868a5acdc8f2772980499daf10beb7c2baceb8bc6df343aed6b2c683cd1a7b22539cb67660d966eb4ddc09a83665e3750e1c005b9cd0216d17c4afd095c6d527458f991427dc6263f444ebf0c41063ff5d1d20d3fc924b531cab2f9191293259f729c2e1e38c3a3799137ff9cb8d351a69a34dd2e453ee42d8dc574b66f9b76e74bb3019903488587bad1ab53223f5674305e75927c196f0df534a97a16435e4f05f81cca3cdf55f1686ae3e779e7ee746d559627c55c57ba475836d6a318391c713d1ab7d2892423a3dcd621204100402d3c47e2b1a7ec4292925f8dd7c89e5b77724fdf107c5cec04e2f05fe9ed7c7479d5526905427d57e9ae02360a599f5b8afda4b139b99a01882204147c980632c6d3f99674c651d1395478bdf3c9972f2b625b13f197b07bdc448344ff6c129f3e02c5f83873c928a9f213e2c1dce42d7e62f9dc7679195551812c0919894963219bd151730ab8fa85cc82b87ef41771ef0ed059b13de9ef4c7980103dfdce2d2d5d2a195e6c998bc8fcdb27c74d175be775fecc073ea08e5555d21c4b39ee2d1d32c0f94f55ca40239dcd6cd106c00c8fe5a2e80cd960d9a96bbd827dfe759835785d528ee9b823a36df594c3b135eea4f1f357f9d8b95d69f152aca730ad28e0407fb4eff8ea63e09f1d045a6b082961af4f34f63e980b4d786097c4206099581658674e24cbd0bea7c8f4ddafbf2e6ad9eb91373dfab5ef3ac654d52afe2d691a60e5ca4e6963be3331ef6b682530d9cdb5f2e669ac94a679f28a0fc120293790be5dde04beb4dbaea5548aeae1a64e981dd0dd74b1c5e9693df25b3e1e561f2389323dc38b8200eef0d80fe496cb167afb1830eaf3c74c7a0fda241a7c81a27c4d7a8947ac2f04eb53025a6dac1e5ea27ba986cb88fe06ed71a374572dfb61fb9980d55473413caf6eaed3bb70e2750800da490a19340c0be84364498b192c9d4243f695d3e39ccf588bcb2e009f289a34f19b2cff13b57135c4d906e0b5186eeff5a5871d61691c149d9ab0a89f1e3026ad23a745acf73c04c396272babb50e1a7c769483b0746676bb1aa6207252fa08bda6b5f9f22f1034f296a4825d432300f493cc09e3f17ba1126de6f66b95567f4674bc3540783ff996bef5123001be382a57e32ab7d4be22a01075162024439e619f7cddcf919bd909d9c64a0d8a168b23a85c4708c2f6ddb948f815ed4adfa09a09a545415da20239e7dd2fe140205d933014e75a9040f986d32550721aac38723d8ae719e3156b27be0c341dcdd190675e88f051583d1a81f09f6f112c7facde180fd140ec3bb06af5472236a72fef3c36933c3915e366fbb6fc2d71765984c74708b8822a48a5aa253de526b56b50e5f57a587fd590e697bcf182fe319454888ea4770ff1b219257702fae9f6ab88e88684db357b4812cc0bde6566cd155773e4a345fa7c7e712d80b95a01434ac101c17170920c309d666a2c911df280e54c5e671cbdcdac48a7733f8ef3129f4e9f7c95967094bcc005f0476cda988f93cce823aeb40d68818d9f4453c85fa94262756729cc9228a29cec1c5e182e0c9d1fd3c1b49d8a9fca6d3b650e8d8e25f5a3fcc1f04afd17b9f31e604f96c61a97672933991e3e1be3e9861dbcd36ce579ec7b33d7afcf8b79263b1611d763c4d837df4a3c3fe6479b3538b3a82f3d7b867bc70de7652c87e525c115b1a348f6da18ca5e22ecad3dde9c3a6e99bbd38998c4401ddafa0c081532237d83845d67e4076c3e627465c3d8fcbcba6394c24b46ecc831dba1823535653c57cd4aa515b2f58d487f0d4b50ab45900e285a9623834f83e313af86e5f92b17e88988c14d7146aaa9c54d634ef2fdd5ab87b322474afa673dc41f5bdcfec3035cb914876e4c53270dd7b2611fd6bffe9a35c7ded79131a637ed0f7b6720c0fed2048ba2daffe8614bd51c21a642b7187634c551faa0ebd62b0a411b36658a670249ca4cca68c687deff4eac565c286edfeb5d8fbee351ffacf09b3a91addc06e7c5760fefc3224228a870d60e47e673bd0145c4eb1f43636db1a74255fe4765414775991b5e2430d2178f6339d9dc07968cb5d2007ed2271c4014384fe8ae71d69673a361cd6931d3631cc1fde388ffa2c5eafefb31c7c564bb337bdf3ec977aeee5fe457658280e32d694e7e4f7a067adaa6abbbaf1b4c7a697a18040ba266cceeeb157a7d739d690530356768d9cc61dfae260a3f7d72d8e005a92c6a1a6717cf0f09d54c34082a700bd24f62dd85ae2c4b85a673cf7b246010c379d265c2702386ca709233cb43a2fcacb04056b6bfa2ca90dc85a9e8570b7efa49088a18308d4fd72afed1d54394e701700e24537969fcc27dc8d5f99e9f557136ebe4e67f222d61f251e026597513d9468abc2f52c1b6524d81d102953240f8e022a35e542928a3987f2cc7f36eaeaf8034aabc516552503139508cc8bc0bbf359e4c8bf6000a46a79bef93584e46b0d7f8091697ce2dd2ba31b946b1822b9502ca35c95dbae3d4ee595ad9f3ef507b6f850c6243632731d70da7cc81ea34ba055e0a8cd1ec8641bfec13bd7437a47f30be797fe13b2655bce367357ff0603ed6a14b758dc90979fc8bb178fbf6ffe205a22904a5b3931162de7d77c8360ff34715cbba614e4908819d4264e4667ffabf658a8b1a69db911a4d1f9bb7a041eb2c7a33dd89bc64d08074c7d0f9b62b539d7e1d5523aeefd51b80b8bc46851e8c96577cae33263dcbdde1b2b216d1694abcd4f83256a7c43e0c1967df22c76f2df83079a870fafbdfa05b6e1c849c8636f75b44c81f84d42ae4867d8f568c224acdd54b938bf48ac70856d7889bf0321feddfc0173c4a9ca2b63c0355b6e2c940a560ea7bfcb81801e184bef577ec010639e63c6263a81c1533d331f678591ba4b6b6a3fa74b799d6122066cebf98ebbe19281f5544255a24f2acf889a57b721b5c9b95c9be9e4471a2f20aa6d18fcc580c4be28825c9df81dfe57a5a41224cd31cb533ab66cc14fe89ef55c2dde7e5151b2e934fc81138db524e8c9767c8cb7d2234c5a06da749e22444e875b6c159f4e25753d3669976d6a9f23bd9b46635e33e24e6707ac2e4ff1c64d74a61aeb1c691cfd884e75aaf1e75384472b0de7402e3d6077e45f72e0a0c572cfdb29459dc5ef1ecd99fe67b808aea9a921daa96c1a93bebec386a31ea42a4634580df203a409dec5b402c77168ea5e3395e554e2e5870291b7f8a3d336995ec722d84bc62de744906c4b7c585c4f6fcf95147714e754bae65f9af65a7e62cadd6a6e044af08bc0af57c608a4a402771895a7c7b80db26383fd9ed00cc48197dfd0b87b4372cd5496398726f14bc1d05267025086ce5b9dc96d50d288e1623aaba97cc6c4b8f41b2f9b34c2133b4f930c76f8f5b821865808e366d3ef7c30e74028f58b1795383076d5e44d212910a9c200d52da0e6feb618131a264f1b7b0909440ff2b2a803d9e6c9d65b5c8f48da87412898fd7a3378f5a4f65011c96fda5765fec65c59774e1e0d24a85af7d30e536d8c5a94d21766c3bd73741b03e35d23e427f516d79e0cd799bdbff1390a49b7e1e7af94d767e317277a5937536e3272ed142c14591d6748d803a63f1f8c24549b2d8767172416ac0a6cc29c66853271b2d1aef4c99717b46978af7bd7b91108d888bb9ed4bb374f1770e7ba375464c2c5912f6c36c429c22677f84479d3b611b392a8105717306c1d963c4dafd24836271485627b00325c1b1dad79f3d824c53030f3109e745a5117ddb83399fadacf337fb74b74f807801f6144119d3661da4c6034de7584c2e73db30fcd1921d1b75032e1791161b8971c86e185358dfd3df9843014d37cf50f91742b54f1f201ad6573aed55e02b630c5b9234563f30a05de4789a568c510f62b467f95b5165652ab44c046527b5a348cebd72c1fb216bec37b30ad0649c438c54565812ac9cac445f1051a3f1cafb7625283506f6a74e9532cb6805f168173e0a402585c3b414213dbd2cd45d62b170f8f3e0b4f9b6172e354e6e23bf528a3be35ff751f3acb61ff751d28153271d963c8c5dd970f9cbbbc3d6f927b1c5f1acb3f72846a3fa1f0f0104e27517642e1dbfb89967fec71fa5c0a98d6290ad73d5560d5913cc7fcf0645d6e1c1c6fce6af2a1105b8494dfeb4eb8bcf8460c78b19e0e1ec13ae54ba1180d6b657fafed95ab2b617140d0406ed4e060843d4968a557632891fec32caa899b82e32154cb2cbbb65c752b9ce0a2883bba984852c1384d3cf9a6f7c245afd7f66790dff72afdf2202128540c0918cf602c124d31b9db4a2fece932135bc1353a2abaf4de42082f0b97bb2d94d55cf9eba89428639f551366099765d49b5ade8073cc11e4aebda9ebb85a5cf09c645c122d921a1feb9b850d8b37110eafc04f391893524f30bcd44463ac8ac3785c8baa2b09bf9b4de1df901957236c8be5554465043a5ee0dc5428ba7105682e965f188af1e81e52ac5964aff2e74f81d3969d438ed75ad91d74a725dfde6dc7de459339e3f5cdaba87ccb77569666aaccf53bf471a27bacf2fded1f2a1601f80153b91e7d92b697eaaceb1bd45e5ebf5bb91256a3ef1600fce99177ec37d4063f7189a16c029a4b8042de962adad1cf3ec6656f0921bee3096ecac1f053e264fa8f1285ffcfa8281764b9434c422139838e72c0fdfe17f22ae109e7524fae69d2836a618a1590e44af02cec66c191748c6a8975ed01a476c2c622a264613fd5bed280e3a29f81b414423d4efdcdfc35c4969cb59e32078a7166dee5b528f5fce428c2ce46840320b17d5414a42f316a10b305ee1dbbf1b00b04c49416134aaea7eca59d80dd0bd0b0c0d27b576156dd6c7b6efb9cd2866ba1736788a37f57fdc0302a1fcafd45cfa10930bd6c4b433315423130ab52e38aa3748a4e9d2c01a81129ff9db71a9a66b73528191bcd720db1c5ce5df9e4df5b902fbc79906078cec6c6d2a223158803f87eee69317ff176f6e811aaa613ee76603c8e2d7278489e4c84bff2347e0c02e9dd560cbadaf7e7f905554bee518fe413ae66a63ca25c26312ebb555d964a245494cdceb7996a70fb09d42d2fd46da714c334e048d1a9f187e43e9d1b9a43f62f92a25ebad7827189ac56584cfc9b32f02a41c01f65e05e66ba9ced7d75d27badb47b487d7615b0746504bd4cb93e04915d627a85f59246319ac4a47407ee15415c7e1bc14c2233b30dfc2a537f971a04f9d7ccaf4569e5a24283f29ae441c8c48cb934f586edc8a84dad93f44799faaf9a59c3dbdfb5f49dd377726abb219916b405746beb4e5bc180463d0b7617bf09886c759baf74be469ebc00c40f2dfe6eeba0d6cf0f6a60f377f6ee6250fbc91feda737c13937890b7f2174d3591a1e533a500d19a7ccfb138175ef6b7cb3abea542528652e31ce83da33f80e3b3cc3753353748f06fbe49f0ce30d9858e273c625cd55db0bb733c9103cedf93a1325d33e561e83e36676fe402384a7e1dd7e55e19c36b71aaca0dc5c674c8704cc32bef668b8c9496bb305aa8a769df537f276c01c51b5295ab939e61483d06b76a478c4f04537360a18b2f735a3a3f8f2b839e42465f03c78f3797a3e0635259b8ae01f2ab209684bdf685ecb1272485b10f3da62f2db77fd319af7d710666e71a308e24ce1bc5d1ead93cc4b17a2d0375f5ffc43afdbc5ab18b0fe16514951ba5ef5eea4a2ebac706113ce754e4cb5b57f29e14a74d2e1be5937ddf991e376682e4853ba2881532db6f8e24a2f9898145d8afa8141dabb1356d9c770cdaf7a47c5a4065cb1e627d4f374c6b35b1e412760cd5c02974268d8e0700b7c4a3b74336718dbc74252af8b8a255ebc9e9b3d88e083c7e71d9c28880840f1cb1f7fb68069c149d65991b72155cdda2d0e0227997da6b5a93dabe08fbbab7617bf8ef0fb7235cee41ba3ceb3706c32246ba3861d5a363399c887118ceb4ed1ea6ecf431bfa24fa9db8a304573b5bd93c901f1266b1a093193f9569b0e3001e4ccbdc261f588161894508b281b7156466e1fe4e5db07e75ffdc52ce3c521bfbf8a7a187a21993aca0b17379047b7b257e0e47f5861c83b6d458a1e3d6e2e64565ed4fc41466d1e77852fe8aca3f82e353c06d0af59cf578c346902489e315ff4dda28e28f6efc348edaba112b518c908689cd66bf0214c1dcc86a525edbae346b15d657a88dee2486be24962f4ef5a58d5a374b68bd8e844d88b28d9898a4ca411a581b28e4f4feac4ef4ee144cba461507ae20276a30b1685256c6438184e0e05bacdc87b29b0e896315bb1d4ec27fde965b8f3b1413e2619868d76670ff95723032ea009a785f89dcb199a3307d111180d87c9e40aa5a7b9e272bdd9ce8c19788b21f68ada7f01da250b977ac472e3dffdffdbc9663d62c5f2672ceee7195cff7ff275022525dd5469699bb24010c63c27aedfaf536c26e574cac9eaa0f4264eb176d189bfc8d3ba071d3e458cf7fffc5e3efa16e3dc9269a8c6d5cd75f758331860014e34d151c031c13f262cace4fdda57e7a4bbae47efd4235c11949577804e1d0f28e54e8f8560b81c9198a17207b704b04a96f4e08bc220837d5fbd5db5104a0aa483e223c6cd501daabec5fd8675aab6a5c08252f73d60299eee8af4fcc2af0b1a98f3c0a7f9f8950e7edbb00f7992195c9c0d7f3e97e5a4b08aca5fc4e9d56757fe368c68258449642da5efd68b02ae721f98248d2621b5e6334b4839ae2273386585d402db7e1f4413dfe35957e5156152327886c30cfaab1b012e27628b797dd2011b196393a070ed09bff8ec02b2f6d3070b754958823329f8ebfef4d4cb171a90aa224efeea246b057b9b3fc972f954bed2531ca642f37716d84e7d6404266b9b37def012116db37a2363a9a4c9c51b246f539fd787dbd5ae2895b59fe5d8c42c4285ddcf13e5dc16f20165e83c1d812e0708bd69b60843e389217add7384785134187383ebef7495c793134760bf734857dd61e1e8657bd70cae50e62c33b0d1766050805074fb9acbb738db335ff4f0cac7fd473f3764b3da72dc047f2be536f6f2d8e13571665f3d3bbcbf2b0599a9bb6a07b8f1caa07555bb68a6e1f96a22d292b06028489c28bfdc6a3862f40b352f1578f977a0ff95906e638b31bce0f330d146370370fc94a68e736ab6b78925af074b2e582d0a784b90de87329dbfbf71ac4616ad5ed6b51b26eba4d91163bb136f048f6e0779add77a0fd458a9d495363e2629cfdcedf910944b398d2980135c612637c0a4bd089575d2ec3b68bd17013d9b2ab8a2fce75d9ceee39271d9a5edf2bc012b11777fed56230455f06f5f5b332289dd112da9867e94c4117afc13d52bd17584f2ffdcfa13a501eb7cb135c7d3789bac1aa363fa2ae1e6710f8a47e23df8c2f9f3de44407b1e134ee89e98edbd22e59de2f264d26edf5af0c8b9e0b9ddc4cdc239548521dbf8ccc4ce2792c85ee66abc8aa11c5cf778dd6d6fd2f4350a514c7aced3390200c2dacc888f5ec1525017138bafe6f72dfd103a73b41cb0debaf2ac1381bd36c9ad3f919dede2fcd52f2fb2730ba616b4a245ddfd4fd30e46a0af711fbaed308f1027b8c8ad73505c15d63e881b2f60b6ffd1220b2a24b085aaf81c998cbc92b8e544ea300feb985fdaa23e9736824c6590fbe55adea98ba0ff2661173a93102749c6b5f6a70f6ed0194491a22ad6b9a0366f63fb99dc2584cde36d3aba844d9800d2aed5db4a6c5ab134ca6ab772494bb54911a29cb02ecac6a4e0bc37501bb2ee98ef2b68af8eda45805cb3115b8dc934b03f07bd84e59a9e38987e8f33c8349ff6595ede4f53fbbd97ca2162c850e8bff803ffe6609ce58e63bd1cd58d64b9c0a13c3a1fe5a3e7c3354cee457485c4c86230189484f4b5d48b9202d0512a75a3ec3da7e4c4bc6a47539c384cb39f56a25f5a205945aee53176dcfe7b4870b6bf15aeb638288ca0fc2be1b77c5f6bf2056b310a5a3d26cc6912f6518323d3322e28a3dffbc1438fd852e0a8cc92a3638d73a859d1c9d9d5c757e1d8cc5f7ec92e6c800160a516a098d6f051aa31d74e3bd3b3678cd98c1f9631e771edf7be0fa167cb986f7c5df239765d3075456425f2d79d856c0beb49a97b98f7afe649d98c6e706c840e9bf180e528e70327944afbdb3346e71cbebbd40e42379179e0f09bc3d8dbce161b6c732166531d7922ff82ee4df987a8137270dd251847733c619c4874e0d16a25a5ded496befff2b847160c73b46934ec4edb1f0bc137fe6d0100bf98c7e470ff82d0ccc103d9fa294a2de79b19bf904d90f690f7e9fa6e15735d98d8a3b4e635061b7d33a05010748c9d40566b4e86d2baa5ba23b0e1d62264ee563377bff7e8acd7941a15fd06d81725d0ca63f1d411cc52527c326e6605b1117ec121daa31442dfa272b3ed108cc1e2bc67b2148276fa6ba542f5d69f74f7c812be32ac750fde52caeee71f99d5c1daa531fa397763a1e0159e8b86593d4539ac0fd43089b98a1387d66009ee9351753afda87770bc39a6a6304e9b90bcd12e14b32a37e215134a8206f414bc853dfe621306f63a2e68369800f6680bf21b9677a9b0e4124803e27687ff1b58d33d26f901657443d03b0e1549cbf4cb545a02274c3f2e3230c308266d1bf0d9a76782109b7fc374f9b02fee03b87952d3e429e727bb61221f03b25bef57d706e33d08cf64984866626d9d673ef6e7afa92464d1c1949d275d671603efee090c2ebd96d5fb2c7edaee73e3148b425e68f7a032c4e79b56ce7c7c2e4b59443309fd3e6b382aae718db83f8cc52273b7253ff2b6636ef5d221b4833bdb1a4df46a4736ac07b5e94453354fab818614fc393ac234aa7e5dae32b6933f1795f862150198e0672290ab8692a95496b434ecf1a9809708d5425aedc6df8174c704865e9e38753afa8671c79f5120b242d678b71021ee1694b1984003b40dde9eb9dbd82c8739564386f408e3eaad11ef9c49047d08ebd48c76019417db32291d64d3edcad5e14f3fd6a4f0af0e1cbc7a253724d04d637a1e5e808edeae029a4a0e524888ce85d2a6e088845cf091cfde22d3c72a92d0d70ff4d42ca20ad57723dd310ff9ca2288e8aeb829edf8b7dd2ecbde666902d24604b41328f9b2c6b1f3b1bcef058417922c5de4f2d1f33958ba56d072da85a92a6e2c22ac7a8c3493d22835f8c2f6a8911e00cb3e8f3f4a0d3f54525998b9bd0021303d5ec227438830d24f42576a7f40c079c5a66b361eb43e5dc456311b1701e5d475b37ebe59f2a891b36d3f3a2599c63f3a3d7dac6f89c945b81887b0e54eaea72d9783baa10c8a607eea74678d8f4324291cb0f1f9fb4f3b7530108efab859319d611b458be0c44ec11344fa8a599ec7a243a03ffd684d667555e5d74b0a11a14f1e102a4a4a3781001adbed54471c794cc860dcc2e8dd8ae777443d73eab833a522278f540d8218b4bddbb5082c7cf1e0518a840f2b91d42da37379304e0aba51f4089ee6f8dc5fc9d9796d25566681abe92ae0b3630c725fb02d18e3773971da7fcf437e1c9b5f20bef0660f18b303101971dffe464de5c7c8029714884c3c1e9fb4965f0c51f30e5a59218fe0c92104582cdd4516a0f563b85600ec9d832ecbef9a471036cfcfdc362ba251e39a3e91cb7c4e61bc9a006710e747ba877441e4f96ac2dd4462794542f2ce6451f5aa53544c9830faaeffb81903046f03bc0342a67e4555960b07fa6803abbe213c9cfeec6a5c13a325f87197df99218f660710059545cabea3b321013a4cb669bbbcd65868316fe994b36259b0968bc972d94e6408e9d41d19aad20408f188452013352285412cbb238f8c9e71ba8c620f5650b64042ce823c2e991c63e1d550d56c08e954be392e2ce8a6478b2ca49b763f3c489c3658e1cd3ff77958ab20af456d5301ec6f06fd0e2d9bd9b76d7a5889178fc848acd315bb19e18151db51a448e2a961b2e708134ae10a50d9dd58bf8b5e999dc6aee8b9c27b3f47538736bd3704b4e13508382924f4c5bfa517ad69a583fc8b10b70109ed806ed5c2e3fd8771d6b3c895a494727fa152c955f78a24070631ada129cfd48ce1bf4a789fbcdc4af3f7ab61f39d58a5b46ddbbedc2641d87f03b6d369c289bae3f6c22af4eab5b0ac659d0572d8471d6d8445839c5a754d96118d4f9794437be9cb117f2fe398fc90f7a91d9f4d8ce0753a1a429f264c8b1450318a27bff105806c4d43f8678ebd113ba84aa30b3e7d57e4e1f0e02a2636c988f08712028cd80ff928a1ba1bab7740d2566299a23dfa8d0f1dc9dd2ecad118d2ed5f37e0568fd1071f517506289c53f2ca14a8a7408ef3f89673fd9a85529920f839f22038b0771e6c1899160b3cece52e618834ee7b8112885bb8fedc8175b5b0c09a4e1bdc113bd91bcb995f37e388d07365650ba580848853868ccc18c9a90142c73966180a4f56d121c4feeabacd7fc73bdcb7a623a852f6a09998b1a066e4f7bd737d22c1bd649ae330e89eb0393da4fe3dba902c8e556dc7202ef3ca2e783373d458ff3ae05151e5572a37cf663855d4b3dc89b07617877c3e139832926864d0f8273981834153661b5be952821eb0aa6959f3435a6847abb7e7320bfca336c5bc067ddc6708d1ae40a0f823cfb8c73e1257ddd962645b397075d2b4266240d1c4c18acbc0d670c4ed47ba2c21dbe3736275de696d461bd2f350e7dca17afa49f8aaa8a9b8b28a402ff164d563a2187f9369a0ff8f0a0420ee090d0d500bfd9d037e0d4bebc289b277446cfe120317fee1aab32f8de0d2bdb4eb988aea6eba3bd354f271ea683c00173c6b68c0a710890e2f7c0d636eac63ba4d10247b83328f1cac3ee3b82b1de5c8fcde96921fc9b0df3649a6bee2f9371b74e84be34058bfd577000e5072de08263e34e1c35c2ea39c2aeab583d7e5b6150032aa559f2371b94722ad1d0ec3243243e9931f8312e2948652c14604a3568af01121dacd89dbc67b11877f958d56d062c6b98906e19097d71e04d4c0e6e980322a1accb8d5e4c28846734d8e100f47206f63751969df7ac70ca6a95741c5a1c153d55be01ad7b14ce1194e68a901c4d3cd096e6b17019739b87d7a283ed7bc584c5b0b7fbc766073cb75bf473019d6e21bf6913739f14a772f3ead9a753642b239a9340043ebdeea12fed09f26bef388887010a322fe756c304ddcdffa23ca5824a481c6f9f7fd676e7f279d2ea9f22fc0d4b16b52b6fdf320a85686cf238d07cc6572420f77d5fa1d1b5b6015149058d6914de6ec5b4a34142e9edb4698ea9a777eda5831e742b399947a08fa5aeb125489514d2874cb0b6f5dea1e8340e390a2d96119e0206155c013838d5b0609076d37405f8461708dfd13a58376159f19aa0d02c5f0f5171e78c5ed6a17c6520d9d8c2e4de7382e8d8b28ed031244e6b7db008e24fb928a97f3501f1aa31c1257306747f9f92a7f3c52c516038c6ea87187f8282fabf7a57d0cecf55c0a59f926782946855decdfd6cc4225c0e8f17690f758c80031c099b266f542587c059a19aefffe309480505ec6e255982ea807f26f97b82049c757434d5f487e711feffdc706d588b7acd767b2339619f082b5e896211a1897dd167c7be24149b445d33dbeab44e45520fcf7a21409e51565fdabe9475f584cf0d30c44e4dac5d68787d60649583411144e6f6d4a856112d603591e8bd171557ecc3dc837b3eddea92ee1463e3422d9b6dd86d056153ee9830b8395060a9a872804343166e0d1337e50ab7c7c8d7dda43be5cadca78c4b40c01543d147b82887ec3451df66b95156f5b5f24c72cfb7d048b90a59ca0fb9233f23c88b0e67e6ae7135fb33ecf372a701d3d19b9704310d3e06fb025339a247891365997e5fb36aa44760eaf7e2fe9574b6235f2c950edebdf3279450dc90703b391078d6145e1a76810f3165dd4ef0ffe22f2b03e1e49fcad4898d8bcb5f8fcd357dcc81b9d5b4dd8d5006a439a882231f28a81e8a5ef66f3b3f91a03f581b18f3bab0026a1c8a1ad36d2aa7d1befea44da649a752f96a85d7702c957b56651291969276a02031a471fbc274df31a157c85bcf3a6ee979e1e1247d265c130c40707e28a238bf507cabc1ff766681b2980d6dc26d1f137346b0ce5388a528cbb33f6f09e61757d119c5180ad72e74d95de1060a75f60c2a3fb93d14859b35b26dbe2da6e8611d117e919cf9b8c4df90984913df74f09270a8e28afaa19b2ac34d294af5fcbbca45d1f409f80c60218004717a60cb241e7846358fcf545e3f9580df0d1a8ba27888772e1337ba5e45af45f9bf03e2d137173c08cad4e0ab4611628d509aab5ec354759229a3ba000af36e9b919b67aba41be6de6834acc4cbdf6df91c1106e76cf1f0f5341dfa41ed02d64aa9786e7756937392ab3d2a143c1b695e150906d363fb61324c3a5931bb29534c88459d5a34a4174bda8f6d41e9291d07d77cb8e2b3b8ea8eacdadc013cb8e23ab62bf3a31aee973b205ad64a77698ba3e69ef80b8a1e956f56236745d884bdbcff7112058879010e51d50820b922ea2cb0d6b47ca2abd67f0da746d5378c86dd0091823ae000328278e3b17d1cf1379db551fba4ea7526b5a62ec5aeff242cd2cf673f782acac1b7dbb503b986be55605c85f05fb483eb408e05760344b1153a36b44e08ef2214e6a4d50bfadbe9df220a71c2962acc1dbbb77a39869d3163b19c64439f114d0ac4df5e6a46d3d682d37549a775b9f9439c41a278e243e4d2613cf28ee7e661021ce1404a275ce118702ce2b19b9dd506fb6d84fc42326c497bde4e501618c351e571591a2a7e578a7ff6f80894e3e6bdf2fe2292df9c6067785c9190803e56a18a582e844fc0ca4d80d533718470aba30ab6fc9b284300f92409ec5ad516e6709623a7c5a25c590879ff19469cc7805cd64fe64b03e7fcd18e6c8212d49c506eed142f26b00e85fc77af169f3fc8804674f950f7852e3d01cd7c965dad318d4478f1aa031d9f63fcd0935748232b4756f180466ce8880cf18b741fd99f82974995793b41b7cfe58733b96c5b69832b89d3c4e2e6b0271a168d4a9c96559b3a4efe78990cc18fb08b9f3ec058213cc676c2cb4dc7bc274c2ca2081beca01d23855e90cc79af4e5f2400c43b8ae756f029b800c2e20091895e4b9ef5b6a8549135cedc4fd10edd6bdcde4570556070a8cad3e5f8bed7d5a71be01234a7c6ebda09a7aaf6e6ccae3e4cc83d5ef6a5c597a6a2df5b66b2a21004447e49d48fc39bd26297f1c2262a7a3ca46d9402c7bb1ef5c394d579744fd83c5fe2b1dac31a64120cf32e357899adefa22b2edb452f17053e9a95062c91177778ab3309a33f9ae27bdb56e66d7a8e1b275f6316f811fd0e2e2288230e72155f092c70d97f74c8ee10a9bc95f38abf2eb64531b9c6b69fadf7e96675a381280aeefdc093e42282677f345a6834fb200c4cfb7cecea17eb5e66d6f55accd66ec911faaf7bbf59916164211bdc9a94a2cfecebc606d97821dd76cc280e70888aa5c51c7e351b0ff466fce479a5dc0248081c56db534a90ee25409e4c84047d87037fc1685d5ba9151370900ff1bcbcaf4d700d27db473fed544762645df5be4013008793b30470e42a8982c8818634ec5ace9d913d0790063537007ed61da38a9b5868a85e0fe1d0efe0474a71af5172e54c491a73f1b25d76f32864d5731a6101bfb736c77e14ba7fb74a1191b0442ea4501bcea0edbe54f4c7a9322c594fd5e1b3308831b73aae7647ac0eeca3b2a27981d352a1bf65e3be19ccdd7a4b890e84fafb5bb053b80e382ee35e8095322318c13c38e9b49b505e9aafa67605bfeb8b99b0c870292955ba2de676970be6acf035b32119489e28d64a5f2ce5aa015e53d58db62f5c0fd249588c677c932e120047ae28764c7616a13c2eb45673adae222912340536f755c3167484f92f70cce37252416384876dbffbf5ace4f66f31c96e769eca561b024ce4eabe07e0973906cf00a3096ab0686f24bd9234fb50f96272a22f909883080c9990c27f40c5c62148f9457d46146b7fc74c40997a707b84a1d3a72b25c80900465aaa28e107625c6a447b29e72a7fef030850dcd16c959d7d304136492ea2564dcdf6e9c1ffc31bc25ac987493ce60e4f0b4428970559e8b97088ff91209145297ae599fa44d0b53473f4b298e8343b5459032d7c05c8e846171f2de4dc5303b05671bce9b1f6a8f00c50a65f7d77780946934b88c3f35c9e2291496d6a33c10ea414d9495b1e7941a19ec2435fe742adb0da9a07c8199c01cdd9136537534c7eafc050f89b0d82ed1e1e136d58aebda844d1ff9d6f61fb68962d4e7bac6b5d829cc139376b1514a03c6a0bd331a56794e1b3c9fca36c85bd5562968e4aa30c0f332a325da6de27bf30835b1719411393bf35c63891c384325e3148a64b79a817b95c201ee2b507698ad5a5fbb89d40b997b4f893261bb66f1f49cb2bc4e3820a7959a15bdfc7a967d83ebe6de601227159225498d9833a06c68755ad991da26ec8c638305baa45933bf00b93252f488e0362151931a74327de7a28fe092a1203cb51823ebed83e04f00b820cc68176de407f041cba3ac3f457f607450a3eb1f01d3a9fe790ee873ffe6e5b605042cda063ef22d73b654503b2ed2bf6dd79b392a72f4d4f8b637fb249b62ec5593e8157f5e151f7b0681d1d2ec543702194b0648081e970bc9bc870ae7068575867e293a12df934f7aab91b4f20a3c6b634823b98d00eea59f85c7a1c7e218d6abe5664fd5a0fa738abd46873a993ff80286b3e65f3bb3cdbd9d945494b0926877dfdf84707137ed099c074886e94599f1b2d9907e22752da3836665200ab1b3eb88eae36e75257ca18ad032662a68ddaac83f2b7636f776b00cdcdf776f893a1fafa45d01340ea8877c013b04355641114792498907af95455b38191ac1033398df6b7f023235993fcfdf13b6f6d0cd3e31031ceb6648b18326e0c0d369598cf85a62370cd14ec368fb12c9977a2c065b9fc7fb1c9120005d56df809a169c45b4a5f0a8d17c0160e97e26e7b0b5d426d0629807c18ccb69dce1612e0c852e14cc6f41112f856ab9fda20a346646c5b379cb33d073518ef9cef03a8a73a3485ac6f1c3bba19f9c44f6c793f739ee1157a615d8147f6ae520397d609174f7756d60aaab061aef198cae8ffad31cab5d0f076acd8f77b1fdc941146d5dc202152db29d6e77599d5bea06975a2ed1fb64aee5a1dbd2176d3a3a7de11e958027dce8bdd348df4e854f14eb6d3327230972a73c33cf33ea98b3c4c1e2d66c32605097a6d9b88f222ad573af24ea22f723e92d8ac1fac8935ab14cf0fd1c3759f94e5c0676029fe43a4152cf1446e27046bfa378d1b275d2b134985ab51885245d855f1f96ac3c0f2fddd25582f52ab50cfe57b606cf0680406e72b1621ad7d5ebf9f2e0b601164f1c65bd7b52050008e8449596242f5f2ca0459ea43313ddb9cd8209fbb191ca43c28918445b6b6a4925410056c332b4201bd5989e9e1b47d9a54afd79e4af702aed6e9421bf7fd112be3b461c4d3edaddc6ec2b46a9e925c30e53a6a419f229a4bc2ec5ee5e7ee3f6d18c1b155f3ca167ee8dd0af255edb12d5efc01682b4c70a10532dc3ab070ea613238a3a1c1941ef726ee168fefa9a93f546a45144967f055660186f099f86f96bff8faa5846d6ae49799dc6c4657a237fd3483de1faaf4f414845a8812de32693b80da2c539ee07864efa22f8e811b89ae79e53bc87b4e370f56031bf7e429e66f604776fea23376fc046f1e7f1ac262625357094a9cafbedc2508627c2045550f7262cf057cc2ef9549dd4a5930a9280042f7e9f0f069b7e014dd7700d147f2a0db377b200b36a98c526223803ae9f61518b7e482b55902f77cb5c41d7bcf8a81ea557826be6ced0822c79201cbfd6d6aabaa044b5952525db394e3c7d16e37723348d71a194e30f2efb5a55dc7acacc038667d129b9ecb55a880560bdfb34eda9a099c7aff7ff5a2095ec00e533f2db2545147344f95c0f168419c03e9342615353164e2752361ae1344cb2fde2506b2a65d2778b1c3228a201797506687d00554b82cb9cfb12d1b09f24328e474e9d033f5dd9c4cabf9088d7d0150212ef2efbdcdee7297d80e6014868d6279863e5f23d1ad47af1aac5c3a8c622816e306420c0b507ebbd62b5f93f5e04f9c27d971056e1af7d38bb05457fd2a8b968dfbcb76e62e3823fbbfff4fb6a8b5a3e373cc8caedc36086b64f7236c1b44152d55c46d3b8c1946a688600e53ea645694bf75a45b1b4fa947819a3b5295e95cb9f23664763464aebd1f75fbb54bbd97be5d7593b8347e595b885a5fa5ee4963cfe2244e291b5d21d14a009c9e968d607ad7c2da566ed02e72e5a37f4a8c207dd65bd2317d567db8a7c4527e4d9032309b20f92046053f3d60cbc902cceaf114dce50d8a33dea1c746964994109744a869a4018bb15dca079f8c4d6433834c0bd48d84dcf1bf0cd70de8d72174644fac0b38da1b0b4e3b38cfe56a73a3de183a923fdfef7f7cc2b1a6004760fccce85f6c8dee54953141c6c2c32948c573bb01c9da67f729ea6f9c7e8d2a389d3aa5fb0e12ef1ae4cde8d16c432a11a5718fd8d6535f4b758f0fa5c0882a5aed6e2a5a449c4a3614e5dfe413ccbc7e5d4890847753e97e4ad097823813f6052760693268440302412902a807e417399736bd15cf6c63586440cc0b9f3c46aa628de0d270da49f2ffecd117315f304e6b6533b3845b9b1babfeda40e6c8a8dbc1b6217c5093c4cba25d374113de850ab7bf58eae4989809eb11bf76de1d94ad9f5985d6e4a5266ce63905cfb064a1ff35af7f8a9aac42c0bfda0149dfb2851965d2eac8f406270708a2a94de04e4afbb81e507629e99d2a540b55807afb60bd573e477d5c987c415e0382aeb2ab62f92c72930245935a33d2550a4fa81ca1081a97e53fcf2d60b6b6560f257dcbf44fd0de54cac5c39667aa9fbdcf38c1bb1229b677b31144ec66a9dde03f7539986b7321c160d2a6df4dac4a96afb87d56f41dc1e4c03e91dc9c3d17338dada2404ba1eeaae281840bb03fcc2bb11776a8196dc6ecae18515ba8f0d62b0077f9dbc16bc4f18b950a53c5dc0fcc1abc7df530f51861a2f4d1a965948e34e3e3c8d24a3dcc9bee835528e02b5c76f3ff18d01a0ca5306e045b62d747b8e39cac8c0a4725b0cea7ab26dd8ff324f40e0ea59e0e564ed7cac75f1a1a09ba05d697823192103214d84364ddae0a614b1eb0748f699b6610fd020ddeb04b103e93fe78954ed02b07bb362f2658fa12ac3c50de87dd36d0a755a11725672873bcfdc5ed699a3fc666c29a49ade81b6f47aa59482641a425c071048a502fcb014484e278e2158f54afde142d8c039811a60710520ce49263b44dab8e062ddd40f4d4636eb98f1b2406daca45a17126c0d02acc6799042e40c4ec8f45fbeb084081f4feeb19f83503ee1b3c6c1055e121a72706aa6b76d8c1f6b9fe34ab2f51184bf0fe0964b791368e0972f9740d7577fc37eefd9000f637c85fbeecaade71d6a76a0bfcca48fcbd1d714dccc925c8f6e915867e35f6735ebabff40c173a4dda54fefff6627a047bd963ce8f058004b29766d932979a740bd8e96f8369ca24c549834c699453ba9f5d03ef79a0467afaa96574bc829b214f20443751a1378c7b065772784e212a1569fc19b769b75646b1428be18ffae1c6c89801c5f97f0c8e60d22e21dd634dea5ffc942b438507dd89ac3e05ebc6cb735b9b33a1f3d74c34caba605166f153aa44f34639887a8f106d64e9b8ed793094bd7aae1f1ecbd50519e333aecee696ba3d3bcf3564b5c8206f7aa871bfba8f3f74aaee640dfe1319109789a5205d349fc34986967d86323f83402538e86dfd59c1a21620d27a4d921547851f25f57ec78fe9bc103991045b54564142b0cbc0b9877b1523b271f7b19a9726e0118ae2c2520f755938b9b9666e8722a4cd38649253319462f16bad6c278d3a0b4415959ff707a8258c0031ce25d1e7235548e453f436e2943806f3fb8f339ce7b5e9020b2257159d6de3cb109eb71e80bc03957f34103a359c6639256928cb424e7fafdd75b09eb099dad54ac5970094e79ebf521edd797a199cb1a96911d0a73ca3ab547924ce1c04dfed29d75007ea194b3415aa899be6d83229c5c6ddfcd79e746a3902fa8720d4d37aed191e9ea0a5ed2ff59f73362de5eb1fcc86ba9b9059395f01cfa05ed15952f5a4701e0f2acd40ab5be06f1b5fdda644ace118c08b51617ee669f745b442d4b287f9ea1bdfb29c5c79f222a5dd9fcf313b1ab3503ed2d00274e2d600829b4897c00462296ea4401d41c3e8808169956509fc76604ba8864f1df9a5ade38dae4253359c871f93f199b666fd44a74df8b4ea8b976e7ca4da187d63c74e9eee6fef36e3eb97230e953396c705807c0cdb067cf18e812259397f4a851247bbe3021e4addc35b70745478b211fcf1baeb6666dd13f0d91e2e8b65c4578c1b2b1a88a7fbe210708f2090bed46fee4273ec3890e7acdbce847ccd76d76368a6c864e0e452d7ffa37c1203bbdb5b34894506d37ac132516a8c334e6ff83733dd999b701385d6a6e466329ca4d78884b3b4306255991ef55d3f5085c30d6fa4240f98f7bee70dbee9687f5a32c5feb1155913146fd8f95baa9b1a48b8241fc63ae7c11e2b8b6d0e1cf930c20ee58ef5389a566c3d730c77872085bbace298d1393e691c9bc43c94332f02944e38ccaad48477040d91cf8bf43d0ef0a0ad926478ea1f3221d4b4d747c1bbad6651c5580cf4eee7290b5decef5c51b38313e22dff0db30ba89876312aa266141a4798f617495d508a395f617b45d091fe0c7419fb16ed804d0be19e92231754317761a1d246aecde0c08fd75de91dc19603527b7d8338b40470001ec2a3e82740b86bd442d2c4e879f0a78702c84282a3708dedaa32e7fe131c0af43a544c496e839e050bd10ec1f7cc52d90449175f381b750ebe42dfd506e5b3c6a7caab0b920991351b1810979811ea8c3398bbf85a2e5ce2e5d5fe4fb10e0c65741756c2cf1dd872c9cf6bc8be834b7d3a02bf9f70da08c1917a125b1c130eebed35952405f0c937224a37140891eeee72f7285d2422022a6003c4550f6b95859257d71db1a0230bb1bd868858135241b1a91bd49329c0c3e4819dec764f92e446a280cdb30e87e97f17e35b538a2f41f993c6e48a6732b323e721e6446099e6c48eb1946b7623d1264a93e4df9923df556af584a6e6f43c3bc70466d463a570cd8a6c24fdd7555c08fc940f49abfa3aaa979af065dd67bba58342c163688103687c4e82909db4e61c1c8cbd0f66c0c35d33d9dea60d3e091dc36b9badf5e0272326c9ba7ed6bd80fabddc12f20212353b7cfbd634107e12cd0186c6e93b5686a04e5a3afc15c4502dfb4db7a9b9ed881b9caa2faca27d4200f75d6da460106a8ee6cfa7e033a0adbb138247f0d8add00b5944e3d743d708daf781c6e62de9f5ecdba50bb71014289e6077c031d532be740f1bb79c5675185bba278d9959c7e49880f865524392bb9c57416af80967b47b2bc56480d1078067f3db8df4d08ee97c232333cef9aa6d482b8fa3f7334ce648e227ee62b19c8826cd9be73a5e6c2e9ebf722de78c5bb9310e1841108c4e6f65ea70a617fea8af8d94ffe26ec99ce5bc4f0d27cae67131dc7e1e3f219e1ca7e1aaac08e3a2bea9a189a03e81b4e6ba4a5c2f54e80867cb67d199b4dce0f46ab9295dfdab0a2770aa917ea10d8ddf73f232cf1720fd06905fa92039ce69568cd9ad696df60f9a71d8eb4e5c5cf5953add32862b1b76a6fdfd63ec82f5ab7055dd8cf8ad0c705513900bfb9a39dbd63ba54c9960f9f51caaa44686848f238328d6f7054b547e73139032240be7ee692e0dc450f32b51bd64e45b0b879e2e8cbf0fdc60174aa7067e8a028e8ee7a514bb1eb89058f4cfd95b445ed5f629732ef2e95e690ab0b4bf809cae33373d87f8152ebf7e270b7ef30d7366758b2357081c7a7b7775e33c94cf11fcb35dbf421280bd56bc4c8922d6e64880a748183c1a9e719db1f6dab9aaeaa28371948dd51b9df2a94fed0a89d3eeda656d6f535ad514ee89963e0196dcfb3afe19cfa3f38b23ed890977f955933a6dffe753addb6a94017f81504aa11444455af9031916f14bdcb67c9c8963803b8cb6e9dc5e860a48edb657a518eeb03268ea35b587d5ae3e25b4783b1322a0820a5a56eef7dc779a72f36c929e543ea1d96067585026caa07c9bee8319d37bf2027265cd81a1e22be46f6af608a9e38e41673ee48cb10f43e6e0dcee707364b42dc0aad9f3fdfe0fd8ffdcd969f5212ad85b7e5caa482d45473694099458ff2e2fba8fee9976ab5ce3b123964d578ff407935123a2a505eda11a7fd866b099f57398ebfb75e23e82975caf952bfb86da57aaf3d8affcb2b42bff9f68e5a215f9c2610b28bf6dd85fec0668ba9bc9d2a551244c48235e8d90ccea0d31e5a5fe4940c1670e1ef90daa5353e600540e3eb0814ab191db13b890558316ff62e0805dd5a40e4f3f7cafc677c795cc57f97c80f6ba84233b010608e83d758ba57b03c291113cdd369644010cfc55844d90abe37e90d587ec56406fd7559505659822637c45240ce7b40c29163dda0e370412c46da9308e5e5b32a0785dece2f457c074e2056252343b7e1bbf73e76e5d80356005e46151a6141fb3e797d7e28e383434f0ba8b50b086fc1fe6e328d17c9bae6c3ca43d48adf52b09ff35cbd7029f4e656c8f80211a400c73fb4448e4d31f966af9a0eae9dbf7a022a48c11e2aec311decbe066fb2e4bf21be51b996ab30f7c65aa5c3a1406ca0ad905fbbe7d9eee8bbc1c7d9345c2c663c07710cb6c0bb47dc1fa81bc0c786eef3f4714c94abc1cdb5062166dbadcb2a4cfb34847271fbc1dff25e3dae1bfe2f18b3acba53831424a6466c6ec610cd09c7e19ffc43b2aeeeeccaaf0b27386d6ee73e158387e069d44cda5746a79e2c97ea8d778d15121949829aaac978fa5ad52b103bcd4690538f09e8d5e90558b6c13393d965c914484a05d85fa4024035f7379f8a85db2fa35763f402b7beaa0456e589713db45db9843e96cff0bb5421925f71534b447f38d084021efb7f4859e7876383071faaab0dd92c73b2acb1fbdb7d35d32fb48357d5ba44346d4e4d4a0165cf3b28c59ba410e570234d740b212e6df0d7db137ab03cf85c62a301b67d2a0daff8485853f5b0587d5d1bc3b0daa29139cb1179998312542dcd89c426ed4dd49a7b0cfbda474c890b2800e03888d74d8738aab6a58a4d8738b4e497016c954f763850c9607fc8b45b1bf22482e08f8c8b2019ce5192be70923ff1cecc699dda14325c4d4175d67aad4deb7d00e46739a0ab427572edf39160eb4a8fe92a2f14ee165f08e25cfa5e4826a0ec5b5a1bc7430de697002ce490eab255579af15b61e28fd8ef5bd8b9481459dd075ff52aaaa5aa2dd3ebbf76b83a5d8f7659d1e8670ff31feaf5078706c28c73783573d0dc42d603fabc796c754e8d548e7f267891b4cc09566f1edfc6836d257bfa59445992b2a3950807bddcd677d8183aecc28f27f0ca841a449a9e552e2364972651a3c10d7e5db1dc3920896048dfd16a81d4d8029c38c7d29905d6ba3c17f208113e8148f2c1fa362a1eff40568241f8571768b34c2a7d34d957ae1b1a8e6b877c35e1998b636b199fd2273bb0f61bc539d3c80eea8806ef64548bcf7757aea321933d426b9b7f7871e047b93c02c3ef38c676a5d7734aa6e2a1a51a9b13cd5af4eb3a7f48f32bf7370c8a5d4dc2ed57a875ba723f7d771f2445da8ef0f9b09aaad1d252f7a92fe204c21f235d257fecc8a7fdb78831fe8eb62e534e0d50d8067f5f706fb7303753688ff152586fac6df9e62f3e9a8b5bbb7eaabfca19f8642687b11cdba4afcea505a5df2ddfb873dd84013baf087cb3be39ee1c0303e27ad50269bb1b848024a8065b926e6e6a6218b98d87f9f5683b7129930e82ad93ee132c2b57fecbb29b31daabda04dbc6ab50e45f91ef52a774c64a13c79ecba6438b17227e4b3f882e09f7b3a2ac18608f6535138c95680737a7335080c2e647fb65277aaefaa0f8a045cf356e42d59f0f51408917cf0a488b121d0e84b4a1b832526be4d2b60d2d8391bb166bf70c3ef8251562045f9a9f558fad74c42e38cf91c90915cfc54d0604fd68e211c75dce34586d87286b0834d038cf90043dc67689f877461ca5029493473f4756d08a32774970a343f661a3d5ef3bd09028f02ae2ded6b675edeba055cb4895677452212e54f5a4f301067ffb7a718987f2197d9a834523954f9f2264746045015d74a7cbcef63eb94a8dcb7c9f6e73b19e7b9515565955ffbbf7cbe16dcd6f4bcc86a45bc11e680cd0967ff47cf12aead005aa99163794e007307cdc6eff524bd8044b6a47f3dc809a2009e8b5eeaf187f388b1ee0f72cf9a015cdffd0d1d0e373d1a53ad82d9bfa71d0c9212fa0e6b7b9c31a6c2d1ff09922008717db96ef6567450c4def3567f2759493db6fd916efcc08cb88f3e7b4b0dd422a62e92f59b19ac0b035cf8c48cac94f31b9ec466c3a3c582a782b18d2e4a59d68b35da2dce452a115c358350832c7dbdf92c7dc77a35a17524965dba6c375caa86681eceb9e4576937430c8b79b6882cd0fce00ad8981ce76753ede12fdbba58421c3581ccea33ad540acf127c0dd3aa110c1eae5fa277f5b8ed585fbaf63974b66fa30a8117e6d5bac438c70337c5df2e92e4ddc9b5c87dc3c95a7cac6e9d280f69a7eefa924e0f82f7c676e097e38ce6e6a98b02064c6658ff096eb6311bd59050278f1f8642954ef8b103e8a40eb35cb681067557eac7998eab7515e0946403a4756d592c6c56abf2c9fc5f6f4319b2e907d69b6135e2d5d8306f0cd144f56833b9266de290f0b7d599e295df5576a46c1770299cd18aa13642c42a80843ebb77ff291456a605ab3efa5557d2f5b7d88252ae2e35a97aeb164cfc36c30e1070bdd67e8f5e5eb4f926f1f79bd5767a74d8cf59c57e3460ccbc4bc75e16bdae54d497022310d06343554fd882ed6332abc60862a676bbf27c031765ddf97487202419c982d5be72a39bee1b9a09f7b408282ca67a0aa167b3cf46e042f9438d23d61ddca865a33a5a36a4e07c86cba96608bb294a416531505dff8f6747877dc5a6b78d83d97e4ec1830fdb1700197cc844bd1d4b0247b1617d979462eca93997c1cd00a4aa0979a627c6dbac375e6f6b386bbafb6037b33161d0409bdc58bc9e082c149b97a9120468c086a9bb3001e453c8193045161380b88d4d6840cf25d02bbf5a360284840ab57fbcbe79932bfeb03b94e7e89418072918b4d174a6afe8b3e60cb1c24a693126c0a2d2378764c52495d956539617f9ac62e8d70a23f851a2f1c96a2f5bb055c2f31a2d6d33fa784702a81b22c333952e321bb43fb7e81cf46fe7fdf3e1554dd44d3822eaa13aa2a2d440dfc210ac8e7e14f8257726fb4b3587c23eae47094c80ea4e99e9fdaa29296a799f0c15ad9769cad8ef2927b96e98afec682362eade2852d3498cf56ce8bc2566a5eddda2f87d91810581c9ed1afb449cd23325bdb89e10c884b2eebe410f13927cc33ca1ffbdd573d546b2dc3338a7542a24df22e0cca904b7faeee8dc292695ea14437134edea6cfd8d870ff3380cc545e6180084e0f62a9739d19e431b4f3fddeec200723e9d182a99fc3cc729106d303991da1c01d4510d7e637fcfa9736d967d3eb0f23255398181b29a4f84f8bb8da8b5e86a8abcfb4ca322f57af89992ad9e5c0cf2b7c4e56d3701eb726ecca9ba7dea416b458230cf70f946f9033c40df3671001ce0d8d85bef72566991b493b1c110104e2395b53b09b7d301a0174019157a3f31b03ccf1e2ed00c8da09a8fad758a9d8b78b5f082b5a037c5d58b66a32275b06c89dcbed694fcc28e5bcdc5ef8abe36ec804406ec030d5a62ab49d121311fe30939c8ccea9e03d847597b992395d23758a820a0d43b4a9f70be97ea3d384347b0b4f136b42bd0e102ee326e2a6eb04f07e0a512f633dd32d101f632eb2712a849af2d8a449fe38b1888cb443dbe7c4b9a7593764237528f7644aa2a7526f1dfde332cdd887490e83997aabc8d110c9f94d7cedfe5c4b917ac12c896617077f2b74e76a6dc45b5554a12c682e460ad5b21828f2965489f5cfa02985a709a03868be68ec4b22e08c2670879351a54e8e3573d254855e72fe824c778f0b52cf0ca26b161d618c262ab197fcc1b58d3e05ac43bd746c93241915b7767815410f08daf8e89e1f328b2ade6d751cfedf6f1391f17367ac94ab6b7b263c43aee71e71a7a528bcfb13a1964ddfabf9785f9e8135bc7246ef60f7fa9dae92f8a23f8cafb0b2a306ec9f71a6d011dbb990e2df113a61f2209d382914d87b043821e42a2d35f0fd16f25d630eeed6f1c95813febc191312346892e8277dedb1543e5a794d879cf3b78cac999c61eeb06e07c017ac9ebfd958c11fb2aa508001fb73e936348c92a9aa408ddfb698185fdb77bbebb967a6ce4c60e152390a8972331c04ac3a3cc864fa17816f7936f9fc22a64d6f91683f1497c04b0135d8be1c16f73f67a1261d43871d752a2f91c922c6353492d169715351a07bc646d995a6a9aade7042ec78cf08e5be0f9c33dbf1faec3252f88618e208837a29bea369bc373de636c6c2398b4a0429081b5deac34f34348039aedce44131934e8bbe7752d89cc9b323f3f2c6cd920f56e07f4082f49bf9d8cf265865e334b6fca827aa3b1416a191025c7b644dac8c3ccac1a6cec9545c53c9038e96f85cee3a27cf31df46e1f24becef4b5cd9f4b4af097e286850b41dc6c9b3b0c1c03be577ab1af116d6930b9217322e20610fe41f95c3a575b6b64747c1753895fcaa776d2761b6806eaae66bffbd3a358d2619b2c7d535a08b781de71ddc49d0c4425a32bc7046cc3106a7e3e5c0279fb9666377c7a8592718bc9ba892506c84fbe4cd2b3b0837d02b6a9f35d87ae7f6bb805e754d68fe58ee6889d9278c9067963264d17a5e996f72feeac8c8c39646e129bf9132f44f171106182ceb2167f09513d474c19a749a0bd09572d983bb04399befb2b45e5b56f545143440f206377a33de7fdc5a10f3134e55c5fe38d3c8d313bca7bf6c81bbb776a62984b6e3d36b8041da162c0fe2a7cdd06fbb75319315510fa8a51ab9c81a0fa313727a14371caebf6925175923c0067aebd05d2ec29c1bbf809b16a23d452c6bbb761cea3196b431de4c13d6158a93f5fd682ca50e88ba68bcfc436798c3095d0ceed1d5acd44dac3b788cf857c37613cf69afc229177a5d5bd43771e00289d4c0159f9fc3fa78b4d4b3e3177b479357955cc623d6ba2f9fec66bce82456b2bb7e5be4ecc175f983a684ed9ad74d32121b8de94396aaabec19835209599b2fabc58ecd16ba26d65d49e072f2cbcc7e089ecea03b4aff49def82dac4378bfcd9a5069e050b0eedaf2e61daf63f01608adcba00acf56236512b3d82f301cb5fe21cdd2731f949d15d6e814d4a2090e44e8db4557cc2f22e16957ad7651eeeb59480a3f321e8251590151c2873dc4360a710cb94eba5f02a254e6a8d0a69ffa17e600889d1608c9bf69ee3960d5828f17b5fe5ac8d666de112eeb28c00e50f8989457af8766650820a4df5c6b2ac94b8a51ba9733650be29ba9344b7c798ff5dc2e440598b601f79d9915cba9f50d7d671b56c00f4df5aa314f7efe6feb62200be2ec4ccc009447184cc8c98f93fd4017b889d07408afccc9071debb84ff761eecdaa98f3e6b312b8aa0f65857e7744e6c5a9de8be26561dbb9006ba91aecaf7335d0c22f59cf08697612e76899d0498494d082118603a2e4f59ca048bc5fde2c3fd499788cbe055a367ddb084a24e8856d3598d7db7a79e7b28a5cd1e2277bd04506111b41701d7d3c333aab63bee8e16cf459443962e8e71af5e9318ddf1db9b82a09375968ee0aba6b0088e1e77e74e9c802d1de34d76d67230a8dedb4a3658ca38e3fbf0a24fce3ac734d71a0157f6d7cc58cc6d5a608ceb15fb91b2101f63a06bd7b9cec97922757869acd0e96253f0c2a96c22d68c97c4b4ac297f3aeb25441d286dfa56ed06eb25984e8b1d8ef78c799a5ebfe24c3a6f7bb659c5b3b83a0b35dd112dde1fb74afa513e69c6a49b2e72a835f470d91a04be19541d93277ccd6e11f838726212bcfe2c3e647ef0238668a8c4fcdadd00c148ef96e406841ae5fb107b697038f2ce26e07a2bf2ed0d40f39345fae8da01847406b9e379eb613f64a7630943a59439289c1d03d4fca29192f7f520cb227c851337a6edcb75223e6f82a8dd0d8d5fce7f1cc6774d0ec96b55f870c31900e53126ee90478e1b14c6d0437e342e5204e3e2273a2159e96b37284faddc3e7029111ee2e416d9516c9845e867c2fa4974856a4f6dc62f60d575a0e9a23ead73476cd12f4becafce7ab4b3a51dc24d75fde7cbb0c3fccf0f9301d19bb346d43da9f263499a82aee2e8372b7a91502f5dfb6f4ae5c36eb27e6f1c7c2c8a13f41acf042dfb059cab81a884a65f07101534113165303c16169c303c558bec2fbe7673d778d81d103fd7c5f5a195f67019df4c2d60b1188685565d22c61ae95353c4d090ac984f5920e4b6a9a4e81df85c82c28ac670bca158705a4a6a540edb96aa352e19beaa350c020a6ba04b6cd2be3614cf99d6b15a735be015c0b2bef14c1326f6dd414964d04ba1d14e1b11589bacc047bb01bd3573e10b0c031bee2f907c7f862251913777e7ce92725fbc1b260ed2664abfea08e2d603731885a4f66fcb4c9156545722f03eabfcde86e8ae3fd08cd1b84687c6b2d75fca9c8f66a9aa54c098739946d84fe301674e8baaafc34a2aacf62a0bc00b7fde8188c9ad8402f6a48784e3b44edeb9bd01322e308db9d09714cb765ddc08206a40bfbe4b65fc0ebad15cb20adba591d83b96dc1abba7dca43ce556619eb7b855abc7386feec802f33091d5d99a26ecd41c6387e8122f3393dbbfcc9d4006ad217bf5cc53020a19cf00857c1c6118b65014a8d1c761240ec027a10a5d78d9a2aaed141fc55dbbe1b7a32514e222d6bc2871999edd96dba406ad60e8758cd142c2f90c6174cc576994bc571bcfaac2168ec81fa1918dc2fd32ca637f1d6f5c75df40ff11965ef4788450e85f502fc5efca8bb321bbd993708ad9f2cd6c535b4a437a3cc965520325b399653972444bbc8397fc044cdf30186ca94d62006ab45ce3b476b39731ea00d86e5b5752253253a4e5d8f376b67b2b9c683b22b31dff70b057fda404393409bc46ebd160b812b6489bc9a6bce9f36503930c547b392df6fa19cb6fb5862698584722a357b028f7ed29eddad89ccd9bd1436d839b6e0e77201bba550848d825118eece3fb05075603590ea9b210a89b8bac84fbadb05677160ea293a5000bf0872e7aed86a9196095361d129f3d6dabc2090dcf7c7532e2a3d51e845d1dc1ab70fa8a656a128fb1b628f4a206ace70890456890f7c1b6044e243b914c42330f0f7b81f4402de355bbf7b7a9a872438a030752898809825c57e9493dcfbd1f346c6b1e5e146408b360ed50088b89b62cad03cf11be026d69ace9dabe620cdd6d5c72c7c9f55302237e9d3722cfceeae92d6b93193f14d401253caec10bf3917b727726fa434be2c92222dd19f5aeabcc66d9855f2f2698c631b9a4a4da414488f2bacf94cccc1f39d94db044cababb6fa800f279d73fe9f241d6944218f29360380b6fea579d9d2518223f073abc58d044e081beb8efbffd11c785d252dc15a3a95dad0f170b87dcd87712ba7643f68810af4ada9f67fef4b26fa388969a0fd620b0b6928f0ee5ad31af71750e3a99e4f98015399cde1ef559528808d0b33012c2f70bd7341965b4a9b268c2a3dc6d9114aa53bee5108d618ae9fb607a5fb144e8657a9b28d8a7abaf37000c4e77573afb7a449d1576060a0c585a7e0d0a2b3006cd869f77e1cf9d3c9e6cc035fef3bd3a218d2e093f5975cfa3e2497c13fe380bdbf0a09b36482e63e9fba9c1b71296ceb1674a9b57a4ea27caf63bc1fb4278e96943fe2fda2996a4006e69dd9ec452f94f62934524aba28674e6f76383578f01dc80c317c531b796874b1e42e656311d75fe8769eaa888c278bb1fe7b5c52ef616255d975e323506eb251a671f7bcce499a92dff9ddbdce7647e7224c5936d944bed970103062d2264a50eaeecbaf6612cbc7cd48ca61d1e1676cc31a1ef17d792674c1d138b70615c7390c7166249a2b1511161f4147dde1bc1957d8a21ab28f65684af2af07958a48903a16111673b9cd4483ba32332085c6b067b29617d0109b6bbf7f524f4d580705fa765be3bc6d36874fcd554828a7142012221bbf34ace7a1854f3259a00eb1eda21ce8b783fc6f2dac180ee36ab945c1894a627ec173c22f38c15bfb25cebae4df47026d9ca096eb3ed79b00bf1be60f91a74a755a2809252551815716a80d862f07b6b31eb03a239ef7dde3e204b23e040c529069961d78d1fa966dd18eae43679d6438e340a7dbd82631e9f3fafb7e50f079155b02a27f706b874058d643602d380fb50cdda8e9edaa3562f6db39c4f610f77222a5a6d96e046de8d0449a377ef6d1947c47c610520d86e15576fa4b0c5dc65fb2385af7eaadf83005b38b1f2a3f49e058501d746f95a8955ab1c538bc34818784948f943679f0cde53ce9555367dba78db955812293c531b645a91cc3f70a0c155aaa3a5913f0c201024ba2f2a820064a2b5c9c3979ec69fd057466f2e3f12068b1c48e8d07d5560f76e78c5269e3218138d736fbc7f13728b7e142b1439de580152093c1d180ce6a41d44d93cf724c6b7388aaa0c72ff5117939a977eca26ce730333417c1da3590b152e228ab417601920b22d412b4d4fabe20f9530dde8f2bcae67167aa3bb1a3b9090859aa0bb983a2a51738f1a37007d8a4c5664d21ca5bc0d335bb6aad2ce9824f38c2e0faa3f54f1676e181e1ecbf07bd27673a9ed08e17946fd139a8c14d8de41fd29d874b9d369d33d7b53ba88f2ec7381d075c0f5c1579609ccc37d7db5fc2794d930cdc8748a553971ab3944702c123e999577d636d3818c347b2d347c9dfa5cb4b49930142c89792749d169ad63f9239eb2676c37d620421026b3267b00ccf37f14c921f2e1ccdac29b2b9a2f5681816b43968a29bb31c43170bf3b47447f5506383ee38fbfc8ebe7b49225b886ca9976c1130aa6f92a6edc979a3cede2dbc2b9edec5671fc48c14935860240f450c6b9a0aea86624dc295b67eb8f5a06b6faf7056df0b4d20dcef58f430416abdbe546f91dd6819e9f4e7d58784906748491783388e4737ffa5032265ca5b72ffb2a6b7dbe5860292a93f4f3ddfaa79b7a974ad022483663b88fb281586fe202ddacc18826598f10236321bcd7b70e98a96299ec139e91c805af1d8e31a1949c67cc49f92635ccc7245057618ffb454ac8f6dd02d7fe84a15a1f6e7a72182dfdcf79e9ff6e91347dbad34222d226d357d7cccd2008bb59385dc9041ea4c70d3599400e0451e01b1aa9bed7ab49035c2c039a6dd3c5dc561501136c12314ff76d4d3a51b61d7f0d032b0925642beca5eb119afb960e1550b1a57d6bc0792af77bebcd9ce6da3aed166273bb9ada08d9c237a6df6c1c3e2060cfb505fa5fce566e665ff550d4b8a3eba593257dd1806cbd86ebe70875ab12f57c5f9d2696d69d2923f0b5ce9dfdb0f33f775e7b1d65e1863604f29fe37481a0a3e193c4da6e7ecb75e0999ef4d79c700293746f8afe3413d6a256b4239f378ad616d83b4206ec6095d94e0d637429d2a5f5f678db587d4f7341842778940905812a5f0d1f9f414ed365f80c7a096bb26f007191ecd62fd9d035341061f83bb2fb6e7948e3fcf8c88eeb0ee4086dc8b6cd8fe952c392ceab3add699a1ad53017fe04a8546b83dc978a1e0c89616fb1254d847e84544c4b97049f48002e50bb8e2965ce5e17eddc4e82cdc219fa1e15dd4e6981b9137abfc155cd5e69d194a3a30c09dc114b434e21072a7206cba00fef26fdc3f22e089c58680f57cc92173ab108f02bacf142a845ecbd6ee2a42cc95f61db13bbb29a7498096a30c0b472ecc7f46737c2b7d8a36c64812f7813d3e75aefceb6ee4c0741116b7831d8ca8e5dea08a4d0f593e856602d89a7308675446619e0f25874101b9535d0deceb50489c9b8ce0eb60b52fabc093be4cb16a8fc9348ad9d773328440266c0cb0e98ec93773c4f1e8babf019eff126547439773a220a4b6417ef1d9eceefc1f33a1d5217409983af5088256431fb88883389c0a34be6e4a4019bffcb7612c3bb75386c9c7bf42e6a17e74ee0266adb44a9f9b628d87ffec869c4b9051916d272df78a8291688d157dbfcf6d30fc728c2ed6700a66573e25219e835baf4a45feba0596ce5c7a6a5e3c3e44dd23a0a045773d8e992a3c9135c509dcc72d22b2b19247317436b75648b7665d28e294c329e2373d2719f0658ef6df096340d4ef831891820011ba72cfb11c119f558d0f15b0145dd26d882257f8c6e461b2dbb68b59afd240391ca6e67659c3761696effa03bdf63b9f2de7ea8fd72e15775f9335d2fc6fc8da24c1ef42f27445c33f625f913e1c06abee3256974f1f7c0ada70c184587b6f94347e447ed1eb88e98b72dd9a8d945e7201eedd5f14d9b2611c02c35f798bd01c5f78b2c72c62207e5e0da24018c56e26029477e42e697b6b8e3fa1f4d7d7caf6e4a8f9ce81b1d1e575e9ef1e0524e9c403394eccab84bb20cfcf187ea8c901367fc14dff63fdc28d2b369a3c373f82a483ec403d8900fe2416d1b8369f665a53afc5d8f9649900147f4b8d49710d7511928d617e9ce9f1f6f82363ff78068311859936e0a144faff2da4452d32d0fdf9c17b766a9935e6b0750ad255822968718cd8f76ebfdc060bda0053e52446dbaab1b07ab2a541555965a8109b9613bfb6d52b20e85e59dbf87fb1dfb33d4fd69b3eb61df021b655c3b7b4fda951047e7c4982aacd55381500c1a8209ede6c354cb69d408892f227ff1a75ccbd6d825fd9ba02026c3282b5c2c02ae53a9db9472f96947a5dd2d7ac5af0ef85a887356394694b8734d7359ed6999f0fd1830ddba8acf39652f9a1e9f1b01a8459c3364c69e69610e8363919deaa4f14c6e704c819adad139da0868acf23adf8b30a96215d8baa63917be452303e967e5c2f8967fc88d2a2e76ef75d9d072c65b5e00eae22fa06bf4f22dcd8114e656ac2204c13112075ac4416bcd3e411b022ec028d018f52af53f1d535217d67cb0a70945fb09a19a1caf02d9282df65e8dc3d532eee1d1300c45d12d3047bed8a23d6a4b422abf8364be591a4a5d7e4d911fec3e48c86d57aabd0da733d0b3fb8905cb5d6d17fbd74b13a32f79a18fae6965440b8b65f592015e40c43ec9c81c2bdb0eaa72beea5a9345b7cd7636fc4bd12f4caed8cd48eee016b1a85161712412c64ee3d22e0de133d05c87c263bbfe480204d06ef68935ce61b34a12371de5df4da173faae0382fec1d7247ad0d4dc0b105d09c08ced23a2a0b2ff45edb29bb3d8a54493db831cc93538f78e7dbc515c85d1aa9c1c6bd31acf5aebb78777d41c58669fd5719e51e399060cf65beea42bc67ec904a1cc9353b5b5fef06a1c7585e636842f95cb695193cf334de41e19ad92d54bf96a2a6ab1c69450dfec5ebad6d5f71362a4fc5af20509781ab47189c3f1cd42edb4ceaa388b474b53ecf44cc6de51c0b710b803b723815734b76b8fc62e7557016528d892bc5b0700519dc806a5926bd5de9e35de586cd1de13982dd88c2233e856101dba76fc52478fb563387373230fd783f8384752c7eb1543bcd4ee661972be7c5090f00a0881ee3dc1e7882c9b8688f87e20d391b53a6ff0da92467c2b54f60b1686c34736165f9779b0882e4873763918c74235915cf9a7bd0cc5b6decfdbf60253b0770711b5db27695d19ebc06b9c3185e96e6b2deedc495df5357a483e37ea5ed49ddc7f5ea71b08fbeee19f61f11e1a7c5ebb0a8f8e94d481e8037f516d644660f98910b9654cffcf6797f2e3e4d67dc49c579a753a3e5c6dfd361aba95d5d7fe646a05a500f66f787e14d552d2feec28220e87b20f76a6e79a85bbe92b5b685e4c99d418391512d2c1fd01ae79288cdc95193648a4b8d273f11778e25c2f6b77fb1480418efad5eeacd9cadc1cbe1a9744efccad618b02dfe82463ed65971cb39c6254d10537ee20378a343fc19cab5a7f47db6059dce8f5382e8360e37c1691aebc9a6ae7c8a21334443955b952283f88ace56023319b1525611a110a0e8aff9e43eff2e89021a3a9c5961d61e1c5ae0a1f37d632fe7cb7bf9d0edee7654ab9ad00c2e0f0c10ddc0a6b0e8512bddb4fec0c420bc64526702c3e04d8da300e49551216ae7b7991184ae966f6e798ac02b8a7cda7bb193e76382793ab70929d213c424d0d219256fd3d0b0be63045fe15a3c63695f3902fc4d0750ee437d666157fbccdf6729f044608d4ca4edc5f72d4dc0502e712c6930d54f5be74a66d373185764fb40af12f35b118d70481938ee13a99fb1993d425efbd6746a6807d85bae390bed14c4b571e657d2793dd1332563d22d1bc02a453486bdb8fe11988a620a2931615fea35c7cc79a1983f535c02b48632bb7af8a6b825c7c8edfaa42345822462669984529497c626a99749c66d375705824fc355c0ea65bac68868e3b56af9cbf201aa6389e980230ea1bebd81980f6c86844878780d4e85de570de9d681a0ce5cf69bedeb2d58ba2b16b3060b8f6fa98380887ae0034c3dcacf0ce9c029ee81e0da5dcf1497f916eb6c81180f42945155bb24fb4ce8563fe6c71b6401731f5a1f9331b8f16c525e3a43a05a447a3bdc7f3e5bffe22f19bfd13b57fc1af70dfc9c8afa8585ab5dae88db95e993a44a08a7b5c1ed1fb169cfef0fa3cafd8214e1404dc9ac65f196354ca92eb39ba44367170f22f253fa6e15e6e56c229691eea1d6af11ce3bbe6c937fed48c9307791d23eac1a9720f866d3210145063f961c9f90884d3444014cc41d63c7a2d8a4d61f2d226494ffeb4cdd503bffab4917974480f70dfed1f71ed5a8fb7ca24d84a7241b8ade0abbb2d756e6084ed37a98da55203fbd61ca5b597ba4ab23a4fd4c5afde261c8a9f35a8acf9a8d095e8a559686cb2c939926e2eb771c47b07f8df9d6957ffcc0829c0bd16ee6c0948da5cc872341117eb57409b95c1c6e956b52fa90a6958278a47d3a64678ba21285ec184db6274902c7553865e53489c7e6d6b714b3eb822feeb2326cd60b7f5d34f31c385e84555299ff2b9c95fcd5935b59e5d21ae91268f02aeb1e882e44f29b457d6c0f4684216ebcb625b88a839cfc4da313f81f7f6a19292dd2d87ee5416edb6ad208bb28f30569ce632bfdde8b75d9713b5cbf8b7fdec60abc0ecad01a6fa93da8981864e890f7ea13a1f68f50e958f3cb731e45020d6ea5db15a7721c9612dfbcb6f67d4e03eeb46d181ae5f45fd77eca3f3760abf05f44c47ceaca66e56e049d12cfcc6fafe503f962913063369a8276dd272bb8862ebb44ee2f11f8198b393df3852e69f40b2db5758a34a95a97b679c8b20dcf874220252955696ad729bbeaacdc100648a1a16b21b59f8c1ff91efc1ebd99c3ac56d374a400a803b57d218d81fb09e5df7edd478ec799823a9ede45b2d22b9c34fbd322a41627499eafda8276f00067c48aa50e80fa5f5c0f9ad9d8999f1b7b5c1368da7e43aa894d5c75a20a29e62a2643968ef98af13ac5b2272c12777c4d2c58125e3b75530f4314bb2abefbfb17653b02244f39cc9bc0e25673abcf6d61b5d3d8da7860a7eb7fdd9aab0d1eaf385697206a19cbb89006d87d1b30c2fb45a265dbedcafaa18f77aee331d82effe7fb928b73c28ba774bd761ee8358e8f96c1413a564f00dba11ff5ce3f282c771312f80e2499c59caf7754d8d9ff15f09307704c8d4870bac4c1125b5cfefcb59386abc6856f4aad5b353beb48325dd2ac5c4c26bff50dbd3e37d975430be586dd33228d33caef0add11ab89dddd10fa57710570ddb5dfc8b68214f7003f148a8dfae5b932900d21bf6256fb4f91fde9e1b91f8cc6c0b0917650ff6a80b1186d90a41230d6fb03c168a5a38f1a75952410a7f20dbb668f0de5c1caac5bb067b3e9d2dbbc8446af5e79f92c6087ef6ffcbb2a29809bd351f92a0d1b51f2acd80e5b9506c67c2af95ce10d40e3c3f2c4f4c699437ba8c80b6d33e689e0135d28486e316c48efde496a0757614ee4e1f3b10a07150cbf9c99807a5a22e2c69f75b7a30c7a260ca40ced8c1cc7c800edfe792645476a4b181b005cc5e6b5f69ec64cc7a3b3c6d94d3280836ddc6dd6df0c454cd7d2fe6b6f7230d4c6493f12368028aef72b02f27db37f2552be1f96a1e55d6f3b88bafeb1c7a3e4b2b55fe5dcf2c3dedd0d637e6505a563a2c129cb0f799276228cbc9286051e0fc406413735cba9e53117b30dfaa8b3d9c0eab2837159f4535dd54878ea5a8998770c70f7e09ebe58fa19da1c819a35fc197400257b3c292480b00e69febafa85de0cc703766519cb327a0c6d37e34791af4f8895be7c4bb77e3bbf829c5cc6855a4028d13bfb6b3312b34981a20b77c6289cd3a66e965a25d0ebf38d913ba43632520881dea1fb8653d12addcb9fab75d73231e98fae3b50f90765cbd896e47ea4e5c82d6a7a298b3cf700df3eb0266be31d38530c094a75b82a70c12670b4e5a60ce377b00e8b1fddda434f23538ebe54191a67a29077306ec5eec36411722047d1e19db1cb9282474350ff37220a91061bc6bf5353fd92ca9a5c307c831146bcb02ca9c17fc85250917611c2b96fc2a3c9da2fca049c2f37424e98f515915a9019a279e9df914ebb3459c4be3a7f6faffd68dc25786c3ef1a937547ddc7d24eff101ba72048b1498339bdbc6ca2f4b434686fdc92a403a498c8238542d887e13112807a5e96e66f8a7deff1b110c259e66af2e09b891990702f5661025289700c616d479ee8fb0173e13b049be9e2ed5d5fa780564058588f06776d72152d0304fd1d47358e0d781b9149e9c01efd1fa3c1b81b39479adba93cd6a68463b31a86306fad5ce8a90c56e9990740f0d2bd6fb3183b352a7a3cffb8737e1fa2d9ce4a88a472dde1abfc4c670241ea2ae76d6a571069ecc5253168a0fc628696e3a7a3da30f807635a6c3c011077376db07467f907275d50b842a78e9ba4b012fd0c631205d7c6be1e2ed6c7984f8cda996e0040bf128627e815e52ee72e7f694ea0a094796aef55f792671598295ec0afad8633644780f534d0677e0f2f3bfcc19643e8da2203195749e899642429ca79e0aff227e13989ffc159a52c3da972ea997bc221dc19e00dadbff168745aacc4c8bee4ec18460e7225743def2cdfd728759654c5e99a045f49038e1f0ab67670f127b28754dedab6c534eaab8bf34f750bf8c8e6528014436e2278ab4a728124eb0a56098a3698dcbf46a417130c311aedb7ba7ee2f6bc0387fd6f3fd6fc7306c2a9d0d1b6723fbd5c59ab8ef45f7767712ed593be0ef9c9441e45b9d08201d7fd54c9d6a3a0c743cafb8255d445cad529294075c9681a19bda02bad7139563ed3fcb9799243b577609ed65208e4892b884941b015079d43177756e74718b0f0913e831cdc6694408dc3b3488c550ee97f106451f8f13634927974062f7eb07f78ba8afdaf9760c062ef38f3188d11906087681f0a6f019c34456ad8d01a27b75a2bf963e9ce231b25d3f73648168b1af7966f71b53936db50bb485c2ef215e53741ab1d77355f95c8f99d9e03d7a5afbdac9a00e09e5125c1445ddb2e9ddf3aad456df0f4a170ae5655216d640ad97108688c5ceaab2273265b4487d6ad06e31ee46bb5cd4989e7b610c7bfe566dad34530146d4212aebf8613e6c4c26f69a2dc0700a428eea448e73404e190a68962f9583b5afef6106adf235dae9d5d19ae7dd90004065422ff890b9113d641208ab2cd3448af1ce64acdb7e415e55e6b3a340155257fa7a14dd4d1719bce72287bd31a97cc86ad09c8e6614ecf84b3e2b7a2c9f160d4892a0cfd84e7095bd138c13a734c859ea24e87129838d5845e6319e20877b18af2b7525fd2412aca1a4b768e692cf7ec570acbef06d614fbc6fe1e58b574624c70aba9a2eb66e3e01591743fa59a210b2bc93a38d099abc196e48a5864d274ed49b3da702f3415815f77922e511b29281f434cc919f1eb512fd862e23dddb4d6d6c2527e620ba38800cd495eab89c991d674c14cf0d9a952238fb88fe2c216eb1ad2e395052eee61964b4e84a3cc750ad4b8439c845d9d716c17d319b9676c168b77e742df7a46e2595c85a8604c8283b36cdcd1dcc79c5c33daef5b728b03c8c8203d8c04e6a7f1d7571132968a1f848a646ec683de86102d54f3c452659a1fe2d6415c2eaf667a49e67435534cc1b807bb772e3c4ae2509b6b54cd387e661b27981191333e6a7e8f16f26bd291257127896c1b3a413650a913f675474b9e9134e86f400e4bc91fc1020d7827c388e6fc5a244b0b1077cc41ce6c0d5cdf1f252368883a68e3fb734e2b22680567a94ab700c46f5d76419598ed7b362a310d410ddb77db114191a9e12edeacc52d3a14ee72cceb5917c43522724b79dbf6aef0c9721c77c2dd15a02911174f6011a37527fcf914672f6ef34a67aefba1a6baea3dafd2a2de61260bd10e61c3f69ea7abbf1093180a0fe4862d1f46a7063a5b257bf91df3f1d4330dd87c726698260599bd7a4483c53c4f951f1f359207cb82628859f75c40767f7a1b1ce5304b8a2f03b341418df5b481c61530dd7f9fd00592a0e67154eaa5a73798d04f1f16c3c14eae9ffbd95987ba28ac806100db01b0ab861362b82645740fedfa642d77348f118415c4d2f7fad545f25e3e15713381987268ae50c62cabf58ac7c8482956b1d9566123d3d9c4abf7cc4fe39a0d93a782a2dbe26ae2a7b939cc23af0da0f9f9a1be938f4750aeba993023cce8969b091cfe74dcc031202e7622ef87bd012cb99f03edc742afdb0f1c7bf3ffeb45e8f8a86eba46db0c68e01efc3b242e4413106013d5767fe38f7e0d4e1bdefdc05cb0907737ff47fc6fed99f9ae3c84e37a723b1a33b08f8974f5eead1d537dbe2b56faedcdab035e543a74e8c238f7dffa0c9b98fcaba6b87d18ca8fc7ea32f2b34a7672a76cac1cb1aa77fbadfa49d9a0b055d05fd413d89b8b7f85305f12a4bbefa4781e231b6741195f7061e2d2d7df72aca6e1ce26eb352a3c3cb958c23613397efad2373f5afdd8b5d9751071a1013a6c016ebecfc2e3f9daededaa12bbe7ba6279be00bc0a1034b0e593f0ec830f50860ad5c7a92b9fce51909a914986bfb2bcbde2327773fcc1a2b7af29e75ad372f9bc7de4fba24c84d944cbb3248a0d40cc32bace0a5d78bc83befc059d9cd6177f35c3138cdd6ca1ed9ad7f30064efaedc0ddcc712488387570ed5f4f80c7a25ff848cf4d054899ae36b5f3c2889712d26f72dee972c45030ad70080c68495c0f87cce6f9cb880131edf19068965029a1040b3f54bbd511990eb7ab328cf37c97ec0be2a98eb729a6ae7249338b86320474f0e26d4556feff83c5379aa3daaaf3dc8e7f7d248bfefde94d94250af65c3e160a754c88b6b4c270e2eb1e15063e16a8c17a6f15cef1caf41c8a74f39334ee2c68079970b915dc0319bd9940f40a893573c4bae1dd081e787c1141d10395e091ba5340e4f6bae219b8caaf9414fd6c165a4b7ebe293b66be8d1b9acc236c5fd1d98bba0659bdef0ad2e26b8e4c81e26c8d54e11aba206da175f0d9e47f4ca6153dba4c43a3cb27bbc016d4ab73c0247f08643aa7a7f0cae0dd8bb093dacf669485b2e5ace590e0a19c5fed8ed7a9e18b2bb5fa859fcf6b9a72096d40acc986a2f39178d5096b9c40c452df0ab8cd98dc3b4360c4636e0078652158e59f49822dedcff6d8497156b05de62999ca070b22e061303749f873e5ecb43112126e1b1d7ede4bfab6cad880ce451fc1b7f904dea6e5fc5dbb51c14dbf6a23079606420bd25afcdab254172340b613509b550efd7cdcb5fdb6a6c1ec9b5bbafb73065dd3bdcd4a087699c87c258bf5dc86f8c7c937d689b94c49ce3dc3ceb9c524c75fb535fc03538d16b710ae2a3ff6fdd4021310bd560f22e04f707a06d9fbd61a552cd4c7542957d3845c532275857aadd9b4223e2dc3f2e494948a1cbe60ee2e4a23579f4bf48747dba94f4ba267e79e57b4edc1a8f30a738964c0eec7da803ec3e6217fe74ca691419622ff83f6277b75c4d6f41dc7cc652aa56d1b797dd814240cb981d6b68efd12020d5c58428ef3775aa4dfe1df2cc7cd1ee70d9631f55fb68b47004671efda4fec999980086393f86e05902b8c358e9a13061b485909d337751b4366d8cda342fe116d6907658a23a8075152f484adc9eca7add765fb181afa27c283c4ff72332f037e6b2c4347f4f09f736a60cb718a902c83cfb4e496de0380f5d74db2caa3f5c2ea953c23e27a7025a7820c5030a473fbf79a3295fe3730e0b5735ee5aaccf0e7dc94051c57746bd6e103e96b452f03fb63f13010b1dbd7272de585ebf758d2cc2d26d8bb90bfd951d9f5120c63ff731a87a0970bf12cb8d5567b94ec309695101bce09824279601b0b2ac6322f995ec905881671e52bf39210499e637695be160bbe7f6493c8f01b558f097532cdcf7ef5d747e06b525ca7ba4928a1e0f67085611fd14b98a6821e1e305c7d16529f3179e4c12bbb48748268496c492659abc9633463939e2a42540e9d378834f8eedf6d20f0d9d59b0836a172d2d292a7d9912d01fe8c46250dd157c652e87350ae0a27112ba4ccdf27f8afa3f9084dc03d4fb56ebcfb6d144e0d8f852e8378e0df383b4deffcd0e7fda384ede98ced2c63bbe019e799eab91865135a9b51213e267060d8438217fe363524de564f65e7ef50a9403d9314dfeb97071a96e256acd0c0586e588d8a45bc50a978291b3465a9ce507f6b08210fa34ada990fd5291338b9ee8e24a84caff6bad4fce30aef6272b6a54ff48f4c52f2845e8cf162416dbef1015d58120b2e49dd2de0d30d172a5bd1577c9aaed5333d32741df9d199042c80a3a2403c20111e48b39a70663f4b9baa5cfa7164c79cb9a34009ce0193187783428c574f86b1b62c1b29b82e8406710f64da17a0934d960df73113e24ec73b9de8ec1ba399dae7dfa366d4d050dc6f945c4436c77d004c0731f60bfb5f544b71861d7149ab98105d74a0d68c7600bd0f08af6532d57e570dd7c9d7e5c726c32950c939836357e4c28c04e1f592a9151da0c5b0adff325a0099d333cd45180df229391846f47914d146cea773c676409c8aad7cfa530106a3f69028f6f4ef037e24f03ebf1bd780706652cec2ba65b82f1e9e5b4cc471481fd8c207353b22388009ab04cbf6c2592aba4c4671f912f5bd76fc5bcc5874e080b624a5730730fa33f8147f7da39089ab4b118264923eb1f2596dba187a4ae93554b0c22f603f61d411c3bf9cb3b5ce482083fc5312cff5bd2b8f79bf0b5fec9405703ff941c7fd2336496f226ff92a7489f25349c9cc7cd0f24d46c65617bb538921b6f8cd6849e6cf796abee659af4c0545f725610f35246d033c26c4e6a810712bdf65c84f2e67b122b653d690370caf082f1cc4974c7234d58f4b672fbdcb19a7370e67b431f100d9957757625b983f551e3553d02cbaf202e79658b91b67348125d46f58e65635a6d2f5631fb7f49d9c31cc6c2d41c0a61620dcdfca312cdef20e2da7194d6c22a8464b2806b0ccffcc530f43e8358af828a3e66e2b2d4849d5a1a38ef3b28b15f6922d266a04ed99662c8402ce99e49dabe1ef6b9be149f591d552730a6d11025d7d0027cecacae0669b81485d73dcce6b8a29cc8a88a477b1086ecc998cdebdc4d35ffe59fef8582ba2b3e9ab6646cabe1a387e18b632d44af9bbe9df45d84d50db9a1c565ab2f7adea9808cf7e386a0ae2b5a4a475ae65d53d13f2604e68428b4132f196115513bd28047cbf8a8fc81b41aca07fbf38561f52e4311be8fc23363e5f1d02e2e5e310a3a085f44269f3fdea1eec7f60d5a76a42afb986a883ef83148a76971f8793604c66d82e1aa9b1423180c488fbecccf27c8a4c7a4bf4a2da6ad3d8a79505dfd8f627ef2db17757eff13ba54b04cad05c589f9e4f0bc7d968008cc923884d46965605b34962bdaa7f912a92ce711f10d46babe3e0087a792220bbe92bb2f2cc04baf9712a3fabd7b0871e32816e7f81d5eb80ad39470d6ef6d09c384ddaaa4a47994e2519283375066a5db9ea7ae38debdc831a15a086764f2b1d261378ce4b08602408a2598d993b0b1fa43a4f2579dc132e5483df6f01326c6175d9f1dd81561fee7d83eab5fe113b10414647875a0da98f5d50e6531989563eef072df9c36e27f4482339e83631eed10bbd4b2da51bbbc831064c44617433bee42186689f95e3d21004352bf1071a77d79dfa9e40ef1a8d32a47a5821a94aa28153c9147862b4f738f5c5c44de15c0ac936484731c7c1a9e665a7276338fcdaee666f0c391eef2707f74fbf42a09e08223af1f8d002c07908335d4f1e4cbd0e454b360195179bfa190d786a10d332dfdab1dd6497a9a96fe49286f074ad19184f9727cad60e005a2f79dbd9c510a9760ddc03a672f36390073d0631002684881cb242e0411b9b093b186063d5d264a52f3a71b7af539df73da1f6b92c0e301f648b4be202ac9919cddb2122b93c4ab81d5ddff972c82750e1009a36a79a6654b60db213b0868c72c899c677a78349f0f437a1afc070e35d77f3dddad8bacad27fb421d759e59e4f69ac2e8557e85602be03c58215abe575a07016d8739ac6f8dbef0b392b1640c19b1c0eb1d5746996e7fdfdfe8e3e0f0056b93dec0f18ee5837406b689a3ed82ba250f72868f06ec9908b4812a45052fc78ba97d0d6c27938c23310362924d3c40b79c55983bbbfaba38b42946d297f7bb0c210c840311e14b3af0498b51c0618fb352277ce8581c2bfe1e0bb7e088d2398a51017e1c26b1a592ff5285a883887bc2e17f837109486f48382a34d8cfaac3ea6c488421f93acfee21aa6de7660c5ac9539181a6d17e24b9560cc2b6e0f66f4c213e6d303e3e29bd8d473b85af7586fd202576f7057ba2457029bce947fb0693c8a83e43294055998f9149beba41e75cc56f71642ec5f5dfbaad867bf2d821d728ab5b0958015e1deedb5989a60c4d28f0d7f29442c1c4ea1ae2f4e4b92e41b6efa547ee33244845fb8a3d239144f6746933b5dbf9fad93073baf35d698740cba763ec95f54792ab89dd1b9b9bc9752bf56b97a0703c3a9bc674ef8be9de59057ccd47f81dece15014b54df1d00c7bbfecb4de109888155d85062eec6927af3f51c7a4f959e1375a238e7540b32dfe78f3d8e1b787402e0879629d755388f25bf991a01ad8948c659ba689d92ca32a09384d78300eed120f7da425122c7110e5632a2e56d1727099924592d1765e8e8c404c7f846c26e5860bf32e3405c0028e0ee8152905a97c1a98a607b76777d07eef6c1a18f3cd0da4c70e193dbf7f47034ed2e2e22d63aca3ddcc7a0d01340d987216dc34da7de8950081a1314e596a78922a18cde1ee0f65794fc899431d5797d9c35a408ecf51fcaef0e72d2ef22da3d14d85b2c301287b6be12b7b12cb4394e22c98048e0654a72e7d26b82e3eb4491b3542096fc886829d43f8c1164a7e407be9b907d32f493c39adc3d016cd7806e6999c1cc29b3497ed15c32ba225058d35a641a1396591f856e8a103e98df019a28b1668718347cecf768073d49a16a0dd79d9820c2c23102bf9bef4eec91e5e20daa62d25063a72ad9059f527f622026c207ee6a124f8db8e8b352fc268e112faf13319f2bc94a98acfa52c60fae33c0d924aaa71e949b8745dc35059d0ca27cbb8382a71aa610256eaf6313f376eacaafbb5d34681b68aabf00c29d5254a832f71359f53f6cf0dff2b4a855f7fc3c90a058ffb352e06a06bb7085eac945395bf1df34a21e412158f23ad16f665a4cf164c95f44f8d32299dc603c7ad3d0cba00788509f0e81dc39ff98348905f9284b1aa2ae3d0e59800ea76829008c7ae72870b4ed98c53af0d08cc73245cb1ae9bd8eba0eaefbcc1fcafa04fed018dd22a6098db146b7af215b6ae7245634510fd0fdac3a0377f653ed461553e4a226723ba33e11bb47d65f5490b8dd4db00441a82e5739947c9a0024a05fb15c8699c50a477ace83cadac526b722bacd3af04c57125e22fd33eb444201092ad8aa09f888d3f583ad11996de8f1ad4178d7a581ec95a9f27e6613f6fcb0207f0b7f600df1d8e841fcdf261211730957465105544e59e270d57caee9462713dc69201dc17041913aebe9488251b488f82150c9551161f92135974c101dd4381edbcdd164e8c3b17e4531fae2f6759f90e891fc7bc7a6a14d6336f25fcbd846adc2e2a10e58820cca696fe9c1836d69d636d67db581a0d0121a19998ef41bd9e3d83dc717547eec5f8bf2f9f76806243ea0d682d17d75438c2a65ae9ce61ff207992511eb1abf9ff781cac15b084bb1f9337710b63a9bf8040ff0912f06aa74d345726023261ef4b8fa610a446be71889713584e66c03b13cdf7e16bc5a99a88cc6032bfa50b0c2481ca953da563a02db0ebe0d5a8dd878bcd82107818541baaede4ff905eeaa62e5efc6503da8943dfd317c2fa2fc03163bed639f51ad3e39228223ea486675309321df6773221a3c5d00e74161f45d9a1109e3103029fe9b0548882f8f3b510d59e9d9312d18329598a54cf010c174d8bf030afeb7f326b7053e1d8e1d88a3e08c2f44ff579b1981dd33dcba18fe4de7806c11035931a449469e18dfaf557410303e4e53801cf45fdbffb97434ce61a2efa4202961535371da299691c765290c5c91a76204a4aa31435afcc52a4a5528bbfb6473d7a13e34cd29cc264a45dbc3be987699160f051dd8c888a8d39fa65d6bb938542636dcfab9583fb26fc5e42c277cf31590faabed0f21ecee6e9b92673551003596b0000ef5361460013476c021353d2993452d8f432672ba4a95f831e02738f497321421448b2aede7ec06fba48fd8dcfd55b0976f8df303bafde6ebb8a24960df679fc82612c62b0a1f79decde3e868ac88c2b884880b155b01c888977022be4da875f9ae9d25807bdea470ac9a9abc8b77874f483ba810aeffda3ef33e3547ac7c9892e9279064faddc83820d067fb7bffa3d8c4bb3367fbcdc40a074d7fa7361070d2d6990de6be6910c5c4a3d7fb02306e764a80e5638a008629068f6a80f5581bdef2483728997df727ee0a19c7ce8e476fff5c269e27b413a06053e8e5e8006a3e4e6d4adf5f10d773b535621e08598aae00735388fb9124b6179cecdf025a895d3612edd4aeee4c4215d94df174ac1d4012b396e6b0078174229e86ecf1e68c0c6e43e465f5be833216f087e96ac297d7dfd5fd4debed4a2ce2182f7bbb42c2fff5785004d50899640bc6fbde91a6d04acdeb72ab0d173eefa677897126712f4e6583e3b7cf5980fcde5b5d617613eb1357e6bbbf5080e01544efc0a6f5e1b1f6d17ae99746e1cba56e7a5833ec5e24cf02bd309c291ff6b9b409df69f2b0f3564972ec51c81db40af803e8cc40a02fc2df0f6a2a0085513bd051f5f8c6ecd3b2d8f130a8af75915e955658d53d7a7b519769c4a535d347bc0e11b809a9eeedb4257947f011d5bbd5c9d13faefb3285850d83361c7bb9a3a55d513444d40ca3e6968c7595fdaa6d291ed148e98303478f912aa3f37778f02004959fc7d43169380c0fc79208e0d816cdad00cd43c9e23e9eb08162c0225b9d97f6dba1a122288027ea2efa2ea015dd7f99ffd44e83e58a2afc71f31b96354f00a32f57877d1ef524473c730112f4c51a64a52d7145e30d8aa813081ce75bad8ddfda61e2bb1eb443da8fb623550395997e573a128bb685ddce415202395af11a0eacaea9c0f33cbe026b111b62511cfccca413e7136154135da75bf73b369c43616d1cc9bd63f152c168e56ca580aa4219f40275b46700781c7afe90cb2cf0a7320c014c7a979c5cc7ae270d70d1947a396a0564c485b3d6c90ce9a8678975412da6a55743a3e97a20abe31c97a6b3da3a8550a114c0bb29e1d2228381fa74c7bd3cc5f5118ee7ca38c1b5f8dcdde5ef2382c85197320bdbfe627f44d76a7f237bab12afaf7a8caf411f4e97fd0d8bd91f038894236fb994f8fe2cb95775e7f578a2b0f5e3852f2a3753f537785d0a9624946015ffe67ea10f2b296b48fe442ab6d1b75ff4830cc3071d0361702e4a5f669c516f17a439dddee7ca08a859f29b1927b6b10107c401a169662e404d3a172a03125f158a6c35e634351b07ac8ecaaefc2bb90bffda75e2581ff095a84ac4c84e8ec5b372bdb9d59be70c51e07c9e14590cf7a5d3374fb9aec41837dbef1df64c647a04bc773cfaa630803fa2643d50f0411aa70ea686e615fe7bc2f822299c6366ee8c4a07836d4fb2f5714ab1ee7567274a5d8e599631290cdd0b20e1e4dd811a9e64947f06eca1e6c2638e1110da790e4111bd62c2094e3fcdea4ead0613493c54bf05164472139658ba13f819bc02bc36e27a3bf1d7097cda96d40bc7ce6d3a3c8df2a59d034164d9a5bb1cb49d9ae99a443e3f1483a1bd0deb8803be4381b7c41a542bca3c2042004e98fad9b76bc19fad6e2e20e98090b92aa0a4cf964b0852dac44bd693f8f8568503500f401d65943524ad954e1e9698218c7e28f39fbac0c187c9b467d7a2bc3c3ba1a46f396a0f3b46c39906cc053cb9dc264a711b0ab8e5eb115f41932f3c713db40b7f3e58e9507a5e9ed53027ca5d7bb52723906bcc3c08b085e8dce3328e5a153c079f2c070174cc9ad0edd90ccced4a52d7f50472b49ed8d02d4fd5c67d1a93277b52d6f42dfd42d4ba4e0dd022868335659a2fbf01f1e1b08ce872ade19dc03eab3abc4f1d7e593624c048905187086494f3fcfed774c2be06dcf8412e9a7505858f350175e38b3bca2c24793e4e01f4f0e4ab136fa09cacda30fceba16c4bb780b60f49b57fba65fd51cfb33d819aeb1e8436a9837b30c6f83ae5d5528522fc6e670a98f9ecaa460d918b05b42086bd7e66c5373b3c630157906ef3cc989eac98c45b3a0a038218fdc12cbefe1479d5344b37d695fac19e86c12858fa9ba5a662182ad208ad50e602129df6fa7ead34e684a0dc5770f8592dc6f5dd4f8be2b1e73e14a241c9824493065b1fc6a15e1ebcdec55695ce582a44c08e1b786345743a5ea9a7eb446d99fb53f8de91b54ed480d8a24649ed5a933d73ffaaf67e81764174ef85e154c9f5cc549a40a5544263e7fde4b6a27c1685758e26c07dc18d385f6ddd3f9d03327d99957932e57c827f50cd709df16acbcc8cb4370ff096245658ebe1c2004ca95ec61664547e515d719e1ada8d5d655b1592fb3a0349d145bb29a05b41b59f125d749c3d168ae1a311ea1aef3bd034cc771a7c8c44e5ddb3e8c024205d2b07b4e7c0a27826c93929d62a4e2bcebdbbc89bab675a8fe59f7548c87ff7218600bcc2e152a030cdf049ee234c4300b5841d68190929daa57a5792f9241fd0fae1ba3fdd23d3eb2b2e5f6f28129d15e1243f43b90351cc82bc6840a811c7766fcb2106e1a7417995e64d9188cfd39be730c1e38c207d8467a77b1376cf955e6222cb6b7965b012e8a7f7fab95634fdcb25e0b0c6fa2cafddc9a6a763922044642a745d2b82fb089bd9c81e8d4943e3c272f8b249e733ed9938c518af5b7662af8b3ad732728e121bc72ca701cf36691fc40c140785398abe7df8b63207974da58024ed67d7ece9f12214f38b21781ec4ca42305b7e3a834ec020cb356df79c3df297638c372a3cd3f275a2dd8c27d9c1fe6536cc2505dd8abb666be14e0066af02e2d7833871e7e8fdc932838297580e476258ccc2be4a349bb55fcb978e86df64b478389f7f89f8e78cabe844cdb77c03cb8b61955c24ebb63b16499b71bf5d66a04e2e64265e3c1dc05a974804b061b157dad4d12cad2774eca77c58ee9efac0a01407cfcc6d09946aa1bed32cab8d466042cb174caa844bffec4d7c3f3b40208fa078b0ea0b9d3212d0599466a6866963276a323149560b6fa1c1cc0ebd57c6aedb77808ea5ab58471385dd89e42be1835269412256c7f67b9960e5feb925e3204b9a5cd8df8aa51970d3fca0702df1078334c5bac2f64d2606a1b0225fa7ff6d28f0a0800611959dd0b7a06a7001dcd88e7e6a6a7ccf20b7c983d6846bda56030ad91b4fca83f66d205399d946416e0413e8dbf492940b3adcd76ca0fab914b01b95aba14f3092257939559386984a3eb49b52f1ae5ba1febfd591e61e1a3b29e7946aea8c868be75e005c74b4afa85bef01194cd8efd51606053e3b4c6c5b87acc96d2df9d12ed80ca8b00adabc5cd679eeb4c58cd6add8e29d867892b66bc54a787e868ae9e2a1d1317618e8a3484d32e9f8702671d860d2d8bdeaa747bc43b85027a20471e8ee7bf56813e9d0ca01a174ce3392749d0e4dde5ad0c3f17a460bcce242978569f2d687bfa803365a5a0874254b5631b4048c4857e148d63f75121337bcccef1de23644ce344d174261051317c7e86530a95d69bcc33f0cd75e7def117ac834717515cb584a6c8e5b45c0d0f40c5695ad280ac66e95a1abd9ef9489c578d520a96bbe07d5310bf0b5d7ac90ae4f371c47f2477be2667207b0fd83f49cca44a504030c8f03641a7d5a0ddbd2b41ef97db838407b47bbab2046c02fcb1d149c232c8233692910e309bb82d7753ed871a43671a3d7e80df79b1255a05fb210148095b3a198e799e984e6f41ba4a330c80b30dacd89ee4938c40f3bf93ea60c6795af62e7ef2415a08751c50fcf51aea91427f1fb6a6d4ee863edd6010c1569efe3c1e0b508bfcfe85adc7b98d9b62ed1f646fa8e4eb5723f7f11f03df2a91d16966e82eb6dbfc66819c3413ad4635edd0d297a617019fe2f39f5339633d4321134ae22b04aa22baad94f64c8ec9144777a7dbe2ba903ad306d0ab090926345f2a0ed9ca130d4e70e0a7ad6a57326b7c851ef55f81aff31d7c79d5b199b5507053bb05210c7ec12936819ad95184de142d5a992a8478bae4268188cda0bfbc07d39b9a94b75547d5f40f6a51bc1c1c3b46c590b89c3f43d56549b7f25e282c777a1488afe59f3292cd7cb9a6c9aedb1b15c601df6f5246bc3492ed56aca660b446c69e29b2140ce72344510ef480dd247733c65109a56b7e4b5a21143f72a8d07b9a722db8d855571ac17ab4b57b0a10625c84881f1e01768deda1c07a161e3a923c7bf44c07d5efcd8a1b70d47046f55d4166c4fdbd773c9845cc2f8afe8b7139b3ab3ce9972bb21eae0a1d3e487de193d293dc34013299d8ef533fb52e646bd5030fa88c1eaf39a78217b0fc2f567ae3e9c695b8a4c88aa7cc083db841fe28c9bfd165a248bc00f448c7c57f66ed5287ec164d10e6555d6ba052929c2e17105e8978ccbff3c912887927e468a31c8f09a46e52dae9449dd124e849e71dfebc40f9165e6c9d80971cb487fec2d7034a6efac67ed0a3490decb795119c10cdf52b2beae1f888e7e0a67f220cf1c33df571959a93413124bb640d73623f9c0ef3e694df85467047b2e0e5b297a5184e609bfee2e15ccc80f28f7023b0a891e4f8ff181d8d8a6ac3e81221f03a06a8b388c5302bee1905164d981d24c894d0a4a7fa4d3688f28243b34aaae3ccae3a719a1cbe7e392382d481cb7aab800d4c8bd8dd95cc51a388397f818aa079a830aa173828a6d3bd3d0a9890669b53e9cae9adb0bd78f175b6aadc15433b99821c93b5ec6c7ef8cf1abee6bf776d9d79a2e67dadc796c693c3d8d57a0f04d9825ea2601c8ba3f6ca8096ff919b6a20f7ef8bc4a4e1d8497046e78b955cae1a3626ff7a8e5c5fa95c241f85ef5b1f05077c6c98acdf00639b1f365509adf37802ffa15058deafd52d22b4b9abcec86368bf0cd34eaf1a2713d067ff176c935bcde3c3c2e2d2eed3c158a9a24d42a8c23aad9a00dd20e0e7ead03a5b0fd066551f80ffbfcf25fb1125c2e116d7258106c13d12a43ec8982504ff1e982675876d4d6ab36b04990f29c68ef4a23e503800dc510e9fa2dc53b3dc26412b153e2b9358a39a4e359f0a2a27321d651456e31f7f91770300215fbb697c01a1a932da41122a852d6009d72edcc28bb48a4e3dce2f8bee2e3de9b871b9f98b045297b5391c1751e01fa0d5a5ec7e9f157fb621bbdb5077b98e17828902ec2b6466d6f02db1ee63dfd347f1512634de459689df19d07dd07230dc52beefa0cc46d74ca941250f2b5ba91afa29567cef50d81fb3f5175a869c802f461bf50e1a3cb30bf0fea0718e3067dbdc42ae006f942c7a6506fdae416ac502ea04ac008d483ed7d1ec2a310f76227bf831c2c82b8d1878c4e05679a978eaf243fb08eb607ef12b28e5aad62742a50f1a92315ac6f67aeeecacdbbfe0bdcc9ac9e167e7da48d5c06d112b2b2b109dffc46db9d914f20585e38f9244aa20a66319ce6be4045caea3d7eba91b25ac4c5e02d457a4cfcf12eeb7086353123490ea11f181c563a8cda13cef1a690ef4be482755e645e0ee6d7e92f2b4558677d8f0f908eb4ff039a4cde211a6bd24326e9c7f8c3bef59324fef294cc9284db92e9af5c85d31bdacb06e577d67798fe236857d76637118bcec4a3a3870d4502198b25740cba69270e1977f81b08641c67a1def4505cbc6ba8a937c549064bf131f26cce946b0a0934300e6dd25a986cb9b2b97679542b9b94224b46f94bb1d2d00cc5e18ccff4d4998039c404991c12332d6849a92e50f8dd7ff5d62d74fe6148f2132d0dbaec8d97729d8fa121b5063149179b6f78a05252ddef097952c57229d03ab194ad2c70c37a1085cb5ce5939b32d960260f26ef2c2caed73ee064697124ae73d5675a6b04c8c000ba786dd87c27d6cf065da206d19f261c1e178fc0089f70fc908b8ea074b1597e29b2c14ae762e1e44d747f4554078319e97fec85914440d984f92fe7130e53215c0a2b302c0e61dc70ba864cd9dd1ef12d7868d985ac5e1b67aa23494ae0ef2faa8c9b2662b265bb6115d930ba1b042d4f707072a674ded8f21b5a863afff492a285a29b3be422c9e3cc70f9821290392ca4b619b943c9a804a31390e4a7cb58bb4d57532d24b810f0918924bcdd08e45910d72d97f5c228c7344d0e18209734928983e5e42c5ee0295ea7218532b3e4eaa5931f8cca077aef78a7da36d5bffbbc01d03d0f2a9a4c631d99d6fe976750c8fe3af403b4c4c30937c283c7a099292a74391c6f910dab3153c01a8652bd249a1433c68918d2acd57076ccd71c165a11019d934398d617922e1b3bbe8ba0c03fbc8f4316a9cae2b2bb912b2f32e7d17315be8cfe7e3af19dbd0a796b819069d8e7122cae2151971dabb54b514a11f42cf5c1414b2d805b4f3393881dc5d1c75bf1f2d8500f19fe3a5ec68a50cfafcd9246bfc364d876bc5571e012aad69766c26f49ae36f5efd27582e37c70e3998ba641aa74bcad2140fa472d3377a38835be581bae5f6b95d02a5d3f66987aa8ffd464988df0bb6656141ec8fb95b40309037181e97110aa3865ae47c4953f9a2047d1109912946c300ef3d3f0ac15461b1f4d9604e8685e50ab7e7cc32eeff487c2b0e0f83d5d8746f9ec9089b23edb86e36475ba8f05d4e1da2901c70413cff31947b55d7e5433d3b2e46bb4778acaca5cfbc457588b54b815396ce7464620c72d918f5106f39f5718a2d0500204984c5bddfa3d71769b26bedd9a6c346e11877c93ffadb534bc134cbabeb4b7947ed38b38ca63b8b27081831f55566f90c95f43baf724f0b8899009426d2757dd400d200defd17863bba17e0f60d71e315f9c2eedf2b7c3b7b9180ac6dd65c4438d0807fcd925797405635e9233d5e162e9309a381a3e5f053c3b793b1b20a2ff38b9b57395115ace212aa493e96c91f22632622e11e6d89d754c79da057dbc2f85787f7d9bda44484859f0b3246ad358d55c436012ae447349e2b714f993434238827ead39dbe9b083da5ec49cd27c5b9c8bcb950fe91a78fb58121a4df0d53995760cf78e00cf88bf9af3a0b75ac4886643da9f9bbfee1f3b4c4a9db1135b9921d9ca67254bee471c0a173c15ec44f61929b1eb7dab74d04f23cacaa3f3ad00ba923b0ba853a44872a022ed3d28d0ede7879437f2fed8fc768479a3cd7617c4ac6ee9783bc0eeb11454fd53b2e11072d5cbfb0ac15b66e500d9a12df1fb9808719d20cf8dd0fafaf623c863749cfdc4b10852d48f397c359ed1e22d1ed1062f1833371cc9d603e250909a66c1141b5a6b7346ce0164d5f99de1365a55bdf297c6a8657831b581f0bd1e4f0c1db88ede96e7ac0e857d1ea990be07396878660a58592f525e69a7e69ed75fd6fd2b01410762ee60f175dc38e2e4521ed92f6e47d3045bafac7e31a834c8d27263c450e3888609ce7016a3788212def8ba01739477507b64be978484858236d85f0c14602d1923f4837a9b2da0cc7be114856546fe43078598e91bf49e9bae342442ec8d1885a68f56915aa8d0d85f9e1941b89721ca028e39bd47252f2b100273daa7aa6a58f6d702a007cfbac1838c97342a539934370d4ef13bf2c2500ed170f934d8b6c5ac91d4bdd2d581571ba1614d611d85b7fbc600786e1a2eaa769dadfb635570226cf81654bb1fb92d197516f15467abea8d9cc1d545d9c4df7dbde8ee791cdc683fe27aa5a601a01ac38c967988530b49fab444a4173417181cbe811493d15fb68abeac43c661c1b9564dafb11518ffb594aae9127799cf8279bec065d52a7ace8b5244964e6dd8e9bd52fc5b87a793f100bf3060d3ab2fcf6a1c210a733c4c976a55d25a7dde084d5317c5aa83aac926cb57e263665167b2fd8391e37c525e99d94d721ef08c0eccb61fa9c746142b60904513077363ab6715b42c02854236844653f1c64a420512b21c4150eddb7f0eb7973ec7d3968228178a462e115f68a99a944c0a2e0dcf0e2db577d48ea47386b7fe4337d97738b9a626c961dd76077f8bc604f57d8cec7232ea4058285ead7ef4fe377b7893c7dd723dc64bee89bb207bdb8566f8eccf36044783d556293194237699cdc927d5de11e2d0cc731e52c9e8a6ac921b935016404f7ab7e107e4c84535aefad6f58909ee632c7e7b5f4e5d714e46805cabea0f14dd95601524b0fd2fb17ee5b90e2d2f420b1d28736fdae35faa3f8bad1ae3e68261dea3edb8177ba30b27030bb6662626c9af4c7b987e04cef71ce454893da1b838324910e5fb70f6f6f9de9fb3fa46ab2c1e9a89442e8e547e3c0e1382af0b6f84448f97f2fb6a4c36409399ae9aed082f8c7b5be78df34b0b596099df6034623e22a6acdd18de5ebc3553c36b2afbd8a83d873844d0ca9c64bb87500257efd4742632f22338a5d5aa43e5400971576482890f85b92c4d20158c016f88dd5325e3b2ccbe26b87a2fb45c238d91bb68fff0c094247cbbda9034c1a25f821c3b7158b68027aa877d3aa2cf78c87f669c7653f94dacec77730a0d3613785d51c64a9e064fda3a19b31c03da69570f9de48a7f27a66570443d1bc0944efffeccd77cd1d7aec8841a83ec3ec309d170de367e9243bb20780e05644ddc2484c9ee96df5e2706a2e40e3ad9974e833d3e020ab0963ce1d69e9cb6c89c77b78386d1ed3c16c5321ebecb88e3d6e093a4c886de49905b1e1d0a24e4306e0c00606e440b4505c10418615c0126a7cc0dec18edb2fbc255ac66767d44d850634aa6c8f7e5920c69c07787029eade1d65506bec78dc842b67a1799b5312f040cb5a5de79b0c060ad9eedb5df39e24b2ae670c2eaf6e22177ab66c2bf294be4abb4553abe688c69b74c7c0953147f8aa0cc0263dc7b99cd9a1411e9444ee743368f8c6b6e4d0cb1ba6bd33b3e531b4b7c290b613f2e536c56c2db89e4e6f4d5a8e285cd3061f3d48b0d7ae8337d42e66eb3bf0971229c4ee672e604c0dcbb88481cb90667ebe5ab553ec95c08ff1cfc0934fb4cfef241c57518ce62d43c8b74c501003da3f6dd10d978b67c5da9a8cd8b094c7de43b80ee9b599fab79baf9bf1e290d3838d39f06002c6e86892e81544ba45293cb1e3d4ccf1099395a2cb69b997e32ecd5933e253140bebea7a9385be70b700e89bf5535daccbeb1570ce8b7a0c27727198db083bc8c5050b9134018c256c4cc43c8fa73ca513b8c1ef71fd5eb07015b52de738fef5cb5e77bce5f0d41347d7482e61ca30e1393569c30d852e135c5ba8ce44284d9f13dd6021dc02dbf677448474be91c74bea619281d85ddbd87942d0cc2d8758e00a7c52ea9818c1d431e821d2b568c80b0858defc9359eb00e6fc70de0c51dc3319346d7fee5156533c88aa53fbf73327d10052761c48dc42d2bc8936854dfefa1d5c3d80b0815fa3427aebe45923a8c6b6b3b8db796cd211b6c586bca7cb3c5608ca440a6248878593620e67d0b946df3406d0fc2ee27ec64e87e6738eaeea3f40aa7800673856e456570c42e02512746d467bd1ccb19c6680008022b0f14ead594bee9478d32d0b416c42b1fc5eee5c6e377c8835708cadba45930dc492375efe7fdade968102ff26e72fa1e077587885b62fb58ed839d438d6d3fcc181b542397585051df9d746272db6e7ddb74b1d9d7d0f423a4ba1c7dbe6bf73d5f9ac3c53445b847c6921ef873947a8fc23a04b6f7db700d727cfe39619f1cb6b9d6cc1f4d8a16779835c1bfd3438c30c68518527f9d1964dc72bb79e8bfa082e25878ed30c067f0ad8de2550dc6183ba6558d944af4a91a386ef51688c87c32263161e08f51a8a80474176a1676e51115a2cb960fe4a8477aea953bfbd73817e895991be304bdf598c4a9450db3b618040d4e27f13aa7a3982ddde89ad29cc9361e3eb9a758aa154e32f53f37fd8e3a00e22a4ae166b40d7aa1a570c4c0e1a2700ac945693cf4a7667f16454f441c629ef456b5d3a4b206774b31fb8f230144f84c33409cf0e6308d1c7f5a24414a03f82f9853c0f34d366a83f105d7b96c0ff944359e481719986c707d1388f4319037e966c375759ce6504cdbdd8a6f8eab3b5d8549843faeaad849d0198da5c70535470dd63b27da857bf004275b71ed850a01c79dbd75c097863eeaaa15f9b95d22512c14461c45244ec37b5bac9eba492699f8ead5a2de7455f89f19b2fced1948766e38f6a3daf9902a7b43ded3d36dca8293f60bc4bcb726b39a4acf3ee5bfd1a097b0ee0599e050517081e2c602a7c1323d78b6450abe466d0e37354e2459aa25531ef5bdf4d54f268007237059718af6dc9ece0ae248658ce16dd53a61f2682318d9a461637b0588979cb839138c8b0526884aeb6ef91df9a98fe9f1da1d4d223d6df19939982fc0675ef16e4f7958d429ca47b32edb10f3a1d2618fbb6e4b07dc1679da9c97f2b0133b27a64e0206dc52ee05edb4d88a1ffd80a3fed0fe29ac7749a7c0f4048a55bc76e61e9aaf8e473cf0b0ffed41be94d475978438ebacae6c2ca7441b1489788d29644ea152473937c0fb6caa4a8be336a5080dd3d5d24817192626861aabc165bd4414e77c639af2c38a37a98bd861c794525579632144401fe63ec713347db773b251cd058aa6a6532ebc6f807b37bedc5f4ef0bc015ad38120a50c1be1bec9dec3dc6a8879a5593aed87fc0ab1ef08abf84f8f0f2d931935b8c7bcf668c21367320a9de4bc844f3bdff4c9ed2591c14261f7620b2978b2653ceee5888cab06c86047b3bc6f437a8ad797a4508f7e307748cb5867d4244ff2bac6fb5db7073c91b17ea8f81262cd4edfc89040d3a1133406ffa85b0391c2ec62eb482230b3a9a72d40db4271c8aa2680d0592cc1a3f3f629ef44252ca0521bf7898d29d9032ec07ae89a8a93d33ba1de836c6a5a32e64e59318a8623ca557910977fea805b81e82140ad83c57d6dc4a4594eb1aa973a637e51db42e96e11b63037447cc2835cfe254d2523aad27289bc41599d3023346f469608a484277db3a447852076756d37ea5081276021255adac9632fd627243ef066a4f7f0a50707373179b7b16d869b682c0b8cb69e559ad758a44a7990ebb26a2c780e1af6b97db26e0e4759724d83b8a4e3177169281cdd8a6d37044d2a41c3c74fbde8311e9434716f7a3fa89422e541f6cf9c22ddaa5df85822161a2975e4f73a5d5ffa1efe4fcc3e1ed61c6ef813c2507df48bfd7fe0f1149a3b65d86ba448354cc647ad21ffd33ea66ee5ff60fb5afe3355dec6cd9bfa5015b74f15552365de6be8625a99661693a70ab61704a94394c242cac639df0b346ad911c4f879e78d9e5f193cb4675b6d5cbc517f63984012427c54115a4eeb5e55ea40352eb8ff9650f17e61f40214c32397761d52192c978ea000293deb1dbcf6a0b9b966338c01ecfacdd6918a639bfe2f27017806b5aec5e2fbaee4f04146522c313f1f257d5765ee38b7f5a42ca113ae738fd0cbcdaacbce3935c27dd97cd1cbae4d70999d66afdebe133e1fcce72c6b242e2bbd8590c51db518400ed076bef76fc483ad1b00431c5586bf8f6b3c3824e8efabbc469da19a461e3cc74461ca19f942161e6ad09fe1f7207fc815f1c8b9e7f84a31b14e8c16c4a8859063c08ad55441f9255563c40f7408b819f7c99380e18c514d9024796d59c360ff56f7f4e0c37892ac6449b6fafb7259647398f2212efae1a4a009a19a4de706119d73e66c5f645cc4e51c0046d9f285fcfb1a640c51df6d14236dfddca55823b548579f1d704f637935d62dd1cded125ccfeb0c74f69a3ef7759cceeb58315928faa444937b9dc9ef267850b4f5e10ba50ca42ee38010eead2ed9163b04b7bb1e98bf5d824ab645d29e9e7d4c3ca12ef4c4dbb65a884ded746dfd1c50556352be1387555c69469f10bee24d58b6fc6f83f45ab002ed06008b653dec25991b9c69c17afd87e55235ee35595e247371739c8da2d16a5f56bca753bad5a12370085a1011092a49f57a609fa8d1c79648165bffefed5a809b0fc25c28e91781607b0aabe3917d177371bdef56cb70cf44e63fe2007e33fae5b8260fbe80dfa30dce714a6692bc4bca36ba64f6f4c07767a592b42724de35d8cade7f01b5f77ff74d0dc69d6b989cba75b981cbfb39f88fca94d0b51f4e8d842d663ecce7bbc6df39bb2ab4604286c9f169f85e0fba39b80184065ad7901d611db2980c3aa8b42f4765e2551b045dbdffb4962f67083b59a76c84d6556e9a10a987e95f142e23cb207b367b2668ea9108fd9361bc711b134fccf55bc799c5683522eb9ea098508fdf3cb7a072f256f70bacd7d9ca742c0c3f0405eb00726bd1f82948da4e01105896d55178d2686202181213add37edc9af39ba858f55107d17ffae4125154534ac9451fcc81ab2cd3d693c82b1bb88cb69953e6f44171715e28399b2e2065414ff01d36a3981d119efe289a1d6de0a35b9406f65ea2543859a8bb6147f5124a1ffa0809b8999d56b0dd2a79ef943b7087fa5deec479ce875c86be1a78517deaf8c5261cf7e70db6c0d67291b1e38daab0165365a84e8fbffa9d6b82b776481323a7361b0c4b6df919dec809c3ae28aca9e681ae444a461b529eb0f726ebf162a7e8919afa717f35f4fea1f3f2cf06aaa99d4ba1debc510ed58c651978fc34a64445f60c5f6805609fd52e04af22f986d223c9109995ff34133ec371b1387f50766f20b83b268644f813baf09108e30ee9908d5fe4eb5dfd49e029aaa7f174de918a36b22402a719ffff568844e806ad1db438d9427a9b6986723701f6bf855467af0232353814394df2dfe42da962efb393d9bbe61ef88d2b482efd1dfd904b866afdbb7769f9bb95da444de03a1c690fe1201ba25a45acc388ab94bb4b9a3d453c28f651180afe52b829a3890bfec52c8a6307bcd4f60e1cafad47680a8e04ed1ab82c142e1a494122d575ef910321d62d6da281d6c205ce0cebe2fce315bdf6ec8fd10376462b4dc26e14a8c5f5eff19b220cd5cfd2a5814478e75e417d7f1e0f8b801722ad392ad58d3953a61716245df4508fd0832f69ccbed0ebd2a5a029d497522244b641ddac172a8eb2e2ef982c21c44510b73bae72c3b2e10a0c6da3fea1895b56ec2a232e6e614071d3693a77c86fe669b212ccd5bcead99fdb8f7f484ddf06b3640bc454ee24a7eb4574bfe0cc84aad890ce1ce8f9db870e149885dd7f00811bb83090acbe98372c6266febf86f41000432b317318f37215bd4da5debcff1a338b1ffbd8ed2f08c71822ab9d469eeea81f26e5928b6950372bc9d7e04ec8fe02a7cb060ce191f3502f0b32bba7ba243804cf85347283f63b547efd6b42dccd76a18a7793124f10e15c23b189b26e394005edc69dbd41a0ad33ae3d7c30e7cadd1583174920ff699676dd282fcfb0e1f2ae58b9e4a7c25d5c3ff0c703d9ef256c6d9a26222aa22111ac79de0788e986a3d52d6d767aca1adaebc57c668d3272bc3723f2a3805f3cf6d3fc91201cfaf54ef6366d91a42e9aff406aeefd6aee634713cef564a3fb7070c8149abde192b0112734cbca211d22677e4f5f9365afb3f0259fd5948f9f35abd37b30d47803cdad97df0688307a5aefcffcdfeb21df6b7825eaf6745ecb28572cad3990cdeeeb0aa2d1b38658ce0b3c123e7239a0a6f40af0967cdb338eb12c82fc9ad0ea8c8eb16aa66455c17e0234a7d723a5b66ae9b0b430f1b07c5d5c609a62c2a59c64035011070cd7d84957825a3067cc5b6d22dbab81f7747d250b32fc905bd8e2a6323a7178b6c54942c31656a38c3ec15d64df5fbdf0b6306d8863ad1e4e613396cee471113a2b42c272a3266c23013ee1d674857ba59c75a76eb8fedf08f18ca3cf69e77a3be709110020d05e350c095fba366405a5608e0b9e7a68bbce69592baf0703dbb12de9b4db48f2ddc4cdc398d426cfb73cd1ee8eacf5768d316120fc86a0538ee5055fab6d1afdc0b0a4d4d9b228ad7b9fce5adad4fcc6ed27a20911173a56d0bfcba701a859751c266691c72f83119713cf5454ea6312e732ac2f2ab67f96b523af9387980c491e14db391ca264e458c35cdc9ac1844cf4d831c22c5d3e5f19f333ad96c4ff3370aa3fc2d6b85b1b611b937c064ebbced45398f87450e8fa6054b0af27bf4134d2c6c56da950db818777a6aa106eea9409af7bd48365148436c8d14db076a40edf5a0f39b17dbe11a33d5b74b701f6890dbd29b4b286fb459da01548832d41e32c3fb714c09bc0dbb36b8a7e386f47e49a3925b5d6e1fcac017551d3acecf1d13b9dcaefc376ff7f310da353bd2b4c928f27a5e6fd2119c726412c4f8586d4aee41548921484823680012502d336f5b642f9134cb02f795413f7a24c74ebcec6390ea547b2b4ae67cefb280bc7b837365d5a90af5e36e467606e82e49da805b40b194b59bf9fd2d4dcaad4a0431d8c5187826c44e9184a978bc5f05d74e5654284471659bea39d507385e834c51470547dd0af1968123cbc2e7ce324681a1c648947d63b5f24a20784ce3457c3e0e5505d0d945c9ffb71443fc7a81030081e36da9ad143e539db583f021fe4a62ff0eb3f20086bc9904312b7e25dfa632ca21418de3ebb6ffe233e9a032183e796193a6e2a2fb6a01e30ed486e77a3630da2bf2d0bca7eaf24bb4409104a75ea6aefabc6fce074d330598202353decc33c5f8fc6de1758d3aac61572b5bab37c4d820a239724264b3706f5fd194a5abcdcdcb8c70c3928b54bcc8e95c4275e024de783d1eabbe3f19a1fff84460fef4eca5ea2fdbb37e291c73b6a74805a79b5d7b8c772699684df65b5a147204e4e244bf2476fd59055d63ce1777019b2fd8d179133cf015e8f187677658800a0345643e7af0910b3c8ca9074652cd99f35ad84940f750cecfc482d3d2b601ff03da2844f6f9545856327570a176c42286c669de6da3152cfca24b3818c7ba8fefbbebd833e288adf69dbbea18f77ce66eb3ebc30a8b8c6c95d582be1cbf378de5ccded9c9d84b30e4691c99869c2df064b7ff51f8a07ca52b432b39f55259876612005fb88197a5263b97a34dfd9f7cb0e30bfe40f5ec31469739621d0a5170324d589c13d94215fd825ba1c63db3c0a959be7b4d1d6b06d85e6ed71bcbba8942ef5ab570e36a3dee1805ddec8f5e02d55af07490df6d6f023b8c5bda6f9df8e211d32e84660a8ed2c282b68fdb60c316ed62f5f52bf13e4e2a9fcd8e6ded126aae10ce22108409bf136b08f4f288327852707383f2479c3269448b8f09f6deac86c2c79cc041e6dddc8728b48fb54b6f3fff5194ddebabd2cdd2ff63478bd39680d69247b695fdccdbf607914499e9746663ecaac05ac33edcf52519127fec642b3ec1e8e5d43d55a965ad87aa678180cce151a33f7803ccefc122b517d51191a9190e6c52404373109610d678e019af216ed59555bca23260e820abe12aa0d3d5f0fbf874900583da13bdf0065931337e114dd356026e68dba8418409770535ef8c131321bb081a56865fb5495158d6391d57dc07875b903bf41a40e504deeba4ad98681f2776d9454ac718d8b96a55d9de319d732f881dd0a489f70ad72b690d7ad4e04ee43ced32d3735ba8d380dc5fcd1108ef61b5a8b8752208d17c0d5e43acadc9f18fec83602959f29b5d80aa2d6c5c878c0e4122a2633e1cb54164c9a75cbc6242c5c74d46810eb508abdf663c637290629d2abe51c3abfc52b416fd8f30e68f361365f1223c0ba440509bf2f520022ed4ad6dc2b7e613dc522ec65c1896b62b00395087fe4b58fc1f49f677e6c4623a95a7591ae93a002d77e32a978e0df1609aee6657c4b3b53c40db7820b1b28a206016d6736a70d566ae47c8c790d362b88775d5fba5444d2b2253cbb139d1e96bfca52314523e0a9813b89b03d4e190d7a6d455181d31d3c1459e04fe3aa30ff273f71768835f80d73b9ab8e3322006ae118438dccb8e5a5d9209e90b4a8fe5cea6fcbf01b5d4cb7383292f1043d9ab67bfdccd734338a8436983463dee69533d413970e9c8e8081511315792d0b27a8d544dfe8aaf1e338097537c25249c18cb27ead7308d8f56b31aaeb1ae1c236bb6f07ddec0113ff7ed374013b6df03e763e086c7576aed41642986b9a423bddaef2e5ce044a8ccdfc42400d7011bddb8119b43c9e934fef477396d516ea034b0474e4b2c5fa0f4dba4907f79519caf643da2c882ff8e0dc6a5bea137dbb761685cab95db8edbfa1a4c657aff5143558d4286422984937590de82e39130dbe3bbbf20482d82834c609bef0356e56d09751eb695b012d6fc8609e5280f01d090076831ace1779a0381f229489f05298895c824cbec509c2b8bc6bed087fdc687149325cb5d9dc227c7c2b1958015006479a151430f19b40601906500dfffc0e320a684c6676be845c9e4141603c629a7534f02a91ca565d5f96dceed90560e99a56e5cfa2bcfef8a165731165cdbb365c57edc43b44977084f5970a60f8c8d3060a774fac6ccfa049947fb208f74a2632b4f417ba8ba6a0e71b2bb8d794e4d944cbbaab39b95de166536d19e38ea8e8d3008777d77e8cd7799573aa87689f43c57ff33479cc4cd488b0b4faae7d561db3755aa5bf2fb2b00c0e6a5f7358cc6512d2ed187542005dde19f7c975424e28684f07e937645488ecdae292621b1b718bb2f4f8ccacb6ac5ae347c8396ddf69c551c4c01d19c616616fde186fbe5eb924d4d5999b0e743fcbc70463bb25de23ad3d333d3ffc8241cce66981081f242f262df6df8b60bc9b275f3e659da22166345f3d5a51f0110caa7e0f28277298057e79768994101e5f62aeb0bd59b4529cce0300e7408ab7d2671ad7903ac0bfbe42b767588e7e8c61aa954bdb2e3b0a9756fac8ce5a97f838e4bed6343963fb176daa0f9fdc7f8af9595f4be26bac3f2acb1a23d5d094ec756c1553201a8ce090a75a3d60acdb24abc936e13b489307bb7ebbf216f03560e836ee6f04ebbd5e864e91ad75e2cfbccbdaab6b42c10ba2564a3aa2e2f6dfc71caeba709ea74f361c615f7f6ead8ca2e455323f0ccf47d92c0e795eb9d72d02af5a108996f1eebe6e3097b817d4b67fde27a3fe969f0db0876a5d638b5f6eeab1dd2a3d38ca17fec60f4fdae045e5913f20bb83d56d36609a254f58812525bb86386552a679a10dcb2564858e2627b50612995762f830a9c123bcbce46288404e92c54f6ce131d2e4c3f32eed8a7c3eed1f41bbd8917c6e0f319564f95102db5dc66e8e8f92c4015956e1e4756059a6198c1c40164330a63b1cd004dafab251624a2cda8121297ac8145522178626038d9a76f0e67d759754cce5cfa965ea741a66eca1975c84e7151839b493f0c053d5f4ff07de6c0a69c80b5122ad01b090d34941b8e33bcdbae95fbcad29d1f799ce844b3c5d03bfffa1bc163f1bb140af114ce0a39a9b4f704e9fd26c731911c57ceb52950c8ffb2c130b391cbb5187ab0d7a24805f1429261f5db2aeb463466c4890f0d544b2372da6fc433f9dcaaa13f3b18b6d1c8fd082421257b4053b425928c466742e5d8176b06bc1a9849f7ddb07b1369248848bebeb7401770efba5e2819bd7229791fad6e017c4d5d0ca0ddf27db6daabd30f60a5d0db1ec43038616caf0cce7bf7b58e302f662c2fa2617353e0419297f6c80a7e185b05cd9c5ecb43179b1c6a5b065b551523310f7008e51a62f49e8143aedc9ffe408c4d74e54fae5f355f886307efaf3a9d42d0f8519f89e0cae695b97d4331606094a0d3c2e3ab0436eb3a62214527b596894039892fe38f21ea7eb922126e331c6c4c6c26049feb11385911d2efc805f1214895688df6b4014737c2b9577adad954d854cc1b89db140396435e6d7b97b7c3073e5be1c3a572e69df0841fb097593e521689fdfb3365553d7f7e8b11be4538d1d75aa710fc8ae6e7bb00f3777171e2a11493ab6bc20971611f4f6e2eda2c86ae65af7d5c200fac26671396a49e05919b9d246809a42ae1e806a663edf711032cceb0350e6721da082e6d0e3a004abe60a3a6d47004c26884047a2507b8fe511805361974e25436b3a9736a9649040dfd29bcb25c136eea8cd97a7ed989d04ab7ffb5987fcb04075c8f1a46c7b30875e70827060cee1db580243870f9c10adcc07366361d2e50a4b2294a5d3bcc5b2d2e739e251ee3226caa9e8e704a5182641f2c8b0dfbeb63b96ee9a990d55e139d180fd9824766feaf1227481ef063738aad0a4a1174898908d267833ba94e8573b627e805d907ba780d81ba3929fe3b06dd68c4d2ca02f6cf544a5fb1f67a38b72defe7a36da56c26a8f3daf71eabee0b163b400d1ad0b56b0245fcdb2e865199d6142dac8617c0201cec5993ee9ce1b6a435fb69bb22476dff07b59ead7da87fa33deea074fc31599dd966c983b2e3c73ee61a427790a1c93c855a168dab12048820b658bc1fc09c628b2c519006620c065f7b00735fc3a0bf8b67d70d01974355ef7fe29add2d320f8bc56b75864279675c2f4887ea0e587e9ae1aacb0fcd6e8a8b1d763bf5acca0cfd7656eaca2b7d973f83f4514b7d7a92f397743a667dd9319480a9d97672e84eea54a430098b96acba393854ce9f0624baae6426b67e317d24e2428dce19bc8b3d0f48f01051a91e6a4a87460d1b1760fe8915119e689ba3314a420f6599733e94865a29b004b794a986821fb6bbf8ac38df3b7eac431eae50181157e9209eb360631ab32edc2c0f5107151b66a66c7683e5bb6a58183124139a183a3fabe9d410b03fcdda7771254a696236f491308c2916d2bac34e9808f4d632019efe63b350319963b5468d3582d5e829c9bd99b013ba08ae9991259d61a16f44f1f953fbee3c308b72015df9214846611c2ed953e42c02219247299181c7f440ba44385b39ce89f5d4004544b4375e9d41c2aae136c6db41ecfc12f4650584f972b4db4f20480e299203e70010cd527fad78eb109359b586b83781d49b1cbd42c1f723731e21b617092d07dd5bafaf3a1a5bb82af1811b7a86157ace27cfb714bcc56c5c31f58d417384ccfb4086f58901277aa8136ea8c243be2b24a137bcb146c02799e066f8b060945cc584473eaffa52c7803c91683b6d0dfe8c2fbd487f259627a0f8fa82acf27d60d6b5278ec9ca869b2ab4dda541a2fd94b90b3041a11eac536f6b2e2b966961c8b60bea440d2415fd786ae4c46f8a4a0930c48fa5b7917612979fd0d03ae8eb7d5ddf5532bd29564edb038d8ea155cc7b6c1601bf9d2b0cd337c73b04058664d66b67093e504b274e308adbe3b6994257fc14ac0a819c285865956641c89ee08f9d8f7a6ffc660ab81bf4291fe07dd552eabcab638cfb86a199f3056fdc33013faba758493a170cce9a305b97b2d6c353211f7bc6774273fb4d212c9a60644200215bb56476696bda74f94f284d0e46be930210890521c2d877ee4922629b6e562026bfc1fd9d4095294e4cbcb836ddb772edec321e0b6405308349a13ddae9ac3d5d18823d23f5cbacc5e28889af932ab469788ed4906e72215fe601ce6827dcd34c2c1cb00040baef352c16ecb0a5fefa8a3e93eeb4278927b7b74e565e74ee84cb4a148bbd78a46a284a1f7cbfe1453ebd2eac6be23a9a80623fd375556d306334bd792835cf3c9574da7f49d31499c4a7b84561268183f8bb23480847e5583c014464e2c84861bad9e087889daba6c2893236907adc5fa1141e79bbdca210c7fd0847cc7bf23bc5500cb0afd8e64767919297faa4d93d41712f7f8e02409a075ca5cffc899d15a10804b33cec30cc015156948ab5bca312720da03181be09ae8de4ceb06603bf5e86bb94b947ab8f91cbfac9effb5988c4b1b19e6767602d25e8c08aa81ad2e886e9998a8178633e1e0002f50fbe18bac21e6d394a723c9c07d11f5ec1df71d50beee3f0f0f768db6074a23baa692186f8672392f780719c58ef4af6fbab99d9986dc5b7ca54799c0d8e72c335eb91820263d10ad66fad56bbf7a838a4b8be921637a6a3a826d6ee1e472e345049246626e8d32dd83af67cd6e85f694e61b5f07350140484d9fe73a7d9c54bb505cc2a7a40d0db447bc3cfa19043c18e726004a5871860fea2523e3a9a18175065b913a234522ea30504677b9a9c1d1976ff4dbd84c366be20605a992eddd191a411ad5fefc87ea496c78caa1dca48509280442097020febb86b4e88b01d18b136caaca969d6611ed934e1739e837a1018c1ec41c3d69d931f71c70398d3a37342af1bfd1217c3a620142cb135081ad2a0dd52da78107738cab6c7379bde92a2cd283f308539b9f2f62585a4ac4bc91f028df1e24b746ec913a9791092d220368a15916e49e28073800930b1a9fd7a5b2e395ebe78146a8c8ead3e8178e1da4412d4db4a7fe9d4200067dd52204f49435f0760d1c9c7a3206431c3b321889c49db2a12cb81508fdb53da34ad4b1eb0f7fbda423a9ac2a75843eb22245020448c0b6793a53e38ad9d1431796db55c64f8500658330e4f23ff79096569dd4a469613b5c0dc221dae16ea7ed87a4bd43685cd2a358779c411e5cbc12ff1c2b71b64d3fb7f185b3c044b1dbbeb13f8c556acb266d56e5a0db7d7e772e1a1794e8d71a645a89414d9a64d62e28933f37a356733274f7f83858256a093bf082947a2ebb58f99360e1da35c8344bd65eec08e0f1528f4ed387a2fa45cb4c98797e0a3cfa17ac47c03085ed4d344d9c01aa11fea92e37673d567b1951f7b88c2fb373de2b216f39da49b5ff332fd7d9e344824f1c0d0b36c9e6f539fc489a4fdc1d005a9890a3d533ae196e050f97c3864dd14cf9db4e19f005f76659b7511f4231f2336f648b68144c70663059bc4a2fc8aa4a57f064e95022bf045cc000bbc775fedc4a4ad0b6c3781231b08e7da98772694cb65659996fdb5b27a3500f3756c2cc2b8f08fe25d39d676f960492ff35e2a3a6bb6f5967981f2e39c850a8e16c8e79a72cf60475335a6daa0d94b9fef91f9d71cfaa399dc8a372f16b463b371d6816a292fab804196e3631aff933a72383d3cb056bede0be3ab09a7b44fae6e07c2623da3e51b0f0e66747461d4414757973ecfd851015955249a9689b5ee77b5024a27310eb35e7a6bba35ac4b658c197df05a1575fc985aaf1a14c57a09a5c31fb90e174062fc5917e3e1c63566bdac72ff8ea183e3bbf242e50339f41032cb68cb649950899215f13708ad87623a0a8add3260331e66572dd4c0576820880942c59e777b6ed2c506f5ff0e36a45423d572b49cc64a4283aaed4cc32eccae16c2239a874bfcb96cd9bc0100b0b9f07d960375234245f0844a3ee4e43ca089abc2d5b7e71312f504035e39a7937342ccdafc7e1ae644f352795e23271aa92f501fda2303a023a2c4eef10c31b4e7ba8be5e0667af39ce23f1afff31efe0cff343b63db436888ca1010f3c18d7b7a9f3b13c0a96c15eb53a3ff1b209e90353919a70dc585a012e2e4aeefdf04d591013cb4c390d63b14fbd4eaeed292e6e7e2009b9be51650c0520b179e5090b22888878447b5486b4d9d2980edc59d4c03862f8118d65792ee0c314b3152f4c84eef13f0f3ca0c20d92cdaa8debcc5c5db150e26c03cf914f0e3dba31340be4f3b16bab4b3e0277065a130d7a2162fbea34ce4db46b98a53a87870c9ca775d4686e08e7cc3df2920de6493579c1071dd411aa0c45e8fb1a20a466ed3326da53e199ef7517625849357ea8b202447d2fca8cadca6f8e92b916684293469493e9de40f506e88083aeb44e91fddf9cedf93fe5a260f8505c789258358dbc32542ee6d2bcd8ac30b5246348d495b2d11b8be969880a97baea5bf2e5ccac8e1df58600ffb84d07ab2d8641913d656de01bdf459d61947a783818f5633e434a1a47e13aa09a48507fe12ef08451aed7f5d1e3106a58cdc1b4f7503f92125691b6be1326ba00aa10154363374558290ef4b170cf67201500416122dab4892d99b6150258857bd087fec9147eda1a540049791b482fcea3c190ce13b03c3ae5abd33b12e98b344c271b22b055e4f362f014dd9007bf94400084a8b41200ac75a6ca30cef7d5cd0f178a2c74edd915b4f7a0663ddaef1a78ad0175eb3403f2037abaa1c823264a48b16c3ccc9dda28208125f89f56f95a072e620d6eaed08422aed263fb114610ae0479394b5e0ea205cce0b3944f063e1cdaa947f1fc61df14db5126e0eb625b91525c9230509676766c7d3f4463d965417f939c5dff97a0152fd4f574df79aa1c93ed28d3330d0c82cac89d287181d646dc6a94bd7b433315ebf16a379cd40048f12fa2e9ef97882fa0b918c61a1e723d28b704aa97bd3e65e52d9ee2d99509c04a25c46a0c86e45e7ec6f54b47b478a789b568af6010624b07343b65cf557094b270cbab3b825f71498cee4da2127e549ea3de8645affb83ce674d16bace00d9eec8e275cb523b4cb7c4a72c1bc687fbf6d993049cbfff53ccc29fa85b995f85f93a2607342ade02d48ca090641e458a97b6a94c1cf11ee72603cabd79f96dc7823cdc569087be377ffb53907642934c7857dd3661e6bf5d162a45435bbaaaac6d8ece7f1da7ba0ded0787b70a55bf8306257cc86c2d8d1c6a4a21f54f1b227f4eefece6bc82bd5526c0fc2a21a938c1a32c6f5320c899a503a7367b27ccbe72f19da38f7562d37e83cf0a917d06a55c224b6718c6445e815721ec96b7f90d48d5ab8f12f1fc0fb13655c83c25fe88a94d2774418a661084f0f7ecc0586ac859ab1f7bd6fe27e865c20ad156e54ef6245ffc8fa9fb5d170aebd4676768aab222dce7ca7e0f19e1c27fbad663cb59f2af8b34ea2c8f919e9c7a2cb1b6c848a6a9019dc8fdba35b7f518067b96aca6860f73d3fa2c1df688cd62eb62775c23d6696914725c38745ed30c7d2bcf9d78ad57b1b0a88a61f746007e7553168fc39f3d96c2b814e84b7e053003fa097a728c9a51820c987bf050433af4fd5bccca7b8ac0ed5acecc354b242b87ab3f624baf3155b79a6a7034485418f535b2066fdf6c50b0c0690abddf34f808776c3893343b3022be85a8a600672f584018310721eb66cb86876c1f772668f02e8424871e714c732d0d6ee3f44da78eab0ec6a7b1465449a126e17d2b139db3ce9810f639558483858d73f8e6303e2981d543cf3d5b21f03f86fa9c193b90cda65d2c354dc8aa6ef2f04cadaf14c6b6aa50a922879b0884de336d350ceb8d04a17e6b248187027ef164ef5b7e15a4f2a3c7fd3909a4f6d92a1196d410c2b20057f8044336b7c5e275cd3a590b5b5343d47ec77cbb8b0fbaaa28f14c98137332f5baf1d3b796a040fae06ced7e7cdf8829da950e821329924b5ba1b604761909246773127fb432084930aadc0e406b3bce5179cb1f954ff8454cecffc6e73e7971e18c76f87e91a1052c7c7f9460abd914038754bb1a3ffdfe73bd0d6e5752d3f4cd8309fdd9c66640b14d6b9d496aa7f210592c4958ed4ed1ed216c49c51aea26c364ca71754c6e9fc5eeaab88806bca3588be36c58fe2ae867ca8e81a72b8928287e22bffd9525e6f213870209ef6052383e55a38e4e2196978fa1c7b3733bf13fe36912e385bbe520d4de300c2cc0db4699f3c7a86aa6d1b7eae8feb3b16120d8eb7b9b60f55a20e42e10a23ad5e20be5432447ea1776c1e278b28195f8986a6fb15b38a13135a9f6807030129affea81ebac8f13c9c5828a7dd5e3743071dd6c94e8405b7a5c0bf80e55cc713a19f644c12f95d82c4793f05ec354029573732eb8a26401856e41a082ab1efe0ded5c92fab775b19ffa883e2428033d3679b24a837fccb2fb0e08496622b6a17b319f864f569460b4d101ce001b242e77514e5e20cef268f7311510abe18079832423187ecdbae1b221f540c1de7ffe8fb80924ff2be37d8b36fedb24d39414356a9f06c84e149613e6d0465f32a67b0b9e4f625389d4893bd1d63c0c7b880c383b72217146136906d30c4e74312ce449bb3e6f923d4fc380c6d2787c60dea145e33fb74438945aee371dedbec4959cfe7921a9f92b518146757414f6054536aa8f72320caccf52e1b1ef809fa2cc40b12a8c4606f8213b6e3112cddd71ad34c76d75ff1c2aed6429ae5b5a9ddf46603d8b9b4efc49c9654d6ebc4bfa467a359419c5dac84749adc7bc30d7e20e3f15539d0d5f622359db2bb9cecdf96c49f31a5c2f8eeac3c0c8ebb2cceebcf29f91f6cc2e2384437e0cc583b59fe9481af3f539dcf55eb3927a7d9d630d1ebd85aefd66d503f19b0819ccbeb28dc085d298d951fade86bdab76988363941ee07685945fe5a5fbd45d106444ab5dd56c63bf0a8b28f3c6686c6e09f99df9756eb61cbb6816423ae20707a61247fc64ce11d2e213f76c09773c6ed480214a020c523ac558f6bd09a7d1621e56ee460e7aa2d24fb019c33a527d52afbfecc8476ecd83dbe061b307ab23bb4d446d4356476dae525825d1cc88ad9a867ee57cea6c8d2a7793ed4098de92ef28c6482525ae98c28126f345335acf29f57cbdc436a26487e93af992626fd3a297f20db846efff758596024969536493d113af72989be331d67f6792d0ac811cf75826a5ebcc855d9d1375596afb8f6ca0a73b85229a4e52b3df330b92fc72b0991bfb9226d3d5751ad77c62b88f33b91ceb554d0be35a274ef360ea1bdf802e40da704a7130d69be11659e2d7d014f5b3f1a1b52ca015fb4605f9e72204008aa76c06e7271e4c93ec8339cad2de61690a12b5698550960c8ef81a0f226f55dcf96c209508d97499c918a36eb425247776987fcfb6c85e46ee7e4d1bdaab5b2257924b89b92995b719383079105a743f81494a2086c38af3829f928fcd128a9856db7faa417dc1c7121bc64d7a85819a6bb4f17160023108398df5c0c21d10667e88aee08e8d6064fe8f99be0c23bd9ea655492cd1fd97fb57cd8ccb45cc565bcce62418ee992ac9ba089d3be24bbe115989d0390b2620a5f3ad2a8e25189ae430ea8dd1962fa70238f931e39ef3adfcdf4d233e66b305077a0c3656f4798cf510989c851f826ba7fd8537fbe5344e4645d6d03fd9065c742a6c65da8a7d369fc441a93a03549bbca382d062dfadeea4cfec817e859ae409985c568082668435188fcb69256f6e5558c07a7ebbecdf72732599a12b82a3032b303baebce43366cd583bb846adbcf35eac51f929ec37f05ce0b606b07b53139e021917d9d81367175302199190d2ad893e9677de9ff944681ccbbaa08f1b7e820f5085c228c86d208848a2106c10a4c437d6ff1391f126ab199f93a9412872b95868a422a483f784a2c5c0341c165f8cb04c71078bd95eeacb00f31b510ab7fc9c5cb0e7f86903d407217b514f7d4573f755d779579588211dfaf76f09fd95569eddbdc5b78b4613c34a261f5e64769ebf10cb2e8b9a52feffbd45bd227699a7b84784b368ae8c3c3f17433ab44bfc489f865d7162d530635235134432a18d23c8442f6baf52edb9d1a73ca3c8077a3ddef5358dad9cefe78f55e9e6aaa8fdd05f54c3ee7faa38ed146a663ea6c929609416a955cd86d35654ab51a96dee430b50b40dfe627104ac12b8e7520480442518758f9ebf31fb2daec2b937ea9525047d63eda3cad80cbe3e633a0cef12ae17bd3b8abf3b50881f4157fb5fcf01dc3d053900a776fa315f41b480fcff3b1153e2053717df8dad9238764c924b27610fb849641ae98236c291a93e9526fd6b0c51968c87691c1f230afcd566ddd8cd24dc154bceea858889e07ef1b100f86b05eb8a3bf409fc8b1e0818d217b46a9bfe453991db1fafc94f52c7970cc327e01aa96777c7ba50b606c4bfdf01a052a46fbe976a1dac40801e8aa47bc4b1bff3b7e992fd6cae567913413c2b2793a5d11fb93f78b1e79156f983e477e02830dc5f0f1d89d6cbc78baff63a27afb1947d0a5b7d4a7c230093543f1080c5349422266f6d23fa3ac415f8a20cd564f24bb5ffd0d766a47d83fe9639b56ac2ba09b7388f2eeb4f01904142edfb05334fd4ae22f6f26614c659449eb873dc8631b68a50b513fc54aeb7c692d8e592ae85dbf96a4a8faafd7279f13be59bb9a4e9798341c5511b0a186e0f23067e428c67832c2439226450a5be9eb3b563b316e6933a716fe5ad76273500e5c7e8f927bb9a0f6eafc07c443d047d3da8ff5cb744b81d59af004721b5239af90295defcabe197bd0256e9d6fe9a6e874d28b4c8365b38069a39ce98755aa836e27f432fcb3b4c5727619044c6d01530a3d62f6c8932219b7c54d6ebf57969a8584c9704a0f112da36b2cc91cc79c44f3e41372bbe2f46cd4ac33e32a82bae0b74d80b67c863c2b346e2ee05fcad04ea45645a73b37417655d34a303001036547f3a5b65a9d13ba88e7fdcaa542c87803d9ec412dd0460c280ca6dfe9ea32c29f54fe1b1af15494fdf2711d06016a0809f2b29be0c35715453d8994291ed876442483c202079f094680bd389b9f51ecf478bd88dca1ba422f43856f49908b39358d5c92d78017437d091612e9b3d3b47ae15c57d3d841a4501a0bfbf8fd95e7b10eca1765ed9bb4c981b42d889ba8232f150fceda325976be67adc4fc9848b915c3e233c23b77db9d51994e705a233d3afcb81225c21bb557b3dddd59974dd7f4bd9c0e7d0620dbb36f6827f503430ddb48887c37c09f559f2336586dd0219a5da908380ccbd6461598581064022c6fa7045b75efdf1f3e01634491c9617309698239d3606ee9b0f72fdf7a82429d84545259fe16e4e7fe9dbc7c253974ea59717407edab98ebcfd41ab72d3bc9694d09d8b5b21449e2a853aab8f6d4376282330d61b62bf0895b65ddf2cbb39a7c71fdc2e4756aa297a5960b7d6af57793869135e73696b74f39ac3cd08d753ef04ab11aed19df150b41f2e95f4e2c80547cc2dffe8adffa6795cc259a2626f4457618a339c758530c92506d183d3af825262d9c0cd90ab4d0e842f0830dbd0d4e22027eea243759b70ccea290dd345272b76e02e37991c38c9eded915285e161e93f886b89ce8caedc0aed35ce37f144a007d01b55f09e341b48c4d0c8e883ceec04081d17c3fc7d25e9eab5edd96116a3461a6b9de5cd1fdc9883003b4e7873402d85919032939fe0059e324695bda5041c090d7969d409dcb47d8ef547d1eb356bfd2de10f84932d12fabca8cddc9bd4a2809698933d938ec94bf17825784b36e3f76e78b2c14dde54dbeb1ae6960a8fa6911eba1c55e369d5e4423981c1f184acbffc5457e561492605711cc91e84372ddc4b75e317da9c2d0497c5b4116a1d536e1cf79fa793c17470df71626f1138ebc1bb956bb45fd2f8df47d45f910c1a59c647db0de9cda440ea7c4b24c8d95acd682da7589bf3d1b12fb35ee3f15055b3ddf5ac8a4ac272200239e084398d7d6f8d1a9af61fddefa982210cea4105844a98de98e255b361be4823be7a41e4ada725a8d2b2a89f6982e6d1a8dcd1dada79f2420545362b7657defa220378c636f8d218879e6f94fdb5dd634b6b28fb6d921b047ec700a1383d51b1a8a14beac51f252b0ef1d2cb460da61918080797dd596093d1e08c4ec255ccfa72d9cdff398bac0da1853598a82acfac466b7ea18e87e50433ecdcb8009a9545d4b48fb8d9dcdcd21f586f64dfff20af2c0f1329a34832cfb4ab16adbd98dcb2113f8e3eac6bbf8e9a0bceb79e55d2b193b3f10022bd8a0197c20bb42ff1d8ea860b2fec6bc27588bc66a589fe460fad8fda33ac417b1afbb239523e95dc38e6ebad4c57141f8c29bad26f46dcc2cf615f4c34bd960befecc5fcec0aa3a1df06e83f53015df61b950ddd7e28be0dfeaf9d93f31afa68c2b07a5a848a5c1ef4196fdd6c3e8a6cbe1021ba3bc6393fed1a307f8cde578495beda892e4143453f1d9e29be25dedd4ea901bef7f758c31ff6eba2b8ba3bc31a4b3d1fc868a89cdae1eec8b29c9b567dbd57e44c77fad85df4e0d5641fdc7df0d8e29adc5552bb2ee6a2e359cffd1b31582e4a0edab5131c1395b1558b9981abc62ada1e6195d1410137a7d2a7be23bb8485b2c8ca5cdb311c4317dcbd638db1a3b7a27157762056b98ac5c816c797d8064702d3a0cdecdf375aa999ba3ad7e355e61a80b26a7dd85f27f2003f6c578520f8c4eeb96dd52649124e55d10d87195ab350e61bd1d19e4cbc68f5d52c749e4f6ea778374c7a6d0ee6b2df1b8f3a6aa988b2e9fc4a9a76d27664824b3ab7542de0fc2801a092774029c307242e81480d7695c11cb66a03c755a6a28a39196fd9e639642f0e29ac29be359fa350606cec04b26f8fa367edb7f9f43b658f495d9b677a1b3fe820ac6f23ff8e900ccf8dda2fa32877cfca5f27bc97fbfc3c291aa3e8fb3cb15ba83809b0dcfbe61a3cef74056b4c5a4b60d76909dc42bbc851de13879fb4f75ecb699ad8cc7ae37608b85525ebee0fc30c41ff119423aaf08ba2c29f6cfcd101e334b1c690559f21051f28956ef08482436881e9946c40eb5572523f0d3d7ba921439c5f31df40cefe6427631ea6dba88eb5811236c6f2cb628e98994ffe4bab0718d61579d831cf309f922a8c12a8430c3df047d6de1b39195f721ba467b1aaee873e8578e40d79c951dfd52cae4ae3ed1ce60d57a70d0115377725a3109c19817e9ce7010d3b5470dab4e9d6bfab97f82bed349c9f5d44a3e52f218561c83c401522e42a575ee2bcaafa3a4745d92a06f81e040e33bedb4719be6daa83821ffff9ec19d0671e71bb5283319e6b49dd8414b52f1c25f75737921d9412e2c7f46425bd0a1038e66f6d5b1ea0df97c3ddf5b8e41ab70dcf7ade24694ee539e87d6ce15bb8cfd9990247f11aca73ff31356eaf1f25d2e5f74f5b8ccd30ec3a0831e61f6d5c344c6f17b15e8565a6d0dde4189314ece8a3501dff0c142e15b82704f620a51f28605d1a8856a94828ebd783b25e087d75e80d3ad3e6eec4f2678df394699c9addacd27c9d0ea3f88d2890be0d4b63697cba9b7c0f98715e3b35ba940b0abc374494a6ac332a097ecd34ddb98efd8a9300544a57a4ef5e49471f46497a34fc42955776c18574f9bbc4f6f680af0664528bfe17ecb3ef36c997aa48ef56236f91cb3be01b3e6b1205b38825547db0143baaff295814802ee34ce12e3fe64fd22f25be4e6eff9823d1bdc026e41c1de3796e95c637d1f07aeeace32061c6f89f74a7d8452bdcbf9e456b498c443fb54824ec02e2eba74c9b70a10859a665f85a2797566421dfd313ba294a94a5b0e69457beac907a8c7b8979398e0ebd86eb0e2c00398b2184c54181c69f3eb4ce32b9488145f0fb2335fd8627dad527c3a73e47322bdde73b1c8606f8a4a0d50a8d18a3550a5a6549c32af1414a983b0502bb1b40078824ea60b5bed68ab950690974b5600ff02c8d94a706009585690de51b79806a8a6d6858a6825c4149e005db4ef54b9cd7afaf9e5e4803baa024efb7d56e0f5ae716030efaa8eaef6b148ca26352c398b27d2891bea98c82ca449214255d4bf7f96afbadea9bc5fdfb61bf0c05adf9082aaca2d78b5401926b6331ce4a6a5744db8005302bb795aafcbbf4c08383239a9b1d7c6c00336c062050dc47d2579af80bfbc8d121f1e6368f19959ff393f93e3c36477b236efca80666f81adcb04065d44c63610732a79c34599f50eac038dc41d34bd3822182ae953cbb0da7afb7690cc1e557b542add75d88242211012205e677032ab8c0f50717e9b159d10534783d61d4c32cec31be8cb4c936a482fdc7538c9c2d640eee422ec83a420ce82caa5008a70320384e69871149043975908ad23a7b67890f2cfa099109fb3b5bdbe43a604c5009c2842d606ef021661da9f6bfefb4ee701912d62246a6de3dc6c00d5946a31798af382354a9206726ef99f62ac193ea82f3241daa71edf4ce381f4f6e1600277f36323fc210cf59116db5c1210b17e5bc098ed409fe8dc94cad7e6c76a8ada5ed8c1dfbbc6507edc273d7f8045e72edafd79d7018e58b924ac82827be6166df3cc10a8ef882668f0c6adcd271748a8a30074315e2e2bca6343eadb2f395dbde9c3cedb417819c89c987245995467b7d2239976629534e447c146039219931d8c9a31f0b998fefac700615b4fa7813540a1253e901633fa70569d770c34f81631460daf2e69fb951bd979887265555cb4eef55f325cae46fd2476f3e6ebe5887465ac00d4c6ee9a509f09a5f9132f701549d1e2cea516459225cc66bb11636932f585545ce6a7e4b348b8d2cd3b6e37ada81569df0893b4084f73f6b2f030fcae0fc8063328210472b14e4cf119cbaef4bf14653fd2cb87891fe812c1881cddce4a20e3baacd473e76009ab804bd4cf3dfd05c8d8ee27f754dc8f8007a69cb34fc262f60efbd61065a02ac8f1ffe2164c23aab7e1a3c07be63e253901ae95b0e2841f770cc6cb0826fed9af4b54bf3aea594689e14071c35bef904ddc98942630e39deed565e1ad3c78aea492a4d32e16a6c6e881c4f5eaf2ddcc358611c37a5009a41a25b2198d2f7a2a591799d7f8bc979bb6df8b5c1d91ea50c09e1c667482f0adf9cbfecb7e5a435d959b65131742157f1143d190c7095ac9cbb5cb6f41dd48f5cb8d78d1a196d6f15b94456d319e0ded66ac5d75ac3e7bcf74aab78717e5d5ec1b3f8b9f58f4470f05ae9b3a405249ed4a25b6b9b90f468e5f209ce6844e4bcfadac11b9442a25d829cfd1d15ee877879e735751427cd19f1b425d7d49676b6573fe442d20c168de8b85a434fa93f6cf89a28cedbde0d90e9cc3ce0a783010c0b8068f3a20c22cdc505ce3baaeff060a727b0a55cdf5e2261354aae456ae34eb022b52f8a5071f3bc3f281437eef10e7f60343dd735d7f7303c6d1f07367122c17bd7be23d6c5e0f7e639eb38a9d7579f712757df3b3cdaf026ff23ba68f8611f27d1de9bd8371ca3ab4e4aa22e7edcc960e203dc4d570182e708921df507508d10ec48326fa00071eaf963a298f437e41d61108ad1db6588e00a1966e90903340c57acc07b4938173946ac15e0f609782340fd788c97bfeab948a8bee977fa20ff8c492ee93ceccd029acd0e7fdfe635a79d0e8a4ae74f52450beec07a3427c0974867f839cd9dd134e35554e33a566c5ac0b778d4a9feaf728a32fe1bd3b86a9606f0b266311ae3fadb97e1b0664494baa55f4c362b1db65471b57c32d9b0d4a558a5800c4e59c98b7a2464d4e6aec7f1d93de855c2575c352ee133c341949cc38afc9ceb0562cc05def0c0655ade42473bd97ed91afc5dba801b8ffdcd92c2385de6d3b5ab7f3a5b4ab58b5a3a34e81f8b84165e65bfb919f8b6f295ec222922d579082d6f2de24e05529008cc6dc08eee0e0bfee79c315e538d2ff04160198965b8b091df1d9b80260f4d78f1407375c0c08e27a93acebbf5160f1a1b72c00bf3675561ddadbd89ac5c7687c162cf3457a722c32e7f5bf4e067d09555deac15744d146595e3a629695070db115b46ed9f241eaa8ba8e6cbe756a0f485f452a82fe91e105fd33682967fd6a35c036f4fb1b12e6d3542438d0a382641676c8bb3dc333a2e98e5536427faf82cac3284fcb7c5d36a5ccc899e2ffffa39dde912fe23c241e2d70166ac241e574276e3e376dedcde35c0c49325aa54285c1358079e4622a1f41215ddaea9b12b6191138ea212adf94b3a067fbc4021b2bd82f46f01eb3ddb718bc1a7b45132ddbaadb9abd5cab01e1c79213336a65b0bb8e871b18652080699a548bb8728918d07fc6e04792c521d5da566d372966d9c6278d21aa579c7491afce7910f70a28d28ecd68738362b1bb4ebd44c44095b42ddd0775aa5e4d464a54df4a7fdcc60e39a2d62c7c3cf010eab240acd622df2ce6a826e05ea1ac928c81df6fd89acc3cbb95bc5791ee16042f7149a48711daf845b2c2a14c812a3fa1c23ed993ff55033d1ff5ef880d3f1d60f00eaf61181aa9dc77dbe61ef0fa355c9dca804d954c23e00d3d3c2c81d04401487cad00a8cdec519a3202e63b63e454ce9d5cc2cbd0ec2eb695bf978be02c5020e8f177a0d4a9d69ea239f0254caec9cf8f8002ae2e8c940b492e34ac5f1023f214fcc1a81fd3aa6a8b33ba1a23100997311b7e4ca4b1407fa2c6b4e4e7066689553389954eaa490a9436faf84604bc3320789b2c7fe93c340879d9a9025b5805b6e66f7d2605886b48f0b737eca2a52de5714575f12ee6a42f52d8ee2f186624321a4016885c71bf089c3cfedd50f8ed1b178400538ff23609af19fd5b6c687260506d32daad5862ec7af9f42ceff7f9b4bdcd3aa7e56da3ac463bfcb0b342035d8e369f6655ad96ccfcb9bb96615f076d0e7c97d6eb4a0db072045a8bee2775ff7564c4376a40b0f7878d45bc5fdb353ab479b65b690e395d56b737e92baad15ccbe3cddf5f3d6a2d4f9b944847a4d4b532efd119e956b0dd3aa865f48f7b9d7e43efefd35fc5f335af7b47015e0d89afdcf6dac3722300a0ee855aaa0a8c44f043e293e9467b17788fe4e967b9a4b7cc2e6d07edcc8f9030652837ead30ccf06fe80fb9fb510666cbfdeacb58a50279d32d1c21d8d0d48f9dba3c3581c99b532cacb2185ccbe4f54eca0dfce913a10fdbe8130046b3531940178c01fefc11cca2bcc47b4558081b2e9c366aa48a3ec7fe5a174f0da0a191eb03381a4e2ab7f06090c06704731c43bd8f47cad0c2e509464dfdb697f964fe583c340f5607a40e40640c390d0747e0af237eacad0b6360598f005457d671123223a22c4519b8c347b52ec342f582ca7fbefb3f59c462e9a66fbcd470804c3a1d40610d423d20390cc81213a892ca81cc25dead00e5df25fa4439cce6f77bc66cbc2fbf13232db81d235d855926129b5f07e88e9976e2747ee60889736dac1d69e55a1a92cd79935c12d0a23d6e12e22272b93db8168ed8f4337303d7c9a12081aeff2e9a14629ea923c074ba1ae3f99b5c9807ec7580de9e8cb2b4be25fa29272cdbe93d23c9ac78aa9843e0506586701bc97d68da7fc5015540699551c053c41aab52e8fa2fd53f3e70f1e6277e280ded7669a99d793a2e783160794dceecf6561e063aec1b6f9b3aad628f2d21d7c8722c242daed046aae3a2494fd2ff47446155cd7321cd07443dbaa6f6e22a5fc52cdc56570dfc49740536f668ca344f81e3f2745f1545c7a0aacad2ac3a0b145d0679610c4f7518d7559dc97ed423847826bc45c9179dffd529afc06d1f40fb24ca1eed9b20f799f0cb3842cbc1fc58bf96c9c0c6cbace0ac24ba23aeed9ffc69a9ca6a1fbb0b81dd65c227f01adb0a4047478139a9008a964bb4a54bf573e196b8a3808774ebf575a40a33ed970868b86fc565377b20f55911e1fd12fa622c206dd3a7312fab4e680cc540d8a90f2c51e7186343e32572b12c13347bb62b146a26ee7c05e5ba2e48a7646137f19ddb7caecba28cd2a2b03919d181e9562f2b9ca2eb84c726b4a7d9830858d5c7364a80661dcfbb12d88e999589830dfacb7d7d85af6885927835792f785aa9b4b53362d593ae30be3b29b725d8ab6937873143d921e9bd5fa0af02423024f3f8a09382661b71f4c54fe4238fd92ae89408efb288d70d2dd6388a02d47eaefc054ca4c5a5b7500f6ac86aa65f90bb7010e4a019e34a50f3d6d2ff4d03b01f0b01caaf11c7c36762c602daee635909d09a34515e1ea4c52450e1fe57704ac3e848b01cda1fc3dea045cb960e2f709fe5980630e8d11189abc967f4b9bf5b1d1ae8a86095aac1d385257484429a8394f961920c2678b1e8cedbf8cd701bd56a4024d5c24684449deefa3b98fb3f5a644fc346cb44f407179fb404cd3faff72064f2ff17b871ca4a132d0403d7fd86a9877da3a209090a63fb957705842ed13de27da0e29a55dc84b178576b64782da926c6e328d4deb438e754a8a1844cc87b7fa3ac808bbcad2ea06bc0f12d95d6e2a1c5787c8380366c68da9645f54239bab4773b51dc534d6beceb6ff972025516ab165411595ea69137a67a2bf14e222da0c0f7fb216d65e852ad33ef6bacb9710b4b02edface4d632149a1d32e30e02527796244b57f8c90a2bfbc88ba4658d94569955b6687807816e89c618daffa86bc4fe512c2a4250758003636dfc9db7b63675f67fb2505cf8cbdc20066120135f026b59d0619d18f8ba32ac029ee6a24c2b27c9dc8a90de90496f9e93ca87616649484db18c26c431db0bc4ba0b6dcfc77ac2ee9e5f6bf813a55d8e48640cf74036506aae3a4a4b4e5832b3fc5e3fcb1e4280690fc554e1ac76e145e39b17bd06115405210691366934baac0f97ce02b54f0dd9811f29fe1c26c406dc454067af659ac543cdff2b3c78c86c9774d4a4c2b40a527475c89b83e6cda63e7853f8282962da72e795c13f89e9e0784641f65f348fa979009955448a0aabf89257ad34e68d0cebacc19c9922b28078595eb58bdad946044d05bc387cd719a631bd885181d5e7fa313057ae8b5c65e22f77597c10880090e6d6dd06bcde7f0c9cea6c07138bfaa99acf936660ef2d76b656568d66526bf0100c90f490e0a5b64adcbba15ee2d2a689954e6bdddaccd4dfff43552c62a4c7a8ee58ec512ba0feba740ac2eac386b7700052db5208b3b45a6b8c9339e1384f97f4a6e69edab4d4db3a0c2d48f94ca17ab2c3975a508375b8371adf657c5687a1eb8e532caa483c94ac46a1deabf866c895010608f2fcdec80f2214ecccc94831de0749a6609d291e86d81eac47474642b1943a2d78e7ea9cd145e1dcf79b4cf0eae428a93bcbf908e063d4957ebdee848a328f2c980d37f5dbc0768a4c91791ea1fed69b74d3cc3436ae29892ec3d4e3960033083c1c2e466ec18a28421a72c8eae4b864a7749668ec496e198b4ab1d7d86b1e47955e4ffe5eba2ba1cd9c4c73946e6ca5cede5e7fe7ce0bb3fa544813712cbeef4bfaacb187a21790b95e52b10cf22f90c7c1324a233a9e992c8daf8ab554f088e891c26021350496771e9519b456b47127612f891cdd2495023a77fc5194431b716c823ea43b35d39fc7f5e4563ce9836732c9f6491b11f6ad7e2f6914ee87533ceebb3dc0f4825fcff20f8dfd6dc4bd65ea89db753fdbf8916727cc44b5cf99a8f0cca26640b6d221e64a61d0dc5f564d6c137acb30b9585e40a5032a1e1a7d77974cedd9c4b2a8f39c1591789ef3ce6d7bd9367676514efa9810c55771476aa01540c5619f6d61cb10352cacc9d6c75c076af939808b088962546cd7fc09c26587f31ade0527d156afa5895d14d49be9af942db50ea05c8d35612db7533d3332102b94156e00cbcaa2eaebc10e42384bd0e8372f688905887c097e42e2f240d7a034735fe4056c4c4ab0fe91bde271cbac7778cd8a1e398a5e089f43add9bc34fb491f1516d18d68f2103a6c50f67ef9a6c44e2cb5b101a94c75d381566b7b9054270a0a49bdd0fb4ebe1e4d9ac33fb71624f32d77824259c391983e40d31266c070eb017900280c4c7317766a1ef5337e5b1bdef60d8332d9cd8cacbf87d9706760d549f4627ad29448397937a969af7aeb8c8c5176873ef588ba8caf8146aa2719b051729740fdc3166600c62ed8c52e6871ba16f4347a6a0f1db2d0760543d1811fd65439392eea20353f7ed727649ee25854d0bbac7e2b799c58f4b0cdc3b30c7bab327f917e93f94d37ec7deb95df149551701083d863776eb68d246ddefb62b82ac741df3f2fd38a9e9693f4bff414ce3d73030a714eba97a305556086f49ffd9d52f8f6ecd7fb381437c8a354bea7f05129fe139d73651bd0cb6ec60b961dd0cf36565469eab1a6a9587c2161a050e9a1e673dd8ce2f64a813117dbc2fa2d7a979c368298a3fef5aae0bab9e5eba24036916b39f76cf47501b85dd485aa9f9051617773e1f6fe3a87b346214d4f8eca5bb82515e56ed47711a167e04ff2700b53ff00d9d8fd33f90f1b11dd1fc4643689c6dda1665e8fee7184b884388336b15decb9dd2bb380fb38374b6c37045a13bb9869f7e3b2aa335b0694d2ebb0e59c4fc80435e0d1122942d50a5eb7bbcfe8d649faf8116ee4d011c71833fbee2432690dfc936219a891c0bc890df0c4fb2d6212123bea9f59195da36f3c66f22d2e149b3614242fc611681849249f32c830c42196707c2152460dd4664670c9266607d9c52dfb3eea1b4f535e9656e5e2e2e906b3ee2b7c4ea734969c59a252d02531471035eccaa2d0819e6e1870b839bbd0dfed00bb2148505c8efca2ae864572d93171d83df379a8cbdf96193d41dde3ebfef88f0b7c33cf0662c7eb7b270a3a52d0e3706f959e59b4065a183cec8e9b9882cae34944b623109b48334fcaaff35eb0f711567ade5f582d552e5c7e9903d1af0a82c871b456b674e30698a34629edb8999d014b95d3f71cfad5a77c2fe5aec099465c9655565a0b5de72f85772625bd204ccb4016c801c088d19eaf55ea54cf44f1cde2a808859875a3e8d67aa4968540591bb6789a66277196942ddcd377a1098c4b56c81626f099f11620ffedd0521091c2a5a66ff26e7482ac645fe2ed299b384a0b3bb2536a49a02d95561edb198bd5e28a8bec01a01cd4d3d723a2b0c223cb6104f1f284a34227e63c4190ee91e3eba6ffbaa82151dee57a07987d386a81b6a2dfcce65f095c1c39872b815bb093f8b85450ebffd5133e3165dbb4ea49e54e034dc7afa060ca1669cedf89e6f3f5a9cc5a97c5a418ba71d466f47cb366b5e12afe4dda8856449cdd43586893a341fae3cae6014dea40147efe651fafc3ee128703365578efcaab6f14cd477003a4cf552bd3218facff337deb67a902e4c64016bf0cb900d066eaf420ed2512b54a39b46424e700cc26cd7270551c718b311b153a76101ebb03c9b5d4b34c28e01213c76ea4e8d9570a3a4b8db0fdbcab50bfd1143c4fdc9196a33156780b85caef7697bd5e7c3675b5c3033ecb18ed204efe1031512f959201382bfe8c9e729c0962515bed5ca7fa7f5a11e81cda40837060a1092fb1037879868ccc14b45026e306be265e43e6d8c6d2f65f6f2686dbe625d88afa7805aff1b19ac3fa38f8dd6a5a6eccdfe204bd6c4a92253792615ec876edc09112b1b017c9b05e477c343067d360206e954487ed5f1c2debdaf24d5940a1c3f5d17be94244b3d9dc8a4b1df88f2e09c9121c09bf37b70cbdcd8dd2ae2ad4927b3ee966ced594b19ec3acd1737a130fbdfb4e22f75d3d24fd2fabb57d90c7dd43f7fb8f22747e22c8f4f5ab80c804d33849ded8d8b141dcac474a073628dd5846d3b352cf26ee588a1f25edab5bfe20f944ff461af716cc6f1250fe1a6ca3cf0cab9ef93dd782f382ef8a78a3103556bb0a438983eaf760259f27aa50e12f99bc432fb4efbe7a89f92765d0a0fe6fc19055813a7d1a988c8c946a2ce4ee80f1e1d058c5c698daefa6348a7dd657331f1b4896cfd3bcbd43b688dfb761782787a043578a38e12c88d988e615a2eaa22b52a3ec4972198117019b8313b704b1e04cae647ff4d72ae09372ae1a8e40284f756ddcafd8925686686bcb0321a61b36b67e3d5ae9a7ca2d8e343c868ece206311ab2892adf9bb2498f1242bd5e1753e68e1b80c60254135021c4ea6bff26a59ff96f1b2155b80a841939b9b78a75f4957920e887f6f19400fddd42390ea0bbb3c4a6f42fcd4fa8871c30b0e9f5b3ac9d6ea643c1cda0269e3181f5495d95f4150051bc24e6c30f65b2fc53bedec2c18bde0a3d96ce7fc93a7ae76632563c0290c24bb4f210909088ba28419a92c38c03fac96354c30367cdf00a5f29784329622fd5b18d2fc313394e407060538d2cd1dd042d35ff72073fd7293e9f0f499bcfe012a6fb797d3ab2df5532f82a2b08d1c903842f0c6a5878174741d7e065a1eb648ab6de2373ccf35d7c3de6655c21555baeea3a9e5883291cacd6b4bd9e96f165abe5f9827176a0204fc94abe1237f26e162aa6d20254466162022f1370b2b136434b7245d2d885b06abbd658f3b7de20ea926334feae7040b8d21bd74da3dc4208ddce9c0ae6a7baefe38995db844d5e02ce6c783858cb0ac3e445e31af9375210c7f8201d91e99c034a4c5e58836e9dd83ca0677009ef76d8f8fdb6ae5f05a55954be9425ccac044e88b40d2d00ff9c0aeab9f5b9d8fbc614979acc56a926af42679aa3cfd603097f398d40cfe1937fda094a17fcee00d0d4c3972c54a9c89e1082c226dedc4d03c674ebe4ebaa0732ae0acb82738e34393dc448ac5bde9eea6a5fbd7da7e4582a585ae8a1de4cb6cf9035392b2e69b6deb5f24d5215edf9dade1a040d940d639defaf4f433bca70a2aedecdec9147d64068a340af9dea42605ae96f03a11e951d478dd52c49a9526fdb25c096d4fe184ec41847950577a590b361761de264d02da218a5f88336e3fc0d472d3782b775a3fd87827dd2a7f2d52155763bfbe1e9b145535a4d16972c22dd7a8a50fa8385938a2d89167bc2062cc1379746a6caac6ff9f5b8a766abb2390a67426af2469fe2a6715eebedc63bcf1219fd0d31553e058b5db24c89c17386f61e6040efe9192bd01c9bce0acab261792c537cfdd7bc014c878cd8ca175df427b469b0cde32e4a4b9cb7b925207eddbde1eec3003834ce911d3ce8282fdda0c756cc633d0f370b9f56aa1c8757f6a08b8d0de644a741fe3494432ad4ed7dc325067c2242d13b8416104c2eee02c481f3a1ee4766b300711155a9bcb691b0e132d1a8aab38f163c405f34aa0954681ae976ccde18a41b648afcd61de97235b405a7abe4bd77983f6f31008dfd854e75c5a2f5d99f29193c04a6731e3b96c9c758b78c4c5e9474c03b5f34cce317b0cfc3e28898555b414e68488b32ae0f04ae0863c574eb34e6b500512ebb47d7d56d849395262806b469a3229538fa348d8698bc1f988ba34d3c5bb3d4caaaba7f618bb9a273194b8a3626382b4d08a019c4af98d54ab92b3d1eb13bfa95028c7db2c199def2bf8d1dc366dd848a7801d353952e517dc570b006a87ca4b83563c290f2e1785bc1b2cdc05d5406a31cc318b9ba48312d54146859accaa8c4a1f07c164e61e9cd60aee0020779771e7b7ac24230057353dcaca3936b3051c29797fea7e95025b9ea6255cbe67db3a14f2b4e3a2c26e3d8290cb4645a73fb0fdb587b2e3b2c057948cfc3527fb8e310075aa4d089f2389cdbd51f632d28e41f268dec41a0195dcd718da4c1db7d978c46ee5b9744a67cdfe565546062d78f87a46fa0d5d8e289f7f4a09982070f4b4262e5a78801739bc410071de2b731841077784022887d74827395926e94952fc9e6d458fb84104bdb76795a36b05443fe32875857b8234e7722ede5d41730464c103d9c6339dd9e2407c9b4ea131fbb895edda81554fc86074cdfb9caaa0e201353ab636cae8ef05a0774412f6b959aa6f8e8ccd2ab53c182ce66567e699fd512d7ac9dc81372febe8ee157d088563f83f1de000ef363c3c59aa03a84f7ca0611f490aa16c13c612507280e01fc1f2dd8ad2510adc3ada92d367a0f35f640f68abbfbb653b06cbb81b1231825a0624108858fb6ef96e0db803bb0d13c92d411036d48e6a7ff3844b721dd02260de714474565fe264f53862dd61ccd6cf7e8798f01bc76c770129008be3f06a524823d77ae4065c5b00c9ab3495643bbd6ed5984a28749c0e9b3b81a4420e78787d96136f5b6d16be15b950e6b9dd71ce5eb23dd2f9b78cef4c246224293a3f41d38519942d3a34ef0009779241c1a8d5c210198ba47e4bd3f007f7a9c93e3cc9272916e32616aad4be57df6f373cc2c78ae098f0ab2e2711d08f59909f9671fd4db147a5607071f47641797689cb9d5fb51157b19157b6704a3851195bef1d297490a01b2314b239d239ea5a9113be5aa3537b495d4d6690da61a0521995b03d228f9283ecc57c2e77b0b70f152c547ceca36f4635fd23b7763da57dedddf2640a29b2169cd49012871fda70db11501b4b697d718e2d7ac25aba497d6b8c416e0ce28cd9190fd9a413b33ffdd6cdb852dcf021a7ec96d6a1b5bff8d63b3e88376fc009f8c00f3ba7d5ee2e6d925f63c0e272293161523e30480d43eb68ae9340702eeb422929c6f0654661e8998a367b12a42c99079c3baaf05a4075156dfa861a469c3900ea3286dc20c0c0cad368173cc49875453fda28df70a848dfee55e910a9c49062ee8dc264600b192d531e034c1db43fc68e3e63551c2d61503ef0f6a4204a62a02526309ca9367e2bcde03daccb24fd87df49ae15e77f86991959d05d5fc109430a920d36f7081d544bd82ce1e8bb168b4922eeead1fb85debee553b6b8e3650fd136ca3086849d9d463ff7dbe2a4ee6c0140f608daa2a971d91712d8242255f25f8f27d1deee26ff8aae2d8075b7bbaebda275b1e326214064a5ebd2fe88b35894df4ca8779ffac4d3edbd437e56403e4114eabf40d67a3aa407e12f77ccc3ca7ab62d6995068bcc3ec4beb08e4ba15620d123d47699768df7a8018adab3e50e69bdb51d781e95b2952e39a5ffcf8f5996403a4b03ec45b3d015dfe6c931842b0fae9cf3d0b415a0bb490e1064f36df7d3a30957fdb9cc7681b4cb69cc8d8555c7138481d725320e32bebc67c35d6c1d05b8b6b974c3ccba75ec57801c2b8c4e9523098804d0d269578e9d2ce1ba2bd081df0a4e056f6dcc888b03fe423a33a8a6500002685077a3f117a928609cdab0122ae6149ddd3415961774a469b6558fc622ea307473a3d58532417a6ab21947f79e2ea55d688962b1b959d253b5a32b639a50a74f5c8251ce65c77b4f1233881b666284133104a2ef0947dd18d90d2df58a9a1b68f37fc4cada04ada8f3f8962f1c92aad5a842092f12ef84ecc92b41d913b375057281e40e5ba2d0ef8342ecfda9aa1e3183db24046575bcded3f492b543a82bfb316ff3c42d442519cd601854a4563a627b6e9a251a1b92a81d774455d0099d99662a32b2d0aaefb8bd091e6f3e8eb8faf4386b77c4d6b88824010650c5778b2e365249377561a19bea4a15d2adad70365249d799bb58bef9ec86749fe517f159a3b30e8208133d59a3ea78ddff069af22131597289177059815bc52ab10f48dc856892b07af2af895804e564565079a23142977d1b754d0b9c6c32c17727cff860583d89ce13573ecf6f4a5bdbcbcc53edce9900c9e898b94502449db7da6ce7b828923fe640cfdd66a2d1c0235b45fc6daba11b4c4408c6cf1fb2916a56099ad459888ffba6dbec3693e7cad2ec480eca0d2d3deb9e83512395b7c0905807fa3dbc1a90f0b980e69f4a3ef9053df7dcf1bbda47116b5fe1383c60271843cfb15a8ac7d0680d33fc37189187f98a2c88fd8dbdb22191e847ceeb64fdcfbb249b29f10ce3b46e77b4fb254f476c5c95f1154df40ea1c5faf8ed2185095986163b2323c067f0da1b015481b8e58e2b7cf4a2a5142172ef5e9316ccca5dd50ae844b589251ca0b528c53b827818dc1f3c243d30d7c876e2462008426d28c8f614635e9060acb7e508ada13784b4fe5a522257ec28db7ce745f2919703059342546cb3da3769993730f735340707527" + ] + } +} \ No newline at end of file diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java index bf712c66ab9..6720edd17f2 100644 --- a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java @@ -139,6 +139,8 @@ public class SszTestExecutor implements TestExecutor { schemas -> SchemaDefinitionsAltair.required(schemas) .getSyncAggregatorSelectionDataSchema())) + // TODO-fulu remove ignore after we add DataColumnsByRootIdentifier container + .put("ssz_static/DataColumnsByRootIdentifier", IGNORE_TESTS) .put("ssz_static/LightClientBootstrap", IGNORE_TESTS) .put("ssz_static/LightClientFinalityUpdate", IGNORE_TESTS) .put("ssz_static/LightClientHeader", IGNORE_TESTS) diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/minimal/electra.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/minimal/electra.yaml index c87a328472f..e1f1f1736f7 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/minimal/electra.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/minimal/electra.yaml @@ -34,10 +34,10 @@ MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: 2 # Execution # --------------------------------------------------------------- -# [customized] -MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 4 -# [customized] 2**1 (= 2) withdrawal requests -MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 2 +# 2**13 (= 8,192) deposit requests +MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 8192 +# 2**4 (= 16) withdrawal requests +MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 16 # Withdrawals processing # --------------------------------------------------------------- diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/swift/electra.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/swift/electra.yaml index c87a328472f..e1f1f1736f7 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/swift/electra.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/swift/electra.yaml @@ -34,10 +34,10 @@ MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: 2 # Execution # --------------------------------------------------------------- -# [customized] -MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 4 -# [customized] 2**1 (= 2) withdrawal requests -MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 2 +# 2**13 (= 8,192) deposit requests +MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 8192 +# 2**4 (= 16) withdrawal requests +MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 16 # Withdrawals processing # --------------------------------------------------------------- diff --git a/fuzz/src/test/java/tech/pegasys/teku/fuzz/FuzzUtilTest.java b/fuzz/src/test/java/tech/pegasys/teku/fuzz/FuzzUtilTest.java index a30d62b77bd..4049218870c 100644 --- a/fuzz/src/test/java/tech/pegasys/teku/fuzz/FuzzUtilTest.java +++ b/fuzz/src/test/java/tech/pegasys/teku/fuzz/FuzzUtilTest.java @@ -69,6 +69,7 @@ class FuzzUtilTest { + // TODO-fulu Upgrade to use Fulu state/block etc. private final Spec spec = TestSpecFactory.createMinimalElectra(); private final SpecVersion specVersion = spec.forMilestone(SpecMilestone.ELECTRA); private final SchemaDefinitionsElectra schemaDefinitions = diff --git a/fuzz/src/test/resources/minimal/operations/block_header/pyspec_tests/basic_block_header/block.ssz_snappy b/fuzz/src/test/resources/minimal/operations/block_header/pyspec_tests/basic_block_header/block.ssz_snappy index 23ffce54797e27af100481dfd992c719a1c5df0a..ac8f65978f4e879908b7459fd6dae3f10414ffc6 100644 GIT binary patch delta 91 zcmV-h0Hpu)0`vkczy|~Y00{vA4haW<0ASjH�E$0@v7ox&N@DGeZ7QTP@-g6&7nf x+%n(1<*_Xj0U$(hy2K3BeLfSaWN4t-7lGLKmw?B;WphA$EsOLhtQwPG0TiaNCnW#? delta 91 zcmV-h0Hpu)0`vkczy|~Y00{vA4haW<0LGP%fUXNKBPMOg$jXF$Gj4d66>_F>YLfX}Fw+XC0vf4Tp#qBBDNP+KkH6crY0J=`+iyyXoiVgUer z@<-w-EnAeDT5SdrE0rD_OZjNTc_Bx>CLBBXcKq@X{$P`V0bU_|l}xqYK^vtjlG9Lj k4^~L?9hRcY0l*;&?mdtKVVZo`lOX{=lQ01uvtR-77kvjgS^xk5 delta 130 zcmV-|0Db?_GSM=SJV?fskASWVFC!*x$jHiseKT%&mKAcQa%_2$H#)K`v+)flVgUer zyFT#sg|Gdc&Zn|I>2mVYHXAeT%s^2#QN?46*dBe(*Rgni(HV}iRViTFfX}Fw+XC0vf4Tp#qBBDNP+KkH6crY0 UJ=`+iyyXA@!jqAqSh4m~7~d2&WB>pF delta 114 zcmV-&0FD32GRZQKI%M*-UZW2P-V6bROqlf&m1U$1Q(m5sp z;rmXa)M3XhwtJ$NqC^Jlwd;R&3#Or{9kRxikASWVFC!*x$jHiseKT%&mKAcQa%_2$ UH#)K`v+)1`!jqAqSh4m~7*P~9@c;k- diff --git a/fuzz/src/test/resources/minimal/sanity/blocks/pyspec_tests/attestation/blocks_0.ssz_snappy b/fuzz/src/test/resources/minimal/sanity/blocks/pyspec_tests/attestation/blocks_0.ssz_snappy index 6b81585492c94d9c0cfc9a150b401a519ed792cc..db1dff8ca55611b738252ea40073eea46a803227 100644 GIT binary patch delta 345 zcmV-f0jB=@1p5SkjtcN?WB>pFkN!piz9t<46}(uMFD98O$E1I07m3<{900000A^-^p@T6ecfX}Fw+XB}&*nheIu%a_U{!m*j;uIAY zYdzdD-@N4=^U@*w?6yh1^h1}Zc@CNtbYn3KkHa|Pw&kC*~9q)~`P+KYb!(Lk|#_OPeG4phxS zJTWrE^DIPlO@sw+#IKprsqR)JPQeF%U{wJL6Ci%qS+87^#{qyeT7>0*XdiRpFkPk7xR2XdCKa7+VM9o%7WmX@|yMpoU2rh*UE$Rhl zaX$bULc%xJ04H)M%tkOC0ft}}SSt`i03P!<{900000A^-^p@TA6-kASWVFC!*5ZOF*Vgnct^c$O7%rgCg~ zk~ccCEVJ=UV9P*)-}rqI7oSXlMdQF~R7w^BUK2|2ab#Mh%ZHSawy|KalJ_r>#n|*e zw7=$~Fgdu`cl8Lv7?EJ}Bfiphi~20xO&A*5mK~cEfgZ~m=5$sQS%k+iFR#yX{?{B) z{AH(u0+0zGF1f{}tp{d%9AUgYJ1F$Q(_}NCivxed99q_s#{qye=5HcDoYLD^eR`<* ruJP^oGp~iz1>2b1;W)Pe#$C;|0Ym`=J^=tM3;+NC3;+NC3;+NCaUqjc diff --git a/fuzz/src/test/resources/minimal/sanity/blocks/pyspec_tests/attestation/blocks_1.ssz_snappy b/fuzz/src/test/resources/minimal/sanity/blocks/pyspec_tests/attestation/blocks_1.ssz_snappy index ad2e6ecb9df7150f08888a33fcd3c11795985c80..e83dca163bab4cfd6afda3fdf39d611b1a62db25 100644 GIT binary patch delta 281 zcmV+!0p|XZ1d#-PqzLeBWB>pFr!|k*gv&Jgd0pfBbH6-GTFmWWk%dSY7g6Y^(52_U z{fEb5gE+@o+|w?;CB?ES8E#&%Gxw(ohs8RA66;D4F|NB^@eRAX6*V1duVQz7fg;OB z=oxk2M@zB$QKbR55dZ)H000009RLXk@T4IDeOcG4{$SQOqSl2n-6HMZ0*6j)%leOt z3TQ^RN0XQ*x~_Jomf!4R6|8IXJr>u+JhA2NxoTI^A%Q+wvHfLgyn!}A9MJo zmB!r%HeM2kT+4uy_hg5EYd-YY=}NMbWC3|J&|y9C{?hNm%uf5J_lmMA_7iESl}8P! fF1+cJhZ_AU0Ym`=J^=tM3;+NC3;+NC3;+NCP>F)f delta 281 zcmV+!0p|XZ1d#-PqzLeBWB>pFs;40B_b-p^Tmr?ij7uiBg|cSfJP*o8B+PdCH>n7C zWrSZ)4+JZ9R;2!mo8f=&6`BG|SFw#^Dv!f#W|0p8nJR^koej6|{Bv6Ane-YD>p}=-AInGlr955dZ)H000009RLXk@T8CXhD+4cBmXit8Taa8=GhmP28>5HT9&x) z%u%nElu(uh=|b69_*Y_TXcC_N4JvfAa9}k`+uQ6>P|=?qD-vOmwvHg?Zz4aO(%V>l zdZ_uX@$L9CuZ7eF+nC(pIJW`DUCp(VWC3|JWM3GVNaNs)Zam)T+KS`tl4ZTUfM{m= f2*4Bg;GsfG0Ym`=J^=tM3;+NC3;+NC3;+NCD4KsH diff --git a/fuzz/src/test/resources/minimal/sanity/blocks/pyspec_tests/attestation/post.ssz_snappy b/fuzz/src/test/resources/minimal/sanity/blocks/pyspec_tests/attestation/post.ssz_snappy index 4056455221d7a87f55619bb95f08c30a9d822d1a..eb42ded9270a02b57344585100add0bf45652934 100644 GIT binary patch delta 765 zcmVIi5L?KYt+seOcG4{$SRk)`c?NBJJM-hfZwE`j3kWXhye3lb8)BVgUf~ zKs*gY>kXwK2+8yJKKd7*iO+NEk)0}yW?^+~ad=qj31HfQ�E$0@v7ox&N@DGeZ7Q zTP@-g6&7nf+%n(1Q`Y=jiJf)YMllJNxW>gCVG;o~KKnS4`b`6q;pmezFyA;cFTr zSM_Yhu^?K3|5Gh_Ro|!uk8a2f9)ojjlt?rT?^U@lNOYhUC-m^9W z9Q<;fEJkXp4C+mMFuz8FP(Yn6o2g-2V~xsZgg2BKB-)yKNFNW`;Ut(+adH<*3vfLQ zqpswj;R@&C3%hU;7*;tqg0n9JffyiKgyn!}A9MJomB!r%HeM2kT+4uy_hg5EYd-YY v=}NMb&>LPL&|y9C{?hNm%uf5J_lmMA_7iESl}8P!F1+cJhZ_AUlTI8^Tk~%( delta 765 zcmVIi5L?KYx$=hD+4cBmXiP_v&Hh*%y`uj7K+GmbmZCQLmMhP?ilRVgUf~ zKnu0>Ym0iO>4C>L6Eh9l4_F>Yg`8_Hts#_kaPAq?(t0)y#~n`2{Y^3|8ICB7uqN?m z?OfS1wRo2L9%xTae|Rlg;Q`XFb5a1rt{bb5_GjXVhvg-oF-MTT3*+TpK%W=d9*fxBkHGN1w2;8T#*L8N#ul+2^9~i!CL+b= zu1Djt%q?mbC;vGiWv?AS^2@7^zTuK8Y$t)i+>;uZz4aO(%V>ldZ_uX@$L9CuZ7eF+nC(pIJW`D vUCp(V&>LPLWM3GVNaNs)Zam)T+KS`tl4ZTUfM{m=2*4Bg;GsfGlTI8^clUOz diff --git a/fuzz/src/test/resources/minimal/sanity/blocks/pyspec_tests/attestation/pre.ssz_snappy b/fuzz/src/test/resources/minimal/sanity/blocks/pyspec_tests/attestation/pre.ssz_snappy index 0ba70bd394c0d7af4c233a17f98bb956e33754f6..36cd48e5d198961959810bb5b872e1d87f3fecd4 100644 GIT binary patch delta 368 zcmV-$0gwK)G_*93JAai-wckM-r7M!tP<9ViNb?<*qRRomAqwt2kOE2#QN?46*dBe(*Rgni(HV}iRViTFfX}Fw+XC0vf4Tp#qBBDNP+KkH6crY0 zJ=`+iyyalpfX}Fw+XC0v{vZJUAOQX#09GIX!f^rq0Ra910Fk;=e_ugUw+1*;p$!7N zx9b~-L&5#|0+l8fu;l|HW}y%iJ~h3d%+oa$+n%aNmC$k!Bn^lbT53o_DjEnrZch8* zOW8TEeQzAwtMeSvR09jlSWrX@33x^rkob?Pwma$-HiMJr=<65M)K@M$`|Ny!A*iLE zr%Rt#Ox<}Dnq_f*VX_r&;cFTrSM_Yhu^?K3|5Gh_Ro|!uk z8a2f9)ojjl1Q(m5sp z;rmXa)M3XhwtJ$NqC^Jlwd;R&3#Or{9kRxikASWVFC!*x$jHiseKT%&mKAcQa%_2$ zH#)K`v+>52kASWVFC!*x{vZJUAOQX#09GIX!f^rq0Ra910Fk;=e}W??uNoE;<}X&x zKH4-Vogl6@`P0&`EQr=2Q&R=8u+-FHID~P;CTt6y!)j}!EOni>g`8_Hts#_kaPAq? z(t0)y#~n`2{Y^3|8ICB7uqN?m?OfS1wRo2L9%xTacr9At0n)B>QUJuR8>^4@XX1#5 zY-0Y?~6yRAC_ diff --git a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java index 1ecdccadc46..3047bcedd3d 100644 --- a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java +++ b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java @@ -25,7 +25,6 @@ import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; import static tech.pegasys.teku.spec.SpecMilestone.BELLATRIX; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; -import static tech.pegasys.teku.spec.SpecMilestone.FULU; import com.google.common.net.MediaType; import java.util.Optional; @@ -49,8 +48,7 @@ import tech.pegasys.teku.spec.schemas.SchemaDefinitionCache; import tech.pegasys.teku.validator.remote.typedef.AbstractTypeDefRequestTestBase; -// TODO-fulu stop ignoring FULU after Electra release -@TestSpecContext(allMilestones = true, ignoredMilestones = FULU, network = Eth2Network.MINIMAL) +@TestSpecContext(allMilestones = true, network = Eth2Network.MINIMAL) public class ProduceBlockRequestTest extends AbstractTypeDefRequestTestBase { private ProduceBlockRequest request; diff --git a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockFULU.json b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockFULU.json index 60edc542679..9031c0b735d 100644 --- a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockFULU.json +++ b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockFULU.json @@ -352,37 +352,43 @@ "blob_kzg_commitments": [ "0x36d44642cfa8a73b4c27b317e2d9bff5469b1cbe5c05d35f4b2286f9dd9a1da1edf7f9ff3b52088c513683aed613efc8", "0x49f540426ff48680416a1a43b562d4c24d9e1b5012cefb1979a3c9c1b8fbd42b8517c05e35b3e879984ec65a9ddb52af", - "0xa99a23428f6ee3d80bb91e1cd80e3bc46cad162aa2b9c7bc5e291babfcdf69e17bb59e3819984a1ffcc715b881c2452f" + "0xa99a23428f6ee3d80bb91e1cd80e3bc46cad162aa2b9c7bc5e291babfcdf69e17bb59e3819984a1ffcc715b881c2452f", + "0xbcbb1d422fbac21d01fc8547ab974f9172b015bc5882f0768caa5e73d640216c13d5649714f92a0d43e05864498aa915", + "0x83582f424fd7244f213350c530fd112a5fa71806352876480227941a471efbcb4c76127b24d689436e978f5ff3327e62", + "0x96792942ef2204941676b7f0048626f766aa1798ecf09e0230a8d7e2217fb256e395d8d91f376a31b5afd20bbafae148", + "0x594150410d114a888823a4369a4c1e9b4d1af3b146f383eace5399d4b17e3363cc267b8c513bd892003285f184da4d95", + "0x6c624a41ad5c29cd7d660b626ed53268531df243fdbbaca4fbd4dc9c8cdfeaed644641eb4c9cb880484ac89d4ba2b17b", + "0x32ff5b41cd798bfe9d9dd5dff33af5004014f58dda61327672511244fcbcc44d9de7eece5c7917b77201ff98f64a86c8" ], "execution_requests": { "deposits": [ { - "pubkey": "0x82265d267f8473b8b95581d5cff9b19c81ca410538259c96c7418ef433e3c0a89d8ce7f7b91dc0789ceddd7e5f8f1f45", - "withdrawal_credentials": "0x010000000000000000000000594150410d114a888823a4369a4c1e9b4d1af3b1", - "amount": "4704680975884967085", - "signature": "0xb710f44c80db8d91f996614df20b5e9293a578f28f55e4cd65f017063fa9e36eead8417ff871fda70f6f8238fa906376066788d928178215cf5b285a0630956453a2b53fd2ecdd614e247a7c89502de682385310134924ee896501d9a1a5265a", - "index": "4707985942318335341" - }, - { - "pubkey": "0xaacb0e7f3717c59e23c32cb07ce03be33c2bb8366da2d27a9954b77f2c9198a1b5f3aea585faffcdfa4800b592c4d5d8", - "withdrawal_credentials": "0x0100000000000000000000007f8344414da8081272a9728d415e47355920f1d5", "amount": "4701376009451598829", + "index": "4691461101561559469", + "pubkey": "0xaacb0e7f3717c59e23c32cb07ce03be33c2bb8366da2d27a9954b77f2c9198a1b5f3aea585faffcdfa4800b592c4d5d8", "signature": "0xa9bf2689fe47ca9ac1fb90da3b08259115adab480b4f387669f209ee7747f7451af8f61e4a9c057bc33ffc18f0b08c3407be0a59b8c61c741572f5d28e2a1f6af0fc17db7c3f48901c9267606c3d7831a3d3647b885946fc95fb5689d24f7b8d", - "index": "4691461101561559469" + "withdrawal_credentials": "0x0100000000000000000000007f8344414da8081272a9728d415e47355920f1d5" + }, + { + "amount": "4684851168694822957", + "index": "4688156139423158509", + "pubkey": "0xb8fa03e47468016f15b89212a91f203194684e0cbbac07b6cd428fc7e10cb7d8a363985b46972eedd7bc434fc701c4b3", + "signature": "0xa529495633ab9ab138c0756646074fc7753fafbb44389490ddd46048f29267f6b85e46abbc1fe71c42fc98513ed0f6f800ebc9eaa04b484e29af7d7bb0c38b5e088435aee8583a812545b3057c184a4634957604ec0647d1fa81da2d15a5f198", + "withdrawal_credentials": "0x0100000000000000000000003ece09418d9cc1c206477b3f86b61438983ee789" } ], "withdrawals": [ { - "source_address": "0x3ece09418d9cc1c206477b3f86b61438983ee789", - "validator_pubkey": "0xb7fbe0486f002e790bb3d674b4259c18c6bf66510576e381e128aee6c2de771d3d5c9dda65b4078b058b2667f30e1637", - "amount": "4689808622639842637" + "amount": "4726163266291795342", + "source_address": "0x01eeb941cebf96b04a6e6129b9adac2fdce3046e", + "validator_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b" } ], "consolidations": [ { - "source_address": "0x3a51a841aea2347f293797ab3448ea96efec0124", - "source_pubkey": "0x88f8fa6c349ee56559e614799a5788c17fdcde24ea5922a7c7fe6bed8df5c0140aeebbb46d0cadc7a9107e98344194f1", - "target_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b" + "source_address": "0x60939c41ee39f30814bd6502db591331fcf2ff47", + "source_pubkey": "0xa4a90125ab79fbbe706de307f1de84a6b0dc21adef413c6a5e91ab58e575164bd13c0517a318394a56adab9326607e82", + "target_pubkey": "0x83feea64397a7a9d3fbac0b9a16ccbfd63c4d4fa5d0fd8bbfa13739148e752ce1e9b1e01654b56cb56a196fd8d64db3f" } ] } diff --git a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlockContentsFULU.json b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlockContentsFULU.json index 630aec15fd5..69d48e1cde2 100644 --- a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlockContentsFULU.json +++ b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlockContentsFULU.json @@ -367,55 +367,73 @@ "0x96792942ef2204941676b7f0048626f766aa1798ecf09e0230a8d7e2217fb256e395d8d91f376a31b5afd20bbafae148", "0x594150410d114a888823a4369a4c1e9b4d1af3b146f383eace5399d4b17e3363cc267b8c513bd892003285f184da4d95", "0x6c624a41ad5c29cd7d660b626ed53268531df243fdbbaca4fbd4dc9c8cdfeaed644641eb4c9cb880484ac89d4ba2b17b", - "0x32ff5b41cd798bfe9d9dd5dff33af5004014f58dda61327672511244fcbcc44d9de7eece5c7917b77201ff98f64a86c8" + "0x32ff5b41cd798bfe9d9dd5dff33af5004014f58dda61327672511244fcbcc44d9de7eece5c7917b77201ff98f64a86c8", + "0x452056416dc56a4392e03c0bc7c309ce4717f41f902a5b30a0d2550cd71d7cd83507b52d57daf7a4b9194245bd12eaae", + "0xa5c538418d3fc79b5d2f41e4e96f70cf6626eff9201627d38558a7f51b02118e2ba593073bbf594a1d9391a2a1f9dc2e", + "0xb8e632412d8ba6e05272a80fbcf8849c6c29ee8bd6de4f8db2d9eabdf562c818c2c4596635203a3864abd44e68c14015", + "0x7f8344414da8081272a9728d415e47355920f1d5b384d55e295620656640a278fc65074a46fd986e8f620b4a126a1562", + "0x92a43e41edf3e75667ecd9b815e75b026023f067694dfe1857d7632d40a159039385cda8415e795cd67a4ef6da317948", + "0xf14921410d6e44af323bde913793c2037f32eb41f938cabb3c5db5168485eeb88923ac822543db013af49d53be186cc8" ], "execution_requests": { - "deposits": [ + "consolidations": [ { - "pubkey": "0xaacb0e7f3717c59e23c32cb07ce03be33c2bb8366da2d27a9954b77f2c9198a1b5f3aea585faffcdfa4800b592c4d5d8", - "withdrawal_credentials": "0x0100000000000000000000007f8344414da8081272a9728d415e47355920f1d5", - "amount": "4701376009451598829", - "signature": "0xa9bf2689fe47ca9ac1fb90da3b08259115adab480b4f387669f209ee7747f7451af8f61e4a9c057bc33ffc18f0b08c3407be0a59b8c61c741572f5d28e2a1f6af0fc17db7c3f48901c9267606c3d7831a3d3647b885946fc95fb5689d24f7b8d", - "index": "4691461101561559469" - }, + "source_address": "0x1fde61412d2eacb9a85a6eb41fb2e0333a11f6fb", + "source_pubkey": "0xadd399d4422421f5e4a3457fa7c9dad6af725f7cf4d3f44c2b8026ff8224308fcb7edbcd677a1835ecff50b3960727b5", + "target_pubkey": "0x85808a97e324987cd03bfc33e49aaa6cbc8a5cb66fb44111b0d8bc8c6b7c810638e6a6ac88d640b3492a684c19053f61" + } + ], + "deposits": [ { - "pubkey": "0xb8fa03e47468016f15b89212a91f203194684e0cbbac07b6cd428fc7e10cb7d8a363985b46972eedd7bc434fc701c4b3", - "withdrawal_credentials": "0x0100000000000000000000003ece09418d9cc1c206477b3f86b61438983ee789", "amount": "4684851168694822957", + "index": "4688156139423158509", + "pubkey": "0xb8fa03e47468016f15b89212a91f203194684e0cbbac07b6cd428fc7e10cb7d8a363985b46972eedd7bc434fc701c4b3", "signature": "0xa529495633ab9ab138c0756646074fc7753fafbb44389490ddd46048f29267f6b85e46abbc1fe71c42fc98513ed0f6f800ebc9eaa04b484e29af7d7bb0c38b5e088435aee8583a812545b3057c184a4634957604ec0647d1fa81da2d15a5f198", - "index": "4688156139423158509" - } - ], - "withdrawals": [ + "withdrawal_credentials": "0x0100000000000000000000003ece09418d9cc1c206477b3f86b61438983ee789" + }, { - "source_address": "0x01eeb941cebf96b04a6e6129b9adac2fdce3046e", - "validator_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b", - "amount": "4726163266291795342" + "amount": "4734425686670183278", + "index": "4724510778780143918", + "pubkey": "0xb8a7fcd7c58854073db5f088cddf200b04864b6980925343c0d0b3238d5ce3880197ba175c59b61aade73eb79a74cb28", + "signature": "0x94d7e47981799407b6455afd50007fd6c7736bc24b685c668e8af371e8e917d974e93874db6532a4ae61f4f6deea97bd12c425def40e2d7d3e03f647ad4028145163fb47650087a96647e67c495a101275b8b3fe37498b0b65772b420dd2f400", + "withdrawal_credentials": "0x01000000000000000000000001eeb941cebf96b04a6e6129b9adac2fdce3046e" } ], - "consolidations": [ + "withdrawals": [ { - "source_address": "0x60939c41ee39f30814bd6502db591331fcf2ff47", - "source_pubkey": "0xa4a90125ab79fbbe706de307f1de84a6b0dc21adef413c6a5e91ab58e575164bd13c0517a318394a56adab9326607e82", - "target_pubkey": "0x83feea64397a7a9d3fbac0b9a16ccbfd63c4d4fa5d0fd8bbfa13739148e752ce1e9b1e01654b56cb56a196fd8d64db3f" + "amount": "4722858299858427086", + "source_address": "0xc0387f410db44f61de0b6adbfd057a321b02fb21", + "validator_pubkey": "0x83feea64397a7a9d3fbac0b9a16ccbfd63c4d4fa5d0fd8bbfa13739148e752ce1e9b1e01654b56cb56a196fd8d64db3f" } ] } } }, "kzg_proofs": [ - "0xf99b6d41ed96ed2fbed49f5d78a0b7992e0bf8d7b707b847e9cd47eb6d9a9eadd6889cb26d5676ed9cb83594a0f35a15", - "0xa250734616e5e744f48c493c6d932629d574d0f2b953d406c14b88999cbfbe0227821f9f2e60836eaef3cf363a0cfffd", - "0xb5716d46b630c789e9cfb067411c3bf6db77cf84701cfdc0efcccb617720768dbea1e5fd28c1635cf50b13e301d462e4", - "0x7c0e7f46d64d29bb09077be5c681fd8ec96ed2ce4dc2829266490109e8fd4fedf74293e1399ec2921fc349deac7c3731", - "0x8f2f794676990800ff49e2109a0a125ccf71d160038bab4c93ca44d1c25e07788f62594033ffa28067db8c8a73449b17" + "0x28384a4676f60227a8611c6c3751b6c4018ac9f0b6d0f11d02d460139565c2cd4c5f8a360707a6efa09da5ecad82b94a", + "0x87dd2c4696705f7f73b0204559fd1cc62099c4ca46bcbdc0e659b2fcd949578342fd6810ebeb07950517f5499169acca", + "0x9afe264636bc3ec468f387702d863193269cc35cfc84e67a14dbf5c4b3aa0e0ed91c2f6fe64ce8824c2f38f6583110b1", + "0x619b384656d9a0f5882a52eeb2ebf32b1393c6a6d92a6c4c8b572b6c2488e86d13bedc52f62947b976e66ef102dae4fd", + "0x74bc3246f624803a7d6db919857408f91a96c5388ff39406b9d86e34ffe89ff8aadda2b1f18a27a7bdfeb19dc9a148e4", + "0x713fd146172bf3f6a05dd5853306de577144e0d254c84764e5385015f6b14857ad88bdb287507d903a6f9e72c78fc297", + "0x8460cb46b776d23b95a03cb1078ff2247747df640a91701e13ba93ddd11200e245a8831181b15d7e8287e11e8e57267e", + "0x4afddc46d793346db6d7062f8cf4b4bd653ee2aee736f6ef8936c98442f0d9417e4931f5928ebcb4ac3e181a3900fbca", + "0x5d1ed74677df13b2ab1a6e5a607dc98a6b41e1409eff1eaab7b70c4d1c5191cc1569f7538cef9ca2f3565bc600c85eb1", + "0xbdc3b9469759700a756972338229308c8a50dc1a2debea4c9c3d5e36603526820b07d62d71d4fe4757d0aa23e4ae5131", + "0xd0e4b34637a54f4f6aacd95e55b244599053dbace4b31307cabea1fe3a96dd0ca3269c8c6b35df359ee8edcfab76b517" ], "blobs": [ - "0x9af68a41ce1c91d7f3859b8456f450980efcfcfd271ceca40448f60129b609f8e0eabdd889711448383fe636bc0c68955ca3ce341bfc9bbb99e14fc047900f4627648118f3dc311db2defe3bd0272ff5a52dd67fa7a074189acbec41e4ded3509e77afae24eec4ed310b789883e2a6701f1deaa9bdce93ada976ea935bd9594f9ea2ada986e3c4e4488aa3b9390b8464613af844e31b6eb76b1a320abc0be6a11f2bbc885bc1c3f9cdd4e56f4bdc3064e77c1a4ab1ec9804091221e948b9c8974010a11535b8c9e85dbb37138506cbe4918330d357c365f4b04830b4f70e225ec38a90e17cdbc6bad51a8803a88be814249dff4314de289711b66c7cf2250a6f8e1d75d9ec2715dddaa0ef7ae9682d05c7601b37c025451ce1ead25119d6c69b2b36f90714dac45b52a0e8b37011fcfc88d61809436c57635aaddf8a7d58f9b7485df445d714adcfe9f5fcb9dbb8ca35d52fceea1bfb1a17b9a5e7ede7b9edfe38f71d4cefd77af68efc9bd7b86de73e0310a1f9db71e131be1a08e8501d768771942753654638b8f3910a780e04b5facb6425fba6f4b72c2fbec2e567cefb7d0cd2a0311a3d0693102b9f80d5cfaa7dc8ce8effb8aa9363548996910e24b06749ca46b142390203a0f8bb98792fa116fa99b65cdd8c1f6a7ca92735dd3207650815a1a7e48e9281a21b39945be6346f4546b829f8830526787cc8b99e4fe64450580e385bef9224d9e9303850474b02f39f66a17ed7cc841b9d75cdcf61303dcb68a287d83f1bbb4d4260de202f011e2e681b98f8eba78cc0ff968123069a4848fa7715ddbfda82c8f18c0f08cf8e45878da37f8551cb58c31e18510181ef7c39e057dcc37f41365a27a4093947ea0e72f4494a5522284b0637a9db0381362832ded75c3527f240d6f8824a56113387c7cf42dc2fb1a35e6e943bcc79b15526700853b1b30b365d52f79aa4fa3a30c04389f9a0ec87260e64ee0a51e41c2cac50b45dd710976dbaabd3e41630706b68053a0348f9b51cb655d4c5437b5f42b8d3f8966cf5fdb611ff12d39df9d5b23611b3b7a3d96e41af322aa7a0a9a97f7421bff9365c4645bb31d33677cab40b81d015b321a1f8cfa2f1b492338d928c1702630ff3159e21ec689f48df0bf35f8e8efcc15b7bea73c10ab7867278bacd3f66e3a50c440151c190544721995f7011fb32facd23bb9297fa9cf454733d2055dfa2eb18e13098a2d7155ff244ccd5c2abfe01d56d9fc832c4b9d297b6f5c13922b8122336f957d43151ca7152f81a3f96f7c7b5bdb8b22d6a137946328e0f768acedd1e65c83bc5d5d35ed5fa4a392598702d968d936000783f9b90086502169596b81ee094b4c1beeef8bdea5d02f1f26f65fcebf506a57a4ff1ed103e98a265c63d3def137a3c2cab766bc2574034c7370aa1f8fdcd3982cd615053c58efc3faa4c842e408cc8200f358c971697a0a05e2b1e6a90d4c9a3c8bead91e11c610f45107e0b306f36e3714130712a70cbe977d64b0a17c3d078f1677abcd6938ce3009a864c3c9b037fe0b07ccc9f7bb4714cdce8378f875d9ec663c67b3812c26ceff16687765b704492cf171b9a8fdeeea2d48462e814f235d1c18ea8acb27a809abe3ca96f941d456d1aeb40bef0397798a27e90b23f5f63f1577dd37de0a19a64e633704e2d09d99a34c4166d4d360889fb50db1c12e5d1ba2cc1bcfdbb8f5879cc21f135151d1a2c4b92e8cdf5110288b254f14331d12ce120e2dcb7b865fc4d0ba412fc1e4a69ce9879f6a81ae3a868ca9693d02daea5b4a972dd73df0cecb1cefe11302d55e88ffbbaf7111de7a256905e18e6d9d772aeae4a1e085ed8336f2f99fb706812feb3ce7992e2385b7efe4086e760fef14b0ddc8630fc4ebafd7a32a036147ac7d7977abee40414812a46fad600650950ed81fcdf5bfbe20b1fb64d0bf81b05d3e2a66cb0fd8dfc787c95fb2e743c90d59aeb2b0e1a1756258c3d94f7cd7dd784515f69e662a8df4aaaae7657e885be389724f5d39ad95a65e14aec1015b98d479c666ad88d4e43ced216731517b30cd9addeacfd4028e5d2daa4f08a83bda2d9fead7af268d5cc20730e862f4dd7d78da98f9b1920f67e37da9f5ffd9f212659f6a64284d6461e02f21961d8ecc5b4e9dd6dc8ed86c6906b68ae395245a99252c88736cd2b8c14bb171a792ceb8098709c7c77b871ff4791ac81f1d5241c7fd8fa9f98b1ae68b02d8df4473752f72f28c1a8ac18130c0526f6b94f64406c23e7d7bcc1381e44344a65ccea42bf1301bb29f54514524f7b253827ec9e712cecfbef9d61d12ac5406d93ca1e0be41a2f2034b77e114ae6ecf487995e14e25696d69579a97cf83bfa197076deca065afc5a48e3edc1c93a2c709e41894192638dce6091926d9fdc801a369e21028025636e4e6951edd2654d3d5aa19e60d6ae8504aad6b25dacc9455087cf813f3e27601233a1b8c21b62317f3f0cc50bd52f8dfd149f51d5a1ee0665e75fc52f43fdc71169c7dfd68e0e551af1b779d30b7f0ce20069aee871aa7b1c3d0593b32328c2786389ce3ecc008e02bc5c150bc62c72b016b0ab78064afc3d56fecfc1894943e51ca20b46a5279f730d661438ac678230c0d14fd9bc52aeec62cb6a6bb2b2205c9186f717a13dcf89f7b204c334f38459ad01cedce39cffcb7576946bf14297fe422220547a0beb6aafe63ac3286ecb2a524e09a6403e7a7d076caa4d29965fddb5a39feda07a5d131049b10029e949ab64b5c3518c443bdc75e352585683a9eff358d8e5b47747e61837b2912bcd3be25f48eb79f43f96d97ed78d1b04eb98e5099c1f6b0da5c152692330ccf4110f200261b7d2979daf05c68ebcb5d6d51d2789cf29a436ddb13bc926ed9ca2c40fdcd1e587a50bd2179e56b4e1a101e341d1066b49f96e85de52a220d4b822de8dc0929eb8b9d953b1731a009c27ce0645ed9b17d3fc26b0294383672587b969773cd098da4ffd656b18626f9d531b99236e65dc382c870f1e599d0959157ffba0165b9c053067b29b8c610da1b5dbb35fba045baea3e9b73754469dd8dfdf76360cc6af33707cb40013b14b21ff91e127a91f1c68865db2922e7aa1f2bc19250e79e8acd88395f3b6e9ceea5004d91b35e3ddebc74d255fe9f3556ea9c1c01bd8655ce5275a7e0dab659672188fe019fa886c46086a36a80c349ab53f8a3df3631d01d7b9ccf9905255cf3a1aeae7eefdd87dd4389fbd0340382f93a4ea4acd76977af0836439a8b59ea103ff07c3f87b52c6f79d51974623e69f2d21ad77abeb9cae655487679313c4181e8db1601ea3797f67c584d746142696e6e9afa81518864914447421f3ab59a3244c33395e0ef4e6dce1a8444e32b6691b75649410afd93a78d011f6e2767e9843b799e2ac502dbbcf3f72d85c6d8e8c75b96d48649cdf33b08f74ebe3d518ae1140a97f23ae14c442e5de423b4b5d19cbb5dca33292702c92b031f99687ef81f8a3654a7e5cce4aa0ae3e655d4c30508fe454d8dd42e8e1cfb8048c4768b6112d562a10ebe4639aa67a8ad7941a0e11d37c34ee3e81254f2b330c0546c9cd4338000cb5278198866437976393eb2364d5a2b6432cc1f03bbb3fe5391269c25e0f5b79abf08d07e245e2b9873dc12af123eae70550b2f6ab3f383af155569390bce2d77fbf6c9c0730cd41f7cc71d4884bcb2fb84eefc16a86daec68af4762679726274dd96e4452aebac618c3a1639b18ef23b33dfbc388dfaae0d04b327a590db88b46ada374a62ea3a885ab190dbf677154a269078bd8a1808ecd5129873cfaf9003183a4bee64d35478eae21642f867dc2056d3bb771bf6ef6f81bd071ce905257e879b7387c346367b4f3ccde4922e6bcb096791f2e6a7a395d43e98f2ed38112d6d5e3eed5028ff52fd45e720ecc9af049a0d9da2ec8d120fd79ccc2619b1eb2809fd1ebe34d28d368dd3363a6051d95ceb4539154b8741c4d35cdabce337c6cf9918ea99aabcca67fa3d8a6dae356bf0cc7558bc8a681cfb528dc55c27f7a6a6c5992e3734f3db6c66338a2993e750f28383d75747198141390ed92edb3022195219cd4ebb6bba943770da17371a7201aceeeb0875c0581354aeed2e39e327b487443e405669fb83295fd1e21ace65b2dfa065df616a6d162c351699d817826e96756a9c4b3362781e50bdefbd22611816f5ceef6ceba58d2af820df5772178f31d5fefb2a6442e53e34ad180ef92048909cf55835615783196c0e12d711c127291ea1e5ce1ad5c7e0ff815d230b7ef8e029d31dd57586f202a347369b8f3a288b56a01d49e26440c736b90377cbad0297ab876069a384ab47644f5300d3fdbebe3cd5a2ebff3c9bef18445998d0944cd4bd7534555f286f5d87671ef4b10f9659b253c03e410c5846c813407a8158f3b3537cda597642161ca63c476a61c18538ef643f19c4dab06b4614832d608750b4d50b576b9840b667b8a07796ca4cb27010c3a18a433ef1e4b4df3f1ba91682ac9ef33cbe11bc0eb3d0d7710645b65e778e8959e2ac8585cf99a29bdf1283056157502fb9a0089c8bfa0f937b2d3b2abb92d882d357a13812d69bd35ff719ca4392be121773e46491538304f532de9221596107008d0630430f08e9cd19982fb90f88e9cc4ddffaf93375a9b230ced0e09598399a5a5f79025f8a056d1d4c697cfdeb98f523d50af7b386ac4771623c32d15a2de560e8c84e11ce46f815ee5865905f4624530c1f173a75e56457e7bac749915f74b2b347188c97614b09c122ee947b63ffb518a92d3c75040db5679c6b627a7a24689e4a002162b173748bdc58583de960042bba2bce5b3582ab98c24930a112057d7068a3ef05e6f4cbdf7d8c91be59914bac0a706c1edd59df834699d989fb5a808c25e433b96b662d50fc579723ac13db05f18f97ac8d3836a0651dcfe242b5e33537e13ced1a999ec66406a4bda47eef6b5e3d5903dd30582dd28986cf3507ebe4b025f7c51acbef46dd2b65628ac380d8ce833adc038b1423f51797aaa73f0b0c93306934a43ddb78355485b96311411487c295a80ca8f4b25c0f6e6a5eb8833c7116c721f9a5fac5579abbb6960b1051ee746de0937d0fc39801402c59025986ece9830d0febefc4d43374f3381dedfade660ce5c8dfe79d72f72621340da77f8512c6daf62c4a48b8983c931257c0a1c292b1ec2c2cc8af27da9bd945b2dbaf9b420c1e1db58c6db772f2ae4a00155d5d6a2b9a92c6b9c78b1fcfd164864972fc75c74d124e6972d0cf8ee8686117e9b0549f1680971658e2455ef76eedfe7c78a16638b1b478e049e1e0214351ecc2b412d43f3f954ee8ac3911d353b8952dcb6053ded4248a47e521f9fa24b1e66cd0dc84a8e7e7500819125be91a14d2c57356688a83fb8e19ea5b7a7b12c515e595da5e11083b13da72306bfa794ab1ac1a6ca12615c0884aee63c23fc7d13a1da19dfba74d29062f522ea54280d4fcb86dabeb998087d6ab1b942e2f4acc339b89e6703619cfc74dbcdd7a2690abe521e5a3ab5ad54eea71c959180eb65b69f783c24d1dbf687e10d740355740b150414dee2cdeb76185c38476d3f2a1e3bfd90b9d76a7f5648c9fffefd489d97d3d36ed71e2994497c36d86d2b72118cb0a25fccdcb2671a3e02cb64339d01b5b8970ce6f794cacccf4460fc1977522ca91765a3b03e8b014d8cf333b9c1ec74afb58e63cd7d8a9ffeee5dbbb576f1bb1f7c0b5e4de55ab0c47caa0e6d64c963cb1330d7d6f72089ba4257c53063a2bebb2bd09154ce512e79a2f22a6352bf19555b658276862cf49bf0d40b49f26afb25d56fc6094c97686b644fd1a4a889aee6e078d65b8bce6fd29c15d06e8b30fe6c77c9f91c0af3ae019d74df3eee614098c36bf975878d2b65654b2b3b64fe9679f7881a455b1b34d073c448a0f115703c154647b697627f03c0be8836455d55933f4e8eaaafd492f177469048837fe2ac1da8cea2d78f656511b427efb00b13f51af2af217e7045ef7c2951c6679ec1260bdfd1b89328fa3ba07b9c5f67c26b713fbe47352af92b3afccfb9051b8638b7a1f7469f75a701b2c5a54da57f763c2737ea1901b1bf0b33fddc09ef3e2afab7bb495829148a617c7deff80692b729461c7358dc260f0bc3c5b51755cfd5ba5badbfe52891aca37ab71d2a4bac5d1ae358702ed44f813884d572cd3375c2b44addac00112f0b75e70ca8c85e0ab8b9dcdc5b37f6dcce027aed48a83e93d6234f245f706808a32919bbc58a4bcdd2f6cf7b60036b18fdbc59260939bfe509c811c6b6300c536636d2052a7b7e2a37841c65a597600a7a20635775a7c3cf516ae614f9ed41d99bb621637f7b5ecdbe59f9e7b9ecc4600fcac84fcc2c9daf3f50a812c28b9a928ce7d3127bbd3265b03299f5b86fd0a393b8a8a41f94aed4acc9a6a071a0a48615aa720335495999600c5f1378806081e8d09415bbc18af0e8a4a110b1f86e638f07d6264a7bcdddffac22af19f32139245aabc92329631de1b8d528b60fdb7180a744983182fee112188507a7928b73bb823fe7fb56c6d39e5e19edb89abfd1b859243617e2f593501c551aea98a80d20d711486565ae694ff108bfa9feda27cc8d3a9180f2cdf145c7034b9c37b3a390cf184c5488dff4bd5543a795d7952757dc7c53fb5f78232deb28b322137fe4c341d90ca28496aaca6eb6d94e7395a2227e718016a8d496daa0174f7dc5b3f7b1e94e7393338716f4a4fbc6df551e0801d21f31f29f161880c18278c25ad780fde764f2f8042bc37765c44c07b2467e36da90adc3ee7c204b6d31617cd228096540fee700765f2de9a356d77cf7f8fe56bcdf05c69057d59087c37f82a14ada345c8ee654a0541d5f5219860341c622c942da8c31535e714f3786207530bd93e886416920accbbe80eb30a563e38883875b31d6fe5d57124a68588cd55d29050b70b5b42d58a512cdec2b0e3ae4d6e04d98391a6ca40d25e9479f77d1f77a17eaac41e65b74c0937056bf412d7e44701aaf3b21767497e956ca4aab3c43cbcee333d0734f662829de2e934c80a07603cffc5418b8edecc90427ea19e07a1bafe8e2459e64a993bf29fc1ec92b6d05eec8fbe7f16f83ce7ce358d0d23948df0d4ff97a9899493224d44f96909dbb2ed579cf9c33b77cfb2e1d9e4885054f571a3a9ac3645c68ccfa5036e5ecff9558d366bff1535a75b82c0efbda8569a2bba6a65008abe6bd30e910c8bc5d71ba639976b35b091bdea5c58db6a087704a36fca6856e091810f351439eaf42e61bce7722bbf62c9479e66456dba87b8cc5ad43760a91a18dbf7a38d4545efc8561a579f188c61268df951781b96c483b815f4dd39348e40b3d6128640bb456356449fb9ff18679dcfb8efb9562544b8a664ac1813804de2d8d203a19ea324ea8b5fe6679700c74898d8250a82e4bd621496902e8f6b185b3cb118f31985082c5155101b5a334ee4aa85d255238641bb67abd4e7f2c37d0b6a3bbde30c4e2e65dfc45ef19cb66af363400dc28df8e38373729e6321f798a85d870ef5b9e9b863b135fe0c950a4fcf26d43fd70475b55de361a42da76f53bdcbf3e14f65b966852ba6c06d53b293c6c6250176dd6ce04421f04a8b1beea93c4c12b0a5eb4f3ea6e83304525ba9c3c927746a0a0b7485df010aba013e7102368ddc5ceb867862415b5cfc3619fd10178e33117c55a7678a9173e1ebdc5e163be23014a52b58f1f65ca154aa7e21639eb3352ddfcf2574d39bb415b959071531b3a66e53ce38bffbff18613551b18b75ac5b08104f554161c744abc4964d71c4adb906a02b90e649a8c4202b9084ea1ad4e0779c0a060b58c2e873e0dc225990d53fec26906b09a60b3b55b190dff247f55f67b8a712ec858cb1b3d720df3a596052c736e19087291b01d7975afcfdd0cb58b050fab765eda9e4b97a40e7294bee605eb8749bcbf3c81da155a18e34d081f19ac60d54a84c3f0738141711a339affa405486f9bebe25a912551978b0966955a4e243b7a12fc7ed68aa946e13348ef5d522967ca114b201f5cc81d8b7837f0ec4e5e6c0677aef933a2f08001f1b3661f011f93008e45ee5ad1c4c0e34e965c145876baa767c48536237f7954d263ab208c1957d4017994a86a5d3b381fabd7d2617cbd61b0803aac360e6c3ad55017e0783c9e172848135bf4c06cbca8e2b54ef496d0279097a6910fe9fa12f9329871caf25344079722e71480d5b5c2771f89e0c7939155234aecce43a64592a42f1dff68e9f854b6ace583ee1d8c07928f64e9e1679f2d171875180859dac5fc724db334d4841c0450e62eb28c69a15b55fb169ff58e565efc12a2aedea1afc70bce431b0e85fae0e0113602926bda9a1546ae44a8bf28aa5025489c67eef450375a09fa93907f71e29ceaaa4063528e471207272ea7a70d659e700006dcc5cb477b07cce5f48b43120a39a7cd25fc04b648baacfad58ce901eec66135298f4122b728aa8882b657de3c2903126d44ed0284e225c50bff57dcbb9add4f9fde96c20e626c8769103fe85b5ec60f4804e11ef768e9095c673b22726b9d140b3ca4b2cc5743ee25d8f58883c0d8641b2186d2a398af85621650f4976a2d29c5f89697a35d3b4d7cede34848ba2ed831fcf539e1710ebc87ab24e7fbfe2d96ca378ca41cec1a3c8618f46609b40dd6dc13c044327851755570a983ae92514665b09e2456e577d1ce75035513b7e4eb247886366cf4a33cdb191bc5cc35b78a64ed6df41143302b7f99023c9262084a0af5a4272de5a9e022a2699d1ae07996e50a7c051408aceb9a3b0275549c9c485514ce81a21731f3b42be0716d5bbb03ac349ddfd08e6fb64c7f0d105da719dff6580b869f22994d2d21bf98e620894c0a671a196c8f8eb44227244d468a252ff95518c7033eee8adf02aee0fdb2b8515a3417e2067781141b49df2674efedf9ff82a2ae713078878b9466095c3e40d60591407b5eeab786e0514bc316e9c92359f091f654cdabe9215dbf48858b9f051fe8c8bbba8d04bf966d4a03fd42ae369d3c212d39bd029698aa47c5538ba4e888fa3b8a2c6ca7f9d6a362fa364ceae3df6d3539708a3a39cf8bfb1d420836f0af4ac3661c984d707c3b336d8842b67a709018d0082ce1c2837232e08546d671d2160ae128dfd5e66037ed58abc957712a3d74fe1489e2e4566fcf14fa9c3e23d9230e2055ab0b1f29fe1268621804e355692ba340aeff96e039e6b0d950cca3bfdad05d876bd266217f73825bc5320e18227df2b7afb593d4767c224a3e76ef8c7a0a67571d6d072a66cd3ae25dc7d47315acf45d711fd936eecacab517aaeedb60b71d2dd2a6d3b330c75d6230533bda0a410353cfca2ea0a3667cf645bfe6f3aa95f7ae49a29fcc35f167baf4b3ed4aade04fcbe04e969202060250b3a40471b16f7d80fbffc43bf3560d5e3c7fb90449975c354faededd902a983a0b0ed87c205ecd502adba1ae31bdb548d4fd10c65e6f82b0fb351514d9d36efd38acd696ae021939dad714f5d10af9bf82f5889d2e226cd36c950d0e7f842a192fecd6ecb31a276bc41c054e558228e6ca225d4a9cb39ac2be63de7fb04e6382414e944324afcf2fa29ddcc37262c51ca00feb2c0fd5df960f21649d635127ac9ca7306fad958135698b06994b3c063733e735c72ffde313a209bcce150c7662a386b05bfcecbc2e531973c410ce567c430261cda43ca2ae30bdcb74fc32c4743d827aa56abc98c0ca061b7e2b79d37a9d2a3ac631faebe32ad2b7bdd9397b306173dac196e53dc1978774db3a7bd0a9b1ffad3bd9eae1ded6e96c89e79f77ab617782b7a8246ac6e434fe7b78e955dc6c794c7be4cc7e6f91bf185e8a2388decb20046745f2ef03f8aab745560e9a83bc41cee6f2a60b51a6faaf6cbe68f38fdc6b5a6372b8337ab958a731673190c168808dd4728eaac07a3f67a57049f20dd9e25f5aecf1ae7460cf5628e501584b2ec006002643cc63041a3ddc35fb2fb9d4dd540db2797058e29151ee65d4c91b42c75d8a933fbb7ec6e06ffd11724d5fadf05cd9c58699c2fcfca92091a4eef5a898d68a8938117bcf9c005241ec5f654869ffcf678edff6f4617341e95386b70c575d2f10683fbe705838d4355f6fc25a37ab5f4a8d0b9e66d749d4f9ee837bf96cff6c706a08d0aaf321943a92f9c945b62e8c83067cd4bb94c78a7cda8b8cac316f4030e603d187c20b2c6f0f6dc6d2983eb73c5da28828e60f8147aa7a27df3c827e26b21c41dec608450db8b063d7a5f1f8620c842943e8468a160cde0d37bfb33408af1316364c712b2ab59be90c0c4508daa53ba59443148d81a07ae84680a0991114fb21ca095f7366b27b46a4d299b3f37074b7b91128f0b1d4c37948968a8dac80bdc9dfb333ad3dcc8fe9605332e92df6f287efeeb216a9cf66a0fa86d9aa36bf930bef120e2ae85f8e6d44bab84f79c40a9925fce7ec294ec0294d4496e648c78dd5544c59d000f71e13153eb66e8a422606ef3e818497d86474c462f0c022380fac89053f0061dd5e0b49241d67f76c4312ed5d3cc15a1699e2befab8051b3651a016702e88e48b5d9220aac13b24f872068d315a15a122da1c06e1e41c3850de96c2195aa907f7a0d9f89bdaa93f6b5a603302204e86ae542456460feb51d515deb1913a2c91fca0c221bb8591d26fb4502e965770fb6c6b35c458f7415fcaab1472900985ba9f4a69c01141eea3bfce890963cca4fcbc357a2f35ffe0d08527602c564608887f7d7e88fb735ff3d0095e1d4fd034e8c6fd8c2552ab051cce65f3775f342f43f78f7256f9e2404c9f5b2e7371b896084ac1cae490268cd63b14e586665bec48a5c96ff45c3b5373b5ce2859275e8aa327b575664cbf9f068a3856a7e305109ea8e62494798ef430ebff563fa89e452051bea79a1167fb8771a8e852e5c2bcfbc1985fc74ccfe8f91fa0fcb7f9dab0161ff814402735baa8a691854625e4eb45a90377018356b2b899f645b5c677b3593f319e01afe2b75f92f1735cb504029e544086eb515f7a39955b465e265e904e586bb3c3f44e81be6a1dbf227c7b7383a2dc7615e28b89fa03bd4615d07c5223385e864b74f9d480603bed67feea78b4d456dbcde85d5063691e6489934249b6e6f30caa388ab3dbb1c90538a0b3d3c08da4992aa2beffa347127eed2c25954039cad3147c4c00ee9414e8039d7da2808fae658c927ab1bf924475aeb61fc41597b5a016daacb17416c2f1ec73b345e14cd20b2756c120832ef1b9420b2c7e0a773be541f9bc91a43b49f56e6a0654ba7d5f8b584ca7f269926b2aed62ce4154bd1601cf4cb38e4bf07580e214e79e9c471a01d91ba48eb44c97418d5a8a30f489b554d0716b9b9b8ce67291890e47cd3abc610de4148730446f95d65969ebfe37bb23e6b6e21f41088fe45700f6e0de567104076fb791754682a58900787f53467e479c90b9f9a642385c0b265ea99a865afdf9de331099a66ff987db486293a289b1db17b80c8a22fd552258c9c92b870c4834218d289a6e6d8fdd236e7e6d571abe193348633eb1ce195652ffacbefa0fc2dfe7b46d08ecc69a19b304508eefa4562fb6f7de47c0ede138958a63067b61f5180bf617a72e589290a92611c7f64fe40198f878281a7351faf13a185adcf0b224f989cd0e66138f617c76f63de373126858a01286b9ca3ad434a2945c76237dce4c04fb8fe97dfa5842997bb9582161f4d3ead5090434b6d9dc98d55f3352c239b8e3bbd71b318d0a20b8bf58289a878f0ef4259b904388222db8aff65b49e7af310653194a5b9dbca400f24aa7d5a60cf1801fd8925fd88ca8e2836690ca2135b73233be1c3ebdfec222ce57f7fd4b219174a9ed9f44378f36b803eb250723ee0c8e97de2daea905d1d4284ba4f1426b5e5a15312380f5d4c42106fe292c92a09128ac04e0968826a64d8c9589c3386e7ae14f1d83f9c99e36c96b15a2d356d8a36e46fc9d74770b7ccde4b34b3a2eb3945aa195a966c821d89e13893a8db37b19b52db142d8697bb3133d30d150ba73df3cfe8f5cd1a75e5954df927b6030d8fab6f35d86e957cffde58a4d0fb31c7b14a0e788961b592b89e2c79ac7445572090c5d8df4dfbc6eb58c8bb02e4820270dc5db62d878ed68a6030241daa534229ab759b01c8a65ed6055b09784a4cdb2238d569340efcc9f22b732d83be4c546f19b8d4a65ca8ea475111b741d91ed346ffe61bf0ddb3c7c1ebfb34121d60f1a9f0269f7271454e16f95aaf59d905bfceec3b629156d36e5bd24e85d7c4323705116d1c982f46d02403b17dc0f512834e5a96c949f278da7aeb0a0829568e56a2f6858c89985401fdd601f1fc83c8cf9f3223b78116265efe17390a96276aaec1a6c0788d9fa391287e4c33ff4eba94d0bc549b3bdc9fa098640d148f510a0d322fab4272a198100e3ad94d484ad208dd9cc901144dcb629c32d7807c4d1074808cfee2de8bbf3b8a6240da31b056f573b94c950e76e97269b173ac049c441a7f80a720be74e7584f8b600d85b2a25101b21ef815828e574911b20846feaa6d584af3344b7538d41025417317b85e7634b974eea8f043acc6d1e4c8f7bb833016e27f980e8e055e577f359293b35417b2bc227c66dd2d7388147cd61cb96021f17be800b061ebabbfa0dcf7a818e46c54e8fdd8e07b64e91527f846e736196ad49243a779acc0401541f27879f950784f591b6a6b8a8738a7cf81812fbe9f48583ed8e789dbabeae7a297979f886d284de7d2d8c47f2a6e3d4a3fcc3cf7491c53211bb2c4d4fdd9539310f331e4f46aeddaed1f6b2b66a65a9b880b3b639071b1c6c35549a04412014c04255ad12354eaea1b77f846649acfc32fa4278e6a3ffa63fa841fde78353b96369fa28a75651ab7a79b7d84a0cfa3150f6123d1bc2a7f2ad797fbf1918efed2bd1efd617cbce727ec7cba6fd418784167f8f98edf3b3653fe46d8450b6bf572dcd8225226d91fd97881e34f0140ffcca6f310964fdece1619f5b21561c82fd03d23274baf4885ed38a700ae6718f4d77d9e5cafd9e94e4e317dba3881bef9f4aa2da3086e94c31e5c38139767e773c6d774d34283015a3783856bb57f7ca49228b221b60651bbaa32149278d5fbe9dbf33c67bcb091aa33ac22299ca131296b1b04d28d7a6fddc86ea25b4e94f9c13c3bb70adbdc05a64243599c0fbf39c34a06ab4f1ae73fc5c2daeac029f06e0f59624a4cf4c30a3719748f02e9688d5269cb07dd05b4b8e47dac5f1c4956d1aa0969f81afb854e295d6f3deb85dce5707d69669c98969a90bf364738b09a81a8ce63e9a93b5f549018906477aa6bc977084dabe339698237f8239053408697434edc9d81eed20c9e13e516abadb83e63f5e7ead9616d44900b69c5f41f8990ab8d7a121027c746b51e35d6cb5f91b71032177b8904ebbd9f4605334960e51d89c12b65ab7723967844eb822521223125b1068f8bcb9d3c62277deeac8d91772ddd388cd64554ee4cfb5c675e9cb0b11756e6f4972879b75c2945b6607b581f9a18f4315349ce1c5793632d4eade9b28190503b6e8196c56b577f5764c59127da282db0adc35fc004150df7a5799ba6ee5a2dcb0c9872c0aff80e4d87a4a74fe352b4661d9ffdb4935687693c45e8ff77996f6ef6f1ad47a7a36ffe2cb65ff987ecebde3d5511e22c4467c6bd221f04d513798fa23d2bc91c7c4da46e2598f82f8f115880a71ba91d895fa45cded1f1bed5d72bc72e1c57599777b84bb2aaae0eedf1fc7fc1ecc148a66b8897a5fdd97cfe5cbaf532d467be04195f3acb0f6abfe281fedd3072e881ead024eeb29c1a07331be7034d2ce2fc6395c849316031cdd1f4e54a752e41e12c304888b91ec8716a681cb279ebd2b1519e5995f5b5b550c5b72bb921657aa6fe2b05a8bef07feaf2eca9766949f9371bf15a030d4ef530636812a12e15cbf02ac384b2e3291ace5b433f308696373baac253f46a8cb4bab51541723321582d4a5155c825c7a5b21aabeac5e0a5c5d0788ae4e27531bfa6d0e6ebcec009322f3b4a1507f0118bc31855cf3951413f7f89c4cea802383a0cd14ced33d315754bba63f9b94cd5f3307408c996f5beb5d7e56cf496abec5a42acfd52702249b4abaab13b83afb763d2fd506809864938dc4c9f93eec9aba0ee8ee3cacee286b03c6d74bf632de9044aac77bf9dfea4732c02ad37ae584945e19e31511070291eb18a2f8f1be5c1d05999c5d39eb5ce690a55487fca61a7875b166e2014c6b4e25156975403f6d47d9075bbe1f365dcf6ead45d74bee51628a44f3b782d590e7fbd2eb601157a1c385cf123cf429449923b99f196135ef5e65f447741dd990fd4dc5cc25c6e897ee611c52fde1d29a923ec328cb5caa110f5b0be701d19f02b9f88d1513c2fd873bf5adb1bd46459e146a8d4aaf7083a77fc21f99acf43b6cc48d93b204f5f1b9f2634a47ea2614c4a576a793809ccdf34fdf56e88581e3cd16de08f39be2090c40453231ce585231ecb7be363120470e287a83a4d9732f148e23de0b0828f07091bc9a12cf387841701d2089bbc550637fa16960b23625a659d382945ec2756c45f0548db9f82f022fb17a8582648332b34c66f36d4bdbdc3463760a84975699a937d3cc1ddc7ab6fc653b494240010e6ddb16f7619fbe82718b654ba403b224499aadfcbbf3d955b75f4e9890252d6059ab614d9041fa5ad2cff81d3b6d5d508b7aa0ce002a2508491fad56ed650be22d3e6e976b6a4797355988a8ac2135f2a185c1f891b283af7a3ce40e6315332400aab0bdab0778620f6aa0f86dfc15f3c74250b2ea2e895c9697a66fb72be00aec4d2969323e6259b4f7a07cbd9a38d2cfdb183a081ad3d6d92c97ca2b6b694b0a055f8bff936f0b7432ca8aeb1d3d1f02f9d850264da217b9f3ad96cd2e17f4b65167d535b4f67d8306b7d932be54014cca77ba8bafd4cff073ffed56821ae4273b853f2fffb2a8b7df9d0521b09cb1bd972bc2666353de68fa390c9f252e4d53d78484a15821f80f3aaf0e8f1eecfd5873d8b3b90182dde697ded79a5d3d3926bbfea4d2e545ce10c990d9293b0dc62fe60c5f57b77b9690531752edb446030bcb1b60ddad6200ee3f43ae8aa79782d2b2029cef54f3883e3b0f29080e93dabf2547c1054e73548504b8b8dfb868ba0e07f3c22ba45b649e3bdc29dca843417d2379921d34d6082957fb882458048dfdb6de2fdb93959225ea5dc419fe2b926ca36be1f810684d3ab91e93ea80ff2c625ba4c32f0dc2add3aaef920192e6766e211582f2747ac7939cfeafb1a0f35c586ddf640a84fd03c5db6fcac420166e314e3d8c80c87a0fc4a5959ad05860f752b9947b5794bb1695f0e8cd75c6ce4e9823dbdad812d331180bcf73ed644f6b6ac321767b3e311d91a71c9c880435bc70af318ba5408a2e76dab03f06a88439fbf63d44cf94bc84bac24c5de3c67ab6790e4e82c9dc6d7b0730466509a2827794bb1ddc2cec806799eedfda7eca8409ba519ee6346d1b81b3a7e832fecfb14f36c9f0b68be17e1bdfc0ec019707adda2648d6a3c9e5131b6a936756bdb8877ee0550650adc647a6d8f847656b0149219a663ce84fe31f1b3ec0126539a8a0d670f6daaad9470c42b16b6ebb8f1dd5291948c6a87aa0afc44fd4dd58575b5dbcd14c35caab5c2ede8446865ecc64e8126b802119fcd68d51878fa809571ebcaa78dd3f3aeed5ae9d4290becc8e4f5e4fffbae237aafe306d1f7937bacb1fd3ae34a63f85871ac7545f158727ea7f762924609a42b39c32baffc38f8f24fa87ea4c5020bd76e5bf10582776b6278b04398d3a7b3be294f84ae773380fc5b5de12ef1790f8df169e8e04da3461e7342cf229d7946bf3ae6829670d5aa7adc580f1edc2cece28ea8ec2b9a87537d0bd90154c9960ddf8c192d1ac5ad527b4c0eae4cf40a4dd242315513cadccecd027503a1ebd85dfce379ab31c0f31434cd9055d2dce2c455204d91683d23b53f0919d4e6ac24585a0dacbb5bc53ad13e055d0615fb5492d2620a5a049ad68e9ad0d500fb0f9f7267c1eb9af6e86e393b88b1e0b7e068f3c69578ab272e4bc4af28f45928b2d58ddf75866edfab51724761e6c07afe07720a4965dc33a5325b98fdf0bbe6ba23109e69815b0eaa4c80919862b17c426840b9c24c27c3a4fbf9d52a3dbcf98e61ccd1910fcad325d1aeb991d009229b9a330df93bb3c39bc86fea1f193d38a2c9c913b413c8cad9e6e56123cd5e0248ffc4b61a95297cfd7020cb0030f309029df7fad63d36a66b2dd39751ad3ff6249aa1628ca30d3d9e602983aeeda1cc4b2dc0780afc457b36c496ad787c801d7178fd507c23569ba2eb799db811b2455923d5b7683b1d91f68732048aebe8ce80cafcb6ff5f38a6ce4d5a9e9b41ca61b4fc9f41a97396827c3d677396a1258f237d8c24650af9866fb0686e838e75680e0a20be4aaf2f0bfea04f078f69cb410218b88d783f3a84cfe8491891dfbbdb288a82068688352b43beceeb7ee2b024080306ccd651607735bbc523ca32eb52f4fb777a26471e2ce84be39a4eac637cb49aac5408203b230cfb5f24e9f91ee97d5679647767eead3b3247f9033075c0a6a376bd3327edc01d643bf9e13206dd68017c929d205264c370cceac56140f71ca723cddcc9f6c7a503eacd8db00089730b69ead9fa5471fdfa11ccf95ae03ed79ef99a8b8b77c08c392ce499207eb0cffdd694ef7a570fe45fdbfcb780e7b941295e6be83dbdb86db92e03f0e331509c32fc1327dfabc9e0d97f55d0147d3a4b6680d4540658c9f26b6c0f91decdb604ecc01d10970b6c377e35ea04346f7d03ee0fc67c35645fe1ef7f0275eda65a4a207c8a31294df1926527c156586eadf733622d99418f152000f16fd503f2d2596207aeec4272be10a833a4044ff419b6d78f65aa1532e2408177cce16ea834ca3dcbc91047d8467d4b762cc4aefa50d712d705d02b5d0710e8190446a000b42dc64fbefc0ef46535d6826472ca05511e88b8eaa6c435c27a0ec651bc20b3ce23ca6e6e151cac1bdeb6798679362a12e4c27d122188e8e5e05193173baf3e304d5c4f0bace47bb1d493831e7ff9970ca1ee4bd893265d371dd17cdb027d19e1385e6cf5d9113eb01fdfe4eea56d8bba448c85c622ffcd0de3aef38ee74cf62f046b7006157997f9b3410aef8e7b610a77aefbcdb864ed9f8680d14fb2fa4f62b3d8e4043b3b59718212af685e85010036a846ccdb55f7b6bc54b27ede47e758c020814b0bfdac7ced64a2d0aa801f1a0012103c49077f28c57c1dc40abb5d0e3f33f42d446899935f78140aafe4efcdde2609a1d3cccb3800f51c08906dd4a366e8f56c2cf1209b1af3e7f70b8b6109bcfc24c365b23e429d7b205b3fc6bfa303bdf1ee743f5072cd7611e15ff6b1d9bd72ebda448d4dfeddeb102d083874cf0a5242e8e1ec5f88234cbb55604f0aa3163989086693db346d07db07ca9128016f2985d76588736be3730c1e26ed75041753cf0dced2ea325d0372fce15ab2a322f97467681908b1cb0c920ce4bfc3d8abeed08f98f05a5257b573fd3cbcbb074a2d1c830ba7abaed48cd999d86d2b2485cb98bf82430e38d451fc7a449ead0b840bd87d97f88f63cd7b652de299385235cf02d5210a33d24e91a52066a0417d9f2a669097cd6694bc21c584eea78a06a5f4b2772ec4cc6cfca8d8d96a9bf6a569ee319a3ca12afda102a1b95be5680a5f76eb766faf7430b82cacb8fb1ec814e2cf187c7670c5847e5dfee8b8567b77196909e9c2a24af27eca781184afc67c2082c65dab751697372ef8b16fd536ab12a5da0abd04dba5e75abca2316b5fc2cd4f1ac965b41dc80b3548e8b8b12d309c58b073354c545b5810be3e1ba43736941a71533c2641b5c70d9f5ac9d72c0b1ddb721c670b4e7ad1f60b0c05491d4e9591ca1962ba88916594fa6309bdb12901538bde8d62d6bcb6eb336fc5ba67b3da237129d0c08f910429fe9d8b30540aa8ca7b21b402c50e363a61fbf5ac297e7d8a56f6b079835f6cac2ea1c0739d1e227c159f947364840d58939d316bbac85498984d4e95b7885fa5c3861e8ede50760fd0e629cf4b994f89ef7e110281146eec85fcd6347f42c99ed49c0417fad31741cb2b856683fbdbc2dee447bd973aed9acd5f167dd4e74548af46257feef7019682c2f90972853a9c259660a1c50b2a2eafb1868541d37f59ff5686d1d83cd0101e3228376f60e2eb196b140557d19cd21adf9dfd86eaf327d6c611295d894d4fd4689cb8be1fa8beaa7131896a136680d0adfdf834350ec4f5e53105e6ff8717a446c984e5275c254b20b2bdcb8ed5d5df56c89df0f70d4cc335646985ffc9bf7d476e0856a032a10824bbfdb900a2c3f9674b05f3bc3d5f036baecfcd0b55e946f91ebff79f3a68503e853574fe7011bd7d81109a5a6bd2a19c1054980d9d1bb918ec3d187cf9daac919953beb627cefe882d29d1c3af5c26ee6fc22419a0ddb3be75deece9f13a38a8dd7f0b0277a03bc66380ae54a53862fb8b69c78d76c947487904d3dfda3cd9f447d95be41c25a8a97cf78390e5190363f9399a09b76aec3aa230bf7f336508805e61e890577774c6c6d69c4ab2b90c6f7240ec5ea08aeb7c892ded2b5a06f655ccdb057468f7743b4c3622898bc0b005a9e450ae19ea460914e0cd91c95577d2b38d5c5dccf8a71fb755a78bf12f26ff237172321cc3cd3f99179cafd987bbbcb53a1437dff121ddfe2bbbd7f16477d0a113cdc924778a9581cdc994adb642cbde83d93de4e7d5372130a7573c2d0fbe04cc490711fe480926217eb04209482e742bc4e302f0961b282750f0cbb759d726e00b2aaf040795609b99c00271a946ab19a5fe1103e5c0baf6270fc4e6c7bd23412488c3bbeb86aba2e3a7638acdcfeffdd85b6c4c699eca7ca71732a7092127abe6ac32ff1e808a7bf8765c145f7e58b2fd63079c6346d09935e2647f441bcd607c8aa89a0b44a498cfac729db296bd60137448e808c001877782be3adcdd80b9022e95a584fa636d73f934e3dd6f3b657e45db959c53aeedf74a488e4dd8975bccd5fd879ed7a15a2b38b49100aa08e6cefba33ce44a5ee15fb3870aafe3108203569872447ad073ae9e670a3f27a1f26b80eedf537a3eb892861c87f202d9abb556764e71c541ca727beb88b613be9ea7a79fc940b66b7900d80abea17197c3b40a2dca1aa749a12e950e01c4c942d32bfcec983f4f10dd02ecece3c1baea1779c76b55d39cf36205d1715414e15fee4e62ba96f68320bc8031434174827dd2122d43a3490bb86e6e6a4f5b9259bf571a4dee291a41e9f587b34683b1f3befbb200c4f827e1542ab9a5a1e8933507f477f9b610026eeb1de748718e103a46da5f6ef35c8533926c8c4e9a919fe3ccd42550481a8315dea8844040916bd38c24f9c3f359364108c2562a64fc7b068e083d47eb6d94c0148d0333cb5a5f994c46c1b6864b88a2d0388a7a9098b97894401ff5a0e83c3ad0395fe2426a5c751b03a0f9245f9a3f983867ac46ce8a6456128af49b7eb24e8673c56b3c6061ace79e62c0002e410f00a5ff6411cb2f30283d1102316bcc46c93505f4541894c87c35bb6bd636236ebae07e87903df3748fdd020fd1ba238c3578f32ddafeb9801f6bf079de6f3fd8084ca54333f7551ad08793392d8b8dce2a5095b2ba9909f403c440d867a00546fe072f1d6e082c35b3e7271f782204fe73af15b69f4a0e4cf66f0c914d10aab18cb92a871f537331fd36a56a372e1f5d47ef62704ee4d505bf786d18750ca7710b7af19877a78ec05f43e32c4c249746dc7a4a716e70aaed7d6a8cefe055eb1b7cc3515b42aa85a91e666a7e69972371471ff38b40974303b78edff0831db57e95ce925214c059176cea92eec4f7feec27fbe2a038c20e8c569bab5834273eab64c2e02c5eaa2c7ee3a4e9251ec750c0ebaed43273ccd50da9643d5c8684eef348ce51b7728f6d697dd4372c5b6454839705d3bfcae23c365bc43592d03016e57ead012d28cf5bbe40c0cc40ed4ad1d5c61483ea09be101d9d1aacfcf963376ded7653fe67efc1a1ef4784d43293b499670ce6dce2d4bafb068b6d8b61eae9752ebb72bbc5200b7f292b5294eff8152541c685d0959a2d58d44a6aa3fd178661138ac17a79427fe97ee6a49c6200dfca3e942969576d45edead858fdcb42dfc69caf673677c7f7c7a1641f0146c39d498358b1544b8ae9b15415064239ee778c9da7b671db25e637ede6c36ec135aa9c01e04ca0c3ab1c0743c0f1b2c717478f7898e4d0bcfff0ad07075850d080f0da878f21b79bc0766638e6a393fc091a462382f342844016b4419df1f6040acd86efb4b5fde51460858268f58d42104247dcadb5f8290c3a449ecf29557e4eda56c21506468884786504a3aa6e0d74a24296cbcc471f11176672b6d51aa88fa54e5642ceaf3daf0a4daf22f6575a28a5735a5f78e9af61cc94f89760d58fde186cdcf1126b972b18cac6f6069aed70b71e9d0c09cbfa391267fafee5a00665c249f0f2e40c6834648cdd6879df01a51aca24a44ff640a833b6da7b81b89968ad93d7f4ed549ceaf494d00207e784d5d4480e1ec804285ef5b4d096c0715eedd93ebd88f75ad0e46e38e10149e389238fb1f659e1786ffe5fb5e12882a4a2a1b064d826126806694ce1ed3c222087f25966a5d6975e6f1b237ce040864e8eca0297ea44fdf3008eda71c68834521d5405d703fec7b85ff074a247302e8afedb7b636827b0e99afb06c33060ed3ef5a779f55b10ec1a25cc4194859cfbf9712b8aefebd651357b1e70422d3e0af2fb1d62c4faf03101e69dfa90e250b4354e83ad37282b2c3f8aa1ab5d314f74d5b3d3fd9aea387e8c928faa55b10afa42d35692d99bedbe5f51d50ac083def386a83660000c41ffb8d8347d9d16e616626a0ae8645e859b87a7fb3798e910a8ddf88eafd3345b8b05977ceb913d112e171a6c3ee8df6a76c0287b1900873477f281bf0b2de385fa1e6a584db931ff7c03a590b374f86aba4c1c544c9488435d14a1367038325021d4be86278f50eec83b99db779c15a76fae0d0c4e03734095fe3f0985befab04a75cd260effc8f68fd9ae903901cac0a7b8788c9f64d6ce29574661726aacb3e75e24f3743101d23d6b6b51b994cf6c727b5459b0e9b6530f604b179556e9871f197c5e5984707b7091621ef79b6396a72edf837915fe69a960dd598ddb772893cff5f38b90d25b367497e4d560ce011c6b1832cca346adfa1b81a2438601515a6037af9955084a61310c51a1b32b79effcbd6606bc5f69ed26f6378e24a0a31376c450bbe4102f2054e225af831b4c4ed689f7c07169f2ffcba329edd2158c72a1e1f62e9a6ea5f87522015e04070a5d6028db9955df722856e84332d227b6b6c2f39bb70ba00c5bb6e21dc0ad39165f11b7acff36dfb58e629cacf5df8fa4a21c984f6d39b933812dc26ba71c09329ebc8012661ac29252c26aa21f9ac2fa320da052e325080c3d6f21dfb54799c21660b4c9e029ad4417a54599f12a107ed7299faffd55243c0a1b02d11b64a57d075fc1a175eecec0b85ccaa23bd9ae077d7d88004a5b57b88e48ebe3adfb2018522c76244e335c6c7168b2e3b94e1c57c4027a312b0d1817662a93648d9c51e15e972f6925f1e987d8c80f935336ba5cb56c3f7cba887f3b3b234a405f4a1823e3a7e1398882bbe5257eff04bbc174e14f25d3be1651058c8c044d05942f4a7befa48d6fb7419f8227e1ab34254fe4875a3ac91a55e5d3d5d4ce373211b8d8118024fe1e421c32c831a44770da4c9df6a2bcc55d1340971376976892a9b043a369f32c1aaee9a7145d9fb7ed05824e2700273a4c828d836f7ff76f4781f6f93901197d7fb20b3580c7cbdf28aa335fca9d2f30955a0c89ecb4a77f92acc21d9490ccbd6b25f56c77959df436bba2db0a7f90ffe84a6b35ce75a7940e9088795b63943184f3630d70bd9d06d7b54e244fe0a9a174f687dc32f91955bcbff027e22b6e45762960584c8fba8b0e3317b3ba84ce821aab9d5c55028f10bff1fe8463c921f9e4d53fd276fd0049f7b902e1e5d39177e068f881e1baa04bf4d9c7b517752d96256a5780805fd3599c2b60dbae7011c7a78835e02d47632fed0ed0966de6f273374a97b75383cc10fa26ee1153804a7876e548dfde741adcac34d0bec46d6d96336dea53d44db2c278d8416b8655cd67c8164b8de4492ae1f643b58529066d59ac8a9ba78b33b1f97aa49ba0d1751b848c83981d17845fd1445fa6d999f753e396cd1b9eaa352cddeb6128704cbe29dc51bfea70a9709c45b4712c331134c73f0b3038881eb2ab92836b9002a52433d93e2ffbba7cce2b70fabcd2ba03fa6d60b6e4f27afd35fc0775e1aa1e15c59a42250305ca482a78e1653bb4e9ae1356a3971a97fa2f3a57af7db9714846440fb5d7da70707e485c5875f2e298d161d39db6e69b7a01040e889329586795dc61696641e7ea7a17ab7d6b9bfa3bf9877922b85cb1b01d28b70ec08fdfda090edda9f9572b030d7da03b90ac73683f0d013be8a70998d8472300e1bbcc996b26c6d4b6a26414007ce4403d7e79e2448a78327f4dcc4491ff79871ea43fdabcf2f389f9ee194c53ed015f62d80a18ed4f27bd6c3f672e239b05db38407fda0ebd3bb8073eb720292316ab5683ce1d0509ae4662b8ae147ab47b390e1021b75442b32b5edb435cf4f9433e4f783c2fcdefa3dfa64ca6f3415f9dd066b3043ddffbe0064564e8b047a70589e2107600abd64bb5ed2c9e6a1b71810663b13b833ab46fb84ddeec52c4c91fa4adf398fb7a09c2d0f9fff516f858998717e30dff25d3276e4216fbcdedb970d01c0d1f492395bbd55f9c867b9994761e72b901d0d7f2529a76dce3a6428753d78d14a29a54ccd751b76e481a7dbdebd080340c4b32575e177a9af028e41f324c01663ed6919139f2e5af925afd4f089fe47d10c5fceac04c963d75bd7872dd437019f6e0b3cc2e809530c1e907bb4973245d82529a50be3d3ccb0343b6a13a77fb5c69b110d636466a00c218bfc726ef8fb6f4fcef602da3f33c8d25c70e76b5fa36289f792f14f22cf470b955508591fc1b307e471b9469b605213e6d1c1d9da1c43e658765eb046edf3a688f368c447bb444719c28b481030a33b3d560e57ee25fb7fa90d0ebc358ea704995b18ee155ac8cd91b78553ffdcb659f4b90d10aeab63d7a88159154c0ddf638652b0e29be6677eae9ceb9269d2a9349461515dc1ae14c503400dd57e3c7bab57e15fcc943e50ccd494b41b55373ecda4b3427a74b2ef2dd66deb64c01340729a0d67914ba5333707df09ef940f5b6e150e9b8bdaee96c7fecf262a360555976b199dc24656c6d7609fcacc9e8b8a4d66ededf5b959f0ec76abe7ff8851c86acaa5ead9132f41fcc56209d6580d79bb35861b043d97a9822074cb81da160766f81fccc8cb56e1d45be88cff087b7be412c4dddda048afebbbbc632629dc6774e778d5d62a43683099dc4f54d0b40621b85a3dce5cfcb60df8beb2292d0aa1cbf8432bd055dc9b48021a00085c6433d60e591cda7b38b565cefeb347f81950548e000784a6c9c39ee1b38259b6e942e69e77aea622b5672c9d00d146e24074a23080369319232de88f876a4561db13b14b2efaaf7be2cb8ab1c56d528c08f17d4b119b8e37dcaa0a1d518508256bada480775bcf8342a5de33c75c25059111fbc254ab65933e10296c4850723c04ba5d2f09011271f4fb0ea87366045832fe22e36aef2438b3b6bf141c7e07c9a2095841b671dfad0c98f073c7c88810d2492c6c728604a0ebfcd09ab776f4b8b70c2f5f9d0170a2f98cba1d75b33a7d886643bd2aa0c60e34c121d0a2d3cf88e7586e2fc45d93c642a98a3436cbfbba202de35fe80466695aeb8570f0e22c8b9527f26ec005c7b56408fa144aa841d3955bbd75f18b14e51de33c4ba227fe9ff8d9d7841acc9c3f6a83c1fbdb582077ee0f33cbc5a289278d165e8b21d8c785696efe73275a71ae27386e1806db2421c04d5d90cccca0b2117555f1e960a22eb60e174c32ab72beaa0c26926ba6ffa7317ea5fa5f1e48b528f56f0fcfde0cc38881457cef8ff6fe86257cb0ef21ff8b8ceeed5035c2be9bf21078db52a48f3c5cb750a95e282198236f559ae4295a894b4d4a24ae7423f9d34362275db82ec20b4263e9716edbae1419dd5c288e4a391c2f48b7b50853a45b8e09d34356ac30c5d75b870bae19e1d715892c0b96f7cb788cc7d56be2162283f7fbc87b6b9b780ad1adaf25077294009b2e12867930255640639f047ca3b6270757187b1c42bc78aed1a841ec0211fea626763de2f6e5e18c6906f3e366b84b4bb4bd4c3d4c573f9045798ea5a9a22a75823b0774d92c73936405aa3b27fe48d425ed16db4d3a8cbc1d1d91cd883ac00c505d30431e17a0de32cdfe3771829eb842ef5cb31544b61e25ad7ad5de4aa4b1ee3f8a57bd4ce1d9af6d7ca156966c8f43e315b8cf8299c48d19c3802cd7b96f73285c2d2b214c54ecbac7d87c3d04f62ef8c991f7866c5f315a1165abf28d961d8cb135f312b302f770884d7b8d270f16efc7181b3251c56136f4711427c039db29225522b4ebfd34d82a058a2abaff60f82cdc6cab067149067162b67d7daedd1f1d64814510404a6c331a803baa6f2b3ee9a026646d01dc0ff84ddc24c2123e6ff4b09f8e522c9247cc3a226fcb0cb1ad23dabb5501b75661e01884ebdac2b19f6279adbc5c042855aa26c1ec3608cad15f35dce309f9504b2700650dcde34e75087326524c707f8b6634284a849677d0900f460c02d25cdcd1154609e0dc60ea6c484c710afe8cb1edcedbe0d87180ddd4fb68cea66e3700f9b9a47b82d74cdf5d14710b249c7e70b7f1a71c5c561db4ec41d8f42ca289243b25ab37284386322ce711bf4b2004b40baf7e9d1885b5e9a2598daa5a61388508e476188d5493322247c16e5ec0279bbbada646b344ab2b3f74fa85a44845820156af44fd82219cbfabe1da1a9ab67b59a63995aa5c38bad1f3ecf3f8133fa1682f6cdee0062a96ba0130c8bb2d39ba29e6f2d7019a5ab29bed3f2c9825421c7cf56b59ce60265e81281e7d4bde7b78bccf4d22554fd0f818ae5e1a3205892065859af1d3d45496fc77fd9fd675a75c5e58f41454d124d8383297e386db8c1e4d8ee7fb7de70c689e35f9bf9b9de9f254887dd58af8cca322ae3cf5f1f7b5cd13146d0b5de723ec5e1ee112f467ad6b29007ccf31a153f27b089ac49a4b9cc512efe5247461618b22e5c331f9c763b81a6fdc18762f9640865ab4aa81ecd7ce5549747a04a903492bac59deda16dc482e1b94934d0511109273dd854295614db124b869a1555429a28d3e1b6f8e2ceb3c5f9f26730d3cd23555160b322383662ad235b654c24c26fa15fd20c6d12a90c72750a89834f7326fb841f16d1a58c4367b0c3ae08e4a64eac3e8f9726374f65575ec5335eb069455862660931ede18749afc86d71cd498018ec8cec82b077e9fe09ce498a8a0cb4c5d424d127b95c29980be3161136dd5605c512e84f669a6c410abaf14630778b7106cb07f9fb13491d0a8c1ecdf7a28008c70d936f464f96d4310581d19387a002646badb9ad904d401a77e0f2f39c6fb6d66de53394a64bbcb53f5404da669735a81767ca578c068e07f970775beabccc4b00ce93dce418d8eb9c7ae820813c419ef8330989eeb190b6c5a1a6910eefb4ac50bea5d7096d685c0d3d6c23454550764cc387170cbcc76fc791f864827d42c9c9e70587341563df1fe581a0de7477a6a66ebd428de2fea5098108cc8b3d08a0ade7cd265244b59fc87141b7ced19fdc40a2d86a82253819e9261fc7eb10ef8ec738fd43a83750d29f4a95b815028cfc0c771f196911e2c06473b9f3bf3cfff2121ef4af21efea513cc2af24d44b36258dca0a4126a052dbbce6f00145a349d54188a84d1cca9fcbbc103fe70831fdc25e50ad0f133c79d796624edd746aac196f72ab52b8c1605e419671f14130e9925c59ccb929989e74c7fbafa95153bd0cb6a2877ba5c9d46be729efb47a28ca648f49c913c7b184ba6b176fd2fd5c423e3c0cd468657da58ec41b4bb60d61048d71d8c3e0fdea35cc38cc193ffac6686e2fd79005fccca69cda3d68c62162974a33835958498e583647ca39a8aa2e1bbc033da6be465e7b91c56ae207ea7cd540b83947c80de3279d33e4ab547b173f50f2cb3af1e969e20e0f7a52a9d2c05c8cb0c007ef10ea0d139a5fbcc7266bf5e78ac65d8a6cd1987a6e8c6e6feda1fe2a2b8e7480165076c4798d689f172a69102e0b7555f3f466a1661628ee4f52469c2df952cd56e7502299b28db47e5992032af757cbc32b05dcc9e36e64d632e57120195a1de6b38a0ce46eb779cfdc60ff01029049d26de84893d21b1c56b565b4326c2c0bbf4912482773252cdcdb357459e8289b2467f19b217b9393ef78b58b1e89ec9a78ed4c3cd26f12894175364e5f2090b7af5eee91b485bcbfdd819e41540299c7b0c8984b22b80f9ba1a539888a4546fc46c45d72c2750389bfcedca0a855a413edf11c32e5bbf8660456fc616db51fdceb66b58495dae560a86b5885c51726045b824af14c37ed84cf8d8b7a1d32fe0eb816ff692648b7db836b3d22c285dc9e51e5dcb30f91aba55d15fa82fd8ffa9ba90a1cef613da0bb9a9cd0de50fdaeeb3db1c71c0b8dc3ad32ddeca557684cdf0c8df118c0d11e00139b3d5f8877d64545be94a3848b92c24d792c1a2fe8422b222ca86422a54e3b79d197778845366dc6a77d75a6186a7420b7d26d996986679fa8706e13c657b8b9d0f777359ad52c2efa0ec9e95918568538405fa689ab8908731ff53c6111625570f0c2bc09b295e7d922fe668d0e7c3da31601fb9df1d1a79e7f24b752ca5a1ffff9f1460b013fae9989d839c8bb03b3705a926ecd7fca7fb20f62b8b621e1f239e50ac85e5d97245190692647d0544d6fa4c2bc9f5a265a9be32488066f958bad17117f1f56a68d3678c9a81d7d3c27fae23d17fa0bfcf26ff667481fab454a7510997e60156feea64288b788b4904a1a0005f3d72e8fc6d8863e2a05e4f1e6b9452caea19562cde0025fd627c59bf518927a95a3913760a578e50d487d19426763bc1d42ac29e4a0aa3cb11f73c2a4550d0cb6c081d9fc78a62881a4ec146382ce6de1fd2192776f415fa7beaeb1e1935a9b5c22047af93b6eb2c6271ad5e09172b8ca7d47dbc9895c3eab3dfa64fb5ef538219aab539998f4bd90beea79fdbc214ba364d340c363749e5dc9d718bac14e1a491f9ee45d195388f219bc271aaf05f34952b289ae8b416eddabb9212d2d55ce22ea15ff88f967c759d7599fe70d0ffc3fc47687140d0eee7b61e15fb744b411c6da0d8cacdb774e6594dc95d67ae9b212022a56497526914f18848a5f3ce00ebb3d50d552f1192ce84c173d108350eb82d5eb6defc0f72d03bec3f4099937f08b33f16a50db6db5ab09bbb12f50de536783514439b60c8af5824515ef796968af1b4ef27017a6af7daa14baefe1be4f4ae5b5fde383080e2111f99992d3691ed1977f921b1a7eb9d08e9d070f8c08122d04cd766b65581eb893a7648d131b1eecc6e77b7e9572174478b7ce313a267cc3e93e30cad7e06a75bd00b4267aeab3605ec12853a1560ba396583d8e225f5ada6588e1b8e9d20a14479c0b2a1cb27d4557e56c89ffe130a7f289e074e77bdd3977f0529e67232bc5392bf00d4c042868dd73218f8a937e496a18bba1231050e04971ad7a57c7327d6f177c04e090dd788b27cad489dde8f16898a8999f549330834c42392506fa57c871db9950f0b063d676b3b1254ae484c99e227381fb732aba19d493e29872273d826f9a1f2b7c2452c1b58386c60bda9ea5a403065b1f67c61623031376c9b64e5cffaa174fcb67f050d753dc441de8fcac061fdc94f173fab776d181aa853a50d95d8e9debbe17906a467d50ab3fb555966fbc367da5c01f560d42ac0155cfdefbd9105ab48c1c7dea881107ead34a63d9f69f3b752125c9049971ccc6369cd1ecd5e1f0ded4d7e9dc739a15e373589a447126dc3ea27b29480f7468c97fa87ba11162c1066c465380f64fee9f044bb963891c2408625a5a1f585e57f86cfb8aa17a08fd06440aaaa76fa638488a52465d6f45c0644ed2480c0f38a615eaf143b337c2b860a27156e5275f41946418f8f840a9f5ef04dc54b9b722fb01e7f4b57fc54097b736119a9e1b37ca482a9f3112dbb54bc8e65439964a57aba19a8967dcda413c02a673cabc3749c312c65f775bc770106d4d364029d202b4278ce3dc5456a8e6db018a6387b5e55bb448f765fa3b5df2eadbc9a9aec7abde7b4d78b03c7ec4181f969e1b4f19742a35fc5328c587ba31cb79a12139bedb4b02041ee2efb9089f8efdc1774f2f0faa629660168d4fc51e9c6e11ec0198527255dc6389d4bbdb898eecb5159af9a5fb2dd1f13681248c0685f71214577e16fb3e357479f67ce87f44684856f3a70d90acfce2e5996018b793ed76167eb8626437f617849c21b7ba1bd307f5a0ccfc6ece3abf9ade3309911d061796b50bec422cf60b9ed120c763c0a94eb5382ff9bda12cba6a3041d7c26b9023f6ca50593c5c8cb1fe9d339ecd05b930fe85b2d788bece9a7c404393e8a50015d4d8a10c519314748ecc5a76272d090f6cc3cf0309d118e39ea762073951e7dfa46c658e598252df6d26a05335cfd9521fe2c6416ecb773e45eeea39aff63c0228bc33ef2969563ad748903c3b76c4e01be18d2f1b8284c4e2d85e528979162d43010bacebec4824095aeb8a13d19d2c43d50e8009440ccf3f75985c5a2cf3ae263de99e81cc94b8d41a7153d42f43f47730883ef59f30aa6ef0ade9395772210d484553693106fe171086a216363282614d804126ec52fe59f3f51966898871581fc6cee13d9a2c1c0a8f8f4f5bdc74ac43d3f62c3507172511fa47e5b74cf6f4c63599a8ab8090d62229ca18ed010704515eb0034c263b3b4d86b7d1703892e2d7c0d67ed13e9b64b557b5e6e5b876fdc27b13d1d5c97c05e1c8ae22e6f6f237d2e06d58aa7af90aee5cd8b7195ea5e3099c26734f48639659fb9a0bc963c209a02eb294a044cde72b7b0921ea4afc89e7801e90e73d6370e9a2a06778b4b2c01a6be453f0cd3ae69790a3bcc274c895f34b96de658e1fb1a4b2f3ce1160bdc1c6c9fbda47876334918802972ad501bda20e71ab834992cad73f85f672f40343bcb175e0953cb8e574779779a3c535c3df61215fc2cb4c427d66146198618c382ddfe76407d60d6dcff349717cba914c252b7d9d87a2b07b6bfce3c68fe0cd949e0e8926e29a54012f9edf595c7f4cbff323a2de4ec091554791659c42e940be6b6277c5e5f1fb949360f0edd9279b4627c759f39648afe4dd7802a36dfa46be5645bb1247bf254767878db97ff4cb72078cfe8ec5686692badd2dd1991081aa69692abf9acb56113c6d2e3c8d84deb0252e3a1a44d3427e7546a26f1f57d236c1afb971d769a08a5ecf444a258ef00f89ab91778663653232a6c7ed974abce686022678a30e3bfb2f8577b56b1d36cabc3903e01d3f8d5c310ff8f94a7e1c5a101c6533387a90429be9bd29a88365b4ca73505f2596064faea98d938dcadc64935344393f9f41685551bb2007427b64601ec8a62d2c85658235bdf90983cc1e75b3ca1555b21b20a989137ff8294c8eff1e6f97bac53f1eb267f7be7108c919c75af99f75495fb88a7cdd182b424480f7c51081a6986f7c7e6d21f80ae6ebcf2a970d159dfc821e16377cd1c7de2cfbc0ae7617b1d39a59557451a42925ddae6c115015dcd9b6596f5e3057947b61541e61b7c1ff3d466faf2822e2e0e1b9a42ac1713ce41fc872c47fa2b94edb06489c2d5967ea8e2eaab35a2160e292585f7fb92a71832ddd5fe892755494126264330b4eb5e0ee9660621e0bc6d1df8efe164981f71ec7c4c87ae63c431879783e42ae94d288b9b29daba6c4056da20c03f430d92698ffb8fc2ec451f7ef86d6bbe8aa1bcbd9758d4ee8b471773811ff231141c4c2f8f41ae7a40298164418582b393fda91242f8d56b1f2cdf41e91909d3fa34bf003236e8c7e8601efb0186cc566699f8e7abea00ef898eafad1d5ed2c73c9efec51546fb03e77c69db4e1015048ea5f1da8aa6569bdda7fefedbb426b3c2942e18a839a5c1849eecb531b663fb758fb536a76762d3b4926b59178493a09cfc866ead5b5c17cbdc481325c604a8ec39e9c6603dbda3ac77ff1876c1154d7ba1cb99bdef75b10ab90ddb9ce5f002a7c5a1402769951be6c9b740d4b4503036075c31c3f834ad55a35add7a7b9d6fbfe9d0b4020d53f287936bd4be8aea4b47ca3c177e4f7b33048f7c8898ea7f892edcb3e50a2ab4e237d25d68f9b6f8114c90bcc2040917273097f927429ccd1756ca0647eceef914a5e30e69f926a626868896933a2de6ff39b3bc86b9da42c47be1fee66b5601cb00021f9e6a447d5c5d7cb4095cbd4a19427b5392b27bfa4044e74c7cdc1561427fd05333abc7ff0dda6ff25f7b0aa94fb3fc6fa9d65aa0403e62aa5ba8dbe669dbf712234e5a76e22bd285b2fa5beac5b79e209440a488035952b325cddd0d99d0d2e3359a09221f223eea8b11e63d11bc1670c002ef754369790e945eb848f1a02acaea098939e1b7ca756d4a1092d6f56c5f42a02718f7a63326ebff9b38728f038c84ca445c0082ebf6aa070c801adb106c42934a8ebd2ce0f33b69cc2b1368793428404465e441e1fdbafabaa321a8fd13fac7ee74c17cd99fcfec6e7d65f6ab657181dcc74c58bab3efaae599c4daee091a1da04b8af9fdf7cce8a8b05c8cbb4b21d732e0e24ce36066f5c11e88b6a40b7aea093b826cc8fe65530e61da7ed54295438fe173474705de88c9069fc3388c3e76f185ed81f814a236606285a5508282f57e4cda9800a40f69e00b394b82a4347e002fb048cb7f27309ba944e0d95e0cd5c616f2309924156ecba826dd8afb00b35f9d85b4c34d3df155d96f8db0f5aafe25ef6d25dbeb65c3f67ce7ce1299e239214a3d1f03dc9cc06f8b6814f352803de8460732318ef2688cf2adb325d436297bc026c4317e90f60eb2d85cfb64aa96480b4e35973df3b1da20c0e8becf9f0fd27a1644f70a4b81efa94354cb4ed8bfa33850b11ad50ec40a25e30c7e37ab6c93665422034f5a6201d8f06c89ebe9a47ab16c4aeba39a1e276b2b836b2e1b35e0185447a5a8942f57ec77190d95a8e14403e84bfb59d50f72a1a1f3cca17f5207fe4d7ef64de892642460547b7fb84b1303452330b829390c50a9c70972a220d00db0f990ff00c78c26551cf33bba68026cf6e322e6b715eb4efbaf9f2365f094cee3cad829cf2201516def493434f17ce9b9c2708f9e6e1f94531e270a13852db1166bd4b69987ef95de55d83144574e37d0999b2abfe36b14a7cb671fd79aa90f893795126af0003f48565641493c854151687a0b03692bb0d3307df8f85adb5867ee2f2450eb273269fec785aef6256e0ecf392379c88766410e0b8bc0e6b1325835453d3219bf91b3e079ccbf0fad7ad095ec8ffe190049d9e781b464d3639db9141a429bb1f7d1af900df4f8c761974125ac5d864e3fe90b8373b534a96961fe76408c3ffa979d8a289678919078aa7f0c491b7faa423b5e6cf71241654852bcaccf49bfd409247ac4c4b61d9105e5257d8b244745d02519711f9024f72b30c3ea2c5b8330b9aae00625b8ff25bf1398cd03c41a893d3b45277c3132c5513203c963f16f93c27b3392699a095990557df76a8e69b885541163b17c3927438421c40e6f8e98f18bb693c8e32371fb21a31893990a63b00820c11a6646e9df3f58bbcf4dbe6b0f720e35685602634cc9f4f4e77059f4873afd20809e3ecc38aea672580af34e81898328db14f25a9bd8ce707fe9df25a0362a24da3202043ad9651303598317375a9224ad2994349f0bb916ba37d387ac1bc4b326b0c1bb25b80ca8fa2494b0e99f0e5fffc3e70550b67c9473e854fd2687c5794d3d908dde804ea2f31bb896a98aaf1835bb5f9259d0a03dc39f1a3e46c04964145dd40a02e8c45574c8725bbd125510b02bdfd75d0c90864cbfd95644db0428244a1e38d3590779ad7c6c25d079b70c9d3e618207a5108a1f569625f58e59bb1c1f170ef57567abe28fca2c70537b54d06ec075ecc9408729fcbedeacb612dab93cb0faf4578aea62b04d3fddaed537b2dc894740d6fd5f357bd18a76bacb8307a0765ca576bd1a114c8e40273c05853b8309c456bb77187c671e839a578079a61af209482435847c51eda49c86e6130260c469f648b55cc50924f9748391c4209f44c988f9595489cb95f4889ed23b55e065e97a3df9fa173de3709c62ca2e4e13d2d847b5e91aa9193a4e43ccc8596a25beaac7474b63fa218340588e95c6c85a9569345bf74aa3c60de48c269d4f99f1ce490a65e32d43c992146722a061718beb1e379bc5bced3fdb7c3f268702a9500d124d44d99479383a6c154d9d14047e0a92accb0d2c95effaee4b91f4da2b4dee88d99944f4c569b61ba45bbabbbc2c0ccf6f0085bbb57a5faa0857f646ec448de36a8cee5072298ec9fe7c98760b9274d8b408586c8326e12fd037f63669aeba8d30a6cfcefaf20771c2b44e2659f95b21b35de6a8e2a57095ef51a59f62610aa4a0f3d839ae2f8be493b80bf5dbf3f311204c3bba90d1df04e5ed3cfb75b4887c1a3af27ede78c145c6b16ccb7b63f18779e2a354dc0c7d3aee233cc6ca01961a5970aa2fa1bf7e8c511d83d9c64d8252206e4709ee58d40ae734c602cf6408b9b5e2d203207cb1031944d112f668dab84291d7d0a05887d777b0a6b403c31b493aad20547946decb81053aad01950df0963b4487eac6531d94c2c964d971e8eb8375fb9f307bf45859eefda5c5b2e3a8e50fdf6ed4210ee94842a8a19c0b1176758ed3082fcd9bf10bd66439368b8d7f640081a8038c8c5cdb5bc07b724518f6b9efb4d353e774312b7ca06ca4b8a68ce02b14bed1263c2b37f0b40765d8572717ab4fec947f298944e0c98612c4bcd5b8455b1bf5666122ad0317df7fcfe1fe8fc95960af7d92bb074e989198e8a7d9a812ef90b925d29c01d62d9ffcccad2157ba01e26717ad60bd5796dcd82e5e0763c431d2c8704e0dcb7d4b697f18546a91bd23475b0492640d39267c84d28d44fb3d67f7825a7b7920215d6263884067e8f4170a5f2b2485155c9cc6ef23386a218b38fde64ce9fa97256f331798b7ddec033ac9716bb6d7cffa13d7b657bac32b14a8430ba17d3d95f1ce89893d4041496abec63b627a42c916670c72f62d92f158e30e267d0d05e8184d95a54f053dc40105661f5224022841e08a7adece8a753c6e06263bf6a7ba0ee48cdf8f8931134a5bb5d989d22702edd1b7be092155602bdbb6dad9058dd0b6b028d1a899b07c6c0ce1b2eff01304463cbfa689e40e4ba7a20fad3a14b41470bb25e6b3bfff4a21b0bb3e9283ff66c50f10096b82c7d900b4e5e72d442d787289c518189c990ee1e439ad60fd7537ff67de2e748104a64a0871908f019f209acf4dbed36fadb00b05f6aa6c8ad7eb614fa0e8eebd3ef9ced7cdcef677c3e6f9e8856383d49e55eff1b1d1577fd74ae23991b2f093625792117be6b96be724cfe43cb9b716820fd9c2caa8ce71fda1cd6930e9d2e74fd9ac5bdfbe48156cd5b018c2906ce7a4609901c8353358254c3cdfc00dcdfc5c578432c0fb1fdd480114256de8b221038e2621d51cd9f0fe87de47c91ae355cf6331b4cba5d69c857e7f431408e031d0c146064051759b8c9e1da295e899716615994410630858c0fe088797add343f4fd6bcdfa55a3c1a659cbebb3a1230dd2a1057e833f1e36ab6df570554927be87de2b741a0ea2e578cad9417847f6bf38c847d17c0538e48b9f96dcb34a58b85a2cfdaf591daa700360d54b7946fe2cae0babcf3726b86cba4fc0ce9c7c3f0a6f3f250797d87f64984d1bab131bdfbac4bd465855323400266f6e26fc71674b7b31ff3354c622266141066be305f4c0f8d875c95ae2cb21d0c27685440214996be006f637afbcb1d86a8b1c4ed0025b40ab7fe62daf28274fd25f09e9d50c42dbc051b78b3e32aa4ed1015dfaa0d2a18550bb589afaa7024a26b795e5027d87a0805fd8bd32f7e065fa0d0553e018db22fdb792d3c771dc02d7808235b9797a40796c07df1d082596e0eb21072d6e4f69183463eb037e15c56a9a7a59ff019e75f2afc328b62b62ad3991288a603dd91e27edb45a5ecaed7c042b37d77e895dae34301072b6dd5b480d628793a3deebfa8592cf7cb1422d1ee27a8eb76060988e6b1665bb4e85995b9b71d89d9250c629f464ed11fb1ddd3a2bccfd083a8a7a6b58ac21a424d96bae92897b677241c1cced4c20bfe4b155720f0f6f5a08d69bd0d46d1cf5e3924d5d97714c75745a2c78d671508bdcfea2fa348b7c433e49e6fb24d871175fd4435819317f8c0bfffab6f39b9564bd76881d77d8dddbdf2f15601ae15d983fe04ce17a45693a50f2948137eb4b9807c03ab8f4c0fa3faf63b6240640bfab46085e108706244c75947bcbdaac0b5da9773cbd6ee6d911699c77a27bf2dea51df3eb5238b381554caa18f8c7591b4a5733a9b2f644c2f610db31eae2a63981b69b7ae6cee0c32edae0f760d5070adb7446a030edecef174e42953ddbf6535d3cac3c5f3746df70fb7ee0d2cfd7dff08c0b6f64508eada1d7ed8f936d9b15fb93165c25c11ddefc18f7c00c552ab94e5ab490905aaffd45f19a8a150f05c3416c0c20f324971f74ec4a22447ea5b01c60e2978b70a8bfb8f7335ea2730170b9deb8c65adb13c8bf5473e5a25a55b368128a9c3d60bfe534fd90754e3059b112a05d933dc327b3893a3e61c3397139a08ee2d625effbe2f575ffe6df2d8f669dc0b5435318989dc084549338c68fe519e463a6d3b88ff0bef462714feb2bb0d1fcbfd9a9b9d20a181d5afb05f053bb8cec15626d5deb2b51f700314d903e8ac79d52691dc0979e88045ae322a7dcf594b4b1f52e00dbd7fac24990bbcffd0dbee91a63e464cf40cb77f04cfd6581853174577de315443c05513071319ab2109824eaa80438c666e023e576f68ba5e34717dbc76c835eb9434be3cb79a056b15c207291dba6494a8b6a27f3e287ac3a2056e9e5410c83a48a18f90711a69069b25dd3e396d25eacd1b65e9189d258d7e65d87b2ea10e96d32f96025aca3f8616abc9ebdbbb68dfe80e180f628b91f782a09af8f869ded5f9833ab62b1b9cd1cf5bb2c48a09ffa72a5a52096f0f73b5660a8096845c8bd019e507a6ebaf28705ea4b6c1cf1f0c780132566e6852489b3605a0b65ee5f7ec829682f5a17d6ef16832c8b362e3c7adfe37ce3137fe8714fe7f4f0ae5aea4a4ba27d237449caa5941ddf19652aa758d9ee69b72eec0b7b64147d62faf7f2a59f76ecffe7874743c8bc268d318da2031a55fdafc6cc4f35b7eb2fbc9d46a934dd96e407843cda7fcd84183f5a53f0bbcbfa605f309418a0ced51a40665ccfdf08f8f6644a87f503bc41bc51184cfa13eb04ac5439ace846a51e44b26b65f8b3d014b2c885b995d3e8e03c15969a7805365fc7eae5f1aaa301766321af1d171b93674ef5f0dbb27a8cf4a8d32c3568a50039625fef34cd8f2b712ade67555c4925f36aff20258365d63243243b6a51f08687f6231db82acee3071de37f7465f7adbdd95aca888d0e59f56228a758de68087edd9a40b8c6f75914fa2ee7f3bac3b24e7c04a9258cecc5bae4536a72c182171a74b28edf56555cd9b3d313e09ed52733305bccd41e4a23a52aa3d600ec130c9a4f104fce9d6f2479f8bb3a5c2b9bea7dcb79c79e4d7101fbac609f9d1446750182be5c999560f27d4a698b1dc1bc91422924cf43dbd4b7a61adc11ba8dc2bc97ee8cc04a6a2f2051a92cffedc59fe51a46991eb567215eb409b5541a6c12ea67ae98c15d44c175c5c99b1a28b312a6a26cdc149b626008d8379bf654fd6c9abf84ab2442e3284d8cde44564274fc7afd71475ccfcd96c8e85aa68f558e6eceb26365f7df075f86c0f0e2c13f15290f4e027816e1cf891b5d81a7badb817124990062300bafad605cc894db39c18d5d3ffde976911693b1d6021636fab683738e78cca1141c580fc164d882de109e2a7de2d06e5809aff795007a8e9b3f3280ef0413383ab3494632054d65f0a88c7c394e020de0cb2e600076764ef866a5b1e1bfac4231a4d50a57c17d41c32891a6a88503fd8810b82d21d9d4522208c742cb782391a364d1cbbeb136e2c2688d2484138c20e1ba7c6e274b348b7b346d68d698d382acfa932355a826c3ea08ac158a740f973352d4e8e3583e223c2ac34a741714c45c17a4adf278cfe54c4fd29dfad31fa7f943a1f54c4b83c2f09a6a7dd67eb85739011f09cbd1067c9056ffd61ad8bbe560f62ba8fb07606ff7410fd774001fb8ba4e2278fea389b36d8cf244b37ed9a7cdaa5d2eb0818f3305cb66268a993c4fcd70c28b0a1c641c3280b3ee9209c04254308507cbb849b9a008d74795475941520d58f3542a30da4101d55a09fb02e041660f8bd34b12baa57a3c8cd94c6e8a9d292ed5a49b6c0e8e8d8dac6b2230b2938edd3bf3979816c3248b36de8458baf824db0da5c16eb02410ff0893b882277c70239078694b51feb44313efc850301e83ce5268abb055a0ef473d5e8c2d50e24af728543c82182efaf6d19a645c92c286dd7be1ed7d43b46c37572c3f0e0ee196fdef9e0c5e877daa51d6329aa761069cd82669fc4081a550bf836391dbcb479ada3410b7c3c6ed796aab5037fcf80493737f3a11f388ceeb7c0fecbe206a17ca53af88e911c2d0804c214e39c6f649aa0a35f6a570a11b64f3d6b4eb97c807fd4a3e87a374b54ef2f761cb81581055690e8f217cb4e48f5351cd2ca0b5d2016efd56b546f875e22253f82a9b63901c4b2020a2353b72beb6db81ca55773ea68e305b5b37be75dddec5d8128dd04e88382acf467d1154532b58b58613c73cc6a93678e70cf5b0e21079f8efc071c4f4d2facc3dbf4e2b8c7e10225e1a0633e955f5436c5276e268b874e570f63bf9b28e30949b71feceb98b4992d2a19035c9b757081fd72b993c30161f0748f96f879d7d40d8ecb9a6c06a474268a44c63d694d690db8e9e09fcc498a36c3fa8de2aa98e6151d474b09cee385429bc9572b13500599e0251c19c9baa441afaf876c85d1eedc50e3ecfd973a4cd220f18b8b1182a2e0a51c7b3e5e747dad15d9abe83c4ff1ad84ef7361aff2f2fe54b6cb06174b6b1e5be5e73f1725658125d497bee6d29c5932b458794abde3805b6869dff8997ac99d756cab171bb20a64bd402926c0b5de2c8396e90691dd69d424b19ffc7facfb41dae5267abe5a8184384536d1fbaa615107c79ed0c397ecac4d89687bc4552694bb41d2cf005af36979eb56eccb7315f78ed129bab178f2c2a5dacf0d7ced20e2374f66bdf6fc8945af04afa0a67f65a5f1084214c4f4969c784a74bfffb119ccf564c64fedc0708f395dd6afe6f9682f1b04117e4f31dabb4d65edaeeb05632d5a25daa1e8cd72fbe70738b60a27db5a292afada6b6ef1d3a906a926c37cd9391b8cba51477e8e7c5fca71c5c1e88b936240223a330c2714cd1efa04a0bc7a34c2e5d11be1845d38478925337cee1b6597ce24fb372135d192cf1e1393486edd82d547e587d2bdaba900a59ce7a8ab8c820ff1aba34c519a4e9a7686c172a20c4b569ce27974fa8510272c9dd04492e0a5ac203323e0ce27195c1fc07eb668d17a030b96c118c2c51e4c5351d8ddf6eb615fd9a0be2557b46a27d976835ecaba8905d4cab1bd518e48b9ea12995012f50997306dca774a7f0398fe83202c294f92c336541e775656c3cf1064063e40dad87df805b7caeb0268a57d236b76f85a93f1c394dd13ecca715dbd0c7324108eefa28d6330378e3722085eb21b3726275a94fcfe3724f4de4f17861adfb470508b54ee91ee4c112302765fe0120662fc8413483971195ac4426d48c8cda504cdca8b32f552dbe1096953b8997a34098db081d844e2aebef1457381aab631108e15d4e314c25ed39d6a4c74078d7376a684de055691009e22ed2da48c36abaca59f0840ec52512e7471cb28801b32c18e7a7be4f39db0c936e2198479e09aa0720b056f72a5a6afea44603fc1a51ff3760ed081ec71b81d636c7b0bb7eef4c95fb9fd2b1417b206156a2e6ecc8bbcb02cd7bf640e91430c10557da3d5b4361328b57c01624e2817ad09ef2d98ea7dcd60782278aaa6ff431195caed9e8a20cfdbc09cf94928ceab6fff8e2fba14814b74c2561a200a6fc4423c07c9175081efbd6b194ac91ecb607c58834bbebaba6ca49a62b85d29da3dd0ea4cbd892a163930fa92574589dcb6082915939dc3d44d9bfe71c034f2e1624d4dc5a1790e03312b62613168f576c3db7e74dc70c693ed2b2f8c33e93897a035d86552bc5522828eb6c2d4fddbe2c18ad7d2a6bb276c3482a845c2fa1c433aa795e78e5ac05906ae9a37cf0c8e2bef53329f861e01a0af08148ab21a6f7280be5d95789cf844ecedda58161e48c44d76eb469979a5628264af8a63491b0ac5e59259d4f7dbab331503df6194db69148b08b5530b8995c66b826dbdbf9b1be9fb48405e6583d58d41b98f2277abe7fd5669abf02964ec3d3a721c55e5638e70b2dc22becb1d430dbf7f093ac5a3d0a90192904179939ceb329dbc459823fd8a7959fa777af3ddbcd8fb1fe5fc48a6f8d74ce3c30815656f0a5449e3b958256b9b27bdb8f4a7b9d172c8fdc073255f86565c5483d8b1dcc998bbdf1c80830a94d9e9ddcb1183bb089ea634505d2e15ab6473afae6635add5f917784982f8cf4b13cd83e4ee61834d786c657c7e4cfe7a02161ca05eafee21886f2ab96fbfb70f9c077304921cba019b3a2a4566b79cf49f0661e2ac19b8c40b1f1b1811432657c41ab3f7d1382944b0054f7c9254bd85a04909716b4688a73c38c906e3e7827545cdc5635ed03a9ce5605f2cfe1adcf816e152140e7066af4563ef844104f2fe2eba6f9b29f4f5be5fe566c2a195bd8ed7b936e53db66752a00122c3efadd6d49cb6290a987d02139398d802ee0367ad5421b66ae3f7c261dee53e26d9cedb8eeaa719cc2e76c845667c9b946240901f13e3981e294a9adfd1a6402346d6611fef4c2031a33f9682cc40fe4703ab048fffd8288389f0d1c9c0c8fcacaaf8df3e8c13f3ec227dacd8eac1b95bcbda68e40dc7d2d29a91cfeef240ea3bbba7aacdfdc10143db9dfdbb67744a3d0bdf641f8d0f0eee4952f96908291a5678e7ee559d8f0c706cba28fbfdff465673df413f14af363cbc3f2713f71f5aa82bb77339232fcfc08bbef392afa76c9cd0059bdf81c4b82f6bedec85c6a058393994c7d0a8ab16324bc07be5ac016f665ac9b045f7aebb4aec324ed6fa56ed475cd057a03e2133eaf00c3c31728dd8824339c937a03a79ff310b91ba1384405d81f435c04f72017f1b4dd0a0fcc65221395ff1322e2663df70a652340c9b676c0a304fe59a30d9ea7c9f9ab5024915ed0edd4da35f6789ea12d0bae3fcce150052d02859053fa71818e1f5bd04e151e0dd35d251312c7ec0bcf8672b356d015d2160b85fd8a11cfa51cc7aee5672f691003148a2347098405b2d138577e1b35275a281b3778427a2a91b405cd72f718326346ca4c4245dc8f685965094ac4e357f47a59999909fd9e1731e528d218e3604ee7a17cb82cbd6286aeb34b322b8e8a9d10a1c271f93e81c46a907950f1599d33668c25e32cb168a3f7e3c33147543ccf2834154cf5cec73f0529a8b858f17e84aeb6bb0c41f7402ed261bb657e22bc1aa4603a1150ba5a3f25e082fe921eacf3a57f372dda42bb0e8b56a13ec223aecf971f9b2b41a496d1809e38f72e386603c4f997966d716218d92b8840d17b8af23fece87b61eccc773e11dca1d3d0fce39cd95bb17cfded4c833fa653c0721b83c9e1935d2217bf10ad38e7ff3de655a2791e0ac9275fcdee9c6bd4a42d7d0013afe455bb705729931e6db67df1636aa6578babe89dbaa36341121116bfd62eaca1b9a733f60c37986f4d08eb5c27c981e9b74cc7fb34c6e6f98eff3eceb66c0738714a4daa4609b60532820376e9120e731a7fc46b08c20b374b64fd6381d512de7cc0bba5dd33aa4e8e2b870d307ddb9aecd8f498f8d4108836ab95e5b85ac8be16d0b369883f540a22f0e25daf53ef8a36703ec7186f017a0e616315df3e54a26306500d5b2980e9fa2169965271d2fa9c658522edb9a848b5b81949e6988bfada30050385e1804b0ef2196578c8effcc758e816d10e54cbd10794f74dd4b2970ee22668c1cd9a24a2fbfbc0cedf42a959ed0cc4347c654716473600883294bfe0f37b10db443e57d3b904779f4f56ff744e7cddb346b612d798dd4dce46e6a094fee2bfd914120a470b913b4d469299c6a90f8a4062c92f0dba60b72276025deae20644eafccdc47bb56d423705db0bdaad6c149dfbcd4d7c94a03fcd7feb21a5422360d733e55d3ee06f9f37627f074811927e27ef71d676b128174ff1a30e6f06d9bcf5e000037e989df17647779ef20e744a8a5184f3a5be5f016baed4db0bd8124eb99f4ae6194de61a5e31f23f16e0a8093ee867b64e0e48ff956fc38230a8f9e0c602875a4a526b0605b135486f482586e7af55cbc816d061dd3f995c2329f9c3380e0068f66158bf9befcb3d150d099686536f623ef1b2a511fef8737d51d4baf9ba3f249e164c5af1220216f6767bec19b8a13858dce8bacfdfe50203ddc9b08d739a56816f50736a19b71a0dd19779d47457ea2bbba799d4eaf9568ecbc8da5b9b8933515263426fb5794b8af0692b4153fbf99d93f346e17bec9575ddb43b9205d6380b078f88976cf75320a7fa21bad14a346c0ebfaa57c1681ca91dbbbc067b927492ba92d7a0c8ba71984f6ca868a3785c40fa9bd9a24034710554b64b0e39e6c03bfb1af689e639e39c4627859b2e1f4a7ecafbb36f4fa506f991a3b11e6fa7bec83d8a6204f834ba636d1673a10e03e3fb1300fdb49b6944aba8261334c2c5983c5a5136cbc3642b85a8f3d57d91a59a7410db4a8ca29c9347b01e4d5fcb84da8c0dd8eb542279b5d162a4fbbd3aa761551fc072e7392e67ec844a9f969686e26f76f5c8c38167b96d06a67c6d3efa2e714264524007997a0343fd56de25a6bc719af8efee62095ed1878a8da80ae58c499f0e197b07e9c075d1e26b23eba16c07e14059dcdc0ad98cd9845393bbd4d3d9013972550a12be4254d440ae5296f38f9666370a172977da75058e8da4fffc3e54c033e733964480b7bcfae735489a116bf38774d1c0fd18d9662752ccd736292ca571eb797cd1ac2a8d1f49663f4a09f2aad259dcac3f4206aa7e526d4da5bf3f5c19c32897008ca0416fac29b1ffd0256359609d74ff5200437c0576e1f781e6ae7664601ad3794ff528edb73a9ef9de6c3ae38fca786252f5c3120a88bfbea12b44b59582c23e34072eacbd6bb273608c47ddbe5a2bd987c0953aff5aae689026291f0dcbd9f38c4eb553da20ea89cc81931d4de9c0cfb2dc2f9b601c2b70fa49c78865f44e735c5f80f524ae4d7fad21f82ff0c02820e7c6c37cec88e249cab6b93f0ddb5627ebdec46ba4d9831a6dfd16aa7271421cc05d501d947a40f60db527cac75d2dc643e83b39d5a5aa86dd9b965b31deb12ed90df30d01dbfab075f4cc082cd48bafb380090129ec8eb9b1419e369d9cb6e3530e82930b66186bd95c998c27d5072d4f1c6e1384c74cfe024ad2a3bca220f955ad8124433c1d55b36e4a85774d14cc6e327478bfcea25aca0e535ba945bc1d86acc68e6a45470aa033a03831e69e652be20b16261f82446b6180ca1188cff995ad5787f8620461e4be0f843dbb832ce6a6460bfb36a58429938384b4b882f3b2ae5f6796720c80e33d1585d4615149c01ca51ef19f3732ab0de239ea604ee3129743a1a420c99aa9988726083f171f22d5a829b169d86a7e7b9a391b83c8956ed32c09b48af5a263a28ffb3c2e3852363b1cc0587481c992808e8c46296b8984029b640db29f50e4d92483a8777b0f6c88c2edf78a1da6bb023b527b432ed095b1ced429bef51c21ba31a9d616d6def7c861c9124ed7d63102012461d60e5ee5281f98370f892fb59ac11c2851a6824ef058c822ee6a03100281eab179dd563f488d4e9920f1c85e20dadc4f9c5b01abfd333213b6049ad900cbbeb826ee1e6e732566673bf8687e3de22fd5d4c4fc8f30f0cfc665761cef006527d956830bc58e0294ebf8bbc99bc2b81395c47ee73c4de2f6905ccdcb1b216a3f09720e91980b044723956bccdf7edc163df93c7e3af1705bb99393af0945441c528d9fb6c10489d143118e9f98f04775d3eae627d3f714acff684595c94dc21450791e671c6bc29f3026fab9b985e2452d72c38496ee51d11039c6eb4ee28c62b72027f20b426e300507eac0586ca97f778f2c82d79998d313cadd4df2c73bf5cb36a3aff2eb0dae92f3d4122ef3f19fb18085bd2d8945d420860826f0ca8d34e6357b42bc86e9f6d89af87b1a7a67c52f286ddef4bb2d3bc3852415e93685ddf5adf8675458729a8e4dbc8c9ef2a62517c366d5c9556b367d6ac5ac60df6a1cfbe2b39a2d4bd6d29f00582560f099dde6ef729911635cee4309399d3eb8f9838dbb2611bb7ad6c9aa1f690dab49f33eec04531471ad055cfde486ae4efe348855ff3ec9f8cf3288812f5fd9eb476fe7cbb6706a57a04b840879f4bac2efaab190e58963e0ad3cc7aa40eaf23568b920fc0ea4b0703db3f6b553d868ac1426d48ff3d289f5ad627ce131d554bcab19424ab2516f30219dd2c800c69086170f323a2b507ebb6cc75e94c2f56d5d784b0f54779b074d972c42f9c35c14ab2d019c8889b5393d6635d765751caa1409205a0f4d9d2c44bf4c4e76234369db0f534a08d5c92f86e201c3ac422e53856ece7e4271f027d3c0852b5f421943bb8296645bbc566b29f2b032f31ad2d7741f13ad09f7ee8d7d1094a3490b6c96536f50e9b7448e33ba7a6cd578395c084d198152539d715b0ac4f30bbc2af3a58e8b6bee66883fd65353a012ae46e1859d90a66464f5013403f7d14db5d9a3eabd92270145c5748310714debbc4a9b729631e7bb54d9ba9c3a3f16e02578626e150e87c246bb54609323e69cfc6f0a6e8ff02d2a8d32519d403176386ff75ca02cad7dbbee5a61188161c5a77d957b0a826ad87a5010ff25eef4c424ee1458c1802e61cad7c36d3d0225934b82b1de348dd57d13310e4bf6dde9f0b16d6479c5f0d75e792f93e5b745d827c40104177b7181737f970ae685ed5b61c2ad2a58f0407ff70338823f62fad1c09125192fb816e830ca3d2d199ec247a639e2075f7f9a22c4cfc654b5abd6e197dfcd9b1a71054ef52eb43d7ee7422facaf3672c86d081105a3c4179bc712ed2fac0bf8ef17ecf2504edf49fcac18fee5f14500c0bcfba2bdf1afafef7fed9ae8aea5cdc37e1ed273cc759c427a34fe1e35a08372b1c7825e3019b7003b2511ab16973290fe10f363f582033c0949dce6be4af3162a2485403927ad3b2582c0c1258ec5d139de497dc6e66634274ebcc9f93e263a82af117278147486b94c412d5f6f90c4edc427dd86d4aeaad7fe5dc65be65dd77d671b99bfac1fb913cf3f0872ceba6af8a43b9bea55fa08005851b442a5a0075a30a9eb59d1131392de78cc4f770cc7948622f296c325bd541f3b8cee4fe4517153ee8036fa72c54b4ec68ae2e93ff5d11488b9bf4ea16b155a29c40dac08e6d8fcf27cc5afdceccb763b68a8d6240a751ad7d3807a973663d5f731e4f9a14cfbbbccd8720e7c9451b551f211a592e5c80c7a71889f6353a19fc425f16693557c0467c97f49669c8eec241ce1f02a605a80ab4ba16858685d8b74ae1d98794fa1afdb065a26499d8000c0f6ee06ec7e42afd638ae54d66cb2af473ae829e5d10f785b76767e6923885a7976ae6a93966bf987bcb239b205f6e77d05b72365a4f480a6f822bef1da53665fd77a52d088315eed7496bceb97c5530b097789618c8bca145fb96990878e17b57240294685d805e7876bd9b38b35d45c5bf1cfc50b90bf2ec91b9366e17f617e17570d5ff898b9a7712261c379fa932c35cd5c7b5a56aad5ec686746b1f9be1c387551ee916a66e5d6bf77013de17b660c090fb4242b3dfc0a65a341c6fbaafb7e7bfda28d4ba1993c5b137a22d0ba1c77d1b704d81f0bef922a17889e72274d9c78494aa77c1e52c7677fa4b1d8448cc8009a4f89980b2db6532a96dd553ad65ead26e2640d3711640adcf9c69650319a3eef7ebdc71bd06ef455b3e9346ccb6989b57ba01f6cbefc8a9edbfa36d9ebb2aa640f9fc37b85ba6aa5c04af149bd1991cded7b7cdd269a400cca8e031e34fe3a986a6a074e160c413d57a4ffe4946add79572870d28d95b2c1ea5a44225f8578a2111b031d80351dd236650952a0f06e78722b6534cd3b0b2edf75932cf39c138897a3d2539d4cfc2d0486322aaf36ddbcb50c631106846215eb9085480cb8dbc96b3a55c15d4ccaad57f1970c3f1304eb4794671be1bbd90f6b42aac5d09303d47485a41c8f74bac21b6fd417b8c630e1c1058d2a5f4bfb089bb875b6f5ac3e8f7aae5a7a35aaa3733b2d7b70b9f4f82cc10013b639f253beac8e9a71533131d160aa2dd9735a0ad9a03f80c275ca558f4af1aa5dd320c5452ebeb7128adfdfe7313d259804a26fa283b178b91fe4d57ffc39dc63b84ea285c0e603f9b5864913f98418fc41bbf38f0702758666c3b8a91182ef2daf7045ba1d66cc48341818086d152fadbef457f62a26fa5e02e98e6a33d193c558f068f46ffa3366777d63706aeed8366eb2f240056a46fb50e389551c635b5961c73f95f7e8997eeba3d4663ed70f885d3b366c55cba01902e4ffb10a5d41bc40a0f6d501e37701eb7013fcc0e8bb77fb55018a60a7eafad3aec6f902cfa4e48a1e03412f235220c38f4eb63f50c43cf1f40e4220d60ce35ff3f15ae2aa886ad0b068380a7d8a52c84bd80e3895acf18a76804bc18c229df6633138419b730d0f8ee46ded5884d47ae847eee1eb9d18b038acf371a175f58c1b83a925e4fd2fb2c0c4683ad68c24bb294b388a5e63156c83109e800a793cb8242ff885b7f65623610805e08d67860efe5742bdd72eaf060c893fcab2efc7ba3309239ba70dadea6149f330af357ff37cba524157f493ac92abe078fd5670a0e5c55e032118805f8fda350a71aa5c46ab0f27e1dbc7d1a75c7e2012937d136b16c98eb4165ec3e8a476a5491125acb5b7197006ccf15d288d91b0d551e8124f2033cfbe49d48ccd99d76c94dc55c246a1fe5224e75c8f9c9ee2d56b7b48d2ff151befded6cd9595878f8c6df88834ea796ee6f10998a3997ed7e9e379cf3c0c4ad4f0e0f379bbf9cb86569ce98e5f20b7e2b8744fe53a540e0dda02d69d3c4bb5d58ad2067681644895f4e21080e0ad422449db58b7d8a809abaae138e445580e5aa60581d78e02e1c6e00498451c603d8a8e27c68c64b4966deddb928ecc1fa417e4e227542a639dfd6b1d89e7b9e1a5ef70a92951aafcff9a4ecec17ac97b4d7f168cb59ac5a80cce37460a1d239f55324a49004adc285baa0aa5504d39e0ffc9c34efb807149cfa4bd8df78008bb052a6ea2781d0d4a1e76733a2af09e17dfbca5e6ef67635f687ec93d551adc124e6aa0ed12b0b5b3e5736e8559a87d0fd8732b9053197689b8bcf871549d5653d0ce99bb636d3064ec90f6173179dfb418b3f8ead36da75bc4ef41fee3e6f11c01c5857f830f3ffdf80097ed733cd1e0f63762acd93d9a5fa8b969a507ba6c38418386e9f41f854cc183f3895970e4541842f4216a7a14a5dc4f8d9f6fb34bdb38e12f110c3c0a6406634167873dadc7ed15ec83c6ce7fe2297e9c700abd53fca6510970209ebc42ebb1c9b459a04601d389bd17b3d66925f279db0e8b0811b8169211ac138ce90c4824696515f2cb0766c78f2290c80513af465f591dbd54c52c013832f712c7d4fb2a138edd47de5be74abaabae6da8b8c7e696dec211aff97e30e2a0dae6edf27ee04c14863e2445b5d24f0f8b664dec1f16bff21183f8dd273368020d55d7ee37b7afac9dd3c62e34618f60d703123d03d66d165130cc52885e96d75af665f754c9682949ddf113b6ab719c7f70b9734da408ad28310845e9ae2df212365ceb2b20ba18ca8b56fc325120ac118428a3f2d14b0365e25172efc5621fdcd1e4f1624779b3ca20aa88e4fb7b373358e9c8480fc7a582bd8e3d13855da2a52d08a36306911bc9b1278f162194470fa7aafdb4ee5f07ff4b68938e9abb7e3cb639c0da287dea3b5c0ac8be6a32b9e50bbf359ed0ca77a72cd1de72f30d934f94cb7c46d5d00f4acb138aadf64e7f267a9b91c765156a60ee7a0dd9e95783eca07756d50eb0ff2f500897697f99b5c2a25a3e74b71e0b1fb95ba45d329173bfe3d87d17a65631ac1732f80833f5829d8a3be6f66e1a280f5b2fe45a002a929fe2eece440a8fed0c38deea9874f8cb46481eb18ee80f651f55f5fd9294807232b19e5919233e6db96cdddce6046cb569ba0ad5b3775bc36def70573c6e6837b0fe2f7a8a99d84750550479bc17d2f6980baab635252b784e33a8dfa1a2ad8d1257ce81d6bbe631b5f7adc3e0aadafc6203ca99cc190513e7e56773c9738976386c0befb077860ba8153447700cecdbd777dfe100da3ff49743bd51d21a2de2c8825a368dbbeb3ebf9f7c505edea212ebad7de289728513ae497da0fdde3f1ade0d931a4aeed96edf30683b310d4b1c5b1ade3f86b6571617d1be0093fe57fcc31b7395bf1229758a0661cf4b206ad308c062df2fbb88b6119a5a3313a3810453751950f19a4bb19f5bd6ab550236a4e85b0968edcec07814ae72cd6a16be27b23889abe7e4bfa66764b8c494e0188ff7a9fb52e343fbb2642ae8fc16b3827e89472c5971d99beb046cfaee49082ffbdd51008c668808e3179be35c6e9537bfef174e834f2b0867a4bc177d62b9cf582a7509a2f2310c55798b4fda7fe8b9889c569f858e43c5df060d8beb10befd934d6ca58785d1fc190ed65aa839c5d97c2950b3350dfea3da3d27599d1e37f556c3fa8ce382a2264eb18bf844cafeda2a6c4682bb74f706c9b55d84a80875a51c102618f18067a9af82fe608d6de3f7c932aee8f922546b87e72c96b239e62f137fe6c7f0a012f884a19a8ee217eddbc3edd02687c995dc2b4b191cddf21a6bcec91bbb2855295bd3edbbbf5db199270f10755f35c34b7d24667227c2b59f62ca138b3975b62d6de5499df714d326ef5930ff1c2b622803a60e25cc8041f7d4bde32e2e69cbb99f2116d37e6f38b93d0435f5c98bb84b386a3e30a5d9744db3bc04cda5fe6263b430e17f5e8a568c8dea14ec36b09d6279be0ea14f5ba794a62a799952d764f143748697e7accb225000f7af16eff18e38e2b733ea9e4b9f877de9a80a0db9e539cd34122ccd981469babae583f562ec7ab5add89c94ec6fe5cf3818489229e154b217e684245704b249337c78af32eb59b733660ee0d7698343291aaa22dff0a8969cfb09d4db7878a59f0256c0c2a8835402b0ed440745d7333a8f72c35b671ea08e151c99fbd4fb652961608be6e3b985d7176a231ba88c382a6707d4147df0ad82d3df91606bf06e747f3ecc3d2951be0c6bbb04781300f8c6ce71ae0e972faf4d8ab911a4b8fe69891c7ebf195ab52a8c8a9837d958c7c9f417e0d71bbc3d497fabd6851e224411a57a0edbaebee23ebfebbe7cea322629185d25c1a17353ce1adaa5691f34d249b688c416956aea94507a6fc3bab098f74a1c36170503fc830898584b7f3e2b0e95e2d6c4d8d8721bdbc3f1f519114d8f076aafa31fc19839f9ac67e0bd5ac9283c5862fa1d4b3494e09f0bd6335aa6a533e64cbd6101da2eb6040d2a1e5b99be8fabe78798a57f62a1b78be9f971bbfdb451714881ea4b4a17c8caa972de7ba97adbca81da37b2a9af6ac2762ebcd5eaf97da247d866c59f19e1dfa58bc8c3a26ca2d358bb20c4bb578e0591224bf4a21f530afcd43ef846d0efd57d79abbb3d83c5ad82d9c1bfd7376f2e3579804961a0d4f8951d58e88129f3f60e15421fb2e77069b278054038a14d1a768193bd58b35f5e7549066d33c28dd22880f89f762b25fba0be0ff9719c4629b9f9d26976c8d951fa5154b1a541dcbc1190a360abada8bc6590523022ab3cc1024ea01cf4c9288ce51c30b6a0f7474b1b54f47b545307e65e92e13deda0dccb52a312d9ba0d1aec48c26bced0b69dda462ae97d641cea1baa0c5210cd2d4c341142e8559520d0f507709a217d25f607fa137ae6965f77df2cb668a8aff3686e8a31ed7d32d5ea4be80ce92a8efea937c33c02aa1ab77b192da8559d6541c0ec7b1646eef740e03a32fd343ae4fca1112ee574b30ce8d29679fc4497e0cc90a9b0a61e7ca4906830e1aacdf4fd6acfffa723405cc24ee78622d898d4c10639a2ad4313acc2de713d64b37fcfee907fb0742ddcf7e399a5fdc1e437a638e16d576e8e4d39eb75cc9aeedcc298a57a8999b2196a4957de7173547af9f33024774e3106b492d728a31f583526ed82d00a6f6f507109fa4d8245a1fb5eb3d1a877905404bd5a44aadeca8dfc5fc23fbc85aecc17bf642c1b8332332778764b16792b42a76de7a30ec63f923cb9e02314b71534f1a77c2b538edee05e06dcf6f98bae6c7ecdc5a0e189430e31e7618c4669289cb86ee43bb95152e527b11ac354ceb05b09a0307079ea4071e0c636c2bfddaddcb76126a4ecb37a8865647bf4f79349c85b859df471d5c5a188d9a120c4232f1320523d776369a65710bfdd324b3d96c978bb31b079a9033ec1d2bb8bf8d87e179b661b2f04b10aee6bcf30e855823a11379a4887daca516c7503ef36135d2d00e7ed241768df3d4dfd37fbee2519d837c08bf0526856a83b17ef7dbb6e7713b7adc2b1861077bec5c33ed790eda79a19fdb36b43bf0b2794aee2f87e79cacb9d0a068feb184b6a6f7636f1d472e4ad4281b1b112fcfa90b7a5f7c8693b36344270727da42f910732c8278c1eaa9bc26bc7e2eb06581dc9517586a9ed6b78f122e04cb1abdfd6bd5df49e7d1b961d8f06d162f9c452c35d1992af2a5cd2ede983a6065411758598d31508ad02c7324cda7a80edf253aef9ff3d4b2f8dea55c8520cf6014606ff07be0a139b22135237b018cc8eaaeebeeff21e4370d507df7d1bb1284a356c6660d9e62dd8bf624610102af7d6bb305cb62bbd12f84c708eba0c7f36333033d35a4c36438843a9d59d0c3aaa75bfa71b67104beea6652a4d780c6b28b5a7ce099110938fe7b9654327203c254bf905bd42a458d9afd1767f70dc72fa3db799cf05eb4e90c2a044bafc18f8f6f10a913f278854c91aba3012a24e8bfc2a7f6e999bf433c3fa05bdc1eb1557583176c4b21e8bfcc943458e56d289705a524fdea29bb29d2d05f6c2e5cb92a3c08aefd166cfca1ffc586dfbd9065e8a5e7da1547330bf6c676d3ae99ff4840e18ad80e94c0b645431df2609a509a95698e9e3ae75eb0197344e688c62c4870b86027b73aa41b382d92ed7aaf1ecca0bebc413138e4178568edc3ee15f1b195639243aa6bd092568f1f21a3c767f2a65adb5270f89088e385bdb550048dfe5b1af61b621959d9673a3a9dc08d8dcc9cb6f544a4bd6fe0590fb251c49c27926b8f33be77a275b469d5627bb51b5ddea4cb2aee4584042720b3e2826b6d7560b44ffe9f5e0aa44541cf915c006fca1c310d0c278683ad93c724665ccfcdc683950f1d73f464880d21b6f6d66b2ef0b4343aa064cf0eb2a40ca6ef21992aca356570e2129b788d865d12f00f14e5643e5a028e2e18d5982ef6731f90aef2980a689921cbfc8463b769745f01000c13398197a3346ace9910fabb8371bae187db66935ce2a498139efec1736dceaca0ab03b1cca27b90aecfe69c77e245c4b9a1aa2de71f39b278b907ca01d14a675bdeb5814ebc2f2ef898e4d4b338d160fdd392674f4106cdb89ce8deec5bbfc7f81899771cf9b1831456a9f10d0c65082cf2af0d979ce9daeb2428126a1fefcb0536b61232209899861114dbd631c5b36fe9fed33d87caa1728ac3a7df9668d96704be36b858e9592015f216f0ed1841479e4ed3a1bf5cfb131809a0969640224dd008eba0d071880aca27617858ef30057e8a2fd00ebbde1b70a69a860226ef2e0d3cb86c29f92a5cf48e3f493238a1e305d07b77b0fab22c91e5599a2aea4a184e25bd721a2648f3a13a359959278e8a2e2bb7b3103fc921857e8edc76f2efe1a95057f9b0ede8aa1e1be43fd6f4f8fcd422d60fd18e6527be6925dbaeba21db32296bb14073c431c0a352ad090b028d8be95616ee8b76a6bf830943ade2598a6255ad06409d8a8a741a4c82909f7496a6b2bcc47b0b13988a1ab9a5c9f006310408569d9f91308a3143ba1b47a7097319d0d11ff8897e11260978b07da91954fd03912b3fdcc9c53efed6233b301ab5e65c3fe3f6767be702cf25f76920d8f86b522cba7255ffe60b63560fd9a5076271e5d1766eedcbcad196342ba7cc7881d24d1db5de8837756efd8c87a73cded44078b4f0813ad4df6859d8136a3019e3e8a504df26c95bc25798167a865355b73f23ada6b8da3c61ddbc9ec215d79b75984a21877a5007aa0d4203a9960682ff5ff8ec4081c0c3e19df151f07952c96a0e114f87039f0e301fd645af347ac8c0e6b3f0e109611508494ce01485f116e8cb8a3f655407ac763d0bf516e72b70b8866b99ae5cdfcc81baba59698e0b91e568bd94c14ccda9c4708c3225a781c6f31098dcf9c437de2428004ee7d841e1d7f7cdfd68d4385c110c2d2071652f111584afcf482a7659d7eaf8e07d583088f4993af73158d1650879770259ac6cbdf540ebd75942c86c4f832363d4dbbd6ed3b109be9f40872035747a134ee296d8dfd4240eb05ab8e50011483c3ead196c3a0d19680e75b933191ed2e78b16bb79a310c107cbc92223888abf0bb84afacba09c8ff5e9e09df312accc9259375c55f51001772d3ad8832a672825046438245c77ac9d93fdffb7179a349cadad94008c174e21619b3a0961363f251309af998729c4855e12d7f13b99a9116e1d14ee96bda31d491a8084bade71adc95459b9164af0b0812d5f52b8db8d8f0958cae0f3d2a654ff1159caff85c7e969d11bb603fba73ed521d14a877eb589cf6cce23ca6619cb62407b78399210e41c40b0d8c630cff79966216625fa2a6479cd880cb1d0f9abec8dee60fda36935f59d964df7912782fc58e9c3212f5325830b6fe1b9aeebae0b1f8f2442a715a00005e996deb3a7a033e648aa2c15cba57eebb9a3c1b969440641c67159a3806cd31b2c6a269eafea65198b66b7efca17e2a6e367821320d419dbf090a60d9a7ceb76968b76580e421c1bd7225c2798574c7ad3e593052fe38c918e8f458648290312a0689986ba1e149ff3551ea647706c136fb7652c5b4e78d01e2b17e1f199794916cfa7b4e954e13aaf47ab531b640a56edf149586df413da9df1675866b73a76cac82cf33aa374288ee47c8bfd78f1483b63488b9bfef65171b9103db8014853d5a7f15d337e86a0bfe1d2a73ad4b44d8c43dc2b6ab5d447e27709245a55b1f12c83317e55a881247b284c8dc62547ec738c45b2837904c5da08ab185fa61b8aa331c5d88327c39bbbd80f2f29838a1ad844d71369205a473aabb91323e5067f02261b9b5b5d2ceee83f1dcd97fb19e497c27a5c3f1cda682b0b3898be72398bb68c4bcc4127937dacf671e3c3120fa6a4f899bb912ad61e005ba93d8fe3e8bea8b563e00cbd3cb21fd033533cd1d4ff0bb3e7e652a8718da5848cc5a502ad4c78aa0da4afc9258201ea900c01b1eca15110f79e4d593c0e61edcf8ccdc83d9c034b36fd38a139ec1e83943d3b49aaf13deea3fa0dad186a964f5fb73a9ad576c94baa0d91c63d12c74a327e6f03ad10c66ac84dbc9fe47c4abfd61bf5173dee0234955821a091b3f1131b82224f31a4d33e0814ed9e5177ac0bcd779fc86505bc58b38bc230b17d6c703661ce62309d8639c74d38231bb21b114af8996686635bafc3934ae3f57ea428f841868582f4789e61d23bd0b2e6851f9604175042b2c12f90b5abde5e07935adcce61b61b1f8358943a1dfc02063f3fa0440c2187ff64cd1a474e6a4a942822fda492d2ec98d91832d39834972734047d9e1523b952b288bc1c6128d204db0d8acef8ffb45b98e6e2a4af217bbf75bb6c140cd2b7579d38f5fc3b169a446764929faa316065e9c4c09a4f9c5c6ceb955c1c43cf87b2b05ef43524dc00cac66c19617b3c383fdeb39a1932c4812aa52e58544785cd600a9b47424b21e1ec40688222bc88f4476a75c4bffed1b513020e7dbb5fbae0a53230cbb181ef1196ada725c85a3a96712b0456393d07de9ef0a34336e17a06e8c62912ab026f52ca82e44b7accdb21de6c0abcafe1f167621b48426f3960aafee383d92924982fc21ad8d0db60ad82e7e0e0c673fa5b1463ac5ffec5a41174ba9b8cf0b23594d224f0259192db0e671debd44a1fef78cdb4eafaae43cd5fe17408c7870243700ab852018fb8c9f8255d0ccaee7fdee706d45048d103262c8ba4185c2e06d8ffb96d4e945b848e7965c8145962893015f65d8d37196e5217c2f4edb743faf84dc59ae4aafb8634c999a71d7305b35acd4e368b67540b53265476dd531b24581ec5d630f94469a3e3f3ab22f5cf9182abd3aa16ffbfde1d52625b5d71727209e757d6cfead141af9d0f973aa7e7edc15016fe752345e50139cc0400f8fcbb351128b8501b4b4cad15da9e537deeb44c343bd9fd3241ad9e4b2647636bb91005973cb97671e2026f9b2b0628ea2470a64c6133febf08a294bb6319e2bbeb2a50cc3767489c832a12c1c86f1038119b44999942d3f472d34eec49bc85315270694c1395f5b8b2da41da43a12a9c1f085d63b167930f525312b84e80404e1317da8f1b368b51332138fc0eedc7ee6db7bef8ba4573f09b92eb279b5e76ad2d2a2dab1fa985c06cc666b145770e2bef156016efc796c6cd13115d87161b4d151a08bea17ea16fb655455383eb0871acbb9eae6122e82867de6eaf4e1e4612bba940c0d851254f7ce06754801549da005555d798b516f546fe066119bdd10395c09967cb61f35d8bbe6834c1245f488c123887843141e537b6b89988a7629074976091e8ee0fc8a45f3586d774d441623b81caac88a70c41eec487870b02f6ed9d6aeb7e61f330a66aa77514916e8b9d6970102dc104d1ff5cf56c55fc8b073274e60fe0aaf04d5808163e83576aaba85a8437af67be4ee410e626b3fee068c92dbd5a93c40aafdd7edb962fe0f7f1163ac180ac21d9c006a38f9454c4b6d833e1f03ae2f11e0fa12fd5413f84040f0a4ce04879d964583791a6ea095581e6a912eb9c38c65b81fbe7df87b8f5fcc0f014075cb1a788ea59ceb5cc57e8576dcb678febe70d152fccbb74bd6be491c7438e361d67fb7d154a50eb9f83f2e55651dbbcecdec5342f10db5210099432dce8a09c8b748f0b4f88c6281f162e23586f905359e8441aceebc1952d0c325d8043c3f1006a3763b6be9227eaa49fbbb25c1d0f196b1fe69aff48ca47ff8dbefb61628b148f33939f87a58aa2ba582aac2af1e1fc25f8ab7bf36b190ff853341bae76ba13c4e774fe2a3d92ac0006982ce44b384c56fd83846e5acd4cecbf94db4feb26a17ff3bddc6e9daf4e6350c4100c2568e4836fc5fd5ca42241ac06addeab3b2eff504b88d3d760f862ef20df944b02a1674fd227e82917a72bd6defbb53dc49377490606e3b995950163d7a3f315a0e75cc7f5e091f4ad99708712c44bc58adce038ae2b614430bbb02ec3da77b4f138b826d3fe1b7e82957007c608b9a88a494f60de5ac738ab6db4a2bedc415e101b27ced3f9c6dc5d50233d5124bbbd0d5ff5be69b4d3e298e4869fad974eea8edcbc417fe27501ccd441ed511e2881b2332bf192aa72ffe55a663ad7a5d45ffd9dfbc774646278effca916ac1061955166b8c5dd40bdd8ce3d38e6a20e8bc866ef6778eeeb0f89e64da7095b90488ee5dab649b0389fa772ed5efaefd29059ebb28d9517feeab35940ab3ecb49f695d599bee73174cf50af1df9bc97c770ff00e13a7a8af21631eefab8a18cff5409bb506c4b608df65b4d82ba45de69b37e7d71d96f0ae5dff8b579a255813fb01a4197ff3eddb666f8646684ce357efb4319c4e687a3f49ce8e797e93fd5a6898fae2f72dd1e34ddcb79ff984250ac5f242fc92a50aa11a8ea1a3bffaec7b375122f26c20d1d303ac202e60e4c5e7eb24d0c7b71b584b36cc1f2fa86b1fc706cd2487e6a98fa2bdd0c1906aa5b5733b8a58227e499278fa21c8787e4f24d7fdd20f2e6c96633c5f0f3abc1582bdff665498b78014d87f81fa416994a79cae0df573bbb847d605f94e538b3c9df93291191300dbadbfff645b928d8f0ebd26a677e558c13c282e832874df780f58e059099095c455cfd8cba1a6bf6bb4d1ad3a587ea161b9ccd1c0322d51d8151e2d60dc9b9792c205f84c44ce5efa5bb555309f5ccebee7e7ec7459b07046536207739a0320d14b52f170713f18e0b65b320f6320f333add41d538a5296ce0f91ece9e05ac7669e196adcd18f3f535b480811046f4ad914a23756250e4317e3e9ffdf477839f4aab5536dcc3cb71cf5174b67307192f8a194a466e90111b9c1ff704be2f9d9e1b3f1f5d46925699d41f46bd23255790015a0987a89ef3353f73a322b9aba78cddc8ec9785c0e4fdadc217864e6cb19c92df1139ab1bd897f3155ff445760164a61c022a4c0210bd1e37407896b88873bbe66b57006f53a0862e1b32d74d1b823a5b1ab54e0681097f6d77aac63c66baef0105d579545eb00e9c0f19502b84f99a4fdae2ba5545b0533c78a1c0ac1b189fdb89eff3d007aa529ac1715c505a93ee735324e6a39baf256d625fcf93b4303ac56042bda9b522067ae87ec916b7578fc5ce03d8fcfa53e572a9f64d2f8d406e29b20184b314d9a88a73d7d07e15cc4b46dc4f483b3a92e5ffb2c0e3343c39a3768718f1f001f362ecab5691822233fbfd3d3cd05e45ce05918b719bd68fe53fa5512ba38ea5ad95220239efa2ddc1a0fef4804ec46ead1dd63f5d5dc3807ab4d2b3f2caff501e59003f6b871c530f77095cdd3312229c39050de992288fb431d6aa6cd3ccba33f02a3b28d42f1b24d048f7583e3a44571e06a650edab1b27b66c48b899b3b0f539e8417bcda7d4264e11989e5325cf9ee3acf89816012eacbf6a0baf09bb692dfeafe9395dc78817710631f163fbe539bc7afb41c748a81d81c98483732d2ccc6cebc0ecb4cb4580f1b1389820aa212f9ffd0671857fec737f2fb27385bcb0c30583dfc9c944a8cafecc08a83b1c48ae86d0d3c472bd9d747d44c8a6886fd42a85156c587681360566c7867143345200643d22f925b8703a35ac112e5246b811f94ae7da6e82f4c7b343abb7004284f2f73a2454042f951059ac4d802193c0ce61d41ea45fd82c17f137d25a337d643707a9272237c240bb5ca763a0e0538fa0a19ded7610732fec38aa8c34e349a03dcfccbdc04828154c079277f21e34f65be25a9c1067a2bf2d156977b3de1262511fd0b6aea328fdda144df493de3122b996f99c7d1d69b3350271d167da40d196d7c259e0ff34d9c1ebfd9db0c48383dec4efbf408d57603af117c2915cf460230f67cc9abe4c0996e8b022700de1b827979edd60530f361c1f5eed39fe0af1e134d8c87df8873ce02dd7eb0a5b338453810e462ecb60c33b4ff20464f8e88bf1371628d63c8f20e7a9624436eedb337072a272de8bc027315afb21d2aa0f4d174391ec8d2fc4e0897f3fd7144ead0006ed551ef69f6d87add4eb88f88867cf738ad78cba9149c4c4938c9eaa1717b5ed0edd35e1f25d354ac963c631c018b2e973a39905555766f1b2e79980c4fc1d5b48a6f539fb10021ad41b9bb0d50f20a2c2cbd82eb8f78329851b695259255f30042be3d0477ae89d1c3a1b3f62e667ee90078e164d6c4c1787159efb3a50c1c4df0abedee91ef4757ead9c6c748fd30072a6d6b77e07f00ae29f136559361edb13cf6a8abf91cb8c920380ddfeab5697518b85e655851e5961440e5bd14f22db197b39173074e7ef1470b45dc7ced86947106c75e39e9e6f5c4be8cb386014e1c07c85c04d5e63a648894adfba9ea0633b9181c4e427778779b15dc2a6df3771aab72580889054fa64e86b10138542014bd44302a413096db52a37033fbd530b08ac0c2083d14b110ab8b61013fb6ea8094f46e27a4ce6114aefb789bfcd2886ae01770e4253ed1eca3bebe87d40117a614246b624f0dcfeb0b64277592bedb0fd2acc1040df18d78a431d5f5430938c030e8bddd2e2f6002c458f4e76e8e2178380deccaf56138c41769a6139d079b58dbe434ed5d79f2381906b1f79fdeceeede998defff05a99c6adde325b915b014a4d2506806b49ad73dd1692b846a45c06b0395ce341864f3237a7910d6b502da7b00143e4bad91035ed0183e3795d4d4f5d377d9f219ce767f22e84f8e4bc248bfcf2044abb53056e54c2843a0e5497b25e5b8a9174b704cfa2870d3439edacee535285b4a21fea63c44c5e84d8411c5a0e8be6dde364d1f8ed50b020b5b9cd5f93ca84278cbc95a0dec01c278c1e6156edffaa9a52445f4eae73974c292f5cb4c81fab59d8fd9c9af29c8c2d68d14c9e9a45e8874a58a76dc0d982c4b373a0fb0b5b2ac71cf258fca179c5766ff450ee6602330250c27ae2b6c4d59c4a27cf4d9204dd8f9f0a5d250842ec3fad0e65f8e14e0df8eef8e52ba1d45e8440f767484192db962dbace0fd72bfab1ee01335b214f0c3e7aa462b49ac3878cc1fff3b418febe42c7d55a024985002d5af1bd12c8729c3dbdd9630579b8a700c561823f583f5578647ffba29e2a7addbe48e523ae8e3bb82ea505ecbddf049399b824c6b8b7aece7aeda8647ed21a356cae063ac884eeb7578a36aa75bef514bbae76f7651ab5038ac85064b8c545735ce972f1b091779c1f3fed2d5722273f5e59210a5124816c73db88fd14681b037020e7a61e45f6154090af1417359cc1f2fb9a2a3207fb56be300eb2ed5d7e4329dc102ede40637de2ea609cd228120e31052e105611b9df52391fe8ba888ee1979358faea93b78bf1904885f385e69d9e47fd656cd02aae3061a56fe62a77f58946141bf27666fce45c8d649e11717176c8858fdf304a00a99b8195158dd9f428fb31b23245dda37713f89643f92c6474b5dfdb875f97d6b6df245f817ec5db6329fd46abdecd1af20a3c6e3e598783889b4c639872ec7fb17c2362fddff3e90e6be5b59e1acab7c1a6e299e5cd9939014b1089b74271c8bb1b3d7931bd2553e3984b21bd427d0a2e9c0849ba1ad3b9a3b1b4d5819abbc4257110ba8f99b2b915e78fa13ae50bf9d5dd6411ca5b6c5c1312935a96822cd74ac1f1a83d2d8e4e4aa0cdbb2da49bd9f098847eecc4658e390d79b0fe7467992526a40a5b3d84be019fba05c987be146c3e29dd06f9cfb94d3d17a492e214e297520a44fe022ab52c636b9e17bfa811328cb3fdb5aeca75adaea53c66d5765b941814dfb50a8a12c766c69a4eb3d35b115b2cc5c4e3c1a196a252136e3cb3b0f6758ef892cc65a2b0e13e81fa326e4502f590c64800d7a2bab4c0dc6688b4d8d9d8a92935418d490180c36273455a6e75ca7763718d71937a81c7725e40bd17a1bb276c4da1b1b2f43d45bdc81d06223488d3151b350dc37d2fa007cd5ba2bfe1ecbb99684a1ac1fe043ec1241fc6e4be1f93612e28c08477d3eaf0fcedbf9e268f098d34e1060bb66dfee8a81dfa510dcde9443a9e3964d62095778f2b6c3acbe275c30e67788caeeb793331fbbb1852e45f9a801ad402a1cb0dfe37d17bac0693e3f0b2f733570b7db526f50f081159371fc5b56cbdcd2abb2181d3b1a14a2b6b5e9c4bedabd06a35659251a3727530a19db630906d39ff44426bd0f4ce85576bf47736047fefeb9c26546db2490eb56a59201ef33b03f3e67c62d6e189b047e4ad6b29264f5d6a168764dc002e0d67f899174d03525c8b68ef0e8e1873cd8281fb42b0713a8672bf0ea2e4ff459244fa66d90e9c0faf8ecdd91b0874e6fe8d10b0af8265b771dc8a0fb1ade6d1a61d6be52586af9c30c54ed674f902ab3bd59219c798a2f52290f32a87219fb18a7e7fc1af9f9dc5962c6233cd2c3922c97a6ff955480ff6c5c3a2c805080552cd7988543e72e7d69e1ff9e010ff9b443272132e4358c19692ba6d8e610e6ca0a5ec61d2f9a150a9f3b1eac97bd9fc4b4ec379cacc3e4dd154957c2b457f3f380298fde685aafac371327d0325c3899eba6d9f5b796f3c0356471c6582ba3ba5820d5f9d8dc7031049f8360ae97d99cc4a5fc57de63d81df1d6c0b4dadfc5b0aa84c28e1df1c282269b7eab48f6ac0a0dde1ad9c88ce4d8e081318061b67eb693253f8e795d81f31335c8b08b116d7d5cbdb0399a2720d2da9f57ff1e48c3f0882a7baf0b1f7e59a628f56964c2f0cd21b1bea0502dc527ea1ae73cc30de20fc48f6a743fa9fdf74573fda2aa409941fd354a68f2e6c1481dce3c58d996fae58120433eaa6b363a76d9bc629b5de208c20dddf9d7e139d7132bd3f5af4e7d4d0dd90172c6d9d73d4ffa73e307afd90db9eb04bba4ab015b76edd03faffeb55fd01fe4ac3e6c802daed3451b3bb79f12ff7fd009c15626c4c1e178763e983dfbe531ed08bb97456b2669bbd4d7d3ea1f184c5749675065bd1048b5109b32849ae57465716281308bfdb6415731048343121430fe9561b1cecc06956c43934e7ae31c5607824dbd1dbc39a79fe065c99ed110fbfa78ccb14f71b4cb0fd7093210dfba10960c415d4a1d1aa028989c2dc55f41d79c1b583f2aca7a2d788ee21cd119d5a617e492f339677c46437838b46a585aea1776c4ea6c58f9347cac34cd4710a06e491fb65a51768994ff65947862cddbddd3279175adc6977f3b8b5c567b0f4c8550bd1adc3b0587eba4269427ed3bc75dd87039563b972c509f2603a1a5a020496e79debcc5fbbb8eba412082576d489b493c08382276770d6b462fe83945ccddc4b0abae86ceec25a0eb3be0e85c65cdf44d6f79fcd8b1c0dca97e3c3b3de4a82b8c105a5c39f33eb67a17a8217d72abece45cac95d66398ddd64fffe2518dd613e0ecdcb4de53c7162990da49f699f3356563195d60be66c26e576a97deabd67c743147a995bb96dd2424874fb83de583daa638a847f7219c2ad6083292c6daf8a60f1de870fde100318055f5795dc704666c3ac5b8866218e1663996a2fc5ac198e4d86fc881c6b95872fc50ff72623ee9d780dd15b1e9f13726b0976c0d91db5a9f6519d015c47c773bcb99416883fa7fdc21a85b7b16f1e2c7f630ba74fe4cca1da4f284b2408297ef234752647b439ba469ec7903707c9207e509290ce55f0e00e968fb2002df68d3fb7e132da070cfbe54d4493922b9f3c52d4e6b77ccf7eabe7e435859b52c536b5bd41fc5ca42a72c170f0c20793b640cd2d35cdefef558651f6efe186ac2e33ee1557bbed6100e0998c3981367473b24ab91261d0bae162a7c93bb73157d9a293fece773270423dcf152ab0703a1cae8e565ea9f466a224aba87fd120f185770ba08f7fb206587daf1eaf35a07ed787d7f2cb194460051f1f3825a6d9215e9b8ada33232abf7793e9ae8d8a251a1979bcc2595fb657572b2b12bf67f4137846f048bf7a3b56751a1a40a12c86285d6bdf4ac626244b3b60c77718d7a9d861b1cc200db87afc527bcf97387e7e2c27689723e29c6454c44c03837335e90ede4a77ba9b5270f13c93e377e1eae1a869ff797ce762a10503340decd07c6e65e8799dacaad4ecdde367c315c5e51782e76eb067037f30f305e64c43e75f0cf8eb5dc1cdada5de6f152846e8c16da0f0fdc13364a73f3f1b3ba993d66baa65f3b37c0945a5ca3dd0b83e2a91b713114bff331f3df64702afe2c340bdececf0f05a373250cfe7035af5fa14fb71a4462facf1fdea5a10d72a00631e8b7e95239d74a74cb69c338f8fdbf6304906a9af711ee3ce8e84eb442c0a3ad0008356d9fe01c071278f4a633a6b45b1e0cb4f775ec5d38db049d0c5a4bd891753f78c5e41b7b139de3854a77de43a8284a2ceea296b98ad1ea020e3e3c1f72da56c35711684b71a16ff6dd5a72f82a61730dd8e8634e54bbf7f37fb4eebd79b9c864ca1231c20267b4fbabf4de95363adee151d69e19bedb1a0a0247844d410d5cb4dc37a8a9c0cd2d98dc637f8390dc0021259cc97a6e4a4cde57c7585cd2c8be7c67b48c2736c69974b047c9c01ea033888d936ebd1c73530942c78619bd4ff00dd6208443c7d5a696d1469974449443d9e6b380dcd096dd06231e7c3c11f97b4216fa02b08396f2cee9898f695ffdd4e81b1c4c21e746e4f40b679e9a3f938301bd1fc59735365878a03d7c0911cf9526a38ef67f81eb63699280ff1c66de99078455d671d2f68e62fa14dca9fd37400970f08fd3aa4162d8fd0f22084c106d0055c42a1e72ab1802d8c1643b75126d0804ccb25b12d74444f0f8cdc7604f413bcd78c7cc7641803ff77fa1ae0873360eb5d1b41df0917732abe8f4b063393b8484e07a719e33e87f6f8b9f9f6721aa8a5250670b5527631e77cea66bf75f7aec685225c64c15e9c017a5aa1a02160c938dc06711e4a4b3e4805c16f747c5038b3085911d7b0bc0e1a794198cd201e9b6eb3b006fb3e7eee0b58aad7916647c803915dd88614fcd73af9f2a2d64c5f87497fe97f9df255bb7c414324ff2a9b3c72f0271111baf62acad14f07fa2f8d07914edb32d2e6535056ef7f90623f3fd9c77318a093d0ce251afc44cac3e656712b90c872fef033871bdf82f44cb185f86aaea51b597dc2bbed88500d07f8a647cd107131d422d71d6981d28b218e184466c5886ce1ca85d502bafc493231b46fe7cabd853b46969835031c47ee98991447c0cb3a4368fe0e7a6a078978c7d51f1a76b188c350d9ac78044e80c2c42b6322f7bf9dbb0c1c742a1385e87dc4c562701dca2eb4ec63349a229ffd061b09dfd6b7b690cb2067f59ce5d66ecbfd540566c3939728e1235dd1bf78e891a6ba64edecae9c32b35c911fe798d09a29c7c733edf7d6122c5d0db8589dd45f182ed2a5087b0ac94bd0ee304f74758b7d8262984d27482b288242b14fea4ec90f3287903b74bdab61ffc459ec9fe75cdf210cfad37946a9f553f7ac939d8348a34527873c1397fda71700959e59b94170a93913fd86422f2fd77662b61774251ad20711df2118d9bddbbe6c6c326c03e722eb08fa3b2cf70a21385ac6374598d3b542ccffb3c0147202eef39e1708bd53100fe2f2b4d457f3d3c8be66ba75801afcff7806e3de0b20bf5ac533fd2f5ee81030e5b25589aac19470e0c6fd3eeb74d8344f044882122054b118be3f59b005124b5a0ed2b2b11564b96aea4babbca4e27270759ed0dec88f5899757b68568c321cc18ffc5a5ea6708fd120643cf0f5ec6459cee8fd24ca013d860260a23e7af405b967ec90336941c53d3d5aa38351e18fc3d276f4afb6f3c82ac62004a1e1fce99b0b00f9461798bc57a12cd9756a3abc08a8b7e40deabedfb4221cd47aed1716bfa7fc8759385943d1d0776e2e4f5e11410874eac811e4adcaffbe556dab850456cfa2a276b7cd9b4a9bcc7cfcc91b889c8eb44abba2528be118e2e0cb67bffa4d7d2b50997f6d477db82ae9b24e863a3186b65383f3270a3a7fb348dbdf5448336ddfffd10dda0d03b6c65144edeb9a5991faae4d44bcbf5ea667ea162b3ac6ccc97187957f30cd49ad10a24664b6c931803ec112088a17e0e79e3f08879e9295a9c78b5824a054bc3cc44480f7d13eaee785b720b9868f0abe1fc0024bd0722182f82e1a7ca48f2f2bcf5a920b508e541c188ce353d42db42d09fc3292a70e0c6b7916d96ae6f8acdc400c787a51051c487fc53d2cbea26ed7a6ac8d41fba68e83c9edb9d074272164c1ee0b6f8d53a4e5660eeedadf76b56986063c12e4e4220ee69b2b4385ec5797ec09c4eca3302fd1e376d1ae165c694e8975ac99dd865cb9f42760b782f3913ca07974d2c509c95b22578167778fbfaaaf4eca1e88b761c4452c9d05334322e62c7c1f4a2860e924ccb932715e70c5d24f643283d33f16b777f15ae2995cbefbf99dabba4226c9a072ab981765c93892093a2f8fe143bf7f8dd614eae0acb381a055a2520eae028649f4146e6447aeb6926e36443a5bafc27af35136814bb12f4af93fdf67792bfc66c295ac8ecf660516b161f550864fe8cf2aaf5357fa5688ea5f8947b666266f6cfea9110efd4552e8a55f5346563f750861274c23b28a171aaadd1f749db1d9fab7377caf37118d93419cc1308cf7cc1d7cb561485deece8a0e788277bd293d2bff73c91be02322dd3a79cd6548b14d2233209035758c181fdbf6cbbb188ad8472a145188dfb438ebf6c9d9b89ca889847c13dba341a06904b73ffd96e536a0c28630ba5c5b58d5f934ae22e51d2a1ce20d496393f5feeacc13b6998371939a52b6b0f91f5acc68a833ab39325f17a527e9e17d39b975730e639c2869f2a1af227fcf0c91fed6afdccca8f8082cd9aa6a04433b02addc9bb431d5e232342ce752facbc505b8cf027314e56e0e77812704a326a4c8dd8e4b12d7feb64d2b4e216554c04bbc1499e7f82ce4d51acf029fa601388f67cd018b79421c531cb1da2a2d4fa55b3adabe4fd4014e2a79ff68bb21c10bf5271dd083aeb83a7e6830ed04acb21377749372c9f4655b9677d6b76abc92e0fd8967bd8e9198019d6e58d9d208064de576d9b04e6835c6b4c2f952f1b18fda25215f5f33784e13ac33770739d3cbd853acee88156cc3c8ac6dffae3dbfce20c62a65e98da1c285868d8d1061eb54d54197c315efab2e0dc76dcc01bea21c19afa7b207d4f8ae996efc83eab6201a48d81b02927dd7609a4b448ae29eae6bc47e2764586535b824a7b0751fd0e2576ea15eda35892ff8e8209a04651a1f15b2e35ad0a546b4b0905a0b9cfcf292816bd0a6a02c6ace9f229b508a1e47a4e51bfe44069d95d97b644e62699bca0bf20caaad4f71d47a3983c2a76e74502219e6b318694e0b56131b24983e1d9c385288cd15d31a57e9834ef8f9ba78b6be4e7e2367aa68941277540bc8990dbc6c25fef7318c47df26f44d33eae5f820c3c26815c89f45c96434123a1e6c75741c5827014a877f24a57a2dc46f8f0e8de530a09e4a5c67f8985447d5272dcfcb1ca84f04e3f4846ad5f8524e93ae21001d1c15261ae6af7b6d376db9c3b4c46f577c17c4feeb97949ea80241fe19b7e3552f7283c24deabfce0520f3f627ba5d1e1b4c15841d750d0245524120208c1628032282f328808fef0e1bd6fc141226e257cdc3f2ff5a5f695a25da033407b10aff916cb02beaea4accb05566a932ed890a0c5ee5796bef4b9d2e8dc2c3386ef0c57d7f2660bab9806dcf28feecdc77f5bef9de29207e908afc7de8e386c235164a3c45dcc7903ca2fb111ad7a7407b6ee5fbcaccd8f22f3f1243bae776675ab6bb80a17844f42ec9b835ab2c064f437be4a7a733a4de7792a43f3ecf315d518a6ec45ff5801d6f7153ad698b2cebc9eb0726171ce1996e50721662b829027d5d37a854b7650bca5e43bd5cc0c7980e917a38d72101104822de3c10275000ac6f2369c009ecef3f4feb24badb01c7aff39e4c9583791f4232fb53b3a1f4b85f0ceb2857baf429ca95030eb12cfe0a52569882f9998d12b9c9d1dff532615fefd223488eb7da783ca0ee4ddc1e241fa8aac93d3bf6668bb4623178afea40e41bb481ea6d4f6be1a231cdc9bf97aede7bdf83f5de7bf59f97fb080c3a41db1de9d79b1e38d987371c37dfa2ee9d55c1c31f89f36430c8a4b28b8b679de3cd984389f41e0c33882e87cdf955e364b3872c063a26698acad92257c671ffa6be6a7c7b34644f41a26bb6628f6a77986cd9125ebf709c1f80f89e069f48c7d334a98a8b2e88ff556c1605c1f1f9dbf91220380ad9dce2a8ecbdac786f2449c6db114dd18e9e76d8fbb0b7d1f9b3f07b06f5ad6410ecc55ee4d16caec9b3ac14831848cf50b9957f81038acdc3731c8070ab78f4f5b90586d40d5dd5644610c1a2247808a622c84ad4b511138e720681d0904f6b6b1405d7030a77cbd225ccfff91f8a57c19111659e1f4962436aec51d3149bd490a3a22fc90582203027e1154790d8f94ac12072a2f3b6b9b0b1ab0f8ebe1761309b57793ef29d1b0aae80cef1afaf40ea20ca01a8ebe83a0a17f6e4b5b9f1b324d8ec265766c8dc21704b0393ae92d7d2f8f028739cd1557eafc361bcdb1863eb37a7ecd15c2e083c8b51e10111cba356a72a01302501b26d325b55f1db5fa444c9db71eeff0587cc1b82d742f3dbb54e5a7c3e30675d6ec175a8c5dce62984d0bab8fc5dad2056c0e37e80faf4b774cdff40520ef1a48479819d1d0e13beb746b86bdb4236bfc57d74d0d886447d90561a1d6cc5d4eb8e2603f8ae7bcf35d9490830924d295d6a65a75909ef871ee90f092fbf099e832e2da1f350ca184bf7aa453d19e1f15314d5ede162513cc6865b9bb090ca5830553d3e24380839dc5b472ec8862eefa2e0aeab67bbf01711e334c41eedc398543b14c1698c64d8888e5849f310d5e8df1b35cf04c7684968a42584069786df7447c4c630dded0be02af41fae89bd7ce25942e914d19aa414965009d8dafec4223db1682ef4bf523952ad0f659b92ac375d4f2d4f571e6349f76ade142c60fa43f518a077df6f13d85f1c17b475c966414fb695ded45cc36f06b80c8c4793e61bc828d696dcf93dd79b5c52607b6d6fc3677b77f9529159448f5c5ad22575e5e0009c1a4674ee055fe68e4e40271923f953d0c497f22e1aad4ad0dd4c06145a63657e74188bb9cc604f80ae9373fc114ed74582ef219586067dcc614d6096be8ceaeb415e14984035f90e227b6b8e57a7f32d67a681f179df6c38452ee7251b6fb23f9f9f6013751477a399e268a344a92467f79107b13501c844cc46a0a618133b256eb407c2b88d8807e4d40f302ebed18c0054d90dd0297898efbfb6d30f7b360f56aab6b2d2d93ea1008519516435f95f9a735906dbdc98ead582ba2725ff976e7bf19f832b6db0167ddbc91b0363828a4a212fce3d2382c357cd498050c48c12fb8dce89281792d4d3476f86d1bcdca255de5f7e7330ef92125a707dbc027e59bd5409fe5fc1999bf6788865764f71fad69de6c8d0e993bddd6a78eb536e2c5e466ffe01a18cb6d200991b4ba9f94a0a3fbe5fbecd6cc29ce93ab2ef48008f9c6e9cb728e68829accc04115a69805d8880415c0d74ebdb9a2f3df0fe62beb4a0537c782254f982c5124df03230fafb048553be150c62502b2de4398605e235387650ee3be0b4838c3bfc4a286037ad05e125bf6b699e32a1a422bd291260b1906062b1480e73351fcfdde297402550559812b38c7e579ed7b22bd22495f43c8f8549f1fc986dc92bd912e856a38b0c18ab69783e4848da5758d765030482c75b3445f42d9022c39fb7f4a43f75400a903f23b2c4cac6af13f0ca5d9ae006ff1e9cd53676ea2eec8d2f1dcd3e86e3e2c1b8bec9e22eb7ce20d64ef9a719276b008c9d871e9e754c8ed8221161a2c6836232230d481e0d8bd12a3c9c5d01df2bb15af3f58c132700753d76a37b168ffe81370c092f3b8b14c4fb301278e0753b80b054c0e4f61bc78e8e19ee1eb7a886842740d820167e4bc88ee36bda5bc53f9e0e0b73f3cb79399276bb7b9d2f90bb974f0b90cc5956d110b795b9f2abe6ca6acebafda1eccb56ac615402e6e9e97aae41b1913a187f022197b38336a2c5def9b80526a0b6dc7f85655de955670bcd50336ba6d8f6e31302cabe9b3cff5a950a90c3541282bd1741f89c49db9ef0fa8122ad93fac4e9cfe64fd5d08422317e8479fe2738bc8bedcacb33d082f58aa80dcc4e919e926be8ad0b6d8e9f57833d974b055a3edd3df33e21526bbf668a9dc2a1611ec11efc9486295715aeec7ccc1e07c7f97fb8a694b864a701e7a58ae93c177acc88df514f5c537956ba5d9743e23fdc4a9508af21a925da3ca2aba5d24f65bc776854a99f46a72825497d4037f2a697cff63e9f8a8c1c056871827e1103476a6d4593176456bc9cdd8a95514eb586d7594f21f5a8329edb899d86a654b00083f0a94046cff2fd9ddfea93f87d602b36f15b079ddc7d2f70a6398cf9cb24d1dbd8bb9936364f5116d165a6ffd453e229f8a48eca8bc9f5d234f75e53a9e344bfeebadc5e48090cc0e0fca175fc3364f2dd2fcdac8f8fad0eb1274ca797b5f14167f8c359d5c1869a21ef487584277d9b5ea63b2ad1c13e2e03ab1899579be6ecacc2393e1ba54dae2b7d77fd614dc1fca0d1b4eab1aa5f09409a5a15046540616d37ccb266b14bbdad08c088def1e906f9a6ec97a0f97f42ca694226fda2dc1a81818618529cdcc687909f874fe2e059ccf45b3b7aae550e39a8a1f3a56d7b8628fcae63d0f2789c0c193e64509c71bbf56db9c6127a61285a3705d00eedf55db4664432f935542eaf0196101a8f320389e0ca25cd41eb4f4cb244591e63e7adfee8a3f631a6028420beb906a877b42db034ad9f12c38baa7dea31ec2a1abafeb2972e28318bc6bf8a8896688bd5bf572cf71904c81c8482623a384edba3a1fb2af5b4d5bc0da9f8e1c9392252eca1a39fd1fdbfd2e7c188f6c33d16e33d2af9a3f09195f448c725de9f43c51ff6f4860d83c3e78695c0f147847fd27af460940638ab325a75ac7108aea77de1dcebc8d65d4339592361b7b9b370efdc03362f00010e0e61b3e4826877de1e4d1fdf4579d80d9102366d39cc39cb55847e1ee2dbeaf4502f74c8774dd81c33f633f8dcc76f05a0a23c3d5e7c21c39a7d8c77f2f3241ed792e49dfa1b448470cce0812ecc155918632b7c8dbef0111da3f865e60e8bea9726a2d5ba96583ff308786ab2bd2c3dfed21bb6a9013b8ede6085ac0de32d5a9b8a51b0f5bd11020d150c019f3f8c88b8a1abf1d2ea888fd451d6d35fdcc88dc375e4f77db06af38da1ed44b20d0ccb00f573feb7467305d73708a54c24d1f668455f5a3203acb2c7c0bf9f88254fd730f6c07143229289772bc0b83686ab31d53e10a33770aea6fa85b3c065ed0d44d8120e6dccf11bbf6474e1221df081feffecba65bfe18624395932a30ed95821543d6d36fc310443d7ae25c924822250805c54d982aef62cf409bd663dc89c0f995824d571eaf2cf99a914c947a7505eb886134d042358276e7f2f06ecb7ddfb99a36e64f002e8757b7ccea118109e4dbcfac9039e13849b08df7e032ce5a1441db3751ea1ff55dcae669022f1980aea1c3485d9178c37c0c7a371253ef1b503dc3a866be44511247c1c09d933738693e721e30afc94019beb8d6e76aa9982c6a23c1e4bdce826431e4d67b1981400e168e9e06ee6d353d32970308346f1fb80fb096ef8b2d1cff40719c4eddd01968f6ef91295d4f057cc4297bf1a923e029a48075919c68b09fd08d38d45db54992950d7a8a2e2f0a5397c71d0d249f26c99691c8bd4598d1360fe1651dc3f2bc096886813c6221fabaf48a93ad9330659109429298d96b5f997c19df92a0fdf976229efcea400b9e0f60d200af8f150f5da6d8740458a2259df468db8b8480239cd6ba796fd12ad8c7afc3caa89b0443a1cbfb4ab94392caba4c039b8770dbca105ee461e9178dfab71ac36be324a6450404365065ada70d8f31a1035ce5a192b5b04a29f996996dd821fe57840317cc581b7ad99a95dd55d582024deb8617a109d8bf0f013e83a6caa4e2f1a1ea6716c82a9b9d8c5c4590b5e565bd327bb8e2cb6b39718da9d96d963ca38e31161bda34a5d28dda14865e7fa61076c490b31c92e751a6465dfa75592db88a01b2acfc20c4393ef13459952c4ccb4ffee86bcf3fb4c6740e699941e3dc5c6e31e9061ea0b452debd500c0b457165c78f5af6e88673fa0f2bbd3e5a77c10e22da490bf3208b81c1b83b00b6fd8e2efa20019f47dcf673a9a14bc4d62f291133d82c0e7017548d7788312c1bad687bb22c77650c8a4e5c9122f7dc31ba0fed27ea1d58c3d18e2375bf69970cefae26845f0779bdc98801e7283a89706875ece494d4a71f02ff534c76c9e1b711430bf90dbbc438100c57d92f63a398d04f9e20802aaa56c7081175c43bbb04a63c8ccd938b5e76f5f271771f3d5477743955e83ca086433ebab5a559986a434d740e3dae24181b62730c1153fd9db72b7baa34a86d5405e63c7bbbb9e5482b1ee07a5e2396f3daec250427db5ad2484ae7f68d5bcfa00961a80433dd3243293b7fbd90480ba7ab91f5dcebdcc41a15bd43dac0dd3eece65c17d430383a5dfe73eb48f7391f1dc72c9b3b5431c8f00797adb8a285872b07ab6ed2196a7e2aae0ce99006d5acf57d63cb6ab7a5d6a564c87537e640364622d47dcabb179755bd03768f20c80901dae4a8d7ff7fccdb6cfa73c2ffb0b69b88b0ffee05b2f21bc071eb41414974c8102ca0946b28c30b57c9b10a1a508c783dcf8851512b68ce38dcbc29bb451b04c62e8dd8dc1afa0095d69d801a907aa4e1b5a06b39dd9153c69542c9031d91241ea1ee7dba81e15a6a6dabdcb5251bd76d431a98042111a4a285c52d9038a9cba0b9f580601c9c0dd3b3609994f1553ebdbf3e999c5c885071f0b361c112b94feb9e74852053a0dfb9a15a7687396af8e761861117864ff65d1c80f6e07ef53b33e90851d29a7aed7e38bbf6cb23bd9b6d576808ce5fa5cd8aea2a822d442dcd98e1624ef4891526ceb4cbe160a66daf2f96436c08ef651fcfbfe51cf75d72794969350a5c4156cec5b459c16a5cc2313c03818c32ef1ccac55688e4cb725b6472b22db8760a4efd6c8c7b66a8f3e11268b8d69ba643a1be2b55d079b45467e902354dad194dbc1e7a42f562f723ebb6b972033305aa44818ebe8181809cb4183f8923e4e23e1e7069ef6c8ee8626d76a37370cf1d2f09ae4a9e882523b2af322212b17b29ee1388e378fa8364c5771e0e5fe74f67283c71da822d911fd4912e91a12e347e8a74cd73e3632260c1ef6f33e0f07808b44c0d74a4477905f08b385d8091f5bb0c06fb8eb4840da1c1a59e481f80727001b256f8d0188ffd5d402c16846648a8a06ea1e91ef42b92bda9d3f85146487fe43b373177280e66d1be1fad1c8adc2372a0a31ef3fa282847b6acaff0686b3e75362e606b04327f108ed7e6835602ebbfb2b8a58e4ff2d5c024b7b35a5c3029be5fcb1c3f47bd27456f4e9e781c30e655d5ed1943db3d91adc1fb10f3534d05bbcc358346a574a9f86e33d72f1e820ad1cd20d0ef0100e74c0470530010604b2a81a4b2a40aa0950c8868a065cf34ca4e3885bdc781f61ff5a08211d9d0681ff3abe89bf9058eb1429585c6b7d029156a9725ae7d061f75dd29924627de4ad92130e11f8bd40ff3258e5456b4f767e9a7195acb50f83c544a76757d4c604d1dbd60047e0366f98c661453ef45b89973b5dc5572b3e456b44dd4f3ca30419e84f59bdd121f97a40bfb2635e6676f8bbf1961985a861b377a8d9d49980669cdd571c08766e3b36d81986861374c62b2f83cd37c0c22c1efecc1a3a83dcdf24ecdb94d368b390b36c353c771495dc0a23ae7c8ada7a8a2513ade0db36c9ce3f975015fadcb05ffe4b47d7bb57fc59995f19814a9f9598f730b15ab056b02878b11d795c8a91685e0a50c44ae9c6687ebca5e5a44e4e3d632292b75a91cffd123917578f42c857e97bd247f93f46ab4a43503242614e9d1ab30caf7a0de6515c59dbdbdb28060a4fa77913dcf6fda14e872bf4c4b073807c357c5965f31b0d7db30177f18e3be09ff3142b8805dddd77f36cebe82636c95a14182394e338be5aebcbd4e4fe38d5c1ec61b9ffa15978f5ad781a7ef9cf4052ee3f7b54aeba987f1e438bf16f0bb1fd438b190436dc21b0810c0788aecb5939c77f5712363a65337c703ff3d3695122375b5aa94f5791f414f05499e96c83cdc84a3151f92fb3c78d3a4c92bcf6dda1019388bde11d6ad5f9851654a8106ac26f070d6751762629034b815593ff3cc2452ff4a42d84ae4e0f3a032031b66247522ded5d3c41993c0c8ae95d544bf6aecc990f198c4ef5ce66fd1ce10915b1d083dd84bd9f8e9ae2baa4357c0f505b379a2bba3e93a1bbeb7b0183b0d56ba2ce35d96b89cc9e2d25a47ea8bd02e79fae182b555f5d9fb2f3d116b3c69f8d02f4cf42a2624ff28bcb90bb7cacf51bb58bcb31c1aae9d192c86537688e848b9624e253b96eddd56e9189884ea1a54fb10a74b713fbbd1e8ed45e1114821d1163a39408e146ac13bca2a8b57e9221d9493c46bd74df6d3d8c64f9c4672009abd602043678b7d8604bd09da4234ee34c9d7398c349fefa688bb1f3f50054642fb2f596fda6201c616afb0b84e0998c2fad5acd8f9bb66540b1b544d3aad04657c5601ee902841df28f78012249bccdaeadbce9c2ddfd41f66342e94faf9245008277684acf97dd26065bc927e144c1eee4dcdc08504e388b2e9143b2be1e00a8d35db58bd2c6ceb83950c3da7976ea82129df55a5abf21d8ea31064c6e949ac357e97c6fbc5b53b8146fe9579dc9c4d0044be32cf0b921ec212515c850ac101854fd642389475e5e0d9805bb51dd329f1db27a09fcb0bee4c41a85cc5f58185ae9506513371bc35e22468cd9e9c257fa9775a159f70d85537af0cda134814a5a7f25c874f040f8f526cec852f2037e47b879d04c0a22698df9a1666c4d0da57ab434da3cf92e82367bb2ae2597bc3c2ee75b9b719105952a41f851f32f686052ad215ae12dd318123c5a2fa20541726340c7b3c7235882f1989bcb28e09a1bc5f73333180c4cde81627b62b871b95d95c2734616990fc6a2f143fea603804b90a47eb7a167a107c7a33312e956431d760bc3ac156c8b522fc5a3acf14ac623afc9ac3f2cc414136fa5fbdbffb8ef605571265e12c2be57906d3fa593f52bcaa7db6067e3c6b1fb7b2156bdb1108814876eb935cf373728b471971b277baea14c4f544f43ffc59dd2de62f82313b84dbb90e2420aa30782c4642b600e87019ebebaad0a37eae153168186213b5a8450443457eb8a745c57ef80783cdf73e481d37af40e6124d6a1e29183e3517811c0fd2678aadc4fc5c53557ab5f2b1c5ca7f876cf1c4be33e5ff3791664df78ff89df08935efe5c6f35cbfcad01bc8f7c6814f6c81ad60ad08f937e75b890439db46a7a9f051b8567432b4e579d65513ba33732653369a33c6a0344a077711c75982d88b311baf03802169d1f932c5ddf49dd3df0ef3da1d097c29df362dd2531eea9a96f09d9774e7d03f33c1f4760e18677ee51e5941222d480e531804071d65c72c8c2be7536931b33cf1e05210079dcabb5632b40327821532b6c1dd153281f15a02627a8e1b1849e99f8f4890324fdf74fdbc2a5347cd31efacaafe530358fc74531b1e79160c344c50a6758ea6cf2dac6974d2ea9ac7e201da2d768282e2b6288f5fb8e895ae18e15c248f45ec0e9702a2d6d4bc439df00be60c173f32aff9dea23b3b60755551ba07aa5f4b29d68a82409fa36f816e000fafeaff6bb85ec5738a40a1dc778c7036170058183a418e2bc0543d9d0ed0bee7f9d0b3cf4527b163db04fa73399193f32190afc0b23f12f814ba8106d84cda1377aac26f6b52a9c8659f86196cd884eae5e6148124159a57655f962c32ddcd4c0bc80168c4befdbff72fe6181987aedbd936ee0079d93157e1105b020e757bc1135e5440315bc0138954521a81f7dc7723d6296caef734f24061eea7517996f8cc04040340b0734136b4ebc1dc39d1ee3fbf9ec6c1af6445682942626640dea51a36a995c25609387b78163cb08fa3cdf710fd1a1f944e9e0d02c040419728fcadd4a316837a30670fcee6489ceef556aa8b4e67810e03a102cdfd22a8403c46efa423417c5ff4f99d659d989783f6be97160769c6d91bfeee2c8210396e7bd01ecbc019fadaaa5656f4338b432b32f5943ca5aadc841273e0079914c64a5e6dd858a4658dd4323efab3f9a49ff936e67eaae2749cf3e60e11083810ec72bd1e84b940aecacc8224a0df3f4ab7b4065fd6b274850ede15f5a91ef3336775ecad45449ad36352879cd93b1694055659fc28cb5cad5d50df1816fe00148c58a43cacb01f6f498d51f14e8a1750338eafcf4e0ec9b87228ddaaad9d4f887814be18ba99128927b695462a16467d833f35a40fbb8442049be93220b7a8ca0315bd5cdcff7f62bf9b79dadd2cf8d7baff730d76b2f854b6b05590084ce68431bc292711c7c855561db342ea9ed4468f99d5a9f1fbbbfabfc26f5a831d37c1efdebb72ca39ba0fb0b2f6be4a3fdf3ab48bf6426d3eb4206f025a5b753373ee334455d9128036a3d0e3b5fa166a95546988c8b5a84cc66bcdf3301f6d59806a1f29cccb182d6d3911cf2dd8ba7c1ae008f884cc799416e49aec81d1af9dc644b0bf85088cb5a360e8a7c51ede5574fa73736f7412aed997cd9a11e30ed3b42aa7aae05a28ee8d3b2530bd26b7dcd771624a68f90dd4b497c77bf231991255b0b7836fed5f96361343442bdc0c7805b38cfe4e31d264aeee7e63ebad1735f166cc5603b956cc770de9514cb39d97b5555ec734c1c460ae77e5fb2db38a5bc773242486da4795030aa0d82068fa2a151a600e5fe6efed8eb2f83d5d958a67ce985462a5d9fc58fce746ef5ba324275269d0f3196df5d7bcfa03fae31483808ae1c1784c2a36621db6d3c0a1de6a0638abf1c85abf990c68c1c9549bb83e92f1650044ef72c364738f7e0816220c45dc026e933235c41d44ad7a44c1451ccc5fd59c94a46191f0a42689993a7527e55a44d09010118dc0d8c19b153fd095209cbb3baf101a22ffca4174d81d1d5ceaa2357aadd4d1d45062f03ee73f1d76c7ecb1a5cd1f86bc6dd9a89a3fd90149de526cb00db2c4eb4b42b43b2d175236ba3bee4b9a90131e7b9748d7dc5fd5ca4ea55a4c86e10004d3ff9c672f7729833a4be20cb74ea8a14d288c12d19cd5714c6d5d65222437832ed8e72889f728d648fadc84399dd79d6a232f51d2e14329eb22ddc9a215ffcc46df8a1faaeb90642d99df022811a2333f3d0a25aaa5eb73c7ffd371f64e8cc92ab0530b56890063f44d194e015c4ae69c7f9c2eb69252f27a2b4b2cc658f53f8badfb87255f08c2eb88bac435e6081c351253b468e56b2028f8a0a9ec6d761640d253b2011b251526891201a839a8162293d132c51ae959f42eaaacf80d5aaec211ea4baca0dc4afcf0281e333c540a5fffbc2fe8ee813d886c009dab5f71dcb148ca7c3870f739886a45e9223a26b84d2bcb867dabcd78928d0fed7c6346724dbd3ce58d5c10cd295c17cab6c037592fcb18df46c687df412bb4c616f671e7fd2fa44be691f4c202ad6fefa44846b6ae0b08f59acf5972cc277d39d8a2bf75cc7bddd454ec8d8f7b99be5a94b031ff56ba29ebe1b084a2eb4ae2b5534609e6e7c6c25f3a9e51e6be97c7b8a387df5417fef2e2193b03b15cee01f9d080f45e2043b44ecf266ddc3b4c3d92e1274dffc49f41b4540500815fbab7acc8f8fbc16e7e48c49f982b5e248e3743d4a0daf897e2f0b8389bb8963b721ee8696d6e866b43861a0a304de8f17bb554f37118cfabec00487dfb2745b7d0ce6c18994d8dd4094a26c4394b13de9f9d472c15a2d881bf12aa7266123ea1746df5eae3361c0df7b8aa5349c2836824ee9c5f59cf667cc03a07797c4cd14bdd592a29e6bf089b6ee33a94bf7c40d4180febe18c46e965d16b0c87ac5729097790d9d5baf020a732f9a937a1d743a8c5781cfa77b9f0e7f8fccca5f2adbcb4b711df2022c6088214b1143ebd7b5b301120886727579d149b0bb371e656fc2a4b60c3f173e5171b35c6808223a50efaf35a70d886bc4cde41bc279e19a001cb4fe8756262ec3d8bd5ac092eeb72505afd2e9973cb6d4a9ff59bfa6fc6129efda261b1428c06978ab7e0934249f938e7e73b1350ae22dd9125a47540ce00baaa3d7f8894dfb225f60d6f0a11f70fddfc3db40cfa766f4a5720a379fd07435fbda07d510ecce21953fd9d3cc3e816a2380e1676f4d59451731c0bf5a9de0227a95162a79b45dd2846acd38bd4532b18feaf958c328f802dcdd06985d93fa902e166fe7fda968fbc19e41ebc9305877af6976ce89cf44865329d0a1a36da4c81612406669c03362c3b410364a40904738a3c7e818f30ad91d34285fcffab39c424a8cfbe6a3b86c3bdf36aaa7fa0fea26a0a05395b6064c5c22c3bba84e16b4eaba68aa3fc9bc518d50fe03bee850fc1096939dbc67e457578480508ac0318bc7d37033ec34375155f6e6fa2938758d01dcf2438871e9294526e94df70769a38a1b141c960f47d20571dd775606b5d1323e712e7ccf4ed180f5a46c45e47683a2598994e2ac5050c6060e22b1c26a3e1d8c35284b433cd4054337153174cdba59b96f9f7ada559c4404115abe5618f74c1243abdd6b463c628a66702d190f3f8978d8e5826b0944061b00924a9544215a4ca9c4ab9f35ea0788bb732d516688b32af0b5d084cefe052352020abe664d20ddc290e59d8f4109421659302e3a03f8aab29ad7920e039442f66260529250aca5961e3a951118bb0d4241c485c743a3fed2e28d5d678468ea5d3d1201cdba16fa313590bc0ac646497d5cd2efac158f8e592ce2aada81f2aa842b63dc60fbad30b9d74d92f95642dcbbdc94d434423dc6a0edbbbd84ea13540c2fbef99e00a917d4fd4e06334f9eab84c3fd31b34f21a21ab057eb846d973f0262a9f2cf9d9882fbc02e0af1c4d5f996226016497cb61faa3eb9ed7d7b7c8c5fa38073d9da85c69cf900da3667db52d61baade6544868c1285ff9bf333cc0f72e9ab7097d4df357f098918229edf8e78630c197677567b656f2a29ceb42081931a094f74d2bf8f196a10894981098a35632ba22cb379c3bf86860ac872ff2d745525488619a5bec097202388f11e9ed0d3b2ac9fb32c891dddc2e84aae5f54e4b7c03a1b468cebe365084d4955ea2de6b1536912393afa4e048b9216ae92be54489802031894ab8d54a878fa98c62804a5d18c44e659ce7e5dee5cdc809d2be528200c61ba888234ca778d950f326c9cc169ebc4159da416c0548cf77abccbdf65d8b67e85f897bfe46b7c7c611d5222323a905cae13c0b7e19aeec4da51e12c9a57a78ee360fb004dc183f471bb4832899b0c8a4a99618151a93bf1ba3745afe5affdfb763217a721164eec5fff2165ace3a8c543c41d84332acd6c72e9c5461ec9d1fe4928bc0a55fd9189ae51e75eb2a674280939b7eb5af5ea8dcd2071ea202acc9d98e5b0c4d21a630e94fab6cf9b968a7b5f2854257534555f2444b041de2d747c0b6650d18a27041da1c735a1dc503f0a81ce3a93c12af3a9e29a3e57a239df17ba7c02e444cd02adc1d3112e3b010c84b7620e6104d1f55d2ce6d21cd8ed372a656483b77ced3aa884b0557e3bdfea0551da740a73cca72d62cab1807f72082bd241a129a0f7838ee7df4e384484e5017516b977cd21d364599833ef70d7fe701191a6ba50a36ae4a216604a69f17feb3cd60e93b9435e8b6dabfb8214bc1d2c08e70ab923873c48096a6bcb090816319e3fff29709651b04b74e901e2a0882011906cae2020e5cd2cd6682db554a595122c6da0b2cb41d4aa9c1715d374e38d1460c446dd5d698a931388598a944b60675b6ed54e85c3b1b28cffd709cdc83a73f752169ca10cc7a2616877560d47d5754d36bb7294cd184c7d1a9431fd3d49ce47709e297f52e093cda44ee10755e4e9da8646017a72fd58d4630d8d1a6636d400f670b5a316d98abc76ef3fe33809d32c0a37624434c4b05509177029e6782957b9d231266ffd4e5fe3028b731a374342eadac532b451af036a36e56559d7b46be4cd935a7557dc20a4c1884238e8c1806ca65971eb36a07e032bd5b3b1df32a1fa66477fdd1155b55bde82dd5ccc155e124c0870dcc43d95eb458481582759faad0c602e59231b9b0f74443a2bed8a75df615c0a15586ac6283e40f785fe8c4ad5de1c8d00d1a48cfab8a80fdf444299bc1c715b267634dc1b301735208d9f03dcd5715a279df68cb2076c8ece10da2c0a06182d1fef8c7f571982d62a56d45af226d9834091c9f9e1cd18787d62a7474a16d0bbf5efe619ef3bcf3bb9bf2c41f894f42d3f5f38baa5ce64b7e51f07e6631852af444aa97fcf7117f45433efaec0784c9be591c54339ebbc9919d682cc59a733819eb3c7b77d8ca883ced647c3947647aabdaf21ce036549215c0b19cc8907b268ed9d7991829af2eaf3a77296e64e0f94224f0033e3d7e3676b7ba8c28cc1161e5898d730de9c1eb02c344f1b6d6f6f9a132ff523d41ecaaaf09fa26a1b79e0f65d9d2a729436eff6c0a5d6e7f63947ad66c83bbb1949d53d3a2f765752c1905884bbc3261de5bd87ac8c858fc22ce15688f1711d223d73b8803c411e83e8c9d7d1cb17a50be4cda8a7e3513a694a702cf664f54bcdd2ea687bfb6aac51ada74a6237e79b4b3a6a0515e8d30b7c3d6edf75906ddf0ac6b4e1e4c0ec5d7ef4d5b1b86f2feee5c8ab1568035d5ae7b3884c2c4041bd1ff3b6dad1e4b7271eece2c263970e686b6996f746a6c44ce8ce68e832206b328e104cc2c1b6056e753c637c5541a1ca53bd0fa5ce682bf9e2022cd83086ab5a1a04bfda45212f013870ab12c368b799a960e9b1128e9196a1e844c7ff0194b4c0b7c1cb111226dd144614a40723cd556e13b416a444a0ac09f25dc28d36d7c1c340d4e073f171c82dc6a611c980a1bef751ea693f72f4ef574b25ba29219a56bcc4697ea09cb2e8d7c086590c37ee7204f4e908cbbe82a9eb9971305356dbf740c298bb4e8080ada8e8fff9dffc7eac8f8e2d4a92eaab31779c0f7dfee71f0d82b39b853e7e0cf55255c4cfa788e4b6710bfb810ca2982ff6292b2b1fdada51a6a34b9c845852b717694df92800a5da4559b723ee8253cba8f1c9a6d52992423a7eb48a966cda6a2692faf045e093fc94a33b0821b9955ee54aa3dff0b0da3be8bc9bf9f0db8fae23390fc22f2c9694565352b81d491fc062a2c0ec1c137df1d42c5efe9ed86dd2d0449367229dbba29ced88cb058e800b29c28c0049ee0b452bec369d8884dca04c0d669b03e6653acb23a19dd084dd76555276a8e48035dd796a9d5515c0d1feecf67454acd8e7ba724e5dda7f7688cd62bc80e17a10edc076d9f2c4e61b9b7f3fbffd9e2b3d2c91a8b216901d00a9a7f4bf835cb4950a2a2e54a535ddabadd1f588b46d0c69300a5a2f861b30b9a152168f774cb0157894d31fec71f72d1fc0541b2349e52356f100e02b3d9794a9c3e021f49abcf5528102520d7caa9680f396880988a6e7727c376655c6215cab69ebb9d75f6fbd1f0d6e24e0ea897bc1dd5f03074071ffa024e3daf6b922b632bcbbb9828a6db25a4f011ff7496f5677cf59bb1793c481248e3b95a0a80d2ccda94246588ac6aa27993a79967867f35b03b05af4383705ab8d70c340e99af23518e96cbed6eb659bc553f5ad0fda14efe4bef3b88eb52a9f6257ff3f81b0ec5298ec587fc4318dcbeb40370df957821b950a06517b741587dea72b4de9b4506c2301d76fff93f72c28f2623527c1c984b764e47b0dd5803d1eae3293d8070027c5475216a500e9ed6abe900cff4427bdd6e9c6eb788802d370a78b2678572f8ff9bd6a2257d3fecc42f3750dbd12b1a2ded25a3a1973f72fbd41faece3b4ff37fee4e055ba8e560d428ca5074fedf91e32c1c63761c5e2f39f646b71284d0b6fef8d59fc16eb3088f06e70665f8bf4d3a69f2a625dd57d032c394a186197d2a00a74117145f1679bb1da4950751629b41651abe8cd69e257bb03c607d06dfbcd6af4afa328121496b25c2693f2ec26b79e5d056eeb4ad7198d8de3583291a79f606a129a8cb47cd56bb14b71fcabd9bb632fa02525cea155479f8cf6bb6d2c85369107eb2abe69fbdde7a0ae0f1e45d80980eccb76258099d75e42ff1b5631cd9d6b45ebd81a0c0aa7267f27686979f2aea16a84c921b83bed26b83798265f36b103f392c218754cac0f9ff70fd7383f3fcb8e1d46bca82af3ae64e7c4d84ffce1f490eae551651f6f4a5a260e1154b532854c5519f90206b7cea8ae998a65beccdba83e159fe9b3e9e6da0914f244a7fca2d25809521cf94098f97e7bc6311b8293e2fee5dbe697832a82c817ab0bcd9c4ad862de77af926783a273764ca66e808c40adc070fe54f885bdff925e49aa9fbaa0a8ae476a68d0204838e0f77ae367f1845deee1c696e5c240f992c00c4fed7c7628d0f2f0c5a06a4ca4792fa93b86a87e07a2093d886cfae4ff1fbaa1a18c7de653d9e2e3daf86f411d094901e27e990d1749d75db00e4be1674158f6cfabb7e1525fc7459a3a9017e5f1126e495dead8fa2d9cb0d8b04c9c9ca8e493f28a87726934748ed1337aac3a4d8af263270244a673e1b69137a1ab64d92a8dc9308775e47d2d767d720d0a9380dd1d51e8aec3259a8b17284f891b5d5dc3938f657b4580ea5aed3c8f51871e0a7d1ae675ca491bbe7bff82c11e8813b3f2988ae97ad836bf8f53ae66d3e43e0f3e4f452d99490d7404468e7bc87f875216fab2fcdf369d9bc87619de2ee0be10fc07b0e38c6f5eaedc405edd7f6d06efb4eb7c98207985812d1be6dd13d5d377080fed174243a5898da92c0a2ce8753da25464f4245b1fdd184e1395ea441ab5de2fc15ccb3b0ffe48a2ac34044805ee18861af20e285ef041ea7fdcd911d3b71c7986b43d5af2de4725ed53a419ed2c5b3211e31f83bce6a32f1210a8c02b61d0d2ed7219bee55a2c1deddfb0bdb294f475ccf0ca3ddccf594c25122e0157423b39e4c702d88e89a02372e54809645de57fc97502cdede4b48ee87c8e2ece51c528d11803e57e93cb86985fad7a6c5e2cbdd031e48683b4841c207d1c0002ef3e1ff56638f9b966dc674df03036989620a468f9b6187207af95716b8df9b7968d0245171841b5806ad08586d9053c477f953bc70f77d30a4d174951bcee2588f673471c6c933645492fc259826cefdcf4c01ae4a08dbfb3b4424143cc4dae74e84a82abf078704961d491cc68b4fca2b248fcb5a8f204bece7758481b48f34e29c44da81a73f288321942ca23e040ae1f977b0d5100d8314420989f4ebbbf05a17a8fa72a715fec116971eb69e7fff5ae140567536da0e46695138c34293271af064cfbe7f8aa46f66ea0ef3a4399f9515c4f6f67b0214c977ba46c1dc93625ab0d414d3160d9b9c84ff4e2d2cdb0ea3d7ce9e9aeb5fd317ce1ac4e3797e62a5b42510e5c5f782cdda53ef9dc99a69299d2ccaa6eab50360251afcc556d8535bc35a906b6d9aeb7b8226945d352c85e18e79abe315f82105727894239d98302ff3360ea099c25892cf3a34ef4204a1195756f31d2ee02b1d965eb76064e3d2a9e14f1e03b7736ff4aa7108b769f39f3240d703a714a579f3e322f30242f416a439c0d5d756c138f4bc43427cdd58aa22a3487ed6d7e47385702b7c336a9a4cd1893497a483fdb6dc676616eb3670ddf3a5a20281cf13b30736d8a84260e822336b4cfbb425ad9d6792254814ac7bfa424a46c988c902ae5e069fd22037f92aa2f7892c9777f4d847423ca9ebd8ccdec0cbdd784a464e7da64dc342e461ed084890491c9f8a6db5a00636f1c817eeebb44e7a3b2dc5c861ada453744714816c26f47b6b65db9ae58b32a3e6e8696e6d78de489f192132ac753357c02933def490a61cbf42f6675694e7a913e9ef1178f8bb7840fdfccd5cb6e3547c0ad58b35ada59e7dd62b6ac03df0bd2652f268b436fc2c934940ab5159639eae91529d2cf870c99f8555d327796a89af097a0f05c876936573a3ae22fef608bf09e7829cc25fc054f5a948093142501fda7817ff58047bdb724cb2da771cfef5dfe01de6ad472eb692a10fc6c37b58d3f7815fb9230d03b6467b4c954bfd0d2f2662fa313273cfae0aeb42fe7e4e21777312d88d7b673eb36e460fa934b16ddf13b1d0f11ce8d382d26f01ec270f733bc669f9054586e3b27067536ea1500b748018b0050bfed31e9e68c97e76ea91364cf2eb517cf763165417e0e235d721166d58751af344516fec8171ea9a6f1dc1c6392558ac32058429fb016346d676187ba66e299abbfd877b107299b1ea66cad7797ba177b7d4cd7f20e3705ff7abaa6f3e4f5b1d56434fcc5570f6518f48ee88b0f123147c913eec09360bbe4e4ef3b582d4f26bd4c5b7a8d43d4d0273c78dc448be34cbabe4f788cb8564d67d8d5cdaacbe4dc8e8d84e99b5bd17c2570a4bdd524eb87ab5835e7037bde4cfa5c4b2110eff7c4cae240c6f3b62677f466f10054d47fd13aa15ca461ab73e012a3fafb0df3d6f626ff2dbbc4734c0a0f9c939d67bc98d1cebf5cfaf87e90b7d42e3acb0a3192b49bcdb5259ef96a67d17158ecbd274a82d292e89d4367ed0845eac8f2f15c22096d1d556df1e3955e23c2077c46cf20075b24125e2ee69820d571f5bf1a8d02cb04ed34e2f4fe78c90d7044c869404de3611a4f48a0355ae4371228fdb9d8080533c7697eb492f34bcd06b92395d5fa945faf4d681e1661d0531e325789da8450e638c90fafd07898f07eed1e8cacb8b8b8b5ba201ab466f65fbb3f874ec177fc5f14f940864effaa49b19f4048b57be86da9aaa47e4e2732a890b65232b39582f74a68e037330608c07e632e23c93cfc8d2b9071330d2304d291046fba51cd15919d8b79f24431d4d0ba146384a213a7764589d2b1c5f667fd358ba15364c76214a792bd3897801df669edba44f1750cc020c2dd7fd9018a20aceb8b0b10a9ebb8f80b15aef6410ae6434572515f4ac94725def66dec3184c8fd42aaeece07630cac2143312ba2b1b34cf9aa0162c16b2e84148a977a1cc47e22b1d16499a0ddab64fcf22648395fb1325c35c9c8ef09b78292d73408d7713972a9c90d71253eac668aa2c60f68e164dd5d886630537d8d2fcbb1f89d51b637642fbec077914e2450c2d1fef48eca9fcfb06aed6702d8853a45309a83ba19c70f69a9be9e4ca1bd04e5908dc3f52e5ae843348d6a2e0db60f2371336a54e5960acbb34fc66214119fd45ba5867f66dc945c42c11bae298190b6c225b08cde99c048ff18ff012d10240974e922727dcc52ef317ed5f999853a3f79f2ae5d9cf5ca1842fb6b78ba2023db69d5527953d3c135328ffaae148eab03cf70fde8742e887c2f2c1f88b59d9ececc8c3ae5391bddc0d6314a8c32b5d665c1b4b416cab9b85d45e5837e4f398a238b116fcc94d7e2df432cacb6d56be93eb017d956029ba42e13f1161c53ffbfcba7f75bc5bd9d0bdaddeb6ceb6f3f0c65f21447b8f1010ed1e82a7738961083c2e1ed91a631270fe381a22b6f2be37c5aff8e8755c6565a4d4bab9884b510d35a7bd001733c899c96f794d0bfe8b13389b881a6d5664c012f19c1a69205ae25e3c4e76163d41f92c76f34c8300be71a7eed6baf9ccfb77da2183b109039b81b0de09a3e120b46196cf656f998ed12a1be26bbbcfd04c16c462edea93d289ed4bcee9f37e62cf58ed550d37de7fd1d0fd61d409d75f2f0bd62efbb8db116b672f9a2d0e9ebd3271637511e2fc05e2cd1aab238cc53dad2ec0d8f5236572ddf56687d9138592f27405dff982b94eb7d2d1236b2d4c8286134513c46a5b974e3b789132f8b1b41760575b31a969411a95d9c547fa2836ac298b5d77b31be7829c02f346e4a1f71e2b85858999a9b66ade2bbd544db070c6b07fdabe4b35b410b7cd4a62ab70327765f2feb41650df18eaf419b20b9f47ae7ab51572790181e427c0fe994f421708a0321accb9e26d2914a09487f1478bf37d695b0bdb34a3bea178734496a827a8a7b413ccda0c7cb7d75b6c7cee6db95838979428580c17b253830c7dac7643a58faaad1509db13701daf593e925dc953e1460b0ba2f7e3a79f65aea2dbb4cb3f8cf86bea13bdba15daf967fe8817748f6c7f161a44e30ed820faa8d84da6172a9d34bcf3a2905afcfcfa49f2279e636a5c86705f4484b85602d78586e212061008010dbe5e366b8faeb566d209b844786457e5095447b083a5b833d61247c90da34b3739a9734dcbde4f6d5bbbb90efedb7d1ae98fc57698982a6d37e67ba831ef3ba33ae6225ec223c4b7cf7728f57700ba6cf6d0e06420dde805ddf698550103da41f753f46619e8802573f5475f13081c43c98ce96e7b7eb3ff408682a2f744b8cb8e7341b88be94e601042e5f133047fc2224670c55c788ee499a165d5fdf529b47f01b565640719af73aff02fef938d7f618da4674beda7e96856b497f68bd0e72c7ec9d506616f93eecfb8769066baa80d91639524ad5ecbf0f6c37f36dc89bc6046601268c4df6fd482d822168ed624513e58f1970b2328b96e3f8104160970c53bf30e916c7d5e00112a7bb2a12f4e7af1ce0da6062c5d0ea7df241f8da4316cfd2267221032304f5951974db05f457ab61e1129bd3a8d7dfb1b44365422fb49b0a3eeca3fb246210dafd7000339526819ca184d35e6865abec4296fa78d6bb557cac9cf142f9cdcfcceac9aaf776cfe86b904117329b53bcdb964e1265f6eebbd3cac8c2f1fd56974a35c1efb22d11a3d315ec7de2d227d352f4e19e181b88bec8549ed05b9a9b5a71f2c418cc87c3dcb642099fb8bd9bee83141992dff0b193591f9f481f84d322f03d4f06dfb7d0f23ca42026e7ca461815ec555575bc27ec94d1138f049c05394e86fc8e1c056d9388e075152b32f0d17fc7a3417ed5486e4fc75613e341013eee8269c02d50e0934cd3a2ae3df272e23ed6a95deb9796182ec7fad899cbf6f8d66a5f436f12bb22f70c104700abf73752879c7f1a0f223a9a0576efd7c5ae7b9d01f88737e80098bd210aba34a5a4e38ac1c8f52df5b4541ad968a012942017e72fec84d5da4e9c9906abf1a90dc77051d2ca67a361e217ec21bfab87872c6839e8257deadf650052302344a7720690a838239e63f2879d6adaf4bd075b84301caad8b73c13ae0eb2484d1b564b8e43cd77b676eb739f08c514f209c636b0ab56873f013a03d5f526dd1b17660f9699f52cdc773c65a8fc8d4acad873c3aaef29bc6c2d0cb7437545722c4116caac195b109dfd89990423d8ec03ed3fe084abf066576e82b32f703df304f9e4c6f7749dd35aeccccff59646b10aea2622afbfd585831b949dcd0ab737a683c032b591ead2e236572740845d6aaf05bd37b61ac63084f834995189ea1247bdb6d23fb36b244a309c8b6e7cc5bb08a55c60a232fc85fdefb48deca95f591c850caa433093f5f87adda2a72b894ad15d5c8f368ae94f520af0d1005a7bb3ee2bd15419e021d2c9bdaa8f8890b13f5bf5ddf1c5e825f660d332df589bf7b0f3147828c1a3da25da18b8b61f219569fc84e1046b6afb307ce29196d3db755d5711a7d654a4319bdccd6eff6d21f07d508d233ac2674e0e84314b9c2abf09e6e31c5fe6b16e5ace34568ab1d386a008e681a6323e6e27da47ef47b4c8289639455db1f49281c4ac0aacc75a8920fe1fd64f2a01f349138de46c00bff131bad1795ed2bcd6f002aad8a8b505b36382f7d909a959bd052b66895a30cd7d50ab10bfccfacb7a0ccf5bbea11e8d8dbf64adc10f8772e8006a6f71b139261e26a481c69302832b0f2b60bc36c37d21db1b3b31e137eeb8d724cf2b8ae3336776a531a117d89a35b40057081d3f84ffc17627387e56ed64431207305f4ebe87856ea99fb1a7287a113256d8502ad945db038a92e792fd277ad46c1ccc02ad5e9297e5882ece961439f0791a465436588ebcc34885665effa2e04998ca5c52676ae4a03d7272abd4a3f5f7da712ad7da8cf0ae51f4388ea26f77068f607b0b0ec2cbce07d7d7c5c81dd398bc993e4954e30754a1050fd79586d053e7215a574beadaad1cb8e6874f665d3cc3c8234a3ef76045f8c3815c6735bcf869b852d3a81c98c196db4a9c57d4b9256a4f0c6f061fbe5025a1008065a3a62e2bf2cab367009045fe414a7ed2d1c60249aa5c74162ec9d33534248c6778ed442605e5493e8d76460010b681ce025d0a42a26a36e11c84d51e5dec6cd37545c47b51f4991ed001cea6edc3ea5b72ac6ef55902cd6736421bc923a03f18c7c5c402a2a2c27a4c213b725c0a38c94258ff29045b48aef8724926edcff626979f593dbbde936d76d7a05f634fa4a9f1e9e674465595ad211035ca3bc763d4ada6a4a1d4496e574968cd406a83a79c20f5f444c1720b1cdb27505f0d2e60aa9f8ef61f6c18e320ed444f24b6bba012dd9d16379a696da72355d9426f554168ab4ad29a01a45a65b12133a11fc8bbcd245df98116b1358ba56ceafaa05da25f040134c0a2262d4b471fda778993114ea1f9aff4c85d5d7822e902ef771580e6500c460567f277898b7cc2df32a9c6c6e55de58d66792d80828cf921901f33f7671b4d65c5f3b25294f268aca76b08b9e2c007850323a2c738a068f32f21e04352b48c726f747e2add9b5bb99a8cc2f7e887d4ecfdbfc5b4991626ef86a6ba7b6e982cb72d618860e4fc80ccf270856543de3ed5c2dda66f7141d813536583292aa9e3c340a205b5baefa1d30be276f2c7558ec728c46734dc3967b46d2d5a567d99861110f8d60453edec8540e80e7542482f48295aed3ffe72e0d9dcf48e9558c88ebe4935f7ba25db42d255a40f3e08db0ed7286e32c25c51bd23f7f2ab982d0cfca3c0c200deee3a3c16599df8527d888151a79baa4bb7bc52947f1a0ee98067ad7dc1228b1c5110abd26e0a5b844b19c98c66d68be228465696143a869424f59ff3b9ca4546a11c9db4f158ca99603a2b3b72565f19db6ec58503fa7c0b207b5ac02f9bb784407b6fb1ef9eb0840ba3c2ba2cdde16d5e371e6684989991e569be090a881315bb288c7a17bba21a9958cf42f78088156fdaa82149fb7393ec6270c79fba15fdf9cee463b634625fe0ff13c7b68cdee10ce32a751e58b6bd0f5500c0386efb5a2dca3de2643b5e8ab51b59b962cb395d6429d9d3107165115510fcca7623c579963b305ebc1b80fe635961c0688f42ae2429cbc5a644f1d51dfeef89644293c5ee040b7eb2f36d5245f54fe432e1f2c4f18b7f6854f15f64e1f5ee6325ad41bb12e7e72da6dda3fa25bc474394dbea69e6856c4ffdc8472d9f34b3490ff9145f257ae6c3e23d495ddd90e7ac9e7db6532bd26292b01924244a0e60dfd4019b5a9235873f4442e501aed12bf470063bbd49b13d3fdfef38de3d48ddd762dceadff370adfaceb84a3df611c17fd92ac122f2f5d178026c1818fcb49232ef9135542ca52e1687a0ef17822604fa760c118557f8ae052e35355267459b30cf0d01665dfcc6a0115331873abf03ef6881a8e383a3a76231b53c808b1a9022a388e1a7d1c65e0a2662cae24901c000df5eac4320c14663adcf7bc9ca3474f5764ddb2452738d94bb86796220f69b007923b667e885cbbef5bea1ac908206396d6ed7b9b96ac284f57a453c8b69ac86f5b6457bca1ed20324550987da59d679df27bd10173aa8ad64b08afb5197e1ac535ac8071b2957f0357e65f2ac3f8c05720845f1d4712625c5fa5ff4c9362c6009919c584151f29f7523fcc44bc4930629e63d439c0d51b30732872351c7906070bbeb2c24e82a6ba3b8299c498b08b92245126c3de53f3f626ad2dda2e8982376a06525cc304ce87e34100a8ba23346c565771ceb6da0626cfef17ebbbadfae007da01640246dcb2ca4725709ab710ac053b2e90c070e58abb5748da2e0c7cc892927d539d7de91f4e6c2ba393713fbf44f765e2b84701c4cd93ee6082b7fea6d1160186906b3ac825d6fd48c1f7db4a49b990c3117bbcc55fc38ef6643140a82da2febc3bbd9a3a333b9a6eeaaf34a11e8602d5f2fb17577a65fa5d6d3beaee0c03019aeae82418a0fc3ba47e1f875028f422dfc9cc66955b885a175fea990cfd592427edc199974c384a81a29ee49674a230496beec96e4df3f4eb7e2d278cada306504047b0018e29541d4cb030e5de57fca3c2a0a325cc441365f73ba16aba973065c66e94323d73b8966f91426402f4da1e13d9a2d3fc3e98534d9ad09646a6be9a0fef211e152dcd8d3bd1136dfc9b0811c80f82e473bc5c49e4a9b375661e8187b249464961ce7fa665048e0fffccda75d5c716964b07631e93f456615ac7e1a934985b4dfc4f6d0b87e5f98db33e6a6aa871d97d8a8c4c6d48a69e2499769cdf82dd3b589e1f64ea88744adc6cbfd0b0a78b9f02da254315bfe61281aa6cbfedf9dd42ab7bbe1af220e77e292a74b22f4422dcdf8c73b4ba420585abd18277fcfebf721c3325a7da5d7c1e5169268d6f99115da4f500d34184a86fcc8773e31828f775950c47ecdb43856168c98933209eaa25360d2dce587e744880c6c788b1f43b4792874ec4317934f3337da3ed94e49db94b691117eb69d8955722330c1b1692dea7396d279d020758ad8dbdf240eb4de5ee82e1d5b0c2f67f56b5687e0e489f60f8fc58f0e60fd8ec86ec8f543ffdead2014d7ce89d5bd9bf76d9b2e526b9d4f3bf6ed02853d8f1229f5689fecfa2fa05b61a2a606c83634424b3d7ab63032d8dcabdc0f93387ad158f06621fd1a12ca916d6c0791e39b4a0c08b143fabb480bcfbc8e673553874d62137622e4d8e9f747a86a8787570ea5b1efc39844367b3bec68d0567900433d4d47506c1eceaf65414277aa278667d8608e732af5a6a3be2b6e60b673c1e94935ac5eb907cd9e4e567cd32d6f3059b8db94380b67ffac598e899c3efb7fd8e8519902d65705b09c5cb1f35dff45b3e2163b873dd250afa668eb7e350e29d212aad6a9f0d5d2249bcea1b93b14f1cf025aa0433c0269a9b416d48a0ada2c844d564a68c417ff0fdc4462d5a321b366317283ccee33da291cd5f4c11e45f736d5cc0b3e7fe3289a2efb193db0b33785ff5e7d0f20b8a899066d2080ba2872b2dabf95413fa7831dc4dd2192b53b645acd0ea6d057f122f6bc648a741460c93c3bd78a0afc97ac00317a71b4e71885aed51a4a1acf03d824ca5d523d26de2ecb2c85dd314bdff3f9061fedcd4d7cf9fa3207e58160256ab5bb1a48b8a3782b9a964fbf365b7f61c05f6fa2fd8857610c4e4562782260fc48cca728b8b576a63536e574465fcf2e745f2946b9547adad96b9fb65da41fa1fa085114e1d0f9bfbe1e9ac847497a9a5712e18b222e86783cf4cb219668611259297e7aad1fd1a0663a2e9056be875afa796a487f541dabc1391b4afdded2fb4fdf06ca44d8a6f56316d318c2bedd32358f7acb8353803c95cdfad876c29942133ffb036545229fc15f25a012412e6e6010c79901628208feb9e3f4e690b64bd05bfd275ecaa573fea986ff720aff43280faa55fb04e33b3bd0f7d27cf3c29ec910b8afcbcba10adccc52efb1ed9e8b849c7a05214f586eab69f70a9c1874dcf7dd9a0aaf621ed333bdd8bb603ddcf5043b92e9894f12260f04696a6a51fa17d76dd72b368748a50a4a12be3688a5b3a0816e7d77a325629e0c35ec89816d9cbeb7272fc9703084a415cea0ce37063edc919b6f8a69336ca4a34adf9519f0ea54c76a6cbf3978e7e4beb56246e55617a29905b37d03519ca30745ca1b4d13af3452c27c681c1c3bfde3f31e1e970f27aacfde98c62eb1b582ae0b7aca067bf17c63da23e9b5956bf1a0ef2f4cf7b5a92afdb4865321499ffe294ff69c94ee1f3c646dad395a8778b5572450d8e26fd7df802b4a5806eb76ca709e9329dfb47812074245f71635b1b711687a62d61e7b549033c0309f9dd4037f01ee787207efae532e932e55ebbeba5f24aae33c0459d99d044a914ff36f74c98b9361acc76930f0227a9666655ab541dd7f5e15fea42cfe00330cbcc30d98db1ccbcdff703c2720df101031f6af7b03da77444e2cbb1268f06e33b57fe02d42adbe9ed405d164b57eb91263f3e28571de95ab48783d19e5cab57d9581978041a5ebe75daa0a3d5dbce40abad9c2d1f8500f4baecd0d6126fa7536100bb47e30b4455e2c94df8c048ea57c84b507bbe0902597eab1444e18281036b5562c197d76b3e4e23c7a673989fa0bd46aa050bad3af321fad579425d148115e353b9d21529a9594cd75d6b1fe3d253cf014ef140a6cec4623dd7b0af11aa900e15ddc8a7c65eab4229913660bf538cfe2e7f6f4979bc07dd9a6a04477b467abcf217734eff8ca682cdb1ca48d2431a800d9a27b39a4545e4df312453297f498d7907c72e85601f72b7f63852ccdd7e5400b25a14246de5a022eb6e8e47a44206fe7fd9437c6f18223eb5035af424e39d6b395f56e44277de1c753d0ed543ad7119211d2cfcf3d2d1a14996f2a3e308f4395ee495de457a53acbf20902690461e23fa2e7394d6bbdc7d8fa156c7f9ec2c557694c0c99601b3544cbd2963162aebbc3ee375c288ffa358ea5e2161fbf4e0327ce8f68efa9a1bba3e665b06c5aaba480b84427cafce931adefb6b071fc232449b3e01cdac23ba29fdd9a75f42d67b6d397463aa9d9d9b8e37b0f6637c038c85cc8537570275e20d61c2fd13939cf79644a856a99ee84fe6c44092b19ae111f1821013b5db12737b77da719710d673733ea790c9104773349ef014454fdd8c0a686042a0e74514a6d1db02b9afa18b77d3054ed04fd7d3f2fd22c403ec3b615428fd7e87b54bc66b6595621897d551595f8d22766f4d417ba92f42e5bd5afeda4fa8950c98863dc6fdcd09a7057cef93118129e7c52edf8fe92bbe79db83dca83680098757d7be5b3bd42e2e899675e621b3f64446043ed312aa5960431eba4efde37a81b48a89ee24de90c984a186d4145cec22ab8d754f9eb176d14a534a64992a833aba845feb479a6c670792d12510e66509713ff1eed171e6135c83f000f27e0625e19367df6894584cf24715633f1e3cf6a095bf01f970bf06052475410c731567011679fcc34f3a8f6fae885d487e83d96a05fcbd2c3af89b55e1d9c8471c585b1559db99dd38ff9db80411a8cf7f091890975ab8accbc1578e1c943aabcaa410cc61a6b0e2d046b42c09a5190d2c020a9e75f370c74703d51e227ebf40add4c9eb013e5f99b4b569b700994c70598b7df8f32bc452aa4641f4b0c08682f5207c8468d368e1603b2387d4542055492731b4e20179b484dcdd17adcf3fd74b5354f29574b0c4d62e9d13c02239c897145b412f0db67a02fb7f9d17569f1ea7dc30b05df4c31781c86874495a7d5baf7523e620438884b82211e2a596e04dd97521fadfe04eaafd2966077e28970a338e2609bae55fba0022101a92573e1c6345f03fa5d1a407acd65067ad9b782f10f9f44b08118f56e4a50e307fe97bbf60a69567c5913bc7233a31b21c66d0862a9e93756d07d0bdd66531f3893a5bb8a194c1dfc40d2c6df49be91f6c009944d45afa2c2bb5bfe7c29db195e12f29af3d7255821178b6da50aaace8a8718d3884c49783bbe25b572db85e7b81b131603853e94649cabb4e8897807b4508ab027c29ca4fc03488a36cc01758e6ec4398063c46c5b4a441f66ea0c20472bcb65750f7685793678f8f3a73549ed854374106c8ec879f90f20c18b4a2448fc9b65585fb384ac12b9cb31f8a9d3da6cd637e3b7d8d2e78d59c8d83dfa2b5b54975e8b086798cf9a73fb57b2c10b1654627d9e4aa9060e263b27221121b038b43023ed5565bd13cecec0f2c47df5d1cb9617db8108f8f24d5ca864ccab7cfdfa7324be551818554917b6d13ead041e22cf985dcb4d9899b201dc51e3bf8cbcf311a60a5858509dd56a88e03b1bbf15cde5759ec3ef1dc1d740b4a4187b01c5ef996cc599674bc6cd194c3cbab10e82b24e7159de60d08798f94d399be8711c8cdc694f5c14ed6a12142f46d2f4e2320fe9c0ed384977e721edfd1f766792b081a8b35bbe18712213c1b39bc788d14597f6b573a9eb07af6cfb707237a5573432b0e798160892acf816a03e10ef5dda06ccb61b44ea89f5e5409bbeded3f201b2e3a5b0ef03020cf46e1d5936245e1a1793ca92cd5876cfaff67752c0d2e8e1c1d3dfe39e44c580f6e138dfc3c4d9ecf88bc6fa61f887e438a8854b5226f84c9270bafcb7e22856f6ef737872f73e11c33538a951f98a36745c5eac83920ccf2cedbf94223ec60c9ed6c802a5c3242d9a5893dd4dedbbc12359eaf8601b6165f10a8cefe5d5438669dafa3e29b97f14f96eb29c8452871a29e33004f337734f880b1b574e6fd44ab2ae6fa623fc3d801a48a48884388af2d08ccaf3436019bf821f9136a48fad706e6991340646b0795037bf71591bb010a1f5228e01bc13bd312c77f61ac555468393358141f5b72d3b55816fb98b2aeb8a9d31a867d7daacffe2825ae4b8af9cc2685486189ee0153dfbd32df2416ad657c02c0d331cb93944a683adf78097eabce44422f1898f0a00eccc4e552c0656262b4a8f24e97831a939d8475c9b779486d86d9ad7e5d790a60a97be7fc3f464612641e066ea1fbc0041cec14da6da03d5549c156c657d65c77ff99d82b55239f8daf13c4affdd97f6e0121a45a78ccbd2ced435534338f36397a62ee697a6b5bc0d9a40b94910f6fbaac4f0c8c17d95f1ab44b340ab417c4064b9455c6582958cf47289b509aa61ea23fe58a1d014d7a9d49fb142e2fbe0100a7f78b254dd6bc4803cf47f52719790a2164c763dcd4598536d6ef4c0eeadc7948faae09ecfc0e543cd558569cf729707d481f38c78ddcd96c79a2174eaace66ea5b51567cab2713c242e86731dfc232c4fcd96ad11f3c8fbfe3cbd10094c9e9cfeaa9b377b674a08e3b6b6f71c0185a27de36977fa8108e684eb987cbf094ac3c502d1d0ccb2f7a38e0c332bc7593a61e5187544a75d6ef8195e5e6683defdbfaece4d79e5175b57fbe7e16c5a9695ae3e5c6331f8e804f8c30cde225f811ddd6c5148544206507c5d11def140e032ff88c63b5dd0fe2b4edba180663bf70e92180024647fdb68d9013932384e1fa569ddb2767da56f8f06b0c608e18c0cdbe306eefeda6f16c430b9c4ca1c6c67c425a6079a65ff95f38b3e107374e74fd7addab970f956b8d398252740cddeaf5187c075d1727927e68d514fce5a2b1f38b044bc84bf9300fffea2d4589a07b54808f8ff3bce45a2babc5654843c607f4550790dea6ee21611e560598753c6e4f57e90d60c4ba96e01bdbd2d1a2ff6effd24b3e42d341cb373a83f0096caf95707d1f834a7fc2ccbfa85481b28da746d9f7b9f42c4ff7c88a1e4d385ef44e09dba08e7f70bf89d2f2a8ce35faa6aca33d1c3e9a50ecc4f8eb0d38d7fd5640db074fd3d7f5c08ea63389d05cd59d0fef22fd4bda2ed8957ca2aee889b623001ff33253696715c71a857e40a35c5d67d4203155b13384078d333ea96f1b1edf3f7380b4eea18d1d4f6666eb1e8fb05c8056105609e5dced1b431de83a296c7fa7b40962e40ef5ebfb0adb0007391f2c2f6a224a66b917ce46f658b7f10f1659b413610b7de98c838c620995fcc8de280b7c1eb3a267ff649941924d3e44203800cfb623a67d9aa909f80521e35550385b266a16bcc10e1e20cd86844f3acbbcf64bd7611c930716d4f434004957ab5301e5cd7caf6cda9e4a588a59496cced8bbe7cb40907608f62ed0d8f35fd22208497ec6f26507423c9ec77270458eb655628e257fda52f76a9a75029d85fd08f905477409b192a1823846d48ee311e94d7292e5a240cc1807feebec075c9c335a025caa56572cc4af2125ee1d6a5b31b0bf7e4e6ec90fca55a3c7451c72962976bd2a09f3306fa9346f6254ab764a26c290dca371a1c8ac5200f1022e7c8a702a7ae360fc530a47393602356b3ef8289b142805778fadc1ec518a2d6f1c60a7689daed113516150194ea313b25ecd37a6296d1d167998068a06fe78793b1af9b65cbf40dd7f47b6e1e2f9f87b3d51532274465623f7591984f87f94c7f06bd9adbc9dc2835b2801d5d7195fe4f954bca4c4389a3bfaba94a6788be439fbd1ea7adf418c32ef2ee0ecf9ba96afec5be593cea4773c7f5e59b22828b994c932645fa3dad59b523e484f02e1fcc2b8638bab2ec9a2c85375b8dba5ff240013474a339159db7436cd45de68911ba7eb6d0c7bc18e6ac9ea75824a038e5088ff4c57de1a1ed0f480f634ab0681bb0d2e6dbce74919b1e7404a509c14f7839de0c779df295a2c5bfa506b7c88e3ff450478aba667565e14d1a5f962884a2994794e69c6fd09346809607f4db1c6e0c51e630ac4dd04100199750f9fd240b823d8a9eeb95a99f8e17faf41cc6ca3bba93a251d2229eeffa62d9c5d4ee7bad3e8bcc622f307905f0f77ec2bdcb10e3d2d92a674f1664cb6bedf6bebdac48ee0e2933b16419edfe93f3c8d821235b49934ddddfb3b8b962348f090aea4ce6a04f6fc640983a6ac10424ddaa53beb04e8c4e15c3e5ae72c2a07d55d2881f7d9ca6be45a9b3108ad0ded646a17d45b436f8894ae307f00a075038dab7139bcb2a56e2b401cd3c775ce9a97638990c3d7eb4dc928ad2cb68bba0705c0cd09ee7a1d8fe0ae7d881552a3a67f13e5d606161c857313cabab8401f208cecb8224d8acd4208433280ab7df3f179b0964174df63c7764728d44fb69a2458d68b28f3f53660f585ab827cdce161f255941e57caf84c07a75bfa707e8c291a9b38b38d8e0ca331bc0b67b289565fc08d86f159b9d3749a11990026b6ad09a3435bd1687bd92df6570f9dfcd7525893f830f0b80c983f67b5e78c432cc0e59736d382493ccb01341228a52e9dce3d6fe7b98644d7bbd576e02d9b6f380e9f369d5f3b181cf7892cec41942ee39e0339f8b7d233c17fff44b393fc77fce25e2aec44645b5eaa0f9a9bb09633580f245307fd25c782b0abf056e0d3f809a00e7002d6da81b13343682352675418e91d4a08ee88ba20bf6bfc98a81853a6fadd4a90d76dfdaf1bbbfc9a09d865aa9aee9097d734885478f69e0e6016f32638c048b818632d7af16e0f665350294a169d4d5717177bca86a6a321a0ece61ff6ec561c48f318b3a739135fda48cbd9c4b335692256911ff7f9daa8420fc55e285de6c800cbf969fd5a2eb6a3ceb1149dbd7a9769c52ec927111bee3fc6e2eb7b5220b0468b96ba95f8c2869d039bdd07ccc6fedb719f50ea34d0439aadda8b3bce2aa72e486d2e309887651a9d0bc2bbf5484b51176a8c1e4c1d8c0333637b27197d173a0aae28eba92f690a660d0d23d2d1da74aa72c1bb678c53531b755f6f3e44d6024e05e798faa36f90bb3d0331000056e3d1ecd50e384f6156ffc1a3228bd7d32f8436e1f63ecba1e80d2c22c49f7c920c661e00f0940fdffac87ac1f8133d954f928691068fe2777363087dd4d547d013f8f19ad5f74f7a5e376628482fbea9214ff6efdde865c01ed7a190b64b15a4584a590af5fd5b21ce6047c45ff88b8e0c094d2a05aa886b5414b528acaeb8208bd27fd915e9c83d592a94583ccf73b2f900f362de183e1d0ddf8a30d62fa2112e3acd7c5621868e34d07b2cc0d6a38b95e89b80a3dbd1c7a28be6885b046b5832e3b761e5af7d03cb623dc128757ff1fd6bc1583d7e10d18583443d42e571bfe65d67369cc2c43c0545ce8c7bd5832c3da5edbe96f2ff8305c468b2098f87d3cff126937e2b5c8f02afd0f207683c6e8ca6d542150c28d1f25f3da88d45ab961b17a86f58e180b1382cdaf5e95f47a33cf443a790026b9f02fc00291b4ad71d4d00150e1c7d8c70b11c0a5bae326ad15006d35b79f26d2f7b52c5bfe968dd6b6c0df3452abe6512e832f039d61cb67349ca7783dd5c9153e6b03d905c6c531b7f55d558630781449af6c232fd9dbc865c1fdc51a3a2797e3878dd2988a78fa94e23dfbab9dc70baba44e6c4d2f6d3365a5c89c99e8f27ea1a9e46307b6fb57489761679036906de95cbc17fecb06b62cac8e22420cda059cd2d0833b19cd1be1b808627f2fb01332390e707b4167162631ff073376d283762c2ac4ee80b0748362832816c84535070688a2a59b6c3cad613f83831640711ee0f19714b1ecb51d888d623001beb900c814479bde3b91415c9ea0dbf08e5b6a1593a5b843a321ddb6f7d11c57a19de5ed92d28c436b56595589c9cd697af79acfb04bad1484c366ddfdfe1d77e8035d9c542284e09c7e3e24ecf7390b0145032e1c2f0ae36911ea49098cd82ab93cc0f6c1ab86ffa644aad2a0f8337d789e1970eb26ef4735d284b6c26fd48a6a8f3d34aede4196f2db1dee35a4749f5e4b9e416f3a998757e955e11bfc54ab8971a95aeebb5870cbcb6c45f9ff25dd7842702a4c7196337cf4ab252f1bde452ec98743be4fb3b3e8e812ffd0118cfaa09862bf620caf3b3e4aa1bb617d4fe83a51bab6b3aff41b3f748850cfba67a859df7fa5c7e627b6cca6916f89ad03b8486da18072d86b0e026582d51403f2fe0ccce1bbc1bba60e8ce6b448504ee1c2df7f61bb06ced237a39bd61857f272615ef2ad2117053da2e60015901e170387d74a6125a024d01fd60166bd5e8706ee61e8935e7fb58334cf811f8c27269d515910a41cc85e3d928172f8660891154f6c24b32e167f50cd31908d25334099abd85d82c21a441337f625f37bd75ff9c4ea67a2434f3206e595c90cdf32a367ddf5132e349f6ef4dc82adf9b72c496eddaa03d2429323eddf6887d60130946d7076c5307892789418f9d7f5d7e58d4c4eacfd3ea9f1c2010c7c66351dc200b416902f3faf76b82eaa2a27c49d07b2f48b25e098d866c53f86fd7bcfba7269deb5bcb7debff461cb39460582fcd491c86cade6d26654cc5129163a7d882c3873ed6658911e0a135363ed1f298cee980edae30cdf6d45521eb5757937eb2f748d5f94923fa3032fb173a664f219f99a7773efcac6103e080b4ee4e6d822b4d49688649dd435430ad3567bdbaab0288776940b9d0b5329e45b207131ba51adab7c863a0b9d3095ef57a686542812a7ffe9fd94706a1378e39ed58255b805c13f4d91b955828de5c874024b2b066415f95131819bdbafb364e5a195d5976046f6f5e5ba9091cb754051547a17e11e268299c6ce7299efd36952988938affd9d63081755aa2184cea6236c0ce6dfe9f57740828fff8a2cd224c6d6560a192d5ea6340e0713c7aa78540cf4179bc907c4c2d490617d16192b315aa76e6ad4aa7139e40b5e53da0aae8f840c396258d72887cc8a1b828d88545ba2a05b0ba1f3265c31b34494cf687155b60fff81e78edf63b05f938302d74a609235d9b78fe0c51b5f13dcd0d1146854a90f581071b4f88ce30f340d2cf4034b8c650d7cb4b002935dcd8d0d9d442aebf12696837786b5c98ddd7e50ce45f4b517ab4ef4b698c71a4eaae01bb7eacdae2bd618c24c20abd61c3d05125bc5a05992de1e908a064048d758d0c6552074f3b80a8db0c7e69e82e3e6ffc77685047f7bf3571276fed021bede7ddffa1aac02cc44fc6d8d6b9ab56732973e73e7220c6089013269cc398f2c05372eade411c3dd027c327499ecde1f7d4b12b9985789dbed88ddd8a338e0ba30b37d7644d9cdcb647e4b83db1487d6a2e0b84ef630ef60176288e53c1aa7c326dfae3ba9f2faa458c7ba1dbfe5589b256a18de37ac6bdc0d8238cc5a4e7600e7b6c8f18e12f6ea914cf035886470f7d516e40c54b49b781ed345d054572406c5a2fae160d684529c2dd374dbe32a81f86dc549aecf1be67ac1159bdc47ea790d677c196f36ab670be33982f0f6b9e4043ef93b6870c4f668d0d1fe873ead4f3dd3d5115b839ab5df2ce64ca54ccd38236fbd381d964ddb10ec6721459aeaa6f00fd2bce523a892c8e136ecb5fd536fbf4eea31eb324ec6f2fdf51a2b0214a8ff504ae530d7ee12984d079c87492d064752be7427d02e88bf6cf54e1660c06fc175a727c085873c60c5494d5cb57b5df96ece3b9aebf2d5fedbeac28a089940ee4250fd5b9437b072290bfb7124c6286964186b555f7d08b9f6e50f933baaabe7eb7bf15651b88d2034fb2fbeac2514c9995d94a933cfe021e3a2afb2a476c862b141e76a99e5081b47799bc6567d06728c8fa331f8912b18021592e43b45852d6174e1bf448437f7b620db38f365d00afd50438c1fbc1b25de6d6f97182a0418b253c470a78ca6f633dad38e2491efafe0fba67d7e6e747533815d95b220ccefe67d16182e27e81bd801249cf71347ec9e6ebb3d32edaf182f1634adcb6deed05a23f6f495ec21f9a730e2d3ca0f74e2840e340baf8594c1163324881a75ee5198fc6081ef77c2952c063690123660e17614b40a6a87b39a7b17d070e03eec8dad394771355f630ff186ebe6aae505cf7656109463020eaf241feedf9b1dc23887ea6231273050e02ec6982b8370d190b4b6a9d59add9252435e6b2ed785ed38a17c32256a510397e284e64a09fba28fc84b1c4365855f670f5426549cb4ee8eb41fd55eeef97fad8126ab1ca2c5fca5629927648c2a48392d253a39f6dac4dd8eb552e3dad43783d29398c53d66bf509a74c4d8a64008044ae67a635e8f604230f65e37d84b10d1c181f1f4b5e6e37e80eab5c0f7eddfacab813e787c9d704c3012aa137b0792ca8befdb9383cfc3a2decb5e07c4271d4673dd505c3b8c129525665f4cc9426345743d7f592572078f3acfbdf8c58fb53e57e70544b586f338d4c1e87f0a618506538ee6d4592d58dbb9a2c0b8ba8719412a49ed437f86b7dd8d1351129a2906e52d0155a3223586be8620ddadc7a67943db4dcc0d01810fcb811293b540f5ad16022245aadc057bf432f022474e649b7bda36dbc16bd9b0a56966513211bd08d167fb80e009b541a774eb4385c8f4b6f6a70e1973c8d58c203f9d0a092bc368fbfd4c7afe726b1d0966c94cb32b59998224eb32f26c9ede5ae22660f802ba253ec23a1ad13b842f0925b3bdba891b4c746e3d04af20a50e7701c0aee16a7e6a8ee035c8da7eb6a8cc56beb1b0407056e3a951c876cd9f6310170faf6548c4a245d37e39dbee2033b6a54b4529f9e0941e8e43c52980a42ae3f1877e68dbcf4ec94500dd7e34ca9db21acfb7c66d7b4c13edb4aa52cf63866ae018af5e95351b632667530974228aa6ff16b965cc4d61aab8531ba13780d4ff31a0ea9e4afe6749ad70502ceef1f2c3b238c4d16fbabcea682d039ebc20c7e58f557c7cdc5546d7421678c720e1dc153e981fd3dd2ebd4279e33728802e87a4cf5217148c978ba2ac2c49bdf30ba7be54cc0d110f0efdb2c7e71fc6fce7ef4e0129e8ccc22ef4c6c2e9a5365dc8e710601a50edf28cf58365f03da5b6c95d84a2acfeb26b66db3acd57996ca73f7de2e3b461891ad85f3c9e0a779bce220b266dc8bd9f578b0b0a3360029c5f1ff52ba1bf3f61f8a84a5efe1224433db123d30ffcc022b59f2c0ca0365a38473fb9669a628c717744292b66d6c491855cf514b9e290492732c36e2575c812793922ce04afdb81ae9a73aadb72067f427b6a57d8ba23d459a957f6dfa39244292520c26fd44015d9d702d6b2843c907566a61307f1ff1322b1c8632b488675f5407c628deef642c3adcbf097aa6f6c32ec138f3c83f1a9f36d4c4bcb3877c7a296a43367465d5636c48aba2e48bb24f418383f78f60e0a2f593e9dc01401d8368ef348473deeaf3428ea5da5a4bdd051f69d193a3fafda8903857230624cce0d9bc9faa16ffe763dd3c2b54d61626f4edfd96c1dbb9faef354dd8691b6bc1e8f1121b250734584c6a0bbc3bb42ad05ecb51dc9e09f09f0b800e2e49349b5b68dbb20ad4d59348dc751cbbba21fd053bfea549ee7745a1652c04eda28ff26422520b8b7b0347915488ecfd84983e35b5f97c8995fbc80db721ab45177da3434a4d36d34399b8a38a1406d64d6bbdb6aa2fb8ba1f94c1bf91c6e9ec90311437077a1188385111d868b6d40a4e627e952db3ad98399ce3abd8a74855b7ab9418f885fbdaca4ebf426bc131cac5679ca005ab5f12358acba2416f29cf7ca83cb2ac3900564d670cb1241f840f7344c1132d943f458b40e0d1da2976f392a7e3a228637de679fa048abb7d8d621c6c490a5254273352eefe1282de82f1efff64f266908a0eea5a31f767ce3e180ada64a1581c7216cb7f92e46c741bf65004a2edd099ad24a0c6e3e6f7132e718bfdc625d61a5fead79ef8b5a0e9f7e6b237f49dc9fca53081ef1c304c81870a6eb6b7e995fe27997b43560e7ad9101bda91013424065943d313495edce793178a6197681449754463d43df629538e8dcfd3240aabcc281fc2a6577131762ec338f5272d07711a485dd7c8f631004b465aecdb7699fb3fa5e088ef2c68c6c3e9d42d2d88d4d443eada3107f3ea9a25588d6cee83206d9cc39fd0c167b33cb4153fca3585157d802770f9e51afeb49ae2390c3ec3e594e28ed9223d2ad7b5334960d89fb318af51ac5ad4ef38efcd60f9763e73e67fba43ca499b2352af8500aa9e112a4a624f2ad9f6e988a68fb900321fd6f772fb03015f0f45c5dea7c58b946847a4e3281408a1466388448556a4dc53baf1e75b50552c3023e1ff41f36cf5addf9093d487102e707b51f0cf94959af6aa2ff012e2cf2714c96e7f94de3a096461c95986dbdb7a3e20ce0f3bcc271a2d153ac689d969fd0783d224c8e823cc0611780c9089577a9f22edf8ec62053de6f7f9c49e7fe03db80e3e3e9b92df730f9df8a7f9c76afb24f7852bdbc31bd34ed8a73b20601eb1bce33f93df5ad34780da7194fbcac6308406c48e54a59f6158c6f4ff5434bd910c0cc3a1f9ec840c60913ad986d78ca8188e7b25759fe3223d719fe5739dea4d838c012d649fb30036595b66bb25b48a5f100af7b212fb88f74be73629af39e9615d2bd42c42b31b9185bf94719359287c55a43c545e6312c4c18f85184a2b42cbf2c39c743de2d58122e7bdb3266341b3fb333df5662d2da97a65b05346774d4855f81af0ff54451b012c543f6021e9ef9726a4056d613aedaf77c5e36d60d045ca6f286bbd10c2f8d3eb34095ed89d3f66d089483397809990777d46479d42920c59e8437d6f96b65b2906b6cd5afa558a44d65675fc01ffb5ef68ebaf9f47e314b62de878877976a3765122af206406e0c4211aae43b730a8458cb746459e5172283761caafb25c4d3ab6dae6833bcc5b2bb8542e35a68472b71383a63a7dd632c019c66a7cce13efa1fda2a00c5f47fbeeee1783dca71648c7fc9b709b11d45b8f22c780cbbe467ed312f181f745b745a68f4b2c8c774638c70e4027993c8ff203ed23ffbd1828cd2fe270ac5f91845c29b32ca331d135f3764027d832bcae944aea3293b5e4ed16b8ea7f90b6b6b79bb50bc9b0b3fa4c9ee5b4f99647a2bea03b9c5ce3b11d4e9ce8dcb08f73517ecab44686145511b5b809ced1c78d5cafee94d4a01da78e09509afa4a6f25bdacdb09e19a7a55d9e00fc16fc1393997551882df0ed6a7355f93bd0bc79a4fd4363e058392c24a9b00c42a724d115af3e851b59e4d35fcb5950200a45636bd13b7bd62bbcc95eccf8c5c8d6eee823ee184d29240167780ab7351af255a0134ededf2f2bafd4d4cf8beec3a86905d61eeaacc306db6b8e4e2c8376b66e908b1c73944d284ac2bb3051748257f1465af7dbdf62d799017a893e46d781a4d2a990623764fe1b4dca021d9461496cf7c2d3086a3a06c991fe9b91cb9c63387658774d4cbe343c652a47b8c1ab0b209a2493bb16aa072db8965974908fc31c7ffa2999bb7debee5e9080079b2d13d7fb660894e612c94f24a433449a016f9f575a7d8691ba711e8de917f3230cbb6e21a43c851e26f7792f17c717d5878242c3f08a95419b4d8fb15bedd086c9a485619c27811e7a73aff540be04ae76cf4395fdae718749fe81e314e509389370cf41f90a9cdef2a6893932619983e7de420c96d04917ff3e7a4f606982f9c715948cbfd46227c556f3b6138c556f821b19791c0c042a1964db607ea5f795b0b84d3c05dd096135d04faa559d8f4d2a6138af13559d160f603cee65e9dd5e709a78a5919d311de4b47656c75cce73d51c395183b2a880854133c4e06e1eb9e67ac551cc0c25fcca69826206bca28f61b5b8dcfc355d6d5d4dfa4d6310526009d9391089ca4af5080907a1ccac4b5b2999bf7eac87dccb937ba7eed398c34a1b1158fb0948c16a7f9a2b38a00800fe1d0208f8d3264a1a952bc951b2c4e8932c72912246b180dae749bb6901765bb71220cc33ad8232f7fb92c899b8bcadb935099d5aa98edef4ef83d7dcf56c5c1b48d5236b980c1736930ef4d401e90a7f866c7034f5abd7c76890c963169e63046e3573dc50b0710edcbd9a9abffb1ab1cef0abd37b379599d7a64a209ddc7980ab93f65932ff6cd74e020b9d4742e6a88807f98d36f358ee0f3e5d78019148e3b31e5eb2274a31272236e6cde3981abe540fd1cd373a006aa355e7f5523182b84e6ba426056f56f0da0a1063e4458fa6325fc46f3dc3012e9573b77e9caee8e2d8fec9117bd96166761ad9e313387262d4c830698c4d0e7da87e6b1a01d45555b29fc32b729675c67f476a186e8e2c1e95fe9c236aa571b630640b28f343f2858c2bc35e24ed63c1f232c4db003a4a4553717d290d02d2cf468de147aba0d2ff22afddbd2f6e3d3b88b02372e394c68e4223201be1737f907dfa00521c3b596e72a6d1b8d63f0e5f7f4ebc542c0cfed759a0f12071e8a47287e9ac7e1cd651063054820e19224574a8263b5f950f1d71a3d983990b1873d87d65a2ea40d7451886017c83d10fdb368291a947e6c540ce9544c9ed3dc9de827521e251950cb9310e27127533e6da7860bf348c3e9c637e05070deeb1761b896207f29491e1d12f712f10285422486139472877600a848dee60389ae68ad0132b1d5cc72f0a890355cba552dfcb7c50a7f7d5d4a4c20f2a3cf8aa5967b307b02fe9533398fc9d2902edfceaeb1dd7fd42807aa8a82132ce94eda297fff14c323299d9922fcc22075a7884f575d63f2b5c918a203d451b181f992832dce86d8bc2e91ca667b7cc9e2445b6f12c44f00d27e6d4b38359480916baa13acab6e9e88ad2aa80d99eb9d6a7abffaebbf6aafb942b902e9063c5cd1e06cae74a6135eee077faa5d43f6713a39c46d626872a98c3793f7e9d8a34ce3e0aa1c6b624744aa5f27589a547b9f39bd207b89026dbda9e4e5ac49410c1cb7715b99a7d861e0052e6fd0122602833531738afce2da5cef49ba79c701d5dbfe81d758115698a6a07a8b4480064bff1dfc3936a1ab061d8cea2c0b9af5bf5bb37df7fbc8c22a6ec8f2397ab4ad9bf751c92dce398f55395f315ee1858170b5a83ec81d637c79f461630d4b98072cd6fb9d92d2c784440fe9d039ce438037c232cb40c8f24c555961571b247af088087e8dce7bbe94b2a1cb00037a37e580a2d9945effe348c2a0d2dcb488acbc1b7eefde143305aa3316dbbaade1758fe5391e295236a69df53272b2528b74a5462da8b53c18ca906a36be592fd21b07f9ad4e86f2d4269b8d5bd55fe3584875af8fdd8eea7e240dd4f11e3b1b71f41e68ea6a8681b81b82e2ca22fa37ad5d0d63204f260c6a873300d86a4712b56fb4e21e1912e8b11de1d5155b97625a889e75e202944617046df2a22381c6ebe807983daa0df505938ab53331b277c668afa4d911b55e755cd143a9bffd95313d67c27e2e32d6eb696d9e0073004a6aea4949908431d4a5e5c0ae6a1aea0afcb124dcdc9944f611a3da4abc017e665312ea99933fb1df7e3ae8dd09757ce0922b149d95f85ca816ac015f8c5aaecca41d08d5f3ff11c50bbe17b4ca06f68691b308cdafb32f8c118aad15f8ae569d12f0576ec567b0f20bee98c5991d1683664f0c4d6ee58a6308d48ca66b8d324066d217c2a31a16b77085eb6683cea06fd7264c76dfbd79257a7d8edeb719654fff80082329ea9e6ee16e14883b36dbd97afaf21251f7bf77d6701d2a8ed5a8ed4d8ae8507912e7ea3787e88e96491fac3bea6bc2d75a9f5b01fa44c009f97f0a57fd8c86b886147e0330fd850f36e95bda8bc78fc75419c7d40008b5255be77d3668f1578e4d4d8407b228414452009b6a513dde3d991e189c13757842ea4dd39826d989aaedec7db96fbc8b779e9dddd43f039599d85ecb994141afa2b4d2113e00dce53cea4acdc3e7e20f0ed5b1a152f5f5a0fc83aaa47fc5f360f0800bce7e17f8ce7a4f24f38587cb69130bad05f4ffca77d0a11883f77fec2eb6f6d557c12703041b4ffab4924d8ec4b4e069e71e84c7453db2626f1f42cfa6e556f5e40614958edfecf7f02e3cf171c4411e76083335d4b4a3280f06e81dca51c47e2f5ec5455605bb3003d79b792938b673dc3d910f0468d70e8c31430b94331c561d6e595831d2a64a88b90d73feac42296a1c8da3edd035e82919d5d09da55e3dacf0a02d9511d5e4f9386ed6a7dcd8e06e5a651b5327535e3bab59110129a7388c31ee173a8e8e4d196a873a682b58fac97fdf3019eca3c9e0c621123f23b5488895336a1f9a3c595d9a9338bf1f1e9e0d64ce7fe663c12b01c03dd5425a04be1b0f72dc5d8a756ca0c78fee10e22659f5bbe832df11be7d39e2775e8b7b75a658a9779f1f38190b1c225e899bc3bdecda87ef04b0438ac412e71ead2a9686179202eeb9e6807d7e5794b80066b3bd33c69f24d0c088689dab81a0348d9f1b5713cbb88803c4aa640f35f36e4ec9613faf3011267433723426d4f3ddeceed6248b49a47cbe69a83a44d68eae01bea50d8c389ca9ceda2bd797f9d3dbe9c001a6b8d7636f4158d9338e789b277172367bcd0c7125beda2995eb7dcadb02b304b65560e029be7e68f08cd3eaf64e65f25201d2b5987dd0c4a025df095e8d4e709d30e9d6f5a84cc5e4c9d012d9333efa9c690812b44021de61b915183e5e779571e505c7541f373084ac0f40835548518f7bfb04816673b46c300849b689fbad9ead5f3136bc3957802f62d8531ff00dc262518c2df032c8ce341309688109955e4a3426472c4e02b0de50ed8492491a89d7801a36de0cd0632d88f7325eb70f1e25d62335cef8cf6e45937e4a0e888495d154dd676375bd24ff2bd1e4527ca5125f2a45fe8bbc01885d9a8c8603875f40e26d54759224d1a232b52a0c1cb40883af2bc0a8e3a358febe08fbfc224633214cbe37174894bf20b152fb77c0200f849e65b4fbc6ba014349334331c866fdd13f10aef39884e5fb8823f72d1d633a2ce07a4913939292adbea6f657beacc102007dd3c5f7778c57adbdb9e18686d07f52a11deae1c01547539f11060084aa3e11f58f7f9d353f3c71a9c0364274849766220432615e273a80921d88bd7bb90404bcbd5f7a482e9d92e23557b37faec38bdb13162b89217a85a4230bc9c40716daea9f361c80a4f5055a8aa9ecd914ae89be05c056e15873e3306f0183b5961b82eaa85283708b705775e0aeb31c44bc9450e3ba970c69d6be46206d8447b00567fb90cfd4eeffcb628b46542ac377344e2c058dcc3291d090278efa8f99d7c69ab2bc413697f66a576bc1400aae12e7cf7e61234e822043beca7914c66c494cb676f3f7e348f0467ad326eac6a2a75e59892ae8aaacf2cbb05b105cb3a80cd62203664dc0a6beb3dbf9c77afac791d83221bd9e3966fcb0d4b6bd2e94d7921023e804c62f9758274305ecd138281d88e032df5e99e8e7006ff0ce2313a5e8919c0927ef12c7be77e7941a29c3363fe6ce374e49c56fc17a97cfe4abdb66769c541d803e1425f040263736289e46df0f37c39dcfdbbdb30ec24d363c959050490d3067694d63ee6451f266723b0eaf7418fc65a91a97d4092c19a3af3e3c187cb2236dee7c79d2d7d5bdd4f53e2c9358cb1bc2d0d946013f311596c76ca96b42902743cba122f12973063288e79f9be9dded1e208117cbbe05d9b7f6a1b9e6805e46f198d85d0f82f72d169a494c8ceca355596b8ddb73f0902f71dfd073b30fc8da5c88c2eda6f9f707280bda7af5411fc82c2ebb68fa1d2f953d301e7faaa8f5141ff993da3a8d495c1869be56dcc5adcff129561537c5eebecdc721ad03498f76aba425eebb1293696c23f770f34b3788ac8c7e4208407711fa4a3a6e96e89859c6970839fde72c5f187ebf3c63ba6c266b7bedce8e95262885960159aaa889684b74aa8e384ba7e2e94c6e932285076df419649f7a861c53aeb693a857dcfe2344b50c03a38fbc8ac2c1b92fdf0bdf36c669791e6726d913944e25b8778c765e4eef6e7511a02865a2d77f32769c17f1639aecb84794cd9f6699598d25598fbf52479102ad81db7382241c9ffc1ba51ef5a4fa5ee4a3bd626a6fe34bceda65438b99e18db7c84029ff1be3e05798d9d3334d7705668a197acaf83fbed1e4c9b9d90afb3d6031e2efd20c923f6644be39abe19227f3df863b3bf8c4d3b24b30456efe5cfea7ce7fa22063626cb7a0830f465547415c88a8aa6cd7cf1dd81078dfbda923fe5581d4138ef9f5fdd4d26b262d8c6053d854d5034ddf9d51dc15d4d2c8c0d931fca8a1852e8381e91a6d30e3f5f5f463d170d5341b4639ca6eb96c3db1f42fce0b4149333d58710d20290bc020cfecfac0ebee5f49fdf106c4ff9695a13e84d0f9db31c8a72f44a7ae5637cae7a3e7a51cf2815c2f690c269628d1210331a877732e6ce4688f7ede4c01f8245dee6875528735348d6cab72b5d40e7d04c942c4a21c969eb2fd6837550eed83d9e9b580d5d23da7dd717ed3281d4118707a7f00837bc3fde83cc2219fd5c7b1baf5375e3a5295a7785c6758de3d71b5d26f793545f8487e6c1cae6bb7f63d0b722188ac63821adb858b1fb1ebb536eef138f7b3c4d7a19134a8f0c8a86c6f03e3bb818cbed1631dbf58deb75effcbac9261988d0b804d1c3ac1f4525422d39e1100db238fedc3fd02bd26e29d4087b08faa8b1ae7fd6df6b16834045a8923f62039cc1a4dbc683bb7042dd15899060e40df41748cf8246d1748583f91f5b2b9a1f73e1e1097b750fbbdb8c608edf1ad2d8156fc4cc528c10640cb4611bf05a83032d8610c9409e6aa4a0227014dcec81bc414d45a8dcfa6e7078ec2c96c8e19656bf1161ff4b25b30c0ceff0f64016f5d9494639db7dac66728ce3eab69ee760f373ef86a05d14327fff77aae85cd077ca168d59508a13dc5da22ab5f062cbcc7b86cc4040db2e3ce2ca26cc142c1c62da73b99532ad21be99659de92c9e4fdcbf588baaf09cbb74cf89acbe9a5cf389c6e88e1788ef2e6515a6b0dcb50a1de2e144c20aa6117ecbe55c231657908bdfa41cd254fdcda15cef18a56d143161a56e1c9bf89cd6ee61e99e75b7e38b2086dcc38a0eb5cfa9606d03b39aa1c4cfdc83920642812d6bcf31a39ac8d8e59a13da0d3d16317d849d93a08181ec65de94e2ce560a05b0fb7d4d03fab8985446464dd96fc118f528283d9bcbed152bcd45df21109594bb7d7bb83638027c699005db2b5a7e9556a8b9ced06d5ee4eacc8d8171237230b0c4e288e1f7b8b8b76794db19c1ddce4f71fe0c0f16e5c6eff621e6c6fc765f71302114c638e892c20a77c33cfee4c6c89f1c811077e8799e35467964c1c5ab2390fa7a614ce755c78b51845d86d968ec923fb88c55bbb9afee47467819958b29b43e8654ef58485dda24dd3f9319e363ccf7e81b7430aeef36a8f42b528359d3da10132bfe3bcdeaac3ab16229479fcd282caadb3d5c575e0d6d43745b6ab0202df816e8118751f9e3fde73f43722cad6bb9d63b89587154e27d7a91cb4dc47d3e75b59df3c67f28292b14c607c3ab2e871ab98616cc9759ff58a98e898d9d5aa5ab917ba984f8aa60b6a7b550be22a688a14da30270e72fae885eb365a41dd35089d9ab59a1dfabf4d6a72a34e9a1e6165b2c8bdf399f3453e8d5524f7ec40af795585de55b4322cd2293af5f43a85405131e46ce7ba3ae64974ab34f2ab792667bf7f3afe3ac896637bc72972f676f213fbae797ba1d880ef4ac8d2ce1085d342589e9670fde06aa12364fd7d6eebb865f174f809c9db3728dc58be954d3148ab20caf2a9dcefb180bf231691d896fe71f83ef353f0f079847c285f54205847f94e521c4b4f1c58c6fa9e0a6d3297a55a51bdecfca17abba328c98e9ccfdacab7d111651cf2792891166fe79586e3d5b3c432e30d4de12abaf3b0ea0337714923a2d2e786a87135cebf230dcf40af1b059daa6472ed9db815c6262aa1e39d9db1e6d875184dfecbc335adfda69233ba4e7103657b44c1998f6b98449440590787e5bf1c03f29e8285c074d5eae790737dbf984d5ca1f9c11bf2336e7cd345a2fec6122f9db1206f83779db92e6bbaaaf756952dad3959b03f58de11ff887f5227284bdde20ea210f957277a499a9db015933809ea115f50948be1f84611589a437d1fb8eee571057eabee03d6eaf741a4659805f375049f47b7ebc17e4c92034a444be884ecab3677bec103b47e8cb76331aa958e01d1399be239a259c7eec666073b838ac2b4bda1e6064986e8ab2e88749cdce03837fc65df072d8a471b25752f46278a92f7698bd9ac0b330040fc3c43cb30f8b0bb558e889f864c6857748aa660f53342877719535f3667c7cd101a92d90945c8a8119550a1f9dc46603e6b4a6e11d73285b9030c3a3b115e1f90b450b9ab1aef50df0b20605efb3e75ea152fa20dea916f35530074c6e30688c30e54ac8f3180210814846a256db7875734b193088939b9eeeb05bdd7d53bf4b9211188e325290867ec2c9b1f7cfee77aac58f3d0f0204d6cfdb24768a3d2375d5927c676f6e2ece260bc4a4f75360190138b0915035ddf539194b9c84a314c8018bb2b14897a426451e47c272952f6a5340e697fc6b02d5102b57b4f8f92706e31a0119626a9ef7b35d5229f6e2132608d5a7fa5e5ad9161817225c5785a5ecf6d5497faf8bc12b896fccc679c6d3c8fd1bdecd72d65868691a5fb39d07a034909ca4a5c90d161f190136668112666df684dce3711a703d48917be94a7e7742336020ffb639829b2577dd155ad9c1e3beaa863ef26d4d0c915493d38d01b0b5898774b7047b12c36aff586e457d203a7a88cba0fa73d31e9b588729262addae0c858aec0fa92e568728f859776d3ff4d23344a60f1158c823d59144538f2fad1d2920b3d9b03edb50e0338a27824052c938ca86008f1f1c85428e1dc71b44cc2b8ab220b2f218775044d24ac4e3e3c466137c3d711d5a153f5541abaf0f6b24ded6c55be1dfa983d6a9c8086ee1ab4a7ad5c468fd6daef57f085e9e1ddc9ef06da5d999fb3b588656a91070dd0d1e769c94d1b45455e2f106a50aaed222f97035c0e2e239f4cca99c1cba57c7244abe8bbf72870f1be82f6592e5232ee0eca484431e29176d11a7241c9da83d4da50e1bf25c03090b0b2b409c57087363cabc3d686f11a3049ac9b4f14e731fd4f1aa5c3935da87b1b6fec997b82ca2f89c0244a97c55aaa13c44e65c221b3748e46b7ead0abff318d9b457f618f58d5ebb1e94f3d23e223e48d7591420f7ac79c4e270af2ee94d43889820065503d68b2181d83008f70bf492520f57b130e079a23b82d144428aa8740b4b9d954c4eac750d8fc3ff26307c817a0453cd9394aca7f6d14af5e5e9d393c0b194fe26da2087e5fc22ccb56677fe1eb4cf6c8bc28b39c68afb7ad9dbc15382be4b688069ba637c452947105af6526b967d028f43f48e015a692121db82af55ab1dba4c5259e8b571d7b3a5a930eaa120803c029b027538dd3d693f6689f15636d274be4533a4cd8068784ef2b04480d348717579fe6f1afc6dfb53345137271d7b954137ca9d936e839f76d73af6ea50615b235b66d2bfc40306314ee8e8ae001cf8894bba1d9fb0efc7eecccd0debc2a72d565a2651e4cb8a48e44a504f554d5751c806f158fdbb9f6cfde7988b1a66210bf4e95b367b0d975f94fd160eb3c8e9602edbbf7c3c39ebe792e23efe6ad05fc5d1cc3059462020bc7667a2a5b603b49c647071177be65ced5d1563eff887b1aece7e56f865ac49cc870d0b318da3f7ce9207de3bf572bd15a93028960bbc2b800aab917666a68a7aa80a5da1785d3ea01218d9f9ad101bd1ec3fa038b7bec69f60d7ff1e4e4672d6ef3ee58cca283630e9e69288e546abd913b78de5dd39f35be9f7d8cf1b9efc9d7eb45a51342ad5ebe828a285e78e1edbb7997aaee5593167a167def25a66593be646a634ab805e5a5d529363bf451e48788d855b5f418c978af4a858589decd64c8be646f5014c69733c70723029b0be4259eb10e348de96ca637195c3aa46d44d6c638762eb41ea0fda5b8620514cec4d7b28b573dea62f9d897e34f31b769f9a3ae4d2b47962f59d04d1d6d500490519ebf562213372ded8c46a6f83b49de33b1c3a04b37bc8394170728777a277ac68fd762497a135cc8211ed98dfb41ffdb59f8feb1b6ff669236655d8c913014d5f1eca5df002e7d642f83e67d55b9dad16c62d5bb5e8aac41cab8580d9a42af8d53581442eace46da34d877002480ebf250bc91477d5dc541009760ca3875a01bc25689cbad4e96fe8308d2f564997b4fede492eeb7cb26a1da5f0b2c19574bde71863fed239bbe1087fe41a5ddbad6b97c5ca95c55fc00927daef31b9d68fca81c6dd9ad73b62674d72c992caace4c1990ca27e71c6c458f51e87c9fa89c9333e5f2f9d05034388fdd08bab27774042bc67883c5de6afdabd9b2a756e7ddfe05c7e36c2921c19d29db8b34af387d9d9a2ad4848de19af0069b7af650be878468796edfd72d98d1e352b0f2d8fa71a39cc1f107d5a3739b9c57ec61ea38eadd2233a828781b0dfca1b8fbf48d260bd07480054d1b9bc275f12b7e5da2a3cc2114ec09227f8203220438ef1ec6d7b91d92d6e9d85bdb25894ed4e5eb1e34e47eed90ee0f4ba776a345279713e3301daa2af69ce5ecdc91578a7b9ec3cd1160c6991c169aa8fff3091e6efe21ef7f8e68813ec0628be8cd1198fa6683d54e60c61bb22654ce691b277dc1b7411dcf98a43f851c86b60bf51d575dc2f648e57874eda025d610b724833c16561f9c0178548c7f18ecbcd9f7ed5cd6796ace9832e829b50065d172571b2016f4380eeea13bcb3644481da81926b30814112db18a250c54072b699c9370c0b3af0a390039dd2d48d1a51c677113c4b3657772de70b78cac6e001361c9e53733274bbdcb9c3e80a91638b4b16c72ef5afd08a23b4a1a28b3cdc315c17e6ead1e0338eaa1d879dbd00cbb383248858177b4a420516ff617b7a142b1714c8d16a76af2fdac30202868d3635d03997a062125414e2cad2a891ec9b18f3b60a2cae28aeb644b9a6c9a282b617447c82334dd2fa1ff1dc3a6983e09b6bd8bfe89c1341561ca6541469215fceb0eca8ffbe3757518ca75e81521538afc6aebf98a97e8bfe90b4303138911cee75e227e7cd748df5f539c4259a3515863f5983b95b0b8c11162edf359f7b25113fc7679c74082177a174370d2d3b1e3b1008b43d0148559075094d8355c52d7c8eeb5389a49180da856fc017e964d7fe19cbca279e0fa48572c77ad97d085d54e22cec695122b746d1d72fbdd7329e4f5bcbf7d13614d52b954cc1f59d0a166b8a03903d5e4a142a5989f55b4d04dae6580390ee3396bc2ec5ec9121f2362c8553af222d38f7b34a627e47c8d72d8dd12111a23bf294be3a4d8681c0c0f91dcb47abc2ba22d4d4777de83d21a1b1557d317189e2e4c05888568ca08433f5eaa310d8f7a71c7d740146a2d2a5d44bb62890936f3d6ef6e852f62125539081adb16f3be3e64947225c288694e9f47662accceddad3a5cd8335d1f7eb5d9f3343d4e2d83fbb7cc44c273886c794079fc4120886de9c7205df00eb0fa8e76bfb643a1bb54093b4bef263e7d9ede4e030119c070e6d836c7f09dc7b3eb7c8c35db828913aa1213775323dd21531ff288bb8cf421cd423803f31ed96df8cd548d263691708f98d32f9ad1479496d6a5dcb755fdb830fe73b99fddc066a503283a0ebb43a0a76ce4b57a0b5560a80f44535f9589a13c7bd7772048942c3956b0544614ae2b333838c906f06f8abaccdf7d544ec006af3b34395e4f7d04eb30ec07df676f00d6f75278ee635c8cce806f54c9ebd82c0c522e8ef3e7469fa2af00aca07e59fbf577a059438c0b761695471b3fb743356deb7a85c889f922a026dc788047a1f6b6de1a29405680a414e6648dfe61620f57c36eedf2b3871b3c9ca8fa9a569f3dcb2241047fefc3c0d04587151e7ed0971cacdcc86e668a248f4b0eb2dc5e208889905dbe554aeaf8dcf61b201b073c28ed0c441124a60d5e3922468a64bc45dffb461c07c5a026a59232f8cfe2d7cd19d75b4f2078fe6cfeb144fc0eb7ecf50de5b8715d84eaefcae1a6e39fa52e22fcb3a9a25a5af93f937f87028c0c11dd7e0c2fd1083a6935304bf1f2baf831d1822a15faf554aa56c379f6d2805f71fda97a45b392db1fa3f02029b2159767876bb05798f4ab25c6a3bd50e21164f7cf73b26a6c7a8853f6c6f5571f928b3daedebc3705b0fd0305f24d86c2613cb0f41f5e62531dee11627c37f674b8ac83a40c2a131c8d29e217c5704115fc904e73b958c5370d69a803304d78c4ce19ed86091b5d6ab37ae3cd87bc594ebcafa88b12777e284fa52a676836c16059d8948829991bdee1352a0d4e6e5f46da763816bef54d8a3c74ef1b2194aa184ec872db5f8266c4bab2622fd713149d061d9b74a4fb457e00ec125946397f4184e4e9286250eb17211a366ecfcbf0ebc05a151216334e98eba9f2b150dc81912b2c3d9a92b66d1f81bcd95f225f9cc851140a747d15a4e5173eb3daf24766ca53a11571f212405c1eb47f83703e7897126786da12285643175cbb7c0b75d433cf7ffe2f9f34d0c8c030e2ddf9fe162eede7b6703312c804a669351b4d4ce9e5f92ee8529c0818675b5bbea58f4abc453df46d0d3e2831ea9b6991074e6ab6e32f78a797eb532c1f863955005f56e7bd7d31a08317c01e67950e0266f224bf05fc3a73d635c0afede459ebcda6dcc3ae6bbbea82b866ed380ff6fe41623d7db4492f686a86265d62d65b4b86aa45b34b890b090867d8534deea9c2b2fd1ddc722345072adb31836e039640257424cf952a585f5d7d6fd7f8ad0bcc0f0140bd38c8d8b3ef8a298283aa381d27376c61de750472abe097547dae395f35cb58759d214135b2c4f15001c049369566cb671902be6c1989b77be05dd402d9f73a4cd2e435392da916f6f43dc26422d0691500fd0f9b7dbde64e1235c601eebfebff6ce829cf19c10413273de586574edf50030387f29de4c4a763c356eb1952493f0279fdebf6d167577ab1a2facfe398330e13fc87000eb1af4c425e123915c33090b65be4615307099ae3782886510a8e184840134c94af67836be40ef30611ebb844adf9fe065e82f801d1f72f7afa6289422e75387b5022628b523a5fa88bfcccd7c9c7f17498b01d634456ab24f166696b192f0f6bfc099e09a636b92ac2e4a56879d4e54e9c94455391b57aef4c85657baee7bb6b28964de2bd6325ce309850196508a7fb38c44e8747895187d05ea1ef9be86cc112193fc9f26a85a4850088144f2f4acda7e9f88e5dcbb07286c35956c49fc38cd5369ff1a6b65c2ab679fff14778e5a3104273e0f17a9304b33a579d4f1e9510ce65efb35ff5c46744547d691ff9d8fedd203b5773142b482c7f30ccab9c3abf91714c8c489a728b7655c55e7d28a7be49684a404e21acf7d7005dd470f27171ecfa042bb45ec931f0345390e7635d19b214964d04a92ad03f5f1761261fce68adf37f914dbb00ca101fe57277698c83f4b2dc0a47b886d424f40fd11dc6b7ff5a247375307058cbb636d6032bdfd08f42e3c4ad45e16851ba49efc3edabfd283fa969640d005dac8b0e499c8acdeb06a3dd4b5be0b84eb4b99ca8e59f3af520a1719a61d3323ccec82f220fd51e6bba97ea833cdc57a787d0609ce14c002bf26ac00ef8159229ce7996d29b0223e2d32ee7a2fc84daff2502bc8aa7b52fa3afebad18fb8befd2ee9c34f27fb611b2a21cc6608a61e33ff6760a566c641eaa86e1a5196f90dbe48b266caa31a67e622a590ca636c316f642db59951003c7340a79e69854842e9fc9d899f08c14e889f322548a8aff9eb4fedfecf6d6df48d1597905aa4f4d8479f21486907dbe2e46e136caa26e16a77d07a8b972940c6327066768a365f2bad73448f406f0fd15450d83b0a07d5fe13fbbeceb4cc41ffd08d501cd244b8575ceb259172c13f7c45cec98dc3f9c9a0463ef6c61e82962a212c723c16dfc1b9bf7158c19ae345b48b43da93885306946649dc92c69ea1e00dc00b22a049a9bd7561999965bc2ab117c86e2414d92c6e682d64b152748df67b87902beaac37a194ebb691f3e3aef73361ca1892a8f8fa57cd02f15f06996500792d389a7eb6e14a209b2b78413792690fffd36941b8a485a1df9da1ad824d314f3b46b5a5c2dbf8eb9e3593eeabcc7c809f080648ba7174c6004486999262f8a5a8b9823ea05d5ebfd5e6fe4772455ab2e6136a7eb6c61961103f6ba19b2466e33ab169a8b2254614d855cb52287b416d54f3ab85786f68d234ead8f44891eb61ee0421252a402ac0a56f4de2d312d16885200b2638baba49a04ed597d416165cd994b747cabe3f14089ff78d45fec89829a132cf6e3da856abb68a15f12dd3ece60b6629e95c426e6b0b94fd9b6815fd7df91492b8edf422a1c85f5704e050531a8d8b01562b48055c5557e557b605a3878aa171b3f9c8f7130deaf2e046f4a210b5f29483a85fcf3a575d9cf4e616c9d37243c9df9f60ef13fc28621e955d2da07caa4639050f23083b429e7bc409e4ea0daf363bf55af9717b4efe07b14819953ec6f9a24eeb954db1c36192d1e8812563861087228175748ea51303dafdc66f56d0216867f5fcfafb09e70b1fe5983bec12ae2525f21596ccf08a0fb4c1de76f49051a52e767f9dce48623ba4974cc368a69c4d1ef69b8c981365c70b6cd87644fa911894ca5780a1f106ded4b90524dbce7f98352ea0dba536613d7dafbb144a34d81ce9a1bbb7e40a42b42b37808fc15af1a2e04a665164cff1ebe4af9e1d73c76164efff4393c16100e03175272f668e794c407676c87a7865707bdabc6976712504d6f867633e76d598f6e7399bc18050328608ae80151b23ef58c6dca25421379262064e300eadf918594ce724aa147a92b97dccfe76f4b692b377ea7674252ef860f862ba2cd1a9083c9e879e91088b4253b868c3ed5e052bcde02ea2aadc7f04f7a7c89ca2fc0cdce326382e0855714e25c08432b8f4905bac99681892111696664b420022789f2065713027cb86d0a520f492b6e5cf73d42e16bc4ab0b48791315cc8a88bb40ec7ba3ab552f7267c9bbeeaf4ee62e19fba934fb85ee3128b45497f70a076a8e1be0e8f3c15d0fd5bc7e95523d3fab8d9a3f754523e6298648a03a75197ba3905fd6d89133b0039954ba26318ccaafa5f41579a3a631df15942e101239664b470a4b8d61ffba52966d46c6822e2fc8b61c6ebb2665931381d8cf72be483c3cce079e015e251d15afb1751e12fc08b97db1a0d989b74ed8cd0cb27932c33dc067c2639719d830fc12890bdba9f6caf750e7da14b1b05c1715054086a29e671a578de990c64adbc7dd76a82e9120372f23b69ed4baf3a30a896a70ba83bee6fd8aa0b997cf0708cc05fbb04c18f686be55d5b822a00b02c1cb3d707e6029891318ef11360052e2759a535cef34dcef375b6f4a2d65e69ea095dd91fdbc74fb778362a05e3d52edbe52b729d32e1687e129b797c6d955b5dfabcbcea50b193d3bdd44dee3cd13b2bb6be3733a5c14a9367ec987e3e9b7b50927aaf7aab19f9ae3aae313fe3291d810d7163c69ee2df066ed83251f7e286a7d092be3831bdda8e8a1b564c990532777b9d48e28ce1777d2c73bfc38ecde8df025ec896be1a83037328d43c6a666133e3908164688aa9b91cb7ede90f7981be9557902e1fbc5b6afe0a1555958a340c69c6385134ac9b6eea64780ad6135714400efbd2808ed4fa7717a1a49c5929005b9148fe5ed7b46e74a5051ba0ae048b0eff63ac89c2abd65e301a643f26b2405b028f893178ed7b00d6c2f03a27172317919a20bae0361a83851595701ee0463ff3835fd6045942e9d13dc7de6e4299ef29c638102127a1e13f8cd79fa18f9d0de3bb1829600be7dc18c9b3b7703e224796dfc7cb70a34ef1dce160124077394ee91818703d27f6bef5707fa33ac5cc107c77c95d5608c314897102ceb68600636abd3f7ce6678faaacde8962d55f4cadd9b4825f5f5bb71cf04bc985c651a1572ddd1be67cd11e2b915e49326ab0c6535f1cecdf28ad3301add81cc2ce1a6c2b345164d01ed3d0c26e2d695a370ba104aaca2efb3e27c636254d1ae506efba34ecf031920c07618109811e88bfed418af897432fbc85ef32fe0bf0b2666f86217ba861c36a4f1d851d0fcf95908ce23f638eb024d6f763ba30f31122cf0603cf239cf534f50cdd3f05950dadb85dea7a5d63b0de4d1d48d8f3294d94bf72a83b109923ece44a2c36028bcc283e451707f3eb2c7b51693ad65d974d7b04f201d440b3c6338c6451796d7c68b48e2fa1e17f00de786187d54ee77f268318ff002344f4fca12b5bf72e8afb03316b427a4b87fb5e80f90e5aed4b4b24d475a81c1741dd182ced46b2ac5535d5bce59bdcb9ecd4789318d53dd00300929982781fc81d9491bc553ffca3181a1cbd8417cad797dff4d39323d74c2c9de050ebcfee7cddb582b45a6b3901e91d5ec439ed23a4568b2fc35e3cffccab459cc7fe10dcd7f9a47c9ae0628ef889e384c750d0bb66f02f4205c5bda72f8dc66d0e919508b82bb5815a02ca30f6e7f831e6a78183950f006897a5a49c7ef6c0c4336518e13e3e9c8ae310d3f488df905b78748ba2ded42d7ca7edc4b5f877cdcbf95cf6eeb7e88983a43b630abfadccb12fc5636d412172cb9090d20930132f6bf67eeb8ab029c3ee2d796ce7981ee924dae3770c0b9909cf31369be2f17e0c223b3518683388656d382c62fa9d6cbcd2abfc1b759bd6c9955a2c014f4d1ea03b02ea837b2a66c33bee31d3f669b338b8f99f7425be2a209848a0a4717377dd58ed93301107e6405583332e58f2f5bdc0693b0e9552dd28d66473c78c0c15901c8239d6985d8bde5dbdf857c36543c403e1ca6632a89717ba7dd97f18cad4f5ccfa6d2238f4708b18339801b219e04ad8881c6fb94bdfe0535d0211b0c111ff0f86df742c1b2aa0e122ffe5f4cb8100c5a3bef659cb5a5d9c424319c44c8d562f9cea1e53e8628674d1a8e5065761d60d0ce702623161aa04c784b272c2fef6370d2ec1b42316ed37d9ca8974fb79858263efec45d249d858623bfe832acc0e65c2c1efa99f4be40ef8a78d5a0173cc83f09ead651fc69d9726fad4bb70afd98a2c4e27f26011e1e74eb030522745b5021bed2c65a170252d3d976cd8da5585389cf633a5ee64ce9e200c8f9553c919577192122a9221453b169bbe37f6198393e76b64dca50b9da91671acbec94b27d0eb7f91ec025f7cfd613618dca7795de510f68e08918f4c0de41e19a4c4a354a585284fff8f8f30a522f52039c10000836e728bacb9f8bd5ab747485109371ddec96aaf1fc0bd77ef8f9e5219cadea9cc698d744578163f6ddf3b9b087a2691c0381b00c4c7c84b5de2c2590616468e1bbf56e05068fe337dd1ecf60340b012afd4d4818bb7b88abe1a05c5ef9e8c760377f981045209835182dd1b04ef1cd2bdafc03dbf206dea51e03b0d1646835cf3e6ee5f497b01de07faa960e3e0dee63c25e46c8ebeb650c7a999e561733cdba374cf01211ce71c808046ce0237e89ae7eb715087620c8f01c17ac207a37691b6f1be961dd5703122b2425cc516ceddcfced71fdb768b966ed809fd16a4cb3af950f4e2db70c1c46651f16efcd7b68fbce4c10a2a64ddfb71f220a9fb84b469d3fd6d26e73697d3cb8f0c4f6d30e534aabd29e488d63cccaa39008d1a7fce7f8646fb80575d74a2e294666725158ed95ed12f1988ee0cec9b1c16f2172ce25b3e1951733372b9bd1415d77e5693efda312a6b8e31b838b33442ed876c462dee4f4b7df70c7724b0d8def061cf30c56a13c2aab3d7cc89e049b0739b33ee8819ec47f8cef4614ed6d1e2f7f01f8f7b3d4b1d3372c4d73be96ba7b05d2f444132cd6ebd3c46a3ce9050ad302c3386e955f5b8d2e10fc611527e709fe5df010343799f7ce1bfc9c33cce933af56a53bfc8048a9fae44fb5d3b22de7275bae60c54fdcd35e855b7b26de58785599e67b40a12b21535ddd462dfedc729c1d9e5fe72a52afd0ddf80e62427ad17c14d55c5f69d96682e0906f402707bb222aa6ba6157150f021bd82fc9eb72c7bf2601b16f4bcec4a76d291e9f1b0411c5299ddabe3d20b787bc1555f5c4ea95d6b82d52262da64e94f4bc3d74a4f0add42dd1eea301d42299855de3bb7d8f98e0e1cf539458a46125462f6c7f8229670dfe82c72f41748dc29e71cb9ead92c7bedd920589722eb53e58c0006140d272cbee65806abea98a9f3ba878429f28449180d4c541f94efbc53b7c62f0f6523c85c921fb0fb6fe2e2067690f43c20bf5a9e229a451b9331142cdc9ae963cd548fba5d5293f0664c81aa7b4fb0252f8328658d6d3eab9aebfffdaddafe7ddc92bd02e9029d84eb0262cbe9acf4c392f85a1ea56eef35cb60bde354423f3ca638b7ab0d82c93e4187428f1c171e29bf66d3369d90593d2e41624e45e5008da1835c37d24361ac7ba9d9edbe19b53b816472ae8c087188bf78f0278deeee59d244241a962a2afc9164c300d49a9b5055c2ef5e723ef730552b3a25d4c5d9092064c86cf72832bc58e6bc05f5ab5168a1a02efaf4b479c3379dbe4ce8427485102b1ecb1a8ca59f9ed44ba340b0ac667a36d7c67387e96b198a130fd35dd5a519ee839ae4e4303bbdd25f38d64decb88d2052f4b1b870337fc8df8eb6338c8f825e886b3205d2b2b6f99e84403652a2184757ff3dd4c60fe9758d368e693f56427972031cec64cfb98305d799a2ac27919baf0029774615880b94c88e9b1e960f75352a07dd89e31aeda95ae6ec4f316f76faeb918f0144571c9cf106bd2ca732c884cb646cead77efcdb9f4dace58d7072ff8dc6360b3b747f24c47c11999cf204d99ffb6d2cfbcfaff16eaca3b2e1836f7eb182d484b1d866f7da312475f2d7420d1a24dd940dd532e4d5641f14946f5ac8183630eb0d9d35ee60bdaba53518aa8814cff48ef8de476a19fd3b7b583baa5c92fa2d056b17860fd5b68cda3060a8978d2b67643047780fc602b7949337d44c0d0bd050b82e3c710215f75e3df5d47e4f0cdef6bb03d3355f586cede4c3ca648433bf0a43f265cd5ac393e5bee353ffd9f9694f8e74a018ae337dff755775e2077d7e02be579a8bbd6bf8eaeef03a728e5d682ce8d16bfeab3218ff3bbb443de96fe480eeeb4dc6e07923f942680a4c7ae44d0be9bfd0bf5de40fd2816fc4b4e7f549d59f6d63d1f74a6819b302571243e0d154af1c04a0533205284875c79bc8e2f081c5481267ac1c11437b0b28e2fdf53c65af2022afe4464de7e1066d600951bec59d77a9771a001ce888fab0bff31a9600050ccbc283e41898c23ad825e35543641612e583559536ea7f5d6d74116996275cc0a23cf9f008f58374ccf875b4f8184ae28a7ffa2fcc858c5be28195d1e17faea0cc253637f8f6b63606b597d310708849c7a9799143a7aa133ee09c22a304e43060dc733b1ec144d89a01e4356644a68e050aa1b066d9100c856f84f2131d39f90dd3d5c1979b1cb6d9f70d8cc293337ed905f5f12733fce54645f435ca9a124265c6a6c5376a9b436dc0298d53f3129e27ac714cc299076719036afa83e1b7da87839838ce3bf300f7beefc6918d35981a807009af15ffc008137a6c487c374dcf276a5051c8dd5aacc4ec4b1b14275b11d678f39b451e9a3cc756ee6b6696fe7f2b98493c53e7fbdda40f28d684ff7fae89b93383b0f7b42cf7a513714edebd8311ca1220ff78f800498fd0f9bef510c54fcea7bd6cd6e878e57ef5248269c1eb27dbe2e3f65cb30abd9bdfe1a646438a475a2b952513162ae5e97c976bfa30c08573c4892717e90ee51d7547067e7f56a6ac9ff3fe7068575780da028053f5c325cfd9769160463795349c1eb12d65d66daf72c8814f4e8e1424fd006fa69a902723254c9c001f35df47225896366adf175507355efcc46cd6f60c564371ff315b88a4d27d2e68d02da5a19a288d7c8057f9adc485fd69f2113e2e19a646d1f5da90063891d54031ee64667706637b5c999e9c200bed1b51dd33cf7304ff1753595ba0cf4791128c4d6b88e60f6431db3ee2b56ef91208fa92c72d0d8ed392011f33ad128c42058822bb53f346fb8ce3640e11b815debf8ba3d3daa38d83ab1af526bd1b4e94eed8be1d1e2f45ea93a09d62f6893bcdb00cac707b385fd389de6eae23c4fd75ccbf6d8ea12b6200ef8ee5f86e93a4a077a555c5c92eea38cbaf90828da87647bd507f5811d285839421d32fc1eda081e7d77e5eadfd5fa2ac683e29182c5965e758f49c185fa5ccd762a7dabdb8746cce489fce8a6dcc928e0ee8bdea394d59d1856e7cd810ec0ac968e6353c6c53785cedac093e9bc064f0d7d1587be45ea6fb098199a7c795482c7b30eaadd86c2981e7120dd1bf45b69b4e0105ae9dbe412309526ae955766bfd59625e9ed85338cfbe0c4daa53dea2d236501eb4e4b40591327e56e1e6e095aaef746491cecd72a5130166164ddce7c08a778f3aa07e0e6d673b9411e9ea928e31969535f47b5a84fcb055129ba383df8dce1d8cee2c0a17aa7ca8dcf2647732a15412904d1d97ee88893833848164debaf3d28223b77bb03c1830220b80836deb513282a04ff5d52bf3eeaca43a6cfbea350ff1d7ad481fb6eb1bb33550d9c7ded9193448478b18968d56f8b3b75a6b00f0609cee24dd6effbced3e006a86c29d3a2489b53a9b1cd5653611ceb9107e5a609e956b0fec4f14a54b5315e6f8028343dd2c95979f21f79c3aa926502f3e690d9b06b845f3515e41604e4c6cad665b4b29c3e3a85afc82f5500f50fc4c01f12d33ed7250d18f4101048eca9e78fec7e0e6ebe7a02d5d3b01720c26be01f60c4fb35f78e38c62b091a9bf15f40e2718669bce0f991e98e7c0db56ab160a65d5f89933d4c9a80dd2e767bcbf31e1eca5556f591b57a8a0de28908d13a2a812e116ac5af2a031d2d5b2e8d0ab5c5f47070c64b8fe10621a7930a9bcfbd0deacf664f8b6536e4fac53aa384719a278403430b2cef4dfdd4774bfff1b25693c9a1c4fdd90e09684853bad9ac77745a1bc3a3d407981d7185dc7f3164ba624d51e76ee26e6c68f77a0683597cc5ef2c4717e34ec6c6cc61bef927be729c2abc6a4a2232c0d334439f1587ae73ba678a790a6cc2c68787e5363690d348005d0c8e563c127caea72dce389edf10ea889689c9f4560e41d0d760bd3ea55003593af3fb738ed7fbe12ca52d326cfb9ac3aa5d263fdceb2a7646f8fee74768b64864170c225d84caca001a34fba2ac468e9f4b1869ba16cfdb164e2b7367259d0b553fc319b442c13dd66294cc63c01c780b1f39cd6b108e8d9d3ebd0e09c330f191f73b11b0aa9b8931f514719eca7f0b62404773225a1b282262ed54cbc85d437591f59910f7a43e3acf8297200684801c2ba3107be2ff8e890a3b80563704a11f4454a94a513f4d425830cf8471783f563cd5985fe91473a00eebafee097a284ae721b1335d6074a226729454f7583387e6065e7b7a0a29c038833c5a29077243350748c788130046e2216daf0e57ec458284c1e288e6cfc76b4f1c8e80685aa1201862c9f2f3d77f4c1b1509da5c923b474174d0a87ec7a336dd57d2bf4d9d711146194791b3dd022fc0bad02981a7b37355479a5efe76dd9b818e507fdc3ff3cceb05389f999b1795774b13f1959a714c788c3ffc6563ed47d28a3ede2ccb22624227c23efe42693b27d06aaa9b29b669890633110996494e2be71670cb56a3b4eb5be2abcffa0394bed9cce349949eb9096a42820f536aca2bc291453963ce266b6a7b510f7e5e15aefd09a88a9e47bba06dbd79f41f3f6f36834f236b84f472a9990d91530a89cc6b6210c5fc625eb9976a3e82071ace24f1ae678448dc18fb73d99813449edb53ee5b43fe73f508365d8db648ec9cf750c9cb4ddb2f65b1b5f77a6b082188bd6035187a1274d5504d03969fb41a39984d6d56be9f700c36654a79dfcc3a446014c05b771dbb30798ebf28753f5efa82db50c6a51cce9c88f7e451481676ab871c164eec44b5f5eaaf6daed7b656fe0d1728a2339d03797fc1226d93ddce71b97a3e5658d107b6a08c09c5fadef75a2b9072a48b8c3c261dcac3165dfacff46d79460758cb05593c0d364041bd085548adebefc65799a63e806c067c911c5a1cf0c01c35f63b9e30fabab928ada5e66c6d18543766afa3ca0424784539eafd3b784087c988e86fa83700b2e6c3bc9555f3bfa11e480569abaad8d40bfc8331959edf8807567e05169794405971939a81006c0f4c509aae1d6dd8ea992fc3497b6dbbe1b82e24d6933dab542dbf40566facedad51295d331ee458b6ac6e9efdc9e5750c4726345b819998855c092f198131d6ec439bb42700aef0b9addf9814c01db18a9e0cbda205055873648da139449efe2e35a3f667765c1de72f5a4b6511c699417fdf02b2617e07b7d9b7277a1497006fdf31f18699b2be16f1eae523cac65be6cb2df8b73c52696338aa2bc05519bcf32d6364a8b468971162aca780dd7ea67aaa67cc0f542f6215140d671abe5ed31499c4862be3b9d128f7e7679679f231d987de5b1339de7e9409e56b176a942e0f864c7e25c9b6785ec3fa0fa97add355250c8b9bd06c36a0314cb1b6cb51677e91cf9e8abf0b7fc1d20861cb49730ee576ff1ab1d396278a0279b2fea11489e6846a956ef9551b184630b1f4922f91d3b68e92c98105d20163466b2c656e65514c4a6cd25ecd94f3ae72f3fbe731489f7195eecfa2abd795bf036843042f7954b9484444525ea72d9e18cb6ac61597910000acc5e3cf2c4241203d836270217691469298ec6411be8d41c50bf53133b7d021263da1198e2e3d2f4b6ff0152dcf79297dbe5131b2d60910eefd0d4c3a1a5a6ef7c0448f6d958e4127a4e6c68a6f7431130019c4ef1c71404095bb9207f6eb30c96465f2e53b2362f535a2c9f7c31c971f15e2f9b92dac0892834352e2e569a0563ff17381e3e32efc5f457332a9cc0bf5a12cc06a2c0afe0699e7a250ca137204975401fada946b22800469abed00ac69b5d489493d8260dfea5bc91fa95bbe4e4985e7195d2f1152636c80d0d8fbbae591cc6783f0f6a78accfaeaedccaceee8297df6c1127a0d8413e67b22c52e6042dfe389361c8715b4e17dc9c1d8143fda53db74e7f9608e74a149b97f7f4b8f6249189271a574596503e6f712812e6fe8529990ee111e671ebbe39178d6696ad3d1c1fc66d06fc8d346a4680f06b3e5b8bcd35f55d9c30041f5696c6d16e23d6ee49dad7c2b1a62910136c80699d54fed74225bbbdeb37b4b4590a41eb8277fea0a2ca7d67eda30c0e424f540c73cabebceb694af09841b4d057e390c5a9e3442ed728530abf20bbec1f55505723dc8d3ee6b4cf87e08cb969e3eee08f7001ee6adb5f2740e6c76b7ad39dd34b0b1a819b4ed68339f3ddeacbda1e6e3ceffbdc98d02ef502b5e1e71eb016e8ec7aed2dbf5103795fd6f24916feff6503dd4495f1bf2d332b78660153b43368c5913affce0fdcc278d483d5bed5fc7bdeb4276122253f19fb6fc5d42558ead9612bb1259e4e5b83a77db1f309e9a6840eeaec74ca48b89d97586242b7abc7c7d3db9e833afc19c23038020f95448053952c7f6aff6a4abc86820bcabdc53be22ffc537d60819076fe6051b2cf50ff6cbabdc43dcabdf60f357bea380282749c0fc76de704e43fd920fc51da7cf8c6db89d41e06a62f97e87445b168e48f61490f859764cbb9ece248f586a5341f4d9d5012c1050506c6cbf72106a5d3d0bbf650c9946491ea55dc4bf0d205e26769a72407d34bcb472ec0d7e76f2ad5062a65f9bda69ee3421104a3a90199464b867d5ac68d12d1f78ed90eed449805d3dc85b1809e5186d6779bf0e6ec57737e6ea90e8bc736631ffb3afe7e5e1d0f043cd7278f2eccee32cc1e72f71e5e51a9f0309f6c9fa2c3a8202cebea929db6347fd38a434dc0c861040891c414a61c6dd34e31233b49a409a0ed7c16380c4fba4b651261baac70bbe13e56728138e3bad34a29dcc85dafbdbeaf3ea830be43e3b1ff75b0f9377b894044ef8f35f70a7aa749b51e37c40191fe6d21c045849185238872ac54b02f79c9392fd88bdec87e3e5342c05456abba6379f93fcff449dd3dba4a3eb50406de6e220b827d52aad0bb9a04e94a7c31c7732afea3ec6912bb800e418a6b722fc45f1b1e21c0ce0e41e1487128a3c30c53378b4c6bd0dfa5024d7622cc30d40dd35ad826168f1ba951e7a6c6994b942895c8c86410e00c4f79c470b843f9f6b6ff8a61848f02fb026bfb8c81184bdf66b938e3a991aac373e4641556316799750f58ecc019161df462de64e58417a71b0bd661e489f7ec067878b250e2f0c248ead4ab03c0c00a30535de67918c08d8fef1cc9c1d8702e1195b58680cd0bf062bdb5a09cbcc0a2b8bf9ef089ca5d2980b0dd2e50dba8a033d8a7eec2bfee28aaedf7c37cb9fcb4650d7e88a4c47bbb9c16619085347fcd1d78bc177818bd783bdaa562b9a09c4363486f111ce7690c0ad4957db725268e13f40bec06162d63e26e60240ffd3bf3b03aa54b895dab97e2be904325774a4671123b735732fbe6a38698015aead73da0d2737f4643f3eab0dbe9ff6cf01f68242f0d56568fbc53351ea2611d965a0e5cd92883f2576115f537c0ed126154232dda818b7673e2b981560bb4fe4fe6845ef9d4f5f1c3f048a6946eccff382b9f22c697772bd600042747e11b472a42c6f614bf1ee9ec4a5cabe03a77ffb04326ad060fed6ffca9d8f8a0cc2e672a0ae3c8ec7b5e455a70af61838aa44183cb380b9fc4943e25713c7d20305d6f0985154c16e403b5a9e9111977654adb3320908d6081361a46e68b6fd0b253968441cf4d4262a4ac9372ad9733525543e920bd1a19564087d79ccd3d1ce089b63ddd516bd353cce1ff50a49368d435d7d4b230ac11dfb290b18f8c89b2c73ccc2b97d899c475f9cf29ca063b881848562b3a2ccedc084a40f87363ab37c7477b9b8faa9fdf975634d567ffaf21964065ad094e257530532a18cd212cc8e7a88abfd7c79943109d9692ff99840bb3970cc00a2ce4abb822e2d2d3fb4c4b790161d1b245763ba9d5b913ae55425eb165361520b556e76e84825b82867e95d50e90c1aad8796403702a9038c6e63e723f34e404e0583159d326835759e75a75ea49785a7dbc24a64cb83986e56179d76b3bb2aa84db95c79e70f5a20fe2f1c0dbe1a50faba87138e3f5c0235a16ebcd38e1aa571b67d1c2e305856c0b7ee546a95323a6fd7fe69ba3b9e902e460bd4a4ea4880783934f32eb0d8848ccfe5742a2bce23eced22ae40d9f2fe8540a70c59c630dd1de8e7953ceb744abe458359b0ce06fb4c40ba964c2877a38f6d5b3f8ebe30a521099545c7cb36d8d98b735ca3ea400ef05e5944ef812e31802f514f41d4bfb63538b7063ddb6ae73f8faaf4a7092157a45ee41995e298712e29475c8f1a8299b054c26e757f9482bdc323c843658aafdaa0cca2e68776eac394e5859706a6a52b25a268e8fbbbfcd78272656b749f67c2ef5039769ea7ead5fb4fa1c35e56345124757fbacba94dd6dd4afaed5dabc7cc8b5c99abb3681f8ccc93fd573d166fbcb3804cfdfbe148e0de723d8ff262e73952c8f994b52353434886a8bf3cbd68468685b2f150f34885442b865d26b5723d68e488b9ff876b1695ca85836d2224d1ea33c720ef97abe7d7d40ea758b23c688e1a0e858297241ffa56bc5acca4d03cacb57c21c4f02225f61b0e2788ceb22318280f3aea7e7ed7b3a96c922fc06dbab579bd9c7e67f4ac46e6e7eea1897f947a0e3192e7a81c563e273b78b9452a845cff22a8f156363cc56762fa6fe4c60b4c0006d476c372ed8da849bf122c29704515515c63b01f0e8804b2c13afb3f6a337bf66e08dc36f755218db931a3d85370f24fa4439d2387b86bb4d16c2c11011b37d7720af266836f0b61b3054593331cfd8504af4bc7336b770f297701e3b48b328162fea3c9c934b5dbd078c43e55b69041270d573f95c9654d2ca1812bbc80aa14c721a6216c771867173e3371d724d9d130b48e119a759c2eb53bc06eced6072fa225c26c51a6106b9bd5c8a8106fa9d30a340a461226a89f48e83989ce9b1d947b995124c6b92b4528c603f2a0388f35574b19c62a0eabff86d3536cdb9cc1b03c9eb7c78956be6e4573b34d9ce1fbcce111588515c296511dec25172eed42be262496dcc58c8b96b509cd7de547ed56956e8ad0a572fd45c2ebb201c46c3a1e2f4e091d1557c2f36941972ad4275bb52c52c9c4f893706a3b1d7eca562e20042f1a0432633c9157ccea9fe5c6c6bb6b760e6f34f742ea54fb670f44e19534ec838c39a76a0e9c2d6292893a16fd95997c49f45cfc838eeabfb04dbde2b87f75e624393d3e2899f2602d658f65acc524f05e3fd79d52c6482feb4a9b78ac8082e7f5f411ad24981afe8d814ff546786c66ac5613b2d135296d2c85ff799b1b3b9e71a165db33dd5755cb64062fe5f804ca25a9ba67eac1d99c128130b56b025baf3bc3381286f9a2610dbb29d8e7d31886a39d6c4e5eb698793e4a0559e8baea73b4fd281815a2c14b619d7977a20fe0f0e026cda1976099837aeedcb5ed836352823b40b1870dd11122277efc9b81c853ad420f5b827c126805bb6a8cb830633214aaa62029661388010134c1e4c444ce3d46f559b8dda44c766f099644cdb93a21c29c356a308dd36ddc930d6f5aa3de8ade704896a86d99c6dba09ff464f8edbb5ecb16ce4c84549ecd113a36154e6290b972be4360f7c12b2dc64a95a8f144172adeb059b19e4d77e81bc6051b0348e1f89f6da9bdb71d49bd980d3c2611caa78e4e60c7b9d20ea3ee729fa1a89aa391e52217cf7407a02328e83ca8e7c71212da019a32e9d0125b6f283ae28426eeac2ab7499dd2552a6a562ee40222c0c96bd68758dcf5136f1d72cd9167766d5f3c721ccbb947419b9c70aaf4db64926f89634cba970ff50aa7500abe3188742d26fce748c965d04e48ed65707d581881eec6c09fc96df3920c9928a67b26970b0ff26f7ff126a028c9392e1a2deeac9043602860eb8db240bed2b48aafe86848040d89d3e6b5e454395f898c786eb7b90af90c6d4c3179411632f77ee4ad9827cfeb24bbfb8ecd16ef6af199c54717c10d69478fc994c31a78fa44849f7fafcfa8ca87249423784c93cde78ea2477e816eeaf8b9c8df2875a384ffe2afc9416863fd73d9b082332719147019ca5db68237ffc9f7ee83bea1e0b58787c601d390cefa640413e7ad55544ff22b7db87d3d0d3723ad368df0abf18859f44c3e510d379f53cc5c9dee73546a878fc9de55ade7a5d71fdbcb215ec5302ae9ed679ad8e3f53d2b9c58c5aceae45043a18a6c579c6dd02470915514c14ba9828de4ddf9fa64f2851ffecd387359b056e4ad868a5508007ba68299283983d1bf735bd2c0697d5e51c7cf71cb6bb1d0cdd884fde7171e1b21165e10d6f7d3d288bc958f802fe97074ef065e871c0732651f859b108ca61d4af81d750b54a92c03a9c85b2c44e8e674b48b65d30ec8551d218c77b32bcea09c9b2f9675ae5d472fd426b30b2fc8007be21fd117f871f894a353e2d18f1c2d685de03843f1b8705936632821700a670424e8858b6011f1cb2f5e4767cd17210ab63caa1541bcc0d894593e206574dbac6555115076c362693ce55958f0eb95378925401cafbb074ba31b49939839d093df33f7b04fd3b51ed8ce6f2cc198f73cf2fc775be32052d820f58ed9d09609cb2943c60ad8e0a40c5cf3e5c07aa3d1464f31ed8be1cc39b00d95c7808f2ddb00bdb1211041ff244f58a3ec1e53c81e4a60abb26ea7a0875811e8a83304accdc9c2024cf7651b845278634bc978ebe265c96b71bb5ef9e0f467daf39b8a548a59aede961b6e928ef39dc64597623477c512a184417841471b62d13d18295e569e08148661b53369ab57fdfd89ac3ad24734fc2e162246494417830040435c7f4df4db145661daa845fb0a66432f82a239502482228212ead033cc67385a1cf41a37915ff7877653f6c8825f57a9211fca03482744bad80699f6935cc977bdb4eaa60a82ba5ba31744c71f6dde22353fc7c49fb06e662307495852fc806680e07170f72e94bde206591adf9bcb984143dee9a29b99ebbc0b9cb2bb56ab0912f9b09cab195d8027ec7f0cebbc53e4e52d5eaf37909e998dc31e487640a912316d94788108192e74ddc013c2ca39d6295eb4d152acafebe5e2f79dc17082fcf25544a72a3075d755fe8e7b3a3699862b799a335f3a67855ea7853fed34a524adb709268beb64036ec6dc0c23a533235b7d4ce7b84c5206813ac34d806db9cce68a5bc7c966a83d6c8c9554c7040ac879dca9f84cd0afa6817addee815372b9862811a74b48d28a92516490b2037894671680de118cf7daa252597be3c3bdc687b4ec04c37e4ed25df74a008c9591e263cfaa896f60ac1e437518481bbb64104515cdab2e68c3c635e2369242411671e1f170f9cf64689b47aa3e669550884b54849ce89152211a209fae6930a6273e9764b8d5f33d8581946f960461f5cb4c87bda2466542491c544399d5caca9cb861033f040ac3321f8a56737f89d64220eb4347916f418dfd001c656da163a92b96df571147062999872e0aaf434a94b5c7888b2165806c26ee137363e0b91008819560da397e02d26f9315ec6e4c3e30c29839d191938e06ee35ac00a25231bbe0ccb0d2a10711e323423ff895928467a2c179386f774a041a706c69750f51b6b224b91d935b0a53094ae4471494e5b892b6d3af89d10407e3c6d0c90917e21619cc6d4563e6ff5f9579db14123599c1c5e109cbc33834f5f83439575198c24b9b77b903973226a47750571d50c97699ce7a7ac56bf7092411d657219ae21154d51995d8e3cec963c116c109a3171597843cf2dfc584a3328edd522256090433b9ae11a56fb0eb3dc888ed11161a77ea1c1df43192df3553828439193913de868dc3e8a05b4cf808e0914cc50fdf0e50a13bd67cc4e13583df665ee334cd4b1fa4e7ced058913fd9fb9a91d80395db42ee6f66b665a027924a2e9cb29e8dabeddfa943c32054206be704bf560a80c618993d124f0e77336805ab70e6d02e74c40af4aac5d3636b08100bb5cc01a1e7e1eda07e3a3cd4f660682c98949c3e9b41506f79fc997482adf0c684107cee865f0ab57596d3260f91190e854df744e019478c8cdb1ccbbf3b5744a64aeeaddea890a2cb57370bf5d1f81f33ca169e587b883dd50c02a169a414a7186c352abd976f3f5aa89c72fab51d795fdd732d576c0dcefa097143264aa5b485e67c079b6c85c06f7bcdfc61eef2a8d4e1c270c31b0b581eb4a240f1c764bd69f5034609f9441fb5bc91b97eee24ae030e138ecabce11bf16e325aea0113975a848b466a774be1178a3bb402939eda952e91c2bbd252a85cadee181084df9c72cac59b24e053eefe2f1ce9428a4ef58d2cbc0206d05e24138acb73ee4dcdeed9dedafb4f567b5b3e58df7b319fc2788247411feee814b9dfe300813a1d81237d91363784ac0f066c706fc5240b9c4cf61a211a6d5ef3b1f72457092203c7ddb1b353e65b8b9ef12181f2a0fe67a3d32cc6a4023796cf042c835d3dd5b693d7622027a15d4ff511d9d4e89fc5981d306eeb24ff34556c2aa1e4335d24ea2b247d23b5b1696c3d3b1813dddd7ff34a2834eb82aa3dcd0eb651c23664877901480c83621aef83bda4f364d7886319e3f495a894c757d415c7af77d7bafebbe9b14b25d4401361f10cdfa0edecda0ebec91c88b660c39d59c24fd6d1b8c6b1d3ae15cad0431752c125f66c8356dfaef56e677f45654c4fac47f570697a6d382e3180938484d2ea42b7e61f68c02c7a0e67977506f239be57e87afcad4f10e246646a0a3c933eecc22b3edc6e965e998a190b4ff0a4e520b1ca676330b75f41ed35f1da896b66c6d15a2c79a2d64a5949a908db4752697a8b940172e4bc281f376ae9f95dea3185565e46789c703cdf7f1a05ef721a35f3b75f3079bdac38804628d58cc108956d3b48327de36bd8d4866f8f5a42fa53b08b16fc1ce5eea361c8140c2414b4bb03df32755985d515aaf743dc06a42198d94682ee311d705d3e5456654ff18ef1c6d794ad8e9a227997c099a674da8eca92d956867206753ae70dfc538a380295940360098b8e55d12a1c0649225d0109060a207a3abf1898cb2027c59df62940216eb2c3b1f3ff49333b681681d1007e181f27ff2d782efb50143c87ff928a0c855783100ed94bee5ece6dc8834bcae4f2673c760be8ac17d9bfafc2049c39c8fe639675a24fc05f2ac20a022bf8c4f88ac41da49eae779461fc353e5bef773d3b673fabb7ceb03fbf48206f8e5541ae0b15f7ff6dec1baf4117ea8ea5a00eff037cef572df3da1d0698fef2a22099ac698773f738d33eb505bed5c43b179a13ddce290c8eb04233d57ca93d5c415cf0808b1bf70e1c5ce0ec7dbe6376fa1d3ffa0d813a2732baf4a2bebfc9b7105ef726d95f2cf35baa11186d5ca5fcfe405698010e2bafee7d296f89c23959f7702437604d198db24840aac7005bd24bfe7aefce17d2f47ff74a4f3ced4241b67db2b95388d7e98d73dbeb12525a354e8db3f9a679779bbd6ddfff794c0a183c01d5d82db71c0231ca516f1b7965957d363d9635b782dfe56bf13029854edcc485422b92adf2aa93e32a32d2ee616bd7c0cf865035fc1669e66c1b6164475bcd34b30f72b18384ce88953085bf6282589b6b12f2e9a677e838129d975df7070ca2ea5c0f1d1d49f4908068bf570dcc7b3538c583f788c85e72196d5609d8ed8011b15dcefb6182c1597fba241f1fbeb8c734cf84b5bd9ecd8e821397a77b036e12bbad65f5057ee4958619d48ab8d708839082c4784b6dc85838b369cfcc7a3d832047cb5074ad7cdefe7b0a191cc465c9604973e6725aefee39f22a93a5d8a279851622332b84bd875cf73ca3b38f4aede03dca69a7570c8dfc8f9ebe1cd2bf31d905f2f58eea32c5ce6620f0ffd131619b625b8b3c6673f1e99d70844dc19ad7fe10d572b8aac24d0b85e046ce4d0649dec9fdaa18187c980a17f7d10b8bdc927254dc4db9c258b63952a8de2726e4adf0bfb225bf4fdd86e77d7b1f044d1c67575c111c0e94546061bee75aed8c2407ef7efdeeb02a6beaf966a986505e5814e3c511f811332d29abbb89bfedeb5caf45db3313b71954cbcb4e4de88badddef07fa7f63bde8a8baffdf7a4c80ac60281da85c016a19148b22e9aae937b70be486eb2bf4b49dec9264ffe492bc4857920dd256f57c094ae5376fffc4cc2ab443afa27c5ad2732cad7e9872da16f1964b9a9592c314b4dc3bbc5306cc1ab6d6f9f93fb88310a7f6972a22d45860cbb1acb086aceff769ff6b3ec6abbe676e9fcf19feae8e6c232af2f79f0d1b11a39e73f75a6ff22922096d2bd8ec70c1d26a2db5ef4527c85aa27196bb5e8263f74233aacdc3abba59b4fcd7ca31b3eba82912653da097facbd0ef151c48a1d5ee2a7f684e3d759ae8e83a9b25411f25d2b51c81da579af77334a0598484ee6a60d8a1ee01328f690ad67b4f76e81b2c6a5e100f6209cdbab4a347724d3966a5c112b224fc9a2b9895df96c966404977d4734c88e596df1d83136c22bd75d4bfb229677cde82175323ac0c965cbc2b7c0bdf1034724703b2f8d328b7f2d8be0bc042fd686532ed166916084dcded5f9ad87903ff79842f938f6bf029092dd9a5c91b0c92e745c8b3ce6fd542afb37d72979bbe08c8f42c6817b33649025638a73377b36dfb8b852fe706d471723450410390812e82a4280311a7b5b17eb810bb47733a9cc11441598983894847ecb1456c5fddd1e4c4ca0e449c85b234b90dccd67b08b607380d02b7e6fa7add5ab82eaea6a345d1a793798700a31a293fd1dc9313a9972570d3796744b3fb3160ab844cd0cd41681d201546c39567a710aff3492182c6c3a54bd8280a1cc8dd40dffcc66855225b04841590e70da9b7a11199d5c713e191f45df4ede247f3fc532797d00a2bcb999b652019ad6decda65fbb56f47638cc0923b1647c79a7014229805fbbf188be75f62e23495df7c4d29ca9ddd4e6e54282600de57d165934ca4612d30aacd6633d064acbc746f88d3dc40ea60ad82c6c188cf171b7f8750a7f862ce036e73215313c824db582fa7f0bada67fb8d95fc7da4cdca935258e47a719342cd81e5e05558b113d28d8a0b7c522606492614597df6e3e6db5fb3ce82c88d18f630accd1efd7b2a228e0e794d78df9d2638a2e8cbfff50572a59ee381d61dfb398c3d77c0b5c6ddd32d00ad4112c5aa48822b7d9187be2eb3b8a35b22b7b4e8e0f3de622f71bb8f6b71447a127d9a9a0730a09e60a07eddbc30d20ed2dc52112b508f15bc76ae7d69bbb8876316769f729e3bce1bbc0076b4f272e259ca6e3e7486e3330d27e16b3b6ae49a92b870d24c50cb2a0d5180570a341db0817f0368eddd1f3e33316ff4156be2d4e7641deb6f3f477fd034050a33521e00ce15b65d45b6aa3a3492b71c1bc7b257f55fe1cf075b522ea77a3dbedb0e698115e9e0d3bfe47ce4637b95c9a9ae32120711eb319a202a5126779b23373e138ed99065369d4aa95f565909f7d9bd8a2f55623eb11e269099e8b5d7fa51032b658c1ae308f43a9ae79fd3a0928db6daa3ff467f68733e0242da1fd99fccd3c97d0a83cd23f81261f696ef146986b01df121e694101a7a09caeead56d2526ec0b36433214091b193326ed9ea965cf26e6580e9ed8dce45a5901aafd4bc449c3fc5f2dce8dcf6f2164e5eff5f7127f6142b8dfe05f30a2b1c1a7ab03fab098c0f956237cc6c031702d87b194beac69af3da312675e88310956ffbbda8ffd2b1033aa89d5787feafc0519b039d0be6de3aa740a4ae14bf0a5878929d6765d4b8ee526e3310508740cfb3d3108e8b0e0cf87d0909fb6c1d71ae5d34cb69bc9f819e53e5dc775ad7f07a594badc9fe60a41ca754f22c37bee07f676fcc4250f64b72e96445bb67910a1706d97b12c93a8c7e14d596a343bd32860741702458e7682ac828b82e12dfd4c76c95613930d6a53b8cda0b5913639b32ff6fe5fe9ce497195c44772c51972065aa74ba54596769d3bab7e40ed0863055d12151075b9aae61261336002046e66ed180db65febe362b9812e2eb877ada4e9be46dfbb319d1416542d736466470a8e79f7e3edbc3f6f983e5001fbaa048c2e947ea2e18ad82e87c1b7435b54224a7a62a8d1f60e0a77381769a4f46968ca35542fb3e9ca466d386977ecb07b7c3f96a783ea35db39c202586002626c7171396fcd7b09fd85de4664b7aae2d1a41b5bbc3037bad0b4a6f593032ff0d6c7d3a1e6511410e2690ad39de50ebdaa3eceea5d1942dbe3d7d2349b801f9b87a9131d01b9ee742677643b0c14bd1d27c1fb8144ee0b367df5676826ecf2faec6701aa3b8693dfe56a8e426b7abdfc24fa43c2eb2210a47ad0e4f453bfcac1c1e849b0c43c6e3aacb26acb1af05c1f1c87d88e366b595ee123e055eb5633ec2b25f57f97e5a9a254f0fe14d1759d169d5d6375d045a6be14189325da701c666dac34d2ff8f1dc71e7c26a002ab366b7a433dddb3709d50a1d2339b85b261268a1e8225e6c9488813df14293d592619fe54f476296e122530e51f8a5a23e30206b10d0fc72a60eb5959a85e36e7d0bcef8122a6ea065a9902d9d62b7db02dbf22ae7cdba0ca69b26d5c8c41fae5b1139a0d94dfcdc4ae046baac43e99a9b317d5f4f71874c7692b410f2c5578849cb2700fbe358976a5fd124bdc439a4295cbfd738ae42cc29e0834cc740caa1b8c1371f3848da4b0b129841e02e58213f9e651b2cf14ec5fce5371a2681cb0a3045ddcf95235aa49bac8547d46ceb199f4cfc34bf29bb0c9a1ceb6d3809e8f3c038571b57ed801dcbd6e8d35f083a1b304d82c69faba522b1252c057e02caba67eb1e18d0109a748879d590657ff972516546d506ce09b38e5fe91585662afc977f8d23f7ed919317230d9248e1cca181e7d37d5364c07a43951a4b430686d2d9ae1675897417d7c3fccf4b9de222e98429b3fe2f1d260a82369857ede7b09826c4becbd9546d4d7f9c46b6012f29715933d9af46c5a0882591adb7d6296f61a1196fa265f22b42fea2beeac8d9ec0e35080a79d8de919f2ef94d1ac959f736a9635269ebce28e379cf7f99f3a868abac7a308027e651bbf26b9eab839d7a18dd70dfb05f13aefe8f2775e3343282a36b675c35d2b561a304568d285db5dd7c1ec39eb8e9f819bfb4c88bdd59b49db58464fe57c144c5594866454aa850784e72b21974102159b71b9311ee45d30710396a9ad4068c1a5ba1692d0f042e2d907b9fbb57a709f860c3cafa837f2ff5f80cf8a86207490e0791eab92d6701a6ecaa628c76835f660d32106f0940b80d4fad14dd7a362594c2ae0b84210e22632fea6f79e8fb68c739265a4c13a71d80e036a860ce949711e29e4e33b04d16678164bc8d346eab54e5724b74f58990b7c0d1a0406238a34a857356df74ca29b32a8d4a00a3a1e2e1bf6212baf93133af9f272357a177cd67f9bade2e13677e83bed959e24e90da7df865d890e84c3f8426dfc6dc49d6f08795c52e0e04790414b44e2e1582849503ae2b521bf38eb43d29fadd00124fa11b309c1f087b37f751eaf8ed7589eea95532a9e3526ae05d94f8bf5e0562d95345b91ab5e7be72b3a89540202b7479e8f7c3fe214f05c7101569953fcb5cf8c7403eb6409c800a2e756fdd6a3eaf1f7d9004a7b5e6babea177017803e85323e2197907d8e0751b8ca589909ee74c219d4303574d7c676d65226b324921014a6b607fc6f5a00e180398eb9ba93deb0aa7b8e30de89088f5c9d6b0225f0ca473ff2c5305d7211ea8bd30e137fe57e071d61542ed51df93b5289f2fd760f00313135fc33d908225cfa97420340d63fe7446e4365949eeab1f4a3c57f8b07be4ace8d488cc72ffd5760bbfe05ac8bdcc43e79c1d29a1d369e73b7fec846a76ca1620266ca4739fab57767513c375c6ae4a5ddd7b3dfe587a34bc39ffd8882be5852f7cdfcb199927ea2ce21eeab5c56e41a968e0b173196d670b55fa546f8652388cadb39a35c0e713d3d4d064bdf63341a9075210691aa3d492eb42d31b33ece33fe651a1a7fc082c21295917c86a2962234eb01e87e7a5677d98065ef666ab4d88c113ba3c06456bbcc844110cdc4a32b5cd4f9e1c2279274259c01e6cb3548ac40ddbe95bd10c9838d72ed0d26ba466c32071d88a5e5d5fb63c81a901b7990442884c75f64d268dcc8df0f1616f23f71b29fc5711dacf8439dd7aa678f8da496825f01e31786f74c00cb4452e837a183c6d10ade6a96470aa06f135ea4df3445bc6117e110a7ed56b9f6d0f5e0a8545f3b924c68d306046d184b99e4249c003f589d3c78d0dcf37717c5184e0fe19439049daecc6f6de295b7e3e3843bf45daddd8ba4afb5d069fcc30a2563211d701789f498bc3d9c8a34b6287e0910fbb73225f208140867e1a10d272828dbb94c74f9f235c3e7e619c93b445a36b12d09799fd0266409cfa2096ac2f03b132c5f38dd6bf339f5e8a0be74794b114d4c66106f473f4de0fd26fbc2cf7539574636ff5d29054d54b1a35561d489baf949749d6fb798376e109c7639d0519899632fae0246e40f703e9b5ea7bb30d590beec5784b2f92262c0679748e4421d8bd8ff5ad780caa144aa74c4f073c17f5f741cd9c77e31931a919c4672e8aada81df2d823baf356223220fe7a04ba0dcac61653a77098f8c289988bddfb60fc10f0d948dd0dc6a3519cac1c5ea74932a599cbc83b2276ba085d529d89faa9bbfaa3de5aa427ff0d828f8d3f9918b496d179c2d6a6cec9b09cfc3b0376dac9c7408d722f2e5601148cbc70081e062d1a5036e535e23acfed8179905352664056e0f2a24dc618a5c3068e2fa579bff1f9b9752e2ea3d00f53124cb42a360a5ecf97fbc1709e5802676b87de4e4ff908a32409d1e6324bde4961fca3762c3d00a87b643f9569ba304c944fdd93114d35158159361e17157b64520b9e5c00faf3e9529241e4860505248725864f7d383117876749995d6a557a409ac03b0043e0a36855baeb9e7bcaf37cf620677047c50858dd3c763854637bd9f717dc48502141d86d526ead61e7fc39158b425b98bf693fad781d24630cdcbdd38ef09b0b6a740f64dd3cf87d268d57a9d5626d371cf002a1670498b2012d9e1702ea5c695300a6d0c5abf70add5f88e70499405250a2a172fd39f16a90268ff1abf46211bc116b5f833626a8e764f5773de9d282cbdb77d83fbfa1e991f32cb665e6d86c49187f9c029fd4d8bbe959c47d96ee5f25e74bbe3cdfcf85eeef331d879789b4b79e21c0ddc06a6d06437ce32f2ea04df4bb5e44b4342abc87749ec67b38a54d57882db043f0e6b65e27387aa5738eb694353cd69eb31033bc99ae106613c8ec931989bc01af1068af992e4e9291a0aa9eb3208e1661a051074184cad101e3b6068ba0c97886218572b299a33fa1a547f4b5d1fffeaa0d14e0dc8afa6fd0acf748906f99b7ac1b095406c00315587fa284ea886d8c17f5a58ada0f61b9b4bd2db21d1e90e333f0688c29784f2363800f245ef0a95c894807572b743f51188c64962e681eacb55d47e806132728e2d6baf65dbbf08f13f756cfd7b4f0db98ac7d5a45aaf3fac8ee4a40f7e471dc1f81e02443cae94c1117964f3045f58a3d29145deea168a1899795f443503d627f7a98160f0c4b0d2c951687c6c281110f6d89b31ed5ab5a0b096ffbb0624138e5c8fac985dce6e52a511c9c73c3636f7d417d55ed11f1dae535d45545ec53eb60dd8e2b1796cbc83fd097c84ec9ba2839b445a4a31f06bfd49fb63b0588f3ad44af4bed2625d2839360350686b0dd592941274817162df1bfbe2c9b8976afb102a38d808888a755ffc137fadbeab0838ccabf4b1f12122ee1448ee17272a8306e27c59c361a45472d4b1b38fad189b3a820c612acdbd9e2c821acabb70dd1a49e4b0dd57ba4c3304f9d410d07da3db946c6a1e652b5fe8e1b0f96f5841bc94dbc760b37c86112e3a89492e34c0a047f4c9518b7a20c998ed28da6be4dcde88b70383ffcf4dbad84f078843062d3fe83c446277a81d44cd837257301c2334f4487910374f23aabe0f27afec92906bfe03a3d51fd1f1563eac4cecdcfec3675defce330ee02d58335dec780ea9c79569154e3ab2fb596fc8c2338b154d84aaa7809a194bcbc02049ad19455f20cc683eef9f0b5ad021dc1df537517911928e07c55babe13c04f18a8aee920450d1c7d2440812091ed4ba44c9234d8314e96922fa46bf5cc32d8f63123684859870a21c7afeb47d59fbba7596f2944565c7f03c4fdf86e0d44881f375a5430cd7e571a12dc4a88514f2d8ea0797237cd931fa816a614601478fd474798a6891f25b715cacf7a11e8c43722f9c1139ea8588a0d6e2fd9e40d8514732f9c9b1155449e3f177f6f8e11d9c558d28d736d2452b3065c5e3f542a8709785612eb27f69dcf53dc70f671bca49b0445387329d392e9604131bc2b5ba63f7463406480c227818ce06874706b94cfb5619f3b874421e41e6402fcb6e77d3eb958612fa817440d41b526606f0b5f749cf49737ba68ad5a580b6a9a2832bc113ea83c59380d8b67970ff20a769ab209c9c068fe126f95fda80505ce2f7853f9de8e6d09a57cd66353112068d452de115454af2b86cc0eff8a9e17bf9271bbb6891820478c752a25df3c682efd9f2e63ef35eb47d2dd2e13cedab8a9245e4d21cf5bd7c6df26c4e0b210b35a4e35454aba064eef43666d20bb2e812dc11bcc0accb1021b48ba6bf4f2602ce2870d030b06bcda113c077c15c3945313e81e35113f188725a048ca6991782c416698a690578e3ee6b1044472f4462ef461b7e6f440448aabe0e2f0c1b8296d76ab6c6617714409b9a4ad0d804a9536ed7b8153797220528be52a45e429ffd604a7070130a4255e86e7b631c8e5022e1dbb913a32a008830f495858d9874a977304495bf2f23e5b9c6cc074efe254a5718eb4ac3066c30fca1ec6e36968141e2ac04e82ef54b870c59e00bb4b6e33d57d41b6c85fca46d151ac181e1417d9ed91e563e82456627bce8e384233c49e0486fd2930d86c24607c9a0e34da94d519b158e1293a71f859a99e5c794a8330ab027a6b99e29dbd45b35c73cce87d31ccc402602e416e0b4d5614cf1c70a4608379f8341132180c5ea90503bb5ab5c75aa1a974f21da5b9daed11d5ff9654b1c89e5886ce5479cda77b5d610d2ec8f0611b609613179ac7a7fabe736a64340f9fc1335e5c791c269a1a6fcf0fcc56d2f495a1341d5343f5b1206b9dc6009fe490fc45e36ce8b7edb1ef31595b3e39083add6981ed9a191a447f3937db584d627adeac35025aa472f4f8fa8bbc53932461cb80ac9d449678d0ce525871e5f0aa64ee20c075c644e76170301a4117294f639ca66387c73dda1a14a622e096ce948e1adcb943b6278551105729550c662bf838ece068074843f3120d0e9e902988782be5711303b878609dd2157f3963f0532930df1fd2e701cb66af8f360d7e84f0ac66500418a9357ce2779b70e5137deead31d5b819c03bf31da68cb6e0177826560e2c59958bc294ed65f0658750c95448e93cb93881504330c2bb4b8273073c09de527a22029f20582769931d259291834dd69dddcee9aac286636ddfdca6b81b78cd3a6eb42bcbf70634ac74258cba3656f85d5208d851bd31d9bd8883a28137a26d9114c5724a1e11bf53a85ad647d1d4810030f869cfda9a67279db0a597f2d662d3336aedb897dcbfce0f9090c5578af21cd61e30c98ce7510e53cb823d906402799f97928c2049dc48c5d839487c2bf71db3950d30d2f660a2ceb7d9f776ca904f9dcee65f9933036edd08afd80b509df06c0fb46c68c6bbdeeebcd590097b662a71e3e7e941afd3ff9be14ffee0e9deed9e4a68b2379f0c6119d9fd3415976c8a05b26754cdc33506c740983c3ebd842a15f6d2089c2c98a82f70600de187c1c229f49e01c18fede527a5d290791aa270c4ffc52b20bbfaf0bb612c9c4413f2bd19c7f69822e16e3a60541c37b8c4c0a5d1d13c7588725a139d2c38b7ebe562475d7e84d09e1ce5bfc0daed80e572bfd298a5df52a12ef0e4f090d97463f1e1d3fb69dde2b8594c83ddd3c221ce34f37adfbefa81225dd6a495b2db1f559828da2ca72018144d5af782a8f1080c09392a579f180cb593c6cf5b56492bccc87d0bdc871b13ac40619ba11d2457ac0ed0cc7f34870c97baa8f133ef666ae6da1a752f4547af4cd3013fb7acf1760435946bbb575406f5fee928ce8a74f1b910fb54e0489fed1d3fd2e1dc2c7111f9a3508b22a150c95f9d5f9b55573e0baf05203e4bef774ed69d3fff6b1d4718f257ebb8152fac45e716489a620e8a2a65d347c31d02324160fdea07024e7ab961de7ed578a25aa622657d09a14d49224c701727b9dececdede4c2db0d988e4192abed1f98a5dd61fe52d9b69fa21a141606817f416a7befc06334956586c77c03769bc94bea4b5c4c36f7d08f083333ceec20514ca1620f519a696cae87c74863281a91e5048864561db4f207c6aa1be89cab782b638aa1c99b94098fd901c1f90d1b64696d0dcc2808eaab1cffdb7e95c570d8fa7bf8be54fe973da9a196627d4f8a5f5bbac1f403bf66fc9e74a362f2846cc371498057e5a5de0b88e297e2878015c5ec80d0baa41864045819a53fc97a61cc4c7c7edbef1333df48cf7406ae10d659e68072e2de9ca04a810f43634b50d08ecd4832c6a56a6c2827f8ec1954e1d6fee1cb76edcfb6667fe2f237c7afa460191956540b9756fac3c9eb7c727e702cb62abe482a787f357d33432b64dd8a55c06b93dbb3b2154bd981f4a4cb356e3ef3bfa4874a125858834e030e8f1b1e8cfe9a222c305f40dba7894f4fff39df0f7c6b36a259773cff1c65a4a0b2b9df5f88b9cfd912e3f23ec054144c2b003a71fce55cac9f5b97c4debeea18bc76eb8d6e89a08f29e9767a09d04272d6e4f814a998ee96701f8549bf2322ac9fadd104e309b64c92fdff9a7cda2640af1b7f57e7e09945a5bd03c9f6295ae9a87c80ea7ded72e8b18e395d6607f94d7902f9066020db2d2d80fea5e4a7d93c6bae1b10e655841c1ade9f8877b1fe5475af829cf888cd754a9c868a6a670658a35560113629d198a6fc9e917c801a3c101aa912b958fb436cd3b3184d6f22b16882e972a6a6b361668632e66b39fccdfa51372119b108624dc0a9ccb1f0d99109c7aaa2c60f69b2cda9a595ab9a929f161a3e9ba5eb5a89e1b6cf79443b39a10ef8f3ad35def13a53f24e65cc1d04b78b03d0f86e5027977e55a5db8227687229de43c412c372dee97c583d98aae97ab9dae9475f6eebe585efeaf5872361c473b51967a4c37f58a06e2d5c2299ff4f5c91ed2af2af1fc3b7cc0ce5680c9c4f481c337e58f23e38ec16a230c939d0a743c36c9fd8df51cf05ccf2bd907c23591c7abedcf40a67324508fa1313975057c05d7194dcfd21f9bec0267cd15cf31fa4aaf50e7dab8810819c713aeb8daac12b19975310126a634dc607860fd6271024e69cdc353ab7f0e410e7583943d41728975da61eab56305e8b841875c9407ecff44e85af39b519ad96f3fb60265f58aa93ec034e6bfd0306e131477306b4bf037bab989bce1b0265f37b0d0c8290d7cdfe36f2b55d0b62755ecd22cfa0b41bcff761e8e652baec08763185e28dfa1205f96ee679d0889324274e4e5f272baf0ed3f3e90e0541e896134e271db3ccd7f4445422ebbf4d1ec1f520ba550b1eba15091db1574357c37c1ee751f21dc8359e616586a615263c6f49e9bb49adefad7274b558963e80f93002f91ffd999b8a0f8c98029aa6b5e8309163a1d0e30280ef0f162be2752fafc0c65f5b1b46f7afb7e284a1e57e79dba5fb3792e12e886b93c4e5b6737e419e3c5538b546a969e448ff6771ea2308458783a39fabc0fe4ba2275449b5fe19b4dabad3a0e0b03310ae40602a59dd8b31b6a5f97da672c64ec72830358aca47354dc28be885a9155103f5f484f2593c118488cb1e85363959ac495c1fee0acdfa665a4ad6f3c6d7ccc9b96215f5eb18135d87c26825ebd2f0450c702d0806e9a04e038d1f4308dcce931d7023bc83b2db0992a83cdc57c81e19841fb77672e53c45e4e914de14f6fc5472e44eddc0d3d961bc35530fdb691d8e8a6657ef1669150ae110132bc8ef8f4d4136fa44195834ca3a29fd591a457059a617dd7b47933a5e2e29160a2b77ebbf45398318716c00a238dc42b1f59017b31a2c654c9af4fd53597f71aa3bf169628c4018b7a99a05c809fe26653d528bc4916fd2fa1ca5c8536a826a3c80050b26a6ea34b05dfe99f2ab3b3fd03a502434da2d98271a72d7046aa9ec5f454fc73101cc7309e02478a012eb62c527b05fa00a85ed02ab779e268a4644dcdff08f07c6a949d49a914a28b786070df7e46c4dea3017b014d623d61232a8cb8396d72a3d346162ae055c47c948f0d1238caf43f2b584b8605a37821221fd8e96d3bf95954cac7a00ce39f8c8d368b695356d45795e5ed4ec8e19b8821d6097e7db2b77b9aa6fdfd8fcd379dbe9135e3a9e420fed845712e26e144710973fca799c492dbe473aac100e5643125c6996e41b488496939ccfd152e2510ad1614ed86e9a606ff8fe56b1b4551333de20a72371931fa1a0554f4514083a20c1ab4715b3ac1d6026d68ddccd5fd0a1fab215fc79835b45c304790d7eab96cae35c6550ac5e6d4c99e1048f8b0bd04da7d3857df921e0a4ceb440f4c68b308a92237214ebecb6b38bf61afda73b80745d2eedff4b66f57714dcf7647457304399c7840c4b85aeacc5c00f92d9c6a9cbf99a6a70bc61b6b2c2dd22cc8e890d0fbe9ff904b5033561c6a378d6d3321439dc9075a20b00c021c8717205181b2fe2944c4fdf7c8290e27107487de34831a35de7d8469ef9d110a4ccf8074ab17d06a74c42b2df9c13caf58ca763d4d06d6cf08b78a202021e226f30e09cd3c11141b0f8236b276b61afbe06eae33cd7704ee0727abc4375af99c5d4cd5a73c86562182817cd0667801ada83b26f6e974a6a05e85130a6b02d5c76fe5cce0396f5ea9ffcb7bcf81a84d9b1b2febafb1f214eebc4c05e7c5467597439a9ab3db59fc60fc6dbe5fd29d11d2a8ec1f9a6bb7377df03c0a71b545b7eafe0e3583c1e7281092f8d6c679e2972894388de375e00b01a2d6387c47957fea274af7d9834d73a698026dde49b5b514337dc2c9155d7a1e79e3882eb0bfb4afc83a4924efd7bf17b1a35938568aeda57049c68518707ec6fdee37f9b9be09bed22ed8e75e6056a2cef9d3f9b58761d247cf56ee95329c3eb3c53daa2084981dfa5a5f7976db405804a4ad3f9005967fde65baf19f0ea75176fcd0877c764c1daf56007352cef9057e4a9f1d351504f10e0420492c44d8621d69fba74eeb1c08f59e2b6db4d26ad09414a58a75f87b8678cb8f071067355db6a93ef6f3b01757931319bc98153b24e12f6bcca4a657f4a37c6be676e046b9839a4899c0873b2a8678d0331cd76dd0044dca33ae497d5f62fe7e71da691e1307dfb7aa49a32212a2f6c13496f05066a921543c72bf310752d9a0741f92ad0afd60f072ef2d7d741698ee825149bb38d8e6ef602e1bbb665ebde24c2a3f6c682bc7ff9a0ec35b15d9d0a0a95c5e9b9462d986370b23d3f824fb51ffec274fc047039206dbf3498f0cf0b4ed80c3d50c8abac0a50cd4e906630a4837ac570e0d0ac9f547cbc538c422b271108d9c73f37950d04088da372ef4044b8efaaebbfdb30e31e0a72e3991d3b1f064c723215a6ce24f2af619a18474267ebfb35ea9eff28e25bdc59e064fffed16fa8825fc3386be2dfc682767874c53a2a81371a0ce0748c5a7af7361e93b4b1ddbb985b2728fb5a89539cfab3dc892a63adf4267558d005794868339971a13a9a824b8f038ad9d5cdb7b8fc338de8cc8bb770098680abcca06ad97a87d2b70740c5e48207c2dce5ebca11a585c760f45fd9a2ec785bb481efde5eabcc763f486c94a5276af44a66a0e4ad85a98538d98668526fa80a3b2d111ecae13fdd111fe6a2507525257051e139961c7fe3e9d4ff824916d0a01ce6bc8a98743a17ba065d3422eeb7b0ad145b8a00636dfb57967a80ef0abb6bbb20e36a80e1766d65ea02ebba150bedf743ae54e483ed2277f3ebaf117f482383b1c78fd4f977a8e6a60088bcbb6fa91594c67105ea9dec4b114f456acef0f4b87eaaa004be6c032c92f89b6311601c272404fd7b47422f7351cd493acb90ca67988524d77e9f4eee2081c77e61915c3b5dcd17b67a4a9e6d51927fce7348c423992672c3bc40db3037ffe81145eb2809a84fd7ec9e55cd17f95a2867fb23eb3b1157a4d75226406da767d047afe29889fe5d60ee3013294c69a644b6de8c93d11879cd6f352674cfc6ee008e974f339c4b3aecbee1f087e5f097b7dfc37b9e14bc50836fc31eb6f61584595c6c7ca070f76c236d9d7d967a575d4c24c44c029972eb1ccc8e358c1e6feeefb8c08f66d0a637ae2c7142f1916993c18d0d849c1f1c42f7d035f4c53ca01c88247224c07404dd6748ec7f832d45246c1d11f8d4d9662c5664ec76848315c1cbe19f8d6b4c39fdb4c386940362538451ee828a3f68bfe5a98be976d54a47dcbb8b8d32a53a96a1624854d55bff4b4b8a488bf56621601b7535b9dd6298ff2744aee23cde08a7f7f5568c561b94dbccaa07291a89f43a8588da2c190acc29c61ca188b444a049e598b86119221e408c4d83ea541a7607cabb104a58d89f17b2ba4a83dac4937b0d775ba2437ec8fed97a5d9204ea281d4845c6509404234066631a4b0e4e84a179ed494368fc1c8b5e99501607a1efd6a1d9c9e0c4bd28710c9a12498bb3ee407718dd5251e932c962d3bcb5a0cb3ef01f98cfb32eed44b47a0a9d735a5f0b3f6a1c2f4aabf7dfe2cc7521e5c5360b5176e98bd41f876c33681247ff7e0dbe9140edc9c5add07a49247173508e81f75abbf6398e94a9198e389d87065230abadcbf3d2c78728e29fa2c2821b376b19311fb89374139ff56f3a90c15611fbfdfad85f73598c79ebae1c52045070ead3cd80b8fb40f4ba3ed64b8b26bb388fd167a0f110013100e29d319a9d8fb2b49dfbbb71620e72e9430d9577c84eb695b9f816536064753db6db4f985671b0310afab744e010fe59a596beb4f068de75ec01fca7075ab4b4b20a899ef501ab2f422de4aa5ce3e6d8283191e39aa8ecae543a75848b2b22539007e564047bd67d675f53461752881b82fbdbe1ebd286c4bf34ef322d17c484a6eb388dfd50fad842534b05dd6d22566c093f23da2f3dc19222e52f51f5a928ef2038726d4ea4fc577c16e4346c41d76ff5600a94d56611426494563991db319b5893ae0f4caa7b1f1fd5dd50dfd85f697e535cec9449d52d7ad7b3c723f8e4d056ee6ed3af72efedfe77283e8c127e29a7baa59b44e09f513a061db91cfcee0d529058e7cf7a964cf8fee4f873649a5fa7adf9abefd8ab43bd6e74b103817283a565dbce65a5776159d0c3810c806a111c481f52e844a30b3c54548becf76cbef0cb02477cee19048e24dbd9a677f871a9ecdca5cbb1f6665ff080a9e3c0fddd2d8a22b84830e8ec301d1e0b3945daab52f57b7387230333f9c03a666a613396436c7a335e6610b25226bdedb37873c678739f7c20b9a13b0b9eb2901b98b324da4e1de03a434d4d1b27239074dfe161734ee408f6d40992f06befa0e7784d3d643d2ed4102f30d6f406e391f5e3cc8936d4f6d4b3e1c3bb45d35035edc98626e09c10b90848043695919c980cd929409cd86d13174a22f3d76e9197950fc72267d6f6368e3f9516f8271c67af059958e95ea4595331ffe4b9ce6a61ae9707f340bd29796524f86f33abd36d2f9f8539a8c0b735bfd1d54627fd0f8af7cd3f374e452bbb81771f0ae11bf7d42b410158a6275247d2d39758d0ee2e9da842794e26e60abc370080e19c986abf50c53871dabe30e88c9ea4cd7645c6df2d04c63214629187ecaf673f58b92300b6ed1b0f865edad1f9f38c3d2c5365e8308c986f7cba7da0447150bc43132cc1be9cbc42217699b77b2557614aa2170cafd4e28cf485f9d4694eec94d935e55ac314b03886f0b09dafc9264b6db2e7439d0ed00359c6c4687126d921cef7612ba670fe37a8502d3247b3963d4a2b03af9de110d5e7dcc03de4ab7ffff5d96b038b29d8d2c9d8ff8498c27780f02223c638bc1e39d4bf954b7b5b47d8a57738f88a976243681e125cd9f4b4d0e032adb86cbbf4eef6e42ef52d1f4f89446fb020492bf5d156bb1604a3456fef8120c82a58c7e0c70487fe44388f2d2b82d1c607966e8c5a87b64d7ee253d72fb6e1716b6e50a18e4b2ff05f0e7ed8bd55b6e26a7b2185bb3c3b348fa4c6a4bc9a0e73be3195d6e2f13dc171627d6c08e30b05cc23d6d465fdc1c78446caf3a160b88af0d6bb60bddf8060b45fcfdb0cbf04542f484502eb80f9da9b66f592a1b86cc8344bcf6c69b4ec21e5f44947c36ab2fccd90578fc2e11792dccfafc47160c7174500414c4bc1a5a7c1df91ab2bf2c2700015950f91546139b1a47d66cc875d2962c901d72b5cf469a8a77568e1905d824711ce2cd259e1278c452d6c5f546529d8515756ca02c197686166f873a9b63ea22ae7954fafb5baf055fb7e5e78ab7913f952722bdadd17e440d3f59df51a32281b69b1f952da069a8beb29cecc01e63f00d90d9ed8c85dbcca906ce06bcda5ced821046d974808f92f4b10ad4d84ae463fead81365273947ad700ec72e1cbbc3d3010520fa08b7b36221562743f69df17b8d9c542f4e8067df591052a935fb137a5d92862b295281fc668ba25fb9ab4be81c003df889df659fd0a67facf53c31a5d3e5f641c2c776acaa42345d8d490be89d2168085608165f93a02f038a2901502edb6878428fb49e3cee3b4a5e8aab3a88c67ba8f40344ecb4885e095902dcdd7846fa51fa420813d1a6a5981c91cebf34750c8dd8b8392428fbfe1699d90dbf5bbad7999cd5dec7cde0b9b345ddfe81f79b408274cf106837514ce97ba624c52227a248d6395f80a0011e9a06c27e2b2899a7c24204051bb7d01c61688891f9c4bc0a98dd5c327b5a3ee323c85e24307b5b34aa1942a6e2b046aadb68005cbe5694670be4d8f8d9b47d06d9ddd5a291e93003c1b5f392e7b6870a9f44a4ab61fa3ccc7fb2459556f9bb813198f19e7413b2c41f31b7db4609b21a5df9f0bbf62ab625c9383fd3c01b294a06db6f6847828cbea2d7222f7964a1dd10c7a95b50a6e89c48c30841420669516804de73ac64966eec3be11432425b2209c7e2adda0cfe5f881d1a343c70c047928d080f83fe81da682a90db8f0f19ac84cd28f7096d220d3071d1f419dce90530efe5ae1ed4cbb917c450ecaac72a6c6a1cce11acfa81095a6c1b11ec242ca32954b70cb7d503bd2099fe8bf074d1957163b097dfb7b6d63620379f9ed240726d9d35dc1c53e37ad58d9ac34367486806226adacc3f623c4d351828adf408c44bbddeb8216b8140e8e3d8799c8cc2f88cf4b49b0c1d8ce25d05870991aed2125fe4598ff5d7a900176dd5ab0d104be799cbc25064c1f0056a24df584f6ae9d677260f4e0193c0b3bc4abbe125dda43a27255481f108dc90cd37a37befce11d2b332288001a03fb90e42b80aa354a0e17eaff1cdf7c9a635d814c134a977cd695f2a694ed12a1067a5b1b5137fc60b82f1ef07d1ffd18e9464b5f94440f4c57505663806900409c99b6b6cfcf8da856055250f92c0213dd28c653ed58db4125076496efec5728472d0d7cab57ba6b53f9a40cae45deb297478768ac493eac59edfdcb8b1f0b2ba49e108d420b4b4ac22cd7b0dd206f3ac64abc1ce96c3574bb366f8245625a5997f5ac12b6fd58d786071e8a5d659855e1be535dad2ab7ba6f9c08456b4777f4506039441e8df33ba7b4087f65328e51dc93b5feea81416ff0dbcccd4914f7bec2b238f438f6161889a3744fd795ef02579d0b85e484b8b970342d002946151a62e0a9c4a7c1f21ba407922efd15b1644b141a7d0ed7945138eed5ce6109c6987685e864955080136b57f8e8ea2ad7398714a8e71433621cc8d08a5ef9c098f2bf5f1d7b6355695ec9cdca0821c0003c411e7879dee88dadcba913f8a5836a80f1d03e1bd5573e0e98eaeca9cdb9c1a0c096d0b11d568581f4c9389b629ce8ac5c5da1ed0334fd24dbf046f00a68cdff5c4394093e73240edd85cf44be09e30227331867509ae7ad6c671a52c716f1e313d1eabc41487402fbb6d639e4fe6ec3939da5b4678ca9aaf89966289880de90905279f17274b94f793aa3e9f260d92d3c8fbb3c6ce3cf0ed2155d379357c6c7c9b92a3ba1a7d2d58b721c39974a69e38c1e0cd847ca8e43362fe62070bfc294485e88c10228e7cc6fc308490a8cf2108206ea233142d8ed097f35f39ed0116fc27da287b6506546d5156a098027384867233990779cc2f0f65e6e45b5182036f0b68898530d515fdf57ea2bcdd21e3353f8ee0abc013fe6186c58948f1863d5728e521ae760e2fd41f957478b78af8a322b236bd6ed1f88120d24d1c8c2039925edb78941df73344570323e4ab8e9fb7806b0fdc9b06fc37be63e54b602597d759f39a07934c1a39fb5463a6e6466e4f9f862d555ec1670156538a6ea32320334d3d9a6199b75762ac65bcf3102ca10fe12bdc0df1ad3e61437b6d05da3f152e39f643782680ad06a24ef16e44e07e7668b4307b3057def26d07829be1b77b8a87948aeab7ff5c8cd5401d7e2b671a6923d6050ce4c9fc17ee66fc91852dac1e9bffece95da27523d5ef20501dc9fa7c025d255c6e45c1163f6de21fd74f58a1731045d6307dc9965516e3d02181ec6e7e6ad439595a76230be91617ba2bfff527161ab55a7b4cb9bbd69ee93f4f05d4c47eee78878c61cb5c1209ce170771f648ac3649af12a46d8372e68b5aee786a6b09413e47f2c1821c745e5e7689d8af566240e242c4d9f9fd97604d0b9be7754b159cf31ed9ea07f5a40d20f86bee5245703069438cd1207bf9c0ad93c123be87ced45bbdaab25d8494a1358bb0edb3f8f2d0293065f333a8ad31bb79120205b66c8850bb070139f281c17096bd3c4f4a7164ed31b67f908e1753acdc75c91546a8b7ceeb1b08d15cf81ea4bee9d4a551cc14b5e12f9880eec61befd21d13a3da6f0cde26e3b0794d7fec57012567bc8cd36f9bc172649f2d765c8af9551aa4adb4b688851a3ef802083fb4697142e717f917c016c9b261e55bc06624e7ed34af19af82f1444f1e14e2f36acb2cdb39c5993f8b5e7901b061a99dc1d2b9621ba7126a0514899790b47293e858bcb238568cf2b3b720757c660c53eae3d19019a09b28d5bd0e485efb680b2a6bff8cc111c629c2f8b579d6e634cd7d54d3b0b910c3d5cfb6325eef18c236bd0defa9547c939520ec10fbccae53742e053263d19ef5259bf0d5da8f579e274c2ee1c56ca27ef61523d232bd9ab5c75d2000de5e3cdeb14afae27be8b7785d99ee6097127d32dca123668356afd36a52e350d2f26e4dcdc4479a1eec940f0a53f34573fa1ccac65387c6642932ad738b88ae27b3416d90504779d3654d356e0e438df0ddaf6b6f325ee751bbb02de9ee4c868ebad690124c2022cb991f38160a2c6ebbd0c9a4379e8042d46055a8915ae6feec47c8705959b4a71c2daa723bc41a8305078e49e7ccc461fcecb8cd0b74d3157a71b3fd4fd75d3cbdeaabc3bb9e01a96e44264a2dd82d2eb17a8f49061fa750eabe202dc9de5f54a40873e8cf8704cd3f85f8e7d4cd6da9b974474ca3c2ad5c9df9a67db99445b75ec56031eca61e4d8eff43a0ea150245184d2f1eb09fda01bd039a741a0cd855f6c5f20d55d29790b2c4e24c994158844e387d32f756559d5f471211f89954612f9f57115c216194e46b66d32a1a6761484fb89080b60363a42b8d8a5d35146415e3a167762d2c4dc2b6818e6043a6d63c88d039d9d06a201397af03923f480510ddef08af836eef62c648e3031cd85c6504e36552d97bb29258334121e45c5af1a0f28af20b9015a46271b372221e603e9f79c76a695d49974fa93684fd338771f1ca9f30468d98b2f236eb0635d4fa14dadb1d00508f4944ff89e3aefbcd167394ba10ed0ad46f5f75c1d2dc42c90c2a41a7779b66c56fcdc680c9ab115da2ca3ab0461da5a8dcc3cc71ff0f8c41058c480f3993a73e761dcd9378dffeb75f39e5e090bc332e7cf41c45057b470479d9ff8ad4a71afccea7fd99d7f3b3b1351adf1ab10e72601d076bbf0d3f0e145e775ee34800b78d901b0c05f42f36afe794ae9298ee8a57b0a34d5247372c82ac39c6d980702e11ada221ec59c2155d0c7ab8886fc37ec6954b7be74f6c0e6ab64ff56ee921e4b4ec1f17ab76ce12ffa8f37380986d10dd514accf4b7c1c269464ad05d0d5e951674296dc465734213e4ab1a9be6aa0853a0fc8097bb82ef840cf1236dab190f90b18793b2109bfb5360754fef4743a730bfe4632b6bc7aab2383b33d2e7392de16ef7c2020079dedcb3655c0be7de5532afd4eb41651cd3541df83c2f11c4ad116f92ebfbd0eae14bebe8976720119f071c4871295dc2f5eb4c1382accc5a4b7cd4e872d9606ff25226127f62cc4ed6a2db26e6d96dd1f1e29d628eb6b0497c7b32263cded7e300cdf72dc5b4c862ddd9da5310b5af20c88633499c1016c232d72c3229728c2fcaa31e2b7c2f4c8f4a978a91add8c715f7fb74e8f8dc31804f7686e15b851753f40288d9b648ba218c7646ed6b5b69289148f308246684c49b528f29ce296c8205526e832cd3ca3c28780951f43c926e565e80c8503b01a7f8df92033c1ca37462a64f4a72d78c9f413dbca98e499e05f7cd31cc58fda252ca85513bb38e3da2a446c8690ac7086e79bfaafdf285f2d38b9f7cd74642b6bbbc36c3ac8897a46017fa0dccdc29cd2738256962211359d4c100d417e2a6e1f23699f42c5eb4efcc0dbb28558533652fb2ddb09c33a9ddbbf78631897176f9bdab605c624f0c16b410a2a973231bf8980eb6b2bcfb5fb37f3b35a968f937f58f1f6e9ce05d75982848ee433fa337a22e15359db5b9e16be19c9e80bf793f3fc583d492af60140cc92418f62d6d0ec3e64efefb309869bdee55917976f05a578b41b598abcdcc5248bd82f34b86a62df0e68e8d33e5a9aa7134384314b6b71313e10fe7854e7d9f6c70e9b3a2a326b567077f678dfba078dd1d1e10e4c97b93f97b5541a8607930d3c0aff4e287a5acdd8e03d6a8fa43ac14935734ba2fce2ba91e129bfc3ebadf468935ca8b9dcc5d82b35d632c6e8701dceb994ea80aad51548d17f47371404e990c403424767091dc1d14d2c402d489a68c93225e46b7f8b13390e55290a1b5906e61e92e84bc3020588245996134658d2a34e0863e3519b338fbf4d2c6999f5ba4727902042587bcb9f4e0f07b95338133e7f6326bbc0953830322eb5a0c651700a6f0bc5d66ed58672b472b9f53b044cc06d075f2ac638830c392c0cc012142cf599510a6871a1d4b1b4bf05a22d276da65654d5225f5c6b665b29bf318fb6d1a51c25ed6f0fa612889c658caf3ff6db9e8b186c720eafdfc852f5ff0672d703a6c403750cbce4ed2534f12513e88848e0f4beb005558290c68d6098569619af2f31bd886a2fae1dfc31c7f553842136d688cdd24140a7f741af1e5e3ef894e0b656594fd5e3c6bcd4c3ae2913d425f8b1d6b39c1ddb5acff60e7950493cd7c9a0fb4e57b1979bf23b082c30077ba725a480e9473ab742cabd35d1c957267414ea3c0afe97cf85de2b96aa6fb4827cc540ba5c46be69799e8b62f36eaa2226e7e009c3d11c5020f7bbf577c8a4d4e7b4d6cf305b1d0babb57c0839c65bbe7e3e81a4a3e783a7ab4fa8228e6bfec3d10a519ccc9c4aba4114574e7ba0672a277b74253f60d5a38275e10e2ed0218190798f14393a0a16a249cc8fd5bd5abfb0472ff9579447d79ed7f91d4ad265a840f100bacf1d3ac5777b6dd93758e875f5372b5ff6a3ee192dea31a8c04320b3ad04b22a39c7f1f011deb36ec97dee6b08c4c3eace61fd063278187b667ae882cad2ee90bbf64ac3cf2bb8451b65e563b680d002f9d4a87b3ed53057e1a468dab9760e2fd9037ef29ced33892a25514396b7b062f5caec1d34e1d47152f021e36640fcdb3ef9bd2f7ea62f19337b9095a9c01e9b043405d3191095f1d0c83ea8ad37997f02d0e9b52d34510752884e078dbfcb90cd436d4600e8ac75b4beed9a13ac1e993164b9c0c7f61519f8b0f0ec38a676f853909a68f6a6be8bafdac60e10d340b9affc85128791644b2c0895ba519febe03ea977ea0d03ed3aba6a6cbae4b6ee0565802f709156ca4b9ef0988a08421b266fe1d6c46f36967acc91ef3c06f832b8bcb2e823d4af68fc88dd2a9b8b3143ffe544b3b180c967b7682480931423e79f7311e678f0160ff4645d1dd0060af472fbf41ab015cd3e52f69b96a4639da19ab62d0440386e3efd6ad80c2d34bd9adae4640b84b8764c20ec2a16b6136a8421919a7b51baccda97e6acec5d7cc015678b305d35fc5043e9ca3bdcf6b94959bcabcaa1035f0f217558933b2fa7aec89eb2871a8de171e5eae7e4d1f498f6b58a5a7787b314c10dfc687472141c3f93d56e67409c4b692854071bdb24697fb9bbfb6afe430c2cc3c7aa1abca3b2b40ab8eb1bf83584d947cac6acee5fb1025216a6c8319805a6a4252d6aa716132657c782c4cb6fd0eb8be7d750395faf4ce074272b851bac69cd99de0751caa64120d521d4352415133db60a516d46d0197d435335e039038f4159bf9a74c3186f078a01c830758bce3a38289c4718b9ff1904a16de5e3e2f4b7d1e310f125667047e2ab8e1944855eefe29c48e23cdf3e36cc1a7fd40f842d241d47928ebc7ee433ad52594cb8419de61cf3d1a3ffb0fee5c79b3901351dc037926d0b4075754d7d0d76d160bdd16d22c31d9b79104eb678b15eebd9d28e51ea35d779ade3407c50fadaeccf810c7363a7927f9305d0c3215bdced70e81f86b84242648fbb0b84a2c1d1d91af89300010e357d05d52274a42cfa7f5e7c4aaeb1a7bd28475815973c81ccbd3f5ae977972f10c18b5d6dfd2a9d8847991798909c868b0a2b38226f65ad454066a09183c8b8e1a02cdb092e1ebc111495468ee273b7d329307c7c23588df61b330a4ae28449744b9b760ed209aaf7bc901aab423b4326cff76c848e12bc5d301f9b4cb4dbf7c9390db46511581de3347da971c5b5eacdb4c8f1d0a467ab95cd839ba47c17ca16abab017748f4df812c518b8667d79ef237a81ae05fac1d7b34cb149348053f8bb5e92f5f1db44d95deed5ddcf6e2068c9b9a98571ec8a92385595603af9ec6eeb5cef1b8d3bbd850dff241f04406fc23c70c41d59beb3ca4954f740f9af3440a28b45ef520f1870809005c16b4ee0f692b8d904fe2b394276b3ec5940c1d93e2310d744403f6742fe0ed57d671400291b6442306d708c6544f3f63d85536fec26b8d930d5d134aa60876df57f0124b8b02143c024599b805bca9af3b65d6c617af6bfef756f1ce59a69e26df7095950327d441278770a74d97cdcb0030479f18f68c5e83caf95331c3fc5f59b1c63e34d9fd3dd333c4a3cf79ad1e1f5bc53343961a3e3037c7444d148b45f90ebbda88c3e45c0f6cc20e65f9b1d4279b669ea55f66903804119e95b86395e3af44ae103fc87250b0db211432b45c3a7ce1f0f86a0626d8101c7298ca248feb85f135c1d83575c75cbd6756078be8088455ae8ba0c13a25d5d468b8df28795f3c3b9f884c9dff412ff440afd77bf0ecdf5e52fc413de678955e37abce051ce562754d30e080cd9a78f860929c8caf0b1135c6c3005bad676a112e4857f54566677e560f486042badb374d9ab0baa58a4850ed8f6bdef1491f97afa685e4450d3178068d7f57e526bc8ae40eb68613d465151b6ebc3f7a542915ae8ceae772516ed55a733f6ede25be65d4bb571b82ebc85497c55189f5403918362d03bca413e8d88411fcbf7d6bfa012117de913cd26afc20225cbc72862944e4366acab9ca6b3c6d2e95f7b45bc7a8a3b7d27cd1fbed3965ce8a80e6214ba16a32ace511c01e152ecb211598da394a841b2cee94d2986d8c3ec1d1a7ee52be0d31d98e125c4c3396b58117e3acbf87c6bebba31c4c6cbbac4a1ff6f38e69c428cb2d21a582012ca8ea9eee75687566bb81d8e1c48dc8bb5239e64569e41f09a76e6db1b7ff06f319c9880ecff419ef8b5f7fc92aa151c9009a04368d184aa08dfdc7c7b9030d6cd613d316969bc11bb17464a4b33806aea9ef52a5493503ee6ebc645c21b019a27cc4e24416a9aa957e55aeb60684bafd372bcba3674d5b3ff590eca7e7b38c64dead12d3bc9cd5ef95b455a38d14694006f644ca183572fe6090ad6a09f849e183eed9f99be9423d6d596355f7d10b2b66cc80c070ca002dffdd3146075cdd7326335e03e846f81bd36686adb9feee891ce88bbee7cd926eb8d963a66782a94934c91bc57e902f9065f1bce8884cb02be1fac6add94af311869e998032ad73ab51818dde5b37515517e608d2e0005c10e2b8190d07908d37f5d021e075aadeb4d361fe4e21429c9cb2406b5680295a5c3e331de314b8c468a8bd2bd1c1d0a6024529ef4f96dd9d8b50929fffece01d138c0247d809c283b2d4c724bcac0bb168e6a0b9e4247dda2ee2d7512feaa2c86952415f0ad239889bc227e5ac4ef83e1128bf5b3b5a8b4affaaa0c8b105b133968f56cb49bf70291d51f94552c511da7e319a94cd69aa8c8bc1843d640e87115b3290773804469e1b719afabbb1edc7ca5d2abd2ca784ef4f92eb5d38955f1936a08d6931397f03b9a959c7fdb8881922badc0686102db54a5d22aed374c86e01327a45f7dab0a44491746fe803a3a7f38af50938c00f3264b5c2c8664547b70db41750e7c8b649765966f4f9c02c8e79c5c2cd457a72a9540369b41de70d9036e898b7d5c6bc8a1b418600809ec2f848949eb40e2485094c00bbc9b7fdbe5537014c2dc7fdd66c5b1ff696a8543a525bd7c1f5754902e9413fbee36a6e42709228151a73782ac93adce062e61a3f2994a0e68e8f955f687ea17ed432e6a994b1fbb8f7d8a9a5401af708409f2dfe5b1fb6bad7fb5d8ed89ede0458135425af8109f7983ae248be7c00a7d69450e35c2313222156154c4913039dff9f6a0767b157746a7cddfec9831e9864d84665a22b66490a7ed70261d4ee6ccf5221da6ee5de75f64335052e358adc0d6459e2935f9288750ee33920dbd45a88d7328312aa0a6b352ceae4b0cb12664ea5d68c85122d154708199672b6bc43d8769d78b5a53c48750ee1fae50a9736675d8f67957902855792806aaf740282ea392605339449b1e1ad629056cc8fcee03d57527b5c902044b3c3d86bf9d5c31234d39c52dffaf3f60a988385c283eb7c9089269e6688050715af8140c2b8318c9d6f41c23c8ad2694315808fbc9296310b82e3ff5552198135b7c5640f05e5860f0bf748962b1e4e2a4bc7698bed8207aa22ebd2a589cb5fe27095415f65aefd3e774823a5812186b31389010859bcf509504eca7a7ba8088215d25d2e592c0e09cddbbb1525dbc4e42accbd9fb0a5144973297787aabb7476043e46f7b531cd80e71632bd2308ad3dafe6253b6047c2e1f91045574dc225da3efd52801f7cd1f3e4d360667cfed66fa786ae48eaed914fd38de7eecf2d9ff2eba56c9f94baee87a7255700a557c7ce794aef336418218ef7a94af94ff60cf7d4e032bee4e3da29582c7584066b201773e9c297f8b62babdd8c58c81f3d0235e799269331ddb701e1f99ebe7d98980b43ec130863b979b60328264946bf7930b7c0b9b67470bb877186373ed8627fed7ef5576677ed7f5369f358abfe178217fa9866f5f8926fa0fdb4d51a5e5adb051c9afb51992dce1116bad7e336d33fc5099b3082ddfb44ddba67e5e347d76a4bfac9406c43dfa47a9176186310502f9b63e43077960a721ba5a4a6063f8411b157c851d583c14b73683f9d4f6473d0aa2a3810646bfd5740fbc93c32e7b87ccf57b48a7e7a0b042dad4372553c2a2605a48f9004f877e8bfc1d2bfc554a4086c83a13bacdfdaaf5c73d7bea356bcb388bb3a889bac59c5ee3dab81208e4730d6474065477af288dd5690bb01a5eee1317e90f0d84be414df7a95f9c0134012347316326ea9c88033f0719ffcd0f5f5c49e2feaa36d3244acc99d077b5162d49dbb472e08dee5239b652a5610b23804a4f2ced89bfdfd31a73b1f82b22f24f05637ee7f011e931a76d85e1155d8e288c6f39df8a5bab67bc927583f7385d7b18be302a23683d8a0ecf30707ac0647901340350f67b9e8e633aa0e0d749fb474b820d66308bccb8f8d64deee9db31199d21c171a1be1f220412245488ebeb4654731182f06882ed28f5ad7101e884b9a82ebbf1cd76d0d4fe3b3fe06f8973cd700bf71d61a3e5d5e190cb1f62ce42bd729b94670e36ea02898c213069bd2966fa156ac6e2e498d0f99328f12e65bbb6a1cb28d368747ea953c7c16cd368c3ebc48e66af43da45bf8d18aa7ecdb3246b54aab02d34f2ff60c6e5047ba98d5f9f3794272c07f62ab08b054fea9c6e59e156498ef8a99b2e226f57199e81833c4f117a4810c4a28d4205fd732fe70a230987d145bafe0317827ea55c721b71e89b21c27bb0a17b120ec66da5bda7fcbe18577dc78f22c5d0f71e138774ea781aedfcb4c9c5130499d1cbf2bf46a2978c6fc0f54aacabac0c71e739a6f16d93f6f30c776869e415336e2e81cd73630f3a2fc6b000f05e1340e3fdebddba20aac05acba6ed73051c426b71b004d717f3a3e91e30ca5e9126973685d28a0b44210a6164edf913f62a5b6db7cb327d19580840409c5f992c964d2a2ff26bf8022284913a8db954b5494491b2a10ef7e84ac7942361e6a5b11fac6de7d48cd045ca546c4165469506843bdb499781deca7d8fbd8662cf3817259747592df75c5bdaabff460a4901533f8178072516ca568d3553dc8aa9268ee809b6acd830f29b152d914da067722aa0c87ab8885307242a0a1413576370ed5c2016bbd8f40e0bc27c792921ae716676cada91cffc65208f5fae3c41242a6484827c18aa2b30e99aca55ae565136a331b422bd3321130dcbd81e1af24956f5f8b4dbace1fdc25a7d5248732ce2ed26caefe3d1e91014e99962cb713f6352df6ddcd3587aecaa32b8a028dce2395d6d8ceddeaf81838d380546bfa84f67ce26fe1bf5883b911287c28556b0c92834e0cbaa9ede7c2aef7cf7c9933f637d6b4d10ff09f8bf0b99070ffa5aad03061cea1c2da5f2b1076ac87ca40a433ef1115e43226cad4c54611cad5db344a76974518cdc570ee8981ce15ab2ba317f7449244e9bb5402f1ca75ef61f54f45befa4e59d41a850b348436c0c44778a64e39f89d2983841aed0c0452d193450ccac2f59465b357ac1fdd37aa6958e273976e9b8eb9fc34537abbac0a455581f03e13f15621b1f5a6dc93600d2679b00f96aaf41eb4dee78b19b27ec351ff2f66211498773decaff9ff648cc63a7019bab619ee0c0bebce9e944d8ecd7f79a913609a10d105b25b31a1de9ca817d1ba4b86ff839a0116ca6f73d0c257cb972f554b607a6f55d37cd6e08c681ee4ee691037f79a00adfc93c588d73b1725b5cb7c16ce18491e0333375c36b385fb9e404f20c42d217bab968664de4056f21d55855952bd69e7840405bc2841556bcb8f5d3bb23496abb422e8dfd3ec4a8c4aea06914af4e2492be0462795579077d5a165a586e8c4d196027c94be07cbbde966fa9d7bb6c072a6f010ccfc3b4214c8767d2100432f5373a4cd6271c0ee48bba040411aa1b8a3221b4d5aad84bc6f5ae44496e7ded7ee14546dec4f38f8603a75f1a663f647b23643a0884d4c1b65c2c3058cb0992e32463fdd1a2313e22f18f22dd8c5e87a8922ae218e799a220a57173cb4a998a601783ed196fd7c4b518622904798f2a5a55d1f2baa6f93e02303527f5dbd93c814b89b975030581456514b5a47643cf0987588019dcc40a0ab872a01ffc1874e76f7514efb4e85e043cb9f3690bd53ac873c66772b5805a1528ea439b45a329807a17ebd8d4477e51186b9afbeaab422ac4725f39fe10db7f98b39e3ba67f991fa7fff4cc37785d92dde5c89d29de79fd5bd2775442c517137734b1df20620fa57f676909affad98f75454c8affc354ee3754652edebf0a1d7364b6664246bca7a833052d7e7b91643bb6c879e3937a14c65e7586ed10d2e581c3d22b99a976e929a9fda8185f582db2bdcaeca7bb8df9a5e030020a760da6cde848dbfe3435a23c9726f61dbee15fad59d42c5d7c0a6ea1fb510617d2a62799f234fe9582f83842d75aa890eecddd2978c430118b4166eb12bf412e74d861bacd158cd03f13e623db855caea0b030769460e5815d6b9eb131a711746a3eaa00d9e66a4fe87053bdcbfef3c774268339522ba859fb0193c3ffe2cdb27da878aecfd3acd6467a4e4c1aad7ba9aa34260c6c439a9f51d67cd70d9b6c9b1793011c375a74ad3df7f0431916663d0ad3c91df16e6c7cef98e20ca333ad41dd2279e5f468d4179089b96fd93e81bec86ff39a7b3ab47f2ba934c3f853af046f11151b7c7447cb889406be3557d07ef5c88c1410c4a7760770a79d55de09645ec937d885b45ea55eb50a62cd96415ec5c84077cd2f2050b15286531e772441c10d426cd217b1c3a486d3ea8fb2272fcf109dae5711f861da9e1e2759991fb73cba98afdd872c8c1896f7ff00a3111443e6a7fbca1a1f3d5474155723da3bf6863b5952294674a9e8ce389012baa2b0600822fa559cb27edc636392196b81b66c5c76bb830491e46d17ed01f897cb9c954e59637b309628f34da9a764bd29a1308fbe260b60567f599e69a0e952efc8d0c7e56588275c9e4044c9b7ef0124f516d9c05660abb6c3e986e8496ba34f60e7fb88263aeabe329381df0cb3ee74e44f790920ca1f9152a8cdcfe5b5529ee191527232796b61d58fb6f6436e1973073e22d7db616ec72e876a7ca05d9f5f0f1f798b7ad08f1475e85cf55e9670993f296966bd5da0a3411439b81b367214bc498fcacd89c9216e9321433c23fa898a1e29138ad56fe327404440ec45006112d020beaca7104a0bb228705ffc69f64768e7071e63975e679310630ec31a59acb25a54623a234e297d4dee33cd9849fdaa00fdbf0d6ffed137853fc9cb42901e797001007f4dd3db78c9c7dc66c8df817df38ea35b9748b3d10fe5aba21faa5226b3d86fc8f20f5d27dc892321b489ed45fa44b1bdffd250cae4683a14558aa421ec35e95c8d7b1bcfb087a52af87c89f40a65ad541b1c44f75e3897f5e2f7600cece40e93cd0fe8638979d7012e02f8ed023ac09958299c390e8cff70ea834ef1cf14ae0df60cc3d4ea2fade32a38fe6c1c38741686f73ce4e2d8d1a8f80547083d68b4daef0ef2e9747a1d5bdc52ade346d652c14024ad3e5824dab95f409b8f99888d91da29fc2966539a1c6744465ad1175b21dabb81142d471b7b335cae12d06b9bc8eb4f8e3f4347b21b56ea803466e1ad7f8fb7b167f10ab7c1c12d114b8b90d4a4a2b7bf94dc1b497156321c5b1e86a6b5581f5bbee93829f136d9fb8fea66249d8f08c6dd91147c523b60236dfecb0905fd6acbacf9dd4b17b9976b9bcb20e22b5fcf2c62810295a2b069f6f4e38ea0a9e8dcac915434e093f7cdddc5b4859d5b2f85951810164b317bad2346c504b6358b79d4fe538f6e58c992026956b00c98e82d35592b594e9ccb1771e84f9badaae2018a2a4c3a2e824d5ce4a09a3b461866d53e389636d2f24eaefd71be4522ccee151d7c4117ed92abb3937c33c996df4563127ca8c3380a587a16bc9eee01fe9740126a44b8abe3c9cf9a2d6d9c75e4178a955c122409e5844759fd64a68ece15a07d62bac1a42c5a469b58ce2cd55b0df5b22a69b816147ae5761438aa16acd45e5c00b085469c45c29bad08029fcd220ccc81a98f9558bfdba43f91d7417badc4262b543b59a88aa9ae5ce02d12eae1ce4a4f8393eaa008a120a421380e6646f6678785a8df411886529f713ad78d9b86f5bc652f76df8115945d3ef99e4c55bc13463c37ef31918f518d60e1a5d233c9c929a1e642084148b00016445aa9e7a64fcc7320169f9acf8dd75c66872848e813a6d56d68e347b297de92a3e9e74a386b88af1e1c1e6a0e23c398a5d4c6bc994651903320366b0baffabd8f307a13b00b79745bd9c469469a962d3b136ab5c33b191a072c2730846acfc8606f260cfd21a26b18ab008c40a6bb9ff90bf978b1e3e09cf24db6c15d972a748cfdc0ee79cdca7200f034baf83d1feb81b12172df7381306e9432416060cd40cd740f0a5255b8979686fbd305779252de720b568c9f2fa7bf749b63261051d235ee14043d87b225e847c7f854da07c077ca001a27e89d6b9984fdda104decbe1d7ee6519425b7b65a7837278f189412fd7d1c2e268201623a9daaf230b33cc0766f972da968dc677e9263a0e12f448ace81cc7dbb9a8910d1cf3a17718fc275469b36a7429efb27ab417659b429bb2b6157b5f030a3a57e576d1e394cfd71e75ec83e552f504f7fa492d782359cfd8e2b5b1cc6fd8fabb3d51dd77755b682ae133e907f71aedb70a3ccbd53cf317ee8e965c29cb0299719fdbfb9935e8bf816434abf25159dfad1ef497bb7aede8fa3378c89a254d52a259562e522226dded2d1ade16e9973d284e2c83d08bec662d00909dd279e08c559a96804c13cd3701eec4b4178f603453fc751cfdd0d63bad2c065a2b6fc8ff9e9886475015135d042c4323246762eb609bb239882d567b65d5779ce943756b5aa9a3aff0fb379c294c5f51f2fbed4578ec9aedb1365c9776b5733e6cd13be275ad7f9b50eafac2d9e213ddc66e7a338bd939ce46b69b64420f003f554bd2a00c673fd2134421ea2bd90ded3126219076c86f8be5a80a2f4433157df5b1d776d4e81e7ed7c0f551da962f136cef21950d116fd5f07d64de268d204285ef49bf9f81e8facb8dc24e46de11ff7c385cd9f21142936764a82acbda819cf33e0ce9f53b7ff449825b455d477c0096e4d8e1603a42691ddd99e02f350c8a56ca698f04485ad57c6d94b7704ef0594a3f3f4244419f8f0da03e366edf8bf245668c226b6c01857c6cc76053bc1f638fbe604d49acddf8c11f632f3c643a72abee0520a3e89276700950624dc5707bae96ac55bfbb54c8089b1712a76649f4d01048db060a3f07969d1180b99c7dcc929eb97d73caaf1872ba2cebf7ae5e1db83d2dd6b812ce2c4411ef6c5d6395dc1ca6c318e5326e12502cbb22f4681086041770a9edf71874469e5227cf463bf1652b269b75d56452338f9d20ec3c6dc502e8327d5aeb8a4f29aaa9657960a4411d4fe51a766d39a01d40f2004ae9754b96a37611ca99a7b55127e41211633df96803266034fde8f4e44e9e5892469c0b186fa5561a87830ffa2cf8da8d6d240af5b3b48569bb42d180f0c709092c4cf76ff90b9624f64a776e9f5fc7f76aaacf19117c29ac166ae43b4459286c7f6148f3bc572a5259b74622d395eb9b3ed780443b102dc8955802042682ee76d6ab9bd1d11fc8df5e9df5780e9c217a9ce6720b4727061e96566a521536c11e756fdb1a265a56114a62485caf79d6fdd5c42b98f51b9f6b2b855d66edac44bc1fe7f9a7c7e456d8707fcef982b5e653139544518869c7a0ae5905cc48de80922cbd7b706bfddeae6301b1418fdc8aef69301ceec93534a1db19aa69ef0d16667c94d21685ca1fa97b0bd10027015410019e595ec2c31016b860398d9b3c8116867f87b510d37eff485236b0a238385bfd9e3e2f0eff1eb1df9f1cb4b7b0706b6d883537a8833e93a29fcd53811bafd83c24ca587df667833c985f0774762888312b54c39cacb62fe55177020646dee904d6aa9c705b7c49a4e426c6b7ddf6b65bd8d10994001d8a47d865f19fdbd506a48e01e1670345cf4d6f761800f7b87e3b747e779899dd41063bcc1c8cffdc57b1dbf330576963cd93f74704331d6f34a9d8459da27183639193dce7285bce7b047f0e4da32b22e20490f17eca68e17a7c513a5461eb3030d38e164e659c840db8f277f5198af5875222dcd480395462601e6f686d49a82b1eede57f8ef356ba89def257d5ee8b2b4be989e1d4b14c1a73f6a2d42433e4b24e0691048095a5fbb2a1b04bbd606ec3adf5ecd1513a65672b7fbad82036409d324277bbe33c76c5e5cef344440f318b4fa80d6b83fc314f52d80a75994231aa57a09f56c0a420bc70ac822a11cc33c4be3b010fe56835ac7b107414102c8ebdf73197280e0f0bc3aeb5e976828df29d473830fae6b1e49b4cac4b6f4a2a682cd89a9f5f6bc276f6cd188e4f5aede5a70201ed725a4ebcf80a2517f1fd59739c97952d0852865c62aa38907b6eaaf36e5e485ae5327a64526568162b8b3bff371470b77063275908f12b7e64ea266f286895a1258fb4e5151f549e1dd0317f384a8cd3c875f8a906003cd68a8ce8a98cf1c479526b3fedd7503f43626705a30949dfa615124e39f2006a59184c1814439484fd1131a321f33872d380a163ff86a372a3d5f900bbb58ae72d7afe06ed817dd9d122992a87ec2ca821f9245b46160ee496ed1ceed887b099d12ce8a383c3de9a9c7bf664f44f18939fcb68e10fa0b3e608b921776fcac39cdc239f0607b3daf3ca7210a496f61957c88a2c4d32a928bde9574201dae436bd937748e8e6b2c7e5a7a8268086e93c0d5b3fa8dcaa0ecac49093cb744f6bff014b420628c49eabc1c2ad96546c52fe4265a96d2d1626c3e70af5fabf4e258e1c98d75d49f1aae6b1a59fe0c0342c4e751da8dbc4b844ed28b9e652521bc5f3fb54bf79ef82831d2fdc357526d5a5fc9c8dd2938a17ef381d3ffbbca34962113b721e6e66f00c958c49f9cc2d2069129f0d8b994b20335770c1b3fba95b09c4af9977111b44685c6acf9fc541aa3766dc8d17a136e2eee75e745ffe646df2d2dda0ed8e20dc1cd44244c62710be8fdea2b1889c61d60588397aeea253f1300882cb7192acba895be0b982840e614b32b6b979c343b8c6b8e611d252fc7cee430ade87d299660030e213894ff2676ba7d13ef32938ee03c0601544b167a5828a18008ac6e55b2bd33ceedb37379b80431fbcfa790182a04e33c88f42a3ebf905046f968b310ca2a0b6d343469ceb641dc1e9988a41a993f101f6358d40b9ddb358009155456fcc946cc40636a4b636044ce7605e01dea40f016106b7d46c4f005374e24c8a2378a94d0c9ad1171bc87b4836c28a2c87627c7b8088097776c8df6698df648e1ec1969e6948da7f5df422b384af28143115774d8f4d1a46841111b939028a84ed2f3974830627ac5c8df47b476436eb55b14269ea058de3be4211a7e75d82c1852f583db0ef333116d377072553c14bb6096254bf7386f315dff33d86fafd40a53c0a380c2551e43aa7e1af2f8746af41c4e9a90a95f09f9c5cc1bfb0fe9f1fc3707ef8df08fd62d3ee5b3ff00177f78ed34794e69ea114f6ab3624ecd33c20904a85e55610bb88f4d3247940e0f4e8e476565829a45003d290c095a9ae242907d6ccba85a5e5fb83d9fb8ff54fadaad2028fca5301042179dd55f2182415c40d966608c1d38ea10cf35ead5aa02a4858f4b6d3cfe74ea869e3634dcbb757a0a4d1d7b243b88026a3126e6d7bf798339f1070f17ea244d503ab586c258ba60ea826a76f25f1d378dadee7603e763fc04293aab6986d816846c4764ba298ab842084144ca1845f4cc882968c4fd5dea528ad1648d9fb09279bc28698e524521e23ee6a27acfa7a9719caafe9dac4bd80e9d558e0ff020c5ab3b5aa369e4fad1842ad2535dba2281537fb1fe316992a50c9b1f24b9d69bb50743110ba38eee9558dcbf47c9a40c3c5792173db9e0de1fa3f8e886c32f0a0d9f3b67df1611a9ddb2201875ab397b76a6fb914a69d2912c511b769b89e6fb0cb8490c058591ec4554f72e1fc2293a70c2ff1e90cc88ec3def72508b8de06667ed372d0a213a9f5903ee1f7e840009275bdeede4a27bddad5d84e5a8a1ad2fa4f127516362d7497fe3b352a7435183fb581cedb91b315701e910af86104057b203632a5afacc566368379464cc0513f9fc94bba85bea5f4924be22101878228d64225585a95774572a0b5b0f04e353f495e4541be2d054deb693dc843c44b1edaa792c0bb496f080f61415c33632d50902890df4a85d1424bfd33169763609a99ac907e08beaef710547654bd498d0b92e5c9db29c28f95b6ce07fa7d30eaac04ed0025ac7a69cb9cdae0ac8a20482231eb1df3d004ff8293f785a30b09ce4c11e68c0fc66ec7347cc852d36a2d120197fc2deda70b26d62f0ad3f66a1cfcfa3892f7a1a7923f6c9e9479687f84e6adad2e917f8b7da56b3aca63805979192ff6155640585ab4d29419daf5c1fe2ae9a2dc9af74c0419a14775248da9ec5cc14d7c01f012f8bb6d16e653127d80ece96aac5b8530379154509b10a8bf2fb966428353f9c36ebeea7b1d8ec8d28fedc13ca30eaf6e5570f03187bde41567ae1d5e7880129074d3df44e8ef5c333b8193134a6468b4d0337f2837990cb8f05c1b2e2520944d258a34927406e3e84f6c482fe25d85a2a7f4e95ce5dffacb82b361c4cb37f8078504f8ab867a6c8ce0466691a9aac44d90a85353208a31039ad2a83333d76c7bd2106d7999f7fd901b18f2822fb979bdf26dfa7973b5f72a38ffae16c49a939ca92ac00a8fa6e0b77126120cb9eef26fb36c27a09f49209df2be530ab5a49f10f68dae11f11d59980c36427fb5b614d3cd157d7b63dcedce50f71b2f47dfe3b4b5c56064c1e9462095af7bee425c46cfbecb6221d41567c27a2adeab129a8b148b60de7cda0cb20d4a69a8b0c2dfb93abf3d64904517d593372b5f2763d4a7f41fb5cbf8df1dd673660c14df7d3a4c62ceff1928c3a613ef3be29850a4c6f3ca57e0951abfe1cc3bd85055dc59c2b7878c29982c1821d197c8fe3d57de7cb3405267cc48bf85949f468955c99c9f965de5056f456874dae198acce724294d7b73d272b8c22dbcfb06839b20dc286bf8e8a1d01fe57a5153721a93b58c76d21bff97cc215563649d0abb0b1d45e28db363e265149c5a0db961d52a6c9d5675ba089cebeb4b2d3f2382ae3688d1609ad65eda071f80f5cf8107087450405f1d8d556e08b60cde3d973f1fa7d6a9fb36ea19a306f45f285b64a4f7ad84fe7855a8c43a073b257a143e1985b28e3d676c86118f4e54ae94902ffc4c35973e6eb21278d50636a9012f6352812ac33e6216793936c718a2de8dc7b7c5cd63d303b7bbd7e3c35e8435880f84deb93d97670ea16eebacd673b241120e14f65ffb2893f99f360b8b35cac3004e6a95a19f718ec41e93dd0a9ebcb56e48c443e0c2a49debaa9b2b2f603724809d0170979eeae2b5b20db54fd1bd9d9d10634d63f3aaa4a5264ec45fe51f9e80b16eb8b4462cb7f20d37cdc73e7ef6784d1ebba759e96c248de0e72bd8ed825e262b9290a4a2d0942808ee0006f3b5dafc9319f0e6414c5b68cfceb4a02fda3b8c8738e1e14c448e64f82cefa31ebc798d4a5aa703724b66b31db215f55d52e8fd72457173ad625234ea9359ff6d21f97debaa984c06c9e693d2512da8137b7b903ebe54fe5b5a58775e8f08e42ef5d9c29612b370f452d6803958d3c53e4415e5c698b67a3b512918914fd4b63d035a6eb3bf3fb17f0a352ba53972d77ca65f99128c0c12a4f9438c1fe3bc0062eb14d3d7c6843401b99c54f16daf61d6b1cdb4ca23d052faec662417c9bb76325743958bbd20afbf193940a1294052b02d1a7d3f0439d4511b46e67f2f661f2e37ea8256e474d75585646fdf2ee6df553cdd4015d3e38dab2aeabe33191d2b4c057ec1ccc238c521f4e95483e746398425d2f8e44464a332ceedea3aa33820f0627eb7143d04d79420df12dca31c2d38c4456a112b98b86847fc08d42d7cd31ee739e93d45399ef84d9fbf1352d887c586c3dbc4433741d5e0b7e09593a740e94e092faeeee7dc7fb5b0a8f8bf8577d6a00adeeb5c7c589f331375cc1ee1ae4da786a47a98e8b1b5a39a9377595f5662e8ec05daa3702ead6c082d2bd39c8558ee65ab16e6a561b10e417a9b057cc90ef19671a5545f13da5d2e5ba45976a133d23aec47b87f9278f49c54daa226ac9e588e447d2f71dcb1ffd5f3020d15012900e4171c42e91004514dc2f6a310297f7305092cfcc56915d0edfb49d61ae5520a606691d9bbefe1f1cb5bb3c93ea0754d916f55c612fcf067eca9bfa481c470d7a83cec2462763ae475e52c1aa1b1346f976d19f107f96cca37944b493169fd55f51339648f3b12a901cac4848b488e38c03556264e1708ef8b8245b8f7ddd34539de6ad22501f0713e30aad6b779279692530b9f83314e02349a3ab12145207ebaa930f3def0bca1be03c0e554bc4d895989c39a11b27e15b5fc2f74c04b576c64d30b00886914dd9f06e1b4fb8bce2ccebb379337d1599a9239a2b48584ff1dc703b13704d1fb40126cfd4886e55fbfa0316d55706f548f833a3f6a782b3ada98f4b23cc8226a40049ffee67be633f3995dfaf26a57965721ed1e337d405bdc13eed1d0de5d69c6b535742f81f09a383aff0b1250cfa2a93e97c6a8908d5ed81a0d1ac283ceb7560f3f7ef7fab9359292f83b46d3384fd7f8d1f423ab9820128f14c8627d0855c220cad26cb9fee28c14a115c5fd60107b176dc827ae73bf6d8fe242f5eee1cdfc134a0b175dfa28a3d078c9851f26cc5ac05dc5c11778167cca8afb7756877dadc36dbba536f67bc96c2e185124c147b9e1076706eb140471365418eea11b9598b909a6b1efb412263aad466e8eaefb2db5d2c114dc07b7136bfebc090457fbb5ef66f54b450379ca04221b4fd97054b012a75fd0d3682dc37d38b487e5e0daef0cd34c790e08bb1e3e3f479c863ddb62ca855553385b96757d22837754089d4dfb1cc8c984394b31b39b47d0a21066cfa7bccd95986f58a5a83a2e388ce472740efb7a0fdb0153a1dc211e67ce8a9aa5e3c0cbfa1f66068fcbfaf6c42722961750b76dcc688369b2e53745f1793321422f7859bb8f4f5029af42c2dfa99060c263cb8bc7bccfe40e492adf62741fec1c7adc33d9d85869b24a3bafb74352cfe75eb63aa8fa268feb47c00241ed523cee6d31273c5115576e2e3ab4f1539e85aff3865716bd400c6d0e177c0007647808dd2fe0885e33c8b8cdb44a519212668117551cf5e501764eee38cdf03117f9018859b9374ac6ae2e54b49bb72671bcb94a8d94357a97f1ef77b1dc798d2463205be9fc21d00a59fff04db83b50f04fe940d0d8df494e15bb1f4b27f9faf85d9a8c04f4f62d724fefa6ba8e28d1cef10d7926b79766c99b4cd6e18b716dda1eb65c637cde90efebe40fa6a92e0189b07165ac8f90aaf280f045c41efc358a5cee87bb6e761e417ccd3bfb5cb7b906266753bfc9c367f36aa40068033d3607208358157d6837db5119bdc1387cf9638c07a4068df6c2220363b080cce5af60760ceeafd11a1628ed03c057774a73eb557672748f87083196034d1d8b70464d63216c2de94f0ff76ea6b05f6014a2132251be3d40ec3aedd700025bcbcdcb2237009834b2ff52499eb5539db0bb1ddf6d3c21b37013157efe0f79ce48d673180ece79e4cbb1c853cd236130310ca92758872aa49279d546904e121a03cb4f44afff1f90b39273a1fd7f5988afecc669781771d2cbb301f5f30687372d70e52469c556c0f1efc3f5eb814e3cd01c20319e79a38a5d17a55cdfb45a77b2358663c5b9843436153f5ed4829a0b6d73f14f756c871550c70391a7ec5a42eaccb8fb31f48bfd40dffa0a2468f915a9645cbea038b73b96fda3226adf6a557a32af0b2528095dc66b1e6c8b8fe0deaf5d35ef6769c9dfc068c48ec3c7bbb724bd7f196e0dd6dd9e5d2564e59397cee799385014650819b3f92abb2a2864952e669bcf56cd064fa9d5adf79ca0fdcd81366fe85510065d626bb2ccb1d5c861562adc1936ed38a39cea255349b953fe0183c0a4c5bbdc5f3f2f8c2e3e74ffe6e3ebf326825fe6546ace2efe05b794b30a5e5ed360870cf52829307e7ee12113b644388b19c856d40b24dcbc5451cb867c6e271219f46e54dbaa2b96cbada7366e939fc192b408e41f9d769043733d666076663ca16c41fedefff39ba5ec9aa24fb090fec22f6a9b86a462c220571046e37d615d14405c668c4b70f539fd3947668c20257a44f1294d280dd2068f83a8c861ddbc13fd9da7b1f096419a345de0087655fc3c37b133c1c132727001a805d51fd8e32461a8d86312986fedbf08d326c536e377641685d446a1cb937317519366f0cefbc4cc680a7576843040079bbb48ac0cbf506c283c9a0ae800449c9f14cd5b53516eaa0bc7a491f495368cd525485a82f90804484a59d37a6c88fc2c09d5cf003b4e5e878069466f14bf189cd27ecbd3d112409b819e0f2b8d687bb072d7ea47217eaa2434d8d1b8fc6d6008543395aa03b329c06d8917f275a50a13d3afcbf22ef84842c9809bf66181b5a0d38a61e8601247ec052606348a658756d8912b3b9d6f879c7d979fabe7ab9133cc7706d666f8da3493d2d85f22d4ecc24d2d1f46dd9b31fff7e311681130b7a7ec395ecd57a14f59387ddb3a5a51b52b2adc77ba3097a4ab797057f6941db3380139f096b27eed0695e6d1b43125e42b49e254698bf2b7f3f810a49c80ddab621140770b2b3708488faf6d255c6caf0f60b93d52051af79957cf0aad1e555cebed2009733c0add78a488951eb8f9f3fa348b7af7454eea877da627b7efd671ac5d9293385a2b380a3b382f2fb985c2bbd0352db0ac006ad47a7d8bbfcfd088f9a89c7c1715609ad279da37763bcb541f2b869678679c8e0bc00790cb0e1d5f4d337b7fe2bbf347ee94a33846951df22b8fcb0e5b22558ca667f1034c21fa764bb8e256f932a9f8762566120daaf1804bbbdc4e9904b58abff5d989e43897ed026e776da8848f852aee68438aeee9c309cd54e8c721c4af58e487bd6db79ba7b9e9687cb52084cdb543ffa1c449ff085008369ec2773efce5bfd96110a3eef7cd36b9010120e5c12e56d26002887d9f4eea6d9aa3bdc5793af29f5a2f5d0413f66d3883e46b2715c5f20987d6c9a2b027fdfd66a3fb9ea50682c5986ce53a104fd5ed52a62bdc91370ee530d93b8fc49d7d9215628d130485ba80bd9bde0c65faaa86e707051ef017a9f199204eebef77b751a9cbbdf57738710c05f669b75b6a3cc71efc7b3d7e97037d7cf193c374ded9260eb0af66afb17980bfcf4200fc647f3384ad0e854ff83d48dedb329452196a74bfa00be02be3630a83cc1b9321f75a5af69d653816a98a7a3f8649ef55c0a712e02fef2c0cfae7da9cc7deec7a330e593f6f0cc1ac99391fd6028ca697d9561ed3f84a142f55ef0dcfff862870b9c44bae1f4de5fab762f4279ab1bb11519a0e772f4ff542b7c66c94a6d18cf623c7538dd791fe615475f57fb2587d3493bb593625af2201ea40526c86179518890098fe0eed20c01cb878282c29fef53e53f7a56498bb1b2bf332bb61ad1f8b0f76288a7be4e23d9122d930f97457e01124b6a9cc81bb27eb5d9d3f899102be2e705882f84cb1600d49b26852dea8335ec1edc0650a4804bec5900932f03747a74ce723d4f997f4993b5622d9cadb5633da77868d4b8b9989de46f319a547ea724bf2dd7f8e7317e9f277d322ed65e162cc9a41be4293319f813b0a0b70a2eed1964eec987950adadb9603269c64216b4a42c17dd304f33412fa7553c554a1a386043d22a5b48c8f5a8a207bd4c68293f4ea886ff9bc1082ac0a4fdf30d2d676741c96b420bd0842c71e080b54eb9356ff7598d6fb8f9654c48a3b7ff8b2bae4dad80d978598728aa1cc4e910e37ea8bb607b41a2c77692cf66f8f919b5366c2059035a6befcbf7447cb2b2ee71f8da12b3ed0a9f337f63fb0d969179b3670b74b70c800cbc6a402d0da8fe5b86d721ad4843d755065e2fa348e2e378a7d44be14df51888247c7a7b57e881eef63a10a78cd95726164487a6d25b0bbae43a0a8304215666ab412cc50f39e27ae551b9c7008361903c615128ccb2492317c74987d2dfc84992ea24f2268c1ae8b66368d36f61de87b87fbc97ec5924ddf35a785de2e3512ad11dbffed48cc48d7792daf402c0ae0380c00d931211da3786664bb81b27a03cd7cb121a59ff8ee7292466832677d069ae22a32a23b7ced929ff15a77b9ae8ec047beee20d94b7b3b2517305a8437e2cea5f2f4bf06f9ab084f42d6975c95ad12d6c112ad76a42f01201c1780bc4903c38e0df9203975fdf96cdc75ba55fda1467a6b2f6276262f10a7113c04fa90781a86054983d1652a5db9f7d43b09936c1c5bc158507c990249cb34574d64e0583ec978a31f98281d1feb2363d4c9ef55e50c51967906c215c9badf30877a8f3c797440fbcb87c8e2d3722ce4be503468e85065679c35de38232ebf25b15770c02384cef6ed48182ef7b262f02ea4a2f4d6acd93acef43520281436a8fcf96b05e11ef56f3d2805d5bccff17217e6380b51ccc8f4e5891de33ebe62bf7ba72332eb3af1f6563328517178612941c543057ade3e6eb6d8e07e4d0f9f831fcaffee6ff0024c1e65e6426a4cf72ab18a3cfd9c614df418e3cc52316f43a106dd05e8fc0a16e9f00be4e986bd385d5ffd0b52e10e5ac7c74ff4a3c784eadc1b45a850fcabfd76a8d32aab409269fb3c96f8280fd8469c08025b1886f87189042f845b41108e536d1d25944b6985168bbe1be563291d1c270cec3ea3c17a115fccaac2a4ca6f12598f7cd1c6e0dc11811237b476e13a62bf86fc05cfbf3972518aa443b105e0fae805fd35fd42312443e227052db19b80d81625417ba3ffbf671bd61f609eb1854051d8b5b5dae3d9286b040bbfd5bdface2ceb2ab466fd9bc26e509ae529cbe23b680aec135190925383233ccc5ecd480f460adc88d870c295ee5d7f8d380e7452fb289808b7330095b1ecd57f723559a0bb2cd803fd9281f69f509aa7670c5049919c1b521cd4ada5eb5354c541730b7ee78a82b3435839fafd2d3b84142fc3b5971cfa0cd67674ab7451fc8c9e0ab4c3aa36a1c2d650e024aad6b980c2feca4f114b62d4d6150310967b542066c89ca69ed0e1a084bd7f274c31ed2386079914cc779e72ba2e60a72c25a886311380407a03543b063cb5ee3ab1b34a0770153949e6a22167786126440987f9fde6112a7769edc4a3433201c94a6d64ecb859ecc06c835b664632e93a994369bf3c73e5be6e040f7a093d2e4e887fbfc04235eaebe5fd3a5723d309287874110f0bbf182b5bd571e2492f8c48fcd4e5a728aadd7cbaec6b1c3698c67d8b751d68c18198e2ec0045bfe2f6c62ebe570970b66f9373bad3aba717a738224ee65ca41b3a429dd40ae8ae2093becdf87b80d5406ffcb39958da84d97d5a78c02808ab6fdfa698f3db5a671f9c754bd2b452096f49008ba6c599861f6a5e1365e4948323588587723f66bca3bb4f291ffcd4cc14cf1f0bbc897f365910550e37849a3ece021506a8655412642ca0df624f56b49487e76a05b5d4ea59e823426cb9c666a22e205d4c63393fca4388ec992fdc62622d32cfe280e6a3c8bdcbd322f3e1eb249fee9da7afcb1cd8e425702a20efd0a42f3b2b23c4e612232effd4ceece3b9df1000613ea7cc4cfe0912b0212d77f028308120d27e5c6c593009f1591e186eb3ac96b1000b01f262402f1c9662a83fcd8578080c5124e85a8a03606c4852dca79411f0257db95f4c2ac8ae9e4fff1c4fbb0d92a504011145585d9a43ed32569f5d17b5af08eb0122fdfdc1d18b4deeea0ff89cf700bc454a89b186d0d47be61c8f90ff0496d7ffbb0387b4a62fd66c90f4db3ccbd3d50dce61ed1b948974f2612772373679465b8819bdf766577aa884913d0e35afc623a8f7c6b1d6db5ef3831558cf41e34c8e6231fc6094a5f5932b4043472aebce56f9b88379635cfb39bfbfef8e206da6e9d8d050d8cbbe2a2c5b11482ebd8157a67fe20ed9e6e41dee377c32d077949d35019176be34ca7f8c0a453ee0398fe238e10a60a26b0e52bc8e1a70398f378457eca026a47ef84a8267d3e190cfd68b10f897316138ba8fe32a5929be8e1bbcfd3e3fb62c48f84e715de6baae0d3e199fc24407397b89ff94df6ebaf018674f94734405368b7f479b605cf0943f509b9b3fa2840dc864cfd79e81d5ee0c281904d099bc9f53c7851ce149eab49cba9dbb259313ef69f61663402fcd729ace7dfe27bbdc4b970c9d2f2172c46156cfe7311ad1da05ee2dcc1fff08afd3d9adb3d71a3c9c327f101f8a4ad390a7c704cd14c36504751bbdc74434122efec87d9b319a4296a3d29768e486196ad86e740d0ed53054f0c09dd93e03445db0e5db28f92c05490e7fec7dfe8f2956b9e35d46f605650efe5d87edd61d0c3a829cc65a789054e4eb675bf7b3a397f878b0a1f23da00d2e1fb37c3f4884ca06856b22c47e0f1168a4c3b4fdf0083015dace46fb454d82eb57b13fa03829537583e638a4e225b012894bcf569a5a71e23b8ef7d7098ff492d216d5c9c4ad6ea12cc2348fdcccbc1f3e6e0282ba9d0d2c6ad2803fbd4be7aa96430bc412fe5adbb3aaa6a6ff1a53d62d85ace485c06a455fee55683fc0b36a8e76f0581c734742aff10262d0b8a5e7dec6ae06088024cc61d90cd98528038154b05699a342d82e3f0e20e73b09781d4851edde8bda893a2820dec8606f562a84ee55718372a76dc881bcf271cba7587b30d22f11251c4aecbe2a103b418197854fc94cce38c149cbf2f750e3699edf41b7c9f3609213269804f3a8b7ef2ca410f4cfcb6cae2667a136d4e56620e0fc83d8c5d9927ad96d77ba5dbf4eae50dddf204c872efe4a6d2c92bc45c7a182ed9571bbd115fa8c07160f33524cd2bfd74d3866e57ec69781bfb0fbdd3aebad1fc49e22a98d8f80c2362e6463d2ea9cd6d6a008fe2f38e991cdaf40ad88821fc1b84479b71738bac90b0382b8c0b7dfc1b892638f0d99106f2625218cdb71ab9d94f2c19ac82975e61a5d412ba440d26c2b1468022a3552b7cc34950586f2b44dd521ff0375b4a1927793fe890f8f962ceb204e7f1776e690aea278bf38deb6b462a2bc9317015fdb3ccd360800da9fbe0f1712127fcb7934cb4b0a736dacbecf5db285c66560861371490a3f2f42347f6908f2dec74cad478f99707508f8ecd38ada6bf165992156bd5bc2bd7499f0efde7cf166c07f9607725132d07247f89c7029834e1831efd8a256462a9911448e848757dc7b7c3b431d9abbe9ae17ab6b87d0661985f4e20e1847a7f13c19f2f968cd2e87d5ba1b26aa2eddbd29f961f41078b3bbc126a09ab7389488b41f936b4f42c6394c32a5d2bc7f4aa64ae38ebd73d78909bf940511ebb4e53bfc72137bd2ec31d52719becc88f11cb303c236ce33410d8ef2789f8bbb52149125ed3036a9f8c8dd1a7c3f34087d4d93e4a672ace2daeae72c89310b3278bf36e0b0fe8608bba41fd21b75cfefb9400d72f5f2aba02acc352fc131aa71e1288500c765ea5a122563247aa0e529be3707c458768c097de492d17c499ff51cb58e2509a176c8b76f31d4c474e9e14eda1fac4e5468a66767a3cc3cd90f9def70c0e067c23149aee8a815589af36a96b6d6e69af6f23e550f31780173b26e7e871201452ab83bf8bc614ae7300d8bf1bb4419035807a49a98d7107f5e413e2fcdc8e34c1133ba215962a5f6454af56dbe649d4a8e86cd0b44c1568f15bd9d6c38c3ecf3049f27fbf323a9345eb4fc42f5eb5e833c86656a5873972cc57ec4dc615e887f6262af1401a7b16ef404cae47eb24a6f1ccf1a509daa74f2d21a562607e4584cde33b128be97fc4ff42f9e51d8ab12dc7cab5468e047fa98521333118c8b71d5005153a8a982e1d63dbeebdf676f4899bd0522e6724cd51e905abdac760ac1daa404b50a05192c7025f85023f45010e7d5d67d24a8e6bd5f8ba53a28efb40de7797d7b545a85caf4f5dfbc752b09ef01cee442485c8e66a4748e3e35462e256082f4b28af2cf415a68fc48511cee73be45d1688c6a3182513487461f6ca9213e99233e695d539ac230f391eebbbbc1fdec77649a3470b33be39bf13e78b9e680e70b4ec2ed40b6bc71f3988a60ec3722089dc5f11fea764e52057e1224b2377d6e0c9c613b3544f244f0774e48a1be91f3eb6beb149a5a24828b76104d9809257f48602ba0dcbf3436ab7212121b77c19b45ed55ff4214e72bb8b93c76a2f280445e3e74bda732d7c68e2e1d42c2d23c015f070254ec484e36d944a34649d9aa376da23cf48fa686ea581b8fc1bf5298bcaf36d7856e17dc43d36c1f05e844bca96c480feceb7c5f8b9556615b25724673b0cc318d0fb88624c46e4123edf14c3cd2e7bf10541bd204e993be3fa67cd366691f5d682fc3d6607582b7b29a8b5069883d2c1197a005a72ad40383df5323e650acf59804f121b19ed85ae756ad5cfc34ee6e60be93cb384ff5e59e3065ead97948e0a26864f286f82ee49d8c8da292cffaa8b522bfe370236510ec2352c13712b84c8fb4d2da821ee456d11bf4312288c1a38b90a9437bd680102e670de18f3147eb6cad1af0fb41b564275a5e6d71fdc412a17c5f517a546b8807546ecb83f73d16ca801ce17cac8f6764a372f19cc3b3297a487e850271647380087de247fa49313ed1e42d43122012f1792594923a6a90de96b3b49ce1eabc840ff936260537eae2d27c4fc4b409a35f37328a98b4e87b57b022554308338b6599dca4fd269157d277f1b92455ef39dd4cc933c3ec77d8b5f76170e98dbc645544deaabe100a2bb0ac6382bef6b7e8c413968b81cd75fe8a6e0297f2cc10c8ee743348efc3bb4e21a5331ba271b93e0c2e7eb511878460af49d316b60bf4e3ab3e15922891a24d4e38990811d5b256d476bcb406f615ffbd9553e9038793dd6cdcc9a09966e8d8644d3ba8029ac0e3de8239e3c8598d3295eb034c9a4c7a79f6b834ea816edb9414589826a1a5b45410b1435e125b718ad9348ab8aee5560b71072f1eb8fda91914e55185ca1b7ce8f4ca083f756268157080d9fe68d1db47e8eb2a1f26d23dbd9b36ad2592017d793835731fd43ef96206e7cf9765cf44f3cc33e3bf49a1d04ce9f0daa2bfaf15d92fb04c1ee61b4af5897ffce236fa4a6e729e1985b4f61356bdd6d7e74b15a8cf4fa8c84fb8c857a6ad637fe6deb191d290b5a5c88a620601dd95f854e5c9da38b116d849284e5fb969c435545856d6a6c435564107f8cfc492a372796ff0f93e94f1e8456bd573ee780ea40b0fd26c320d076721f71b40732929745d81e9a16bdb2cf32387de7af3da1e500c64f4d21e50c58db33da3c62f73009d99e5d51d1f8a4af574dac608fb50877dd02c9c6465d4d8de9c4e4102e845c0ea8019e923034c7b4295919fd716e3e27d542fb27a7ec61e0db0b3463ecdf9d86972d08bd938f04e44c93254d2305d3a07a3aaf37e66b621c68c8baf791fecc03d00714e4955e8f491411321ee22ce78429bce8cbe5418e22c1c0682d153fe30d2f996abb4bac80c7fe5e0594c7b09f083c93f8305efc52eb559eb7c68411571478f8f9a6b80cd0684c519805eef24eddf9795f04c5c778de1bd131626899ab46bb4ddf113e65414222191a9065efc5c0dd0de0c06d850b3a50eebc8e6ddfa86d3a1b7998a425ea824fef036ee85ae8048641a09cc4e548d6f4ff6b4f72b2648e3d2888ec8791288626932da8c421fb227b9beb9861cead81809498cf7df13b9db276eb375483b6b609b26ed9937763894363211483b5f4c43280ed276b63b983be3bd74131fc62c7765f117e24f9c2c59ba536a6e11634fe13e0169f18e1b4e08127a3ae9d9468b5f7e8847bb59c36dfaa2f1a2d5948943ed0bf671fbb5b3a9cf8ee1aa1c5e7079457f39f49058dca5c58d520621a8cb5c91ca517abbfb09ad7437e0bc9f079ffec4a423b842d81f5e4f8fae07686e050a42f08cfa0bb5a669191e999adede51a772b1b9354fac8723cea1b0cccfd075ed8cafb524de7617edb775e45357c0a785d1a1424e050a53bb0541fb87db9842659ecbed02b8f46d3d3cbbca6085fbe9c1d83b5ca835da8767b4afa3a37d51f2a3bf06eae567ecbd6531240bf4ca7100bb6ae675861e74693bb42eb0bb3398f1584fbc76234772a19253ac991d42e9fbb65f9f51ed8bb0048042829f68b7a611e9f604ed24a642b63e99331bbd9f1a8b230659871a6669a8281f7ee0d90da505371e1ac3c53bf61c6f85fe6b4492fc86663a82044b2807685776f5594000c3e4fbdf8bfc01b218f9ffd492184a46f2673e78fe86d1f9b29af1c557e108472fadaf0043b2f4a929f600d95ae5ebfacdccb2875d217d63215b443178c6e6f1c1bd01aa369326d181c02110b24801d00bf794a7b4be4fdbae09b9f47848aed6965ae1ec33612ce2ee882ed1fdec1d38444e9057159784a0b4c799eb981bff10e42c164c137095aa9a849c183d2f64b898dcca2340bde6a191fce559ade9bedc0fbe68d13e2a2a707a6c26cb0aa527e0c8cd1514dc927768e0d4366c66ce635568025b6f798e7a4f15fd78ff65935fa2b0f6ada02d4f6540b8bdb31f19da0ee4e6ca70b16eadbc6de97aef20b475e97a2c4a8c4e027f511aa5ec1684ad937666185008fdaf2dfb17192660fd58789b09c36646554882e7de36d6c1897c70a1589aafc2e46ac6932952cbf80ff100270dff067ff0930bc32ea6b7e1cd5c5f708b9c677c5052c7055413362b9bb224cbe7178de63ea6a3a6c8110ea416da40f9317eddd57bea9110228cb8a963ba2dd7176282cbd0e3240210451f7b719767b14fecd84b0da61b22d055a6731e111bfd4d040d3b488b3ec96dcd707225281e68d1de05e0c7086d15542cdaf1e30620740b997eb1ac66f59985614c93eb3f2011db707551995225412ea031233a1a22ebf1b7c75a54a42133794243591ff7205f14d81ae5060cf5d5dd720bd987003d4b2fddfde2847eec3ab44ca836d903402efead4dbe3a2b228d12f1ce03038e3f4aafc8dad62d5b5855fae2112925359abe9a554bc7336f07a7f526630f6c2b2bcdfc393e945e17b78ab1bbdb5dc731bbbef286b329dafc9039243cb84f2840b71afde0aaca594431fea2dda4e64078222641f10957fa3fc0ce349e3c7d8d77cdddee76c38b683641f4abc6cf7d06e2c6dfcf7337a168902b53e2e1654170100df85636d5ebcee7382919cc035b1b788d44cfa40763cf217c54366c2dd347764a24c5534d3284dcb977a641ac17823bd665b23caab8e952f18f4c0691a3783b09699aac3e9a90653bcf5cd979a335a0f027da8334c82c87dad08977111a982c055b3b9cdda232dd8b7ac8fbdc489cdda02c990f1d9a21541d1f60233461bb9cae2f58cb05f02db747b6418d8dc1a6e39f8ddaf2c181f1f1b53dfa700143233ba49f34d8b4bae58a639741b2085b0db81a67f505e115e78c2e7968748615d7ba419919ea8cd1248fa841fda90a2b5d3b3132771020b9e54b2bc628ea54b700550dc35a9d5329b559306ec1c31854c7d978efee6e88b2199ee12f2417019c1bb747ce993873fd2817ec41c8c8f859e4777821034602d662a899967b88a5e8483e639931c77b8077d91e7483f13586ddff2f975c73e1bc3b7931bebdff5da05a798622f3879c1c4f0edfc494a29f5cae4f8c063034588e1f009cac6011cce067cb0c4a9e1a2c443fa89ac3eebac91f70edf47670e8ff57b0a35d58981c952efcb00365c0f927d21b088fe5d7318a65e1d2c07bf47052f61fb810a7e44ce2d1339aad9fe219a9fa3b3e51ecc9207cbb9bd5bd3e1866328d9d05e2bbf046e0425784023032fa75cb76cd489c671a805ba9adaa5aa6cb6290c90414969dfb40a6c77d2c580c0e713cffb330c302dd38f06c60bd8511f60b5c72757cff51ddb8594e070939182a28d08120988e6c048c690de21f0c490c385d1b7a03cbe95c809021d6ac74d88a46c425e464320a5c26e1d7136b1ab2f05bca10712863de24d6ff2fd2dba0de1d20d253644cdf67d7f58e49e233d80f63c6eb095a7ba882027a9b854c93890af22a7f64895b09c404aecdb3297b5264dc33f49bb523206cce3262db5180437f167efd97e970fe4c02462fac343c3614fd3d69ff71597263ee483aa4ad860e38bb5c9cf939c0cc0a9c79a1ba1be25ad764e41beaa6eb38763c07de28aa3b086719a4c810e15279af3d47a2f709cf1c40730db17f98ba1d043841d884da6aae07855e9d81618286c7d071848c6ed687e3be00ba9ab73c49e166cc90964391314f0c3204ff347eca047500c4476fc0516c08e85cf01bfa20e8b5006934096397e434f065309acc959d3dbf6ab784caa4220e578dd042135694793be8385d48ad0aba0aeb6ccac229fac3bc847b0425bab2ebbfd484b3b84381685df837ced8ca25aa154c6e060d7f2a6dcba4c28275443ca1f9aa8f88ae9de58a4c32ef3b646447e54c325deb2b5cdeb40379226053aaf4f3c25e4ec3cf6e66a3713ac3a76d6da9c90d28d98bf0bbd9ad3f6f3e8dcb10e619398ebfbd8967db063a2ddccf2a8b43ce5919deda05841f2d9e69ee89df359589632f70045d7cde31961bb3030717e4e65864a910648b4cc20383d7e9021b98d5a828d16061d440ac7c9722e921f176d0d37900d4def0dcb495e3a8349d7f67b3537977e2bf07bff364504cf9ca2264cfb80d7b1c95c155bb40a56ecc8d2bf52b15f2084434ae8e38ccbfe5540b5130fd9ad7b2f482ef8c0633c8aca0a309d17b827dd71e913d9fafb4e5bd2f1dffc8fd2fe37a7df0978988603734d92312e75792f86cfe3e38a81f22158e7befa026d8d07080d5ff99b61300dde34f45052023229b898bb2ab5e179fd067aaa47d2eb9fc65f7d2227d610c0cc7c7a4b8f56e2071f056b4fcfe6becb9b651591262fe9ad54d34cfa1a7bfebc55b48f41aa315d4a35fd1ed3d11003c7f7ee57343230c26a1e9551e18e5f3c02c9e5bbb81a429964144aa682ba81827080401eaf7f0c2a44a51602ff63cce318a82ea41f562a4cfb796245a902ed8edec64dc602178888ddfa36bbbff18403aea52dcf7f3e3877ad524ae47c9c285dec92c176166d553fa1148c8dccbbbbe0e9a237a8dec63e2444f5a379a489510c6bf918e63a1574060b7bc3a6144070e13ae571c34c3c0ba253d998b9c13973031f5c00ec76212c6fc4af9b02c2c932dcc7d35546053b42f4a9c222c6e42787ed6123b31296a4082b9695e130c95136211228b039be7de5300ca8e6f6284f61c73c440fad43076b9ba573613ea670f9585fc62146bc0a190ac0ed6e7b99b7bcd3c3d4f07fa5fa4fd6778c518f2dde6848f2ec8c22593c999e50ee950a2db0b8acdb0ac602756eaa181d8eab2cf082a7f9c209baa7f08093c8a56d989efaf84fe15d9044015a638e6c0a4502ae34b3f9f76fc750b0d3c439003d8915a0e152b7b7572155e2198c30494ae2c1af6dd59cbdc32a1f47b40a65ded671f08481d8a3a8fbf6a9901a5458bc2ed9030b54ac0e957f4174b379795b40d3a89f98b6da114d6032c0819fb11aa29fb4b78f6f262087eba9cdb4dbc640cdc7039ef9ac063f91008f8c68bfff6624b9559ce9d89c27071c0ddeaec9ae16dd786f58e9d6285cc4b9cd116a6c5f0c11e1fe364c39526e26e83a9f57912af7492e26646e6b69a7cc10e1c9c6b9aab896a1dd0759af4236cab4833935b786f31ab4c33c6dcb0866f4db5a7d02b7bd6fdf6bbe686785373a3979567abcd16bf36dc6fa597d75c399edb69cefac89b45b50e467ce147b7172bdbb65073b1a8fe5af35de58ef655bef91f08a03bf7e1e49d19b1b51fa2f8d4cb00398be125dfedf8c108c11be74e9bf396f31e8619677a9c981158f1c941f693d872ca8cd9de15b909ca04bbd98d7e43728e8c918afc38726b21297abd9264b90af86c2673c0032e00de630ad66b3d449ec3c51810a322d215bfdfeba43e0d3833262103221053cd42e4f04009d522827d80aff8ee123bd0ab6da43df36d9866239b9963644f880ffc61260ea1ce8d545134b3ff96348a1429d12123a99b6ffb93ba516f5571bbc0893c7f2143ebdf9c87564b8025a8ee7b393525a54c17143ca72b6213616012cc2b439fdc37d5bb044fde9ff80d3fc010e508cffd5185c5501858653710780b0c22a40bf2eccb9355e4ca326110814285245b539ae45d78f6d9f16bfabb0998e9267473f28a1d88c3049b9cf44429e7991e644a6439691c09346901ea5ad906d4632c880af7b29545d2d558826da56019b2fe90b4d54b33a024764065479fbedbd3266673c08314554082a29eec978454fb27b99180f5b6b7e695f79dd289c8f987248d57271d86aed0b06041bb56fe47b7820a1ce62f509f0583dde9b3b72ace67ca682ea123b4ed00ee22a6756ed1d5c1d312494f14dda951c5d555e8bd12dfd81f69d0fcca1e1f4bd32d7f201cacbc6f85c650329547d75f2145ad6225d0a22d10abc58e5cbba0047897cd97d209373027316ecaf4ab72fb23766700eb9ededced30919cb602ecb7f873f0b0b9256cb5eab5d5574bcfde15990d2d94ff412449eaaafa93c94f23cff711bdf92abd1cde25e0022303e60a4e178fe77ac76d784fa0cf98791c8e7c861847b2a634a235bed2c3bfe05daa491e74f18c1c9a026ceb89441e604838e32686cc98b21a1e326f0eee879eedc2841c4b4319ee461732fe87162ba87ba66b7a6cab226ad22378c49ce528f11979067e7b5f68068ad37cad5dc2a43ef6ac71457db95b9e8652189b633bc2b99ebf533da8b1e11b9d1a2bde34cdd60d8f8a7c506d25fd8017c89b3fec2a87770c89d0d5b80a28cda505110618eddd5b302742387513f6bd95c3c94fe5cae3c6456e288656853f6b412e65ef79c11fdf56a263cad349bbbdc8178f91a0cde76002a5b56f727adb1700c99c0fab1bd1e79231bd2e48ed2f1cab6d717394d118a84e4660b6be85c6eee88fc0c266d7cc1b0b4f637e984d3948eb56384edb410e9208e5aff9339a961df07c841346433de8fb37a7b20dc24ff06c30b60ab3c678876674091d8a261f418554acb74c19dafa2ebbbc07f5959e58c4d4da81fd4577a66d7e535ac449531c0900878f5b07bdca8657db071f0585f7be1e7ac8c1735bad7aaa7a07a3178ac04fb88a46bcc70e7779aaf47462488abdd93b709ba8f23fb6bc93904c2eed568b21005caa9ac90e08912e5a3017b2163ec7ce0d4c800412d6b7ef7e4531d567f2ba6ec9ec8769376deb49ec109ada8386eee1f5dfbccaf0a3c20489afbafc1bf24c4a864cf5b98069b9acac51ccdc55d1eaa9d792f21604a88a7015509d37c4177cf2ad8fbedb03fdc0ffcde394a2af6b0918ae8b5bcb2cb38d3e7ab7f294bf8ce11a5a529de680c1dbe29a7859415413cd3c6f6256cb302ba04ec5df9203e63b88d5d56ab361891d763bce888a66c7cb6e7a5506e57b44696a0bbb6c9d06f326736d378c034c512813d336f816d45ea956872cb02ed41363e67085fff679e24515116bdff5b46896c945c035f4ec5659a3404ccffbfdacf8e562cd25c56671d6d84cf881d7e4df0dbf403be19d513c3ea84c2b4b3b86ee6b8a5338e9f4e734d697550cb9571598ceb6107f118d8c3cd06c8db3067f1d5bb8cc3984e9b31ef97d2423932e0abac2b17d80be4ec5ce2f912963c24d7de874bcf7d7bb38f5365af9c35a69bde958d1217a072a364cbc6d4ccebe7eb8916002682b523de6f07bc941ad09f128cff257d228483985a948bf8a7e046f1b37c4de6cdb148d42a17c70f88f2f939bfcfba3ad93de35fc6ba3ff1a0fbe784e92173842500b2f6b4640a4560819f8ee95e409a4de7ee120a1343e508c1d34f0e9b45ca42426009be28adad02e8a009021312bc7bd63516b62a9731eb44f3dce246d7a1dc731ca10bc3153d40ab9c9470d23b761fb0c59d047101c8f789e6d465338f18dfefc0b1be07fe71b1718465229f1678af64d1eeeec05481f806326c827761b1d5fcf2ffd9caab174c7f034f22a903e071eacb05873f1f678a7ca179877bead75d52faaef05567e6ffecd8221260b3f34790dbea50051cca17b642d1cbd4110b322fbba7170293a6895b65c141b6c2f0722b7bedf3e167229be888a4097b953ef58caca80f973cd80d837800468341b38c59b32fad8123a1ae888c0f946e9a3f35fa99e0effe017a90840922151659d0c25fac9b90175d06ea2b2a88332ae5927731ddc3ca63cfe91dac886927f183342974b9344ed5311984c228cbf63a00e7ca37b97795348bc75f751632b7ea8181a84828837554c532e786583ff0a4354bf538fe695349fecf37a2be6d93e697397eb9815b0f72cb9416ced37a0f6c4f06cbb90b154b6aaf8db7590dcd293f0c996dc6e723114b35cdda451710d2051c3d6656b3cbd0da7e2a46c913139b5ee0c84fef8e9aef15664394f62183120efb139b35422b2afb79b7dd8ceff4ec196b21a0abf684d562856c8cd0a9ad7b4f3422156b2bdead90b5855a50330403597a6c94daaec9f12bb39c43704d4474001c44dd8503672091393f7b45f6e3d78a2100b2a24b03b75235b20d757f5274998202b14eaaf3c82c1b55b5ab280ed5087333e96842a82d402c1ccabb1fccbf937cac8b8fb5238cbe49094df64473269d9e6579ad03f6808a4a708e782be359f0e542dcaed297d30881d600045f3ddd5296d0cd5c839d3ef27931970f49c612b3aa4d220890ce43f6935346e1f3a3c87cfa8ebf84764ddeac1ca1c61a95bf6b698dc11e6bd135a4d7c35c94d2a9442d73ff14647f166f55e044fd18a51b911f8285d481cba4fbbef80bc8fb63fccd101f70a9e1f2fb654333d9d28ec0bb9b6d0fa81891650badc81a6f73235e86cb2a5f003bf6a81b5ba58e2d1243e99c555c0affec2faac9fb2a2402f454b35d4dc48b0f6ba2c1c65b33c0efc0a6b5e18026f8bf953455ff72db68b8578ed6bf82cd2d9f54ffad5b4f1570cb43812370e2b2514483947ad678063811952037f27d90f5aa26e7e66d66e9ff546fc0518541b52436f1ba23bedf314bdff19ea594be22e1f2e10f5f42811135d09a7ca811513074649bdcf0361687970c3e6f3fa7c3b4561cda7b0f69796340ca3b11dc3968d7bcd7284989a56d605686107e15df095ca7ad818965d875f87cf65326c0be52587efe1169fc60cec6f1fefba6f3683951b512041a116a78014530116594d86992b974853d6666af632e65f19c87a78b1f84c37d55dd84733ea0e26833cf1529b0785243c05a941cd0c141a4d0dbe2a2c04e3b0826c410b559943e9919f57e383e2df9ec748905367824d4ec1d35abf5b47ac990a04470929b606fc07c02b3b7027559de88ecbcd0f5bd842b5a26d24f5ae0eaa4c6ff3c4f55a5f071b12869c0a63c9a68f1bdc3cf4210005b9779fe3298a75f5098a748a6ca372bf52bcdeac0cc9987dd4068c2ce7a38a32f442c093300d1a187c467a100032c07f8418d05585ae6791f3bcb4f0c0763ccdbb6931f33ed05b25bc2be57671ac6e828a35a90b100c83aa4c7b5550bd6f6d4ae84420f51350a9d85ad0c4fce33aa804c956d0637603d1701ad8f90c922aad50919f904bef6cf8ca7964a607b90807eacb71f524a85451b02c3a7080bf8777d5503b37383be9ceae2b2833564fc911b147b1143b91e42d7d895cd0cac927f98cf34c24ae3ceedad4dff31e788131c8ca90f54839183f5b997bcfd14a9ef3e3dd88fc3d0ed5881b7b23ad66e5687a3fa72c4e6e537b13c9bd3e75725a669653cb18e78a08c02799a811d4de4e7ce04e09788594f954b022a92c07ed896dfec186e29d4c6cbf1fae9760fa110299254c737e92417fcc8f1f160891ffd28edf0b9cea24eaf0d529dff019446f7ae80ed8be06268478dac863fbc4f1817ed13085e9cb74aa4109df4358b1edc879dce3ba318922d6b6139af0b6f75b4cb67bab1dd632f83ed622437f0f5bc12242adf3d0a13b1ecf0f21e72407e7d76dfde551957726131e628e3848ae3aa2d0cade0e077aa0e3a657e5b54df316c2b208c8e4c09a4799ade4c30782334007e50a530967b20df1873956aec60505497bb18c6cdedf79523da4a2dce4f04f78efb2583e340d71fab1d737a1aa79b8f1e1fc77b3f95cff7ad19dc1473613a0130bf0f609182b2f656c5d3eff133ebb1232710fc96078eb44bd3301bc11c90c0a3d12704c5e485bccc8ec935eedf00a57ae33428028edf5520d259913414a8223233096eb41b5ad7e359264fa5133933fa7a843f0c02b233fc2177508a5418236f2211651495b8ffedf27dd2f7ef9cc9fe18fe8f599886b15db3ff1bcad5b38b3c46d4eeab2e14882e752fd0050b8301e4dd79bacd7ea86d72fedef3263fb871939ffa0a7f142e4755f04b893579243b80a9eadfa16ed46f91b0ad0d3fd57fb8060c46f7d39e597f5212821b377e6293cc321d40542a275e2f8d403eb0e858210fd891de61b88a255726bd24d16e2d3ce4d9033b874700371685ee62939277f8810b17d5e3499579c6f4544f3dcf80a65a6f72643f1b36a756f96f52379d7afb8ba9716e7e4c1bb0557ab935c0964e14e34ce5199241c943460f2c5d0fd762c0768cf7b8522c0797d961a10e24d0b47a760cd36f1baf432e594f5db0c91f5caee4f7acec351dc2729afe2f8024279d1e57c18ae46c4cc8436fa261717904cf27a436a232d338ecedde7d803e062bd164ff9e919d7e82d9cc6693d811674b017cecbda27d4df2261a5cfdfa2c0a35d5580eb4026a7ad55e2acd48c2391ea3ae09f98e0decdd575614090ec808e8eb985e9e44835fec82248ee3dfefbf37d8f27b63ee8bab2140f38a010745a57f4805b4c197657e686a8b20b851c4a0ece3cfa7246dea71f4a38e26be76928ce2d203042d58fd3af3d1a8c720000349458dce8438adad3360edb777d1d3b90c8eb4349b64423d06bd2000608e822329fd132f730e568251c303ab364c06eaec097d670688918a5724dec85a78f68c82a0cd3d05231c9577912d814e244d69c5444195e6c2164b9e07e13ea9971e1d1957205db5796c0a6fc171c766fb97788c52dba01a89d0e9612b393cf2109160c250ff6310028d6ccd51f89ddb5c89bc67bca0a6159a80c052d7742c8f27ce29d81246b9da3d414d83a12972f128ca91b7f6bb74e8e5ba1a7976d437ab6192d0d3656860fa9a3ac02e27c81e7192eba51006da2f9ace7446d7c32d4f7889c01763461524e11440d4e8d3f9d5b115d0e50cff6c4fce88949b94a50003a7a4ddbdc50641fffebea53187a480731748dcf1fe24c3755d0d2b8d235442f8d10ea2725c0b8ef68de812645ee60be8a720cc7add4afc265c33c236fb492beeac35f4d8ca25a77e9a42556dcb4097a306ce2f4a363cd9ef974125cc602ec19af8056bc8875e16f4688f4e2319867d06179853069f1c03c0a6ba55ba29e6003d8268bd9939d0843bbee2c3bc4eb3f7d4ae45b3d3005a441e684d4c14bcba5fdfa0cfac7b4e3c74de1cc9bcffe0205dc14ab0efd02c7ae123a6de2b208116a0a7078d95d99f3fb3d57295b57f8b7f2e66702aca9e187e894642c9c0821bab92ec12864cea9dd9e4c5aa5e05c15e63a4db6ce9941613668027598cf110056736f4bcd73d2ca9590565af15bee30f14172242b588fafeb24f728db115a1937cc37228ceb597173ef15f052658b8e3deb67f3e71377865f561744f6d533abf6e45bb27bf20f42b400fe8222fca961b3f5354f040974637165f1a43dd3fe56ec6d29562afe3bb6f7a87b5a4fd56c28406800173ab56f4ba46cfd8cd7bb64ccba5b380817adc926c0749cccdbf96470550edfb572da5c7e9c48dcab3f430672c1abeda63871812df8305eba5ab578dd6704786b4c5140c1a53838a0c674520bab38e2c6760abc836b13299077d449747054af739aab91502c0fe9ca0e5a82d8e09e9fe62cd11a654873368f6f33b53a6ca2fd54e3a61d2043f23d8390f1f292123165f2acd00e04a511e63a949c453adde83f3de16ed4c821ac8ef5177557f5b2fce66abab138cdf9f14363cbf6b3d1484512bd03b02d68a08b763743f07d3478de382e0f75eb0da0c2406c0ec4ce0bb6d40762ec790cc0bed45a670827a0eadea657d6d7fd5b115bd55e1fecef626334a051a8f2f14c191cc11eff2ccc7a7ca64e02dd336c47efcda7d58b04eefff45399a67ca0d565c6", - "0xad1785416d68701ce9c802b02a7d656515fffb8fdde4145f32c939ca0417c182780a843783d2f4357f5729e383d4cb7bf33ce8c84c2e86471e53ccb4d32f4dd8cfa6ea29e7387d0069c7ed3a1a19d4441703209fd08651b27f55e47924b06a1b6a1a6fd4898cb59736052e144274994d12ffa23b2a2b44354fb143626e0e93545476dc371c01dcaeeb82ba41b31950de0923a03c218358533e303d67cb8df4886d45043d9621d5bc82f24dc109b04e8736245a8cfcfda6e32d675db379aed90be872dc02b4f4fd9965d0d1604549acc16749adc709ffe54db3685d595a2e5efecd80035374316e23f7bdb9224aeb742b7d8910e91ada4a799b47c9f2739993c3780e252599839c7b0bac7f7f61a8b625eff92bee03e0dd52646904db706a771118aff8ee2ae096cc6bd58a99b647e960448d5e171d7b93a0c0a895e61fbb5c313110d5bbf3e9400452890b18d87d72329c21cd31c65bbc6e1548e5c9f084abf41b7011ac02664adff2c595a43db5486428dfd415dfb49ec5ffb3d6dd7c7117dd8064af892bc0cfbbf0a284f6bb66f68daee6fa244c884a7dcc15e893fb3ab0f9e2f00695859fd618e38b70ee100280ec0650b31b7803fbf5feb5c1b6cc9c6d0412ed6e89eb8a185cd84a42835c66ee1c9f7899fcceeb9633cd2e5f87f1d3185ebabb1b1f7c9dcd73d1e2ac29a2ea7f13fba1f333411b225ba36e3ce290afb5a0d550aefc1c4b692e413a18ee4bf6c1272ee09b53c50c32d99e8a30db7331cda231882d20f1347bae929546b0a22915146358a8f0d378b7881161e0a989be3bf0f4cb6344e60d26359fe13ecf58165e5557cf6c3de901af09030cf35363df64ef140bdbac2b8fde993ace451b0288e46ddc87aff308f18a17ae23723db890ee23ddfff00fb37c642aa7b8ef12965ca32c58712b043502681701d1ffaae12366426fc6bd0bb4b9275a1f669547f2ec8a4043a6b949f8405f461fb0cc4c5daf70123ec3c6af2b6d8b9c4e8eb5445505780dac3abc2fdff486e8de82771c4e0f696f90d9b72a5536b901d6350d7de46de1eeb55aa4d4fc9d749949b34033fb758d1103f29c983771f6b1cad8708f26037ed213b9adb2630152671fa63bc14c8c1e2c04d15543188bad2f3365b0ac895e655b8f4d2942ae45d7b151dd67f951221257583d3e6402679d5c8f051007db0e6d8c8763f159791fbcde87eadb99bc6f3bad9776449b44d2e09a4dbb1ffbd160c44e6df8e04be50d72d59c316cb262e40a82acfbe7dcf208c00652c9fb1083b71008476a68dc19a739dc1e7b776fbd88479457a1da8d634a7eb277ee3f0cee748cd92d76993dbcf4e4e0cf56c3f96dee632dabf83de0b27d9501087037007172ea0fcf8644277de0d86f264e92efb2b0502f9005b74b3fe611bd46f413c5500900c2ed5201ff8cb01f9ccfe65d96f484eeac4245d2262be8ff3ee62c353a34ab779adccb3cc41e949ee32775dea73cdb814bd00472fddfdc1d1f9151cb78a90a0e4f085ca61dec3fc0aac1be4a88b80eca559e07413d85f7431f626a5e799fd31b566c759676b49a2643e36cf9c63a269e1be37d63368d3934b26b6a04b6eaf36d011b704894b7793591094fce05ba2431f32c4be03b2a77c45b301a5002c273ae43bbb8016c396d884c616d1dc7d0e95ff3d79c7ce4d36b94552ad2422944dedf0b054f804c059da5874eebed2c3ba2aa4899d0030ac2dec1574505cbe0ee39ad5047944a9ee6b47fa3e6b9c6675cc8bbd8f9aa352a78d74c21629b99492791909be269ba972fe19813741a6f6ebbb49ec2d2ddd43937e21d60d61b5881b50a1222cb9fdd4234dbd85ff6f04c9b81be072cd5de8fcf8764e0e4e9a789c44592a1410eb3851ccf0568a19fe64af7fdeb4fb6040ebec9b20123a358c5a03ce610cd8047dc2065dc992150575c704d203306e8382c2b37470f70dad4f813de8e35d50e276e36f5bde26e96362d959d004a38d29d216b589a1950e981307ba994cde218f583a008d68a9d890d41db275807d53a31147004437868b778feff3934ad5e320a00ddfc12f80295ddeed7150753ca9f48ce5c989bf2275845a3aaca0f282e7c54da0f705cb87e1e5d2f97b98da6c0780b75cddf4274b38369e855c3a819d62cd4be908727fe2deb789fe275911d9637f48e10109cd104c8d9ca536de77dc69920fc1d66e72c6213cd5276a65d16fba9535a0a064f9c6de07df50ca79a9950e8e1c10e0396752c652e760d4a6062d288cc73bc73c607f075b20b254defb2091b56af1ea5308310ed21c270c3ab063734d7ccab8fb1dd1fa7c9c3ed96fc599c46d0b1ac3c3737b0fc62bdf0c1758c49d53ff29e2583827d1a85d132d338414a57343387ba2f76826f5fcff54497e12661a4a26e9df3097d0aa1a0a8c9fea5a0f67c989f492304e71dba2290b911c9aa42f9b4e2a97b5babae48df8784114921cf36103f031f712967cb57316483dbdfc2064fd5d6dc66a3a19bd81f6d13f7e1a103b1964eb315457b1c07faa3b5173fa2e66b161b9868c5672f9f69750ca1646019e8c49d761f7c95eb1345200f0321b78ab2c9e7773ee2068c07e67fea042ac3c237aaa381ad13a9abce5a9c215a02d0359c38ec03cc4cb3af725056fbe5c0a3db45276ff0fcc61983e775001d517e8affea52ea0b6f03f38868f04674d553b7563a9e1165a5c3f9cd3084225864204a527057852384e33b7d0294efed8af724b86dd19785e540ef98314dfccdb86ffc70235fe923fb18fee6257dd4e3cc3bd99b67792578ff03542788e847990cd6e1ea87c487a4fb3b408f8ecb2035e9c0662d2d2cf56da56359701caeee803744252a64a1e98699ce6e39a92d55a8bdd3b9b0df6fd714769cfb9e220a52673bb6a6ebc7dcc66d990cc5183ee2b8635052e3f8aa128d2289885790edde38d8e4f8febb6283253f453fc156eb541873f85ac5f0032202d10b0c8657915e1781fb526d802a6442a750076b8f6fdfbb4816887a15371b005dedc878bc55867ab502f411f0512b6996cd4ece53c47988375cbae6f9462f67889beb73b7f8a59be9894a92178f75afbc30d5f1a80863ebf6a6b3fec21ab45f16cf22a9f9c09c83380da406d5b195bb136687bc853b0d89226604faa8fc1c3e526814286360b6b0e065b8da5e8a065d55f515b158c6d5a6bc940dd17a681405885be1d08da651e5c3ca021db81fc3c181367b2381d754eea841191f1a2a918a88ad8a354003bba0e7600a934036ff805a966390d58c4d782da8cbbefccb00462a80495ffcd8e4c6f65bfcca2526fa88e8eaa90a1cee880478d86e3dab55e1b6c42e2c3d739fe726bfae394dec01e63af5d7594792b725e318f0da8f455a6424b57a8a190cd673e3b34bba02ea0c1da59043eaac6af4265b83e2fc49fa56f52fdec722d461c69f3b69f567dfcd811fd98edaa1ee46694b4990d13df89061bd552469f2c6c116bbd51a9fd2e114a913d004a55729c1ce7749fbf54c20e2267efff0fc1a2caf2c1279255de083923fc22dceaa012be5db3dfce5170edd5c395e3faed96693615fcb168ce55acaef2c49770ca8c38ab5204ae15197aeff81af80a1518a3e7642fa471d76a07c3b278afeff9fd16f7ba5b0c2cea804231e661282c4ce5a2141700fb354ab48df2609f83de4b0a9abce1c9de04436498ffd349c34929cf4f2393e1aa8ee1b1c6ed3b8451ae72ae42a73f93f4ebcab5f5b55a9c635033a0bb082b3711b06579c3d5a2e672ded3b5bb2d40b5614959a9cf6fd97293751a9185c180a8bee8716df6a2fb4bb001cd713d5e898e91f7bfd868b3c64a9145dee293a16300cda5fb26e649c6ca4c75a35529d5fd70cabecaf40260389f511d792bba2b549ae97d0a8ba3eb9c76a660e50be93637664120ef07e0fab1357d96822a6087b2cf075111c18f6c40f77ff6f6798d6901482e11de5125ee525cf15baae1affc0e298bfa65252c016ded680ca7dfd324fc80e20ab1602015c7485c2a94eaf525a2b0aa16d36cbcf44a513ec40d93b728798c52927ef2ec4c3ca86897f987b8754f96275ffd52b2a872759527c88374dc0033e9b8b3f9111ee83d3cb292c454efcf271a5e3e2a474cffbebbec5d6deb70b78861d94bbfe70bf13be2cd629bcc225f277820232bfd7880df0899dd9ae76d1dc8e1a7b7c8308ce7d99ba53b4c7846287bac6ee40bc5c751d7fcdd6e64730700863a43f7d4a9fd1ddb70eb778e2fe3f73e6a5e6aa8666a83e0ff79a19126de24935193a1e16e5fce0b8fea921876be02e4297e0b23228305929af7ed2f13611df384e2ca44800ce4728b9a9e0ac6b4162b04393bd0e3b9aa86f91fe330c4b427e4c4b09b67ca4e2686c6737ea53404b6d82412bd843b6213bf46e4fa39b0f1cd074e167e1ad33e2ac04afa8f921f953e21a884c2e066aff76df146b4dd4bf0df026a6f216f1ab9e1218acd6c90e2a1a0860c510935520079166d1a7a2d87f86f0621d2f27bd6323ab533f639c20fa5a59fefeeefc4d0577171231f6d3bd4a4a549e1ca54dc3d6861c19c9adb7389d0f057b29dc050899a06754ae1558a0ec5f957eb0c6a55705fb1ffdabd9e3ef8a0e6d169f7f6a09cddc36704dae6bc87a87a0630ff8ae6928c60296307aed820445a87ea0098e452f0f0baf5e428ddefbe454c262becc0cbc83269aa49026cfbbfd01524915f7ad44d6c2e7e0580130328f074f716bc990224c814ecf8ae35eadb17671a202cf5275690a553e164c03bafe02f873934f2a62271d4515d9fe857fb03b23bc6065132c0fe7bb5db6bcfceded00b09f396e2bbf7d976be584538ef8853505fa52aade0b0830e24100dd924316b3082ee71ccc340fa06949e944f45d6280cffa57b5835cc61255b1d80593115c3f9deecfb1820e59804fb35036b3cef3eae6c57b3f12114b8b7fa08ec9b5f265bd4cabbe67ec23378e9462c412a2ea0e75bf28ca28cb098cf010585986433651ba44e9c2e04579fcb965facac4df583dd90e6ec9f0a073d967b391c5d9c81031b5dbd0809f7346350244232dbf4fffc8ffced8e03e4867526e12057c27db7e4aa43b46938d9aa6c2fff251187826fd2287108dd15dd8299b52311fe116ed0b8b70dc7ca7764872065ab70d21e785ba95439dd0d3bafbb031b911de8a1233ef8c74ce8fd88a2c066450e54fb7092a9f09ba6acd7d67b04cef19aa0a6fc997309702d5e858dc5ff87033bfd69860254244a6dc3f549c9898803e2c4bf9afc0c76cde5080a6e63dfecee8a385ae71ad247276d7bac830db16dfc89bc7ed7b22e769c1fa3f5e03cd84ce6a8d2c8b45f749fbcda26b7424941622aab45a1aa825e562d76d1242f4b6bda745df5073e9233e9b019c879119d5c74eac21895df55a75f44182692c5cd1224e1c85d16eee3c5e759cb8cd10d4359f29ea02b977e6bf23799477457b4436b2a023618066e9407366dfd8c52bc1f46a6d54c46370401344a459ef06f498ec64ffa50a0bb9f43ff2243aeaa7ff6da7bb362c443c169139c7d68bb79540a720a21c7fdccc032b8873d9d5d914900b7b82e48b498346a5b1a89e1c65a6eda7ecb037a353641530e232b90b570b8cf0040729db4a04351219e67570be28412eb16acb97bd2521a8ddaad4e965c25218a396885e8474e3adc032c2dff52857bafdaf22f336c553bc2d9dbcb4c153019e6c8f0da65e2e541351d94a38b4adb22b096232e7f9d1da99151ad8600f60c547b2a88b1b2583c9227f7dd639f35cd744bae28eb2fcdc49f0e4584619e0164cf80e9b66790c1d907cd0af6618a8f18f2d405d512ce06409768473efbe834ce83c088a724f892b680b708593fd3dcc3cf33a59473d2ee124651257f761ab87f5bf3ed12e80f6539e7712a6dd85e027e507745ad563e8865efa8e7b1ec8db3011d52e174ec68ba04ab2ea81694196beccbb268f8b3066a0e8f59834bcefaf4dfef480c7382aa4e7f86daea17a352be6fec8d8ce89ca8392851c3aade684eb716b35ea56f98d546533a0aa423259eb6f97cbc26b766a20e918b8c3e00c6a5dd05dd79cf2cb2352810506e8b0881b2dd590c3c898f9ddec04e516bb22bf379295b7bc487d5df328fb919e5f1135dbab7a8695026665068a44ca07d607a3b556f62aebabfb9f58c2f6442b3f8e3b6eb2142988d495705af7c2dd6007c297640a9cee0cb3d2fc833ba3ffb53d17269c15761aca97ccb0625105977b9b41e0f7c158b3ef297997f60b76d806002880a2fe5385e9d2dcce3de031a5b564adc0d3394dae05fc7e450a7c34b02e8d460ab185c80c5a0232461b76aa35eef7035d9398ea05e5040cdb6a6b45e900d32b3e6d1c9e9ef5f09bdec31d24170cf9f7ce86017a93c970386d96670504933ac8286ec8ad4a76a0fcf50e1996ad787759592ff713b60eade035611217c0c14c9653c22dda80fec19a1d692f9a1c9e5a9e57c48d31e7b8e8d6d674d8e9a7ab66ed72696971fe91be1a85574c186772de5b08b06d41dceb2494d4c9f7f098337e46d3d8bbff42964f602bed6d5784e61fc39912a6ea4373d5ca4230d644f080f6a40b7703dd9b5aa7dad355e3cd9375b972ef3c4fe7983d117dc7cda7a8807e84954f2307ffb48d29fd4c4bdb4a6a9c6f2f7134fda017dc52784b98652e5c5b2375d7ad90da24c3b3e6aaa34253ac5bed55d23602f99e05c958e9db13f3c80b19f23958575d98f47579b7c1f2cb8ab890172a3081e627133776eeb858ad6dc60af93d5fba4a1bfc5a65ff1f304b003c47d4e44450d48a83655c0ba16208e0852180a06d4b85781c01e791cb78ab1e747a230f49abe87c7922b123de1e0544883ee28523290fd577423dbfe6a2b995710c5e3b4bb6a00a3ad2a9870ac0db98d23fbcd29529cb77964d17e0264b181d4864bbca07d06958b08f72c3969417a5ab547e74cdd44827e54d7d765493b2d4938a53b370b4221de9dc289b452de7301d6223b6472f25a633a4f5c6cf305800ef5598f42d6fae1d98e34b3caed3da627877c0197354ca9d36afe85e08cb5cbc7ca717cc181e03ec9345c427be508ba0cf52ded337e197b6052485db04aa546a60b79864c0835e4f537de5d93303e34979f5cef16a2ebeb39cf6a6aaddb4489e4471e629e8698a0677ce0ac022460303904871685a5b56285bd2826d41c0fb45d5e0d82306d45a0841c6b19d7127000675d114c5472881c28722181bf12c1b9d44ae6fbbc501d001174c341d5e6eec224a766ffee5a09638c8aaabfe44d67442c7aa0f1583418694034284eaf6f1efa97652d7efde96b09ba9afcc34a1508c6b166d35bbd3925dc334b58a609f3f6278259b325d4eec19321cafa657087829c5eefd2eadfd18830e7b9e0c848f9123c7c6934ffa45ae6c03f3a8a1a18a4eba089294ae05795d46fbcf3237c15215ae258b9296d449ff68ef68f792ebcc2aa2af4563485578626427c9c335a347829942ec1448aad1d1ce7f96b700928936d076d1732d7d5b85b2922930738724008bbf24e4b82ecb72c4a4fdc1397b0d3d37960394b54e3931537d4fe468206e5dcb53b3493ef717e493320233442ebac900a92c528a745e61de13c26a1d760296fdedda53bcd00907c9466c83e42887969544a1098532c6f32726ad8cb4f48fa9af5a222a088aeb96fab1e9303f697c4ad5253cff9159a6cb8d505d02b30319c2bf32d57190d378f3c72287f6d66d378817adda8d2a65e4c3f752c4b3d79278aacf7983c2fdb063bbd5153b95e9c46a4cd01adb6238189a71f3cbf988ac03d79440627f2abd1dce36d37d5d2c6da25a9cf19fa5ca731797b69531b6ca30d93531712160c3a6f1d391d2ad2a2230da628464de210d8fefdd230cadd9123fa1e713389c815632c7ffe67d4f419cdd096e6633e73ddac0ad242c0871e3cc909d146cd4f88011eca0d219f3152788e8b480983f1d68c67fb156266e3e7c4681cc380acfd0c24a1b504081506dc3339f922f539ca418d780a61120f20ded4ff213a1b685d2ee55cd2a32623c9ee275e95423f0e82f471f4ba628808c40a46cf47af5d75a1f6e68b673063af1bbb46673bc9a78440ef26bf2582279f04bb4931491aa69c398f18d9af20bd9983a4da846e5e683b4559900cb8cba4b6e935280715c8d42ad9becac30a0064d003b253f1455ed6519e7c26328255d59eb005992fa693cabf75e149bb1f4b19bee6f98fab07aa8ad09d2773b7970af06dafcc73e7ae5ac44f846e541855c364da800676d86fca4f32e50c33952ee066e5b973e104ef1a33e46051ed3bf92b8c669f33676fa6984f8fd2838193a4eede1f40f8437eecf3ede4549430d6125ca74e2790c580fa27d13e4cf6ca948f8a33f836c03aca6d36d542e1b1a908733f5c5faf0d662be87d8f043f877ebeac09a11567b4adc237372e483b82e410a8a37f56e84e32bcf6a73a0dbab763e5e81f8819c6f8aeeb453665a40ee50c0299f7fa4082e69562de241f46d290c9cb42e191d8e4219916594b4d1237a10ec4b9232478137ffebfeb2c52ec9f2dce473b10b64f926f25a51279ccbe7f14876f340a95c577d2145fdc59b01857a103d2230102f22a834bcd290b1954e0c928865b6b17a2070b081d21af0db11d3d57851b720e019809f7e6ff65c0049edcd78afb7092822396f917d1f0589f399dc98fb296465fbcc1ad6a4015765ac439c8dfef1e7863b7687ccfecfaf1e411bdb56422dbc0bb50f2f01f5bc32fe329ce6d27b5d74cf69b8031ccf88da3bc4520ac2e3523a214a4a8d79d83bd18ac04a57fe1dbb4b9a714f55b2e38401975101a7ebf51da567b6a685b47490eb4725b0de6323b0fefa76f4d0534096b8dc348672a3bb9df756dd4a8e733a4c8d35d96f2dfa25e6916a8e942b2f5ac623dec98d3144a442df2f2f61c2a4cd8a96ad695e3d6ffbc2fd8190d30446cd317c0f9def2d90c84140deede85ed3d850384a938ec74cd3bfae84bade5b6526a19056ad47b49d7653b0ab3b944628aeda7d1c42e8cb2c452306bbe5cd13aec3164229a9ef95d39ed9fac15dd57efad750c032f2210dfe40e6d89c5f2174ad0dc807fc40fea7f533839c7ddc3fb2effa3a306f2aca935813d8edcbace1ac058bbe6900e9db4241d0514a906b8dafacabf350ae0b4c28e2efa982dec08549a690ab8533a4cdc499317f69f3c3e9e8151a527a3d2e7fddc2b366c8f9740bc094904f8cbcb28f0dc55e2095aad9a3f21fb4b857a147608329d2ff633c479dea444934459b3dbb03b8878c1b561706083022ba68ac520531e09c04ecf8acb78181575f8aa6593b0ff3f27d809589e2870c3f9081e533bdc4f05a4d6fc081ffa8e4ec10c6dafb869fee899bf8392453735dedb2483e14905a59df5fee3c5de260e0ac987ef8b8aea297d699ef488b49f1bcecf6bb19ec02d6d09197dcdbd9a81457f2c8c5726a8e0fdc836a84ce09cdcb5710bfa7a2f815609b1ba7a24816da0ec4ff96c5ad129c5e47b3010980a030ef1d79f4317215f3e26e2ade1db7fbaefff3db043d8d9ade0dafb910852e561ef082b5ac518634a68b67fbb91efe12db7b4ddd87fe5242901cef14b63209341083cee89e52886e87500ca0abe981f21f7aa925bd6dcddfd191b6ac8affaf97b204fd5bcb546365b366632fabb6ee8ef7d9bb906305d6439df563b0a40e16c5b6ef2f1a03ca2af30bca16552334c3f820d70bd740d21f61d6d6f1a3203734e2cf67ae7a4ffd505fc0b9a8f0fc01ab5002987ce7cdf6550ef443f36d81848bc6efb275ba93862d944938b8b61633a9fca1a665b944278a7d3a53a078c0b377485cba590725d8d30e1c8d550641d21268706b3b19f02ff3c2ea9ef23737b751f2e08eb59e7fb439830ec36664ea5b59d83ab7c7316c6bfb041cc2d1a6a337624934dfabe1b1b2ad6e992b1c4f053fa5206740f2d3dc4d9f2f2cdf4f8d690ea410a383f78090bf9d12a1d6745b5461403e071d19bffcdb1b45d71cf6a1dac9563137f64b224999ad91701bd3ce359cd0276b4bf96b4f2deda50d2021d8bf2c6133dbd4452173551d29ea17a1263c3b62599628271cadf21cea92996d6d96ad836f6e60eb4d50da7fc0b52805405d7f42e765fb1630d7ece02548b93488f3f85a655901bdca8964c1496472a611461daa21436ab505c16f89b3c5b31879496932dff4bf556c57017eab135a81296dbd3713f60190e1bfe6bfdc9143a1f1d995a6cd01ca9b3caa17a82f1c0dcc60d27c3a648ab28da4e24e15fdd223e8c1f8c1170583f48003a5dc7eb0b5faea77f66bcc6c4050375048bae0f7d49755efe269ec46853253f767ddd4fd4f54758c790dbd7f3313909b6acd6d1b1be26c3656bba340c51e9df6f678a6348f91499bfbdd4bb8b5177e1af8437bcb00cea849c519b86aae7896edcb6100037aedb1804ec6b2d460dcc2b90768098d1c29685f7d9b51f1e0a02449792136126de89828c5a980e782c78391259f784db242eae0518bc810481e6b999a926811d4c4cde06fdbc3e9dca06250f7dcf7fe82705b4c6be7f78fcd1becc533645c1a7e0859ff61a40478a01326c1fc2a43e4308bf19ba6e25f42e2e53875899ca06aa0ffe04eb1c00f44392ff22c3f27b225417118c48a6318bc666f328a6f1005ab3f3a1ef3bbe29005b6e9109c988396897c83ae1a3a8493a1faced9d804ec603fc50a60b7652d7df3939a4a379a85ea69122551b9ed14303d5cbdb074d52fa958fb0721f969b94d10477dce4bff864f416a41b92c79169c444d1aaa3a672f57c3878caba093140ad31832abb308735c6901c527030d4007f86467aa7846111fac4238ced9a8be22f7dd3ed7a4124f3ce40b20e20bef7d2505534a98d4c252f6d4736ea07e1cab1b7d9389c92835af9c4bd0c9be59276b01d8590dfdd4ae416af415d6566623c506262adea1bec53cec3ee0b8c15a31de9e43321e35ad9e824639bdda270aa068cef3a66ee1e91e34e9ea5febc896985b6dac1d90302f558c8b2ca32a403273e44f78464db3af28ea7f8488e348e7089e8a1ea799c304482cb56ba738c79c24ff45fd7ff4c444bb42f9d07224193ac214d5f976128792660051f5c9bdf3d0827003cf9cbdae6d1b36791500b850319061ce1da8fa482699fde401c1323090cd65fd33176bec537e53cd0769ad32325edc4dbf40f30c53c0ea25a3d1584f973afe25db1b9f65d1b83c8b9a93922ab5400e0352ccc39c9c56e27da3ffb0d0a128cf16cb57648674fc267fbed1fed8e85437c82f97d5a8d438d6e25ffe0435e120620b1cb4a4e7beca5b6a73140930fa27c9c4e7b7b678cb8309fd9509dc625adbb3ab06c0b0876015b711c2efd19f936feb5f5fe5982b36e8929d60f20a1bdbd6b2a61151bc9271d82e9c7905f75265bdf7022f14d288ec4fdd84dc391f7d79b9c51c685060bbec594441ca8d1f7bc87ffcabe4f85d60e0312a792f08f39bcf9a43daa2c31823ec9f934717be74adcf113c5016d8597b707c0dadeb2b2122658dfa618edec5d26a9d49539abf214f56d5af0e6e80861cf98fec7509138806f938a9c7b7522bc38c0ba704b2c0d911e1517f321ae6cc10c45d8552f1dbcb509d1b875aca207175afe383e6f56c5080611b8a054b9ab34fba6165415032d2edd613ba1f08e7a31bc5f4c7ac69c1bf9a2ed4e472a844eb2b79d77167b0a84794332ae11c67073351bc1cefc269c36483c4f55279e957c613ad3d610610a51ab9072d8b721d077463f6448f2a2b1a003b1d2ccf6df775b9e1d3f440c3f0c3fe934695be46a6381e2a0e5fcba9e8eb576db4f70b0e475bdfbcc888ee3c99cae933a657717f8918cd6f7145de4917a9b34d88fae76251b47589bbfe9ef282de98a381b9114d70c482ea8e9194253ca16283a9ccfa7256f35fe97553587a2ebd081e2bfd0085509b20c49a2fcf873d5633262c750fc5d317a2cc0f307807d81cfe52a0bd11ccb864f0b22bb6055a4984fdca8baca5b2585ce89175bd2d41c63381bbd21d0e9187541ea2324ec0e2aabd19a0d4dd6d8aa2eaffb66169fb682da15afef58332d796df39ea0e461dd4294be3992374d0822a095a19ac6139d1e0979b648675b0d0269db719c1404eaaccba3caf4f62677c8fb08ec6108594a34c38155ef94c2a4911606e4d7e50185a18280b26cefa8194851ad75cd08a8af7717ce0154aee3ae00f4a1c192632554f27d2b7ef231ea08735a790fbcb2cf038dff5d716d453ec139fdae1ff5c4d74bb3105af15767efce33569bec3fe316ddedee219002ec9421b48e2c07c4d13f43361b6e2350b37fe0b88c386e87651fd6f56cd8a49f6edaf905bd2229b51d4eca00972470fd03ec60843c8b34f30086edd0ffb4f18c4269dec6618521f072b867ba165571e314da62cd67131c272a6e62467745623aef6e7cfee13013f90a9805c13608e49dba0a5850d6494ac950b5b49964bcca719d85f1e38bcc4e9028caada429ced9d35b8fe1f429d926f4bc11999191ca46dc38f49e9293b91a148d16ab9de0a7b1ba6739e1860638540d6694044e66e17dc34a1de29929946e3f0413b67da99bf91f349a97facc3ea99c8be44436dcd1f1e1780cb4b5718221fb89a29cc28a9488c562ff50a752fe43b33b06b8da4d2fa561656af8760f94a41c54656689275254f0b908d98131bb9bc628e529f9076ade646b9a00d3f4a45cadfd379c2c0c36de376472f81ef0754a98e8a695108267fbe3e7ba7ffe1b9817720915a26d97eb93331cdcfba660dc2351c4572feacf579c554cd3f3cdfa1cc7bde9657b3404fa53886e912cbc8c7b57d569206fa5064ed4cb852daf81a33db47dbcce3ba636753354023d489cd8f0455be18105746aeec94525d5c2cd824c6e2ee61016f9ae5e703cdc0a2b3310029a853ee50fe4fa8ce60a47e9ec97b5c8ad2b68ecde084330c7210a7414c631ac16c7ae4d9142f76ae9b11caecc98cc38694096bf34e78bc6dad759825d167ce10225dc493b20636ec0c4da28807bbe8fea5301436c4d72d3dc01157fa3b66457ae1ee57bae80fe7a91cd6af25e8f6179b1c2b60eb057235b01de9f41fd57e110bffeebd5d1858674ea8baaa6cd7e34ce9ce7ae07bd23e5b7f3eaa2d26d6da50f0399031e098836105e70ef67a912fc2d80c3e05e56f1525684d6ffd56dc1de5fc7ca5207aaece683e5ecda7603d98e73ce897c7398a362cace358c8292ba31b242f7625b8d0c64e2ce6107ca257ab374d0da9601e62c32d90d5134fcebe308603149c3bf84076f346beda5eb96c87bd282b9b384d4b7c68dc0e9c5ca82e0a4f57bc8c51eff0fb6dc6b1d6ab91a32a1a4cec8067137b60cb5f7fce91cd5f8d068286b02a23b9c9702d4ccfff0b1818801d7f0cd8d326099269179cf38707c3c30a2f296072df023abd1dc47b7c055e6b64ae5e5a82f2d9ec4fd4efe8d7fd8c7419f1a9308aedb435fd0fd4a52cc146d3cd8970bb29af603ceadc9925ed5f5c65fd3603ba6ed7e4b439ca6da8d9843e32679ed94367697e3818aed197b182995ba9da4329f771aac10026788c3109b80728bff4d6ecc733153a5721ce3eb5271933f691685139d425a4b3642f5bf01967675da549ffb92a58b5c6cb7361d3aec254441dd47a67cd2ebd4e5e226f00ffbd60713f6ef975579b712600721ea8946deb10cd89c65ac096a7c20554f92d533bb4f253c1c8c74aea5d486cfc2c20d00d7ab98bf95d4c2f40ff7e6e627a761728e6e063996daf0fc1e8220050744c0017a7bd5176bc567d1e295c4db7e78ad611dedbbb397e4faef48a5df43295347167bd5f52aa30cc21bbcd6f8b1c284a14de6a4cfa2ea52baef639ed65556379f87e28d5ebfa5edd7f4456f1ae4b9a0b42bdb81c02ea1fb731f6f4c0188a64c7d396fd063d1bbe8f9cf8722ecc168eb9017bde005ca43d33855a3c7e336f5219f3ea6fe282461b042d0b958ff02dc8bbc1d8534f4837e6dd3af4964d06879bca58685b399fdd140db7db75ac393000b2fb76726903b513702e0b0ab72ef1e47979ffbd326b6d9f15be6d8f700aac64fe9f50feb3fe4152ec0921a78eaaec82bbc50c394bb7758157369aa14f10ee142078f3991f10e245bd25d9fdf0ab0bff9bc7a493e51aa3d661b85e2e8a0a03a5dd896f4b41daab2024def7a14f408a9bf27d14376bf58f8fef2e04fd81851c9f3fc56e02fbee1a2df7b7d4ac8d1c89c883df91b2fc428bef0df9939a1efc9cff5a87050cb46e074bb0eeeb3c2c2006adf3afeb36b226560e93ba37d441116cb6ebbb939e2126206bcb4575f286614ca58810031a6c4c4356e454ad3d4cd3d727bfa77d519f6ca2127537077320d53dbdbd76fc583384a5090dc2edaeb13b34adeea59a9f174571db88da56e8fee14839a5f2600e2a3905b824cc82c09d5c9e13ea61f76a7c839bf2df19167d1875140f1befdbfd0ba626cd05dbcc53a8eec41a5258f076cff8d699ef16cbe5cf65ed6ac7d5dc0d3fe984035452a70b9a305cf6a2a8b8eabae774a7b7d13cd4803dc828f14027c7735a88e8d2396fce404befd1ae8118d3b943da030170ba841cb43a5d20a547d9d5c368620c2a6d4754ab1547e8b28da1d07c942eecbd1331d67328ce909cf596cc605e2747b708666a03afe97c2c00a9d5d9b9b7cfc1929ddff5fe77743ea8744bc47e43cdd4f8defbe7acba3f78eba149a362c4667da78d358a4406062c048cb208659682ead9a678371db563753526c0a0ae8f4f3640497cdcee5d6b3d561d3feb8e53cb962f796cc09c4406e1e939d8aaf8e7d9dff920ec876d1468f800090cb52a83c256dd56b3d715ca8975b9bec45390ab25806de24d8c95f4df3a9e56a213ec80c08e8e00bed0b21bc0aa6afc64e88f5391aae06407b6a27d29c399ae1943607a31ad5b7ee68938ffe4606120ed4b2b6778698800384b5461308034dfc82b24f5bb61379cd47e91b3680002b91e70220542315f12e58fc20768d3335c86555149b7225469f2122e678ad8fb3d116cd85fbfb6477c36f3ea098e2efbbb78d27021f27abfb7f00503c0c2c675838a73ee3bdac2d722c3f718b63cb77135778345fdc8d9e59f5b445b58fe70af47e7302871935daf6fed2842904ddae02afa57c9b08cdf8efa3e866639a89ce8aa9343cd7151eab1cf4faf23cf0bf9eb9a9b6bcbe2386027e8da6d6a66846c47af13e5b1ba7e0fd033395670dd369adcac2723b78f7a96db4d6818c0535a8f05bf9bf68e64788352903914a6d8d4c8c12b3dab2e850641194fed5254676fa9632639f95797cc18bf5fbe683214d58a4c037e7a4dea3fa48eda21e53481d182c1948ab2cb12c9a3821fbf2065968299e6c94fb999b52eaaa01c64a4d17071c4c09c088092a5599383cf7954519ac6c53b312cb1e530c69a9f09bd40fc7a0d4e8738de9adbb73657a2743fb0240d3bb2519581a5a47d7b26b7d8f4fd5dd6eb6e0d4351ce90c063edf599505aad130dcd547523b8800d2cbdb383b7ca0e32658be3fdba62e6d0fd3044cac907bf82afb374f14abb512a546b3c4bc967352d3ff9018b103f43075ac4ce18a012e8665d6a85512713ef6e95b70d334b911cded61c0575fb823b1b74b00e98ada26f7b6c119e7efe08b94a8d3a17800f5cf54b1b11af27821b9ed5ac1362e4cd3be6b66f029986dd312081fbea1a3ffe3893f35764a77040146493d87900980a43aabd297f2c1bd9cae3aa385892bf8950ca45cfb3380530a7a6c89db7c3d6d74ca26a4f5c4e15de2c3ab1fc4c2b133328bd2725303bff004d9f78236374c36046174c1a52b8ec11ba9856759422911ec452709954725902501bbd0f445207e4cb0825abdcad3ec3e65aacacdb2055b8b6426d125b63739aa3ba44d6548251203e8e6d3cd6974fea3f1a9b3fe902bf68d0a060f73611924f02c8d0562fe5d1d068d7cd2435a5843991236064a523f0586196fcda201a5d609476b6cbfe99bc39cc27a6a99763e7bd8c170841ac5352473f03ebf5fc6961eca0d76008511bccc4dbb788a1872da70f966ff89164a70d6c0115487126148fac0be9cb076174bdadc3bfbbe69f5f9412935168a0d4a9926d247f258169eeb93ba1b308cbb486d1be870fb999fd80a746e4d7e388af4f146508e3064f363618ef738ebe8728b94d1d8d80b133a7ee78a8e6b4c8d1543b0af3fa2264b456e0c93ecb42a626c1b2fa25e13c0669d324c621a1e3cc51bc7faf63bfcf2cc5b0324bbe67fa0e12e0f4a559cf50cedb3974f3897fe97666881582e3469c3d2ae0ee02a51d985754b2419f59983b549ed7cc85363d07a27ab8a2c6c38ac7ee4bb0a3b8e607597706f5bc3df45b3c9785d14aa71b6199ffdcb50a03cfbab8854cc1b217dcd562780e699e594188e8c94b5e5da57cedd291e6b47983ad319ec1d2e136307bf531f72d901ecfce5f31d082e2b2742c25ef2f71a443d659e1bb51a4e73ef61f9cb0a6608dff01dd685ec856a890275e88f1069e25fc4fa5293a5a1011c0c4e4ef1dca8a42b554abd7aa7e20dddf7b056b0d14ec45a284cc4ab2f529393ad38ad3d2bd7705b9b1d44524f7c7be044cc7c6d8ad9ef597d11be669aed26847c5f216606d28860605bc4821e7f622881e7a2a80fa737462d6a33e2b06958e371d250e78db71c018c108b9263b1bc2b69536e94b75ab2edef5fd2becf24e6768c4ead0939eeb12ff5a33bd5a9039f09cfdf7eae86f5cc4a5d520f1015bace14086f5a44a5e2ed54bca21e9b4b98fad30c3ccc0118b1c35e9e24469749c718696939854e0596207af0dd404f33c07390ff996de6640f669d7cad83c1f0796afcafe1074a5e11df508a5204cfad5778eeed65c1c7f5aaf9709018610b4602e981c415ed762db93e5a1178139b5f3b97ac63429e17b795f33153e45e05c60278f84b8aaba2f411233fd6cee2dae36892fc0107c99b690567386fc82f8b133d0d6eb21445fc0a1d0636fb1cd879ff736812e0e4b5b6f6753960afa533ff3fb34fbbb22241f719d0e1e3877ecfaf1c02c382cf391d9be1a0a6b7ebbb9bff84b49a98fc308391069821162538d3baacf3e20012973097099fad1ea07f7a81aace25046f01cd7ae501730145f844e9798cebf193ee81ad02697333668f433651b831bdbf830129030fccf50b86310ab40bde0306502a7f5d9ba2477aeb420c989f301271183f3a2f9019158feb7c546232e5545f3ba357a1f70b3616cd9bd9d5aae0a25d117b7d2314a1f08d754c6ed4e19a219e3537d233707163e7837acb5e719fb66b6a2d0de73452d916bb1954005ae79465348fd83b47cb6346f7bd07bfc920528a0fe745aeb013fe0e954fa5a3f852f5c05cdd62cfe2fd4802ede240a5a473ed25236aae9dcc920da0153e6af25a4902adfe004a5d0e935485ae95cf036e0e0daf41c20d01a12235d69d84246974ec9096bed55fcbb32a66bd94b8d6cb8fcb0909376536c90b8759b59c7f0c9a6a942ea58f7c87aa2f933a157be492c7d7cffd6a0b0bd47bc923cf50e64903c1b2ea204f75e309f3d8a718ec3f7ea48169a1ecf6d2a13fb2e4c37f24a11e231efea543ebe303c5a96d32b66cfb1ee1587d54e21b40dd2430d95165cd21cd26bd19750bac9054e358efe53c273bda384c8ae6eed0fb7a34e91a0d8c3ef9b815aa377f4985474b8de595415106a2794544730f76a80ae52688af3c6edee57de7cfd0a349d42104c67fe7451e9b36c5f0465490fe7eb2f57fdd882efb8a0ca9bdea992754899fb5357d8ddfc2311bff67af4f8bf1e97433c0ef0213318da2a9ff82562ce01040764a317c015358c596dadc04793eab2665f055e41439cf6883009240287084f629a7340272fc2eee4ce19031328d0cac3cc283dfd28df51fb82910d231145efdc36a2a96fcae147ecadcbeea6845554fb39b9c07b2fdbcbda65067b5fd98678b6a9d0fe0cf9976a615cc3272932e1287c612dad9b4bd84a0f31eabbce9e6024ff7bf4bfa000926d31000545d36a89036c40dfddf25a24376c3e7651673aa05388b347bf60fb002de9f54856fde4730320f9eebe1cd43bff1c82b2733100520565949aa7cdaeb8c86933435bf8044f2f255c15d158c2619321145a8c49245b62fae11e70b9126521ad9cbbc6b87ffcedd8599e2c7926e7e8dabc33bbb2cdf933a001e7ed9d42be5f9a7c3d0251b8bc8a91dec9f820178b78a7d69551f9c0e466d1a07d3f43d31f6eea93f8eb3b6209b656db5ff4523a6ec08f16a557a5cc578decc02c5eb6c6cd7c1c708a527732d5052a7d5af04f720dc0020e7e057d61155f844ac5978f987e7d7afcca7a6ea9156fdfd42753c5d7987ea277e14c97004936408afa09891c77a82d7f639eb43f53d085712a964b5bc58320a12b4e3e6941904c39af276529a2f86274eb698f7f7b695fafcec734a8e85c2a8457e0a1b02c8f5bf3e339254a93ad7ff9827c51d5575d6abdc007ab22c81a66608e0f5aad5b79353c51da8fef50c865ba66eb8420db35799b8d0c1f1b05d37ee84c98b9601538d976197b07dc1792c892c5c0e54fef5ddb923fa00691791f4154776ef047aeda2c7069dfb0c30615915534772c928ba495eb5420eb1e2a9bc7e9cd37febe6a123e5f509de95ac6a1526c7880a8e5a2c02ae0c5fdc7e9aa69b7cf13d074dfaeb5127d92a20e4dcf49cf4006c1aa10eac8f311ad3eb9adf6ae8c3ae2c50a85213f0996bbac92d5e4648ca27c11c04c8bb808008cfdf941c013f74692d9fd61b34cc93641d064f5b70c779a9abebb2e9df0b84213e6322e38454613e084454dee1fc45616f4a67e6ca2985ea908929599b5938dccbb182b1976e6e9e97095348c1e45a2ac55b470e648db5718a402aa20af00ba02d25aa88fd9ec8ef6fc2f5c185312c60103785e5b65de6b153913390b69685cca95e1b13929b402feb988d648ed9c5e016013d9a025dbfc3fe659f32ed5eca51b015dce0d23894b48efb65dd1bdc16c36a5d41816f7985131bb175b3ec5b194842823b1700767189619b8f8abba1972815e7d5ed40d7257793b236bdd73b5b418af5ed9221bc44e2f648216377dda964ae8d8c606df67f0dae0a2405bfa38f3e9508d78f8286ed5e335e70814c5467b71faa28ae7a8473f0797975180dab84684594e3a7ffb762e83a0450964f5ae960e19bee4e5e7dea3d34037fa8778752d9c2c81c7cee530b28ff10c31dd910146f422ba18e5e03f59ea2f176bab9b8b445ebdb31ec23c3b7dfa270f1034c5ebebbfc4aa535a1916e841ae26429bf19c799417e11bc1d89e638574a3ca81de89c435034e614cdd0adf3b797958e488089923d77fc91296fa7a00bf98e9a1cea74e94b7826fddbc39832740e28e8355b33a3aafe0546ad9bf0df922f845feac916c860b0f5a1409b56a09285da3dbb0604fe8e5dcbf01047f09986b97bae232749e5dfeb638105b1a33f54a4a59d7d69ad0bcd1d4a91e01443a5e9f7b853d3d4df847e5a229ae0c37c6fa33787e41662b557562fec94ebd02e524730b83a4516cb547e71592eebdbcdea463fe9643e5238cc19a03f502a9139349d211ad9213838bcc7f744f14d005bf4acee7398b3a76e09a0df1c7703bc020345a908714cc451ff1fe9a928dede94b035ead68cd321dc7b6667452cc6bdf6076de616585ed9b3c8907845f337ea2fddb6e806b3efdd47928e36a5afc3682e79ce5acae928560b45f113feb5132bf58125065fc1baf63205dd4bf12e51fb0cd6829269375cdb2013de93652397d2ae172c91dcb96c071aa3b1f9b5f46a93380921a23d2369dd618922dc860cb173eb9ac90e3a33f8df2db57bfdf01f4de76eb65597c82dbf4a401edd227689879e75e5dd2f2c29bd41c4ed641fa43dfcb6f96803d40048d738c1faf9e9959a263dc38d4b1e41eab3cf366d545ff0103019d7eba51358629e22149d7aef6a1ca59dfe511c0d9b3facb5c89ed031a27c41612c7cad42cc92dab401114f2837f4421148053897419546ecdffa0c34afac122948c8937250b945abbe3bcac18cc224664468e07a4ed3a747e63626475d46243c670c8a33c4417239cd7c2f594753d98f35d9c2c3ede2f1337822ed6bf19a31966ae9b71731f455cf5582438a81e38aaa49d7f5c6a5b20e2a40495a04090cd4a98c895af3e59ecfe410cf1b5e7a16853ad950bf0db3c815d4457715bfd6dcdff4427e8a2ea6dc028568d75ff3471b92e3b457cb5dce35165d997833439b8bb658432933ecdc17e9cdfebb87f740b69192830fb6a27a4acbd77898f6e13ce222e1bbfd0b048ad7c40760710ee9302b5babec6d845927d988e1bd1a5de7538340d07deabd59d16499f3c2d2ddfe04b14f58e514c6f897087e3d1fcc16d5319d63d1b6149c08e83f7661099bc33afd4a17752d3e08359f74b2e7117f69a36d4fefbaca6bc38d1ccbde74abc50a24f95bd2fe19251134a6e57c2e1caf2f51fca4e07507e643751ddc899116c1b39569cb7cf353f7d238874c256f652d9a5b4423928a338b46c432790953659b3d630cc8d4f82df42ace08ff788d4c2eae3bcdc56a52c34fdba07b97a1ba973efae0d45626b5401901b4b9dd758ed5ed67df21fadcc467945b7db1b5c0b761bb4c811b55520cad6a3cf43d8d6a9850d1f541f0ad06e1c37782e5d662a6d58416880df08de33d6368f9ef682e0c3ce1f4ede8bb1c361b533459ddc2c52ead9d8aa056d3687aa94b145503979c6d48ef56fa4bd566dfd1281d4b87f393850033ecbda2a1c4950af2a28235638a16a593da5c5857f34a05c090ce43336cc119d7079597aae4235d2abcd45a625ccfa57d369725ff52d2a1cc484bc70b28ac4ff461d2b74edb72c3061f35dfc1d195da28090701ec1cb818aa67590ca2ef0a374fa45d1fe5ca54c17f2e803df976d4e271dd999ed7d960feca0cae154182a0c26afad1f35f9187095a7824493e23aed24d6745b9d9de53ffd3a56e7d4ddc501a0d95ebb1ce1c5b72c13971ff74b2a3e319bc2374278e5036fa18c0bc48839a7e0a3a3a2ac31f5049827520a2c37e5abd2f30b4323417b5173367f6d228464caf8b389a423cb0b7f9ff5336d116e187ea8bf10a9f83ac0a159f7df5f197b92583cf6eee3aefa5912fd7e65258f37b16823a3be267ac5de713b49ace76d791de2024d3e586042cfec50512a03b0fcd9fdcd22878c3d1e15c1b8febe41c3b7871ef8473d4e75b9790226db994b8c866b3525af6540e5ee8298c4a8f15badbdc867fc448ee5ecbe6d8906ad7736041f5fed0023cdbc9e02307d8184a55893c3943b959cd4906ef8cf7da018f6704a1e4d648c76620ef1bc6bfe2d98840e627e98bcedbbba9780d7401efadf6a9a3eaf2abecea8a057db2b3e2c21d10b880ebffe30674e74960e1fd66eb6e681c997d44885c321404e43cf241dd734f784e88f1881b9d8b8fc3f2324b469174605dff80d23030f82bbb36fbe690d77f9f5bcb9abbea3679d8d9ebd95fbfdee6ccb39930268fb7c4efc6a9e5aaeef864082c8da3e982c3426e18c2f77932760ad8c04ab900ab82e6a83b9b89a0d54e528057a79b5e6725fe3e30c6da58fe9008f2c3d4445203b76e755b08873aa07d6290e05bdb1210e286e52d689c8462ab40a83bdfe79a7658f5b8c1fdde72f2bbe745ec4b57ce9fe3a2643bd425dd357418adf45720cfe6f3f50d7e4b2c5499f41fa6c6c5fa97e2f02219d68dd96951c8c508057113069f2badff589c9882a81f187e30dc741478412d79b58d84faf235e181bdf9c76917d14673e33bd4606b79d7922e8fe104f7c1bbe4e3d25d589edf4c358af72e201c3b5c11adeff31968c9b09bb0bca87c361faa7199de7544db4c54b54cb4035ab4da58e87ef4bd2985f93a3f4cc29cd750ad37133cbf11e6b6029b72081e7b462ca9a9697126a8a4c5ca7bd490637c75c285048282e7ab2158de2cd4054944f5ee02388ef666464f84905a4e82af14b122a6d8859d6c2c9c49caf5d2cb85f5fbb995be54aff8066666735533329ed3454ab6b0e7764ad31b1dd5a63d29af74cf95bf62cf4af9de46157b8f5421d0ec48675d6960c4075405dbefa2212bf20f87d70a4fe502dc75a3b1dc6d95ed3b1a22d10b4aff21d0a2c0912543f41e7181c0f1d0d39537a255f4a2940bc871afbc772e14a9ad9d6c4553f65902ca7cf23dd5b4ce4d506a7972267752816efe623bea6de1868c68d70de4762baee01f9cc4b70c6dc9607df98c86db12fb27d440112b8cce08f8e26e27ab245b2f0ff42a8f143f9786c08c84898c07f2c304b192333c110ef315f0c988ed4628ce4c7569b6a2d51fcdd4f30b1a9c3c18d4429b839ae7910f84438481c0741b88b0a70e1f9a46921ff9f350da33b61f419721743ab76be2232ef6ce7225057942af0889efea1971c67f5a7c9c44f859c8db4cfdd82e714108d6124b29efdb449e3b48f326b773c5dc66ca8e4ab83a1c3ea1238b0233f202329a5d9314676bcf3aa267ad558e240fe620acddf1b5f2b848b58f4b8699c2cc96fedde0743fe144b509430cd83f26e4369f5bf7dc4781ca64944d36f22efa7c26f2bd49305ff2a8a300810b89b34f7510a4dbd5019e46f4b4d555e3807e1a2e35ed133ea764eaa61f4b96aa76249ef7889e017991c54a8ac54fd4da4a377536463efc81a03850afd46ea010aa506cf097a23b47337404ae586681186d11296c1061531c73527ff16b90790665416f2c0afdd8d58792160d0233b4bd3b476672df4ac6309e384061e42f041e64e8718bea3c430e9d88ff5f4a29d535761c3698fe4da25aa16b5dc68115f37af9deae50c50623e0f50a09c8213b0b23594976215da3d92a74303067ba11a060f346763bdc36bed6aed65e85dcf05a83c2b1fbc530d5b9b0b6e774a593f43357579a57c8cf1ef861135e1f53cd31aa707447906f62de0831249e034ee7736c33d2893811c7b95e89b6afaded34dccd5f12cb571ffd85d61a183eb937e1dd89f4b4bc7a6bd7a7403859e5c441138be8ed891a0549b6695a10cbd65f92dd7b52f7364bd83c68df75ed89828ce6a0840e0ad8ec4a97d71f7832edcb03e936c66cab40536947ca1959230fb7fa339d3b20edb913a8dd3b97a9bcdc2dcfd5c3fba3e4767caba8c4424cd0534daf1266aab0e733875c4c345854f5397931506a5ce4b72c427b9137ff8504c1dee6aa84c0b0b358eb4327fe13b5cd21e38299a12da25398976b836730af16260bcc28c7b13e35e5ba063e1602e525de129218a4c93f6d49a28c34b48d69a51f9ef32988104a94f6a6e04a1440113ad1220a7900c6a59ff44c94c9222c3c857735bf830433724faee0d6710a567581779f1aba6cf63e00c9670a67b296f0dcbb8d2d51b67ba4f277a0c036e847a2cd5ccece007be5390d7332b8983de5d8e4590028d486a68d788224cf2c4ea3c6f99491a3c47df506079f3fe9198462c852421306baeb01aa09bcd2d725d6de654776c5c7c730cc2bed6bd33bf14a89cc05619fcba382516415ac28565bd0360e318186b9d4b521309f98a2ff645df81207b4e5e4dc33a0e83bfef8bd0384c39784599116483b52c17397e837f868bd01b4ff40ff8266023e51891fc5f12a23e42b845edd7178b0eb1396dbf86e596e23b6dc283145639121b291ac9e02ba7c2c546af27c2b3d68b13b25b409a5fda479d5ba35cff882f618b1a950cc44623a05857a54c342461f76d08b67531a7e05473eac60c9a7a2abace41dc71a1d45af3a8a77e69ffdc78bc64bc5408217d09ff82e231e8c9b484c635b059ddb2573f8c336365183b8d8e4891a192e529998f7ba503257ff6ec8cd3429636f755531b25ce899ff7c3c31f5f01eaff6f662233854853f5858f70263e2a7624268ccc9b7b20a60d52b6a3a1edb3007cfedeb78a22edba2fe984a15a245a262aa67d5a598424d4596bf7a85db91d34c061f9083d45abf621eeca82ed23efa31eaaf2c64213ab1791f7ae7c72cda830a55f02fea4a0aad32269da5447fd3cb5bbe1da3e8b7dd80221c3c6d96a632f4badf2aa70a2a4a8be3324324245ca485c7251c612feeba2ac73756c811c1d849b9da38674999f77a2d589d31bc3184d196b246d07da4e55f7a3a5963fc1caebe62f828c2fe2a87c162b89c125f0a03bfd5b04283696261127042e7aff7ba49d5a27199a422b1b32ddc17187f3c07f328c1e8e767d329f4ac870c812f0bbd247165239efc19014a5b29d36b05410d60b702fad7a81f5cd46e6a9829fb82f5d8886419eb0bd69a8f86a5e214f51416dd0fa8103783cba3ba2912c8723bd3a1c768fc33e645a0e2ddf609b7f7836748a407951065b1f2f48ceb6460ce5721e151a876692797918562534ce3dc4b2a0694c55da2332c2a85c8c445ff8f1c449bdefff9134bdf1e09928d866b4d10227f29d082519af246a5775a2acef968880fd6763fe14e5573bb758f2e224c02daa160bdf4c9aa77e84127477d30ce601cd71665c95d40957b20ebc880286b55145fa2789ec9294a0b06b48c0277b39786d4fc51105052699c6e86c0074475b006e65b27e9a8f16e4c3bc07368a86aada2f8ed03090c09b3ff2b0186c91a65dab154d24319f546daca24696041c7a9874ed6ec9c7e476aceb72a37f2a0907ee20dc2e260e4f410177d2aa31d142d427b2183d63f003db03571c6af9d48b83421865cd1852b2e2db7b0d32e910b7ebbdf48e35474a8495297cb5aaee7dd99313ce22688caa640329de794821af961e857720d19245b9bd114fa2975d3fc8361db127e2c9a8d699be6c664a1104b609ef43804d553d89238e05dc2956191e88a11ed16b49045b318ff2ae76431ba9132e368e331462fc22d8ef79c98020580be62e5d2b3bada9cd37172a9e194a3fccb8112dc64874ce110ce14cd094fcb83db391bd1001afc2d374cfc2f145166b3ecaa516b9dd4e8d56a9274f80dfb63833d77a3979b3e25a36a75d1f234e6cd057e201604bb4410ee01316ebbdc4d82f1ba29eb0879b713cff58e2f7e5122673f643ba9fe5223c4403131b5a1c38dad78a693e911eb7274552b07c7ec23fe13f02743ce8a770c7c0bc556a9e9045e0fa540545d3383b96ec31fefa7a13d8256935c13308e859d169f2e834d96d87cb6c8754738af70c067ca0331bfcfcb6dcd2dbb9fdc27c8e462e99c271ff23b29627e0b79ce119453a6234655bc022041606dfae2ef3d6357dc3913a362f980a0525ad93f390bdb6024dd94f5ab8e7c21f67e93826c955666fb5a68c9e27d4e9a04f93d0652136609ef242d0c7440a44eca748b2b397f7adc553555946a5383c0a252a5d098f81faedb48968e51183b0c8b07cbccae0848bb145f22451a5540795e3b2aa981c616f768884be96b2a68363790db7479497f597ce49d502d101dd375d732cff69655e33c9b61c025dac0d238c574cc4b26cd38b0d133ae8936c68cac965dcf51f4d9939e713f1c06ae6f0cb2d7ce57bc6428298c16c818f9e3ce7933200b8afc2eda629156e4ea07e2ba57763873340e42353dc5c21c0d0d728ab2951cf41967d7e417262206af17129f7da502ba67d265e0a73709f6ea6fedf999dfb81fc15fa84d862eb671e6a6b9d85dca825f84fd4995f30bb6ae7957e55abfc77cbf17a93d40e0e09eb6a95c1b6447b2a81a3a6a670802a6549eba738306f1d51342fdd790838fcaa20eed38a3cfc04646a6679dda58d1432981ff1424f86be868a461d96a1e3ad44a572ecfc67c69c363cc40c17a31b69b4ff8aaae01626f53223cbf040794ceef80d5e2cfec79411d4bd84461baab264cb3b1ada347e99ebfe88d8fe1e8ae6f5ec7542188aeca904314932120d404fd0f5c51d8b71a4bcef0084890cb428d85cedd450accb0a1d6025b69dd5b3b2e39b43fac896850a81d1dda080397fa57cddce29dd2c0f455a1db57357f5ce3cd148f0bdb4fc8a6c6d91477e614cb2fae2e634a6e486edc3a25b3b2e3869a53a7424f0c55bcb779c1a5f3331570fd6974affa7548240535886c671bedc6043149752fa5a9f98d3adb6e760018dbced95aef625257bf944f0704c8ee220f817fffba7d9df448a733883f40c99b67aeb9e36e995e7b47b83c21a25f16fa8fbe47cd4540e6e71ee7e765559e98386e9879bc111ca7eb75b71b715281d415cbd328a4c5f0a9433643e881733b48237bececa636cf9813229dc3f4473f420e7f8b9c2ffed929ffb937736467608ca0570f23ee128db95782f8b7c5e61735937c8755e7e6210e61b78572274cd41bcb2f438db37edcd01fec5b5536fd0635900a84fcecc43d72b4c352d70c6c78d0f038d13d712e8b468df30c3d357b8c219398c97ebe4f8b3a22a8377a07757849a40a1b37a57b374185911f60c4911d2889d04ba21315343f7b6a4067953a0e132b8adae419a063a164e66e55d4e0a11462a71e6b513e9e18bd4f034963d163b233b3f83d0a839f4e8c41ce508c08f9467a646975461403c4fcbea777aa9ebc9bd9eff1032fd96ad266530c0cacf217ad615632e59e2c8c993c8eacbb822d0a47b3bd255a24e7eabf4005c6615fffa6e0d447217d8d3a6bcec5a56bc24c5fe02e96e0002c4015780fd065a6f83a88685a942622250644d305cf7680ac9c49c62581976b57eb05279db0eb595137527d34ae1e7070c3be9a00d768c34c4e567acf7210ef8ebaaff119951288bbde64d90b739134aa9ef9af56e9441601001b5ae6beeee3ea972ab57b42e90c8fbcedeb41126f4e2ed8e81a7b96f9868aa85be8987eff6909d3e956605a76a3bf8d5e94a34c54e73121795cfe40d391382f442e70e14399cc179f06a03e3e7f223f6aff1fafb5fe3ea01512588d6fbad1b627317b352894ec141b7cf26aa8a2e2402fa4a4beeb1a7e3b32e386f161297d1fb316da42319435eea4c8592ec5870291cbf4c3589001c9e09f06d7b7dbe71327aa073220324975279f089c13a9c74f73c1bb164fd2da612d6b98ffa9e9d090fb2fed66ef4abf71329ff1db14b32311fac95fe6a3b4793835cfeefc6737e266909d91a68fb45fa3eea064ee3796d3e2e8eb7e21e7a98e037d537735dd7cad29af88677daa0f612a3dda8bca041854be153f2d86ab7d162e9ee7205950b80d6bb8cf97846721eb9dfd94bd613c79680b945d6576a303bfd0d47a946ca32b76881e8d9387681768d43e99ed8324f35f0aefe98fea1e8f9daa7f4eb7721d4bd5992c1f74dbbe21c9326cceb57f1c58a7a1cefeb7c742764dc14ff5df3f75fbe3790e007cb182fb1cd4874392cdd3608c46bda222fb3f765aa69e3feb8bda1f82fe4a4b2e6ed0481d6d6873ef01d55a6217a59aaa84ea8f521411245da364f8aaeb47df226ef83c43a96e1237cc9f7b59c2955cea6b84c98098d7188ce9382c7fe4672c2295dd1eab463101706a3974070138fd0257e3cf642e1d73cfae635236e769c1c657197f6929dd7acd2a5d3f8a1db1a4f92fd917feae691fcf23cc8a7b3d8a94878ea81eadb4cab139f2fedba9837defa50e2ab201721e1624a0480ff9d9d5a7ae87ac24506e039162f3a4b9dd253179e163cae062cf17ab6e980040d4a3605c0629e8f905112deeda8d6f7901ce7d572ca9d0074eed4066448bee21364561341dd029ff8142b2de5a8081f92edeb7ac9ecaccda4d12ca04807d3087135f083cc3144b2fd94186dca36329668c7aa3fffbbef83c32a755accba4f4be3806266b70b32072e320a1932077d51f8be7aaec4917556ed3ec1b9cced61e3636f2d610b4339e4f202165e89b210ec218e5f29b4322abd465d733457a78bed8e0f2a2e05ffd2116d2a26a0f8cb702333d17662380a42f31f77a1b833fdcee89b296e1be3390d5d617ee2f515021159e751f8e1c28c327729e851273f7dd438e669bc8903805918354e8ba867b30814f8816782523a178cb860c0d49577e2a705249f6e5304d097fa5cc2b8b6a0d27e3d8776f449fb38ba1b2427088e7372df763012d40c64feb48d600f5631a730e65e7b053b96d1aa4bff0c1d818259d1f1d3a6ee57c5b32a4cc097856b5dac9e3d13c19a2e251894cfe10975ee6c1b7ed19c7621abccafacbf9649500fdb253b9af190abf9abcacd989803b07450e6e9d78f201414db29a072943f1413f7e6aeb6d11f0e9dbd8fed3fe45f7e2c7426d43f921295ed0f0ebd50188d04780d1e6971bc00f96b317fb61d159282a26de8bbaa2868fb2240999245c93541f6bbab774b6ca4058dd9de2cd3bf6b8258fb60c79b7f1138b5949abcc212859676e43d5feb5d18c67d894f37c3811f7941afa511fb03a3043c79daea3cb128fc987fd8999c7067a08c6c24cd94d527884669e085968b4f6661da00bcad4e60432e3fb6cdcb163ecc5dacde2eb1f78399c4a1874e9c0dcf4961b4947e122fd43bbf00ab618b16b4816767078bcbdafca10c84656620eb33138ef1eee3ebece436051072cf11da5da276f7e1be532c64d6e2d877089cc7f09acd983a92bd4586396f3992f7375007682a88b0970169ffd2ffc0f2926cf19037194cdc4b93f6f65ca0acc1c5fd5cbaee76fd8416500191a88f3ff0f04e5ae521fe16db1379a8e7d6eeaef3a704daf2c1222ad8bdff8db1feb49496c5e81fa8b71e8d245000ede2e1e41d7ab5112722ef4a5661dd91146bff0168bf6242a4d8deb038c66bbe4a0847c0c1e4e6904ae481de15e825ce5b488cffc2690c48365212fc5876e4ca596c9af66f886a0ea288b8206f0a8c40504a51abdb8029494a5f6ee0f0050044f0af53abfdd7f4be22d0b1285131a6b77875a6f6aec1c97b424b6a4e25969fcb5ea0cc3a02f9e6f62903cf635a2d3fc67ae9d4446bc95774c734cacbebaac705bdf2d7b3693e49afddc08710ef35cc43afb440eeaa9665b2b0a2baf208757d1b466c1257d772e2081d2af7c29f44d2cac6d52cc07e0741157d9df5ef5eed8a3ac509491dd81c28c2004afce1df060c3b7e1d4b7b481e65605b4f47058c9b941312f84e31e5265fc5ebdd61280ce04e3863e20d546517ecbbc26cc609d921ad5b9d6f666f3695079b2bdf2328c1b5c2a8a8b8bd73a899dd349be79ae477e83b4c0dc5efec643399f0287093c48180fd370ba0a975a58b9339f6ae3b1412829d22ea406a6edd63aa18280fccb3addaf8d3c55964ebca57771f577da22ba7a35d9f5a90f2ef227bd5899930a702c807a53096d8e5d94ca9089f8bf7124fbbc94b88f0e0521ee150145cfaa21d8f0d2e1245d1fc9338dfeb7553149eb8b9d5e4f42685f968ddcef0d4d0445ed08f5bbcc5cd870eaa7440180e3d1d538d364fa73dc625e21ec46095bdc7f0a044086636d7c8baa732ee93977a410677b0a9704ef23910ed729d4b56f148847c39583ee1dcf79f00cc7b8c47ffa67bdd9487e1002255bf3214e6d634aafbb3335fac290a8663f6cfbae366e9f59a1e1d3259661c057207d3e852ff6f28b0130ca38ac7e1fdd66a316463b48559abbdfbb33def0cffed428d6b48694a4ad8567534488825d7600c44232bf58e7d4e1df9f866f68605a88e812e6223ac9a0a21a8629273114ed4d07293e102cdfb5b503a8f982e3f5888162df9f0384a4880661e74e83e5423482999d41d4b5b7b8fa057c5ad8179fdf671f3e773143e42975c87a31db4ff2f99a67502ebd943320807cfd2125f09e95f10c7ab22b236aa53fa1880d967af17e4ad1c154c3481eacd341d124a5a9d0cb4b5c28868a2ade7d808610918c05f2b0e3d5da4b40271e2442bbfc46a1970d1eb06c6fa63dcc9eaf2c3f700aa4aafa43ebf49948d8b0118ba649edf9b93b8a47c2667f76760da988e0ab616b16384de5df15685b3fd236ddf8ca9ec9c9f7351e460cb9c79aa92ef3f1f51c6252c51159dd6c2fef78a4d9b47c99b243ed260db25e938bdd5f47227baf87df753d06f86efbc35ae9d52111bea913482e6ac4c7044a5731f694a06015a22feb35a1e517b8b51cfc3dd1b1dfca41962b60e1c02ceca0a377c5769e0739d2c3891ad6c77ea6cc5116665e02229b6462093c3457d2c440b5f3977758529a4ad3dbd94d077ddd1015d75d52679ba433b0eb928a83955c31092a3d27aa589b7d160f9aaa47bb8beeceb5a412d7cc9d46dfc11f387b5115d0a7eef28c055a0bf7bbb2e605ffcd479bd856bb3e3f9add551f5e8ebae8484aa88fa9b6be931d2cbf549b379b9b39e0d61557aa7b632ae1590823e707a8c5147eaa1e642ea8e258b317bc88c24fa86caee98948e2939f14acf304ef33943b35798b3e487c829e3d898585686910db0c32c1b834b41baf28b0c941879dd0cbcfd52517ac92efc732a6ea7682587fa264e24a99ab9be78ced4834e2b1cf40e0ce38d69dacbce20ad20bda57d7d8821e088c6f598222905798528dcce8afa1535b6dce0710394f12dfcda444877cb926fcfa09dc7c9a87c62e3ad243884f965dfa76fcc201ca6c90f247703224d3fbaa346a13c6362b1580f961f165a60749083eb9fcf6c743b15eaa33bc90a10e315be54ebc750957c99ea2a0aca7988a7a9363c8ceee79f3b9918a5fd65bf226cf00225bc9d7f7e54d5f38e33f7b5f916779757c5675fe2b11c45fe7d9621bc3c5abe275ffdf230aef6f297e3b148c56c71647c0a6786b90fde70a4b9b0e669aadaa98f32d9512d14b38a7ebcbc6891a7b3a3f115a3b8513f7e1d31ca5944899493d3d2bb3408efe004da5e23ec551899318f7f7938210e864bc06256e71cd04ad1c42ccc807963c9315cb7385e4aa6b4cfa8f38a530a0737165e9a924effc4c340ab1cb5a77f6937285eee6089c09d2d36739e607b5a8535f90860d1c228422346b5e68cbb7655743dafca5c63bcf365794dd6dd8f4c8847c0fcdca36598f9902da71083786171a3962af9f1228cb2acf1d873cfcc3f4238d6415e8aaa2fed5e30ece5440d47798cc65589235ec3784cdc215318641599cae411d73450ccf67f880bf571dbc61d366a986ffa8609f5e99f7cd6ed80f1a97b90b45f5311433e4e0c77932022038250ce7f03de08b36f32ceaa6224c65d4015fa2dadf66e24c7a10c1e5672c46fc26fe718827c880240da3c64e08b99bb6110f0e3a280363fe3366f0c98389ec6671627aa8b43085e57ebcfd13d5cceacc2c7f951be24a5e6ba643fa3faa8185ff48ff7fda368f3b9b363cfe0eab180994d7aa6ffa9f84a1cc7232fa5de21f16a5c9be8fdb18151faec23e2965d1a34c2a21dca2fac940fe05b64c266ebfe632689e5d69582ada410aa2d08b88e30875d9400922a3544fa1219b51eef8d7d2dded65398b5464c342b2b322e217b490e19a83d9b9757c69f8b7839b9bb73b112ca951ef7ce1148c660c1703433a43027f599fd7418479e573545f05c260f89e41e8bbb055d5bed08e252e5828b8ff4d7dbd6893837e0f39a551e4a432219e22e676f9815d981532fe0d7c6841045c30a83022f21c820042f5df70f39220dae05266ea5da0041558206dd55a509d3d6b82274ef4d10a921fdfc9999097fa826a203aaaf85784219e89a07fba793cb71d647b505175f4145ba901e54aaa26f12c247b68bdfa28a2aa41789b57543c0eb11950437a14a522ec0537798e0912819fb311c10af000621d256afd9b932cdcdb792d5f5986b6b13ba3ee6d15b2b5e2874d4d7dff38705da5c36541fe8020fff4dc74d543f47bde206df84f47d98e1e7b671d904c02abd4074f16b00869c2601b832c8c632129e12f3f2bc434cf9443e8b02865aba34c5a6c34a7a67d191b83cf6ed54b69d1909022c18ce68424a5ee50e7537c8933d99acea081aae1e15ee5dd22133e3b4eb1de90e644dd901e0c90e7b6ab94bf92d1abafa3478eb8764f6c00abf5d97afcb9a59b54fa18d179a66184ab5cbd3cc3b0b07fb00d792c7657feece62fba8a398674fe1fb8607521bd750af9da4eaaed19533b53a0c6258ee40289f9aed4cef110ed12a738ca861eb04cc92fe6a30230dc4704cb501a034dd7105e14a46b91a4f3e20113b9558bd62974783a1bba5d9dd0739612232abcebc4f1fbb53ca975b54497ad136597c05a7801f50dc28c6e6d7b498c36933d81c1d9dcd09b0774824e8a3682599e53b5fcb71523d57b572f4798106f6ac28a0d2361ef37e32f9f3683169a14a641719825d6296030f5bacb5ff0ccc02ca4b1f21b21cda3eb5346e8431d777f6c124d671450e7d0e1a871e27d855fe655f69e3989ce4208c08bee8e6dfd1dc164f13ac1ee375a8aa749879667e3f060e09650a07b348b6542d6175f8885bef825140d165c2580f161c649d2ac312b9b4ccb4b067251be6b1709e58d914211dfdafda4f2c13c051a40cb393268cfc001372e0af47e4b875adcd252cea05f0d2286f642c8e50781d694bc35ae1ad8b15b1d106ad2f587cd0dd925fd145523bbd556838dc5b278ea21a00c37fcccb344455fb5777f21c4844aba9e43397b6979842e9ff0b60b9d6171ec85889a319d04853739ab6f8fb004e500505dcf4c33f9239ee3ab627d0674ff0d71a325e701a363eaca8e9e3e90ef6e6af4351acb5903828b2bd89466f1c5b5c3418733f6832eebe50efb4223ddf3c15a4d54c270f8efb94622ea0517b14413249505ecb101c2b91e7f08050ac65972a2227bc541d5e3d94df8a840ad832c06f6738c9ad6e4217e9d9c2687ae4937bc07755933fbacaf21e92a18974759d240d4138c7db1eee75c3ea8c78a3b0e4fc2f41b46fbd1cc0d36c8d9570ce40412ce04c2df4795dd15be2bb0e3c22bdd5786e044a0a5f11d31b34625f5faad34dfb4619e88e51367f777813199db1fa675323a5517a0cb5b9daf0444a279e08b3208df8ad63ded3f0e9c43312124f869ec3089ab847f7accbd4956a76db4552acaa3c1eb5863fb901af21bc741c40c404b0e9fba24dcce288f348c956b792ce314bcd38acde9432f19546394b17d90d269bce7ee46c4fff12460dbd3255a095838c63cf337f936ee5c9c2c0b955dfea16a02b268b0ecb38af917c6aa6348ab0a315922f5fd35a8364eaeeb17491a050e77e210d5476fd8d4972f21b2191fb79dafe4e833898d417dbb3d9fc46a919ca35b923ec33e56d31ef0acb3f678873e733368fbb3ba7298a1a38f11d8cafc6bd9abe951dcd8b53bc524697201091775ffcf33958d9901533d4a66a53b848f63e3a2931c3fd4c78bb48a768ea07412e4e493f66baf60623d523a6aa6fcf59baf9380a47565350c14b4da996120b641c9f7182149a6a171b5e033b3012ec06d0d13e462e5d906447c7fdb09fc13162fe9f8f2fd66c833631e0d341c4febb0119befa0171382b3229f79b8c077160f6f795027515078219b60fd776efc0ff2780439b1e8bfacf3d81d98e845589d334947bed01ef8519615ba1b80ef9c70c7263b358c64b05daba29cedefb936e9be14ff3b8dacf9bf313529c02dfefad4d31ddfae9082cb8e02d38e8bba0f3131b17a8778d3d49ae2ce9cd12a416806abf9e86610c882cd327df5a35f72c74e18a3ce736dc96cccfd562b7ba748697c874b98d0f01340c52281d820787b6b470744c2ad6d785418472b8968fa9791a94127538940f18ea6b144f7fb005904d683a6b588cf6f0a76b7b9101fe5f1e2b9b51382feffd36a4134dd783aa31b955878dcd06a3752a3862de8f1518167ec5cc81ab28d0997785cde8c5a9db6cdff5c4f7ee8270d124b3617baac9f93306b27401d7d0d935a114ef325bf07d3bee2a4252187d4b4fb7d473a75720d37ea010d3c99105b625681666285a5638ca2f1aae4e360dce75f21952aa878405a35bfe13e13fc2b2428a14f4fd2afc2066fd98a7f0ff0bfb8f844de3416fdb60b1a317fae8e054706afbfb6398cd77b30200ca980d6dfa7d2b2e8ca31c2215d49e0ad9648e6eb6e2fd21a49f139cc441b300f283d37cf14a9d46b32761fd45d4c0a0203a1a8b2089622351b33ddd78093449e63a414c54597c506b5927e2925455dd5120e47f3a48804083bd19272be26394b684aa7c3e11239e40bdfc3f7a68fc16dee4dc8b77c44542a5815d91316dc28e74c737eae84831067c1060ef43913a8c33610282807323f66bd4f4b724caf7e63ae661b27e5c09a8add048dca146f7fb542eebb7c2dc8ebaf8607d8dd0164ceed5257a8a1c0053c01bcb9c80cb81fecd9b7d43447eaa7f1b1156c9fd7c6c2fc9af142566f4e8798d87a6b82e9ef180cb66fb458ded3df47efd626060b89fb32fe2a4da6dcf4f2b44fa75ef2b8c059167b7b6452760726de1e00bfdba0dc30ebe8fe16445689cdc138cc7039b642caa97ffa62703631c71a29bc50ed4505019d5e6ea62a2573e423b574eaf363e7b263ca28fe4ec4f9b07618b7935156ae7d30a702ec9328dd5da2c093b1ddc0e70c518e8ae0c5ade843de8b909c93dccc4de2a8a2360d38e5161c3c39270e5b9aa2b5d6bdc3f888f0ba52b4d2e56e5fd6c01c7352e4216f89b5c8640583c549f4662bd3b79b3eb0f42d3534a8d18cee08da45792ac6019f4b791fe672709ccf5f5541a3ddab1ede7c6e0dafd3d8407a1c157ecae9dfdacabfd8c1acff7d35c791f52ba82a318fb15b5eab89a01c0e075b24b6c90c230cae13d1ba3cc168d1d39069011a9e1d9e26bef92a0e25a26ab9e19d7668f9465593827d2bf180e99968d72a61a708c7984c9fd7c4be956c54c4537f4736feedc48d73b888b281851fc816a103f188492ce8ebcd2d64449e0a230acc224d2cf29f36f03d8b8b7f782393a47afcf4309520ddf0fc22f3df66db470110184e734b2d5d6eaa1463284ecc91fdc470d5f25fa888fa5fb8fcca596b46e4599267e963497ad6f8744f000c364df73ffc0d0776074db91340a83623cd50a2912ccd4483f5ed7cb70a775613177811ee46475626d2b373ca6269f376fe9b1721c8fcf99b577b151072e28f1d16e272b65dc269ea0c1dca28c8fed99f7d7945009a672414f4d4a0f3c552d7136d437afd8bc52d68ae0eb74aacd4147cedd6bce4eb3c47118ac101cc15c62a3623503acf425e10850f636e4c3149ad0a4a06f5606a67a95f05ab5298f5ba0654fe02bbb552aee0d2cb41759222040b35a1172306f2a0f970a01398e5f64bef46a6d5a29fcc717d9ecdce463121f795d871e41956aaa275c6e5c600232ba03ab121a090ecc7062bc7263e36066b196bbf636bdc7ffdd68fb78c808bdca14fc911ef36f3e0e23f63232d9cc44f2f37af2269c4da8d7eb1c15571417692ef5df6b54cfdbf0ee113680b72c45f10f9de1bcc9849c62c0194da18fa9fab02a0a036df319fa84fbddf4bd1eb8d9411b290079450fc5282d0d31787702ffbfcca4fab92a6de32cab5dc7ca999f63bbf7164f5436045d6ab39b15d4bc70e526e93c6ee39efcee21d5f5b7e7ed7fe76887348e2bea6804998e2b1d0edc3381069605c404e8cf98a73582dcbaf46c4cfa36fb55a5e3e164571aa47be1acdf4f40af911bdf15cd045eebcd90da1c4084aa6ffcc7c559e5cae259ee0f93d31248b2538848462493e84cfc9b57fbe736ffcb255e30bab6bdc2a274057d754c7d58306569bf798b24e69ed03fa45869e1841b4c67aae3185c630d32972464e83651030d62a68fb361a13cb2c50ef7cd60cc225d1c1a38d2fa307a8234a5f9ca65313235317cec77531a5653abb4ecd0f56d05d6eb0ce9eb8fc110f711be78e93413c00d1c07dea94516704828c8f244df070cb86a53e09d0f8dbb4758ba98911a305688f27dd48eb1a1ba870690218f88b0220721660ad77e93eacc04c6a8e26eb786dd231d615df8f44cee0a5ade290810494e66e796bcd5c2fc035acec7505271f206e39915c3ed4562bced21b122eebaa3184ed44f22b2465a0fe0cf4021e46720445b259c613250da16e3eeed9962a87778a436e814da2ba536f5b375f2c810c499f4f1e34d5e9e0f83b329dc4694ddd982fa69ab518e01e963ee1f253301b1834ca86c0a8dfbdd8c71646d4cf176a846cfc24546caac625da3c7d741a60ff50d69659cbd9f50c849ae70945bf8d103a5fd7dbe7b27a39022a8649604e46ff7723e855930f4fa69dfef900478cd9efe732df7cf7643318a5a49617d5bd85c2f42e04f4f5d7059d3924c147b9c76b740018490c213acfb472400727e5c41e701e4a490f941ecc67b2cc2c8db190cd50691aa9f1deb24ee084a6a5460ea345cef02a63a10efb4a4e151b073c4373cde2f514edad820226ed8e6cb4f414e99fb969d451d13c80a35317e5adae669c98535ca9fd29efa525db8e28745b921a9fe0a88a5a8e70fa145fcc56a5a6bd608392a42d483320811ec18e8aa51fd8776ee2eb82bc2baec22aa4c496a12de6f625e162fa6ee4939f23b886061fba65e634a1ab605a99861aa869b964a9a68f3d5e34e67d1c56f943bd2c3197ff500c1a87eb9eea0ea6c584a6a7748e04b5ab2741d9f37972abe6268da956ff96efbf2cf2a277430675cbb8639e3d6631b412ce2f35fe83c79848ca738283a6af3298b3ab877ec2b66abc8d7e8b7ecf0ff1425db62d6838b252a935b6cb74b90db6c7d9b40f10ccebaa1402907939006ec3711ac4773e14fa7e00c9a42cffbcd4d287a79c4e90497f81ec95d181c1809564c67b67fce12db76f6c6af587b19a7ce2af0b2b1c5a8c9b7d0e6c8bfaa2bc25024a6ef5677508319ddbb986e15a14861a5e1f3b9d002ebe93c38b3ba9717dd334ba36046f46d213e34da88899bbdfe37d7a642f9ea2c493e1233d9aac24769d4eb04a8028cad91e96b3267e6b7f0bcf44eab756c44fb71967080ecb016115c4d15a077dab18535b3cf804dbce4b79879e32cb8b7a00db88a1b390fd717dc0d58a0d214652f8b71110d320acf55a84b49c6050b3ddd51b3fec8ae5d4bc35ab83437d6d880653c30b686f0a2d191c6b4775195c282b3dfbec5fd23616a4cb3fe224278b1a13edb5dfb0681c998e5d1552a73ed03eaf15a78572ad09c998070626aba98a06facdc6b5fa3356b1d1b57d4a8d8844bb5a4b64594f9d103f2db97ccf225503bb5cab5ce11e385274f1ea17cfd3ad0ea5ee948cb99033e7eba987c0a6d3da32c9e01f8808f7a6bceb67909b9256f4f823f669c75a7564c6ab243c64a0bff38af45c1be7d4f2efbe9e8d4bda0d21bcd8c84a051f31288c3182c9fa8a2c92f9e1895b06a477fae5131c8deca64b936cad376aaafb84c3f244cf7de7989468d3f4b72698762cf7d5415984d20e273ab50f610e4387bf46cc4be1b87ab5b2b326a423e1c82d94f35f737dfde4c16f1cdb2eae5c7b5b7fd9ffd9c6377a9d824ef4f8ba3b488b75cb7adef1981e4a4757a0f7657feac2ae42ace07b6ed49a56b9a43c7b459828f9a2374c73c11de502c05cdb61c312d59f00ad191418948c9dc971f2d5b6393f5029e5dfd0656b986465b9f991859220b8cc33cc57698bd32a21b0f04151f0803013beb042523e9d3acf7176380802dcaa69fad9fd23ba22e6be9c02c04fed2d59da2840323ced0693f8d302c52331b652a0bdc10792739f2349260964c06040dbd3c4c542f5f9f9fa688bb5e1b18a2717ff6037c9f0da317a37291c7c2a1c04f69f83006ad27766fb3cb273a0f6b08c32176ae3bc7fbfc17e8f30c5aea234cc63000905c96a893f74f448f546d55acf74410c31bc83426d43dd1737b44a1a29e91edf04caff2aef9ff409a13385b30ed886a42dcaa51b212ee63586ceef10088764d670188ea4a5af1a45b323b593a46be49d0b353b39bf8ea37860390f97539c387ec5a4f1a8ca69c5dec4262cd48ebba153fc8fc8e0194f76a112a9a8e42eaf07b956875fb068bf5bb36265f631f873e53a3b7801f9c546098c65ed59a5edaba64dff41de20f592b931495a0ffb008e7c5111375c5988d43532a31404ff3c7dad46ff662f45089f93e9d9b98c23a22352c0fdf14203ff7697155c93d85fb79d5de8b1f67d7cd3388f3421853be78cca0c7e413fb68172eafa8a15e14a78438d7b93a5038fc0796dcf8283f5c587ac0bd22811dad9c4933fa4048bfbbb93b50a075802182b6a994d9b3ee19f791a1ff6fc7485df53994eac5dccacefb610b94818f5d5b1087f933d09e0500a4b0c54b30d73ea70da2889a399a3cffdafe90d8687a487e21445a1da0938a24f70047ac60b739c59963b270d10e48de5c331876fd6ba63c8909482068098509bfad1eecb0436cf371faedfb96df1c8690799dcacc0061fca21a95afc62761077be59a1b933868613dce7ab1e9f7452aef9811b68689165814202560aad173c921c8840bc0c7e2b5dc794369d7a0c78f0a1ab91f4a138b9f5f6b086cb2095acf37d7e2d4cb88f086a4a56ee004fbca908b110c6e017df054462aa4331f520fec35e26752ca3722e267fe8934269d8a9980dceb0fcf2b54adfbb387b552eaa8c83fa9e3a203f4e7c95213886b07592a2dfca75df589300114275aaa19e10bbe5e2ab0b7a9b8f0e4af942459ed2469a26103de39144af0edaab667102a3189a77fd2fb678df7c969feda2c1e06d488ec5eccd169e604a25cbf813741d5ac6feb4ec3b3dc3980ef1f919bafd466fbb82fe24c455ee73933ae5bbb8c8bac818f5bc32ce2ceddb8d70c3b2f16e1a05bb3bdc018a26219af6507b93497d066f10aa8282acc276cb2ec773ebca50cae674e535b90ff51813d38d0c66f4d715c324f699e589ccf1d3d65ead4f057636bad53332f5f50fca8adec45a68106050ee018ef99bd5985eb0c7c74aa8d20dd18ce8a61494a513b1aa43c5030c57db39cfb657460fd64df15eeb69f60c069e5d806fb79ca4e1350ea9d8f8a6d5daa674e7c77b28ee1f5809e0930fa0a4ed1a23349a55e67103ba32dfd43fa1d8814940d70442f942f53e6ce3913f3b28d705897e3383cec974f6b7a255d3b31c092ece7ab000e34cfbee6af6ec1d4d3323959d2b98434b461b20d71a8280552b0984c8f0c999a0741503091224c05e0e730cd990da75333bc1a483182acc859f581fcda464743f964378f86de3a5abbb895f705d73d536d76ae51df65f0d2d5b082ab43489f35c89021c7e6cecc383e4d35c411ad19157cde112c261a74cd88eb27bf6727b85e88f6ba22cd672870b6f380211d3e35ad0d10094eb2e564afeac7910c8aa45220215b86a298192b37627b28146e58f348e39284aab40b6432a584d1aa113a1fa7cf1c85e16c15cb7bf8de4580ab82e53f534933d86158f0a5174f155106bd8570a289695baf213dbe21bf635b62249d20c7aef3c673bdc48cd3e58b9e988d9038fc854dbd8d7e5006f8ace859813e499a3b66be01a6febdc7200b2abd9757dd3a1583274f74dab21d9044b131ddb322bac318e4f43c6e193278c7bb0bfc62b56b7ac5775198560e1e6b17e33aae21e91103a4b8117ab91e7b0b7cebde5f74af108afbe75f709b338e0367428f1148f202b59805f229c586b93ac528f47f3d7deaf823d78637fdc1bd44af94c785028e972709dece159a31ad1c2d99e4be5dc6f34cc40bbf6cb0ffca1001da1d6ed0c00abaa7adb79161fde3fcad7cc1a2f23293626f06f0520ed4c2ba2c670a96ed965c64359df7f271d0fed804b00656b80701e99bae6e71e915978bbc2a69a7fa91172f40a6000f6b2824e4d3363b26baf58ae4ca532b13f29f3b41bfa6d3b235f3b9b831f004c862c0450595f7ea0793ff522dfe3c67c82add168b626923ab42e40bb1ad50207c21203f575c13200c3e9620ed7e40d7e26cbf168e5d0e00ea83c0095f400995916e26fba86a8325f2764fdd26f41d8efafc5127632b13f3ab0201f01c5d1c28ef6ce0befa8fe62795aad76029c994e6692f5a7c961508bb8fe78c64d6acd31a85074070055ea83c7977014220e470ead01cb81ba90ee87e198370af8eac5198c36d832fb22aec7242be147d85ac07619066795a8f5ca11132e63c73db9b48af1fa05fe2a1e2e5d43c42bfe1a961dfc4530bd08a311319ada60a925b64bb3019900c4060a4ab8aabd4d948652ec17add814b5fedec5e336ba58b95c669db9721163b2dc74257c3e91c2feda78dfd829fcc9d9014119faa4a42ee57843b3a64f9308a2c2135a58a5f4b107d369204ca42a5b3e24c6450bfbcf7796a65c0b224a364fb2aeaec55a1383b50a953db15df32c48d64499ec70a9020a12778f03ac86ebb0fc5360a0dc255ea36995e5ca92f9ca4a0ce47ecbbfe8b7bf96f825ab256ac41b47d34e5037f42f981ae3edda5eedc0409ec1b6da1db37aec4dd7ba00085d6893e367c078c33e530f598967ae73b0e67d04516b7d32717c108b18af6833ef72879f937b161b389f87a1be32216462f954142865290f11ca038f64ba7cf7d7136c06b6d53cea192dfd424141acc6039184d2aac3bc165369a6ca9fd90ba0eadd02d72d6159b9af018dc1da1770c4989c0fdc64b63978594e52ad877a3bd135a98d6e29152d39679f8518f93a70912971ffd88b42ef504cc17c003c066a268233316509e1757375e7a408185e93b74eb0e286c00f5a89bf9ae27466871813cb0caeb4081a93ddf45bcea351bd0c7789e2633097f847753d88a84fbd9f4107dc68a6668b5fc07c80d804d2212c434bb70485f87be9cf69c1e6e29f2212e43ed382422ae7a3ca379c2ac2f46998073bbbd163e606872373586823163d2f734010d4dd3196b483b502ecac245499534fa1a778627342e41269ad4a83515376cd9ed3fe4f3c732ddf94289d3e6bce68ed97417f9c8866e5b6cc5d2444e176c66f7923721adcac0e915b73a8ad37c2af67bdfe454eef0c0280a24d1aced8b2977853af5745f65ee57606c53bbc4ab6e811b1f925b7fa32b9195478a525f2591f64bb83fb5f9c66ac71296f0c775a29081932018e66d1da77c877797da7a86e0bfade35e7f68a7176365224d0e0475c5671638310940caa05dd8f4fa14ba5ee3ff45609e244ed88b93599d4dea9b2d13fc4901dc490a05778bb36f9785e5187a5301d6d3a61bd79081389ef6459562d8e34329dde1cbf7016d4b2db67c99c21d36ccaecfc49c25a6686fd4f3b961b0417820403a145f1b0673185382bf259954c03059ed1649fe80b9b3f3113eee89d4ec2dedbe916fb0c3e20c6c8cc089f63eb67de0893bec91830c9912c2695ac4e7c5e58579ed28666870878348688f2f0be650648513775c4ae4028a9d44273d269f2e153d218f879ba90e218e6d465282d69e9ac60e0c4724401c07dba63ffc1142a0552322b374f42f1f071b3e629a7cc59110b588983d94febe4cdc297c3d7b0cc4fe048535e17fc396d60e773cdf67f6d94fbf348d96d00f7514a0a884df0ca78b0a0133c94d3d1d869f6bed7d35c3504967d59a872b43787d9a4f5031d0c00b7845fc2da876a39973f79b46b07ca84ed496eda3fe490c237fa3b240cd3067dc2a911c652cfd19b35864ea203a973f3b52087f3644b37d84d335b7bcdc1623095cbe4d99fe667c4ce4ca08cc879945c1968f08e36dbb9c0c93d3f0ea4800ecc66dc8be518da99ccbcb15899162538bc9be658ba0f636a569cdbd1426134c0fd6188a61e0bddcbf03357b658db83478a9cab40b992b4f859a97ac7dddf14aab18ebb76e76095c1cf0829c781657b585a1df911106b68561d1d972a90579c53379920ae0487891613e0f3c03b75915c0abcab52c1dd4270d260738ba18b027ef202e08f6c42ce22ea99a6b29b54f824a9a9edc6d0c13329618294df6a637dc7afe1fc9b4d470b898227ee5732b5a6bd9858736e7069c2db9e3e825477760c3459c186a5f337773a7cee6b94db1c414378c2dbd356166e0699f80a9bb37d61c1347579a05d24219d7cda6988693da49c0de4092f4bde0c14d33bee205bebfac7b8458daf34b66039bd764c7d49cfa61e82009c5444ae3053f198211fad7765f6ad96c8c3d6b8d63d5a434434e6e2bacb31612fe4b0afdb7ceef634316ac39319ee0f1ed39bd0269602ae2a3f067b2ba3ba34f99b2356ed1bddc66e4f5a977a92bb1276d0437a30487a379161a216ff62e1753a826a4616c82bfe72bda0a9ccbfa94dc94fbe9f1c48a6cd62b1171fd574ecf6b2fd8493737c8332fe52be277f9450f69f443c83d0820ad42477d07e022ef22cdb1fec3f112ed6351d6f2bdade51d33b6ff43790bcff0d27130ea9435057ca213ca50f5185884ab45f35ed7c05ee44948e0253e35cd17dc5fab4783ba0cf2a5c31d8bb2a395d509609e40d3a96dd3c9879558e672f4a571dfff693e1978622b9b73f17ebabd586496728f1213fd759cc28f10d43b971fd2e009890ccb897405d115c758659c3e993b77e4929e002ab59f26c510356fff8bbbc2c2760b28df599bf2d6957624e8611a28fe5ed7dda5f7fee8b0719d462f0805339441a043f26f971eebcf44976d051a70408fb0aa6f6e7fc951cc69c092e4bd6364f577b50ecfec7558e105cc19dbd68f2edab3af62d12598ec3a03bf7c1ee034f9f660812aad451a70f1dce3e89cd8ecf4b4417e2e5cdd0e0671d935340d98f601305b324eadf6740e91ed870f8a50f1df0385d5d7f4ccf3ed1f3bc6792cb2418a47465318eeef350fe7056774598977e15afc8235a2ba792e6b2664fab607d3896aeedc3a685181d3ecb10831fc72b711ceba657252f7131d6d0364dd10f41c56a4b9d0f99cbc1ec0bac9331530f44f2952c2bd90f18c6850cb7abe39021dd92ec7771db094bd06bfe4cc1622e2ebd006ad19fbe1cfa8e8245bda0b9bc11724b0e4165a4b2de51bbde69c1810610c1e2cf67f528d587cdc37d6b9b485ceb49361563ed8cdb86e362ca168b8c95ffa1d40a7df770f180e5dec9ed119ea9bfc472856120fcaeb8aea7fe5da2bebc7596c8c3ce300b812b5cbea943501b40a272ed226a264ed1baa9ab112de7a495cb2307e654d1c2b6b38d49df9656b3fb4178c8fccc2ea74ce5f78bfc186b06a2b56cf28c5f67cdf58cdebb464e80edb042972735558baaf96b90f2982f75809d2b3e4c2429391a16e6d8ca1c85a1d4d2650e0f6b14f36844423da75a64fec938dbede24eaa0640f313f211c8732a14ebae342751dcba5ee62321fac20f7f6ac1e56934d5c22ca1dfd0ab6a09599b70b658f6aae1643437906f31adb6ed9c7aa7bd865dfcf06d3943ef600edb11b26a3273e4a48e89d14c8eb8ffa9497612d185347e99fa161d88ef6fe4a84a61550ac8a059549c17f9e10e66fc16a364952355eab6ffa74d3d2fc91f1102e9f185caf985bcd9e5d55cb9a9d229279988c1b73839fa27be4c61c2010d3f3768db36da7a82176963edb2c449eb627dbe81581f8c82d1456c262301379f9b42a9d543486f84ddd6773231501b65285336df13a201768b2e1e8536c40a44c87deb834b4b1173e67a8f15be255a32c0327d21cc5f9ca662b159bd06ce74e69f4681e7f1a7f21fc58d57dd73ed91337e9de87432cc518979a117577109b82a0f1650327a2bdc700dfcf231b05bdf220b9862efa4d7c3e834b97ecebd2c44b0d86b3491d0b2d2d3c75593ff2ed41078022d0124b3747867ef98e6152c11ec03a90f543d8e902906fe49c14cb2c3be3405d72baa5140619dfb67ebe0def385514cf138a5f2165c421c0a4f8dda49421b64fa48083b6cba0af9117a960fbf7861a4fb7dd4d2ef47eb8afe009e16fcbf4e076a44253065dbb021faa42d4ea10ce15c2d01e7b853d6f80d4a6784a057005cd00321c7ee7b63c5251ae78865191e6c1141350402d482aae4dac5f636faaa019ea143497e8854194613de5c18d58662bcb75ab87e40ae5a132902cada1b2360a39939808d9ad11f01d943f819c9aa3b949b2c61a9ff3fef75a52985b325629b8a1fd2bcfcfc4d23ca4965cc0e35eeb1e36cac7e0da615c30f3d52fe56e77ea3ff821a11770950ab4694abfbc280008a9887ea9fe552a91f62b616cec018b6a03d7d687ce409ef1817459b987caae17acbbd78f0bfa17db5449245c03271bd75bc8746975bc93951dd7911b8c43eeb201c4a02ccb6463ec5bf6acda0bb746a9541458f5ce56d9cb92d06476e9e61663d622e7332053408609096e59362e3d044a0c653d34160cf4277069eac6c8d3683f6e80e0285752e377d14338e12ac563844f7e02a586798a093eda88ffc2a3d252238288b7ae32f29fa6e6addacab89a2b0d0d11e5bca58ae5351544ca915be3bb71c74199c3ec5f38a27740c7ba84212bb97fad38d8c4a1a0531c703f16a1c805f670965cdb81727b64facdaec1aab4e102c61092f142318f0d14d3dde672a1160560498ac066b3dd47d924f2104043b61dd6f441af3e21dc5ac94571789ed49440bc2a82bb036affa35e2c2ba7702dec9428317dc40a83075029e4fc5347b730a971fc6d0536e6629e3a9db9a2f7d250f53967497cad03a7eec5cd8a0066830c49ae66fcfbcd9ab18e014afe76a6719c900cbfa20f612ed28053760382469ebcdd65fcd5c00f089a2bacf78695e553a07fa4b3ecee157fe4bb2e866e90072f9a9ecf4ffe9b3476908c15c6ac422b4f9cd18befff56eb447ff1d44a3ff51c056259e516936ce87ffc8b7e2867fb879255884f396782bb54f5c867b78ececdce59a4e75f9bafcc6c9d3c0b6e55081ac5c899ff6f9d878f8b8a562df564d2b69f75d2d9d5d828f55b2ff443da40989b7491b1b2975e7d252131e91184740e46c737ab0115cd056b3e9be4934d9902d1d360d500f65dce70caae921febe80a41f744a56b0f6567aba13b5ccb7daea01dc91d61873ef3bd17ac53410bf92aa93fbae6876581fc9a264a008d9ebea702ed4c880867cf90fff51cad3dab94bc912b3af6e40376abefc09d7a29265a7c234a187aadc6fd14eb9738de01781d8e86c456e9d19cdb0f0152de1c3e5f796ea54ba31ee34e724848c14188ab125c6f791f0cfca34b2805852834366ca89cca0e9f73bce7aa951be4e9d46cbcb9027ed82329b0386f0efc258388751345a4ed7408bbe9b70c0d7522bbea3379d4bdb31c0b561d812b41e4b71730fd05df68d301da45469faa46a38793aafff86ed4f548e86acb9be748da218f65511a02e4af4680b914543c16c3c4060db8e3b45848b21d1611c6cd670bab0594ab4d9de8545cf8224d3c8061ad2a594e38f078e8061ce1d230d34c8e81f58a717c30866b666852d502f4b7dc3d870831c86eb1fd44edc02faea4995fc9d5a4e92606f45b9f3c3498378e25d7045941108b8ff9ceb7061a6595542946a462cad73d58030ca96b592676529417b6f566c2ce9f0ec0cb8aa33baf5f3998380cea91cebc3329475d0dfccdead2c8e6b78f4b642c5162c7bbe142db2246cc7146e4428236e944daa1b3750a0f2e76ec8806606cd24a051eeeb2570a6c95bd82560d15a0e4edec7a033f3e3fbbff17ef23c9b6418b22d7536fc37a93b4ac00bc1fad2c3ab0eb532f99bd0d04e91d30803f0b2c6b6b2795152c19f7dcd7d747286081720f43f289fd6ec8b7f99366f64863b3b3bf1f4bcc65d28cd893bea4d7a0a9392eecdbf844dc2b138a728b3a95a18fdb1b26efa6a9012747b2eb83670b4c88fb7093835339c47ce4fa573400762305529f9aaaf05a5f474ab5a00fb7e9b7b3de4f7bbc410264f294a7a7e79f9d886a1b4864c008ffe79be816b6fcefc802dc70eee506619a386d10a3210b05196a47ec21a49a6f264f5049c72aeaae03c4a03159217a38640c2a5b14025ba479af4ab03ca88ccde32942e9771e0057bda6831630f842aec21eff0a25e01cf061c11b057facd56b6c277817f2208992b6e83407219d0e8e417660c63f0c1de221d185bf48f3aab8488d5e77bda5fcc9312f6c61329b48094e1f50ce9e07697863c7a463e55fcec514d9378116d6bcace7639c74dd9499337f5975722aefb233e7ab5badcefcf1c8d0a96a00353b17ad0b8c3505f9db43856ef53399a7f32a975098c40abf170c9dc1529893e2facc8560cbd3ce732cd25a2065c33c363965ae02887a1e94ddca40e1b9b12f61a084ad5c05affade130c72fc40f3e81fb893860c97954001a08954df63929ba1ab0ce65ecedaa9c8cf4a7156438140f6f8f4ae2582f2f9112f859fb1cf03f2c96043b2f29e6a72e6ac186186fca27901c6d9bdba79e6897cf08f8bb4836d250c92cdd8247b5adc0f317c2c91c1abddfe2b0dcb099ad062c49e31a75b6ee077cc5d83e4e77f30e3089a6f23619785492f64bbf64e9a12ab2cdaf125727c9eff171b9fa48808a87a1c7bcc7a8e1c0aaeb5812ddf0085dabe7af58759eb86b9296bee47ac325e5b03878362c9b7b3269345fcd02a1d8bcfaa88a8cd4043fae635c8c006d384234dd8b0b7078c6a701d9121720b02854424b1a7929df66ed92fb71d9311b435ee66c638a72fa49b8822d6693b4c9269efc8cbd2b6393f5dfeb615fd671e2ec8c07e8dce69fed5af4c0ca3baa8a68dc8807822b15b71ff06ba690ca13d9ce54f563961dd6cdb4614e8c9ce1a0701a6f897239468f980c20f36112c44d2c5be45722b6c065c3f04676cdb413ac38d1946a7cc35401f9235f639e557c72cff676ca6f04a6baed77e2fe913790046d5219fe340ca127bd4aad4357346a82354ccc4408a8bc8a2210a279284076b64107f50cd394e916c6499b1b46604485cbba392533d3460b44d5f11368e13bc7cf4fad1635b7155ce961960988271817cf6e27009533eb4d293192588bcd4f89a5bd9a2563314c4decc6bf0c0e4c08f88854376b7921611e61f3904fe3c19b83e646b36c5d5cebf72a670b00180f944a728c7695f091be86a65a2444479c3409cbd7ff05ff46a2bdc432dbc85927890c6d8300794b624fa2df89d888b9b48f872d6ec31fc54673c2e4c4e1e06c16c55daf48553f102f75173ff562730893221d38d0b75ed5c769dc997a18073695991af9e92019b78d30e12f85c657e2e9ee96cd6377ab5fe00615ab2976cf5b196d28de765e67212e7fe4ec1253d95ccbec942765484ddb79ec3b1e2c61b61d3d0fe207ad27df99ad80980df88b7a9585732d9ad46a50a759fbe250a69d88920856965e4f07e0a003f6bc27641d42ce2448b3d1b751a9f22856a6078deed0c568a3a90819a80e73429bd4dbf70029663f1817e9e4fb97a688831c9c327297bd086242e49f0ad423895d22d9c1a29d457e0a76f5ec66bac8f11d2f1d16ae90161746bf275d38a3b18fa616d8ca73fa7ec2861d24dcebc26d94031b17e71c0f59a253bf00b6cc87f5abe7ffb65627664b0f1223ebae174c99c67fdd5bb2ba3e09ebc4d38c3a5290203c0e8d528fceee627f901627f7b4652608d209b9629aaf59930e214c1ae77f98fcf1c42c00a05afcf129179729d8a06b6ed02484b22620c6bcd025ed77a8619a630491fb7822672a9a10f0f7b4e0d281b749da6726fac8520b31ba0b63f4938d41c039bbb423c9d9d21e8649715ea863e465c39608f2fbc4c56e10e9dfaf6d0c93fd2d24d89a28ba69e7e20bc8178c20f39d15afba557e280fc867e91e93e17983b8b2c1c7cb174f13b4f1018a1480bb85836b1b8f5e66f984245dd260f8d8c19237a6f5fa2d551dfac5c27c68c2f782561c09fdc6a1681e19830e719b35e4968005de8ff69383f16bcee0761db63402248c19fda1346c998c05f0ed8e1a66c5f4f2e226c9ff818a2c9a0b73c2aaa6c09b29aab78a23dfba15362d123e742638081bffdd0f9f2567943c056449a91d10a7b802559ecfcc8df3c07fa97d97ef9387a2332d28f1a699930fbf49a52c06498300be4b06b1cdd103a737ec00faa687313e97ff95e611654ab5edd27f94f3f07969a4e3abfbd6fa16287fedca2bbd28d992521d2c530a05561a5f3273e3adfa62188b3e9280c59739b971726f206de524b4f400d0872ac6112d6fcb651d579917d2942820e4dc3382171089c22006351dfe77f1bd12638c31632ed046760714009a352ee7a80de9f03b15ffa9a105efdfdf6dc5eaa9114f2d573959439a03f80578ae5289a913738a56aae69857b9758c354767783eeb0fe4e5d4972858b67b7ae588599411795ac3f1e79ed5152b37d3fc4023532bb32eb919659ca8c07409488adf3fe64a47ba65bffe05931799b4cf8ddff65ee8f1e3745dc7aa893b4a91d14614c689ea8bb725b8bbfd19ebb75a366cae314d4871389237e74f262ca01d3b5668847ade0aa48f06f2e6bd2f0970375ccdbc263395b90782db0e1c804e4ff817f8a5bf256ebe7a4c1b59d4b302c3e079ce1d6ff3e50eea71b855814a08da8c2bc1f0bf5f3e11a52829a8a4e1677c86f9031c7714fdd35a56858719d65f37b79d29dcddf9e3e8ea87707056218f2a3f69a6b7a65e696d57be1ec8e3cc8dc08d6390969ffed3758ac510a7dd1e9ab5a5911e9fcea7c310fc80e7c06cd10960bc123ed2046675c7c34219f952af0a06c494811eef65156f53d937235b29a0b0a553b4f6cca501bb36c1e443bc2c7fdaeeafdb6f8e0c218c71fdae9754f20609c5f38696c471167be54bfcf852ed87d8a5494c840e4338ee6c81539ee8f1750b0e34112299920139f401e838dcaf857ba151cddefa3884a16258e37a95e1ef4cd9820028b4388cf1056b092a035256b29ae2e68f1a02cc39f393f0abe2c77b4e467415827ebf3e3cc134c9ff3d3419dcf11999e7ec4abda8299c7968f70957f6fef871033db510c36c77fd9fc4af09dfd2ad65551dada16d5efa6f55423ba95cf04f14f608203193a1438c92605747f59535968341490430578cc7d2d41a07b952c05b3faf19d346873b6f36cb4a6d7eadda8682f84eb83ce857543fc4c39e60f211b08535f3af174afd7d9c1cafc5af98e48adbaa42f1444fe5b2428c879b1e0516a1f6ea6567fa767aa08d3fe99232d1e74ff3fcf293e85da34bb26c035348861ed9af5c345b0f5905536ddca751654b9a976abc52a4257a87ed469400d83cfa614e89c5930a6e6f14ea5c7ef8f186c80044bf72b8f361909a03ee0d86874baaa48cd872fa553aea6e147abef3406160767a86c08d81f4433560fbc20867732ad3c35c3adb92c569e045e3f92529e61d975ccca4a53c3ef7073b8992e9490eb2111228c63baab311d81876262dcd3f6ef61f9a43f54f6a29ded857421e00b1d2d46f2f3836b8b4f3a69841c2e4037fd3d83070f1cfc6b0cab3c5f0e9a11ba872c7e616c62d9d81262de1d028bea69c626c39f1f7a92431f2209e6913e77c7eb2b10efe8fbb83ea1d327f1d94edbcd2c02d768e6d36dd974992a4c3f356380806e6a948e6b582c5e221917be134ae3cb9f4ab133096c9cc33ff67ae5ae979438eb44f55d761fba3cb6c8e1bbb95a06b4bd5a60f6e0fae9b055dd65c259c3ab9dcda373df01a06d4c4a962a20e4e17eff919f37047fb03242b25ba226eb0d5dd6f2a9d19b96363f876f81ea337a3914bb4387afd7f473e9b73e369fe19eb4dbf96e3b4b17e33a839107d0162a272597e870a0f82dad35ffaa7709150daeb6ea2c067051183bc098cecc04fc64d9c613fea8b4eb76ff37eddbef278a47dd91e923b6d5513e13e67fe7c725910644a39d28f1b2f2b7a2e78f40cbc803cfef0e0c8e2c83335086b8b9a2d9527df45eb6e7c5426a34da3244548446863e362f1e0f9e4afa7335d2a013b735acc915e4971afc09148d5bb0d8795c2c2c08a0e9c3fc5ca8da0d40d9654015e4887995d4af9a13a6ae1d0100446bc85fd69485ee14d1b30f649348a1bc60fe40fd8262f17ab03aed277c7969516f94565fe90d13431221ffc82621d468dd1f79b1e1fa43df44a7a857ced318a1343b991eb5e5b1b9addf2a513a0f41ed34d71308becc9490239f13ca59509ce0f99046f73458274aacdcf74b424f59cc9eb26694e21df38475cb5e5a52566b9354798fb6f92253688f3900d3c220b358a63d1de1f976357965602f9df1495c6bd8463ac2ab1f1d776941945c637c88151f2bb7864e056f85200e1d1b21952c31214a20172668ed2403a7351ef26037a714f8099207437dc1a464365b4174f93c0184ae97820a30d89f9a1b3f8197c2539835bb3a1b7b7ff90f507abdd7ffca7ed66467aaf1bbd62b33c6b0da07ea50138ec1c6e9716b567260975d252d7b041748015f28773ad77b198712d3300ba930db58fc8ff35c2bbed9d349742727f67eee2ac19be636a981a5cc957341d9bd799817804c7986e9a07f2b1ad4e7b74f41a8694bceb8b1cc0015db3ee341391d002aae4963dd74be045935a0d1f712a2429de8cda794ae3e83bed24867d18280695e4ca483a37f9efe6cd220470f2be9993208ae5ca50307268a43a375505840d0f785af5ef306c0e2ab72d416bda5fff8706c67ec17d3af75074570974ad2da3340bedf8ddf541f69363166b57c7625a59f0d05f059eec35ab283861b4a1872798bfa7bc93281fae1b46f798402c27eff1507abb8f3fb54163974f1987fdc4dfcc8551e6f3da4547ab01c20fdc82b929d859e0ebe17ba774ed5656d41e7b254ae86b139585dfa7590209d65aa2827cff13e44f75c4121c62a0a7def03d6e797c807ab8e003a5767189e65c4f384040384321bc5e57c7bdd8059b81d7f184dc80b514db6fcee6c7910efabadb7573ae3b9b0ede8fa32bede10c200d1c30d70bc904c739dc09ef8c005dc3d05b625d9882f2a52673f9195eed118f09ae767ceee28674f00b627db91a88176a5caa530ed9f72295b55ea99b54e8f673a677ceafc4e4918f6a2f5810971907fdaf7a46b725d488e722ca718e211f94829594e9328a78d6c646029c985532c88e340714f5c5a22c46da0a3b3a522a2a51070bc4fd80f979987e090ad2a855e5f7754d55a52c186b1a26710db3391c87d4fcd7c9f1642e8936f8529ba5e504bec3c07ef37e21d6cf87a5134cf46130bbc79a3d0af10029f197ec7261a4df99d52519e6ad3fa1467cdf4d4a6689ab05e70d3a8193599dff429ec2bb79d65b2dc2dc5e9ec726fada64420efdd5e717f5d6ed859bb55a686e7b6468b01cddaa096321d2fb6d3792801eaa55129261071005bb70bf2f5d39f6a38eba7145a23f19db0d2e3c7b1356a931f3de174c7402e16e6d3ce893fdc40c5928e14c3df7bfbbfe5d037171722f2b4ec33846c45ce03096442219ff324edfc93b76aa5e06178adccf96f9679a463429dec40db3b0bdfc53c4f71d3ef3126702642d1bc6618c50418a0101ffe859e80cf5bac5f674c5ad6acf96f9f532d8c0239ded26f792738b0550fd8862d6f671a558aa8cfac6bd9ff257133addd678e7c478e84dbdcdb850acb0189690873a0fa991873e50844b6f934a029646cd0ab00602cfcb232c0347b76288571ad8511051ab603108a397d0c329fda10087f43b87ce11627a22c227dc7a83729b5fdc0efcca9ba8017af39ac2a3c7b52802df5190baf8f90a1b416410a9a4f9ffd17dcbe554b5fd0518fd25f627c4fb871ba916b84e765d659b56a5e388aca67df742fa5318a6ed54ac676878113ddb87ba69b610db393ca60ccba43dcfacec3ac972f4b1868b9852bc519d408eeed6c8a9957fe2c8d14f7345eac59f9dd56faea6991be3d7953fd1f010082e8aa62b85adb6c12cdc63b95fa11c209771caa2bedb6728c2c68d1040b745ba82a1ad5cacadc1501e1005ba97651401b6115a92957ae12c87c72d7b0931af82f78c40a221caee0a941b4b87c2acc21186c17e71e96651a00c3e9f7f41875f842e06437780786ff9987add6efbef61bac90e7940e8c527564b0b2e143f80aa247b2690f48663e29e7ee8b085fa486b32f3d3d3b7782d4b99e83c8de965de239b86a73aad040d609569a425a13e9f760d1904845a2f7a8211f98b7a276840af169abdb35c342ef42aedd98c679cd08c50e50265b6a017412e0172169dfea13e114f82b7704f44efc5d91aabd9a8a3ded6fc66d8c82cf4036e2913d641a7892182f78a11e2c965f04cfd367fb8b145ba8b695a54a884ef823e37d537be602a1b76c4fb1e9ab32b0800f0714aed65ff0eaf386cc336a0ceb97108441598af35c1c77368095c838712eb04bc6ec0bd6c84335ced0aced454f3cbab5f9caa9f7651faddd6aa1ce05fb32fa33eb7d01337960bcd5184c5d74ba0144c2006ef8de6160fe4b7ce12cd5467cdeecc2ed70f9d9a1f291fc13aac9aa07db99f1ae23c179a233dcfae05ee171b140a4def4f20a82c08a93487d89c8ff14afddf8178e7eda3836b3db14d1f13db37f86a72e91b455818289bd515a8d7ca0b2f358efb5863583288a48de282d92ac5d47d81f68aef479f6a89056da6b49692392e5256190407a616f215d9acafab2a9cc028d132246e5f97ceac6f63c749f5d1d8b95e898324c9db17712362821f74c3b0821dfc8f687e4f4669e41176b9cbb40c58f3c114b09f580135358df5b859d59a163f597f5a4c82395b3d533832b84c126bc7c984a606ff1ee89a4ab1e9618f4daff063ef40103087da2b370756229a9d4463d05f56a3cf3b74a365c836ee6b3915a24ebebfb16de1687e138db095a8a075fd3c7958aee845034f291c9d0c9a0fb78c37895ab48f6cc87d799b895a7d28f0543e1775442dc51a320c1d2fc5c5a1e372c0df119a7c0003003f5edadc2d04c2ba8c36c8e47828434bcc7a540beee58cec4c2c38478c7879a6b0bc5469055b31f3572493bfd6767171e6dea180e17d6abf8b010b33a9c296cc0186a49999c504f202068b7b2c8ad30f24a71e1608c1e97b3f1a659a94f239e5d526dcc96763e521b5f26e5bf47bd0c9df2ab15061a8628abe3928f7ce9a6180e6642dc1c87b14a2da76369661732a27d9d2f21470cba8ff0f6a752d178551d9783c1d3a5c46c930aa305f8ed1e59e4b45937c0ff9c3aaa84c6fe1b6ec2cb815613a74480504bbe433575b04d06b6255d7020f0b109d969e81e7084554613ba7d7b1370612abbe2e59b208af4c57f4a5bb5ee6ff7103f8be3d61ef958522eb3b33c094f9e393d3c6671f7d082d91fcb338cc5d072af689cfb0cea7f9d1b917d273ef22a4da4e718f38aefb1867cb5868db07116a21623535571fb8b4465a4c75d581ac6d172e21784dd82d78d6892654c3cdfe734029533fac03de2aa0e4428430d3114960cedb743a42d161e64bfcb6df8a24fc8c2b386bc7cde8defff41394de3cb82f130d8352cfcf028679274db10c16f0c2a8fcba03333d3e4b44fe181b408e0d180ad0abbf109d17dbfdba28754a8a17185effc778a6a519c4d295b3111bb4c7c7039fcdb938859123ef76b76f58eb6d71b60b88a1a5454edc7ee5da9e46e50b07b8bbc66305015600396a4b3d51ccf9c6a9b49160df91bc9884e87d8d9d90fd8a1f66b81f1fd165903f15a33d85e34b5e0554a9d7c7ca91d6988ee64c6d112b2d497bf183167717462824a24bad2cecb85972abed064462a87ea9aa6b669c5f92065829e2bebc0cab7036712d454acf2344aad594e9bfde33da208728ed5f79f133d1118dc07a042c6e257d9ec367ee34c056a0916f61c6af459a8b208645e935d6bdd7cdbcf31cd7e3ef76688c21dd0f7994de60aaeb68ab7c060d51f4e1119f8f5ee645d0099b25d26d34d5c8c01c36c65179f5b172457cf04070329320cb54b6c5b07a47f81ee7446ae27d449c98fccf8d9dea75080c8c27eeb2a2cd0afa21be0d38885fd969cb56200c8cf4cb7537c387d03fc6128747b464cdd42043fdd3726179adc4809754a04733e056531861faf3d241d7241507b30def5070b64b8377b7d66fead1059158466a9b0a9429993722a68df4d328856bd4b1662d3aa08bf2e6fd28f5b63efa12d6ad87b99162a8fa3a6ac807a2461e3d9aff0328000dc0f06ea09545cbf501f8ec7bec71181c1c642ea7b4171892ed2ea1a62b5433bc2ea9c005fce2d67c43223f8b5c1d97924b9d08153b66f92569f82115d946d94a5ff295678d15c9e8cb5852a90eee0983485efcb3a8b7db766114d0ea404dc263371b2a6cf55da2ec3afdcc27a15dc9b606b087ba9b3e53338b52ffb536bff71d32ce63e8031ece44522ddd4b0b49ee5a4dcc81abe406686240a5bbb3e5b47da32199580658bb611b371dbacfd696afd1b392582c457c7f149500ca215f31e285a5deb6089235c0b76847b490ff9700b1fa071630c035ffddf2a0cf763e69509574269e9e2ca9caae3e55cdd98d9f05ff6730bc10fd744f59b888a7959bb728b7471d9b864a4aacb6680b84f4577a7eb19730073e9a59d672584d4d76407b2a303915e7f5b09a8d0bcc045b8798dcfc401891aa61bbb74a69a2e85379eb465a9b3810f841c2be11f4234e5e9e74885a486b8b959a6590d4b25763eb0019a7eda7abe7f1f04cc5d9f4ef47ee4f018356bd2c1efdf6d7674b09e9aabcf79f049d50ea1ff40c4a9d83ea2703b5fd75aad99e0656360f1e85f7444e28a16ba6e531fed8c56e60273836de16abd45c24886d68e699b57518c15fa7c80c078e915ec9ff34237a948623fa221354c348fd6d66b3dba7315a60a2ae9abe000df1cf9cc2289dfb4313fd81bd58585edff746698c6ff55a93da64c64ad16c774a7a1892cd855458dbc3f8ffd03eb70462d767faefa5cd99b469dc7f7f5d8f9d520183224d58bf6339c31424aaea45ebb78a3ef423ca0d49dfcb1239533e963e70f5e4a7391bf9e26b7b8e0555c4907af502e040a67b94a6f007df4851f2de4d72d49ae836950cf3a05b4aa17148fd0f0564bc10d79adfbc743ef7d25349e3a13a73181131b61b042160ccd5ee4371863e1e443d214975c298f88bf8d327ec5409c4ce80e4e60a89c89d159575d0e40a27c1db700fe365f8afedd3f3d9a9b00b4a3d6c5f308213c0096abb5b115f28cfd66a28749a1146bd1817052cf35a6f85e420ebf903683a9208596d42724f42a6310cebed98c2e2a7b5ad3d19d8e93246b78fe161027acfe8b35f2df6ca783e8f8a39aaf92f03a0b3fa2228848731357f93419280611cfaf8396e01fcd41aa7afb77645f2e23789bfcc4c9bfab7814ba2ddba186aa8b85ed692ff441e595585c269d7c549e210d1abf009ab6c473580699c6e7157a11b83dc5992e57e1cdc29a56578bb43d06fae62ee930ed5f01196944c1509a3f841619ca014f23a516cd20539ac2dce29598af5ae7ae8c3200bcc9218e3392e7a7208fd0aa709718228853a593e0dd77b4ac7a5cb6bd5c2d1398616660825f93a3be321a69f99194a4bd11351f028684ee04f600e5e6036d21c9d76160450c178469d1d227d83d15d78c68eb5145e2ffefaaa741583a8c28d61453b82ce5336cb9e3b6446313ab68f8168ff7f03b62d20ca4e414c744666421df33825345dbab98817fcfada77a09c73bfb71f62d07adb841afd03d5664fdb42e68b8daae41d0d701bb4e2cb6b7b60a66a101122c493d1002df1f991868d488c18b80ba8af4d614f6e143190338230b68b1d727f29b50500034531076bc80563146605fecafda4fbb5f4542c41d48156862cecb99bd2d5cf537aaa9cf55f41e28991b2aecd5636b02b3ea88bf54fffadc9fb7c91c394538c80e0ac08372eaa4a41006f0d1867db0e8e6ab61b9248c909aa9f09fa7c65d90ae987a83c455ceee4e07db7a0fa4144ca0e6f0573333a12feef81f01bc738c31dd87ac78be1605c8dc70c5030b48c5cda86ddb867a8e4435cbfc9a5423bd9b8ec84bbdf50ebe2a4086dc1bbdb97c82a897962c22069cab82077f5133b104003cf5f367a78a2be02a8aa1794c0a3b73b6704a05ef2504cafca7c444eed50c1b76586cd40c547e3c9cc2674a491ffdf6b28e1227c700f5d70c3dbb800601645b9948b540f841f9d173497e91c0596d03bc1b0fc918e35685204fc545b3d3e9b7a9fdf8d114969d7bcd2cb2b2b233fcf3d919140b63ddcbe827dbf7915e23d822cba1a0f55a03f6d58d33974694ea667370fb2e8fbeb2947a18dfda8027ccf9d2c9f1cadc9b04cc5adbb17490cff9785ececb16c85317b5946bf6fe086053f9ac916dc6c6f982c194a16d48003e65925ea3e74819df3ef1029e06fa760f5af1a9b61871016dcc08c50f939147b2d3bc818345d4fb34bb7e26b1fb9ca570dfa8d3eeca9fc042dab4a217b9d5eb71795945674e15f9b7aa8212aa94745b715325529210ef2f98e75b90f1f511eeb3d2b15f2946e472e236b7cf1340e76535797c11219b9f6ce25706c299038a12242ef5130b44f8dec362d2a677088202921910babd41606768eda3524c74a79065076d0331bb80517c2988eae89046e792859d10ac912708c64f81350ff7da768b31f23d229337f1c1ec413b7c210cc3f6e8ca56d8ee7e506be2774528acb1da9ed1ecca4bd06d355d33e5a7cbc3455fae6c1cf05044e1a21bebd170a38990011c2969037cccd49cadb74360736fbfa462297b62c5440fc86e081d26cecfc70a73300bdd68ff05e223c60ee7944624a5ece9b7c40e3b7bc54ef864b3bd8df0478a01ebb42a570b91c4eb67d255e25f73dcbdb3d0a46a2e1a7dae903ec735c65c3912a440bb206a47abf468335daf2c05f35b181a2600ca810dbbdb5a0642ee73cc3e210b7d8072d6843a3dae5a5a6190a854ca5dd79185efe600a604dbe85f5284a4ef49b37ad5f51143a6257e4ccfd6a6147f791b304d0d43bc13fa69e15dd7164c22e7068cc332a9ae059efc37c49b4cb7205efd05612d35d937fc153834832aa4105302d2154eb47646a590b4800e2ca9e93aac8918471f9ac2810c332cf3ddcb791096c3434a307c3f1ef4eb354d8c1a6232fa3cab49388e6ec9bd4668dd3fadd6f4987927002f6669c76c565c44e841a925dcfd20ca0cd8a5075b1a9afbd6e7e4c53f87d22f57d001363b8775166e6eb485ece6cbd3fbc319a05c9cc47f1a8bb434a762f5a860c9f5472c098be880ea6da5eabfed6cb9ae46f9fc267c22f6a0c235505d9b549aa12d400a4bfc6736aeddba37fe6a33cc3b1e7dbbb456964e88ea5c9f2c3da0640914da279c6d9ed9e1c5985855ad4f12dc51c7db247e30731f38335c026c08b67f72a2d938eab069305d2d79d717de38a4f7d6e38f96e2b0bee473333597479810fdccf8668bf718ea10fee7a5aed9437383561fac6a36c10209bd3379aefba863278f62a23673cdf6782b9531d4840b694eb21d4210d85767cd8752a8a26b991a1dc278d94407a298e703980b3e47bbac26c331b1765f95b1232be61a0774ae7ff72e9eb9240567fe3eceab4583fa5383a147f2839176962a53432d90558843848a71be0b4a881ca6f641ac62e6a826b62944bb14912de5a9e117c6a69624450f63cfc620fcd87b8f7a141dd73cd45c4904a72b42db4a0270a38036e57001b49bd0b9254ed58c6b3e4e1fa41916757182c53aa533b6a8e4d0fb596552e0da282714f3527a05648e8d9de58b438404b43ef006d12dd73e72ae98cf1e9e18a04a700e7845b9a9f2b45025ab4041280dc999b9bb1977474a09c332a492d9537156850761fcf8cafd66c79de1d69263f228e42aab2d4c5122f9bb1c24d6bf8fe69fa269e5f8bdd5135cdf106d839cd1d69be91b1f7fe466ad0824ab9f608e7bb80b61898fbdef9c500747c62220876acdc487bf90c8863515ed1dbf218e6d180b9334d57655b5396d0850aff1acb0f1ca9594bc6381ad564dd6eefd951f69ce47c53a0608ce615a34b7a17c56c9ac911fd6140d4c6b3b513ce3587fb9b7f8f7aa42592c7cb770d2339dbbc7183ed5c79aa2c21d7308c0dcdaa8c5fcff6018266740acafa0a7927d0cfa47fad1736a01deeae3e7c51fcc9869af40cb0e04f19e860845a1fbb7c9c711403edd69f8438cccf070ff923c56aaf1f4412a8ef410d9817938f5a803966c0295d5f987fe10bd79ce8acfc42d2ff1a06748b1d86434f5d784fd7f862c323f84554736f4dc286d70ed417f918686c7366d44e67fec9d78d4ae1bd165d8df0db58e6158048beb31b18eac386f1e7f7da260d246b408ffc913912945043144f29283e9577f2bb2ef4e454dcc7890d302290a454e5e99f032465a1be97a62d4a0362aceaad27c4faa2378c9ea33bb8a70e32e80421d63fb67274de108b11e5289daae2af5106620b5b1e4ef6ed742bc642cffa2d16f8d30d99e3d56831d1958da71ed18c7f471aca4e7190f72c50d65629ea782ca0124524d83147e3dcc8cf6b922fa53520d4dd6a327f99b24eac64ba799c2f47979978b898a51144f2eb55f454f9caa414e4c9c0ea53d28a5155df529e4e0e976263cba0784856ac2b455a429f9ce411c77e36874e5f0a84f3485a9b1da0658e7a2ca45fd1bd59601973080e7333da7de292df363f4f10c3f7e34873ad62df587cfdd88340a7bf24a6f9036140acdb3b31368afa2a37623fb5327a917ddc2c1009276c97abe45e8c688c37e29b2153ef73d75cfb10384d28c835c5a85732563506478c1a452141319d49880b62fde9cec785cd3c21a789d721e955a9d632a4e58132cb76bc85fac8678e6e00386a7f9d2d4c6a97dc2817b2fdedc32dfa09bc1d301be25a55fad4a0ce106de7c712473414981603a7f23fe6d52fa99beffb39043e4bdf5961f1ef0fcf5547c6f35bb0ff5fd00659015b5c7f1b8fee8e955a4bd98319f456a84e36804edb1c2f56b05807a23d9545d9de451d16cbc9f3abc12e4a7733bc2fe9fc2f9a6ba04071aee53b15ded455ea5d32e04b24f4bf981179773af394d8fa0e3935e98b9b44a88da2730c90aa330ef76689a006d8690a3c13dba7aaef5bf6236c518848d30a75e79b65abfedf57cfd8b39db5f5c8c14b02807bfebba385f20f2da0d21a067caee3b6d63574c610608839c9ec795410df27d68ecf52c7e0866dfe675aad85083825f6923a88ab142d65762240effcbaf1e1bc98a53921210c64e141a1857645e75cafdbc4a27d38a5df1aebad57715c31c18080b8055a53b59fc21e3af0d1f523593300e9fd75bdbc43777b4180e4f9413a8f420c132cc0a6e80dfb7ca0c827bfc403cf33bbcfc24f09109b0cdd26cfbb338d2ad484a7d8fa8aeb4abe63594ea553e105935f9132df5bd842d5efba26fedfadb7ab9eb96d6146b187d60d4dc7ebf25cf1f22091cfe1b425b75e919ee2b8170bbc398b656e0ed2a1a646e4be9d3fa884fcd0b553ae84c06d7ce8dbb8d6325d6149176d2e2281b8ddc3036a2cb3ddf939b0fb2f6b3110e00920632a984862ac6f9e2d6d0c2c0a63413ba183897d5be73720fcc0d7297723dfc44895c1a96d43b73ab254261f5ad55889b8c54e695b0bcc59231bc843d9d05da344bf85889da3300993f2690898e33994422975687511e3def15b09bafb837c179da3790c1bd820fb15928037e5225b8568b8508fdce99b2ccbe1e8e51878b9f76d357d38eeb1d85ba5105d2699c93eb53bf9620e14b13b5b76035d79fecd833643dee79c4da003a78b192fa6296c94b9d97234911f38807840b511320121690b757069d5d970b7db3ee9bda76a56085c17c962ecb4872207fd0c186e1094e9ed83d999f316eb48c16b232b6b2e3845c1bff0c02298dcaa9728c78958d106c9928dba9a0b8aa2a1dd72e1e38bca24e24c0745ff9ad41110277ffc14908d1599058e9df09e09894d830d5cceaf978f349bef62bcde2231cbd951c1dd3a04b99e70ff37a04ef3c67dbafe98abc4b9b9fc6ab57133a022fee213cbb4d02d24235d6e294db017b7372354bcbc78453855eae84edcf81b576e7a87d1408ce924f9de79876ae336c6b206b4ff2e2794d3298a7d9482fe9e0ec898126b6f4d136ffc47cc3b6f91112ac93f518f250b878684e6a4e3341398064bf0e9ed557c9de9ca746a4c2ead54719c3c29e07e8c00fd97345688f3f4093630567992c5a18798824cf63d44700a9a76fb0ccfecaf5d0166d99acf3cb4e1a9623d69dc9cc44523d02f29791d5d4d5b2d315ae78b82017a5095b0f1b21b822f41959537e4477356ac85d1a84d6d9c727383968dc7bed81a10997b184bf57e3ecc324a7d594ff1cbd0b162f67075836f52fd9047ddc6b2eca92e9efdced09e928461cbebb05cf7244b8f3fa8220e30a7416a60cbeae907fe2cd02c1091f2f53b5bc5cb7411afde087e1204a90f1cbe5b991c4f1409ab376b8432964f4f02e20aac7b43e276242b2baa19da6dea2a8b207464b4a65bf109c4c77b75f6a00ee899d8425ef139b7dc2a99bbebeb683d64cc69bcadaa5a54877dea89acfaf3f5e72763b6685aa5930ff46c5a91b3313f233c375bf709cc3de97dfa3d3039dd6eedf6f8562e2df8d0178f43adb27099e60509ff9208db680bb2d0ff8f86e61d4138a5ffdb8dd3f793bfff0fda485fce0c8c7a118d5dee4c7aa314004b2e44524c67591983ae809194b5a88aaa6b5f69c95e1605b3b8dcf21dd1d8cc74028084805a2ca9f6e7e4f994302e9645a0dfdee75fbf28ea25259d46636f483f3caa95351c444e0106b7e215a74c1758afd7e8bdc8d9956d0667bb4bf61b3dbb05acc872f15b5148ed9002e69120752d8a8b6b1804018517d39c42e4391c23871e0f4b0a72cb0b68b38ddb56f93881336ca15c9de0e2a75d5fc028ab2b951fcc4ae5023c8eefc605cec7f8e0f042eba6cebf81fb47cc684f9ffe98eb15b372a4a80d5c32288a8ab8ed118db0d5708e896eb1a3085da28fb7ed9b18e479c980239e6d6104a7aedf25e8f36d8d585922ca3d58222189acba5ec61073a62ed4b42db066b8559b83fca3fba89fff440c65dd706e609f9b2c92c407eced85046b8900dac38046ed30ff558c6f9529c30e6ef49a5b86ff716582b6aba833a46ec32f8c1a1882f2737179f03ca759925c51fb76666665da436491dd0b34626ddca1d247c64b4b52c763f3650102b7b869766006ca56d00d995cc52c953d7288f5c4886d81f4ca2a5a676b87f7b0bb6e0592b79f0c956652f70dc4f23da0f5e3e23557303fd8db5bece02808ab7cd16f457d0ef59fec18a866d0b799eb7a53aaeb025bc3fc1089d2a612699993cd17da787fd906236053b8266a4b36f383b6a063f8f4860bc83a99dc927748b2190fa852936e89c8514b009394eabbefe0b8d54d9d9bd5107864751090e5774be88f33cf95194e9c5ae02c6aca5c3284dbeff0614cc498f1217118263a44a191fc9631ceebb52028e08cba9677f583d2123df71554541ac8492c8f219975e764586729e8b98bef3776f2665f2c3d3031eef284daea85fce68a9ed6639bb08383c690cdac135e39ab79f8af1cc174c7146b63136429a1a2dadeae62676d31344f97bb10f5e668b2b01c66c0893c1d3f587b4a72d40d1ab98f16ceb8118640a2e10e05d1f0bab09aebf67c7a930805bef142d01166b0029f1a573f147f9674ac334b94e10e24a0f809babf797264311348f6a8438321740ac7829e84d8ef8f67f8df5678c8abd0ace50bc3fd9def66e8b02aa0ec0595df45415ca6bed063bcd17d6dd2a61eb08701dd63f793b11d7c133af7a5e3e332b070733d5f48378247af1519780036bf43fc5d21c28cc37f9ce5ba45ced2566408df5f2243cf11ae76ea78e011705c0331d7165082b5f13015ea92aa8534f48fb8fe48e012f1b951a5a88f699b1a451eb40a03a96bc0a4031dfb4fe07c978c6f27faf578c576c59f15b17334f9b3c2830aa27f3c454a9d949168a5b1093bedcb4acc2031c0f50120dc48a5f6e59d06d65f6adda40405c30e7af2bd5bc1a289fabeba04d6429b81ec4a74c0b14db867e996a2eeed66f048d52eb0b03dff01bd26a165ee28208991eeae77b0ccba3298944d87932d217ca05f70e94fac740e612e80e25a04b336d8f6d4d6b2243dba6bf0a32b25a3d349962ec31a299b60f38905f86b3246e98b0785c3c216849bf8f1764d7d0be42ec9f114a0105a1d42ea452e7d9daab4ea26428221dd8966cb09b9a4bd820a2241cd02b348c029fccf42415f3f5003eac208eff0f048018f7f4244758b4c0c987026389d4cdd3a942ab93ad4a589e2e6ed6b64e834f3aea2859a780e16225630a2b53e6b1a022eab91b320535f6c2ea322b6b423aeddd4edb06471011c4963a6135df16170392f5b0ce24a1d9028c177a19bddfa9b77451f8494bb504f5ae4175050a4c7c1836f9fe5ef1ba1a50b40084f3c11067e4be17707a9c456163de653b3e1b68242018b4bbba07e9694a0357400211c1f4ccad0496ef485ef9e6e8b640a61e6360adb4413c4a3457595ed53ee652490a8973e7aa0fb402a4699a65dd243a62bf2aca7ab4eebc2d8febec9eae0f418b709b05488fbfac9f93cca540e17c3efa0d0d514f801eab0bd1e3d1611d726cfc2e4e465ebb55089ae2e7b03940d8973c8381b70cb5eb52c9fb98e53a818ed24594043bec1f7018916f753c6454e20c449b42b6fe08ff75c7050dd2d69df2b5126fb8ac67c77428c5c269b4a70adadb72ce3ab964b3c4c44a054b09f6a2e5d5968ae0107cd88f819e1e5aa73fe9d939e85506c5f5163853f9c84da9f01a9a3a063bfa3488687f8e252064313b66aae70d00398c573c8a4a6200f19f2e293f8319fa07981e1e17fd89ef3853008e18050c15dac2a91c2d6a73f4ae6fac188b348f1397b585a3a5ce9b002ea0c3f90ab1564bc85afabb0df201d02c8c7e3a99ffa7611ea638e9a583516375681216cfd11cccf737cf13073f4478d7634814355aa619c860643866f246a4df464cb95896d547bc17a1cdd7b959f512d2c4deec0a57a8f89a6d158fe3383dc9c3240a6edebe1a91da5dcd24b8bf6abee34054857c869e24ba69f2b3428995159122b6f9bc5581111ce28b5296da9f0e8e1dcfa8c584adc78ca3b1578cbf9259bd2278fdb4dedc120986413fa07418013651b8eb52a6b38e871af80e2605b9971ed2eede26de0713b092e0275637bde9ace645800ac6d80614ff4faa78a8db2f1f38c308a1a2ba6c9cc1df413a3414dd9479893392c0ba63163b1b92f79a5de4092b1f1a6cb9ff0369c5d4d39a5f09f9f5bbce8d19f6a92e30e655bebbf10117ecd5731eb876b85c1bc2ded6bb1047ce2bf44930abcdf5f06dd128f4fb694c9f27379087456f314d84d1e06a5a831e6c387b16ca912e492bfefd4b3377de71dcd7a507e44101c7be977f8ca7c35900d1f83f853ece06172c4822397dd9d4d8e43f46e88b55c9992ea94b3c949f1585c1ac41bbd6f5c6169739292e603eef29f59195c1bd8c2c53e0be2b9e5020a00548c217a09810e3d0afe9b2ffef377bf08082e3fae5dbd0f9f4b9072eb87cc6c35edb6b1c1d39573bb9c18fbb162ce5ca8643d2790a7c21d6d7e53d800a7db7a286927aa87fd01e66fc31471b676d3f2b0ab7db989441cd66b39d1c5c6267876f4c99962a4112ba37489b94c6da2fc0a7d4e1c96df35c4865e01a69a605c9adb9fe69a52538b5b039fc7ce565265d42dbe0e93c60d0a949da802bdd1bd870883b16ec9f37e80f0975f027dd848d57c3d510362810d0ce4b42b984a4db7a6ed5d2121913e8dae7d25ecc2ed24460ede41c1297538c19f50dc239a0dfc1e2103a09cfe5a3c6d3ac9cd49e8c4fdf8c1a6d3c91bbdad81dcc126b099923926faebf2c8c7283d9f961fc28c90292f8eeb8c7e61e94acc559e32290c547f8f1cd7750f838cafe5b50e00c408f7f0fc246eb80a568b50d150c21c729c7f25c332eb63cccb447f1cc186fe9bbde76ebec01e2cb19a73915f21942d14ae0423def999cb976110e4e4df8e733391ff7816c4094fdcc631c2fb79bdcd3a4a3d1027072435d8c15df9b4efabd909b1dece108bf2a1191f88d9a04cc53a31c689203ec617ca65081017091ca47286a64724cc1912525716a46eb265389de6e7a8b0c9049ec742ed8d6fd73c09e2a3c9355b9fed7b8fb31827189cd28dd61e42ed1df59f63f8ac0b0368190953d463587d45396d477796244683011863ad116c578aec2a65f106acda3d4abe14a3292668ef99b132929fc2a0e6fcaa18515c54f45a539ab3c147f7ff5def3b5242645e10bbd048889ba93c2522a3831bbd6b712255e6eab3304fd161e1d8ef1535fa238b06619cbd77d198d0a18f6e67706b608326a6b5a0535d3604d247629879f1ce0fdeeb8e73be8294c0c46436a6b568983cccf80a31660bb75cc16ac3d96ab11c902046b5b8317ee14429298806fbe12189385fe99001fa25b962fb3f5d8cca6ab708a423734468ccf27318f6399f96e486ff8beb577759f3bdf3b603e4c4fb5de5d18908aad5828040329177da0062b9eaa89812639437f2e721df8e21a05c790eb776481e6537417fad7fd0363a88826040d1548fcd4d9e10b4a9edb1fc422741628e3e060e2d058136bc43226e7d2820a4c52815d52bc979e4b138be1e3e82fc7db64cb0ed2fd830e68c6126d8dc2fe9283e617574ee142ba3fc38556c23f28d0f869f63e955a98fd25b015e6aaf25e02e3edc2233c79c1295624bc7d40906fe6195dbc1dc2b6277c4e45f7fc11655940105e0656f48278345765227543d2f2cb8e25b4fc92b27e666377a113d916ea9aa240a18633b4d1d91b6c2f4334e932d1d789b85d65af48fc37cc0c42dca4f592a7bd983b18f25dca0f24cdf880101d8d2e6289b13b50916c721457c23b00ec871ff6a990a7599ed8b61c942a1858d429fb9a70d53c8a45e310728adbd8325d7c7fae2cb949d8b51925786c01f2307eed5d07959e31459652e0aece32da33b2b92fc9b0aa4a5485f48629ee4b850964b6a803e52c088cde5c06e3fee72dcc7bed0c91e01e5a65f4eb95831a0b51fafbf9e1e7c252534deff57a6bddc7ff8a0977e6d371a20d9d6807261749ee5582aa76444add19c9abe28c8730602b44ca3a0003cd2f965b5fad5a9de1611397534f30bf11dd50c4ded8d14c3ccfd033c3bb289adf67de204bce5474cbbe29a02fef7f7458d318c2a240753ea1af18c8b220ff5921437c9d32a62bb9764ec7fdd30cf73b1e919ce5398d90a4b0b495400e913fe0b4d673f5a324f08d5dd258bff682971dcb527773fc7bc21a8131cc9fc7f4d344f4f430b1018c95a6405297fc52f168da8169d356794b6b0fc5c4522da2d5dd8d6b09143d2b2a7ccde51ed64cc50ec56442ccf49c2686df47f13843f49666a638a389ef68b54dde6126fecd4c7872cc62dcbab6f8a142da59b3d20f4449632db5bac405e8b279d4d34d5ac31e21a655aeb1dc7e3f81fbf131b8875e308bb9b3ead21b86d40c1a8428c88e06e74b9350d748854bedb2605590c2d7800ff22e8bae48ed9f286b3a727a20acd650b89d08a0af08ce9e6ec49f8711427cfb7a74a84fbfbc0044ad01e2774f4da006c6fce77fad49f595b505270017915c553f5af10dfb61fa6df2f39ce059586b3bf1255f1fc6ebe738631abf357e76b63f3915059c8b489d4b323d810c3fc40b225f5a5bde0bd33091cd9a91378231d62018c948a6460aca6a6586b86237be52767aa94750c2dbcbcff5f051689439132425c8564792ee9cb93d1788e242c80ef49ffaebbad0f3d3c3480dc901532727ba373b8b8f7f189d0d6f46419d07ab22dcdaef9d980400cf64efc26d8dcf553314ba234d04b56dc89f877af73800555c74b1b31f172437f74baf2d816c25f655aabde9de1d2980ec8a583d476efa00fe850104399bd0dc6c375bc3f051608f4cb71fe8f5c8ac04bc4eee23a88be53d1ddcec0b8f3b3986ee8bd3f211c5b224a7bbbda814e445a0b750198d79f1f0b114cad5de7f409d5291cb967225a1fc7b7cf7b9c2a7c85916505786783897fab246a56ba6ceaa9ec1f523e2a07298a13e65f4cf8c31bba7219f1167f812854d0e5845c7d5bdab6411a1e06197b5abafeec0fcb81565791382b38caaff5b59b099db8797f3cc298e4e76f471d48cb255eaec9fa014edb43f09b4bdc58e38c5c36720ce5dcdaf40f47fc576ee9b8ddaa9f72230a9c3bf91f8af0cfc0b813d0eb1b9757dba253dbe3c980a209471a822c0122a4680d64c276efe6f86977c9b8f2808c17ec92f03a63c1741cff04e91dd1078e13c03ff86043f51b6fac1c6e434b0bdb3be8e69e8ae2a85a407e476f1332f25f3b0f3b1c6a752c58bdd2cff6eff417c47ae72a7bfc0a131d16daf08439fcf49a807bc1dc80784d46c165a03d1873a0869c4ce62fe7c73e07b4b97b458721e63efe84385920a1ceda872d47c03749732e3f8899dd4b54a4e620f1334be4f66fb20bdd470eb0f1c8e0121e8db3804865cac47c5ecbdf01db7a9cc8d6750ad0648f5350e67146558b20337ebc0978a416eb234987c43e871c89bb7b63ba658ba1f6ac5ea1ff6d16294682c1616a1e9415b2242dd1e0f0c6ca995ab61b825f12d030e22d463880c4515a25dec5b311dba8df17b0eb79fffb40208a6f7daea69e63142c8c7083a430b50368834eabab266d320ec3195e7182b309a4a771ef88a77058b768bbf58951e24b55481278d4baca5c926d691dde06406de5d05d3826e0a0df3b0f1a2fc996fc0e1c749f9ba1d06e787bf1efd919603d684490da78f0534a3da3c2ebbc7d5707921ce91ee7871c46f3bcfe0b2a8aed596b19cf1037e941bf84aa53ae7dd48e17360b822e799251b046e74cfe5314dc964d7894c209331f1c908bb4aded5e166ee63bb5339272c808de34eb873bbcfaeb88e66c0e90f48b4453011513b0805f933f16e6298ef095ab1fb03d0d41c42cb06ef2c5828df194aca187e93c48d0d1b81474d5b3d4e58fe1e95bc0ef8efe83aad45fa777d7337e4879c9d4f6172c5e6652a3992145a46002f14a69c9ee1b9235c76925d20ff0ab735a54d6f6f1eefe66e21f5aaf12214cfad07734e0804deb761ecdb307ac94e00580c314d6bbcbec11ea1aa310ca197a4eba7d6310317370884c75da40309925dd07230891b6d5bb3828864c34681bbc36b150b2ab048d6a652dac8250652ba72b2b0f6ecb27064d8ebbd92c60207fb06cdcd4c9c8e4a82191a236d9e225d7ee096e372609a07684897bc8ab382d2ebbec5465d2ca1b6351ce3a3c3c3bfa2e98ae6ee56eed4b16c004f9402ed1c79afe04c000189bda89fb327e1e4f7c10ada2fd8769ad82fa0699d4d339828c18281844aa882485920a00f28da0dba2eba864d1afcfabcb09ecbe6eed14c67928e2eb4691b2dd56537d23d090121a79ddaf45863c373c9f37bf428f7fe017e97169989e527d3690d7bfcab2794270a99117f4462a1ca006cf5b75f7b1aff2dc488379d6bf84a1e63bba07a47bdc8fc4f405856c998058fb77cdd30b40474cddc3192c46df6ea0358776e9f8c06d2173c0e024f6d75ef2d7abea3b64565ee7ff6c4c7207dc4115287a2cfd76408b7b39cb3d4dfb23498996faf3a1ac636e2fe9520077d88aa9fa2abe25b6bcdae0eb9e9727b71c418d314a80846fe8c3129f2ae5019fd176f7b3ecf8a63be9e171101a032753a4ab9b7fd208860b915487ed805b3d71be0210c7a898a68b4c7d61e4609b396a59e411f722bff94607ea60180b691acf945cdc021db3fa1e2a26037a4e1ed8708b9512a045334e3a1ed8db70ee17d1dfbae5d88f67b9a7a92cf7581a9fc4742aa48a4bb7eb6e2c26ee9f3079bbf323db7b54e5a3aab470f9438afc9f64b5f9819bab1fab904ad9a76e8043e54a6cf37369ed7ae4cd5adb5e032b4fa6fe969abd32005d17f8fae4671a8880c3bb0c5c77fa3610257a057720dde37a8fc064d743a3fdd6f802671983913ae056a1aecc179f80b5609320e808d309688d8e5cc3edb2601c956ac72d4b7bcf322ee8fcc891696e2b166c04acec459ccf573377929052b65149d9711329c43b93d2fe85e9ad330369aa1bfd77fea63936de48943a8af1f5a4c11d2ab60e91e8598e8191a0088ef349f083f7268bb3f9712e5a1ff03b11e86b1c9a7f7ff4ea23157b16476dd82bd7cd20247fc96fca31f2a67e467d6444dd34579b822215443030115f3bae7f951e1461c4a59c6cd6a03a0b231a290e25bd64fc41c0fd2516921033c7737e8c746099622fb5deccb566a8016d4abf563baebdaa4311b8c3d520a2d2484d83d7bd8d65f511a55ad036ab47e2964859d7bba6f37dfbb3cc043d6613269a55b58b429cac28e0b7be4b338d9709ac471727b1a03778655dc543214ea2d9d77463fd423ace3b7477a20e0e1b4d090971d366bb2c2f19057ca20b3508c1731432a0afb4eda6cfdfa6225b397033b9dcf0efb6e3db6c27cb1da7056921752eddbab68563b7d0a5062d067b1e13ff4393e4ea97d797f48046131856dc4c121fac63d1bc055ccefdcb9ee92bb023361db41d77b671780a6e27b0d14b56a872d78e97877ac41434f9acedc04e12cca8d90f5fb822c354244a8fdecc5cf2f3d02a94186e7681256e3e3847451026daea533849621a35cec4c9fcb37b590d8858fa76c1a68aafdc26927e6ddbf4378307b2a81928f6e40ef2ec0a03cf41566e6aab0fa190d6c611921a18770c74fc55406b768135845b1e81cb6d32e08b370e18afbd31b791d376f52285c4f9a699b2fe0d7a93fdc8785ec8ff3280069ab055a4b2230a568214e87c30b43db9a4f014cc7b8db81cf266d01c0d6226603bd917d6d1ae228269ce7db42fee590dcedb58b1cb300e4b7d9eba430de8116b77aa21b55bdfa8916928d1a2113b826ade09cc967def80271a5f39621ede64ad97688a1cbe003202c563f9fb3ca27c80ac7488bd13086faadb2d9021aa0c9e7b33d24e77bff550173484d66d42e561b26658d39a82f84946d749f5866b134370120689974714aa689e47dbd5fffe456e89643abde2f35f88a1ecace966dfa0374cd5856ac344cce1e2056b6b5eead0d6a12a9488b26c7102f6c4292fb3753062fbf967d794509ee79199ffc3cee747e7bfa05b1670972e45cb6f61e2d1f18ff4d72ba4f19874654f315833dde8ae7251e41829751bfd11f645a391986810b9359720d362b3c18a179d0dbbc86597b0909da547fcaa05d2b6f701545a8c1e1f3d4336af3340f81210e188c0fa773fdb127bdb61a7a881f3bf9d113e6f30afca8b2be4c0e1cabb91f47befe32b403e51417b94353aa730ceb51702ae70f260756dd285efbaee3a23ecdd52463a9e1babbaa15b36dc9b2a0241bfbcfa7695df031b1e0046f1b6e2485de408d21813f28516806124ee8a9a13ccfd66d30ad71e2fc7ec7c3c378297ad4cd8f6fd9bd657e5b0cede99c3d2127723763aadd519e3ca80a1c72923bf7b1227e2fc46de37fc954046cfc70a4254e3af59145470baeb58f0c359670c223dcf8ebe7c3c7fd78c080f2487f2c1979370efbcc8144551f1d17b20b6d48cc5eb062a1aa682d16e823d92d1f02703f9333c3102d5375f0586cbc1c9668e5fd43a9b343b1c9c0c10c5e2941e26760dc313ecf5200cfa45dee1932def12e1f5f73d84306ec6c0a92db75fa6a309e005b792b3eafa095ae66f4e0e1825e6484dc39f58c34c0e7d9a21aa7401d75fc0a48a528866a9a304e93656e4c0408ca85c5c967dea91669190f8e31d480db7489d84872dc9d229f64b696a61654a17be94e03533559ba066a7934319fed1001675e1f6225b1dd8acd60bb7439d7ce55bd0fcddea3c806e87f8793911273d7f457d76c361de7f5ded2697a56b5e760cf1684fc441990e6a73e60146ee4556820c25fee34e1d281bbaa6c92155f4e5ecfad8ece624adf2188873370715289a6ecc0ba5a0b93db3aff30488e61d7cfde49c7f1efd0f0f6fc4f84af2c06233921dbfccc728f6abc83e13aa0893b839eb5adf3d415c494ab26f0fa8b286a6846e613d121a2402c05bf56785c056667e2eb6cdc4426389ce8f645dfff37f798c024eb24662f2da59bf538d426cc4a1d3a0b2abbb0f027682afd97e949d132e86f9f8872edfc1c7f34cd6ea9eee608b43538541c6e76d3de02dfa5712ac976ec4def1aaf2ed9237adcce8af067a19c34d81c3c3e35c356e09786652f661f45850a96402c405ffdda72fd9cbe879e53ac1da3ebb4a15513c923a1c7cb48db98a687e090156467d4a72bbc300b0bfdfe146e7f4afab317ae53726d1d5d1bf8c5255b996ee07b07581f0f05b1b8f08b952e2e8b59394ee7a3e266daf903b261bae4518b8edf8b2340b077efac47fb0e386230ef8ef2bbaeb67775f5a7dee100b2c0e8d3db2e3e8ea3999686b6723393c9123e1e9d0e260db56529a9907201d8af79d205a45762b9c146ecefd52d61d38d53939f2e941e8f5e179fcb297c702f4e60751b35606af6216bd4e1ca2997ac7fd961a9607c1977661c097d48cf0fd2b7f76d395775eb462adef8699608a6a251204d8b0611ee15d70b2cd6f092c259dce108414cff20bd8f37d70307e6a6744a28eee8ffd659b357b1e2e6fcacf48b315cc8323fbf676c423846ff40b472c16fe651c42b467a0617699a0435a310c6934be5604d85c2e9b61dec367d3129bcb07c7858c277563e5c84d368b390097a1756c971932a575caf17c41678e9aff00294d6c31f83559a000fa41fad0fd3baddd19232e8bdf01de63a9ff24aca2918a3bed4824978c29253543746fa20e7d83d6093392f3d7ceb3b759faca95185fdeb9c50bab8c64e912b104a99f72bc30ed6e4d3586dc88ca54b3abeabbe3cf071759b195233668e39254fad539b2a683d55288ce008f7d7a085d945221ff25d516d8574dfbd467841539fc65cd7f6dab80fdfadb1dfdab68634b155a4919205975cd29a5ff063ead9e05810c7a277a424b1fb59201d48a8c50dbc610ea1bae181ca8a37c2375723a76874979e441d51609d2e66a6f92bd0912f49b2bb358432c96fdbed43ce6b4849029b7d07bab5f483d232df65ce177275ae08e20caf44fae0ebf2cf987406e17448da79ac5123a1ec5d11827b26a97a7114f9613e37d9804e2e92e6e635aa599bd9ac537dd6e8f158b6d44321b822f4ad732cf48e4b10d00c06ccb090c002812315d669bde3cf82158d3dc7a06f5d95baeecd30b6b2e4390189cc9ccf1d240d3217e62e623c277539e8eaea15f633315fd84a03ab5bcbcd7f45258f1ed29e15023519a5c13f38eff2970f3a015eae42fccc042cbade4ae4df6f076274b01e96cd7bacea90d59b98e3583f79aadf7e687b677cbeec9a7099207e09614eea09ef45f4aea9326b081f8d35161e53cfd3e3cf7376a1bea97c4b9de391cd8a26fd649caccda555dc0bb3cdf87cd538371e1b07c1371125234b1ed2dec45b13a9109f1acb9633e360e58b6cc315fb67bf2f19e9f4951de56b9678308bdfb457d5892a4b2b36bc3dda5c60b616ec235ecdfd0b290346293a882b8403a93ef39795fbf6b147bc3fcf1906ee29e6db937c056bc4252a836cccac8eb264cdeb2aff70dfd6147296cce7fad777348243c74a98b3393a97e373f7875b3540ec6fdd8d5a6005549cfd0aec69603ffe6d7ced88057c059e14f29c60fde184696ed684d482679cd233c7b2d3b2271147724768123f0de6d562ee9cdd4d1dd9bf45400e7eb6fa1d6fd13111f8b006b8527fd04e9055fc3db41fe8faaae528b562b12259aa13a3eb0bc0fd8a32ba4c87e52f2feafb185792e95c4291f24ac35af6a351bb1820e2cfa79b5f124b5f93d250ff503af156720e25489012a2e6444ff8fd417c228ab275068b21b2b65b07738f840a71d1a0a100c586a58091a1ade0230e8459851eb1ece8d59509a64ebf467244a577b5c373591727a7b2f98f119ce6095303febcd12ad6d9d3c7631772acdcec9f64305c8a2f2a49e4d43a25bad5e46f3a9eb2557386739f163303ef7f0c110b7f08e22fc63e2ce13fe6f2a9c6238e863e436d393d3c6d92faa65e99ca4d0d8f7c67d9364d625d35ff3c64eef3e1c168a97ea6466fedee1dc60e66474a5ef7ad9c35c77ee21e8ff9e2fc2b7378af83529ad05fbd351cac2fdf6cbd04a6af99f52e5e00522318352a8ba348828feebf1fb92ecec320b278e30d56abca57b5efa20a81504c809a0509488070f26247202ffc80d4e5167a71d9327657920d69c28de56f9c4734132adda438b88e8025f01a43234e19f9a6b4f8a50959000aca543bfdb1544a0e94ff582b40895ced3611faa4682911b648aaa088609583405620eae900b8e19e5467c71866e83936eeff1ab51252e9b9dadc8af4626e01ca95a1a8dbcbe5913c2da76200490c8e9203e86aaddc6b757eb761df16084169188f34c9b1b4c0455e1cda76a0dc43064bf2c8fa61f15cbc7f9fd13df5e033c9005001455513a1e8fdc4f03182e72c991b79aa541d72a86aff37d1bcd08c55be4c6bf8df7e71d79310ec414356863a4a351be19209f49845d1862922d9400b5a0574df1f9a0ffff9a4fcaaac62a88b67d99f626b96ff3ae9e17a70d52847cfd612856d68c65d20fae3844067c091113c45912aa16090275b4861414fd07d3fb61dba77ce0f83a38402b68ebd99580670cac0ae8d7b971e3c7a7005070ed67b22d7b52d74d9db123c2fe7697d146ab3917dbe63b4a17a71a2a9404c21aed7d4acef1a66801b74ad7ba9124f6315058880d9635192bd913de76a4bb460f318cac30c14fb028791c9ad7a55546194be7fb4134bb71b70a776f07f74631b59c8587afecf3658da28071cbe71a9a3cbfcd89ba253c199b67fc1c10d7c0f37f4289a7a50fb4fddb06452a3fe4ea874257a1b89a4204cda954d1e5e908e966d370fb23d1250f607e124b6f5f47575626fc96eeb6a98b9e3bc39634498b4275c65640de35b04ef320c79fe53dc94304883cb40cb6a66d59e65e08610bc5ffb1e09a8f040a656c1b15b2c2be9a6feb41c49393cc5387ac92856d2ba0b30e39b7b646a5608860773fd8635b2319628eaa8ae1f8ffd038722bfc91556b524f8bddbe0d01d16bbdc540c274592181f2da487f45b81c53884e47734a08f8e643aa99a3614894bce1edf260b3d35b48c4b14117a215bed902caf3749e108b3a8aa30672c050c88a9199ecbbbb522cd8764c91304799bfcdc7ef29765382808c32c3bbc86826a9eaea02e7498768298847e407d54bf7eca3e3d33af8b7a430d0c07dcb1fd03275fd3874a4d05006f501b430554cb23d53063705fed5d6f9a967968fba8d51041123228e533ee0518947b8262a5b32729d385e3327e255321fd62df8e9305c743fa4edf57897cecb4b97daca248d1243634afa5abe3c7591b8d3edf61dbab5aa4ba0c8e9eb03d4f477c5058e099bec5ae93aa888ebab423853d93426e29f18f70bbea1aa446207d2daf64bf668eab89534ea6a5fbda404b4ffaf0c4c48f5e3e4de4b1eb9e679ef984e10340a2c4194559ba4ed5124798de680b018305d81ad7c44825707d9323f95c1bf2dda07143a01fba7838a8996cdc9962a78668f878d9e59fa59962033de7b81e96bd224ef596377f1eb208e7c9b92ddabc3256f1bf5c31a1f75b32826be462d666a83ae5c5f6b9378669ce4108df6dae21d68f951a88d9a086302e1a7e408edcc78e7ee6bee4ed9fe749c555a42aecbbc621e8fe2b1c50058e94a12935034a431200c85dbf573fb2ca80dfcae56a9d4cd3a68bb1dbe824708d899eb08d68c30842b584f2179c85efa6023a629ee5c37d3c5fd9af8a5334b44c14cae97c5c58e1a307979024d199f9ff0631fff8d2a988fa27cb0009d525f37dbd388014037a41ea74c61cf16b3d7a5986840e44de2b78873fee6a517e3a7cbd135bf4ff345fd1431dc01649b15090e1c38cfddeab13157acaeb65476e6b464826fa010cf886b4684aa74aec3e593d9ec07eb3f64d4213df50a184715bd81f430b4419f10f0b4f17e335f40483588d3fc2c03e89cbaac9693fc9d9f00e86ecd55ce83cea6ac27224f96cf56542f27275d64e283da41cffb4653319c4e66c8eafb544d7b9b2331e163bd5028a14e391cd4b2f1ff547de9593788d77bb53d750c038a1589ec057373b814fe7c6e4c671aa33f7edac991720e08ebb8a605c10f1190a7db060232cec55457541aa722fd3dae75eec18730ca751a5c0ac7b1a629eedd4eaf3169d15a33925895cffd20a21b580e65eb522272f9b1c37a3ce3a648b9143fdc26da612a53063f70690ea5938605f8a766fe6d2c28238598d127f9aea5088433f4be8bdeb986566884cf7360020a587e2d573260eaca0995a453e63708ad855a566c120bdea35571929082c8c11bb3026cb725ed589e2cb4bd9e135b44aed71dbffc455ff4601567ea982d9c2bfccd124080128d048ecdc406765310b218327873a38fb6dbe9cbaa8c59aecc25e46a595592fbbb38d931bd51adbfab566dc147cc097751bbefcf87e8cde6580495dd8516781c5758f0f118c2deaeb7b913db395371102e870ba812eacad2f5492889fae007024126e7de9906c4b910d746e334ec70799d8709532a9d1ba047814025b555de96f5da55c6ccaf24c79c87f3e6aa46290a077d6ef5630a38da6a8794acb4b7ecb54ae22118545f74e52b634fdcc22cbf76ea98f4e380ff401646814a3551edf6cbf67d3635b38ce4759e1ed017e194a3a9d9eeadc3ee7b1c7ef9b4495585ef315d6ad79fffb1f014118582121695ded8d29ce6ce8a12ff6e2867b596a90e68081c3cf33f590bab0d9747afc3d701eadd569216163a8ca982a671289b28b97c36251306a392ae049c10e6afeb4a7a6402ecebb036479d29ac995c6a2c02f7e6bdc52b7c623167cf43eeeb7d3eca21490667308d5a57cffc2c0f5a2972a4d96f208df1570efc9280aaa82a93fcdd062a17f85f768034b4acf63ae5dd04c449b7b735b67023e5a3050f3f0ae5046e84d97307295fa012fabb1d9e1548ec6b998679c56f9a59383f3a61bb2e476c764ecd865eb6527463519689db3fb41fa5a2d1479324434d742f95eb681ba54c61209c1bbb92c791acd2a22009f71d68fb2b1c0f39e5e92d6fd286a6f9c194b3aac9244055f0ed0edf8f990a41d3e6ff10cb56c65e47547c03bf12d834ea4d32385b2d7ca883252d10e2e70029e6aface6c829e21fe14dda9ed5cd144d2e8b400485c79c4525241fb084d91e5c974469a8f9f64eb8444c608475980977ea1fd57c268356259dcf94566b6f4ed1cd3000c0278917c69cd613c26ae4376455c7d30c18d9d479c986aaf9ae9c50ecb051f9f44a624007f282b020d6bbb6f8223229afdc4b1c930f686da0ffa620ef76db912008d1198d5e45400a9ca3f2419023c2519f47072c46c918bb552f10a39654ce8493217d9e48ed63eecceaac9e37c2867aae7d283ef9b9e2e222b64f1744fa9e9f88e294c86626fa8b51753a9715b517859f33c6c57125d514350430701a19e9f09c400ecbf513e8d09b68ea2155abb750cc99a55a1e600249e22f3641c1383da12e8beab5e2a5723dafd6aa4449f9a0024592599348c2d0020ecb873b5805d2dca5e41ed60e42b0060982435440e84bec7cd8945cd8ddbdd7eef38738025586e98ec9e0a3163b8a2025951f028d1dbd842f3929ede1783da29d3b5f95d398b3a3ef887d0af331ee9d0969b0125b4127b709faf98c57c47b9c949eb6c1122f06e88acba000f11c598890c65ab262c1d5838eab05fcb1c7b5f511af88847b57baf14ec80cd7b3a24d73381a5c2c62250241b49e3d2f75b96599ee96ddcec44f3e325493a6099e30fb447bbdf3187e17819cfdf3503b48fa752a967474cd46f0db688734856cb49c59d6680157661b69673ec977bb83c0e559e46c2378fadf0d41688ce50405038f7e7a3a33921a52b16f5a9d1f1ede4c9c5b3767f80b24be510b8f120aa222c05cc4b5d64bd5926edce61a9bf2050282228aa46213d933b48ab912a91f9f4e2501563a39f7c56bcb44e03d4bfd9c48dd419c24035de66aa96ab5d535f76240313093232967ae80fd82c27474390de5937e7de6cb15f349cdc601b7d0f081280bd6a99f94897efb9513b9e50178a6b11287302e1c0a05772a1c38eedf57693dc8062e335aea3e0b15f6b3e7b216ce8cb579cd9e1612500c26eedbe7357336f25fb373a184101470c11255fabe0780956df1f32937774b17aebc075cc8fcbe3bbdbc42fffad473f095da25e4b456e3324454c7e383137c35cc582c316f00520f045bb363f9d41fb729d971d88b25001155f535405e938e2bfe2307b5847b7ca6bfcca277bdeef414c8614819d3a99c203baacee7ddc688ba996dab31247db796c9f47bf8c7628eacef411f332682df92a71c5a96760099533d11948e635283bce87311dfd51d564ba2f92e0c7263fdc569f2d8949724aa54286125748a25310e6086a450d9ecc30f2729239309cb3d6e7d38eb27cc9a7b88cc40ac54607826d2c236ba04e0abb646ce04df42005f806a535faf0ccc9849def36c3b95c95e7bab7f1117acb749e2970307b89cce63bbe5e3d8830a9f9aa78170a351d579174d4865cea83bfc2dd3e24bb3f758f27e0046132d705e4dd814175703f2049fb838b9bd9f14fe0e720736db58bbaace08a14b6d2b024045d1143853e1cb6906fe725e546f6d6355eaa2f1dbb745d1afbb7db38d102e8240c229d65592816eb7357dafa268df4829019eb6f00ede75de9ce7e771361cf660719c4bcf1a93b99a24356a6ca1eea3df92bb5dbc4e6e57810bed165d97bfaef377fffefc4c36594653a393e31a8db18f848ae2ee18c68e5b1dce1df384fb17c297eeaa9deb195d233a49ad0a9a5501aa0628cfd8aba86a2685c6bfc9654dd7fd1fef4b094c1149b825a801d7f0fb54500fc1962a745d7508be3622f09aa8dd3e980e10db733eceadcb668613871d9d3a8f3b2094700f85e05026d3cc8f672f9c03348822e5d6de9d212c2ef38eb72fb6e07c893258f0c46791266f91ecf62eba153154f83e7aa6cb355749dc85d9749b1e46240465436d6bdc1dce07e7dd87b3551094b0608f98d411955fbce13448a9efe9aee07b6209308e79274a46172467fd2354996e1774ed822b360cb02d94041521c6b4afc7720578ffe6ff5897230582f83cf3b0a824bae6acec5d31c9bb051b6aa0e7fd66cbee91ecbca82c63e7988a52d1d155b3d832baf5a6ea440327510539aacbe5e34d6e033578b5838e15ae32244814cc60f29839e01640a0b2aabab6456d13e1789964f853569054b873a062e2a0113ec248a03f5dfc0322c72a8f078db50c0f028a05552ad3f841904699d28184fd98ceb01ce8a04caa8eadf444cef3b25d1e151c211153750f17a4e7350e0991041c496fee82ff6d90c2daab25ba01b9dfbf74ac77f150455b556ff02b8250d75802d9d15de612c1bcebaeee68f3835da3c15dc5093287563106bd44effea271c32af3b28565a941271632b92a5ffd79f5cbdd4c42160a19e2e64301b133e6f4ccbb1ef9765b20efa2c63c6a8f37c6371007084496db0d4b930fd9a4a804cc17932f1fd8a7adaeeeae9aa867bd2a6cd00940d3fd262980a4bd2e73afe6381cd1b30efeb401ff37ed8e9a819609d1120ed60aee03bdda978ed976260460fb895d4b34904770227795aa6ce8de910e1f9d06f2444797f670434afb8fe624070f1e627ddd8dcf7829247ad57d7b007150aa10c1acbcff74dc86bea61299413eb0efd4ca8ba98e26ceb1f86c450add728995a0860db23be06932e821c9b7a0d1aeb3e58dc41dcbb469e47ea13321dd2e2fe0112885d559fb267c586253408e153dab84d61c788277f3811da031ffea79f28f1c0583eaca7f2fc5a2ba87500d3d40512d15bede3484d3898588b9b15b55b19762a02ef543ed63cfe54970309dd2ae792e6ee155cc999956bd84c8d89733a65c11c3be6ec831dc57417682a4af2cfcf7b5e89e75c43233508a3f8c2089a52b72459981b1f464f6add098f579f075f61abe48bcd3383c07723c5756a83a6134da167808c501afab2229d359d57c1021495eef9760450bfaac5492f9973d7af77c6dd17b95c7118583dde573186e8f6b487013556cdaec29334ce12c7b5d5931ce032632862b6f7c9464e5eeee20938e1430b77257cd12fecadb8a451f1901b34757ba4e29eca32a95bba52d23ae0c68fe2c6dd5c12242ddff19b0df69010624f16a6acf45c70484e4e3d027f706c37850b685ebbd929738f9d912b5a4b3b400c7c1371f0ee76164329d5b9bb0cdd9dde7b06e6c6a81cb38f559581863bd74ca3f5a3b769bcb90ac78136cef05ea74d8adc83404337802368c02a56668944f65c2794147a5e442b4c9ac7caad2d7449cee8e51cbd821bd71851d87149a2b49c1619c3c640cc2d2ff854edf623f7c1b4c0e45eab04430adf8ee140b56501e0e9c1943b385b97fcc127f613dca8c15e12cc637edeab6ed8dc2f1de62d51887c81e4d41a0a7138a6b3e7b61d9a387c1b9d325f444e89cfd99554bbdd678967f68b18832e9cac6b7b477a272123efee5a92859c101939a72f4dca89037aee962d8b8a06e4f1379d930cd861a1ea903b5ed82d64a8e399632e26504772b143de395f7d2263afc46589aa2a0caa2f01ee7004e687cc464f6315951c4e4dd0b16d775fc6e4edaa09179ad5502b79cccd9c56673fb9198e3fca4af0570e258b44065ef24ee4df373e587a2d5cc5a061a0199c701c302da916668d889c58804f6bb2e41c94cfe6e1a1d271221554cac5cf31ae6b35a14795c3a2ce4a7d7854657c0e7418284b4ec8f2ed8f1c750786decefed7539584e852f88ea6d2fe1e762c2d21a91c3120792af79c0b092bd8cf69b7c68a3e1bac1bb0adf09300181d4d8e1cc46a30e8bae1fff93920221a6a34cbca6c91a5fc2973cd9e697a9b37ee54bb499c13041bf93ba74573f93dd8bebfa2e77111ad3f87e748c8ab1041bd1234f397a2b28cab4892d1ad47803130b81fcf15857b5b3f4a1867f0bd30ed7d3a74654e3ca4560e1678cf04131bdca06aa47fffa3cd9b2dcda6681c503cac403f25309ce3054ccd8aab4fa6aab241dc3f082672cbc8cc8c64a576172007a143eff4200f60c6f9079cc06fed898eb049e9296be137fc91b3d55436f16df962b7a785241c8f5434ed68afb8bd0eda50832222c5e135c8954f1daa217d805cdd40bf0d3f9cbc2e5b44e95f42f9c5e4a3d7435ff0ad82baedde855637d239034577c089804a8bd460e6eb8cc20bc86f69caa4b058a33ce6dc340e4c72cbbbc06d68740ba6466ddd2a416598bc60259a1990ce6b72c46319c2fa1ff8bd871c5fc515bdef0095ac35d4d60d2b61ea623ea2957e151f38ea111a2a96aec9e92a087ef13f05cc9e03c4d9bb50b9ed9c06d35ef878387cc85414a09413ff32184352fe65e0ed4daec5f93f1a8a4785f23320520b2b54e662eb85c15da9eefb003363814e0a450775970f4eb095078d66585c81d51d0d8d99796ccb7bcd4f27d02edbed7dcc54b287b7f0914fada990fce781f0903809b1239ff5723aa1b2a27bd5794e36c36309ddd6167e5c977a93b729f0272bd3218759b0679cba87a75a3745af03b1d2e51f5181d8185125a97c2114a95bc898d5c7ba261e8e6e0c4e7300408bb99db1199a2516ece23c024dfec739be443f3a242568a1730f9e196a241660bc699843dd357d5021513ed108f0bbc5be7d9af03d3ca975bb4de67e79a57a5c9135b8c3c2e6e05f93f30e9c6197118838bb97cfb01b67cfacc3b5c783eb765d2eb005bfb03ebb90d5aa749125c162129e8929e8fd21b161e1c9cf619eb712616845fcde96fbde84dc19ce137ce04ce42352f73ac0cb38a749e9cc135f9a9faff8c50e84015afdfba5d98e1779a1efa76648dc7acf03d3b2b88296c3b61d3060fac51e30963b302ce1d1b9d14d7e717eec8a659f08abfb8fe9e0ef8cee3b1cede36607c1c24773aa198069b670ef7b5cd3305647a6584f33a054e927c1a77ed86e5a147b29ec27e326e54dc756c0bb763e3725eb52c712fbc78c6b9fca2eb5601f6886e393898f22e246243298eb60be54417edf5efea8bfb1f6b357c8ace4445e83126b7629542d65f2463f9a22a16de2e5bd27c4091d74d394cf64639b7399568c60e84ecf026953b11b9018ce36a4efd57718e2fe9d56ab6422317f478cac092a8de267d88894efb2a1ad27e6dd13de7ff1c91a1ffdb0a81ee673461a9ffa4ac8aaabcae3bc100040eae68a79d7bcdff2a75abc2431293cd5a4777031de3296a83a4b6a6bd5b8c3ae9b7f771d68bad8aec701e029d4a171babdb078b7c24bf120b838d18eef4a79b26f2e1fc85a1ffebcb3f12824a3aab51de5a3c20984a74c980fe6db8e8a603b50b2eb9bc97ae2c3e5830a8da30281a885a21ce4bfa548138c201a4a210cf73279c70f17b01adbeb18815c915d75a020a4d1b38f146616ddee401b31123a886288a3c145e58ecdc724ab7aa41128e3bec422a6d9055031757cb6a998a0c3b28ba84fb594bcaf8700aa349d807e6832b64097fad0bfae57a63341cacca2b572f174693a9d7a5b0d74d10394bf7328c7a87409f9a6890e5a7f0291602ec606eaf8fda39abd97f2d4fca932890a867dfabcafa3f0de7ac49f01d6ca998c2d0cb9eab843c8ee20db13343c90938f8f22a64b95654e40b367bb6baa0427514805e756c8a25c31a3fd1a81522019a7f1f514ca74a20385ad520f92edcd4709fc905add78ade62b7f46c307ac9801d37f7883d12d823cfe892482f780a5a4152132e25cc46789d4db28ea47d1e3b88117513066508166a9db414398ed80f98ae2d3ccca2b65ea3fb017fe7f099f013f2bcafcdf4bee866f974e9f98e748908dc83e12353e5070ef850c9b2400a0973cf3519d16a96de18842b8e44914598bb113a40bb1b167d138a60537ff816ba25c88f959b37e76ee3e622e58372103002a971abc3809faf1a05e82dec559bcf727eaf85eca88d3a1867c23392d9f0ce1d06e16a9b860f01244e90a013ebc002e5ad3279d1d8f26012dae4dd66bc02bb951c5f642d01e4250a54fa44d3ce4db7eed4b853aab0f610a90f829b2780d8e35015e79dd06fa7e6f7f4f5e9f1377a479d01ab49269754bea1dee74b73f6055802bbd433877f545fe70e2caf9440ae485af947bc7527d02831452b37d76f9146be3985e9733b7cdc09d8a7c9582abdb357cc842e121ce74423b95ac9d735055699cb3b46be4e05f709fef8dfc579cfb689cb5997f6331e44891d6eb15ec51145b1961968b63e1dac95fa81b37098b6b3eeb0ab119bc4e6bdf29343ebf481e41277abd38fb550c2eecb547c7077b7285d7f5e8e1ce8544753eb1c53ad185fc4226720d324506a3e206e1e2353836f358ea1d4522c727fb40a4538fb376ce226e5cf1d5006301e08f583a528ff5d76726248cd69423c99a60bb00194772462a9384caf883353805637db85d033d812fe75b1ce9f77e411d3e51451bd5d2b37f70ea1f8b7f8da7e29f0d1ee0405817a9c594ad0d33fe6890945c35e0feb7fae63c15a1291bc4c849198cedacfd6967229ed07f62d0f0293ff253208cab269d331d42e34564e34c68bba47cae730a7f8e86b289197f01f6a13dd4097f86edb0acb2ae5e47c95ee41202bbc042def3cb2e42f1eff58ff680a92b9720657f99fd2e8ab3da61a05b159f80c8ae56ffbed47acd9908b57802e3b0c8b9ad59487a3404abae52b2a08962095a8b48219daf9c7ad62194ba54a48426f35236b5dab674920cbe9d8a658b44cbca04b1a8ff900478414a16e3611876c5e159c9bcee718d7b1a4a63d3f0eeb7f29e47e26c73a2ba63a2d178128058140b9adcb36d85feaf7f3760261324b661c3b796deaccb938b8ac5f661f0b9ac1d6f7786150e6124847b36dd71f84a6f8c678bd376bcdb91264029cbe846b5cb97c6aa760f008974d025e1676f3c8edd7ffda43c00cafc62a6f47f5591a3428b2924b6668792c9ad28c5733b73527f31f59b1f7c93448c9371c23084ba2dd320ca7af320b92f2f3154f21fc246a093d1a9be2e06afcc6cb243e2d5efe720fef1e7410c47105790865ea087ff3beaa1b252ea96c7563a809d719bbd6d91fcfcf4685c8068044501f1830f45cb53356540723d32240bcd33deba366a7262462ca1268e2469f1085e136c0465db00a1ffd5d2116e45310bf0153a32144413af906fc7dd9f37260ec6a46499e99e51a174c6a7c8ccb8c62faa7a467524fd45854eeb175becd3a3ca1c358e4344e88a912cf59659635e7a465563588bba5e11a5305245e4dca5465b88012d32e0677dce72fe2c435ba7843f6ae442fd2873237e25c59bae91235452f4d88f0298f61f67f7ef7d097224d955677c54b87500a65dbe08aa8904c8a6e290103fdf3eb038f95091f4857a648b1b4dd03013dcca4ee4b1d5ec0d8159f2de4f88658516de1e7f733c92e9d8228161217875684aa745745ab9632a2680dab968bfa55759b1dfaa3e46217907c6cbf86bdb7b6fe35dca6d3586b1ce67acd5d0d5f8cc99b4cd4feaf0f61bb9132e43fdb91dca737d5cc4446554aac18d4d16d1d76f162dc6a3d356ae124af51fd33bf21d1b054c2339a6d43012710e3258f4f2709cf0a8a59be8a200f256cedf33727bab74757993044fdb81a486d4c61c911de78776785a0fb98e512ae2bd1e9485e5fdac7129c16cd32e65976cb10e6eafc148310fb96015458c72c6cc4f3a0b9c02af543fea52af58158e5ebd6c9f17fa5fe201e5f2291bea02170fc525a3e20919e2463dc5225c6b21d325dc0967a4323cc7512768994f531158e352b8604416c3bdf56818bee77b18ae319ee4257502b44ffc47a489dd1cc432a1e62e893937a8e7c690f9eb0d6bb4bccf8f08ec26680d9504a72845f6b376049eac96cef85ee90f80c5251d04508441d7b684a449fb55f8495e900eac3d7b122f2736ee8434f365c3dc7f007ce2cba2b9f417896680199c4c1f49999c8e350642d1b9419b512a1e9c16e9f3753204e8226a34aa56874be701550b8f6b7d8c6a854b7c2ff2df8ef31a38cf88e3978b442a7e026be90dbd04b9fb8f0b0d1af42f21d63ab7c72f06a202ad23061a042685126bbe03db60dc630fe19e1fe0935a28ff181de9bf21726c84828fe7141f2aa39a7285ff1ab54a37f53d744f99d8f090a37c156c137e1f950c4da05a88da9a38de1b6abd623308f6c1dca814fd351f80959545f90d935de81e4b5ac2c364f802c61c71f21b7094dd583d3c5a6a88f57a576440dedcb442304357143564a5466308d1ea259789666a5d691c0235c00de1ef6bba7bad78bac0017bc2fdd6ada2e1b960773192668de0776a8b61d0c7267e01e175c81bc5fbecef34dc1bacc7c3a66df8e5c70ecf1dc6a9940ebfc914b5fd7373ffcef0116e8eccc3dbbfb80af000e6b409ea78595168b21628d9926d456dac741e293171d682ac08ecd109a53fe2542491711d66de558382f7601caed5c4555cb18d7b3b5e2a37d2ba6ca63e85622c7fe788f0a21edfc43f027840953659b9ed0d3eb779a6eaf2a28d5d2223d5397ffa282fa4d10e9e6a1ad13afde42068a77fe2961266a4ada144a7a8001b7046f1d53db90eca0fed575fc4327f5fe792ef280483519e745eadbac403e61eca0b3807424fe1f2956b14397ce1fb6a965a69d38b066ce1ab70a465f85a9b4e802e2ba5796baeaaa17c903e773c5c66e1a98c7722b57c72ed57c6697249e0d554fa6474345d405bf0c6f965152bb7f8744a9a026339ff7ab80da0aad5a50da9b2dc72372dca3f3153b49fcd010b9ce5246f54a9c6d15e066f8eb8ed90f48743cee695a423272ab27df6e70c222d2d30f32a47a9a6ced470925c4df653f001d2334f1323aa4298aaebff52ff8d540a971df5a0ba7c15976312fb1eac20078f7276f014b262bad42e3386903bbf3b0bb3352b9bb4b1a056b854764d9fa8de8574bfc9199b3082c2a73406a4a81b0dca42c78c7226f8fd0dde4dd8447b9fca32c22f7af6d136621326203e19e33aebfd6c37bdefe666cd1f999ab4b93a6b555ade60ca6524d576ce7534b14864ca6aa50357c57fdc4546c5380d9eb52e23bf8b1fd624299b38ad26ac7126ac9dc01201129992dc7fc5b2cc9b89b0b32a1f7a4313da15b9ae7d4ba1293629437aa3e05d3ffe7245dba7eea79e5c06cd6770addd3217cf8531d5678c4ae28907f802c4afd08c9a470838eccacc7442f5f07db3585436aac711976ec53f2cd871cbec24fc529ca3166ecb315a6f030947aaa699e780f09ddf54b09ecfc9c2ee0d3f0a589438530775426e572953168360453ba3541b4dc947ee638c3ad03a661fc14d2c20f373a92c0f4b8c09e0abdfcfb45ac7338038ef1354e89f580f092056d191617854fe4a173ed312685b9ccd8ff03b30e5893af401f30592455676bd92404f2b51403915b7edacbd3c707402941d38bc67a2d7641ae47cf63c0f1226bbf49cb4b4f86f145f90f078485606b7656a787ffb4c12ede085a2ad400c24069fa2ff984d8f0db8eb174fc0a332082bd032833e945196df14db59700fd2034bec2f2c688145c8550bb04f279d8b8f1d9d3c04f51bf451b301d1434a6bdb08a933afc3275be53da31649f2d2e7e99a52611f145285e1a4815fcfc61bb08efc17fd273cd0455db93e7975aafc190124155929f337aebcd788c3335717badf934fec9c9dcd9628d927aa5bd4717bf965b15453a43b127542aaa09a3c441cd87b52f5017781e84e7542b4be7b1424b51cf9b415152a4dd162edd717eaffa67ff1e2a01473c0440473d64e5f8b596a2a83c2773087816dd727fbd8c0e1783edfb207614841521f342b10863741cba12dc06354b8c1f316fde1a3522a06310118548bf5381b732081a880f35212872944423be8fa26e674499b5673bb2e83bec8a87ee0540b56bf8348998645ffc0ca5a442bf30b2df7fcd215aab9f8cd18bd3bffb2eab13d9dac513b35dd82b83967795618a40ddf72014352db54287b72d116603fb83d10e30c98f3102c18d8cef7cd4e6bf585fdda13494b4515f23a63c487e2016dbc4b3283d2d848b78ae4ebdaa8789019530c67372886ebecdc749309276a156147eb8d0b6974e4dadcc6137344307af7101d83e3c733f3ffcb9dfec50ad160e53d1c68a5bee149a3fbdb5a15725b1eb7016d4cd6f2e02845ddc17326c4950818daac2ace7a80c6f516d0ec478658f35dcbfd16b7ad1f77b64b42160641a2f8c8dbf3b2cb97c70a49a60084501e0e787b9c28e688cf267211374edee4cba5616efb57cfc6ff9ea8ed1b38f51299bfaee589cbf7ec4520d02773d7182ea4c934291702c7b5c2d49ae68834a53f5d2b9a8537193935afc1ebbfc006e2cee83ca8d94bf1d1162f1abb51b3900dd24641c5331e43cd4634d64005127db11ccf31ba436c9c9b7a57744c6061553adfd570bca4002f8a4ccc93f388bc01cb0b606ba8438888c4dece3270dfdaae4fb4f8278f6561287c3954f148d2ba97ceb53568751276c063d8a54eaf50e30001458b9c56e80b075f1b24b62b7f5f562730f38b699a8fe57e8ef28a7792aed919eae563a7a00294283d0ca7a9f41bcc9cb270668edb15a694846dcf96189212f66f15ad2230640e7d19e407759f3c24c30dd65c3460ecc11435edfcc2b474c30875962be6a21992381d15a464c4bcc288711d866dc19e6ae37bcaea11ef3e8c5618aee118bc5fcae739cbb3f1e0938bab83b881923be2b7dbd0775381eecd1df9f7b90263527dca4f48b53eba9b1e9540c6516cbc52051e4652d53571f12ada9f7f111773bc381fe53a7f10004585972d4ee4db4b87ff4f679f0b98265609da09875264794dde2b532070ee2be74105afc9a3f9631a13bbf182f7a74733cda38d40335eaae1e9adf9f5d58044e7275bd5d66e656ae232d68e6d70ec62809c669477338dc07aa5d26a4a294e7a358fe003aac58b8c2f9ed359c0f39965ce3c9a1d1fc7e977ec4ea2ebaf12399e0d85c271047f7c37c064df64e77e242590bf7a3930d423119996a4f7febb2da647242faa7ab51d9fc5c4f93344a2d7daf23ef58dd89dafd33d898abd68170e2d3877d80e0ba7cb3bf894a83fe81695a1462d41d3f876ba86cf365aa0590678f12085105004811346bc2c2f751f61d9f9f6f88f59f3d55af766a810b62b8ab354316d82f83b523c3f567cb8b4ca49cd471307f380caa368773df7ee4aa968f2dd16b166e1949dbe692f47e3538a387a526746d63e8fe06b5bb996af5b5fee0db41d11f3bcd546a04c2ab26c98b8b82ec723dd339d1ff7f87d8a23b11ac0b81a29e19bb08ccfd3e7320798494134b3bfb616b3f339355aa3b9d649bc7015b27d2d8cd35428d43bffabd8555bfffa269a1374dabfc6c344687176946a7643a9a8d7a90ab5bd7cbfeb09880111f7936a88362e19f588a7b7140a41375cfa5a2f48e0855a6d49c082b5e5693cb2404a40a55bde143ddaa30eb36d69265b01fca477271dd5de215ae33698e213c567374736233de3cda8b1c67d86ea0c423f88a1832f9ed43a6c80c5d0c31aa2fced1d930e112b0141f49d4f2ec803f4fda1251ede9c798a6ba5ea502ec7c36062c71375a90e49f27154f802c0a8c5ad49c3900e2bba0230cc1d28d8574eec5ff8defcbe64e6200bdb72519ae81eae54d27bbf51b7f69f7acd7646e4d1c0e4d2e68dd50b21c9dd27758bc9be982755724c4c53243f628b35d529c89e6acf33a56326cdd615cb945135f1ee8bd045299fa1f3db7ea4352323e201eb13a5ec9a09e76d306bd6641d94e189ec1ff5fd3badc6dfe9091949ca87bf9e3e0767cf2a35ec1b24f75bf079861c4e08939d581eb0fab0f0914a9c5800def38a54abf367b8715c2f4b682fd04735cc71f07e63cd7327bff92454cf1b8639c9061780177f28a9519610bcc6f1f27fa5600ab8afae34dc96264491aa67c20e3ade1085be890aca8f84806abd74cab81083433fd19caae37303d3f396b6138436090d74b0e232c89f07e60b005c9f3a55bca79de303b9c6caa9ae28215ae6d4017235fa778a0ac27cd974afde4f349f5233ee73010e56a5c0b216aa7ebb4200b36b974ee39b6c5718fb3e348d669fb6f9b03e7fcddf7aafb1f951da022cb375b778507f86d00dbed71e5320a37ceca0d04ed4f4ece42e30aa2e3964a845e3bd4c611d643915a05411e34d249e1d823b6f75d714872c008def38916a8edb9aa6079a4582952e24aa95dce7385efc0a02052b09c6cbd57ad477695f82767af60b4ffa1cf37b6d1b6b21714aaba6fbe5f8d4b119e5698c71766b7da10f4679fff2e0c2958b8d738b6aeb81357c9ec65e35b176c4b316152989ab70135f8899054c49f49c18b20706091be63f2d54f9301e854f0b7d0ceab88e4820edc2eb375c5d6ef53a8196fa26904eb5bc7636d9178dce092b1588e732060bbdc10bc00c5d89068ab204271b3ab515620f68999d6c901e4923554a086434ed0debf17d7cd2dc1d191898193bfb5974a47823364815aa9bb5eb12183240789d822a673e782b9594431b9c6343a2ce6334a6bda70d460f7e7ab0603b124b2ffd156a533fee1a989ccafcc0c058ad4c50548fc8ef4dd79a9414b00e000a90a6a500c7f263ca84a83fc6eaf330101b1e9c2b68b8ef1c32dac0709484382bfbd45f3b50e6b086dafed72b3d9e74b306e919f1b5a0f25a15db775a6108b84425a4a9d1220cd14b49cd95a44c549595d8e392e5cdbe225db526423a5272dafee45c3604ce5e93a15b22fbb3dd4e5d777c4a441e49e61026f8a44024411efa0737656d3b296f68aff08e622e5aafdcfb4f495d1f372b302ed0f8a13671a4fb504fdde9c90587e70cabee75ff529ce52cbbb6844619155abcf7442c48d684c059e5d1f77e6626492239b4b44004b98e0fa5605005f13c4bce8e2ebae63379b28d0daa1b092758ee181925f39fd557b4483667cfebea7722915d61b8a5ad9340b0312f8b283d4ed65bba02d815110d74d19b1a01837097e369bdcfa9bca2a85b59fa0db2b1fdd029a81e3960ec49f4b3bbbb155bf7aa56f78d6a66a2f5eec3f6813bf7af5f0f50b0ad5c4d5a152e1098060edc4593c044aa2bc0f2ccebea928c203698d376f5ce593fa670ead0bba90c830b159c09575aac222188e699c5bd99d5c07927375c7ab613b44e08a4157941c8e49b31902470914c8fc7c138112420a82976e31e916e7f15b9e8ff9e6eaf283873fe47ca99fb5155b30ac26d9dd124d2e2ddf8fcd01a0b443f10eef3c8aef91396b21983ee4dc823d79963c9f8492f9d4c9387d355b8db23905f4add8059afa06d3d52381b1137d294c2b195337ace4e2e5e688a4e7f10bf8adf5ad4dd68895b26c4937489e5c1363cdbd0f4bd391225b077a5712a9ff03509e5ba1724278b3e4602f0f984d2effb30fd734f7bc41063e8d7fb93e28265df3712d981e03efb14ae6d73bcb7b22d49c38664136501626d4d1e60d92a957df97fd27aaf680ee4dfc06498ac3ae54afb444302c256baa5f69e0677f9b48bebe9e7193776c913964a639fcf510553fc6c5d6ebe4edd22f93b183c1d3eef3b850e0babf9aa9d92242fc5bffe34c6475acfdda59dcd232d8451fd04e115e91ec41d0ba98138878ae42a27ccfc1a6eb460129843b9715735ef7ed5b0837647f547171dc5e3854472f3420e8f170ff8306e5dfa86c0db1c7de7abe4eb7c0f736f50c493e9062d9cf0af9897578f3d387ac917716c73b8f0c99ddcb51a764c6a5945c889de250199f93b2ede57199ebb371981d10e28af8d3a47bec8a8d027e18c30418d065065d04bfebaa4eb5c6e028dead94ef549a0b1109d43b4c51bcd98d740f8eefbecf2ac462490b565777c9f582b1cbcbed333dcbd5c5150649f0b1917462297892f70f7771b8daa9e7941060bb1431c31d8b7e0fac67ab86fd798350639b08134a516180c18240f64e8cb11aeb526c3d2fd4e651321ce3912f022099cb22f444dae29ca81906e0e133b7a8e0d52de88d8fd6ea9d734b17d9a4f335067703b3f4bfddc3b9fbf511f1e608550f008bfd16224af2dd8cdcd830308e14d04d67b5d051a8bd4ab24b360f9375ba1f83ce16cb9d4e616a83d0e3d646753a4a668378236e13b1b5f03bd97ed14c90d12b6398b74039c66e4d9a9d9936b14cbb35273099e017b77cae232029e41f6de4921425147bbc162a77b411c2046330d96e1a3fbf67f7ec6c00cd66ea17a2ec88e8e31c56e9ac6c6e0000c444bde36394307edd6f2309dfee311da4d6b6f7c931bf1c41b9e50f397c4c81260274fe06c6ddbf20f5f42155b8e4469abe54514d73fa397a59f2319b723397e1d0d67bda6f7173aac9eb322ca413b394689158efdd0de0bdfc76d90890a3cf2629c298b0713991898abd8659725532f34756cf02acd44c364c61d875373befa4a2d4b68ed5ce2359ae5d8998c5f2a15c703ca8ac8a059a7ce56329f1d3331884f18b7d752719a9b060f2f9b02c3235da39e23a0c10e0482b3d144dd3f89087cb8840e931ba80a5693f92cbe9c65e5f63a2061e1baf2122657a4fbe6ebe23e459f7c202d391fa0a4f08f7375a826dc331ee5dfb7cef3b327c54395915075d08c19de7584d1c66fba061b7b485b1bb7bbd4cbef5f98c5fb245a4664c0304a3ef25c61c705d1dfac0efbdb101a691fe89030c656d397c4629efdec4e93073c0ed8ed5386be9240323d5f56d2beac7e27254d4bcb833892455f8e8b4ce5132849402bd9533f88beff762bf0b5e3dcc9f07daced7be504d4637643eeeb1ae54dfdb8c978854e0b4fb58266df8044876d0069249588c9d06060be0310ce40436db9580f84a76ac3cc1a4d9db74e32cc8fdbc08d608588e4f545f6f533297a8cb414cbe262f81c49d298098c4b0f6a940e49c167fffcfc7205fe69cbba48bfe1fa266dff29e91bf1c5bde29a01083b3b35d56be167e84de44edb2a87da06ecbc120c7ae0f3a33de905bc3a102c4ffde6e54dfcfa293b89bfb80fd8c3b5561eca3a694735567e3a111feb7b1a7050d80980456db144590e3d5334f7b92dbe641ed4e091f0f58b3f391c437913c94bd9c4c2940c664e9bc8cb81c5dc8830d7bc258e9bd944ac0c51b046e35e9f3fd3592747d41ff4f5ce391309a3248433cf61e229c7ce1fe7f67c4c248d3289fe50b684f3e698265eb1543c2691ba87ffe66a57cf15cef6ef76dd561a28e47e097e545af66cda7f997a278be3b87294f3f4b938b13b6df68b696b05e03cee0e7cecf97f6c4e8c85985256939524323768e2393a647117e7f8e2a06cd6798689e17e729cd336800231d46591cb44a77cec2c6d98e0f5b958a2a8eb126f305ea7e8ec8618cf13a6f08092d5b2046e9273ab664cb49d8780e70ab5ef8f05d8f2177040430a939a10fdd3900a572b589e7f67b474dc98eda1ab4db899e1f38b6e59ab5c8dd27dc009d85ec709932ea0c8fe1e50a69d61703c264c9401613486187ce9720b67064137c397a3028211465a039c079334775e423d15df1c8197ac55b3598a5a822a1dcf0fb086a92c6f2d7024e7bcfcfa5b867618526441c16e0439d603ff9434f515dc7eb6436211c19d13a7d3e423eac4bf78f18da1777d9137a4310d02298e8b3292b536a33a97adc4e281a109868c3461e228fe4a9d86cb13f84d4c16ff5e6a3fb337bee4b4f5423049fdff48ecf821ca723208c457ac180a558a2092f043254a039a8b34625b4a5648f291d2c9b085da4b2a23aad6a28bb36baf7c228e7c0427cdded03a4d5dce0fd0e9726eea7b47773e25db4c66ee6148dddb1547364354ed762e5e8e34f98616a79e22f5709b910a278eac2bd2be91272c6cb2d27ba11577265e3e3c95b41c8be3a3aad525ee7e015a22267f97e411523cc0a66ddcfa05e375f6ca4685a21b73f331c88f15e0f24b205f40b1e74937ef6300a812c7c79f1738ac011f5e5afe35355c623a7f3fabdf437221e17a99c6c80b443f91f23acc374d7d71303729f01e20319bfd1251c535acff946132fdc3cbdfbb510f04cb7a3087e3e9563008c5defc86589880bd00cb0a4e57378b1e9e8b8fc1648285da38319ecf32628c212d092e7737dc553204a197acf39fe0d20cbd1eef7e362cf8302c355e78989bee589808ca7b2e2dd0c8bddd235e877e1ddfbcc59fc94a6f71ae5aee78c13176381a653cd5b2092cc01aa897c3a0128471ff06627c60346e315fb48fd5bcd986850db2cc8e6f79d18acef09b1fed16965d28bd76f50e392726137b37056c31e5bd7ea398d6bba0140ae4a4d9cd229d610b1f27bdcc15f6fda5a5b0a085b84e80108bbf73389934d31051db64f76368ee3ccc2f451075da918f129c7706cb3819637973cea831ff8f21972d934ea167c1b137e12529a1a9e41d764abe54116c0dd7618feefd265e81ce983828fc1e42cf1d3df1bddffbfad0aadb08419e3b5bf12c04c7b727c6c3ef9c5c1c9255d4d33e1ccd358477e4bad0d94cea1aff1de9fa101c330468c133e4858c00366e30aafbc7af276844b4a813e587474a8b4fee3b9a99cf8c0d7bc9266e8a8bccd53d8818e40964c25b87d6e506213a554694b8ac86e3fc6173d8318d2fe36bce1558e401be582fd542432e66399822feba9b8706feaffdf3460b2e990dc3d2f0bfa569803334eedcbce7eb8cc61922082562106ee50f7bab56bd1467afcff3b11f52768b86e9acb01ad81c826235a20b5f8efbed0d0002126b914eecf8748af5e0119cebe8ec96f2ad752444cad4cc5a067b65c1c732818aecf9d9855d4351b13dd624ade9327ed041163d9e202010f686355f6ea4cbce9957fcc7d685778ca984b287622ebe5b54bb1bf06e83cba09001a26cb0717620bfc196bef662247e3d0be0f4362211c74443b49e3e937ef4a43d1f0733b79993dcf02276f008c2f143dc7ccdd084be80959b94fb25e7a34899197a1b1c4164a72fc7403f90ea14b3f7b5192a040307e76782d08d04a7f319f42abc8966811cc2d905887882507a13f4286c5455434d849b44cf3107c679aca08065a60cd267a9f8a77f19c225a86841ea814b4b102d80eee13c977e97ad8743b9edba02e2360b4f581f2a5773d78a71aaa241928a2d29ae64c2c105b86df69edffc8201d7a3f67cc36d4a65252257cc03a61dee8c5972f74e4288f884588707bfa8ae20ee5560c8c8a4298af395308c51e3f9fcab8470873f50173a9c068ee8a1276441a5ed9f75cba20e8c861f792a8209a5c97ba6de1b309d6e4b1e22a258acd5bb48b793f1afa656515835fa1cbc361d212e05819a63ef1be0b1ac321ebe441e412a7504f6010642e251f3c1075ec193260695ba257fb8b395ad5e3ba1833cd776c24558305e2424c1ef499ea9b1d4019e314fae27110a71094026f58edcaadf4e8156598ab7335d83ab773e7969f61c28672f7aeade1e478b825f858d99ab60b3e4c66dce29efa0d43f0e886fe506df95d6613cda00aa9ebf4c840d080d74e201c3d8fc2db2191def36aaea89df6f736e9b1d050ba3b8201d2b3e56afff6f848965efbcbc77eb4e28c99d444828cc356bff6abdb355db666fa55025f5b4580b0e736787f1a3af60630ba92530731a72fd8c7f26abedf87b57d5158390ff77244aaa91262acb140f996d19064b33cdc6c5f19920f2f46c63c64c8751fd6589316a6c5a1126e5f1c35a89eab9a78749011bb1879b2aab532e864c0d1cf956eb2c8e17682f89d581ca4640c200d337a70d88a63eee19962581b24a8ef4096e12ba4b31ba8f5d84573f932ae29466c0c31a4c5834d62aa204ce39c97887f3c77042286113738c868ca48a556884786ffa63d9195d0ae9d25cf25e7cc14d43674313243bb82a6756ecd00a5279f12791132a55fefc208b83ba583ac10fe9c7a8f7cc2eda4c13221c1e4704932d8f14ac3c451c9bb4826337f8393964924313c81a19ac4adb6255060fe0fd1b5c52e3cd1b623c9a73486efa251b99b73602fe730588f5c44c987c321f1a8f7f9cd6bfe74f6cf81c3b2dc851cc2feef93b352373b5abd7b7df197825d34ce82d1ae9d33af0e046eed92f35bc6cdaa10c5df86158870111a364f70dd40b7749131384d2d4dcc351850c1c99c2611f6c7a0ae15c47c200dac14bd4623b075c88861b47701cf2baf7d7aaf580988080dfcd6eaef9c827b05985cdb48489ab298e878121e66d71624bfdcd2b974c1e62df3737ace6aff9782adfb7c8e2d5def0da4d697572c7304614a0178d31895acc21865a9e100d288adf5baa55d269edcefd267d73d485630b4d418531c3e4d115b36958d92a3499027d0dcb910b9940c51ca54ad0d3300e3fa34a79f168c219c7740dab5f2dd0bd45fb453e97292ae8e2711da73db65777edfaf0e38c5dc2a7d097fc647ad207e351c621eb972d4fb891ca76b543cc7d279fe8e6b55886c206ff245935481ab2f4ab40e25620fa2dfe8e0948672ee4164a9839df0624e86e7b7377624c2bc79aa1783c18a187d9f80c56a24693c5d593813f69df99092d627ac9bf4bdad3e0d613a7849eeaa1f69625892005fb6ef87e80612d62a90d23d6917b806222e23129afa55464b169e0dc7a33a001da2aa9a8f99eea4925bb3de4a80c12855cc0c87687f5dc07eb9b0d5554955404d894c963b9b23ca3cc6e1056b6741fe9de61794b8115c140e8315498918901ce78b43fd2f9657137cda1d705515229324a0a5b6e4eaa9c1a4b3b7136107a811663f1724144f90cefd250f0cebb6c02d8b11c4986b87c79ff99d9842eb64642db18f1d19671804204b18f5d0e4f2451ddfa3763ceebe35a92390692f72279c6fdfa7c4bcc9b3080050f7544b3618914d6ea928adab375b259d75a0319499d2132b2d0d77c12e7e3a7c3cc6fdf13f4193ea19fe76bdc62eb398f4b2253729d7e3d57daee80a440be69c76acd179d21831f757b645528bae0bf5521a157708e9a84f4060c9bd0701805e98bef04000e4b097195317090e8633b718a1212fc6e47ea3a2f3234afa82bb2ad6c8cc345fbbd55e74241a0bc31b8a90bc66e8085fbebfd83196728a745e6390722fdc4a259f7c0d8aecae8e88718702747921bf6ddfe797bcf32a33f306cd8c9cac13f278e6d4f27aec990a81e30e6802abdcf272f90120ab7220ca1cb93ef0b64fb2fdde76884cf877c5739509fb0260214851276c0935bf7460397966689d9e5efe7756d82e8a1ade6b858f17bebd2481f38f20e46501a34b56d2527a4aae5d08930e98f2be036b74e42cdfbcd244f4649a2e72aeadf39120892027a3e752301d5f9a73827d216aec0f6158c10276d4d6372d5660a2eeb4adb4488a7dd1a716c889b441c0e9e50df8ac3f18ab6935e0321157c4e18d8934a5025eeef599fbe6f76a5b2b4cb62f8f3c104b1ffa34d75cf9b0d16ff1adce27a8be9deb8436b5a70194080c81e954807ba1983f4b0b396a9ceddf68229975c6037bbba865cae4de2111dabee1a665fce9109320a29abeb3c197fee6df213f8a4ffa318341c92f2379ff7f210a779d2aaa537fe54507a97bbc06a73b838a9a702160a59aa2c3c2eda28a5cb8801ed92ae19288ce0d8727fcf6d32d5d550e8e6c1b03c5b26eca0f80bb8b5501537addb2c555416456a6c6dcbaaa8f987a3dba7298610a8a4ee251c877ca4dc92ad1d2471840f550c230f179f689966012f9539cf568ca368791457b34798250f9a0e519a147bce4014eed3177b129a7c070d022e61a597b207dc48940eb4018f8b039e65388b8066c1710ca71b3cf38dce4f2550ec0baaa0c724d5ed6cf7349ddec9f8e9691b1748a392ab3e64c1ad1b40fd739abf070fe71bb2e6a91fafea83485fc9e1e1122078a6631dd3d7c8b115aa163bffa9640b841b15bc3d8975bce4502860261e99ef21ab6ca4b9d77c3abd6d1dcff4f96e97d4112f28a82fc3683dd176846d665a26ca07d50f692d24958a7f81ec8d0700b576fb8370a53e0f9bc97c60dd2e3ddc0beb025e1c1a85ca7a85e95f47fba99aca360d5db3e00180671c54e52ed4f0e12eed5a2d0a64ee78c6324a91e48ebe9795dd2cbbff3d6c2b5cbe3066a5fc0de1fdd8bd6731395efe891052081613a7628514731989d394e749173c6ba9a8e9854942529b9f962c48c3f7488034e8c9c591beb2ffa0cb35ab26ed78baf5981948e35a31fa07d1944a34a1857b70e50c47de13ea6460342b7eabcb37bee908f90ecacde66490a837791ff9f791546a5f94bc86d2e12ab5f9f98fbaa23b523128e69600f244453498cfeae39f0fd3673100e0f855b3753d455a85c2335922ae0ac21b9d4a373e45a069eb9313e3f868fa0dd40f128d7c03591d53e33af5d6f6455466d1d686bd181aacdb96fddb9fccb00e0888db3bce94a434b7475b4c7e9644f09888f376d40f38fdbd4f9939ba7252cd013e3618db4d37c5ebb50ef09db5b77f4bfbf25d56aa0c0d2ea83b891119614b8945df48ef484978f4751e0d71d51187665a978f243210ae6262c7d49284628ddfce44d542b8b45b15292b023951093aaa039a171d5b9f3d629b3721825d5d7752ca088809aa7552155828469a5719a053a32944369b799c2bbb193d2f5661b9bf3280a1ac682f152ed0dd9e3f9302c991e26400912543b7d5460edf05cdfecbd8a7395a9804a9c2cb4066a73da74611bdc6e0fe8b42049fe7c64d14139cc9fc3989703547184c007eeeb2a6f0f8ad7682b125b42136aa316b3a1dff5931db8aa61398237582a6aabcb905b64efec1fc740630211b0583527c5d5ee5915c52d3fb19d874a4a5e915622a7637e86c5121b7d6f26de130c4b25660018f2778cf8dadd38a9b5eb76cdefcaa729c1033f260ae97ce53f8f0062a248a8bf49bb4f718dde2bebedacc29495ba1377ce91979cbf2d51f586b88c39e0da9973d9a56f2d65d24b41cf49d3e34f29b5afa494c82a8ec09b0d6b714de7e501f510f5fa9ef993814663d9a6a6c97015e417dbcc3ed2bd22f42dcfd9a18c85ad3fb2a4b409e208091fcf4240a9b94982eaab40cca5b3af78809d181279ca02f476b5cbbe3b4a28894553636ef5418db7023f01f53b53da1f82ff3c88a747f96a18bb87f2e6b6dd4fa85b513d6450a2b368fc511f0a609d1c250a1da9e11e5d681d82b8c72ff8f47e4515aa2e6c10d172da707cf811cd0b40ffd747006c7a3020de458bcf43298743db5826d4e3dd2300a760ca99ecb25b47a392d1f074eb810c2d5c6c4f0c85e14fb5e1564bad4f32c4adc439bd3a9164820ff68c27642b24a48e35fab1f0ce4fa3a316435a3c46beef60d1e3d87734a1112ba31b5b3a4acce99dd3f61ac4a3c1bf7c2de7712ef905feb0f429a492739ded4ca55a14658d627a2a5d2579b538c6c37de9403625ba83aec3f146bc9886f93900693ef1ba58a3fa7af422babfc15c2b701892a7ab20524cecd8c677c9ee327e63591223ab8f928998737bc9d9e54e8c6e0d2b83ec3bbb7cb3b5eae45335927f494aca679216189b348e452aa982999bce191e62dffdc6c20e26b7a0a56d66cee5390e00953d49eb12566a592c91819c49eafa5affd4b70f76c90a032dc2707d217a1847e28952734e372db7516958fe16672f536f61bd9bf5bb48f87da75792a7a3781b75cfcabde5d57e905ea5c6c08bcdf25224981d8018134cdc12ce8c99187aa05350df2ec1fff45dc34b1e66bd1d6ee343af951c7e28698275af25a10913e2a705042f6788f4cf5f1c85cdd0cdf1f8bafcc2a1633a0669919e10e2377cb166a2c6261b9a948598e9587e0ac8847b566c09ea7a84c6cf0771734a7e2dfe9761bcd13b6448cb14feb9bd0b61ea16beb9c56635f675a4048a3c065a86d9e913a38eafcf3b275aaec2559945d06d579c9248ef1e4f30f6c65af2f1341befbcc341d8e30aa78463903766988d4fdcd7d8713c433ea83ede2949be22d65f972b0a9743b90d53c9e61f75f47602032194416af00abcec1088bf368f5f64b83dab3d0f0d5904f41820144330998cc3f7d8a9750a16d0d3de11af700a905ee23eb2a57d6f79c595b3838f7d8df10641f7fede1166cbbc86a2266e66b70b88d3bd784dd567e67167c581331f23058f921e8c3ff68779c473675535e57fe5c2b07e47e79bb56500ec956fca74666f3a0fd5ea1b0488f837221c317ccec0cb110f53642325fd674af4408a72583cc73f3e96589e67402985af58cbdf6f7d91a4609497984792724c706e40f06481b678ecc4ff4475c011eae023771725d911d1c52b2c5e1b894370c05036fbe8780729375fea7afdff86f46f26c852ce11f1ba76c3fa32eadbd3d946b20e35135490727ec7b0eace4921e9c25ffa4e43c286a3c1983b14202fe7e5d851cfed9428129f2cac02401b846184ea7db31ad861424f8df55916a8a91a0c634c44a03f024b2a3ac39542340a32c9eab046370e77dd438c5f5ffe8183f1314fcde599268bd4f6aa8dd89bfffbcdaf2a0a64d67a16460210eb89d6f2c9489ee95c5e2dbb282497cdee7a532e8691d54d0afa7a266f21019157fdaa969fb68e21d030a48ee5cb2931486ef0ffc34d3f28d8bbc85ffc0aa4c2e66d6b1e53788dec8c2eed5e15e4a6b620e909dc133739ff9e2be4841dfdf289c55a199400f95b72d0c3696da93c646ee8d39578527fb514f855c76540e38e1937028e68f2c2aa51d10692fda3a9869b9c2046a6c9466a1c7d93b6e4bf1bfee518f4c0f1986f5c50c08a25a15c9959d7cd2423a57b8894e087dd4e608296d8a3e371101dccf4e960a6a3165c24d19af945077dd938bdeba24ece66376962a3422c38f9eedc4447d4a739bb1371141f0fe64ef9e6035ad6b2e5fb1c10a3ded2f6aad5e39a25177413c4b8c345a8900b56526737c3e9efc8b5535e2b1a07f07037d2e691b88e80b8f344127f85bfd98d83c795ea8130ae369999432369db12dfa1ea1c702328ca877a5e6639aca72e235ee05070a1ee421f6081f8627663644a4e65e059dd157a9ede60702ccedbd862e1618b5bdb526734993df66b128a91c53c1066511a290b3498fc5fbd375cff128d0789d8fdf08921c68d0b6d2efc6bc9f875f2077228a60c75b5043097a99430c13963a82afdbd34ce89c7adf0a15a7e4a148555b20e7f908a909085cc72501c71d891b4e7b41195c2681b3ffc37de2bfbc6a4d3e9201288f7b0ab5cd7eb79bcaf3cdbfdcdc28fbf3f66858ad665d2b958d9a121642830245185359f30312268ae9bd5ecc84355a5991b0a03996b9cd0ca71fcec947792af62c2530753b3fb901411f8af0dc80e2febf28fd48f49c25905d5145b5536c74d2884a8e94196f1b2bd65b73cf7adca8f4a0404e5017d1a7cfbb3be22bc94730ed644a8f9e80ca348adb303b236200c270f676201dd170a23e873e1befa8194cbf3ccf7b7c6f53bfa3a6e91b5b174f974d0775fa4fc50c9a9154d8b8ba4bf565a436bf0825802c687f8c776e1a8219c8880f7512d94f5c4546ac0f6db8ec82605c1cc93c28b6e1492bcef882b69f8c99c540d61284bbb4ae1b3f2c6c0b0406358ce36700279d8c4038958005ba05b352c85200f06ac8c0ef942ab23a4671e48c3cc69e1a56b7ed193b00323064343465fda3f8337b823251774dd1b0f275f82358ebefa2003cd50c4e3f005c27b9bbeef2e94a8efb6769554facba470c8037142f9f4fbf022675348dc0a5992b2132f2d77127e902e0465aece58d2185c477f2f71b16db4e9276059b6ca4dcc8bb31a305f1d8befb00ab0be0b7d0e0c1a95e1347e231626a6eecd31af360ea0f2d614174e5f3ec25a753d50493a2501902c2669aa11c72ef767d8a3627abaf41d09d4c4386e1cc15db17e0f13f1e1359160617d3b054e00a865fa41b6c45d755ea1f4e3444a8eb3288b9eb88939b0742804281b4165d6cfd31fe547a313d7c76ac020e2dda13553883c7836b33c3de09d5372a652286f19fbb66890980269b8306dacfb8ed9e08b6e049a3816aa65ed61f600bf49300f3d84cd31800968c758e49401c833fc0d8909b32d8760d4d2d462ca4f2cf54fdea2787ef0a9c9329735e9a85b0e16b7da77d8bcc5c386f6b94eaa07fb64bc0db5b1c62b0539f37b72ced33eb68483b65ad89aba26a7b653295c6e99daf217ca8c0dd59d9c5ceab6a34e979145dd182533a95b0993f365d6bcfd2f23940ebe06e20a5ed884672616de037db97f1bb94a029d2ef35eb247f52337db2ca30acf21e36416e667dd8fde4d36c84d954e9409e154a9547ff44e4e0312584c65045e909d5911c4b56d1565c4352e299b85f658430572a77ac5ada7823a0528719014937700d9880aa327f9ff96af4e19cc80e2f8b2a6c6ca86b3826e9b69299080a8b14713d9dee5055e35cf2646f37acf328507c4572897845c3e460a40d0006f15541584014d2a597751df8a8af42fc51bff6cc01257461f5a19e219a7b36722a467a79466fd753d8ea6513d07b500179cd8d490904e8484ee2d4173eeefc668d46e4811659b2c9fe0613c12c975926a59fb458dd3c8a4c690d2408280b364dd7783ade89b38c5072f942d63c247ac632c392435111baad1fcc16b16416622927aea0840de6e628a1c95db03ad70238248789ed0b8e97f7919bf841f3cc80e7816f1c9c237cc36c7cd30ed08ef88db49f0c65d30891baf1a1919a20490f647e4e96f6f9e01338b7f85341465737c22c6fe76e4c1720540776313c84d05bbdf9da748773709cbdba8f05726ae94bad81814e04325c0fb447fc4f0a4064197059d58e2f918fe4d900becce729496ae03068dc9144cff76c0a6208e633d6b1f2bbd3e17e450e79fc068574a5dfb384b83bd9df16dfbb7d908e9ac0653e697cc878ccbdcce954d3a8cdea7a260d155e7cf52f3c92cc3fe7bda1dc3d423758785ea79c2dc2e7dad747b876ed387c916c3a6fe8d9fa5cd002fd7823c9a16d4ed7d40d84ef9825aea43a4db655864aff8b906b25a7a529b55d9f6aae63f361ec577f9aa7fd1081f1af08ffbbb59d1f6880c71f2e283b538acaa125810b4cf74670265a8ea65e635936c3a89b9490568c48ec8aec979e65be374858e10f782466485354a53593beb0f9f7d0ee1a75345d40d1d66e98687814d6ed74dc753241c88430d6bb2b4293524fcd17513f5f5d8213210a6573d794268f4369bf6c3468dde0c97b86076573b37e216ee602a399d57fed4da7ea56e4ddcb76a99dd20e0b8899b4b61d9ebf55d76fc7d4d2bd71a5e5e7632caf9801adfa8afae5cfc8ffc0a4a76aa87c034773d8a93a6cbe7b243575b591791be1bdab91c7ec1f6f58368e7bcae2e503034dd664a1648e5768c590fb8b620a2d71d8ed892f5295db26365d50622f21f82772b93d574d85ce4baa29224b42f94b503ee61d2aa22b383a4d28d71a2ec50056a0d2b746d1325917325548e10cfb8080b81c5d2e5d94edcd4d5db8659246aaf18f2c3da4b6a6b081f7e701ee3532f82ecb7fae69a7642437fe590fc5d44ce498993fccebbb3191b30ac59234520188741a1446b621be4cd9f07befe5d0dc846bd69075bf79fd3c04049577de6c9923a67676b1e17af4992ab622da8a1c5ec0e3d03ce0153292f7c501c1dd8dd2636635f2674f4373d082c89a2f4a4661abb63e4879c4b8e6fc8b22e37d28403cf20d21a365d3a24cae439c63022c05435de574c84770135179c507522c6f0084d37bf5f11fc56ee0ba590fbaae60699d26b2c218494651959cf6236e92fb694d86375d987f0143d6ff08503a2a3af42168e5c0c2df3acccafe74f22a7cccfa4bc66941b1c836bfb4c4d8a5557f0401a118290d349657cbb34a17d8b21f1436119c617a7c5668adc60714d67aa57a8f87be8f823c0b3a913e6cbc4f613bb9968cea1110b85c6f780e774a98367b4cde5b7e0b02eb7d95baa94fc6262643d751a7b08e0ab11576f2c15ece1a3e839fd54231f6ca0a70adec654498c9631b3ce9a5d892d26dc67c6b0878369795718c41d80d8a63c3bcddd30ea01ca09acfeb8d393afd21940cd617f55fdff6444aa0dce3ac69111def117215af3f7a736b99526b675084ecfbabc6f7c367874ccf5b2ab51a17e26b9a4cbdf559720cfb9c332ecbf73067a5ab77e83dfe31bfcb3fb12130357b43e3f4228e11272b7c200f56ce8c48e9bab7f589e5bdf1e4118cf68ca7d4cd622cd4fa3ede8a6a62fcc87bd6397c13e8220f5584c4e672ecd4614a47d94ae6fcd457efde56b786147a0a4d3843f4d140b65701e2202e6ff833152f34273ee55dff6825522f0719c4585f4537cb409c265093a16c71f6527a35c579183f91d0fdcfad9a805b79d0f53ee50e42d316197570d830c39e87e22acff657aac6347139367413630af773b1f2f8c1fc5f0c1c2bacdcfadbe913d8830ac27c17e62ac4d0e4a215877430500546c16bbc2b3ac5eaad2ce87a22031e4539cfc381a2814366daa0568ffad4dd82137b5d0b29714f78c633acbe2dfe69f139168e7b084e61047a75eeb09340f2be4a989528d5ad3d3f0d75c994dc745250cc91e88f26f2059633a3e8338cf835d10c04e4875ab343ce1098ca421298b5edf558a1b8d737026cbc7e99f69391edd9d81d834d83f81856172b81de3a026e9676d0cbe85d0a2db9d70475ec1cd95a76c83dbfd67b50602def3c95d41188dedf4ce6d883ccd85317af700299095c1d4edcd3ee3065f9f14f4f303363b8ebd39e4a8954e242eb3b01bb14ee96aba4028a58746d9db7fa20d8c76a2f211c6c9870b9ce8dd2f634b2583b38291312caa7573163841575fd078b42c18973ad6ada330f78eb120f6d0edf3ffb7d50a82a276787702bc12b08854e13c4d41666a1348ab2ca72d84d789dbf4083fb23246cce6d34385581c8c84eac984ca7991fa3bb5dcfeb124d8b6d1e0447f22475c41a82a467160a67395679516ceee8e039a0f1563b329b0c00bfdc1da5eadbc5df8105495263ed3ae093d392232e7ca391a9e6646a20dfa75f52f9603fa195a3c297d61ce4c7e8f4d4a0c1e39f9f83ecc6eb183c73f86e22c391238364c08736de16afe497bda145f8fc9b5eef4d419dd39cddd3231c787663bf5a24369d20b7461e05e84f8b0d0dd64d2643bd0e5ae8f195b8e525abd41024164f43a1814cf481f316764251f0e557ed637252a318d5d2d30d7133110e4fed80a1c3e60cc0cea5bf265ff6f5539747acebf325c926bf2457053b5b761a09d7f28fecb3ecbdbbc6618c794f060ca2a172df6efd9b14d7691f4f495543e90623aa93ecca709444b6b02c1cabda2bb7b7a7d7b39debf0a01e3ab267e72b678407e815513bbb5d8811c6b6a60c93ec3e238c65340b6727713020f7a359717eb249e7a6902a8f63b89f2cc1f759bce0d287ef4a865abfd3f6c3dbcad1fa4ebc35a81b12822c00e699000c82f5a7b07bc125ec28e41024bbaf4bb0ad08b5c2b0a5150442e22b84ea05abab660a9704e38d3c9232ac14bb2770ee3edd22b223d211c31925d0e229276a3be73fa1bf93b86d3dad63df2df6f3e03d616f401039aa77faa5ac51e3f51349126e12ac2efe0bcdcd0cd7a516e82dfa3c348044a6c2564dc9888dcc2fa8aab842e8da21f2a8eac999fb1ac71bfbdc8eb60d6b56d8a5f3fb7a3aa28e636c63e1d05abf78b59315b6f6cdcd334dab9ec1e35583607c30595ee391ac476b368b814065382f6e953c9a55b25f7c3e260189627fa792ce23b5477919bd8bcdcd26697332b64618d2beaf852d925857f2bc327c9755de7579e9fa40fdb45383c93301d83626c4827b58e4c6ec3020b4ff30dbbb289e7d981448b086db2e7960fe3ec0e71588302c2f565cacd78a5396c4cefad4696f6800d1361569029a3f0c22f6b5f54871182f83deecce8b6513654776d4d9f237df4fa283ca33e47ac989a490014d61f88d3e94a2a14fac80a63d381c06c272cde645b5b4e489cc929e5002aa5b9fff01a5b2a6ce382aaf41f6137c76ff401fd9c312c56c6b6020282bf5106e8ac3da52f8a42c64a55712cc1263cbd583ecd8c882bc1610dcc8b2c7406108c6efc36f1b241dc33e8dc0229dab6d46c529b33d697193cc32a88bf89e919c4a8bf83c35eb4a4df8e5cbffbebd980e2183dea223daa4b683fdb39224fe36252ca3ae0b6c1a8edeecf5eef4bfbf5219c8e761ff358472a86da1d52377a82bd83e4d284ce7c29a4d2259b926f107784a22dbc4a8ae13f6f257295ceb4958d169e1db15a865511b5708c6a3f5c2584dc8ce09f1d165418fdc537188d6a2436b6e158537f5559243741bf3559e202d353383262307b260602cf0d20ebe577da2f2ddf7e22321de4667a6bc2e0c14363c46eba56984d23dd0fe362096e00cc602a4a8e8817d53b2ddd77807c27b21398e07ac8d26dcddd50caae1db3d2d98bf7a8983d512333f96c6ff248457ed84a000896ca193ed6ed680b27439145e937ce04b21d9a53bf2a2416796966667bb49863806f33c2b8aa062cf35549fe226156b0eee81e082996794b1138e20090282bbc03e9d7f3175bf27ff2d38569a574137d7b6487e67ab2c8979fd09e7ecb4ab5c79ad3a10ad7a610caca9cc275f61f8c587a570cb8973c9eb3ddcdfd0dab7bacd67ae7c7891d4658ee0e86bf25fe8bb786593d02aead9580c5e8f1728cb529192cf8420919f3600f28bf1f70c4b0b851832f4438f577f1b4226af9aec382c4ad7520f630c3cb3c7bed6b588bd48a04053d4db47062e89be66ec73044f444ba7e9a2affdeb95f4433e870064c2c526673790e0962a65b60f533cb49738a54b31bbc047a9071d04b10076d9cbcb0d3884bacfdb6caeee97e06d14ccc0c16d2d0d62cd6e1e8b481abf58125454feb58070327bcb79d864067c17327fb1b99c6a32996a3f8c77ad3089ddf6f9dd72d78c98dde1557101092f9a3b6e289523803c763eab61891e6550daea8d4306b519f1e95b32b2921612d230c729c893b5e73ad4d3933295a8c3d61e1ec6d0db478d9ae72e83f77a1a4b8cd62acac35a5a27bf77fe2a2b59915e2a0cdcd653e81d564ff5416b1412a20146b1db45682ab0e9b44c091ae9fc28639a1ecc14602e1f26aa215e2af16857442111d3c081778bd2c24963dd7a09113d628a58d68e8da9871a95b6617eed787181ea0d399a0870f1f4381c85d18ac38c0b223068ac1b0ef8b3535e5cb26f5515065b0d43b1161b04537f6d057a580b6ea801c611df6510d2d52ecce7b610d518934656d67e61fa880c472e1700b1880ea083d329fa386a08f69a5ebcc95bf13fc0e2f3299357afa1247b5ea89c9d2c940721d03a6f8446b0189dd375917636f849b8efa0e56a91c5c736a0dc11e6c153c1647e378f27c75bbe2acf1be98c47775d3bddc6a46a2c44b5a5b89dd6b66257dc055fbf0dfd814453265c3a645a5929da9c505c5943bc9766d611bcf37dfd34ee923a73f844fc456999648a0dfab66fe2df6473aed6b687dea93a9f34edd83461d59b5994a134a846ed382a22f33baf5590349c70b4401b4ae064868d8209c8f0385053d3371cba93a90c66cbcfd9ae0db06121965eb45bdd3ce658d971fd4ece10ed9f5328163c31b0781019691746f9919254626a21e795deba06514df22f288949721b827c9a8104f86abe798e5b6e63eeeaf540ca52cd36fd785e547c3d0d71ff9482041bf8aeeb6d9e53f76c334d15a369de79a55dc5797212ade2046de6cdee1efc81b308b89a9bc31d28f20dcf2f63a276cadcf2970000c0991344dd0057ba37b27978bb4db6a97b9f69f6151adde23f2a4d50fc34d730996450cc2ce28c48ec258a94b5cb9fa4187422629ff41f5962ee731105589cb010c6298120611d461345b3a29cd5e9fb553768b3b531bd064c8151e7ab9fecd2b4c98f189abcaaa041a8fa3531635604a17b787afab0d7aa1d4305cce530cd0d8010359fde2ad90ccfeae84f39456f76f11042dfd30ba009a3b9fd701090ed7bb9dcacf52c9bbb80ea4e83ea3a6d21ed311ee219eb49c26e2f1176b4d499235a65899d4da4a355b6be1fd9730682c26a38cf26f7fa366d248a2c0b2fd9c5378b454f33af7ad5edafa683f849118b8fd04e99df5aee33e8feea1585ac441df3166a79d97783f1582d72b02243a0bc02684b5801b84e9dadd006e3f9aa108f63a4516b22d405b73b37bab36327c2ae555e39c66a9b0221e9f32b5e3fdb2b8c76039a1ab14ae3467e99454146341a892441910f64205c9d0ac56e0639a56c155da640dee8310e55d1617d3938997aed6d870186ca797763d727e638f0a453a5a72373b5223350a23263f1d958fb4eab1a07c7b3376be9f604fdf7948c269e9fabb3ef6729d26078d3b6ecc9d5f3d685cf7d955159d1bda4f1b1b5ed32ada8308fb5f521c8e04b22a1351a75b08e30970a0910e11d17c68b80b1485a8971a1c64b2bc66d4904289bf4ff3866c1cb321a75b0d1ed4fbf37f077ed6e371fdc8a8e123bb4acde3c1ded9bf8e093132018a5e1da0537b8e09af4015a072c400c0e9fc1afc5710a56bbfa844657d13df6f81ea6d29043e5a208121971ae82c9541dbb8376e35f5275a0acced472d5342816fadf4ac82245c3b9e9bab06a6a71bb66d647219a6daf926fbdead290892c88f37cb8d4bb5b5415e549b51869f08f7b96c578666ab06df9169ec7339992835b4224ee690d4d43fded7fc2adc9c4e18369c440a1a9116fc8662caf2d134660d89b67bfe6597f99f6e25173fa7b1cedf68fbbaf4ef28e0e73f735a4bd497d9aac0b6bd28a31ac0c0c4c39168a2b42a9aa5f704e9024e8334360018e2080f8c9786a67dc7aa07bf76249b964703ca8c9aa560804aef6dc81d2bd576e5b3644d55188d39a3e473a9aac01ea40c0d78d95b46d8ab690155ceb9088c833b57d52294027982741030a96b560933613088985bc3a48ba46d5456641bb2177385d3ad6c0c5d8d054274fe1db2571c407e687f867e358f78171a4e47d4956983346cf2943391b642b445cca8e427aabbdd41a3291df8fa718de7b372fe64c3cba980205ad18d84bde809e7bd48845a359ce197cc88b99b285279300171a512224384115d7f6bdf56a83ccdac8a9e5db86c0f6b5ce8b27f96663d96248aa20a58d2f3f4f0d6d31b72ee9d98a1784d6a6eff84ed41afd5653fc3048b3aa4ecf005266e38491f5d3cc6f4fb14e81c2d579c7a18dd35879baa1afc9650679b8faa3976445b416961b21d4ebf6085ecac03f424eb168e5e8b11387a1c818c4e80868c427efb9455a453deab4551b16fad1941a97864b5425fab0b5973ebbefd66a890307d5643b9e2c27a11a19f6a837d71c0bc7e94deb6b9e4708b7799d31671d9ec4a7b5860929d1f5cd4e153f24cf3b9b5697e19326a0b51a7986640c17b1e2953a02d47f33179695a61d201531a1ffd542fca428335e95119fe97ffbff95ed04dc753df13295838c48569c9b88a1f5959601dedc75dd64b23b91ec7a9ea7f996e5ed0db5f269158e34c3d92776a5e34721b7bbd202a339e6aefb018e7b5e098ed31564f854516055cdb24b205e825ddb332da55c250428607e05953071a0449deb9df756ad26988bdc0fd8db357c757d21819fdbdc78f183d509503b3197b145b48f832446df40780d0ac19505049cb6c4f9b81a5abe3ad40293bec1bdd6c11778b276a4da5494d7704eebd86ac64844fa330b3d86c97343f59aee76efd3ede1c6ff9bcc1ae0e67af8cf829b180a47c0245f26b47b89db3dc75bc99ff0aad8e1f227ad532cc31446ff1f40a2535ebfc8a789f7dc067a49e630b0851cc135b68294260139286442b4c056d0a8759958e56bfd7bd12b06a7ca0f04d61cb572ed1005e7c8a69a57794ddc8b213b6b270ad75facd3b5a1ba4248e6d4b324f53a3110e5f88b0c033bec5dd6de952138a87959f3ac8447514867f35cc2ea21fb48898e9854d793585febce970f5fc071defd9d9cc601bedb56e098b92ec574178f05e4c42f509d8143d438eaa684d0c0eda0f1530ec61b102757db6d6f7cf8eddd15ccd4e19cc8dbde852401af566762e9bb10169397e77905b101898d4e4af5dabfaa78d8d525b7bb23faeefb4e57a8b205a4661ac3e5cf8cd94644965bc8fa462d1d239c7093d9e1314a2b04a3937a272f44c8ec62d181b8a2de777bac039c944caa8ce4d6f7f99053f513490866cfa0662a44b2024631c7a4ee228405abcece7d852dbd1bfa45cb3636664f6df436c15c65e95e320237ed47ede54c664658cf85dac7b98019ddaf76b8c927a9ca5093a403472fda6b1cd761348758597556c54107dc3abd8756a57eb6448763da53f88825f3b461c721fc1018733075c4b70bd57c34c239f63854b88fc26fb7a98966b15107f3fbe2b6c0bf7d3615b198bf4f4bbf5957b19a80718e6794685237cff72fb99f8aaa0f036979c2033f6f218507e91f1afcea0b1f590e25ee46127116c8d2505df7c92162dbfaba2fae5ebc7638a45b0c317d3b7878329a698663f8e6a3d2c6e5db38dbe23229bbb48b96b8d08d7f3c048acdbde6881fb17f31e255d6063965625e6c91c621d8ddb2198df028bfc1b99e52bec5349ade3c135affab156a97e2ff94031a04240a39ea33cc44e44643d8b942bcb523ed5d72e621ad6ee4e2e9fb6f02ac08c78114464160859bc2684cb9f9421eece89dc21d235353a41a11bf7366226911ee215188436f67ab4f88bddb4441097dab1e555fd4888eba9f5dffbb1e0691f28a2c48689eac578271cf7b9045154ae00882921a6ae77b07f188ed20d30010a2647d7b4ca29ff06ade245c08ed74d73592952c49396593a6a2893ac54764c59974e63d34c85be88da272062fecf8eda74bcc0213f9a2527ed7ba46203f4d0b076b42407c2861c06e9d3c8bbb3c31f89d2ef95de346543ae2cb5aeaf80380bb512a57beff010d612d0387a57c97c9b4e7a6d9f8b22138e0724a595f08e25443e74988757c359a8248da0ce3ebfcbd4cc414709f656ea117943676268aacb498769159cffacab105777fc62c802e9f4bad4c2e6f69748f720f06b001ff362522d282c1e9fe6a8b9d1021c0690d35e7ab1918f001bd60569d3f42025e52dae5e37cce4b6772e49d6d68454036bcdb5d6901b4c50d21c2d7566f0874c662f41b8480dc0b318aa9df7c6e403ee9c92f8d4bc6508e43810d4b07ed8a763aa7660ff889465f94664f9720e7c028624e0646da4a9262768f1b9637b28e93814c1577ec725b8066cf12bcc08944fc58ba7534ae6c11cf5523a8356b64ed6bd6ae69d53a4e9ee817394ee697629fa92a9e58848fcbdbde4430d2b51ee314068385d1e4fdc54583e13206d050e579cc5b8ecf9514c3eff5170aa0baec8c866c486f3d14171abaaf75796065a338ceb14ba8bbc1b2c0c47bc34078981be4579cabcfa21337561e14df2c276553656daed14e452e73acc1554592a67c1541b2c381167a70bb66c13f77134891323d7ac5be3358b3bdeec2315351dc258dcf55d0559c4142f38bab1d1f67556f0801ec9e7da822cfebb99aa09726ac2c5129104e8137f9e69c4b173723650599810610ce4a7d97aa95a28b00884110dc0f804a95128fa7cfae68f2c575bcb29c88e10468bf6bee2dcb3dcf371de5e3998d6d7c49daf9d35cbd9960972801d96daade3deaa7262225ab70133ff9bb66df0f30b3273a690ccb8fae38be507f9e6568ee017161ae72740a59f77bc386bcc1fe4e12258f78622fb6958315be2245d3997bee3d3776e15c1d3b8febc5866d0aff614edd503bea83323b019330acba1c3f09718e7a3cb6d054ace51c157ee7df06fb305140cd3ec48689a369f5170a6f68de50c24e34fed7e14774fbcc3df8fd2e8217f53ff9fa19baee12fc15ede8fe117921d2634505059195ae692c82567e4228730faf84401927a7279f822729d917fbd01519b3e1f8ef6f78ab994b17314ff34b6762ce350d25b8712ce3924843a3461d5bc271e7f7ee22a9a0d9fa3985b84eb84294798254def4b264f7b6e3abb3091b4c09ce338e70b08ecf03361b018f7668b565ced3cde59f6222b1e93b2ba58ab325a5cf25447924693ffd02024b2e8c1c3fcb525b545d3c2b5c72b6b893d6a11fbee2eddf62f1a6ed22849395c163202abafedf4f4cbfe96bf7188d6312d1ee6fdbb641c8c82a05c45216f662a49f85fb99d021663f9d35b56ac2966b5f930107da545e0bce9cc109983c3e57ccf24a8e7972fe6089e5a6503071a1a17ee2e21fa3835e19398854cec604be49f4dad6f3f994de7c148266b608fe4efb0fc22042f32a822343752c98a8b49970911f37d1f0f22e00266251170dff1614307646cff0d2eca1acbd29deb6ff55e93b41e1e2e6a3bdb43a4170d3918e36aae8b0717b1210b3cde194c48da5490033a73d4d71e6cfc667f3bc4904d91b5c1f31cd88cd55156a282f40c987bdbf37b32aaa0ae3999e9d69118cc3f294afb8fa7e3970a1c5e6d9f505719a1f0753ad30da662e2bba7bdf0f83e84f9c3a4e2363e6737fa650e647b950f3359e44dda7572e6cbd53cd0a0933807ef436246226aaca3960e0efb40cc2d721ccc2bcfab8383d7507fa346415b2b67250a5835722c01ecd74261da2cd9cb5d2963ad56216c78288bad18c7589ec8651270525d42bbc3571dca59923bf9ddbadc02b7dc9fa5c39a1d61d599fee4650f91e240135ef5723812f5b840fcb5aa61f9aae6793083342fb8e3805ea48abcdd14e04a03bae70acc1169dc092523082590d4f16e7e7ed9dc39410326c860782e2f65c4b15608ac7d0f391ac1d89bc9f123f90b3e4400d752f3da754bc3ecb349a351811261749add4eab527c11263b8fa8d64bd0ec27cb03b7391a4875a6c7e59dbd5954113f978ccbf56e9b5a5cbe210afb47f2d1a0622976b795aa864e464128b66b73b52075924241a2708ec60775079dd5e37acdb3c799f9c3e555730088f2f52fffa03854f6f43778ba1c7d004660f30f2074b0f5e67a94c8744b1d05e316d53e57602aa826898397c2b688f545e7a71eeef791aa52a3d6e07dc7f49023e20d8e14b51501d9e5500b18357547f817459e06786585c789afdacc8d4a60b04288450cfb375bf67f7bf19bdbe9a11cc1714b76f4e89f10e88854f97cef3ff73b7ad22cd9bba7e0ae73f15e7aa2040b85fc41e65ae527e491ba8ce28f5c1ccf723dd61590ee7762c719af714066a2c49f2fcaa5a60bbe06b4e9d801b2ca6d49db355825f9f65eaf9b3c0e05f4e3d398a7045d1398eb06329aeacf083e6b90be93b8585d94fc2f29d93f5e2dcd1276ff4a29cb3397780f72735b3ed8e981a24d87a95ecd8ed31c1f0355179c15bf4f06b32f2ba745061fa81c2a4e8e69c68caf5f3e07acb90076f7d003f4e30cc3a80c742ab01a7f7ea90887604a3f6e449f283c373c8a5ef3f5e4196fe516809ce111430208e5f26978e48a76e2d63d4e632144a93a4dd99f729c7dc232150164d7206e41d5d2e9348ee930c0e3657996b331fcb34485e8ff1267fa215bb97df95fa4cb5633c99d5c2da913927a7792c8c276d198258e04e1374771a9088ea7d4854b3862775e1f02c4717788d95a9e4fb5b61345cb94f35e79ad50323b2eb40504e4ae89146e42094174aa02c7fd933f3d27a49d42f29f41cc0b3fdb1c6f6d355c105513e30a0e368d950957fd9a3b3b0f09be5b0d4f9f70364433af4b1de3249848223bf0c2941fd0b11a619f07221f437eb41ec566ad312b3577ef50225f2dd70e61418fc14030cf93d2f2013564b84165f80360e80266566b91c9682639309780cb9421eace3301d3a82cd15de37a9c1465c71ddfd043834e666081ae23b88c66e6ba91d65bc69208d42ed1c9b04b022624b32e50e926ed01ddf5509932859f98088ae8978629b5ef02163bd15106ad35a4c4606a5620d7dde51d76defa73f626cef2601952f10003421a36a5d05ad2ab0a72a34353bc02a33dfbf186e37425c6010d92cfe2bf2a17e4239358648d15868b89197bbe8542975e68fb58e9f2db0e85f048aa06ed28ea9e740d9af143394186ae28031483b6863b9a040b38e0d09fce3d704e48e2487bbedec1c7055b555167ab82adf0a0c47b1f59dcd4140b878b4b3f86247f3c019c4f4007fbae63ca5e3b1604c336901f66e66069ec832440ce4aeff7d0e5f638c992958359f6f317628415e7c0ac17766ed58ae871ecd8b70f766f84d8d602c543b55617b7b7d0114cb15e862900f71cbff623eabb917aea6d82ee4c3d9281f1edbeb9c3075de9d9ef99069bc245216aabcb2b07ab65c8fc8c38b3774eee4a567ce531fc75b7bfb963640002cee1c2f7a2022d40f499655dd3fcd5c1188e70aa7eaa21382481a937bba51ffdd0421aad63373ced29210ecbdad662cb647d2fe030e9f37049884e274bc536cfa5eef193e974b9670168982091fc17b00e47315a0d6e45b2e1784ea11746e83e7e800346396c0772144630c2a67a08cfb7240476fcab5e64d7d0cb014e6b0315c73ef530d2587903fd83ebf6898e297da162070a07115519b8dafbd4ece389b4261d6f4886725562d065a97125f554a8397cfd195258baa087a2b9e8d38f6956a3f053ba8a8d5108ca9aed3acec9845e8b2358d6d96141260617c64979a8b2c0cb0896d53df245ac2f7a67639658c9d332edf2d1a49933fb2025b253781531d1a549974a925b9a2d26b9bc88b008c59c1f14a1d0b9045fb14007c795922e55b649c8f5eb0c316ae81e608d4ac51ddf8e9b9ce2c65c0a9a3b14a34fd3866898d8aac06de95afac15cd3c93e74f6602ea9c26a410cba580a9239260d49a39f28dbeb98dca7fa5ebc1b1ae751757b05012cb331de0b576821227d18e211b3b2eea568fa29bec38ad734200f8ba67eb144ba16416985dcbbff89651728e891543673123dff0a381ba3f0e2fdcea8e70c1df922b7c9931599609bcc19bc85519117ae563bf0b3746d40bd7fd7d08f6a9201134592026e1749706eb3448000ce722cec6aafe5211c6381598d08a36a7984995e49b2be7f39cbc457329db6be13cd4c1b77b4fcf1885456adc92cddc619e20134a5a2e6af28ecc30dded40c35039cbe6cb7c1bb1deba7d7065a287237ffd82a79a72339d1ea9e1c478ff07c5c6a41785bacf0cc95f47f05d21f8347de6c0d764b7a83e56bc9a98133c3c79b15e146c1621375d0e554fb2bd7109671b12fea4cc16cd4fcbe9a48cc2f10158cdaef7ccca95b14a1914e2e5f0c11b977523a3f45a7fe65a1a08ee6c8bb7943ce2a4e3c1028a749caaff4a8ea96d046ec60743c8f891e8a4c2b3a924bdcc66acbd72ac8dd5fc70d62188f04570f78e048eac91978924c19b284d1746b7b01b2daf8a20328ffdcb9405bce2c3218f030d0e4482d9606cc68f14119926709160900eac760c2cfef48b81687b016be887abcf9939e4c7f8cfab31c165e0f209f49fb2ffc0a7e1f543d5e2c9b1ba526154001b7746047a7d842890dc96bcda3077227944f7fa945349831acc03f6ae78f70b8317d287296da6fe2568955edaf6e1eac30b6aa85fc039f440db163baa9421a357adba9ef963694b4947276838d5b445f605b1fc11b21ffc0e4472214519b39c31f6c95c04621a3136249f334ccc41a0fb5e665baccdbccb6224f5ead4ce06426bdf79dfd4d5a43d8ee8f0af06b2a6b7bf2a4180e819456cbdebe9ef7e98b24ea33af994ec76be47d5c5ac6065d052f6b3e1607baf015ec3c76bd9bcbf7a387a3e8262e63ff0c342f2cd220201d431e84deddb979f260b56c9787fe4e6f1619be3ad5613b75a90c0b21b3158820ad6d68544e36b8b03736c311a83b296983ff2fc166ee1af87d9b7458b7e3c26f13bb059180d2afa5ea5cb124bd41d491e070b386d31de7a1bdbacbf0224173f130154499098eba78dcdf5a14ad193c88d49f90cbb8c56da775a89984a068bb3382844db96bc13ff847ac4b97c9577b4e33b602d7aeed289764d482d7662457ae4c47f18b6531ca6bde63b58da137b01f50bda17b884dbb4f3ad183ddc4e8e242328ff0d047714f2e569a920f2de4975a57bd5894a4a047a2844c26c9f326e51a968e24b1fdad96e647e7ad778c0572e6e3cee0714d6c471d571e6c3c675fa364260e4683bfa9d59aa04bde76982071934c51957581e6c223d482e2ee6eba11e8e780d7c3d72982556aee4deb78bc87c6e9cbf0421a29488ee7296fd56bb1fe710e1f2a5e805e0f825bb44ef8c323c6c9d50f9dfb1aad9955fc1d06300c31181900808831a36442eba71a8701be6ed581099c3780d9732ae575922faafc00d73c373a9bc1770a9d527fe975afe91ab7cfc58dfa98963452a2adc3c3e02ba76564f4b9179e829da2f5ba022cc29dd156fe37e7e0c74df35d6c008500ddb694257173b57e8c47df7344a547a886b26929649fa9d80c642f37376a4f82d6eb454b9da7c76b89116b40df75d48757b6062aebc411ba8eb15ca37c1b4c0c6d7631551232816a06c7f4c9a4263651b9c2f49462a23296b939d0c48ad539ce444af6a08842179d84828c0ed8efd8a2acbeaca4286d8c475973cf84427a92df6ab4e515d27438c9d9bb126cd31eda7f38162ce5ac19a31b5ef7d9abc16d3a152151de1e0ad9882b218511d34b758bbed058f1a980f2d4eddb6b85cb548c6a7af738babb85cc8d0da7e6130d1f3c17e324988f0de7e1acde63e8009252a7259a90c66071e9c03225f746fd587e79ab1ff5a69cb5edd9ff5893552937c52b1ee4071ae0be0c518128e735502ec6fa48c3868012220f07b98c6d834a018ded0b859068cb1df43809139c738aecbca80bee14b74e07ff91f51613b37e2cf98b8343b1d95d391fe7ed933977991a2e82356a6af2c32ac8ffa00609905916af8fdf8149cf286801bb8bfd704e849258f0b2b54bcc11e2ac3d6af8ebc03ed24e76be472362099c80bc8098257d0a0b94b69a65d5ab26e509589a1fc709f902f5ec938ca354bd39deac21a1539b010fa35a84b59021847cabe677e7b09cd782fd0e83cf5d19102c32bb0f57402a7d03582f8017f1db3ed18c63de122f4df19bd634a98ae19a5aa149a5d190918f39befe3caeb30f6f2300e66c47ace5e318ae5fddad9156b8fb6fea5232b41560e245cc0658c6d38db015344cb3f9deb46c8a81c9a822f7ca171020475bf0d8e3b9ce830fe165c02e9e7e2f793c472756b667b81307c63f3c790369b53d063119715b2d5fe05c78459198b5f17fd75e4eb71c6abc11afe8fcb1ac4c3049bbb4ffc720c7866849c33742c73482f1790126a40662382a8b0e23d8c69d59eaf93825294fd7c68c66e86ba888f64de08f3bff7e92c93dc000d9614aaf7054af6ec6912f9bf27b929f2481ff92d9130ba9097eb9a5cb32ff00e473514d3974e4fca18178241ac2fd9837ba7026c6d6d679f43a2942f046fe48ded73cf77584a3cb7d10b2ba511a8ba9fc316edc04097f51c929da8515830faccd4c5acf16e27b240f3088cc3e44ea1686c89bd6f31707844a9b335632ff098ef23aba9637aaecc77f431b4a5bac01924f71dbd16cb7f161c4c40337ae096a07df610248100ce9d6f7166760983a7a8be3b108824d5d2ccea2e8aa29e9488a1e3042e02162cf1bbc4475891e2aabfff4219e80b5d796f51b95bced24c11cab7f1dc1bbd7fdbff8310c39834d70e6f8064b69d4d58bab778daa6a340f55204695baa2e932effe13c77d96e44c3bd575efa51d54a023a340f5e33a87d7df77054398f4d052848a06b1c788866338b90d77ea394cb1950810e9c07ab79bc78f99a878ccd2888267cb0a9dfd851eb716d438dcb1384b2705871b1b1c3ba013713a5a6fa9045fa179976cc10361461c6012c6ad48b78b4e2efaffbfb098e8a532253d9916dae40461199b44887004039c6417cc2242f5bc62a1b9eb1dffe0c5b6db4c9021bc0b1758fe1988d96c0e7a90cbccb3465deb56b53e2ff72fe6e31c0eb17021f2c79b543c8ed304bd795e8c82ba48795c57028f9598c4b9abbfd152679a97391d42b4ab56c9a3affb32c898a8c9c81da48e8ea61d112f12f3489c97a37d5f2267d608215708bf6f53486466903f0b0d53c6788ac249a24ef52f8d1e1295ab6a6681e0324bbcaab1612644d781f19ae1584e56089bef75a5ae2a8a56e524cdb3aeb758593a6bf20c081530046597c39560b6426391dd4cfdf1c5133afdc45e268f65558d8d6f223b556eb778e4bc3b2804c4263c30c3c030e6d605b061fae2e9afb6cdb46532b06193f12fbbd5f22a13c0134f17c81e138d84fef72d67c4c873467130682f2721d7c362a8c4398d52f10673781decc21f5ea8a9ac07b73549b423604e139767941f87cce5db3624caa10b7d615ab26248510293a02175cb778ac68f60a3af09e505da56952b99bcf0523b3f18666c40879a5ee40e827accf1400520034c84aa7aa6d8c4989db2ee855cc6a46ff1bf92d221d38b598f7be68c5c90a0ca2520ebab62a4bffce0cfc6f559299f2807417061896742029d371bdc97c848ab06ebeda5b3176c9250fed01e3eb40315c1d10d6b67eae8629161d47c0eb01014b27687787263c7f44a6647181c15faabb7e06fa9b49d4731805b41d2c51f602739b3b04ac3335f3169a710cd47de9c419c255fa2a32b370eb771539f8e78ca8c0ec4adc3e93f50c39896faf29ae5e8dc528c0d00b11d6bd8a54d71aee135b98db7dc8c8362db5e8818bff1beb32a9ed63b2c23aa840ba0652d916473f1aff4800815ea192439e2473a482982e001e256a1347dbb1910cdc93b7177a006aad3583d67971d22e9523cb058098286ec6a9a7fb2d3b984fe02712febbb7a774ee5e473ba26f7d2a8b75f621a111b21953deb8ac6b6d1655127b89d31e2992160f9748c739dd9a31aec5988e2d2ccb545a5292e0b038a4304a072301dc3b808f05c813bc3d9637eb07a708b730311527c494fcffd92d03594b55004dce9d150bcd9649a3e2b1e6a65d58cf5eb3f356de85fa12a99effb471884bb7a44e7f5bb9798620bd25163b6963202df4b275f92e0f1ec2853bc5819f2ae5cf173efd3c778703e1bead494f08943394b2c0348ae40a465272108ff2ecfe0d44a264b30907258e6be194204058402d2b95725d3e225554d8f36cd9d9befb7309c7ee3ef6d87d90af3ff619ae67a7054c19102069334958c0fe04f7c75850c380fa13e89b63444c3285586540cc291706d1248405ecc8614b0dc881947130ae03dd2fc1750cffb08eec4f901dffe9349bc5e26331999fbc0a86143edbd7cd555f45d84862a0d9daf08df1cd74c96b0d03aa7eabb081224e677281a17b263226541bba03295cfd6f9cfdf1a2f4c0041468ddef9366f630691c85b85b1789eafa16024792f084b110653a898254d42ff4a83dbe53dff2f50eb9701ad59790b76ecfd27d7dc490c69435ec7591cde71522d7c9c7abc84d0d3d228e2794a517b38c1be7575515df0ddf8bf2b9559a81dd73ba1428c97479ee9b0fd3e6df31379eb58a33a5c23601e0a5f842ea927f8693cf4c87ab3058d4be9a8b18c5c2ee4a4970213261dde192f3ada1172cf43f06bfe13c7378cb8f89edc776b1a6c6d2054808d99cca6fb2a2069bc06d396e2518f2806ef5d7b756013b00035125609a9663521ff8c7cda7aa1ca823d406757cc7e9da76a8483491e10de03a41340443dc7caa52ed628fa618534fab89e43917100fc8202745d6459e37bd77e9a45092aad042497564ccf7668e27cfeb3428caea6aaaeb5e68411c9a8a51e9a445858e1ed028cad25b6ec6c48104173512c0ee695f0d88b2d9bee4d6e32814e994c80003fff7145d9acda24ed3b3a18b7dbfe1e5b7d360ec2a6810368ad750bc4258fa448a0f561aee1401d75e889e5ff1438439e2210c011214354905f8477cfad24d788843352a25d7ba3ed942d619712fbb0e635adaa1a8d68eb2cdf17bf42e3e116c166f4a00a4d8895d56cd201a70a5f13ad7724f9f1bb279157994bdc4e24721cfc100a26e984e8e7a73adeb052ae5912b14a0a01bf407f89643a5b717a7899ce4f3963c8093bcce542807b96646208e6239d8378d647631ee189764a94a3f66484e068f239428b1bb80889e98e12ddc02c5f134914310ef047fc7921df3f8a4c32bb001a5cc9482b7c09cc5085523f46cfd36e98d9e491e2804c567a69a4d4431b7e371f9ac8df341b5d3ebc358ed54eb411d5d250e8652c81256d9fa2b7873724a20aed8fb21968e3380e25458fdfd6e1470cb7736f141ca4c31349db61624730774fda708ca64e3082f10f31400f35beea720361d2d4467d09a997175f8903edddd9734409a3a01ddbded00ef5bc165325580843f6ddb9d086479a4a104b1236b8e283eae9c571cc98788da70e6f27bcd7fc1ac91c82632eb1d1de14bc9c5e9731f52d13554e064a55303f4f4d999c6589ceea0d2e76c3ec6a722d8b52ed114d35d28728a3b5d1f4f6e13488195cab2ce3fc54dddb89853ffa6f515e6201c3a260eb3163489394d69a18116321a1e0f250b3abde17ab72966de5b2970beaf649c2870f127a145e55985abf2cd8a33385e60f208b04a7be0fccdec19abc0dc899d64d00bc063359c850303225d2b2a55e352c91c7f51bbcf577e932ed05eb40d3c91b7b01bf9213d0cbc8f4ade7f28a439ed4c49d9dbf1e7f6dc1004bce28f57a223fea632cf0692876868717232d5d6645640a698e9baa23a9976f34b838876ee98f23b254043dc8e433b499a5ae07e889919451d3b5a83d603adc891ddffd52dc5d21d93bd1ddd00f3cbd05e98788a9ad28333277b3527e30cf1c8579315026bed5406036d3b6e56716c417f37d4d0384bdd4dfee757e6f11e5109af2a337cff962035a5d82aaa7ff88a4dfe37adaef3a2b9e1d1c9ed03c43f31158247839f9b4a54bafab6daa40dff20afa8aabfb29f765e207a17ca6e8791c8e465bd7595b625fe902bd31fb4aaee42066f494c5a801a466105e6e311bb09a32323c53c5a58f9a58915cf314823599307ad9498dd5de3a034bba2d3b41cf520c7b1d64fd16fe1c1045ecf2c548117cffab7076e0cd82acf457fa2586c42aaf4f4a045e8e926b43e7d10219146fcec43894e28993a88b3e90dbe44d49ac19ea63925c388d3e664fee2938fc391bffd50dcc34d6c3cc45138564dc3cc8005ed110f47567142fe7a54c500718bc4c9a7eb0b00fe3b7314c6bd8aeacb6d5d373be6b2eb2f2ac41b08894d22669532661220ddafa7e0e9ae86a8dc402b021fdadd274db2fdff230e1f5a09ac6af12c03178bd03d52378189cde134a1247fa3fb02ad66df037fdf7ca778856e1992ca66fcdd806e95a12cd5a083f6d58cfa881dada4afd053fcaa8a8f07b894f7d24084db5d51bacb853ef4b35b91bc612c8e37470a16b3e90e0694c81f3b3431eccb736b646cbefbcbc43def6de48e63f48275a5332c755911e07b304e57ba7081274f60e0115f665ff51f256f700628d4c8925848df2ff8a24c388514deff611497f47ed2357500b4aa73fb4d5ac33a7263f553c37d7f1c254891c466d40d018e7ef205d06e21603ef01258a33da1211899ea08f40d8725428c43e62ceddc0bba8a1d1283341ecff79e04b046cfe3863523a7437ff497756474f9b2c4d399cdca6993332a6eab44db09cf70bc4f655edaeeec48dceab77239f2cb967c463801d0132c7e1651ed026cbac35bbecd30963e6d78edd6457fec35923db21b015fb846a39bfe2c8fd8742e3d5613bd3832c63b7497a20d8c09fc0e90e1185977f60a87bdc6a366d505b32cfecf4a5b43e65dceae8bbd745cf28f41fb2021625fe4d2538b0b5a529a06c77135f300ee1534029a9d9a91d3a4985b8cebcfe4570cbede4f41814c913c155e90e35eee00d1da286627ed4e462822ce72c58496cc987bd5833870fe59713a1d1ddec5d8d1df1c829bb9a0fabc55f90aba8ee31b4be1757cda968435f402423232ec4accd31a936cc7f8ab3e786ebf9af0524f71d04e3930a5877d7b3fdf180eebf293542dba51821c01794294fcecb0e397b3b74c71f72718045b542c766e6eea3166af3a18c949f136573779999a6f25e25771236aa18acc2b4c244068b3fdd38fdd9a07440c3840a726c669042c888f49ef5ead26f5733c2de0261585cfd9d1f690d1d863677d27f8de15f688d7f4ba1d56a2b86a07c748be3bc7da19294310c1357fa3e76f8867e9d3b487b5434c869aaf4804ab1413b424551fce8fd78e413594f8938bf8c6e864d948da61b55d97acd521c6b7a2deaace7862c85a1b381913dfc9862a93ef331fa98c7c058859d3c54cd726373d64347b987db2377596d12fc0be90608a09f6c72bcb535eeac6e5c12d89c1ef562bc3f2264609bbf64ea722acdf76fd7c7c84ca87bb156719edbddab7d327e319efab4f82265f2fa6105c014f80344705ac529e175bce9d93230ead7c045e3830f4a4d62e55dac30f8db52c2463780c16077ba7a9245e9afeb1cf4c58725df6cf454b5f644ab20a5ee7fb2c8ba62487f7fd3da7abcef9f4b885bb69a75f928e93519e4cb055b6c793057a9eeba7cf0e0e057abc238ca57c5208d1836d8a5d37e9008415aeebc80ec148052eba49459bd4a538f498a6bfbd64cfd42f5d92921623be435d18825cb24d3270a570110317b5a2226a4d2976d885b3cb6bf4a8fb3b72ca089cb496fd01b3651508cb62bc81a85d04f96b404fa74f1982031f94d46b56e96357dbcbc9d83e4750bfdbb5d6e2c804527b0be19f35b5dc080511e84db94cadc8ea9edbf0fbb93103d7c805ee0b3f83a29b29491486205c2f454b810cf1c6a00ee0d28038c90bde134a44de502b36d82d35ffe82da9129610f4fbb3a8d3b51df4d7755b7c353521e95e115e7f2ebf4052445051bd23402984412d5a2f2030e597024044281b3d96f113293db3f4cd94146799d46ca5634cab1174e6a16e0070fe275879bfd8e7221e9c4f655651ba5297ed3ca3360f418069c110e572da23808f40718c563f548764eb2cf486deee17a67a114deac992d3e4fab3e10c7d83b2969dd20016d1d7513d533a8e979fafb03034f4bcac6cdb0d089a597c4bb872afc5a10c16bd4fb4a1252f17c28e73227cc78340f573b355fb03a1eb93ff50bc1fae095c521e9b801c1ea116dca657039d20674f0e8bc57c61c93c9fd16d5948bb4bc4fdfd9cdf5e5b2d5e18f2cf79ae529550603a15cce6d891d93d8cceeba49d775bf5e6b3145adedb8afe1f2a1b6ae1a6978ddc82d86be65547cceecfb4fb8b73ec077370cb8445b4a752e58e421aa47379ae121c1bd33256ee418a104e3eff62b0ed3bf34cb328cb8deb54073fc83c44a9486c7e6980ad971342fea5689394cc14fc2ff408eb67357ba64f51faa75c0271f3ea1615dcbb5d2d093198c74efd1f64ca773c54e137892f8553611b8547bb61ced2aa116f54b54700a3640afea629fe922f2777237f6718c380ddf8c1092194ed43d06bed09ee78a8c67c47541ba0205359290cc251ed8db3569f5b52530b79dd0f740fa9971b66d0e9c276fe869a3feb4a45ae997a431f7b5235115c0df339a0c056de267692d7452910acaaed15eec14197f7920a11eff509644e670b77a9c6508916d05b6f5d751cb321cc507056abb3cccf73d704205d95a1e148acd9c386a6f608fa521204aa62ea12e675f042176ba50a1cad4d517d1a963530da7fbff17dd71fbe3b9c18dfff6b6667083db6c77a785647b5212b9014a323839c73adab103c355c2577fd5583df28618ae213929baf7a2e433afb0a845b967159e3a9c673893921e8cb0e624662d7a1e6d0d8ec9446e6a1c15461f48903fc6af8a29ca356f6290cce09971cae047aff7ddbe34be7518e77fbb10b93121689df51a689fa870e57abe564d3f23e4a8eda383b4e8d0d741c66579683871bc34af7bb88716c6830fbebcf5308407dadc1237d0dd4f850696da7e9cc09a3d16d09290f07c2403c1121d67611a6650a197c6ee8d0cc93597e5ffc6e1f830d3b2afbda308556302038da6e201d7d132a703ada54e9b3cb5a14f1eb5de2748c624546770d8808603f81c53abebb02b2df05b9dcfe1f41b9fa21af573c6a11fd00bd539eee3ad0ecca9be51a2f70a5202022ee36991f117ed8af73bf508e545372c3f16045ea74ab1d8ac77d6689313a2882d49ebbf9dd7ee45b74ce972e30b05b4046ac5389cdfd6825f91e119545d1e4d705e85fa1477c93d6a00ba0a9c860c84d91519b2e91df4199cfce5ce7d6167d4525b5106f2ccc536851c78e65c1d8abb8bf539c93b78c67e47dfcfd15c69c7ce519fc039f9135926845a01a4a99f9a686cd6437956963275b7bfc6a7b8366ce4319e79ad21b310ac5f139b9471739a76bf8bcfcb781e3d3243a458ab9c3b9b6e181dca78b179013801ffe96ccc6787654c2b5caa09ceddebd2d1cbe3144a13db285b76ab311cc1d2fda03314f84a09addc3d26298b9a34973216d4d8a9f53089fa47b6a1600818f7cae7592c7194ef4db4e22070f6b8d46ecdec5a63032f07306f70c33e4f9d3cea438114834eb2b64d4e01fc51797e11c9e24b0dfd10e44e03548b7843180c84df9029a1515b3c05e826582cee5c7179655ece31fe102897df3008eb27556c61361b4595af04ecabe5549a023540c2381b1010c5d17ab509cf8e1eec30cebd163d48e07dbce9b7556ed5b53de6168f820a5e816e9ee970d73718eb16cb64f39cde13db158bb6205b8a382869fb0d542aefa134eda2582ec887de6cd1619c2b72a2af57ef54a55ba6e013bd7fc06d4666eca6bad413f8fef79b23183073ac451d2e3de6ce9101a0e6945edf44ecc8937440524357904a67d9498194a2108c56b7e57da5372256993a5e30ea8ec9374ff08efe22f91fed2d7e42c741be3d158dd46638adb3ba6380d4c0015abb18aa9be6ea037a708fdbc269f5fded50ccb010357f9b32fb535f98e3cf736bfab0aa6c0a68260808a9429127d9526ccbf8d8810ec9fec92eb77e2b7c6d800a7eb0bb0eb89d761fb5d999114902787c60993e4258ded98288a954f5babe4b5f0c2acc66b8a316c8e96a9c5fc3de1b00088bdb4e85c133b9090bc2b28c31383ba2aaf229b48f89257d4a1a24f9984a5ee36d047a4da50112c2b9d6e21a58e81daaafa464a3fe8d29e9326d67b0b4562d292f33432677c042dd9eda8f96f358914dc17a1c99d9068229f1eb311534c5a6ce434842d687fe6bdb5e6a0a36919d3478bb4b95610d37627363516712c37c150f4016732f2d700e84ac5fea980036cbe9624f5cee96bfd88dc5a5a9f9794a5ab66af802c7917f30ace4a0920dbec7608dadde3c9db611f3f983f5d37926adb7db0f7bef52362e101073b723d87833f0de0f8227d2c96b91895dc93a548b1b69cee74c2c706f4f24f6ce032f711aa1c3c9eb5cc0b243e49a1c4ec2e2236d595fee526d741b69920ee2f88782740f922072ff478233d60226d156e4f1b67373c1e1cf17c055b3453941104a116673aa7115dbccd087f57f6454a254b0116acfc7e451f802bac3ad297cc274777e9eb90bcd3b79f754954aaf14e1901a726fcb39b3fdaa113fd3402b9e04c5f272ebf7cfaf4b4a2eac4d97d8d25143ea8986493ca6ab3d050d941737a46cf6348fe1daf95a725aa561c3f81b72c263188e515bbdf7f1ef1b37f913fdb58929180989fd651ec9e79359f315c008c22f07963b2a498ecf335b7ebebb98edf7a3477ef959e93ab5c2588ed2f645f091e0c0532d65d1a59ef08cc02286c0baef003de79801178f8bc0249590c03a367f735f8e98c920c3831834de9b5650bbd618f99b297cb85f9bf283dbb716d17b3cbf25b46d5671b2abd75197915da57fdbebadae745fd61c28d80451358a9dd8e7d6057402626ea8cfc0112525d0ffa63fd4a3b40a93d33adee65916e91e4acaa340a39a4e7b3c0c43ac20903b79c2bd996822fed142d9c2dd2d754b8401bf805dccc15faf5df7daf2782dc57dff89fc406ce5e5a8fe777aacb38e44b5d0eb28aa3cbafb8207c98365787b6efa95801eb5080b5c95247c2a68e9f5759328a29d77d74971dae473925c269ccdc79ddba31769f41344ef7556576b71770e1fcb7c3a194b8b1d6a9b73e447c0535c9136aa704c12c78a4556a3e0131f6ccdc5c3c4e0a7dc575463c03111ec55a29a7c191e086f664d42c26fb1051c2b35b6b5f9c1af83632ee9e25c4257386ec6f340568510ecac672ef148495abb715b62affc5a46cc8b1caf3433c04cc56108b26c3d9ceaf4ada49ad08badafb13edcc8752eb95af8867b14d2733ed95c9d9bd46651dca042975ef58452ce04f41b15148b2f26bcb843eca28dc76599da7df4cf3e86e2baae3d30d975ef71558519069033055c710f41803f785bb0a9ab73f009e3dcfe9c103fc0c44faf383eccd16ada55ce54091bcc9a99cc9e3eda31623ba4cf3e09e6f69792aef620b7e8619d1f9ec5e389ea5070ae5f207fc24b420455b17393c5f5da8c8a958ea9b16c45f8825ed59ab9866e6dcc94468724e2ee93e1dad2bd41038740000f81b17f3e815fd348e233f3035061347d2b2558654439900cf734752311d8cdd79bf43c2580b41520d4bc4b03475e0e453fba4adce5ae7ead43436c77e1c09c13aabcd561f0a1361776f1125ca76b6626e1bfa3a2adc6b97234bf746d7b0994ecc660d546907deb932e63df12368d39140fd183756ad0a8bbcda46fcf98a3eff779d316e0be43d4674b11ab2aeb43a67d9b52d0f283689d2b02dc8fd268a09dcb660347af8bc2bf4c9c6634d9dda0624be6fc395d6385f70a4e27448a3883be1b63a46edcdcb333791a56353687f479f6925bee27e3a9a05536b534e39389f55dc1099f646d756197f3d03704a94dd30c42be1c19f7b956f09db0e7db50eb3da3cd6b411c633792f1b2580aec28a0779b28cac069e8088ca28054a396942743a220ec0cad453819f412043c014998f4487319b6b432a2e87a7ebc7cca8d6dcff8d1e667198e88748a0f6904cc60ece198add0b9a395e06088e7dc3ae4db866b7af7245a26292bb073c9a0f8c23b9f18e7af85e97913ff4887ba5105f35ea254d6e6d0fe22421da06ed9d5918bb5740660629131b3ff73aea20a8e0c5c0c14b5ee62bc400f36461fbdefb19e5e120419154bfea409c0c1b56c2d243ab5433257ce517b49e8a8ed93f0e2c6acd2c5603a87bef63a1e24d929ebc79c262da2ee64e6e4a31f8c61fdbbad28a6cfdf6e8f21508dc0d1ab348009ffa46a7383f0cd43e37be1a102b6cb299510f5dc5e02eed397d7084769352b1e37fd8d487f507a1ca2a52ab6c5da9c2fe075292104ca687fbcd0b1dba69219257dfae40a06fcf0afae89b36dda88f0ae642e328d0e2cabae3e2fa8d0102f48dbec56b6dcfa81d0e6c418abd2a798a6caca8f152260cfa629b18c31ad38e4a59516e607eed9d674158bdd78428e3789cd8b0408604796749cebf3c0f3b212fabe52d6cbecace98287b164d17551bfed4fe246f023c9e21a7d59c7d9341330e27ace52ab4bac1df934dbcd35d1ffc61b6daa58d69b5302654396893221e211f79b392731d437f8a5b175058b7ee8401f104270565a1ab86140b500e2e0caa5c670ec0266ca615f30a66297d3a40554f9dfc70cd90f9ce9cb55b735bb8cb720dd9b0124d9e9a157c4c30d21c8b86356463969ef326961d4fed8d67efefa782dc16d6bd858bfe129d28778a9cedfc8e1fd4459e7025725e652d17b5401555c681c5080ac501c927ff6986c20e8249efd7951fb54fe8741ceddc52599235168efa5cb3d7624bbe71a9b80da325d19d899b46e5fb24723d27aea968438e84620d521e761779f8b1903d3e2c85f51400b20036e6dbd3dcf812afe3ead8af5eb1ddf9c95d4d92053c2b44e5307987e78a6686580295a5ac42b4c914be717e3e2b7ab2987c15a8b9d169898541c13b41bcc18416a7bcafff6aa84f460fda972ebdc20339559c71d52378898f5352fcf05f86add82fb98ad343cdbea69ad58a82737b45d3fd2302ee7c09ed08e1593ff83c9b1c74ae4658dbc3c68581489581e00fcd3756df7fb70c9cd215ec8cb3d974708bf8d7c1f319a0627ad8ba3243bce585c42b8e7b9c78ee300bbb3c7a73a1024c02a39ecba457e50e959441797ddbef68cfbbc8b2f5437cb0f295637160e0bea05579648710168c05063629e8d2fad45c441407981e0e57b1471ea30f7496579bf82406c1441d6e9c7fdb5d56479b944adacb00013bf09061d056b7245e8cd0b8057c28a91f8feb49f85a24d0d55d4b712d4c79a586a6edefd6a9f2120136e8e6bcf1ab11d4cd24cf2d66d814e88df36a3dcaa9cfcc5e44f4a6d5697ef3644696fd96edad6ab21a701bbf9aabe17bbce3efcec155f1d6dcfb12e900d8ffcade5fd0aaf74c3f132f92877ce1d695a702128a4fc0d267cbe15fee4f6b59a34c31e2ddba03e6819abfee775e1cfbcdba32f43c5627dbbbb5427593ef70d7932352a6f453f039b4ecd4c4b632dfa0c45321f9933a4c3809db9ef65e530a6834d1e32f87428cbe2f1f201a54494417ac9fa1fe056a460b82aa134232e9253a21e16cd62b63d9829e7ec02824f978df29c5648168c0be16ed6b08a6f24d2825aa7bb3a91b03a9bd81a58b8c3d34a676d41e6c707a702155243e518108aa796650c8086eb5d033c2ace2d19f7a2ca7c7b94598555a7cf46e9265436ce11db2bb4b20aeb0fa5b8f28c5efd8bcfa07408ad9eb1e6c0dbe549bbcea94f96f3e37880411be0f12272312caf786c6a0a5c619a986f1ccfa7fdbf2b58821dfa6a15cfd9b2e4314c6467f9488edf76f94716fd991c95e106ea56e43a8ebee7fff7a594c62b666680593367f2432f737c049b0106ff078a31963bd01513f0ae2f747a5c15f01e1c65f679ee3968b97f253726b4611da0a978f876b0b840d1914918c8d49cec615bc8df395ff296b6308429ad485bef225ddc9532d8ba56cb7e7d09f16469d2e8634e71bb76efd83df47c2ef41a4aeee92c1a1e355762f7efdae3e8879ceefb382dfece992cf85b15943cf445b938d54afe859269ac92e3dc65c68e8d0689ad746a0be8cdb5c0a2e3ebaa9435907fcd7814715670ae1c49c910060fbc60ea8a2e8a2a3e99d5425196d7a52b3463d10840f575c658405a7f61b183aa156d6daf8c52d85bcec69494e4a7b11cc7579d1b53b3c9bfd1f90a1c9049a8f7bf1e720bb59f373489fe7378b81b1f19b9beabde6bcbca26158d20fc81eeefd199d8322baa27b1e98059d87e6b83f427b43fa4247f0a025e1f34763364341a436d9b6ba7886375d4eb4272696ab3517918cb7472996913c42ec75a399c2c3aa02610d78bed9f3a906caafd2056704c76763f5a43ac197e3a9d93fe7b5cc6ab98219f71dfaf8aca14550b6a03da42b6d91a9e9a58f82247b14a26bdedc69be7cfbbed520741a3788f9992777987769685cfd968b7d1ced475e6f814a8cdf16256e23a52c51c4cac28ac17d93cad0e2db97130f0b45c6f7f0db2d347f5c9a6dea2410f9a06410485b7ca861023885502e68d5a7cd8c4aec02831505e83ef78e834f1c9c0dd3a7ee809c1ae32a9bde398b2bb491eeab0a1b6ca2ffe2820c860baeaf0a73bc84a05b03c5f61241fbe7aa626ee5d97ec430b4042b8b1c60649fc0ac5580682668a6d9db2b7f84d4f2f2a1e5ef78c703ae1a580188511a25da6731c16c260d7a841a73a24333fd41460fa58db67aaef4af47817f07aefc8d749a32b71789481adc11c1152cd5643cca6e8d933493c83f0c5347ffd2d966e47bb49c5c5d45ef1e1f5e2598b27cd94e9aef9b787cd75ec459c5a1e4775e778d985cd1ff245853cf2d0af9afe2d9a5519f46577d85bb94d8aec6a0f6ff202c7c411fe2f742a0eb2d6bf43b862609baf56584892c805870c39bfb08e3998736bc7ada0f1c95e5ff6adf707d6af79a313f45eeefcd3a795042f5165fb9d17b92ebe3722b4c2ff7de6d2a1d094e1eb16305d565d5f1951edd056feab66e594b09b916ac19e797b284504650de478453f473b4d8dcec086ea3320600895861a9276d553e5d541406bee319d09b10935e6088a072b652363cfae13b0669b5805214608983137a0540c926dbb6548725ad879ada8b578190a5809d1f99b6252e15237f91554147543d29d241b2362e0860cbcede8d92170e6784e92932492ac840f6cde0f7a62dee48e2d1890605ab096570a16a489978eee8e1b9e648a7af2dbd7edf6c2693a051be9fc245ffae489b9f1862d37009498e2d7cf56fee8f7ee64c315eeca356992ac1517601b8b37401554fb5ac45a0f84b163ffab76d7dc8dbbb558965e10a16ff9baa76b466984014be5711bf9097317cb0ba18a4ba4ea2a0fc6ab00c995797eb97837a049271e28fe0a6434e81fb6a6e7cca15f7b974824a7639ba7276c4a36f5f99f357dd6235f511b4e9af18fe5881e067a80bacd7c6d90453a00326ed414a3e4082b8540438fac515f831236a78473abbff5e44282d326e6eefd4659f8066d0a87f8562cf8b8a8a323751f7dc87bb3fbb3aeb37775ca34d424ac4f183efd7f10d73f6d810f5575328c13f755b0a85a22eed514cbd5a01b841e6e5647425e701ad9e6db960e0fa76ee87bb002cc74c27b0a2d63175144d1ae30d436a093a2ecbb9729aa34bdba2ff20cc346f9c4a21a3695529b287daec14e89be8d63d4cc5a297156c16ad17573156a744248062eb9096f600fe91e07455738445873cfc7e9081e3d3ec34ebc667598473d6bfa1f23083ea8523fdbeffb0974cd91990ee349273ea57c0b551aaad28a34fb649df7164a98b8cf774f11601728d32e1f44d244c976d751b2566b2af1c98d3f10db73bb7c0a39ffb0b572b85cd753da7fe445ab8ae62d3a5a9ed09ed34c91cce78086f4913f5da0ac1b79dcac845e21b9d8630a7f7f444b4aecd65471cf471d108753b8b2db495d72a37575defd3f3084bc6d922cb019ce6b78fa5541ca699b734e6b5fc0a0add83c4e4f1c2c2096ea55d40fe07cc9c4bbd9ae10314e0c4802ad205bd633693bedeb52e7182bb6404a27a2f6865d08cda50d715d7e89806317993c2ed29f0df6210f9688a3a617500c9b454c074d1cc259504a2e1fcd27717c7ffd0a7d451f3f7be6e4c7d083763704b30765a3e160973d2a7a2326c08f79a6d7e2522c991c86bf6c8767cc1df68a51579dc113a7d27533e5a5396dcccb9028aab7e8fcefecbf65c34e4a5c00b5002c5e6d5357f41bc54ded29696623dc5acf130d85200075c767e4e7c8b4b78fd191983308655d894861e46730bd63a779406ccf84322a24f973847864bcf86e51dfae8c43f398c2bcac58f933bf8d6fe2826fee40389c36ed091022e3978b8929c6e7bea38a44a36f631c7c58c0d47de73ac226861080cf42c85af0315e6a821901a25fd0d2eb21ac9053179c4cca06e8fc54a93cd99d013e78c8f7bd5fef8c4bc218ae15dd5ce73abb2fc48d8c5a05b6d874c37e0acae6fd2f5996dff21f9405f87377a16841a8f4288df6a4ea2bb24ed0de86cec5353a196453d958e3ec86f2b65e430d12048f1d2336a3e2ee1c59b4293c20da5beceb6b93dc0136e8d0bc09a934a713fbf17ce72d9e8c680f08f6aacbe3c39d1b4c9ae7a45abec80f258b28a9d752fa7c1f2930c31b92861c6ee8c7aa3d6d3100337fd7b4432883a46ec5c2b19a85e6ffd565d3151452e9d5bcbcf642ae903b10ba70c3e38ce32c70946e83dc02077bc34287fbb113dc7e5a9fd5931dff9b490ed37b9690e159cc447e014a3e119f81c77d70041303b848f0fea20ab5cd31315f338d3ea8d65588aa33cb0390657e2453bf01a56a0be1be33a1270e8d0d9162e3bfc9fda582c5f02d92c220de3753adf4303bc9fb143e8fdfe0c69e153c8f36acefd563a515e8e112f5de5d3f2008860a11709b6f5536742b4a27f560a21a41e927ba47dea4325909ed605be50f35bfd62c2d7d60f97bb58061ef8064f1f6a94cbd52be531d846d2af64a493aef6c2a1c8c53168d8492bbf513b71375ce847542594fea897cd7cc0508979238025d4fe07a1d64a7e049feaf2825a882f0c827768b726f3c2c1318025ef4c01b6842aa7f6c9b7fc8f6327f72845751ca225270d5c1421aafa4836ac15197b94a1b9603b2b627d8b16fb74e86de05b0fef8d858e7cd05d0bed403f1d18647976dcb997a6671900572cf65d7a6675f73b22a5ae637dbdc215e04964427f4e49214d54f66a5e97d1a3b9e85c81cbad09532926fa77c63c25c4945ca209485e07eea27b24fe2437b1fd40a40fdbeec5a441815a84de5f88d617673258582dee5f63e32bd035e516186ae553b7eebd9ab0e7b9c6ab86fdba13f3749ccb13829f14d4e29d2ac49f7eaf6a14bfbcbd6318691e4a1693001db592c3d5f5a2b9132d7b4dc23c67c41169d6cf7d552784ec07de0e6ea2a2516709fbfc2c946a8897e1fdd5cc7a40570f8a1f5b439226e98ce473d809ed03d9c86e6c6321791338640299fb4d34734fe585d1318a578bbf6e135f87cacd2644f1d2f325838e71427a155fb23bc841ee932d661fd81e4e5625932f5bffdc3e932d0c17c92a66bcbb1c08f682cd6fefaff47b0da8e63d07592bfa415de5dcc12dce5550e1dacd10bb7ce117095ba745281dc028ebd50a74400c664a475f7fec068b368a9dae86ee5239db0fc21bac12ef90d9cf55e95df9521bcfd1b953eb3dd2972ca721df16b919b66f412ba22ba59c14ab4c2538ca1b35da0eb1c22bd2f7475a7ffab0e9fb3a428a2ca2302c4355d633f19db9fbe9040a71c99bb32bbba179f4e2cca8607a1d448add3beb22d6fb6acc79f6b765460324da549148a0678736152eda4af1e772142ef3abaf6314737f30523cfd27b60945a3aa6c1e1ad83880c03ed55768932cee55dda26c2cc21fcbb1e18a6018892c6f666b58793188060f024fe179bf5da5aaaf716759c57463e4a70eb0459a7a27455cfd535b8ceb89e6bb66167f7dae18aa3e5b53f441802a9d437cafffb72fd8faa9d9b1ea20141cfa024c0264f3ac264cc8fe5451f3c35f6fc1a73e0316f9c1d54c2e9b28eeae5fe1bb4f262e208f52f826366bb865dc75f9cc2b48e929ac893dc5148bf7a431b39c69987496455e85b6c5c22e940383e08a27b96c415faa785ce3bfd171fb28c1696019d88377c88a57c65d47b0b70c9ac0e3637c341498fe4f572d1190a414f4a7ce38ac55b075932d94daf3c7280a9f31c8bcfef697d82ce9e619c31f2623facc4d4341fe33deb254e5e683646805712babceae0b959f39fd6a31b209076d4669ed2f5ded4bcf618b6c91de0b2f3a947ed97ffa55914bfe45f6b57ee80f04913ceae3b8caa5a2fb9abde6febeffee135bda0784fc6dc87bd2c7231aef9748555a83197e00dfab405026a26ec8ccc6fa3c2222a41b11ec5007eba94e1f187c515e9f49d0150787d5037e26d3daf7fbd9e88666e447a31a442fa7a935d07e7508b1337c43d922c2c2b22db1607fc7f6487886b882e00a03c29b20d1c084fdb041dc9faf5f5bfad2f2a6f2ff60d4ab1a5d76b30ef1318fef5755cdcf32124bb288ef6e9b21b9bb69b6af1d70b09becf6370cd8eb5868cdf9365c9f15a31694d5acf430ef79b63cf842ea50f441999a40773da2c31152696cb47806887dbf93383f745ed2cd28e5b42f1afe1b9b41de1cc234eb2c2cf223c0cb9b2b9a02e08e5a190a785674318c77f89127ce55b8fd4b40a0eb33e9e241ed9bcf07c0c3572b6fd609d4c03c48d28d7dab25479e1eb4b6201eef5642886b3de5b738c62ac95d255333cc0de515c20b82d0725fb731b4b812b958b85f1271658fa2b432f29fe7d035773dd3a41ec22c3113c01f77397044cb740ad91f509c712228c074a9671f7a62cb8bb4a13c21109456d42cc64681a585ea81be96517afa4f5cc7543572fd54850f9cee79eac77b1c07f8a322c247387cf53bc089da462b668efcc64ccea6858e01761ebc5dd8561d63ef961d4a9fe6726f3158f4a4635edd99defdfa8df0e5304280497071473d4f53c574dce1bf9a2bfd7e3a84738577cfc6085c1f5d95b46269885a8c60b8e44fd3e852996fa622f2ea89a81ef480ae7a3aeeaeee6717b4df2a09bb7e50250a1bea5e38238b9e2f1319346c5672e130c0f762ee70918844a58a606ca6ab1e479a320b43599cc7365ff8f027f959b3dba76f1497fff9b2707a21e808d84bab7c12f450bdb349aff8ab96cdb083892c52d9a15398cbd55bbc62712161de741379b0ca8e00b9365b5f50bbbdf7a9741ce125cdd2b758939abe2a4a68fdf49e201d04e0364f89125c33ad13c09fd1164ef2fcaf3840fe517e38e13ddda84a119c8c82b385a755f6c3e1a06fabbe95b5454ef458abc968a87b6559257a4e864c16e5027319eee3131a2e110eb76e4473040e4987b4ed16bb5cb8aab482dd3f45418d40e3ebb50bb4a53468f90fc761b1bbe9579b21c2dba2ad14b01fc39e836e676e5cd870593d85aa9212740d8a22439a842117c1085f23dfd988ce4e605294c9505c3edb0ef83970e3ff74d657f26f1d71cdae1f1c9eb199c21722b1212086ed22a6b1ca1f54772f0227348a7cefc58fec26e9a6c367cafaaf8348c2765791272b86a7e37279133eaa00c73d816cbc9fbb1950bf43dd98b6f5b82192abd3cbe801ae26142426a414200acd607f712638253831d830faec57a1e4331bd0642e9cbab00f87fe2b5d0787432c5bd6367504c43aee76c607821884fbafaf364f7f1cd086f58749ef3ecc68b3dd754bacca4aca79ddafc526950b7c3386529cce0c0d410b86d97fea9428bde2c960ccf4db055f72baaa28c8cb9496898a6e268b379fc7808240372cc45f715db5e704e5a368ee49a6144b376a652b3ba99d9d29cd8e3f084845b4d5693d08353da8b88ae535a342b8a1810dda79fc4c2b72d1bb325f1c2be86d649bc9d46c7fe3da59a27e95c1491e007dbb80d1bc040b74dd4b5f234957d172bf478c4f7bd52b81a61f8a51476bcdde3e04e6da1c6d58c41b55a65aea5a0730de38ce6514d3c78a2da752a5085bc2e9d97f2acea0d7ad18ee4952ac41eaeb546cde7d59c99bd3c37d1615087ceed1ddaf18ce6f1254b4002a0c0f8c621d971478400a8f4f52229e68fa929d8a9f0916638fc6f5543db8a7e17724117ef1bf580977611df4a09a2733167536060ca0343bf7e508bfab4d8476d7808a4bc5343958303fef3834a3bfc7df7d0ad97675c94e39911ce4ff04a85f6b93997adee3b9f02ecb4f9e3e9f5dfb028c969e4524185e8fc696e35a2fa1d1eaf6dd2ae4731110c687fc5cf37a7ac1dc6c481882a15fed097482e925b32082faeb7b1c626cfa0d6290167e0d48efb9007fe2db5c6d45d70b1ec6898bf0d515baa307ac49eed0b2ff278d4f48ea5adcb524c1aca4534642cdd51804fab53263395a9fb36dfc7ef1ae97dbace6d3e02476066c2c50bc4e9eda7f2f4ca6440999fc403e1a0654799a165d34f52cd2520e70251df2fb8bdc11916adce6066536847c39923131d54e43f0a873d1e3e9175607be27a463944c88a7341b4a558bc9a3a65fde016d7b8ccc8a2d731dd84362fe51fa6861eb943565a3034373120c5d775964b44a1fe6f7a5453d99615c2986c399742ca417cbf2ba610ad9d380609077ebb78e4e0e71622f1739bd4ac4108441dd892ecb1213c0c4905fbd8a277bd674a5849576e7dc965a0a4fbb77eab917d7517ca6a02b98094f3424ac1c512c0aad4279187bba872301bb8851c5aa5adeebda65828a5315d1aa24fa4c848e967ac4746387047b350337dc2920fa66db659f94fa3e8aa1a54ac38dca4a7f30b361f35f9af3a782686641b25ee7558323370f4d1b05d6ce2413ef6ddc2d73d0e6f6241c3964b90b4a1fbf973a5c10ea752d520738f79fba1fa220193bf221c7a58f79382987adb72272fe79062f4588ddacff7a82d893e554d92bb76c94abb628809932fd88ab09634c725adf1c24cea989998ff077aef6c4d3f0c5780e07ff30ae8a009b1d7fea3b24b7cea4267d31fbb277e60e89553853565e903e7f3249dd07478ab6035226c7029e803747eaab5ff2e451a3d40118f68368be1b76d7ff8d50262e1c8d73edbf7a42ad0743e9387f52f4571feb60a877b742c5e29c05d2d9f5493bcbf5fb53cb8d46a7f36a315ad8fe36b2e2c28e1fc6a46571213af33392de9d76e09348d050c2ed53766c72968caee2d14decea57d4232d62b74568dad765ad98502a25c0e2ebf6ab258972f53cec2857a445184e0a47238bbc0996423ff47fcd72e8f5e33668c23e81cf3384f6cc779abf58e9a5459f60b4b789a22a05e9ec365be05cdfaed288ab102f61d42ee81c2591cc56246acfc3f9242a1c1553c55a6805fea4b970702429d281c57ad0a24b367594203482d1244a4c52dfcb93cba9eb4ec9b3600fd73502f9e4f790571fd84055c765636f8f12e96702b5d6d7841ebdc17c6222c38f3a14fcfab932fe64106b9a4852e42ab11bef1a9816064ade7ccc2e3be63532b9824ff4f0bd02f98ffd0ff0acfc0c96c21dc6373b10eeb3d0287f186e5e30c9e9d0394b61aba5c31cff3dd604b2d6da1298b0d6ac306412c40d2eed96b78fa3d4d56db96d43447da02236047738605cef893fbc72d2043a2142a5111dd0320473a71795aa750c5580d2f19ad4046c371cf6db0f99cfae8bc3d8a6bbe233de5db4c97a70b510ae067a76992791fae052acbf406284de04b93c16639caad2baebf65c6a08917ae0660f690d76c81046009b36fc038e6bed981c4c085b98ccd4d9ca8cd2822086d9ff26355f333c224d2cc954f5ab64c0150caff02fdf55cf9afdc16730fd5b0cd9bd736756607341461f405ee26d6baf6af1e125696ba785611e4edf146b18699fab755fec936525a8cddb51cd0091c6a02a45c6bc87784ae2cdefcca5c47c5cf1be2574cf0d5ca68cb8be5997555942aeb0563b20bcaba7b8d037801b857e1b18b59e70e498f2cd315e3135747d13974fb88cd4011b3728e3165d874679ff8a61ff54e5c03d62b0793acf676be0756b83e6cf12c09b57ac4744691a06de66ba9dbfaf0a2dc57f206a5723d4d7c31a4d0b9557603245e5bd2ec93dcfd0cecfb3a1d414faac0a1853af6d164ae920973cf0261af91f28125ac28af302300427a1c7f6b9d2ed1e94b11595d07b23cb256cfc6c435cc4291e45941b57b341e2d1166ce4ccf7583a0f6f0e85f0bddee620313f1a637b529ec9431884835936d7b80d709ec4f5877f48ee31653af2c5afc3358c4845006cb39085269bddb4d509cfb7b9b4edc4c98d1aaab82d20fe588fee6df90ca76eadaaf9217beef15bf75771e3b0a2830fa1e3621d0098c5386a83e72e631c399b20e47fca363bf7560aa53613c23be9d94611831a0d9f614ea4d4500fe77fa2edc6b8e5b95b76f7fd8f780bc9e027d26b21bbe51d03901f31001dd0e16a5975271425f7785365e1d29cecb2c4ff6f6fa1516c316aaeaae1d14e9e1f3213b847f6724307486ac604165aec061f991af1db2a391328fb518785b2e88329cb7c626bbd96b2db5009bb6188c2913c2bd8eea0b131cb567dcc982d24d1dfa4c44eb88fc524b0a299973eb0f6f75a8bb5bf899822a4e415e9947a75eeb7e093ef9f16afd060bbf93dadf2cc0b8201e13d1b59026b2fc4b39a3a8ab7321ffd6d84c1c2a115e6e08918c19d5840417d174c4474e9aea5f5f70dd2c66762913fa77e08f54f4202b88c6b7d5836a3cf21386f902b58c3be635366f5e633c6d717941c02e4e6f70f53d95948336d559fbc1db74d428cb39ae3fbea54fe62f980ac1862b851bb49a1f06b6b5cd4480c69e8f739cfbbb43e14be7b83d714616cb766d59606cda1407ab7910d7190c992eaef828f898d1256e320e93f4b51cde267b23fc3fd1899595b07010ff3bf4244f5d918563fc86da28fa1ccd1a599d3f2b72c3b39596cff049c28ee24cd525c93cc78f9ae3d0ab1fc323cb90fd5ca1489ccba540b037b2f2795649b66c0e48a86d49648bda84c25f30b78bb721feae265e042b68fa87b4e99dbd0fad04cd47737909a4a2cd85d384ae09b109914f2209baa0147e25e9b48a84a57b7c3291ec152f03b59a8c39af0772f1c0ac60d1da81115b6316257917594dec461824effee99f124e3627fb9302535ad9c5f3ecfae05431d3732a44423115fe98db58a9f7b628b978a90c8b6b6b2bba2dd6e54824f84e778c8b90cb650c9d91163eaae464f17ee7220eaa13851b2be879c22a954f8f4eb19e323f29f37d8ec67820f45de21b51132ca2d00f81e6add175a4c011e3e8a66290bde437edf4ee1ff2cfad8c1c84e94bd1a9c8603cc559d0419e3dd2b48d5e029911f84f0d8b1959f42e1d01f9687e82a477a53eda8a37c30e8805c07cc31eeea825bdca76c78388809e2d56c951ad4c2e991dc3528b5d44991e3a7e65a5512e945ce4153fd91d2ccae7cccab9e553ee9f6aedb85c6a38cef896cf8ab94c6f753def7a93b18dba1ff15145d8cf09a4ec0a0224b89a2b69bc920a22494ae61f634531a4f82b4ad4340de720ca23fdddaa0e743727d11ee5b3fe3b0c1f69dd5e96f75bd04336d4daff47941e435ef2926c27ee901c44d7dacb563e3d3b9212658988c2b9c9c167a00b7d592ab74761befaa7df1400df549e47edb2d0f5bd72ce8d411f458a1ebe311425259affbca65ce4510bd48eb6b6e94e69ea5a7b08212284bae6b75f1b3aee766c4ef1a06084de5b2f8b251e064ba1a03fd05b2c3b1d7a3cd2727b761b0f2e954c58ee0bc6f2bdc303fba0f3ab9300437f02b1466f0d04bc6c38213d0ce3defbedcd8316b52ee30b7ddc01e4c7a853f8cf7980566d1242b97ed1d6448a30e17a7f55188995d98d51b8e367fdba1a61f538cf41f812d4f6eeb9a5a2b5be85c74db1de03d5153bd1ede229122cd10302eafea88ff781a9fb9b2fde068d8d40d886dc752b50a300902f1fbcc87699bf7cdfb4ec273eb46bacfc0901b7e6069808baea2d7120854b7a41e3ae167c7ba80ad325db53fd09916884b71ba227df4048b7aae83841e5b1a3adf4c53722f1b8609be22966abe2e8015c1442f6934705e50dc4bce1a30ec1832bd57a8198ba778bf600640205b0a969cb09f32d34708471d54f91531d8efa9b7a0b5e76f30e2f92f1e05b121942c4d1abfff3f76910cec354bd917660c4c5d7f9c911e139d5360f14bce8bc587f86b9ae2ef133031cf6c3b7e4e7824b478d3e51526de29f297365237ac94883c440dbe5ddb33eb7b725e5668c841bb78ff435e62b4bd6f431cbaab08aa362e8ac42392356965f3de764831f9505e06503ff53034b0d3510bed6084ce12ff70d6f3efb51bf7345a29ed29c31f8c1fa7839ac88970eb3d1b560f4d82da38224387048ad106f0706bed8df0e9f3a0b7cc368cacd648c89e3176bedd2dda6ff59e4cea5f5cf347ac31ec9a02d588f3c08cac002876b198996153901e84554771e7a307aeb3865bbf0abd5bb83fb2adb6cbd0b1d5b58f5b583ba7f252597d5eb5d836970a818ecf434c233bde7b46d477b5c537e02039f9087fb8ab718b739d8408f87adc7096d119f8c306364ca70dc9c577f38c1e1efa5a996709a404773bc2f61eb5de380e48e3802d97f38e9b4dd4607af7aee0b97304309e31cb8d9dbcfaad6571a0eeb915899e63323eb8c351a4fbae992fa221913ebe7397f87005fddbf3292f06ae6691b532614fb51c3339a8d478668e35cdad464199f0f2eba872b609544fc78f1db8573d42fde70bf888363c7fc45be37272dcf4dd26b3723d0a02fd2403f0ef4e6d21e10715d9ba9c9e056d40b6bd9810c5c61fdfa9ebc1c866d9874e5b6004b0510b78288984feeae8b1f4f6cced657ca64ef034357ac1d5d67881f60049c3c456d0b75d9a54d67c3e3aac938eb94c1649bf68ae97f9367305c3de87f4b519503a70e66275aac6e3508540ce46025f75c5eb5b6e4832486648be427388ff712482ac1e95c15c03718ada4a8e793e2d2ad3a879fb9ea4cd3a70151f41b0568a0e668da4a7f4306ae89b64f92ef3f684f0d44e6b955300751b2a956497a63d9bd452de49ded3644da89eb4475fc1497fea583b006185aeb39b56b0c314df0ece8356ade27f67290e10f73fc7a03568dfbee64f6a3de44989dd33fe7c2333720386d3cec972c923872f12dbf7a67018c1b496708a54c41f12bddcb6c1253beae9394d587535a4eb4609b1463019dc33972676074db8d1b2e9eb6939a49dcf4a6407fe261ba5eb8d9af1b29f167966277ae62e82169fd2395d26f5889832c038402a2c576544550a68d437eba82f4b75c66dc0d03f1167206eecd9c984b6e8b23caddfce36f459d7d86b8291d502af330bf25ae8a219fd83a468d2c6618cee85604fb1b27f50175dd4b139dea3755f8b48b9954237cb40b7b16efa6d6b121bd6a04de7ef21233b774a168882ecd4913a7e474b5cbead27c2e2bb5551e1f1f99dd74afab4e59e3ff74d441e11a2f294128a3f5f36806357de62e3312757769c250ad0e9f47d54a320ff7f4e84a9d10678561193d6179a0ffa4d909f4a954ea58eff1e7de59c13742d46e74cb542c445e658cf57c64f98ef3993074a3809598a4b2751aa83182a78c95d1f20e600bf826a60c53c910efbe770a7132713c65dcca5cffce20e1fb37d962d39f53b53e21026b4aa3349537369ac07c4d42215d83e35acdaf2877be8dba674d6583b9d7c4cce81896404429769aa8baafd4d9631dc6eac257237eaa7fe05c4d94e53df06ba2d9cb5b45a4018275e8880c7a3f0100d1122af8a297d9ee82d492b6153efddcba0896c75e921f0ae6dc25d23d8129ebbb637e1f3ab10ccf48f685c85ef40ba1399e2f8e7d1645704b230ebd1bf03de054ab72997d1cf50c4112834283f3e28831d007366397e9675bc8e3b11d54288e48b208743f2c8b6318b696ec53f3083c447fa7809c83604184ebf3335b6b8f7a58e0f32342992295749f5373150b734a4c3f677942c17c39ddffeacdea53719af3af39cf3d5fd4d318c543120b5d33af853c7604b97e40fb818e6ba20098c798ecb13445119dfab2c097c028a177e36724ed8e1153c2d3301583cbfa6ea1cd50f4fe907b65ddedbf76846c93902d0844e1c6f80fdd7e467f9339a35d9781ccba82cc20b20cb5deb48c6beec3e65bc24e1bb382ba5221149faefdb60128448964998b95274d36da8e0333b1ff816586b973d2820d2618698240564442f053bed5620fe94a1a7d1c7fa354799214cb2c82348a53f7fd7b37034a62d932c954a6c5422680745c0131786445ed7a6233d1f2f940a273d4e8033d834af7e0af2fa2a9152600f1f57aa2cf44c7664f71cc66f197074acd29436c89ec48c8fe57dfd5efa39161dabec2b482c2e5a7b459afedb093edf952af881fad1a31af20dbec12e12b106269bc39354313ed48864659441ccf395a59cd17a0c9aceafe0e9de9515eb6ad279cc62963e57c6a8d8f42bdaefc098f05589f7c2cd9778c8159b2b577bf26964eb88150611788260f728faff3971cb62de1048b2c9ba88f86fb298b261478468888c6a47897523e392b8c8dbe7313fda5b6725935e7918ae31b83af54854e7115955b5d51578cce1e383eb41c79a376d36e9f2eecfb8f7c386f2cc6cae659131e2b78dd770c89811ea01a1eddf800f591e9c99eaa5a328e4399f2c58c600d79c63904dc348d5123605d38af90b8fb3503a3a08b3eb6461bac3c8dc6753d0e1e30cae9413a9f2bbfbb4b828e8f68e261b613eaef91e3f8df61dfa82cebd172958a2c2c60b15a587a289c2663cc5f2fd8178a90281e2bd4a1f045868e1cbbeff624c36888c86d660788fb70ea2e635e18f5362fcb8c5d16c348c11fc489e32072c8b3c47f8c227a223bfa252a6d439111faa229a6bb37d782141ad51c1d18ab88f886cb227b8ac9dbd3cf04400c0d9ddb703dd5d79d95d2a0029739d6ae89bdf65426c3c6ed3c617bd6fb85d696e8e2cbfaf68c9a51bb8ef2a6117b9a95ce21a1847f39bae847cc7b03dadfa05cb21f7f4240ae87363f66c1f3ad4a498ff7b5e88fe864c7f5fa1dbc9f19cda5deb1fcc42621fc8125f63f530fd55000785b77247b9d70c5f8c5e73369ba5a2e48ae94cda2ad1f85981c2170bc635930a5f1c711b009360f97b2f234cec0259123f0aada3372b0fd654e40e041a44c81f4b2f4cd6ddd40e7b0e337582e4d7ec0be6ba38fcb76626e573a84f3f278f2cda32a2467c1d1fa2f6a0c5653dcf74abdb1147ccc4bb8358e3b7f600a0d5e3f124421076bab6e2ead8b2b4e3676161ca39726259c06087496771197b8b13846e1355e148ade2347a6d150154deffe1e1e47e596642ddd59c8ebb8acf7b08f09c411f72fcf6923e2973d71012a978c66d8ae46e8c2dc2287c5a3cb73f6217eb9bc4ae282626455292c05e66e706b90f4c3f76a5f9410e93141ce470c1d9da582bab2caf2c6c6c5994f8616e96474a614588a5aceebbecdd17f17dcc7f298529330efd28cca3eb77d34eb4ba52769f427ef2c2a34142394a395023ed59174e503eb1a0d893a75959355c150c45d47deb043c89eedc24236cb3a5e4d0628ad8a9f932fa5666f80999650377e10b230ab6470cb5633ceb8967c3ff388a5ffdb9cbb7cdd82efdb3131b53656bdf34bf44589a3cabb4f332ed4c2acb06724bc18df1eda7ea6963dbd0f9b1e5ac46c58afeb5b7b06f0b26de09b8ac9f57c6d60f3e9fb6b4785e78e98fe0783ff2dcb8a790733abf6e820f927e1a931c09dae1ed6c1b4f248ed76fb9714961a9801f7702e170212adb477c85114e2dd50c7203de26989c646d8350bdad196d0a2e5365ac7dfb52a7a2f44e9f7123494d092d076349bba2b1746e7784b6845e3ec5095506d9d515f93addfce48ca3be056eda6c52473b0b36d4321392f8f33b6afe0011bbf0289696c9e80d39d6a2e5984c76e4f63470a5bbb76fa8832deed0607dd3d489e91464e467c9a16914171ae78817d502460ce3ebc50c8d877d9e2b1788d0d0e069dcf5fc8546e98e94593e53327edb5227aa5a2017c96f23e9a821296773aa47bd952009aea8abb9d920380f18184480de8245c30597cc4ab56ec76da25ff9990ae4a1282a3cbff123866f78ea419243196802407a5079c5d3c2f99b8b7bca11277a98ea4e4e948468dc52847b43fda61613938394611de68153d6fec8be1f22d00f0a566cffaba39577d03cf005ee0894f31e0dd521b49097bb413ad28e6b2156015f82a7c11b533bc4e04cf5ca86ee67ed6e8e27b60c914043621f910f17c40109e2bf3e630ca8f338fb9c483c15a6b4de6f1c71804b411ad5239198a20167be604550fa103c5724bc9dff2903a3b9dc5bb5ef83536780ef91b478a3ebf829d3211aafcbd37d93f311c7ed84b76a31a3c9f6b49adcacf88cba08ca4d1541dab4e75b6addaa343c8ac78053e55e59a621e18b6dbdf53ab6675c569839bd15ad3a92e28a9589dc5bfdd94f6c89e393247eb4f4dfb1de850d104b983a12e320cabf82f28c4c2f81f67808c3af22e4eedd8a7e519859acd3d1aa750f801f7204a6fbd6ace8ba044628865aeccd17fd75acb9e2e9789f98c1dbea94bdf45a81d42c9bf39b2a5fe9df9386e4dfbb5934e6640dc6a7da563fbfdf4483e935393299bce427299c5e211821bf3d35d01d8135f9f294983dae3e8f94574e9f56992ad1eff052277ca2624c0b8c6c8cef0e81076b2c9d6e891724ca29c2352d548c02eb37423a49c73356ee3f984605c9c74c388e371e00dec7085b0ee358a89ae6a2cc47c5b0a79017c1040d3264c422a805569bdad5c8f330c3010739ca6599cd7d4d4e84c43eea2deea61f17cf743657272392c019630c161dd294601c8067b3beba0097e86d5dd5e084d25186c01d85df166c4f0215731e10b3abe7415878720b5475197879f3544e5ecc01cadb4ebdaedb1e22c6428d07a5e0b871c611607b34d0cd33fe09ce4e5a89ee29e3f9285c5dcf6ed028f67ad8b36bf9e5fc10a8463ed7b17c66aa4fbd987193ddc4d390f9df8591eeca5e47b96db420a2bb83b37c82849940984cd43ce6111d6775289dda1e43a06e3c4da94f4bf64eeba4d7b38543e9e77706c3f9a33d7cd341a736533cb485dacdedb853c3b4bb5717c740ad73f18ad5756d47782cd05813014b4573899d79b8b77f3ad6cb7a62582895348b788bdf2a9a4ef48aae4b5ecc7e2c1c55cd8b82cd087c910d6a02a09ed4d5f0445afdd7ca8fb94be8b068dc4febde8ad4f5f7b67a5b361f242fd7fbde342cf2119714500de299af4a4f90326f9854df4db65f6071886d6a22333251bb924a7dae2bada0e9f20ee98839a858ea998070aa1d187e05c54a9c0f1de6509911b518b02d020ff19b4ba53e4dd9572e9549167d31f34350498603a2de0afbc82b370feaaba25a19041af3048c73cb635ae6af2e208e9622a8cc927f05b62bfb3dd4f0e1866732577467c63a70e868cd20769c3adc7d92c742fb5f0ec4060c089b08105433ebbb08352b785de23272768047427b32b80497826d23d513cf9c05e2a504c898700e30be9244f150ea433183ca8986ad87f057c25fbd6b932d2fae907228357edab77dc49ccbf9acacc9e5669b601ad8100d731160affb017eed160cfa1bb73651372bed3390024d810530eb6c3799b0ef44f53ae09f507a2052b699a74152807883a532697cb7f8548d4e44da83965fbc3562ba3fd878cfb9aeba025c40c8c6a3830744a55a0d9fb50a610d523d738356b156880fc6f5acb9a3b0db2a837c3c4b946469875cfa7882bbf6d35c630aa3ae41fbe8e47d7c5c25aa79aad1ba687b2006e3b6af94be9a5bf1ec167b766d99659e46a6cb334653e08e9264c85821a0859fa698e17cbc353a919dd2b7fbb00c023710604bc2f0e8edeea9ff7f14ea10d6178b01c36fe10cc1955df4d5fac841acaef2dbfe27efd971c0860e8169da62e49aaec6fb2d9edd828b4b4fb08275df585bfe7eef068a7787c93ea4a115120f4d49ccf19f5b6fbfb2146eecfc233f720bc73b5b422370a76125bdf7769efde9c1b966149f01f6bb706622d0257283c36133fe7a47ead61488c598817cc8aa8e3e72c2e5690aa0212bcbda8e52889155e90f0654a7e82a3570ec3a8e27202d302a71b0b51ec7e0525b202d4b0f84d696d883738c3d4f500223b2557e43751283c7a6287e546cf9133b5731f736041a9ea5e9887b2b76738c1a81aa2f8059e7b0f777b49d0b925199edf52ff3e7b0ca819c503d10d05769c5049b204811a4cb87413ba98462b45fd8fd94a06353b05a9c07fb9e079e10a027a3912b5d9af1165842c032df6bb221dd016278d82830ac4fb4e0059d3c629f1a91cd813169200d322ac62d06eb502526a9a1c81f39e38d199f2a161efa351937550923832cd2a275a982d2c0cab820497a25ad5dac7d470b5ab8920c5b128accc3d6ae23ebf051e6c11c2fa1d9f41a620ad98ac3d03836f6509bffb77ba7694a63170b55fc25feb441317285b675240f873a9e80185079df669c14790d47eb6e35835aa4275fe9314b510508df8f9ffa01dad9c55687ae8c88b3fff8f3674e5d022643bddf52b818308277e880fa18360bde14f7aca2be3bb891772eea23bffd04e084efc0f586a813bb37b70653b0e7cd818963e2e9b9d7c6179efa21b6c648a2e4df6019020dfa3a6a1f4e5798100c118fa31f12abc43c67ddb28f84054c60a73b4b25467ad245afefccdf66b0f84e34eb1edab3b8135d88ac950b15152498643f7bb71d1f740cda1fcea707e1533c7f0976c605e5f858eb0419f0f99132d0dd20b88b75f9f7520fc19a85df58e24bdf74a0f6c68cffdbba972463dd451ac2326204b70dd231658e145f0c07a571897f4921be0209195181cca760a7a57d24545d93e4d2ba37d05d4896d11d3ca5db7abb65f8663ed9bf3b3d5c481047cfc514bc8f137483e6868b0075048ff54e2b488d734c400fc3646f3958712d64b200a8ff31d7be457662c6d62398588c57ed659be7c7c0e7a456184371ade45beb2ba9f9261312dc1e71fad7c98ae62237d13851446ba63205cbff916ee6262fe0e7d952466e7c65ccc4950367137bbafd9507329081b0e19ecb888d0b3fed04a96bdf0599f5c8c5e3b35fce7ec02bbdeb477c5244dd93e9ed6e4a58ca6137a5b03369e3afa9d12217be58a292d1b2769a6819dd8a5447c4cbe5de4296e7b401e5b3550f4af0ec674a87ed5b6c553397b4c39f8ecd1693ee1bf02653360057aa77ef9b814b2430c4879ae3c938d795b33ef2773894b5c669888ae1c68fc6c2552e18fb8303be8e2c04e7ca3272a452c16fced041b3fa5a394ee7df88b8ea7f5c4397b337c3cd92d633296bcd9af5559f195a4a22cae50de919044ebdd99bca3fd621d70ec4c288bdeeb19847c783298da1d9b2e8116bb805f46e803ce2db221eecba0f525eb87d20a53d1842f954b6ae882592b67bcdb69e3d0c780e09a70e4100c5179d8fc35c02a4cdbdd149c9c08a8474fd411fae3dc9bcefd4f31f99079124857f60d1faccab69b5befee332b88f27207452f92a5f20b99a41dcb5fa371cb2b9c65e3f322f250a4e4345cf82928b19265448faa6d43f2831787209607e948926432e0ea63fc0a301a1168ad43334e067cb936415db48ea77e38ecb432ad1e338c7bc510d6d8ee3a0495674e250a037eb083a7be2906016ae85bfb147074ab2247ec813cfebe7993469de09add2cdfa9cd75680d34d3057933fc7d80498a08f1dfd65ba53e9e75ebd5ffbecde801a9c58ba9503785e64572dca1ef795d414408d1b7bbeac08eb4693c0edc0b71fcc2d3617b88006662f3e1eb66e5f455c0cc269be46b20c7f18a7574568d4873d8bfa60fe154ebe6ac63b9e8b15d308cd92ee0c65d697c9bbd4e9aa2e159c06a3e2adf89e15db283ae0256ab6a624b5ded4a92ff08d87e3844b7318e112fd0db9c20cbf8ab73ed4633d24394168aa13f3a5a3eacda4a649d6eb95ea286e67843dff3d947f0c1661821c6d8b84d5804307fba7de6fa66d579fe896d873aec07f50d1a2038cb9b2fdebc211e4d41d9d10566f7fe6b2f23e44afb9c2c07b4b1eeb39553f630a7899a82cfadabfeca0af2a86c05ff4a93d4d7fbe9991e051325039470ab3471c9750d4dd9035db4678d665f250ecfc0f0ed2318807dc3c76423beec755c14e06777e4688d52e99dded1f6f75a5c6117f41946154461f2cabd103097ffd69820a0e584c3e1e819dccfedc9e25eaae0d6d85be6d28ded13481280899d6af91d625665f9e8545b0eb21dfc3d2986b3474d8de05e01019c8b12b02ab07c27b3a83631b728df926361dc475e2799b1cf666822320cc9c87a8ee0a11eee082554c3d4fe12753c723bf80b3dc603cc11373d28c818a37b07a70ae7c79dc247395ed8f6dfc809fc7a1763414e213e9d80a6b3456f69f43488b084ef053c56b8f776bd887c7e4bd8189638d5f89df9218dece9d76d6ff13a913e9f4ef2c4667ba9cb2a6072e70ebd5c8d45dd388e907ca1241d2d34a44abb2b3ce85cc83258a9a885784933394b865cfddecb5cb9b0c5b4d26a7dccc0838c7cc7e41de4efde081222f649d6c04901213e3b04def7604f8d745041ead408cc2089c4dd876b5650736773c9983f5bc138e361f7cc7b4f24220fa278e90ddb8ffcf8a918156ce57d8f68e8d20b5ab8a363cc422c3dabafc4b3af1101decc5074fd3659b41407b63cf753fd75d545957d49fce0b1de25cd8ab5a7d2f538d1bce0b85027f54f88ca18e2b943eb9454db4eb3cbb0a774eefcf835b75c00913d2d0369d05e124372cbab07443e6e58371ed921cef87cec12946323aa57392719535979607a03f2964b42410a7bb1d9a1992ab4cbbeae991d9e3bd9bce3ff66f003a692fc9cd90ef7c3c6fa544ba8f2c21d9575d59a1654864d9544339864d29232b0feb77ea1d1e266b5b38e6e7c2705afa33e4f77b56271adec09cd3e7958f59578e9202943d3f71571cb8428bf6ae4cd7befbd6ac129e58d75b34e36dd4e371f45eae7d1b614d9cfdff73365f56c4428daebf74ffcad57c51e43e45e8c43d23343b0f98b2e03aac449b9f8bc42fa4a9ca26d0c9187e27a6348c0f3fa3d10ad40027471f23df6ad72cc6d3523433d4be01e8d495d277a1485fbfa2ded69089b01cdf2f94424635c070d68bcb7433ec8ed297f3bb03ff878f106b15eb718f4d119d3b60cf9311697f2346a7dc52c21b4446345caf470cd08f4c022a6522c3be31fcd6bbb5c898c77e155bec1ce280a3c4b59cbfef96e4a54aa416c797bd9797363b78e2fc155082230a73816b85f759a175dcd295c23ae67f0b2076b8692e6984ce53bcff8a80c3480850741842502654a18ccdef240ba550a6f9e5172b0f17664e34f5a2dfce278a4f1f339d1f5c88ce9f33ed2d19bda8b1b8ac67e2b63f590326017b496a033f5ebcfc13e595e211583b02f41e0c36ebad215e7270ad6c39a7bae602d92f6a0e01a563cd254c58e7bc66afa7fc37721c790c961f279e949856c59881ce3f4e8f2e7955fc47aac043cc097d4f485de71e52c1a4aee8766eaab6d8c4b362ce872dadaefda0dffeabf2266fa139b70a6e8635c09aff14419776434dd097bebed049a8c4419db43bfad75d2d6a362f46ae21608f25191a4e6d57d60d6af13f8f97b8da67fb3ddb8a486760a56e1cd3a8146ca1e7a5a69435617d7cfe4dc7cdd95442890192aa5c3eb62b3b7011421f40251a7e28ff7500476f6d9df7d4e43cdafb244d3b48756fdcfb422656610816c69992223ef3f8f850667d718f9158c4acfa8fae41d912404aa5dce3a8234d7c02196f256359c409e09a59c82b47f5813663278fcff05949579ec06e1b73f725677dfe196821130f57a8811f16fed40eea4184644ca0073d2b27c7f870e76f523991c3f26ae0452683ebc8088cd4cf23dadbb44287323b7c58b45e399dab2219dadef43328975a2e8d74d6e00572044ecc89b7b6d8a6f91f9534080c304101e6ffb3fcf54f7d7ad86a48a7d52daf58b33d2a0271b5abaa915cb4da5e26f10106f3befab788e06d4831ec0b3d411af1e68bb0fdbffb279ab3fb5dfe707a139c431fbd40020a912345eb5e243bd67cbbcdb32b85da85417999c96230610d684f938c8ad4d8f8e82ef9d4d8eab83f6de59258bb6afaca56dbd08e70440cc4b41ad01082f2fdef3643431fe1aaaa094361ac044ef2469990b8395df49e3bf1bd03884c8687045e37bd969c8d83a6477b67efd6af558f3288ec6e5a92b823677793d8c43bb832a3531a6cf909e8caafb6f2b40d653ed555fdb8be3ee89f32cafd575bacf4593419917c4162d621f5bb00410e220850a7ffbe3fb38ae6772eff8060222d8f779d6e75282bb987c9474bfc580965679f4bebb80a2bb5caf3a3cec9c4c4450fcf3c00a90af4bc3551017ee77d05516a33ba1e8f8501d40adda4176e1b7b8b0d543e1acb30cec32d7ca2c525bb1701db89670b508047815194d62b18024c632cad1d4bbf4b93ebf2e1646324627f808c11df0d8dae0bfffe89d02e7f9b4884a5b46832b63195e10e6d01cffa852ae4fab12d569829b3db82c1ca92cf0bd9d4a9f85175575dfea3b8dec6bf1d7a4a606e401c83beece19847569c0c4cfb18f5bd3c13c3bd6dc2dee04900d2d85ef8cbde0c3a7a1158f316d8f60999e018440876f61f1369a31ec6c594ab02088ee9445155b746c1b002c75c62646d3a94328ff3d12787e665aa90cafc7f7bb72f34e52dcf0f090f9c83e58cf076edb8a2e565502be99ab0bef7f2f0914469e5a823bd172485419daa6a3fb60ac60035fd2336b297d38bb5dac33efdb576d69e231d83257069ff3fc8e5438cad1d612d6226f1195d7a22058eb70700a140c4150f94abf5c339bf76cca46405eb6fbc5f11542223f5d64762cdb76fbae0bffb1ba00edbfca3880169ecb106ac6903c437500f2dcf905b10d834c67c14d29b51a34e3ae49987b8e49546da856ee2f182c6e891c7288fd526fd7f711aa72bec55815210c4ee5d864b6659a60c28a2f69525a6d944040920c14311d6a82d716faab92c0a4e3a04645a788ae242d20b8d1e43dba47f614aa6888f712e3b8d811179ff20667a72d3a255caa1b7148e145f8b14dd7e78fc4eb6204ec7f3e7010ac2c4f3b37b882b116e2ae249531478c403901784dcf8694aa3347a638eccec109b8ee33320676c7a952cae9320388bbc0de6d9ad48cdb524b837443796a6af6b57096e2d1b15edc127d3227390f7aaab69b1f9bba068d8f6f9409758a324fd45195588f5aaeb5f08dd7d884272084cd70ca2b1116102828fbaac5381ae5007a0807dc9211905d369518d033adc3e199bf32c8d990182a9f1fa6de48f01b6ffce11b4c60e5f31eb710f5820fda35160e36f76524062c905d49d39c706b8246ff7eb008d5ada2ab69f6ac6130f678508b1c7c78877473018226af5ba8acf340596cfe3f26811fd15ea299ff0572380539c23aa43b4e642b779dd148b67c8eaa1fc749f91df87cf533802cf48a25fc7ae4ccd0004ef821519accecdd90bd61f86cc3229b32ba3863ce8e0349120e4aa6affbdbc912519bf3442e04ede869f8fc97df4f666fb9eec454906bd25e5029e41077d03aad91ccdf2f6c261c71190ad6fdc80253dc191549f20f0d4fa697041394a4ee33e8e44c20c3548235684b7a3b68710b1dc3581e9bc261482e009ac9f8cc1b0eece4e66f2aba344bb4fdd3a1d867234bac6d2861be1886aa5ba84f85dfdf92c590c26644dd096423e98c054be35660c111e5804dd6366c835397ee4e31f95736fa4a728eb4799042324f2e56b3d7dcd803748e8a1fb540a7b6a0063bbf4c9cb847967b36a88ebd7f570dd95c4c3a898950c6b025318db0e94f8f673ab67e1d1af0a7e35760bfeb633e110836d6929a1d6674c68a774f980d102b05c4f1bb885f0150a3efee7f83b772abc83142219a3aec6b9e9955e9d72af4a61702c3e41a999baabf6fd413563610037f64966e3a97c7a4695d0db2cc777dba3688804026f17830770dad2c21de8497d21948bc7268787c94c7cbbff6dd76af24d82c894786dc647feae3ce4b3f479aa255e9a5857cb1ddf6996dae26cf06f2cf02fc0252506c398a5181390f77b17817ca48bfffbe24c6672ba5c97bab25517efc1aff52fadadac965284f0467a1ce8098172755e7ac101dd395f51e9853cdb52f0fbdc9ecfb036bbb555e45e7d966abcf8b74da810f098e5b7b83aa18d7684b43107c3005b817252ed767efda5deb4bdac396889fc0dd571bbabedea124981f67ed226fcd5bf9a9d72c785544bd2183351ce7e2eef9ea705e90efc49dc84288da570992d8cd5729c21caf34baab00d8e0b6d9c876f2ac3c7d6516ba77e3630576af94056e75ebdd9f8ea77944aa5ac6c1af7a0de07e21e96acf1330cf1063506ff4f55da4f7dc54756abf4890392350a696dbfbd1f9e742a0265c02bede337178c3ea58f2e9cd72c438100e6ca5e883ff02d0026bc9cc54ead4274bee62e1b5bd11e13dce94dc41fa1766642b7f0ad1307afbf15a0dad221726b22aca300290f1f861424f8e662144a9da46be0ec4cdc04112b5f87b4a46bc74a9306bf068c852931328961660978753d6e83079735eed6c8c7ce75bb060221d704d4a01fd55d79ba8af84a0c175ef43b29f3306fdadd6b98eda1544c063d72d6a6a9b420794d7a7c4d8964b86cbc1696712e9aacd04f1604464d5888787bda0f1d16e9214e786a5e422b55cbefb74bf99345b557525949765393e8c073b7ad7f02dcc1401259ac3142a57dcf0701cf6c13481490be70504de8ea0447d12a4b5761fc860ce4393db3bbe3ac9e2240f5bb28776e7e15eee420ab355fd3b303748e3c915ab4c93c523b2e979f133192e9cf3b48298e7f1bc3a799c6a669fc28141005783f9f28f45da3b22265972a15ee6f6c370fcdc5d5a0c782b8bdaed10eaf1828cc5a4d4e8b00f16eda0304858471ef0d6a1ebbd6bc27848894d2261f9be2307f31fa40eb7ea4e22292f666c0e58b292521996742f4d4b3a44898b5151ab24adcee283594e5c9909f7b5d27db44b4c9eefbc173c273e09b216e1608a5428bec83d8dd163f4842f54a55fcf4dd80c149570aee76aee78dd61fe0cb44084b3701ac0a0c0dc90adf4f9ee85fae4d28883d82afd64a8521893111a21d7c370d2ad80574205b7364540ea7d8c41db965a77c475455fa691830843f164cd8723be11d2f30b61061e8521387c0990533fc567bb0e9f267a079ecd745846879bda445183db28b481a9e19f7f4a1b676ce5348ab7b3bf54414c9fe9e92ef043f5e89403f38bf02300baa0222b8a3a3d32596ec0d9b12d49cd4115d20ea3d987e61fff65d9d38b52f0486cc6f30208935d5dab139b727400c912687b1e5add0ca14675dc5dcb6e854b9c9a160ce03a320ff6309f4aae525b6227272d16e9d4e7d8bef14bddbf3ea8a428321bb977b5197c7ea482a01fc552c0058efb944a081a91d2bc54b7205a14a9b1feae8a6f320a4d7fbb88380c1bdcccb242a877ce6a17ce5b363a4ed67d32525e36845a7656364dc6362ff9d665987c38e29a7fdf2ffd342e01b028dd800fb23f2ef0c5df7347608ac6c1003f8499c4fc66cdd02a224005787c8800700c2ad3ee954981ce9056e8fa61f741131b9a47a160bc99c7f7b408cd5318c03ed07f702069a174fd403a12a0bda8c591e75247115f7852e6e81800b3181d49e5ebf3f5edf630cf339fc2297238f6521906df5066547b4ef9cb144432e9d52e9dea27f28ae3d5b1a61924f16889da1e55c7d193003a7ea6bceaa8269945fcb67ad45c99725eee86a85e297eeeb1085d37329e2892a4f5b03ef4655f271d76c9379a183c7db5e5f9c55ec96e6f9a0f14dbf3fe9cec22c3d68fb9e1a1b41099558edb0503942d8e3fdc15ea0cc40ffac6bd77f086361135d2437358f611cdf8d9707e147502e943eef1a9f16f22f46857684b759ccd91f1511b3bfe609033b0ea446637ad4f1e831697f25d6ab239bf06e11fd4b355eaccadf234db8992d5d9cc9a2aaae73038f85739b88edd3815595866ef105ec2f78fd9308bed05d721082c2589ddf3b37c398acb6d2aa44e63cc0a22334a0e1dfe4e40221cca3e3b94edf4084455322874724c412fabf625fb02ee012733e2c1f6b925a341a217f834f8c668a0a0c7e6b8433029a96e190bac8ba0c0bc0b0871fa9929a270628c87932e84f54bdee8dc34c42bedd2eccb9e0c7672a2a1612d083ac10156437b21917b86586590137ef4d06dbe864b60dc8426705f00f39cc89e05991f48d2312115abaa38c7adcba27b13807804a174a2f56d72049e0578458cc1377b08a0350138a572355ab770d1d14c5621b2ce1f264218242d3151eb7878003a09cd7f2c4c70b013acb6d5ac89e4648a86568779360d8e28762241c368509a59b593033919745e0b14a1cab21db79691b99ad58e41e8904817bebb14b630779265f85ce6f339443a722043e7de688174c0bd859d122d879d9daf8e40557fefdd47b4211b70e4f059619507dd538d1f64b9f20ee7fefccdfbcec9acc0b3c3753194be5960adedc1e36e6c273b02e9b81954e9bd62b90ae3d1755c37d6c11302719c4e3e2601fd8d9bab74184d487129d92a805d36110f0d3c96cb9a009769cd31bade2bf8391435144ac2e9817e8cea4e64de52db9022d2cadba9c1a9b32f6c8b2213cdf1fb6ce34d75993ce7258ec2e5e73f63daefa357cc17fb774ccaf9dab2011d672cd552a00fb481bf6fbc4b30aad64ea36a9112dae3e2da1eb9f7c8ac4edc048bb38fa6c183375de5b857cd33bf1fc75e38d65b29f4deb305016ca8ba70a4555c4b6738781e3d0fbb86bb427f4472fb0226a96206a1413402416f018315c0cacc91f54c91dd6bf0349890413ce9f81c042fa4bd9c567b43c9dafe8b13d0e5503febd7475a9819932535ce966c9598cdd92c3aba1dae3108c7626cfcfbc94b47dae7c6e66e4672c7bb02e41dccc387e9bc676e40e0f671fbdbd9d686501d58f60fc4821c39b5c37611873d31bae95988a0425a802a9e90b8b02dd9aef718ba31aa7c231c3854bf1a33e9cc55602ccb025ba93ab375175b2af9469ee15faa3809aa0f08383211f80b80b69246f395aaf108fa426decb8f2786b91912dbdfe508f565aac5ea0cbf83147a0060b0c53d14a71158574878c4327d035b585dde05f45b56cce49d82b88948e23ecc1752aa70daf66affa66918cb5935a03727a8eb4f64821a9304f20798eabf45222d4959e86007efe2d52a1da2495bcec90f33baf99cadeacb5de3a6a75039b6fe6a2e55b633148a4b387f069ac5030c4cab6ff425757c4b45e499f5231bf4fd5e378c52a85d8c3685a5b29f4a44c208a24b4eeadb720864020326d46e8f00c5286c785ea0198e7a63654a3d7bbc65aed090337477b95434c499d9425bc2e5daa46ff1e812418d0bb93c29d0adf78c3082893ee528e05cb4925150aeb49218f8fedc95f7890ae9bde089780f91b4829a866302077218b88c38017e9fb4736748c6bc789b22180b713671e84690998b4e4cac95e3aca40a49c42175648d0725fa6f4d149b0fd6e9619c1919b743f70f656d21191d839ebff10a53d76ae4891bfdd35b9d9f152908eff6f83e9ef85a4b7d21111894750dc56f21f02171500a93b3ad2b391b0e6d4c62af3054ef34f16b5cc74a6428574d44fae4b34868de76f4961df0d78b68c348c632fa68762cb84bab619f4f72d0c49013736d50db9076d3b828d4b5b4a5b1ce257223e5a84a822d3e15f2646cdbebc647afc4dbf6d91369983693c4e6d90fe8d5639bcca8aec82795add8022849a2d5f4c10edcd62337c9fb92a17f762f478f937e0e5912aa4d27af18cc79d13dd6ebe09332d89449f15c5beee4ec0b64e0c04f41937a03458fb3dce7e88f7aae7a8449559d7bad1d966bf5dcfccb8f4a62c07dad66116db909dffad03f8c5ce8cd8a62fa465fb8e3a6bcce561b36174780aa98c6b8f225f6490d622fb62b850bf050f2b8c63e19d48c9cbc366d3055d398ae5e17890a681dd078df8076212c8bc952d48c770b469d23ce13bf12f3c7fe8389f12b932c5805c2a243e6f00441ae41ffb1b4ac8f79dd1333bf12a8e60de7b11ba5154b66f9b96d166ba86bcf1b11c5012e33f6932eaafd3450ba5d9a8c469934c6e9e9e374f79b2a2aae234b9c241cc6135075b88b0d73391221a134dae375ed0c408abaefb3b2aa2f08fd156fa99130da174174fc81c2aa49185520281c572dbfb854294092a791c567c319a13969c4edd6daec8f78915f8e539af843637e30c172bc23b470c24052a2fa9b24bfa5b2c3a1b2975ad6466ba0eb27f5a1be0d2df393cb36c3da2fdc9f333f476dfa1f8bacd0bbd7037445a12dda33594a46066f44c37f1bf69563b73ab836d0d200ed89ba7c1109dd9ef654bd82eba671a89685d5b1368886154bfbaa721018fcb614bbd405abac5b95a4205f277c99f9a7b95b5c8c2a133a0650f0e8c995ee2e58986e3d8e20a6940e25bdc870ab2717982456be8bfe37c3c72a962ec6cad502f7c8b6677f7fbd62b2533446eaff10e0e485d07d675bd283ea847334971e699ff6edeaf4032fd7369c5cf83e8579b79089139429dc9b9fe4b66bc7fa0e2c4a618d3b681888e4932cded6a91915da47f19a6921762c899995a592867b230ab57a46190b6d41a84ae2fcae96f7d27d725fbbb8e7099b273cf3e665ce046e2c1ee783b81a7da7e98ebf6fe13b18d8c336a8a544c34ef492087ddcecb786add37bd3f6faa0daf4a3b4c9230554b4a806830ba8325dcc02ebd6c19d7cb4d2440e1d6f26a968aba69204e2f9a53cc7a524ab7924a846a81850c966733adea5b84830f3f1f81bf90276924d466fbc8c9898f7580f39e9e98aeff1f55f6ee65a336e5b9104643deb8f67e7b2522674702d22cfe772a6a6093120fef191a58b4b049907e465cef44d973ef24dda7484cb74fe3c9eececc123ec8e7844f1a4c13c1c53426deafcea6da904f0f68f83321460b0d5c72da3ebe0197b747c9a2bf5ab916656abbf5bad5e1a7a3ebd956495124b593ced7ca88bc72003b47b598515771e3e7e4ce41454367faa4a43054e964470a1ca8a32232232e8809b2032ed4d24a1d55115ad7664a634910dbd6ba4cdda70301d003dcf599860f68333dbbf98019d3ad21f40aa299fd8cdc86e48d5069fceb5869a9e9ca531f8893e5e407e966fb69c34331abafd57cf68f5cd910175a47381ab1aeb9d83392513db3cfd9f52ee37eece168be83c2cbfa796f22e78e2d82aacc71bce46bf46e0b603a7e735e0ed8f14c8ec3556dd3913f262db7c00656d25d0615183fa4c3828947f29845cf8f7cfa86dd391f8e4937bc57423ccf4609476516ca65eea98337b80ae478d7e04832e4851466ae037286aba752ce12ce541973617e74344631161d40f8573673ea285748ffa5fd0782d9798756c76b8a972e390d4c42cb1835fe2472667d825d0d1d404e23b6523f60a7c7bdf82b6693bfd1a7551b2a7232ecf0adf4a9812be1d51bb2560224403dd31da063ff4c22f1e18e183654b55f692806ce64014abaca2d801ea0d5315ef2c4c33abc7f02f41f08e40023bbb6d5af41d9cff9ccfe3380dfc116b9d5fca91257b4ffacf558516d817228231d936168b21b43d519b2c97813478790344a6e8281cb80bb32ec134c759d81a3d839093d4f2d051f01daddb2e6269ddc1f2c1b94bb03df1c955d3c75bfb9631c4126c3e24c192c7799cc1bc9f8f3927095b855a0e10733b6f7a210d6b81f5d13da74f3392229e51c1f4752571e4e30f14d634c6f7092f8e3ebd038e7edb70961268d43da1871f26c39b0d98580084695e735f040de80d450248452ace3be72082cd27273685416b77aa7f60a46ae09f992d70df5e1dec2701c3a8f2803f1e238f768a54bacfb4b3f603f6969f5ddcc880ac21eb278a702f9e4d60d33e7b3ff73310d3b58383308b016850f283f80245eed903db345a7f597cac970e5d3754c86158ec03dcffeb123dd5a16ae3cd00f0d43af928917ec58d98b3e9862f86ce4a8c55524f412b24aeb6f6aeabb3d729e1feaeba0bb22830920b8fe6d948e60105c47197deb9709cbe807873576515f2bbb3f452bd997a740f6671944ab351a527a146e15c552718717a079e18b17b7690a80fa111add487a5d85aea7b6cf257f6808d6858355ee099947011850469f34bdb7cda5c35c726109a2056fbadb316c0d7d5fb10b73843a125cc63d0b8844bb93bef06aac8b24f5b3d98389bcc8ec66799597c96981f11801ee2604e7dca8411442b7f411290c527eace659db8c1b07cfa856037330d1fcc32fc85c59f86481ce379757fb52c90ffa880a5ad681400e30b95303f2524c7d4452b85911c3366e059156cfa44687aba359834acb9f1460cf3e20a05059165cfae9dc695a0784fe4eee4bcf987a192f2095c45488d5ff6bfc07f204af770db132604e5ffe61199fe98d6103c8891ad8891117a6a31d1e87328dd38e842180e696d2b2eda1cf380b60328e80d2247e038bb4b6e6f5a66d8349a5d2ad03b9d666105e1246e34e260348ffa17b010d3073f57ce2b323a68e71e81f866581ffd52c781f1ff7652a03cc22da0450eb179420bf6ebb4e67dbd1866a81d6bdbbb89c2194f8f2924bfdf3adc40296dc5f4ec720639887dc43c9dd4ee088051a6fd8fab18fbb8c0eb048525d1d7dd607a3f26c166c774ed802100667681764037bb5087615246182d271deaf2f176418028f5171459b3e399582e804b3b2ff6cb5a76d21be51b36a31a061b57a61e08cf5a3da59c89432e700d50b596bd0846402b2b8eb5c4a455a7e9816f275378ff490d2b5e39658714328015fc32f101933c8ad5c0af8c1a65432ed0408236344756cd5a79e2e1f5cc95fe623316975859b43148f07a08548714cc740beb12fc54c1950ef173b6c60464496c9a49f31ba5b446e6ad6308cb92fd1306f44ac1d86df76b0f05e2417f5bd230d25472aeaf988203d4078f374a92a9bb373f81d28a2d8afdc7b87d74cce8ad7124eae92ff9e70917ce1307053c43de525bd883a2b20507f8795249ede1b1551da1c766f2375e9b13ab6bd7f1e39a9e203acc0f7f0eb71d152ddd5cbdaa3585162abc34955758fb86dbab39d6e33d1d92ffcee9c387dc16151ca85a8374e3ee6c307efdabe049c09576f5d1ef4e067fa5e6b3ae0e42609a21f1c8f3d061a0a6a1c423218f8b350134826efbca34836dfa7ff633ec6101c65218927c0cdd465c1e12a99eaede3654552fbf2459fe797972b13578a1cad39350cc239140791f66694b6f8c2930f91caeb3953cc62f5d4d8b03b223f2a4be904a46d8c98b2a6e9be073ba20acd8412be043212edf21d9afdc6bd298061bfee2bfa7d67f2284e6fe0483324ad66363a92c72986d1b0e4d566487a194d357a3a0d1c983a114b63139a11462d8ac10c95a05dfb4949b584c8789224d5fa5820f76191b0b9749596ae354383b34d702702a17ba310faf5b1b8d0200a78cb0217b9c3e1adc3664b4a3a14efa91a8ab1b6909a80b51d7b21835f8050ba54cca087120c3c82aca8008600d3fee9d3a4c905b1d621f59425b1ac9b17184e24baabb5378c3a66c21ffa01a70ce5c791256f8ff3ee6b211ddba843aded1451d2458f5d36aa265ddb8cad5be4d1fb3a773e5bea3c8bfbb485898c79e8f71e8b65ca6d87945db84fcecd2eb2bbf277b8b45f095a8b493b14e85e5a74048df7934fbdc27216374790c3fa5c3b89ceb72ec2b39ca040ca54a7962695d1f4d8f6ac1a3f5c37a02ccd595a95b92ab78e14f772f5d1cc1a40882a037ef516cc8858eac490b9e886cb924e1045175c2690c5b3cf6bd117c302290a3c28ca710bc325be66fdf37226b3cd07f7b4d8daea594592f8c4a86e79a4437e173d10b23c4e90886f996ca740f3579c40e1d7294ebe824a8bb68a647b88f67bfbaf08576a99fe1458a102d7fc8dd9a452bc23b8abeb2ece3f5805ef64365c6286239de0bc4d7d10377769d94c901325f4db6122070275c81cbeebbe22e0f1708fd6bf5972deb434046eea3ddc02965afb5ea34d4fa7fc306f557b10c3e71dbd062c2e207c41369a3c0875ed4dd38d89a2d7ba19caca1f559ebab2e0bf9dfc4f53bbaf7f7fbe4567791cda8ca27346bc6db442961a141c146104e8386e876b6719ef4d83c831ccb297799bb61242ea19f28d3767e0d0dccff662c8fbe24882b41babcb35cb3f4facb030e1412ce90d1d3b254bc4558a01d97dcc45d0134ffcde595073811d4628e94edd7aaa9da3f93d6538a1a7a0657d786205b643839d1e9e3dafe66ca2debca5eef18c7c4514d865f34e27fd6743e6d280de1c25a72d43343b268762aecf4fc27399e0257733abee9f030b38562b5333da05395f606990b14b17e0187d0c761907044672aeefe9333ceba79a84b823c6b838e99ae261df9e6d405806cb49d2f6141abe759665094c1fd7e4cd4936a4db724d82bb67776a84f90b98417dc71dc037e9ad7d44be49358f2f6dc92809431105fa8e259d5ca0e67e75b94fc18786f04d0ba72dd00a6b086c4bbbddd033ec6c4b26be0745e32b54b9cfc7e40bc657c97f883f28c501b2c18a7c3dfa75692ea090e4548f9d35c5f9d6b49053e59f66211a1822e4e357198a16b29395463a8e9762510216e4714650259f93b065856906dbb574462efeac6fa16b0d63c00f40c875c26586c19f71ea30ba58fd9575dcbc972134f5b6bad43bc8574cd2efab3c41c3ea883204803b8ad3a9e83af61c207e7abcdc7a1f820f0c8207ffee8ee263bfa844d7acc0dcd8ed1299846b1eab3d7ad159ec3ef4f637ac0a12762a0f7903648b4fdd447cf7a12c4353300bea67d56a5c955e5d6e983058be77c9d7e235ce51440b3f4795ae0b0c070bd4aea2a26527e7c9c8339a58453d5da22f81fc2dd8ecc456b35e17453fc014fbaa4fb5f2e8d893e5336cfbd58278c625865147e8a2ac5d4238d0fba13a94a6303c6ebc4dc2c3dcc5eb8a5125c62646817376147a38eb8c62af429ca5f635d2b94ac6981becbb36e3bcd99bcfc9554ed803efe0da53e40283f9a6ac891c886ec52e5574848332a6cfca3e0f4905f172e0791594c05e15d31471a9f29ddfe11a0680d4d0ac17284089903804b93e9acd707e6d261050bf3cd9c94a8d28780cfeff9c81578e0e4c815a966d72dbf5ad74bc8843ebda6604cb632d6fd86b8b0964253742d55cbb89e14f30e12bdc7d09df5050765d709fe9217147926a734b9bed8d9a4489a57bed6e46d03b7f4a2c1ccad8cc884fdc1be56cc0039423fa701a4f85327cd67c288e10598dd1c21a343712f85b8ccebe73e0c25288d81654b4a2a2b5a8956c8417656674645eda5d8c95f9c6d65e137f5608c4044f6aae813153588036433431cce6fc94cfcaa147657af11ee885b8bb2ba93f49756964eaa912e131f8ee53e30f289ada1652693300a3a4cfb0c48aec28a40469117b322dfb182278c14a3331594a8d6df850992d620215df97fa86194bf977212d78294656522f58357d8ad40f9f05947954fd39650466ed031f009c5270187a3d41866f43c040de6f3a320d99c2d3fa05dc8c0b150d09625c088293e1bca890e5da12a26dea0fdd92f558820e94cb1a0c896128f01abbf29ac4dab97cba2322801d9d4b2c273ff577af7dca055e0beb835b1c571790598b0b010fd88f11d33c77a9195dcb67fb16a2dc15484f29eaa65686662448ed39981f314fa72bc330f2cc1300a2a6cc9e53b2ba476c34ce1cb6e22d49237294a1e15d994a54cc0c0855bf42fbbc73eda7d3e1ec1fc12a226ffadc76e092dce66822f363bb57c1d05892d759cea2afd3f57071df086bb8e91a645bb7cb72846665b0cd7aaeb694525c712b698b2cf1a0948a7323a1dc5ba673a6680995342494dbb0bd8f542cc8da9c2d20ed9732c384e2b98d45f82208f9269050b3630d1596385131826e7083cfd7ac42329943453a6fd8e9f5156b8a620ca28171662ccbfb3d21621b90023d1f1a4433fe48c0445ae09c5ccb7089482c419a6cfd03699b88b66753f1e4f0b26387364527e49916a89248ab16b9b7603540e7b8751fbc17cfe3225253b935857ecee2730fbd574775afa3143fd34a34e49b61ecb57124fb265edd761e7c9b29608e0b2fc755d327bcb6aae092d83b10e42696e99f65abc3fdab28e2d70367bb7ed4549b89a788b1289f5682374ed9b748148182617e7c438bbbc4d7f163d7bb3de5f10442cccc097c5362dfd7c9771f86c4fa521f4017fcb2d25e22d8d0da4738345d93c7ff7d7e5b4733629a433569c0df484259e8682a997bbebe47f1d29e06a0f768efed240ec1037b2507da5b95f9357bc8c7786136622e99c0c08737f9a818f5bb0a6fe73e196fd49934f74f1a3cf061bb4b83f8ba740a5e25e38bf0bcb9e99911288c0645c86f285c8950d9e7eb84a1757ec6379d7227ae6c89548891bf7db33604c33e0fd26bc1aff7cd78559e708b48073ae373240991c6496a5734eaa4705e3a9c4339c3f5874466913d0ca1c34125201cbe9b3d6ff4fc62947fde23609d881ee03b5149e0810477090c943b7cc8fb21c8c236661ab5ea42ed35cdc0011cc897dc00400954f776edd2d9d0f3f7196d7a171affe25de97c7f94e7b12d02ba6b04a78278777fced7baf2daa1edf7e7b743f7f2f95aa73eea1d4194d6951abc1846016cd801f48250b18576246e4c1134dfa6292723b4571617ab75feb949e5ecd5c0162cf6a018652fee8d9f040b6dcd7aaeb96a2669ebb3f9e6a660b8d9a4e34f079c3b1b8c9e3aa7d5c73b20a58dd9679cfd7fc7ec14fee629fcf3f951242f06149b1596f61ab9e63f750dffc83a0d069c219d01c7c0d6de025adc2e640380d0ac056a47804de2eb32e7605f4e7ea5cccdcd5379acb364ca53c797f229fd35ed7038542c0d66bb423d9c22373830e4bca513a699791b457316b821fcdee941ecbae78f7b860bf449d31329121b8fd41de751bf276588ded782c08b5ced13eb67abd44d6d61b8cc8c2a907cb47ea7f9c59158ff9de27c0cd646952bcf2f2e33c8fcd3c8f120f3204628cd3cb53b1296ede1a2c0f3b69f50550c34d0969be61bb48acf8ef6a7b48a9057079205898facfe48528fb3cdcb7b78eae76bf47aa4963f534cbb15e9821296579a2ab8b6ec20d38b1cf4e539b27dce35c1da1040f7b817c7fc69374605968f26d45ebc727b08f78e90a2a383059d406784cdafd8fef1bd85ea786b56dc1a34d962e9f0a4daca59853f6c766b8d28924acdceaf1137cd8952f42622ee63bcfcd70b1e2f6fc60ac6123bce99d19d91e5f027f7a844d880056f64a3571785777fd33ee26517c115eed2130245e467fb24a0bc8b0bfd3fe3350ce92c11168beb61b2155fe8556a3832d84e5697292a9886ed985228ecaf7a3cca7142029aaca209ba65155200e7ba46311b9e8641777fac9cbea84411be07ba9566bd9d611d19aa3524787555d0ec6a89909770229c3ef4a28571e0b3d1f76d7f08af8b88cf5fd8c954aba7a064ec667bc185ae0d9b0465686cb5b868d7d77dd7cd7be756f9a0367543f0f8834495ee0fe4d24d48f727a46094e092e39cd7253f0f2a937d2bc6e764b477f9e6bac64a63256c77ba8bf0ee76acc6ae1b397c4697edc6c29fdcf9cae40aab27f09fe79212c59bbb32daac1f8d544da65c1d1ac5f363b57fde4e9a83c06a2b80f56bae20dc9bf491f9ac649af903f9fe20dd88a0bf2ed6669b75214fd4cb44ad923b1f5fa46449fa6add7723577e36a6456360656943ae9a577c977044784318c00472fcae94646f45170bf25462f435a21fb5cbf973622eeaa0f19181a467479f57bac35f2a00ff88e3d5211b521af1a079aa6d6ec42ea07158e6033223e3717d8d98a48e46f3d648feac5fd60daa45b8a9ef8c228b592b38424130404f690802aac6ce11d93f831b5d0c6e286fd11b980b100bc0308ac3cb076e46e8f1129f18b232b35bdd5b618bee5b52c8ee4d5340bb3d592272d79ef21486e0772ed264eb946924bd7fe3c19f899583d6365acb11eeb77254edaf49e34b9d99ab971d19b1dd3dc7ffe4155f885989de8a13ad7789c92b6ebafeb4e1c20778fa526c24484f26e880019ca27bbb39bcaf68f564bb4fa36f76dc235b1c5153114dc4eb6cdd6f0ce04518758602e5bc7fba4e7aac6f67cbaa9ca4660ecf36ce4cea48f43ce0491b1b2cb9a32f15f583bb923722f7ab3fcf20933a8a4668adfd1d698d04289a3dbd1a11a5cd750220ed08b177231e3c141292e6daa89476dd62d0f08163cd7eec9337fbca137858dfa2ee619de3506deeafa475268f66406c6ddc675e3219142366c2f86766a2c7d5bb96b356bf87c29e6606b50a236e7c29ad4ca176e2671a35cc6a21ed017f810e3ee9a6d6751b0a779dc25e85ccaf29335e059579f144536eb688b819513be297c462534640c26bfdb0cae30cf1ae86cf8f9b055e7d690c5a2dcbf7ff5e255f01eabcaf3b0f901be5b2f7a52a16ef2c9626cf763df152b3e87963e3a0d26f84fb50e6387a5c4b8541a4c9a0b7bb7b024be5f2a87bc18f134a067f9abde1fba760fc5dcc1bc587a165211492ce212bc81da9f47fd91516a5c49f4c91d97d60c57e8985ae57edf08fa2f9fc41d6918b1e3daac5fb3633f1712139532b02586dc2afacc482b3ca188dd3bc6a6552d4f2ad4116967cc089032d23243d9d7215f0aeb227b344297525400517aa2e3a564cbe1edf5991edeabdebf8372fcda01cc7fd798036dc8df980887267cc2e8c1fe151cf691fbb34815151f17fb7b55a1b607f32e7efbd33ccfc8f9677b031b57434299d689164c084630dc547472b717886f85a95f486ba75636c35d336a43e06ebef17c8e5bd959f49305aca3c5c4dedc2e9922c5db0db5fab2b5254484c18b144ac24402a702eae9ca4bd3e086144927fa7d7e17012a32354e837bca98039ae1da2c340f4da197d66c849991769248ba3145f0f8baa58c5a2c4511f8ab120cfe99554898b64606c9412c461f80fd84f613488eae60590ef94df7772edf05a26452e6d15709b2003764df89078e6ac293f6a0f6777291e7f45cfa975ea58b29cc998de1bc8d5cabbf95e0feeaa7c0974090ae0387ae8e092b8c91b9aeb9661cfcd679c45985ef8611969639bbe63a7512899590893405d1a4a5651da9c4ea8ea609e190f5ecca429e0e09696a6de9fa7f1dba4df7919e80a61a02257522826e21e17dc292357e5f06916987be3e309fdf9c4aa595e5768b2248580bdd4a2c1099400be7fc5754a16639881a2a7b46a5a4f1b4afe3e49eaf5b293a2d22f2f80e96c8cc5aafc6c552f1c05b84cc4bb763d42e2b38607299e0bf61e2e1e1178c7af05e041527aa00577d307ce3fb81e3da6d5325d1db9fe20146de6be38cdfa3558af77d84f183670cf5edab83fabc7e9bbd11def8486c6471d84d5647333c89646b11047c0acd12ffce9248deb9b90ffdd76dd64dbc48006296570607a72fa14b1875eb2e5b644a6bfad4db2acd4a71a4b3734fd38e740b06f6c44318379be0fd3ec2863d6caa0f90e9ce8d7fed58545a9e1ad045d48ccd8911cdbb1585664f7b1244aed19cf793d1a31eac81b136bc3106a9a57f973f03dea84d7c77370f8cdfef5441cb70b2bdab09a72ba65a8481fed0905ced8eef5d52a2057c5b8a8a49c026539ffcc7aba774b4391f02dadace1bbcc949123b39010014d411de00c0ccdbfec92f77108f21ef1b1343ab6e77a3827e24031da1b6060420967902b9ca6e1755fbd8e7c5242badebdd75a87f2b5330a7eee58b1313fa892d7d542b249d1cce69678803d0dd7e42b2e5377293e606dd71848ee1ba7c5da6489e25232699d96eba49b103929e0447543c2f03874a38020c1b6169d0c52301b30ad4b4dc2c3a6b0043c732bd085c29edd8a77866dc38310423060cbd133650eff82ed4918ae875af91c388389357d107220d43898eaab9dd1fe7338ecef2a1d16464569a2022118d4ba357af977e1259e874e6d39206a002b7b4c1729fa8775e14883a238c386d3b04e707991d89ee6592124b419e17e48d05df1032b11bb0821e13822f601197d12d16e5cb92e9a7bf1cc09d15097c17a801210ccf110542eee762994840a6f6da4937faecd13fa4bf9d7dc05c812a4470c9f351c90893c69b093450a37c851d58b258fe4ecfe21eed2eeb4a9657e822ab461669ae71e5d3cebb2e62bb934ee59a5b0b5112055eab7679d01ab1c7d1a1b27b0c05edae8f27932f578fa7bb39de1771e406983ff08769a69774b802d6ba5f239c5a1c951ba106b89c44a8db8f0d8718fc059abb0bc0901ecdb3d4273a9ae80a528429c3850cf8c34dd4b22c2dfcedf771327a9fd51e2659a48b81cd1415edb1fcf61c38bdbca46f9e3efb0d04156d54e4aa9ab9aaf1bef373d71b36d06f2b4a2e066a9b29f69ee5278abe789b53eac0f914d115989a1e7133fb28cdae749725bf78fa98202927dd65accfe48b42f35cdaf9466ce2f2d84704d4f91442dacdfe4a2d68e670fc81433702a95d024a7095b53259a47e7dee5ca6388bbef2f91d4daece1603d8271585615804fe414e0332396548a69769cca1000ac63f7bd6a3028e981f898f1e55fa0c843b061e9e2b3b1d90cc7e0b655a509dd380de6d722ca8d22b41f1bc89cdb3448bf347833189ee9aa7dd67ed3e002b2afce4d0aa76dec724734500fb92ce3f795dd4afed37d987ec4143a2045acd39fa8519c6eb28e1fc74978fb0defe880bfe1b4f4cedf6851ed453bd2b4bef2bb9825f55e43bb27bcb7504c44e6a17a3b08df2b44eabf8e33819fdd7456f20ca51dd43bb0b7ab5669a1d7dbcac966690d7c27f202a5e8a76ff0265bc7154daa23c482ba1f7db354ac329403ac2cf4036569bcdf321d58ad52bdda690fd908750a9a74b25aa66cda1b5973c08cf771fa7d9fed9ec4ff1880ee87cce3880ef921398ffa832687733819429567f1661cbfeb833af126828329bd4b3e48aa8edb9365cfa35576e3d13f38ce9b99e985757a986660cfd4604114754db0b48953f2fbb2666840d713c32ec5fa0422ac195ea9e94279e38a5a29b9e0e52ac6c834a8d764cb6055cedcbe60c405ded80e14b5b5ee7e9c6c9203492c152f9b0a900aa980c767fdbeb4897deaa30f45d1d6e1e99b00286f70f2c7fadb2a5b4d318f8add26e8bfc37f9c21e35dd887c73f264a7e77e92b9978b575e9d7e50eef97ddfd6dbcbf78b4ebf4135da841ad0ec15f6f2e84531a27e48da3d57d43312a1a7035aa618d62ed4411a83488bc20f1d6b840178ef7446fbee329eb4e87f135bc072a6789db10b10960a038cd1d41db03f5847531dfa0d6dbd399861bf30e55aa34bd7bf30c9ed7b0dc1869889eb207f0cea2e972e5d426cec01531b33580111864940b2092fc0f4e3742ff0f31e0375cc7f91088aef97823f778d3e5750e5d7883be8c154b2187b5347f599bb8ff6829bf3422ff77e9e73c4ba18a60cea92b000b809dff33aab832f5e24686a7beca48fde854010b4511503e059d9e38c0c0f8cc3928a1423d2d769ebdc8eafc71bf6fd0e93d916648ab81fd2cb8aa606deb64454a6b885250d06239f918a720e80d59d25198ab5b18c21b2d67a66227a93a7a0911b83f7aa7c6228548956ecb9581a3c71b62e78ff7810535a89300f763e19d471fcab8e9b6697012161f340ada858f0a4801b0586d9592271ac332abef388c6dd08f0755db6c5ef59893d534bb73506d1801661d7198fc7bbaeffe0b94cd5ecd4302957547935807ac313cd6a8fcc0c1b3122c8b70937af2fed7725cde56a9a221d41e6086196945fa8cd95eb7f22be0d0518e57b5d968697d9314519df809b16a7f3e71a45d002b52302312f9babb0fde012728b2e08387f7823de4461652a5b5f615e439f632efcf39dbfaa3adf04ec9ba98bbe76e6e9a4e5a14af312da91720672c5f70c5a3d1b2d4a9d2677dc808482f9400b9702c2f6cdaf1e85a1800e9f140789b2d0c6caf6b922d404b21ecc50d7802a60d5ad6f9bf09b90943e57c1f732fe1e804fd73832d0bce0140c42bdfe4dc91198d751be81a6efe6611e45c535c0036f33957304d5847d8010eed7eba38de2f3292a99b27957ad450dfab6b9545035728fcf6ebc3d384084da824bf83cb4ace897be27f4e702df740c904b547a299434c7d0477e7d244de1fd38d63b43d3f2b8a667e385bab7747ac42190cbb8c547a2f08d791af1d29f7ab84384d2176e552d175dcc0e641d732190f1cc2c2853b0ca69a15b42afa47d5c121a49312ffe0460f1bc653549ed71c8c5cbe1ee82354983bbca92612d4b5c641ff723ba5c6f4c9b7105aecf39746a11807a3254ea835b94376a11054f51188f8e5b54005aa2eb8e4d9ba7e94515d64c0651a36db78780d96b07a8f1ed917b6717889eaea9ec41e6574771e47cc51cbab2a4a5d0453ff4ff86cb254ccbb9134f2b06a041429548897fb5ee2feb8e53f71d4d545275dfb7ccf6040975c4cf589b8d1f3408015b5d12c7f50061790c4b3a2828a059384c8414dba5bf7918a923c11a62e81bc2ecdc4218fa4ea625f3ed2c32978c9ae4a18ccf63c4773d85737408142381431e6f8d80c61e9edd6e87ef8678fe7b4c24ae10f3d31a80bb052d8982baf98df13bfcd8a52a9cbacbae22cabe0e488c2d5674bffaad863805052b443ce1400ed1d41fd8ae0115f0388fb10d6c666003e5e2aae94b828a92ddeb93e2e6639525928d592c0d1f0c12f4bb37fe34aab9cb968e3b84dcf2cc211409e202711c5de0e8019faaac926a14fe7149826174c700ba15c6fac7c297bc01f768fb49073d08f072d9d5f299fa33609291616d92848b84741dd2bb3357acc8cac78049c3a30862da64294392eeae6e6d4cd33398ecce7d10c61a6686216e3a8c789c757f3ce359419133d2aa580d7a91cb5c8efe81640a9c7db34f2e280385af46f320b67c348e9d2480d142b2f93086f6ff806ac7e802f4b05bcc2c49d1098cd05b1bca19483824d5523eb857a93484c4b94d83c9d7a7670196ea11801300160bc5eeb7903d19f6d231ddea07d5a1e6c450096f927984d3c85a8d5571dac472be6c62929f3c4f443b402cde6741904a97738ba6b5de12b88f9a1916e09cfa590566be6ec9b9ec91a56856b47fd7ca0e7327d452c6ec32fd949061cd3958da97cf6f89bad6ca8382985771b33a4d422ca28640cfdf7ac6634ae5b7370941586f601bbbb14f8b17ba11469025e95dfc2d01cf283d1c7e04bfd8a0547c8203fe0cd0429cd1069125af019475abc192816582c0c14e1f4655ef98ed75a1fb939cb589cfcfb18c70b9f3cb32ed08589b0b57aa4b5b908dc9c94099aae6796e8f37deccd03da2ba51bc66cadf19892c36f6be139056808e02803f1eced484f92bcce42de2dac92994f2f2c92e3fd81ca93480eb2a6db7515b864c1d9821ac5db9d5b313e28547b98359fd8964d297ecc9cd4174d5233c862a103ec194956882b1b13439f875030e1dd7683e21dc00c696a07f825382dde23f0d1ee96ea296f158451730ecf2740ee26d2112dbf49fb45ef35800b26a1a9e8076aaa7929c3158ef861fdbcb519d64be6675a1286695277a8f756bd529acf993e192c19f963e0a70ccdbf1e16fde00fc221f7cdb3acb73936bf055581b44b19f2d8f33ac486b7ce201617efc2520954788c6a6ea4742507f2655e3b97a6d8e145b53aa56ad48ca3a296c62036eed1ac538ed1a2d78ee5ba5d46350dcbbcdd88ae0140ba93e9430cac512d0de34cf4a3409ad42e4e49993f8e17c68d3042fdbae0eceeacafcb5903f15fed1ad12302425676c811685eddc7f0a4d0d03a3d96a3d55ac1384a874f2373807bf4c63816b3ca1b0abb97d0d7f6eab8fb68d95c25a107b1e058fdbe4005facecca2b792f2688438288ad5c2ea8ccee83eb1287fe023b1bc872bbe8c2861fbac37675e42f21e4f96b5586c827e7af93ffcabdd0b9c136f937c1e0adbaf8e3b7ba1b85089a6b6eaaf842276f50b00355e085a360af781ffe9e8ca0c19bece644bb64ad79c7d70bbab9f42c3ddedbe130fbe2719db90c00f1ed22f9a61b9b93dd7dd04eddee7bfcac4a0528289d247b128fba6da1a1e62e3cb006a8f09265766baa353e46093380957b7fa7150eac8fa0ae7ac166c272ba51b26e5c7e154abdb2b3387b47171f8b02c86513a9e67677320ba51bbf6ea3e58002c5b93d617148bf35d5363788208a60842b57027aebba2d094f9d304a6db44e23292a1962a54ab3c1dd295c9b5f37feb7385cb7c9563b4e0ca31812ee4a88a356ed80fe74d279992b733bff0fc77e276e6b5492dd69eb9a785f9f8045b6cc5fc1196d27278dcf1ca18f779b5e8672086593d4de87b71709fb53610804b3b329c7e5bb0dea8ad9470a7b55a602904f4a65f6be4feb373f104be6da1a7c46028666426bb517239aad77584eaa111c929c39cbfdc7eec77bb0bc9153ace3f8ec8d8d518c36aed8f89dab9ac3ad79251a9c31c00d904aa77aada861ac92c65504d457e9f5b05cc9c2471e883520c6ea5fca577458c201fa0400e7797e7fff70314ae615c713d73e3bea36bdc9c7376eb88606fe5ef8e94918c0558e89af115ec23a0a94b962e9203c78d6aa216951f8a93b5464b4825aff8e09ad6972a926b686a64c5844636e7de64eba118123b8945032e325c8b53bed589dae69d1a54418fc99f3078edb2007e3e1af8b44bb6b91d2bdfdb0801576c8434116fe907a8ba38a4b877d2fcd3996327f0c04a84ce802e5b08beba56930a653208e2f9c23677cd1140148c655f1a28e8c5e3add20b83d604f5aad1b056385abad5015dd42b04e03993e2b571f43c959e0d741729f595ee42d6443ecc905c405cc0f5e8b31a4c552aa8b9b808aca4f20188301089622c58db142ef22b485a8bc3b2fcbca7c77126fc015457dfc2599a80ef0b65850f794b921b76476f53dd962915eb299e7066a1012e486f6fa13b193d3a5708e3a4132da7d454cc3eb67e2eb36257c0f4cd48794a37ff1a6ff67c58dc65291e9078eca5b892fc2567c54b464390128ebf50d25abdccecdcc2d08a80eb86551b797a5cd98bfbad8089ec8233ce54fc67150d8861277c8956c536050aa31753d9812b26cde219012271c06681b7355fe9c0173ef63d8897663e01956f1479cb416fa4a1e811131ea2edc609d4e475f8799cc1b29f0280dd449bd7379e197be698d24d12001a8f04a58304044bd852aaf95d5c201acb933c5252c481be65177e45ddf8ef03e3f9d14f00013c172fc6edadf20bdc82c8b1994ed1caac26874510177b17cd2bf1b0a9e82d60cdbb6a6acfb5467a3d3b407af3fda9f0699f197c96f2b78604b026bf52ed60e793fb64a201c1f9a74fc4f4266fa895fe2ecd7ee833158d839a8e2075b83b5c610fdbaf311dcc3afe41f004d59aaf24c9eaf825a1321db3d94780fb7204c8a420709f54a86ec8294799ef977af6b24e729f838b8a86859e3630e8ecd2caec7df6fbbd210ba910458b9deef8b2f0bdcc82c8182c70308569c88004f7364c224d9374fe938b52558f235c87151dd8ce565fc27184c0952985beeabd2f3c214a7672d666d6ab196423ab44856f738a64e22a66d644d7470e2af88acddceb7257d0a75843be705e6dce604d1382a3742692d71fa939532dcf7b013683d7b3deaa8ff5c90701bc9a982b667d805ef50009eca7e1636d21ee7f3169a859c0da74c7a37b65692575e8a10157a5597921ab20ef29a316df8f433f0753d6f6735f7a6d94cb9084877b4c672dbc3456140a9df0873e25dafce8f39fbd7a2d4c041af4a624c05b9a27610af8302ee2a2e12af4148029fcf16beb8c55e2fb328862069fc4c5475e1f537dd2a3a639089ebaa9d4709de9c62424d1574365b142264893b752a5761dc3ffc1f3228de4c6b86ae4f94ebf14813c6e6073d56b8dc3dfbc6dbe16d8b5d6b2250df5349849fddd7a8b17ea4a419862bcdabe58078883814d0ac62c751b3316b6f002f219b6470a135a39081b91f80825e6e89ee392597e4a26f8b4e9c9d362c61ddfd299696b9997bd108bbef1f6b81092a182399fd1f631415e57c20ca68644e1c05935f2fd2884c9c59964941d5359611d714b7cb5dac85456df8ddbf1538d51e254f8a69d7747c2fab58252ff144a42cdba2ed9e2077318f142ec49273b95ab64f7347d76ade41da5609928914bc80a0925b2c2efb9803d03ebc80bb19419da808e538e6300db1566b048aa13971b5823b93b745c49a2c5c44adc001835609f6eb587b70526ca4232b5dfdc97ef3f37c69ca435c185de396f2816e26912893c124a181ecfdf6a34b8d10d6f9a50b3e1c8464a720d4cc062f090cb76208961630f64b9ba6e2b49df3bc07601694cc6d3f47ae9cfe9da791f5be18dfdf10c67f9335924030b64681d497eabe00d5337fbb43344e2e5a50125039eb3303b4503ebccd957ddab382105330c25b6c165a3df65b69a7dfb4b3989d1787a0c865f7c45939f016a2162177414e6b7497ab3335ea469da3779d3ccc80e9cab16d77ed17e90c91416d9f787b76ead8363a07e10fc1114315a3c6d81be6b35a135ea3b0abce6cec07dc144b5a4eb5261264468fb6f39a879f37270d3ac96d5acfa9847116df9279b635bea19fd9917b278aa7e8e1a91638dc787b1a573186f8da4c1a0c56c84b81e92eeab98ef614bc04bd0a15f7e48bf8e75cc131cb975cc8b9364a90ac837a3c165d6901ebd1080d13d7764a54dc57caced8bcb822f1c4ec41505b5a55369442a92d10233454ee25637896ed6ed3a7e29212749ebedc8912cbb47abb94ad224814203923a7d07673c1cf3642659c01d1c793b3bf7a13e53a52f33732e4f0422d65d3408c96e3080a3c84cbabe5ebbbf5fb3c895b0c0a09565c7306333d3b275c403108abebcd3e68848de97d8d9d81486ac7c9970ae09bada108bf80c40a957758a174dbe2c36709d76cca5c210ad36eae178a15d320331fcc571f1558dc6559bdb9ede4549506c85203ce2d419b84227581a695bc8fdd26d2ed4599c19607619c51e2661fce5210ea35f59779da3ce862613ead49359ab9b8d2356e8f9ffb114c3544557eedb4e257aa6714d553f715ab1f348a4d27deefc5ef5845d6115702bdfb0685689b4ba6c22bec8e4ec6842911c3afc7341213806ed8fa485d954419aaa6a34841d36bcbf6b07596c746086f4eb99b52e45d15098864cbd4f6e2811d22c8971c71d3193e6391911d642c78f7155f265ee0e4b52c8a115fbe0719df9344e1e563b74191a84131f8ca6dd722df301f4468ad98367ae84fae2d7fa1c2ed4b8f9034475cc185945004da20a625e46cb52c4e9d1ad328cfb89405c190a7073fe522340140cb03e533338b04b5f44c573fda707a4437a2cca752dc441398f7e30128845c4487b6ea10a724b15ad71efe498be9c2d803dd31db0b84ebb5b92bce8ab3bed02dfe198784a58225a969a431f943ce65164b87338d48234d13bfd8a136d802d37ff0e4be5a1a380ea11b4400ba4a8634b8190116ef75dd81b674b8e6f93111b8874f2b9b9c113fa02db0a666afaa2e7afce926ee0e620b27d2351804bb5b780dd2c2501cab3e39e971bf2d6e2db30e6bad2cecc0f7c203a3c0743740ab76d13b9c23cba8297640b76a35ba3324781c5ec7c5c50b4baf73e92036f6dc83a80c847c01b5a19d34477a6ad0c29051509102468ee4ffa9244742c995d3abef9acda9ea1f3007f41609c17ea4ba606d558e03d6d43ffa038221d5b73f3cb35af9d7dc8bf39756915e8b33619ac79c49e8d0cba4d76f02470c66fb9ef528bf3af68bb32428840c2b732d2d30ecc8c70c2b775b4c4c585afe6ad09aa90d0df7a4c77248dc1c9b746d5d4958cdabad644285d461e5daa268222a9d0a9af114d3ad24dbcc0b6334b15b4c64ed6a391b717a22560d9ea00988bc3a4245749eb40aa2ca85222e42cb246b11ef7782cf631e96717743d0ae71850870b7687a268656a0fb614ea33441a796a296422af8cc42ada4c6327687d5d66c024fc7602e781f7dfd59d6e369f030099b24cd8014263dad33f97008a5ffd4f90e1e0b45704c7522972f5c70428ee58ab8efedafd6ae446f59101745f514821f13f52d223b66e6cf97680742d7dda88e5ddc80dbc74d5f09968d8d1b57efa6f076e84731eee812b74e4b90c07132a7990eedc529c116788a2bb7fafc1f485199ff6876e58026157311ebfd4a10c27bc1f662d1f574215027a1ec841d97b2fca559ec5df7fb5d19c2ba446930e5c7de28646eaf26e4af431b420bdbc67b66f05795250843fcc9beb9266b578ed97605b64a6f1d98e9a41d259ee2b4b87bda9b8aa7cd201135ff1b68b5c37cea05bc1db9bdc5fa7bad4a739508b93db8bc2efc9ce8fbd2c2ec9a8074cd52fb8538d18fdc7832d39d3269425917e09adb57675469920ec9bd79414edc57186e58759fef8358c7247ccaaccb48265900d3d976c294472311e4ccec8259407c535971f1c7b1e167433d9d5ce347d389056dc2187b678b1fe8d9e48ace59facaa83e1976a9a7b7d9fb9f2661327283002cd8067cb6ed4549add959ec4daef8c1c81f0a9327b72665582ab69a21a3dd48caaf8fbd9758426f80dcd3024545352cdf7b1807ad259c052903f08769264bd0ccb6b8329975b2a14c6c906f7250ae8e83fbc85c5298292a31154b3c80437cdafe3ed383479aa97a418ae261d633e3e44ce5d52c203806061d5594a65fa3e585cd9fa59655919ff6fcb2afc5067a5a6d70a5ae3067a20b71a04569275e453be0b6cbe54853edf1dce72fefc16ad41c86bdf8f62418c43658611fbe7713d5fa0ad707c0fa90a45eb886933287f7de37998843037c45f22bbe8f545cdf83b8e16f450558e9f9008a5fc174186e48f83a19575d61e038edaf4b4d825dbb0b1b740534204059efbd7e0d633bd6652c00bc8d5ea24c87c6fe2c704644b254c58e79a3025502916ea5260a5516b7b20238d5af286c3953c80f31121fc99d06639b7b67b88f99a30b1dd2e2550299fc80d1a296ee2a4dc6ea63efcf947837b5b7b64a299556f70a8bdab6322f1e6cadbcf1c6f37c39e4c435a6bdcf7876eb9367b079ffac748012246769fbab67b79f910fe45fb32d0c28fb139420e34ff93b7b8fdfd3bf358d11b62f6a8dd162131dc09d26b7f0d7072015df93aa41aaf412cf3d1708bff8eb757a9f96001d1bad2c5ce2b985fe5bcd669e537caf245e44019922002ab35a599efd29b33cc764c83168b64e844dce87428ee835dbea01a5787efa3db8f3ff0d856838e991514239dab4a99b2495881558e22549e4ae8aa6caf4d0b5f6e20d303a65a544e1dcd8e95c60b0d82d28f9894d403665bc18542bcfe5fb14d39fbb5d2e28d233550d6c57088f1043699008aa3c390ddb50f491ecdad25f49d95ffc264d68660caa7c70142137c09c5e435172f5984622dbafe8f405f00f0638632a8fe74f7c8606fde144101ac4a920824d91106b4653c123ac22c2f19244d5b4c5916eb0503d642eb123e2446ab329b64fe7d19facae06460eabc186b2bc7228ce99fd028f3188284a7e14b26b0848dd910ddb7ae2134cab59962db8c06ee248fc06b5fff7478b3bec36b5e619779ad6e8cdad35638a60f72d3f2caaab1e4b2821aee4d570c7f208c9c1d0a4bed79ca2b0a6fe7f64bb619f96d4b7760dd27c444159064f80dc5877a7a9300d3d8044e85649d7c7ae776c9fbedbc41ca35555f192458866de17a542150a6acad4d02c51811e8973c82ddd05f6aab8bd3ab834fb64a0672002edd42a08183c1fa1a7d38e2dc06f7712752076b8ee2fa336cb817316119ba8883454032e973ef20eebe51a517d83f117891305662515c737a83ed9b4304d05e8aae5241161e0300e059c046fd7bbb41dc7f4106a2307d85f29ad0f8a0ae7e51e6e1b04a5e4b5233462265d520542eef130e4f69d910ff4df6d03d5df9eea58fa855feec4a1178e5df429159c73734e17ecf3c7cf69a993365730ab82629d7219568c2fadae10b3a0af4c5d1b3db45faac4c85f777c175f940fb0641abe822e0e2e15227d359d99880cd2dbf7b811f5caa7ca7eceec0ae85c7f70c7428fa615dabdbeeb5ef3382aa48947498deab4dae625e5c9b2b299819dd6c5f76aa6b7738c98e7e807babdff6c264146780d2532fef7d7d1f21985b0a1096f9de647f224f7b56008e3ef91056be9257cbc105a24dd751784e941d0ed814daaf447abda4646f1d5995c0c273d435b0c5b1c159fd3511e3da7959da6b5a69f593d0e7ec755c68dc650751fc844110aa706b3f444b798140845ad75921cbf3c373af0613c814bad0d7ef84ab87904054144a1b724cb949ded238765036597291ab28e6914417cd8fac16f41a1cfba63ca7b261cf23ceca339b216dc244f91ac4a25279e7c75b87bfab834cf51b73cbcf41dcf175e81cd35bf04a19e041d3dd0e628f37dbe9b7566ce64cf51ccaeceae5f017a4d09fbf30419cb43430985b7e6561a3d77dae1af4d56542639a5540659d588d699469d7ee7795be1b6b80cfeffd11cd770f2227f48e8cbe38cb118b2e496a4a58aad344e570d3887b6ce856072f2928d408416f6533970d96505e42bf6b80078e37c3fecf4e7afee58a3a7935c5a866235743c31cfd5351a704252a03d90f2db1bcd7f6efe877d4983e1fead1b68afdb8fe74fe2ff2997f86f3656adea2df7eddb92b166dce58426728dad85d2fa0e7103ef4ab48c1a5315b9c9637c33ecd40682710eb1991413dd365bb57ae9464c363901459b022d3631b63d7925d00ab2d2a45d89df627241973255c6b68aba482d4e45b6825140b08264bba1b97f5bb274870fec1209695ec69dd2cb5025f29b4c53ade9d34cd538e6d531cbcc81feed7aa445404e85be7d8603beb18fecbce928cce0a7fd2de7c35eaf8409b81a2fd34e2cd72eb470759238c42b1cbd5831445c31f7647d0f54c901aa0aa1161420457e81963ea9873db46494400b96a2d10b3b70027be973d5a098165c72313de809b2b8031d892e7472c8f967a56c4bc0ff2169693b23bc8834f75271a125e47e59661ecf5a78eab4564fd1daa17b950470ad7112e126b3074c465611929460c89f82b02b46dfe4f9f895c9750dc107dfc375d05dade60311f2452a90939489b2c3bda1f1cc456d4c4782e6df63f3ec2dc68143f0b93dbdc0b6da6dddd56a3d618554d890909b7405e36d000137c9d5e1697b7a4d494ed658d00ecfe28150dd6ac5f76fd39572129eb55942c8ded81382f8d79b42a08ea5995c0e96320f26cd24c70035703a56ff0f1fa4ac42ebca3ec1dc90bd20b25e65aa448c1d063181f7ffbfe92d6d5a3319c65fc591015377b0217bbe6ec72940b991856b518cf4f249f545c10d52cfb9e41c20a819d197ca0baaca622e7f99b1233edf7e3288eabc32026fcfc02ab3ba0573374ec0be5bfdafa99ff5f2a3db3c8b1e2caf583f766d29b5b3ebe45911cac6c91494d56f20be458ddad0a11fee7fbe4ae3de6cb89b0426cae6124d3befd596f56a0ffcc72a6a37c3ec6e9ab4d2d6ed3b876faa49e75327d7d3a48096d6f7865e0238addfc45735b0658a2d183ed42a15036466774845ad08575139e14b81cc50d243b34a5881b1b379911ddd1fe6ee7b38b98322fa953ceeff24e551da2644ddc361adae1a96643cb58c252e4d5a960040b4fd06d25bde56915529c29f38ea49c04890a94692c7ec4d8c6f58d876e1161e94618a915ca13df0665961820a6112ed6223081b869bcfc3eb1e26df80749eee4a50da11d814c6530101377a096f783737814c1a20619cc43fc608da5b56fbc8a0005b65e7ce48c8596075987e7ea491159b8444e4e30b838eee13b6e274bede68ba6548fce76f575ee89bb6ab1d568374b47045b7a93cf48695c7433b1ede963f5d577b5d7d6367efc069f7c07d24f0e0e3f9d0898527a5c7aaaac42b887ea79edaeedfb53106235042a08325f54e35db94f8a77d08241aea93b5a1e94a4a70f2b6fb73eda741fd9f7d952cb17f1d017f074bffd20a7deaf3a78c94efe15a17c28b5c838c0a63a19fb496debf38d1855dd03b434a26150a03b48acd282cb12aea864dabda8587e23bdc1a0d7be424ea835538716b3b1bf3867a9be025ef3dc85feb0689c4cb187c5922c58250675d194253d78151eccea11c2de6821f537a8ef08dab2d549059b52463373f514dea54e85a2f9d2d2155942ff74763426490d7f95687b1310d023ab8b3b44c1e4396295c4c7d13b3849c40d6739ea71e92130120c59d803280ecb946d793b71c9b47aa17e21a54020552b2fc33e2d81c3049c2a46b883a77a9d12113ca8111e5cc5012e027c55c7657e542d43c114889f800d3196da53ff94f157f6b3c942a46f0503143fb325bed709d9dab85e9351e86fd64d3059645b2b9a2e08a0e2ceabd45a442b591fb7ac20dbd81c67c7347f4d8ec31ac010d8db936d9c6bed7a771fead6412fbf1cc19b42bb7f488805c1168d5f01f6342ed92cb9588f46c62e6f2f02dfa916677f2db5e8f73d64d6821c4d2c2b7be183fb856b2adfdb29e2e99e4aa713b3e4e522b5bcb40a3098dfa0843ebce241f39804c90edd71edb86ed667ef5471ef91106d169c90725a28975ee2f448888c76c23f46ecb6f98351005dea65a1ff838f2ea4d2479f679cb9c08dcb5a26369c60159c3bbdb561904e21237bd25924eaff8abe34a6fde49595658751cd939dc259cea467948739fc57062e7e869d837c933c7c19d57d7f73318fe316e67c56c41e3ad825a282dd487a17703d9ea504bab90136c35d5bc4613860768bb632796c04f1140ab50f378573e89711db8fc218bb1367111a6ac0d391f7226c41264cb373498ac8385b4e3a1fa01ec8366026788382b7157bc8bfc1d9cb5df1229e40fb29856486128678b990effd322162c786721c373fc147e70423639e4d1e3f21fa58776247fae85a4ef80d6d3fbde6996cfee218fd290735895d4d9ace507402912f9b57187398acd740e8b5160d14aa6eea13cde34fa9729233367f5155d6013d59ee55e78a677cb723f59b181728680a4ad60c7cbaedde3fe8027a74f6a4c5864736c47d6475356d1a22f68d78076d29758ad92231a7e26979b5293490fde6c8312c2318549a5f5575730de44d7998ed64b97500f4b7354e90295fd151759b9a991f69de36dfcec9e033221297911ede35d64101273fdc844de8ff66a06de2120c42aa4006d6738811d4067c22c25fc5504b166480c1e1c90ed5686ab37f81e1795136307c0fd9821ea18618f8cbdc06438ed438cb71d77420ff3a6fbcd116637687abe390c57b1d4efae5c9823e9e60c05dd1acda106f98217e10ee927fa216f3fbd6d14b2113282aba737cafb5b02a8671757d664282b201192cb724167bbfdba4e5a763e4d164f3bdf21cd00e75e1ca68623fee4958551a5eaab79e4713100e7334ee59c2ff0a258e42f01bd0a6106c0ec8076a2a5037553c27ae39d1202003085f249f36245da6b78bd8a4161767d2a5bac3a5273c83a566609fb2caca246c6f11dbd0091fb37bc12a0987d2d965698bbd5d2575ed3f08f180ad7898388f72d3a7340b2efd4e7be5e294ee4d651062b482668e68ac4e09b8bbad1ae3ec132b8b44f7c61b0fc2350b9f9fa036575840a1117e3245db1f12e685e5b086a1bc227cb09ddda8da3cf31b6a28a9c0838d30c7a170eae02090046cc89b1cdf7de12d27a7fa9d944ac18839b1956d691fc0bc8bb83f62ae9889d3cc83b458cb9157e23d5f4ec211668f204e4f9c075f8a113245eeb059345412bcbe0c8d9dee863218c7f424ec148637be7bf974c4bd5635843c5a78dd28da97f178d95a6a0a070ca8034542e49a241a08c8fe20aabe64a3b64a1c2be35fbc48a77bba005ec62deb66941f7a705f3aa8d246a179b698f2d072f7c2c48fb1057aa414bde78db91d32a0f07f94a4e8a47c3489b431ab8554097be314315df0e28a00a92611053f61220527c95ac0ebfccd9c22097b13b62360f946ea8e6427c595cfdd9577b0f3da48fc5a935278e68194e7c2c87ace805f246903968bfd7a6ca0d8ddbd24dd7760c180b2d7e634f6462e32ca6c0407c2fc5cbff686f60501b8d2a9e496345f2941602acb8ad8499146f6ebda9ea71ebf64199c027524cb22d696267498396f9f12be685914b12dedce51b7d0239bbc0159beb8a76620d507472adb7f3d08cabc83c74c81126f9b7a7a88337b5ce682d6a94cd70a916b8544bace802d31808acba3820f026a13db161411bf279f0ca86780344bae6bfe30d52beb2926a30a0024a17b51fd15439567a5ed9973707ad02e3df385eaa9093ceeab87a7dada079b6617010b9a8fb7d5e695f1c228f72bac9f6e3877a45f3c95abce9f2918420151fcaa4881b54b1b7dc27f125de522bbbe120bdce575930c04833c059394cdfa360b796bffc14812878b0babd460936d20472cce2b75f65fca9fdc14a6f569faa113af2e3e6394497ab8619cd896de5273623770e6821cbbf9b8e8f095266a0fd36cd05a305a8d0cbe62eee053aedeca9c70c077852414c87139cf8787a345a5f9acb2a4d915b77f238b078e6dc2b43cb8f2d1b5494b16b9859a420303fee064cfff4bdeed5e0d280db1b45acfd7fd46d4126a8c570397bd42864b35f42b4fdbbe0eda75f0ad8e5758eff27082e72056033bf888d52f5214c585f29792e1bdde631be758be979890f38f14aa5e544051868609eeb70d4324d485c1cca51ab855113520174460d2c4fa30a49d58168f09651998153161ad3e409e7ab7ddd61e4b08cfaa9b0a171dfe789685bf3be03c39da09cc2d6f9def00f5dcff1b5e82e8d6b23eb1c6c1d97b76f4fac9550e5701b9e69beb966968d09142fa686affc7525c494bbad220b0479eef47b32bb8bbecc100dfae74fed6540ba37441621db919ef611e83ea3b4539723d5fdeff24130411c9c6de790abfbc466b1450449644d40d21b51ba14f0b0831dab617c9cadbcacb4e5dbebee3bb68946ed86205bfe6a839a82ba1902855d4bfc3d57f285a48d0fa0f329d3e9e9514a0db2ac6b40a41cbc381e4dffae663086f9cd94654e9782080882e1c5f1db5de2fde89debdacd8d94088a14de364e13950f08527fc22fac7783e7b1678055bcf3361a04903fb85957c98e80b2384d8330dad6cd2a805ed4f0c1f6ec97f76328dd7d9ed1269830110a7eece54a118812478ae0c751b333f2fd429e07c267d3aa00023ab7609fe8b85746e5fb1fe664e62b07e304a9fdc6b731c36d1dbe9f0a235ad208ade5e887494b7a415fbd022337159768cf8cdb22040a49b46c412838c665ff426e7967212fda928410ba4afcd4eaa88074ed17a071a2fb9cd6de0c0c9c56a363f92fe370cb3ea9b1f240c2a89f649941c44b215ec7362d8c61979414ff9c4aab11b25148f122974d4e296f5a0c798dd994c5518d86754301b7fa4bb61fbd76cbbd9142e16b9a0144509f140ea61bbcdd3d327c1060a2676da7d702a2807535c6c9aed15a75edd8f3885c8b5b8b4bc1581e4f5093bc8828c2a27c9f9d7a3506b244abd1883f3317ef6a70b8c6eb71d4d116fc6793343e78f63e88e96eb8e3871f0070205d6fbcc7e8ce9864f08c10fc270a880f0217b5af63b749aeb9b9f4a85316c157a09c4da1e3702a76ec49c098a5650d1b15e81e82a769b1e0ac52d153665fe24b63d429bdf271894f718e7fe12193de5a95dd1e0aab57d1966c2a8dd19afb4b0a8f16ed34c5d431548ade502b5f8502817960cc5a8aa8ed06413ded5cf4ce6e4a3dd936b1c40250d6f54e29161630c189e492853e5b241de6b45abe9f1efe88820f842433c646e9ee5c072ff9460d40f9aec3910d3dbb79caf7a57b143f778a128ff39ba22b52940222c747287c9b2e807afb93c6aefee0720b15458629670937bdf965ebdbb9c1f49861f7eca0d982d9ef75cdd2e3a444167df72529bfc246b65dd818b3a672944b1a388e4cf2cc45f32e1e3020b3078b1cae69ab04f5bf427933cad2f17f5b4ac688c8a7f557ff6fb4a91a417bc7a4ffe2f9e0caaa1b58e1825a7cc4f77eb434288f1ef9ee24fed5f19940cb52eb9f536e58a3187587ce1ef7268e8ba9b3a0403a125a6fe1d8da24640399614fa53c2e2c784d4ec2a524542475145dfdb3a80f4511349e17fca8eeb0bae5b168de674d26ab4f21eee09f8bc0221800033b37a08575757e8c9902c7d83a15a762f52d36496e6b69fd714ce5cc7d159800521e865e1f797ca32b846f9c2ad25bdc764175a0c33a9738647a0bd1d17d3f6e4312b347d6b4d663095014ab53f5dc5aac786faa12a77a2e9c3bb760e03572da0629cfbe9e294c51838b98ab750dbcf9574dc225c47259d9a8e8441dfe144801ec6121ba5ff41a3ce8ddf272cfdc71ab3d5e34fa58af55e0829a58a5c1677fa00a190860afc24ea29bf599f970da90338eed351f4e44242f23b29224ae7057d26396010515545f7c400301e268b1c744e35ff1a1b96e135e0751547507e23af9b08044b20c001f8fbc3c24a2a8bfb36c3fc1eb2c2f3c61a44fe093060a673a869362e8b69e30f99c815a25a20a9783b76f3e35b32413e24e1f8ac1f7141a5724382d9e056ce080101b19f8e13d80693540aa2921c228f7f44dbdbb1cf10d9d1287b5f860a6244ffa77bb1ef87af4ddcb2ffac034c109d5e544add3db43c50db7aa33459889a0317cca85767bce22b2fcb2ca6fdfc4151a8819d1e11769b95ab40cc1f356910ea9fb1e40142a756df28ca0d697d359ffb4a592646a9863d66f0ce9e18f48d5bcb7b5feb9305f3eec98351681881fa44f1bdecbe5d1a14ffecd193ef74893ab0b008e8a4125aa29e80fc8fe510ff897e1cfb89797a1afc784b5692fca0aebeff132337c2d78987c608470667098147e6439129602dc82f7b120c1e80726bf1378cef26457f9045e880800f52ddf3e6edbc8dc317061f6ad438ed6adbe88446a3d2cd6529bee7d9c45866839792ef85c2070705e71644b9ae99b8a0ae3865ef9f1dfe2bd5b5094a5b381d4ec6b3156535c68e2f958eedf05c870a906ce32a876dc659840fc1526dca0ab04f7bc53796a90481f2fbb7381c7f9f77ed7bb4520fe552105286792f56b0e44ddc84cb23e2e106cc10ff678cde108ebc7c84b98397e4bab0c5989e01f71b44c4d959b9b0f1d03a9dde2a946523a77acc9fd022b52cbbf70b961d35f44ca7e8bf90b50a0f014e456405336ae611b39f29a3ac7bed2ca47a1b3ceba406f34095d557cb63332a004a5d4bc44dec7be3740e71c66fd782c8d6d370638211960285713b33adc643e054130563f47d8f3ce32b70a11328eb6ce9524fb49b9cd8662bb1777eef372f8604d7dd8d58f820f4f9907a5db910c405c4801046f974ba971b9564609f901c9e0a73c957a9961b97e6039bb3c14f5111d500a032fed2e06c48148d6656e7da425809a9ee594f6d4144da49390db578f0993aad5926b7989fe27dde6004c6d36233e4fc4912682ba3d86d6dc982dd1b1afe0f3b2a52f89ed74551a2a7bfff9bba0b846ac3d9b2d2f1bf04ac2f7fb7c1eb110f3b9f9be5006b3cbcc5d9efcbfbdb9bb873b6c2c76104156a06eb5fca2554371f9712314e237f9b6f737d2dd54cd5ddf15d9e6540c7338669bbcc0529dc5b08535683dbb9e69b7d0eb71a51420d5d0adc7d135359909fd797df767c6bb57d514356763fe9edf155230114a2a69fb2a1a4b4929081c0481327a52dd8d2564a4872afe382222446eb6a7081690bd93d646d2b155a7d13c28e2552ebca5fbd7a3970f2f5eb219d3cf4d9a6f0500101c149c22b98f1fd8734bc7765b7fb93dbf6a4dff2301de210a7c9f90d7326d33cd772e00f77455008fb616f345069c3352294f61bd4de478776c9c27bd628493d867752f6ee1b97f4f2ad6656016505d1c1f7fc0a3f390c742c8a148ab7abc4c079f51871e7b0e74b3dc869431d7a02bd124ea6649a9c8ccd2704b6f6b04f70511b063cd7b283a6b45f49f2f20544a03e9200619f1a7253e837616e788afb02dab7db2569a942d61f00fd93777feb14c2f91408a602aa46fb6a0d32a80ccc17c03bda1a647add7e58abe44d224292f92000add645ef45e94aeeae9cf2ed2aee0127d388612282a5d30053b95648ee3ee15ae23ff7cca5baa820269a77bda882ff89bb74d7bfa2d8babdd1398ddc8235061b9df17fcf5676333cbebfeb9235e47544c805a22df27dea9b2b1cfbbd76f4bacf72d34bdc2049d5cda4a2bfe8f3a7b73964aebcfd6cc282be5db81f3a0fb8a614b9b785f02643940fc1ec77425b86fead7abdc9da286bea54b69d92c6ac712272a9317998a746befae134fd18d1fc92e3cedff604bc823a3ac3ae5cc6248e0b51d1eafcdb4fec727a309061497184d9e4b3206ad9b72c42d45058c3018a1a6a943f02fb2ddd0ad1142094b3ab4ea59595aef3973a248624446ed3e75006aa9d9ccc72788e5fbd66d2605cbe77b4dd54f15b0804933742dac55f0741af209f8297f1b891bb21f25e89c6c38ba26c9f4e1fc2d5fdc641ab9e60a20395eab9e8baa35194a37adc7fa35288e72c412a78180e2b6f9eb12003ec571ac55764a7509485bf474b643d7b35e00ca46a143727aca6fe34a795b3edd0e8bbee5aed3122c48748483b065060f0d8f9435a9dd0734c09f9d0a762107d5f3cc225806afcc144a95332081086e9a10f448e519ac375cc64177ff5e8e79d9939ec32c162af10789e83ca694a624754680cb2c699df47f5d7a50b4a58b8603b2ddf3f6f6f47f55ae293bfbf3bceaf7f83cfcdf904315f7a43f4eccb347e507cd5a896e55a17270952c079c834ae7166661f9c7db53a457fade206f9fb617a83659c7991d2995760355e6f6ca56748e84dd31719f28c1d248769a875d0f7f8f7112195af868eeaa791e096de269fb2c50d547b9593f101de67995ce5b4d800e11339ce5569fb8a4f8955995d710e2cbdd1dc346dcbcbbc42c312bdcf1b0b865925c7bf7eef1e934c0db999a705c86c937c293548be403175e393ab9053942932ba118c159e74c44d6a6d2ceb8634b168c81647b38a15ff7b7003dab953108d4570c08e6feed282c65bf11ce29bcb526854dbd62cd012d4a154a703496a22b4bfe19da0c94d37a4bd08578ca9507985cbfcdf583cdb7f1d4e1ae4982b8dc77816b39b6ce404cbddab3699adb30634fb92cdbf768b1992bb6a4183ec43af2e6aefa4fc50fe6724140e3702b6b38f60febe006d2104120b1d6e649d824d93a360038366c0a1f401767dfb4fe18c169410730111a645eeba1f6c4521f5f53d18a4a79385697511786da2ce354b02469eb8342721fe3233ce7370f1d4d2ac01526df66984f7c8a3a15a867be7a086327324241d4edf7d679444872e4d4f514292a71b20af0cbf151244af19cb7ea89d9e2bb04951f96f0acf78cc8b8b9afdd746e3f463615a05aea131d9be48b57e13710a6c24880126a04eaf15bfb348f1d2264f48a382db9d0f3fd20be963fc52affbe9a8d357f5c8f52703e93e6ac1db7a20aeefe2351cc0d42fe09c7c3c031bb71a29b9ad47103d38d9b114004fbf78626f4df3d792f8a6f0d0be15b11d22199d3e87f2856a6b1834e19e884b5020292265a01c4b4c6a85e725db7e63889e710ee179f951c4607ce55a4cd14ac970645dd41392cc1ef7916f0692e7f871dca628ff94aa83d08ff2802059c6072b4fdc8cab0fa6480b8d863ec68d6e25f06e9470798ea4e05b44626dca1e91fe10073dc31f1c25b458e77412e6fa56ab769f40bac4ac824707335a30ea00986a9a8c67798e66beb5a38d92e611609b297da14e356d2e4d8b3f54982e593bf5dce8142bf4a72c46d7ba27ebe96b554f29d679cf4e285612cb4615a6853c1883827833d6bd7e7202d5877131fc1298eeb7bf95a4cb38e539e8d18e0736fec9cd8e18ac7db9291d516168ba3523b2edb917601b0852c3512030d480988f3b908fffb7497821245cd7bcf15235e3e45119de977b38c373d5235364d7a90bd9f83d1c881352bb107ae600dbed3fa6d302a86c02a1043c152a0c7c0e6e8154e65e31d700c9cee10c33ddb5373503a49f99e74fe5b692f3b860c1d9537fb964e344fdb6e91c84c9109f93e94184a1dbc89eb1b37b0659f1bd918985399145c0639946b1305f7fbdcea0d67bafe3e5492d4bc8f166db9cd59da3c9fcd3efae7e4d23d49027a817a5bd82c40202fb740fb8d8ba3d807caaef252900e8aa679bafb545301b2179e55bd99e1d01986cfd40b74a580d003c5ff69026f4e45dd7ad58056dd91ef60756476516663679d1d1e3b27e7bbe1204415416b27af6b9028584e9394885aca4aec3e912220c4863620e592a85a07dad8af84af06daa0f0178f635c5c87e4a0b1bf8e7e485c5c566222cbe59de4ce3319ce3f7d53203a649a0b61986a26574008f02607421c517d46bb901aafd6d9da070d030b0a31c409a3af0e543f86cd99b3958a25e0cd36f490b43d1008895d92f1a866246b467d0aea1ed4e2cd45370ad58880357e0a9535ee57be32e3e0a3f2199a8046b02cd6bc37b1428f79fbd78074a193588b456908d4d563b3d0f48977d1996fcc769bf89601d588dbc7c1c6f5583b93ea2ba8a41aeb3d60517c2002dfce15d32bb43b3cf1c2ccff51eae26f3009471306e5feab6b21f04cb233e391d7e5385241455cb098bbd49fe5813012deae26ea18848ad586af84a64aaf4ad2fe743915ad6ac79931fe0988e23d1f42f8d5f2b388b4b9ef8d9ae84bd6df99f22f250f493fc463eb69f8de7a6e3850677b42884c67f54cba137dd30161c2513222d48aa0749d4bd3fbde845c9932cc3d6d56ed5b37e12a6cc6a0caf0de7cc06757c48ccd029dcd2e80a774b8fd11d75333c232c4c0f9362beab29c245545c17d5a6cbe0b75295a0f117a2d3df141ec8d3979f034f569d195a39da00c92d565ef4d7fc697d814b93dbcc4513c45da26a3e824e59ae46f423b125009fe756dd851ca086731796103b2c55a872c97ad12a0ec8f0ba8c16038213b7f4fb1cba5e3c70cb656a0ad31c51dba49e22731a1a563cbc3ae56f678ab40c3a909c1b095338b75a6ef2bb4345c61514e2d6a7af0ea21cbd2a26048eaee057ae8892e8e0c926b565dff209f221f14211316d9f73dbce12888cdc30dda72cfb35540dda0e2154811af1c5051191b011fa31e78dc93beff9e7897447141bf747415301612a27b9886c3e9918aec3ba6f3b938f329b6bba93b2db3e9c6e17bbd6948bc04a00aa4e4d387913b04bb84b71cdc1a1761685a658762e57df0beede5b573b138d631834b6229a1ac9d5a9699df60b257c2882a89fb951e10d2d12e1e8a27b727d641a1fd447417c4986d21e80bd890481e23f4c2c85b4375d6e4880c91ee44a7af18acc2e72e2569e6320af18d75d62536dd3a8eed3676c383ccc84729d0cc76494a7f710dcda2058363f438d16ce64bac5ef1c19ced92d51f6e13de6fef0cb3d94676791e14b103e3aea5f4f26525be84966a04f493d0ca6446c2cf1a116163eea7d25bc78a53556fa82d8ec4761da33500b15102c72c854562119023127ced05e67e2de7cd14f111380a269e49a6c4474a8e791ed2572dc2fbf4894199289eb7f87b19ce24ee4fd2df8f0e015c1b0f8700b89e8db856afcc2c4197348d8f276ca3d6dccbeebced8168b54d0a7f3d17c31bc8b9795df5373d6a6a8bdf190a1aa67017470ec489cb78c7021db50318911f99e215384470bbd6b889a9324eb470da9dbec1cf63c6ef614fcb6ded3c25d9f47a2bd2dfa272705bcefb2ae69ccc05d97983c4d5c970e3177e0b5f7241f96b40d57a6330c1a252b190e6ba04ca6b1ac5f7bc5c3f05bb3291f93acb8817ed6aa5c70e10c8dd7ba116a52cfa450f48d39d788faba3aa70eedc8d23bb7db49f1cfd865575aa13225e6601dbff388105b7560d3a6780fbd32d2f3e56edf879a56b77d84b0117fa31d36cb1e8d13eff0c3380b3235af81c1687fdba27541f1b6a664ba05678aff84a084c4235ed54380217804e17e1e1f7de9a2bcf359785131cbef765f072ee89384ef0850ec4af8eb8175a5f736e259c928747965791f219744913f0fdd9ede52bb894a02a3a25e4f54b08bdf0076c412372d68d82cff1384e83ad591f6f7dcf6c9d5792ef27679969af63cf09c41d3f4805b1d39e15367755083f43dd46897d4518dfae15d90d4afda49c0efa54b095e3ed6f237dd9cb39761b2a012446d0dab2880db52e91720f0c6d43c9c37945e3385ce86421c61bca6623cbe918aaea958f10c6785f015a541cb3e072a88799dd5986b8dd5c3bbda958281925f883a0bb8518c150a6d46e836f021efd05e941abd524e45743ca189ed05ad69f533490d50fca70ba5c268c1a1a4a7efd999d3bb649f480cf5eb9da9db68b5004bef424c73796f5e53e08d8ec5d5ea6a1c1b3c9d1eb367379a584350aeab0b1daa64fdde28eae221c28fead9daf7835b46bd1a3cd86303a351e59f4dd0963e032efa5e1f10f8b9230df80599e27b32d3418b274d0abacccbbcf9a5dbcab64f07988aaea273966cb71c27ca0381e90ec406fa2a8130c75851d0f5fe509f013235d41e4773db1c073c9ded21d705972b35caf048cda07dd1f6182f1af783cf877dcbe31562a38da96fe01d76bc48222c04771ccb9be803ac4553450e4b2e93ccdee813e763a793df94ba4d31e1e924bf5f50506daabe66524eae6afce0cdc2d9059c410137791347dbc19838f707afe1261014db0244839a89a69f2d26852befd9de97f289ec24d97ff579775daab307f395b547aabe71aaac819372fb7b104f31d3bb63922d8dcd2a7c135524fee389eb7ec619e67796bc30cdb4a8ebbb6ba4ddaa8b567ec38786605d474aa13af51bb0ff9cda962b51629d6c52f6a0243bedc6c52cfd7da7d7cd80e49e211961a1e814adc859ff65b0918e9829c3e30ed92e01fae2c6a35aa87b3093bff046f43210284f28c964723b3518eca7c8b1498dc1b453e48c092d0fd4ae51bc09391264251d34777a8e2458ba885c66da72a97e6732ee77293e703838f79de0ddcf6934eaa5ca7ef2fdc93899c0d26436272521e216a224e5bbaf186f31b8442544ee2762a502e335707f9ab07928b8377caee976f247e5444b567b55f3c5db2e57cdbcc18d79d93f6206472dad39be8d0363b870fd1114e7610548337fcaf1fd7f47ec9be3145f6c207dc62e89b5ee298bc06c7f57dd3deaa8e85a66df1234487300ecad0878355cc5b5986c44ad1121dbe0d56cc7103f613068d9ba887464bf7d9568e662d8f3d4c1face9add783d08000e1d6f2f7355e92afa71f77b1b757256955ba835e6651c4324e1e8c10d9a53fc5830d0f7cdd313cb686b794db12fc36431a5530b38bc66cc684b8fb2c0bd17fa101662d57996033c11d293e5474c273a4524c21ce76e6f21a9cd36a0666c634fde76e71f0f72dcc715f0196988fa50fdff5eff007708d872b5a8a458740ab116462575613cdb20310f40d193aa798c5b85e72e718e4af3d1bfe7e32231fda4b12b4787f9db75846df83e2224e5bfd41f1876d53031bd0b87f43565f6a11622d67ecca18e6f36086d5235582992f2e5d3b3a5d72c0a38a2be3e939dd09cd857727ff6dc780225da2aed0021eeadef82533b921e971b40ba61732550dcb403b95b9dc212a3e3db81b96a9c8a8500d1bbc1ae47dcc193594b4359c5c1d645aae9dc5c1cee98b8e", - "0x0cbd67418de2cc74b31707894c29cc66340ef7696dd0e001164f8bb348fb55386ea8621167b756dbe3d0784067bbbefbe83c68ad3f291903b88a3a7b8f4d81b31bf4f880ae04f670fa5298358bcf0cd3502e913b9a05a2b3f806ba9166c65c1065482d9186a468e94fe7bb7efc4c569ed0683f144bf9b5db8fd6016acd17b16ee498c6fe08954fa11e5e2dea14624c3f53aee7125687ec5e5c9d743817183d0cf3c86cc2c0022c8c08875658c1d2e336c46898d77154ed3ee1108ba66d782e50316005a52f2303109039d4e40497121296261d8e8829670dc4083f9349cb8a1f024f428a4adfb22e9fedb1be73c9329c3d27652237c6f4e3501f9842fbda426a0cc3949ff94d419400e44f96b7e564c8b3f77e815383d963f2e1fb882850ea5dba0bf67199feb000e5deb5150f578b54f41ebb5e62c5bfd2bc9123b145a84d90bc8e38097b13240b606a54eecc56b92182dac7941e3fe324e573d915207c60c185ccd28b622c586bebb476a5d31a2f1fe1ead7a2f50351a846b2dfaa58163e89cc74569a0921c5cde1f7e66e1e543d6e1c7026f68c6a2710dfcba2fae05936640c8b05869b8be8b5027087133bfda9163ed669a838bfffd15095997080f82014049b37c239238819f3e5e117cb78703cdad1071c83c6eb2260c9742254f9703b37fd807478e6f42ebbc6ef140400f748846c1c67ad0fb1647a2980ac4b8fc26b6c2bced3e015995f48cc9c7b306113e35621a6ce28172c7f2b2ed71fa93fdd9e2f25e51a6efe5a6fe835c6c92c0e79e26c0969ab1b390575a5474f73855864364fe4fe2e12949eb0d090b88dea7a6aa468185bf2e173217e40ae39624cb7af2b5ee16abf32dcef8b99106e73efcbc748ef68ab4287fa7815f3c25e263cdf860e34a86e8f2628a0b9bd770ffdd5d4d4672999b6cb51973db3dfffd404ea5fb8ce6c7cd3cfba1fe04a1f907976ca6650c245377a9535de7a5fc5789537bd8bc711e60dd4e9af9b20078033c92910efb646f33d59b65e2f9ae48aebef57707e2a03433d5ce13950c4b10be42fd97b65ca87e8a043c9aa89742cba6040109473d2226cf0cc8082476c83caf49208f68ab9695de992872d2ddc3d035c88850b6df8920cf7b5d4262c69812e42b7affe77805c91e22dc2ac0dc863b59ccd9b8e2968cb11ff371ab6631b658b7afb83257b5cf34356c51523158b42496e60f2286bc3652f99002735f94b7499f6e22690476d0a38d93b9e4036c102d7886b37b98d77eb5d4d127e9e57c802f421f32c7a73ddf4bba78a9de54edc449e816f3c756d5f2b55bfcab85bd4ca549d73a51eaf462c5f1792b582a9da7a4380cb8b07629d4ba218e3d8a7cf09fa4078f66f4b12d972aa1ff99ffd5875f2658347b7f7ddedeaee68411594ce010940cc6126851781be86a8dad4d46f2db88751654af41643cd1e4d4c6e532030428fc6c135a04992da7b09ee9302a1a69064b9d37c8a8fbb7adf91c35a7a013d87aaf6af7ce3c56b23e1a1d0b536540cb2ec2cc1b8cda126d943442984cea49f8fa9cf1bc268bed63c7e5142393b25d441bf40ace5c9f6ca59db38469b43ab0870fb2ba30ccdf7b4c5affe718be16050d8ac31c40c59107da94d85be8837b19cb492c67a5c764cff6274115add0e8812f4ee5bd9f837c105dd8a07b66b57c0fe97d3bee689222914bc37f62c1836d51d87b4c1ddb347b1d853e5db841893db2a217d1a434a691156428aa0d1420eb1e907bf89f50304dc1acb17e67b09c9762032553f9c9d59181ade3504706a9c3a34b00e7e174a5911f95a4f4eb9f360f85cd1967cd726616ae6da48990d60b8c4a4d3078d3d642e744e58cefe0c72df40263801806b303ac200adc1de39dd0b543e780e48257529fc9a54a227ed77991da56feddea85fb3f34c6a7fd4cae12b25a29a5066a0b370f649b634ba7a7e12d5cf86ff909258c2637b10fc80a95cd42722c85a4175a36a8048a332ee959d3c9f24abdf7146d4788b87f21e6bae717e7ba3f81d56cf59cb0fec3766c00203c62934aee6c2f5eb217886e726228eee81f850d240c93faf8ee92844a06e9d79db12fcc1d0a66d9a034dc51445b5d5c0b2aa1dc1f1de4d81d9ac1809bffb9ef24b71117658a52fb6febf376d023cf77ef34d178cf28197651ec5d0b033aff142c54c9b3f132d1ae68d973640f34d665686d6885241bf81704cfa887a25949586f6221d16080ca15272348e718d88c4f0fdebec1a964b79f140e111d576fa14dcc06211ef3ff89515b306dd342f0c1e229066b05de7fac2462f669be17df3086a43f15322ff0781aa7214426685fe357234d5c4354b47dc2a3449cb1837d8ade07ba95c016e3789e183775bda8909e3d268fd0221d6d06b1dd49e230c16c287e968d4492b36e7ec1696dd943f43d97b15af535d7a8bd6c1c9b64bb97d5d11173718b5ba67015c0ab14607c66a499f53f1d581e2170fc1e88c8b8d3a4815e99c26ceff7912d63df826644b2129d29046ade8e78fb68a9a457da57345d149b0ef25815cf8610418ae11351272f1b36656be3018f41d2590c89587610e003e925f4f37e79612b7dbbc09a45bab0e5ddd56ed0c59a1257c74ade64b8f56f29dfdaaed70b2c140415b9753c737c61d3737aad581257006ce3ccced8a88b2e98d2503daae41da7bf2d06a9c594bf0f84fb90dcf4fab91a1e18379782aac202ba68120e64f0df25b915787495f510a6a6a2c76940a4e72a74807f7b045aeefca894c67c4740355249c6f581c6297763eca5dfc3927246cc8492a74393216f59ecb051c205602e43c167ded2c637e3796289dd943357849599c739e7680bf13d141efa7d77c613f8cf848127de1fc5d883e4174f07f499715220ac26bb75a12ccbd92ed8a9866c1fc517df7a5191bc8763d237c0725c8c7e9f63f7aca76eac17c5b38adef44cf48b6c42c6b62f1772fab5d1f17c046de24ef8103f2179c4674214071f99dea4dd3d65349a1f7d7c4871765971d905ea49203ae6db409029bc221ae8fbb460c05e8b3642c8cbe4246ad53a9f066f6dee821a713360d7c73e7a3a8c82b4886bd0ed2ee6d11c54f535863329913269242af7209a93df9a3757fd3fa3e9e03c5b4f5aae50d990414a3e6a2874bec55195fade6708005a75e9f8a87c35c8916d8653b354b29472b3b26f238fae9ee350053cfa365383287c04d8377d1a94d3254d7d586ef4104da5b9612b5fa0f8ed6e3acb1664a0410ed45a8bb32fe589465c470ac83036d9c9a3ddbf0a7395fc4b5097c29254d9f0c3f4711d4c63943c60037d41b28612f3f988f76c931379c8d6b86d1ba80d90e38b7925147b6f410958ad2f174a3a20d01e88d0defe0c59e6b66ddd92109f7d4cbb34d08df3e628172c464e87b4212cd5a61d7c947e09a43e3b72b1fcd4e3d169f977f2a3cf04c7415bf1df2e929bd39a606f670cc754555fef02fb45ec54742b23ae8a751927778f9fee890eae032c5a5fd5bc00ad12714c90ec1002d76d300a5ea039de75bc425ddb0166a9fabbb78fc17d7d1a3294b9ed57686a8c482f08040fb5ed418799c7744ee46c59db50f85b3ebbc0ace2d29f9b703038d6177f1caece69abbd4e151b1f611c96e6d0cd930b67b515ed3c0c4e88921453c786d026137ffc65a5f8075137d1ce1d10a6a8a0654702a7a9009ac1067facd352efe914d54adee4ed1a75bcea928a57b66cf54e9c3df90c9f7d0bd14f3b2814fdf04f6b99842ff4295da482b0cf064dbe5ee452899a6231b8e30cc90d2b6b22c9831f64afe5867e4eae000db7f5fcd01df66d9bd54503c1aed9076c72d159a299d6b26cca4c311db652fb2b59b3b3a5423cc86a9d48fd8bb43f8d4d931edce55e5033b264c0f9ede6d9d77fd41d5e7a56f8416b8dc470a35d2a8ce328fea8e1899b7c037dc92f89cbe6bea6113cef6ecf970c71e9423300f6f0f3692fcd1e9e19982e2eade0fb4c8e79a7e98f8ec73d5e9688f040abf7874030204cdb21d22dcf64127ce01e3c64fcc91a35a9c02d6c8dc830074ac5f72dd0c4e4ce9eea9d4e87926518996c48d6d2414e3ffeddda39c63349d37cf3ca9de1c97c5b57071b9551bf7c8c213193605fb8878b79f5034ff8232a5d12c5896f35985fe5dfe590f9d8b233f6d94d1f17332911a9aa943bae53136a5175de660cafc439ac5e1100536aba66c0055dc96d4faedf069c6db0eb3de8153f9654734c2d24f2ea666f7b0f113b91dd339258c805db7f0dbf6adeb8aea3c83a1258f2c04be959b845e1f6aa18d53f0a746262674b5e218b3fa038749279e386fe89d1bdd35e1fc939e5794cb978170812708d51e331949cbdb30c4e360e6273cd8c8a8c4c09a848580483104e4837cfda952c61159deac6e63f56988d22a290586128dcc7ed6e31560a0c816dbc21acb3e2ddcf18006f5f5a2f410b7abef6a5066f3ed089fb214e22150798f17912b497d2f1c0c537dd9c06b38bca592926d9c50b218e1ea05a2aea6d74559e5bda0ff9fc1f7ed525c9d09d4c54dba1e8511ba014d201e385ec6d558a2ed17c9f72470040d106d51518ff3ba4149915d57423398f01ffbf64efc01a673e59bf9fe5caeac7c579cf654c0793aa596074f9208c719022471a70fdab381e3404fe0a72c4bbfcdb2463eb16a903902370169620c93edb6fb76606a5253dcea9ec29dada96106b07ba9f857c3e0de571d331312d3b9603d75f34afab4b532806b918154a6ff6ff6865348892f0412779d0a2a5441342275c6ae24ba0713ff4308ad95dcfdb68c57903f26ca180907f722e97f5e2c04c73724a6bfe2935e463daebe11c40ce015be2d7bdd2ad958ae39224f55d4032d4731cac28019c0d70aa61ab8e6d9fef86129aced8cdd79cb3f80753de780deae7e48f51be1ee9171d5c758db3520dd98f11d781ca81c3ed3b50f9808e0e1733fad979299efac706034e83a7ad67e85a0e6a5f31c7861342f4f657115e181cca3f7f4a403ce7503b73845546ed345f6ae86e1db3d98ea4781117ba27bfe22b35ce50aa34831b2447cf62186d2e97f9761bb27a05477928c79411c875541b930cfe300500be2cf240e08e371d70e156c9493b64c05d8f5be05ea495d9a26359d31c0b3d056405056f50b3b62a4e5bc54a9c1f3eacd55ea32195caf44bb1d1e0f4d327effadbc261d881f677d164bc1ced81b3d7918d744aa2eaa2608e00cfd3392509140895b673bdb6a7b52d8cf90d8b11a49dc181ff0cd9a2a4de38cca96db1716dd58bc3745558995bf13bc3121e6395d176cc641534323f927b6aea5f6bfd8e488092cfe6066ca4d1b107bea210f912671fed22408981375d85887dd4854edfffb71b17167222ec3923dfda4fee099dbf9901b03e27d36c16001b82785a48d0f767a07e6ff5a0d2dd3e613beb17ee786cff4b0ee4311af4478edb32ae98f5ea037c924c70ac56f43cfcd22c966f81f56bb1d414ac723ab2a70c2390543e8eca13a04731130b7b4c26b558b0ded04141cf2f65b4d32c54ce127550ec70b4040e77a61ead6bdbbc6ec3b84cd05fa8608cf64dfc883be84f69e11cc17f651711eabcec736bbd60f03074ef23ade3b881108a12fe44caf245bd6464d24097427f0084f02b27bf06947da07f4c7fd3b94e986416bc65b38ba4ec5acaa1beeaaf5357e50c82c62a2a1c9331394ff76119d63aceeffc838b4735cea28be178564c42472eb9b36d2c31276635a2e5f95e3d370feeeb3d6bf2a7f9189e567e3226e9f4fac14c1d2c1dad592bf14be66593c1fb7a84726d89f27cbc228a660ac0fef2e3cd745cf4e39da274f21e3307bf42a19e0f76c0277dde09bd0122c52480833655e04b69f3dd8309bb766fc50504c36bf1bdd82c9644ead2e10d7aae749bd442b3f27229a6f4e27ec40ee6918f07d1f3ecd712d534c20cbe510ca4cc846535816819925a21fe18e92bc1f547f9d557483fb6df167975176b66781c7ad1be305700d94222772ebbf6a13e25e17c1d7f17eeaaf24173c364fd308590009b0fa531bf3baba18d25be80f94241606c6b9b63d35b86eaad7f610cdfcf0c0e6b6189220688fd7c1ad30aac1fb576a304ee54549dc30d958770d98a3eba97b062f3103eaedfa42cc93020aefa1ee3ca96cfc58f4fe60701b91ca38810d2b2055f02f587bcfc8cfeeb679adc057e4fcb4a5ce827f61b67345d9d1651a8ee2ff3d696dfa2d102912086dd3693c9e3653f44be3a13f754516c2d399a6eb547dc283ca3d26bc6831a8a7546222dcce64df8772f522305342cf193aeeddcf716e6a934464d5a41f5812486a0cf7b1b3f4033f1474139bfc883aa19170e0a8226d6983a599793261fb1bbb7ccac273d5efc223400104c14015897397135b1484f6c4309b0987ae3ad9d38a1e29ea077763aaf513f3baaad98b811a7a9e096784c64a2c19d6ce8b8396145168cc796dcfdfd0650dd5b68eadb01006332c3d689d61d569e693a991ce3b9d479ee7941994fae125c3e68074a5ee6935b4adb2872e8fa0e322caf151f4b4b99211c633244fcc3a1c6797cfff34d3b7b30866b9870edbada3a976ce73e7517b08644432de4d72164f8b11798d82925ccaf86da9d5101339e58f894d9d4a458176ab54aeaa2d8fca5883ac350c1a81c20a3d2eaa0ac8cb3c40a667ce05af2a51a8cf7cb6352ec613776479323b3899bc91cde9c84ec4da0611cd693cfb797b3fb0e45548627941728716ba733807f9762665315f98e9dadc8d215c19e42e19e834310d9f89822d9682206407899863f716e26ec9013facb03c85ff578842c736c506e4d1e5773bdc48dba4070504be2df4c85c6dafc5f2e4bac58806ababaeff7490b2c2418221dad17d576d51d692948fcf8a10007b942109b720c93e1cda274442605c483817fb100690b2d1e48f61dc00dc7e01a73c38cde66224bf2dba5d12a26a210d3c5b2c215a16453bb0064696bc0a8163fdd9183c2be09778d2a46121b9640aa872ad99891de3c834ba6ebfcf8f1e2363e420d69d349e88c90c4ede679b72b4fea6d379ad9ea62aab95e1f7c9a5fa4a686a06ba9d7495fba54456d13618cedf14b216ebb8f04282c6049c36b85ad09e4f10476ad8223120e892bc83f3d5453e7e74c4df9cbe4dc5a82a82e0504ca8bb9a93e31c5ae2d4aa37016312e8d0ba91cb05ac1aeca3924960b29a084e1eddbb00519bdcfe8f51ff910c93866c73a21a0d80a53babe08f17b8cf8d903f0ba00d19ad78dde60d712bbdaf7a7eea438756c4b607dc650df80cd02929d9504474991a2e45e1707472b12fdaa6657d73860edff930bb1a0d32cfa612e002e414b038e99610ac6ced8222377f8c3d316ed0b595be00fbd0dad88dffe949be24b9007ceb60ad8877a24889675805f621ec2c1847a95d6ce8f83a954d2d9eacf4d8e5c1626733ddb4935ca49d0dcc55fde87358abfcb0eb7638d9b08f813d50d3a2309d3f747dcf54e0caf01db40173a955133ff8e367cd4447ed5d45f7288da3948b8baca3a9f99a0694849a7da9bb114e8dd8d066715a3af3dfcde7e385b9701af0fbc8409d2e57e52db929ff2b8e5c1bf8631a17c55c505acfb890ef1e3e954d2fa54ed37d4e02d5fea577afd4610b517b9110b2dbbb554e0f00b960e1c6e4486d2c1b93362bf102e46abc1a547fc7e1d61033ff31291c0ca52039436103bcb8a01bd85bf77c4f55b04a41d23f49dd1eda6fe630c7dcdd05cd75f5c253f7178814283b88b2e6d482a6957e4c8e14a833ec48e2eba361eee8754be0f512db16cee8c898d1a00a66b5ff631cc21b9170d487c1c6e34e720837c0c03b5c1c8c8469921dc36dbaae13036720609328c27f86b75873ac56e5cac3847a4591938d540a57246f2a41f129457fe2d0e8d986681d9e05f9f8caa93627cb25b601bd982bc3d4409a32368d41595c991c11b5b2c9c7f2a54102c1d33fbe56cabe0085bd5a9f7812aa7fe22e85a40606889529b60a4c7dbcc638d3b8c32215ed6d3ff712ee23079b40b550d89cc5fa85731d05d7d4e39c7ff1b59e1c761cb082a67dc7f7b01418b5fe4bce55f1bda9adbe00fdf84a7bc137fe1a426d97ec01b21247cbe2495098daae7c70c2397ff7b214d829f641f7f1ed7cace60f867e9866bcb17dc3cf18463b92528d1c85b6bca76b718587fb8b476ac98231bd7c7736b3355f7af27aa83423caa840ea31e24684404e72bd251c6f821499d1ed0f5852047b7405b253844cb1179ce8ed853cd5015a383308210e2cb8d85df8563ce29722f9d7843e0099c9dd6b27a8ead7c81e451c8971d0ce03d227d428d97618bf640561c8026f14d0bad00137e8787dddc958b776b89f6a67ccc6e1a330317bef4a7533caace584768288fd7ad2eaeed8f377ba19f7d82fce17f24bc5b77b29eb927e2efd54d01f7f5bd0c8a7d640d34cad28d6e40401cec7c54c7273b21a5d72b5b30626f1382d66ce86a89f262ee6cd7a26d7f71697edcf7ceedc4a646db6fde23f161c1de6983d3c3444363a2deac3d51c240e497d47bdf4e11649974aeb687bc9ebd596cb473359f119dc4ea41809a93148c81df110387df3e94f19edc4ec9824e302bd0a7bb5ab9d1885df19c2e4d75f54b7f813be7776cfd58d39f03ebd82d531fb1a8362330f66da8a327910f1b4a121e09f035dc6d770dcd94e5cd9a8396311d3d6f2405a359b3920cd661dc888ebbd63c1820b0ea8dffdf930c36fe6ef79f1883fa7c3991fd83929fca4cee810f68d996c314903883ffd9cbd6c27d78bdddb9948bd6faca6787fef4d882a20fcd8ed2e96552855272e4989569346e2272c74c206f246dbf55fcf38147c16e872755acf95339faacc7121245fb006b993703d56340306b60c0f51bae896b19889b06d6fa7f67b1acff753fdc2d8b340cf840f62b09f9e033e0b8dc0243fbdfdcf7d37946c29bd3920232b7d6d29ab199444e6c1fbe7cec0b394612967dfc5ddc4b9bdd766be50d2bf6a672bcf430a3acc8f746dbd7ef81ce7ac677a14abfd445cd4ac7a80a87bd241485e475fda215b161d258240299987296d82f3d372fbf1814b830a84036c0b52769892154dfd08431c73fcf0ff060b1dad92fa0e89cf168ff5c102a3ccb7e32d7f8940ef5591fbdca8c4a5e12e52633bf9882275b620bdd71bebd6f22aca38269b3af76ec56301990c317749466e7a4dd94f5d7b3e43801c655a02e747814821df02ae164fbe2bebd1dc94011b0535f566489dd6f37bfc18903f92e0b77ea217bba600f165be1c73a6d510083795c524345348035de146f8fd451d9c72ecce98c8783e0d29d44f890d98d700dabd0da4819f63bfe88cfddc0cb343bf5bb88e44e95516f95f82f5b6e2a883af89daef90c5ba4c8f320e04594205a2535b885751b596414c8771833aacec58803250d5d7819a29395752ccf6455e974206e9f3083a50f91eed276a87bda653ffd72d18bc6a9af649597120b2ab4160ddd678fe48087e528dddf879c3294a0a61d5027158dda83e8d9513be7c8e72cd58f511450293efd63adffc604a86861cf9ad0c0417a61b17994761b8bafaf94d4b9034ffbbdd12d2c9ff24542a7d3a0dc46d1e2b3717e7ed441eae81c328a01a32c533290d7bf6d16530bb65a62f36b0de99e3a34c6f311629e052b265876210ee18e74326db1cce39b2e143b468f7c70bb1605cbf8f7cc42720671e5f96b02e4380e22e47eafa3ef892e3197f9fc90a2f3cd3b14a03e058e2014d90e89079bd58f876d146ff3b3256396817e5c9f389d66e53987d540d6b3f0e418a27e854d63aaffdcc0c1a25118c01dcb0f9fedd60ad57d9cb3db41809ec1760c5b88d4f6b58bc2f811872b15fd8e99f0482e958a507a187dd3ff03fffd62fd5c02d0e28ed08698c41fb544234fa4ed2f07b0a71cd59e15daa91b929ccb0a921988b7b0362010910b9da54fc88b9b8c24d91cb7722be7bb48a123b571a7330b183c927e514df62bd1fefc62bd15cb66271a8612c6473102454f5ffc134d8ea2bdb542f7305a3a8bb1308924a6e32cb4598567f2e725c7dba19422ae0f1e0af382d8ed3d1e630000b9e074d81b90a6b021167d724ad7e6e9f7055f988fd4d4ba1044aa59fcbcf9b112960adbd57bb06060f576f41c4837e8ae15da0733f26d20a3f527f5c94ac6283f59e45b8779e282edadbc10dcf39e7ac19de6c4a593707b46de250c5d4562966e8de93836a0fa1b8a858b1a8e613c2f05f303d8cdc8ecfeb942ab8ee2b437a346352607ec0efc25cd16a4ae0eca6d8afcdfd46b6e5ffb631c3cf6c28fa4aee6035bf6bc3b525b09f2b5f56d1d22d0544ccc72d703fa18432656a7af3f62715bc9cff6d704218b6b564babdf67b062313636069b40d4fdf12f0074b9568faed7eb880645e9437ba82c7b0bad24d338ff8f36ffc2e462902ba77a88111a6c8effbc8c430251171b68b76aedb9b97da382e1ef27a4ce810810e0bc0a4941bf9a13814df868440bd45eb5ed1d59740c54117a2b760b3fc2d1d573cb9989940d8c4f14dfc2b8c2894409b3b6c270e97e32e8e4ae1b721e16aa931106eea53ce170accefd8841db67269a5d8868afcacc5a89812690fe94af7fed1a9b1e9280c485db3044574a0c558290d665937f76a22cca2f89bc182b7c7017b6fc693413764bcaa88a98905414d5c8412d4f6de64530aa432958af6b710b5630ee64d7fe148a08ea47c7f6f91d82d3d561a055787d799cfc0cb6e0da1cf5f7ab9be6f5da333f58bbbce091e5488056b4e01c424e8d176b2ae86f18aaf42c1b73aed9d89a34aa34d76bef473db6c83444a943de35e85f3e0ac609be69c6c55f4f289f43c4615a722b6049332869b8c98329276b40edfd8950fc9d03ff694a971b09b01a0cdffb99ea0687c4460ae6748c5ec90dab4eb16e5a885f88544c6c089589e8fc3d3d98a77c2489cb1d141e938b64bbe62635e0564672cf20e3a508836bd0440f84d5786a09e1690965976b08ca787024c4a0c34691ca9dc15a7475c639bb1f58e38912fe7dcd85539747173399331c6d3546fcb454fbc2cdceb009c3aab7e0f4c21840892b1a74a95d4dd5b4ab00a39d2ab277d1a8d781367fc974ee1dfb77217868f0ac4053079f80a657361168a8450a175042a37c53413cf6bd752709e65b364f6aea65e36388c8b3c204a625acec224be36cb6bdfad783c9fba4e07e639846763879c7f0e19e3c896b1ae66da0a90a20ea45c48d56b59ec9b718a8438c7b2d26066fe492126e6bf2cfc42849c9fd11c92c7db6c0bd293e88a4f990db1b533b4de17256b6d71bbe3bc06f69ce7d5745e1dc8015cb8b053d4da753cc962987de0b1a9c1ff05f37fd187c6fcb5351d2865a4c8070d698bfb92bed80c84cfd7f7f41144c6718cb7ee94d2ebc744b51dbe81c2c874c67c2f805faf53b1a9716c6cf01a92617cbe5e4f9065be36d3c99af03935159723a69a30f2e7cd1272346906f14dbace6fe8e9454b0f0a991f8925ada95f488bf86e312458e46e40def955a74e0de7fb846bda5d851f1b521d3f9f55fdc5daf2a2af45c98cece2f524155a9d97235f494f3da06aeaedca2e43e98b9ea19443bc371aed4dbb83aff57ad03604ed3b2ee320675817b04f9cc064bb34f5f017a99ee8b227dd4af697a9b7e8115bdb645d778488db3f3524e84fec9a9a977942212bee4e56ea7dd311bb320b10191394bb4ac5501ced74cd1937aba138c8722a82953d1a01057a6fc9955b60bf4a542236eedc06d60ec0affbb89ea096c79a8bc2965316eeee025f3606f8ff5182774ac11604038b4cbab213a4f798ab7d8241ea0a689587ee10ff3f66ab74a8a4bdadd0599235d38707c50f556b4010fd3ecf922c70c09297afeef10964402c5d77ce5fd0ce9dfae9705742ea5483014a94dbf78f6f1136843f9040de90587a42a4968ae2d1d1ef9689e02eba7500330ff0af973fbad84fb84a8bdd6b8da4ddf560d0b5bd9e7b825f0456265f3489712af6ba639cf4b91ca9984a1cb0868199c7daae473729d7f10cfdb8f3e911a4153bf40d81e3cf2c2e23147de67d374004aa0642f01d1339cb1f7187980dad0d469c4cdf987bbcfcb0886297c0583fa5717d8806823b8a85181c0548195613320a75cc0ab96b0dc90322c14fdefb8268edfe0e555a89d6b5debcfc035abc50b62cc8eb8bc49d52869d7ada1f47fff9b7c5e3e7ef5959d657eca8fdc70a2926eeedad290574ce01fb4304cbc80a4d89b2e5ebb6796d75dc0cf882cd24a4b88f678621123fe64ce044927a79cc85580eeefff409faa577220b0f6fbdaf73d24b5e790cfea2c0eb0150cfc0bcf3b5498bf38858fb60e1dc479b5367de81b864e446b77949bcdfc59b63143486c79e8e78be811e33f90294249c0bfa6ab8cfd7d346901a8fbf97b85b94c3ab6c17be849c4012cf5efabb0b8cfffe4a0cf5708a3fb87687730285b56f504ea28178902c6edcf3eca6fce3007c492672c1ddfae869ac91e6ad7fec4dead54b404fbf2519f4edab62c079618f9815a9913998cf716e621fe24654ac19bcb8df433b88c50d453e966cf754a247c58f2c3d6255c13812d4a7187a42bcdb0b5f70fe4fb3a3fb4b90bfc9f84ea44a21f9710cc5c48ebb732aff7041313e865188ade299e1a4513517903d2d928daeaa294573109a6f192d4318fc54aa1e803ac1e65cddfb32d0f7fd45ac322ad5ad5309bb38d111b1ff0b33a74e555b45ce07edb1ef65ac2153bfde3f5c5d87fb626216c027f36562dddabf937ce9975502c9c5e1ce14e2a2439c4b172633fdd2128ae2f6d218581130d7e33b20d5d3fe109154cc72a2514ba4be478b9d814458474b93e6853bae96fb584c86176e2add71847ae1dd3bef26e9afcd3a7d07f81a3dce6179bd4db2f2bedfdfc4e064dae92a6a6b918e4179dd0d73482fdfa81a3665991bcbc1cbb03978313067c185c57ba93b2d8357f3ede69b2e18370ccd8ed8fd3ba3473b3f799089780c7d20f4f1d78a091d1b98410ed092081410ecd39b5d03436d19ddbbe2389155ef08bf640852b66d6b518fd1e48e6428036260886ef5fb9405e87e4444ae86aa8e22b806d9fc6aad99d8c27f39e777672289141497dd5f9f86e63fd9fed1ae7c4fe9721ed5ea22a00094b4501cdfe214a1308c408929a09623328da8ef2739abcc46f0d093fe6d6a4a5e60cd62434f5525bd7ac01e1b0e68a180257efc22986054811e414c4b261ef91f3c3e203c3b144887add3120b25e3db1e74149081e6146a9e1cec5f05a05bdf35b41432f1073015e612d783e1f80d3d3fdd5d17baebaf44959724cf02b721a4275e18b83e88868c09a839781ecb8e4a98d534827791d94d51aba8c0cbdb1444ae5b9a947901cc24a557de577208931753df22c625dccfa384f190fd3a82a78e0aa806ed43d0a2446a132a6ce630a2cd49c6175c8eb829994aa84275ae93b8a6ab49a8ae71233ec852b2dc69956c592a96b5fbc38430c6379a1aa2bac7c66e8325a25a07fd7ef682bb5d5ae0f3ce2201700000faa2d8c7b588b47d80bcfe517277562feb0af99ab74e973acba88a99b55bb873061689e4045c6d0d243714e691a289c591ff62f69ebe21c905f69772c2a86aaa727ab381456d716d23c7a9545590632cf4a2d0f3e54f56a4cfb08f6f35409f34cac8e70d4fdb352e9ee1ed0504491eb053552f0a2b34b1cb4ccabc172fc3f2421f525ac82d0d606fdd716c623c7a13deb153df1a87b49e400468a6b165f9e58d86cc7caf9e042b7ec8f9515a6a4d8461560c81bb002cd3d2658c943da38fbc85996ffc9f9480349b7042c2b8548e15184c8368f712d2b7d03d4fd1ff442605dff420b7c5b5efdb5e849c24bc90213ae2e2c668f12f55b61b42a6a87fbcafa4c9b9b07960dd329d2edcb087e60acb05412d74e9723c456d8f8abd68be0f1f7f410d2699869a2f1159f2e07e7b824422c8824b7861104e17c213e0e4cf576617f1981bb9ffaf327eb964371bab0ba4e0c7fed44848f841afe33cf03cec41c5c00f092c518a9122223774e8e1fb8e12a158fe14549f36f49ae84a70eb8890673b7e906ec3deed81a00f8862e21f45d20a1ea7500a3e7de3e63be41a5c059953d6256203168b20423e9faaee4d034095cead5fe2c87377b45cec980b8dfdc6a8704739b0a152bd65d54408e1328de323ed82521e86943f7cfea654777c63132ef4f8d18c47150b73aa1275593d3d6653bccbee466564e7dab0d8edf46416943023896cbfff6185b68d38e7939f8b544c242e679124b1f4e51d009b550acdedb1d3e24f49d3c05855f276f7c883b20c21cfd2343a9794dde21a907b0d99ced8e6f15143e39270e82fe575649ea95244b444a590a99d4f8fd11ac20c2cda23a305e43d15eadccc4b940d8e9027113781ef2cbcfaa74d69ecc6775fb3e4bda0af642986165b44d1ccc0216d0176d5559f49324ab5a23cc247179dd737a77e64f2e84e2f9be0aa366a367902e1b9980e4f9d3e4d49001e98e9505cf045c8de3476c492f77eee1f7856dba64b7ff22391944f0c6f0085270a9006f7fcedb94267d884d13b9beed6a478ed44eccc2e1c4945c6452f6ac7ed8aeb69a7cf23d4a9e0ca71964e547d0645ebc45cf7df5def258f2ead7cd9b4aad01fb6b1883fadc713913b69040eb6c2bf7d6614f472af5a9870930658e5252041456a48fd7d02c0ca87f9b2c1b28f24a030e68bf262842c293d44bef8ea82888ae953cdaf7e3047f89a78d4c72d4950d0bc99147932ef239f1d8b8530857847178c69393ac53b29c2cbd947d8f0e52c610a1b2c2d89c40fc48bb35f781bbc4c4e2475b59a3b697975b180e78570badebdba1ae55eaf3b8ffbd760d92652e05a1e978ead09ac66ec1af351b4b5a708573a9e02a808141f1608a63464cc9639a4264366e9df48031ff0d241b5e191ac8ac43d687568ca8c168d6ec5109895d26feb795f739a2378cb209c32caa9b0d82120514f141306477217fbe420f4c470b8e9fd7a5839b5402fb93a238c1f89e2b27c493cd644a39495b7ed362c3fd7a8f70888118b0d5a8323f1a3ad9403251fda66c816db3e9eb1dd823717d1a34c038fde465e7289d209aa9d66d5c6db91cfc00c24dcfeb29bcf2ca4a2d02b96e130817259d9f0cec2c9f0cc252673635e1de58ee821db9b5ea6cdfd48238e6b1a4f6db95462eb8432fd0d4f142271572127359e52688661539408c1191b31d6bd3cfec3c03a9bf50ecbf6337e008809f41ccff8d53cfbd6084f0cca5936dbcb55fe3fb89ad03496a57f721540bcc077f36cf86e992c516fad230c0120dcb483b2328d05d358addf2d550c5a4c727bddc1ff1dfaf68631059bc7b57bd922c5c4669706e8cf39a9cf3dcc457c281062d50085ef17fdef31b2cab8609cc3e6d0b34a9dc63ce745dd7f50948bc76d52922cdccfe70befc2fe7e592e99f6733096acf70c43dce7c56c014904afea481399788143d4e1c3447f280a99e85250eb9d774ebb8e2c90530e11ea22e635fbe8185ba04f2d0ca4a65dd1c3b3fdc516ec1d5bf14d6d61178401485b3f94585d14361feffc514171d89c3a0e2496715447a51ac70f6beca4621f25aa195df956bf2106a689f8ca3c2b260999aacb2feef78cf67cd56af3d4ba8fa8459b4491658b5e29021666d3ccc378b1b7e3a61b9bd56621fef15b403833ed43811fdd881a709852c5603f5c1bdde4ddde9719a467dbe4ee013b0a01d437e28f174cc6b49be9298ab4930473d7dafc86279cc29833bef2347c1d3adaa0b4888fa179fef42377a86618208ae7e52b2681d1421d6a30d3fbf42ac282450ba0164922acc8e87f6912593eab0041dafc73f5bf5bfea8684697680a4298ed7355a1227b1b295f8f01784af70a5eee80ba3517f5c480ab35a114fae0eaf7c0aebf01c1f74b3a6acbde39e1185239b75864e36a1e8bc31fc8a0a286b19328bf8453231ec0b6dcc1bbbd36adfbec6b4212af511e099a1b3fa35c0a854b01011932da472b670283707e86824bfdcd092016f7574527fd9a461fbd3851bb5aa618e80b0a9b60cb1c9b44ab804bfea98224fe0252490fb00fd4e74110ead4ad346a4cfa285e83fc6193d4d67b40e444fe0a1a96277dfbfedbc87b183de4af8343caf64a66f58db7004a07eb14f418ce4545ead2c39248774a5eaf8205322585b8d3f24101fa9dcd6fa44b4f231f074dcc97a86d26a2fa673f29298d50a5572f9aa2419c9825b7c76730218fe067a21da8a0bcae788d35f269e5e6155dbe2798d445573a7db1447f442d9e4879a5de7c8fb04545d0d0c5a95602b522e36ebc4222869e9abf1c9046d1e9ee6a5d9235252a6d97e9893797c50517ba8799f602048b5cf22382474ba14103cdc4e92724fb498cb7cf65843ee0e692eddd59e328f72a8f24405a59098d58280ce344d7abc9dc97e1e9cfd46f485c3d99c95c8c2082334f7746ca17c25900a2123f89b4d00ea91203fbfd6a85e12757dd904815226a585f26361e295212d50858bd96721cd827863f79cd95fe93637b2e020c2329f81a3edc40353ffa74633dec7b25bf1caf0dfa6d408ba0fb4de7afd3aabff1742da50b3a25024ddd7b1eefeff0f327e195541696140f10c4933e6f685d0768070827675459ccb884754dbc17592a338113d9b87af4d4f542a08fd85c08ae1927d7e74b34057cf45bad743b2e764dbe9450dc170b3cfecc8415169c72dc75e8e29f7d0a56cd7a0431a4fa0c909d5a08b743fda2f09664283b3d13ad44c356178591dcd62b6df344bcd80b6ab116e7040cee7ab403c328743dd9553cbb25a531238a300896217a2c1320ff8395c95cb7b8a7d1ccd32267300584bb009802db1c15abb21372e367e2328ebc6d563dae5e647c05832320fc5531a14d5def54fd0875fdec7f0972723e79eee836a2e61b2bbd972b8c695e820903dedb86a7cad7b8a1261e8a9e2d4b2e2eccd7563bc6e410f4c1043d50bdf45be1413665fbca88c8be2caffbe5c14e8df60a86837557fc0b3fecbab0362b9e9bd6ce688efbcc172e334bedb986a08f31600f1f97bbce1fd256cd1350af4741a30eb29a640cfe0f2d2ad779ee9d4bc5505a77ce340aa8e481f78daacc00d6a1a85e0473116438595b123422433d70ea66ba62e07373859a56628502c4a5ffd946b91a25d48f49c9221fd81190e8d09377b64b72f69e5d1acadd058526cb6625e4bc6686d9ed882760c860908718004ada6c6f367742fadcd63139bc2ed6080c1e23e7cf9f31be9c5d49b7bd5ebaea6fc15bc60b08aec6f23d2b0d5d2dddf0169a5128edb9e357c96b1f45fe2eae328052e88c6cf144eeb6cd1c30f2ae29ba7874cdd47aa0dff1fbc98e3809d04859ab75db5bf560f8ca57a75a1d3a88bae25389bfd5d620d42b42631ed9ca36d2b9207adfd086dbd5a38e6abd398a26c2ed88007703e4e4c6cf4d231aec8cf908548c4b05c7c3b578bb20002200c919275636d7e76563808d48684b102917769a66933c411feeab93ae0375ec3dd12d0551549d2405056b5468ee3c54beb93aadd95959ec1864106b223ff97e5f50912a601641e84992501a7f0ea47ce573bf5a795acc403a40ee5bc3e59ec2cc717899b4fc8c13eed32a34c1c2cae587a8302e001c1fdfc8ddeb4f93bfe6a555e9610761bff0267d15abc9fd41212df31209a9f18c074dd243af4a887f8198ae2ea5615c7d48c664689355a560b6b79ded7cbf44100271c4b804e07a9eed11fdfb384454d9983f9508c227209c6f2afb7c445ade842f1896000ebc6435c3087461b1844fee21feb184dbe274ca4df2607028d5dbd1cd727f074f1cef70907a00004da62046be16d28bb2003fa8f0befacace82adc1289342fb8250517822ea053d8965a83b3ebcd082c64af5bed800cf46ab26013610f30315c33e7fe1f7db2a811d30e87253cb2d437461805d9c70d363a2787cfeb7efb295aee1a70c635735d46daae450ab417ea5be39219d61891195e2a547dc644602b7f1c50301946bf7677d2a589d0ac06cb9e698a7ac740bdb3db3cf677c719cf092bf8df3a45aa84be4293935b8970e4acd659cf8dbbe770e717d89e97205fae043916e6e6bf3a421860016f90c04952da73d32e52138966ba41e5ddb804f4c43bfc2b1c0d099779a634e35ceadf0e4a591fda050162af3f7c9a94618af33e2cc2c74349a40ed3f356725bb7e40bd2cf91d4dfca69a405c73811736e20725ef40bc6cea6c3f6e9c0bd4ef0437a7ebc3f5bd47b2a3aaf165dc530a914cf9510dc93b9a571bf17a341e65d41e180f66a552977601680fbbe4042bb8b076aa61b7ddf02e14f7563b30b1599d4b9a4e40ee9f32c07fe1ee117636773e6096cdbfcebe754d510fdfdebdb8000d83bfbd0061c7e737918071a5f9e6b42260d2b8db157c9da84ecf1e668d55958aef15f217e41c2a51f43ef8c2107d4485e6eccfceb58da07be1ecd2f453617eda6f8a08f202ff159d37f69c3fa324c6981bbe8895bafc13c5f3a67e514a0b4325150b67f76707e2e23e06f7475cb36b449a7e9465931b6dbd035444c9af84c6e8a8f91fe668cb1516c14b5edc2a9df273f5e1f7b296ce1318a140d12742bd9c8f226e6128792ca867ca66268dc2f8377c30011c25796445bcf4dd76d4ca2f8a5233499a2fb43867713b518c3f1994982744152214dafe49493540cb6e8ebe80b8bb163f67599b4b4546455061eb188f719e010426b98abee732ed6a76dc9fab8153c05805489d99fcf3f335f6374142b59dae4b4af948f59fccfab5a2855a5c0ac50f47da89b5f13c9d0be557c11bf51617346ba2e2e6aeab797da2905fd2ea3a90016144c4a9b20b750ee4558f608b3cd4d3ffdba226aeffc246fe55c264dae965e75c97c93e4f32fe78a7a06dd593fd12c48921c717e897c6f3b95a0c15d62dac5aaa9a0a7979688f38ef0f69c28a8f00ca620dc6df52e7b64b17921dc9557d00ff273d1c6d4573d471ec61577646d743a4fdf97812952a57eed4cedb95fea1af14df3f3aa0a56a4d97e9854edbbff47345b8a1989a17438352b176b01b10763bdbae64c2f8e260cecf6e62281ba9d29fdeca3f46323c2ea814df4a07f3701adbc311a1b53ef2b9feac1c4c0654847fc5b91d4b876bba2247954454d2282cd4fb7366f03b2cc99ad831b70fca5c2c5a5be40f73c24865dc76e7a04307cb7108b79766a41d0e15fb2c291b879c9901a8c9a978bd4465dba45f0ff0be1e856cde6484b57d49f4f40d1fcc172e66e02cffecdd6d84bdade335bf90a826954c7ee608abb069527299e8a7b86611586daa0b95f79899c1a878a8674dac566c1db6c6dddaeb7deeefeb8710383cbf64e70e9a08fb2404494fc441bfb306c8aac69054d25303ad76899f9879d52996c374387f7e348fa52f758e153e3dd241d6c656b40aa9adbb69804daf58444dec6edf5de8a3c2e490b5c1df23f33cdff87e38a90e5a733730e93b7ff0f296050ea5c92ddb18f13607ff37dbcdfffdf596b3ce0f2dcfd3d2513cd9c782e4c4a8006cf2ef31f26250db944f103c1932ce238be199d626c664d04c4c4f879d81f34a098ada2b390df575e19cc79608b015339e8ae4155343ba58281071bfe1622dc288960dbe6a0137d3b6090cbf2d82200c8ad117aafb334f2c8167507847573b803768e62df607aa98c79d728df6441cb970e8acc4f93211cf2e2d84cfbc6c1ab42a1e9d21c10a80d32cd7e2796cd5e00c74780fdedc1fc800a8343ce6ffe67cf3b83a5e40a34fd804e192e1f5a64fb8b740fe6bdb67810e838e3a822222a68311fc4752afea82cbe1478520b1535db87481363df811b803a0236578300fddcd43558c4535d691fe93a142547635d48632699a6ae683002201cb54b70f0118598ce6cee1921c55c65698d7924ca0a4a3db2cec09601c46e22892c42d1b0793ebf3162caca9640b2604b8f1bc0fff17920b83d315f670c517cda4ba23a484e0021e12fa3860cba33284f097b3c0505f7b8f2c8aab3fc57e2d63d648436bb1df802446bd47ce62d8a41816735c64a371240a6798a1ad9478af6a1cddc8fc1a039176e82cb91fad18a42d61a6b6669e3a51747aa1892e0ed2c96511223db71de77fab6d4791c9244414b0ed37821dfc18ef7b2f406f7f95a5a7fa726f5a0e6e387fd712777720b534f0e83b093c3409ada0f551f3e57d3ebbdb6ba3caff6d96ea8ff554c6661c40197b84ae5f708128f784ad321a3810560b3d71287753fb6fbe0c67782480191aa052bb0efda5034dc653e52801c940da10e17d2d177754aa188f5e04ba30b28bf1ab8a09c8638a847629b70cfefbf9fdeb1dabff5b6f5949282849444d1e63507a4588ad0413de68ff9b65b99c3268a654bed3914621fb255d28eec6b68b851986d725f01cc00fac52f35a93dbb367ef5cd1e5f8f78607692eef0ade6527510caa0d2728f9fbf7960a9f3afd778e8ca703c014ef117eec15317da523f5750240ff52a493e85fd27f6843f1e14ac842d196926054a7d1747c7ec22df0ce4af7432dfb33d119765154a3f7202db56c3d23e68fdaa9bc6195c66ae3cae4e1008f954492ba64a3087d18868fa0501c4ceb8845a02a94588a7a6f8bedde626565e02b695df2371c192b605e0a06c1767ef09e5f1e1c5f242c28c60db7e012ae86e3ed4c56f114c402ead53a815d79e8fab339d8ff63799cf8286f5de2285e12d981377a2bd42c3c89c0b6792e3f736fd6e8debe7f65f2d0e3fbe11a4034f6de631b5c6e0f3c94cfd53e53a7687033a0fb9a49d1b47503b6dd28e961092b4c5be8731e84607cc24ba5f993acaa1c3c726dafe88dbd01840435282660ac3119de34a738ae732c146928af6f4d037d991c67f85d166c0674aa45928a3b2525d6f115b8d4010c5149c3580374f785755502ebf5ffe19b7b76cb545fdf481dea44899789151149780562c4f745e0964903af921b5a409bb04e51bc5940924a63e54388968f1516f252d1110117742c0936e3b1fcaaab521a670cc8469badc97880c27087caea63c61acabee2341460c20ab11e1064eb13bf5064e6b436e36b57a10b71dbc2d8b729ae6adb477925e8d39aa830d5ae063b3f3a980ed027a433341600b6346a2ed9f742ffc365d76e55f68714c903e2060b757c8f7e17db50796d73df787d24aca72b6e5a1bd4d5c72db3784676190f8a70c9103a3252904f72d88fdcba064abe6462aebd872b0c173e0a94f30306782594a61381b6a9da72146705c22ef6a987f937e351f4eaaaa0bdf609a10af2139866e448c7396522b08f17b4a602d501bc03b1d12f5999f0a41c5f8920501a0acd90a696f9fb582226d84b40b27bd5864ab3f69ff84b18b44e98bbc81c0b833eae71e6862f80c06a73fa3c8ef1957162d8c25f5afedaa1e0f1ed68ffb55bd6bfc613cfc6db21e4df5c343b4c3b1a59300b152171fc74faf199c72d6c2e8b1955b54424a88cef9c36c40bd16624dc4183a3c0073a60dff578e8bbf2d0a6e404fa6e3829a33ced837deeddac920412115d67954d6c217d8c9d43fb0defea38b25e5162ded132205c931aa169c60af900b8dc63f0a32a6864975404cd144e5f0662056ef970730611ab67d2ecbc6137da01d491f3e0511fe035d6f9178a9745b29d3182ad61c05b75cd0bca147564ae1497c2c59a06e1ca7a58b3732324ff60e8dafc3635ac294ec855daefdfb3e2aeb751edb2fb5eae59787675e526b63992eb9860ea12fa2d84e9721a8a0a7d75c11df562503c14c5f8b51903f4f69995ce6c894b5c27196b960ea8ad205e9fe37454c2c60472b79da7b55eae54342b2720451394bc117cdedebe4f86ae922796e4ace7ea905dbde6ead577930f794d05cf79d2ba94c7b9b5bfd4116e1bafe91ce935093bc32efddcdf0429473f8fe395c5a0147d37f609afc345701cb84bfcc22445c1f63d12333432244fd5a74557ea81ab5b37a08acb093a7d3e9db6f63b335ee81c3cda8a7f8fb6c1550fbfe7172c26d7df17ecaf010730272207d93fc52cdb1419e2717fe689abbebd2a00b813197a000a21d7afd1f9e9631a82d09d7e47adae2e231a75d04ee3fd9eafa40c4090efe2fafbe66305e83d7ef49d06758cc8220ec41719a588c2573720b71cd8172efcd9029b2d518cba7169d3f8ca04da86cd7db600207dc03aeb9d017ae07716f9599429accd1bf7fd7e7db0351fe598dfd147d661949f0ac7571a132f759d3e1e01c9a9dbaabafc32de22d7429b0cb9ba6f4d69ecf1a85f098f7cbb39bf0693bdec6571e6efb6f7ae3b6166f0230b739ff7cfa6398fd69c9e0c2b74a8fb83a0c6fce0a47c54ce640cb88ed1d66d43c3d89d063a554f2a0017dd854a03fb7af0e4864b18f44c82662b96af618d8672e6a9dd58c6170aceb07e5b69606a77b0967c6889d8ca8d7944c27870b030dec1e1925e995f51b5483476e7fa6a04a0a1a6b6ab94a2f98c1ce67d91072e398bf5fba48d690ec4988ef7da153033bd3321b99d11076a16eb805cb263b39fa1c2053ee75c024eee1615caff1d4f1954c53c6d4a133bd546ee8a579bfcff9b5dbe97f9cadafa91a5d4d9617585fd8cba02a8e31f2c36bf027927ae2cc3750d208c5740b09349bb8049bcd4624c5092c2190d3f187f36b6a626a4db7241d7b5717e296a7aefa9a51203a0206e1cb7461d94aa2c21292e7cd677767c83899da6173a879334fdc29bf4248da4343c8a55a944985588d2ae88af3836d2fd17f5c8c9992118c65ee9dfa0ef6ba55349797f1120e6ed7751c886cb8a2a451b56175739e20d1db7461a241d5807ca00fb161cbb1a8928836f25d3123d8cdd4f1d7f6267005a0a05bad91375fab9a0326f44940466b3c0422442025f5b8bcb7ade204d4bcce0090788f2c904f1871759c44ce6d3a6c67101d7ee59ed1f39dea64e814fc9899c8a62aab257935a6f03a601182275ff877c78797454a1b0b20f5bbb3ff5f82183c00fff22413d99689ce58ffaefc8069f289c8d952117524cf57a686b9dbbce2c226e8ee5002f94e6fee6c44c06c306b23c7868582386fa0751b799c5fca23223eb68cfd9802f86a6aa744324b4381ca3871c44ff70736e55848e29e4992717bc99ab9b62a2fa224603dd313f5cff118b5999f2d2533451f514ddcf024f2f4bd071e6c52dbb6b1d66d20a896ff35a1110070c446dca40d3db2bfe7933cfe35b74fa2284a914785816c32dfe9a83bc819f6abb71000856e81a187c56881bd921167e2820e868f94ce8e6f248b2a8d0b1e3604420b1f4682f2fcb5076c40d845c078cf09f8e68486e4b2e4dc8d816de23874ad6ca78a968f6855db6251ace00d68a782b588f3aa797c6f5cdc753117497f88d7fa92ef4d003b686875e805f29c9eedad49addf67bcc38768de7bef3682a6c118a6445d90c10b02530f63213fc831c0bd8f3fb285bd58a52a36871a9282bc7c5e726840fa9181fbc2d69031352804aabc4a54251e283220c2f60f63653767d19afe1817f56f74bf21f663ad9e56c2b1e9358006662a7f78df012f82fab79a882a7d2f1c9bce61a0f697aecb5a9e0090a792c234f5afc61a070fb043e5436c9f9e59fe0be1cdf24835e82ce4b6eb2bddacda2ec69c1a09677b93c23a061dcb77c799ad9e7c2f4815f09bfc813d92e4d3eff0e4f0522d752249f833da6b4d93c8c27fa8bfd492295da76b3c1d8aaa659a99581f7e783226121989812382b76b0ae3824f06fad280dcd982b5c3a560f2cd2485fb3c726057dc92524774d1e57c7ea544f1ddf2b6f5938b60eae2ce6af53332416d5d30cec98dccc6767743084634f7016f8a5f90c05bb6bdf477634144e8dbba2772b5511b1ff9ded9c4e6cc7da6dc7cca24ac366c51d3c0b3f3470c09c626fd70464665f253a4e701a11b382a4d9eba4200f000a8dc9b06b4f55f45e027ac1972e06e99e0b78df7d66077b54caade0fcec6414b09e4c0a9b921d6e625e5fb9799f0e92790a0ad996fb0dde25c8054761607144936fd980febda35356c3e0587f036dbd1b152410ccca14f87bc1839a199d90767f23c514a85254aa57f19220daad86d87ece5f001d8ca4952613cb7d4f65d0c548900aef71ac6e1d70534aa4ea0cb49ca67235b418fe5432a651081723ad74e49101c851f5678664cdfba42fee51c2195be3893d83245347e3b5657c3ef3724e0c69c0183f2902fa0ee07f7a0c2e719029dd1cbe010ce2e910d39530ba6af54b9c42d7c96367a02124c47f6db74af61cb66819000f97d8b9d4314caf64c9dcc30a3799355583ed3e74d78af68e2f7931a8538a9eba5e1d200e16c409bf1d38de2e73b4a79b1acf7b4b054bed3a9c96e0bbdbe0bdf4bf2fddd64539934068d276b9bc78a7d438fcbec55eb307edf8e0f7c1bd6f5468c4a0e796216d9db3d3a25f0c895e4819c580f2b1d172de7c6459ea9889ef0226b4959a45be2545bd505973c7bd7e0aae4a3b9a279582015013fc8a6873fc7ca1c3493432fca94ee208d877f54d174b9e0661bac8519d1c80263497aad99781c37f88a4edc548129b95b7d0029a0b4525f6f80dea10c22bf1de6211ca5ea463125034ab2fbcd2784828bf01e85360a1067c5d8d1b6bb4bf49145a6b63c46a2233a5c446d1941c081cd8700132acc0973815bf44cb437b52ff23e6806fad16124530c072365c80ff441b7c5bd2b7fa9e817fa37afc9ce1abe8204262e30b3814dacd4636c1995a84f4084a23e1517fadeba65e264db3f55508e89eee8e4543608da5880228118cde0a6274b6ba37e5092fa99eb6c39f8c2181e3a03e440b11dc7a5d4c61c97bfbc47f86494f23c168ab7640e2271f32bbbae6b0dfde91745e0419276bf3561e0fbad76d4c675a61642a20f1fd6aa3935e4d5c9469da9931486537d952bf719037783871b3e94711dc405968971b9c879539339e3d95cf8bd6a2234184cf1165636eee35e8352ddef6dabc93ac860fcc41d8fbacd276a67d6e1137531521d3a3884c754f0cf2831b7db7511c0b015c328b4f3a028f647b605cde4ee930e2812c20a055406fadf4215e988c19d88db9845e7731f4500c438f52c8f04b9300802fa780695919538f182b0338030ad5d932e8cd7563e8fec6e3e2671ed90e08dede1f4c5a97456caf009b916323ee69200d1d7c3aff999a7b23060819ba0851415d8d736906e032362008d2bc0ba2612d0b346a8a0f9dc53848990e98bffa7ef1b87957d6640e7404f1efb7f3db9b39b4372864df70a1785f10dcf4332af14ea772723473b4a642deef749c0c791f0ed960384ec9a845193669f2cf075b10b6f6a8881f3b2cb1792200dbcec12fcc208e196769977f9da485156369cb260c506e82d012fb82ef0e009d10b5569e0fafabedfca73557b3a9c1699de7e7cbae1dc6d9e40960dc513513bc207c7e2cae18bc670412b08b021445166e06495a5593b780602efcb9804f9418be5838ca3f56b6accb390e86fcc56dbf8cdfecb171f758a76614153255b28299bf57c328aebf20ff67c078ce8603a1920d43741b091116171b074d565f3775a89ebe0b23bb2256702deada5677ac821eef9f35e43626a0f928657924609ffa99f9fb33957929e7633943726b1c47e973917c9455a64a6fd5390d3894d0c4b3bb11281b75d110524eeb53fe32b7da58fc387f9fd51afeae4281da1554599e91374e150398fdae8a456565826cfb990e828b0637fde81ab09c353158915911e1beb9f0b7330dca0c8f0e56cb24925de79c18523ef679143a9d0c9bbbb563940edb8172dbd365be7254117e2b7297eeaa16cd3a9982cc855560c673b95ebea14bd5779e352e3d75ca0cdfa31ee11c2186e07f7bf8a2f10f6ac8a2a526f2e4f97f6191142dfb20ab22f6a900c820a6bebde26689b6f28f88c99be6753d1c05b6309c6af1c8b96d860a30e7547caaac40e4469ffc4674607802fe5a616433812a4776c03ede10d97dfda4d30cca931b5b1cdca988fab7afe99318cd0844f67299e15cf5f34a51eb8ef5f5ee74b176d55632dce98419fde186dcdf8f2dfe5820b597c6908660777fc49d087bfefe5f2d3c96a72605972be9085fe2f5bd971e8af2dc52b90ae0eb440ddfadff93f9ff6ccd80050d82de4ad1f5b5f9d9f1e7cbe4ab6a53c0e3292f3e62c113c8fdd6ed5051cd14ae117e6838afd08518779e191313dcea9604838b443ddb5a6256a8aa882d5261fd2fafb7cfd0539412ae326b33f4e56652c091e5835fc9b4238fb0343951c28052170011dbde36f72cf6cdf81248d41fad2a74c4f9e768e6a00457687c6f6131e9a89fdfb644f9d6510a834ab29637f2860812b5fbb9cde536232820dd09153463e50df84ea308be6d6d645bca29ec5a60508c3eaf332f91821b9601de4a9c0243f532caa56f3274f1e64b3b460fe558df3aecb793344529e9a66b2872b0f81172c11edf4fe13a42520f654ec3eb647b4fe37371f473cf4e11dc226f82865188bc1bf398f730f35e8aeccc59149d8eee1d7832ce782741c0661392e66b31dc2c5177bab9da266958969ed864c0ac77eb5bfbbd1c95f9caf996dba02b7e4893df45312d4c4af90945f61bd516819226ac4093343817503d2715fef6ad7f80c6151069a7272c7bd2692ffe51a1c6c626e7a66ae73c9ee27c8c9a93d7a62766cdaf0e69d16e7b9ae6cb4c5e497732a59ce18b2151e61da183a6a0289a73a2e866fbff9ebc16c32e2ad559c1b6091b1f035a90cd397e5dea27cce6f1734312b48fdd882477baa617b5cce7146f820b3efde87d8a2a9f78122403f010838c0a5cd9edb1d757bd5bab3c658cbb4bfe4376e5f8bb9a926e5e39181383e84d8813568cc4660385042a75cc0c5fa9fa1733c90420d817405d5371809d2d81280c2ac41edcf697775ef14368fa809005ad03b89b7c07330eef6f35d926bafd316e400fca2d97f37c05a288712f8e1de2a60e0627ad9d05eb841d306c8ac01fdccbb9514920e03a7988c204eac32f441d3a614b8a2295f196a69c517f4714dc2ef3ee910a774d416ccbecc8eddd8c9bf37d41570ad50d92bfd38136e07353ff3964abcc5cafbe017bbf4c83fea5d1cae876a26241d8c73b587633de05e55be2665cb1cf64a0f8a67fe8251efa62b20530afb01277e5a90d522a6eb1424ece2e9ca135e4e241222462c44baed6a9e198f73f4a4b06b73d911531c1d8c0a796b365cf5f4913354a5dbbaeaab17d369986e9be82d1bafa32eb5f910fe3422f5b49923ccc7e330adedf84e9bd9d6094163373db1ebe50b4d99b651612bce2b80fc7f92b0d5f7644332bd70917bea0361a21a6971ac07f24a8cf5c1bd3f248d363065ddf260a71cd0289f825de62e4006abec3f0242f3cacbb3fd1d2345016784ff8914f10a04ae0e6753ec84b5f338b4f40c67b1fee17af4ea2638366bd799e8ec96dc137cb3874df9983d82bd8749c169078f2a01ded2a44abd605737a2c0b1f171f2bfc1a13d5d1503464616268709047efed749e3c96a39c8baab5a44e26c532ea61342e076806c3336b6171345f93bd74131864ea991667d08e5d0dde7488777954a7adb791a88d1b9eb715e46577223ac93f9741666a5aa154ed5fc19033ae332a9216505248fb97487e0b6ee099ac5f2050886ab61166c021be98a11fd3814afc255557735acce278ea181f7fdbd42502e671bc10a2e943c57bcb0b563e047301062f4b12b68f9ed3bebc812222a359d64e0b95755715ffe4a43995098a427a71cd7d4eea198b9469d62c1dd2d70a4ec90ceb9f798dda651e0cb9fb3191e9271a863974fea23317539fa4a5736757f48f56b9b7bb476cce185c6a7cfe74fa209b3253712d55360bcb9a037841c3a8e5089732cbc1ac4f32a18ebfda51158fbc82455fbfc69b10d901ddbb7a40e17f6f61eef96f8b85fcd00972d2d18c9baefc112a107a70c038c9e69110be1e395bf575ad3b0d94c00d56322c0bea0bf2311d42ba80818c74d68cb475a475f5486339fdda1fc891ef0165cfb416eda248b86ac2c94eabd24b0bf5235958256210275eaeb10c9cf9ca8bacc2552d72ad92ab53099a850c053dcb1ac6a4791b4c9668b3f91fb94834a972e3962ea93c010555e53f6558a67a2645792dcf40927463f99f1c490f007b0a03517db4ec662c9d0127c3d8acffbb47dbbc3be89f12a104a73a5103dffd85110fc37c2e9993ee9936053393757594c3ab48201061f2c88a37649a5a607392037f13dc38159fc9fcf5be8aabdc4bca23a9b451fd9407300b7674350b8670c8ca719f3440638bdb0e13078b273eca26d342c6127951ebc11f4fcc0a0920b5b474ed51030c48a0f0da964bd286f2eb96a29da5e1e1bf655263fdde8efbcd935db41f240133c1f9e1ad34d55b38e96ff4465c5186a77bdda0fa458465bbc15075602e35069fcbfee19dceb0c220135176d6f79253d040e41d07c5a5c1d851a64ff197dbbc117a7a4d000a9591199df1de4ea8f59376ea3a7b344a99eb155c598b062452f49d5b51f5f0f3351d6dfa823d0fdd810a47c1e6ff2e45ba90e87707d4e163e2f429320d9aceb5b8e25fbf747f5c453fe5041a32732642147ffcf898bbe8c2aed1f3f8b87fbc593928a34bf41ddd68bf7d0344b23251763038afc1006e25277e56083bc795229f94a9e144c7ea20d032caaec7acb0695c585694e533edc7212bdaceb9fcab29dfe76f35e10a5f13bdca6f02f575292b61df17f31b83969faf98f07b6399924301798eb201a2d58c7369fd11c2a2d7d79f45844402c0eda4894eb19b9939d1a17ff863da1c5ccac111e3f380f92750b3ae4587b82ed80d6f051f0a8ec729d5bb7b4f2b28f91e8ed0f850e709b9c0f8887b1f0eb012d0a9c085785f07492615cce26b1b86379ddf38c53933fb3f36bc2338b2ab43ad473cf77a448e8ea0c1ad54a2bc11d7ad637f5ed78f71b50d6339d5563788bd0df3de9bf3753dfffdea6694ec4fc76e9147250a6cc8222e500babf496b0691aa6b046d7bca94f09154fe8158dc5dc95717f34e7448dbb70a2e4af58215b728f6d278cf8127a2fb0438d1f214d879d0802f12a06e1ca9a181b67ebdfb4b9ca02d316bcf0e167a3cc087b804968f93677b57d0f5b451d41d8aa4131e9e207cd8d7fc2a5d6957bd088caefd4dd109544072858123f55dd80f6ca8b8edc5b2870ffe82301647bff14e3ecd2c677041ffed259ac29ecba5044ca7b0e0da14b60a05ab4cbd178b0f56e3238662c71306c0962b924b40460bef544933e7e25c671ec56e89cde93a42b349c8f0664696666ed3afe15120b76698b635bc2f4d943e76dddefcb315d290dfc9df7dcb9c42043684dd35bb5e80eb5b7bf809cd4332ea21b8d6ccbd71f1399bd84ec39e729571e778551305f6845f2c30051568b2b7cfec539d9107f4769194ef408953802636bb13d4a8822bbf59a2a6449c312bf5e1dd468fcda2de826819f67fc6accfef3edb6c861be48f505fb1b3df5375a6ffd287ad52a64fe378b9157a6d173aa92142dd3e8f996658e3e8ab6711c4e93c142a388ed592ab50ffa289b5285eb27733e92a557ece6bee3b278e2f8419028beb81125540237106e6c5d335fece62a1d7fa691421567abb3b92f6e6272a6d5737598b460d290e1f670448493eaee634fac1ff7c8ad7eb3a275c93f4f62def1711756019c3041626dbc8a270cf95b828da8afb57f760e0eb9edc02df4dc287f4ed2922b478e97ae3d4a3d5fb7fc2bbd9db7c74cf0b1868ae4b55c579c82e6f8228b1448d3899407f40c66ffda6c4cc70ae3c1fb16efd118732796a325d71d2f0b052aa566e1a648c52e5edf8ac9926ba56e22a3e3a3dee699297f637fa0f4b3a91d3f905c3524fc06e2f75d3662dd99fe5ce3cbbc97d17af08968f331958682a2190c1ec39a279cb0c1e1051a6c16a4ef03fc25f81d2b48f4e44a9cd45a738f1f01b2e7ddfdbfd8e2c1e5e9cd6813c712b19603642069fd831e34e595d4bde44e0c56e7a254982f5eb0e5e2b4dc8ae0465ea6d2c1f9ef2e636abbfab7c1d6c3de1f0e9f3ba183bc0b45b7738c559a602e76ce5a45204413bce4bdd00facec098659307d88c496ed71c241b9e4c0961ab1a8ce9116a0debb9abae5288626dbbb7eac57019b20bab040267f77a01221967bcfe42cd26526956ce2bdb69b5b5330038eaf7d3b0bddc3c9e94206783bb9e67be2d6b10a5958ff88645430deeb17c8d8b158706210350c8352e89a766f49dd63fc96aec3466881a533ad38761c6685c0d6f858bf04333c88524a2e7cbc639c2c6fb3eaf39b246e5f9587b79c55e61c05a3c79e35e8179b15f9a608bcf02b358fe804da0af026d3b61a38601ef1bd4bf490aa935a9853740e7350cf3ed127f88ca64c54665f5b308f2899dfdd589c575feb31e1f9521790779b4dca5da06f92e7bbb499ddb528c6311054674f75dd9e19da88b49008c619fc1b4cfa4af4f8e4a66464f83869833fcab70413fe6b1b087d7eaaced37e2c846a1d868188ddf5c0946a9afbb263751ce8d2f9f106aec9f1e81f6e362743ab4e33887dd46e5d8259c299ffe87d9ee48800ab93569b56b3fb3b683caa286dbc09efd4ae21a82c1a48014523753d8ca23aeb77836a81d976a55ab07f1723317f9cd56c9d61b6d1907668da53048b530e8964486ded92015946af5c214e9d423398469adb8a6c07861ed487458173d9d32f8b7aae713c3f0954a749a6deca06ce594309f0777173905363ef38cff69b911565c44a61004731473348bc91169713d5f2d73a27c0ac983af8eb9321895c6ffe59cc4193f4ffe9ad49aa4a30a093dd271d373c1f29921e26bb651e0f949aef49b451cf3f42c26f2561df5763bac5797fb29adeebd1f0624c9636550bf4dd85ba26e557b0a7e5af05f920564b6b924a6d447aa6dbad7aafb1b91e850c7ad1bbcc4331041ef59f8982122fa90eed3c138388a1e95d0b0d372e16c99f896a2def5204d34cd09133dce7b01c77072ff999f2d91070a50a47482ce5dffca6fd71f2e143c2f8b2f56dbc5e5d2c166953ce89f7b56d207d1e70ccd82231795ddf711a1a424a50492f766b5ba6bca92d3149be053e039a8e8dae4c050ae3a5a3b1ac82ff2592861a61ebe86c9d44c0dcd3fe6211ba52deb4f48df7e7a2b8f9248879926373b59b713f533aa855600444f7de90c914346c57c2d5603b306636df6c010dd9996c399194d8c1526aed528b9056534958866e34bbaff5fcbff57312da0936cb67454c4abd593ec07637c82545423f963a70e072761e5f2ea03b844c438fd517916b5b3a2cc74e929d349601f1b0053f9030c94fe0c34c8be45aa0fc8b2f24fb2f01e1d4e6d192a802d2b5002176ac8fd47ef13bb7f7611ae25992e88a64ea333d0725c106eac2194f50c534998c561ca37bb4c9102e3fddb7c6cc108f8e5c051cd65c04388d597f32b0a590cf48c6d64031ce5cd2ade1a8c16b220dd8ce7d230f2611e63ee5a7b6da2ea9c26e5b037e12a449283997d35c241410b01ab213a6bfa70c7b6fb66ffb7ed264b2d5a3cefa2173f0a8533ae6444560cacaffaa74d5b82c5549339e5ce9d60677ad96d2cd269d08de7486bd706e51aa8140a35cbb03e95ff18588a1f682a049d5a6f7db988f575a18eb08144d1fb7fa8d3317b528ac280e7d03800be8d51ce7720c743a1302463a500866440d6aaa0c75fbdfd7bec1acfecd06c19bb03591c6529f3b01bb0d04372b68fefe2210a062fcbe73d85e6d915b2bdd0305204fc646566aaebed73a4f0cb9448484f37fd56ab901c144f37a58aad93d96bb3188892a5b6ce52eb36188a3f61781dc11c2c9b3d130a97f715c6454fd36d91324392c957aca29be456c37a4805dcf5b1996be30dd3e80ebbbf87dbf15a4c4b0e44c03177b677adb00cf8594d7d41f7be2d43b8e1cab8ee4ae7351f692f25f422cc0e7c9c78d0b1ba130c089d78e73fd0b6b8b9675e4908be2bbeee047474894e347b67d7ef1c028320cdb684503a46612e43fa6e7d43660ebf14a0dbbed32ecab20d0f466b0b78aae93ebb69365ddc16f8ba8306a86a6ab23acbb07985860b8a4aa9c30e51dbc33e5bcabf940721eb87d9e5e54673ef7ba47b17f43c3e02e8ec8fd01ce3819d3e58e2df9a771f8baf613e7bc7f4421b7e96e033693d2de89787b14ed719b64b264bdae57aaa775d9e51c5c6125ab6b667c2bfc6231ecb071962483d24510f444780eeb6a6bb933f7ae9a12b0808393f94adbc9ee584ebd7e09edf42484f67227bf4c7e7f786a7b6393d6de516ad32e583b73d5a46d01885934fecedc14b14f2f5168c801b24798c192b482ae3cf352e08b4f77b5b476803e49d96cf839f574e131f188040ca99c8861652b77c8ca3ae1edd2e8369d15428128a261f84b9278f9927d03bedefa0e85aff04d1e5908672070de8f9d98f9a0058f770b6386c46fe4e6a55008c7b0eb56be51a75cc9831757396c9848836202c694328f40e464c946c3808ae11684b1f0472042aaa73ff1b112d74ff69c992e517b27049d0c88867693c8b6ebd5df7f1ab5ffe8c96abae04ec298dc4b114d0047ccc1300c4f5eeafd1a15acec519ca9f0a34e5a3ab681ccc53589bc5110a413dec715ba21b066421bc8d2b24f3f6c8060bed0e6c7ae39789d7ce8eaf2768ddd5f23c111f50547b842d6e14da0699d87b0e04ce2f85e8a0cd292bdae7f070b62a917b5bea624db369940076a14f40eaff68f59729f2ba51457fb53d92c327b16adbfc3d6d41a4d4c7a84992eff297fb19ec0d1d44d5854668e2ae2ab916d235bf0c60aa0267e489bf43313cd5bdf9233e9ecab2cda9bc655d1c0a2b22b1f7d5d0c68955ac3c79add495875f8476138cb687b2d41e1c488caed94eaa2d81307232ebbcf23dac0d2b271a4a32086f647a98575b460416e5f47a28e05b15f889df29a54a5be1affb07596772429fcef8339fa8d91c59dc3f2ba2451e4e1e6c19a50233365cc3a717b1b96afee1535495aaf5777ac70dd557efb9db5e4937a364248b3fec4ab73fb85b0854b2f14ded80920808aec6aabfff623a9153fd98b4538cbc9969dc40024825d28de30584a110d7d2dbd9fc3f7d958a5d865e2456c800886f6f03a80a5cf67017ad0ce84ee50ec7b69e8596f74400fc32f20c981d782fca65f47598f250e09542a741eb4e5c2d93a145f066018e6a85da7fe1048685bc5ba3e972968cbf6a2351ce637c46ccfb83b61d425cca0f94963ad855f7a1d84b9f0616ff717e294fd47e4c0483e671c7321589272a0095a8ef9a05e5d97dc6aa9cea90e4a9d3de4ec2d4e9f5a09db1dbd755500658418dbcd7857825232ed898c9a8dd29a00b0dd44d6d96e771d7236ac9f877952afd499f49c98332d017c10898695f5fa4a9493920736921597fa67c01d72732009066161e4a2c97db5181b18fadf9d424b475e2cfaced3f5dde69343086ef4c5b6c01d7cf1a44a311c377c48299c3ba3d3aa186b2e3a28dd0dcb4b20db255a1540d363f6e743d614efb01462899437b7baa16c1ed5c840d472e4319288197088f15702e82a18e06b5a3fbc6b989ef16874972f8e10fdedd6b58fe951e01bd608fa27a83995303a237804ba55db290f4b88f7ce9a0c0e521d4ace971e69d5b6ee0962980f428aef6ae904cdcaecb7193c84b4ccce6c65e368c6c7f3c6e442ceafe5ec6e263f9deec046a7c4e9f45c6d6f4bc24b73d7223fff1845e713d930c0f873eaf4530fcf83b65538a969e8437735cb9aacf97497cb3cf034bf36a2c5be2a4c4a059eb7ffa3fad26974ea7b29441d30ba394c13cb2ae94428ec9cc5f78077af3981992dfc067326cc5974cee05e49af23e4d73cf97cb7aed7524b7612891524aa5403620b126e865a9f676ccefe11d9d90f61fb0e739c0e9a2c237e37bb469fd68ac5ce659237e6f0055f726b864e336770f52e2e31e425f177b209d7432b48b772da63b6479a8bcdc1c645c651e08a58f58c592f0132e4fcf871263bce9a628bd3bfeaa03e184e16032a8f01d55805bfc62b801cd5d39102ca921d000b7ede57316c7c36fbe351530e79e0d10ad57cb051974ab399137fee7bbd379386625d6221f8718173e487efe4c9b7ff326819c464f0dae858708ccdc664e0b9cf423db5ae6d4cfed94d5bbb7d555de9e0af6c995cc4ee602ce9b251ca8d910aeebc5ca2ce6f6c1e3899bc6b8db371015a6b8d506067bbf7ffc3ae51de2f6b712831da3ae5ab16c5d8e42817df96df4d4430d20eaea99f3a247a1247f38ddbae1b8304d559472ecc820764bc3c8c4ae6a496d37bf73935eeb0b452d0822b48d42077118e3bbb428083e05ab9e77d02792e764f46ce468487b782cf30103f39cb03e6f2c5f5cf0a2089ae0a53a1fdf9c9df0e609e20311cb145337acb38c423cf0941d19b14ab2a624d77593143973b2af2363bbac5619ccb377d7aad548f90ef4720477919212fee0fca82e0e7ade00818e856531a94c867dbde2003a704098f49d576895fbdfce2e0661b50a3a59a5e0bc66125ad279ccc615f87a01e55e4e6063c783b10328d4cbb94b555cb5b75406c78f772fb4af074221c7d79a662ca812b446ac22722bab36f30df27d02f9851eff1597e3d11318ead4bbc2906ae83beaceca8958977008f5ebe89e2a41e714ddcfec11443c54d7daea0f56e52f07752b0ab45ee24b79bcc0209ec07b8b2e381dcb40aff5f0b89579e36efaaed410fc4c27ce54e2905154c4c1694f97bcacb4e199e949268a40d664672d06218f103ef5d0f95f74acb6562ca7daf817f7762a9aab93e21bee334ab1280b7c3116a9584bfcff87017331a57a669874b1678d99e55ab3c866b2a3c56345ae018c8d276850fc47b055ae673e86dcccc67910dd0c99ab4629d51f9be4f9480f855193c46cbd677c54590c769c6ad9598c807311adb145139c7636cabb195ccb590a38a5382c56fcc826e9485155ceff2c8ae68b11b2790cb6bf4308f49a80a6a82257980a8c9df4f5474a40ced12ce4ba2c2bf8ce2fb85ac7111490b1bab43180a6f560d91759d6017913595dc1a5e8ef7fea28b1ed36d21c5f02df5dd1ee083aae1603866b688e668d8f825624517604aa7a395d0a057b7da6c232c7b280fcd0881e1afa1dae4bcab46d141749781ab841f638f8efb7acc2491ce7191631b716e9368f992e85b158895f6cdfac3f4cd701429cb015b89be9d3661a5f48497f04bd2cd1add44a64e6a20ee945276dc9e4034e62968a6998041b0ec982acd8cf0b02ad603faa81051ffd80b45ca6c4b0e0677a537141387549287ad58ec4a1567d40da171b4695ad0bb4b6d2d2963e7473cf7ad2cea52dd4414496224abed0b4791513f47ab0da68754b4a0a827cd771e3d5ad7e2e412acc5d260ff8a0968bc29e4a015a1d23376a147226a18f060a103c9c8d27c90c9db93d70652115ce2bca8707cec3af1c9f00252ad5892a57198f685776ab38fd5dd83b63b648c2e7d5b75fccacf1a2493e21ef8b91de1da19d4a379bff97a17ecd17103d5b3e0bfa349bef1f91fd55afe3c4a004ed84a19360c6790c69ff972d77aeed8998e27812e6f1fddad7628d64c0849f674c6a05e2f0c001bb8ee947d859c95516f25549b550f2bf2024122b20804f0a9b40e799a9524924e8d19342a669d33109528526873a996875d317757cb6f44ab919317318a45f5c265e2b1fe198501b9f1fe3ff5963f3996caea3c0754b678d52303777bfa0b77f26fcbdf9370b247776fead686e6ec533df087bc54eef481c0ba941746aa4be9be614c6a18b7e2a87668ab4b11d2f5103d8edfa7a52899c74c9226b5520ee042ea800e64cc566430672375f2c115bcc07e8ea895b8da8e9b1d97adcad4f6cd26a03b713c86c38effff5f45b9748c401f89a5df4a1a7cb8be193b29d5f409005dea50d96b30bad91f77f3f01b3ed21cd80c831002b1caab32eb598d9c4f0e28a739898c2e47cf2d900d75778de4b61e925a92649333c1ecfe832d546575058f63e1fe1b3d5d4d481d82fa6f726280ef06e84a991aacdd205d9452aad16c16de1e9af69e8f98634cf69be4a0b066fd700ed110407afcb7f4f415dd66652b482a8d014840df30a4db37a1bb1488d267ba1053a5e9e557e8ad6dc17c4114200ccd611456e0c7f4d24fd9e01b3ee23d17df0450271f6fc33da3a097b1f8fdab98d324ba97cd21c603f0802bb2fc837303e9fdcea34a6b9d4415255a105a80a0130f7439b0d5691a093bc556489597f116b14a7836f16a141d21c311975e13c98c0f15be1731d47b32a14abbe1eed36a517f581abae064ada1c7988811cdf762c893dcd9530bf5075b47feb6e7a61e44ba9cdb280933aabddd4261ce8d149d9bd937b7febfa9bfee47ad672966cee61c23413c38ce4832f2d3235cb5e050c71a8d6c0e04e672fbf65651acf957629e3eba86e983e41dd0cb94f2c6563aabea76a3015caa665834fa7cab698f03d1a82d6d4dff684899ec1ba54ab98aca88e5bddbccfd0d72659a669419fb57671ecd211b389fea97ba738ab4ad787175393fefcd374234d0733abdfb961a44b679ba84972d782d23c7bc14a48606ef9718558095be35857949781484590c4ae45576747c073bfc8cd85788dc16c02adc516cda4ba9f04cbfa0b894afadaee342579b45cd582646fb6ed50af547650e1ebc72d9528a033b04ddb7fb3facd88b2da828fc6876669dd7e8ce91a99bc0c95f7c554d6f4b28e4046e201c15a36b44c68641d44c2bc2b61f02b16921b4774fce62387bb3d38c41b023925a5b4b5c13c21da5bda6c2efeb45bd0bb3852e41d7d533859c3990e32d90f471310a27c28145fad6d8b751f9bca15775e0e7c9d95b464fbe5dae69e5e9c1f887aeb29fac1ad1b0e8fc866b4a49702b603a7814981c88673c5eabf017987e9ba7f19dc016f13d83953563a85cda64a19d5c0c196b1de03a83b3e1ca79c233455cb23ba6d31bca19e93f36ab7b58c993aab4f5c665a3c480a56614ab2ed52b00dbbae0fcb62f35a1fa0fa78ec4d12ec54b08280eb6bb417d44f2e25d639fc6d94765d5288ecdecdf5d4b0ce457f7ad4c73eeafe90bb46dec13ca63b569d64102b427b4f1b7134914cccd2eaeb0a1b719e25279d201a1ed376fd08e5d7b9011ed170318cb4929d9ad2e23dc01364975f17af465540dd8892879de77e3a9cbc8f3f2159b14bbb7bf33a6124936688db987c6e7b3bfdb75d2857341597941e6913d280a25ebff6a1fea5f0f44cf7daf8095ba14b430c4d8d35578386e414b2637ed26a38965d67397080dc4378bdf15010f70b5d0672522dbae82799d29eb33bbd769367756ca07d0939691fd3eb6c94bdb16dae32b1bbd4a4dc1adf3a10c988145e12db5ed1ce0162c39098069a8f97caf1fe7dd30f4d17e5f81f0edb730460780e784b2d24eba0b638c712da9f8787cef4614bcbc36cfc1399c52946037112b2ef74f649284d75c6a19443a7d713c4eb6e5ecce84cfea50e4365864fbac3106c17832747a5e7c932d0db1b3fceddef267b0ce507d3b9970b5ce7b0b587cc35473a2e7be3b2672f028421b626dda1dd86ed46f4c951a17916902a7f1c8e4466e9d94bc22ee6585588f56987be4ba5bd9063956d3989ee3826b43be930c3b1fce5f92129e4f15085191c373265ba11ed037815f84b3b641bb3e9f13ae174b152ce674dfbd588b500cd7f2abcbe07f90b4614f39624dadb6a83d1df0360a28d524c53d2d5c804b34867f1f7139d56e004efc34e8f93b2b8f171ec11029d9d66f7234fb99ae489794b03668ae9554525f736cab43d981385ba6ed1e251e7787d7b42707d4a4ef65cfaf34d87b203fc5c4db106d775516e06d4a789153b985ff65ca870826975c054b273855a6c686d3e97ee88782a16f915be44a90b3e1d97055b80e04e644a530f095cd503484acd8ab85748db934c93781e4c356d1cc5c35482388380323c4d9adc275d3d99697ca8dcab755428160447fffe3092fd913d1c15778787efa593df2387df88280305436ea75e59bfa2196b7f2d0cec038592aa9e26b31edd6941835d59639cbd96966eee3132a116c803ed0583cd06d6b8f1fccb97157fa4496026d618bf989f4a051254abc674a9f70a0368e20059489d9805af481f9e2e0f2fb9a419095424e800ced02a968bc52c34b97a585a7835ea2fb6713d359f73425403b3017e5b0d2cd087b98b4b633805744676c40ae0153fcb46bda5f031fe80d46d60a297843eeced9aa19956a4ff3de195d7fdd48c6272427c2b71f7c523cdba574ae9d149b702cfb778a626603302f52f46e2a51ff7fb0552cbdb3e11fddf14b21e4c2ea113f803a86e44a2318a9582debf30ee2cb3b38934f288af428feb0f9705d44ba2fd7f6a09ca79594a846feb7c533a8c7c0a279e2307bbad3a1c92b96f6c066a833a1ae3d22fa5804a33ca7754a15d848665e4c74be241cf2d51e323acbc6e7d89112bfdca95982384d3105aa04a5badeba44e8e247b9599ba1a042340c6515f36ea0118a60db14a1beb3686dc389b3caadf24a9201bb02b6f713407a5b0cee9c258276baa0fcbeca6002de451a890520a336c60c83f2dd4d5d0e04205df45b9ec6439f1861032ad37521acf3df1b26c2f54a014a4957fed76bf428733b78ddce9228e93ec2eea4268f41307daf123f0d6fe0f68d33885c105148a54d22832c28815d211a85f70c6116764f4b674a905ad2f8b9f406d4f6c64e48120ac30cb758bcfbac4c90a015c6c6bbf854ac70a35653910bcfe9d1b9f03addb745d3a5faf823dbbeac6d5752672e4f71ed64d8832b1a1d0babea89b3d6fdd8b7458c141517c73485e3caa4a3b8315365c63b5e6cd5c5cf8b43772d534c1585f2652b011c2471157946faece90589c7f61b205d9d94e2b7d897e55fb76b15817e7170b20d6f1aa0393f73c01ff73fcf44cec5b24c5378a9f11ced0e4d7520f1cd2521da6c4171209df94ebc3d123447256122d4e1027ff88a502adb401672fcda6a8671d96158ede19acbfa89f49cac0a78f2f1ef6763035af59c108587d79bf5fbeea53839671b29f8ca1335cf7e535069342da088858d78e7272f6ead32b80c562ad53d1768ffa49d52ad668d35ed66f1abdb7df5bae9e8c61503289ef8988cc10d9a661bd98025fb0d9c1becf25e9be35fdcd670caf484ad904d85bbb2a22c37f2e8bb176d3cecb5ca9377b637e871f31afc210df2dfe1c429fdebda7f6546b0353cea5a8b76f272fb676c4b5d99cf56ec691db763cbf2d754f65fcc8ffb8f2cb8d082afcddd0ae834dcd88b0f1a6c0ea83b9744c03074ebe96beeefa9b7535860f27706831d89a5b2048152cdbf45176402128da41d6a7fa5c7fb6ea6237f47965826332e4059d5d23682a16af411a5fd6eb7c51a3e3b5ba722361df34e232bc7927dd705e2b01f958924c38fece3ca91064b5623b732adf34d2efb136d4040e484191f7333c40023e62bb636ae83a403e70ea134d172d5f26ad9d21bc4f677e3f35e3097cb281e44a80a602f672f287a9bccc3b572a26bf0137d6c35eb76823c22ed4ac24ad095e8ce97299e13c145e200742c836adfed9d14c8681d594bf76c7cf662fdccc4d3a1bc2add7b7472dd693a02f86e8abf0e8db219e3a742d54e765552a9802c113724883ed71056b96503b6a276bc916ac7b885399d37c916425cb359d83c147fb1ccdcfedc7f26f6cce7403cdca4e7162afae0019c477924efaa2be14d52e21499176b60363adcee40102cdc18d425737094cabecae518d8d1eccfe1f29a5a7d1527e9a6fb892c500bbe80b110ec72c6e8a984437132c69e39342aa3b11d29c3ee41a37ae00812af9ff2448aef01add133c2a5f806e4657c66954978c39b340a06519cef2825a3c44cf5cf04201b64bbbc4bc16433c4619ee0aade616f06c1306c653e20dfa638debfd12ee782b6a4907313a0f19a31b717ef106827eb056282dd2e9b3dd221e4bbaed6984edf4592249ad008f06c9c55a04be76eb9f072bde664823c37628336578917f4a828aad158e299181c860acd715255d3ee41dd1d360cdc845c9d8a564c0aeb69aa23c0c318346a2b2461954c9bf60329efc406d59dcada9f99bf4b67dfd96c0bb127d28f9130a454f4fcebf066b49e23dc1b666e3e55be0232b5ac3ed83cfb85483620fe70ef8a67c856cd62aa9457138c9aa7b16d11ee7c1addeb6baef5bae7bf6661223582c48f461492c51c15647167452875462b75d854e9158ebf13107403b03cd6d680e0792480a1f50b737d7cbb147a4070be7f0aef6590fa896929882c6fce035942cc0b190afa160b675fe51310e5be4812e1f3872192b325c8748f79a527c0066b5ead1c11ae7374d94c8b6df5e401d9258eb17b6ca7ae75eb2308a0cccc356a29cc203add62aad87889485408a493402b237d19e62f6bcb37ae97aa4c375f46d234eb7154d12cb564dfce3d558a59801d5c1d8559ddd8f606502fd51252911d8b154d7224470e0c501b94b32daa46cf4e9ce625fe398efc478840198500d60e5ad4ca25d12622b7988fce1de250dee2a86a4bc5491f4feca19a015c129516144139455a56656a90d18e8141c67b86d55beefcbe643ee3911f0cc270eb5816eb01efa102d10cd6c926f399c35d5daa94e3789be43a9a3cfaa6294f6105083d33c70704d5f2b94f0ed59b1a4326dcac009ffaf6f6150bee06258168ae6154318a36759447d91e1c46a5e658dcd414ab28af89dfd6a8bcf1896267447abd6243b15e92da2d3f808818003a492705d30e4c78e085cf74acbfa3ed7224cf3449a7058c98a478e63ae984b580db02481cf18be9dc6b9c7c30b45d5ffcf9731b967fd54c2980da8538e82c06a567bf38a54c76a301e50c4b6fc6ba8aa61a0149cbb75bd6c9c2527c7d232ad51b2a7abf5800d530f326676de58eb8cfd204275adbae6c8a5f22e10a9d1b892a55d0bbefd6a16ac8fee9eca3e09dfae1283459f5b0b11d95b8dde3da4372c3574e15ac02ef1f87798f99233506221ad012064ff5a645f1780475e225ac78d320036e6cc42b359e38b914c202ceded3fd3fae0c780d4352e757f2c6e92b0ebb45f4c56b6c44aa49fcb1fe653902738e10243b6635aabf677229c2c732a3ce97a9a74bc540aa6861fe529f72b643eff28276aa2e2c36c98b7cd71b84aa10919e1d254dfc94fe5c13409a53bb8985bc91b1b10d85a9deefee4820fa144afe3598877b24a7ac972925a32b8edb4a8ed2cdb794bef1e9c1a03238a8a3144310c6b9b43b34dbca00a9c945cb675e547c3e8861a3a345187550040b78c3def17be0f1aaf8f36b3f7840b451e4bf17593cf945cba4846d3a8375037c7c118bf1887905b4cd0c4f937002541a05ed5032130eca07226fabb0e7527ca1048b643815e915afd785b70d11a160395ffdaa3719115e47ed2ae8479192c14e433bdf7915496a6eb600baabb33023544887d8ebb9e5428a98be0e84e6af2e1cd3934ee90b24960811068c4c67ba2457bc09914b33d503ddfa03a4b33f321dd43055dede9373570d0f62b0446f9e2c41d7dc5f961af5a57aae4c0c9268b756c2380790cedaeec57fde90a2c2c0c6b8095cb230fbd7ddedf5931631ba23cecdcab1013f7721a9ad502f3bd36f87a959ca31a6bb2c24b135b84cd078efa3a0a73bc304ed2d3d002fd5b8c20781a11b9c15e1de328491708db9c0ad424f116fe0057a61d9af1adbfd5eb1de6ef921f36a5118bed30202a41f539b8c58d10bda146745b224f43338daac5848fc3bce7912fe2ba13d352e501472cce8081a20fd39167a23030c1c0c1c636d77dd26a2af4f0e8e31b0b5223d6c3e05e1da8455594eb4d04bbf3ef96f6c1db66e19dd4c5d15d85b4593ccbd8c8e7e3e4b0e7ba38f4d99e3940f35042006f47c98ad12aff6f0b0d24fea7832a1829d33d9599d76ebf014b33380350a4a17800cb3b927614d39fcd36195fc8853103fe14c99042fbd06e225b1f329efab1e8438cd8c9f2d13714c66ba81e21d7a40ba0dbd5de1a3846ada80027c6425025e5ed452a588912c873c33e72b571fbff7a7bde9910e9bebe7f0f2310ee039c6bb543929f63a41d3ded00a75159612c7a5f0bca0a4bf529092150997d207473dae9ac4db026aa28849835d3010214da742691a32eb4efa9f5cf03b9f13e680d609ab58d8a4e84fd85c98c1f580707cac141daaf42d553741f64c5e260dfaabd9cc30d8bb8ba498eacdff7112fccd1f71f8d683da909fa2ce3faa305f1edaa2654243aeaeca4ffee6bccccb34dd140a44255a80154a4d47e1d89ed04b2036d0be162b47d104e7b9261a46d0ecbc26e3dea7ffc0cbd85a272b96ab43c6e2c3baed363f95b80ac332378faaa8bce5fba86c0d1b26dcad24b721e8a3f018121e73ad95a98cfafa2c89ac95061cb92a5a26e0f89ddab278f75f787c0b242707a426aa2f0da5ca377c10c4a5e61bbac166829a9cefc62d8a98fd6aa4a78f2544f78f0fe9175da6c39dcdd6a642351b037ab46152d21991ffcc5fd8490ac5e29fc982671e04b711d784fc9b0bbb230c31d607a7cb7ec88ba74acc2c7d0bbf9f614d63c802efb663c16c8b3b44233d71a8249b1d94d1084cd3297c1ce6fd5778cfbead5325b2e4a266049d30706002541de7e3a0e084d5a385e31b2ea1e9cf5bf12c6c04b89fce71ec9308fc79d694e3c45c286be4f56f3db2234a1554404b958addc2cd711a860b68edd6a606f939058fb5039c26e2d8df7e3b1edd824c52e48b666509268320509f81c814e318db74d1cfe70e92de57c3b8cb9fe26f15512580dd1f366b5f35e12e42ce26d9318975062795813907f7f5ef534b9f1090188ab54b4d06ebed634ea71290ad1650f411810ca50a0a8c08d0eaae9043e1bc5b6225ec61be3596ca51736ae82b901ff3ec38bd04e0e54b9d7863295521a1c132745c9661e332c3901c99716669095bffa10f6a706de1a40d7a41cc72e6412599e4e51f653989c05fb3a852cbd4ad1bb7b531d2feba9cfd7366c1a733a79313f1affa6b1c129824e25a69b48eb6627d5e1675a19523f3502e8c3c69d9b877f57db2775748ebdb294b14184e5a333da7582cd75e715b7b3261ba8249195ca4b9e6405cad3d5dd81bd02949518e1ec60ab17a7c59a0c691577415f86d9b3743e1b85053d66659e1a429cbbef4bb9cf59796cfd3ac881fe7ad91fbe82a7ca2f4c2e2300904c0b85d5b14bac6c32a9610b7d904bf265f6dcd6d28f9c531ccbe017e3ad24f2f5e1a5d66d206f17554f9d1147150e394b24abd636bcd399a1164c7c6f79f535ee3119b72a7dc31fb68cd89b0f82483c0df7bcde1d37e4be1c2d9a30c35e8624e0ba6497a5d5ec018c8141c272ba2832a9ad51667997ffe6dcd61f17875d409cb221f3d13c292446b8c7f09e96e957f6b6c733e103ee222e71293d7ed1af284b28b255310256126e3fdedebe4450a0af62f3ea051039e47aae683fd7aec4acce53a302f44dd9d0fd81bc31033dc6a82db93c2d35072e3000091c466b5990db9283a43a61cc226f3a018071b7a80301c1e9d578570d380f43dd02905ff2fc6074529fe739fb20f2b36db59d7172424fc0c2395dd46b7565ee35367c911a4263999b7fa120a0ddf7fc37eb5ab94dd2e8d21511af14372dcfee0407a3c114e5f939a2b7bd2f73ada2a38d1004d8b66ba6ed726a4f2c298b4a5a9afe3ebfc6b07c6b7de68837a206225d3d471a4f99da19e02f873211e8751ca5c2bb3329d9b95f277bda25603ad5f576240c00ee304b1c039ec05aea2dda9e458376129eb60681ba8cb9bc65253c0766bff275f4741b7a5047f170feffefc77c7c779c683a55e3be79d49a6e78602aabdb03b50b59e2574a100fe805b8fa70141c3167aed340088e7dc62af8e3fd23ffb24874c2a8a40145d134da989fe073e7b882ace563e36a049c7ed29c57cb50d83e401b98416e0c1ad2fcd981df7727510669ad5fbd893a90cae1e879abdc847c1a8512b8978c0e57821c2a5eff037c3d22329748f782e9e2c7886099e898be357e1dc355e8b62982f8781d8bb9eb588ca7631c9dc7c064d2e1e91d42ee7bcd7be30adb36d4e7c70b75659e4707e7e7ef38d304754a3ffce062d54fd35e647cbf4ed21becd61f97e6755c6e6c54d8d15088820425f9269720248ad76eb15400599a172b6ae8b8b9abb9ffa66ab90891a2ffba2fe2350185f0da4b0f2c70beeaf4f8c010dcf36cb5cc225b44f810d1ccd2b70fb8bdbca0c75068b67132fe0ebc0a1207eb0a0f1e772b42a63ddb85053ddc4e3d9f2f950ad2793d9de84aeb25118a283d74e9fede82396c5a0baae2818017344f58230168e57418285dae722f2a88111ffd151817d2e3e62f5c41627b2130cf87549c1b4c96ca20adb495cd4a6bbe4d87ac294a75d609f41ef3348255cf10b5930fab1a7e933710b6e9c5af3ac9f3b1bc879167c3a89bcf6881c16bde8805031afd52bcd5e3fc2b32af340aa115a99d08d4e61c33eab40e7df8aa5ce769d9a430e56bded89cfb443f9341dac2e2683229f246b631f8b4fd23aacdffb35d2e9c2a4ac412d54831891ac4278ac36d9fbefcd0a65e5bb01c54460c3b32c3b1ad5d87f5ae99a57530287404ac1e6d17a9e4a8dd070f74eb1c3223de1590b65165721ad6d3ea4979959a268d35f95caa4f3fa63bdf5eb2e002624db9b2c88506b202d552d069ec927fc736e5fec7ac97b4dfa2ed488381e7b1e55a73d7d565d396701a63e91422dae362160b6705c22535ef7334cc0f82b0117950827fb6bc2e056968d8c622cf5f4f4e68e3bda82b04d6ed5032ad569245ba817465ce484b283b759447c145a3faa3b8e5de3f93bc38d8c2a2d22a96c912056e3bd793a9e90f820aaa7380bb29dc633fb5ea486561ac658c2be2fa2094b0c95556b88a47e341e115d641ed27c2eca4da3c47d98aaf23d0a199a88d0e99722849cbd6c7b2a3fc4893cf192f9e44454c9101d6dfb90229a29e495d9fedbdd4aab3cbee9bb6e7f996e8259d0e979a1d73b5f62ed8a6346fd0a8870f49f4fe23e048c87723e5966d2b761d76f66b13a6d87c258d97f07fd5076a1925908de9af18c390b44a2bd8b79b27d3ebd6d63950711fe3ccb3b6034ca137da14705c08dcfa4c22881ceb2429cf36f361db64bad88ebedc253a6d685fa229fe13aae54c27a80f9134bc9133ec5574445104b896d7c1bfe63a2a1d7a200bb3c6906419c41e411880b10eaff447764fca99cb222b9790db0fd787555d1a952c122f1f3be26e5dc6a5f8a1959f799a50b0729937e036cd71ac08450447896974b9f80ec843fb9526dc729e749a20a2ddadc1109e87847e3666c76291dbcb3ab2db9dbf4dd3cfd78b709e1b8ba24c32e47d483ba12b7e92f52e3735a5e2b9cb86e06ef1c5a7312d33ef1913fd9e348d021d9643f8e15296bae03bd4a087bb168481bbd2fb12b0abf4e9491a79ccf55a6ad0456a2557e54c6e0d89d5b2053013eaa9c84c83e837ab907ebfeb13977ed072458189744d6a58c631908172e2b47efb722a6de7ddcde45ddb5e500aa2d50523247de819bf5683143f56d4fc1369deb45eb73d291df658b16b46765303e7e75791254927c30d9c1a234b879e861aee55f5c5560c10a4f104f2a66eccd303da50cf26804726ff76437a6710bba5d7bcfc456e862f5d23960f8b865bbc81ed1d6f40f2310e7d7dad9cadd8110d0bc040065580af83d5408d4d382a68c2d17dcc7af520831ac043eb3b942117dc61f6c54eb6ef36f4a92372479a3aabe4b9315a7abf7e53475ce4a65776e70f9bd715efe2efacc68f348cfe8d5f5a47834fbcb1bd0fd00f15aa4e61807db1c07dc34d959bf3e6e9cb24c4baca72a8a5a403a6255f35ff9935874019e85e13c67cade9c945fc82831257b20c1022fbe8c8a633b00641fea49ce23a9c49d082d9c3645de29869cced18d3bbf9bcee297c87166c679611e904f0198e3da12a3f838501a0935dd3c5c6c528f350d471f352019d39b61a0ca81a0984e910b39bed7724d79a566c479f0397db2d25c7c0d59e1e8aedfb1c997c1232086dae07b600c12e682b2f6cd14fc9d3c4c6ee9d1cc4eec095959ddfa49359989f6e83ad717b970d90908483f33d37d612f35ad7d690a3dec7ef30d4110cc91a719f0a15dd88aaf674f911094a00aede4aa1db90d230232c4209682256f5d6bb203c6f8b42a50a9d5cf72c2fbe04a6e5d6a657fdf027a5107a68c371efb8aa0c6cb8e3b95aad777eb1e6da2d61383938ae6ba8ea8c23bebf201ea7818e32ebc64843c244dd5af8d78d40e703da6a57bcf65f431ef02f5f903e89cbaf54a21e7efc3e5443f28a281cb8887c47ad55887b18c76428fd1b5147d10261608765e5630bd3466608f03aa3be12d558b0145a15a7eac5d39804916e78c221a9ac1d7d6d3e770beb923348fa1ac0a17a4cfeaa1198d3398efca635d8d2c1c2c686f7953e838e5e3e939e80dd90ffbd8aa1c2baadf7a9cbb8a4edc2dfef0519923402f7962eba433a0c014bb45c23b4ab8bfeacac249e415364f72c88c926a97efddf18b9bd8f0c325ef98bc495a6f8b9e1c7cf37d9c06e4f1ced243cf1443e2e4162717ce60bfdfd143ffd2d0a971585d86b8ebeea64b6b0ff4da0e226b4b5890e7de629ce3287792d2efc1c52a8a91ac71f31197ae33e7b9bf5049252d23f37455b77e88c8bae669e32d9e9b7bcf6a767731b01f1b228c69148ccd395b68be821971427b17f3f5ece03ac9c6ebcdd05a274dffce162a016f0ccada0733eafaa61a7fdb40a166f3c596f88b4018c3a12aaaf35914bf9edd6fa024cdfa13b2703ab81a5e09b8536331c0e452059800336c34a3b402e548e9e19d6835c073940e8fe4a657e877a3cb81e6c78797b8473adc48152bcf5d641890ed43f0cce23b5a6b0f6c8f579f9bc69c8ff1e57a4a309be8cabe5654e3c67e1c2a8691d720e0df86e0f6f9b1f7c2ab7cbc5befb97decc832e14f2d9184d2bf78866d955b411bc50cc2a362b64dbaccacb74fda60cefb6412a85d5926a615d36c043a4f17e08ede1e3b21760bfa0b7ad13366e8ff009f8312b49f5ada92ba4f13fb80798e654b2c511af3a7b8f933c21ebafc982e2f1f8770646b3e189c28d35eedfaa1875b2b6d2d7040e4a8966223de687a9203e439d39f05576c6dca788190b0c5678ed1948daf59761e2ca0bb36ee01fe6e9d4844b2c6c32ed60c1ea010c1e254a872d15212c79a8994783314b23f494fd29d60d7a53f6da5d54a5f71495bb18a44c5e37844db08e10d251471fb59b32d50a85617051a056b25217fd86ba0efb21c5fa482cf42c53274ae94c7efd36356b3e6d8e73a972593aeb187f16d217d5a3fdc6621b7ca47dee3f30ec36cdc7bdb2686859f2eb0327556bb1cdd9f48fc3c0c19eb690633398db8b8ec90a3b5b8a69c38670c628d5c7094258c74d8d0d8c239bb21545eb21d252a2740f5383562418db181db170d723d5a786e3ff1479ec940a800bf956fcf53c54aec29bd44893bd62b6eb5654483b8c465d74c02939eb0af8b676af107c9406a925d4a146096cc0de207a26df7534c1e3c16d2806ae8e34a541499160a402d8353d24dfe1b28871b9828851a229e69f77306b11dd88d5faeb6a74cbf7e0f0dd44533d20b9a413a471175c6a37224b47c25f04703bd3ae558a8b94d635a72629b057c39f317c95938983976cccc94cfbd90f82cdc4c1bdea6e5fd717d0c8ee6bb91b3db67615688917956814ac43af64a9622b7de8e1223486b78d2d0f4ccc84dd0744f4b57511ced853cc6022782c36a3ddf76f3dd40252900c2e315e6088f4508070b4f7160ba0091f91ccf7149dc2c2f2e00ef69da309da85ca2c3ac85e0d56606e0e237275f97f654a45357045fc93b4ea8c1b64dc4d43018453d82bbc5d07a9c139bc75472e213fce5003fae4510d2fd18721cba3550a786278998f12694b848150f5302bd5bc6bea3c0c38c23278a4bdbb146b6200cdf80ded994a893fcf8381690a1615d13f7db5ff332c2e8769ff63bddb466569af0baa89e0dd59c70f63103fd89bb11ce0e5ef2540fb095766d5f2b4239e44937b668ad8411ea4b56d207a3677bbe74c97887bd16902908f3f707fb9b7df232314ef2bacea0b3802b92a6db34f61c0555254f53fe20764c8f63a41acc7c0661a39db877ad2e0140099caa5fe0127c12b00ded9d9fdd231c7c7cbb36fa059d789dc9e936ce25203d913c894692f7b1e9c5a676ddd91aaa74d02fd75a703be1944bbe65e32a61262824244951436454da72708b0c97dfdb6f800e45f9b918a38799aab2b241b20c8bc6e6cadd422997eff569117e6d642ac8aad066fac6e59db1188101923f5d993f497ca1ca8fad7a76149901c62b9ab7b2d8cf923516c40e2da579427f549c1ac821c17acd9b684aab3d88443f87a238f9d68884f534269b44648f49405d19f114def617febe6a6b28aec39ec01d53a87d021f5d6a335587703b01032a4a77ea80463ed697d7d37af02b5bad52bbb8c9913dd8332b08eb3c54ccd2b7e92ec96b0e1021c7335059bc2d7565f2f85c907acc469f36293f592176574a6282b3196c2f780d59fd0cc5d800e57bf1dfb9cdd546d5815ab6ba62bcaba47312f0b2e33ea242d08fa38e76ecf822395c823415266bb1319c81bf9d2e74359d622330972e2d5920cd08f0dce50eebc14e97f544a8bffc84d0aafef6f7ba92dafb466e1ae742bc1329f341fe333e1d389cdb9ae81d57fef50450d32d0ebd7c832a81e545b0d98aa75a3f2ef5c4144d462b0854c42fd1142270367355430a21b182a3016578ffa63b3058ba6e54d4fa9a6287804da014e24cf2706457fcdc3fc5947a14b9aef4e31498f4762c0aff7864a5bbe0304e2d60db2526246d374257e0b1afa9f8edd7b9da385e6984686942d9dfe835ca06f851d8ffd78ca7e2cb7f6bc06e76c8762c32189ac280e08a2b2eb32313bcae28866d7200cf346982c7a391204273487ac51fbfdc50783db40b80ae546441231663b17af38aafeb27331fc0a0d64a8734e0bba303269dac2d3c4d0ce5eabea4772591e6405b57b8b7eaa32c82992c0ad77671fccb490dd474860e12a2c33e5e4ef60851cd80062f80c7724c8d623e4a4316f7e7153eab6eba3d828990008cb5d6f732796a7bf10520ac975b369c5c3495c0d6e3dce22fc8b092313ed9dea0bf3ab6acc1d764a6c1bcb6dbd8d19b94a77da62a55c0b07a43aa220682c51d08c7140cf6ad527b0f3f89138e06d91bc9f96cc1a4041c8c7ed507dc5daacb886ecbc124f668b73d392e9c29196d3e0a3d738d98ee9db0b2ef88f791f490ab0672ff8386fe4131bb8692161c9757d21c55d08dba0d30dc8525f982d9cb109bbf5348754ef7297bf8f0429ad93d54b7ddbcc23bb6c0b1623379daed09f38c822c93c24908db37b08ce86b103488b6e621406dee9bb778c67ec870647ab2694921a03be2cb4b24acd7720bc0ba7616c51b16eac05122c1302daa15fa5626903224c2b5ae8ad6d0fb732677b45020cdc67b0fc69c444e2dead54fb7f7a6c6ee48a40be8e0b66cbb5dc6bcd573b90f7c245115801440f43f631907587a5eb3f4dbe0afbd6eaeb78cd2cc08a3059698859f9caa0e0e7766e0cc80ca8c6195dc170c945ad4e4932c8e3d8f452e498c638f56c7ae583d0706dc408858fe8d3d485167b238ff087f322e95d3d81c9c92ee05aa6f73bc6e8146637a95d5eb6ff2c79e95d139c54c2f407ea3f7d8e3d099a398303e5489a1400d891edd13a5e5bb6a801508b2e00faa91b55612df4f750f75b9bbb46384f29969c694783a116aded77c0858ecbfb26ef9ada1bef00069f2a4206c296c66562f7a766f2eab299312899b0ff76d05792a5c64ec3197e9c3737848d65f785b24efd25964afb47ce0bd8bea3705a3083c16997b14808bd20c5e1ff036725384708ade15d549d5a9d9060afaf6846d53ed67fcbafd2ebad7bfbc039bb7fcf376366c85afe75510e77cde5d6037a69724e981dc8ab27bc2e8247e0b11c3bc92b9537bdb162fdc1e80fd58d93675b67aee18caad7914f37f47760913dc6916414b5231b598e3381252d2efc098ea4744d9e552acba1c409f0d57030dccd631301a03d0cb6babbd554d14872d28cc61233dfbbf35a2ac51b9a499bac074d3a27d8de8bf8726f393daf72c50ad8b95cb4f2bd910112cee39f24e56f715aa5ccc46fc70619f45d6619febd4e383ea65c54de4363b2d764469a39d51263a0a4772f83301db77a89773b355622d5b726cbf085f35bfd242cc262bf9b21ab074f32a4cf4cead9c14aa6b4b78670110d464e25fc7619fdf766c68951e0be0888a13a329718b1bb2b048bb7b28a17906c6237b87fb8766689c766c749aaa5699337ee5add6dda6fd8a9f65b35035701b7f339b320d55250463d7b6e95348947d1b1419efbdad38ff1084cf1f6e41b4d93f8080d0c4c9911c1cd7539200f842a030b466afb73db49c97bd9db812b9d112c51496491a7db2d63e6a82c3ab7078492640f915ca150411d8dde3d06394865cd7e61f90bdaebf8be211284735a3bfedf4b049b1eebde9266ea925b1994e3f3dbeb3e30892292455474cb091d2a04e93553b297a8f481a475910edeb84b43403c7ec60482ef6c7e14f95393d89d1a22849843b4b0ead71887db6f6d40403055bc3b369e15bdd0ea600f73170b57afd1491e5d24440f24640240c37c18e55e2bb87e72e0a9aba347b052ac5b787957a2036c260e1ed282b8878f6397cae64b0a86d4011ad9b9ef1ed2b46bec881f5bb0e02ebeb1252369dcd0a089fad7f94ab96d27cc912c6c18fcfe402bf8bfcbe62ec05133f9ea06e7cc74e49b4bf34537303969db9b3b546dd17c787eed3a32dd11c1254c10c7aff431c1c91713693c791e59f3279e6b7cca3c90ecd8121f6aaeeaa3fc32afa7b2a599b316d564c75cfda2b56b7ee114fd28f56168cbfdbc834e83c69158737ae4ff62aac9aec18484e3c7128ff87c1b4e7b1f2e3bf6180c2132750ad53383914c87c73910ef17a8dcbd96306b2637a4fb1036399b57660dee1f70ff09feb89229037e0498e657e5a618d9fe5d87d783fba9a1504ad23a5ece09b2e5909b28840c2d8c420d80cfdd8fa27e53f7a318bd81673bd1109eb8010a1bea5d170af8c4be13b56c65b13c6c6e20aa99146a1201fd7fb3e531058a442f789288a7d11a513f336accf82e6aff4a1f4ecdb54d92f5049cf757f3d3247cc43d25e75a14090de6a843133897c95c92d1b3a23efbb19590c413ff01f9a59d00815b6ca2d7d31e3e30fbecee58e66be66ed59f26e0bc95cf2ab4023ccb1bac0d043b284775ac0d0ab2f17e1428920e1e6151dd529235231b3a9133cdcb2a4e464952de20bca29451d95b88f062fbc53209919dd6d3113e16e9edd800094d8d753d7e3e8f4a89e57cafd97616b39dacacb28ca1f8e04de2c0042dbd91fa0750ac8f9fadc0d01180e77ef0cc328703f10a706e235ffbc04041f11145508a1d340aecff7c96770ade7e3082585abfefe828310fabc83f63a1053d03ca7af7f28102c3db3ffbd68f65268b1745ade078891a4cff4d4683a1d2ab68acba5037c3c67664e7191fa3853355d31e35c82baa9446ea598a3d2ccd8e186b662c84a5ef20398f030d5ca12e767577d0886176807b5636fe8d21827def88a6904af1444f3f97747a8e8437e4036323e723955606490753cb40e33b1c0e541c7f19cbaea5f2ff0d8262897ed29e2e9df8cb83293a597a0edb488358c6653e712b6f56f9903e32309c4b8d662e01f46b1fcab7f3b6520dcdb4676dd7f73a0450fa0c4e20c2722c6a0d5ffc959fa97545eeaa00c147b9558dd80902d5d6a605896d7386c06cc52c057a729d2679d66b34f258563d9e9f30d44f6931a6858d8be925022d160cca8289ed1a4de433d9cabb80530101a394c9aafebc2479afe83fec4177992cc11b3881d5ba5712803bf1b5ea7d77897604570cc2760d3d0549195fed8d6cd95ddcf73ac05a1b4c1284632606d9846b91098555ad2373337f363ddbc09f9ad15e2b36daec4d49c19061ff890bef25dd551933114051421816611bd4dd6426bb1c1e4201a60bd1f344e29ab21914a674e2a982b53cb4897c5b3e42be8ca38dc88613fe59fb4a0774dfabbe8b0ab68e7ca399b19874e29dd0c59dc836235069636607396aad60378ecaf1ba80379f7e706fea73eded68fa3e3e72ba47067f99c43eb84ba349b31f23a020805f3ea083002c45959b618573185efb7e3935403a530204af8abaeba2956cb31da58308f0c8d1e6302b100e39f6e4c9cd326823be23620f0dd5c6ff15889febc2b05f1e5a875190b5b85d198276d1ba8d12ee35b69220075f720366d45a4c0c061065a44f7d746a90be9ef607c797ede6add044120e8c72e35499588e4df47cb52ce834e2952322c922a2a263af219f38debe36e3ed9c742a2fe5ae30f03015c1efea287b81fbc96e056a25c6107b1d48d38de8a5d96a32d6b93d1e049b9bb6ad7e203d6fe5c5c7b4b04c377e368901ef45677de1924953d347ecd26924d2cdbfeec07085ff55487c81cd0723f8a86a523f111d842c39418c0f995214a3be50eceac3b4dfdfd66f57c41b6472e0d01eeca2f538b9b6e4434e6829a8029470752511d23b9077fb6189ca1b4795f2587b4268ca02c2b20b85ed9ae34b542124b6c524889c48eed25d6955e5e8e4507316614b80b961d407634be136b781759b315138df7cbedd7982795d7398df2b3eca7f4850bc733df55ab913dc745bd502b7ad713788dc3863b9b4e76f58404b458ce5dfa9361c49e32895fe9d5d911d490ba4038eeae7a9423d11ed7c204a293bd649ef17a2a4c68c8ebc800d6b9ff522e6c77f41e3762bd5b017966eaa3863137a80f039a8c8e566bc1da0f70abd2b574162697fa14566ab373a5cd12791f336f0e388cc9154672ba4d342f0d3a9ca6d9b7434ed895f7b77806d0c808a3b72f62bbbd0da4f86424dea87d9c8936a8f21a3eae501bed75fc99aa66400dc4b464890b2944fc8be57f5d3d2e7b8c3201f6cb1095b028b6e60d8ae6c7bfd07fe3046b0c77a613c72ac5174ca377c3050543fe86b320ac6c2ecba85341a34cfed37403007c34eacbf0c0796886469e4909f80a6c5b36e9ed78a9df1e5e979b6e4606b2df15bf735acde898fa833aebdf0f75fe844ff23dff4148988a8543cc80a70454d22e141a58405778bc516ae3698b63ec016e9a0acaed4d316ce9396aea9c2401b98fb8b65054095e3e0521cacf33427e0c2b2eea5af10e9cadc48622e4a1a86ca682191af1ceffc864ba9240bbeae66243dbff851e8bc1dbcce9787aacb3cc46604560498cf1254be5890fd41db0a8e135ce3c566c0b40b559a17d08020e4b1ae14b51d798c91f44cecf2e1aa7a623b8e7386e50fbac9bfc7bd82900acf70b0ad952e11f2f11623cfec1ace35128c99552f03cdc67fd01946b9fca2bf49e528328426ab98e9f356aa756f4abd6eaadfce2f30166b0d5b65df7f7169f2506f97067dfa921996988bcd37a8f703634480bf8c7ed8dbbe2241900f4dc8711008dbc6050f4875412aea1dd98f788321f10b76aa0d041d0bd4661fc23c4828e3c60f2926d44996b0b72a2f46e80ecd3ef334cfe5acd061a95eac874557fc3f464ddadaee4135eab451dd49b355791e477d29af24981572a64925f87a10731a148b40b1c2b258d867151162c16d034738b6d1677ce6a4275bcf2bf66cbba4f7519afbf7740a93194cfdb0b50f17bea5485865031c39863d11d5227d6ee767456b842940d416b260c91e1bf8875c0449edb96a3b9b6ecebfcde4afbb17e0d45ad112c0a60c8ebb24fc807f3a885ecc62cc4d6971bf679a715a6b1916593a7fbe889ac86a723968a5ee9781e56ef02961de983875867cbdb2171a2047389f53bf67937ff4e5479895fdae9549071b50a542d9a4ce5331a66872ef65af1ef438acebba25971e22ecd1c94004c23134adcf880304e2b43bfb894e5a25309c7cf9de8462cc8657fd9338352be0234c96419f5c5eb1705856936f86ec8b0780ef4d8c2dce640307865de2755cfabbb6def087ac439c2450ce3f047bd6bf510a40a2b5cc55fd00cf8740ebd2fe2bc03069a5a7a2f46d62ef96e007ab5222736721a81bc9b8fefe81aa29ba0aa68462c59adc32bb9db04fb330a806b97324b64eeacb36c2a6835e7cf00474e336401a9d629428937a3fb57f718ba5cf6e204a8e76491f75791b4de8b0a67e9dc1fd3c3cc6cc5d4d872e0e42a4b38714107f124a5303f6f232716dacb5dc1b8f0f9e013efd5e80d689f7eb48dc13831dc00198c5431a8eab08a0a9867fbeaa30e9fb00c2d27c27da181fed3b0bd8109c7bb1dabc8b120006698f90cb4eb32b9dd583b6fd898822f97a113bbc166acc9d76789de87c6b04f16d5f3db7575eeae4c524dd41bdcce71253aeadd246dc62582f00c972a71b4f73f64c6e0a350f95562f30328c1853f577706c11fe096993530754cdb0961a01f58d9bbaaf97e5f2b9eb6c029489b70389b8b0859d57efff52a4444c53dabc36e273604fc59b471cce81970ec4c3c642f275015d7cc1067c6121a3e01ec13d09236a8f64d0179f87b148d96583ea2c19bedb3eeda4f8c18ebe7a7c451e6c2cbbd4ad75f46886fd59fed7f2fa964f0a69fc15988175318d40da3a1010c997dd022f2d6d746b6682540dbf10ced378e59a34b55c036b1311eb85dd7789a49c0a57d200dabe1232fe18e0f25108a06061ed1ed8ed054757eecdb0a1b21f9a450d488db9f395dad340e5a485746b6eba1e599b80f7e81f5cf6c4cbff4713b9e234b87f73bd133b58bcb9b1fa2aefe15414d2d6f273543bd5d4f428a671b069db00ebde346ed9436d6eaebeb6430c05d1f9e069c9e6d12488354d9dd48c312fc0bb5f486cd79e2a714500831da13b02b891e5db56626da8b8add9287ec51aed762a2fa2bc22d32ad7e0653a0ba2057afb505b2517a047c534de7d038270e3c2cb2121e7e5b51d19acfd354a90f618f6541d3496cdfa44c69b7245b9fe906b144d3feb795a64dbcc7b016349a976808ef02a0a8b9fdfd949173e6e10df60e167937d49d149e3226b02be841505debc736343b1b0cbb4010554d1c70b472dd093dedc7ae5258f9f6e74dcb6e786560a2e8298c30c80f86719b1104fe685abc3d7ec8464b9a1ea846dd68b1d05f9367c53713be3b6905bada15f808e1ff0d8cf552c8a5d8747fa6e56a97bc225427ac2ff57b30d31551a16679dfed573488c98df813bf3f07ae7fd63a73f54294780735f68a045344fc8aa089e69b0021f6b2f12129996e7ec009cff8231cb2d0ccb9ffca36645a6fcd3b09f32bd65e48b69c2496158fd48b9f68bb5432d8183c6fa907c5ea4d4cda62e595f5bea25c2d0007bb1ed6b1e8f1b8ab38d5c8cdbe2b69ba9d4d56c4ce6531872edf0a70c47bb60a5fc63444a220c7d51a7a4c8a12487e7b658c60bf4d74d9eb305647ddc8c025424f67c04300e23ff6e62e77cd274d4e97d65d7a2078de8391eb73b7937ab3b168db89b7ea83163c9c580d5e6f335bbeb2bd99c839c2f7383025afc1cd530db38aea9200f8af81ea52dd6f0d070fd70ba4b8a9e02ce1a2633d95962a00b0f207c5754289538ea6df071ad4a480bada2a38bc6f11835276f2bf695bfc9850eb18420a82a7562eb4d433638d1c05d635520e907c72e6d2f0c804c12be5eed86a54584a8355991e82a75e45471ff129fed66b4f9633d0e6bd7247315d164b4fe9626c6b2e63a6f59cad1ffc57a11b1eb0b94cea8ee655540a4b2f4367ee6ea28b957fb6e0f661cc62ac0bfde21f5842df865fa46abdfca8e88915f3adf715215c51210a7bf73ebe2f081a6ecbb1f3c7766d0d94d6f69eb0c5e964311c06bc001379d057c039996f9afceaa97654e7048aac2926eff2fc00edd607628e7d5ed76e17b824048bab82c0ef00bd5e1e9df2b4ba659a56aa886f1d5bc6e00c0b07231dcc180a29f3a122a3326fed744171b10cc931849b8157982d37a975d65aadc232bd9e37efc7397a93c0b82f54078b01a083434aefb2eb5ac0dcf3e43a95647b340f5aec926b3a3dafcf99ad433145c9873197aa2cc8b359093a0b6045acd874af250effbad0d21f6d443f4709662094879661312edfb37ba189ab1337c4d6ba612e125ab71d9159395aff108c97250f3e3813c474b2c96b6b982399d140fbbdf2b80b7a0f093b292213ffcd468ab18de5e83f1b1ea061198833e8827141a7d03b5d62f160c94650944050798ae8dd83a4b9f7412b2940375bb0b6d3f8950ead20b269e48db215922737fcc4908b1f0c6eb6e01617a338be9fc0a986897686f0f716e58d3bda5a397b7f1f8f5ee43c65720d2bcdbc1547678c04180510883c978311b7baa05d49932216b37176ae72721f844b6e8e7f8833080dd0b39df724887942444ca4223f6fa10ce0355b567838b15b42551bfaf9e4eebf496393b63d0b9c3250ba4b2ea2a4789dc25ae2bd1861520717b1e678bc816550b1df9b213c4c627ae08b79ea8f8b4205529256483fbbcc551b068e1cd8d63e3d4462769c59da300601dffbf4ce80dfb2ba436a58acb9c9f07aab3f541ff16f07551e91ec3a2b22791ae7ea512d64b2a0d809faa9fff0a253964d8147dfa794926eb8735cdd165ff0e969571b161eede8a7329f316a9bc29baa6a4642800d84617cc7f9f10b5707a90f3d4908b315ede67140126c241894d451d7561d16fff42091585d411e0eaa4a98d20d655fb8a777356b5d47b96904a1793b05dd259c3232e16d11a7a9404ed8daa9d6568bf6262b491cdf0f51b492648892350093c7e027cb796cf25c550b8a83d9a7846fc615797e741c0b6bc4f04d8baab339bca8d06654e522cb75983111aa8a967f1aa15c4a1dc363aadf8533e571a9d98d4c29e55c548f915b1ebb0209607a57847203ce69e7113f7f988b93ff8d85860e2b7a0700a546d8098950fa953a7b1d70bfede2adf398b65b268cbd3ac98a64af408e2b87134fc449cf51a675f8f2c702326687ed9847634841e1b26143d87fec809c648f78e38ad16f980f018c5a61c8a6f5f611d141513a490a3a5d57e32c3dbf9e091f53ae53bbc768b2e37ebfed439429a9d7745cb2b21127df9156f13e8d60d5e9387e52935d09e20689db448935ad124e1071a360b29d7f84cda49f8e36e54391f11ce235e402919982869dd61541c5da779ed430abf4fd8226415dd0349d2f9d38a56799f47ddfb3683896bd20cedba56e35e31459e4ae5a6e32edba8d95a520c8055f58e6209d94f7168a798989f2932aef750ead5644f319c0e87d27f3f318ec3f39e45a817f386b42ecf7b1db2b5431c666f133de966cc1da3988877c2ef21372daef3d879db25b8ac2867fefaaac2df044f6a23e1e7f99999f9e3309ab1b603c1baa7856f4149ce324d3267d1ad7711bd11c7402796c883c3042afea86ac9d9c48c8e1b4e3e8dd26c23709ea26edb832845ebca1eb7fb8b4d1664f281e1862dba2603449af371b165c5b7db00165f9e909b1a559d81eca4fbe795e9497f238e8de94171fff2209a5471f9dc3df9d5a1fbdd836974c6907c409b84a5656c5158fa50c8193600d1507efdd724c797c9fab330b53c3746a3b8612d5d88289f37b451240fc2bc252ae134ff91faf8e179895b1611b5123d90e0414f194c09dae0eea3792a0e2f990de277ab9d63f5c746cbcb31b1c2b4e680c1899dffbc3c6fa7ab5983bc01f3d8072ca167bc1702b53d2f467b1effe90a7aece00be16a47ac3edc7ad049af1aa5b35fedc2d318bc20b804530b64172a773195efed982a5f6ff873265d09711c1d9005c1a23ad37f0796e67248b5bfff5f6600419e81f1fb8e782189ef6e3ede5b4a3c4302cbe3105fabbee8ee1a412003a805a2f8ade880337f687ae6e5f3ddfc3e0b816098f85567542896c0dc205f243618cee25699a5e8372f6ddc9429b5ba2082cd526bc9ebc7e3290f1273ac019cb98d0590ba19c15a0e1e1e8fdf34669e9eff309aeec40157f45c20402cf186875b76c49eb29b6b6125ff280ffda6bfcf743cf66e10e3cc2f1585cc0e6f08df5a8528dea9d7d089697fa1dc92c3f446e4b805930cc514f28b184eef22df88e79ec263b3a3942e84ab696bbdc877701fa67062ac14036372f53fe3b9e9e0e5bd3d7f5c08d77dc582e66552645c1f7a241511aca07275154c6955b2c7ba1f26d859401e80b6e7838e1c2448f851204cdc692c523031b99b15ddb05557243fe8d35ee478b30930237c7d03ddf91e8153f72d8e2894b5b597269b7f0e923081cd22ef3de234c15cbc786512717515e3bc11017d47f880724d9e38ae5f45f8c9361dc24151b0181cdba89a80e712287fb3ed244a5f5f9ae5d2ac930f68aaff8d742533837e1c8b7d60f80cfc8a05489894dcaa19dc3ef2e3ca69cbae857cc43c249c9661d026c3603e3de5a0df7ad88508a729081ce4fe152b7e13cae3f2545e118184ee2b28cab4f075a8e3dd6e560221625fe0664131b063ca0ab36065c97c9343d61659e1ede35016f8149dc283093f0a35b3e0dc9fa7f82e8c633e6c94a8f5bdce87a08e7e38f98db53656197b14b1e9125f24a1287002849179dbff567d3adb993ebb903a83b262472806fc7675c54f7fc3e6e241da38d58fa060f21420fba4097a58963c138170eeab0224097db59c04fe605492ff3fd2ebf1e2fbd990726fe5fc1c14a993adc26cf0477ff1058703d911d275e53eaefead2dd7df18e918525d23b11d0e1e8a13baf6be4f4cceadaa202dc2e55a1310d2afd45df176413e90c1a88355f5c48bbdf16aacd8554f10a880be976b361c0c296acb8bf3e106bd1ad0c5b0939f0059dea2589b309fdba106a222de0120c322c56533b28a9a1248226185230ef109ea5f733b4514ef2b2ad28450702a0956d1b96d33aaf4e702a1e38c45729eb749ab3e684f6461411d1cc8601a9449f0f78d709fc9f1058205996cbc2e72be71b60b8580dcbae90915b35ae0dbb2ae3958cee63144700a674a134689094d674a5470b3647701eea814303aa70cc94578dd320de792c5a49f1a179bda4705f75f7f93d2b16f2cbbf10a6cfeb3a4ed7783253fab64be02b0a4ee2151d333da9a1344b9825bcdb419fa73c7bc5ce1d12d877f32bad271333e1b81a03fd7a805a04030e2fd8dd83e690d5c53bf0b8df569c34af1488f64d557fe8302579a8e5d57e2299be3b9724ca8909b1e40919add1ffa24c358fc82645c5fed465cc4488bd4253f90e08a031a3f81c97620e9ad555cd2e377a11c284014b3be8f0db360d7d598c09ad40809e9c3dae4908e6fab766e9935460de17c51bda7d1713ab53ab301d82eb30a5d4069e2d4b839bd726f312c74ceffacb1bd3b9f298533fe77e8521be7c9a1f3fa3ea018f6b82060ede71bef25010ca32598519457411eb5b5bf8f9c07e92b2d8bf7042a23b19331bee12468723e2216fc1d1f23aff7b447b8bbdc67bbbc575804061019636fcda72faefbdb931f79c64e8aa766bf30141dd8106d49a5d5ab909024af40e915908ebd484694b818db4f55098d02767e925bae1f0779d9dea498b3cffa9a47303994266397319af29238dc95b01f12fd377716ff6e5572841bfe227ead26505b755982610578f3d232798d835a1ff14583105913a3970d5cbf62bb0d7b151464a16f0257bea3033fc1307399b98bbd1293c9a5ed7fde3ad3efc4b3a399fdcb9cafab3a4996910099ee2cf666d2646e8616bfb428ca3814221b86878091570e1d6f82c3c60f85be9d5996a3b089bf043e8a0172c706e6d5240396d4ec78de986bcdb0d976d94cc3daa79549ab607c1ab1b5b804b89ac9fc13d538ac6389d17d7255de9b98d8a368e63cd8f2d60c2f40426a3eb666c3161dfb899b215e80d404c5f2bb7db2d21ffae62291f3282057665a637b2b8455bd5fcc8741cb08c7a9b68808955ce424fa03f1ea38f54c5246bf69ada5560ed2e6c53c428c36dd2ced54001b503f763052679e1426b9dc2c6aaa6b4dcf462e96a703b8d30e6be305790d68663e4d61cc5b44c2688c46dc9543cad7e5bd73b7fcb7bb2df3688f0c38bdf42f07a8023b700ffd1a45aaf8bb859e1db032be7fc361cfe315950f1805a8eccb0ee9c456fff03d005722bc63e3cd98ac1db0e32ff711dbcd534d52b842868d327b23e0162c6f486d8c75aa57c03c1e09cc9b96a23f7b64cd2f55e8618d36f642675cc6a8120d0918c50306e25be75bc1e570667a2966a9a3b7afb14ebc5e4640cf1c79689a627f8640fd54650f625adfc14fea06d477c661b309c2dcc04b9ac5505e8835538c8d4a340c7d6a716fd75536b90b61f60cfc3d76625ed53ebb689a41bff90570462d3d8ca31cad62f898cd9234dea7ccd0a99e9f646b1968cac3b9c12d502a2d5bfb67f1b6a55044fa69ce11712a283683024e3b9749ee9a40a768bb930817fea19d3ee8898ac60770a032dac5ee80cce7574c68cea1ab74f71e3e62604989bd5969395933886c1901d548e04ebeafc59d7ebabd6a45163f3f8a093730e38bb2b1bf58aa0afa34edd20d65b19347b032890c2b8cd9bb14015a2bc01a54c3505001f0a6c07b2423ec8c903b218e991ec3b5c8465f45c6e94073bbc16d042c7da705e778a8d8fa8a11f5c0b86bd89c580332c90148953ffaaa33619e8be7d0b40c7e0f66aa8c9a0410b004e888610d6f523bc9bf8e1ad9ffc8163c045a3ac80d4eaffd5932187f68a5288e6d6f63626ef84512c4befd2cd61622f9014a0598b5b2cd075abf591fb8ac31d1b804abd3b0e4bbe1fd35dc8cc57b626df783397f3d4a886cce6888d04fccc4cecd44822401394a923bb13bf24557facf6d0cbef6525c742e4c78afceb619dc28d8b1e63818d86083cb801391f2ef37a907f1184f14e92ed592c237f8c36599fe3b169aef21b47a4418082e04d8998595f86af8b8b39f2b7dfab426b49263aa30a70e170a93d25845f90c2360064cd9987f0a45b8b0b051fba463082875ca9a4d09a43c560b261159443eab3d1a6e956210d69ac2d121b444564ae0f2fe0a6ad3716721cf46a30f4343904d119ca6f2bba796c19123a17d46c2151302e0010d7f607eae5e809d84b680bdab8798afd08d1fcc0babe1736b031efdf55f5cf9678f9d9fe1be3f310deaa55410a52adee245c30f24818807d082a81dc61f9b37c8cdd0c83da2df005e44b0b932b4ed5e37744fc5872ecb0569e010c89d734fe613675dac89136599825ee1d472cd5669f22e4e073e86c091574f3d307b8a29abc3448a824fb10ddc9d50a74ee16997cea268e110e33ab526b44520b6e94c5cbc7a4104a5baff0cd6dfd6b2f05e30bec7347065f3f86219811bb0301e44222f7fee83c14a622b102847fb14357ebe359db8d05f28eaf2a901d8e019f2c6dc28175b26fbe36d55047df0ccf5cf1ea9c5e5aeab7d5c2ad8694cf45d8382ee0b2bc9d25ff1565ba715df9ae8d15d807f5babd9c3d5226aedb2ad6b62aaa561d83e150d37680f033d98c16ec077eff5f719ca09a2c1751f92e1d4af12ec5f42fca1e2ac7154eff81f2c31ae92df23ce2d8f11bf30d36b9d06e22e5ac2c11e131a1b4863c4cdcc5334a48b25741402dfab4cf5b44dbec995de916350902d90f3c2521bda34388fff714f7af715b1f49bbd5e4ccb38840f998d5c4cdcea289e6b8f65c5d815571a327a515c3bce8f5a1c4cdfed37d7867d683c93cbb3c92606e2fba278c598f0b7f88f8b1e6d327f0000c759e411e0304cb1d41beb6d36a6abea79964cb493582a0102b932cfeab66621c669cf346f72ea9471d30e07e59d136bac286c12b3eeabae600bac5ecdc94071981dd56561552e0262229feefa17b6734e50dd21bd344ee765d716a94759f98036817bbc390d2b2ad7788860317fabbffb8129906d4519d36ccee83b807eb105902a5aa03918b86a32a9ef186a4c6469f73e39b7053323b9dfb82b96875c26f16fb6ab8bab518dae7a9e319cac6d2452b53b0c00316db3aeb3d5ac363774d679b41cc75b18df0a8b14944aafa0f663a2a1a485f8e19578a9308cda40c17d783ae88ae82e01c4f483cc3f5dc66a54cae088de4fc070ada437f7540b0613664851bc78ee9175df006aab2e00c6bc155003af50605e0cca27eeec496f62e089ae501b9a53939bb9a19e41699dbfb3022d23d9f641153f4ad696cd52f048894f4c3ee5d1c11b897799ee6d3e6ed74d542f1de5ce392c34f381a28af790d6f354db24a77500919c647c13633de809225a7d50102a6ed1a5a11b806fc10ed711bb11b790d293773104a4a3860885942a95b0f42e8285a08c8bdf1ee8b7195efcb873f44ea7ab18cb21922b7eb1bd14680983d6f6e6e1d8b006ae220ce36d8aa9b09fbd51e7dcf06dd3e944048c5ff7cda1f69b3733bea959dacd3e85aeca4493706db8a7b4d1133359b5ad74fff47f57eecdbcddd637dc1ec18859e696e21621ffb2f621a85e49552a4bb24bd7bc4f34530d0561527c7f471a1e3ad5bda3dc1267a1eabd5dcb6d0426e4588b19b5a5c9ca29071889c33a162ca5a59300fa6a8f4dfe5d3cae108a90586ef4e2f787304061fe4ab2730e4b12aac290110be32dc855ad7eddeb97226109cade9a07a9de29893de0ae72eec94e8c565fec30a3c79a93fb78d37f8cc4dcbfebc325085981a7c3f716e4263e2d5ee9f958b39bc6fbc82b3822dc181efd313e536b0efab8e726e415486b5c15999423e0dc804fd0c0d089fd319ab81b83eb888b149117c7bd44276238c402513e92063769ed9aba7de88f65c42e76d4d4f0011fa15aed5031d5ca7c8d7e91bfa2875a12e3a133cd53c215039faad1bc83c234d31bda253409f36098d2c39c33e3d663f65c23026651e46ca05d2f8e3c13acc3ed56a2e443c73dd096c4ebdb41ee2c7e8224552e806f03f42033b07d86e039e74817275312bdb756f810886022f76a531a517be967f20a7dab78fde053ba1ad34709900fa96c9b1c6ac4eaa433900bde8b77460fcd0daefd1ca73c3cc1b800177066e3b7908d95b21c48dc1b0fd89023af6cc464bf484daa8143ac14107e317b0f435f6bfecd3d224f08e68506c011ba11d10215d0a0cff981d2528a443365f6bb6c2e4dcb84187680b8cc13327b2e2abdc31c78323814b5b84e30be2805bbfb57aeb1f358e4c7f241f34f1c25f11e68cc74fb3e9000c7c3e079fc02ceef80e58bf82a26ce1b8d42f5768a1196106ea7d5c29838271c3a78d2952649dbd089ae1285dcedee596344f076b7e73591264f2410e798b2c8db246afdd54e9c762a3826166e6a6bfcb60d39b13baa834baff992802fb9b4bc1da206984b52642beddb608d09238be8eae878f5b88ba995d1933fb981446c6ef2fe30a09eea0b7b5f2bffd1d6088217d88f0c041a36f5d36452d46f9f04691d0130b06a729bdb9abfeef8e323ec42bf5ebd9c092c800fc93cb1b018664474319bfc2a284d5eef70a11c45784029c81ffe935f49d37d5eb8623f823ec632c61adbe27d10926bcb140b1ced756e2191b2c274ba340364fdb177e34b2b38af7b36070e16cbc94d2b4fc55720c26fc0a476e603350f98ea82bd73d9e25ff95374a4d8907eddf582b59b6eb6b9774cff78231e0a9eee60cdf3a09771063d7e70807918f58ba1bf23f2d32522d3cd3c0ac2997092ad7b001b14ef478f6a23d07a6e0205fc0a5d8a64e44c8e107be4797523a0bd25d8f55c3a932dd3c9ef73f1d883042a82e39dbf9ae5877df266930ff16ba2442dcc1c72a3edb0ff85a5b787917b7246ebddcdd39363465085ad06009657214fa37ff1113f99fe9927770b10dec340a89270a93f3ab10490fb0897ba9ad0dbba95d2273e1b7de3a24f95ce7ee9dbb62238f08857b4ee26016e1f37b38c0d4dd95427286f7f6197e7d316c7ed72518473e94eabd6767befe37894efaf0b28ed719e3da133f2ee4529f216054a5cdf8c42cbbc8ff14f0cf6fff32aff3735b45912191d795a63d2a6342ac9c44dcb0b0821523729a20468cfaed319dc64557f084af92e8db9de9ae59509896d220cdba5a748c0d99eeef19f6f84c5ea44da4480a5a10ae719a67c9d8676330f1bda25eb19aaf641725711b8906393eee58c94634ca53029c95fab8705ae4ee48216518712ae3d30b312f507276e35ad5968e0d143d56adce8b9f1f6db0bd2ff25cbba6cc9b1218b8c165bd59978cbf1a1b46434c059f8b76ffc975f124a0cb53a710e01fba047540472b518d2eb2d8fc5fa41b7e087242d574308944235dceb9da74b18a25f2ed9d7b8531b8f4c98a36bf28943f3f4edb74f4a8585b51c92e43f30ce92bd06b8a3dd88d291816cc7573fa15a5f837bce06a8c15dfab046fb0f89613ae338491e1231ea6e6f0b48d2fc4b4fa683b936cd63bcd609f10c710593a8869c85f5b986559cebcf78062eb7e6cf6c97ce987a626b14d8a030ed9fb233433b619d646a129b9b1a1c088a9c3e1dcac831abf5f06df5c24c3e01aac2addb52618eabb87df1bf9526ad38787c1e7c7266db0aaf68bd6d7709ab2a566374e9d9265ea5a370feee77fe66131ebf62b0b97d9f6ad3ff91600d1395f70631e27fdcdfc0d1fc13b266acc24b93c3a47f7929982c6e3c080a39eedb19684b0d04c4ed3249e3a65d611b50f07f9a2cda1d576a87031ac12c4f6e4ed561f7392967744c0fd2848b61c95a3e5e6798f700ca84ca273a0ee6322d223fe2ca1c8fe414b5257012ed41dcf10c62c4a92c4e57dfd164d2bf7d7f35638f6d264c2a21e3153847e13aa525337d8fb87a7aefa5f88bc42d19f00799a67addc1ce8a618d2208c1dc022e5a6eb7ef1f9de3aedcb08d467df3a6aa62f41e315ee18f624ba2ccf654bca58230ec6551a20dbe9af127b69879cf76cb4d36470cfd400d040c1f36d665aeeda1bf09ce84a626d38d63d4acc001e5e1c2b3697abdcc79875c1b121e5d90fa31a57d27a2731da494d910179e567e8265762a0fe553e91a371f00a65e5363002b6d66d3e5c5ec9640604f801be927debce7ea6d3d3d3fb6bb6d65fa2ca23c54be8a8b01d1121727a1d21394e09fa40ad00fccee3fa5c343d8a88a26e4e45695e8a49471e4745328b5c79adc27fb06251bd4c47113177c2ea8352af940a41bb43a3f2239dfc34b858e2ebe33009fb5e1f42d41bd2daafbf4897d92c92cb9d1ca2883e5cc9033300ea766a7e61b7d39742e1b92fb01906dcaf3180a61cb36b0c4b8fbd9f2529aa040cf043de9290e12c4b3a597fc8da75907d66a25e972adec0b04b617c0baacab1cca5a694f429af7daf02510e4b356699922b7bb69fa5411e6662df9f24fbefb9fef64c402b122ab1445e724000191574d5a5c4318134f7cca8e86d47f1de885db9dd85edd00bb534c8c71243c04c5a23ad85650cc1e65ffbd4547b1946cc7b16d7930bc2ef1757645a89829af9bc5bf18873bd1096fde14bebfe43b7c9a4415c79475aba8a50d174ffc4a9dd2c1a0d3d578c62dd69ee718a1531676e77bb306382df78821393a5471e0d0e2870c794a310ee61115a3549081bc8dd94202bb2ce17d06500f6fa5708048dc2d0ec18f0fe2b5455e6bbf7b4e7ec63f443e67c5bcb25ff99fa0d2c755161c1048360e270c426c4df979376263518282b59c29e26ebdbb853612a6d271fcac087eb9d55ee46014a63981c51ef65580c1ddeff29426b2bb49b25919264043514b0cb0831c341c3c401fb459753b804bdd03abdf933404e2736357ab8feee7f1f426a1c3ef3daf3c23aab30acdbfb9b0b15e06f1148623decf12693cd2146e9194507e51f12fc1f6fb802b5f80f7c3fefca695dd3855938b5075f7ded075697961c2f8571c57a598c1d0ede6d082336153f932387a5f543517bf74b8beeca109d1a87b234fc0ab482e65969d7796c6a01f5b93030c073a400b184066c9674c1510cf43690355ecb7baf7049fe2a6deabe851548b4b31067d9a8e22b71d8aa7a2e83c96ede70243b8f714c259bfb056720743d0352752cda3b92932a331973efcadc06cc0ba1dc25ff88dcd818e754b89018104c67ccaf1157a9dce96ba5f538354b855545bd83ad84966aef26ad9956730690e2872f5b63bd90ba403141e951da5f6024f7c83a7dac8d182e1c0a0fe1148dd7dae3bd02eb0899fa7bff735a9bfedad0e51a6ded424382ea0b29a9ac992b36d41bfe8e800890a842db935b9b59c6c1275bd6fcdb2ed206cf315a3a61e5e76316e0b2d253dd29b59515970f3834cefc95da69ffac752b2ee1ff6a5617d09470a33a8e7b78d20202efd117e082b85301f3cd6e9953d00682af07681ac387c8f1628c726d00118193e22cd5f8aad4ed46c331666fa9fdad80ab8f21a5c9dc2401720d8f6a5c09398bcd375933575ed58b551897db133cb97305136ee04ec6a7ac6149a63810eff15d0575e3216e8dbd29ec283d91edd4dbb120c13c4059df8bf027a1a4b8c238ba15a161239d0b7d3cfd8d1a0707b78cc09d7cfb776146e4b8dc54c686ea37210c12ece6c25ea3afc3a1483be5424132f6f366d9b7b2be39c4c7ef429017c82702f84de5c072f786280464ed27e11f18ec390ca4c490316281b13aefd19c548f9bc477b29b89d8cabc8d4527ee70b091fe5f835ce980e68b22377c7d001090df1033f2974b759d29f76987f1e37fee7993e841341673db02e9badaf19ab8ac6338e9bd500d5bdeb1aba816ea50ef1caa4626fe10d335fbb765a14520619729a9fa1b928efc634758d43e01c2766c06882663650e0286b2c249c663381a768305d79d6a747ef64574e927fbc03f263876000334fa71648dddc68a8038abb9040e7889821d7cc2ea43ca29883c3d1a235fbdf22dd8409b51e67f1f7b737df0cb1f58fa8c146d2a9a6535fd2526f692812ecef62d5e0e9dfe5f09eccd12355766d77585f9da31d30b5dd1dcc87e85b1b755a8aa0277fe2736eef935de8eb7cd089918645663be64a913c5bc7ad9881c274a524318c18b56d4dd8a69e63a82f6860da5826e9994c59354e0acf3e35e2e97060067fe102a08e99bc8a5f7b7507aa59d81e595d80e5b7551542790d7b53ce484bfabb1e9b8cbd739536ec17d13aa49f90a16b3707a18cf1cfc4d20096ad32148358f3008c6b51eedaea4085936f955949889f82702679d2e3558a95db4fc3cd568f94bda9fcc2792242bf9e9360ab8249134edb4683009e447b358cca8f0f436a19cd30338f4932732d3c7228b474a258fbb5745939658fd5f9796e604c6b17651c436dad583a14c8b796ccbd742b05795f4dbfae3217a1e15135c4b4efe5928156572e898efabc8a97196ff7654423c53aa9e676470544e83cfae314107c9e0bc7fad6dcb2f4505eea25faf4e35729b79d30f16c0af7b7af30e6be28e0bf2b76a2935db04d014924ff9ac1ef78ccf001fb00f030f6c0df213a8523aecac0bcbbecaa1591cd07ba09d0b9d6331aef839347fff1e707d3aeac0ffad2d70815abc1368cf41ebc0f7864f19e0eaadfb50da08bef2cd731e76fa5c43aa3f426e5131cb04fba2dfc6623ee5c156f322af4bbadf2322675675589fb965060a9939c851aa73c7be5e6c79e5d717df12b3fc767493cbf5ba0a1a02b78fa08ebc08eef94a4626248df76d823e1af1c9ada3cc38e74a3d788514633509887c5c9621e9d5ce80cd103965ea8f3029970c8163855bb73d4ac8ff328369bbd3a1cf6e5eafef9114dd00a061a09444ac38e51ee19f1ec988ec2b4edbc1d2da54f3b92d63df02cc314432d547247328a6be526631007ccb129dba118358bad656b647528bde91bd2aeda2a08637402e35e77212864cb8aa80d131d7babe8702d7c8c26ec8189f2530d670f9e2ab2ccde3c7932d74bc21193a946aa6186f8c185d286ea6d0ede1c81dd558908a7cee1f891988978a1a16117e681375f26efab4634b5d349da521f15658b848f6060c62b9ef978338f2054b87ecc5b1e8226dd4500f59e6380692ebb2b6eeb89c8d1f78c6bd39f9032430c8c0eb4bbc403a135efe3c9a9ede64268979e03aa9746e046650cb9955105a3e4a0ad3eb690fbbd79ad2e55fd0674cd19f6f833a9b47b7e2d8657ad8c6f416c0d80cb9e0823379dfb4681b2e070b139086f3f3ff3fd401399c3401d2d0e258bf3e9f6cb64220824f3cc9c3cf606af9f29c296d4cfec0c157224a7934ca1c0b4f8a3a3b1edb774798a5328c0c0df2ac8bc2387adc715e6e3c036466a361bcbf00907e61f5f2759270c9713c62d386474ddc969adce639325e77d016aa13c96ba467c657a21e2a8a4263caecf68c8426725565738ce27f0ac9dd5e7f48b59e1f92eacc6ca26c82560c936fe067a60c33ed98dd1fcf9a2e80d737e074f8eea3f5023961601dde252a9d5e8c060fa3a475c598cd72e7781865f6ab376523b950b1ab352bf098e71ebda62cdc63d797240ffc49243be79cb63e2103fbf122e784c8e007808872f155825248d3e6beadf5f0c5248edd6858cb48312ea30e119b2ed10899468b99d7db21e9645768b2a2a0eef3a721d502b3d439acbd4c84decc408d071becde206b0402a21208db8648ac025dd31bed84e74e337b6608fd60c6f90e998068b7a2f150e9df4c17eb7005cce0ffacac4577e4c687d585bbf84ba979af49fe52cb1da22a03f7ecb19082515e2f5abdd37583cbbc40b696904d52e9a8d1d4920667e72b6dd11735f856643c3b0225914c5c6873568e66bcf71500cc6eab397ad60f8a2bc1d421488659b6e5d2703f3b8b71d9e7e18a023e372e37ef378fc2b952a9ecb8c6f5efb08c3a43049c6111cfc8ac32e527fc60048ca39ac2cc6f90969c4eeadb0ff927d778937561d2e419e61f4e3a618efc711edab69f077898f91dcb51970feb87b58e2da24e5a85b8ad1eb91f42000bb6fb3ded546d577dd32f9c5f13ccc6fd97e089cb347361f6cf23980700da9ee598973849262d9ddf782f27caa332e4ae3b5ee10916c27c47f8ce7915c7edc84ab8f5898a98f398771fee16fe6000426125d2901e7c4dc479f42c69e0d89843ae36b7ce5683ee5e5aea1c821602b92c7e67f6f8363c7fe6bbaaa417c6f63183fdeba348dd4a1cd48fac97cb0ac3d4e34f3b065d80c4a5a5083d06b200221234a2af9a5fe7a16736195dc71473a2e71cacd81766c01e26561527c17133a161b554f05e1c794da6954795d3c55ce3f3806ea8c8a07d7d156290bb6d0d077bc698be8351ad018ca35462137c092f45e62ac35bfefbb7150bc7af9ad842d6f72724edd735e41b0211ab9d7bd84e9fa3d62c41b2864b314791980ffc37526afcdad393f05fb9de4ef32461d109c7b5f08b0ad5f80ec84555bb79e0e59381c74f73d41eda0ac4bda9e121de621eede1baee3d7b8b438e54320b2366abb39a091e268a957c22c3f92b3a54f62006fa1eb189b1cae3e61eb81f01e6c54c1468504a220b4df87e1aa1a73e44729d7a6c28d7f3474ffe56db4e2465222592843ebc6183a16af66a4e202ee8cf87292b88be5b0454b420478e939b98cd17fc04707a418c4d3697518962a821a2b0ce52d5fa42fc20bf4a6be3455f04f05ee372d7e1c1a63f3de89b1a822204c3d01b1b9db456666819dc71eaa24d062af76157529ff83d5f440c19f208ada108ad00d46ff50e4addeb38ef962d2e972b77dfeb3ff2e3e8c80a7fc727c1f5e59db13116a07d6472a34877ce410737403abe5a0706f9908347dc1e797415fa158208ce5ac558bff5d3655f7126d8b4ddb0f2ca308e0d0fc5e0f3e596b70175820b0042703a8273e0f9a748e9e647971a7bd03184c631c29849ae7d3c7393ea125ec19f799e997ddf967c9d990406e4869c4739711e8ce6016e8c15ff4cfa7269f856e8d255a7710d9f041024696252a9a96a769b0bf45698eb0528f68d28a7812903ff4905f1cd8ffc8ec9b5e07591724cadab4d868ee8bd952b1708a50351d793e6409919de23870ae31eac9bdafa06c172a4028e7aed83f219cb0fa524c153aff6faf541ecc8f01a5b930eacf4b3e95cec837fa18db0d8bb3bbc2bc428ec7a484438d2f0b3017defce348b8dca7f320148a1dc4720fcfc615c136adb91b193fd91a2a6ddfcd808444e9a79996dc39daa2e4ba388eafd71868ac910ea36eed0c33a6fb682e2145f44ab0fe890f27ef4e5920cd870f0198880caf1f391443cd362689244a008fc1f10d5b7dd17fa3c8053cf4c62927e7e77d99896a797cd8235f399b29eb9dfdc333d02b0cb36c93afd2b1565c382368b73d13cd5dd67ebb638687a96b795f988f853ab7d9ed8f14ac3b42a85785a2b5d7adaea20ed8e6e700d040707c8be6d366e4f5551004e8b34acce7901b4360e12ba1bb7d74d3f1f34acdf056092034e7904212ce823ccfa90946a6ee453b86a9445ef5793d9cf8d95a763cc4872f92a474c2f6d16dfeb4b6a320d25dd1c84f3027b63b8dfb9397392e5d2554f5775a836c0d1a144f326191c635269e549c5de04eebb5a413f9aa1c9b7bda95f2613226d08d3a969215d04390065043972a7529de0ed8ab54cb6846f5c8e9251c3b25fec9bf6954b0e54bf76c1885b78a0dae14f552461169f7232228cffa30631f65932656e52110b35a4e2af915e10371618a88d3e940cfb580bff5aa191d2cbc50e5d1c65216f8d0adee0346ac641e7911676584f1c793716eb9b5d57d5279fcb65445d77e5f7814421b8dd90a361918a4052eb1ca5802dffe8c5b4d8a5c23cf6243c1c343c5daa37f4ab82953c2d5ec2f73923a1d0a2d288a8275d303dcc48faf46f00a268a8e89b87e79e9f3c4bc2fe6857f08c498724cc3939e23f6fb023cd750b57b80db6af0d1fbb4ce631546686684661bfa56a19098a1b5e38909fb72c63a0c6e4b87ed08c09ee87395cfc1ea95e683ad118557b2164418224abf67415c97ca6863cf682fc29270e7acb383a374419468ef6846f1a01083f5d0808f64b48e3e173da8bd8a60fae731ece796705afd7927305b76e9e28a1821304fe97d66a579b733e95bdb69e06c9aeaf546a6deeb1a433a1369e7ce1f071ca34d29380087058c2482e4ebc48297c48c73698cb378a3734addfcc25b24070dae192c758bbe15a93a8578a2cd559f61ed6fbda01e3039013577cd22f71ea44eec9706d3364b3ef88465e64deb9ded5f6b58193f4b62b811ca928b3d6a55cb086394f7326bfcee93c7fd5bb8e031b89a85793400c462d3dd2eca5b376781acc7571d0020d085f31b92dae165dcecc7ea411c53fb85aa7bf6dddc77e123399a3635d180f08afaf4d028634d14e4e7215693e1c57e873712057aa6597d0511d8e4b9abf6af81c7d138bbffe0cca6717f20f2b9cf79151e465aec978957b23f9f3feccb0fd0788e92dbb8f16de1cd80d6dbe5512522d91f77dc69a531800face539f48ea2f1dd8870c7174e714f6ed515134fcbb68385ac6dda4d819ebf1eab88e26055e836b9b2edd7ccebb8aebd19d4144fa9e41b41a4de783dce493052078bcdde569a4e40a859c22ccd205f25e6db451f8af3ea653729d53b03d6996b70d0be54fa2edbf1e7cf49a2359a1e98a749ed7e91f6a9675ac5e35f1d65421355f77b210e978f7b22594929dce24105f4a91e3db6a3613cdd6560082b09dca81c87e8b940a5dcbbb9be8a96fa2dd8a804a4a961302cb2d7f0719c00d0f6fd57cbd430b6d5ba43e8ae9a2f666105de048ef6ba57cab77f995785a315af1542e1cdd01a32710de982029437fe288f37d6e2662dc67f051111dd617486aed91e21c1818157449e9e39646f5c39d2de2323d624096993551114e8386ab709f05a443cd61fa9a0ebe6e8f1b68314b2d02b45e69be47a856771bcda81334921456492dfd113e44b0854ebbd4ebaefe071119332757f3aadeb454f51d5b7178db314caff7c59f8d4d49d86ed310146806e85fb9fef2b437384165357f7027b4a4cb4bc8240f317175da29467d34addd6da4e507627537b26e10fb7b030dcbef9c238820cb45dc7b1e5f9ed9abe5bc363b2df054b0fb3fea5ae947b4e23407f2ea4d681af610dcd36e175c82aecef4756e92288f9c99210a55607e525faf3b70fba8f772ddb1418f0e89c92e10dfff43317918869ee547d5c5a35af0c43cfab084e1637270cb6d5afe38114793c3f8396227b1a230b6ae36319997f9edcd89fe6bb57dace610996e2c82a2a11557f1fb4ec8c72fdc06671f94427768222163e9f6a13b5178004fd841e4b0874e9b6e23a7339332561a19b52fc53f926110b75af20c380da091f10d625bb2c998f4e8f9f1d62fd32e957dd01bb4b703698de876b903337a888831d6d6eee3e33ad84c0311611d55d57ae1cb3a72ae6d0ac00c50465e8c1f87f2977ee2a9c232dfd879589976c19ff2aca6a1689874a1a2fb6e68b6efca02c729ff61329f92372e01c6d10d05e2565ccbc25aff4d5f9dc3480d05ed7017c884a018bfab6cdbecbcb8790144c22d8322193fcd0a6b46a963101a503dfdc2627e9ee6de8cf2e72ac10350fe7d04b2ca7959baaac50c0983230e7e4b464cbc55780d408b1c96451c3ecafcfd02676539846de5de39fe079b7d0f51936a4f1c84fa6b52d561754ac29af7a2bf409e9e993ada053e1ef8a560f02d64f08d7c9b91a6ff1d2c9e668b89d4af58c6bf75995cf84374834b44ce9e7522b9ba02db19d3c96af2c2837b65eebf8bae637431f7126c5b20a062c26ee8d808050cd1da16cf0cdbfb476205753109ca229236733c75eead0a597ea4f614bf6935c2c119394e6221b2eac3c4201ce7a6aa9f6a544ffc8149c9350a7cdbcc70aae551d77ccdfb972568b234040cd5b1982fa8249bfc09fd2a04bf18581726ba11ea681e703f962a52bf242edba5c4cf030ce050d175a120fbfc0cd3c7a7507169ca6000b2a1af3fc7303c61bb9989aa1493aeaa8bcdaf9db5ffa5db8c0b5376e43f8181ca2afee65d87aed8b75cfd9dd288988c5d7ce44a73f6acbeaac9d63d59b8121532b43c05c76283adaaa548132ba4fae2cdde190db7d85fc949e9043911d840f1363d9b8a5bb5fa477bef073aa81394cb20b34d344b34e6e2947a72ac65f5cc0ce366bfd68548c3664cf97f11c3f6e0abf0a1294ff3ac6f40530c1dc8229a903080f7546c063781664647e2b344e244c860ad1bb7f474a20e803577123205d0c6da592e56b872a483079ea115f76005a62ac6fe56bed7596a8b0d85785daa5c520f1af5dfe33b8f10818cd6aaf96b14c2e63a536ec6b2b44241b1089514ae87b7816d6a84a0aa0cda2ddeb3a46af5aa66b83f07530bf773fe8bc3be00fe6ce4c098a73733412c17341b270bb9b962b3a9f36ccf73822ca9fe69e8aabdc6f4da89fbc34e504800ef683340e1a5e50a04de6b3d0f1d27eab4587649740f12870ab959dfda0eebb9808495c212e319bc6901d89251c2485e95615613d252a41d7cb43abdc009bebf1bb68b8e08349e3682f1213051ce2eca84e436f707a6e3dfa439eb43af3bbfcd78c2de467c0bceae6671843e913b2605e81e45aa727491ac380364fbbfb893741040dad14cf3d94c264a13ca857793f78cdbb86624373098cc66ef94a7cb7997c19752db626a69ad1010a8424c52b11f3947966791fce0694914675f765822edc7036352a5eacf62d05635fbf3fc3b0d8858c7704c89a4192e611ed3e8a65e83020767eafd086c6f555e31ae565865e719e58d43d323d457a2c9f00948f651378a16e89a6de1f3cc8f8220f6801616e811be982c6b5d560559917740da7ca03e986fd51d3141e6e7f9f746d3aa70addde46d37770d6a8cbb42ae1c5ae3b4e79ebc536172f5401420f39e3029c07327a6777141f563d9344310679c5e3519a6b564254c5d1c413b4ceaf70c427925d0bb8d06477cd5c2881b854f8af450b39ab0b11e3be3107af3335882d448030470a487e98a64a2b6a8f6998c99ec151d8f159f9cf5d2ab92cb128a10cccc38a22c80719c150a1106073b6f8abbb703d8703a79380937a8ee451a3cda41426a622e7f6111ec50aa34dd840f8ea3ec091c99cba32962e527a790ef03584f82b6917a6826d2141b86a4e22102cde0c5e87f2448b0a9daf5475f3d298b310249f365571446ff9fd4a7cf6a93adf48b9f211d4684c454a140c566f2d699c88db625a0fdf14bc057e86aa0c9118a4b787e7711942751c09be7b0dc0af6f02a0ecd8ad5518067ff1748ffba5c0624d6f386ff7f652d18c297cc34c45ffef474f4f72fa1ddd65a8a0deaf5c9e091ee296583c1737c6683213316683d005628ef6b801b40471fb9f24546dd1fca03e6d78062e84560f44aaddeb1335473db7570e618055a141775c70ad9ed3f3065029963b68269ffcf6bef46cb46173a5e4bcf85539ef89a8fbf017ca5c61f7cef79a69934d3be69446ef9b9591be9ac22846b47296befa1ee35bfbeaf39347192d3e7fe3731d0b672fc02d7900a3dfb62231bae762a3658ad60a3de80289b596fc9e06e3c799a75ccc8d4f16c713209c9de03267bcef7f8da817a31a570f4155efb886e670dc3559ac439192ce5bf22f8782b855b0558a896b3f7a52fe8bb9168717755fd655d1477a6f09cd377600003ecc8da9f5131d39756a8e7346a36a54dee0bffe831a218d4c0d744a90c7565f463a036b3b24da2a7d076ab4cf343beff1180b736073a9774284d28b9bccbb44709f43067dddbdf229b56c914cea8c1254c0aec9aa3fd84ee2afd39514bff336c9bd3c26e0423047ca1f300afcf9f76999e7c20eabc4d1c2f15992984aaa05a49dbd46de230b7fcb9ef7e6840a4c776eb2f09d09f61643af5493032ab8f5c76b5c57ec9be2ab0a7f3b0f28d712bbd0cdbad162a58e9416454a825c9e0178f21fe9df14b63f1a4ead87d6744efe4f4a3e27f4e0f577517d53542fbe6817cf78564c8958a14c46dc32afb54f0eb6ca56caac94e4e02015192d2626ed0b3d77d299b74db3e79baeeae3dc8d7e69a08d59e923daae26302a1233ce59ddbddf83c0f4d18551220ed6c487cbd561db642dc572bbf1fe4a99aaf37d5da34aa2849424b96b9b694f72d3012e47a21f8fc97ef65bdd533e7a5564f30d681d3b606c0b5c3860984c5d45073ee8646e27fac338275c3ee95cb4e7f594bca8b30e1a8e75bbea34e774aed03e5ed0a3bfda60cbc93fc6a70fb573dfa93df11b4acd986f1a305641febc260383bbf27c63691e52e3bf0179c5a8e32ba42ef5fa652eadcdab3e4b7ecd0a7ac1a9b392c773b0104ce00c9de40af568dbf46243a357da027a124f67c5cfece369bd7317b1de328bb1bd99a0b3eb3f9d5a8ec237fe09d47ab8660c50774dbf7c686c8080837491a5de7d20d9dd534e835d3cc0addabddfaf066d58ea292bbbe072f3c27deae1401c569cad4c6cef476fa0a5fcb58459250411b6dff083c6bf30aa345ea9aeb881cd071b3d76c68368a16cc231cc87bc1472ceffdafecb2bc96c377e958ee2d3a2cdea04ca7ab1b6ba7a012859c57052d2d0425a53d70631db28b206b5a1f3f7fa255b74df8512ea48652bbd0d90796a0a2628a3d4cae1d7ed39cd7bc0a886ffa781ef162d46115b4080a74eee72a467cd0a01c6474332018379816d43815e5d3f4267287e791a7296a493cb353e848b50e5dbdbc1a7ff2d88f039fe410c9397f01dec290d0cb1f8fa6b775f44ebcf2c6fffcf66872860f7feec412c472386a260abc5cfda3b0ef96429d84bc18f70f4e2d24d1e2783260b17ea81cf87a0d141463b84658e01062201f690043ce3c8b48b341b5ad8dde859bb0df2831538604b765d0c1c3eb730d3e8a2e748a030264336c02638f64dcf4d8ec7dad3375f316195b84057dd29316a87e21afc5bc16f5805dd9f44275f1deb81ffa0272293a63e3315a0c6b66e04244e51da5e6a3168b21d97ef4d7b7d4ed2440b3ccd83056bc49c65b700a10fbdaadb720dff89ff64a18e66c7f2f71b2cdb47567f18f37d37e7733945748993b5de715cc7b29467f685607637b490fad87b8a8ba23b2e454af573f97701efb2b00a0bce7bf9ef6cbac5665e4da539958ac4316b5fa3c190e69d272f7fe01bf0905b7ccdb3681d9cb4c33b4b8f1ad033c4e83f9449abb364a9cd9d9cff777d549dae67f3663d85ac10f30ed6ad951cc57cce87ab7eb6d14e71cdfb73c2e60db110ec2392bff1c36c6c5f217c8e555a0986cf3dc4166ee9fd5008eb6de8fc9a7ba106c5f10cda29c450ee4ec6629786f64c6a24d7c6798049b4ee1355b7161a455c7b783def73b847e6e720f1a0ae63e14fddbdae41b319bd1fbf16dddeacfe224ee95c0b403b8b504b831fc81e5b14075ca4bc757f794d1a73b16048f4493191c4bfd89554e20c53fbf108c79c5a83146598fe49bbd6bb05d1d2c8e23732cb36ab0b6e1a51fd4b7eb611f1ba5247ac3bdefada6d81a25a3c97a29404fa4aee2ebceb6962f4ae6be98dd9ef6ecc263e5036a2d5c1accbfacd4364ba94bdb0341b2d8ef25a25b5e16287656b3fa89d311b3844b55d0571d42fdcb7df7549d78ce86f3c4e54f5d3fcc536c6672be81b1635ff725cc5056e498d42ad9b02dae6054617b8960ad2476ec264413e8ead4431a0b5fdb0e514a335880e8493499dce60af214b625d63311517f5b432d77e5de5eb0f8eec36f09a63e3abdc19be2de59171c90bde4072a642093d0a8011e71d393ba2b7920aab46f7fd05289cb553f88ef759aab5724c4f8d469b8d129dfc54c308be4ee8ee7408b4e23638d93c458fdeec841f75e316d6f855da598017e061131f6be89946e8f4452a926c1c802633173934633b3da5eb1049e7daf30017f5572c4009bba6a169c76eb12f0256b8ffea38a3e86bcec51165dafa13eac340919db326453e06c1947ed08e998945935eda512871473dabe5f1be962d2d52581b61e71b2c9a0e9714efb3114ac37b00e2954c607c6a639aeabd8f8c91095a849a1fd252e4a68b7e78d932b584733538431c8f6c411b04419c1745aadf1bed3e07d5ae7cd386b941996a3d0cfc8b5ac0a97e52342b95658da577ce41773fa8384082dc34610f09ff5b2668e3bd337288e57d885b49dae792d3e493cff0398d6e67b58bbe64745ddc11809e69f1d42b9efabf4850519c6ccc07d845f4a1f7eaff269af423f2a4bb5b47963ee332849529158af43a584441b55e2d41d28d16236a038fbc19fe6b0741d869dd09f30586ff2d275112dd88254ee83ae98b5200755d9b4b1156067e3ca1c1914498bff558a5cce05f5d1893b0a94366ac9f4970e3c6e6d1f0ffbb6334ced13f62a7c69a7a79f01842ba71aaaf2a10106fb12645add19c831f3f8fde9f0bb29a9db049dd4c9de37faa1b0f8d568a800324effc784709602b8f9a963d193101e2ed342989f7a6cfe147ac5a0cfe8dc4f973551db36f1c191e6d0b05b4876c6376a21ad5fab47b781f18c422ada951ae698f87ecf979dd29024165d2a08bd94ea71e632d06c42466b8ce18ca6d6b5727e2833643502799b32afe1d5a9a5ef26f9aed9a9269f7fc5d2ea3a64fec9324df3ab5518fd80cbe0666b39149a4479c59102c18c96df97229466870537011b19ad5922152a539fbc25529bad05162b8e27d2ff098a6428b99c9f701d492b218d06e532ad75da43131340786e8501b93c0a44016265fe528f0174cf8af3ba1a78c8cd70d259e6cb176c95b3c46c483b83feced095e7b03ba2f00834f1330682211f289b2c3e428ee070ff27fa2809adf258a68365823d8c42cf5e601b4fe4f539ab3cc87fc1caa60bbcf81f3f5d4870735d7ac99e43e8f3801723ca2d93feb65b90f2de62591374733a0adc84858cc74de57a64bb299a9faac6721da93da32c1ba38f1846c2d21bf3b49a13282a285bc28d88a8cffd44c7d56e08b83c2fad5fa718fd87c9f9e1003b1e276c6bee05b832f10600c90c16237e3de12c6957fe7ffa59698e63bd9650b5161204c20329ced9acd06afc5996713189bcc2f2011e5e9adcd16457c7a77a7a58d5ece9cb1b70143564f6042550f24bb8f9f32370c7f1e822ba95fb4396b155fd43a7d6b335d839ba7e4af2dcf2eac49240eedf6798d2044617815039cd6bd9d0b8b06b91f82104a00021c7da37230b51101585a29ac139ab41dce6da44e4832080f2060ec5cc884925c7477dfb6af1f9c9809f45161e01c7902d16047d9cf3bb884edbe7cc3cc13bce9f18801711abe10a786bcff671920f1f4f83520fd52b176c191b147939a3d8df9e2ca88c6cd85b34fd27210fe3038116f2f69aee16e9c0299bf20b7171c93474cd831f7354a3f2cd413991b4c2fa54d01a84b2a6ab059f869152ce0ff2abc9f6ca391afaa7ebb4072b1b2f7c01eccf049ffec59422eea2dcab8a605ab268061247e49e78c5836d02d523a360b5ec4542acc1b91dcf25e84b0fb4d77a071c01b68a418c32157dd5ab0f16543a9912b9e441c64b5d49db6eaad4eb345a2fc9ca65ec3636fe7e8413edd983bc3e8b64b3d1b109f2a5eb8ce443885d9e32cad227675a1f3468ee4e1aa2ec001a2f0d5b3e4e2444af6e54bd2c77ab1dbfda5b03af66d7693a4cd715b8503225e0f9c5f0195f16ef57f9e7b79b8331d4571aca2591a0f887191bad2369de4a5f99d5fd429545d69b01114c65156404374a8fe42d8ba4662c3c2f69703f9405971f4723c2aad5089a96bded2f826a8054a989daf0c45960d93ea2094e7198ec9f56184af2419424eec7ae7af84b6af6ad98ccbe6d9efd36bf7a0f0d2561a5b77bd2ffa8bbb8c6f597d76d651ad5a42922045109a6ad76cfea9d90fc40302ed76c139d164b16df1a29f51a67801b57d3a77afe18066f7b24c4aa0addac2e51edd84178938289fa88ab2698f9c8f9bb21d8b5cdaa5d6abac3dcf892be1fbaf050fb93e7c1f9147a06d8f788dc7ab892334998ef6468ce674c0e114d31f95d0b8c67c717668e8a17af9c697b9249e1bd9db8ac624de6c452f7e87ea3ca4d46f4de5b58f8ed84383b74f3dbe3e269865ae90570d8524401eb0d72f126a203585db9e36077e338eac09808ec5258f66fc413fdefeac3d44b6d6b3245b0d7fe7f3c43ca494c7a5d1ecd32b18071c263e1570bf1886ad4970bc40295519b0a5e0b76d85cb78b09ce94cdae317fdcb405e9653726ccfa1d94108759959311dfc61ade86fd5b6289ee95424c54e2ee05a36bbcee0cd94c1bbf20ec09be0f6580c2829390859a9f1a9c9578a0cf2de6501a5e57fe4bb304ad7509684077056d1b2aabeeec77222c7cad13ec10fd77927416df4c269b5fbe978437363fa54daf5fa33f3fc503f0239603dcab59df83f014d322ca9d6dd1b602c117fbdc967ee2032dc35bf9d6590ef32908b00b79a5a118f162038a6cf353fa30c23b01442ffe40bb58969bc0169a408764c608736a322a5b444d89c15426efc3b1732bdcf39f52e4520272236556d01d1b67091341863a3a65322c314506349b8a27eba4ed04fa9c5c167938be1d18dcc57e1982978bfbf9043c78056a9d83e2307269280839ff044d9f5d21bf49337d4afd18632d91635df85064c815057838b22fdcb33d66a843f8a702cb31535ef921c339b991322fa35b025dceec2011a7c31713267d5f43748f72fe9f5f347d86ed58841e07d75dbab4d9c590a004342cd6cfef0d0b9ca2a261e01d0b18bf95287bb7554a482baf8677c06fd8cb0229d2033be61878d999d70faddbc9141b50d29b48dbe7e6d32f351ee525b839fa1c58571482d18683813586b2ed0ea6cc7c156d339abc3ed3a6a04716235721169d6a302ee0ad9ad2b8244c03b874d0f68c63f8f8e91e37c323c68d68998b207d1f6cc687326e8a4a1f90fd08d8bf460715de496075bc4c107a4906202c45ff597ccd0bc83dcbefe49a31fffc9b71e99d52b760b3bcb09dd8c2099f4275c785406ff67393dc744ebb94eebf01842ab64ca1229b5893ebf1eed6c5c8ec80b4ef2f18be5da07b60ac76784419dbc8dc50c004d57fe6a1e7f9c6d5d0217e4fe7c55b7c7324649c67752339c5a0c4d4ce90fca11507eae1b03dbda3d612f8551e2973037619b15636c449cba3fc2cc56dbb9b435ec5b9243b764266b08f74fc75d755f85de8a3d1896a53a7508d2deeef566ad68b99da8d084bef09496e6f1fb376050db527cdcbbe525a4b26fe6d56c7be4cee9ec0ac1320ae6abc9105b9905ded28d43e189a16b01473b8258fc337e4e316410c71520254505a7286064d93aad4a647d1d49d17e5d768f2c2294480c7e2e1289d5f037ad8e7496142c1f461374db340bd74824910dda884c192b55465597623e0cf4aef29439386244890a793c02c02c7e217b8dd48cdf9204b3989d7a69552291200a74362d61e04231e049c594aaeae6a2c87110ad06419f2d52ae07e47fc2291233f26107e2e75841d8ea43d6ecf483f996af6f46fd9273a07f63b7bd40ceed02c27aeb622fd1c33b34e73d064cf267b332c1c6ebbf22ac3cddec494c18fd201c021ba665a9516990dbf0a8d797fcf5d202b663e054b8f6bd08b64aef337800834c6a14eaa4567abe053443d919387c761d7696ac1058cea00d5d69b1ddbde1dcc01fc18db21839b76ee3a9ae824aa354e361d27e9476fc5dd4d3c4ebef56e680a91b5ede680e184be69859f2d2c91c10d63d5458eb8faf1dbb47c1040223a310b8b770f157da188f610411b690d0ee4230b95b13707d0b7ba8279fd3ca653966ad75d4f9c783e090b25ec44950b72ff83eeaad77964eda28460101a88e5e8dcd0aefdd0529254f8885b1065cdcd26f2ac64a015ff043a99c8aeedbc5debe1c4e322bcd8863475680d5bbdd7b9e0d633ced57786dda0226526fe2e2e09e511800596749e19880bd57042d3f33a34263f07403bc9a8f64547a297d5a860a6f72efc426f5e5afe50d288211da15c9dfa4968b5da9a2747316153f30828b4230e0557b0a722edc951173f7c3ba74b53548e79db5a5df6d72c0be94129aa2ef7ac76284263fe3d600114e9cc5eff5c72b6a5b46b53e6a871186733e3b1d334e0781277a917b69efd5e853ffdd1b2367b1fb989b2bd2e2fe057c253f1eb1bff4064e8986fa10d3221aab911f05410d1d19187401313be5977cf9879b570ed889d3fa0876fca36350ea776d4fa4642563d2c854383bbea5b8af04a192d7c64f121daa11d57201a0d4cf3b37863a18fdd6bd294290ccc4913f3d5d8598d0f95951ab2f0162d1b74ba256a9b8ae9c1d19e6b651e214a15e8ac8e70340fbae3827f7b359da2c79300fd289981753a05e981308c8335f18126fabdc3fcf6cf2b35405a92ed4b518a2e7ba944c8ed7d313add140c354645c55368e431b4159c2790ee7017a004cb3c16b93ffcdcedcab07ecd52b1ea6ca0595d17eed8c3022286decf9c24e923898dab8646bfc567ad9b71d08bc7bffeefce31fdc6fedda91898342260ab0e40b1b966d25bb1edc8a79323334222364a3569ae5cdf8d91886952179c623fc3e2c05fdd7ae3de23b2ad6dff7360b561b2070f3218ada120b7b4201178edb6a23a06d605cf8311fed1a7acc9efb0bdbecd0f882f912a23ec1bcb871e4e6d5b721625d11eeaa9b411a4f2cb2410647974bd8a0b59d75275060134981c90f7a906a9965a75fd02cab4f3df5964b98e700608c91e3fe3a731bfe3ab30a339bea3f0ce241783e702ee386532e2b8e4a84db6e0b4c37c79adf439be9e10f5269fae54d16edd1e2d5f6cd2f4a3a8fe2a0d4618eb42f7ca1c6f3a623bafbaef9196058deb699cb98696649d4e6033b9837d129c3802809526f84ace3d3627256747b9792bdc91e1b865fe721f89a505a39d770c74950cebb6db3663e2bd4689807640a09ee3d0855c4fae8002b3e98d30755e47ed31a2e2adace3cbaf82545d568f987c206d18b4901c8ad37b66acc688f07cb07d205bd049852815f4f8f842621ff6a588bef9ca4c55ad49849f2602d95f8e200c3f75e35682fa006a463ca1435805a969ee4e5a2fccad9b874fb8212ef71b53cd80b0071645a9e21fc648c5af91bab90b67012c3312207059d952f07c4ed5143c68fd2322732b164287fd685bc4b29ed06a202fa9002cab9298b36fc2e278b42a917b10a4347b64dbcc5089560f2478b88b473f332f316cfc576ea219924c783d29c8dd16b702e7d58b82b6c6335e4451315502417f7b6b2ad7c79c0b22261a94729c47b7ac183c87ef1e488718db43f5177156bd9407aa2a4c60e66dbc038c6640bc6c7ac88c1edbd7d01efa47df9edece620a305457a53ce0ad76da6a3487df7e3426114444b2bf5504de3e6eaaee403938da946a5681d62f47d62b9d10a88da9e9970e5fe617cf2f59c719e0378c4b0f3cea8dc64edadacafd2e6fa942185a5376d4c1d798195261e5a10e128fc6b15c3c3a651bed30c6b4c8546d469f0912a159aeb374cc02a09847579720a462180021cb85605522c7e87e1143118e8336ce7510037e19f58fb98930e946c806922ed270b25047de28d0613d80090245f4a6de770b412c4c2858d3dc6e66aa7326ef6e8a45ea528d33cf776eec1202bddb0bf868da90c1e2f841ecabf888e7ac3a9dd31a32f11c99aab9b6485f75c15b2f74e4f9f940b34a95f38ea6a7562b73926870fb536cb3085d56feb8115e48be646943ccffa8144a74208b6ec39ce0b18dd46f23da27f262d0e3e2a46c5dac76c308401021275f2f122fb810fece71c236392d3d3b31f7c8ea9047d9a0e6d872e283ef6ac59eaece93bab732248219a7b042fb03325da73aa502c94143d1e74323a0ffd9b3f20d3a50108846dbf1429f966e3a24b4c142373bd3f7b2bfda09c83038b5eefd8cd38697b4e6adda7b7ab7e893bf97b339092c010d63d1b322fff8f4b83afa3ed80d32c5dc82f7ff20ee3633568ab8bfe5ee6207b372df2aac1fe16fa33e051ec9fff52cf3ff9fb9077e0cb9b3cb8348a66063f339127c42e1f3f8570de2ac4253ad22b917c80087fb5c9d8b7b3cc75ba518f705062b9cf70c5d6f7221f73e16f077cb219bae56b7e84097a4d1c33231cd024518f9ee48badf4d1e209d8fafbb1ccb5b7c87620a256323a848ad6d88bf4c31b476e1f2eceded122eb251db41a2d9d8648313b1a46520923d3459b164e216e188e404193aab2d2ba9b7a456fef72c66b65e309818ca798fad55f607594d628e6dbf994bf2ef7db0829b0f49500a9ea714e4ff284d96ee026b22f8d252a62b195a2e4e071de81d50d1989f936454bb2d1d41573a110a9fb927e7a69288a6b0f98a83c2b5732330d3404177cf239496e12cbf43ebe230d4f605cd9b6c670ef4847a7d0cd80e593f37fc8f4cbce1bf441159da82f534f176943bb048023b8e3e410edf32019ed2b55692c9e7fe1b205c8ccd3406d01b7f93b3c84e6f9789829a4a6aebb3a0b4b763219737a72fe2217ed0210875a18c29ddfc23c8a9885e8857c71caefe9cf538fe640325fc38c1afc9457796ab0298742c71fee0e211fd7a886c939cf9bd270a9c25955eed054c00628b72c536914a96f8c98000d864b56183120d0a7be77cb13b86b2e093809bd2f4d3617dd9511db7df69a4669f0fd6316459791bd12396f13a41914a9ce05f022b52229f09e31fca25dd89ad1fb3f30d8b5df8643d7e0efbdeb0a424c9495d3638b59663737f466c2feaee41940901d91a7cec1e72ad9621cf67940670ba6d2d50b5c0bf74d085fd073226210e3df1887827d0ec1a8eeb8798593d2ffa4962d72db0cff89f90a611db6032d5ef8ddea1d0cb4184506d31952a937f2f66b75df88b55b6eb3bfefa697eeee6596f49efa793c3f71e26237e0d5983dadec447828eac6319acc31d60e4e66e30501b107323f25b8e8620fd9b565ed319efbcf40c93d573a90664cc342fac72e6a6526cf20764e961b5b8784fc953cf941a05eb37f9cfd6392382a2309d8ff7c8aac7b82aec26ece67bd8cda9eeba5ec216ed587efe678126fb33a64427f1688b4102573086b644325662493230f78c232bd88c1bf9ee08db98c2cdef8558300feedf35314c5878a3a1ac77f0d0d1a1c68ab963dfd2b9af8c1d2d52b14eefd52f1e0da891ef9105e3aefc1ea1fcf5c9e4549a07b247a281795aa8d1822d02b1c22c8f8a5da5aec8a6c0110aa059734f5c6f1afe60d085803e63184284a58528ac743fbb47d43e70eee39aa250d13f620944ea868fdbc4e016df99b3433f8e832ccc46dfb1cd9401aab2bc5b0f32b1703fc84f4ae497c4551607f9e24aaed749c6c1a67976ac466dfc7d90ecf5e40510e51ba357ce1b6e6eb02f3a9cdc423d3460feb0516f51b1338c11a25afc30dc74f47bd4737b28ae011f7414ed0bf043ad84428e29f2ba7219943d73d4406cba7b623ae4b7d91ef7aa799a7027974990e1e08ebac4bda1eeeba599f85b800b8641aeeb677fbefebe56908feeb330206c60652a853e115bcb55517e1a410ab70c4c9b0008a78c71fbdedae960b41fce474caa6291b0e77c75c32008346cb86b7e42d890041bf4f2abb70fbb4d7662d9331b7915572992a69a579e129878b635ef359431adb5a42350ab33986fb5bc4b65e79d4ca3f2291daeef527e0a9f2142d7794451e86d0e336fa7342835ae5b04b84f6277122895a06838f1c04370cbdb920c1db8b0d58816119961b94200fa5129e853179b9d17fb43d21eb36f5fa966e18ffd7a91e87bf543595156ec60ad575c3a38080316aa52fe858dcbb01cbb9467d1d4e42d2a64cb96a90a93be1dc819165650e567c991301d89567b99bf71de2ce3bc98bb14ccc19f407fd3f66e7893c1f14d70b63bf28865d2c92bb3c1e1bf1ec4517583d7942d78e6ab1c079a0fe1eb1a9c48356353c9637e2372fbc8495b8b9804906365286c3da1ef9919e41a5ec776ddb3f91e561ae643d9696242b8e8a9726df54dd36e1690f16be08454b891aa12c2b270fd108e81f871ca4cccd9c90fabddb9c606a120161f80a25947d1e68fc4961fd952cfe90a25193a12713a3039c9b44b69b45287f894b1f5d9cf2479941b301ec79f2c171eaa609280b1830307fc39e762ae4d1b634e9385fbea4bb37be012b7a247c60d9a74e248575f811c3e22fc81f48218d708537e0eea8121152a26fc112597fd332342b4f1cc47f7f80663fa81f36a42ea9c432d43853c383d2bea2a66e11a84caa075dfdd07ae91c36a56171b4b88ce4f59f68cd0de23483b2c450d61b945acf3bafb4e2ca5957aeadbbd983b777458567c23548bbc14be44812b33766467b84c633fe53f37dd5d86adccb5860a1fccf9c52134f31802d71f9dbda845eff2a1dc4c2eac71c128e682990076fa2afcca4ffab2b41fa307f1fc9c281a08381513516d4d51023b9cfcd03a8a62841083189164e00cdb3f4cfc00bd1663ba749b8c1f81dd5fc2146655ea9045ccf689fca77b50e78a2782b43577e0af6b94a929f225870feba4aa1913958042a88678a125e28f355dac3665957b0c2a753135c1f6d242499a74d2d98a2551dd44385209153ff675ce8edc159bf2ece937b2459723b4ba79492f5753737330675967a0e8de0adfac460d243362ce4c33750b5f3b7384b97daf2073870857ad5e32e5801f6865a664a3c976d127f4a169dea5d90dbb7b4f94bcb05766eec93c38fcfd25180c5d2eeab8106c6fac907fe0736e5f065dac4fe3a2fea939dcb6b5b66e14537514be5a990e9555881b4d203cbd7871cafbb1d00bbbcd01df5a1ad5d35a69e31008df93392803b4f662a1e4617d5ee2132bd1acceb6fd6bd21f56bb38dd12454a6b4f486aee8dc0262474cbf8c39a5a6756ed04c1d3c3e808cf7f6b46371df9a4cba76a1f0812e218a953fd797e38d51a5867ba10001fec9a2d034eae904d15b730fbec2d37b7393487d642d1ea4e22ac7a0cf558238de13e0f27b09a2305c2674c9349e8090719e9d91d8b8d8df06667debaa186fddba39388e341679551bf7d04b2fdca734887233f0667a18d63965d7d45eccc4d0c033b30ff95e97d4ddd7d2f0c0b391f90bf8dff4f8eb397b400ab476fcaa933a244c47898a4495f9280d99e9276488a5dafa20cea5affaaf7c30d128a72fafb69a1666d174a6a90a3256dd0e7c89e40cd7990be9649c571d452cc5063e01fccacc58b5b03c8e1dbe7d64ee1918e5dc460f5ea7b547d4b074ef5ebd8ad5133dd0c512a335f4182d5fdb7ec9b91d91ef81c2c2eb54f3b6e4d1047b72105c94a39c559f0a7fe3e7228f57d7bbb88be011c48de10dea670c033efb994c0fb90cd2cd5e73d5dbd2bd55f3df2b4be02d7c6af60fda64ef4273c92ae0e2d1964b0d8ddb377efa6a0d803ece873e6e3c4c1fccbfe305436651483799bdde17b2779b3bb847af8a8b3f8546639724f28439c3cc431518e0a200caf1afa13942c8dfe53b869d3cddfdca5755548f4cf64798e762494ef6f1be08ab2a8cd6eba0bc896f37d7c5ca05b03da51f40513e7e170404e5bc0cd1a38f72c49d50902c8dbfe5bb3122c62673899f88cbdb57d01fdab5f87a30861ea8c593478cbcfb8e25cc8ae509c3825bb1c08428abd86f317b98a1c82fe54567625f3099fc9f2cae9b841b1e9354b5a7fc98b6005ede3cb9d547cadc751d20a65bc49b317bda249ccf97acbd10934a85d04bee03a169f6fbf3e7bcaa6f9ad110ec358626781c5972f84f22876212d2e106776b0a00627dcf005e230e06271b0eccaa8e7fea439ed65d03d37529d1cfc7bdda7a62e0f9024cc192121637db162e2bade388bd5f7d6b4dbca2af446b5959bdc94f8361554ec3f7a3ee3191aae57497a62f1d555cab2eb0bdb7911af8073399c0ac4ceb555ee0dae513dc6852df0d6fb47ce351f1c344a7f755fab4952837add5289c63de079999a5ffdedf258454ed258338f9033e5b602145c433a5fa5380833ac327814ec05171374d7849e9f02b9f7a4e4cc069f45283bb11fc23a2d2da99ef58395703ea554d0f7950da6fe29ba9a4c772bba120e3803e79f824365eb9aba0f30ade779b6768a6026d13593ffdcc37a775bc34252f5d448a105a209ab636d0bea9b4b3a74f3938c9bdf7c47b685b320451d9e07f5714264f33dd5c9e29100dd6a40a23373985bdb5ad898333bf18a5340b3f98b406af18edcf1edcab22146dec9585daa504ca9b368285526c87638ce296c48d0fce2015dae4106251f354c48658252f7b0e776fdc41512234679526e13e9a428d603392c6abc36671aa9e8bd5a1ebf0a8ebff2a6d7297adf7f32f9b7e00013bb13687d9975b4461060514dc18f1c9ae2d5ba9220edcc2c4724c2f24d57633c049e5fdf095fc699141fe5643b4aeff317590d60dec224cdf8982a787cbf5deb5455da7c23b2c3685d74e6eff858292b5109f2ccdb2388f4c69c2595b21463b04eb8f70d51dc732846b50e3828cc884ace87fe761495196036bafa8fffc5395169da74cc4221dd1c218a09b8df3d70fbe003ea3109125b51038ac1899c06f1da72aa72b56b9f077cb3d8884495aa10166d69e19740d9cc819cc5b96a61aeff7107894eda81646c2fb37efb1aa7d9c5fe6ddfc225c248e939a429a3394caa2e461c2f8792009282374edc70b9d45567ae7096da9a9dca0f1471283f3001fd30627ae4e7e5a7911cf1a62e738ac0f58f7916e7faec60d130b48f6c663a454f0b693b067473fa5987004ebae23e74f41d6994c009a3a2e44c453a2b5c108210adb550ddcc6ebfc29d72d0c51b27dc996d3c35675dd17bbd18dee74649c847275dbbfbc40b0b81e941b82764f1fb487310fcd782824408735806bb41098ec531dcf755a14acf10a6ee7c450f474fec1b035a6a7d45a0ecb6c3761200b32b53565e42c9a554deff0e53fd8e12534b5f95a3fa7531195aca2185d5fa5a8730eaa3bec4976b3930250e2a6f5bc5d37e2030ea2791e8347fcc8fa6a1b5822fcfa9028e765258bc191d05c03f7995c1330c04a75eeba903281f8dfcb73b3175ff52b4df836254da42c681d86aa7e14735e9f8c59bc6d8be5374d262dcb5acde0acb64f5a383d1df5ac302e6ef1ba40ef9df5edb4df7224ea881d15b7a039ad86e9fca2c064421c96dfbcbc577feec1ed7fa167b5567bfc63b7e516560379f57ea7bd7d025891be7bb1acb7191eb2cec5aa94b1c8d95fc231ea91b949118d61ba0b178b0870a15025a0f8c5a88744f4cbf42b98be7121f13d3c2b74869a00e0072b8e79c1ed22575ad8c3d5bbb9da568567c862e520290ec4c8f380f357fe1fe1ca98a31d6c0bffb0c8ac579875fa0f1f5f3ac972ea15b34435918fc189592d728c464878d09952b6cc2e5e44d275b1f7fa7f13165bcff3bf06e25188b7bc37c71e916b69db4ced4fc3470e2d854f648417d6d00c9348abf5a9d7eadf2fbf5b6eb207044e21d93c21ea48b9f67bcc11c45bda5b7c27f079851bd9f870094dea449118eea1b72dc95cb180815f52737c3859234b1ff2741dd28267e7825f786034f8d8d4770399fb4e95bc371e2d3c476bc8d017c2f48cc101936b5b4248c4068f803cb6cbbc84087967e1dbd09ee675aaa230a0bb116682cdacdc2d81fee66d6130bb36062cc5d7e85517da3611f1799bb2abac46e55acadb5d153a9a26bf25a8cdf22fb57c3e09a06eee49ec7fefc177660d4f40edf07f9d3aba0e02485da9775dd58bd0f816872242f96ed3998824565e4ea620c220faefac8d99a30734869d70675872caffee98e33c708c7ec29cf1bbb670f419f1ac74a1aa433dca1990e5582894dd3471e21b5dd668dbc703848734c2559eb6c359ece95a5a68e2b32810e1a3b2eac1a0a478655f1c82b8c310b69e4960d3cb35b31d1b221c515661fe385bdf18cc64a7354ce85545cae1d21e0d63381250a31094009efa5d2ed588a2fe6fb9811c7d06fe3089ce4a671f4b531cdce42305fb8171c9c4cc65a3a3bfa96c38df0af00f7c09fd18f60ebf3552cdb83abacaf2daded47ddcfe95158fe663151cb6c185cdf6909cf9306618a7908d9ada76ae6a88afc3b790127d321c31bf01234a7343bfb958311a5b8a2bb0ca1667b03fcda635d8fed6a70300df46269f945ea5e91d893cfe96502312eb6af7952bde33b919348e9f0b42b513048e528d8943309d8fc43862508af46e5ae776d936bce79bc8effb3505849796f380a0e2930f9f1b9467ae57d77f241c3bf6ca9684831226ceb4dbe746c625a669ac5c9af0f4beceeabfcfa9bebd64038f30b778e78dcf674698f0ab28c14947670bbfcfdf2da92294c612d7d0eacabdc84c5d651b083d7982e372d5e097ff0ed53c7f915b47d1823299402ce2c85b96e047eea8c043e1aafb74afb7f6bcab007227858b3a1ada820d954366703b8044cf40e30d68509744f48e38877e39ce91aa6915723e20a5894d3b620e7ad622fd9b0c38b6c8b4571c190ae77372ca3ef8733890fd752d4a4bb89a16ca1ffe19789eadd22aafa357e32b86d95e94510d43622097519f472875d17501e5fbd581d79c0110608e7827f74f777ca182c19f1b8e8702b93b3ef120afad4e9a8c32ff4c99507acfc9db8fac6763458ba5476865f1f5227865378a57de790d99522908a3810dc3b3f91c7ce6c2fa267b056e565d90ff520eb3fdfa8098ebb44589deb7c974aa1a73999827c1028d3e79f8fa7af2995d2d6da5d1be324c4e11503c9729a252ada96b3b823ff38816dbc3302009f09f81a20ed44c656856e6261413b9ef9eff1ff2000e2c534516d283c27efba6607242fcf77dd9db3652ef24bfad6a81cb2a3fe57383de9d6035e54ffb1dca31df4092664d7110457d8bb17411b4a1126e679b7a24c16f202ee6650fe2ed90abb72444c8f2b1c80dc49aaaf79023d1b1df7ca7fe7f6e8a952ea13140019c74623ba1b9e8331fd3a3e953767d243894d42c7f19e86d7f7b98476b7a858b6692f44dcd54f1926d483854bb044f2c10af273fc6bd124477b33b5f583abf70dbba34124d946c0d9224a0b11e61ec155439ba2c43ac845a7bb0c26d198cdc6ffcc03b25d869d426084a848322f202e7e16995504b7a9b63b5a9b97b98a54589a18b3ea16d9235706005537d2684a46d257843f21768bc8d6a21b318bd49be507a89d5c30ccdb0377ed2f42547fef9a2fc4b6e2da90fc5ae2ff2ff9950c8f9dacf8af004b397bd03a52bac5e31237f8de42d145e3997cb68f9159de4cb0304350cc58d4e769eec8fabb9b203be89e6b29f935b829d600373878814f9dd6161c6d610f664ad9d24f31de1c540cf8739a17d08ba609d56fc638997464711fea2efeb3cc7170b6fbc032a5ac34ad195a6855893d7fcf5a2827d28463961ec5e8d166798d8db08deee3b7035c2ae977cbed7365fba645ac7b0ed8aa6008c3ca64894d83d3e5d121672e547b62811a3991be03ab377d3bae2b0f393be45fd3e041368416220aafe4d3d681439a4aed054b804113aa7038f8f353a9e64c2d5bbf7b94578c84c9b5afd7b62dfe00cc6d64eed04e3ecd23cdedfd29fa3257e4b1639f09e045071fd654c7fdec1b3781442f417d31d661a1342e6c5be83daa64a6d54ec32d923a2eb2602fb3466d05ac41cb5f0713f5e7a0372ed4596b984c1263d6be256aa9b44f21ef4e09bbe1d4749a1f397d7ab829db839cbc38cf5b2a7e8c21388a48488d2d58c3967f7220339b79bf129f7aa8af6ee944237823b9949e5cb79b4d60c8e3ef47ed2ed5be7953b6c52501560ebf4b543083f89ec80abe97bcfcd82e4acb5779062670cbd7ab8b053f5e727a1d698ee377faa1a526df40149f5c74fd9aaf8db351b56bb87d18d5d056f9a5eae3cf506752327530d68a972d1d7c09981510b0eb7f2262e96b544e5962b22ef1b4162cc20eef429ac68fa2e41701c43aae7eeb3e6f2b4ad5c46cba590bc273fb54fe0123e296c8ce2a8e252a6061e91d3986f116467c501fe2d9fd16207131a0638c72c9e3b93bf536834977a72e4b64debe76b6166b516932daa3002522f8f58fea67da0cdfc5eaf8d01af6bad9d459ad6ab3d5b78a61f60edb59e149b2aa3991ae8a44ae0c018dd5e9083acbf50302e9a0e64e6440451db3a8719fa4c400c51d21cbb40e1f81d474816688c29a69f6e787cfdaf3a7f88abf59628dd34405555ae7dd9a22e44abf26d4eeb0eba32b95a17e35ddbefa2a55f34d464a693099a07ba7b63d901f530b0bed3c766b2e837f42605f417f5dbcdc04235b32c480ef3e94de13e0710e0ac185d24e864ee93f68623d9c66c0714580c435835f33e10fdec822f1f487bece8dca270b032e7f4032b5ffbb1cb047901ef320c3398bb755c9647a1564cd9076ee8821b89aac9ffd5e516e93b062551c6976aec7978be7f0bf884586de9f8bc82903a384304ef5fecce5f17d08dce89b06d5da5d6fb9a3641b6e750d43eeb4031b1af8fe146ca261c67849d5d06f22738524def5158e9008467871bc121f8956cc17e899ce47b6575f8a197cb84ae5401ed3a828111e7989818e1764f5a0c766e142cc2f727e69a824b4e059bd36545046f7e52e7799d665fd77ba1d4e573accd184ec7b8b5ed72b1a2066d388ec6025120f6066df4776713d34dec2df54d195f3aca39d95e2574f09712759dc83acf7675998d2e2e19b54d089b772819668c0551ab49a035294961ff6a4da0dd5772f02337c982c6a180956452111e3afd1c36ad6c4dad8caee14dd43ac4d94ddaaed412167821ae8ef61d6e2cec4619c4707836a36a8d135dbf4528cea2ba4790a84d1740b7feda5527f679b0179ec25476717fa5db61b6756f3b15021f0db048cf916ae6e208ad4e05a2411ea5df893e2b5e36bbc969e6dbee32846519d00b45687760de21cc9b6693e73132e6385940b35d1abf642d452ed2a13881039cab96a1d65f9c2cc57b6994b9c35bfc43291fa20b14f2b9431cd9d4077710a4bc08816de4a24daaf280455f5af314c7963e2ce23c728c1cf1ea7cf34d5b7586226c45aa0359c63e773a6ce82bd511cc37292bfdd238cf11480dc172845a1fe8df8b11d6e5b2e25bb4716c68f595911a4f8a2b864cf5b20eecdb086d1e56f50e3f73f97066dc87b13a9ceb78b74a9e1631e060dc1c31a8bc7bd3f14f89a5c7afdc6edae5cb8c1f3ff436f373b8198590c03bef96fb795f7707a4a52fb1bbbab77162e1d151b36d331ac541c35eb3898ee2fd412e0b7ead19d6c43784c5221a473e110020dc5dcf87d2dc8a364dd07c91b1d1b57f893f9986793dabcf107ac8115ba484bd2ca0495602c292e8a583ed1ebc5eb939016878fc86c8c5603e6bab80826ddb32688a18d7716b2c6b999bec4794d51f6f4109d67226ef56a2fc3bd0ef70a1c6080d290d103e3ba37d9d0d7bb24b354236635f104b90cecaa3842ed4a152b9c188cfb847a6c239b0726275ad010975af599c15c823456a35772c0081196b162efa7a33c60bba38d5caf15b59da30ec50836f9ae5d201958f34994730333cf7daa645cf2aa1e9b3770d80b1a9d08894b965a70640c6d9d4aeeb89b4bdbaa66a6a7091b2e06676cb5edd965dd1bafc3bab516260d43efec0637d31a539e3cc9ba0c127b62508ef64e4f3cb38f57cbce0e08ee6e6be8deab3db33deac77b2e832401add0ff062b753513634d8980d32119f45baf95045681af4cb2f5812248387b5c3d0be739fcf0ec68ff3de20001c0241549e6a4fbd80fed6b7f0af3935990f6aed8676684654043cb9a75106bd66c4a379907ba0ac77ded7005f6e190b03381c8c9f32965eb97f6d40f52a6e094f06641a026644dec8dbdf73af4fabda5d77eeb0edfc951b8aa6d800c75eb96c26ce5b8a770b188f347c97d276e8f870e5b97a8da9ee00d1b5b23ed97ea495cacc0cf1f69f77498ec30824a6b081f9dcaf218f914e0d22005fba7b7869fc9a6e1fdd649974b8ba2ca136454b60184963a66c38dd749b3c08c1c5aeb052814c1b3ec45e957e72723e7599a394fe1dcf5c25b0e70f00fec2b6bf2389714d6ba20baa00f01c168757c7ef3c7498f758d424db53c0463559836804072190720b9cd511d6c9d619c12f330d0b30c6422f16ac7fcce32e75eb7c34edc8d4704576d08180ab530b85736e880e7dba7cf7f98f3a0e026006595a3fd79bd58b388ad810870777436bb2384b157d1300366482cbc4fc06d217d5877644c9ef16ee38d7fc402b3d74a52b7dba580ee7b93d2974f4bcd48102e00a14934362c99dcb740072f392cf8b8da41add52d21323f52791ba4162161e577736c3848c827497de3e53bc368ac9ea4859c6c7015b5e837c60da1aca634a09b2217dcb9d74a4affae834c1409d32874c27ce9c31945c7665485b114ba876edb61262c62a4eb1bdf8d6458e2dc49170270ef30818725ded97425a0569b8391d927dc8843cd61820f03b543aa0703ac7cc82ffe6abbb58f1ec2bab981d670faed60c9f9fc46530957601d5b2a35ea640223d55c239e8080d63e7b4525406b37a0714b7155ec63d1d34c55d9e5dd8b64291e96a5b4bc84bc37c4bbc0d701e9be328947d0b69e1681729b31b0a29bb039799a56ef08f136578bc074b9b0b666db16c40d26aff681577871268ced8d5ecaef840a05709a018daf453074ce97ca90711e8e7b7284bad1fcbc772e95cef2827c7137b8216642c395673bc3d2b850b59e36497454a014ce6bfb91c72cf6448e83051fd7b1a708a2c2ea349661541220acdfa63250cb9f9a035045f08ab006c85f32dc249e4116e9d14253d2a3287a3fde839c38839f7de659eadc3d4b61d14edb3ffd70c71de58feee0fbf4c7e337a22a57cd70b150f61fd4bc4c324cd89317b8a66453f035b3365bd285db7da084fdbb598e27bfbc6c632f83ef76321652a82abb7a20432cd7eceeae41cc7a72ca03702a787e370c94c1fb188fe5e320692c5b27fa60ca73dfd691d72086f80201ef5aa970d0c7e2884d1a20b1e00ae8c868e735e177f6083e4dc10496ad333d51fa426a568fc21fb01546f761e19739d6b25fec51281bba82a210258966ed0ad22620f7b75f9d2e7de48800f8ed3dc6e6f0c6f56a5cf1ff65dea48b784cea20708fa5e2409a73e78168c13789e2f33589d7175d63e515662661b56e214375db5240b2aac6e582ff692d24190d11744c0b0bbd1773ec8683fa9012b649cbda2a50fedf6a1f50ac09c4a1bad764c4bf1df08819605273288399699d1985a0ea8f41abf55e2c27f706ba3fdde3c39e975248c1ffdf5992443c1c04ca8f0f667a284cfc7435c2d60d871bd1bdc132a1037d1e1439ab8d1906dbb8f3240c1712e3cb6d070e32593bbd585bb1de2f26e7cf7c69fb030a1dd9fe181ba2c98d0e988437e1c52a20af2c78ca62e2989d64c60af436068d13211da0055bace97de40b3c4b2b096215c57ed47a5cc396f1b31086cbffed7d18a4d7c45ed49f4a5e3619f055e3880504e35a0db9d83a57a009aa5cc7587b6add3b8b2679605cc7c7db320b72889f961d8b9d7f75ed2fb0123783652b71a362a5c047e7b8b4cfccb86250f9f1f5044b0587d92dc23340485c4c4ec16f1144640cebf10a9ae7b3dc335768abdc48558ed278bb3ee3c4ba1b422bef54050c28e7b1e29df8485e790c2e7017167a487b80e399cc7aef980af89004c0442a528a52b307fcfccaa48a85cdfb0db3efa325717f91fed100e9e403c4b93e7dce1e2281f680b6c8b6f2a605f824ee01ed964669498dfdd4f476c233fb5c9d2d88e9de47445925ef7c5e265f31ec3eff67c73da38205013abddc64d54149fd489813dfe63235ee68400199f6c9edf8b2696eb40c1dd7b65d40456b07258dd105ff80d898e0ebfb113f8d58465d4ffba5ea1d64c89d9defbac930443e9aa1025ea08f1e0a7e8cb92aca18525ca06e6864bfb5f8aecf76e6750a271cc135a7f294781eaddca89aa3d6ce1f8458802b83009559fec7459a59d2a978c32bb1a36eaae0962422968b119eeefd6af290e7268efd7954d3ad6e2cbd6572e7edc179eee5e2296fe60cce90ed2763dcf3ca945da88c42efc3f206f743c3a365c93f9542529fb3dba330e749940e85a0b79a6de8ea03ffc8402f31ba174f1bf2589b85f340c0f6d6cb1b6eaf48940e6eb23e30c9768f49c5237081ea0e6ebac385a40025c1fe2110434af0251f6110cce775f7fa711214f0fb460228a3bd027c10a107c32eb7d1c1e2d3086b17bc73c3727e0a938383def28a2c75437404ff090db3281da08dff0cf57634418f03b23700643e735b59acd248b34ca5c3b229da628f16d9782292cfbe722c4dccb5d234529ec29029078b09df89cac5f5f2723f4c841053d7d67e24f031d2207609f27ebeff72932289bbd6ad4deb28174ac8a3dacfd41726a1afc735c5f5261816d235aef3083b0001d130452d0a3c54c8bfb87146172190f11eeca82d8182a38c386d1e0dc6887f62561dee5a668680c948934649b6e283a6dbae5b77d2faebff1a3122e57125e12fcd51224ff4d890458457e70c28043311e735d3a34ebe29bddb8a5e49c5dc6b4617ea10db248d20b126dcb32fdad6170a1fb68764771b773419c38cba9c50e6ba9db01b0b8c6dec6d05775da07d376a15a60f64a50d5057f1d149fa3a8c371fc6c6ec5ad9919657cbb1f66dd4788dab977b6c4ce70a352d23df64096dae9367c18cec16b09678e79643a7bf4efa081d1a3651926a7bddc0b50703af01c94f133348864ebc3528c63cb52202766515489f11dc7f298335bdf92dd8f676209afdeafe9f36108f544378739739bb13337607c482d1a2174e34dd59357b269525012fca61b395c38e4f9402223e10a4103785c97b3774384919b4a1e5efa3e33281f72519e1d00c09013cdbd03aae52c9de211b24d6c4b0c9c49033b79a6b22e5e23b3bfb8e721a9712dbe0eb2e2c13a30152811ec77fab60712c013ed3e0d6ed0d4f77e4bcba9f84628e13236ee56684fc99f49d965ea4b2c15fd0cb899c3b0eef4b02ec22ab3aca71a45f5a21b0299f6f42be48c5c37ff4382bb28fbd0b9244f991e621ac091f44e6adace2c2e3ce7abc1c4b664765d3f0bd4f224d055e99bda051fb16f7322fd10c1e8e12a2afc89d8a57e29505c7a9fc1c7751210bc484cbde28e4ddd6bc6cac507b375b63c113934563b2205c854a2287ec5b5b0cfe0a35afcfb70cd0e8eae5c41f96287e3b21ee9be6e5159d6fd14f11e56e825a3a692895d41fe79fe6ac9b9f89b215befb983c00c3b2c38c729e8632581e43db4373ff15690341b2e61976bb3bbb40c331ae8a2b2995cce252e8df46686d2387000bcb383e0fdaacfcf0f6162e5bd48145003c97bd280ccb37fcb90e5b4b8bed3f994d0b71aceae2d1e65c51ce3d2ebe0d428003cd51bb6905f4882d2287e5afd961a51f87385be12757393490e26497562198f290a8c74f87ed94ab737b5b011ccd68097b90a6e72ab458280e2251fbb728742c84581e066b0c677672f5f32e8a0060e3d840b965949d49bbb906aa2ebc95f43bc7e5be8b0ad1c5dde617ac13eb6058c9eaec36839dc9a1201cdb3348565d36ef948ac6cf068ee813073d77a2a7d7c75ef5be6f9cc1291baca68f7db4a8d8e6dbc61e4936b206f9b2cf18f16179f5164484f3f7bd50f5c65b13da29b21bd48cd569bbb8194b801135ec9df3e8684c72a7c6d1432ad283df4855b04bd5c3fa127a628cd14406d0a47c2f6730671c9bf4b3fba2e2da362135381901f08518d8a4a721827b78e92fa54c9ca7631d76a3d419ef7af3f6db45cd10d6cb887dfae91c0169d5d7ea75e4cdcdfde2b4e282c6028f85e3365e5ddc0e5a6dfa8f4e0a7dd76e1f8fbcc222fd2a0a10f15f9eb8bf4b4d59bdb024387fc1c55b9e62db4e4dbb9a3586349da7b95974380dcfcf8419a79066e7250e3dd838a2797307db2b25ae739a85360c175e035fcef4e4082b35d11ac87fe118d38b40684bca4d5ba8f478ae3f8caa13c97fc384f355546cf3ffb1b083cf15f0095ac030e23b7439051b54402e5900ab1515027efc108837a9af5a9b6633dd797c5f9b394cc950aaa3dcf1e5aab50e40dfd1484d690ece3569209628f293574803a000659548c6b43b3fe29c6a2faf33ed9a42d66dab2c49c0ad2028583ea12a37453ebb57412db562c69828d7348e59161ae3600aff88e819a19d708730689cc33a2ce3db9a38da61ca319163c5f37a3bbd2b18b4798a9b7e8f495a482ab55189126eadc9bdc8a95c6352a1f027ddd311aaa28e8da1f681a2403a43691516b0905a1f8a680b1278c722236841599c94bd70d7362fed15ca43f9b50bfb96b754cccef81170cc75f32d1573b97f2456633c8740e8fffe103dd942cd989ddb238aab10a07c68f96e9a49c685aad01724d89fd753611dc31bb3908aeb53dcf04cd67cce9e289b7efe406841ec18f9c653ff17ebfbc0d431b2999d3184a99a3d416ea084711993dd148d22480e21120e39d9cd7b7209abb82072d7e85a8b90eb68bd8a4239732d4e917d6239b6a74d464dda8d7718a5f58b1053a87127eed65373e2961ddf023ac190dfb96207d4ca9ee16c42bd1ae00263d6664b1e7e4c84c02b2ea93be3b3ab66f1d808b6c3917a0b7f6b3e1f926ad260d0675babf722591545aaa19fa4195999215d741dab0d147c2aa8577454d75d2b362ab14c8c707c31cc8f9e21aae94c528bbcace70b3c194d2867d1c1db1f71735c139207f73c481c59cb0e3d587ea6852f1484065155eb2486e016c87f1e136f939c2eb4bf0f264f4783949e8a550a0b4fd7d4197853efaea6c1457cbd157e0876d370403b767bae358bb79bbb92a2f3504fb880de76c2e646aa88386f27a8c3b5d91a0e6b82a603cff067febe7aaf6f70170debc1bf7ee5f8af41ada7dd5b9c2d64358625490a0a646f50ce98f7a7a51e9e4d2526770f63dcda04dd58a3e05e4c3dce3b5b622b6130fbf801a417ea1c6fa8b6188fa8955d71a762ad0f49333db5c306389d6ddcf53b3bb941108dfb9d57ccbd3923a2dc98bd8782d6d382cea24b67724942897ab4aa097b26b92f5aaa06f6d7de5778dee7a15d8d3bab680389bd2ec570aadc3996f4f44c9e7c76dced15e78f393e8058722804e8f556f6e1cd0532d2c4280f825bf0bfc4608101a24be8b0ecebe4d76f68c9c63d9d9f8db14f4e21da670dcf5a85d3e0319d51129468153b287407db65d61fe65a96ed70f9ce0fbc2968224de85f4a02a04c490f76d55ec2b5e871af5c8a4c18d772f94719d94b5a08a6afbff72f9383a9d19a02863a4d5698be14ba2b3e510490ab17a0713d4362f618c3dd9bd517f619d0171aad263e590994c128447702c6f33f02691ccf19d43b0e0c65d97559a36066ff2840645d046f39ef68a5ceca711b040a7835756ec1c63a119763fd2102d3324e2350f5bee2a272b0ace1925e87b5a74803b3cb0ccf59baeab9688ed744bfce6fa48a199153882a3e6c32f6aa82c0bfc328ced683b60a56f2946e2b7eca4ea9bc6baaff270af31213e39c3ac04f155d7066fb8a9bc510ac0df53e316cab386ce2d877047790ddea9b90268e32cec1f9ad22732b595de3124f2de471f6334454307259a165bfefe4ecb71989715333c71e244ac18075a851ab92b502615e9b27c464746c504755e8c1de5980e22831a7ba171a2d4815f3876bfc730f3261edb3bffb5cccf02ce4a54c50c81d1e09a759990c3a953edbd1ded34876449c2261fe01295741d84593bbf89db8f08da63fa937f7863241792ddd30d9e5a116bb578f5a052766a6bf40605b1875e8ca24cfa0ea31bcbdb43477791e120bca5ffbfe83d049710a2399c851f958d3ea899d8d13cbf45bff2067a74265dda91c1be4b34f62d3ab0870266bff6ab7d8f8979b2102a3e32744bafe8b3a3b276e31ee2e355796249eb9988e832aacd66e9363a17aa64d7f29b85afc663b0f61688385c3a5cf4fe47127df4c8e7711172852d5a27b308ab24aeaebf5dc0247019a5f2f415f8b9e5c536249b17fa9732214dec588757d78487efa4694333c81ff9168cc7b949eabfaa1981b606a819d61a4c233ae7154d67178342016e023fe581941adf8c30578d1b0d41dd0757cee83a0c677674cf19a41f718a9ce659eca8fef2f9573fab7dd161782c6cd24ea71fc2abf1a759fe8bd319b17329f84dc2a2797ce8159e5ce26a4901ca5f8eb145f84d50e9c927caecd9b4f7b3b85b7e68a2a3215084eb5ae99796eaab24218771494c5426ceaf7497941434b130c03aaeca56e550fa8d0578c3797e47f75053625ece87f9b9f82ff57c6702254d71360642983f672f2554ceca4172e93aba45dfd103ab23f4415fc0833b73f571bad6cb54c3b049c6b6eb3ab2a43bdaad55296f6c614b062632a4b3c748250f221670a8b2614e3738470a42f5864980135ff4e74999ac35cf788a155d903b8a7c7bd6019d568bb2966d2c3ae5efd4728e4a195c359274cdcf2dec62096fa54c6006fdd2cf9ae6d246aec9b6a9598607c4d02180899d5697fb92ba87e420c08d44f29ebce38c321239e8b5bd1f52846ccb0cd06753013e5d0a3fa5c095cad7c04508a5fb0bb45c3fe4754e4e09efaca3ea0fdd46db945c4ad7d6da96cc199f66b306d3a7baf06fdb659f4529750338c28858e0df0127f41950817c79737dd251430899006c682857501266bd8f2e22d131b86b9d4e14112297aa57efce66b43172560bb28b36fcefa1c8291f20ea4d8dcf149100d0a563330f95cdcc6da4af86bfb7c288db1586977bd223dd953cc9a80eb456cfb3aadaac2236209588248d11a2d026284fd4ab32dab150b3e122d8fcac1e2bd6e6057f1e089d413563445412c4f882a3e57929957e09eddecc263ebf47eccf6932e87f79d2fb9af51a70b74bc854cc63e868589b40b4bb1327dba57ed018927669ca6f42e0eb53a5a77b9734809afcb29d162ddd30fd211a2809832cc7f5e49c3667b75a893978cd7a4b76276a901152e863c58a882c9583baf82a1d9ff89ee50895b5aec1db55ea81343cc5046a6ad7776f582312f2720da0eac9156ddc552c9ca71b750821154d30c854d2b567dd40d774dfc0f949392cc49160a224720861e2f12c9d38b5aec0fba3b192d62a46d6ce1fd0daa658c83a42d42713dc321ac1e831e6e4573b2eb0baef217cc89847df912e6181e075779a52d70a824a74389e9d67adaaa6c4a01995dcba659fb308730ea47aaa016c312aede701ee9a0b6d894fb9173451acdb6dd9dd536208015e8fe4f144c0cdfbc721e7b053c012c7924d209ea08121599f23b2cf84e77eff48a55ab476259e6af9b0861d0cbc71fbe1946dbc8da496ccb96de2969b2a1b7378c656956a76c62b9e4ea94d53fb922a3938690e8206b1d1a07c799b6ad3f598aa9567ba9192bbcaaf24f398bf6962f37d6610b3c03939e7e9fc2e35ecc9debcb9687d72a6c0a14dcdef21a7ae1ba17d1b32673c3367f57b065e754f9782e974c9291f5e14b65bcce7571256e2f10fcb59622b570b061256f7f169dee490b1a5cd25953a00cb3bb9fb729ed36dc57d70fa96ffd1b20cdd99d378a50c1fc704528a674f1bd8e624b4a049b27f8479af333957a41882565b72c9ca466e661c77feb63ffd5e56f805bba9d862f0a38e97039985cb67771a9f8d3fe0abb2dbbec426b7edf89f2d8800daf6916816ae3dfc1dfe04358d04427489ee29990ba4e2a9ac65b0698da7a7d396d1d8440bceca02ec574a967d0ff98484320e4098c306ea994c7f214ad8cf8e9413d16b2d86b6c53ed1501e452b3ff0d524bbfad95842425531a2a139edcbddbd499cbc1ef684a9f97e2e41924e68e9f2ba2d6e967bb50d82470cc2d2346cb024b35b97c386bb0d665a97b0e6600577bcd125d8d688b551fe088b800201f420539baf19431fd7a90d22bfe14050ff7126c1ebe4d9ba8306c6d2bedad226e43bf65eec8df71480eb7f7c8cc3e3cd14248dda59c41fa7ccdc57526f758b0fb40bd5ccb68d9082bf30da54a7ce32942b6f5d2e885655e637842614844aba190bdc3d026f91e6f68d0a4c6ce9d1e7410c467e5417e1af8266a92a5e824538ff3ae47ce140ef106d831641b07cb4efdb588df6d69f4a357c9d97764dc1e824e77b4f4bd6dacb92cb329883b49ad96a821300f3149b7a905d100455af0f56c7d2c1d293722f77ed7647a21ef284b5e2e2568a2d9aa41b8aba204671c4277ca1f084978a2468370c97ca192d496e5d000198eb4424b0ec0cca6c5dba712a65a4b914827ac00646150a8ce1257bd125c4068e256921cae940d3e2bb13fec615ce4e7beb286c03a4696d28b2df5159234c0f6f00c24c1096e0dc6a18f9b35ff166a36f247fd6ffbb981ce9d43d7708ad11a93894e43898e69ce302630668c9452d3e0a64856819f7a262c6f08b6e87f6cd6e6170ab67d0606aef068e00b81f0db7a02dacd0508b6e9c51b290211fd54869996e620174182a8ed3a4802d98d44031c0db01f30459a8e5f80780fb54c17606f84dde500d20a18cbe21f8a68639320df9af43efc511d92d193dfdc92aa2d831c6697a10778c801294f338462e4d90b76c5585db6d19a4389be5e6ee586ba3a83213f118465eb74c74cc48b8a6abb9f48943560c2d5c394c384319da8e6aa1318a181e52dd8e9660cbf3f521e2f3340b153f8655e5de69a5dab56945f63f7626612054386c2962e5c71471f84f06d5149e78638351b1b1035f69c532bed11bea4c0424212482b07028b464b492f78bc4569daddc06a8ed41822f82d3149588259fd547065969c94a867acc3709cde6fe3a8c60a7d9f0c6849fcf34a5186a84d0fc9464dfce47e5762d6df8a1193b7d9e35965aae917157289b935262de2e183192eb7cee6a5453842017b3545b7cd711907e45b5dbefa3cbeee1d107ed831c9687f2edb4231e804847f666d6614cd2f041a84f1a7e1033420cdc7acbb568a8c6fed57d08675d1ec4454f8719f5465117e8974f1848f0e6dfb83d472124e837b16236e009c768802ccdb5191c8eb4c987701cd16dedaf91d00eaab2caa1d3709c1dc8d2dc9a5aebf62e9d5b4964ff248c4955ad0ddb7f71d23d01d7c3c8f5eec61ab4d126d5cc880bd97b6d31997712cf7511ec0d157f66c0ea09954fb5f0ea19f55eed98803c304f48d487b8b1b164f4f38563edd2e83ac2128847cc78ffde50889b3a51ab253f009bbff4f6df44844b481a9d37b0de5a302b78d0fb7f0283d59cd780a484c184b07cab784f7684e9ec23099bfd3f7adbcbde84cfeebb0fd6fcdeb6290586ddc02a1d03064d7b09d79e849a674d8a4b08476c7cc8bbad8f107883ca23380a6826571fa76cb3d9eeff09142b7193dcf182da8212fd01ff796d3058c96e679dcd9a8c03242ad3d0b5aa46579260837c2600ef637fe368876c068a28a490bf2cd1563dd0e398e7a24ef3c91c98b5010cc01208c244bfee5534c9b2cf820fcc00cb913057b680827eb60df258bc3338a8008830f9e40bb17327a088bfddd86f5f37d97dceb2f4953881abb8492eda90ff528f71ef863d69e03828e70667b69af6433b3781658928b4b1a82db001fdcb7608a6463835809a6c448d020ad40d9c9539190f67008b9c66e98e8b0f749aa18ca445230af9be557ffa6b6440a6c005672c03aa4fdd5a8a4f92f2681816e26e9ac7671b48e5a4c8514b2eacefa2979e57aaf21b92234dcfc5dd07a6a41801874c1eb13baa333f79b82de5cf0ed2cd7a4ed57989e9026e6bca737a5e9bb8c78da4f89adf71072f1eca49ebe1c0d1c1c4645c359c87831ed165a166ba64a96f625b9175af095111943a556091f503c42bbeef8001d972b2b00544717500d48752b208c5764f6a4a5c9991bf73d4f2bb6c08dfc8beecfc36cff55b7f489691f8c3d5ca88851af0a9a4209b98670853fd73758abe1826442924b03b1d5e7ebe704af9fa2f2831bb6558d4fe57ba2f4257c519296472c004c133a78438efa9b6e5d257c893fb66935057d9c62dc085ea16b8875f0ecf11f3379fdcf62786c152248bb2e443d4206872eff8607758680e3e36b0c405fc896b2e1b33333f12df8ec2ef35d625f615ac327926e4f55200fd5133acdd7135a30c27dc54ca8dab181f8a879b3693afd029a9d0b25204e8251c5a04afdf9e25fb49412933444173a612d04b8fbf20910e1230eaf9ae77893a0662349272d8789ccb47b743b4a12341939c736b5b32a95a5954f948611ae1a31b1a93f2e8222f68ea42407212b39a57f9626d039849f09bb70075e451a0f73de413171c774b83caf598fcc97497ca72f988bb2eb8d8e7caeea314068317e50e70e3204659eb104986ed2182e77cff5fdbb16331010c22f7a659e56ae732394ced8127ddbaa582eefe61751f6b2ae88c29e1970429527c853fd704b6241e830d291af084cdd5f8b46f41c7a88c4944209c09bc3a706510ee062a14d561bfd1faa12da961dfb5827fb3db116374783ac7be5d60550c5f63eee727a57f8bd556581d7d8c40ea23d2085cd3c56919a7fc21556ba9f6bd56feb1c3f1cc538e727245b2ce097aae5e80ebae638938cf612d07755686d41323c6a0a85fa3a3d516dc355249f07aa8f9cffc3c1b121ef92ca5ce73fb7700e957dd7f2e35ddc19f168227ef3b6580c867aface52c96dd66ab728d167b253395479a5dd7adfd10a761add24c73b47f0a80d1caf09376a72a6ee38de5d17bb83831bbdbcfbf01fe85acaa0e704340178f1bf3d01bac34e501e08f4ed9cda682329702e1faa55cdcd988490e0ec1ff141ba612e88aacba6cebca34e87aba02eed2e2a71592ea359322f97b9adf76d5840e1a77ac820c2af94bbe00793a445b0fbb1203545a0c883e542159842ed02baf9e1aac5249cab0727dce3f570c156f67b76ccc2faae8360b18a56abb59db7147c1e64b1fc59a2abf3c35762baef97d08990cbeb2555e7c0971d751a7c59d9ed8c4c375790aa53466f95e77643b57f0846c6618bd81bdce8e57bd168c5c2a72be0636750aa1481ce1db9c6b92da5b76390caf296fc879e9598d98e3ae955d7bf5f799b4e52448175a08a289a1d719f760f338abec7f03c54ca45122919131122ceaa60440a47bce52247c70ce531c94670f7569dd2a71a28264888a7c807729a4d9da61d58a631d1c12b5f3835db7cbd075b297ab50d708198f260f77c120b5c961841089e87f0cfc42b313229ee32ea3f5df8974ce8c883b832cd2cf71f606fe5f7694c8316a08ec50784cabb661a157b305e160612849ca3634543ea4cea6cee003ab56f25fa4c1ed81f697a9097a156c21962db63556945be0542afcb95075a303589db1d4bac394ed1f906e7bfc077138b35d88dc5ee454b8b70a92943679bb2bd127610f6cd9d09eae83a67dcf34bf83a29516cae1e18671a9b4c944653260f9bb864f3f0c1cc5ebf2ffdbdef5e67df50d42b4ac1aee2bd3967f709ea2c50037ba61ce3424554d729711d9228eb6a651b7dda6a013f3de234b813f7e9b965296d0599888bd0a6830626c6be6f399cd18e59ed2845d0fb469a232f9cf5bebfcf64c4ef9d7bf697f0b7d957b4df649911bf5f5bf0b98a8271bd75fdbd316ae052baf086e859129633a176bf5d4595d26d67a6e45d5dd45baf3546778cb88de3e4aa9e6ce67e46fb09aca299d8a561b3fb655530d785b70a775d9c866215aacbebd56193dad8ca0f79c72bb506b502a6c53b268801579953e1d5a3f3fbc9c87507be55f5d9688b97b56284c67f61555abc8f74539750407555fe708303c9263e5f4eb6dff9c416055bf24f5eb245adfac7acdeb33ebf2a0c9881d57a67fdae9f0e5008e9c596dcab2370ff7413367738bbfe75e52d49359ae9c844f7b6c2445867f6d153b21bbc8b64da7d1d14baab5a7d9a7f449c6391ecc684c8cfe669dedb4652e3df55a4e28f88b1ec30358a11b87bb3c41a39db0bda2a2505f040b66f20ecde2e4cd418fa5aa87a7005f9175047562673962350a313e6654e5fed61a40c92f5310b0971a7fa243d0d82a303d22ec6ef8d8c29b56e01bfbecb6578996a139257edebaf3a591cdd099321b1a3777ef0b2ede864d2d3e590efac81f57c4dc6f9a96db9ff18669d2d6e9ab6ad84197db233d1eda9c30dc18e7b6e1ee39f9f684df3e312e93e7b906f0191029ce3da33f8defda49a7703af23292e40bf8c75cda8204efe71f75a120fdcd5716f334c21d94070249e326eb9a7850f95513f700a8f81aff77420eb87a71be68e319b5d3e0a8b9c886c0b5058455eb09e0ba957c9804bd97e60aa931fcb6099fe4c7621bf2f163fc65a6fba1af946ade5832e8542e014c365721dedaf3c4f6e1720d15e39bcdbbcb5139ce4318a153669fd261e2ac15a73615010bf4d6c13e76569f0f31a56f813faf52792d8b766b2bc205f1e1a02fc779fcdb24e33f8d7f5af58c9089a2f2e5ca5e077c9d09c1976858899324374bfee612344fdd2cc4e79490f8711895865d7bcd247da7177cf854a8709636ee5ca1de4e09d362f402cc9cb2208a1b8d42692fe6328b4009a716bc898d78d99972a9c095da5afd12dab528245600bd12c1f948ac7fc8c4c44aa1a3b459fb1b8104f0a9a82daf4fba907451e9054d8cd42a3a051bb7cd7c98c68e54fd9f40766348d5a0b66ce48eb5b024e8308e005856e28876b81b489a54c5f80b139d9ef8a489ca91c32a6d249f06166bfe9b21ae449c703b7c282b38a378617604546a84bdd19a7c39e9d1c275e6cae7fe1ac08cd1fbf2f65041a6514e5977247aea9dabf8f038e2e547fe211ea725a94ef65dfbca3f181522c84e525979329c5eb62f541463eaddc512e302dec43af55d4a94ea673655f4f6a1c39a3f53ce910ef45565fd413800fb021d05a5fb40efc02f5f8a9e8c53bbabe12f843cd9ac7b88d1c45b3ebae5616d8e009d5281f143dddfc9596e6dd490d41e8747a1c77a8a32a23be36de9f8e369e89b0d1d8e0c0bf9524e55aad21bc413bf732a95ee3b14b028a0ccffd5a5b327e4e81085ed9b839770a70d32a27952a29eaac2013b0d022a3f7342554b71eb099f5d136c7ef8e4776fa1c9eee280829ad406b9ff2f64c538701301005725104fe568ffab68a2152e47791ddac8469dc95ce6a4e23916e4e79b6f41bedacfb1f25e18b9e9f190713d2b96416303bafaf223bd373009e31db681653f7f468bda59b151eb2358c0a8a302a2290b5748166cf83fd55b8020b979a959ed2210f6767340a0f86c9d8b77507e81be4f2fada0b1175ca0818e3bc1aa89d28f9a1ec21ce37e8d8e86077f8a028470da46eb939e49835491f5a2c3b359b0a8b2ff4b128ef8b6e35bc7be5bf979f4c8d4269465f45e4baad7bb20ea0ee8aacc2a0cff10f4fe86cfc3d6724c894bd3251a74e55a1751a5197b79e7a304585c81964a1a39e95c649521ee5395eba09e93e198c40caf47b18a7deb7a770d63c97e2e54ba536b4e77d26bdb4ac3ee88d924f68b18789d0f0846675df9248e6e5c601bd5337cd40f31802293e0c82c0f0044281f74a74e695dc7d0627793876eaf548b7cc7c7307ed3a26b9376999ad8d4b1dd5a1d1953583bb3ab0be5f9d5ea138a12629fd6e14fb99fa5ca0d85afb4323833e330590a16792666c8c8c059c009905b98425e2b83cfecbfad1f31d550681d24e1af44bc900236d0ccb0a954257934d6523c5044c41c8da77c056e83a4c0b1a2d4c503ad3e707d32335297ac97799c736a492ecaa0367b943b323aa3f679ada7040f12351a629fc5acdfb71a05f8da301d7a2e5b82de2fa80e87f8a2266bf99a2e34f8a9d884942e44ad95c4155492d4a3bf35a62cd5231259a134415a03c444c610898542d7b5b0d8edce22faa1ad7e8ede44ee492653caace8b91c13a8760c31960a1ca63a5102746642899ca3f143532ba635a26dce72a381aaadffd4a1117b3bc34a28504443d1f959285086e03c1d21d74d5200cda0426f5cd6f8fe5e7cbf726bbe319a7475963d59bce9c50e9ef4c98bb7cbb61d25936d3e2e8c3eb864f21cca8383af38348f850b84aac017bf1191c8f7b55d7370a067420ee05a1144e3f813d2ce51d6e2108744ae1bb91f8eb6e7da5bd877ff7029717cd5df9827d53a83bd59322b3ce007075a778e285175f7df4efbb9b00b3f885020acb65bd8662c393c880a11458b945ca2bf03356bd09949b02dce0133fea71fdafb424b5b06b0548dd5d41f38c6f62ae5f9854f089dc7ff40c248a06720429d73b0b4880e9cdb0bc461acad8f65be5a02bdbe03532c333636245743a42c147e0cad7ed690f4bc0753684f19eac2d0fe31c065978aa4e0daf923f72a6345cf86d27163e6f431a6a9efc34aef628c7abffb9688d02218a0385121e85511bf66958e513e0c30b02d383b8b0c2e3704f7d3ee7381b91c884acf57392b1db2302687d8ee6cc4e46a4dc19999b5d3d8ad1c0305bef66d4725a4df32e6dfcf535d6333edfcac428eb657573ad26a62e42e4f127230ea5f0fac417d7f93675e4a1786300137fd5229f9c734e45160eb7431468bc3783eefe7f804fddb16c1c021f0512ac40ea4f3d16ecd086e1034d2c7e0a46482119128a6f0c51a6d31fe13d1a431f2fc7a2433146fd0d9eb4bdfab4dba8776caca7d01660935ab683fde797544795fac92517e768f9a13db3e5d8ca4797298aaef67595bb0387f426fecba4d13a8c82bdd11bffce729cac3432febf05fb3949da844cf039a3a22c8b3f8f0f16a10dc103f60c4b82a50b5923f23f3557529f14a4a43e852ba75f909fcb8015b6b789b398894152b8394c56bdb668a572aea79c36a113a2939bf833bd4d720834c96adbce5af8ce14f222dae44405dac9c53f5277dd1b0e13a37d8d7ff836cd2e8d33bb1bca8e2ebcef63bf0030d374a09826ee1a1fcb81a2d9e0fa2c1e8b5ee0ef5e5ff461a2153676f6026dc02667f2a10febc977b4281d64553baf3d324aecdae8d3b9dd15d91f5937477b07f079aace3a08557e97229bf6bbf31b864f307ed900a8b571b205af7d1753034361c728b5f6c8f9c9b2059cdba62acd12bb47b8b1e8742666a6d7031ad79083f29a4019c7d6f3b6e15b5901c6f6ce09625cd9714d6a4e5c5772c34b9ce98cd13f2c289a772413b111f11bd9f7302e3ec860c4458ca156e5aceeeeb363617a5a9da897b28f37f8a6d8953cf887767dc4e17af8f0d80f2bca19f3b32bb53daff3bb0df8182bef3476dfce2065d073553d4536fb009c1073da37d222f79518263b3a378a49177aa0afacfe20924fb63178f8d068d2e5ce5709904b7c1176fdfd87af27e2ec8efad53b86f808688696f1eb69fa6bdfe9cd03daa1ceb85fd4a4f66af480678e8b56b40f335b99209d4a5abff04d475e25ef2bdcbbe902b346ecf7beca1fd5a227b3dff08e2908f1d8c59461155dd02f4ba28138b787369b8f258a494771bbdecaae3d4a22237d842cc0aab224a4f11d4f94404de82f6909acc25eeb9ec2fddc1a6b7a1030b396466da00dbccfd1286a2ac4a45ad6d361c202f8c460397e5215eadc84b6ebe8e17df70a12f9d96005ac335d6f3f8cd618a11f2932922b03c7229fa50f32c9cf6536cb856f2f18a1afff2318664594e13da9a457c4747b863a5aceee121019ab1afc6bfac2d741f35e84232dd2fdf0cbb2e95a57b67acf37dfb0ff5d4899620c6c650ddd0a165729e22a7712002ea54f0f2f8d3deb936bb5bff2da3bb1062e78bc6dd6672c429db31bd4a95cc1cb9c8a1e86165d69be9db5344934570ec63051df9f45a86f0074807ebf4a16eb0909505d8ece23db26fcad6f11b30168ce0d0e9d10001400ea843b97499bced674811f7f9c3d590dd9162bf2020dc189041c52332995f96fc50fe781fac56fdf1e7c2febacc29174007f7d16a60ff581afe45dd2410169304f55a070e478a6e8dcee583b269524a4b8455b871af2bf23fd4b701d0cf91e1b9262be2752fd45d6922bdabf6b4c96d76d5417c32da9f38596951dafcd4795edcfbe6082c5269d129049d7f83fd7346dcd401a9ec137a48444b755936aca99c5f9bdf1ee45b32109fcad361df70c9566467e5ac08235443da4abcfca3fd1b4a7b87916ecfef630ac5285f8997942bdea190fac25ef05de95ebb6d3c9cdf236fd05b304922eede5f1f03f708a168d0bc1fb16e29cac7911b3bdcfeaf83299fd10541e3d0964082e50b163d744269d51dc42f1e6492fd4fa800f9ecd3476d4dc9346dc36100e5c5746984489cd7c5a33caa9ac2124b06f0d2e1cc2094da13b2419fb209f7759f94bd59076d75eacac90439f0eba78737939ae69553889abe6e39ae14b6ea55f998f02390acfe81719a6a126808e645f806938ddd74c1f34cb6df224f23913a5eedd56bee6768cd5209b624886f95de2cf81c7dffa77bd0c060f62a39dd9cfe737f95ecad20722618868a812a8d6aa29d1909a92fc550394db230d7742aafa3deed12b7ffe5eb31ef35bb929e490e7a7ecccb51385a406e078787c0ead7a4a84a8b1d3832074ffac7c017fe8176783eba5515ed23788ceb8bf5f1bd56a71891c8e7cee2078ecf8073ae70811fa7c42c5eb4aa0f36a7ed762a708ba6bef0a14fcf26d196d46fc457bcc81070d8bc1bbbed662cbc6b6739439fc610c71f8a45c0af7ed768990a8c064707451be1c2edae04fd3f2494f1ce719884b2bda71ea68cf423f2bee3c23f9c631a261df536360ca59726bbe5997ab9cedea12db5cd952723bcddec6dd6bb0ab30b9d6f3c4335e16f66c534db09a2b21c0b9225f7b0ac60748d4405fba975e561f5cf0c80e3ebe12e12908bcc5e0a7a7a2499e11c258863002f77f9fe923ad4664a916869452bac69dfaad309b56d67b77ca2ef6d204e8076c14d1988f7cfc0a8aa2524d390363498cd6a906fa935fafea15609102f75662855cf0219074dce2e6e1d36bbf651b68045928b3637c5f64e16222a1a9d0cd5bda31998348c19531a61f6a1aadc31b9daea098b96983e6e797ca4a65c5135f36e5df0c3522aea2c09d420eced8acee55957b2eb05ff3799c78780e7828c6b1885d8f8fa8102430d2981c5818ffa3f489a8805f5499c192b4f5b48c36be9b7dbcce2aeb274cd1a303037d07180467e0a0ad5467afa6ef1bbdeffa44b9a2e111dd0f17edc0dbb512001df87e79c2a63ba9d55dc54a4035f7f772ee985c111acfb576bce641c099c602259c41078adcdede7396bd74d5b27a86d55a53d96b77ab40e0de2c46d2f9bf291dd17ccaafcd7c818e04d594eeb8eb6380551feddb2ab064e8ab9752a5c82f9819cb7cbbd13716fb43995890d5440930ed410d9351c97b04eb37050202f9fc68404a3302b01284563ee0d63e36af83c9a2ba11ccdfdfbe5ca8dbd641c9274271e5deb8c6bdcef305aff4a2eea82d7fb83a5284f7b92ebfb2a685709e52e3cfd26b8bc591cbf962f98ca652f958341469b9b6a0bb53e8d652ab9bbc9f97fea65ed768373d6dbd24050f9843683979cf35c300087e65c0f2dee479a735be167dc737e69274fdbc60989c6013a97956324278df3d6cd78c15eda0f6a234d4f13ea457567bc560f394c3ae6f25522c8e302501e12914d5b8d3f5a69223e2cda58a4259c23b40ea520e8f5b7f20f751fdb363164f988c8bd0d89292272291198731492b6343a8031472a185e3700dbaa017bb0cf6ba2d54fa5f0dc7f69d4e5ab6bb2affb6a2347bd13736eae7c4e06b6aac3b30b4a3d94d48bb3cd6f4149e1bc5e2672be391e098cb296487bc8e9789ca373378deccd4a66bd2b4740e0d46905116a223f6e84b5dede9b314258647df7a71e7dd5e8f2e19799c4455ed912caea9f87d70a8a62b8c796806883d281a90108720e0efaeb95b1ca9c48574ad43397edf55d16e6c4a649770cbe02a318193139883fdffcc9489ce983527c5f2858f6e56bcf10a021927511b88b37c267bf4df3abd2f97f242c261a12e9b1df60248be9bce5c4bd2ced1f859ad2f59cce70461f67bb10f0c54847a0c9c804ed1fbf6d522579856681aaa516fbe994ab1ecf6cac73a99926a9d845db8cd19d2a10fa94811c091b0f861804f73c773aaa2698ed39fdb1210400204cf95d5f5cb0678e7f7c1d5c624d893c9b6d123ce33337ddc8ee31142da26cce59e2a36f757a65557984359d4e20187f26ac9947a3b3b193701ea9c1721989308e310e11199aa0c4649d962546692eb8ec2eea71b6a54a7deab8152a34c76b8a3cf74855ae940b1b429789436364dcb45cba86d4a995fbd03d66af9ac9a866aab93992e41661784b4d54d1cfc22189a9d01b37f4ca2fee11e18d8f39d73ed417d9d543211d5e67e267f3587816e7ed609a39e5714821961ccbbf4b905a2ba6757328e6f1085e5f02fe5436340332c3adc6a4df585335a309ed65c2443f75b4e5c51c6dcd765512bf6c53eb23274747afb3c78d53906b0e395a29f861cef26fa24718c66bf01ed3d7386202cc279cd9881fb2a383805d0b1387bc2995093d2d923c5071e776d7cc375b498516d8350c3a38642b76636af886f12be366a37fb2e5a5e70b7278748be1db7894e0c613dc585b0f52ca2180932a5e4ffe060a4a10622a99558b4109e84687a89acdf397407dbc04aeabecbde87d4afe620d0f2a9c10e8057b7f74950bd9d2263d5d2a2fd2077fe9c3de9baefb878b548aecfa15b2d264a2c8816b1316cafdc95659c2880f72f971c492077459d91dbee6ab66fe22bf4609d3c41789c0edfb0d24ea69dce6fb3284d29c5acab1a2e55132d5219cfec3a49c9117f11eec739d582cae7ce56ae321f866b78c42f992e57e9595e6b97b5411fe16e5cea079ebd5d3d1c1bbeb0e7041974d4bfcca587318214504301103a04f6aa939612cec539505424f92216c1a38095762ebf24f0db162da268a3f884c4cefe961e12aaff3b1248c264c0e640a398bd180911871cf0bd4021a4766e70c13c4bb50da409049ddf5107b00d224f874795eca0c4ed4ae4a94eb78f1577ae13bf12ef6465dcff7d78d83865cfefc5980b1795dedd3972eb1bcc11d03b7a61f35869f7b1c71921c97dfda23d7e19121ca1147db7319216a2e2221c96e2c444e8f67a72f3c038338703123b30c68e638b0fae7d8705e42dd13c2e4ae58c0665a6bd028456c3b74b9cb81d12c2fadf6db604ded488d85e14f9a6beb26809d2689975d3ada7809786bda35a970219c2b8e99eef6be4fef290967e19fae01e216960e452fe90dedcd2b1ddb7aaddd292807f09016e146bd9e95312770c756fcf59bc0bf98eff4910cf2fe1577fad2acd267c99872e931f0c0998aa84a86f5e1d02b3f3d6524a49c0b5ea00104e36599532186ac95f1048ccb02552e1b933eb2f85e8db0b35f4c5fe59a054ecd7751330e159d36399a6e61ac0bcaaa38371438c7a716e4c872308dd333af6acb8f0c888462077c42ecb563f87efe5d29ae645a1969fd464c028c7f97c53b84089671eacfd410bb055f2a4462c9e0eebb0324e3ee38a5cb08aae03ec5cb69750d21dbc4d69a179bf9c21df7d1fca2b5f2e8b69178859b4a2226d99da25a209b6ce1c8242845869dbb1ea0ff89fb369129d57834423889e3f057b97e6a0ecf002fe1b5804425ec6c678888a0e507362dde20030c1b1b468a2ee9477ba6a5074f586f919337f47679271188cdad981d30c4c7d7bef07ae5c7728f73d04607a28066aec940f820583276f2afbbba3df89e065638811dac9d98028a264f319a800e083da24ff0ac442c09d203cd494ce120ea98ddbd054c3c2147f2436be7ae940e25f7c440ef5485e6ed919a68de94fcb3ef498e7b845a4729b1544e51d4a573d9dda384e6966775b945460211018d83c8dd6c7cab9d37a7913bd2040cee1d0095a94e2bee290d8bb698e96ddcdc4ea510baa1439a6c7ddf78e0caa5611ea125e9233c18670024c1d79991cdbf6c690d13e7e7c3bb964818eb28f82cd2d2639da73779058ad85411524b26738033ddabc9dd2ccc40dd15e7d3745aadfe950fd87621a5f7156921e581e2546d130b1de9d16217e1b230e30bc6c6d8a42130945ed74847707cf4db190ed8549c3fa4ded93893865bf5e81428cb3a83c39fdcdd044f34dbc699d1bd3256e35d1d7a622dfec4b6745c1870ce24101662725fb0b1e7adf9122dce9bd9c0e51386fa9ba77bd67a4758d7949b6dec95fa149cbe638ce556a1034690406cebf985da19782332ed15170c92ab6e2eebd6bf2cf569c0025e07b21c333dd144b2f1cb518418c4e588602439363c01bf0b0d8eaccda7d816f5f2c773a4f8d2bd1e40856094a2c58328fdd220ce3c16948bae9c42eb6ef9866804cb032c8cc0b45115c753ca9f90a6d6dfac8285af33bea2dfa614cc6dc3fde26deba375278e83cb06bccde934ef16b71e47c5aa3f9e0bcdcf798a3c52ff7531d9806e80215e6a7c95d4f4565ca19fe621eef5ef1558f6b2fe3d4a28d5b442e5a6587d79d482bb503ae33228dd0dbc88f9ce34005effddceb53039833d33dbfd9e487e0375b815cd7ad46e4a308ac96dd46acd3b2948cd57bf0d21e2293275c1ce64bcc63bd842ae4fe933a42dc00fc52797333da75fc8519f941a861961f1c30f4827dad7f653212195cf61dfc4604a585561484a4b8085dbe7cf53b5dda0fcec68a06e4d737476bc85ac53bdbe5d8bc3050eafd9aae0f44260ca0476f6f047bcd815596a1d4ded6ad5d7eba2f5494d431f333aab4b644f32a5409b2d33523ccaa296031d949402eba2afad9753cb3beb6f471b8b18c1e1f58624b4f97b000e8b499f96122dbdf70b6b6b2646ab1d527de86951f36582c40510c05914d8bec1c77c1bbb742920a3bbfaba2909372c2264083ef044ac519754b5e1b0689a694ed30bbae09a35f4303c33f1fc1b640de3a6365ea30daaced3a8f59ca6e64344d4552ee97c8d4caf30c055ba6505f4289ed43151952364d45f2fc029fc1fce48f9d03021b3e063352719f0edbae5c7814a7d381649692128e7e82c134b7f12284be9f9f16b3909f9f19fa5a2aac414241ec750b629186ef7f2aa80cd093ea5fa26c3405e79a6c201f085746d2c1e5f27c2583be1c7e8f455a63076b30ef0e71c4c50568782cb7be68d749434582e3744a45ca5ddba98c5da5cacdc0332c8cfb34480827534535fdf9e939e723231aff8b1f0a3dad3c41707a943bee242b13f18f7e68cd0b0ecae8255ee1f0463f2ed99e0777ebc7a3d73e942627becf825a1c861303e5c09a02b9c67cd19e938405307b573baeff985a3baa727b24b43599bdd5a0ec9890ad8a005303ee5594fe4afa49d6f2cae4213a41d894b4ccf2690e370ae5ea2730d4b46d385cee970f14edec22912ca24fe8cbdd14d564f8cc237ac9d42bf8260f55f71a9e92dd49171ba07fe49cee9965fdc428f848b0add163a160109dc393b0c36d6ff0909a4a4a9c5c01586431d8606fc42c55f9d2351253ce6fc2d62fb7239f548fd8035a5942fbdabc139a62cda419c8df679d98ebf7584cdeaaaed2d7c6108e5c810d254c683f1b2dcda1e18ee9bdb7ab99b3e359950fee03353878bcbdbc20074ccf5496a825e1410d49820188c4d6861efe2aaa8c0c88b5db339dfec598b62d56b2191fc27833b478f30ed430f9549cec2ff462e55d736152ddf62c53e91e8e7341f76729ebdd6a1ef3c3499838c084d0e461766b6b0d3c05a6e8bd1cd8c9457d594603ba52edee7da1d0d4e04a8d0ea0d5a2a071a6377cc2c90fd287924da2186fb15ab03337f037f2da80ce159596cd977d161113d5a79ed3b9c69681e58157abb7c5a5fdd2d99aa47a2d0de993f0dd1dca83403f52f06519699848f8ef43d4aa2df0883a9a767dedbd9813e6a7df829cf8595cad199f2cec541592a86d492bbdba90cc34aca5196fa2396d6cd61e5c6e886efa101d92d0bce7df5a4a8505f49c596f4647ec1ed998a0ea740288f9a00e91e922fe52c87dbb3f412823019e9bbadbbb781e824746151d64ca69087434493b8448d431fe8789afcb5f88d01bc35e62b43fb0581693c0f8860c6e0804e64c44179abf385a2b6d3ecd4b09832b031be89b1d949e0868be0077a2831ad9e0627e7987a46829061726924ba9d16d373ab6009fb34726eda97a859d7b38b58bac4eae93aac5ab5d715677d9751358b323ed5291ff89163f879febfd683c555b6f2f64cee4daf07f21f1cc50cfc8a402ef00cb05f46144c2111b55e452696959242dc38e4732c4d45bcd889dee125417b838a05a3a0d13063f903a7a76e01d62b76b8b49b4e0a96f6bf5c83f8d383c079e2f8fc4a590222a52110c9baa2c335a209d839c65f8ea34d628264d18222abbb855b0121c31a4f7a7a72b88eeb7a6dfc68f37e96e13b2e35657d65982e09131bc6f9ea6b9fcbe2078cfb7314c52eb36ef9c061954cf3797fe2b9f739b24cf367212eddaa43f045824fa25defdb1b176c5378264f74dff90af7c9898d1c3f5b4ad2cef51920ff431520cad3a36ed40347a661c383cb2225ecbdbbe535f3732fddc7ccde6f0c19102f9de7f1e01005f324a412690c7a6afa95e0956693920baacea15ed3a11710829c1bdd78a724cc9d438781e6637d8134e4d7e1bbd7fbe4c0fafdfa519627e5f7b8ee8ceb1c0153d5abbcb4f090477997701e348dcd0794321ce16492c080b3fc4d3150b0ef502101f918fbf7cffbaf3e9e89866d5a25a329380c977b8ac80c48459ec37d597a0586a8b306c34105adbba9b2fee47af8f1871705cc9625c08676c768b514f18dfa68715a9dbcb5513bb13e0efbcd593eb204f8406c22fb411ec385400bfdcbb934c2fe40dfa8f5f276cccde5256600363f21d2e54193d68ce6bf0bfd23cb58cf4357f510248f67dda02f1c487f6bb4792900895a450ed64b865a7307997a9181e52069141595b81f7aa84bef074c25e36ccfdbbab997f6809e54424e13572cf928ba41518a3a269499413afa5f6efb0b043c798f00c4ef840b5f6adec735477b3504139e79a91a323efe54cf070f33a88f3cfe94e302c02a0a64716edcc287e4aac9a74a6240072d9f8e54bcffbdc06e756fc7a76cd9f4fb0e209b92dd60be403eeae3b5e51380a45188b1576f4d3fc1c1836746b18ee2dbc5087e16909441ceee282e1ab6d1fbc430a5c23caef7e6618518d3e04263753520aaa41525f2688fe9d46bc41600238341eda71e67c87fbf15b11876db21916c7df0ec50cba031f8dd01a2164581fa57f82e7a99ab7e3f06233c3e8a6379982b0ec33edaf1f696dd6b2f8b46ecc46c50ca1fa8ee7aacf4f4a6343d1035440b4693c3598c9c43c557a7c7efe4dc82dd3c78bb0f88483a0cc29891d46aa80b922917ec90fdbe681dffc6ca21a028c4b222379901e5c92db70a664d34a1818583b8ccb7082d776cdff45648ef4237a5cc8945012450e1f3baf0b7809ca9cac4bb700790795a993b560200b26675956e4c114473aeb6c0a8be3c738770edbae779b58fe2e8fabd4c52fbf8bf93ce3d349149f8b5b70fc4087d3ebcf7c0a4a6429b444e93ec12e64c26634daa61912746569b603d4c97afd2581ae6a80e7b72d26ac37e2af26f8e9433ff98cebf5cbb49d81e017d34854dbf781e91a7598c11dcc93e8c032f4c145f6546945e9fd088feaa225907da02cb9871a9c472d755bdf3ecad1b0e5b4b519047a44a85e4f57455adc918000555a6be48f67ad5a364decdabfb36559d6f52479682fe6d64b5982f18eb745657c683ebe7c12ef5d04b31369f610605807156ea54a32d411f144c7002e2b9138429449c27a05b647ad7c50ccf8b041a299a03dcb8b389426f0622a4992078656ef51911d1cd062ad80ecef23c11d320d2b90e8a18192cd220a90658a8c67e56d4fc6f95104a54d33c21a089c292653bf36d66a77467575288fc034549ded4a0c2e4d09c7ead996ee1d733e6691604572d3d8d1fa8a77274cbb770435d93d79454df57ac0746787000c35de94d4a0bcf2cfed76f93d160eb6124ff09f0982b647a801a1a41f6c810d9bf53ed21282244e93e30999a7315bc7cc7611240ce8386f0c6797bce7ac8071ab1a7b2e86e65460a27a6bd8fc8d5046d42e1dcf4a20a3aa135246d8f20c2b543f5f767dd86d56b370e757617f51d8d2e04b53d5e9df904253a13480491671fe255534fffa0037e32e52e1f4f48aad25b4b8bcd8ef5e335622662a9f9478be13f3de7e4c814aeef79c58bafca0a814dc93f2b9693fdbfd9eb367a3cde885ba90e4b3dcc1e53952678389500bf2ff23d2ae8be19ab117624d5ea011a9e3b298b114e0d7e2ea811bb159ebb654c4479c4d3ba82ec202d79c10dabeefe0c21af9211743946f8218fac6cd75606a711d517bc1847fc18b64929be2a6a3e3a7fb5818eb10b62640bbb9b25395aac3e480210134eb6370f30abb382fec3055ee37133ffe4f986d6368762ca1ab37dd935480a62ec03b011d9c1f3feb5cbbb956d4f08cd65cd358f0e2e012fd8b19f987e28c55f177a57b99ee657ae475d9fdc97c496fdb6713cf253193f796ffcbc99e56bbf6739b3ca6cb5aedd774e9b6c6a5feb3e7a0f23ec0db1f7531af43ff91c6400de93d49a8f9be3cfbeac41f07b4d4cb467f0956edaaf9bb3027348732834114da1882b4f9766b76f71965b1c7fd707a68318e3e2dea42dab6c39d711e65ebaa27f75e9f5a7bc1edb88663eed217534430b0fd299b852b91d3463c98efcf13be92d307e60beb6109e203f5594245b98856a40eecc77d45bcd2e3e30a5183be71c75a0bf5b34d58394da97f28a1452848b5ca322eefce1b7b34e0dac746a402c6893be14ffdb5856d89d955c6ee85c0ab581133ebfda3fdb071243443d8ebd0264e346708858eac9a66cab851717f86791f163ff2e8735182d0704ce88a10a0dc610bfc4c19a6363a92e2c91c582e88a2eba84467530385dc48a8f492acf45d9aa33375d64715e0c9437eea2f2eca5cb762339641858494ee78e3ef116e638bf3cb1f42793cd76a49f9eca9c21c2a376f3e2821cdb14f70aba93dd0aacd6697de4586ae9bef2f60bf43bac9c6fd7ea6242ddcb7298eed3d4ae38de9975180663997175bb5a439aeb4a393105c3e4d2c53426a3cca376e8ec6117e0582924e71445969b2d4b833a1b4755d9c5b91d00120f785ccf76a46295e39b2c00e96690d22c117561bc16c51d2ee4824ce7133c2cfba5c684b092df815bbf1fc4ef97f425cb85f3e3ff9e11f2329fd23747544324c13e9f037f0b2f533a984a04cebfe045d85b38c0902ee443e4025393f6f9309a44d59c47d1f8fbdc22b37ef84f7cecef6030ce0d8efa0c5c27df514d56120748abe6bb1b62fd98212f5b42566a0ef55dc6df84f1ca99b5dd0957943124206ffd392e274cd18acbd35c62ea4d7c9fb8f25b3ae11dc94880c8df3bdb28489cbc5fa2f71768248ebd683037ce1b0f3e048cf629e3031998bffa2152654ee9842019d24c504e908247618592a943e4453523a2348b2c9694380bcfa816ac5ea238cfea88ce2e836c5da516f2dfbc062c8b8a8ba5bf36526366c0c9eb417b615cc8c83af9c90bc4827d753af20f4ed21037ac4a75e0a5b49c378c783fd841e9fc7363685986374a41e9984174d996bfa79f0184a5d8214e6f430a7553791909d16824502bd1d744612691020e57559552286959a68ce8f37ca2b688f9d48532b52c9834ab177f4b7d0ed65af28fbc6a66a480f74e26cdd7ed5724c3beb89e1a81d7be51d7fbd7f559d50b71e63c537586da6bf6bdacfa331477298bee4246acf8d6e07b9146775e52fd27d4ef56b2583a6f9bf39fdc59b78c01415b69e6e4f936ff5a545f25d897ea0fef2cadd0b7c7bb67891b1d84d13fe86de8fe213c0a7d6987a22dbe47343be79b3950071781e2afbda994a76736c0cf4f45925dc93bdebac55040ff1687e4f6b98a98033025e370a439e388e169cfc3800c88c16008fe7fe807515cfc0ebc05680b6550810860556fd4d14d53dadf4d2beb370d81951c47b09c4719a928dabb0650668255b517b873fb61326ea3cf647f3fa9eb367e853c663e236976f3c29705a29f27f7a719e565ccdd28b32fa3c070efc9725e97002ef4ce6d72e78229b06d17105a38e0afeebceeaab69d02eed86961fdb0161b7687180898886b840c01919771e224b35ed14184aa047293212f9df4b432981bfae6158ab2d51f0ea1bfac794c9194f7e8dd4a68bd00252f2ec31076f73204e40bef35fccddbefb47ac0f0a685770ba67a91bed3485647d70929990fb5257912345c6fb93f1ab2dd2f0b68757a1c831e35eb1502bc761c642da423e659a337908889b8e4ba4710ddc40489d07de580fdb9996df3c88854c129d81dfa46f3096c1046aec6144fa1407724323e4851753ad5e6e8e995b47271d439aecb812a53cd5e4ee80e8f3fa3dccced9e89c47f000a8e4b44e55be50cbb5a264ba209a04f3fe3f2c4a15f97467f65c5050a40cf3ff9180cf79e8eff21abf2efcf262bfa8fcab2e7daac29ee0de2574f431b00daf39205f3fe5ae5a4f813675d7c986bb79417fac2921efa4a3a24da49c473ef72bad840f8173688cf425a6ede0129b3305cbd04aa42b3d41b54534ecefe70d1e3365dbdd621cb9bef17cb1176bfd3135d6cf29b3dbec71af91b6f73fedc59ec3dac5bbfddb36aaefa2358ee919b5de4220cec8f949bbf751df8d855f6dbeba6a8571ac84ae45268ab7d0858e1b94ba700f8720c0ab615c6267f322fd987aeb3bc719ac345ea77f9e35f474754ae3e2904fc4592789b1d331449ae6338dd3017ae3eca9164651e7aa7bea4daf125ef86f9cb1cb92fa01b2f966cf3c4ea8708e06d4f40ae5d62cf8f38297969d34d1a1216d3c873a5358f23bd71763dc380f6bf60ca9274648c52d6de495e7f0be34065d0c5cce8d9b43b1b34d66f01a893f31366e28ccd646b36631621b6ff7d99254e9af5c976505e7b3d50c824aa98028c13e150dba04699b688bf7ba703b3ee63c1a61480d07c44adde018d32d905610bdd9009026b974a35b8eb118bf7170dc735cc8500ff6f1cdba7e316a28980dfe0cf6b8be39d3bff94a3ed22945b81c1133d22dadaf976e7ff6f32ec51ff0b4c45a8c6cd98e723569a64800aa80242be9b9ff40b8b4a4dd36e5e0a482c923a72e9593378cb611cafbc44c850402a267adc5877939176c3282fd91ecf1336241cc7105839ab770685c5ab4dc0ef120d7e51df822ae89e570df57e0f82e3b14cd1ee5f2b0bf894fa100061c15988614144009a66516ec938e4532a2954315c39575aca886fc98f8a721c74bc6fe8e414c7cd89ade42d6379db270abf499ca4e65d8c5e30645459b653382bf9db5ecdcb9f55b9098df1152a950185eaae6b474e0c7f415ae866576add77ebfc3dc15fab15c65fd77811d76f6c5d2ca7b9204a67d713eba424bc0d2db42e8089bdc9249a22151326ccbad6c83706e61a0963c2e103271b9abd093cd69a650069d3c822798e17b85f758262600a05d3159b0b5a921e79ade7e4a0ff33f7d2a9854c715fa2adec58fe07b237d9f5c36baffca1bcc939c8c5b3926d7a8d1844e6db96a12e0e32b14791e03f3c86eec334cee81eb764499605d549786684bc579eb6d2a52af7ccbd154523119401d14b1f8e3a5fc1faeaaefb0a76427ca5d4acaa7a1e742439053698e5fc1cc2a5d03b412c6c3f387bed45a77ccecbb5e6f15456f9ab8651b9629cd65f55775e548f8603fe1c4cdc05d3883ea719bb75a3f6154df2508d049438af37b1b0933b375e881160ce359845f189131d69583104386408e75bbadb1aaca536f13a95a609ee904534d55bbdad8617045d538fc3a48aebcc3272bb895b64c6a882178efb40fa77c93e74beb1014024fe53f1ff217260d5bc17ed2c576d59a3a760e592eb740ec9eaaec0c34ff9ca1209b6ccbab528783159b08363842f4ffc81a742a05be4030c57fba44b59f1f111bd034bb5ebe1668c79f39a98bd01fba9d67270b9653e5186f7f03e8e3f412d23bf1cfa1b9e098b2af51bb48cbb36797464a514ab9e7e11fbd9b445705406aaabfa33ebf5c4cbcebf3ee71b51c56dc65d5a80884775233dff7dccacdb787c61fab0938d15ccbaa131b8a7ada3168c2205d6e7ff39026890d0682aa88686ee20b4416cbe5c159a52893b2a34ed49f552e79a71454f6d396def9b0497cdc58323998f2256c08f034162bad22b064c6b452c6aeddc2509a764e80b760e1aae4f21bf471353ca11dba9c963c87af5217d135646978f2784b88da74db915cbeae1f496b960ef272736530eef92f5da3ee7a7b799338abfddd754d4dbbfa05d8690c42562554e652bee2e52e3dc1b271c7e575ae1c0202a2cf478faa3e61200c459a88cf4b0a418f114142b79560406a8a3d6cb09462e8dd57b3ddcd16dee141a243b534538a2069a1e12accd2b65b4f2c2748b0a7bbb8596a0c6c1ccf264ab21c7875aa658892946d7741159cfa2c769c463ee4aa90297489852da16dd9a470df02ee98625d29babb61af209a857c490324af043949a3c268a7778ba36b00dd4b75fa28c3064cf761ebc2db2eb631c5500a0fcddefa4b885f2a3eab8d9f9432f0cf27c98e8efb5be138c81cbe1f0afc1ab91c81d70b3d41ab9be4f804a0cdfacde315af5fcdac6b50ef3619864b2e93cc031065d9c03e1d8278050b7f267395f025205277b801a115dea4f0078cef4523b8b242f207167df5a819a47e4c2db653efcbebe2ada1e77135ed2100a5285efe6587e57312e979a4849e2394ea7ae519637ffaaf702c20db13a30eef4971407de23aa0f08f7f5a3ecb330feea607fe127571c230c747a02674358231b592e26da09ec6479c2b20d53a2e93791532b192ca98cb50ed13ae83c62127a9d9714b0b385332c2b2f8fcffad46fc928b7c00976f9c60f94ce70946be310ef5f0f11c0cb81bc13e3856d7cdeb603c468995c33e9a6e0f862e0e60801e082b3a682804019a8bd36e6ed3ca8793e06a1fda9e2790f6462c49536fd96e8f2fd77b6d9949037462ce22e2aaa443cea5408bcf5c2b8f34274d20ac628bb1c6754d849f1a46b3c1719ba6a6cb6846b0969cc7360121a4d2f1cf189ebb03578c9c2d5da267e7865e5a272ef0c6cb36748dff63ec5733525e6050248704c3b66651fb579a6a2e688bc8e451df88ba1ffa9e11522f35dc3da5d333dd742dbf1bf7eba0a6cfb8b2a39916459b8f0bd24234f01b8615286b83900d1f5b3f7cde3e51aae883fcc91b2795674521bb43e6ba6bbc8b27c49d845da46180177a607f91d70103ec07ffa70f885ce134855e7eee86c174514dd49e1b5ece05e2ece9f157662205e52ea3a8883180991d3e0852d2bb020b6355368568eabe20e58604f993d7f86757deb004fa4966f3e531dcd2fb57b52be0e1fad9e0ede989bafd4850bf29d58376bf49b486ae44f837d44da1838836d2e1f32e8ef959dfbb8f8a252356d3571bb9b87f45db0d7eb549db5315b84b1ca216d0a06b36885c765a775e91310d71d261e5425a4cf02ebcd91bdeba9ff6ce6153167f8bb0156b3b1d6e6a31b21d0cb197c5062745354fa03b38a7cc4bf89b79b30ae0deec38a4d33bbcfa89baee77a40e29f7f80560637c747443c0fac4dd7949b2cfa9028cafc9dffb13987978bdfb3f9663a8b24d0a6d674166bb0a13a8925fa5f502128539eb6cd5774d05cbdbea32305e2ab12eed1312513819bcd3621a48b95d550a172bcd05cbc40dc5c05009d55c690458ddb815d94540e8c391e10cbee370e2c034e14520409d31aca36cd4e2ad75cfecebd09ae44ed06aae1fd087d5f9b53c573080f0292f5b85444fae2b60ce5fb9f2035ed08c43239711c0c04b7c2c84cbf13044ac3c3f52cb8899ccd4a0769402c9703268d60f54988f31c33f8a646b4bbe38dd1ce32b66368f0c21f4e0a87e8299efc018ff83224da9482fed61e0b84b4a757a28edb0c7ef033bdf9a6db8ea22971e0b181ad908c86001390421b528af29d4257a546cfe947339e3345ddd965e8c25fea6bc7c7dd0ab32f7d56015872fed157601316802b46506e918d856c0cab9712d82baf55c5fb64dc1d7867fbed668d96a72bd3e0c5447ebadfdf05d9a8a049f3c72f2f35f25f5d22b24a53592834a597bc26b0aef6d2520d47f0d6b42d874e892bf2add3102086776f9eaa00e6b00d67dad0994436b373c609ede8ff38104ba23b6fd68348f6cb1f13aa5828b95efe51233f57068af393d4f3fe9e7f068bd3d3129d61d3d96006fbeebce14f65cfa25ad1561035f0e982f13aa9e61dd0228feeeecfbc0a19654624ab8317cfbf15604235ca98ed95168c1bb0a0562fdd909f8d358b00bb940ce0b1b6e162e96d7b59ff5d3b7d162b3344a2ff0ef042d0a74b53cca5a378dfc9a53c980852b7365b8f41c8878d96366961120d1c8fb2bc6214cb725c532de65728f8c8317349e47b7d3364f5efdf00ea0de5883e74c3ed42659f44c6892b9c9288e56b25552e6fed8586b3ff737b344181a93c47a75070dee53e1a9c88ddeaa11934d6aaa63765b78e03632914df714840d48b300b0f3df87d2e1a9e29bdc3f326b64afe17d2f08dbb18e49ee72e87f0109d6554f6179cc4899763ea7805bf44306eca639546dff37da8266096640faf179e1112deefae8b78fe25b88dd43e5863d3d1903fefe100ef294b1ea2a43ee743c1134797b175dcdf4867c15978f6764b204f6d1c04860cac678148cdeb036b2b1246fe45ac7ea806cc11ba8a16180e1ee4dd03dc0b5e5be22d9bfcd5174a3f464e9543926b760a8c00f3c2007a56ae131265d32b5daeb682d08a47a5e397b9449c5dc34cbf224266f1ee2b037db14389192f6cf0eed92071e38fc5c28c2f6b1db61e4ee0918b1675f3097bcf7f1a08c5ba01adc1e7c4d823af6c062bcc6c0bfad83aad227f6133459ffe8c17cf1e60be489ebc133ac649f5c2730d2bf667add2c415527d9b66cca16cee7578b13f0ea2145af22c28d738a77b2508e21b93902a69a6b28a36a72500ce6a83aa85c7cb9cd5450f6ff8ce9aad75a666bffd106f7d5ec59ae3819ef903e24c467ae207e84e65fdd3b93608aca16097e9331ab5c218ed6ef669344400ac389d94a5cf49bc8c8e6073a3650ee8bfee6e6fa2db8ac1d38f1e19dcb23d74cc3fd07faa96dae344168a44f7326ff30d33fb2e43592dc29422b4795f0b8b9a91d907482fabc463c456c3054daa27fb1c00b3977ff15c45fbeaa1d6e634b0131fd94ca447a99267a3b35478851cc8021646a96604d80b0bfbeddc4a076be5b0003e3b4613c33c5e2fd4b2c166415e967ab15288b2693e10a38c57f0554b28ae1da566436e9ddccc6ffb54622b0def844850312e29f910c6e7596f76c6b5be238558010e90fef9aa541689d6bd685bba81b02bb256aecd9fb6686b8c8eb82ce43600670056ddbc3cffc74617c8dd99559921750d095cd65f754f1b2e308314ba77ae04229b8f68dd93085646aba7dc0ea83d33d0a3f4ec0eec118b8aa0f186b4e79fdc7c0ca5971dd7c6a9b27b184c502b78db8ae130570a5856004058bf5d498ba5043d3315ba08eeef8a062fe4405f2c5c23660e5c8edce6a4bb13cfbc43fd9208880df7cb67c1bb1e333f75c3d3499b25cf4acb9f62399d97640f7e1cdf9236ede4bc8dbf61ae0c50ab4eeb8aad89fa0ba6f430a47f306597c14be244d656ddb96f6d0ddf9c7e83083ab10624ecefa2fb8ec362742b11af1eef61608b877f804b0d5a96367804443a64103d0c4c6c231caf153edafa7d0b7a1912c455d3a158645c18c16cc7827ed9fc4fb99b7c25ab183ca8442f391e91204f706fc764c2fdee89869f69b96dd414727ff83279be68b7b05460a1e208578a71a5484965d2c79f3ba22d1c2f48c97877fb2c3057c111098f62a84ae778cb8f154c05eb1b41af5748ed9b49061c8ec4387bbde556524603b34724653b1ec1896e0dec8fca92fffe9fb4aafc0e0f17d691db1c41ba96c90a81aaa46c759a1ceae5ea2b5332c166259ef3b6c10276db4d9c39b066c70f2bb3e4765a2d3ef8e9d3753652cd93d8d1fcedcf5845f21a2d9ee1f064e0e367f89d41eff19c96a2da939a68250877156af6636d392956ccf37a27b9d75444af4da9347706f4fb102c02f247e93617474bd5af6db569edcac92c54562e57250f1a0322c331b3d21edab09febcd34e81b9016a1a7288a3f6dd215590681499c0ca0c4b7d3809460a3e51bc46ce69b6eca50a20220e1d4c763477a2922852c364d09ae2aceb4fb432a4a67b754366199996153a950b1b31c9c2fafb245f39e1dee3aee47247130a50e6cf92e818820782434e457a8549e894bee67f457e6eb61f5fbd7248fa0560926de54d5eae839d348e0f3de0424ffd2b33edfc97ad8bedf14a3a71ef9a3a9018a032907c4f1af152a0ff8956b312f21a84f11de15a5caf6fe5c8a5e9ec36c1760bf580494c728c115a214473fb6ce7a0bf7fa18b5aca8288786510fd347bb1365fe62fb2a10362bb1035034f1182df2fc1eb0825981ea47f8083e6b79def3754371b3207325d6f2c9d02da08e94fa3ee2342fee05677746d225abce5abe9c9c0b600ff7c8dee9b58ba66523fb14635370575ab1302961cbef2d8f51bc3bb7bdff18244a94a123fc3b33d61981ffc6219976e60b78d6600b00bff8d30ba00dd0b29a6800befda1e076485523dcd4b78d782f330ec66e22ad7738ea0bf7f15460ed31cee816764a75283509f5ca3764e661b7fa672f4306c9cd455e7a7ce72a8ab77a438cf10ac90e5456578a45713f2f35f833d31a7277eb9808a898cf2d8b7155a337d1e503127964aa191ccf8e1e25bceb628b19a8b25becaec30539c7f4e76f340d17abbe0f14fd97c630d8bd480b2055ac0a2c5b6f090abb055aac6bb426a3db3eb53d20b7e8c7147a9a3b4de91bd389f1656ba82e6e5b864177daacd8081cc3a91fd456fb0e1a8f75b4f7a5eec77709d6542f79a32c86b51c682c3c81fc0ba271530d289187259a8cad80b303a909e796e81c7989e1bb70a76afe4c7542062019788a5c56979201dbb85a0be78e97faf6c51b38a7110ee2d8fbe5cdf9b0ee76aa4055a366cc42ce8ada563a452194fa4f39380c921b0fa855bb02a7f2aea921e8e8d7ded6c355d0b7b0771abafeb46ede74fc33c1f54e40ff5474237c388fe090e65aa277440af2e7d82e141e0def4f3c82efe70de2ea699d58ae00f4fb20cd5d3bc2fd44d70fdc56a6ee7b299a45be2aafe522137c155f58145f0e734a3b45d2c214a39bfe20dc0cd29fbb690a3e5009432c3161b6599fa70867e8b438d9cf23f07ecb61ac8f098c394172de07727f06b5f007fa4c46ed05b213f7427148456524816eac0e7aee95094060f926e72684ec1cc1c7d6041399a2d2166d1d27ed6069fc0b2041948cf1c91bdf2900a3769deb4ebf3a90b51db0a85f359e7d1fefce92c52de55cc01c3d9f9c9aa008337022a3aa252d96c68bf4c4819685514afab69f4a9788c8205befabecdd77c428a20ca7cc75a6b81e37fbc5a4ea5580e1ea6f35fb705ad4f4fc294d40b7d04676c092d41656c8f1806e2bce17b23ea2838d729b8a225845eec2276b404ea6945e46c6578e813fb54a2d34fc89c88444092dbfab18565066c89258edc228bf6e1333a6bb4e15df12e0f07ea3fb2ed5a25849af4dcb33e774b51d7b84d777392761ba076ab55b28bf26ea7b839c8f77b1c13f855339386f8611b2fe40c86b127f3ebe200b79d9977be45df45ec095d085eace93b9104d14926ead64ca122c1297b69f20155d80ca706602b8655e6471897af77c5365c872daab936429b5cac21e47de934a8e933c31309b4ddb2444a2769c9753146eab51f0c9e9a7a097caddf39bbe188f60bb38b7f91269a05c9d262e71dfcc74b13d2c804328e81020e647b38aec4662af0e9aeba25c9b2982856031a43ebd8aff8fadc5a55c7331f01ef9bd5000520516ec61188f4c25d748e9e2c800b053843b176e66c3b3a8dfcd17d99b56c69ad1dc60cf081a5d22ee80ff32d88206466bb116ed0acc93047bac72aeab47d53e0656f37b8901fed000831099f176d5c08300529e520467fe5804030f460242c4ca37a5008759f7ee12b79f2c206580e5e9c754d59e15530dbf50dcbcf7b18e078748166bb431e48916d1778cea1ce363461c4e26b9c4b4260c8e15bbb7c0b96621c277f89e20713f42b97962b291f062ac3d21b9914c64f6b29ca99040fab08e6ff2829568e41b5f589a40b9853a30738699a295c9e9e3d034dbee7f191732e7c29ff0fec56801f00efe02709c83a641be0559882a32748c6ed3a1fc794521993c70c338e9eef6f1b88c75693a39509a81839f92121bb0915c7ee6159611938e5ac60a2799d274336c2a10e30f64e800be5b9dad62b9954c91c77c4c571bf636bcd05e32ce073bde1d08b1a2145d77ab97f6851126516fac1302ce4c6f37462e9c5e35c0cc56906022b8970dc082f6712025893e1881ad9d5cefdb9d54a85ca9f522f74c501cf30910da905e02e718dd3ef1668c9e4eecdf1c25f3cba8c096f61d66a30a41bd0c897f43a5289952d8507a9376f05d95c5d3e5c46a270046bc025d7f692e9ee8682eb2513781093930b7df9687fb95d1c352bf3325950b0b5ca347f32ff122bd1c21927df3c13706c84c18b1ea0697992db2760500032c3babb341c2c56edd576fc20448a4ab0e9e5af3b6fc95f5bccdf28a27f9ffae924031bb4a1e1a740c3a01b410bb2670faf2c5f4a99a08859063f639cb2336acdee911d4724119cdb219f7938d02a9a57e6d6313a60f975b16eb318ce5d7fa61fee76bff15e99f4c7efff12b82b946580a61ea67c03308c275d0710cc6bb07f3628318d632e6acb7b80f5f9b675fd971f7eec05ca1f20950ec11aeb24c71ce1db53e1467d16056eedfd0c3f924e9a5651ecb1fabe3a2d03a49b8154b9e4bea4f3584cc7b3bc8df889e034ca931a875c1ce613d2153cdb5c518172d2d736c2a9b4d7add8266b6a12317913de8f7f9d9d405465bdd2f0f652791d0599cdb71f80d4a15ae1ad8f746e826dad3fc6e858bf3293f19599884e4305abc0f5ae634a3bdd3f3392af3db9f0fb315c3c1905cb1923f316f0ea16fa29fe7f7a2e13bceb3d856ae60055a8c99ba1931408fa49a032533a3187351434431a7d84ed6046b010499103d88bad9ba72a32fd2d1f6b34e4a820544c80ddc1df4e9f2b95110c2496b756dd865648fa63f901550d37e5b6a262d1d5a1f031ec2d24738614031a9f2dd9113c9b1c1d86c875c8a99c4d785f910c6ea98d97b507f9be9a931789004297da4be0ae08f045d4bca35eed89a6b2595a8c89ecbf718da1524ba8ac6f5602abac44d592042dc71ef98182293d37d6f655b3f2ef6e50c3cff3cd2eb98a32c7349a6f93a28f61ce3c23a6f605fab5f5e667e0ed70e7a3f4a29200b5d7beb39587edf1f2687ebe97da5a29e5e290efb6741903abe1c79f3a5f39d54a79a97acd999f25ee00ae9ba7ad837787145a7abe0a1682ebe7c9dad4db8ad130642f2c75bcb21a34dcd8f22aa053ce3c0e2d2b44c3dcb43cea41d21134e28fd6e941f1963f4b138bd905e1e7d789c3f069c09eb7a5c767021a3c66c77c633b296e1cf8ac95d00603d57d2abe7a98bdd105f4b274448a5b51c47b5b5b80c317321a15f11dc8611ef81bcfb2b752a57757b2b30b88ac0dc599f3b0d85bc38af904d4dc91c94eb03ae56e2905a9b36782992ab68f83d99bcd21acefeaa7531ecbfed5b312a59ce46b067b48d0614414c0f55059e9621fa110504dd3012824e70a547fa9b067f3877acbf535666d8d39ea06ea410a803ce61ec6e1bf7116f78648ef37772d47508f5f1ac4673d636f2a0beb4f32a297050afd4a6862f2d71828ab9f81e74dc4838bcb61d7216ec7e25503dad7c0abdddd2da4855fe821646d9b6b9790035b87c6b29f7baa8e387ba3b5060ce433df216d3c81871e66fd3d9226583a0573a34c5df0735f88b47dbda94f1af0dbce3d0446eef426c48a6afc169a513ca192f5e01d6710a5064943bb92a09cb2844888396eb4d229c70fb1620e86ce0f12c8292ee7dbf6d65d6734b05aa7bc1374f8c8dffafce23f7149fe087a2957a42a8295575e4dd79489591e970a35fc8d9786c7e232da63cdcedce19452070a75262699e682961a865af7746a3b15b5cc098d9470e9f08585dde6ce812ee219e7cfe31307ec59591ce499ccf4909e9172b0a9047e02b7ebd403d09d79c93d4af8a30bebd3c09be325f0445f318e3c12305cf22c5b53772f1c1b9e0a3dee6b753d4d0b89b3bd603b3062738d3c658e0a2a659be85751445eba96d6361c85980a3110a659c4d86097bab4e656d4a4c821b0fde5587840ff78e791e924ffc83e88d102584e59575c6138faf4e168e5215343b5185d39d4ddf15ecead3dfee4ef079029145d8666eabae30b14f9bcd7346fece5592065746433daedaccc8a7c59af8ed3b6fdbc88a8f25fd0cb8b16576c99e205c18cf7979f1a5b70de8327e0083f2fd096ae786a8a112cc4cc29ff60c0c88117d9cf12e882764641f7f5b0f07d87f157996efbefa952e52da38a9414454991b11bdd031db98c4edda21936f3beeda1c20d451a8e5fa259a86207691b4f3ada59a1ed56c7db962d5bd2ce60d7c4ecd7645fbb19409b256aecb020f41d3b100e2c61fafb76fe3e30e1cc516eb2c591c42e5d5d9aac6eb2bd04caf592253811fd06df437bf2b4279051d4c8b77099fd50e66f3c954b7952435573ce180ecfdb1cba14cb397040649e3700bbcaff32e58c16996d689f6fc584205694ef6843db5eedb7d9cd035cffbd3f689511736e156d0e7e8af3d246fcc874e555c87354d756bdbb7a63b134742ec4d6270ce542e8d988132fc44ea6a006abc6c4db045765b14512fa30d97533a63803261817bdd20dd8b77e5217218aa6e1aeb6ba8e1b71fa933f6ffbecf621bd7ec3a8c91106d743aeaa9b4d066149161dcba6ae9d95bbb3bc442eaba18317276dbaabd3471f11b6ddda31f830de9f2af81331aa70c457bb0cc753f00e6c62be13c98f80fdeb2deca9f3ec940df504520e619bc98fee2b02911c3ef76e06415e86ef96baf695ee59846cfde2292e229789ab496382dc74926e14112d70106b8d38596ba4ad59a94d4e1f99aa845257737eb245a8066141e6c4e633144bea86f8330898c1934cc82e7a927a59dc773671ff1ebed46c27f68d14b5cf280efab1bcb3f10eaf1fbe480ca6b55caf8488069f125984f0f772cb26646956d5d121fb81ee65a16ba96a3a7b8948817a95ea41d1f279901f66344ba19d8ff976c617e965194c8a3057d545c550852e6484d216b5462b7a82029dd6d7ddf930724e9bf4b5ed12e3d99cc42267bff02ccd7b7de8b237ce01a7e2201f75b09d355796f6097a3b352edf0f0b1fdfb36348ba0008cea092f8878831acae2a721d8a165df807cf52d9cfdb917c9dcbe67ad3d0b9d511455c319220aaa95e3753de6f45de9544114e618da7132e9259ff9a22636987b0a883d94d87a35ae03db4606c7210b109d786b915ff72e4080357a00f8d6c4cdf399c5804a450eb376bd7cdce89a91311bbbfd177bc34e59c9d0623766051f583bec9f8ac6d15a03aed1f53214a9b8b0ef7ccf4a79f1d3200b916f1b921568db816485858bb137316b959f0bbc8f93924cec5a1fda6eb96794ded013d94e3684bcf38fac5a4517bc9a1c3d331067e916cc70821b6f7b1d661ba52afeb5654874184a04bcf721b81a8bed53be092163673b89c4e705699b4a614a871b0509bde4e13be64fa1f8335da21fe1b654338ebb89fb8fab22f078a49c528b6fd2c9ba75f9e25eaea681f9ddadecd6e25f5e002314f7cd062306d9ae17751a747e8400a115e49b4eb6c6c60f9605035c6627e4bc7e623ea4d6e435b1659c6e8886cb39837445a4f6ade6fded91187a0b4082b4fd51e4019a220ef7426a55259bc3d2ae1586eaaf879c38210f34f43c79d19f3d2ad62bd7077e897576286dbe665363dfe2e68fb794fc6628812b5d897f58213e913bbc3cd43a92dddb24360610854bf75283e6226c615ed13d6ac616a73016595c088b9f362f120980dbf6103ae9376e6e85fab47dbd524dc325b90b5924565f7e00ef34e95f28f1c02444b1764de42fdc652687e32206727efd245ed1128902994cdd8987f0aeac733a6b6babb0586ea4c3411f29094ee40279c697f74eefa8971ac8e6729db4b49d4afa54148d0de18b90ce4b15f79086aca8abb38809f63ecfff4652a7ef3157330e00a25251689367ef16b522d6c9d231ce59918c367264a3c1da433d00780ac247a3bb96eedf4bac3f7d9a62da2ef9035daf5bf090ecbe01662683751ba2ab0a2e22422c5e666f2e3f69970b4b8b02e8048f034e8771c54f431ba169bf3f122304f5f1ccf59b341eb1acd02bd15d19b3cd4d8a9353efc542e670ae529cb81f467c4773bb5c166c41f47942266d8aabbfe4d89538d5164829052b1d5dbff6f6974640b2fa429ed9f764854e071596a0b2d695720ceae48b6dc9533267600dc24990d8e794da98a6619d85dc1c43bd69e85c2164e9a234bb445ce57292284d785ad48d6c466f136ade86da354e90cd9da9536e572db22733cf40e574eeab219339887c8a926e8ad87f5e266388f756eae4188bb8939a95bd8862bb25e3fdebebdd9b3bb51cd5547f606e408aa07fad5bc4057fcf8a63189558cd2753476c916da000d71d11aa16771173464f4c74a2da69e667b56d3b9d9c30978f7d94582c3cb3357b97ed39b9ba6d6be5e74eb24d45d3c33b7e1b8d640fbf80f555b4ac9aa48ad5921cb415fb12b267b9a76afc23b484bda3e4a10d94120c4984191840a7c443bad3f5fb13860649c1d70e4f6db03acd54f7e5dda01da5ace75e8d3d8e5ccccbdda7d4bf4a55117059b9d91c63687dc34e56aa4d9c6ccf7eb99f1d38d470e5cabc97624df619d37de7a52ffcac73966991fcace15278478e381f0ced010dccf8d7e44cacc800a38daf98394cf627a6f86de0c07590ff7a9f3fec7f33150697d8229576b189da7d560fcb29e47fbb97254d2f8eeb2ce47b74cd1cc12240a0bb5ba84af0ca3138ca70bd18de9c9741a71ae429a12f69a0c519212b1a482912364fc8296825350d4e928c3175f8e03e7be142538143b25746e5d7082ca0570f06a214e2c4e912a2bea3b7d40edf61c88955a8344b15b3eb8e1bb364528cfdefca997956845ca5172347a3b15e101f8d4a826328305778b90f5ac2af662e3ce3ac1df2c6644efc95b1e50cef502d79de41775d7e01e714a978da534fd99ab8104f90efa1368f5770699dc6c7702418ac0331641b4097026d2cf0edb5a6b71b188d35034a57b56beef3f6f57df2b2ddc9ac02d0b64fa601cd131c48c1af1e549635361f25a538f29cc74124a5ff42d166a88b296aa1e6f6f15e097bbd3ad9db0641a120981c8a02c19f8febe7da5f86e0c50f04ff2ed92adb2dacdc6438d909dc921ca39b8eb8fed79d621015453e8b1548206458485fec35bce9db54af59b8365f302b1e7cbe52131b3a00e8c547bafa22e690c83baaf234ea5b5c1d462fc8881f9c8d46fe12ffb49704f4b48a6d33de94a60fbeb10e4f5cc07b5b17a35da0f72b13d6378c67e2342f53b035f0136c9438387ac18b4a0601e88b203e31bbace244b17e17366e7c9465d21bd93e98e747d434dd67ae22bdb3c02b4e72d0a0b7929862058323804bf5626f45cb8aae9c92b1175718cfb9092aecb380af6c29cf7f66ab5651d6772a1db125b16e00afafa3ebf992f2e841dde34acae2eb0c220316fd547997709511a8c4f302f0e7496b1297ea241ee02e5c3453cfc9973ccb162e3a3dd22b9a2c729a91702920a7b3970024e516ef18a418d8132f94c756e4a081bc491d1633a7d83e881943046f47f8240e2ba7878294a6b965df30ec0934c551f460e62e84020fb9d585c36f93aab7df698c4d63b2f612b44842a48f39ffa3ccd12191d7755e100f6df040be5e92351acc1aab7177ca8fb712952ac12a1fd0a70e205c6d5c0f62d5335ed246408f1e63a127c5ac288873f883e15b5b0dae08be6953dd9942217e12083a7abb19944544bd29fb486e7277480228fecfd4c94c51423be1a3e5f01ebac9c7bea928fed995bf849683d5afa245de8d00787e1ee3fa4db99745657f74adab5e192cc5ce3f46a2d060bfe6831f0fbc35ed1ab9624dd54f376254d503cfbbed20acf0dc7bfbeaf6e36bc429a449b73a8b0e3185a544260d10c3fb2419acd7e3b57243b2340def8ce8c0b780a6e377097b433ce41fecfb1e6aa744e6ade57f5b8df2543dac9c79cab902f33262f563fdd496b7c7a842af578b239f6a959f0009fedf6e6efde0d18831e8c88b7c84d7e79c6134391b152bd101830321e61ba80b1809d2048ab81bd7de5883c4cc28d9c40729019b62f4e46ffe7e61669cec257c1ca2411937de319a3eab7c8376803a4d609e96c330f6093bebce8e5da7d2c0777b28fa01a4623eda8024c6f19488ef97f3d64bc9e46d1ebc4491a5270d06cb120529b39281d31db425bdfd6dbb58407e933f23e352a49f8c2d36881382c98988179514b5cbc5d36dcf389e898484804720267db6ef9b5022ab5c8253f7abe6991296b7a1c004b85af1f48eaa95bea46403885fd1052c51a46db834788a857e7d11a83ac306d6ca64106b10f718ce0db5254d811f2b9ec202e48d89a0425c0c461361857c2a817b36024fdfa1641c94b1c4d5fb22d1702fa4990e67aa667c5c43b1b60bc34fa2404e9c85ce88b1e40c6af0907cec039646d355ef0e3e869426d219ce9ffb7d41ffabc959e7d9990c22264e7f454644cb36f54f0e6062b25cce188400f3d0c45076b8e052678b745a469eb36a133046719dc839649503c1e6eb785c23909a5869ed752e131b3a2b213d741bbc1a65f0223deef3654fc55da76d30c8ff20b416f4dca7dca72406b8c2e8a832f04323777278e3fcb7d92886054a7234bc69614ff900167b4f18ccb4f2652acbf98c3eb884182f3e146e254be805b834cf766d9d7fb47946646cc1fba744b818a8cce99d8d7550b1b585bc1857ebbf81d00fb70bfc61bf9fb1d244251203f6827f4658a70b569c4aef0dabd4be5f451fde5254a21f187a0631152e5da10f6bc1ce6a24b3cb25e8ae3a44811287e7bfb5d5bca6589f1d09fe3cbc5c4e173f2486845dfe08ceb0c00996c9c5d3970a48566b2e7a92bf6d6a291816926343141defa5b8f42948cf95dc0012800217dca2c719f622d5db54fddd9b592b7666f55ba3745c4d4ec268d41df8e3db5834d0d268ccb334a18ce39aefa51d5c3502820427828a192109b8c6e8ead8def89cdfde2fc36e68e7bb82bcd8a0bb3218ccdd5dc89434d6ce09096f2fdb4d6c46099c9b6b56b8f1b4846606bee1a61f6f9fc132f2cc52cbc2280a7906c58bf2ab979b747e47fab9165b3a24ce3411e9f3a4559bc94776ac7fb48e658b195f6ff4af0060066e886815d467c7ef821d3a336fa0001eb3a1cf57a5c3bd7b5f3f2064bd484414e1b202bdd8045fe11e3f6939919356bcc4f8cc60e757451f710eb88fafe66776302ab7b37e0fc50e629f213523f8835c97171a20adff6230782e1d0170841429f3d206ce22d05ca815e7a2e13aa290ae6c11f342851426a0c00de0f681224e2b1358248f75f2d00c4429f32d54fe5811c81fc760355c6c63fe7ad8437a83bb37cfec1f2b609a4bae1d8840451026206d79abe859b3fcc4b6e05c6f2cfa7790996096ee7ff5bb871e09903cc87a34f5b79ff45ecd5b9773d7ab81f8d024023f8caa894a5dab58a591cfca8593b6a7716d5ce138af9d81fa3d95c2b7ba6fc509a9660841ef0c40ecfc649d26f7336e09ab452ad0a32c78264140c320713e3b341ae0a54fd0f3601ea61c7db5afaf578bf53c9739811fc95fd4aabc056a79e318977c85ce9a9f5b2e8442a9ee8e118fb25e3ffbab50b05f5a9ac49f64642bd29a98dc50f625500cc241b5fb4dcf915f76a08bd2817f6dd3047ffcecfa7cafb75933dcad1754dc3674267a0437459ff3cc45bfba6f190d981131dfaca9aa8a2774d0b9ec660ef0c2d55f9dc3f69de261357e8f3726df8199edc74af7a4a4af2c3b62e3ab6133d8d43c97b6e662aa6d2ec8bb0f812d73399b6288597e6899f9f416b0fcc75be5ce648f8e71f69aa940193e9281f3db6a8c1dc61660dd02b9e60c9b7ce877ebc184da7740d84033ed03ff18db9baf829a5965212415d360bbf889ba8bd4a9cad5fb9ef3f129cf47d448bf82e3ea784c8d86c87ced352b4cf80b53c11e30dde17c2a61953eccd160720484aaa8963ccc8d632c37fed179171e18a8b0d7a2832abf764ca19e72a104056459d8edefb756a9749c260f7629e62e87f21e47062582259f805c4220655011ed10eb675c4d268f8ecc32368f53d0a1fbb5062ead613c8668aeb9b13db761974ddd1fcfce33cc4382ccd674f6a28f411ff50c2bda6c6da406a5fdfff83f92c9534ee5b14aeab547b7222d9cd54cfaad0a66decf47ae1632d9dc4f783c0285e86bd0134cfcd88674a9f391799ae74b772b2466c4dd7d09b18ff274c0e0ca87e8dd035603940102211afa6c07b9651ab8fe376c3bb3c529e0df37e5464c4b649b59bdabdcc1ec580a0f3c4d3d15e6666c5e930dbe51b5b06c0a3db061ca0624b4f975a31f939c593abdc1ee90deccd09349fa536a697fb0307d4b831237522a66c0a78d5a68305074a50d6aa3463ae24035545308b17e7a15b3fbfd8384f93dd649f06eeab49c11c79938f52602821b4d92f2efc58aa8c3b5c8aa6336dd6512a5108936b5440a6ff99c2a0e5402dac7f649459628338e9974ac31381ac052aa094b3aa49e25c87b9edd9875d938f2635d6a35a23b7867db88c7297793031179d5090b5d50a80a02a1e4ee9e8b087226862c8bfc25308122f2d3b2dd1085dce8ceae293f874f0b414b83499f702a73642c4516902e98132b85a0bdfdf97e3cc098f2972f13da592acabfc70d28466c042b62167b2bf7b8bebe5dc6d3c176c25caae10858c7560c42bcab6f3154905fae57c682f995184930ec50522ce113185937a779fc4a2997c8b4fee0285f6b67d6c59714020cd422a799418259de6962ba76984d4ea3c3803e95511264f46229045177f7f21955917870f5507734a12ceb3b7c997e32f1e30135d692614852fcccf84b8e6a9c11893c49aa8522fc35ea260e4790dc55c82bc67caa301a516270a3def2454c69a0043dfba3e4d8e2e0509f232ac7c26171b757665ea74c0ee1f9c67afb88b77201454e898a14d023b32925d28b115bdaa1897d7d98ba2cf16be39509c71beba86fb9c9f856a422aecdc566011777e76d1efe141383494f52c4135cd9483282cb0f6f1d270824f621a3de0cf7efed61d3df4273474b59b9ae2e2d3acf8949829bc9f145872f2a2e5f091176bc0de27bc11c36775e75fd4fa7e85e32d2c0bf282767de9ca4344e3fa6e38f8e56fda6c51687db845ccea462559b2e73a1a67fcb6e265dd04c172d9aee711fec7e683ad37cdd29259c3ec714760e87745b0b11173b6b0a435706a38b3833a8afac4f1d57dc1db40a051e43817963aa9f85df87d8cdd39bea0f519a411be0fb8916c8341cc38c47e655dd07bab903e9d3a98d9a1f2f53364469a125a85e7865c6f86b529f11c469695b558d919f74a901e59212a29d2cad429ceb81d78a2d329dd7c066b07c9f37eca87865dbe0a06017a9e75eeb1f9951c7aa2044ad1665e3120feea51468f52cd4fe80c1f281944cbc8e812496e25dbcc9d4cd22a00000b3e557ed261ed34c57a7a50210d440b3650edbb98f967c6a04705a8c2ffec0fcfc09ab53b486b6f46d0881ce46f85d9e7052321e6e4a17d908bb2b2ab4ac6859849aa1cd96dd36ef3fdbd0b59dd79110f082b28064489a2a9a9980d994bf22c84c68874c5d7f151662994c2efa46c542984535f2c1460bec34e507f5cccc61f6403e23fc84ad1ace0fcae489cf37bd7ea1a7c5dc1d98111e10a2272ae9d0b4c9623f944aae253094601b08a7f32c8e6fc90a23b7f08b40d51401275de67b6f92a10d50e9a8f9264e64c2dd81f62345d0c69d4149ea2cbd9a2e46db913b1c03c5b14756ea02b14ad1851d2663174842d28419b8c10e1d1cf677d52951d3b73824f2267f5241a914aa5d021cceee584dd6f0d1b46d0f679fec502cf03d41a0409367a0e7b82a3e49200496787011d4d06128a226d3a412aa8da918620082bef65a9ad469bab7e015255582576fa489cd69a7e5f2c7c7713c5ec1831b004bd02ff6639d434df3a3b4c5feab55d5acbc68e92acc1360fabd07f6f67f1979ea8b491552f41e96c7bfab41536e0652a68a8046c83d83f462bd3b4d44b3b61d51df6abdbaa59a28937feb125d6df9a24c19522c3f3a080e99d6d772fa9efbb03da6632860979093470a0e23c86b76c6cdd5565ebfbc937e3dea98fa6ae67f79fa27adbfe213e0e290e31d6234fb12fd7bfc25ecec7ef25fc7835f7b69a638d8c27deb452f30964e8d95d92a82b9d9bc44dce351a7eae0ea8c9985c46b43494f8ae2a9c8886e101c9bfca105970b64c87084f21c014b73ce2219da28563054dd02cc2c687fce8a21dd271ba0d8017425d5b26f1c2c641fd19763e60a394d599bda77f3a4e02b34469bb1ef343974a63f87f0886550553202f6fc55f4ece9c7db80dc25477250daca3925d8e48b8d5f5963b6c5649fe487c7eeeae1e08a606a527da394312c3c6e18d43815532029724acf6eeebcc11116afe56d651477c69df902fcc8bc88a2dac16fdf983acfc658218f1c7627ad135466b2df05e6aaaea9cd946d08454d09f1fcf57104a91a2b581f294bbedb562aff183e1c2df798c3e721756e6d84725a20b6f263e4f5435e2fbde295e515c5e015256d2b322bb10169cf050a90922f55a886922ca293d236dabf96a5b69c187bad09bdf2eac12b716788c2487e9b61d347191e6ffe5718aa8b14dc1e6a1fef4dbda251a27b2362a2d0814511d1fe5bda7e5cde95985d1223b12de246e7b9182065f5a656f9eb1dc2572c20292a99cb4eac8de6b377c9e9874363ee6270e4aac8e56c01bf290b453ba80850c8455358a3c3f31864433f9a1a169bae219828925c0389c08dfdab909ad212e66564615be2138c4d28e882a596e5a10e5c695d0caab819c48bf83f71221e63010ce75a7b2b2e01c5b5d4abea5ec9eb734c5199ec6d33296e3fec5a1ed1586f67e332ea2b1762a4bc146be6dbe032eba951f739d03eb525131e490fd27d35abcef6a8f9dc2f74ffed4ac1dda0de5e51c3b881e2546a668655b1d0543c61ae10449c10cfa4d5949a906b9131704a203d86d132605874e03268e04fb4f922c3e98687dee16c6c056b76a3142059f25ad5fea65aea5695d339faa7b7d2abfffb51401a0cfd8d04c7bd03e02bd7cb3a36abc36016a75e7ed0da28bc849538a9b310f699e1f80abacff2d23248d474107a733739e25a88a342ae12f2b53e8c422c1c3fd4ea2cfc226ebfe799b30ec5b08348067563d45d283281d5bff40976ef91756fbaff082b90291dc9ea915487259c59aceab2286999a2861801bec5fcc6608a2ecabf41457d8024fe8ec21fafeca7312236bdb849c1b4e4f07c7e426a5390e9c14816ed6183a9661a5182d9deb5b38f56db9803a7416457d3e12ec178e3fc94173fb71545f8f6847892285d230ec7648da99c1cda37bb8e08c927bd870d3791a4843e50e72b7d80f373f6a1c7dae71110fa85d31912eda4bb4853a8ab5628647349c067fd33b076bdfcb9188ec84d0ed91c3ac128329dff93627899dba8bf9245e13e36d9f6d5e7e224fa32a1b2c203cb4ee1618fed0802b3293fa738463007a38c5e09aedc607c9a70fbb661c7751d4ccb19a6f1b257bd33fead4d2ce836e39cf1534b2724e72181e5beb0b21e63750c0e948adb2f81153318a9125eabd38d2bbf06c93d988d28c957cb73ed6900ae41907c7f970b78746b51760900eb2f90f23e8e6e78eb89ead658d9833c7b4e6c63669d090378da5613ac5a4d20e166f8b5ed45709f9c9108e11c07ab94b374c2b46afb08f5bf23a5ca1bb73f99429fbaa33684638564fa901dc803e94cd119fc71f8fca13a1b996ee8fc917e252b12533ba078e22bb5cabe0fdcb39a76eeea8ee320013a90bbe0ede7686918cd0d516675412e0b9ebe99e5cb065b3ef59321338104f9508de377b199de6113ec26d1db95aba3f5a089dcb647d34694f4952f0b84ffcec266391bbe5c1d57f73108f2b0b5d7782404986c41a88da0c270a9533ccd51fcc925a4d2f1a28cef6a3fbbc567f1b1ad5504262da56bfcec0c00a57336bb867792322323c6d1c8a43d305ad5ad8988b382d696da53c2ca39e8a3a792f1647b04df7f675cad048de6af48b67136ae84afe9bd7b081dfced93221c7e4c44cf7a035c2e719c8de6683211c397c049a99cf503e84f50bf7baa5fd2980f4789637b0346c52faa65523165483bd1dd3efe210a8966b38a7a3663af4fdeb23331b6b6edfff065dd9a444dc9f59733bcab5ee93565f638ffd425dd7ff23579bc1cb8ffee0e869ee5a8966eed767db1a5829eb8dfe3092eb7854c8927b9b680f511a513174822f3027badc3d81821b868e3bc0d81879c50bc66d8001b9f604f2f84289cdedf58a55c1a48e8e59cce85fa3e18cb36fc01f3e5b3f983f7c458a212f24732f3069ea69ad39dee4cdc8875071f54d8aa341d945eda893887fcfae1a51a70e8e377d9a68f3c8eb17803ecc4af5a5504aa7cf0cd7f9ddbc82ed9e8c301eb979e4901ceb9ca2eec830c7e942dbd277521b430ccb9f3d9a499de7daa3753bd23fb3dc99af3b4a8f6cff2fffee8ecfd570af93eeedc23c66426502f2ddcfb00fe28b511e34a880e479d6f57d454254314abe869966febdeb5d81c694db2868db199f396802405d992caf8c5250d4f1b2f2a96082ff734c5a4219308017cbb424985471d90fda00f7fb0e1b49238dd87a9ebe38e7cc30b8dbdec83018a8c3c9284349ebd52e5f0721c7e8fccf0c825e7123f87b95c51c9318cfe42cd2a98f3dcb34ef2c72dd021a629c5b3f8a2c657ea7b4ba67003ef1b6ccfac07c6f9c738e7efb70ce71cbac61886da125b259795547797691a73f32ba6be3deeb073d9a9bbcdf67ff95b114085243b8a54b83d6a714e1bf5fcdf6eb7fd551653ce4a67f290f306b013c54ebc2e9c150ea26f4c5597dd8008f7db022a91a5607a328c53c5fa8d57ca84bcb2c43731055d2b224c1f5393e89aee322791e51cb8c484f5ffe4a8bb3dddf756961c5a775eb719f0489297e3c6fa2f1f98d8978d182c8724a525a4492e223c3dc2384823b308c50e6de48b967622156e2f6da6eef36b36889fce3319af8067262bc42fdab021f2076a3c7e6c44e37c38c8cc4f4ce030fac65b59d5c9e26ad252802c4dc3829d8706783c16e196fc48463f03ec2c422d317cb8825e0b9fe536434fd528d20c19990c1e474962638fc66ecd103ab96a96d71708e7ae30122c46570f43b0f2266f96af67ac280b258e5ec107f12d331183dc3965980214e2ee231adac4ff311bfc40b2dc3b1be80e4dcd6c6b72ef342de188769ce80015a2c240fbe9e6367622477f169adeb6f9ca211f9d2925eade28cc6a04902a63fc05a124102d4d152f0e5c52f7fe23ff395610662a07e6ef1c7fc83288d6b82259380ca16f8e9f582a74d1462ee691e27962613d1650e6d71b28d82057eec885293c87e49b376b1e7cfdc006e26ee1f3a6906e57c13512d26ffc76558a13490144784f4aa50a9e9df156ad815c7807b0be379fb29c3e4c7e39815c7b5918a5650741c0524c18a08969fb61c5bd48b911b3f092891a4d614feb6fbb230f64ffbf9bee21e0386b47a6cc1c805b10390630c5e3c1416a0a434fd1b3b29356078821d6e6ec29a38ac307a23dbfdfe8c6b18b202d8bbcd29630b62c680a0321abb547799ac0530f7531f176af72273292878b37092ecd4fe1ebf7a45dd7e16317fbd9c41d212391109c178b363c8242aba73ba0e94cbf6c60f3c47240da29642606cb414eda7eb8c1b925e7ce2f486d0ad9a34ee4a4fa3d415b06d1cb9db4bdab1f7bee1e5941b604294cebd64e1aa527ba4a35a52c5357d4a0f3f03396f9c6796556ffc6540697691cbe155367f52351deb7dd2714b8bc31f90cba210957616166293133724c0de3fc2a00dddefd2e58fec9e0b0156e94ea92e07f151fbda14215e0c3c634d25ba3d05f0cdda08c7bd14cb47e5502c34e82d27fe564c40370f906e573291ded5c532a58cd543d591da6dccaf69136b75f70d8119fa747b90ed041aa614d78cb59affb71802a215b172cbdb24411f80b2bb6080733940b27d1b05cd861784200dfc44d5377eeebadf92ce05bc385531133767313cd1b864f2e4c5591df72ff998cfc59bbb66836b086dd8fd91bee014580919e32d56fd00d9b1ea70eb26b587e798b12be038c70108a3d8989b758615a1b29ca911fb706b7d2ae42b290299d1079206aa981bfc0d4037f051064336f483f871d953d2587ec78eb687ad7ecbf087bb43c0eb550d51f90c8ac62877a0c47267728fa8fdd28645caace466249692c37d941c60846d439622fd3903f41f6e722a912bc07d91c3060fe584634b087882b578ee785f188d95ef67105073e52c21b370ce0b9486e94501b3126ae22cf8e645ad6c4225938f64903755244ef20e0dec79e291e8bca1e3bd8a182240dc7bac89c24deef756dc01aab83620681b785aef1d8fd2e5e909b1458787ccc00a00b63d5f5180c368b86f2f23862f20ffa2ba7b5046bcfce4308a17a6338c320b98ecbea7b78a7c02a1f672cd3ada689317b2a1163ab0c2129b400381553e525ae86db5a2c4fac919c3372d96ee246ab3362f633ae2961bffc3557fa607e3da2eaa0a87bd43f56b40820f64205e014fdeb4703fd17904e2d595850bb0cb95e9372b152bc400c3f1d2f4475b2fed4e202b193ce5487e6dbf25f0206add0516b8a9cf7f39b94ccd90aa641bf94b216bcf4f3e64851a356b265d2a38ba4a7cdfeff6894b4ffc7caa2e8fd18648e02452d27bd59f7f1a2310a1bd8c95bcceddd2175b634622166a3af0766c6c0321454ff3b0e1af6397954ce515d187cd2d386edea8fc19de52f2d2df381e864e70753d363739d680201a63616fab7c5d95819542a505aaa40c767c7cb8ff271160cb57f5c20a9c7dd9056d32003e6bf24210ebdc96c3c24b295b3e44b8e0d2921d009a97e652e8b1b5eceeb61ea30efcd022b8cb969117b2d78a7b8b71c29648dbf4b0827366663dd32c7d2fa867f004e35565039f5a91450af05e33c85d45fcc0277b2a806c3c147362701f4809430ad23083054823ed9485fe5711719a74b705401960e3e2117cb8f3a95f527f8c0489996240a67faa069b29a719aa19511c1a8a8e42171566b36f8568156eb220ebf85d3d99bd194a0fd16bfa9e33ac40163572f172a0ab36bd98842cff23fd6bbc6aabeee28f2edc80cbc0193912da540c280b2c6e481af68a589eacc97eb20d557d993b43e110dfcdbfaaa324415d8dff1a8a4c2eb42ed2fe3f47da5e5095c21fcc9eabc86ba46d59a2aed92de5a4ea3eb4c9657522874a808d36f6605b5f1fe81216f1b261e5bd2e03d57c78c052509b3ac8ff636718171d2be6b443943c1b5a22c2e12fcc5fefb9412cbab69fbd37457428183d8daa5e70b01673b5e94d6af81f45ff8e8ab4295c584427a1397032be5faeb279dc573dca9c497a4a8827a8935ba88f2d741b0bf501b2cec181a93c8867c6f98d6f0f9b515347559c5953528c7bd6459d65dc66bb64904ce4bfdcdf7c5cfdee01e116521a209a344f93cc9269e0217ac7cfd553ffbefbfabcd52e25f65586abbf1484a569b21263af8684da8ee7bbf20eb6f88aafcb932e99fcfa573392b730b997c407a30542cad885df4b1a243e3cb2e6ca15bcb5fe822aed5098a39489c84793153197a700879a9f35f535bc2592f09ee64cb07a6437bfd3713d000b1bf6e6db0c862fa8e98d882755db65d85057b3ba78261e8ef49a79ab540861752ef62c3510ceaf43da5fed7bfdd39c79841ebe05c3d4b4685e89589b2526b428aacf227fdd39088678ce8d3f6330221ae942a7429bb41c6f58f722b8c002440619f45d2302baf1baa9d07049af3792348a101b02ec8bf2451a8f881e3aeb342e27707dc263a5ce7b19671de17e71832bd87c2b7331187c39e15c09b15980240628acecd4b7af8991b790007a61c09a13286faeebfdecefd86f8b76e517f9542892bc0dac0a30edad354fed045c4c18913099ec0576a26a4689301ef623350e337e422d033db72c358bbbe81a673d27518edf22d7d553eb057829f47a5f9f1efb2bdce11981f69aed742ab4b8f0457aa6415298f0e76df14689074ae763e0a5577b25b923e0f5c570ef60c7fe57fdfe772eb54a938fcd95bd8d0ce8a8f9609398754854b3b49a73a6bfd8ac6d710ab2ff9c9873bc422e39215a3799ad9f9c82bcc11d56a92e7e3867ec14f262061edeceb801687789e8215047607ce40844dfa52fddc419d013a3a140061e2f53bd4f2c12a3942f8200a3e8b465ace89b2f7be2305ec18cf31f3502cb7f5ff989dc47281ea598936084a6e180681163f22100145be8b5f9427ea52b60bbe5c94c4937b1b5fec0f8e73ab54d91186dd95d5ae7aaea935ede3d38240215ee148034e58c8b915d6614f0a1d5fc5011f4905df7e0703a3a4dddb8eb9a69c7ec082e4fb0204ed49eef4eeb3cdc222a4606e32929d5524ff6ca615981231c94e0174f9da3056c81d77aea58330781107fd8e22c34e9f54d3539e11d332feb5f0b4793935bcce302ed6eb54d3fffd2f7e4207b844332e600575474d3e217d34f9ce38599928063a1bd7707f3eb9768599e183b850b009955def9ac9fc015c65094b1298c6beb8f0ed9ae550924e9e6b37b64e2343ce90fdf3154bf7941d3f890ba62c13d8ce4a4dfc8f2c060109c2405b4b65bcdc303a553ec8d4fac6519c803a1475fef07bcd30be9ae9f5d4685f655b13b3e3ee1f26b0cbd6e77574f4e04e0b86c83dd19079c6fd0952a7a46e68a2ced231ea906b59e88d883e1ef28c08c22779503b2af59da49491022c44af0a217dddcece68b5bc0e8f8b529bb5bf6a90989c7b40ec4b66fc0d962785e65629327efca69fe30167b74ee6e0d57168383961858d20889c13359dccbcafdee5c767296962cb1703cc215c0b05732230f631221adeaa762f95a83281cba6b45c46190675e22f1a23e6cda5bc0df0f0f9a3387d3242e68b18a990d4b8c0105daccc61e45606f65efa84b73d74563889f28d1450bd558bb6c7e12aa4ed0803d908a583e9ceb86e70fa2c9b940047f86995b4a5fd21414868d52927414ac4c186c9df815b1aef307e38f2724fe8a8bcad7a82a2cf60199a04845ab663c8a3fb09055324cfbb0ba85cecbd853bf82ad68b13041c6ab74915719dd08e19dd771b38ee8bd90928c7bdaf190d888fd77fb47b0691d8e4413b1eb9b77b728502578e202925e13abb870b0288e7b290c4535a2971ca8a6f277441038e92be44253439384b92f0822f73a65ddc5ff41b97d2b89ba6ad4759d9a00709b778ea066450530e4771e2a1a37f38daba508fc7d7e9f61a2d86127c6f0b02704b92b4d65e58ab6b915de36a87e566dd27f482e3f01176005970d2b7cf5fe455b22f5c0ea721237435d1f6c8fadff8177d0d3cd9d59d8120d845eb3610b72501f4eaa2f7d64c35893d933120e2b8bf6b8f8fd73d7ba06d7ec9e6c37c0eaf2bf1e469bb8e55a93d40f5d8ff1b9d0303090592add3629a062c8e7a1f2ac0d9280025af3db28e991f73f69cbd66ca4d84684f8af6e14f9f03beae577633dcc0c73a84c23fa0e334b23eb51e9124133ef812c18c9ad66fdea3e4a4ea2cecb1a91ec4de250e03ca42f4e873591fb9d9f46e1826e8bc2e2c7b01a6484ecb94b1c8c358a19a937dc41b582f724f56954b4219806e310fdac9c8fd35def4c6faefae30919991110d458355c9a14d139cb8e1e8caefe4b5099fb94417e5d568057b7d91b751cfd60918a5f8ea870b9ce3bb216d9ab777ed0fbe0e68ff3ef3c3fa1e5f38d42e9157d5f7a795ee36e8b8bfe95324dfc82eb37092008bce94819437181bf79899708a5509d882493775b5ae7005febccd52a65c7783c1df1f5f1e6dc53e86cc0b6f877b6eef1d0d53faf28b2c30a69ac8074da8d4b52d9b45058c9dd9726e5a61910772a8b11613d6f2a667fa493b18d0e593e160c326c0150134e16d1c3dbefd2288e2674ca6fbeea158a608d11649a919cda1cd6b5251b03681da6060534bc2cc9892dfe14a2ee1e538cf44f3f52d587561c91c575a764b10ca00ed49c4fe524889583ab203893e35d69149018038dc10b1756f4676c55d8b8862702647b173878c97675b4837fd2f8a48fa764319eb33200933f6d3dc0819144239afb7dbc85659d37c61669c32b01c0f894ce4c86df75b2933626bb69ac668fa3a4a70fb6968b6b41a5ece229a1b0c781475af5453b132b39d5b5daeec0d3e3dd06a65be850e6f552d82d7e07a344c6e8d9ff8313c3ea0dfaeb6960fb4cdaffcf2f818494e168def6fa81dd58089c4e748ef581dd9e291e73579b6bd07e7b678487621d83a8342f9cce1834312cddf5ff9db92d9d8502c887697ae81a1b2ae166d234affe6d61d43e4556cf78da9fd3182c3dfb78488f9a1226e61d1ae7abf8a8fa7a389e6d071da0087989fba567062af2a911b7afcac52535df1f16c1267cb6f11ba7dfff023e0f80b855c781742eb9731cc87f138d9fdbaca15d26e1a200ba9b086192ec58cfc19635b9dab710f1b2cd5431705a9924b714f31348fc405b31f78cbf11b0394cbcc47f4e23978c78c772d08dfc4713709444bcd8c443c02892f2518e4f3d61954a1c5e41cc7209f0d666f7d4a2442b4629019911e97ab546fea1918dae06f870085e02d5dccc0e0b6ecb0730ed09678c1578a17b0a9d015808c7c3f2ac5729027a55cadf26c6a57c52cf327f44dcb1cc83fd53a5decdab4588dc14e65e495a5a34003a48852d607e1f53eed4923c4ab559ad2f73218e3fb97f184e04b9db4be79541e78f6ac8414ef2d4d6f5b53bb699f8d1429d8b6e35a30e1671deaafd79fc0e25a645bfaefbad26759ddfc1d922ec8d32aa2d19bbb9b577192e78098eb853faf0628e10d44a5f2326663e131bf6cbf3aac005a0d859e7342088cb499f6687058cbda60e1894ae3659aaf631bde67221af8857b64ebef51b2f6e430b888f9829f7a75a5b7809e782ba2c9d83b59fc52b9cab2be9b79cdc9290cd42728af86b33deff8ba83dbddbfacdcafecde3d0c8d5f844dc42127a61d4f4a49b521c6948dc8059af263e09606e7f019789a29127b107929b212aab8a44a6ec172a1a735a7276f850438f99cea6f7c91b041f25afce4c88eb5d193e22d543bcf3ea6e9f32110e418ab7403b8393480cf252a383d3fee84723c1141d397ab3f26096fa2a456a4dc391e6fa485f86c245b4153c8728a2ec58efcb01c8a2ae3ec902a7c16e691dd05e298c9a3049800429b208643de90904a5cfcc8e7774080b27724bafa55ca109e52cbb2316a88d19ee6d679faa73681f299746c7598add603ebc7074013dbcab0d082ca609ea3235c11d1f3140ca51f86ceea65edd03f871f9e29c4de7118c33873edbec9e00e9e03e2bd1535f13cc96e8cf4c2baec25a92005799b9bc3f1fdf6be4f712f7e0a9ac34b7a5a08818f037a20adf8b1aef1515b084ed6ae3159d8d6924225875028db4ed13ee8d41c7193879c4f2b016742b3f284629fe6241fe4b79bbf9cd69e4738d2a45972f4db3a8e2c4f30105f8808302be6eff3e46585590197bfcb8f586c66a84896ca39092504928e3b12c5008f17277403006e152a7659cc9b4be4eef3f8f63cd29d3debdf984beb3695904414627ebf443fa0a0c540a411f383b4fa6ca5ae1345e76f2b331020dd938e8da2779f8cd3915bddac50ec37e8bf557f3396d87e6941e7e10962bbb7b9a0d873efad7d0b6ad2b5094a166e41c2fd4bdfbb9466796f7875428ac50816d933b5ae3bc4d7d2466e6b94c29df5472bfa1fc6f3c9b35a01e129acadf60b8743352dc4fb4b6b29d6c76353cc998096d06d101245af0cc5ff9b14afa3e23258b3e437208ed44b9d73ca977d751893fd0618838b5b13954cf30cc74af7aa6b1a54bd9ed41b7f46f2c4783d28f7544736e42002dad6215b52b9df7ebdd6a114977477e788c25119a4c70aa41894d545902ae31cd989118edd5d08fa1f587032db8f151a0dd8ec8a80792a0a9acd52159b0c0d4a0ece82b8c6b8a178d1d708566d15b9081bd0dd17236f8cdd33b6e6d4c2824af927f14f8f148426b4edd6789345e6f484620011d8c52e35bf1735b5785d59c32253f47621ca8a3c3f384d3fb998f686276a28d9f2f0808dfaeda45f85c897f6b2c81b51819570c888d65bc636d2055f6d1731921ed1c0fd22289b889cc92353f6700172f6c910ef179d852138c3299f2af39cf238d5915e02027a41ed343bcfa91222bcbfddff27a922667e812206d121b971fd8dcc12bffbb50dceba97b2631cc9f31e160033128a59bf09cbe055d2427d63b215449d45a01cf9a2009eb19ea6b046f0085d4f993e37587a7d58dc7a038639ca9c75f8b0e3664f94eff6d4d2098cfaf2f25b8afd431ececab3d4d5f9038687b0799253bb021eb7a641d0512904422bcd985b9682e7f39807b9ed6aec2eeda59f116d3c5aa2f308032f9adc7d5680be9c953a16e959276c8a5b4818e54fcbe7782ffe27e68713ad486489964dc8c7f8938b665c100f50ef09835c7b08630315f8f56dcae4dcbb121d41603f19b04f378e7e520938ce3c84552e7fb16e4310f590a022c1183d6ae796ad73f0d28755f904edb53cb6c73abba9ecd2799b8b5b3f777de5a5a904188ce3f5667680e7d3635d8e59a83af518964eb8eb064d7bf4c8a733d11acc6b9207a48c96448059a64ca2d3e228acfc899fea5729077b1a4c6a94300c51f7ba7cfb85f841908eaa5103a94e518e316f654662d9bdd25bcc723b17ec0a34111473e28c011ae950f85357058641844d158bb1e525d779627505e40bfb84692d5e8794f0cb123f0dcdf8cde4b39f8984e254ccc66d7c946e54d9eba685f0206a8610b14e77eb6aebb0183fa500ccc7eb50531bae029ba84fe08a4c47be52f8776f61a451cc7a67b563715bdf7f5dbc7a532915688f3f7f43a75c3cc7a0ba371874c871059438e9227468d222a6e3efbaa0d91b339f3220d1704b37e5efe9a1494285d8a74487c4757d705ade8b35bd57ea73e0735f16d9c0a4fbd509a2ee136b3064d2b4824b27deaef84e116c00ac31bdc8e2bff51aa3f1f549af73053758e13d59250182eff3041d042c9571528679fee991ed2f4f1ebd63e52f0d80a1a4a865b43b88c4b6aede4d46470fafe7e18fdce79829d3f776762f710f830cd518ad9191a0839ec0c55a7320d69f6109e628073871e977a5dcf27f2be94041ee0e202a7b147b5bdc19e10a82148f8fab7821ff0375a5bdddd1199f9888ba034afdc19db8762469a8f111e7e94267e0002eb9d3585c69def67735aec3d6637890e74224e4ea91674878d50724c2104a819c37ea2a193691fde0bb9a98ef755fa9a9aa7f5ce50fe3e22030b6401d94073db66c7cfb018f2ae894671a6c9cf677cc5b425eb1befdb1a0af840df84f571b2bce29143634ef35be362c5e3a0c64b85d91945a5d8037d40a00675def69cb8c42a7a6ff39d55a262d8f3e342e677f8a59897e42d2a6b16737f5a075e58fc8557aa249bc0c9ed2dbec5629e6eefc13004fdedf31e43eb4cf8b038d49ac6c71777710bfc5702fecec8fd696fd57f4748a678521e708faccd58487322166bb10482ff0df81f1f10699d4e98d16dacf1f7c213ec445f3bba766ba0f5e1b8d5f3d851c63d161e7cd3badca9d3e53e2a694287205ac9fd2f850f6d823d3ab007cbc22a506271fe7b991eb8c0d269e7dd9f6804d72ba82ca761912616dc68ddeefa4e446e77faa6f7d7da6321a0fe9c4f46ee37106563112806006498f7eff2724435fde3298b0033a80253251dbf5ddc54ae5f83ffbc4d1410d23d7bc814997ef4340cb35cc8df794ae6dec97c264e1a86ff0b5d664184ed7fe9f6c11dae33a0550140a5a6d4373b9e133c5fc5467debd9e8a1c3fca1f321391c7120d84223f73a3ea0f0d2d20054ace6ded3544f892712663fe194df327e844c7aa46d789b23778c01db5f387c3e1daab1445863de9937bc3357f84458598c11747567d168d865a65e12ffefc005bf47be6455c0894f14de7d9363311530e3ef1785e3bb3f7f628c8807184cb93005892d41a334dbd4b8e0025d08b390aafb215ae212f06e194fc1fff846c9fc5284e7bde0ece54e10f57f6e0f89f10af8aef0acbdbc1e0f2810970884d7a02f9578ed1340b26779dde3b2ef6b80689302b79b2614b8ef09f00f8b4c824d2bd2513d268636c621f0675d504398f9f15b3c37d24b65755092dfbab29ab2e012aad6d69e46e1d206688b82c3bee1f6a072af30bb80cd7512e8330138992bfa552f7669f60b4dd19a842b35d04c1eea6bec870d8e625dccd9803fd9e579dfb919a757c0fe9b389149118b9e678e113fa7ca8719bb8b8ca55bf0d9bbc40388704cd6dfc9ecd9f4380d9f27a88c9110d04f25b303a48434bdec299425c7832a2618761f18193a99bc64c0838148d03a6f25640a60e4e296e65ff544188676031525d46f6050bdfd6a9a5d971caf690360959057292ad98f8634b162980dfd112cac4849feb3d52d605adb52b2f3c671dc740aeb399eb93c1515bc6830b96eab8e596c6a6e2ad75112990dbf3c8d1e75908b29a3d0dc2c0ca3a51f386b209a7711ff379ad35fd55ec9c930c9fb6a87e21bee95c1137e1f644fa256fc5c1387f6c01678aa735611371f6563b7f1388e39932861e0892ea8c7d14d489e17a7cb385a153ee33987584784bf599765b47e1701392ad09f5768adf12fd3383552c6c3d08c39ab3292f717bc2f46b66310d355e059d647255829050d24815354194fb3cb1e2314107f22ba5f852f563a6a7b2ca29ca815cf4cb8c197b73ee195cbb10a233fa3edaa8df47458cf2f62fc4def542b54c2f0b668429a95d82f221c4f03cf69c65e247a966997677255d8014b3b17544f5621d4ddb39c20d4fb9094fd23f55e54137e1dfbf2de9f8f20fd64987c5e69e318f58b55db18e5a42af5a81001667a82ed36d7268a74e8bad63184c97c6eabc6b65c1ff953e2a7916d8d8b1ee75b66e6829f0c9f621c7e01277485925f98d0ba5c1e370a78e5ba1bed0571a6f72382e4199ec8a39dd67040d822cd9c94587e079ac0600bde918a3df69714ad13df605229e13860a1d922cb7ba0876b7f9cd3c427b08a7822ab12f9a0413069cd3546e939a42fabf580cb615ed22350878ae0f55e2a890f00a766364a7d07003313b1889323a257c885f8773147d46e810b2973672595a8f8dd29f2fa41dd518462cd48603e2c157b9807cb260610d3a68027a569c6ca9e107a17bc165f7dd6257cfd5c2f528be0dc3cad4878a414948885c60e4df5a9c85e3d7d85eb76b289626659c6010e2104f19c714596445e09b459e7a7cd44950073f0bcbffcf4cfe7ce4e2bd64ad674a865e02e03768f310ff991df07f2b4573dd586caca235e28fa5ea971808e56aef41b799587ba8d145b84fdf65f2ccd9b3a1fceb0b3df41967381325f7e87081dbf63bfa8c2b18353e03f3fe945b02a71b172ca0d436ee5f8dcd1a9da40ffcbb4cdcc2a410560987d442b78694ec7e6cd204eb9915b887aacd1337bfdb2c12589a6af6e89c7131de4639e839a772e280626021283a8db541a4c69b498cc565f55f0cfc381bf3bc020e6a7b29563c6c95b6549c13c9c9b1a29027695acf46b8cf762bab27c4779d38ce2f9a7e66220406902c54baabec35dc8d161c2f033176ef147c0c4a3142912c89416f20e4fb2ceb6a85f79ce4be564673d2c9d4f375e47e98ab29b703ddc023521af450235bbac2a24d9a93e229a2b7bf802976822abf92a5abe1233907b237c6966c6aacf22f19189fcf8a301f7cbfd830d580d32192b21570d3590390f8d08f169a063d2ddfb1aef42e73c199793ecda5f75c42ec3cbe0560b09ffba64a187d192517e03a19adbb4e4515ae61a00c62ee60c49af7d0a9eb273694b310da26cbf0065bf26ed554a5d9b23e26234c013b45b070a2ba7ac3428886714eb6dc5701e6110deb7bd2ac5f5954dce839a9fdb7e9ef0a9dcf7c7a14a13fc4d4fdd7b0d265416097564740b0f6246ac077ef52a6ff24e7e747b108882181fbe13061c0216a28d60b95bf1c145cb821d9559c6932d0522139b1e48ad9e53b883c30a1bd27a32b178a7199def5af31a5729374baa37c5baa6437ae07cf4e93c8b95234a4482f7a8d9232e9080dc2414a4d6c4f989fc5d6daacec68a8210ef381a93b050e45f3f50809f3537c55d2296e1d2d2794c09ebb646fc2045f1f69e75470efabe81c11d5a5eb26af8f33ff4a800d6142e9545b450d4ae8a6f20f46fe77f6819a3ad53dfd8d685e0cea00a77f686c8401708400553637d519609fd5d110029c47e4056b919430fb0794a542c710ec2e4e1d08af1f93616c5eaca9f11155f63f3d9d64027fa701aa29cd03a10b0c4578ee0192898d6437167d62584c439026ea1734c77a8581e242097f76b7545ea3a1d8d9306b837b5d200b0ff7b054ea7e8173f470ed006810476e5e6bd295556275bedf68da75c6b9d415de423beeadb1288f1ad9fd8aec369ae97aa576534f22133e0783b019676f5db9682131c488472e7e0292f2e73802294c8b36946ec3b0722ea584e97cf9f323f98299e3f0758ca4a5aab1ea0aa4938a2065576db0dc369ba905784801fdf225f3f5223d20d63603963e6322d0021daec4f482afe64b0c055b63ae64fdee41c310415efe5528594b20ed1a79b6903174d9929c580bd3ae64cb049a4c97c92e2c8bab1aac146f2c6df2b27554fdc596859d8f711701c30e65103d302a7c380533fc6085d7951b08eac19e6e20f64860cf52e96ef6b85741cc5caa8563b6a77efcc3d20fb76be1c40bff7d40db1435e3180264f6958a27aa31fd19d110cf9f728c288a388544d65c38b42f5fbce13a9eef2df4e5fe969cd12cd480cdfadbdb28747215fc8a98a10bb7a2516a11068a3106dbd23bfca2f8b8d0ee651d0782d0f9b0f81c77caf0572fa5e734633a25f7fb20451424c675fe420c1d34e99e574a8bc64b67138da71394cb34257afd9a9dfa8dd4b83f88f809e72219ee8dca519cca23cc397becec5e4885aa0626d37f45ebcd3bfa2cc850b94bfe6b78789c985fec23bb396f3517346fddba840c5346b06b44145c0602800322a4faf9a45830a7484d248715d16e60721569d11c392f3da2faf7de0e44a2afb58f78111ec5d699942de3c4e348991239da136b9eb1a064e536ffb6bb9717b046597bfe118f53a8b1f784ff80201f869a25e8e5e1104a4c93f7acdad977ae87618ff5484c5829a9da6dbd35cd7ef3ffd8fe672ec376dae2a5f0bce554af1c70f7debe976f5d355d63e8ff40c03fb1dd6e95be09189a007407ece59f9f512c4a2ba8fb5b9727681716d38a8bf6b1a15419f52a6415b104951b7a54490f1c1119245eb8e529a31b95be8c532ce6b21505ca1caf632414085942c52b8f62eecc35b5d47c7c9381c85b978d919b94253a29cc976b861330c81b79289286b3326c10adb750ead76e1535fad9ba6a015e58e47108afb0cc2ff0b598b42af14a07c17bf4fab390ed5063b595d636acb7f8f91fb1285dd365aafa391cf41f3794abe2832730e47013a453666fadabe23b3914425ebbd7d279a455a652a323205e5c06f2ce25661200d47ef78b38de5b628c86a8b549c61e9b5b60c5443d1268a37626d092d15f807645d2f3567063e37e1b856c323c4cccceb4b51cd38fb4abae747a23d367e3ad83efefc7966ea047b35b7a1b90ca81ee208792bb50a9f64afd19f58cce0d363b8d41d0fd206ba31fd3681a82db93e3c84fd2d7ee6d4e56363f06267cf0ec55150f0b4b0030521545ba0f8cc322fd469cb81166aaad9165839d6dc06f6ef5ece4d5c066781b700c5d655d90eb18731be18ca7941445c02a872b5794401a069d0e05f75adf9109e1ad6758f27e4f494858c4bac7f674bfdc9b9f81ca246154ab63e4bffe1c8729d9264f98ef7db1834809090453ebdbbb76e986b82f32f5fc3282114aa0d814fb60fafe4cebdfaab42e54f1d8cf66132787100f36b9ab83431e445027a8c6b9d485c88074a447973b7783764c9f965bf85e7c5d59dd8f5d21520ec6bc0b800193e9ee54da7e6e38749cf7cca77ef4de8ca572095eb0c8a2b15ae5b82d5a57057e14b61a06b1a97eb5f1195bc7cd49262fb7a2b55d7563163b7325a2e8fa61ca9947cba5457ea4a71ed2abdd2e06a219ec6e368d5854a38a08c0bb8fc06d41bcc9223522ed1a883f2725b7305b8c5d91fe1953bf9081500298c8fc51a8109b86e239eafee80f71ed6a186faf12ba111aceee16be042af7fd2c857d76286d2f181ed01fc757b24cae6587bda2eda820f4197d3a58fe383bfbed427c5788398fa5b51c38573a2c78b79f5a35db0f83292e1501ef928433b5d6b6ede6ff67ef5b8aaf49e3fa6197d38e43238133df2fa482fa8bc5bb41a360a10519034a8b8714736ea2c3dadf393fe4312164ef26c3a59d5116523785d9e0e4d429079d9431a75731f273c68788adb9384dca7d8ec4fdbc28e8e8ee1b4dbc029b7b029b1ee4e44e6f93718e8a63b2413d1bf778884865b35adfe3afd60a70f63aa7c309e08de6c544e1955efd4b3fffbf1d45fde45b65a93b0c1ae7f7ff1fc097e7effd3d904d6c71be797028ebcea89613ec1bf6489cd16eafcd05dfb471d7202ed0bd7dd332261b4cc2a091452325011ba44ef3de49d478c426df5a6751c70fc3f4e19138622fa3d9e7b7d235f7de0858d54f1b3c2254683edb4c5429e36e8c43ec5a6f1b25d98b4839c2ddd4d41c150b29f0094f9b7e51b93bbb77232bdacdb14f0e1dae28dafd895c48bf7364ab462729912f5ae179783c7f9f6e3b497ac87d9555014362134b330cd8e99ba384df058f9ebc208fe226b49ca592570bc71dec0fc769ffebc7d99cab52281d8fed7e2793a45e78498345628ef59f4eabbefccddf4c680a5b4f9da511d29576f658f0f971bffc2aa07b461a00b9d001f36a2fbf5cd9947f494ad826ecd0953658723af971f67e949def08a35270d683461fba7691d3ee9039a89d6882ed38fde5490cf1b0e8c4f46a69cc10f2e816dca8722cd9afb134162398b7e20ceeab44f1044bab272a261065c954eb872f52ba48502369087b9c71799af7dd3e04dd4add39588601b79b0f3f17f5920255448e64da852ca6047531712b6666fb961a076078c60ac9cfd2823c9329747e1cde3f065f1ea602c9df249b5b2768a54545bceeef21366cbd007263df06af121c25047658a088a14be35d9c3707f6dcf0c227b1ac31baf45ebfa3819710496c5374ce57d3db29b453d759233a5cb8aecab7417f3d72998e75123831ebf442492e5bdd7ec90527370baea3d30f16659919c1e7035f6cad156dae8da81df7338b0ca40ed8ab5e3ee4a6eac8c99b4732f4834e0a36f22d38378ffd1926a4d11232a57f6d83fc53acd0dc7ddd080b078a1c0e37b4584478e5cf9c5d1247644497a7124663089510cdcf514a70bab79d0ff4af708732e2def4dc7b0bd2e36dbd8f7da3d6c43fb4184d3c446c6fc16bba4c65ce7ad8f76be363c96c5dd16aeed6a141bf977ebb8028ba03fb6cac76f481f381239240f3da0cd165ea1c8dbd6d7b728d25e9d15fc021228af044e739900bbe3a8eea78cb7174a71d89cfd061c00f2dbfe223bf9938301bf6107bcfe2a80de9001883439eb40dcb70401ef75e131494e842d37a360b5a1ab26c47b0beca32ade2393318734959a87a54b6eb1f7c78ebdabb213bcd8279906d47d8b1e5fdb26eab9ccf0dbc3c16888c383acd729a74459a0db5e358487da3ac3d0e14f364b358590d09ff91ace7263289e40b1b408a19af3fe3ed983ac1b3550df25d5d6bff8bf1a5a8fc692927616e4f1e565c61451bc18691d8d05f9af0c5d8e9035da6f9624ee14f210d67e55f1cabce469064d04dde8b4b176d107e090cfd1081d918e7d8c45fd74f066b0a800f0b756a90bc70aef1db4ef18c0aa18af0f09cdb47eae9e4f7f5053711559518533bcb9aae33690d6d9e799ec3f398b178a6b3b20d8f33c7d9c0dc8468c753f5eb076825e8ec93dff20897aeed12e19df31858b3c0817c3e9c405ff5cc5d3e8f64c2da19581cf4c415921851b8b19a51efac28a0a2d374620c07ce74490692a622e932aa524375425d1b262d997d822b95d0fae399b7ca0b17e598a9e11fb8dc63fad969154d75a7537712ad8b12a0183d77e0a24578b4dee90e6c5d840112e26b1c64738e289f890210a4910ad8cc6fe6a0c072b9dc572d3ad2291d76740b2d975754b5211169029867dd81def67fbc31b66d9cc5b5ebdd62fa12854a8be1dcbc3ae87d71cebebe24386ea60f190bb6e73c91ffbb33b004894fac614754a6a9a96ebc53daeaac7d3969287f8c11589a7ffef29337da9bb32feccca6b1661295b2d5d4e4b68831009a64c64e4805c3a6cd00bc398c2dbf804b34c6cc827c5a5878c3105b95e5be6fdf8b28f57e4911d44fcd38edc424123c49d64648516553f1bf9e73bac9acaa771fbc09b8cb667ab721ba14b07efa5c943ca66278ca931fb827fb5a82498e592247ea7023a5523638dca998b5b702571a5ed4c95d5773482386ef935d7c8d7c4ca3495ca1b32fca9122cefb65f9fede363db88414b6ab60769d9c19b92104ea2f4370faae552cac7c0642969ca0bd1a54f1065b40e43a6d2fe1660f53647b1f2c282d92e57cf045b751c847b7b77a9782d28f547b616ef62c1420dc57dbb3038fc766fa9195710de4e015b4ee4598a1a1b669682a1c92e6d05bb9e174cac9c0e80560cdf85abdd17a344a623425cc3a779300011219abc2693a44aba0ccf109b24cb43c46d22d8911e1a879cd5deb24ae090e4c1d096ff9bfe647cb49ccb6e56c1602ac28c23246d0a3de4abd273682385b520252c23150bab27b977a8bfa8bc89060e484fae2d31476a16901c6017919d707db01877c77c175b9477f4badbaae192beab38d4866d04e1a4a50120594772b8ff8bda1ed415e035b41bf0423a76843a669a4c3b16499ee8112513e33fd94626c967ab7882da142ae63d1ecec6052f1cf29b879b95585348b71de50a39a4bf7988fdf4388ade237643a6524cde78fcb80a6ba0436056b6ceb23ffbadbf4424147a1f03e6491b9a986537809c92244c709c2302949195d8cce2466715dffeb77bf876db5e4d666bd4aabcd712d5f1560ff0892d85734a2b95f218a64285c464da9c54cb4f244247b08a8c43f87066913f53ec751e3d02ff0477e81865a5c3207eef3326bd8883bd77fa70e00ad6e2961151615cfd20e459f61aef0f672aa6c959a8d4a180d5049bb9e187f0f8b2dea17a7a64a2d4ab9596cbdb90bc61b9edab827f0bb7c3cce1f3c99e0de9e75f2e84d0be138be872dcdee955fa8822441590b38dac7085aef5c53e9b43a8f0189ba951548fa89412571e39218c43ad6b62f2c93c311c1b9f95fb72f0e494a00858ee9c303e01c47ce77aa83da544b7b290fd48c8fb61ac5dc1db061cdb6477221efa3511f94e7b97a8b9a78f9e352d80c0fbd54d5a65b44a44a25cc4248d69cdf85f06145e984d2b8938ac6c0968acf15334ba6dabae82be800f1c8d20e9605e0dfad9dfce6ae521e64daf3783bc077ea398657b46ccb9afdf3caffbadfbb762e7d7df5cdb898014bef0ae0db0f0c567b434e83d09c9d3a91ee8c76bd648c0ba139d2cfd1aff712a588529822ecca1ff5a147b40add19913f6b4d513f0aa4084145d3895b6139b47788ba66b960c08b77230f6b246a4acc5d19992196d32eed4f7d85fc424e3fa8a7ab42ec0d4209e02160358da8eaf00f195c977b6c813f7441b8262eddae41a1df098ce8176bcb90c00954311dc195b55aaf1446c44637d49e6cce4bef4009e4e97de18bbb40be53782317c58e941dbc7c5907d4967e2135f852dee4b1482bb06c9209f8b53d95e71b7717077cfad6d093480e83d71ef4304f08f6cb4fc7cba81b5567e44a6479953dffaaaacd1c656ed8f86107f34bb0884c33bae5da914795f0ac4d2944ad6bb180b1f5eeedf32aecf2bf0c5fc06465490bcdbe8bae357eb01dcb93bc66c4e205d868ae2baf016e05ba2b69ae5bd488bacd9cfb2a59953933bec8e5f09a7d7d6b1a54b2f79940f2ca349b6663be51a066870088846765b0d4ea83f68d2cde71fffe4cd64696437268382cdc377a5db9268bf674a8d7f788638781781453bf8f3b67fd443252f25345c1e879240099fee44c70ebe39ba633f56399e5cb36beb7bd7ec1bb3b004661318551e752c9525502f7409097416710d4dfec5af25fdd597bde80c3c1a849952800540549763b0e16f62853af52655dc4b6efeb2fb636e59c7f6d68eab0c01d5e439ead98636d83cafc71dc0bf64be28995d64a296e6be88c6845bfaa9b40453122b30f49e31eaf3104bceee670151827179bd4216b2d51e431a8ef7a627ebd9983b7657262e310a1ed6cd7eec89b21136215155251a17cb8d3d519f60cec34662a5eefa1adbbe7a7fa8e90b1fdcf80eebc6f825d655866fa2f8622f32e24ccd98d3bc98561bbcaf8838f8959c30fe470671f3ff8e4bd1a3da279f8a144e7176dda22a31c353040b92aaa201563bd29d8d3721b5063e2c3170fcb8b72e7fd49cce01c8879f9bd36123e91297a8a4be8685d64c1a516c1298cf5c905ff686c470deab22a1d3009c7aeea70b82065d1b8bafaf128afbf6d089ba0c7350e030d57579f8004a5552aa9499db8e532f8d7dcb98d5c55f399c596c3ac7ecfca0ed58027df8af929c221fdd59707e7ff824a276f8f96c7d201d3bdc62b444fafcb5e6c3fd5b024c28f4e4fc5d4992dca54ad3545e5992c7f55dc527e4e4698429471e385eda128f12c2b88908d39528d22c6e3c31fe2aa789934fcf6dbddbf8bc5ae635b516ba36b5560e90fab11e82e7f89c9dfdf44a8aa40f4f0be17b0e582fbc7260843aed605e229613ee58d5ef27f84ef8134cb562837e6d465340e7c9ea5d7ab7bec0e7f014846e85608ff7d64515f76377f8972264a7159fe0432e17eccf27071f2b180d6db6964f0d33f4858c4c9f081cfaec452202fe684e274130f3b97876ce9b44a36cd20d4e38bedeaa98c86da475590b48e3b310a87d83e2a5433bf3f95a8d41e17f9a2453c85c00daa0adce0856d8eb2cd3c4b099ad25bf2cf551d2defd22e2ba7dffeca2319afb0d4ed5139c1b7086f5f0a0c42a8ea12420d4ab0c4432cb7e64bc915e7430f2ce2024fd81d72ff7762deb351e7d222370ffd182e39e9b2e8cdb3550bb7553ce81527a2971c8d587c8610c40d16a73aaefeb0567f9353ca5415fbc87fc4656ba6ec7033f5c90488260a33798c8fb111b4b2a3d184ba3fbab3bf13eb493fc4bd9ec08e8147ae529440307f59473ee69c90da71bd1c6587d145cda1d96979f99e591816b81c09140ef55268ed0b436e46f946ecca5a81847e9e6258fed89acc0456502282300f186d9919d3ae6537bd9b5763342d8347a37400020138e3e94f9ff233fd5e81d778980d78f5cf8139554b27ecc0744e36b4c753cdff8bb103b9e962450a1994d29151a301fcd113914a51464b2a04391a9b987e9b9f20580796417813119e0961f361c56f738b4b6bbc1dccb8579b1d9494f9315c9ba0c829c68e7ec43a199dc0886564ec58c257a017bcd808568e6443230a01b6ec7ea52e4071603c97d6c14a6ca76b4b8714e438f7d027419bed79ca0d842adcb0f2e52068b40e96c6be65a4de4125f07da3b47c42454d84ce5b653a174c6e448e09586aaa050dab8c7a516680c92a86a9d9567341d73964b94b4959b86dbe80fbf06b7eda79f8b9d494f6bf5638f3b9f259c2224d7e56ae88cc950c4dd0410906066a3e0ca4866ee4952d304d28fbae62a7f7f10c9513a1aeda637a9dc3c3ffdab51cc07e9b33de59bbdd53b3225fc86801f232682ba8b7b0f3087a80f8d74cfcfde64da51a3839df5a67355d3d8dd46f18d69c98ca0a3c9fb1f207513920b3f66dd7d474f4ef997e8e6169e4577e1f42bd9d80e212a6e6567bc5899cb254fcda946362e805284366a2b82797997e1e2bffc8142a7bf41d745b8c4eee8a958bdb9cfc0e402861d43eca280da2d772b642903ed620ac68648e9a71324c0ac1295eecf5ab16ff4c66905c2d9cdae863553eeacfda1da607c06b3a8104070e271a13eede452a39015baa9e55bede33dfb8dca2ed6e63f66a503541ec01859ac9c6fb240aa7759652228f3d3a6edae14c072ecd81d4bbceee3579da792d8e1a8c653e9e40646974ea60d7a5dbd139ab89c6941b9399fbe2aedbae0aca67f8f05fbe4ad200bd6e5859aa43da14bb8d6d9c259d28af5e504688a0be1291c636b8ded7d9a9fecb55c8bf78d1cb5fdc98b29d5303084d3d3ce700fcb529590a9b9ad2fbdcd6a13637c35134dddb4384974630a60f0d6b954e0ae89a2ec07f3ceffead308af93d4d5d8f1adcbc67906cdcd7c135d39f2fc0654bc6ed9070503215b809f03c3c278f29380f6d5c87c0afe9652e6205fdad5bd3d4cfcdfd086f6462723671b901c0119a8b4aa9934a5e41b1e719fa78f272cfe1c950ec50730f6b4f42419ff922e399a0203032c05067d74dfcea6728f7d3b851fa7edc150c55838cf6d442243d608386eea4506b8cb51f0b3942408868e04bf335875af1450c970d408a13a2754a5ad4d7eb784b5dc06884f4d9c70dafaa951ebaf068bf18ccd511a3d3cc4f9fc3426269e186549ee24c90f1636b81fa0d18f2dfde4f8ba8774a2e56c6f7ddd3ab5c3f9a3104e2b102c561aabd6721129e305bafffbbc0a874f7f3035b6eaa1d076197293ab4697f0db64cb68a832a0f084f27acf8f4261a939d68087cdd1179150afda138e3af65ada3d749c20110e8a08c8a76b0216d6d5dced0eb842be75fcbc84ebbe9f7a16b3aebd69bedd2d1b8090aeb71bae6d58e254da3bbabe7fcc757387638eb33af46e5fd8626ff427421d99fe230ccf9a7f11cc095805e7a88b02b21e7372251212d1dc12275362a3044f36c7fad0999aeb496ebbb9dba21016c658a0f65a7b7f6165ca058d2267cb47f6c84c41b8e78935a99a8123eef05266ab2cdb803dd760bb0227dfc88e75cdc03626822616552b7054cdc57a953e4ec3ee128e35e26e79e852c9e10ad0465871972b9605f5486438a85541ce1c5fa58479dbf073814df33923a5e16df95c233406836538d320c0552a8f85acd5d640e7413c28517c5adab1ff53c9356ce9675910ea03ba58a6eceadefd75caf02ac9f120f4d2e2b9ff9ebbda69165e049e6053e2a735992e083a36e360c9f9544c3069d0a7805973d19374c3b45978d868cf72e0fdf63a62ca22e26f888c6fee0027d502f037eb78487184eca4b9daa67b7bb3ea46f66cfe85bbe5a47e9e5a3064a794c73bee8d39f7d48585c0701e4a49ab989d291648c4da46f5c05c32cac2346902ad9e138217a1bdfe28354aeece54ad1922baede22da9a482a6f850e496aa6ea9525e05add3420fe9e04e292505c7539e5ea846d42486db4dd070546cdbfd78895d179ac3196a13cb03db833ca6c0710b9b9fa085165d9585177f6d998b9c8e6b009e9b447731f45f6c43e20a6b4860dfe9ccad555060a077ed641f3d92497c468a52444347d544d0cd7c63d2aa857e5ee819d38acdba6fd1ea35c239bb0550b3ac7ec5015d1d757a26b9389f5db1accfa709ae15e1f19770d63f0049edafdf716c74c35b77c6614b932d26f69bc8cec8d14d8c23658853c385515b1266bf3efded93d700c7adc3a6052108d3f5944f8b591aef805a4001b938aca491f257493090110e7f11c0bcdf9de74af73a109a704cf60fcc214ba342537d85cd5d3d1ffa0652671d3b954f41ac646e888e82a26693485577b8d35f6396d8f9dd8fd8a32268f658864130e4a69a2b8afedffa5b7cb727e19ba391ffd03a4dce421796fd1e5c3e4a42f192c9a4405ec86223eb3e7efb03069c727e72248f5a2a8a166317f6e43a1802e0b3ac4064f5e6dde2c2c9a25c9bc895035b499afb3a0347d0f221356d6894b975ec223a6936b496035cfd464c4765a5f36c3b638db6a5574bc40ef410ab028a0e2424e370b798e0d7eedeba341cc9f7e4bfa1846bf0307cc99415ea52549b7c7fd48d886c790dbad80bf71d1b8318ad8441fa48d76c183d0a093092afcd0c0d88839d6ae44d1f9ba0cad34bf0ed288b7a4269409adfa32194dca05fc0bff483fa73794575f4f19301f785d862070480ac4132d103ad6f367ed36702e1116921a520a869461a37bb5086211d44476af47f6a4058d869e9e37300ccbb88ea7417468a9764faabbcec40084154d2244eee02daa2d9d310d614edaddbc2c9ec905414811639dcb8ded7e61781c67938550327920a41a216ceacd45ee2b8a84b2f1ea7d9d9274b7c0d5ec00a0207df7e5b1b78fd4d326fffbc4e17e8f62d3ef0357b46ecf907a7004f41d93ceb3f4497ed02f908e5696f9b6073d4996c35d4db7b6eeed4702f3f35bf226762e38e9b47d0cd0f2572ad059acdcf2bcc600a72234d018fa9a0eb053f09d176389971d8c87809acf1344c65b5eb0be1e831c4875eed1d5343cd890a42f0e684c73c42525e92bf10f5932fd452f6c84f38031bac260e3af8469eeffbdfc9b91b2c04c449837a48ec7f987bee15fdf7694d3b3c9e5259d180cfa0c3352efd97d082a7bfe389c5eda7cc71bf8d8f6480bae907affdeaebafcb7dc3251af48b573a26e4af2adfb95c197bf1b535e36236a697d4486a73d50cdab6dbf7b9988334bbe6fc7de947d0e8ffc40d9628f884216506d631fe069b74ce8920b60d458cff3745334e7152399ef72a60f3848d28136e6883f953f3b683ee0daedf40665f9c1603545c9ce95724cce4a82e0f53038d4eb218bb8af11271310806efd1e949d01d8b2ae89f6d40705513467688fa9cf7289d1352fad89068254f8be28843ad6010d008327ff73f47488dc256b50fce2853bdb79e89ab85b535b30655868b80811d3f428731745291a42345db75474a3acfd28bdad82739bd9b282326edc8cb93804db25ecd14ac7bab651e3e91e012b098b6dbfcb1a16ac9848ff2b2e8cb2d34eaf934854a29346b873f3e2917a3ffeeffec362f71bdc6a236be679e11d057998c532a5aaddb05bf0f4abb8678053d038ef2ee5157cf74fb3c60d929737e8d42e5b9f81bad69ec62524551e1b900cab62ace9b90f80b8ca9e9d4871db3cc2bf69d118944276bed31cd02dc546127faf77e509806396b9ab1b1760e411ea51e101f9cc8f5f16bbf2881f7df0e02a5f68fcdad8473891b1f21319cf4639b396720ad782876df9f4b6849c9005f87e63829bcccc3ff55a710b9df3221f6c6619cd92b171dbd04c03108206e8957a1cd10a6c6b9fb10d97a5568c00a6130b96a674fe00da10f953042b93adfe9fdf47b22c7562c972ec44c4b9695c9e3cc384d0585ccd4b0ace466073829f5310bf2f4e621baef47f67008433d6403bd4f5c55c74b7ee2cc896427398f5fbd983c700f2767704f7e208c3c01d54f2565dfdbe494716b87791fa99b472ad67cf833767285f98b5bf3946cbd3d0d19b739ad951f663f35aec245ce70d3b7a99e4ee8cba2f3d31ef7218f881e2558c9f6f8ed0600c8476d58b220ca2635dce4003da63a7939c0ed27c6d2bae2d94455f94762bb875f85b548dc1c8179f6b3dd6c8ca09cb373dde30b68f049c7eea93f4a2e6ff57d5ec955ccd4fbac545626d18ba3101eb59076002ecb99e359ec9f877b98c61075107aa0ffb4f0e813c807a65312e751f4d328b9b17c06fe1dd04b6b36d69f619d52a1c03998cc74e8710c02bb0b0cfc07565a0af14a6851e28b79c9241d809242154bcb85223b811eac8a1a7fe32fb3bd8200b0b6c76f5b8b80062c7a0393c2aee1332e30f70e17a4880debe8952bbc2799b64033cbe01e840a1cc5fa0693e6944dc7d5783f9eeba348b7bbca3ef1c0192c242529f136913af439e91d05422e12886ea46b292fb43ee2732162a20c451ea5b3a590195a6889ff10d050c57170ccd32e15ba6574ca6d81fbe165a6b3f988bf988822e4623ab55f2da66d6d9cdfb105982332a81934e204a5654ad46653ec0827facc3b6f21af3e7139320a0d89640603d3172b605f437c08a1b2da2103e36678b913c98655a3385fcae00c98606a5420ef372dcb2689b171a0160b1c35d08f63c3c17c8f6e76de34cc3cc7e3dad081d6df036cdced4c9e221fe4dc18b7f38fc2f51f085240b833d59dc4f3405811b270aa67b0e0e8d5f165d4c0684868f146096519648e82bf328385602d13e2a9221d7a5441cce1548c716021edb794b5e82b5e534a20b715466c79be74c9fc0b9dbb492b6b270c3c0719031b4d521e727bd54e44bb330017cf027f39ac66903905fc884c010bbadf2b5086318e70954a5cee0dc27989d8ada428ab7a1e9a29a6d1ccd612d82c0495787d06e65afaa227ba723e558ccbdf5e8c290df9f66715b989192b6847fcb653a09c82f6801666141a99c6dcbef12c6dc4850e1dc461199b4bd909f6adce16790a315e91716ba77ad14895b11fb6d8bb7c8c1113fc6ecad0496d99aaeb1b4da950083f3bc4ef038d8de02f888119b2355ac658487625c480494fb6ede6ca90f5c1ccf0c8b24a7130cd4cc2c2fcf74ef0f52f8124eeb1422b23105e6a078e5b5de067389a9ac4bdc0646eabc36cadeaf35b4419d18550e10647a60bc2ba4f3e79e334c1357ec7ed1dfad0bf15eec9c48d8bd71ec83e557f2c340cdfd8f2ae269e34038e8185ef988a8bb1bcec67d6f156fcc06d7182c48d3a022faaaaa38b2710f4e8971677aba805e654a595fd28d0a51556694e9d7b471ed92c3dc247a316ec73e58499446d1af42eae04ec9bc992f4b2b46a123ee9953f78e38b7d5a3d9147b953a0957d6aa7215d554dce726694e3a6ddbd8dfb55a462afce8642dee739a7012d7f12d9ec7359bccdd1d8725864e2339f3780cbbc6330e536c1a9d8434153381bfaffb232281a6d1c0f64d5b7bf36934fae3f8a33817d93af3e6dd1e18b42825b679f86df1433e1ae43e09580e80c7357df9d78e39015c6e5019b552e074db6703e4476fc446a62918c2df1c60c79738c8ba0ba916f06a1be3624776eff15dda58f21ca889fa58bf5027decfbafd5a75bd46dd8b71c26d9c511634ccc88a7b660f95c6a9a7a73ca08949cce4148b719c423463d2c8fd337ecbe9a6b734d083544054b660e4239e51a8d4ca1d081c144212984bb5a46c11a96f9c574bd522d0023178c70c913c172141663b56ada069ac5b462040d9aeef2f92742866e8789f1c157bc5d8873595d3d140f1ce1863f00657cb732c30ad3c6ce1306c6012d25976a458ca840783c66532f812ea8d4104d4f12e93f9c1425af4a9a1cdf056e97b44dd462ef10157ea0f0f29e077c79d2ce7a99258ece46945b71ed0c7d89b374c0b5481d74c15f53f4414629041583bbc55e004760b0a1448bb240b3d1978bc46509351c9dd4f61e9c0db4ec4aecd824e59dcce060507dd794d8facd10c532da019e45907427e950a8093d273f10829bd880c1aa189e7a54e246c72cf4ca127b275ac4e42722c1d27c82ae4c0f0921d1b940ebda79224153718820003935c8961e28fe388978956a5051b7b728cd57159a21d90857480b5d522e2e41211e81f46038f414907a413aaf2235a3bec505e7005d10e3eb34439b2cfe0f8bf1fac6211c1403e9d5f42642f80c74fc48e3915862dc01574f30b28eb870f0077278059fb57f697317a11b99e0765a3c01c2b276adc30ccb059e04b944807845706760be422dd9d9b82664ddee4dbb7a68de669dc3cb57b17185a4d831c77edd3eb9aae90c3f7b203eabde3cfe8c485cc0d90eabf76c8b095aaa2c9576ee0be1318c900c129a12abd3f2be54bf12e05091cedb4d92d9b65e6d35f6401a6c0edd214846b0880826a0c6107e1335c82cd525b5033c52c8e96dbaec82a2bd915721ebca4eee532c5c5908a8dfb93717d60f0cd86d03e60e4de935fcc58e10ebbbabf1a42ac08f417387b0bb2e12f2b0b72f9858c941730cc4ba364e8d7b58ec70ba9865025a09b17e53770f14f764a4db6562c33f8212e460c0fa738d17eff00192c9f79d2ec67254923d18a84de2c43033c3b435b24f87353c1f1ed263c3897674700e3bf37a405412827ca2a8926037075c8dcb1aab904b182c2595c0d61b842000a1147a1298f226ee24c9e4f2461eda8e3610111ceeccae0722beddbccee470ee77ad822b8eb1d8c9dc00314f1f0a8203f7171b885ba7fd7d968c8520cb2ddd32c92faf9870718b8382a11e4f0f81002357691c4dad340cbda52ec63fc9beaec9e473a6df3843802ec8ef8868b134eaa0157238bceab1d0dd5c46156befa4b535f17f0abdce2653ff83de5c665ba458eb2bf67d99388f12548b9fa689008b2afbb792539e1a5f78d090798ce9b4518abce2aa1a9d93e29d7e2b985593da103424820bd025e845c8a13e9cc3e49d81738ef66fcaf45a879b1c5bfd2e18452437bc04c101aa98c95b1353d5c52065c30620ccd871c0aab408d1e35edfb70f35b3575d9951b7a5fe56eb999ab7b64eb8e9f5b4f75794861418a6531b08a7805eec871e759a8bf36ec295052ef7996ad59fd5439d3ff9d3a5bd86a5a6c33213e00e676cbf5c97f3103f9f5fd6930abb19f24ab17db4ec24f3c5c379cd6f36867fc8132935840397103439894de422abf27f2450ee3c5e5268a08fdef62aa33aae8d2d31b5892a11d410bc4b86374bd5c8f2f5112dc5b3e6d07384a8a64fffe18be15aa82b63196ae66020b92b1dc719ef42961b64854458492b1d5bc29fe57c2001c355ea2314e1b1ba841c7c4d2805eed9a069dbd7dd132de93aa15abf81a9674395100068121f3405a97a61cad6866523f4840af13f57cbb4a055fb1416420759813c61a53c39162c77a2e96d8df7fe4a34477c2f9fdbec46771bc423784bcb573c56f3457283d21c78cd7fbcdc6f297b47afb6c525507490ca86cbf9923341270090cdfdc632d2d258d0897ba66e9aedd9c598d46ea4a3f50ad58e5be25f0c750a7e4029fecfac4b6bdb4a3fa5cfcc83d891e0a80b23d03f8c3570ebf80bced01ad3761e167af37727cb2ddde211f86af81ccbb2005c8ff606a285aafb77baf0f62cc146bcf831a0a508d9713eee3984308800fb46dfa62816473ad623673569e7f0de83d39e0f4124faad74ed3dece63b303e4c49c748acbb7c845440ee0f533a38d6ddf0fcb91487039624f63061d818e270056a136785da4eb29632924175c0cc2cb6e06303dbd2163f74b4d47f018b1f318c7ed22770ba950e196eb636884e3594c52037df74b0d4297e58eafa7f9a73d3a34d1dc484889ee06b805b0e123ed25af9630f2613f03c2b73640d1cae10d77e8114e15b89d4638800832d612cec0934de10adcb8b03ef43e8312a5d21fd24fb51037a88cd1256b9cbabe26b3d3b8529a6c2baf06380faee626a444a6d339f290ac01db85a1bb4152cbbe9b64f0e7cc7ffc65f7ac0a13f4a058f8d65adcb8259c7e3159cdba973ac6a8f68953cce11d6e4a0a2193ac35fba4573cb07b69faceab878ca33dcdeb91b99948a154feac1313f869bec84ea3decafbf0e7711cd4df088809c3eebbee359874b1f3c5e53dc94c2e37623f73a0f56c76db9ad9b3ab0c57d6f901eb5b01e6709ca88a59efc1164a2d647533d7ffb99454dd58ba40c0bc71aafc87567019169cb3afae5946011d0dab0aa60f6a64d6c1983ba6cfd2f67a0da1cd0088c6012f6805a0643a3fb32de9c7a372c844234dfbc07065b3cd293e4b987b4af1063748752fa7da0a6d0352a0d6dc46a19081236b423e05ccce72adeac33f15f61015b660a819ebaf7e20b73ed777853f0535ea248f9929217a6a5ccc75b29995017a583a8689007efbbb644f9bdad0da1a1158cdcfb7021350a81ffd4aab2be09e36407b3bd35dabae83351b613a408c213ba4789710b250a52728150c1ef27708c6896cfa148a0f07a794a398603a757f1e35b10f6b820ba82ab4545b47af11c985290efcac955c386824fe8d32ee81b2462b88cfb6bab98e02f09548d1fd9a47342c89f02bf8732a66b3e94ed65f951bbea80ba43d94f8b77385a40c8a6aeeeef0c7adaa64180d6779f7d5a7bb8d8ac665b4d1e65eedaef97a877bcd66f232abe047e1027dd752719130ea157c873cbfe8901cf4e9892a85392fad09adb0266fa52fdfc8d3dd83eb292f826105ceceffba49e27bcd90ee501cb7b29ef861ddc9edf283def2d141beb1d689369c1ece2fc23b030c431af9bbe8fa7c31f5571c80bcab493fce6685f71540326d8ff3567434836234c52e66ce83971fa6d4a580884711a3675ada86275f2562b07dbd13c362d30019226d6d6a20359ab8d36c8cdb20de37fb0c0fe202d5d63a057a59276e06827e2a329f63453dcf53f272fed6920d77cee1799144e513f9f0058e2cacf6d3c5f3ce50cbe04274d35ba57daa891bfbf5c56a77630569e35019252b966c3b15489258eae8e4d8c6d037e3089c08564bb6ed8723f2796568be2a2c037d160a21a22402a6053d7b7e74c773422c4374698163d1dae3b73be06cd15d0634f3eda93d6cc197d95101d0d8d67dddbf7db8067430062d044459fc58547e41ebb7316d395210e51fc21fafa599a18c7ca57957557888fd5b536c729e7d313d8c73bb9f82f9a914e73b2cdcea0fcc529a4a3e6d2e6b7062d615785d55bfea80e3bb54ac3a4f07e95704cdaea839638a911863e6c8e48bbf410202fb80c8ba2a4c240f1af83cd84c9152aa64a0db4bb44a00547b36523b9b74e8e9f2a14a633015323feaaff4aa738256b7fe7269d0a20ea8d12d7cc399d7cf4d0b21b480e4203376863509817bf51055df22c8b99d51da30b948c993719246137c84c6d19e9c33b7935bc7adff76a4c8a537d9f21414aae322367e4c573176ab6479ee54ff728a2862eebfba54ed88ebc38c66a89681586b8fdc0f8fb034764df186c2b4e6e47c0a32eabcec2195269f8fe241a27d45d818cc133290ab878de9628faab5206967c70b61bd7487fab01c1439bc5f2084bbffef3a08a2094e6e631e9f0d25ea9ef0c436bbebdb6fcd8779d6ad366e1f7f7c3557dcad7112b2df6e1cee9581af565a3089917a4f3de4601f01af533c98bed0f8a297bff38298ad980d20b27b8bde3f27eadde9cc4cb7fa8abbf89d0711f6d3cbe283f1fb6c96a36dff2b761f4889fb5fbbabec9193923eb5a0871068f058b66918eacec2d5e4a81b1ae456ce3115e9fb2f5a640ccf52bb03667e5f8c80219f398d33bcfd4cee081188ccff7b1c584654d39ab1aa89d8650c2949003a1cd60f52553b02cb511a1be8b950f6fa648fcc6b484744ee826f8ab7e0bb0b7f693aec2f9cf10aaceb787699dd74b51acf0e2bd1c7841389c565484cb8949a92c76ab7cb4ea2f63e25f39a8a8e1524e72480f45c1db76f1c84a0499fb926ffe7009889c97adc45a7e417151fc4a8835ac8f625b4417c0d97af2dc3cf5ee95f279d6f6c8ad0413a520a5bf797d2a010a5a36eb2e49bbbff3659045607628f6bf1ad8f680883f240f196a98690e9eb0cd0d66d799bbf84ff7253dae49380e04a171016e658b928f442680b1d63f49a4d50978375b2e24533ba9645676bc34f2db13b5932b2c95d2b5a96eb17af3ce50b9b97a90b5dd3b14d9d345635d8171460a894d2b82a5c439c1b3cd2d61a057ee2e78b13e5d2f5937abf273460fbb5f7e0e9b968e735a0059e017caf986da11e566cc11a8e0fb413a0a285774eb70dfc3697c4f880e8f0c14dc2ea8c4a498ad49b849c73ef488d9846896ab6ae60e93b1e38aaffe5f2a103749eb3c083f74e169b004b0534cdfac0930afff061a0e6327b680dc6d07ed1a9fcf6a6f4755c9e568d720dfb8ee11667683b6372d9a55f92eaf3a7432f0e699f2fd3cc09c4a2cf7ebbb521b3426205cf4c43e0abec75944f0fad508a4f9fde0e9ab2ebf98e125d7d617525ec181560179041985dd9bcdf9b587cc9cff9706a9272d87937065864b18202057a5897672a6b7f98789a5ee0d0236e32922b8468fa1d64a757c5aea9c8651b6e94f1478ec3b5ddb4380b3113cb246311c13703a929898443306503c18cc4c2aaa0e656a5016eefac076641b8634b944d45e46199721af4eae67ad188e639393658f7ed6a5c03d245c9f17fdaccb8b6b27411aeae63dab905c7994f9d5a43708983253079694ace64580f723b7e30f76dd9ff6eaaa83562fc75033fa45e1d1d5f72dbdc7f06acd34ff1919057276c4da34d559b1755633390b4f1fd23b904cb4e77e687926dce0e3e15de996eb7f68005b4abcaeb9af9b705c7f93629a8b591004ad18e3cd10487a97f46295f6823797f7e15fb44f77c0f27e45acd0455ca2b39b5cf4b7202251bea154c6e3aa1d8256a032b2a8f46b0ba14b5cfab0a696050130b1c0a47d0aff80d328ce3be1ad14286591cbdfc79ba5a03124073a2a4773b3fa7f36a3e525af32d3069a9fbc051ec744ecd46fcd6c243ab141a4ccc36e3a8e6252db6e8042bee99f75c9b01e30881cb3745e696d359fe1e18b2062658fd9b58838083a17418fa5044481242c45f52e1a1af112f564af35eb4abc998948a478be6b082d984595c2272f5509d34ed25056d46426133c1d528cc6f62fac03d0260ac179cc967743c600d94f79423d325338bec5955c153be996248fa3d1b0b939a8eb581fc75204e4da0e939f6beb62e80400d28cc83d31356e9752adfb927672868f635084879aded55f4aae87336e0df3895a3b345dbcf88edc11f9b41c02c8c723ba914c6b8d336403ea7e8f13f945b19e1074df6e2075040b583f8adc9af541a5eb3c41f982d0d00ff41bc3e132b2df2d8a52ed495271f2b1bc788c79203aff18d584a962a9ecb200be602791c68a92fe86eae7b9992c0c47eb64d1bf8461bfdefe916e2f92027d8df0300106005bd2a9c07939272e5d1de5b908f1bca18174d3618d9fee2051f2cfbb865d7a97651c65cfb4b3cf8f29825ae9178aec06ecc543bef0ed766fbca9baf9bb89f2d4fce19ced8e098f9f61ad876878bc748fb68daeee6e2fb7c9618fdfb8ff99c1fd3a055fa44b5337b71aa30d352ead72d3e45957e0e9de1623b46286e9dee41d3e746095aac08d7944387f4c33080757c6aceda81b379966a7803713272485c580ef4010816d185ea858edb1975775521489bf6706e7a36049cdf5bcd717dbb2e6efe6609575374d5d14af57bbd429d210cc7ab449de60b9701dd8931c5709e1d0dc0484f59893a7a57b1cf27595590c482e7dde0554dbbf294beed74b0d7720ae62455cdefeb8ee44459c0e57a2bd9c05645a06beb2438e78cd9d9fef584ffbfebac5fcae04967d052f2da258491331621d579025ed6acab1f61bce820a00aa41e695c30a4b00d10ca7e1e7e4c59c45aaf4f066391345f6fa6ff55966b8bf17b886394434ea306040f35e8f49379cf12fb7530d4f576f5054f989e3c85801f739372902eb0d41053db25c3bf227ddc3d924e281033ea544ce3f8b9b7a2f03e684ad53fb5538b4f5a2bf2b5004192daf00bbb5f033674b6ccc6d8479e7e242a3bcb39702c512ec4ab83b2a12369fdb066f5f15366a39e51e78f34ec2b1f803520d094aea5202b21aa4b45114fb9e3e8b92c8023167bc9f92c4e799dea6cfcccea185b47eb2adb11fc435a8f65f1f2e863350aee5b41ac68ca64c6a81086ae91360729250b040fbf1de4fcd742ffc89f7427600706a954da26173971e6400e8ad1de1944f338182cf340373c43a79b0d191b913c68b3049080db84cb172621d403ef6e034c6b8a0f4b0d2dd43df5907468394b44aaf0175f4b1cd88d2baa01f19ee808dbdf30c9084bd2d677823a978210c5ce72fd3d5af8da5dea11fef5649d76af329b5ff1ff2017cccfe5c05d0f038917762a98cd6796c00d7bcf042343a1d0cc934d0c6ba4b576490a200d4f0e1e576e810effaf179ab5549565f2f0c5556feaba356cfcf826f8cf9eb74aebfbf9273608f0f280cf9870b80be9c62cf428be1385e9ed45e655e1a47810c82398357f735b392c16b6792f7779898d3496b46be12c155579f2219a3e7a3e921ac2ba63a5e01ec5267d66e20b35bf73368808802161f9efc5fcebe77f4a1dc517b3807c63434bd6b137c25c70cd4583a14f4cc78dd3af6c5b7e17023116292deef2ee68440bce85b9532031afaa1ee7e6c7d1e6b78cdf46bfdb8bb9b2edf121d27176eb5563a746fc9f70933edb762e439973b642502d36578128fe55fa68f6bea01764774063bd41e6df143e2dd0dc70902cb4021fcc6676694c6302458828dcf7b7d7c66a97093e65bb711792e7e6c4140a0821e4f2e62bf4542ac482b1bfd831cb9dae363f348d629c0215f9b4d6dd4181018c583884b99128f94ca68ff8b8efc2ec506a66e822a67873a3967481305165509af94413f2c4b1f3ff0ee57ed2339e34a33994df0a746e019ada9e3e5ba0804beb2754cbb3e24132426ad2f03e47414ff51967dd2b51dc682a6cd03df888290ccef888d06313591280b2c2209775188ecf1ac004befe5bc0475131302725be185ff27150af6fbaeab7d055af60afbe7f5531d5080d4bec11eea0f684fd82ef5aede1f2a270755e9176963dfb0a29d2c359ae18eb9b768cb9f3127fc4dc7da961aa23024d4c7072dfb898a36ec01ea1b2c56228cde9dcbda66b81972a5f8032215cc8e160add3a6fe75c4f4ecdc196d4d778be95058d6f9be417726c82868e57d424634acdb3fad59df29cbeadc3da6af937c81af9ae049400a71734bf3c29425d4c4a895ad1b7704672ee5698c8f49425d4071edfc0dce64303c0ae0adfc12a92d8d637c38ec580b6a8d7fc586da4676d4b76786c846ca26b9f78a58787099d5ab609400291dc5107227cda392cb122b2ecc2eb4d4acfa1c4261f5b9e76fa7b17b1ddcbd3a598a2fff017ddc74e620df66fcf04b13843fdf24ee872fa494d26d577bfcfd9acfa9c1176768338eb06633cb034ce16a4a90a0784db26ef9503abed330e65d7dbe55eef2d7afc4a226c4fca63ba52daab09ee01b554cebb49de0d0dc9a1f40cfca212f8cd9a95bed36bfbda37e0ef144f0cba2b6982b46a1ce59bc9223e31ff355c97ffba5d79b8e85ca918855a78ca598020dd30e93e447de44f428824e232a0a5b93235e3bdb2249be16c6a8e2687ddd8b29e76e0631028e94675ca827da70ceffb196a5dc3ce2609aff97b165fd963aab2bfaf1471a08ac8444046fd921a8014effcfb91e2a4e68deb4d5c404351ac2f72c6ed03225b9e98483d1f2e065e55cf1a2874576beb808e9c26869113f092c6445cdc8206c5b53431edcc22194b4e4176d7831ef38e997b5f4f453d6231af71ff964938393f03bc71e20fd8461cbb6d70c7ed67f315f243e6735db11518575609c2702166764b11d6dda8c6ed3770bb88ae7049b86914dd83f4250a3be9f43ffc08620b213c4b5c570fb855cab57979772111ec9e5e1bc2c80ff29ba87e091bd5a50b1c8cc4d58700ed7e6041295b55e6a3af0ea495b36e2ff3746b705bc87bb4749b4a4e8295c2e2515bb97a7a31e4b8e7ed81429168e2d88471b422ecf5152f0f2ae1d91aa7001ad736a54bd83b1fe57c04aba117332559f86d66e09c93452ed1e201032dfb77e198515bf10c28e1db735004143c07be938053a13daff0876069261ee6e38824b8d943889bbffd6a81b40e9be5a9d13ca8b0da3ff4f9e9fe39d7777e1e90e04595354ecdc66cabdfb50bf1927a0aedaeee5d654866fc7df084f85dbe4cc19add2c579440671f07c76d31f79dbda0992b04156f7bf0ef5d488208c64eed9975334461aae7e2348c8f5a493c88de736a4ce7730dcc0cc1cf139ab2ddf07e57af53167ef140dcb53e0723a037ae60a3ecad24fb11e0441a08039c9acd3df948528bc8469cbccc0de4e32ba7458279be067013283f93f4ea1eef8f7c372093adb3efeef4d73f6f2b303cf0702c0abf38afb921eaaa72dc13e4511646dd59d9355cd7209083a2fa539d0cea2fb55e2656a23331c5d841842325c658cb60fb1421ee5c9d8912312c3364b50a7a622e5228b18903334e776d4c68928af99dee013162deff77b42e22f2707bc352c13a31771ceeb61564bd15ffbb1af9a8bb6ed5ed218004e59f4c065f41059e3dd1d7ecae2f96524de073c9d1fd67ac70b18a94f41aaa5c5f6a34886f4fe064db8571272df93a63c2722b46a0e6aa971daba6ba49e4879342ac0328a80afcdbd372038b878e98a777892c2d0d3db259af64f92fea738502e7caca50326a2d090e49a0a7a5c4f1cc740ff045cfca778dfc53109014b0d7d52ba80d43abd0ab0c79eaee21c8a48a3b9c92a690741493aa603749c0045df6208d2245cff5519289e77fa631d7302bf3bdfcb128855ec475156b59d61b851c0338c55ee0986a639ebf2a1670923aa377798426f72f3e6c011a39c74eae7ec7dbcec339d674df826d81a29ff67b2a41cdc0ba5235ebce113ec9316e93f21f3c8fcf612bb0d9cbb535664c36cd98945d850ea233bfb2a9dd1a827dffd1c98602dbcd317d0748dbabfa9921e7a86062cddaa08cfa35cee51e3603027c225d1763baf32cead9664b73bdd1064dfa762a70de4b178ff248bec71d5c28befdc8f9eeda797f2424f8990145400e1c4c0708a7b3b4f60cc885f2ee1f960af103516cf8200a0b4e4cd6b1ac762b7b98f1dee4d6dc07754196989b4cab76d21313d6b4163c3e0c835c4401b33ea4441b059eb2e8977c6e2fac4ffbc03ffd1c78ad8859a44bac044e0d1b23b308234393b69980c94a37538dfa16bdccee7e4848b0118e4193330730a09cab32c80a2b01ea49b5e9ff5c3547161f3c166c81ad005aab6f513f7bc81e8af938189154f4fb255cf3bff26932f90a72a5e9adb7e4eda0e4bf7a39d56100eecf1e31c0e5552ad2c55b442c1d9778fddf37b21dc266b4d9084b270df78833e72fe3acb35289cdc56fef742f8bf5499eed7683589404cdad650c08dc3a1b08a4ee4a9f1310a2352655ccd1b52905286c2ee1937fa2f10362e96f90625a3f435052e280aa546147952fe3e07be68c83c6b49dbb18385bf66cd3c5760cd60c9ccf60c6adcd2d96fdaf0a8ca91d9bc7fdcf819ffa7e9ad2995d711a34197a9c41485bf2e55588c7e5dc58113b0370abeb201ff1f3e2d821b41122298bd0b3a1537d307ccd27301ca06a63e2265d003dda49cc356adb6b7d623c190ffdc6a83064f9eff96d4c083364fe2f9fff30519f0726eaf0cb850667943c9db752324221ff0888c1b099fde37b523599df75ede1e5fd8dcfa3363b008d43b9b8144e9e93208558d3e7ea75b0c24479b5e440b9a69b79660324bad5fd65cb9d7c12d09976b86d640747e93d002b35f2d5af014e9983635cb9a6240de7865d2921e16c63952b542c84666437263bb44511e5cef159ad3a99d92033efcd32a9536c566c4b9dd1957b9dc23a4a8e8c813e09aec27bee5a95dd89b33ba738fae974910d4e41c17866b2f83ad259644cda93a13967b7038153515e20ae8285489ea348e67db11ce0aa563b9320417abd17dc313633194a4da137c04c24d5add78da2e68218b5bb3ea3f597f4431731b39dc40e5a16d6009cc930d5c3021eee352019b9cabfc53aba65a0446aab3eb01919e9efdf15b05282d8f31c33a91184480310e8697f6744f0288d4565cf00c36c0ee44801f90980c40daa0eec326865c621ec824dc17acf735ea7fd397ab84b3eb87225820514f25e1f563a67c7938cbbe9612c2a5228e5459d18a69ea0cc59b435c67926cc233bfe4bf1d5bc7ac03a07e31a0ef67599e1615c142531cafd9509095c21380589b8863d28292abebf58dd95075a6e0cee96327d70bbf109c8e609e6f7f7047d71028dbbe1fd9360c1f246c197a490c5227619a6d4a7c286dbe497d098915b10ae96df2df916fd1efca49ce152d01f66d9e5ea6c8a2ded93edf5278b831712b96a33f9eed6b112c5a7b10f078b18231c353b6f5138649e5964aa4455bcb982aa2b278e6ed042a0ddea6223fc230666e33c5de48711d5650d9f480cfa89f50a7ea17304247aef1bf39d4d30bca8bef7f975f779934431b6badc46af2edcaa896f2601f75055c516600604e139292bab64a844d4b0b25c699b03d3f340af9be4a9f648b693834eceafeac9b6759ae99783ffe68c103a9f3a00cb6db315c77986a375ccc1496af19f8ea2e582e4b2d897b6f8f6afe11c0e4ac9090d5b775b18db8a126851c26f7b8c4a043ced257d53cb11d26e3d2c4f269c6e2b2f6eb48fb0d4c29d10d0403c52bbe351fff30a1bdf14226b5caa7bb51f99980dc8008ecf68666f21d25ccf280af7ac875b63ec72229cc1c9cf60599eb88d48c8f53d766b780a128ff749e1c58b2d7cae346051c17c4bfcb4503a970018279122fae01e0e523f36d41a9cc5a385ef6a133ee4e54875520418c20b6a48ecfddeb50bbc57e538042e287d90e9c6a2f42687eb38c19a8ba4361ffe1554bd1b06d10130373d98855edea46f15eb71e196d206007efc30a5782f412292dfca321ea1f275cab664a9d89b7cc44c7b2f71527570c727995572c9eea5762f29b63b851c9c968245feaefe165f390c1146b24cfc245b7db78fa9d60c9e188c3a8ad2602c2b3882220892e158df8b606bff4bc8cab9ab1a1d11e6a2fe1b14bd34451737ee4fcd7fad444796cfec7007e46dd2b2da1b6c6f0bde4a756a6164cc4a9097755ca251422bd4b8b76ab1f8f391991f176dc6643f66a9c9598c5268348c8c68ec86c3f12ad41c4be0c76600cb3b3f57aa4aef27212a9f119daa21b3677f7e704e5b3d04a73236b8336ff433681a8b874094ca99013397b7569a44c64a8c624fb5fd6296c0d1f130d51f69c95b6b79fc542348429f526a1ed953e62db436b46c1bb1b3368e3bdbbb6e2ca19066d3c6a6847aece70eb76303439746adf228f26fe34f8294bf47c9bbade7ab29ff909a6a1146a78537a10858f1a0b9a4460ea9d04e54e30214bada60c220c234d07e54c5636cc947546bb03f08ee399f633d0f3a077123ebe330f887e2afdf1639e628fd83ae7cde75dfa69cee10be01f3327b3598b948c195633536c712527ecd2174f8a0d85e1efeddd295cf95c42a11dc3eeef25a601b29b1ab6e2d19ce2ad00ff0ed8b82229a27541be319f7c7ecd0b0b1e8e9e39a22b0fea79a56a1de9cc054355a3a60579a7b82047c00a28c32b29e7335b61d79b3cfe5451d8764be38c96d320a4822bc9a59933f79fb0a7bc831c3320173748b284033d2f489d3ee184f93829573e6bb3e7681269745d277ba39f67d60a2ef85f951b58e7d29031e45686bce561d38f980594e5ecc5df8eb71ac246edea7baaa0e635ab182b8a82d425f8ca0cbcda008bcde8819d58622efc3dd7a30a4493dcde66c9fb8cb8b266df833cf5748abc8bc0cb423b56848efc56b155fbb0635c46f74764e6f3d7ca858bd157221180727a678df9ba90ced5a2602123c38e77bb9bde41e8d397767506fe6ee0a2574d242a835366f0a1d0434f45d831bec990f6d6459153b858eae72f2aad6494c382383c669e6e20db0e29f676f8d10a9f6496d8cfca2a0772bb6e29f429e8b50dfb38f8abced19576f1cafcf12497212cd666f75bc1f6d32d3684fb91f473cf81a6141a61da07bfc5e0f02630c43e63d3604c8766a78054a9db1afeada8909ae50b022b336256a84cf587dd05afd3a7b24aa7366efaf2247eb02bfe1e74de5db5d44803118fa4852655c0e82526a124d213eafa8c55ac04dfad089a87133d8b34a690929d46cd33d35c17fc37f735cdc608d206aef235b4350150a15ce0da450fd8c000de321c34e73f35d3f2275a17031c68ec62d477f0e17cdd3dfcf62365892bffbc5618fc6d615a0eb8330c11cb754ff2ade5318a7c9717ad133dfecea89bb3935037282c7631c3c2682361ba7e2ffaf681b2f7b6903b9a110c9281a9ee267d46b35489a8144df7eda380e3c71ee1632662ba46bf865544b9edc638f8f40048e53d5bcca6899e9e1c8fd65508e8db649e56a4e74ef5f99857397a7a114b1d60896d788dadf2b6524da1644794e914797d3c9253872a8afe071b688db1ad2510a6370afe6be850ccb63953b4a69d0252563676dee9ab8fdf16f85407b7af1c0fd9088f9de2903ed9b7ca5d24cf8d85bdeb26873de389408d2557feef518d4586f4d86d104b7d8ff2261c3ae7c41f7131407cc78e6de7b039f49251e6edb4e8c935d4b4070e547c62de88877cb515b26f9913a6ef8416285fbebde9a41691b7fbeee8a468fe37ba24f0705059d67679b27cc1a119ae73efb88a4f5437ebe9294ebf6d84fa0a5c89b6167cf5a4b2d7110195d655a6424987772fefc02668e376338251507364c469afc084a25a1c37facaf93fe1e856ade70e5143a3ff0753ac967621366b9da02eb01f9c2ea609cd0b9ae6e96373fe872d9920fdc2848fe61795ee1a374e53d440b121568e6bd242d083e355184677673bd2faf17ff4a6f001ba7bf5ccd48a2944e16e03e8fe03f5bf36a9fbaa6e6d6a53bf4e977040b72e102f135c7a8c81a93f0b966922166913248a38ec55a3a431c401e98f52c5183599e8d58d2e11c97c288e933891de097204a3e56daedf54a6de06f30a8b11636e1e4f167ad204e2ad1a35a55d591529725caf19335713d02999aac94219e0946e68739b16b1b3fa1117b0370b035b55394975a9819eb4b80f5001eeec61b0c7abc23a1fe13a6236921609fe495c9759b1e92785f94f8ecadbc8e129ab8b7b756d8670c98fd1d01c6f4772d046df2f3a1f84b3019dc070364157a59261b20d4a0bd0780d39c963459c3cd715415c7042a1d7ac941849105dab159c85dd3dde1af4b49a8352110ecf78e9b70e486947080fc67704a0d7d7b645d5db964076091905130512287eaaed13ee3f8b0f8f074462043b5d1902b848313aa89e5f6464bf7939aed1cffb9d0e688181619bf12400c8e5a0c6c8c7950417a23184dfc3ba902af1a1399cc9bfece23a99d62d4837abbf25c4efc0c67a6e0d98d4c17c9ccfbcd7d03fc5afe2cb8cffaa5a64e3db7bad1e037359cbcfb5fdbeb7c8e2b2fb0c2d3f1e00868a24ed1425ead0abebbb90c6bab79e314956ae8301bf54b4909933520848e378757f5f24c6a7bea658133711ca8fe5ce7386fc40410fe7484140cbf53aa36b1515e5c15e41d332894d4345e9ee14107e5345d088da0a6fed1cc9d7e75f9c93fd38b160a26dc87eb03d9d33b4785e03158ac5fde50812363a49ebdc695e0e7cfbabfa1f5fe516c1fc2ee75e45595be89bc31f602b74ec32098ffaf9c4025c6f31ac053ce1ffad0f22159bb2c0caac2a507ced148e4c96b353040a93cc08b5f63ba9cb1df44b94959c11f685699cb4d7c8178d314ea6235a8a2280b942f551576f4fb844acc4c27899d5b519ad4ae6beb2c8113e0446a8302b5b2c7c65c7dfaad29f34c819c85ae7e37624aa6c7de3630c0af87baaa83a8d0a872e9aa7be23229c04cfacc5a899c77c880491a099d13722d1914c32934c02338810249a8c02b30b45d41c6f19314778639800be7823337bbed90b196a5e711a2f8ca63392bf6acb8cc2de067f368c6f834ef81612d4bebacc1954d4bf96831c75688eae26db7abe7ec0edd0538ee6f5c5912f8f47d82607b12a9f634c4bd235656ef85a87ff6e0028e4554cdd22cc018ba9de3343a6f499d0ac91d338e86060811120ea0f188204464f6323f9c52cc4351e824361459bddfc520c7c56eb600ed7c9414840305e7bd69263572fdbaec36b58d96c9651dba4e98230e0c213bbac896d15a16c8e9d14bdb507279b5c13a333c04848628c8a0ad1936a012295be17ecbd3565283212113b318cf1a75d9141640612ea5f45eb27ff7823e72e4dca68f7203b36fac1d3d93c2518ad5ca0c9f1d74494ba9106a99a0cf973e3ea0ca3fa46b36cfb43d8f2f46ce3fb03819a542bd7e1782dcdb7ee06c95ec0a430e51642b315c3e193ca926d14c94a68991b027824997ef981d6e797a43869f94b3c6d205f25945b8a0eef3c4ab65a4ba6c85bd07b950a56303c036e1db7b0f6d2a64cc4284ca60130ec88dee3b1536b1dc2d38fcbe4026d7d7d65113f942ff5a519695ec423ebc24fb808d3727dbb9dc6fdd0f35f80bed5dbc68e445714f2ac0c11cf7e42847bd413ed7b216127ae41ce12d7ed3482ae4bcefff7269cebfdc9f2758bfd1ba157acd21fb5f904a6e3cf88de602792847ee6d6bd85db29c8677bd54453e1992ab3cbb6cb918c7a6c69e220d7fdf8b90165ecae1c06db1d1bef20a29a3caee9ab003e1088c091c75b7b9539f629d8bbe2a7e05679c4ffccd9f5567aaaa3b6f57c8011a31797fdf1fe2916d743787753ceb0af74ec11366bbd33eade5916ecdb9dc1c3951fc6c91663efef2fe112b39e1a9b2b509b9aec749c95f1173cbc68e673470cb01afe7b14e8c2bcecf89dc3cbbf69b0109d476580cf8fdd0b795a6d77752cbaac90baa212e381767b41a33f216c0df7ef89ba996f9f473303ff6f8c7fe8d30608f6f921271a4170a111a8a7a138008c0d26de6bfcfa2adc9c4aea9e7f7075556e4712388fdde529eb1cd805b77b599209d6cb1d95fc0ad2aca122aa3612624dc93c7026856e244ac8ade7843b729856fd48cf44901950ac4d1e5f1d79b033df71f26791ae0a43bb4247719de6012b669d4af79ffaf816c279993f6705b517306160af6bae862ddd4abdacfb85bf08704c4a5712a97cb1196ec243613c5064b3465d58cd855c2a0c1dd264937b22b4b88d073f0840a0b4bdfed4c34da80d180b9207670c619a951095040f997d4cec47ac16b6e2b3048008fe8cb7324d9a982ef57a97d7cd2e18eacc89d97088870ac592f794705ddf4296c0d2efd6f361af232eef8b10734f44c04a3c49ecaf34f3025e7873cbd65a15347af9ddf468ac227969cc6ae8a20e951f87acdce677ee26fba440ef04966802119db19aa3b7b60ac6387113ace8f0cba859835a8f66c97fffd8d956c06c28bc77065e3f4f5632dbf701127bf61a8217795d596f56e766169d698919c5a5e639132c75bd54e77b3d43fd71acb4bace7ca22f89c400ebdaaa8f645f8d0f359cc5aa663e26b7d9b5311f3fbb4914a9b40ccb1bab457ccdfb3ae789ad03c8dc20d15d611765653ce95cf0e328167a4acc4e815fd7dcedf1503e047826078480b46483c03023c8924061f0c2acc468802105e88d7ff7b528674955b85b70096c53a8cc26146461bb6d042bb50a84dfe38a2c10e8afafba54db19ac1f913b5ad5e120f103f3ea1b50987307607863e68b2b97a3182782c88e34eb1787c075a97e3dd1128afbdff30d1791323c0860092c32e4302f1ecb197d29c0d1bbb4e18c30dd76a5828c4131f09dac906a7751b5221f5ac72abc37238f432d758d807fa311abd037882a81867cd646567c43b3fba319499fa4e431978a2a6ad42f551722e2dc958752fd54bf274b5adfebfb8bdd72299c18ee407950292691d64a967d2944449fd3487446c68c6799e3cb0240c04e9bf31e77b299b2646b92fae73f5d4abfa0e16c0404e42fc57ace4599f8246c58652c815795720ea50b2d8316ec4138d9b85ddc272a014486ca9633ab036a83e4008b86c8ecee02ed10e88aaced08f1d4f711f5bb56f303ade6ab11f0d8615319c800bb59c14dae6e0d39dd8fd8a2d96590fbf363f036711ee77992b0aa2948b54501cb5f3d2d258e535edab4f51359cb48d320218c38f69011e99b225e3ce8b98781a07adfcce74f347413ea627d2e982960227bad70058a857645ed003916e420b883f1bac9a38ba9ed49d8951968620fa4cdabd3b1898795f6220277e4fb0e2b0c06387c74424a5ebd8677ebaf38fd158417b67d9b7c7974c2bf408ab9fddc2bf6bb0b68aa0be28b9f132a507c291510ba84133efc3b3f13e107232e4bbf341950ab0f287c4296bddb8c9ecc4c06ec56f5b3cb87fa6b48f91923149b601512ced71a18d908dc7baec3935615f0cd9d12ec59f7c02cb1a8041e8fb00237335f104462e1d3a19ee84f175976185ab5ad8026b6495e424ab34387ecec40e37d3d7728671e5624bacbef3e1d5c61404ee9c0960352ba9a72b637071ad8d3817ef95bb014e2e2d4b9ef165e51345f66526d6aeceae3ea3ccffbafc1346d1850111eadad9147d6603d25e625ffd91247ce869cc74ec455311d501d06d61b2ff88441b26077cec34a3bbe9be1de119a5deb258b323687d6c765f69c6b826dd9961698029d6e41c321d3abd62669b4d678376996e40280667012630d8e32db9bee713716466f276d0a9abdcf47250d3d648ff67b7463e2b4d3c5fdf8d1162dba798fd41112a70ba04431213efedf6236c6cecc7c041956823b2ddb7c618b4e1bc96052f796b8813b32848f25c78b25fae13393e3653100de4750c20a2029d228e27c154aec24a304c5d44d41228fe62e8c654038832f991889bfb24e58f70da83369c1be8a282105c286f10f505a7664af1cb2fe5a8be0104bc7c6085b27fc005cf89b628ccdd89899506d7fb8c96b4506480a51212030863764fd61a100b2eb2a6449744d862baaaf29264fc2e6d3b0fd371b7a3e2fa847fe95d9ada84054137911ffadeb337e31f536b7fe4cfec0a715616d2f71e1bbed63c0952649ea6a4830a66eb701bb8659b0f4a710148330392e942a6c6de17861a1686e21c1fcde94fae4c68fa25dcdcda41f1ee1fe5c44018eda398f2d132f6062549de087e319974c0717d8fb8ee8c9a47df9fcee7660fdaa5c577cfb9d992df9b8383196668691ca6ed848d0f94a339471338d102ca6d2cbaacba09ea94f5b7acaf5da736b542a56bf3e5e63b20021ba5e155dee1046cedb8fec9e0cf455655112ddc657facfaed3c01f89d9f3d8ccb8ed895169edeeebc8fba157565b58d0788ed6f738aa6f1e1eba0eb3972e3345c71b48e3f4ae9a1dd1281f980be726b515131024ad001fc4e6fb8daba419c432b8164a7b16b6c22e77b6db1f180017999b253d63b7f354175626a62546a1c8c8d341ff913781fadc9e57de17b6458846575a728d9fcb3fa4b82866800a1289265c786af755fb4d8a2d18b7175b7af8bd465631c135b9d3c29308aeecd6fccd3bbb7dd98100032278aa2d4bff4dc9fe423d49eca30e9413256f43014aaaee0b3d8494bd804b01e78cb21126c73c78fb80d185e84b3a374781cf794ab430ee2be350330eca9b77aa5fcf9223df9837330b809af9917bcad7f0487df0094941744d9318a7aa5d28ad5fa3c43e321aedae9bd85d537f71bfd1f509789b78916097d54616a95d4b1724b23dcd49826f84e8f91ed873075daccc8373c2cdf4cc045bda9e77769387a9fc00a33b8e372a802ae1fa53bbcfdc873f61331e1a195917a64d55a8588834402918d7c34f93116cf221b9781895be897d76754332e99ded88c91153542999d1a4452577086b03283b8d1b172abd7f0604cb5269fbe22cfccaf31b7adbc4c05d13cbf497adf64fc81d1bf622c399bcb7aa91d4fa3e088dd03bb20a35ebff171219af339e1d6ed09b1365b215db0d118e8e81518615d515bc34fa181d461ddc995928af5dcbf5e05b765b6e6e06c1ba8a432e0f0cc6580ea8e26edbb9d10c96a90d4cfab065dbd2b8af8aeaf6dc7b70318e70fe86ee4c1021fd1b5013f9a26a466b59270a1bdaccf4e0053fd4fad6ee457951836b316d670a75456c53736d83c4b39f5bc724bded5856d0a5437c3a9b93a87cbb6cacfecd26d56bac016b86bec083e6bec2a8b08378bdfdabf12655d243acdb2641b07e51db0d41c6b9e60ecdf8c529dbf5d51d1826475cd49fd145a7c25f46be34094b818dba54587f9fe9a3541050ada0a6e4f59df7917843a2b5f4da4ce7ff99c3ab6de1038da96ff53608537b30f44b61086f1ff04280643d9cfd488fcb71178668e60ff4aab5f89e99956232280ea10678294bfec25e8e0d13b83f2199eb7b13da1e1069ea66ed5cff5a4246ffe1c3138921e1b9fba465c28058340c0a32001e66e78b0cc3891fcf26d62621c2f0e5b7e608371bf3fc1b7384d2dd4c26d9fc522859174d3785c76fa17f2744731585941a34732a18600fdaafa90a351e03167acc76cd1f66ba6ade46aaea052ef7765336c04dcf9792a99e31aef9bebd4f246e37a9db1060e0aa5d0cf63e08a944aa0d21be84a64cb6dc9721940d44ad6a63fc00a8a22388f67aba7cfd1bf94dc951a116d34578fb77b175548ad8fb4d931b62422f05a0f66602099f32c06aa00816dc50dbec331ad08e616fc171057b01f3aec485f111469dd489a7a9e30f2bd1ae365be707c1d4c4d0d2d0f8e389fd61db661e9b9224a2188335c5ac3bc7f4fd02ed001c6240cc3888714f8daffaf5a7e30fa4fb788a8eb51ad699e2b43bc3df7b51ffc54f6fe0b7a2d0bbef6b265ceb71b77f264a0084deb455f1cdb614d944768d43d3eef4be8e78273008f078f9ce236d20da0c047114c646fa0cc76bc665c28ccdebf50b2c6199335f589fe45a43ffe94749e20956b316ba4296b2a6b8b37c4d07aa26d10ef5eddaeba7a9692b0afab7d39660e265398ed928917ca9e1bbb7dbc57ccc894688651039a2d4ec13d38c793bc5475cac444f36dbfa772ac963123773bb0838410665ce1de2177170184470e8397b41b673c4dafb2e10a907dc4b74d3ed91cf14057040bba0858cfd26142ad2cb3c53f4c4cfac585040e78db06ac6634647ef737b715363c481f86ed422d69cbffb27a31829b7c953f26107769a6541f835c6229665f15d77da585f1bcad99dc285e08aab2f8095e37979457c7db0977fbe3c9854bff9cfaf5ff93bd0afaf524ac96f817f394fdea8578f8dfdbf7adffa6b88a8bcdbed35432e332fa8ac910bb6080073320537a2b36c0a801c6951850f2432ea75b7fc3f26cd578273ed5319eeb49ac22582a7180491db6ef8b48f22261531e82e4b65a010d31ee184ce8ae514833d8dd7feacd1e35a26f4a9233be0a0707bedf5ffc503533f7170e7e80261748e41f98bb10c86b603fb8f229334e270f10429245a460f131729a01c3fe3d8c0e134981f7abc94da90da193fe946309363fe2e1126d671a0ea81d5cac67c5a2917a760163519e88df681278a6607e074e633ebac83b4029049d5df3f0b362241d216ce9f220dc9f47da8d711a301de5bd7710d36be8677202661021e8b02635d2eea5c3dad9b8661ad3526c3598efd3fb2286d2851abfcb2b0b8cc81371ad9224943a9018ffbc58043770cc3721bd841885db18a435fbb0553a5655944cac9f59c0c4bae90b0713a7b68cd645cf02343356117ed85598c78bc90718af710fa60ea8cc0652b810ca16fa6f36e63a895c0455d8cb365c5e2b8c092eea5005091cb3db6b849a4d28645a9b962c8739750053050c27570bcb3c49e813ad83d3b3220a6e255ccb0a10f5f0f05a0bf81595477ebe56edd933f3c26ae39c0afd8f2be7ac6a2c66349975b349a87c73ee58ec87f809d9c4ddf0ac12caca9bda92a63c09849c920ee99033254930112f7f21c0abc451eebc87f41495f7524fb2bc9b0dad51a419fd410d8f2bc9f326a1a80da64efede686882e4c077b377ee6e1bfd6367295fa0545751e3cc1664a57fcab257d95228dfca79c6308976ae6effefe166c6f19c66238b7c6d156fd333f429a64c5a8370e4cb9f7c5144e9e8ed4ca0fb00d3e526a1cafe4e2a2d8a1f31506c155dd7e6b446a4285222d66c676ae437364489171618b919fef7cc0f2c063720efee5ae4ebab62ce97cf78915bb2efe2e870f0e779c9d106196e911c2d5d81359b6f0d7b9328364d50d4d79e5ab51e7496822d904eca3c357d1d46bfc107237f431c42be8fa9a6e6ecf45010a0a15de23d64a59bc3df2dd95a2a287fde9d0c36ac5a7c51594b44e01925ce13207797c73a2e066ad28a616949724bd4871f59769c2419ed7bf89f029baaa40a6afa4fe1b50fd9af2480ae1f6cb0c1aa5c2317c0d64776e264e9901b380f5e0d5b319392a5c510f14ac60e7ca651dfe3f05ba478a17c279081dfe37bb9b38f66a0d3935f5ec1e20e43f4f0c2e0eafdd2f77de165df9407edad359277f415ee130a595575b3601bb44e4a77", - "0x1fde61412d2eacb9a85a6eb41fb2e0333a11f6fb239909bc44d0ce7b225c0dc306c82870621837c92be9bbec2f8322e27fd68141705b038f3efcb66f1bedbe45c3366292a3604154b13b8734d5c0b122c103db5ac2eb7e4ddd90b1c9a697f3da31ebecb6ec42599354e171fabbde487bc34af8a5b855666335115b38e04cea739a6cf58c9db2666bc25644728e7018b9fb968f0a94eed6fa2fb37f95279a4bf341e3b476fb623d4fbca4bea97fa6015a1410d819bc65fb1d0566c7709e6d3fc4dac24092ae5f37c1984e6e32c3d9f3ee6cec99823b65e766c8286c38aceac6bf0d45b5fb42355a97c090e3dd1429bfb2971376c73dc216c6dab0f4b87d4eccbef6b344eba6a9c83231efdf9a2f25eee8da908f38963d729a74602d127fe49ad3a884f558af048371fd1358fb548d78b8b1d5006d3cd4fb0f218dd90ce70ab109a541197f96e8b73fc9fd624cc91b611e49ccc6dbc99f847c4116d7f12a471eb76745c6eb76ba2754507e70725762904406ba0bbffa460e3c884baea0846adfdedb44ded0cf9a5cd1de0861edcbb67e01fff1fb1f32feb9607c23c8a874c6eadfe1a96be906eeb83bd5d05881762f7f857d578ec4f8176764fac1c4953e71deb0cdbd5f9ae2749e722b386802aeafbd4280b0eabb742563ecb14eac74689a8234e9a3fbeb11f52f21ea8d63aa4b0442ed3ac85771f6a6cd99a51bf4d43def91c7f1236e98a1716f69b01c84312b108a089161db806f4c91d3ae1b922d4d0f7a04954470b387f3ba622d89ac9bae088dd8a1f9f503f7c51471f6a8989beb1006defab5ea5d1be2e962a7806a4d3ac239b4385a24b04524052f7f9b1465ae15259e3a0cee8f9aeb8cef78b70f85b80cc2a759fc10ec3ac9dbe19baf2788f0ee3e0adfc98742a37d12a38f377cc51520450dba3a9ff356e8016c723c99e352d2c8ea6c3a3e2abbcdd147ebfe7319c218ab4245543a3e4197b3977f3a5733361e0c78d41c3dc2c9713ee924ee99573584c3eb9a3e129e446e0417139aa130432e51ba011e7d9f9a88c6a1e2066ab866fdf83f8c4830facdb8a716d1e9d9a2e53fe0bf4e2370e25e721d7a63facc2053d92bbba08c8d18ef355e02304d3113cb668aa70d65fc242919f5c4f9071f7d7ce38529913395a8df682b54fdc2ae226791ace20359d07173c967008a2bc469672a596ece86bca17879b489d6bb4737719ddebde76c59a9999a946c0f9ca32f1ddc5b96fad21a15b8a46aa5af000552657cc033e690e73759673035159a24ccab32d3bd6c1a2bc4413d63f351e96d65006897492292c7275a560d423f8e8655a3707f13ad97212ad93bff23d6e2b370c726adb92e455e69a2f2da80c177ae8d98ed5ac9fc0f7f28ea5fc4302f4658f98060a37b94808ea21ed4a0c0e7aac3dea5327e14cdf5cb3203e009ea9e7e463ab6022dcf4fe7f3f51dd8b5058cdf354ee726bb75455ba5a855aa5a7e3c809c8439b5dfc95183bcf9d5e93593a38f062cfe4bc164c0b485083635afc6748e9bdb9c5e0f0dfe2f2b85dd5a38c5b2a56f65900add1f4c6bf3c8a1dfe0a486527bcab6b8e534afd40c13b1cb483d527b416bc60ea4d22b3ffff0b5e1f84b054219d021f527c6316faa3632a4e4d0b027928dceb4207e557a3cfc32cd3cdc5955be81be715cdc43ee0108231cff1f0f1e988757854e0df3f29c31ff9d1a573e0e75b32f7d429e1cdc4f7badd3cdb7441ccab718c2f9c8e5ddda57a65a569144cea9895c2bce8ae2d8334fdcfb5f2c39699e29490254ee3e715a9dd6441b744d7d0f55ef391a0533e5f99b1f0fc2a16a63832727dfcf83c256ad9ce199d28f1180027fd8040222a07cd215cc19b0d36b5feb8475b015a86fee21a23be3e1bd9dfee399c98a559e2d8003c3999218c960d68531f658237ff16008ba01d7b250cf7a27deba81d910d3f05b3e24c3f10683e4ffeff422e9912c82979a6fc8a61bdcb60cfa667b85dfff79749d6dc02344a117e63bbcacf5ecb6839b2f69a8d76ecbeb3f1fcd19b23b10cc86b957f388569d8d818320e5028b59775869f395c8fcf84fdaa6b053296ddcc6e5e82a31474fec62cadbf31776a096a14af3b9fe678292ed7c7918c94a002b74602e146403831871c93d900a252d1d9caea2884f05f41cc97fa6d027b6ff3bd21983a3c3b1883e5d032e5428f2d15748fbbfd3341ce4f0576f3ae69f2d3e3b6e9f264c9d04108ff6c66720bf1148dc91b7c92f6b17d3b74652722e68a2d9d0ce48d0e8acbbced2e478c7d84b0a00fd0056f2d71f6d19f28f71debf529d8c92ae2934320556aae0a63638e6d6c15e3b1d006628e1b62775e29ce4747175179006218d4a88e8b127e16adab7602ac7cd9f7b58261fa7eae65725576cca0607c8e8cec434f01a7228fc2cf23d5e5f1f1f7693f6f63bfe3a427b08838a1cdb62b02a7b615a678dabfa12866d6b4546c84d94ae99622ce163599f052df5b3f658b0df369906b1287ac431f5fbbc29040fac977e0758a833f44d859772994ebbd1a5a3c2c8e9e11a8a46e4ccc1ad68daf74239f01a6bebd74117530c69a51093f260b5031497a8820d511444ab3f663ce24990c7ee5105f63f02da35a20b8955fa25e1112508260bc44a385444765930eeb024928563baac8b2e2d6c7304c6988e2d3b28d61956fa8bacd1bec3dc284d3b9ad1d8f520f4cddc0e88dcf88979608524aa0212090874a2833bd4a8fe56e711dc77bb54aac1885aea845e54db2ddd72ab41725dfd66f3eef1c8d5e4eefe3ec7838060f447e822ae5ea34994fb892dc7d76c324c7c123d74ac330d0abfe0c0b54c2fe20ee1032410d91e050432a65314b0e8489af3c64b477e5af3630d7eacf22bc5a3a1873794f61f154c658b70d028b38e7ac23296f93ac44f002d7246b182c5723810ea6d307dc8fc5fb65421970751ef9eb1ecaf67c5f0b7fe4f12d454aff51a4621e029b61abf6ba3b6a1bf4a6a6ebcdca53bba66820778fc43103834c74be50d0be5e6a8b8c32d5750c9b5f766e20319601bba611c24b4329b1657720388a08490950933cde9aa736be775bb06fb39238deb8b8d53f31d7fced255e58423f524a3336004a9189ed8725a2e0c17fa1368b3efeb5e51379348a87315d55bc767e598263350c58b1b4d02458e924391323501d00e8974440ce97230c05c55d22bfcc876e54c8053e709c9109ac7926b9cd70e1aca064885daf6b7c165c1d9d8c55a4d5325d760d31bc8a9e58fc8b3a4081f07bc4cf065f73607efe4a74f7f1f7e0bba8fac1aac42208e8634dc12284df90fb08c671f9dac20c4f3d976921520a3dad61f9162d22cefb4f32f1e1a38eaa5ce7cc165e4ce4a8b6f7ce7ddf4d40c9cf5ca9d2573faf2acdf424e3ceacdf3b50c2977754da089dd2d13d5df200f45cb69b5c9690fbd458edff3cd8847c556cb835d2ea0c248b9bfb1457163ad34e040ad60040b8cf4af0ebe9e29f6fefcf3dc46844b53f87d393a23d80d30ed442a3d9b9ad3f4915e0a7767d7a75b58791f61f44296787abb01245cc9fdf9f0c420838ebd627172b006b4af60cdc9dc3322481308bb1e52ea19e1d3df1a7f0e2bf57a8322fed9aea8a87cab41e7eee2c8b9c624b8c9b187bb2071d44742b37e4490246c879ad7959ac5c897f5838b930f94f034ceb6c383dec6cdd284d5fce47a0bda1ff04b3318eb8b97c9fbf5f657cdd922f432d864909a529904993a81d10735e2902bcc3637f8f9056082d4b3e4219f3ea3a46d0cfd381c1d8dcf5881901411d331f2fb9caeee62b5b2c37b1452fd74b35cc91411a71b1498db061dc6d87c55c4b4855a12bc23ef81b6f389eff4edd85984ec52b1e8513add14b2fb1c2b6bec518ed58f4526a31989d2476164e9d7c01d68f70fac30fc2342a20966e4f44d756ee66ee487e5c33280dfb8abaf81b414795b6c1669c4d47bdd3f0c57a8c7b4c105e1e9c7fd0fc0dd5a4b9cd10f0b4c30bed70a98b16ec27d152403ccce377d586f68194b5feb7e92419b1683b99af867326b4aa9f81c707d7e1a3545543457f5b0e3fda64846fa1cd8c5b634dcd4e47bf88009c233ad825f09ac554998e9100691825eb11a7bea1ad41f3f9ab6dfe527cb4ba43e436e2c1c82ae06df39814a2d7909f86b6bbeae81e3d4bd32bbf40395875d27ddea148c445ed5731504512ac128476376069bb918e3269cb9c44101e887b578435a277b77db1da97dea4a6a4e379e30997dbd23fa64ed38b45a0cb3b4cd4f217a45212eeb6d30c6ab15c09f10674c393c49716918870ff8e90549cd81fc7ed86c8dd24ee97e119ab8ffc8ee7cc759d2ef7871c1b519f26de4b418d54b249b116a78ba07507bbb83c2a0e472b8a75960e3f3eeede81514737330de4a055ccf93a87a61cd11327cad6aaba0861e5967c66f49eee21d6453792aa0ddc0112c1093be8ef390b1822fda54d95cbcbdc1084e8c115f1f94f29371e01e987fc9c884d8281e9d6dca5bb104aa477bcad8bee0f05add8e20e11bc3ed305f558dfa1ced47c7796cd08a0921039ae38fe565575b6099b7d9e96a5d71f0f95f8d6a64a4ce765fe2b99032d4cf38d3e660038ebebdc23135ba34ec5d7c08df3024993b1672191721586d98eef4220c64ca49342644e0aa159b7ff74383ecc8c6a910a9dffbc0fcaf0fe9a5b480357ee3d67c67613766b4730cdc6d5c1fc75fe00f16496e29c57d72268fd839a90e640f9f97ef5624f9a1853e0f07111bca94fa8789ae4a7d3bf0fdf53ec2270a818270c2dbc6439f0ae6ede351d02e216c19557ba1da02e48c0c72d23b88ec71559b3a8b8b9ccd3cca9e9bddbea87c9ee9e706cf35c7e41b926de1c3646439b6eefa280f3352e5aa14073b524ac2a1cf3eb722e632e288691e144ad42524d1292bea6adfdc7f7913f7023613ed265c35d68aeb13888a2c6387e41df46aaaa68df83ea019cfeef832389744718a3007e993221970e996dcdc07265bb71a6a4b9710cae5eb751ea5cc5b6f8de2f80f728bbb862c3f09cc6f3fd306356d65efad663de7f1ddf0c1b466c058561c804706c86b82d460816b51d44d134c548356288556f34071503d4678cac54482112f3ea60f24627681a21bd025c376ed52d1de47e0cf51eaf12e22738b4b2e0d7a746b2333414db37a160226f8ed19afa6256eafd85ff2548fe24d53f626790bcf94cdce9deec8896e600c6ec34d119bf72cea1ec60e9c158adb6d9e7eb20c5d6164f861730768a5398d2068aa032879a0542c848d47e099ae51f8fcf1f1d10c958b8a8f5fabd1e5309cdde56e1421b8bb1f72cbeefde4f92fae37d7770cc469150434827fbd854baa0346259de84f373ca14bb8c724f19ce2101da0e5ca900100a00cc6d065b108982b3ae696cac07adf05da7d66350933cdcae2b7011ac91ecb823a966a8d132830efc2c48c6bf10b26085eb046ae9b95ffe37e10e28fa1acdea1e8c8ab65f17bb7212ca2fb601909957c166a8c903d613f95e5fd4edf42a210498dd3d4e01ac7ea06ef26739f022522c76ebd72df765a82cf1bdcf564aa57789a80a13a35ff512dd56ca741067299d1617dceab269fef5eb41975429b1a665608e3365c5ed15d983b79f520d41fce3b5ad22d62f0c969931a7d50e9a71bf620d9d359aa9cbc2743d9b4e8262e40b6e6d1954e2450c39e840c0c5788ce0b9d1eaaf7bbbdf1286e9fc5b7a70b9b9b261d7ef631845a1c361d49077446fb3f2c5ceb4e5e0da40faa92050cfc4e8937a63429e8a19ea747d3c6c24c1e063bb413345e5c29f4c15f6e0817f83ae5c68e7b003032950ed5c5b64e1f4af391404c3a109c9bf3f996729f166c198ddb075af88605ce960a0562a8673bbfcd25e1a36d89904770e138907470e8ce9ed264e845ecae954a8b5c7e3c23a45002da986fcb89f970c0f1fc8375d164730346da0734ec444269638270c62c1ceaabc1026dc6a1ec64a04ffe40e63d2c68d555c87dcc2a74bacd2226ee89c81af1310063e3a85151636bff9d96527282ef5c2f720fad1901b16d777789fd994a4772b51fb4b6a361a56f56fdf42ba019d7c740821a6a2e40935780ac3d30fc091d396342fb50152eb44c378341aba19af23b1b82bd7bac9ac70f307e0ba447ea93f059f93fbd771b0f56725dbb68232266ce45629077530d3ce76ca9a52fb93331b2cd1735722360223408f8ef5bdec2c0294bf8ec98d8ac4425176f2db9cd6020247091090c93878d3dda88bf35e1fee6ecfa7bc7d9301aca1e7e14ffdbce9f45ccce02494a3df2b94289837146144fcd0c2f08171e5713c89416638ecbfc5320c340284cb94f53c1c5e026d96197a102c3641ece3368e41bf4752753053a927df0e16539e9bd31a4d831ef897355d50ad31f2163a9a4eea250afb3c5a35da7fa3bf53f9554f36ad01b6e211cb52d4089305edae8bc2627a935305b6b645990575b0ae0625858abf796a84381b85e2b3b5059f5b6e5e098a7a524f9f2b2308099286f96d4dfc4fa3566dfa168b87351c2ad7181a2bac7e052e33a69614b565ffda9c7548ca5ed2d887596c9b3e0d0643f506874c636e0aff9dd580d4e456645ba3523306c2cd37092c4d810fb801f87bc57f925dc9e494c335b76492f9a5a02945b88e3f6d13bc3b6ecaa0b225b47d567dd81d023894010de375808b778489a3d7ebc4c409c4c7a7be3d616fc7f56d99db09a16ddc986e96d5a5a353ff76cc18b46ffed6da566bb41333ed0006cb514c4ba787a4f4692d88a30cf4346f7cf63775a8d6cc74689034c248d9d1056497bf31373e462f06273ffd1bca6fb4b0c1ff001011457659ba214903e2349e2b2f672124622c86ce664f722e958dc75dcc67ea312511a82283af4585dcde9aaabe201df8962b1255ee78d8f37555f85e3e1b742ce38c26f504418c0554b4851a190f2575aba1acc5250ac3a541fb2f6c9297e6a0efc03d0e28bc9137610d50811c4144d5da1a2893e8338ba893a85982e0d152df07a79bae1ae027073d32fced236705e2b73f2643d7a93ba67b1e8cf1b2f0324ffae112ff1a2568b640f4cbc7714cf079ff0b69ac1c36723928f38cba9e7c4990b3c11368b2e27ca2982a5311b7f18a3b4bd28ed7fffc797a967197636bf4e47f8e8a2cf2a6e2b1227b184b78a097b6b75e1242c86659d6bbfcd844024f55f4f501ef81402514618896353dd743d67cbde4ad577b43c666830dbe50a61fca461216bf92c3a1bad220d22017a63175a7fd646e9ff9f6444fb12ad45c90efba92f690187f62de45d7967bd7705a2887757030a5e413cce5ba69ee587af874c9d9d6037498a8a16e6fef1c91ffcd4f4f4a1d12fd70486ff80cf1327b7f89ffee158120711f6c2f278ab411b757ef3b35388012f879fd1923746b49e619b775472bef58fc8d3ce0c56e49e4fab9e88936be9dceca7384cb3001b4e76057d6644123bba91f39dbdcb7fe92145620e9e54457a992a8315b6a4f9a1b3608df68df9518f0af2bfe342eac1d3619e6a1e762bc5377b100b2e5a3bcaba3c11ddbb625260a1d23ea6be01fa07dd39439a424740257302ac028ccd62e3b716c26d781260adc67d239a2b08de03ed25dfb08b7f2f4003d06cb6360f960d7fb9b2fab200ec5cafb6f1ca299d4d24a41c604cc9b28bab64f1a544ad376947bd519f3dcab6ee885d6d21f4c03e53db5e9a7aed453a57a2d2f50f76310501f4475151bb1c8b1754d24acb3d516fd034ebc5240c4fb98bbfa28446266538965905a010a0adf348cc5a452eadcebbf7bcea34183cfb2d95886d2c4b3cfce2f76ff61828acd8f0199da6bb2c25ca36d1b61adb5761e0f1d5c7cdc90233858006ff3b186c30e73c53921258cbf6697eb8a2fc1ca3f4ab121fb7c033b2318aef370d31e0b01a98f576ead000b501b445dc1499d30458cfb63dfaf0d288b48c27169ef4844e12ed443479d944b864cb43c1db564c443bb2d66b69766813c59dd6bec0fcdea2a4ce26f499cb0847be035ebf7620f573101d6fd9abd48fc9c294e762ee8cbe8e8159c950f22bb2f8fcebdb81dc51726390cd752da2427781bb2650c7b8293bf7c7e62d9704a8b204c0b276879128512c4f6745fea084e0f853606cc8c86383466221a14c924920cb47861fa40eb066aa6032ea5a7be3bb4c40449bd12c9402e772ba58a5cec3fa4df6d16a80776430fa0c5ab5415d0a96834c90c665f7630bcdd08e050c6144d9b15f7ba816a1053901959dc02776d5a005f5eafd992d3977ec934f71a23772ffc2ea80d337685499e506a59876735b561e8ffb539605e3d3beb1ff4eb72984436d019cad0658b42991226c1809cbbb947e012fba1a751fcabfa9d83d536a99c244d1c88d7ba0ebde354e759cb3d57b98b80c2baef80fd460f141689eb1cabd1bfe9bd5a2e05c7b19c49ab618b6b97c6ac623322a933614a25953f941becc43cdf4975bad562a4a6475d872484c25d42d83d4f96f67944ef080a6992c9e855e5ba660c37e510e9b3c43bb702322d9113930c0b5f381ee3b0bf2df4e9a2850251a34f736dd18ad8a026d0f4200d802bc0df02359e30242695dc27c4c38654f6bd0e652a3c646d08c1ef6fd8c4f82670c104bf150849f3277ac05df3c0b15c114eca5812b6f4c3da4bd266189a82a5e3858af7638e824c968af526aefcb2920d4ab7f58afc1ecdb4e43072924f34b9acd15ea974a47ec819b5f49b0fd9b4a17797527b4479bbf2c60b5e9cf7ad858c6edc4b19691a56bab421209ad39d451433b8b7249da74b10f44f3dedea04633ee72e41d6b1746a5148089b713f756cdc5aa75db0527b080da637f3e82e1c0b6b946f329ac98d5b40b7435feaa814080a730c3fffff04740bfa7fe252eef692e77763a35087c2445acdece8ab95208e20a493122f82435d9824e57f052b331daf5cd50864d10be1b7e2c4e8c82d7259d2ee1eea9681f7587839585c421b05470300354c30253a98b63080339d2da130f40836a9e26743f5a0febd10761266799c7bc8a7a8fc125ffd7cc394b9ae31dcbfd390a3092d9a3b40aa511e550717a704cfd8199f4f644737e6e6d7e9e1abb182a563e2f57197bcde67500cc9f4a87085bbdbff51418d8fbffb97d1431895a70cd7f9b94bd285032e8198ef06ee82be384bed3c68d50463b3affc252ffc26c0349bd0bf789caa842bdf630c86627f97b0be1e6291fe287edbd832101ee4c2732395ab1176e5cdfb064a7eb8fdb32febc6a86e89da488af5f9d5670ed0553f61428d8c95609b2910464aeb8c4015dfe88b3ca20869d3422f28a5fa069707fd1f40f53ba3a791f831a4ec87caa3219c132b69e3dae455edb9c47c311ca8304b1d0ad0372ee7915b2a1999875c9404a3803fd0ce8bf3d73e26761f76ee7df2b30dca3c97abe16f14b9cc7aa576bdc56cdb996338ecac32064f0411f36a09afc02fd6be7629feae01be5d901f42008b60103b1bc55c37b7cb8e98c8cd2547cca444f1a5aa6a4f0010ca519b04a3a9de5b30603e01902c84dfd97ce7cc9694cc0cda0ef76e18ae41552de2d316552e0fcc5db0737efc3b1f9d1547a6e06c72db7adf2bbb8e12d3375ebe1818030c1254d970e09eee6a761d3300e39a7c45d0beda2fd10e71c117b1e1ed8fb25d42886c2be21f91bb23128d357c687c5ec9b146ce3aa440132da9c05cf3d03b3b0e8a2f6b7071e4b554a16f63013a677fef74935d89943975ad45b04a061d76945ab7a27c1a98b7c53be25c8b09cd4b1c7681980799c337a1e6c8e0ef2e63509bad94d84fc646e3097bdf1da2fa1e3fd3bee0aa1d33ae6ee2eb4de8b1a4551f6ae2493820389253de75aff2ada7311beb7087d69dc2d1bcc09e31af9544a173f43fdfb2c7fdc2d7fe40f96b5edf8387ddc3c711229e4922ee8d315333c93c72ef51c899e0416dcab643828c1a72850a6fc9368044502f1ac8782170de114da6e1ffcae1b6964e7d07d934b9a6e92363dbe19500e62dd6e359091dd14e69535ee595c8a7bfde5c34abdc641c7fbd8d37235617ddddaff5dffb3c82ba66232b608f3bf24d3a42fcd3bd4d910f4082e862e3900bbc888a97a3a2a90ecafb1da03a90aedc89486ca40ce7ab82b1948dfe0e61c0e65403e4b0e66d077e1ccbad2b85e9670679530b308cb6ab2aa9e3dc8ba634ca89575cf0de27911b0e391b62fd8a2ba180baa59db554f19fd137ee9db8c437f70610af34a014bad90b433e95f94c472775dcf19a60aab462fb4a40a9e205e5b0b24ddec0f4cd69d125ee650a1653876663b0d596df5b192c686182ea98e5e66a2dc4065a1d95aa3542398cf887043a77e59886afcda0903a2aea1a92c8d2e18629a3407f42a6e731801eae97c3c3d1ca0f8734514513fd0867efa17660e0db9fcf86b80342d742244be87cf38bae1016eaad591ea68abdd9a11c8ea2f2f6a7725ad3a46400c2522628c41034d9a6d2acf254dcba62974f7ec73dd2c6f75e2ca1721b5122ad50a1b213889a39ef37e1a6f2b5210e6da3151ea5a8b9da45ef3ca0f219865b8e820fad2e93406e239f4c93c7a9ad0381f03c7e96dfee3613e4399cd97c974e63dffc6eb75a9142684431cead39971a3de1912a21eeeb7c96c9660175b84e062743b3a883dce974823044970114e2c1f010b79af111e8318c5cbb23608812f0fb7e996e59e6c6d7d88a40a8947c9db18f96a831217742d1b747a4176f0ad8f836e67fde5f5dc72cb7b866e34fb2b30ef1d81dfafb2a47bb2160b06ab15489888c3d9488e2c23cb90a2fb8e356601be79d61bf8ce34b8a6552866efa73667d29ef1098c8bdbdc08f955dc5492cb2fae7e93cfaf9a62ea988cc19114c5eb4e9d7869896da9faa2ae8cc9b29b16dcee663b9a2a56a4aea68a76a6d83c61d3169c7bc347f65a21c16a9f81b4b8d12a7662e09ea7326001a39043a554475dce7b3a428204e13557646dde19047295b1558c132f69f0a6115b0aba44f69c9e4cecfe1ca5461c7374a33ac95bf5e87b65aaea6cec07cd334d6ec6b4c263618da921508c0ac4fb7412036433a54dd75cdba00cf796fdab2651a2209f6249889798d80cc8a26289380c57a7c49ebac459fcf7b3b5e7761783f28b53fb0bf54dada17ad43b723d81e78e230b7842f98654ca75731b3b96c6b3d620b6e03857d3c5adca27046457c74abadfb21f32677474348088910b7178029cb3a37734c3c657a3e69875ece5904fd1bb4fdb5df82da5fb4b0af43b52d220921c5b7da90814e012301a947b5d0e88facc44a4facaca16a753a514320b77a1021138c380c08f63f3ed1b9dbfa91eac90c0cfc7c8d37cb988087e37c15dbc7d09eb47b00fe772e36eb9907db73b77150379c963aa5c7bc6d1ef8194e4c83a90fd6361bd961d45e9be07215995d7b7414636dceb894f1d38b79d62d94942f31b690395f80f2d85041963ce05714c1452d42b5fa79087924ea640b2a6aba6ed41924402824da4f845ab24078eca7f998e3da66132ada2980c89ae1d10fcea018b93b4db1168ab0cbfa8c1b3b1dc7696df4822d2fd690dddb71a268c1f5f58f565048baa6f7d661b0d66fd1661bf475d53a4f717cb13437b5d4c36014ff55c349e317fb0f8be81bacc859272455a1c639d2579e833307c2b4bb97d791376bb38ece5db9c20d0c0701c3525423727b1c1929aac9a22444543952b349f4d9a231b66c213a8eb74ab5123789086c6c4f93fae29fcbe56eab79e9130b01fd8567de60827588f7390b1078a86e00bb558d5528d42834ae33950e65cbd5a9fffe6700232abf4d7667360c6fe378ccc7ac2fcf9721ed937b27c986a53e3c2c502a7f57129267138867a8377b080bf94c09d94f8c3d07a19fd3525fc9b94c39f98bef1b19547bc0327fd4937d6fdc8d0e5140dac8ae736bcd5789bbb9b78eda1689b34bb02c0e0f8b48bccdc2892fc017c8339aff69b3ca29c8ebbda7dd0a6e98f3b560a5ff906e82a7e8bdd63129dadcde8c98ad892b0d18beda9acb06bb3f71d484597815fc5339ad2c053c9019fb9502a90ef272de92b2d7ff03068ac160397ff8d55a1380154ac5b9f509f5e561336263b5a7c68b444e236f2791d9c812f77f0a32dda0de225173fd9ecae7e612ce095718b964f497b5df8caec0810bf66a783b85eaca399022ac407bbc3fb625265c076f2d8fac6e827ced55da9ddcf500a57e8df7c82024d4672ce5830b05c2611fdc203c62063921a70537a441fa9eaf467c9a6110f5764627fd3dc48c3bd80e0053a788c36aa2fe619ebc45e88c687ac0da4b0193383b0868ee7c8e6c575df071ae99c772073bf8fb1ffa745ca029ff1c3e04aa295d2ca50bef6f8e7de9e136cf0762e79726818ed3d13c68608689f72c5745ea163fd9b72079dc0ab079144297aafb6a940499c2aadb2bd755dea2d557657716ea8d5a631eb770a985870860d75d505c17f433748eba30ba86e3e99b19e4aa84636179de8718fd5976588321acea32c9ef509df994850937c113e0513757f52c81e1cca837970de95aa06e808d4284fc4b987d74530a59a8fff8ccbfd78e26f79bb77d50554d29a0408e69bc139e5c3d845531dc72ee5b3449b6fd3621d18324046badd02b6e1ef574f1d67e3e8d835241643787048232542c4052f2c4374afea01dff125f58a3489df62d241a467eb16dac5e2e39f62daf5bb5b20b78376dea7f2267eac965d2297511737627a3fe7c034e024976c94d40c1a03c5534b95778b266257e72de3500135296d0108ab535a0df2bb5941ee54f9d0250bc5c3618a0e8ee9adbc8a83b84ddc03668b8af98bbc6fa56ac7a252b97442453fc68e4e6a8d64cb57263850838439db84a4c2e622e5fca816d5edc51bf86317768350a316c628ec8fb14a5123b3cae67ca2a62c7877eb17ec4c8e294c45f333521b0a676860251e7e007f2d3f6c965d3e10e5a8ca3798b1184685b7a8dcba832924444b206189719a48a84787423845032d37c03792a642d3b43ff8ae86e6a35a2709e265b6103f44d26eabee51fd65dd6b83e9c313b1e1cdd8bc2cdcce67afb61fb0a868ae3cafb37c5e6314b310f63ef0cf8a5bee89e1a3cb046799826a2040fe76b19a7f1cc0c2394512e30bb8cdd7180592b6790b9b4ef8eeca7c36d9bb2329edf56bc0a50be98de1e98dff9f36c9f17f732cad78702e9f38b11ec0f1b8bcf72d9c84ed9cd02b11e1581bb638a8a2bd7478d1a96dacbf53eba61ebde996a935ebb83be70d00b2f52e0a9f5e2203d2742187a92f601ea57c1383b90ba35273a547586f7154512279920f1ea8a91d323fd0ce5726b0964cd6c60c7f4d70ee0c7a81d7f1b4b49eef739d51d94a54b32afea901761648a413f07aeb4a6be97d7ddd6cd977bc830c3eccea9e637c7d0965c35806a9afcd357dafabdba10fd0275b6cbe5f51f8dfbc1903adf4797c02db70557a4b9c426200bbc8d161f92804d059b525d33fbef9114ea88cda0d0aff5cd5aee2264846f3cd8749a9753d6b885b14c037046ac4ebc04ae2d6eb52ec996ef27daeea4ad51a151210c8df1ccd96c06382296fc6a823372aeafbe7e96be145c6a5259aa72c907c80528443420ac5540b6b5a4c536a5a141b8e5de474d5b72b24bc6d68f02e282c6c162b0fa522390b3ed9ae371bed1cbb24af6d79f9f9cf18298d0c6bbee2650d87b886cc8ad6ed9484a2ba785479e4397dc31c0577aeb945c3963a2a5bf19a5d8666b58ba62f0795d88fbb35e03cbf0e6d53985c004cfefff18b05f9ab29983354a64f6201f8365b5ddb631b0ec488870b7e598779304d56fbd1423fc2fcedda7ccede38fc3f31d6fab87443d086b2c0f475835dd33db86d3504521fef01bd26c78ba360c8d830b043ca28647a5b9c8478fd9123405600922971af21dc72161ee95bacab29da8bc77baa6e92befe7c8da7f0577d65e5f152c79d56d0f5adeca354133c01321f58754864f320d98fdaeb12bc4d520157d14016bcf46b68b493fc295980a8ebc81f5490f9fc65c412939307e22f7dd09ed719553aeb240aacd152782a98c394b8a57854de1472dcf174518e78ed60c7aebe7abd362282d1617f9e1656eab42314ba4ed97b8201927667ab7ea8e6bcd5005e643302abdfe1c1b88e89ffcb6849c91e8c49ae9532ab52236d812f7b5a8011572800a5322fcb5d9d599d1e77bd0b067ceb1945c1ca17197be3f5dee86d94e4d18e5859446455eba09394fe50835fbd64a1d88785148ec433084b1d7ac4197c4947d60d5c3613c66b700fbf80cfde276bbdbfac2aa0fc2d6d208463041a726368f63ce3c822036c4b0f19d4d59ad53d45e955604b715c969a8f4ebfb62f4527f572dbb35fd8b8ff32b51a85fee6633f0138a5442f6396230be14452387e72d7ce039a87fd76e4c54b16cf6e0ee461314af7136df5cdfd5b024ab9d3169dc28af9b04e1dda4c90a91511b2fe54d00759bcb4b7e38eb659ab6026a80985b97bd8baf94068aafb18b7177dd3f9838c18c349e90e23891395e3db31415569b64d5fc681de0f932fb7a320ef65f7251e73bdaefc699ea8f0f5b6c77fcc25bccf433f7a8782edea516d431795dce3649a7c5bf692f038537b2a3e6e738e8236db8a9e2b35da8fcde14e105b8bed7c2033c9f40e561ccaca419277f83ab4835080e426831fe0b97d5c62aab44d58d75460c8a36eadb6a0372fe9c0e68e40d78f019182e982a1e197dfd151d625e2dbd05ffdc7c715e3fb820ee15d19b86640267152e4031200b314efb96c6cb994c33c857a83cd0a848f019e45f7681ec012e06aed8240676b8b1b09a906be19eda07014eb3f08b55407ee7dfe1acfe14eb862ad3414736b1dfea4f1cd4cddf653d51aa07425bacd657db383a1b51e404e30bb2c3e588143bd51eddfe51068d8e999b6261ea4d36a4802083c4f9e4cc9678a3c78d98f1f976c00b7f73649d87d6c78d26738f1f7a4151cd7a5420c48a4026cae8dc0fd9c422b395db8469164c8bcd2a62b78819149ae42fc6fd41b63660891cb73456cc0c52d5eb64b87a670d0565bfc761091f60a0262cd43b14b4b3fa945103670aab4013b87c6dee9e98d08e09962e51f9e9de0e95c75e6a901927b5febd81b9a06051866fe416e1fe20b90c96ab6a331ed618925851e3bd305c59fb077d03494d7a97c81c1dfb054ba1817e77bf8c46704d8615825ed6fa303179ef0f5ae9450f5248d78037c0961bf71f6c4d173eb212fb20076f9c9df580a98e8990048d8d63eae3e55ab0aabb3e3a35c7a44348098fc344bebb1fc723e10fe61a34be9cd051270b517d35958c53edcb2aeffccf2f1bfbbf3f4739688506bfd6e9b1c095b45d8d3d6ad4aa4697888489b8b026fbbcc0f4d940056acb25c5931aa35cc44f9d477de284913f4019ca0072b5fa04f1916473fd7a9e861cff57994fc6648af64d4dd9c9009e4549eba07aa41c4015fc74a06ed5fe1a9c3487d50891c22936f557d7ca0c173a8d6687765422041a14e21ecaf79650f8e718511c672b54442af5e46c88b7072fd5ff9000306a26ecfe77209eaa531907f19d468a6dcb94bfed84cd0baae9ab1b7506e8b507db8e42fb26b3a21b4f5bcd9c15b7f2134a2f306279d9050b374fb5bf406575d440d5b39eaf04c045da7cfece3da854b109affaa81e8240b5ad2dea5c4a983605beba6b8c7c73505d4d7547d563fae9d0ade00d1ad5b1c6f46194f027c00d53507d2814b14d288dddbb68a4608614a7227cc1d74cb96cd86db101e16f81396d841534ee711d7da05ebb300728a69308ace688620248e805e28212838ec91feecba1f6353b112f43e606f07216bb27f89535a7a784946cd86e4d2cbf16326d7376862beaa1805a80ac7ed04ea5f24b0790e9d82b1838591957ca2cd8115939d23a6cd65dd793c7c302c3f8d5440614d440472c71590d448a32e78195a846e143fe8fb212f3913053c820c345bd042de3b1f4a3981af68e3ce3657eba3f3b4fdbdf905b6b7639c04fc15bd67f25a784092f7af99e604d171b70b16c9b62895baf1cd702ee17538e50413264b7b1c4d2fe12b724fcb43811c02ab315fa2fd22aed8e0d464ed718c1e2b18f66e507de1c3a4499057c9ae93e7daf50dc3a9c3d98b8e27e15f6f46d5700cdc4e803e1c617cbc45ac920e665cb46a1d35d5c375182ed7909bc9cd84d1a786e13e7e05a9ffbeed840225db05a8cb651f687e1abb012c97150150c467bbc33d3c0dccd98ec6dc5e742a9d0695bffc7e52924a8cb969295a596766e4290dfc16658982e46e7d4f1cb2211c79c38b06f102f2742db8bbc6cdda41880fac090dbf1ed1b6c26a374d96c563c7b1787191f91e08d1c291012a42b42cd0fe6b43a6246a3e09033f4fd3226810643fb2c17957f3201c46f7765531ec5e70bcca9b9dfb8a6fb3ac2ddcf9775d62184bb2d68bd2f7872b698252e3b155e65b29a374bf3a1c9b78b6b8e9b731dcf8f60c7e381cb1abb81b0c98ae4903014f3a78300eb29b34a24f8e2cfc3f5186b52551ac621743821e1dc61abc7c083c9891b1444b671f9b925a93faabc3baf13028fb83053e57df35bb62eda8a0c52299ec30cf5505880b8bc39ce361bcb5c00714806adc43c42320835f45e47fe6bf36a624b3dd03dd8a33636ff27dce6e4a823b6aa27370e3c9fcbe6ecdaaa539bd0dec11eeeb78eacb3ba94b4673fb74d35829d65977320f929993f89704502fa4717d4e0e8435bda3911b5fada21e3d56969ef60866cf2cbf4b2e96e19ee75eaee3a588f98d5f2a8e41e5500ffe9fa0dbdba18f20c0fa1e6304d997a32b4f012663f43d03c2ab4842335ab7a7bede596386957c080fa94dbbf1ba7df630277656393b42539137f2563409a110b815885c79b8296e5de4279d3fc480447216bf0c23763e9c444848f702f20d1d126232ae8f6b18e3fac09ef2c8c3094c5d4202a8f94e2c22cbe12ba74ab972837324bf4ff51360cba4d2a646cced38f2246609ba3d1bdd10f43cc417c5403658e72b7a71eb78299c6eabb961f52a5fe57362c337255774220ca2fd0bf1dd385807f91435b909316a03ff53f64d5f850fe1b2c1390fd5e8951912064d1186470335ef22f6ca8e4ac81afe755de778e5d88ff1ba4c7f1285753076d2ae65aaa886eb789a224267d9f53a5f26634f7e6c3aa674075202666b2d99c19724d02b947774fb5aa3779a595d2253ed2222053ea0821c27f09e030e72c39052e557c1b75d89f5a1d432b3d662725459f44a71319cdb9c3d93b327b4763f5441a03c69b30daccb940e97907382755b7967c61d506833e68dfd6312fa73370467c18b009bd33f94babd0917e4be1a806451f717593949d80268f8df507e23ae0bc669e9786dadac810b93f1f45f807db3e8e06640617211ab32d0b478acb1eb39a181bcc7d51b00b7167b620101a8db02f2d7efaa4105823a25ca250b8e1c773f304c5ef9dd87af11bc25787bef2dbd72fc7cea730e4066843f4440f4f1699e31bf2175f298443aa7ee6ed968d91d702aae117e2860556c031a1517f2fc4b4c679d47298b952e5d76a009c3e3cb3eead1207b928e96881757d620441a909ebafac16b4c11e91b9edd3aa3bd9981704a164e8317190b84e4c09f6b6053ffbaa74a804082c30953e020a7cd0a4a01f451298c2b057513534ea6bbcb0ed9171c157a4c2ac85779126ee9e6f1c44e8cb9893f1a222001d4a996122a9dd7bb760c2bf28f31c6753f739ac23ccd340ddd0d7111bdac1d4fe2641f32d618be5d2f59dadd8daaa73b34307e9be43aed86b540a45d6b9a1aa6b76a36d956312af7c1423aa95745d6b71a1c594a5c4cd4c9bd1e63640a0e7980f35870fc3e177c1362266e89d177d6708b50d1063cf25e7db258406b3a34210c6ea71136fec660138d9913f6c673b0deae5fa0ec9eb7ea5be3310c3a3336d1ad1a2b91455142c9a8f0f1d62a0f1bc5edc7123e7b1b524fb001103ea0b0fba079ba22f28a4257385ca173d1a3c1a3aa7f8e7fbf174c0878df3ec639ecee8d1eba5e378f8dba16f50aa19fc1a67adeb0e7597e7089e73013ddbab5ce75b72d7071bb1af377a05c9260b55c03baaf50f96e1bcba47d694c2cb3421d38147d6eb9ce49ad86978a0b26648ef46a291495a3d1285bdd024b7bd3005f32b7a588e898b93ad62fdefedd7cec3c1fcb820db46ac1d6b1a50ecb52cb75b2dd988a3554f44d3977776243ef9124f996fb1a38663462e33d7cf846529457a8341a273e207157fd2570dfbe5d930c39eeaa86fb727fccb009b0fc227b1300730a286718d5e7dbad956231e9a8c7f816a223222f9d528d4f485dbb42cd7f5d5a32673662d7d89013da37dbcbacb90e08a3718dcecf4926598999b811aa38715a4d4c045e5b695f9beeb483125d2bcbe2cd022bbe7ca3899a9d6fdc1b60a5d1113d4b487f9bb7e7282bde73aba1717f350ff2a29f5fbca28e7682f23561442700964ffb06a465fcb890441af8f605ccec2aaa5db6163ccba88a0d2c36e59eb014abc019b0451224d41792898db34c2b4a62720cdc4351556f88809c3cfbebbd8c0c4d246c011819d16a65f78415c9672a72c4228527c006666223bc8b4bcc3622949aa02fff5149e7b5703e5c793a1f9ca30056d5e73296c8fd06e7f00bae128a58c198ce61d7591177da5b665c6848c6e83122c4f52e31150e06ddbce816e042222918e989959ebf7712f1cb0cb5a91e40194751424ff866e7c0434ce44741b33bfab0e71972a25a5aa8c71b29e95ef0d7a447c935e77fa0514e20206f6d6b98b6d3f807cd25a5956534456b510c5632ac4cea199bfe5166a6d262863ad4a8c480e2067973511991770efb06ac89d5ad988bba36f1aa67e9c34d57d28769d52de2c5f987a56625cd4a621bb31f51f27419d1868dd426b5819eb73425f623e34b3ee772dcffdd24ec762bfa7b65201aa933d5e38a72ac9e187bf292c610d05ac7320c16c5fadc2345d7c6931654a18b91402da62e39047a631c31eb0c2022d1776df30d94aedd6646411203d10695da01955d6bb034ed17ee6c2e21d6fedc77b2d3bd860b1723e3a7b4860e13c2d56e103f691134cd0035f56ffbf88ff6538de8d4be31daa7c4c56d6f54996eb793021d540e3c8ed6770911833797d0e38bea950210c32744e4eaba8f4b2e400bd327278972d2182443bbaf3a3e0c7f25c6767f47ed7631eb3166732d477bdfbddbbf740f017f97123ee85f6335c58b184eaf41587086f6ab38feae15e4d35f5afe8488ef9f312cbadd20ebf1ec173922f8272f37bbb5f4b110aefb9187abe08cca7f685c309c5bbaa36940ec31baf38adf037fe502c7f47cfa2470e51d1e6e02979134b982b621d2c7ba2e958c4abbab967ecb9b3407e79517428e69836a713404ed0c4b843c16b6ff81ef6461c81a302b64e02321c1cf52eda0f5743e71b101f69c48d1712ca1d6081e81981318b16e1697d92d33c6c37b9e07e6750b39e3365af8fb7d47493f089c65d1611781491a708e91bab6ebf4e2d0f791eabf6cca68f431cf087c9bd63fbf20b802d93084cd7fd15ff5a089ce410422412134d9e9c151cb24d651ec1ad5fd8bc15cfdb40e33187e271799ff21edb7ef42ea36f1c3a5f91e906cae4b02fdebd6c8bfc7836cccfcc7b52cbc2b63321df8b0a5094bab4bead59bb2758d496e7ea7620160744f99f17270da36f5f46f3c8c0157862023b3726fe0aedbc708622b9517274b448021fa58547759c5853a632d6aa8dccfcf9385c16ac4fcd557627eae6e2da81157a3bbe643193c087c216a131208c65af72ab37372a551d70299c4f2c7b5a9e2c368ec9fa56c61ae72e4e0a814492ce89108127e607641ae4e90bbd506a5541ce7843897527108afc52b780a54728141ea3d81b425db2983cd97b8c10cfdc20e3a7c0af9d47606812e16108d1ba57255ce8fd838e1e8b141433f9392037b096747993483f6f113a4702dab36924533b54f8ecd01d73522169a99b91878c465baf3ef8d059f05701616942540fdce581814b48e5cb681c9f6e6393998442d8a01565134e602d99fdf3b7ef89bd2fd22d835ef576730b02a187e1c344c4b60b31720b24a9f2115d8876e4782689b391772b4358e97de0fce7717ee2cde0075b33d97c5b93d9423509b96b7437ea668090a75074233792715520363d2f1c63b45961ccfaee3ab08582cf54843e98a9707e5d2ff52d65d835dac6e90759816cbc9aa45ec5246e0f28a4f30814f657a1e21ecbfd8d0f1653d14cdb77923dd7a9709e784597b2f8ed9e19e6faf29e7632ead2f7581a0460d3919bfd2436e3c5ba0b11b6273e1fd05c5bab588a1ba15e6ef8760b32ade6ee84df6d1bdc04e25967b0cfb4276c720ea9922b63b2253c9119eb854936aef556bdafb1806452b7deb49e6a0c33ecd9fdd81d0c67f52a292fc461686e6d9bab8ff7849e95bf9fc1d37dea1059f8c1e93824b4b8ddf2f7c32231ccc9427cd04ae6bd12661371ac1527ba1448a278a12aac85ba2bae5d9c2219c7c11c0fa0a831c88c0d5dd8cd7df5bbbfda5744f9acaa58b0afd7d9968c5081a2305703ea2d33f4750348291c6f6efa559fe6a41af5cda8184040b0b662f47be215eaeab4125270b3a1ab68f1781b40fefc8fa88ab9bb27a8cd51ef03c3471bb9590a806b309364ced5aa5cb012cc93d064b12cb8f9e2cedb5b872502efacbc73c1731df5b9da48f54babd7717423d00601a870e77bd58d6f2584942a068d05f56ce3ee1e5e8feadd2ef32b9737c959cd8ab9194a3d9dde78e91e8b6d765afd87aaf6bb57024a36932087bbcf4b44a888d4a4d411e6c7506f23518576f40cb4252c97471ef4d46558214d3d9f36848f30fd73a94aa046b18c466a66f1d793a1c5501bc9893566f0a1719b9c92db871226e55bc30119924244c21e3ed9a6147d30009c9ac6705faaf2d9d70e9cc8f189a1da09df6024393be24b7246cbd0df1182af3c54d7b8f96d0e8107f8fc7fd8718108d87aa16d1c2c99fc5434e16e469035701ffea42d04681a17c3370043d79607d718b2ea3dd508373151ceea8b398004b9468030dffe4d7c6911812f7e6a0d32b389d4a78f4eee28a8411d8899497982ea617f6aeb899b1c5428452a6db20dd412d1505b8aee14813bd871779013400fdd7c562cb3667c9b27c0cfa4edd122cea392f8b5292837c21066793c988747b21e7521a54989f1eb17a0d61149102be54898ca9e6f0c2fa87eb9e7a272b0b906e533e9f29316bab4e702424719272b9de77afd408f8a094b8d39dc00fffe607d9183136faf0456b51f5b6e8598b55186b3c81c132a3b15dcbdbd9a90af8a2c3a0a37386c2137eb1aeb2693144cf942236f3ce8ddd45a0ea047b4c68fbc0125dd19074ca9178b8cfa64da94283cb8db8ad90c67888f2aadf7580f2c71671bc9944604690732d6c0c3f732417adbb8f6d18ca7d2bae1921cf8df64deb52835cad90f81e0aa1f965e993334e64f9745f7215316a91ea59ea67bb59e21762e0614c8cc0d6ee5bf143babd91deaeccc7b54f3f96ec40d3a000f47358ba928afb6b8e521d6eea1469fa8a414a4f6fe1eac0707b46c073446aef263c04e28cedfad3a0f056879ebfef505648576046c19f9e7dc0dd8c8f2422593c8cf4eb1f0fa423492741e6327652628c16a795418044e5855d39583ee06a7566a95d6a5ab14d9937ea88f775ce0d1fe97dceb32fecd21dfb0b8b101721518b8cce86795c5468a9298732488d82fbcc9a433e4805a2e1447b56ad03d6804379593e5c3484ed4678dc9ea709364f7d7eb8b4a72051bb17486b1ea167253bfb319a18133daaa7b162cf59af939529e0a308e3c9d1c0052890614a8bd2f51f6138ec0cf6396ebe7474d682cede992e357a1744d631b5f6547460e7a0c26648e029bc447b5193c68df27c71d809eaed67969dacf8dae6ccb2c0e0462f173f508630941eb5b26cf5d1d337eeecd566f2eb5f36e253ad1a92d935ace35494f515c790ba94080d5a39e840687aba2a3baaf590663df14ce6ee7c0888170f614943b81d2069d51854353a192ea69f927c10d5baf215b79e84026c62afebf78c6a201fc39e70650a89710f6f0a5e31b95bbab2c085f3764ebab0cfde1d8e6e83b273b9fd8797092309535e0b525abff3e429a259a7bc894dca171a0daa35ec9bec6fc05e8379c42283acfee66f1aabb65088b692025e3d4c7a20fef5ef7ef68d2ef3c20cbda643cd10fad1aff715c91be4298949fca38c43275af28e0b8c77f340989a3f64f0316d139a2548880d8f61617d6bb3994037ede9943644237143d0975c6dc779561e4f20950b497ea5856a084950d6b6375549cbeb0f78c2b73905dbdc6384ee704c44fdc6a67c76b44e3d275752108d2bee1b0931f3ff0303c1ddfe69faeb116ec421ad7a6f5fa0ef94823af4a08e8943f2686aeea1a18c1e5282ec7899885000e2408ccb45a5e0de64099ee084d673a72ffea36bd29b55026785ba2e707642d572fe7c5dbfb5c342c243cd97223ee4c884eacc6cd71e4795695a750b62e909702e3b243e7e2a4056c8c7330f99720af59cffe29ae0cda2382dd977f536a40181f2dd35018751499646cf8d4e1ef2c3e8f9565fc8d8433e6615bf53272383bb14b84dd1697cae31f996b8d883c5910261eac8da839b8b8deb4a2b4ac22af34e34a7f8ed325f77ddbf5d86d374acf782e15276c2aa37a67d8b48215407db75f7d007cfd7c8f017c54afe5d0f706820d32bdb421cee38091f11970abb78511f031510c7bb0520adc79cd309901faddba82028535b7b7e1c201dc83241668f1a1174b95a4443f78acd75a677fcde514d88054795443bf9bc17389e49daa5a625a014d70546535bb73a2f6e3a5f770c6bba685436e358c8b99ff3d7e3f37a6210ed6ca1c87b318b6c31c4240777627283931db62b8d028f593f2443f84deead42212dcca95380b89aa4af593997f713b4090bf5a9f7968ad3257e946463181f34d1d00431cb2241633a8a3a4e1824cf709bc660ac5bb0e4d5b41eff686220bdf4ca7169ed5b850a9cfe91fb675891c90186352c73aabff8ffdaccae27b5f14ca334b620eef7673f52e585e5cc4b5adc024cae9f01d229c9663efa162a1aea2ef7faf3bc49163b39421d7fd1669db29de28b54529e1119ac1237cf7fdd4c021eba8fe37d98cf61ae5f32b286445f219f6526a919555e744c8099cb590f3e33ef49f87bd5780aeb564f004241164b31e922b5888374d7ae772051c6a776dc19c6152cd2cd09b89319ef748ea4b592b8370551123c0e4b61d5d8ca553e296d1b1226c3150f7120247bcb22a97e99401afccfa830b67ccadf917f2febae24748c0d93f4044e593f7a7aa6a3d90d612823b59167bfcad84e3d39636e2a74c72c9c660be571dc6e30d33bf8ca5bec4f6764be35eb86c7806d6f7cc417495c579206304f45b3eee1ab25e66ba8c161c9742d53f54a8894991c845e56077e3d7cf8ce35b5401aeae8929fdd5e5aa39cdac28723e2ad532b8a871b54c3decbb7c2338558a7bbc7b93b8c981662b08642aeeed5835ef162997cf397332750b0261852d79f22e27ab897b08b94bf9d28d71981f8f1a29fb22be1b3b570923882ec53e3714b380633373f47ea48f07b92b7113f1a653936132fea2e7d02898a88f0acd170478ecebe097692d96d221da5c8300a869f83bcece50ff2c07e860814803ecae20fdeb492cb06ac2d29baae03843351288433aa6ef18bd6996a73cf25c28935213d76d480c0bc7133bccc6b88c17d109e43d21d6671de35937b33b16c94f2bffea8b8082c4ee9811bc5a41fad769562f30e3a63348b492e79891a5fa3f740720e5b985b500ce347181f417891a8a3a073e01bca9fdd55f7fa3c6f649928215a853021c43a53821881bed52889f8f7122dd579cc78a44d46931bf1f07022a3c27882f0340a01a35e8c7e47dc5b8683310a842b854df4bfc2686d4f73db8dbbfc7ae3b7fa93e7a8d77236b0f7a05e5c74a2b95e76a583fe8a189eaf035f10c1b7d86bbc6a05f6f7df0d94e12ce14e3cb4240211a07feca3c89c25289eee85f2e9f8f157e19cba77cf422adcdc67c4031bfd7497e60c2e0855c1ba472d5feeed48a1fa7810144a1666cdd9574aee4d31a4184818c9e07bcc6dd88c8e6483bf375221231e9e95f345483b3b3d9c8a736e2de8ca0f6812155279a186f06af8dbb7e3a545e11258697a8b2af92cb08cdb0317858bcddb07f341db93285755eda53a64379e6918382fad521d1af7bc321e5e749992f5dae59c05d9ff5c1f716f84f07b24c5f407ec31db7a741125c55f3d92ccedd4feb0dd514d8eb7c4985e05b9ed5cdb69d4c8aa628657630f70d9bd70d46abe33b484d3098bf1315f87fba292a99b7357effe5f14347fee6f482bf6d9ff3e3aa7b8ee168177e8591da51d40e281976a723d89c7a0eca747594eefe8bf114ecd78fbdf27a18c6c7be21f1d9c143373540d4e500a8dbc931892d90f0f23acb218c547d8c11d8abf00b3142ff87b669d8328c164b6fe350d8f5874af6fd8962dbad7b66ca70af2aff1541b90d22320e9e8eece6d2cd3edf33b8b5e7bd3db39464555391ee8838ded6672ba7eecff4e36ae08bd67dc14fc5817c508ce1f3524fb0f9212809a3fe66d6362f00525673faa4d2a6db2ebda7fab3b269ba103a08802b5e65aae4405cbe0c518ac97f2912978279dce6f1ed919f529636f526020bb9a6d4d7c146d94d034446253778543a339d85c67321e076d26a95c953118d1b9eaa415b8830d79cb2ba37d3ef4dcdb29d7d1cad1fb77cfa57392f24fe72c869ef26605a199e2a959ff9b57397459d09c00f9e7398beb27eec01cfc92a5574e2d0c8dd29f76d1915815222b064e95efbf35497ae2fbe5cdfa1e79508b2a857b4cfbc9776ec4dd526bc4fa0bd8738ee4bb5ec182a1b341a37c57d2921793df9c868ef78b9d0c6aa67928d9edd8ed6a249cf41aee5fa1a5d0af89010549fd4fc087cf476c105fbcbb2e07700ea42462d1d1b90d799bcb1de4d0d689fce8faa164a4c33bbc7f4801db79c42b45cbfb9424b0022257e52ec79b9f1eadb5eed3b2c050bc8178f51847600c67869f52bcde9fef8d534964eca86de2cbab280a995667a8371d9c517a2bd7e0ac27dd32cfe89f2ced067851c81427e3b081351f06dddae8507a21c856359dae2f43d3d7470be6677d13927af8282fedf3b1f2c3346056f4c04efb610f15767699e67aa23ec45883efe368c0424d11d20bf42bc11e47eed06e6a7b780245eafce8297268fbcf88c860ef7f996bc5f568ccd32597f0a52c2890d97f3b62c41d46c67304f2ef2b8064030dcc8ff4b2970783968bf92b6679c959faa8305be60920e743627b828effe556642dbe2a20190d23f7044c9a60f1264068cdad8a6faa9883358d35a81d96c0f0fb045a85eece5a828b512b0fd3cad4c7deda5fc57bbb82da2ba1c44f6eeeced428a52754c2bfd4a5e4efe6fadb080ee67555c42de61af4c5da8fc19b1643ca5d6042ffbd451ae41dbc46fecce50a31f1d9b0b09a2dbdcb5f1d1838ed5c2cd4b52e78500f5d58f872c0feab262c78412161d1cc4d0f6b25b6ccbe2abecddff1de536c9b58261effa1d2bb56ddc42263a0201d12fa512ae58f08d30c4cc289884b4918f65cde24f0a8c6ac1fcdd6c0612b63a7531a7b4933412414471222a0e606b2478bd004ab4323f978587be8c52942232bb1976883f98fa963b614e9ecbb6d776817e759f476f64beb078970394ee86abb25c0089567a8230a2afa3c969b76945f6c328f5d890e5c5a68f5112386f5ba4afa8caaec6f21a479e9f61a997f8ad133efd0c568822a023669302e082af6db6c5039a0cf491134252b87e80241edf2851aec33f1ebb870522dfdb601b99bba009a282e70f131a3f89cf970b523b61b7cfb868b654fc480818a246a2455bd31c2201d00f3a4156738ddc919a8495867fcb49cfc81c0efffca8af7e05044e8e31d7ebe9e50676b7c1503cb57683abbfbd0f98eec835483111deea11d047080860323709f5480537c0d1622af1263e3159695e4bc3aa388f49da64c806ce87040ddd37788b9fbc357439410c81c942ad320e5573baa4bf7c0e05a104eda5d6cfe442674a38526fd6a59eb8e62108008b9635b35952c6cf1ed1ee4b7339ea6bdde8a0623385a150edbf902b732c6426b3db4fc09e8222d10b340d4526e8b3ca816a23578e95b1f696f26b1feefc6d39fd1bae3a1c94c35c096eeeb97839ebe58f393c5032fb85e88599d4442213895ca3145bc5661d032aebb1ea017b4bc6f65d82a9ea8249133a29c1cfc9e6f21cbeffaa849aeecd55643bf909e3e911bb3de5d21fba22a46c16d07128e1d8ae61e8cc962e148c95ad4313b73442861a395efefc3edde0fa56df7f151a22ce4881abd6224ec1f5e8968113cfe24413a8a440e929dd79ec08c648531c355ebd8a3aef9a99268147e74cc0b3f2684b9007992bca77af071b3ef158cf48ab743fd1cb05a658a67cd1d8e449988abe0c7afc674d8e4c6c47a8ef1b3b278274ed5aa31577312e18fe67692134de6b166bb98b9847cc70db305bf10b4e7cc1492af0de2bfb94d3d986ef2e904b22dbd78de814982703d2f716ffde95485110b6edc3eb9687f8ed0d2b574b5e2360a672e29cf90cf2957ac845bf7281386e8a1c6ba3599b77939729c6ce4d1ff2aec62d1c31ef6f05b2a4aca3a9aa633c90729eb289a8074da4bdaee110721b1ca2a6d6159031b1119462bf021b88a3b671fd2287fc1374bf82080d0b10c4fd05bab92103ac6c77f825a6afbef0084771686dc395a60714b8714f0e0f3641d3a5a9fd6c54d5b5f2d09f632c3c489ce759f5d4fcf35bb326a610341d179b7f450b42b9c9ad6f0e1303e7a4f73c75cce896121f30dd75f46fedeecb0e68d192176170b625f03c5274333aa250b3dcb784ae7d0a70e87b11345bf36567b21dba4964c7d4e14522bc9446b7425deee7ba4138b28e95d1dd274dea055417d1b85ff9ea415c273c2eb1bb55adabf14e16f9d832b9a4e7adab10b4e0adc60ecf6e29ffd743aa863d865c93c78171629597707fdeff7185c1250267d0232f860b131f92aa46784866e21c423dd69b36c34d12e291d036ceaa676793639777f8209ce5c1d46864bac58b7ced8751ece818eee6371f950a681527ad8aabf51518e0dfccad448ebf05ed63b596ec2c2bee0b794e485c1376671c2c997ee50aba1d7f9a1e6d030cf2e54d594351b279e96537cd721d7acb52e80815577782a9fd64367101995e5507aff036686b8ccd4007cb9a5e72002844b65b21ac9a6741a83cbc931bc2d8e554300b47c574411d6e34d45e207d93bc8874e9a5a07373bf1f0fd3ebbd2a67dd798af8ce5816188f88a8e2443b0c33c15875bfb4835cff5695e7aac386f8f2f760a950d16d9d68b657a5a11717f6094ae14203f3b3478a081d1782e0e6c7f545928f2e0d3210b5cb671a25121c377d33f892771a2ae1c646aa940d6c87f8feeb85238fec3fe90d0e48ba8dd230694f0797b6c095a590ccf06e5b1b8580adb7d9ca28d9ccbd1969871dd86d69f3a85bc484cdf8615137c9d636bbc4c0e31043da3954df5ac8c740be26ba54cf859de6692c3e5d9f6d804127281e6197500b06de7ce86d6898e2389f7db465613497612b3ded89e979e20de84fec9b6655409b54eaf7b0536f7c36a42befd75fd2ce879262682280fd7b19a51bf9217e9373a88d9bf2271834c1483f2f33051232113a4115ca65abfe37bd0784d852cc747f6a8c3e8a634f2e8fe2e07409cb69b6d9aa89e197754f2aca590d6af75d0da63f1b18738e5696e6e09f640bbd1f43bf165845cfd1feb925f3c9d1dde4c0785a464b3178ef2cb0563e5ba768bb18070701efe14613af489aaaf217f60898cd91a8ddfdcd19429bf30e47b30f1f5eb13dfb59aca2958608add54fb603abdb15e5b2d475089c6a7fdfc7ba3a978a82bbe88dda1d0287e2556fae291645d0d8d7a3408a63e7935d4192fc5e89cdda92e46308c322fb1a5f9c520f53f4088b377e73a683f09bbc5871a0900c07bfb2ec46fdc7f67c5783add1dbd8e4b2da37ddcc9079bca75210d99b7680d5bf3f53cd2ff0cb48bdb989d757887906eec614c56411d706fdf09d65e10a2f439e19f30dcb080ed5e1786a23753b244efa231971e8f67bed2dabe9f02c0685e4b190939d9c189346a04241362859dd648123fe5cb2b3ade329f611ca339e7199d9f05db5a192c5264a2ac2bc82b02d563ecaf566066792c94c6e7b3469677989c37736d0337e556a6ab001c6c53d3b75e46001ba8665a89fd361bfd9d3eec71e76afc9c4c6d0b14b085198ae96cfe53e66bd3fae7acc4dcc446b24b961afaddab691ae69d1d27a3bc0dc20fb0d2cd651e956dcbdb68e98ceb6d861fbc30213b99662120b3f085de66b36fb50decee0d1a417afd044216088b16a8ae6ddf638d605035f152458de45d93117f09b70450e436b912496b223f515e8e65dd1938f9c40a1f54554ffe992984efe00dc33e96186faa1ee01b16280ddbe961e45261493c891c1afaa07323ff463f4163e6a32a0b68574c93c7d53c4bb4b1f5a4ffcc6b1f6df0668f18dd6da54eea807a389fbd81a6e6594bb0abf701a4da28fddb1ef36a09a82f686ca4a769ce1a6c071be5e4fb64bc17efaa835a4eb0c734c95a55940feec8c122cf71c423038b4aeb5bf5958bb389ec91318e6c40b0ec08f6ebd1abd25cd93c3f663dfa4ae83d53efb956ae3d8ad150f21cc9b4b7ed4ac763021cb4be498113068d77461acb3c334f56276e12901952489f9dc14f7668479803e9d223c9d38fbe1d97e5c46d318c13ddc4fa85983214645a5ca35ced2293418b4e4b280dab4a353b4adcbaac38713c6e1edaa819c34b1cabe16ff7f0466a88ac870ae95463b49254db72fdd715ebbb91b979c81c84c00c8415be1a6425bd321b611c2a6fab92815d19b08332037840c092a8a76b6fd1a4714b2ecf2f78359666333397b29379a57437e8ae49b887cf4ac91b47fc73f085a1c0e0674dc8aa5ab04d26948d7e576172a52bcf16e3fd2fab75ea3ddd2323320797f8ce2b2fad0c89d66f9d0f18ebed19d8d1b71c3db224872012a22435830af8b521e2c1bdff7fdc73ab380e0448c0e654f563f399f576f00ff280a39dbd9dd8e906dfdf0b1802187e1e75c7845640b01af7aaf3c804d1ab07cee75f879446b575dadf9172a15cf41d2dfc23f651cf9dadf804f5e795688828507c175a5c1ae00ad167a53cfaa78d77e1b1fa9b481e25a2615f4fd15079125202a54c9c8127eec3a5ffa3a8b5edb2f06be5f7eb9fd40c805c0193a3538f2ac9d441a07cfe03ae5112e2d4ef199b97b39a110a2e8e86ad3b5980a8fdada14bed9cf4796ae6abf10159b817a6a0c350ca662d76089ffbea508bc44a6ee3fc897591f94043dfaf45a9c166aaae7933c892698cf54e34c59fc0691d0dc26dfd9405d08fa73fa2b3efc111e92bb206520fd6614f7f36fe2475ce2d665f4f3a9a45ead8f1cafa7d3cce43183f6e7a5fd43b81b0649fe187436162583a421c28bf83740dde29a3d1cff3d12669e9d8ce3f38d9dc187d13aab6455e2c3a9dbd8d778cb838afb3a3936117dc9074e1c4513c32060f37f3b91558680d315f691cb1e8e26e050572d9cf12343b2f98912e1cb790fe97b95be9ce6bc010b06021e1511c765383fc8eb82140f2a1e160ee9c14d59b2c670af1d6ab1652d03b282a221e9bc5a6a8f8b9993ae0b3f207eed00b54b540a595d3e658d8241287235625163cd70e64cbfa2cc761325e2e063e9da8ac039b69da5f9c7555200c7400d65ff7c366cd56288bd4c6efbc3a38c68ab5fb1d5b2ef8158b8a9576b7c4982e83cef9420e187960315ccdd29b891c36b64cc55e78f965c842cffd617312b24add4a31379ba4ebf67c213c0b1f9fe0c6c669545a3ccd529996785393bee6c5b8cc018a988e7c67d39d4f8a30b9a624eb732e67b07e914fd358f1095c3bc1b5207746814d97ac40c28ca5ffea3d65089ec2b2b332b061b8e34e31c95e6ac7c2ed233b21b3dc78f0f5c3a835787094d5ddb10711664dab97dbf1920a12a1bad5cd3002de1a19e0a47e87466a2be2b1eb29f732d80821b8e2f2be7065425046aa3416695748847782d7bd254de8205b4a07cb357d86564e430118ec46909a60b2d87b3faef58de91c5b582b17a93591e07fc57090835c50ad07b47f1aee3ab7a3365dcc104d68a129ca4bf369fc727d78a0caf65054978632a79f3f3b24bb62260c3e135e71626d97c91840ab829391b0fa06a1b886e3fce1a5cde85f4efa5909dd6edb43f61222055fe4a24e71281df422fcf57256e89d036d3722965b0360b67061ab07645288087a20dec51358b2ce319d3580373af6ab8c8d914b8f33665c510d2a3fb80520d668c4c49e45ecf346467b1c5e504d49773478a55501b19c6c4f649818e2b881a15e1598abf9b0a626ff013070fb376236bd6737631e31ab93fcd654784809697df5fe25f1b422203704c4a5094845ca7a1ef566c5240fcc4d31e99a1c41e0b199a7fb297c106d6c827dd737eb77574f3b78d25007a8b2c39187d6f02c9b7dd27c568db22d3bb9c59a9642783f821a043d8c4b835e1146eed3de46f51616529c3dc6458d0477cc36c302787520910624883f5652981abdddcfda127f5ee7a94dd11e5ffb6798f6829575e3c179833285f31d336dca542b421c6118411336273e396ce4307e8950ad6a298630aa6cf681bcd49d57b7a16a168a1e1f64f2a00cb0ba1e6a60a7c74ab95c5aa3d8a0115e8434b48da889ba114bb501cdc8d6b5579052895655cce48b7e31ca7c32516e6b9dc836863043abba69fabdaae3fe7bab2f4665bade4d061faadf3e1f5f423029d20a727769ff5299ea39493865dbe90a3e094eb98c0865f246a8fe3eedad3c8d08f0a72ed2f2e361366f6011208e6d6393b04582820ed0a567f05924ad1a262bbe28b75617e3667f8e260122dffc67e78ed02ed85e6f29a9cb1f1fa865a0bbb6f255a8082cae389a554aefea1d60ac3817f5502a7da4e4aa99ca25407c097756f0de24ecb358866e729531d6d481036385d8d83c11fe8c568955c51be2d70fc6db57f9e76006d5f2c635939bcb74aba6041e5661dfbb3f6316155b50d8cae94836bc9b6226317dcef5ce24b52369d312319b3d3f93522df296a1c9155de39f6cbb3b9d12646e2920f01ab7e30c6721f0fe2b672cf7bc1c3d4fbbf312540d809b44fb3c5f6a13589405db62c3d5242cfb34a390158e9ee794dca244babb830f7f9cf6d450fa14dfcb70a90170cae1026f03a9d6f6516bfaaf913b28b681be82326c236811a38f65129a80b439932ba3df814040e498bed8489ea69065c8384445ac101efd1e81e6648a7a5c6905b883e41d3c33a26289960c1c477168afa6738d4381c142125d31c84860221598090c934420fecd90c65dd95a48453cf14163cabdeb3e14cd516aef1b1ef104ef681ac9d0d25096cbf1eb4c06d188e8e7ac1917445c2767f3438832ea16f7a62dda7d4708fdbc03159412a3fe063cbbca8bd02c41f133452cc2d8d4319e281404197a9c31353cd14cd738e4fee86615375c78755b0ebcac3a74789b5395bb24a8524bde0cdcabd42638d6636acc8e47564332eeae6c3f0122d3ddb32946ab942c499a35b9194af7551cfa8edbfe437e3283d5d97062df0b384a4eea241a3738e8c70a38d18c3cbeed48c40a4ea495be0c086c436717e38b463b66306aba6240dfd4ae12c80d09633cf3ec22fe6b99f2c506b650dede34571ec29673aa7a738f60d79084d15f1f7c9f6c3b88571fe905adf5a564059be00a3e7ea0c3aead761d49002ca9dec74c3515380d5f8d5f21124441df11dee09a4b6e1b1dc9d2a7ba6c9f9cf292794945188caed69db51f639bcefe40dd268f379675ccf88be7c0520e799fc7b589b82365333599bb818ad4dcba8656d0ebad32a0456df189389c94365c9c84214be6e1fa4d6f72aeee0b1d253851e4dba6b72948448c1c1dad5a9c618f9f768c02efdfcf49c30e3a8628ea428ca75f0a1ae05d16922c5f324020ca0709cedc2d381562fa1d012e8e0ba56e01fabc74824d88364d70adf74f48834062f17a6d6883a6114931f62835ad42deb44a8a80595bd2bd8928e5f3eb4911653fe86ccf44311d7a6b4b41665216fdf1d64c571636f33221f41728b8124e1264e7806121bc4f118baa52c7e430f94867b3d9357dc2bff13300c0a67b5df718ae10a67972d2e7921931d8bfb621ed4a7f2434d230ef17c5e9bdfe47ca38cfba74e4d71d478170365ce4b46e80aab95f7e5fd2e45c05a618deb9d0e6047b85012d1376151972c47371cc3846fc0369982fd1e4416589ee19d06d3ea5dc4a1cc316f98700d58824f7d70caf5b78e8bbfd5e0a2cfb61ede058214157d8da553a14add2b41f5a3e112bf26c38ce55b2d8875cbcef489b13dca557195cebda561d7536015e5afeca04918c703efe89ca4fb87ec528f712a1d0d99d7a7b7a8aece62e365f0dbf0a2158764f00013a1e67cfad9e4d30e4f71f6b604038c1cff0bf3d94faa4a94e39b7dc314ca200d2b199205a98f285b633f26faf32b51bdfe3fa7c7d11dd22bf3d23f55d7742475ef3ad473cce047f4fde13b35189b498d88d0eec65cee888063a843672288bd15b2cd8e1a1a5d3f0a8c9ad55cf01ba3b6aefc9b804c714beeb49bddcb69bcd9a2fb3331afc060a28bcf577338876fa0fd55dc0ad1959bd378ef77f9bcb717a0d0b7711d045de1abfc81aeca9886cdc570bfeffde6a21037fd2c32696e22d2ada237996c8d19ebd25d22148237c8708fc274d18c79d848f63e5a35f885fb835772f4faa0519bb7aeb72aa600f24130a9cb19b708eab286912947fa669c2dedeca18a3359c4a2f481f35874334257d7fe2458aee762d79d8820bb58f15a4cf08c274b2b0a36ff63556773faa8090d7dafe7b93eca5a3255cebad94e2c2129f80d550ce0119ef922a2b868c3cca4758b266078180c625a0ad3011e18353cbc5d5bf94ddabce1e88af49fadda22142daa04066f4113ea2a1d580e55530c7a3a0c2e556d74cc457e1cd559bd568a6be5bb61ab1e040ededa3508c771c075bfaed2433314b6c7fb5aafa4200caaf04a87c78ce730b1cb76b65430fbe57e41f2452866edadb993f417413ece547b106c60573b4d192a748006abf9c669b8b11a5d7344506bbdb27cbd46afebc8a11e4dd5f58899964b3da5b7a17de2170a2f87268eb91d4366db71ce4e489400702398d18b2a657c501e8601f44b883d47aa1a3540aa0e629cd2b81c123c8fee333cf7e632171e7cdbd119429580928b5ad31aed15f6d87861ca6d90bc4ec9d799aa293952f1e7fe741ac0e2b05f0707a85a6d675802c32d3cc2d9468a9104fd9fdcbbda9ae33b3522eae62fb2fcf1f7b38c671beaf8928a89eeae5005b8a51445d3b96bda96279a3cffb3b36957f3e84f30d6f8c5874b835f02f9a027045a1b1216c2993e59fc441d54850b97d614a57b466fda2156f47b95b33a11e0cebea4b207d1211f19beee8570a5c2983405726f4aa2e284aa8370ca6884a0a6ceda8f16c56bfc1c5fcc4273033806d643bec1d2247352c4a5d4116fdbcc0fe81c8dcb5fcc6a352f8fabae29cb4512eea21b1d6ed7e361c134ae95586abec37a209305e18c43415794472d039fd505edbfa9ee26121b34d9427535c3d6560773ff068e69e34c080e44688fe45f04cae01a44a47ceb53778877acd4e22c64a83b7b906fc17f298af6343574a3a0f6a163ebe0cfd826b5c37d9341a67b811bea42fea898296e999de1cce24e9afcf2351ad573e705a561c8da1eba573d430c527812465106b86b6f0339b09e19657a35edc057e0114c2325baca39555bb6adcdd3563d36fa6d029eb5abbb88fbc1934000d62f5857ea67cec9176d18290b3639c94a4d8206ce9d87af2a92e23a20c743f8a19e3c47286536a5f92f88314ea89bbbd5b82d314cfa86abace3a20a3751ae50c0442fb9d437666cf557977b39e019ad73815f02093da2d1255c8dd6b82d50230f2415b1cb15b54128bde8ee33d89184b1a3611fb6bfc5ac97ac506c02acc69f5256b88e3eeb90c2703c18fd3b7f11b103944868a4ca12a80b88a1b9114c7315aa7b11afdd7a44bc313b35369ffd70c0ae20acf95ebdbfd9765adef6474e034fbe6711f910de530ccb9e94790fab658744ea926f5646dd3b3b93b2a0c24e093c9604c97c06810bf5e625deed7bd50f05e6d0ff394deb2d4c84d7ac8a8691630cf301af74fdd7b61689c9a5d622dafca3ab0b65548dba0c9be7e5d9804299d3203ccc0a721175662cf3481be225d255d762c4ea06b2586a0a05323be377964852e4f7f84805c19722b7fbecd6b4acc292aa4e9d9567be3eb5cc9a4329fd85457e0156c5e3a7f0a250ecde55ecec8ee2dd547e33ca067606116a62f3f23791e9c728b3d7b8ae6a973db55a8d547bcb96f294308b72eefc85c0436fc04ce5e028b1e682512d4fbd2383211d4acc0fa4e78e866d86c1cff0a5ae3939cf6b14aff2021cc79d12c84c5b5e4456ff1da6e0ad5cf81993369c45d7df55e155c20ac5198efea2358b7b07b0d81cf7cc510566297953abf157d57180b9300aad22f1223f77b3850bccdef7ec9695cb3de22b44cd4f47cb0d27a6540ee4ae3c8c792d79a85894aa805fcc8e4557e26b805d7557d24cacb435c62c18434933deeffbd023f4c11e072b0ca4d3c8053e83b9906fd2024400a645a03072b900952c6115f94b99cb6c0522d59e9fb00fc10af0bfd8ff3f60b8e2fa6bfb972d7434752e922bea3884b660162c8986eec607820602666b0bfb98c8bcf1d89138530f95448ccbbed6765a24e2675d636402a1640b20d0ce528093696982ba5c7360766d73f9a48d75301b2e2c702c23c5c377d6dafab1820de590d9a77b04c462dc99826b8feea31ad3871bc85354f4485a71d301805ee4e132854251730ffadd0513347eda490d39705a129149d857763728f7544197fdefa9897b0d6bcfc2029f7f97cefc734b5781771031e0f1be8829067789a2075dc4e17b3cf489afd4167ba022f20d98a367cb7bf4dbff1f26ad1b359401a1b4ee7ccffd940b2af4b525b086a23b976e76412bdc1f307564c372590a842d5ae4e35b45d7a4d90caa7edfc09afc745b2e1f06c9204417ce2a862b7b326c87056615b4cb70ad90fb1a4c3e38419fd24a766b30249fce1958db6a9a2ef4964a6df3cc65dea142a93046239cf4bcbaa096139400fbe8fab4028c6f5665013f7c3396c09b41810f233f4d091233f5f297d12190913cf54255cb898b568a6cd6929941141a2a4db5838bfec1563dd3776599b07024f9e6ed640a38d6f6f9ee494cfcc7ec47d3dedd8a20791b9bb63dffe505f6a8c4ce73fa133a87bea296a5683bd2efd501dfc8389a3f4d7e4787e1bbf636cffab5463630ef1aabee9a4f8819691805ea55f8f720c21252a5d8c89965e6af1e02df73d9c432c4e44c0d5be53e3fd623140a67852b538726ac40e6140f5920411778899b087095ea1ed1410138046ffb293555832a8b681e7c7b8c1c81fdab947259e2360a09f0a7a8f9e065260c705d88b564a119e9e28fde36739d5179589fd8994b9e80b7cf2c6b012fcc1ca6cfc06b49652b9b5a69d8f949fa7d495eb06ec4c081dcb131ffdc067f591ee6a37dd5da386d9ca37b87bcae5054e925c57e67e305fb8c1fa7f057e422e4a217fbf049d979c380b7d7494cd9be370ea702a54ef0740731b14825488b98aafefa8ac701150d0564836ad923193a787422a079b036c1597ec6687ebfa3e390e36753c4e184b1f55632de86c8e8f64fda67a651aada08dc3c79bdd9eec074fbc80c6c2d815820c4b5437e0a76d684f81b007108dfe6a1df3f057490034dd44f225eb2188f9a01a1339770469526843e792efa99f344c7a8f3cd58419ce177533924e558fa97f5327c142f758c1bc3e98f75f21d7cab320960c7abbf6716ca0468963eaaaef54c48d88f010567209e292857642c7d63fcecc1d710d011b516cbe5d9b833fc1b3fed43399d8f6158cf5fb383d26992310080617c511299496df1161fc55c8fce497205f5c8edc58c1e13eecf6bde1c78594750c504de14d47e6440e30a995f698a745b20aa6d50e2734beb45a4cc82f86fd1469e3c0e808fcd020b1af5ddb6e3d4cf7ab2e45d0af8a2114f5cee97cd57d1318f06859e51f9ed3fc8b0c640fcb7d2603f64dc79c904efee2462f00ff21ec6971c8617dce79fe8616be2e4198ac94db9d54e53a808133c4359e2ad1333037d666c41485276fbf657a6ccc90cb3e1f94bf8211e096bc7f927048d1ef4c6ce3f53557f13d0a2ccf517cef487e3cd6137e908d0fb1064ecf2ad1a87cc27e4910a5c8ea28670159170dc006a24c5abb564be580bfd6016075737fd4d4060788488979874436b31416c2d1550fcf5e3a29aecb761c2f991419f52d705a4a83c54988e8ff88d35b88cb7c4eab7ef38c5258e3265c2dce5ed723604a7185729751644edf1250dc17a1c6aa9cd42533bf9ea1245cfc497ad850aa05bea43b36e48079ca453519e0feb722a23400f92346513e350f26b02dc265b45b3e1d1ca14df86bae26f6f8e40d33f71a79f0f2e7165de5d9eefa4c9720ec2b7c2debde9291aa0af2c32e3ae1e16811b01f81c2b94926df5a91bc4e98230045a50ac0d23e2e821c52bb7078434251d06429419f66e853f60561a88bcad822e6b9725f54ac98f137cb3a64376c7bcca0196b23bdd10c9d2aab98b40af4ad8c71bfb0fff537c3e37e224508ff2f898be817a687156f4fab0b2250400398c35d5460defbee10f4c62c5d0607515511e3248c301e02ca856c8bc2980879660f96eb6a947956baebab214738905f1b2e13a2062e6874ffd06de8e9a9f431c74effa14f2be49d8c5bb33af0966b4ab208ce76fa57d66a3ffc190a771d8b2353c972a5a68b5fba33ac43552b6535cbbe43075f4156c8a2512bf549533c229e5be32435a98e946e2d14c14f0f01f7a5d83556a896a7ee6c0fd92f2ee45a1d6c6080e055b6ee78304efec13777888de70cf474a1191ad1f7e4252b0b9845c9d399355caccfc7f4383fc0f91a828d90f75b2ca6e5cfd37b5a5576c8da60bda9ea724c135919a88765faa0539d13dbaac73ad00b6c1feb942775619ed932044af107954cf461304fb6502ff88b524997f6128f387a568f5c576fef6ca38679e27ead0839349244115d63e8362229a23391be20867824c159e5ff276b99da46651c6a3c545a40cc2b842c2e8e9ac7955b381060fa2d1d9bb594f9f047562e1cc48e78a3704020038c2ef68d4bf321bf7dd64c35c5183a2a87ecc13cf8d489fc8078c6a119c18d590fd4e1567e836cb81cbcaa50a16f55d691a3d288acb8721adc2a776e354205e5efa76080361aa43faeeed8b4a1d7b05a386138ac87d577c4307760c6105caa601ec9bbe049e7096b8ab1771136016f4ea6ef15f6f0b2aa6153118e6e3ef2c2bdabf68eb3195a9deddcd499ed6f2e193d72b91f9c9b411e7e029cbe86f4963844a4c448701278a76bca224aa2d21b1b4f3ab320799d686ee7bcc8e4abd1bc1843feb7adf0dfe932df3b57042538e44582fd9f751b2f5e37d98e0ca5ea330e16517e2255e78f238f0c026b38a2943f4a7233f59023eff99a39a84bdc818b3c081db3112aa61c99cf06439fcce7a2eb45b1e48177f2c24fbbe5cd85187553bd68ce6a26ee341ae649c463a2989fc3242fb0456242a8aeeb440ef8fd1def9935d3f543b4b3b77f2c1ac3df5be85999d46a3796b7a0723ef8e2a3af8f5f7442c88c0d3c1b6125c7b3a0bdc068fd672b83396f4712532b5b72c7d3fce48ae56b16f9895de7334eddfefe6ea8168c8699264578aa7aaf46a44e2794f807fc51a484257aefe43a329c249c679eb73d58aaa41a94a98a1f12a91dbb40535b499ad4423db8c801d9a7c933a4f1137d2db0be38a7dd4d19a0429b4d4147625db7e20da813aaa8864752d4d08605d0a46cacf3f7c291138f45d354a1f9e386b9bfd5a2ae9e91b7ed10e8c808744eb5a680a07d5ca2e74e18b133cbd52aeeff1392b636c0786d905d94c9398ae73e943ee1cf851863792391a0c649b89bb478ac9243ac8c5f69769a87e7121218357ba17bf81470853cd0345eb00d211aeae66bd4681e5ab4de97116ff993df88af36ea2fadd4006d0a52d04ef51c5ff9a18932a5c24c17ffe4807c2904eb6f7991f3cc5180b12de3b89e7664e872a38b5c1b4302f0257d69721f7d65302997727735ee2bfea75b93c2fa7aabe9dbe2ac2389781eb559b7400cfb7c25f18b49be1b93cd797746cc8c7f2bc4c1741a7737b7c08be0ed1c5f7607820c427a540deecaea10ec9bad29c4ed8761567f2f818dc9670f6250890e23598ef9e786a71a53e80021a7e419c791092aa9b127e0af144c8eef73ff4276fff6835614702fa48582ba74c5ce3f3031b6c20c2bb3d296b6cbad3316ed4daae9c7aab51c937aa0def7659cd1e504e14336d240b1dcdc335edd8779010d3d4e6224a6ee270850b100abc31a4c9e5fe64c34474846735d997f9ab51f1f57256412e72bdeb1a874734bc7c05d2a0068b8345bc6747f48bbf58c2dfa5e0f9afec4420d5db209669a96671516b55521e3d4c67e1c72056f6359816eaaa1a21d5cb461e76180d3ef739ac1df3cf92970d38033549d0116c9e0ad598fbb406015a79480d92b1287aa26f305e76bb1f6cdd79e90ba702005e7e64995d84a6e04e3447cd5ab7e15eff594a4a9668eeb827963b7539310f2b6356a6fbb75b07dfc28534f3c6ba317adc33a19632967a584c91827da2a79ee237d1fcad5516fe9eaace30cb1d96603b37d9616adad519a2ab7d0e6e430ce81d9aefcb5ee03946f250ae231d76e4529c83c5836485a538594381988154176817b0495ae99cb545d39340d6f74e8e6330a4fd138b5c26e6b566b34d077fbee983e6e6ac96a9d04ab62c9ae72f36a4bcd670e5edabefb6a4efa8ee2d2f4acdb166c518e867a3fabd91535fa31e0314c232207c492ebff80bc7ccf808ddd871051e1962b94e775d49b78a23df170d051ec556ebeca0e24a10dccdf46ca666c9c2c9109d45a513f6833e5be4e45f601620769e832a1b89b42c34f64ad82274113350005ab495f219e166b4cdd6b6f0ae7549f9fc84ec10def6b5f2d470f9cdb9a14c873c7e238855dde4d8495a3f7a6d2ef8aaadb93c438fc9fc6419732a6787c2c171e67790b249db881493ca0528efe8093c20662a0a7252947b9ad7309c53c842e48cd6c87839399312b2fd26481ec00744abd1ff875f82a1667954cec757c43e3a0e66b6382ca2e3e37f2fbb9eb47debda4af79b424432e5a54dc675c71237120800cf7d7f46727b89cb57bfe13cb2953daf3b27e7efb45b20ac187c88698c0627581e621513dbd671efdc185dc691aec902cca468c4c20adaeceb886b707cc3a268135026c708a4555d3a9c613e4f694512897bf99beba50eaf1204d0ff938cf7cfdb23e45cf9f02c332cad85421342a1fb339df49ab9c95a75013b90cbaea5b26638220e420807fb48e63fc77f861e35c94cf63bb6fefe69a6e10cb995b94aa61ff87f343051d53f4a53f13934452c704f36c48bd0e88a69d6801669446b29e1de1f58a503632494d09b5238a69c02f2e9abf531335faa8d8504cd3e6a831ad674f2fb9f23b64e0dcff02d62faaa14ee4d79a8bcad118b6bef5563e303dd2612a2f22d92ce557ca35b365faf5f130a44cf0e6b99db4dc0bd79dac36fd2e9dd73bf206484718906d52cd95022ef4ba8c1d5f14ef69e485d957824231901da241bce930e70ccc3f6557f2e183d9c229b0646140feb29ff0c5901246063a7f8964c4153a9a173c660026c0b3b80a3f518f9d81adfe37398366254a777142e7711a64cc5ecc2caa7bc0be3d1dffd40408fe172010ca9742cec917a4509260f0fbd2f0d14ee8a93eaddd73e4fe5acdb42aa4ae31748105b7f4f0a274256ec3cd5e0ba4bc12e100da26c1ebac71ef1abdc17ccdae2e070d18364ee5b3ee6daac4dddc89bde5ab44e9318af3c963881704a457c86c628167ae804c5b83b5da8d10fd6fbf280dbfc58f008b21fbc11480161b57815b1ddddf60c6c829f86966d7f362820157c89bbeb7d4cb47a11a2435bb3f765f61f84847d3ea9138f47ba62af767e58aba6c4010dcd284b6fe626f8b0e00fd944f71b579bf85ec1c18bb903d99f7fe4241a3b20e9d38a54e4d6a4e2c87020db6a8eb5d72ba6012d417da0241f188483c5e857c5d72df51649491408686e3199f33623970d78baf4dfc703bd905a5cf82540929dc0bec5e71689268cd569d6aab94588a2adb2065c61b8160a6daa6b53a9dc6cca2334bd797fe790a8cb8449a3b67895215f15047f2d24cf95c761fb10e839c790e43257af43d8112c361a6198c9122d8b514255ef748cc716e638e8bee4c2ec9dd7cc13bc1b8158c9a10bcacdbcc1e2807a16d2838c82799416deda11d92795a5dde6abf47b73a2da21362e8e19b7091eeb7b914ee756725fb9be4669191044da439c8e2a3be64c9a16930bb95294025c073d3079472f72dd6b059dd9fa643c7e0aac132563d15daf9dadce443ca723cd3142ada20adb6ae0ca57422fe34de70b4ba7d71a647c70094ae1576f51810f1269dc7d911f3050750ed20e10ea66cf7a0bf3816d68d317b63dc565926ebdda3168ceb454507b47cd18389dd8051228b8450b9cd22f67cb375dfd5c9cb94b9761eac28d3a4c9b2b7dafa0b6b3d6b976326daecf39884d2b1928942d5aa36cad0af24f02ca0b93842f619a5f4a6509038d3a9c71bb67a8ea36d7ac5e1fe10a5dc1542c86b775d510ea8c7e77727cf30c609ffdb8bdbd8795c651c57247014e20a6aa509a25558e6eeb54125040f3e834f37f63bbf90aba6d1d448442b5a2b6c8d98cee1553b39fa1d00e68b42c2859c17845e22e595ceee9df3f5775462f50ddc743286fcb84c25b4e90da8ea386eefe9afcc8e60c60fa07e4690eb545eef5831de4ef78679fb633551bee049ccce9290fe7c7946cbdb93d59fe171b28a410a0df46e6fd19c7fed03192e40c25579575f34d683e29ddecb2ab0a7ea4911ae7db25a119d33e2fa18e73f65164a9dfa8baaa29f1232da41b0a6263ccfcadf5994a78f2215f4a2374e8d8976caea178a354b443c8f69e172379861f0f238ce69b2384e7dfdd19c9e9e04b7157d41f6c2561eea7c256fcc9a92f1aefe436a15ae1bf40363cc7b8c2bea424f8cf5ff8200968477dbb35c2e3275c71c33548c15d6042d55de1d16986a639ef74eb06bd17736e42e31cc00a75ab1d6d9ad729e6ce6237bb1410cbb89c8dc545cb5ccdebb68e0250e3a935f45e8adfa25612af45ceb6739f8332df6d9bf8805a9960546320026363b77052dba442eb6d22c0bb48321c5072dfd50488aacbd3491ccd6a4d8c50b878042a8565a96ffb053b9bd5bdf0eb0463c0566a6cf50ddcae8de6f8ef5ae1c8dd924f679f1d461325f7484382646f79fcfb66ef88c54b792cc591aaeb030bb410fc2e56764b66eab1e5176f06cce287d32384c9b9d499dbe5a904841a1eb71a264ebc2a9239d532cef2df2f81c69958e46ac3ce0effee560fbcd9798accaff2e53ab31f86df2eeecb101041e3b30514688ed4f8a6f2ccdf23838af9a34afbc6d575c9bc3629644c5ac32b701fe46465b23f5c154c0c173cf28e30a409604bd67cd1c76ace44f48b4fab89b94b4968b4a17601e69c86144b763da7018f8d4cb28dd31cf0b4c66b05c8cee159ffcd1b6d16bc44cea0ad5264f8e2004c46839ec43772b4169e9cedd84b82e6b3e4938ce7375c8296cd27cbc9e71e7a7784d3f944c61db060758986a945ca7df60b9d3d3f7292e1d772b115792a382ab7f209d3c5d52712c55a07d9a1c8dfda3493e2ba1e984443108af337a79bfd685b57fd031921f4ef87b2acbbc4ed6a7c31012a3ef18fc708c0f1da17f882e47bd0e8b7fcc8df85f85d380ff897f0c20bf227e05f71604c3d1f2c60b65588064f70f933758f2b319316ce2d1aaaaac4effbdf1ed00bba4c3d909cae8e16353dd915017e3f8ec2b57ef89a588e1edccd1d9766810ada31df3681f1abaa28ccd7314001591d0a7aac0ce206ac9c1099d0170b4209767ab9aa605f75b9fee94a4f94160a56780d3667ff85c1c4d7ee676d44c32a210c078f837d3c58f370ba6b6948c47ecdbe02810553e1cc721170d7f04488114a8e4f098b964b18b1d6acc32ce379c568976dc6b68da7136641e2cd518df83e5a182be47a0cd5846890a77512e81e02842ba2e01595c246a9b5c965434e7f1bf56b2d22e15d34af1df80fb9c66bea25d33c4dfd56bdf2dd81fd9c0e4cb34d7d12662dfdae1048de33cc510ca4c7e08d4354bb43ae38d3d7f382ec559a69813631fe9dc4f28b118543d41522028604ccea632f6a7d32535c9d79be3e4c75bd9bb4c07842d591a59e49894c27213833dc06112f1a907acad3d22fffc142b36315bf29ed6e31913b0fa502f44a87525ba6db53d78ddc4b96e0429b016676996777d23df95f70c28f2ec802f1fd4d24a3b596ecf5ffc83daf837824adb66b5f2dbf2756dc856aecbe7fa18e880de77044882502a00faed3efd07a9901a5fc8c5df45c9593bbdb58ccb180e15f7bcc247ff739a2eb72fb0a2e4ab4fed449aa5ccdc315c4cfd28b13bd189c808f73a091392a36b1e6699f9a247250d91f03255147d69aa6be05ec9089b4adb0d5a526000c71e28ccf221b3eb75d210ce5774f86841adccecfd7ee20ec34b4ecfdc13c64b768a3337c3ffc491f1d0c51ed8cad9c1fd31551e2da98a75567c05d99b1f70c00f719d2c4821fba8f12f903775445a585857e20290b1684f54a40e299ead40f711e198da71a95aa4dff20d9f55a1de314eaee13d0ae51c9f310fe0594a26a4ce945bd986337cfa57dce3858b40f41d07ae4f3d2ac1ddc5785706d224ee4a590ac0122fc108dbb08338366e2f26d3739d9c82ed6fa1679b0aa21b5ddb39eee5975478fc7c6c1128a6fbf83432981718d90fb3a852d8745173e243e7fcbe3cba0a201c5f7561312c786059b4cd4d2f5e0954b82b415a2235b15dc1293e779544818bda2521ecdf43d854b5fceb9ffc5d32896bd4e15ecc35a14ade792e3ff2774a0d5bee449531e61efb7d5eac0c47a861238e88f6de324cf956777e2657e08651b6de03e3eb96dfcb2ceadde9b5bbe86d690023f71baef16523561c53e208d58ba65ed9e1fed8b73df0787ab8e27d97dbf647e12e18739976c55ba37e6849616393fa3843e3252bac0744f4517b471c033b668b7e1ae85dd1437b86b1575c2a5e46b7822f342d08ef6222f995911905fffafe4fa22e09543a1c8428e37d1150111e8d94698d4c05b3aa9ae314d37c325bccce8effa3dc3657bfbc87ba9016f3c48bc635f910cc5e9eb8a5759719521bf89c710b8c8bf75cbc114dd2cda64f150c94ae1ffbe22a508f1b413939dd328a172a7942553f122abceb782de7bdbffcf9528ffd8eac7bba8e95d17076bd6176128ad3da8bd8ac6ea69aaa39943401db8c7200fecc1bd189499e55c101fb4adac9a2816dbcb7c367a15e4d1dad504ebb5bb785cf8560baabe3e06700d1fd94a97eaf9d1d0cfd93500aeb77208fb819f993767d2251b0cfa8bfb911d093cdc0485fc0b1bae41370b857ea66237efa36c1d8195f0a18c54e3366bc6df2b1995a28c33a5e677924a40ecc79c779ff04935fa59d49d8d95bc73c11301a7f0234ba65bf5250fef19e6a16e3a7d1f407ab7c5b6913e248e3b4d7647e8f7b64a8945393799688afd8b5f03449f9322686277da4b322821f1115f9d29409cfdee352970a6065f18f9ae06acb57e8c8252995c0516883b68800465ccd1aff0ccf332d636939724515895a390f86612b6443740eb62a840dde4016d69e2f889b1bd587021dcf4546b8cfa21c12fa430754502952cadb8635a5b3d5db9d7eefd08489e6be1cd1b942373efb79ec69e448f4f27bb3304b7f6be448d98f662832469792740036737fed329dedaf3bc98d16853a173f52ff7939262ff9dd992f85f9a5f880fe8b2e9a831f80c27a66d3f99af1990d1f59471185c65f15a8b3cecd40f688fbff2c04e242c42c0a69595fda9fb845516309a0f9ed62298c02ca7c268c8771fc2bdf978130c33d1860ad8d54f85d9b3b5abad2767c88fbc480478f5ef820043dea867c782fe31a82306a4e80bbaecc0779f21be29ff83fa591f25677b18ef59bd3c8151b67163fa43ad76feb4e624856d467152b7d1f7f1eecd34e282539619932c98491f976891e230c641441e240ab286715538d95669f0bce735d0580f4de132b30550ab4835297332ff1f34241ef72e333ee8bc6899ebcf723b31a83e8b2e6b099b814a99de721b27c6b17b7f7ee18b02ba7b517de12b90bf5fde642dc85ad205e5c9219db490fa3adddf3073cd8a1a7dcbb562705fb547fc9c217433469be4d6ebaf1ca5526625dcf9984dcdfc1fec0497ca9ff70d83a120cbcc8186093136aca9ddc7643f2d7f2cc6362d9052063558ccf04574f2f38e9615a968e49dd2b014ba5ce4fe464fddadaf47de39354ad185cae5a37f2081a86533f80483c477b3e4dc6fb11dcf7523c1078aa0fd41a5f8679a706a71d72992e65c19b11c8726b616ac686dafc6a81855d10f8087f1826c57e5cec2c3bfd5794d76a963d7b23ec80bcc2073f78409e489451def73956f4425901e649f53feccfd17b08c8d5c6930095a9625fc041808a00c4363409c0a88bf4e182412650fe000664971b81e94f59f3bfedeb1ff723f82764074c58a5471c6dda15cc564d7425fa4de8aaabbca5177d1ce859353220b49f231d29ff3bc33478dc138c42d8aef9fe9162c562988231322b40c00a852aae8d65765f1b1854ea8b6dc260f996d5f3863dc251e8759c159b2baa1679c6abb656827deeabba61fcb82836f03db033acff967a584d726216b8b106d1e29264c02e4813ff9c01fb2d1639a102b353a4448890e8870d517d128c24191117c62102bd78696858b0de2513e3f18842300fa1df57551c03f7df7cb6408ee85b0781eac945ad05ffef131707fac068eafcf482adcac8d5cdf1672633945265333bc517f9d8812626cc12b4d5699067c4f10bdad9fbabe5b2ea0d6b000439626c0ebbc5e5ce4aa453b57c2e93ae59cfaf4becdbfdb03bfe0e36a6a41e47f155756ead6394b846667aff6445a6596ca67ccdccb41ae5caedae4b3105166a4e9ab4106a44109a795e686329a405919c94d9394fe3a948d56fc642bc3af24bdde5dee9559a386c67496e7bda13d48ec1cf8edb5c91cbbce11dc85ad17e6d1ecbf1e1b59131349c9eba884a3441cd2084a9c1ff127ccfd634aa147678f3d6ec1b86fe732e9abf8a1240f9b12619ab277d981576bf3c956353ce529ac76f1a0f31661ae671b48d0b46a68dfbedfde918a4d68016ed0449e054974471031e32b89fd727162bd13ee745a7ca52bb56187f0def9337801fd20106fa19ca4f8d346957bdbdcd16d8065b738ece47ed3b2c77f9d4c436e3c8e02bdbd89316f018247b1881a01b5426f7981e9b074ed8413033325e07f54230e9f9b2e5c5ec17c79e9a3a4509d3e8160542f12bc93f1fa4f679ba3a9e59dbb381ba6809e9864b019043c318ee0b566752f128fd61d79b536822ccc398cb53aa8af1363b7b4150c80f4dcc276ba03ceaf0b3a1039535d7a8739c263ce3b82b4b3ed4e9f1dc21ad45ad5d3a22b2af113a5788b0ae3d5d12bd9468ad5b28113788c7cee198b74abbdc7c70c352921de35d00e5cd9a77b8deab6f9c564004cc2aea46fee5b2bb88461d64554520c1112c923c3210ffd892463ffb61691e326139c23cb6c694b0c8bd3948306cf38775b9a70d4c765f2e9b85c848760c4a6f4dbf4228fccfe1629df3e2f5f9a8ba61789eaa0503024ead6751270cab2474c792ff50cb0c0c34babc6eabd3fb77865f0e39c3829da244c3eeb141a5678334df35f021ebd3559a21804a54b255f7f7e06e46834f52efe17c0c6a6e9223653b9bbf16f495763bd67967a7a5587ccd7b4a930711a3ceb1120102f093e1ed3fc433bd7478eec9b083ff92abb4bab75f8be8bd75e2b8b140f2c2f3f5fd6be6e1235d4084bc3dd99194ea4913b926a2586e1ced86fabb12aa6bdc68822b67c4df8baf5e44a79463f5c90f7551d413ac7e36446c82da8df8ade57acd98171b51535de1af555b965a4f157825406ca999daef8c44659905e0888366f171be5ceae9a4b8d026101d65630bb50a61fb87002e3f03c556d39f3a8ec4738a44e1c100439ad1e430344b5e07d3b4faad78d6cdb9e8c3022d633cec928c1eaf9d4a619a9e3c790e44ea42d4b539fb70f9b819c154f92251011873cd27dfa45c491559d2db66e4f8e3332e8af0d7700adf6be5edd18bfdcfd4d83c2ba4d7b6f1cab74254c7f4fc4fb45a7af6726f6c0a4496083bb7642fda44e82a4600a838b365d632e2b9d3d744f56a29c334ed35d667ac71e543de52954f3a2ad27fa8a24ab51de1d28618a80c10d1e44f3cb9057984ada8fcc6de8667280edd792cc24242d6a71a8eba74ac61336c0c2d413e6e1fffe267e245d3f37c1c3ee95720be018a1eaeaf1329a5250000a855a51ed3309c28258ed072e82d4387f7357ca04356f76589a373ccb3dd29456fae2f1670bae68dc75f51f3fb5feed6ccf76e078fbec2de428453f3262922cd0900fce1d9e797d88ecdc5f6ff5ff5a05396a47f2b71067e37756dbf7794b439371e6d972c3c6c3f5243df1ccb6a93c6c0ea0c8e39f443f48fa60ff469a1acf018a79959f067c8862a5227ac8e4a47a93413866c0cf2de358fa99b141f115c18bdd8ccdb21da3291506479186d18556fa91a663428f19e93f94f05d3fe3817a45c6902b4d817d27f0d8b85d9ea9e4358b501f6d8ea8c3163168b58cecec9b8709e3f707d75c2f8625e614d9133a05c219348f1f1696ba5370e0d31a193411c717180fcca8187967a2df0a9826de8307a22f70a564f74efa9a745424015faa3ea4fc8c0e9abb0c106437bc65795211289d2436385bebb68b1a4b1d1a82067b3c1fd8d8b7388ad33a84f20a3389cd3997fa86616e48c2b4a8c425a36dfe0a035d6139d5fb103bccc50b23b9231c2d81f3fd4d9b0c4563437389ed0603de9c71670ea4ef4cdacc70dc4db98bde966d3450d8545b0423bb7b37affe65111cb29c7bbb4a834d844b39ba7718e9fa9cadf6d58f0980ded48e8a5794ce89d8b504ebe56dfcdbd953b83c223934887b179d13f8cbc5ead40e520dae32714effdb63ef3eb03466225044bef13e1ad19e05bc925f6412feff2b87882a97bb48569826964e0036eaa716b5235c72b7ecca8a2d6ceb9533f220ceb82b1447237af5dc47e910f1c0c50735aa3c950e8836c5a0fa2aed5826e0bd2b4bcdf9120575426f08100980367c143ae138668cff399b54bd87d370de4648298116938627e6c4a9617bab76770a1ff0fea6adb476047d34e25b4e0ea3d57ddc4580ea3aa48875aa1c6ccb8568b4679f66f178c7ef83d5b0818131bab9107806fd67288cc30440fee7dc8ed6b373bbb3b1e53034e25960acc321ebd1303070f309b9e03fa40dbb7583041bece71bf5af094889057f8428a37c29b7eb480e030a6127e3c7fdc94f899c252c356ed449a563a45faef4b86958cd1155de04a9058f43161a0f9894ed98cd718f4665bf05b2f30bbbec1e47870b9b85c10bf450660d97d7daa0dfbf923b84033e251df1fe4c24940e4466084ae894d038f68bba7f2728f693cdd6c1c1335fa4906596edf6b4fd0d0597c3dea48b9b6e1a23c1fccc7f2d5a186c0e250504da2841c994e7283c72e87e770d73d05e43c918de89742add012068103abc2426a4e0f91751fd0440a1128af91bbe52b8b3af1bccc91c86143755bf3a913b5ad2f789cfc54d62256ff1d993cd65f9e8eab79a78fb45f943f0a49c90d7c33fe9edb7ee1b0c0e248bc403765262edff7de9de2972912fccfb6d1e35c91dd3186ad45e21655393d547d3c14383ed20cd4543b5d6e5830511498bcdb83883186cc8717ee7992527c0d13f82167515be1eda4802a1b880c0bf52edc98948fcc3d60d21805cad0e72b6daddfcb6679c0fe4d4729ca50c7cad9762ca10245adb7756956a81dcf027c8a23454bb54ffc9ecad30dfdb405dcf53790618f6134bbc5db2080bc49d1821681127ea3f662bd6d68b40acad1f667fd3baf49be8c615ebd38532d05561dff2e22d05950247f3d7eaff7c64490201da4b83565f021af8f99bbe3cb08a585767a3c28badbc0ad2bed12f7c84802480250f4f5634bd666b422fc46c8566cdc44ab9698b3f1be9785e453e56a332174c76e8bb81ffbe4b4466271054c29637e3f7639d4af28e30a48d1c0440153aa6f2a60a6bb664940270eb3663f4c10c3c5e16ec54160bb2879af6eb66b51a4a2496b98872f96f47034e86f5025e87f3495898c327b809ec77908c9110758589fd5d0ec9ab804cffeb42083bf7c175ce2d1c36a7fcf689c1d45109a44965fdc652a3d3c9bef3cf1d4625a58191ea9db78e3a896c6c27060873be5a0c7ec665e5323d2e517e00709535e07f3a779915c4538497be888219c295c87d7b8b2d70741dfa5bf9f8d478fa4ad712b8c0e890306c229bf788d38b0c5d0e8a78de28c684741877f1b69a1ee85b653549af3fa403974d024e6f07983f8608e82e34c29ccd870d2c76dddf8e4d6c600cb2f524395e6ca6040e4035371adfabf78a315be732758554a43c6b9a9388d1d349ee83d2eeb3e4894f6cd4c7a223149bcdf33c1edb12844b319f5f2a27d9fe866df872438ced4fae69c884e2096bbc9260cf253061dd33d4ee8ae40b3dff51249e394bdfb018fbfe30823b0989af1952a7572d909388f60978129876ac969281def89da2340f98c5875c01c3e155227cf2226dd5325586e2ab9157da37d3d8805347426c4609ff5a22f37456c24001d9ba7564964266e01c2951006581095edbdf87644fba493241e2492622f8141cc8db59eedf477d2d0385b305db6f2f887cd70463e4aefe9e9a3468f887175ff608ab56d55c9ffce04bf047d0fc1cbd3a3b3a1ac42fbcc3ad7728021c88f2a498ed60787ee324b6a9bb5db74c60376f6e2d08406b43185246c0be5ef2181e7d0ce8e06847f8382f7dce13386e226c215050febc6867d9bc752d6cfd448f9d06b35325d4eeee78288e0eaf996e56b0d48408985f1ef0b5549aca5345d3431e193cda7caa7566545742053ad7fad5cd28b29b7dca163cfd8536d63dd4e833f18e78b5feda170f216d61e60938c7e37193f2ddced85e3387493ca7e871dae2a59aace704b2347e7ea0d1aa26cfedde114a797bd9c5c9d5c6738b5ead376091f03406ed8626b3e3d3e3cd10dbb8a3c6c486c2de1257ed99b5c7967bfc4b5987219b55d3830876a5997cb58dab2d87070481a54d64353392e590e01d1136fb060b835dbba44da355babe4fe94440502d58aa0ca4bc8d9452485b533cd05e968a7a79530fb359e572997f73f1d4b2242bfbed4f1f3ff224ebda2afffb17d9fe07017c90316ed5c1ab76736cb7accb238bed5eda47956d3952a6e4080affcbf4e32f76c37431c75f23b621a97bf68305d783e07a20756a7d3196832c8c6eaabe56ae13b5b9bec9d64571adc056886872166d0a282244ceaffa0be52ceb7fc7b856c4a9aaceac75a3c5b69fd19eb87984c638f2444e593ff726521f26910cc793e987b0da7b3fc891236c7beba6c5ab82421bd5260b8c3db53184f665f6ebea3a3b8e7c024c3dcda23b85aa808c4f92e6ac3a5db754bc38756a213877c46292ced6390000ff8e04f772c5406c2471ab9213234cd804d1ca1ca983f33c5c237fbea8f87c09e204fc15480ca66b71205092feaa11ea30fafdbf9d5dacaaf89782ac7c113152d0fd95b0b73601c50b2d742bf5685247d46527bd64e75b3718021889883a0ba9348ae1d08886cbf1e71c47c83fd181d166ecbdaf97f02d55bda0718c509708d1dee835a3cb53baa85afa445bb07d5a85492fbe5f20b1d1e470703903432f61007c5283ad4074c7c6bfc2a1d0ff25b4a077e129fe464e9001153f1db5247e0e98e7d55393db90999ffdf46f83a6d4aeb7c92189d749b0fef2748dd97e2301062969b8ba67c6eaea68e8ad8c088b9b156adc9258809ad6de42727d3989ffc3ce9d1a2ff25d69b5f1067d9a6d11a07e3bcf1a42a9f59eb34dd8605ce63b1e87d918968bd2ec2468e86cd63a67b06a5b9324d0a463249571e5a5165c4b4ed59c090e9ac6f8b34a0e77b018204843e09c12e45524128190943e2f65744f8ea670cbfe25d76de3231dba5518015a34dfb6a0e4a08f27ae5ffee7c267e3fd3e2e8861d9b254119bb93d88140703906e16b0991af1fefb673f27536bb769f9c6427534c6e263603faf1ebccb84907cd22c3665b359f3d7d51fbaaa2b88efbdcd7abd1137e06c7bad1c54d0b524e928ce4afa6761f055705433a1d5457c450d3cec33cdad2acb82cb092cf04a5e069cd99c190ccdee5319701c5a465216fedf328b14e310c520c9cb593cc43b041088c225785ae4987c3124a811cf31e1fda6305ab7049a1c66a232b986a964ce6c0b965ac2450647ac7663bc25e9f1285e97d851aed79b1106d2d49888492b156e3babb101f4ab975781a05c3bb0dc67541505fbdc2ba64c39ff84d4c8d0b0acab3e62890bc1842f24bc7e5582a67665a9f1e4098012cdcb1a818e40f179f18f00e0b6899699bdf4cb09b797664dbf09fd2dffee20d8fb2df88f6d81b702dec9a0ae8c46afd97626e43d7585afa18aff7e7bd9e58c0cb0cd18e4c23c0f356a43aa9b4c64f7e33243cf651068328d5c37a489621951e683a9c2faa39084303465dc295aaf9de7c2e5317f32dc2e54bc702a07e2a6b5117e65ea7f5b83396de9fa4962aae7c8fe1f4cf4d3a330930b67349b63a705b9227d6f8f3e35a2dbdd73ee421022abcc3b89c2423b80fc917d761a186c5ff9704103d2e77803c7a32a0725922237c4f00b8d53fd99281ff6a75d559cace4e3dd1ec99934fab745bd932622ff884c229d67d4286f0028a4b2ad7991fda391eab69f928e54199fa1b9d4630c1f492658eb4087160efd63ba3234beeec429a2c278618e4abde52dcc42cdd2f4c6daf721c603c635fb3efd98427a3825aabbdb833525113526a2fc5b17bb92804e9aec6faec62a739d2c345bd4eb38363ae21d4433b4d6d09f062d4bf84e1abbb0e59086f11a6002357dcbd1db0d4b7ee207785b701dac724d26ec3100b2178928aeb726945979f407757ecbab664abaecf28bb49ff6b58c71cab5c9cb887ee5b009770cf6aabea3bae66458f0244ed2a23cd0d5a1196840bdac4410a08e896af43ff048fa9b9d63512ceb59a5e585b0440b552bc38944203a938028edc59b4d57abd07c5c17dcf9c946aa1d9e00b7fc62962fef7cbc40934e3dc81bf87b6e90186dd2e80551730a753a631adb9c8f9d7260c57210c285370ae57afa9421eee8d0061e9ea928c4b741604f48e9182015c241c77b607e6a93073a48a89cc74512676bc09e6364405168c9bc829952ded1621b21f2afac84bce51947bf7f6e0501bf258405e178af904ec9320327942d1a7b6205b06c2bd59415b49f874644cbb47e31066e6430f36c124aa8c97d03f2ca9b06defd09a56984484bc7b98a3e8e53f6bb69660526882a1dbb29be90825a38a41d4a01b0349c0008439cc511ea7b0ba938e1bc09c8b38131f10090a42f9cd35cd42446a9af25ea111de91000ac09a6691d1252e0c56adccd23f3b86ff4314d071dba1d8cdcd46753e1f3d57a22de79c2f2c591b8d0829b48b4b12326391992b6f7527aa5dfd8f7cfc453d447e2fd1a4bc3e26086fc66f7dc75706de39f539b94d1b6b2d21c828863bea865bbbc8d078521df50dc218da3f2a179642a483960d2e8b7d9df119f63e697e6a7a113fef3f24d21f733b69fd86b256057b8fd5314bfab90ceb4ffd83d48ac6ba9f9da02bed8cd8bcd3498ae49fa2726ba981879c034b4a56972c26460d99574332583aefb6f7a139a9c82fd82434db119e78bab161b11aea0a346b68f8411f8f2fb81f92585f11c53a3270b7090998229cb995e3aec0b63c1225462f97b5ddfefcf9a7ef4f0d018a40464ae0aab3c1a6957abf9785a1e3096a0254e821ada42fd5dded0a8976bdb9c3da1ca8a09d06d5783ee793423115878563d96aca6e5cb10b7750c3298f866605f42a64590b26b068973d7a87b0f865f8c33a281e2a410da1d2f4986fb3112e764f1e02bcf879f5fac2f655e0cbeba62e7480cc69ab621ce1d03f81d14f07b4084582305511675bd53dcb37de59803b5cb9dc6ec00e23ae058b5ccbd7c683ec68414717d114ef1f44fd7ae23882fe78cebd1d5288cdbb7e1703bb145caf9736e22240a0c38e21e7a3764487c921df5a092e3b35af3bb77d87a98f4d236ac746fe71a84f01e7a4e9b8fd6d92702752955ac2d033e84b75643a794ecd033a8ce126c698ac0a7631734d4cc0873856ba77cc7f9a36953caa9c00083577097ed265d4a592394c7716b1b13608ef47512d9fa22efbf33da1dd76b4eec2ee49697a2713d9f9fc3469b3d0f6a998507416f578ca5f7980b616e9b0785938dc5a98d9996974969965a9006eff11c44188141395e95d3e6f57d27f4cd1651e419c30374a69d915f779e10652bf2e66818edab7c8f3919882e926a2b59031c0dcc8c951aa7489857a2f27618144315a24b4f5c92073367aec260c2939d322ada07e3ed8aa83eedccee988c59a63b202d293f364a4ebaffa1ef4af40cb82fe3735b1a4f025f12c713dd81d768521b6c210fca655e70484d12cb21ae71d1dd8f68d381bb2199ba880963d97ce6f347885a282bda06c63b4deb94cfa7107b6c2458eedcdaab2df26aaa99cbebb1d362f36f1766cfbd85b35a37be5b907397070c3bd068e5926415e724ecb423e87614d488b057c52f5e953c6493f262345e69ad40ca7a0b45dba53c1fc2db4edc6f5062fb09e3f4181952192be4a0115f63d241ea9d0f1a36f0e1d62f59d967158980fe5ecf11a9dd52e687467761182f4df5d0ce22dae83eb9c7e87fabbfd09a7509166c8100bec568d3a7e85a46bdfbd0dc74e1d6262a5f384624298b13e06ecf65834808a4be8b7b9f2e75de8f0faeacfe257dbd422cc2721560dfda2e04d5d3015d3d49297ff0b2e51881a6d3b72c6f679decb28ebb35f26124362531bd8ab524e4ee685b7d6a9157c613a28803a3327bb5ef2d0588535ef90a404bee135d2c86eb0205b03c2ddb6d01292393d1ae32d3096da75206360be5dd5aca5ac0533d3cc8c38d9424d6c70d462dc1ae72edd126d09dd1c22e2de0197ddc75cf77e07bd2776379ddcb7e4f415bcda00296554a7b27e7343cc8af1e094aa0f48a7ea1de1738898469572c3ad7aad0510b703ce877b819d609258e59e448ac3dd6426e81722de745a38a564704767cd46231f98cc0fe1547e973cae9c10b270234324da68481ac0af64abc6ee2e426a3fa02690e2c83012dd519c51039cbb4aecf069181933e194765e911c8ed3353d2b1f563946a44661d3d8d02061b01f145a158f7671ee5b912c399b308d7561c0a9c044231b21be855bc2a4c3c37ac1966267c4c5d54ab74310e4bf96a4f987075d2257a0d929782f01f2d912199d62ac5b864a7307b6a5a6e5a328af8a0f8cd05dad4acc8cf8153f217fa3c2e0a72dd7cf97f576ad05daad1d4db4780503fc23f1abaee25a797e9aade42cdd78472c6a1d35b0917bf88fe2b221773374ad8585219765e551ac5e11e700100d8fcfd041a241f8db92c403104d8e36d3fa1077b41dbf2893b2eca351bf07e0b780d66d0c76d85fa4f582f5ff7d22ed41b9614bfc7e2b02ae33d101ecd46e9fe8b341bb22f59e0a9e28a92a4729084a72b8a41915d952d391f78d6f683b06480a337b56f09d6f345f5b0bed2169ee2f42779720943513cf1a2e5ea76a81e5457215883fec027fa92fb212896082d4332d414642ec5c27fcdb9c80aae6a690f9ba7e5e5a21d3d24c278becd163b96122cfb89285fe0e2fb7a587bf3a65f5bc38ee3e29ee463b21919cd8789a291a7f793640ef933a8d42305cb3515f58ec69ca7f5d1e286921f503e3eaa63b6985b8eb0629bf3b4f18f4e91d7d1fe37fb396eb17192d9821fd41bf5943c113c09482de6bd61eee6a43943bba3f1cd65dc5b8ce2d260fb15f4e68f8c94ae203ee27e3efda3a52420c3f88d07781710abbc33c157236384dc1f4097115056df021ad226aa65bbb73627d832a2ba4ae973ba8c65b0913b6287be9f306351cee4356761cd25fc405dd3d52801b9d110d5903c39aaa96d35260d11dd12387dc3a68bdad7c5f0a1427839070654b411e1e6d6a39950516fc31fc1f80504b6efcfc523ebbba7b1d0ef08b7e6760b63c1ce5b8c1f659e0868bb0617369e6923f491bf6002de74457d92cc0fe801f2bbc5875602741f3a2664587deb0f55724819398cb0a75740e5f56be0f0ba43fce9afda8506b64e92afbbf0d224f08cdbc78749350eb0dfade37b8a90a611c759658116bb90325fa476d0104c09eff3b2d0ac70a8678d891ef82c8d668d26930d0600f5c8c11edfa3fb3b577b2a258a0dde5edeb729bc4d731928118832579c29aa0d24d0075e51c494b4731d378c593450741b99d2c17c4c54ae826d885e84d696dcc3012f26cbe13c664946452788f72833cc894e0de9082d74f648b84392583bbc19100659f313c21bd0688fca45187a74ab067446a9b742b71a3e0a8129086a488b4cd06df63dbf1fcbec7f87aa1396743042ecad0ba575400a7c390f253df3d80adc1c1911ef65e56558f251af2511bfbd97fe5e0d4209da9be41a1f6c654bfbc98e69584ad0cec1d8eaef643332e907af4fa3705937580a0b80d4797a57bf921338c0da7138c13469eda3dcb744064ba9ebecdf2f8306b2a5afcc67b5e401ce6a6c5c1109b5bb1c398298304e08eb6fb65f0693247df4ecfb4899ec70963cd3652eaee8279533d25cb99edb8f0312518ec3be3d60347041af9527483cbf88efaab1419d876bed5e68e89bb5dc5d71b63fb4b90f23bdd7d12db989803f3e575e82fa3c013ffdf194d7c3e4b92d44172f6de51c49d104bcadb37c3156ec367307068bb2604ce69d4d0fa5fb32654c55a84c3825ba06af1e61f6fdc50c2738d5c2cc2c221a86e067665e27aeb2c24cca0088e98571040626233ce123a049fbb2ed9d1e401cb1cd15f24407d84d61e5537f3264f8c772fe3ce1a7e360d6d0f2968091b8f858833dcfd26583df120447117a6b1e95b5254ef04dca03ea2c389629d1333f7ddaa37abb199adf25e9256c56e6089ab83f920b535c5adc54d3e00c6ccf15093c314b9b78c5131b91d89240b1ef1255ef848ba98cd93a78951905e08450df89e9aa9baedda6eb61199dfe79187ca3bcfd295c9ae26a57aecdc04f3b0db307197a7650c2c7dd6735fe0e6dbb8ad51844f4cc5f9420b9bac759dc95299731b32c1539807cb138ca86abff96776a1829c33cb965c53081e8a4cdfca7974d36c29a481726910f93670df662a03d540445155ff72c51290a72ac13dc3d044cce6218af15a9cb90b5c74cea4cc4371450582910e52bf68ec7df5c5e360b6e0af3c1503b6ba9c7749166e2badde63fea27c7b49d18a236e014cce6f5ca2227517eb5361b833ca6f39585b4e7292e1c035a74de21e9d7ff2dffeb278f3ccfd01fad1dc3d4d7362b82600e2738d79c912c15c29452a4968f927d35fbfa59eced9128b1cf0d81217df2a499a3bb715a6e03d16435eee8590373bbc81c7a19d752498b6911b84382c650863e129d0cf062c79bf11a0aa28fb993f8f1a3458a7c55d41b8801f00ead13fd53a642679970e8c02ae01806f4fe6bbf19bfd521c21ecd59d9ef6a65b43f65675bec9fe3bad80aa6a17ddf6bae01f73479db68e546cc52ebb2ed818e703a305e524c3e1435950c3d1a03cff24b24a44e22bc0fa3a806ce11b4e9f272923159e530550e3a590ce29c6e14b1d1c283ceb511caacd2dcb8eb9fd44b644e35f21e50d47337c39cb2ec172f40ed5b16002d72673b3e18fbd4f56f092152726fb249338346d08018c42861d6d1f30773b53a8d4d8663439a0d1abbb4fe64b7611b6d45a390e47225ef904f652883b69d01cb764b7fb677798cb819652706f004483c9b81bddde6e4869dd33f40187ed27b08ef86b99429efbeef2ac998816dea356077eb01ad57cf9e14885af4fa9de45876b1c361d2e285440eef6ab09086a11fc17b85e24184f2ed38dcd0cebbba8d9f7c2e9ceaeb966baf2b95eef9ccfa481dff420f6d5f68d151d8a33bf78d975253cb8f9d14216c362c66b372d413ba9db9390b9a452a54fb1b731806abda56aee1ba92762259a8e83656f03bf87de3060174f34154cbb70797c08cd45e9c4f28727a223b4ca4063f4bc048b1d779128cd96892f00f6b67cc043a782f51a5f1d4ce7e7d4686e261429d8bf42cc5eed54afa40d40ba9376269d753da736eba309139a6f8ce17d0e2e6a5a0702dbadd306945699cb88f4be505aa40c7d35ac41637b1d6307f864de076d499809780ae5df0c7e63b3c742b6a6afc4e970a9c8eeee1563a341c4172063ad7f015a4c7e0aa7b73f93ce29416cc4441ebd581058e426c66540185a9f839c2ac7265a9c88ee2cbc9ec6349e704eef401d0602a38e60e7e9ea03bca802586c6a4fbecd664c7f40722f8d58a4a0b15ee9c35610dd28222b1a7be5f3e51f1537e3ebd51bfcdd71b32108ecf1181b4e149099d32bb253f0d796e6952f2f6ed6ed2f4a4ce5c7e8bb6e0e33dbb8c5f3bf44559ab67fcadb139baf59f5694a2ad77eaf1954eb468318974259c8ef3d0307507dd9cc88609fd8d5bb7d9ddbb024fbd571f0f745630c88c1c81914bed1bb074a5d3ef8339a57109a7363577d4d42486d94938feab05acc374885915aa2560a132002af4c77cf90b6bbfba15a99c4696d702b4d82445bed4c35820a0621ce3a00e65a7a3baf87b2d336b42eb4ff982b5e3cd6b3901e7bb5c10772bcd582ba2814010f78141898d29f2d6565f2b342006703fe1aea64db3439294cd54df36b48c74f81d9f57058d30ba01ee167636d7f1f14d12d7ae45d3dbd8d87fccb8f8d7260f82564b6a9fb9897918aefe36cdae1ef483e6c5a950ce6522898c8c1753363dd0635f2e301d28aaee28a131588258601cce0ab381b3c0c9fad7947bf6d753a6bafdef01199571814497183bb06d16ebf3859900d7c0ecc9a56bd794dfd9efb6e373be1774a8e336039b0aaab1925c1e63cac182387a80b5895d4d398e98c0f1ec7aedadfed62ce8bd32ba7a0c3b048271b61126ba681f0d5eddebdeb7407c2a6a57f04e55707648d2462cbde63a6f153b144a22514b364e5641514f9e0c7c4e8a1eb1e82b33b71054f7a1fa602e14e23e4e7c0d7ae10991d370aa9f6ff5ea9bda91ff9ef0e7bf8fa6ceadb74c91a1780922ab791e52280e0c957bf87de6169d1d112fad335e0fca73cccf01951c0a3697266a68576ce516f08069177d018e00a506c9bbe32610756ea287f97afd77364791702eef993070f9fe1ca436a6c4f842a4ae9f911b1a64a897c60d56fa5a87ab231124473d6e13cc63c0b7731f3d9139df408a8bfb0eac30d729d23dd1488cca3ae72c66285e3f28f1568d30dd207647748ab311bd9e804da60f38c4c6cfdb0a53e914f11dc53fce869eb4cc598459cf5e89c049a713a72306558f94d811566cd74327c10a53c5ac09510d40c636299d5173aa213b87dbe1c056f20ef7383514d36ef212996eeb706f447f0f74d14b6aa68f6fd9057d126a633154c7af31dd16cb0b11532e67cef779f762ad1c07223b262d52b39ad5cbf5c2cd9ea5a325c9b799a394289333c9e601c7447a51f78d1a98af15eb563c7cf93117bf211fadfaf54139b0e292f4bc9d1e88f520b3d86e76b3cf837a6debf3fdb6f741264c3e8d77cfcbe1494450792f46c0778f347e1cc5032ab6304c975138ac96eb62b52ddb6b84edd2711ac93fa6f8991af860131c19996608986da1ff86b15c8d87817c86ac28608abf1cd56ba120ed43661be020566018189669175e0e3ab13a5e887d8bc96f2a437dc127c2233b7efdbb1154392f4d30b0c202f34b1157697ea5ea7dee1495ae793555c731277ecf1170828c96434f8105f02c09efde852cf5e8b46d1ca83395df9016670fcf55f60f9da16cd52e52935a5af56f9d3f68de8afe4d14a05068166ab5869e8f9e6d8b3de129d6a75cb943554e3ed0c9ab4f44767031d082cdda1b5ddc30217f04ce9d80020b82021b7c15c031a94a5f96d8e009c86486ee71f76d2ea665b7cc4520aafcd67f8546e63820c8af49d15dddf3b5f75ecbb007e5d7599da04085ba1499f8c12135fce516dca3b6e709db17b868b637d0830eaf41d85b938c1e23a4a7babb9f686a63945e529f3a24fc55376f0df3ec301f279c015a0373bb5626480429bf2c51272a67f3decd2964931d803a99dd6cd02da9f04ef80e838939969771b5de78a9c2809be96b48892df44a02d8b76475e05ec7365ca77fa6fd20c9c599e2bbd79562dbb9badce5b67eef3111c90105f02643caf67d9936b1c1d1593dc95d58d2ac7c0f67aea51a56d575114736a3621771b7d3161b45490defa4babe5a305e4a3ae135cfd55a255d35a3196be807843dbe58b7af94d299071f1d4823e2607423592fc710c74d16a3a7d0609ef18a5afb19974323aa61ce7b195fc7b594dca9b21f94f1c7247df7ca71261e0e5c6c606b4769ea22f9f32e4f346bd3d269775d919a4122a0100e233c0c8a21612706818754a46381995212baa8e3634f61fa75787499ccb4d15a9cd59ca88a81c76b66dd396fa072a9c47335c5e090f717ba467a6a04813f6cf869c57562816a5dab4bf3b248a44d985f4c8eca5d84099071cce70c5837a7a838986d9e3dae60d6e2a7ebba9b8cac20f648a30fce27fe0ebc643583fd65da6fa9384ba2d6021595b114be374189717de0d6dd453c7484c362ff3d034147b88d872235fbf2dd514a3557d793b9b4d9e23433894f60b58aac81900ac95fa78fbef4206d4dc7c9157576a9ffc80c7b243196c06c140ec33d50798fd4146545dbed33a613ce028ecccaac6f0f53903303ba799c717d746a1087f91746d9538161d2130809066d9fed124ace11b970f55afe189c0e750432d46e9a960558713f32847ff3eace544e4a18caf9b4422a554023bb00789906ba5c952c4b307bfef2781cc528ead859141925d5e7628971a839e8d4c082344829d8d4408d1e310e94cab5525f6a257fbb85fd60283f42124db565f1e03c34855ecdf2b3a13d507c6ddfbedbf0f8a43f0738af5f804aded037b5700cc8bc2e9272c06706c465de775bb0e55e4079e47c39fc2f43eee5f2cf825a667a7087e36163ef2e78a296ff497a9cf52491ef6e2f1ed6415ec6e27034ec032ef14365be8ffc406a206f2180f40d012548d2c74c5b71307d00061fc0344d477517aa41f931ea6eb2ff4cafee6e33cbdd1491a031f564914b993da581fd211ab8a46369719688e72e8424ca554bb5c7d440064252805cd79acb6a0aa3780c87d7f55a48aa0436b8bd14f0a8ca1e58613a72f9ed3bdff5f631290ad95c0af706d8bacf8057ae4f24824fb0818c954702ac9ffecaa2a7ac5074f0cb006142023a4584f14efc2d318f59c933f4efcd6b8bff495886b779e4885af3b8c1567001e69a3b62aecacce9935095f1b5ef2955e1ca8543fc7dcd936ce65e9d7b788954421cb44429aae247540c643fefbcf0a455d66fef47f30e05ea565385c43d4549cdf52eeb713142e6d20211bbb8bafb4b58be0f11cd667cb97aa341b99c00159cf85b32ebac6a9488a09cb801b1b14d7dc45f97b414789a63977ff4b420dbe40ab74214cce9b7b0597bdd3875c2cd12448f7648a809ca784a2ca8502bcce34daa2cc27df4a6ce2d7a200dc99ac5031836ea1e8df0a49c0fdb2c6af05a234f6794b3e3b8ddac859a37f1d72e9b292650027347949a618978c4f3cdede448be27ee06aa6e7ff0fd8fa457aca4c06b187af2e76bd392d2ee9d1e20748e5239e0550bfd4716a8ad4a2c1cf3c460ab428b95ba37db49e0d529132d97df68f77ea8b14ea5f29a92594d9223bff791cbe0f29eb8bb882bbc790779f23e732fda9a13b818762a1d1cabd30826f94a6b797bf0ada4d85a74e72296697b70d77e6d97b1b5a60451dcf4908971d8fdcd566a84fc76c365b1d5335cc1d9c0dd93248595a31b263b47982c718bf9488a90debcedff317f6822639d0284365a3faf8dc2fba8286235f3cb63a79c77089b34a23dab2d623215fc88914cdff1479aae42b97f6c00c5549abafeede7a13849d35a8101985c0b04437866653709395734a527f5b4bf154ab4d8002c1e22ab209c472a92ae4967de3b47a41e139ff801006e10a0871cb9e627885ec3e26e30cbe37d951521662ca3ea32ab1f5e0d2c857f71d0ea11c4255f2c7d5f156ef95d3d82d6aa9a71f44bb35cef1d887bbf77c3880ba95d353b6bf13aab6ae6cd0a30815b0b1c619cb57d79b2df56c759880b3c6159860a734ccc7d65896921f6479f41e7ac0b0691a798be1a1033741762f055836845fa15ad67952e9706171217fa2f8e461e4f4ca5ca74c6d959621e33a10b056ed3ab6d5fa89e54ff9b23c1ed8606e2a49d34fb9d6dfc06baffb5ee000f43c9872cb0c1de4cd067c5972fb3961429bf22261b02d9e4b184b4d6b026376d8635ad8a290a7f3bfa5edde60dd6a579f7d5d6466285bf6e70b465c01d4cb2b63ddf85b80541437fc1a66738e2e2769929bfae430b09b6014ac233e69a9f0af43224999dcc40cd4c7a89653e60d25bc7ab760cdff0033e515697d42660491f4aae7a83461aa4a3a868bee0fa373ea9d7a945728883fa28e93ab8d824c015018cbabaf446efc6b2e449aea85d487e72afacac5707376d66a1afd081286958da36252d50694837eab2e77882adc48153524add4cadde0bbc499c0c385111eb9d629d19fc21c4c6dac1650bfb0f5815218683bfc32d7040050e67a2667ff3df72164ec29df7fe8b929f32e20d1a811f9f7f828e9d1e49d0cb038abb249f60c353f56031517ec832bfb5fdaffb9568065164cf06ed07f57851aab331adeae9502b1c9ec3767c5c45dd81846cc79b3e66a94a0f7f77a9357d2d4bf51ab8c77a4ce998be39ccc227f59667f936f874524edeb71c52540019981f3da2613d7b0e55df8eb82a0264c37a11b1ca2e266e9651be60445931a1e168911c1d0b8ff5154975740d3439a43745bc71830514a4ffc04a3df1aeb4132c3b3ac2312333b62f8ffe8626603a439e284b3c18a717a798282854e09c493fa58c3730e8b9afe82f57fd22f84c59d154554ad0acff1424054ad7bdf64f50026ef101a7881bad361e94a310867b1def13a3aba08ba1c1acf545f29e6985570dc66b633b739627a469a05f5518801c39dce26e3760918bd260575effabb14f433a58a3409df580489f5823ff4fc22da19dafe4a326c5e0498eacba7763425e3b99d7aeb0efcb5071a5eb266dfe1b3311e396bb8bd0257464d453733f96c6464ee2c09bb4883a0f9f94a990f81d8323496cb6bd6bf6f2c38c116e5a3e698753dc6c2ff5ea267b641bb35721a519371da204858b28278455f4378ede3e58880432bdd9946e6c49e9c0cd94a4147721cff8dde38697235015077410635608f46a07952b569459888f227bfbb5b612fe97b66aaa089a3d29828d5fe94cb07753f3a016cd106d40898dc60209333209b3e5863f5736a4be048f1273899144d7db0f286d0e6e6094084b29b118db7086967b9f549449a433324cd0f0729ebe87aef18c23e629b42d2e71fd1027322230ca274bd552c968a5532317efd791f55f44366e217cca93eb705ef928d3c5e7fa39f1b139c552ac286bba93e5cb0365158181206bae6bfa1d204ed7e930b84abf6431c80f89139b14ce40f6a99ee3761426d12c3aa4dda750ce489cbac1ddb3e82b81444f1b22cc293fa73f1365fb04bcfc068a091dfbea4f9a81cc2e60c22509424cdd1d988f5815f166b16e932d59b01dc6f9c027d4b7f148b8242d2f93eff789c604dc5b364230bf0e0f20ccdcf1f36387ba618e6e03a851d263ce278acecb619ff1449b08cfb190e09f16e98cd6ba8eebc24e0c0a06d7ab959351a5d1abb5b8e5a340fca0f0698ac8c51613e62560764536d91124d9411ab56c70cbac297586541f038de81600a009da6223a287b1922944f9bb55690cfe220202ab7e4abee01213e91177acdefb52359940251b9719125897d960f25a92d05815e0eb0aa2b102b498f0e8c31d1d4e524414403b433853d5273c1047a9b3566c00050ad4876b8a0ef28f72218e25d0f97b3e5fa51e8ca66d1ed8a3b9cd4cc12c6104658be2a08574375c6242f315248971cd0db3e623084a2de5c6cfa6b456e12c610334a4721e00c1f7a56c968fd25d949b60d68b2b16357d2f25ceaaad749356ed611ac2803e545a7ebb55b1fa8856bec53c4822cc118f5da0e2b23e5586c549b20c0ab56fe239b77d96000b813202c2fdf0c857bdb80734af1af41e1c46ba9a2406a8e602538f2c40f2cf5d2616f4f9da6562ac6d9c93e3d1d2445d15baa026b5566a4c94cc6e041dbc01e4e49d3dc5815f272e3b38db8f433d212db56ff418bcc11bc056cec31a12ff280d5bab92fa1976e1f9fa41bb401f1f6f13075d1dab87879ad8571d861e82bfec503577477a91995380ee2d2fc3e91e30ebae32f5886976bd0d3db3b2592e69bbb12584d38bf1afa89f35b07cc9b2e17f84a41c4d871606481c0a9e9e280ab08d51bd160cac08ec7203432c554b6da4a256ec14e8c43f77ea19e734c34c115c3a8e864b9d7e3076cd15bd5eb3946825b6cbcafbb39bcdb351790bf8a691caf456f53d631e1cbe251b33103861457e39389c5d5c7b99330474ae2e21f047bffdd883714a7baf06e9ea15c11f8f15220189c8885977ac77382a97a02683a1736b0f5f1a21809554d3ebb17389ad2dcb91baa7c4a9afe38829e2353041e787fd612dc71856fcc8c7f31e2f6ce982a7bf9191b298393599c0078af068412db6813b107d907c6d113e11e3fbbad80631217803a4e65a6b6b68341c66d1c73b651c14d65ac0d353bf404b4bc3723b2582fa317b99d2ed2d2ec1140e44a98d110f40a948794c55d03bdb13b89453411db2100072a0384617f21d8a70a07dcba2388511e24aee42075c8752299c814ae30e7f36c867c416e23e42b0e3f7e9a15ded6e2be956acb36afd20dd622c40ccd90e49c73aa823cc136ef34af0adc26b1641c6f21590036a625e09789217f3ba9a8715336d501bb03c8f6d776fa87f5648bba680f936b5a692074ccedd4b8ea89173342fd2ce2a06ef8c6bc551e229ee15ebbb7fc87fe95eb3a17b8d93eed6346f344bf20372096e17eb289ec8d8f70dc9c236b0521820c6ce32daf35a6a979204535b05d6175a7922251ae00e016ef8e361552306de6dabbdf1e763718f136f288ce82837b902355428e577fb38cbf9bd5c1a69d2083bf40c6c9d723e2b066072eb2842b39deb6cc5007670c2890e54a512d35440ee8599f834d24571945e59f1bc3a398b3e107c052ba873c63d757b73bc0a702b13d64f2d61e524b120dee032860e1f5e61c56246104baa20f8c42f854aae315a93588fed26ebbafe90fd747a16e02e93189dd692af0f0cad7b7888814159f78378bb1645fe1b16bfdb0ec58c83446d6d89f000770d49a14eec0562f24269b4bc013006fb993629271745fb150042e4185f27a3e88422f2188f6d774e4d12b29505fbbb6ef72c4e3add3751de2b49f6dc2531ea3db441c345e2d613ee67df73114e9e98b65e28a73dc2174509beeecc3808fdce967edac722e6ca285717318b4dfd76db952b256746c80eca38c44898193b31f313f34c36b39a8b13eff210a89a64ec9fa43669ff290e36840391f79ef33e8b20206267fb0c4910069bf310caa044dec3a96cb0e80c126a11a1b77c3ae7cd8bdfb78622d9097708ff71366e505b71fae7d00e0486d3931afa41e5f70aaefaa9434e2ea163b8110efb4135030562161d42708085a35762af3ce235fdee5ef895e38a5400ca9d1bde38709d19b8dc789c9338995452bbebe99f87f9e78ad45bcd49ab7d3c5a1df51bb85f36cc97bd61065c3349e6e4f9573f6bb7ade17a79d4d9c0021c1732e814fa80f056db36e991c67690c22d56f480c2417d24498de0647fcbc82e1168d960fb4d024d2c4ec04c38977e881615b65fe9c4d35f66d327677f2fd8a277d777ffd19d26b170d1e2cda4998f445b8fd41f6bd03ca80427344cce8dd804efb30a1e31d04aac4391ecd58c9fd303450ae716b6481a916e520ac398d98bdd83d57e447af89e2d03f3cc3466d79efb6c4da51451bbd5e9817ee4f338e8e2f5ecbe337d86bcdcad4de1f913d19e25a939e79808f87cd6a6f021cb0b43dbad72a122509e7d2e64d0d68e8dd782a49ebef0c60623e07a3c238594db8d95cb54b2d1bb7d2f7bb1e0a2e739bf17694a0f2aa48aa9d03b4774e3f7aa83207927635353cad885b6272d3036ba53c29c19e13019ce39c323c386bc612ff50a34b7bd181632f2add97cc2ee71bc1cfb416dfc68348800fb543446a241239245e112973a0d6c6397ef04cd7fead56e1c24478d65fc588690f3f490fadf56f280a86cfff9a7e773a43f95c3c52b5454c61bb83e3f30f0b6175faa6126cb7feb7049cda6f761b8c3510cc8300ac41190d73ed5be0b6080471ee3ec1a1afe949912ebe725101f9ac399592e0784c18d8c7b040a9956e16f85a8a47dedc62c92a5b74effe46f2fe71d64acaf4316c81fe4139cdaf1eb6895f9ea5f8b5583851b71ce722bb85563622a17e5bef688e53b2e4b14eb26ad47a60053e0ba29da49798c2644edb55501ebcb36fd5f990a326ed3ef7e8a8bde21b0d19579e73a8a801409bd0f98196256ab32a7b6121d0fbd82b815da2fc2e43b982a96ee04e6a6c1413dcdb4c27399e020aa7583f558209d02d0481b5722a67e2d24a01c39146a9ef141e5eddebc3b2648bcf66dc9cb6f39e71c1a61cf5efe57495d11eeab697e4baabdb3dc0b8cf8ab7faca07d817acf8fc67d6acf86f12e3835fda0e4a5a287a8fdff6e89efc89cb33f5c70d87925ea035c9048bb58df9c4552045052501ba76a9d7305dd34b3336b6237637c879f4be7c1433630eb6623bf292b3e65a0b8142e969b4c0cc27a39697178cbc3bc14d47d003ec215356db95fa870d1d3d40a71bf0478c8a3eb8c30124d843ea2fdf7ded51aaddae9123476ac6c8fe7b58bdc86061b4293bdc4e10644bb7d7cfd4594999420659ad84b95f8bfeb97435e7a975ab12b2dfa4a3241c60657d0afb8881ada8090bd5cc69b32e4f30b123dedcf5b1ba344e66c4f7dd0d7d225da04451dc5602f28a6ca9211e942513260182be97772dbffd5a290e091ba5046ae4accd7629f886f35c3c3bedc57e7a85cbc8b830320da905bcee70f815f4f87c22483dc7baf9ba8287dccceec7012e717f2aa6ba4228b88c70439711ddd5ec8b2b3b630fd6164276f3ce3c94f71222a5e033f7e77e3cf144bd82d6e5e774787ad4c75e32f951cab94a675bc885aaca8ff6daae29adf1f291d0dc2d32bf78f8527669c8c3d8c2fbc35bb870f5f37a82e88be3e4e30ca4c5b0398fae308014b1a87001a6add9886aa597d41f509a674034ae538035cbfee9ac6bad827c5d65d49ca113082b968de4c7959e4176244b153634f81bdc8f66b0dd4079d4271b2186a1ee1262fd5e17c57f8e291973130e2cbe32f94629f233233e744b18899594369fc2bdefb2b42b385ce1a98344390d4627847e93b2ffbd0d31250c7bb337f2ee91898ab98ccec1971691f5050f3ed0ed174a642562b634ea295a3b778484f0680d34240a1317c54c1cc294d9481e10dac966ffb2d18e4bc0427989d2ae91b80b58b8f666afade7ddf13f625b46a80d3b2ffff12966eeb33efeceff8531872428f68ecb5db3e3441619f7bb7dbc0038ecca00106a76b26799540bb95237244e0e903576b90bc1d36db77c4320001d23c4f59953c8e3acc3f6b0c22905723b6dd616ac90ef7f7fa91df5822e6f034cce7c98bde14bef217275b4edf8a8a22f06f7ecf847d9c50e0c8af06627ac54ab3aee16a31ed7c24825156b67682f267c6802a1a43809e28f54ec2ca5bd02acaf51954646d2ae19cf210c1e714d4a0c2f7d257a3c5b5045d9a1669660664ae89e1ba1cfe55c11b0559953162e997d7469e541afd10044d8f75aeb90df0cd8b41646004583fbcfa5f1d474712671a9abdf68bda278dfd6ada881a20a0a33c17484fa2895681c1cccaa2fe1a1c7d78eca5db460e6cb2e5766ded4b635f2a1327aae0495329ec3faeafce05e53dfe410643e68df1b66d463643fc3b46046aabc022a492c7874ff0f6759975433248e3428f676e3ff6ba0aad5a72de55fdef4b6ebe48b175bff6cb454a6e2fd8bacff203f89d3b50eff998139a4f94d1d34e31d949c86b57094cc86f1ba6ed2b87584a2851170de3aca5bad7ff9734230e67f8beb654facac50a6ebb1e20daa39defef1c23b8c551f7b80e6111b83add036ff2d40280f510090fe2c8c609367912cf1c265ca5320f0421ff01ab7a97f158acfddf71f08e031791a2cefe77d342c0616da5413cd722d545851262ad9ea30ec39b5025aec3ed77154d7de21729740fa88aee58017b1c66bf103c4071456488a92cb7f3d84435da400d6042985effdf67ed7190dfae9eb4302aa3395e0329937f9f5be00a5b86980611c2011571e62cf8e48dacec1a4451eb11c3b4f8b1ed7e9a9af842e779bb339ac59225efd6abfbd899e0567701cac41ff65346239f91239dd8b37260d4ba2461d727687bde752dde3fecc923a42c075a5770f32cbdc05e638d3689e49a4a1e21c775f7997e44aaeac4b099d5621fa8700317cd58e1d4e52d02efc1b16441e8c73cf1b16a038449517aee8e91a7ed9c80d86b196c2be0703b5820c79e9698a878e817cb12b6c945994b9926c6ccae68d77d94e74e7042d23175a8e699e34a15bd4d1ec93c80daea777a927307dc91bb0b1dba4a0e30f5701f6869aee99335b5209a77a7a09bc8b8f337bcdd2da7c1c0d26814b02f5a6c98e60d73ddf4186acfcc3664c1520ae550520e75304cd34620671e14ab573a030e14502a569c30332abf13b158947c56461d379560b04de1b00ae114587648f18b4d52d7e8a292568f76af984effe705ddf0a50aa4197e60fe4d34bff7adba0f7e470b17397c3abe33c980a65d313f05b202337539453543d9f21f560462ed38ef429f5b5b7db3d4917262410b67cb812a7203432055ae652a29a557fd4f6f0868bd590a465bd736eedc9a6368e03104b5d48b31d2b0e5c5462931295c4e5f96ff1aa0cc9f10b0f246416e66d41c01f6f0e48e219ad543befd94dbed4e864e3b49674e57f006956a6e85fc5dc2d630ca4eaeef6f5cc21b01103a60edec709dba88c50b6de086bcf9527b15c74a34fdd81057664a9d6575f4f62ce8c3d1bd8748e0801aaa0d5e3d0a796cf978767863ca6d758416ab4f546817b1cd0c653546f5ce5cc95240777a7f3e94f014132605936bcbd5f9c5d9505d757e595c91266f70e20f05fd2918046de9eba2b6a301878e3746eda66603a2341036a481aae0a96875d9c938f3c4bbf2b73c06a348326f82ca46018f45f7035b510d4c6a6b2d73159608944452297f8aaec7ece36be6adb6954ce881e8eb9f84d134280d85c4dce609515a4db33706045cfd492a16a26189b70de9992384db9b226e433551ff9f2b68af6e979b35492f9a7c674bb84c73f2747ddab3c3a26a5826528e8c72368e4586f79724bbaab2b6d44f39f19fd8244670f0503308661e1b973f7ea3bc0e918e49d533485b38b484f381826a739bf675b5fd6f911a2ec7c27f200ed3b072293e10c03f0e8ddd062ba5ca6327d914e9bf6b200f67a27849a140e188a57396c0c6adbbeba8dcd838d2149666cc1d179df2debdae1ac42026c2ef39fd0e94d0d195fccf7c647ea8f461ae02c373cbada6760cc6b2c7535fdd89d52089afb6e36b010c5688ca3f0c95881c39fc71c810691bc7d02920ed7b5eaf8e159c6e47bd7c1e950b7b10a6e46880ed9093b6d4e08f1fc0c5f2f5d10565763d8d2acdf8641c4a91ba4595348000368ce3f250dbeab0c38e76aa1ed5f7fc6c47493531a569963c479cbb5ac35cfcf2b909446a562977b84638133b65429a974775a40f1e519bdbbe0f5009641aeb532d3dd5beb3e3785e239485eb715d0be1ca651f4e7e126d0ac69f8424f4d5255858e883ab94a7780330318193fddf2a1dc4aea64a32f2f0fd1532580fd8a106f197cbdaaeef54d8006c4f4bfc079e2f5e9b0c903a3645f3a6b814c368e02158f729c95b1d19d1617a95d1690e9c9df0f02a9c527b54a24ee70f74b49400fe999aeb25e3da518bc3a3a1901fdd7458a35030af1e82b627d8f456030c19ae249f35bc3ef657a2eb39374222e6022759ecaec2db8c1a75c1f80068be5fb83fd4e39b49d0db3d41cc5c0840944c5a7780408576f0d87e5a066c43be976341eb9e0cd7b4ddf1a9612aa598742dfd4fb7e2e162cb0a5895dc819853b11e08108c17ea8d3a672aacbb673ba39a5ea1f9d4ec7a40dd644f2a924fc16323d6dafa595562ac0c1500a60a0c7e1ffef874d0bc1b0595b4a1aab9a3430728bcaab901409aaee047722516ddce9eba03f88ed404552b13f792d6895326a436ebceab297c385d13ae964d6e36b97f4029974f10a5b372a8254daa06086f20014374b8e44c0c7a6b2f92df77fc1b069be66260e3618fed51ed05d8cc04f78ad0c076198f4cf755bccce00ff9448b41898f2ef8790a895a9cc6772735de1b332e81963da9c14647be754b2a607dc0881d0ed542b4dc7cc26ad96fce84241d97d5200ecec62872b55f7ba5ddbee4e1835beeb52746a463039595dc7bbe7abdac76a714a7b0073703612f268bfb5e1395458e439265f8c396060c250b3160d7bb301c761b048f7787a0834991746d06c672db414d67312cd80184ea6694089302b75801a2fed8813652d7b3796b6c6e22ac29ca129dfe608f84d8e51d4b6f7d62814bd6278f26dcd03010645b634645a0e7bbfdaccf02963c9fc93544e136032d14fc6bee09d42798f57d9bf1866be497602a60e6055911802bd7336359084418d8284697709760508f039f79549ded80795bd88e0c3e8eaabf5c61f6b6f55600bc1060581f4cca2042934f074b440ac89bcd3c94d338a2fe93a2907509f7a3a52fcfdda67d9de3af2a717da7ae4557f23c99e508d0deb2d1475beed03b0cd8d4fb73fad43cc95363a54f592c443008f06c835f2ceb20fcefb8faa2b04d3ddbc8cb547165b27b2940bfd273c9c671cd4c8cd94c2f3061097977a96cc750f6d31f353b37940954950c05dc7debc87f30dfd291b8db9b09cfdcc302ffcae0df38ecaafc5846c9a411719fa3320b627c89cd18010ddac2875022062a682d1dc1ab55a5be33e785ad550c978900662704f2cc0d6189623b4ef206909315188dd4092db2218aa58f715740db845cd9ec3302e9851c21cc2ee758deaf2881e3a8df9c59c4f90f33d9366ae45d57cc9be6887246ed1fc0e4d9304c45ebf691343458a138fea2034f8affed9cec5a45e60cc67bc398b9c8cc9caad66da6b148707226fa499babbc0036169c493ecf102a0b252b82c7ed80f2e67186c9bc7cfcbf12dd51a651efe0a9f8707c5104dda53d6e6c2aa0cf4ced52515fc9d1f8a630bad9c2074866ca5118c1a8ba3c3999b3a5468a480193cfdd6a8bea8671ced9d332f5b67bb333813615f4d7dce4161b120cfcfd8db4a77ca4f6a0e7ef431c7cef26379f38becb3cfa37e45b9e16e0a60346fadb23dee9bfdd85f42729e73254cc48afac463c06e01c330edee7c8d2530bdb1eb7c01f0cd4110e3418fac1f4bef0c9a690cc61cd4f996615f206a24d56c8091d7f22659c8a7d02f3a726120d094473927b12d4d29a927fb582714f2b6a235a74ac4eccb5b23fb40dacd5930509e4124c7cfcf163f267df6162e4d68c2260b3498173b09f50ecf4da5e53abcbd706709fb342e1ab12a00860a34656a078e3a484a04dec8b5a2d269b915b1dbf4f4203579e379e457956afbd68e90471537ad777018906ee9814b09d649befb9b173e9c0591c5da85e8474b1f639e2b17bfb0ce3dd3d465862f476c64845814b94a7317442b0869c2c80550c32fff7f6089bbf8f729a32efc933332c25a5883a303e6e1424eef1efa81942e4f411bf7383c41cbc504e064c57a07981476b7e6233ac9acbcce81a48580977e893cf93b354497a6bfbfa84c1414fb2279161f90a4ec09dae93092b0fcd825183f9a34804e50e95ec0ac6dad7775d0b97e8ac66b4e9c0bb0582f016b85be1aa9a524446238d23d9fd990dc058515ac6e70b8a174cfcd7498ac3ad0e4330df673f07b10e629828af8fa229b626c517d7b219bdf0f51890bbc54f4039018c34cdafc93da796bdbd80e4f8fd161d9e8f63298bfb8e9d5dda18d42b456e1cf82c9944e327241819d7a960ef9842dac7e17e82bc78d2dd05a12166903bb85c010bdbaed76bc21b6494e130df3c176e41c420e68e8553342964c135620aed5b8d73efb1a4c8a4621a8138c0f0797bb8faee6134d6b5dfc24a9713c867f5a704766dda938fabe1cfd45d0a31130df61ab84bab9552e541921b1003d2e458a28feeede80b996c6fa4bee43cbf960dc70b2d180e8fd24acd3df4e133912ce69adc9c5113b608c5cf153376d7ce1fba1f3fd2f634766d147b45b26aaecad281a99abe72c679d1ba27e70f61db2025a4f4e3619da1416ce78c1a06209b85f9513cf6f70c01663d9841d16c89f0d904a1a10d3702504cb4b4e0e5e2f252b810d58546923b64a582b75eba88b685c398a290c0ef75421bd883375833f1ee257b9750bdee6613ff0ce6cdef4e2de6fe2503fc3bdd7e0fdba5bde97e745cec4917959fe8b4422fa8b514545abb52e791ec53368421cd2a708ad8d7e9b7c64fb8f5ff11f9ee990ba76985e8c46ae2d5b56843f0910357b2dfafd97702221122a1c329faf792a4331405b95801abc4fa41c1f16a86778c0afd8db49e03df4c6c543ec7aa8087b1a9eb1a4898a2494ab22169ad04a809bf044bf6e14845ebcfd93fd3d65e688f624385d55359c642b0f440aeea74fb83c2d2ec3ef0bf714c098a7ed05eaea72db0d8191a0d2ca243d24b422887f8d665b6321e92cb67a0d4ece6c14ddf26bbe0a1e664c8d12cf9ac9a4ea1dc73f0b8adbd3a91f0629b43b372596758f4916a68bcc50a477a3e5bb939f9b3c810058e6042ce1b4f3787edc5181fccb9aea2d0f06df88ff8f07caf0a1cc3bfe7e03ce11042e03847c772cddf43fc42faf27f6e44b1a8a5c58bbc594bff10a55fc7e4a9a69e99d65c0c1d3087e64592c369a0b0bcc822fe029ac0dd0fb5656d62a3824aca8836043f01e7b15cfd41424cae519051e2dd6d8aefee76a294be58faded6a969a90ca8ed12e464ccda59c07b94a97157c9ed967672554ac60b8c1971d92b91efafa3dc03d68f810e27751578508706044bd0b0d28472f347ac8ce1f895625d6e87c35f2a26769fe79e35a1d6590cb9177510a6298f50e069899dfd2ef84138869a8a1a2818dc4a684f5240fc58755a43d15946db2334ca79c024085c52a006be47fae22f0ecad47f9bb604dc19ab4a55f553f1946ccf847ae67e1ce73937ff2a69e7343198aa6eb50e2d949ae1e19c3cb21347e79f8b86bb89e9df9d69204015ff1505cb9e84983075eb33292840d7b140eccef4156bb6ceae341cabf9f35bfa3fef9dda1ea3e7a1e2bdde2a79bf28cf08139e5ea2e498036de530f72beda8d6bbf714339fef52c9c18d5bfdca3d121b8999825930da999d5b3c28c283bae5e91077958f89c8e6d08a5041d54306eb5eb960be4b2a54da5c02ef6cf8d349a3f577e317bed197ef7f0ea4db5e4d9c179abe0c4cb8c098b1b37f1edb342f62c0be126f7b439c0d14a659d998b99c14b4a3e942056be304cd73eba62e15c234e00b678b244934126e97d14780b30e3ddc78ea52f27b7ce82721bba1b63e3b07e7a4308257bc274ae57d06927939d37d2e0aa8f56973b794b27daf6e97a54b02d2358bff2972764e39afca490a885a7d1dc4395e102e11e005ac9c0fb3f20eaebbba9a569ac30acb71922f80dfbc3cd96fe3091b0f296cdb27dfc367a332b4888104e394a67e62968f7660c0cfce68956f1ea565cb319c9caf9cadba2e44d105fb74357121360f943fc725ed848b162b88210a3777a7cf1bd144e39cff1d4ee6505e9b38cfe4dc40517f3aa2e589bb8889de59bcdcba97920ade7951c3000d1be0283e3a6fd6f6098591b6b57de4dc88e14cde1bf6adbed84b7b8b8a587868fdb3bbaf2cfae1abe60151e61e922267d3090d42f26c6218ae60c28be801e0e697c021a8f61b7b9266764b5348013ba13cedc268c5177dee0971264fcf2c0b54c131192bfd5374acbf9fd9e1ffa364f8cffea9808151f4bd1ef29d8f78c118cf4558af82ccb4edda2a2ae19aa0ec55eed1d0e1e13f6a5f4cd2ea3ba6720f017d008fe83fa19a018998a2c6c77500e1856c2685356e6a6377356247f4ac2b2cebe4c734f2e7b7bb60ca44a6122ec10dfe02402f4292996c86ded11640a4b409f9af977dda9846c039e36bec329b68ec85585b26593460830b1e98ce6b106d86a92cfdb90b2fbb3624da6c3e4ec593920ad07f02ad62d5749fe3a064a3087568454890d300ac068c7e98ff01ab8bb91e461ae886f94e9c5c4b9af3d16aeca13350919076b97d1c43ecf946a3ee1dfe747945c81817f872da3122ebf96f1270b3a1d9a554f9e327162f56f8b2bf4e88030fc09a553981530bf787b9658d3b2d943dcc110d288a879e64d2eb445effe48b9ab92cafaffd6e843630cffb0c20a4476dbd8844a3f9def1073a4b2ef8f319fb1a1cc7a315812132f67964a355ac560ea3387e9f510a32939a67ba513afa7b91b2ccd6bd6b31babd69d5e164204e7382d8dfdbe732c5dfb4e1e70bc9fadadd8ad1a88396b177c1f605b7e2c76af1bacbff7445246a8ce3752a69a8b02f174ff52c132df968958424935981b3493a1aa9597bf78591b524eda8bdfe9b36f9631a8ca14b8a1b37a4de058b7a424041863971e24ca76c5bbd88fdddc7bab4daa4483dab039fb119d75c931539cb058a4d621177e7fce47687fb0f9f11de588862d68006f2cb4b4dcbb7b60b1c088dd1e6286fefca476ed39ae8d6c3a59e5b5f65013fa32e3059072e6c30020551eda392f882f9c7be483c6330d1f96f02eccfec7f24588d5c65c16cc4040c2062ba5d42ce29cedbe76c3370a29d5185ccb02fbb7a7054e0bf608ad67e444e9bc28c9ec21be5b9102eb47a0376efc7abac7bc2ed789b00cfc38b8247c7963337cd638dfaa3ffe2382e718c7e97fca6559b58594f624965fdf5054a0ea1aa6eb70b793eb74f9bdad8d74c2abaf91abb476281e01f2b4301cefa9ad543fb5a2638a927a2bd87476dc337cfd44f9ee0006463c98ebb7ae4721c7d22bb96390a141cef3f36f04ac6f92ea50e83bd4732f35970c846c3238e2f7e1fc0deed6c113fdafa8e0b65194f893bd24cfa53211fe97b3392c46bbac09b02c7e3b7a47b559034645802ae98ed15dfa9084fee64f4419296ae2076d195ca3cf52a4c2ebaad93e2ba105dde7f4666e67104ae5e6c6e88a43c65b9e13c26e07959531dd803466fa38573bb25093db8bd485485e54a42fc9e57b1de3b69d007ac90a46a169bcf45a0a4638299f2be3d038b3989a432a59894d3bf9fcb9d4fcf00d98ce1702fca3e9671224f890f06c8aa2c1db88312e90ed0dba99a352484db855c8e2acdd8412e84ea00bacc80c1e30f4bc63b0a59a283836311f98ab097d673648f5c450390569459ec5be3f1a9c01c913ec1888eb2d382bdecbe45ddf2af9c26a949758d05d6711f8e6d41aada712e31ce2404ab241493382c0b50cc44b6e66a5ba71ae576155b664c71557c706d0338e3d642017ca0016e1c8dcd7683da79513afc195ad4eded1d895cff3623f47e705e9952e5170e27946385209aca85cbbf2758ebe0545d40d0e7dd9afeb21bbd982ba6dbb2fefb5dbfcd544da2734627423d13c68677a846207d8652ec1234f86e8fb4c3092315814d6d98a6ca4069d0daed0c3ca2fc2eb518576365bbb89d3cc80837bedf0c02163a8f8851da21958383cf3b2ae8c6385198ff164329f62fce3765c9fbed3833cdccb80cc27d35be0149bd6ab060240ae15f10f31a4ac518d6c59ff500a58cc82eb9d8629219da392063e78314fe949d636b93a8729112944e19f1aceadb1b6c155ff20c6429c71c53fbb05ef73eb4afa75bb0131c273548c8e1feb0cd4a3d778c3d5b58d911e8338974b3dd8fb8afa1fab0eb0e1816b1345d49524b2fd093b716989561feda534f4034d5ec5479864ce058df09085068424b3216aabdd4fb2c5d4892cdec369b4c20fc3a96cc1bc9fbcac5782d526437d818ec85670a4f7723639c5f5f2aad404adabd372dbf2f4d330b750fd318798398e9af2152cd21805e2e13291506104cf251547bfd0a00e91c9c79ea685196ed14da6ea8b51aeda81bd8d499b0dd54c05cce50e789b2c2d75ab0d2c5513a4a085cecf620e5c11fb216692881aa59ab355effab9295eb44a234d562a66d05100da7238ecacbe434d1c2699f03bf0e5736c409dfe54daa2b1895b278bc1edcdd37f53fe8109445335d446ab851feb7c7b065734394f25a28078708d85eecc1050100497fec060662e580a0cd2b4964ceed3f7dce6b2e82e2b8895691538d37924974427a2633a434430e60f62a78940a22a446c2860105cfb4fcd8c78e1cc0df0ec699a92fd64769a7cd9b9485b02bea2883dc5460d08b18aec1cdeb36ad235c9e1860b562f9943e463f86898f98babace646e92867ea6e48d6cf1c0de5e126b837a08959d6e4d0edd18649eb8c883eb4da8dd7dec143f3f907f08d90579e2e386d755f6c4518cb13863c8edf2d32e05f8a852219594a6135752c098b33e77dbb57a8ce430d7218c6718caf953fe55b896ddd1db020ae34e7d0a76612d939ae258e4d9df654cb0c0c67091031bcc530c0e09daa1d2562e3cfa369447c2b0f2b4fa32fec82c2c6f80017426e5e911151c68754f2fe7b013e00b36b77e535a7dc85304f8b46f3c3db4f60ae7dc70cb2d112807ad594c4b1d062b67d41aadff4ed09b0696987849976b9ed87d99f58de0c50637e6c4738a520315f7992efb09b4b8e2791caecab57fb9624a8451a08e182dd191cbe1f4b9e447cae80301ca73186bda21ea90260951c4e63c5daf2b352544c7decb84ddc1601a79b40a05b193716b37d8903b9100a4de08fa94ce3a65b89e3ca5691a0f6ec42e90a720b1cad769c817fede0e5ef75965cf63bf22e9ace791ee64de01121b78dcf131331925abf9dabc44985bec91a8d697778981a822e922b6b8342373f22b5b79712a034812a65aa79c2a5606d478bc006ae726e6af1616d91fac2d301fb025628681a3d0c602c6a656f6c4ca5b78eae799eabf9629257fadd240f46e7c4bd333ed2032ba78a65cc4381c2e5bfcac796a559340b7c44cf1da6f24d16cc00de29bfb42c4302ee0625f0c7a6f4a7d2286dceed6ef9d25821d46181766d0b85a2e9d4d11e0c275104be5fe34d258dfd093d65473c9caea92d52ce512e9a2f899e7513d74ed0dcaeb6526ca968881c9c44a216dac5d2ab9c797ee02f8a8d3247cea7eff83a1e1ddece926e8a341049c6fe5029ed14fcf98d56738736885f4e5439a885168c4a982494a4a8fee817a4a0be8b2ca52a7fa7b6aefe3e99bcc85d13ac79af1fc4ec49e59ba08046acd845c442adf624d543fedf0623721d76a7cce21b6d6bb7e15d1ddddb128b0779f4458b0ba3f35fef37f075fb99ad6d927e18e85bad924ca63da29ff47b659045eec3437770c37712cb93caff49a2b055f4e09ae2b3df22d9f0d045d6d060cd4caf7f8bd1a928bf0074b09c6ed3f70ddc51887182cf4406f71cdf806df9fb3790020256bcf846bc3b2b5b330b08ef0a2705645122a592a23b2c2483db532e4b8919555fe79a31c447eea2a0ea71d4e85b217da4b4ad6eb9d6d00d71d72f824688064d0d21e0c909193e4dfd5cc7426f83dce036e6b299b06c7b244c3c51ff496d4360016ab2ed3907a0a2afd67935ccfe0f813d40548632b7e41f8a7271e514402b10ddda07f6fe6d1c4b0f0a29eb73f0baa428c3863fdb37850bca58bd36f1a97ee1fad96e8505d2c13af8592f982a0b7de82352109f2b741f7b598b5512967ce1e41d5588a65cfb1fae1e8e14e9a1941fcf65a10ed43c1f34cf7b6ecede0a405ccf59718b3a4bf7cb36363a195554ec0be2b0bb6f39eeea8c89a52bb044d538daa2b569c1b7f45cdfd73d99ae408892ce61a89d777c8777b1b11de6f8f8fb76ace64a2307386781773283b6fbefa47e9b86dad73d1309fe7249b7c79757a8450670e3534ed7ec8035c22e9e5a49438fc750a2a22e03a5de64d1942af0cd70c281ba57f61e62ba24bd296bf7da67a4014ce9425188f719325cdd27115e15967a97d02f2e0e5455b53a8f79dabefd77294a92de9be0a7ead9f6b8de51ac3dbdab2bc448aa4d264bbbd70845edfc861c1582272bca9c8eab50111c32589b87f02cfeb6800c1cee1389471947d1bf4bc365d92e06637aefe0a851ef0421600ff1133b73abda524b3a2a3e3ccfb5e6322266db784aa7072e27be9c208824234723e2ec935103d7a622fdf682ff7182649d55365189c829749f999d8714348041a063823dfc0e29c10bceab4010e25cbc12f13a3f897e96a8da6f45daacee0acc357251660fadda9022c31fc7ac636c0cb17d6056ac585ab5bc6b44b11953c3595f7d11af74690f71c3ca17337b35632f85fdc016a0ea551e12af949cd122a6bd810f5ecb98fe03a04286db48212e22eba6c099ddf8bdbbe7d18eef471f3d1eb5f387397a7de5820dd6dcba6058b741a32f39cde59ac492cc451654af37d68c429de8860ee27b6e797a7b8463e23989db64d362d812e237c5924986633272c4d737e58c87c4563ee2ed870ed7712f7a8ac09602ed3f04d9dd5b758dde15d8905079597839bd1d7a4319b6b2fad6dfc63bc17f7c9af12dfd5c791633e869c52cbdb3eada05f79940a483c0ccf30367d402acd541d75ac8f839fe89870a0207c8fcb3e02524c679c275a8fd3e0aba013e3daa3ae7e97c8a78e305c35e16f2bf0a28e930337a1fa8c6414b6dedf4f1c65325edd7aac9eb47fc5504b9cdb7de1389cb1e4ec08472fd25a92222413651e49634c1d2e60e8e025782921eb01a1c1e53f2538eeacfa77d4cb2745da9883e2c3d56bb2a9e733aad3104f135279f4c1b670079dfb8ff454dbe677e0b155b6744b2e9693cf8e354278628bb45139e71ef3c5d1e139068ff058fc6c0907a5dc80b16953367bf1ecd1b254484459d3da0be39ee5d40be372a19eafc8c01521d8bdfb9e74dc0e0e52098325a59d7b055cc223a61899af42be57c8df869ee19b24a3ea3ccf54fedbe4362a41261887a645ba5124767a2c4ddeaf648452de9d17991e90fcd53119d438e4ec80014a0ef92718703fe08c7289855f6823be1c77fe5a10dea22b6d04a021719bc39c77a46c92a90476c8362fbc0d513b47ed273ab55dc27589b0a0f71ee1690f53a83897ad3318c8b8a147e7ed11cfeebcb5ec4e406545c3049c24436613b2fb9206196ca9567666fbe7ff0d4de7ece4a185f7e3a0e65ab7b078939dda907a6a62ce8d939518c450705ab3885b20c8086ff4612c2655d00f9cb7aa9522ea825299c25c30ef81ce75dedc6edff72a8896882531c16098b629bc9c01ba21bd9bc08cf78115692d683ec628bbd10dcd6694f1563fbd22141aa0a63c0a180a6c27ad9bd4d045db291e6264853b86e074f49abfe500c1844a6fb1fed4531c1dbec8b88c03ff239f96702f0e0201a2fc58ab78305ee380dbb5df16941556fe000ad06d5a45e8e3fab5541210dd5d65184d9eaf06ff0925ae55dd1aa208a0c7b84aea6d314907f8b54c9f8065323ef33cbb7dba05175a4aba1855e5a653247d37e79496b4d47b37d7dd3ede1b90cfb1a406d09542aedf833cbc2d923068cc250c21898d7240d02376fe8966574eb65ad4133b462d48d2227c6db8d63e8d0a5fb7b41ec27619251200866d53c5b598f7a0f66df33c3a3293e1c2ed1ad82fae003649e29bf5e465d63a04f3581377b636f82827cc6915ce43829f4c0484f6788397e20f6d706acb371fef15d46dd7a046155f2b52be1e42e54d7e319ae0ecc73936a7776fa15e7437b5b614210163ace88fde86e0987f35cd86b387a0fda1ab0ac45137687b23b0cf97703cd565b88540113d3b31a0c1c878c637909cb054adf421952ac33537a1725c09735056165fb4b491a05a97a82873f5f90fafcd32454b7dcbaa285f591fc80806fedff6f1a70cbf73f1c1b7dca924120009deaf68f939205689a59a4c2804d2ac811979034994832900963cc5b5be7944eba94e3ebe7fba703b15e4e2ad211a879a01685a98a6f71ef4e8bee55960bf5f3cc2ef47ede4227f76f98eca50d1ac26a3f3a94b1aa50cb84ea3245cd8a8aee60369d5a11da5876b0e2def84068f4927d43b223207bdfbb421a096c2b0dc4e1edf9fde2246154e81e4b5d34ad61f50be6c7a322456a747d90ff55e7cce91e2ec5aa1c867271ef90c98d13be7cdab2891c132644a1a54bf195307022364b838e1a2bfccb97ed08352179557918c68878de3ac709f7270518ecb248be7919df85419354fe1d2d22cbef1d49c4ac751409eff4089e8223251ab4d1df2faaa9a3db7417102b45d2e18b07896d7e8626bbf489c6dc7e627894e056bfc9ae70554428610bcdf63c4c919293500e5f9a932352ba502cf87a1e1e3d6ff9b17323bcbc71c4325e3fb5d79f0dac91d29b30c7b879074c556e5e49f3a2a0f3d446f57f08d8b4664a8ef0621dff0f2d2fdfee4e28fa29e2a8780494276f5ca4845e184ba85160374b5bc275428d264cf18eba41e79cba78e9cb59b132c1d72ca68deec92178579ad01e2321e8e2a979b8622d3cac7a0dacd1f4f2f570e3b3fb35c2a0107e64b5e57c3444050da09de3774a9695f21fab2d8ce26b8ea1431b78bdd3b793cb9bb650a58d4db052da72aef7a4c09478c119763c413e5d6afb5479e0a19074990b91f2d5332ff37fad7b9b52c6fb58c280e8bd74a4184ad3e8108dd582c5637e169fc04d9b304dfd5b10a778ce1c8195c02e7ebd810044c856ee54e401e7c491b02f5d7dc5273a5aff07adadcf74577f89f1cc14fbc8569835ff11ebed1d10f28b8da08d338202c9c866940945f56e4cfe20466a79a8fb79e349cbdcb790a740550fa6d8a889a79fd163fdf7d8fc2a92e01fd62317f73b02858b5a3c21a677210043cf6bbd8ea9d77b28efb67b86a0262507a798da5f54afedbc10a63a7fc2be23869f8b40e3b08f62eb8cdbc9b49ca59817a695c00e4660181c9246b2426843679d8a2c6bce9589da486ccdc2f361ed930b93db96a52ada2fbcff5f7213d764fe1cd17ae2e4deab02fbc048cf2adaa0c03a4f9fa6012f4427de82c58fcc8ed335b44d548a6e907f645334db17b991a8edc12e092f1cd0ace293d46488dccdcb0faea6cc27c412b42418e9692b36ccadf32062b6af8f5480ef6f6ab7d1d98d88f038afa8d3ce089bc3a6deacf53069a1a9002b37038c8415cd438751b7aa6fcc5a47e4e43c132baa6d7ea0ad05671c35e912739049435124c52e8d58895a985cbc1bd92ebbf29efddb93f14e242eb261a33e88baa2197448547f94051bf6c8814ad11769310ccdd0c410edc03a0ab6e0048a3521b9210d812229792591092d88ee73722ac0e66c06dc60e80d89a9d6b1aa742c261cb0efb38bd1469b809974424279013e485057a563ae3c8f2cc1cf97e6b3b69e6a0f9b28b8b429db5cb1cf859cac1422bd19b4584c300077f683779a1383f4514d9fd40a45e5d07136e14aa92de02b89471b43ece5eba14792adca85faf97f7c41e877ea7ca87c78c944dd0b2cf5a4da37aad3d31fcc4c58fc5b7765461b2a4f336e583c20f1c924dced318d100d2db0c8ea78a45930f15548317410098daa70e84b00d8bd3aaa38edcbd714e3f52a58b1a7ac99c354d6beb777a69c4f2d87773ae1ad7b9b47dd90326b0c099723495688995d0f4f369f66204277e3c6f42c70211e32442e83b099e724c7d977c8fde0f547d9092fd4c0f6a2c27c0670d92f5c8e343837230bbed4eb9a0375a5de6f61b6ee9caee8f08168b1510ae764a3ebaf15bb0ebdf7a0e357b1988bd3a03460f86c105cc7f3b4be8c65df8eadace54bd4698a41222206b04b7bb3a96be8cecdf745a1f642ebd4d48627c92644208d55a4a5df3216ca84136fec433fbaa430e56469f3abb14d1d4f4ea44dabda5eb728f3668d692d11a73693e592b1c2645d6a7b3dcf92cccd85212f1419d764d2c39504b945795feb5ef81eb4530388eaa53529796142eb322e8948d1a3cc17c4d00c0fcf4641888720bb8990c5389507928b9306e9a28cc9e6ed0e3e5d68ef8016a3c28ef4bce947b1d6e26c16d6768979108db54e10d3632675c8fbdc4d2b8ed225bdea28c9a54aad3a4a13e1e03c369ed824be105405ea8f501271948cceedb4b6150d45104582058c7794e04efdd8d89d15132c7f0c7b69345aa0ba0d2073013ad1514dc6355ef84d33063335515e2b745384ed57f61ca7cc664e6cba2c27d7f270119afd44034775db91c55cd500ca6e85b1d4e276fd6a79cd783a6e3fbd4f06623be7232814a91ae1d2c319ac856d8785ccf28862421d16791ca1576f1769428ac0cca6f809c1df4a852465f98800c2e22b6f81336a7d102b4c205d12dbea71c3cde9d5b01c13003084ad4066daf9f65fad1b6f883c4f9ff796f17a4215baba57d64cd8b1bbc0f54118095fa0e9f5e672e84296a34a857ac3be93d260ef4c00896ee2f13e960a103e96c6e2d842613ac6301aaaeaff0a11cdbea6528e7330080df6f464ff33db577d4d60c8431b46d8b96881f4674290da2222d2723461d22a8b1207f3821ddca468c6a0389bed8e8fdea3fa8549a3f80d28aaaf7c7b1101af1ffa925fb594d7d3fc5001929d2650667d99032f611f50b71545f43fd56bd38adc8d785e6edd68a54be3db7089e1ea020ee73a3fa66f67e2755451dd73eaea2844442407e3153deafa478a5fa5b41a8bc222fb69b1e97951a843c888cdae41fdd2e3b83c329f6648c39ccc20ba8d4005fabd55bb42f07e01616e6ac11ea6f628700dc67ada158513f52011b8959e7cc0cdb7973bb9f308902857bf81e6bdc9280197551d40dac367ef53776c87596988871fc2ba9d02d470d92d4b5966283a8ed8b5598a2c29f1f5a863a804e67d89712467a04019ea65c323a6ef3427b1780f3ff9c59949c42fb52aebde628a34bbdbd98566c97ae661830a1e21d97321a0cef214dd38a82a05fd1201b879513c42e08cea004ab2e371c066142ab6dbb4e594a17b7d8c3d61c6601296a74b9b263bc1573e8072d84de78462eff6cbaf9db3e271c976c5614ba50370232a48cea3891809f74a48a6717514fd1224c88999df217cfe31714e93e00284a90de3d3df9374a4b9fe7cfa6ca7368c474866c3956ffb4c893650a622d8013efe6bb397ee5cc9e08c2b5a55aff3523670b55ffb639ece642156a3ed2a08da9d6b30c18b48d09ca7db52355f0a8f3e779129e5967e128bb771896f0abe2cef399e42e92557501d9747d4a2615261be9e272ab23bdd78bc2f93c76fcaf60faebae3b0695d11da61834bb209c98ebde94ecd034754d9f5692757624b5db1c44a5eb973b831a84febf2ad58cdaababfcc0132a8bb90221e88f261b12ed7d34fe977aaa4c02143bc1e9fc3cefd391572e38060e4ea64c3692052151613b02602faeb7e4283b3cca2d8f781ff6151021c496c55a96a853553fd014ba2da45bd04b9b2b9dce1f0cea9699e6101bbf07a5cc1b9e560e36f86949e2cdfebe255eed96e5c67c00ae55f3645ea108852b80df2122df588dde18b3475f20ad7d984dcd445893c8097231ec86a66f6e9416f6f5286e6fc0e0a5f2856ebe98e616edb8ec9466e04f2ef403d281b518363627f9b73bcd1e1255faf9ffb879aadb8ee46997755565ffbec54a2bdba1d5682827684687c341b90205cfb2f9300f62304155571d31fd1c7077d1098daf02ce24f8754b3882429980f377f48fb0dde8e847ba981e6b91f429b5b65044226a8a55f083e6f07105b318cd02d30e0262dbbc01264d23dab01ebde94e5bb7acddc54e3f2dbb38a34e6fa65015def15a23666cd562155978e1c674b519900d227b70be36422d450274c1f79645ae1234ee4ea0425c530358f535e0ac0b838f92c2d224920df5ae64e114af8d81f4ac2eb902a66458335e9f16586ec9028db700541b8a60dcae6ed66c32d7200183e9cafb2c684de77995a89ddf2217806bfb092d3cf5bb3254874fe4f5436c3f20d28c055f575fccf7fb0404d049ab0452091e546deb8c2ef81e1faaa33bacd89a8bcbc667a840e820cda95df9081755bebcfc5f0ffc28ba1904912c5c0040dd5a4a634cd8f7d6a960643183520cf8afb21ae2c5d377f8580189a50d2faf335efe5e32d56c617c7ff4ae2f092542eb2e46a89c960620cca7e5de496e028653e2a0b599d6e294cc10392355661dbe437bd1e067ffbce5e97ab26cd16bec3e5e1331ec8f4ad2f79583349ec18fa7e7c66ff63d6e40a9a23d0336ffed82f46981e4a318c903042ce71f383b917c7331711f62b6bc3cc412d79f2065137785d65b97fdf2147c2e4cd53954403c9b03a530bc922e49a3116ce3e918446642d3467b810e1d0e2d8c8ab2cff9febb8dcb28eaf99e4631dff70b0ec382b56e25fd1b9e6c6255f9c5e55eb8ae47d7e00bc342b5aaf0986b1c2df0ff5d1a5810811c680546e2792a74c6deae28ef7a4d569502bedb3db14f293a9b1f1d4b9a082f9a2ffd3596667a7157ff30d3697ddfb5909254c00c6442da75a9e17ab53d5d09ff0177af7415935e02609c6e8f99e4c57a90de1f8d2abe7af3f69c89e8ea3c6bea35c26759fb95d91eddc2d0596b836d284d4197ac8e35413fbc5055c9a3b0bfc4730f574102820a7ee494741a8fb3a7f8a1be554b545e0ea9d47f400a09d9aee5a10cad16b6df3e26e3b7b4389f46e45b89d3bdb0176aad6ee675fbe086243759145cd730a933ec4ad1e16cbed82fc7ccffc937c558804a0c8603408c81a2b5d01aee8341ae0ded27bdec868d3ada17de2c06b72e35af5abbaf406568b744758693b4bd5b883a4b95fee25c71b262f7d954dc47cf068b73d55ff8a73f178e543110de8ffc816d430541a268318890bbe2c72a2aea3bc3989cb881b612b9524bffcc1f75eb3cca7b868a7a594899aaf0dc2028f4a74d89d95d52337c4a85278116abd74c0851ec923cfd0e446d05b29933b9a18afc668bbeffb8f00e8b1012761d79c9c4a22f8dbf11fd407c1581c9beddd3d4f538a4e9d2cb7f5bc4d11f0ce39080c74c070f3f279df8e951e7c5db9a2931c47d3ea1b013c0d9556cd2e28dc62c57842d6c3f916e58d26fb175daa4edd430d9c0c666cda8a966ada453e1f150651e51196e4b7c4f8cb53093b8152b77bd2c0e84ad999cff51422fcdd632b1026c93d32d475ad6db15eb073b3284c666ea3d54f845730bb8b06a992d4ef14ba64f221b6b3a144f5ac1bd751a3a6616066bb1bf4a5da2a2b20ded616e11398d119250af43a434b3465083c9f0b3c33c0d3d76181f02173e3adcbeb2524b4366ab9560b09f8fd5a793a3662be44378532341815a4644f5759893e1a02a8354c6c8a794353b5f539024e257cf1065ac878b112d68c3f16a838638bea14716cef13adac24f63d1802842cb892e102c8c8e90f6ee770878cfadf1a600b631e0bd16d71f66a57322be9a94802061a0a00f6edec5a0308a8f118e060ef0c1f1a36efe0fd8285a3ec0fd88d457b9a8bc7a1c4824d86b6121ffc058129fe97195a1ca9a245a1a14975ef9b4111614c0a080241ba7c5fd8ce3880163eef3ced48b0b777404ff8527c87406049cf52d2ce92cf073b3acb1983dc818d45c596dc46ab165318cbae09b2a5d94c1d936e0ff3914a80bd389eecf86803d7f83960efd106d295def97e24273e8197abea7bb4fa8ad06190ec7837fba023f66f0990334aac8f021be3f0715bdfad14d338edf646e7be4413aade62dea75cfbf39f6bf13943b569a9db3461907c6857eadfc1939f0cee3c3e14a24df50df65f846c5198c751ac4f395c58f84dc282bc383c934bb305474219db00a019edfbf355038b5a42ed59decd27cfe2dd7a93517a6e56a490ba357a42ca08c628154da44a1051439dfaab5e3ec28a90d1026b6460f69c042cb9f94a6c272093824892be81196b0dedfe5d71b7361a6b7acdf1ab101d5e2bdd8d1780da60cb318e883081c61115a4ed7f5740382e8c9b70f9a267a12f939ee1ab6cade80b0a8c337288b51dbb14037bf445ec14560db90ef51487a18930ead8e5a76c8333e5c95faa14cb3cd9281e1945548c73167dfdf33242e7906f457044762807abf608dd845a396a0e343c936cdc2130d198724a82ee83f763b94c1a1098859cf876835116bdd6bd316a062ec1475b767d1e6c5e630071a4024df87206af40dc131703c50ebaf0c2799304af836796741ba7221700c3123bca68018f570064f738092e776a93fdc56bb3f3dac62f54df22e73b83090722130bbec7b218fb0f85bb2ded5eaaa1add5c3fb3693c0f8499b5f8ed4d2f0173e338a5bc9d1bf1039b37f41c41155203e5beeded39a4a5f542370de9ceb6ed04fce01683ddcaa1d1843805c9193720aa93890f2edb663b5b5784a918182fcbe8a6d9bac5b4e98610f7f4bc04dd60f0744c500a2ec0cad0282a5b40f1b225b5abed678ef1a9c2d08068e81f6a94abe65a0c1c7b0b4fbee945a33caf75c720c46e9422f1e70e373417c46583f9f63132bbee3258d9f309120db5a7af33f6bd9a64045474858c654ead9e919505058272de4ec8c721a6422715a1a0adf5fd94a871dd7bc69376d21c5b9fea361d3c01840af52235c17fdd6a9e0d4903fc8c0314c8259810556790e4233d7e78ebfe386722a6544c7b9d501167594780969b71f392a01f88f871eb3d7642e6a8397ab185a0284fe45e97e9d89258d03b7ed45ec04550e7ba943b28debc0aec6796b44f56f256593e1b3abc9516908c2aef0ba337ec065d728bcbd7a4adf20288a4c534c7d63a7fb4caae048b5c1721ffac4a1d33f829cccf5b9074131d578d4486b92cc17deeb60e79f1efe04badfd44b503b6f75b34c8eb34a1a08e555f69db4fb5d2c2e5c79a08e7803773ca9fa7156afecefaf2095473b897fdcdb1d126d753867a5a4d2fccf41eec66032d704da729e94fdc96ffa93e60a502d756a01c36a1f547201b452b293788c0c59e733c796e01d89dc6d7c02aabbb44e42802e308ac18b5729d96444edbfbef00eab7d439b1e724643779699ff32adf9de8123d90d40d0172c151134a0468c277fbda02ed3f8252ab12b0e51a1cbc2ca59190bf8f2d090fd20c6bc66c93128ee118b03bbf144d4f254e0e797130850bf2cb6185bc8640f5413f5b16e035c25296da6d5f240b2239b0d8294caff0dabbec561e0e3ccc78eeffed6a218e91b1ddd048db92f284edfeaaed970c15e42d10f9f6ce4075e58bfa2dcc0b8e36768d6b43b3d1fa102a35fe65564fa42735029dee775654fb6ac89c6bee06380e2444d7c134062cc456bbf58cd31b28c942590babc8fcfd9fbc127b9fd4db958239f4da86d08b008f812fc52027b82cec8ab2c19f081f5d69e8e365c74428d041f09d0cddbc9b5ff76812fa588e29fad2f4d75d2626da90e08120b93cc8e9fd286f8e926002917338ee585692f914bc23c8a69a1ec512858973b1fc9db9b20472b76ee117e67b975dd7d6f79a5a08f1ac22c41a6d4383c23f242dc690f8b8d982e674f907aed006f8f97d3f42d860bb4cae1b9e6d905eff1a14b6166e947622f07daeac9ac52391c603db7be646f2a074544bbc9cb3026d6026e26b48c9c682c5201b387fe48824af350dffc12c3a9797da2409ab2e985fd817f85cc599b7be175c60ab6bc0ac61f7b08739c13382ae96808570b886988232c34432c9bef6e55141ec4ea572e7091ae0a89cb4734a226bf5885ae7f71cc1a8c732cd541e769c34d8868d9b401d6ec0fa3d67c9b65ec75e57e237cdf3a3c48d9fabccbb1476e18d36657dc0ccf835183c86de819c7590fa903fd526859d42576a68d999e3ff378c81251735eadec3135f09309128422a0c98e1a6f4e5280c0befcf9caf70775b977dc38be6dbe4cd5d0e6401d4b6bcdca531fb5f8c1e9b83b27d40571e5059ae6d25e330455fce7da062ac22949e429a0cb04257507694e4baa2e0da2d47f16bdc6d0c930a5f831ad637c5474a198442b27e31551205f0fb987a431f69337c8325d3e664f162fd51376ad42075f43d3e8984b685d039ecae352f8c90b807b9beaafd34f13c8cd02a445d03d347758f0482ab4f04d6576813b51ae5102c080abc1aaa349531215ee4b195a300c4e76a32f26d8b23911747dc728c177009218b8449e941989e5b0d8c88de3c2e74ad39f7653cb4f1ed11c63a0decdf4ada7127b38a25c8852bbad9f2efc8526e07c19d66aff491c5be67349732551c2b892de9f11c8b7def216eb4a65300f7e574f62f34ad80fbc3512445403fccf2550413e207b1d427fcd952dbba96f856c6d4e44abcc973f2e532e724da49b05c4ac8a1b91d57e9fffef8f323509cfb5e48bfb24b7987d25ee4255da3fc2b6709985cbd27ab139db0e85486732e9d9c652dbb140c9cc99de2af29a79245807da4697928430567f298a62ae25928088099ecd9a1a4e76e7ae1f3755e6487a2dae99245d40ba3ea7745c7bac98005b86824e94b246bb1d37104649f45834cbdd449970631a4e984160286b0aaa2ad8c8e556a7dcbf5639e9c371446bc77607606fab46757e84c7f9ab47f0dc9b20ac75fea040083cd6b67871e6a928d5fb7b5de89371e651ece148205e6c862f1b5e19bd7fe06430f276d59b1ddb9e993188ff7e2b448bb6e330f86e9964477cb1c92d6697c9a6770ccc8ef742a35c7f91235e17ad13c580a2b573b1ba055fd76f9ef09aa1825bcc5601ce6b64adb5bddf583eda5fb89eb233a0ec6e319abb6faadf8936b0574e8979d22048f209fb2ec4c3202e370ff98db3d94b54e3173b7f5865823937d7fc6197f0137973aa43853515a053ba79c70f887bf407b7927b33bf5c8a3d33541b05af7f9dc540eac41f8e951fbf265d5ce6715356c39bc43bb0b5c28f2b376629dbc797575fb104bb02089cc98949a3c5344465509c928c4bcd55eb242e096916530bc68a4f6299e1b3cb18de93fd3739b5c96763a8316c0c72ff00371abcfaf56ee88c088b292c7cfdb30a5132958c910cde45b463340a82b0ae7b14c8df7dc482a3ded5b6d4a6eed96608b981b716da600a9bde05f0b0f201c7acc316789a3b5740a4a5e70ad2e5096abb8db862cfeb84043e97aeedcd1747a037a993e7bcb622893c23e687e20f176862b612d6b3194b48b41e947f72de6d54947e00e091270a11f40cc26ee864c5f04e68301f44edd0a2b6839de1d6b7de868e9831b88d1a1c75931ebea05eff349e645502e806f3d5efb5b51259d3791321c57dfe3b66cbf7cad1cbdedc9f8436ae9e2a9deb04976f7953674cd266cff9492ccd3e2899499220dacaa5eb6b1d94cd8a5e8e294911ac62e6c08dae323903308b740d0ae4accb2ccf6ec44167fe5009c94f8c886862f645f8e271cffe9d0498fe36cc25ca59c6d444d2ce539b80219891b39b1af55f4db8c9389770336b47857483a15f125632f6c3d1394cf2c99d742c54049e0ad19fb2cb9a720b5f456eb9309b6adc48adfefa48d62df4bd05f18e771faf27c39adffa25417454b4480f3d4c085c373be52217c46ff866302d07b36485c71cc2fc9d863286e85b89d9259c3164cab57d8272b59bbf2697e45f7b1e7826bac2abdd4279ff783e00d804be03216ed5d7e79cac8425b392c354ccc8274dd2eab5a92731d0d03f9e2abf707bf8ae71ef01128439ca300eedb96028804612d6bb88e8346a079b4af9c1ffdcddef3ffd7ac0de73481c7c458e2bccb98342069bc0a5194c82018b55fedb803365b092e8f853ef583f693e299868c2ee8b4e00953551f12cf8457e3b9b76cb28f7fe34ab80c92ba5ae3e9e5fb28c4c867658ea80174fa9ac41398898f6ef8e6c28ca0b037de03d343b9639afeb87db4822e841f373447f621f4a6e3c0b861c6a4bb6cdeae6631540300b9f198a75c350d97b9736cd63346409302c6d4f62ea9866a786e0786a6665ab3fd6c5d361bce28b6f127aab558d12c73e70f91119135d74a8167c942627b89464d5ba1af763d65d22ea4fb597d3f583831c1b770fd5778e59b155d48b13e8d44b0a6a9589b68e483cee7be9bd52aaf3d7c7293fee1208e7e05d3c841529757b28d509cea09c82d3ab0012d41adddc56583d1dc122d01ab13477bc79662cf4c6240ac0b26c5b55253294e4d854485773b1fbdfc272bacb5a762ef6065023634142739c908b207fef193543ed57ed1cd18bb47119d39cf5ba0107c4010bda8d628c4c6383257b85f60301095be42897cef1ced93a04ea7214c55731191360826a82c52724a9e0c3388a28fb66b4dbd15deee6e92bf33aee1071cc40f321871566c184b6806426c4f5d87077f4d3ebc77cca48d07380c5421512e502cd3c68778f6320d0a5cc0c271843b472804ec1bfba3f777aff19ea6c91ae75fc96a4dcd77c3ea7334685af1cc44560c70dc9c9b75caeabc71e88ac0a2e9824ddc7bd031bcf2519794821166d0c65f7d3dcf6f6e2f2e54e8b05692f6cf937ee855fb2c19d529ceabb4524a71010ca8e6908193c3571577e5f7a193e34f63fa25fd4a53c0ac4e984154304ae5802914e0a62e215001d988f479d34c888ad566401e5cf603cab5fc3e72fcadda7df43f577272afd9ee1f48622f0675fd3a6832b2788b85b36feb377f7f276c6bad01456926bd1f633de759eed0a14b811e7dd43f8741c21257ebce556108263807e09d4854c2005743e1ac7d6a5152db6d93fcd9dfdb6e97400824620329e8f82d86eeb4951a9b383b044221fe31d3e18450e3a29364badf5159747001e6f8bde0f9ba86f88728ce3094986cd02340b752c72d4caa1cbae0fc2d98890e1037acdc8392b4042bda36cedcbff30ea55dc7fc1bf3658e06cef07344c1d823fb7e4bcc41c2c2b80460d5d842d493329b09a82c726ce2216c5b554b47c1098a78f37f786d17485734361749c88597b6791530e0a33621e08d70d023809dc71435741dcb50a5f97a5ae3f20bde7d55f6310b93bc9158857260d46264c27f425e26bb8a93a4261fba2b3c5b8053297a9ec56a37b3d2b2cbafeb573664bbd3aacccb5b2d361d77d4c44281bcde6f92d2685a78bf794b10e28d288ea8a0f868818cd4b2ded7d52cf24ee0be97f08c85c0a917e0f820c3141df4516c72391ec2ba5f2098820cf65046c62f6dcf3efb4992441a3711706a7ae306bce6a3d27c9628ddcc70838b1b9ddf5fc3825c835248edfa09717ee3e208f869772f42459eee3b795ea55365290b0707536f9a45f3c9b14729a0b178710f4bac65ecf3c747f57314bc5fa7e73d3e7a3801e12d8ae4653aec0587bae9c6041be811323e1575fda76679be88ef72c7efeeacb2c01767afb1a58803a9c0cddae8d83ce615c29a27c90dc1df3443e61897506fd89cec7d70e8f849f3ee43a6bc67996cdbcebe1d0c2fba6ec53ba9140acb2857f6ec9909dbb17ca212087f42be8bc630cabd3e8f92566d3fc25ab252ba1921e32a4326e97657d7bc49ff22c7dc9612feb69842bfe913791c2e86e6b51b6f38deff7eed3f722f65a911d02c99ef079ba3175ce6546e8ec1ba60181bc904cd4d68fba8353b33da8ae48208f999839a4c54e13278c107d42859937999d0a59c1d62d4223165ab5fc7227d291e7e153e3ed89c8fc89d19a2eaa9c37541c5be79489c866c9db3cbbc1942182d1333542c4dd1ae11bc6bbfaabdc9b116c09a19384962806681143381d5dfb21250cedddd40cbeed221f574f540c5db98011610e8000ac8123d037454f7928c6431841516a876c3f07523bbdca771e8770f6aaa0df133b3d9fd77bb04448fa2b25c0bc9cb778516da9fc695df63021b7406bcea062eb32225ad5fa7ef957722df20d53133471f5d379ae79bb0cfe98ea95545bfd7d26831f1b8bfa63ab3c014f85ad85dc51a3dc112db9bf596c6162a3bc6f1fb8faaa95a46da6da4cdc2b95387b2b2f758490828980b3ea2a47d26ecb41a25167e48bd8272e5b24d524059f30d3d5a22b97e0b2e20ee00b171d700e2e1b7421b4c76feb9f261359d3d6b21fa71fe0fea4535dbc8834eae17e06bb1dfc5f766fdc4010830cbbc4c7cc6f0c63af46adbf56784ce02904ab53adce1aa54991988931daac0eeda5c2507adba4c87dd260dd0dffa1ad394be86d6bde3ea78d72ae64993a8b0cc8c416684d862edeecd119ff69b3c4ac6fa63fe370f6a0b22472a8f20ca4dec3a6f4b9d6e53f5f1af94879995d19dfdd46a6af01e9b9b449cea140e319c2b0cb93fe3ab39bed7dba48315620b2a3f6107d03714df5088e5c313f1e5362c8a55f2294a6caf90c04a09e0ac1cd823a430c97e311752a2b08de52ccb1ab1be1b504e85bc23a3d06fd8e64fbb8e2bd1181ca5c2d051f10cab7f520b84b3c8feb3569fd0ded4edb4e0dd92b8134b0a7cf36d856ed1725a4bb316fe9962fe39b8ac9bc7ea035c9f85b4b5422b15f2958032afc55ca7e2ed79c70cee3eaa573318318f60d847ba1ef645478a208323a3aeb7be4ec896d3d0d3c63e0a57c4e64d76a619d4ff0a9ecd0f5469fa3cdbd9f8f8b2887f1a46ab19fd3edb5ab4335b725a643bc6d40600edc518db344ffda89e914e24101ecd0735914e8b6d5de6bfb4bb75a84945f998f0ba6a10647d60fe0b09a828af93b3180fcffe1e1e89c29be88dc8417754524f5860b36a892d5d89da0198e2e7e4286bebd93b95c0b15b4bfb4feee9dc582ffb82d5a6a58af6ab25c48ce7eb576526c31c4424b314c4f92c6b7ef3f7fbedde91911cbf91a4c1e86cc8bdbd5768d48cfceaf40c770197dccf90ff97c259dfeb9ccfb6a8a84bc545d8d23412a5ab27fc0f50c9c75ffc7413a414fba8129222c4fbbe45c8816759e7b971922b00497d56658e228f3f90f8b21499a57252a13182de57bec3661909842214e5bf26c34bf3a5d293b31fc8cf9a76c2cf866d8b8bb1426a270e12e4d5d81bcf669b86a446d006f4d31c2913ed9d8f8d1943bf460442c1ff1fd55ae8c84113718a252dec600326fafce3cbe09aa41f06c16d70edc0f88bf32e9136e54b4e3a40fb5c6777dcfcb822466c0db373867b572c48ae8ffb826f1e319d8fc4fc1dddb0c8896fb71b8acbd74d4e304f24495c86c0393292434b2bfb72c712f4c5f2c94915a1b206c88fcc4dc4a99decbbeca1379636e06a7fb97e61566055fbd61ea51f73cafc37e6e4a5d8de9d0dd368ac415c9fe97196a4c4a149774346e368c3f37e9d61e497a8055fd2a2ae4130bda689b2328bf5d5272bc588d03bf06f4f258e0e77d1d5d764fb1ea4e1a14240718159d6069d6bcc8246c25781d9e4c54ebdc74c49bb5444f8cb8190466a443495d9043edd1931939f389fd8f5eb436578cbc2c2965ef1923bc7f064d325d0dd57aa40e4d953c1296c112753df782d825bf84a010e02709d5fcb9009ec77d8014929f9595f9d5fcd554ec65a17e8c2b86df905f493ad2b68cd9c1f05f0c6aba523d4060ef9515c66eef56520c954f526aecc070f86f9d72342f38706dcf9cd93f48cee417e1aa6ddefd45c4875603e263489594154238c2fb20eb2c98e2a8ff6ff861cee10fbcd328d371194a9d7f7b260ad259ea7c2d1bd51cf7f026055397dae59b4cb143b06c4e7534944614fbde0edd0b58998e9258f9ef53574e9e0edb5c634f540109a139dc7983b99c1989b19971c02d946d829662eb3f28be4767173677e166df250d155ef298fc2471815ee97ddc3123cf9ea250183b951628214c8b635eac6cb8a6fce6681d79e7c63bda434ed122e2ad111ec47c84106b1d1a9ee4be87ea5ea5568287ece404a501c98e93e59b7f3f20c9c207704b48c5b73583ad1c5d297e56cff7dc2d913250659466e7ad5fa1007fe7fa23ff06e2a003deb0b545e1a32bc9483982abaaf68f8516bcf0b8761ebbdba11e6861a5ee6f24e39cb2001efad6ec3f3599ee02813c0804f18490197a5dc7063ae97c85b414bfc3cfbb6aa8778451537047d77184e737a2921e9700a6a4686731fd7a6c586a34a85eccdf27a84f2697cd35f93f9750662b3c5cf8a065a5e25c78be6ce922bcab9aa24673a161e587fad41008d08ef01e6ddb8029e734460ba4548dffd89b4aedc5a96cf889e2071f988a095459b971290a97f0f990eec57149d38c41fb79cb0cc5eee69ae09f0c0f0cab5656c5a0325c0a59b73389102fb5df2b2276cd70e6e34d994207d4e55b3429caaf4d0292c43ea2eb01cce626ea2aba4a7bfa193bb85cc0ea6e23b47bf4b2a762d1ea5c7c6f7c5ca9a3a371982cd565a0063af0dc518c648040573212e8d4a65efe0cb3dcae260ffd90d7cec981a9da21f5b2f6fb369d61c4ee643261dc381c027b8e9150aec7465165a1b64e49271f9ac00a4959e189b73d96d1ad808b508a6911218f1dd444119adec7d5aa373e580ba23254ec3ca7c56eb7dd6b36412f98008d3a7671349152575e9f3cf6d3847fe21a9c62da2aff2799b60d90a860a8646d411110601a300dc96c9a7d93f9be392e6c7dca8aff7af50c5b424123dfbdae6e80a8a2ab85874812306add0758b487de1e26f06302dea8a05161eb65c65e2d1425ed7335a7027f32faae36f0f4564b507b638e51f28f3e8ea98ddd3ab375b0890de2e38b6604be10bc3873ffa539db0c13f5f6107e37513957f046f25847e56698dcef6bdea9e14e8bd7bced96561eb339113d64cc243f51b410d4b7fa20d8162cd13034dd5c963e22bcc741c625ea7484f97bb9f38ba259fabc6ea0f4568d73b2afa63766360a1d5e68d8e78a039d704e9fab87808fa6e2cb82e2bb32934b2317d0e2962f3178adc32f679c09e72e743858b59ef51a03a2abb7676cb773719ecd6e63c6222cf765f547834abf683264a4a2baec458da92c811157c41779f00547393231e0bc36a5406957a0fa1880963afabfc65a336c481acf87b0fd44c71b80ea177739d213d311ff7146602686ed64bc2d9790922aaca6701a44a62815c075f7f69db5262fe17be8b25868547666d11cd9f037834c8c3900b2906503a14ea64b1f2e0e83ef5bb3c800fadc41cc19f6298769141b96804bea5d141d71ed199915ad99b4d0991f94e7271e5dffe56288e11b4be0679e273966b6ecca48340a57a3447f48fc68d01ca284efdff5a8000355e71ec8f9726bc26eedacf86ae317ed4ebd5021a8cf67ed6a5b88281d6d8626dec252eb3d32728a4ad6ea4ae074f2ed7a8da6caae4d84cd5a00125682a8617563f0bbdfa8a6149aa42555f547bca5ea9e0911827583ac265130be561e150eb6aced872db12c2cde346c6b42960379ff63c888ba0e6d6187a43d796dfc4acf74c7ad3fd1996d28a6f88dbe0f23919449d1bdb79b2cefae2163f2a5b3b0086c7f7beaddbb0cb92425fbb7f64f0871336888df347de31fe54a234aae931ea4f46acf7f9d50850724f5ad16ba85d09b4803126474713cf547fe6365b64d8f5d930c9d0311e98aef3192d1cef54d75d487413aef9eb99743ce597d584974188fc200360b4952bb17e6daedfaf8d4add7b3507d3dba4adf357c1e21b8697152f2092518d14a4da5ef2e935aaf475b8db6ece183208e5189a980336b050afe5e76911eb22cdd0d73b957e5d7460ab771767aaaafde78ab6a180023825b93ab3f606dd2370ebebb642ef5dcb67983d4415039e3b747f66b59fa629ac700cb5c7caf84ed86f0a6f51a48c3e79101062dfc285eca5510f5589fc810ed98bd19c81901585e1bf3224ab1f8855c95cb7856951dc31f0147366c3c0dbc909f1af2fcdf6abcd7138e1dbfa8dbadf257fb9673263c4da8bcf3da56f927c79db1e8d4d7f008d35046123d4da229d9454340bfbe6bc445aef234f4f949b3d45442b43d8cae37238564679060e97848558c3f54049389b27e616b62ebffb2499562069322f2b3c27330bad359ce140607bc1466295a4fd2ea174790f7ccf66268519510f7911be4dfc00c940dd1f5cda2c72a9b9f7d3ce3c681c79e9b955a82759cc683393888f9cfd5dac5459ba4bb54b9ef14f376bc426b8480678b93ce838cd0249d6c893ed60e3d44f73ccb9162abe8245b418b6ac736abb6522c48513d1fbaaa8be79aabdfac466f22248eac3c1dc3cd2eba29e0ee0a64245f193f45c8c335069156b92a6b7c491549a10a424a8024ff83259a801aca4b7ae1a2a0ccd5b3903440397f4ddb95376b6e4c9b6f55923f11c85cfb9b9fe08aec714894141b4d791a22643ba0ecd242d83831d9b18a7216f607ca9183e0b9415f364373bad5927ff98d7da724e752912c8151765aff2583b680f46569fd47050438fccab483aa25e59d82eefc16f8014a5921e8f64d12d057a2ed3225ed7e6b7abb932f6a2d5e80994940030104ec0071a009e2f1a786e0ab93e0a438f7d7a7c5a25adedf0b9d6755dcdc46385d186ca30fe79ff99a31e9cdd389e7ac99cf37a9b857302ae8f7369a2c4e7f7172ab87cfc48900f54fa7b84dacbc84a3de699f3e65c6dc884c251ef336e11d73639a02b5b736709138e18f4bc5dd92b406a835d6b3950bd9827f0126ffb5d57de11a0bb62f26a3b3f7b98a065367337436160175c2e737476784ea6fe53d821b7d27730646052055d071989f026661b98640a481ab92e26a495608afefc25d74ff01e5eabb749a980d2d041302fc0f8070385a72baa01436713b409ce0dd87a43baa27faf0881d1fa6748daa3ddf98800e12038e44d2b162601d4e765901dccb19697392914906e8d3b3106a33d97ad617674012cf189b47940b75c0acef17d25a49d6f4a935ce4579babf388b476850c8d5a150441aa13f5fb6bff67a3f5219b99aa8b826baa5b1f23deac8f89ba543247ce194d9b2460c6cf5d059acdec098976f11896fbfde8764545680cadbb7fc268230e6ef7053dea0414434dd8acf19661f9b5eb51c27f7aafb28e3ee1f6327749193f5a91536ee62399e3bdc5886913ec5d7a6c11d93acd1935e432816f9c715544fcb291837ceae20cdee6c2f40d004c0150c90037806605fd3b69c82f79fa9fd640569247be0145a39141a4bb1017f3324cfc08316d8d508dc95eeb7f61722c21eb96698d59a6cf365b986ba3db7728627e5fd4515086c1a6e049020e808e85bac49f6056b82fc18215656e29f76cfe37d4bc166cb938b84d84712baa4febb86cfc5d2b42309e89b44f576f9de0655bab34387f65ac1741c0cebc798cbcd2e84989eba1eeeb6ef730685528c95f5f03d88695b7b9b8a3f1974f32e5df096ea9932c93f72d148f33ad9b02ef9870e44e501d5db6cd48ab5975ea83ec519914e8fc09da812d0af30addce6ccf48abf5deb92ba41b747f98417f5aee21c903511344905b6169a19ee30de6a2e06baa2c0d04d3bbb3c8c7af3fcc47ca3c5fba6b5d7b3c863c70f6d1847e9983a09fea830d529576650b8d2860ed862bab4d36da2cfd412c02594e4621e68b9e7ade39ea0845733893b5cc210fb5cb395f41be490f48977c7622fb09f02d40871f7c105d225a52638ba4c982ad1dfc31f2374eadd24e711cb6581c95ce6f5d416bd307bdf49f33d767d3d42748612cef1f175c0fdbf728b464884634bdfb6d1df2bcf28f744b92a01aa2be6d97025f1f9a5631af62c721e34db1ea09ba88007d5405af6ffaa99cd6559984ebacdafd5019826ce4a5246e5dc1e8775411f2efd3b521378c1d906cfae1593b3073d28b6f1b79db13a1fd808dcca74ed0ac68bff648676d36b6ff7f7fa6194aa6342edcda1053c84830515a08bc923288b4368a8bd5941140ad0aa3c8d312847c6c7dd708a17f7fd24787b525aba26cd20e03407fa1ac9ab7ea17dab746d68b67796814da996855dc471b70f996e09d4c90c360d516da1142750ceb1be7247df02e0c19b80c1ed0f63ee4e6e286ec3ce09d8431ffbc992d42889f1684290aad14eba313a2be8634b146f5e830d72fa1fe37a1aef5bfbe056b7c236dd778d540e3c9ae6fb1ef278b73e7b65455eeb14c7c6cd3afe82a1e15857b0fc807a20a0f1f9dee0a85cd8987cc01923cc257a1cac69d05a6cf8b0e2e241d0d53d4a770acbc74504737b27d954fd5882ffd8777095a12366f31def60078edfbcd59ab28d6bfc74a0e13382177877c79687b46b4831c78d0e33c6798ee2b56259860565cb34fe728975cc1e687d15fda80fe59606dd9d78ecad063f2994601f54203d1a07f34c2cc0871045d48ba012532eab6a5a146d732f1ab384a12d18a2bb04f9cdf00bdef2aa2448d368745724ad84c40d33b2caafdee7625f90ceb7ba78baa76e3fccd2f8dde5fdbc948facd489e643db816d9083a91e5c3c7e69ebf9d20d9e621bdeffd6730c3e84d77765c6c29daae2cc3b9ae947f5405bf9ea0f3705ec63035932d409f65d60c5bffb5c25951a8565918336fe6ac4e750fcbc1f0fe26cf41b83e6ec6fd5855cad39e1181c0ea3055a7648a4853d375781a4e01c6088bc426db5f10acf72fd1e7d2d543e5e87d317ec4ebb966574db7aac381897cd27d7192c47a22e4fb7bc520b6e1ab19e330230f9ecd77827ef72c65e7fdb813ed5487982453654fc3c359a41f7e6d218bbd7a994c3fa1679e8a8a87c65108b5d6f63e50bbe18ac46075a409c7c66e907e8aee184599867adb60c60bef4c1881a939cbd57d98d3080cbb500ad47df2a2c638d54c48b80673a1c747f2f9a4f6128a005906bc5d72964c9d1a39b667e524e80c7fa01a057613a282731afbcce067dcd0f8d40701e898e336fd3a02aace6b41aa1c11f272f83eba6771271a398bbd64d0eb34312a401fc2755b888f6018dad817d80b4af68582e22a6537dac3edb30842805d488106f9438b5a9355dbbe0087570068c484c990b7236a22fd35ed05048ae25c780dd669e8368741d90bc419c3142e523d3fcc42bdd1546b68612b53c3b00f8e6702dca465c8786ca1d88fbc28d386f2e26b4255dc934c496d0f158c02b7e826c6497cc1b831d9a5900bef4d52537f51200713211fc754b26cbe40ceb8a2d258b95b12b93eefc4ffcfbfdd0b99808b36bc980bce06a152b13683da28ff0095ee7d764428523f189784d471052d4e2ff87278ffa029ce893dc86d37fc4af31c019d3523aad1dd539a7a82f4008727849e95e254ed6961af0535b1d8d657b60772e0dd9dc2bc84dc9f8868bc449232918c685c3935e64452f22247ef8911a6aad26c57a6c04062b34eac56116072e23db8b86fde8c01f0b7f4431458b2b2da76b759dbb7ea04ab16d9495449936f9878355f24517c696900a873a17535b00861e8416b5054ac24daf20b769504fa9e50577a3503d5f7a7b851106bce50c73b1b531d9f097b40a77dd4c0b1cced0cc97b1f82f37e41c1f5679d85e8a696bea7f774bd1518c707bbc45e87060b1ba18e1ed122cc968b3cd7a86285becd96e569c02171816af77fe45975af3e7e61235d054b43cb28480a3e80b21f3b5b44b461ba5ceae3b2ca678461d1d49a9ab6099415401fa5fceff02a4f337e7475afc0c6e241c09d2ca3dc222f13da2bb0033799075cfa1d139539484b3b0f6b8efc2f5e54da36702bc5e2f4f10dcc64cd99ac0c82c299abbffc3d592ec29667f7f9f88b92b7602d90f94a82500b185ccccac206c98cec3a8d3373c577512d6546adadebd869e031959495336f08472a780022c1cebaf9c03fdbfe3bc052d694ef77f0746719951a5284ecad419b3f42a4e3883bb50753231ba0cd0692d133b63f7dd7bdaf3d52948d057e6e371b1a56ce26f11d800f8e42750f5bcaeb7af26dbfd06a4ba983a8be34b7c1622a081ff4eb7ce5870d8c9f82b4cf47e7022c1dc5fa4526b5a7f9d705447ba4878953f5bfd4dfcce6545a9f99bc8a7f3ac575c4aaaaedce44dd54edb92f670620d09973f7904a8492e8610edf6f84f827d6b684f06a70300550e8badd8dce348209a4cff1239027b9640a75486dc542cb9ba21c526baeb4c79f90a55d9aeba79ea52b3a7e72f3f7ea73ace0056babf2d986896d4032efad06fdd7345543382330dcf353fbed71874019117b363f4be2dfbe32b9dbdcc5bebb01ae4428c642b2e4b56d153de1c4b2f3d1ec99030d323ff37cf172bbd017e49f86d6b7c6d1c89e390d297d9b9f119f126e75e651e26e6f08d5fe7bd8d3496eb1ed28f766c44d4678da62e598496c735e44705b542f89faea30bf95e28221939812cc8c567d928d25d104f6e11f21d91564e209f99240cb1b02a02c8ab92442563630299161306350df2479694ffea9a4d26c790c247913e34f88999bace9563043a1f14cea5d126eb8f794e1c6e7deb59bc44c7b068b3fb5b4a69e1f9a44fac5652727aa76452dafa12da82e28f2d2853c495a2f9b49c0b7c2b53f169a5f91088004429518135c7fc63734ccca0d31fe320eec7aad89bc03a7149859375df60d330526214468ae2d441e3ffb23c4bf7a7413414d2cca1dc515e243ac3c5909d487c4de6d96d44674f4cda8b5097f765bf6d825e2173c46107561054cd7c5e7f7fad595f372dbd2e861a9f27e9a83b02cd18a80a58f8bff2bfaa0bd51325e10966628e9bcf963099685a8b510c0c029ecd50a76b5cc270c34c9b69e3c88274309d2c7a978f443e0628658c1d07ba37b3490b36f62ea25919d7a45380a780b78a158e9e5892166add8aaaa3d3e12c4de0b8984043211d215c8b69438e9c4d0b19de73ec97b5679d2668d366de02afb87428cd64e2fae310b6658e89271a9b1919575d503c294fa2b2cd817f09d1c9720d777d74fcf5f99644c21cc9440f694cea3a3224a58365abd392232b10efd57741b7c8f6c5bda0c4d892267bb3bdb152022fe6b9c4240bcaa55962bb7beaa8495e8b45a6c1d8d9d1475ca66a5ce8949ef1ce6cd50af25c79e7405a16d2773d6c348c93f2d22831964b5dd636da1357e977632d301fb5db1362c8e6361496fcebf30c017c206b8f13f38084d25fd3a6ada8b719f66ba74958e2a903a68c33ffd218ceed9cc6e106e8a2fe3a06ef5b1fa91fbec74878f468edc0a8750bee2d39b1677153dc5991e7dca5c96fedded7ec6045f871bb123d15dafa99ad98c1c7ff20fac0647a39bceb5a4d324f78b234cc99a3d18ed74b65a90ada261e9825edc6355b1b85e9b185f8efa15a20ea3e655de04961c3994037c2ce2d0c0be8dbe1410fb496f150efe6c1cea360b45b2252e404424352f1b4a4355a13d82e79a8324d4f08ad5509c05f9c4c1b60cb358af22197147ccb457eb185474e6872d3ff03299a82832d24270dea63f9addcba4947e4715d98aeecbd502d1031ab578d05189418d11e48e1be0fdc3348ef397b4032492e707ae4b4ebbee4951565a7d6da2549f89116f43aeb6bb47dabed16e2106475ab0c88725db022629a65fc67ef3c5c39eacf996157dccd4f27714b9aaa26daad8d232a8d1c907e2a49338e21af7329a0a38ed68c1761db81ba3179bd610da757baaad03b19653dbeac61cdf9fe8fa2b55d6716948e89fdb9e7008f6ced16ff5edd81ec14f1a9e3cb345d6e405afa2356543522b58119cc79fe2deb080452c3ebe66691343494af1a3564219b5551056f4ad2be4decca84617594b82bb2d0041788fab174e8fe318e675f5d1e14987a6103e354237c6038fa677cbe47d73e3a8abad4271a04252afb674a7d46d1b4fcd5cab315e6168897f0120b1c94a6c8218e37a9f99df62b2e85332cf2f25b3fd3abeb242f5c4e8d89265843d17b28518914fd7b91f61e7eeae3b29f8b3b919f99c937a7e0e1f1dbf6dc3f9637a8b7f876b5d2e5d4c850f5013e2aec1836eb7bd994834883f37b52713a7103cc9e83f36b6dba68513556d5d83ec8ade488f17714c028d0d646a164a49ebdc9ecd410b0bb2782d4ee896c96d4ab1c0ecdf4c142d7ef85eb2591c90db78594a76c0eb64d31c539bbd9fcc27fda049a8cfad78df5af70786a13788d93093a8cab1dd620637d5cb1f597b9fe1117ab1a5777081bc221d9e98b22533c18f935e194b5e1ce1426e7023879f5b74158a05832294c43f1effb405a4c5459fd92e2efc3ad3c937bf36a08b6d574fb81843074f2ef2175315a00ea1734661a166253b9ba0028175b12f5e0d7cce6ca9ef8bd7483ea85303524cfd7bbcc8eeaa9bfba652de7b6562867696ffe75c19867d678be8124d98ca18244ff7d81ede7465295bea2f6521f60cb3ddb57b5d4cf298e009e622e1bb14c47c0d873337c6464a4f6b1a4437c952d2fb610c4269e4bfb2ccec62c62325ecce6bee23c9e9269d5fcf3d080694cb260d91b3cc9d084dcd439cdc8c0d6156354311f1bbff5cb2e0be3e5d298997dbfb43fb753989187c77c2bb89eb1434a27e5d8998bf3ce56a427f91b114314f9de6631098b2178954641c1a423ad574922ca1eb9bac2a5e7ecdf15aa0a3bad3a801c4edde1387bbb0383c8ab987443196468425035f1917edd2ec828e1a13d29ef19035593ca408fa10f19bf20657b900d5d8b0b0d1cfdf082d7ae9eda8e255ec5c888f7a41fe7c2334cd28f4390f17fd3eb083357c56bb09ab74d4be12f3f38738e9a285c32029ac32f23de6f644a447fbd6023ad70ab9717ea4ab7037ae580bcf2e224c5123f0ccd0d27ab72e5cd0c70ee4651abcff79f9fb93d41f369f0db371656c82f5b5fbec130a18c0275177d166d79e573fee83f0e63795986d4c8b5d078f4efacb47e9e8444a1d1352bc62c78a858202ad03cdef2a77dc237c7f5e44710b03d956bd4dcef905a3e09bfafeeaf8e77bd782bcd320e31f776a478c5beafae6d620314632e4f04b8e4ddfe57b768dbbc800c7745a8d7c079490ec9f3f0f1b85cd7573e48c3e30d7706f6d8ae7066b6efef161669d1fa355eeddd52700c472d1f1db23b9e1e6248d3fcfcf35607fea1c9fccbf4fcccd45d6edb1a0ba64fc1f97b2c7df2210a72f40cd97ad7f6839ab9e70ce524a603f8964870f471e6e8c3a295c1e3c20e34324354d061a456113740355e208a4f03ad43a5b53c53da9b8539df8f527be2a1b170e38c855d4c66e67ea93fbe96e85b6e0ce882e8161a6f92a2493afe5cfb0674ae512d1ec0b8284ef372f704188f4968f2a60493a14fc9492c63205e30423af4dd681249ac168528cee978bb1276a8ff311146fbc4832f5f7563aead69527a1e1b089b851d5f64c2c1e33db0af1b2749f55f0a834079a85ba35de36a5dd2ebd116dd9437b343607d2043b03438a0eb91d6ba1faf5137a319e9122ed884edc16341fe7726c901d44f4bdb919c2250e9d5323a58aad42521485d1f967fd222cd1dc5af7aff1f502e427004bac22eb3f3494cf180c3f45cceec207b64a916d9c0ba50dd29d21529f7f39878518292b234d23c2a02eb6c0aa5dcd58923e6736b5cecb1127a936e73d21409546e3e36a80b8cb83d4f39580eb3456532dc88e39fc8d73ffd339aaccb26eaec52935b01698345a0b0ef6692319b2516b9ea28cab9e69415c03623f9eff5cf57a61ec2369c7dff6381b652a89775d1f355a31f9c9a02b01ca549cf9c90e2b192fa2560e1f1697235cfaf7d584ec56f84c1430e92a255aae7f41d2108875592ba8896a6500ae0870a45688ea31c537dcf315c576d430c785cffb0026cb53206af4db109a520bbde6ff274d06cf3df48b481efa14c770c022f9f753ee21094b850c024836cca66492b7c8db0aaa1cb76907c0757908d8fa62bc28b0526988fe50fa116104f5ee44faece1d4027aefe7d36885f2acfffbdb351c0d36bdc3823dfcabc6932cbd3b0aa58bcefb7d078a0293427158bda40e0eebd8bdae86ce5ff8bfcbc6c6e022e1bc98a3170ef9905651a690d0332d3b76310650373d8695d13e33a5fe8cd95c3cb4f88e81ee6ea128843edc0889a4d59e7459ef24ffb886a5e7605ae345c92f534922ac7ea3da15ddd6c470106828690bfae7d8719f72b94dbe3e31496ac6d27661d635098bca034b8b1f36e3e6da76ae5e0fe4948d1788bf861d469a452120a422e8ed3d2ccf3bdce023a2d2f231b361163ffdd867802d26a3a0a46e768fc8b6938954334fb7b8fa7a154789d2ef207d535091a7b3a015df64cfc47240a66004563e1df627c327d92a7e669ca5e57d9e744ed3c9e4d1b371387c31815da834f75071e195fa4f8bea77ec2654546142f76f72d4c3b48bd623d71c94e5c7dd1419f35cb5b3f6ef8cfca6800e9cbbc257d39a639e5c1a7027f20a5c687991c6e38f32ea0aae2f894a938f764b5825c60b84b1d750b5b4a2ef1be4f11546ee488e40be9bd329604eb3bbb931793990625c8281e16bd14f6b2942ab23bcd1e86ddcfbe91b1434578e14536f8a822985c25ca13dbcd5808d2cb3363a202f239b840c8410547558edec9eee3b469792745385a2280431e97eca44a750a8c215fb13c8098572b0503e590c341ad1082296d3e5084a75e5337b213d70168f54fc7b1bdf6954e5f36ecde7ef9609ab15b54c216a63ae161d85379df36ee4c32ceb177ce77dde479bc264088180785033155f8a2775434d5346ffa995619dd3abf35c9644837c7ba3c10242e6fce4ff741b306dc4ef598406712d007b399538a9442f03d4f3ddcec2e07c9eef13f2c9e1949a7f62ddc79b6010ffb18ef357eed2bcb39cb4cdcb81828b4114668b223602a2fdb9709df382e5d435f7100803ea16830752e74662507d92d023e09958f824a606319a5d2aaaeed5e4681343908c16101794677fca4936a0c478fe9ada1feca3548de02a39748011cda2d906b680580109fcb57e2e5ce21acad51ddbedba7221654b7daf43ce17303ac094cf379d224ae447c8fed50f17532a63caff596a267569757c884cacc2116301d6f096e96b4924859619a7f1d0264c977cf867d2a115ce4d8239de43823a73e3fcabe0d781ea391f2657ec1f2fcfc50fbdbd310a9bb815150b66725671a4993fdd53c2f553b4488c3a4be99ef1f099880a489221ce91ebb72bc9498b71ef04e15351042119e629a9fcce73ea428aba5028c335cccf7573f49e9cc3e830e51737bddb6c733afadb82e5d0719b55ddf9bce69dcb853c908c2f55aa88cc651166bf5292ad4d62dc6d779d32c49adc10746244c7706f4d3316b87b370ea9b57b98241562392e56f4971872b8a22a1dd7b9366bef46a3d98cc23dfc7c8358658af68cf2767c0aafbb303084943a9a04de915dc741bdc04b5d11ca496703d8b271fb108c57b2eaf540f8d12199c1afa780d81ff7f75a6aa1388474879c0481e1c855529fdc943e8154015f17e9d634c2034326069e5eab0e6e9dc1cc1228dda5e8130a882517836b39224fd5d79a669abf1a512dcc01aa27409d67632c7ba0d238c832fdac5db337cd6478c52eebb0961c3feb0baa07e47e9e474e30f086f129772712500208d52baef8fecebabab4cf29a82ebc470b12fa705ba6ca77cc17a954e83c4066f444b044b11717940360d04de1ba92eab2485d39ceeed9381b80a612225c42ef8cadb2005678ebc694e03a00dd7b7ca169a34168c1b782413d182f56027913c857cd512ec2e0712ba9ab6b71c690dabd0aa63c8ee91c69b327c3ab7723c160c16cb7b28b78628e463f4402378a79758e441370b4563c339b39f8a8bb57e14a508be3228f5951678a5ebe0c5e50a9d04381dea8057e71b41381108a48ee80b52316f7df438042968bf425cc2ab31ad551c5333a2473ae56a61208e86e3dbb37b4a8a4c41fe80575d986f32e9e35e21b261c9fce905ba507a9f0c191cb79a034b9ad19c34993ab6d9301d9fca7af72c2a6fbd6951948a70e2ee8970d0b6cdca53aa9a650c45680226d2aa6c161d067e63793c2dd610110cb0c241a20c3b02dac9734fd7230fc23eb473aa963341ba6d28a2ac3005817b8429be504c969d27bb0271ede9f1ec0560892a62bc398ee4c07c7b428ac3bc36c9d677c6b79dcf12fa459b863bdbc4740980964d63b61c7bf859238dc3cfa3775ce36429c384c8f9fc2d7abf3ef192525976299b09e870183275efe96fb5feb3670c38f09ca8bdfa6c1b1052b9f81b69c5b8d4ad0859997b98b06a0d132d0926e08c73094eb812942e7d9d8d9251d286073c219b47049004641a387e5722a94fbbb9a9531462992ceaeeead2f199a9fa1978f7aebd6dd73a6b9b491995dac2723340ec258d61068a24700815ad26971b44f663e6c458504843b7ba8da7f5ef151c3836c5af387959e735366107ab66c136e475753c06707bf0ff89de14431c83467c31f2971d93aaf9d8f953bfa95bc9383eed417b2452c5261f5ee483a5304cf6fa935b20e7e071a8e2389d6d89d1956362ce6612db9c3d1a977dca827e01c365f075264d024b071ffa8f853366ad8aef1e19b25f9cd09ddf9c228f9d5c2b7f5a3d6e6a86bad5a64f340463b9fafd92908dd128f0a668c35cae5e88c4e565dac94bf6b5a25e3bf06b489a267d3a9798e24d417db2602430c9c5d3dc02381a758d339386c10cd169edaa55d07077d00ee6f0d79ef9f5ec8cbe4ca307853ab7b2271186d4f52eb6f82dd19ff5e82ccd698ca759284fe60d20d9301557ef98533898c05185c0f2856a901f1e41dbc9e1a454861bef1569e25ae8bba3720463aa73406e38f85a45a1ef38448bef6c14b7b9f7efe478fcd3ac4daf114bce9b8a6412d8afef7cd11eaf9b55003f52d100c82b25f9ad7e3f6d082e35753538e8b9ee8771172ed6ed2520e6f6a1ad507815b7804fd7da70bc5349d8a5b71f4e0e3cd08a8e7261bff1f6592d78b04ee18cb6c1bf88acc4f1d3662949c2721b050bf294974427d1642197ad2f788d0895c3f248f66e4258581c585423e1f0a623ea8de16b7161ace41ddf6390610c750b79ab00b62886532ee450c02c7fe46cc54c8e368bff0108d60fe6f9598342117b2032d79571d732b284d543ce5f5160db3fb43bbd3a829cc0a1b71e76b911b12d02b510abb67c2f5884d084973d4953a762ed2a8c343d28a1cade2237a52f5d004a15631543cec84589ef2fba0a5e99425dec16c838d1b668688f51cf75ab18e4650018767cea31d51bbc628dc1ebc017a7e95604528bb27aaa781ad84034e960b4665c712f05a616391a5609c59bf0669d465617de0e91304c8a0aceeaa1e30d83a9ed30eca3154ab516a24dd1c300c2e90c649b32ab20569f36518f9f82ec185d1a46e07259d7696e2fe71c7c82fa943884e3715111f8ae66fbf6e1daae52c4a9a5433230d2069c4e7f445a45bb40963f586c3bad5b4e6b803bf9ec002668e69ac204dcc94305c31e78c592375449581409fee1fd998db660b336bc86b5c3676b026116bb911ef02814dd73185777bed29f670d2553462d5c1277c0aa2ce4c6edd8f31e01b9aeeaaaa9174e29d8587f93e169af22afc65fc282df4ebd1e84936a7829b4d75443ab18ca679a77c445a8b27ae779193b7c51c82ad51df9750bf5ceda1e9e854e1de32ed7d571bdf91e1866dcab63637973fc42f0a5c9eb5832252b526f26390a2772d537e510d249b701a4c6ee28b6afbccc31094f526e2417f1803a3b97f4a2ebf1d156b55baa4b426d59b8bfc857a539221923609d2d7cbf3ae2a6ccc38a075c2a4ad5bf56e91bffb7f0bff10463435cd42c2b49f2c2b33a76df234080ab0a379c169b18ad006f370e2866f5e51b49aaa84a01587c5c12622e46e9802600b8b9f8e4ae3f2de19695f537ad4b3654866edcc49f4accf5b281812f15b9135880d5a62a00e8483b5ec6c6495ee205e04ddca1fc81a15720030ba05eca0f27e50e8a41e78c91964fdb552a3e1fb7261a120e9bcc53cdf35b22d050ef4b304888d92817378d784e4f9cb8a2c30a94b0785db463c333ea5effa32d6b54709edf2dbe38aab58e26d14ccf7c02bdc4957e3199fe052e12fab7b075f65fa6054e5a3a3f6831b0a9e520bc47b1f0f74470afee534382f2f676036eecebad41014ca806317d18283a71618383aa6a33d2142693fa314f3a38a5a9253a0a6bb59489c06cea787ba5c6825e9b11703d76e7700a0f35e4d5eceb44f6decdf7c30182021a644a38afd9fe440540fc468eb5fd7a474459f9eff91d219a7260747226498934ae24afba11fc49e9b0180055cb73a70cfba5026f74958229d3afba4a01097d0e93e77ed6782d5dbf815eebddbc0e2d4ce637eb987c32bb9ce52a66b07c2d8eaead8c10f22a9a6ce27aa8934651cc353db8eab2a5fa2ed6cde90f941e0e45809ec8268a311763d0d00981b003f80136db4698c74129ccf8fe72bfa5a284978869ca9ef068b2ae6aab41dc0d5dff012966c067840ef0362653f045405e27588221b27186a4796875ba6be183ed1ac15fdfef1ee31e0eade853c55de306248db2dca38100a2447e56e527267b263a36e38f91a7377d142dd96bf26bb8654d063f32054c7a5668857e3b1dfde3c9ae6e2981b73ae2a5303b1e6b4d3908d829fdccc1a9162b65a9f128703abaf96ea39001033ee44007c784c1074a6a1cd15138f5a90fe6bdaafe47d057860ea502e24528295050cd89dd6c2b5752f72f551ecc5c11ac4ed6b423f74b6d80ddd243ea48eb4afc14400356cb2a57af27787fa7d24aa04773bc46fbbfd84e112e9f46580ea081d8e9c6c1f868ae6801d13dfb12b584046bc262d7c1d7bf3d0b19c6f29ac4762db77fd7044f02bdcd48dd748b32e0136fdb44f810102eeca13ad76683fa2360716beaec814ddb472f7e593e8672fe5814278f0250ad8080820651c707efc851b59dce89e0ce2d2b1abb8e475418117aaf41a88a2b32276c10a1d170e4c6123223b0c52d3edefc0e7df2e706f3d002cafa307740e77ac00f1cc8bfb0509dc0192bb3a988abd116e22e39a66d758f8d4139c98998fde92b3e9d157e42d8a0c666ff69bb1aad345058649ea5c380bb8d82af7946d09e7a78492de0d4a9daa91551185fd49cbc82412c3b94b408ccaf1c282629db742ca3b3568aab878f0a214f4faf081700c4b111e434e83f65a8880c576c227b81bc07c2e61529f843f1359f9e44fdce90a68c1780b24b55ea76429f9bd010be699bfcab5d56c8f865696537ae1b3873ccb6dd5bc97d6c3e1f2b289322a90c326dc6d8075576d7308e22502304ba6dfcc63e6946ed439d36a1d091de44cfb7726170186cb1c333b4c921e1716e6d700190fab7ffb2120efd6703f3b42e206a57b8804f13c6308ab0a03cc4ecf8c2a44be49bb151dee09445187739af23fd6d0ae810ec1b4dd22752609f2cd82c0d86d59c4407114303064a2b6f7b3183ca4c1b83efc80d9e645a426149eb7495e53a65b8106e59a3b91cfe9847f66739712bde3e20908f57c460610e8fd53e61a53935918aa926b2a2f3a720eb5c75bae036aade59ed75a474eb9d81997b213decfc5ccc3366147b400ddf415e76acfe8620c97a8590965f1a2d0ca7e12e1d341ec8ebd4ffe34eff7eec3376350cef37daaa29e24200099d007b9ef8b7581673e07be740d870fe0e263d024219298c21d44527e6643cbf8a947d210fbf20c94d9f7aa1521ab3b7456a8c2f4149a737dd72bbf8377030a02de9f05d7770631bc70a9d13e515c4ba975c91d86a150ff54835ec971f22f68d3b35f5817497f8462c943637768f1a0b0d75052f6564c50f9ba19b34bce7e7013651ef339bd2499607f32988ae3f45aa1e120d0ae92f8a7adac04c84ae648328f43cf9f07a1639adcca40d26b953757fa9f22febe20447307ba02e8105ed1ba7fe98e298dd2a579825646045fcebd8b591bae17935842d70ffd0186a060f5d757a2bc1497f296a1cb5b8cde2459bc59b00719ab7bfe525efffe79715f1069d74e36011ed82044400786682ea4cedb24c9e047f6e8f708d5866fe09ea3147ffae82c4661852fee84aacfa90457bdd04b047c3999cf60445b8f630cb0c8bf866685f89ac23092e06b04a42667f515ba69688e2a2dd90910fa87d21729a9e73396b6506f6960a00b8a4abd24df558cc730191f95815249e405a1a741cfaebc7f03a9e34df51d7b4a0d6e68106c2858a75da738569dcadc4badb2454cb9dc2377e16a6337d0ed3de4effd8ea66d71d5feaaa3c64e971dd313e2722eccfc1e4b97cf4f8c3de212fe4f34d81ec11f8b60e2218d15d5d33b02607e410ef47fd947733e34ecb1c9ccf846ae1942b3b83a1ca2731a29652dde479bce91a11aab59151687602d6fa29a14b8d0cbc8d7b4422bd3cd7e81c87168014aee3608b62c7115a022d6791175a801edd5eeabdb5b9318322cb875fa207ab7463ad269b7ff52d577cf8084fad2785b577aba7ab0a8113ac3529b5b27d01cb2b7a4220026ef2424327500985e2ec3f1b5e88ed09dee0fc3d585e3ccffc73cf5ed45b0084c513c0ce3c7a314eaa1e37300b0072d0ea9b2d30acdf805276b759471714b36b250387d9c1f4dce73474bf275a6fd5b9678352ef1d2f6939ac6a90b4792de00521fe78fb38289234f05b1a08bdc92ec53b79c5ddbef6006a54672686e2d269213c770eff24cefa3a18e0a02fc3bddeb642d442cdef44f02d318f5b3457ee9d96f729de645bb5f0a3d75ca3cbef736793a158f8895b33ddaeb9f38345ba6eb9bdedf3c8dc26ce7e3df8a99060e0e143282b36664cc1826c7c521af0d9d9162ef2fe0418cd39a8097b239ae945c3eb5e83d4be66488ff5dc0d165fe721ceafd4168e383bd370cc4df2b2f17f271eced77939c7d5224d7328382db8c3e3a7b8d610cda9fd3c659c85dd10378284e489361f31e3bc71d63e2db9b75b24f76eeda34719d5f68acfa1d39aa8fedf31de4c105172f09d4265c9a0b0440a9bcc703fb92a68d8b6f5b977012b6794a4d55d10612e48a171976cec7422dbff2de3de1858a8c3a4ace682b7beb6cb24006c47e88c9956f933e34294e77792cd8653bd058eb8d6320d7eaf93ce0688c7d9c466bc10ba6eee648f9c25acfaba9dac44211c16d3890c130d8e0afe07b10def031666677b739fb779d6277d5d96a4b674bfbdae75afbdc59ba8da4f4d7ff5b71f346c8d0c4ed3467010feeb32a0bff9b5ca8c779fc0fd186207a3868e9f6580646bd7da60f2b109b917b973736685d26c22aecc58a9a49b5143d9182313926af2c7d89fae73e9ef8d214cabfaf1475314d1b2dd27a5bc1e8b687fa58ca0ec573d9e3c0ef028b1009855aef20abfcbcbb9dac2ef9b2b43b5e6a8c333e9d382088bc1e37e67e15c147c28b31dc445b5567e5be3d3c4ec6a2d6ddef3e2818feb1a790abd0f152972444c86a36eb312ef5617f6719bb7dd70acdedd6e333f2c26f9772df9eb419d71fa11cde1a9416f8a1550922ffe0d5556662d997dbc302a0d2947e1724df750c6994997222b3f9adc7e846b743664371283ff113ef606713ee98255856b85418d1d635604ac6190da53266f6751dd330b23301c0aba98209b7d13f9ca1800db26a744bd0fdbbf64f5023ceb52129c10ed1c4ef0033f60f1c010b9907ec6bd8cc4e6c5fa6af95629f9c1de8c70914c072b7f1b8eb2a3fb241f9a8a9d7801d86d647b32c4c9748567b070bcaec6af9831c1170eefd788ad0689ca6b130342b0f1ece3cc2f64da91284e4296f7f052b3050745d308ebdcdafb679b985ffd1469ac5a5f485ffe8e218ee029c148ee1cd1e2a41ac79fdfba8e24efbe23bf0a3a682732264ffa4a6fc2fa4d8ca9fc4dfdabadfe757de9252af68bf2d96ce5c44fdbc5a7bbfc7832db64ca9ec84975568a007da5f53bff0ba1e5e84322aef22c0c2fb92fb1613ec9b5db9a95bdb4fafe890e56a2e77d20eb6550eeb6b673bad4cc9805681b0283fe925f24d89190e9d6731df9ab2a71c5ca4ed22b2fc81a5a7a7f8c968e23570f4ea30ca22aaa963134fef4bd99ae7a8163ea297e5975581f10814863f5944fc6feec63ca7fe7142443fa6280a5b8aeb5abd0b70ff30cb3be6a164aa32602c8ffb709c757dffc6a92d1dbb79c4e50581358b402e9bf4409da0f8fd512ab2118b377ee012165eb903cef4a48fcef4176eef9d1341193d508d7def77047a44e8771333bbdc1da788f8fbd06ee315bf43b60a5849b3e0ad7b3058e806714adadd230ae2e0bd3adc303b4083287a60ae78e39491b2a17df27e316365c48ffb152aae54ca2deb344eda0ec83db74d5bc0e8ac52285f700f029c4e265f268c4b3e833eef36090e1f331aa44c3341a998a6efc5bf70ebb82621b547f78ab5ceba5c8864c37c35ce015ac7b8e4c746187ca3be8c3fd3555348160e7a62780806bdb202fb167bae3b3076e01b259d0385e53930566a188473f3724a56e94b97360b3caaf55465ba8e70b953d4b26590f80ef463c4f89a8376f4bcf0a4d40fc99ce77b0fba6698894275675c598e2ba5b8013922d038dc470d2bcf86670b0cd9877a031fbbf9c937268c10542baa51815c02995a91e814c5eeae29b5b65b541dbbeebc70cb4c38c74a0f23ff33ef9423b1a054f39ca0534156c3393620d9161129eff4b7ea90e7cac0fea3f2904d8854ea04c6c96fcc0d4cb90cf9046e5742cb0a9849c17c485f49418458cc9633a2bd366f2ac2f8dae635af63a10a69b12c66c25ed168fdf374387a8b216cdb28998d26107d0a61670f8bf0fde0678f73885c1285a45121a96fe45305c32c30f959e5a517eee53a9c6589e25366b810eb7196dd35061c12ec6e0732c45f44c81e12cfbbdafedbf4da015bbe6d404ddcbffedf69131cf31a0f5a6193ee32f9e646f1a4a05b13a2b57630a828891597dc6473e2072a382eab2f72622d37088032c4f1f6076d04f078661fa80778df6a467171c78876550e937b8ebdf5ebcdd586d9f6b5c7ec89d7bfa9cdbe797eec56a618bbacd5f388e1e274d70842276b18f40ce81dce47b52e1f648590e16719c3975bdecb187d105ef09b180aa853e002dee371b88184d1f4872b03befc632ac538a0fb5fc1e0b2cb335705eccfef66fcced7ce7888b6291f37a6caea8185a1449145321497dc1c138d6d206ca8b17a39a3429e808206ac6d86814d1fa927a5785c9067578e610803ec84d5f68ba0af7d9d38603bba4ad4822e0d199cde7d81cc1a924d02a4fe535fa43441cd040d2f15de7b52a55618aa5b0a382d4aa93f0428e543a1648310ec9945764ed0c26762911d4631810b39de1933752f43f0eddf3cfafc5d67d7048e1a93128da8d7a007e72d6bb3e28b938469453f580df8a881e3bde0f5db74ef09fc93b46c0a7a0071512e16af45f11ed23ab25f123ff48c271de8500dbaa704dabfa041a95122509a416cbd0517aa4440e896498bdbb749eb89866a3d74df2aa0033fc4f626b27173db9ceb878c182f6c40f32a8744e97c1419c405aa75a8bad74e2fa5df5b0529affc757333283d02a77d5cdae669d9779cdf30af5b8d2c39985679f92e0c8652ac523226be790c29f4da417a67aad4ac658f7792af077387c279777c5bbf94bbf2041a88ffbbdaac130fce16bda2994b3fdd8d52a1b51ef657e39fbf18970c5bcccace12e76641408908f1402c3dd16a70b1a2147ce2abc2e0f8c5647c8bd9f9af2815198bee1f02988c49ec0ae3d75836c158fe69512b56fcbc00477f2547e2b8df36423e216d4fa25353ae357df21c365744a447cdbb6a781783a4c370d33c484c5217380e74003ac31fd1cb5fcbfecc6b78baf559df9bba64e20d6afa4a6c50ad3241102bf0526b13bbd1bddf31303a1b1ff472334b546224fddaeaa3a514b2889f0f92e0aa9e4a6894125b1c783d2b40a7e7021bdd565c37b712984d242006a6a8bf493b9e514d68545384a9c273ee0bd0f72c41dc0fb4746607013d5bb5c118a6ecf66c1371929504b5b673d6aeef49b4509fb7a26946c1a2bdfeb8e55ce3915c4dcc29c78ee2a3a3e03879939038dc7ded78bbfec5e4fd39b2091afba8ceec6f54728c68ba07a4be5bbe842c7aba439bff4471c1df38c41dfdb43cbef1c44708b1e22411bf892be257c6fedd8c5f93b36141a84eccbe1aa6ffa3bd92bc526795926d81164732e80155040f4a8e674ef9402af2ecfb1c745cfd0fcb74073b55affda1ac112dcbfb5dd4204d7566f29c6146b91159d817abf12b4eea593d7ae20b62c29dd2f0c70346db2e7b6e78ecc0a0e251878c6030cba3bc690c6a5b6acee6eda08761cb4d106fb76ccd9d653dd557e81735a98c5b249630365a22cb3a7794181cba19e3304eb5888a729362f1a18df527b0391264c76b4d92fa7ba12848a2abb83f8fdd74ed4150baeb45e8b4a164ca99c7dc40b1ebd36d643a3f73e36801ae7fe173011566a70efc82c3158d5e6f97c6b1851eb408e6830594c690564cb537491201570ec86198cc169e6ae1774fcc0e9e6e321bfcea93ee0b8cbd7457219cb6438c47f29b7c6debce26feff0805d988a3f4dc46256761dd5e5f98ef18ead2cbf08e8cbe0bf945ce63868f9831d83a7553f255f5f737013da32667226cd9f24af3c2ba6cb163a7c9eac9362bf33e6bb5343805681653b7cc5e4228628f06b655d07b57cb86609641ca4f0ccd8fe18449b70b3d750e02544dfa37a61374d682a099eb5d3da0dc465352a58be898e1d52e82c298fa28da43ec1fa1810b34d04795cb80234e79e3c32e86cae9b86450c22a9a34594648a9ce12cdac2bf0fef56db5615c4a0fe60c9ee5c3da3a95a5c0a5fcd435b3d12e67d2f30179f3c4f44fd6d86f42f668dcd8696469302358e5e90a07340afcd1d262edaa2e90e7ed5f1485ba89a575329156a51f5079544beaa00dac5118e2fcbc3c2e85b6d16c613b0be1d13d203b12b9823abf458907617f58db6f2f16f2c6baa0b6a7f225515b4cfe4237e68a1873b70d1d3c3e897eb77c6711b375f2dd5a2baedfdea6d8ef5a4af61afd3ad3d063de58154113d4d6156f9724a589e430c6f498d3f1715c2dca3466a09bbf6921c23f685e1e68270de6e3dbc5ec4362964e0a0485abbc7d4aaaa9e8066721d259af0d793345d0391921f96021ecc71b2c31f7a82531f93c803f353821361fe6d64ce6db918c3b44dcb52dbfb570edf858228893cd3506d8588181907c683fb19967cd41e129eab2521cd39254e3ad2a0efc8f181755dad313041340f2a767954998cda984b8ea2d83db9aed9ddc3e3eb73e6cba1ee4c8f1a4419ff01076661248fc2810bb4ea7657de548eb866016bdfc2b6a4398cd4b42cc0de66fc95ada0d895b4809c75ddaa44f2b4025ca7700b38cb9bfb0fdda4a0fc19ae6b6fe32ba784c03ec3b530e4e504fbb0845f0a8d24bb5994c6be89c13a5fb0c0a40e56b3eb8cd1aae7d7a4da6f5f0c2865b61db7600ba0bfee2da88a4e926553bb0eb50f66430a7bbf3cb121b8ae10fc48522e2a278d1146cedd13fe0ef5257aedb347361494a19fd249d707d2a03252a41942e22b5b4816b801953e8d505d3b8c30e82b77c1b37edad2a853f2878ee1452eeaa1dd4ae448706ae09d43b09cec7dd3230e1431bd9e462cccb3f33a8d5bcb83a7fcf50096aaaf40ba3d8ccaf2efbb86c275f447f2f3b90d80e3d2858a4329c6db67ee15c8dfa18fc5db28f9b89fd29d4f1a245706c98944c985332aa9dd279080d9874a98d1679fca82bdc1d66c64f47d37359833fc4036b414db6ff636e1f11e6943cc1298961f7eab50eebdf1a85c81b6bc3996d11f3354c534453fab4747c1bcea89e1e1b72113ced035a102e65db786d37b2cec96986aecccef38b79b5ed9c80698e1edc5e321858b74a791fc4239e297dc0d17cdc3df42d64cdf57f5ee548f67a55087b26aad29b7741d94dc783174a854ab681fd47764a7a12ab2c25e5a179f7f8419e2ec513feb46e8f30c3d0e78aca32af2993d6d063afc7e4041da67cc87a75edcad0ce61ea32abafe249cebf1cbac2e9d7f2bdbaead23774d05baced0b8f5ed4ee1e2180dbf06ccb253c0ce1134e39e12c8b22129c218ed157639c594134ff0b13fd9d65104721dbfdb8f8cac97c63f859dd4ad8e5f2662864f7d88303a6926f8fa547ff4994b7d0b919b7576aa6f2e03de50cf7e0e82282a21ea4895149fabae3b3135788ce3dc225e5d2155a52c91819d48860b7d7cf08ccfcadaa54dd5c3b39f09d4524bb3afe8c0c6f2aec52d0f2ea0b072f4ff419b01114765add36ed12eb75454e02ba65998491f3018cc41e1b1e3934f040a2b757bf1a989775a516520864ea843e5f1ed2b1f33c81e7fa28dfa1426a4c8b79c39e950f8bc82d9f99a0d07b35bfd147fc0ed7bd11e3f27d1a0cc16a694664679824b62d7cd620ba132bea54880ffb8e18b262a9b7a3d1183f5dc7e10fd02972085922ec3d06eef6f1bc1c13ab1adb5e12d900f21ee380e9e5d6d19a23f0fb1003f290f95ec4249c45f6f3044378755933c739f52d6cdf444be71642a71cf3eb673f6355ac1731f85a571baa99730c2fff51b633c48871af4f012122ecd990dbd1e86257a630e3c87b4609c0418318d5d4ca17a1608b0e0adfbfc8ad99ba290b03a00352d2525b001b5f507dd00002ad910cf14a3e34c2537724667c3f3a25c1c008c1143a8b64d1218639f14a9ec71ed7e62f8dc89abcf6312e7f67e014cabdcfdc03939f2b12c525cdbfc2094031f4caaaefff5397a4773eda3bbfebe43dd0eadd180a17cb7277a20ff2c162d525356912c96a5e3cdfa7cb00fecc6445bf291622d8ed87b7c5c1736e82f81e8d11125d67040c792d5d9ecddbdf4ef1eca1217c0715f0cd662b04fa6cb7a12d7d2c221607f1249403bd90f0a10f2f84f7d05c206a6c39284ed49b6dab87518f3f4b22e687b366a625b74b06c14386aebf3bb59ede4dc8f593613305cd0fdc9b29e915fb1406849d68d27c359c5cc4772b6c608dccba2ec636f3de8d968e260a966f341f0887cc3fcb3f2227399ea535b31dbadaf40629d6bc7b9546afd6a044115d0b5a2ded6a12421db5da5bc7f21719e55bc66613b3840bebf4a386ccd83d7ba0456dac4f0189cbb6b91417ab0f6efb3b2ac59bba0dbd3124a230e01b6e0c7d5d070bb29d79603e62f57c658517f8d0314fde039d9645cfa99ef7003c8a92aab5790b26fafe1bb5938c129286f4fd44ec0c18a9681f6f43cb0bd3d04172557c42293a2172b86899c9c66b6cbc7357d99a2c5417709cf7929d5ecfaf2ab4a6ffa9d548d5c1596c724f37fcdd84c5eb06dc83a08d1346f980f13924f17018f809898e578dfccb6c390da13203ca5445899e3fa279899104e14baec5267897d03e4c65493d8c17f1d8f733331f7ac76f0a6c957fa40256c4ec2ddeaa5572923c4ca4107d720f9284337e34633b0f0267a77f57ba91696d00cadd2bd882eb8487d8c04a1b1cd8e89659ad369923e348f80ae055b8df7018961dab67e5e17847db0f5707d6f062e667d46f0d7bd96ee2257143b3206994c93056ce6e250b0cdf18428c8b76d319a0f3c4e6c690278c991fbadfd98f60eb4a65e2f870006904721b7ffb4c354952851012a7a1f8807239a450d56213ff5498a554f00239a4d9c4de3cec295dd1042af306fd5c0c4138fab4e477288dd436dbb30617baf4fe9e8c8b4a2e05be399e5f57fec3a86f51355593b12267791885964ad6a6719a7103b10c42ae4c5c3ca23171933e9d67117ed9cd0c665d228fb98a2d04cf8e6d09c1bb62d2604de4fe3a159a9f52815e9c088e87e65cc9bd5a38a1d2b34a6c5abd6ff1c2c835e71cf481ad7b7efc07add198709cd4917622f95e3ec884caaaec07fd5013e617108d9beda4add387e05ee8201db4ceaa941c20d29cf47fb841bef5b7cd6a3cca26f00494330b700b373c14542c883de09754d2f39b0cd50784abbfb4bec3d59b9cf9de34c31b0b1b550a455461f71675f7513dcc27fd9360b9370d3896e15ba61562f08fce4f7615c112c9c42339ce2fbaadd34c857a81e8bca893ff22c1a12ab6e1740f4dd434b854071c71c4fd4e2cfad952423f3289785b811f33936df018b89b9dee30834bb93bbb2efee770c25f0159660fd73b7404d9bed70804260655a76375a0f5b748fe9fe739287fffc3a19dc1447587a1b0979bc439de1ed194c524b51a0d3d0f5d971826851e9e67490274a490f868ac27766157028e9c2fef415de29331bbcd8ba1826be9bcc1085639e7b2fd1afc37017b20339911715137f27ccf1cfe962e2d64fae98e81a44ef62226e0b054ee6e1b7c00d36c062abb98e6f13bbdfd4ed97128c50d07171fe82e9ffa10d3db4aa145737b79acab03afb5eba3af7f884a65863c74f456ea4165238a34abb0584673aff8365d73e60b05295380a624637861199fda85aa33a2fe7a41e0ffc0b350885cb5354c279c14cc8b5fdd35abe3f1464fcb1cf69c5eef8e76ba95aefe194534d93199a3ae7988d6544814ceeb382945a7e667a41872d45cdbb1c3debfd3f824b708d3c77bd9ee84b7821f31271f9850300267f01699be89a9675db46d92a25dc712a5574b60056f8e39c0ada3731718ee9febfe54e8e6dc15c5870d2661e5c8b54b0453087deaa7d9d9621973ecd06c4e17f27d2a89196932e8adc1e73355c6002a0fcaa58ccc3bf40182b40f9018ef3f73fb5b17be3b0f9d475c7f6e26046a3f5c349d952537ff99c0e27884819a3affb569afaedf6b64c8da84fab2ee14d1755a442fe5d718817fec85a76f5f045f40ee265e910f04283e7544b16ebd12ee3c511b71c9b15f1b1c979197c36793890b8834145802d511ae1cf1874ab9bf4a17c9eb572b8a49cae96bb1c4bd93aadebdddf3dbf1abad2638a15ff76097f10560c21203133777ad6fd0a6dee12cc4586141faf3e85dc0f25cf421e362b10c038cf3750e1cb5a90e72044dae7e55d61c6ac7099ac6388daae6e19f0d9b0b7c39f8abecb2aef0fd5ed4c2f0454842dbbf3b0842d1032e890d9ca8058288e2d65731c5909eb98c9daec2bf3f25612145977d40e550e71dcef8ef8024652f605ceee95f044d143b24924b19c3f53b3fbc9baf84a4f1e6976b5cb674ce2a42a20aea4242d64f0cb652a794a99ccadda5eb4407e725d05207d13438cb05200af36320290ffeaf8c67400cee8400e206fd1b4d0114a7f6b3cebf10d2ba5083621544acade1b000db9e3b4532048e3da6d788cd006953f9b7b6f01105544a2b0b2584043ed768160b9ab501df94dfdfb608d9f24999d90be0dec9dfca0cd5a070e779e105acc28178e388780074fd9172bddc331a2afb82aa5f88025eb200b5f44b865f3341dc01203ec100d0b3348da5f4b5fda659c4e8d455e447dbc45baba387794ea472a66a3439ad524a24187ff9f4cd6901d3a460ce89cb4777de4bd9de1e3fc6da8fce24b4b0be77e97a4e827356a4ad9d0e10cabd966f3b1c4cd6aa1a37f6bbd7b5e0c0c167c4b1feeed0b4878c2a8d4dbefb58651216a8c647255e0f9a51d7e7e5e3ae3141e988d1791a6b7638508af3d4437bb1c698c20566822599bfe8720edd0cb7c8f955b54af66dc20107a590b6ac7b503668b6a3c43eae6aa4e0b6dc8dfcbba38087a5813ae2a28d2c17a62c6e1dfe1678f0b144e3c5619cda7a043b1092941026cd98fae45fcd3349af30fab48fa6388cc20ca681aad11a5fd63ed48110b8da6d3b41b647fe1016af76612f20609595cac3302ce28171a9bff51bd7a6354859de07dd9d2434044500aeacca6c602df71096438a4f45d0f91753acee479299e764ba0e43bac66c67331a6934b465db103e80592c58c6e91dcde40a9f10877bd5b0ef7e0885b0305ab355a3a570b98d575a11d50d00edac326d75c3c10706d2f5cb25415e124ac16629bd7f26578b3570b5de611e3195a9e5362d9208413fdaa71aafb55d7745784d6d9827b37acb516e73d4fe7aea246cdd282d73188fc6066715324bf7ac9e1b1c56fd69dd45725a1a9de7a33c9af1d22fcc7c972bd398f3b5b247d3fd4048bd64f7bdffc756b91213eab3f5f67b8019459d4f74520ffcadcb8d6a7f29a8c798511b1bf3306130b5ba869a85beeba38d00036fdf2fd711519ffd2b54b29f932c6b54c2c4459fca6b5e5ca73f4ffa3ac5a5e4d4a7da462b63023f9b00ffd8c23bd82dbf054734afd5a332d93f2ef496c3e1469a2cac6f2b939d6f115204ccd1ce4a28f68c078eaad624bd1af0ecb13294eceaf9d19cf4c6c9418915415785bd1d22c2106732138d70e6ba4a2b3595ebaf42deb26c8991de36f177753a96a9e5a972b20cf99c9009f183469f990c8d498952fc9fc695277755e8608eaf124e2b39e2901dea079fdaf0cbb7978fde03d637dabb3342f6d213dfae60b656b0b533d2d001cdf817fcdb4b754959529fbb15b62d4efb59af61e9a9970b505d3b8a13b67ed4a95627354e0a2f42cfb2114c9e774d551ba88b361af138aaf7fd1612b56e932d65483c11f67a02e6909a2b1131200f2725485cb35e49407ba7b75133a1af1bede877d132102682db551b67d1c099ac802e672f7ee63839ece167e564f7615a2882bd2329c6f4330f2192fc4439ee49b7ea7806ec59b73415561750173408f53bc52c83ea0eeca6197dde23b01c8ddc25323710b9ec12c56d7df9a432faf110674a29b4fc5c6b119eacbc0c57b21c0a234bb3064ae4abdf7cc0b9e323adf328f30d4fae030bea2db2a45b30bf26673d43120bccd8a739fb693d02865cc5164a35f35d69d14a42ca50b63522922fb8c57fbdc568631b9ed885a0f3a644b687b6833277e67f4cabe5c046e66c8b964e0f487c911801361a7dcd21c50fd3decc9a0a9a111b20183b57322663a5bdbcd9f324397a185f0f104fec24163bf778bc6f046ab3c90c3ab760dc17ebe5ef0840c7ccc4b85b399b5dc432a3ab02c0853450159e44608141c9e3d2f9a7ace5379b75e44ba7c7f523b17b483b8526bc13a408068fc718c343a3a2faad85034dbc451ff1e124fc895d73312d8deaf7e19962f42e23aa8b05c681847390410fee71f0d287552e1a77920dd89bcc7b053c0a5f205e5f67a77af912193ea22d60276688c92d7cd9c01ca718d670ffecc298407489d8f2071d0f4a0c618a6e842628f21644fbaac2507376943914004e522053fd67b21b8a521ce077dd44e417a27a9f02a6da868612da26b46b137cdec034835c4eebd53b6f65d3c4b7c30cbf659af1f1a419254cd4ba91ffb44764366706fb6e17ea89d012f84386557c95a2c66f21d3ef3b21125e00cefc701e8c2ab2ac2f35f3f5fd13545e1f6d8bcd773fa07bbfb3630bc1759b0738b0942f09a0a23acfe190b0e432f8accfa4a0b33d2ee2005ef88223133d5445b66176ca791ad5f97506df273d7266d4ac7c22b60e45724c5d47c151c0317f5b9365885e75e57075146a25b7a86302bd96887f1014d270327a99063947c9480f4776663bb2fed182e9fe4976be009809be80be93d64a4c1680e7892dc65f26d4ee9442d0024d1994a00cceeec85383202daeb67eeb2ee204ecaacbe3ad98aaae90ea31e8dd10c450d7074629eab789496d2f7ef02775006ae478fb80fc94324bfad31bf01c04b0591dc26ae889c7b56f1e95137c025618a451417751b78b557b75207006feda5c3b49491415034f63e3a3d9a67a9e3f7d9cf6213b44ffda00c2fcb14f16b483a5559cc903a7a67ffa8c66e2b66bc0bee525d88fbfd0bc4b6bac1aca900cb379991c41c879feeb9bede8d23673753acb18607804f5b200dad5028cc08f71011ffdb3701465c49c46aab338312cf6c08a80c6b6788677e6ca65758c60c2003a45ea9875986c379b697be5abcc2df5717604ec30099a11247e8acd479dc541eaf3bcde8ebf096a6d0d5bac980597bba0395b71f32fe1bda5be14b4e89afd78c69559737ddb6d74ae89f09af839196b9aa00f4ec865feeea3880e248dba2333df8200cb43cbae105e799cef8fe9ac1931ffe24f8aabf0ad0c0d929741d9d9210fb13c28d784693a74c1f94472fc8a75a2afc3825f03c584bac1f3dd03c433bb301bf2da1e4588397a8218b7bd7492897c3bfce4ccf61354b07e76880ebfc289610b866773a7988d42057783dbafb198c9a764e196105c4a2b1be2c652309f0ac1f55aff016221270eeb8a82d23410c7c92992246e4bba0dedd1569339da25f079b36490176b91697e05187945df196ce429f3a573ad7e7619372f3c35a34941ae6a1608f401998f0d85cae893b540b32737e41ba68f7a9d12ff80ac41c9e6b91d3ab18d0bca700584ab38d87912e98dea50032461a2b32b7e03d67c4ea888dc82c3302791600dbbfc18b004bb8de32f089e432391ea0bf2b2a75dbe190cb79ae2cab87bade2aa6575a886caf0e89d76488d0e427e4e3945264e0c7e71cdf4e9c05b6173f8766c8e5471544f17454f2ac3b158ccc05b47e603b99d3d962633ae05c8f185aeb7fe2a44d170662ceb603e4f03fc047b95e34f22da7a84779b3c51ec846ee28c5ba05da46ea142287d1d1b72c7d8b2f5fb3337d0f66acaa3c8a706456ca9da7354a8ec7a0affee50adeb8bc24cb23bdf982fab8883cee52cbb64bbd08c1d6a14059a496ddec10264aaaec6d42fca784adb0bff893a2c61507e1856c51356ef84ea3a54f117a51583b25bd60a6898a6545d20d900178e005195e1c6a9b0f94eaaa9cf9ff67c036fe56fb2f42a23594cdb060e186f5aaa6f9eb1422a1c1604df1062b12ba9c48b9601943810e3d7ea8fb7f782c14662e508aad724e85957cfd42f4ed9a32829998ce85395d92b1dfb5aa682ae28fa0400483526fc6fa5be407446e17195c7f66ed119e0ee5adeee67b70c75bebcfc301d16c10a251374c01d5004ed47d880b0e639befc1d001151411271837a72d435a6e01e4656d3815afc34cd7446d463668b292030f40a7fd8c52eb7e2cd9c3663107d40c0ef0a55596d1482a053c661fe53795ed690c53b19fa795408226cfc9f3826c8b2a2e7d225704e4d245e5507efbbe6cc10baecdef14c3154675857ddc690967a8dcd3ac8583dd5e39747b211be7dc71180f06f9ab524cc5a0e93fe361debae66f3be4ddf96963fa3073d5bf54b7749e909c9fb58a4e9a98ffaa6b3ef194d6cf2ec89002f0af88c26b637a919bad3e8e4a273ad96850ea0f3a3dfa2b7790c9caf9f2dae74ebcfcd203fc0d34f6eb6ccc6bb9ae10d284bceecb3cc2f3b2a9df0628af31f3ecf1ae8cf272bf1a7e73c7d69b5082f78d5f400a504f249bb8f59010d4177d6916ba8ef19af57cd6e072d92f894ab7e70dcefaf20aa42d006e7ca5d45d244a190d5f52c33fb1ed46dfe409b364e1af04fe3910d961045ad9103fa916e66c080686b64e11886b74f0d07eb91e63b833ccbf5bdccd5e745718af8e6a36d7fe8bbe2a9ca99802abbc391cefbf713f78ea08e2dcc1702f636dd8aeb27c1d5b41455d143c71b99d6f9461c16be24ab47bdd59aeca5b28a66b69b345dff892e0e9e0cc562d62ca2d7b1494d2901df2048cd2a29dd87a44bba43312fe7bf700990042d0745c6644ea2959a4f38edc1473ad91a1de7298c806826cd03bba7becfff40779e7c51696f0da4d96dda97787ccfb6794d4a0a9294544b654ae7bcbfd4cc2122c9b00ca6ec0e84c52e006948fda96795695b77bfddcf98b11de886d7cfe23b70f7198f9f7bd3196925ccb3e54f09eb4966bdc0475500fc83ca917488f5ada94c3be3808c3b030de58478bdd11624177d65757527ecb6f3c6ebca19966e7fe408ecaa6b22845a57700aa074e9909d53aad89b5fe959c35febf1d0bc6b2ef6836c1528cb5768cccd94f243dcf72c406d666e9bb59a3b4ea46fda21832700122beef0712728f782985c265c28db6f11528729229acb529590d677736a71d72eac1b90d4a9b8e63dd88a2b476ed4df8203f3e514a411cb6ebb7979c8ef9e7d7cdba577d6a369d88902a6f6a80ead9c0814b142a59201e399e8a19656fea328cc72dc9e3d7775e88ea727c759b2bec383af234d3b29f89357eb255f801812c30776883c0ff4646e69aa0add6b79f99d070d0ff38d83b6f4ebb109cd25053c527e56fc2090373b98bf1c3aa23e8c0aefdfc4134f5405c9ecf472726439e797d1757532aa630e20e420705f806a0d6f6b803bd6adffdefe52709c921ed0a26f36b34553bf44f46683d7656e3bb42d11800a454be7c2b0cae67986f02498c1a05d3fa9b3744bb1fe08ea296539601998553b3343e8534f63ac6925892223377a8c2425d7d594a19baaf9261227b0aead4398a28276be443cd1d7acc7e17c29a46efd3b404ee0c071afb5715d0640618b7bae07e15d049fbdd6c2531651d940f95d4c999a42ed511453207cb0fdfe75253e2badc570a69dce853c1c9b8fcd2be5e32c8a3fe3a92d997f94046df8d0947834465d14ba3be3e9299604633cdfde3a28b3f9275a77a982b584a1d9da59c32de74813d35db912c79a91c85e482bf7ac3a7c1c75efd06919b3ab59bd56e67caee8c22df512417a6b110c626605e15213a10662bb339bc507bf098214dc8d38740a8f99402a56236b60125d9f979c5a76f953e22e04bc691d5ae5a0125a44d3a2a6a922ac4b92a449bd1c9787b3d25cbdfcbdb92fd9962c57a0d061ed687f1f55c769fbf596d5ac8717b6d6c42ec2fcea787e1249a7b1a91fd8835cc220c8bb947f7561cfb057454121ce2db3b17edf1fb65ab2e83bdcdc8faff8ab70f5fe3655119df849177c392fc7893a4c9282703c54401036a208dafb136b8ce69c25fe0c38ccadd0dee60aa9274972d34d97178d4c8db900cd84489005717785d0bf07a0408a533ab480331bb9a4e7defbb80dab2d73887930f37c7906cd39029244dfb5ec38ff78099a294df989432a4b1cd70091d006f2c6146595de6a0f8068a87db39fced8220a6ea2650c180439f728f6c0d88f76c825e10eec41906acf3cfe59d037421b4196b7d34528ab6a3050a000c20ccc79d9c0cd82b09bd33af2e19134e8af056b62a9605d27f0e4634eb59f36f0cdf103ed562402c736f6d4bd8a09d89b7b862468f091949ac8b1c9f3692bd1de97e8e1011ced6c4542e02615833c5a9dc1bad065c5beb4e33e304000ebe6967a8a74cb41ab06d66c5ded4cfe2b499e8d3e92eb41258d06e741c387d62374034d01decdc09dd469d48c87438b098699b3cf77d4ea47d8e523fe07d31132d9de3a6e8f69eea1d0e7c8318c697476880dc019fe984e67d81d220fedc090a24174460d244426daca37bc55e3a7f8342353e2c3da7fa19be8cf7d3e7db78a774f5d87aea6f4c43bdb699700e99ebd3584961b8b30e347fdddd5895315121ccc8f6e78a0559b5f2f22fc03b0058fc9b709688cde6e63e20267f7fba18c4dad1a067092638bc7754e66bbfe1f0830d71620d84383ec267e51cba39baf85cb1cfcf88347f5fd5efa7a345650eff38f66e9e048d802a6b8ec3f74908c6d465c396fd4582889a14ba202cf17a4230ab6dcba3d6ed449a60eb52215e0f30d25a1ef0253c201dcae20319f5a5b3f6ecbed85089d08ed383625865b86c351cbd8afdc518102ecb1976809e6519d67c7e31026f7870c2115f0e6e4310d5596682470c0df9147f526fb673e45bc9aafd98517f1e2ef4eae1aa8b08102e52cd3ab3a68d74c0427ad2fd318541a6167979cd47c3e97e37d329664805724d3d769907d28b1eb77c92eeb6214dc48c2f1de014ef220dcbe2d47e98c54b0c5da04adfd8e770e3ff2711e6d17dcd1544ca002d4b3d4bc591e92546c873737c7f180a7da36babee0c122db9492249557caf80f2b23bec91dd58e7c8859f98908a8861358c4640d425a7a7fa5d032bd5d31489e76c8f9a68d075cf54df6d32258a9be297d7576c99e5786ada1072ef2460c772d9029229921f2c8903ebe8fba33b1779f17095b78cbd14df4aaa7041a029266bdbdff9ff3296cc222c431c426d92fe479664bc1b346f2afbdf3517becfadecf0abd412294d901b26d38341298d3584183c6691200a94023b2c000810445bcd2f109686246181af33a7cdfcbafefeccc4174bb10f3d184504ed20f4543818dc44543bb5b6b06d9f3b3946a9cf667b8248938ef1a125b90f2b4dea2fff34bec8b536c19d3b8d6e81ad2897b524a1713561bdcd50c8b48b5c93e17b57a52097e9a44487563e0931b939ed6d1032b25590e8064a7772aa76b828c9300372a8e6158c13d21557db7916fec0f9a490b0d159527d6ac77401b649a6862e8c25ae5e5088d44aca913e9bc337ef70e703014547f87439feef9e5b26e9bfdbe0db75a94180747a43df220184d4748c7178d0449f1d81e563dcfdc7fac60b636908a2e282afdb53ea520ea8427d7109af890f13acd4aa3f8c9a413300a35c34fc59a81bb860e6a9092fa6a1f0f360299a60532dfe2f133da7abd429433b6382e2784ed87ae05fb5a601f593b3de753188fde7c17e69907a61f37a0b3a687ac4ecd0e99214f39f91e9532937645ab8e9053f103252e960b55425898babc8493597d9913609576abf15aeb6db5ceebb20c437e8968a56c24e0840c531e59352543e8e30a3711e57a312f278e097bbd92694a59e38aa1b16cc81374ed9410c07646308613026e95904844eb83c1e01dd51749bc217f60840596531cb32004ce2ed006e5823b949f58f724cb2f9c54ff978acb0326498fe1644a6f40c4069663339efa5a93a41df465484b99ab44007b37bfa46d30893c8127ec76e3eda4617f4d758849026f4ed5f47c570dd1f7af61bb9ceb9911b8296dd1eac70bb2caa7a101c3f61950c91804dc0ff43c87f463967979888626e2eb912ddf704a7370287fa9d0e4bc6029b5ccafba487aa2e61ad600023ced803f08f3f9bff01654c824341b7434777986353d4994503e61abb98c5e00097ad8fe0cf2ed849b92c95d8f428071f53774ce5b9451e9a486344195bd5a809e90dffdd8ea13b9fe6048c34baeef26916ec146e1123711bb359430345b2cde58dceef5cbcdc0fab409b829d54771e4b7a92d9192b845e2b9261be01ee5349abf2b4340bf2dcc12b4d94199912a6f72a96f6f61c50df17cd3f55f62ca4dd198aaedc5442c69563b35a22ca211a7e2ba8a451bdde3804afed259c390bcf24bd8882e1094a0a5d2cf8c1ec61ed8a7d2e9cf220f2e3dc439e3cf41870bf5f14bb50e4ddc26a9e85f6b4d0927c033357b72ffa344e8965194094881a9287a8631b0b667e22d0c538bf1900600fa4cf4c41ff1becfd8dcd2755f24b5d2e8b35c8ec4c8d627f3b24d028cc5819e27d14f18b4fa888206ef78683000661e6f98063be13ebc36486cf4df97726261135f30519522a164c8d442acf2c6915ee799cae27d286e40ff51e139bef5cb88c39dd80b079271e0a31f7a12852d92591e6298f3f8cee15f45822a29cdc500395edf97bdedec480554be997dcf02efbac5e3d9223047e423803eb082f00a601441c8b0070b404221f15622f21f778e031a3028375f6aec236871091a90395c506c0f923f9cb8dc0cc7814df8e19ff95a6c53fb4da6684f0fe4c1b7105d9ead01a1945e6522a2f37b44c90739fbb0604a4260f5d7bfc625bd1f3be8861ab637c1314ce9d14ac919ea65db0a734681cad58c46a5a856ee8b6a7840ea47f5f43085900b98120bac9406049cf2712dae3f504d96280a900949fa974145d45a44d8aa7965f11180ebb141829cde36094b0567fc919679c0f5218b67778763d937f8f8e4f8dace3868083f60b304b2c0b6911b163df4898ad3c34e2221d7516e12cf2f10980ad2d0d4a8e9741e96de45b7614196d0518d94e23b8f35edf51219e62178701e7bae48762078c748903dd95c2494781476c2286ab9fe3aae157d586b1805d155ad5bce04f75d994ed09d09207af6140e04835d11c5a612e0da74be4c161515e03d9ac183f637692ae03585ff03aa2cda5055e7529434f9cb25dc2fc52b3981575c96f6c2e56d1e7dddd7533cfc0d79dc7d6e96b465445e5741f1c14880f38cbe5420489875a4af4d82b0bfbe9bae0950788a75e644b0dbae78a60fca47d8fec4cd92fd01b22b6263db7646e9f21357988016eb41b8c25de8b3236369c35ca9a1903f5acb4f6ddf74659aabae63b5ea88b1596ad9dd0404a13d96ea1104e6fd17d6a24f8a959fcb425b26ebaeba37a2fb8e77c90fc57c51e170479bdac39d4dc8725c96c3005441a0e9a24bec990b924c5f702e69c9f4e66a973ee79f1f2a5208462b72c522859bd1517a4e4a6d4e256a17a0dc6e1dd2ba86cb00797deb7622e618b0755c322d347213aab03b2e4ce4b723606346664dd4a1bad21961641de2b10c092a204bac0816f845820c5aeeb8e04875a8b55c89bc6a86b403a6072c1891bcd792686bd202c8b5eaf77aef6ba4f8789fafbb42fd0a766b18898a79c070aee709e0abc5368abadb8191762735050adafdc16b06a9b61d718c5b8e08b801684d7286657b60082dc23e20496ead9238d23786a3a904df0183be4c56dc54e6781b1032215f8c59a4b92baf88a1711bdda764b2f98adef4b113e78ceea8d69f9e4305dedd48a8863ce7435a40340c94c54115704a0b8b9aac6cf361581871e55d5822b42eaa08cb7611a4b8bacf868707cb3a1bbc75c9c938d7a79f123fc8c243f13a279d9300c9a180ed86c76c067b0fb2bb2364e6bb9c0f648be3f5931261a4004bef0f256b3c0f5ae1d3ba5c8d44e430f175314afe8d1a6e329626f75342798c8be3c7e0c22ee7b643da49575d0654bdae1e6f6a432cf81aeffd042f051029bbda56f67b06d1cffa1c12a7be21156866a26cdbb21577bd4ed2a3bf5a3eefd5bf6bb6ca0a99e77006215ce98f86185631e7e02e43e497665a7b8363874ce2e0e270b4da87f31281fe20943b6781c6dfb4286d1f4ffaf2f98c65c810d7d88e2d2c4e3d3ea2196ed672f50bcd3abb6f8beac610f0a0263a90b06ecd01e7c096670fb56f3e9bab3880d8204435e4e3334447a3268c32ff5095f44e1330f920f1cab0fbd6063585ff6d37e209f66afad4a8a09a3bbdee325ff0535da01682baee33a223239e4e5e879b83305d09cebd2d44e196189111d6cf056d1195c0373cfce960c13b67c738e77a00cf61412a264774ee99d6df36574013d89043e164aac28113e85f18586051f190c9b85037fb7d18aed8cad0bdc9ce437f6a51d3c6456ccfd14efbaab3ef7e5714b823a2f7f36bcef51e8d35351757d93be2b1c26d02fcbdc2c7a7bac6d80d2bb24990576dcded6f11c6e5dc1db4753016a67c6cfe77063c37f982a815cb0957770b6bacb2ac06700395e75a8468dd3fd2350655b5da4467d067a52dfdc0d76fcef0f08b84a8489e40dfec109c27464abcb7fdef7db2b3020b8982447720e0ae254c2dee97ce1a9679c17411ddc61470d3cb424727eb9cb0b672e9e0fd2a1c2f6544e6b9f102658db3f7634ac49684bcc6a4f38542fd4eb8ffeb9bc22b6a6458de1189ee4dcb5635c526d1e0c42d54fefd6d7b7b3e05910b3117dc25b0271982ae8e843eaf2824aebf14fcecc3ba79631c47700126cf73cd380028bb9884c1adff969aef7bd98f7b30df77c6ba710e7e0ea7cdeefd4b21f1b3993efd64cf24ed4d5acecb81394d11eb442f99cddf67f6d97d8cdf69a628705b6be3b5b031679d91aa593eb8d2819855390e400d775da15b0a2cad9c2312a69fad6b154aeda04f952ad16ace49997a24047ff4f6b5b3c58ba94b14f3f21bcc62b741fafa358c26023feafe5e6429d1e5f508557c6ab1a14c58c30c96d8455d3d7f28138ff1df026aa3ad9a61c0f50c639989a53791b4c850f0b47c46c82297931efbae57da915b6fae5535c15034a523190c77a0f950b8360b956df2b968cc83fce544904f0ade938e6c134e2b287d1a9ae85cc54bacaac44dfc30d38114b930e36576e9edca1250a0ace2e43c7a61348eadb748e5ad46ed5eb259070964fac6d932b899bc892f2f281e4939b8074ac61420b57bcfdbe083ef00792039c9905b19491308406f5e8be5f7be1d82dcc6abb364b919b5dafffee23398f4bf0832631aba3100e5bfaf43f1ceb6215b4c55c934c960b8aea6aa6535fade268305bb40090eb49dc7e4c3d8915d7fde51034bbbc8d86639b453aa5e8a2ed20bd50440769be86eecf9c9736490926f3f0cd7356450642c727c59babc58e1820c019730545f55a4fe8d7e4ad0d9c8a96a18e895eb5497791ddf5c5b507e972cf00a5b0be3eb65a0b37c2c4d30bd79b3e8b8890a07be969b8e613fa8f0c1d884086e5318249cad91238e649927da67def5304799381010f620393a6811bb8da832f1bbe686fbcf110f241d3b7c4591982cde116ce33ae392f939b594aeaed243b2360258d2e5af6ec9fc2a6c04b23e6493a0f80c08490d70f678483da68122903da1f076d2f38fa5548ce5b498b9e417b9815bbca904d3db2dd5f097261201217d198e82b132c638a94be1574b24658d4358bbd0a940f83df3c6ea70ec63664cf7c5e9bb275d38ecd6b5f8eca2ff99d4abba1ba7bd301f15672a62354f7177ddea4d9f3e4040b873d5570f066bf7dd6be5697c140f4d57bfa66345058eca7a46ceec5cf67bb77c6fa6527826db2faadf9a643ac34fd41515ed7f5ddfce571ad75fab26cb1e2fe0cd48dad1f21db7ce172948e5d19e87d740d35fcfec04324250a29820e5e7d4c44e8689d851ce872f7a44ff74f0039c66a156c10d93423111556c4edf502205074f058896b7a003288ef430e74c68bdff7aa882bc878aeaf528f1000a7f90bbcc7238d756ef62173164aecfa5ebd688beaf920fc70726118602d80997fdd9489a0e7cb5acb5019d177491df4c8dbfa14f9711766a3a11889dc0c16ed9db57670bcbd45a4e97eec4ccd3986ca5b0f73c7ad22c2ff0cbf6fe68460d1031705c871692275b5b57235c90b4fe15dd189fd7663f8c392bb8ed133c491d9377d3ba050ca4c1360cb823b90142e892362232ff451ecec9d6f909d1cd47202b8b63f60132b03766e70bd90cc5d50f0a5832cba9daa7946d4be77f36e6d642b09240fc88665f53e1c5fb0970e2b04c502f7480bcbc4e9099c0696079c0851ee8316aba9b7554f219b606f9dcb550b636b272e28625a499e902ea05e3bae9f0dd296ce167a5e75a68fb7e322d9a51a92a5d85ecb45d418e4003b7af286578012747b265ce5fd1c47915aae87f6b9bb768a253e41dea609056daff20cdade33973ecf05fad57133e2adfe26884180530988ce13fc9abe5ab60fc197983b8031cbd687d00f686c4497e5f141e7bf3e4f5d20d8db2d6bfca55c4f5910c3cee94bd9398c965c81d8524eacc5662cd72bba806879fbf744c230c84de8a20f5ddc37fa370b990c48ae55c36bc98194d696bdc28a5a35eaa18f11515b07d463d65b1628f221b408a7d7cabfff54da346ca0cdbd4323779bfcadbcf27feb462bcc6fe49963d2e661ce24124939e377d52e83849864595a2059edc9a6f5a7496bf473f267d54973c0af5082ee5dfc1f38126c6e8e558f7204bb7005a7ab40b781aaf8c4fc6877517382156a0ea3f03658f5e247f88de2c234ac8a1d6fc48c19566a3301408ff2edd943516fddba620daf18c370b91bcaf4fab9a97f4e16e934f757ff46bb92316f672f3afe3740a264af9fc3952e20352ac2f454361babba67fab76d1a530d10fb6b4ba3bac94bd6337a1190d27753f984df7138da1e44c1877574e63e906fa5b625dd5025e3e3f7f745db70ce3e7b91bd01c941e8a6d13927179dd825e07c6b7a58f15ce769859c1811cd8395e7f92b633c9acc0ebafad06bb4e3fa52a5ccb474d0d5ab75aca2902bff9b8430713b099fdc04df43549965e19e1c1cd86a4a7334c19d70fe851d4221305d253d294a2a95562d76b6333e9bf237c4834a10b54ed6e7a0c1d22bd1faa3f70ff708bc3d4fbca3bee2ecb0aa3cf18277e2d34d220b4eb4f83cbe3109eb331a12e2f018c345c75b6535a254546ed8e978d24082783f068306bdfece0604ca1ca92e07199e87f9aa51bb34dee7b032042ee82e57f25b501ded1cce317da20bc37d1d42d42229010ab98ab735c2b3cdf2a152bc69a1005f4c120db0bb1609598f1a10b517ba17b044551ff95476f725ce010c5bd0e8a3c447a2f7f554eeaa40777041967d64a82eeee306118b4c40b4b8209aa908fe88b02d0cf52aa216462106520e133e307681daa49d469ebdd88661f35e73926f06648083d059ca11ce04d7facd34eec4907c96dcda6238f8a3d02614793a3f9b1c9ad97d1c5fa95a26fea5833a5808dbfa7d20552dbfb95f0058934334ed07365cdba13657b9bddcac93386e69f947c1788955dc67a3070a7aefa4e009a90cc71cf89e2e1f89dd789400041e54d698d9ae9f9fc3bdc42a424d62257331ad3c2903239aa777b3c2830f57c75bf0a99718906a735ecff79a07b97e6225c1de060cd86533281d58ca454acd46d3d80169871c991486c667e58b2128bd445e805d74ae6a35fde90dd87b35bff49485f0f8c46f84e91983e4f2b5029bdac37dff49395ad361b44a9729d5202f9c94149e8c811ff85f77d719949fb24cbeb734f947863699bba1c2000c7925cf0f29a2f9ec04ea370607d5c12119f410b6db98d8a05b3c2fca5b805bcf7e60dd7791310d58a6b49c04b02824ef23596fcd0db1b00b0b69602d3d02860a72fd5c186c25b6d454da62956087740576755270cff533e7be74241fe6cab43cd51076503d48c47a11ca8371892ae21efce07a00c761eb7df0d8e42db925ad1e9b420623ec64c1bf72f5b46a9f5c6a20540a60643f120fe7f026ec8e5efbe381ae48accf466fe3de200fe6939b15c0614fd96801a577a24062aef9e53fb6f26f6a31d8e27c3ceb005a99d86a7ba7daea7621a6260c16b631be7333440c371459207eaaaaa0cbf1de70c4aa6ebf7afd6e81e478a8aad5f0ddcf76f06d37d99b84930dac2d2b1e6639499d6f70eeda4a35e164ce5058e3c2b53449152c798798a27dd6a8977aa0bda2de8b2eb40fd3334f3708dcd21521e4d8e2f4fc8a4be015520b7237904c2299cbbd21e4a9301a5775da09852483260013a032286e6e6aadab5d76b715465f60b486385e9fe30fa1a356fdd37a68d1b1d489f02ccd64d9596407a1d0466f1796e671600d4dbcc8be15e82032aa2f6630ed8e28a043f461bee893d1bcfbb4b7661ec79e2589d42a36950380465665405033f206f45aaa1e54e5fdd3e62f6592339b657ca8bd491ab522cde5a6303c13b9becc60841a54842f0c35fba703b6a71ca43c6432f7bcb569e4a29fc4800bba73cc887a4bf786e64f8da18b2e8d3ffecaabd351a583d1a275eb900fbf52cb9831ec661ef931170caba298f5d6c67d8bfde4c3cf0a21b26aced2da0e06f69c8cef9dfa02660fa2d366c5e8df81a84fac9a073a4647ae8de61c727620f6e73e6cd619aa819d1c06e8f29d5002b1e0792d487c7999782811bc6ddf8f73d8e198187b96339df7dce684f48407d074b124e4cb2256181a81f5e9c4c203b6f084351de0032558fdd52a4b367734f2742c5cd6b66dbbba47827264e68ee5b6820ac2e0dadb625b11ea7c250eb373929d6891f31c9c25b0ba87c4c1e58afcd8f9709265be5aa3ec1658cc3cebd156753b53165d5b70253e594cacf64eb843559cda1a9a6d2df3349183cdfcfd14e2e4906da53e2fe1e3ee736df122fa89674d74357539376432d7f4dd75282cc80e6b2d1fda369fe8960f0a8eda6ddc0f4cae58cfe03b1d4493d625e781fec212475c9244b34f79c20d7faf35b5f267b488e23f2c3fd769621ecd5b40ef6d9949ef31ee48168767a229cced9f54bd4ce8e7544650970fb4502f72e639815a94dad9b4f8684be7dc2760a43ab28bd6ac21e5c212b292d7b501f5708c1941f1be35cff739b47e2f5d9c3c92dd37b3601564375f8235fec095f9f48e7e94f80c69ac0d2246013f0ce156da0b5f542ac4ce1e42c4c6e14e3d864e8322199db5aafd1ac309b85001e058756cd15ad6d1eb558fa2b65f81176edc784fd9edb14c6e8356969ef4099e1b907bb79bcfb58c9110fea5b79afd948500f4d6cecf50d436f9c21f240114d126f34c961a4692c69a8e1bce67821223b7d9bbedf2db0d28c3002c6a3cf60bbad8f96475436976ea84ea7c52b967ebc6b797c43bc0b713676689f579c2d9c15e803828d6efe97febe11ab69ef26e53a3cefba4bb42807f75cc6cfebf74e9b3257d59a6d0cbc74bbde446d9cf80ca68857583cd3e6e232078ce2f1ba66fa0775a67812b8b945930d9fd6f32389a8d2c588916d1e7c41d9e5b5759e3097801dfafc8df8dc5a6ae5fbd8702efe0b040dcb00a1b76ad4dd6f54e5811a8ba15f02fb6646e3a50dd23066a831f0101b5a1bd436e1081dcda127c44cdf9cefd7da2f2691121a291bf455ae464b1f68a273ae86a7d146c94a03e5973d173780b4e76b3a21f08cf03005a5cb6ef9dac9efcb4a3a5c6f388491b7d85d8c3c24c9115b293a4532797b24a2ab56b23a7be134e1e25149ea75d4146c3d4b07bbf872eb1fdab906d0319c163eabc1638cd54f4dd76d0fead63651922718f008d0ddff8749b12f14128ece4955334cbaa4377006945a74e1795c2418b25690f9d04abf826acce316229b6e6704fa3245a4b6228c90f38112275d87b60c664e7c6bfcea9c907212155dfa225d8cba1bdb2836b15e8e535f97d113560f9f659d70f05387d367552755fe39411619288b7eb84ea9f8168dadd12ecaedbec765df3ebf67358884aa646dc8bc1b0013d293953d53e57b6f5573761941bab27234392d2c1c11356c0278e25ebd11d0fa235eaaa8b7dfe6de5eca472dc8ee55293cdcfe2b740fabc81c7af0c9390058c51f0799430890c8aff9b685a8ba4718a8de40a988c534f3b43a6ede21ea228c7fd98160eb1562ae89529e745aff08863ca58648ea216c55a6a78ef11c6c4de49e9c8f6fe73eab834ecbf2d1df1543c43c35046579dd3052b10a6424479998f16b49cd2d3e428488dd78867b38ba3f0048577da5da9b02c8ce829d61d4c073a37221a682b05ee21f3bf9d6887c8aadcf0c06b90db2b764b49d8387f842de0ef9bb5b9f992d7ffbd8d6dea2514247e8a0296ba9bdccc29e602446b7578308c5549355dc952b5574bbd4b0239b17b945c7fcce672540d6a76e96178d47ce72625d77b45a34ae1ee2dfd0b736203e71c03dd7d9a4f42dbe9e74718931d9094a8ac3e27cb52dee9b27b96d2d202fd1ebe09f86226b3e5d5271ade321fb3b42f6b4df903b729f2ab867f2257a39f6e94ce499a42dfe0023481640bf9c45f098699fd6e4d187cf7083d37dda226632798f571513abf5e377e0c0dc96ee0cd71f3dcc6b41d602509a24ad7c7566d9ca536108795dbed775e8f3cd374cae80dcf78ec449ba65a00182a84449ba3393d57a926613f5777ba058d28646be9b312c830762b0d0e586f27219f998a5dcd5c6a7f392b4f31887bf1c979e772cd683622653abfbd0778d6990a53a6d5d55cb22de0afe50237f851b1c46c74f56c8bb4a9c6155a278694208d70e96c2b64ab1e01893ae33cb1cc9844b406970b60cb2daa8926e9d91cb9384746c3a2dcc94922d668114b3a0d9fedce549dd156342624f7682e6f19ee6d91b27bda33ded8096440fb8b9a997582b55ce61217ac717d8284d1d181cc3d5e9fead38ebe9b087e2f16c53620b1151895b78fb4518e99f7128fb85ac9ba030c5cd8501d159ae2c6efa094b27f3501fffb4a977ddc78ab620655de33841b1753c4dec5f9bee97083b95d67dc3030fab19418249e09faf755705e7f670374cd77599763e275691875c04d17f7fe458f32d4bc78889c9d4c00ca55b60a2ec6265e9f9e4eeda8d8884ae1d631d2884d4c967183da734da7c2666f7010a5fc0ee14fa1709300f9b9ac1018349a33c335f7a7e88b96384a9dba571f671652fc140d696a55091dc005c3fb0976d91b763c1354f7fdd6a4b3a2ce7c7ffecb90cf86fe5b8d5df6a487ac0c9678133ed7bd742485214e3aee1da2c5c5971f6873ab69b1be9e6e864f8ce9b7e4d1092d30879d6d692e925eb01048d1dd5280c727dad7fe7cb75f67ca4265f3bea18d4681184822d9a7e5d2fc89cda07b01dc5b9f390f3b5cf4251c23d02753661a4b40d8884e47b95ede205d79921224d9bb9973bacf16b6f710d9f1905bf16a933697d4419abbc4e410e04b43888e6670cf2602e209deb16517fbe791dff40806ed7a6f843a231a12a50596426c53b144d54a224bdd6d4c66336cd416aa677891a49464e5caae4a81fae14941d2409b341365c323e77b7029cf866815fb861bf5ac8b85cb29f96a115d7e5501ffe7e7045f683aace0083a5e414a08b95ef7121a8069dcf17e75d466c94cbab692ed99deb69f02ba8d1841ba59f2b8e17f868289623f23e89127db66c15b488a03061fcc693d3c38fb087176fd43d19fca64bcf093afc19370a0b8bc30802719e816003fd07641a30d2383d1d32067b9de009ca20f3c33a965795258612711f41147878b942e418d5f3eac890234962bd2ee9414dd7c73363fc74fedffc2011e78077d688b6fec1b70926e66fac9a3a243855d62f09fcf1ae53f267230015592f15e74731c3aea88210fcab05325b4033d1aa8c89ad446883f0c65a2b242b4babf021eab3a66f3a087d636b3bae23de2e50911288b8475896d80887c1601fbf9e805c1f4ec9b2e4506b2ee42ec3da80b06f1428a5e7ce1774b340fc3001739236329479766a4a2eebf9c0b32c24989fd57c55598c0655f8249365e7e7f1c47000e1742c0af955b2354bdeada4f6dc96aabb5981e1c35342e92523f796e49f5cd7d11eeffdd9a2d02ee6814990eb889b9d7fb4990db6c87d380a869c3eb8fb9ba95e27dc8dc5ad6bda209a3501adf0a847e0a3b843958b51c6808922fdce0e56cf212ebf3c53f9c1a2002c4e47df5fa1a9ec00233a19f1288a8d3f5d37fccdb7d24b41c3cca2071f2aae876be8f3180fef38c2afd9ed8bced1659308b16f166f7ba4776c4a9100cb26db3204a5e510f662fabb6e260f325f0b2e76f7794e963dd1d8dc78ebc5264dd16b0e17b2c709cbdf3e48409c7a7228dad11cd7866ae1da3384025038bb87587c760de45fe5efd21ab80403d04446695bfd99bb7469a57b0f4126a6ef6e93cdb5198d42235d264e52848156ace7e802bd0c40b1f2185cee3836bfe81f1596897c76f678e3cf6b5111cd1de251f2fa447eb0951de07a7170b7bb10ccfc8e9508b58ef858b463d10dd51714c22840bb833885adee83735286ebc33774ffb7c6b1e8184311e18785b3ac88855bbffd2741020fdeb742deb7c4332f1bbdfa2ff8ac9889fb2d0e58bcc49900b657079819e521434a67dc8f1cc3859ce71bf6ca1f8995012fb2d405753e18075d661be71b840e52ae24281d66fec9a01321222479eb1710a8f481098a20db991b9d6118fee75b8e325c6ac84227678c08f61c0743dc6abc0ce36a4e40a8cf2bf55b84df84f622fdf2450d172a3dc847737172232f3a1a337e48ecb09b250a4a1901593b6e1c98d7890ec0a76b29d2f176e0537ac17a1f1a3e9f00360c8fff4582f9f8a698243303040e97fed5c285f3ff0e0cc94de368057167bb5e93d757dc3e42e350b12bc525e435ae5372363db53a0bee782fb673a4ae1547f4c2140db5a423a4c2dd3f22608639513a5702588c3899daad5f34d0a9a112694f7422313a5ec61325285f93ad1f7b6aa5513bb6f0c7fdccfdbb596279ca69d2609ef93c35ee7e773434ab92f43bd1dc7badd679d46ffc0b1418303b6595aeae5c4903d27c96831d787026ebfe578ecc5a75fdcc73f1ff1e2073beab39142428aadda7ee7c56649fd5a6f2814e1e08a1928b1c4cb71e9fa568495b4389abd5f71939ee9beaafb5d92c812496e242b222e8b9d3af65d07cc1a30f36003bb69fd4a2ad9c5ebf6d3400ecd78091b4b13255e5819501f178e3b9d43f5fe58db5e5ed5f7948d725411e8049e4ef5bab9f2c4f61cd28a9404778087633536339d43c7a9ad306e308f72ee067c6f6cd8adbb764c46d362d327a5b525e017bfbe3f2001194045ccbd6b1b1112b0d821ce394578df79afc2136f565c5f49e2e729e302d9174ce0bd20880ab39196489cfd665b48901d5a8ca2de87d93f59f612c307a2a03b9e078c4fb0265aefd926b955f8732ae401e1160c9b22f30e774f3367622babc6ec82378350d031b33e36272987bda3596082a6161ebf57f9542754406056d4c416b9f259ef0e8434a37ae954f47b00cd9f2ffb8c206b15496af414d4f3a2f7377a06a2c9d9c547da14b0d9b6674ad0ec9069c4d80226212e4ccb246285667654335263e26ad690eb1caa20f457e866be1487266dbeb6d316278ac99220eab6cd56d0036199b919f0a6f4c08f54ac58325fe33a01aa156798da1b5d753966a03279cf8411b5e5bfa0221a0a518c9403c947258c9a9ae37ee7798ececea219205a15289e017e480568c30428fa493204475acd9d672b4f9ce032af1eb88f12a9dfa3643a83ff389272ff0a944ee15ac079997c626a3658a8a0dd5be18cba81b0af7501f8fed887ae4fb0599f69c69ddd0b26f2c4f2c7986eadb6c0c2290b992da4a333aa96debfc9217798eb64c9fcc7693b921ee9169a20ae0547fe7a56081d31a57ed7973b3cf55e46d7f14eb0482cb63465c2e84b43d1b3b20fe75a11240221600039be80746721330e7d71a9d180ce8be1742a211ff9110c7362c010a36161c3c33f4648c2fa07f0ba2ce84fd07a5f0480ed3ea50cf4c63e256a3db1a943df3e9a8ccf59efaba69371f5863c099509750d5999aa6e8374434d8bcdff89b573aaf4760f780e1e878c889d105db29095e0e9dae9ad1449e8411267f4bd3948e06df48853427c18b9e46141bd8b8eef38d1e803483de74e34ade1352c5b0091dbfb7500d4d36803f33636d010218977ea27535d2d2ad980579af63da43d48aa2df22551d60af66d42f7af8f017ad8b5c6d19ee53f10be2d7613795d4ff4cfafdc70caa39fa1c9894cf117936eacd3788415cd8cecfa6d8ba269e287422cb142697aca4e3783edac1e1e4e4ae6e33453f96a04b6d1330d3135c731406383d4081b6fa563f905fcd18e334cf3bc20771cae0ee7bcf983669bb584e2236692722a5df57c23f9f5e0162c8f792173535b7083c35b6ae57105a95202845c1dc833d52ae10b853399eb3dbf5eaa3c6c0e662c6674fa8166462520eb07492e17f059ba8bec64b49117892c5b283efff44754f513a812364ae29828a6ede26d8c7e1f8e20539c8fbbf0c16dfd1374fb99e61ab2eff84db1d3ae86cc1b0f83059ffb218bbfa20f28ba6980aebe98b513ce11020ce602458f0633337d0d4beb71e8273eee205357466a1cb943936f4afee080d2f56179f961c1171c8fae910c4458b4bd779bf60de2be12ca9f9beda2c94542d81e51570c2ba8a454bb7cc3d0a462a717ecf01581add317c8de0428285229b5b37f385bb3e5deff6b9ca86253ca7ec9cd962a091089cf28fd3f79834bce58af8ed35841e5fe93ba24320ed9fa83f5b222c2855f750c972f8ea22091614378095119e36df0d45a74ec62bd549ab2ff547d4170a877004f71190e315bae0f890bdd143df9b33c569f5173127d02cc341850e894af86e6ae5a222e0f83eb5fc07331cc5550ff0133afac925e822d5a49ea4211f87d9a6e23944acefed27ab9ad118c0b0adb305df23cd14f204a817a1dd5301824b24100c187ab6363256a73b12f4de1985a088184e9e21eccb9785f1bf942e065012d3606c31e8190c36739c344692128f2c513330959d7246263cde504144c19f4ad5f6edee6622a9ec88b88a8abe2580b1babdb61d337240dd19d568450c5052f8ffed3d4f5661601cc3cbb43eafeeb882655fa85a15d73f0ac3fcda0b9bacadb644aa3f4008dfba45af4df768f9676f9b1128496c54d73860233cd2cc91c5c02f4acdcd4adff524099af4cb18c8c26bc29569175ca70d54fe48fec1477de8ee59743e7f7668408fac83c7f72dd079749568bd8b3fc12c4fff27c1290c97bb5b49c633306d20dab5f1ac0c3af3ff3b412b18df8c274e39ad491b905a9ea6f4c245f11adca74292dc149302bd8ab7eb3a74b2d9336e8772f1feb174bfb76bdb6bfa089fe5ad190351416dad1f0639c1019a4ae371e67c6a93a86fa53bd9a680a06e9b9a215259cffc0e5dd75832684a9c46d4b1dc201acec7656dffc715bfaeca3fbc3c75f01cbcbfa36ac5d592f32df004aafad4cd26a8eb7d8d05bdb1d00805c647f014d283fe085cb8f8e3c35e3ca57a87bdf2a0d2361c90bf1de08118b5d73d9f6cb9a723d190dda215339819b82448ac3602d8a608bb0cdf7ba9aa8b0a4a9bde8dda907b20969f1d3111a91a26da4b29191b4af8d30716eaca994b90916205b474b5fdba9ab7aa46873177402a94edd614e71c87aa914176df8591e3340b088ba771739d6a07b8777d9f6350b7c83f7a48a8493da4cedf9ace6acff4ebc8e4b1bd9141e0e03e681ed24113ad0dc25f63dbb074ec7c75a1f6e54cb01807a48aff9891449ccc455fa88ccfb5ca804f1d20611488c3c069108cdc0029e721e6d7e17acf22faea105ec5c43ce10ad141c6e4c833ef89aab2350779855e2d16b78beeb9a887ff69ec98752af3d6d40ca1d8e4faa0e72241b58e62dd40baacec2ccd120ee2e650b1ca99ca4ef085a834382fbc469961e8210808545e748239facd0ea144c8da4f5727aa663f36e8fddd304c3526b58a742c8de8029fe001ffc77810b5b0ca267e428220bf15fa9257ae85ffc18694b4e52b8da1ed68ce739a2e50c253aaa2bcaa9ae57c18787a5d1c9fc84102648587f88d87d455e2d3166d3e4430b2c07de5c3ab11156b0af75bafc9e2e5eff0291381a7b865e66ce42bfd55ff8d7617d0d4033fafb07cca734088b84fe471d646af926b58afea831a8d96f18980a3ac2b90050e0987a8eaf55eab1ae992b6d9082e82b57f00873baebf26f949628cf982216f547f0547fad9ad8ee9e747dcf61be868e75bbc0268c297e261a78e3695450b9a633eef979b52a3f839b41499791c79517817574b8f8778be9bc8fd1082b3ad38ee4d26a2cdf829bf90333a30fb335cf71efae39333f7f719279c296dd5774e9fc8a564e9c6c3b4d9ab5832af3fdeba8ad73dd7a349adaf1fe62e1f2d10d9044e2866209a140db02f67ff799f3e875aabfc698f06d9e1cca8dde6c8bfd399706553882d065a533b860a9458734946cc6000078fd24e99044a5f0d26e30164e8b10606d9bea62feb06f839fdecf032fc2aa7d114ab11e15e52f997a3f6d8b2437f00f4eee8225b8b77e0fc55b512a77f55f5ddfec0439a3bf18402ead696401cd792ba47e5534f12d2bb3593e3ac39592a3840a601c26675fd231b7631150517e4f78e8d3de778e28dbfc6abb7efd5e375d395e0591b67966d02bbcdd02b4032cbe3e51266ed0b4e735785b3a07f611be5a4ae6fe0bdc9a370df9349b104f5fba347a5ae8a8bc5877a392a33f3002c524cac7f9b0c837850c861e0513c0abd8ecc199f3990350ac2ad48f1a044bca20e9c14bb4581af9b4d4bb978f57cd6254fa9ed074be4c79e5f13d8eb91b1d347465b7d21fc0e70bbc1932a355cea62d7feda3f6bd102199163f939b0a3b5d1d6b930924913f27977deff49ef28aeec825f0cef8205b7668134c52d9b51e38e6f11776caf8e96acbeaa70ff506d6fba6b6d3c3d9f9aa142f9c1839b1ded4d0cb0fa3a29c2af850011b9b1218e42859725784474216f2154a4965cc19432cb812c27d96d55d450e28d9d5948f0b6f44603897c4a14e8a6a02f144d1ea4ed97a0122973ebd67f5ef8300eaad14d3ae31530fd0c9def27955b3819bd34195f511ab5f81eae0722bd1bc426d7abebf5245cde44c8797ecc9ef408a06a2f661da6f895b96cedb340ea43c31ec9e3e6a2ddcb29c0255f2b8b8a3deea38d11f55fbf8e7e8ea81afe434efdda338bc2dfef904dde4572cfe9b17b12568c837a73a52051e03cf82ac73fe4bead603fe67a68bff7b73f72ba3afa9ac7b1ac96fee8f2163997f58aeeaca42e568daa591797816c549bf651423b0eefcc8f3575883694fd1b806ddcb510f4400bd2ccd261bb1fc7f8c9b81cd29a85d5d7fd56295e4aa5e85765d4f01322ec471949a9273be53530de961dae16ddeb55ef0f0910d56c218a8e2492b5c6c34a92126be16b02a7fe1810594b1fde0a6b6e3f36b336cc55a4ed56d9cfa4b2b32a98fc0b75f1b2909b6a2fb1e917370f940a4de836fa1beb5b19e032885242bad0c4ca8f9a67441338f6a9baa9aba55f09facc8a8d85e709fb107f5b26c9e92e3b47c4641a881868a38897d9e17ebf68f77da234ba09cc02e6809b32a4d555b61395ba717cc8b7244b3dfe5c65c46577aa363a255561471c3241159a478494aaa1eb6487339e0d3aa750576c3c7ab1770214e6d8d1ec653f4d47e07f40d5f78fadd6e3855f34fc9684ec5afa9772207c1fdf7aa52b4768f5f94260ee577df6a5fb4f9827b28afceca809e47856553430e1a8c557b6a2af48ef7d1e65c5af4bbabf5e1f182c458d9437f4147a0ac0fe9ff9093614292ad5f623abdfff2912f5307ee421a1223a884c9411600bd25c554d06b623485591032b2561856c731052e1e3350bbe77e7f4ed995b8cdabf30df3ce58a66ac93d23d21b2c89e0a15a4cb82fa4cf6ce657c3e338ee75a8e64221a13c14ddeec4a600422a4ea8c9a45dc2b4803e999d7794dd7cc328cf871c495f9d233fdb5f621881c34cc2827a1bdc86b5f1591ce2df933a4ad678fd94d684c8070d7249c77bb1c58c4df31675307d9d24bcd7d9925ec0ccf02d256b2da15884f2b57321a0c559af8c3a64dafe93616edc974be6ba32718716471035b562605c02269e342da416673ff238369b5db44650cb2d6d56df15e4fe9312b039ca4a3f9fc9a6a41fe57bd792c67e0756b297d544e8b22be148b561371906e2e3ff93bdb471306a8d97122edbe73b1edef932b01837fcf23486c4fe534303053b013a8f025bc8d1377cdd61d789b0bf6facd7cd9c12f227b87e3ac1bb07b7083753660dfd9e31f921c8d7a5c5f4e0238f0309097db63f44dcaf8e3385a2ea0d23f413b63db02c55773368f787f473f69217b2a538429657ecb302e262834dec4fb7ebac83c43a2dc28e4794d8572dd9fe33fdc5aaf292822b642fdd9f3b52af9674ec35444e371d725847818e71d0e1ad6c0ef022d4627943b04f3b2c7f7714abb5f73bcbe70394b20cba04f2cd0216cdbd5a930d6f840703852c94b98aa60f3ecb06cdeb51ed569129fc28218edbf5a540747e2c31d6896c5cde86e7806845f0739f9c4068e2fb7421c23e841b28ef383feb655f9576711451d23180909491147f1a7ffc2c106ee3b55c57522513e8a7305360fc4bd9c4cfcea1bcc4f5c082421572ef4a4ef86e98741aca251ac7b870e8916bb8e5da9db23a55cec92831dbb890988c40c7a110ec504ab4a08fd9ad77825ee71fc38aa85e2c9b15e4ca3313900fcc965b7e153b89932873214ac907e2d53c179f4ad9a7a11257c22425e3d3bc29f6749403f32a749a2c2a87d69c7bc07851a41aa756f1635dab0be649037ae274ea31fecf8bee6023c34106e8bbb1899e211a1891b4eee6864ca8672b499cf5bf41faf6a89dea591a7ee20cec71c6645bb16976e4cb9c53967b577b39ae7fae30a3a1e8087755b626287d378624cb43167a64b6047d0d99f57f594158949ccbac871d99af0abb6070f74455e62c44ce336245d351e0e79ab4d9f2f44166242439e7080bbc397c6d5750b07c2a6fa91b443627ab2fe2e2af93aeecc8a510798a38cb1feef1654c011826fa2f3f3fe83d3d238bf761944e706f2515d49528b07eb473c69f0c30b187940ca391efdee19b8c58d4d5be348ad4e77cbc0d16d416b1199982bb41208939c07beda817e5e91b0948cbdf79278ea35cab385ade91a85412577c3b55d981f3639a5fb62a2a481e10f11bd489e96231993f61a7a1cd994168780529e1609e5c372344987f6abb475743d5ceea4da56dc90a15196cc6d0e7182f0cddb2f9b85c889c2d3f15abf21b3dedee11bf2e074292d5b545eaac671105bfaad05f07fae2ea276b32c1911368a2d8bd5d9019ce406703a582ab072d75e64497fd737464fcaaa49624fa4d357d96307dd9336455a37790cf40b15b2519758eb1cedb1e493afbbc0898b063e63a6009d18b12868998cc472179ddcf0585e6eb7ca06be0d16819bb6393e7a5a6e9adab3b63d8876ae372680a291202b8c430fe9dd1a6e37895e3b00766fff26ae5f512a3cecbd990c9c93101df138ddc3abbc85e6328178d6597919d7ce4d019185266d6e54fe7a45151f8fe5681ce454367b82e2a4fbcb4bcb55a8f4594db124460120522534ce2d19175ff26725478a51ae51e8e0f4065b3444e8d25aa14a51ef1b142a6aca79ecef6fe857b8efa31d7358e64db0cc76bdde98d097ce686953a90220618aaa3bb28b73014e4b126dd0ea0b5dc225c1865e0961bbcb7e15c9dc22ef9ae0750f4359c2463b62f6bc5212653c882aa92dc485ac2611f7b5d7ee7037b0af9e80eb9998efcf17959eb9e514c9176f9ed0179db1767eaf3d0e50396c8aee18c9beee5882d94f6ec84355df9882e39072f4329399b43d9b970b4543e82decf6e83721638ddf996a60aa224580e98841696745b53f213133b13088f664413b58c31b872f2f66575bf9406f0e05b8355b5e2c9bd6cddbfb801d761ef0d8fb9c3369c921d95d7941c554b15fab8306f9615ac52de9b45b7c2ddb45a4722e92e46a0e7a3f8123ee47e0911c55d3a4e60d88d3118b84c03f715600403390b4b78dd62beb769eef94dbf7fcfd4bf750a84fc17bbf40abff46f616210fed71f596bc7f939e032c3e99984e2d3bb43acb2a2b7d089c6e58864ca6f7ebbcb852c6ed479445b175dbe4961085d3b9946d4bd8b4b7c58e05c0dc0bf5e9334f25af2756347071367ab2352bdeca36ff45a1acfe56dff6bd9000b9e845a44bbf932a59769d26bdad90ac525bba468b360c85b880c17e5331f4c1215fd1079746c7d6fb0b1c87cdbb5f98e10efe4e5be5562ab2ce6dedb7aeae70462b50ddc4e4c4aeb9dfdc2aaa9c4eefd15c122586ccfe1cf12dba033277a5b9aded8945df7b0a4ab58f229488aa95fa3cf4ca28174860dc2e7585b648bb572df47a160afdd7f32b4de7cb1104d8823a59beef3273bd4e434c18ba28846986bb354f8d9c848703cfdedf9529eb47e953d1bd80b91ab93b106003789ddb409c4499c4502657bcdb5f48eaaadf06eb2083901464f0e25915dcf02d89545f00154a9cca24983e8a897f86e3f5ced9df5d57a30310c6d775ba85aa87c35c5601e3a2f31f0f9e7776ee7e00a851ddaef4389772a95d185ef87e226a2f72009dd07030a8983b498da0c0d72a97aa5e6479a7bb8cda507af73bba3e5965c54df5a4c5ebe2d6bbd5fef23b1ed255e8ba0f6ea735b648ef847b00a89fd14ee8bb72f8ea5a2897f744e37eb37808a76107b8230c0910294332e5483690a55e7b42ae12a7563debc69365ac211d07aa76a5100e1952235b5d54b5df0965acccb637085bb977f5b9fef2fbb9d86766e17d5ddfb436fe5ff20cc05752bb16f8f262de8b31090cb847beb141dc1557fbb72e83ff06c89492c1f96cb5c8d4a8184e3b094058c1feee80ce904577a7fea7095a37c50dc9cd0e743658c6a4f1cf965ac439a25f940e327b523e318ced22d01a61cfc1f09698eb208bc3f15f0d1f794f364c47148327b49254dd6bf4865b1bcea090a1b55b1ae9d24d45d91ec82cebb969b012bcd51d9636b56cb3a65ef511ce430586f2dd8edd93d27627d61ca834043e6e235e1c5f4919e65effe3b24dfdb755178045a5b1d96ce6d4f9e640c518706a81e6b1020183aa36f350c6c7f9fe428526454bd12a42d57492bac29e12705b4dc0e782d6f65a4c1a2d60170b0ca07d049f6d30639faa637987d2e44ce28220b6c314ff27d4fe108eccb42d1be0d89198271eb19f42e82ca22d468986e2aecc6a5a9280e4e1c00b866552aeb3e0779d7b5f67e2b4962d79aea3f57cde93899014cbd12c3396995277276503073cedf089d1007d8264bc5cfe5d5ba512410da951455127588a591ed7f75de23026bb7ed4f2939b475b22f275a2f364661a6fc673581d3ccac956735695ef378fd59b6af2912401aeef5cd195ce979de279fdec062f3e94fd5cf82863f80180a530aea699a7f8435c88689023025810b1ed7af24a27fa190f23e0e731aedc59a64622199c789058f396b2c636c07de8032dc844f77a25e57d8a40ae958fdf6946f3a273ff12a419c19bd5fa0c53a1667e070b9413cf98e67a913b51f2acbce34a2decc4251c4ac12f529face5c690f4d8f0a2386e8c529c24f733d5bf7b64cd43790c4d6919bbd014e729e6c44c78b2a1256131c276ec0875d00cd0075e21049ba034cf1065681f5c4eca91daf88b68510b12aaf5dfd1edc54c9dcb4b6b5308692e0a61e8e82c6a36d0373cae565c00db5aefa0633a07c6dff32dc7d9f5a1bf466446938570fd5e59fb2d7b5b31c8c3c559378d835293c81307327256c418e30624092cbdfd1b6002c0d1c6770ee6ad1e5dc3f6380903ca806164e50e39d9928615876371a00107ef7b718813020e936f8b7a484986db97c847da90cece5b4be33057acf10b88717ae6cb9e0ef7aaa25ad87962a577ebb0b225943c7e853e36e8f339c89547ac0766079cb9cb8cb561681625250552719ccca340ceb3968e8a20fc3d0032ea9e0cba03f1cc1e36296541793e5ee37ed064596e9619fb8668ca8a30a2bead60eab7cebb4e7de91971ec53018808b37fa37c66b26e660cfd4f07b1651d807f955276ef0e196cc6240ceb0cb24974d6b9d8ed3abf1a46e13fef4d7f053ea8c4f8edaaa9f65ce2e453cda26029ed7c6b2c75c26ec208b45e773aa3ed2c1f1528eac8f67b2f0cca4efec09c89ca1e8d6948e3466cddf2ca4bb85d9eb81c1682aa209b0a8c7c919b236b4030d78fafd540dad48fbf32edcd0f9cc95e3646bed7af4e02b0a124983bffb7fa959caad3a690e025d9c37610f1c7fa3e28eba4b4cc09bd2f26b025e6dcde239856f1171e3bf6d10477a2f9e17d9d6aa6798fde25aae4962fc84510970b155524511ee2f6100117bfe2a5b6227470d4235fb0a25a2055779e09e48e045f99c4149e97c871332708e3db64afda8240b1499753dfcd86284e2fffb2f8c0acdffff3d05cc4af3f8efb8b1655211e5e6e68b02d27fc42e93e6cf3caa574cc96aed88ca78e40105d4280abc3a8917f9cf7d55f7b774ce6537fc5243c445715b152c5e4cf97f659bc7ebbbc12b0bd91d5df4e617f736debdbf19e5616333e09690ea06a484eae5691db8a40c8bbaf93dc772f4337ee1acae0a30e3f1c32793cc845a881165c023672461c53b390669dc8f8ffc6e7002667230710c505eaf1897632bf3202431777f1ad6be43858cf14a545fbc740a592c60457e0565f66210f9a7d6d7a63e306a17aa5957ffdbccad30610eb7bd49c293161d98d6bde330b1cb8b2fc9ccab843c5ea5f9f84fa97c8c60c03db4e38704237658c46a3414a1457d8c11e22d89f86070e9c231ce0c7ed2ffba1a3f067c3ed96b48f712288b1aa91f595a40037e02fb499300340a44e996fc094d273f541aa68b6f1a03465f87cfc603958460a7226889f0d0565cec1345d42e65fe26d989ed7aac36d3e178923c3790dd53801fd5b601d67d92457e031daaae699c69cdbc092b572000de92208be4398dd520726c281d46510560a442b3ad297f9d6afb36c5e3dac269244094e83f0b3139f08f5eb40f911273df4fa36ed1886cdef9a267e21d9790d2aef7e29556a0252f09138f85d958f3c1a1ac1109d1bbe9041839e8942d11ab651f697f68c02ef46c7fe6e97a19237779cf563e1588c13cf5caab9405bdc00e2ce99ba34bde2c362afca231a4af62cb490c74907498f4a55c029c03d116016d98089b93bb683256a56a323dcc2f231984379282e060d681298c3f818940f165fd4baf074a4eecfd9fb48c00ea23c0949fbc6d476243d2d30f19dd9330e54c83132c6a0b1ee23d62dc8e9fa4af1e5273b5730156db3bb3220551143dc10f88ac773403456f5ae9e7a755b3a2fc9dbb78041282467ec6c52cc6f7639fa7b5b7cb28fcc9c60c9f59cc4cf9de4f69bd7f846e2a273c5416e0fe5121a06b431111020aaeae42d76767979cfa5c85bfb8cc5ef9bde3f1b79bca6669764a7e69cc091a662123b644ab331c6c77d31a7e3e640a4f5c7062d7dac28e1589fe60e3fa62dc6882d66ade5c71b81547e1b758924b0b3fd448ee389212cd213964f8ede4a88ca08a0d77c37bb852f626821ab47f6d653a747fd43231f5579c285a83b7a1f118824999be2371bc51eef61b502c1c9891d6da87cd709e459b58404a34e781e477e67caed3c4be7f67e20547870f5a804a4f575b99714eae626e44da19144a544788791ffd81fdde943d6ea310e06ab5de01da985c0aaa55e8b7786ac04c3df6fc89a3ba15c62b0d3b6b824dddd5f1ada7ef7482bae2c4401d535514f28ef7ffe1ec76cfee164cdb695d49c34958065961406cfab3f563e62d264b1b3f5118b6a11a201c5e8653e5da080b4d4c8a06dd60bcd6e1751254ac5a56980185fcbc356a5ea4a5253f68fe32e5ec3a2ebb396e1453ce7a6b5d1049b9cf2cb37e6bcb027e6a9a3c72ff6f7634739e89cff34267c99630b01bcdb84359bf9e7884710c259cd172b0c399ee1286b115c0146d630d713cef6492af580c931a2fa4065016ded38a50f3af7034d593a45b1887168daaff9ff02c59217d66fe17de2afa420742307371b01800dde7d7d768455f1245e70c3c80114d981b20aab08f9b62f40f3d27cc261719569d4d8bd611682b38568e8f374f43f15bc84eb42640266106cecfdeb85ddc2792622b57b2030501915324ead404dc38053d8d4f7c48a5b48c768c2ac0b7b4a76cc0c72080d00db4ddeafc00ff5e1124072ff396f7b2da6290d09e9a4f33c966adaf9973da0b4fdc0d07b8bdc5e27bf72376c14fa49f53578dffe8143664e85bb19c005e5c77d58acac25037d91c5346f282fcdcd2b8a320f51dff372a3c7646ecc57fce283f1c71ed2a28b11072c1825f256f3693b7ea98ada70b3741635cb461ea96a0634616e405d1b5c6e57fb1492aa3cfa940f8d5328cb4e6f479207d572c489291b5836495d42dc864f60cb729671e018af21e90d8df02eae331d26a82faeaeb46cd6d4b15d2d37ea48589f536fc4babb50acc50c6e8d14b97aef6651a8c4a1869db773930a9716837f71f2658267aa20ba9607e8e5a8c0a0298c4e34a3839d896149ef002b7a46ed759551fdbf4e6d97838d39381df42b3167a531fcd68226a9e3202a5308f9b7918d6398089cb66da48e2933c0892f68cda455477a4189934fbf197a2fe7888f50c42296128e05af7c61581581a85b3f205cd599ac65c36c40f93e14b39ece3a369921b2c08c1f7bb0b05ecd9e13d7be6fa4bb1c344d8c736f55dbc83ae1a7f62386285fe0bcddb4a0729adafc431ff2632d9ca8a3146ce6d02183dd4b96566d2b46ec8365ab7f5a976bc482d854e2b523ef93107adf44ba25e919ce4d6e49308a119340fba07bb34773d23a3e47680de2b0f164b3743e3330c1934106fe071b23be995687c99aeaed8efc51838fc3ef553e26276a72945cdd9058a301f582d5804085a26b01c37b0235a335bab296177af1f69e4ebb0ef37912f6eec8280d8a6a5c53bbe4c93c56787c84bd182bb65b756d6163606753c798c73261e2b3d5decb01186ddefd84be986c941c88861eab121fbbf3a8c29bf129333ab22c5ab3f2f5103e445c51403864bb01e2af74016cf4be676f95414f47f82d4f323a198308cbf54c143324882e6f61357d09a71d47695d3f45cdf8d3e4bce3f53b0b50670c30de43a60e8c824e12c4e6fe4a180de019d6312446e8337545561e430f7acff1fcf339f3015bbc0465201b00083ef96d10f1ad0f8cbf74b2163ab06115a76a52243e87e657f9cad1fab8eea02afb1b398e3dfee4f257fab56f592eaa81e01be9ae84e4d7b83bc1a13989c4dc34bafb81eff7e18f372c586ac86102e3d1620df16cbd290ae0cbdb5f2af9749210a4642089929989775069efeb12189a5685a4ad76f86a315d918a1a4572d851846c71f6e1af3a22360941f4ff9478a6c02692fac02a103029298bae5c7d2e1cf03f63d4d82543004e955d6d6dd07637a3bbcbe6946fd330b84dd319e253d90d4088c61191ea86235a241a87c3f6ac49c76f60bdcd7982c650cdb6ec26ee934f344b5b1fceab07fbf25e7644eab7dcb7d726cc06485135b64235848fa82951c61fa93128e1a0f79aadae9e3d4d9d1fddbc4ab9dacd8363351c6718a887cc4802799b94f0805cd04aad47b735d1ffb551581f1cf12736a4fed6415cd2ce33edc020eb0164c4ad8450497e89692f91560575baf10c4883d214ce1889af9ff8d4f285975c136027f0475510d15fe363b6606b20d99a399e231e122e2e558be8115a39df9f017a4f5760f84dc564e6e10ad2dc766e46f82aef2e5b78ed1b813ad073c7ea0f74fbcd49960d5db15799c36c00a1cc742cd239d1d7982ccc59adce7321d89c313619e9718544ca25a15cad9ce0551743b2028caa519f92fd7fe7acc7ba3a72e7afd001ec69d0d61cb86892518a92464bf61e4fa375f141f7d654739531004a230dcd82ea5a932574ad4f8cb67692cc02b57eb124b129e5798e112d37a0d9b54b85ed6ef80544e5ce443b381a251aa681cd8ad9cc0053868c9f48d80d934bb6c8851a16c15efb9580f16c87f62e3726e0e0c6e4715541b35173065ec5f0e098758514d16c84dd3c938fa5c02a4be2e98d2c9de6421e24275e5d24905fd353a363b9f8841f0e6ea42a4161ccc81e263e2cf82036a69496e353be2e980a29b9e7d886db6a6af41bfe699bdeea201999afa15644872fe8b2c5359721052590fbb5598ef7ce05a3709f1e429cfcdf05fa2c33f9755bbee33e804a11cc437668bac2a4db64eef71c9ca2fa2dcac9ad06073d225cdd32746c0c04ecadb3e2e7eeec75d6e231eb8288ec8835e7678dad24969f4607c33bd9e81d78f6ac807fa0a18eec3d2fdb8827ff5d36285256d62e6999ca69c7d8b25414898f4ca6f4ca37f9858245b70417aebe852551f04978cd3b1ef9bb9efce2fd58570030fbfd4f3bc6737bdbcfdd8308f87bf7be0fe66b5683cfd3ac08ded4ca2c45912abbc91fa855354be1b33d9180301b104871fdebdb6bf751ea3e0ec13609696cd2a8ad48b041815cd7523e50aaed05cb789547b8a5d69a294d1f6abbe965c03b44768b0bc5d54a182dcf5b5c3addb656d1610a085e867b3209a8bceaa8f8c669a4fb7e76a56cda5e97f10c4624f333d936058911b3b6338f85cc83fdbd5503e27db2d09b307b02a0389aad5eb177e4eac3f23943d0de6a1878e09d87546aaa357d4bf0f79a3c63644c4ce0ac75c49b0cd1d17e5e077caf2ec8951f444b172fdf9ccefece648d185161c1936426cc51620360b757e91fbd8783353393509e36732a584e2e3e8746c55e3b8300c46ae556123e164941a1e3d346b3e4fdb247fe7f781dd759f3a7220d2ef815fb9e362d464be9134223af2f8594fb81eeb0e89b896135e140ec01600d18416ce41116df58d4c877a2e4a80ccd54ea9fac0e65d4e2e2cad3567da19208a0d741c80d5fb9856fe9ec141b462dacd0bcb2dd7505ee031a6bfe5a5ee575baba76cfab76a1290cdbd6bdde8ddbeeb150e2096547744b4e99ae925089a1d5cd47dd71309c76d0c134d949d3425bf7cba45bf537c9a09b0f1e86f8191f6f49a19f2811fffb462d7deb4664a3bed9f1a795d9d133931bd1fb80a548789ef261b84982b3a057c3660f702fbbd94baa1ec45dd3d2a9999ef05023d5498faa562c1910117d6eb18b480bd587f3edf5f7259c51c76854f5992bf66f5599d34e53c7db154f94e6406002da14987773b3adf9ad305ac7731ee6f3ed0a8d0c74aa77922c7ba52a18a95ec21a8897811ce7de2b9fea63a82b82e9d9f01e29e7292a951bbae9879db58d6500beceb6e6f41925ddd0996e68f833a866d0aa8bb9729112651b099e29d2f10248a1bb1310d417f120e6a228c83d4fa786fd5349a136d1f54a5108a6f6752ca5ff8f62514d0ff68ae92cc57719a1133cf829cfbe51c81f61a188201cf796964eac6d491db5eb11cf7ce8dd0e5e444211a9c70ff48eccc6dc507aedd36d9023f0cd81c75043e0fad6d2140581a039caef1b8b379368d7af68946b08c034a0b743147ce1701ffd71ef8922d5e5a67ea2f493d9ed0f335fa8fd2e19b2706365a1ffaa4fb674b4a4925644ccc37119a25b66bf1bcdd59527eccde59f15c8b122537dbcc492864edabeed4ad4e33455fe6ee01986d8408a27ee5f1942c2b65378af4d11f706e195fc6006e94147a7228ed94c3dd6498066835e07e4d396b811608cceb1dbf71ae5d6725cdd235c3eff09a70b6362a1408af22c20477f82ad76a04f6a40e97a9be63df662521fdd5467e74e81c17999fd41289d58c19bdd7b44446875fa6ef3bf6b1841c0dd268dc2a01a62176d861668854f0fdfc6fd238b9d07919755dcfbbf9942e075169ab85f63e7db03185863ea93ca21cb0a9f3390156ae03a57bd5371760ba7d5ecaacf8dbbeebd8f8b7df1e4af32f85068cd085542fd922e1b0b3989a4e8ba91614859630f1075fafb599e5b603ea81e0548ef05a725332bb72ae4fdf1e04d31c68058d7eea8be78debb36e62b66ae834ab47b2248f56b4f43b215579c30fbef1cb2e39461755e8f70480fa104909be351f85718f71856af339f8760ff899166e0ab8599940e628efde28e478d268ecb4b7cb1d5295615e1cea36f7c0e013ed6dfc8d11fa54e6d246b926a8d34be905bb4e0c9ab90cd47957a76f7a301cf342bfe74bba27ac9e12f827cb3a1950341a820b323760b1aaaf3d2e4e468ed931a7a5b3c586c3e77c473a71baaedf9db39a461c98fe699513b4b3ac10d03b95cae2848a82f5f62593c440376a2b194e154fa0ee91cc0f532345f307089be21741b584203d1386f61821c086a7332affce595589df3a8307530345a21967183519a13f3f638df765e6189da5123c12e9964cd9563c5b759dfdd9ec0f3fafea8f5cc8ce669894bc7dfbfc66479c91a0ece64ceaa3d441ca8ae3f70ad90678eb5c17d9c44c328f82cbf9b37f1f0f90ef347e48fe51c95f434ca857739c116e99b2db09eac1bc9b18dda64a13238528a0efe23972c1aead2ab955d8bda595543d7a3e26cb0f75e392216c14412fefb78ff5d87cadc30da648c0d6e5104fdbc3967c58ab6d2fcebc954bda5b18328f2d02fbeb32ab79e10faf3e7bb16855c137f25647f4ba52f09df22320a34a677e817a03ebb79b5f1c99226878fa5c9c3a6e825eab76741a34df00b79774b5b3277bbb626b26906a23412da86466a7bcc91517992a0fc37aa84d5cea37c325adcac7aa8942ec61094d9323fabe69ec1e0acc8afbed5db3c0918df3d320dbf665fa60103b0b6f480e67b1a67563c088522a6c820f21333163e34c909e12e26ea61f436c89a4c0ce02322e6d34197665c66aad57fb780b544acb454363f4e7fad7f5735c2cb3631b2ce4b75cc5087f14089f1149a8a59c0e0026115e225087ac880b594d511c20bc91a3923e183ce0b733b523496ce37193cd07c9e4f1d5159b17455e6e088ce767ad0de3982c2468754d2706072e6f980021357ba18ad4640acd5bec24d4f2c96806b3c876d516f778d389510a73095c24b7aa6b4398c411795b58af77ae00fa9fdf99482993c957c7f5ff42fc2878136ded15273494bf66f8881b2d2c0daee1554bb8074bdbd9a76387c33a784403fd555059650c7e02cb6f8ad9ab900ab846486c7dd59026465089eaa38afd80f82ae3f20cbcd27771c3ad6c99682cde1b7fa867470631c3f58dfcef8094dca62880fe5bf9206e27108368c1b71dd03d9cb5fb8fec9debb92e8ab3dfd03839bd69bcc7de9e3cf6c18b0b90a861d9c014413e0f9d354afd0a1c035aa71c957c7713992903af8ccbd0afdd93381d24f73bd5fa72595d2d8727508471798312d0fe84f5453c9156a113ef397e3a4177ac8368cf2b0a967835d33f2f10fe35c47bf19c138b8ae069e35de0f006297a03b16bcd2690f984d62e89bf138094fa15421341e483cfe9b221f1bdc3ff6346c7435d1b8780fabfa596168e18410ba9ca12b3dd63b589309d6ba1e354bc9379f566162d366e6d56032c5ccb732fa2b14aaf3bdb061b67ec45c50356a8574abcabea3b22eee14c47a5cf0f7bb3d02093421abe2d36149d867e20023b34f90a09f9a7b4dda1740b0885fae5055609496591ec85c9dbd43c1e9f83735c817b013134a68585516c99015a6fc2b6f2bcf45187e9f027ffaacb062948c2a75b16df56a2246407ef6ebc0fe4b06e3ff21abb14746cd4c571ab3e45399b3daf92ee82716dc2178f52fdff030607dc32d799107f8589b4a38b971915cba96e294aad4fcdea3e14133fa8e921b01c268816e372f9f5fbf1c7f70dd965ca22ad71da80518a318c67c87631c8a29a80621d803158fc8a3bddbb90580057f6f839034129a21b012e36aadf0a6932d092c83237e4479463534e0a4d691bc3938e5a0221f2cac8f71e85f9b7e53b7208a9e4eb3a48b8e31654fac63bd8c5b3efb449b453bc3e2d19b6fdb6da43f077d27358cf7eda0b9f227b400591f44fe5b1295703097968b9a446ad2b143d65498fee214b93844e92a969925fc23aeb4cff7b39fe77b834303c747f6086ead7653c64812fde9521198204ec72b3c15f8f6c8369561f2e6f2a5a7557a61d2a993c0e535e2f637b9ba694d7085ff2702c89c0d259e1954cc79118be391015ac37b2da387a631c78be3f8a16264a04129cc786d07f1beb5ad12747cdecf58a7cf79f5392d7c7e2df8ffcca9429ddc18ec90d725f6fa097a5e3fed115d570257ba45111977abce696c78ccc4ef7c5c3eec5d18e40bdb3fdac41fe773e95e0c67249096d7c1085b8d785b1b05e9834dfe512be4599f7bb7973a162d131296852c319792b4919cbe0817bbf3376975eb2056d332e47c7c0024db93ba6b8c77080cfe74cf783e71a09737721eb37a0fc40e470c2b0eb37f25ad22eec9498d322c3a0d69eab462862b4ac59d5d30900cca0c9feb179d93723d0d9f1ac08718aee3a7391806e80ad76874803eb303b200eb6b6607cbb4d9c488c97c80780d0ec06bb1b38769b70e390217df809ba97720800d71e51419f59fb7547945d233c90e3dd795bf87da4b1cb843510ea19c2928475af1e92514d2afca002a062ab23a9be2968d9f4db0187a80efdbadabcef8f4d719c2157601893ab4ea21d9c97fb9f1845dc234a50a8f78a0042213cefdf6bb5ae70f7e9918e0d907ed2cee9b4f7f1323b29834f75b3a23a983097044c28dd125647c2480db625d40eb6baf6f31ff395d0952f4bdf270d63b8a8aa3e7b304c3d19db78a71ebf82c56cbebac88fb9448ce7b8b2fbe694be1621105e854077d31160f46cea29e82556d5989b37843e78a5f44ddd0f443533483803f98cd9fac4f284c0fb2f6dfda59c2553896e545d64348373c2ad7798265062263699acded7432124b642931ed1523b1a806d21bb26d0c98595ec061f5169ea997b0547a8aaee695a3f2716b4e956e53385871072aad44e07fc5a85d3f1367bd239bdabadb7e19b73d89471bea62a64167ee40186d0df9c4961776f6a653927d882c4f18e328b78840f7425e93a747abf950097c9045507c81d38d5729a5a012e6aaf32d58663d2985165880be97e0dad422a89ed1edb7e66d085d4016a6645e4c327c910596129bb2e3b6a0118b655192a0650b4ecde75061cbae362bb8e1097676bdf10fd8357a3f77b86056b2f9f5c4f0c1884a70dd523182aec96e0e4a95b32cb4d0e4d4a4ddefce0c6f71e1f9a96380609d1e4dbff6b279734acc8e15adea02ec9e3ae3ade801fda5539d05f3b01f496dc1946fee88093bc1b397ce2d732018d61addd5e9db7930a8108d8ee2c8f33aec4704af3365a41c3a283d7a63819ea755069bfc1c9c5adc86b86a36eceb70616a2ca287778f60dcfc71f9dd280b9db89177427f64a45529d91d0c1a5c59214e98a8e870f694ee774b00ecb6db817acfeeef9e790bdb92ac918d8e9fe1ea59a18a11f3b8145bc813aa4a8936494c2a71e84b7fdab8fc80fbef4e0e306fe01dfe5385bf25930499e1dd7db7a07af7e1dc507a4f2622da832a3d8d215efdda0366a4f45dd65a6923210048adf8a50f061e78c5ecd563d986fd2f9c56c10620b3b10515de73a033a6775d70ea885c7853608b778042eed74db5aa2758162b6c44c18305514ad15104ea62939e0755124e5c2b8f8f5114eb70e7d93822005800c0a15cb24eb5ac46e65700941d63993595043a2ac542dc174e83338afd2b95ddff370a3b3a020c2727a939684ab95a113aeccff28d634742f84a6a77f9c66f85615e3e392e0a252074043ac155db29921a133c88c2ddaed89e5b477e7ef94a3cb23ffb681a7c81ef6fcaa5b62ff9cc9feeb629b640858aa2f6d705fefb5f38d5938a6edb5a03c196d0763368247c368aa05d6504754ecc78482a2a97c69d581abf591f522dcee72ac600169f2837ae08d6f20d6058d57c3eefd4277a477af352da7cb1f3981909fcea786a5cad57ba4b3c9675d88345d44c8c700d2347d9c2c07a93337d7561b6adcc6ecddb4d2629bd048e5dbb2de49fa51d0bf8e5d84d9268632ff66689649199f31a0ce31b72d17e25f66d8ea6c668832fd1600a3184a22d06e3471688518a4e2490159f4f7c35d6225cc89182e878257e9ce7884e2f4ea08aa2f35c8bd4df61981e6ad5d5069c1553a8d453d998079495c679e807f813b483b1f86ece2ee44971b154864634e49b2bf333ef941aa17452e928b6176bf6d03be885141bec772ca0dcdb66fa301eae334db919a77634dabe6b8c2fa7a21bbcc1fc1159b63e78437483d38f37cf54d6ff0b7a88fb88c8d9ac272f0c2af3c0d8a0177a8e00a202717eb0a24d1ae042ef5418ce356c5091ac3f90e7ef3364b5e85ed284db7c18a40d346cd25d152e9391833359a45a74460c80711f41730aca9f8eda91b2bf50098d1429347b357c490074b1e6ac070ab65c178b02c3732616cf721a1b68d18a1883ec05bcca9159ac9afaec9d4bed52e44aa375556006e90b5d7080b52055c50c6c9d29cda4335d38bd4754c2eb4fcc1b6d8a520c6a5e604c77c5eb809867a35328735bcf61258bab79413d1db3711e0b5c5d2639a4f9ba945258dca872f243abf6536994d95d1011f1b3f16e206330624be03252d500e13fa9eeb3bfb486f8f66ee6e04cf2e463acd7ddfebc33855358a4c5ba0568452f8200239545e5507272c3d0542183b355fe00d1cb6b0c18271e46dd8c47f89aab14b5609360dfa86393366dc8a2e824a4af199d8f2029cc6447ee315b284b3d0bed0c22054acb186bfe2b80f89099ad23e0c6593ab0e33a73cdf332a4167ec313fcc2c0df75e856ffa199350e0edfed45c39d4d00340e9bd69c72cc97cd1e7c07bb064a8b94d460eec74b642a597ec252f9514ffb189d374e03bf84f2168548a5d66458f0a7d0139dca051bfde34423921f93b027d23045e3aa316b524edf4ddf2fd6604aff3a795d6c02ffb0930fb9e0334a667c598fee815f2cf6d2a32cbb3ecee46273d3125b629e2bfe897ca06d989d29095fc262f7492e7ed3a0fdbbeef22e907e3a2f45d4be780e6d26c8788a9cc77372a256c7fd9d559d17660f069490e352b7a9d52d125681ccb196165cb0fc6c5f2235c65629e899234efe141f5e84da4e51e411cd617c7db132fc3e971e9d9d51b5a4dbdf1e059bb2c8d09992e3d2312f2997695ae926342416bd1faac944941b644bb6af6f4785a3c0e81bb422af473039c787bec0460f41b1a418a83ffbdb9220ffb9ef6641adf88d9a93dc573cc7938f8565bdf95248b6628bb0f7547c2315c787604a3b4f93d858c1325f02fd8be32b0743807d7da7945315cd3006c489581112b4d3dd3d19da332065b4525eb89b36c0a83c569f2010f463508dc9d2312ae012a11d2a5e313e03bfceefb2efa1de0b7a25ec6649f3775afcab6e0638bf061941afd5f727670362e2429e327a09a8f109e38dc7957163c139477ff259cfbfd7db450463e511b55bee16ca5669b6c44b8afae477a57a5eddd7ffdbdadd77913f045ad946343001f7449eb94894d4eb3ef5fc5a5dc1d2c3e8c6d700cd39fb58a4d303416ba9c8bce3fa6256c2b3cd8f92f886efe54ec761274b0977bdbbd15e28c6af531b2b1b6cb6cf93fac1d92a1e6d0db5fad644b2b5af994d41d09ddc5071dfcadfaa85b24872f722383f09df0f4765b391f05862c30afd3ec9c750fef8f6f85d6078e784deca3f97063e350fbdd95dffb9c352c10f3c11fa54e9d46804921b501f2ac69bd3c72a943b8d4c1b7e14e93cf9f418fa2472b9b2b52eddc867318d38a8c0d935e66784fc35e6aa93c29f4771a670a477b379d6252003f0c1715d638943667ded626c6ef86cf77e7b1e484dfe6ca7bafa1ddc5ff99386a77c439a6d255dd1439f48df23fc7219afdd00688f199849967415389f30b55ffa0aa1451a2bb89d01429b1512b61521d91f5bfc52afa673fd06ece1333e5cec870054c6d3e54933ee418a2d94fa87881eebd1a82d98546c493fb2432a710deebb259ef79508fd279a234fa958009d361803b5c05a319772c1a5b2533ac719d5e982dda74154c6ce34c678d61447dd5125cb30971fde63b7e169777b093fe7df1345185b8deb7107263d2153e54caa307b5eeb51ab5ba8017f753f80120ab125900b7888a927cc79d6c9aea092198a1f2681bf8e76a93ab9977e5bfca0b237f7c57dc4fea2b3fa3ce6fc313844d5102a0713c2e710f88791d10734703835413ccf9c1c2dd346ef6e57b1d4d872dd682bc742aed026cfe21e6812c5e20a6cadd8a8b74e5af5260e3122041ca244effb615352440f09d313ab84d8ee07a09d83ec51525b053b8c261a4f39bcdcfedef946420ef190a9108134e3bb663e83691c62582d1a163b15713f40e8d641b7d38285ec287997a8c3c8b20d7c746892997e7f8237dcf041a0582d68d91daa325c996994d6204b5a5cf8fe0f060dc2cd3b148772df9714ae432a1361281b59d40b4e1d5183b98a549d3c48a181e9e50983abfdd363d34959779aca341da4c2cdbc00b4d1d7796ceb67e10f4272f9cabd0563cf1bc4fc4cfcaa0bda1451f4e123acd8f0d7a142b8a8195020bb8fb9a6b4902374c9ebe6858acedb37e4942c086530151c6f02a113b111e52cfabd790c5c3e95c3aa1a79cdd7ec14646002258f951d16e0c67fc16d02168eb2da1c7753f731594f6ec50f47117885d311e16305912d0a6e56895e3a04263488583559725816397d68c51cca15ff60696dd8b3401aa512e4da1fd9f5456450d93fc74e2f189d2b74ef1498563d498a9ee79b2d7c5dedd2d7c65f86535168123f1fa77d5071e9c8cbf6f2c4e5108b24708b437debfaa7248fa2a55960d8e0ccd1531130c0c431f9caebe15bfb92069f0c853145758bc96d8dd09d0786e9cf769ff9872974af09a47627bb5c6ba5748b8489e6810caf63bcd2e4182c7097452ea51e95d941393b883d8a546acc8790bd328e4681bc5ef715012b3e2079a1e6426b1256db1b18ce627b7201828b968bea82df559312173e8a1406756d3aff63097900e4d97a2af82de2335a5d4a89b2b0022a69d0b94ff41cf490751719c2c512986ac136505c6d4ff68103e7ad79a9a98f251cf0031463634595f05659c4217246bc9a4b2c70dd9e1eb4140f7e583deccc252f0780fae84ec7ae3a5d05691065f3b7526cbf5b4da66403cdfc6b688b419748ba40ad6d4b6a1e12935d0c0c4993fb0828511b761ded414d97c68906f72a1bbe17e531004b35e4e6ae62d765a59390a080ac1ebabdc3f48d49129071005076abc5ddd25c11e5387060e12a32842ca58e3fb7b15a0cc10bd4e2614a2db3e3afb8bd7a2804391b0bdfda190acd57b2dd630575a30407e73604ada03254f760fdd3eb704f2f4950bde764a36e05d5f3e99d4906a66ff44b56e317e23e88474bc1cca8842adf27eea093c02f7948fcd45f5f56ad6134772de334e3b55aba2b39454a935c83e91076ce43b4720528fd5ab5c7ed91d66f49f1067534c47e268ed9ec457b1e2bfd6c62fef08db30c354abc780a0f619fdd6ca73c6d345378ca6f9dd79d6b5ad26fc71eaef5713b8792bee47b64c07ba58323dbcc8c5eea548c3fc66492b904cfaf3ee4f3a82ba9ec0323fed5ab98fac8a4149931007a97d8037e69e2ddefcbfe3dc363dc509807b0ede279116e4776697b0d36ccdd9696d29123f39457e14eb8b8e084c250cf9d4f67650b3560b403a2e1fae935c5e427adf7448d24c1b4899f7156b3ae2d33073d495060751314571e4a2c1764c1f7809cf136a3eedca6d971a2d00d01f47c922c9ac13bb2e9e1599eb4309815b872de52fb8f0e8a125dd31abcb262b3e76ab8b197de375bf5cd5764f7d5c062b679afddfc21cdc4bc89ba95795ed9fe81248fd5da1fa3f38bbb25224c3090f2674d4e802a1804cbfd599725f64d59205f367527b03bdd60fcd6a8db2f7400c8bc42763695cafc1ba71fe4c3ac963f91c918c4ed9638421ffebddb198f34dbf9e55ff51ea0c3b36c045848b6786856a168ae016d6d506c3892eb4741104a3ddcd865d0bc55f03c939fde518b811c1e8a222b8a8083f0d0138f611540769b33bea9ce4e39a16d4d92ccc5a0e661439d041bea16f7ede797cd8675cc963d89d88bf3f6f458c8653ab7fe722ed14ef7e929368065dc2c19e73b5e70d3f14faa6e4f2fa38d08b1b41e47e0524cd6535352a984e5a23264de488a6a29a3c93eb83dc7fbe964808d1038ae1e69512232b82708a43dd7678b7bf474d06657a60bb74932c5f3f53a4b9884e03c9be7c274c52be443deb750d8df9e19747c2cfb6ef2e26fe162442d17a714b6ef4bf9f0cc76a837ed5dc9ac02e44dfdadc0e2dfb0098900dfdd873c8cd9284162f721b5dff4bbdbdca77d9614d22b96f00d313d4da4fa01c968d078d00c3cbda4952217f0ae4778a7eefc9d1721d9dcb32f73e955f0bbef14595e75574f8dff7927d1bcc3311c24d777503eb784ccf6eb5086dafe2be97d0d17f6cfe20b8e11b5fbe865279f4bf48e0590839102a67e2118e7e20ac98f55ce7c11ae20bd476b18aa8518f0d14c53b05bc65673dbb6037906b5a747bcb43d497ed3cd6d57937cbefc55204d84da0a8dbcae845d7053c1fc2574ac3fe289bd1d57a5cca2f913ed1f0d2a7f1f299831675950b3908d7a4c3f95fc13e5a8c52bff91fdbf65e6af7b3f20a10a02c9d3161906bfbefd1d9dcf7ce7cbe49a81463b03fba2e67bcbc82f0de84939a870b5be808ceda4386fde13b9a363dce742f299b48c6811b37f54c24a19f09eebbda556760ef20364e2c8b4efe59667d40734cd69868baf3d1d4af46ac7e5005b14498583fc4381ea45115b95cbc72ecff49d84716062a141e5fb9e074964701099aa10beea3c138d9b0dad35b10720c9a6bcfed8e6c677ac91872c4f348df7b95e43affdb7813f58f8b2e4166ca674f6f28c446328b15070f963cd62592cf7ddc5939a51881e88f3f1897c02e1570e9cc833fa815bb9857425928748dc4c70e989d2c70dc9e4ec4b4c8df8924d6de00781e01c0af97fc68470152e8ad55293038d4a2ee0139429e8ee0bd1400c28a4c2bf161545c678c2318c8aa1c91ba9f425f85ecc284ab94c4c15b014f3d81b69312d763d7dd13e09c4451c177455427cf634e8a79094800e213258cc89ae449bf4ce83787d5b25f146ac865635a6c556ccf64ae9b55e68b2fa19c89499a294db06fa445a64c9e7f6cc14f437f6641f300e1e87bded204a0845a6ea09c054fd8db03edfccb301d372993bec8ea80233ef50d08eefa0e796fbb82b818146579e8c005d0fc6ed09b73cabeaffa62c8a05efc78ef908d3cb095aa318230768a67cda8662259905f748aaf32e0082addc1e8ff7d8e7658b17f0c6fd281188a06f720c78aea08df7747eb8e75ddc0cf6556775f2c2911656885db43a4335374b2b87abaca9ac7c193e494f3220438fb8951b426c6baddce7f1823af3c40706e279551a3f21bf37493c20e2065ce46477536601442280873b8c9645e01335e2b4681bd82c3a730d13c08e92c8172af1cdd942a4dcc42735cf9732ba6af80cc66b1420b577273e25eb62405374ad1093673956d5d409ace86ccdc743bd5dd57b34f445478272ab8110cf828f8abb4ce2272961ebdb31fa47ee0e47e6757e57a98cc7a8c0b8037e466af8b9e32225e1cb016d88561eb9787778648daa8ec0e7d761659b8fe0be2bfa7f45ae2ee3f650e9721398f08e2ddd1ac34f0e46ea1f5d973e1d43ce5cf35e8c1912ba2a829e6c2315803c6d147f5914406d10d5f54eedaec247b7b37c4be1d7d24768e2e1800674104c84d69fcec9d77385d845d39ee5c7b9a942ced561371d6ac5ec026dca3e400724c6a819991ed74ad84356559c1fcb1435a2926e62e86ef0e3db6df55b20bd973866897e8efa8516b4538150e912313e0399899499cf84f91b52854f86a500cdda8fa0867a7945a1dcc0bbc89baada17a2aadcf47702a2e62613a0e512a79990840594fc90cc6468f2449934cf525a6db1070be1d1408141107c4e47b78d565515ebbcd751cc91e367aaad0b0c9cee813343b3efcdf8a7b1263bf63aa67d8789ad8f700053da226a6e8892b6157f4adf5c1e3ee878504ee3d80120fa14230b4c8926106c9d155bc19dc3978dd6b40379763be92594a7dc84fa03d953c8bb5fc44dc3060429ddfe7ef01d904f8e80a6ad6e1f1987d12af0667b4ad75e848cb397bdc0b96a7f3c34c28c983755a7be07fcfd9c98cf43a675d8965b59426a70aea5e0f80d063bda448ec7205f8ffa0b9536781fb633344597c1fad6eb50ce4534de3d17ed69449844d03b36ac9b6ff9bf3c57b0e32a24cac8672fd06d8c38e9e4d82fe2ee48ef09ff15ee01732a30ba09bd2bd5b9b1e5bcdb035fa37090a162361b899a5aa57860cc28cb5444fbefd9424c082547e77795079fbc0ee45b1a6b799878e5768289d7ea045a1ff3a521abd3d805003aef39eea21bcc163b41f5a7af6f47a5672f297e857e3a61a667e475c7e4a0cf944c96acee45427259acdb422d6888caab6d68cd81ee4cea341b7f31279191f180ca7aef5e104d0d524c9749419d06c5bb8acf7bff16a27cba7444c3f802caaefac2dc921e7efd5a25134b08d1fdd3dfa457d3c8f0abb5458cec1c3deb787cb98eb70d09c049ea7b1fdc4438a43c5a6beb309fa4e3ec1b111ef9de8a96670f247f0788c05587db00870439136f320f088b2422ca1b48a00b73c9c8b6435f24304bdc141b0955c91b47b0e8e0bbf8b305bf5cf1e5440c9aa712d55369c305d0f3748be4b66a0eee82baf9621ee0328891bb78a2f719b5392dc9db4f14eeec452055951878eee4dac33e4e2d3ebec1d72b1da036171eca37105d27a5c342e7d4fa52e558d0893740fc6e90ccc6e951017d0cffabc814558cc09e4b811a3a8a52e223015bd447fc4fdbdefc01e8305b2c3ff9ee8860142b26f31c2585f4c859ab53f5ed11663fb802249d2c06c079b3160b87f773ea4811883a878944c48207f0a700540e662605081626162d1e233c3fd9e230672e18394283b257df02b59bb880d3a093dadd7c29ed74610219a162273387226619c5155adb49d751824a57aa54afd493d8442c4389a3bc777de270b09a3c81f6f2d762c4ac483b53e4e822ae48985103421732c8f60d39917ef74be3629f16c6537041074893bc8d0c9b700db0f09e3838b90303cd6432b97e87b816ebfee3a86f2c59abc29fc0ec63b03714741963c5f72d5ee9cdf3237605be41dfabe68ed6ed743894212fc3a86be71b932dff8055393d9e6c9b1c50b7ec38b5fe76ffb9ccad3ff40b2c68cd51f78a75726f36721a1773c7a1fc1e009bcbbe2980434f290d4721e43d65fd4b8ce50c68f705dbce46a92d77556c8c6251406991eed64f8c9aaa3babeb71bb596d28379e778373c95ab0995812c6a0b6a6dc37fc925371e7970074cfe4ea15d709504e9aa247c9bf302b4a7af9c2f1c75aa745a774934278640f1daf5c3d9ee1e22f2fc684ba8aead4f1528f3a7e478f8079f1088451e780cf08138ba3e819ecdea9266743b4570e9196409a6ad951239cb2d5362a64d22d9a089140748d1bf7cdf9259644e8f66becde1f00254af2e9040eb51eef3dc7af0231996b9b9e6257ed47dbd958daa2ab9c50fb9aa00039aec09ab8e191e3364072ced0e543fc565fa38b0e4a56617cf5c258b511fe1b1ed4fbdff3454f9bef008501d7d7d661a986e1d3883f76f59279a83993b4b8340264dd3959e15cbf54d94ddb8d17d3f225d288a60b5323d027f5d65b01afafd54d392e58dd554e6e6f67b7b3b5ec58d4f0fcc25e162c2439222018881af5ca9e1b4593d70f70f58f605459c035e64889943d12bec3056cfe138d6fb551b8567beb0f5b19354c6a3901dacc0344c932a91f003b39482600604d0a10ec278ee7cf2a94cd71109ff8fe9c7208aaf992a14a0d7034447bc98fed5ac1b06fcadf1f830e9567ca295c302185e429d096228fa1216c2bf4e1c7ae1ab6071aa5fdc50ae4974a379f8af1fee207f6954aff12ea7d1150a969fffc320ce64c2a0e8f7aebb90e8d2cf791ba44cc3df2042994a048ce66ff54b6357f8bab87fa495ade014a47e2a1b166ddce82d17c4a5833f5814e037b57352fe68de8f4e84a037a6cf6ef70a83c638f68003d351c46ce3b42eea51147cc92c8aaf03c5728fb10146070c8b8391b2877c8c13db40969bcb1384ba4775830de7fdda343aba44c9d5b57f2242e2cecf14544bb87f4e758b08a78edaaf1837abdc7e76050e272f4d67b6b54866e33da462c47598e1206b4d5b78954361d461e3ce93b44d322057947575dafa8f5e49ca62c612dc64262b23dc2ecc140cc565484b343da61017536bd6df61181fa4c06ec413fcb21da16b022d67860fba3ae44262ee9ef13e8d9494503a546843e157d392613ec94c03a7177cef691adf84598dad9c31d0436c7742460bd70f95cc10ce23e051d8ebaef83f56910ac0f9ffd2b8a666ce2b6be1a59e2f9f181c3d1d7648565ad0174a6a588d495345aec30690a74d05beacaa2fb746e5b128fdad8ea2c0208edfc3b81bd0c8575cc436f2a810121f86a34296298cc9ba065008ec72a2c66f98ff9f479e67ea38e34fcf8649cf045b06f7a26445d02c69f927f46515dd81548e4e6e91c16aa26dd3f392af86a45c9b20d9c1037d3268c9510a5d5d70d92a839d9b7a98c65dd321128dbf370d9f4fba06a55b3d6c5de95ee47043dff6df8f214ed510b3eb6c13df8c04368839ebe40882ac70eb5e7210b2c9838b4c75b191e5bf770288d9632d0f7c59ff37a84076d553f6c13c41cfb27a36647d724ac9a683fca0231b03429f4e839fc22c182e3642b0ac5709a433989a3eb944337b67576db95acee94a511c8f9940504b4086a76bcd26fd3647edfde70ca371be62edc3df227a60177f3c0c0ae32518b87a2220dfc01dc12ddc9013c85980795901ee1b428a2fb9a97e030703e7e5b2a7672a4e6125aa775cf2e77e992ae132b82bb124d41101c0d519d35e5acbb958bfe911af04431d36cd3f29d7ee23995ae51ccfb8acaf74dc5bffb692ef7fc668051e891790b3a5d9c9b7442a99f82210bb2cf84508221f7bf448d4dbd3033ae46131ac2f35bdf47f9021097882bf6d59ebacf24ce7ae268ecc785ba24c2ed8f1ae35dbf196ddc60b18212d36583abc9c982e57e3fcc8890b12faa807a6a5d55b5958c42e203f47a4e4e3d1cc055775267eb29934edf3a26a90761b5cd5ed4a10911c5508aa12c336ece3e918ff75a4a8a8857cfcdb8174295d93ffa7ebb81ca1097b7978720707f08a720ae85a3f6fb4becc1f0d4b04404994e6902458e3f1c44a09cac9625b0ec487fd9283bd10f643d9ff7ecc488acece243878c1fac5b2d4908a8c1ba63d60eb2840c121134eeb31ecd853b3ee059842ad5f5fa106c8184f3d8cb4e18f7d955e58d23d6e1a1fadbfbe7604d02f73a93268512b9ab45a0857d7efe363d2bf055ed8c7e80bbf63d41174b67845f799c2b0282c2db6c5c8ca329c84c53d05b488ec8751320d44e9faaea30571c69685a5cf665a23b6d583c0ca9f127ede7b048d51b792177c3e2af203022f3f1e850bfb2b5c18348a7dd9cf2e7d795a0a6cfa83988c1cf0d55f23c3e098e38faa6cfb805e30f122da453aa70f97c453596410c60f78c19489100797f98f024adc89d26f8c3505e380697ce544e8567cb512eda1cab8b20c7cdad9176685e166b9590c27d8342b500c68c45d466490ebe05a803c20f119da87a341ef2376170d5c986a38ecca3e493f68fdf7b5e78e47ecbc3c462ccba033f6b711c991368c25718fcedb76d42d9e906a0b22d1b8ec9ec10ba74e4dad98f40aa55da6f37ace18bab47daea5ea9644aa4b216101989ede9a73b6aca67eb4d178e31c5df26ff2608e98eb61b0ef0a0eec96e455506053d288d0be879f7b866ce851a9d71ae37a22552463a74fab43abe7284971eb37f747ee54df89621a3434777fa2065bfb0e0d0d2929374077e11fe4a14eaba4503ca103802f2a5fff119e35c6ff7e8881fe5ac83df24ac3fb81ea5ca809c872384bd85364244ac8011a25a8355b6ddbb8d6e42ceec5441ffc410d7dfba21aefb9fcbe3e3ee81615406dab474dbfde6fc789e4f138a9841b33fcd2ac553641d84c3f0a785a9ebc8244544d0087815ec5aeea31665eaaa0853fd7a5fe1ebb0791168a8d874ccd7e8c396f71b3b1f38f40d47f78edfe274cafa0f48bbdef607b9f7a7fe448756936782e08e6b51bf6b9a919ee247b896d3cedc252e7e9e2093b2b3b21ab6bd9390bcc6bb9274e8db431ab857e8e19fafe41181c34e6b4b8cc3c8629384ff247917bd4d7d9813b131831587c802f65e82d9f0e589da905c9a8939f66d177b6d0956a1e6b61952c99b7eca2878a9512e6d15d2f95bc87f6c5d53b8f33f3f9e28a90fafeb437f7475451ace3afdb10632d3e07e1b04bf8564e59970e52eb5376abff6d0b701e03a4fd164055645f10b49fceaa0ea43fa92850cc0ffaf4d8b2c5eb6427a026aab4cedc566c9bf31586f113a690a1ef56f2223b7a45d7405498f73f0a255ce7fa5348a24bcc3794e3a51df5774f0d19595e2f03444f4a5c555088dd3603a209270806121d3c11fd07cfcd30773dc5361949eef2f0d19d10bd89c7918ea41a028aedf07d5b11f68dc076aa75c45dc58c8da1304ed7203ffa208e5868951d2e476922631080481708d778f3c1f5fc08398eb77ec4062d4149bdc7b3a191658e45a158afe63b5586d61e49f84191280ff00c9d90b35ec3d911ae7ea2f9459cad644cdf9afb9f72bce6221fa07e950e61c9d70ad7393a7de32cd2f8c73d3e69411b96c3dbe167271611865be4db681b051c39e9f4189cd25ba8f9711434a816c7132c9ca04ef1315311d8145267ca5d096b06953e6804f0e4c741b450d1f28efc60ffce0874aa36180fe1ef8bf69d51ff61f0b941175a4d4495c07299bfad5165c247a5aa2b015b6cb6a525c595adb37be125233a409286e500e2eadd3463c9c8f8fa4d0df11c6e3ce0a5df4946ba69961b9c339c4affa1569218bb5f196629b12a2a032daced5fd8ca17e1f60c76db6ec08dcf8ddd71c3c8a8c34f397ece1fee58f7e2fd4b598e74e221cabc504152a33a036169a29546924b6dc1d4631e3513e314b1df3092dfa81955202289c516dcfb75493ed7335eae8ac18171d048a8f71b01a22d67e0b7f1d1e9adc13cc70c40d9e0824fb145a1396fe1bea33615f335ee6f85b4b167982e5481b7c74fc97efe77cf6a928f0062f77bf3f6d32b19e8ac9094213464b49b23d96dfe75a25ba4c5c93eb232fd4546ccbd13d0bb6ec288004b3d55e10d1914f921c383a1ff2e2f4c9960350d84215c446c05ebeb3d2b47174af3a2e5f32647bca0b186355b48d4cb26940e364f3ed00c1a481148feb2649c84901bdc5bcba0dc30ee46ae60ed5780d42590749d7e7f767572d1883195837faffd3a56a6dbbfad5f28aa9e51241c2ce3a7f0c2031fd8f998f456b7bcf84e72420a2e58391a6de644d1012a34e192933ef65dcd7f0fe2afeba30cb47e31526e8c9024db3afee426ebb4d48c513a3e005a37db795a6cd1d691b263b4362eb52cd857c74c1bc8db6a4828be92043e1abe1c6cc65cda4039506df4eabfba4c99ada066a50bf0ac4a99c6cd2a1dd84365a0de602242c6fdcf22ae93bc2e7e0e3fb3d5b670ec9d2264f85b32f9a4f5d2bc7a7411caa7b74dbaf8f2962a336867f245307e2eb8d39604b633c5caaee3776ea54cd282403d317ca0f9da7c51faa0f82f977c13add41a9462e6eb1f5b9423ad7f9bd07a72cd8c038bdf6185e0c60b607f9302a1fa12ce946f423530dcc3ed14e997bb21d98892ba4ff219ca8b37f99e09d5a1bb449a1109b7a4eccdf7a65488c7c7a871c3ccb13327107e05d1a3b764e4c6b9e0244ace73f5e08f8a84e953fb845c85aeb395f6cb7198b1c987b78adcec335254a7e0577449bae9bff2fcec318b9fa65adeb102942fecf9235429dae73efbf51cccd4b6e6b8ebd217c2b6fad0cf6e4b9fb1c30aeb877eb73833c11082bed47fe70a016300aac0dbaa0b3f6a6144c920b04914817a437540f2f5aee59594250b79c71db9186a3d60d4f54e330f636b1bc1f93558ac52d93e07bc300a09aae47a29e20bb5abaad7c8683ebfa9feaa7b38fec8760749455774cf828975a8308f48fd2aefbaacfcbef910b866020c1a47f794f022bba5d38f05989047c9ec192d8d59e418796e5ab5322cc84825aab70d9e4760975aae55f8ae6a07db87439b6576f949c22c3c9e77e1bfe913275f0cdf9b323b244e224a4b85855a7c17a7b3a399c00597d33f0bb628ab27f0030ea486996457bf2e8ed4882313d262cbd49f4ad741ba0f1478c29c1d8aa59d75d692880baabf86c9e73a87680d094b6d5d62fabf567b9ce64f4eecfd7217e3fed4ea2d577532132135641326976f4d012243e4adef519f49e119a2e0fd494c867645a1dc1ca19a565262a16383c904be8b4e2f0459b9368a0bf430a3d596381a64411b78c0b5e2a4bde68c1633ac0473f3d16c468e24d8eb4c934915677139b844ff1e4c084603d74bc5e9716c06a0d739e11cfad776bab8be0f33a521e0c031b4a4c6e696e5f8e4ca79e42f5196ff7b87d34284dd881005aa62b30e23fb1f88d7d81f14795307a0e3a2b276236f885688c3097588a713afeaee87ce1572d559e84a98ef1508ec98fe80133b1b7992273c1079f39212de65bdf76d5c80052c3bea297a0622ade0a98b7b604228f06e2da2dd383b5f7f15c1a424bb6dc10929147eac789de0a26dcece9c2d261fe3bee21b92665ec29665b3c80286c27beacadd708c4c6b8e790c3340117afb79b619c15f5a79bdc075cae192815e3f42a397583485605a29799aa6a0ad707f87a003423aa336e7d62aaba951759655eb477b96e9d98d23e91c9bd71e65b8eb9d2e349828a0b6d24d3cc4df5a161afc107cf67106cce8d3a4914a074dd454d4a8be2cdb0dca78a54523e2917e80d8bae8fb9c4ce8299d8f113a801c32b816b133051f9fe05b887796cb6b559934bc8acd12e4aed7bbda233f2f614074729cf4e48a233334d2b0c76216bdecbc95338c8b2141a319d5d139f7bae26e768ae2d23728c0ffed72c2913b57514db56c49d6bb2098e6accbbf3cacd91ca5452964192590bebf4cc2e63802d7bd50a7654de04418fa473a770b4575c06c975d9ecbba55c5528da40e05b848537c9a25900c4862a5b3d190b5719a2c546719a0da32f06b9e91fdd7e436cacc7c857c5fe099f66c7bab95bfe6419f26b09ba155f3f311ea4737c4a3994cfdce76bbe4fcafa6e5fade10378071aa361fa42593b0a4098a40c0bd9947c261e07259249dd1386b07d4285a8b2e3e15f8eb31103718ccff81965dc35df4bb81c009b3f468d11c1f13a84793ecfa3994c1390e888f73eb732ef344c1afac235ca525056ac895de0138673cfc165ed55d7b1c26de6ec7a825da87f21178f25e09809641756d5567f3f89d9df7ab1686591e80185a7cbe4d9712fdb6471bb112dfbdff5335ab64829cb23a1349b42146bc4f9ab6dc101d493e98cf35d35151aa54b18895416a3561278eb1dda3bb3011b52354865215b6ad43f4fbe4f9ddc8d6f7824658c46b541688e2894c895f196829d94344f64c31b0d4d571911c9ac509719c626265e5101b5546fe45776b9bd281a0365e63b5d62b03990adb4d99c8fa97bfac6b04c052cb2fd47ec266dca35786bf7a7678e69d1e369908b538542323983b3c9f4303a3e6bc6393519a65e4034ba412e4099cf3292a3177e7561c4e4525f2ff1fe23791112db9d193bc5030692cb9b93264d30214828a1d8d774ffce2bf1ea17fe6ca6f5455ed59be4ed3901ddc0b2c9e9e26d247e79e18969505a8c20912e94a99bbd89a5790911c67336c397d19729bbd4f3152ba0c9b46fe320c6f2a53ee7a4f1e8b34db48a48abf556cd9d0510a50a5fd456753a1c3b4c77829b843d9a900053ef957d5f1a6fa138f0a9f7223aa17dc6482dbd2baf54d971dff32f64e3942c7664e99e17818f1d0d2c72f25a3f8ff1c36f3a981e3a04fb8e816b2f591ff97efa2ca782affe109129921b42e20154bbae41deec148ef4f82d95fd4ade008cd2df511d3e1fee570f015455ac537f4f1cf661b6e8fef64b40ff59878f66794a462d9736f4977a468219c5bd28b399e1c46d9360e90c8133944a4ba3fd82269514a163f734b6178c5e4440cd11def21aba3b11a58b405ab6f235c6212613ea8fcf629edeca2ee787243377890ac189fb0b06782fa67535238778a419c887323421bdb4f4a945517ec9d28884dab3024f1e8c0794752d7f34dc600f6cb2409dab324b9f2e1352b28c58af0dac98b483b6abe276eb4a61652ba9a577f53ee6f235526959169488e2522054a06c98a10eac8abb8b95c0526095d1804ba2a95aa3a1f933ddc7f9fa41d3eeb1b24968c5c99f016efda7debc4646ae319e60de5f3517fc806bf221a2defe5cce2d77c09b8d076031c3ff9b346c7e956f344faf95412d568ea0e362b282cfa0916114e0adbf226951061d6276b37360b3a46b4841d6ff58547c704f2d838f140a2d0e03412307f62a600be9e888d81ac0992431f7001a99b8dfeb8e2a003550dd3208ce8ebb333970f6380afa9a24c21277b71b154b42d5a5c56e2fe770043164640ae6abcaba9e618df8d7080d6f00086094de50266b140e2f2f69d03e9ee6cc1b92823cb237b4ec7737c48513b185a96daacab5647db0784f4ccc58d20193b07c4dfe83ae1f8a8fbca864e37b943c9148aa3d0a02e42dc160620135f81a0c100ce3b5eff4ea30f06d50a3b648446df56330ea045c7f46837d113323dc7efa6da8cab5d714cb20d531d0ae83d54c8d74de00d9adb83f1b18711a8e60fc18995ec3a1f76542c90a29c13ad617be3c59fb9688237bc7cadbedd8e48a5eef1822a86f78c775f7b5b1449c8bb86a3630c2c465994be38f19214ad7d3ebb18500634fb606c0f9a356692e10524398fb8c11f8df72e27e5f57c0135a43c079a5ed03f89933b7521eab9a7ca44791ed182dbc2355d800fabf63bb63d2ad5419ef4b379f0b0fb2626ed8c7da8b171f0243aa748adf17dc0961714316e2800d6b4a315dad9f5b1b53420d0ed1862665d48db4366313f5c42902b41f884e39b4987d46fa4642be6a11b09a665added578dff62439273d188172ec6ca4fd1ee635c45fce3575f4264800e8e5974e5ce2bb4641917df8aef080325c383bed1904d0409f55239f0f84dd743d98ff735ad195741d2515f123e7a208bbb8591f987e0193b1b9a8c427157ca1b97e32d9de8e8c4cff51ddd67945f9cd4af62ebed0bf10a6f0c366c536703fd2dd89039b3226ed05ecd7d5358114acff2b6e460f3b98d90b6ad271d6ce3471fcb15f75e6d74c0c88d150979a87a46d1afd90220ff9be950c7e56b05dd882c50cd0dc7ca36ad516dee7a719351907ff3f8941a7f50e4735b7a856896a737fa710af8e93c5413c7224d29cca9d4095c458bf5a54edad314774deebe225b5d4958c88381a2cf21fad91be43f4b6e86a6a235f28508797dc71ddd3c370d3ea2e8f916a4f8b3c47c0ff7c578273e4c9e398e445ea41b6068a7bdbfe9f523ee5be8e6309807da0e0855c84f196be137925b9a80857fc599ae6e24c1dd502ab90b918c3ab2876d167781034058e3b4ec496c9499615f8a5747a07b793ce94a8c6d9d62b1dda8b5c3bc7f3d1accee6cf856242abef439eec2137e2c30489435bd8da449ae9ddd80781452a2e918e49dc7bf709dea0f06299e0f14d8e1817501ac9fe6caa46abbd43cbe7739b6a59c0cb8089791e8aa1af6393e1dffe881d307b928ab421f674f391e1490d71fd8f110bb48f71deb3cf9d04fe2150bb2e550c241447b8351e996eccc62720b843e35307c2447e4d5d6681f9eb33726af80d8fff820139228c311176cbe4c3e647dd24407e270c113148431d887bbd4e6ca602ac440b18e015872d7f55068eca0e582ffa6f7bac1e90c88b227bc065799216c03f25ba630fd899d8270ab7b204d105024cc7c869ea2e30bd385eaf0318ec67edbcbee57366dd9b0cea3146b5b9aee7357f6d582c5bd53bbe65ae58cd9e6a368cceba6c163855729b9581a4a856fad6e4ff88bb2e37ee9b945eb4af5ed12f34d8a850aecbe2de3af107efe8ff8d31fc6f54da4382fab674cfe8c30c12ec3da8f5260211133b98c1a629dbcbeeedbd5a96d7cc89a3494ddfc10ecdace86f25ecef7f247dc7428d09e41ba62d5ab2a044db2ef3e61e728b688db0782d03532cec072d32e18bbfdfca92bfb58e58b43fe13cb7ecfa44aba191fc3bf116aa9760aa52db3cad47827ded600012954299a3ac3a625e29ef089e4d2d95074de68b86bca7821757b3718412938dfd8d53a399f62bbdbe195452a1850b7a9b9ea933d9ccdffbf9d6f4a9830ba7ea5ce3d9c55561e61c3236ec2e53979bea0d3b879f211763b0702a4c43a15fc60151aaf7de6366b427992e665b44d214600b37fc31c0ef073d64d2cf914cc808a22517f338f1d09b374176abd851fbcbdc2a0a4815e1394122e65439f08cb58693970417b5b93ff44e5bc2f446c8caed1eb610d5633bf09cdb38b8c1672dc93b2b817123422ea74d997b90eedefa6e09806e0a31c568a092f83a0d0ec7fd5ab9882fff4d80bccea6b2e89fedba3d056b4b499b958119eba110f6e32bfa21f3a8e7fd73d2b479d1f32e6f703362b7254695edcc004e2708c1ac93d09db5f0d21eaf5739136fd59ff41bc3cc42c84956b0dc3488dd52cf3f1b8063ec77c6326abc28edde4981627c5b77363d4432e7966b020f213c2f2a6e1f8aef548c99ace3a209ba95c72e378043d3b0937ab403d3805ef1c99afa4e87defb53aaa7cbbb95353778b4c5b1df16f7a26160c7397874aafe671a3e876c10bafa3193ddd47a91ac713c34c67a607d06ea9b7d3f4718d18e57778f19678aa1629a9d38e5204d1877ce453384cb4f4aae47a783cfed6fb6caf23b084875916926a858c68526ee216e2c7c75748fa0e48d981753f09b9be4cbe39c4a14e6b1aa8f2185ee12501ed7d60bb5dfd5935207aea8698f6bc1ef907b0df57d911f3b395370bb65f9c6d019357499fc5181de42d7af381e307732e3b8824eacc3dc7fff8ec519655b744df9edd1f2782d39de7938925dac369d7d78a38b2a48585d6f7a582e732bbdc8123ebaf537a7087824635d1fae2776207ce0b519d8a6eea3223c9b3b3e77c11c63e1e89f6eff2fe0300d75c9df43e85a9921b0b4097cf004bb6b4757440ff6bc51937141d9997ccdaf55e88e46f79dbfe533522ab368fa879540d0205c3bb0f2d336d7dc73b4c4947f6f4010c6fee344e882e68a3669d4dd0488fa6aaa4af99bd260da30f632dc1087645d0c5057773e506f9c3c8f64faec7926fbb4fe0d8b2479dbfb96ec1a259f838efcbcb8c6c9997fcfb22f79a0b436418fe538e157dcf10627cf3f7c14b0edd61e8fcd7e5056ae316a727d894ac096c14c6ae9d1833d9438f71cb792f0ec3c479660e661c30514177df8fbccf2871f777ce5f808ed044ff6b0d5d9931febf6964f0d06482ca3311b39d190c80cec14bb4fbdc3c277cbc955edd3a714382abed2f54823ff5e60752c41624ca6709b47c88c1038c206b9fc24fd6e9bd475fa553705f5d0dd726a69cc302598f1dbfb52510cb5143e03e1a92463dd70f2336d069b5687de22418e166111b201846ca27f6c3c8699dedbaef5d05667874c76d55d588dc02e39ecec663de5996c2b275c4c8f9f0383ca7f62f0163f69461862d871d2a7b23eb255c07a9a2111b52176c6dfd14a3f6b03e59c229e3d2630ffc30d02cd731717dfa32f21482d6a0da5a277e4b8671cea7a85fc6e5da46a8c7b86301efd15f7a16cc233e7aee65fa0df5eb79152b2dd0e5bdcc9da0a79fed4c13edf3169859e9e4de18b6eda1c3042d43dc7e289ff030df6ecb30f96f8e74d3fa0ec97690ee6ad89f2c1fea615863a3537bb3e31b27c36b2ba9ca8450f7e73990740175dcfc7303e2d3f82d9083571e129e2126c45209d10cf759b3fe04a2825f145eb6e3d46f33a8d7061dda3c2874351be21cdc580f59db82c523d43beccff7ff0391e9fa2dd2951fbed1f86c1a9f5d58d88b55608953687a744ec41b0aa4ff947199191e3251e7d015085c6fb1ddc3d63bd3eab67a5874fd125049ab35eb4488b861f82abbbbc5676273f6b6de25ff5cd07408e54e720abb6f56b4038299b7be0f0ec365fe8ecea825361f20edd91cd1236ce5e989ebb38b28adfda7d51fe429539d9449c5d2586fa91edcb6f6bc678f490ea8c6e819416a963674256041276ef4b8c98ff2bf73ddfe8b2dc205ba8100c50f41d33c5d76b57d59c07b858848f8daee1f23b5c6d68f60b4afcee94d990b110d62b61a227e0ace424ec2064412c57b08366802435216d30ac79ed04f7597411d764e1e9362239600467c8881f8ffd1218db2ef447c68c005e9350893cae23346e89a8854a62a80a7023a267731e0c55fa8ce2cffd7c7fa1ecfe17f21437670873f0a5fe35d64fe8837e30204ee388fd218ac6b703aa24fd8664895b9982e7608f0302621036ca01dd0c27c8130d258b7d373c12af7af5c1d1e17a6d627d0635e2bfac1f703fa42d6912dd442b6dfde8bcccd1548c5bf9cab0856d4915fe27d15a363cbc753319b3e00b90f0c3faea8a40d48865d481cae1a4d57731c53b8a97710d1b704e57dfd7452776b5104d6393a4af6c6ea964aa0c894b00329a52aed389ff060e217404ab76c7a088e326e9a42910791d993da6daeed147582cc350627658dfca8857da9e5503af6e47e50c410f7fd08ae78ccb5f154ac43faaf0f12f517ac3c0da52f3c34d2450749211fdd6cdd8423f93946cd37a0a4b0031a4eecf135c814774b82eb7ff2a96446cd5a6e300cb2315d8dd740255580bc7b28928ae2505547c3964d594b4461847717e66c5bb5a71ed33b2cd07d1f358a468b03e9d6216f2923c33c682cc61e56f6dfe4725f65d4a7395a1d2fcd68a4658130d56c3f23eecc93f85b2a3be94462ba56cd717b701b5676afed593324310283ef97127abc35b1c65c06a8568ae510f46828157a845b52fb85fb5ce6d3556064eaf5c619400e10ae8cd3a5c5bb24b3de41e843ac57bb39e46217e435fed269866cf1f2ea3e1f1152f99569d8d55db9cdcc16e46ebcd32372ae221a169edd9e015dd0ceba46878c3db9656ca57840b5b8f1333832cb6d75ba8053b66ae29ba9e46c25539e02cc149c137c47febdc1d57a95dc5efe585be2a8531e1fb018880a2304a354cf0d5b939d377b61884302d671e0d4dbac6de21fd47d28da643699eabdda5a7a3efa17fc22e537e796808a09e0936e51d273851c5e89710ffd71b589360e7b2351de23d685a4b63d3751c6b00640ded07485ff7c4a5f293e56863afd00b893f48c57e5c48b9e56f7353dc2347656de8e656f3b055769bb120bafa1d9fcbe5807d5d6efe44f82a4eee9febe2ac6d54f0445be8f2bdac0d971a560d205247bdedd4713fd0b1ec27343b609ff6dc8a64b30f8605414cde083a6e12bb8e9f94b4c8a23694265cf56ee08fb9846579056306b0b465b432160d9d36f09bcaea16d338c051a16c087092a60f87d640dee7bb04535cf8d1dcace52352a833b6da9b06f275b3b2e2be3eae8b9fac0ac70c1afbc0067c03b1b9da1bf80b488280c4e59d6de325a2ac81a9df7271204556e88154858ca69c71b4427d7ddd9e773fb59bccb2e48f64304622c5591885e32e2f921ca402af2f03d53d9fd639e2775a24062bafb8c67ec44b9207a537d6f205d9d54ed8c705fc3ac3a6577995d8dbc49816361fea2f89ae29e1cc7c1f1ab467c55009363a5d963a264142d31b116f08cbf7cd063d63b3712e574239e84221eae3010dab33c065261a9e3efec429f51f0ecbb6b9a2723c6dea551adfde69622f406e410f66de252c368cee84bde9a02109471674767cfccaffa20aac545857b89bdf2fc5f8f465d9dcb63a37520299b90ba3fc8284b2dcbd912a4ab323e112877fec86ea096409c2d015cc0ed29c7e748799d6fc9d0e5810edaf188a7ae65a91eff29718f5b3c976473393231878ded97753fa09bb830403445c3404c10729032a6ad9b48187b0cbf41b44b0af3cbe56c3bd1fbded98047b977c6400a8db2f511c5366d15aba9d6ec801d426c4da17f8de20e17ba70192802709f144b64a4c1b789a7b9d72b5c5cd5737ff544f3955f53ed240f712f57b0d05c2286ce41619df91f2fc6533d52f4e2e2fc598373ad90a5e7e21b484bca22b9fc5dbe019dd607a7386ed25a09736d27d97e724501b78a465d9cc23442f7c636587deea9ce5a07dcceafaa6c62a0b90e97f6e556d88fbd7c07b6c4c2f98937ad9f58acbc7e88a4eaadcf03125de313865b42514ff469d2f244f9201fbcf0482aa703cea9485861a22b142cfe5ebff6b621d1a4de33f9044d437b3ac112d0035b3e8d710d4872f9956d4851711092184c602217362d078293595a5a552484ea7f5243eb81a44d39e8359f4931a2e18a76284511488b7eea4eccb261b347cc743eeb0db64c13ff47ef968ecae6813b52fe877847e49a9fe3b214b558b0972d91ad8691b138013c93e324c7134baefa2639321db732c8da90ca06537cc70070681bcf9f0b37bf7be976af3a8628b20d97906ea38ef5fb26478f3e633a4275462fd67d04db9d6afefc968135b8adc862af10e49c3f878cf989eb48396f2cb9e17889e53aeb216a1b13e5b65783ffc8cba364f9a668a457820a7a1231168489de41829118df9f0ab0afbf825921937fc7f9c0676518467d0cddc428b36cfef739a8596b6ee6d501034e24dac5f048f03c59f717576b1a9a5e597281afee488849eb0c973d442a6ff1ec8dcd33820dc12ac7f7cff0edc40c9a0f80b2a46c1cc446b07af36c9dad7b6ea5301019c32f977a723c2d712f26a73aa715c1a4ccf19020d51b3df5ab45bf070b2bbb9ada6ddfdfe5111afc2391eb9a422043b37565daea6ccd5279966573fba185028b11dc7274d36f2e12296ba9fa3026d988d917590ec9f6f729aadd06c86166460928fd4040338e6e678dbee26b0da1022bb598ef8a9950a2ef6864340c8b883ea5ffbb402e4205cabd03344b546101ec4915c3ae73a2ce1b84b5e2f35257c38edc9a74b9888939243789301b0d63ffbd3c3e54aec11f4e1f6b9496d7f780f1c46a6f36b1bd9d1e2de843d59ab46a7b39e6937a860333e50e86656616850e6900872b60e9799d32de74b58128c6e6096ff7f72ac84bb1a5c99fce4587f709b0a23c930a301daac658fe89120289a6b92a4660fc3fa55a74bb42616a84f4f23105fee8c5dc583446ddabad4db6f0b8a190d61e64e8cc4ad0fd91647584f96ce618b48efa426d25ac850e40bcaed76e8935f19c818255c925d9e029e7981a41ced62df1603b7d5dfd530cdf72c778399aee81aa6c8778892a8c9a2a669d70d5e78aee38d37adef998ee2a212c63b4fe00e77544b2bcc455394dcb4fea0b417273032266a50ad5a1c02ddcf8482ffea4a34cd9aa4460ea5bfba8f7912da183b9280339d9dea459f0d0cf98a29012dda9c931226997e534e37df3335e9a2dcaa52e4c6e2d6fb291fbefb6148a3249c9789348413734cb1f90ce93bb201ac1cc69693a0b5f1c7f88e0e28f24680235c0d3f5ca4e2d74a6ff3543f63bd3e6668a4ba3cd676f7e33772a6a9ce016fc88c1dc00ed0f65098549f0360fda8e3c18891ca30dbadaf68fda87ab582be82d4561b0f71701864d20ef15bccfcc7a020bc8ad5ad0383c0b6aae0a351b00388b55f512856f5f33b2b77f4ada428f3afcc14c20f3107465f6e021c855ea91c6902a97bcc806599e05bc846658dc90a01873f20c5fa4ce9907cd635422ee997a26fa84a1b6498fcff74ae9767b7cf6c76fe57be1b2e4981fa5f8556862474c8c72d89e1fd6c1c7646d0772ec32515803142996ba636d4c94107807f9a18984617e4f35b611e644247a49463ad8ae82def80a82ac75d319ffdea1b03cc73656c1fb96e43418a1300f5fc0026d1557e6174a7f0b1e1b96c853645070a23467ed9721b631982f12e35aa1a2b77edcd3e8e0ab005eb5de1d3217788cf1069cb85f06c3c1bd49b947ac8c17966ebc34f29280cb54e767a0b90bd6c780c647f1a9059066f955b14ff9286bf04022e570cae2881184626ef88d3c71786ecaa05f96e7eb9dcdf0bca5724a00833a67b79e0708ccb5277805fbe9f528c51115a500d9e0f7742cb340e802e282c16b626ab1f61d4633a02409d0ae4944273e53eafe8dd7eaaa7279c8f0b7397bb970c13496c7387a5d6d3d3ba429966f7eed6f803a442844e416afa145b014ab369953c0bf713acab0ff5deedad88c71cf22b79a808989a11f38f7c07645400736bef2ed3bf18523dcd47b541aba059dabf798ba57f82818a204c42cdee9c5e46857c8ccab19408ca56cbe4196b14e39dec1f493941b1bb7cc017e0f355a26b7d3c018bd1b46d65760609aa846607cd3b4b8ca2ad7ecb0f2de480e02a101b1415823c753d0e018138a19a795d7e30a79f2d76d97e807f09c6242f3e0e8f7da9ef7dae26e7aa727a04e6d3783fecb3a20cdbb107d2f23f77cca86deac03c115e9d581b92892c7df108267901486f6e15ee5db7983bdac8eda3b3af4957a276cbb445353d70d4b98afbf71423a95e0ff9370b7acad5ea7a4223f170b51101f56dbb503fc175a5606f7558ef210c8caa6e5765b831a73bf91139ef06f866e89a239eae684c525772ce5fc9e0f0c31fde34b33c7e3659903a39a07775d5de92a6b1b995161f3af5165670423cbdcfd84333bc2f2d933eb36c5ea4bb1b7fbc13ba4073de5010cc41bdbeb504d365ad5aa8f38dec01d8a9999d65f6831c20799f16dc60ee0b09503a303f34a3a5fcfb726e241fd6b6ea934c1bfc90d6b7540e7979f501b018864553691592d22d47ee80971802ef967f92cfe00fadc468ab104e3cdf0799191b42485f01d4d14c418d682544b52b0ea21e803354c6527e2a9a0b0a522e01faec1f9972ca297ed29acabbedc3838e86352ba7c9c1afac12ca0476d0eaa34b0b337c0e62b7ca634133630381d3f5ae2b6a0b377010b817b8f8740d96a702a519be85dfe217e25deca391517c55d18e004aa9ef2a42de54ef143409836fd857806f1b5311b98b97cab590887651aade8d2e0c63371916657ff2da73bb87bff983ba3af6ef74e0ff66e8edfebd70031451482f94309c9ce1125c4cb29f1e07f3fe2abec114a0128320eeab6b4680fef2fe1b282ace975c5a138d7fffa7c3eb22bbdc6bc9749b9a9a882d35447af49c6d9eff9c715f18636c97b71aa756e95fa2a902544ef84673060e411ef61d6190fa7a9e8ba62ff363825c7edd08ac6a64e787617f4e228666c14978b8a616039bc5ef7a5f40763f4e71317cdbae1e01f1ca67d3edeb9fc3698234547462b136805b1765583a53d7f062ebbb860059ce6c33fec6e444056b0a5d430d14e6fafc84b37d0641929cdaaec0fa3e8a5ce5d6b66592bc8d975670ea52ea0cae6bd37e80b80c5b7577ef2c4410fa7874a38081be3ee6c9e4ca3dc64ce84b717f25ad837cb38d3239e48cf399f41cd2317d021aacd77518f7b6f5e6b10ded8f8e504ffae53944ae5e9b061aabc4392a57e3a9539956fb6671c6054e84f01c6b1d098b764d8159c83cc4a6d1786a444f3cba23bed9ed39857ecbe1ffd4846040ec4a8aadb73a09ccf59ec90b0f7c7586e682d055d34bb1dbf52163fe27da99fd4bc744f97d57c3d80d0b16fe98c00408c36fa5f366fd00e0d978d9d3508dd3c5007bb1d7be59c06051da9ea785935281316684d8e88471a426dd220d5fe9906ef42d7f6a5e12d8ad0b2a7c44bcd79793deb60d28a9274f46f0dfd3bb9a894303b94679f896eec4598d3c59d7e06cb851ee96bd6d0cb4807ed1f1f9f4908e0f42db9b416c193760d4028dc8aaa858a0c4f6a39e1134c20a14aa4d6b5130b8571f052db3d3bde2cde29a17edc63e16a86acafcf9e53631fe66ad0ce96ef5f6a23ff0ed14dfc3de001bfd0f2d7ab8bdd8b212b9349de9e2a6e6c03d916c27464d7e280d3f67a3ee7a6a10802fda99f58c81bac9795237f8ad9a2a1a407224e11d6a9e60f8e56c85ad8f11895b3d6ae0d7b0288ce6fe0910499b8fb18827be254dc509e21cf6b93aeb9df9406dbf58784f8b4a9aaf03c34a7e9642a7de3aa6b5bc061c6591de2dbd6b7c346679bdf00a54536ea11aa54314fb4ee2da63dbeaa824d982f1a30186647e68a763e65bdec6b2bded49398b85f6f91848168e3f83e3c09bba6a3b6b3ac5a970075f7601c38d8d72a8790842c3f6395dc61a821fecdf99deb06f2449aee720f87f4b7bda197cc68d4e7bf6ba303f181bb7a79239d480dceb369cdc6ef004a937a93ab3542cd9c9207bd4d9c7431773655a54cbced8bbd43b449678cf0bebc4bace6518a2166175af9ed411a18c6c1bdf0457d022522f07fd0891a407e86abddf85a9253ddc1a08b2b926e1641e6e40429e93a50030f59594d02f4ad4b971e85b946dad5f8c2c7a18e7ef119187fc6ede6f8b2034e6449516b4f2199803b062b526336686765f58bfb6449a8b5af074134308e20e69b634ce1c9711d925f049c85643bdf76e4643fd57ff461b4679b6d7cf9cb5e53938aaba16161cc17f7e68450238553923387e1a94406aedbd174a337b541e92830a9c0d732a139e1f452c2ff158d3967e8f8ed398252a1133f37dc6652ca9f146515faeba88bd63037db65d4c07449d1ee4c7d9927c537bdc8e3f40ca2f5764970fc1b8f032e026e916cbfb63b16ba2d72cc650188283820f1f3de8ab51124fe79d37f824921ca0af3d6909c608cf3d49fe425063f1126528017e17d55da99d64ed4a72d63f20b04694e0daa4741ac7825767685cf16bc102189ebb259b4039652abadd25a99ed82f1149978dfad5e0b7aeb71675a85b1c020fced531f97d96e38f6522d8f5a7be8e995dba6e1700ec0430fc5052817f5eaac538fb2fe3f8280b7e4be128dd33adc9bddb93ee423f91436013fe466a2552c86574d737129fe9d425f8eb6c522211ba39b5c71117d73aef95717d9e99d52a2ae633a5d0f8d0d5b35b9fc9843387ff6c1a92cb3156739719fa2b1db7a043f8e7fb83b9cfa1f16e5163b8341f63d1aa73ab5c6d4349281b6f03d2a4ecd793363cbc7cf7861c07385ac65b9bcbf840efc38dd24c6d30bd7d4b9d04ca526db93fec70775943d0d13e5a88d3a0dc702bca289a605beebf7237de6caebb3fa030d34061866d1b51728ca949c69b1a06c0df4271e16254e3fc0a5fe6fc98a6f37f978e9122d40d904eb2682b2615469f59f218db307d024154785224bef64161ba934ebbc1c56f8068488d86944e6afaee6f3858e89b07385949deb2935d8ed7b3b2c6ff4c87ab8cc164fec73bb9ffffdce3658603004552ff072ec17eca948cb84542173ffa4e74b725c103397bde671a80dd3a9dc3e464dd81e76aa62d85ef5e81dafe860f6a6d802c35118fef001adf9d2374705120d98b4caf0bddec20437bfcce662a4b3da30d1e6142452416f5ec3465854ae856d72f3dbdce555ef52a53346e630949386ca4234f08c45de4e4f263681d261d744eeff080ec2f5166b5ee088e22133548d16f6a7916ba907b72f6ec0c0b3957a611cf445648f98588accb3d94a7b151764025a346d7d4e837384bb45ce1d8516586a9dd49600e2fcc3747fa0ed03073d684988396435f4494e362472cddbc9cc89c81a1edc0c9777718c94cdd226b85c55dc4445e6f6ab5ccaeab524baecd1a2e0c733b3d6fc9faf00a1ba3e72b1504784f5e22555d7b04517cc62845066684300ee69c92fa2c48da165e5368669682d88685dfb0ebd92907fe983fb10ea1e5ed117a74aa289367fad7be14c4f77c25b6ea7d3ff2eb84d55d9223b01329161d9e2150bdb86dca4ef8096183f2bc3f2543b4b18dc1b77fe92ec18dba4d9a2b6079f4fa318da29b6be5e0f99f766c3052e3286515dbd4a5fd71828f3f9e03fcb4eee65fcfc7aad21e98f8374ce7ce358b4a4fa1a70b7a71dabeb8384532cba4762a53415a1dfdac3cd6e466d307502448ebb9db1b3d072a00a0891b7645d6b5d6ec0300daab3f228c4facb360706a5111b5c0cac792c2bf21b57d09a0d2366556b0bb5e195f6a0f4d68b81683c6af4c0423c4a60b966c32a4a592e636d4ae1b4f200ab826652129afd3032fb0856f7f539a53d2c5727dc023e3a890ce142be96bdfe923d6b239be55fe9149bf573ed2c4185184dd431d45ed3bf77ca18f97722c9ee07f3e9899bfd94879676cfddf5d2f336c98bb6f291b853d6e780f61aff464819b293a65e73648120a54d8c6559b04648e1bcb14d993216735eb1847aa09bbd84181ea1db851a292dcc3069c137dc2a912830086d28f2b2cac1ae3b1e9f92d25f8f52f3f306b5b85cf045f959d598175e2be4fd7c311c4c698283b640782896f4d743293480adda341fe2e24109669e9d17f2f7ad0b13cda6ef90da4e722f3ee8c8bde15299f04f00f2025cb548d3967d51c20ea65b19be5d7beebfab04262ff2d8461e94be6a0ce2266d7660547c16eea7a2069490f1c86e79e8c86cb9f2368dceeaf5a5a3cf6f193c53b06402f67cccd3c37ccf063ac89a5d349d949d954f2d2e8fff5f5d94014b72f3053ed26a617d948ed57787e6fd1d7a9a26a5d1a6a4f826f4cabdfe228828fd6f38a3bf28b81a164cfacc7b23c0436f9b797b848ab4fbea2d5022f7051757c85aa06504137f3313feec3b7891c11710bd0330070b568ebc19d618b41ce3e26b0dd53714d5f7cfac35ffb4b0ccf81b86ad6a8ae86f58be605eb5d998da941f650f7dc2b4bcf11cff9bc325033469da7bbd7a70a13314da136cc230e7e5ebda3cfc92133c0e29b8f02a1f7ed1c2a5ac499866913a9ff58ac008ce91a405d689fef088001220c55530930c20a8a5421fa68b87e84b44b3b2a9c417422368bda6735ca8b78005178310e8d4181cd5360ba31e8305384d575e44b40aceac3c1c710490df80366cb3f018863b887c7e9ebace8b3724717b1e67c98a541bc624c0a879b310f01052733abc55e69d5bf8e321af65d6092bbc57ef5f0d06022276b7d5bfb78bb6c4028c6e5d1af1359f1ec3e796c4b50842d4e480887e3763ca6d5a71ed58d1f1a1c2347775d8b7f9262618acb208773c4835bbd09d34506d43430369792fabef3a6821d57ddac1ae135809fb0c24006ace1506e4f28218ba8ce9b455debb03609804258489bcea459f5908c5b254610a79a65f85428e86fa390257ea40083856bad748cc7f033ecf47d0b26d42592b5bc2b254c19b0cb11e69453fd3ecdace4191abf036645209a291620192efebc16a132f0436e1042d5e32b9e1023ca453081b6dc3aecb25e0f43ec32ce9f6083c1f253798a34ff874afae1f3bffda6d0df4f6519b0dd62ba5007b1581ba36849b185d448d1bdb41c62397d31289c9db18ea094d70138d285037e43dbc6894b94dfdd833857cf1541b14d23aea53536af14bda10c5d8729147aea6abad92fb58f643b78fabefe9f7ec6be23b3cee049772efcebc23baac041d04a6c29c2b5e88627da069135630b208ef376fb3dbdaf19b67bc99673deb6e817eee00d466c106e1f4755d4e8d439b3c6aede382d9c48896bb9663a94f1406b95f39382455ca35a23eddaf0cd34198d85f5b88edf310c1f4d4cf8f395aef02f0cc554554d146a074b3b2ce3b7769343cb910216dc19521880408c1bd8e2c11d1bde9c8bf9a57751df067302be67843228a3ba5df837d012c9d736a06f942a22a9729fd827fd5ebcda0a0a74f26af2f770efd4e23240af9494b04c83c543c5af61c6d929fafa07ecf9a6cbb468a674f782e52c9b5d6fa5848f95da5b85526d394147831ba9feca2d5c40c6138c5ac6d81884777198be3eafcf7791d0dbe9ceba31bd4c8126c6e4ecb3e53233c65d0406af9606bf9b1b59448c55eb2005fa7c2eb720b6e28fd0e73b0719bd8d75f6f62f78fa4bd7d26f6259660f649c2b2d9917aceae2f870ac8b5100e164ec338d17c761dd6f7d46801565416e3f2c96e7fafa0def3c32d6db1d08ce8386f06cf1b6852829f96a57f049c4abdb7bc726af8be0d91466322f38e35d948ddd8c442ac6e47c8c7bca48f1ea37d78e3ffc289440d6f87cf1500100ecf46c04ab89cd0d49a337d47abe9a684f612130446d7075b16d3cea1c166af83792f7eb8001901867469e8637db3497fd4b2c35834ec739d03a6b7c4bc3714c8ba17a7a97e45f3f6492b7f2e4a9608b5be08677abeaac58ab575d1053c82d1400af93a1fa7683b58815b025dd2694e7ec72e5c7b61e644c78e028d7c54db3ad33ef77cc50cf29e1239b4e78c3400cc88533ea7f4cdc51c75b775ef641add951eab6c4f5755a31f863ba78a62a5e37d149bd7d547caaabc686c1554379f5cc8e26ffdf76a8563effb047c7a23fd8efb0658bb7eac22176dc48e7896b13697092fde8e8328f58212597df2a982e7a869c307d56f1376ed34aa916061cc500916ee43338fff2c78db41160a0cb73069d95ca58c9c03bd3a1caf1ffe1f9f6e3e7c0cdc6706b9f5f2016356cf54f0eafd07f5b44c7c3f8276a175758ce7d1ff2ec68322b204b81afb59ccbed9cbd969e3451ce4c782a93529e9a9458b104833f79350b11efa2c39b1016768b936090709ce742e12daaefd327d0e13f53a7659039b4d4c961db5ddad0594638548ee7b6b64c7858ab4b903a463e21cc1aabdae1f08cf1c9285b4078b95097a5dc157473f7722067fe8924adbd1a8ac5d99d45e08a12232d01eb0e56472e1bcac1fb82a252b565ace743106755f75673a96e5170fef35a31258522a597d6b56254f4deaec6a3e926d3415b35a60f3523d7159a260037dcb84c725e6f9eaabe6cd54d8bf8b6e62bba605231f7381249a6e09d85cf84e67cc83dd63e0ead34b2abba3c6955164397af7c3f5925f57e9fd1809fd1e8131fdd0ced0d69b3486f312703bc4b8d61096a32081ecf47dff4c7fecb822a24ea6293512e81f0e050a069ab9b7392dd69794ed311bafc7c27092c8a5c17baeaeb5fa109f5c974ee7502a544d3564076efe4be069e21e1f487816b558f55fbd56791ffcb24533888ffb6d1c8dfeca6fc0b9b40a4ff8fd676f30ba945d05a4932a967b1d0f1d0502ee3b9414d72752b076de61767c03b8cdb93cd3bc3f6f28f855adf9e78d1341db42ad2c3ad5b5b5fa55ea8567119c937911863ab3cb2403c04b8b263c3fafe3ec0aab87a0941a7a1d6a55a0ec5fb62f819552c35a106570c1a928e5fd9760f6f4f09ef84436064c30f2b82fdcda8bce3882ffd5ae7d8d5a4e61ff59583c158a83014019d826429b5b874dc47d3da7d3b0adf8d24888bdbe3b9a1b857aff9154d87672a57b24a3718aef1d1a7877ddbd75b7a44ce01abddc09cd33743efa1661d4c649a860156e0a9c113f70e7ff65eea4cd6319952aa3a29c82fc6e3faf07110ca76d0a1641429e4373aa6dab2fd1dda44b45b5181af96b12b01ea1b2ab2736320adcab21073d5da476cfc98fd05e520bc40aee817705524ea455a91fdb5547cc39d007d01e353509fe3c2d99e3516bfc2e12e36a11dc3edd961e68495d2b08ffa9d6408768d383adf660faebcee3e1277554a823062be2605a1b1db38746c546148e5ad72983a711c74a548dce7a5989120580ad96cf5862b8a6ca2d0bd3b71675329173d7be5145e3b62a86dd45372da4cad0e360e08d83e0176fe6b39bdbacfb77f60e262703f", - "0xe67a73414d4b0eebc8913832a417a3cc2708f945003f8f8dbb4c04239339e7223f69d65373f595ff55a0f2e7d92bf72eb9093585dec444ebaea74192770e068fc96e265ec54c5faa8d81ba37f7ecc2336c83fdfc4939e87f2ef3ca21e5232f7bcd02ae45bb67879545f34f877e2971e4eaa4cdf0714055cc42614fcda7ad3e6477f168e2dd59210dd76cffd92045b44b02dd9723dab81727b7715e7ef913203e5794dc59494209069f4b86b5442ba8f0251a1953dc31d180996612120b8e0c68e19a8eca31aa9aad7f0fa04984115058ea9a23a522b2665abec8e448838c12dfed625ca75b33645d5ca74e802f0a1a6f8a4e43d82cceb01f3bfcde55f8f32fc137e134089f9632579ecd2f8dc866528764c55d13cd0ea8f6ece4987678278972e019f7a36df20c1fb474714a85eab08c7bb12f42ada74758f19ab7f903e3869deb28771d4469fca18e433732d1cc6928f3f6c906c77da0752b2fde5d0de6e4d5c1daebcb3c10b9992122830bca8b6cd4974c706aec7dd680c37f42bf006efbddaed4462d7d2d96c6e7d5f271c38eba47566c7ba23f43026fa41c589eb880cd6c614d39bfc6c647aa5caee437c398ff38c1d32070b80d31adfc3b43260507a6da7055e711e77f5b678241d542050bd62f8f1442dca108fd8fbfbe057e2cb74d49d2af8b8547c97e4a5e3808ea76f760001ab5a5521ce177fa2445985b66cf23b4633a8e4a5e5eec4b782bce0f3b032698e0a03b6a9aac61d62653610460a0a3d363e6cee93c149b885f8ff925281951f602294ffa651fe67c0485bc22bae720e7f74027d101f8074c23b1540e49eccb84c894c87617135a1cc1d3835c88fac446a78b641e62bdb5c4d9c22a505d4ad38a1a42e0ef215db37ca4e9cc62d4bf1617de643c292b7dbbe61bf8356c563ef41c0956e57b45f5b441b9864c47197b97966e00fe1ab7c3fc5085b28430da029bc144fdf9431d6c09ef4ff51140ca663e4509f001397aefe44239be27cec5c49dfca33ce7e692b1c57f798e8ca6c91edd94c97b1a6578dfbfd15c9ebb1aa5356d17a0516a67652b0e588d4e0debf0dab6e8a88a86bdcbf1099697e91ed83ceed4c6d9a29d65a91bd8b4a779366a8c79d469091b2934205251fa96b6e71402a175c290405ff54657018327500b8edc59df9c2d4b076b3a98822e8c186ab8a11c63fd2bf5d6fd784c38b42fd3916897068db5bff14e226eb6ba83aeab6115771e90f2b4e57db04f596ebd2699380263b0e55a49c6670a2638f89db33190ee17f5f16259c249502d72cee737b272ea5f78efeebc19d1da5fd0457a5b3ee3b0c8f285f6ed86dd334b187282d39c3b359a8a8873ec1ece242a3838c1e5f3f2c604b0a26c66cbe1a733a04ed02b4a75f499087ad512c322772e5dd93e96cfebd1fb1d3f6b5da4e61847c814c3b7325268d5c30dbe4816630e24e05aa2398635440e691988911371b6399ffc30b17a3d963ac8b00a1044977b5ae329d99af0685254abe7d96408169391bab7389a26f3b1aab66cb1ce1b366131293e720a08676f186ffc3a5cf0c41f2bbd03f4b55fbac878ef41284929b8a49f82be77def2a2905801096aa3d7a3c2b62d976e87c8f36aee8cac5c2e5d4539ae8d5416f020f1474894e76088191f34369d62145de16da4c72ddee78d453ff6fbc3c93a1c786d58cd31978cfca00e3f821d606fc67c3170b58f76735ad6a9c238d9c707c4904acc037ed30c16b9127bc6076b1a1544b8f8dcf9c431edc1b4bcaa69d6a64d029cb9b849f2c4906d8a9a0313da43e04bbf615577dce38361e7eaabf8ef80a0bf6dd4eef4f0d2477bc5ef8abad5f784b8278dace10427bb2db172293f485caa83baa45da1dbf4bed053df85f4a4af9e72974863bb52aa19c7604625ca1d36dc4d13b7ee34f87f9c9e940f6e386a5093ebcb956dda6f7c868ec3ba36e9b0f0abee0967412c5fd029f8e64796d50ad909f2d04bb3e2ded8cecdef7a04edb91611a4b0f2283dec82d5031e1ca0993a7c6c968d23939043bb2070fbdecdb5f8060ac6c05e2ac9b05eb2bb1ab303c7e5c86a1f595e5bd37906924aa1c0e291b7d319833a530120528ef53dad318b5b73d0770e8a99d3b7853c9bf416872b6c5b03c0ac8f801c92fdac79ad1f95d8a699ef4a34310eb022a69b973095499f4a5b280b94ab4d1e53dc353ba20c13dd30bffb5ed57270225b14f447e45496cd1c39f806f669875d2c3118df29636662f0211c72de2fde47653ab14ea102a257da552242f84e8a64ff898d2958bacb83d13e830a29f1d0b52c6a60b5bdea6171f1baa8543592e77118afd2856756d1308c3392ebcf46d3f47e5f7667fc5f59660533e656d9ced6f7503a0f81698189abca14ada2930dce01d61634b6c51eb113fd4bbe65ceeadd1d02008b4d8719200ca0722cfe4e4c1ecdf2c252d4efae856b611cad21f906f93ec7b34b42d2764ec04e8565927b9b48bc47eb8d5b170638f10be68d30858a346810735858a40aab065fbcb734c6480b2733fd39c687ecf14125f0f8bb419b1bdd841f2cae905a5c7105aaeb81b3a8c4da09dad4f5b3e67d8773320aee0d95959435b35206e4384969d984f45654489f96f12be5ad3ea50806f9ab3b7d5552cdb89ff8c846b55c7aa9dbb952580af1b9908b8b8c16933d6092e27ebf1a9d5785287f5079f885bb03c2cc48eb6e5cb08df06ec0e73b0dadcb16c62b6f001f34ccf6706f1bca72467697d3e42441db55285473a6b78db268a3103186f66b77a95ce8653dd00ff4ec8cdf731381c315196e4acb81d4617afb6910873c5a1d616c15fae4400e3d2e0782a7d4c3b4a59d5979d9eecb9c6d26f5413c300d5bdb8190dcda1d40d66dd2893ccd561879df1bab5bf955c3e74fabab44cf170380ee46f1f26bcb01b3de8ea54e867b5cea2c759ff7160348030629916b967a53c3a3d1293443e657ba730fb491d91a61508bfe006791ddceeb777320747105b7f6cbf3edff2c27dea0308e940521eab898bfc16e653fdc753ce92aa264d84358f53c3cd691a65916f5c0f3d97b8e528fa0d0d18c83e8ff824c89644c1e535eb1a24e13f15c647eccc1f2876c81a59713a988af3a7bc91dd88ee7e27eb70129f3865ee7aa98cbbdec2a373281ebbc4db2f6f7bd81d9137a258f77de1d2f1282cf924e69df8c762a3513264a08677f2097a8f0c62d576932e5d7125e4d684d00c13503d92553b4536d7cf9f7f56b6ee9304b8a8f41a5667869a3721f0f448bf1297be661aab308a80d1f0d2506005c16b2859f7cb926159c8779b90f851c3aa9e4536487267ca8a780a966fcddc6f15fc78750474e0d77e6a9c2eb53dadbdb1e1f8b6ea1ca2f00e7673228fbacf729d0fe897fc12993014452e86fe1146783dc9b26fa682a372ce18eac1f91aff2d41899c853aabf971bbf57d292a6511b5e3db21b80947ec7819a75963851355b143abfddb8923cbaa2ca686f03432daa28fca7537d84cd9004139db206b20ccde1785645dcd13c28665c9c7e58505bb8b2113ef3f3ffcce2f188ff503e5e767e88a5ec21b389bdbbadd71bff883aae3f63e38abae7008f60368b5e953b15026228b2760f75bb79afaec72f8270a811dcb4c17b1be2904b8bf5db50317b1bf7a53499dbed1b6c2525176a391b4e7439d9b3b6975671b5d96406233a3c1f3b2ac1f4938512e5d838f5880963d04934070d81a4dd86a56ca92a7270962e6f54639703a1733dd6bb3dc41628113ee752e848d4b3d70694b950b2f98e4389547eb4a1d25a850336a0d025c9795e9694b7ae7276123e02d6c0fd408d26b25cddb66471241efb1c0f47c8a91eaf2c4522ffa523c401c35808f55fcfd5ae28b7bb2350569080642cb11b350c850f94484444e7022f35e22f4c53da8bab3182fcc4e2df6b0317771f2fb82a65e3e3bbbc11782deebe80cdb2c7af10159edd124d736afbd13b8c8740e079852112b16531874aac6a8bd7d0882212225771689c6c667a95614d079f6cde251ec25d42b51e06a3abc5419ac77b0a22222e9a417c0ddf9bb6be1fe266a78a9d1ddb0584ff35d1a8e9c2a5357da1b1a3a3f0c4947dff44322744eeaf647306a36291be2daa5a915b05b50a11131c4a0466cd4d1cf984a01b1be7ca9340eab9ad2be0323d66c6d1bb7362dbccc52e90f67777c9c32cfc1fe180db15e70f8ecfce76457d404f3b8383c12715d1abf5401f61f47d1af51d9577d6730830de31b7a5c90faf70b92d796e235ec92b47889ad12480e495524ef88fa5712e68ee24a364536c4d9cb87eed12972b9fbf04b0e4db2f632ea464dee27709bee7926e010be59a80d1e1a9b7f94916884ec202a5e7638346bc8ec4aa108ae04be7a3971c2acc2a4f253a4ab620289f71258bb87470d3ae0aa52c6a34e52e8bb7b4b5739b80bfede22cd32360c48512ff86b159cfd0d46a663565842de86c5a122b90c49c4ea92c413a3a5c43ad172b40657b0efa5d5fe7996982ef764109102afb7ec4bd1d0d61ee96562d0288170f9fcd9b5b8defd31e54735333b6403812872878bb7c376c4d66ff339305657c3ec65b4153786429c07f3c1f33ffd7dd344e8a92a2a12cba0dc4249df83a39c3dfe3c174697a1c29820ddd66f9871b5e3a2d4bcc4fe24fe111fb2b86ec8f5a47ad8144c705e77dbbf1f925784900c6fd6d7b6d21e46c3757346e2b472a76062b050f3f512c0f70440dbd17d0e0f1b8d2f9c142f275e03fc15e66b1a67ef9dccfdda89e00d81ee20f3f0a684d92817244daf1f2b9318105a96ee63fb453d860dfa0a16437e09444ce88470533a504991c91a7f8146b22ee404c9ec872ed9e7ce32ec925ba83bd0c21f26a8bfa21217927fafea5175856a138654b3653a1fcfa6e8d7b8ceef2c032378cfdcdf6f69a7f64e3a39cf470f088a1fda8e57e92690bd6010bd76973e8b4799cdb52c61e83bec64afe54f3adcc52e3082f25f2bcbac3769a3056cff6b51248c0e9d59532396b8563939ab61d1b74c07c42bb6659719a9168cceffe3e4bd2c41b5fc332129361fcc4f60cd38d24a36a5026600ee469ecb1ec649d93e966fdb1e574c0ed8b899e1c65f19eb53f9a5ba799f0411d500e7aa67783ecb1fceea05de243224d2efcc46c40d619dae3075b047a037d243256e70982417f26cf994c9e9f58748fad799999d156975155ec271cce0dab3cebae3c5b3c198bd465c797df830ff5fd867d8796ba8b0999cf5285ead06351001f5d65a6d9515974a006993e021a170fcc3e1d4e4150b1bf9883003125946e56fe07b2bc562ec8a1cf1270b685a600593fff8ce28181a8dd598869ebf679f10c31e657fdbf5bc83a8e4fbc5ce5840c542dc52a7e782c59da9fcd50d426b13f436873ecad37fae00df8e923ae734949edaa8df3b3443804833e208ff9b13db1a4e3acede23e02a8d897cfceeafae0f9e82350037048a43cf18fa2c060c76b137373923bf802b65096a69ceb8238401415639f1d7804046a41ca1ac2bb3d6a2761c1109999b144181e767c2993a9d9c34b7e4f277cd47c4799e528382d5be5203dea88305b15c4d61121b83f71ba4ce645504bacb6ec2b667ecc87091d21f4276bb2e00be2fc2a731cda586548ab518f3d6aaf581d3b85a87cd07ae11c8efeda2fdf659c9c2e056e8074d4d8c5bb3d8560a75380210eeec51c9dedafdc87dfc8ca7ed6350beb2f57f6ff335bd56f9bc212cc279800a390ca2a239a252f5f69f660298f90983f0c55db9185b16dff3af500db2abaa4fd27954c36bd3c1e20a05db784374802ac3aa1af95b3246d43cf01030a502615ac4d5be8d67fad0f207169bd94445d51dc2109e53e0d0186b1a37cce8057bc7657a5235b624078f97b6b7be7a24fb46279386efdf5e41a3b393831794b7c839c441c497f235461a678016859c68f95ff514846f9daaa42ec13989fcb2adc26282655fc82fdae6e0af726f9e056bb2b865ea71a16b7d2d4f2d91077632ca9723ae242bf0e2b1c6aa76eb569c0d435082261b109ddf7a52dce6e8721a63488dab32de7ecbb4b58660120daea480fb69e9424a344818ddb2d6096083883e4faf3041f242cdb396a322371f72045947fc68d9b56908ec670bb39455b0a078556f88e1a92008b620de832a6cea433b2e13d946245c7e782c73ef7fd4a19bde2944794ba553c1e9add6216687b825197ed227e66a55715587f24adcd189ce2423fe1b8940386d2a639bf27cbc6bb74573c7a79b169c1e380d85e64b901fe68dcceee12ffb9dbd6fb7ee2f9c79bc4b6e22caca4a06f1b52b2b0e2a6ae115ec87e2137cb36bb0ba25e56f32c58f305ef3639063704278fd02f53281c498a0ea2500caa4d8afc38997046dc52a9625cfd55e13639ec91daceb866ae35fffc1533d0a9da0969515b0657a6cce3179297e4ca31d1cd238fce9a293d74eb87d8ad967fbb7dc37a13bf5efb57b842e447fdb4c71acf099d00d08ee9a981888b91c5d8e65aec72206b84d99d66d5d1d35dc64626a40d5d4f855a90804d5c87f1be7fd8d540a6b500a61d56b4c3201730ed9ec4d589ca8a4a2c7adeedf5937e5d7ab3fa0f1dcdce815bd2924fe1d6f0d53826067ff32a3200bd51309a4c381dad156baccbd3a73753793fb380d6fcd9466173ba69c9b6e605ef9623ff8b5e3789be65b5aff91ec068b4d316790fd83eeeba8d62ec9fdad8d13111fb5d60a1e25bf9945a3892413f0945527f5e4875e10cb3f21bf151660e347320ad1f689ba23df59f50aee7c1d3d24654870db7244efc8b103b592a0e2b8ea93542b80170a5ab9a617e194f75b4d68fc46844d5f65fbcddceb549ebeac80bc555832736431019df678fd9cdd6902e546113f03142d5fcb3045eaa19f6605d119af87098be5bad577556cee18381ad754093950d25f41457feeb61b293c3b7ffb337a5e38fc0c13d02003a20bf888ef148c7114bfd3e9b49fdd818d604211ac75f8256fae5b3ef17b714c7faeea24278b467296bee388fc8b6098d07f2a11c47f5b492abf773c202f34b5cbd1c67c0dd955ca3de5d3a4728d148c04fe98fc91fe084bc4a7da45d244a2ea8c27537f7ba4e64e7f7775594bc6b918bfad90d43ff1b0fdeb835fbaa2e01888ef0ce01484b160a5b2aab4ace96942961a5956037bcb9b64ef75ffce0f394abe1c81b90254b79ecf6122c8db948d28c470957c765f25f53c6bc42c774f9318411bef7683e5fd853cefa705779079d2657403ae4b57cc8af37cfa5f2c8a53a78ba061f40d255e4188321b3cffffde0dc4446bfb4a35640580c1656792b1dc71b3edef7f6146627dbdf22753cae5a7e6ac31a491a02252ab99b71a7b6f42222b3cffb032dc16b7b871238f84817a8cb89c53ba1f255e47b8df765eb72d95b49859e0c6f603cff902e41eac359154d0fefea2472c04b013c9d6790feffc11e6ffe0729889eee346b2b730921f1a6a40713a220cee3096e0bcc2eb0bb65b8997ba2fb8f41c4afc0e1990860a32343fa64cdc8fea762611d9a7773c4839ebf7087cffa6eaf4e6c34201d3aa89a1c98db49bfd53357411fab2f266562bce3a52462505e208dbb631327f65abe9eb2e59cd18dd47a196b00df2385f9ef500a24800fbfcb14b979a27d496ad7e70a0c66a186ecbe538d2a0a2663b7dae02aefdb0144b70490b5699949af79294c7d5376f5eb77fc9e38324914f2f3606cbdf307baecd8797c27eef47bd2e53d6a5a7c710cf45f13260135397f6574b1747c8aed5aa59a4bdc598c15300488036a49176f0089e2d318b60e57c765b35c8063d3644b43eca2c9b91ccc2de8f71ea7b436588607968865857c9f7531fb15b96d4807634ba98b8b5a8b3b9bf681fcb64b6304e5be83f5598365fc6719445edb1b7ad79779dbbaff72280274f96dba7980a050a27412302a29b3e26504633ce4f4db734d3acdea7cda880cb19095a57a0c816245e0c099d1d1b9a21ceb875c13ffa0262633ecb65c91f6b356b04a4202684b898130b087413d312d315c0c31894aa8642eb87b218f3a710af1208e1bc1552e6f5984fe60f811bd4e4bf891ee6167798dfb55172df5993e7660fb95d2e754858c4e70f13deb5405a4bcf4707dafea50fede490534c3190bff3a32a428d62f2d0f7d7ef05123f35ec8ab9c76ba1dec3cca9e0659e7d6499aee70082dfd476ee8a798aa4faa8f3e04817accf3a05d8b49a93db3e51fc05a07a755944d7a0ce3d3ef1ae4e90b5369dde673751b38ad67bdf03baa00eb36a395d0a74292e9e01feb5798918bf9440cd9d0ad1eb15df32766a663fa137ddc1e1141b6520debfdfa9cd41c0b2d2d74a4d4006f6007c8eff2f400a2e600f46fe8be3e4958bd08430f70b7a51cfd0d381015d559694ed9f0f76ae7a863521313c4dd008aba43e0b13db7684a873bedc5144f80117a321e5ae59541139e3f64d699b68fbc35eb5c172756f3697fe3134ed93f0a0e69ca9107739c2b8f747e6387ef3c664259febb56b595943f2e26eb5b6bd59ad920d60043d99a5e21f9e5a6a6773f7706086e55c79108c29430b5c9933ae7d1ff1c4d2692554f60edf2e0247f80287825fbc7627bab7f57e315dd2ff09a7e2d8eef3c5b1da8d64b0e5ab00793824e935f3d7d3e13b60edf1ee26f7c4f43afc022bef7f3cf967845f4e17db6f597d4e3a2ae78d5f5a8202588907f647ad1ffbc2cc392a49c6a84eb6a683efeb5fd1a5dc8810545643e9c8a628ce8b7ca45629030ccb486816f3d56e58664842e95bfff6ebe05dfe37518c71e36ac3c4182bc9997bab49a0078d778ec0663eded672e7ebbc1780ee712210d93621bab28d100b6d10308dec25983f59467ff60eb1cc2b2a4b951d6721c8bc224dad0145b5dd62755310151056b8bb6b15b7456e78274895f2a9ee4bb5cd93e5cd97b40deb8d19b5761de85400c80de104864d22b0c1f3f6f6bfc735be4b04137917ac4d2543d4bf1c52793341d74e170ca9b805a504b18d9296275c9855d13b3a644eaa00b727fb9225e83248249d9032fa4539a8793f1fce232bc3e57668173b2a5a4e598bff7d153f99b95a60d6747f925944110934b9e6ba626ff35322920bfc722e11ce5f3c4c4b61558f465b3af601b8a0ced66b4bb6b7ffc503ebcc20dd00dca0f9a19e58ff73720f85f0c6024cdd2290c44beb0ecdd11fe1356585d0d58bea0257aa407b303f14af7db5b7c9660c16ebbdf7a86209299ddffa287c0c7c07d73db0a0667241067ad57e1ecce066c254e15ade18ac2ade01c0f10dd62dfe6983fdcf8af0e93dcbe6813ef41062cf5786b183f5bd67a25368980cdf1a82f991faca8d94d697d399b5c140684a28839b4f8e04bc47ffc46b4cf26cc695ee41ecf9b75a69d103c8c4b29212a4faa2824606c642d4ec19430d7e37246089bd0aecc21e23ad88f48504ad9fde68e7c6fda78f7e561efa878576332c334d48560f52f63e0d5a9dab5910bccafc56a51563120e56d0a643621019cda06d74ca8bd955d2f549cba7a06721bbc6dda423c3c34204ee96fbe0860cbc967b131aec341a13159b916c7b54aa78cfa4539bcc0f0a13dca1a7887fd382511c55089455a2022fa1a9bb0482eb7fbb639ee7bdd4cf26c5a0930356f63f7d19865d4ebd55e4396410fc53aaec0b2cc4581813e3b2af23a687ea3578da2676800dbb9a60cbcb36b6988dd69249fb08a96252aa334b88fe72a860cb5317c98d52654e0cc05a68a8914518853eeed093c67dcd6cf3f01e500cbb3a3c9444409d740beb9b5e0e754c5611f48f54d6270fad448236a46fdee4a382d8c3038b6b4833f82ed7c649f056ff64414b0fca58174aa988d23121314395c41662e8747fac186184680b41812c5d865ffc833817969fe0cec29c9aa0b7a1ca24a28c71902caf3ecefe514bc147d1a405be4440dff312288d6b37ae331692dec102748eed9b0334da511bf3f613f53ce7c91c2718f34e07a617abbbde29bb466af5c45bd33d6695b602fc68f4829eb4ea3bf38ee16710acb183a524dd056bb249596a5d26074263f91af0b1e674a35fa8b427532dff8588da235f4c3671471f21acd4b92de14ad0ea4c4438c3c275a71eb526047187098acd2af116741043eb88a9bf7458c188b2ad7e509e2773812305d0b658ae79228d84173b2c24789a53dc8beb5966b327e05004c05c1d76c308b58ee697d16abca53ab4c62abbab9f8755998e0939fe9aa92e17a1d493aa1fc05625f596d311ec0826e8d2de172dfd8c067afb069381b23d424b1be9e7c2d5e08ff253a3124e03848928aad65d3f989c8562d5d293c75bc43d9782e451658d63fe9ecd78329fb1197911d25d7a53a15e8b860cc4447fd3610a01bf0bef0df4a359ec6fbb92f0be4ca0922ad62b7893b43bc3bd49f1189b3684a293926d873a0e1aea634d7abc461a41cfa701f6c0138faa6d40a591f457a50c0f475af0538254b22e42f43326a0603f90cfbe4a66f52239ce426ace63111b57a14de47b146cb75d5bca1a1125714b6864091ee53d74174ae4af08fbea1a2c0b8e418c24b2c333002cebd8ea278e3fea282a1dd9cf05ec53888c0f1fbbbb3a2dd04f242ff688687fd9f3f42d9d07f9eb4453eed4ca3a6d88f4593b0bdfc2a4911d51de057f021eccd17035b5cf597889ffdaa68348f8c0e64c9a6b909b4a6c353000ea382ac105170022d55248ebb9549a4f8b66a889df29484ace80785234bb0f0d56165f955d0828fe36c6ddbe9cef236b28d2614f2c9cb87898d59e8f22722531f20ee27089e92d496efbf2d702c9d34991c84ed708ded09a7b9c6a801f00a9d2eea5cfc3a547a47d93d796918e2a0257244f982e1f957e3d2b6bc646ed7ce84f75bf730bae11446c8ff6489a7925311e12a6875ce9fe815b0496311700d4985414689ef93a50891044ea41bac045a0456bdb81e381d003fb7a160768c5f4f5edc23525a738195ca3ad156c09c32d59109f5a10617eb0e28c718beaf1e9d6992e4508306cbec1ffc3b1a38ae46d01c4c09eed36dae68bc3b4524c2ab2d7536e817363f7bcf52aa11a6b4a92f8c9f224f542304c6ae0e6405ce19feae92c8b4ec39da1db641458d5b1cb67020732eebb60762753528f477b975a940d06faacd6d888b97a7094e860c10ccc37383d8c1239b4575184d0f53ac982f987bf68808fd3f935ab4a069a4bd180a25ad7525ef3a2d4ff17b04dc28d83b4012f07d38487430257d344c74b0ebdcfae86831dfc126e0e9b5a24c520b5dfd0d70c3e9dacc6e61fdb0f527146f758ab53ad21b79ac1346ee21836d5673fc948e995b60dd7bc8c65d1ab700ea8020dff9e22db6a211b1dd761949fb0c539ae47e337351869c27055e30affe12b513c194164d8c1f1cb89e17cbd3a8bc7cc398a85e9ccccdcc7146bf18052045595b678f161d733ea75e96ca6a32ea271425590b51b9277aef511eb645568310726812eb7a1a178acee293235e2e6788d31089cb2b81f5ba39b77e5cb832820fcd8e54eb96d6da8c3405e59c75c23d9628fd97082b004cbc5356bcbd2e9f9b0f8e85ea30847605c2718c220fb79c14459104e2fc0e165becb425a3aeb0942e7d2fea23270835410e66c00ca6ed9efd202b64200968f652ed01df9ae3627f049cedbcdb85b5df695958ed77e4ab6028751bff698d41a99a6d3783dbf643c0ab563bdf00ea6156ab23e9e64889acab64a651dbc3b181895660dad4b1507b2ba2ae2e9caec64511f02fde7f816787ff746b28a2418036c63e503bd9d3232e8a4f17ca1fd530e3989f9db6125d837f0e31cd9523b6f2f2e4c5c6175ec5ef6219d045a7f871471e09ad0bc8fb7c06c83f7818edcff3d5503b8f018a724c3b58088f3fcf9b583ac896f59e5e1c25ddfd2cf42bb13c9da4a676357044e7f578d7fdb0b17ae08a313c05ef05fb5a880ebc24abcb98a685bb021561b48bd6a947798f4edb0c832197932fa6d3521d252221aa62e4b169a18987eb2e1e3f18508184cc7e94daa5c48565810dcc28d43124d4f3d1e88388869d56a0e6de84cd84c90db4313c3649b45dfb7e9bfb6b6f191b986ca4b22c297db2522f016c5cd95c8e41bbda96c8d860c2623a39b44de30700c5334c91b617201f23697fcc6e623aad4e4bebe7759e9382cbe180c927aa868c0d99a470513f8d470d7190caf154b12d3c401dd0ed4a272d2e2e4ca61d40296fd1a66441ac3326f56a3f884358dd7bc4106a8dba8b7250544ef492155ca749b9db95610d67aae0b5be1d2610d7f17e10170ea6e25c0d76c1c99999d8bce4d497d553a16179fe26a5a92c2b3f7bc7dec3b566d93cf8f7991b0c966f645c8027a9e5043df873ac484050e0409cab59232b471c2ccc537051c2acf8bd606107fa81ec7f13ccb7d87a280e802fbd74e86cc497d38f2eea9d4ddff2e2e5c1ce8c5d338fcd4b0018c668f4b2a7640fec77b8d8379e0d6a520674f0f9096f98ba23c8e3c8ada745df625473e4c6c99f4b4b34499887c044e316874c3736c6efac6631cd0c13a6a7dcb9c603ad9fea962571a402ff0aa0b11a9f5e64efc84b563bf13e321aa575ebee7ed0dfaecb6ba33338d7c8bb971a1c4953b0c27f2fb2e82ee6801c843db7ea8086da80ef36d1ccd3b2294caa13809c6f4c680c4172acfaa36abef5966a10948c4c067db09e946839381cbbfa573c5f578491832aaaecb69b26524eb6ee8d7b056e1e8055178c2bb6e3f6416eb0e1c8a75ecece4e85725069c796628541d624ff2d1742e989a09144147e2ab15d0321281c6107c0c4299f3d7e63312d0d2c717ef11e9d6d30d415aaecb68d4015e0cd6866c44f67bdd841d5809835dbb040dba8c33e25c51c99f41cd5bbc9557edc6ac7c9d374e2d95e9ff687bb1424bdd66aefd28ae3aeaf777256f7a02da6b7cd432035845b88174361fe4fa4d44d7b348ae6efe216ff2205e15fc3688d61cf13ff867f2c3d4b889241321a396aa5646627b710431cfaff29dc356c08b0be4b84800fdd5df44dd10e46f32d3bb3eba751cb78d0a3e078a8b87992697cc990a4244f076c4cdca7acacc23151232d96a796904fed6a7e48cf5365ccf5ec72d5c7b407ffaec704016762bdb6520efb177a4324dcc96be808fca422be8fe2d2e69309a6aa04c3bc6663468def83b90ca86b563a67eb77c4a80be3ef157a8ae7015e37afee386eb5f696fdcee9398f7801791020357b7fd77eaba802443e0b251d718c8667f6dd3fc5097a08174bc35a6bd6175699c941a5ebe01a197a25e9d99f875b77574e4467b15b099640997fcbed686a5cb5c68d2560815f99d4bf7a0b6752963d2f34b9e9af3db3bacd8220bef94b201a498912b1a0ba63b9d25f6dbca8f63717d400935174f4e7ed1e6c81dbf14cfe8a9ecbbf871d8cf268b89b59cfb28c7fa85def4eb145db7ec04a3f59a9f270d89c656bb69244481bf851cf67f736a1fa3c45a009c43ade04f3f9eaa690f06bc46648ecc843c218e8b3d69b0469d1b45f2fe79787740fff5a9779dd2d95c22a1c241bf28bb4c17664f35461a53cbcbb3882c6bdcd0c44d4a4575b8e02d0f84a509dcec9f6665eb3f34e27c89cb52d9e5df339de49903c07873c25f426ff6d9e8ae8b6de9349a471f7fb6f3cffdeb3bb3e1409298b02a5d5b58ca30f37bc5bac20ac4b4341e1ac29c6867c6b9730fc61ff3007b48a9c7590d39f685e252c5931d64c422f81baa2a7f16441c9ea2dda556010e9f68332901d9fbee767073a1499efb1c57c5a84b689dd19d20d4e310c507ad6694b5d4c1677726a6132f2aec58714899a28c9765bc3a5e7d7b209d5317e48945274a0b2452a11a688cee6b85853023432d4bee6721d55468e778eaca300034e1f140372dfd8c61962cbceb2fe870eca0948b32969b36b9bb9dfb93f606b4982cb347f97dbb8d52c5fbf883f706279d735edc42aa874b5eb61b22a7a0e471d7cc7bffb267212356e20c2040a6d5590c4a65169532ea57081d87aa5002a92acf93607850e50c49fe69bf170bc2388a00e85a7ada98a5bc4c0b407891eca3aecf1603e151825c0f22d9dee75000c56b9bcff440746f90487a401ec523d18a60283a7feec1b968bdb5db65e839a64cc3eba0a23b482dddf549dcaff3318772e825376c27bf504c0d63bc26a2cf2f72e4c01d662ab86617ff6cc93ddb41d909e73f0546ad8fc8d8b7e34093f94990173e6be39c31d0e954c17d80e636ab1f8b830f2b1bbc906112f2902f48eeaa50fc4fedaee2c8692ff014cc88a36ba3fe5ae0ef20add5e2d1a81d718f80cf8ea8201458e2e274a343c2f69b8323caf556cacd89accdb17e3046a733113f3ba6be13ccaef3e63ea07e0b929452c21de2e304c1a5ea5269e12c2685e8ebc801392863b73a48531c3a89d5625fc0bd3596be11f3a980c130d4d400d50d3ab7380ff5cfa3a1af5075d3353131743e307b8dff12b642d6f58ca48937f848a3692eb08362745f90b014d0972ce737160b225b1fa6844e9c993ee329ef73ab14e25862f03a5c0b4295ba500fabc501617908b2fcd42912b79c33d95324284e55d7bb528ae099a65aef8f5e013e399a40ba0c21fe21a66abaccdafd24b43610f52640f478c20fe5837dedc4f31a198ff0aa5d867dfc56d5b3df8887c4d6f319f31b666567267acfc4cb8268f7a23caa12ba7644f380bddb89a710202f14f71bb76c9e73c3e91191302537fae3cef05581370ebc580293d0f24c8827cdd01c9f741fa44f3430562595721b212fd5bf4ca41105461e850067b8971669abab86a6f2e2bf3a56b5e0c09b2b97a74d113d550ad5a6c0676240ab5bf4558eaed38c15c32417611f7e99bdf5655e5b89d9795c174647d6d093daef0a8fe3909185a6e8880a5bd6bd42af395a6523f45e3ba3747460bf0f4dba9f656d4be9c74d58e9929d0c4906c1d5786f1cbb397b0df248864606d0174366860e89c89c9033d548e11ca8f0b47e1db5dd9a69fcff4d2d124acbf6c87ff55ef8bcf7fc6594914c2aa3c9bfc2aa6a0d5e81803df3a816791d3e12032c5d205a6b76eb9c25f5fb8019e22d68369fef2969fba9461d0d060862880fca84fce486a0ab2172d1fe047d0f65fdda16bc6a4277624c7b7ea65e7a87cdc85fd013f890bae70779a550db10002930b58bc683ec11e602799984d03443463052502df29cfb9e691031368e5f6f885adad99004c521c39155e7d8c187955a69a57d542ffedec919644223b9a2c8000ad29d133eeffa41a7287411783ba6e38908e84242d1339fb8c9b01daabaf75da7b59acbb349c54d737359338c24fcd8df00ad13e1fe11c37a12f6b966fa20f2a684fed6e8336afc43caeb686fdd3035ef8cc78aad96cce264d866daefeba4aa7031edbdeca8a73d4eddca6ca0fb7c03f581d8befa8bc35c4c70c14b5cac1a89eb1615ed9ad8bbd9572cdc57aaebef478f407cd3c4e4eb70243939f379a143f0dc0b52d62c5dff84782341dabb67f493df7da2d772092ce0e48ce4ea1622515c0a93a0af51463a3692ce72e9522e7e7d496a94b133f6e78f6f0d4b69f52f9d29040160c2369a3df6cfa5f5519adb48e65e6cb07ebdfb96d04d6a3ab89c6aabf1988f2fedcca63d77b1b3bb4dbb2faf857655a2b81f5c12d58449bb88acee60f7bfa7bcefc6919ee76bebdb8de72a29493c6b71b65e7c6d884baff2895646e840bcae202e0616fc396594b2abd6ae6880a96049fa8da7cda40b778a05c6e98580e745d4d2583c6055c62efcae52cd70c50f8a8b099148d64709d9143db2dce80c8a1a324dfddae14b7e3d8877ab9d70d33bdcf65325615b914d03c7023d10d398fe67471cd1f6f739173d739b5141f269763e8e1f0aa2445ea2f4b06806867e3a9620f4b70fa840b2344e3f5f38f3ae3057a255b090a408bbfd3f83f25a8813621b4bac305ad1b3fbd7095edcefc885cb2fcfe2e2455e0ddce2b5d1af48016bcd5e73ec5c47e96cbf530addfd9cbbc19e9eeae061ab4f2e9a4bffd4d12ca729f774e68fde66d0c7c5b508b18f3ea5f492673b40b600955115e5d3ad758ebf7cb39328ada5398c8ab1e24b60242114b474c12542c163f609544e0dc0edbb69b5b5a6bf797feeac998573b594747093073b4b71470e9785a9119ac905208666855daba8a5a49754186d431c17ea073125714253f5c3ccbffc49299663d2afdfbbbfea3205dff5517af9960e070616fc91d7146656847f4012fd7575370412e06ec7436192db89765087da2cde5248f7f599bdbd98223b885770436adea8232cf4a34dcdbf6b57afad3870642063784361aed6132a5f0eca22a07dfb2f2f7f7ae4477c74fe2909ad80208151d4c7bf340544406ca788af8e6c24fd1018e026f939b650e627f4116b7677b3fdf02f0f9c59673ac420b7d7dd0832e431e8ac8b97d054adb86425c6181b9be2e3058f1004012a3c6fc922b395724e0b3f314c77d041b6d592e1190add4652ae659fc9da402ef5bcca0435ba1614995a04ae5109ed095ef2f55deb9eb8333871dc852ff98aef3379e983294a34dd0feb354f3f8321fdf3d6df8561f3c15b504c79032d7acbb7b6f08934b0a056ae9284e25c12baa43eef6be979ea245448b9b71e6363543f6bdbfe3055500467d02af7135337998227760b3b81b01548077851ba59f35dffd626309a604d7973f8192fae0f8d0ecb568c28a64546f4d6a3eb513cbc18ba7c46b176cef233a69dd4d3e82e78433e289bb43d0a8da2388595a78bcfa07ba191468662da0c41d48762d817bed9599444190228b1649a348d87dac5cf882197f07fdb3733d857d5da1ec88e0fb4e145b119e615a414fdf3926e632b02f0a13188ebbc21a8ce50f93e4592844fddfa70f45f1443644ce7a80b47d8b932dec2b5ceb46ae1518ab5f873e10f23643bea2bbb8f937e43c05c522abcec1f9252fc81f37cb937eb155fdd09e11f2b7016d73555de9f662c9cd3d5f64c515576d61c4eaddc362ddeaa3bab5693110d8cfd53e9bba6215b692e8b433ed420acefef9484d1d1290249a272267f84e65ce2931b93b68773c81be5956c78b7fc3b7f748798a8a63a53f5cea9c0917600d7bf07e03ed94f6b9d47bd535a2323ddf931af8df828ce8e6d40e22f847884b40bde78e8fd7810b3b667a3c2b9d0fca30074e1bbb62df5a890856f53cf97e93bb1037994cb9042ccc317128123dffd20a541bd1893a125432a518500c6b22d0c69deb669eab075778289888bebc150601a231737d520af4bc0a01c8f03612fa5c46750ae18406a321232d4e386118854b7ee156b0bb7cd77ca900915825dd84444227287b64951c6dc9f02810d402283639a21d445c765e799dc78129858849208bbbcec016d7f4db7da753df27828f45288e95c975d6425b324e28218b0c41c3b0ccdf28a408006ca99b7044db7b07fc5fe229946fd17e06b651ee72c0d50e51ad5a08978df58359f21976efa68339682b82e3da806e831a05cd4d5644445bf5f74a49bced7f56dc02f3aa8e2365afe76272f9c8b009bfd2a9871577a82ffe3b64e40fd0f51c4cfa85fcb2ae5c9f25c7c65ef1df84d173013b85bd797c5cf9535353de230256f6c8e990abdf35e5adaaad13504da049de1ee692cb05310943c75b298453d14ab2b8470958b11f9ca1e7a903da1589caaba6b4be4708d7676071d3d8e6133f2907c38c4b5e58fa60643a44c66338c200c13d2adc4020641ad0be96395ae241ba54969c39930e2c7ef6818d93322a6c69505a4e03616791bb447fff098916d1d6d118b43d5780e17a576b14cbec4ea7da4068110e92081e56afd43c67ed18c7ebdadcc0c402d9268bb836bf6f1a4e06f9e3a3421cb2563bec19092558d9bfc97a9060bcc06240081a7f0025a5356878c3fc24f91058552cf2515529440f15c19ac5325b2445db3047173845374b2d360816d46711a8e5aed162e24a76ea056b723e57896c15a18f64962ee7132b3765ea2844910c38099964e08fcf9f17c028c23e843e12899861772de77ecc28c9596293aa352d04ed307d0149fc53ddbc385b68132e1a5c4da1bc6b932f176c7797bb5e6fa26a73ae2a5f8af2498af4bc2ea2e9bfb7871d9143215165674fd137f415d60fc0f86b0ce345873b6121f136a111fc8b47e30bd9d9c930a19bf2597e8be36c4dd8d3777662dad6daa8573afab1b6b26704bb01cb2a8a6319df222d47816df5e2133bf92bf0c08403595093084eb31873462172cb116fca7d68252830ef4f273a9c316f5d8109f419d69533e8bebc9ff5ce29759e7e362129a1e6fe03b8f875dba2ffc9811cc1d9f38b926ff06d9cde64256ce46dbed220560071ec58682c37924dadcf515d62072da217f15288b09f14ce8887c64fea71e6c97af324bd83197fab8c901ba25d055ba9d87fe3886a3f6a489d505e63596f25c3d7ae69e3e8ea9264afeb5f0f987d29d0ed59e08acf5aade3d1a8b5d3acb8301302b259061aaf2bca6d23ec82eb75a946521c3daffacdcf82cecce5cda794f0cf9879994b2e06ce4ce181e1c3a25a5d35683b32cc9702c7583f392e9ec023ca2bdceb7def0be334206a0d5db9fed8cb14730b1315688e508056271313a26275d335696acdec9131042b4db135b489a3411959ac66c4213c1349191fb2acfca0ceab6cb042e20e16be8c1d64f06c6bb960e991ad6a13c6940ed076998970ee4d216ebc920450aca3cbb794629d432d6c85d27cded2536c43e2a939c4c234f80c7f4f2a4e346d09b83d1cf71cac49493614a882238396cb040415aa723874e0879c45e449b6c5583276edbb7c1d04ef780aa286929f828fcc3e582b0b3e5e86000fea54d193b8f6cab9a3a1e60becbdc9abde4e1a1acfd6efc03c18467354c4af34fc93f9f8fa4fd72377d2baf4ed4f4d94dc7c7e89cd01b11c8eaf3bf96e222e54dc6694321118348fea18058fe893e8d6ff15aac9dbd00688a010939df55850fc12d152eadbcfcf743d244fff31f8521d109c9a23f1d2b8a9c647e498e9a221b1c73479c1059c8f95fadcc684126553b7bab5658117242b2bd96a9f4d7ce0e51d4903c754946b888269c92a504707b2250f671b81ec7b7317b7c50a0d95894d578bfd73a6606ec6bb1b822e1181eaa8f401da860f208c91c9c0162a484f704534a20465e594db1c2b633649ebe363dda8eab60f92f9aee4cc5bdba0ba77530c67497afa8a3008b835d84020ef884c2c19050d3e8dd2e5389c6face10d114178cb5e311ad387cd6b7cd5cbffe9fb0bd3cef2caa2239827059deaaa3c2bd3c8955262ee56a4c13ff8a7f9851359bd72bfec36c726bf4cffb40d3efc9ef3a8fe0a0ffd7757185ab4be4ba8665192c26410aeb85802b5837a17dfdf56155c2e4de8287937dff6a118a1fe878248c1f45311c3467fdfbae9674d9ac69e63fe3918d1ea42691aa03a98054704f0452aaf8a3ab30e9ce891b9e5d085f19143054e2fa6ad6cdd0f159d9338dccbbb8142434600f225bac56247407035e0841cfc28101c232d485a0795e6a60c52ed459076a17a830467cae3762056921a2f467237f9e6625e228b1bc17eaacd4e9b41f2ff4e30e5051bd688420a7931a68728921ccc6629fe19d9d31642e3163c107ae10c248e6eea31a9aa382b0c8092b1cac42fc0fce9af12fcea5b4556b0d9fe8b7dbd72d5835773b0c9f978cbe670f8a23af9e474b237b65841ab52cd87aac62eb7a6348bc5532b89cebb1f3d86d4dcb9baba742d600195dde0f7bf30f775c82bb95105b2ddcbd2bf70c7404297d7307269e4f6e55299d633068295d522c6ca3bc4baec58ab0f488bbafc0091cc974488509d32609c347a25906304fabb6b6e7c0ed1f94854539786f64be7f14ab5221a5242f13ca725275bb0062dea00f9b26fdbfbacdb333053ab32398b5aefd5dccad8df90be72698dd33aab3587c9458bb7ed923244b5207d0eea60933fa321e85207b7665bcc1c56b67be6b02acceb81ffa7606dd5e605fe2155ee03b870c7890f62c2f1496302a4640d1d54200cca6dc6ae28d10efba2ae7c5624dd4be1765363ed2add702dff23e9c20dfe2f908536faa01e0d7afb20f06af8d80988f3e5aff983cdd264589fad295d460df21404a997896986a3a88bd4c9f5f39db19c4d7f3fb8be1d5eec8f737c6baa06e86bf15bc000a8a2b7e153d7eed6f464325deac3a2ecc41c505a22c4826af28b939d3ca4f88e6ae28ef5cc259ec16cc098e77d5e6b6eda848c69cd596bee29a205b298997fc9b4cb32eeae77513980d6443bcdda3e47ad739c5cab3bfe672f48a038fb2af3ca80a4253f957751b36a101ddd214ca129215239b0f92d14de375d04452243b21f38fdf63d82bb6310f8e8e309c7390555cd868f8a9bb25bc749d7659c0afdaef93f0bef73584d0fc40c0b09d7919b3c8e7af834cc96998d0ac149c03b78e8a28368d3da2660c3b9af1ac00f3853e65c51a7607db79421730dcebba534725ed7777d24436ec5e81e7eadaee4c766286832086e164e63a85fa5f4cea11bc4e5f3b2b96198c919f6e499e2e8bc0628364dfa03b715d876ebffad8a356be87da784574e1d1d73ce594fb0ea4a58767ae6106e317ce28262d8a0053d795d356ff32a3be182999abe10520f8d29c19f415f32d6e33aa5a962ed4fb08b11f540b2d4a9c20992214aa48e8714a250e396e5719c4c9b0f2724d42977ed49ca47f121b64006d32878f6a136cb5098519401d407b68f8ee84aecba8ed61d1e7ab35edb16061441ded8a3b8637afaf121e700009f639929888a853a2ffd7105093d18c34e346ac6ac321751019ec6c109e59c5dd60b81895721d51ed1a37bcfc6596901639a4fcb6c1dc3bab37e4733e2057c640af13f0109cf84551d8be69f111d667feaa2842e1f14ffa190657d04a401c1930172c7980a5c9d7060bfcf6c4c04686d02a3e3be07be9e9b678b5c0646d5e2eba8037988c849c126db636c8225dbf2be5263ebc097502ea19a78a99feb143471e0f577c1bf5853d0a267f3012d72aea92215db6d2854f08e8657b34763e597ad57557d6360cedfee11c6075dbb213f287d25fb71855538a27bfb210ef536942e7a7cce48c0a452a0c83433dc27534c7c65a0ea6e474ee502469e4313811b8a036c25b7781d0ee02d3d615b1b4f8af1a71b164d77fecd8d354696040eee515e43160f70b230f60780dc1f7e8a69a92bf0703401952c2e67a8198701c7e76045874387abea4f6bc8a5ba2e6beb316991632c861c46105b102bd3cef29ceddab76bcc6b19c56019e651d36da4d75b3fcb4f7f0a45f93efb2f73c33106ffb0a5cc10d474141e9b402d58daae07395a2dccc68996a5930f004596d1069af6c35e589d14da52851bd2b0349c7e67d07531c220ef32a6edd4e81f916366339a97373ab93ba5e4bb459c5885ee89c2b1335412787ae7c553e8423ac5d61d7798cae22f1357430238f7b0828c30805bc40b8c792dd3a66f0684308976886963b3c76c63db50272ea5896f17ae5b958d426ff19863414c68bb6d00774b6eb70640b419a7467c8ff462a5dc32f7a305dc3d1ffdc88082dd7f1b712067d13ef475a8aea2fc0d32c02401e4317194a83c6518d3ca0cafad828441aaf486f82925d3e95c6c96ee7c45b7c942cfff583482940b2f9a636028e6113fa05db5942150cb16cb90fa2ad60db53465f8ce388e4ea7a00a0884c6aaeebb992ff7f9ddb1f410d299d65005f26f5b71a707a4cf59a85d3907ba4157540540c7445a5cef6997fed97cef2d4a9c6d69e3000157db072ef78776767b50d059dcb866ebea4bd421bb7809985fc5a4c5fa9fb6ae39bed6ac701491e2742f8ad6a84a11006855ff18f010d57256c6dba695f2ddb181fd6267d0bbfc60ec37f2b6d1d3df6463d495ec5f97e3b8cba41e1618d9ae3092c5c76d312aa3ca12efd1f1df9b878e7d7487e0701666192a3874590288a60c2d614fa92867d8fbc7a3b0e9cf5fa2ff304741530f2cc962125e39fa33e479cae6c5b37d1048d16f24e2471593d048adc5407662208913cf0d785d309108d895b306ef21c2f9696465fe0792bd127d6c01b777301c74940d21eaaec82ec4fc0a07e09b12467a3c40c68facd28c3e65b2bfe81d4c4d46e2637c9f37d8921913b0cb2fe63f0f1f0735aff0e0db28e05531da7340fda0ed2880f682a9ce50be67486a760bd9660e6358e6c1f4c0fd79ac1cb3ddbe77ea6ac8d65806dbb9c79e6b6b345b6bd7c8c4caac1d63a0524ffe791d410e1937f95343a5c59f53cc11588609c92828ab1391f0d44d7fd931b557fd41b4d29704e9527df4a847e87844beb8c8744c57ab9717656bca7fb7b801e1ed71aa58056aa0a34934b7fa67b5f8560f6323d8c12b45cf8d38e214686b32ed953171b6f592889a494a753a5836b3dce4703203355a7284ebc02aae33e36c3ebdbd01629fde271b1b2ea78bc1b52cbef44859a76245f4d5b0e54b079265b78f63ca3bba43a46e20d76ccbf80b97aa9f3de0e4c151af90b7a8913d994e99100b4b6e627e27ec3337e02d7b8deb7990d4b3d3b9f45e8d20f16cac6e23bd0bc6d3520506501b1f960101931fda5c8e13eac305ea07cd57159feccd3928fe776d7ca113553b94eeb1b4da8dee76b1bb801ea5792e63e58a75b0426c616f5302b18e9f73452954f7679aa3848a7aacecd6e37b564196a8fbce68dc7d0a8484d93206c258266ca2e0b7903560f102af128f604c3ce7d20ee20fdeefc9d13653f028d424f1f23614fa8d886cdda0b0f4b14befbc54726ed8bab17f4261251700c1f55ef5af2c20e599be07d53bf729e008d2a0a8c9ac64ee6223893ff900ffde4ceffbac8a1ba7dfbd50a8aaa3e09557241fb4818b63d2520eea915e238989fbc9b9791bb311aad5b0279726ddd2233173a32284913d79a1fc82fed99ac695cdb017984198b7eea8b691161e33f283afaaaf15b8fd2641200daa8bb522f0c4fd1bd58dfb37749ae30040fbf09afb6a0e0ee66bc4ce5ab35f944bc914ae46ff39ac80807b0bbdbbe06db230c87b39121f6b13389109017d6b15129ae1cc84f11962f80e941878c184d42f3224af59b7f45d2b41ba846af28ac032b8c296478813206dc7d2f1a10086def993bb94741ba1ad4382d1bf2e8791d9d52c628ea4787fc663b16aaf183045b38979a953f60201d452a87170d357bf673ad7033755b8ad1b67c3ee2ac4ee35f5481ceca264b79802269820af30a031d17eec6b567e020af2916bdc075339d7d3684b33b32c8680367be601ee7744e343ca74151d1e57503ed509f6526bf53b342fe8fe13be3f612d6c5f59239f493d0e6dc9b8ae997ad10fe2726dc27c6b233250670dae38ba804d5f80ddd1f45a3749701b22c5b770c79ceb6ddee059c7a17bb0531a2ddd4dded283fcd9d8cc430876f7ee57679306bad4093919ad5c9958493bcaec7240575fd376392236897866f1c89a11efb64bf32ae106bd7822553ff54cfcb5edfbb90bec0ed3d323bd8f585e4cca7dd69c11048b5877a20fdad3fb7191afbfeb35585aa97418e93bccc1956a50fd5808497058a992261672b6cfca241cbe6a46e69d8dfc9d8b9b8b326d768ef30854ac8a44dc211420e3ab576af8e3ec957dfe2cf41f50fb6296c0959674aa1d93caa9bbaaaf16fc652d92e2a7e81b0cb7c2a36950400da508f9d9da603ca41297c95a8087eb4079691c720fefaf5ce639f7a103a65ea4a09b2907bf964c65c8e665291f0176a5319655faae8e3bd2954409cdfc6dc86ae46f779edd2727ddd4a362118503e75f27c846e903330a695696a6c6782455df99898d55a0a511e9fac62740f1be7c35c1cf404ad77474a177021b175dcc2228be24b52552c465439799084d8f2320e201f1614b5c488553bdeb7e130f6a62dba830e88570e171dc703ddac3fc697951a56550f6cf8b62e546cd35eb1d87346531ceb3e46179e93eba26dafbd38d1436cfd8c455407d45b6c2b5bc7658b0959c23d5ea8bebade5e1639be474dbcd95b032ece4d10d4303c0e9c3c8a167f65a59745028581cc5758a3937fb34662cfef81eb56dcd886525b1fdafb58a876e3e1d2ffe21eee4a9bf1ea76b1be0c6f2ff3ba93aaecd844e92014a4244b162b1fb2166d1ca57416ab08c6bf964847429631e40fa51b7d9d0c5c376d8a8ce635e7c5e866f4533abb73ca6f27a9054a5217a985164fbe9929d9934d2e5e9300c94145551b4a6dd8668311589dab5cab0eca51b505dae44fbcf9d4b946d8eb3fd78cfbc662e884361f793c81fd762ed7fe3ea3350be0a5dcc6001ce85899caf70b5cb57b8a06a411f02937dde8501b1af1f9517acd4567386b30aa662e9e77cbff7a7887a80e8bdb2cb064657cc8eafce00edd696df59ed5d0a2081c54db05e8a6fff782478b8e784b8812ec7e8a0b04caafb1d4d9306623a0d60f6680b90f5b752f6e2dae87f4188d3f06572e9bdbb47835fba9d99f57ffa49cab7108dba903f5ad6cf30627565d04acc88d43102af5fb73057d80fb0588faef78f7bcf8af83b43bbdd812dd3aaa0f0d7f10ff816941eb4f520cd04cada8811632e55e5618c3e4f4fde49c419171ebb7332c1cb782d51aea7436cfdcc845ca841043d73d5cd3bc397e0c554224534447c141e090e76e01cc774c073f29a0691ebb39d332eb3b368d1f7da41012cc84abbc711650d0d5a3980fb7353ae69a54bd4d43e73365be90b5d51b7a1b8ef062fe81cda6734c85a84dfe8cb7c095f553a130e319458fc16fdbb6be2bfba257a7938f083eb4de67b4016720944cc04e4277cc9f28c0d298c939c80799a3c378e52802587a0089c38f5ce9e6df47825e7be470172659bc38da7f673256358cb6209e3d7ac891df57eed91bdaf4716a6640f4ceaddbc233ba01538daef030063108f139f5c80c64344b8395093efc9de7e0ec57c114302ec9d3f81e77c92bf9009fb240c68ae849882a877626e10437c8813ad1dbe3f7bbd9c8af15958e14f76e107ebbf6d1537fc7956687cddc3f4337a5ba5ea630aba562fdf03b1f3f1f8718c90eabcf7068166ed1b38a3969520d503856e6a93921f85ff2afb43ac7ac4252319dad68aab80aa5898d7194905b1805915f1a3ead8e0ad18df5e09b06580424b49b261f77ed5d3c92fc0d3bb09e4116df4d5ddbd73f5647a708721e05291c0ac684e825dd0f6ad1d87c8cbe88ac5017beeae88620a5683b4d83a76e013957045e69cc28143da6fdc0b09b1a7e3794fb132af15a1dd8a565f1359015c2fd50d00d55fcb4050eac5d86cd09b966658373ed6f3bbe83d8ac33ba3988c2560893caf6a7d652bc34cb4001ba8bc53d7d5c243515c6e7e10e776a80d53fc4415ea1d7080e0249639790b85d06837c7ef3e7b04fff283064e4f7ce25a617731f112648314e95eb2a91f6999065f9c30da42c91ca1e5d476865ad7389708fe704ab50fdfca6c4e98d85eff937c7fb1e7b94dcbc3da0d4eb55aa8f7f355f64196ab9a411667478784e34a9c21b5ab7d4421b3acddb3093de5fe4e2233294dd11d52f7c9b7547b1bedb9c3ab977906c8ee9ba8c72017e4d6abbd992a6b2dc1e6fbb38c5fef22e2137d9f9b2d2b52587de922101cae584dbb82741714837dc470c4f39ba808006d1e77aa0ddaf81084ad0aa812e544a863768515f977c4bbc321376da87f6e47f5937a4884ee57450b1335918a57a8a10b430526c0c7f68c729ba1310a1ee4ef9c3728b8af5ce6caa25694353ed3e5bed88f943f3dc705192807fa8050160117bf51ae8dec551a38d7805162ea10e9df85082a90ded7848f4badcc5174486c817008d62ffa6cea70c14bb1d91c1733c9fd2571584eef399fd05d17d0da39ed139017c65901c84a14cb4652cddeff97a4f3865c6f61539cffc3bbf5d9277b2e57674a519cea1cd30b83fe4c672fd99e7b0b9394bd5575dce6e7bd9181e005f7fbda5851db0472de01829a4c444e2a7ebf922a6bc060869b9460f6238eddbbb3522b0a41cdfbdcdae45ea352f5d5e7b6c5c864930b8e9ff2c87073effa8d7265d244bf027f1eba4c68b3e2bc7da6e0fe43b79efac1ed96ca48464b0d7409346b94a0c682cff5153e84308f50d79fed82d79a5cc61e13dcce5dd6248cdef29f2bd7b41baff22a4370f3c236826e2c6e8880dbbfa8eee2f57654ca4fe0d02a96537ef57310eebdd6aab5c718eea39bdb1c2395937314b27bbbfe7b3de11452953b8d64bb2a218c84f08b50e2f84b4c7dd107b0311005b4a30c30026d99281c7708afb262adb82696377e78fedc2ea787785989c2c84ab9c009444d1cfebf717447b3ef206639f9f58058c8ecfc89e92f78a92b991d023e494a9753503c40639b180bcb0adbfabf08ce29ab4f2f8dbf7e8f6b17ae375dc84142094e06a945eb20764b64216ba74ecf82c4f2a4dddeaeebd7789b7a67229724ed8004a08a1e8138cab0abbad6c0a60a373f6cda3a14510b668abdb6052aa0a073652adde14c7b5bd09752651b185e5cd67784308b3d5eda2ac3b2bb79e2dec97125cbf31006422ab2014c2aa157559d3489fc1c7359876f9e27e88c1fcdf294dcb1c699bfb751516b15dd4dd179bee4e85aae1f87dd201e4c1d9bc945000eb8c6fe5d11a37d0d1cc39e3df2504d73f9561161bbe2319d538ff2010982a5334b6e86cf8ae1ac619f9589c83d44f89b274c97ad046132d7b9af5604632878c6c10dc6036da04936a6b969bce6306fa5b4791ef3782db02c6812dc8327c94d6717e4be4957ed90b1c98bf38b465100886b64975b0fc8f1682d657e34063688234ac97423ee996f4a5f0a82be566bca5dfb153af0b5432d7f3c80180529b6a3f37b6d7122c5d208ab267994603989404922fa02beac7a0f15c639e81703bfac89551242d4f7313363e1b64a042f43a9abded62e0a71303add488e154bd6bdc46f8427f8be43cef96a3ecaec511ca5a3ab20bcc2962a9dc2c1a24f2551313ca1766eb4a86db54f1a75c3ae6328011c9c0bb61c04f7ccaaafde2c048459e8ef0d7474e2ec8c3a6388119e15be4d034258506afffff35e407e4c6cbe04494a1564515e4c6117abfeea9f86a1aeafeed16e37955c03011a549fba217d588294c81a6acaf027921bc71a121f2009344d85cb7d914923c05321f8d9c112973ee7f1333abac664598a93a77e77664a1978222df6d588b59663cb6097a0aac0753cbdc95c96fcc1fc39765483a2c10fe7448aa8efaa72d651f6ea252659c1305723868ada43dbebab4aef9777835f9aee2f2725ecb5efe4da81ff87da3ccd2d52429538c8242013b364eb1b6f40af515b26badea6d56b02fcca823ad4d2e25faee10b27351e626f0786f93e0c027c3fd35123e46a083d9734af68e878b25851b400e0c169fdbeb7e344b39422eb6f90a7876f99b956f7cf9da429adbe42cdf565b7d90576d69fa87419ab622972c019953d253641fc8b18dfa112994628f81dc7e618041036dc85958054247e8600cd142686462349dfa732607932476c6003b679c864c240e5919c094207772b78493cd63c298bf5b5f17929a0ef46a667c253b84add6a19eb9637a1c56f4573ec492e17b89294e1773262a488bea6b219dafc6f58be0829206158ab7773a80376301bc5470a827b4be99850b17ffcbfd7b0d1f14268db21574331be695c6f8edf85d15de96b43467a5a10a5bd863dbd440bcf29c7d2d0d739914110d22acce70870dea094654c3ae40b5402551db972d0987650a6044448402572ebcc0f76a4f6413ee3c2fcbafa8447edea18ffe2cfdd6807f9869c0b6b60dc41b769f19b6989ea9cf8dd08ce18b39ed7336fdfed37c86d467e774cd8a62816026c99eca658538026d43db3abdfce63051f01df35d7fa00d70fc959e30298392381bccecc40a5bde7425eff77628b2cf4913c197b4be45e23e2e01eed6f902e91a87e9a7280b881be61003ebbc6d95651dad81aec28d026d5420b878bc230e31fe966065fc0cd4ddab0fd981805c47faeb25c61002697dcdd935297c838bdc707ea02fcbcf233c6cce6ac88549a310a4679e7e522f8a56a0f6fdae210a5fe507281dc1cee3f6e382ae5da5fabe2a59ecfca0b8c2c2b129a447445137298297816d878392dcb1a10ba7084c0771985a764f35db5ae7d539d19843a682926703ce5b378d80079cf61378faf22293752d474e774af0d8cbf8734693431821a5a1cc6bb91b47d21dd60a1acfd528a27a597cab6803f6bd414d01d32655404bfe09f63c6803d59d8cce81bead1ee57124ea89fab451e615d39d4a8bd9cccf28514cc07864513cc3476f75f3831ea26b03783c1873f798b89d054ec3bd0251a37c4b18823f09044c3c02fbc1fd40f9be51fe5c591ec70e3e172f3caa51602ef7736df449a093ce90a7e56a5573c77ed1e2b534f64c497e9e021bb0b6dac98fcc887ec2fe72756ebd04cd6d68f0213c325ac9361b12a77a008099502e7d630a352a8f0ee5c8f52a983213e030dfb25536b3730c66bc20e57cdbcd4c8334ea8261b460805afda55a1f7e2bf14fb41c6dd003efa8008e24b431fefab05a42af30c8029d70f8683bb33e085affd96ba6172b8f98454ca8d93ec9c00b246df3094cc0cab0014afcd9235ae340a19920e36062869a55649493f66b8ec65e84cbe27cb08f3add937071c53be5cec1a51c5d8da8877f794a8451c5a59cea58e8185d9ab56a40b590a48514201ed1891e89caf34ad315bc92beee9e2c5a1352db3c0ebed7e6dcb36d9db5bc587ad74f3f8e877618616731e1f99dc36dcf73ea0757e33dbffbba3506f49187d9c5a8b44cc5dbf0ef5262704432f1e22e705cbd441339ac63c77cb59b47a9b8b5519094257586bf0dd5521142ef04a5197dc4e8189c89f9aa6398187f8e0aa06c8ee4325006633b7bc5e50065716f26beb97196e59f8d2b7f7f7854d5991423a471eadf34c8922572fd669b5b8011aff1009e64dcce25a239d679d2a513d0fbb59b6615fdb7a179e337d613342bcbb3788b25026d0707005a7be1385c49bf5484e1f9f3744f0471a117df4ed841f416d14ee57480046e277da9832971d4f8a819a314769ccc4b950293722e3529f0e7c43bbe0d895b991a4bee6cc6b499599626d35618f05bac94328c1ace53ec1f5ef950433e9b08cf333bfccb7eaa716a09c1f309513c068a5494ffb9bf13095bffe91207b1f7cda910bbe414bf540f952b56b0fb3def0e4d332d46bba908017a9524bf34aefec0c8a5cae0de692d0f517fa97952d996c89a9c08eaf174f4741e4a4295c126222770f021382682d7c8c8742fc64987b9a5ad46b6e5d863fddaf1428f88aac6fa494e52f7ae7b7dd429ff3828d2c2faf8071d27a72af1e90b138d2c2876ed5e605d3e67050243cc87aa8dc2e59c2503eccea77681e21ba2ef1722a1a6eaeace5aa3980f5a4926589ed7b796b1aecfc94b6e76c9aa478797dad3c1e6cab8836e2b5393432b95321b26501361253b15b91ea48ab67415d3e177585213a417bdb425d6e18ce75b16754bf9f308392553624cbed056f80b230a490349cc303d9e6862b1c56e11e47af9fcd1fb947d4847b81bd6c9c3d666d3bbe55d56c50304808ffebcbab83e1bb778da7a6da8420cfbde0586b6945b87d8ee541d0624b92b0d5154674e8aa14d3bf9d2d07cc3dd84bb2cd9df7b723ddb21b85cf5bc22c414e45284943755947778da3da127e665720b3089785a6370f391b0737fcc434417535ee6a3fc91c762e6aa131c213c6d6b03ff7057fa988db6887f98d5d17f69011e472baa5f3db0117e4b55a0561a9b77578a4fca408fd2628a042f68f59b06d16769d492114f641260a18c1cd7265a3caa45187dd5fe033096765cf31a07ad8de74490fb6e2b0cbe2f323c46906aa2890ad96c7691dba61a925d61be0f43da6f84aefc37f27f7c83d3777cd9b10a4c023a21223eb0674a18ee55e8c59d27fa4f2c8dc7a334067f87f741d5eee35f0650534ac6710b2d0d7e7f593e31cabfc9c8da2fdf9a89fb13078cacce4a6505d277d3a62073e0b32a8216958a3ef6212421ff033128f4a47813a60326f61f17e60b62daccd06d3af6136987236a6d2fa4d0daf407ad459584ac8dd4e88cfd90f8211ac6ab0d41c7e08fd9d3008bb46d65e063d3cee3c7b22e6eaefe2d54c7f2494e0fa679eb3cea3b580d71c3cbeff855905e19e9510728fbd63c8eb46fc8e2ddc5d7b686dca2401c79669c2f76bb2565d3b41d9f1d19223e2559b2fe5e865ca506f3bcb49b02fa6997fbb817043077b92b3e97cd76c463c877624da9b35956bc5b467ba49775279c85af7742fcd1b565de3cbf4335f8c9ef4221d2985bf67c5f771d1eb05f7c42d299d8d643d5bff95c060bacda1f27455ccf3ca2891b65412e92070f1599c118a0184afcb28f2361ef8a7ed8e0dbca4e0bdc66e8097988a252ddcde19aec599fe2eb6d5ec17363bc296308322ed3cd7b20081d34e26ab6e4d195cd8e06c7d108c3ae13bf658abf9cfb011f9cdcbaf590030fec716a0881406fdf4c2ef8536fcf992255e362256516add1bb5ba2cc08ddd61b899bb7a95c97bcedf20ae20093b5d6792836074c997b3189f7f0e062c67ad93b7a08db13a8addf4191e62e0cf7aeedbc630e1500115c8d00902945613f3dfc53fb466bc928a7f1a5409e15b70be30930bb142b6f88788a72d50f39708cc006186b3d69dceb0cd30bbd4cfaa8bdf67c5dc94a114c89e34b33d5b7a0fcba515be70fe5fdaf8160e10e294732ace085f60ea2d312c3d7dd547897d753ff2c44cecfef9c36ae48bf35cb50412dc17397fe90813d087493f78938df117fbb782fb0d8f8e5ffb0512009e2e02e2fec0c5351c6ba1ac05596f38973757f4de7cccece696ab970aae61b7aa6e108cc750d4aa7ec176f91f9e8e1a471734053099a5ff75cabf55b89a63a1de02d43a5716e2c7668af5b1e7a590b6dad36f45638aa215b4e741945820b71cba5b983b54363e8e29f2c66ee3115fb29868d6d8cf936c51d28829fb1a382e01dbe6cb2ec6e98cbd6e20534a442a570ca79097c44d7742a5916f758c599c501277d17ec817dd44cae2b44cd52217c835aa4fc737c30074b18db5a66060bad841c233e72060d83024c182241bb6f378fd3cb4df63e2bde9f2942e4073c0a934c2ea48e194551cf2ccf04f91b6b69a1e4a8bc839e599619a4168134d7f7f8906e994626a368c297c3ead7910f65fffe8a4992497bbf900149f7bbcdbebb69ba5e1007a25cde1f996a1f5e55e10c122f69303bd9dd28e8dfa5492cd79c873389d2f449cd666390e5b543c9600695039dcc43a58521a77af816350b4bed9e9382b0141f2e877e814bcc01085bce4f2602407918ba32fb067f33f1bc5c3b54bccc15145d0ea8b7757fb82bd351e4ee95bca169740e09462b12de3e392a3f0d9bf88dc7b0c0d86989032e01482f4c95521be369a8a3d7a2baf2028b4570259fb23d9de98d6a8717445ca8ce5bfd25b4bb8669b4a035316a7cf537a1965834470e0c3aa6c6eb5e2b23f04c3d14c8f7a99be19a5d4fc9c8ebdba5fd4c69c51ecf2398909466251e6dc4f74a982ecc6b4c530a5eaf696fa6f74c7720e08e397d9d683216e4e713f83fd118009722a5665e584c913df2b30b74630cd7ce05508627938b5f749c966caa108e555c41de37749eebc83d7986769453a46deeed45834957b2644651a4f779a043301ed82533d2eaca4d30f9eabbc8209c79a700fc0f4ca998412fbe6a820217a4c24171c5150e199201d0af06cd089ebcd51fede7ee9f07097b57b88c3f84216e9748caecd890fd3bf14779cfef5e476e9b8db2e53b7fbcc5a56e09d171eb3a1158c94c079052d2387f48a131989f4fc42caf410032e92ad7a0654fbbe7b6600af7c86704e3629236f36157e595898711243e2ead8249e18dba2fcbdf6399be7edb9065b050be15ce41ee507bf9d6d1a25728fd620676c9613860ddaa0be2db6d44dab8b9f2201884817456d2e87a30d5d565b6baab02db4ed0a8e54c43d5db5c15f80e0de104af86ed89669ef4ea8c6300dcf254dbaeaf1e8de7d5d0bda61eae30a271ec9b268a120655a9c2de430dd2891438d62563d51b62441aa4355768bbe84882f2c93d4a899d429197a235d3962c81008459d6052bd667ec3df50371da99357b1155f665a0bed731e489ffaf510e31f08d7296a8d9959d874751e7a375155daf6586a98781b8eff5d71f82780f709fbdaff65be3d986e2d303e20fdf23455b62a0d44a34d60eb81d9b0c6da69f25cb4f124e711063c36470199b9930b27f3b80b0d5be896e796d19426110ad36d413ee6b5da89ebbd9223a288cfafd4d119d60a78b25c60b25b8046d6567f43ea000fdda182cd0685ba415b31d96a382d45d73c31a6e52934e8e5be2827904d80b72923dfc11ab2b20a9d9e5e80701b0cd974a760bfd93cd748e5f46a4a42585692e611e8b8af0b97a93fb7fed16caa91c7d3eeef9817ec7632f7864a7a9c7d2d5e145338721b7c3bf9967aa2fedf47b387a14d0ed46495e31c43065daa2580d4654d99d09e4790d8d9f3a300ab790bbe5b480fb01c079f622dd1909ce0d478b1a099c1b7624ddf5dbce06574d05d06d2e7f5780b3ec9582cf11e17e29df3043f31b81c743167e4ed8437c87a2df5c962186e2b1c47de9beee7a0286fd6b4698a33aa4f96ba91ad5e3d219d35462b01b758e48c21bf544147defa49687a8259b5db58d42ce6adffbb976932ecf43b466b1955b71dea0b0b4d18f9a6548e43c574e470a44de13519c340d067878a72c1eea619bd571d5d67094c9469a0d31c6a924dcd01923ad78c6702427e167f7c870550b0d2db23eb8bf66b8a1e1c016e9a6d6a0ba1970e84c54fb623c74ab2312046dcf211f7b249c0864156577d8b0d17754022b47e44cda556081956fa3bf4189c523518c0ee6e559dd78f28d9fd04acb03517746bda975c0a09f1faa0cc0908c90f07b68bfe20b314b5ff3a2ee24faa390f2ad209427ff92d90a214da9d90f0df2c904474b1d11837e7eee4db395f46bc3f12ea03cd7683376f8241e9f2f188c635c5f9da329a2b47dc7d2824866359fc8527a88c297c54d1731d8c3529f47fba2febc1e1ce482ff90d0c83b2609f014edb8fd7d8ee6c455b3a6077c658ce7ecaef25baeec6b2d4f67bfa3011a444241bb2cc75a03951c567d0f637cd84df505ac10a652f36bcdb59f652e831249ee1628441baa258ad4f3b270e7c195ceb4ba25c71171106c86334381e14e6f687a233b28db91f89acd55356e15da389fecd2c2dfde8c8f281a90bd27249684c788435b0d3ed5cc33696deadbc8003955c685ae818a9ca9f341d57e48606d4d79a8f21864736219743913c9960e3f7521919dd735ef654bc1d3104aa4ecba8c7c050449d9e113d18fc3a8651eea5e3e53fc73f1ca59be43772fbf3d271424b4e272701df3af000db7d530660c8dc4c4ea90f5b1b30c3bd8604cc79aea18083ba56d44d232b7cbf0051d0baf0108d5c8be452df6eb76566f6be21de259a57fc1f9ca231ef5a9e5354e394d6f4af1a624bd2ded1fe44982b126400df865759c88fdfc44c838bd99a769a4f3f150bc34e2cd600071420019a1747832d1e4b6fdae0d8684f3af04cf51a4f311075d93a398cbfc7ad1e41c9087beeadeca198d88a08e5527e378851c953435d1944bd28dbe9cb3ec3cc07d50a7cd2e7356ca6f91403fec036658f2efeeee5df5b218d0113d564f59d702decfcc9a94494858aa6184c97c061c3a0d283e2f4b28d4d77be636f7bb961b72dbe7d38f6b68a7f1e791be76019030664d8c7c8d0d59aad6800727ca3848caf9f5df183c38e0c1fc45205f8326db183e05e426d13c9219d6177880250be6e1f39e2fe25ca3202d72461a2eba3331574cf66ea68bbccf490a2cf157bd31fa92b765e0f3a68d6c91276dc21300bc66c7e8777bece7e189989daf92a9305b9b64d1f3bd471220bb2500c3d987df2c607985b473fe816e6cc55c15efe7bb0ce5f9a2758c0199f70800c47d57dae37cecd328704f201978dfba4c7716acb278e46589d078a2d4d72ee791f942e286169b8bb01a5df472024c8e9c6216eecaadb5de6a614ad7c29f6270fe4336bd3e62d5469d35415b284058b0cdbd9aa1f75d36cf2c58de7de531c4cdfea3fd7a471d1435ac5b32401ab71ceedcf1fe50b9def8fffdaf6bd7866b3f2c4442b7ab553fabb038714a1cac5eecfb8cc608ade2527b53ca3dcf60fc1d1a15cbb2941ebbac006f0a258a595af710106272826fce3c422abaa801c703a1856cfa39b7d3160a701cddc554e07fe658bcd87cfec401727ed94ec79fedee97e016d50a46041b5289dcad2ea3d1f9e8fc729ccb231d1dc1283539cb331a1fa3008172bf283fad2d36249fc0917840b68c4e94b15ef79dac82266d0288a8ebbe8c37ac2d6634baa5ae7d85f0b05e07409c5f36f3146a1c5925fd80919a5b65c71fe1b548cdfa939e15b869a86334d5ff2c077c25ef7c6a713a1f8d13662150d707a2f9dedbc1bc953ff7a12d054d29aece0f1e2d5e794023fa35ee87e62576a5a6b45fcf321cf6e88aaea6ef51cef992a04fd075da27f357df641bbfb8eae748cfbc32d071b435e764452afbec5387e3e3df5f812d6f6c62d7c2024b691b678c4c6312d891a00c4db4b067cca8b066ce6546aa9a1d325736aeeb4a2795969a1e75c50051072e02f4151118a55302ef7c94162e05c124422a8583d90df9a2324d6c306996edce8cf677b622c9e79d0ba2cb56b9534ab7528959811054a4bb93842f31baf04f2b0fdd5044c6c1eae356e4a9180ededdd3b715ee2896a14269a4ff157c1cacdb65be063b85143081eba08896db801c98a7578573e35f3442c06388b52ed9a4d0b2025607947d08899cac6ed12cbd994b8ef32db096073771f52281fb8850ac83a611023bebfa158f4f0214a006344361186481e70ea538f073cdad2515a3b2a6f5769ac0fca6f0889f00d66e93f77d164d34195f86e99fbae4f2dc459eff5a83a4802378a01df4ab4f20c053429a11922728b83f9b839fd245b0102031858600f4fdf8261eb263557c3ec037bb0d7c4e1cc70421e8b396d3bf33aa5f160cc2fc6b53df55aa5b511561d3ff50dc40ac6dd7e70d1e6b54cf50b08247fbe4a94a41bddfd934de42ae91c07df926d11e8b972448c4b267ef28a70899a8674546f042fb53150aa424457153f1513d137d8e6a37b76ef85534842871bbf2916d6287105c6d109f0de949a32b82df0a4ca7f4b9634bf82ffd60c3b35db15ee18ab16ad06c8da34374a220f682690f904246e7a16d262fa63318d7fa0324b55e1acd23f7ecc550ea7c6406d319bad954407e46c103a5c7dd5b9762ab3bd0ed150fdb8991cf60cdeffd54837093255f46b13dc0916961c084cecc60d9e3eb6ac3421f55b76c1eed70f1800baf2cc4191b405bfd9dfa30a3215b0536254a29a37d3ea271a83dd61ce3e79cfe4f0e0f2ce0ccc6d42c5956bd84eeea5bc0c1561276434f0c11f940b0d05b120088e5222a298678bb2458357bc6c7820a1c126a21d956ae0538ac2ca6171107d395862693e2c9f305683699b73b63ead96b2ffa07805e7aac0e961e98fa5a047b65fa9e674d481734ac3bbaa66c7d66a84e2a4041bcb1a8f8cc49fc62756912c1fb825f7fd4fb96cc8f18302f81052147c994cc5a2ed88515286867b034df79fcffd5654378faca46b1a13a05b53641dd0e1c2bf9bea90485e01363c77e9da05e6ca6a29f83a72128bf1416d1729dabc790adea09631094861e7ab779a9a965dca4179f1fc2c9316974b41c49f7d5f5f6026031bb1a7a975aa521cf8ec67858a2287d13015f39c1b92a3fa6c050f963c098dba97082646506e3dda85016901942c44565bad5184c6049700b634f37b08935b54d7c4f8d8736008d0cec54eb2766827ea7987bed7e041680f8bd70f22fba6ed9c30e4605de44cf8879475d72b615460ec6075e4c166697e1dab86a0b2a83568a162b7117ae96cb4c462455adc75bf25c589af21dc625de2fb5f98b5c7636b32842a07b5fbc4eac9a95057404b6ce02d82e1f308d181c6c3865985b311244577610f32671fce6627748e9a88a7abee38831ef0e0ce8759f2658e8ecf4d2b94a543162d39adbb57a3c2c1cc42a6b87585366f9b23ca11ca655d4409978ce20bf0275036afe226cf736e72f215b110fc59e5930b01904c3ab72da2786ac8a92acf127434422d9182b5f30942bb64ccdf7f90b501dba88b82a6046d66fbcb936b7d34f732dfb476f8e86927ab7f5fa37cc3dc8be3c80aea5e947dd3bed2684834791d552665b63760700c4adac55f2bc8760fa415139c5e6c0832684dcbfd865f06037a282baee2ea165314d783b26c92ed1adbb3ba85eee12adaaddb944d031aac1381a977522972869aa921c0f1258202bb5c75f155e71d4afdd65b33a59604b5db38a5075e0adad05ce8811c1359b591a1b9219df24a7259329b7c7f52ff33b1b91fca8c2afae0e8f9829148c6fba7fcb2e65cda5bd7166ef043fda26aa8b3f262caa22b1b9401261039688923e5a3a85237b8763e54ca42ef521b9de033a61178e63efad61ea0c764b3b739aa52867ebfa4e673561078b417647dc4ebc0fb67294b8d89536dfd6a5cc412468f9e186b80f4aa89a1b82947042d113ebe28fb95ebc99456afe64f93030f12b25b0193e0e08f96a161f3a89f11bc6c868bab88fc3bb1fd57dcbef22ba7568611db7821527d1ef85bef687708ff5865eddec729467533ea751aaad2fefcf8ee0e5a2e6cbbdf3569895c242fef1ea9b815423643dbb323f00b42951e3bdc54f9e634f635172cb042b2e675f06617f9d6773343f36dcaba226bde2ccaf8851fe4ebb5c21ce8dc7bdf9039c13da432ce17de6c01386d46567f59183d9fac7dea3f02442469b38ff6fd9281e188833f21e4ea790ec6938463bc8e703472b3f15bac25e130a381e124c05b4e0dc10102e5ab8f9ee31159d5e86d364a538dceb3dbdfe3f86c545f5b59c341456463bf33bace930ded9281b15eaf7245528da0c1b67ddb7e8ff7de6e1c88cfa390eb8514f3f9136fe1348bfeca06d76989b9325dfbfc445d3b98938267eb43922605bc8a48e0feb6134140635001ee20e2586fb58f286833080e980e85c21046ab89f2d3e299984bb9c62aaca31db2001ea4a91e458f2564740f0ac927c35df46d2a5ac5976df97b5eae194019f515663cbd12dbe9906b749a9289e28ac185949ca0499c803e8c4603329fa43c387bdf088344739b93c0b9c312bb52adf696723e61ba5e495b916f9a68951224003c671c2fba9edb52bf58325bc834fa70d291fe1dcbcbdbf69be7e4f0941af229276edb6b54bc29289493bc68df33f00930dfefce3edc47241282e38c7d5937eefab53af7d7da22a3826813cdb0079a3bdb33b59cf9d20bcab1fb58acf23c26aaebfb54f66b516ac55d80cebff100eaf8b227b7c586dd1da30951167adad7cadc22731bd51be8dcbc106d97b2daa54a3cc7b351849444590efd640bfde1c6b8ae3c0fabec5990d00419380ecfa85ef657e0a4230f742c311f44f75543f524e1f6ca9e103277ad626d0841413e1d32e833f9dde9079ce5ca1cebeac85aca8f8293d0b585de2eed16a6046cd27afe91778dc06a901028cde15ed0dca50f573c651a466870591bb0488f45a023389437f1fc186263c954bd1642280a8307571bd5579ad4afab3d0231c49b96249a2c10bffd9798892e030e8dbff98697d3c90d0cd02d7eff6a79238385e6f79b929739f175072333263b25f70da1c4e7027129fe7ad1777b5b16a0e16a9bcb053aaa0e3a42e8a82514a79774944d680c12550dba3e515e8ffc41f9ad07463661e3bf43af1bed86907214d9e36183718d534046cf40e922dad58addf4fd0288877b3313e2c47bc152c3f47c894d99b00b9142c36c03caa5d09f66f178d0039be67de67920cc2dc71ca8de062fe03b8db2322d5a296798202953ab271e230c82b869be83f158520318930c4b1b27e91cac2f1a5ca816eb6059c116aa37fff986122c24a81e6b6d40fe4cdb5e869c768991e7e2398c95d1d2b197c8517a1f377965648536dca9b4daca804e196b638ac7114aa63869284a5bdf95c5af953d474c49c2d2d2e26193c26f988c23d82e219d485f4836aa0fcb02de4f74a5b5d93f06aefc00028c99264f38795e99224f0af87f58ef7d991bbc6fa60a228d6efa48fecb0b89c64332c2e0c319b2399c89699455ce87acff73fa3020227ff2d5f1216b6d60ea4ce1e66c53c27e1a27af9136f37eb63fa50a8a56d822ee1edbc94a9a416bcc23a8b8966041dc664e388134bca0a5e809966e8f13e58f4bf99ea89f1a6377b13a9e77b58c1571d1a6d8808a1acb15bf1d0cf3796c7ecfc5ec50fb411a1c8ed4b8841fe812ee1497a0787dccc528397d7618de8e0cfe39dc36b7d448a8f2a8e52a2daecfca4ef87d608e2dbc042f18ab5384efad944a3806fbd3e6d1e5c48c64a1e147c2bda3a38f2b2644ea73985b82b815de17180225e8c4fd90ff8737cd0c3371f4bbab93b0f8eb027886813b88deeae38838a27438a2fc87688458745f5c784c412086226b66ae4e1ed0f2306fdff7bb4e11ae6e094275fbfd5ab53856190db25afef5a384a927db3ab05d4a0c922c953d3cacd36c26e2dee09e0f34a1f414eb6d69d27d42602cf22780aed84c819c150c258208be945a0f245a6eb6e988b297661facbad28d36b63782a6c27805a0260f01072edad5dca8e480e9aee6fd900b5928466cb04fe412f11b56eb378652999d43892b58f0c57e95422ffac1895bba2b5116de4155783dca73a8e86da810db93c84889c77c5b24114f010169e345b45164c7971a5958c582aed609668effb9e9b2f91a00204685b4abb5a6e2798132a8cbb72f8b9e8e347faaf1ad09e686398c09437accee110e043bb58704eeca33c9d67aed68614940c8c15bea1a7ecf76ed704551795dae649d27fe8721dddd286539553c37395a898fcd4d81ad80499dfcfb0e751365efb077f9a2b18b84fab07575c3ed1cacb8ec5b605228583e28eb77f324d05e370e75b43a4663032767665bcdf44b4f91fc633feeca1ed8aae4c5ca9efe1cd03126f68237a4ce6d66edba380a49fcdc6de675b86468142149b6dee98d8a7013bfb734d8920ac76cf559e41bdbd9b102aad6362186b55f134a1e67df9fa894e97d2675fd1fdadfb11dfcd8c9d1f0af735853d9cd368b84520e5f55f905ac3266533a5837af08db26992c5c3c0a8a1c404c88ce3ccc9a0af61001b9cbcfe0cdd805a08307429f674525c11a255adc224365c276fa58e6a30e7e4f1f7920ff8dea9c69daca693c30380998d7077ecce5424ef3611ae246a3395dd707f309bcd9ba0a8745b66991399f8014a8bd1974422c6332206865e7c2bc45ed68242f39c10491530c7413e490119e9840738aa362141939a2b199c83ae406274438ba903897ec0abde33b8d4ab6c10e5174785b1fea0ce629cd5c3c279d8ce24a6ee84e22aa904ba5be137bd08e3163f155cf543301d1baca3cd56b3f868dbc922f69f329da229ada22a6b0804cba081e5243783de1ac5d7a9167d0dbf03c185a5512736ed5f7e1d2463dc19bcb807344e6d2659302c618b1efc1bc4c8c509ddcd3f7b8fc0288ea8cd77357838d559cdf06c4eee36293599a576ad280b526b7373bc91d1aafb2e648c347b048ccec80247a749aa91b1133d5926e89fba4bf155fc073f45e862de9d072991e8b0157a2be2bf5246d64e4dbc4e90ead1bf5882921c06b02a169ad6b51b32087a6faf6859c8bd0f9d7aa832c71027fdfb13ab0ab3beeacfeade42cc8c1d206e331d4fb33cc498cbd96aa8124f78a2210e7a9ce1680a27415d6d133c1dcb003c2cd7616b967016fc60baf4d658991fd0a7301452a08f6f56946f42afaa8c611c3426fbba891a4d29fd16816b500ac6ae722368c687aa2cb8d3393957a91668b1ef03bc39681bbd4870d01007efc508b98af9814995ed5b70bd45f822d0eb7c91b8a69a49ba0c885f09154894e9304515fe46f0a48826956de2a30a465dc292c992819d4d5b563d100d180cf58933a705515417c436d38c2f8a1584a55c771c588a5c912e422de38139f2c5af2521008e5e540ec1ee675d2bd74aedf950039c96f4b7e8c6e30822237c5363e1511404c4f5fa64baf86478186ea7caea1081a3ce7d39cbc9c6abfefae63b4afe0e5ef082657dabb93600a412061f7665a279d551db61cf79b0dd6447024698f16433e6ad225bd36a8b1f8814a27f24c83743c7a54c5e1511d82d3eca63d231b9b04ae0b0fad7c6c91a8216e3a27ec004570b0b1611f5c6ad5e9f18c3044a5abfa10d4f56caeb4ba3639e5ed1961b38fab2b07042d6bc72cfebbacea20ce0756e289e8dacd71d31d4101665b82352ed3270148363767a353d5711ce03de5bc59a48c1d95eabbfc62a13ca3e7078013360bdda5f50fc83fcf1a436b3a81499f7fb782dda3ce14e5ad0bca2c98ac819b9b1116829edc6675a694f274a69b83b7f135025327585e5f9b743fa3f06a9b7383d4d5c172d7bfe62a8aaae37f6ec7a09e5b3edca3bdba96e6980e76cfadd87e8154113841cec0618c4ae95bcf90a6b7ee0d084ca904c32e7c77b991c1d7492dc876112636a2e73cf0a57d8904cc927c6c4f5e1a54880dc453d216f014bb2e74d3828b14cbc9b0c93271931f01a130d404cd8ee6807a04873db2a63c3e22f1b039a3498792cd55366206d01ddac0790faf54e6ec745d0ceb0ee2f6feb94aef00476b634deacadb78d3c27eec4c91afe59f56f151b088faa33e7017fd6d6116d84e4c067075f4711d6b85cd2146af1dcaa56b4c6599a8db6b0d301fc8b30e4de08e20ce019d0f2012553519020067ac47f0ca043eb23b0a4bce39c0a4a1e9ad6b15a1ad503df5c4c9ef3c4a0d2f3e434c4fd488521415955cbe65ec41dbfe91035df1663c131465502005412b6b68fb8dea8a28eeffdff54821d589ef2f4f6bde351494b373edc82a9e825249845122748c1226a6679317f1046b3747904f6f4625723f9955966b1b07a9d47ab9180c2edf3656308202ad03244f21797167113b9a560c95bc39b926b4f2baeed90fb6e165e4503d974ed776dc6be5ae88744dd73571ef8f21939d705adb424c2f3d391c8faf31386e701c2014ef8736e547c246ed5777df8b7662cd7b64b048b1dc0ceef84ce80d00b3ade432cd7767d4249c53fa00a561ac47de1f8c941a886adb185de216195e4f37fe3b0f3ea373a6444fd76649540b7280f2de79f2471b275c9816d18b8db7946fa9fec63b9c965f5322987e7134ab3d2f5a5cf90c9b2c7d37cc8aa5cd34c23ea3a9bb0304cd549df2885d9a9c50e31076c8a68bf30eae00767ddcb222b478a06fde0d179dbcbc7b364e458653289bd2095721bbbd431afbd74f4ef37587d38942e3abb04c63dc12278fa33c02586c09b3442a71029b9a504de4171dd2b18771e0352cad1d8fdc384285f7cd79d1cb3ad1036b99606424547fcbcc2eeefdba48e1acb7a15e587491f820bf156ca4f173d598ab80f8195f2c4848bf059ccecf8b2f3e245623a6a6972d74334bf356c15fc448437eeeac651335e208b4597faaa58c153254c3c2fb3ab9ec37940bce34b3b9978080ece1b42b0ac82297c15412450afbe40f5900a9ddea5e068012c60ba86097a2059fbdd8dc3e0238a317fd0fd6910934f2446d58fd00e061b64fdbc1b37b853de43901abaa7a759bf2c2a06beb5cb589bca7988294b0705a3768220da761ba2407eeb634421db50b6cca82ac067c22ce50e9668c4ea277eb3ee95067e87ae733ea77ce8407bba5ae3d5f313cd754cbf5e637f61afdf30bff3ec475638ac4a5913692c90dc899efeefd52468fbb1b774e1efd924f59b40fa069cc41d294515445567f785c553341a57e9ab775095d80042671bcddff681a65f438e0f6f5c7463a3884c639b4b76137c2d1b7f4647a6b9a6d08392dc38a335e95275f4e37de430ac76b96893c8713970db5264c3726cd4cebff3afae2055d0fb916a8ab3fe65329c6ffae787ebbc64ac5a791092ae7809c0bd3942575baed41986b08aa223edf4ce293b7cb019d1bea9e2fc44a649a2f79cac9fda64ffebbb6a3ee49b83bde1c28c37a4461fc2b35b8b376e8912aef25c64b6766d30f191803b34a5b3e99ced0d7d590f338ed98db452cca37cd6be87a3386f95c696fc896220391889f0aac5a9758af9891a1cb6e45901e3b74b85e86a5380d8215f4bbab8758b5431bfa2b1499e93b7af089dea8fa40879bdc1a7ca7a46ff70c612a1814b587107dce998eff1b7c979d236da030f047c082284a425b8f554e603c09f610aa3edd8b57d131c61820ae23917714fcdc6ea78b70bb03a388e56dae97cfe371ab28bca6dec70107207a6bb5655df082e388be420b27e7ba5c5ef3adbba95f6f336d32ec84dcfef44322400074c61fc194f0aa3614326a20d6ff435e54b05e55121a26fb7b5dc0452762a342d7823f096181b898940edbe83cb205dc5f5fcafd0940661b4854ef6f8bf38de8aa1724a760be536def0ede67fab4a3457377ff1a6e6820f6ee4bca39f871f937690b53529e6b8f4c735beb259b56cdaf07584e52939169de140ca197562b6b0dc3f988704d9aa2b23333cc26a905f529c1457a26170fbaa94ae25bda98dc66a802df3028960b65e08b63238018bfd4d2e1bb3db24a826d180e39f12dcab0f5874b3bf042e1d8d74bedebe23f40fce3fc5adcc4324a9e44ce3eeaf1671f8a235749a61ce0cd839aa0db15d0a299c7e3622e4e2f628b92e3da09f1fc25e33583e91f2c40f73aeb745038a30b9bbf8c566c115e13a2ecc551d28ddd483c57ada847ae549baa0e26d0b33f1781a6688d03828401f7f58e037b75b9b21e74e5eeaecb76069f69a5ef3abad98875f554a27672d070dacd045ab1ea26a55d9a394cb04dbe8e73e31225e72a20df01e16a147de69b68aba09fb42786f587f5dd1e434f60b4f871c99ecd2b753cd38eb17be7ace50ac8d056e6a57622e4926d7e3a18329db685a861274c0011ff945db56ae5da6a9a2ca0847ef118092e935fcafd73800101895ae953a2866fd27901a7b015a2082a61e9741223ef6aec86f66d6933675a5d217fc7c0217d7bebafe3637512e39de5f16a03fee6be68fe1876117c7799c1a34b418f8f82cca9d989bdf2b9d9411a01fb5a47cce8aeabb971b54766bfca291e917ed2041afe99d89820da4c4ea1527854e00dd0b2cb8de5569accdd8233fb20254ac41dd7c0468576eec68299b1e544919824616985d2c2a3a5132a5312c06a9d6aab47be65c6d8d0e082ed035d30bce41474884330ef21b86726c40228e11c91d924a3d8629b8a05013b8ba85b5207e559ea245284e3c99b05d3a3b439725f5247367deed2943c5c3016289ba142e74d5e35d37d1da2b139b92a94fd900e02a79530e8eff23e12b9a31becb7e9f3365b904d22a3fc08ce445150297378c5abdc5a629ea1a6e395735f694f573489dd0e51d0de5b046a760eae96311dc4166cd5619a98fff31a0dd8c0baee8e449a22ba742a7f537ea3a1d447efbb3f48ffbeb1297a02ca83eb9ebbf83efa7c2088966ec392fafb95c87dd4a3a80ddd5d15568d639876dc247bed7588bf385994e1008f7ad49417db5924bce27c212061b5385c7873ac42494f0585c816d9abaed70695c9e968d3c30d6dec35f08999353e0d5601340279871dc41a65f68b1742c27b445566bc1d2429215a62ffd0d9bd5d9d854d3f8cea192c19d5ddfd9f9967b48df1b7b1657abc6711c4411eaf7d636de702de9994895d42c1ec05211a00f8204033fb11cfd6ab74d0614186b33195de4e16ec19b45255296038845e049b158fe657238660c6f4f21325e4d4378c43b7bd03e069efa527bc197c55c66cdb9f5e9135a2705a1fff15fe253efab8dd621ec984dada81a49e880ca049d0cea7bf9c9e7ce2116b271acad1d87a77ef406bf82a092d07402da6ff4f928202e1aa5fe8e086bed2885ef36cd33955ed4045dc9322addd44bca4d33558cbfae700c7af660eba085fdb7d1f165832a1fa6487b6658e7528e89671db33e1a5fa56b725a2c769f80490bd6f976f4518c46a576dfdd5d0c9fa55a4f817d7c3fda3070f106e5ad746eb2622dd361e844f36b4f1033c1cd25377e6d2ef074256d3687ab7d91032d0c36a57e56b3cba26c306c7c5adfe2bb1667597fa11cbdc3903922e2eaec659e5462022d5f0ce574722562b14ec56b1f5ccff8e0099aae5b87cbb2868fc9219c584237f7aa7739fdd8ada6ff70b581d5567d36df8668f9115c353c9b592be4af45f7c58edf898760f935ee81eeb9dc25c55e5712d7287bc6cf01ff3da3953bcad22a6543d7a0e38be6f3dbcb258c3019379da683ddb442a0ee3b48195c3a0a799ba13713992877c524dea443bd0eb85e10a8e72af0f9d566cb800100c0eb9344fb3a76ca0a51c7308ce6bbca56d39915a8d8e93b07e0cd6053bc20edf72f50ed2983b0204c0cac93e07d83bc0025859abfc9f17e0b02e46ea720d2bd67570097e9f1bf3e86ef0258a45e109c727f373cd2a35c4550747cebc1ac904644c87d312eb89e1edebd22c8f554639ddf93d53c955fdda4b01bb2f565532357a045ebdd19238fb02c2191ce50d5c978afb6ad29bbf53ec16ab966668a257a567a65d8cdf8cd173fcd051f2825c8fea983434d290a3cc7955c405dac5ba9c34bbaaaf5f5cff71cf09f26a277928da80ea3f57e5a43cae68813edb1c2eaf39af6482c2a4e31129fddb8638f5f9ee500e246f140dc0b073444df00d3ec25eb8148ebcc91b663e7d4184ecf32ff22097db438db285db9c4a5177bd36a9821c7a2ee78a3dec8f4ce6f05522b8aeb4ec68448012f9a264ae966efcfd1497782533765d0258c92c9750fa54f405447a4d118607cdb5bc6e2e6dc9d4a2090e6d5b6a4c7a7b98263cf79c41fb9f4146b8f0f3dd7a1b392b86a31a5fa4719b724f92fa7ee1e2427ca7b41fca5e3932a88fbf03f83ed7d95336b79b4f09b4f4a7ada0941faa9fdd9bcc2821b1020e84a1d6a04dadfbf56ec5945c230072e262c0df4d3baa8bf2b3144e5360f8dce149e77e566c12e5bad66463cd990da525d83dc92ac67b195653a8db7d8a205b2a74745a2f14d6a70972a99b53180f65056ce2515c6198867511cfe42fc6936f5a5de280a489ef120ea7e974fd6d28da3dd710f8600cc2abc4854c671f2ce0f1e94051d7df259dd8f45db7374a9c6cab80f8bc1ee51bdf49a108d44b8048c2db01bde07c97d6b200e3834c70965c10f2d951ecf8cbb4b0c22a3abd02109bff2c9e59b81da09d38e6b28907528e966c708c88c634ad54d9c1aa7fc8527f1a118085fc9f6e161059da3ee4f75d35e9d0b67be735c8294a33907e7df38b68ad9d99ad72285306d89fc62a8d7a9e22292620a6dd1781a43b770bee9f5d90d4b1c47c83ea6370043488682f83e60969dc60d0c37bfd3a1d9c327c42953c656d7738ce147a2e2e45755b00e34449de43bcc31edbf87bdc273b0ec4bcd2e03de1c32890479806695a805f8ddc5833080737f2157e2e0d7e3ab7649ebf0dca32a54dfd8024a27556e74f55f1d7c694e603f2d2f36f1a805cd80329ed9fc0cb163b43e0a6b758085e48704795329da9fd0a4242d3a45ff97871e71c4c12ac411c5ac518d2315dd7e86284a869b16df66af3b194e9e8c48308297f57641a53543cde683520c5b99f698fc1c15b02cb542c197fe90100b2301517ba1bbab57d4d922eb406ca2d596b1fd671719ad4d10f8c131f4d20b9b7c8f203dcfeee38b4fc1cdfa669c6f78ec95485713944b49b1044fdb5ab7645050c690efc5eb27bc72b98ae2fe20b598a971d7eb39d580fcb1a2a889f93151df382b5278729da7c4b2360a5b2057be7e658d572bcd206eb051977bee9c702df7bdec6d2bbf15d1d153f91068ab5bb881f20e0b826bcb3d97479fbc3d7a29fe5bbe8531e2d572eeec192d5f8822997b91407703d1f3b51b3439ad2215f4889bb7405b06344bc22d22e9e92485bca98b18a3751a3e9cce06a25466727aca85c388e427feebb4c77620012696949dcfff6a883fe8d58793b1dce40dbb39c5208d092f8ab53235495991da438e976f94bae7b8e80a45711791e78e3234b4316968a2efb3fe85ee41f4531f419db7e5cee4f7384d9e463bd905c5fc96db26677962db559037b25cc7e252a80005df2fae975e463ff760edc0ce7458c996f01f0975b9caf022e84dd616ebca8f63ed56f6c2287d5a64c7e30ecccef90e36fc20254d1fe045f0f5984f690ddc525ff22b6a937f6946081eb600acba5e308ca8b1d7c73193f09dbd8acc9d54a4b1cc243b384d83369cb9c24c5a976b6247b08f44b5093cf204b2109fa8f5101fd03ab9b91ce1021addc8e0b85f8a8f28475a8c6b969ab26db3fe8484c4e2dc533bafbfeea26730a68817c1407abf12ed20483810563d9c92d9ec0c5979c0f9e31fcb034c3c65117f61939caae05c0c49354a5d762488484177630020bfdb1568619e37a52c0d6db4092974bebefc21037d3b52f8df9f2cb16c44858858152fc83de0f00a07d87c9871894c795eab9f44bff63238ae71034fafb34725d39bf65c3a8966bec87aeb9b8b4b504a0039255d1ef88023cd842f840ed95cf77212ea6b8d71b55ece1bd675842eddd1221339b91e98e4fc499f8760ba38344ad90f19b570b3dc8d27efbf4fa8ea5be5c3dd3358f936e3fb6cf9bb19b212478815a5e64c8e2fbc72ba0b0634c9fae2af06efe13819c103f194497cd6523df672922e6e22b2d89c68624a41da95c2c3632d5c32a5fe32a6d3b667595b03759e0e1977d3e70bea62df110df6e462db70bb9c4a0f4fe74c01a54e17ff8c5e48a07969ae363355aaad840df9905eb386b67daccd4edbff0434ef674dd88b3af7ad3d577437fc16648992e5bb878375cb91c8a70c2174826fc445379e6fa9a2b5b911cc4f986055ab1b5401869be7e0c6b9088ace17750feb2e94cb94ba89272105f6785f8afb112396385ca54b32eae703ce1a492958100e761588cb61216aa6ab21baa64f5598fb3511d0c4997c81fc02db913d0006008b083305abc580675b5d13d068c97aab5ee1e9659718f697bbf866d535ac848fb475858f25ac23a759657f7504098ac1b35e1144f0023e35076fc011e75027e91b09f6d61b639a13e97b56ddcf8401a0592a15070a2be63da0558df5bbb4843843f4c4b2e7ccbee5d21ade801da99c306a3da5c053332afedb6f9e19bdd360ab3f205fc28232ae05425d8487ce6f2020220fe43d6f231e7ab424fb80e59eeae114ea47c353a2e0aae1f21ce2a2c60416ae6f271cfefd5e331d961911f5695c4712db84ebc1b4e3a8ab1482ef6b2388b06418deed863191ccbcf481b04e7d4f1786403dbaaa62b67498c61fbd1519734a1591c686a905d1e69ceb2d1ddcf585d563ffda32d1106313102525a1453da8d573ee10da603e69861ca609c46db512a09f74f488e8445f2322858099efe26a87ba88f3a04435bf2b41aa8bd627ff7044af45a55dff4f25f331782b68cb5e1293abfd0eed98e49725f78f310d24001bf694caee95f923bba758535a6714836337664bf1b44d1a0f976cb40991ad22cfcb63b9327c145f38c0ca3a6a9469696528d366ebd41d2354b173ca05f6667baee3c818377b7e3100072de63659b4f3289f55562c5067a3ee45e1cb8a1ae17f023ed67ad9a81272bb8a9f8cbe7b4ee825fe72912d5d141d964fee64250ae6d966086f9748d4f0f03478e9a918f9992c10986d36bc8cef285881cbc8cdd357c7b8dca4fee39b3e8fa2b2c6f3d4243706e9c37bb4f10d079a6ae907cf75bbae2efb3d53866fa843696644ca1aaf271facc501fa811dde8e505f3b5e179ec3930470aa86bdbebe59c028d907c8977d8b562d9eb1dfa18329f4ed658b61c7dcffb5d10355a7f104a2b8a90c2dcddb19dec7dc66b51c8324482917681a37dd78fdb0ebc89463842b4af22ea39087e036c19a9fa99e02ab82fd4c2571cda4dff891bbab5dba022f58d39e074788c961589ef3c2f149f45c0fef139bcc340d4e004b8c6a493dc0acac4957ecc60b626efaf5acb882d3432260936338d2bb3694f54a71d8ca4daf5f01759d93da849825ba7aeb33b0ffc7d93a5cc4fd3f14efb53dff0ab36c2bf975bbf007447662dd1a0ce8391409999a75a011911bfd5bf8bcb3168e1b3488dddbfd6ccf6a9e3dd8e861a6bca18f5eaa62129da624197fbaf55332434e4e61b646a363ba7080b960aac3cb904a30c9f605c8c770e3401e41193ddf39e155e27ffe0a374f7191d4de72eef25abff567e339785bb4412e0d3eeb30b231cb0e8f234558491f8678ad79ea19ee16d85ad957091b1c91a41e73198563ddb2ef219aec0e67a56dfa014b4fa51ec10bec51ad6db271f4e07e8c6c2f4b5664d59bd482a0fb69cec877799509bdfc25255a1d5682d0fa2b96759f499fd27289ba872d7a0c4c62424ed1329dc7522f712ad6cdaea925ed2defb0ae7363fec062727dfea4237b2d103b5134a0e4e61aff08524d4ff2cea826a661ecc925c4a818c6738620bf22957c2a41a8da543d80a6d61b247308e6db881b179f2a08b001802fe2822d4344a8dca23f3d1c1438fc36b064133d341866b46c76f710a1402a75003ed04006ebc4716c33ee0a89280c4cc02a193d7427e9f23faf8cbbbd585a7dc967e0123c8a9fefeb3b635f6480fee8a21bd819e82e697887c7b9231c064357756d25bf29d7db39e4cfc2bb1d0cd8259f91edaba6501372ae723454f5bc8f1cde923f06efa77bbfe86f9d7466994f6ae6083a05744fdcef8b6cdf8f13e291d5a7852ebab23105a9d80d144efa8e71989f07e913aebfeefb7c97b805e999d82a0304d82cc0f275546fc60ec97f4aedbfb8a3294d41bfcfc8ce5601d21ab770e6dc28f7ad3e709edd5e04e8f07093b1bc9cf0ffe95096691e83278f7f24c342a76e3ae95a78b44e240b6acce91769c44d5a9addac8dda301e6bbade0bf64b9377dcdf431400c4473272c27295b1f4ab149c0aca987345d809bf29624f571e4c592bc0db24533c97b4c95c63de0bb17079b06ac44039f94b2dc29bb66d80569589e72c47d91f92a2085673f762d577c0f772c4ddf2e2292bca0196cd1c346ffdcaab4ceade10d69ae18bbd27af6d128c1d22a495315b59d11945f2e17cb6de227c2cba9b4c4510e9f13d1be11875dee75eebb942a8fc789905dfab1087b479f1153048796395de3dfc3893f4c5904f5862bde9419cdb60db7c5cf5ac11bb7321037304882c1fb70d26fea1e23f72042c9fb5763db2e57f0f53d2559ac1b3278656d258cdda7a952a85c9ed5e4afe28ea4082b23a22a7502703d2952e40f41e83c8b3bcb15161a590764743b1794cc6ebeec28658d9d4ae9ad876b98af0403a752b1cf83c820b57c1facdec7ae1c37c673805a9cd8b907b910b960f41aafa8e2fd90c376145c15a09c907062bddccf909ac697a2b3eb525f0d64defcf46ef781b8abfcf325ad87221e6e67c3fa9e11f845fcf54cf779c3dd7aa1a2ffabf6c9227e81e33650ff8f421ecd2064c85ad4b9862b4e10285c66547d35cd79d0dc8b689cd3e5d2453b6350735c9cff927ebdde61e6c3b578bb3cdcd75163203e51c09ace7af32f425f6eb0d44603a3b327c9c0777c361fbfd8b931af8dcb782dae7d93be90031736dfcfad0db21d4e3202c7611513ce1b8d9d472f07e25201b0a3ecfd44d68d4e4984d71cc8a1da230cb5db11aa84774cdff2c2178559a8e9584ac9e402510e4743db8fcd180bcc2adff1fd65dbd15f181414fbb040a9605b1480e8902e1488d7ace12fce37a1a89d1d79787eb13b7bb11c79352eae1775526f90adb7ad09000abd09a87d0ec7c9cb2aa66b9d95d300291a9fabeaeaedc005d24f92f9d659fff762dd1c6e851cad8903614b0d1d6bea93d8ea08f4f62e83df6e7fa5b074c112b7fe806017bc51763154a55f57da52783fda1ced64a577e105e885070fe3be4a559b168159944569331e2943caae44adf5e4526e8f4db96373ed466e8d6300bde5bb8a3ccf3bf872364f0f6650562bd151435f95f786f8749f552aa3a9ffe6039d0da484f09c859fc8ebfc8c962736ef242c52de1d7a58e6b6723105f59442b9fd9047ff04e22ea19faf594c8242cd55ea016eba1990826c64a64f0573e4a402150cc38ae673754e6945ff92f8a687164c5c630c048be91d297619a847bfca01c7d797b1931e6d212c781c1ff4ed398bb70d9eae31517ef844a24308b6aaa3602b5ab0389245b6b837009c04ec9e91cd0197a0ed3df52b5a2f015ad36e9571ccf9bf229521520455a5cdf02b8a5b763d1cbbe709e5c4d7899f218cca2e78537606c7a3723dc5af5e68f2c3ceb15b97fdd82494b7ae68b12d25f56b44adfb4e93ceab9430709796deee8da2fed5f32075bf50249f685e56d1500501a8da7d96dd148c275f75d07801525c741da01f93cef02cdddd7058ab676cf5a0f66e105a118ed06d47ac80129c16cb3564e64a177a1c211c84d04b55c1c352943fc84aeb6f9d6f44635a866fa27db52a5ef2d280aa8470b11626376b197df5ac2819095d3d211bfae1bdc858b0642a816b17fa58d612288e0d60ec508a0174996ce77211444fab3b23f0d24582b6dd253e9947f4397c0a85564767aa94f56aef57dae2d951a1584b4098f8f07b6b275e5fe28d9453762c9ad1d97afe9cc19b9c4bd98965b5d196c7836d6e87221ab295aa0a110865fb3261d274dfee69aa23ad3f7ae7bcc6e7a24eeb8900729f173bb0cfad870bf89e6536a3cfebe2a8794d1b3bc071715c54161caa8c50de4228061ad011f0f157f206b300c682a16ab6bfabdd2906fa551e1156a78cc583fdbfe6c3859d73ba10f9a49999f2ff9da16d09afd70ffe6d111fcd1ffcda979ae5d200321b9fd2c976ad539b93192daba68acfdf6e530072f64eacaf7895a29eb535a3c6916212f2229503c307638a5eb6bf1c7bfd5ceab2ed2114971d09e5424a8edd7c3a9867506e656608826573ad70fe951e706a6abce3f3a722a3e4dded28d4b3583d0b97cef9b713888400eb34588095eec92d25524985b439f43a2a32f36011ed18a846c226cfdf220107182c585f6e049fbb80b39587de6bae5512faf790dd7919d3f8399c6a96d2e3b9bc383abe5a2b9ac96e5bbf3966eca457ee87a1f3d34ee40eac04c7ab8bd68512333c2f81d680f83cd0dec51492125daf8c00040c0252f0f25866550ab5f639ddb7b64b9668a30b094c8527881297935904f056a10cc30972c8b8bb583c80c4a30e8e06ce1cb9b95db3196bc6702eb6f39c1c709f9e96cf707cedaed8be4add67c8dbbc4330bdfb254d389aa1da50679eb6065087a30f36aca402aa5faa09b12db7e62e56b2325ed6a212c177ddf7fdafdba79a6f2f8e05f059026f8b6a696256589200301c90858ba839722fe2da0337665e139536e6579d99107e0658fc83ca3f5e39e02076a4785a8040447c3bb84c6376257b76f21c81bb61a0dc9bc79ef4cd86c502380a07a6297246e3dda28d379e6b5f9c328299fa5bb060df7854ae8bbaf7f6f8a49b89ffd129a117030aab5dfdd3f2aaa632e471f4ee8c1aad86a52d3e88ffb1fc0f1eb3738ef10666c66b079bdc3461503f691e9c7eb758dd1ce7c9e46778036c7249df091edc3d4e3ddbf1436721e272d6681dab29bab73caccddb52badd914067a69198758b0c0dd040b14521d5a9750974d8397e2f4de21c2475871f0f4976336215acb82cf3b8ab8ee3b65f130e0103f5bbb6e9f5da7e28ab18654dd1644b7ebd9103d36e1e3a27f232a328c14efac6a73d0c24af93642198648bee4c091df18ff8805008f4b9224928c5936a36c1621933110e44ef1254148dcbb18b6b0e60c144b83032afc76ba6cdb798bb4a511e2f783d24608fb8a9baa6c1d4008a3c34cf08b8ac290dc481d020ca73068d28f1a1e5dc0bf2335dce1cc15c7bfd7480664d4de55eb0096636c155de05c2ca15387a973a8eacbfa5013ed15fd53c2702785fbf049e8aab6a8e28e9fef6087e506b99837e8a874c64e5196c256a58ee1d7c3f2fcb2501e1c1f6e88293ee183e7c5e336037043c5066111a5130e251635e75ba5e8f58626cca5a97a85fe7d2bf79664fdaca79cbd032f0a0c4524d0cf38cfdb31ff77e7fe06ee80040b5803e66279b481c461bf8a8aa6c81ba7633d1f61a6f9fc2b96b2bad3557a1e184310463734d4fa4484fc9dcbc4485d050b5cb5c658c08d5d1d2c13b96572efb356df46661b4e76a03310afea069ea1888a18ce094ef0b30b8749e1b25680cc2701d80e2e5c567598657c9a049b2dfb41caa86d31c64d95682f7a33e69aed7f5434f3dd6b82a7c10d643dadf0049093f17d593751aa93925fee8b4456c99dc7250956633823ea4fe834853f160a90006cbda6ddd160205ce24ee3bdd57049f94e46b59cc0118b3c6c29a11cb1ab8d31635633771ed69a8297f95a529b247576831df17d514a752f6308232d73c7a801742fbf2eed831a754559be4430b286daf03cfc8f3ba107b0cd44999b8eb357df1042a0905e954159ec3afebc52dd901b2aa6e35e17c93ffcffda96e1fbf52324c2845c67a62ce1cc60ef83567245d65e1f60a4d99d66800f615e09bad34247cd72483dae8cbcf7b8cd1953fa9a65e9f4a7ab3a01b874a7718828e50ebeae42c660651d901a9c9038fdd770a94be46ebd8741fe7bbe77caffc25cc7f4b968d86d8c920bb6a26d81978e9999a82b9b53768160a7a02ad81c82936806040e2dec3d69dbc5d23384b387d66a179ffb5b7a6a7004dd81cb3e035cf5644ef5fb0e98f5b90aafe7eecaf6c2d177734b160050ecc323323deb7c63efb408c6998679d8b0e7353c2acf5f6d78f4116dd56b2617a12c9d9a14f24947f2168bfd3744568cc6e006f32d0ab122f92964b87d4c0ada8123af73cd147d867f159467371e3c15acd8baebaa909ad3ec72887ce4ff59b8be1fb0c03caa69fba7cd24a5560628cb217c6be2acf656461750c364c5c3904ca03bbdaa7e83e6e10aebe0ec7dded94457261803674ea530af57a512538edba40308de5fff3e2b8530fa74bddd48920f7a29dc6f6c20d8b3f5f93f27c18b9747ae2c908842b103345e03c01ee135c5ea04b070267c48c7d188c12c3fb858bb13cbd7251d537dfd0f87c037714f1e3cc8ef4f3fce7d8aa6344619c1450c956e1fcbc55d835abf2ee541450fab0fed11b01e78436bdc0b7f885707041aa675ff5653a53ea081285ac94ae190fe5cf71d8aed73a788f341e042fe6a3ba40af2d59d6bc71915a93f825c983535f18cdd73e3d6164f9e90d7d9fadc73ad1ca5374dee19ca97c58218ae855a2cbb1761845decb4ef1c2bdff8c3afc81bad8061b7e7fcc769257d4390aaa72e5c7966e82735b69b6740ddeded4f32ec80fbb3499f4fb136d5cdec536bd09a93bdb45338ebb7f9be35f02837a6efbe9c1e1769bfd113ce43abf5dc52ec5e15b3dad5d3b8646f0d911c0a0cb045e5be689ac4a02ef8f16a116c9d99165b77a3c13aed3c2a0be5c11f70885330b3eaf72fc3c803778e58d6264b7c98d4c3fc5d2acf06648342fb1231eb6fa21ff410bf0d567e58c04a6d9703843323d13f197fa46a5560ffc06db6411cd0d5d4ed19054211600556c1399cba90bebcdc7add16442eef19e6c6efd1c558a49920b3df5a9f600f56b11355ca5f407078a073b2b124a09d4401864850832c370d226528d8d89b6e9ac0b0649e56c2bab673ff074ddc906458623516ad84fc6c30f36ca46b087c26378658c02a640a519797c9bf7f0b48944c1c9070cb21fc556a3cddc5659c713c83668eb1fb50a665b7bccffb14b9c493989f15d8bad161093c968734be045f9a6cdf8c2711635d5bc4b2e8f364115511d39d1d52e57b8af3c21e2c19a357650f22b046e0c7f2be0456b1242fffa6f324470a306613071243d307c45c358dfbe94c2fbf18ddb5dcd70816bae27f2bdac85916bb71a2d415703de796c8cdf0a11220662b15ec8127da6d74ec09f78287bac44cadd1635360580f64668fe73c31882f06633bc190a0272dc24b61330974886f3e1f202a7b62fa5a930ec3552a3a4887e94923556efbbf0a16942f892a601d74e4b50fad39b5bd60baeda4ecff26a66308b64e1379c5dbf5cfdf46368eefebec71987ff7c1ca9e69538233fced601c08dce2cfd2d2b8987e8044ea15498c1d817f0e2d25d870e19a1b452a149cf3e019ca1acd6d9d9eb5c445a1caf48463c70b7248b79a0cd3f16f169981ccd8597346bf3a1d793bb034c108d09370b49e2ba68f6f30468dd0cf3298c414efdeb5d3f8c5bc74ce43bf9d7137375dcbb26f7e4acd091ae49cc40315053edd60eaaf1e4932627090c7136a8b74803284671d81d4aa00028cad14b1c53a4fb734add405c997213577d3ea6518b617abeefec3b8acd371114ea1142028249f8db8d263294bc5b55c05d47c5fac068dc03cf069c2806c46ef99837f99011bb046bcb08d27c9d38651708b1ee94ad31d3c5529b4c418650cea33adf4e0e9977828a88975dcce0e6bdd38db58e884c18d80ab60cf2f0255cdad427d1e13994ec7f255e7584c0af279d432c0625fdbaf1b6ad8fa954b97e7d4c5a2d0cc865e4eea9697b227c4d380cc34ddefd4059ba8c4eff4663cac97017e71a0ca00bbb4cc3c38a209bbe052a72027ecda3e13133c2b04295d4b0dd9e1d4170f857f8adf5b6e73c23468ec63c90b4dfd77de3a3ae15047a0c98b124f0e8952f1b35845deb4712206e3399dea79261b90f3366fdd9e5c8a490eecaa5101c0b1810b95cf89eddb9657daa55f5a64730953cfe53b0062d6442d7b556f3ee971ef96a0063496211758fe408f272fddbee2159f074c2acd111a6edae89d33d802ec82bada03cef86f143c7f0f18970a7c6601303b852e586a06bb11425b6f34f4d084da1ff84e154bddd61c7d24c4709ed434efb9b56ef3c99265882546dcdfdd35b3d894e8a39fda4857d83516bd054e35aa11be265ab21b437ea29f2a4c93064d35a365c6edaf5a76000cc2b4cddcd1769d5a6f4452131bd8ec05aab00a9844c927bc933470dc1c5975d66763942b5f9cb6932abe9fa554a010c58bf9e77de80ac66adc3a3fd9525c61ff5e23e5865d26511c956c5051ae5c8517f52fafbd098b65a61790f3c995aa863068f2a7d7ef55a33dd3faab2e689ade7be8fcd4711865c86139c903da5c6bd5b7236da92231a4f680b00d89ad59e5b795c12a12cfbf4778f0b700cd7a25debcc09e39f7b46eff801ad6195f510c466860b522bc225898b0ee56c13c8714b1590947312a3043dd2803aaf6d22c41f85e3530b80e407683c109a10d730613e131620940f751325631a7e9c22239c07a13748de54b1acc35f945d19f212385859dd9d010ee43c54273c96337e1ed829797d8c9d4d0d7857761046303bd6cd072efcd13220e4eb365403c86f73dde997a986ac07581efb08fcedc74e11ca324d4b9d91c030eec882d7c22170674fa6542274c2e49bcfd81ec6060069709c682a587d5127138066a7bd80ed6b1005064842406dc26950babfc62dce26a4e1aa42bd6e04bcfc9bfdf7cf77f3d212b575ba073617c8df9353abf0a7bfb59d9247eaf5d649eeda433aa0a2978c4368bbb6b909748c5db1d1775fa2aac9fdc88a0729a52eec31c50318b67a008540a7934f09386ee19d9b043e1bf4e6d3c2bc0927716483af297a66cefa6c8cced075608c80b16da9d0956a357280f9127d4834de0c78f76fed707fcd1cd6420373cc690ff85a0b7d63ba08aa61c3f932f231927984534190858862ca8cd5e4b70e3296f12843b8d01d3a25f919f8ef51d96b90027f1e29b8f5c8a8db37c4629ecdc4f7721f4a391b8968caf5ed7156ca13aeff77df380de370faf0a5b8b8657806b73d3b23f5234cc715495d1ac9a0cd441f9196201360be90105898d10ac5d9a3e23f2a37d2649251f7b35b57d8b1ced12e5f31318e2558aa880839427013bbb03877b89250bb7259d66020667462bc95d5661a537c781d9ae3a78149bd10dcf41d83e7b67d3b2ec6976b820cfbff0bd132059bbeca0529a154e44b678b34f6ca38a4c200a9cc7808f734b53053ca9320e2807c0c528fe12d98eecd2e0928bf9acf426fdb89aa7f3efadc0c07bc7635857680a0a8496be8a9a6fc263cfe4cbba09a66cdf326e43f62bbccd283d5ac58c63d9129cfe00258a7a0c7fb9e9e32e0edd63ea80f67de2c7c1f2e2a83a08935b9cea333d68d535207e30b234c212107c97b9c766ae6cf26147a720459d11eef36ec8a1cc63a6edff3aa0a62682d932fdcae78abb96544c15ae8cb25bbb3ef7dcbf57e5c8294fa1bc71208397e1ab791d7f66a963aea9bd9c464b039370b756a67769cee0468afb7397ad0bff0aff080743730d46b70897d13315bf7a6cf9c579e6062496e27ddc3729d2d923d88531e02352e4f54e59521023a4d565461455d3c2f37e7eb66e4d1d2b772ccdf7c2ddbe538e9cf79f49a271585c8d2bfd4c5323c70e15eb75fba619410f317e6877bcbb9738b1de91a49b5428e54c23a42652968370c0cb04d68a09b388ac78d5871c8f2e463aef159a5da6fb83ab8c799e0f62f95ca4751ca8d760f1213047570f46238e362e876d68508fc980cfaf257e74f7d750e31071ed9e69573f00836ff1fa6d8db9ef1f8ab15d7d4f31b04959ca0529139300524df93bc4dda85707ddac2a90183d210b73c551cccb2ff1db19023c134f76c08f81b148adf26bd90ede0def4aa79dc9d8d5298522a0014ffe1bcfc0bc58662fecdbb4af73fd383e760ce2ab058613e827176074fb7f1f78206eeac2ce8709832ceb83660fd674a975d0891a822719f49abfe1c48b3de0c6e208a2850f15bf3100a536ec3323986f3cb31b221a9e247c23376272c7a90fb4197c3585140d0424e32639c007a9c311d42655f78e1f8a62dd429cd47cbfa2f2251ed9903260ab3a0b981fd6677da47af76cd1e95e4f5cd00ecd9833cef0d56c8534e3c4d17175c0866cde293d8174a7bacf3ab2e2910f334fec917473682e488df37051239abb3a792ba32a1e052be55298474dcd35af12768a928d688318f6736cdaced8ef3162ca47ae6a3db5baef209791cf906a0c70ce41aa97004b1d43b81e05fbe562845c671398c7a136025d20494f8545c5f15ecb8f262ecde6171e584843eff5acae3b2a4a4c6eb1f38b63ceecf95b8f27da234ba9d6ff4091ee9901977def24545f85250efc814ac2bf54f0ffb3037b9b8d9db7885bfdf50fa030c9654c79d3f2871d444cadc270b46fc1aa2fb3c51e294470e48b096d7ea544b2aa198f69060459f6ade97e17a36a8e7ca0458e0e6a85d1f70f74d0b4ebb8c90391bcd5c84c3cfb4165378c8e50e7e58e7757c76fad0b9b6ed645c8bc4ba4a648611ec5cc13fff4900c1a91671fb5df49e6be00e438e86071c481154e2413ca0f0ede5515d16d8db5d7f1d66543fe3e323d89de98ebaf02f29d940fbda307add8f547106441c7449ed7312e444a1445418ed44fef58538f25c358be7242d9efb6761c63c122b9258fc6efad2133e82f70a30b778dc0a273529a3b4d37f6fb49e2d38ab28c0e23f2f01d0ee079da0868103f29c35c56f0081ca172f504bdccdac1a1844f11b0629dbc2f47e6a0579402b1f7c9849f480a88778a085402d60f3d0d2656d3614fc76cc1135b17c498d4b343d83b279e1ebc29726910c5c08cba0fa575d0287d23f3256106da5cc1bbd385abbb49bc17a86d327d49af3b042a3badd0e5e57e7a5c9c6320b5866801333e665426e47ce364cc6526d2b991a5cab2770d3025b51bdbaa3fae13d1dd22a1da29da2f21385f7fad1563bb9c8ced413d46e1d784530b2d5edb0ffb409918d86034ec0ad2c7abc795b15e5db5fd46393e9d634c279e5e28de337e37a559cb72c7e4b9059137a25735b95ff54b0887ddf746b76e540449db7e0d937a51a6be369b76824164502c5cdca802e6ad71a2a3f8634a82253171923e7bf7dadb886c88e8bffc7c6c0c542ecc5a5d4322d0c2c3218fd5db9b79a42ac307c4219e30baa45846c2c46cc294edf697554bbe0b77666acd56de25ffd54899683e9c0aa2cb5d83991a543b6ca60f3e986e01fd0c6f4759c8e74f405e644e288ac04f720afaf75ba5376db7af65044ff14dc00aeb89e2691416ae445ecfafae8b33c121a6cf6c89b1b2d3c2130b4409f7bcbf28f62e12670c74694981d5e7a57b9c91b03d3cb89cc5510eb60ae1147d9bed4cb136b54805540b6a1d7782e986fc17ba4b463f6d194f49a799ddbe4c6d603d0f063cfc03adb90dda63374af3bf7345302ab34af5a75ec08be8fd56f8f3c15e803855d77e906dd2e1f13782255435ea978126ee0f8beb7f3e003f05d3697e1ca968139f71cb2134e62246011fceeeee80ca4d0b3f2ccd1fed1eb3136c00ff969c23a5ae4f22760056709ff681c8b7ad609662a7108c63c94f5a5d39df460144bc6de0d4e3effb84940689763bc1bf9687301e3ac4aa9fdb01dc0c66a08e98c681149704502ee524f86d76243250f4732ed8373c617359dc11faf2b8687bedea156d9f8c3387029ae1d120ddd78daa457d513eab6dae7a88e99ebd99ea8e22ebc8ea1ebe11fa17c960e1a38f27d8e351a9652682f65f33139b7a4dbab7406c0f20925e75c87934e155e76f75bad8682ef6fe7a307ff7c4d470cc2f03e6cdb8017f344596ed8cae6681b845405cacbf6293ef364fc84ed93c0d13d0aa794937b43e66007f2d133506513e7cab58de26331f8fb09be3066a35a1bf9cfe2160864177d2487dc3221dbe8db82cbab34867b4bf134054fe4a79cb5d50b1b63daf8108cf2f4c501cd5d9a6029093c07f23d58f418e75cb212dca3a89f3a7c9dc5fafa524074812bba5ae35ca016f40397d3f5c6bd2228ea9fb7639ed0acb56e8ef5c0c65719cf7fadddd235950b4004f770b2f594d21646526188013e353c4d4485a46b586f95379b58c7bf6b4a626bd290d45208bee901af5e43b99180bb4bfe2e0b00e62710a53041e40f89490d4852ff02e90c07f6335c8bc9b5434492eb561b011d00cf4f8ad653905009f3ebce5eddc9230436a70b62c8d48c881953bf9ff4b466fd98b6bf37abf6a5ab2017a55af9198869f4f95fe5a12026c70745ddf699f54c8c757d2a86fa8722a69ea3fa0cd7c7fc4e2dfd8d35a3ef7767e2e321a893ba5bdb4c2f03f80574cb53041475c46f09a3e9685aa7477286530c865a4284989e1b4b0e2c6c37aa34adeedde1e9fc0afd3eb1dec9f0f814ae418ab10eaf17ff60824b022758be600400c816f7e8118f2230d4e798b0b2f3336f2daf1546eba860f346a3a8c05834625cb04f3817c850dcf90132284d494668a92043bad538d125d0bc1b8a2c478692ff81d1f758b7b7f45bce506fbb3099a26a075cfc6ebd2bd998ed697e86bbd91920ff177dccdf0416fb2e12773d6002b9f61cd30c8893ebcb9cba138743aa18445276858894f3275299d548dd707f6e8a876a21d3ee3e9dec3a9b477cd9296aa2fcdeabc7721fd79cde689553ad36287789e64f698b543a53b2c9418a85dabf86dc5fbc5f325c0c4cb1dd151eb3bc5ce5e78e909ff26780b98209cfaf6210b5869a711a69e292a29f1e73c898a9fbe9bc69d0de76c82860fe5ca9d040d0b937ff6e0fc471e01d0c34d312deaf6de733eb1dcdbda6f2d94ca2a3a2b764283cb88ed6a73cf9b270038f23182e6430df17e2d753ab189b8c4f4c7bf80696c6c04a9856bfecf4b3f0a599a4bf7b4e65345617bc9a266c02c904476bb80f275eac39c35177744b8b48a01e54c143150131f382dc0e3a74228f16008e3e43b9a03a067bec6a435b79c0f24e51d756f707372220e5ca4fb720d95789519faac53478b96e0194e47571655b3c25339c466cd34673d886b8ef90096219c8584c16fc14b510262ad15d0409a3629b23f5e73cde7800dc12b58b87ef778a88ad8b4caac8e818bfad49cc1a64e11b2a6d61d42302c2d014af022e7c4a7dda1e4bd75bab436e012591a8ee7fe64b28eb16329b3445fcef93d2e22efcf704aa0c1e4f095ae6128ad831dee53bfd492c24ae4ede0a6dd2f1523357162d35d3c25975637386b84336c7134a44bed958305f424fd13858e4684021d3241f9eb48bb4d7d1884c5b25cd9f90f194d803c01f139c73bf05a77a6f5c86f3ccefd43593222cce8c3aef5ed9366d28d28840374bdc6f4e867c4d8622e51de733bcfa9a0d41189997c728442afb061cef939765e644905116cae8e12393b410b46364714e15b63e141a0d98537a0b564ff081908a1d6046f5ebf1eb17e683155f1a3539516d03bb421e11172af5eb374b008be9b2650724beae279a2781faf975cbc8ef34d0ac4bb6ec94544c047fa4af9ceea73ec42ca39dfcc91780978327ed4b18b7b9fe1549d780f53c964c82893ceffd82f38f3565d57b80d9d3681f36f35c8171c603c27a61bfaebaad43eebe271d5531f9674e833a7d06d3d5cdde1c637e9cece5d47c7de3cc479277044ebe98c12b485b5cbedfb73af623c0d493fc52910a21c582e87b41b40386a0338d082c384a358ba646a2ca654d22d16d4910864a6420b7f94f2c325d903717f4edac74b76d15dbf190de03068522c827546ff974b5853252e1c0c2d22d0b8eeb1848743b25d80434ee8189a756be6bfc0d355a042ea04fb1b139d2d90785fd5679fe25407179a315e84b94d988a4032d8f528bf7f21a4db92c5293d7bb361f2f5769f34bb018b7ea66c3f4fc5c2ddc2ef6c6240b39980e8ad1150f084558f35c612a3f4aa25b253b6ed088627808caa7103bef3b139199515f02a004c9943cfe99dddeb58cdb34dbb1e0c8b9625a9f7a77056a199fce966cd37f779afe6802bad66d9893c951119485433dcff388b6e36f6c48e878fcd516db6016f128ae0f254764aa3c4bd84c5ce9b7039b4ac76ba52393f094a127c7ab9a10d600e1917336b3a744f9ded95a20b4fd4d9f272ba14402e0fc7540780377ec0c6259274801cc63440c6b383d111b1f99e196c4b63a555dd2bcdeea17c314794e3a38783acf3ee7419ac70fed2ebe33de9873834ba2d6912db1815b0164624b4a32efdb53ba072440fae2dc1ed22adec7e0ac0eeb45a0501812a3c369eafec14af09a2d4fe0736b912d0af9a0013aa6143adec40515ded74e4a1b208f795b00f87129129a24697ecba7ad3108221551a1bcb589d6059d2fcf77293cfadd5b410a84b05974ad3ab655d2db15cc825eedff8f3256f59067bb76ed154cae0387ad4a4d14c570678dc34e8a8b8840d1e90bd87233225b32f2b2e0b1a449537ec79639c4fd6961804cb540a0b661e2a30427b33555010beed75375ff577c2303bc3beb34212f07ecad397e5844289cf04e7a763f218d75c766de01c582d747ed9774eebcd41a91e2464bb0eac32e7f9423cdf1098cf674467caf61252b185ab993eb5ad1f66d155e30bc0f04f79cecd090f198a1c35871fa7109b9f7bcccf68bedc276ba24c5b39d3b5102462c3051c7e0f9b3284e27d6f4195e82448cb0a4a879cabd1341bafca3365f57c569bc6502b266105478d18247cb2b37cc2705dafac2a6764b4ac090b8401c2c8867b85dec9fcf83ef13f5498e7ebfad817bd3938fbb8b6c258133a5e62e17940e5a5e8c577bc85e5686bae366fa6d5d0ac33ec61afd6cd63bdfd7437d00877ec78c2bd0f6120545fa2634f1ef0f169b414c53e87199c5ee76dd3fa6906364f596ccc883e18bfdbde2eddacf4fe7fd87b509fb000d7b5941978ad50376497fbf56a2a5ca144a9537287282052f5c5ddd29f501e68d55923eb2f17f86498b02a3515dd0ceef68862277385efe3c6a27f7134254d133265a36aed01edf6a9e1702caedd4ecb7c393469451f2afa7a9e4801e60e00b65449576c69e5620fb589c4f758facd9148ec36ad2480975a6dbb0efa8cdc6302d029eeb0ae3661b63c61ce6fa430886917c24f49c620920f186ad8445bac176badc634bdfda0478ce0b831f751d80e1207ddf2bef2a43d245a47beb3a79ee80dd3c10867b707425ab5c2f28f95871a793ff9773dd5313a0e45a8ea803c462738dc752f16a8159902cff69ec0849950e24ce5ccd0be4f16a13cd6873cdcc376b633eb7650c75fb3dc96061ab1d109b8bee75abc233b5c8a39bf41849fc20f5041ff0a64f1423f50abd3a262f222b4ed6713f48e4a3422bd94a8f817ba75b854f21b9f7870a0a8b5088c65765facb130812b7ecd2bdc7490e6f1b454217a81e65f0932aa2cad521a16b027218f803c9f998c50eff75aeb9d860e4635a4c14c9e6b7b9bb4004368fa1ef05f0d566be4bfeb0584214d64d6d2cf71edf1178b36cc2c35226eaba043fc25e66b4a1008b38b66b9bf7527df8748e1116f3b4819091fe06b77dcbc4bc664048ab69f37638a700bbbe97f11c5b63200e67bab283703bc2973ebecf4f40c1e400d3cc9eed3ef0fbf95142fcf92a6f97544e4cf74c658b7230a237755aef8c6a1de713b47ffac4a0622bad106c24acbbcc03a8e9df2f118bafebb2d4370ec656f9a0e219b6b524c195e0e8c16459f57c6327ff33f272f6c895f63560107cd74c351e7f9e1584f81b17cf0b66e3cf62048b3d31fd6fb56d5c8a8086f960b93b9b33a538828fec5fc5cfb4058e7d70646ab73b8a82f6340f17d7c9ce22763ec8cf9b7932090e64f85a8ad81d6edd44dce2e22416115a880df9eac50536f6219da0d7c00477ed97a95a78c2dd0b4106d24109b61b3620126c12d6dbfcc1570ff35b9676e5f27f88c079ad846a1cf9fb99b4ac22909e0343a168d0363566658d415e4d714b3786736309a1938e1ceb29896c51e1958572ac4e74b3a6dec8c09477c3b1763d9cbc8ea84cb02ef65112cf90c1018858c210e3f8d57d10a28c5c7640a53e60bfff4d92d9239b586013fb335b04cab8d77d3431e913d06e197e00128fbdb34f0f4c5b13ae970660c6eb46c9c3d03b1e73596719a38e7262178bc75ce93194f3a4df79ae869ef8f7bbea2b96c432ea774957e8a8975ccd522078a1372ea1a7db24e73102f3ec5de089baf2f63259f2b6bc252b9a00696f1eb7b2d395cf4a77ddb9cd7e790cc2871ec5e27aabe5e26d2aad8755470d058b5b5f1173f3ba4bd488864452e66f67a9c564f4b3351e0cffbb3d73c26ccb15772877cced1b6a7a51ac200612ecdf8b5b4f983a24884f234b3c332980bb752c2c8c4a7d8140d660c5e94867153adab61984e0f165049cb57bbf40f7d13b1222c966027bc25e4730cb5a50fa2896a9d2c4f32cf5a6c9a4d4bc09d38fad7f8a4211f2507f18f739504245de060cb7be311ffeff46275384b0bf0b2de23ea5a7aee8d1fd163f13d556cddf075cf7ee5983536bdbdabe660e823a6fe72561299c5fd9b4b304c69caace5326ec0e0fa6cfe26b9477895453af6a6533255d2c8a05229384b1669103bc2a80be450cf2a4f18bd91b8728687f84807e590fe962b98ff1672641225834fdae43eca4ff312f67c6ef3509558a4788b645a169ec015fa459cccb15d225dfcfe04e9643f7d0edfd4867816c9de12cebb180555220b5ebcfe2dcd2f336da0d3148995aa557c8a93daddc6f045fa653f4e678287f6f627bc61fd43644f4a90a93e7e0b2752686d6c88a4f3e93d8a75103897b2089249e8732a0989075349a969dd52029567069ec5379a27deaa9c54c8df2589419b8336ab7ea2ca74cab08704ed11e9c8e9147933d87202be43676692f2be6370a54a2afd1a23c90864e2429347ee093d175e99c11aaf358362a4389301b7d38caf09b397f2a95606e07714ebd3331a686778acf804dad66e3a24b590ccd7a699a8a8731d962a96c489246ddd5ef21eb4c635c80976cc0c9486dbfb0e1d6c080724cfeca09aa1019b5ba4f0a4d0a8381a74803fe3c9006660e07643fdea63263a1b651d647d8023b6d260d58bdbb6e23062d17cb45a539767813148c01f73a817ab70123c2c8dd08fae951fdf067bdca9b6aa7a8a2db7c04de533d43d11d4543a26445b2a4eea59a4a35c59bfce08f65b580b17076a7d0f2452e60d5d84a4586cb8389b9a1917ffa488063468a85c79a825fabc01c8ca0936c4a93650eff2e28f859ea74a89035c5d0c1fbd70e328d9e82c5fd736b9036d2b3d30008773a79a48e48bac9b3f4b55aa965b299e379cb16071984eeb81a43ebbf7c6450a4e9a3c0d69702b9da30929e65e87e397e82b00f7f441137717a5bb5c2779130e516af48af6efba10ca881484b3aab10412831007c80e8e143947679b734ec264444a0db8e5f945423f4dec4a34c59ba9dc983dea2a242cb34fd715b11ddefbcac1c00c82123f0f3347525a51877fbf98332a244fb7ccba119508b529e32a855d25b5df81611e5a84fe378a0fdb4d9f156a7cea44e1524414eb0e8b1a0ad384cb265c6efeda77d2409f82024aa148fa9e2fb098e890062dca93b124161745662cb8752d6d7fc78f28bc8047444158ce40bf89a0051fa8df8fea472e4bb0cca7e64479995fd3cc99b0c14335ba019944834098cd23de52237b04fdbd56876f2bb7c713905bd811599d09d616c13893fd48c64302470bc92f0230c006d04b340c63eda5227af19371531a561d260b177a5d04b96e46ca3c19e2004f977179fb98a11db0a758910bf7f43b1b0b01efffe0f221b1866772d87175c7dc323a2657735a0a70b3b2c306eef1131ea1337ace6030424d002d9293297c7d7bc74ebc529807383000670edbb548de45272669616c4a91e1dd1c8be039b62942b4f97d98e50f6ba1b1f84b3517ca39d4fbcd989ccec16282268e560ac8b9e40b60f4507fea6ff039218f0c88fe122ace9fc4dee16cac9d847b47241d8379dd9e9b33854e1dc3b931d6a8a9906515632508a536f57fee9fcb6dbcd21a31ed499b692d05535330fc57a1df688ff5a82b356c696eac97835dcdf32c9161e8ade2af0a4c9990cb1cbb1ea8a7991f395ae68f06e50a9f5bb25cdf440e2aacd7988e4ce5d947a0b525466b12540db10b1644bb87e3fac3c7407046ed483fa285d5c196f133cfbed8487c399585928bb564f516e9dce9b525efe2b8627c6d91d9e3d7050f7a274fef90a387072066a08dfe206722047c0bd7d2f5dbd145fcf8cfbd9f1d79e1494a1c152a185a2291444d279924c9b33405aa38b70545bb4b4cab3fbbfcc1b7169cbbafda12f05e8cb6c3b8f2c250054c5d943f486d5f341171f7f0664daa472098551e1a446c0d0deb3ca00454b50c5923c9eb4d68874c60b485a294113cecf966d8d5e95a82f1b8800c882e0b1dc3e095c328977ff85e7fff5200ffe69513c5b3570da0eb621ce696dd5af346c1687906487aff28b67403b4cf817a936678af723a47366d423e2c7c9815e2c37ef81df5442b8d1c4830c2d648965f1b5ae6e98907a4f7becdeb00317ab2649f0c97aa67f8c15440415e057cb0b440e86a6a88b693a18abeb83438e0db1404a19fb8bb10dca9f38ecd920a90120bad52eb59187b1be86a1434852089677281c58d945b37aa08af5dfd9304efb79491295c15475fd6411fb68f2068f5139aed7f75df709154d844e82397da5a15b2a5f865b5094f64b1adc5376d4440f2a5f0264553afc824bf915431fe3bd4fdf8bb13274655bdbe136af02a2f5fd58e96fd5b21fa51b394cb64bcea71cf35812a33cada63493fcc26a36f6d96498e7c4920b1701c4b6047b62d899ea279a7edf928d70108cc240e86ffcb3e55eef2acb63996c02bc8585158c5a590eda5c7cc97693d5b9872ca02566fc43ccc28ac3ad54bfb0613907ad5141a78b6d10d87d751ac79e8e264eaaf88307b4c0e0220974421785928b5546946f25edca314ca10528cd6fe655ffffa6a209951e8ad188fd1e9bb1ce10966bf782180196f1b37f43d7bc4f9db519d5acbfce7d7674517c5458259f3653870b210044913f87619e9a67ac2bbc96cd757bcd5484aa41fd5ad0e796dc81791c6969120f259ecb56fae2ee4353b1f69bbe876d06c81abf57480833a29a3fed869e5148748f62eee886fb46defb187942a0a86d74eae12dc7a095283530a75889164af896609cb5e4a434242fbc15a2c4a2c522458e21a6d571a642a097f85d710fc907cd704e7954ae8a9e7c1039d3235dd5fa19df5ee7b8fe5f59e3ef6caa9f1db10e495a134d3d71b0b739d9fbcc45ff2be01c08ef271c3d116ffcf8b64618a9071156fdd10925ade9a736dac6b6ffc91948c0bc73b5265835e0af9913472f6dfb4843fc8129f796b5fbaa3c8bef3991d906feae6778823046a1045dea3c08f93abbb33f00a7ea5649cc140beb28a741cf420a1abbacb5d55e749af1fd0b49329b8f0270f3535f88da9c47b7f18e97561621013b80617b0fae4013a82c0513cd0d68d27fc05645bfb9a60c945cfe066260058fd2a791e6d9b8f503f7c0680fd8e72fab1f8fc285fd3c9e655a738b238a237ff4a6cde703e06ca444f951b21e32781dbf465e7b0f3c7a3adaa570db2f08193e10fe147f5e0803b802eb3350040eeedf8cb128d89fe9d10938767a12d3aa0ba84a29153344e7b178abb178a83a748f331a5d19b51a63495dd3b02a589e51f6e957f6d550e6483042a050808df5c03f56ef0fd0e74981b554a79ca734ce73729ec63cdcba7baa0718a97219843b215616d1cdb5472809b555aa654c48149a76633a5446d259bfb68145e5317de81bc475746361bc703a7b774b9de11f84e364f9029af8b691eda3d84e1c17e55e068c1b0ce00b0406436aad54b76527948069c579efd9b0ffd0df71daac462aa68c870d9d161524ecc97dba5c8a65fd813629d1303a20d4e2b6b74dedd0ce1db82f7e6c7d1d98b5f86585378bd4e4a84fe0bfa187e2ac32032118375ee63ecfc8c18b2c3dd00f8013242f36b0b5d673fdea0e80ab55792c2549bf7c36f027c666e9d6037e4e0b14dd05e24a9830266c9ad65b0c628513b108983faefc142dbb6ba59709ed7bf257d57f680715ad4ecd43bb3e373e662a847b2cd206981da432d8c36dbfa57cda38a8f86a30697a84d431c1e0f908722ad71558f96fe6f7c59ade66077fc33f6af11a4eba37a7456dc17ea68a673825eac91023f345b2366fcf94871786cbf1ce9830526ac517a468056b3c83f2488066a446c7fb4770907025fd729c1ae785c0eb8049bc59ed8d68e37fe83dfead8a8fdbd433605e115e6f5f5a4576819a349681686ad95161de59021825d918d8ca2433088a60203f20562e0c744dc1c2f76adfad625dd9d5d61cb483ffec7580cfa18e33a2e2438df6541f8448c96b290f521b73d2b092bf9a0df33499a98402a83a43d286f460852772193d5b16e7ea7e9b01d0d03300e9b11c581da745bb0d6ce8fcdef51eb3f59eaacc011dbdf1408b28ee3c6238f81888778baef4bcf162b4858898e087c29668a2b43852c85a0042d0cb0a06cdad44f0c0f1bbdedee5a11cfb1406efe41eef37e5905e923b283ef2d3eb802d57183d9bd997d2d5acc264c57bbd6cfd3d9657e2b67452c8d9a51dad63a7ddbbfdc336a2389f7ae008c508d6d16e90987f9125e373d098b43b16becb32fd6289e354a202d4ac3b17b4578cf6ba790a82dd804cd78116456936009c671c9dcce431478b1a991c2c2a9d40dcd45464383305823a02d0ddcbcf91527fe0d713090bf3b5192e75fb48d87eb9c2a099cc455420aa4fc8e7a399220fd83c5abd08d4b4bc32e3e7ed09d379ce8d6c8fec6d9c45a79d12358d90ec71bfb5263b9abfdb872af86dd149497375fa97215ab69b959803603076efdc1920aaed04ae955070a22801a9dc48d5f7cbf8375fbf11c3a0930285685e69c01966c31fd423254857130ecf22dc6c0c108b259dfcff87c532b2172ec2e2d104efd0320356cd10a1426187e87709d2488d5c71fd615fdd3eba246f7dc99d5ca441bce951b422884a9604515bc98097ab53f7df1325a7ed078549d068204d0a134edf8920145f46ac9be8c1ca0abfd7bc54a956808ea69888fb3a50166154a9151dc09bdcfc02c7dafeef25d59e2d31e2a3d5bae2a4abbeaad641d42c2b386648d23a156be34e8a6d756be8d90790deedf27060cb5b0d4d80fd5c64c23823ecb6c1fe2f21ffca6929bba88e6a6a945f488b84c8da6da55aee87be4dd282631528e70f9091cbc2fcf0a46082f03d4bb17626adafaa3a4f54effb4f1565d0eb2bff4b44ba673fc50cade645ac51cfa816ffde9f6c5aba6d393e3b273ad486d1b9d4e2c9dacbcd251a1f4d7ade9d280371eed09e9ed83963e87cbf17c8d334cee928629edb08bd7af0cf981a0f0f88982880e7042c441c1c7b27b320ba2b1dc177d1b116cb6e3a1f4b8cdbb062e6cf07a5aac3be90fe4e84b3e62df92c4bf92c3105915a92abd8b4892136bd06f03fd655929dd07c49770b78135b8d611f47b5052735e4fb13d39a744c1836dcb758ea4a2581cdc2892128607d997b8fd8b8a7a7b2c3040a97857a110cb103f2b8ff125d614c5f968963d450c6b3958786c86ebcecb35e9d5506bf87ca1182cf11db7ce60664c51a54740b29e5286126b7041e9d38576a6b18b317150ea3018f87623e0bba29504184b54f7ea11c9b968066eda63501f3441ed2f511a4ed47c8e152ce91d4dce5f7208b24691af0b163a1e4b51b068b99acfc1a120678670c4be9078a4b6ab57ea760289561aab2455ca082739261374fbd8c19e8cc88e77ca993c0320d42b7a902ee28ae2bba93af44164ecbf7544fdd601ee236caada0b89225f86937c5f007248867ffd3543e79598b17811ed2295fd66b7b7f2e1e0754fd55ce37cf2798cefc170420bc8e8fe1a1923701e070b2c48807b88a4becd0da21bcef89264bbf481395f427b711695a120d5cd8cc03ee50353ef6e3f8e6554645128fb0141d25529153cd333660790b7fbe2c386de26d1a62a762590893ef895317c7debe7501dea295a6e584a1b34e5e9e9178110b1d8f24dee67eca2e9e074a192cacf0b58671247a26e21509d9325b8e8892327e54ed371ce32aa3f1231872726b9704a83aa5a1a2bf52df2ae6fab760c3a46275aec963b12ef9adf9fb8a6b83967e5c6536a8a32a2664c7ce6e9c8058ba6fcd57a2893291a0c872990e1d07f41d266a42d3bc4fcad5c82015f3438d8d7adb488e8debf7708e3caaf7c806f14491b6470349b5553e453337fe00ce54de3a71f5986f7d2730463b12334a6d2bfced3be0da477e2e4f0cdfeba6854e8f59addf6e084a22fb848270527cacef58f6a825a8f6a694aa11d30862cc098ca84916788c3cc793692741cbf0d70c1cd7a6a3c8e598d689d03a5a70bb68b580024c6db1b10a85db6cf42dff557ad8faa850eedd8903e3820ba14ddbe47adedb071e30a6aead22da98c30b03e2ef128031828ffe97b57bbaa944db94724b977e0e0a1a9230a1fbc401e920921083bc1cbe5d882d1fbda0fdaa793ae78cc028010a1ea65ac24a4b9f729db2aaad923c2ee178f44dc21f4e2edf0c68a5ec92a52d0e961d035d924fc8f3c607111acab78a9c5c73a8d09bbbc1547e5da3e775cb82a124f73888cce26fa1db40cb9f6d86fa5bf00067ee438d4117abf23a8d8437b2df0277c50a98ef16d2d88fa5d62c93babf59011d4db79fcb3d806ac9d2858b246cf2d21e2b9113168d8800ae182d47fa361b8c3d74f8f0914991642ed0d98172349b98d97ffcbf19518f0eb8063ecc606a7bf19f99248559d4ab8e510c2216eb02efb72f50cb29a12afcbbdc1c6ada83767f0cff898d0cfc8ec2fa9ad9f6d812e17c5e80849b64801a55b8f35655fa71f601337e21f87ee78fc96e76c23b3d1d4adec3cc2695165ecc596d1de51b222adeb07c1f5401d69df15d5dd505e52d772da8223a73474d379df6733ef0a2d62225fca84bc6eb8e32c15277af2340833ec1895c9478e71ddaf121097c6e8d87c3403f234ef557a2d23c7def7a7911ffc5248333c94892e56bdd9d97c30747b0e96eaf83d7efa82e38625a9bb6ee184f13d35d956bb97430e117d850410ad76464d0d8727c9e172837cd671462b1cf3563e5d0312fb4fa888944621cea6e6d557953b404349cb6ff35e649df83027161a225fb766f1768b28188bcdaf5eddbff616ea077db9ee858ab601967a412a0a9f4f01c1bab267d1c3e716c155c236dbac9a9c6c2b16f0b93a609724c51ee3c6430eabb8d038b08b0062b9abb60c3cb7f51fbb786db73592349e61c219b7a3a425f7c9a05bfe3886e7707ae7704dfebe70df049c2e1c4437949a26f2a978187ad412d2d64c8e63fc1fe53a87f8d38288607a7fe242ed9c66d6f4ebb2ddfce5cf1c8bf77d22c1159be61802d7f08a805f9ba9b81f794bc7b0c1a6f649b0f5c828e9a267cce9de7051d3695805fc48f4e549940035ac5d867dbba5a7ea6498d5dfd9346a55bf3c6b10b69fae53ed360783286697d07db4dcda456e803f8b27ddac74189d72ba644af9dba8d28de8e2f85a65b862ae4d1da7d2c076e07b6f25b8255663f11e2541f01103c093b280e58d37b65adb95c075672287b0f7488b8d650fc7ad3c40241bf20b7d8b92f3db4328dade3750903c2b5a84a735c3a1e34991ae927cc56c1d246e401c8850097a1d8aac38ba273e4a9a88a28453f02779bd7963acb9e699d1133e69f1c43e1733ef8b7cf069cf3cc49be5e525a3bbcdea7eb5d3af951e1ad2c8c1084385e16afb6b9cf1770bbb109921f86fbb1fbab1914016ff7f8efc88af6a52d2e54d0899677b3801ad964bd4459d7882a5b31c6b824d20ea642c983026570a060fb659818b5ee8a7ac6f1ffc2d4aa3286fdc17bef1c7411110787f4291258a6298d55d1dae7fba98db06bb2a42182427b51464c8dc533e118a80d84e2bcb6c4f1bd25a2674817ddbd8316e0c7bf606ea4a5d8b9eeec81d4b43c2f32a4c5d3431313e428a6575ddfa821cbbf9312eebd145a3378d2e2efa42b0e2e1a35b374d9586aaba63c570fc2eddd21ee42e38d7d62661ff100fc3b19401c0f15fbb1fde4a3737a4c53d0e7dae4016dd239de084c17d332789d146e34df9abc63bf0b22dfe4315a5c6a0c7f78124883b89513c504783ddfc7c906047c756df88a0fb524df827bd4d89b9bbf0e01645a6968768e886d58d0a1fd342e2771b11ecbe1c5a857497eba3caecf6acd5379714c035fefa6b5689aac15031c499f34b8ddc6f5116df5383bf5d241add24ea00b5c4c0b19aa69c8b8e8a55c584802f8dce2bd22758786fe4998c84ac36bc6653a7656195c475664dc568d2c363578b566a8b2cf180288f754115e8bad15634ab8d45d0d31f6963e8aa921e44cd10754f3b4c9a3851aa49e4b3e0166f52f6c4293b5d8d0d0ef64ec091c8bf9045af375b7c0e0e62681f243f5b618828193d736a77e832e5d591018a4c811653468c0ea208615087b2d9f8b97b8654b7a7f3084e8e52e57995aa8ff30182f24cb763c3a4914b81bd457b8ecec6f906f3e8e047a7ee89d5e3223edf3f6242fb88fe2251f380dc954a8ba2c326b1b4e6267a4e9dfad9af0bd9720c5d9d82a0fa6eb748908f679078e727d45fdd9bf45dbdd0bdc6b931af0cf63e694acd45e0ff7c7cb14986e1e9dc6226b31403969f555fe2ca84bae2f0f55548b87f8d1c71fb8793096252377aba01e5689c4f7315f8fcd974f9e3a611af2d27c0b5fc0f2e87abeafa23aadca56e1d1cb0fa3798a320c3d4fddfa5b8d61af0d0b8618069cb2d2c884e31511f96ff3ce7950cdee7a7b947f88e9e7174b9c779f2f866b3ea8d3da5c29dc29e0f288647fe62d8679d99eb16d50216220a1e99cc8508d364806a8aefc9c129d2b021367645fdee6a4ae8f33fac8825c6edb12503703db6ba45442f024b563cc464f2151e73e53582b42b7adb6f0a239ac89a82d600c878f246430459988f5c3594b8d1dbaeb871b0d8afef567263e5270f0a7ae66279b3de9f1b2d6c047aac7c3ea85e9c733c0c4f6f5c4a8aada8873477716b4954ecca1b032bad012142ecc4dd90577b5e44fbaf7d055a3a721325d8fdd6701688be9fe7409d2e492a8bafe2c1248adf1c31fb988b39a8bd816ce45214093c0208f14295b03eac85de5733cd58515155648c650e2bf5e46dc446a53cc3972fbf3955e0bf1728eb34590d0989bb7b15d57b7b463a3a273805b836225a0a86424bf567222bc44b9e57edcdad8287d3fd8c587aba9c7916e27fdfc284907e23a8d51018a001867da1d5c8b34f8bb49b2fc1d2c632eeec380f06a4f98c6b15f17ef448d0ecb64df18211bb8b2a63cafc3e268a618d3ef1924d065f792944f2f50e765dbe3bc85e6163ac1a015c51dffefcaac8777c9c5f4f183ea7a271f1baf5774ac6b93a0afa6b4b507fed8eb0f353094ed3c2d1ac071ff0866032dc833615b7bc4a93d5a8774666358bc59e283950247bdcb4b200c878722fa595064c8df96432612785f909db419da27962afda9568e5c60840c8bba80d9d177d5bb113c50f9beb10438eb2564318ddd9d7634851c356b4f2c60f86cf9f7851ce60a1d52122e29c29d03640f990878135f2b0a798ab1286df17560f3ba8c911c228266db00547564e6f3d003fc7ee309dfe448a8a79644dc1cf6e6f8c06bd6594ac6434a114482bcefccc07c8e79a7b713f0371e4d1e3fb64563dde287aa31984b711eb88abae5eea76879c26162870385d2fd559aa9592f5f902931122620a0a28e7e706ed764c3f634465cd6a69e1c94c0d25bcd3717182023fc14cafc72610f1ee5e2519ffced41b316cc6236ddc3c72503f289f04cdedb19d7b711111408d1967605c2797a4091fa6caf21079498c420c263de9cc26f0741e4ec698cda34315e75727fb2a44691329c9f909311baa803ccefbf2b63a0cebf9b4694576fccf8538ccac1faf20e411a576bfa574e505ad4d8f44b2ffdf5508bbacafaa1410e8545e92538e5d6212e838e830053a9cdf8cfde49d65d93fb56f088bef45e8be5977a279eab6b94e9bfd29fb5988db4fb08e2246cb0103d7e930d714535c565a6aa290a3b0068aa0c3a81d38c9d8e1125242f256da0c69655ce57e5cbcdd1eda87e0007cccf1dcb7ccb9d2bf5c0e35deeea8e3fca31a1c299a8159778b3c17874e39fa07801ad643c364982f9499d2fb0bc083c9865e6f86804e3fc1da499d86c2e1b911190a1b91c5a3bf8b687d121643c5d9dacca81a89e7c3029669c9fb033ac7cc46c286489f6323ab3df4c19f176fc7fc3aeb180271ec3bff032ceded92f683e235668c8481fa9a6ec661812a811c315de3a0494f3922e2a616c2ba6d7ec02d42cdf4d80ea1ce9f04f30c9dcdbabb8f9ae80419382c83a5a87b7260a5c44f4206217d6a437dad51da9dcdb9df8f87aba1c0846f8a2fb401086cf4060dc8382fd7f77e130b8dd8e47e30d3bfe9d827e1b9585cf616cc73760fc7a56c53500ecb6898933842b45f21c57bc9bac0b8261923fe82010c08fdc31bc57689761c9bc8ba397cae59087785d697738d89dcad2caff0bc66c598b42bed0f6c2f939700e33bd6bdbfbbf3fc66079ab7fb859d7772148b9397d6ecf6517d50203524e107c550c6a74519181d68f1f47f2048a4dcd2bbcdc1b73e0fe0aa19a6a6ecec70fe90e57902ad9967baee7bb5901796b86552da320b91ffc7ee6921fca80db5d47d56e0e243a656467217a5485325ae9f188a22a52e077ca53c076d58b56ae5a84ddfa3819342f680a4aedc35d34ea6964e4ba783c6517f1050cad377cd7bcaf96332c2d7ca852534905fb370fd5f3aaa121d68ee33bbb223436eab1c91e411a5d4dee1b683d4e1290e7f0ffe5fe42aeb61e0dfc48cac61fb2bbb5d6aaa3bc5781c6236b5449885510dd2eab91f728b6f438ab5f24eabf4657f8eae52413716ad6741fe0c256c7a918e3ab773d20fb519fe8acbb3917ceb4de7d38a3aca0e6ed8afb299a98eeb820060f7110d85d937a9f3a4597377243f67aada47c9bd0667ba1bd00ddaba56c8992651e9c2422cdbecd5d5cf146931047ff400301b364811e61ec53ab50b1d53881db611b6fc70b80a5d90b03b7a24a63c06a83a628208ad9af924831ee354c62ec368317fe91b33e732c21d26ed1ace78e3522e1f38d183a89eaf6fee6190e00b56edba09b33acf64f7fa0930e1613426dd8358958d185fd02feea125e66ba4bd793599dcf1ee48b7bd640deea060332e3c3e391e7cd72c59191a6b4a226d5c6a546fc66a550cc46e8a4ebac4bc420d91049a80f70a141dc7f991d1f4d4646d32c385cba1679da6009f23f319929b65be3dcd38e9a7f9a09c80839fb5525dadb403e21f5759306a136510f7660e733110d2407ba287ce676c69b56aab278c10cf90e89a471114d0837c2e2d159bba744a326be5013b6d7a3715dc46040950f9c98cee6638bb4328ec4327329dbb64b858344c16d00a3de6a0d0a481008723ca228391e0b1c1338ed1ac12f026067f786e2c5b11dccefb4158a1e9b222586a48244572a2d3f8f697fe30fba6411c0a992a62d82451d88d2810158ea03d92508e4da5b97e63f37d22a10f46a8f77d605876fc5fad840dcf85404a3547d95290c39e57e08fc60a0045e7785ca78bfdfd0686e353761c569aa41a9fe6fdf0779b7d85767b1481a4e951c432319223e5f74836e5c26d390e0ae5b90a3c4fc6e8bf5a6ccfcde7c25a19d1b854dc9b91b228019b2060db66afb8f7c4cd34ef4c50d184daa476a2cf49a39ee814d008e507725a58494029a34481db8e410ffcb8da65302ca5c482d69fb0c4285861acf5d0ebaa8a41b71de4aa9ebe05f273cdb3f3e3ee4dd2ffe45ef5fb92b51f125226c0a380fe71099c8c74ed01c8c4f5c05b34a55df198e252c47146a837ab46303ba22be1cb61110eaa243678974fa2cc4fd5a7927e170ead2a6364c514404ccf8831c0eef4df73bd7e66f8ef036426e029f886d407a4e900904aa114acc748994d0850e8ed8f7d72d771eea8c2bc755c6f7815a960b0dec69a4126c5b9ab17a47ca5b498ccb3b73eb20aa62de90cb0aac5f994ba662c2e8964cc29848e51db10391326c3729f8f313eff2a08e2db42b305ea3b2b6477900cba80ad2561e39f5aead87c95887d00fa8fda194659ab047cad275e11f60cbc8b6c8e5da0996c340659123d785fdfdd1eb440ff04d263263d715899224e13c64afc84577f04b87418bcad1af005d7a1bfd16d2ac69860478545c93605a95ed0e2d02a6f0803b59dbb0d942912854391fba49a28336c44ff268e8f54ca2f66093995da99305b85fa443d09d5d7a5f4be5f7463575c21b8732c1d07a38b15ed5d66e9faa3199a9ea671123231b21aaa0c8087d2f44f0bb4c0db968316f2890e04ca5ca24a033bd32a39a5a4573164004f992e917f7cb9a9e4c56932e1b3e1ace7f72f2c238c6d92409358bc735d333d2fbb6b87859efcf342a138b95cef5588a8c5715b857686cf701febec4d38f99dd258632fd7af626d6d978e894fae813bba47fdbb8dd935da7269dbbfee2147af523c9706a2d04dc8bfd89f1f2799ffd048e6e5292b071c1a2c5d6cd759d1b1f7a761697c58956b4092ffd7b5b0578956323ffffe1393695d763ee8416623e5b7eef3887d769ebe4537b47ece0c1202ee7d1b1e6e4e68d1b1534d9873d3279af0238e64b83ec3479a8e2761b09ae9f1a23194b55aca619aa2ea440eeec353a70f24bc5b311f5dd2bf6d9dc2d4e37eb431412c29b4870fbf996d254c7d134024cadf8c4d6a9ab9ee3b6c888a432a612a94ee37effa2bc724d3b106fb8a31e95d51164c27fabfa2046d88d9233e7acf68bce4ce988d10889fc3d6584ddfb83baf32f857fb48511f51279f6342708dd914ce01e4784a854ce3ad00b68557b1c8e5804a7e9d5f0e39538a64ab8612731d13430beeacf2ea62528d3f1dd23fd416062e0e9af1229a67dd5eec12c3caf85fcb639a6b1516388a17e18397d539a7126086cc12926e3564a979a07f5d32918afe0fbe4d22d7385706f13bb62817ace7bb381748d9d3a33f2298abd208f1f0e60040f9afd9819afd9808a81b33cc69e312a7e9f761dc63e08a94df896e18ef17adbf57cc75f631c497f6349efe393cb6fe900b1bc6153c01045c9c0109d762a08a3ca556b7d79646cd3f20613ea52646594836e99f189c4e58ed492e3550b8ce5f43682d75b67255fcf4f5f8bad0c1a8958a16d1fc2d8982b1b9ddf9ba6f7ca8e5ffb750c970a7fe7c40f2ff74acdc46969619b0041a050d56f398b675c76fc75fe2933cb5d7b99c2f67103ba15aadb0ef659b7a4817f43b96dc56f50d62c1fec949dd793c9451a01b7769f5ea026ffe8390bd38f86088c35a895d746216b9199ed240df4c7bdb07344947ac97e2c70528b64d918e1e48ae45c8b04fc9ade9986805097256f908d2739bc3d3b2c65959f89ff047021a16061fd56ab8c25d3ddb3a1ceccfcd776e4f29b2c4723bf8879bfcc3f63f5d0ea761c7d8374fb35d6e942bac81427d7977111e7172cc2541f496cb82f59dff009f63fd5787c7b47eeaf2e4ec26db92fb7efd09587319c5e46d7eb54a5203137c450a47040d38a7da00294d010e90e19ca9f4d0bfdd2bb3b461a604ff4410184a5b6d471baffdc7ead1a8a88212ef731eac73ee43c3dc4c727aca783341d1049dea123051f7715d3c5138b0869f4343be931d30561d4d3c9044aceb1ee67aedd854acf301b29524d756d6cfa058b4c33f9a89dfbc5af366d81580d41d3a8f3f8133136d594f5854d2c8de741d752a2adf57e9176a818e92db85a5c32f9ba44cc519a1bcf2530a3e29c3bb2b70341e97edc090fff4f0deae2e47c91a4054e2a78d80bfc6daa229617992227ffb760e118ed21002c74c15dd0460c128c866677d56fd071b0d3880ff53e547e382d4e662fb7a404f1211b80eb04fa1280bddbbfcc4577a9f889121f0286c39591e1bbcd801af3aed5c63567ba5a5e69bf11d81eb60354e62a11e69d4d31c949f749ee95dbda72d02730de9579f7f2eace625d4d7b3cfe16684b1c694ac0a15d692a3f64bbf40bd67a3c195e7144945e537fbd08768bd079d62b3f6c0838ebf3b2309e531750ac3406b69c13a53ac6fc081620c9440169512a67d27b94852c9789630b933bc8c4e5b44c520e468b2e80fa9002c80f292da9e0b3c9ff88c94cd254761b54c8c0caf3f7eed97c942116c6596db256f805c1295e780c6e1914165920187a0930a9b616aed005071870edfe9bccd484ace592fd6399f89422f8bbc07ae263f54ee18660b2475b405a8ec46ebb2ddf1659ca4fc58c37ddb509e34fc842a32a08f66abbf9e34597ea8ce7d1bdc077a0cc737b6b9cc38e816f74564b31a55ab20e83b5d9edb8a02608c61defd8f5c0b6f717029c2de7d69b7823f80928cd6cf730e099eb07ae86adbebbd01d6264881362ef725fd70af9592a7aeb4b3c093586c0844efcbe257b80092a2afbb081698184e16c71e00729dada7c0fb5e9665e005751b49e3288f12b3c4c6d50632aac1b0d03a157bc50f7b507508b4eb006249b4461de6737b628ed54144a867d4f75cfb57f0dd75f383b7150828a03bdaae1a04e2b2070732138381f0a602c1bf7c6e36a78527da51f4a0b41ab292422422beebd8b3ed58a1b583326fc2f73af72f06dc10fad17c23a4c73ec285be59f72f876bd9199375c2e4f3877ecb6b2d5ec89dabd1eb239c9e0230e5706fbdffc624fbd082a463d4d8f965634e30fe3b1b09868ea4bd7ba41974835b154608cee47405dea00180ea7ff37cff690c523e1cc03abbd7e3635ca4b2bb5618179ce9175f1848a358dd802ac9f9b01ebef35faf3120c51e9bc8acd6d354ee072e86873f7f1738db8664dc6dc9ce4432bd5009ebc4b456722245a47da38346076a28428f1060002707921b08994882bde880d18a3a3e6c209a98e98cb32914a484f2b77492e14a07aed8d7422799b47e8ee0a8f6ea7d4cc7071d06b3f980189c101d00e629f2e572cb2cf691e73e2baad9b49c5dbeac48ac1f610aa84fe14a0f3ebc6d0dd28df2c9e66a8442546587ec5454169afcdc4e51d99007fe3d6cf99bd5fc5a8b7684c6beb57dce4e266ad73e2e00cf69165b340b1b3996d91202bc023c469f52b02af1f767fb531d865c247dc04e8235726c45e2e28947463689527f426b3803623d6e8cc9c8106bbcb2e2502f7b7e892b4ff99b35cf242f0296d0982b98608a761a3150ca0102f37c4bc3621877e089e28c0698f14757c14aa87ee81d62b570e368a13d49a367422fcebf9e8f4e9356cea36399f61240e0bafaca95026cdeb0521162d2f574fb875e86c61973dc6c2d538e58d4229cb928b0e1a222f16fe3294d564980085b6239d43a8c7168585e03661257e1c5d78c7a0e600ee3c1e314faf99a6d5d6274c61f1ee38b1f7c8bf7086a6a0771d150010297a03bd3b413d71206ca15d3b90f8ea6b8e6b5ff0aeac6546d9d8558f2d780b3316bc9265c8e0c049652fa0d9b42166e824c332cc0babb2efab9fc81de9bc38a81938d1df7c3ad59036be521731361085af78ddf4b2beccbbe19c0a155cebaaf734761395874ebd6fa2d00ef887263bf43ef365ff390bbbed8fcde75013e8cdb23bedd77faf84986e457940668be8d9d05554f9e69e5cb7fccb0014967edb3a4e6e03fbafe52abf870ee4643bf1f51c4863ed8ddf2aa05e424b58d14f23ae9c78f6970195edee7ab853ce98a130c91eaa09c555ea7e68710eabcee6eb8191a4b96c78335777664fc0850977a8bb65a0b380170196726b244252aee64ee5770e4ba2eb85493188d25024fb46278ad0d5a2cbd0d094500201d51f16c51a0997b55d962956be2c321530ba1c7b46b4914269ab14791208ac55e5637abec1a0ebb83c72def3c871a39b0f577c7f4a8c37a68c2db9d3f31c8b3636f3238e9f4eb4af00a4acfbb5c400e619333ad87940d2f88878ca626a7ce60d3d7fabf49287f4edc4b3a681446fd08878e60e90388f7777c5fe05a385dea5bc20bf828ed134f2d8903bd50bea5680d554e5c0f6b280bfc06e915e2eac08d84a4c606cfaefa2ba4b677eb75cabc8e11215bfaeafb16a4801c8e47aae261831287727015058729a0b2e77ba0d542aa545d8f54a1071bc3330c5f7359f26f784fc44252ce6a8caa74c5fdcc6f91630e58872219ace9531a45b00791ce1f2414e08df63ad69b5073646b781b077e14c9ef66b77b7ff981446055cb3f41b242d2c1529fd9743247463d74fb5c864ebd22f20c4bf4e66452ac48ee4c431f11a715ff6731bd24fe26a8d3bdcb14cff4da1dc167c34221120b951b6c2e280fe19da4f99cf009ae3e665d8cef603f290ab4a4e0429c88849d6e0212351353db0addf05a65ed3fe230216aae2b2cc62e93158115311d6e9d10a1fee01a767fde34b91afaf4d9762acaf9c2ea2e41fbaa881ab1567964c43741c7074b1295e065b55391ff54f71fd842766d406d158085a44092ee6ecf8a9e0bff3f47ef7a7d2fce2524db1c3065c6927efcfdc3724d35d7b85949065b9bedb865eb5723d2790e908d2d1fbdf92dd5e2ef795d7e92a93a4d1e164a9c8013ebdaeca7e2cca1ca35c794969398e12359b243d63b65cbc34397aed1cef854b763ed0ab1ed06f3b215fb12b791cd1baebbaa9e9b778ef94989b659d2324bbc1c7984ac2e50107a8554a19418635dbc7da478337d4a2d0df12ebd7e23f2753b727f483ec28f324d33d1ac36fba133795b38fe5bf4192b8e0ebe0a93d1c9cbf3b9f25599dc07ed6e90c90b01c64f5a2d978ca900d4ae2e945e09abea6cc230f71cebd56908b55f232a924cbc1750882d30391fcbe7ee029ffa23578b64225621c6467950dea3ad40e2fcbf7ce033b052d7da30b8d2f11a39a553735dad6250048a89553b0425193776b83f08fc99b6d61e7ff0101f5c3e39411ca2003c4b18fb4f382a62c7b7605d061bccd9ba54a0a779448b7812bb86abd64c6df77acd43245337fdc0184b02188c88669461af9d3f3ad7a3fa570d173cdcf8de45914228a88698e6a60cda9939d899706a7ccfac70cacf4836128dcf69244b573fee14de0fe2b577fcbcb3d9247431ae50a06e66432e1cc86cbf9610a9eaf7fa372e25400c42361952777154b2dca53af1537c4ea46f0774a924e8e1c336a28e060453578d18da39ef8cf53755ea414e86470d240fd51bf9747d722b460c6fdbe1520374a24bd63a38b5452dde58bfbc446e8d1a219cf071cd6077cab7b894b2a91e9c44eaf9763eea88b6dfb35ed871ef878e8778f0ae8993995a517f16b153068fed3c829156020357ce1e7df6ffc5fe82011f5c1f50e26abfc7e4d5198a1fdba1fddee77c5dfc4d836b63dfd6611a1b5801c6d7f587aaaf8faefb6b331d3d1a9ef646aa14851425f49bcbe755c7753ee604170a94ffd29ac152d6a17cb54f08276141008d5793fff4a99cad191292e29283d1ddec9167efc110cb530ee92df5aa16152d7b333d82752e4fa9a789040af680446e10a18893e7b680e2897867bdfc1c73073c27c3bbf80527664357457c752034af6299b16b322981f2bb64fa7fd0890a503f3d48cf872f3cc7426bf1dad3beec7d59349e41a98efd754b19fa7600f2ad417cbec2208d07d6fb35710a3611e22896c86f28c6fb556bc5ddff36fe953147ac2e5a37d06c2ab13ec0c1e32ce1895481b97f14f7d14ede4b90ea06cfbb354647f6d578d4374a797b23be8a025ed5637c12ce5eede95be5a46fea893e3f480eba7a5802525998736320fbb840b82a1607503b51b0ad987c76be46ec6ad3d57b83a63a3b46ce5db1ffb6601f4cb61794f75a9e830b0c98aa9a8e827ce739be65241918c9b699249c47154e7bfd938de9779044e2eb410737dc9a72a7d907e473e2cace0bd2edc3769db9ecc4fdc5a8b2553caef335c9c4a90b1b108bf283ae4a21446fa255b858cd523408788d13c48726e075cf531217e6b7b0c79a12b8851c9f08518d66652782960e875692bf9c8059c9b3adf3a96f10ce4af12a04102b7e76ea1dd20ae8b5333c37862495ccf1ee147ba33e9cdb5245d6808d7bc22aac70358691d23a77f8ad32f8834ddf7a0b8b71b6a264e527f679538778c2f72644aeb12bffb38c6fe9941d6e173726a72f317e208afa49fb61e8829d0e8b58d7732851d175b8897dd1b4451039b074bef3ae562c3fd118d6218fd17dd8bceb50f48fd18fc9afa7c76e3ad88a0392c78e6b9c5db20fd907a4df093c6dac96893be608c538ca63f51252ab2361fe7d282c89a65a974c887448784de1af745d366f727df90f752b4e9cccbe14d1a057f652bd8b1b06d72251fe279a5c2da5cf31a92775d30030e46124f93e3a5e05178294b9d6c198a1b424c76d088b61a5f0f0f4b40d4b68bdcad2719973945f34aeee68436bdf59e58bb7b1f886ec3c59bb5a84302442ffba89ce596a5a5568b5f3580d9919d8451e986ebfa547140db3a8aa67dd5d5ccd6e1b257b7c1fe5812f38793714f47d79fbef509ec63415bd0e705bc620239b631685d1d71af8960a72ff561146202c45751e1711b2f29f10e4c6f353e2aebe835cef1593e9026519ba867d5b23ff73a9d48bd95726228bf71599942c0ff2cb1a0e5a3bb9a8fe5d0f6cced62dca1e6436870c75322d0d6cfc964300e7e8fa549459e2efd879fd452f329ae4149d6e8250500d0fa1b7501725b10a0f66f18f6d387344a270a4518027f7d3152539f967c923054fc978d33af6106dc146f74c001e2af49a0ab74a185be98ec1c77a43d488423e5a590b99d2d858395bcbe10e27363b179c9f97e128d86123482d9720259211915c145310da56ab1a7c88176e50b2b921a83040da5d7e3c90311bd0d12cf07f764e6b909e59223d1c4554063ec29efd10f71e12c23ee9138447d0f0f45cca31eeca434894ba5ba35ae04667194177bd59e432a6e451985957759dc57d6ddbb93b45dc08bfd69ab0e81fcc55098ae2af5d6987b0e083665c7f80ad7500f17e57205d7adf779296602e2ac0f8f2fa070db7c44f635c9e90b2736ebd5ba0b500db815190d42777bd09811bf5ef06ea0513393edc0434260061292ab510ff77df354e11a3903d50dc27533bcad572b1fe7a6daf9822aae2d184dd35ce97065a4aa971a234a9b7b4b896352ae5c3f2126df2de3b0e8dcae27b9364feedf2baa711be17186a0e6db0c642deb68b0c1626afcab885925cac30792c9379498c64d3280abad995f0201400a4a083550314e9d93dff4d56e6a6372046fb74720a2056ae9e04c43ed20668221563854c9418f8f0ea080eb7adb098e9fa1c47ea52acf0aba81ad95766e02fbc85ee92c0cc0ecc6696c0ef5098dceadab5fd74cf89710f52b9bf13f68053d5f0efcf2f9ebdae4bdb849b8375afd52b3a26dea580f3ee125c78d1c71f7f2baf1783b59869ffb59229ff1ea72b2851cb4b3687278866ddbbaeda322fe9a4b39767f5a92d5452ed20ed850488edc36ab1e41a9344a19e419bd52f8e4388c4fe5890f51d9975c1a0b68b155eb78a4c5df1362f527df2bcd42777dac53eb4c9fe48b0a2c57f1488be43e8b0ee7665b8782e96103c95a4252c2f44a6f30571d80ff45c3372d6ad288e3545c181b9b567efdd23dcc8c7788bb962a68532bf087309fd184faa9d4a7ffcfa72e5db7d46f769b7d28ae5a074c205034dbf553c3d44c92c908ff3296d4f92e379e2209498231de05085f38db7fa725027af41824944349b5016fad0650679b0c5e686bcbf1a3bd0bf9ae91f8385842cf72b44f4419da7cbe937d6f8973763feeb39674662141e2d3c81ac6a5307aabb9c178fed1fcc0702ed7a1049a777cf008f77cbb32fb572c547a2ee6a2478662dfbcc8e292963844e459a14e46fe6daf4d18a0cda86c7f1ac2c3b7cad6fda6a4768926ee3a88c502f29b6acd768be78f3417d93005e512e1b990c8efd3f9c86971a615336833f566d290bf17f507c647158b438a96dbbe445d7e89bddb863b855e6071fcc34132813521b0ce573e4fe94b1b7c44f7481d8ad960dc287211e109655d1309c61aa9b436ace495da60ea89ee072f4f4528620c9cbcced526acefd36813ca257c703cbcea80b8daaf8068d7eea0f6d163fd174d1d4fdc25f48e415aa14e9f9f05b489a9986224748918dddd20cc89ec334cec8e928501dc779135292eae6e48279efd0f9d0a7965ec830680c6833ade7a1e8c4d06019e4054b31fa97e26cc077aa9f8cdeaa7e94d63824664ed54c42edd809024501b27ef3b954912b57f3a323b9403265957e64ecab82a5823e16ab2ef037bf7245daab785ff82b086d3b120b3e2131a73b04673be2e856cc35e6883e03cc26c0005203ea95a42d87d1276c27b5be03a483a44e1b1d0144c6416ac4aa345ee0df9878d41b034552fec803d23ae89455dd3f3446145edbd8ebee6e871dd3bc59ea808f8b47bc0202b4e35a71f233cbae7e7c975034fbb520bb8c0f31808be877d32e42614b75372e65a9c01c28006d4a93a2335ee64d0eb691f2a72e85e743d1e1a28369e77e8dfb07df46001c3c0db6f07594d9fdaaad07809bcd81b3c8511f30b18f95fd09db8f900d205dd4b0372c40837ff29de29f005b0a6b95c7320bf53f3ab2c3817348578c49d130e4cb04392f37edc3bca0fe93e2827634916f50d36b80a7a3f329318b5f21197c98269ce976c6372f2d087a2d94417cec0ceba5ec9c715493e08443051ccbddc4ce81535df790fc4cbda9b74877e5edc4da4a747471bdd621a1af6a4b54985172ed46024acc61d953bd4bde074cb7ae74b93f9408bc82b64665efa2a05062057ab9538c791ac1e84afab3fdad7e4fe9e9ed572614348f8ff7cb3c7a276a09ace714151cba2d818f50bf1da9ece970d37171ed72acc85f311d29f76f97883d46a97ada275ed8f03cceb5e2b1f1165e3e6e0507166097dfe8063a3469942cbffb8c031e6c6b50a4bf72c9531f736e14db78e748d11cea2b1f17310196aaed7251dadc61cb01f1a51ca93f3d1f693fd2ba1a4b0fc59a594d648f93cf66188efa058a38d08573b50ea278fd2523aed9ff5fbb52f94aa0e95ebfd68e185a5ab3da160789db06aa52ede7c674fe2d288b5333c73a4acc77e29a33dcca49638945aaa842a30df872d746a8a62800fff593c04024102a4fbb7c765dc45299a3e468714e54af1a5ad347ebf00a62c4ef34b93987732b35b534be0cc18746728cbacb88a39af3ad4c1b5d680e9e2127732edc0b6ff8036b7ea54bc252e58ca7a42d2948ce7258285252a7448e213614676fd453734db9b2149c594f4b6ad48ed49948ded6826189259bce42227d83edc27a07f893425c106cec9016fdfdbab8548b5565602b89c19b37a9a0f6d35333d6835932c448491572d26610168ea4f66776d0fc1c9083dff1f7cd2848ccabdd0a81b5c38b9cfc50afc901ac97724eb5c82dd99fefc6ee16afb281de9fbbcb2e2d3dbd9d63ac1cf964c65b9183f535754b804c531a8cef046f219621b1aebc72305822bc24f7eaa7b5b3babf769bae9e1cb1c20529c9d33c2f73e56ea482d4927d2243bd03c5544b84b3a139e6240a2b8237d88acb5ffadd04940bf9cd7af18e622ddda6433c71653f3348afe636c5d34bb67c55e72b5fda8854b8b68bdaff73c9ab03af8cf394bd5b7e3d3395c2440d29261cfddd8d6e545ccbeb8fc2324936a8e304d9ae8e97bcb7acd89249f54c7b6b0f8b270ae9437e6f66345f8c11ef79391cfe66babf9b94696b17ccc68eb4025b11959b3fd79348fdb2de17105edda408a2f22210db4025ce98415ee2fd2f609e756e115ede7db86a1a9ec6f0e44afdd5bead986875fb7a5f4534f7dc8ceff700cc3a459e5c552d625965f6f790177391f97d6f6273afcbe069cfb1f56767d0d83416a1908a0b9cf6f5390e1f94a3a0aeb0da6e5ed781cc978ede2b10e9c09b6246ecf3ef6ad5284351c79abc41653672c2cef57796432ebfae8fbbfcce538e4a37e6b89e67bce4b703b04a4ca66e94c8f9b7b6609ed5bcdf0e9620c727063367cbfbb0e0c30f34101b01c1ac3c0b419775d1fc0ca4fb51cdeeff4101aae57ee728e7bb34ca697c465f0bc4d06ad7f13071d1c2776a72c0ae39870751ce83672a7f4a3b647dc18f77bc0f9f13746f9e2ba899cef3e8202ca483fc89adf0e7ecc3342f124ac670541574b13b0c12318118f3c6a8311d774171e8ce0107bc1282b5d4d7763dff0b7ce24f3eaa61d29b192b9e90ee021f4a2aee3104f1f2ab7ef6054377fa9f3ebfe0c2089d8e3f003ec37f2e02717ca4032cf48bacc428ef4de6286d8a382ee09bd3097dfbdedf562ee3a4b1ed1d0b8ec9cc0f72df8a7c176e3ca7c36e44e5f1ca3afffe7633bb72f6eb6996db3c26fe65c4a7265b4b0393e7b584ea52dc04565c1c51acfa0bb1955da2b6e626f3c12b3563afe17e87479e3656c9f76b160488db3f129c9824cb7dc70fe9c26d59f830101e1a1c5a23e941f0f8d3258340a3bba97773380bf45096de8f6566197e2d512c7953075b40d80f26fe608c4676df57fd6dc5656f4ec62724ac1d1b8ed0d08520d2e6777951338514ec41224488d79a5fe6e31eed700bc7c3a6d80b0e9be14b5108918c11337af851619708b6c426af89cba52ab59304b9c2eefdbe516a750c192096aae9b9392aa04fc40272fb7d1a80514c11cd0a2f0c60b9fbbed5d0d194de51120411af6dbecf72706c997eb37e779128e83c36d709030ba3d54074bd258728bfa2b6762347d1478912cfc3309bff1117be7951f7dbf37df3f812a4d36994d64213ddd8f265b4c7086db5bb64c6717afad6b46379289a3936783ca16f38cb60da1f94767216402b76ad097f0aa83ae4f74d5d1ac9e7f31bdba03613a9937b3fcf67b95884a503e96463bc830c40fb7981a773e647f75ce2ac8e39d64dadb1429aee7cbc52087537bd5091d19d7ee18f6cdf035be49ee000a6048b0d2174f49910b049aa5eef56f794615e825b7598a1892792b0966d72771dc1284d440c054b7cacf7ae20c5243c58c17aa1d13a5b07045a2710a7a9c1ad7f90afd50010c311eea1fccecf470d23a40ca3da20b1a30b6b5c44e7a23de8e983f3b5f4140f898d0879b686423a095d60dd186a819db7c66c490138682552775f841c233eef0f6dacda64da1ca26343bb8515cf5440fc43d9b69734d94ae3612bb98a3c92320c8cdee0e962e555b8a2fa85bc1a7aacd31bff084e2665d63107682146a3890fb453f32899a4ab8f62a1c0d81dfab53832db45cfe8957e4e1388e5620f3c937a1914811575966968f37908d43a2475bcde3a7bc50761ffc86e5a98474105a829ded0663a15eab31673fbe8736449065019a66a8e700adde3704fd674c33de99f4cb19995c47722ef2cefce1f898f565ded485f6ba196697a47121c25c60d8188997270cc8a0c925c77d436b6861b2b51f51db502602a33d7d1c91a30ceee4083a295958da56f507dd93b3cbb0815e7aec2902d96e3e30ff23932ee4b27c2f3152cadcc92c1cea4e43d20c0518835e5c5d4edbdca8ffcffaa5e0bb2bda0efab4227f62d93736d500be863583aa656f8d9294089bef0bb3ea04ad618acd251b02e3159eb8f2e09382efd4b8bc2868201f144e71172137059f1b4c2ba1ef4c7b0f301fccee270d373afa0a4463d81655a9763ec0ff8fd26348a7c58b5a9e8c99ebc486260511958801c4ea2a241ba4c6407e3ae49f5d165c923fe8d332a5d3059b46fc70430b238068450ce1f8ec477dbd398392e66d6bf58d4728bd108084e6463dbd6d7c77eecec78ee08307ac255c51d025bf7927a9276c2163e4adf0f975bb949a67ea162355236d684d13cc01956efb4527db71ce5e082f9e498fa80480363e45ab1b773fabdcd864237d57e330fe663eca9ca379fb426980cf8d091ae885cd060aef3ef79b3598a209d45f9788e671ef69a55267d32b9894beee3e2a23762b0c5aa06e2ea3a2bf05abf5bfeecee1086a0d85388caffc7559440c31daba90b751f3e4e47277edf924d6bed17885a4956181d99cf2cae346c4ef8d152ccc2a73113318bbf17c27c297fd4bf96f04543c75d3c2f75f569eaf2134319e778ac30f4dfa774a464e6cf995b5c92787f74ce16dd767beebf7e2d42fec2108f1b9b2faae2f71eca83a74822a39d5b749de39b103a48a8b1c469c0de4d1e28de43327c08639fcc7f3c4f6cc05e66c45c98d79259b152d16d54ff3b18d06c6fd3966755f1686093eac23dd7af0c0706367abd5beae4845a856132ad1ee8cf576cad3b56abf07fec6bfc04489f9ecb250a33389f047238207e30746d872ce0b8f9090b30be0b23f53ebbb51a7be34980ef6f596f5feca1f0214948a73e2163c62c1c72a4859ffd180d466d1a49886487bf116708a762acc11d395c334d3150b506b35571fc96c0238b4c7ac2209756f51098beac42d729bc6f7dc5fc8985f97664dabd25a7cf92481121a2bef81b68c2fa7a38784cf940cecf7ac5bc3acec71be3891c32cfdad60a57b4d04b881a5d4086d7a0a35dcc91d9ac040fb5359990649735e5bf5ec0f8cec468343fc0cbea0a1d3875edda70a71a4c343555ff2a594d34121a5c988ad198a7f92f967bd2470f9a40fceb42b9780198156add50f34b740f5fba395d199148bc085bf03fd1d78c42caf88b81774e3c3588e9e470bd07d3a95a3c1f3d1e62cd75c1a09e28593c4565bd679fbe5e7a1df3bf415067ae314df88e08c13e530d4967c444734ea95e8a281486faa6efc9975eb031d577c3dfe296c12c84933116a90f1aadaf1bbd43e2ebf9c8ffea001f40ecc2c74898194d91b97aac723d2ad784e6426d67ae626ba1cb5bf2098920aa7b2fb55fdf08fffbce2b9ae201817270121244891e0ef0746b6936f9efb0b6e0d5f4356f615377b1d855736a72eb529d84b54d10abe2213b70722c1202b16488971b17b03a1116647d1d6f1bc392f6112f468381bca148d4b81f19c1296d2f738ae26050ace2307679357a1ef7a01fe809ee628778d99dcbbb4893c38d9139ebbd9e3a9da6f72042154789ae7cca6373e511f0082e6f308db94fab00509c3a50517320faccee5e9ba21bf47a6ac46c449aa3852f0440441c7d8ed5b45801a36457b945465ebeaa8d32566a614bc6a63357d1e643ac74459aa6402760e6d24c0d6898d88b8f14c14ac09e3c7e1979354e1c925b2dea39f450adaf68d0b96b878498ae7310de36f65ff6a9e50b11ae6de481e0c6a74888f9fa9b1eafe10126ad373ea9ac73ac46cb76be3f6fc996773c85eb5afee8dd88427f880c77d03ec720e981ee23613d88e8a6a64d917f455cfe0f9e454566bf63d3d134db6930eedb0a698b1c65fbdb05843d9e9ee047818c278d1ac8deb7cff9b69560d5f1a2b0734e03c777796df2187aa11c59db7ac39e3e38978e0adb5a680d47bbf92c3f519b442851204259a5d7f6b9202e33ca647d5fdd0661bcead166dcc4cafea90d50b81181042aec851c6349537ac562e14c9aaa18aa7d9359505ed44e2d3d95a727125f08da4dd304a3fda1d03ea8340a055b6300dc320fcf56454517564a74c7b3d011e46e7e6801006a25c75431cb89ceba8106edc23f34657f9aebf06cc66bd329739ab9043d3b55e668d758373ef02dd6a2bde402b1b4e55df39ec3835fb8912259cffd88bb4d99c5450ca0020d2c1ed8c6c16d6562b53adbb7417d904336dc163e6094380a384539b2a224d91645c7d8846d439720d22c6560560ec7c8a34dcf97ad9e6b497d2b5ab03ac8ced3ad8d5462c66a45962ddcf90368707ea4f457740009ba0fc776d72d5a63ff88bfdfbf9901a48e07efaa0ccbb7521fb8826430277e27c9586a0d793e344164cf1ecdd8c1a0bd0e8f55ef41a90d556a59686068a68d0a3c0bc62862fe8f112254957c2acd380ea0111460decbb8c330bf33ce3d2d13d2f7a5683cced93269b8ef5254adb0effe65afc23e24ff173881b03e63e058ddf4d2abeba94b44d3dff42f44ff14cd192548ef9960cc161895bbdc67977e6a432629add35ecfebdf972608762dd395544ee90d3f77b5ac970e80b6bbc19d8f6f63696a0145daba8fb9594c501fc095fa897e1e3cff72087ee30e2facb6717f8ad43cf01eb184bbf4d8c00746171768752690c8a5e720ac36e1d1832942ff7871e01344244f33b8ddca657d2cc56fa055bcdd246162bad4d7d2d13e25df10d76d54d2dff1b2c17bef69bfacf1fc92cd8e1ab8ac41da1c0b84db88cc83c569288a0e27338600a3fc6d04f11774b47de5b84a786f6cf55da2235bdaf339ef65f5c13d76ffa78469564022de538d7601393eb6999213a5f10542e44f050c1705e6d0536544ebd44a48b080dfe2c5cb436523d000610a1ca6b14584e3e8e39cf44f311a26845f91fc5ffc3b0c342083e1c8aa9476febface5418735676076f3ff303160a3371ef830c5ff6c8a5db1cf6afb8de69983770cf627a676131941d18dd99b86d73ded2570857cb8e0c426ebf694c93690831e12d3a7dbc9e56acd32f3db2dcb123b5cc3898834bec93f7e8a5e06f00bfe26260ed613b2299100475830eb43085edf379c46ad1e93453e3076d17446304879fb4243bfeebf60772bb2c03b6a154c85969b3e945f86d33ff5c6e5c097db2c9a7d84084308cca056db0a8f306e24fb174a1c39ebd302796410fc8d61712edd7b47917124420735f30346e8091ec7daff81a735b892de3ce2657db1ad26d5f18c97bc9a86de40cce607ad4df5078e195f6418aadd1f00f316c031b60edd9289b2475751ecdbc7193dd8a49121287ad354676766a4f5c8fb444f429328429d9ea7930ba3173adc90e44c0d8f629db89f27b8d745b37bacf728da049b769317d50882b09beb961ab228e4b01fa9d7be7ea0d508b542e36747e4e9118e61c4abbdc901ac9378ea6cc0e1eafdc587a336526e1fa5540ba5f8dd722e4a0448cd2ffc7b363489aa1ef429f7c449532b611447c53bd9eeaebab617ef8cbb60a94aab9fba39f7f31ecd153d308b42ce212e9eb23fb3ec993ecf0c5e6f70ba7c1c1b6a6d6461fa4e99687d55dda81925ad9d27f21c1140d97b1ec054e487f35bb7161307ec6658a0e276f1fa1227c0a7f35a78200b04c80ad57bf5cb5d493ebf9cb16d84e55a6d8a4bc8b8a086a4fe3b134888b8ecce8f1978e6cfd822bc9b6647fc8b33d614f09c74e0182e121f57c131a560a88925b94390d5bab0b1138d75f5b6bfa3c3e7d3db0149c2316253c9f2bd03a1c693b0e786d3ddae28663081e251178a0f55e83df5eb548706bec4a20f7bc1e70d4c9dfd5202e97912f7df77b75776d04680b6815f96a990c256d15db9322323b42f09d297c61285f9357d7df7da44bab452566035d02459130d3eaf50484693de94d8d1c253c838552510d650913160d16f26dde8682a56b3a8ae778c93af9d51329e83fe3b18639d29d14d25ad1597178139dceb652394e4e5380343f87df2753c25a97314b70a3a314f86647699fdb14cecfa180e92131e576fdf70beb594e429885f386c66667a14cdcfb6ccafb070e800d4e2f6aa4e2827dfb17078a6aa1cb777c1c5f67efbd05ad746f9d00817706b016442619ad27453be7445da3590a220148cc4e7c791cfb648b65d9e9ca8c0a6edb912a3b496c066586b1e8f13268e05d6779acc4d26d69087f55747074b8f1d705d5bdc62a04f6577089f7e74304014148f19725afda01e7c0e83b07a0b508736cfdf44927fbc73690b7fa47a0169fedd0c26a8d2822cb1054a9bc4673d616b5a1df748aba75de01a6fcd690a15ab4edd878dbfb3a82b0615600fe939560108765977eb080a10edac555d2115fb34456aca45d644430d5db72844faab5f907c430ba3541bd35e32fd5b2573f3ae0a9f28db888878a61ae0e6b9801bb022431b7ab598ac7d5837e3b12fd0a0f5541f17430b28fefb5e3254796592397b3ca056436d670ced4177ebb8b6de7b618ac7dd53e9513f3514547cb5cde9f0081dee0f3638151bae7e881a3a4336228ae4f5f60d2b5da004e8e3972bcc454d12802a0fc7910da22e1193915946bcb0585a9138bfed2367e8088877fc610fc1fea461e74f2de9a89b74916b9e864679dd0899f91460124311f98f8c6215b03ec0bf9990cfd001aad04740d4efe38faaa0828350622656a8648247cc4864faa22567c5766fc2546438661fd118bb1bf3d6747d8f281bd4c03798fe981427b0201963813fb074b73999fa8a676167f09266b6bb2e841be8dd919c096dab86baaef1e9614e8683d4b73d53d52717abffdba591c095db83ad6e3ee3807ebdd1c5ef6420af4c31ded5b855294899568d42f9eb83b08002e20c647a5c13541bab7b6cedc33667d5a8f2d13644e8215e2890d60d268d24d60403a9a4d9f3ab0eea0b36ec8079ed804910a8cfe7d1fb5c18c5a8d36758976ffeb90a9dc5c50802ad7e69c670d18813659e37c3675aab6313134bb39e940de2f5df700a9237912b3a15ec120abe0cdc0dbf7d0c526a5ca3089579c70980ce208f209cff0a346f5e38ea6afdb82a746a3fb30268a16581612cba30737469d4319375119518d86d6a7c2799784de31b096bd53ed07dafd760008131d2d5a1d99e0c1650d5297d5b3029500a38e2cfee6844a7829e228ae417432a363b6a43f6353dbc4cfd8195b2a8980b30a6d8c2a170cc26ee5667d6ae2be74e9cf7833b2f75afa9f5fb2352fcce6603d901b6bf0f000ddfbe0ff44eee682d74920de356742520e31060e8d2df05601f762942f4751e65f178bc2a0243438380de198f1657c8b995d4f028c36872afbd56959f77f767a5d9619e2b5655fab8fcfb719c7155bcb9bb2b80441212049e4e8cff162ec402a49eb713c8edd667b88004b184635e7ca4c031b72c5df69adcdba796472e22f99d9e5a1cc88be4e9b6570370f52ef1eb4a634520c369831e21138bbbe71afc31cbb9cda365a217bd338230bbf56c0c2aac0ffcd753bb4108a73ee3e92f54bad4012eb3a3e9db4f83f69e429aa8c1d3141f9b485b52229bddb8bc29074e7e2bc42ce2b3a50f39d48ce8954d5984d100101f14940ba857a341f8974277ea27dd095cb1c2ff9b42eaec37f6b4f13793720e7543c41d28339c8333d8e19cc1f671c60c613426b324e6f38f9a833eae8e094e3781332328a0269087c94e300331807fd1cef14fd83bbf296336db0b2f52ca95bc28a8f72ac3b6b26ca95c6bed6be7a7c626c8ea9ea88291f12343f400b6e30a6e2aef80f8d1567245b704f3189b2fe1ec1ce818dc0723b6584acd7304d36cc92e1777de8d590c33160698885b86723da2cff5e6af9f3ffcf3ce65e624bc592dff7a971c2408af28ea6ef2f6a3fb4cbdb6590b228333a681bb70f4177c6c73cc2390758c42f0f621286a31098f176a6ffca500050565ba0d68e7eb958849b0c63111c31fbd57cada51ffe3f4538f4bb5afc536e90c66e58e625fc49b03489f55f8930d8d7ef2ba7c5eb319ab0be794ab14d9ec93b236c58019b90476d65a62546672820ac0bab6904991e4b9a2e1b4e0009dca8c797f13b33104630438751f91e165c113362c9bd873a7295c8fc99f7f480ced44dbc53f55c419eb228027a8bde60b400063ff4c889c651528345ca0672f358a90c069981b06ab4ecd959268af4fc923727f9a825d6e422d517b906750e3c57d5e5c74209357f456e5462eab2c0e4518b7a7bfd3d500d51f85798851c9556a8bae0c2058448af18f65c843f5f17826392465d81fe6ef6271917c1a01184b116b3a746d4d7183f82b8f911f1d4c0a85d1cb88af9bdb8531db2b1ca62338e5008aa06e2db552aadfa39f5aa0ea3fa6079315f7db8844ce423148132eb1019bf20ce71a3586ad328046e5fb11630f5815125b10495b45cd1e17869987ba1c1d23e997ee95f4ec158d8d70cce4ac2541cea37859ec170ae5ce4484e0b4075d43d801066c3048d737198df118560b7b1b44ad7975f060b1adf2afa986524f5d5f134e989e17737bc9bf96b4adaff54194e35d3086c1f2a1017a35cb6b94800fa51ec32e71505b644aba715d705c2978c44c4bbdbff415310c7708398cee6b5ae350642a764103e0725d8f69a38a2aa7ef7f83279070aff2fa41abb33acba820fbb71d994a47417d495c72eba70123d594485302e4852689894f6250138409971e983fd9aafe505cf381bae225e26c2f9d05916a918b9d1093e6fa97ee157d4d923106d4e23385defed60c6025786bf2e26c3fb80a9d31452e4fccfac5e24a4826b2c7964b1b081808027444d5c1cb73e9a1fc4aadd51ecda97eb249078330d5c724bd73600bdd7a33d69903a2eade2600b786d03b394901ab44858b3e743f2887d9614441bb870c9da4273c470cfec416a8582cb3a79ec1fae912aa1403ad9dd17b184ae739c143cac30972ae0f20e8314edc227225ae60c33feb86df0161c669450e1bc70c5a2972b4cd96f95698039ffbde39fca89f796967f442b49fffee26051535790222648ce43c8db5aa5ee6db178c19ff2c6928691cff6759eab74432834498d177e63152c077178101bcb9b0e2c7cf6ed6da83b50287ae771cc722fc52c521053b91a947561bd95207e9733f170bd596e68ed25d17f71a3af389882042d30b86720aeb13afc35470446fd1a954ed7e1db1d684b936000cefaf68eca379576fdb237652c8184eee3d7af6929d25182893de62cc694b99a110a7404ca9774567dbba40a182becbf86ffad1bad2661c0b1b1c12144a13f461914784af77683ac7cb114375ead01ba8ddb770de59117d19e76561786f03950174cadb3fe4341005f7f42353816d8e21d8dabe7883eb033f7827783e214d43b406ec9863c5ce0e6306a7e0db663b9ef9cca33383cfdcc6949aeb5afc1394f564e5cacf344aee9271d4259f13c2a9da036c4637b208fa18d8569bd3c22b2aceffdc905ce5d2cc214f92255f2028b5dcc5918fb2143c04dd57d07837115d7abaf8ff953f1020f7cbfbac4bda8937a24f939d803a32a5270cc6a957feb413635e049884d1a60e79d20f95b0a324e57cb914d9cbcd44eb63c64694380eb60108dcff34a08b2db81c9c6750a6bb8e8cf2666d0a8003c9c989df9f95ccaa8bd27e79d5c3a6f7f89986c5e90df6387e81979294122e0bdf3392e187ed195cabdde35e3d46fd973b555e53ad068978b2a78840fe3515a23a99a1410c24c206653a64e9bb131d4cf5ea6c40d60d222fe5d11f87d3efa6b2b0775066c6fdfdaa589bcbdafca0f72adb55c18248c972de6851631059cbbe37bc80703f49537748cfe3ae347ff0fb195a322e7d449c38e0d79398a788d88ae9d9eb08b302a69c11c637533c1afeac926403c4847aac0a9ff6673b30b632a8e55ad5665518646c78dfda7b4d240577af95d1ac1596cbbe4ab4a1bcccfb6d56b160ea52cf2e348661826f613e89a689ce3fbbcd23f6b905a4f7a4c39c8e2ceb8fe4e154776e3086b5accb8eb31acf99c6ed2e5e05d2a4eaa5b1c9d7214841e8fceecc9fa9c09470541f11c1542e629a3d8cb1add065045062bae243f5901568488de38b77d3e84e7ea29121f4cbee97a3f86785f0225a9e4737dd21ca9ff6360fb0da6d8534e2a91f81f89444b2b9794a4d554172d19c0f3982f14cca8ea782a47d46d70606944854f10027c602daaab513fb1bd183ea433243acc399270fb3d8c851fdcafa2c76f6b4e6b7ab44371e6c57e7df34bc99357f66a984105058d5957e46735c0736b7bf6be4fc30af3dd80bb01aab5a595d1d0f55f68024b601eda09aacbe4dc37125a885b5520fc456154066b0a51739f1525530c64bfcdfc1394710332e182afc1c119b10b1a8048d8ce03120800fb8b8d72ca3a22870c987afcff103f66487e2b60f0620a4c068c882a1581249c981e6d43a4032f1b3fb84b9494667e2b92adc58685a55faee1a72cf924f64b0d0dc20e139a57e2d13322c2c79a8e5d66d728731130c24e2e31b1105489e5f7604c05a4262d7a866cae61beb34f83f620553ebc4928975e30c2c73e43ac7321b3e91a769b7084ce1bb4453b836037aaafd82597c8d216b8d5a28bbb2dc4fb03533b56b6ccc1df9c2cbe60d256b60d8b4fb873c0981dc4d41e3ba2d2648e8dafcd74b4de726ccd1917c28b50e83060973728a6a31b213c7d45cd35731c6e6a6bc83f52a21ec2e019ea5a5f5a5c45fbc3a6d99ed37224aa17e82e719c628a89e8d4cff26df1be80d44c25bd20f4f2a0d6b8381d13709b5146e06507dae7851644a9087a78b5ef69ea908c4725914382100cad4eed4db205d6de94acd0aa33edd965117463b7ef2abc8edce40e3d9acaa881f83bdeb281b2fc264d9adad83b23e7d29a8f6b037fa6104669408e27661517a32e560bc113d3e702ec0db475fc7efcbf311c29e8e3970b7d024952cc6cf42d76c6f18b34f9fb9acb23c8379c11f840ef3191e0e0040674d7b6b30c33c26a05caf7c541d24b501e9e318e2b6ad9408436510963496ad44a201f75867bb272b546ec6f41a9a10afd178aa81ce9f73821c045c37e7d2135b1bf074ac4275477e0c94beecae8a2f913b5f8654c865778b095bd9fff454d301f9753313bd636da0dda5227d24caafdafa84695aceb62ca8adeb8a43fb50920eabd60ee145ea670d43af1611763168bfc4b7f0eec4b3dac1b7c5b7d47d52b361bd80c86847f4601d5eb65cacf2ab82fc27bd12893738ed103ee75f67ec94ff49501b4c72a9a5fca841c6df0ddd01904757fde40303110a00ba85884ed459ab38e872abe8a1b11fcc7de5b489a8a2e3e9353003894e66ab3e54300bb0a7e8c1e51eabe3e8e97c23b5ca274aa2bd15aa05371b2f51e55175ac1384cd51eed4bb556e1c6601abd981f13c356d26f7faa06a46dd1e01bf7eb16ad02bd32339ac94bad5b17fdb39867b6dcb3aae1739478dd7709d7662e78b41ec9e329d292b94689adb60c3634d79700a29013db7c9cc2a6668d9178ce1eb2dd49a9f9dddacdce6901a575ed8cfab872ef20fe27a002e0779a8a160cd5382c714a1ead1b9baa61bbfa7fc8499db206746f951c12eccc5b790e5bda9a18dd472e6f16f57d86fab1a339fd873616ccfbe3348a3d4c20853d6b1dfbe69f19943619583a2192332b8f19a382a1e36e67298fd517b469f64f241d6016261dbfb96b6ee3ff6f126de04b67a792dc42e969edbe54fdb561fa7435f6db61931923aaf01b4078ab571251b4afd80a288ba65a4fa8dd2cec10f3d8056f819df51c6f0b2042d0dd89df872f7263d12eafb9cb1d3ff84d45f1b7da2c5496fad66db3c8c608bbdb0b7cccb7ff0dcb6ab9250bb63fad5190c2a07967d39f8cc9c7c5f04d82798f124aef64a2fc1783436ea7853fc278c7c6eee8df23bf6607b768e7e621ae3d7edf158b917eef64f995e5dc6c139efa6245de485517cb1ad1901451308976657a8ad39e616a9ab5f35e8cd4ce126a0b9f5c0043aafe4fad4738d4aa6a162d8a2a2b91c687ab989108d41224f8c8dabbeef30ed49414f8e5da00aedab7e6fae0686b45c9d87fd698222ac373fdef0b9d35f4666d2a6a1398925e12173aeeed95c31934d6cf7d021102ac7a8a3605c6614b82130968cfee2f86e4bf7f9d54b359fe8b62920a859afebc203f4ebded31d67e0916adae4befff6593b8b68de190448fd145dacb3e76ab3682aaf2f0aaaca70e16b51a4126742bf07722cc3b796f3121b614b7792ef116ae03a7bbf41ead3aafffdb75c97ec10b7d992d91dca8087c129467ca1c52166e3168355030e1edd80b64d567d17575717638590f2a43899df6f60f5ee4526f5425a93796ce224dd63e71ea9f4be54933d85cb272e20c3b7b120e5259a2455978c0ec79753da314e75800b19b09a92411b5b4e52e4479075be2eee9974cfb00a88ecc73adb1b49bc6df7f12504577b810b2c23e889676e55993a786827ee1685eefeb7b1ea15075794aae55a31a49381f895ceef2a14a84f08921a553f4721a8a96de6784493c9cea8724b5a70853dff1887932ec327fc58adbd3f426123865210b5fd2a5263d4f5f75b04c2d748d4fd51151390a9bded776d245b0cc5c574df22ad581687c5d8f416b7f679125cd085a18c9d9002f8005796e61935dfeb58bfea22ca910d340720db01879a8c96b7a92a8347b42c9e48621e19559b744a8419e77fbfc2d7688bac100284b3f6e8071e55e62c6b54623ed9911caed5c2332429681f8d65ef34768100d182af709a8e54decfaf9b10625f5ff1a1fb6b0afd71249ebc1e11e9d8933b0fc7c1a30f25d663f982ffc146ff2d58bca82a522a3fd052cb4f3064c0de3229ce44e614b66e4aa4cbab883cf6a0f5cb02412fdb6dcd910b4318e99e99d19b0c253f4e8cf04bd061c4124f2b4e4e7631bde4be73ddef33e0089acf6eeecd62ca2c81c4de151b1c42b2f74b9b54f4c85fde21257af4d35e5a1388b169c5d6d59943a6b9709346baa66190d67ec1efe0148d080d461758af6048ddec7e397ac5f178ff0f68c7a9d268fa8f4ad0e4c4c49a07b88213ec4121c252b798ff806c6a3362676fc5d53bceb151a600ae5d6bfa2a06868e0a44ae1726e8c4266ee59411d524e982550d345f906c192d8643cd8d19d52eda576404d11e3797dcfb002012ae7ccb0c055729a5556830cf9e904d8c491a88421927ed2b5e0935e0142b9560daa5991736d8c65fafb58085cd637a1a0fb0d1f45270382412ccef21955f9278d33220eef62e295b5fcd04a0e8fe2a1bb7dd8e296717002e03af0559ada82225fc2475899ad18e600b48a40a16797d059c292ae16c78d20ff0a1739a203d50058145c28398735f51171be6c088ee9b83bb87a6b616cc3ef774130b9a595bbde8e27eab8ebcb26efa4bfb4274672f39752880430fc49a17a8ba980859725bf9de6c7ef90ef533ac543834bad8176d2882bbe5532f171580395a81f56c1f6af59af295a1e0e3fa7f60b62737b60ed26c1e3fcc98a28603fd493b078b2c4c61fed51769020ae1804e934dab300bd8d96ddb7426ec626034fa0ee3ecb077ec5e585371ceae2d8d2cdd0d8c3a49a148c493e802d86491be6a773127fac0fc4549e495fe73447bc55e329c2ee73e4467b6d73acea098268480934cf3a81863df1280a546430a073c809c03f02635580efb3b98f7d20ea0f8a5bb1935c0732c7d2260a74d3115c21c7684741c3492f6a9fd18610cfabdaab172846ebe9cd37246880d1bcfe017fa3710b853e6b0ebdf968ff250d8abd2de1eb1d08df06b7c3f2cee0118d989bed6c9d6407abc831e178307b6407201ab172cf8c881c457cfe1ece359b0e6671874d7cc56ef87742f4a109054ee971c06860bcec24043c29544ea634603a5c871133b9e84569a268f3e87b63f9f4805ba1bc2b56e700299d0afd40d28aa802d6f02c63686a3656dcfe4bfcde64313ccfd220a10af7cb210b2848e4cba09ee3cab43cfe4605c9b96c2845e8c362e6f6b252ec79e8987d347aa99d961eb80d8dc571bdb865130b12f991b766e495f954ced6b6e1f8bf8dab4809cdca8fbb72aa9aeb6b130d7e10d2f9dbf194147e3e82a4c7a0d0e22d268ea31532c224bfca0b129059416cc39ab0f6e31f4faf940b5ae4626b237723685f0f17f44fa9640d026a415424102f390e0cd3c5b40f79a6bcf7ad823026a18711e346934d2c50df55d3f08c116ea207cd6f7c1e43182d59b0753863b88737de1bcb953e1e81ac6e41f10887795fed4d19e30b7700ad614214afae05b3d46757a547c2ab13bfbfab425da89a259db681884204e2bc38d3329b263c3a476b94d8be2bbf6b64c08f4f4f23ac93fc4bf46c62fa8ddbdd26b6297d11be1d2c4e8186bb1d6af5a8a59662f0448a37276af47ade8c15b983693342cedcc512d0a2640acf1b92e0815087350f35fcbbfc65f56d9d0e3afe18f4f423b2a36be8e33387383cf24d0b1fe921fec95f797856864effadaa0bf18443c248b3bbf01854ef74ba88c8a2a3dc5a188a7a9d815cc97e282cf91d9a074cd02ca95d2a324a4d67bd9e5c927a4f10d302ba35c1b7f4cae1c5300939d308e29f4ca2dc2aeb79a45144f0ee9eeaec6d4664b66e0fcc08f7a75b74bc63b1fa52b38c26c4aac77fde0822b7220bcaa420ebbe1015bf361c82ad79e79b15ba373196878b5dcd46cf1d0a1405c24c9849d2beb842797fc25b643203973a5dcc4568d5f386c8686da370797def96aab33c60fc4f3d7ff0e6c1ef5ab7753a5d3f482d82a02c018848fe549bf7987cbfdf53eaaa1ffa2a25f37b53af499e50c95027c7b181ff63ea3f26cb5a72ace4fb1b793d0eb4405f2708da059b0a90e96ce3c651fbcc679982388bfac5e4ebb722cafe5834ef11bb73e3532dee1f28dca38de6f0fe2520eaf5863d408d8db4eacb24e2f26a7d6bde79796ce85e4d59f0e0f78420dada6bde1eb2607989c39a98e305766cc45955031f607ec3024de4dc288be0f1b53028b28d05447f32567ffc28fd2f9e99626bc43d09bbc2d7b792c5966f6f0d39c00a9803f40a16287ec024afb6913e04fe541e1fcde6253b7eb631d6da684311e29efef7490f02ab5d68d55fb1686d64cedc3506c59b7275f0efe8aaaeb94d6f2bd4091430679322117ba47445de19dc769a30a7751d612b577c2269677e2789fa2f3cb9fd38ba984fc6fefcfa118fd36f607aaa4907ffe91b8ff97b5a5c071713f4da77dbc6a13a9bd46d5d30387076ebdf252cdc5fbaa1817727de44549bd74accf097355ce3da01e629cd1077d231ca34b33d13db0e26ed949aa429e89d0a46d5f292fe869d6f6d10bdd9dafbef3a9f4b6b630a553eb0bd5b9f7380ae3df4430ef496c1461f9384e93edf76022506c553ab16cdcfd45bb5ecf603b4ac195ffb870308851b62031b5c7a935dc984d281afef42e17db7a7f10065a4f012c61887e2c9fc7c1e4123328b217eceab591b3c142ac8a1a325f9732cf5b54233e67162ecbabf8d8e367889e40d7a56dc5026bfccf2fc685961193ab9752e05cee9be7574384e9e7a6c2bbfc46c37a679e7798f4f71288b78adb3e69c6c17a00d65d832a1d3dcba73188d004fa3bab8f7eb604f9b6c08213dedd6f94a190e97cbcb9dc15e725007716d8d4a5aa6d949178c69330bd04da26679779965ecc6e7f8116d3cb67ec4814fea443a967dc09ce574e88695151a50e1adefe98e3c82b84354affc1f6e0795976e6a6d49ab6e927eff7440a6728a6f424a79f6dce59e5654354af722df1c7b724add724b3c39108b4268a607592854a1feb529b2ef07853b0d2c29d343b96ff971214b1c5646b6b52563038bd9753a97652856fc4abd1aec61c7130190c9b24817db783b3312e68f41c86a63ba65f26f3bba4e1c3958f1d9608f492caaeb5a003255a120a0ec18a16b3f8d649fe259d5d9360ff8f18023183b7d0a8b6ef0f71ce6febc773578869a4b329d977648a77fdecd74f9ad749b90568ff0b8eb6005524fe7d782be2d1be93b5143d877e783b46a9386fb4e84f12e4045acde20f62c50f14662c374d8be1f050ea36b6a85f69e98014e6881979a182c26d164ed2059a1f0f7104dfc17ebf3b8226fc38fd91dca9a713f0955a6664c9a39b2831280970443f64d6456df91c60e060edf8611bb4879a6324cfb3f4f43678c4e421f6dcb7339e6384a52f753f3287bcefcb74d8c538741ebfe8e03966c29b14db6df73303d218d37585e7b076097032c8d5c2177687b4c31c38728339f3d3c0c9770ceacda3c5516cdfd598e06c165239a031783348bb479bdc1f793da4d46b87568f3f37000cdb8ed91d7fc729b2d9714872ba4d20bc71e40d04fa9f06eed7d2ca008792051265a5b970b1070bc29c4b9c24d5529deba2875a82046f32ad2c3560467319281b75dc1f261f45b5fedc58201e302715e25a6488ff1cd7eef9977e4811f276ae97aaf3c6a1a5cdfec502bd00244452da58494159c5c333c606c6a1a9073db89408cb41ef3c7e500f1ed9ac3ac3deb22a7b858d70f8c4634ff79bd911259794c5ab1cbed0dd1d2ce30a38779fd90d4142984c7e136c553ce756f5e084efbd72678cd5dc504f50d19be15f51491719c518b12be6189dd11948a059414733a4d552e6c7e7782c081f57c2b4ccf1e07145c286b4a2845bbe01479749a0dd2265081c03b1c12a317bf088c8f3f7ea3f18c3861026482c9df5782f2f84fbb2387eb88ef8cc1a950b2f3cc6531c0418cbef328792a341f94da24e08652f19e725700d26cd6e48b799c30515ec4014c1873bae1119bee46dcd139e19749e6e6184658d38a33c93a6fb5002b563e8ff5540a938170f139e46ffe4bcc3f249e5ff73588bd4de1eed487304f94185c6f8f8bedf9d5b22d2822a42fa201c8317cf381bba26db2c213caed159eefdf1c59a5b47f90b6c332bfa0e14533fc6342d48b7ea3ba13dddbc3ff63c08c2ce941f8a1889347812c49118292b714e8e62bf7645b6c3537e4d879c7a660aec6d3d2410712f35901d99ee5d1fe0c392813454f27d2c8ed0218874f48fc79b058c99bd8ac39da164b82c0f009f2647e65f4ee8c57251d2603f9583e3e7963d1fd0caa81b6a17a7c56bc259db4daf00c016e07e3efa5074bbf8ce4ef3079c8a6fb9fd3a8344878a26291a3637073760504c974533457d485d961631e84cb2a346e1e2df5a0d66bf46b2df8b3d5eace7fe695a00b1477061f9e60348503215a51f0d393eda837603c3f5b446d01ee67d9c7a7f6d0a969d5b02c785961cc5702617a4d24adf808597df37b8ae6c5efc353f247697dad06ab29a553f881b65d1d57f15ac4a7f7c2c99dd4303387c484f602c401ed8be88fa69e0286dbe89e83790f2088997ea9fc1ae208278aeff1b22b0c5790fbb4ffa719ee8d06f1fa35463cf414928ee4240627377b5340b146a11f348388119b23790b32126bcb4033c35cf41d43d3925230c24cd474ea979e2aa4bd125330877adbb6023d0820b7104c25cadc6c5b4de67c2f808ce07e810875209844ec5d3555b30989d40349afafc9b7912d6d5cf7c31da7966077dac608d50bdef5a620b180ef2761ad6fc53f89ee86afd9c7d3b7421fd647b31c3d3490f274a30ce307424788e64c8ab7b6444c87d80651e4fd2d00d55e98a533cc91a95b7d14fe3f2468f29f51b64f0763f00a944b80e3ebdfb535255204f0730ebc1f6fdbe389558be8df6d270235d2b4eb59364ce0341ac0bcc19abb79c6df714c9ecf57090566d6e97bed59b2dd4eb90603eba0ede48eaa25573a172351c3c3d10e5e4fd0cdcea120b2628f58848f24792df8dfe7a5d4ecbd8473d501846db99834103536c3340d0ca8a5a458a1d8cab21d73f44d3bdf9ac1862ada585fc16b04c9d60f99d98b4142d2cf267bb7fb25bceec29ff41a370b7014c4ffe6e2d5d6769a2cf5b52622e4ccb654d74f30c7d526e70ff36caa665ab09b5090f13d9a59c96fd697f7fec7a595eec82e60720f1a8e4ba1d8ba5282e7c59c70ce1e06db3855b2d1b514fe07b4e2379ad7319b705ca7d0c58a5be4d1d31418506e207f141c8c206ea4fe142346e3abc32f1987aba4e20e85189c053787f63f23192e3d3591200b15d01ff72d144c6919c9db106c209b9902e63fa5e92d9ee0e2ea4facd387bede4e34ea803edc03461feb22b359a2d79b2d2b77ab88350d30a3f3784660d253fc2de3b5f110dfdf597e11bef58e229b1c127425634ad217f8c3b871828daae8216483ef12ee6170741569b550f738c54ce31f78554d7b794c65b292c57d2c08e6edcd96a6e42dddcf50562c6f9ea38280a0e1cc91a76af93e00cd4ee246d6b8076e0f0db7990ed292edee13fcaec44db60841e89bd7209f43bfea8ded010f059508aa33a20c577bf38d7cad62ba237fcd6a1a7c7aa7dff636365ed774ed9d132acc93daf9ac5c920d8bfedc2ce6e96dcec21dfe9f672f663866714c5f1f2dd0ca7dd67e9309f779bd41a74be9c66520e67e4ccea7a45a90ca8de07203e3ce2319ea0f596131046b12b05f5ac303888cf73880ad2120efcaeb215ccf3b2776bde9b4efbbee97e5b029993ee436596868e4abe583e5e142a218710950844f7c6a79febdc299f0fef5848d15d18934c08aef2d7977a9aceb6d6add00876a521cffc41bd24fe4fc3aa02d26e577f5ec6fdbda039052d4fd43f5434fcdb4da4ef7cec50d1c5b76bb843d377965d1a992f5d3a2f2533ac605ea233e7ef1a213a990b594599c90abbe4f00734e807a1467f98ff98f3cb511b344ce46f2614e4b4fcfaeb561e83ec6b20f4c66e3d5861555c56de3f39b015f00f785232b05624efd82ff0d67a9952145be51d61d36230c2bc83e179814bcf3316e7eca303a81a435d7ed46e61e34fdae58bc7ae42908e5eb130804641fd61895598143eb5162032ee4099f1c9807bc1f5f6da9f56abc9447dd529e1e87dcd8a02bf302050db91a1c20066c1dfc79b02357490dfc67a7a72eff0c57c1ec8dd00c9be7f0c629f10227e61fcf0744f0cfed4b14bad1c2f3d17f79f9dd7141c10b9023468e51d0b8d8c0f9175e9afe98e71b475e2fdad341a901ebb0913a4e9c287f84fee9d2235b4f53fbbac298cb8a2c26db7f1c1c242af2351d32bff32e1a3b6e404d58ddb7ea43f9f4f99235e132412c9ea6f74bf38f2b1777021332d2e12a501f101ecf143c9b76d292e3f88a130a3ba9f1b948b3c3417c89dedd787d6c854aab2a824f37b0f4bee348576aa3d2eb77189e52a48b7593b185fa0e61477cfe99b3faf64110cffb225cadac1b1e984cd78d43a3b1d577b2d1c0d205e09ae21871cbdc4d3405b262abd5770c8f80bc7225ad20173aa0518a8b358c9d5bb896b1afcbc026396e3ecf3fcb6e9ada63c71a32a077276d2fa1d64e01e513c3321c67af4cce0d54173045f71de00ad9f5bd5ee095fa5ed4784e134be8b4ad76723917262e19f918c1f3d65690a93e2d78c1c8b53c48ae16a68d5048cffd3a6233feec4c156618e5a051a7524bd1275dc0fdaa444a78231e98b19424408cdc50031ab90fe7fe2823dee7859c5bae78ceb8e71677f9b756c35fceb5abe927ad2ac8828e054f97bf611775b02a30a1df7dddcb0d5185f61d7ac42bd5921d54307f386bdd583e413a9edbf282e81f5cd1dfc1acc439b0a1599bbf87e69b51a0a8795f89869264714c0b30802032debb23788a71153d3e72eccf0129ed48a088b71e1dada070bb1357c60d1c5f130a30fb5b706477ff7a4830d16bc1d81148e6e87ca6a6ea8efdaffe62e02f8041a4b3ccff42011950b0187a2b95202cc32bf00b4c007d23ac299eb1f009ea7f6e90557669e213f55db0e77eef48b6d7864fcb7b5188f4c2c4024b10225d6805e41551b01cc426fd9552d7ab4704e5f11b5eabb9c16d65cc10908c698aa4b23d4b60b658de7341b319ec42c3b67b2437ed2783fac134e2b52f9d06bd791a852b2600a35bb90df7cc8eddeb505d14f47b091b458a1e32ae9d72389ff5dbf2ea35c66b0a3a86c2c4b9c10636c703699d7a7cd1b326451504484236034ea4cea8ff7a780e719458c026364c7457cfc9c6a62982c2b3945c2c9f13ac3a11ba4977d14be3e743fbaa96d9491845d777b7d5f0158d85eb1ddae3af3a764d29106d0d21cdcd5eaa8524da7cffd6fe448d6921a300f4b2eb0237125c31b4f72d8d3dfbfe8a39d3652349a137e0792cbddb4af5c246deb2c2bd6fd03d94476ee5ad2d54751090d57e472e752aa4f619f34478639f4f13405eb851bf742d58336958a42921cb1e4fada2fc8f2b7bc4707e7646e7772c83987dca00ae57e2d2fa602a81d590e9933a6d36716b5ce062e48fbcbbd764a8bf3d89647690443ee39e05a9931431da82ecc1d35f9f72dcd1eeded012aaebc07e457268fcc508a27f24de1d20f1d23fe5ebe9b62c10ce7b169de2ed3804e9621a3afbf3b4af9bd4ddcf68975f7d1408975a8517516db606ba6ba79e519fba52108b0caa0f9725cff8482279fe5d36cfd8edf032dbff593b4a33d4bb34fad259848df65a57e48c230fd09c429c2428e4cd76d78cedc86762d624b0c6eadb202fba0cc34526a5034a258299b9507ad50efefa3be03cf05e9876d63b5b33a6f4129e6af88eed624f7781ad556f201afeb1d75c7e819282ed0ec05fafc201784dc23d5070f36f49c55a30367ead8b9b220127941cc04b80f85a5486efc7fa1fb8384aee2330439d34487e0a7b33000d50caa376322ddb3b271d51facbcffade29b39acd0f12558239df81a704d1645ed4c26410fa8945080c74dca218df8ffa8089a82f91a36512b2368ead35d7909b255d658cce87a53744b0a0faf3a87b1f95bf12ffde7686c34ff0c1848a8dd1f685ed06ad7371a86929b4497cccf7369401a21a50809fa11e7f5d7a11815467a32e4a8cd4a34b0f2aee41081ff7c36a3b135e2571e286f0c51f0cdb78cae306800b239e9d26f930df3f3c12e3e81275668447408b706a83cbc6a64bf5401e58915104c903f2747408c886216e654aea77f06996d2cefbbe578511f5ba134a784c7a56fe1b1843dacc26c5f1b734fb10562917fb461b4ed99f6d114aecda1778b16db50f5d83cf73d940b0c4c6314761add85e640456f55f2c509a7b9e85c7dc35e5a73578c38fe48ffa1adf7bc4ee0d0317bf6d2353ffaf6f6b1300ee53e61d7f51178dc16c63e784ba080b7018c27597e2e8d229d8377eac078113234f9528edcce79628ccdcca4e4d6915e0a2aab018a026f60ac7fb532c398635e6f103dcf4e4b6b4c0f1d1eea304274ea9c9c109250fce5fb878b90ac6429fa984f2ce8f4a4417b1d953d449c92b350b56bdf17e9d5c2a3742a91e52b452caf444613f8adc879637a88cf3e5502b36263ad86d43c83c76cd8797de2fbc931164cb8cfa889dc879567ef47d5f28f6217b9f14e83d4337d112783aed78a3cc0e858e5e8f3b1fa46404941a4868f7990e6c026cc988c68e961de2ad065af7078ead5b2172c7fccd0d995f5e6248ce0cde5e5e31dbf2b66e1fa7d5385cd322fee971ebe363451574bb4f7e2b0a5624921d3a8ab8bf7d8848c590938f4a38d53b9a2e86e9f64296ff80c82c9a12812651d4eca4dc50e1f08aec580e330fafb83eb081b8dadd3dd6fc1e874f76f6ca55f657e791377b07ea1cfba6fa0f8db67802aecf17a8f72cff33f5750bef43c7757a7fa0851c758f844661c56fbf529a18b835be165196f8883cae5eee701822cb68b50fa2a7404b8af14622180b3f019aa18fbae90053fc83152b72a76cf118aa3e7c31a37440c2f06b02cff1965261f34be8717b33de8ab38cbcc44f0c2dfb54bef0889bce46ae1b1639049fd2778656a1765771d49e66787ee7ce421934b02a4fb799c06aef7eefa66d9846944c10c78d6e23408a9f498b38c8eb86946c3225c58a6d470044d5b3efca8c04ff42f20030c250509f3d5f8789a8dcc5c3c20da8295411514fa409c6492d81ea96c1f4aed0389d323b49c944478344d5b4cce49e5f4c16e768aaa41b18c83c90a44432f119508ee4ddca1c0356ff2ccf794aebebbc2911084a4ce794064829344ae59c3349b1e8244f6ee1637ae380ba9f0b6d26f3c41cc41bcc421ff1fdd56bec14745455c139d873a7133580238fc3a11047a9e1f15369aa20dda79c717364d0cdd31a43f84d7dbb01a40b806e8f045b156bf12a8258c0e55f13deabb658b311f423fd2139bab117aff8ad4d9516deb88f5f4ca788d0587c5df1c5790180b65124a6376b5955c6af57674e5937a2df2f94bbd60efee4e5e31fbc1ac4440685c2b7ee32bd63bb63c25fc0958de31340b5ffafca74d8c1aa600668814f14af6f6f57633a2de7ca3e6755c17df4412ce63ebd7a1e6e8018f7dd7a218befa36011e512c182a9d124dd22fca0fb2cea15010cfbf472fd4f9eb3a9d2c6879c7da4ef9a90978025e9b3697e78857afb41db3038aa05529e708dfe64916928817427abc098c88e8af41f9915720d267f1eef3e5bb12bbd09ff22d8bb99d0f1296e3dc050ed0ee5a60a5a9ecc9ec904d6e9a36637d1f80b8ed41ddfb5f7f77e40d65cd78a1c72de944a152f200ebde239beb02db858921a14b7441db2d88c937cf49da537bdd58f54764898c1b7e10be03eb3ccc36b32c82bfae0e35ff572feb4e73f5d584e6bae9185aee2f044a3d625f6ab27a1cea5c5b9cc3eb8462a3f4c3abc24ae23c63bc6cf4b460747c863fed3a77d56f4ddceb320882f50af3bbd49e5ee535672b6a0c076bad333e21bf6cd825570bd93992292ff56889effc96c5683b17442fdcecbba791c5d1f26ea241a69aab2b5b76e2a7ddf72a3efdb4bff868a70573e0f703e2c92e6ae6e82f92a0c2023d1c546bc05bd6a09dd159f7bdb973f6d6d358cf2525d495cd628f12f39bc258d426a40e2e323079316a6fb059bafb7ba4d037044b22d4a57a83b1fe7f59b2869dd6d880b8bbced053444d86f8ef15f8f31d4267bde2ab5f33b107196f6b065525ed294c7d6c819daa0ffb81937e0f4a776156107a9f670c1692f558c4a9fa3cce648c0f73110a943c6bf47ffcc8f136c20f64448bcfdb05f53f6966cf18394c1793a438a1f7e87629ac0cd51b8a8ce9f53771f56117e2c15db5aa36d609fa8857e6015fbb51080670e1fb0541a3af1b0db0cf7fe78ddbf0c28c0f1daffcf9b7342ed39991d170dd89d7541f3445cd919a5cda1191550725b26db0237abdc470d7544381d13c0812bc4887a5f3ca314e744344186e0ce19da03a7a773358f8517ab43c3336bf866f583036ca93e6128286d6f456d235e172ab369821be09e2656dc1ad13d899925b2e0437ba738b92ff77b425a9000a4e5f16ec8f3f3e76a5264e4b4a5ade7e757146437bcb74c8139ceeb75dfcae9ce737b2dece592f584cfa404b0911693615c629c47fada51f58f14e1d7ce3126cc866330b627a0ab0b046d5fe6673baedc030d9956426a53395429a2cc319d52ce9af67a044afe1dd5b65c7e86eb25eef5742970cbff2f0fac17b4186f88c7de23ff2c530631e35569db4bcdbbb8971ccf9ee1bbaefefd78095daf5141c4998d5d26f5c5a0cbfccfccf2561be769f3971dd53f17d7e4f1355d2b74006db8acf6c464a020e3a21afb1acb591e67fb12d0886ff3a425f47920c51c09fb932183062397d3778b3379bff0a797edf0af5ecc5886cd88d227d4c803931abb30a7817bd66b52219b43b8f2a61d678478f7dda57426be6cc9fe31f0e2fb4cdf8678346a3a485938fba5b9e25c297743a91aea09b1960bfd1585e30e664f0da9236704b95c04ff1d311e22cfd24faa6feeaca0b96e88566c606eeccdcc319f7feea017a604f744f22256fa6d14cd93b00b07320c894dbfef79532e8b6563eb6bc96bbc3e090c111eec17fa66f31e5a91454cae69946d293ef964e3db2f687c9cc18466e7f7de4acdc13d5cd6517421041abc01d06c342c16e7247d054f912ae3cf04fad70a14ba6ee709b6cd3ccb27db885267521414b8ba7af91a814cd2333729edd89a6f691133b3d830d1d6c76b50ecf8b694e1f3d96de6aab4802a0cdf311fbdea8fdd3ac794a25eb159128e0e7e61c99a51fec64ef9331ec56346b8559190b39f6c7c71f9cc7ee4eb533c28a0e5c026e5d53504cb2b31dfb9410b1d12b7e99dc3b61a1aa05b9133219f56442dea26abf78213d9f2546c4bac6674761b2ab556ce4ab41bbf82e8234491425234540c2f694f513201c94070f1ce5fbc4c15bc5542d748c81ccaabfe9373bb4c9fd1ee6adf4496f30464f3edddaeb0f00dc5b6f393610242407d80264c0021b77e6f89f55eff84f86c02df71b3ec411f3b2c8d4306c0abee1f2bfeb7e5eb119a89239da02a321ab95403b1990da2a8796f6127a3e41f7773f52733148c56d68855454976a9225baba4cdb5514c9fc6388e1ece65827d14f321083987d15b9af9d012f4d8b02a54bca24935006ae52c2e2e411b3a742f1888ea29d97c6587787ac929c387fe36677a0065df0f642c4e2f804b7a2d895cb1351a2841f5895a548d2e0fa489a448eacacd9048abdc5e81c463e4386f2380b0c8436ac72b4ac8843451abe440a7f71545f84076bbe419d4c5a0552735b3e9dd627396bfa100ba4e7a97ca5b2914eb438c286f7b7bed30adcfa70cc963403da0aa9c165fff8e8e2f7dfa9c210366627d43e01a2533b92a3fb9ce1c15dc21f2f2d8f799b17cc693f7ca2c35d86b21ae5974b4c1b6eac2c2ca76b9bac6903bd5ac1fcd949dc4e38eb414760d842833b52c8361eab629fd65b11183c13dc55e841622e3bcf883ad396c852880f4a1bf70850a3f9fcb12f8b757a0452fef17b2f4d079e28dac16b9bea645134fbc55c16cfc374beba66e770ed867d3a6653a59eb0b8285c6ea049540c9f57c1eba3d0a4c52849e60037841f58491ceecd178ee860ce358eb71421d52402900f43070fa45dee09994b07a77ab3b1ed06b2b73c2b5039826c2e161097d7a2c1bbe707a84a04cb48a9faf9719a28601fab2e0a940ba3469e2d61f2ed9bfb29f63cb0e38e63bad40d19e5f406f00908e23f217c049ae6b1414f8cb5ba0078bb01551ae28d309d24ccf34ba3aee21e4a0ca817f95cefcc39d48b8c444d6ba76fc25e75886ab8dfd2a0604a040e213042b175aae9979e4be8209f0bbdf3a31f5651409679ec163e176d438358c8718c8148a9c14fbbdf9a9c9353adb6516399c667d98f82e9db8ec2435fd4de38228929363077c9336a455275e7578589591f2a7ce57fdcaa2cdeabcba04ebf3a16c5066688218b4d89f1bb5f244dad8c66f1aed926fcd868377f1d9c203c61397c44f9f70972833217a35f1a58e0c84cffc4b9780eb516f5fa29f498732eeb4f342dee515f5255d0c19630366ffc44437d31f4fd53dbd8d93c9ab6443cf7421fdadbd59eaed85ab5b33e17fb28657cdd486a99c90b8d379c280c27a1d9a295017ff6582dcf6096366d5af22e2d5baabbd196278ce13c4bcc4ebb46be55967e469e717f4cf2aa07b74de283d21e59c29ce85e21edaec8f86d444f7c70255f0aa1348bf94fdc6d3736d80e6cf8e6f876ad0366eb19043047876586f121edcda25b9b8a5aa61aecdf176c5f98ae373147a068e4d6d52fb4183570a93fd29bd8df97a02f51e59e6e453f908712e7bb5323cdf60f883105cd62496cfd6bd72cfcc4c69a4099e921abf9262782e056e3b7a71ea7510defc946377b3316ccb426ad56d5952957fa3170117ea980e74a5d09041b40a2c530031d9e3b64d50ad7dec8a4e9b7191a0e3508f648ac25ed77b859efd0c50702063a83c70e554aaa74a35b3a96c9d0199ae5a5ebd5f9fa328852bd20c66ebfba702d201efcb0d7a678a2b43e32f2386f7cb70d31d9db0af2693d9f534597421c30669f390415296055c37bbf55c88be6c8befb43453c909fae46c13b123f771314890ab9b768efbfa66c793feda007c1015dbaa385790a38fb70229c8da7697ee80489c4619466ae0f8cab93bf1f7c32a89594fbdb103e023197eedd56364ff78eefca700198d551347371b8c468ca22ace33cfe91fefe9b7f708a5f7c52a555345f649a0968d219a4d8643c57611cdb456571ab35b795a6bdf8a05cf3fa5cc4ab4e74e401e05b2e1d53508709d8d14f4bc58a4fb11992ff4c2332b0da8a63c4c3d631dcb5dc6482e294445bed53aa895cbebb4baa79a12af75f89cb7037109d2d8628e762935b4d9d3b9a9cb1707281b706c488d319cee01340e6159e93edf34b0c155b2c5cdcdb8a71d947b0b16876c1d5780524b12d70ab47221923cbc3c693abffa4a1c9a4842ddfefe85613fbed358cfa3b5cf453ed5bd6160b50989cdf32d8060c3b8becf50cc6b7d85038c4ecc861ab0c7c9ce7b8f37e0bc6bcdbb941e0a8ede2626ef749a367b4718f4bb93509022790a5d20a37ae7354788405ae7b87053e9d58ef76e3787c6566608bfe68ea4f6598fcafca98eea6be583d4e336eca89f4a0f4d3328d2bbea929ebc3f90302e47750b2cfade0c04d3c75069c7abef6a28ea3771159d5ae5070e3d45168b9c0eeb8503f807b07a777eed7769e98fa48305262321a30a574f44512ca7d116e0545e3f71e4e1c0be13c3b8b265248965f633bbdd19f5ec2b6648b91311341a27f13c3e84479d515a73bf93727dc3a39202103ebd8bba4df565c1e264e8b555ee58c88860a822f5f83ad0a4085e072da4d9e322b6feb462cbb4e126fafc006659ab699ffccbac97d04c1a935f66a55dcee152563aeb377c8c8cdb27581e719656a8271d812c49d58b7c025b798945d47f18e965223aae4386416b6de4dd9d837ab832e8cb735fa0b84cb53223de04e044879a3863ec164a98044b11a3a1c98dbd565cf2f8432438f5a3a27e9166f39ad9c4385792c182e6a978bf7b4d4b711b85689a891253256f5535fcd5d57e95d4742bfbc47ad295648dd40a30d49fc3aba27386384ba1c041ba8c3917618d65cc95c4ff6744bb0b83aa93f6a89d4b21b9322de036635ba9bc154d958c03054ebcdee9c401f01e30420ae9514514d8a36b858f086a1bcd6933d53390201d843133c641afb7290467029e416a445527931b7b8086f5d7a1dac6ebe16ca2efe0633f290e882bb4c9a4f2db2398d21213efa3fe14835bd493ac3b3740b01a453f2c6908bafb23ee36f2ce0aa4b325fb9bea8487a94d2d8b94e4203992a72fdcdf487df93217c5347befeed67599a936af6bd6cd5ad74b336b58465eefe2994c366a2718e2d15824c54ba40a5dab3ccfe78c0a1ae536b874c034834ee8b2a855f6b55c7f0782a7f9784de983604d7c12da1c80da9325f4b69077ccfe92afd6c835419695d265e095f34e5fc1ab692141671ee568b682f2aa08779b7f15346e82749cdbb5d01a12e7353b9da07ced6c1d5048692902cf97f2e159a4c10ce03d2258469dff322633b7ca17ce27d448a42abd85c06d65b2ca07709adccad9165d762d335f57fb71ba23b7779f74e2f19dafbb73f5c5117514c5af89d115f57e00cacd4d33e257c6c73f4c04802a4fe05dcebee60ba9ef86d131d6ca4e15e5825e8a5af003865356dca23efc2dfa9013c2420c63739f40f8f1730dd454165ad2a3f35d6cae38893523e67eb2951c800b3f9a9ca64959f0014a0949745ffa3ee0f7b74387ed27b7dc4952ec0a00db304cacf65e1c6d5af87a72aa5c48fc83436591d2c8f81304e6a5e83f21fe907eece020ae00695f2645623979cb45b12f82dadaf8f5ed96f757537bec461b1641d0d5df5951e4f715bf5ba25c173233d36800a75b748668159a87e9c51404251933ba54261c16e640742b77acb22aec7cf85875aa90572248e24c9f6eddee897b74262076d73f0425643d688e181ed24dc6acc68a0ceaff0b5b8c35fcd123066c3f31342adcd179f5181ebda6fa518d47e48481f5f23ba97d1d98aa32727f5e779ef90021eef3adbb0d0095fee4daee48feb2662c003acd8761a42abe76f6b970761fb1bebfff09b4db3ab7413325b7b284c79539d24d8c39db4868ad600c500c1f477690c2048c904cc5f3b5b472ac6eb39b212b03cbb28f530085ae3f5b67b1d99ce55c0744298bbac1138ee6550153a1c9b47c8282c33a4aad89d02e11a41dd849643328b700729aee597a3e340b1c49304661ff31d22bd5136fcb7d6fa6b35d01a44c37875d17a734939899cd4876aa73dddef90f2ef20159b6107b4bf98e47782fce759289cfe81bb72586adb8d2b67a67ee1c42dc33b48b9126598f50b7f0e706c325ec6fe6be531893c8b97fffbaef9a11d869e2ca5b1b9c0fb8b7170df98c4cdb225a0f37242e25e12ea9dfbe5bc2ec10cb136151e45c23c1f15750c9ee2801c50dd7bc4ea321b8617f887dd608a694d37a467e26ef06ffe96693c0aa3b7fd02fbe1336c6d147f8431236f850ff91a183f2f91f36c0b5f98bafa6712a00dbedcd5fef83bab5ddc98b6fe6ceeb90401e706899760d456ac929c15c7e51b88a00e41602ad8f2bc7ce561da097eb6bb0455fba8857064508988bd297310a9f5b203a491738673d0af790a4c085d00ba6c7429999679318d81b5c03cd7406c625e27fb0ad7ef46050a17ab47540a550291d80889615f73c06402094888e95c14174752b75cf98bb674ba2374309e27702ed3e69ba64efb8215d4bc9e53003990bcb6bdbd860f1dfc2d2331f81321e5743806f263887208e9f01726a16d8596564dded7b6f1341f3f644bfa3dce509c6bd467b3ab2484862564add2ce078a2a933f1a40a890460cc3f40d9bcd23a6a9a886bd133c248842204cb003f1d7ffbf8dff7c9c5a8f01a69f8e3369b389d11767f79c111740535a2c90695983c1c21f0d7fab53f04662c0a26512703b5830eecc10f564fcab5471ea87858a9bce540e10a9863c606c73961eeba8c7f45768a2f32a621b637f4f01c0a2cb97eb4c332d26f8ef3a5ce1c7e7f1b07b787b6641394f7612f9f253922593ae5e87e4e2f71967f5a86ddaeb90c9f99fec1dc2e4d49a4fef9891c6f254448e9d91d6648c16adfb6e2fcb5adabd573fc0d5995a3322a7974ab0aa2e79cff4facf90149721007171534724a06ffd56cfa950289616376494c3e6228d1b01ff179c692fd32e078b9a34e807aa6d01d31edcb540e880fe7ddbf198e71665ad6032ebdf371039fb7ace701a2eeb13096af522ab6498c2f31b4c7682b0a5305eea00a4ef526f1343ac570d943cffdd4b04b4c718b9cb3ba0e20a24e5adf37eab17a3265523a1e22cd404d19568f959b6b0c2137f51e9a2dc8a6552b23c5283997372d83e62a41ed9d8195ca71b337dd5136bc087f70b160f82627f08f152f14f1d769655ec722e2d5bce1d7e2ced78f65642a1a6296baae841b2184eba4c759394fb43e25861f205ea1cd3929081a391a071d873d104e6b036e9538d9a3623fb840c37f90dbabf8a6347b33c356dcb0cb2b6c2366c658a90ada944d36ace4bb943eae2f8c01c99d8c440f9f5254aab35a9291db2ff7985121d87686f72126c2970172d4490a9520b3d6344a6feb4945d96129a5d2d221894c6456ce7445744b2ccf6eebb305bbbff3ee9562b8662de3704078ffcc07db6773b994ecd4d0103266aae6f1a777fe85b5df65f2f6620287ec2de203e61b02ff124851498bbeaddb19fc83fd385bb3384b18d86c63ef2779904373063110a5affcc3f6c119e3f4b34e15d1e47c754396b00ea74a60b72ef3296758c6b47828d11822ad8d88580277964ec0f7a5c8ade4407390b63b695e928012642e98e2c2a767c4e6314656e84b138e24486b8e01d04056d449caad319a938b8ca5f61d00abbadfd48661f42aaf36ad3582013fe6985548b8d8ececd6064d4d6befbdc2401ce05beecb4f85412d838e105526d0159343c8044f53cbb06f94ebbf9c371237ed3a0c6eccb0a519eddab2346b0086dbf38d81879c0ec6d5b9eb70ea0b20296bf60024d513c3dd930a25c505f3d5659bf0d1f891b1c3908f9aff0e72f96c50ba7d993665327ab404c153e24cb7db984a2df743778b91e3dfe9d5fe81a0251dd20cd6e9a5116960b465155bb5c79ed3f17a8f551251fc35f5c48398656beef9b697ffbce158f2d66132ba4b4fb1ca242fe6ff33407f6f7cb98095fd11342aa73ff3f1eca8e170d6b9df18ae10474e64b4154d2e6225295e466c922c9b14d338999bbf8a4c3c4aace30f7c784ffa20dac7f8a4c1dd31a081696346f7bcc76c1bc2ca974f65441de4f788e2f348c32a9ac1c5ff6b99ceb77d2631bb205399b2b30edfe8954fc57ec1813f1cb39c9910819048721985cd51b634c20bdbe2e6e23ea511f924a72ef66102318e7bce7ce7b335810b33102512eb7c277bf80f30cab3047d6f29d1582ca96f0ea7ffc60c100346925797b27c65879d68796625b7ef86787387ca75597ea5b0b64e8252b2bc966dffe1ed61c91cd36b2680f490b1855ea625e848fe6766ef2281da59a057e4d9e73b51d81cfa2ffb6c0df1fb6508fff406995a791ad26ca2165850d0c6b0a3ae0589f57c64b4798a5a186039d7a86ca363eed7ba3d0093f250a3020e3b144f95ae24e5c7be207e52a3a2f30ac364044f5cf8a93c1d8a6a0d8802cf925ae3b695dbc7ff8832c78ef4ec4ac452256373bfe7219886375b4aeaecd78941e68260681a757346cf7bdd338aa5666fa120deb5c9a45aba49e753e99ca2602881e3b5930d979c34255b50f907bf0818fbffaf761e10cef2d66e3aa52d293d00339a6defe86e5b45c9d6287aa36ecd6c9f6a9cdad71ea17aa553fe27277473d4ea88ad46f5d238aad4d1cf42d0784f371a81736537de7651427d0ec787984463f416aa9f133df47564cd58ffb581762a9e5bac535624b79b7ccd81473e52008f86f9c305332955431a258ebbadcf07ec82dac6099e568726e5a45a8faf6ecfa6398c6691dac359e89b5b98fcc5dd9cd5c006e7d25180a51e567706153507716587b928cfa3e81c461077928641bee9a576024c6600b91f7668708b729b8b74435273f295ba700d37a56d9dd8174d7dce6589843d15db213afb2716fea29cba215ebb28d261d150760da2446a723265a57501835f4b8a5347b366d90d7eb64660d23b22ca6f0a6b1cfc6f457d30b55f852f1bf3e6308a806076fa719959abab2cbb6f66e6cbe485f6acc80be7655d85d241027334aa6485a8ef9a403fcfed9c32895b7916f680f18e59df758dd66694ecfe1d926f6f60bae50ede6b5071ab6ee091d535817f35b836c5e5b0727f034853dc61b7b38bc756c2863c7c6a42b78e20895ef84d8cbd5fc1b5d840140e6e65a4f42d5108de7d86724e26c4513d4440c00e8a1cfa57b731ed715c859165cc68a685bff00d9be72bc621270634cc6f24bb21f78edcaf72a5a348a94d861ce2fb457131331ccb1f88b1fe1a0b37529c594aa6d8752f730fc5560a884dc6fc92a047be0c9a66c87e43c5a8721a3ba39b3be5e40d32361beca7c18c5e852e853539721669b5a0c27090e32688860587a90e5908cb3adc2f645c3b284cef9169b55822479d41843d9c62bd4403bf9b3b361fbca1d19577cddeda9c3a56035f0f868489c47f1a8e9158f447114e9b73ef8020482539ee2f272ddc73a4a4e4fb1165d25723372641697414685f19cf414802d4166bc78be90339addd4ace49ffbeec8b319d9a9940454cf68547f1ba9be0a643532fd9ac7939035aee9735725c98f6c11d9222389df8307e99a2e10a56c1d918b192da045839f2c9f9f774ba50d7cdf90d026971c32a1e4484902ad585ee5edae2974f61f78270a76d5bdba161e5315eba143a7e92d7c0c63bf5042b4edbfd1a57a76cb76d2cdb2c2cb8f85202e0281e519334df46cdcd885bf7764d30effbe2bb0e3f1c1a5fc03081873a01881ca2e3e26bfade0c32a812348238f8680967dea67c656985da6d0bdc4798adec9ee88b0931f1f941fd571251c4a77401f82f1a48845890d06dcf2f72f74f2480a2e58b0199924da678d013beb1cd669f02155a3c2043dea17f9d91cf9cb2450f1533aa51fd4c7101c5868b06807286ca5e5c516b2b6bb2a888db3223c100ec391bfef827ddf35a0855582d0b2b42b653ba5e485de529697d98a672c7f25600a88ab939c659c030a472c1c94bf3002bc5b5e1f89a73747dd9cf53f71e40aa908e6ea014b3b9e12a14b6632b32dbcf94476642ab795df422e2e3de4d60c0d4f87d8308cee8e69de6c692dcae3f28817c34d36fde2c0fb0da859da898530cb270c2be8463e5ee01cd31c9eb8ebce7fc46a27bb504165843c4bb5b85e756c04b91b8c5d73a5383226f5ff2e91ead67b59092cd551f12eda7adc9901b1337fe15a35772b6ccfc7decf967f98e6d5ebb2bd30faff442f4e78d23944092358ceb3bc7db545af5e0548523899e080ad139848673f8d14e7341440462858f1a522ffc4dea2de4d488a63b341df460e5a5fd2a3142f5d360905b31576b0c8740667915ccc2758e6933b7070d43e3348af667881787e861d0e27adb6a019858456ef942c10fd5af4d06ec9b4da3a8ba24af98c57d5d840eba4545817b1c7e3ed86ae4c8e1b1ae8d43364f05fc6050181596faa0ad617312661a494264a1280c8be4f410557190fe78050fdc4fee400a062ab5523218d09613b277d71cc093bc1c31e5567bd8c3dcac88fc038330b0d9c1e43a81fcf5adcff278a1db0562d05017c9f9640c9cc148a05f0ffdc9172ba33f3ebc4560988ee6572b00a445bd86feda067560a1dcb9bb7df0e0c3d59210eda200b2401fe8ecb470b5b1a8b7c86eae70f122a6fb3d0eea1f412e42818f148e271b57bef056b44e075d337d307ad6cabde6cdb69a48d675623c5b4f8c8cbee333272aeb3923c55c1b7cea58186f1f5ef311c73373ca5c71e60ced40861aea580b406e18e89176475c62a02f9edd3f81529c65ebd8f39fb1f4390f0b4a8c473cdba2ab109f5a0d31ceeaff590573401aa06f81f5edbdd1f0675e0df1ad01d9e61bca2b7cad1649c023f218cecf11bfeae132f7df28c0d8c0c8a4dcc548e97732805c7e55795fd9ba9621dee7c6386eee3ee329ebc3fad04d05af8fbc6e104e40ed54f76d566de26f4971acc1243a92091d0c7c56274486f06e33e3c8c75a5c8f343e2c02f9737df27a5cbb1c60508507d62ad9bca0f7ff90e763b48f2145f5628a3a795ef6ad36241801add95c0c35e99d3b2d81f93befd8682786e75e694279f2d37e9305058e8f734b0501038fa38374c6e94abeb843364f49fde8a653bd111d409d3af2887a122edeac5b7e7e666e3c04829249d998ad1205658f351bb7436ed77d4a7373e3589a9d6e9ba8ad264251ddf23de3ccc17c57c02be96f5bd3a429fc8afb574b242725a57b1360fa21273794354d874b448d805861d81d5c883ffc9372bcbcd58f748cf4e600cdfda9b33de8cd9625c7ddb62d243e63eb71a2d95e83a9363ae8e855ef512963d7c7a31a305d3f946c19fbd14fac9c9493e2c18a8a4fe66240dbe8b700b5a0644f0509aa6c1e943e71ee3e9abc2b78ec56e2d8a2f928a4ad0f50bbe9e60e09538a9e6999fda4d9fac524ff606c1776609f92afe0ae25a22b023a83f791690a28761265288de19f96d21bc88fcb4c5becf34362f8bc5f63de169fd3d49228aba16590310d4f2c7b547f71d7fac90691b29d9fe169c801af08f14f3457bdacd8ea1619183339a687088500a0039265a6aca0c76ea77d081093bdeba3001fbbe0d3b6bdf8c82508e044f408488b1128cdebe9ed218c35a55680b0e0119a14cff99ae269c19fb8152696c54c2bb5be315b69d55d672242bb14720cbee29d88eeb944ea83f9d8210bffcf84925679429a4b676d757fba9de6203de6186f72a4ae9e84d5143be51766936969700d07f34fbb600596fc50f6d7178e167984747ed68835ed17b3d2a25b11ea6d7a47f747c96d8a12a646454f97d69d0b40e2d18e743a62cb07a4eb9225296538ee2d4fb2dc47e363581860b36b02f66c3fbe33f54adcdd33bde2a4bc139107e6bf9f528299d3d41b0f032ab1bb8145c3c14039d92d7b6c373a58dc53f681b30b7bae26c5e7c0630ddbea919b37ff44961b05c26f4e887b630a8467000836ad7dc3234444c85ff05eca85e3c8036babb2779e086f74556a0077f6f185f77257b061f7b9104926879473de0d4a6677328a750f8dfbd69c62a0ecd52b1912faffc3aed93f44a631c1636cd639d4b01babdf5c50cf579df7c080955948bcd817bc8de4ab18e299bc34f325a1b0d6bc1222311ecfd9e00e680d805a52cc3c7c16552f4e05c50191aa75677a4612f7545b149213ed9b2121d383aa32a0acacd4c8441096b185ad5701a6df1120dc6d54b9b3e7797c1407627f2c9fe7b8bc706a02c249762dae1ed06c9643a75f3ffd19343bb9e6484c7f339a844f3b266d3e101eddd7e02cc74175b776851f88477c29965306938b200dedb2b6dba905daa25e79ac214d1581acbb57163958f150307cef87d52f76dd1abf3c638dd88829ed1af388aa3883766fdfe0b4a28c46cf6e0d12ca6c1dafa8152310f93221753a9634725afe10c3be6d508c629f32076441a61507664acdbb9b3aeb9d5d8fa5a27f8d5ff42aad595024babbf0083b074506c8d5cb11b4de6e47bfeba6431386fda332278258357b330b976d7277b3eff246db70f9d97de312e10b17a149a4998a1204bb0353d79484fa5aca4c82e1b83f3f75c98996d94e9c0157d5e9738bf41b500c10da16efc3463d839bd7e21135a5ce9b076406878a1d706e72d74214c05477f0a063b25a59063c46ce8d1a8087ebcd6c1641de847311c4219e71bb70bc37b2f3e8a80e895f4be92ff5cd7eeda61f037324a01faada751612edb99eb3b805e701e81871730ddc59b3c72accb8dfd92d4025cba94202b6cbcb578411621b6cb216a655c81954cf329d9e4ba38951d4e59850eb36762665c0e6b8df36445e03091fab10164a566fd75df85c91ed6fd1459ca02d3735f1c86268510e7fca8f1d1a2584f78773e8eb8055f710869681d29cd655f73ba3043483ca450ead93cfe44d2f42b0110617dda9a7e12fd944229e9f1b702ae57a7330e5d81db2d45dd4c978bcfbe59967a095779ea0b841c9c396d4593a7a82b3487adb0e4549d3f268429e3047650cd876450b52429160f527e13356bdcfdac4ffc9783d8cd8046fe8d7dcd6c348e3b53fece41a7ac7c0c3e5da356449becb41086f1f0aa8e23797c5855d569135f974d81bc2511d616f7aeae0c9bbf107b32649ba7944b0c021d106686099d6a7b641cd8aa202a7bc8c0df465ef030c32d4249938252aa08ad5b7c5b9c02e3b4fecbae176dc83b48179911859eb05b4292c6846bd9a6dd88fff33ae238a1f6d7bec648cd76a558721811e3cdc53424af864d1903c1d3d9d5fe775835a790b9e98b5787860df4786e723229d4a6c4ef087db612c76b99597617a2d9a0d822001bc3f7a0454a2adbb9962bc4b8f8b750d78e9a3c16fa0e551fee0e25d25b42a51403f91c1256a4455a9ad71a8cb8617cd01e52d6ebf6660bd576060c9511a8b4b72eef7f7ec149825f3592ced4d5aa29fec88fa43a6f26ead918ab4f0e86b5d2f4db0f321a74ddb2210bd42a6d78ad2b592b635c3fa22545baaff717715ac7543479eb36c4aa795e53553f93034f91a87f5c34868e37876e2e2407818551028502e53213da817122da790c2421f22b250e2c7651f614ebec2b758bf2147c8fe23148528a81ffc2b5db44050617b04c88f26968dc8a9631f60695956f4ca809a0d4b403af91f12f4f94b94646ad827d588d45d10b752cdb38314f402856ebcfb6472d5d82f7b0daa2d1b42330c4a7dc8c1971bd5364b8dc5d95aaab6df2c5b5c0093ccc97c88b6b2463e5a0d4b8e14178519524801a760c3709b5c5c9f7ceb91be4b6f23c716ba853681af04ff83df556475baaec8388c643dbb365777ae9eaa010ebccb2a2f95091430f82d53f1fd12b1bddebcb0fcb12e987d3d6aad9bfa172c6ad42673a746779a77082b469a4b190390d0c0d252f927be6cfea599a4a243296c38a3a784b0aaa555c8b02da72a26b4b96d5fbb0914bf4e5224682affd1dbe507618a7b2dd3b7b919c7ce2f5bc45e65ece4e2eb38ead9cd3ff26e6255617ed1958bfcda6c4cb87b758ed8c71a3a7f78826c5c56ebf68a2227e780d5b371aa635fc8466244c407341d17f346c280d395535d67e6999f241a030c2f2ec8160a933b9ed2e68e319155f800734f4ce08626992330f6751041e58faec6ab6f9a365e3bd5c6ed722062ede1706a59c851bcdae2b77dd88367dc97938a9d9c95331347663a1131a5647435f9b5ff31a1352f251b92e0518538cea8b6a381e7614abbd1866ef9227be1810582186875331cd1bf9b48d618b4b3c675ec513c87b7a3ca0607128d61cd51c15c5574ac1ab49af621524da55a4cf972bc6b42c609030e77f3dcdf2d45aa399edbe180afe666662a0bf47af039e7639324376f000d59698c2987894a59d86bd94abce847f62430ab0144648648a5d39db3354f84cbe424dd3e1966d3dc28cd0213c092a23a33faedc96597bc112944fd56dbc0638ba68b224a58464c3f9a3fe8c2bfbe8bf468e23bee4247bb8f61371f5c61717f2c827a996be7ff74ab4adf688bc5d7af3da69aa740ff0c7ab424bf46fb8ec2709e9d59e141848162793afb16c4e31d5f809a0924527db3d2e4992f8cca1171e2680f73c47253828ab7de7336669589e1fddacd7afbf23efb7874c48745667d9923dd009a273d1eb4aa8369f090ae8af247499d3ed68da2ec3dfec2e44d50195efc498ce38d59f1f7467f640804dd848ec7c9ba9ac127d6b7f2f1e281a5e39b6a367578a0566d84fab83361faa8b82bd6364afc0d620b3e8fcd2508d3761cbe04a648d29335761c54dde1692c0764206e27181bb59dc89656f70597efcb07a26b35b7bf6165473fa9c84ba8c9cebc726b7b8748c51f19d7df0bdfed17167c6653624b28fb23367f4f402719f04f1ce88feae8403dd7d4b9979bf8cc83aa6149bdbd0571472fd65f7a3f604b1501a8295381d056a077f6e148ab7fb7fa3e8b9a196d8b655d50c665d4742bd5e9fd313cf81eac30c4f7afcac83441970e701e0147aba4a8e5cd8ca318c2e8688e83a9e3b8f6a93257138ff5d5a3342dd0408cd530450b4672f48355b9bfd5b3a0731bd4e210efcecac8b1082b57d6187c911992841c893fb096d65ee036907081d542d29cc81d36badb0acfce265280eeabf79b34a6662f59898cb91ea568573852a925ec4d2c22bb52b64cf5d87da3a2bcece6446c295ab425a72bf0c084d685b857fe7c228bb5c3f85d595aaba3e3a2528c35ac8da2c947c84dd3d0ecd1bb057916b0a2a19ba8f5ddad72dacd1c0a15e2fff7ea3a4d4b13520a5c02c4c73ac12c3ee5fe73763facd4d8b832e5bbd7fd455f0b5738fd6b50a915ef4698faf7310b182b411902c21ff42c473d8b07276e3699db0161ddca3b37b430c8e97d048374ce797a675970ce18b85ab3cc442b8bd5eba98c23be5ddd67a2dc18ef16f3cf69ed999203822d205ffcf87aa75196ca26edf934ffb3801e2b91d3bf133f713d0f738987ea725a67acb408ca924faf4a932367e10b06ebbd79b2ab0375f60d0a32704241ec6a9b7627a90ef5f51da465662e65fd716ce3dac95516be67661821c03885ee2b978180ba930094ada49f7e507eac80ee9e4de29994acd6ef53c04c4a248811a00953db9414e0c38bee6e8ee59d559554336ba1e90ef5a44962e2df86deae9d96ff6a90aab60fb0d313bf241d0ae5ed08cc6923c0b7b4e163252a93cf47abc92d78ec533104943abef43d6ad59ac902849618c8a5b1dcff6004745ca3e5a983d81ac19e25abb28ef8c3272f4c7b0f1dd6195fb3263ba7bd16ec983a24e36bc7df6d1e2ac6b1a1a522610b39a6b2494a1f554f4e54abb57e90d10d4b98a17070de5c0bf916bb38495183cfd16d3cf413162eed13457e41888c040102e9d89084440fa0715c5bd6ec8db342110bb1d01a832f054d9171b288fd51df082648ad5dd50efac4a37cebc85317c079507eff84c497acafd6b02bec8af66a1a00f6528b29be1e0a3bd3de01140bb347f2afd7834bb744103512e25f0d61ce2e4e0177bf2b1f46fd37623a47b48c03430848bf141d9f1b73d2624d8e16c5546d8901ac9b9ae9474aee0f55440b76b5f88f278686541f04d757c3868e667db2a451f772be8bf124a67b4aea6f67874402e686053b9f157f02711466b9743e077ee6cc8902e5dde6c03dbc51440842876751fe0593bd0b507652733097eb18043aaf66597ce32e5046571049aea3922237791eaef0062697692ec6e9602a4cdf8ab743e563969416b931c7818ce04bd828e998fb42e261ca5cbe589b20c3e8ff082baedec36195a1f1f51a656edc703a7c93f8089b4f242862c08821d4fc428bd3dd7bbd787b84876e13f4bf5ca84f8d4d4aea21e25f187db37482521651353e29c45e00c570c84272bded485bc86be2494615e8e5b75d578e200d90baf0323c297ac5f681a171d91e6c6a327eb438b602a3830a96120701998e6716773b2abe76bc4bb6bebf20715d59b83ae35aa49a20e19a517dbce8db4389349a324a37cb2deeba1d71543d09650546ec999a71b85b65a4013618b7f8b3637707ca66266572959a07b73a7cd520b1e6ff8ac9623170f7e5d5d71b7503c572a0732b8fc6d2e6da500e0821b6f28be72613bb2f34ad3b434a1624ce32df998fa99473f70bf2800ed383a20e0e7055efb024d989669bd058998982cf1b8b0495424f538502bc8920e67e70d667e6c45ac188e587d9f3922b4146b8d0d52ac7e80d2e635390640d29ef1f9ca72e18e57cab47e24f36806115aea39f172f4c51ebecd3323108c0a5e1536f0c806b536fe96d18eaf829f8655133ce0efd1cc425895cbbd21f8cd853266b770eb42b90cfff5669bf10707a657f83bf886f0abd86ade1d44ed73fdd107cfd7b806c3785de5cb928e117ad2c5224b99d4a7076d05ec985d610404bd5d9885571ef21182d9c64b03f7702190c6e28efc2c595e2459f53634e69fcacc03c94e01439266f754abcf4f0f4b8f938865669ef9c8711d1744442ca8edbdc10d90f5f496f1c9c12c5d2c08d2398ed46addf4c68c9859569c59744a63a663ea3d80aa598eb7bb3b1d852c53264f2055c62d7e804a3dfae1563d0a254ab5563a721bbeafcbb10c502a9b22d7f5b89b12842b78e6c247c7ac2407278303c191e1be5feac53d4797255eaa7b477e618770236dafa06eb557083bf88a02df35364c638cf1d1cbaabd5c1d0aec8072cc97fab94004d6120f831d3db1da2f75c5b01e19ed12463b26db7171c84c0d2dabff190cfcd9009b106a9af9bc4ac51d0ba18ccb8caeffed3da150e95ae1f47278e1a8a164bd622f3b575ab9f10a5c9b9b07889e524137cc2e3fa6ca5f2ea25eabd6962d364da33254ead4e221d4110e1afbcda376e3a5e40cba22b72dc0cf0534b3bb8fd693ff2fbb0e86002063588b1dd3f3203d9689639a9f2bc033bcaeb052772fa0e8e550ccccba2f6ad6c6fde6f96dfdf39bcc95061e93e0496a146b405b7e28ecd6b7333bb26e75be5f665bdeee88d23fa11117c00cb61ac1ee61885ec528d6b3d7cdee8c95a503656cb71edc416b40ff3f56bac1ce321db75a5efb3e7c6a8acc3a243cf7595567800193c743f166565bd2c013cb197e87a52bd450a9cd37cf1f1a1bf822a18eeff2f923a854a1360d4df9a01cb4ea4c89478d126f1c1ad0c8a7da07739b5b975fa96ea3b5554ebe248f9cb4881179ad4740dc903a15c7e91bf9dabc1ae7562f567be5a0423bdb14c31776c8db3b85bc592024f97c7c2e1c4c16b34dd1a1590ac579320fa06c02c90e550cf21ceb4a0f078ed53da554b68fb02e68e3b3922d5f0b750fde15be057769a7c6b44a70a748f237088086855180f0de871589f0f565cd366b5abd2cfdfb08a355a009b09b754928ae4b4798ee81919bf7922e6b74d4cd54a934e8371a8bc3fb6da9d12ec9c5386cb24ee57ce4600f402a7f367b988afef49e2b58c16499424bdcda259a42b36a65b4573839c91cbf901de1995b1e824fc9475bd15518b32cc0c3863e221c0c3824b0cf8f4769fd4315e67ef209ee369b2ba203ec1c2ede4951cc7215c378ab735627f79753e39bed5706e8389700319ceaf3c2ae71b236e995948c03c340de794e76aa2fcc09b3fcda882d2bb2e65b8bd5527ba241993f804ab2c00a036a0b8338adc3fc736f5bee85f198fd6d13b18b529c2a815add6d8566809539e34f0e9ac8ea7c517abecbbe491097a4d724a013d67f17f48ac3d201d931a3b7dbe7ba6eeeae3e2d2b5190a8077114bef366d339a721ef5bf414aff24f1bd3b5b8516ee82cd6b266a9f89db2e474e2990ea10b4a5d0b755932a32f84397f45939c4684b0e565eb3c6043b9b3444c6b35a12b56cf04aac03803762e12490e52c84c36cda7ef19f052655a5972ed4e19909dd73194c20f2017edbf7b7c28d5a7e7ed1f39ea5e156c61a10307d598aeac38b497287134b0291a99e44427bff427b2f34202b34f56eb0237eb7a01bf7920bd5717023ccf75adb13255082e3792e74b6cbea95585a14858aba0c1a9e916e84ddfc3fd8fa3ffbb14c1955f8c718d52d26569dc171c33e107d4973ae7e4074541159443d461ee958b7b243b5026790c1498859f295ca223d9221258be4dd821cb386fa14405aaf63fcbf3a3d1163de0df57892b4e59dba3a2d04cfcf8192d7f0f2e76d1b70dbd8a12a16133a946ae2b6c22e8e13e58347b0703c10e94b0a98e1bbc2c0247a6c771b5905d8fd2232e0b6617aea1f55b4cb01b460febaf4544c137adea78b7978a01ddcfb48d51c72c37ed4a916c647578da4ac7ea29b6ebb61675beeedefebb5ec565fd1542a629c9aa6430bd4f467399983bd2e771d05f3a5b4cc46f044c503f903774ba5761fc2172e46a8bd13b0e93e741e67efa9d4ddcd8f35b3203087f6e82b7a4d130614cc0f4dc11cbcc908828ebacd8beeebaa77f1a3341f84b775b4ddecb7cd2f89fe4afcd3c1ee90138a51e19d7d244d0a9aa50e9bde2c344043c983d8591aba7719717e1cf1564faa58fc520df0d558b2c85d8396c1bfe0dccd8a856085302c43d138d58987fbdeb9596a405472b851f248049437affa47ecc78116538ee82e591e586999deb979e7360bcfde6ae9ebe3ffe8eb378f2cc107660a6a674c8220f62c634383043d31a86c8b650e2b42cf26e8891192bcaeb6416c0a3bdae5ac94c73c6c916af3c969e75c132d1e77721a2b399cf939afc525b4342b451aa17dd15ee281261e4e5c59fd9f8e97177659dd4b3de67665f42a1e5f897fc9848fe9517314a8f768c4e88bf50d47d6d6fb5b9cb9e0a2c064b70548576bde0e32233e43f5ae4b9ff2805c61253a54601f5fa3d034437ff40a5dbd5c442185dbd101c509f055bbdcaf42bb8d125bfd72c04da46598d64191a6f33fa72f27c4ff97a637bb3ce2e30fe3039096a9d8308ac950093c34d4d1fb89790c8ca2d993ca38a5e7a304c269c0ac50be5ac4faa1ebcef220aaf712a5fb233c8f0015f6ee91f59f88bf13f73b182cafa4870072f21c3eba3bf86b88913da8d1240dac4aba2db9425943fb9ce8662fbb6a20e6b48a69c269fae17efe9ed0476f664f482fd27c44d5001404214e9b74d747fe5d6b6961b93869161dc8bcaaf99d387ae4a18fdf6a36d74df195bfcd7996894c78623f56b7f5e8bd9c7e2e22d38f73d24320b8bb5e5275be92cd55b7dd3c230a83c2a2e01b4553eef7111a74f097e2b1f09854f80d665c682722f23850ff998c7081015ab66d7b35d7b5e041ed86c6048b0d5d858ea13a0290196bd012de33f88d4b40647a6529136c75d30cededfccf66c07fd29afbd377514c7626094069cb895ca05f4410f17d1b7863bd338a6ca57a078c541e48de66673a268459afbb55ca029cf4ade2d35bf84025224e5b5d309e1e3204d2e32fa1e6f73d599d593e3814c7e68df25a6f0a0e73dd69ca25f1af1893dae0e88678ae6fdb2fb6a1354fed8072a3dbe30197db7ae454a8806407737f225169cc105c49719857d2b7f0393fc56c2f4eeee59c925a0ae1566bea7561e426e024e95e2fe03a6fe3869505c0cdc72c98a02dc237e7800765cf0fb7a57354ea42198b80c716df5cebd2c59ecb8c87b5ec4b9143ea0804e80ed376bf5137a67b8657cad9c340e6746856a926e5445259220e111e0b1597d33b07b5ad5b4e98de896e87077cebd0ce19da06a75d0e4b3d316cf1e311a3b440bd7203d968ee3fb14ff3779642546ab1e7c62b5a82dc4057622c18d1983a9972300268f83f61c7a0bc0043dffdeeeae500aa9c0f98f1d4df85da70fc97d70dcc3805ee51ae847c47afb1ad9930e0ea5cc1b85546cf65f172ee4561a1ba6b02c134b06e6811492f4e97a8d7f86b84248f6c459b1edca28f589aff4d735359f870749ce9698035e0ead2898762cdea0644e94c5a855feaceafe9e02e2d61fc3c3410436de0f6e2be16237f87139a5218a8f7ea183bd9ce5a769d8433cf481ff4a53c878f67d07e781578b5114343b628ddcde376986cb821a6a0c8773c6783f2f4602c76685b4bd62731de4c971d3e546ea21c3e325c625be34950c82a605c688543596f1e471dac83abaed8fcdec9d5516f1f03bfc25ddf74590477961cd45b2d581b1a6637df16eba55f6a33866ba962239a55e0b98ccb80f48f3f2cbf87f3959ae31e19d70e0b7d8f2d79a1a7e9fe7b8be080b1d1a67ac743df3b5b7106918b660378f8573c339951dafa403b3f7ca07766dc3d76b7ca5629a8e800d054bb466f344a676d8e1ef1852b30b7ef1a50d70347ac40a29fb3efb5e139e1ea6cd9f74d124d78753fbf20536881e9b65f14a977c191d008912d18a445bf5c3eb9bc1f1f9ec30fb21b39685be06aa1b8a28066e2b68bd8b196671324d2d816cb9bfb7e4dbc041c2a0500614263791118b0eca2752c8780df084e3ab14efb7d73e91ba6f8b39326097146c84fc6564d0105a38ca2cd7fe7f417616e7ebd0468136a8d705cb0c8bf19eabbb89e63e6064456030d2a6830d10047dba044eca0345a5b74f43d420987458d9bed19967122590975daa26e532981f027a8e3eabd274cec43b1a9df90d1db8c0ae93e41e4f310b829e67376737eeebda9dd528910ee73c328073e5ec931beadc6174349193750b2afcfe4b94bd6a02ed13dd4e1a87d39774341d47c336178c9244cbf163715327a5448b196b87da91683043ace96c48716b3bc9957df4eb74d5f2a77171cc99d4657907f0f38b64f1dcfff536d9ed7e69f6ff691f5745489bc34602b3cdbb4de81eb77b54bfa62f83ef61247a3fc927489f48909beccd34f2ad6c1a67a48fa15490b8e6a128217634ac1a3a6963bdfb13bbb6ab9fe17bf50c325a65f4b95e86cf21967a154d529516427eca431170cef9185e2386599cd6442451c182bfdd0c781562585a23daadd84446a94a571f33d5e781ee486ed5e557a74d4e01c821459311ead23b3986207f49fe841e357d634e405558c5be34e1bd13fd6c323b97cdcf2fe2e00e1383f30d6c2d863221626795da8ce1dbfe43b56c0fe5d25c8a63173e599f1e4a955c39f9b1efa785f5cabfd766c5be7f3ee010254a27b9a9aabde10e155858e2f0c6b688d4387f5d872bd1bcf4bff551a1b6ca6b0d34c8ea980d82af1e1cb25b7ef1c6a4667638b907e7b337c57dfc6bcb65efb8962ec8f0a4456e2d4877d012d2a0d8e373b02afcfd5394b87b2b98847ecfb41a803718c57950f337c4e16d39e2cb4c2221304389f64953a6b5c724589fb84616c5f95892cc2d1c78fec5436bdefbab0a15bc0215021df499acb7ed33702fa2c4570e3aeab02def6e98ab5955fc4fe9b9d6038fdf490d1d2f9573ade6a54ba143a317d8cf9c5221018579279ffb30e66d7632c9be45bc25b5f756deb1d65a7ed649cdc97bf0ea297dfe5d3a23b71c43162034dd239f2c1da19be9103b03e8c6571f924c8a9df963eb3655bc555d8dab926f0c20a53405b4a69cd9ca9688bcb32227cdf14eab72b6e41a19051b3ffa3065ff486655673e57d02ea5bdeec2d960bcd323d5bb71fd4fee6d1bd7f5fd840d11d4a44eba8cd992f8e80aaa2ca692cf7db4438d7c7449b47354223bb875efc8cc241bf2b758bdf96286e0dcbf09beb994b812eefdaa6f90875c0ec9dfe59acc18738fa1b2bd77f71e21a7dfe33832ab32e3dcf892fd403d721e172eab9ae391cf6de92cefecdb34e41646869cb182622298276870c36048f66117251543db25c71cf11d765943e17bc573a05d5f8806df68c4f4139edd114a87921608b538613aa7426c69b7a054240bdec53d05a17f7e39bd82185be760cfdaf53a4c1acd3f1294009321f31d8e0af717116209a29bc510da283400ff684b03a0bf07c02e04aca307e2b340d5bb55c91fcd38f4e1fc036ce6204bff14691c0e22ca9e62c25473ca931d5625d45ca907279ffc7f464069c18bc63dc41d39c5ed6393d4ed3903383966910f3cd65a10970b427d926264e1f8246d674d10de1739b3b24a5acd94976e644d777dd1ee3768303e6b964e698735ac26ee7a4f1c117d24b5902500c49414e03ea40614da0fcaf772ebf6c3ae3dc5985e09a3f7cff1bc761d21e95b137e5600feae719cba3b43ce13b2724245db59f7f677800759a80d64f4cd98430b3b3f5c4dac557ff042abf3091920fd3ddea0072136d8e1303fe9d1ab3b3d94d42d5de2d457baf2f29e0f5fe70835bcb447da62f0dea5457a87eff138a5310eb3ac5ef2ee96bbe82a5c97245bbe374b5f804fc04ae64102247a0f363fa040867edd453dffb3cffe6ffce1592587e3158ba29ee9d6ad56a6768362ce999333342f2a534047059ae4f214c573f3984887f90297905a43aa80356c7869b8ff357e8a8afb0eaaa73bef96794627b7608dbd1a75687986a13630b6e0d4fda7579e0c130be211a55fbdcaaac6a00285284ccd59f951f0620e558a6247751503e9fbbee6772b398aba9861c3a8751dda954abaae4e1e3b6aebb46c734a8bd576665cd4cc5be49bcd3f82b05aa175999f036693563c6df35bea1d55278f6d807fe6cefab356ab7c138a76571d73c57e6e9d023c41be6a674e5289787a0ec80565f7981517e9244a4e739395f9a89f381302a3d6ad578c3045de611b98fc87df7f5f8892d092685ef32766dcdcc8737cf093004977ac474a01cf2ddaf65fea4e32376666369687f85a5e8eeb02d33599d2631eda875a8bd9ca06cd14068b3cbb121260c0859702293705f4482127e550db9635a7fba16c31ecdf33cedd142892bb55ed8376bab0c2d0e6e13557ccc5aa0b65cf44c08937a2e862d389e38bbc9c7bb17f1e52f58a24ec7ebb4ab117603b9349a922c55baa8009d43feccae5f30f5d1703507110a74352972d978b24860198dfdb33a43b72f12a4625aaaf9254a5ed32abefac229f5523be33d01d803d3275f488735f5cdadee143b2417373990918b2dee51bc70824e74e06f8fb6dcb80492a383e596d16bbcf383cc7f16773ab7b103135acb70b8d10150a22b23fbe4ba321c91d073ac9be7c574f9ec57f4e13e355895098a0c1a19f4df91c993fdea146921c1f984dce686424a33db9c76f3aef480b93223fb0683437b799e2c7339e1c40797aff4f34c539cc7a0abb6f7f1ff32f1ef1d964a029773d81691b16104afd487e0aa3517524da6b0d3bf8626892d83c4b5ed67d7483fccedbef55ec0ff4d4e3b1e00f1817d695d4ea59234e56fe76c38056e7cd7b72ebf75820821fce99a10257ca53cfe27de92ee2260f6cc1a8cc02f5631a25003ad147062d75d76e662ed295a8f42719aec8b618a2ee9a53ed76bb02e1d38a03c43e89f948e8903a867798e64a5be4f7c3f6d7d564a7dee22eea36343c834f4a802530bd858096b6bce17823c1280219238319a5b87cc5ac4b36418284cc2d2e75fde7ed9457debc1831593b0af6805ccc7b915f4d8c750c78e9840906c939069dc7f08a8e865b32b5ef03685913b2ea4a547d03c138a6a3a0bb7721f3611da35f8ea7c39a03e698209d543cdf0e960cd0a42b061e745f828024ce8c976823002267cf0febb91a53305f677d2f9f375313fc31efa6c357bfd30a4ffc4b1586598bbdc4189ee3f734b3f9df08d3ee1da3f9acf8775caa92ab46acfbb0771e0218d18c58c3dc030d44e16c1b5b0cfca128cce75dc97ced970ddcc43405b16ad60467defb619f4e53ce6cb742c3c3e6f32bc9a5813068d566b70a2b05afb8d3af2514c63e68810f81558b2c3a2aa074f63c7394ba4e24f1d6f6ddefaf6c68469f90bb0bd05487e563bd39e65c7a72ede64842cbb0c7a7016815058f0a70004ad6d95de01455aef417f896a422f5902ee0688369b4dffe870dd5334fa229f94fa9b1a76c8970d005c259a8ce9d2365610ae53a8646c58b1b2718221fac22d4cd0a269ab5a330f44d365cc16fa8c73acdbd6d3508df2fa38865f9a5789053d65eef5d84463149031a7ed199ff69ef514a68b2eb0816cd88f457fbf7e030c6345b4dc7d9b6479799c3b5d09e0272bdfc282f0e145cceb5a1004dafdea221fcc126bf2b21c1066b1b3f7c9d81900bca69a0cbb32149485719c5f309cd576275b3b2aa8ee05f1216fb2783b787ee8bdbf3aceb3eab205d2acbfb2733e7ea7335a8f6cc1e95499b59fb7f42f543281fdd240e638678b8b6f6b48594ad85d4ff3bad1ded41526a5725a75c616f0ab233287cddcbbf717f37f162a998f6fd52b40e7df6ace63fb756b65aabed3507ce673d9887d418c40be256eba69d1ae028b9221d3046d5aa57cf6c997c44137ca78bc05a9efe4b32ee90be69bc3d347a4278875bd49c57cc8453079e482aa2a0aeb6dffbd3352eb325ede11e75b0b2638176438e491bf0039427700a15a5153bde1cb7943a54c3b952acf2165ad2471bd098c199ab295d5a671ee4d5d9aea2441be7e803b1c28276b48136fedfa7c5fc4dd0bc31a4e58fa53abfc8482031dd9f90012a053d150ebcc7a64183886a7d8b5760d0a0a3a6a24cf3dcde262fc06ba6187769e5635c10b044b7faeb78eeae77cd666af783704b6ec03cfb2b169b83cc74f7fc3ec828d328daea4f04bccc1fefbb60cb090f1b10478da3753550eb5ebc31b66b1ecef595e073f1999df015907f84299254bfad1ef56977a49c57c7721b6a146cdbe09e0606a36a73943f416476319cab6d14618c71940d4666619eb92c7fc9f3795f66ead1e931b28d7890f11327902986d7f0c813143c4fc9669f1a94ab2d6547a0b6577d0e0c67ad6178d48234fc81b26518a4146e48e215defddaf78f2b2e57765bb201824fe1455ea90b326e244d370d1413068e1b804e91df9c7dab1e1af58fa7af851509bc342e44a1d4b06c63e95ee359f14948d535d8701bae7d771b6c6e340493f807b6905ada1485e113f0ea6d93e8149769dad8f40a58ca0065702c87dbdb74ae3fe3b7c41b1b2a847c7f13151863021013b29b39b0af0356eebfadb4f37f189f28a0f7ee648256f1a15fa0db60f85b04ffee71ec74a7800b76a4e3b9e08aad60908b4246b6919245d0a89dbdd2b3b21ce40bba291efa7554b736afcee1fec98f265617761cae9728926d22ba902aa4282a2d81b927cca03328b841ec57bb51c471234467455d58e4511eb627d0fca0a28869e3b34e49e7e399932bd51b4e68cd685b94849aad16fa3146cbce4a38bc1719368b2b811d2066b6a93eee17281ed5ab68cd16e9c2de7fa9da013c1617dd0383574300b5e49569c2e070e5ef336afe3a302a9acb003b6d3bf4751b0c0c270511bd5ee6c1d3d9b7df97775458946b650cce6e0afa17c0f10afe4a07b8d5ab100b779b2561323ccb04332e72f1aacee1ab747b371dee1306b489fcfac66b58fc9c13f7ba1f7689e4e694d2a049f9ec7706d53bee90a80f96a88b476af3f9c1c63b51851f9f6fea9bc29a49bc1a55e305efb432f947c59ac161177d335e166e72e503ee1d932b283df2a5db5f0cf54f050f35bae14bda84520a9df6ef3668229741777ddd83e57d8827203cf8c518074cbe8f21dc70c330eb1baadf621bf476cf9d06a4fcea4c4d248ee2e987f77356c81f5917e5fdd6a56b5d317eaae2e22a3530607527f5f9d5691edbc0f951c2ccf6a37208ad255628356250cfc62cc05f46689f3e2cb61ebd990a598f92433de26934e1fd8a0d08dd74d06014dce0436a822ec16be040e8ae73dad13158d4236358ce0f79c465c56a1dd7155de46165cff76062b75fabf6094d381ce95fde28d5274165656023b7cb9898541e1d095eddee07161358b416d71660231a10740fc1c721e96f65c65497b1b0257c35ae9e297ac0e18edf0539ec470f372d2d39ff45260a74061de0394a018cf911a51cebd3c3e7f9dc3d52c7e124a7d3407e5d434f32568974a21f590ab9776f8d230d4df4143ac051541f2ac4235aca6f6d1c903fcdf9931cc094e76c847a6cc3f68dd3062ae3f0e64c3432be90fef43556efabf639377a8403ad2ed5095b14bf289a11502c42813f4e3b0747eb49c188772fbbd2497c55338027f575b0f0bff778e2db68a4a1913fdb63d6a90d0699b22cff0767647461699eb01dcff95d19c62a45f9477270ac4abafe30c3647f415c67f13078edc443a3bba3c4f3d643f783bd86c72104fb6b75f350f0850373d9d01df31fc7f700c5e952ac6e2a7bb398244b05b8909f21d90d93f200c6064279a57332d741d59707049fc69a84bd3c3d928b2880f844100444b42ecf80010fae1956b7c8be6fb43bda4dda6e46cae89ecfeaa220f29f768737cf93bd84949e45e09c7a81b6c2be009659d2d3110ab58273e7cac8c580c20cc74454ba8a55673484e74cec9baeea4c154a0676f74eba3368a2280fda6b0367e5e134bf6e9251cecbe071f65a94c703290f8ec8ae838ffd675a5470e239d7ec09280e048b69db805c3086295245628d985a40d0ca7a1a7359fa182b91d570f6502cca25a664202a881bb70d9d13336be036c4b7aa1def8e0c72805ae6ed2c47d6c5fa02421e01ab5b7bab7d5a36c07e2e389dd8e6581f648cac576056f28bc101536d8b8ced204e7b4ebb8f239f48db929d12f378605c6cf8e8cd24a24c6dadced2ac0ecfe132a68c1d48a4b25d1bbbaa2445d673224326a6240e9d05589452e6344c0d30a6ed6fb6d6454ec6c540cf95b28bcbce33328d050c5dd5886c1e9c23ee8b509fb12b9b690c6d660ebecfdd17e6c52f04ef13b3d6443a7080ceff5be52fe70cdfc5c6747f0f9e1925f9a8fa966f1591900ca21c1ec9c92b1c0675bb1de6c35eb6fadd8cedf77daf84ae5c6b6018dc0bf4ca43320311bbe6604be54a8e0053d77d736e9484d653c14f7092ce0cee9aabe852bf0432b7f9e630ce4d955c4f0345837fdd984047313403cb64ea80a50ecf692da7a3b32f67a42b88a2b4422d8bba1a87fcdad28c981cfe3523e2add2993d1625a17ccb3ccee8267284b1a81a7e7be2e4d4c6326183c7cbf520f269b9b5c92d74cb1915f1b6960896982f04a71c06c173ec361a02f0e25d06a5d1d6cd93b7a1c4857af6515aff8e089dbb46829c3846f2a02bb184a54dc15e8c27fe7fbd5b98c99ba0fab1058c2b73aa49f353d619756bdbc9e58928046e39062e77af505349662b03515db4f537847f1b7bcb57e563b740bb3d8459748cea06065abf25b1042c5b59c4f7253776b1f1968727df2cf4af0ebfcab3db406987766de83df981d4d2165a9acbd799691c83722dc960b789c7fbb58af958332a6842277c2043304fad5032a047ca86bd284aa14d88d0a04e52abf82ff9fc7a9e7d1c31097afd7480798f666b1311b0bfd9f95ee7631a114baa3a0aff750d4643e5280d5049fe21e732e46c31285e338527260b499b07bb0b026eab43ad615b5c8c011d53882e80af75323ed2c22630f93a035a4c587b48ee0c38cc1881987d3a36f34b1672b2f55658e5f9e53f0d2f5cd07842ae04a5d3196875ca663863cbf01de295a043b304c5208efecf91ebce663907fe6c439facf3dac91aec387da6bac4e37db61ef1c57b3dc6d2b0c51820600599ebee7ba0312d15547085fd9194050e12537127555d85dcf995975f8d5897b471d05754b66995156febc45f649e427e2c154948cf0df8f20d424b2c53fece71279aca130035d1a221b3ad4a4c960e31c5dfb229a3aaeec04a37893e99a763947f78b1d3a2fd3116a66693ede918ce4004ddfb63c3006974e329f92c996154c981db4d93132ec06c98b593516a9cb2a4e6abe8d59055053ffcef158b138803c1737d39429c9dcc29099766935b01d88d3928cc821a08bdbce6a195dfe55ae4f82d3a9dfb2a4b8990a8652eb6f567cf97f25b0f2f71b13cf2b1bdfb73c1b9fe2f4458f8b32e9dc836ea8fdac7ee2893caa8a4e8443452de8e09c8c92ae896f1cb22406b5ecaf2a0a6b3defa5a9ac8ffcfaa8a8b13021706153cbdcd0c1f2c05ca2cb60dc1a84118f57e47d5b7ea4cc30d76d87191365f3b4422a7cd8097f6fa060d975be59e869be1122e8cf04ca1386814bb824a2fc521f0d5f19986da9985662b164df00d01f2e16dfec19c3b3baed6ab699288e858190bfb405305cc2f15fd9fb69f98124ad799be6f326e60bd8ab53a7b79efdd16af4a29765de046d6e326d21c4c1c24064625668c669740dd27eef1c78035a6866fd8b1bf110c122375bcdd3a7b57f778abe1479d777850d3dbab895d72d74057adaed7644be19acefd86c8444e12a8b42418c921cd717ef096f7f99353270166c839381c06813aa4d086bead8d265374765910e767e44ac04fb0a2f3122193da684ee3bfb6cb611ff1ccc82d72b2aa575046aada7ca3dd4a299d565953b35d1e7741d46c07d1ba8e060a8091b82f0f827661613e1e9bd0722d082cd5558335ec87e2769a16f9e8a84b3e6042b83a9c45fce3a4ad6ff467bf6ce32fb9ab112200aa86d0c17b63ba808046c39908b2991c0d7ca3c6884dd7989223e08df47b68cbcc0fdbf303487453dbf66343924bb5b5a22b73add9eb3e0474d36121a82edc82e2446b3d5421d781b6c82c3ee17e9154421a578a97f92a1002541bafed55b2eb2b5a43f950ee9ad8bf05c7ad81235210611288ec7faac41930d06a4468b11cd2cc36e5c07af1d247c388c3011fe5bd9d46009f8a0e4ec5aee6a6dfa0eec17e87bb75a2abd9949714739e0804b89fd0a9b18ee9786f3ba1a5ee463ea44746b75a6c6a769c1527efa6a8b52498694f874d4050e2fb927b7c22a53ac2322d2de9edffdfa01a97c207c8d14422fd16b924b38b9c0e701fcd52887768c5cb9c929445961ac7a33aa9687d57b2e1821078bb9339f5bccdae0dc35cfc6c9ce924df777e6012a847b93b7fd8f6224af34c0945934bd3b4d27c446681602fdb4585e1eff6d342a71b7908a97269b70e4883042bec2dddcc07ca72f52064cbcd2938351d62c55a1b6897ca76066d8fd695d2961ea6c358fdcfa8604180dfb7ceb77ef78acc8c0d26ee15f4538168ff537c9f7e5d780cab33db4125bf4db6c574ac09f9b6232ed5fd76a89d152dd03da07df66fef2962967e4a6fc82b4357c083a9c0db48f58ccebd28ff2bab679bf54dae131a09aec3029b444dd183a0d72a58eab3e0dfea9e2c3670814f8c046e3617289d8eaa68efc5ff68bf020faf38b781a0b49cd2e68bb033ffb8baf9f131856d6560701dc533d8bd6af2df67fd8716537719c22d1c9a4d228ae3756d749117ad2f805927ba7849ce3507ba8e6143506435aa2214dedddae95c6a287bf63de9b74c0dd27b2234f309345023b61cdb26a1f4587c03e9ba0341b1aeed704b3840391252a7326fcd752bdf2e091b59e7305afff3e87f2d8b072f60e90e024779bad3e5bc5397038ff121d34c1c4bc9c62da5e03167aeb4a5ca9828c90d3f443e48b57f4c2419dbecc64d3d412fae4a0f57497e1617d61671344c17b22f31bb819d1fb976a8eac2d5abce497ece4afe8a0844dc022f1be7806f9dcd7bc6594836efa0dc6248913882d59b8d0d57d3104b03f74e6a78b2070703d9a4e150130be765eb5ab8b3c3bae4e719a8bfa949514ded58558898ada8779a8ea709ed0128e7586dd07129cffa8a14a3b468c6a985a474dfe848829f3b5db715f736b4e311e497cb51ff2ee31c44fd8303851900c158e1de0002aefa5eeb2f4af7e9b7fd9e46e8430c356d9167949a16f2ba4f557af4cbe2f541ac7df3623023490ae672a3ada708561f02ae5282b8cd6e46625f13f2f2776d6af12c486beda6bea6590983e97d6ae2d688e4ba70eaca41ca96bea564ef1409b1bd02a7cd4d8771512b6691174f5ec526371e9941351fe0606cf611ca562a06e1bb91cdd15319e6f70023a572a0e41390801d589a86e6b6cfa870ebfbc2daae13ec259ea35b2cb4d7aa27b10c338f4d937e31510dfe05952b5e6b932e718f76611b4d28173170bacc7edeebf2e8a1124ed68276e543996332566c03ea311257fbbaf2f113455106e67c82ce14b7de67074527c417983d7c8430195dc036a55f5ec504b581a42b12f4f6220afd52088086de2f8e841df3461e2bd3ee6341fac2b22c7b4fb422268a5c4f9893af5804cb6c6e874bf89e8aaca78c6d4147711d27796b02ce790e5d28c62d07cd06e204e6d2da33c26b3a098cab85a044f2d07768f75b92a80335d332d9b14e1b0a51aedfc94cc925f4ef74226e8549147d52dc7041e025aa8d047ef67da1bf114f0b44dd5d6f92939d11d523b4300d06b058dfcd286171990fcd61259a9ebbe85f5bad3db936daa86a9895228ea822a22ca88cefa19d9fa58e93bc98775baab8211ffad4fcce1326c34e732851a2c9d58fc21f92e96ff438878dce7a6ddc2f077f4bc48bedf61d2786447c8abb78d3c636b1cbf90c9187049180d61e5a57e1705fd69d807e7330e9120814b906366aa2af493647c37b4af80168fd2ceb520829303b4d3739afc5fa9a516d829aa07a3aadfd2b365fb2c63ad539ef8bbc1efe33c920c76d535bdb15075eeee6a011274c0226d77c47af5a29c7f0c35d381f5c101c3233fc00c07e50a9bd6f1c99f167e4959bd0311b889b7eb49c30f999850fa4f3e2371ccc0c4507b5218aa596bedb79196e1abd05835a05a300ab0108b593bd9134f93eb4b453b5f5859c57183532812653f49b2b0aa90eed417666c6cb58ab967eff1cc50c9615870a751e726b5707f8f67b9ba63006fe405ca244e1f63bded2d0b195263af7487e9d144d5f8db3f288deb5d81710b5573e1da00984eca001a6e8960133b8097f62b24f5f4e598dca3ab57997cbb33125fbf8cb3cc7fd553a0c9c35bf40188e5d3982ba0862c67a0d04f0e585e58d1aa5aca911c00e12a0a073e7266c8305ee97b4772e6c948747922e831858046d9d13a73e7bd57b4a94baf5d1d2007acb9245469ff4a06c86e68416a2493614f2073f827793c1b7b6c93db78f1ed9012338b755efdb42344fc03f87564f6302ec32f83f8a0e45442b2320671e2738370230627c51cf2d209bdf47177b9a86b4b53d66313082102b33bca87308d1d1ec8a1f2270e2b32462b5277ca62b1a5889f3ff12e44fc08d4c7dad48d00299bb622bea0ca5fda8a7901f1e0eae26b6fb58e9139c7dd0acc7f4a2e1b61372860bd1b7dd4ded1e7710b5ead13b915908aa2cf7d1d70ba944a9f7ac43efcf8dc23d217c3466c4ca443a5efc90a962f130160af793fb03b1a7e21802a32f203945fe89952243d9363c0f39a0c532ca027df49447df70374310c4b8bc0bea4c41cd27b683d8f38487c8d2fca4a8f8e9245b70462dbcf5fe473b846c484feca28a301d574ac198dee52b135f51ff5a5e2be1d8a60a005837734ee456c69e147ed14b35db6ae4dab38611a30e406ccf0e1b92b4508b90c1aa5793b31d234ab50600972056cd327102b4a16ce6edcf49085bffd3e353b0bb1e68ad1e8fc5b74e3d1470db675b098dfddd2da0cba285eaad742355b030a5c76e85b07152dc3a68d2c9619d8b719044fe706ff8f366a8f11c6a877a495b70ecd1f43d78698d18282706e6be7babac3dfb8e6ff89e103224aa860eea8caf664afb1b45f2801d09c010b979f17f9f7a36979bdbc348a5e43d5168fc6e66f2754e1d22d617d091c5b0d445f95088c7964f525a3fad91d4334d0eda5b048c68709f30b18c2b368547a713c6eee8a2c853b6703bfe06b3c72cbe2940561b2695e62130b2f0e4460448a1936a89374b65950f9aa957cad9703f27de66c129dedff70b2eddef32115ff6eb720ab2f85a2123f863b0d3cebde25266a508e02c4c0ebfcf32b24c17cae4dddb9a4c8b05a28369ba379d97543396ef9a5079aefe0295cfef18fb1f10f5c4de3922631ca75faf4678ce8b0df7e9004919469eea1786f8d27cfe2839b03a6dc604e7c38744ece4e9bdb250316792ea0267ce46860b77cb058993996fe5ca84187784f3a687822c3a51612e81b196f7687540103785d95f529fc0b1dfcfe1b45615465a9a7d7f4f1e50790a6d2d988f396e56880bcbbea5b63c37e899b3a4fd848624742f3e45a942fe9e48082e2ad53c735fef300c023fb862d8c9985ef6f3e6c36062f54022e814d5e036c58af07f9a64868cb9e112a4c440ef4e4883cc99b519f102794df3d067b3f4bf6e3494fa94e2da5e1f23dce8e04c11daa17c0d6bf4f1c593bc3eebabae93388e9991104b4f25c80d2def414ca60eb5519c8684ff911a4430cb3e8ca133d1c3923511483605769066a47553f0da70f1200d4d589c517bb159c7c6179700e4d6ab5c8f680e958fb4f949649e0875cef23819b47dc3634dae2cdfa6c76066a99aca11c6da8b961213ea337f490c7b5bd067a1d20daff10252fe64a535515512df36653435f93f5ed01191d2c16ea1c22b05081f3902ba670c20f51553d0a3738622ad5f5f3cb296689673c0909dbb20a8f28922827adc79965fc35813eca8667587aeed9b5c826c02b3e0e8154c4c74ea2e83d297e1b962b8436e196bc2d19313d8a4ed6b97aaaf12e100f131ab16321d10f1423ba1f0b56ec9d85fca1d3c3eddd4c88ab4dac888e00784185cf02c153ef0fce57d157703427d714c34cd7c6c3630296cc5b9123f73bfca9b0a7c0ce6717cbc4fd84b0e663232ac5ba67a05c612ca653c74132f7d6d784d05d98f9ae7244da76b06584e1e92b6a939721f832870f28003ddbf611f3148042318f6938cf55770471c51fa86a6506bd2574cbe862db83c06ac3cd9248085012a8a75275a0e63fb636b9a3d6af4b4f468e6d8692b911991b420f2a2f7bda1a552474032524a389750f8ca4dc7ee95276abadc03ae22f1c7f110258b4931681a209acd339d505ac4fd0454a7cbfc46e576d89075b900b1ababc7e777c0ea20e99e9d0785a5ea676f755272c4ff2b8db394e86ee686e0e4d818537c1fb39387459c09c74615c840642553e9a41f739052ed71f3343885af3ed63de9935e582b807414b07ddf0f74fabbb728a1024b9728e3409adc68521ecf9eed75c445e2a994e321080902432fecf9fafe8d0aa266775da5cf83eb5b8a105d532b6d5c07645dada4cfef21977bcf2c1099c6950c91f40396c43eae533ad56e4e5d9ab945c75dc7d56b6ad0f7c98799c052d1773e6c81482216e8012912f93a396e41bbc0ea189e7df941f3393f06e045f9bea60f4d3577b25b5a9dbbe934a7a6a388fb26fc69b0958acdb428f4b005af49b44fe505835653b7780d207cc6969a4b6031bfcbacea7cf2f2801898bff48b7295dbcb68c1cee843f1893ac24c553114d8b9e0882641438df8076f0276419c50ec2dfe9344037a023f3aeb67496d6846ccb1a6d80a2fc0cb11304947ec78f08cdd216581418e9d1b08b674ecdf9b1e8a37d20f7af5145bb35424687d6e75d07184060a413df57ad17cc381dc76dc1a0c9efc13d263df756a924c713632623bde3944159cc14b8ec0198338734568445d382b1b05bb93b72e804811d700afda5e6aa4d3b9bfa626b824228c54e7e36f7b92cb0fca01a692785e030a5e4bea75a4f31fbf52e192b74db13a1296b8f78cb8ff74b1f1a371fa809ec7852738e2e60582ccb1cc6bbc0d56bc9ac1ae59a88173980eec367f073e30d0dd32f246f2c0d5775bfbaf470266fef13798a30930a9912793bc4e0a42f15265f53025e749ca6dc3521ead68a35266416bdf8f7d260bf2b27bfe5deb91950d8b03ae7385a3a16836e972e0ba2327a50ebf346c0939497a2e4ec2e2b175555b7025921affd72dc08718d8bac117224dd1e67e9cb77ce1c1d9e6d6d07adcc4a790d404034e1e41f7268e990c9780c792f31093fde015fef5156bec7abebaf2261ba450b56aa70fcfecd12d88238a379b617201a0f1a57b410a31e745047ffc599a956da4da4d973e9f148ab10fb34cca8b9bfc3158eb09f402ccfee04b8285432ac9846d43cf6a1077649d16c290208c6741404528d06ebd931a049a73eb409434add5c1c847016a1d546b74274810a8a997df9602ade3af503d06e475800a0623de4bb96b3167600da2e73154d644665ec77c83adf7e34aa883971238c0e38fcf46d4800a3bbc58c234158406cab3e3926586ead085bc69cb8d24333e35f2246121e614b52a70080a4f517944ccb9f4c74d540886308e5c6227b72eb69e11592ed2dbc256197dca22533a9d7ace0a826f563e4f296c8be42681ab677b1e8a76f0fef5838984fddcfc2d56f610ff5d6453f5fc339a9a1a797be0e7e2f504017a2b91d2fc260ba19626a855e523d530472da0450d1880640526febc86f5e44bc3a5b0386d94799541e62dc0cbac0eb6d7ec33e9b70820f987e5887e656f80eb0411d691d7380c54a97bfddfb0f68c950aceb3d0aebcd4251f16b5bfd17c0b47c365a5a924960005988efbb82fbc7951183b6e434e0ffec002b2e316dbd5b91e85a1fb7a9e2e253db2331ef1d59b62d20df7d013770960955073921693af2a32e2ab1966a3b2403e8dc189c1ac9ce45092d0c59fee172bbbd57bce1629db2fb3597047a3217e80a48c60c4ad8d8f01e684224815f9056559dfff664210e4c349aac444e2d891432cf3ac8e91a05be4aaa0afa8afb816af24026bfc79c03750297f1503fdb1232aa7525dd2b27691f80d749b67d40c7bc9e2399ff8ff9c667d028873a5a8e9df13fd5e92e27a3ebbf7fcf0bf6a00e19ba0f3e87343b3dea5f6af448c8ff09a8a21bec9f724f751f8c08b0f24897cc39b9ec6454f11c96d21dbbc75df626ae3cbb114710b6bb1bdc3adc547bb348f44972a7f761598d50d76798c58b726fd8a75883f59fd8bc35c6c0d3237b2f9d62987fe46150a867d3bf869f8e541f046571b5cee8250dc4399ed903978e2807f475e273316babd83d9cc621f955934d79cfb54fa1755b99913084f136ecffdd373b7fd9c2a7427d800dfb202aac987402a45ef04a4520e2962f85d6f613898844fe9e65c6dce5d00b13f75b211aaeb491195b49abf789f72915e2f5241f8e77f66d6add1f9f1cec6d5d156b0a8e887e801f795283bc1c0ddd66660061094bf023e774b3e27e069379f6b1ece42e8b6a86582aa3466c2fa7ed5c21894a27f0a68f1f30d06c35d393d0c8adc1558152fb2a8a05434a7e6e6186f9e589d9232329a4b176eae1b34a75eb31ee59b3592c30bd3e430acd7a59050313cbf792497c18426b037089e74475f852dd109f419ce7ba1644927b54c3f030b1ac670b9107352b81f6fdd0772fd72b46e799bdafd811d23908b6512754ccc562a9c269eac537d4af5369f5b78b825bb7fd7c60f04bb3e572b7a2fbf4089286dda40adc7b2b7da7e18357948470f1ff9f15a332e614b7c0c51a781819afe3d850c42e301ba17f022ad266a8cb076ff40fa7f239da859160b81f79005a6bb1b84ff5ef021d042278c3f0e6b10b0da690fd30fcbf6aa4b2011d58ccf0ac34304c1c66d536b024ca214771210e2d537ff510b3b6f348adc857e57cccbefe5720906c0931a560474b09824d32bfb64050a73f334c56dd8dd29b6ae5e87494f363d67416343b08a4a0f524607026864d59cfd639f6441b69025aa111167be17be510228813f569e977240aeb6573df8894be4354ea31c4157029e322ce2c0337ce22f39e3c69eeb68bbaf31159c9e212d48b8395565e1b9e9bb7535ea1fe6bc20cb2cd5c99d57d20cef4745b645d30a130e7a30f6e2793c1bfd169af5695aa8d2b338007e5e03f2f63642f351f0fccffc77c285d85384d71f455d0239c70a35b772960ad10821d5f6bbfac6ed63d1f88cb80791c3f345f552136a66d470b06c375d5989bb7bf3d239e10e5bc54dc4db0de3eb96cc8a6ad47c0f61f62269340b2abcb4be5a3395a5db44ff0363b05f27bc5c67f732553d7d66f53b07e5f9ab7e6b32d9ae162aeb4e8a2ac79d8e991b703631005da8d2d1bc555f3285d62649173a57f0aace9eeaa0fa5174a02f8753ff60731334ed9945b8a5157b74268b0f642ca5384a349f2621217d0a6f93ce12816117cf300fc9c61d0fe6b3d938423458da54648eb74fbcca820045065686a1cb7d5a8ca26937c4bf58769485a45b451654a05e0eb120346782fcba2d22ac43b44e6578178816fa18c48ebd3c6e3b9832c0258ffcd64d7789f4105c12feebe66ba9a9127b39ba0e4dd3f691aa80481431b436bb4003aa4b82d00e9a8511e995c2af1173b1965ec8b60537deff70888f1bdf6d012b8f4d4f3a7a94ad57101e0de3cbca519efdb8e4a46619e834ceec45d7210f4b96d9e828a87cce556aa2063a1a7217531fe550e2df0223bfc66bf9680ed73f834580ce0c7b7d133567c40fc00ba68a793136df59075df5efea8944409b72b4137f913567a1a5799944ce92d31d61868a580fb2d3c21ee492596242c30aaef162694cf412a045af4d2e17fdacef267e5ad98280fe1f008a8615ce4011d76fb2835aef286bbbc31d5fae9ed958c16f977e83685702c176f4e6947b8c41b1f35e298952e68da015aec8672da53fbe0ea9393373854137cd7abb2493447cd7da3ccf6d6a65770820d77ee7172744802365d2efb3afa75393354f2796c707aba347d49c575b18165b0b4c63ec17128c15bf9b7e8a56e561d4052b4915596b3d8d4c1e2f8409241c10aafe41699af0b7864f84ce70ce5d02aeb28766eb5936f29d40b14ccdd3bdd2353df08980b3029132e6ff0e5eb72bc1883ae9994a37bf0d59d504adf05ba7c0d097a8549722ee1950a9da75423fb5ad1ba2ba4a8990cce57beda17941bb93a729f6bdf1007e37792ae3650a7845cc7f37b6880f41345a8003ac5bb92fec0613cf74fa1ba0cf12eb56fb0c2d96e35e1518990e5e6c1bb2e73331b3445f04511c7a9ee76778741523cd321e3e77ace4d72f1199890469d5b27e2d5cc5c8841896323062f5b854ce3776c9c3c5138fec5115117f52a8971fbe9d8326b49b945bfd58d6f70def6122c4c0b10a49df917519be59f1b8c950add579c1c8ac4e43b8cd68ae5c65d174ba9b63a1629d4b0373db46f3713b50c3f4f65899ff9480042b693bef72a96658169410f3f4c03dc7c9db2e55f81472552e4dc0ba5f895c957562b2af54f302c30359045b90bbc8106d720f6bedb073c2bcdd6246f2d2c0bce9d3456d7d1319a0f92d8b06fd8923dc24d3d5a818762f4be8044418e56d6f0a9cb374d78d4866b20fa62f9f5eea15c60927bf8e501e3e84bce68604b4b1e6c6e362f669dc47e21336d0cabdee0030aff8a00d71a01beeb4ceb5b8ac007d2a8fdaa0edfa0b24fcbedd9c99354545b8b5ef028ded57749d742888896190e869184053947c42d905e92b91d7211214f8db021016b53897deeb7792f42b75b1064a2d507ba759ebd9f07a0a1f30bfb068054c1cdb1a4c679cd1e0de3962e8e0d563e1345e911ddb79ae66f850377ccae0313c584f07781ffe96eb30ca15e995b49bd65b5f7ec2941ab8e580969ecb9f864aaa44f71c49bf6a3a0456676169d9d9089438a23acba841582c203b6dc8c9a29be190e5d04ffe6e56ac9808c05febbc31e3ced403ac88c2e8dd45c859ee9ccac7b74d35de6d07f55e4463f5ff0e25fa40b137c04e167c8147a4a9309b747cccb85e06511a18e1214eaf15867639c78129ceec51d51818ef852ec38eb351c5aa2f915be4b5273160f6ea4d9605e4abb101dc1d021a3e294f4741372773e073c579eda8d2914f1a5e00e69a0e1b1481dd9ec3f92459bca7876f5507a1e181fbbf89167b5f2b18ffc3f9b9fe23f09885a01c92f7be8b9403a371c771e4260a425690540cccc2637fe016317a6c8dafe72af0c8ae9eee239bdc3f3fd3f543784495bd9459d3d50c7b2a977554846b8ca26ded002b2eca5d7499532f95345830efe5e2ee1a67d7ee1c1883e1ff6d6b96f7fb120c49f1f71070cbafe9be342a12f9cfd39e09b9accf3f96ff64b3613fde048dbb3c6eb393966940d4e950ec6204e80e6f24ce1696ae9ccef12d25e8472a28f0fe10cc8fc5f945601e56505f261a68d2b66d6144b425ed1288fff1b6b73612889ba28daa2e3142bf5352f8d42319fa68dc79381baa4d7422c9aceebd5d9d62a9e86e2ba1a216ace1fa360808aba1b35d98ed7adb3e34e7dec3e52a30795a26f6406897411b3615f07e5164c426d40a7523481cce3074e84bde948e92df41518663c7109cd3768e28997f77226ac79ee325ebc4aac09fa7c65edfcba67218f0866a56feed6074dc1752fd1082662d4fe33916446f537a931bd69bde61b871d643415a18b76271546b2da4d38a1d6e1502db65412d0b60f91e035648f9f19a41993a9adbefbfc5b22f80c96bff75a7161c006c2b5e93f9f2defaf8fae2cbf93562a85cc55d99547e919bbd56e67ab633415336269cd8e72bb5c94718e2850a50d8d4433978f844594dc8635ad3a1dbdcca6d2841df7220096d13e564fbae9af774d5f48bc66a19cfd5f5dfff346f4e4b31f7278f3b541db3c9bf65164b18cd58d21e7e370f9375f66174a544fbb79b17746d08bc3de61fdcfac28d415bc42c58f175726548f6b70f351800fe23eae7927fa1bbc974e6b6d952fb13afeed43bf81da64f17d47dc1e2b53dd30635fb1e6da3e45a92d3d749d79a396e18e96d65ca90606dbf312d74d7bfb646f994f38a8285ab3b9785fe682878fd8958967e3da138e1b87337f9a45b3007b62e5f5ad80affff16e1fda354073c233c487eb77cb0d2d75b0ae507a0a86b6da06b54ad6568f8d27cdfd0394321323fe36734cb19fabee1ece48edeb890e678f4212070f1cee58665f9ff84759e0107cb80c6ac97044c12a2eda96c503473b6f7113a3875f760a2bd3c9fa96577a545179674040ccf31a6893b0753ad590b3daf167a40a58d20a9a5df1a666c521a0efac6b9e5b0c17aebbdf0b735d322db0c21fd03c320734ff4d1dc3f5021e3ca02468532c77f3d32d09199fe3346ac709372aa23822dad255c9739b0eb25fd69b297030c2ded58f22e1221702a908eab9ffb5483d21d564e2dce10eeaff591ca5d652650e2d9b75ce64db8d39d7888593024ec057abe8a88a954a61c4ebbbe059dbd2298c6845f42112e6124094516e8b77381adbd787df0283a01060612e19341f6d08ca587941c069532c012765dc902d66fc8e2cf94d9a69e94918a82a616aab7e6200ceb8d113a18052588684ebf561d7212e3824bc17b1346ec3b1c77660c05cebf7d49ce172d2fe729ba3851b68ecffd5348ecffaa522999765736cb9a7f88229401163ee535d0d6cf58b43d178c16a7bfffd5b56d0c78e0eb3b130b28f9bd5fab5b78e3d92683795906aded5b50d1b07391f0b278ffc01d162ebb88a4681d80b5ae33254c2b8f03591b5f8d3516bef85998dc84564064d13514b858f892aa561773eb97f964ca209e00f3eda5cf49990f46d3e8e87c2ddbb71ccfeb3e5ed5cd4193a9d4c537173c1c4a9c7e08c3396db9716b762233dade392f9080e885cce8fd44da10f54414083502ae13b9635e4acf9f4ee28a143d75aeff281589e400792d8f9785f9fbe9a66986b4829143d365cb70a83c70544902391a3e57047d796305b85bf978bfb67f8bf93414901dbacd8e39b192d5e0b70f483503cd7132856914cb358567303a7b9d354c020c06d3323a6e8bbcc3b3588b8d7eb9735169ca6315ee705ff7975339e735d7696b3480dd2270c1918415e050d73d5a6d38336395f59750f3a6003e28f4d44ce7667062a8ed35a930abe6b2ac7b5f34d20e5109bbfc5145f71684629e96778b9f148c76596e3d90aa05c7a4d6beb4dcf2dd6fcf5c9dfb24d544b9ca5fc3b00bf1bef5ef03a40aa505bdd451eb58d92bd30576dae48df1cb4553cfe2a8da011e86df3b1b461ae8010bfe31be6125733e005ad09cadb8d3c832dfe03c45684ccfe425ac6bf044e85c6d6d2aba126250137a8d18b54772de145550785f18278a2125a8b4855b0683409aeb945cd48ab717fbc74cc4ae3ae4e738eb689ba310b355d59da869508901a08d64f5a7c01f5f8f8078c1eee3a380d675a977ea0faf1b471499f2557410c86a1e5014edd91b820a9f3735cc46dfbb22780b6db5764040c1814df0d1da59a87daf30df19a6a79470b0fa048f3bf5ca2e38c06b2396b065c540b8458df117cdcd51eb02ea5b37a31eb8ddb23184769f62f4cd4d0be02439ce2622638b476d39b9f075fc5cac681d524c1199b36719d17a3544b75f98bf65fddb16423445b54c14452181a36b2680f27a8d66edc7dfbb2597b0ab6ee60890f5e74ccc15a5941efb62abd784fb98022625e077621ff710d525cc81ce54e9a1ea48c525dd49eba01eeba7e53bfd3c4353ea79adebd5d92ed4ed607203a15d908b8bd5bda9d6b5c4d92b55a534b2adc33d16789cd0a549795208ddc6e14e9b01f8e2e55787b962da33bcea74b119cecb84e2a77c06374bb87c766bf4055f4c27264ecdcdcd009de73fa41b262333d3df8179de252099fdf0ee20f731b7fd2305d76667a2bb34155ac7149680161d2a8c36412e648588e81c53a74f8c0e413b78127f2e62b24cf902541a7165cc856e01eba018801e24c02951b4b933757bc973f7747e6c073dbd2c1e12235a6e4797d08c6819bb2b5b93ce73d8ade1db6c654eae401af316b9c20915d0143434d1ce562c3d33010f4086c04ceebf0bc399e3a4eec21e30714e110977f93b38622d6f9263cd89541994162d7fc6f918a0aa3ba4be98a1884a28bea0b30a7ead4f4729e4adb95e64543c00e9208d87b0dbeac95938085f1ea49101333b31449370b6f080503b62d2a9db454ec792db5559d7fd6cda23ec52c87facc206a3349b5be7ee25a070915b301a131f7903af07a2d5b9cb5de44d8a9bc664609865fab0438083f1c40ff255cdade33be810d02d34e6fb5f3fd0d2515d086f7f2d77cb2623da65abea02e9ace391841312e7a66d26b6009c2d770b4b7d91f51e6876e70a8e6a72ebb27d1bb3133cdac108098d4c89cc7d3a1db298696da0cbbf4079d22ecfd8dd3604246d6f679d29ed56242e3eb59b1aeae1558093dddb9e2b008779e418b90b33a358fb602e8cec9d0a298bd61511d6d585502252edba859f28deecd6b8a198d7eb4d2bb56a2bc71f9a37be73d3b82c58dae8fd03d3ff083fe83f63b91114845271bd9779bb66dc226f81412a21146cca1c44a3c55e3b9d6705e09b145406f8aa71a93df2e360476ad594d0075e7483e762de48963f6c1667c5ba3df7a2695465e50910b980578cb9b74567b61b4579bb4c2f2147d4ddac660ffc5202a73f5e136e98a8882d115cd0d3622570fd1b81020e66a4b6b4169362c3d7640c9227c551f5fd737a3dcfbe6530ee786c88aa4334a952a162f60e91f258b3d5adc954e0d3e67f7bf28a49ecde5afa241fc29c78b34a871d137e866e774d2a9c53670419b115b0d8d99aa44b45b5a91365203c3eda8bd64d550390309eec2c912bd616039e4c15d6141138ad3e7adb7d13fafaba552278a8e872574870795b416ba81691c3d23d275901ae03f0a595b9051508871e29e51268c5284aa67ad03081936509639f67b2a0ee2081079af89659ae4d74bc7ac87bb4eaa910d98e652ab16b8ba08f8540a47c1789bd3765e8f2efbfa09064670e12adb2f0bfebc7ec28f3b2883a77e1654cb2f8384591100813734c902b3f9e77767b56bf8296ac87a5bb1cb380bc814d34f586882c60244b7cff28b9be106f146633809739eeec62128457d9e93dfaf27f64673aafb2ec24aee4c4e21a78bf2ad87b92c2916b2cf66efa894299a371290e927ebe34cf74f9ae65cb2d3791692f0bd7280da977d237907c6868574a355766ff9bd6987dedeca2cef1867db2dddb90775f4de64c9338faf324a11479f6be2873ffc4b483780422a749285d3320b92a725b49d376af161ac1c1b5fa7cf96021e5b0eeda2d6262d22a8574b3a285a6bd907e216d23713adf43a92b60ee356a9c8663e87170525f925a324c7d228901a1bd54059dc86bcb46d9822901c3fe3cc1abbeba3d92732d91943b58035965ad604260f0d13904cbbb749fa1ca923b406847c7fa366dcf846c921ceee8a4a1bbcb12d01ebc51e698a0a60f2bda72d2515c1d403386c80cb7a0b89b1fd1557b34bb8497240a62088f021abb289d963ef5adcb911ecfe5f22f3f7169c8f8e1982e7b2689e6fe5f0543c3a1c6eca4f37145dbe64a39a2004f4f62a04e9f74bb21e595889f16da3784fc51cdca481be21d6474ed93bf0965bcd0a1a3eca7e3f25494d24d44143ad7eec643c6629de9ecb86672222bef411b8cc7978c714e1beaf2fd28f1117908bc04ff5e13a3ec921e445aec021417ca2d947d2ab107ed11e1d6cded97ef805e1ae71da68fa015df21447326f1b27b48082f26a503acb721d240cc85f4318e718e723778bfb8767c8bbd8af9455c29c224dd0d6cd73dfdc1c178fcc85089a9065c4f0b7bfaeebebca533001a977da88a2be1972fbe74a9d2d71028b2f7620ed0ea24386a36065a0c2b8f4abb585789e75cf81ddd4e9f736e9094e88c895430111a9a054792de76f1cae9953669b795b7264f67b3e53d8991cfa4facdc5d10610a43f498b43711f7bb53e343a9c88a0f27720bf2d94701b2427b9fc240e8b7b77a8c2b4b96735c0c9e7253eadfb15a5c80c4bdadeacd77dbce4badfcca14234051605869d99933344bcbd5599fd5ffbbbfa41f5c4aef0c6547627f6c9b9a354dcbd69c746f1352291ad0bbc7009accf7c1d7ce726d540c1630f9748cf4c929c6a251fbf04cf028594275fb0e82830caf95aec8a6778b2ca6c43d57b7a38094a28c6ff1e8453b3a69be00b02b763770d861234e72606d2441832b7aadf9124f7007817568fa3c53aefe030fc1052c40399c3c0f9727538508875ed813532bbbd179588700d37f4eb26be95e97bf27c8ee8f30c297190dfe8fb2e6e3f030e292fba08f06480da78eb5b8bfff15b9f2cfe63303a03a24cef661aa653d32e190bd384f9ce956d86ab329062d42cb3edb5f655198fd0a3b7d8a779f01a227b72070657a4e4249814b2235d4b39beb14f08182fa735dd6cb1e3ec5e9f62704d4d835739a91b5c2afcddc34c5b3c2ca47122baa50a3e33343487bae72d250627fec5cea578b2d66b251c63330d05f638c40f91b9b870af6a0cfbe8aef9e8fbb0f4ca8618a71965ddbd7eb7683a64dd330befe6aad7dd4bb1c29a127ec8ea0f1627a160787b167d6ec4398f376fed2de9cf763fe9d9b7b61da245a45a5ed76c8e668031dbf42948195f1ffd50edede6962464492ccfecd8caefe2519b3609567319ce97aae3e3e13fdab16fa6d2b11feddf6cbb73864fa22f3f1fdcb83c45bdc291b8d061a1833c6605ab37678c6454b6731484f28058ecf6bc36af8a52d3595c0ea683f9e0bc7d6bff37c0e46446ba311a98b141ef2c9813af3d330e3d897e73718ceb78da31f05988b3cbe64b6a97bfc31c50f206643ece38892792a14788afc9341931f695e17b2891834eb2741ee33a1a7214eccf70664ab3aca4a6a261a0e5f4c0eee1c6657fe5eed525bba123a21988c7dc8719a8c527703917d9b9098f7cc1ff4c4102611814970b0548c7a418b1d0e2ce61de77c17c5f02ec12c84e857dc2527c07c70164ff9081717d4fb0927266d88bb0a32992fd166750398e051fae7d31ebae9613b9a285707d5d7433cb86efdc1f0f742eb80f81b301c679e007f32dc610a0b49d9cd782932d6ad33a9c149b95be851c63cbffaf09b97c32f84930e290e94a1cf4fbb2643ff69eef3c1c54212ae35a7449be07414e650450653bba5e2572442de7bd667ae08aac1901b17b90d6563e69ddda185fab7dc09f944a89f1e02211956458282819c0cf33ff038d4beff091e7b171bce1da5c35edd14232cbfe8860545156df3ec3dc7f43d9fcf73395136b90625644033be8c88e3e18331757638a5a958fd31212301fd212a21fd2b0320728027496e7602987030b2baa1cf2f9c2c36fecde51ab8d5a6a4b82528680e3075effe0e4af8e5c843bcece737c0278b23c2ff3a9fac1a27c11711282ec544576e4ad3478b66d1004cb5de842004898f6144d1fd642d9d40353925f6fbefc8b47aea91b72996a2698e85371c4e6d1373e33ff4d9a80b46492f9e85a149f0918c38036648a0372890f8208a927c1f951d5487665975245086f2aee8cfb963ec8d6f27460fea7fa84e2671d1fe247276c3621c2f99e626ab6d030fa89b62b2f7690b9768606b3d5c870a8be712e44e2f6440b9d725407c78889158420462ca27ba6230c7f338c4eeae04da0d141592cd98de43ebe731258e254b45daee5f42c3360464a2196f5901272d936663a32973b2c9037c201ebdf9db04bab5b61f1d663d8477fcfe8a49a868e2927a96546cd628b8f49f75725c75dddeadbc4d83ca81a704b91d02f8a1edfee03db71f0d6abf5829f9ee0e6663f718d290ffeca16cd6f070020f17439a4c51701eeb86d1c38d92ad0105c2ae4e252dcfa83055d4d9feada810213ca615353e6ebdcb3186f0b078b176064fff97d92ad9d7249fd84ee55212c068fedd498d8543a670bcafb12faee65316ad604ca227c660569c6f4648495035390e7b842d030b9cd5e1b5e123d5a36ddd66b87242a08f8b64c715763e571256b1e3213c62b975c55af46ab33addd5490a070e9531ab5c7d90c4b981ac553dbb2d736a176bab35fc44e6d9f035a25ccfcd9461bf18fbaf3340729292cf36e372d2f15157ff87f97b3ae29cc56adaeccf5b20250f57b163557e89769fb75cc57d06aa701fc42343e4ca733e274255d1196e5fab7e81005d7778ce57dfc63f5bf1f5df656ad9c3a2dfe23f67fcbc892550c2591df0db9e218601d1c3903465970c0dc62b154d3821ca574ddab9e87463419925c99be008b9400e3d8cfb8ea5e45a82814550a5c6e25f61dd814a6dc85ed538b4dbedbf9383143bbbf85333c31536cb3ef9f15ae44cd41dd40ebe056907f568aed78fdb4ff134446124f1d65041952356089958c138b10ab1ec67fb3c8dfff6605bd24abb427d8cb2681affe7c31b0980974b81a2fc848c178cceb44abf7933b907ec5744bd859930f8898aafe2c8c0193942280c56b56de745092327c0a574519a8a019cfd58957b0aa52632c87dcf794bdb97bc7ec457e558f152b4699a938d8c0379d85161cf023c54d684d5cc83541d478976f6f45bf3c3d8e02ffa426cc7c909a86745793845035974bd812a68308a59b09bcb7f6dd9fe4f7e91e468618b4e2ea7d1c885e7a15df729b941a5d4ea001230976c80e59dd3e17139de8ad7e4c299444b9fa395b815cdf73232bf5c4c26d722184c50ff6dda9213ef83cdb7ba615d8418fcbc225a45ba2f2a7ee15dad8517121ce24b5c165a60522f30c3ee3bbf711bbf794f0e09f5d0fb98bb2674aa01fd82c9d3e17f0b8ff030cbdc21ed5b40faf608d545010afb5bd57ab8e606e9f624651a4c5c51029b2441d629bf295f55acb2d6150c43047c2f0e237283b9eb42dba456cf0b9e189f4230e5e3539c77c94922c20f704432af9f48e33074f9f6a02a9d5e135a968dc2fc3a9ca3994271b9f5cc9064731622c8acfc01027174050f319fc5a6d24d0a28b0b18d604e9d6e03cc6c7672efee05282df5000aee9ecc2c8b6fbc705e3a7a13d57a68118b32b5418b7127d8cea6943801d33369cb2ed1c655c5cb53c6bc73c2bf9076b3a30a8aa2517bbb78ab3e7a92a68aa6ac3b9f8bff38d05e7d109030b97f7f6b5378321e2f65e35f29d3575851d2e0530568b09cc82cae1d2c735c1686e1e982f1b73b8b53c033da7210b656b714f2abbf46e5119e2af517f76628cf3d5505ef5a17badfb9a3a9da1018c74382eaaf6ab56d03bab5cc2dbfdfd9e0f131c21b9752e7c93bcabeb91e19271845940a5cbeb367988914ef54b1b8a3d33aa41e0926a3c684fd61988863f430d917d2300ebe0f39700f3cc35853ab23375478f8c168f4658dfd93c1722893f763e158213330e34c21f9616ba03be65da22e26fac8fc7d7489db83048441888bae8f6d210aa1abf981a7631e846cbe0792e96eddb94ef1d5a15aae31023af3fcd9c9c7ad26c945292ad3e709d05ecdafe74b962bc0e8343302ce3066e3866479a5701ac8ef437f75fd4060a445dcd59664cc22a12011cbd05d95e1a5508925aefaaefbcf2096b8379c86dde418aa79dd312a6609adb8fd5668a94b6c29618e09629a8e7d4a84519feedee6e272030a625c9550ec53b929e15a38df677f8f53618963903e50b9d9df9e0ec8b4eee3fc08536750778d64c33a7352e9ea1b69f596c316abe8e9bc3fed9d5807ff1d22d1316b6b40a0ee61eea972a624bef658bb0e86ec2f6e223a78099c82f58b055a6bc95db7a69f9cddc2081d4ef5e8bff2e430eb299b04d995579c93e9896e9ea735c2c313c685cf069a37bdaaa1b358d5fab7319183f643d5976b3da6fca754318cb9a0f443dc57defb239f511aa0595d69423a62d72c66d4444e99c1d00388824039d50165fc145508b9940823568c27cf780deb8855a0cc08e46b7940e20fb63d53ad2f22007bba750f71d2ee876f63a91d52a80c701e2b13aeb8943df5b170974c526798fa187b7e1c900b81a4b5f54786d9f54a7266b793244ec87788abab8dac55bf9472062f58f04e9665c5c56a3350134fe7aace0904093a2b1bc92e4f4f4b2a443ff079f80d4e8b1792a53ab96ea1971fff7f0252b9424fbb38a6dd9c85eba95026cd3432d8072d43829761d43ee59f23c22b826d7808a6f10a4f536af2808f762c5c136e4b149d38e160be0e62c288588622214e06f7186788089b2bab85fbf61aed83c3f8c148ef519a874ce1fa567d39e087b0eef9c688f60fb6cdbaa6f1cada25056e59c81fb328b22706e5002d2352f5b022fb98925c6e84196134a0da3b96a9afbb1f3617b127f9bd1a384fd94da24d6b5a1452a35585dd2c940058020c450caa4b4766aa9390309a7262ff47a4add5dddb8724e5388c49ccfdef25192f659fb59c7e36552f1de9c77185aa0a3165d5fbefeb578611166ac937dcbeb312e2baa0ebc3b2183fb1a27c3a645dd7b26a9113eb1bd67b35b94969c9e167c8766cc3d2614f4bf930d704aabf414b097d3d0644c30625f9593c12e3e1fced34d6c455c493247381025ab873a77ef61ee8f2da00f7492afcb7a1fee5e2925d385fbaac844fe5363d2d8e62acfd20b937525cfb91c3d267c340c2400fbbb29cf77be08d33bbbff43ea31b0362b6aff29cafbca392abff4d51e26a16761016dafaea3cc787c391df99db5a7d52000ca436ab6f0a724dfc94eedb2d16223b2d3aad67708e4ada9b60e8ee96666f6732ed1457243ef589514ca5225ad0900fc04adfe21be0d9045dbcc8c3c64a5fc70db4e66c8d41b2fae374c4d5ca3c3079ed8c464b8454a53a7298594b8f79ff0dc6b6851ea9e795b8da865ec38012e8e493d4f9e5b6bcb6139321c1cda015dbcd346f697602765f72283accfc37128f7b6c53f436b04123c7059aa946c190b6a0697831488e9c21d3b045287b6b81732c63e5977947ad9b79240abed115f7085a689a1fb105e5c538448ed0d3788fd487f59a27a9e0fadfdbcda531277d6c7b098b3b9928e05585baeb6be9fcd5226669a28d4c19274c4519db3a38280d076ecd31baaa204fa7727f3f41da218b98d372b4c1929e52e43716f5a58b7b05c27275aa1c7e36dd12ee64c19dcc8762543756f137e846b9dab2fe62dce739c99ccff47998e9f2927832f575893182809ca2f0f75823a2afcbc824ac928faab11900a571ade11ac34ec9ad35653a77551f993457937c9af9ec1e2f27e9c60fcc3832583af40090e093139670005ff41baf96e4a75c0edd4d916e97d0d05683d4baca3b3f4b03c1ffc3c3255e22dbd25432831d33c559d2ad540679020c0ce3fff0dc8a22c04daae5a5627bd3c92e6cf38443b1ef74c22694e148afe7c739cd669eb410266f6566c69dcae239d499de2b0a2a51e03710e33b7d2844c4cc33ad2378517b3195734e1516abab5f91a56115fb7f881c37f114824fb12e6d2cd2d775a1e57d603cc7aa087909501d079daa921201870e9b730724a980618927f3b77b1957c3423e53f3b227bbea084d0f6132135fbbaf9a8b0b5c61472976bbf80a5670c0b037d22ca0d3d5eefdb1754ea3f9c7bf3dceea91d01ec24cdbe8eb472dc641f1f78f810c8ac1b3a1891ff0f39a4a8d380aa517c24c7b60e7d3a764c77699e3ecf95e26d3da10da27728a2958215923570b5192bd35dfac08c5f48066a7736e67f9258d018ed67ca8368e7c1c74df879ef4ec22070942fdae54821f9563cac74d1dc36c3e81ab869ff74928a2f904d900ed5dff87a47851710b0febcac0239c3c434eabd314d15d5dcd2b1f9115a9cf67091bfe0a6f3318f992ffe8fde1e94807a2cd512e5c19c0856e60fa550d84332f97793bc01069c9844492302ba4658d353cec2362de74d48e2621449dfccfc7a836480fbdbb2f41640786a6d65ab27a80221c8ca4e647cb441c5a98dbd96b9397c5c25f790447647f7f4e7a849cbc825886ce6fcf64e9a848e862d0c78aaa13b5192936514ad4bdcd8b2feb3c1f9eb65e9cab8ae15ded1f8b7bc38bdc0840dd2f8b82f803b01374de14da8c0ca5e83ce94ef4227cec1cb3d7553fedda95fe6a244f58d336a4ff27512b64dc85f8b1c884c0774466d13db1460ca1504200565e2ba270adf0f930125e76b6773df972626e9ec63209940bffc91f0013ddf7c641cac2d4761e9179f54df2c8b24cb80b2418438e6ef432040ea2237b443672bcf100bcabc30f8ffb4dfdfe4897cfa47ea1aba8457d5864ead0ea33a03f1b1f7d2cbcffb36af926bf795ebe829469c834987f2b969d8b661ff90cbcfdaf20ed266e63d1654e73f20876f7c2a746bd13dd26a51c2ab68960364a488d95861b9ee6294e80088ff9d9f232610ecdc5f5ba38405f24cb176e52635b31452cb8a96bdda5497244236c8d096dc95f3ade3ea26643a274fa1efd95a7b02f04af66a8bb663b16fefb3b8f8cf07272d2e46c4ada7fa49bcb6c5c1cefddaffe732944bbe4af81e81575e78bbf4e3b31cc2edccc2c9758274614af562c08982d1e0693c902d4f4e8c11d1f6c9f85b5ef3b4766ffb86d485902a2a55757804ba01293247edbedffb46a75caa1eef44d2b28c25320a06e65f891a9907475ef6f0fde041cc9d2d1ecdbf3e4488001cd34758d44e6efc1c31cfe3cd0e920d82b2185d071095cef612062a68fc3bf96b114f48c5d00328995cc1a14b21778fd6036e1937f2530efad3642eb66dffc3faf8ce1eae6e433c8c78f2fd36621b80023e35812bd13fe6b5106e7d50a67375a45ef0add86993da5c52cd393d097c49a4f50f1ace296c60fc24eb27e412b5396867e50292d9122972e34d14f1ed6a0b2dea208c2720f4cd97fd9782d0fa89811929b2994a544b8717664a7332cbef87d04c9cb837472967059220254b9f334fee6251f9f99485782ca3709c1ab4099314750c01e43a3708b362f8b583e1cb5db54954e979b415dbccd195cc13d54f6416a793d30abc0e8611a1c45300c5f903f8a2feaf314d0aaf5fd223b08e879a43351b9ef8cd002d2325004d4c9ff959e2d8418b704322f2433d45ff6059190defb3bd85457963c44d8f35dd147f7cb9a0060e38ff024cb3405f2990e2a6b8401f1feea406683f01b6c4891480b812aa4e251b7e0035a8448f4ed51bb157a5a114b18745cfb5c2e75fc8e913a8e7159c1d5c1122b4f77ae4ffd9018669e9b333334c514a2c9f11b35504f811c0e6af8584cd1b48695411b401e97be2fa0be2531697858e34bcf2083bb44f857069a11b651cb3b1b8bc0aa93f244e268a03135f969544f416bdb2949046155c67a45448b424195a7633cebc65f643a1740334b1e3a8bdeb5750c5fb75697a33a12daec6b15d672fcb0ee4cd9517a9e787e2ec256b1c5e78a64b9f2bf4961fcf9009dbf4f33fa947f91804ed287473479cb4c03fa5bf4aae0723c6799f32fff3bc33b2211e019e3aa2eb0d03b70e65a3dea47bc89eb2b102a04e2c4410e3be9aca7c90ff33200f78b8bb7709f1518e49aa3a56725376fd9b0da5dbff42b6015ed29f479199f70f744a34e62101b92ec9a48c73c14cc88160e9e40b7b7fb0330131d78e90a0c395c89d762c3a4c85f2cfe047720400e5697b3b127d9d09d273726a62197337e3e7c25afddccf327a8e8b601ddd9b8e82583635ba1594b082473a406e155644f469475e414959b306bc86a5706a32d0e0daeb639fff1767bbdf0fb36be6d50f77d4bebc3bd51bc0408aef4d0672776c951bf960a914f650681a91251b5f6126403998cda7d287d3d9e5fe47d06260c5e51bec5c1011c6f1b9e73c1cac559a3e2ef5373f472a685479c38fb1430388ef8802555efd0a2ae34ae065480be5d6597a7a54c6b4ce882cf0c57b026edb03f2f6c2d2e7622dd83881cdf0c8f908c9b866f0cd9c4cf55a63e75b7ae1f97248312d39b8b925eda11ce1f8e9eff32cdee2c8c9a71a1e2942447577a541b3ceb65cd49057d305c11bd117810b24061c5eaa76aa47cfa7301b880a71e3486badb14d6fb1967920f23b499621a6571bef57e6e961ef8b0de881c15cbd49490be9062ae74488047f7fc65da75e3c77b278a80997d82f76b9f40947cee2df0700bc4443490bb5472c116037b57e15eff3d8727bc452f1fc77771634ac7537676baaf5482f47a435fe3bb046a7e0ca20b76558f4c33e228d15819540913a588eb59f05260b73f016b1defa40173be7eaa30a9389c651062daae173228650b3ec815169f4311611439257b633c3ff5d63aad6e8760e9a12c93e8504ff6159fe13454eec0df3f175a3af03083f900ccfb9adbaf44cb63cc7e7a531701b0643671dc6f92e146fa34808358298b51d044382359611b33d891609ca710209b1e4d200f7a734f9a18628bf3151dc7fa6b14497022a31b4c4ab670a0dca08a335d4ad5b42eeefd4a51d453aa458bc5bd5dfcdffdc3483af03ed56128229ca0672d8aaa0f846d00ea2d7d03cff973d9f988641d91136cce775d9e767e15a3c6e431b96f4e80c5138999a69ba68be19a3955511e73bc6415a2b3260b948e15e673920024ef3e3b14abaa016efaa95863d7e6876d7b28beae0d5eaa0d509ef9ee65ca3883f14fa285c48a3da4ce5d8cd3b117ae8aea8fac1e4197107c2d988d4d1028da73d9da120c4c9d56b9687f604df021786c143a114d436f02f029417d7a590faa96812ffff35a48f0fca5555a79d72e82fada385506c4ad6a12047edb6d555134bcbdaedaa8dd003611a2591cc1ad3b4891f828417ad4a0c31eca1a1324f22af86ecd34173e547cf270ad586fd5af06cb811ac17fbe2fdaad67b885fa20b4bcd0649e6ff9eb222ac6e3936ea82715f6d490cb39a848131de9d3679717e5820d890fdfcaa7887256a80c3392f070242b7e752ed88476a7feee5b4cc2e97d85eabb10e1dbe214a19828dd60ae0f295833835e8825c907f8fa1c8d8343c2f60e3618bf4b770931426f381e2281e21393093e6b9b9d929f7c00920af32e4bdf9a77e2a59eda65a6af2b9fea30bb8fb064599530d1dddd4831b4a108b7705fcfd9be1402849344db298f9c32d319e6c75d360237359f91ec3ef005d0e01d3fdfcd2bce48f30e016088bba83801750ae474b9e07c3f05e0dc333fc54185ae7c2bf7addb9d23fa06667a59b216dcfbc1d57a369cef6e0b864ccc551b4c1bfb385490cc035d4edfc2445716b6357419322e9ffbebf5b31be0d44acd8e762a176500db89679641a89ff37edb0cd6dfbbe4c604cd41e8aa17e2f060a0c5594963ca597cb3ba8bc2f079934a61588da1f73c38668ebf92a65ec081a72c98226c708a8ae9314e32c05265e48cff87c05e414d63cacc85b68a9a7e4ba7ba5815838ea146e428e7b655163bcea2dd092ce6b72dea481af187765da87571ce43056920b84107fb25f59cef2cd913e4de61863886b5de6d682f3fda2e0cc8c293dc210f38b46282d00251b481b5c211f241b437fd6e52f9b24aba41c67fd670c01969f62cdd2810aba44033b5b4ad16c6850198a10529276868d88e24247ae6094d90e4ee7d6a05acd690976f4b3f56463863f9322daab2f08e8fcb32b21a6d8b9dadc7f858e3163e45cf012c952eb34a39c83a61dcf40bbcb5951899c51263ba431ae294b8d68df5d5d440f1d0efc627beff27b9cf237ac14aeb010d5ea8a9620d41e03aebfb17951d78d432ddb46677ccef8df90482ad20ad35ea706095a9e8dcbc6994c07af87ee60fa4cbc4fd971fc01b2ff93dcfb3b9b2e99622142030d727c7471e0ef8abb7afc512072eb95680c97a521b849480e0234627cea6c3a68575f67a452eb2516f2cb85bd8e9f4ce9a6b9ee68da2887be43b1e00baa56867f1e64cdab07cad6b9fc3ed5fb3681eecf6fd287331a604c7002c7476c7872d2fbbab961521d9f0c7aa0d1750f541d35f062c9452186488306e9ae3425323bff1978a1835f22cd2a4155b21dc6ead4182c67647eefff34efdbb1fdc07b835418f6a5b8ef0d2dc52625c2f99d26c0b19ae6cb0fef6032ef30449c5ab7474ddc62eaa8d7977b7588c52a7bedc598f5d0afafa8180d3103424ccb28f59cfdd205b3fafa2bf84668f2c7b9a751e2ddbc9d871b5e4a4bf47e9699154f04fefd6669961ffae98d74078025ac8713787b319fa3092aaab559c73f97d7c51d7f23afad5bbb6dccd6b0c8c9afe5e054aa5d63bc700e9f6e27b70bd996cd19060398a8dd67abbe9470b9e47eb0a7f38340b0ac33c5cd9bf9df0d8f797f87f7c9f6cefb41a817ea7ed1235aa116d4c44d2f3de644bfb17517aee8114ccc6295a75a2e165b486aa7cd2843ebc1de430181197da7bb84717ccf8a2e04aad3a3e63abe17f7eb02b49e0b4c1fd04efa1f8d7d02f59848e5dc8a361717b96760958437d93413e0fbf93e2cc834a11219c695797ebb5a21d79841ffc3b98355b5d779cf3abbeca4cbcdba4eaf42cf3075eb6a3122e9d1b8cf408da942d8d2ccb7a74810e9321aa7941b5dbe4f9a1bfbc6db57a6bd2f1daf636d24454bd45c2c719d3fbbf184c49e3ffd350570d3b0e3a9616cd675459ec21378c22e5e64a0048e53288b6fdd7784c69d961b1439e7e88a8e7455d0b5603b973c109ebd0c238add2f597f7dae2ebb51ba98094522430fb859abaf3e0d1f61f836be7c85b697b4743590d4a7204bab6cdb6b382b5f3487c8566bdb72d1f3fd39c8a7bb7527821ea212bc270b1e5e2643d2713dd490171e9854f0f7da5c07b58be73d82b39d345906e780535f2adc2cde38b4d32fc4f56803f5528917dbceebe4d17e68dee8f4711ea0e144141e39efe6e7724dd60a22a5ba64db1bd36dafdaf5b1ce13ea22248e5d36fa5cab569209d4427ecf2519221fd6fb50a1bb5edb10fe74ed8efd108b1f9ebdd600d2405d20f8f041182ecabf5ee0d52c5b28f3d3b2dc4892f484cccac952a856395b41fa43697cd8e2087ba626bafd829f2c1256a8309f71edc719ca94ee056bd592a9f6cb36cce76ca7befa91b1ceeb0ec28533609243c2f732e89db0c3019f3a6e14161c21eae6f10dfeb11e479bb896e76573912f5e8c49e64a0b91f15557dd9d153a0a207fc32967eff61c04f0416df83e031bf9b4b8ea0c5cb7d6267424ae81b8ba88eecd60de1c02068b057226ff32e9180fecb9c17a14f52a8708f8d38bfef82dd44f4bd6176403a76b4f18bde302a55ac1cd5523a36ec4d7ceadcd69d69d29a0820b6d9234a3c6ce0d94992613f6b0cdfe4b94ba539e93a81c9b017c10c8ff7d5bfe3d15f7d37c97f5783d42c0c21966751fc685eef450400c5edad61b25c0253414f92b16c62e631ba7a7d24bc5b9637ccfe293b7c0e958bc660aa2ee3020a78075038ca0ea7515721f1c1646ed0cc65ff1ccc68ac3f04736e13234c1107999b13c8bff1a272a0568b323dbcce6276aa35de79e509ede550a8bab6d3d22cabf8ed4bed7faf9653163289ba2d785efee54ae31c0643a3297e4fb32252ecd22b301e2f616250db3d86f70fb26e278a37982c7278f1e040339ae33ec9472bf70dc63377b59bd51c7416e2b53f6abd7e7069eac04c234ebf88084df249a810ebdda35ef706c0b10e0f3ba984a3c011ecf9a3566265ec2ca68470b188da5d4b03e4929716507ab8fd2fee517c6a4295b520b336769feefd22fa3d588ce2c302cccec558028a08ad2bcb2ddb953776c41031ab037f26a216ff9c1d9f87782af18b624ee64f9fbb209eb379fabec4186a0fd3c23aff60d2e7ed4c84feafc3584e20dba7264ed978a17a4557e8e01b96b13ff4d13d40482094ed18281e3df1058a7b842b0b8a9739384ad5cf3c443893094c7dd7c3e4307ed6b3ec86f9dd605dd6508d9a8847cf8c37bebbf0dbe33864d6c44577d9285cb438615f5c14fee78182b63e991ff106125ad06e4af2800c96f47d137571f103de99f4072dbfcc8f0625c9922ff5bf3f0131589a72018a08660b2af63d850df6eb043911c06b38fe7496999b4a7b1e86a3e26f9381fc262c47af1dfb5cc54a3d1fd72784a11150cec8bbef4a38a987afd53842d39674fce86054640804da3fc99136f9e49fa2bc78f220acf22ec4e42289ff1b5f4fd5772b0b1191a98d33ee7faed85c4c4c8f44115863d244c5b7ab6644b3da2454b1b6045830f5bbee6a9da6b418951b815b8b0a516c86b177fe3f96a07f125ccd1e5bc88794263348329219385e6ec7d7427f65ab7b86c0261a58cecb8d85ede623dfa892e9ffa15cd5825ca1d34cfb2eed262e2602ec6a969c691607a3c6bb523339dda1a784cf0f4aeb27aa6cca822a33c1ebf74b3d89eebf5d4b280f2169c5b8e32293e55262edd0a2b9e43c9ffdb1f268b646fb19213c8f101619eb1fe079b599ff7cfb8c98a42555d9311ece5e6ef3aef8b0520cbdee9e5c0657a74e75aa6c5a7e21f56415843fc1334aa74f9d51dbdb7fc54f49005955b58174ea0cf21a2086437ed4b30806a2df693b72b5c90d33cc618b95695735c3915296bf8f398edc25bc40a44658423d52f3e2b27ff1997a986bf92665fe1e0c2a4cf5146a824e56b0dc4c5acbfd77debfbd731d1fd6b04d7b407df15b93155f49a4608a3650a9d5dd5b368a877f8730fd44f61cdd825198a70c7727f514fe7e365bb98f3c726f335d96cbe74245784c25bac859243a3fdb00b4bc6a5f7a20dbf44774d32a4d75e57b5087990f8ef4d903b21690e3078180e7b013c73b0aa83760251c01419f151b135b1f5bdaf6c9bf72bd65b60484e33f8b6bbb7cfd3426e6e44acfcf82bfabe94bb9f96fecd46b648d400d7432f5749375aee39a88fe0d8ed691bd60ce1119890c45af65c9226d7edbd7b9e76511073c3e01316a19f23785a746acedef0a43a020f890a612610c75d59ce8bdf60eb2d59b1e3ca7be3260b882eb77c70ca994a16ef01fdc5a98a45064a56f972796517c426f128df079a6230a008aa4ffb57837ccfd9221139c383b3f2cf5bf68680480426fb3af0ebd10db3bf8683f8082e0c043085406fcc9ee9048ea7634cb3fac29d92793a6cec103a3bf0a2645300ac1dddce58360c4c491804c4bc1f95d7e728fe5731c87e520ce181f85ed93e799950b3a4773efbf130e3cc352fac26fc2417973992a2f7615206baae27bc9d922d8519d3a29cedf24f7b8783718e8ee5947550edf8d5f0eff8ca20bf9a2216f5e8cfe2565e0b556e903013cf768ac61dc783cce278aa63cab0c7aca2bc8a4eac7b672597a881093288c12f86508d530e80b07514d5b1a09537bc742be66a6373adefe48aa42db78b00f51d8856d8f3e1dfb7011e3aae3dab71a74cf098a9378b193cfe6b6e55805bdaf855a48dea703f4874ece4a1a9894f20c052c9454113149e5e95b217c94c64cb36f7032f60fadfdb2d0f385be64f156d9b34ec07c6b2511e9377168c6b3d09a04e512c026b5f36ec3d938fca0086d44ef163d1acb5249bc39a55da1b5191ba2b082e8cd30a7a894c661e2833c9f40dd1c5a9d0c9deb577e714b8bccef586f616aede1c1ad8e2ff60aeb5e54023b3e6315070625662cefa5b3ae252850f6539207a2eda588736177a2062c30d74f9569f35d4eea298c48a2240a836a66fb9ca8025625ea81d391c0e4e837ff94edc921b13d61ae0201e92c6dacba3ef4588c3bf9e7160eac08b090ec0d314786ca68c9af9c54b39e4ee2403a64fa956f19ac6c2de00a03efffbe621aee756bec1d42a53291c771bea47f62befc6c608463cc7b06816ab3873f1dfd90c296627d4a3506e1e9c8ccb88d777b2ecac308904ccf7a8d67a7bd833d5716b5599b9bdf58d78a4a56c885f62cfd384146b59d267b2cfff1bb461b48067e38b4fb7e2131427e305b1f545174cd4a6ab7bc02ed8d9956c203f2f11e0b333c71fe5e94a7820a7bcde96fa58346c07f57cf07d7f340986c5db919afee5a30232ac4acc30d57ab8c3d2c2d3d6a108beb69ce5c90f06cc0e0afaebfa26194d4eab97d95d41729ced5e0415f130e8c6620c87f2847127596ff0ba05dfdf26c469ddc66753687e556df0ca7291b48080d67b9aefba33a718c80f7f15af64d6a33e945fd88f8826abe71b6c2531dc8e5d86dbdac87d686ab848a29279df6d06a5614ee8631e43d0e3d4fea5c612bec19334d46ceaabf5c2224d6726da854481a4e488f8649eb161ac518a21f3b2d0dae513becee8ca08907f5d7671050440b80c333064a895c0449cde7211c674b33414689c3e8cbe09743591cf802f7db9773e039ee61fb8ff64deb665247d137fb835cc3361eb8bde1ee4c3f99596051c51d16aade1e81fd024a3e737af82397d3bcc80e68f5a0f40ed9f8294fd10fd0a57f33ba231767ef9459a990526bb00ca043a61ea65631ba9b051580a6463a8b3bedcb3caba909439507debaab41e7aa3d07465af22edc90bf2a1b67a93c46ed368eed4d227189e976d3365dcafd60ca5a09cd0eefee58d08a314911f257dc060edd2770eed48f1a5ab3617b2588768992df22c6cd0b30f059ba73b641e3879fdf2be2d3c178236b048fda5471ae6976c233301dff7f57e7cd97a8e46d4de789be1a02c307c98c3a40c5350dbc9f1d261f426db37646df32514fa15209a76c1d3423e26a4b754a2752a43a23ea6f5fb9a25ec00d4fe2ad55d19c059ee828aef70211987e08f0157e97f1cdc00f95be920e6dac867ad84ce3bced7d9f86aa466775848b6b0af1f7d40c65ac2dfb70f5bedf67cfa5f731c56786e5953e572b4622cd705c1a9cf36c44702cf5eec3bde1d143dbb078b0fa8bbee4da6eef4a4c322abc9b19764fb599f0ee67845d59220d3a526be0c6c5c47eaac957424420d596ff2822c73311ba8fd4d1ab1dbddaa7c54c8c4b643b8824f0c08f9ab43ca42f2687e2f4349492caa1016a80661efa38c68cecc677ddca34c4f93017f73cade869425255251ad06fc8c490e4b095ca246fed9bb999728b119d766ff3bad66f3303bead5dc36ea17916646cc5959021a18e14ba16eba3265b1753ba89f3cdc7657b57a27769eecb7b3d66ce8a5f542245b9dc8363dd006fb8169040e968033379a4bcf8e2b797064b22966c8b44efa18e329a893831390750226c14541a2f878d89c63733fb56bb8681346a947126d15c65e494c544285152d1ba79c17094de63ef91e0d1e2e71609a4092367e42a0172ece55349b28b1c6e470d7a5b411ad3e164f7777887c725792349ee36161f67f82a75de9c3e7f015ac1bda101a070e291e3c433b7c1f051bdbe799b2d76b779fc7477afa61718fc4e313059c5812ec122005bcc72d05c927e3ed3bfe6b37fe3ecc750bbe562b96f87ebd9a56e2f1176e5aa8fa5604f8202ae69c486f2d98e0b1d1362e2ec1bfc31c762e23ef687c7515080f83b8e7d4c65fe09939c5738b4e54810d81cde42449ed3f46ec90c13f33a7fa9fe85dad3444c660048f60d1f671207ac4c63f75a5dfcf4c6ebc092e34851ae4c5ec279ebe838a16959ae806803565dfefc850339b8b577b2e307204afc9dc08df3ff71b46613aed2c4e911d41c162bd395dae52124ee2d41395e7f57dd62bb1ef7841ffc38bf507d8bbd9530f3dabcc2d8e612391d16ecb9d201302fd59c4a600c1eb3435e6b8fb4c258d45651ca3ada9bf4133f0af60b3d0b8fe329aa793a12c347b0e623793531aa4b0bf460b036d4e5c907a00383eaf07ace00c835d4fd936e176d91bf79528e7aa06b243d7224e128961ed2fd86683ee87d217476452ab574c2960731d0b9cddd9e98dd4db5dcffdd831f0471c76b1d744a961527fcfa1576a5ab3a26fa81ec437f2a29b61d1be60244e31bd8de5c715322df72c657cd17f2b67fb0db5f848785072f2f5fc500793c57d704a16ea875a7bc36643837a35d4863ba3933d0e38f8606a7106a748fd59fce7e4e68a8403a47b603d66a06a4dc39ea58f87a7b800fcbe8079212b331e963bced1a9a6e1a308cea659ba8d9997c4b7828b69e5482fd2f2cb7954c04329afd924e5dd275adc573bfb01084507048ac604e8bbd3dd5223a4d9466a6774280683f5d6896e17913a8f4e98d838dbb2e810ec2d45d4aa70eade46ed23948f52c9ee1eecc41d07d9841254ca9f94a3152b87ecf7ab9aeec1a5c108b14b66d43047ea46588402bbf065494c749b3f82ceac5559487dca8db8067ee2290ccdb08a5a75c3c83f0d9c81f980c7c8965d92ab3ecee860d90cd707d57e6e15a8aab85e10944815fc42625a1c4934368054a4deff314ec5d4ba8e885c7b768976891dd47285e559781bfe7406872254e73b8dbf66c6e628fa58a478c93cacc9f1dd2993a59cf6eebb33a24ba5699e25d2452be58ea09575401bdd553b9081500795f25997eb79521b07574e9fabd6c97b31e048bcae08f216dff9cd55f9ec040d4e550f8faee2913c06f74f91f9f6aca840d602b7899a1a4f16eecb4b6583d81e259d06ae55a9b0b5280469f03c4b658e378a7cf414c798ac870d8c39f0072e2e805bcd9bd6bf07645e70f67c3afdfc846c455662b90d895353ab79754fa36c1a92c10ed23c042e0aebf781077f3a828a70606275b9fcf05fce8a32d7aa7d7c08c172c8452d33f40ad4e2efb89c1873f0b25fd1204f5484caae5fd9e548595a5cdcc55be6115a89b2a8163a325a52791ba5ca005f0607d143676e7e50cc524ffbbb9339391c9d4f1a12c4a2ebfc8e62fbdfff9540b2f7f99a2fcc8b13a282ea3555452fb1e8d2a7b44509e061ac7585f9311370294abb04cab5acc4b2440cff7c516a1a86577aa3718251c89515ac2064f852b7acefe49ccac58628b66ca170e943ef54e505a65cde94404c1bb5ca0f37819cce56115d52946bbbcdaf6c98c8c8968877c59c800b72b919c34b7771fec6b31b30abe0cb4806ce8524bb127a5699c7972029f2b36c21cccadc1b58ca3910f979fbb2c6599dcea995fbae4195076654436edc96753decf07048a165d43131dc3f3d8700d0d70882063058f4e6cb8ed01380dcd36b93aef27f2efa03548b0572533e11436e91a4f289f4e3bd85095dc033f0fbcae5fb554b4cda2b26ab20a63e98b11cbbce040acc39c51b42943cc50fdf9243d254d99d1236dbb7242b34921e0481681eaf3ef65c0a4c7fc000141eede743d57f321adbf97afe89b82310cc3885c4b0931fa569eee47dc3ffe3c96ea89a5cd9e728d9135baf6abaf37482bf3afde8c7b8f228c5f0fd8b1abc71998228de42803ebd66ff811a5a5a473c64cc8be8897af466aa36995eef56707af7682b66e69be0e57f884a8a6f161b2ae45669e37f9729125153d40e4851a458cd04a82e2e82910fcb0c94fe693994ab64c79086f915c267b749bde5823ac982f8dfc58c5487953c7936c2ed6f4d3d1c8fcf437d5a15f63e775f832af383f788f87f51bfe0a9e3c4ffdb57aec6dbea28427c130b36e8025ba45950990ad8a6f920808b85abad59f3ceb7a7520e60ec5bd773e40776f4c79972e400d65cb0a639711975409a3a4e9cc8aa0c76f7e8e4ef8e3cceb340ff882f58ff2ccdd31ba1ded76013d1f1b3f295217135e5c4e1df5f0f0bd3d1ffd4337a024c7b16ddb444c59ca65d1145ba3c6b1084ac16a30c1f114c45c44130d8cc03999025aca31e7b4941509a345e6e5d3e591b3aea39e11850706f6a10ea8a1b5b17228eb70326b6fcb64ea5f708372977a6fa16b149f926520950940b2cc539ad24456721ea3f51c1d214d583cc54323130691e24ec0d020e8071093c59fc67bb6385f57585695a3213b4438af22538be5d0e81ce72550009eff7d5fb18cfcdc4de3613ce47fc6bd5d258806b69fc39339208514f7a4a053b64aef9b04f63292dc6bd2604d195cc2d09e2199a005897ded27ae299cf0281955d7a3dff175f49b790233c463568165694db377a3ab8deef45d51c376d67adfd775b8c7ceae028d90a6f4d1b929c5d78d286c9256cf98d0d12898c02b8b42614a6bc5e094ab7988613d3a5526d9619495b3ec4b357d776820de356ce40623cef0d3cced62d0ce6f7ff877d045a232644d08a91321092ad50e110793ce7111ebc1d5a2d8fa5a8d6a520c291af56e099777b19135dd16189ddc30dc389ba00135e6a239334373f28b96b6154dd999563946550d9392328ded5f778927fea0f5f83f4c7bf4c5cbcafcda94e3afd8c25418e32f8db04cf9ffb68327963d3356c2e4de639b0630d233ba024bea349eb32abbec5d46e27ad1e5dec31b25f374251bec8a6f0a50d56f22acc67986981a54b513f0f6d96972331556b3a4f00485b2b67d3d2b751b2b5ad190310565f1feaeeb8df4f7f505ea81f80077b7739629ac9eeca79b79264cf378fc22ab80bb42060f51f1fd38cc80721305496c9a65aaa8fca1a8f0fb2975baf276cee9cb03a2f718fa53d0e22434069d3df6cc93db5512f623da374562894c2a933c36c15f1bb119d37cbb1b67e911304f61f39edffb23693e04df55788ff47db6c78253c97235788f3fbbdce3e756d410ff77ed5172f59ca2a806163130cc7028a015f94cadb046e16575c2245c2be2c65a30f5fd1298362376a44d723a6c50ed4aafcab497dc1cd02b0455c3d6b282fa8f3dcba43943054ad7758e801f2db0e01c01f10040752a96c2908e84caa6ce8ecf6a6279c790776563c279d476f7db7ec373da8a7bbd73eccebdaa5311afcd12e1dbc609a3c9cb536bee0b8979a4a4cebd3df3255f136a1be8e1884e664ad8359f0bb11934424d4270ddd72f86ee27e7dec9d96dc79452d91c122b55e9461eb2741a0a64e8c6304fa9245ccb9ff1759fcf6d49b7d2d32cfc6bfc1b759fca53f7e56c3b92b018e27c820ddccae93b36108a7035c6639b0b494a92c518efebc65d059a63f98279d4ad17686626316eaeb1e060ce80a2c311372283021a26da5fb0ffa9cad6d6482870bd2df424626ccc0af3bb6b5479168550ce8674b6f4954d6a8fa42fd62ab0b7387af3c8e9101e1618bce393e61744a9f8207869ebed39611b896fc9a57e5f5c4d882c7fa1f0bea0cb86659cf971e754c15c3f59ee0ad3590451fd143dd9598006d63c6a0a5dbf714971909c21bc9a7227ba8c464e25c9a22262cbca44c2d14b40875b381fd534ebcdf05bac03f41be081e8628cc980d74691c8b095bfc71502cc7045fedd7ada257e4b9ea95e59815d2a8771e20a3f95195ba5fc64acfa8c5f729ebf168192a15abc1e93fd09ed7d7e6ca93fa24fe98d5998afe473dc6ec30aa0cee97f0208d2bdfcd8b11c6cf7b5cf925a269770ebe94cf8b04360a0be866a25f460a06de8ba6d813dd4baa78223a27e141be3e515a79aa505a8ea408712738bb5319e56e6f256d6e5acede3df8a2e93484ac2251a6162ca20b23971ea4c3c5fec9ab1c9d8283060ba8db7a01fff0261dc81372d15aa54d707c3ba090b13737e28a01d283884efd37e7eb4fe9976ec6aa86beb18fff24d17d2faf9639495f7de2d6cb8b3a3955bf643a3e33d6a6fce91f897c8733a04360730870ba132c53a846f832dfd5cd79995f1f2c67cf0a31a310d581e4809062660e34160fd17cf2c559ac66304c9bddc48c33d53ee4ecfdab99c68540f151917c03f9f1f1677a9ce4d0c45b19df5579324ca836a52ec817ea64d6c7953ea7e9b63afec60ad0bb0b81759dfc6990d80bc3b699bda79f405dff53d3636357752647130dfdd0b9150286dc7b97d41e39b3f79d7271a04d6532bf87ce4ef0f92d095eed571f89749c766cacf7ef0f16eed6c16a0df3d52c416ae1c90ca222572302c9141142e9b7aeb9ad9a2718a08487307b62423e0df37c19f9bf12b408f330cf34b30295278eb0b58b5a250f6d92f597af517e3f4cf68b1764b8bc698bb5559d19deed429c66adb7b96e407172284f81b18ffd6c380d86567ad3f2d1e523df16b64de1b43db496d2dc2b5337436cf68a04ab9038367c9c1064161f204c1b3a96030f4502159db410f951273c44739a01ddff5914b49c261407b3ba2919963fd9bdf3bd4182efc62f6582e8a7f2a102443ccb5f462240e001351898d9a8a5c448b90512174568790b82af054a2714649a7acd25f12c23ee9c422fc63880c947c2dd7e62dbc5edd7ce39572890e22f3044c75778e86f6a38082f8b79edfc161a2447b41183e4a64196fb4834a30e8cf4cbd1ca4d97109d5d4986dd5ba9c26019929edbb25280a06f3bc90268ad384b9076b76ac9e6a9f2e44be5be143ed6713a3040d4111d822ae9e7640113c5319328e2098b7f53fc150311b545cae0f251c6b6cd6d6a93476cf351daf2f588c16e2babb3941b8be4b9bc704383a026469049cad000fc12c6bdce25b571fad3ed5128b85a199d7a027b7cf9bcf6555f76696093daa9569b5d3d17d6f3ab282c549314fced96303a1261194c11039161458036916b4a685e103a938353d700c52d8506baf1e17a0ec4755d514e50626a1756099098895a5ec85e55bb2b214ac110aa5a714ad7f0d6e73f9cee8a192c3591f237c38a3463653b80b1327440c04eac60c116f5e3d3da970b34b68119445282aaa5d4764b3ff516c2549fe96fad9b4c28169b3c6439924fbfdc956e03aa52dc8b4ed014b69f3664c3e952c0935c92500a72886dc583a985b98b02180a4d83fa5e5c7760d0b4bad6be936d09c49c5c3a6440cb78d9a6e5dda0593331166fde8a1478ccba4cef62ee0ba2224b4726ca0ecc3386e04f78fd8b40e86bbb50a53310ec4874bbafc5b85b3ca1e188f252ab77fb0e9accbb22ad7fc3b845ac18c05be64adec72ab716363c637ef1f9488291eae40b20374e5731cee5ee26896dcc70e4e369bf8b121d8e27ca1920b4ef5177387c64da0d3f90f96d308d4c5a55f3ee422f779189b9015af2aaf8efab07bb72d553f00157f2f29f38a110063f26f39193c6c5ea0df5806673f884cbca85d41c212c7867ba21ad697121425feadd6bf781d768581dca772d0245b852f2b9198bd012298d5f423d02653f0cdba0057e95af0d99be861be9eb699d7be7209414c451134f5cc19047a1b8348168ed1268912d2bc561ecd73398e15b3d7f7824e6aa593890935684d362e18047fae716aa875312c9cb267b09a386a27a4cc2dc821d6a7ce1bf0b5e30d7d37ced27961c2d00ad6983bb4d4f251806a719aaa1f773523d0550e1a7c7ca6b2fa961a8301bd26a5325636f7eaca0429d5528f9f63553e5f6a96af9a602489a5ad0fa2bae6605479541d98ab795f9dac258e8261b012be4c21a89a81f4bab8295d2f0ce2b4a543f51689dfc61aebc8ff34707b9f038f0127facca7cd4073980eadb377bed6f6a8e4439bf601653ac6f7c54375e13e63d37454e3ec818d572283f098b3ba27b65dacee36bb6d852e842b32da5bc92259fe8e0df34d2aa9bf6d5aeda383eba6b88aa6a8a317e0863d106a6d0918c70df09f84fca69d31d9de85ea87dbf4a797c6a2e9230eabbb53f154207f29ac91b3da4a4726ca4dab8534907fd209c227081b2d04790602d4cc672848629860f79a7df9485dd2af72a51c439da03fc8d992e95f778b015f7026d1aabaf53700d78f75d0f57a53c5c1e940ac88cb4e8b6453d58afaf7d612af1af4f4ff47ea24545f10b1b30488a0a1aa1f47d4ca4eca82747651d18e4165cb66aa16f6121c949824d09b51d9cf54d69f8e63e8201a242e70d9b5be9b620d08776265e9ac38abb424ede210772a77288434dcc160d1cbc91700f35e243e3a401b9b1af80d31dc70b8d12cb285bf2e2edb0c1d613f574d3fbe5e27f2d43d2b619c6c42dbc9fb39220b9a46309358d5f533e779a338d1613f6a5ccfe18aaa584e91fff96e070f15d4859bc6125de427346de7d480cc2dd418cbd80f8b4b362cf25f12fe9390eba75896db7e8293f406d8b10695e73e9875d7c6a1d017fd76497d6d7589440e90d3122294bf89be3fc7251f8decb01105229ddcfca670666066169f8e83f66502ec8a5cb5692ad11e12bc479d6f6725add46642229091d2d2b37cf2d8fea4f6cc9420ea61d1330110562411a9fad98a89ccaf99bf7bcb320bd65ea45f071b2579ad6b2f6e7002ae38c7d0bbfae8b494dac0a45275a6bcc2306d689045c159401c4e1e6ee768937bdaefa93f2a9b9ba5a225d95957c40900c92d483541d73348c9d379d88ad7954ae2d08d89a94d7c8c2880b0786efb213f4189300d1b39788919fda8144bf663615c9262903c3f18fe78cbede438ae974569e694b9312a4654aa1691c1cf0e0eedfdc39eaa7827fadfe1ec1ad82416d819f56925d7f69f644a9d37ec6ef23ce1fc992d69074bfd54a67538baab17ae4ba7fd4e4b2d6df0b6e4178ebe224201143eaa2fb2b0740d85fb8c0574e3ea6c29ed7ecfa752b2d028d8c0bb78f681a38208d0b3e80506612d454153b2c2e9cf862dd79c57ce71a3abf34742598e2665a5c04bad2c31e9732b60f37c5c8755b56ef94ce8fc336d171feadbffde2ddd832a2e832921b3593bdb19c6fea427e306090687fbd1b6fb153f3cb3bb5ef4030cde2981f0bfc3657c6582204a1b7d3c341d6e126146368401f11f88c20d5d2b7bc9f073b5d0f0717212312caa731b7b7d7962de9ce8d407448ad3169313769b32b57d2cd7e514b4c5daf85a38b7adb20d0953be749ec0942dea449f9a7462cfb97585a1b0007cbbd1b058dde0cd9865e5a249edc86df1d22281556701e8a2f5d0ae156d793fcde43b3c282c7794ce0c95db8684fc574a7a1b9f4d3987ea517053f6604eb6361be4d9019f81daf03096c7637005ee09b6d970a342e06fa0f756ea80f6a539d84e42e831d95d2a96a0e19cbd87d37f628f52fce74caf7f58daf28ec27efab309fbd990966a020b6bd743d4526fb7b011e4da85816bfa07c2b842ddac1976d44c895ac15c65f7f9c37a04c735fb5d44d2e57a822fdd9b0328ab793675a668f91a9ac851b17788b2e365e13217ead4fbff2cd12215876e4343817fb30c90c170d665fa7a6c6844a273098bd43a2a125e8c458fb115bbd4aa75526ce7b334974873e51c9d45487d6de6e026d2747d6e10945dfb41ee50347c801e107254a2a6af398c2e564922cb83f66acbf579e624bf16d36eae668e75b5074d6f628a2ccae5436684e88bd389c4b2c606b80c89d59593ccd6e633cc867c74923d69875486bc998144f151f75733cb12581ad18d04488cfe348f651ed79b084166db399680a70ba2eb6e298296bc0ff1b651d1299aa9303e1eee7888dd0e3555898461f1025d2f62c817adbbef09531c0841fd2062d7b4873e2b6b6e919e859c77497c707b06200e8000ecc3cd6623d3abc32efa8eef13add1dd6405f28db32eb99ab482fc00e4b68892afb6deb40bf6f0c77ca2305a41f828ebd87f7e56b11008b73bb9bc2d9a37aed219cc96704e1c9a39e76cc2a10aaa2ab53092bd74c141d3bdb95b95d2d02791f7558babc54c8e64bca5329fdb2b65d0985fb6b744eaa2bc91bd52840aa800245055419ab30b097936a3d787a05843a8bcf74578ee58211b8b561a2cc6a10c2f7ad2722142896afa2af09d1f953b88542f9a1b9362854c79fa41ca545c4114cee814eec3c5d3ea7ce435826e82aea40856dced9c662909177b56c464aadc1bf0ba2e7647341552876f745262feac820fabfcfeadb15c6265151745ecc440f1d9e1aebe398904b01865954f49a4c3e045cc000ee21868928b3198e51e380cbaa0970194683a6f751f859df158ddfdd99ed916afddcb213de35920194fd8e02db225f99966bccc74022187d5283994959f23545242a1e47d7ccd2ed47a22cfa94dfb38ff0b170e3b19560ff33356dd7fe0292b493c7374db99e2d1d5bd2c9dd406147de1f3891b662f1800f85c5a435c90e9320cf78b616c3039777fd926cb1d44aef7e3fb40b21a070cc10d64fb3ff6f07b19dc2322bd766cbd9fc2b66a77fbc2513fa6c818947fd531395d7617a135d704dc9978e5309e2c7a216fdd1c846d1126875f40733b30c15f4b5c9cdd97e02cf19d5b2c9bcb43813be117fc5ca0f613991bdf0e1c85ed688c774f478654647085b9d47eca141334012ed7660617ee81555d98223d026f5ae96a71cb9b309332bce3202f7939d83d412877900085c76789b42d2f63e41b9dcd88e1e0d2a96598747de304f863a34dfadee5951fd9afa37c36232c92b59e2870b6d12273af71dcf06bf546bf90ed45960c68b3943fa96977f7fed4694ebb6972f36a924f04facda4120d415b72ebbd9c9db0cceeda21c1f84222265abc8ac03a8987144fb72d4a5448e5c868367b7e356bdee6aa6cdb073d3414e5e70945021fdbb0ef84f46dcb816169afa13d22087bd364ab544fdc6b1469cb18011b0df75e21c650d9b036d82caa5550f918600d9d190fea36640c6f09c9c18b610fc7dbee9850c741f2948fe0e88c07c95d34f4d2b7a1149cd6126cd79a424d07dddde111f2d0c789b6eb2212c51cb60c2315571e0d18c09ed6030d31627030b71401abc407412aabba2657cf2a8c42af39bc85dd1020278aad6fd1d63ff54d910250d3f7299cacb6a46006bd059813e77121012ef640a8cacd6e8dfdcd2d7db59c1b669a847f6b4c52709f65edf398a27fb0011fe90c456ec058e804b3e3e0f7f16464746ddb6ea44dc7a1d79cfdc1045049efb34fd9253512eede7d645a5aa50a8241d1a23d1a27ab8924944f9383f1e1e1ecb638bc1032a2df3e81d48511586ddf67fac473be95d1cd50cd5d6658aaf3b0485be2f8f6faf3c72c5603c0f1dbb9a8b281942409c3ee80e4f4b134bc7a17a10bb08298686967dd9f68af3728230c3ff25bbf858edb1a83b09af14cb174016c70e2bba71deb77dee48f9d9faa4a19c86dcb4683473e6c2c1b9b73a23c3d2026645066746f6265fb19a5335baeae38cd5a1ac8840fe57d929d9d5d7fe5e8d2320b6b9a32dc96e8cab3695f822e0fcbd56625327c275d2a9446e382943be8cd913c6924a38535d5a9f9bd039c6bc4b12433b6b110b24f7de73665debf4e04813600cacbb0b261cb3f862766db6803c844d5adde87389a1d242343c263336b90a217a7187d4bd55a45cba756026a3290dc53ff738627f7b10ad681169284ccb24c72d78000619139128ae20bc77e4d87552c7a1ce14d360218ae1941a0dd858675bae12635a31e70ec5c94edc1f35ad03fcf641e7d6005d7c81b5591f160df2fecc8be94bee95d9d8b2c59c774dbef29ff21e7efaf7648dad1247f48e73258d2ec2b6c1c24ade8b3c5bac21df28fc45f3afb44fea38d02faf4e2e199eefc0237b3a54ec8fe8d01d3e41abf9f082859aabaaae8310804ce0f0c02153c966bf23194ae6405efcb141db8324fee9b07aaaee46e3df9b620e5ce56479c656eb0b59870f04871c9cdc8ad0b3f8d34014df40fb9fb59e41088ba3a1806d64e3700e5db1cc904762d9d9e11d650034acb638ac556fa7a1b7eca212816a939938b15be95e8ccb29da36922e113ca51596f74b8a64d894d3ae9d4078b9b2de60bc5abd09fc940f1c77404ac61fce2254590eeb8deabb7095a0d7bbb9234a380fd5304bb81ce9f24aba664af4df42680458c05b93a95095d5420f7c5d679b262b32165f64a64198a4bed229d2666f54a771d30ed835ff82489b9655316e61319e2e096b329ac0f1a52ecfd52b2710241587baab557a371f9b0d4442b4ce014326b5f66c75095983a6dd6571c8636d5236970f2d22f6d53878677f93819da165c5c0625a7feafff412554b642c157494270444baa8cbef4ba50d04ba4c7a00fd443b62975b7b642c9ce9e442e59390f4f16313d9a73db9dba979ae77968c509243417491d049b95ce84e7501699612a87d753125fb37409b18e36dde3cd4ea13111456581487bdda75475cb41b75b722883b55a87a09bea67fc2621f263be899c007adcb5824736c50561ccd7a1721138c30c68f83b9064b2ac980bf329cf066d17fa144e05036e4327780d40659d08996656d282f5e690a7b42dd75b4e3c72129f0cf5b87e81874e4d9c6b13ce00ab72673bf4867c37fbac138626412f4bbbb18b406eaddf353854a8e6699c287c21e7e7816ea9508224517be67b5fc1cae3c3fd92efa6f2296d0660f3aee73fd1e5199f73a29704bf01f647edbfb39fb87e04e94fee71b67dc32d5cfb8264fe194886703937dc64917b4bf47cbea345c237b03aae62c8cddd0d4c65ce55155268eca527a999c3f4f7ed9991e2a8b635674b13193a4bfe9538d20ec7523950369f4ae791e7765073e2a9dc0ec691dd0e970c68161928beb699cc91deea630f05ce2df4708e42405a0373ac58a1f04bd2445f0571157fd53c7c6a713e04add171993548ffbab41f89db04fa9b5224e0db8e3eddba26581192134fad521f170bd08756170187476f8ef3889835ddea1b4fc9374b82dfc22ae403d15aaed14225875856849bf3bad7407220981894e8acfaeeec32d6c04dc3ccc27a276da0f30fd6e852276c3a906e9ac46170b5b72685f4ba916ebff58f714c618bab52139661488a39e49ace910a08d7d4faab08908370f3718d0962a0dd6ad0748c910cb9077f194f11e01447a89e74743dd2ef75ac933c6ae2f4409ded0dca5d6f64448c872e96acedb8fe82dee8bc33055aa30bf245206ce2abc92802da67a1bbe2c268ce7477bb674442d5623e4575501f20e88c44d6fdd29570e6422d1a4d2dbb554592e879bb3382dd169ed766928969e58ae4f6bdb8c8e06500fb8721a637be4a4242042f4132eef0e2500f6f5891a920d107c869c9f5dce2a305f4e4a037622b2187ce27b426b2c2164884e38899fe5d80b50692734803b1804a3d806776abd0c753e22ed0bde7e857210dd055cf8be1bff48d438a59c1164c4a0daddafb21eac18538a824e4a42e8b1fb020e8d5e8849c3db824f9aa64ff41bb3bba0b31bffdba1555d7946cccc45e0f115ede10375385315fb93e36bfc49b35e69cc052fdf906d8b97ed706ddb4be3b07bfc8bea525cfe3e924e94a5f7a1df02047f5b372ae1bcdc005fa85385960724d66aae36e3133b2ab0721bd74fb898c525858d0a2e212024014db769dd339187ecf7c0397cf4bad15bb1e64bd452bf48cebcc2eef4d2a01995dae06cd17054ecde2acacf9c51a917c5eb0e812dd4f4475c0e613d26646d215277c399725c32433e39ad26c00814d75dcb7e3730cc6ca8c3b7304cdda6a8bb5ef9f70c77a36e2f76e1bf804f8cb1e0a4fa84ca2da6612edc2f017b5834171ca814841ab9a6655d416f729c4fd22364aef0f38b17187ffc8cc111b47da9aa70ba1f99a2dc61d3b18a46bc93d3d17f2f50a07e61b8a86fc448d3b822d39e671fc790b3ec0a46bb28802a826f9921ea74951c320402345367891092ce2bebc03cbf12a828dab23c1e8e652eb9c410ff8282609eb5574a9e8a8bdcaf3154056e108f8d36cac855be85db701552d28a7be2c91b27e3e8a1bbb15150114888711d0de05dd17519df0c822efc33fe75a058455cc2c9bc477082dde69e4587713f1569e08ed67332bffd73933980082e72d89646cf82328576112dc93de22179c1acfd20f0013a6de6d231292f50fe21c885f1d9b2c0f0f9d1c2080150e39b2f158043439e5f61746612650f4428486e56211f2e1f1a33566b1880326c66b652c98651c7fc0bff99cc5ad2c995c5c3ba36bdadb910609787a9da880f00c079cba6dc5644089de4189c8cc1b95139ada81377062eb3b230fb9e2c2c4771c15b8968caac7928bcf08a05ee1adadad2c2666beda13c8f7c31a8385cdecf6e37090cf50302eb3e5b0f73dbea8dc9962ab0475dcdceeacb327d3820f4e1fc786a8ae9a377788310c29835de36336a2dedfaaaed2ec81db7dc4fbde0d46f5cad9af765a62a513c8479d2c9a0d0c99d8c1207c40c3bcc02d76687183902f6420e962a25d19772f2832b8437d3d976fa3227cabff3853d24654a8eda8ae093b6273d8baa0455f25693c40e285bc4ca32408b2e7f59db359e9e19d592fff7484126a847985f537832f293e1c1b9429b318f0fe9b08c116fb117af649af20e05fdf752a3b47da82eb1590739ebc1555a3264ab68f8a5ab31fcb90517e6034c423546ea0eeeeca397d5a5d21355352a5b63dfcaceef67f163a8d2aef7d145ef1da30e46029ac402f3556511ef577a133248add73042c2c0c0d6562aeab8d48eb6e129aed4bc4dafeeacd7d3d01e61f013bbe3b62343bc117b707e45b6b6c9f55114e0602e0bbda8dcbbecb0426102aaba5e95670f84a837c8472725032c59470b6e2d3959af9a61b73e275b3c500e52fc0dce2e1f0161ad6c9b2625f9d335ca5b22b5fafabe549e208c98c98ce3fb7c2312289c04e51124149f81e15e6e7b122cd8f3d064673ef46fe1172b9b577ccb03ced672623885a13e422a34551bd508959c0b57588156c9a53fe60c8aff7935576f78c585d38c7249b9203eb70e179a82a3c3f3f335cb6698451e16aa2fe3e1fd92c7eb1816792a71f1fe35353f5724a70b20c1dd3d7675e7d3855d087ef45a36231b45b6374d69076c2fda1f9da0411d2917d244c703caf3db86f983e2de3c2af3f1cdc6ace139170b09f98af92fc615988a978ee0b982006f8b709006197df489c966c33eaae9cf84a2bbb1ea5ac63fcf8dccc7e40029537950998f65ba51f90dd762689196e047ba195bb36986709dc7312b7dccaa22d431115bbae9993c2839406fd11e4011ee7efe83845d60830870e80d230b5c8fa4d54dd145ca6ac85c67601882b1d757c0de0c1cdd63f6ccad4110cb2cc66663c6a3139e82c518018a0061a9ec73abfb85c26d26e3b5af31d27d3d0a22654913288d356df25a062a1e7d973bf516038ca3e716119c8ad030f2ab79b3e9ba8037e80fc332240f0e9510a0d2650e7271aef9888c6d12f70857d5e4c6fcede0e9c10da0922bdc3896f0ba023c0a26c73072530e9f0f18d0866b10424047d48b0ddad2dc54d57183695134094c0d248768331f41de1c7fb5317d737904459619e6bfb48202f398611bdd887811d6fd2b7753a73972d84cbd20e8c4cb6cd28611d9221731f17a3a1e88fc685aebdf4b605aaeef7c77f78c20f437bc474720a83b1bffb745ea9735aee752afa90ff18e72c523e14d915a6eca3b4096974bae85b6405d946cf5c1eea7c1e28208032e4d1d681a39a653f9ce332e1125f5c60bc9c7299cc858bfcf119e1febdf0621b9cf817affa4741e4a6a29c50b54589d19eea75568e12d429af9be4cdd911ed747e251439eb9f7dfc4c426b0a2fb2d7b1acb6293aeb7ba4d76e6ee9047de36d674bcf9bdedfbd89171f35341cca9a0a56b83f1de7c51692cdd889ed63f15c7117a073cd428f1c81d4d5df3d18d982164bcc270023a7e50826aa49bb6e0dacf61721f2946e14967b6bc0a63b91c37922cf7d47ba58deb15ad28b53e0eb88c8ccf074325a4e971ef72483ca5ba2223f60540fa92a1532f87e1639f1c165616db9a00e9f4f3185fb41de25ae3368ed1df50063d53c8b208bd408f6184bac4e2a6b16c83e984d5979228972605083b5500d2fbddcfe10b00cb014569e3d53477fdbb74c77ec39f561d7aca3825299f300dcef56c585a0cfa1047a524525311534b2dc53c27b7189b5f2e062e685d46333ba82c049b9574781fecdb0b148e1f95d6f52abdf88d60d687e52177dd65f7233cfe0131193f83840f975b96cb94163c59dd8114ea52b4a2551458472ddecb74fad32f7caf86930fed52e3e7bd1f7af9d13a4e11480996e5d778eb78c823186f915586fd91b35c4d25787f03d02e703c153df8a28f32c3c1c1b16482b57668499a86482723408c61ed7640896d5be2ce27524def35953bd6c635ce47f61c95bab971daa63813703a34e7d3a88676b9666980527d042648e4b5af030da871a74f29f7d16e1b036957e7fddfed76ba04fdac28616763c15b66906f9f6202d1fc0d96533c00a3a1fc276ab63275508551e304ca07db1d7040e428cb0a2d2d8219a500d224b11ba326d2a2f44c6d56946a43f4cbfd7e1f4313b4358e31127f66db0b658e0b8241b4f171318876416ff7093335c45a5111c7f36100a73b22ccfd501a9db38eb96267d6f75ac8788fab198f2d9ed0596aeed36651917d6f0fae92ceac1d6a8f6db266773a3bd758ce74cc47108cec8832cb1844110e195f653d7ce3e9e21e4445269da1f3287d4c43377bfce86facb3c1da6f792f74acfb84f53157bb9205187fcc249b104d0fbf6e358994931d03f1e87030437d2adb556ea51e5fcf2248b7997b649744ffc971f3103252945bac87e84808479326c0cc88f322151cebadf73b57d1526f4c1268990307a4f09f8ffe875d832fd2b4aaedbfede3390c05fd2cdc9010be5d93a7c3238cc73de44c2f02551fc2e346a1d09861d0b88ca1ccc98104ec52cb12223428559f62fec35169d17d7897d686d5f9e7f9824128571809df96ad8a07c602b725c8ce79147faaf7963bab0865430aa833368c2c445698d004dcf3730cc2b69dc5a242bc04c9c4aedec00e5964bb82de2fd948d1a30809d13789e5fcae7bd1aa5916a25a8c93510d61f2a9d5df251bb78bad4ad8eb12020dd03a16f019b7024c376f5bf78f2da40050be4e16f877c1917a3dbbd243ef91598d720f98b8545e9822b996323663f7bbe4a59a4c5bbc5f1247e7a2cdf1c9d66334b1b72c1fbd6610213aa1cdf4247be39c361a7391b18d0191de4b84944c2d7d009b3542277549fb6b88be3a84af62e252b20470d053e59042bb469ef46aeb647c40b25d0966c3ae606c688be176fea2066d69165349b14064b91f7e34fa404a2b3f9f211b046882ecd1ab12261f4af40affaf3c8d85ee3d6868425392f667f9feb2e70cfeeedd1fd9655a31e4f1efb8d93d730a33eb0853c0d60ea8a761a2f317dd05e1906d03417d2cf66badfb53a84bc4080c607985c9640cf9f74a5293bff689defa07031451445e3d6475be82c968a2671e5f3a7ed5615eaa41766e4a7e46111a23b41b905ded5c4dcd8d8c40da67f12a01839a38b81c0650399d904476d5f2d5c6383764937a081f6c4d235318f79d6675b6ca9ed31b6bcafa3f45c955e00d0bab72b0120315c188f26cbe8d59cbcf8710ffaa56c15f8e7ede3eb43782dbdc70e7a98987db314e9705d00d67a0ecea673772e0615ecb3833d88b094cd86ea081610a261ebfb2df5c88c315ac59a1e39733ccef7b80e3279f1c97c4f89c58bb143853b26ae17bca9c61b731412e88491a9ea3eb2b5e31388405e7030ac7ff5c45405a3387c6a292ee13413fa1e1588de71703f8c2c69e2482d053dcdb6f93fc90265225c8d2e2d7130478e52d9327a8dc1a430e006b2ec821dffe20b5daf89b0e0995fd589ec116e1586938d3ec2627551bded003a6376ef59907d0426cf09b8d13c3d04a0054c64a26a19256b40b984f8d734c1663736c4f8821fa054bbf226150b4b29d22d60fbd02c82fd6697ef7bb7729f4f1e7a249fe6a2bf86ed8b2417956ac63860ea198d994dd0f5faa8cc7e9cf42a69cc8f99adda42352eef89afb101dd2add0b1912106c0eeb99dfc89686f4225124856bbc2804b6441cd9b326894590520bd76a855c60f8f228e13e0eff37abb0d6ba17418128d7bbad6f3cc2fb0ad026cac7df7ac5b056a66129c93718bf9d45d72e3177d4ba839ef4410b52c75d90e00f2e513a40b7b6d5c6bb19f79691ee311f466ba8842e1a637fd73a0039efe5d8d6e2eb1294b26ce84d5552792e95f4150b490bc70e68033f1b9498e3a2268ae9cbf9ad714c0e0f71a94c8c6facf4edf8befb6a6c77b82583e34f286201f35d5d3869ea4767c5fad1a1c4551982d978c1ee6a7527e9406e08305aa063fa45e070093ecac1f9bcccf12d7e2d1f74781a3e0dbf2f1b5ef550ac341eeb53a03bb962170cc94c45a1e9ff3ddc083d7b01bbbd23662ded6eb63fdd63e8a7f5a23532140e6d36eef6e4f6486a37d0bc1f3a2638d4ea1804a1233437e65ba804d89bb939998ab5e98aff601bf873e1c0d9688c06485d2f16ced82d30b9ff73a84587611bb6e2beb70eedd6bbe6e88b5e40bf022c0d49c2077fc2aad446ebc4b6185860e54caf1b4cbb3ecb69f60a948811a0fe2d24d1b81954163294880208c6301a8f88739c6eac21c1f573dbfab3c95cf5de7cc0b10a68d445cc1d0762e30f2ca7ed2afcc2a9d6e3d9d15c0f0a16cf5a4a616c7d9546b83ef3864c4993ac231da81c28312f93f733441c0ff285ddc2bb832bbc09620d983589f22384e2ec6854f4e3a1e0954af193c05b222d9d9c7676e046b08bde95cb6097a4dc9db6e371e74daaa0193cbc318fa1542f8bffdd5d62649cb93f5c270c5e7fb500d61c031ee02701c43c802cd968dc9334b5ec9c5826ed7eae13d8a2169b4e4398a4d1738c3df5198342e5b330f869e60a88c2c94d46f920934062f609f3daef65a2f08dde307b49fd58fbbd702d51e2e9f3bfca9559981af22477aa1529595d338c1d60ca3fc48a5a3b0388d7f8a95bfc979df634b412e8c4e15a57789aadb72db3682efd369dfcbbe4b3a80f8e44ef048cd11be60c966bec7b772bcec1a82b526c69ef4d16f85fbc801c86e63d667d120ad0f8f4e99b6739843367af653a68ea5009cdbf602c9b80bb36dc52603aa644ea5ec4e8decd030588b5e19e8c6725196243a6547acf3858d35f3acb082b53a0221ea5fee4e24c59cc8e834890789b7661aa8eaffdcae7ed0d9985ec7e522ef4bcbb3a745850b1a91556ca0fea6506bdf0e14a87336af70773227370b59b27cdf4e512a264b0881b7ed148ee920327854a56d5e81553e0d8eebc107439f5f07a6ff233e6e86e885e9c6c22a210ccc512a666de4989c2bcdf3da33b0e542f8224c05d945e20a54d157d5e922c8a75273198e6496bb5eec9584413293658bb96eca9baa273960bd8cd301166a07dac9b1f0353aa0ba825e83db313e2f956872d26d264bf3232910c8af0127f40f168f38d6757cd69ab1921d71cfcbf04b49e0999d44ebe78627532d81a1753ee395403a9a8483197facf1ddbda27f275540d31d6eb8f69ecb4ba767b8b536ce8b09e2437950a879abdd1aa1f6826fe0662c0719c9fe9fbc8616667a40fd5e7d8f275b4c4c76d386277923bda0fae3b82dcc4d74c2b5aa77896487bb9f83bf633820594e0af73dd864f7a6670149054897351386f8ef40fff88f889af0fb05ee6e68ca868d60ec5dde1a564d8afefc8ab627ea94679a3cd339e464df26ac1fa53a59f5be6aee572db7d3894898f076ccd496b06768730edcc2ca6e7dce85936a6a61418fb87561cc6ff10f8fcaddbe7dc3bd86eb47ae57139a7f75cc250d9946aec83d2dc6c7b2cb8adccb6bdab4f34da7de4c4916761cc4b36ab14865cf42b81a9727de20935c272c24698090a3c242db0ba304b06c868b40e6b5ac42cf5235b1a779220e6533000902e8d01e946d94b5c6f9caf9945204c0b5cdf8ae9893a89b6ae8f1584cf7d2664e1266a2b774cb1203c38141efec62e568a38a19164429a95da75663b9be4a9987019fc21b3c923f58ef758b2e29ea52a475b613a8da049215749abdd10525f799fc244209e6e4b411a10fd6c94e1e1f9132620426ecffd6eed934b7819eb0eeaaf9d169d92af98bf2f7d430f703c877c36d8253750db96da2de16ac5348526f607cd89c0c8d57a66357f67481a4e067b3896367531e78cbc9c45e51d402b3cb415988c81137ae6d1f018e17a682dc75665e8aabba3a75e557bd35bfe659b60275ae903b5000e2ce7ba8fb9354ee2239ece39183ea0e64f4860255171efc941082fcd7bb092561ead6af0efd38be83235805a89f11002783f24d755f0c85a1da0aef667623ce78892eb8aedf336b161dd53ff4618246b2093e00a458e6c2a831f203bf40143aff69c006f0ab9d921df254340304e5d28730edfe5907c8bc6e71a6e1665b82a6dc839abf72109d211d60e2e1aa397bd51792b630f9f3d41f30617782408e65d349bab093d3738cecd77e9cbecf4344a96696026373516d325164f83a9b4e4d0ecfe4d46a029d4c096d63ee3fa7a3cb0b646583a8df58ffe08c71eaa0adc69fed17c295e447982692190c7f4ee223dc109ce30c546eb1ea2fb19baec502aea3af2ed911a8f1b229d1748be3c529b6b0bf7b517b51b273c1b90001d71acb6a007b321c996ac5fa3cb93f2164d170c1cde7f3ce119ca6b870d0ed05c93edc31bc04bd4df0f0be347dea7ee648a105f8aa1b105724c94eac166ef83c5a20b1171b747f54e8adf953c6dd7f0798478183387344a166dbd0fb45b62d06c8ba0b97b9c053e030e9ecfbf779cbd077b68bf3e3ec155200b105f50caca0425376aa6c5c63a18d5d68573453ee2b3ce5d62d6c185a65568f95860a5e53dbef923cb8dfedf6dd4a6dc12254b9a8a27233fc963d32c4377876ce89b7050056aa089498422387930a383888cce33e98bd37e660abc4e9056e88014a764d32398866a0e1db2f40f2e561a6eab9740476eb9eae5b1bf5f96bc0630b64074acc71d6818681a9e3532399a081041c90d61407fb155bf43edf1ad788daa7db40cd90797074aaec83cb99e9337fd3e6970e8f2644bacdd53ca55c99add5205a8ba745d5f47ca4a3e9fd0523448874dd35d00600d6c4156c7bf06f6f9b8125e05f765b23099a1028889770702a346604759c2859ea750f988bd5e62d4f8d5494ab2b08977ebae79b92a01931849955a0618ba90beb47a96c3f84bd24b9a8632aed90b8850f073651c6c97a6a29313c4aeb969b6371c4205f558ce3d231f98a6450262767fa3969d9b35b3d442bc248dcb36c4df4cb691bd29147dbf21347fe56801511454d662bc4fa1a5e7261e6ee3c633b323098d3200e36001d3748e357caf11adba6643444fcfaa1288bf9c5c16b33a9311149a578f69b299e3ab02b6f112fcfccd563f4e9724196f3356829e8b9b7ab5cbd45d12f78e0a962a27d184830a5df800f5d6b7d98a9c8a82fb75a7c34f8fdcf1ed7cdd651f8adddd130523f2b1850f67830e5840555b02c087dd2e6eda80c35b5c681315868f68ae4f8c9e5d4da9e656f500314aa173cacea71dae8e161e95a3c29374416661c596cd5f0032bcffd21c59d1e2cbb649aa6030afe6b014127380abe4a5b32a9995f955addc23ad455d7dd5bb328037d5be7c31ee592d4298f2f0ccd4add8cd3f0e10bc74c63ca58bc707e5168c288081f55584dcce7d847f9a3596387a6a5cd57aa8e273d8f72b958238b9c07d3ddd9f9371cdced1a1ba40689b92ba5aa8f449b6342a8e2e6eae21b56bef47372f75dcaf1d2d20319356494c166be3821f4445b42822156a93eb58bb9f011a12360aa1b637189680ca003facab90f58b03c6f7f9a897793182fb3ca1071d2505b3f5d2e642131396d377ede0acd9faef1644171f895bf5abd84374ab6d48a63120ffe3d4ce49940ef21dc4b4c19b2191235c96549a59af0725ebf5cf6504505791f0bfe72d3c3bc8d5e644e9c20cee32030c1dda49dbb4f5619d233850cf905cc40abbda7bfd51655f978ab364f4d3fd378646858f0fe42a83b3a3c42b3784ccc1ba473ef4bbcdce7489183cb1f883fc14d12e402c328ddf1110df87386304550d33e4f5988dd0aee5657a20530f97a076f2e88838ec2053d9425e466a3f654766ca62b828bb10f35f86d6f0afdd493d0baa0cef02c8bb45a3c561fdaab39d1b18426a926503d95174f179afd211a98b2bfca89a3ed2bf7a0464f95aed9006e9da55cd63ab908abfaa22915826fee6" + "0xa250734616e5e744f48c493c6d932629d574d0f2b953d406c14b88999cbfbe0227821f9f2e60836eaef3cf363a0cfffddb3e68676607d6c52dfc486041318c062dab838a88fe321c055648202e744d6197c01d58e03acc793186ff781cf3c0f650617d201785a0de080b592e0d0de1bd143c5dd9a58b26409d6f53158b7b87f12aa888ce822872f568b16ff66ff1ef93a3bd9b3e23ce7b6125dced420053c57bdf2d76d4a44f3de9fcffdc623fdb410955a0e4e84178d68ee1e5b1da80c29b919297fcc50a261fc73d266a343c3a7d408122e372d7db3323cd8577a025d2df6beddd760b78fee43ecabc09f07b9a903b440ada473131c08e4a0c0b8b9e9723c49eb961946585ee57e64586aae35a72d2fc593b2f907199789b2973a2aad42a3ad41f6aee7ac3330cf53d50beafb3b074cd14d21aa90123336986bfe0a0e5e43ec6ce1ebc16f018dc03bccd19f00c8c011c13b091242c34d640ece107ebff45922cea9616cd13fa583ca2cd7e09a595ff16e751661e6cabb110fe536d86c099f2c4a79fbde47a98b7755e00be31870ce22ad1aa02a78730d2ac808b52840a2915ce0b431ad7f7d3b6a23a98b3f4d172d78bc40a79457a2f014e337f7f8a354d6191b5b9ffd4f5598a5e3d738cb34d15d2af7b10b5702f56001138be7a538c4a30d4bb19c73d5b3404669a70a51f537f18d29c199c130d1fc0760cdce82b1b8c85659954da2a3c62eb1eb3d328c20115b174eee2a8114e32f8e011335375ce1a4c96295603e55ce4480aa7d66776c64d69d79b4a92be2ca8d718a63fd426e16927bab456dc6c84e7775674ced0eb31490e828966d962dd757ac9cb15ee479bd2cead0cb28ef29ef6f04fa8824c261fb8a9c0b960afba588f700563b31d766059bc4ab9d5a55eb05e1be89f9abffc29543b22c1cb7f77f687eabef13094650e96b0f234181cca962eeb365842679b755f74f94a6190bcd7bb0e4efc12dd5aabd92e0b398bef059d7cb5f4ce68ca02c3e66fddad5c93a4214c91f0ed3d1fae64eb9d7f1a1b7d12dddb6f00f3390384d7bf3f2990e3bdb90778e844914e144eddf62a39368d98a7722b83dc24b6364a337e6b7c9c2ef07ea61c5ecf1859c83dcc85e5ac6d2fd8af7d29752e47892acd17d82b394664c1e7ad65ce78b750b210eb9ecc4bb34ad3c8f473ef405f830b5fde3542089e57cddcdbf81a0dc999bb703464ae12a7aa22c647e11580c554a1a39e65c953369d76ba462639bc8a885b9c72caccfc42ccca2ed25ab101e66f5e1125ad41ca17a86bd177e7489a63ce01e41d44338a978557bc1da36ff99032f57439b467dfc5e0a1e755b75120bd17a92f8b798a43983859ddf4b15b41dbb85d6b35011b4b53e825b3df8c19a86b5c91766a68002ef8e223364590bdd88efb81ebea01b68786791463b68209f4a6a4cf4795848c59169da81bd2ddc3612b1c18bbdadabe540e9a4b1778f53aa8924497432db47056fa590218b76ab4a076008df6ba76c533c60de863ea2297cb56d0de9f0a4159b960fad66cba8ee4009d9f438d4d9098ee0a3e6fd1f4936a4ac84a49a77a19e79bd704fe896f286510e2a2d7c386b0b80d1f079a5d6bdbec75a1500a374efac01aeb94f696296e2101e13b84af035b15629f1d11f7a87304804a42d240385c81d6615396edbdfa2a2a5d524abdd0e2ad7e07fe0f04fac4fd0332aead497c3ef8768989039d16c01085a26bf32d80a1a4394698cfded69e037bb57d29ebec28412193a17ce994c9692f76ed9893908ab02e6229ce4feeade6c799a6fb543aff1e0600a6a7c643f82feb969ee95523559e3c2ef5851a00b928ab1363e6c5907fe8d41d922461da2222a0cd86013003b6bf060ed2e87287ae4f5060328a14878611429385e5978e4328d68d904ab4fa63bc74cab8028135cd3bc2ed23612b5d720688fc2c607cb79d9f3e268e86c37ae0353076ca79e33b719b71132f2c878a3fa0e497f103d53f0588278184d516913e142a627e3e2867509eb15a99b1ba9c38f11702c2809de8b1c609755d45b82e621f1522eaa255092fb93a57adc9e965538be5028652845b4816fea4633a89be71bde7a0553c63b457a2a80f445d4e7b95aa99698fb56b0d03c744f129cabc0b744c5d458d66bfc45faefcf5e227b7031adf7ef999a0e9f02425bc77c0f4597854927426a4fcc9bb025c197070c505d692eb67662ca1c9f81f376e245982bc83c72bf14f18df556a1e2d48f0c0d1aee75e8e28616c7f8a6a198803d2bd2d14a1c9b7db168b2b2deb19e2b49d7ea63c0b90d41ab4b75ede00b6de49fa39aee55db2bafb7d7f9e8c6d41ccef8c2d92ccfe79679b6f94a82bde5713b3f6d92586d815d963aad073a4cfe0326b884e3990caa4fe8c26ca6f0d4f38b4d7d02173a486ee17e467d23e190927b60269e2304d6f3cc1d13ab621d25c07c9eea29de7bd4bc94496bd4d9f85651c326ffecfc7dee457ebd5392d4cfc2ffbd25788edeea6dfed855492cb6cf28e35e3d387ee62af68b17c03497bf6c3427919141e2f440685bd573d61dfed63684d7531bcb6c5421caa0f4ea2558c9063c36e4b93e66dd80fc2e935fe63f54bb80f35f162dc1faef3b238aa20cfa1838752dbc649c95aed3b27e3616adc4b13a31ed3617c52be1bf474f790dca1e7ef6cc90974060c2468539813afb86a9f99f57c072ffa7bcc47c252d47ed85f7fd80da9e0e6b1162c4025bc7a4c020f51ac3f07ebf0078ba804811d3e75bd5c7f7ce23072d2a8bf0ac14bc95d2b6b20da91be050c9de350ecb7ff169d79a762dec7f3144e949c70fa0bc3ecd7853632318117211a11460072db389b591502842fddbdf34ba803d7c392cf7c6f53ebd68928e243858c5ba44a7c200bc6d4749c8e94e2b518311a02789c3432bfd688f30628033392334c4ed2bdc2d274c9df52def7ab412c767210a3c6bae12f10cb947b94d6e6368d543bcc52b2a4040868ae00c45e2c505f15cf0380067014487f7822752aef87076e75b706c744d62a949003ef5c538bfc32ec3e8cbef9368ae8bc4849096c9f7187b05a372c7c70cd78a6521d188719fe629f7683026a0b253468447e5465ad804d66dc55bf109012f5a2e02ad4b1113c75e9295031f9482bfeb9b3fc2e8b504a83729a67bed9021effd3e1a339248030d2cd40b2ff4da1f4e578ee9837a96dcceab15a85c64b76990065224db8f105776b27b5bede3aa99b32aec6a293567b67bd655c5f2216533243e03a9cb98681553cfbd95cb251cc7f87813258c9ac9e5fb45d48b468ab98186dc1e53da3e2df2f5a6addc5d7c751c4a8263d706a0f055ba12afcdc6acf6c820d2b818ca91ff90e95a5c30b7c640ed04f0fa9928e4e9ee896dbb23f7384bc293911581e72324623a884c39142735cce0fd301dc1daeb9f6a0071cdcd3f1dcc9366ba639860b513dfaa29f8f3bf5572e4a7f785deb9b0f590d2688c3c41d94a43b3e6c579584fb54ee23518f2a8a2a233341c99a9f1e714944776f9b929452fe37930ba787c31c02c4801bf31ccc6724e69b950b7347ade230003f1d1d57b0a2b3a95d8c60fd7f050802eb6d5017186b8a9c129fb8303ca5395a8596a5aa705bbaf9631cf1c202bf94c6b18469f8147987bea6343853e6f6c8594f69eda3697cd8d6f9a25a416cb6227a5116fabac790c9711720593cee9c65cdc28ba487ad5927c6f31c61209a14691d82d057d22f37167532ab1cef39435bd7cb06285a3dcc69d9e9bd8de8ca27ce8110b8c21654ba70767392e87998fdf2a3ff7690385db138a1826c211b21e2a75ac1a4db10e7a88eab0286218b87bd3b7ead8f10555c693f887444d765f55b0c0620c06acdf3535c548dab950eccdb62857595a3b0435b88a99b12779c314b326f820c76f3dd539159e519b71dc8939c84a2e20bec676fd97372da3762b99161ac95dca716dd035579095fa6ccb7859caff26321ca4b9120acf353f2acd8af733ad95605806003f3b333fb0c9ee5369e45711b703d9a34f0a06c66238ccb4ce4f788f7f4e675b49feacfe3c7a7768efd5c81a0261b40cc0ba10eb2beddb5b07141980f95d462bf4ce2c8ff61b2a5595f59409954cdd65304071f0bd1dacc4b4dd28a4062ab1d8f8d1c6eac5edd23c669cef446799ea2c5e46b7df7f2a5072edc492a032e8d38d28b38513a5492dceb0cd154f8617860a3eed2d7308b4567900779512365991dfc0bcedd6fd6d0893e5bf90c945830007466e04c25e1b3c94a1dd9483fa63d31c381f41a03311d5d1df2961714a2ba3140706d6c78ffee465c40ce794ca8928ca434e8f922f29b8048f2d921064ddf5c13fc0a7f8166324a666997901171ff865d747fd1ed44245b6188f2720b504a3480c245bdc98ec4f42ff70d7faadb9c3371dd612af91b53517305698759f810961b51bda7903b02db22cf9634066f134ca7ad33ccce2be934688730d93aa806d5fe266001499d91d7cc0de7496984edbf8b28271069b5fdb29231361b8be57ad745e15e051844e78360477e51ebbd9744ec0ba6d9ba20d0d823f56e853eb83ab19277a8525be286e03358f8f7f6cc89cf5c14053a27674236b4e9a5acd858ef7f898801af1edfa9da3fc598a1cb8851d9b39173b0074e463cc2358dc7f32e345a55b60834a5b835a8a4acb1bcfe547aa58d0b992b2871c7342c87d330bd1ffe122213bab0e6362c662346c892f6d78a90c7f5926e4a1ddc98b71b406c782c2e6ca09d430a0c6eff00a1f398fc6e0193920675443fa2fa46998a5917f3f860691487cd3c2ff6907331aae15cfff76004ba30332ad058879364b2f74992281290750d3093c0b593f843ec37f30374ccce5ff043242c096257159fb63033856c6eea7114beeb119ea573b7d9cf0a9c56fb3a3619e8064564623aa5a8d67da152806b74480b12054e40dd84b6d1f97b953f47b5870c39128de7997c0a14e2a18be223dbe416c13fcaf9716baa62e3f13843a764dbe15a67bbe827c1abfb3ac041cba8ef29c030a1a4cbdcabee82f031f19148fefb8765b2386f2773e75c6ecad023bffc6b2df3c38c9e00261aa26944a5731482a1f4fd53135b15762c5c20a1e41db4d50fb1c36ed2a490e2b1673484f924e6b398db111e49d34a131664d1bce7dd4e4e97a16922b892478949cdfe21262a549817abbaddc1a03c7614f182a3c1944ac1bd767491959e6dea332c3a9f1db697fd210eefcc19fedb2fa5f94d74e5a2198aa4bd2e22ca72b076c320fb56036082f1fda6671b3ca6e4b21bf52b61b09e6b8b0fb6856f7f7bcbc31a65cdf1f1a07f46b8f33f70cd2bd3d7f9c29130185891a9b1aacbc73b3a220d8d058df011d41415b98e486266e3d55ad8f461baa933634c89562bad448939b08e90602600b32f37683db4ff9dea495cdf3c2a6cd776bfe34ce95a56d1f8efaf3524023b8488d8cce17ec547e4153de0ce0296c9975f0f5ee77c9d2f0db070304a7b9f2a97938ab8ba8c66ae2ccffc4f97617ee5532183b2040e6a56ea7b1ffee65bbbc4b9548a21d5ff219e682ff1f5810f06ec2521de59ae491f1cc4f52706aa09a52c9bbf0ef3448bc6f3d1dce281e9f2bd99670bbecff7c10389d1ebecda749d4c5a0f8bf75c447f1c7d057851898265e5bf909c4016bb5b72d867755031bd6475985519185038067881eda1af04346877c46537cd3365077bf60c5db0656daa8907afb2d306c54d9f397ce430ce7f49dc2176a290afd21670075aca7df3548b9d1b450ce578f20d704f360855277b80c5e3ea86ea163cc2d0e2ad558aff28b8801b6055b0e76020ec668da0833457beef2da58aa57b32aec190afef7fcd144719a2ed446c568d19d9910ad9d97d797845b4ac1f54f2ab84ccd0a0467c49daf6a32157e1c30a2616ebda48cdc36d246d2241ee62951520f3ef96809373808285e05aa8fc4f106f2e87bdbff519d6afe446334aa45680b49f2188fdf8d1259efca2e6059f6cb7b64186aa5d73426a51b15ffaf2715f5579e7438038decd0d1615bdb173d97b11da0b0586f2434543752fe69d1b4197b9b577390d57ef00b38b14b579ebba9c77d9b63a2a6aa9d95ba6c88135f60d7d55441431f1e5ad28b549c64952c3613a027d5a83e3d64d321507bb0270028d3ad6ff1c7ca40bbb6254c471552464639c13091c48f04beeb4b35927840facc7956d3fa442d08a45d4f8a9f03b2b5004cfcb02e032088896d9dd98a74168393ec54f632830d394456faa8346b27779face9404c027d16fb7242020f032e409e9d3367142c4406c707399e55b586ae8b3e196a2b6d26a58a28e6c643d8e8224b3d3dec0db4a5ed70d5c962fbf4f3db25b68425f3334e22133b2963c90e85316489689b8bc9fa762192797dd8cb47a3f1749cbaf887bbe21b3cbd4b9fac8fc204f057c9986c94a7359453768e19f83e2353fa81066aa77dd3ee843907f2a37b96d7c805c6a28aa29560e34b576250abe4c00142ad0f0fa9438a5650f46965255abb8619e2e6ddd135a46f0174f9097fb78298e04496d269d91869baa2436ae8b100a729c56cd2eb0e61ff2e18ffc06524255594d1a01518af439af11c47d41819b7508417cf19cbf46256283ed4e06dcd78ffdaaf334c42a1a144dd9dcce14a8e35efa3f2feb596828a2903b4b749b3ea19cc4214fbe3a51d3b485b351cbc6cd06222843eb174b2869786d5970c69c1f5e253e884d12656f91054b3828de087ab9bff126f7368e977dc6100cf56c35ec4df8be0bfd96690078b5f73da2e21f9d945ebb463f20effa1e6932c3c89367ef19f0dac43b705fc340edc6c1f9b6668efaed6ed97c7a73a6282db21ff45a83b87bfdee5ba899d4c57c34576081f6c95a2da8f95d3c87ce2fcf7913747875b3d1d90f9abd52fb473efc682e5e2b0d4a63708acc17959bed709b56f9d46e8771c6544740df1e6bae3667383440b9547f4b4f1b5d9ba3246d5ad3f3b0b9c8750e7afeef87930b19f10651c335f415f212386400a36a192721963a47a52c54042cce3543db6ecfb86e9f50f060899cb7405d37f69ea173018ff954e2ea8be550449960d1eabb7dd774a3e77ccb784d675bdd11b6cdb2aad874c894e2b6d9c8f422ed7dc328802530c8534209ed7d344e48f7dd36b6336d7f3cc71ebfe39cdcd764ad4ad94c909c7e23491a3322ff805802856e7f61b937d88a1d0ec36f51f80afe75f225d1b4e843b1fe45532b06136c15cac7f1ddc4dbaab6086236fb688051b8d1861276def82b932cbf98abc87e0d23924390babf47a64a5eff924fdb495caec0b61abe6aa0485ef2290babc0c811639faa3e8e08a2cf85de6fa6d4462f1acf8e800d717806229ad1267616555c651d699d6a710f09f0d856492c18a1f9ec60fad758194cfbb04578f95d3e12ffbe2f2ae6d780828aaa6b9466404e777e0376aa7a0c86c4e5b34d5b4ee55572c26b8b3f8e865d8a23c499265c03cbbe15947ff56ccd4bdf3a73192129fbf535363fb6d6d0c9ad16dccf6ff1d2ee8a35c934baf7d8e83e4db1f601dc453f994c5d194bec44b0993a4fe13190b2a2a952df18baf94912fc16a3e0d11477ca214d2762769ad8ce4e993220d6874567eac6a38de7267e1e62514fa14ba5ca6f527e70507ab777597de2ae178749c13b338d8faafc93483915e2ed77a1627f1a546fcad02cc47735db5e9b642405dc0b0e8b32cb8a953daafb53c7c3ff9715a432208f66752a235ba28ceef5bf4b5a922ac1801374662339c0bbc27bff5004dd5dba0070d3cbfd6c0fccf56a1e82be81d80b65f1711e61a852ac1b3f3274dd892ad977ccd8df9ce4e21b263b3d2384c78e73bb488ef8e588663b32569eadeac54f62e201aa222c96e1e5973bcad29021680d15b9a9e942e0f115a7263b298d936aee14a58253fa9454db7fc6a83fc5c8a26be736f786f0b6afa43512751dea617ac1b0f62d03a7b48ae136416cd6d7a61f9e09047e3cfba99f40fe73ad25aef66453a05c8eb2cbfb530ea3fde343e368e5c2a0ed9cd38f0884773274b86cf1796f686c9e1a413a5e85b4137c8ac752c39f26de977e4922db666055b65ea78659c8b9eb905aab2afe7880e2e2145616671af5308aaaf5286f0f00827adcde3e58ff2d0f2c6c19f20489a46b19e88b487bc879cda07600a6a78fbd69a6630bec6488a1ccdb833d1ddd9a152f54a16fb0e940f0ab828e29f95fb9e6fc4e977e2cc43c3f6a3b6302083990d72c088c04c96fbce460bd72deb3a3a344efc7101e49afd568ac50e5894cdad459ce2b2dad383199247132f5a0695b2ac08af2dc6db0c9752fa8ca797ba37fd3e3ee63ba5de27bda3e0394bfbdb6536c168281fb6ad8b5205c3cbe9fa20fb87e11d53b9e9efa88a69410c9cc52f7304b9db52be23591a13d0873d86ddd6e9bcb5f2fcff85eca49c6f97733eca568f7f1171c54f98c12d919c64d050c5bca9132c9655d199709ba28e593fc41cbae4c479b41811d174e4f6459be173b2a00643072d2150abbfbc45e3136bfc39bf87c7c820e1b1e7e5091b1ffcd15cb17a0c9c765b30c04fdb785206d2b20bffb3b9b8473c8494259bbc9fa48356a21dd1589fc61e7b0f55f478ec5bba728547144c996737f7dc0e7a1501b80e662b79e7a0858b4c74a029a82ecce453f80f50a8ed1ad0b5919469b52c352a34c129abaa7de6826b104ffc6d9d65c394cf6ea9526c2097d6bfa7472d7c6c6ec40dfede6648d3efa0dbef9ea6f46b55ae424ce240f25ab051b165f233767fdeaf8cd65a0cb0eedf6f271ad443447c324c05912e6d7c7dc342b380f16c17c63296fd2cce839491085a14a0e70e3719479b55b794a70c1a64ff6fc012fee9fca68084b7f556ece44db8093c2581ad7dbe2a7159a7b658a59c57c80a569a0fbe5677718f06da783a93a609ba6fce49d6e6210aa6222098908b43edfe142cbbccb3b21a6245ae0f1653b144146fe72bbc6d27ef48f7d3a680a7d11928cf3cef57a38849c35e184062129c1546607dc7482d7b60835c8cbec796963e2f47a108b526963e5d1b736fe8a6f64307cfb1dcfe45d4ad13df0bdc2b65e9f30597998259699b81fb91e7e0cd1166fea32fabeac52add389e19ccce8e3a2a28a6fdac237efecae9f43d17f142c50834de931bd1bd6073173328504f667b1761ce04f49d7e807289dd94312705212a7503182b6419fda63ca92165e726e1fc159c89b328f73c88d417832cc5303c67d2352ee71677e7ef5bc3a6b96e067909b5a37ab7053628ef2db327fe6d77e025b02c7df34e06a8803d0b590c0e484bac5cab380376fef13c2a0ac600b0f095a40eebe388eecfca955f1631e49283d7b63f6b3ee569e34d68400a1e06cdd6d36181599368143f4211f34f71b6639cdfbb8f325222181b40d78cf5daabc7377c5bf2e6f243aa0b2bc4d0dfa372da9b3e596a5e8fca741d136fc2d4229df6a79f5b1538bddb68dbd6488bd464eca1833a7685653405b90532a1c6046f7737ec68165daec1f0dad40433f798b3e90bbd3c716f8ad875115e7c5ae88739b8dcd390fb098c4ae38de88706fc9cd12de10de4c2fa9b212c6129d24d58a6698325aaf58c07efa449b068734fc91e475123ee42d06fc1460953c6a67d72ad1ca8139886b81e1a85798ab54d7bf24fa79077e38d9bfa0f897c2b7a40da2e5fa1794872af478f29da8f63aa901b6ca11afd09071c8777f75c64fcc89dd65dc396c75bb7e9a72d3dba8f1a564ade1367b89b5f3e924f50319e6f212b85c1ca07e09cf68716e8a6c1aab24e706a6d0686018a2ee417c9f5863ba71cfb5d8f29ec8251dd6756468ab44e6b9263799de9e3b0c8831db84a5924a7aaeb76affdd73afd9890ffde1be1af747877340b7991a5d0d6ad15ff2875db44aaf9ea107d85edb5ec747045a5ed1061703738fe3eaa369620bf2375a7a8800892a5a8b698bba8a9e836987f96f90f8653afd3775e3e9d6e67d4e12284cf47de561c03c276c5a0e104fb50664a988875533556d87521a7151082064a2cbc4f04d56cb2ca5815a4de7102907808ba6232765910cda834bd8ca1e98e5fed46412a89ec5b7126310409362379353fe756d1f30d31242ca9dffd3673f0e877fe0105c6be49e62287b748c6c06b7f0dba5bc387f1f21aab74caf7c07119fcc1a5509af80d984d351c68c731e0705723cf49ba5fd05ffa2244202eaaa161ceeedba94ed31b77208e831bc7fdc36100795d449238ac71684691fe92c0e9f4bebea183766a7f754b156f8503dfcc6f310fc70371cd257f41b6b1ba668f6e5b709c846f133f9977ac3c398239caa36cb4e24c08e9a3e69ccf05c865249da29304931beb1d8e8fe1842e542284e1525381ae149a70a9dadf4105b3e58cab2b849e803a0dca743d6c69697ffe575f142e1b345dc90cd2d9965733de2f84cae72d9f8c5fecb003815007ab697f3a4b9d3ed9fb1e38e9b02413ee8461ac5febf9e7b04ccb34a592739a76bfa287f2a3d208a125c5095b6d660419991e0279045b20dc1be801b18bf117ebbdcceccb15a15696c30f4d2ecca2f551a5b4dda3a3dda35d57203713f6294ae21c4c3af30000b40c70d0c226baf6e020a920d6d18c6a9d7ac440e75e72de242e7fbe41226ca584792bb37985fc505f8414754c5c8e44ea05d6a4bc588220bac9e37927128dceebc3e257cfb6b229b8897e4c99768c6137f9bedadf0163c203e6ca57760c4cca25ffcae0b45e81fc6292c4bb6f1d7fbbf26bd3f17fbea82d5b2ded0ef02abbe41f685b57825f57fe7f54d3b65b15067a28dd099c4df7d5f4ca357d850933001c2cafd8aa67e5e323929e8a78e0c4dd6a970bf9a8b08f3ba9d1104b7a6e01ad21f28da8245e64de35ba983d75e09be81f7cc83d5a9d772b662e164a512cabf1a8ae2e1dee628cdbd8379d774940492eec3666c41ef225503ca5b67d245c7734285cb38afbdc2180c6945e9f00c2c8be8434471be57af1b26bfaa0df753614870933f7cf7f168c29f4cdabdd8010466917831981fbcbc3c2e4860a78668b51ad6c298efaa037fa32bb3aa99002ce54fbe7a3d696d1f7abdac85ef997dbff4f1de3bbab8511ba39ff9f54dd1a6fb7bad1ddf3b7352418d9cf3af30b910a1e5ad5a8a882c694e2137a66afa29f0164431df4542e0e38a8e0ce803e02fbf05610501e66c2bd1cd7de9cbae12ca5f5a1542d8052d1a381f897ef1d01ef888f6d6d4e52fd38dd8acee67c89796b92ca994b15e281b7f7dd57f7ccfc0efe34bb3c5bcb8b3afa0ba6fdd970562acf296f5bec25398ef258326e5536001bb3589274510eafcf3b19fd86a6570fe1e029e0b6380197cd0b2e5a32490a22fcdc8153c7d130f391bad727ae76507c8da37bbd2a5636c2fab3b526317457bc2d6c976222d8a1fb2a1c71d715a4aab7e736781ed7d4a5b37ac3c91e490290b3b6affeccc269666e4893d003fff219b1f9e3844d836bed7d7c99c4b5dd2819c8f81a27064cde54095d61daf37c46c4617b60729eaf08998a737c2bb0118da731df8c61fb49c32021912275310ccfd5e53395643e61ea1489cf2b6bcd50d910ded0e54e12fa10f9ca7cab33526edad54ef49cb9e1c08563c8e3a5de9cd5332923be78c3e72fe07e03810b74ecc32dea4902cc458754ae0262010b4bd8cfca08b0b0c29b5cb670d77e2f8c8e57859caa70bcd742b2253338a4cbe2becd3141225f6e9fc03c4a736e81a1b4398fc55abc59438980c1de724db974c0a59d615d77f954e32343c1bce4896176d5604cda93d9521b1c10c9ee3930b0be06df370f8e6a7ef10613635b06faa0cb929089ca0e8355eda8ba263bdaeab0e0cb7080ba0eb7ae4568026faf9c5492010d6704fafa1d569274d06f535430dac50fd72be53b4442921ad1585070fadfd2ea82eaa9c3eecdf94c970696d3f1200784d0cd5ff08d11f64b7cf82c2c1b54e1203342309424e0389e5a5a6d677936908a0f091d1e54e0af4f9c8b340cdeb45737e466571b1603ce4039be73d87ef0a091397a7e19e1a901db9686fb2e2ba1854a861cf00b98f92a1e5373d1f390a4bd6e7d9bfaede1740ce8bea1ea19e3c7f9cbb76f33307463507adca0b4d78455606b7dbf667098e094d9117be7d2b6e38c6ddac174b0ab6f666e67988e6fb619b5d8c545c07cf80bf8275ae617f37298499b565b78c7901cc6eb8b9409e2c034cd3dcb5773cf62d99d2856fadd15799a7f96c320158d4ae51099e8b9350fcc6e2a588c0bf26aab0b58258685a1333306bc16f955707c1e743ce4b1a35eaa97f967f5b9c20e0d4c993b4c848b8240d4c9daf79e5d1a275ae0303a315ac9eab22e9aabc3c7bd7507496ed484126468edd8f63c5e6b8629413192bd40cd66e396d1c5781e224fbfa3a872fce289c86df5a95696eb70c022679ae2813e760ff3114b9ec12d765b3ef3d11a1d56e228276378857587cffe09b1a10ed7e854fbf539208725b11faac7c7346c646ac57702ae946f92cd478f7036532b91e8b7b5e044d9aff2951947391f81849347ceb826c3c2f8d43769297d82529ee16420f9420d5c244016256dcb833e151bda32494bd5aaa10838b1a00163ab06d77970b358e7e171c82a25b40e524dc6f91765d25bb6f9e9c913f14bf7f32a58a4531c29a8a66f42fe4a12e87997ba911d9d383ad5d4af9d1e2c036e43f558989a3b45c59ef45f8ae2ea1500139f4cd8d840d973742b12d5677666b034a8004b1376c5546e7198710230ab512880c2fbb438a2e511962ae5f5ffa51072cb360ea34a1fccecdc246e90b7a47ada7569d19a8f8f44895dd75525238bcd3367209f2a623f59e3236a3cfe1d2629b1591458a337824bd7132806ced6731b828c81318e4b0b8963bc64a5078e1569a7b313c985533127a6ef34f826b9a6bb2c366b49046211012df4db1f2a48be944573ffb509983a1a8576569cbe77bda80f949c5548f889c7eb0c68d4d9225d2cdc432dcac85dfcd4c75bbd5be7dd81f85974c459294be514239ea5b2bb1813f8af60aa187f27f2314fce9a1ffd7ed92769c50d6ac1d18f6f11706d8bef98a504c23f7ee28d4e04474592f5f590062bce4a1f83ece0e72a6d75f1789e76ebd998df5bbca5cbfff661975f6a3cc8240dd890373e806461352c9f2963486159da469c576221ca880d2a4411d86ab35af676dae8260fecb533d4fcf1d65e1d15f6d68277f46c59caf67bb36fc26c6382480d6c1c4db333a6a7e1a8d2dea19dd5ae4189aee6ae47fac16648ec424a7fdc6850e6c2dacce783a81cb81f658afc4686e7b5cc5278c02ec64b65fec24e06a4e82f3acd9d0fe3583860848ea84142669653cb7baf73d619febd8f06850666c1eba5ae89e63edb85121e4a2460a54982f93be4286bc62a582d94fda68d6fe829f25437234293df235b893f789c9c475b3bbf5f3d639536d076f9bd51865bb24cbedd77e6e061bec4a0876d7ef64ce77161111fa3b97f07cd0832651bfb48600b0f04220c586defbc9a16954a9c3bd5624bcf5b6fae2cc98f8fe842324fcc07641414f3c4d563a57896573198290a9df415b895c2c8ae36dad5f02f8ca79ecd81da7dba35cc9fcee780db58108bb66325e7dccf884e3e1873d37804e00ec6942171d1db64d5460b1eaa4b3271cf78c195d27c5fad4a5ff97d6aba4281a1c451c3350b1393a12ec95350aeea6fb3a8bae9d53397aad6c678ed7f558be9650119e842481551040e4140d72c3898741ccbbb46b39cc8e392f48c8e397d3f4d6d5ddbe3073d317c24aecb8e4a99d7509eb8e2ed27a2eb0efe0d3be578c893a800a419b3dee16d99d6f5433bcb4279d57f72c305b8293bed7928e38c5ffc42022a46039ca2b715a7b110616296bb35931ca1a1cd09ed9e71c909b33b81884c21531b26d8b5abdd32a0eb428afee753f636a2bf36cb3f626509178a34d69bd80b705888ce6906e4b1da3da55a5717f01fc80060661d2e20ce584b031b54da284e9783a9f748f790be93d06c5b8fd3477cedd58b054a74b31b5e7ee99b89a5eeb90308c198653c47fc9dcf3db668acc23f10be142dcb15a0d7badf5d62d9caf2f147e9b159e7905db1bff2cf28463c57f40f6c9f50650184258b937c48363ecd6e3caf2d4f16f3dd2e1250195b9df9689da9b05b9d49835334fe619ce3c6659c0ef148ac5ec7833da41e4fe5300670fd0a2d499fcb906476ec89f1cc96c6ce1b62c7bcb91ac7da09505804e302ac91d3ec02511171ef2b98d110a700e3ecf8d0e13daecd284b0f18d1c2290f35ae4fe6c1ea681c4e1db0e26d8bab48a6f075828227830d57bffcce317971fe5879b0927ecf2db54d18722d3b201eb81d18b2eb05ac2de7dcb56c15fad9fdf8efd1c93121d34748433e78faa98c0d269caff464ac0180bcb64b3cc2e37d1ee84dc78a531e830f7a540d3742f65d43d62d2b1172edcaa75956605a2a13506e86d9887820047743db9a4972363590d1781f96992de3d641c35abe2d878c75e90db77202d827b81ae46014d8bb599b71f5e5e887ac8f2e84c693b0971a334d114de16a072778618265b6a036167acb3a508b973f01012a2496dd5b153d8674a399ee5be2e52af8a8dcce8bc5367ff1eb4d7d2578c4736dad3726db2bc1e6c5e1bb5a6b7c333021f9b03f937d5d2628c80530734a200fae92cd4a870b52cf8886a6af2bd006bce8669e30c8a410a8acc16cdca3989957f74602f61a40b7edffd377cb4c4f0722562d90b068a6fb78d468517217b006aecb3e94428ea6d299b09c095ab944b695fd4ee9fc00af43c68e00b3c25e90a1fe8d505e4be2598c4cc01cf24ec32835097289ded86e5a1c37c770ff183a2dc0c226845679bb4b91bb3c5a3cf5f97a7362c86b2d099d410830de9d311fe91b336cad42e4468707f1bb5ce71673db39a8742b5d56eae1d35f1c2aa3e53eb5cb5ac15ef03f985816b10ded0e4d598c74e663ff3c7f66e0c523c28f323f8b3a12cf9bc8ffc33840165495beb472ed30b09e64ed75c61f43cd1d12f72e0555486bfc77d418867ac6da93eff6832bd26a4e261df46dace52b6c8bbab994190e196796e99fd681f77e98999bf10dcab1be801fe257ab2ff0cd5394ed475fe11fdf3c26154f8b85214519edc36067b8e14f945939610ca939a0553f4c61543ed64d19ee5797d2d9fe61b58f7223a4dffc2a85ee36f35bc2feb4e3eed0284107e6344cb7fd4dc28d2020f1fc3e56a2f3aafaf8af82ed4ce63ddac466fec4e735e5b629cc7b5666d64b5bf614304b5e386b633760116dd8834c63a5ef74ba1d2fa42afac3173788395fce54385acb36922859ef3ceae991c71ee2d4f82cbead9da21dcbc5ee79824a40b7fd42628310a4222c488564211189812a0210c7e18bf0197d55c46eda43d39c7bff5e06c67f8bc63590a42617d0de7e32980f9575de79e5422384fe70b5a7b4bd760ea8dd0aae374babfa15dce2556854d25feae8a2ca69f911f08391c8a6867816fad47874d0e5501c94bce3fcfac11b19baabff844cdd1392abece5f16051c6995157637f0755a6cc1500ffdf9901329db0a2aff0fdad8c6879d910892a5215bb3ac9d9e51fea914d832c0d5946e0c938ca674fdc823b518de63f56c1e1b6148aedb629c6ab0bff4d83942023c59f17ffec285f362a7fe314cec6e94f1d07b18f4e40fd31ac8ec3ee0533ef84b96aaae14fe29aa8e155d766c06f6d371fa414cd89a13d89861d203b26f1e4fca519456bc388f6b2dcf0e39f01a897a78c93970f2667ff48705ea28f02293b4d61c0042af4ecd4b32db659bae19a98d8d441f5fe8f28a75d58cffaea8bb0df19538b1b88f485901347f46bb400eda952ebd61544ea60e8dbf17b048f69146fcc85c623aa78c914d314aab318581277b7216a2ce863808c2a71df240ad8bb821829d3e09d21135f5490f22e1a47f9c719c043742ccc81bf192ed8cb14e492235aa4f668461bfe7486e844c1473b3c9f56f2ead9bce490edd78519a09bc6007d747506f52fff3b23d47f75fec428945d957a141928e914a4fc5680be4645f2ec9badee15bdba48015d9d0a51f8cb4295fb25966ca60095dc8ac38232ee90a23535d4eb995aea5a397a26efb07f9c49168d4b843c842cd79c036e3f99d697cb5b63d30e79b5c714dd93a2e5301b8b01fb195a232b2eb04f5771ff0fa78004076b4e139d11b3e3a1796af6632182a5b781b78a443e34264cb57f39464aa1c973e20461ace0e5e207e18267133084928c40dbcf8b74d260c19e20574cc29b959a8858ca2acc4332b61b280d0828a5e9e32def36f85adaa77a03226dc99b1aab794dc08242bbea30b85c50afe61f4e6f0724fe84bd88a3fbd480f332d86c57d48a34da1a9805751ba115c6d5fa625b910391de0de8e0c612e9a88f0a724099f6dbe06b2bed3428bbd12516e703bc7cd86c1989c52bb9ac14b442ac19955e6c707901fe7c9c1d25c41f8083c399dd93ff046559d522451151799bb2487d383e9e5078ebe9eda148e3317ba47c05e93606b8ae47c75c541e9060e901eb2a70b1021d72aa4cc24bc9c442745f044a48ff8a651a378294b873044be67e51bb241f8cdf7c5d95e96dbf705c59d7fb6a74c108ee69575989b277164e7df7eeb276a510a214b9d349e70085df0c23c0936fad9bb9554147049c6ba866b7328f50f80e57056f63ed59cbdd0298c4794c1339896fc2e08a6ba2227d194500bb0f8c4bb216d599819a865742c4fe26a994b12659021897614fea380346d411f1e0f7669b9bb2feb9ec4c0b0fb411ec1617b5e9c8457fc1e0fa67f9ef1e50a6653aaa90f5da3a5f6e922ecc2c2e3d06bfde035851600e6660f571cd463eb1f167c7bb5e5bf15ca8489d119ca88b46ce20d71c7d025c828d6052816bf527916b67a8f459a65f670a674f9ea1eff56ca4a3d61da482256a763c2e8bbd915d0287dacf2d869f239af475be5f98d3bf9a66118fe49ceb674ccd1698b8edda712b443a9374385f76d63d4c4f553628f7321f30cae80a7650f031b8a7fc5f5d36dbd03e14e2ec8757ea9ecae67f83f45d63ee38e4b021ff0af3fee9f4dcbc1e60367e9383792bf903b66299e175cce4fae66c6a57ee471a36c753b1f0abe278d1b7df3093241002c37c0f052f7e9323380e50965c44f0ee5601cd05047f2f6ca7bee23234f5ecd6c0fa25a94c07b5bb3d76aac1061012298dab30397056c5a33724c40b157e10e5a203d25c38be21811d28b86f08fcd7836603b74ebc1671bcdbb4b222e59149814e482b926556409e0373f2314e216abb694b9d2a72ad3b34c6c4898b95318be61fea83f26283853bf12622889e3589c99c7b6bfeb32d1308efac0d57dd9613e820dacc3df9b0b2f7f2a344fc6cca049b9b0bfb7313538e578ccd47301bf36758fdfcc69cf887f427dfcdaec4c3c0ee8b270e50fe59513ecb6f7cc01895632e4d8980bb37863a8ca418fdc0ac3b25a5306703d020bdf217bea6f9025ea12c608fcacb1d143748d96a7fba50f08d24dcc442060ca509e54054b86314c72d8b482b049c80d0139add118a407f7052e4307e9f3edd11067522dd4715eeac2b4958a82f7a039c498779eaad9b41a41d4b08ab21a03ed203af7877092ef4cc53055b8f5c14b360a37d080211ec68a688d985d9eb1c7a67b3dd12eca445ef917f2b219ca2d22885a1f9198284937f668421406d71ee49d161ea322ab67499e97ebc0985da13efbd63607ac45966a23c4dcd4d7354306f177aee37d1727f293e5ee67b263a8ff576b5d72025408a1f82e7098922f045ebbdc543b778b3cbfec0d0be37c6da989278fec860e909e8414b879b650467221a102a40b340797ba15afc644fefb384288cb4dece87d8ea0f6f88698c55a79096ce609e56ad248110745eeecd21633561277b7c29a3415e5b713a63acc7699d2b709d810d621ac97047a611324a12933cc59ba1738d87928537f95b045eb9fbeae1109077608eb42ee9e0446eee6820d2f2b2f70ca4c8a9f7de4c89e47dbb912d6d00ff7a35e7aab20adbde4971cd95b3b1c3f460b6c32680f8dfebe9a8e8297ea0dac44f488a291e5732ea0d7cac8589ddfb686ee47cd02fc274f5e8925e11acd993904e948e45674d3af02eb606183e1e18f0ffd4377d1dae357dffd87a2ec7e862e827401e3808227ece61c67d81fb9a39f377f0ff79eff215d37f1a9bd622e9185bd4b198139644359fb9b0bf5b44e68a94777caca1523440a70297f19565311a2e6086506d0bca1bc44a103e78caaa9a2fa6bdf85469b56c12748387da4dbfed2e61dc37b36bfa9d69be6fae0372705d702035cf3252499430e29a30cae67e1fad59653e282fe2b4c296d0bdc07f691bc836bd25f0a3828da6a90c853d996ba0a84acf58f6ece78e7f093f75e95b3d3b596980d0532f8480c9529216e0e643deef426f5c5d733b254417e20013a0cbbb2c84b22d13ca5195f7dd5fb463992e43fdd8f118a40653b8f46ca72a69770669e98efa6a9aca7a8902349ef49ce28ba9b283549e550db67507997c31e0eda94cbfc411cdb6b28b43e1efc701b3f00e2af75fb11ef4ff1cbf12bdd57e8469ffc1dddced09b453994ef1567eb1a875e393a9600ea76ad15d15ffe109052aa58f882963ac968698d11024892ed80a2a39dfa120e6ab17c8a6feb6b1df222ebd43b68795c778aedc12a1f08f44de51206ac41a3db4309f1b52f043ea80b2c7a1d83434a294a3e48360a673b9f5ada5c5f0c2cb821d617e702d52514a9e6fa0f8b6deac26d60d9d674aeb8d9c17013890899caf47b40d45b51548fe44f0add25eaf66d0d59e8b7582b07227173953ea6c6f56fad1b213bf1f6f7aa733b42067baf40694cd7f5f371b388bca5d3e95144c7671c6e4a660c6e4fd369deffa58a943c9d3714bcd9ad2a2b78f8a978148ff8ac008975bcddbf3bdde73614fd9a3638340f52eebc43276e1d729fc82dfae7dcab6ea336b36b7ce9f99d905a85ca0bf1deae28d53bb9118fbaeda4df0160c10cb60364d6ef13b1a71673c9c553464f8f9fa728bbe12a38bfa0be31e0a550492ab8c5c7b0753eeace8cffeac35255a2a477bf430409b31a9834d735511b5fb8dbe59960d41ce2a056feb53893b2a294099c9a3a08f8c62a9589cd31cab220de4816dd5d83f47e0c5e46fe59c84fc97b57192d1f95eb641596dae4d77b5a784a9e30fb27b4751274a8f98dc5ca6975216f880c016cf108f060929d9aa33c8d3e8ea8d7a993856f151a7720a254a99606f3d29379c092722c1be40d3d1aae8651ce0a192bfc47a47d3e88f0f2f7765c8fca070bdaba4e85eed2f384ffc86c675e9599a92e04c25718c291959096a1f668a03f4512f7e4cdbef68e3a112b2ea2e123f9fe20714c49cff9532621e85454df639166020870769bdc740d86d67d416637ecfac13dd65bce593bc3fcfa5f5ba6c716c4cef04fb3183a2f922decebbc039720771e17f7d6e3fb40eaadaacb51cfc30010f9aae4f298ae7af44ea98bd5368c0bce9de1d1c77f1e5b36872dc1734012bc4376a1185aa4373f6d7bd9c1139163d6f21f33c7ab08a57d6c9a89c0ef09b425fab436bb570eba184f5f5f63c0d3ed5aea68d7f7ce16942af8361c27c3606acf2b8c3eab58e77e6febb7b023730cff2fb71e4b97082b969239f8130631dd3d547f5681d1e62fb020d25a55539032f3c50a6f420ebfa07a454756f448cdd7f7bc9f123cebbce1e0b62d896dee4f9626934d0a23ed5deeb272059e152c5665a8f44a3da024992a82323ea028fb272b7850d08188aea7c2d2b9b42f2203d67e234d0a3e5183d8a36f6234964d38b458cf45383fc1498d30178b5ae59b4fc7587e13c7abe72025e961ccef98b51b758694a6783b4f9575e6de17a58c532735c99634ad627035c12f7a256192cd20000834feea5369791e6128d32c72f2ea11e288f10d61ecf13867be5a934c18677b68a0ac589c7af281251c823516744c3e9239a434a5d02a85fb94299d6daba07e55cd720755a0e3685085dc5045a8a5fa34d0935fd284d2e8874948fd89b050b392350f1b3c2fb9953550bd84f9b39ebc7436d94e37e54313a98d1e231ae359ce7055eaddc92cdbb05b10e3d69a8a24a3cb9d531bedc35c51a4f30d263618ddbc3b2dd3c287d3ef60dd7a4060707baf0239f6ac47296468d7c8754aed98b3671ef5c3cb311a12ee381be9dc4955a5d9c378796e3d8a00da6d47ef424a922e726679a0e571c50b0066b5db44550f7b458e262125a81942d70abc9f99c73d972e3fdf512e422e963547f7718ad2f644d4f9bb2d9660fccd9222ccacac2e8a0fa7077ae7abf3d6bc06593af3d525fa9e2c4046a103da4bb576b80b9cae055c4c2c8769776916623da61e494a863e69f7902805c3804361021f7bd2db4e885b1814300a9b930bf40b24f37585e1a15f130628e29e56cfee312475c93bf2dccccfc78beaf0a40e25cd5fecec5555eb1589c9efd38278d29fb2b51cc16f7b8827e522aa2396a287d55dcb39c39047e4dd4618e4cf8208ae9c6b04ccce8ea362005e21ae13b368b8de4afda869b176950e084535e0f4ebb43b337decc797e28c3f54ded182f006170a57133a7356eaf3afe31e9552f56f7f5c58d35ef0e7e72d8a75e27b2cfa2ce7f1fae4ed13c1730b48c0a7c2b8e3fd5e671adbe918c4a2f33d83c23f7f02a7e46dde05385758bec8c5d91a66a1e1dfe3ae2d34ba79d6da9d5ad20de4273eea10f76198bed026f0c4273f43f7845615a7fd3bc43c4ca858133ccc8cc7a466b1f5fd17f0517557dab4275422a85f6e37ca6e6001de862c9ec31570cf3fb037a9ee864504465dc0b95de551e68dd6976ddf4bac0c7824342f57b6cf0bcbc9f42c4c8067b2976c54873146c130829306722b8fa59c7910fa69f0388f4c2f87e012612eaad08740b0d8f48004ad76b830a673d5c2b70f2899ef7eef68efe09fc588cdb97210964d90501017cdf634e85137cafef13edcbf919ce7ffa9734ad670009964d6b005cc579f6f4fa5d0c467e8520a7a124803c5471103e4b398cffb322ced2a1f0156ec8c13102166aaf248396bf63a794899df82cab43a7dcca54d600b849c4db358d057baa05dc077b063ca8b2aa7700fbcf3efc99c1e0feadb51d4061b8c92fecff00810d6d6b7d64a21e6bd545ab290e0fd9fce258507482b2d6b1d7dcad491beea9140532b2386acc11d7d657ef27e1f8e841df2fe17176c238520f6822f56d32a07f84ae22e2c2ad0c23baa9852b68a15f7d9e8908410c795880041f771019b9024c3397fda6c90f26bf70319ec76d5cf35ee6543a974fe5a5d2943499d7861eec8ff5b4179506e1a75ddabac4d6fd952dd834e73725968bff2ee26b96902ed3d745dc15433fad5657eff3752f496c2b4730c0ce7e24874d3b609a73ebf497d7dcded1f5583ae0daae917d270d8d8ebc8e1d9af278d2fd6f01f239dac3f30b86b1fc5c824ba29ebb75d5ed2c0df8db62af146c1a41e9bb0872772259ebc706ec4d72a60447b46d3e6466c30a868c7e6acd46f78b7d3485856cb67e944bb116233085a3b0a3df4975853317cc9c2694e4b9e7a67b0fc038b278b6b63d0f7a778ede7d18552cd7daeb5f6f750e8b216d1ebc76fd4b87fd43314eea72d8ee06803c44f369083c91f78d6e77974f2f1e70a13aba24577577d160ffbe6ad13160d07913ec0ea0b25ef96eba20414f1acf923300baa0215104bfc31c07eb0b9f382ad0e563e2dd2aa0f893ce4add1e103c59a4a8ae88b784d323cddce4dc472ff704b875da58e68723a0481329893fb8a4a0fac32a54a47433eb83bbbc7698d7988a34ebd30ae386e94cb2e524747afca0c5997ecb3fb863b4faa269f116743d5a751a005133046e0d4f9d2cf040bc9c1da713d0bae96851329dab5972ed30f38cd875266b60f99e1bbf9b279546f725e6affe7c2bab304bed11602463caaa5fed886c7368dc9dadcd8a67ee378c27a06c385c0a9e7b183bf3f0dc14fbffc0835207dab7172be3311a150d2e407983612788cb23c1120eab258d66adcff0bbd1fcfb457339a720013d699a4168ffe7b4fb340a65c5b2ac2c43fd68a1a76e531b41b3c273f128a884a3c6e815a4815bd7c0f5eb8cc390ea936f4c6b6ba464f9c1e4871a47bd2a47b72a188a052def306cf426823b508d799de3f086872cf172b3b751c3a725d7c9a1a33437be64016b771997f452235e53ca5f58e9c7a431a1d1e4501fed0f0e49c2625ac82c089be0dfd3f5a8d85f501750a800db610588a938d4d123eea4594174ea818fccff0fe5f055e2c20309201f99dbf2f87f400591c855ab0b434e2cfde9d30b0d7c8d05d908d0089b9dd3d36e7853904e0ec3cc4d8b2809fabc8f76425f20baa89a0bb45a18ed4859d277e35e6fb95ec3342f263d4f8ff9be0e6d58b618248378c139fb3a874b1ab740e24b294cd6eaf2441db4599edf5b8b16ee998d354eb523521f9d428a1f37d9077d46cc0dc6d85d7bb82ea4d5ce0f2f2684d9d64c476f2f88b1c88d5e8a6a266aa207d1a9ebb3bfa865035b2c3ef9fd17ceb587500c150055a85f01a1281f507d22e75e59cbdc547faa5a120d529a8557a2c20208e1a4d64593d914d5cac0ff881f22168f524d82c750a4f51fa5baf63d4389762c4c4187296509f48f7610e1129f5e9c5da4c67e6d767b6fccadd9a9e1fc9649e4fb8ac86e5517e638754a20ea3ae0c3c10e9221506571aa496231d2a96863ee2adbbc1245def9813a5eab1f2ac6d44a97104494a6b7c04b6df20311b97fbf076b2c944ded99607445d4918b563d08cb36b4f6a8374f461fddc7aaf562314453e07c88163782ab768b12e4b97cdcc0fd67fbef9e310d010caf98a67b9622ee58ba68d7edf1dc50197149cf10352497b1fc378c13c36a1f089533166a81dbba342603940d9ef8eeb79ef50b5193d45416f6116971a5e17c8993c775493426ec52a57d8f44edaa175cc1f15d9df3f91848e162fe92606ac91edbd01188664ff30a8845c3ba50dfeb82075d35daaec17b497b338009e2e5f01d00f541fa2397aa63132e303527a8ebb1e3584c0623cb616bea0b50c80dc83556121e2033b1a1f602c814bc2df5a3d311297e79a410ca4c9ac54b35ceb999cc4ad16f36b5d86d3be19e41ced02a6189b924a10b1049b6cf362de9852bff3471a2cc45356ba9f22e456a3bd02019f86764decbd35d40d772da95f45f740f93c553535d9394cabcd5b085af98e95468a6e7e93874fd9eb1e66fa8d7e41fbc257588e29b3a28e94ec362e78d7ead6e417c16d47d628ffa15cbd0032af6c7ee6b5006d938e37cc699e3a47c1c1b05984794a6185af1477fffd1d95abf5f8f203e3327a188850dadb49045ccdfa1ef774c3e8c8be4f925fb96e95866a822eae3915b13293ee8994c16d45c58664e227c8582913d594395de710ac4c75463e17af79ccb094d5fc8d94017982ae9603dad77f7283a538da0b8625402ee4f159350c914359dc7707b9f365b4805745f005bc061b9779db57edf444a55466425d30fe9bdf1de269cf3921e575c369f7da0bd6f7210392de0ce378670ab9bda1e2e6b717a308519ce73282c392fb1f0deb0f485e7818a50ebe4db87d68d83d14dd7d6a4a9b8a882ec41e22e0a6ba8a16f7207a1a0f695a1e69a740997ba051771177d3dfa6991811e6332ee5a71b0d7ac3f296c61adccef077c902a58816f70f096dac95c3004a78e86478087e6bdf6aff590cab3ffc12b42219d1adf1ce3f69570c39f8b466971edac8f75bc4168c2f7a850ec3972ea9cb0a83e4bada6acf824d43bd2e16772d578c9b45ae12e474b84a2514d1c4ad0e8b58865a3661f7624f74ea02d8284a71f0c1901ffb724c4b86e34d5a8380982cc0e58eb0e5273844836859d6f6f29f77e667e8e96be49597e04cea5da85c1fe40d3f854c72399dd8b2f17488ee7dc38ce5418d27e80d2e365cfffd6273a5e18a1686caf68183e212c16ec46f8f48f3ad9cb48a053682a5d5b118ccefd097d568767ecd595f6c1dfe9df10563333efc0de09751d0aa379679e4e43650cb5dac3a8e4f058732454b3755a48942eac44c939b3a977b6b15b2fab7f54f13ff827eb11dc56572c99a49706c51566db6b425599502151b3db8308377421e8c1fd3b1f0ad185074f0a67fef9129ba48d949b72e0052126be5d0d5140c0a15528bd47512cc8d9ac85a64660d9b2074bd2f64e815de9c6d491bbed300637193c0f050e8a2136b880e1b078bb7d27b13ba9ea53ec432d8cc370744e06f24180a75029eef21091a73cbabdb9df0976b84ae8f41de2606adb8db5383ebddb91d11d43b981c83c47774e687ce9d4d4cca01107d8fe0da3619a97fce910b99a450ce85b58172b26ba0992d531e3777925acdd88eb250b11c68759297565947248288f20937c70a7dbf04ce92faf9addc1e210447e8f533fbac2c25e38bad5f2d382acb496c8adbe9aeebdef510243f4ba4c5153e50b31b4429176e490867abaf37c38300e426eb006f90d62d4b5614db5a9a8fef3eadd7a9488448a7b1a5cd2ca1cdd048d2dcf128c12710573fb625e454267c966d9409021d14b18ebbafb79e99182ff1dde81b6b6f214ef114a9ffe707f9ea19996f08f8835e4c47138931aeb9bf5db0710789cd0a6d3468e08b45b0e83b680962fc608f6035dd5e1b1f5639bd83df694fe8cf7d2a25c92bb78b2cbdfc568da97f484e769242cfc918cd172a2d2e7b8297f277cb7582fa58fe05fe03bbf3721098744428956db193f367b69cfd66bd44b6cd7df2021717f2b5a798fdd5fa32524faa6be0f047b41f2d724d565a887355e97fd1b5d41954a7c2d8eb04c96271bd5f2f1c5ce7ba2ff92d93458b1b8a31384f97d9c980f94a2f78de7e0543c6d227cd27666d06541c344defdff59c13cee3b2beec0e4984732fe686ea79c8c2804a85098c5d8ad9985d3388af3cf11fe5668553d89b31b3b1b4a91c5dba2611a62efffb841fba4266fc7a5f1ba9ab65559cb70e5c98dd8cc73b45d9189b9222f7a9ab5e7852a7cb6da1b0afe02dbae0c2ef6596afe73ca4de49410af15a8cce27eb48794914fc9e368814328ebd0972123288daf7a2546e029597a3d2e1e2466f166be907a4c07b6fc7bf1107f1ee85f07d1773d363ac09a3bc2a08384f70180df2cbb87ad442d06a110fdf04fe8c174c2c5cd2d25e2a1915924c67b4d86978c2a233289d4e89fe9e04759090fdb434d8d85502fa4d680310f1942c6df85c7f52780c231da4fce1250c16608a82f75a8d766fd0422bcb3e30288ba59deb333c07caf3ffde3130393dd0cf1f2880e2a32474f1be17bbe75176f1e32e1081dbba2fe3d9aa76d2f449c7368e6f6f80a5bb9ef0e3cfdbe6fdd6c5fa55f1a837643399ff8295b0601ff1cbf30f1cbc2a960abdff524161e7942066fe4674dbacb8971c587bd30b0aad52f2a97cce3e1a4f4f88fe269f733f8214846bd312335b439f113fd09639712f8a0a9b6e1f79046324cbf702234c86e571b19ef2adcda81d41d44c20dba0a0aa0e86e85112c42fde919418db361e02e3fd5faab9ccdb45a246469cd46cdccc4ef8fc633bf8cc3910d8b73435138e12270268affeb922db7c414e1795a23be7b7f9a5ef98bb0f2e58164c5b45de336b7c1f87c5de147d0891b953d3490f3f009da9e06e5da062ecec4d2c7b58651a1effb5dd73e8b758b352d8c47d3b2b207a19adaf468a966cdfdb8577173f864576b60b6db9ecd035a5693090d82473480bfa6d386e38572803b882100caaa227a29fe99fa5b8812b7aba81ae4647c4d590b74b450f83a6673bb3991f62ab032a2e739ec180396861df2e839768d4cc1ab109a1c5b6f53e4cfa1ba48e34cde7294faf358184cdfa9821d7ccc7c83e401e4e3b8b4915601dce3679fd8da47012f6fcb0387424c3bb9f0b3ff63f98431f1bc8aa1b874f311e39b3bec30fde6617d5dce57e93e648e5dc1410de067bbfcb0010207fdbdebc1fad9353464a2cf649fffb6069b9cb4f55cadf5ad9a364a0d0f089e2b1c1010b279d44e5ad3b1ebd2a215a5c652648222f7508223aa584863ec1bfb88a5cbc165752b1406c20bb256cda4371b8ffcbb1de004300361b43e63d7ee33b42f3689be466caabf0fcc65a29407d9168cbdbdce71fca03b71c4dbdffe621291f6ed8d392495c79721617f1b75c3c0b89f7b82f329d1d190a41b12c86eac49a9bdd02cdafc035d1607af6b690a9f32155539ae14fd8109faf260c8ad63226532af1472ef9619ee62b769a5b2899ec0548947410954029fecbedc4b906997183be813f994c171d17a91fa7e03410b234d1d0527db2db4c5dd7ba59e43fad37b85b071a0389a48eab48cac307c9e74a8c5b053f4bedc4c0cd3438bcd84030d0d53e2191a9901a8c35b1933f2ee36a449b1c92ba82fba777884a12bead229a8c4ea4106885ed6121c319d9c54889da8cf788bbc65b0347b0168e7b8d742294bafcca3c7c5c34b5d362e9c022f14fec1da659297d9039f9e37fb8a7410efb7e764a96ad65d5e425f8b1b7ad17b8364977ddc568383a212605d7ff4f7776eaea4d911d94a72e2f155a6fc7ce3f2d180ce9acf3684cfb7dcd0dc1c431fd14d61eb2db89c0707bbabd314c7990044f8847ae52a9fd4e779ffeddce9b8e90e821963a72de2aec8740a76a750227a254e07ed74af85ff05bcb606ac4fbaba99cb681b7deab6a21c796353a8fe7093c04632a0561f2ab637c31ac3a27235058dc623f144f383e65ec8518061d5a730107d937f24e785f57c1032f38aef84c30743ce909825b0a5a12a4da9a8f9be361edc086ceb1d8e27def014ccc6cc3ef4515e6c9a1a7275380913f56b273f69c51d5326c696045faa58607f84ed3988e3acba6dd87df7b4357e84a3aca7ab3259ee4e3312c6c1c53633bf03cc5de4702597710592d3fc8290d57248c4a58adca52094a92e456a1ff46cd75b7ef115a29c2e28a22bb899ef5bf100622fcaccb192db2bc405f470af1a73b801aa9117c64a9397953d40326c04d24e628cf7aba672171935fd246b481fb9abfa994fe4018a101d8bc280d2c42b57e8f9ef1daa849efb9af0818d1e8ebbd0c4dc11ce6bc2df7dc215ed769565a06a9c7d835f0b61bc62e93c7b841decfea9b7e4cc1e4e39221ad01f0a065ef8ae22367fcc84f007cf92c201dc6e783b20500104eb6d3f4b63ae6d85dea3adf798d826487395addd0c58b66ff84ca397cb288405cd29b77118e2569448f67a96f8da7f4c9cd3e0bbd24bf6a55e868cbf9ddb38c20cd878099345d007784d9afdcdbc40c642aa3e7aeb1d0a97cdbfde358763038d7cd2ffb4dc1265f7c4a1d91d1a501c5d14829d2539ee038c55c13baafb34ff3d249d8b8aefd0e310f30f831859ce754dabd4d131fb720c3f3676edf74f02685f8325edf41b6ec569e6418e6d1d5f9a42150585dc9777b55c1b09df90512e48943760a1f0e979473cbdac436b53c17bb98de5819cc2f59db5a2db5a6228116033fcae6c624187c23eefab6f9d1918a9907976a37e636356cdf7000f96eb2eead8ecd6d68137a1d08912588c5ecfbe9828a7cb7269c31f50de5d5b5c3f13eb6d16675b03c70d22e58f2055d54712828f7103ef6eeb565345cf478f469988c027f11cc4ae65428fef584b4b810edfb7828dd5c5c22bb1ef59809039700b40664066cffc17cdda084256ea9a1db93d2eb1808a33e847d226a071444a55a77e693c368bf2507acbb02dc0a7f8216b850dd0bfee9d9cd9035ca157b9d6e077a8b62388dec0ead669f374b6784701e56c3a278fd30feefc9af5fc7963c97603a64e8d8729655ee347685bac81fc2b18d1011369a03968dc42046043125a2859666bbd8464a182342da94f823011f2c1e38c1283c304430610488f00d0cc28953182bbf4ab1ee5e435249b0a3247420ee6334589ece91e541878e305e01fb279827c586557f6193ebdd18b427a5759b898839f1519666884d5b150d4eebde087293a4924fb10177749218e3c05e98449d9536663785c5f7309c14bd79d06e0451644dd2b61bb9471a4750a33761ada67a36379009d607e1d8c352b86ff2ead189f416031c492ef89f51270d843289249922e36dd3461091f9ae90d936b89b46d3c8661ca6a855b9c852fccb58e1608112febddf73af30758ab18143c668dd9bc9f83d9a8f0c8a1add123a6894e7c66f24ca528b1de8bb9145bb01708ab5f8336d27db87a378c62b2d6e7b27d0dc714db1e52ce1d9ff7d392b8c3b8de51492fca20b73e2c440db26885190efd5f8360dbf9dc01b04c394befef8b050abecb9dcb188412a6977b825c3c675a12366e253f84da5efcb9162aac63f57b4a48ce793c65675be1aac2755381193316c64d7f72b11c38fb38695474d6c39a60cf9680e713bb8eef5f98ee443dacd5a173ba266c901569a14ed7ceea3cc528f1685117b26d255832c6697acc66d472abefbe5ee680ae97d990727919a7593ba643d315dbde442db858ed027a506d5c9b01450904446aae7c126017a4ad7401191221f6df25387a5d8a7abe14b2b85df70b37bbeb9f1bad6610ff40c8f612456a733e058e68fcca995cc67f1241ac49034f7ee76caea5c0220b136a086383a05a948b55d9ca0120a3b9bc96f2146f1b767f39b259dc11f5bfa2c512f14f9d1410bbd99427dbecde5e224b81737e3772327828f16fd586f91be2b0ac05f8d53c934eafc72d57aee4cb22b196be082bcc5c7e6b79ed71626b6908438ce52111ab5037240d8537896ff6ab186c698c071954e40edb8bda4043c6733b3f81dc716f24759c5978db37b8ddad5b7c761fe257ef7cba58f664031db909fd976b31b2eb946f2910a7a5b3c066905b74b3f311c29aff7ff4e2c9c201a29326e934bbb80ff3797da1af639259290773f13bdbdc1969b440ca68c4f8a89a73cbd86e0b512cac834f7b241ac2cf95cfddbcc676453798ff98091aad74a13512f4a8fb1b3828c98a48f10802b2454f01fa1dd4e3e830197a54165ca275516c21f7d15c139c33ebed7089e3b6562e2018f9cc287c931567272648dd8c9156c6b9f0afc58fe07a240d17c6bdde3674458df534eac058c4012479f2ae18ee9dd0ee20ffc804d59419d70c77f3847402a5499ec5659a020ae1dba468198cf890344341d11897d7f16440c7201fe0ca2da6597d7a2b031be8a6fd4482dd23c90fdf8c1a886857338601adc87a649e90ed692b41903d6882c1c96a3cd300a407401eaaca32dcc37e922f9339df114af763ff4ca8b937308137a549c673edeeba3362e732b9e7a9a3d012b8e9381bfc81ea23902ac0a36139ef421cdfd128f7c9af6aaa5912eece76796f365e4208f40d022226edadb4f88b53ca7e0d94e8568161c9bee337647adf23f04e27c502b598e2805fd1ab0f44fd6e844f08300c900d1af1068dec7f18c5651084f74c120b6570f4bb6b662dcf7e0818b2656ff8aa159eb6e42b20c1623c6ff1a6a27905e14b485f3485640c75f6f9bc331f2469972f63ceabacacd24fae1f04c7b821aba9210cc0dea6fc0f475839b668602c0ecb7acb112621a084f8f463b224084fa6a8a2c2b40832252a803a1bda471f1451eb2d2ec45b23a9b0e6726d415a643058cf7189d4631d81eae89a48ddefb7f44ed0ecd9e36f627c19c3162d91255022e9f718cd26a124ad6d22ce98e2b9b66fbbbe9d93e6d7f230278ffd0e3f80916d407b48d741065bfb065b28f04d6b569510f5c0ba6c62c3685e585aa911ec1b2518db6b6c02ef6a1d5bc8cf8d7ddf48b23119ed30bef400d736b7345c5cab0df98dd559264cbdfc13db1f7c26a7466482811b7c4ceee882b5e54d49ba8ba13214b078cd6ca8797e2f92025e3b98070fed100be65669ad2a848308747629fc3a0ffff387de3134d6b7f6b79a1971d93f916f5a93fd51db3f9ec51c1e88c9ea3df5a1d7bfdcdb498543ef7d794ea19fbbea8a9b283f4789d796450a328eecdda39329e9727b3c479ad4cadffe9cf76e48aeffb40edfcff48b12386ddc99ebcdec7342173658a31a551657af78937eccc27126e6fc1c2d9679389946479d1e94d667a2a9a617cfd23abd0cf8af1106476896da61a0e3581ad29ecdb3551aa4a9aeee8a2d95613bc41990f21d6cb677eb9d522ef818ad248256c22052c3f25c883ea9655678a6f19cbd6496ae3a1df0c28c5cdb677bbf0d0d83c087ae3c1ddbe624c32729ab244519c7992a65631d6957f85080d223de492c6c15eecaeada67e42f6f80f344c7bb67f650e572a3c14d3eb871d2b4b5453592897b8cc9beb44cccb1900a33720ef2d5ccce9027ce35c3519e52aea41293ec50994d6d286644c61ffba5e8a537ceab0b315d3b068df5b5e174106484a4e92ca2e1bf778408a1269c0df4e85d9dfabce71c7626ef9256ba40b5963e69d73712e4a321f80c130e6052f368037471f7a260a4a71cd1fd36892b3a41a8cfc6aad0e84d9516a6fa940cad23ba6a95e4089efe6a1dc62c2635e66b7b5f0a3ccdc5d59505dffff70527041952fc3c6ce9038732778a947d9950a93cc3eeab9cb50de53959cb3c9120c51658c58d0e06bb90090ae0cbc999a7f7740a8ec0b014f6cf514227d2f983b460328956b2b29f8cfbe3681eb9ef8b6afa6c8c17a60d0138860077508a7fef09736eebd19a03b7ca9e7eb747fee0aa6680539e5ad4221a0ff806cd2ead2d4eb12890f8111fc912fef944a2edc09f70249cbd5951e341233dc72d6aa4ee1b33cc5b05acffcda0bf1b74b7f6f599aeef8f29d9340fdfc6545bd66ad514e177c001ba18dea45bf6e4fa8d2cdb6d95c9fbf84d49e3e3a6c009a20b3ac037621d12412a2de0fad9be221db6b082dd658c027f47dd5a7bbd26dde6bb3643d10a7993c725b75f2f8a872b0144d1be4895a89379fdd4af58a3f5bdb5935b86136b180647a2aef054cc2906c023f8465d61637d7a369c37324961b35ade75fb0dfdb7437b7b4dd98e8898e3989e2d390bbd88c8dd0763c8652d323bc4af7668c681429d3f28e43bf6d47254564392fca7cf94d4c40a663b83e388f4d1dcaab124cde96ec70fb190dd7c7f26f96b5d078cdadc34cf3d81ba1a29e9b43659163000ab476f4e836cd20c986f445704186d59ee33bfcf6e5fa9442ec2a76553f94e9721fc84bf087c0fdf40f10872c683109690586f8ee8fca281c7742cb1f469cbfd4915088c648c4369cd68d3f6505469b0979791c113f0b84f22e8e57d368a8a7c1d914c9b56fa4e87fb89870e3a7513091996e9ce6d47083228cdb0eaed03e216b51df1a79ae9c84c400c1488b226d989abcc23264875eabe8969b04c48bb47ccb85c1ec5a1ddd6a94067dec669cce2d058d555c2b1170ea82d5653c1e94b6a117248c94fd8a0b558b72a2ce11cf37832ca60da506adf52bd892730ab380c425337059e3fff5be9034cded9806098462f7e35304f34270ba8fba2204da0bb1b2206401caef69040a26387fa491f7221b584d944948e51772c27a75801dad25bda8dda50d3d75dd25821a5c026a32922018d8c198d23c56c3aff693a88b9e1c8bb0ec270c1eb2be6cea18eb133301eaf80886cff6eeca498520994518e9c7658afb69ae9098680f052de879b368d9537bf48438e6fcf845986100790e673424f7507b26b82024adfd3669b6ec77a18c5ee60b7913b7c44f580011c12dbfe951d23f8fbee57f3369681504354506dc6517a9a992114579a3dfb277d5ccd6313728fba768c7f56d86440f67f094a97c450790998926184d2f1916c60dd74baaf5a608825c6ac5443f3922a6c36e924da5fae87ce727e5ec15a32b61e73c8db70085bb40955fa01c3f206c36ed18eb7b93f7ae8839674df42d81c1ab87f4604b9fb7b5cf52f0a12627604b689215ed16305c58d090ae0815809f2d32328af9486e79e9159762cc740b1740d23b3bef0b324ddad7024da235ce240720d240fd32dc20d56ba94d3ad2f514d895535dee6f63743b0027331b210995c7f375c2203aad46f38396fe75fb61a62f87ac8452b5200f50b39c1f0379d8c37d37ce603735783c9919abeca82fbf2ed106f9b7f2c2da4c796c83dbda7b1597fc00b3e5da8529d3bd47fb3d95b7f592fdcc515499bf99fd81dd0187d1d94f992f1f9df30c6f8171625edf5b8bebda73a7fcb3f58acb7490f277bff52e42495c7f252bf673ed917a986a7197cd75bc38ab937cefd1cf1a6276946a1bfd8b79ab6ff99fa215b343045d6a0fde130bdbe90db5f25450014c5b2c4b3488c25c8a8ee1215f08b182d1ddc452de7d2197ecda4c59bd91dab360dffcd050f55ff8da1ba3da75311ac94ce632a445fa9ee7962508a86892dc9fc00a4fd779e16275fd1a37da105339fd16b392456ef0a933f8f3919de57c4bcb6941b7fc6c3d5fe93877feca018e8f016886d1c4c80bcd7a219b2ca606f9e5dc6d0d79d66928224106822db43f3f637ccd950fe8870a529a97850188050905bf714df67bb6bccf60970537f263e0f5dda5a043b023d21f24d1ed1a4cfd717f1d2fb365c61cec3dd84c2797e92d786596a3d64a8bd5939676bd68ead56eb46178f5916aa8686c1ef03c1a2852fd9a1bcf500e9f781d011c513b402680bd947c3b25fd671aebb3c914b3a16ad45afbebd5864b2d513e9049259f9d0765b1330c89b336a919fb05bdabad636cb56f8a444af5950638c0d0eeb0338433eff7b6f92baa6db921708f1d315f0b367989281107a11fe576eecf5901b29bd8efa0817974a7cc84582793d212af3bebb69ae534b661bbbfae568d97dccfcacbbd9efc07985cd81c5f83a6081fb75106d5b9d1baf462a3e5514c7f9eb1aca1add04aef068c0f1e3a5ae7fd2f8446f75907a05d20f1a38f5cd26627959c639462e2e1677d381832d54e3dc9c7505e85c2b32d4b5b77771c7bcc01b7a6c0810568e00234bc4e66fe706072a08819b736b155e12d7d700681f9babbc317358620d0dd31e9e805fb60f0d7f7ffbfec3b2afb13647b16f6cb95f26ef70b8d076684eec5587db17d6c1a111b42d5ee018835967fff2bbb3b172b8f9b5c4bb6610bbeffc6416faa8d620ce6e54b1bfda471872d5d20eb4abb8daf5542561fcfb4d092554b1d7f19561bc8ea280f8794b47d1ab8eedad7de42a42658b294fba7e9071bd2de00f72efde96c8ae7114474ab67f77aed62d57ebd286fba19882e29f875acbb8d6283efa1b2d63354d4c0cf949c472148936b00d2bad94a5eeaf581f5d19433219f9b50b46e1c5530628b0a7cc037d4c36b37b1bd4b0f270f35a3759c48a4d91c787a4990ad5ed827c83d63e029aa7cd28cebae22a547a7c629d0788ffc87668891a6da6f0ee6fb78977a5f7562b9984bbce00edce2cf094147a3901880f4465ff10a4e86c9919fba65f90a01aa0a4f386536374cf3e098c1582426f75ea081f7849f315d269661fc4aa35b7973f0a98e15830b041ac6441de7a03fe0910e72d09ca1ce59048b24cd64bf4c9ae35c248bff14cf137053ece6c220d2b10b2922016c5c1fa853cad8ed532f830e56a4f25279c2ded060accdc67dea1cfe30ab4ced8c8185a69a1ea397bdbb8cecda0fb1ac7c4aa45d2a5ad9fbee174180595c52ff7811c35372c1ba45cb700cbbb13f62e8274565cb61b2e162b23a873f531aace411d4f72e08aa98e4aa0a6666d35de7823da4cf3f6d8de024a71005a3ddb3a3311a61a56f9f2b52210c72ba9269205caca2c365220a4dcd5a7048957b2d935d60bcb8fb790ce43855a448477d539c009ce1092cf8c732bd8af55553166c387dd6026cf0f938fa1933ad857b30a3e79a87a9183a3e880648dfe0560dbe3584eefb5e55e21da2acb6ec64225326208c7a274b8d1146050d6b5f20075eae1ad29d7422e1cbffda2f500089d6cb94c4c987eb3e51dcd0494e643a6ac5605f1fe3283e08e6456a07dd603fe3e484883ea908699c7af4e8332c4070b3a7313d3d98d2c9ab0dddcc62b0dce8b9f7dba171de0514a2bc5743f84813bdb79fab52e07c432a0bcd7b61b91793e2590d19c1f37a790a3468e8449fbd1ab276af162b6a21e1130dedea3aed108c3694747b2e8f70b19256fc9da183a03c55b12db832ae45c6bdf9a2aa3274987afa40d939d3c4e38ff1b446076ed5dba274711a772a75d3a5a8fa38a672d8679eb0b560c7e8434e93681b14c06518546a19818306d7fda822f0a24684a53504af0251d6ef1b7471d07efd70bc1ba35ea029eff847f074336612637995aebf1caa70f4e79c81f2184833f2798bc3238808578f11d87981d9ff0817eda3283a399f2e847256e30aad425a31bcf34416ab64ed78fff619bc355725781425d180b8d2f56bdecfd941959b321b268b55505639f084343fb831213b62a8319073ff1ed2fe148c14e4cb6a2633b1872c667a83483dd416dca9e28d57c3ab5edbde38b553b37150252a14fb972b19a36c4c8e9d3c164ac532f542319ceae92561ed4176fbe7780119e23b1a9d171dcd70b25dd73d890eec2ec3bafedd42adaab0ad444e5f97a112125f9245096eab1dc98109d26bad0aa9a5e827723dfea8610a49fea8e4286a419ba920164749563030b08b93758d6e80808e5aaa1bae6e598b5a41505147d3513d211f837481d374520f2ecdc9e72c61a2639753a869f7124908729a292ce3da5f0f7ef4d4b37d0fff02127219a17db9b86f1762524f20eadf550be9350e2123c7435f25833ed249644baa9d26e35a9b6a92869ca5ac280e36d61a77c9121b0d41cb9ad68c6af49239633eca196703f197f685f65e3f330a7518c177a4bae21353913951e2592910f94b6a57d7577cc19a4529bbc1d1cadd7beab4848b448c57fb45fab8c3d15cbd8a049d600f8e0b85bc327a8777eb59a54bd1be5ceee8b1b9d630d02e96a5991d03519be301a5bc89510bf514856fb0d230e63cf23723ef093eb362c34a59957b57ecfc36318cdd672c540bd41dc783f5aa9da0c9a17667422c1b8b39c18d23ba29b7aad07cc782865b21a05660a8ea1355dbefa7a43d3dd4ff10d898d0ecc0b40df9675c5e8402b062c18c8a459fe292501c4491601c1b04695a0d90df950830ea534522430878b662891dc44c3ec9aef46f4b17969fae5617e5a1a7367f3e5a579b2cbd3bc14328e10b9398ae43e683c46cc6f70a6b280df80b3d4476dbc9db1c5c57217c6f861422c8a388200fdfa6ed4d0c0b741bbdb117d24079da55b1773182d7f26573a8df456cf57a737b404dd1eb85823ea926b4785e3eab36e3263cde350f2c1749d6279d18a606978efb055a502f77d2aa2116715c7c02d3f8f942e7ba3614b79f7cb9e4aec78dcb79e301203e1cc8284eee27610476ad95352102dcd6d885fb47d0935b1cdb270d132fec9d1ff248ce42d354d5785af321ed382cf1055585a06a47fde4b95d5c0148fe52f8796940ae169aff64d48a16d78ffc2006906127cc141ea8a85138adf109cd9f192dd1363eb90e6fe0bc1e07d99dceedb76182c7982dd2e6e2154df19cd902a024818914e5f182ca9f9060e58cae36dea367958e3f55a8f0d6d8f17ee968659d7f3f8990b7974926054b4e5433195d9c3b0c4a499d03263615226c26c2bfa106fadbd9eee3413fa0830d1b9c8af691e1cc62a38e0b7998c587517bfca7f0c8a7ce00170f67f93e8cbdd2ae9ca286c5b69e7c7936c8b98cbff6dccef4c2b0cc7284a6f6cae42daab08b3121904c810e45465ff71f65d956dbf6d88b4c7b1607d8ef3eb9a4bdd0e692ff3d439dd07a273695151d48fa508dfb736ac9c4e558b4aed660bcc5bb02ddd3b286173ad351eea4c35e3e3014f88cd2497216ad8ca973adf8cfec4cf1317a9cf5e4535e948ee59db7918294987df2969cc0f2bd5f29c9727eb349eda1de2f1aae56e285f2b6b12f8c6465721beb22c8e36151c3d4889d1d114b6bdc517f720bfb606283dbdd9f0bba6a365f5ed2c402d9231d17831abd751c79fa1054253c5ceb8aa72215201ab68346992ef44142e5bc44b2ebc3fe57a4fd0635d1719488d2dc57369b8753364787bc06e942834c04a45b61662196807c209e6c918579daca53c9cbd273e929bb971247125ef154efbdeced899e97b1534d0f8622234db5045ed8d36f3fe7ccd23f65fe3f73ed1345c8c810f121ff446aa9a77c30a738247fd286f3bbc0e41e8490e91d00c31202d81f4bf7588d87fbe32b01dc104805326500217f563432c1fa1c636b0f6051e2e221c6c2fb4b8b7a5089f247e101b6720a9f0803b746a37b28467006e02e84354dcff106bb61f5c8c3d700f3f577ee77f710eabe7fdbffb7e537b1dc6fdf6bc2ffe3fc4a1a4564d27e6dfb299825b25d064c8d22a07cc601a23938306fdbb51549d4f48d090ebfe827bc38c81478583f8ff88b56479bbf8ea434241cb762dbfc516295be7fc3443e932a41c01aaccbbea49916b4a60cdcb2dc91c0091050320ba2bd3443e5d18c6d1b2f93986988498160d09a4b846cfc6742d1073848407e19b45e6d734ef406ef892c92eacf4fe6af3f0c8d5d9d4f8acdc67cf03c9a15aec19a105b1c861a48a68fd39fe1798403768f3ad0e2d86f3fa4d4587e7e631137e2b4dabcfde715d955cd0ad6c18f56c588e94636044a3c12d360f42bb82afeab2072bc114d0b174b256c9fd56024d85299c07e5ca1027702e58afae27bf623c460276dd2333d460d224640a4a5735056e2fc29b7cdb5ca6b87cde763a9f3000350f3913e4bcb00debc9e85a2107148c4a1a8eaf74d2a82970cbf04b0fb6b0097dcb21bd0271e85b9476b073932a62a6997acb51a1c7dcb81e961c8c27c0caad2ba05bf4bcca317d77b2bc4f93061901e889c764dea33312a390504aa0b7c03d9e062b891318aea9cf4515a99443396d2bf93b096981f335239b57ad6de411eb3083d4ec6c3495272b33cd6513cbfd1bc8721ae97bd0e2940cd3bc650fafb0b0a3337c325e4ff10ff9bbd16f7f9d7c235b34512072450d9f7fab0ab58bbe5b22d2369aadb6799c2b5f5320a43f2eed9a6177ddc884c056d5d6a9b41d753ae3ce6dfb3cf8116cdb37eec2f46a6aed26df20cde3159e644ace2eba089f6439f19cb3326267f2de6adf712b5bb374dbd3a84f0447dd75b0dacb1f0c65f23e312d27f2d716e5bdc5e8104daf8893400b344f4a490b85f440758c30e43e1b8e03a2044a16c8740c84a595b1bc031df8d3037c70ceff007f01782f380dbac96b8360cbaa6ab9a4e8a91214f9346ab73cc299c60923958c8e1c361efa4d79eed407a04a21721971c2ef9895962b720542c5884aca461754c4f61adce7c80eaa01f842c9214d4abbab60070cd8b354f882fd97a5f32ed452ca31ab7422e31b3b350e45b5b7ea4b4d0958ab9a97674d027e91cdeec31836294fdc0378a85f7865da49287e37e1fcbfe3557eabb71e0ce4d8524f87c1a887874b06eb1c36dc45c8a3d958fbafe636d7a714ffe202a57e6c2c010703d6bcaaa23c0f993cb7a2cf8bc15f7aa932e17edfe1b9f52ba367033a06c00ef5f253fab0a6b368d8e62b8d484750eec1a0169188c779fa75b8e55d3ccef3e12fc4cce9f4b9d09af9b7ec5fafa7e139753ad284f1abe91854e0d2c565dc1c204d36b2f24907a4b55cd4ef65f03a30645c92fe9755f9d298e46f30be68af1fb59a40dd6fa1dd879f512f232b5622de70c63c53579fcb3e784096589242ea1f2035d45ee3e13c23a42c1b139c412b6392d9571d652ef164418ddeacc006885b57eea27692933f6ae4c5176bfbea1aedeef027d24c3f1cfa8b543ef3b086969188be54c19bbfc68948d224e2021d3da38c25ff26e3081593cf2b045b1f315a8c2129952dfdddcbd3800a7eb9f0a2bcfa3bb831f6f5ea8267c52a59e45739eb58d0f235ae6ce2dd13bb95b243a2d877b3a0c3518cdef471aa77a1013a87af99633908e88f0e35d3122a3137303b76a9ded0d1d34b4e3860ef811f0a10690a0634d34cf87b3fd07a2b74a657519d72c48eaf1bc8f7781484eb0e2e0a786dfd1cca1b977024539009841e57f6e23c0cb645044fb864664011cf200bf694d151791c374de2c97b257c081fa46c2624ac02d39c0103df198092b6b0281901840cd0700cf2339056a2276885c577d5397d0b20d2e301cbdff9524cf9031a8663ef09a9d2338e3ef9e5a4f575783ccdc588a572d46424e4964d72422e149a12f787a456a968fe66931959153426782119ebf54e4d1734183fd593cd3d9b64f2de73f1b9abdab83f4dc5ab688ddf29480471b33b2842128ab47a4f0a6f181eab3af49c2f53804014c5ee2edba24279d1585a455e047e27c686a40b971116e8f1acc5df35890202844d697994982d35b89ffd26e68f20d77ee9ccf83a202d8bcb38c8cfc80f3e6c4b4fb55d0e18bd030628fa7052ba72397303a832f9d34d1d855ee533e2bb53c2876ee75dd00b311a284a317f57553e02127775b12e5e2baa9730927ae839b16a86dbde2be4693eadb53b9fbefda07ab9c23edd77417e69edbc41bee58e35f001daaf12da698c80f2962889bf655253a52356a5a13b6b922807eee61d7def7f36590b03a7c13772e7fb1c3e4e1c398f9d29db9589dc180388b1b9bfbdfa48112e11747755bceee70f3839253dca89ec77055569e392413a154b5f08fb4aced71f61630b5106d15ea3ebc2296e746c912c49f394bffeb5de917ecfb93b0b4bfbb8c9fe7d79f827fac3fcef6fe5604434127b037f17b55a0cc745f7376c11081ca926b1ddbbfc36345783fd1eb4f22878e395e9c2d2ea64fccf0b60a70e848becc785918bd5909d26e8fb75f614fc30a3a5eeaf9600dd7ab5d733aeeaabb07aab5b3f85cb20c23d80fcea0073ea54190f63cd25bb3000f4f44c9fae8a7e358bfec3c26e94fac797e0ca4587690f6d51e073eb54f6764ed4190218af7559f37fd3e12b99621bf81c6fa22f0d6d0b78dd85b1449769a8aa45e3d91444967406d950db33e77c4fffd148d7f7ccff5b691284e315e8ef636e40ca18f28f20cabbf2897a7c73a05da11b26595f7a7a092bc03514cf42b822094a0aa793fcf68da6fea01f5c3f3b2f523491261b03ce63e813507df5e8db4765ee5790f965fb35b08457eacefc9cea5909221864b9e8c8221f3b6ab79402c580aa1f6f4c49349cf7bda725c4f6e81742c91a0cb5381ef7a342fff32ed89ec5ba616e33009d6946c93f9239a3c62c7a2960dd0995adf1f157d67083c83c0d10783d45ab0eccc057cade2b180826315a25b398e7ea86b3d9710e727538b0e0159fd56cec57e9a28dccb759a2a8a8f4e98e7a3c3ac7dbd7a17cdb611464f4b7442194a53a11c9a2f7ef223243a970f46e248eb1d7ae251b70220b642aa97de6625ec7390ddc9de2fe7d53d39541460ae8cc2d285e207c71c961c96415440e0545dd791a3f618f4b0b1d9f943a3ef84c8da2ea9090238f3b668e2b0b2e0dce571b592b21ecba3a31f0a5fcb8c5207bd5dc23129689b56b990df53f7ff2d6d30f9ee06d7a12114c1293463e57514a6868e6f3b3d0395f1bc79b61c6f83df212c7d3cf8e3a41fbc3e07036e02b09d0f07cabf5a51c579e1573b7e08fbb7dc307468c9802ebdd2be0c3b62d0cb2d271d27d1c6df1c6ff57973ad19a967f1d0b9cc36315b2d09aac88464ce327a2ceee9f60049ce0dd75c4a27ce404df681a9bac48805fd1874fb576450d9738921b48f2a404420c0de236e3fb9ff46e0001b14f218488184327e959796a9d699be3ef3c1d365d82a46656d0c1f34828c9a1c9ef9c5f5623930cdbc56b87681d885d4a02d0f8ee46c0f60ad1ea4136b71f0694cd5587607e026ea1458e00f4c899ac5b8824c57d063d9f670cf65a424dd1300630a6b2e193fbcb878181d56de8b92e1eb8fd9894776722d69b9b9430f1e94a4bac1d4f1b11b56816f7c2bbf1ef60efd87e58ea4683ce8b0d58220209fc56d5d15f456875504496ed54baed5f01dcb739422965ae7ef834b359b4ebd82ffe5f5821cca2dbc90a612144afdb643aca29ffe187d12ffcd767286ce1f731937027bd522f6136de036e0eaec8c927093c863d69a136635d574bb17d044ed398559c425705cde286218b0c7f34d2fe9020aa49a02baa5ec881f5fe81e7caa48a072e5675fa928242e183eaf614a6836b281ca95c8b652c6a4edbd98e5317f9e48beba0f7c36fb117d14abb59b33a9461d91444ab7e1a2d5e92fd8eab774133f6b8363c540035afe05a2fa06ae8b750c8c4e02ef907302a26feed4d24f4762df74bfc12948ceb9f84cbc947ff991e16cffd7f9fb371190f9229d7c17ac793b3c8f12fdaa2185808e2c80c5d4cb21167e5d24a3c6ac399d935c11bf82325ec2c0c24c02693c158b1524cf3c4da43fd21577fd7c2e72163183b9b52fa2b7e1ee7c3616fe299ac4acc634418f092728e7a7c0c686592b4e87799fb481178ec70c6c087ae55e3c9d28a857fab5dc0052bb74d895c68084e18cd816b50f79ff0c3a0b78d0ee377d223648d6cf8ab43dfac70734ebc4ccb84a6495e4d059c2d0c1ed3f5da214c9c67b844710a94e92d38018068f0a0f424710e6ea0d9e7f54b4f56c8e25a5963e5a7cb1b3772e26136411d14cf58bb7bda8bb1bdc2f81c986cbb452a0d1db77211974d431cea89a8876d2a75f823fd10119adc286540120c7996f101bad3effab8281f4f8ec6915a1ac1b632730e7f7d1c495cf453081924a0b9568c6ba08382e57318d9ca13769a0b30164004f9bc51fef79e8a3f094d14d7197f3020fef7182939411a769f84828f4dc1a1981e75d47dffce71d0727b5e5950f9c909213bf91b69965041751cc90424e8c2053cfe45baa605bb599c1b55f493323a5e77977e88262603ca7f9f0d011abd344ccf2038429140653839d72320b5f9c526b22b65aae834f7dd74e14f7eaa89d818ffc6766afe160f90d8b2d7eb004ed3d8db4d9b8319874763f0d7d312b96ab3e685c40a64ed112c7d0634c1d2aeb53a5f7ce05942a568202fd31d2664a6c533e5c12c66fc3997dc95b78d944cc4dddb641a9a012815f23a23ab4a05e2c8efedb9cf7b014520b319f9b5702b5b913f03626b0d5d4c35c72c61a2ad7793e13ab9af183bbb82c3876ea1e619a79540ac176782a15e9eb8c81ebd1724cfb63166b037687290e323ec693a7ce973ad6c7de9a51c291d0fad8d582f92e35e0f29de3d3c4b13f22177e50dcb144921c729da6313003c193a4a6e5ad6527b0484358cd7cea08c5394ebc7740db844a31a2cacc19047be0e677199ec807c23c70939677f0b8a38abd3c20512a5390217882f5d8b860316d5e362ee2c3a74b3d3642a642c15614de3692462974bf639d6e5bc6a5814f95abb34e2004507e2c7c36a2e6249023f1165cd2a3feba3e79e930be66e4ca7cd72119abd54dd7f914a571e7bf27cb4bd30c2d644402817268512ad48e98f5b8e31c9f45a17b4838cfc885f1ede8bba5f39d1fb88f1b20bb4fc955c4bd99e307d228a834893db1ffa8d976f46718e6b147295c5714658c0f2d670e503411beb8b49b6d2161b8a83f593007428cffb5d8a1150aee8aade61af0e56f094b010c401e0a945a76058a65db0aa0b51df47e3fe14caca22ef8de89da2047c5c7bd18ce96d2cff43eb07e0dfa06ca840ee6c9ceaeba8d4c41fae6b1b69b922ae86caadb7e9099ab793a59da29a835760ad6f3439ed03d5b12a034fc87fd9281f189082789a9f27370993f7ee4d953c1305a1c68cb031d81278794be9b8e6b24386552db0bc339f39bb3253eeb657e18741c64c6344df97236820c6c4cbe5233bba225dce54a0f4cbae6177ab77bb09fa5597b7b26abba4e77174e475c9f526ea3b9946f9aec49f387835504e731cfd1456380f8009d1f7b7703f900886699562e756dc0921dfb7ead4e3b51a1fe8196d41f2ed388a88912fdb2adebd4ee59f9d076cff2299483a12100fec9c93e9b0a80885afdb5d7d92abbc7efaf29343c06a8b012c545ccb7c232c534cc52b210bdbf2ac5fda9365d8c8f9ad8a9f3dc5d139de9fdf6c28414e9a7bf33202cfd8362a0a735040e56c9a9c2b5995af6abe230033e4df1e94003e5ec8136f016285b414236eaf29acd48eb4a57cf97e50a152ecf9e886775c52ef009945a8a201e69d8521f56b7f6b2979e64f1a262168a1632fa4d2aee71a1e7323bf56977a43126821840308c6325301ee8abbd90655a208a0f6315bf62a098e1589575b07d937816fd8bd1fef6c58601a8e00ab16ed353cf604b5c26a5584be4e4d83ffd7dde0ccd6286e3d12f385768c99d4ad650ed1ac6dd445751019f3c3a7f1777c5598d3ee2f4c95e17cba700b3782674318ac7189917e30a7ab40f818bb61ec0def58090c09384d91baa3ff2399572e8a5e623aa51898fdea80589b99aa6ae90216c7cb5b072f625fd73b127d6eeaa74c118e7f5afd904a386a3aed7889afcd9ce2aa92852fbf740065fb2b54c78ae24c2579d8dc46cd1e8f89e68f21cf53083104a12565e916f902a377c66ef618fe59348f39ded45daa682d35f2a82f5e7b31e922953785fdc713a484b66046816f8ef8a3caf19edd630a3f3859e2d8bb2eed3b340270becd018ab4be1ffc6c03c33087feef571c4d27dad3c8b70de4f95fbb9e410a4785371bd0bdb036913feb016683b2233cefdacbed10a69d9e9ea88a2d96636ce1aabf81a8231fa9e0fe754adf5351825942998445323da4d4595fa35d783b1d5d93e323ee837135363c6c03f3cd6b087e42a9fb72490ddb2003249ed252a669e581102a465f01fe7d0e9bed66a02f1a437371b9d645536a222734a0f5caa9cd8f944dda79d57f4794118cc8db0bb8575cb693d2e741eeabe18cfc8ecf10980a93fda4c42cdbaea0396939db5e0093b51855d877ea23dc7192e9ffdaaf5ffa2e3477e6e1772535e83cfd398c688c9852f293252f2a5fed9a5b99b1ade7df777cf66fa73d554b2323960895823e26af777085c4a055e59f6bcf60ec5f3e462d583223422e310254bf5b79c2aab4953ce628a9fec60978734b4b983966d174279ce1093545e73ca12735dd1921c275e67e92fa40f43ccdd6d80726999eb7efd84ac5910766a4b7bf4c5266bc6476eedc346f59c58341b8cc26a2f23cf06549efa52e0290bcf8506e2d562b4311124150a08339ec40eee9915d5913bacfb60fc42c7547128e6ad80d2eb058cf24391b004ad605b22540b848d0ee7039a247fb0a907b075f7da2d903c4e2b335a340d9ba1d85a3196d40b621638d7b87544597adfc3dc533438e8b09ded7d6972328ad973110f9418a56e5dde385c630ea13c4f77a58e51b3c60463f7205a8872cc4d3d2f12af30f365c591dac2f210a8ed02776c288a83d8bb0a1a4f72bab44be17eeb30aacd5746d9b2223f6737aa7e055ff39703dfa61d38a28a2e7b41701f837340f42d078d86c9b57109bb61a33b7616ed3a21d702901597a621d1f2c9c3a9e8b89d77176cfa3ffae2778b4ffe80daf10978279c5f5206f72f39026d2f44b58de670777f6d3e0bab8d8c22129a61046e5dda90d5db1903654d8ca1b6675fc08df859541c77c1957d89909b2f98e8f7771dcb54c1b1ae09fcf2b263f09007c3000c661c528f470c72488e470ab491b5bd631d2089ca702b5b44484b7e12e2846e4b4805ac7b67d40191d42120c5cdd45d0b831dd654d0ebb44d71e57955cd5fcddfd53c148e0d53363a755414497feeff29144ee571d3eefb9250967fbd54d2a6d888490566fa0262c0caccb4be81d79fbacf719e7293f786fd8ff528cc3be24b7cfffa56f53fdb7526ecdf6dcf20ab95cf11806f0cbe36c6a1db3ac691f84e43e47cea88aac6052d5d3cffddc09ca5a40820b0ee6315e9e3af65ba288e35945b65658bac3cc9e58896dc7c7b6caace1a19a41185c9ef456aa3627190ec53bc0a06c5cb5037596e578134607e07f2734be128b5a38ab3bd486f8ca20e96e2020631c844110fd8c8bd656d4a80599073eefd9e6445486188d2f4a082efed2a473be543fbaa397f4b0181f96a849c97562eb7d8ebbed90a84908ddef4fc2ba64e96df29b0b87ed9bf08cc09845925893b6fe810f11fe1536300d18c57ac3084d73b9e17c1787846f94f8d15ff871fe09018d1615da6dcf72b9b087360895f267b24a8c9983e0679bb47b458113e1c899febbd4b5506af4205bdf560097084a3604137a2af7144faf05b0152f0ebef64e5b02133c1884e965648a6a48c670846bf943e291c3c78a5311a6b4416825ec53f4603e0654289ea351e16957130c30e31e8c886b34a3f2a993206b7968362f6e5579eff8ce5924626c6440ba9d7862dd50ad809ba403e8bed4cf3f6825e6fb3334eb3a13df05e4826df37e4b9e01a8a42c13fa423c17aa015ec7a8f5ebcebac433a4ab80439a0a20e341c80fdd8bc3f4ad1726c642f8896dfd98cd5a3bc44065acb9b9d4d1ca599408d5845ec65641b8ad3db1cd189b06c17d54d61584b67da1e976a8d4acc2d88a499ee1c7a20f920cfb426918fff4c75ed7b3b8db10521b5a83e56276d85c85bf888f7f282cf60064811d34f172494d8acacb3f8c85ee617573a99ef6ea935146e31633847d3ccb787d382fa41e23d13c2d6590561f6bff47c5631cfe902d44a9ada6164f8d3f5d157c1bbdeeb907f7411f6e95bb953ad36db2aaa9180b31ba5b2070a6e550505275be03d6824cb0c9f9d32866673769f38eb16a066978ebc631cdbdc545791c24080dca3abeeedfb0b7e5e71d486ef494cf98c99629ce20ad64aedc496edfb40d643dabddd915da78425cc751a46746d370fb603fddff203e4edb00cbaca91a559c35efad779f4e6aaf836eded721debb0aeb8f693fda3598670be92c94034de6a9f373c97a73d477134b87bc962c4e3e45b2ce5e5d31ca349c7a033d02d140d60ae8cafc1b15c36a02402156e333063f5f78381970d5e06d08efdf961f82d33c67e858b1a55c57852aa5bd05d0f059b76eb78f3b039126d4f7a32270f9c982adba92c310c95249a771216655f82a77df120c1ee1c74189d1212c28ff5c5f95110f67ac3266c1d79543c77e6ffdd859d61cf995b2d9e8b5bf4c129183001b1628e49b427990cbb7eff0f527b0bae7991b814f10816274817e937fb5760f38bcbae6c8058bbb0ba8ce444c75a163d33c35a60384f6f6432767412538a2ba915927e9c691988fb0e304378e84cf928e178a0ad29a2b47abf8631df06fcbaf2d22c43edaa631ce93e2faf93374b4e07861f578e09cfc6d582454d6924193bd0fd00f17c78583a4f821e90833ca2f419ae573e05300c6831c29c08589c145dee912eb5752b20c8edbd3da23dab228e13770a8b30e20dc33152023a1d32e6d732bc1d6ce0fbe0510fc1867417d48503ec1bd967c4c60be28b3d5ecc330b04e158ffd0294732e382b9667cea6c5826ffc4768d6d557f0137bef8f23aae77ceb89d9f57b327fb0bad6d7cfdbc965d9371de2ace2f73307c145924961815ce1d1f7d27dc0436461349799018f530b8510b9b683db19202f633d71fa78a9574c3d97d17b3cb6e5b3c6fd609a074b1c953c6947d55ecc8e5172f06efd6ca7f7118300e137eebf90fe45f9c2b086e4e0a4e5bc1a2ca4d55223908ff3303a5151de571701cf0fadcc4eaf9ffe5eaea347913caa6baf533fc7f1ba3ae3f1cfea8ce066eb7b1ffc37d99db45e49667430f6d92d79ff1cf74310e3248ee7a4c4a0a9f39fad2dc5bc4f47bb5ebfa1b77aadb7edf88307253d812d7b7222caa5d13479a5570ac88c9b12f0166bb74d836a21289f9a96a9fa99d32077bc3a3cda676b8fa1f2d53ada6efe32e592742901f821df5964862876bf23154889d26a0a3a461478a123925311a51a1fcc4e33a17f71cd15939b27f5d7c2bacd18a74f6b4649e6fda037f3d577fd3b6b7cdca2f4f7fff673d92101e7bd3ed77824424816f90213ec06a5153c8a246aba5a0494eeaeee755ed30f3fedc0606faf2ee1bb34c9343bdcdb45410b4ba37cd513e140379ede352fb31440cfe139a94138999ce87f2a06621d321182730e836d1cf504d7376f22d967826362a701300b880cb5a6fc0083852bad2383c2420b5d81c3825fb5a5ab2792dcacf6c8599bc611df9837927bb07d7e49e7069e8d0c5d81446e65bbb50714c3a5102292f5c4808113b28f8e6f7b133ce875a088287d8bc47fa9eed92efa985cfc307a33faee4e4f0c3925fcedcf92f7915d4d92eaf3aa66e28683d2a7cc942de142025f9eff376b2b827b14494373de922eeacdaa359dee1d8259ea3fd3d299f36721796493acd349982c1c3d32df9a8ba7a81a99444471fb9538f7023958e0e3f4b56c2358b9fb538c9bf57aaa06d4303ca76713698c44a1cbfb9d97b21a6689c6d4e1edcadeb5946359a229f8745cc3b68973d463e72a88b509c7afa9f60b25962ebbf3b8297a965169ada1ff5b156c8ee1acbdbaa0123e74665c2ce97ff3273fe2fad25b11111d7ced7493f0d227d4e3a070e8c8141ca1586de758a6e1bf43a8e656507710961b08cf5ccc3a542dbe19732ad5bcca64e46dbc52b986a0046cd582a5885291d4da5c1e5d58569f39440bb8883812eaa86bf5864ce011ed43c956d4c6ae5ffceed5f9b606a1e9900cb1f901c1df9bceeeb402bba2087f3e92de1ed49734996253e69fe11a3e5c2792a8838013fe566731cf38a1e3304d80a33874484c1b9871e9ea1c5772f410c6f5f42ca1c5fc217835ce8a9c5ef273a39af99fdaf94ff6a7f544948ded042e6b799539d272869fdb20f2dc2388f7adaa7c42b30cfa14f66a1069968e7da9647270f8a3dd3f9e09b014168a56e24b4252fd725ac1090c49d8a40eaac8eb8c2c53a791951a4640299141f0c70dd1063138a152a5e427ea90608f46f25ab67b327e395470663afe969a67b1642908de2c208ed889b217c946981f57e2086f99b4b7ea328da2556394c704c611f0624a15034924548b80e519df07a66ef3b14247a7bea6bcae2872c35402c83596136b79d147a2a0922ac9a44bca2d83d4271e6806c31384423a479a075d83f253977cd0366e1edf38844a79835eae2bd9d5d3f2e77461862efc50469d3b4883d316d532f1247666fe5b6810a20b8762a073b6b08347bf74a4533621570440db655f5059aaceece35115734c5f8d481e27dfff45908242ec479ee284291b45b5f1bbfc55f885d1cab096fc35aabe9969e8cb474edf21a9e48af2815146a51915ecfcdbd673adf60f9d1bbf72500092603d3f89d12943bdf3629c8fadb070e9bda32f8d91b000541a541ebf82a582645113d7b9ec6f2e77be8a0e98756330006e1f96b8d289020788c3025b880399a08b8af84cc1922853dc4ea58d731b0e25fe4e626e9fe4fc86c80dd802a8dc6a06b08d86ba52c73fc889d2919d3c20f922776467c0213c658d5ee208a539e79d8c8cd38201c5e513acbf286e266143f924d1ea195a910666f6c4af9c31faa65c7e28c88a337853fb1f5dce69e82ba1388447293ed6f808170b52543200f3fcc557c2bf08a0150aed50ac256ebec125ebea1cdded3fe963c03d131fb88afef0f4d81c2c07ec4218d9fba1c069ce5dd72a34d4eefebbd28e49261933c5ae7c2e9e0be5cc5bd9a0a880d0feb70399858b14844f645adc9fbe6cd7f3f4ae60f734f222ca46b9a4cb2de9f2896037a5e4346e3e51470e339f20126bf5256efdf85a78cc2bf9cf97e50a1dc0a65e8d0d27d4f4fd759772fb8c6e356429466302687bf78e6e345d4310ceacb78ccdedcb2228f8b723300836655aad6df96a9d353f077a85f573eb88e5c5a7ae12df5f6914d1037c75a9ea615ab2067562accfbd68640c0e1ee6e480745bd7b5cd7bda75bf47a1a2baf41b6cb54928b910e633c453b4fc72441ddb9c3863062b656202fa67e579e5ac3ffa19aa95d09fe1a491d56d3f2aa8d1583556121a0488d713800d5042e5229bee8aac6082c6cee4be69dade881b966cfa8f800bdb04b7d54cc400b614067c27008ea3c46dc850f68b0ab76062e28a8d7cf96a5d76e0c5dcbc34bee7b993479c42ecd59bfb8e5ec2fdaadcdef7190504718b3e2cf392f8a94b230387f4fb329e29c91ffd18764854912fafa58e96b4d5473e9da266bde4521f82f1ad8210129b53ecafcaf629def5967607d9d1f9bf342e2668e932b4721552f416f330fe1c5abaae1c2c8036f0effe29fe43c4ae307de776b79c1c0197a16a990bedd1a3a59d7bb906c436b7d559b31eb7b28f36c57b7d0ce82d45f0b07c274fa0d313c95e6cd3c6714434daf9d25b96ec42b4e42e0b23c793a0c3a5674d3099284fa5da04cefc34b7befbaaf096fd5c3bff953d5899ee2e867200a351055fe1fdd0167ad05f093f2fe7bdc6dfa908c7d0aa9c4796dd8bcafe830e26c87e8559ca81c803378cb0d68e0a65f9c1375f29ec6a8e2e6ae456cf2de625bbfb17addb660772f4cd77f038cda6a733250a99e2056780eb8e41b85ec2f8591766ef4b7514afe6b369335059308ddc6ec26f20b70e5ab6af0103f2768525686df907ab80428107fd259b494851c7106c8be4c75edc507577129366a4b6d45a1ccdc0e6798bce46528a74705bbe51dc0883353c86e98bce08430f86208c6c8011113a4948c1d5167e1e574b067271c6c36ea3491b9470e3d54dd13502a7fa343070ef73394d5d3bdcc1f25120cbf39959af5b4580dd3ef0273d4f3c6cea6b4250ceebec416d71289593e2451021bfbc0c68ae0c899e85d1f547041932695293d015606ffab3e35b521db17b3f40005c58b856f110250826fce19a857f79a2d80cab7bf94a4e5c2295ca04f7d61a488ac01fd0071e124ea829f307be51b0071fcd2b0e6cf83c4f35c693911ce1e0dac2d03e8a57c43e15847e78300af0152217f8476c08b7d25995b4ad3410cd2cd28f4b0d16bbb27380247a95a61ae28022d4dd3520d88ffa60a71252d8fa5780a9bb3ec9dd96f03c034b14d0c8499a754ec4bb3303d5d260ec1ddc4387af5e1ce3a09dd5d90f5406dbf9c21295041a89e89239d38f96845e98876164be5592fb5f9b16e3482edb9dc9bd2d3321f89e8d4c2f50f7d94e263027799acdc07ac5bdc3e7fcf4a718f406ea7f6f8e45b79396ade3c0ab735e7baa108a13cdae98eb12ebbc1f2d4a8db1a2f7513890d928e017eed479212ccb53aa019e12285c8464ff80f97102622147d94826561f5708cb95ab592320b2183034a9a44dae30617a9cd41a423d587d8190659c1c05882ca6e44dae875589946ef102fd687c28b7608c2314c69f1c87c8c386617cbef9726429725dd6eea76a0050f24d97043afc406ee965ee7462eb6ec57956709873187ec35019f31f6ad8207595e9b7dff198b13463291e4b223874202f3ede7a75d1e344882a157129f95e52035d4beb637c3f4c036d2698827660912e67036d1d66b78499dd87f63486a48a85c37e4901f083ece1fa8c80492f8b338c760a83f5f532b675d8ac7d8bf6b08034ddec6ed1318df1c706012d4265e2469e1e756469d7a502f39d35778082ab6a9ce4ddec5fb8a96b112c49fa5a2f6351225213d37fa87038fde05d6bb940813dc9628ca9a772d764d58658ad0b6be3229186bbcdb45caf0201000f3fc079397d31d13cbf773026724cb60330825de5d04cd33177d2047dacb6d67ddf108bbebc518e849825b87a5e35297bb20edc46905eaa9f77c6d2c16b14282cb39370a6fb741204d9a4a793f0863fd8be3be41ff130c76e87d50270d6bb20976f99563b51d573b058be60399852d98cdf321503ce80dffda1b7731be9bdfe39a87fd4704527d0b434bbaf4eabb1327f1c205f93125fec2a134b1fb39cbe52d792966b1d6d36bffffcd3a48bfbecf442a95ab846243cefd75c0193b2596c05e57df1d815a5b10ebd1e2d42776eb0f01ef951c69484b042e733a52c43a2c7a95ff403b2df3bb915977a6a63ac4cf7e907afc9dd4cf5ff9061999928ec81e3b563c6adfd1b696dc265583c6fc306071b64c40d56fd8186f07ced68f6e2f7f151361f7180bf0dc23faf0c139ab957eb5f8a75d8ef7b8ad853a580a7b97654da5dec2117a049e22ff3d72a9fc34a4d03a83132a569ab8ef5ca0630f9bb67336e08f398cb3fbf4c0105e2a30be8b60e68fded9b85a9a9314ea5a01bf42ccf8a2ae6fa20fc70bd7c85d65093c31a1a0b06d418bcf4390fa50cc0225b825bba41528425f57a27662c5c193257315589047cb527a6af5cf13432a7727b84de5bed98c1ed47d35cb654e2824399c59b2300134a73e516edcf62ce212438332149f015712ec585636e16a7648238ff98fd3d7592133bb348c2fff9670195db65735b5fcfc92e602058dc34d5365b57964a2201ea3f603037c3f3364ce2f11097e81d03d6b39c9d4de54a51323a61a226317928a29eb6fa6b11b7642b16a8bb34419d2167a55d4b787d5d3e5242e0d5bc4829a7483ba0042ddab22679f99004e69a719b3f2e0a83508e22b67b16d4ecdf08806c54fce59677b4c8c28a8eaa6a24e6876f8e1d661e8f301168e1874d327919ef79dd5d5b4b7364f1931f773fe3e01ad0586e7b950e625eec8de6c7a15adbb922ad99543e6fe4b782d0be0aaa9b5045d6140590dca38b3175cbb0158f2e9ba038e982ace71fa5f7fe44fa6edd51279711ec521dd01b0031faab39b0e1d3833e428e326f3ae3e2a929c02c6fc3345d6779b5ff134f8a5f95b03ff843c1eeebefd50882d70fdeb94d150e3a67a807db1111f59f2a57582d158b08913a9e45e736a31c363c8092675d1c3c1746f9cc6be7346beb2c41712ea534440b1c0e50a231aa158b9c2217fcc1a7a1b4ec8355887e7c3f35eab6d02f7bfbf82220ecea49b5149293dea98c997a9848e19d6ff651b4c6db4b976241537c382e999c6c1cb90261c72da0f3d018c6f1beb19cb7b6d5c939a5277c743dc27b90fc6233d2d9d5e061b3568c3da3ec6cf07eec74051445b41d456c3437a11d9b19d09176e2580512f6d84e9dfd1e75f24dfed8fb23669abf1d1d5c0127ada71ec7a7b847658ccaa36c6a93afcb98b0c390d05d1006a597bcfc817c763658cb2613f6910198e2e2c821c642cfa162263cfae82e2efb8ecb71d0a6bf5e64ac03d3bcf3a3e3cb8ec8dceafb53b7d1d9a381b3cacf3a619fa7eb2f13b7a50b2ca3b582d94f868936be6ab5ffca96b87ee7d44031a5132d3c6ab7524cc92da38e87bcc1def0b4ed797b3fb514eb66f782f68e97238fa03360256e71e23dac33db18e5c98d65c3ef714e977e9541e797234459a34b8786de44fb2971312f7c99ea675040b2edeae7253202b0c20da3c5ae8435a17f79a29aba2e1ab19651ab484e96b716c2eafb9b5f0c9f5b9ab3baf8b61a324caab09d1e9e9e25dab9b07cc3f70fc881e03549d89020a09f311388dfe373063665eb0678bd3087c74c2935d344a12dda030af3c1530bb6feea2a5d57acbb378ca7797ce8ea40be770489f3ad7c4ef3d132f3d9c6dbaee83a05da74add6bfd37c4f11d501f6a0d165be99037ba83012588e21667b6d62175918253f36b95796a0bf277163d05ad916a0741aea8dd524827db6a6cd2fb4ac7033be09c3ab3df4d0cdaf6b3f5d29276620e16fbd310010c2087701ca405d4d26a8e46549f195b108295e69a2cf3b7f7efb9cb0010206b0d6cc0530dde4f9041312059edb62ab859e131bba3f36f07da585900a21f6b049961603a7b632ac093cf6fc180f9d68abf9208e18a73c7def7796a2c4a1154a03316c350c238493d9d329533e6deebf750fd05c170649a61be15261a64ab83c5119164bde50312fe0672b36d3f93e2c60b61d7715816818aae72d74be3e89e179ecd01770a1de937cad69b456fbb20a66781091eab094961df491901bb857f2ef88de73bfc2ee08ab8315b1c9c49dd17cb1f625eb5171dc5790552b4669b414273fd5854a86768cbf481ab8cb2611b521346fea6252b5ac73b4f09fb604db8eb1423385da038ea3075eb830edf4d6d781261ff6c918812aaf5eef0acab851bd916245a139ba764ea88fd4097178371fa0a2bd1d9f0a681330ef9ba164cc100bf695631fbf32e765c4b491ff391b53b8e356652b81e98f22dfe4c17c7ccecf0fd2e23b7cb252e7196334802b248fd1b3240676ac75b01db99d5637235b7502d6d3cb9bfb655ea5dde8692c1067b0a76ddcb6fd5c4cca32c4eb36e4f1b208e757b9e8f2104c71e0c8ee26576e52d6a9a0cead83152f9741f814ec557da1cabe05e13b85af8671d96ddb47b8302a5dad31fa70d984d4d47f6f96fa479b2422f1b5d8d019eaa427ff7a1c22f5111efaf1a9a7d5547569a02807a743cb0dc32509c4db2ea71410b659978a2f6f7c65a4820a8de6e31fd926c5745d00f4fd80b2ea4575e644b089747f652402453b2f990a4fcaff96e904f81238487a1ea59f21f15961f64cef36158b7d75c0236f0229a47fbc7b1e687cc5b5ab7b373385492107abbb8469e750772ed980a37bd1ff13b495f7379b15869ae48470156808497eacb089f02e8f3cb9847b1307bf6bfc6cae807f53305dc6bcb5fc4340479c53215c8e97e2a10d4120b69f40ba1584dc3db56580070b085793d0c63a114aa2c9800ea51b5bf2ecbe8e1c080aaeac50a4f196ba53ee2705d20f096c5b236ad9f83c25985d6d442127b41852b71b0125f9527907fcaafae0d50e8d23464c1e81fafc261512800482f9c19b4f198574a1506999743b6886661de8c99fec8919d845e773dd8269e973f41763b53aa982c9bd3f2674187924c3a007f57cf853962bcd53153fcfde33f130560ab3f07169d8e73c1b6f3b422725fd4022c82547d65f8ddfa2a2711c23af4a74c13066242ff8723bd40382a49f883d9f75c1183231255427fb4a07896aea7871fed8b4397b81461fe3134cb2a998c736121077312eeac570caeeb7dafa2122cba37e9851b53427142b094ea2b126a6b7f040d1abfce43719c3ea41f9ed1eec01c236ad939faefd83fb927d0eab8d56d7663fe82ebbce168f3142e8f5883279216f0e042e74b59e30ac75d3b0ac5dc8988c73048b521c619cb9d17b62c99c99386e5249719b8f2218aec20dacb186eb3dd1e7b1ef41695e60f2378ac8235edda2b7d95058ee8bce5fa5b92d27a920d43dc15e349e8f401342de6b6426fa9a220062a7b8adfeaa9c58589ab3ca63067761113be23397783eb698719791692b745465a297bed168c1ee35b74a42b93bbeba997819a4313cffa544c3009de4f1cc9ce96d7ff91eb4b8d0f1d7c8c11a306267a0675afb85932d14117b7db6f41cd5344e24191a85bcf77101d87e7316b50109713f5f98b7d22e6d421ca8f8c6c662eaeb9428264451282c838ef9eb46bcf757e5eff20325a8331a0cc5df7ad7ef3c7a658c374f70d6d1adcb6090e5af26285cff84a622f9338afcf15c19a794f21301c2391e0879bebeda52c01889541735393db4811f6a68ce2e5889232034fb1a0a056e1917727e46f3b5df6d077907459158d0512150fdb4f88b9f72edf89f2f14a658e27faa2b2578144e79f692d21f24b790b5fb6c7b3ff5b9b1731052d0f21279c6496fba79a2050c0cf21b64dfedfd0be13866dd85ffef148d09182b330d136f725a456305789a889b378e553e6c36972892956b847e0c30b61d9fc27d8c90145476e5b8dcc15f86fc537e79622a7209ba17c82a73d3740b7494704244b72b6fbcae3a559a68c6d08ace70cf41576ec6810cab957171ee7a8f04f3677a15ada610847445f68785d43f885d4b59882e96732f1867e53b176ffb81630a0d2b48aec9fb22dac9ea9b6993e028399edfd21b2d6e1962ac19227db12f750811dd54cf5578f084f66b286c4e7c28efda681e661b52067f63f66f9b8b7024dfb47b86e291f1d41767d698e30ba1eda82ea89b6c603494472b9560f3bb5788f577f7bf754fcf16feb666be69f51e2bdaa40f5b81e8688985f658f1cf020506dac15e0276b45721025f295b3ab36cfe33b858ac4d6f4208a9743c2e0eb4fb627a5f3cd8aee115c8768a68ceb170c1af1779c70f89289e5e9b677a4b4423586be5759cc951a7f3e79b62436292b54eb006c48b2e4810ec271e9db6f26ba1ad59212748cd97006fc707b913f917ca4dfeee5d8c242bcd835536eb160a6403f69d94b625ec28bd94dd63e7c96c6e9ba8771d877f23db3acce15b0ce3743fe063cdd1c7ab9e858f03d34ca88edeea6cae7043883fb4befa9b4c5090cba761051fd11f309b6f11c39adcf82523cc79a84f8a49abc7a95a1011f7293f9320243378ef6605694ffe223ce8def9f3ec878d2265824166eeec969dffb8f19ebda57f487c7384b35b23995aa2aa501f25a4bf8d2898a8bbc5ef3f4d33356f4b926b0edb2015b31a0b75f269bbf12651b1d60d4d13438c5ab3ac9347349cf5b6e4868e58db4e2bd7dec417bd299e8f8c135c841ebdddc3a68cb06544889e41d65fc382acba499fa9c0ced60d16013feaeb9de355d5ef029838783226e6b7636fa84af32d33ededa6ef35459f18c85c5f21f870d577ef5fb71db5de418f2b64a10e78e713f5965cb8a6c9333dd2d492860c615a37f5f85a7088286130c5801d989366c595fc7812e2a9400521501943c0e8614326db76d2e056d2e29230f8911d1f2d775b4bbdb81abc7c6496dd8d7e7d95755c22dda6b9a893dd9f2cb0e7abd5473a63875fac1dd1126d4998b500933df0805d0c0944ec1984c16ed857264f30464299a0ddc7e9980a04b516cd796f303ffaf2a9ad788a89943229c67680d99d4516cf39a1f5b23c49ad79fdf02ca706c0d6b9125317f97d944f3e09a6fffdb3f47c689708d3886ca1b807408378d2a065992663d181ac708a471d7dde673dbc178521b9469eea9258ee681df9ccfcbff4cd0f1b3066724ba2edfe000eb6fb75d01225c42b6d1168a100939af6801a04b9f5e0bcb6352cbe704af1b6a852e1a16af38bc684613e85456ef8d977062982165b3b7bd3ec4b56b0150b0942a321a75dfa6fe28a0dda30018e3a30c131d0b7d370c2f37d9a99a87b2ab088c889704096c52225aaf5ce3b21316d1556d67db9c678908d901b61f5ee25b3e73a58338e3a640dd07481910af9dd7c30ee224a78243cbc4b83ee24f79afd8c9ff4dc7bd16677373ef7852ffe1c0bbf5a6efc1eb776a43c0dbc7fabf433521c3fad311aa3d25ab0204ae3edf56ef5503e05644d18531aca9c151bfe98ec4a0d2c11c4db9f527a074eda25ebdc14269f15691c96ffc1758f5daa7620d0dac5247c5fffcb65ec0842984254ce8f84cb0e2f197edf0ef4b4b6a09177358d89066a50df5bb779e96e21458a8ae9274789e4372f9d3e3b53e51d229a87528eb56e766b3132f2b5e0625772ca53f68d4f8bcfbed40cd776849800a842abefea699269662600bc04b8b629676cf08395a4b85c649acd2166961dd2d5d0e4e224eb4ee5fdf6b06ed963d37d9e116467a6c47db6fc1325206dadc1158680fc4fb8b5abdb97d41cc32755ec26ecb79951f14bf885265db044a2247658a4dafa6eee8c088bea7a554d4a0f4183fc8a75e3a81af5c219a63c9016d456d91288093d25755d1725aa43154d478bf371d749ce08401d0b59635bde02a8b25660c3f1d36aa070237a86fb17e5392fc274618721714da5159e5ae0d298bde61697bbe62441b22614d368eed6962e31649704636e1ca7a9dc0e7b63bcd082dcc04f0a0a87dc5b1137fbe59211ecae5cf3eff0bde1966b2bbba4fa5cbf4dcafe0b055e37f72287ff5198ecde1c959d7add40a84f17f48dd9167a5789b2787209a1b8d374358a996473708a5107f5eb6e6fcda597423f77520a4c55c59d04afdbf2feb2ef59c0f61777920caa4762f4efe9d6f1b6c779e35d33c5f81d49baedd0809b934c997074c8035e113a2c2a653698cfb5bee6d8ac4846075402278fdd68275b358e112a202aa4ae854da26a091c7a564a6e059adfa17c1df94d19bc7f0f38089e90ab2d235a5c1e7b9518a7d258763c63fd4cc1eb0c8c8cae0a60a5fa924ab60df8329f0f448aa24786014a3cb0263efb9a74a971d964d35049a825c8a46d6521613cf39967295f7cbeb91fb3b6d51e255d877f6cc683672c3109918cde8aee958fd4e4c2fca764f47503072961b625536ad5abc19d697ab7d8f15340f2d4ba83aa135ae9d6db02e70d7f47adf00f63262a6629141a3e85b335a4412172e0382c2c38d461fc48828afd298868c6c631997d92cbe046a10d1dcbf105aa8ca1061e5d70ae17afc50e88db59b91205eddddeb2667b1d6003db1100a3476684659a0d0ca15afb8f710ac45c96d98d8ff5103436fc77d9e889d72fa4aab15d372df92041f9ac46aa2a3c49d538f1b681ab8468d36c75707425ce0a083f3ac3e52c1f93e60a09885fecc161a4b61a0c593ab15dc5bb71a618c729b7cdc40f0f066508f353a9a87c85ff99d79f22d30074b691344d1cac410b03c975eea025d4320c88020bcc352b69c03e684f5a0d94ee332978f7deaf79056059ba6398db2d71762ee1493249d1d3696912ce17f2ac74fe32ac1b17f7902d21ac2c999a873dc100c6c2f458b6f31b779d6f710f5b9af32050b66dce5b44c9662fc28e3266661ebcf848eb753b431d068fdc26b28a179610caeb864df36ce85c98e37315016bcfd11311d89e9bea3edd0e5cd8932fcf31f6c3893d73c329df3618ef1ca2553fc8526652d0cbec01a4e3c7e1a1eb06e88e4230532d0e0fe577d7a68a23304b070256385e2e8d85290d8004f1bbd5c9a87b70423c6466e93851e7b5cfb1d23043b98bde86bb241f04c3535f0b15a25aa857f61d4d72e3a10861fe0fd793bcfeaf41a3d5b0ff93f7b60ebdb917d1914cbc6cc1410798f8c3813c23cb31e22ff416430009f03a3d6b6aa84aa72794550aebbf5c601487fd8ef50cdc93a73c211ac3fb95cea1a96eeca73fad069eb932e098e96278441ae55c06d5ba621e1271a120390ac623dfc5bc294ecab5fa202f714bdc55daf6367515ad38a9b4c587d191fd41aada5b3ac481030655ad384f0960dca8f4a452034a00ee7f4e5734590edc27685f44441849506fa2ac6556f49efb4f48b59449f8bd4535a0c42a0d84b87ad5195e3430fb6735e11e4cb0c63dfcfcf079c8358d13742430bc53ab59be631d88249a79b665fceb3678bd631044bfaa73529d865525a611b752784e458bc50ff03b951b93ae81b06bafa6f9268edb78a047059011c3bd7bfb0b1fd35510eff1fdfe0cdfc83fad539198bfe1036eda7474bad38f6074b463305a8d203c3236afd7254763a6a1a2697020e262111496bb53d3e87c522040a2308b7107fc084939fc701633c3f294c4a08a1084e5b59be2c8905421ece912e5c4e89f72c564966d0f27b163d495de3e4091ef2b6415b600981a7346ab36a4750ac32366101b7afa08c7d0f6f5d7871d7fc29cf8a1bdfe22f5b6f924186464397069345ca76a698e23395e7764a479bfd44242f8f18341c817cef4af49619ff69b21211e8b86bb2ad222e14ea12b4f0109d78769f3f2b8169d5ae100435002524665a298c7e3a87dcd26613daf7f481338f155528bdcb1b544e75c0a8e143d7ccb9e8ce60e940e38eb267ca4453a256677d098bab81d22d344409584c52e4c28637a73c5e8cf2b8a6e82b1f9e42bd6e173a88833e3017cffd1470f30d434e781cfce0bc56c23d984c29ee635021f12c8d30db540b5d300128bc03583d192a547ce73c3d6d54a52d6a9aabfe37d399e87a1dfe41cf1bf1c2327fef6ce5556cd5395d9d48997078232fc86ed324df58ed7257eaf05cde99a71eaae5a03ed811f90895078826f0a20c90a9545c5b59435d6da7d22617a3d656ef5b20a537f03117457bf42d34eecfb5c2b47d06159ef24148b1d1017a73e4232f63ff15f34050c86c21adf936aed856c1035d5ffedb019842eccc559332789b6c2ad5a14873188d9fbe94d274d2b9a3cd8817dab76ec2477f2b8e0883bb4081b5b4b4fe40b8ed4d274082558ae288a9e852e578550931cd89b6550701501e3721aa52889b1bf84aeb698b10e72124b959e2a672e0b075c8c9f166b6d55669f148744baf4ca699c0fa86e3934fb6965e2b8d2001d58678cf129751895d6ae26cc86a607bf850755708aaaff05a1e6b89aff38de0a56355a0177ef9c80bb72514c10f7e427ac67172e87df2b8f2f76597f5847fad3441b843f0f49e6ae4a9bba3595c9d5e62f6619017a6f115d91663e85713343a5a756cc59aa8694102ef20653a1dd21c71773d4231afb61421eb4effef78e02865bca8e8731d38c214c05f0a0f5f18581eba12aa798f8ddab13776f91c4c97949613e2a4c2b7b507d982140d0aebb232140b1d1256b7a20dc718a65201a4c2569f632f472d54f9c2a9b7f73461d32c29b265a8eed0b12260715ad68106ed61832bfb87cb40702e4bec374793cc0f504a8916ad8817557dd6121f58f755cd7d0a56d96660ede20a0da0c4a8d1092aa3b7e22d4da2fd82ae13e4d5c26a5e19840931c89c0e07251331d7e45f2c59fa3fb236c29da17779aeb07081193453d87d3b40475b2ec529ef6d3614f1d000741560b30266311fb36b66174ee2a0ad585123fb45c2a946c751a278418ca3c881e625be19bed2b557f09b8d782ad3a55482ff50ae7a0c07af3400e99cd89e7ff297ea6bdfb78d993c95bc5884b0bdbc2622531fbf27076ef66a49ecb6fb1a74759fd8075c7bca5375649455c2ae3d330ee2d3bd36b95c432fccdb76eef549fea6a53a8f1a815f0c740dd334270028948379d9724de82631107a11902fae20f52cade0364bd40c12ba0cc0f771995c279dd2fefb7f69fe4aad02c8d80147b537e35013e3b586ef5818e91c77a290987e83ae81082a9dda804061b700e796d42518eb7ab07cc0f3f37fa82cdfbf2ccceaf5b311bff0c86b2d821fa04e09de3123d9b7886cae15ef9e62ded92fefb72f03df192c37fd234a8c91193e1b3a131d1b4f44e01aa90bd837a3f5febad90d2f23f95fd5fe0640933d6da65b5440621dfa2abdf7704cf882401698e6a8632089eb82c77e942e9976c5fb2657fc76b5263222eea559fca4675f92553475b2ecadbe037e29eea756c10ca43deba8bb6462377b049d74735f36de90ec8770839a7a4120ac65f43486b0dd75301001ad63ac02aa66e19265626e2b5ed6573dd2bff0e27eda9f02705c3069e2375b463989f791fc32243bf2bfba59daf8b154cf026b4dbc5e4b6be64336c404bc56c77ccac4655737892ae737969ec99fcb7f26941ef86fc2dcf102c512677ac2ec6bf082ba020274c8cdd2a399d3b41f8c60953b6e984056334fc8906faccb0e232be8233272837bcbc6e6e2e3f759c487e8d1f0b0aa086305b05b382d5564b7169561e543c38e41df6caa6f3dacacec32e1c03a93ec0aab1e345f5b7b061c315b4a22527184ff2a534b7d09f5b866766f66fcce27e0362dc5721c5755c64e139f8026c9904ce670e69fe91bf68628dbf866aa2b11507d5c64f17ec004828516bf805f4e0533a528b5ddc6cd44a329a19d24a325ebc4343db3adde326a8aae0f3e29c2449f571c836e2b2ce2de417901a7b9e7a4400e8e1ae6999a3d9412e6e96e6ba5ebbb59e6147ee332d5fbb7cee549916809e7bf18c62017837a9bb3cee07bcd70b95adda4397a1489dec9fee99f7eea1bf28daf57934a811417d2e7797ddce89aede80e5de49901d4c3103684fc26586460af79658199a4815a1490e017baeaf7f37417e46e2ca0e2a4961fd093fc44c771d1fca844a6408ef26e71ebde38145873d4ab5b3a0e1bb02bbea08a795b68f32938db99229f8939115fb30ba9993c7621097dbe32dd5336ca98449bae9f541707bbfe94d13ba938a5a762630faf4c36b6d9c97c87405810f092b844f675ed875a6f0fc1ce683b413716ee7d952ec1339825ca282beff2ec61f34fe5f032e8b69f3dfe02dc3cd2233699ab98dffc2da01cf34133ec401cd11ca27e479efd53794b457e0298af70b6bbb8517b39b2b5717499f5b738fe832a6f0e6082a95c0d9ecd27853e62b40f8f14da7ce0ef3a93e1a0b02d5adfd20bb23197326a208049d4bef0d031fdd01c8e94b52d6e3ea5953a09a338315f404a1e4a8bd89078730fe274565c87a003f638820d473ed4e49cf78bd5e5c4982c0ba6e1b357d6033ebb2a777bee5e6dd074e4220413f730921e32255c0b1af231cd52f95c598936da7c858d2e8ca1769a5caf3166bc735c72a560841a03cf3fa6422346fcac1761d6d66363e40266cf00ed4c4bded4fcbae14e652b01294805e6d0fd7ee9c34ebf632148f94a5f6551d4569f184dce1000134becf0d05eecddd113738616332cff92078c5e64757f0d5f3c22427181bc8171611a00708971219459501a59373ea17f0a776d8b5c4f9822382576a1ab836e5c6b8baf64113915b52402f3a22d94d435fca483a2efcfa4e657d60b9a6cd9a7ded5a0c97b64bc3c3cacc67c78173fb03084bc70f14d109fed981c0d47c72843fd212020f974099b1d5bb094111b62ec68a07515e55af838697242b102246df3b4662185f2354ff7794f78f3d204d37c0e1ef06cf83b1d1bd54b7092f7d15addc4cc4d839e217a7649db20303abe4aaf31215afa8bdea52bb201f727357c1798f3116e6f71b4e01be0066884e9dd25afd2a2e6d455703f1d39656a4f8cbb825c910749addcefff025c0a0abd3b17b59008ed13cc61e42138ffbc8bee78840ea59813d24165d9476475d6d3ffabc51d463320425e4e73248f343d04f834b527c0f4b0a70c90f9f7b6588d85516867ca1f76af997b9016e2121795ef5c908d2e1724eae142d3de0b822b058505991d6bba0ae3414f0d0eee34726536b55031ff2ba2e43005569737ae9c496081422e867c5656e788465d180d87c3b8a8aa280a8f43524b2bc83bf46a691820fe298598050f7892e0aa4ac23285b54863dedffc4ff4ffac9e05639cf80f636a31d12fc630240dcece59e142bcd0b9749d1f27faaa1749a5de89ab98e901d2740870de1a8d98ad1db3ce715b16ae402204b9b262f41da0b587f1349cac8740c7dece695a6deb43c4e2740cbca5902ef808ca992d05c40b40f8e825f1712f3bceda064a61f1398fda591b0a9864355c996515d9d0a9d5a2856cf025d5bd11853d5a791e15abc6a4b5089c864aeee617afdb15d1b9d53a15f52b4fe3e5396e964298c229e5c0296a9df7cfdf0aabc49ec3fbf5c5559d8d23c9a1688f9d97231787f706cfdaaf051dd3ba1639b10daba7ecfc165eaa387524f77a675edf954d68039abd1c3a0fbfcce7f04cfa8a1567da45ef89287e9088806d23dc09947be41ba130063db2f75fdb62c50a4d3f8633553bd33d1311188936a23c7d4e56999176ad2cab051ef08181b8b168a2c3871a26a45facf364f55c5671e7b16e2fa40cf51bbd2c69d481d34b90f6552c60a0bad4ac807e0016ba4d874bfbeeae63fb3dc79841940489d690975b87c161c43a1ad791d9f857c32eb782b48439d64e2b124c6b1d5b94bc01111a3c62737e2b2aa91b2ad3ff7607f37f94112552b5503f639d2814637bbdd75b5b3a8e790191de4b8241012ac400f46b20c82d269ac9b49c04369ad93f38749635cc39792df53a505ec3e8a6076afb961bac9024dc2621c77f1bc3e20a58d2f659abb30989b13f78fbb470b7eb42d92b8fbefffd54ffdc7841a6b7132a7718d9cafb377c61ddfada130088148208eaba183cd628de3f46c132dbdd17925f79835fc2cb1844c27038580dcae7bf7dfb686afba43adc676b846ab91c57581bcd1f44aba0e584606e81ed2e2ce9fa03d28dc91b7ccab2d531e5bacce516355543747920bb83b90378c0eddafdcb6f83d03f8f034c184b23494c2390ee5a0849d1ee51b0d4883ee74545e3b5c564bee384b8a9aef72693927d525ca0c3bd53443da9f5c3b403b3ea80f0506dc5d86d141b741b4df24ffa893b5550be9f94bcb6e925dfa579857956b1c129622eb761a5f86b78318298f72056c49ea130f58ed2c1a75fd88b1f39b091555623511369ef02d36a0f033a83bc6248189b339f35bde93119bc35435e9f37d735b85196b3cc5148308ac1df9abb3bb94407145fc54f146e8586195596e1c40214bb2a0655e1508b1b134a16be337c7cde90f5397467a0f26e88ff13544f923cba4309efc573915a1018454973bd064c5443d4961cc6dfa374c4b6a751f0066cdfa14bf361d5ce4c09823a76c450e994486da4a3ba8229368ad5014a07208d3dafe7acc5e95ae7219483d66bbd31309712539c68f2099a287825ca0035c257ab4b4467f800e5cb3f52b78906eeec792f3cb1115788aea2ea5a7313ce5e87e930472e579baef8a7cd798e9e5cef635ebb040f95a4e8c9ca401faa690f494190d92d5e691ae067c425530f1e35d6e9fad9dde0346e9f6c44670b07c3838247466ef998ddece789e624bde31d76c26f35e2ee7a1273df9e36e335901094d8ebab639c4a286df5032e34a9b7517054c188c891d3b230ff30df6d0adbf607ddfe0acd7af07ca0a321b3c89ce7f90e31d16bd6d515b54ef91beee6c822694569649685eb534bcc6ebd677a307f89fc8115a605fd03d992eb71bcc504af209718b857f5bd94397735b9fcc193879dbd73f4220aff297f0996de4013248a2abbc7017d53b00365dabd06cee307a61f9db740161506e00caae2b7e390e68705281b7af80bf9ccf3d62d40178c600aae0502c68324f11cde81589e9452d89b0a0cfa5ea4fac072413b92d0f22689ada28d8ee57b42d118af5ba6adc3bcdd7f19080fd85c82a21730825cace50cffdf538c97429f6f6fbfa7ec1f3d2089aeaac30b4aebc1222f99683edf99f93254286888df7ebb14c3f272cb38303f2f56966f865e8193136d7a9312d409a82bad7157302a0793bf7e9d0bd90dd78ad0b5562e56427ad998539ed46ed57f17ec458a73d7c3ef219f8195294ed95e1e91ff7f3d7ab1d149374fd2134be48a6df7e8f111a3f6e0f1ab644e785381d26e193a5d6f94a9d39eacc128dcbce44d374879f8b0ac94134fa9f05b01e60aabe3d6c376f3b1f060cf937d23dc961f982a8e6c2c325f725d7034a5c474cc1ff0c073ca6839a98a435be94dae5037be8dc11c4c19843ee94de4e63524398d8ce804e9d109e89744931d386de9e44954e072353656551a585ad529079e6da8c55a1b7f31e122b12d2a57130dc4d0885497882e5ce4aa659d1af7b7b59f47d4605d880c94ed97991729e3a6d36640789668d75584dd730ea0952ef48e73769d96b7ecc37cbb0f041b8cc792566e4eaed6a0d854877274b9c99d472b15a37698c7d105edbbcb791e12cf93fba4f51a79359ce849d23922b8853d498f8029ff43f3358bf6f949afa41ca23fb5bd70c99bb6ceabc0e8cd4b67c4333b3b3a76f2d741a00b693213661b1dae7bb215576f6ac25cdc31ddbba5e67e806ed6613f7d7f7b9f2b65350c0ecb3b69a66e169e3dc4a54302b9ddc1964229019b7e48244de890c5e78126c8928f62fbd6dc9c036f4a0e12d83ca35ddd3a451d6478f61f09a41268bc11fc7e3b77c032b0827728c5b993305e5d02abe8c9d18216c6a6cb7594b6f0d40f045423784988edc9ec7a9e7b2bbade186092fe71d2f2b02c4571ef7dd6bda4385cec03393434dc3f34f1ee5ab2e4633f3647891ed31d8a5ff7ed23e7f2928b1b79554c077b52326efc93a5c868f9627a9116261960902503936436a02a996745a13bbe995f17f634e4d8484272dd9de494854f2b8aaf09f822c0b6a6c6ef36fe72700b2ce313671100cdd33c582a7decf4bfbc8666c5a8e66406179fafcc2a7659c12dd54c8a1b8a5a0f1e6d85d664817a56d0778e1daf554b7a88c7f32ccea81c1e73b7a7d2c30c6d9b5866cb6dc55a854db0369e3148ac7d8e6a1b441522af510f78ce43cf45e6ac63694edcd9eb7d857be164b8e52c62d6a7b5597a62d1b3e47c8aac327122a2f9bb2fd7d2bad105813780e601d58c47e4af0bc40d2ade3e95c42e6ecd4c570a2e94fbc2a84f7096925770cf21ae243f697758b79baa6a187720c1872d3e2e359882c1f9beee57d3667f1e0ec79f13fddde82bb268cc7f94735d6dd6b31dad8a769ed59b590e8ea7bebeac5623d5415dea0a38f8d931f3b3c3e1f68a8084976f7e2a378e20ddf32af07fa4926a026aaceed29cc5f8d7ce2877030b1afda03450590fb7b3a06ab77765c687c2560118cf7cc7ebeff346dcf6f3ae175b551b4b1923268365c95f91d01cbddbcfa37d2e8adb720de69d52351b6f5de063f60905caec52e0c47047d10e2695864793b1c55085a5723bec6afc5f765b4b7c14f6adad396f1d2fcb667a6d28b49a556b3275e3aa883b4e797c9e43685f21bb26f07cf883040974f825f36cdc32e9a4f4cc5abdab803e23036140a5f86fb97967b4dcf6b6d6736e760809b990abf5f5fb7170c39fdf1846ecdf39baae1acbd156dfe3bab43e8a45a9354bb1a558255ad13203ebd167b356ba3ec0aa65fae0c53632ef37d0540eed5a91fd7111834301cb4d5d943f9ee4f098612216ce8d258a8fe78f0854ebbc7135642602de40b570c34af5261ded1ac6d27b38a9ec5d84a0ab1740affb58673e4a947899a883f6cc9527b414509638145c50e9e3967459201a2d8ffe77138ccd8d6d1cc723773a97a39424caf4750b204c02e724f922298f2e69b879ec19782a56fa98a0932f49e252419d39d7940afd5c75051513181a258078d5ea732f3b3ce2eb5f0653a8f48a8b38b89ffb8a43b7693ecc9539c72b3569171f2098e5f813d012be794f12bf713b4da9d718b2a1e7f6232669921e63b68ac6edbddd76605fa46732f689728c0cd39645161728f9d5aa2e50e2998d6798458f6c57357155af47a36dbe979079e8c8fdcd2a98a17f8fcd496a129e5b4aa341d82f8c8930137a85677c13233532dd14d8ce746d0c9dc3cf734b0d464e721fea4922bd3729559f8ef7dd5a6ab860c4b395a6961d023eccc27e7b1507a0e567eec279078d024ebc7580894ebee01081277d858c620a1202db6074b8ad466cd6c15ca698528177ccb4f1237004112004f577f837abad5f60f5148d26d889442e1a806d1a3e42856ba665e81e37c714c426ef50a09b5758870d0b305c7be963c77409a3ea7e44048c0c1a055ee36af7cfc7b77b208809165fc7283f045f547e418e7d320e3144719d89f86e8faa6b063e690f197bfddcacf8e859c7559eae4d73eb4d6a53ede4cfeb26af6d25c3af5f38a1a8e7553856facddab0659128a8d39f532dbbe33aac0c7ace5862937652f95289c7d4edac861c2c2b17002d41e38fb850745d9915ccb3b7d3b58a94a1b283273d6e43ed80ffba670e8eb32e016be498b2958ec96fbdc63967f4c23536d10e6d5f995c2e0f948b75d8fe19b2d37922b40ca358d8acaaba0d240988edbaff8ce2948c7adb66ecbca4849b4915f68ff9a434e115d725aae9548597bc73c8de8c6c052f01d0cae7308430cf2fd5ffd9426ac76c22a3a6c800966b6af2f88cacc4b7df7735542fcfb06e9ebe29b355e762e2a2ee6d76f0e33499987c3ad349e3488bd3eae54ec15785d5b458fc57b4b0bb436a60df9f385548b33791bdb4d42788b69724f6cf5f751c24fcf68d4aabeee8e505e1bc25a66bab1a525c9f061688663062771f671bfda602248e03bb1ec0c0ac1f998968d8b641415b3bee108d09128e74977812bb17d8d07f6e2355c4a052cba6af0b795c219634a47da12ecb876a718c5796b03b84306d83941f07a9af5e624f4e6cb839db87b5e63ce86af6e216f0707557ca49aa7fc04989296cae45ffb20fb6a3856714ba0fbec54a8b477ea13d6976ad38c87c841011d3715404dc7e3ba263a32f528750b82b9060b88b0e3614c493f4a24e2cd8cfbbf574b6b54294190744f01f5bd3c26212c81cada5b8da7052b7ac12a5a98c7c4e03b82f1b277f7a01f99e3557a7d089ba65f3920a803e39e887a5e14df8282275bc561d67eabeb6982de4940ebce06150d658774305774ae085ef17f950ed3efc40053f1bc85df496faaac3bd9e54c965345e956e944741973724e70e14891f585067c9904c0ad00b5be3c7954b9b126b106c84be83cb05ed65d750278cac3f1d1adfc6711b799acab07a2039980c733bc95dbbf7e19dc5c868432e938020e1859e35a83e06c92ce95830de446ed77891747fbdf374d890918382bfd5974dd6f09ebef0cb72e3334550b8d5c1d58c298e5730b51f08843fb551e7a0238a5d705e1edafbbe111318fbe7dde0b1cf115236ef2b36fe0a549e25434685e823609cf771f5f314e54a53f089986889000220f088bb5fa57fc722d628425c43181e7e83e16d359c96d71d4b8d44feb12acd53096b529d3d39099042d1ed9b86a38342f2d7f6817a1e75d6f61a729e0679193a318d56d2856a2907e6b4543db7fdcc76d6a3659ba6b902702022fc5358993422fce017d44e848af6c2b2bc9b129ddeece4c704176b304f7cbd5c5956eda69d36622a38b3fd639b3ddcdcb2ce8548731877dbd07ce86cb7200464596afce4f1733f68057c0cd238a3bd54354732fa09dc0dfb40109261915ef0d4bf403349c6f9d4cc88c38850506ef2378c70f191bdefc8c87cf2b03f9d9ec0846fca32d6371844464c8d94399e898c9ca3d5cb577067edfc21a8defdf65b78c517fe0ec63c4c189718d4e62da11ca09df8d3804ef5606886fb6e8b2e42205eba9557cf8400d4bbfe2d4645d31cedc8776b350256218e473b4c3a7a260ac07dbc7b6df17ad4a3ff71b99311e3c52da1b58822f81dee213b198f9e457390eb25cf7055e7a77f4b97638804bb88f1974b6c1bbf3ce818a31a16cf6fd5a183b569245a34930cf7ca9b1c3de8481062cfec871a6b5d1be7495f80f857eb5458a69fb18043d0e5c86c07a585dad2e48a182d2843121ea5fad9a8efc5349bab3e50e4d324c8e9b6c47b3b3c17c307dfe55abb0cf22cf52c605c37c52a9fccf7ed1c960432f71e24aa107c6170efa8e33342c7110e158d1641b9733c5d98b9c4c03bd89d0483269de843726ca3a20bd2c21287bc151a4454e3f3640be2fa722ddb2b11af739da8d7b9c6a8b5abfd9ac2126eb3d7a14fae09e1b63a933bf85c83555b6de1908cc1192146104f0f31529574d60820ef6910fec1f1c6a01e9ead44a5b95a6cd08c815499017c4ccf7e45d07b39c900411ce5de6084febc4e18f162bee80d1a8b9f6d0e7cae269ce8b118ce5d2a39602f555d52c6577e0d842688d9a6edfb5b0c11ff1d6b18296fe756863c98be227c3165d9d963cf02c5fc07259476de606f9ef5213447ee05324f2fdbea783051d6f7937084d830ed239cf050a5fd10bb914699b6367dd21f15d90f79e86084173167e96e71a97bc608b9f5e5cc8aba504523e2126bb4143e25cb9756f3dc6eca9b46f7cf22982db510fe42934e8cc6a5a59ef17c7027720ff4e9f57c36eda2428ff240c89f809b0a48fd515f1805e705cce6e4b30a32d9a3d0c63d895816815c1aa7763f67e9d9b76a59d11e39108700445e7166bcdd73ec8f6ca62cda15d97a1e331a4e32afabd1b4a6e2fea6ec54e98ff63dbb31772c43e5ac69aec45311029c264bc486769013436558fd554b8e57bda646c97a7676e54a90e166a86b90db0ece68a319cdd75a03b7a7709ed916a409704b1d164465717aaaef44eb66b6f3da8cf0a30125912a35b3537ef341a67196a24839cba4016c7555b04767820cbbc8687faeb9134c277a79b2a3e91c08202e543a1055d65dbd1d15fa07599993a991d82562f37edf9d76660e2e8d8c7d59183bf98cdca61f315ea52f2c9e8f42b57c274d9239a1d9fa010c50c2087ccd85fe5ed309431117f8e27479f44355d7dc0a0046c56210ce4ee7ce8fd99bbd7556e0519fd73c28ff26628e91b1655d16a1b3ef37b6d32f72d2354c283ce180bc3d18e36cbb3b5ab6337432eb495ba27587b1f591d291b85b5e21e8248c65db16f36f7ea26e2958127bfca325b53791f998de6e4cbd254140f0722832bd8d5d76f144a94a1df228f3bf21e967829776bbe1a0f044cd4defc72c89bc8795cded94f7bc4f91e7de3360a3d6827953bf462af3e6e4bc8d80bd60d7e8549e322e6443890ad4f462c04b492ef25c2a5c0adb976434f98b3c3ffe025b5dace58124a0146dc1117b17e904fd4cd878e2e9a8fe0d4cbeb2e74c38078347a96419c8b7127c2e3bc74e01f8df844fb21400d5aee4b7c897b9b9e3392edfccc698451df8f69b9c0b1786127313df6a3751011372e1657beeac5e5df481f441b84606ecc4b28c4a851377af31fe7c35059854293981d20857924fc88ce8279fe8f20e74e319dc0f4e86eb2f978c842c884411b0395659992932a866ff8ddc051c27924b658d60860366b95f9d1a12307451c8d5e617c15beef2b42f52cc0335f0aeb2d65e31418defabc101af9c1f04cd0c13db8fed9300da05b34c97f7ad15edb3c2d2edb241c9cc7b1b485219c5d17e1484974efe413b5af6b59dbfb74630251bb7ce8f58f5219bcf3d5da3bd3da2861d25f345a0f347b2ee35343dda123366c6dfaec8567a3f84194ede9e167ce9aa47ba6b30c18161a74322d875c59870f99aa72a19a3c313d08d565a3c391ff8c3ff99933e6284493d19748305f8d75ef46fd94c45bf444fe9060bd658e3498994b2068f4541c8c6823225e4d03d97161946a9f6ea3608eb71b5ef4b71df333732d29d993d09c61f6e3e1fdee7849cd8466b8b5a68c9d6a2670e29252d354d03feef9d7e10a4e6a2c9333007387c54847a6bb580127a1a7458a9f8c5b8f071cf2ced7b21b8877920308e502a0f664b225ff1fec3bb009623a700ef00f08afce6df837df7ac18436f197e90c66dc8db5a6ef8ba548a54deb6df45269f583c7c72cdaad58aa47b72e7f65dd18c29e5a2fca0f20bb61e4bc1f81bbc6eddecc4730579950df79f709fe65ffe08e4df239e7aafc327400a8669f9774a31ecb572cc11fc525b6f4a112a4c4e9b2c69b8d74f69e2b3fa9e95281d8c9638f170367198705e4de5b9a78cf7ff6a8c0968f70aed0473bc9a51d70feac83547c202a5ab56dc7e2bd8ae123a10686a024266603a61a97bcf062a1a876f88d396bcaef6cb29788bd7a2bc8b9d14f578635c97682ae85978fdbfd393b23aeb610e7475b9205b450aaca2645737d895b71854673940193c579ae4466b2ad8d40b34bdccbe7311ae710908bdec38b23fc8de62f58208831b19c497530f80d26a09aa951b961b5bfd50d6c1ee33793d6b6aebc9931ed660e501eda91fdda7529984c1da40d7d189e308acccb714425297277a3a4881a2872a594ba9a01681fc908dd594093d1866f413b258e954d1fdc30f921d4efe9962a3ba50bb2229f6ee421f6002bd8f36ef28df69d7e9c6a61cf585166394d9fdbaa8f68ae2c4436f84e533fb39945f1b345c32ed2831c8f905b71c75b03c2a4612b882909efc3d918d75e9bf2e3a8fa950cf2861cecf0ff067948282bf1e8dad88f579da250fce824532b6b51e50ae3cc2a5b99f3de5cc6f0d9e7e587e44a790a5a52daed39a0f322c1dad43f7eb236e1568d059302715a7c7ebfc46096c784bdab24578c60c5a54487fd2d5071329656681f5330f60a3a21e132b2ae8897d7e432b713b1529671a106380286f45933b4cc3869f67ede58dbdb4a4b71042a3e5ffc1a6f47488c9d25c17dbeb0bf26e418fe17f72b1405d76c8eeaf940f72082b6f4bf516a116b3f45aaf55b15dfe692979f3d27f875e4aac6ae8894762a6905fce42e4805c920b4d5d824655af420e68a5f650b2dc62ad1af649c3557ca24603f346648d6a0ed747d7ab8b56180acc4ff748226ca5f89330ddbfac212add8ec758974f227274ec8f87893fce5e97d4b3c230cf2ce3e2b735aa7cd35804002a75519c7ade56fffb7e093f7df9879ec41b4354d8bffe776d24d8b38d056f6a07a0e96054c936bee51799353587f1c71ed23440df75e31fe2621a2097952fafe71200101726e5146085d295111c222f9657c2e65e2a5cd8aaf5317ebd67fd14cf1c217e884c6d3bee569bcf6abe1be628050019f417c9b4a205e80e9db29015482af2a14aa9e2bc26f630154c1cdf720ae7de1136bd635919d326166dd69be075545d13bc4785f8490e8de087ddfa4a5e1ad7ea1e54ec7f51707360dc6bcbd7f6cf379168870ca228e0ed69dc73765cc2378924049eca764fdd3bb7fda161129765d17f09dfbb435abc5530281b2488a9943d241f06629df75e866d44bd41dbd25eb66116cfbfb5c31d4279aefb6923866577b2a55c97ec7c2b90d890c948302990f063e56533a96d1eb0ca6ba0de75c40ac97972ac4c6b1fc6d2d04cd1a0443e6b3fd35bf71821ab40c16f7a33a93b9512b68b3dede5b93aa4b833982b54fecd4212a12eea82f68fc6f8f68632722588b9b6da6494bf86a4f5026285b3c6786e2a8be5b2bc2353b71117b3548dd559f6f35fc04446de195baa83c165fae281221c74593ea37e385ac50d3d5260b3ef3c4a4a78202a05ca830f583a26c7b91cbc4ddbdb1762fcf8b5a464ef3dbd7072c71191a29aa2ce89b99d41bbbb740aff0ee0feedf7443abbc267ac68da333665eaccaac3bd6c5956abd213b39f01ab15f3514b35195603fd39004a0cb30c7ebc8dbbeac394679ac60a306f995ce20efc166173fdd836860ded08fa80f067d05fa7e6326d53866985cab92a652ae93b88a24213b4e73b848f6b59e9313db25fab85303df20eafeeceac8dde159bd4543ea95de46b09af68faf9f724ceb92154f0e9336966068829f5216efb2a575781da6cf141586658711bd8e370ca012df9f4f2fb2b427b75eddd765abc28eaaa63c96f51a2566bb15391d7714adb3f2eac6ed7de15e0194ad182538e081a9fff7bb057a1b3643a63144e4235f87e52a45f8c7005e202f26b407189820d0b6d5bd2e39f3afe22abf2181c11af0e7000c4c26d94692a4cff6f114b32c9f18df3b9ffee1b264a57dbbbd516723dbe363d4ba1a840552ac5416ec4461edf8236877f37104a53886d4f9fdc2a9f0594967dc8dbc494ac705a6690d1ab924c291f4e9142bb7577abf3a2027b9e04d2141c1cc86cbe9c8c825bff9c3e5958afbf646ca47516aabeaf1ac9068888b71ebe96cd994b86eb0836fc4c8108411a8822a640968c7b74b80b39dd157e553cce869825a0a1810512fcd6951bcce813e56f8cb0dffcf9762ae84a832a7d439d40eef92a5cb3089bce67630fc87fe80f44f73d8575c1d2cab2c76ad8725de6d0c60554fca612e892f100855672fd6fb645cbe7d7a7dafe3264ba5cf3308ca770aca58984cb2be1e4d6d5ff772d93be2b0cc03c8ed2bca71ec6d407f5fa0640bf512c393f720327447151fb8894ceabfe5e62f0e6f0b0ab7be264f4a8bc6b41ff0fbb4d0d9107e499529082cf753d1f67ee1c3c1666ba1e594b4bd1b51cbe8f19e2e16f19d129b44f59cf077b8aec99d44f525ef28cedc55942f1f05d2735df930b108fcc1c16276acc95ddec3c03aacc8dab17b0e0429bf66b90c8cf601e3fd737ed5fd2473c4273f0ebbc90bff97719653c2bafd0da5091b8e37306a1a58ec6cbf3d82d0390fe345f464045f68c3a488967e4569156c5566de42f3a5b1bffa46342b35d8f56c843accd6a54f4c1c1778a9e90027c6291f176e9dee032259a4cb79ff190de15005920511dfc1001ee763632fffdcfce7f0c705a853e001fbbb45e1954eb18bd7a7d9582a286d48e35338f690592e69b0ea5052bd085a6d491c8307be3d9b46aff03be1024f33f6f2177b0fefe202c2fef2da37e8d885da7a08d361a6a7795c8cd5360d4352e310ecff83ef24553707e8b8190272cf85023409a6c13f700e1d21383518c48dae5dd71b83a5fbb535f5f7ba4eb2f4636b7041bdccc2b5f5a810276c1389334a8de7accae4e9a471c36510e58283e13b5c1adb3ae5af4b7a280408f926591b73fa5cabacbf77050d20307c67cff71f2e70819da412bb2dbd8b3bb6bd8426cf1b736f9a9441dce45330ab1db44f849e5c355663750a4cfea8f65b609ae309ce59f142f1b33f46215110f84b636f53c12d0ea39c8256b49c7b3f2a5e011cfa0fb963e5824834834b7deb04577ff6ef643c6ae485bf6bd9e9a5d8b8a566003838175965aef318515a44c10b57015478f67c3da951384314a4db889394a9e4233250571a839dc152c58f5607fa82a5cb00f080e19e9150dad10f510718b93ea197d495532d49cfb8ed41933105a6f4a47f248e9bd29bebea4d64fe6ef5eb5b35e7f582c59263baff71f6e88f573a40159698f93f0f1f021b7d623b678fce0854309c363a8a7a9aa42c0f505c017fe1a89f3a9ca34b56a92df0a10379c11e6396e5a8dc4cd67d4332f46f0d43f1cd61820b22c6197be66058cb32bdd613fe1112497b7007b85bf4267c1d504bf8d2efab5ed014c24a625a346d34a0f6b9966f2484756399bb9f59c59466380622804cc298c8aa1edddc39addb15210f9287ca66bd73aff8ccb4680d96eb7e72ae170223a9f4e2c9a27602a98599e0e526a64b847182c90df19d676c8d77ee1265d9ea3e5d83d73e41c92152d19730b5ecd38a9ecbcae526815792e48a230b54878880eb60b8059eda73004bc06858cf839549129dc5dd263c5656d13f35a40f9bf8f673bb5d5b7c788688300758b4960838d73f375d3bebb42317ea675ff98f2f7db34487388912cd222a35282e54762fb41cd3be620af79391eadd0d3ffee24948ef4f286ebc6d96dbb69ce8c4e165adf2f2d1473d7abe46dbbb021409a7e6843c536fc566c67b795079828b7a21ae5e520db0ac5a0c1c533d21767f0f5a587606c05fcec32058259ac774c69b32333b564da6368671ed6f4a416179dbf6fbc80e183a47652ac621dc5addbcd2bb1326d1bd1304c0f7b67ae7d4d1703d62415e965f07ac6895f8f18da4b0e5385a3731b509e5145bed3ed748c62c76306b753156171a3d4933cc9d726993e2e0c467f46e3a8168bb4b02fe915899804d916c4337358bf3808aa4fb8304ea1d4f3e490664531953bb58188c9f14fc4ad6dc635a657c568b0cb30aa70ad3c48827b610e670130bdd3fecdd6615951e62d683bbd8497d289a010e37c86b99d92b62276dc2b178be7bad33a6612069e55d4ece121180cb6a88de77275d55e809bb3ed9cae0526ace2b692aa63d29ffd1bf7acd2e560317f45a15f5a410e6b120c00bac9be3e67c17a735ff62faa7b5e526f038ea48f485d912b37b7673396bdf4e9a26aed9378331a035b043439aa0e7b1a214e1e8c4a971a1c1cbcd31ef952f5fd756026b5f61966596c3caf2f56982b5949c2a572aa9f838a7cd9d6f8d3be098e37e10bc8e7b8a9cd989d57d3725bf9911e45ce0ee8edfe30e7ff6bc2a4fec534b77654e4f5507b9becf5887eba3e25aafedf2864f28714ecfb9d8fcf8d53a94a348bfd9779cc4363f3fe2e1efd11f4936fad962b5a652941ec3b92480ceb756f1236706254133aabc0608cb4be7bfabc9b6c374c54165cd38bd665a7fe7727079e3afa379b0ff25888dd7ed6258ce49ade5743668c588dedf05b083cfb7538b8e06a890211add639c727e72e3a4f6a2661902f4dc783d6fea4eb57abf61063ed85e06b1d715dc57cfb2469f872f8335ec6b0548755f8421765bccf6c3aebef56cfbdf3d989eb8837ed9ecf88958169c3e758efce55f95c6f72c9e64aab3bf266996841fc26a720e086a5fcc2e3d68adaa1c4ba90c79c01df72a90be55ffe85d46f71233ecc3398d53d2376a09aeaf6abb0bf95726dbbfa67e13083308731421bb298efcb3f84b3d60a664cb0c04939459c889ac97f0a11a70ec2c1f39e5896f9c7a374c4e4ccd986f29e4e93440ccf38b574d21f2fc9a367b16c314afabfb7f465f4a8bee57679ed1d9a3f806b3a9519216736b4f6ab560f073fb924983a18d0e11386412f5e96f8823103be8f017c01f76cfdfbbeef112f846ac4c549541d1a97a4954a3ae452f81c3c8b2d2f526b0f6c105318d0be63f9141efa442932f4a15b6b10c9a6a10b1fb5fba0be49c17ee10f356f6994514dc2ed37510e609bebf703631424a6c00c063b4b86f60fc7df1f198fb1fa2a75a985eb30ad613de4b2f4f70b63b2354aff2aad0fd070e1b48ef1c107d30fca61a55f84e3bbd29cb53933d7694d4129f0eb6a91adc9589bfc5b83b4a0779ef10a381448105ec79ceab1942d61ef91051e188bfd8427f036a32c8887a86bd26d531f89f0c17efea4fe61b83767a0d7aa5a11b42fb6cc0eb8f865b44a529f8929cfad4802f3df04bdc58b88b7b58b3bcf44f2f2b6b0ee9c6bef0541230284d7d0fc9efffc160dbf3269a8afd874b65a49b44bb52b4fef1776ac7e6bf8e0c68143213b011c6956e590e29f1b258d56c42aca23517881dc11b22be5f42f898483d72e4fc3a6227282e56e6f808913417faaf92b7fb1c7a2b0de1064a17adef98b6b62e060d1fa227658b4e7d569816382df53a6d97effa52c1e002dbab062667b49800e162d920df51194c8d4c52aaf3b4ba071611346a254c417548ebe994cebd8da4ac7a8abb80571e2857e6da49a0a340c5bfbb5f06c0a75651aeda04e7da4218de57921558e03927f6d95450c61c3cf7a23eed9dd6bc292702dac71cb62261e93f5d68261961e258abc219c6573303ec09d66c7a05f07fd334b258456d123dea9cbad77d68cdb94a66eec8c7b248d5351eaf5d3496bf71e218bb491863a027921736faa2fe98f7c94370676fb730a33321c0e2bcd1ac24d06463bf63f815dd00a3fb2959965e86e8c24417cb9014db92d8289264a872e77f2379efc6cd483226b05b2e48597650c20d8b51f519eedb69f662237b59e16207000483bc3e6f66c5f75cb633b35d96996303ee093a2f8fa5b57fa5ca602e6b2b196a5002892ee9e59e8008143b6ecc6fe6df9f177336e2d7cee14304ee8211e89a0a6cf8575d59be129785cd7169a94739acb0179dcc3791ea4d978d3e1dcc244dc40ec2464ca0d84f4fb68aea8b2cb470cda099d7661095f6895589b7f40b3cbf6edf7d88d1e08d94d799cd0055893185711368f26244e16a4f7013e460b419338299e951fd979cc7e83304e6c8337fde5a1d88258dc1c26c695012a8c10dc476df6503cbc36709220d0f2fe03806f4fc67a6ed004ce975fb266163870b240434b5915b5952229f199ba25abd16df4c5dfd6b37e3434e94b3e469ab1406df62969da5fa41ec1f5ca73bef03f65bf67dbf3afc829b1b8cd6167757a8b584e1e4a8108015045e9ec111f0061f1a2bc89bb434465fa07fdee711518c0d7ae7691955bf32185e8a66d8f21c4f96b6102c030a9981e9f8b160e540bb7a8af129a4f5138b05091bfb4712922f6d477f9feeb4b44f3ba79cd0dfe1e1fbd4e1854863dd4fed99ca03e08b08ff8a353af4d7691c09c5f96721a5e6e75f2fce1a3689533efc40ac41219488f7ab77e5e2b43004d2f3b2c1724e47985b12a2670d1f03b5cd87c656e99e34ee8e5a35c36471e889ad84b6c3250a3434bf997553d6d617ce2b3b80f7b3100a998f12eb8d4ddb8ceeb71d17800d2ac95e385d184ac737a72f0137cb15c496e1be5515330dca211e50e174c69617da6bc98a78c13b838a3cafd0905f785a6511cac792a06197946b6e4917d9fb19ec5f7b5505b47fad539476ea34f14e6db025568e8289f91e8a57b6772213e8e0cc5fd31318ec74521e23e80ebd73d75634427034634072716264401b104aca9fd8c7429adad20cead66198bccc729d1acc7227736b16cc5de397532d5e515b014db7b29385c43e099ccd48d6a4f98e9b2858e420fba9f24f8ae4688daebe73b54d5214adf7b022b2bd1830dd15fc9bcea8ee5a9d8ea961839fa42e34d4f56daec56eb180c2096977b26ca430e6101249dde56ca4492ed716b19c80d5d06d91f17f25253ca2b1cb2b86a639d15c60bb0fd6d447c86a2606e49fc8da2d2e1abcc6b1642711a7c13a2b7039c880392b395903bc505327052b988381843388e4b016c879dff1a25dfb2dfbed6939cfb4aaab13b249d912849fc14a7451e9959fc822b53b6ca1298496cad5307dc215d25704e2f60bb17ec6fffdb6ac3c69e7346104fc5d7d8a57ffe3a50ad39cbd4871e33252eab3ed9a4135acdcb9659029b73c5d066bb34bfbe0ba9242e0927c46311351b4aeb5c390426b3ef4295f48bd013913cf71488f94567260df6296fbc7d60ea7b113c66318ebf91ad0eed7c1ab578b85670068690626a61eb92de8b75c6704633de6b57de3b97bdbba89cb56dad3b6c5e91aa2525c14e2fbc6882cc574f2a1855d07d3c3e0a8e2f3b81f7a5acc3b56c5e238cacde9db504188d033672427b76830a266347bd2492f8742450e28387be3d242e89b28222fe19c862217cacd43c0647535dc33a0052eb8ea1b7eabd126f824a83fddc837e78efea362afcf0aa97a524a1d397236d3e56c7bb378a2c0069f8df7499d421953992b2266deee9f7a0999ae32767bdd8b92b9d182aa97eb958aec55f8542d797286ffb721684c5b70c21db9fe7b2d1537a97982edded24efa0fa8f939cc9e09796fb206b40d6ad6ce5908c920eeae215dacfffc9da2e93135f7a0dd557a6fb0f177b02f721a6279b58efa828190dfbf8b79049897e775add7f3c38dd8771af5ae8774c0e8d84de4d936b8404e7d162fae7e12261dc989dc8e38a84dadf8f3639ecaf543fbdfa458fae44737e6d71c3bc330b301af780e7939303bdea4f18404f30780c2c768e10f2abf147203a899006ebd70ace46d257c104f41fa32f3b95a506d94b0972bbfe0b829c6a28c5ba1a41048c626d8f756f1a6e283e8d38742327aee4fd21203cf1f438429b0a94f256fbcc2c8c3b072084282ca12fa650110c248b0a8551b33b7bca160a88eb2b8139672aff4350cd0707bb35e00edc24d820d2ef68048b804b6a2ddca54127d46f7fda695ddb17b0405865a0c04f9693d4a4c7745f1955ad35dbc310cd3fcb28bbe34fa14690cf437bd5ff340a732ce7993f81e1e3f6472e077cb45f25181b7d5d09e49f49560d492030221433cc6ae080d0e0a45bc29115eb8c2f042a420e0e53d65b6eadea386302dcaf6a018b1191ac36a6ddfb877231b10ae445e442cd0402979a5ff9a70c1f20954836fffe5606e031fef2f11ac2fa192f890587633849b0042bb13e2f18493090d419f21662c36e37f2bcd6bb69d3411c56593fa66024f134bdbbc5a74094f2e6ff41c972d00bd275f43c2e6ee594c5198839cc040eb3348ba1b300083b907e36b759b3fa31feac4856e6f57bc96e7a43e13caf243b28e3004ef9e59415f00a33b08e4ed28b7e490ed17683c43815d3ea2665089596dfad7bddf91387af20e729e1a524abd6f0d7a6025f361a6e3f4c35a0fb6e5a014000758d9f608f3a2fa1070520e5ed7ec3fbe4e8babd2038767ab39c7d5905146ebae84052b6c6c0ff917d1b6e0feee4c96ede68daf4d3763293c5eb98e6cf99ce9f5cfd87606f9bd3494fe735ff5fdd66c55ac959981da04b8ba3633819480e5923d56ce529d0fc1f97a56fa68c9531879d9539ca55a63eb624c85ba0d9db26ba7bb75deeed5b65b421827edcb2991d6cc22846eaf75c6f92854f339b4d34484629ec4146804a2f31d4132457ee1fd2450f3a656eb104638a3293cab559ae0fbc5710af800bc205ce8db9337c4560f39d1af86e59c879e18086ee068c5d66c8d6c527e18149b26770d6f5c42c2d651b92f4071de52342c28f012050257d3df7b01c0c346f378d28128f73b169bb0455de81c593fa7e6d7456092d156109f7d2f6e0c9ac2f271bf177d8801808dabaa2b73d1fd43a41bf7798f4064673d90cc4e867366d7c50c2bc37aa12de756bde77766c654797409ae32b7c71d970a721ec2d7a4d438143bc590fd478298e93373c11099c397aed2ce137ebd345ecc1089b768e501b0ddfddec8a6367e57d96d1ce66f7bd5a7fabea2dc3a8af0aa2a432daeec5348852acc86dfba7df41b8fffefd5845e73ebc58759b92f46f27354aeee18014a83f38c29627bd4ed02ffb02eb0fb7848bdd9845b88f57f127a2fb4857a1e73ed99b39925439ce51f9e76349bf3bf887b413381f1c832e569d04db0cf93c91983919d740e618b5b2bd64939c592fc60bc521708e69856d61afda34c0278751aba2dd966b480bb73b12e5e221c98b5717622a538d26b6c2e6c235e3b5cf8fe432a52c957e76ae5ec1a56ea8174f649a1df5b747b5f8cca2925d2b4566041141164af0a4fba270529eb4458b466bc22e29b034b107dd9107bd83545b51e800bb4839370055d8147b63b675e8989022319d1c7028f3d3617e65bd4df4579f02f6bc0db4883d8b347af6394e478a7af4d45404214497f6b08632e038e95dddf4a7d3983d989021b97098d1e3dd60c01ecf2bf45ef188c882408edd3a6a474b622bf0fa4b6133f364158fe58a25632f779039ae235c99fff16a3addfc5aa36c0fe21cc27ddf91d4491b6aa1607f7ba94d5049a1d06761e9abb2f5dd2bbf94e87367e9b2155899cc4ee81ef5c3e8fbc1e0e658e2aab7930c72500ceff936cd183893ec7a796a5232b19b74d0d6bf7316e4772834594757a29af7edd6998baa89bd4b944fb3b07c107f647a540098c96d03ed246068932c0a8e1423a4c64bc9a693282d67f2efcd571e2802b46d1e0bfc59403783c9511f694b5b3b373d789e2702e54b4d07d9b61ac47859e18b0ea5c5f69642f84eba463be2a58f4d3e40eaef85a2024fe958cfc7fddbbaf48f36f500602b5b39315fd6bcfb22f1f50fce15004afb8b9e31794c1a2961316cee8b68810e0800688d9541b64dd49fa17923cec1b3e455599fd02142fb87e802e44f97abee91e12be26d3365275d223549066e75d761964e9383b097fb7622e3f043112edfe2fe3e953c5df2ea20d995d0fc08c50106d43f94d4250905824e6356eecbbe38f4234d6db25d228db16632645a298a30470c58cd44eb51c800fa539bee64693f9912c4188542b6188e47eddd5b93a396a061c18b44caf6487595210d62aa8eb349e0d0a4a7663e293133a218549f501a857b94c073a5f35d0248b239581b9243bc520e0613aff8726f203878e8fce7d62102d88372e90132324bf57357525615514557961e68b1382607d3605df1e799f0dfe98e411761c60c898e51f18b15404c61c791684584d639b941baf2624e651a3377bf320a156e7e76e63067bbd752e0b233964e46c938e46c35735043dff2a9181b9769db9f510e642bae5edfc3ca08e54b2af6806f6153d229fc022b802a8ebbd7beeb8457ebe4be7e2ea688ce9f342e2434e51586e597ce25cb073818ab6c51e07d41a6998b22fc9d5709c5d3b7c0371f812aceb96fe335a6d86981734844ef9542a60c4ad48528d49535e0fe71428a0e4116261c3d171f1520eeb18188df5f2c20c9e03a406256e697aeac7e1ca248e78882c69e9fa2aa2926d09be7251766274c1d9c5798e663facfd246e97d054498ceabae4c7bb1566d6d8ed7438fe414c4a1ba27ae7db3d32cf5ef835e4d8ab2656f999070ccaa3aedffc6bfb66744276d1dcec6bbe3c1b1a785677f6cb9d012ae2c1622861effc3cee9235c3604e9818c629aaeb59099be913ce3f7f5e0550623a938640a1447ce18bc570df7f1bc486736086edfa2d75a1a9e996ede599e2c50ed7b23fde3b130830e2a0cba6d35323503c786630605ed3b73a23a0caa3049c1e567322cd4c31a88f7930d23e974024f57fdd98c02bdbb8b465b0265d25f3e38e0c9202fc564da4395ec9d4e8e3d58236589cab1ab237693e5db4cc5c0e5a62a147d7150a93ee5e8882505c3b5b3359c83d1369c70ace4bde47a1d98d94d182e18c3907f036c3faf7617c67d6cf0eec2aa24acbb8d307cd51a62cb9f762f5811682c0dcd6f76992f88de0a50f86368bbfaaa75f99955cd70213387b563380e20e510d5e01aa5bf0beb4690f44d08cfa233e66898f9430a6edabb40c16207bd7552987a50459b349f5149e249986334793cc291246aad1ccce7badeefa6d60b54d852c0b9c64611346d97fbe3b65ab8009f3520197b2306c530b4fa3958f6aa278261f00b861e84e17b389ab8bad32a680b72398d10be840a5fd592a116175d46c22ec07804b189cab535db016b284faad1a48eeae111366b63ea63296f64ef77eab6c21bd082b8ecdf56ef92c3682bc66847db6af876b2f3f161dd6c686f2a0bb460ab85113d3a10bceefac2716d0d58eaffacdb379f5ad4fe61e1ebfae8058fbb65e3fe002c4cb396b772c258ba2fa6941117f2d07cd1f146ecc291912ca94700cb33836b0de1fcbabf87a70e3128e74a5d334acb785c0bc91234bb8e9a021e66e9852e332f3edbf96574be5e938a6310f2920883f9a3cf483c1603c6c2ff173586fc10ceddad742966bcb2c6d56817922d00f629398e0dcc785e6a025fb05e9b7be726c522a1f9a2f5b1f6fa419ba39d6c34d8406c2e6c20e67f037d1dde7626f1537f37d3dab8c2efd1665f69fab1a44b63bc1f3802ba52240e26693be3974b243b7255ee7d0f6912c98691e7f46a3c77bde27279f7f036da89536aefc9fbe3c09125e44b19707e4a34deddf42a3ea00c4dfcb95af481e349896219a4fe9aa8c9b986be9a0a4568106eebc7c8f90a2d8acd76c8badb5734f5ae3982021f05bd10194c51afd2e395d4fada86cc20a9e74f61a446e3474747522060a6ccafef2340d6881e223520f67b66b2839deaecf3af46a72e8f754d02906eedfa87c3a24572feda3b3e3d4f81eca4e5dedf83851b8fee2b50411916896a23efe7f7dba26d5a9542d23f82b3aea9475ee9e0697f4d951626d1ea18bdc90f642e486890d64cfd513ea0e2445dfb801ad4aa091bc81ceec8f7a6e163a6f1135c5cefc7c2ed76f909e1764040826846f9f65d2173cb3d9963a31e276393f37562101f936dffe35f0d31bcff4732fca0f051f05f5d260c4b09ec55febbd208b40aaf138e542a701cf548e9d10d173ee7fbff8650c67505dd1d92c2d25e8429f09345764f22845ceea55f0c42a89ebc0bf242f583f77b4b4eb02baa6e1c71962468a1e99abcc9cbf0891346d3b489889973cd4813c7312454f472aa813be253689d6f818bd91247b342134e6f2f57b5c0eb183df244dc7a7a2d473177c83aa643abfc478e1f423ae25584eb245971df72f670c711d0ea5cd4ad06039d99d19b14c640b62c5a0a747f96567d364850a08fbd758d52bd347b3cca5ab79941b0808392413fa78d28abaa4c097578fbff1c211fb76947fa28ad25e6083a336a6869072376c85ff3e1f6f95d45d9ff0a9976a8aeb2ebc755a56efbf8dd4a655126ad7a71c6291429ec5262f815c1205044587ae3eed45258765a122f54fcc7628467bfc6f3aee81ca51db08177dcbc1e53702b06269b40d6f3b428882437462769f673c2b3984280e79e8fcd6aece1e9ceed0caf73ebc5a5c9e3769590372405667db7f48b9c72cbd77b25dcb845b86da406b9e73f23c622bfef4fb9d20b568aa264fe3b88622f1cbd4037a31952c1b83773af4133d5756a3b08528acd16263b5dd5f6583a07e07858dfe3a37e1166aebff20174d747cd785700273cc5912b1f703f7d6a0d9bb642342bec4ed892d5dc40c31052a8f5ca918accd42fa808918614d7a043dca49ae0145c8b79cb7b33c0602d572d410d86a060069e0d2ed9aac15612b8cde59ae3ec0a8edf64728716cd93f747f402f11076356e720adfb8ddc4472d85e8ae69e36fa641e219730257dc59ef39a007b92b12a364ef3ae72ed5f2ffa56a7a1df240f171daf01b6b4f2dd2556764c477aec65f2c70f01574150a87f3bfafa21c89226a2b21e5b3ee62a09a0eb2eb4f5fd0540fb1bbaf883c1e995aee01d53f6678286228c2bd55204744d510acfdd4ee51ee786293763ebe4b69fd49b7f83ba27b37c1f1ccd6e2329948caf930fee6ae1843b044ebddfdac75a25d966f4b51e84313206b34b2caff0bd782ad9fc3618b3f5d34c2d89e3d0bc77377fa7d9438d5f3c8a1c853504c38e3c11e9b5fe3abc49633e57b15f35265412ac70778c673d0a6e99f2d64185a9f7a82c17b5a0e46c51e0c294a8085dbb236977798bba326d4e794b30d0751e227bd87b0697b7d39928eae6b579bf24474cec68695e572af043653e550c1287ec9afd47c86356e370dd06661570cd993bc85065b2f59c3f1a98ac00dcb7a4ec95be5ee51a8fbae7b8785d7b7211d7accf9aa3b8228bf4185a8ca06b1cdfd19e4ce081dc4afc93bc4347d9c1e623cea9e78e189954f819c3a6d5328df7a7b44e2a557f5b7389aeaefe541bdd1a27cd138d2a1497b2a4f78a859751ae306083128ae223c3d52ef27161389ef0fb213bc5eadb74e81229c74b224f6afca451dc5f88c501277ca4ec329a5c6a92646dafa2e7ec17e09361e403c4e8d5311b914d1b5e2da73eb64c1cb781f9905feced013303ab4b7c25151bd7ab96892f7d0b00895714d06d402537c9bc15a724e9797c28c485706a8f8f53695bda776513c928bcbeb4c374a5e9738a4fa9237eab2f5889f50c62c40cf8ca48880deb1d5f0c4fd71cb0cab687a2199a20e81c7c4ba55cf2febef78d7f3ddfe7e3c9797370d3330a3dcd7fabb530a88cb1f99e1a102449502a518ebadca74a40c24cee795d52d5997f08ac39cad706dd8e4008596c7f4b1a03357ac530a1fce05f6736908d2e7dcbd8616044d12f36b6f3612b3c5d1bca4743719d5ad617213def5eb545686f9a5171702ccf23c3aada645dd01032795f5a1689c835d0644ffc3e9908e1f51df0d540fe739ca2d6cbef4bda4fe44b79f253896744283d730b4eaf32cb102c07a557282f3c9281ab8fc1f4d5d60115f9a2fa3710abf188615a1b39882e8890d8dade90067f42b43cd11ff0b330a4d376e987bba18d05a619745aa07c59be88c42cf990d191c2d7f62801c0b04de19eda30f18012eccfdfa9b0684c91fe8d37ea224062af3cc54ebaf408fd6e35eacc7e99f82e0303026d4cf1296492cebff2920819d82724ae7cbf26c9a1c97234315926fb342d6955fa92057734d7cdd0b190f6a10da276e241becfde5c21b19aaf3131133fc2bfa0bc14183a45114fde60e27eff7703ad6d4a76197629e1c95f3cb876386ce0f5405d52b1eaceeed47f89904134f4de263deed9c642ab27e3851642b0306abb57a6bcd97aac8dd7406932da7c38073ee097a04e804f151d8a1361ee34903e2255cd88786db26f109268250f3620c593febe4161888d4c4f3ef2fd2b4df5cc4bb837453bad875578063b4be31df02174bc9a6dd007ba10d4e1416be48dbe41fa6f0a59f3a930fcfa34553538d5bdea89cc2c777f903dc4d9df58a256d723ae96a3c5398d2292701ade7ce2f966876d24f618fd4610f20d14662e797963af9575f11f50f905daf19d093a8dbc2cc121e96f9a697198caa2ee2d2044a58f95fb42ff1ef244816ebd4b12d0608e7dcdec13658b90205b81d17c2fc8c95ee04d1175c4bf08411f7d9a7e76c5839c3643f220ac1e9f8907cd2546834b97ab634ce6bb7e3420ec602f35c7fe79dd8761fcd147e3dbca125db483d09a0abf4b2615205ea8863d48750df7a7bec0c1503c0f5fd143b498ab7698952123acc0b0877aa54f01a3c3a35d0260f4e2e2e8ed2898561e379d6643adf891ba0a3d3d48312304497e1cde9f91e0103613db2f531799b84134b2fb027b0e64a06c76df60fb5870a05333feebd6bbcf492d28bb7cefbc94d621f56a1fcba83234b4a9ee240834467306a871ab16b6cacb0e9183e3f3966a6a26569a3ba04e6aaa9d150accc95137b652d3334c85ed3a600ac64977aeb473e38b9d5a2658558a11012bf440cdad0aec204fb0e3824b7ddbb2acc175dc77bb99f602f2288042e68a0b396f780822767bb4026e3fe5e14e98de98f152775aafde31b4dc8ae05b2f6320409304807a0949830f4ad58aae1d018391c00fd18368b27437eb0eac49abed0792eecabb63d8af6a8855849de546b6f6112e5666b508c1f35f64650430ee9390568c794d50de742da00b71864dcef9b9c5cecd0618b8a9615c7e479638ca55e34a82f10504ac94177e92ed19a3e7b1ae1d6730967a689eadb05b00316505ce824ce2cd1f9f1f38b2be7f8c24b919d5b7c563ac6239a9c8bb1f17d0f96f975af467c1cae5ef8090b62747fff2efbae437d1a791fd724e87fa03896c2b5931244ee14e821236f84815b2f51e07f7194abeeeee1113f596ce191b33fc43a467a68b7c685c7f44a930095c77a7ea1e3d1dfe18c37fb10f2dc5d9c33f0c44a474a93b7d208e40aa6aa707ec1e139d386432049019d21026c46b6a23ad2f1e7dd606e807620dc36a2180d818a6634f5339c23a224c82c60283c4142b914827d875359f223a8bb844ca2e6559729d75c09d391706dfaa8391ad267112c22307c92cae6def0d6ae6b24d05fac864c4db9c2fe8588a7028516c0b2272eb26db706c0755c7b68af888e2845af2082ed040879b911295a9197406c38911cf7fd59aebe6d35a3288c3e0c8b35638257e82f99bc0bb9e6e6d8169c1d8f4cf5093f5a3f90bea0eaf4086b606fd4d96a041e47243b0af565abc91f106b8a11e47bed859d2c87ff802913cdd3535ac623aea086ec63c5b4e5af39307f43092df65f1ea5b0f3926ae3b79fc67c0818b1dd3f276af5bbe6d499aceeb04f8477033906810d61c0912b5f1760dccf55e4753629993847d45babd56fd06584a83b88288cf811a4ae1b4064d3d239c0b414c30ff757774314bb8106ef80fc6412a5c56d9c948b98e67ddda7a1372b70ba1b9db5c0297109caa2137e8c3684b6b13d59edf7c157b3fee5e7162a42a57119dadc54a34cb5ea322f120d5cfcf3830838f525a244d6fbc6e17998eae1bd965aa9acc1c54898ef6dc8a26d706ba076d010dedeca2e6f588f5163a0e0182c52af290b8e9e8baf6b8af5db7d7b87c7bec2616e26cf900aeb3adba691e2a5d1a77fe64d7076b456a224964c4a4ba8088c445192a0eb0f937db2a4f9f0d23a2ead95f79bf960bf2c7b42e073e8ed40e915fa004d257aea7dfe879c47671712e99908df6f9c25e9954662c4462186e44f3482db34afd4313c0ddddf2f94fdf94d6849061903d33b3792ede5adeb1a200988dca7f199372bca96dedc83b0f757c605f3663db6f6307d0d822a05b7eb9f45333cd7c1303dda238267a9c900db386913401e5313b3bb177ec2fe9e85139e19224998f58cccb0c86c9ca5bd178a3e693648e426932d5a78c4a1d33ed784c7fbe211d974c49541407792eacde8b41ea3f866a256600f8357f059039d63a89b490f30873868759b932153359caa987113396eaed63d12e12e658141e7a428cac343e10bcd5259a5cd37cff67f89e9c25d2c86826ebdd353be0ef0f53d32b4390ca91638d5c6806b81ce92f1032a503245eddc233ac6689a89a5666634eac0312c0cbd9286dd31d0434f4c5665fb2474379d87cc296b6be157032a5f54ed99981187bf412a453e7b2d9578a0185a53aec01437d77e117d2bb287041f9a68425609b986949e4ff1345b19c68c43828e801224a25d53e776b0698c5fa7f62ff7b3498ff68cd35041126f2f0163405242828463c77411aac2dc11ea6635ce2859ff699d2ca2514d5ef90d529b751fdde9a310946874fabc958f7f8c689579848acfe605815eaff8f70e607f1f2921cdb52cd48f6141a08f08944f17e235c5cac8099ff28b681c04d58d94a5250e3d96ac8091cabc246a544416619aee5b72b44d2a599d31fdd9bc9563591f97989e78ae762f62a753160741035656069fb5d580653be8f6debdfabbae674056c7225307c937bfa6ee31c3cdd6179142deb618c4ec52862045b05e52e3f4f19a9fdd45781657c5b1e8a16add584f7a9735120865010eb45e6330e1ccec3f5f96b79424e3fce2930ff91c9c5130ec1fb61559e97c87c37f07b9cfb0fc1c09b22f2c43b901124ed61d75aef9bdfea272888591a7c9792aa22175b260311917dfeb4597d6d2e1b4a460b137bfdded675a79c0b18dc9f6dde6c1e21467e13fb28252c1753aa7a553f47d53eba8b534f8dafad827d1a39ede247dffc1eb733226cd61277140f8190c9806d1d0299c1f5348fcc253eca7a011c7f0139be60548467fe3e2586472b4e7d02e3143f2a1933b8b422e0ac96d26bde4a364198e44afe6f6b4c7a794dd7e8e6ed80973c614dbb875d4e413bbe0c10feac2d7c315b7ee604b54911155cd06cd7f909ae5a416c69427edf5ad4abf2296d077bab7bc1144107a4476fcb04225189362daee3c83cfde8226d208cf599fc8e7e0a6272c6c1cd8a21a4e04fea9dc0587a3473cb59d036bb0cda1c7d8990b7c2de8e9d92575809d5446f0776ede2ecdea154b4ec240db50b4938a846c9cf06e367daea582fdd8c7e9e661d8731d98d0ee090af70c8b1b69120c4e4c0d6976bfa6f3a1fb8074e1c5f43f215df113cf0ee55a95dfe8410fd682aba61f978f38723a88bb5b632ff787bc9e5d713e6f85ae516c7d025b641c79b6380d71e9b6cdf05d4e4fda5e963502c9c23232f99b277b8b88f52f70a8cd792be11cac6166018556089ba3d990f8b07f1b0ff4a89c0561ec42db8ae3dce4c11164a0ac25949ee0faab8974f9ca6f0dd06c44bc3022e2f591bf280a1569f0813f056f413ec23097fb95801d82aee61bf0ac62c51150a0ebad0293fb4f652bac353aa4b181b450a1bbada705042946df282d65ff7dd6ab9d66a9577e61052579344369334e09e9dab8fb43a55a991ee2b25fea8b3a4cc28b47ae87047f4fc9e35f227c74143f5e8284746a0a7b7e39b0a2cca64052f2f7d5411b6fd77c59ea29f4a2db16b2f0acbe4bfa865792c14b5ce5070429984b2dc33ccb13925486564e8a62842c9c526016f0d6f14174b5e2fa4cba6405fa31ae3e369d27a3fb7ddd9a6c0ef7c0d93abaf6af30149159250f24ad0fd7c6a2535e54f3ba34d089d96217fb46544ece3d852d5f3b6aa6ee0ca376071c1712ed41aab740d53cafafbd421420db3646d4a9d0702f2808f0b1d30f12c809a3c5257c6f3fc3777e2c7dddd9a6d44d198da76b45d808162576a225141d12234b6d1e20316458d69507789ff722b5d7fffc9f25da60728495513ec371401c0818cd8f2a3ac406b6b853025f5ea5a55654e0bb036c680a0b0d2fd1e2d4289da4995a4c71c1a37e535ff910043b8c86dd5d787a1629358f5775d112fdef0648b6b1c142c1be662a694633326baafcf8d5817b863ec86e77b4a68d151f900f59f6b45f50cae317cfb65811e457f85b33e6888f30f341a01a9a54cc841b17fd31384ec7e3c216e4bcacb8f73aeb40d5e50c76d3b96d1cbc690c0f8d33355a8c060fe7406feddfa08f1cd51dd8d882d82ea51a566e03659437c7cfe0fa1c5dfe98cc7945ab6976417f112e0e30d4fd989f44769d8fb81f61117ba86ce85cc29806eb9803a9fb7b604032312921f0ed8c50a51d210f564d40a79ccdebbc8a1322a43328deb4b202bc744e5f23daea51ef050e58cf188ca7b0c48867a8badb346bea34bcec089a2ab7abf9be8310a06f4064ea5e866debd915d9fe4908c4f370c372d9d4784fdd80d7f2557a25871b37c234852f9c8dbf4d391034f0fec9098b8003323081f50a4d47f66f68b8e4057afdb916ab5ab31396c6fa00e2948abb2e79acc442384d5e2453b1ce2c40da652a3b1499557b9d6c28ccc6ebf4699f2ae68ef3f27a86803b6ef0ae188a9499ef780cb614e0b1290156410811b22edc3c781e1149558353470031daf07ee19b5cb8c2e856cf20bf7b687d112d8828fd19328f3cc86f00b7c49bd3de6cc625b88560f56044fce1888e5cbadb4757b1a54028c9087ebafe2a22e1b219c75fb589396901e3395f8180e4f39a7fc551b7aeccecbbd0fa9b35f1e04151192ed3b726097a83f72c947f4839bfa03ddd243cc5c891d53379608e0f409457aed303a9268519e0af7ec9d1d6a150b516b9d8d458a50f8da2c892a922552f0c8c9d81d8f8a41bbe7ab25760ef4ffda5f4bfde2ada2e51dafa4cee58007de1e0781977ea8a520c89087b14876e5a75a062cc527b499d37bc34a571222a4ea6e50e9782553f5438ef3fcf8f986354ffb9d5518a191597e2b21ecbb9c10f77bc500c8903e5330f446442f9cd57fbbc546a85b2aae9474169422abe35a421329ffc3390a73ad8dbf49f80d1bd7d3a92f30ed44726e607b7fa74480bf36eb33972e6bdd14c47d4e6ee1bdf979e368890386647dfad9c64820d57d6c3bb75ae65a2b2577ba1d53ed8ae97ea1cc5a308e9bc1511ae5aad75f0de7b99b5fe44145dd825b59642fe23bbf3971c2db459c778412427fd9250c95a0476ccf582195105dea9b08e7eb25bdf22e12f7048e1b1cae87fec0f72cd22c039603b1138685e99c2ccfb074a35b0afec00852ecc36626ea07569074a028946ea5670738c56b5925cc15fef679f54b69ec496ae234ab96d613c14c42ce1a48028faefd6933e11ce43dd8ddf3f5aab491cbf7e1ce78049eb5e6a290847ef6f90edf185d0ef300296811b804060a85c9b6cca892d2b339133517d945c3fc732817f64a1c7dc6d4f7d7f9969c2331bbd232a7edcf1ed2e05cbca55687ab895d372d080c1edfdec293331193716041b84a3e4bc27869933eb42ecb4e73a8d9c747081f6f10683d92ebb10819f05fe64d235b4266d97d27504dfdac51d505ab0620cf57b57150b103ab3475bc44c8d85882cd1a3d3ead41d08561592064870bd531b8749cc3937a608914b5662d71061edb001df8b5bf4c8ed36218d479c563ef528909c8c5b3961ab0146c391439ab2a46213c8c400750708bd120878d09ec6ca7f5437f368ca3bc9d4dd1817cc2581f56e6412b06dd1ddee1c20bcf9e0e47b5cde5fdd4543dce3b11d587043fc79af60dab4b4963db2453a94c84661848095b53318d791a70b3b4074940a65cfa87087f61569fd5d4eaa0cc616a56e0199e432fd827498a64edb8c7f1ac6c71dfecb613ed330d9c8a76d6d2e2dbe959b0348a11f5284cb7d9c8d70344aab4579011bc5129dcdd3a01c6373b69ad816d89236ac554edd59e353cfd671c36467db13913a111345a0e110543fb3ec21a71d433a9c8d1ed74b17f554e0e444bd14c71baf25ff08665f16097dc6d99227a970ff6f65d03ccfaf4b5d83d55e952bd5bfa4ce3a83863d14c86a0f6df1705ff54d8f09068ca2a7d63511f6e8068642a038d19945278f9d28963bae704f69a132e69ccb345b5744a0da4cfdc911bf3c3e5c80903f5c359f012ba4f22265c2a9be3ba9915fa4960fd8e77e1907e9d37938511386b67a581ca47eb0e9f3ea889826e531c8f9a9b175a12c8e8140ec0ef959db4f2483f9b2356919c3934c72f7722f7642f11ae62c67f402c8a02a3680e4bf7cf864cf548bccc248756539687b9e6ed129226dcbd8db29bc9e94600f1e027a78d4166d5f6f0810782ac7e4d2266972e411846b45cf4998626fb106f93044bb580c5e7cf8ded5811f7196e1533d837a90c6d6f091502e40625efc3c79d8399adaf134625fb0620ffb67a245391280c0c10ee8154e738c88eafab161133199616184e20ea045a17a7bc23194a79c5850f7982160d07c680b1bc1be231687be7053458a94d15fca64a3b37b7826fee770bda2fa3f2a804b724dc34565290d26ac023a9e0d217ad872c2fa2b501ab76e9cdc3081df6a93c2620ebb1eeec5c0f37d024b66d3e21b0a82c089e485f46b10093fe4d740fd83df7a978252ee00826b660d8b7e04247e64eceac0babb24ed56c1ce35b2ac3b74b55ddc7fa15055e7781cdc51545b76362bdd7508b5c514abac4cce29dc709235dfcf7cdafddc5401283e9081ae54f0556db523a45274b9dee1e76d59b2eecb83f9e32d6e0d2b6b152e9194bf23a69b907780c4f9012f8276ab4d9f87a5f95f7f26376c4bab641c525fd314e49d04cc8e5c787f27a85eb146210f6ad4bd85e0e5893d894066d869a2361b6f65dd3a187f759a18b31ea867133f7c420811a6dd90cc9e6555015c461151c8400ff78fef5cdc4ba44fb1f6ebc9651c255f50dbdab49ca26a5cf27e44a1f203f1e6d17d0525ef0d5b33a156faa5d8b678b13bb22f332aad94bbe48ce81780d1dab9a9b70d5ed3427f3ba29f230f40ebf8d628b2ed12abcba058356048ff03af78738c8082f1ef0187285eef87b1285a2ba6819b25ded950af237904e30babc53304e0516f4d6dfcfb90f1f375b4825d210143f625327181ed13f528da2749aab853dbd1792dbc71c3c56b06b9f8205188f680f08c4ab350188a2563f79fd3adf373091aa3361034c0c65215a0f73c6b4a1cdd8c47b0e52ceaf436412752e5bd160cca4d7bc6e0bc00931d5f0733f12442ef1421d87ed0dbc5438c2c54483bd54abdd180c1f36851eb93bafcee25bf32c23173247ee34167302c3e1ccbdd39fcee14a6eda9c325371a9f083c684c0b0df4f85c4e19938a19ec869517946863d9867a257c44045bf8d90e5ecae3289c084f57c304e2f4fe89c61191886863e5d1ba69fd97bd1192b87bbd03af2a2420ffa958b31a51a978b96bb3645e31400bba0b33325773091599ed43b3158cc4a587a952c9ded0e5d53ed0f6f4ff365eca151c709cf01893722d4bb820e9090020bf8c62b77911d7758304d45d0e6d1a36e9b05266826275fcff574d6f3d8e5ce9a09a4fc39c1addbe0f83046df783930a19ccf78f28f3a04c2616a0b78a73283defb1ef458074fd99e74b112758aa86235b82f26c638739bce5ea3486b7e954bbabbd992c320259f3f65e01412f289d05b76e5424ce956aeb6703a25bf30163e81f10287a3467cc3e8e670fa5df3d9e5496e5933325e0813c7feb282d616b63ab75e68ac46b1223edeeaa15f302f13b5c6549d2e89caedf567b880de2912a40d1df96f1b35d486efbe78b6ffe0bb19c8bc3222fe687afc9a50deaccd9ced5668a522b1f85bfc622658235e84bb9fd56f143de06a74db512d83da37261342071eacb6a958c54db98abbd3eee9557794fc7bd5136f4b0ccd6616e9daf3f9cbd98692c93dfae1c086c535c59ac4bd410cde52c6bbe6e666540f87097012c58e99a639f456ce3d28e0066c05dd710a023224a22ab6d09fb866818abc22e55bc192f99936714bbbb7d26f1d745fa3b61d57c97c44c878b0a4ce9814a3095da79aa5baf43faa2d5c3176b8619e9c85576f3cb94603dba12c61da7b48900524fc987c2acce2a7069eeb12ab8908b8a9d481829aa89451c8bca69aa7a0486103d6524777de01c68bf1360dea2fa91fd876ef6e368ca05483b47cca05e1ccf65a254440e71ea31a4b6ef0a7261f2ec2d389ef51dffe4a82e3a74e8c12e6d47f96d85665fbeebce133e80c9a8952d0d980c708be0c6a36da8f35869617e51635f0337d7defbc9e28fdeb397b6e5c8729a11f1f9bbb6396a51a6e2e46c24778777bd34b58ea439af1a2f68c43f78a429a889055e47ee322bcae74a9b71bd839e5267e073449a3696fb5eb8b0df7cd0c4e66c9b374e30f50f061cce4c8b27c90e24c30ca467a00ceedcae9bba31a209abe2e3acd51262d086eb02b29fca050a028304a80d5edfef1d10f4d36c18a045c6ccce1250d00f9f8a2c289cd0363f4e314e54366490622585a2192c4ea8ae4fe8444027f991e4f603e87238a78b7fc7a6d84e1c20529bbbeefb9c06eaac0a75760cfd37718933e9ef56972fe939b4c527a284b946fedcd293550d3cec3774412e1d03c9c54773536e82a46dc5fd93bb38c2fa522b4adf75ee7693496a0bb24b1588fea646a1bdbf19c278b8f1931153ed58a9cd72263f02dfcb67cfb3f90d12e630d2c9fa8e51d54a8c469674b3ea91f6ccfd38e485fd20e615575f4486d2e68bf21507df130f5929f4158455771d0ea15a5829d008fc4e75b0449bb02cd3ec7ff991945807ffbdac0b437cadd06e32b57b8de218db84f5979ea4a3a8b3e3231929c75a85a9c945ee41feccd16ee3926bfc6552250ac312775e01d669db5e852131671754113eb16ec0ca3e93c84851e7251ddb4837477279cd77db39889e304291da4f8ed7cd8031bcfe8acb96ab91e842e6ed69d28575023e3a07c54287a71828b8133edd0ec5cfa94622b31de0fea8e76475f1f7566c113e0e057a89fc1a0714528f19af3b7fe4452243b917fe5e14d230104da4747d4374cdd73cf767c7119c296eded2b291746d6660d8f1df37cfeb561b8e2e021ffa66e5270bb535615b8f740dc73e754034d4b8d7a04ea483bdf3d78cefe2011fa8f7d7e16b055891120a9f7e8356a941ccc016f873722f75fb98289e4c25dc3b87dab924c4f9c381e2d6c659600c1a5e80194d58a950a84c7a5db246d2badd4c3859b580eb8af27938b43e608530b6a1d935837d986ef93bb36a508675b9b5fa0f3d8885995f5f8bf09c0def758b0e1c361cadd1c0b6525b229fd47ff822f80712d404a186840e4e3bd46d413d1cd830600c19ea89a3a5ad7b7f826388609e29dda18e4d5a3b02adcedc4d83f0b56f788f7ae61d56de2a35cc6292293eab846f0974a090c0cec5c2b3b3d0b37043513075e8876ce18cdd17f924b21c0cede93cbb3f48c9400be4c5439fcb57962ba03b365c45b4260cfbd34ee78334e2ccf1d06c64a8ceaf95710526a34bfc30aba2b3748fba3845c5898412eb18401368265f30ae745e57d980f560320d89847d4108cb525679201ecd35475e7ae044b2f2b7ecb777db2cb1aa4bd00805632ed78cb05a0cdd57b444d3491907265374942581561c0e5cb1408d2b922dd85e9c8a346b50aae68e57b9e9eca1168c0cdaaa75fea73aab0855aa49633d0061837f28100f80dc5e786609239af40f9222b6f0f969593253ca777204b8f2da309ce41199eb79ea03241021d8afa89c10874fc0aedc5b1f2149616768429b43069cdcbc6fb9bb05eabd3ff82314515c5212b04cf2c6988ec13acad720dbe5de5acfdedfd21adf89fa44dc2363e99338995de7210cf9b798f500d1ba5e97d557d7de4ed329ace7366f91d801bb52d48b9a6dde47a23b6e0f1498732d5855f336dca1d03b7fa4121457abcdcb9248a074fd2c065b4078d6af86d5e852c6587434fac053fb0106ca53187119d9157d5404dfb66a4dd871975a49f6723666f7e7e87a28017a815e9d43e88dbbbeb050a8935071f5893d0dd8e86f7d85c679553ee0d54a7493f617620d54c06ac899d6136cd6f7e7e2a72944539e62586243323afb3933ead7fa58ddd0ba709c7b45e94121e9d5d90b3209a4868e9042bc8ec49fbb0b68505c4a759967ce977872f14e006a7511c35e5e49c86f8fb3750427a7b28f5f9d5d074aeec8f619f5f3e11aee5f045b85dd52906bcc7e0058f56860d5d47182371e257f03594d75958a8b0512f734ef0b675b90edf11fd958e3f88db75839719d9e0d12d395ee92a954b038bf77bd7b798edb0af2956e229e7be2873fd8c95f5b9dd6540a029475ac6fd8ff170cbbbb66157c0d7903b5792b59d42c15a3e633156f5b342644e3f4d9f5e6e8d02ab960cb70768e282422917ede03dcd215d007497e61cb434b0f3bf5fdff47b5d5698d687258e6a4517cad3ddbfbfe51ecf8aae11043d1800d1e495f5d3bb33b74e05d03c55a5079c97e2936c9df7907e1111f993d5524ec8196747d26fc872abce05b6fc5a36c9085fdf2aa3a413b702b621c2b3b314806b86ce16f1d0a624c5acf086982b7bf3c7be108f353feb68dafe38c577324e2d12e1c0d189d37a7344d165840ede431d1828d03686ae15e72f0e10eb5034e3c74cd02476fa673fe13245b355385b78dc969428ba422e32cde17eb7353965bc5651f39332d14a5d19c93b9fb5708540483f1a6df12a8011eeba4ba432ebc6a8e32b65648be2c91d0f71251fa77f12daa84bcae4fcbd798b4c99365396f334fcdcad2cb538a0c5d6dc872d8f839d1b2f8576cb9c2c27808758d1078c380c3615e63b8bbf28aa2ee6141a096ac3cc85f48f171e93149db3e680907e583f098063de64a8d1a32398f2549061444c1ae345da852602ad8796f9bbc21a0d0214b4d0df3dab992a0c5b67aae3e14e005b39fd8c063444e3175d6a0ce097b36d0f567946f41bc762c77d4e26c05ec147078cbc3823e32d3cc05eb0b1cfa66f161103a3ca8ac64b437413e2401a0136a8701b10be36e0202983cccf552f78b760aedea9400c13f9256592ecccd2aeadebfee6dfebb1e9aba03ad047c1f3fbfebbc093bcd33ef3126c6e3daa88f7efa6014dc26d195bfd3eb62dafa4168c0c2aaee9c563e2522e2dc3248414ce29fb65671e72c1cfff46a1c998285e89aae5fc2290803e1402611f5cee8338fd4ea8a17efa9345b75413de71820249b0882de766f1a50d36b6c8502b935960c8d6c5e70dc2d2c6fdd371f77323d4d8852f796bc6a4c69d8840ac56cb25678a2fe1c122399aba41b8c33fc10b2721d5ee6df52be7260bed4741b72f025e5f0f4acea54644017d489ded8f488ce2b73d48ad5065d5d107e53cfe0bf1b7e7028ea80ca2e5a23c9e9c262e0b6c667892c23fc22f4a921b34802034821d2cbc6072ead3df9a413cbd03990ee564a95fecd8798739f6a4a0414331ab503cdbc3b5fb0a2ff17d17d948141107a8ba5848051c11c1c289a3877745d0b352317e2672a2315cea8e6533fb492960246fca7633f98700e74e935c0e39a9979c790461ac97d0f7d8dddc77f1bc8491a4e8934407b5383ca5438577d2728c540036b5576a37b18c9a720d6e84fe4bb03b01af177604038de411e2f29aee9cb09e2b01078b41b6799da12a0473ac972e686905437e33163c6856650c193e2b9394abb9758e32027a46886961f1bc000dce862f40b6cfad442c28fa0ca02bf89113cbbfd8ce991cda69446749144f5ac578117436a0df4776f814b7a9dd14ed51700347059c03a7da4fb8d08373bf7abaab4cf9ebc837d7c342100a0238fff15d8c97ead3236297bdcfd8dd1bd393ce8a6fdbbafd5297695dfc64afe71ad6b75194e43cb675932b36aafeb664a029a5aa294a116e0acc344f830773ee81bca2defcd054dceda6c4cc4353eb4ee7fcff25c55596b25d4cf37a12d0929c06d7b7a4422958a6a68b24d822b9303bdf9fb0f8b47528b462205b4183438d8369d8018c6659d664e4523522ca0ecd74180218906240e38bf6e58132a206ebab996ff564bf518552811a34df58dbc976ecdaa45e8aea105cfd7bc50a256c964c1fac2b720a1d4b13cc758619c2b6d073f06e1650cc536992196aaa419aa9c3544f0b81fd613f766c3792dc0e354da93a3ac77fbc2898a37d04ca031a42feec6ea74729772a577e3e33352a34f60d56c7a970152af376fa396699fc03bd3f9307053a79b2f0ca061c9b9ba4e1f1da26fa1f575c717b64b4c550aac8df4e3ac1cd8cbb0fd1d9e927d89939b25b2607ae16a38b134283a96cc3aa64f244f002aa664040c545621c11bd7ecf2ceca7e09fafe40f4e5e8e95fb82e6a164c39c3490f768dddfa967a739fbb58fc696244f13d74536323ecacc8bb57d1130590521442be9d6aa471e44671d075bed2fd9045a9a8218549f4148609d7835a9434784a23722f9b796abba7d5b2c47ff6b6760eaa25b7c871148f621913ef85a0063fdcb462d280caaa555b13acbf49386cddcaea982efaaa0ddcbab62b5c305e5525720828dacb4e29cffae9c7676be5c701e8ecabe0d0c1ea24005f71827ccc99d6e701c88a51f6692d6f58d308f9b911cd4d73442b62991cdf3af0f9b490018c06c9e982098c4937c07ab3fdea4a75fceed2bc7707ad13991980a7acd31387e577dacfaf221c5af72e2e0c1606797ee1d6c38eba63108abeba826f5f19b4c6627191bdd26841437e3473e69e8fe6981c26610f189fcfd5fdac007fdfb9a386d5e39ab856cc633a80a5853f326ab2a879f96170799193e88cf64f47ff0315765a4c5295958e8b2f050073e4ef114687e6736c694844e8f4a33edbb20365c3c903ee4c99175ee7fd7f6ca118f09ecce7da489d82f6ddbe2607519fb30a3c6be88a56ceed347d492c6bcb468cf4dbb44b28a1062f334ae9ebdec6ae2145e54e27db4154e2820fa93d8d24efa2d13c310724992bb7dad7a1cc201aaee91dc6b09687d80cffb60d9f91468ffa094ab5ba555dc385f3e75c03d40a0f588ba86c5cde7df559e7e9eaead48a751c9f560e897e518f00d7f26f8d88738dfae7f0051d2a8897510c64a9eb0168e5dca6145d1f09d02f7dc905eea674f0b9f5600688462670e33f2f5ef82af13c7f1553d4abbe0101a151d2d352143f155d3e46dced2b0cd52321b45ff7d0790171789901bbee4d3fbac492996084534d6de19459cca6be06042ac424672c2242d9075ae1fcf91039cc93103334051b12de7a05325993f677db424036632f60b1de9bd55c946e2008286f5030298dc47fadba6a62b5547f993f81839d3aef6970c36074552ca18834107cc0f2e0739d8a87e85f6aee4d83303ab8f55da12796713d54dc3af22a21d300d3721d57f3f9563c5d479db269e87972e86d9e3fb64c9667cb57dddb623132f00028e22caead75b50799242693bcac4fc864ac961c876ab1ee8bb6a5e924c6258429f53b2714070ce7808d9f3eb2ad9b43f7424f00e19f4d377f22a42350488954f4311146a906e093cdfb53deac0575f8b8bf47ac38aac1f6ef4297b6c439d858b33a26d9314117b42e5c246d5d6d6fb9562f248fdf1f63cffa862e0d363c04ed899c900e74b7b889c32fcee7ee7f9a0c095cb5ba5abfc13a1111ced8edf21864ae4264fb7f6faf63f9cabbcec266c6add6474764b33c37024075758ad05d6c805442361788f6dd27ba2191a63d90c60aa7bcca66573818c7c5895cda71e088fc674904bd491512cfea7a5b7aa3c3a2c524dcd8c089014c7cf943f84239673403173a44b0057916e939a5fb5604249f3670d9c212630663e980db9e83965c34b62cbd0692085356163e87fbca38f4c3e7a1463b2462139e29d7adef1f4660f2aa3bd5e66bc330458ce424816dee2d16161da0a95e8cc4ba2d239c78dea5f2f16798bcf729748e03952f747a58c43d0236b2ffe3501ecac3385eddcf4a19861bea2398011a5ee6860e459b6ea77776926e9121de2ccce29562ca7e7e327ea83d23e6c82473923ee2e9cc719afc1f0deb180d25d84792ad4415b90ca52ab136c97878e66acc48772aab9f5f1ffc7bb02d432cb3ba9c15b50c93a11d390a22ccb94140ace3a2c7dbd7eec4f214cf4d0d57320d75994894560a6d87b9176b78e0cf4a7963abd4dcb774e0c1c63ea4c7d1e0db1704c80f66667f0db1d7ed2d4845be5410949f27e6f3dec33797012b0802f36900be88d60cb40b2eae6c25f4d5f5b0934d0696c269f9606bd297f319a7afb7bb99262027d5cfde5eaec29aa6eb6a9f314f5fa1b23e626cc3866b0da85166f4e277c102b006b493832716dbeebce430ca53e24d674534cf482155121477df64a7628de6c4a4331953ccb012bddb5c95eed420c836b0abd28c247b3f1f05cf7202988bbcd8be50c4dad2fc9dc33c129aa371a38ed5dbd5d0b5f758b38d34dbcea4defcf90751dc6bf88a4a66fa4be16ce0a8d5a6e1b77e74fb64b747a965111f6e683e248fb40137e14442d01c11daf51364be4c5bbf32052d68c6c9bf0c6a6ff884704552a09f9a9b873c072864c66a9c514fbc278157d72d4d32959fae2d510b2451cb56b990db8397fadde13192c4500f55028cb89c366f1e4e9821ed4c9e2728f45445b3454ec84c79524fd0c70af72452bab7f547e77e63adb09ba3fda5fe88431fee005376ef39d8ff3c6392fdcdcece3d37d61ca9782fc7206c132f20f7457113c214d41a4d228f6eb750f8820598e71082cde3fc8d7f7c987520a7a5ac28c5f55831c65e90c06b4095c53f6041c524476f7dd1cb83e99beb9b9dda926c5770d6e9c9bcee37dd11abeb49af341c8fe432ba9e5076359abc1a47a9d22bbab750b1d472915f15b5f79095651c5fa02ce2f08479f03d0fa40ac4e519b18fcc20ce1c1b62f1ebd2af18ceb354fa73d0ada348d0ed79f4949dde6a68faa58a0d5e3b03e57fead86a66d8fa26ccda2d20a6d8e9070c6d58d98f3a46c516689d9b0165a5fa06daebacf9cffc17ce924ef7a6f345753d698d0735866f739882a1c90638904ab55e86bbb87f3a718e75bb348a8824cafc41addc86245cf1b2094a9e44aac2668c302f91171f2c6267573ba68c3998991ec2842a9dbc854060886055b04efc0522008977f50451dedd4aa193383d29dca95f2d57dc4f06652d3906db6f3f108180bffa8f3362461cb649db3220c7e16e40625bdc7377b6e916dc7154bc47235797f6964a9b48d917183c503168dd678f173ee6c62c630d5975bb9a979477efab3b0522f21438730ec40f352f226577648025473888739bc5f9b101ad3f8b82c1b87471212eac2d0457d10443776fde75001388e72d897945ba4351569fd06f85f0bac048f0632e409ff91373a211952efacd639daa63706f4e1cde84527419040c11022a075eabcf00614b3ebb51a95ee5ab25b67ea9ece3fb8329dda76088f1bb3fa45e37c31afde98a731350f27eba17102ea67c730dc0f29d673d601845210983c0d02439a0e0573b1dd7d026525b1decde7077753c2b9a81b3324137c70fb5e725406957becd6a882063c97a033ca1c21930411ec8cfec800b7e77825c592ac441c1fa38b0e00adadf04ec75f2bde5ee6693f948e958e52d6899c9b2db41fd2e773ce26394799c89f8faebc61323cd32545aac5977f7faf0402d9a62122cfc9411eb4181bfbac413cff927ff7e1572cd96db3fdf4ee1ad429998bac9a027d0d0a0deab9f220a3e0e71ab24296720509c037fb31418d023da416d0d31e15d2d663779c8f9ad94bc539b2bd7c3d035fc087e45aedbab80d46251f3f8478ca293c2b5f44c7bfec9e2174f8bbfec5e266dc5943e5d0acf33468bf8a4a9c506eb9ea507da417e71da45d5444fd3c2402cd498a10fa2265d2eda7ebdb02400a8d4e712fb8a997aef3f8247b8f0374c9f6405bfe77291e8443aa91cdb782a63d419746f22b916a25b3260e37c5bcd68eb4d709c5ab5411eea24707df813e9f0791db7ac05ee82a29b34087f066f889b124ba8c86c39e9ca993d8c9aadcc7e36586622a3c00535089888471c16829db4f0287db185f44c9bbeda072852a14c5e801e46fe0eade7fa6ab3e40607dd7aa64b8ea35882f07e096dd5b6f363c6184aa594815cb0eadf4e300304b94c3b930f468dededf3caecc9af0a635b6a2001df26b94384019363248f049c378e4ef8427c1b1348a533be5bb6db08ac9ccb3ded3ea4dbd0a1d57f8f220cfad8ef3ac5d9ee900a7e4e7383d6a8ad237cb995b35d590ed938feae1f025cb056a7881859177526f12244e1334f6d690a536d80568f6cd7fc8fa5737272574d7ad1b47561aab07f83e65d6c7c6e1cfb5b2f5f445c0e1a7fb9e65b4aa2775e8071dbf2d0b494631e269c46155e123cd67bbe79ca3e0f7bad4329fdb1dad684ae51813d1ffd4398ec7deae5721c15186f1e5750b28e57bfac326061f59e3ade7d0d7e604b322543b598259a2d7c93babee5088fce957e30e9b0349fbc700e4a5959a89aafe43ce4a9a5158783514c16c00d533da5c9afbe763c9a3b7cc6b8b7f09f17fc9d578e36db3dac54c65ef3eef728543bf10d59f78bf7bf0f0152ad12b6064353d96b5b2ac53cea56db8291ece8ec84c921c76e29ff88abf0eb9611bb62824c281c5a873ec228783ebd374c109c0e501bd8bc2f86d38c1f6e2dd1ed8c6ffbe939923da6cc932bb31ff8602e72202f19ed6ccc9240a894af508f2b24fd9c829e2b5c6e8302db9a30d42f6accc805d884d6676bc80843b823d92d46a8c06d9535990fac2813a310fa7896b5ddbce087139a0afa79c410b68d25f70cb1c7a772b28f3418b0a0d7130412785a2574cbce6103c5e5b00f9ca3b18a2fdede13d87e2580c6006b7fc650a129b2334410e27a9ffdc09b8fe51a2ea422ee009015ccb8191db77a27baa661f498363e4e17c7d40f6c564b46cbdf6ac04b9e6bddc9193e8c376bcc9e2e0d27a2848a473ddd1feca4f69478edfae737575581daf9c794df9f9c3aa8563079b046ff46ec9a0e13f4076dbf5e30574d2cba212936edc9dac57e29f3367f5fcab46eb19ae6fb6dd0afa09acb22f163d6188417fe49e601c9251cc754f29748c39a175dc5ac26af07ef6d66e4d5501b67184156bcca9cba0305c8c3934fe5708c11f8109f5fff1b6d1ac1e1e947c5398b30d8c4f2ac7d56720ec70cd839012b32391366100993583cd02e79eca92687ee81583a83cb9bbebe76601ec05c10ee265b5830962adc2cb19046d3b300dfb5e4080cb429de9eb7d9f0131ddc3e66f1ba3251a1c39b1ab48c7ae3083a67a5ace3edf145edbf2a6074b2e96e302ca27da7c520fabdb8d8b2931728cb2f216f7204660235b005795187880e58b4f08ebb8acc5490bde0f71d0f3977bb757d807f8623de74a6e41e78cdfb2d92d6624fc862ab4b1790445e0e4de4fbb1a288c7e94b56cb94d66839c045853c92f6bda17d14fa30d6190520761e4f92ef808feabd5a3c22029bfb791db2d2a334e9cc43ace79cd2b0cda13ded57ec23408f71b4d95b428b68263acd4c1c1b03d477e4c17d096dd0af35b751d55288c8e282c3c8c71eb4b0e2f91b96ea4d83f562ddad3a520871e802700dc8e46c753ea5bec1c96f14fd45a06d69b71d559290fd4cc1e1b559a5614eaef677e385c88b00de125ae9d47886a02d82e52407b68c8b68104bf9d454d772b6fdbb0383a5da2c315aa46398d38d22b973fa887ad74978c920c98e3501e7e461e460cccf9be2123a9a52debdfa2b77e45f469488ff213a7d16688e9ddb82181cf205f9d51271b92f671f64479d16f2573316f4520bbc5e848e4fa910cdea796a92c80f89c6e24d7be96a925a3c9ad20cacea16ba70501653499564f50e8eec604355acdd53a02e3db07d7cc2cb2c1ed3af19efe71212c452a5caaa995357ce28d4b7a94cd5ef6ec75363646ce28391d0f2d33ec5262dee5ee9cea2ac7e250c7ef38465538fad231fe88656eb7a10fffbedc87782270e04485fb041c2ed72ea360e3750f2acbd68813f7b70f44302ac9e25e38512dbe2d5533ea63cd3506dc3b47dd8df2f0c4977dbfc987ee280347fdbbfd691ad668744ba656dd7bb120022720655c3931a17554f765ca7327aa61f246b7ce54c7351a528e7918abb51934f7ea60ce6abc1969db467ad0e087e6172c19432a12f626b913e616fa4f66781a0f9b3816c886368a516757ab6a970ee414defbede5991b15c102af2d6f5038589994b3c543fe77ac1327d5265ffecbc3b39496a3312b0433ca849631b24d1a1ce270f3dca6ad50dcbfbbbe50618f51dda48b3504064233c398244c97452b049ea0234999ca6842a1218bd98cda732b44311f71f259f7a3f680eb6a7e03580c0219be11965135666d0631e935782c77ba3815dbe36d6f3d58232bb2735e475009af7dff82bd70100d66b22f43c22aecbfe56c593506010c1ebc52cf3c25b05a1263096144b9bf3a99bf31217b826aaf218a5096f745739bf5b15aa4c50fa59827af458354b0cb7931b7173118cd0c8518654b841321c746ff062732e6a065f3fd804093e4e5b7484d49003d5e8867116aba1182c7ed126471b60147a172758a85eb701625abe7c1822ae919fcf5206f60399819330ddeccbfab9de82b1e809c8937457ba83ede673a55e9da26563148dc1a2003d696c7b83fc89347d043b7235df3b66d482a53bfcd1e8c90cb68a144471f24fa673ed954b42e0a29ce1f210b43a1db013c02932ebd1c420df9fbebbdb28151d179892120c2a44cceafb47c0647ebf0b013dbc7cccde2324380f98db026c6a9f247ad3eef4822c232140551d0954dc22e10d28a538da66b1fe2cd8d297cda77ea142eb73ba6f86740fd79c801b0bc0402c473af95e6ba4b316e3de8d7720510934d85a6b81b1324259a98186bd3dcd70c15b4387302629a689ee3117fce545bb0cd761636d1b84ed938acb27bf74faeceee9982a3e49f1e64cbcfcb78c8a321477cd8903033bc6b10f29286240bf4fdca9de13a89b6f31d98f788ca8e1ea1cbe3e801c71d0d5b36ed57ea670af806a618fa791da592ccfd7bb0bd350dd8edb03239faac30db9fe42a3c73a94258efdf888e572ef69e5e5f78f3be8181d019a97d25e8689277cc9f6f1ee3c6c64124d282eb31cb3fb6b429b02ca85c9a3ac58a929e3475c65432e364d00e9def595b57b3d1b78eda8c0e8d2d236887c3fb46a4dac4148851e44ba9b8863e09130f721d5c6cc74ceff298f91f3bb721d8d49f732772927b22ec8ed8a9b95a6f22214930ae1737f6a3e4421ae3a38eb79bb237baa20eb49b99cb2bbda2d9e22cfa666a2d4045f0f4751f93cb6fdfe3ce26fd844fc43b0556ea5130d501fb9217e1fd9f60c67421ef76660b39086eed3596e03f80eb12fb5869c2e41e8938ad397a4a8cd3cecfba9c7aa5c0df089c2c357e75b0d5e7a10188e5570a6f34ebb4c3e9b3f797b8f33307cf8720595095341178d1050405b7bf3ea06390100670a04f6ff91e09c5695391b9bb608614c532878d2055f7e300ffbf2d8080c939cb8570ee3aafbaf2d2bceca68ddba38d62f766ff5db2f397d8aac0f9392f1b4ddb0069ad9c857cd430efabccd8371b689ddcd07b7f486203601c5f21874d34ac0f8b5f7649d9735c3404f2c9869b8ac5dc7f3f1e20a81f94c63cadaa9d84541fdc26bea9201f0bffe01636897f8ce78508b52a508501075b66d81e71315d08636f5154258b8ab986e584ef25fb6252583e27910086f7556e4dc757e4d6272d69111021468a5a64f16de2da9c65ae35ba6e399d95344c9e9eddc77bf26371a52f23b68838935d4362e15a306e524642923ca082f0b9777cae040170905662dedda81de19ae93b8102aac536bb8b0b68ea98fc1274da0bff9f3ff2f8dda0f04a743a3e0af4aacee0e7721677baeff1be40ef1e3b367b8344597d459f5cbb16c95eb594fe5b4eea3208b280c8bb09e8b0ba6ea2e1dc4133ffd989e7417360f24bff183ee29873218911f0bf31a80d42f737b538917b3139afbdb5623ba057e62c6bea5e6554d2522f6b002d264768be7e71e027e617a51d5f957f84d6993274f6389ee42d2fb2aad6e9e2fe1f7f839c537e5d0bcf44534d4375ebf9e5a752486aeff497451f3a9343182645e65356590a4cbea94c6de944e725c850562f9f5993bdf10cf1793514b6a9d7509fdf579422667057d1849ac502998cc34f638c48c0386990ad49b08166b711da899a19f8a7d898f9158ac4cb9369c442445f9f3581fc640c307e5d6cf27e0d0847db8d94b1686670d92262ebbb4522d8e58c91b69528682faff264c43066e0eeb3e60441bba405fd56d6deb60340504724a101c2165f960925ddb9b55fc7ecdacc4d078c51270afedc25e240344bd529489fd21534f76a8d32d76e47afea8b39e52b42ec7fcbd7e01b7e21ed345bf4ffa2d8da9c8323b95eb9279de3cbe759f19a6ccffd5a9afccde6ec128539619386f5d1227bd25a5ff68fc257eb8b82de97b226fcb54937f63f74e4eefdd0282f504c0f9dc63cda67abfefc8e81f958673a40daa97e03c53efe1cb0afc1a90fbac8a04b6865ec887bfc960ec7c38d34e477adc24f6c6c676fcd7caa2878b90fe48187508ee47e93659409ae892ddc970fe668f0de38b5088693692e4de040b1def8b9b17342a41b9c047b69a0979f5e6b3d61ea5cc632bbdcd024a96a72b715d9601f6059409fa7f03dfa641a991967b87b9f73cf2badcaa6e600c4b6dfea5c5a05dbbfaa85701af9b73cec3e438a06d050688b791aff03da41a8699004a54d06fc7afcecd7d829e594d28df8798f654eb35dbdd6a949cc8f41e27565d3495c6682909cf005831211d1e01066f70fddfd4c4461cf8703153c6ffe2b2feb4e637c3b26348d2b96459a47a3fea7b91764454b326785c7d5e983d728166c215720ac957c6cb48e40027e5593cf99760b07ddb08aad06eaa4357c6d37e3dbe77a2dde44db75f521132783d982b4abc5804b2a44cafbc7a1954e5cb9e7cb6b54d0bb9f891600f4eeff606467614c1a485a559790db19747a2082a5cf6418c2fe09e41fc60c489751c7b4d3a175a680a09bf00d15ac28fb64f626eca214c4f85c934efcebf01c372ae41bbb705d442ff9ae2be414a9bc6d0de3caaea09ef70a97b60fc7ff4a8c939ad1f750daa76184c02c7bda575b5d76e42713929bd0562cab7970a0b0a20425396062a75d68bff7e9e5669aa797855bb22c82296ee32a76b15a9b4ad52173a20da9ec6543f7ba4afe00d23b776760fb259bc5af672b1040882828987dd0d46445cb21118fc2292dccea9923a93b83366740dac10c5b423d2bc47292b02e61a4ff7667b480ac0fc2a8026ee76771b9d49372230b7835953b3d8b87e24de8915f3f648a948c766d140a50dd3d6d0bbe0e7183b8181ef25473abde84e3dcf9f62929a2589807a0b0c67ff148badd072ec87c37410c7701af5c5a7439976f94eb8b098b5f4d5c91a9620e20cd606aa6248ef949a492c0e52f5daa4e58142c113d4e39817300540a22f68b91e93d31a934d1220c96e00f932053c1a41c08754a42e31b71acdcbd10825d6815be351da9de3d4ace055bd032f90103f15cc5c21e597630659bddf4f57d3844d9a9f082e6b971fb4c771352114601ea0b442365bedacc708229d5bf2103da9c0a63b0f59fe1c75667dd15fedecd6dd9b9b3e79781b5aea383581a0d69b317b96bf70a425528ee424fcfe3c277154fae4569bffb439db68814cd1ac7b39c9361b6549476045f9ac06ece7022f06a9a204ba5f218fb2eb9dc476f98e468f37b7b277689f59970e2756253a998d4fb8e7d565c8434bd518fc5642fce9ffbe36694fa6a58267f403921203de726a4fad49079facc36f2a68317fb72f79520f8d19fd2c594f6212fb306d8578fc1417627e9f74374e46d8c3c4fb22af1f4e246f725ae3f0a328dd7fbe4e441f2b7e07dd6d73362f606117dfb97db04b57e8c7c0d0169ba8351ab3ef9bcf31a831bda1055caf3b45b111b784ec28d505c27942767878ce7f299cb1db4abf2c3f068ce7f23852f927c6eeb18140148a59383c439815d99ec6db9811b8ae21632b2dc94b751bb26851c153d29d77cf56e7edd158ace52623dc73fc936a4dab84ee30f632befbf4bdcbcfdf66547bd92b442dbdf983db6206f8fa37fe894548c5274bb90347de956e663cf5063f2c260dfabae81cb48d227619eec0a660f996afe4045cc759c1e48715493d676455a08c03271d6237c60f61756c8f11047e69c749004d5addc98555756b213edd35a3144c338dcafc176705fe34a29c13b646fcbcb09f2c475eef57ac6e5138812f7f02fffc4c0165f57dcfdd9e7a3cf09fe9ebfb818892d418ef8a254a3ffd8d8dfa90afc5d333f0603588ff999b487fc7bff4c7d1e1a46dbc23fcdc31a4437a02cb92a3107c7a9e7789d3fd8d0f58cafb6c18122ba9b1d3a180b13882f9f5667020fdca470ad1c4c206ff139fe42d0e6147aed064823cfd64cddfa7aeff66e0cb19422e431e9f58754f20ea79a9b50ab8d9e5e8a1328fc1f4257182473796e16c4a7bdddcc3d0f37699835648f50fa63b6219d6b224da358979dbe2806b844bee3d64aa32e37e13652e6a6edae0ae34c654f0f804e5e45d6f0c477461239842d0ee243756cf275381ea1880608882f807d651b81ea74e120bf5046fe53112246e4dec23f3bb77a6d9c136d04b8e35a9784227dea2c15e3eeaa0553def2692057dc05a65e23fa1d3d5377b340d96791756a7eed9f82c65d7464d7f82d4daaaf0339ebc0db9d745b0bbe6ace571cb633d72471dd30208ab2fdf90347eb3e8864c73b514132064eee2a9fcef225058d94dcb1a52b5bd15f3869ecf4a06822f9d27bdc4f6db29aa132bffba64800ef00b95e84a58a0423b8afa29c8c090f45275539402329de9d0b67122f615fb5147063cbfb5f9656402e83608081508f1397c84e4954bd247e28924269a372cc8964841726fa1ff0e1adf8cc474ec633e8ee8e7691cc95a6e52a89dcf22b535941b7538993dce25a2d55d4c20c408408741afe1aa264b062e73df99212210425e970ca3d91a5573bba8be861f038feb920588e4fab977996efd86ffa6be8eb166ce3af486b673be47aea89a80119eaacdd0019629ccb495118ce9776131ba4e470ab391adf2b2913e24802bf8213524d65fa7b0f5ccb24daf213d9d6d472d243e999c63656599ee1dee66665d3b6a36cbaf3356171bc7103d9f2bbf24e2b2cdf64a8fc588da2dc41711cdb6ccbbf0aa8285d6c3b98c1677fa4feb7fc278b45ec8f49feaf4d049c3e537914ca9d0ef85a6e8889a88e98f18fb5de7cb5a93f83747f07c0649f8bb7a632eb11550fe28e9f3a1712d096db6384158f8ed3a50b166db9a9acdb1bb3ae561698a0d419c6ec57bc25988d44b3c31a5b62cc2a6e1da66c5d36f1eafb226d3a27daa037e576ad4d21c31206b256da5b44d2149410bea629c82c2e5e92c1dda8da62f3ce0adb39493c7a25fc79568c84bdbe91d56a8ca4ada0e049020ab5ab4fb3fb98b30733642729eb98188a72c40ea808990a7272e5c7be6bd99e867ed39684de8d0df50e90468c0946c8b5d706fac3ffb665b072af60ff90d1184c9b75df6f56fed5740d4cf27112c7e0b2a4e306181ca861e5f26d2e03e331a52f142d8f402b6a0ff1167aa24b6247df178be496b913b099e591cfcee2e2ac97131616afd6003e635e91f5eee9db51fcb22e229fd20047c02b32424aa4559e20690a0e15ba344b8bbbe81c28ef39bda01fa1cafc4c39350303d562331844d5430498d4825815a5d3ddc5a21dfab1fea4b44000a4c70ecbb2e5df4cdd1f2867c2849c4ec4a54fa9aee635b6d82fe27c7fe3905022c050b893c8eed6c4616558937b4d52400991e7777c7fb444ee65f7ade861727abc1df9fc8dca978e07fc38a1860f7fffc730766c14eb3fb71a16a7f41caefb98cc9d642ba69296f693c9604325887498328cb078f957e239834282ae51b3e55a1a4f04433ec72df036456138b5a5e8a8ea376d72a0cb65094e609c09a82a4a122c06aba3c2d5204c0906e76b65af2f142f1bd6de3753412ecc076b7097a819e02ebf7e59c8a6688e85c571105fd485182c43c397e69cd57af1440cf1f758a491eda88646b76814d45ead3b5311fba9189f346ce43d313c1a1f325f06b5736afb2a5a4d9d6f45451b35e3e49604d82519cf84830cb73708eabb56b0a8df9f7ad8a49519ef52072097a63e496ba4c25900f70b8b6335c882ee6757c6112a748f61a258c3469a697d0b7a473612d90a094779f946f0f76f3a15d939ff7a6a38211297d52811249503f18547685c8c56d7758e97621dafd422fcd30bd0b26a08b79a9fa390f135ee189c8a7df3e0d4a55fa7b5a334f7b00582133b532db42474f0b382899dbdd4e893d4756a8e305b11098fa1f09dffbe3098a144cb719c2b5095eedf73f7028180ef73d1f7ba55a41bdf5180b63474add1c43af6550d1dffb61c95a3bc04b23cc9bec0c43712cb7741e2056132863a27b88a72533569c609d5424262c46da7e11f3641107df1cbd79b03e6ad29b4ff01b0ebfe42d886bf914ee8615e7008168a0e775f93330da6fb38aa68006cff54f721fd6228d314a2d4cd5985aeb1a7ed9c62ea4a896d4187e381277ab11a0219d0615bc59d45dd27c26a636949c429f47e67d3e4a803c110e527c2a6a794b48e2b5b4210d441d43c7f71b784cc3c21006f5f88d2f46e565b90221c41f688c60562d08d20264d96a09070c61b00c2bc76afcf03501c1750e36789d86802c4d6e847183bf4f80b9d73a1430c7dd8688451b9af25c9ccfead9c19cc65b52b8e7a3295a7b1f42271700e6ccc0366b272ec2b97f2479add1d359c6896b585622f63a5114ec0d3eab02553c56e0dfbc460dec89f2f5d9bb2c9f48530ce805d523b366379d8f7317a4d770d3cad4d6501f9ed28a4c1d49e2c8f6bcfd29875b129aea0187494428516ee1d3ecb412316c5358b2f17be65ce2942cbc6a97b591e1097ada9740c38beea60fe1259517c97965bba7e780d15599ffb6fd4b3f0439ac1661bc6dffa60e32b0ba0cb26214b3fa3de78aeaf180a11e81bdf1ddc0fa3e830c629e5ad3c165b834786fcd0368ac1fa9c4753778f85cfd10b55c06eeb9ca3b5732925061c461dd9dff2eead5e90f02d7bdb633522b700bab0c1a0b4f6e1b2d0c3b5a222134a53c991e6f37290419fadd0632dfd0da1c5ad3e9d7789d92d2df5ee9c62bdeb1b26d9cbdbc84c39e7fbf327673f9d9c41a9d0df5dd39460254e22a8f3d1d37900dd05cf424315bd9b6d831edf2a866229b2e6136310defdb25016cd30af022ba6659562e6ac91f96585c9d504d220576cd87de01a786ed337a55c8b2625b64e90fdd485f09352fd4872f1811740358aabf9e14f4b880ca964cf70210307c192d2f31b54701d620da53bbaa4315d59380b31b98fe2b71c65bbda386d415c432c06ceb64c98dcb7a30668a414abe6a004f43c18384dc6153c79453e1a043aef22f152ce14b499c3a6c855f2b0c7ba87e0ff0b3f386416798fd1791450d002b71d2e913fb3066e851c9b61c9dbef38afebdf28689e1784ef0c49957097a0a2d198d190e4459f26822950842303d4b2d05076b15ea96eee46818716a277036462ceb1b0d95b8566d08694fe25ef23fee2e4645383f2df1ab448a3f5cbd91e2ca3b84683687fa843cce3460ab095051c4a5d4715ab41ac5027a76b1f28c1a2d86b0b2443efa36853b35199106f5d7eb46aca747c6fc4109d23505222e7cf007a3469a21e292b6557f71128b6549b4ddf01a3f2c48cb7e7e8b53fdccff16448e108b7e448535c74e7cac72b68612e095a6d6e3da6b5b4284e1e86678a408c13d526569b3f08ea07cd9822cccdbc0dfef986136e52ae83fdcf1b9fdbfaca54ef55e8a21a09c8d58a10a84ed5544a8098e334a0d475c342987bfc2736cf76360dbeb0671cbb6e5e7d037b50827fd805e04e4b7a32796047bccbfb18380455bd68d42b9bb9a4e8d3ed925103118fde5f1552de217227ca059bfee68d3e59acc6d3d8cd6e5d9ac4068e846ff0390f6d8e286a99a39afa5577dd2577fa6e35198c1964d668a63e2fdc022d7e563a2dc3de44451bea88a61f92e4d3fbf60c9a2c5da9aa9c381290687391bed96a2d0195b55e89fc6432d9c5b54b321a8d87664fd50c9e31db85770e5ab5fb2da7bb49d5fea4ff03ae6b618d78c728eec79acf50efb3d84f8538b7de33f8b8ceedf1f86d8e458bd3877e1fcc95d667bf2374d926b2fa472ac2c580a90df90db028e7b6f3cdcf546f247d769136f050f5450fcd2aa942157e49096e4bebb2f16bb7e6e676216267b2ec2067d99d7490761ddc0b804829a92205d33e586e0c379b31e181406704fe8c4664d9dc679a6d39b389971d9eff12933627c42c1d9e436f45867e149d5bcec241c146a06709b303a2d28f629f82612c51b23f08f678400817158ed2e4a434dcdcc36fb4a89bb93a8fae5bb1be77165d2b66f8fd4427f27ceaf23fb1e834fdbd755d16187d534ff03277ffa7adbc22b28685e87b6f1d1f842d9a6ec650dded86ac54b8336422ee49f214b6e32f7438bed12a15921ace3e8bc7b9320b307205745e93f79d6468c9381b50415d81fc167183fbf2e435099320b082c9b9b6acee2382d129a66a1ee5ce54b2e1d204f17b2f35fcee0106722f575bc990e17e16d6faac9572feb22f9e3b8fecb2364730deba06a7c81bf38b287315f25af02310599134264a8f08b39641e7b5de724e038a790bc66754af196aeedc8dc3e9c330802833398c801793c94edb341ca804ecf330d52f7c3f2d46099483f6fe30a5e79c91a734bea2f5fa3983164eed9c06d88d6b14c4228ba840b16599f4a28d4d983d38e7c6cf08f984d00a661a593cd03f184edc99dc4e7525b3126584306662d10e5a8302feabb80e61241bf914ab59dd1598409ee1786a7e0902e3551e98f741561c6e364bd4fa16ad3a8bf76e62ad08a810de4dff8e674532fe0f82a740429a9cc5bbc57656dee75f8b5975aad040889d074918be81abc38c822c7ca30de7a0f1d6b6143753a136dc4f700d7edbbea31b979bf39037821042ccb5f257418394e3910f9c4965eced317309cf9aaed46ede02ff844331c9127ea28299e7a124a0407f776dcad885e6250d823deddde942b267e58510f66f3c23a7b0a022a11b487d0e33a5925e8feab87986e6c7cf3068c83a39654fa77f1e5d5771613f5bc358cd029ffcba7b373688cd141e437362a84deab5828b1b9c99572c605ef13a06ed43533175832a3a6b28113f420d1d6162b7afbdaa06e543409fc8381daa3ae97affffefdfdff7453ce67a6dfbef3a3300a79cbe66134b957cc27c03d3b48b8cb45aa9b34394568c446f204a58cc496771593a618ec931bcdbefb01e4ca95f7dff4bfb1700b15c49e78f75c3df2b247682de7eb769c88f1b41dffbfcd4ce888cc3f0bf91acf1151bfd87511dd37a8756ccc994f58989076db0b46e78e5042eaa41253c11d6bbddc268aa339a6d66282dbc1c4599adf3729ed49435850cb7d81205d416a03c255b6f614bd1f2b3da7f48a1c16e527ffb54dbb105069fa916317b34552ea64762b347d5050c2c0b1f2f6eea65ea2cf1d146a903f26602ffe36563577704ba85e4a3052d29054a13c88d4ca963a946a5d8eca94501dfc1548e24f1d4b312a0f421c868374dbbbdec302837152f19252ca88fd42c5d6ecf35e37f546d2793915b96798d1c4ee1325c31216966da3c928537d56ecfc2a55984aa8a34cfeb3bd1e4baecbfb6e86294d49b14aac3fe037ec82bd6b4da79350965f71926f6da110772376081df4f702bf25ddfbd8b5c63060f7bf98324505694fd06e64109b47209ff77c3c18412752a46feaad7242e7ddc2cdf67d2c692521ce64be9cb77667eeebf82ad814f6a906ebd08704120c37b8d37fd97c54aa0f6d7063dd23aea3701175ebdd510b7138bb173fe04c32be86122aebe13c217b673662f429c525e3e63153bccda161ed9b44e80babf2619d198edb7cb9294b5649d7e7898eb2f16abe8c2e315dc4974a2127c6778f0803c12ba372bbb8f1c0f3c9a27817a5fdce2a4a741d8ba23c044c38200930fcc59b94701d35a92808ac77165ba921cf203d42f5ced236d58ea0634f9e09637603b702d59cbab86a2585cdf4bbe6f09677e62827941ce416c3e5592c4103546fbf54eb1a13d34d49c338a157eeff702dc0984b6054b29ebfe8b864fa62c798e29deac7354abd0438a15ba8f5168187ffa1cd1fd3b053c2ed8e677f068b3f6b5a62f49eaa5dad3938426f2d58c6ddea2c22c3ef7bdc36e49b4ab415abfabfb87a7814a9973ca38a6b6e360fa1876bc4212f24e1ff23c70be836f3533c232ad9de6dc4497229914d1baf19a65c562ca7b31741f86963b3d4886f36aede2bdf17e974953dfc3cd23421d59b41102469a5e910d819338c4c54a6958a70116e82781ee200206be2f09b2a73de2fda551c8f06b06d4de02434dc6d4e436a5ff98b61ccb2c8aa3f5abd36455f368164422ca3837535c2e8c65af4c0c257061810ab160102e850d437b41c8136d0f99fb7753d693f8a58839e4e265120cf622baaf82c539413173de1b46a39d564e33875a64bdad1f6b171efd97353183d3944f0f9628f4ecacbac1308f5c1e1fdb07bb1e792b653ce09dd8df192b7604eaa02c2728627baf500365eb6c3cd40caa66b935810efd25458df63f3487830653ecb31085228871a6968a52e53df9e02f821b858fe86bf778261ef347f2bc545adf506b36c8f06197afda03cd378eadd0c28b1a248436c16988dc1e1ea71e1d23e473a02f515ad7d7781594fde8fd695e263823679b993da6232002a624749dad68c7c2d42e7986146a8b10f63fd5a7bb759231468c6cea0c71be4c0387e46f1fdd8aef7c44603dbacc7dc46ba3f311b75fa02c637741f71bc913dab3de125617962686132dbd1fddec2e11423ea5a728af280bb68fe6a07d5e5eb5d3491b7234440742b6230086c7b8d1b771f8a983228716f730df2f6eba735632ce333d1effa4750298b045376594eba1e6ba0f31611ac9b76695ff11b8e4e31071174cd550d24af63c7207eccca1443978688354870f83e2285b1e9417fed708a0c2308ec454ff80a0ad0febd32050cbd10cf6ed1672d89428007537e0c6c535c9605628b7b03c639f182670a15dcc183688471244929227dadda07c0bb49a0db48f7c19b7d5166871dd2f341fea8e20c518e54aea9bea08bc053c2ac45e7301ed7988e708d885c6af9db02b6e7ac420e92d8f47bc502114699f0a2197837713fbd2e36b5f6cbde6a1aee94f9f8598a88ce896feee1f2767d7503ae13bf1fe4fe3bafaae998355725a685d1f1c88cb3cd0b0fa87fa2aa41a693234c7896c09faeb93fdfee732ce61c65f58276803990d7a2e5c69681f1dd5290dec91d66e4cb71e28a4fa389a6dc5d6d6b958280f142ee9588b56cdfb9267e08d9d58b8a6127cb216a778fa6e542f08ea39cf46dd8c19e84cba3005948eda54a1404448c52837b4f5657a2e3de501aec4e4edfc4d95a01b83a841c591e75b5203e4e9ac7a546b0a9f4f5fdf2e4f772671c056a55322c5001cd8f69156ff9bffcc68f1d07ace98176dedad3895d59c4d1583f414cabaacd6451bf9469da248b12fa0890d2fb7ac2e672935179424bbe01511e97a8361cfbca875483426597e9277adc6f74351a1c141c319d48efda783ffbe8b341f71d1f32c14f978b2b66e52555940ff8f17f7f34f1cae16144c3c6adf08716be201e1c1a39f903d0139bbab4579c3ea26d73e25c09f66b2479f9579b6a09251e86e29624175c3202e1b2a16c69c381a64c534e6d2352d66d0e22ace5ca216dbc1f006d232dc8351b5b1b6a6581bfdb1a2f903e008100466c331bd5d731a474e54b657b0f13505084ebbce42e32a7256ca7314f77f325b7cb9670092fc70e1a690fcfb4a1374b877cf66c1e7ce377f7d48c503b7f236a59900ee4062fa7fb84c725538888d9d347ec6e796a0b8f8f209991992ba50c7cfc2fb9ef44f0d7aea6db42d79773a2491b599e233d953d34b0077bce54d77f8d8cbc3a3bf751468d4a258298be6fcacf6bebde1fd6cb8f0e8e855745e6ea40d09e318127e0398da2b614a2a6674d3fcc58b81114bbb556a8a22295684881fc000e370b44f30b351cdcf95363340b496c9bc1ef2102ed9df48f7be934abe6e4daa6ea04dac7832ccc17799b08f37e891e7b5df0566c8d91c4f9e991bbe4c33d9ee482ae64db5977a982a7f221e5b60214d2f8633650db58525e4591a29fbd7f92bddc680fa45e724cd230aa0b56cd04c621658e3b54ed55b97eb636a3d95a067f7f46744073f59774c928c77d8128816fb7240052f9e23979575f670cb2cc6b32bc19e60b28196384386a72fcc960468ee0662a5bf57104f7a8d9da3f8871cffc45f699bcb154ca008ea5e7653f4715672fa62daa5dd454fa0fceb8306a2d45333cb0eb526259cf14f780b46775c65480cf1a2f89a1616930ae25ccead2f194af2743d7ff101dcb0d106c0206aa976724ea7215b4545ccaa76298ce0ab90e434d275cb4aa0caa71dd2409981a3c064ce31a8369dbc9bee35492992542ed2693702c4d236dde0a049b014e39ce713b3b10f4e03b237d10c18f80e5c7d8c8e1d87b477be916dcfbc90153be0f218fcc724293995ca54e8eb5953731e9242cb4f258049a6baa8a4cb8ec9661ce683c8530d34576e6ee8c2ffa0501bf7715cd5a3cf4d6452cded01a1ce09c5657ca3ca82d643d811b7ecf5132646ed96dadd5df9fc097cf359df9513e829626c3c27420945754bcd449a1155799f1767780d245ad32104b9e858617361bb839cca1405c7d54e23b5339fbb5c07105887239f131ca4297326569d20f8c1c690fcb0a1bcd87c5a01715a98e64e41ce6b1de168f2f9cedbd31c2d083a4e394041ca2749345f5599fe36cebdf74e4aed97767671767c9b60be99c74cfb69abc296e32ac94af118448a3fec430e03f9f0815521232e20c20cbbc4dc58a67336c9c7d3450fbd456fe7568f1eb3a6cc54ce688be1242b76435e600f8640edf66a3b5c59a557c34df409510998dbafe6d73299859f433b6d102d313c6a8e83ef302640df681db1c3f0adcd197ccc8e7e8bb54c453589c70b918903a101c60279251bc7eadf17188c8e08c8afb3b062d742acf7b2f7626b77c0db14fffffc57a08fa19f03e95047393884b04a764951f12ad8c043f9652e63df97a978cc29848eb89cf0026afeaa3618d819d6b42e5c64c9346e37897849c23fa104bd88e760a893267eb7a5884269abfd20a94c74bea7e1244c19f6962b39db0b0acb0bcdf9c614b732fd4fb00eb25b1a122455770c309c1b2129993829653c1feb6cb5ac99dbacdee7478d87549ec3aa4e4054b86a3f51c8fff33ae6a516c5663b9a5adff1a29d72d4b788244610bf5872ff47057153b041d5190e7ddeed19c76732fa958ba5c2b5ea5d962d18eadc0a6d6a7851e46593cf065cb817b03eb457d81767bb6c513af973699318a718a41cb098ac031bfeded846e9751ad7d0604f52b3b00dac4e2ee7c0fe8823c3cb75c0541734a7dbab8226874e740e6145f1431ecf64b058f65956b1fb636bc4967be8e1eb6becd9bd84df0ede8cd30f22cb206382f236efe82f63c7b4c05da2fa356bff859aeea580ec185e019880d6cb59e8966108280afa788968b74fca9cac9d611fe2b1e81da8b357bd36898a1efa99fd8bf3417f1753f64ca846bf919fae33638257a07de9f24477615f236357170fcf9092cc59f7140ca47caab31d80b7132405bbfd6782fb8f767161c3002fe2003c824d0224aed4d9a9b1f68ab890b57c7c7a144ea4d1e552815d88a6752491d85ed86b3f90d71d4dc00c96ec350730fba410fbf1909b8e2222fb7a051ee4e2858f2adfec8bbb2833981fd0ca8a3f6fd114ae33e2b00921613fc0e0977db64cdd457d3e143f94db67fa54c75dd72611c970a21585efd921a898f7917f86a56b757c57858cf336eaa20b6d91dbc9fc5cb5caf6149e0d9398ff992ae9c05986251c1449d5c0763d4e9b38b8e85eec270a833ebd00958e82c853c9e423063b637adf88eadcf3b9be2e272efa7d1f44264b3338c85935e2f5ca00d20c9d4ec7046326668814fec6f977fbb8b3dbfa2ba49013720a873ff7340d68cd61a4a0e18060c760df8e55226a37a906ca7769eaf1d645ea919a63a140120bdd7c2574a4004a61aaf0502d6b7004e1610e3e8e5980a328b628c0685b18a080a2ad4d7b6b0d9c548ff437198a4bcd919075a8147352e61e693402d48abe035bdeca9507ca15efc78cd5721ea95d34c8725ac20e63143ad5977d761606933ec8710547a594ab83828b3bd48d2d0526df1425f87bb206961132dee6a9e768510fc9fb2221fc1194158d0cf368c7824180d8b969111bf84ad09c07265466be95f14988181332852b60f98167306a131b4365e33e7088cf223703ae57a91a7a267ac50d7330f2d8210d4ac36046331c45feac1010e13af851944caf6412bdeb2490375d7c4c1d692b435cd0daf799652d24b61d21d7a2e0d27c5f538d1b56e9e803d8c9cdf6aa447db43d0d0be53451f489f1da4b0d975d9f8f5dfce0f449071a4e4119a04c1fb058414b23c6faf0d5650d02e3f0b9f2cfced1b9d529ce04b50aa621ef9e28ee7ab1640b02c62803c9101edd3e3e4905c3cc6429760b606471b37879fb1442f2610a9657627a26d8ef0eba793eea644e8f8c2ba027bf3275ef364092162d216880516a45ab59350f22b1bd50c9477a651732c9662372c270fa6caff2428d2489efb3421aa91dfb91b4c9ef05616e575d03c222d1de8fadeb34cab660cfb6adfb8968a860509d069e5f25598f21591c6b8bffa9a2034599a8ca8f39d8f4be48a35d9bb80cd16d4d7835d3d0d4ae0cd80311f3b3c974e669b9a0512e8c6e9cf081eb8e6419f13dbae878afdb6c1ddb9de3ae75d36acc023964aaec4f0c2730ab11635c4fde006044db02d5d9e588107f1044734f05ff70233ef39b240b5ce04ed9c57216d5eedab468e5b0bf2d85b4a1c96cfaa946c07728f0b40fecaa86cd7ba959fcd4ff5863edff516568498345496c1f01f923a5932bb6d3a1461ca60362a2ccb96e3517d4d94412a994bc949e7eb6dae471ce52e283b19a0913d41847be2ff094b6fbbf5599364f694e1591ac57c2b48cdab4e367e8701838f7a972da29da3f703bdf0df6c3ecd216803665bebfa1acd807845996c8d943a8b98b23c3ea76bf72d98149412ad17519a1537fba2ef23d6e304b83daf2d15e5d4fc5b7d2e638ccbd852aa918e299053819cd453df357be05590f927bbbcc5c9b96e59a208c68881df41a27124b2856d4dc124ef4d7c7902f6a616310f82e2e5979a155b03d9f00d5f3e765d237a6caa34d59c7e61c9c1f48c8e3983903c6c2ea78fd845713a7031c424569df968d06088c781e894f1b7a977d91e8ebf9ac2508c4290c0b59b2c817257640ff6961752fbb0b88c1d2247ed97db9965b6c20efcb70c29dafa4274aca73a029a85d4141002482723465bf8c6c52829bc4dcb7dfd2c2876e6d588bc59c7b82cebaa226a92026da4d5b5ef5898191e9beb79434bb98636aa76765af034adbce816273abb25fba37877f907b131ac5bc2bdedaa9bca00bb5fb8f1bb0e09fcb8bfe64903b01e648f6efcbe1c0a5717433ae754f526d4cf9f317dba4019ffa1224ceca81fc7fa527b73915581856f167b3b66040bb3cb52ade36c5c92525cf3f3d5a80c5ef8d850d6c7f82ed7025924718037d34b5e4a83161b241ff0cc59ce26ff5bbb492774e9b1bf0b5196169ad8d13913ea05baab92eea6414caa48ef333f804be9986509b3421384e08b506c13111324bdfcb405d1ae58a471a762aba2c1f4957ebc05d47265bf6e3054d258bde646ea0eeb5543d2b16c5b1fe012f349b7b7e292567d090d1676ea0be63561fccdc3bccffc45ec44b7820b4fe37a42dd2cd080f7be177f22f89e134208c4ee4583609ae9522b63156426cad851044968b3edc6e87d786399d1e73fd6d5fa01a28d203d8c81d3a447c2e7b11760cffa05df74c687d3edb5d10b65eb983e645cc9b188a159102ed268bb03b1265971f1c5cc9ba30d329365f13542f95786bc9e857b0374e7fe160f99a09c54ec1b03b65c959624c2c043428780022a47c46895dfba5516663af17ff5a5829282967fce74dbd3499fd95c29bf4351e9bb643d2d3500232fe22a117099628cd3655172a897454901348b5018857862d5d9a694ca452582f58125f7ea84537fc03ce5f5baaefacf46c819080f403ce3a1571eb5fca0c4a1aa53f9595276598893f880027a0e289143fd7916ec40537a38163288c7a8bc7cf3be6601bb2b3844f083630cf5d581823e24d6baac9ca1d838de9fa0fd85b09e046fa0701a901758843464f23a2fb9f26f4f0eb3baecb2593a3af590640288f8d197d1608f0f029af2b96d3cdda509260ab034de315b3334710e16929d39eec4b4cc940b4fad6bc9ca52fba92c5aaf02092d0faf4774763a9940bb790c77d27c393b7b45017da5d78fa6a01009516ccd9a3e9a6e3e71f22a487def003764e7db07018b6895d068c00ec2818a5e8104f63302824e8e14c19009ea925a56e023f51680bb0edac250f28759d8f4a989c2f39f2bab4b2eba2134e65dd719157743579f08799c61c65e476da273be1e29f131a1eface026f2f41a398cc668b37144417dec249b7d87758db6cc330648b1640cf2444e88d8d63f19f467bb8e0bebebe6f41392e35abfde9e0e628e093fa6efdbb8e01010a053aef1b5e7e5c630243ec50a788c98888dc50a5b970ee3d0aceb12c123a6bac2bb0f06543dc866a2940907e27a4ef1738cb94d60ebd0982db7b6690bc67632cc64d397b985bb544dd65bf9d2f208d4a21c309a8443067bfa19311b876e194cc87290983ef06bced59a06902be15f40b7510031f31575d2e1d44031068de09802a8810ad85e567fe34c22facb39ec898583e849a216f8def9e24de1bebc4dc935d504f1c38a51e769dd8a4611d5bc62c7c4058cfd4afb259dd8c6f8ebad95df547a1bd192cb031127825d18c0a1ceb535685d16375e00118e6d9b595e1525325843ecc1b0b86798d2d77e6be1709851134c5818818e1edc7fd3c18611691a3eb84f410dd0ff4e01b7ef1569c341836272db41fab1917dd45ee2b1401541c749809e0960d7f4db5daf4d0d4c90c86abdbe93c915155edbe6f134e9315e0c33d7228cd58a35920545c3c093552d061ffa566485fe69da0a7eaf496aab4f6998e6790a5cd2bcda1819db4d9dd1532ce65d3e6d6b5a54166fb1df9c387110dae6089d1ef7cf67d0349e4619612b16b5f8953179594abed285c3657ade96fcbc3d42773b25e2a97dcde00f59d91143890242a80e8e62efcf58f0caf6e76bc66976bc4643092d2de1296c54df46ac584da34e8d1a2f335a8d0b8c6418667818149b497055e72a20e6e5d01eb9aadef970f11fb806c36062e55271afba6f89ca9c6bb65011aacc74f5717b7ab34c9e1769f58b7085b84c9d35f8bf3a1f9bcdfbcad7ecf5a1612ab3168fdabb55385640912aa5877adc4d4f925bebbb708801a47e88e6e9b9bec34109d8d53605bd5bc78c0255cf31e47827daeb1826b657ac6d4e566f79a1965045393794dd93ed72b6a461c6fa81e8f87b5dafceded42c6cebaad2b7209d63217af56b9281702063bb8b20a03192e5f78832bff1694ab2527a11bdb7073dc50fa9d58a09b10c719b83258b0fe0b73a17743ecb142737945163118f60b899fcfe99d379a56ad13fe7376be4a28d492b7816719216fa2c05b70de6f19f781d70eca532748b2129ae320a4bdef3c4526254cfaf6c10f9f539ba54314332f23c2a904af48cb0cbba245f076d222256cc6826e171c1947930ea1752f11745126d588d61422480f4eecc279f1bcd1d7e5b30621b1f903d172fd4be2f25b4e94ab7cd32dde974d20d3d1616942af0c1bca18dbdd2d7e98a8d04388cd2b49457a0887ecb2cbb0633798c3586459b0fbf63d6b7086a6b73117f045d187017e6fe2bbb067faa673c77032a9fbb85e9a35528bacb96ede8e7f8834b0a9361e50c6bff6423c2b43dc8a4cc6f91056e6098e041f44836836392ca19120eb0c5f91ef590aa365755f73128d64289f3e292cf2fdf8f92b9b03ad78f4ea7b9a3c30866461caec7de97a9555bb1f6ca99ba179db2fc9f720fbb74ab4041f1602f8197e2aaa0b8fff7f1c4e25b08fddbe5b6f54b72e50694eb9f7f1882d13adcbd1d13c63367e42df15e01db31fb030803c6bf94dce8fd07ff6bfbbab418e70b90445cf7a93ae44208110319468bcbe0ce3a3e295e0f41c1c0ef064553865c4ef9277d9050bbfd543bda7ec7288f07b55defa530cdd7b119c614e6fda0b91a0aacf767617778f01ea9aea7e5a7e8181f8f83cac1a347db4bab55bf3ca872772716248c6bddb94e7f81e2b8c735f74579b2296d680ad800f88b1a9cef8834f094cd00c965e322c0f7850583939f805f633bb3c5a6b20949a30bfccd1a177357c10c98c43a8e99c12d1a7efbc6138a6c3e86cfa77081a92334ee2e5950c96565233fc1f589591bb96be445f1b078db0cb3acae32ae09104379409a0a3bf7d95db39dccc024da699f20fe6933f31227bf2c6a7acdbdd6e55ea0105a6e1a689e8d6fdb55de9130b9145db430a8087c0f1d5a10574fee86367ebfb6b0f13e31625bd8e10fe48c4bca7059d8060ebae8856cad8bde9505b6dcb54dada8198ce42089739d9b2f83fa1a42ed9f9661a8bf3a9bdf774779bab7901fa6f9e8ddfe0e760c48dabba319d015bb1916aa2ec77f1ad66a44aa013b22244d8a247ee522077295663078a0a3d46bbf7d1bbb63dff610740d6916fda828b4a29ec29999990bca745d00015fae08029fe1f6529a09c88cd84baa699a96c5dcd1e98c8ac099b17d13c27f666277b71c0fad759b2837427d47eb6d1b798db5362759096f996ca34b97afd574fe7199b29d719cc3baac86c461791f6eb28a41aa7a3cc3643fefae8fa04047470ec3c611ae5fe719a580ff5726c4a4b8bc7ed9605ac713367114246447177464d4c7794009cc1afe991d2689e15ee2b9adcc7e5f77937ac8b86083209fd8a275a68da1c32fb3a30cf1c59930691f50284dcffe13721a86cd536d7c8f10ae1deb765544b5e5318825370986b561a39def9c52fd5ee43e4c782d693c76ccc49e1f8719b254e50ae8305153592b0dc766cef816cfe4edc37239af960c4771cdcccc8c01877a3f230dc3155dcbff522ff845b34f24af96d0c7c32cc84019c07dc7e25dec7d9ab4060c02e4b833f343c3230e2227836913726adb35ea7540e60ec414c6ee123d3c61f46e684730555b2e257f603a92c2551a83b12679201d72bcb9ac81ccf51a0487917472c19bbf235e96a3aa1933bc5a1a8ccee5076b0083491e7879824c446bedbadd7732d4c9b20774e417c76cf4572b2acddcb9643d257ab2df43bdc5fde0ae3495257a516ea4203281a83f263140e99467dfca7fc114975e7c9f627b3d1a08205127cc8b1cdc64e0450decb0b816558f99e20660ce51ef1ebb1305a5f1c3ddfb0b223132b156d15e314d2e23413053f0d81b50f9ae0c52006224731a7bb333356db703b1cec52da2fd70dc8280cf2abba65e1cfe816e952c088d28a6059ab447834a720850827c08bca8bdbfa78207c8fa54f59d73ae1207d3c9d927a86a2f6e712802f3cfa08bbdf7f30e7e524679fc4b7df89300b425590acbec8676f615e3f2a90b5c7e98692f1031ffb0b5b9f61337af57851c40b08e5511fb74efbcfdb0d5dc3826bef9e892bd9c3605179f55f80546d8af55389802b498550070922013cf46094245272078f1364a1bd77a53aa99f654e84f38455b82e87df69689dd654b5d5114b9e1ed6e8536499298620eba78c438e930ff26f71e57a916c27f36a71b60b82c01bb6cbb69b132e24df58c4f048007f1d7a72b69ff0f44140fc85287225f394cca33821a46e37c06380435c315b6d5b0fadb490549b36c698ab3f9086355a5bbf35a5596be088ef81fac55c686ffce8a815bfa7c3e7675f975201bb2126e1ff2e043d06ace9944fa547d9c1b662dad20bd42ba8b14846483d1cd494c91ba9f8be98d24faeac971b039d89ddfdae445324f738bb3fffe74e48eeb3a3568da6f8f618442d1e098570d6ad35261f8dbfccbe06472098d69952a1c43483fb358b106f41361bc9c6b300bc4d7968a040f4bc5ff6bf7119870e8762d5ff02195ccd6e249ef7eeb5218a936dd9daad8f2f33f8fbd36a9ad6f0644b0f04c567a991c283437c2d726b68d6209af5fb1e415e8fb52e9d79815fc7fb40515ecbe5b269f41b0e83f6f1331c16f1484e0337c49d23460ff3ad9e7f7ecf740504614705f349288cb2d8e87535cdafa6f649e49173ab3eb274406448e34ffe84b1265a81ce0dd90294a3eefe5b51e3cdccfc00c98e2d71ddf30bbf7ef9772342459647dd6dcbcb5b312cfc054ffadcef3ee4e63134e107120071abbb11c2ccce230e6bfa99a18c374fc530166336c8af7536121a06d65602f02487d0509bb5d9fa166f9d49fb27ae6a323d96a3f3263c552f4394726ef6557f5eec0200ce2fd2f16825c51ca9dfa22d958385f144c731c5f67376b435c493d8eb80862e5165b932c7c456904c1736c31528ba9c9fcd5677aff4376e46dbe9b39d953075d04c07e55ba4a6e185a3085f4357f6cbff5511a6d63c210727853852e86aa872909e6b97546ddf0f178ea91d167d69cbae1d3e43e217662ade6af85cd76bae1ecb89732a74e791b457d7280c4144d4d49dbb851c0273c207ab6223c12698371cd5823f24aa5661347a2a52cfaaa8de259f5e88eff4a53689af980494f9e131f4e649d5ed8400981dc71b4bd4e5d3521d4b4c17031c234afb15454abcd5b54f8f109f37139bbc1a1654cb9f536a4e8472f8fd0f7eeacfc3e8a8159de3168e687e7abccd00ed25d8519e59e6d82ba77a774735de3a687620bc7ce4e62ba940e7b706040ebe9e81859b4c456f7691e136bda42c51acab741dce19c1279842fb268fa73549166832ce216c55fa0ca139082264fa4f78806b21094e1113b058e63cbe5e351a510cdf08957979c0e4321bde055e3d0baee1eb07c8ea7065bce8b7e80c8e1e6d52d158d9daf3e7a312692c67f98bc25b6c7105623b38a06338703555e9156198ad64c38a3a1916681dbf6aadd8e891cf505d0a3cfd93ee1f4bb566bb3525a0969448909e7afbc9647529fbfe2d96f386e47b6d7cd8607cf17c6e9c4c0a1be8327e08558a1fcc01da8a22645647a874007b8fe5647e1406f5d9aa74081698364856320ae5837ee5268d4e40bb5315d4af6c8492603a5d51608ba7c0550c761c9a457da44614d7088ab087a28f6107394491e1af28cc1c86e1cded9fe3f08411425535a199c6dc01120f14ab819a9bc30a0a25aa704d7af62c83433693626c3bdab9eeb8ad7112f9a5694fbb5c9d9217f5de8d59b18c7345f4932846e1a34b9f7c451fa8b73ea60cb3ddcf8dda411ff77e1debb46ec1e94e0eb07c9d2ab00aa1f468d9a622bbbca43fc50f2a283eea7c68f691f89ed342151fecc82b0d2d750019c3300f9267239dda2af5a32b790ddb3af957b86da73c037d14634457ab21ae9ae6206beb5044d4371c1e88874a05ae06e032b0d7a726cb61e06eacd4855ab8646feac1555e7f9d9a6f51797ddf84acf9095ed8ec825b1587341b073c6d6599f17cd9359e44805f419c5a6755a28cf4095a267a99bb13132726d1748c5c5af90e505806928938d590fd418aa347a7c5c5fb1a13efe19234d0e15b5511cb1eba261addfcb0015811e0c1c357ba609daaba742871dc75dcf6813dda1a80722812bb2d03d5ef02423c99b248755d072e6e4c247683a2c51130898effba2bf32967fcb7bcd95db7c8bc84477de3f4612918487ae7a7754e5e1cf3245621119cb85b60446e54f1e0a263b2508cd5f27683f395cd953fd2968be350d637c8b40355e3c92727e325bef3305f2412a8ef11f491db9f17123efad457e2d2e72cce22c6234d0edb79ca6ff453752c191fb82727bc1a5c2b4e85704a20b9265711f54c388ab86e35127ef8cc4c4d090e2e4fb139607fe2fdffb294518fcf72d2adc8873fc9a914534b5c5fd6b8adee3bf5772a3cfcc876e1a54a55c7c1867db52f3f0889aba965dea13e740cba49ee40f07aa9e4e6423d87359371eb712ddcd238b888c7723b36f1f2c29dfc71677257e2f4230b0e1a096589d3a504714b2c7d9abafc359c24a8727c2ad1e16c09facfa8b0bcb863304671e23c56dbe9c909d36fc9aec3a9a63c278c67c64c5a3295d375a7869d40d42667e38c7bb42b01a81ff8d6f4cc9d636d32b36e8c3b27e38b62c6f587493a4bf2f12defcf40c5696707dba5bd3e8aee1fa7f8b5b7512ae687e945b53c82f361f95dcbf73fee9663b87fd0e3f932f17607356be78c0eb659bf66fa0d20d096623dec0bda7ccbcabfc025049b30568443b1ab7d4a4bf9b37a39c7ef34d9bf666b3ce050478dffa4be6d54c6488a611fe95304a0366454fe88a5bca932b66bef549a8d9b376812c8c6b8249b40538ddc08030df5d35168d9770441daea61a9e2359fbca1b554570dc3dd3a413829e33b1bf0ae717a69bab352f9087d16d4fc6f06c644d806e12f93687b83f1f25a1ad5d6c9bf9540430554a50b7db73ebeddcb616403a74b36f8bcea135ff82e3059b511dc74f89cd230b0b00e32f866a547863ebf74ec177a2000da7d34d56086f7e777d7d466aa4a8a0c1fdd66019896ba6821ecaa7e0e4a4c5e16f7e9688dd188d4b7dd1e26ea2dfbc82c2b98b12abe4671984d44c0313ee5d60e00acb5d451633de877247e028635b3458cd95ef5e1b2f5003bba3aa0a84ddae98e6e2fa56f38ea66515417a93c64de49a40a59be69f68edc378f9d030d66e44659a530250b5f224b7c6bd9b6eb0b46edebda4535645ee9fa0cafea1df6ccf7708da9b406d07645531b44e07136688743241c49afba99219a82846c32d91d15d37d5bc687c0420f205b5a933c9d916a2be0df63efe9498f9b673c92c26aed9f7e35ebbe03875148621bd292cd68e7d45f14e726d6d30388774536391f25261b22e49219ec58b624f29724c0114f130357a0f33d72a1b203c3cc05557ba6b763399057b12d61ce2f1624c33c9f70f77064cb578e5658af01ebe5bc220387d3b795432da2758179df9ef0826302707ed931d1f45fe9836bced5f0a33e4476d6648c43e544db183532d07b60e99ffc003d425d5e0d83a9c8e18a9b61495efa8beea91ba8193e0a3f6b0154dfacdb0297cff0b7c54e2952ce28b4347345ca446a33de833fed817e62df8f1a19a40cd5bef0746def1b17767294b5b974960ce198610b3c2ee069e3bd2888a69c7da71c9495e5f6dca8daa7a46db66b06a1ecd8a6cd3fb7f745d0c0e748dba3df95e67e74809e21135ff6af0147da29b9352fe6c6f95bd313ad0387dd6372ecfcf58df69000cdc7d4f774b2add37c8e0247089fa3d53ca64ed725fc86ef380e98b9daeb45a1c3bfb760338e2e4b3ce2e62aaf19397959b07bef55cc5e767ff88935c27bb90a978dccd118cafdde4b8baf58cb0dfd35f285ae2310c119f4bb704f2bff42db332504bbb456c9a7084c09769245b6c5b6e1ab013c618342a06bf3ad41c9a7f25ed792e6c5cd61bb95c65abadb613062cc5fc130ec3d84fcd22dfbf0db477fa1fbba3444e211985cb622be7960b4a86588e3d531368ff060493074f930277dd2c7222609672a6ad28a111215d450c0384481d5c68ef3a3efcc03a1800a2c036ac7115e4b95571f24af20b3b1d496ae96b45e51fd66a0f011972d81911b91dfe5389f640f31b4a061e8b094956b7adbc5978ff5c2ab0804f7279726229fce6c2a72fd033c396eace8455520c6d7468eab094c9cdb5555dd9503a95f4cf3da31b850894f86d5ca48ed01a456a29c19b61667c3d3acdbe3cb4b3fa2d092b8fb7e79cbb4b75771ce3e64c7ec07b38e3796185fec8d34a3882e9cd0579988df0ca5df01a1ea12c04f5d3b4c7c071a85d8442abe5ee130a25f751849ea164e691bfd35999620f1c33cb9eb87dfcd26eb908d388568b0f6d3ace94f4c17d3c4ea3632701113d949a3fa4e57dd08985e2dd3d3e627ed5d1d9cc2148ebb90fd07cb53bb1ead97b6d3dcbd2481dd4d6ae41f9835b939178db372c3f216c7fb73b51aa08b56630b2375f2712fd228b7eb32af988b10a1a5e53741051db2ded3d624d35eb559debc83ca1091b810fc1c4872293536fc69503d001163bfb18c2234918ec462e0a847f5665506af8d7b4c21010dd761b5f6575e1544ab8dfcd73deedfbe6c6cdfe6997b452d76b3964938e8dc175f0bf7d0a49ad65c80e9d1fd1ec7564f1258a1caca353d45b7b7111c2e7de653d73e75eb630ff3265eafb9374ed2e664a9c41dbedb6d69a716d5d30f9310b109e20d75428022a3b6c3093e406218f36f514e808ae69c316879279862ec98b3a64f20d45dc4af6066cde5c8151024aaf998cfa41ddf2d400fa6538ca4ff8c7402757392a89cba49c1246560d21de97cff43b3e7ac44c38d43b5b4329cd1ca1e041c37c90ef74bc0a1a38b4dff7940238d96f837c3ba0084f067b05c5f3c01ac15a38201af8bff4e244f0f38090f064b0bf307e612f7050f69fc2433118b7f8e97c0578fc217b0eb76ad4992f30374da1e71b291a793f298f307753f7907fa445c0411e824167d6a49458bf60c9e69e9a071091e903ab50a525df92128183ca2482c364878e3ddec6299aa938eec122cc8d8f5ae74332af08a713257472eee6bc2d963cfe02f9b1bd2b8482139398af8d70facb7ffc27da4b1bdc9581c03069a49430ae6d097d702f838ef6ffa076b9d88e01aaf156858f45bcc5f692d2742c58d7ed636d7bf3b7455c6ae93e582260cca0f5bdd0489987903be93a742691c2b9dd8ab62bf07bc72d932dacc882148929b8d36f844acebd0d771013e62a41768a5faa21ea5a06919630cf1fc676542cd6503178c95d007f5e3d2e501feaaef8f47ca1047ff9723737f606f718e9e1be5df169502f641d216b225ade4584976503e70e1ad492511e48fbe1dad18f96906d5bb0b198c50945de63c2bef67994a82698fe1e6505da4106599e8db594a906584ce525bc6603e9a7dd4503c3c65355b31c9cb8c625f80634e79f47c2d73ed792cd5567a8effc5e780ea8b2b0cbc8b3606bb5c51bed841495089072a401accd3815c30e3a62ab6f492c91a8b609a018cb4d90ef9ef706107387fa963f665d2a86f655d9a7004090d548ccf842ac7fa1f458d47b1c5394491b82f9c829b7846460e25fa2f68308161c867519b3e3de13be758b17789daf7b5f67c2202c86fbeeca770b0783a26fc0df5a0a1cdf0f7eec71f97a9127733ac5120326d4c99703a570a45e8c7de617c727e78d898ebac9a43b4e5740b32dd7ec8f9a5556b005cfae1f55300a67d40ad7bf58330afe61b2d2aa2b941f39f253ce33197f7b4a31fa004ab6f30f9b61360fb55f40dd5e13c30e335fd383ea0ff98bdf4c12fe2f86611586047bf2c2bab219ddb2194a53d5807baf2434a68daed4be7732c1ebb00cfd1e0eed13345d5a8af44ea4ab9f75e25c60d90e052cfbcc5d6a65528d704eccabc53f7e9f02406ffed9e3c5a00bd3b3c389d17f9a3ea28f08e9162d742e40fe186a1da88799119381fdbb9d188f6bdb12079bb14bbd03dfa5607cb78cd0f20f250dcd4cb46fcdd0e27fb96ad09ab3ae7f6ea14ed8913556a88e8ae7a7d080757c3919e1e13b44fb621204f9ef6813c138062d9ab8355f81a8e5bb50c6763f4c46b9ef9cfb039853ae3d8886ecfe682e4c11f0281a05416cc2068cd0f4f135cd1475e23b5b9ec27ff42674b733de83b51c067e298b12ac80a69afe4a620a9c8f8194a84d10460dd198faba9a90cea8a26fa3cf3c96cc05b5776f1577c054639b1fdc9a16912599da34d993be7cd9108a5db0c0ded0ecc70ad1895bbb41ffad4bad4f37007705d957e740f854cf8167d2afb2905e1ed6fe5c8c885d1ac6484f01b052a199289f156329722a687c7f4e0f750e646729becc7e24542d2f097356a5e3dc1e28936de9fba33c2a1f56cbda2bd6d0c31856bce7a9cc93de39e3887ffb27db98c75538c4ddbff541120293136576df1aafae1e193d97cb0c3cefa1bec4d5801e1b00006aa6e9177aaf94c17614e86439bc8c33bfca455851252865b8b1a520618d4664734cc42e23af8425744a001ad3ef000d4b779cb6d10f4f6c4825931f37214e17cae5c3415098e8e0f138137b02703ba1c2a752a5af8c2cd2fec664b71cd271732ebeeae3585530bdc56d630fc2c176113f00fbb99500ffa59be5c489ac8423d3b4bda26c56d8cc2f3edd4da8724127cf6eb27cf23110a83696a913782a87cadc431feda2a9cf77599dbcfce4562b71cd121cf8a5b21c6b289a175dcffda1c18e16776251746a0d0e942cab56173427eb7fb530f94fd04e1005e31c9b2db8d6793e09bdce1f2d2affceb3c35841b1d3472050d6a3c0ba73e06b10badceaf7ed421e70e783d4d5fe776789630fc3518e44f2a44765c3fdf1c81268e478069baa36ed92c9dd03510cb570af0c067366a0870733a8009809105173b83de776373f7437ec4de6debdb9c66ddd909788ba3978056e63f98669e454bfe8f813d49fc7f65d2059f5dd82f619d63a7f9f1efcb74da43c779254a0b44358db586ee053ce8e10e4ad873c725a3699e99ef4b5b442fc34c71fc4d014a373532039d2fb80dfafda32f74e78fe75fd966040d3b2d1bdfe1496bef44c0e7e9ffd770ad6aa924bd095d572fbd67e44bb22966fadddbc543c3c0017431cc1c1ab5325ed0919537bfbf138f614dc83f2a385fa50cee204200eb4e93919196b1fa08810d3df959b7721f3934776d63b6aef7c4233ddd095a7b71bd2ba9021801b5b83b9d347119586a0705e05a352e7579fb70120949d81437b213308ea94e694e55efa1b87a28800809617963da45d98205c15f5ec9f589dd10d2f01fad9434774e89923730340bed5645cda5763a1436582de509f1412d431378f22fad7589a1524ae120612f6c2d92d4e9b36ea84c5c8b74cdb089b8404468f12e5987c6e50c2c8ce803451d7033e1a49ef64d85eb60b7bb8b580b96e385e150c27813ad2e507bf17f80766126f7aa4ea0ea290ce65f9c38d1ba6560ffe715e51bbd08562b3cba8fbe5449b7894df1d685449ba9049d577c67d713d4e2a071679771f562b26b654e6e34d5eae916c28355f51c063c282f334a3ae9f7487e278695bc9ab129ead4baf8189c2eb23973dfa95e452fce8758a9e970d9075727dd836ac270495c56848dcfb4afd4c016f27db80e2e30955e0fea5732789c6a8d91a521c46e8917488b9b38721e8b2dbc7850db64e294b10390a8647abe5c7c87237075b6a5e2870d9401f1f7d8233af5f4cbf52cfa1b22733d89bb26664bd46bbbf4ba57574a39956345ef6ca6d1a3e49434d3ae2089b8c728bc1f104aa56d8c852dd31c1bc765e44218805877079dc3c85c9955de30b38d3b7786e2ec1c7989226b09297ca4a7b4643df4f43f348edd303d24d25f80dc2e2e4e4182a9371676984ad65d6b71964a10ff3d2508618b31d00b778bcd30fdf400e961641711a43214bc2ee94a15be3f0ab9247895a4f566e93f1f67e425a75f7282390ec8fb6a3b86c3d75e52943c27d718f1eb4c6fc42c328eab7dcd9943c7f9494a74485c014296c7e7ee8f3098c04704f6324c338409aff0e61e56f5a1912ac9ee13ecf219272e5f33f72294dbe2feb2f6e787114e3a2ac3a51d09fdda6203dac8b094eab69e1056ae273f979f83fd8b790d7901a3f44956a3af2489da03c07b9e838c61da3040da97033124afc5c619a25a50860f68a77c5cbbe0e291e8e3efc2e8a5ec230c9d3638b1e2b5091d26789ae6361240bb6e2f1250ad7f5d2f50c63a0b723936ab440763cad7d949d0cfad7e96d4b021543b8bc13bb4e42c4520cdb473884f39546d373835b4341057ee2ec093f18b0bb0cb20f4184630b27fed16c25cdd7f87b241d867539415f23be1985783e3d5099c8db37ea07c81058745d26d36cd34250c5439b0af33aa2ed104fc6cf66d551e6f3137cbdfe76e91f4eaad5ec7514646a087fe4f1797945153e6521f3aa1ee190088d03e9972628b5212593c40f9bda93449fa407ad49f8b613f20472aff9e7a1a6510c8f4dd98f2e9f2d1c2e484b98ec18854e46727dda6b31c15f9e496e9e1138bb711ad65158574099fd6acc6d1ba885a5f34cb9e988cdc051f3003926ab6d77fa822db0958217302f8e81122d1725998a02d5c5e639bf90547615bbefd3f22b92292504713de2a12eb988671aac214c5155b1f2d2e90da1308778ec3c3efc5fda5f6a3bf359dcadc598b29eaa300efe2c9030d78e97398c816ef165a23fea507ff70bbbf0cfacea99e01f0cb489c060e0cffc59fe90796595b101275dbee259ffaf5aa47d52296a4318c60df4120a8947a8d2c58dcf4d91ee74e4aac9210d252f9d815b76f45072d0a5f2a38a17f247cf72a965a6642fd7c4ae27f8e8d22b81b6dd54d9fadc46483fa834827bda96e6faec26873cf6316b81294996e34cb5538fa1d07aec0b3fa706a2b7902f2ff7dcdc267803434ba8f64356019881bdce418b800216742e8f098ef3580df1a12622a0c1e99734e81db75def2554b135cad4cd2057997c8355beb225025b7230ae42037ed9688dbb37a3d66a4efa066a0a114c2d865f34d067e24404121547921b80d71adb024fda4d25e83ca4eb36036eb0549c96af8f647cb78988de2b661101db82832a0f7e4cd06382ea88a39b7ea4730546b595c42fbf80b89399a6adf2e70e7c4ec5b9a5e9c83fc7ebfb06b29e0e48d3cad75ecde444007e7922265b6ef735d58bc5784f450c2a8d5eea249e6b0c5204ca6586eb2e0eed7c5a8e6b95385200ace3d77d8fabebafdf88d2cca5c3da45356862d220f68c3dc84e71f4e2996c29b904e79b792d7a287c2b65e4b27b62dbd625d0afb3b3ddee68603236b017dd1bc46256d4a6bdb63b55a40e10d20f9b93a905499eb0d62605da55f420cdac69822b456610b45c2d1512e19115b7e362784703059f6538d0dd8f4cdd59ee9153db60259bc4c455e1f38e211f5b3813eff99bd9c828e7a084906b23c70b2b962301695d425dfb8a9271578a9008cfd2348f641977178b5b2f0847b5a244810779025f266e5c01d2af4b2f87b69b1960ee48b78f3d6b6ddb67b16fe317954f2b9d90efe60203856088b08dfddd335a821d197cfc9870ec6ffd1725702c0fd946ddc2dcd1af37b6488e131d4ffa73f69a2d2bec18a9172c0995911ca9fbcfc937edea7bd4ec1fcb05bc533c2c1d9ef945174b19ee8ed6920c8b1ffde1c8f7a99cd4bc35d557887d186f8f7d362676908a2704667bcf6f4c398b06e5bef652698d281b08420bcb88b349592673d48c8e9b4cd20badf45ac79c9036e54eadfddfe3936e07efc75b2e78ed21b38da3cfe8270a7b92a2e65a37973f8281f638fb4214f08dd5440c83b342a19252ea1e9d393b77655d45b70212f0cbd0322a6c11af9570e22ebf721ae2063445668894283faee7921e2fda8695fadce9e4f88d37a5daa2a15fbbf14d86bcaebd05b551ab5c2723ac5ce0023e3eca213778669f8f88d944adc996d67ef25ba7ca7a8dd3bc16ab4b71f54623a2507787db43960130212534e7621d96667aea4679c351952e97bcd5bc96944477527343cc8ec5c6fa1c95f78d3348cc80f896549a138766f32d0e3434456534fb90ed232c1416385f887ea584db4b059548e6d76d52ea72edcbc118b3d83540a69847d80587285a295b7c283f0af729f2ccef236b983266f987396e787b2a7912bf9923a60a877a72ecc7246a0761a98ee8a95d43b5a355301a78691e2e253a149a472b43b8df0f5d7721004c2be8b9c98746cf2cad70592563115871452ceaeb85a453521c0f77859d48ce4a64804bfb949f9a3d34eeffd6e4aa0b4be62035be1fa85ceab7fa56f8e10424f9b351855982b39c1c36950428430c05b38ec5342dccb2b0d37e3bb50e2bbe128aaea6e8fbc531949752d5f4f5cbbfc0a58d14440232621775599805c749a5ce92ff2a73ed5717ddbd59b7ac4fe842c70f85e67655bc753e9fa550be11696cc18ee2795a50345b53f7d44fd5e0afc662bbefe8ef841ac3ca55b3363b0fa18f0bb1abfc3a8fdeaa2e2f7c01cf6253801c2a96e48e9bbf3ae318479af96b682db62c3e19d478d936e992c08fb1c6b18963951954b17b62fc67de190377df1a6f174395b0abec308f839542014cd7c551ff9b6d4aff3f7e7b47de57bb3c5177812b163eed3270ee8fb7df5a524e45339d2f7459a97ec9d1b3a391222ae24e241de472da61469da65dec9592f7066bbf169cd4f9a7665fe06db9c80cfe0f4d289fb085a07723dcec71fde428305e98d56f75283ca96d9a7293bb87a027cea471b1c0b1d72c2d44dab726178f28f96202116a0d66628b921194146fdaa3a65d4d83c3915f231ad08cb8a78aeeecae49785a508c8f51696b8cd9bfcfab16679cf191257f29ff654ba4d7efc39f2bb9f58e74a8f72184fbe8784cad3077358bfdf6000fdbba142080c69f657db1c74a873eb057dd5dadfbaaaae860f696019a39d682a4baad6771351d1f1b07673b76a6a6773f03d78c400bbe614012d6d2ff3073d14c862ef97380d5530181b7ca8d8488ce91f8f6a42b6094d7401bf7312fe491b6fc917f6635c29fa86c7acc856795c96205607541a791cd9ae6f52e8312ec57a4cbb276d7fe6e3081fc49851b2f8bf52c4bb9e5cd6e845201c93da38018bed3dd525cfd3c3c64c1d63701f37baf0abaa0671a297c9bdcce4a0cf7f2846566732f99de91df9c2391e47037df4a3ea1686dd1fbf83aaffd2f9583aaaea5f3698c378df3c43d47c35ee4c1074122b3c078ce77f45efc97fb29e16cf3da9dab31d63e50e9bc3a3ac4f0da3486caa414e9026c12053b4c6565b326f9b16e88c0b6eda0d35cb19c35498f7468a05b60e5b245cb5cdcc236aa6f8779128ad86ad827d2c48aa672dbc35987f143d68c803a20234f1f50fc7ec509a63d1212788fcbe569a533d1e13e3ff6ab228c7726510676a2c8272143258ad6d26b591922b00486f9e9f730724decc2cf756b1ba99040e26c979302c73d02d613e6fcbaa0f0cb7faf8e6877b18a83f94d123fd7c792d65e4f5a0dc70c1746cb33dcf7842ea906c91a1d166fb985c42181053b52e7328d94be2fe0886ab0a10e424096d8fc0036eeb074c75fbd37ecca4d7fb733a3963efc4f86029c8c808289124b09cdb058be204823917a82b22821961e39924ac01d203b7d7a1bf28be70ebb105849e184c14d9f4d4f93e31e64c3c54d86f95ff1e9a9e2d4bded6fcb4d2019251ebf9dd8158fd32744db4c0b01af46af5b5618dd3bde446fef2dabe252744950caebe4ff232feafddc46400a62700c9a9196dfaa564088601c02a126884130534f4a2aaab5074cccdfc6d4a056080ba6c414d5c8265d798fda0822f42f65f4bb786bd904ff3a456883833185c71fbd48d3f64a8e582704e6eab25156dffa80ca553fcc056d25853834d6152d3c349e81c27e46aeb0e1bb11c10f26fd3ddf04656c76d68502ee9f7d07d553ac1361b096dbed047a105055d412ceeb835ee5731ca685392b4e4a8d2a1fe14ee38a4af8e0140271f3cfca2be4d073c107693b044129842f2443e22a4d80cf82fde978ffa81746b1af57dbbd5c2b1b1c0e9298b206900e65b17e3fb7061ef2fc3f7323511375649b89243c2bbf835443bb9753bcb92f977b80c45a57141b7ddd27ed03011ddc6e38249f71bd826e27d1583f6e2503620f85d6bba992e78382dad8e14c24a86292483d71b45c35268f372c8df7353d02a28d8a3706d64e0305bfdbed4551983302bccf4291162c1239379db0e3f6d7904b0ed092e7f1ad5370e72cb86228ff33fa3d0609759ec342be6aacde9db8cdae787bd1ec2d98c66e1cc69a6de2c858719ba4fd5058c930050bbcb994258d27e377b61a4d2ee410be5e6074d92656d86a0c805730df12e1f029eb9afd7dcd91dc7799d3fac5d0a3cd12cf8775fb7dc487b7939cc58e166b10320b0273939400a1ff71ca90fabcad4372c0700bf6e9e34cba556f722c190f08aa043455803f645d4a7d4e9813ed7c1e8af636c1f3cbf92298708e39f680c75b4c120fb347f36dc7b473dab4290a187b99c63cab765852c00b42a7ea2655e936bb45617cb116644376fc8eaadea166662c9a7d3d514a5f87625ef80524c754575cff8e38f1d4064034337dc950a0e97ad36e1c369e5d646c250bc481c6a635fe4778897b259b847a9a2bc18763dc034def5642db7cd33334f3c392db6aeb5308f03d15938b9f7e1c07666c54268dd2e724f64ca66af1fa1d58b6451fd82ef48fe6ad602678571de6855e40ed79d095dcb6084db65c801e4a1f45f9cd982e48baf57beac1c2fe34d6c9ff38c11324a9a62cdad4a3ec4c27701287b7ce134d6f928c2fb88957137a02912be729a6ed0b6668cd169005a8beb55cc7fad28e1107145fa5dc8b0fd9c591e2359b8543f5793289d753897fe9bab8cd0300d946a54bc7f98c4e6dc5d86a0ae3665f7c09e61389be029a9e00e63b1e0a6fe9b5f655c890f3e70e6bd95a99668f7cc2f9c0d197967febd23c4c7fd7384ff0b0d1761698965a909fe9fcefd3a08b2672a566aa29606f4422afe213d697cfa2ea7e9cfb355df3b0c90c2be973aa5589a5e47ec9ab0c955294dc73087f91d653579822c1dd7de349b41129e13dfe99be57aeaf6aa7d0756f1c9d3146751ad105474e30447c986bac4a65c63006411b5152bc592ec53e0c89e33f7fbc237c1270cb4d060830636603f3b0597765a29ac407e3d198d5fe8ea1e61cd5da39bcab7dbaab75b159f95cc89457a5177def720a3e9a6a91692d774ee54bf01638c7f4cc803d078b3ccc224cef1c63bacb89240c8900b5e5fae53c37a0da8f670cb0762fc44925032fd7153140f133c811b4e42795e33fc4a4b9ce9c671c12cdbe96be2dd6ba2c2b5bf951f0391b96f345e75eac4197a2416c14dfcef9ec3dc72d084180f63c063a0f9760554a3ad1ac99213b5f8ba5d0d618d3c0b3b10065dbdae8dd9765f2ca0a9ee42ffe30db7cab8d61a8f946a18adf9c8bb243059cd512c73cc51547a70399cf7c67dfe598636b16bf1ea7aba53f1a0e4a260d544c43785f5e755054af4488e12482c0cf030aabd0d4c888ad4cda2d2ec4c9b3057c67a079764bd25ed7439f17e06ebd4ac90dee456b88322826c3208345d169f8fb9b1f6047a7dca2140947dcb4ddc57ed5e6fc4098562dd9f9d9dfffd54d7a3fdc9a0def9cf3dee9db850e71c5c61d8669515f32c4d3762a5e46b93c5d25c3312ee087c0f3fc007d4ab2272f9e2cdae35fcde7a44738fecc6dc7e43fc49936c889632f6929e09de78a4ae757db946a4a192c26c2927a2923a699f6d5572a594c7080aac44783c2891f6a497588340cb2cb1bf5e6106c507b38216d7aed00c456e6ed2152bdfab4fafc8d6b4adb5753bf2dfced473ac23f1a584629d08c0aa71ddf96c1a09475673b9ef90f542c1fa779b80defa5857db7154fd8eda99f51411353fe3bcc7c4b07b97c161bd94e45c351f9399d122ce4edfe635be1a2ea2d6ad41b9b4409b58f731f9628198baa453878ae48dec4f052095dda5c1347d0640a67ef4016422d1cbdfbe99db8b6b8e2e983a7525efd5e7aa9f797c7f1cba0629fc8143deec26d60ab2e19524904c7bf8d68a4a80bfb2f3b5bf138bbd058f84bbcccab468cf61760392f915a42c8217b31bdac3199ffca3826b29c1669df6dc4844ba2c3b6321235151ded52bfe30778b3529979ff63116502a2353e568414ee33a0b02cb594b01922a376acfc340a52481aca45f8bce83c5bb3a5a5999791539677f78bd5ed6c77f6a9f036dc97b8c5f65b428b830f352992bd714b161dc9248dee182beabfffb65bda15f46576beb41b3da50e6415357c7ca7d5a415e5626c9000e786c649ec96d1ef744a42e9d0cde496cccba19172cfe161036fc134aaaa27460188c4a3d19d0bdb94d74068104bd71cf47f05b5b81afeb1567aabfe89907103fcd040ec12d66eb48a74d10ac02b4ad3b256a092c2b803cc47cb47aba76b9e86eaab1c84a860957e6b7b8c587448e9d53cc744a493b296bd265c6d71de3275d666c23d5b2c95cfb843ffaaa91ba3346ea7240a5fac164fa8e961da3e9d08cfb070540c4d73559fc17e738b17825efe792941cbd78cd53acc9735ad30e9761ad9bd13f68c45f33b09e8322ffd32dbef2192c9a877379958621bebea9b069fd6b65522ec2208870e14b071be07da9103e06fab83c0a5511e47842dfaa50a151b4492f4e47769de374d1f6901d785650ad6a1ed832161bcf4740530296dd725124ce0ff56f2623a08a9e0f6e62d6e5226744de094dbb101b74e376227c144d478f9d830bfa221ec87170e7dffb21f904f6f726ee5f5159e37ba681d886b77f01eb58e1c2200a880f0c6688b03412f78d20797a86842f232ba0a09b04408a94a6b5427c282b43a93303667bd4cc7d6c4ce9f46555572af8577bb7403376ee228d8971d7b6879ea8e6c17034458ba1d05b6a15c71a73ab5e81cfaae97a2a76ad573f9c3696304cd9f780271c549146f76d2b6550f9d88f5854901d2b7a87aec515dcbe24e8403b7d461f72b9865e5becdbd4d21f23bc6f98613434099d28194f94ca68b30de2989fae4b0fee19674a1dce8702d95c62ea4e28263e08e8cd4a9220a287ca50c4c620af4c6f4ceeaeff56816eda6104c3317ad1203ee98a53f639ef301aae9ab8c481c38a15de714ad0600dec7276e1aef742236592961d30dfb4b7b57d219db981bb08a394b87e9f940082d064e8f44ac6849d09e6f222d6043d2a66c2615c2f4e1c679ae369de57ce6d6c1c2f4bc2078acf6bb480612af163df98ea46f8d0958c3b6c8a5b420a4255a19ae940953cbc7fc2e421223a0b948730be1cf44bf5d1a42dced7e632569adea73dd4538c2a22c2c61a5d77a4c904d1d1d61cb2a25efaf854b93557d099aa73cd288d9e64dca1849b69b40e1dadc544915626eba39f535c86c18d4b7024122b687c0e23b82aab307c2cb3a436b298f91db4fc92506270f39ff0fd65b378dd68d08e72a295b6cbee1315244865766e61d1b25b4b6cb4290e655c0dabea44fe95fb636a8b47a7f889eb5408616c16846f4a1f5ac209088bc80c2a347884f7e3b6af538c4f99917f434401abf2d676875d9816706c0b53e12070ae97a6c9db34ad2814df29c95ac8a39ec5afd1cb6817c44be326620122d67b36ff3ad4743ada196c62896ab1377a14a43ea2923ff33a02681a593642622d5b35ad8a7c2e5cfd80dca523a22c6f88d2c64ad629a6fe3e88986219669366fb685dbe43feb659d26151ea51693ba73ea8787f72486ad583b48ad9d23bffc67b2035e13b06ad643805024d1e6a6fc6dea7baf0f48ccf640015d61215fcfa2e5d978a59ab743410e4a1ee1da10720e34bf76e2b4c7a23fa96193e24be7cf75c6d34ac85f8d42b9f097208a981bd85e550c062e955efc1388099340cd34568a6a190d417ca288ad00fe7df7357577f3246c91d2d8f0fdee35848d43ec48a92137430f53c034de18f8f03b21b389d7f03704316594c6c652ed230e5f03ac2a2d1665b8f02db1b3f1b5b654dc6429d388eb2912695696152a4f7aae3afebb70bdf47a410a7be6fc32bbe66a1d703f791cde161cdea05f94e4e060b152e04aec8343e5a0ab940750f1af7a3c2152d8dd0b73adc6866515d54d8791c6b03d8d33cf76f5b898167ef232db6e37fd5b7895c3514d55338f18495611cf78c3c0584c93888a1b27d48cbdacadf2d1442ec2d414e4b7e7347a82bde4ae9d08e9a7b28f2076bdf4ec55c20419372988a2426d6ecadb041337763f264e728bb55842ae0025c09dee7c543be898b179a17d648c29baa8a6f42248f9c140d508b8b3779b3075ecfd1fcf3eb5bc73f36f1f0832242a47037ff15aa9d1e0c634d16dad41850ae303505827b7707393fc2c785aa011666767039392c6ecd7844de37ae82c00201a12925a4115e42b506e67fe94774060c3947134c2becbeb7cc709e15cdb485112ab4ad94be33d59780efc1859d131a4740b14723a27773b73a8f34f5983b2ea2a619545c360b72506490eac4e9fd2bb3c95968ca78a79f682dddc2f786d659169503fc38dfeb6fd9daab855d423a299cbbd6a32e9e2a96795b5c628af776d99a992f3d3d1e3c26cc5654d606b7628b1d1513c61ff21c69e32664028f694189fc1ca778be16b43b6bcd0268cea03bd3727e57551f1acddc29287bf27e148a57dc69ef85e3ca415d408e40713050a9d47474fd59d7fda8b57ee948835ee2c41fd9b3566e119d0edc406c00c873d1e52dfba2c1019a77802ffca6e2782377057d2f4bde0fe27e7895454262b6feea768f7d45a88037648e48269d87774af542fc8bce734892712b4c775fd42c3ac6176284e7c1093797def2d89fb3d060baeda30a9696827da311516e3cdbea9eadb709be37ac0fe154078c06be34eeb046774f4547b56fa4456d79b9246c4186bfa533e1afed9806f2fb38964ff4845b2feaed9de5b5c88a348186d2ab9f43cc9731877acf7bc0027d8cf6f44a5dce53703b3e179c915c286012cb53c9dbdc71054facef51aec561143e3f0a38ba4614d9d4dd1c08b29328430afcb560c3987267b0f50e55c215d3c65a266634f8e75a1056f41e7ea25aa89b869e935439ee98a1d2e8f9c79723c09aeec16b9f1d2806109f9d013346dfe612f01a72725424ed241239ce67185abdf7c26dbcb547f15dc8add51483832a337607baf77b92746094339521f05d50e02a5636828c08ce174fe8c0b3ecd843ceac99050cfa820261d510ec3f83e05ad56f2618256638972e6eeb46c854b6e73dc1ecfd296c07d8c4bf1bab5c9e747698e9e53a372cbd0951c794ec6090f1ea277c48bc3bb734fbc8d794874b50ed1b5eddb79e2f76d5457c8d0fce9d2fc25290357a69aba5836f0ee9677610a875bb0204d8f23d522f4e02cb8bbc57ff5c67f95241b666da9c306bfc6d610aa69bd9aef8d02d97fa566bc8a0bde567e644d51d5b06565ecc4692a9dde28db2a8e8c215da700e3f516b239fd375c8e76b67d39f92fb3bec0abfc5668841b29a817d322b49c4f55877934fc93bd7200b7dd10f2f40de5b7c483c2de3db54deee3e7d3e64ee1f82dd0383cf0f0b39079b3cd40030b69631d50181451d041a60e7123dffc6ddec346819d302bb94396d2ceff64490a95bfc0ba588d648b4afaa71bb8362e4971800b77594a78b52a639ebaf09ee156982639d2d4cdc62bc9037aa9d50239a16821bf2300dc939539b58ab0a3964f7eaca34f9b42c9f3ab09a8e6596c56457d0aa759828b2a57e7d8568eaa1b47ee7ec032c19afda776a92a8e4442b643466b8fd9489ed4d556f97e9d3e88e2dafd1af6a240ec833736b09f057ec0ac00b98ea3d39d3b1dd1b50e3a38e6c08698e0872649e2a1f6eaae2bb03c36c38e1b7405e75c71528aeb2e802d4e37db16df588a5a825b419c6b3c18f9c6ee9360bf78ae701489dfa2e896240eedb264a932da985006c0b760b9d4f0e973e7246808f82a466b8703d22859a1a4c71f8cd7583fedfb09a7c74edbd6bf4475b2a1b268fe05e66e3089eae1b0115044aad33e8577870232e2c81a20cfaba2d5b6268c1c774bc1638db29de7a0c980db8788fe95fc024055308c9aee52d3ee3e1b110aaf797bbb2ff99b0504ecd73dc637cf3d6024c9420f9658472656cde710d34d838e13b3ad945f9b1ee08f509efcba1ca50c9f9acc224643c10f9cada2c7c76b12b1ff17e33a39c1477c845752845de6e183b4a254ac439648dd25ff06b258fa1649fe109e8b0e08c438c2591b0feb2a23eb12478624289543bbc0c04ef8aaeab289be98925b8bce3e6ed0e04de96839a13040afbe32b7b2bd7015128bf2833f4e7b8c056a656def41965ef35338afc213a8008f914f2a35e38fdbe920cfa75414e034f44094d729bc03aa032b897bd437b7441744375e5a873612e04489f66b7328d1a0251ed493852bb202e5aed6d54e926f11532c4c48a05e60d1832fc1fba0776ddc9f6e0f80d37c7d4d27f1e7fd9c080911ec097979c8befee23d7a116f10b8bafa25e11597c2c9f0cfac8a8f07eb602c58712644e0bd3acd3826b2dda500c03e87a54b9ee3d23ffbe6c077621509464683fa0540afe0e37581c4e66288ed85b44dff58ab3868f01842c694e1d245c3f350d1dcfe8fb989bf56f5741f6e1c658e4588b38da74ce96d42b20c06e1f65014e3f4e1fc1471da715266dd27ee1372cc3c88ff10b32addfb1b90177d85f4f060a69671925e56136da21cebcfeb1edf98b2bca55d8c115cb44bfb082d651d5b1aa69eff173e5a41d7d8ef29e257cb705c2ed46d59edf79b69cba6aeddcbd139a07126daa59d951181af0aaddf2b6e023d84f6e8901332d1dfcad7fe1da4777603e2fdbb1996bf31e4776d25029a9e1a38e439acf3f50017819be716c1cbf695e5fd262f4c68b7405dfb6b48fa49b68f4b452b5bed0e00e875eac3898ce23c2537f257bf9f81fe4e83a12c86a4bf553c5eba4c82a5fbb726245b6efef109bb35a7967bfc53cf3cefbecc2c102eb6dec3da82914170c00db656127d1eee4de7e9d53c304d46e7bad6827fba2f644ff9662e35e2c6b9b9cda18fc899d46698b9119c994a910af8e70dc8867aec277410e89d359c98f61f28d7468801dba2212fd7f96f4e948505d4b0af98e40240a8d37f22c80fb0628c326d1753059ab449ca7a7e45f84f73b2b73f6c10c32a03e1b4e140700064991b647d1d878c56f2a70e203bd0b5fe82ba6c7fd432b6ad94a36c500cfe292350a2198c06048fb0d5e605aa92fe29fef24befe94131b24dadcc74c2c79bb5febde7118196bd9b71dcb3bda77871ab81d6a2e3ae9c727e7b2ae98d16d76bc4047a00f02fa39f53ab44a4c550f101c4146fa30e44b70435ddddf33958f2caed6adab3c070c865ec25be70b491e472b4ed43b4da855b7ac82457a23f14cd16b7881e4d6bc8564fb01e6b53a22896c0ed0fe1c3d667abe47a36a2272bbda3ed1ea2ed5842a13e667c56caa4add15497963e68393435b708629f3379cb1f61371582f4967913fa654170640d7683325b09bf5d8a48616b6cec5b7dafb3e74dedfee4abd6a83db72d869f56c3a1bbd7d255eb5a530fe8375858eee510ba337c8133b3918d4b2d450fe4a6145459dbc3f7bc94901ca53e13753ac51bb37b3a61fb810b5fb44357853a8926fc6bc9938ca636364366ced3ba40f8f1fe63d5fe4e5ba81d05e054a063fbb63a93e6a462eee9edf6aa346e20532c4f2f9bb86c14c09adcd47a9aa5f5967e416a8c339d1ec063bf7ce1151148c9dbcf37ecb52574a7ab4752a5b64375ac5714e5e9c5f0931be7c08ec787644998a65a6c6684ae60362d8537e5b99d261f11ac12dad3d8304dafb5870cb7b9bed32ca9ca7d04f35aca2826c1127d09437ea59a70272716c25cbf9998c1cb882e9a8dc733a5e7aa26f50d2fb1f2d53e0ee4de06c1551f713f41de1cdb225be8eb508e94028026c9ded05099096e71d83e3f402789c64f30a811541f3480211a874bcc43f23f4a0a1a1282d1961606d8f6304accdf7e55a2efc404390670daffcdc0e4dc5469046e1f8a74364ac2ad214c81a3d68b689996f952c535b4b5e89c5c2f59bb9977fdb72a0b089f644784fc606cebbb7228b5e3a648d092f385829dbd93d80f241c98ecc0e07dd270a3a0950c4ac20557e419e2f1200f01ef1242d01a12805c7111a4d9144ecf0e0e171d7b1352e3d1e69169ee1af585eb388a4da67df597f98fbca08c7bc45a828a002a24f07e00511aa9acebe4558fe98deec4b59f264c93e5163dd9f0c360d34d7f16672bd16f4ae2532fbde15fbe4a6777c7384b7ce1a8459a37d7ab97359a132ad10045759f9726755accce5c2d905d602d8d4b87f30d58299e61c360c1e4f561a20f2c8eb4a414214e860184b7f35a5206b6edbb58694f2eb397e220e4b0470cc99947a6aef3bd605cdde3ab1cdc9dd007d9101b65b7ef696a5a0db797753fbd31060f09e89b065bc4c580fe556b8b535ac0c6bc65c8e42c85d374003699719db7a13287d1c4e33c37b8200373f251fb9e5a84de59bf68f5d2ec5b8f1dfb1a943d1b5467562cea7ac132f68e2e785b049b38e25620933aab00d50baa0b6a3b8075094f856ba52c46ac34da6e0b389067b111ed908a90e4f3ad81d883e62b808a5a6111e2ea946a4eccc518dc301f6950363e067108d65259352635e25e77fed93a01042603748e2b7c6c4d0e6f51d252b33e54c5ead9b93cb1c1d89fc4fabd35ac2803d830517c0832b84f7ccca4dd8a6634c3238cdfcccf4c90f2bfa556135deefbe64aed4e306939b82f9ebc234510a26495570a85448edd966e03549eca200d019c83fd1f2d269b834242a98cbd6734b983c09c3bb5f1161a4a3239db21878ba8cb99918f3af7a6b23ec7c7d318dcad426e45fec3b5596728f88af68a938480be145533fc7327e3e168cd4b9d38e929b19cbcd3b65562b20ed609a81c7113d5f8d308d9d6a64c6031d030e9c6d0223fdb8eeb71ffe322aae0af7a48754db4c26e7cf04f23011c90c99a5e3fdbf940db3a5d80e85d050f7ef654861f6e37a1c81d808e97fe0fb6c750625738a1933c1c6ea9a6c1e51a74f3693c2e5754c43d0d64c8cfb5140e048775a0f09d8c77a5aab71e1a787ef8ccc09939685266ea8d8887bef50125820078682b2728487b9cb47d82d83f64eb6532a940cc225aabbd6330e488e2892d05da5ec2940f34431b6cc954d55fa6100bb4013b8687d88e03b1e9fbd580a84a78b610aa5abfe2e473d6c9005105a8fbbad8ccebfd33feec67fea2c1b702811b73cd3c59139a995932ce509db52ba2ac97de78e4e6b8da083b4d3133af7124c83ba223359de5d3c0c953533d1bee1ed78f7a3889aa4ef3fa43a7cd688c94388dac700a5ed0d9bf72b7ac6dd0d5597e787aec85255eecc16bf2e193fd29a7763ae21db98b717ec0e2055c5c93aea373be9ef99910b78a301e1d1f0208fd092b01cc67fff9f37cec5159b28110ab73873de270f2e1ae2e224a17427ea27bb9ba9276b02b65dc4a8d51f08e64b083d595771749d5b5c95beac626dfd0039c9b188f2cc39416d719a41542ee2eda2b3e4bb2263fc98130dad105a522a427ee774e43c6da1301d3ca6197240e2ea40d01af1d0b171879115194dc54cc090712bdfbb7c20184edb3b9ac87a4425514db81974ade475181f811e41fb7a2f5608c0cd00f049e49b76d97a011f911b9f0166a2ff16be8c9b61196e50d68b1bf123ce41236499bc6989ab00a6d3dd11620b72b770708271501889aaf88cf3ca300f2a21bddbe30e687deeeee40dac6489a8224c327a17491b7717dd020ae94428eed93d8cc41af95a2a99b03d6c8cad2e80cc8394749d0dc55fd78c9ef50d61fa73fa34c812c1f43ab2b6b32191a785a37715056bcae4d5a40d09e8c42763e235756db0c19cab567958a9e1a6e6b462af42e986a953f06b198c90105142de219f332d2c293c853fa21ae1c8f51334db100cae9173ff1214c229b508e57398533d10cbbab60444ff88b323917cc0f06007210c4d67ae689db36ea3f7813c7cb839162e7183d47c5e34454816cb4801e4ee127cc72a56d24d1caea86894b763483f6bb20f162d48f3fc1e64efcc1b74c754cc4688a4d112fe581a6dd79bb091f8e4d9e6a2d07dcc61755a8116c6f682672862acc131ab56891d36160746142a36467756a5b28b0637720853711adc12be837e084d400f942963fd1f79bd8b122aa2073e91cadd437ef0b9b5c7563fb939e6f2b07e9cc5c3f769210ea82838d4f677aa7a2a6d244e917d510f4d8c521ecfcc2c30341f5ddf1f9398e84b486ccd98942d3d543eb870f052b12ebac74084492fe56ca20c309e0a9a95ce32a931a135e4cb7e5d06c2fded8da82df18708f789266c3689dc8bd9855cf9b36d88069a11b39e29e3e4f9802310c3b6477daa325518729b225a710ee9297ec8a21b92bc759d03ea215bb097cb58dde74d68aa6edca9537dbf6251d30358220065d7181df92e8e4d4ec078b3e8c31a1ab796f220f1a6050e3a598a9a4da4697bd5ab5e26ba8dfeea4f20a0b62e5398a0356c0fcb405ce6f949995e53c6089fcc7d84110785fa3556968b5b27870d508f29801890870f1ee7d8dfcb7b76b9e57f00c2f5528de49152125037d68e2abeb6a1dd62ad0e5a689f0124d57f4e15f9f7c1e6b63fd333a1c5c11396ecd757a0df2f9a16f5012c647ac0a4d26366e1144ceab0455b8cce4c626aa73047b65c04836f1fcc9384ae22ba32fff0e800055613f43459cd0fe0bea668285bb2c747b84d101f558a0029bc9ed8ae9d5fa4b2f8a83ec9bec1c819cad37be25bed666f4ebb1d720657a557c25d1fcab1f8f451c61ff9d5766a7f115ba77996e1e51869ba36055827d75816f807fb8e62279ab336efec4318fa44f837aebdfab2f4920f58cd213395eeb68bbf00fc77040a17b5de56ac1a8e12b7f03750b7279db7d0596ebafda040b631095ea0283defbf178964eaf682afd9fc8e1fbd4c9310c4d0a30fd072a98c72923401a8c1c580eb9aa4442b6830ec1ab573eb9b96cac868188aed635b5bad7b270bf31c416c08d5edb9bab904e61dc58bb46d718794ccd21de621854e23b31c168158cd7c92962621a124327f97d9c0b6afec682225fe6b9ea404bfd4bb589d9a214c840e09f839d3ce432802a79041f3b97e7662dca1f3b942bf93e3f1d6a1e57c0bc20da3aba3956aa178e785b7773eb5990b0730a2a164451d29540293283e63c69cf8c87daaf44fcce31f12b7f81981e3f47618224a567987181868035365150c2d39e3db8612626c61495ca7a694955ed5b7a187554ed1b92be7bbe5c3dbf727f8a09464912ddecba45d89a3c08639ecdebd225853aceb7c77e3d45f483f86e49e69f11b3939262200e24fee34f35f3f3e694b4bdf780a50c0520e09203ec92ecdd833f3c8030cb994a559e7b036e5eaaf77e0e5dc98328b6e6293642452c70704fac935cb8e5903dad3b88267ba14474fd609bffb2d54aa2d0930c53336f2c3759673d65ada54892b41b16e645c83c02eda10ff6837ea9b0184e5987170f62866cd26d7b35a7c677ce2faa4255be7898ecbaeac2460651d8937b257cac89901ba7623edfc2e6426e12213961dec4bda932b845595afaa96c21f13f7d5c011dae535ee7b85da18ded3a94a44f43fdeca862bef1f60d6b75631cbcbf2c23bce280cb6146e6acdb53be099be59126f11b53e281e6b3196ed9ad6b9856a80aa3536555dcb482afdc73870f40073a420e3df4e7ca0021b79d7df63a7a7316e8c628d208912e2386ae6101e3fff014bb225868d0f810906e94b7567d0835c5ced7a2ef2d19c800d0a09b81304801b66fe252dba17b39dfe675c7d43b1c2c45acab5abb0d60758badc72ed0ae00786b326749897e5a9de1266524bd5945ee29a3bda1a5a723201f6f784b79f200b165f4ac760131ae5ebfc00cd928e945785a05ab724a4c790ed553d0e90c4d952e9ba711adade925ede65019f0426294601b42b7f127af4799ab812c7efe61fe733304db5ea0bb80a46993bcf01e10dbd93cb7477d749bca327e8db1bd16dff2af826db136eb6415bbdd132a6b32ce7a851618654e761a12bd877ec572a9d21737e0e9214000754d801f251d95c3c104163b083fa9fe83813069369461016e8ccee17f19a0dff127eb8b5f51f6de12bec10d9ba89deaa34f92ee8b8c3cb49e60c6c5526edd1333b3788e5d0825a6c82385a3a49557cbd9093b0c34e1a8d0cd18e4158758b9bec7985a9ccf879209d562359a2ba2ff17da0e6dcec90a5318402d1dcd4ff49738e390f5f64997673f0cde62cfd68b2b8b82113b35e34213b8068b218a83c17804fae6afcf5f0571893cad0b21e5b3de8d059abe36260822302c14b698c0237f1aefff0fa7b8221c1cdb1a1ea218a01ad28a859e61be9f5c5ecd1bdfdb75e40acb6fce2a01ce438338c324cbec017cff7e4581e5d9688e99dc1aeadae21dae60bce25d62c9e8428acb54fca87c43967c90ea9128aa89220d25d33cecb29892e2c49c4b74ffc6fb0a24d88ba53ab8df904c648ffda262e7bd2ea2c3f40fd884d8a3e449d8870bd011926ceac8a4e36e1bf099a4c14291330974f7a3df4d01dcc8daac9c6e393b262a01f0e7c73bb5fc3bf524d2af5f6e9b37954ff5dbf4bed66029d19e7e8293e6badf3d87662074694395d76a478ec77c2109a34567c2bb13ed6d133d053f78fd72e5db7eaa0a9b3534680a96027eaf73e38da71528d1271662ec097b539a8fdcc58aabb9dd048808d343c1d05cc6cfe5a24bd65898f1b7c8f43dafecfc15e4f877437fd56094262a47bcd96929debb7862dbb4f77f7dc6f5426b4a3b16108e4b3bce82a54d3a260b4be89f033a374298e6a3b3503f301ccd0bf3f3a5c36277d15b2b3eafe975e2bdec4a581755b89df3a93e10b2e9cd6e6478bf127c17f7c40c7c0c9bafe8b2dc75de0488707c0fb7fde1d68ee22fa3d231f44bcaa54065538161cfbc147fcd8b0d57af06ae83965a6d93b489981a283393957d791b09fc7c39d155ab7e4416508582822fc5f6c364beb665ca03954f664716f0176aa4c910417c4cc946e6ff8d7e82a9d97b50626caf6c37dc41c74d95f35bb97534ce7ffb2afcb2cef6a9e04cbdfee519ed80075fc442f10be840df849f90e51fb0384da489dfb688ccbf713aae45e5310ac486d9c287041580f35abe37cb2df2264b066978c633f03c65f69edffce87b17c856c337b0a19007fd18ba0a48ab2c743037f6138f6a406bd734a18061a593292426d9efca65976b42f8f24e31893a8c35f970fc91c197b515ab34ea187777ae1e1860800592aa13da0c3a99f7f634f377a589d8ee9f542774a92f159152dfe5c36330c040ffe55746c1b8693add9344e4be97d0e8b5d005fe3c5220f10e91614c4fa349b53fb00380f4ce9e40176cab84add01153445546a8137acc99ee0b8ad3c1b5fca7a09ad8d0de61fb0033116b1f25844c0d35231354c4da0136877f1b5ee5dd7b2efee60b7ec73fa8baf9ee5825510a379016324ca124d5495b6ba4a53093a7ad039b35c542d5f3b31d43f55ef01fb9098a4cd9029196f350ba37b70b7684283d6c6e31a19a83c48a03d5fef85147c7028b07effef777a46adfe588043681c21c2b9aad30dc869e82b75132b971dc7ce1c1d50839c11d870d8386519d9b0777fb85fa8a7823295d54cf767ac7fb98726cc8de7162000583526ac5b4b48b2545d25902e9710c6a389a932ed95a9f27eaec7f1c1b5bd4236c78d7d8317e8b7ea75c3f5599873d6b2057f8358742dd117baefd2242bc1984aa618abe0a01f7b74d98bfd1891bc2f3746c2559885f262969838749cb4fed91361451e8889b87c5994a98fddc023514d7248f889a264a85fa40a0465492fec73e3928ba67792ad03e771006b504bb35caa99e482c2335720c3f2491d438b2a3f6a0eb7b172127b19ced5cc6495ecd1d798cea3d5571ffe6f7dd751839a8140b62ba96a07de9953b18b91486be41d4b03a41ffd7a1444b608ffab925c97d9c8e6b1e1585d17d26cebdaeb5615050917d61a0b75ce15ff337a17c24784a04bd303706a308375d36e7f0e5388fe2265a5b786625d60b9e09d4f2cc54eecac1489d6ecfbda0c25c37b5c837b7f0a1ce22a54db209a5c36e25471a57c24eaeeaa3fa367da4caa42266ddfec51da7754958db1588ddb9ec50023cf50e39011feac6be9b3468fc54abd0f20271f296360c8bb67d516ab6515a6e46bde665cb48e010327dc08c77b6c6ac57da622811347fe9f4ba59f27955b588f3e25973e2d41dea897c0e399f5b98fe82f1840412607f8a6c8a50e9d93d205033eae4b5e3f6aa36c5f2b1f7b33e168fe4e80512c899dc872c91ca3c89ba6b81f57b876886fabf98b4ba5e0717818e32e1b4da2655f1dce8b6c5bf2c70e9fdc513c2487918aa4d83d879703b77041f5fa11d3878fb6bb65c9d5d0bb4f63f4f32e3ebb0651816761cff1e656c89fb3b13acc81bbf28c418c50a3bef80036f6f14076b4c277e3e0ff0cb805e782ee22c0c887bc26c11dda29003fd8e7db18d7e125f112d3085de25729361a3d328a78d4cdd3330efcd2569e566a471e8fd9432992aba68770924755134a11da9c333cdf2d006ad052cf4759bfa3604fdf07c559abb919795c96bf299d810db8a0de8b05f95764425a6f343070ce9162c031a449b526057f11f3442a7c82f8db28814cdac681243ed322143946f1d5de4c02f7013fe75c8fb045842e7b9130cd272f410737bc2bdabde705b2fe9faf0eaee0be11a97f6107d6c4c7e6c43e2d073062e3ae179160bf260266281476dcb43b163ae68354ed8f04f8ab950628c78eb57685c22b14a4739201ea6f9bb274eaa761a86a1b487cdf2f7876be737f046d6af1860140b7dcf9655c067a839a5be99aa102af6241820bb56a43ec06b20a02b8543804e5ab8c880421c59e9e432c3e56f16f011417307ab852f9179db5391dd788fcd77b01199a2aab526deddc7e9e2e5a4425943663ae9b74bf56282eb4509f5b2a9edb8106bc103e3eab8efcc1f1fba0e1d78b4c7760e34bab2efc20f90b751f74dba5101b0b00d37b5d6eefd3aaa086f93400d84fee126c843f97ba1682da14644dbdc999956c4540caacf3d73eeccbb49d9457015266177d5d1939e67cc85fbeed703979ec0ddb86975c08de5186507f93bac94857452afcd26e3a44a83b374fea7e78afa474678b6d5cf561012ea2af1039cd31b2bd3ba3fb3a9f174cefe3ffde9f6222dc64cafd61ceadc59065ec9938cf1e828688f9777c2f6166c481b8bc569e49478d970611d7c3701877ef3d9d35f52c0021725a47482afa35aca6b6a06f777b8643905d6d2fe24714808efadbcf4a409810c470a68261d268e1c8670c48b33913c1b1812b454a2feaa6ee5b4ebbd51c4823377da3ad92c44fa364c03d6c206b08ea653ec726c5e25a28258181288273367c9292f0380cb1fb311bdd5699e8ae2ad79c85b32de0cb08873f4a57728fd4b96aa63d5944c07e17305dfef7c9e7f1a323ed40e0b26fe0799b7ef65727b6a3ff6ae25e9ef1fe10a1abc65b862278855774d960b8aae94f874844fa9f3b232267516378ccabcf73228b1f585433859921b65a41731ab60979ed71252f9f4393b8405215e10ca76cf454227589a71db8d816bf1e8f3c2ec90fe0e86951c4a204a99116da45fa5f311ba4fab7ab86bf617504418aeba8a85516111417f04dcdb23acdd78228a052231f56c33ff405d004df4b47c50e2cf8560f7069209ef83ecfbbac67078186d8a1609a1ff2ca9110ce61c59f4eebbb2f1cbd4a156b62fa9028a45a04381c36cac202bb7333fbf2f8f1f3aa7e9730a916ab170f68531aa6f33add380a18ffbb5368d361f560d23d01a6b06052bd688c0c5c828e4ecac583614176b9e579a61fd3e2a285e9a83c663203efbebd7876219d053ba0ddf52c96557361b3b9b604cada320a30ed92272eafcd4d91d1ed3b75008fecd61de639c8ec43174a1154f476801056d71571a4179c4ae21e9b8681e235a0667337b5109d8a5450c31c376915be6dff08dc0ef241188db9c7d64301d4f248475e2ee6e58be043ffb7af7369b612d89bbe2f1135dc50ff4d550b77fb35f13b84614339e682150215e6e18548ef4aa85ffa57d35053243b79a921338cf469b20107c97b629a3453cd894e214c2f095911296049c8742bad67fb1a2f0d6c719796a331840225638190c5f48a848275625f059c959234830715aef8c3d21b2ebe1d0a2f684ecbb0eb024813e8662c0a28db5711fab6c60d316c805df597cebfe2e23fa56e9b41392454d5f07b6056e1aa324b7976dca2baaf8a7dacff5a94aabc12639e4eebdf8e82d398acfe45e6ebfc8236e0c33f9d389119a4458afdb41dc6102c8bc48dc50576f9b4badff4a5e019c3de5ee16886256ac88df4ec73b59d541c39f29eafa8a9deaae425594dcdb3eac1ea678265b6787a81df179f967791bb7d802e208962d913faf101694dbf8e8a21b36a2de2aef2a43485d49faee054d3a97c5dda140b5c81d5e15ed34417db280a76601fd00cae0f7bbaa2a01d5c7f2eeb626f82d1fc37412813bc694bdf974f7df35f1a2bc2188426f17a9f215a8934bd337e5d96c9bc02d62d5387332aab573ff3ea594936099a71dbdcb311a3a9579eed53bc3f5f3530b4c8953ce3628f41bebba0a308c67666ec5c563dc4516b3abea3196729b12d0e2114e496f94ed2ce7a71099910315bbe52bb03c3a6b0417f90fe90a09d43b62468777117ccaa639efdff5733f261b98e055a4607355f65b428bad805d2a71c51e06d34cf38c55f94e601f819d7b2602560fd8e2353ed20545ec7e9e94b97f4d45ecd301903f436a2f9d81535f58541fb46703e2cf580d3849a7725a94b55ed5d519d001f37ec31f222b210e276af91c8431e5b4664716b5c4950c6912e2ddaaf3734c091899c6bd8a4573a0822fb8977183d77260a48f70e571270fe31aa4d1456359ed0c113c64a4484efe827be77fa53a744ac97b5a3e355b6d189ccb7d37e057ff67991e4534a3386a353bf748b4a97449587acd70686f5860f49576fbb3a83ebb55062937598d3a71828f9d0fcdb7149eef0b0f903530cff23bd33160ed870f0b767b526e3faa18a0c7de3e36d16a42468729aab3aa5d0db0215d26e07cdf420a017bebefe2d1c0f6063bfc25d048e887bcb1795f1108c2748e31122feccf551ea4dafadc5f79c5f8c117d0ac997e360f1e294dba0c0882b7ecf5c75e66d248b3b739bbb42e15ddfd608f05440e751ef3b06a6c7847cf4661e43faa0d360b2108c05c1c67b64c611204a3bba6c19cd8c9612d0e9604b8e835896b35e56a836a0b8b0640371e86d0675f2265b8e9e960cdd3e9dfe11c9faaccbda476684029ae477ddffd6d89844c55853b4bbbd3fff30f40e8805733bbb018cdff8f122010ffdfdfbb5ddc262e1be8bf0c09d759f896c056c2064a2a7381817c3b34c558ea739c411a212ebe122704dcf40eef12098f7f5471795e236d8a8b180d3087e51fa2063d03390ca5f67f1488c81ec93605eac2bd145756942e9b103ea5e092dd362a96358c4d0f4679d44ba885d18370e0f54a72fa0eaa3a6d67086272b6b4677b2beddd1e3782a3e9fd74c297115d19e4c4a60a1585f3f79f09e15904b7f94af6cc24994f87f47f7e7353e342a0c8953daec8b1f99428e1757a67665afead76cab429097dfe9c1673d5939f5490d6cee9cdaaecb287a50a991c4083d337ab1b0391285cab138c8dfc664c12cdc9e901c7820302329f07db8932effc6e24f730b5950a2b0e71ae8ba78a0dfbcb86be60c3f009f4ec91d7ee6e65718f091cb27d18f301fb7b779f9c704c825db0d8c03bb47c4a3e430504d76c41648fc9875582e56726b496b74b4cd5dba0440322b3b05e538bc997182c3c78b5bedffa6342dbd6ab219fcc7763242f096b8b789ba417a0e4c0c7aadab9309c9719b631c29ff6a503ecbb75339df5e4cb3ecd0acf37a87162126aa2d1ccbb5d1e886fa94a89373cb298833919c81662bbb6dff91e3911b843eea25d75f4e63c6600f87ab38de01a833267998bae834e991a783d3c85fc6cc32e6620b1bad852ef5386744d7d5f2d41a89df4a1c80536c65fdecfaf3fb9b5624e196569fec5b31eb8ae127788d4523ec9129aa4bed0a7c7b9cf0e555986e762ac25a3ee1dc48abbde0d5929aeeeecd051898594bb3cdbc8baf252db66374f4ae1de268bf1c5dc729e0e0f6b7a77abcf074235a38f881116047fc846c72dcf66232fabfc954d7f522b8c33db14289d19e7b99db8a2cd3fa486fa856e1ae00b44bbbb41f2069d1651df52502c9fa1470f5e51a1edb68f0787532ed87e076aec3888733a90896fdec592c1b4a1e3a229159aee99127b92a77afcb4bc7653dea9d994b927f1e68597ec840d859653d59315e4ec7227edde595b84c48ea947558582bb9dd0a0768f3365d4eaf9f855cb35fd0ceb89e68c2287acdf15fc3f68f181d25ad5de1df939c0b5879b22c7e509163cea4a0d365ed25213050c72b47a542d2c1a665a5f4272a1c425a7f99b8037ed49e273d7b9bbbb46da8d7c5557dc3e9638be34914db41f625ddebca21d65ca051c892ad63ff9ec4f6fe6bb81cc28530e600deadc4489e441b14282368921d0d2b34c8fe551d61fd2e50ecfbd8b30383954c4dfd594eeac2dd58d50973272a8698f3196a6a7c00f5272ebe4105e3f9338869a07e603ef16003f7d2268fe6fcdeb349f0941b2e6651aef247921e7b29479af56feda482dfdbd4db93465e60e03b7ac3c6a31131a254a5b99c21418e110c648f3bc0a916eae02becd1a0c78ec87e305dd3d3b2282bfee585c4fb6b94e5fc012d399dafef49bf636b24ab7556e2131ce7b9f58681e4027ad47f009e5357ade8f058cfc23aa88fabfe2600fb3301d059e492208251932d1c21b56cc8d5c184e869be2828a1983a843089ffadbc4a1848ec859aacbe92feb273002d1f33abbe8830be2fe2f3b34eb13316701acbfe827baf898b8804744ac0db46c9e3172eb8354a6f93a020e4db36399b57417183c5cc394ba7ea0eb864acb7e8223b0921d778d1b83c568021d42cb03db81a1d5d0eb4f5e04aa39249f8e5a70dce3b132f925050e3e6dbb349b17c7a1f9c4e40ed9eb887a776f8e36169dda615282c854fcba57b8f904c5776c51388c06da0d3867e299de1f449591a3d10ba6cb235b1eb50362a11e40492fb0afe2cb51e260c1fcae35cc342279d0dc23d5196fbe27de0b8dc9600a3e7afa9d83ecf1d6f2b005de81105e1c1e188df34fc0c4940bbc6257b374736f66822e3e836340d8e5e78885d76324a49e85026be97c091b7dfca035570d202b8dfd20c7dcb66286188486d0fe6cd100e4877fef905b660149a0aa624d846b43f07b4269eb3bb6b63318d0be29ecf566a919a9b9c1d2c56a58b3f4076d8c1dff860109949ea922ea3cc8fbdf69a7cd4e95e88c270efc5e69a914ee3d551bd5494588aafdfb9c8226d3cee2c742e71bb5dcd883752e1726367df9e5b99fee2cd66a7da7f723159c64a9f86f24aefa17ebf580e4c0f704cdb57e6742e23b03f0afb14025dae6f7a8940627be4e86af69c777a985be2ccb536de7bb06c31a1c5e3034a51890498b6f7b51d286714ddd354a4ad210cf1c1529488b24aa9c294380862e76408e4efdeae97480e09e30dd3a061eaf245b31b0dad19d263e07d6418d4554eeefbef7dc831137514d6ff70bfde0b7a647a1dc0f56c5f518e5e3fb255eab4e3fa92cbd9ed8f6747619044a4803fcfe50aa5fd8c8b8138ea798962ac3f2901c0d8875a31a164591b50987587b23d9e2feb9034614b1c405514042a432063779f27b51b40ce0034ce65981780bdf0b203283490d526e52eaeb1701574db36023f852b5da94c9f1a6780ba4bd67cf09a221e474c9842163aa1c66535533296eda22945c0bb75d8570ed83dbec7e22ecc0388f8eb0d00d0229df823e00c86f692be329c431ddb7d68d597bc869472734e294dd4e230029ba0b052ed62a323c37b4a4dcdf9051acf321e73af8e73beae4138871a0ff024c3408b1352afc5cd55d57439d1426c480603f542b76bad6e183111ba9e4626af33aa8da6cd239760814f78f9f4124cb34c7e672b3909519abd2c287e06344eb8f4535ccf192f2732d8ab2cd44e2cb5c5a17b4a766eb770bd653acbb849333e266edbea7c4d235893b9f4c36d692bc557e98c16b83383933c2ecf9daf51b91cb02ee79deaddea1b5ed7357760f825bf520b1f6cdc133ee208b36c4ba39c8ccc9339307ba74321834f78dfc2f799911613e642eef71b8eae20450f1667ec98d22a0b68fd56542d40b487dbd749366f32167c75f86ea0cac8ec8429a9d6cf82dc1e4aef99f297f76816135554ed00edca068f3385b47bd5ebd504d2e504afe9bb345d2faddea8d529fba8cf63b5ed823af85316bcc779f040d26a4a528ed8f8baaee6e2324cdee74b7349480aac211e2023f673d4b9dda789f1b7cf5fd7c24d67dc35a8d62b38b61da9fb8e580446219b1ab02d8deb90bb1979b6f9f6006d211a6c07c515656e981604fe0ee9526cd44b961e9239eaee1a3a00391a612dd39afc2ebf17313abf49664bef6b738b2f17a79ee2b04388aca2e6511bc6c8bceae6215d4af888199a647464498bfa71152c435df7f286f278c2d195ff8fa7424ff3704a3c6ecdc02f81227d9cf2798faaa509759c2b4971be2b7f0effeff2d778c7398bca4123318e08070ea18d2b328a6ee294405801cf57a22a4cc346048509b4e02f0fd09ea00576b4b3f175516a87188dbfee8bbf9c9eef1f1afac8a0c9d04b01138381e39d1969d28edb666d0ef056f83ab446b4116896718c301e7f3f0b23dbd0b8020aad014d53a5ca63966cc24ed58065f2d9aeaffb0606a1d982c989586a03ee6b49f10ed64f85b5c79501a5bf277ce3989bd6a720d90213a80197af38f787129c4c952ba599c471c047d508fa55fbeb112f89b486b7768b5ead2cb47c4a7120d06b23f1401a73aaa3ecbdae65574147579ac83ce1b65bf8280a192121db3ee5f7235ed2d255b55a1e190440c907fab12d0ce95a43aafb3513484f64664c650144900b54e2240119e6c143320152ca3a31f6a735f502efcb8a3af6441952eb30b4c195b1f399fa5aeff1430df0f8a98d1aa1cf9f088c0a5f80207826fb8deff77b7568405260a7cbb374144c62b8f6e3b19959db48fc64f2509a7ed1310ec60f47fe37c0713d2b4d9cebf61402192a67a221c2039c4a578ce7a5fd3cf0f11a1b75fc04ef26e8fbbb92da69e26e1cf484b360a87210445da71e1304edc632c1c82464128bc119deba3cf853f1dc9e75c980d4d6eb7b795d64db6d19a1d40bf3f29d28c125d5b9944b556da9197315df26e06e6a5082805f464c72d1a7a4a709be28f1ef897a7e72e4e729b968c351ab919ab6b20aa660a6ac4e5e3231fb78a81b0e847fb6d862f50e545b07c26cbe929e7ca85317a389dbd5ffcc5a89d987a3792c5a91c36a6dc6fb0d276ebf623fc3e5c19731cfc85bc6d138759a508f952b6592abd3193419c6bd5023d1d7ad265bcd55e86f226cde8afa0015b647f0c49fb48404d2bc230e33b1559cbc9f2619e08dae3a3c1c1f1a63cb44e3991cdb038e8d88bfbabfa72670823f4d8e0e8e402959de6c412a792fe2b4a47961a0b791eb44b53b9eedb21a54c19899014d57d51d67b9877b889bbffe1009bc7e465b79eebec8d4ffd1f465b0cbf341434c30c30cd66575ded1464390b2dea594c7f527c01210ed9360ff20c188f87f955f5fba61e8f95acc281ae41a9c08a897807b7246fa6fa46266e5b7f61b3fcc7d2d19ca1bcc627aedefb40302f57b9ca7d80e12365aa15daa8df6b406066207b0fa6a56f1e6081408b6f6625aef80f4350534fab0b93c2ac64f5631e866c060518082845098cba54149bdcbe1166fc4e86a0a11453a135298f68baabc39755cb09e1c6bce8771c6f767d56a36c0098fbea76df5554ccba8f033556c01c8719244e6a0a4eb7ae542b5d7cc3fc549db38ae059908f41788b73a9909ff64c14c0dea4a76fdd767e5fb671db5cf550da21f592415b83e6ea3c3c2bf9a82d7c2124b9fe27382d3964af52f95e544153c14a64fa7e7116b99f6ba5fcd1de0903b94bea27170e65b8c015d3c333c09447d0dbb6ad2dd0d479dde93fb14c41703fb18b9942ea47937f5777246a760928afb5f7ff841d4e6b642f62eca295290d794617631131f625a35a65c2dcf3b3394d54a1040c5e7f2bf0a31065e87e00d0d55c9ed81156ed7009054a3f42fdce89e3df3dc1c4d5b28d20f3efb69b231a6c5e5c81fe6657ac2c4305f6c12569c0ddfe24f2e3398fb1a965ee79bd703d1fd812d94dcc93c258f5f33a0280f51b647dd34d4f4fe1a572be0cdce4ae9b260acf0e79abb0057d07ccca88a74bd1b1abb829b63b99cefca9ae40a0999107c2c250beca9c0a6f2331950abd6404a923035e5aa0448e3529f37f9ad578c3dcc3d11e22fdfbaff1098097a2d2081fab81c0445bdd8daabc3a5ddb413767715714794024ac676619271dffd60c7e27031dcec4dbb964a29f4b47909dfe8320ee46bc82fc32686ea673405d79af003ae8ba8f3a71c213dca102d11294165e28c85f89f3a43672f627891024b1554288fbaabc88d330f5f2d0709df45b46773484613f665e5a8fa46689cc2e542959d7f6da89922914ea3317f54973dcb566c34e5d45f14450e20f9f98d237cf7c4002ab4108c365864c229e0fc6eb9d6df6aa48ff4170f4b7ef458c74545d9e891e754e3b0d87b2802bf5004fac5f4ab4a9903dd1c8033d7d914642f272a7555579b31bb153cfee201f174fc1d7f5bd6b3471aaadff8be7a8be86d86c087a39ff02d13f26c6903a724ca6de92b478a7cf8d1c141dd4318ad5dd6fe46ea12567f8abf818040b44930a40f6eec435d5b83773b5ad97d5e06cba2cddc32002578de837e6c4bf7d67800f1f0c1b26ed9e67bf61334fe5aec67d7ee3a0b7451ea33441a86dffb2b8fbcf734e239cf67d8a3df547e3bb1586d755c51efdcdd1980398c16df350c2b4056380182b5ce285f3b8f372e338cb3f4a4da8472e9d62b7520d6d78f18c2a4d0d0afa0845d83a2356bd8584a873d1bf1aa00da5ddcd2435d1fdb5eb75a00fa7a27176b048d39a72d693389279b83ac686a20ffead75f087a36edf729fb0a695d41eb23f3fd85db9ba7b7de7f1787df5910566b9b141a6f95019d7ef27891595b87bf9f3e98c9575ebca3c4781224ce3822b03b2f370176f46140a85d65a615fe8f3f69d38d46637779e7cf3eb4421d3658c570def9e02d5530bf6c808ca0670002178a4d2c0f8fa111bfd33c808bade892aedbb155eeff22c087948314d15042207fcc493575fb58e3dec8e03f6f8dd01174df14aa2f2d2eaca215b54dbe74573611c7c09222cea693b13695c0aeb54230661cc67fba50488b202b38dead45c9cfe2370f7908e6a40731f4de71fe90b0bf4c29db99fdbc06635c9ff89be6f0a492d6470d22e2ed254ede8ab8aa30fbb19d9acb57f46d95ac9e91b7309073558ad381b9c47a228f10d6cd881829b865f6f6e7a6770d2237b581e81f263cebc99fdf4fd0bb380dd15740ccfefdefd53667402effc32cc2557a102504901b8cbb0f05bb6e9a9f07114b87631800357b2d5535db1a7e4ac3a78925f6ebbdf8edd114639e938701c36fdaa9ef88226c025037db5af1b95f8e8ab00e0dcef112403813ee794b5837456ae4014eaa5d525c93123b45d61ca28556623e953483b7d2de01d1bdb130fc282d015e459b06fde8da9bc89fe9afc66373718037361175340b1aec1879d78097559e7071814a790677585126dec1817def05ed144a5f3df851fbdebe6a1d43c826218676bd7056a9efbfc0a1471fd3107c8599b199030fe5d7d9bcabb6c6ebe9efc2e673c3665a5c1106554083001709a02d364fa85c49642249dbc6a8145b380ae540cd13a7561f4fa4549774a6d438ec2769636ddb95f7b8e9d69a8a78a25ca74d7a9bc783bc78e18e921db34fca281195336ce10acea1a5377ef3fef26f7646fa922e5068e804d82e068a7a760a4d4d85eb0bae34e031f668d1ec23031a47ae2e0b9bfcf987e890e7d7f5f18bde64981ef2e589ce75dce9f44c62fb97cd5b1d4387327515a103290563249f82ccd7a4c42837165ce95ad178511f1be08c39b5f8d036fef28498309c85d2daa3a89a889f89db050f27ba5503df3abf68d667bba6351901129b7b2cf70a2d81c66f5b36e9497756c54b5348ddda2cb1ef47dd0225e859b56d8690c4ab3294e3ca63f460dff4856dd8aa9c6e3da28cba0dd5d5009caaac75686483a0c377adef7e26374530574c8f13ec189d42efb94771a94365514e0c68cd5b8af88685c946f787667ded67bb8b4adf45e33d5a98962325a17234e1740363e95737df4cea9f7b7bed3ec86ad0e9a29aabc31519bff0cdfd79d1faf6690348c73c28a4f0bf70464a148ee8c18657e98e49e3527d94d3a9035e08111e935395f3b4318309a8dc1385ba30347f76f59f2c1def360ecb336e87e33b4722e86d3ab0cc8ca1278f1fc5f8b2e4474a7dab0c6498bf509cab0c53d55a9ed733c92473676d551b449a267fa8d38c2b9329b0fb68b1d49b3cf9a861a72a159dc1e5a701dfc694199a0e68d9ea62a191e67fe83f60da2a1f3cf8a50bdf918ee1608b2514feebf01894f0bd2d3fa6ac68f7fee6cd18b318fe32eec569a9da1bcaf017b68108f039c0ecf88ba975c93ad5b5c36ad240453cda00e4400d68e2a5dda2c113a78893750f8b1c044d8e4c6efb84bc3b1e11721ddca8b0139cc40050dec92111ef2b7c16dda294591fd5d30ad3c6227968eb84c42070a69b48cfbcf3fe085d9bfbd3a5add8a9bdc2a5e7ef35e6563de18c32657c37f90ecfd573e30abd490615f6ede5628a543b35dc7f21a37133a17ffb0409dfe6136837524f286498af8556b6cd28c8e08eb6c90fa384d5b090104fe94200e7f5d9fd1511e6c086be8cb8ea873af42e958ab0855294a52de6f9bf23d470ba73c2988358b2440e2af788449bd12ceecae7cc3c8f38015b41353ddaf11b1ae0e1efd62062348e358b1e936c6a02dedad681d7c908699ca03382344f78a50b0e9a116049d92511e07338c532a227b28d64f2d1c6a5705f48d6f343ff12ab78bc24f365ef44d3950a9f0d7f6ca73093fda965ded2619ca6187cc3f08020c09c19ef1224ff52daf801e80e6c9406ab5297d16a5504bbde0e3fc64de0b6b8882539be0237cbf469542894af572e7e8b40126b5c0e2b81eb3d40f8014e2808fee972ae0863e81268366ba52e795aac70c379ce3adb0c874a4734989c2d677913053cd1c1ca0b0b9427d4f5ac26442581a17a4f72f7cc786880f0fc833020928bd2861e4bb67b719532a2ffa31c041930ea335024e1006e4270181d091f171681e595e97ba35645b66464d6e01e897df6bb647fcd4a5eff8be754e426ddf901972d09e2379b0b20ae3d1e027a4bb6759887d69cad157d8b57e0948b13b7c1fdfe9848812d7c0bc6164b775b4b18a5677113ca4a418a875a00b32bb82d3464ec94a25b5d5badee670395e842b6175b4ef86635fe5c0133395fd78e021f274429e6e1771868b6d995ee20c791f145d20c9baf9401fa3b7d4316286e62cb76b38a1c2c6abbdb728199d991b5502ca648994554f449fe2041adf3afb632326c84c91c94233832fa05075c6f65309ab01b0e85306812d5f8552b3fa1b3aaea8f72d18982d5594e9c49c8d88f13dde809b885983685cf441b016f40a4b32d0896038e759fa3e6b5c85ee2333e852d837bd2150090e1ff374ce96d14753e02d791abf4fc87bb781087ad38accb2f60962d5ef59ddd3284626ef3112818293220c378339b9c20b43eca137198f67892bb886a0c04a223ddc4bec46c9fe9360873a9a9bf8904c49020e2ff2246a6d154f9388d77d6f83a1e51a7f71e0f56a8ee8df624faac7811f13f7626fd07f5ebd53711777e8c18908678f64a52e149def643ce3a46e6c8402d5347b096ca6ba134374f555cb870683dfe791d914fbccf2997429a70aa04e6919d6ade2ebe869c61de2fa84ef5d90f1dd2679351cbfd473ce1018a43d192141cff335527b050f4820a5368686b259b0b7945df2dd68c097057c0ee559a041f04623703687ef296133cb9e174b4a57774f3bb8629173983dc28721a47f940982b30307beb04d0ad30f075173a1bcb6a8006bacd1f850fccd0ae7e33f2f6644d6c6b52f7afaf99176972e63277af4a48750378c2c0ae58c73acb3beefc51bdeed675ef6cb2982c78009bc43e73cb36411fcf66ca89c092706d4e7d97adecde1ae8ba79afec6ab38d7024daaf88a0ab57256c2cbd5980aee32d2e394b37d2ac8b9293dfca05eea2c9eae24181e3be38753b1fc41d4a42826ab47ec8eb968f3152a205217f0a6eaa76a26a7e8208b780873b5c649980a17df6305aa3f44017f4a5c9a199164f4093cc2c4e0f15c25daf14d27871275a2816e30a4a91f788a351e13384d54b5f8dbacd217feb4ef426b35c9906b655ce082ba4136d86008c7151196c3ab3de11fa5618b35d21e6de564f11aaee19986be2a54547c0c37a7773049a3be73d811ffe3a7826d53d83bdd50b76b491b9a7424ff6197b77eb0065f2bc14e6feb2a6931c2c550b81a27fb138f22ea6591f77d95785a9688491eec16c1c6285fdc920cafa6dc4acfe65d945cd4be4a387e0f5d66838eaf4aed0c18303ec9457013b2fe22a69bc78a1addd9dca83eee6f623f6b75ff83e102cfcc04cd047801c5e16a9a040bc257003aa3d5fee40128c17e297f654320f947b68abd250a3197b89cecc041d5719cdd726d29ba3bec5e765b099fa796a26a8150f84f2958bfe90f1cd00c173652a5a70f6822f0ae8b020b4318f933b46e5f79ab849abf8c69145b3e449c4b148200da036f6287158f8e78c601d4ae4fa7c285bc24790458509f39654a44668b5ae65b65de40ee9d8c16eb376869da8c98567bdbab9233011d71d4f4023f9a69012b65eff244ad451814082d79dca282f21c3545b448e2e2ffd769d509a719b1cbdfb77eba5bbd602a71cf0392bec5bfd39bb999178c93e7fe4339f5e251341970ce069694ab6716d6086457f4d312c2a3c9ee5cf797a712948c75c576db298b09387cdc42278fe24f18b68e8a0a8882bda95c7555d527fa9bdb25bb9ef4dda7e981979a89426615445a1f4fbcd416e5e9e3b5b13c69f547949706cfc146ae403bba033e606abd527dc67d04535ab54aaae0bc40792f6f372ae78cfe807e81db741e9cdbb1224910db2f3f5c6e317a005334a336e123ba1d19a828cb734fc7339b0d8fa6adeb781b983a1dcc8891e5ccf562300b2d7c75dc58f3c1b9f48289b75310737aa750ba14e164fe098c3227671c47d41c60f4c9709c8838d2fd63de0ac7e02c5588c24decba1b8e8ff54924fe52a54827c10f726520bb5c23151a0583539cb8d9ce1f256d3916a31d0b583db082b68cd362508f5ec9b9723d49c534ab0f8943cc1f0c9eb1057178371fb757141cb3d4263ca7de90924cd2b63d6dafc11c19879866794ca8344413a3e51e7bb011a97e0dd19e24444c619ea64715fa39c91501cb850474976dadebecd78d6783a2263dd76a027858aa01e12b9a873338831c789897074194608815e2a94ae47cf4836fbae00368bfa28c91e582a9631a9bd73655be834c0b8d4fb218ceef2c007fd50e4df021d9fc1b4d2c7ab66a45edd59c8bfb8444783c58df6a650ab3cd6845d1ad0c2651daabebc78b13ada17df3cf5b65a9cfdebaba73150d641c5b7480e130c9d85529a2f9245ba5dd0e6769242f065a215c6d05ed93862ef46d95b70a5e5a0d74a3195a27b708a48a30c2aea9a5dbfd4ad22c079176c4e2b8d99d9a39e15945091be55b0a5c869dcd9fb88262c44336ac6459353539ee28977f6a9f3627765ea3d9e90b8ed6ecc6e2bf1228619d1f1ef700f027bdff84b13da9cd8d9fcce94ab1c5f4882e81a09f037667826d36bd247c10350ee1eabe0299be3fb203698b9589d7a3007e2c4d02f4e540b980cbd64bb2c822b8ac5ed2ce5d4a433b67796e27e1f19895a24d0f6d783e6ccf4ae147ccb30b2174fd98f384810e9588c41ac717574aff6ad47c241bd995c6c2ab2762f4bcd8a8ca0998fec2c1289ab386949a5deb612597e143bdbb64d618413d2c0cc6b04cb5f3d75007531a47be540fb306e2808d2d75ac3ccaaaeabad43ec7dc13b6963224bcc2354acd51ecb38d32f229c15e0e170caa7fde9141dbc4c4cbd95ef117246873fb0c37cc6cc4c8acb877f67eb3baa10765628140c1c8011af998e2b7013a2e64051790dd3609c051dedd79940d36ce0dfa85895cc83abe07ba578eb0c64cd94c3785d700bff6e4d8d5cd6301e1b9fc119a355b44364bbc54a6dd9094fdc4f4463e408590da4f47f5416ad57c086eeca40c15241ef2c27dbe0e0fa433e0fb008f98febee89ef253cfbb89c3773d511d272a1f6e98637681a6734f489ecd2b3ba819ab8cfbe67c3bb14fc17562a0b156315ff4a351f7b11f620cb41936c6f0426a6a1bc347d100d946fe3eec8d3635547d307960359fb6d79b4506a97ff058bfa085161f5542c90abb3d7436916672db16b0c4a35f5146207d3a9682d4188565073bab4aed612eaf88759004527d18bca30a5f473f85400d6840dd4c7f29d90297aed6c6c6187ab7a981cbfdae2ba87c1ffacf4bc2b94e5ce05df0285fb7bc6c4ad77af33b96dc02eb3380a55104bcb57d547dd94feda0bae3cbc2beea77eb77bc01a5aff5d070f38fcf16d95c01e15d447cd90e3528ba555979389f4ec45559424c244c26fb50ef1c8dbf3084fcfe8755ede1f5f2f14c09718a08e66d1c9112702b70ca0e13bb3f141bfdcc97375156ceb3ed3a8dd627bcc2d36f45bfa1d8cb46e6dea10d584500ad1aff5ab7d6ee2317f0cb7e92e931bebe61b3e55b999d3da7192c8563cc2210109ccc592e60e326ff5a325e183d773988f172c218efa78b04334fe22fb6773773ad3eea7242d70c04bb7b884e6d4508a377cb6f2eafc633bef8a116e421bef27ec7cab3df4c4854b470b67f9d165882f6984971c68d10f2f9005791915e3a96c75b1da88831526471eb02dc7e591513872fac8cc05fb4bc5035405e047e7fbbc64f84aff90c07a5b432422c5e5adaaaf0cb76c2259f59392459e5d290d8032bae7b2988c5d6571a615d14cedac3575d1c3054d609ea104efc7eea57d889c5b3a12b1d628af18c43991b2757b441febee3d248910f83d4afde8cc6888eeffea261a0300279a04e41072ed46984067bd3545db5275fd098902cbec923752debcd338fa0757a8c3d8483ea0f0f2a46449f112f296da1dcecce342574845aab9a5fe5a08fa0c7411b868cbaa7ef73ba35aed6dc04c07dd42a4953241ca2e393d7dc13f0503125ae824f109bd00628203d218caaecd62b8a383628f2e4cc4f551a10888f82c2fda930cc9ea005a800b8161565120bdae5f5d7a52c1b05a331238ecf5103f8354369dc2f3a6c36f297c91974794523726aaf878aabff5cf84d7625cf7fc47492570aa0eda0bb450a841a1585f6a573b74976f3eef0525daa6e87bef0c2be36ee3c0cf1031bd9d7b617793bc97a47682a6babf438539a3d9afcd757c408d25030f3d4289f8a297137543820fb71781d2016d6229c94b48247a1a8542a1d54d5b2392a9d54be9fe4709aaac3404e35b24cc920f41dfd50d5c40581d149af8ed00fe2ba4878c94612c992abafe24bb16a5559d76dcd7770280102ad084daa3c13a38093034f75bcf54b9416241a05d3a29421ed6410f0ed2f9f34bdc695ae0fcd8a8eab4b1fb4b104f48c4c53c87bb590798d7a4e2826f226d50802ef5b9c2af73000589d625d6cdd2f0eb3ae286726d72de436a050347fe60ea51410e88ca88ea7ead85b99604645ffa93543d08329e86a0b00c11808e74b4c1a4d08dc4b149f6111ca49830a2c77413ebd258c5c7437a9e95989db2552ef75714fba3b5eef1c131db391beee21c20e25beeff082f23c132be95376263c2a22e17ad127e92d90c1cb7b5e0f86ba773782ab4bad764247e66ff99da181f46d848b76967c56b88e4fa1ed03d297a02a420f8091f18a351e2b56f8378d611eea80a1b0d3c669ec060d7f3ab75913113d83d838737ef15375f063f705a26e32831eadd4c94094195a161077d73d1460bf275754b92cb3572e71922c508bbcfa18d1125834c9ba05478c271ac6d76a719e4d355a0f00c6af6bd01d73a3e943181d568ef25d064d67a4ee04814f73283e2283d254e016a1fd725548c841519e7e791d8d1c4527816deb23f26ba3f35c54bc47504d4309a7985f51f3ce22760cf3c678cd97d0f4c33792f7d57cddee6956266887d8f7887f0ca5184b4b84a72895d30a97e41325f159361925be1d820d79d04fc8897254019561ba46aa0afd0952793136cda322b45d97e6121b31608d07a0a9b179f9ce9da8805f677771d7066dc46321dafab9853f618a02e4c9dc38dcfde9b9c6d0cf576bad7bf6e7cb96b7006abe54dded5e17efc639004d48f6ceec349c4110777a2f38153afd4d55a854748e38fd6730fca0d2ec9a79ee12a033bb208d25fef131951efacf52a6d14d0d0adc3a8250e97e7242239e83437fcf45e32b2dd1b72af9e560159f6a0e7ec07e55e992593357905e09f153bb2d4a0d96929ec3c26a5ad22bf4c951fe49919105beeffcd6ef842f10eaed893670a08d33093d4d4cc686ef5c04275b4b3b4c6a3dffd1bd55270e1d21196d380833b710c41e36201d820ec61c71ba845e709a8da5a87207b0c3f34ad3bdf70a9483f40da1bb61afc9d64557924b3374d39542bd0a9e5a21f56d80c2a375978d4bcfa7ebc25dcf06180023403f5ad45281fca6640997af8fb4153db289d0f0c8766d5245d995a4db50c1fa61e398b600c91d162bb59f7ab2016ef59598d32d57591480820d8a4b4936dd4c3661b5db7d9c0fab4f35953e97886eccaae878b83b5c602f409376f1958a9fa01f47921073e213be70efaedef6a9d260211d29c507e452ca4e58255598425271491ac69f048c0ae5a0acf2d499999701c09b49ad1522cdae46dc79e59898c92ae9bf1cd4588efa83ebfebab89ce782f2e68dab19e57e1a47f575e82fc835d835f269134b7cf48dedaa0f39154fb29ac0280f19fde13265b22413fc9ea491d8148f3c5d178e69911352e9ef8fa6fba8a6e881ce5e20423dfd7fcdd288e9772790f17960b35dee79c78b41375f8042be01b1defcf4d65618ea95859c8de15ea6f24b62b8c3e4e8da8ad1c2bb102b8dadd533f7488fa2e5cd493c131f4636d93956051eb3a9465fefefdbd6fa9ff2878d6127124951dc9d18e4d580354297f74b007bf8d3e53ffb168a8efdc9dca83739c470f90cbd8c6719f03c354d57d2df47cee0e9504a2f66516e41cecf216405d0b04e90938dc517d51c54e6e63e373820b212ef94fd22a9c6438adb075bee953633764b51616c93b42980ac17856047ca3e69f6bd4c937f3fe4e6d3425c9ef490845371af34c04f010f8c950ac7bbd1be44e3381e4eb5f6ab8ceb63a2879516ccefe0dc8bac23ff6db6b9a37d416bcf7a7e36afbe538f469b9dd69021c49ba017c6c519b430f6bf8d43013c40af5a0eff4c99f2d72d398dc6ebab7c08c413276463af146fd6855257ecc0a4b977a1b551845741583df2f785a039c7789bc1d4ec421647f51a64b2a9615f5c632d8c68fb47848f6456f7f057aaa809e4a65d82a823e139f26da7eec2c7a2bd4a5ce77888f75a84d172421c5fbd7a3c95c12dced93c9876088ce343c73ebe9d90a865310b2b2105aa349e48e1e3173225cc1eb081821a834aa9e24940fb574eec3c3bc298bf9b76ad38b7fdc99e4db20483185ce7f90650c16b697e98ee09b4268948c3c8f3682ece3815fb2396612df7a48501171e4c96ebb58f95a0ff1ef09c506e903994d1a5b2fe25cfa4d9996f93694a1c60548ffc374178bf0cd38e72c108e5fd0c38e3df3526c4a820b15c38c647a398d4705e818a087182f4237a279887b103668de51ce5afe3a811fd491a4f0ca600cb4a5d93bd82c6df55aca9d93d029108efb57c6584634e451727f09341405f476061e1741cadd3388e9dd1d15c5bf66556b30ab089029ac072a2fee284dfc58af28fad04e8e518d1e3a89b30b8c1f297cae32163a04ac2568afc17ae545fff52a5d2bfc9d69663d9fe97b97fa69e234d828e1ac026c81081687da543c004ae6adf1a632c8faf50a76975827c8fd4ff3337801d51ae783c9f3a584ed62c8b4369cb33f71a2ef0b31b1545dc2c724d1ef4a5b735ce7e3deb66d36bf4d1cf1a926dd9b620f5c503ae41d54c74e55fd94f3b0e223b0d121effb52893581e368f15543c10537cd86a7bdfe4ec8706fd5ca627b667a878985a59c7d485c8e6bf0dafe96b93e6b4df3546095b08c0da0550c3a068c8ad39734efd54954878481feccc38a09f2c17c98f84c5bcfde031c48b0764ef0713bab922bde5cc2d691bdde638145cd4332c7418ae796a2f51079d697ea09e6aba62b550da5f016600e4d4a70670e1552eb6360f52252e1cb8c285319e00c9c1d68365f443fd5d20afddb59c5ceeb621acd0574dd868b407386785d837e94a882624fcee5ce92f3b4ef9831d114327731b09941077f40b3304543c0f3086fd0ec60c62d9732368840f9c15e355b6c337414c9e95274329a5550f5aa0dbf643b96ac7afc656bc1e8a26e697cdeb1bdc939ba99982a374658300f3261f198d8349196db3d6ac280dfb8a4a09fb98090a77e0599e21b5b0fbf92b78f9e5819ba43da9137298ff2c1197764bbf2ddbf4a8400a2a396b64bd8cb4ee4dc1644cc0953ba760a03c9edbadaf8041df8210255674a468ebe0ca589be6d15c7fbfb9f3c68d68482998c4378738792de6789014757e4ab7a937987611e47c57c9bc28e2acaf6148acf6af54e96765b723466ff0ae888aae5bd291b8b9490b7f4904284340ea117cfabc8b3242e73fa73b7fe5636c5e9e165e0c9758c5b5cfcf3cad21f0810016c49cdb5f2ea3935e56a30d96c15d61ac930354f441471085e1f31c7a76edeb33d74b116b9543ce9fd229762ceaf58d82080d150f47b963306455353cc20ca9717d76fd92cffc5cc1ae6c6f0d05ea8ffd9e3773b437764535495bd3ac47e6138965bf02d49fcbda82c55fc8133db9e68d59acd4941b3ece5e56939d5fc387d44afd7ef9da2c53b87587ca9e9338201a8d4d8d3cb6fbb622df169f22a741825bc2753cb232df5bcc9cc5c9e51df1a2fe542a6f75e774e58b87dcb3477a9f6bee2ca43a48afa54b743d4d4b3cbee4060a4b7dda0b7ec4b91fbbc91a0729205cc415c1e84301dcb34484139413ad57d8b75137cb18e91f80f9ddaab07e7a047132291f6e8d9ae2c549df21bb25b082e7fd515432dce2ee6f0243bc694e0e494ce890d3262f4f72d6d72fee2d3ca317c5d0ce2975274bef1f4ada57ca461bd3913cebf11fe85bd9e1eb354c2846e37a4ab8b4cdec97f4600aef21ec6b67e55b6b892f6e9c8ebc9a041cd7af41bf956d1274d73a62a1ee1613971b8c7b2d855c069911ef9342fc5b0018230adf6506aafaafcf549a6816b3fb7748de3b32da141222b6db2f70e9a8bdb93725bd419520a7c82ab1c86df85fedefed2e8219c3894754cab74fa2d7d7c4a566056cfaee18ff9f1e1814074d14f3ad24f037d0f4ffdb74507104255944c37b3e80ce7d8978ad8133031bab99ca7e6a7400db1a0b0a0d8bb39b17789a290d9759ec9cf69ed4a11796fc6d0bc11ee22ffea6fd73acb99e1cf4b38091c9a0175f1487e21221c38e6e03a610ff8b72d7327752c33adbe453faff71f0ef32abfc278def7e9a5e136b0a815afb3c7511f93a76ce6731ceb9751c87db487dfebafaa28fe0a4555534f30a53d29ce641cb499bd5d0b84bea0c508fdf442041b6e0f3de4d255c43ea132560e2ec53e23024abba2b7795cdb7e5b76fcaac41e3009fedd8089f0220822fc40e85c8f505cb88662c9c8a76b9ecd07ef72be82bfe3969929c0a14c63bb463d7845a9c4a119eeaa7588326e38ee666ff9908e39041d2fcb1f4936a2aa111462afead5c8e786ccafeb4beacfa582d47963059d4d764a118bbab9fe4878b3a79ccf8900ef4fe9bfbde8c93c8ed0cda82253788a29ae99390475c9deb882dbc788fb99fd31e21ed5b215a769f8238fa109118aade28ae5e5f8ed185fdacc770cf8ce02123a64fc55183ad343591004b71428bc2ac04502223eff7ea56c80e5c889c0df95999f9952222a743778a6fe512a7fda8a7645e28656c5de50783e23defdf940fc7f7662a1a05ff3459ec13b66db0125e4fb25c24282c42013cd95355633943399e3463e60a919d94eacfeed9fe522ee4d80f95a27bf7388d9f99fb0d14d032b8c7bab73fe615c4b0545bb23a810712ed46cbba8e3ebd57ecf6e7a091fc90afd7566576fc0b40c50e3d4f5004cd4b89ee8aee5cfccd0ff8cd2eba2f7858a72b4f8e05140076a54d8e1f7bd8cdc12026700eb3289b18a4076d665fff0f1909445fbde052b1153e3c7dd146a78f808b0da46c07fc8072d6e838b7f468f897edd4daec2dfd428fe60a1e8528e4c00314d49c540ec8339023e389c7eead08e14d1e8e47996f69fedec66253315036d54a6ab2849f431d43ac234388942ebd726af8b565c6f346974999de8781649c3a3d19e88fc36dd2ecb94d84d781f0a44147187927c8ea98c5afdf2fa9cec0a6b2028f65a63ae0d821329bcc242675892029649596a6c76fe37ed4647ee1e94e0633fb54eaf5f1d39f288d319d45e04a6c1d58b35bdfd9fbbf84c71c201958bc826c3bb8f29da9438e4a2c8bd8776eaaff727a11b0e2e738f677e6677ae6d5af29cf1707fe0b803ffc70d9b77aa73b7d003ae07958949982826d95a7824f2e8cc7818fa8fecef2d6b014ae59be9559010dcec1b322ceb25b1d6457f1ca6d2b56e72b35991ba8e601afd46caf6855364fad471fe392dd1df2a0bb46b60aede4458e7a9bd07711da4a41f2016b38cd5221b2067588ea01c62926b71db1aa925ec3819fd13713b3e79cfcd493a77b3a496c572c801277ee413895ffce5c60b176e89bcfef4260ec98dfec8423611bab238196221334224d4e1b1d21ae756bb424e25bc4b37fb94f884a0930bd0f158502b41013fa6f923c1874640b2847169807cb703a2dab3a23d49a21ab38480dfd12c1606def8cc6ca57914d920bc8af6e44d976737a20a1e26094b0eb898460a1d5696e64a0e3fa7c3ab2d6ee61c754ddb4f97fb494b2bfbceb786389a175d9d0b404956fc1b8d3cb1dccf63cd7ab839e65324ac52c43c212ed5eb144dd80fe3debf80ac932153ca4195d56fbb287a4ff6466377597a8f5fb4a92907e084bba70ba60fdf134ce24e65a156b9060836561e1543314cab408c2db6833bdec72fd44f14b402aadaf53e74d61ccc287e009ba97edb5f8666fc365b834b92b72ddd96ac25c49fc79fabef0981e8e3eb51790149254f9f8d9d401185f3eeb17503582e5eab867b1d7a885bce6050e1493d2e10c362f4cf484ac57c0a5f070724d808a8d2889d1d9d42a71fd8093e738b1c41654a314224bfc4723797ca0615311ecc08c00812cc7d68c11d7ba78b102dea43131623b2563533dfd11809abd748334f8e3d528ac112e3af1632be0beae0ec9a4fd61be1524796e638a5c6023b2bc4527e64fe4bd13bbcd112eb80e5eddd7265aa64713b47da4ef359bff3f099087fb53bc10ef7f6da2a2dfb76f2bf51276baf02e0c8c4dded09e1c309baedeb57020d9e0bbc9ed8111170ef43338ed3666965f29ebfdc2bd4a7e34e67711bc69670ebaa34cd1c1f612b35ace348592158e1d3542a1e70a114c24749097deb21cee92e0a7bcfa883873a509a03a29f1dff42937b6fab041daa8d10eb5273f63e0daf85365faec4af5b4480abcc0483ba80b223fd7b1dd53978b01be0fc49d37eaa759b2a82ff375a115a216e6df3576e7853ecb8a9d4d2fce4184410d89ca891454987710588173f3a10ccdd708b302fbc182e4c92fe4318718779652f69e005ed3a7e791274567665a82b7bb8ee213a1c129a72244313dd148ab5d34a14ba8690fffc3f140fd1fb9673570b301ad4f7fb289f1373ef56f3cf44daa3db7b9a2fa775c4e4dbc902e6f5f6b975459a8a29d06b07b3c789a075e31e3f9ae50aad07d233b7d94fd206d5098cc1a27efc9c8e71c38e07c01fe544f28e666f7927d7f807f9bb00adb0ffde68e996227496d2bac791eedd5ac21012c3fa03f40a3cbfa339101a8c71334e8015a785546b4797c228f92e9376fa1179756090be46839dcefc5caf43616b61e342fccc7e8aeb0e5df15095c280e066e3516c3adf01f3317ac533da696164f8055f7c8d765236fba61f51042431e4f082f4981d1a9bb76098929f3767c75e4fc01f3b4eb8b726b5988bcac99b4514e0cb24a71e90319984c487082554f76b99d156f0a841b4e3a5317aa3292be16aeae6f82722e2a01e99fce9a85bccb45b17536896bd74863a4f93645f5b83586bd451bf131b6fdfb6e05a80665f07f505b0c4a049a3a3bd51633f38536fc04a25b57f0cc7a588ef2d017812c84e34fe9c3d4fd2ce5aa9187b8ccbc8d276da9e39b082a2e4e6ea3a166b2ad60b433f23f43a63dcebf6ddb38ee8ce6eff63fb41afece8ccb939638dcd33fa2230f6e75a7c4fabf35709c1d6d57f72a8a2fa74c9b53a4d8c67594fb9dd96679029a88b62c40eb78480c9f4f288e0a22ede9cda9bcab475a89b90bcfed46587107564be97c608024a7330edf78333fd15492629ba7e1465eb0a757499033b46dba9c34171c8ff2c2e2392f2dd212b7183145da0275a5a5b50955f9368aeed771b1ec3e9aebe0e115c1b2420e3766da423e04d3539c1af835a05e2213734a6928b187d0a3009d63259192294a348598792d46c11ab265b036d86ab19497311f615d8407b4ca5700bc8f54791eab88204edda2637276c32f159c018e1eecab1a8d793587268adc62ea5bd9f3bb6bad2d35229e4d8e3303e5b4988db14ccfc09e43b908e6a5165f85827bef7bc59f7ff2061fd338346c7e63f88998536d9cde98bd203fddaef5af9f9aefb70bd40419457e2d02b23ddae7e64a97949f040eb23658f5206618c16cf60fd958e6f6f6fbedbc56c32517bd8b2917c0c412477097b9183e8f0288dd66f0fe2cb03a2b4b55e2c45bdf464378dbcb50581621a1a30fd321d41489fb80ba844c79f8b0e8f9aec1ff4d9146d7815ecdeb94fd0731efe2183f03d9ee4009502920b991e995995d26b9b7325dfca062c06028a7c649a3db8a5fba15b47ba2c1e6643960c70fa93237a25414b0717c05732cef100bef8b42b7144cf3c9a43ddf1b478d737c26aa3d704e5a85b7067971c151acdb835f3387c613bfeb0206d74ac8bd92e7b3200ca6c7b5504be622e86726d4d5e76e86f4bd99b7ae1761c00ce7eafd8631e035e6e72ab37a0c7a3e8672683e710f6d89dddd327ebb06e04705129e022b4ba91182fdcf89ce6e0a684956731c008f9b3c62e8d0898b05aae2a5e6200cf86db254b63ffd5a7eeda2c17fa1067f7cefb3acde6485205bf3022d19fee91c645073151107baaf10a7f1ff3d6f637d65837b96e9d98b2c1d099597a56b357b3617ad5bd25751f408a65bec1dba8caedbc81bed762e57bc2b3436e4d3ec3c33ec6c17a3b622aff81f6695e54cd8feafcd421558ca1c1c8188e6aeabe5876e942c713e5d91e467710c98b45beafafba3349b5eb139219b51ad7e85d89b1283b14d722e6fb7aea976db658e55b6caacad6020ea87bf8e0fa7eca8532c4d5b4be0e8a276b039e26c03d9b99bed0f7c5d7755ef3b9d5db37421625cb5b84cee673e7f3d406eef27fa78084a8bcf43f410ae365df3694f36c50173557366a0b1e4292ec8b3e9506f421a2d6a1fbd2ada7c83c4712a960c1a74adde2f257007d1dec4736aaad521fe949162e6f30d18ac422be88456821b0c22305f8229e750b4f0760387b5dcebdaf66945684e291835e3605051e5c0b3ec7cb6d99d7c2d02fa1c6baa0bdb1a491cbe91ab282a0e7ffb7adf1d0e2a9830b84a131fd2a87b4db056124429019ffee61adeecef45cec682cfe89f614e82533cdc3d3c5ac55c5846929dbe65e8f1e624e789bba6190ebe7a96c1203fe3af564387ce5a523b30d2ef7f842f3abf87ac3e6dad8cf93e8806362933c2015e80cf1e53833159d2aada74ad02f8aece4f5462d5ca90d0068ae301080b6a56460c61bcb5bf04bf585238a8d296f9a77b29982090453c9eab765839aa9bbec6199f3eae1a0937641504dffd7884dad2dc69116b64e55fc6ce40972d193633f7f1357ed1f08969a91370c6fb03525a697159333dbe58d19fb5f3be3dbdb724eaca033b7c268f2c134498107f5d4bb63919b4157a7aaca3d2082ceab795fb05dadeef875d4f0d40835e54800f2eff1da74a2d0fc9b3d6ef14af9d8d5dcd629c7ced1332792a1864296dd13fbb96c13794a7e61f7b032f2d88ba8c26a53e524cc16c3e53e9e16ab98de90ef734d728b5697ef92bc340f119394651391304b4755c9172b44f29e3b1565f5d322e288ef7aa78f305cb07be33848fdb9f44a275e0b1d5670021530491ac9ae818285794c4cab453496f391ac0608d2c2884b20639f02507c63390727c5c822a73345e9c0a32cd1005ac33ec64d4c5d8820536dd9c6f20f04a3dd0791c1de0720161474eb5aada103604ba015111288a811fe3f236a5e9f52d262586cc96836422c7281492a054b2116e6489f4004080a51fcf43ec3deb9dd9601eac5b115f77c979eb9d44eacd45208ef298493d2e0afe90d050183276a3c6ab4c205de97677c5cbdc5d4b0cf18e274b10a6acba6d0f5710d79f59e4a7748ee901bd082fbf0457a8be0c1428cb47e504f01045a49687b7073f396e9d22b4cdf86b81ab104d1217f828232009699a99f79d95fd2cfc0230ebd82b20f721b9d6b55c0ea8f293682d4c9362390206aa619617d90c57391ff9d0f4074208340e34906c2a0757c021d7494b4db68c900a62e600e50df47e16e27e4460bb6368f2fa5da83f98f6a42d3d90f1aacedb1443c12449a5a85fbb2f0f47cf51a53c16d7ed56a6dca1ad18d19a12d40400d6b15372412f68cab68249084e84f7764173e36e61b132221e1623b420a22b82261929cff8dd646e8df454171431f241001572421bb5979f29688f9c9783b2cb583f2a03964630f664bad7f65bc3e8fee51e922148b80789a43055cdf491702630cdaf45a8f8481265a06bd0c8c603ea2a4f851c90fe9e26e520088c450f0054ad1785e434748d3a19383d8bcdff6eef3d5543cdb75d1f1a10ce10a12c7c404274e06b1e30dbc2b6346b906ac7dedb2781dcf559bced706f4425295e78dbd6cf83e497cd46f610379fe239fc5d470065697e7b477dfe1c3d09a6e2f40207a6a0714b32e2423883fc4bac215782d115ce525fe71bde28cfd49eb31f1dd7f65d029c5dd7ac94ca8a919d98c7a9a73a588c9c9100d18964de831500980bd340eae0038418f9cab47b12585ebb180f378987dd7ac016c246bde34bce58b843e4ffcac078f9f703e00c0664b224ed40346e32445fd665e4f186ba368a3e7532aa940641bb73faa00edbc5e3263b130de7506773e725e28ec8796b14017fd45e0065b5c7cff2fbc6dfe8765dd3cee8acb07c546eed430d8faa76f76d5522df1e3a6f09db8dd8fc759d1692fb7dbe5be0ffc478651dfb48045d848d07a5829b9f8f778994c5f82c41e3adfc253c815820d4fbaf76ffcb2960c24eab2239d0e33f09836505d01be6f122dbb0f546a08840727d4fb2cf67992eb2a1cdb3038f8cffc15edb20337e769fab2ef6440e3a611a2ba452f72134c9cf93f0b06d1e16db3c9118abde5d52bb051f1b2a5e6b80811bce549778afcef48d5ad021c4fa124c3a39849b87a53b8b24307b188b323761d102702afdd382f4b8247c5d48f401aa26adb90e5e19d2f0711d09e40649394fcc4d62a42d31d59fb18a52020101b773a1de92a6147623352998e57e14d3f4bf73f6979580a6fbff0e9e53909f4ddd92f5c72ef9c47e30ba80b114b33b04e9eba55c0103984c605247b4a779b5ad6d628415705558456ca5d0f5fdbaee992ebe3c8e93f2216b23db865b17c34aea37051be67f979478405af414ed691a0fed12d215c9078e7096879e4391347823600c2c97470d3fa289c4705694e46225e3455d0d1d302acbc0603478a819e7abde6d2777f76a075c1873299f86e90e77e2108478935f7823dbcd9f04129258fffdca6a8582cf2ce63182aefdbca9e3624fbab8cb2e5dcfdfd6a61bfd287296b7dd06841c1ed90e370c566d89103173c9a4937f4e789f9809d31638f469b36fadf12cc080c7c91c8f58254ee0c45e9fc1efc775b8fe38bda4aa4eb616f774a2c581a740d2bdbbd4d8b35388b5fc6d53a0517af301d2d4134a65073883188cd54329c610cf01e6c4a0339cb7b33f0eb66d813463e208c3e15dc2d46cf6b6a403e05894f526ddf0c03de00b7c6bfa0b562847a5a8df3915c18bb447a78fe0f1f944d2fff1df595abdd537cc2e27fd88130501af302303cb7d49e2e00345476ecc102f4fb96fc6ea0248a9bd7543fcc4c73021c68482860ebc0227d38b99c2ac61ea59e889bb3739aca919e2bf1b0f76ed76ac9f7b4ae88079371096fd4aca3878c112672a2503409fed6297f4b032b1cb96bc2f6165d296bb47614825f8fe86c7d86c03032945017585cfa1dfefc662e5fe00f8af65f204fdde90e2ee33a1751ecc4e488dd65c3b0145a10624e40e57af1c37a635d8773c2cf249399c14175da15ef61994996b2d6c968db6bf33b3d2ce6cb902bd0198f74c0be8cfc8116cb0897f720cfe5fda6b10193b086af641bb62feee2e97d50dd60e2e027b25efcc2d099e250a1c25d3c48e19c802575ba74f192ad4339e839409ebf8dcd215850c9f3217494ab650c634caed45782997bb7014d47de08a756e129bc6f2759973202a0a4367975125e5eabd2335f01d43b479dead8ef8b7f4df8bfa7b721b2b2fa3311f68e0e566aea95d5f9e1362b8adaea8f193c2b2acfab108a65ebe757f6252c551a7683a873c4b6ffe2fcabf7e9c29179450658708e0b1ffe8c8eee44d5391a2a5c385e0a5824ca2d5fd3b508aa58b420ac4da4eaab631c8cccf4cf98cd3e4c4448414f102d5ed5dbcfcbbd9f996992462b016b02c1d85a65af8d6c5cc4b77861351c52870dfb7422d23919c8e5902dc582d22df114386e862e9bf029996975078949a0eea65f58e12817c1dfe5ad4e41c179cab38a612125b9feeff0cb837dc385f6c6abf4735930a4a2cc0c2d305e1eea036df74cb891925087d6703f86c028fc5660bc10acb361603c531752bebf0e29236ec64d552b4d1143bd08b88f11cd76e88de33a94e8ce3705fa3f855c49b44a0f5ebde6554b3af3f2b2090ada4f679db25557f3a1976269888d403432f485fb260ed8ea77d6f3a3d03bfd34d074cf4f6651bd253cb5ab11dc0edd060b144adf97a93a0b63f46b90eae98b6f0c0db1da6c41e37abc8e93f98fb2afec13260af15d8038ee00e26a2f5caef656f1907122491e4d49cb5ef25f22356e9ad7d12efa923256e5ce32a11d72b00650b80025c2a703051afff3a54cd94111042c334ed449a2d5c2ebc4ae7765671972f08964813d9fa9219559065f89ef23e52194aff938d81d2e119126292079937dce76d7f5f96b75c992aafa567076c99e4f5575d7de3e112a881703e4aab8d62a1f6fa454a49ec789f346644d18688c47db54ee2df95eaf530fb94b87ce608241734e30d62e41673f3f0b726004975bef01802416631e1bb4595dafaa70f1a2cf54302316d2ee416761b0f082d70dc2c8dc2b1af1158d3b8c6e1c4cdadafa89847eaf9fc3c45b62f973a83dd318f0f2c56bd214cde4005f62d730c9b5906c77cc191527073177b4268132dad373002e962f342ba2932b0222264bb15da86d40fd9c82b4baae7d23bf3328b4b934f1490a9b56bbf520d116ef6d25919785670ae2cc07c55dcce864ca165f6b0e1dcac5a3c3720dc5ec1c6242d5e2a92b4d03b17abd0e4fc6b384f6e0b4126d9183da4c56f116b2651d5802b34ac76809f036d8d1cf10baca463ea4a839ac55e2ec97e3a78bfc5e643e2fdb09be6eb68aa3131cbf543937d1ee3827f000e1745294e77b5cc2291b944165ab1f83a07c47052dfedd086952cfe216676e37ca9a1f08b593203fe1d3769b2ad247e57923ef190fac583a2b764a5d70a512c851c18edb72ceaea7a4564908cfbf218f42fdd7ac904358e1fc9d30995679c5912f5599ff8adab5fa3916dcb8e6f07844af8542111218386aef49e934099c91fcd811ca2ed9ad8b0e8f56e7635ed1c5b95252be42d86d63c9e801d168ed9a48fa6cf362a25ccd17d9f174aa013ee1dac96d06dd418c1368a671ffb2f8bc5440f4faed9fba61fdc987f26cd7e4db031e814bd176d81c7c52223d0232216f42bbec1c413f86733c8d82445ac521db5d05e563671024cda184e104f1bf764dc967ab5b513dad5efe6c08f810f4d518f7a9eaafbffa40d38db1b0f16a2a67d0c30c32c54da7752e2148ea35db7beca01e72fe23cd814909f248628edc9bbbaafa41de8e74edeb167e686a9e7f916fe6dcc21d2a6606a54a22df6040bdce54d65d37ff081e7ecbca63e64cd621aff779295c4d37fdbe90ac74bcb71c5b2c6b9668f76106157a9ae5adb469e7fbd2c5299a0c643d4460f1b7c5fd7e2d1684356fe316a5666f55fba6d9ff592247c5cc176e19a03b3654020da1d3fed158096cf4d746e9799ccc98263a60f80c6d643899701b5f77904bb6836e0cfcb07e264a3644b80e8bd88dda0936a7424510b3085df56af8a32ca457585e3a7db9e5b21a7a6c0f125f6b0a4203488639e9f8f7521f84be027fe28e27f8d21011fd4761c828200096d79e26a0434e7bcf38432cadfee133ec1923f3eefe82d0abdb2d3b82f781985a357fde0bfe555598b642522d623c3b04cc7bdede5d8c0fb7ff8625e7f6f25d0ef4d755abb79deaab15a70ae2e88271c41301e81b3e7d904544624f1945ed7233bab381fd34861b316f59229a52cfa7b1eccc66a605ba43acde049c26740a7cab744dfe8d9ee3de74f7b53b50d204466e4bfe24127788774a000e42c445b16f5567a1306113515c152c7fe2acb9d10299823075bf5920ce029b3755149d7c54f4f4b674bb4cceda2fdad9ae55a8cc681c2def4deeef38423e44a15aeeaa459a49c7a07ed6fd945208ff7ccbbc64bc39df0940980e8889919f45ffaa270b361547ec3fe98e14bdbf32de8781532d410ad34a231afee672e8b9f609b4d7577c36af71dfbad200c35b35f5855c7522451d1a2276db9be2144d0d0b1bc8669c15d554e13c73635f436c9905dfda4f1ff389cd4273a874ce4c0eb945f133a11e4e0158f22e9669b9a4a6091823d886dfe33a266b375cf3d6d4b899d5d5dc0022b15de09351bb1c4ece6ab16909fe236e90bdf7925866f6dcca13fc257115f2aa10999ce228c349499807037e576cc536aadcb3470e04269f6159d7d1208934827e5d736471d2ae44b2dc0f15fefeadc0a640d3e793a44f6261acf6b5bc1556fda53f65c250e2f00b583a1a3d5e074818127984686fcfa88130729d089261f87caca0f9f1cc8c6296782bd911b69140151d4f67cb9c337cbed8569118fecffcc001c8c232dbc3114808740659f8e61b4b6692d159e07eb1e3648613797f7d24dd6149f4ecc84c36a23a3d1a98f6d3802e9a652cac43471135ef7887339622e6e9a20144bc9bd3646c5cee24e94b13beaa5a18f5970ce07f13a862794380a6f668929248a414419ba44d3a327175e6a7c1130ad0352693f32484ee592d3c4f3c21232e13ea5d04f4ad6e7906f1c27ce5fe43fb80c56912605baa20b07a69c5fe06f60f8ddcb1cdc6fbe53ed3fabdced4cea748f3f80ec99cd5fc33bb118bb84758a7628a418088515dc9c7919c6aadd91d0a85d67d82c9ea056591bf261df6b0833f0cf11af6bbc1d030d5c60f32f7d8e44261ed766a3e8c88be74f501685c674a7416367b79022dc269881dd55acb13b62b948e34086c3460fd925f5481cfc6a69f0702db37a539a546db43c55cb30a172efac65a53b4b4a36176b2f3cf5eced648016afe1773e147ebc448cd6c9be5cfa1f5539293c9abc8d5158f1a1c177d4666f6e7cb4a924fb137b67c304fb9820181903c1f35dd9b79c61df516ccdc84be3b88ce653777f7370315e38a9ed2331338979610b9b5208777458082e517c520c9c1485331c7c95111b122714b4dae9f97f4e04b2a494b31fe452f50a80a73c389e4fb4b6c46deda3230c319510eb36b0a07495d1d56d6ebbea419a3833ee329803f312e5ea93fcdc8a9ad98388e019cedf0187785605259399d89d0e55e5ae3e386e032fe5d6b725398408d89f3e28eee5fb4e6682a174e6bd2b49a76d240076e3b12d42d9a806150fe18952bff00c0c721be4a7e4ba308e9d1b0b10f392cd669fdcfbed840d46bab98d8e3587040413558945445ad3df6eb51af5093fb08a0e8f1f1d188fe7c8b7d538298d903961bce090f3f82d293bbbe3213e5a4ccf05864c7a06c1520e4f2d6b36d407df8f08bee32472063fc6b206a885bfaa9d81dd97e9a26d18565b96720c1eea5e8524f3488dddcd0c859be927636b78faefb605a7fc8bcda1dfd2c8a121b72b4f3e5ab0d7d1c60ff8825135ebc0d0099e9a6945e5f37fe5685b4706f22ade3c21fc81e04c2bf0cbfc7a362095b57239d0be09b9d928b63846825be5e103dd24c2b0f5b961ce2f95a4753bea34b96473d2a83b50376e9b8d337593ed317127d16bd0dd8564aff487ea6d4105c72ad4449d04e84e0312c570b03e391baf838c91dd50a82147f053bd67341098270547de20c80eca0b8eaab0366c355fcd99b49924278e7ffd91b7d98fdb30fed44fa09915f54731ae60cfdfbeb1a01f120a3382f48562242c83b580fdbe8d4482f5576c5c945fc1edc7fbd554c9bfb34ec089c68f5e4daa26669fdace772aae79ea9e78ef8c040fda58802dbc004fe7aa573c4840e6003f3ea84c1612507e32cfcc9b7e6238148245ad45c724277f7c7f7b77c95f22702560c479e44107fcfb62688763f3d6a6d5cba19644efccc9a60099e074f0bc0a3004cbd8f9d1f919e7b3c833b32a45a39928de288d8107cf8fb82bd953c5a3084b6b89988ecbfdbd0a82c2731c0c954ab0dda1e44d2b2bc3d3d12ee0d73a345ef32deab8e279864829411feceed66cded3290f52721a2d8f03327dc3547ff587ba1a69fcb426e19a405bd412a2564d3f0d4f6e5fb05f9faa22642a02826b237bc564b4a7c9e69c5cfd42f08350c321223e292369fe0279e22b531e18fdea8bae4f22d5896c766f744256275f3732bb469a144f0916281cb488d47d6ac6f4805d241b79f8e8252921a6902a14399619eb2724593af9424ca09c02aa33c113e1dc27e7378510d6895ff50d32df5c50a49142a8d6c4695c06de3b67e01c357f7818cc5ced31b9040952ac5c653a4a50b4121b058ec66e666d212df6c52a4fc33c159e4f83d33ae9e22f7ea00bb4d2c411dc34d98d5dd2a03cbfaed766419ff924a3ba9ec423f2a0fcd8d184adec655c4733e6739227a50d7251f10275cb9891a03f539313bcc26b718c42ff92fb9915ed49db9b3353b9f5222698a8cfff14a9ee872c8f1dd48ff8da671de2461baa9f4cf595a59475267dac2d3e6d9dd7cff4d780210be628c2c1a645e53e0a4bf44a01e5e6d99034c847b2d1ed738306e7388d679ee5c2e1c7790a49d29861857a897546762c9e1abc2d9d1aa838c32d6351acb5260124a2918769e64ee7254762ff5fdd4142e096e7ff8bcde33a4912a8caad80cd32403815933d7f7768c3657723a2bb16c825416f5ce8b80578f6d4050a3d63bf800182ca21d4b8a143909ea66f2aed1919caf63f93113aedb5ae0b29063dadb7b0ca322f43738dd1fb64dc8121bc9e4135b54a889acf226a9df520a78f7bad8826f01d454db7b742b2e0ebbf8abe80db07f40f3b138089c2a4248f792955869812fe8a11a93b80e438033abaf1756905fea27b8f5d2fbb2cca83637a71cb2460f025e21cafe025d8f40644ef01488434ed247881bd0f7b561ecff4eb18d09fed546db0f3934011f590a49282ccedadae49e0484f8f00f7df1ef3dfef6cc67b620d789ca66425c447802a76b758b5f711adfc8afc8b175ddee0092d0e6f7d0c748d07664d1312fe8a50123c7ac434aecaacdaf4d01d5eca590be3f5b67d2476ecad89737e9330dfb3ccfd41d8f410aa9f0040f3d5c4345fcfa1a006b58cfc9b29bb50c2d90637eb68ef451d84d6b92326f971685b8b0ea2af9e32b8c1edc7a19bd34e477df915ae83a58509532e3ebd4b46b85e748a76fdde5dbbb3f0a83a8349966eef8fae816c9260caf3c0f998f7ce0d0275797e911236d726654065edaa4c21e377ba7ca8ba5a7954c3695f1ad3c351a729836b8dcd01a97ea210e1946052600948aa3aa80b506211f48f2fceec10a780ecf251b1a582f2c474a5fa7f5c1cabb44f90bb944c1eaa39329af40105f23bcf0eeaf2fe366cfe5ffea6489ecc00b400aea15b216624cebc6993934c7d782eaf3cd1a4986f69bd6032a142919d67c6028e979c3f10f5dc64a7a97cb90606330e29d3375ddf94102e6f84f989e85055f4372ed244bbd6e8db3cad6bf96ad48a607a5eea6b54ffe35e162460f5fcccd9b0cea8de6872424afdd395b8ba156d4a8ed3a66d82d32e19cdeab923399b8001a1924affaf8368b21c81fc378bc531f0d20922fa66279a412b556014039c262d6dccdda89169ab0d2d6fa0abe595d34a89350d74d0b63029a7ae981ded6d0c3f11b32e74eeea2136f173e3c24c66dbaf1d51e69f7e0ccf306358c6ce778993b92bba8e1a27a61576a0b54cab957c2482a086f0667481ce78d0b5b1739d39b12da2b65282664486daa88e0331c4225f08b321b32b86c573db331706bd7fdd70f9f43054db7062a5557907586f1aeb8f93c858792eae967cb7df40d5f8f1156c56dc0d70cb89d45bb17d913c113e378bf5f5c5d201d9d39a8aec8212dbe12759b8086f08ab434bc151b629c62195998047c974100f1c3cf25b7a4415d6e03a7b7b204f81d14987a5c795acaf6c3caa6c00e4dfcc2a88979bf6c47c1a0350012de354e5c4f1773a0c330ef0d66e39f3a45b51165f390abb22f494d3c29af0c55b68284ebd86d06caa75f82bbed6c9a94f0fd3856ae30bd50897d70990fddad007584050df4f24bc6c353f540b95f204e8529e944e5ac6b4427567da6d4c1e94c7c15b559fdd7c15eeae774b097db023c035434ab52c794ab9f24fba25918a1645b6c9d8f52d9c970658d23f25756c9f7945b8c4072bf772c88b15bfe87667a1bed5f89dde58232637528d17713795198c84c41bf65b3b3dc1efcc78ca9219cc842efafadc4c32d53ead528d24a2804dc4b041a2f300f83c68eb0abd433cf89e7c6b1164749b92bd8a792c801898f671c1d9f029b6aa51297623f736aff5d5aca152ac2eaf55bff9bbaaf8054b7107007647db0bba5d38fb179f0b10ce64fdb07f935b339af85b842aca86025efb0f47acb0793cbec610fb6c224b2c45dba475b8e5a68fc669ec706179c960190a0d907dc11ba0457f9fb10a59f8431c6f1a858377d649c803e07f9ec4c58ee597a0f4d9f149291762687c7ad0179c3fa32a6e28ac0b02bab2415f55452a8850766a7804ac1b08beeff399b7c2463efd9f8332852a432db8209f01ab14b88e8d8e966516c3bb560ac3acdeb3b0b0578cfb16cc8c3b1a9064f2f854fc8de7aaf1b1c2677a39953c8d1547e7d2cc2dd68212bc94c37871d06313ce4b55e1723277fa9d626f57e2762054e4896c35d4715df094c1c2ca46fede12949afa75b0dd3dbbe38b8a1198925cc3647b50ff8510fdc7f711b8b760e502902ec4e21ce767050194e232bfe7e82234999a3c1046d825fcde47e701a5d280b6371036130652b5a28bb72321d19c14c8461766c95d54fdb721fe249634390dcb2bced6d46a22d7e1dd9decb77e6d19c62eb7f6819dc89317f7f658caa64ce3c7c9d8d3be9e671a9b91c3716a662edd7e8ccf89d1412d55e0850b01ecfd363f093ba5f68136d7cf06a465697c681b4e41bb25b0aa475598c9827bb11e2f0ae109d44938653d1d6c0973cce0d4660c205ff6cd6f45397015551f7a8e8a57ee8f2f80d04858d6530d14f1ffb7940ec14a41654bbed9bd6f6637cb7bd1daf85692a72ad908d6fca5ee94442d1ffdcd1a878ce5a80b2a76d88e508af6470cd73a3753b60810978f53f2f7b48922a63020d75545feb7ddef2c6e34e1fcd38b51634fc456012a140f281f3707591a051c12fb66dfd994abb97051439a59eaa451e9af495ca9d4d8b97820fbab9f3843a6b0fc92cb526d54e2386152e598154028dfb10bc555c1a5f0e9c24b61f3fe63810aa41a151c7f6d6c5e2fe493b973f1f4f7b138250658630c8f77d029cfc5bb34d70321a9cdf8fa80ae2ff17317345770b69241b83f34e40f73d6a0bbc938b69e69ec2fefbb7fda6ae339400b7e1fc8334e3726ad3da277df3b18a5c80fd7ec78bd75cc3d23abfda4c80a4f35390d52d8eb09d2ff1c264ce8649d86c28d768dd8ff7b1b9d208a7485abc1ca65676b08878977887162f6a161816530fc46bb10e5371b9689ed1c484f21629891c7bca2d4ce726172b97dcd911198df4a72a3403f623acea818d624b5ba566d00bb156b02bcedd50d13da09c1b9ffc38816fd8ed266ff42a20120d51674e9f788399f7cfe09635c2c5c5e1bc41488309b0bedbb0ace53458eb2d78b0391cb97f9041952bd395015bcda12c248efc55bde766bcca7ff68ecac4dccfeca1890a6af7e54a4c646b78792e12efc4d746eb01814c250aa222f1a57aa4251275930509f20b5980fd29b6d19f3a31872b6daad57de11fb116be08f5b6874ce49ab87fb4dc1b63f7c638690189b9299000d8a5858f6cd8568bf76123ab50d74d436d64281786463a21105b62e40d3e6e9ee9f3a5df63dea5225309fee3aae4c8a95407ca430e3a5a778299ccbed70d00e515ff4933dfde6a25112b03e346b9ac0094ed226afe6ef546a0706bd9f26e18910b45c6c1f7cd6a20d6290ba6e4ed1da706cec5324372fb92a39d8a0e8eb80e09cac31834d7dd595e02bc1e416d3615b3a692769213565f55d5c45cee462e745e9fa5802459a39a691bd6d31876a535373fb5de92951050c05900a884b68de59a774b09802bc57bca32bf0cff6f9ae3a65394171f390a3cd08fbbb89188c540df1936e6bc2a49af7e1cb6570d157b97b5e1f418ecd0cf33cdb462142b88ebf96d2f612a31b66e9c370ba5377b5d2fd3afa0d055a99731404a91ea24cd9e74ea098dfe67559e95dc59c565b5192aa2826a44874dc2e8634d56db4c2fb0541ee1962b40dd28d684b14cec2fed82494b15324784e760c9b7ad0ff3eb006f1fb1759387f25097cf394839b6575001c37567db62954d6b21c4749cf74ddabf0a67770db6f771f24ef53ebf66b903184b2641f8f4aff3a1e06c284a913afda7b8a5ce98355b8a06992ceb1d042af15b414d646b8b0cb02646bb94b465d38369d22fc481628591c0b68be0c5e1fc4b7d9e33818df940fcd99f0cf69c9980703389b840ba88167abe1d1e6b46277683273966b59021164add150fb73aa8b0252ab5afffec01ffe212a80fb057c86015c721b2788f1a79d3325d75270a60453fad7730328776545ce6bfdd6c470cbf4228752594733bb544a7fe72d3978546334ce32389a5ed703e76a240106f68aec8b108f4f2d3915fe2d137692b515d0eae76f96a7ee49a1be0b77a485ee2e492c84801cb13cbe6093fe348ef34019520aff24d1e04103106a7850821a496a53f5f992b54992ccadcbad96cd3fdccfb7785057c9eae37816aaced09396294638fbec940aa4112ef0e34bc2e33f021e5fbff2cb9a062454caa2967e05b8186f4be8681c40741afb82f7f4081645390eb0860a181242e293e658d934d63a82a522f29bfe70d290919de8e003c027bc6593f2655f34dad08f48a276125b3f5f911a7e7b052745c27de3d85733d095d40cf50e7743b66d8fbc71a618f7bb005731d1d5a8e2e59bf1c5d8318d3d45b1c071484c7f6982ff09a409efe6ed72dbcf5faaeb87219e999398633da3cdb7fe3d4eff0bfe4639c9c5c859085b08cfa3aafd4c2fba663c6f8694514e5919cea31361153db4f3abdd0596cfb1d855764ca2cf23726f1f1a06cec1d27826a2c8f535be8708cf98609bf1117e9eebd6dedc8900dedb3edf8a1a9fd8fadac2dcf7575d51d58d0bb512ef26c29bc54c85d3b7e287efee790f5126c3a341756108416a2a1085afe5d531666216014311ccf53185690e9d2b3f261b9f2204931ca59f873122a0ef23965e1127b8aec7a415387855e0b76b355736ed668e02c356a79e9487f6345c52aaf0369051449a716763c63e0ba7a83c32a3ed478ddf5f12bce11daad7d08bfe8372d5b6b88927585d91edeea062ae599c00f593ada4a881b09cc6dc0f0baac69c23f654f0e7225839b22a0c84b038bb8ad75d37ba3d6951551b075619fd938dca74cf9019ec360d260b4ddfce1cc9af6f23cf0399fa327004393bd5a6c30466168eb71946cb45e13cb22cac12741bc7ebd6d6992a0e255446e9007c8a00d20670c9e60015da39165b137132144caafdc05454fb12134501f2b1e604a25738da3f360af827126609536ea710447b4324d9f6b21069846752892a6ab1f8f237fa4917a6dfc99276529156a9038f9bacf56489f4aa0a42a8468182468940fe00ac8c6148cf921cf19fdf33533ce78d578c95cc8bccb91073559cf912c59d2c702cc5418b017197457389c18a4515f3262a36f5064337171c0b7b67317e80329bdf0d94e74d418b6e1ec98f9534f4b54284782d8adb456308700db50cfef1486d35996d571a0da821a50d81bf1d3a7dfc049a0f1abce06366fc9d5fa7464cac53d5e493c8ee163f90635c4f5107533ac4b5a42db6abf66d761ac5f979aecb1efae2e0005f141ac7b79ccb03d7d4a1a12cc3728b4353ab376379b2a7a1a9cb64176e6f6387ea845a4252d57fb6e4afa7ffcc472247c1765faab2dfa35e1ac9c7495f509fd9db0035f7070cf5155a71086374c75e70ba7ae514046ebae2c275950374064acb1c4e3bbb548d6d124dc9c40cdacca1f3a00cac3f2027cf6fb2419d871b822f329e547321636842465be69c87feaabeb4fcc1fcb3575757c6c7c0b6f54667cc96dd4e868bc310a59f52e5998736aa7e41ee4403909c7ddce3a23b38677e93d5567d1e42da31e01987f064864e252b1f9c16d54fbf221c7b11a08c811bcd21af97ce2d19ae309cf555ef5a7120efb3cfd5bda055c39eca6542b62271b4568af508b7bca2379ceee51cdc872ec8955035794211ee0b650961c252a5ee82a7a3f7769c1a179896c26aba6e5cd42bb11be9c41bbdd5dfeb3a48348c3d61e3113c362d401ad6d16f8155415e003ef1f578f7b5f8f02ad5719788e046fa38aaaab9ea28b4ffe1486b3d50afeb6f8a323c8761e2c5a8f2d9cae4a253241e62a0b6af7c1bd4435ed384f255f39c529e42f8939a23a46094cc953aad4c5867d60f9ba00c3deccb175a97273444e2429e8157e60b111a5d5da45c21d0fbbc8a0c60a333ecee779ffa08876412c79fbb7741730c914a0ae9fd2961e9cb90c02c82c22dfe222e22b99a0f5124e585d5c558ba4bf1fd92388f0840182c6f19069c38ef10a0ead5714bacf12224f9b5dfcd330f7d6693ba678477bb950921b0d37234f14c5b32b2cbb48b67db326d4e09bd4162e0788c595a4e24cc6ad95cfaa70dff02597f1d62b469b5ce96eeb7ee6a917bf98adb945a403351f5b8b42cf79076", + "0xb5716d46b630c789e9cfb067411c3bf6db77cf84701cfdc0efcccb617720768dbea1e5fd28c1635cf50b13e301d462e472d881fb9739c051b36dc554cdd0c998d6edec9b7d5a7effbc3e371f7865f2b0099667770921a9131610f7b05cc457c11b043d467d2391880d050faacc9ed39a071e166b12e8d6c743aaace39eb0c0f6e17bb75c184689bf0caa867ee9ffbb0d4ba64336613566fdf8f1f89f0fd5d3622d48be88dfaf4eacb01d45b4fdae5f2ca447242b8c89e46d053beea4b1b7ac053afa37b389625378463b0482fc7c5e1d58e85f678a17b47cd1a5a44588f11b0cf8d3e97c70548ca7ec5f3b0f1dfa1c529ef6eaec372de270d59d67011f0bad1888aa11e011e175f6175116af5b9afbf224f34be6d32b32af1ea8a42b0269dbafc19869d590c9057d0d73f2a3f4e99dd889cb172983105f70cf81753c424848b8ae81ff3131c5ac106c4fdc77eed133fee404afd8cf8cd52d9d8edfe3f4ca03880e638a76e0a1c941a16bc74b8decf6243bb6858222af684551972263b2143b48d37727f4aaf42fbb726f7a3cdee94d750d53802c4e1bc3224ad8b0001877dd90a42aa97d425aa43c759b692130044846c9452f9505d39693f85faaa448ae0afe5ad8e1d77d4770e3968ff976968462d8545af354608ecdc962bdf5cc672d5c298662943ed6696ff69561e43a6657cabc87f854a65ca43bf5a1fe4f111d7b5be1ea91f49eeb9738f58503bbdebcb08bd6af2e185b5983974c63ffed60199eb7b1fc48e19bfe51443c4ffabc39f8c0615f0c8cd7ea99b9b7d3690789fc8b990bcf6686420b75d2322a2d6480903b79181e52cb2f97c78d592b09b9f0f0a9f947418837355f5aae93542f4f245eef5fb2082a4dc6586d27f23cac4f7c7f2a7011b8f5daee58db05d104b95f07883c75c4e0b262b4a77c474ca3512ef572ce80a6ccf1f28276cb4420e803c73c0a9327baf4f9672139c890f44609bed4d8d43d1e95fa47f4c71f739a97988939f82758f31484ae157b8a60b6c3799ceff7811412553cfb3b3b7315de5fd71574e26f6feef7cc37d0eedc36abd25b1ae8a6a0a904c81b6930fa839ddc79752af04ea681f0bcbe3f298140af9e22fc090256fdc517faaddb7528b26ab5b8fa0cf1f74b83ddf83997cba71a09c9bec0dd3139e952e3e33d0de32a865ac08a3f104cf1a28d32bd93ce4e59314022629a168100b9667f06ca7a03a529e9290ef66a15aa3033545515307ced32b5cfdb94022276476113158586a184eae1c2e3225ea1fd42e4a20a7a8a48922d666ef74dcbcc2a6f187c51576a82c6ba9fe55c9aab132c6763071c74cb4c4916b73b3276d43f129314dba158fabd1ab0dd929b8b5cf79ff249e939276ac75045ca5ee4546afd9218dd208d59375c328517283ef3d798db799cc143aca17072f768d46b42c0a015e754e43c5bb1224b197a513a27491cc6596fbbb8907babf1ca7bbf542b3f6491ed26195b16babb81ec63199d4d568ad52f9b144952aaddb9451320711424b3ec9b4277227367a18da5753700e3264d406081303ae833f8fc4e003350906ee0496668a540126676cd8f3201a736bad77592e08edb3bec7aa9b2fcfb8b4a1f5d8148c67839c59bb6f517319e5fec8d719b31b9181fa6bf7cfea063bcf17fc6071c3da4dbd2139ae94650db61777b9460afeb4175837bcd820b2e7a58a081626f19c7202db1b6e0c0eb6fbf6c4baf7beb4134ec58e37e523019d347edd5358e23af6bfd2bb41df0cb024e70f7402843ee68c3780069686319cfebfe184c96ff6bf7327bbed4eb2bace2edf5e83ad922fbaf131c4ad96577426a37f5b7b0305601372947293c768df25aedcd9af48bc1414ce3b21ea696c2167f5a2c18ffa539a1fae176870d4926110f137cec0358bbb6c8b6061dbc9060df905d6ae53b2cc897ceef9495e2a2720a8ccbaa08a7307835b45422b9cbdc4e05402be24f5c0d5598bb6dbd214df57bc864a2db7dec5752969847b641e27537a8ef166c2fef26777f0578cab2c667cb4574cba78c36e50cf3a65f8d7d834d0b548a504e25756967d8e1b0903858532cf25f9c90cd94459a93122f11d318c86cdf7c7395fe325baf3ffdbb2bd7ebc93efd970e6090f1b6323d098dde2b773eeabc15fafcd8af9727fdafc15a1fab0ada705e4019979acdbadd94166a06717e084936c567ccfe49466fb3f1ec45040d3f45d1f3780e3ff179cd77a7b467e6461ddfaa99e81a6ab4bd2103fb3d2cf1fe1ad98e0f06e616de202142e50f9f88ccf9be8d9e5a2914ac6aa95595c24be3b959774f1eb2e9892320c673b6f20d9438650dd0df89c2a81d939f42f7a4d64753c8d4b9cc093f57a44e637cc6dd651627677963cdeb6647827456bc5e719fef9287afcb6df527f018e037cf04500ef42a625086bde7aa656e2221fd8cd299c6704efa6a77092d738bab720e22cba4c345fe0a6365afe58607b54869465e062f9c7c3d1703671177dec1bb8618e8c8c270e39c8b63a7b24c86c70830d5719b04f8fc173e502c329f4254ead0a17ba69b194411d8b65f0792b8462da7861e3dc41cf80969407533c5c1ea2075bccaef6ea0373ed7431ce0f8808f2b762a261695d256f355daeb1c5eb5eac9d72ccf399adae4984f51edc49053ddd0a6970724f89814f00ec6e847a34f6d2e8ef98becfe8f7c74450d58a902ba08e09a241b88b321627c41d423c1f11166a175ed713922fc03369b078fe8fcd39538b731bf2f27d4970a6875f4ffc45419798d18d4c95a52ef46a7b33a6070d112614e9d94a5984bf874d4402215acc3e250a14d6c1765358cd00aead1eb8d78c68ef54ecb1d2cd642f54c6f45b39ade4b4d46a2efa0233d3c8aab6682c259a1ae84f8ad7e0f31f6158cb85fb7b20179725c8bf4b26c04787f24f249a97918bccee3112722ed20e221024b1413f32c3abfac01615f8b81e6ce1a5696dbadcf49cec6e6adfdcd2e052bedbbb245bc7e1eecd36fccb68c76fc46f6ceb77e94925ee7c20534ba1a8f7ddc6257052f0143f45a60975c68189122224bfaf6f0f7582425a85236fe8eae9e6a4322fad125ffe0bbcef1fdf41cf73503fba4034260ad5af29ad9301a22686d0546df24152b55da031e2fdda34659061086ed747b6a95d1f760fd22c5a8e9261b317d381362cb2db37b8df086b00cd8db7464407990b5ee4afbd512e9415fb76ae85991fb080cf86bc2d66d8f0173e62125674452e3d72bece75d897fe0ad42e63ad1ad82737ab0d8c4ed4fb267ecdb4f8370be507aab9595a4bd147e847d9f659ac1ade2a04d9ce29e5ad61c23cb57e07a42d57a98c84fd94c9ec4d2f493d728270cd96b61ba58388732037993447185279a0eabcac30e906dedaf700c09aa2ab9981aa56d195324db0c1f42f92730231198d83880609c9767e56d6cec2d0a43d1117ffc106050b35e7434295d37119afc240231e0c156e1fb7e9b28a5189e199c5fb8074ab4e92aeb6892894f5b84611b633f1eddceaed0daa95b9228a640e870e49e54825f07d005134ced718e6ff2a3aaa961c9dca9e950cbd26d976c800d76a0a9c93fe56bfd18c0b9a1fc49a9011da83b1bee1961cf6a0ba9b23b881e6f55ad7896718d298a499bf35bb270808ae5f156a2e61f84922aea8df8c16593ac2af64db43a442880225c5bedf33134a9c3d13d8ec28bd34fa86fb0f383ac892115ab8ef65b4ba32291511308e6227945840e994e3078a41e380b4501f6335eb817b346ab9fdbaa44ebc48213dbd7f98cf538f553323c614fefde07c4897fa68c304aa1cbe87ea2eff9add410739cd03dc65e42c820df07fa22c6b3d09794a65dd20c73bcc79dc1594216788f23850ec1130d55d7f948a8dcb9de896a221edad029edb29eb675932c0757a0b119f93915b13b64874254e9896bbecf4f83ba6f84d8f1f82f5f6f781bbc92c440a8ffc88870118d21fa8c85e746c64e9656ffc9f10f29023b8c9623cae5671fd2b310a944fa70502a6296c8fc1938d3973438ff1f36ee3398a8c71c03a0e030fbcee3bca6f9e40fea9ce7141195caafee0c255a267e7b12beed003f3e440f3b96f8bd556cabd1958564cd5f1a437a38823405da7e1ec4c7e1a3273b77ea9dc6162e0abeac16c98ca65c65b37bb13e46a3780cb1280fbfa2a7157c1454bed31cee439db2a37a7e05b4c095ad13611cb638c9f7c59a799d956319e9a29b6238cdffb5e1e44bbb1cf59a70daff9a5ac5ebfb4bd7328644e3b5e9515610fcdc0a2c26624c76c9d6b2b2269e1eef52809b48c5ea4bc66865fbbcee88265d21c436d0c65ee782a4ad007ae99cc0d503f770b7e8ae6684efe1ac8af8c415de1baa4f13775f7495d3a72decb4964ba14b40d425a27b102229abc89fdefcbcba16fd5f96b059a42e9600da8ca22669523ce00e0392f9608a88bc83a3da8a1b6d5ed805bb955b26441fc38a43ac1c0b804aa83ec749c5935db72834df28c1a846b77f6d2ac6c6dbbd0fc2a7ded4ebd3d38b011b69e8325b6b38fe92c138429ae8037f364d436154f8c013228ae084528945d008e6c638283cda2d385c6dfe3dcd3ba835d364eed0445fdd605e9d9fbcf4caca18c134539f8af9dcc0e56df980beb1695331dd416f66d47641d2bbb470faab5d6d7d4473dac593cdf3370639fe5caa367b1ccefece188231cf40372aaf9333774e24a84a488e29c64250977f3b9b42fcad10ed747284cc4bd66a4e74a84f36d4e2c39d86f13c71233bd217b40b41a6dcceccb74d5bcd74db9cf30b2d34ce30a81febebcbac5ad9fdd283a419696c96aaaed4b8fbe686c3b8dbe45e644345b6ba0032ee855226db8c03cda0b87b0940df2feedb1dbb3883b48829c3aa66002f5484b0b1da51141db2cc3f679bea5e62041aa5d248a6e1caa222127a988edae69337832156204a65d6900a8ac00880c5cc58c988e8b5709804f7d352d383c66b09594b431ede215c82b384a3e4e8de0055f0eda82b664a3b5a480403d5714a3cabb8ae83c230aa1e5d88a9b685e5b49146e5e8302bbdc88e6853210ff445ffc58485d512f8c626a17aeb951fc2b49941d7b45516c056b704fbf00a43719212b4b52aed50d52f8de1234f0b14f5b1f2dcdebd13fbb8e2d67fecf885ba8b1bc68d9c36a84a5eb009ea82a6f1b332a17c397d29c5f1615b5bfe809ab779dd32f0a44608b945748a78a3dc57d1a905d3c68c0a77525290466f145a95af95828b79547fa85b5d7ab8ed77424c5a5b1039b4124ccc669ea4a7ad36909ddceccc3fe08e18c5cb2e41792ec5e545dea973aefe032790f07534e5a7d4ba3c916f8657b6bc463eca950b28381f77e1d1421d71aedc4ba3a29b4ec96143f13088f8033c1feb29171c79bec4b7623b0a50805f8ba6f293bf74098befd4770ea25cb58a2d574adee30ba78d408f97c03397d974b7185c0b24221559686c91c1840d1fcafb2bfcad00e4c1b71b56a35c5f8ae3d0180c26e1b8a9a43d158b34352a80826cf97c323ef7783c2321d7cbdfce2de16001dddab743ce72f34504b5574afd180061c09dd1779d66ee14900925492ce41ddbbc58101a97639f6aa0100eceafb0ba27812bfa35ab8944fb342a6a00547d92382cf8c8fccfe88a439cb9db3d27e5d988db1454c900150a352bc3997d18fd35018402eb6c867616d32931c900dae7a16a023d246c7cda31100df4f06e0d44bfa8707840d78f07d67aeb7193869ed83c1cbadff312065bcd912bf9aadb6e23d16270286c6901b209197b2a6e0f31aefcd1dd8f83e105232a30068e9c09984da24e58157e40b74be4afe5c7e202b2aec1b3d985af72e7368eebd61fe9548fd682a8cf2c3ee6d01e521c2b5096ae267887472f3e1fc29d8f65b404d03b5578446129d04da7bf2fae31a6c00c00d5f4985a80f567dac71da7f255b0462eef1d30b1de2b9f4c24fc8930c00d055bab6ab838c055231dffdf14d42c2c55c75b6c7555ef0536a3532134be21ef485cc5364f9da90c900523613af1c87e683bc3f8f36ff4540c6a62cd14c781370b78f4edefbcb3ecabf464a3ff9f3ae2cb58c377df38c76447aa87f57e299d298cbf4f871fb1125a81bc41ac9f153346bb491d42a03fe754ce09e6cec416e0fdd3a170e1bd16abd0a5f5e303857450cd4596d1d843b7e69a306a0b545cd2fd623d19703afee0765c0816b3363609e64d0090245b7db09c7bdc0de6c71381fef6cf0f57b6ef62f72010234856528851d08791601136633794a5bddb2956facecf6a0484de95d10ed00a1982799d5f7617d4bbaee4ade9aa549ba804c17fcd2af5be3aff1e91c0e137eb61dd371d6c48125a1b0ae32b0f637f2ff8489a42edcce51900d646575b2fb257f5822e45a76769fe5e24bf3e1491acac5245041bb32f1000cf5c0afc5ce5b308fcbc7f339daef6d78a0e4f8d8ae8c8fcc56712d42cc959975ba7828908933f7710a04efdbd3d49c2509b0c37aa2092bfd4ab1b1ce69c9be1d29caae8a3c471db76c1450bdcfd23c0f8bb95c4c2191cb19fb93a29a03021c7d6cde359373ff57ae6c3118669ccfb2d038c2ca8a918506065f1ce6da96d2cf10099707d938a8d47be5de4d246847cc4ee5a384e48246935d219fa5cc7bc7174f639faebdf3590cdbe3cf21f34de056bccc6c1bdab3376c8dafc263fe4b6984b56160d5f34c96672a3d4f40038b427da8ae5f7c83785da871a3c7c16f318bea10cfb9969fe640d0335b7a81b8d8b2b0e248eaccddf29ceaef00a6c93bb45f4ecd40371c035a69792af8d4ee4e8688a89160ed5058789de8bd54928198084bdd8f495cf12a184aaa8952c2c6a2ddb7267d4fa0c68ea676817a2b329d2af5794007a2ece72ad86febf4a840c34d8d8483e125a1118b6bb20dac36aa8d416bb647a84c3ef4d9ad4e3140f62b92cc08421d21f0f4567a87b8f23973926573ed50e31681f95f5fb6ab8c3360e869ff42e4797b4562d65e45f8f906146e4f4eeabe70eafeb89b7d6ea7537b6d5c644cfeeba04da1df5ffd577d1e1a6d06c0207b837f845197686d44b22e85d76555e8b03acb6dd2beab4495f5722d2ca06f216c9ba955ef26e3257035e695f360de4f3c00461756affd099cffa1d6dc844c8758523efcf6963316909d9c8f52852c0fa2ddc917e1249411344e52760c677a0bff795d5ff2aaff7ce82d93c4bc3871c4ba30344042783f3f36a1831f4c73641f006281e9f848de0babdb922f66d97bd28a87c4174738bc6a426e62e9120dec08b6a6aacc2879da6e59c664da7306d702e04fd552e35e30a11f577d172870d3a87a8db4c239c646c0d83e1a3e3ee7b86bd7c7151d7b331933dad478acdbf2790e3ee6f5f8e59c9541d4fbf0fe3ed376230fd77da194fbf5481a5a5e21db5d1432c271052d1ad9aab7fffacbbee849a1322f9e010bff3fb97017f35229c6879574c761aeba935059e5c21e3a1d8ea9f045db03400497df8b853056e450ef2cb436b77dd6385361f83c746b86a660ccab5429c2ee27844ec7766cb1d4472233dfcc3e41f5318d660b41c5d0e9bc9389e8abeb63c316bfeb0d91471e0a73a148403a80d9767190425f611e3e1127f3a26a6157b008b331b439804c7ac7217f61d90206d73f2a8092d703bacbedb2f246dd72579d16222064723b2584855851ac5c0dff0d3412fd91d36071646476db20696e5133b841e058330cc3ed0359dfd01e173044bcbbb08fc5f7150af5d62a4850e378c7b65bcf75fdc407e3206de7f98bdee4065262fd8b7b2f2a2429cd4d6033f60c9044afde16b5a9ea2b4eaea35130973b51dd7b9c39ed86b64de030e3e9e23ba68fc34e001d835a9b46cb077da44d0591963e879eae5290fb374778a14f6f2687ebfab2e2afd214a28c793dd7bbcfee1dc9d56410024058bd7896a82b5b26a2f195b482f40d35a35df035712f453f39bf9224acf98d8b7f6a4b7dfaca3f92baf0b131c28057a95ede7b4a8fb96a4240398c021065ae0f643152bb7d22df927a8b5dde1dac7b280043343da58c88ed5f71b364de80900e736d8294d0dfc641c0988e400653563d5ba126ae6bc57b4d90aeebbf7657c61b526898468ca91ee1fe3c6065f2d4415f761fbb9c75216fe69cd637582451c0fc008c62679ef79d03e929c5603ca1e782421a5141f66171609977d03cfb0297a4e88708e26b6634827ade99b880708de370062332aea71ec7773ccf45931d0f6d92cf84d2e1cf017e68d5dd05f7c6cbcf75935210a792633ba2ab74e2525e53be6d0aa8892005101b3854ba2e251b92df717fcbe598502e12a95810873f676e569ebae7918482451cd0d61f5352d1b6f065abf3d14b8f6b3a0aded8f4fa054f4c66d79ee16a326526887d95ffc61fb63336b1da6cbb45ba6a2130a45ec495c4e533847c994ce72d7a75c0cabd8d8ec115a268f552fbe0d7facefc5fdc902af397167607eb76a03b4ac943a58c053bd22452c3279e2f41c44836b2e81b3e9dee137fbb19881c01642b12c51181efa8a645e8daa96a22a0dc19930ce0c8848ccd8ab9b9834e110e5df35c8ed51c456114aefc8a004be834505859e83d1d56e2d90877b8d830e47d36c3d8a539faf31dc69f1435b6dda605de280ab46724455ace3939bc44d3a28edcd9929265099efb1fd6e99f4530b4b697004a1c389cf531c8c90f0b1698c5afb6c4892b1e6596152627366ba8738dc478a66266422d17489acac2dd94672ddfab7dea53c991b2d9a9b8b7352b3d4dd334f924b5c3fdc2eca458f3542663dcd149e06ed65d35c3b36ced65d5ed2e3178ea2cb859553678fcbc2ef736add118c76160b4cd1b2c2d155c5a62178b2518ae6ab83d0ddc84620076ebea191d624aa9398740c7e89bb45356eb0288c79980aca553d649579f71171f8dcb5ce0e4b276ca2b5cdf45ff170ee5dccbdc71db77fbece81b53138b974b4f566047057d7e76a35e72e1d6e8c51b74547088deb77362509e5ad5049798ac25e8acec717c97651559543f3a545809a83c2f01f010708703f1a51c3e58c7b910ef0c4acc64a6f6f8d9b2585274966c093a49109d3d84c33691840ebb93bf86545b43ea47480271568113699cae85c9398191582aae0d523c84ecc02641a912a28ef26e240a676caf946df1d991e2164d8a3228b201766fd5ee98c6bfc34d0263ecde208e27eb05354d1e90b53df44b73e3c3ec7a55066a37225a8eb8a095ddff437b2d9221230f812a7b6b4e93c880fd702bb84fd63cd8a10b642d68952b5071a0e4dd45ebb0bcfd14cf08d045944dc557f23e5c0a076a18738c7776ba1443564ecbe1a0888cc0fb211856c7c27522e8f713984d9956074e9b8f7c214c9e472eb85c3cc26e64286d95bfcc8e20017f9ff31ef8308288e4b8e46fb275d1811eba98c2574d1a2d251f1047917f704a1f042a2fc6c60f8834f9198d9b29264569e002ae209b638d009a5c6fa75334dfd889cadf1e5c91a9c9151c2160bf4e3c98234071392986ec93928b7b0f33fef31367159e8dc7f1caafdf2f760b239d89078ece5e04acb45d3e9aed56e7c7bcf85cfcd653862915aa9d0da6282ec0709c336b5c800f1bb383790f1a69803794300e4dd7dce1c63a86f2d3406090f7c0e32b37fab7daa63c9195bade112e27f844ae174f808f32c469ecd70b35693a96bdf8e1eccd0bed75ff439242b0e7b0af25c2987283c3d79274b9ac10e0b2a12792bc0ca828a61ba78fc6f9ae3bc234624a296b13d4099a8891c2d9da3f93a301f070b9faa0d7bc823d2c1da0246fa96ce7979b0b4aa406edad0d741091eb1ef60b2d61e9a1f894ed20f82af0487d0127245cde657959552ee6cd52b1740ae30b6d197aaab4e67ad7595d96ce5768f04e0683ed9cf14742f878ab59e293ac64836e4540c56710ddbeda8a9652e3c806a8ce89db3c3c0b8b62a81e7217613ae7f9264c2f0d4bf18e1c7454f731248b878b08f8ac289ef56e9486388007060df92e01e1366614a425e4c3660759a087e133dc86af967874ba2b2093cca3c9b8c323585e062facdbb02decf33c9e103dc569d8e4d6e6487b30a60a7e6d1386667830e0d7e3bbd29ca14a86caad7626ec011492becdaa5a94f22879f91ad8bea259e8edfa130cef6daed9cfc2f86538ef745279cd11c64c1c83d0298a3b9ccc4680f86668cded004c17bc44767c5117e07a9c0d79fb668b61a840602d995b7319f574e80bfcbf0bcb9bfdabb4404a01f74284254864e1f40a6712a9317a2f06ccb6b7464e5df79ad5b4f3edfa0b831533a614f7c402f36c28b54bc684c89d97395333383bee600c094d42ec373dac7c26126a5fb5dc6ceec1bd168cf01b5759eee0cbee9cc0f1cdc6c8d5b0ffc69ddd45cfd8b0d2a253e025d6031e93ed45ec0a4475bf5fa70abf857cbc1800de323988ea21a3742835de4ddccb2ab9059c9c3a7a84e5faa7fb1dd8073dbf5a3d04fbab6834817d0b96a4b52b5bbf0d0fd98f070e793eb6f9abb189c7f1d62a138f5db3342d03665c678c8bd0e33935d3a8551ef3269443f80dae5807dc6424e2774d30437e201ab4d7075459f4ed2f6cf4de998a9a9ccf1d62a0ffc0efd6ecd30f5b031eca6557412a0741a841975693fffa9c4e1f772e2a4ed040f683e5d35e77595cd9f914b4181dda151ac4a687e5147603d62b8cfcfd530b013d51c386a66e5ae12c3822cf1273517e75b6bd06691d9041229dc1755ba07c20b324e5c25c950eb317fbab531362b679ea84dca00cee32504277bae11885381b8710a1ad0b21f35502d9b1936058caeea00d353de9a925a99bf3e5f06d51b59f617bad3f8c5604ad3dc3b66638eccdf8ba10217edcda5f2c04c9c8bc61f77a93dbff4d3322d268190cfca3bebeffae918207011fb0315543399dfd4da45039d1895cf742216f20aa8fcbffcc0ea3e9d40e3f1511919c4b82c67050d1a0cee04d4db7b7250303389d78edfe1f064ea6e25a8a7460bb4473ee9ea6578cc9b8d7daf6735832033d104d7640c9c23e9197fdafc505586bab979544c2faa24ff885d5723818ef055c99ae38fea6d0427e581b2c5f3b702d69d01b329b085f8a89031818cbb1df7d5da6ff3d851e7526e1f6ec3b9d2d743f8d59fa812722eaceaa6c61934f7dff07443bd2e3890aca437a813bce4b3a08bd3a61de20a24f1ef7df80492412b5b0ef78b08325d7cf33e9a4bfbea267786a15eccdbd50c556f49fe441d7eebb124dca664d84d2b58a0fad6323220b3fc3673549ea88282fe975f6cd7cae801173b11d091787039832cd9cde4e2e5915b321ab34486d0cfde36a8ab0eac7265365b4845e89ea650fdc0cb85d6dd651d68c37e41fc523bc7a324650476f3938baa6aaada590328f0b82e31a88b7334868a12a6026b85bb32e561d6a36df31cfe8a5179e9113db5cbbdaeba0447422351e54cf6c3046f754cefa62518634660dc7add3bcea176a4481b94ba0c4bd930d3cb1961937fb693485d32d7d7999547550788046b3dcb5a01ab595b56aa53a4ba88d8714458fcd5c883e07ab88340f22f563aeea5075f1845a3b5e01ca84c66857460b2ef66dbc867abd5ef77a9666345246873e46e84ed97f99cdfbba8cfb2075c3db66d83b7502f1b45cc3523163303141cb5979980672d95604d36b22552e836a261de390c2d23f31e62f5a0a02cec4bcf20aee2c00372514e61b37ca2a0242e8cae268f2d5eb7d6ae6820035942156526251e6693c084d07f87fd12d3cf8af2cf476bd5ace35267758a02833b45a7a9edce619db432b61dc10e0103b0f53e630bcf9990d31dd38ec6f54a6b425d60a3ee38f30b445f0f20b9ce511eb5b03784b587de6ae638099af6958e60695513fa78b2d6fbf139cadcbdbea4ca0062c2c4c66e2e39226d3a2320cac539a16c23a2b8610f4a780fd489fe5853e2dc40fd95b37bbf0fa58a9dcccc45cb6836830c5b33f02643b0545270edb0de2453d55d51b3e48e66b53ce0ca0a47e0f26b2adb7d0781aa8fd74a189f13576537afb9286f8dc5d94d19aca23fb97429f94c52b01bc6c9ab30d6a9326db87f303510ddfc0c6775a3b26facfa6315872ed1f60f436c02a83e8c97095fcc066528d06be346c44a2d34b3bd6cee82d2535aaddd3c5d8cf0f6fd89c813916b9a885b01a5a9ccd0645e9603a2b7fdc346f67fd5cd7d5a8cadb984bf8c9f6ea99e4b7c49986624872d3c1962e02b96c576934f6fab96aece0ae8f5acfcb8d256e94f60813f5c3a1bfc8bcf1b377a9e070aa9e4d632ce5db6f64c75097f3e4b49bb37823a4f8eceb6bbc011a1b0a1ef2572ed38873b8b80a5dceead1f4f2e9cbd10a580afef7df3dfbcc6f829e357d3e2ce86ae923f43c74b966b4a3ac2f63a8aabcc9b44737c922fdda8e56ad0468d0159c587ab2948f244c88a7d201e1cd221418c3b982cc1e5577f65f958578ed0f05d9d6ebcab015707c40a7ba2124fc16576b66923c610fc7a0ddf9dfe6903464516d4ed10a0a460224955fe35289f9a489332546abd6e3bd1ffd0fc5f79fb0a04e131f50d378909cdbf5ac2a2b5cca44018a1cdbce303da9fa117846fc90e2ebdad135a7af3d666c4c64b09bf2ede598a9f71ca86061f647f0e6669129f2036769f645557b75b1b7a2e4a183cde04e93ab4b9e63021f738f221bb22357a289b64326000496309e292bb73b7825c8db52289a7df90baa00b4b5383eaefcdab4a786e7cdd8ecac309b54adab59f5510d47fb91e17ea4f7a64e3b75a40bbe89322b6f082508cfddef1a62f166240705891807de8147eef2d1fa2a5cf67b4fe0f7a62d52e20e12cec90bde92014bf677aea95fce301ad6448ebd1af5be7f1877f98fbcc9cfa11a739f09a870fa23fab6c1396a7ce2aa69750cc47f8050ae864f53b04e679eec0b2b8ae3c5415ecdb1304f1aec48f84a8023c99d90ec760dd7ac0119ed524f07547d27b5aa7f051e0839ba028976d22d35e177f24d9d33b6fba8a42f4c8e458f7e6119f14f384361881d4eef7cc35c185eabc7ca33c6a3426c20be47509f06332197471f268ee862a1ccfdd201c2e3d51eb7be5158597a41a8f0084e0fd3bafb34c94e030d0cc2d06b7ef25e939951a784da7e035c1b52ca9ed15a31a52f7c3af1deced6067dc9c5e7cc9afda9597fcfe821bebbe8f0a2e379cb736de4f1e859b45d42e56eb3448389a0c1b9682de2f4d04ee53c41607510752422633b2d0c254b5fd4d651db02b8591673b75b64b205d14a3be571f26011e1cebceb97defa9da9ba787f2620a42d12c2396fd4d06e17caa78a27f8f4aec35c2ca80c5a71050965bed2e5058490dffefe0e622bab9a99ea38fcb7dbccd86c425e0004796052e33b02528ed70d51214134c9a5944ca52399dfed9654f22860ecd880787c2089f0787726dd3fe7c59155abd5579124edab81b24bf03b60d674c0ce3c1b00826640d4c4f8c763b48f1f35bca6d6fd4cce27ededf46125affe8de7ec9502c6e98206aad2127d22b9f6a890a796dc18523327383b588c118fa8c93c29b47c968a7dc87178f72d879c35aa48d5893dfec6c3324dc3c758db4d91bf9a6d42fb9f00483bd6b9fb8309d09d824c3105247c27a737796ae51643b7b1fc44282055ae7cc6787b383d645ed8d0429f611d275a93e25ea1ace341d9b746843a110bad09c0dba4fd22dbea4765b7d499fee6baa657d9e61c2eb883ede9489e4f97bb2737e3016c777c4f6aaad1be9e53f912e79f449d98bc53c8f14cb5b58c8a3eb460538b1f6ccd4641685586f7181aaf05c2d7811f4cf8750db17dff4726737eb42bed1503ae8d4914e7d4a02422f4a1decfb1b74b1ce1ffdd4a3e006b44690f367289559a74fde26dd99ca440d0f3b8209065cc2f6723fb736fd80d6c3bba0b9eac8c29765825aa29b8bbf7687d945fd922b5bb94d92ddeb90a8c8cf85c149c5f39a62627f70892270ecfa59ea7c100199ad3004651d439cc5104887a6dca8261f5ab96e6633617ddacd3d7272c9154de4a0571b8fe05d2f8f7d46a914108ebcff9c2c306f567c726c97d032e12d36e76f30aa5641d47a25f759691a83e10b6397bf9f3550af58144935c8dafc83f3eae8af926997fdc91ddeca8dc2eb6d538ddf9d934ca7c6682cad96520a0ceda972327e5c0ccdde4d677895ce17058e4e42451e933173d0b98b647ca44c5ebe5757e3b7ce48c6771829cc55f084d10aaa2f2a8cb63c993430f0519762ebc37dc6c3c5b97abb88d6f7073505ae3312e2418b60c247c860a79c64e9f69f6111ee26a05873681ebe37f411e4d09f98d09a21c7b225d106f5d12bc8b5c7cbada02b72ab4f890a9d35b741a25b40b65bd5a98ab05d6f219de88af277d4612893cdd821b00f48a4c45f9087e2f3ab83dd31e6b26e8f470e9cad9e98eb76a7a5947a5a11a233668b5fd3ee9e885703cea6b70d2dfaefafff641d28647462b338148c249a9b0a97ef2cca4e2b7207e422857d592d12143e8e9bf278273471d70a8b6c163da017ed1132a46daec9d6ff67f460221c690c26be854e92d3cf10eb194087e76ac3910c165561caf9726dd3a1ba7d9528bed714a123352db157c2e9233ccea33dd2e12dd70c29b61f97c6ac6a48b978cdddeada68d60e53825d9ce1f77a373835e726f06a34c5f4454ab101d4853bff790fade634a626860e37c83186833a0f495fb4fb3b7c23edfb6f5216ac30ecadd04afd8e24152c7adbf902194aa154bde07f9074e685d569f634a1f361d6fe4f2eabab2d78f5b65c14d31e94e6f287bd85bdf63c407392e952afe8ad01c162fb6afcfa09cbe7bbade1fc808c1063d83d60fbd4073794b47fc47849fb02e4502507e82513b0fd18a8b3b8a256206ad0fbd04b4c3b6eeab9444c60361ae4f2c3c6363ed76a3b7c0b3a41649280e427fc30bab236a3c66cc3565fa3f707cb50fa907c12b1bf42e1bb8d3df571f08ffe6d8f492a9bf33950186a9c782807a775f931c7e7c7775e1dad2106e6f552dd58394e55b33b1bb41ea2e9721837768cba06a942f423abf56b5071cbe3e7d9c1aef8459e8a0866d40f6fa75ddaeaf5443c2cab4f9941eede51732df65ca64a492d471d89b4a96fc0ea321d936fd8df4da8bb17538891ec5f12c904cb64a35c759f498520f1f8e572b3c03c4dbeeb0cbf55c67c4fb1f9d295596cfc8e3fe3673a57218672d2841b308995d00a63e4ebd300a3ab7a04508a90f25758ae508063f3de79db9a1f106a0a674d6c6c67d7e710dd6f5d4144e4c1aa1eeb13a8122834e72cfe600ce71265a0ea2bed8e50aa1e3f7788e76aa1f5c9e88a6beabf369c4ab9ebe18eeba235dc7ee0958a05419b67b80d11004f9f383e68ef80efb8083392df2b57068c9ad7add0189576d58cb7a9bd9a71924fca54802a1cb5b71ab954af777b1a2e633c8c6946f25a0e15c86482d1c9d4a3081f6802c495fb10c33eff8d15f3e7de018499c25f1cb59a100bd83b5176a847e89c8361baeb274bc6164540653ffe1fe79f79d2804d9da016e19f13c61e22a420632b509ba16f10e047cc2cba10a5f33df35c2b7d0cabc14d1919d1a8edb70626e3d75016dbf1cdf6b44c8de5a2a533d83fa3ba82389e2c367bf9ab9195a3082b287540a3fa2dac73f8143dee40cb7df83c667b8eadd99db832c7820e4465c34cefe5b07f09851771b885d783c16930bd1feef8d43ee0efe4a15f61995b411561507b130d0fc4d801a2962647fad2763ea23ba1c843df3bc2287057697abdf5980381b3d97494bd12004fe14111e165b1e67ee7a71f238ad25dfe9e179124da68e4b380de3306d1a8304eba27657328222ca036bd7e9e122c24e1125371062a692ec1a9bbce0f247e1145be3a7ee83b97aabab3ba7f670d4a0644f51b4ab6c32015d006fe0b05263fdb7902ed1aa6bcaf149bd0dba23813f73e260642fccb90ebc3f953b7fa268deac845a399f496c20e2d46aeb623ee0df3e3dce91e0f9f2a6f87c93bf30a11cf15579512ef49a5cd2596704fe7550db936b88ddfc652d38e4fdec031d3ea4a2918dd6cb6e49544423083069bfeb73ab2f645b5c729eac9e31573d21c5b68bb395ec05ed7551be9f57139a52e5fb3bf19c802a37ade8c294d7b8de9d138cf2e27688816df9b168ccb0a612001f26a0ac3886afa6e924d5cd0895d605e1019d45934a8d1e6c1772b60f1fcfed4dc8d2df5ec2f34b057171449459f892217cec1c318e8e2952b0146c7e681fa7aa4de60bbd4db1a254b61c26dce7929bc07a36db94cf92c50c987635775ec81e464027bc5ca764d264d4d1fe43129f7c0b8b8345aa5e2abb433db8b864ce6370609377dd84e22c164c683a46555f62049e0e0d78846a4eb6b488dcbd68b03728aacc208cfcdd93c20b3a311f4b43cc649ce72f9734aa68f46226ab5d2cee0be539149e12969eddcad6e0bea1de2c17cbf270aa3aea144ccab86f2dc190c7357cf52bb7530f02a8e4ef913f552f76ecca8ec00c1d8ad10eb5722945b7d992ab21741334fa1ac139755b295bd487190b1d05295a3d7582fca6a2fac4f2ce7a2f4e60dfba3f2e4ef0f9fc0b2126f201d1d693f737d9eaa905cc65e9a58f0c378795935dac722360b6156a37087742429747569c8e7861f9c24bd1e4b1c7a3c894f80ccffb41827e7cd0ca59ff3da23960f056f215d394153be1099a9c5bd674bb8c39f1f899497bbe71f2becf09b3146bb3d670dbf2544da5740025b7e5fb22fac15cbce08b0ec2e15701bbb5fdd12933736bbecd38babcc302714fef92f7bef54f435c718ef1cca1467d29fe2b5d68fb9a04f5fbe1336c21eebcdeaecb81280903c9d7c41e0fd4e734e63cf6101f2a66a45497d8ff694ee0d3bd3178fd96fec72cc1459334d75c116f61cf28645517be54cf664b5b6afd479dd045c1f732bb1c1f52a0a3ffb6fa6b4aa8c1941a6128fbc5aa6af8368769cf38e2cbc5f25955677c01783dcfbbfb55a7c796e44ead916f3777b0eb38a84b8a230d6d5121bf3ec44fda1bb248d44fee7d4915f878ff08c83cd7da7e06e162fbf46b0c182e63ebf0828a4be548afd458e5ec5b6c5efa30bd82e7cca0a32130818c70df9fc6df1085c1a5b4e4f6cec41573a8500fe7493325474833c16452d188e3763e352e8afbb0a8ee83f1cdae41b9d86641df4dde05ecaa5f6a74c855b9f971cd9b157e9eb69916fb3b264c9ae9e9135d3abae92744a03f591b6d7e42cf7bcb74d18677ec83ba2009073f52e1c4bb633ed34f708c8ba3d88e2f948a3b8db1c166044dc5ad66ba5cad92e413ff48a63de97acdf38e8c3a614fd0d14162db0e76e5e2c9a1479293561e98fdf3ed63044ca67e23921a248e5487d5111013f7ee5d131f1847007e7a0f48f0f09e37576d9d908f61c5c0bcd92071825fd7efb55ed25a19704bff80968b482fe1d42d3b4f6a322bf63c3d864b9714ae4f779be216e7785ce8748b1abc401e04b1d545024412af35d2d2535835cc1efaf04b44ff8e996c9d0ffc9bf991f7238a32e03c60cb8df19d75d080ab6eef3c7b28b5f687574074fb35f019e0c98a1c5c01cccfaef28ff4cb21a81ece2d84439bfda4723a7393d1298224a469c81d5b845d5ee1c63b731f31050152070f777d6049f8919adf52b2851c54930d2e16ecbe9ea2e227e5a85db962eb161e01cf473236fdb2d3c79256ff749ac8658f22c7ba211242f025fb38dcca7ab6ccc8badd510426648d82d080ddab2f0a72ea33f9c3ba51a689ae5b6ec57f1da6bd17de03f1df52d85bb88bd14f58a45447b162a2be82484cde45fb3258508b9c8ff9e9b74e2c70997109908edce5e75aa8c23758885b0f70543162b251f2c980a928f1ae80fdc2c615c81a4523540e31558d43188a68fc237cda4850c845ee7b73765f035d6bd3e09b1f6b20fd444970f51e74bfffeac08542379e66137e7866b0c2802212bd603048bc27ac208035b34c24facb873137575435953f4f0d22c90675551a83ef795de0642764da81ae6f1e8b42bfce5787a34fedb2aae4c6dd9730d5d96fa40d42cc674e8b1caa3ac1a0df6ee5411cdb123131ceceacfcccc5ba5ee24ab52088576102dba7a1c9cdc5103bd8df767d3377462c94a474dd546e6cd8e82c5063d068046efd05c757c54b8984c548a50f8aa5843680a9046a4f6b27860c5815471b82d7403d9717125c2ba25e3ba5d6e2a4a27a57a1368d8103bb87adf2dbdb3f1de43becb97ff9a0b558275b1689e4dea7eb063f0a1cbbb06386decf76f40ba2921ff80725e66746d448147a7bd27c74751dfe6c7c266704a559ee753333ada300d3d79e7995f616e470fc6144d261c78f0e9e599dc3beb0ebc517b7e968985719234ba6c468c09f51c1684445d8af3552d12305b259a034bddbb8766a9d87f6483be718a75530ea503ced351694aa357fff59c592a64188aea4374b0f08669091a2ebd5ecc102ead438a88679f756feb0070863b49a6a7285c98f171e363cd1c72b910e506932e6ca39575436216a9b4ee076e93367dd28a6cd3396770393b0b0c72f3fe6fea2820f11e3c53c7e4d6d72af3af6b7a4c07e09aaf806d772639484bcd11be6a8710ed7f353aff1bc9515f3ca56508ef444c742acc85124dc915fff8bce8adeba88f88a1d5acc05b2effc44df0d9ff453be464a2017b553a3ae50abe578ba1fe1a93c230055770ba2413d9abb530b481ce47cb4ec6b049fbd532c2af1145d83e451ff30a0040d31f5404914826242b79deac16bca2ba2740d8316abd841a225e89480f8f745acba4be1bc53c93f93a5952965940b6fd7d2fc6761442c96a0ba4f168c826d026ba18534a863fce0f06202f26c6714bdb9ddfa88341795e33fd692feda1b69ba2937e4f2e81301aa9c824fe2b71aa7ce916de17b1e102a3b8ad9ae9525b2de816d88c7372d690abd20e8a8329b98ae8eb0dac133e3562dd94333a5b3265fdca972b2d03f1eb07b98b82cfc4c75b75767e813eb0909b80d46f8bde416d599aea468aff9844fdde1b8ea4425f7659102ba41a7b8ff1982af8e0662f1cdd97fd1aab28d6c8b09d84805aec872e2f44c80cacfbc22b4c398e193ea96cb81a3a240aafe737928cf00a276afe1543987b4c181e1c63f2bd7dc1b3580de512398a8ffc18e4dea29818a633a8e1b928fe250f45a224212efeb13bc46b0d81848d09c5998d113869eb41348f945f117de06ac799136ab6c1e85d5933bc4c3941dfddcdc86f01eaf65cb5b057b20412d60a91f150319b4fb2b506daccad709a26982cb59c2fee48b39c97bde0238983f873274a0da0f00c82a71a63c84e8d47dad0840f51dae3dedd5a51214496c3805e5d4d571e2d33825a3a31fbe19b07753852fa6f56fd66ebe02f214782deaaf70d6d83ded485b838071e418f02ff156e12e6fcee6e2e4be1732b03bb32ea542ebfbb2c6be7d48a2dc0848c6f78cad50e3d9148aadaca82e78d35edb2c4e5533b53110ccce6f74b50c490cbcfbfb24249ef90844494bf915728ab5a7f4fba4c8a9ac99695c23e0907c4ea8b47db883ba3703548609d6cf540d1e0441ff344245c6b1bec9d5de720a91bcbd3543cb725b617f445285bf543e50d75f1aec8e9aa4208bc9c7f32c78e04deffd5d53b43afb0984a4eca0290fd3b8d9c72f0626440a6d618341b08d571d7aeb9eb8e2255a5d2a34db5f515a60a6f2ad250c9def7834265a1a112b68460596d2918a8c188d3f2d3fc6660efd7a95ebf9498c58360c7a6c2db354df9262eb1ae38112f9b8866faecb59f445f35211cc71c7291f428a5b6233de47658bf177b08e727939ab55a676a61cfdd573dde6ed0337c7fef44cd2ada00e07d1802eb492b1672285ddd15ca5d32a7eca976d04fc0975e079f13d50d9b777714416c9e20cdce46a60a41694a9d13b338d1b3b26fe4936b407a2b9a3f15894634b1a7fdf7634875a9bd6edf21421c2908d153a7afd5b9b36bb59191f3d761769643ad813cb03d9e327caf671b77a5caaa201204a62ae4a169423f2f318987c53b0357284e1758be24c00b271a97dbcbf0a7376a1ffaec104061156c556ccd80e56f542303cebb47c88f2875949be4b7aecb3e50992dc2cf9ac0a3528e38e36a9bd2b28224d3fe1f49267fd113dbf5303d8a3cf2c6a3c1b3452e6265603f78cd29a26b93edb91477392cb1ebb417f33cfba7a0360c2387acb4d73fa323e32c949df7aa868e44f9b20a80fbafa9dd7088c9eb1e75071c96c77c1aaae9815dcc5ecc12c01aacce239b968e09a7b73134ab8b6bd335053c89b5d8e46c75fcd588edcbeee96ae0870d86983babdeb98f8902ace8f3ee88cfb12d26a60e4e65c8332776e671bf377e548a315a2fff1b390d27973ca07fc8f4508068cf897966bbac3eec68c633b078459c64b564275fd3be5c3fd5a3a62e9ed4c2c4e385f0fa46002a10be874cc1a1d60f99a883a79b567a9d98413afcda64c2440419726def6af1b20adbb823d3015d2e1e4882b9f94b30071bce28061f2b3a671788235b6b35e7e5c44686a5c1c9866ea11995e3375c77884631bfd5018f3a848eedd85964b978896e0e55745d6d6464b75cdec7252e519f1a48913fbe2c114e20fac50b26551196fbc90b6feb8d8aae59e38dc229953cdf9be2fb2442b1a0f22633881cd148675aa2b0c780a4b496fc627af3ddbe0fefbc54a0c677b1bc66591f6327c1d99cbe165dbd6f5535dda0ca12e24552f0954fcfd0dc7498e1946b062e9a83408458325e6de3d7ca3dd063948e5620fde2b78c4e22ac1770dda7858797be526e70087e7ad452667ad24d26125da8f8fa480c681b5ee7b22e63de9ad445ad0f650a950164d9cc6c83fd07af88ece40fd3edee10021e4987e767bec9b647ea7c351769f99c8808a8d2396dcd540b8f9f742f8f283dfe99d35c8e5da41d4fe19cb42fe824642f27977ff84241a26e67459a7e4ec9761fedde2cb423e74432b6410b3d355540e3389d7c1e100bad2ec5ef06e06eaba6a8ec5d3a665d55b06aa5962c01499edbf9d01ec384576f03457ecc757011c1354036859a699ea54e97f444e38e5824828daa0d5976a236fe1560fc04da84e3c096c75a8b31f4a787f97216b7cc8bbf5dfe5c9409365bf40be2370d59e1e36badd97a18f56be80f95f8893787f703f0b47020d46e77775e7b536b7cb5da03d1834193b1c173538c489ddd7a571e32dc0848a2e6f6e2f2ff27f520c4cc2eb3a4ad8459cde5defe164d167d4079a57d53ebb4e995e29419d0cbb8f8b418dc478ac561c8c84ef217a60436a3e2eac33a0fcb214c7cd89ea278bf70541e22f47d0021194991092972a95ef206ca8205f1abc1c3717e8b849a54a25530073d1da6189df07f6adeb299fd66e5bb8b3dc9f114a4106ad11fbf1d72ba838bf9e410247500b128f14df0b53ed8cda2b2d0c43e5c3345d0fe6d3be320dc7b6022131a3d29762703ed53f93ba5af0b6a16767dc03851e0ff98ffd996d74fa02d489e9e3654bea5cfc3941871d69b271ee2bdcfcca488245991a5ee037a7cbb0ddaf291c491b27f5b9fa24bbd52234a4aac176bfd5610989562d4c20f4a1378609937fcc799a58f9d98d7c5cd6b8ac3a842ad53560faa882c818613840d1ae702a0417e5da9f6b1e279da6d87ecd383630b1c60bcf26683c7c3418fa93277fc17c590c83b8fea470aea435ec9dcb2a0e41d94bebb6e66dbc6b5005db2fd920e61a2eb1e62757db5d2120265ff0ae7d63675e66b9e5f1a28d6052d95f408385c26bc18dc16c269e63514098684454901f6dd15bbd27278c590828cc3f4a11c83af8da0ef35aa11c5d5d69678d56dbfa4cf8110d7a1ffc5513657fe6840cd65094c7c7a58cf4e52c5780fd12493cf6b659332523936d058306f7a2a7918fb03d6ebf204ad1580885a9685cc2a5565ae8ed3d65131f294bc082181d1deebb600b64728af989c7f387ef3ee1c5b4cf5f98e159ac66316fc294453473ff4a1dbb3d899514956e75bdb2d4ff2e440b52f127692c20347b8a7219423217f0cb5165e52e643063847bf4de91e23fe921a39037d874ee4a8087c4a6bca8554ea1cc4d59ad3c5d7250a4c3d365b0839c0674a067d16bb0126eaff6780af66a746096dca0e1314f517f9dfba1f5c80e56ccb509273b6963bb4d7c95a4e8ea4074e6c73a26d595a09992659c9afc513ccee69b70a0234c1e71a1b33a293aa54272255b41d5ce722be500db65979840981cfdfc4d9f1417b5d7453cbc3d514c8af571a2bb7e3a1fe136ffeaaa611da4d824f943647a899a7efb14b4652d8fe86a17554df36edbae74141e0064b91797ee1e1db0307b7abdfd41421de0a2920b28379a8a704cbe920a2a33c81bf15b4ad53aaea724f50e03deeb7b963a5972a7c0354628b93b2339389869fcb253fb5ae600597e940c867ffd7038b7780b44ead4869dfccac3844ecc472450068b4cffc1301ec238d1a9b5f313ab0a44858d0623013c9e678db55ffdcfe19c8bc9cd98f01e18bba9663ec4e93ed5058161eab7cd31d1f06e47aaa2a325906d29126992fa99be222b56767e73f8657ef43e6466b3a4812cb62da93c374c48f75b7024118435a2893e40bc2c02ec077546a513c4fe4c8ae5a2b220ccbfe16c69a69e5fc01c9fd3374ecd9fc85bc2985e88748299dd3c7560bae5fde6c193782417b088edd9e951d4bf27f936eeea719af527695b726e10c3678015f0b47a5f4417baaf7d796eab04482503d7decf08bf91bc9e630dfa78ef6b25cb4d940f2832022893b772cf7afcc51c13da60f10360a79f565a75e1c3fe41e28af467543fb0eba6d26e2ba6ae5da63ed443fa3e70b6a19f1526d4c3be10dc50233ba7ad308757b9e2ca5222507e0c112e05a43a981ead077096f0b6f22c294e92e67186e0c9a09685686cbc0687caf127af1935cc28de0883509a418f5eeccc125343df6354a549e3c3a2f047e6a1af3ebf9e65d36cff6e617c1090dbb215fd346fc7ae2f3902415150c22712d470b5f9dd349db59063599da10f1154072714b16ab62bab1e28324cfcadeb9f221072535a45c5be3ddc46bf5b9fd6d84e2c3b9a5f46b9ce64ffe2a408d7343d1fea4b6d98a48323a192e6ca24fee4557fd04915cace9ba739b7908601f8da916b415a901cb230e3d22aa6e62eb8d43c1bd10ab50fce9da524efca3952ac73aedcdff37d450156e58192889913da1fe3e09acc32effc7d494224964136b9779be61dcbf19319325ed6191990b6cb884cb468efab27ea218b05fa4b74384a29c65fbf443bc062adb06e523bbe070cbd4badc7153b1d8e1251f02728f4546c90d320e3eead74f558c628464d419ebca65649f7337ae4c75134fc89ce0787685edb9938c7c5b2c1307c577410a8d93db9e9d7a40f20634760ade7edf241b6d3d8c7cc210e93820086fa18e7948c2c7c65b04e06f33aae66dc929261bd7f3190ef2540693c225bb39be0f9042bfe7dc466f19c4f090604e91202ecbddfb10422b5abca4abbeeb47a13d1333765fd62c3a1c2b349e00a56ae376b32d1f9593085eb1dcb6103749e5190e31694262260f749c0fcfe75f0d475644cd8d012e8c145a1b736321ab61aa77a256f576c25330d79cafaaf9ed4226b097a83a1652e7e5996f8282083bbeb8e74310890fbef2f8a0bc6070f6cf8ae33092aabc3e146a2b33b6d5142c2fde5d138c0fe28659f4f6511010baa58ddeccb1eadeb4c489be2b9caf5239226f57a6e2eb01a2d4dbfa7a6ba23cfa6f9294774068b6cbab489093ab4e1c8a0f0b87042526b7dab44ebedb4eedc178a0b09851036b154992f1b83a3439850b26b5d1ecd8d39788fd028111e763722ead9934f18c63b22faea37cb27e4ad216f742748945de6b755309949b69e98189b3676865a157c4f59583d6ae8a10cdea6d2de4e79b07713d85bbebe16756c0647014d308d76001358d3cd59c724d26cc9314c0415f61c1703034c4849ef7a3bbb8032b996a2cedebfe7a07f88379a8dfb139504366d5090b1ad1554c6c0e24e5df754695147c772aa86ef8309f3e3a2800029771e19d90bbd0b799aa9e4e635f8715b423aca5ea43b74dbc363afab052d479f11175c98bb7c44c1e014e612a760b6de303ea132ae0ccd18cf5f04073392ecc47351fbdc710febceb1cd862324e1f6edd4bacc240865db6755ce757eb4993cecdc854b19dcaff75789aa3633f1f32ec8cf4b1c33f7a6b3e11bc60b9c935657553ce7a303a2733abad233be90aa7e6209776e3bd6c08f2ae5490d895179a435a251ea39933e76bd5fbb97b6bfe1e3d24c4f9e369c097a4cf6c07994e1986933c7d543ea17075b32e7f7e05d6bd3e0f7af7d8d415b51dd56daad743fb000cfb7d82cc46cf5e398e3534aada0c82152586b87ceb2265cd6edb7e3602e570457aa3daca42ff78895b2d3ca81c6043c4780f4bceb787f91bf36e8802190bce75ced8c9395ee01df8459e3184231bb46236c257c5bf4b687450feae726ea16234f76be398c676b6f476d28c1ec0fb0a99a4af24d2620e83343b6850dc268c50c8084d4a0266982cfbe55918d955af9db869ca5d26ce8155cd6a0e7d62dee85320f29581671473b1cb288575ad9c5c4b5d906b6d1e29e9d320be5544a02d82551080fccc675805d4641fefb0df481bb7e145cf644d07a0d976d32611a0175fcdbeb2622162dba3e7b933f0e6be897852308c9474ed9b9477a3116d16b2b733f56b6d47a5a4c673ba5f2a29f8254df437bbff41f5b620c79238799dcbf305ebcafca353c1db59f39ba92efb4dae7985d5a461bcff5f60cdd2dcd52b799ad124e3f36ccec0222d70b3f0d910afc6dd116763cdd295465b51e021110fd55220b10bc2c9280258bb90a6ff72d0232066f6406960b25a078b90f3737946af47fa18be988a73b79603c98fdc87edea224a85ea9ba172db0260dcb2fcc852aea14a1662286ee436f84ae7446b51d87d5d418208a425896713321a619399b81b92e41760f48055dbfe498aeda10549a51f81a61760c45379f503445c14bc81c03aedbe0327cbc6744c5ba5e9495abb9db3351df7033391ae2427e9ebb99ab9d104e3632e0f8fd8488693010887ffed4be7660943affde6502f04a85f5067f4ec383b90d9b1b550a38804b70c9fc66281d7bbfd7e84aa5b6ec209b87d5f57c424ea168469198a9af64bd0ba87bb7ee2502f5e82108b47db81f00a6341a399441d86e0b0cf4c8f448c1d1a4bfb9f4ef7724d519509e6c3b8ab742387e96d0190389cbb3c7d18107ec50d5783528e7771ba01ee27c3293c247af48e1457cd9d4ad3ad9083251303a1ebb5f8cca7d3fae298d4d79c47dad0b94182be90bb8d931791192792508800a590b7ef685bb79023b30aad4d8d5cb5f205e25d9697739a20b9732fadbd3253a97f970de979c6bccd85d6e60681e4e4aff152e85209476f92a2dd58cb95f09f6e3dd6dfb772b590c1196adb88e02952b55fdfe2076b8a651e312e8c156edb3bdc1868388e1e52dca1c8da9708e5ed752c7375d08941f6047961fd2f6b1a6e0b7dcbee39fd15401e54110954aebd9bd71f404a7ac37a1448dde5e4e8df4fa2b0fda95668e7577986867cfe9617da8d8aff83493533fc94a287d287a1371730e1b064b9f00640cdc0259173bed404c2a121ee93636981356f375a33c66f0f59f90c58a81563cdd70ae5d86f80e94d064b3bf84d8f8cca56c6b39a2a883580e9422a6d406fdf382b4ebdf4352a4fc5e899eb4e4122d41a99074479efac6c3c59f3498aa978aedba59468c1edd37205f40930ca12ec11071a92378f1ae6a95436974c93e3b6d7652e32e58bbe7cb38d0267eff50e5f23942d405d2694eeb999437c37fa029fb564506cf8554b07e7ecb2196f2acfa97fa5ac3c8b4540b219eff4aeb5df3e447919733da72ac35ad6bb46cddd34399ab1bb32b11bcd6f957c6d334b95c372c0a59fa40ebd82f780bd677603c98f9b84d402e59d69a3a8894955933348c5f53b926333e84ab92a76cccc0372a72be83f1cb19ce458f196fd1bd165bd6574e973ebe88fa620908883a9a015f550c74fa64cb58e32cb6e39de3f885083263162a030e1303658c47a69ecaca5787ed8bfef40b5cafc2bbf9acf3901555be81c0ba6349273b6ccb24b53a1d98b7a530405aa655c2b35e7dda97b3fd47160af9a2791a08cb2a89a0cc989c907f0add32794083cfa91b6f09a0356bcad471b9f5f14726eb20cfea79bd81ed8bb2cd865f03bc4db7087a83927bf7bcf206c188413aad56e8d96eb1917315838986c36560441c96b739c433db18f66c94954a64b81233ec4f5efe9dc07a973c5a78c9a55bba680ab1423717811cd02b3400108875769336808782a1fbdcd7b50780df5f866a6976ba51bbaed863558c65bd824ed78e5bba46d9919d450b4471c051d31362b97c612e36eda9f837a5df04151a1d8dc3f519aefe83a33bc366d6471031fec66c83e1976cf161889eabe56cd6357c6ffa6aebc6010c937fc0ee1d3927ca858ac10158ec0dc24e514ca58ccbddf58d8e3852852d2bf081f46823c0a4cc8b1a149133592fc600e179d2de65f3b180156a1c997f71a1f2bef4b8e241db77bd94d617e27dbaac4f9c39c66edcc288d1e298718451cad79f1ed90ca1a16205dc0c892c33b3351112b83b0554306467ce860cb9caa84bd1e0124ce6f1471cfd4a1e4320d74f7881de2f4c23397b4228447abcb4455c6b9affbe46637909fa4bccc531472e8985dbcf33649a458b0e0c2f3e3dd9aa8cf0e57fd40ed0488838098fb2fe0a9341efb091d6f8f22f289c61a0e80b096ca5d3fa1178eb68b87f87f81a273fec3e9a0ac2f1948151cc202a28625213b0a87854af2bceb7f626548064e08800ea3ebcd2a39736efa497591faa70c083f8c8c2d62d1d5b5223798b697c06799ef3e18663ad5e6127b1b65e013f97e9b5702ff93f184660f5914e6f683c7646759ef94c19a1be46a7c436550c04c58e59a2cfec4f3b8406092eb37b06017d9750441a44844b2732e29bbfb7103860c12cad468269a293ad4d7d4af0054aa5ab46217f5f8f6eb491b9ecb568b84b120f61183d7ef428cc6d9c0b6bcf92eeee5f9e71cf2e318ba5073a6f07419d1eaa1875bda83abbf30a0a47748ca1d58abc47be2c3b6aee48b517b88a6da496fb7f95f2cfe93baeb1460aacd9f58e685ee2155e359f513e874b1fce174e27dc0c10a3b17a40bcf9264832760bdba41497fba0ab7ef4760d23463c494c82bccb31d347ebcb27672a79f619accc8770e68adc0fbed171cf792fa4b22c36eed814881b4af5a903b7fc9e00347f5ee4ea1077f59f3f4bda7ccc7fc586cdcc2f89be01aeaf6ee8265a51cfea2b355142a44a789109cbd971bea7b416d7cb9e10a4c63ef16a3e5c3a1e86e7ecf2c67cddfb3eaff3e07f7f395ee352f202fc973a17b2feaa4a85a291c20af9ceb3f154f819e34bea929d6e62e8a56c1fee54ce0e842de08601aea86e278b3d3ac404249152a116089586e17d504c779a204a5fb8170d54cc0b3102878ef4faccfc55bdd0c7170a8c6d299af98b4f7697a75ad82cd07aa5c28531c064ddabcc7052bff2274fdb0c67436723070892eed93252af523bf52fff07bac9bde604d606b10aeecdb517a427a08592d798525ee098643a1e0822adb34d0c27762fd75ba7ed792be3e606798e832902f353cf9d1020b13f26eeec222939e63f2fcff2240a9275529af1481d1b97e6244495a67624eaf3f5399d686198b52c6a4b00c5f40e76cfefa71c8889f8a1ddcf7d41a5d51c66faa3b31c12c9aa5ff1587659a498d0055eef742ce12c86e2313be8bcfd52f8dcb2a31c86af9085ddac1d5a0765d721154df0de7eb70e82c08000d5a5f09f228495bd7993ed25b97be5d20c93e07bdd821fb32dbd66cdc0528e6a885c2ea5a3ff2755bf7e11f2291a912241ce78bd15c38ff62e3bcd251ab444ce5e688f6e86bd440cf7ca980b64b3d9f53ce373f06ff56716c79bfcb5230ff84dc0e50511e407e0a4519214b04ec40e82e264b0abf01ffe37f9f7208d18d62c7dfec52363e0087b6be7a88e08afa1c19ccc7134203dbfb4ab3665fbb7bcc59d7a1cbd6b5d91707da41bf4fcf8820605434cfd1cd876ad55feb8d81636a04343ede4cbbc3c5921be8a2649fc578d13df475ca9e9d674f5b16ddf9ca66662a27137f60f1955420666ed950d1534a4b095b8e1ee57004272121196b9e7cdd11ca538312ff52ec478b61ef74f37e007bc0538de4e6ecc973fe8553c356e8c62199cc27717e10557fb479ddfc4a23a09e7e0294d63403cd478c42595fbf8305fa759114bb9b2158c40e9fe636ca2698f00665917638a88194ac006687989910ae2106917b99b58a344a66445da07b0d443e63de32acd9002e00dbcbbb1890ed48c57600394dc65ddf1e9d3635a9f2b43cb16f1bef20f5982570311fb06563c4056f4029e0a056cdb7c2e6c706f8dd24b80bb8f101785ea21ca68d581b1df098078e8908251101491c7468d9c85483c811a1e5996a6b76d29591979e1fd10df361758a34a830d6afe4f485477db75edf25e66d4abb06e18618e619aaf085797ff3de650fce248b794708ae39a1d034325bf772eff7281cc32e9a16f68b3290f3ea64914cdb26f86630f936ef4582f567861134ce720466dae369eb2dca45d9bdcd07ce8a1804e753d4154b9bde636e242d150ef682a1f3ff6e53868bcd1d614d7facb004759f3104672be521103ecd5a8a0a0ca1ca5d77372219aa17d590e3f9169bba995e6d3006d912ddc7d791f27db89b07e6a566f75f8bc442fec866c6d649ff01b24bf878046d2204282e1094789195595e4440f452f21fca6868dde3facc6a6abec15cec20c5b851ffe3202f97276b1aa1e242df510438bc90dd2425075c4e6d5779cd1533c2b71fa2d65dcbcd35b2f2b59218e13b8ae31bfca0e0ecf5fe84723c9f0fd9033002772cc2148d0389a57be10442f0457c37071601a9517dc1c9b8b517fc70e0c2036cbfe7c9174e2fa22f6dcc94372fa30e5c95578e288e4d3cce1a1802be1e5c278b5d76b3c0462daaea4caeb4cc2b3c896c63f28ddfb9c1e2987f60a2e46ce4605538253b91e394e5fac3a1a0b6ffc18bc3f4f91c2889ab22efc9ddf23b064ca2cc80b681197e1c1cc16b4d2544041339f9452ba3710d454ac0b1821c8c276a66100d2ad712f2bf3de13df568b211a98097ee0fff3337f408cd6db4dd9c5c86290a653f43d2fd88db0284006123877d8f0efc7a010abb91f1ef0ebe0714814fee290887018b4e57ac21cf785be4ea8058b98675ed9b8f2cfdf5cb5bffa38ee5b832feaaff60e263096e58257604dd4214f23272fc594ed60907c0953f8a9264111705c7604baa4671bd6d30253b5684bc361093da060184549eddcfd55d641087e5eda0fac69578068bcb96b11e6df3905d8809281226360213182be32df8d929c5fa51d85872a70e8806fbb3aa1b3d94d9501cfbc2f5699cb005121df065780e02507ab8e048b473bc66d99e16bff60e0f902b5b32324d8e5f7c114e3f00b9ce29ca678dbb22e04437d68233fc4b9e0ab8a81fc5150c4da8ddeaebd36914fb0738cbb1feb5607e324fc5b70ace7015d6585d0baa59e65f9e86702c1ed02d05d9d2d0abe6ce0d7f14732636109e208986c43d6eee8b02d988acf55c3493f6826a97e5b8d2c9d746638ae30f033440ac71b19070691660ac6280c66830930f8464763ffa86919795bee56e29f8736f89b25d2ba6694958c88d8a72a3bebd794572209d0b786a93af68bf51d2d61429f5a843e9612f36c1914cb3f261a0ac6a68c682348053f5e498c54bda03d9a6b2d676deb5676d59a19e48db57122d94a67a9653449b7601adf5e0594b740fea9613847e5ad7ce15be820d048444cd81b95d9aae9a4f732fff0ce8832f57de74a4e6fc2d827e6efe8ee08b08b0247eeaa9ab90c1a2e99063af7fafefb1557caaaad04da5a55c5ef15ff895e5bf7e5289feb0b988cbe749086b7f2a9f1e0476016f1eac4fd1072202ac9e6592a77fef8d31f5599b596dcc20c8b5f450ecdb2a9a94348e5f77cd3234fbd9166962100d1beb933a08f66b7b2b3496caf0f18b4c25706f30f3bfde7c05cd67291f3fd4fc149dda2a428c186ed4ec881098a942651a026a0f490994e0c8590f014e828a1b405ab7781c4980ee776c384a1ea3704f3e91ec70048ad7b3d034f8678ba1d162af02877bd7cc1afb74f44da4398863ba799f98d98147133d69193206129910d9821fba0b3de206c74f1f156b2f5404abff32a5963bd2923ba36c3af0f91d991ef6079906cd4c3739a4a4d19214a1f5f8c3ada3353e7a255dee3d931701afebe4be2929cdf97f356ce8b80d2e9e2c49cd41ad520aadedf1c983d06ed5e3c5646ebb8ed6c47451482dffb2cafa81f6052992acf9ac5673d896a0f7096545ab8018f1f90dd58af8bc809ae148d4669ac262d262a5765933755290cf8e6728af51cfda3565ed90ecc81b6eba0e3e65c7a99dda17e207d83fd07d879d4060f7c7ba93076e487e6074fbe931cdf2de17f7585744693ec2bd4f0d0c4ee040371dda7efc08ae64fce3f87d8874242ffe3bc62bdfc039f64f935df9e7b9db74ba2d2a3bb2b1df3060b36c72cc3dfeef0ce290b0d9bfc4a218639c286af928f2179ebbf1f4a3e207a8c05a973a8106631b2e3435bc6510b2cdad7473e8ad15e0630d9ede1230973f55146ef98d607d0761a8179555d237b5e16e7b0523d6dbea161d6bf1f382f689eb9984e2353ef3e2b71de0b342b7474a0a3195ddd688fc3c8dd9766a902492b674fc9e66d39f84491c106e5a783ea783c432b7922b7f477287b274c977c6149cfe923fe7bfe0bf1b32b7097ebe404734cf9af86c456f591fa903937149629e8a185d0aa682b49eb7c090de532fcc1175adbce566b8369b57fa2c4f253ca81529590fb8075c793d5d2e8128f5bcfa530d256d47770cd50b13673b84c299bdc808d92fae78bf5a3a730c84b4c2a8181c25c366d0973d365f74402176753f4bf78bb642cefcd243e6e98bec96280a1bc6cd55be62593ecd3bb7b97edbef1edc1ff591064e54efa1b1f7023639dd4e66307a6f67df7a71fea0fd6afa270fbd8b2a960ec1aa4725f77e8c6a642139b4e45275e8c8b1e3305ac04ad02999c3b604cb1f589b091db63cc524e3f414cfd06c32c35b61899748a7d3b8ca09c8f734cfb3029a0e97719a15ac182d5e79fe08786a9da77bf3b479bdb95e1c07c1ae7bef74ad8760b7b1fbd08b1e302114d41a29c7e970f3c654f72f6469ef96e48c60d41f33d32f1a33b73c7b7b74698c2f93a2a99e9b09942cecc75fa44f5f1286cd950a90b7100384e147d547a93d50ce58ad3006d6488a2af3ce010cacefe0793f834c53713959db4075e0402140bf8e21af5f360e7a86dd9f29040b5a09e41c4802ceecc13e50b5cf1d02dc51ffbcf8f9f0bde1f6a83a60f2419ab4117843ac0dbd05416ee0bb903b8327b354d60cdbc03528d98738a2aae6c148a36d7a248fc820bd6cbfe5607168b24eed685d1997a9a0ce347a0734a1e81d0a246fbaa737472c76d4030ad543ed3559f96e6a0987bceb981fd0a484f557ef89fcfad57d4b6b8e4cb409f9bf7f939892cc6ea144c455ee6aad4b944af00a1f816a5777545aab146c66a85b8f6dd9b794d91195c976a37303faf2a2f688c7df7cf1b1fd9d2e8e69767f39f4ef4473e6731f2577f7bf2a616f0b914b52c3cd789a2b9ab57513342372b118cb9df1c7de5c041d59ad45412d4b98362bd6274be0011984a1a240ce211d1f266b5dac6f850e2a8ffce05c95a54cdfb585aa4fe625295949d2fafb223ebc6a4a2e30beb97bd90db4330fd5a405cf3225da83e937ad2a50a44fa9e50848c254eb9915b42a820f11ebd12770435d5bb86187cd504b38b879b6901853ef54e82f78cbeb01f6aa0c7a362cd724194767218980d4cc21c2741282848392585e91c9e0f440938a5c4419bb294f6322efc3cf7e11e4d12f29bfcf702a6f6f5a3093a61ae927110324fc8044e4f1b62c6977ed69b3862adea93795ceba8e561da8be9d9fb861b4b4579e29c0d87f495d57fa7c34f15cc309298af64a5fd4055f42c1eaeb5d6e53a489ce6fc0a7abfeabe0134c0f5c3cf0824e47db797bb0cbf2f939cdff7956fc0dcaa914fa65351962f7cd00ed8f88658e6fd6c95485c1f63c761ba9e22040d2dfb9dccbca7cef9ca2ef3b2d0448f8cc6449ca35b66d763db589b5661bb620173a6d796eac1a4febdf650d74518338d1b18b22addf9865936c00008239d91d42f81db79cc3336a6a5f75274d12b91fb8163344e7f4665a1883be00d24b626fc321ae05f455128560bf3ebee64a1d6327a9b3b2877c4c5b8bae2e6792686ed49e74fa1e824d7791906fbea8f440f5ff7b70f3d3dde47a2af2b900b7a2297ced55e5fcffc8b84a418e31f3e8fc00fcca30e914490afc1803f4ff379c3f2a980db419bff37a48dc8e329e54a2d5d8d6d72c8511a6b9780b95bcf38942b48d9954edec1c1a11d4b3dc13a199f895dc99aa7628249213714d811a9b0ccaa2766e242beb561482d6f10e67face9030645c65b5ab039b94e1d8d8f20f35338c90784310da74c1a9eb3f4039bcbdae4b89dd631d5aed44482a1f6011ff255c3186f93df7307834665751f483cfa128b0ab38f7e1777f2140901199d32b4ee93f8b8fd8ad965e4e097ff3e9376f30abd5eda9330ab563f733bab9d52ae856337fd3c1a5386cf4a5816caeeefcabee07a8b7620293bdc944ee3562d5f7a262945a179d10ba4477a7884ff5550fe7d7879e346ee91cacb1a687f14eaed0549bae3715606ef065081637f7e6f5555a547ca3d2a53b009306ef7ac20506d8111186800e38e9de49ef589c5c9ecb85917f8817c4b5a286f688f34ae026da6a7fe887aa470d561d1fac3e581813a9eaeabe5c71833135354e895fca67d55b1057d9d8cc885f47fb4ada1fc2e9898e361aa8de9749b88a8687721215d8af9f45e7fc8489a032ef1adfe28bdb3195918ba837f719942980308224d5f19758247590ec6a26de0aa2682b7fe92776a573ce6f5781d4a9e99d15941e70a26a8e71a84730fcb39af90c5c2c0bb585e2294a3220b5126c0f36524e067a6c1f00d5514818fd2c09aab9704013a84651c340dad7bde8983d108a714a93b4095c68ad688e9e432d2deddb73d9c82e4a6c0cf8894d1feb040e3b13afe7ed4a3276965e27218d0ec580c4035e1a65f25240d31d09b772dc7ecee535ff7d372379a5e14d62b129316e9a9333cecdba523576d1a01366b41adc3fa321164f8cc7695388e70857cc45855145293efcc81e10e7e580efb739a8511dd175747a7770b5062817c2d864fc2be6c6cae49746c72f3f914f881d29e29cbb0ef6b39379df06b247506f00f2b8b68c86a2c974206135e67b404a4e01871cb7be4e063d87098786cd26d89c0c82bfe4fc6b1bdcf2772b03eec91ec80e0d946087e917b489915ca1867700d75b3f380d21b01b1a91b072de57d52ce9f5489315d4d1c813dc12b0caa120eb0f1e481618f171313e823bb076c87f3e222e64bc9655a96d29d13bff03344acb91a6417199eeeaf4e4811728d9786aeefa842362bb7dac8a202cb8c8d2b53ee6fdd84d2fef9d57464cfc232db1409bfee2977d389703c73af4a5ebda0b82d3a786ae8998a706d4c1219603918d1fed7a165a81114461b8b4896a7ccf625a61abb3b6db6b1e38482274a4ce3d8eb810892c958ce0065848a0939cad7d28e24cbba391124f01c36465f0b3956387cf1c084363d27d746a8b2de2cd896d72221f097f7553b4ed3cafc21b00b4e32ad0ae611bb531e48f5f37209088dd955c052e2012acd88ec3bc9ec78bfef1e373489b2ee7ce5be398c1074191c901ef35dcd454581300719961c82a36d477b363692e91f5c64a80675f32e7828176a42fdc3cb2129ca9ed77cc1b28d2dc8f6b1a8bfc66ec07087ebdceeb8b43144def959bb5a866cce55623a22f78ed2639f678a542b4bad3c2c8ece3fb99c2da62e3b0979dfee53df433440b9e34c7f38964c5d8d6eafbbb36bd8e3a62ebada16bb92aafdac54f1d92083036713b3b3ae2be3de5a8ee15296286cdb30aa71e29cc5f40a8e257d0ae98476dd39fe30826eeb820b1d2f9f5d88c0beeef91702ba7445c10a9539a84c4eb8ace979914889578f376c838c2f2569e285ed7191c52436b4813bf1c0e8b4ab86aaabce312709b0db6d2d8ba820489c42a88162e58ff99f672285a366bfbbd028e467ec593abfd6c4a4f31f4c935276acb119ab8ff163cd86fa8ceeacab3af85ce059f04ea55b7cc63544c8c30ea3c7d23fa170606442e27a19ed3aea20845e0894ae3b15de577eb3b054117595aa805513f83da2e036ada02a2068a110bba147a47950501371ff34fce4f86db6e9e0bc9519b9504d05b53c3c4660f4247da56af2a014c94a8462be7375828fef527ce8fa05d67be9762b872b9d7e5e292882a8527f8e14aadb87bcdfe623a5e0a9d49d1f68c94089a531fd39ba2e0f7c138d2ace54f418352f2beeb771708ea62300e943830cbe02bf88793c2f3a785de750da7c45f1dc4f9a7e4a76e459cce2e646680491387f8648da67f9e5af1d9cd5d274734878f90253de4360160013b1291cdf58d44864f9c427eeef24b4872242055191ca653e596507f4a79fb111bd362b6e883984df8bcbdcb79a29e66c3478464c6eca11471212fd4c4c253d92b4757a1426624bd38e8953f48e20f1d63e364bace7fe3c8d98c5ac05bedc4830b1f4383beaac4b4788ed88874e5bfcb56252ca1365bd81ea1910a13561951df263cce7b7b6f98c8b024862f5bf9b16a882b5fe7fd4771f97980a98fcc4a206ca659f4dbbf9a81054be0133fd99a4e22a48a11ce7c6ba3fc206b55c018e2fcfcbcf2847ca684a9c5a76fe9c0c543e273e0dc6e47003de7290ab662985be3d2e7f97aa164b07ff894b879e306308f1cf272d531853fc2bc8c75d2d5e645ca34c6802f45c0747a9f2563cbd4c52cda9289b36b2dd7847621f7bc80e9988c62d9c54802b926e94191549e7dfeff3bb63b59304fc8d9a3211bceec628eccb2001b89c5621f31fca0053e7b0b9bbf9159f31a34fc7bf416ad35e6f9d7e5b2138277979bf1e8607cb7f6618c4358a1cbb8fa1b81765328deb6fb6f2610c54256ae115e427f5e568567a3d85c3cd52edd1c75c542e6732ef93a7ef4670b39bbb4ef2dc0b50f1b57eda50f97e9f726093dd7ecb4771190e6962dd361e0ba00f6c1dab73799ff90246dcf82c34e2e55e39c2dca6456f2731554499427bcce0c8a96a9bc856ed180227ce1061a1bccdd4cb6b5e1646e797b7323a65d6307d204be8fa1eff2c19b82cd1a9bea60fb0c304cf620e32288e0180bb9e6501d4c16c14a0a5625206e8b8281051743edafbf33c911e7ea4285d151e792eb92940b99d4edc2ddd966596f4090096666377e2cbdc7cc55f087c30a3f12f903cb9b647dffcbc65ba9c94ecdcfa7760d707f904b1b727e4b584cc41890e38e86aa0579ecb8a31db0d674d4911889e612be81f5748ff31b49638a1a33059f4f945f21642fa9cf97bfc8ce2107550ed56b753b3278cc22d497bc74e148f462108a1f47d49d32196a85881897619681c23cfbbe97157cfc85f5ed9e3dcfc666e14da474998ce65a810c459e58da3f43da507c18cf27baed9b9ae7b5aaf27a89e836aaf9babf09f3b781d077ef0288c0579866424d6899ee15737ec8176221308fc77334e603190657cb1fd911b7fcb92349ed29a19d9b6ccc13eb1f140960741dd3445e487b42918d75cdf2f4d3fad9637288c3cd2e3a05364c48a88eb4f1a21cf1e66725dae84cc74e9862caa6379bf670722f228b62103a3417e9e9cb220a1b5226e6bd47215f0dc2e2334bd63a7f15b82aee4192f5fad93cbc8d66fe5418ab22550e56d838dedad832707265df9497cef3244f2c4671bb19fe7d26037dcab7aac8c26f9d2c230fd1b03fc94fd54e8e3655f2688e9e59dd508a864a50a76a884059af89192eece75eac99e62920aa36329ad2ef3bbb9e01dd7091ecfb6f9e0df8e475f57c274f2d061785042397a478fe511442b14cca9596a46ef8cf86c551b0cbea96712f7cf97008e9ccbe67036f28cf5ce2c8766f24067e2c25f833a826c273619e631750c64d38edbfa08e69b118a93c3a58526599da3b009197d0756a1cc5089025e0b6aa0986ead5cc61be5acc3cd46a356cd1e27c79bec10149137e0bae572a8642def1ae75eb3ed306e405f92588ddd34602b921bfe30b49a0b9c6429f89fdee2638764ba9bc6177fbbd3a86c9c586e9d3199749f32ca2526be454000d2bc66a2c4d6a856e8d7c848d87055cced70c1bfc872ed6e2bfcfa654900a4cf2b5dc82265f7970312089ac627ab203a0ca44811e55dfbbbbe31ec298c9da644a3e4c3b9bdb6948048b4680f0c4e77ced60b7f68a3cffdc94496ec2898afc67972e6215459eab711e888ac903d197f6291820800497f9cbe4e436e90cea2a1f5e14c96893037c0359563cd33bda85d00b3d18cf45159208075484921c9a4caca87c809328cb892ab3299b748bd456670e1060d2794ad4cbbed861ee45b61c7a82e043795aca42e6cd2bb207bba268b2f1f97783c2067a9dace0bd0029e2ae727da1328bb46e35fe6f0c1ccde79ce9a738d07ba5b381d2bcda1d062affb7e8fd2e16cb1874103090022278a1ff66eab0a82972f5d55474de332ffec00f874ab3afa68afb0e150843141a335345176434cfc28160254644df09d992143762a1fb1cf9c4c6a7e132fdd8398559d1ac6c657af2be3094e29ad48ecdab82697e7c18182e84859a9d9af9a32ec82710d6130e3c2e83c586e892505c053e2f2be17f28452d84b8f7c45838706e86da4107a205ee9e80585482cac8eea7204d155feec8cf019bb6ff8a40945d28e685f7e0335e29c50385ca5021cd248466d856ea04e6e24620caa90c63392cc551ff9ae6eb1ace2d15c3a9453d23c3183e18303101252fa425662153f7d3c3f77f96e684346d7f366dcc264ee0eaf32c9a3c788ced136c5a929643265092ac5d3dd46968cc0c23e26bed69cd58a6bff824f2173e8cf4d1df735e24afc9ff96af99ff0924973b66bd86980fe7966198dd3fd58bfffb889b8c15108aead8d1d2815adc7d276c6b36d3de2ea999b039d3ae114366e0efc18c57b1ca6feba6fbd694d5cfcf055e4947b1f0d43ba9de35268ae525ce74948f69a2cb3182ede1bfbeb5945be00b3427907c9056be593cba2f405c00fc537c5f7b168c22a537ae03c62e65a7e4261059cc15a4919ef9d3dbed4c32a9bde62d030f91a5a370cee0d8d1c7b4a6e21a7b22fa4d4d9b3c3cc28445609cdff4852cd4f61f9f8cadf6ed10e5565e3f3509513bde2a76d76d647aa67e767c1e16e996eb050e9069da8735adade047ba0d4748ca7d3bf186f93e75afc580f1daace4b42c96ffa0f0aa0e972cf64874b0ef830cf0a5fc9fe41dedd418aa9d03a9d5780eb3061fe4f684bf770932936a99314028a3634d51c6097fc727a1e16e97c12fe6ed355956320239a436f8b2141a7f9336aa8af349da635eb2ed83afce7137cc305409aa1b3f7416b80c81ec7735594317f73330a906c38870290aa1ab7e10486425eb78484e5b52f5e42dc5e88a92291f8337641b24359a2deb58ff2dbdb922b81c4805ca9cee78b591fc839cdfd3ea7e11b7c48c49baa7a7c371cb769cb5ffb05511e33f5198aadeff1642ba4b16fd59ea951fce22c7e9e1d6bc56e1a4199511e23b87d8a7776e0690448b4d852bfe47b6f8af5d58c4369261866baf910fea8aba40e48263df542c21748ebced365a3a1fcc02c6e28d4dd31f7e05e2e753e5c5c49d160754d569365a38dea3382f4200c13feb4440f5efe58a3a9a402db92ba0a25221d8609577997a48c139bd60f2e2404687ace73fcd0a13b1f1d080a54eb6df65bab0f00d19d7ddfb129bc5eb4814191654b0ffa33cbf51c08e417c914a95db5f274db65f9cbb68d2b3a37942ace9c1ab521056cfc7e6afa5a708f48b552d80cd29d4e263b5854aee893455ad411d68443c54ce6385ab2287ae3962b4fd5f6dc0fbc07e220062d795110974c7738f4ce4c6080474431f71ec695386c297c3c34e5c60325c53e4c4b17d7e5f01c9423fd3f9b0a80a82e7eb409d880a7efdf5210eac321703e368bc5068ee741e0a8c641c92dd39a13d7e9f554145cd479c18b9a019c543be32870a25137f6db5b8b0980d771c08ac89d1d0de4cf2c38ed34f9623ded3a367d8002e05388b0ab3d56d53b93eb22b0dfb4b03f20c3a4a58a35f60bd89c7568d0ed62b6c69036cd6f720e279c24ff09fe28fde8f0d4f17bfaabfd11760df3ef3166ad9f6026b2033b28d2c67c33575ad576f091592f7007176c028dec49aa30f6de1c0e6a95290b04a79fde19e78bb7712eb76c79d5f2a2f1f9ca043b833ca8cc823dfa25d72018bc096f50c135620b41642b14e8cf33a4f388cc77c633c2fc8ef2b3e3418c50fd1227de44f13cf4d0b2e5c66353ac5bf3b0e3f2f41b5b19c575a8f59cbfe4725e736a240d4acf7ff983219d86ebd3de8f03446864f0e15b07ea3674e38223f2b056f93dc0afbae996e294fdacbad1d65806658a2e9fd5e84b9cc071372cf216ab730e7c4252cb1670f2d81b786fd0d4f90b18064520edd1b355027561270904f5a6ba0679c95359df62799acb96143a0dbf794a954a14cd656036d30d7faf59ba57efec2abd88a890d5f2eabe74af6faadbc8daabcdcc4b733c9838624f4b64b1d71f35ecf16634237cc22b9726db12c68439949dba64185151523d57dfe0f6a9f76ba414c36c202c748a19322dab81c03fe03ca07b3e1c3fc3cb5230efb05dedac648e5aa36c0ca0788c632a4a60b9a864b505a189e29781a9c850524ba092cd2c3927034959160b3e17e6a0826c2cb8f8617a9eb1ade1a5585a0e4b13b31195f70df1c78c187af7bec622c43b1cadcd0638e76e32e4799c905cf4ccc7f2817ac36a4bcc9a1fba584e89cddabff46da8ea0c6b5637eee5e447758902fe73b62b8fea2cec027541fe8f920cb7e0f0ca22401085a55a92a57c9e273ebb7231ec5d8944465b7f49a1b3133c2055b9e062d7e9fda5da6b7098d0e33933ee8b84b083360696f4d0e5182e26feed6c63186779e899ceac7956c90fd36f292670c2e2d45692a9de5a275f2eefe1a8ea9afb0c71bb0bcc82ea1650f367413e07e0660b75cb0443026def0ad3f1d2c9ece86a0189d24f569d3442c238cc914f49b42b6701ed428857ccdd482304061e16667effe62a81ef0b3a537a884e105f4d1cfec460108e906965426b114309061858baf71bc8a778c515f5299d974aaa455811c1cd25a7f8de6312030adf2b831a38f158191d777743050b9cdfb5c528f02cf59a52f4d26db24132262b5853cbd1cdb542adad58c725a7697aa8b76b121d6451fbd0db8bd0acbb9bd3a59694070b198702624d655cadcdb7050e053e11a738865e1320376469b2f9416b8fa08c4053f03c812513cc147934e8d85bff6f29fdf8aefbbab3b0b150bf508689e548921a93ebad855819d31c4bd64b80ed56dc45a6c92981a9d9202c4712ff2ba01c2f1bea6b9c2481a57b2c7f34eed432935708052410bcb24baed17d7af5183897ac5ad482dabf1f686e854a9684a01b728d68e93202dc161e4a47e3e61779119dbd1b070dd86da8a5a73bd7ead284b610f4c4c0d8f695018ddbbae29c5c9505617ad6920e3d9fdb372f939fbfe981a9976cb67d8adff3155bf0832dae19e3810fbd5c8c7513dc5589ea346792adbbf1bd97269d7b982eb5c39280a57c3c3d675912a86020be05757529e0f9258e9142b99033303a15b85b14ff964d2e4faa98ccb6f295ca20239a0999cedd950ec7fa9f5651097d74491a8ed1e61618876ccfa19cda25c357b3696f950f2ffc4c2c5c3e420587e13cd804b277fe2370f606e6ba54f735fa234a70d70f584a2667eac12aae49ba53eda4b7c0dc676dab8562018306765f796a9f98441c80e6be3e66d5e11026911a32267985ae249f8cbe6ed40b267d5e0846e9270c789b74203f7f96d72f198dc0db20a140b882adf0f18489d72098ac4aaa7fab3cfff31b20c5d098c05cb31806869c8c72aad9ebba9e1bf0fb3e81c4d048e5ea2677198be43fcffab9bcdd606127972eabc0d0817e5b190260904f35023f05b201e2d59d5cf6a9f5880dac80d14ec51f1a9a7d8452be6fa322142c512aab020c1e1043399957289d626f976b5291dadd00b3fd7b771566e01faeab8da5c43d9f8a0cc41a29992922447d39ee3703b9e5606db735cb3ca847c9e27086a87336fbebbdd1a83517de4c33a36fd7888c9399a96472c8d9d7dccc4018b3a0bc19d97362795f9a4e09bf071bc948e5cd02105b96991003075a16287e988ed40f0b23142ddd4fbcc9e84323ea9845f7e7aecbc5cd88df7035dda5d9dc1f72c55cd39f509d3806e5c6e89c2a50440ed331eab6bc39951b34992c1083ecb955b4b090c71e13a032a9e582bb89e4c2616908932d0439eba153ae962ec4d5981abf6ac96591b47c8feb29ea15cbd1d389a989e271488c6e6f4fccebeaa94b2c026373a5c27a9fcc131efed572ddd429c2b7b2487d2f8d9b8df115b4aa9e3c1b9479f977105a0e5e408bbae6aaef78e1c0f2497226e123458f25c866e8b77f3ba2104d5ff0ffd9ca96748752c0d134ba64cd8291ab89e1db0ba4972087d1e7e7119ba65c5e2423e8e7baf73a6927295cd6fb56368e60cacf02cb6c6e64ceddd732d80839477cabc9378446d11e672ca46d838f757da614e0aa897914f578d75b8ce5b0bd154e107be6538135c1fbcf26c9a30b807b77ae4360a8cbf7b406d221d49e74bf70b0faa99f9d6e2aaa9b33dbdefb7ddebc79b5a70d5c838167f5e0fe1bbd4ea12081c43af86f395d1f557c25b3721104cb78548f5631aeac1b6693828a2a73d44acb3d512f856f6dbfcef1b8c86ef1cc3148b00ca2ce58591e2e3e17bebe62f43c2bb62d8dd406d889238fb3bc9418dc32b60d035185b958e4f0ebc46a44917d938bbb599894df8cb87f96f747251c50d2a9ff242e456863567cb8b592ea0a46332ea96f33a5345499d2c82ebbce6c539963ad53f998fbef74932f868097c765363c5d0065c0897dd4520ad767be422341658e6400e1661b8390b8c8b2bd8b0afc03e98f9cd84bc173940f28f794d44bc854d0e9c7d4e5f51d47e11bee943638f7ee5ef7345f0d5b8d56d84d36b6591e65cba5a6e29d8a20e1e822d62705275a25e9f8f22b7efd8375412808570cfb79966f7231410159a305cc987bacb5047aa4ecdb338d4a3c73fc954bf0b20ccda10c75623b4b043356bbf4bdb6f808433fb56f5f7e9964a552ff81d9d702df9185c52ee85b2df5c6e6adea1020db474a200d94b0aeeded54398f5d364e1963481e032e6043bab27ca4700c97284e5ff72b61db696051e091ec399f73f30668541d3df8571be4f35dd1337159ea735400d2f3420416e14f01129c30dae54012c95c26379f06e3cb7c3544a5c68b03f8095112040e86f9dc097f8687ef6e70a3cb90bf30855c12761a78171a32cba81c25a155820b3d28b7941957d538fa7d261f962d23caaf433c9e288ded9d346559dca88940b9d6296d08714a10127f555b5b8508d27fd8423f80d49186a23b7776deacdedb34c715441a9c2a3a4da59d0bc34af7cd0e8b69d1b441925acb9d6222194d84aaf04554a4fb89cd85925fcdb00a32f9d783910838c3e408582254eb51d7bb41fa364e6054dc6d537a2402c22d433d5b5333ade519b757bfdab2531eb014cff7bb983024b3ab05451f600dc9b307777ce0fe5ae9ad4537a31946371a64610696939a60a508b73330ff6b42162cc9a41f6443bd484afac630eadec6847005d399a5c71620aeb184148de30b60ec8fa325a2780e762d8134d059b44519542bac767bc09f48a4a3381222efb79ac98889fabd5ee42578966c615be29cc36e91e0321f0f9ae6acfa9a945a682eb370f9eb0d6ddc78408a3d44ea8e10c5ebac652eda83618ff467303a4dd0b61b4af9fecde085241106677fbda381dccee2e7c871a6545e35e4e66b3116d59f11db5495b7c0708f98e7c783052d12f784a4c7b7e367c96f7c3dc86f5c16f47eb95bcc4cf2bd6fc05685a3dee1354e0caa02bf5207c64d04f2c2880a23ccd56492dced11163ad16ab4e048f726d962c7c0590b78440c220fc1afd61033d1bc7791bd6d431f140bffab2796f00254b51d3f1be3af76696a4dd118bc31432b022be3b85171e735610704dc94ce5f5bcf4a7c1e861cee8bc37bc1c41c3d9bd854aa889c1575cdeab8c9f9835d2540859fe863421b06c53bb45be46ba755735eb2bd7a8a6832ff92d9fa65469096b7e09e5d5efe7f31c4adf75e321ba959126088a705e16c5cbdf7e5aee03bcbd28ee5f7e9ef940ab2702ad4ca443398769cd2e855816d93e9d81cc322b6c86530adf8f98243f5da2cac59d1c42c581ff909cfec9d25c4e1d1022f7ab401b8785ed4d39e98511d38e896f2ee0a3c35be4d9bc56920c65addcbad90736d5de56ba562b031b6ca366a9a4f43dd7d5de49340d8618e20984d5e64512f7b1ef49ede3cadb0504488d628860d8bb0163bdd5091b09baa993b6aeeaed0dc358ed33351bdfb7054fa44c80bc30b5a6d1c887ec0be688a8b80f171a8f085ed6fe7b37b169d38c7d21ddbf60f2c4b95aae366a4bdd24f97aa99e6b7263856bbeed093430730a1a7988f1aa949a6e253023a418fc5cd486f43177969c2ffff131ce49cd91f173953fb63236355a53cf69d30945e1c97d10d7803924a8059480675cfeea9a340c27ce5a4c6f0cc666a1738d322a531b24a78593e0c2ffb664fabbe03e35da17e76c22a180c54d2a341771172b05cc20041377ad0ac3298f4e18a9a6ca9e9c20d9f4549bf98cde6017c51b8fd097a43a734f785b8d9c18762ce50becced8f1b5b5c48327c17c2ef8a1cff1765ea4e0bd1008bfacac670bdcae41bb02b8d9c0a445d58c974731a02c9070b4ca26760b552e22cc8bd864fe10a45f6e9e435eec618d9498a560ac8176df7336b5cf5b24f0cb331e618674abe95c47f3880f6587bcb660747f45d094ae4ebd7ac18b239b15c406b469989d1ad4b355b5364db119f2f510bdf279e6270bcec122a1c2a35ca6cd1a5f6bc789c2bd1eb893f51749f4560e6ad9036a19be772b0a2de28934ef66c821e6b0ae06396d1ef407b028f99504afadc47934fb470996b5032e1e349fdf6181f7776d87733150609c7e47cf1f40bc08a9285efeeb9069f4daeb4683bb6580d6eb3a4ca1970861a9b281e89fd98abe204a0519fc5e8f118c5f602f08e25f0a6e5880778f5ba0234d9abdd680c68e1c8e3f4b61b0cc0ab957b5a4c92a5c1790cb711aadaff6d11421f7f2ac4d4959795fff3f723b5009ebc3c50e41588ba816253e00ac03a27baccc77ad2125d9958c92b85cfba0fcb13d52dee45a8165e4c2e6972a52b1a8d9f249dc02d9ecc5ba0e9efde80d477556a0189f76e59c01356b2c001f978308c1f4694cbc83c80c5adfe93e50f27e16e7ea4039f57e2234d7274a4112fd68a25ddb4ffee390a43c08605215bcf3f3ad93db87fda40e8f3bfbd047e1cca5f1fa559ef22cf19bb06a8b1aa85cbdb73bc39ac5bf3a4244e57c9efa5d64bbf3d58a76819e5e0c0fdf36442d301e0ee74f7089d24e6cb352285030667b5fd4826d9f46d173fb252667e002a5234bb6c30aca6dddacb862e4e2dc5312c45a3e5038cb289ce533d99c456abadf2d471dc8acd8bd9de9bfd8f8a10651090e84df1a59e6e8773a3755d6b6cfc34ff042d2915a20f50d24ba72f4756906cf64314162149fd9bd0fbac63bbf48a37b7f66152a9bb92ab815e64dac73666ed7853371ec559ae309d4ccfbe2a79e81e2e3cb6b35dcf921d98447c2a1344009bf62f8ca66282428334b023c4c7890cb819949c8b2edab9718cfb506f25647be16a37dd288427019670de68e2b8147a914120d13ba83d8cdeb693ad8b7fa16067523138b1b776a2a8a05c3eabed6db3fca32051a19b41e989555bf3ebe44e16f2670edf36a41177883f2b90528cee8ee1bd21c34c57d9c6a1daf0dc96cdfcbd3474c8894f240840ea3ea27c39d8431fca03f4521d73f672d85231cdac6765cc44c2fd94289b448abe4d25c770e58555f39b850f12d3e94d6fb74ade1303cf510f5c2518deb05961f6be6a17bf96b949fadf39cfbe421d10cc9f73e9a6f65616b7c65b272473cd8b3323890ccdb26a4f5ed988d3180758c54341547a6feab71825faaac515787e62ea328b7ac88b393236fc5d655112aae89b8ccc3266dcaa8236ad7553aadb9c3625cf192852c82c0b4bf8897e29f14e0a76a2f1925e803f835e269690b0bc7ee60521cd38085c6da97546844a8cc6b662399e23fea7b9d8b9f8b8c5b05074c43b8100bf19312f6f944b8dd616f014b88544f9e439dde5fa768f1a33bbdc7066a5ec67016f8964cc1e1bbd30e277c3588b796b311c3c71893add8c666995557d9268ed2534855499415062c5f6a2c8d2c0306819779f1189731023f0a42dbc465e9410f27c0d22fdb7f5f3b8666a91ad8576cfe3088e1b408a5670c76af317a62ba08d55154c88657026949d16b7d8832092d33679f81c566f0f1613fc03fc451d6ba2700a024988851fc1372b3a3e960c42ebffe615f2986163e2333810896252328de3ee0a6f41f7d534a19245c30ce14175256112641ce7f666d1891be0510694825c277a8ee85623812611f68b58389e93315f7847285c0ee0f434ad6cde3a45efdfbb41f1e6e3be98307a25ab411fd07bb29e63ea42d2ce00af69bdbca041623b782d4c3dd7bba132bf940e5cd07c2ffd8176d90c6f0c7dd1596bdc37fe8e9197cc7797fcbf667448b2bcdf285fdb5858b979373481d6e761bac258e9226a756c81c180c4c8f306c9547a8efc42a7d816a833d899fb23444bbb76e4b4d19ba0eeb0c06a6053358aa352414d75690680e1f178d99c4fd6878c7d1130c1f0ec5878700354664f1425dc510077c6ab0c8e6e67ddeadb545b24bc51e2fcc190696201535c7b316f0c59896ef4e0b16d7aec413b136c0f3872d6a7111a42c7206e46d6003fe0c8f6ff2846e200df4d0f25ee18aa63fdd034594db397d5fad04f935a607763a1c85df8cd4053bd53af6fcf3e245cf2b5fed5cc017bf789727cc1c95e2ff2f0aeb7503a2768799f8ba48f2f835d2e51a99c0fb1ef05b10357a6d06ed0b10a37a8a1d27ece215b3c800685bf806d20cdae30c96e4b697c8d1b5ae303ba753962cf50063fae44346da36616544ce7c3d197e66f51395b1f0f298f71cf014bafce144e6f04b969b5393171d8a79a61706701be854aa501cc56cd8d8032442881b80325990d14b19e88df3eec87d748398cb4eae8d82dcff6117838315813cd500c0fc28fb8697aeb799a4066ffe3db12820365953c1ebb4853fcb4d4a05940b4a075fe7691623be8766b4fe6faee9269b77ee9080dc6a4a237da331c3fdf76c3a23376e28b814a1692115534ec70a7d83b7607b738f3004c5d9e74dbadd068921e0d5563ac0e325c58e89e4938e47e272b8e8467a4e71d8be703f6203d3dacc11b7bb7f0f8cfe0a336b4176dae16097968831a44f0b80f130f37d581c3a77efe60bb08d48c26785271d3e30640bdf72a6f36249a75c2f2edab90fb8cd53dd839cb5b6668b167dbe6c01cb1f4461ee5d23aa656fca5ab6a0ba4ee6305bde386bf4ca64b567036e526ddcb3b3167104d6e5a1945244c3541086986e134474475e6ded7a6b4b2c85d14e3aeb404aba7c6cfc89abb49e351276e61155d693d2d768898c783887594b41dcc7017ef7387a48da6b235a2e9bdc838eb63f94c268006964db10166340b79940ee260a4a4301a1d5d3778cef0bfa181c90308b25d476949a7207bf42891147913b6ae3787b6b47f61a009972c23acdca0cf79def2844f27ed8ff32dac5f0ab28629ced4ed80d1914ac2151d8f0976bf689f1d0c12aecdda16938327249b599d0d87d714306278f455ea189de88f4726dbc63cecbd6ff85a75bfec63c1539dbbc65e09b22a3f2319e3ec39bfc48859493e0d1667ce1fd6e6ed4e5bbb94afcad551e00fb45160c1d3d63b9e38fa0fd3854dc2309c20956f0854f761d2bd6f23fd2a59f055d072285aba19b43183dfff8e4bcce4edb635eb6f4cb08c219433c37a3b46291c5b5592f8b42c3a084527223583ae66eb7fd0b404f7c0abfe9ec7a2cad32795b74b2a7f3940cef628ff05c3cff2ac3c8e67e4a611ef3b3f07efd332c536eec846dbed141e74005f82af787799d10df5f1ba6e0c195058a75f1eb9d37513ac70fcdcfc398a462a252fe7bc0456a29a05739c6e95b9adeaa2f526d87c166fce0655f7f6010e2e3e465f1b2ccbee3ae147bf7a40e0019fcfe477f098d34d1f64ad2c960fbd1e5110fabc9ab3b37712c07ba0f5dd2d3ac10e3a808c6a76c96563e0543073a9ab5daa9a0d6760fb7d51769a5ff257acc9503c58024993b399fd0f094dbb82e3bf545cc46ae82e1797215ccf358235135ff887bc3b39630e0a1d7e47656121e1b15bb0ca2f944896a599285fea19d4b30960cd5a856094e9adcb42187911d87b2d06e6a3c51807daf2f9e2344c646572e70e8f72a91e90214a00d3f077e9cb310fd912ea329b9201ce02e0de6166cf8794122b388ff6403eea99f561ba98a4c55a71b5ee7cfabe9bd1d38832cdb372eabe328ccc59a67a73c4f3ebe4b54172d368348d61d76d5e051b640bbfe7064fa352c4cab280d59c208775ae3021e9af47fa92997df4f623ccab45f776dfd0253d912e985bd1680c0cd649fc0123a44a68ba6dc10c9be12fcce53cb5228ad37b73128844ad301be32fe526e2d2d3a90fbced84681fd8ee94639c063f507850d1a265c4c207d2794957ddd42b66d66b2ec4c1f6e91a043b5f499abe38384c2c3587914c0401184a50c243c4ac4cca58b581fd8c86a5b73c61db0aea0ed3dcc36fc3d936e4fab5b2600404db799adf6e0a3f42e1f6eda3465c3f67b052c74b246975aad0f19abeeeb0510709d0f5177d99d8ebbd78e509bd7a315e22f238f3f5dae0cd16bd0333e0e444b2f5c1163fe04f64270c916f2420b156b9e5c96989875b6635cce74aae04d8797bbe5886d436d167ad8ec3f77ed33518bff0a8ebd6d4764c143fc0a3be6af9b13366ace6097734233a786a29f2ef1f8bc5702a1d1ba77365f08e9b657cd0112ceca31b5102d7d717e95a5efa928cdae783fa3ccca17f1dfc7fea3912f8737814d9baffeb6f1af7a02910dd1da582698efa72eec4199c5f95be5374c3b8cd57e097917546cf541cd783aea10fd73d63f82bdec69f5403c2ecdca764db500d9fdee6f00e6b4631d1f2eb4e25cde5228cf489a5d7848feebe0a544ecfd1ee9cf7fde20de78f20bdb3185c06811ceeeeed18cc8ddfcc03e0632bff56f62b96e13882cec5af4ed79550c73305d7b226ecfc24c956858870e331dca6412fb0b34560d22ecdc82529e56cd02a263e7b440106dbc326266ecc8a05eca225e1961b9f8397bbfbfed3107228acf8e7fa7604c7fc9c1aa935ce05829bb964127864ad1d5a7e9230d2a7ea8dd818caad4f08829415c77a1c2b27a09af425a1a635c192579689060bef891341b4d7e91a414916f9b41ace78edb74e612261764c27364c9f1968980d014a7040497ffc6e32064110c0862dd7f63abac66c41e9a079388e2b2e4605db5a85f91e95bfd030066eec93f2e51a46bfea24a3ca599b253e72259348f9779ebab3d7b3c9f79d5b1b8a098b99b6222a22600f134300225e3ea979e457021abc6582a232c090a8bf387ef4d3db335d485340db33114aa40f5fa8d814467e795b321f2d270e258757708d5274fae9c6f7c4039b7c77a34d3d7597012aa2d47f67f6cc4750273a17437c84e7e5ac91e5661b496f7d956171f513fee979fc58fbb71e1b6e0bdde36d7f7f5dd7f516875d7e32c59927a571f22e2e67b938d1587f2364b3fab3a39ff87d78904fed7c310447b2e5daa754aec2b9b40ced5d6efe47ff8dbbb9753b0f38c4745cf494bdf92cfda3c9fd7270471c47c0662a331bad6aa192beb8b235ba1d503324a20398051430f17c327823476e29e7df6e850247b776e6672197971ab59e7e006a717a0d880b0358dae5deb177298170e80cfe169d1f2005996026e4587b52a9878505965d4d02b69a680f0442be17d6f838f2728864ca08bc5b4e3ba01339e1ac1f0a06b179436e520f77d3fb8274ea6b3ffc0b50fa2295a0f2e9de7af2718a96a903611a3981a3147a15d202cd6f382ebf8ed012f9095f84918f3bf1a243be5594214b2129c69a62a19e554c93e9896a425de705648a2ff11cb24c51b249e74ba9f505cd6056e3c2552cd1a182b18b88b258b5be42192eab2b0e495db68927f5b40d55195414512ca936d054dc74a8525dfe68e2d28e4999f2f385b202452321c328488601325ea65b2737dff23abda82b1cfca576f5bd17a1a415aecce42416841672cb54f63aa0fa7cd3d30c8a25c05780044043ab9baafe884666c45b75ec4244c1c4fa19adc48e91ad69f0d49f233923e24ca39455f9a39cc6a360247c46addc06acb46322e2e2ca62b754168459f615c0881749e314064c3e4d71261aff7debbdc1af2a1f337619af333c3fe47d6ef427e5b98568598151b64b49f3ae125d05b6ec43306a18a22e03b039c3fa96aae198dd1c88811653f061034219a1f9bf612cef71bfd51d7e6d2e143484b630583cf2d5b2ef4739ad99823429c49b2c49f42df6ffb4d42cca0c71a77ad76308b91bccafad221aa5838b96a1b802be7c318c337256e925715ac30ed7476fb0f5176d0c59795c49b73f80bc56cff068f6a0715a0d019f294ec2905b5f24f5ac360e2c4f3283ed18d8bc480acc1fe21804736019a3dca05a43a2ff4a259bf8c54cdcb181caffcc3adb574eca742f2a712c3253cd86cd521564766d639ed8d618c17a42c7dffdc278bb44a6bd5c344aea24bf43abf86f19a1bfa05c3d04102047ba246b4475ef9bb9bc04c1c6623226012926fc7ea9de6138aaa4027130362bbf43791d71de97581b6e0002521f8be7c47d66009a841c685dd808c41820a76650e9dd8c69ad18e9496d20ad3df8f77dcaa4366ab7ce0927f7166676cf0c50a0ca336ab3cc96743f25d836e1f0e3e6022a85deb799cfa800d4a8678b605eea63ad4bd9362abf467330f1879cd2ffa2019327c125b74243cd38c5d3160bd8cf2668304ced2b56428d5138692dd574e367b3e58a1c620d9d927035c50f9e85388d3d7c91ffd4fc245deb6bb7912b295f10f44a842f5f51c646d9c14e702a8432bd2bc9e47095680988fa758add5fc8ad217c1ccaed6f8ef2571eafdc52cf5a09a2f60dab36d9a94a1557cf602de062714fcb78c8d7e6590235da2c26f7f1c3c7ee0b79e73d5616234602c01af9937cf86162be222202a8d68a61f22f6053c0725bcf9ec939ce274831c941f3f8308d41130a6d618e169a8156fdf6062d5c8fc0f2f1fca5a1ecb091a4df22b4937873f7605b56ff8c3fa89580603498ba1085683546973124dbc6b8ca26dbcd056d5f32cbb69ab23abe641b78bd3ba7a69971198d3daa2568fca1ce9868b3ba500a8197aaad88c62fded9a593e38cdc427e6c98731bae315abfdd03445b8903af2cade0f5b9a3855c5013d3aac417e72ddb8db2c0813f7b89ad2387bd5c658be2e9884dacd4c215d3dc99f69c89ff361c0a4dcf0b435482285b99b3e5d68ae6b6183becf761044cf991fcdccea284b3ed09761a3a1337177b5974250e3b5825f0e9260db640b75818b92f301df57fb70974f15f33d64cfe65b46b25bcdab856f0bdf5d4320e6bb0465e5c85473cac3ae67e11e831de227db1411b6ae7caa9ec5a815171db94ec01e058ebcec6bc32d02f433d8d6730e5c4fb0393a08c7f5f44167f9f8ad58754654a938fa9e59a89c75c482d48d540a2e347772f677173588e518de6ad1698ebb9693413c0e9784eebea1de36aab33d151a3966e898baf558c7cd2f0dbe1554d266fe3d6e029a83ac8ec1a958db1ed32291c0319eb038272156fee947c463842ffe32711f22da79cb642e1cc0068e3bf6f0e8e3507da79d9ce8f91d29e0c35e2652b558c577c95cfc0ca0c2668976a7c17a7401cfbc8c9161debe7393382d2885016222ce6cbec68c24bcfb4feb818f5e07ee0537b6411d49d307a2bce542ab717f0a3083243a74d74b807b6fffe52e72b355d98150c7c467a787f9fb9822b4550d9499bb60a9c944e569c8dfa96104a23b1460dd7fa1e8955d04dae8ff9994db55dea95e5a994cdb83c9bf68c64e52d8fab4eed613a05188123f39c9fc80a1fababe5db6375d25606b920f56e90ea198bc32ca553072ac788e5d21500ee0b313a92de7910a4ca407c4e0bc9df4553b64d537b365fb80095e33d82fac805ba81d815b30388012bbb563639e56bb7ab02e338e58d149d55db549c515e64115e0e1ebc2512aad0e7fce4ed0df7e2d0353e25720df8c54bbfed9edb8188f73d8c148a87619b69e4faa96528d8112c616bbf46f585ff0c06e2aee1f5793bf13eb34b626d98b589c9d1c245bc0d671355f430bf75e65c285588053b82372655753267683a45cf042e356de660d0618822489af9cb67312774f84b34212b8e28fb70839b2a979c0e36afd8e39628ca1191ff2135bf77ce382db209801d6f9fbb54050a0ecf57f42d1a65d023152b9228c8f25e8f1f66aa6e8b21e949cf8e016f410f6dab51d41c983a6e337ddae30ceeba88c3d37819984f587affb3a4cabc8c9f0f851054546f3bfeda2223e3c68eb0a40d67bf0de597a0fc5e72c0d64aab4a2ced6646a1c49ed281ecff9c8992e1d12ff786525ce6f4119043e68865cc3bafa8d16363b73b784e8c6451997bb20f82812272c1f3b940b79e51039c962f175696cc187202f340a57b90272609932e92a5f5f9585fdf50c4c6a1e6e0819c00a2ff4e4a790711604cd74a88a230b2d6ca2dfdf2e4c19b1d6901c0ba2de2bd3451c0d106d0b74e8b00897fd0f9d252b9284a12b9361875f81521fe053de2a5f0af03ddb42292ce959d1c16bf5f0ca1dd8664809be525685a71eb8898fdcfcad1084995d46cf188b75c2118125278e454d29a604715407223050025626b8169cf46224b4721ab2f499681570c25d7abc094f27eda7646825e9f8437b779ff11c94a1b880ddd3d5803f1a2f8ef6d2c8edf47e5c541d76d0f3f173cb90c8161cb4bd158f670380323d53366fd754281318dce6df13dfd78ee5f5ea53112e41a7fc2e449e92245b236d99b23f67c98119d0d87a32c4f24a93c73658aedf032ea024e39ff02fb1d4a708e023ad011a62c67e074bf2460a78d05b67cfd3bdf52cbb6cb1f4ecedc55b213701aab48bf666b4db8d69f83c48b79ed4551795d4976a55aa3b174d83b88e4adab569c19099461c7af11a828d145c715b66ded22f8f5777c72c342829b41f6b03387e6fbcf8b0bb3cbe4a86e500f7848edd1389404a9c9042c758071c66002479b58cbd6485f6f7d97c7ebd33bd3fc9fcfa2fff59499b3cabc30e741fbaa64f36926311fc7c96395ef9c0af291c992daae3741e34f7c37c297f25d2f5a67c5ae97a4fd79ec91640a9d93f51c02761a3915c72466c11387cf579029fe80acd277547100f8a72c7f7ef839553b1457f9d1d5556f701a1851edd2513624598bf0f70ad97cca09c532d3755f956fc6be290af41d450d8827751c2043ab3ded135c3a5c2fb8de71a4255dd27d0936565e1fd1c46adb339803e581a1751bd86179bea934f474b0a8fc77f102a576af225afd62d3023cb4ff7740c6e9a1b8c98c2f924ebf11150d6198c7b530463836e2f55ab1d42e0e2ac13bf5fdd1741467152e7a4150f0a42be9b461c00506dd2ea05e6df1ecd1db5c296093f98c22b2df1a81909ac96da3257854f94c05d6ad636b4d955d49b13cc6a30a9566426e4ddff56b736fe94163fdc378dd2144c21ec6c60c65dd82cfa286167dc1c1b2644d702f9b4eb8d951407abf55be0d06d006266f0e67a36bd2922c61172f62b4a1bbb68a3d17790d5e341c562534d9a00a84243be217eef2220519e5d963f155f1e19225f048b7246c5c552950bd16f33a578e65c81c2787777f850690881ef63bcd326b66c505260d2a41bb6436d1f7d1703776c51e1399217812a6c3a20e3c83258ec4f181d82c4bb670e310c85cc423a70e07e510810532c8dda6e1e67aefd7af4f29d2fd209b0c903be75d68f6fce0cb8500cb038cbbcaaa6f593a1d62250eb8e38985bb2213e88e4e1478c49539592debc77bf19b1df6ebe73f01755a41aa5e4c58976d2b97ac944d09f108398ce657a592397b6fa933c8831f41af0ae422a3d20edd97df344e71d0a1bcc00b15996592495127252042d3f6e629c974e07b432d758dbdea7016f27b1fc2627e6f40e045aabe0b85a0853854eda2f6ea51f25c8fc7b4afcdf1da1bc0bbe128fd3c3fac700e1947d274fa0e05aefcc086a29b186a22a02a559616e00022f05ffe725e5515ca2ec56c15955cefed18b3e656793c6657ade320811dd43a52607afe6dc8d8f79b1ba2ca64586850a881ef7f4cf6e97dfeea92693e1ff85a5c3b8306883abc1a89a2abc44677e4832b508bd896b31f634b6d37ed5b9e8dfd93c6dce5853162efa384ee082b40c948ef3d7b62903951f87f500535b4541d2ba41c0b6753c15d9c64a277838ff02931abcde10ee1e97d78225cbaee95673b5e7ea46d4d44ac70929169ff7b2ff71fb37df33cf8754826fd37e3ddef61a8b00a33a3ec35c5de322811d1e2d312f6ce2288df875b3e5622da976e35e2b1a3db6522d59f1482c4886f2e3b5896a72592296ee26f4c9ae00793b4b7a70e70bba0a005a1096a99f16cfe1c10e46059425a70d4d6bc33465b8db41a097d0be783a40d92215dce27550ab7bc98b121f8fd3527dcbc93def25ce71792bd784f52c6ccbb275ca462a3a35032fbb569dc8a93f34b9ae12c00d5413e5237161b7087b2b0c7f1ce5180d8bd7e9300a461d865f1a79fb35674e33c7f9698690dd91254e324adb9d9543ecb0a407f4f0ce3cd11b66db5e0351161c4a6e81692020b3ae0ca73083addd2f7884d8ccb795753494c4014a63142e58146914739a1b2954bb4ab5b6db2cf3853ba517bff93e6da0b2140a336d4af3f77e90bd8c6bdd4271964c9a3e67bbd2f00f00aaa2fc975aa17fc61b26458387334f7b35352f2e54543d59cfb753d763bea4a50f1547056a24438ec07b964139c390f1bdc9c25fb7ade3dc3bbcec8dd026fff0e96b25092cc3bbe4904e72e510f7dfd6d30eff7928016f5b99f325bcf2f7f5fd725027b8e98798a1d459cb74013aee8817b647779c8cfb32738313dff85bb46ffd9c9e3d6307fd65ac40fbf339c2038e721c009113f7562e6cf57174a4743b87367722702aad05d70d583d4e191c7793d4ec149cb80583e7b3c81debc38edd89247f0e760bcc3aa81c4d31ce86ab37bc21c56e75df4d38fad5d69923cac3c3771b30017a35001f76aae85c26b135463f2c54817eb45a60064dcf8b80a5f96612223e5e6f15b5a870e7bfa50976033956d3a8c029af05998283503d873853183381cfcde6142dbdd58dd9da53f432b97ba193279719d1b75e2c901d10164e7c7177efb8f2ae3dbb3b122e29c20a5d05fa830db1403fec3f761d183e0763fc0a1a4b7ccf1b8d0ef2aba270a73bc5c96dc9758fdfb61429edd215d8d6bcff038d74342084659e8e288dfebdcda9fa0cd8be3728386d6a932ebf19b0bec55a4ea45ada9990625afe145e71a5f5609d0a3f0a70e6c396fc89a7a84ea2f56b8f9e441e5bb66c59a2e2e43f7a7fe11880103005cbde8e12f231acd2800e1eafb19534c01be4d978f2efb850ea2c357591e94c51f7ae2b689cddc9d8bcb4fdd469078f76d732581cd50124d68328f81dd08cc84697df2ed48a873d01a7bffd8941e34683a9eab320cafeb237644c17687950f0b281f0b06442d37a5f7ac2ad9144619c5a0ba17248149d5ec9c2cbe28d3458a0e6eb2bcf252d1da7c6d9693e07d792a81901d867b01e591866cea88d773c4bc91457962b5e92031e8cdc99072ee3f2d64ceec023546c9245dab35db013ca3df2005b726bdba97aee1901d702d2c0126606cdb17ea243b03f1e1787c83f411fb4fda7d8b64e1cee5a51ef224c38780bec44c13813228863d060891db440e2ec3d3bdad53bb9822a57bd34e9a89f42edcea9427fc1257497bbe1c53238cb015fce65f858a9e8b6c912956433fd506a01c97f56db2b912467339cbf367d9c09c53d94b7feb70307a5688e451fd33fec546d11940239ad287a62c1c97f8fa2c34a7486de6e9d269e606d80f77cdb3a7dac9c4fed4f950c887ee4026530deb4b1eff0336292990fb47be6d53a8e64acd4b40fc875f22f80f01249ad7b9cbedc730f43aa15626cdb5571cecf431be6ea5efcd1eba1a8ba1bfe57969216ffe72d7f78923b076fdad1d95dd597c3747b19b905c2a5b8e02c4acf8bc4c4d4a8f52ea7b417fde48e2e42504ddc2211866198988c154171b442f256874020b0cee9d13b55a0950248b36f83cf7ae39bcd790500e9d29ff73af9aa1eb16aa6d8c7a6fcbdca0e5cdab13c8e58ae7a4c12edcbcce35655c1d01916006bfd16a8b0d875a16c8ed7c523809dcea3ab5b23e6850049a0cacd985912a0c6f3df0ec033a081672c2a8525d9d72f7bc1fbcfa21842e673e3e4be33da866081a2a78d9d52dc5ce38bf935b9c65e502486ca3c6d783cf026ec8a7f30679768d50899c59e0d81785fe65419097dafe1dc57783e4fbb76b4eb40a2bd840b84890e81405a3b580daf34e735f695c0fcc686826523d21daf6b5c4071f693f476dbb32ae1e63e0fa0bcb2ef4aa7d7d0386a2f19126d9e72b274142d30ff959ab6392c359a73d38b8ec09821dd988b2086387cf61054aecb3ad13097687f4d1f85c2722ad8045c9d25be1d10e34b5359102327aecc41502786a86045db710e5d9f5adb2bec0c1ff4cc1e895918d7a2c4ad1f8b816554f9ca13c385ffc6a614606326e7522ff4c046fc2e5babf864ff73d2a540a9ffe0e7356211e5dc94412a44231429a8ec9a8ebc509c05f30ab08dc26f33ca85b1e995d51a23e7f720399eb00e513a6268cd976698fd33bdff8df00954ca5089e1adfbe5d3af68a910da8a6c6ad0be5ebfd299d1d84aa405c46077a47f6e70ec4b18a22774119bade9446cc582ca790706e2b9fa2c5e8ff9cfa49c96adaa1480184e85554fc574d4e7eb06c2e238721502a90f31d679a16ea765d479ff09652e6125c78445eeb11fe1159e5bdf5b27e416c9ffad02c08210b8c6aa82559ec1fc49a831d88ad36470e25f7a377335d546805566ee9bbaef867f7b32bc5c7dcfa053958931405c16269139c09abc0dc911c4569116e6d461162a4fc3d2c63f95fae1e0b0cab0997651c86596922cefc5c9564a0bebd8de477da8a008087082a705082e99e0db3b9d5c5a7c9c8a9b2a792bcc9f3528e28dce0f92de5f2a716765138b5b06daec19da4a5a69b1cb04d0fe7c903db34230f73854061087a93c134560b7f4209467ad15f2d1eb099d9f3976db13f9a2dabb19c9a1274e9b22ef2e305610bed8be1994c1cf541797016a80a6f68423aa6b05543884b64867fdec67f00d1f2d17735512595b71d5bc4bfe04b3ecb4f9ce03e4ecbfe5cbbd01f5bfedabe1a1eec16c948c71f89c5e5801bae9df378231230bd188b141ae05bca5e8f77122285d8d92660b5bead8c416cad19566e034733e66d4b59f614488607a013ed742b50f9fb579c050ebf86a1b62eb335a648add887d93631667b645c192217ea2085f4a00b39b7a39492688f6ca3b339c07cc7e55f30c66e323644c967de7f98897fa88e060d331f8a9f4a8eb34f5c8e07d2edbcc123af6ee027644acdff4f3fa66d4f8a7f10f7f4cd91f2c885a0569c320e66ca741262fa403f4e66262ed3700751ffdd9b679224342d4c68948c250eb23cf20b8fe0b92e9897c7f7b833c90244840adc76d227c36f635fd14cc28fe3f7945d54637ae83a9046b723720ff51749258531280ae135f63b4af3b01bdb52d57cce13afd73c9eaac7cb4c6d56ece888780edfde19311f41c9b89d3bbf2fcf992718c15e8c31079dfc74f069116e1a437ebae9378b6c4db563a919cc4401f28416d93bcaabb6a1dd328df8ee7e866e181cb7d94317d1fecf6f39db724a7aded4d5aa714a8a7ca66ad1c1813140abe696f2f753b37f638bb5d74d96cf97df8b6ff88ec6b908d880238623e0eb0c050c8093063d0e943c8ff486045428ad798bb95587ab451b4e0a4b89dabc284890443fec34b0a8957ae8171cb35629b9de8a27439e08ee4527281adab4c880dbcc647a03be441b7f16c9ac6ddcf5136d7883893f59c24c076c3537044246b858609e91ced177440fca945692790f76231d9301921a4d2fec1bbf70111c9199a49416af1df8314cf93adc1c845c8f18afa84fd6121e0a37dd826928057e2231e8568dcf656fcaf7883e8bf82a6193d813df4b1d50cad9b803233490af4af8854987aca94f0085f4c876b25e966fc2a688ed7f749c25bd0a592f88c0e698195af91f8f5ecb461084d666d5b4f893ca8ef68a113ddfab055318cebef4f703d141d2b692312d2767381d7c72f81fb78d3a5b408f97cc564f7fb5d6a8f189cddc939d9d5f69bf6e92a043179450534a5e35321896f8ccfa3c38ee5350c6346ef44068548e02933122f3d1323150d7e8a5ea192e246581a8e653595ee12fa4114fcf6205518a70b7a78af9d8c7d3466439f77bf969b4e41ba4f1127a074d07f82bc79cb90ac61e9614a043e1fe4721cbfacdf7e6c2b2a41afb6773e35cf132183684a9a139c466f3a553ed569e5df09426054f9f0b983c46a5b2448ffc5bb3cf405317bfa03d54929a93ec29d952d4be4dbc21af1847b56db250bb130ca97f5c71c03d0e75b9af48c78055c1051fa3a0f51b32e01c96c80688fd2fa61731d5c8165028d7ec249976faa5889bc1c5cb904175485f855ddc368dd404c0f6879fdbcc7f2a9ea59c08c163dba6ec19647685711615d72331b96a92b26db19d6a4efa6a881a757b4885e7778d89ee076b4a66f6621144c553affeb468df4447b81a08189d8c37550afffbdf0e1d4fe9ea1ae0786f5c92b60644263573d77b73d3eac21f6743afc25fad9c7586703a7bb5adcb07f2f3ff57dac01395bd64b7f54868571c39f942242d5d0a624b56d8974a1cf4da92faa5542d9a30a7112c50c003dc8ee9d1da1267486b522fcce94f42c9cc99595ffac3b9fd65e66f2f5d9b2d2c7a52ae8f222c9097ac836fd76fc6154ac64945ae55d5ae9c12d535ef8da298929f84ae954a8d09bbacb90ceea2fe8468e852a28a98ba9ecc125c813709a0e736f2f894b224484eae5da128240f9c8bd642f8a2e8703e3101d1133dccaff606b337bb3ea7c1531ca30b554478d71e3cf91b6bdd407a4078e3ff4f4455da403613448aaf25ea2aa1f4c661fee3f6b3f827fa81d3f3875d8b0a324dfced267406f4768e54d450bc3ec3c43f33859bb86e8b9a0da25fdd35d2fcee5bede88e143862301ec634907d66c790082ff6b1187d5fc2d78fb79fb628dd014cd915e339ca3c9acdd2744693f41dd3e33218f61b31b17dc4f63c6dcf69003473c53c309bf9a8b0cea76d4a7e0ad464da047ab5ea05dc5710af86b42ebc6ebe4b1470e84846df36dd9c662839ee5ee041879ce268a6ee673296266b25a177a36c3876857a7340d0783247c6ee166cf961e7b6f0ecd42ab097fbe9f5e1c6a1a0a802ad4bd4998d5bd55821ece1868a6d8e704cb6a6c70a46fb45423b9515b429ce81f1aaa6dd8ce64d256d08033546c20e0c1c4568d3fcf41c39d80eeddff71a96fdba8487c65fed40e8b9d5c27574c052724f6b0fb4a04077d9a189ee6b9d8207fcead0cc208d55335b9537d6efa716d0d07d5fca3b06992057a4fa5581d10c2f4b2f367ee9cc34102bb974d84d13d289a211c6417d2ca015390dcb761e49e0c9ea54fd396567e244888ae2e6b36b3f40949dfd00ea5f759b19cb2ccf5f3354cc210a7fcb19c30be6d6513842816313c4783f5fbe2938d0440603a1c4b70d9389a66d8c61b712309ea6135b144cdc7f978e9a25610eecbbc7484d9895de16796d0ab10471469989dcc26f6484b14be3e735aace9bce855cb94d1ffd76c67317b07d25712c135db3d3615c44750fc168541fd3e9f2a2f04cb3bb534f37bff906952e25dfdaabccb02ddb469b267fb2a89a19355f046032893da18dff5cfd7b934bbf7d2e73ac062e98a72ec5c2a09a6b3879c85991deee14d3388c14375b42abdbe09d44b4318f34f9cae14ee35cb7c3599465ece62006e33dfa76441bc6379edcb863611777a2948831b796daad1aad7b132c35deaa287ddcafbe9b8b6426804c7bebc93f0d20c81466c27cbaee3cb285e06ed5c30f746a8b2fd00f3bcd177258b1d7de2a82c81f2fe5244d9ea5be22262cef939d2c71920ab83f8e7e758665d643506fe022a0f6259cf3c210b95dc9b3531378a1109ba0e9d7626b2989c4fc491990942400df24e18cd62d74266abd38171908355e94353c4d81f98f0a15e2bc98897360a51aed191120ff1c4affb3aa440cad3a771cd53301c7b9a598343d0b26735bcedd0b2812d7fa20a4bf7e41d3161767336b6218143c9166efb54dfe46b0b59e5d981c681eb99005c93141f366f19c925d396811736751e314719d85503d412d7a3ba446adc6f5d73deed9048d875ba91740f8c01930848f670c5061fff96f0b9810c6ae6a5c278cf71444ada9b5b1d44b418b084bc550377ed55f1a8d859631b90ab33800087a0bb15913ab91b6b96755118ca2863ff95daf9f2c21e7bdc311f526793443bb3140196f0368d6eb29c22ade1ce1e10af5d8513257468c7f3c1872833fa9fb75da61a472021e6df2feede4f46a6449f9bb2507e19157912b442ebdc3e7b116a2bac987d8a41446d2422d15f3697c6bf5f2461c2f66beda56b01631a9f09195d0ea64c0f6326684a36436e2d71e74874200b0e2941598b3b6d73a1f28592132f542aa5ddd399cf5c639be0aac590769503a7f2434fb40e86aabea2580bf68d9104f65b463981a5bfc31b80ede22dcc4ef6474e63ce91d4aa1ecb1aa48520f6c88f3a39b06eb792401c0a66afb88078a0c3374e1f572662c008275b1372c6772fcd8238032b34cee440def0cf673436dc7a60b9d311b77855f647aa44ed8440b249c9cc2e6d12835f477900d0c2bc142c26e9ba1f6b4a64e89df2ecbbbb685d53e6995aa1f847239e8920ce565e75400ad1423665d80a776f89d31161e21de2a8c65840d2e11f863e78e686ad3162fcc7de5f244cac8d2fd29092e602cf49105b8f08eeb82acac1123d6b3a42c7332a05b10ff740fb6f5c6f24ebdccd10d2c3a9f4299f536f9287a02d1f4327fd70ef3d9eb8e4ef8ffbab956793cdd8a0117fe4988e4222a28f6aa50d71089355e8403b38ea4bcdefc57a091bfcf59aba3e10f13a39fdabd8dee08d2192de60d7ca5f9de28113916f7b60845733456f4483efcb34a57ef627bbfffb10bad28c7e129e57b95b09b65748ee3218748b18c88923fe490f0e129104eb47991466b83c161231c7c9c6fb18924e34952c4738fb80b02cc699d18ffd07b1fb0fc394ac896d3b478c4b8fe390f2f91f6e8599d8d7d7538ceb6551034c9ad356b59b09d18385fd88d43ff3365ea7817ba4b363e344349566b1fca1866cd80fc9d6900ab5a089be39de8abd7e45e78346669fadab4e660398d2a0f2358d1e0e7cc1e97c8bed81eb6fd06ad88ba5cf3a6ea8a93d62ef59ca142c6475b2560884ca84b75ba8dfc89c9881f462f0fbdbba5a919ab8a26749ad5f6b1ab8a2388cfac0842f1e07b53a98f38df225837919e262b302b8e626b2d6140d838e2ec683daa2dcd5d6c664c07813be20f4e1a6882d521799040e44cedd5fab449f8322339a6791a147a71f185560bdfd46e7185f26ec166089df8594d7839c937e527da1e6389484c29060fdd99520ad963a351bdd62079ba381fb804755e19d02509fd46bf59401710b8d126e43bca380c0069cf4e0b3de2aff24a84abe631627b786416fb0a4b988c7252ea04d4b18ce2522af1300a8c6ebcaabd6653c857966c41304c82fa81b061587edd26a6572d0579ac62f534a195737abbff561fde4e837c5afe06e9a9fc16b39afd2a7c531570b05c907dfc664d6fc887b5e53089d49d684cb561b9f3717e5d156c5e2e007b8368f2d529cc95e8eb75dd9bd4be598fde9834a7c19e5e0e2bf627cad50cc1dff9421d695f608915667ed441216a5b096bf279477fd587e48dc7be98cf773c062249559614ea01c55f12f437e974846382806edfe9427679842bb850c3521ed82a9f7af98793a9efc9c69c78e432f8493faf152b45b1053a59ced1472375178d22be072dd3f0c7d2195d3e230a3d58aaa8d171ef705888e0bb7be689683dbc8c474d323aadd9e2e7b6cd49051d5e3276b3e29f998f9aaa03c05fae7806f68610094b82a95846a392d95c8a1f80c8cf0eaef9b0244d2ffcc9d1d5b8d47a737b2e35e5d7e54d84000e3e95a060e0c39d9af85f32888dd091bab39eebfd4ab36ed1ee80a29877187a0a0226dfddeae8ca4f9691f14769eabcddbb600a73e4e67d6020f2a1bfe5d426daa6290e6e662aec37108e72d664b5974f897a1db6d3896ca69f1f7fd399ceed0cbad0dbb55a8e9810053669b0a4f1b00ae03b299eb656176cd704af817a32ca0d56a7e6f4c969c95c7409a3933c960866cc385d2d1a58ef730b6649733da3a2763e6f4bfcd5576706b47fdeeba0aa29b0bc513c3011ab26204acdb4d581e407cd4d1b428f0a405e9e5e533e4ed1bd36f419bb6eff7bc24e70b818a3a793f66e0f3be7b0df4549717161cc9755835a616b5fd7ca7ced84a0ba22997290a83c439eba759517fca648022f1faf056469ea557420a71428d2abb61db860141211af0056819e1658012e58bed966dee73f111bbeb0603d64e52236292620ebbc758b63a3f39f214837e57809de6566f903bf8501921aa85630f92b38eebdc3d15ff0aa05373f8ecf6de679713ac7522aa00b8d6129d3ed467f4d8b9d0df97cf204379bd2ad693948e3088a1622e8dc97eff8cb7c0750b5ecbafe855a14e192ff00ce522306df99415f5fe9d2556dd0cff5390d8310d49885232a18d0bfd21c802c16bce3779985ee841033cf9d91b07d369cb15186d0d56932510865eda689cc6daa3b0f238fe2a791edc84fe7ab601d7bec6b24b17d4e57bb29731ad84743e2257450e78413a0fcd321d6e5a51701b97753e244366ff9cc897b7084fdd70e7edee8495c76645f8fec55a1cb628ac03d7b7e6e39f7df5908e9072815ead72e57521acbc3f342d39ba0cef8fbfecf52c0de96972a1caba4fb60a8abe3b5adb1bfa0eb86623f505c9c2c7aa4ea6259dd9e3a80a47af142cc47a2d0a1d08aace13302309da1c4de54c6c328b5ea184722dbaa5932fd31d3a94eb2fe0db2c98ec26c18f6dccb56067902241cf8e6780faff223f7f8e3cd3c8016bff7416d339c1a2c99610a7e08d801de12f069eb801a78263f880f8bb0d1409333686b06cb29c5f58a5182c6fb49d3abb60f144d31feaeef8badaed47e2bb31ce61b79e2938c529f43dfe569c0e55b4558a538ffeec33580fe927cf7982da499c99952c8228358814b3e5a78199297e6a36073502532d6e0a4088b811adc50c5065077eb22c57e0a6b18509a10d23644690f6d6acffc173008b54a16fae5d8973f3628f386e72b2899b64285e673cbd4b83ce1c4e61cbef3c25c7f91af10bf6df9fa46458dbb8ae14b2766180ffea4c6f2987b13bb36ea4bd4c42033d1ed38244ca7fed987b29af8e106765b4334048bc891b064e1a802ab5441e4b25ce12a4a6fc436143d4b836b376154d0a9f67c1cfa60a9364d17c260b482903c4c8e042dd61d07ae95c71f235e3122377e283925add7b0add65ee6cd94b436e31d6193a138c0f0add037edd39fe26d551fd2b3fa392208e1f044994ee91bf3a261f8c894a8bb5c5b6c25015d6532818d6350b2a02332d8513d496624c0b766f811dddb2d4533a25ce42571f9a5eb107a59165ea67800320a665823dab8aae83c31c0dc6d9744a50c691ef5d04627c3242de8283d13068f04a2d9243f5c64f55944ababdd41e28de00e68eb60b157053974942bed8dc5d3e7210a7fdc82dfcf33d5785ed167ab63424734cf7951ca72e6e8a58eb243effea190210a8f78506a32ca6396f424d29d49c4e425e0156fce8f898fae2f3bdf2c33cafc4ea09626807740e9badcff392c1176476c19ef1e5b749f7f62c975351235b3b9978b86224324a2bfb658aa4ca8f097a3d3a315da9f6d9897fdaf6b21a99fc0c7d757449be1a893cf8bb1108653b2a464ae373fe3185040026c109cb902428aa16b4dedab2282f970745581fb92bf391da2c91bd14d48bcccc745d941435eca44ed34d91199edea5ad43287a2b30246fb486aa5f8a2811ae8e94952f5e43da979b044c1fda105c7985a49bbd393e417ce5a355b16a729fc7debce5532a55853221cc1ac21fa313e979b1a27a000a1039766818817285214963b7990db7260856f45b2864f4569143d2d97f5435501c6b83a5f2695ea6e7a74c4f8ccca906804116449f8f2dac098ff45f4b77cfcd35926f24d26da42325672b87b1c238aa8dcef810d83015b3d159ff37715ed86eee6c1e261d60d620737086cb8e92b160d6bd9d1ae12878e1e21a9de431eb1e331e8d6c672c20f7d24dfcb323bc4db7168213a336ffaf04435b22b3a91ecbc6a460fc54f0cba34c2b940ab75068c3d18abf83ce3726882211fe19cefea02eee8192f0766fbcd178550b6b2340d51e28ee3eefe92583ffae59b2156ec573cfe3675a90eda7322ce37cdb554a37d8d580edb5ef02e1f3c2461fff3394692647a7e39cc7ab83564bbd040f9431a15be7e0c75c745f738980074995ce33bd9eb5ad48052cceb0c6272cbd19381778da6964a9716eb9ad0c5af3cac53a691190b7241484f1944c113560a74be683d9e9692afab48d93c9762760ab061a98ca0aad2d70cbeef7023c4ca6895fad2d72ab186eb2eb0cb9b576891ced723ad36eea4fcb9fd2b106364066bbebf06e2d155c4a270e5f8e3a61efcb34f1460730f8659a7bb955a486348926ed12fed74800c944cc2b5d087ad1779881966689e70682fdb71b514081437835d13c6ee95205d3dd0e3bb7c11710d9786a38d6f766699de7d5738b54b442e36a9da68810e50ef0e9aee1405ed205932986b142d8b152e59a01050959160090c86ae677cff23caafabb6554fbab2759bc02b277afb781dd534d1a96d3e0e2bd44edbacdf5f9231e6de0fd4d5ce673908aff0ce7417f8edebf0e3442ccd2729b646abdfc68d18f7dc88f610f27a89cd4f7421b2a64498c94c3048ee0519d64cea6f850dd7c58898e6c32547d305d667204f6f4775b0d327d91ff10870eac40efbd51c12ddc88442a90a86f01d92330eeaf4f0f2fcef0c46e1005a012ecbb6d0a9bc1c20b01ad0abf8fbee30879d9547f2b5abe53449d120d922bf6a0c8f1642048fc6b7c3dbd2ace8b6c3984dd97938edc3b36093895e357d9a4f7143b6319a692e451e85325786e57fb6968d4b5f63b2faeea1bb6ea6f1c71b36d9567432905868da49a9f74e6c6b668c330c99cc0d8388c96778ef98a7e5284a210e4254318b6000c43cdba5e96eda424567105be6b2aa3c8b014076d76db2637b1ac0946b159938a77239301af9d8315de886dfd30932e8e7b70e93b4f151ddb6e281e071335d4d92e5b20a776f5791fcb9ed8531573aab6337e18b6294b3e427c3d745479545c8e45087b94652e8495a7f12d473d1de537563fcaad77f0e5d2d7750dc08e960ccefb91540c8a5bccaaff5bc5ee7eea7a6c06dbfc5381d7a80bbf33fbfaf406828b74bbd0960788ec50e550f51ae3bb2542892e90ade3b70a8d35f67f0cbd08cb0839bcd79a9025e6d76de8b39c2a4d8af0caedd0ee0c05ee0883ad647df550a7dab6e86229f0ca28b330fc9cd646576d7cd55317e4c014b816b11ff4a316b1dcc4bbea85a984424218cc53efd8de827a1e5e635b0097956310105d4e9991b16a8ffc89366abee8116561e1522acd2a07a03bb7e0247c55fba9b34406054cfca663910415fda35a995c150e7a07a0ee7ae3e6e25bb72e5837eaf1183bd81f978c5776f7b6a34e74c4529216f0531b154819fc623326c23d3688e523a04556eec78c0cd736076b9fc2508377a6aeb4be9d95c01dbe8c1ff98c77ee6b24c032af49b097f709e8bc71cb141a6a131d16e83dd69973a1c380d626992f782c8e68726ab6bd255f72989b68918d70f387a03c210b8fdfb0cbf6d1af1c1025908ba036e9660dcf876967269f3994f2ffd4e4b8d25fd227f12be43d831bbb88ce08f7aa4eab76ba2d6b270392f8ede92cc1281dad56331ea18d81b9585ba0e729527d497f99cc505721eae8772cd99e3fbfe82f64c2a9f0699b597729f4f1b89d4db84186e346757c585683fe5d9c74d00652d0834dce0919ebccd307ca27bbe0ca2033e3ac02ee2d9523f174b600c609b0c8d8ce0a608185838e3be3687b18e594a1b7e4c4805c11f3a1925768d2d1b53062d1a73cc01c8362256272d56e9b88101cbed9ec23c633cd2f28175764b76dcf6972ed5c76df04416fc8bd5341f36638e5b42320b4acf4edc540354c0a83fba9ddf6f471ab2bd1b5199304f97e080012468473cbdeb60bcb6bf80ff19d4a41bcf03e8ce8ad7269c128b1f51b6d61a44cfb58bb7fb3e86aa0c006f795fb5937ed89c22d7e6f7507c07452775b9f96d996b53e9ff4256cff12741d6488846fd387c353d0410615d2b828ae760167d7285b978a6e1d8ee99262cd96705b9f08ebad6bb1fc542db3ab0344197afc5c7e8901bc15f0aa29704f182674e20e33be624385e912e2c2223c491b6def87d9b5d986af478b9396eea78d6cac6a722eb13c88c78be9af462818f3d5bd70e07d2c1738f1f097225a3ba79da0caee7b020758181cac30d6618a283cee60790eacd949a376f5de9e5cade75057dcf7882376f34f22b542595db2b233b54345e70bd2525c28c795cf6a44b55a3db0a0ac8ae24424ad0a4ddfa6dca42fce91d4e0082c110863b05e86b2611ccc8d649d3c350ab857427cfa4350d9075db1ab4d3b4ff48e3c77ee17dc4910e7779b4536c9a441a6919c87098b915cb857296d374f563228292a9c83fda8ddca204afc4f8d5e4099492b6b789542dfc9f4d5c34585d2fcdda5336c123c294249b1960cdb2c6afd6aa690083108620f35b5aa95b299409e473dc0335b968e99046b0ca44449d69bd46923975e0693d0b3a86ff75c525dc9d300f14409137bab8b314db8c20c34673ec16d26d7bc9bccece23fb328bcaedd4b7b5a994b18f7c3ddd28f75954e18e0e25caef0423fe59350070b1f5859f93bcbe185cc0e61ef5b29761bfd975b9bd8967e587debe2fd4d4ada1643da67caaa9cb76ee68b50b3518727d073babfdba0c8c991935c1618faa5387750c78befcaaf7505f6f52b77b1b4cd9f603fa67943887eb6fc40b0893f4e509a6785b7fd9b986aaf7b5031d40d0db50d5bd68719d2aa71d31625d34dcec377bfae4f20c9104bf4c6a3b89944684741b409eee6e5c15a842b3709cf804ff08b7ab8196befb304691451ab54a9a9b745c270d7cb0b58a795b6dceddce6e5364e313a09034e5c16815cf711b1c6aa16fa7890948b3a26e5e89eb2c32b633ee4d6a11200b889f17fd7d2452038c4cc1280ac536c252997f1c3c1626979833060d25aa0f058884090239da14cb5af212b7447ce9d2c118bab983238a15df3eec2e93e68f6faf5dffa215c70edc5f7249712c8cbccc42e043365b891288006c8af69060c6d03c02416c09e324552f0033d0fc0ad01b141e3c1164e245b2e317697f4bd907fd89c263300686e07015276f85d549a56d611b42fa3a10d0c288f00c4cf43f5e9507fd4413ab469a00db926b4cebefaabdce589723d95b67e065d2bd024cb18e798261933d0ecb4c9e826ab178fcc49fec80becae81c185a9537f786c635df184478e0fcb29738535b27c0dcc596032378655d2a8b5ee612c43fab793c95512d9cc7c47d5cf1ce05ae904e49859eefd935297b1a7429b04a501782891fae282cf36f619edcab193acaae9f9db8c0153fbf02a981f5e7c1c4bbac7277a7788e48d87c80d4cfe6d03c56dbd871dc4b643dc4e6c5ab16ef73ffec55a73fdbd9ee9a47d014c501382c15080f2fbc22c3eac70083ecf531ba5af2ff2c6f8a9ccd11b8abb7324adae95f9c168625322b761e17cd6851cb81ad7e8517146360fce9ff213b136a277143dab16f3c801788df6aee679a9133bc90f08b8d1382b59b6dd39f2862530811487b43be9456a813f6ca6bd2a189ef54382fb0e4b9ed849b132c85c915f4db21475acd65fdce7bd3c45bd8ee9c439be479d85dacd9e51b2589985727cc75157537a8d800ff56598b5953b1d53a1852d5b7d0fa083025ccdcde3c1027a85429107ff2fbb69de88fb0187fadabf28def7da754ba9d9b9a01dfa33dbba3583b65cdae2942bf84566123ad8f2b989d7092e588ca788c3546cb16e8034f239f1cae04ef2ffe21bbfcd37c45a1b314caff53658fc8fc99d8affed92167c8ebcc227f81474e2c0714521563973978ed3b58194eeb58176fcb46f44161542ba802d1426eda19537f8b2bd39279b35f139715dc5d8d7ec5ebc521772e2f1de67972c9b69b925e5fd9146f397e6e23d836172f4d5bc3ce746e184962e1ef0a9da4d00c0a092a26977a8268eccf06790d094c76a72ebecae6a269163692aaf7fb086abc26d3e2bb3dd7fd9ee8fdfe213529787a98b8ea6fcffa964eb78e69e98250f7474d02dc9437446ccb227871b7488d94b7be17d5e269fc70942ddf17faf8c3f679ce540fa595107cfecd369703040d5afb8030bb911be0835637814eb77355bd36b7ee82d8b857097ed7a1953fad8cfd4849cf692f6a60dbc025e70cd643bb1ca0282e2472eaccb3a9cd5faca63aa61e199156979f1947418ed9ca2e4bef674a4044bba21962e9fb55e9e43eedddf2a7da5ea382f66e00fe9f7a382450b0aa27c3c736a071cc42d699284fb6c07660f57b53a012c32652f708224c2d8c14505b151bff93afaf8709a94e63d074bc32c9fb36a8b19af8c5c12869449d653dcb0678c1cb16ff6c53aef5a94f814cef57d8af3ead65685a5abdb36b2cf5182a0b704aae2944fdc82e1f59b1ceafcaeb0cad1cd719a754e73b0f833abd4ac044808b3c1cb1ff5c7bd389c8766b0bd939210324d3d72bd0720373c48c9db1f7feca6e43854da7340c1a0b80f9a4e6a882f0eeeea2d0fa854f91d9cbac67834c94450cac7744d4d22d3a581c098afa62d08f9495bcca26591a30fb32e2c884d8450c7db8de8fbfb5976ff132989502d37c8b00e6a8c7457b5ac683f155ab41b0270ab543671816c6e39bfefd3366d4c3a66f309e7de049305a946a2ac1f3b287b22bab32ccbb37edbdb2579cf48be64ccfe2e8aa2e4626697439a619101c24f95e4cc3be143a5873cd4e478c690176bf1848fe879d461cda2ec18a9de91e93e3ae9b8731d24b5cf46818998a8f4fa6adaa1cffc73662bfca40f16c5de7b3afbbda673a768606e13948f6eebe2b48200f45d25a2edd544d852fb9ea94b25f95c557284667c41d1043d5ed7642811dcdd446d5c3cd64c7c7c5be5af6a1f07678ddca3d802c9f6c8c6436cc85bca8de9481c39d12efcc95cb8fab3fbc4f41ffb8eedfb84130a45fa72ce18c70ca15b8a9a1001896369d4b68d5b778b93f72125b34646dcf4eac2cc943140ea1784a472c14dad14c6cf8d84b2cabc6d5a653e412281728845bb558cadca7f8c0153be76be332c45ca05f6ef12b925c9bf9db07c58179d006733e0c4b2aa2a80b28d86a9274575f9e392718a4c8eece80cc36a8da5bbc2cb034955868b1039dcf67c68b4a6658b770b4ce5d4324b4145b0ea8549abfe177d8313a11395b3bc58fceacf5d776818d33e00f90f4afca71cbcdd575de3453f3c98c0199b21dea3b8da6b0a49eeee7bddfe3453ec50fcc2ee676950991812d7f8b2986afbf257d5ed0636d998ef9667fccff2df1ab206330c8b3f0093e9951a1e8b132b44c320ef7bde8a35447479620dbca174ed131a777a2567eb9e4b9c8eb89dfc9395bffa311d22af099b0bf9cd2dd1f56230c82af69dd83c097b05bff484a7a7043f07c563d47473e0ae55e045d89eebcc255ea59c776b03145c33edfe4c2c354a8030a6b265df4ccd1188d07549bad4cb1312c1b7c647040a72c4417d4bf3e6da1dc206e3a74dfd0ea4eeffbd873e74bc2657a2f80afa3f8262fc29000f8884770cba5b523e10cc2ef7644841ba462b4281544dc935b6aeb6a9f2db2877bacfe4d408c198135a4e9e23dc8536b57435d33363685dd5d210664d131d22f61b09aff41264d35bc4bf15ccdb4497c26df5df7d94ce28a7484fefce9d58fb348384296d2fbee1fccbea3470fcc085b75951e72a28f2a5ca366c48d42506e0968d4d1ce62d9f1ffa4ea1281e6b330458671f0a16160f96405d03b391126065dc19dcd145cc0766e812c556096a71d7e347a2efde892d25fea55a50981f6a6855c8d8766441d45c7e3ee0528acfdaae68ae150da35ff49b9e9702f74fdd4736a583f1fd8cb436670cdf4d9d928498eb1ed64aa21eac4b89a9e106ec0c2ee3f819f5bdf9d1c201b50665f2eeac062ba1a7fb54fdf035cf8d76d6ae6164cce2a1fd0cb41ed9fbc242d324841339e748a97bdf45d7dff61033f3ebcddd1cc0f0cd137c2c5fa465add2bcd46394b04d0de53c46fadbdd9cab78f23ba4e9d9eb505aad3c77d30bf75328431205b667707605e47bf6ae480c250139044fad6c80c7a6570600e00f1f341100dde6896c1f3475f6ca52ff4adaa0082c28c9588588cfbd32db824be73d100400191c17dc3cc63d0903b87c8fd3628fe4ad7b7c5b5d21dd667e5037b1261a61bc0f64db433beb01d7fe6bbf797421626b3e5eb3c52f891807f4a22bffa1ed9cdcebd2266ca75e6718116e75ea7028ea0da7a74023820d11ec0a02aaffed5ae0823d0a14369ee7891f9ba3662c2d4bef0e5c0e836cae65fab6cfb7f7ed3a01e72f79011f0e50b751f07d14220847a7b571f3985fb95ec0683a155512902bb92639775e9cd28317c7309c3766240c372141a5fe058f11daa0fbf44500f85acf8963f35d93f31269bdd5614f96c9ff33c97fd197b0509c63645c4876ef71d40e46740e4cbcff69726fe138d6ced6564925e17ade4141a7b874422e06d484999b9a70cb8ca5c80bfee6e214fb6a377c963e87c47ee19d2be645bf8b0e792f1d9d7ed4933441c60dc94926ea2d0d708f818e437af7fa7bfa009c4f85753518cab88a3fb2305d6898c165af31bc7ceae359f5448bca3f3f37cc0cc807d3b6397c5ca7f6d7ffc7926a951629687dea7f7dcaf2af893d8faedaaf9fe8426594b303d9492098fa239756905eed908f6e61981c8a5928aae5e82dff05df27159cc9a54c4ad0ec2bab9dbfca4c2bae23d1e6244a7cc0c55eb5bd518f25b4ed8a0bc9995d9ccfafb9659421a80af94b5af0fb42e0c16bdd0e4b36ba9defbe9152277f8cc4748b21dd946a89a5aad1f42f55ddc9b16e0891d31f70af06bebb5110e22820a7a5be676b549417789297ba79c994c45969fc29bc3a42cbcbb01430c5854769c23b3709eeb490837b9ab5b2f1002ff28da0a68dee038a7feac53c762391926e65a691724bd07296703c627553a7f34541a830ce572b668d82a5bc2df33a53ae3bf4e174ff9a3cac8b6b59a28865016396e8a89bec84188e4c5cb5a5864dd298e7ee0ac1e3733039d3ef9a58e5af8f28a2c817cc79fcc16e607e2af03e4c25116d1ff27388b41c41ce5edcbc746fc022fe7e65db0403aeeb4b6c5a67201594f26b05d7841cc40add820b677955d85b142b723166bc176d1979b4c823777004882a0bd357e66ea9bdc4870b3b26ff0874c3522faf784e90e0e4ca63848b4055137000ef2e4c8440a1d390ad3382ff95ec7d59391cccf5717c25915cae664357472f264ab16cfdf9df4981ac968dc5aadcff520ab7a3be19fdc068db07a7981dcd0015866d472ed3e15aa2151e92ccd1d67f637dae7707f5c5d3c9bbbb647db4c36d080a5275c396a361f61e87ab641a2138ac44d40b2dce0c0798dc3826f0e8380a59b735718ed639bf56e2138451b838a93c431fc002285fd7af60b2e42eb0b15f2f584c7062fa4709ffb10721d4ec48acf9192871d4e41d2b6670a02041eaa7a7b968b5ca831f8788dfa82cbf7135b5556402aee893eaf938f4a93d0600af07566edaeff36bb24707514a4fbf093595a76ac513de13487bbe097408a24e11b07325185e03e462e8ef031ec1a20c0c3314ac77dd8672397f86ffd244257448f8c812e1cbccb75060bb4436d717e6dc8ed0dba736b7154cb43f6436793aca7b28d8ea87e2888315b9afef776b16ec09d7f62ad76d92dacc1da3ddf1f1693101fba7bcc2b30d5e9e90eead4c590c6552f778e46673cb5a9d94ea97b93c8efdba235e4a7f3297619e97d35521031a775406e3a4a15f7569874297bd87ac584c66c4a9ea1eb71f55c113a388b3ce5e1222d5edd729eb6329282988b1c5dae5f716f7fd3c147f48f8ab5e88e7baa355288765e165e2f41b5f969a6005711f6297d2499c3a1c29d2b34566e479eb6e41c2576ec7ba59fd53e0f9bf3e66391cbe3f38396f6e3339a5b0bd2cec1ea8a3a9c89cd96d91daad04436412c2f9413373f666bdb45df7986a973b479724fdb4e68dbe46392c894c092e5de461e5450b5808e1be786b5b12b47a325ede5da49cbe6ddc87c7e55e4a50edbed713fa5c0f85b6fe97dfc077d6b4addab14952e55711145923624369b99b2bb26442be82f048eb9e9a4004c0fa89896d91cf601d67953c43d440f36cced1f3d15713504f1f2de9288b10e91ef512635ce402f09c51a4fdaa099c60f064dd5bc34dfed906540a269e239ce24a235a33e2a29105501e17f023658fc7bc781e7bd63db393410a2dc46f8e928327458db4fd5a13df59db32c6ac3eccf217ae6a8e98ec5089f3008a5b07ed5f542efe85f517ae27666419a523f51f1c0d54cb9d6b9977eba288b9020577d5572aa957e2a559d2e499e56d90c88246b330d638baa608cd62a61efdb9d990cfaf49ff3bad9cf711964706f1a8618727539e5f86990a3933892da4567858bad649dc75fc965b8d48caac26c1608f50e73cc638e42c478bbe99cac89420632cdc4e878bccbd90f269b2dc367f24f61be1f38cd8ab4df7badcfed4374934c6f4459929864506d9d6facf023ad0a769c125d075c5d31d600bcc68988c4e687cfa69ef0ce1e20345d593f3dc54dd418515f4609db97bf88b5b2134e0cb3c49207a160e14098371629f648b06b9d359431f459fad8565f2a2bb432019f4f4ef3dec0d83af3bed39cc55ac41ef9763e3653b44f035ca77eaa2b7ed55836218c6760b8157a36c4810832243eb960943ebc110cdf710623b2ad92db0bd2e618f5aa9bc9b8ae7cd9f9890af11c6687caa33c0c8f53ac2435f96bf316fa6bb2e05468feff85b2df46320b7229407d0d4d8e0a4578292f5b2366f1f2ee1bb1936681f832a2966d399e9e62fdd5fbb5fdc8c3570c06e6d8ad636a19b33134dbff96c806058318952b1e7f5b95c95f1a7018c5f6a2868e3d42a78a50423e3e2126b081ab09b0ba56dcffb897b41723d12b32154ac3e5297fed23bf2172d86260104f7d8915e2224aef4240b78aac2835fd098bc37f4c469b17f62fb8cf30218f9fd391a1793d755f76447959cd06819a1c7c2f26fc188fb757cf1c29171b594c86e8feffe1bff983a8bab10a506d931c7f3740d06be1c00707893f918b4cc2d13e9027406a2625696de7dda5b0a9e9d1ebc08fda9a0336062ca17af9b54cd4e5d7b5c303fae3dcb695d4dfdf5e1d6d857c5dbb71254342c2543ef92309b0eb4e58dad8f1dbec1a3277a8ff98d56b169f13dcd762f2fb95ef71cafc41a273b31c72cc863312a9265f1441c1eff7af68e1ff1c4019406126f5639943432ffd4c71cc1c379ba2448aa4534ae70a3947e3e8b54290c723dc0b345aafb93c7f5ac0d22197b3e8bc9f1294b2e6726b629b673823669a1b1b4fa942f77e5d5e55d6be389e40d73eb348d95825b4bac5cef21ce730b75a1faf62b8fcaa8793f132a0d7b85775ef16cdb9141e9dac13f98cfd47fcf1a424dc1487105acea8208f4ae61ae35bc9580e4e865a0d6a61617a245f98ba7f44ae3a75320e4727ced8b706e8ca580b79bb9f840e68c1ed9fa1974dd4c55a9aa0a4cc7fc3d13b4bf4d08418283cd85eba2fbf8d7e4644204002a80b9a17c4a4082d6b09504b9126b57f00077941e2a2f9b70ee7ea5f3ba8622fbd79f5c0f43a7b8043b00634c2e4e66cb2babdeb27647be2119ea612ca5943c7c4736f705af6635686b8d7c77509df8a5a58fd4acc3ac061c4badc3b45b338ccf23c3801271bc868e0f5827ca04ef2e12b179bd6de96ab2a4d3256e3fc78939d3d0fe18bfb0a1bcfdd69b6d3c047150b87410371cf2f8c67deccd76b66fb7c9393f4075dc8d9cec4000120e811e5d477772c2b07a053a883adb41e33598dba832e594614063b2b004ebacfc270b6222159219ec0d899603a4385332d6ef14a8a2f32238d4321fa5432124de904c87927fa1368293ae41872d10e3d346a1097cecc98a6ef314b0eb82a9a28ead8e0e6d9c6c375fc8ea4c2779c9dfac38cbf63b49eada071ac5bfa81eb4919b942bf82eaacecc417f0e2039ec0db09498ab5de4b0f00f1de3a5dd85a6f5e9c8e3bf1b73305fd03c07fc49da531c88d9990724d4524e085e57d6182f4a40ae8bf2f8387e809c3b39e2326368993ca3bb909a64519ecb498c8b32c2d7552e328fd40600b5c5b57c72cbabe80687451fee9c953b03db12f5fb8e5939b3beef97322c5cd423a656c7f80dbf8a1b9c66441c247a927551c5c915aa12027bbf8c8008cda5f7f47216aa2d2b0f69d3f1a757611cd94d9903dd2bd9ecabf0ec842f42562e24defde86ce34ad1b1199c2fd2b2cd26c14641f55cb1580d2cb549ea461898add0a831814e2bda211127ab8fb0c0e679e528a70492dd3896716ed54594a9fba0f8242d51d2683d483fe575f3dea8239cc7a5e6526655316599375a4576f0e339383cad7b83952660b61c360896ea72ee6d6c7e3c8906927946d3a5da020a6737ff72143140621eacbe0d6d7b27e2b30671fcd4e16d71bc12a5b10738c2b0d06809efe93fc88bff1bf5bc5e3f1c393ada69baaf3f6284a61e438fd5dc1c301e00758254355daf7923ac4e8fdf268d51b80aa3bcd7403c58f817d4e9b1ce6d83b46063a50d165a90e020744be55b2eb3146d990ce97e8d707655ab2036f13ee5b43b8bce74c8ff1c92be92224c62b113225e94913899eea049dc85daba6e9e606a3134e496a980475eea5a67068e36933cb4dda469213b2dab6d5a7db0f082c20a5b8ea18008e7136911f9b09116b34d24f72d82e6ed8c725bf47ff2029b020efba091e50fc410d23af3e85a9bdb3dce07e5adca582e175bf07e6f2786262bfa0176c431745e0aac7662b803b5695d955e9ece00b26605eb73c5148b722c75704ad6ea2a3fd0fb1ce1f5b30e193199999382780ec492deb652549594f1b401103634d41c057da973b6638d227f201cc07f0748be69f4f2679ab69f3cba5ae1adff3cea748debb554518188ab00160b69b4156f413f4ee93c88396580bd957ccc2d9fb545932303362121a1580dd84de395b358abea8c968567235ae0e2fed428d53c49c415d3cce6f048699b6f88edf345095c74f420e928c077b9e3d49ebf31ab7367cc389d56027d7a142c61c3d7525e07a3f82f8bd720d5a29290dd996887e864405bb534547e5a084287afdcc92d7b3ae8f8b3ddeff972a6d8f5d2ca6884fb66db13da2383232db19d69f0ec63a49595d61763335c560ea283a3131f76b00a0b99ba1b64480b2efb5a57c6a0e74b2e3da55f0460ee6c32d0563093c53f4a4760beba35278627020ae51735fcf2ab479d00b9eb5a0b843f5346b4f68257c60f5fa5a2da7348b9e0e8d93406849bc23054717832261d7c796bc94cc1bc2149e2a501a3f47759da09838d7e3d7faa7f1fbc38cf7f34884766f09e9b900da62f1ff2a31376b248f58cc4dd889d425f479b1d0a56618fff687c27ab446974c2869bfe49eeb956f24a5f9d16293cb80873b7d41e893340797b21529f711371b39003b25350748b1e6cc2e001fb2695fbd01df3e2499abdf2adf88c0c4f879f1b450dc7a9fc326762c3fa3a04df17efe61de928df59895fab3f81da5c8f69a4b5cf7a58bdd86dcc060b56b7557739244d904ffe93e2dc1b79070573eee7977ca30cedfa4a6f27875bd38190f9abfb46f3521da8b1ef810d62eed6b3368fc581de0f864e776d1d4e87ff31451625f87f6dfefe0077f22e88b373e14763c527b6a39e5b32ee2789899747172bb4d4e6178b269c71093dacba6526856369493229d8b6b903e91170014db625fab56da21b49ce81d1468aac21b92ec72dd4e1638749033593634584d5e42b2b0a14e53ccc1eefdc8ae974354da1c4cfb0ecd722275f698db952039560e7dbb53c00f8234debf5048bd6fb97babeb6b8eb0676a924487e60b6622b8fe9d8cd4acd9da655428842d6c91304f9c45fe5abdfd890025ff30dacc29ec50d44825dec8165b0a45009a9dc7135d769ee3ec751b2c1fb15682694208166797ac269b9f0f5231f0db2fcf34df3069f90037be58f3fd00fc5b9d8c643364117be1bff6728f9bcbe1850955dd48bd4eee0db935e97b4292a17c2900b63f271118126efbd543d849b53168318290d013664b80c63430e2a2c7698e0fb5517abfcfb8b0e68eecb088ad06e62c87eec82501283b3b9c79439fbfa6d48e710e4e21358d44ce63bfea5a2bd1a1806bce47af9b970723aafaedb00ca0ab55007f015b49f6e2b0bb8f109be08d922de85b5555079c7ff542aa5eca97fea886d5ec0b7e03e964680c8b226fd138de8521ac9d15ac6cbb588ad335de5acc99eaaefe0acbf1338983fc497b0427ad748d5facad07f07165becdffcfbab63b6fc241b2bed1a0f393f194a8661b4e3524bd06679140abcd2a9aad93e0673d3f5fe2d6a2458df64c0bf30e71cb63feae69320a63be5ac34aff27fb2604abbf5509ace019fd8a14c67e37d0dfbbe120ee36396234728f9db744e3c6033a0834a9af540e505b01652709a4b5aa1ed1fbad35276575d9ae90e956f49e5ff5bd1a47e027208ffa497356881ba2ca4799f584396f8816cbb5985274b1dcfbc2a2e07f3ed87324ddca35cd2f83d8c2a188b77d9a3cb359d76884a1d7fc70405772890d13855b01b565cd2c20e1c5ff34424fd89358db296b99a45aa9168e5a90fce767709e6d61d6508d887d4f3f05a496b6cc63b540f04fd185227e4b6b6fa49371776cffa552cf89105c51c31c91a83a939e3152835a4376ee8ee797b631b43fb0ea9a2845a4a3a06faa1089ad1bd29e92e237d86a96ed46c56f681148a0435b86943df29813ce0189cee3cc6cc02f779e01aebdf28970bc68725e8f3da060d8edda560c4981b769eea5e129f1ca7a36d315ee816117a6d945eaf111ec7eb92a4171065e5348d22115d4096e7d8531f1ce8a99c069cbb85d39bec4dad7e0d79a1187f944d108ca010d44abbb035a7c7a152fb2dfae9233ce1577b734f3f009f33a14add733feaa3de196face23994a75bfb47f833dc0100050ba597c6f2a6a98cae53d90233f777dff2c4cdb8c592f56d6dc76b66bf1edae5254dcc661dcdd4df06d636598af36a1fbefa9943e9599c3f09016c3bc68c380d3aea569a1ca08be8d52e3009b63c84cba5e834e68a1e97fbe80f5ecf53daa66fb24be160b5a1e661592a765b6a5a16b55f293ed85d904f11d5ceb0331674acde1b2ebbc8f2eda68e9daa10c8e157f9d47dda28a5280ff9b348de8deaf03fba91fddf617854eea7b249b9a17eef129dc24ee61fad5bd2195986b68e6fb7ba67a74179292b4dd409977c5627e2e16aae3c4e7948a4f7fc0f3fbc37c5adb7223f9d2d67112d1175880bb996d0083579bda625850610c4d765e2386a23851479ffd9ea4e84e1b4608b5de2e1ba3d153e2e843c73c1cfd5ab3587af60524bf0638a239f88013b9b4e7de44865747eb16ac002d968898e65f7b2b48c6e5449673bab2615b574473439e278c60af1fe5d33266dd0bee752f6f62bb55a24e33b5acb83f4f42f4ea00bc374f7ea8637a4865375b8c78e17f3cbbc7b1836c455d20894b27f8c6045f926bf4cc238506c8a71adb8f80378dd9cb150f231522001317c933521282b0c98b4f6b13d7191087fd12f8ce8cafd374d10922d978d156e73c1e1a315fb0421d60986c752f168fb8628eb776653212c5955d63aa516147823f4a997fb976c5ba0f16aadef1d072c55fa80b2f4451904e8a87d9efa1f6861c2184a0958f9c8c4f94a1e0f83e07d53d7ce560e38cd487076f4f78bf9a4342f44c7a3eb131af1cd76f752578533536dab0437187c36d81c5239f4ad4a3e522b93a5e790fa1ddef7c01934eaedbe280ea27349d92f2291782037b45b5706843e0bb2653e3b0a4a9416a4bcd8b9840ac844df8d416244e09b5862befdd08db4f1fc5d2cddeb0d3d59c83602796a9d36644c3942fb4bb51e79c42a68b128e02c492c7880e4835acb20bd4e8d308404702228b4de4ac5d184c10692f2ef1598f75852e777725d8c8554eec3188711752e5e7aa591aaceab68341012331b1404e2659c3441063ba35d32e89752491f563df299386503090baa60aad30257e25acda22ae6e176c18a024f4e14781c3db79b7311f178c13afd6d3aef34ee030400421e90a97590f632f4775539e764025dafe41ffdf883ccf68b49d09fde8440d87640584e3839c738d25d477cffca87dd1cd23558bdd44e834e9f8fb0b8b622ae3e4e7e90e41e841ea73d01d6ebfae7ccd6e27cbdba26f185693446ac28a678a68dc1f2b231b46114321674213075c6f935c54d6aaf550c0a48ca5e47179dd6c488ec1aea79b5f75071d427ca1367c7b92c0bb7b0b50499a313ed18bc8096138051484d96d382c0f9ee48b3ca438b1546e7f7fd59a684b55f173e0831a884ca66ff04594e275d9e9b92a546fb4504db276b7915d9745e234560c0946fe19adad379ecfdb90cfb5433f9b921b097fbccb40789294def38ca64bd7b79ea6af9e7b2236e703c78f90bc695221aa891919c9ba9f51a548c94337a816c471412afd7548bb5d86e8363cf891c251b4b6b538480632bf8ac30c30c1ca860e0059c0155549002d46adaeb109efa02a138f7fdc2a9bde38baa1695a77c4015fd742c53518ab115f3e497792254dc203d26f3cc17bc9ecace75416f7bba3fa1a9fa24c87d1275673b179a59bd078480160e05f84787df0b6e2026e3a2c01cfdc3a93606d25f1c0ea37b9abc7d8773b066adbf479ce2db6d4f87746a5ab7d74081f59f02096116a998569229630d2a83f95248de6499921507052a9d84044f04e8e7d0da23b5e1657c11363352c7f895b1fd77686e67265161f4571328dc032855a8ef1fe2ef50362265910e93efafed04cb91ed9105d2cddc024827ef60b02ef751f7d24dee629c54540ea05175a6b57cb5e85c2646a16e2a53e8f7a754513a521a6b8c303b21044df670331e35de7b36a30eca89418191b16fa95ec35885b1bdc7d7ef998336803f11925a6cc1461b64c466019b9279f00d0d3807d9be638ce5779d985c1b2fe2cf84e25d15bb60e3cb4135c043a320758c9cbc7a22e92c4a48b6bb229191959394840141d4b9c372463b8664e8089d44b0ae8abbfd3a769bbbe299cf11555d499ba2ef9ccac448284116865af9f0c502b1256a016c99b3dee5e7058cfc684da7e6a9a878fa5adb043e1c25e6659d34cbf937e441957b40a7c141e3c935295d2de8482ed8cc0b33565469202923f158a7a6423e73428b4aa9205444b5e41e35550b8c4df18e9ff788aa2aca6eac0ce3580b6c0ce462d53f8f2511e8c9f3e4459a2a28a9d4eecf110f012d2bd87cfa13282f168694868aa26fc7ef55b3921c27431795d2e081902a5d28bb577c946bc7054c21063a644f64d4523212afb471302716f87b8440e79aa085cc11f2fb8348b951fe6078581d2b87e67ca45d8faf7e5760de0cac06554ef59383120138b743026191fae7deb221a0f6bb6a0c20e5d686a2c723b613ce59915efc94eadab4678f52e4c5b2199435a7cb5a7207a59919487b80cef18c424992096bfc51f064876a2fa998ed509be4f1ffc9d16f211138bf014d8378f8b665d6488aaf4f91f44e03b78c7c566b19fcc902563c68dba0dd2c3de324adc4ec7592e65983a156f2dd51db58e8cb7a86eb53994dca26df133fd1aa359bc8c09abb22412d4f3ddb7ad8a243e70aa42ec28c9d5a782fa07b1fc2feba0dcba3a1352fecc90984c34275c17ecae391065ee483b830ddd90dc4e76ed95176f65d7d483c018455e170afdfafc6fe5e968e849d9845ddd8b2850f945d2c48f6cf95525d80a38dd5a037cd2bb190a13099c53e27ab6073847c3778f391f2eb9acaaa7f754eaa90fcb39947ab6a862b2ab97bcdc4266fda6b05a95e31f7ac7bd270e34812f94b5089ecb6500ccc8845198d9c99d313ed4e94ac77e5996d63ad16cc6456cd24c622752ac31ce6e4234f9a4be3aa6b2bf7ded2efba726e1c3b2a67279e3581a5e76f32e9c164552feedbba2abc31908efaee72fe2033ca79e00d94b62bd501a88c363bc6f5e6a8e1462f6c21b4fdef02a5b62c8a439596ba9f6858ec390a652ab487efdaebe31d1907c7c574130736d7eac06b5080cc8f9ceabf4489220cdb04f409c4036ca0acefa1d217bba2e7e9d0b96ee515d64e59bc368b79ad53f81605b775c06ee0e5e4cedfb0cd3e255be0c5ba717f0ee458a2e993b83177904c47dede184e0bf881da91d97a20ebc6c73bc3555386eb2e685a2b16271df8416f9eef195556b560c42148187a992c97b0fce306ef330a3cc1f565332d8b8bde276b237b21b1357703dcabc6ae646f2d402239f4f3857ce8eac1d5801265d76420c168a885e371b417d49cb14a7325bfc65a659f6564e69e2f4acfd093f801876cb18942202e6570deaa326d336e7e423244ce7f1b1869b41ecc778d6192e669fe1260ffa3ebbc4cb913385484783bb49d3c854c411117420cbc6751a0e852cb2edbaa4d523f323a0d2121400dc2483abfc249bfd7fda9458e59692b695597f9380606408a13fb94c2a0cec7cfe906a8776647a4313075b10054c5ae48e1f345bc0fc7ea3568ec45c788b08b81306edc4749711c7555ce58017fcfedbe1dac823ffbbf5657f1272f8b7319960e7b758dd62e9d12207c6653f596a5c0c0cfcbaca9ec2aa985056f6c862cd51e152567576c1dc005826a4d8782155246366ae618c650402769dc7418ae4c541168a30d52798eee743d4599861316c5627d585b59c595394a401dca5902e7fe8c8df6e1000e2f026cca85ecd2584a5518e618e99bbc73c22e5bbd3b730345803740eda52e623007eaf34054e6c4febaff3427996b21c51a49a12ebf7436b31da1ef3614284e28d31c5abd38160e2fb7cd22b74e9b52ef6a6d0cde45f3a35d6a2b3c4690d4d28167b7f1595a82b1aad8c9db3e829c0fdb0cea280212df593ceada7f03005f8e7d01fb80c414c76b49115680d1f3acfb7ccba797b96629e80f763c424f397c49c2f96423806217c12f0d2ba6495e151eee5a028f79ad6be56d720fc354addf6e7dd555c9bb5ab87a237eb9d543752a65148b515acc6a2b69dd2bb675ac3b1a8a132b70b678239520f0cc340ae9b7e021dbf6e9d55f9ca79203ea857f4e57f2d0603ce0010192c782dbe2273589e28a84fb31b2f1635a5501e08bf03b55e73f9589683717aef37e352afd18bc0509ca2755b7473639d6525b19bf29b88f8d79d35ad70836ffb8a30eb4bcadf70ba4cd87d619153b6f1021c959245a39e43c6caa3a00fff3fffcf3a988e3f4b21f1bc183f539a92f13e0e577bbf2aab4824909dba8eeb3b5fe221ae6a372f7ae7595abe0b78115534e25511845ec7454e75cd24b4f66303793046c66b219771f9e1b16c54b69177e5441016076b5a5f8acf72d86a248980af5699612e62acc2fff53833f30c65798a22dec89e4e1feb12f6bda3a12de3410a2c67595da84297a1f6423beeda6181f8dcce3cfe6472a48ff74c8b7c9e4bf025574c2dd89242990c0c035965ebd40a51e4dc5f4526dbfb521e6e17600878cec4be6039e50516877c9f639808799d14f46bc44bd491f3ea92500a48fda9aedacde8e73cf0295262701b7671600377c58561d8f721387b20505720041d9cd02766571152a10f24e0b99aee55aeb9e358cd2a32e620c4e2f61d71eab6edb9de8526f9a51b0b8090f8687f6dd2f80a063cd8ee8b55da1a28a865418d61cae41219d48f8c6235124246cb223dede21e277921d34b8385c30d3f4267760f52ce3ee84d14de58b974d5285e941e89308cd95638e387e4d005dc25d0efba7c8f2cc418ca43919b217f70d0db14339de79152e5e7cd4b7f8b65c0928d29c80069a6dcf0d8d8bfaa89fd23c37dcb0103391e150b56cb9241b4cefb6ef037c50458d52e1b24d62fa3fc4d616a5f79db46a98d0d52e7d0fcf9a7ad81b0192d2f1c1677c6dfab6cb838f759f9cf28336843ff0645fa16270fce0486584e129d8c7d6e5ae13ba0de15e74a39ccc2800642ad38892ad7eb7d36a597590d5c56abf6687659ead99c1996b0bf2c0bc4ac45be929ea73a9449a46c8f6f2979c18e8364afaf61c3a9373ce76397ea202ccab1d87aacc67120b9c8895ac751568f8fb1759fafca80d774c260124b23f6015902d9aa24119bbfbfee7ccf50eec51b8692d60745dff5c69a3e84cb729da7f049311d5c06b34d3d344f7b74dda9c795fd03b41fa41936860f4ecec22a799a568395f769ac7c9d0630df657b6b9d4ce28edb54e43680dcaa926235c5817e9a1875561322704a22a124507a6342245f400aec62fa90235a762236eda90a6bffb98c1a0c2436b043b59a38eb952f819330c149bb3a928e4d700bccae8c5e4473e49ead9c62edab15045794f949c7c9e6f20e6152e67d7e95ecae0fc4336fa9691392929ca0d4a162af9cf26ed2348e3cf483357532782fbef5b273d2ae6eb654a7fef770e68e8f2d42ad77ad3fc58774d43a5c10ad532189f24a1a00d1df0fee821c07437aabf0233a1a3b96ec12e86bb03a3675d7e3aff3fe7013592e5d2d0139efa9f0da5ef5b32bd3d816e0ef7ece22e430a77d5719c6e3d160bdc8e6a5a76657537590b768f1eeeff4af905ca1836a00e14acaf098cb3118aa9be2a1c60115be80a44f686c94d3b45b408cbf6bf46e792399a87eb17ba23ffa15411709d755a2783c8617574d3bd67be2b0860c897c5c4a9c4fba95017877342e35fb66496ac2c6673ac2b20d0220fa0986be8ec9db232f87f4c0124b423f89cb371bbde5d94f321251c34b06c2bcf015124eff3c158072b9de2e7928634b75fb76c8cdcf0c522a88e5851128d2e16c0dc69dc88ff15dc9606c62e69e8c94a3765b64b6d9ce98624ddeda6ffcc946b8cc8f1bd0a4c7c5b726c27b218844763b5357b15aabb1b5d1867cb718a675cfe07a77cf3e148d4b34b32d6199a82e3bdf58e29f469806d6da434c7507a40968331cc49eb2ee597d9c909c929755f2b6b7bbaf4e4cf6d63f50bec171db964e964405c9deee37af599630a9ba2528a7e6500b653ece47f7662ba02d95252fd0f3f479043fe9ba34f7df6a00ab2b9c78f77314d813ab06f93dc55128c09c7de53b0374407bfc079bc79676578f3da14e67290effd5f7f3f99a0a8d8947cb894197721fb3a76d13a8775b7bf6c008bac5fb6f6220a92503fdf2a6bb8ba232b0857e0c6873116dd47ae9935490e91ceada804724830ff9005ab313988aa5be4a41486e070c65a81516574b901ae2c9acec7aa75a6b933a16cbb6f3b1c749ea430f05daaf9d5f5001591eb0ec43d6aa77793f69950358ed181c03e503e0c4c405d9c179470c0cb42704efffddfd2c081a036fd6392f6c3c876df01bdb7ca02d97c5dcb2e07ec3fccba6a5c986326e82cc5b1b1cff7957586122e60b2a6eb87b9a58df8b1ff42910842e7beb66818c90659584b96eb6bd373d33d4f2d990e4096011ad4b16daf466f7f7d24d0ae2bfec62c52fc6a28195234f08aedfecdb73734fa06e7e020a4ab5b1f15cf94e403e4bd571af8a7e7006f28a90b2d058ccfbbb873e5fcf691965ca7374f17f747ec39b55601ca25cdca84d4e8a94ddeb62282234b626217d37fe3591dfd0e8cae5352143da9fb360ddfaf9d05bf27a1a7df61b5ddba7350965b64ff20a6f36d9b4ad329078b0b022ff1c28e939f4664d71c9c45743f7b0e56ac59781904710ac30807bd5672b3b31a714b17990dd39d1850b4c70bd6df9b8cf760540d86b3864067bc4825fe7e43d817a6f625c24da6f3d7d8831a79a308b145170a7bcf4aa3cb65b7814123b2c4805d23c53fea19e83972dbc39fb7311361a3059eb835dc4971a3b10ac0a77f7d69053ccd53a6d7850ac4b9f6012f7eecb8a29d8aa343a52eace9ea77e1a78f3e7d8fd526e28b8e8152d6b58cfd1873f15ad745fb6137ce2f3ea049045212d6b40dc49646e222a8ae4993fe0d2dbcafb3125c76ac46848c5cd6560b9a112cb9af232e4c737566baf88c4de82d81f996eb4f4ee502015115ce623e0511c50d88957a9d5cd3d74922c93d36b5dc55bfad2def4dc32b23f95fbce8ad74c4ab204180e0a34d04252f6e95fde8ed99af94497de7ff0758b08ab878e09e5fe2f6a5a8bca919586e717098e0b3de498992138f167d8cce64d54622385e2f8516ca2fafa543980cc6eddb1139ccf8270c5368c0098b23c28226248ad7c322de72bf262816b801086e462e9cfd00fb96e135d6db814e749aaebc4fc903535dadb76245d0ea1ff6b7aa349ff4f2d60fee0eb4318ad0df35a80c56a6776fba6a205dba1da44e985e2fda43564ef4a43ff5123d645d992e9e71792c3b8e00a4f87f009f9186cb4be50a2221f09c4862fd9d2560ed5eb6e7ec5ee18dd4d91f5d58f016545837598579654568feae667d9b4b86db5ceeaf24e17631626d3d94ed00c2078f7f99e490cedc94c4841832acd2ab1a2fd8efe125422bf3b2b4c493540c5210dce4490962dba52a697aedfafd3f1fe0f5994aa8a15835e5f88c86f42eb87a931abc85f7965bb1e4574e4cca76e1b1f1776fb72c647082236c8b57a7bce793b69c0d61c0724de0ceaa61b8c5229da3249d3adfaf145b30b0d37b4ce6169f036e50354d82d77548ef178544b3dfba807da66fc967f6ee996f59dc0cc16b8b5e5b3a61ef2f1ed988a633858de81165caffda9a9a4d648373e9b761f5f03e78181f751747ebe6442e168a9d842e192e2f9aa2d6a2749877f760af6f0a1f03d8c4ffd9ad242fa2c6273f84fe0964a18a53316057bcc408aa221610a1ba05da42e70872cfef40a0314bca314c57e9d94f2a0bbae0f931440201c2cf467118edf05303d1fdbda4e99ee9ac7c1f3a1e363add1ce64da5cbc4e809a090e1f89a9b3f20e9850ab98d00e6731b00851e7d986c45fdfd0b8e3c9cc98c96b8a8ad52ae3223b7de9ed584f02a2f7cb87ee91cb1e9f37d549ba79639962d50b707803bdcf005be57b5d9bfbe4cf94b067fa3a3e718ca2c4513f883c8447158621ac7ea2e42e4d4301eb3e262731d270af0f2f35f462240fc9cd636d34d5a8d5e36e38940167d0fcdfd1d25ed8b386834ae661f882388af43f579b3e12e15786660b092e0fef2d9b34a9b1664c32d0fff8a90672542017b78eed64ccae7b45eddd4c8b767b21c9c4450b77a310d2be22cc7ef57059de56269eece6e487eff20878097a2e68a6546702ea0f7aaa1bdfa94a0ab424f104892066eae0f387c4a326d863a7166043e6a16590c91607af63076c01daaf1daeefd777cfb62856e6742f1be351ea5441cc0f518712960d79e168ac82c61ce1fdc79663994a77965a067ce31f53b138f0c3d7a0789838abc7c7493cc766c176866c7015b1d2b8f77c4db519f1fae5bcfd11915952a7e6b6ea77bf0d64beec520e11d94acc0dc5f3c449e64fab84a6912966d35866e84c4fbeb1ccd6278a73319d5ef41893b0993515e8d17e9148db10b2b3e6a71266c1db04138eee0dfd6a606c9eeea633d1ae8d85bc8434699c48690da27b142a33c3da04e96b236e7810ffe998fff4216739df6dc6c79a05069571ac7fe76bacb976124fcddd23baf6f4c006491843db5c47b543501e7ba4c800b48dc0b5aea82bf68561bf89d3d1f610d69fa486c03f772bf9fd81d1c0ad939245c4fc74fbc5e71e7941993eb7cbf4fcf7ff0b2e35544e5f209d7278a3b7d33ddbcaf326a6aae125103c5b8c2ad63bd7eea318e2f8980dc8dc5692e6eabcf07527287341b05d1e6ed0a21a8be77a55e03352b013c094828d78e8f3d5fee171696ad8b977eefdb4958d34a6590f92eaa5752828b0fd27e551721b9b71449c1abbf3e5d8fe56191299fcd6db19742d516d6135f46e8f62e30a4be858818379df9221cd9e498e6a636f92cc85c72d8821215b243b5e81ab732aeab8f4201e8f57e5ce0f82b89de5b882968bf248d32f2fb014a75a9dff8483c02b1487a80bd70d4554a43a56efc5fac53ba0490353e38a9ea5bf4f9e4deb728239de6ef09cdc00023baccacacc9095d02a2c97a68dc1e45cc4a05123b2e972338c05f5a186429c171b7c7d8261fdd57916304459d604f8d8dde489823dca8d04d7077e51c7ed06f476ca52918ae610e0085c4d419144dbbc1c464b01bf39ba35185dab4f650e171f526c6ede67a492b705397deefb33fa2300d3c9942101b0100dc4bfe67c07e577fd7b93ae25ae725385bfc25a0f08dcba7abb7a983e52a03b7d8e08c5ee885172996101ed07bf55d7ff1e9a784ed479c87f71eee7ab8d8fac0dc4dbf0d972011871dbbe735dcab79ceab61e18ec461cd162e00e8f1e1380933d24253c8cf27bd344afb2f4ed02600dce614a49b02bec0e5efa832404fb569eda7d78f404856394a9ee47ab27f1d6a2240192b9a27087d72be2e0ed204ac47a4cc08a155ec4a17c4c16c9bd864e8227a1cad6108275f5acd85071395955d3919b74336dd595b1954fc0b38a6d0d73307210c8ed2eccfa9350e329011ab2bbad66003b6e86236c77cbded128766da9347bb53d278d19fe1848aee558584273ed0c47c98dd8e56046d17b1f7a49d7355f499773579286718c60d07ef6a72f0b842665bbb58984412cc3fb9701a41022db52d462661b6fbd8860fa88a765be2b112c98dc03ceda9a889100ea63bf356095b2f7daa95322b9945ecc8183837943faef721ca7b31330dd188cc075ba49ab8731aeeabd5c9455de165245b4096a6842afd312525ba4255714927a6c11e85d38daeb215b69d7852151ec1ecdc17e287ed6ce0b5ff13733b6819f758ed7be368716c71b3db41f869da1e0a823df2a581b6da6436827be932c062db1889ac6e23e71db204833ffb3e005177e31a6fa6f83f5f289b4a6478a29db2ea2bfef3f1e3644c4276fa9284d16d09c664c66dfb470819f22d4ef491712a3cf307ef69c1091cc7a9b30f2cfedf4179c1dadedc7e6806a82332dc870a510a564b0c677980e37222af021571a3e979399b51c6437b1732b20524352bab6925f931750c633802e833ecda0fbabb23dec5d3055a3baab4cf6024e5e822945ae244bf2a2cbabe68bb97722bd6d4a4ebaffeb2615cf1827161dfbb6766646fb15bfa644d09e66bd17e2c80005c7ead7fffa7500177a8d8abf8e134ab271a7346b8fffea174a32184db95437b37eebf089de92cffb835c98d6319b11bad24342691de733f5280a17671bab04d6d4ddc3e50cf580bfc81fb4c5cc2a7a60b9448f33a46e51f5e6133b1b045652cec36633261cb2e0fa90b2ea3701992162931bae9db88707732fe9b31f3259de8b93b3004842f9b5feb63155ad1dea787e2f548ee721b7ff24c6263c6ea0f3724b9608496e8b5f4bf7fb08a049bd8ab07418f7d535719a73d926c6b9cabf8c8d11a9ec08086f864b7f22b0a3f724ec8b290e28b3e44bf1b799951d678399cc4f20261f0cfbcf8e0fa4fa281117f8e7bdfa68405d6b5f1ad79db183dd982fbab45a40b245e049ab1edfaf66e4cec69942be4405ca439b35cf9bb1c367422d655d61a6f9bcac2268c7aa69d4efb10b53e7c879534d856b17519458e2bd4143642a29956c05c43c73ac728215a4653ca1f43b734884cdeb845d857f18106cde6fec213fef05b7a0fd584359e965da506839a3e859882c53a595c069c0e99b8f49bd065951aa67e7088dedf4833473649960a5c23b1f72acf4c37c73cde5f5034306e28c2238f94c4f04823e337ab9179b609285bba80c5ae2d02334f4bbd48bd6d32c11d27533cc500b4984983f6f200cc8909b29b95cb386af507a964665169465efbb27da5f5957ae1ebe8196f0149b724675c6eb6526e525e41f3a3dd1959a0136e8399265138f8e19a41c4138446cdb943c57f54427628142b27f41dfd6f1afe3903b0ca771684fa076afd60dded638ebd0c24e9381ac14e7b160830ccd3e09f349b347b877ac174ec8d315548b66e43778358242d48b480a7e200a4ac6f91b46b28237d0315a51bc9674c4ee11f2b32ca31365d28931d17db846429e573305c077b1a661e7bbd6607ca979a7e28dd01425034ae32b0ec40314764bfbfd12c00f6d846aad2a40b961c1bead63dd89b8849cf3a676cfac51f154b73375ec2742479781c0d966d6b4026d4247474b62d4921d084bf5bef7204f6032d047b3f9a969e07e27ef3158c16260303fe6250f51f302b53f1a8b1e298cfb78b8e958807aded260b317ec078dc38ca37fda3b7edf07eea6e29de86ba1960036f8bf6a1438814ea62eb5ff7b0dbe2dddc8ed001b768b8cb7bf4435976014956720b4ed046882d5b06ec3b26d14fd207310b3ec6b22256c11a149e3619c7c074133f6a21df6749f62edc3e1dcb8f46a5a65509a430c6bc73dce55fd26d92eef52829abe224b0462ccda3fb90aef5a02942b0ddbcaaece8bc03c6ea00d70783c3a8b96427ff75a3e1f225249701c78298482c063212e3f62918188c3db08da3a0be0a5647b893e2ed0d30442fa99f410d3e1262b02b983f7e48df3b253eadc79e32bab95da2d0519ef22564b661216a3434dbc5e3fb49fd329d1090fb2e71baa51f9938c8cba87a34b634e073c7e97ecf68952bfd43c46aeefa08f426abe38bf0f92b35abc3a64b645916d00cef10203534ced6320e421811f5d0f6aef50de190e5b47b6d6e8114d642b0120d8eb24dce475b393b4a44c12f70186ec39c1bbbe85cc25f3bea6fc3a789167068b34386983c9df7d679ef468d14143f363a83802f277cb58183656ee80fbe4bf00fb717a57115e4436dc292a790a6d9fec356cdf19e28e275b927171c6de70fdcceb1189b3a692bc80fb80dabab7fd5b56c1d528e48a4748c5270c5bea88cd24bfe5225325e2c332f442608fb271bac1914d9d2bab8c55303818d86b9c45bb3ba874f29bae40cdf43d1ebe6af75c93d8b47192afbcae7955717329eee1788198fb8643792363a09575ebf2a11352cab93d23d0e2e281482cdcc6738b2787c47925a63acb28a21fcbe7fb16e1f89d00f5adf4a39031d8810eb91d5384d37b8b16e5c55a222a5d9a454d3334b0c3ad1d52ea7f07d7cc08d7dfdf4cb577ce86025350a800680e5d706f32c37a3bfa7aaad02b3a846726ae3269196c999efff5212d9d5447b7fa5c832ffd23241528caab0ebab0af6107a2bf9fbad6952cc3abb3bb4af228d62e7a4a3dbca26d2948ea5d7a4bbbaa1566c1e28d29dee4f2ada82a901ef59a885545f6e7235eb3c88a4dcba0b7d93ab974279c97198da8097ad18f460caf4aad58bc221afbb5e0ce4453c83a27cedcefb38e22f7754486193ed60eb566036e552c05a8d040b4623936e5f100e492652fecc3d9047d1f5c112e6d528ca4fb2d894a784e7e761ee383371009a9c13c92eef132e91892b3307fe7023548ae08e0c43b8fbf3512ce5ad9899c17eb7e0fa2c7261b6e1a78127d2b340c7c0c4bbb3db9eb881dd3db05620479f778573480c21ff3d3dd951e81d2382fa7f928d34e737f59c796e2fcae5c7fce75f9106c752b460ad6670f96ecc672e2195c55e201cfb2fb68f35aab90e09249aecac499dab6437c580975834c79471cf414f913f72864530c9ecb9fd66e0647f105a3b414ab076937c0ce78a915d7842cc09e835ab1cc5e0942a67414cbe10b7344a7e5eb4b5e454ad57672dffda633414470713169c5065b7fd4758d42bb43842fbd8660dea9ffbc7835a83d773c706a2b3f56a33fa1c922c96ec4a101a8f26693ab4b213ea9505dd7a87f5eca72bbd80ab9ffe9329723058867273f40c13f08f389e3171d409a346af7a521a728ec76c4155f4b3e0310d2079f4a9776b674494afcbaa410e152dc5dc0143d851df9c21004ba0d40e4957c9721381bb1ee5d4c7928f8df0cc22ec433bb0ce5cb18425d0dc1add16aa414eb3d376924f529ce752e8e451d042712e00725ef07649d4f507e93cf457e8b340495d44dbe197ceb966b4ea680dd695ae0cf7a63a98589d589d11931693e2cadac56aab28eee873b2695261bdde5bf7496b4c678cbefe9e29569fe264c918cac4a1685d943e01b564873330c415ec510737b945d52fd40e80673d5288b24a8991c7560e114f5572624ebde21c7083346d98b225ea39dd14290e01efdab79feefce6caf706e677bede45ee24c24c5582287e25b56968514cf2cb4c2920fc26797a81795600741a5e20a58149caa65ff4025437e1b0e24848c4137154cd714ebb138ac5ec650cf44dc49686c6b7778e952932e15fdfe3460d8d6e9b28e2410ed996b2377d4b09c33bd0b1c2b659e37d44c33efe25ec7ec492fa62fc4151052c0d15c007544cac4d099592c2563ccfb437d73b03edc920534405aa0ba0f8922725b18013bc774ebe4e61bd2e8aa9c70373837b9ab89b82aa854a7a79282a641902be3cb8884df1f7d50335d65739548e5483b4cc48f9fdf92837f4aa22c4d1081b2dbd048cca42881d1e6fe367f21de70c067134a4437521f701f996b9d9ab06f74c41a3218566acd74690db88fa88911cd511f79809420a2e76f6777febeda6b6d7fdaba5d915766cfc195b2dd7a32ddcca9fe3327cdb34fd8d710ee7af914a8951ff49f926e97e756774feeb3d8e8df998e52446f326b409dd591fc86bc20836b789bd011bdcbf41edfd87fd74b9f5f1de8b69eb81a43bebca6f70e0daf2ec957c4fd0270f5f1352928a20c143a4d399903142fc9ae999af9d47c44fa897ad15db1941d97487a0e02c7d823973f44898acbaba99c51bf55754b33e187788f53870bc05075231ee5467e4fa8bde0f03e9424fe1a3615d6356519d29a37a49d8122c6e83a6cd23a5ce92456f821397f95dcbc402437c5e0516d59d493e9fbf0fce8fe1062fcc8a18a149ff010a8363d816cc6be163b4839d7248d5d097421130293cb6d6209c5784d1e16d82b741eb0b0ed07b10332f55ba3c57d585437cb514f5cf1d347ab25a919caf3b913f582ca18ead97eba69c27efb8daa2e33bf6f3679816ce7e41772817ee178744fba3816cb71c2457f24b31421f941acf5a55574c8a869a7a00221b44eb72c8226b470335fc9d6a9314507deb1eb742fde031d4ddda0f4f6642a6034c69bea17eafaa54f4a6b0c2f14ab46ebc5444534df29fa676aa3aa62c1ab05b7e732002990e0c02954f593b2896c0c50bd7337f2817482862ae9574799cb00a2dc739477273a0cffb67f87e55424e59ceb06fc870bc0f21eeb27463e661fa0f1d594846deeb439c92b370eb83572cf6985a9e68a7b251549911ffd4c307eea352ce19674228bab9fdc89d18a0249416a447bd98baaba64c743e8ecb3baf36a2ea02ce3a60017fdc1e941a4764bdad638e5b8bc159c03da8a73f5ceead7d164f5b826938b2f026050bd65771af792433876fc35ec6eec467792c82052d1cc3c9e61338892b924f0523a102f91b74cb72becf261fd794e10119b54687f737d2bd4129ff0e9f2b208210ddba2a6f0b52b473bd570b4af6383df09abc109e01b6257171000ead1f5a9603c61912a862084bc2ec83bd91bd08133530b1e34bae4930aa47cc24da7af9752f6b085809e1b3ad5405dff300754f1cffe3eac34ef86d9b8f40e47b5d6965b52e30662577b3738e7d25ed07970e854b31aeb7cd8c9bb51580a22d5747bf3016aa4dff43e746b55ad15d9d14b75ce3f41ea4cb1f10d82179c9e73373dc716afb564cd3f76ecd38153f3134d5c2973e67f16b6f7231f6eef07c3e3bd8651a7ee7248eab4aafc125bcd31a0687e9dc6d9779bcfef533bd705c500a230d4078a4a53bc701c4fd5c2fadc70402587aa943a047e5b61256f9fe80716118d4a7ede3003e7e36c7ac1cc9b931d00b2cb16516199847d5e373fdf1dc6f8e18db9dffa02a1f8e171244466bddbfd326c343d6d884e5d70588591daf2d6a8f430a3ed8be32bba8b6154f61e7c72155708aeca8c25bb2a121a1cc32c5fa7c97fe5912c64f334dcf8f23a4b7ccad6514eaa1cfed88716e403d9d251a19b8078de65a3cbcd511d0daffa8acd7dc1064be14e1dd9826ba306807a30a362251be8c92d9cbd012f850f50af3431590727b7a5ae4480135af5c5d773b7feb362fa56126483cbb69e63c2073343709aa224960496db264d4d73079cb120521e90c0610b5d7dd5cce01bdaf1ec84e0cde9bc0fc9d9f00612435aaaad76afbc772282450736be235467f47c8cee90dbe8320ffcf1de5a77d4c951ef1a318c44d32a7f60abacfe1ecf84ea5e8255f03835b897dce4182caa0140f6ee45a277628373c78ddd8deebcbd0e8ce5efeca9a016378cee1b025c5960d28b22c887a0f51de632b9db87daa41abdc2ccf10a5dba3b961eb658afc9e8e4967df08a70928c77ec64ad04d9aa85f1908fbb0ea0f6819951c2fab80155b9ea456e4c9008f22082694bd30db958e5cb093c7cf34075bd645ee8077c31c583c9d346f54dbc3b79c64eb4f2b04c50712ea1949cb49a05a914b41df81babac2c6bcd8a9a3f783828a2a9ddf66afef0f7e959911971c5750c4797a6df78f1f9efc8f8ce9446072e4e1b3df2536b9fa9a43d715f6fb6ea1be302c9e64f98a850d812fdb86d887f9333185c286257625e428ba055d13584298578bb7ca1c3ab4585d5899cf95b7c0a50f7875d773058535964ff507ce1a18d301e133a1e86dce9c7d14a84bc5cdf0cc95d7b45c9373a7a31b60fa56704c5eadb8fca34e5a03f53932f3335b454ce2dedf8cec5aa9ac880ce9abde76104b9ec14ba89564637e88d5aed1728b07b70e208f5be471133f43a457bb21651b04c8924f2c7786667413388a3322dd90425f01492e07a6dded267d5f3f3437cf0a2d2f99e4b622bec62765432b489e7ad2327e387397694b131fc41f028f9cc1fe57e6c5e490e336adb80ab8d2f866f347b53c8788623053d392dd586787255842fad2b2ac3c398f90bbccae53223f3d2062cbe938c518201e292af27c03734f016a2704ed6c23fdb419014c80a1f12c63cc17124813fd90821afe769b6f1537876ac0a15b536caab43c279ffb2017abe105e43c0fb4d0b7d0fa409296978bf2e5387f35989adb32cabfc517f2847137c43f91a32986845a8c243f997d458439ec1651ae20088426eb0f600862e5c662697e0f09315cce752f307100ecc73f186cce97c055b83289b204e52bf4588952947a23338aa417b63c2161e2e9c1b06dd1e6db618f2633561bbc4e1a64123f3feb097d69418e87ff2133607d5ce6c56c08874e4e41730ff70a432bd77892ccf8c5a849faf63c95e8ea6f73b30681181db43da6852f9ab0cfabd46c458df0785f4cff07b6dbddce3ac37ab88a19ef15dcb4294fc9b28a46b297ba2faea87bc2e8e47b6272bdaf8a75493887ad54699cd9fe3cbc220d54ac68d2171b3b2736e01ef35cc0882350074bb13ec0e8b6c1ed96c093e45aced7902e9428a17ff2ed1a1fe6c30d547bdf1823b6370bafbef6cc6cd9199d8048b48834e4c0aaed49f3fe1b97abf4b854cee0975d9e43983abe9506a0f88b691459521f0314295d1bb0c5d8f7db6199ae6536f68982f5dca9691fe3f886e82aa6770189a50ea08beba13c311135ba5f535c56c35c3c97da2cc646d8bcb5179ff1417b7cfecdfa984e78dd9251eb9579450b28336939209505da0c8c6f327ae81e29a9fb99fde287f059c17e2b8f30d73b13e7b3b64db831a8a152fb45ba6ee64e0e0c7a072663c12d92970a04fafd6e2e85486193327e795b2e5cf47c57a0c26f17e6615436d3923b29ce5f717afdb8f2df428e361dcf5c69c86f9bff823567219a058c56d2eda9e028a93bc9d97531e874784233970c6cdff617e75d645a03aace57cdc62f749cbd8f1b70ff14bedbb405e4b8ba02995edf8ec92513aaed8afa3cce692b8cf5622535d364d4e297bb11adcfddae74a68c7f2cf1731cb4cc33c315ce97928526d7851f0f9053616a59a7644ed584ce7e763bb7b546df0a59f997e954051de0b33b600f8601a2845c44fab96877f7411f3cf4d30fe55f5c561b25703a525882a3b3d140d9da1c21e88c6784edcc89a85c26816630ebc7792d9c73517b9569b225c7aba5cdd0c7aaff4631ae5f93d958491dd08492c93c0ff6c43d2345d507de2fe21c1accac0b044a0c9b62cac0c163402f967d7f410610669d530c908e467759d6e855f7cdc4f5487a16335df94c63cd0e90d43dec0411eb760fc06e3230b03a55319c7ca3a12a78b27f0592187845a39252569eb5780bbf64dac3e1a6301ffc79ce6ba235d1c793d969dd46acc4bcf732aba51c5c1742bfbcc030e7c14f96dd3d37b27e9c01fd3e987bd2a5779b40e48f90e452f57242299b1663b4d03bb73901fa422c86ae25349cdbc5edf17ec7e0eaa25a1266b03c275e2c4a8315240ef30ac595cdb4bf550115ada82ec30da507a93c3b0dec8d2b422a134a214363bd46fffe0ca97c776b153b9c65d44ed53595d612ed9f96b986656571e17904fa03b86def463147b1008bc57abf6b22f442019f6575f2c977791d3a6785ab73d9282744773bda1470d5af70ecb664878c4723d7c0e85cba99d71d1a8365d1a2fd942d59592832f4bc8dc07e2349b6f706020e744c03b4f7c34aed36c6099116582688e2128ed38cd5dcb134ad992fa124fbb10fad4ae5df0472c506b9fca6468a05b0fd43bf6b96aa77295a4ed9f2e8e1ece167745b1425bbed55c58ff3211f7088c129a8c43f60ae68fabfef7b0ee2283307de21443d51cc911df25e26b8837aeb77ca9e974f4bf39e91b39a8f69da53b0affab20f3a3e2b387ad05fcaa6c5d9eb53a943f5754d9ad2c08b854640cf7fcf21e6c3e1eb9daeed64e644e0d72e788cfa72174ca97091183f2130063ef3ae8e4eee3f46327137730d819ec89e7cc48f78353886d051a2bf0752908dda2cbbbacc06a2964d92274d2d2d4f50385e4c705ee629b274a1d050797e4e04009618c70344c596432a28dbf74010275ff926e297dd2eccf6a808cdb70a120528fe67eb4f6245abdf3a4032024f06f2b1662f277957302ad7bd1d825ee1ddf40d69d970b43d6f4bf2163bb35ab7656c5c310fc0bbf3364c0acf1811ffef7c39cd8b5e59a458c19085e55e974d15274871db18440b3573134ddfd67f44a5fe20c251adca845afc05d72273ed00cecbc0a65af2695206d6a1e883f76fd278438ccc5812e7cf8bc317091e17c127883212b4940f8b2f3239645c651bd5216299aea37313fe295bcdc8a87b686689af7b4562e7fc2bd7e81709f3c272c4ad606874c228e23e4edca38b56b2f923fff1fd057fa47953323ed7655dec9b37bcf2ee6214349e567343f5631b8e18b5d7c24a70448f62ba35ab9e8c0cc8d1dcef9d0e03f30368a4ab6b74b135af645e45d9420d75616c1e468bc0942a516a4e996c2829343843edcf5149467309b68e98b13a6b5f46ae41fd9fb2d7bf13a54b6f6b09ac012bc9b9b69911ab806253468e092f073960fc60ca8a96a4c8b0c9ccee2be75cf366abc7d50871b2efd778bee6650978c442122bb85552acbd5f960c25426c526c280639ee0732be19572e0bce8af40d03758d8219eb38a85768fee00ec7d4d88ce2826b0f27f6576c266eb15d06c157c6f6b794fd9e42fd24a938fd09da1a9922bc4aa10f9776ff205c9b6ba3a5594052b6220f13a0d55dde141ef70d1a33c9e011c9e594b05450db64489626fd47b6e419107e118b1eac452fd829842d5977d2ee3dd8eb6a7ae12a7d4dffdae4480fe478ae1dd7daf89ec092dfcf9e3c6c426997204635e40a80783c2f11cdf4f099a99f22a8286d67ebce6d4aee00745b11c30352bfe6e0e2a77808d594980e610f5a4f62ea67099df4f1ff6aeb6186a29bc15b1f8e3544a95bd79d8f83e8d30ad701bdde29a5d694449a20beea9827d6d4567f14bdc69a6fbe738a6fa3d32d854e3711ffa426df3a4f35b829482591408df9809e14ea90e2102cb3ebe7e6c47087d9e86ab8e096244284458bccda008ed98d277e3ab9790af4eccfd7d0138a6c2d1ed32473604dd9e2fa599675d13689132d6d0a5dafcb9b1371ebaa4186301a8605d674a359bdaabd031a03eb19f8e78521014314b19fd799e0e5158b9aae32bd77e9a2a660831d27adc10cfb008f27151ac5b2620735fc0e4af1e9a0c9bfaaeec27b8185579ee1d1701b40b8dd48797712512200846d4586c0184fb66662e7a0edeac727bdf35afb7d0b9a127ff4becdac6f1a58e04e7d3ac5b44aba765b02a1550b3da85cc9b9702c06f6054f6997afc19d36e66b821cfc84f6956ebfaf1e735fa9b113d24da3ee0495ccb72aff7afcbb8e47da49d8fa125c60c412692ccdc88efeca1cf90f6a9d19d7411ec013e803eea9452ed1c28f75054bbadd32de80af3c3b9d8ea184d6ab3ffc830afb879fd66d8913981dd4c277d46373bf479b136944061688d4827f4a19cb79b0ac40f1d22e7b1001834b4c535a25192536795a206cf736ca8cc6b289c51dc10522a718befe037b6d6084a52be36869b96a52caeb021a20a30371eddb795ffd91ce29a9fcc457a37dc280896f48d16c5bd3472cd02970ea3f9b87e43e3f14768a8ab70abce2e2edf2606705bab05d7dc5fc3a62b5816d526ffe6f1d4d8b5105532447061fdbc3a5e2c5011995f7db9c9e12523b7f847b321f457616ba734056be2e5162bf7a4b9f80d83ee7bfa16f1bf0a67b58bca376cd1ecc4cfffac89d73a706528f168e83aaab98b076da74118e390be3209d632fe9eff584011e7b3ca6be034c649fd6a3d5a5930c0299030c159d527fc6240de9b8b0391919124a81a3a3a944ebc2569c7fa27dadd8e0c17ff2ddc9845ac63edf9768bce47ce1e8e60ba777c33de23c903a146711cf707edf702bcfeef1df96bc9341302797a0697939cda656710fae547ee4375a3ff7717319f278fcd9c5ef21c778dc058e13fe5b5eecbe0e944771f52aff75cd99b76dd73a2d68b1dc4f2922840f80075c4cd742f3ff6c01b93f0430dbdbdf568521167abff27755951a48c94e87389878c334f7750b6ec71417f3f806ef0e0390fb7f205433b9f3d4eec692a732b58a10ad81d97726b3fd298064f3f52c29856f03f960dee84ed9160153eea5e4c690ce8cb559fc8b1cc60533acfe8108a4b2d1253f26432d4c1a05fbcfc06209cbc1334a0b7c27c74a458cba5da5a9973e05bdafeb337df3aa0f0d016de23271881c8047885c3c570e24d5eec9acf2c7a31c811b6298035dcfd10326c8a1b158d3fe2a3dbba7eb64ef1098ae09899ccc9839375b243f80e5d0c1dafe993d9b77b5adebdb901ef262203aa9a9b8e6a23037c2d2c20862d6deef016448276b7720e6d151771a1807b4efd7854e4b24903675c2c1f36f1279f732f926d1c2d313bb15f5ed3aa9fc1ab075a1f02c7bd31f702a651d6c43b111c525d24419fe91ce23ef0b0aacaecae5a2cd559e5f9d3bb1b7d1806a9b3778768d16fe6c5ac3b8b0b9b8e5f1796993c59da133f2ced6d789f58406ea9e86f2f0c7feaee1e977ca58252ebdcbde83fcec363281ca5e0ad5e75a129479071b7fd410775a8c267241b52283ae00136fc0e18f4c085d590d97e4fc95e6034becd26489b43d2265820a8fd77e383595752b4b3dd29523a9263427f9b55f81c320730cde92d7588c0a05e48046c0d148349f10ea8f79d8b31df7668e7a86885d633ee36c1b692a5324861181bd0d1bad6813c8cf200a83e825dfbdd2be836e58bde38446cf7c2a53a2d7ce1858ccdaaec88f745e86209452c41ecbf161a6f7b92e643703375bea604cb4f754dd0e98d6e6b194adec9912c4649ba51cb4e19757329961a6e0946ddc93cd26fbdbc55fd5fb2b8190cdd5d768b4709e951549439754af510a017aaeeb2047207f854a1db2cc421b68453adcd4ff6cd3816199ce4906a5538e63a632d1053b0c4b39da8219cb51cb0bf6b193dfc291916a89aedf40dfce17013072afd0193681e449148292fb44cf6345275ade50978798b90c6e8296516901547dbe53f9b85eb86c7c5499231dd98e1e0df00ffc68c8b27957d33b10ac344f0a2aa2406db57797d4fc13e33f73fdac9dd9064b6ba29d4b80db6bd6032ddec60f201ab587170d2e2e5ee34b49eef1a93783dd41dd182a455b05c7cfe678e80093cb47979839180095d3a631ddcc9ba00009edecf051dc37a2e86737fb04ebcfd0d9a2ae386d65b41e6f4c3d745feeb1aceba4ee2a07b14423ba15f49a9dd8169dbffd360e787eb8c9aaa4dc708d1969c8af3702d8aa45fd5d54bc321be395b1cc329a1f9a11658773e0caee744f08076f5e77c71cdbba4babb4dca0edcadf6992ae4d6851651d1dfad21d651c322f4f7605c27dfbf16684a47e8d54f719823266f3b54e82960861d324c8da70d9aaafa036fe7fd877580bb7770b846febdd22fb827d3d09370f9134ddd8642878aedee784a7938eaca8375509da6efa30c0ec1d24b0afa5d29bf75ae9eb1c085b42475b0aeb5c74019e5ee0c3731a1f2d88c612641f7ad3626576a69a6228915d52df5ee5d389cc9f9e303bd68ac4a8f89d032f10d72c69d909b0fd232c3e75720c4150b58786fadff2d1ee98d92cfffd38d5f7bba17ee09b78da621c1eed2d1d8f21b92093cc7dcf5759f0058318037c76ed043e9df419012d84b701dd2478fae77e3f4f461f26b4619e5f3903b18608c0fe4233df37a1d838d66cb354c36336621f757021472b82ae810bf7afa00b098251f77929cbf3df1e1d45f5c0281d11253c8132511ed366e8182325c90e0b3b32ea12b3ae12104c7da25af0451495632271604c3b00193d98683e4e19ddad2da6f9f8c8e6df9e48882157af184bb115554c20f61aee591ac895d41f26c985c3b991d96473f35d6e546026a437ccbea34f160d6dadfa60c475b948eaf0528ab545d8267614270e50f1b77521b39274a11aae4174eece4f35d5bff126478b560e663278b0ac310cf2539501e08528f43363926acee459c71c63fde4eca22b67ad1022640b5637e74d113d097cfd8bdb93f971d6c57efd645cc763d67c9b99e2c7fbcf76408697bccee85b40f5b229aa8e9fdd1fa67eca208b878014b6e5b74663d47b704f43abdcd41e2e3d3013ed700727f5d443779d597489af81a2e4a632dcc44c64fc67654035a747b17577a90373e029836fd82e6495652b6fe8c9d664634b3c254df806a4b91f47b2efcd5da85c597076850b6842a289e56958460df07b6015ac0e8659af9e9afdf630d2148fdf6a7b4ce29f8fc0002b505c64ca409c7bedc1c64da521701339d534aad563332d98da3567871e964b0984e3a1566b621093606ede70bb8fbd9580b83718ca260dbd1560f8625050d0006c594adcb6f4b8bfdc96d71e131934ff3cec91b072a9590c208dffdec0bc136de0e0bd2da54e4716032815a56b58878231bddb041be57c5ebc4de91fa8424b5bdcb3fb7e155b66244c15b66da55ab4c5b4b816d31f94fbcfacada83e8819e18c360f2c7649d80f69d7369d1bf7d531b28349adc9f25ce9afc7612fd55d94f549885a19cc4bc413ab509bf25e4ad266ef32b4eaaf7a3070be4bb1f99aa5c8d9032c96b17c5ac6949fb9879fd9ae3b302d65517e1e20884fbb0d658311c9b093c77dac8487363c8be0513fd41395a5603e900bfdc7887657445900ce40c4895f80c7fe4b407bcc433317fb8380c3e93a035b555f51431ced039f68de8316942b0a83695e2f5fa1dc1e982de49137faf723dea481bae5378c2f4aea3d6550901a14dc063c8280b9c9d2124df3dd6431439b51ffa25660374056573a788bd04702d39b29070c9f0e525d1ae3ed5284a8bf10f147e65487662b7f86ada1b58132ee83e86505d665ac13323c8ed77be59f800321d4d6d814950398425fcbc7abd29cbe82002040a6337b0060f7f7d473d18ec41e3edea2a5d49233986b92e729b0ff976ac867b1a6b04edadb795930e2996641c58ece4872bd3598d5b090a897f4be9416328bd8661d24aa76624b2a2e41799e309e5afec6fe5e1eaec6e948478ab46ba686637cfb62e7f9d236e1ad6d4faba14afa9aed7bde13dffaf9c0fd12486e98bb1c68dc632f5909fc6b728918c7d4ec89b98b1ff0b06cb27225bf4f5b24b0bde1db39a17a7f8c340f501813405242086e5f8bf44841187ef3309487c4a1f0d7b0be195de44e68aa3bb034dd66ec353d825fe12cf897d9d336da6e2a85a8d93f13a36c9c1d7a287392f1e97aea566240f1da3381ca8b03e00b2b848657c7ca7c597b3e860a81ddc660e89c5431b271acf3eb0dcb001001a870aa8e4f606755e705debc0caa82e9b30eb77a8c0eea7f4ca33161bd3540d09824e74a4b9cd6c01b7a05b8adce7c8615bc62f2f20d409d36fd55022d12c182658e73f80da72c873cf08b29c3fe943dda1599370b9a224fb61cf727e9112bbd350fccdfc6ecf5d8046a93a963def16f9a1d58bf1f2eac0d07f9b3ef23dbda3a241deac61c994115ab7f94f5d2c476d07eddc5c666069ac5de2f1cd76aeab0460dbf777b1ad526569338c271825f85e676428bcc36004657c8a6e9452f950044ad43b0502b2616e4d157cca1a184c38ebf9672134b9c33184e0d3a01dfa42c280f4efc99270054bf7dc6ccb13e97c578b956df2218550c50f48975b68c0c36fd4a91402f71dcc919d30558eef61e68a60f5af24430bb7bbc031c2f76287bcf6194d5a7f01f68f3d925d3fb4b377595f12d8bd20ab809380c247c923348cc5e0499206a3c3e9b0d1aa467f2dd0caa2e8407a79fc5ea24a866c685e2478099b32d2f1bb47a15cbd5a9e8fd735f8502d15f2dbf090daf3404e15f7322ed4b6e2034540e5b918a09178a5d87dbaf9fb23bd53478653d3b4d820b747743c5856012097b117b6f8a63fc736ebbc64fccb42b0e6e3e5af4c9d71c646f7c1754700f39ac2a44768686d09e4f8bea74e5fde09d86eaeaf4955eadc4e15115d9824e4bcfb3ec2c0d4a01e58dbcfa3eebbb49a5898cd392fec899155d6929e94f1a8ce79ac78b9771b42a9a228d7c55d040180251c4107bf4f79d1bb45b5c23784d7679c826a28c46c28cbc434abc578485e5ab54a63e6ae3d203ebc507c4b21a2f8405de23783c79f4c7d3e3ab9302b6c0917455fcf4d2b5cbde26fe309761f3392fdd9da232f7bfd15f95e8211d4298cc415e8e685d90399bd16cd6912410d9c55b2fd99d518c556097345c4d964de7a8cff9bcdc192f3fbb327625545d9cdb95510de0a17eab38af5d21c187126d1ff4caf29f1f7bfcb9ec4089ae9c2f40724d44e67251ab20d0504a082158fdd2a27709ebcd4f0756b5b0672c05fdb070a4f46bbbd7e27f0556d7a925f8006d330f9bc707295a50f348ce934da5fe18888e77ad8efb9e1942d55d9a3d6ef14403afef58d29d831a2473d1974f349e8bc4c226d3cd566119f7d50038cb66512889c5a4684e4ee3d23ce58aa0af3bccb365ce3555bca11f02ab0e61d938d27c3c2a7011ca67c4e655ab5b8ab93452ee2df3993db21d445ce75491245c335281bb9cfa30d91949ca056e10a961db945bc2f572b857a2d1b26b9ef473816ab3a056eace1e6bf2072331e733822fef84e16fad4c881ad9d24f0ff7ea7c5a50f7d2686c9d9e4ed2385ac9461df48504dd40468e2c703fa79074ce5292eec4a9a841f92bf4975c0d2429690411a258c4b2ac108ec699138996f70fae8880f701fecb8d4f4092184c7720ab23117400bc474fd08c040f151d26c2e3b07a6b1e53dd83cd801f3de1d00b24d03c281420a33fc406629342abbbe451910b73ea07762c30f373faeab002f1ebb583057298c98e9ed05897866f1da2387666aac1e02afacd0ffb1c106e5f48811d478d418d9f57dfcf2459930552359b34fff8b400cdf3071d4fe3c9cb3742c541a2367779891a81e6991305848913b5314d540bc7034cc2df781f53bad654ecbd5aacd153720ff1c0b009dd6c7272516447f4148702af959a038d8f67f699fec3242c4dc3cd3c8e30a2b3fe352e7e547325d5a18429214990630485cfa41854a3c78cad63fce32f562321b1611e693124b64b86001aad5d56ba22dedcf9a3209fdca8fb1944279a9c0ca621270ce27319a54b1c558f9685f7e245691941e1e5142229ff78ce610e83f585e0aa6ccb37e149d0c1228f5f27e6ef0f96ee78fafbf29c4ecb355f86ba378f9a61c7c3e4af53da91568cc24ddcbe8420fe75497c0d7f026a30acb4fd4302c8df7b656775a0411ad2bf830a46f5dab555d9d9d4e09a6c24234673c4e9427e0168ec6425eee472e2946726a1c4f4b257b18645035377435990e8014667c4a5e379d4148ee5eaf4180ab9295a700e11e8f207662c484b161b6335633d63c8ab9680363ce5c831b9f447a857d447b0137b11827a40a81189561c11fb77dec4a66d067ab2fb19d083a6b5281baeaff7ff5504c1f4d25e9a272450a25a2d05210b4c29ee877318f129c1afb21c0fb936e421b4b3a9a859080ce67dd3243655baf54fd740be30435120fb00c4ee18d0740ae081e991ab2b54d503e7d4028b2961468ba90591f834c25923c35fca10a2eb3a0a8c191a66c5caedbe1b97a8fd655b8ad561364e81fdaa75631d875b54738bce88bd9f0368f68821d9aa55e95daadeb600e8aebe743e823e291ec79d6b4d749168bdf7d436b50285077e08dc7c689ab3fa21ad1e2702577851a0aac8c96580757a0944daab7d81ab6bf2ee0fc0742db5a52958a604784bff6dc4434c0fdeb61447e1cdb5e16f9f2d8da90cd1362dad67713236a2f78015364108a6ddde86d803002a7a80133ccc7f8d64a97c631f23e9fee7b41b493c7dc4c86f6c93979ed6f4581f5b7a0f52cd1890f8cee52a290a94592ea311be93e1a571843412869d59a97278214b1f3d37e89090cdc99b6dd4998ef3b540f31bb4874f281cc95e0139b541a3a3d2878ff81c23feb754801a656dad31037c397cf977715c4c3e13b207111bdc5b890243cf3bd2cfe4b5ebe796fd7a578a9574f7cce3ad226b6b540a847c5032e770d2fdcf851f416fc4356fb3bf610da9d6be9dd9e57f94282a54c628b106fe8894563ee0ae55ddb8b316f3fe8968b3a408d324e3e4cf21b2b0971b9c64afe6a6193c093ee4acdbe0d7d4f62a3e3a04240d7f633f82c1ab401eed04401bd15c4ae0b158f82279d0507ab60ee0438800b506a1f256d8e0d88b17d65da6ca0655a2b33f3572de5c4c32be29a83dd351a547117184270949914f73f9c0154c6125800a2313e3f6b967f6945424520fdaf6ae8a1919c21c9e0acef66d3d079f94a1dc5753c9d8ffda05cfc2fe83a3f0569922ebdf55ce2ff42c4c22f0deabfb9af54eeb8f39afd68ed034f30710a9ffa287c02d60ea03f2fd62940d55b564b5b7499461198b1d89308a5fdddbdd50df7b7706c99c1db1741c197154cc7f47ed03ee12a5f8aba98b5559d17896cb79a717225b37e55238492a483613c360a114efa64d7ef5a62e409c1ecc41ca93790f1bf7850fd5948eef1b6a37f379076f3f5db76fb49e3e5dcc54bad88d1ae599683ab730adedfabc94cf1f4e47a08ce5464d70c7bd05283940fe643ef01bfe94680f136e698c0c6121a6a0573886d7e8bb306146001032990cd2e290ae2c2a1bc4edb132633f1a2d98bfc5b401b8c193a95fbf02a27fa0a9c9d7671f4537a05499c0f3d4d7bae467c4f423c93d1457b627523eb6e91504694d3b7783fb90b057aa3a58900bf1ce6838e8308142af8052bd895d402f71e32c12dfe5188966e3b067e3b406c20e471e9cc8e0c78d15211e935424225c889a1bed646d7bc968a5e0caca4abc465e088a4b9e830e42bf280576d45e03fce5f0b01427ea1081ab64dc00ee5b9705535642453eeacab2c671a6a9f3b22bdd04093b77db737f31e88b8ce4961766b33f57f0683c04f5003442d38a314f0a4170756161dbfd33fe969e4d49409457067943d10577398bc76f2c12027188b19c897297744911daa08fd47015c91480fee63336b915bb0ed8aea51fc6327757e9157eabed8f80e86d24f8b92c000657be46f9069d15e902076912686ee587d584f4c73c3bf1a81369e9f5e02ad3f83af39e8b3ac6bcb272082d39905535fd2ba2a1413de424f4d869998113eea95ce9cda84f60138f89695c6304ec4b8696f949666476be3ad1f54fcb6f72f1b8e4078b2fa61a4b9e177a4bd23b091a01e806eb572003753e49ed4769e8927754529c8ba8f79c8a4f6b39f3f46624d3de74bd7a89c8d35e55a9871f1c62fb848ed595fd85b43004f0b3c0627759b0f7db47ab25103b2aa550794faa1c6baaaaa95443140691b50db3fb2bc76903d467fd980390bdf51fbaed1a14361da090a02ab2d8d080991c7ff3841ca8fcfeea25110b1aa6b1421f1f3ffb680f3dd610b09298ed5a769aea60d2913834d8fd02e9942eebfc252a687bf7342416386985ee0c6affe8dfbdbaea8c66a79d60a85d7fec4293c214618f0291dfe16144d3ba4798b1ed38852db8d12348988679b9f20012a2d63e9dfefb2a8b0c7ff64f30705878da7c98580026e72d12bb7d9a21ecd129de99e3475c67b438a1a2889012dc18f701d37d1bb7db06f0bfc58a46c42975a45b65ed8b2764fed7d03052971a2557c16effafcd12be5514eeefca38f3bd2ed81deb933855d4aeeff7d4f65a19ea01689870ffa81d50d09aeb781dd8226d763c8f7bcaa35970a829ff7e78e91ebb42d0b07a8eabd52029dd691ee0c373353ab1498b90c0c244512639e13bb4bc9b689c50d6a9f20554f7bf3ca9bb8b95c2f07b4636d27e132e2902e4f41ca8ee85a2d73e1e31688226356be56180e436f97be468bad8168a62b0871472938392e4896e4b548f8427650e24d39212ecaf6edb9b09f94a224de89d47d65ae71c11197d3edb5b4327b6f0fe215f0f674ed3eeae5604f9bda4551c6611b96f758ae1f8c9c5137df8c7e13f417989ac8f5ddbf68845cc64d5654e2e1186d9b8035fda4ba8be8be32e82adda8c7466c3d76e383911553709f43e8ba061bfaf01266cd94e042f052074bd82df24f8fcb0f00e9e1df75f03597c3e2dcb4a459459b2bc263119b7fca72b74428036c80f552edf0c3eb4bc93eaa0c2825ab7cbf89245b91b9adb28c950e75af08387ccec97d32dbfea1ed108f8c4edb4cc9f72c7c5d7a8032034b29dd74f6a7dc074abe6df6e9bcea4cc959edf6c16def6708238cb60ffded10924005d9d8da5a740568e99465f21a2443332a2be14b77fc2deb3c48c2cafac1c202ce59f77cab7b1601bb8d5fcad4f0223ea67928f23635da9009480dc3428b0376bd857e03308013eb330587c6cc9477e3ff912ab077192cf1a61aedc96ac0545a1821ead23c218bd687b67785c64c0641245eebafbcde07b8317ba163c14a7892b925ec5baa4225ede15a792df25f3a406dd15daa46eeca5c6e46d533f33815bb89edc95c17e665b6f0081214847851021780f8ab3a1c43a3dbcbeb7474bce6aec9d8f8405b7787fa441f228e4ba4c268170d5bbcb847a97c8d6e02d3d96d0ea816b09d722c7b822836167f0fc9f32fc1d4247e4e38c0750612d6c2c44c15c270d486fcd40be1feaf5eca8c73bcde592a0122afefaff837cd800918da86c3451b95902f47bbc5e2128f5d7cca44f5dfdd024b99b5f7bad0618525c68e3ab308b1f2638ed78774dca2d917ac5e0e42a068f64c669246dbdb1836a0c1eb4883c82d11a6336e0b8a8bbbb57985cdf7e9d3cfadf6ac6c89b8fd6d954750d597e1f1a5007eba851dd206904e7e657f3c3b3934048474d8e9b180e185f759e50ff17f9ed9f15bab459b82e076006966a8fdefc8574547b6e592c44759e7997aff045fc8cfc5ebba8307239c1e7cde74b7093a87ade43cc259594ec776712ef0528e5de3c19629d3e7c5067b827a8165529afd6802470f3536377548cd6978bfff4579e805651f713eaa2b849ccffa98b30a860b6885d1243a90d4a444bdea26a96016567f8fe545d3da52cfe07bc3db32f9167d16fca0e82a4a99496e8faab11c1f005b5a6750d6cca6d23ea0dcd7bc486ebcf82e54f6a20630df709141815e31f5a530ded2024c2fb2b9fc498c80a10c74975fc18923d044a11b6b4fa592f35cbe2d974bd85f6d4cdb6fef46496031139c23f4cd9003985919add5e0bd30291d7baca80eb8ab835516b0b4fb32cc012573185781e28cd31c3e1bde27888fc52c8871e3fad5101f52e5b7496ca5c15b64e4c60ad8290dc6540095b1cb886a89c151f3b37219eeabc1dcb102c72af49128283e755c42f9924bb03c9550806ea86ab10a6e2c6cf844b6c01847877515ba609b56daf44696f79bccaad23e69e63406c018ea4006aa1ad7c641cc12c10678f2eaf3640899e207e1ee56312968e01c8abd53496982c36d843e90715e6654281f082499ebd4f6f06923d77599d0bd83fb1ab84753abcda04cbd137ea7d969ace80a64a1e2fccfedb1b49760848aac7683ca659a2f6da2284b1bb8dd2cedb2a66c7e78755d0724867907d51c526d199b3fb864a5ec030d78ea7fe2b6b3ba2db0add2ea0d5b782c89c1e18c3418a3d87781319fa71f0a34efdf25a034929d5dc349310712b9d7bc407c33379020a985a529d6b3bf2c3416ab2ecf7f72e803b0dfaea3034f6620e4dd6d42ffcef0319a14e25dc921ed8b6f5f583b2374b2fe440149a75f6de869d5ddc78668b6e123d9ba02df1dd39b3576ef0b8bb9b92a6a2389c8c08d353b04d3b9e2a336a679c89dfc8a8042ccd3db972f822872f925b9b5c58602a9c2d2ba675943b4957c34761e1af7fbe11fc42d95c686909373846e08b8ee8d4dbd164c12a064d5a28537fe8cd050f5f0171f2d6c840cb464e27641d9320ab2d56f66d0d7108d90cc408f2f97056a9d971ef603b0af39a317c1f37551c5b63c877e67d9c086caa42f4af142b14a411bfdec806d2d14cbbd852ea44ad29477fb9590e6e05b6a460afca0b9ce0890800f8ea483f1186a428e67600944a6d7ea278459a3ed4e8ffefbe915a0573d6cfa24f30accc1210146f6d28d0333e107b2293e22c8e8a8fd21dcc83c70e6329bc19ce855c501c1fc6320aa725b581ba1b8a2e780926303ba007a7c23e3a9e18a7f8e2c6fcd4b72418a54e8bb7ac03ee9c185bec926f73f49f9c6b496d51d34f80c85f6545435c8b9913826f4233c4069940366babf759646d20a8d273ddd625be864250d2efa5e9be5aaf81f0660172b827dddf53f1803227abd3ecf8ae17cab02350f9c90a1f34766a03d902e773ee9b282fa9e5b2edbab5a814b7d35723fccc037f83b42e982fa7c97ba8d35b9be73253603464356e7d775657007eae3a7fef7f3164f1d610a61112e5a851eb1a3e20e95b67af9889e81a4ab4c2d950f6bbce634001f9e22f20e971295406c4250f08e1f604d39d0062ffeb26359b1afb414c70d515ff174c250429efcb9197fb4ca167f2744a2adeae11f593edd5b1be1b1cdb15e8999d0444730e87854819753a2e57ce99d3c9171dbaf71fcdc0fb5b2644cc9c99c97f6965da0b2b154884a01b8fc66b9e5629be101dd5d5b0c1a477df49e0c51c1a2fb42cf59e8cb2e9156ead7a7a7fe57b9bbdd6a0469d20379b345b81a8c798a1ff8f654557b350f28c6c36886dd484c4962edf6556817643923854d4289e464ca8f2c2085d2b6341af95429f4e5ef65c3336c120e646381281c0878459c5103ec7847039e883aa08c72a5c11ff1be96cb176aa8f27539dad23c5cfe0a7c37f115b9a388bc81da2c820a1531a18ca5b5af20f1c9723e27a7f772fada07384bd6249bb400ddc4969668e9ee8c363656b51fd2f17ec348d1006401d349e9282b964d8bb9e569cb741b1e305e6315e7d7f657a331b148b216f1a86358cf2ccc2b735356548ea9133fd967a13032cbc56becb3956976daac67363130d770d5e9ed447f0ad1fcdd7b5f417af891b53e4ddf201abf3b1e5ea749135f79a8e3c785d47797e821d1fa1c062c465ed90cf70694e30675787faf6bbe22c05bd2d3bc0a16d67b51ddde6b50e3b2e7ed2e66eb04cb0b7a71d42ab4ed93d4453cc34d0cea0e91e52f10925ec91d9436638ec16253a5da9c823af01c61e4509be411c33ae2e5d8a761e72b3b4c122f989f6032d067650d8ce082ff304a9add2646a07ee61988be8257ebf698e39effdd9385e10bed8904fdd3d27710566368b282cc9365b4eec21c639198090a7dc81490c350e6ba1333cc1a654a3986b09b931da0c45065ff80ca6f32f2ee30ade2e54fb5d476118f7c467caa170e19d81e66b1915003ec1bc8f757f76134642259576bac2d6a5019fdc629362add8a58e7604d5c27ad46e7b14c72a890b89ea3f3cb2e4922873df7cd767a01780c837313cf042d6180c4f65f6949505b0138d816e0bc840dab904ce6fd1241bd0d0a9c9e166f89be41ef1b662b81a55ef5d1e159d0a429bab9977d9ef1d59d9db65da324a620e7890b816c2a974c82bce75cc4fec3eac9601eba3f76b6f7b7666ce66e39a215601dc7a0eae22ebe8bd9f7c1d1f11b8d8963bb8dded510c600447a7318f8ba79d9e9879def893a61aeebe285eac298b1e4ca4c0b34716de91a9855f3903ed3c04d855bc3e038a10f9f51843608fa452767517f5119873f3025c9db9be3516ea5eced1c2633124fb544ba82a892a9baaa6198efe33cc82fe4c11eb4fbbc40b01ad8aa6fb986aa81afdc3544e300a3db38009a3b567faeed58186cd0aa85cc3949c17514aab019c85163a8cb64d610b932cbdc9a99f56aaf18b017bab93c1d9fa1e979b8a2350383805334d7c78fdacf385de619dd536d5f11eae1c4689746f4d0dc6a705518ed093e44a4b4b354c148088120a073d51fb17387851c2462fa5eedc9f53fe23b225db8f664be8944b8a6bccd39492459e66c92e86d45a43b05eff63147629d85eb4b83aeed3a62280f2ea1270ca9c6d880a1155b4a51e069187e7ad017e2e6f2fc0b59992d3f0224a45b5e27ab3b9e453751e28b4bc73cc2013d2dfe35129fbe53ec49a5eefc32134cf8934477f2efee748c110b1018f807d552f2dedea2db949cdb7ad17bf31d1143da82f3a3a777364f7f1b39c00feff642130dc770abcfbbd86c89c2e5ddf371ede57f60870c1762ce347d3848e20b2784b4d5a049551e5dbef12f5c255872f34ce5f8233867095518d83bd9462a86eedd0c1603592d6f2982315ff7a2e773324ec8e914e139b6a8830054fa4761eb4e1e40c297c8d2e56c41936473277117f989833a2eeb78b211102548276dd5e2ed4946fb16617ac20e52c3cb6c091497ce03ba4ff450640c83d559b90099f188df4897311c2739a3dc3fcd4395c252a82e879bbdec7d5ec71800927a29a154eaa48aa62de0215b43c256a0ffd568051e3facc558a62f875292bfeea0e3f38d800e001cc9fa561aaec8cafdf303c01704c24f9d29f22a7f7b34bc2fb2e353ae3728f6904547964a1c5fc899d648dfecd72556b985b512440234d5a14bb4ee86e60efd5a1040675b32310fc866ea28ac0129c2090f55f01533849c013bd1638cb0d9616fd6a81996a51f07439e46ddf383e0d23a70d322fe69533b77910958e245ac812b9a403604962f00b3b23283437fb3a034f28997fe3c248a4ee72d15ef4c51a3e37f8ed3043ddd91073e9223d51324ff6fb3a1387eafc6a65bb2478e28ac9bc141fa9b5a842373468ae7d479c31ed256aa6481edeceda56864e1942d98a7b68ecdbdc845ba11d110a1c68011715e500f24d0eb39914bfd9c9bab7026e6b87304c1a8f6381b3902781d1ba977c4d61ae6770bfb872771a74b7342b7d9af973a64a5196da6d3ace477745ea36c6bf653dfe95d2837c667e11c1974363a5d439132735b84262f00b7233d4352d20663199ccc5ddb17a847fc09fe1e51fa0f029bc6f42ce313e01021a6d3fa01b3acf0ca6070e83f4de286894b9b40c4f1c14246e8c37fab7cd8f4561ff2a781d729a68b9bcff6c9d37dbba1abed65805ab5b1dc97198ea5ef92d7352d69c70282dff4b875e2e5bfd5fdc840e2ab131491ab5f605972b2f1de8652967e7814927f54613dfdfb63ee8139f80330ed3755fcf67a330057b9daf3732d3e2252b0891c34e7ed168b166f09f490883486fbbcd0e879f107c58c50acc8642cc2acdbf7e35070f1aecc3bc2a4836d8145adb20347d81b639365575d65ac61a90b7ffe98144f8b7e5038f118ea774a16d2710ad60a69519ffca494f25c4490b96513d4fbd85b9da50863f793fba456c1d3c2d403ee256c6420acf6cda7ddcd952f4687f02df7a96363300b85d7da1cad79df51381812c3d5b73c6136fd3403da13e43daf5177b662bb683be1d0fb2da6fd64ccc32c6d3878915d17a0a80ab876b8ff7277bab9210bdf87e364a025519629fbd1780ceda8fb93dd79d1d354321f03c8fc1ecc3a8e3516a291f7828a004d684f7df694225c586528422f5f3a6d22a717d49df5a3c464174c279826e568e41e94b0a3c476c14bfa4c74cf3bc65df2c3d13f4730bde94ffc909061f87755e180e30c8ebf5b92ddec7520364fb84f06d240b607b44b55077a6c40e9e07a9e53029c077bf53ee1a3b3b1de41c41fcce5fb800ffea2dfa9de9503c46274bd63fc9193814e2963d26e2c9e4685b593aeecedbf30d67c37b12f074bfb205e992e655037c36c452ae10550ca41b93769dc6d9ecc61de35b19d479f21cabd4caa73384ef90a56c029c98abe422db1d43fbff8863c42b9b144a07decb2ae39ff796b31a9c20771a493850cea2642f00e91d6c526a174ae75b978d5dc1418848f90f48a1c4f9bfda2b05c4c5bb35ae33b93ed1109551d8ab261f14aefabe6dc1597b1afb8a8dd4f3785af157a4a56f29f790843a22e44b6831137268d88449f415725e5c1d7419488ce30c6e6c87927671b7d46021aa88260c385774a87600620c45e4455be66312a22199fc2df2d0dcfc4b4442715dc9cc96684acb81fe02d05d757b700641ea9df3e5cc673fc124219b5b94f9c62018940111f82cfd89b9946e3925d2ff89c4dbebd9499e5e137c6213e59e13d7f456a55bb4d09ed9090155b7fd16272ce3fcf7dbf72264b7cb7de2055f01964844d81e3867f7d0dc72b744dcde8ca8de193050ba0f3388bc115e7211319740515a8704f85480c2683d583c922e6cdb1319be6da046c3fd48cfc2f57438c493b9e7a0dcd538ff3e51e7a835b1f6b5a059768ae5ee9281146334b8adb3458f658e7ffbfae5e5650f75737501746fc9f1fce54c3f383fc7484935b53d279c8c0ff51ae0bcdcc032f87fe45c484d8876f2f8c27146566d2f662507b09c1676987f6e9572379243efde03c4ad28ea64e0422e898a66578f7df6dfa64264dd7f61b5542faa1ae97cfeb0c8a15203f3d92fbb9c5c4ef543edd3361352df2feb58c376850cdacaf48cbbe5cb8ace49dbf115fbb4842a8c15233a0d0a0d15fee616f144fcb6c9f2f82ae8b5e996495f996c1e775ae862d39ca073b80c1ee4c50ec16fdc94965d10231e6b62935dadde6f3dd2edd997c2607c282634fa9022b2ffd6e0c94e7fcfbdacc65e24477dd1d70909aa6eeb45dc8bd153508b52b4f0b46fc69cdd312477b96b946fa0b716b8d50babd05cd2c5da599e0b1093639a3d6505751d88629d22eeb28d8af7b14edabfe3b3b517d194e1e28912b9c73e9c5b5867bb38690ce7fefdcdcbdbcedacf84e811e26f33714efdd2167a3b467cd4a469d0e62a9c886010124ffd1ce94b4444da5dafef6a9436a4e8012ada1b94a12fa2f237718a8c4f3bf0dce2332bf5df61b669c501b6ddb3c69214603166c42693b2b660744f3d5adc992dd2202665d66f36df83212dc5cd6f105a2a8dfd0fcbbb30720c03f7ba0df1f45f353d8046e1e5a2017a1ba594b4f5b34feb8fa3debacf0b83579c20165ad041f509cad770becd50c8f37f2c9e3aba2b5bdd28f02c6323e8da528ad1a914735f4160cef8e4ae7f78c567e5d438547bf28b89da7607f83d55e981cc7f82724c2047df45806df56e770504fb71739c33496f5051de41f2ed0f805cd29fd293b2319c419f46e65d06cfc22f6b38f8d28a5c88e649e4f78a6dc2c0d1053f74f4d6571ed28a2b5eb4947243fc8d664f56d677d0d1c7876b4197f4dfc025751efb4e00faf5181d6049493674b8eb608ab0a9677dee9bd340582a1e8d7e70b644702c6dc09f2874b1734071df608fec6309f76d2eed3a03ed591f0d1c539e508dfea5fa11d92500bd0aa0246c2729710dafbf698ad0e3fb6b8c0c1220fcab9c6bb74f41af41185cb3ecc339ebf4006d349554144c701654f4839aa4052975afb18de3169a890167227a7aa9d8e1b88446d02676b3f859636f8f08725b001f93dcda99af4df78bf96618519edebddfd89d1b28f555685314f048c107e898525375d91162fbe40833e5b0f0e3988b538b0a54bb9e50132c734008ff8b5d7f4766202acacf273dbff7642f8a35cf01749e21fd348ff2214832e370803679359e3cdc522974fa058a7a4907533ddd0a2598d4bceb980f0e4d9f93e34c7ba0af0a027f3916dc0fd1c6eb9bac11574745a19218dbd88c4d2978c2630689199ad5ced8baaa2008a54a94a70a17ba678b831ca5cec8c8c6e81645a215475b80d503051acfd639bb80af607d0f461a5c154c36ceb2961bdf9e4d64e53152e03bcf8cba6494d1fcb71550c8ea68ba9620df5b3ccad17b15a4a898014dab9d2f5c8532da85c014872ef714c463f3f7f623ac1e3d7fe950bfbcee995ac193dd6f089bb0e68216f9e0dcdef42702b90742b70037eae822145797ee41a5ea848ffbafbe318551b642f6a3327e7136bff8aadcedfd4aaec7695085175a4690e371958b22d5d705e7931e932d53e653b3598d578afc3ecbf015e526c2ff57381205ad605b33a88185f335ac8ea9021218c1790f7a70d0f7ae833588461f80c1fc15b3b8c5d261eeb84f45e2f5c9375dff48521835ce56b7d840f9911ffd16f123297efea5aedc8badf7ba14e692fa10ad0c77f1d73c69397d7ebfaf7cb29d2f7513bf3394baf79ddd1f3309b9f42175b8ae02ce2614a176f694bfcd1caa84edc764853068580383df60d0a5b076959863d216f815652c33b87b3910d023426acff4d39ec7e2fb3cc73424eeb6b14be3e8a338a1997230d1445366e687b1b8d7ac5e4524ab2594f7e87da7844cd39879704cbdb1b731fc1c24dcf85a6fbded131381c06bace10f5531fec2b29b1dcd4a38804669d6cc0a7d53fd2dc41f0110731a003d01b34aee8b57e06739a46523e53af24ee20a24d62f6a416d35a80dce5378c39731a28a649fe42f386cfa95ff684adec6caba49798197557954c8c6fc77cb747760fe3ca83c6a5b3f59a22a7d35267fc0e33c032323b48c307471e18d5b130341861cf309074bb83aff25b64d288b962c1a444d580edb5bdd165b6cd60336231cc852b1df5c25fe71d4235ee78a9feaa64ac9d4069e61dd163a3a462501adca075ccd703fdf48c91f20395c030765c25202d87c67c7914f310ef5a2a99c0fb5fe2a1f9d89469e1a6ae8597e6c3c0c6dc7ce1adbb09c3c953efbfe88a96c35e12be36197c34d10d4ea765ea51dd21eba0cef43bc998316b49e15e35408c919132f6cbd35c2bed340c8b5cc47b01c7680a777779eabc9d1562064e5351dda7d5171ef7a3d24e9e3895de7a9ee1ab4dd18b63bac3365801749b1998dafd93b846789e65bee1c0ea841737a6fb7bf9212de1c0d91e12ccbd1009f24e01a406f2664b0e1c9770e8bfddb07fd13d4ca9788b3c225e4441309b61067b504202a94711a46f8977df4ccd12ea86f770ae186017eddcb52aa6584a0b4179f1b435f25eda165157b999e560ef8577b68341edf89a64e83e79510921e4a40b30d55fbb06bd4899212d8ba63d8590a4ce6be6323e1990f5ec53dd24a77d4717b34fd24c7cad241d25639b0f20c54aa11392af76dac49ae3d6f0c3d489e784ff2d2391499d47ff5cc8733493f7151b369f98f706913aad91722208a0fbf012f1e79d768028b00bac1412c2ef8469e59332515f9089136fe8fd9cc3b147b5b492f97fad0f6a043367d320230b9d2e94290ee7ad999d269f2776e17907c871a7b03b79bff8dcc7597e805866294eac8ce13089058087944b309df3bc31113f494310d06f327e98995d284fd06b4d131ef62cfbce97171ce30ec3827220640423cfe54598b6396b887248d9e465f7d0291c6dd79ab5e638e2a55cdfeec7a08845bdc340871e11dfb88f57e16bdebde7a947234d3353c64131cda4f9609f017da225bbb5c4b0def93ac2df606d365f5be558370edb8f3b86c39c240fa85077f8b98a3deef4667ed8242ab2c84e8f93855c5f3307b6bb5efb07beb8be9ea46aa82b9e74a31ec07230f2c1c2d964f6869ac100e1f4849530578bd9495545ec0afcc296536e64558264640fd12ba160ee894da18d8b221c59a60e79e06e395cdda1b75dd63a65738a776c071f061a34c8dbf03434d29f6af78892c178a7199465846dfa5f65ce40d25b1dce4966f1c5a584603100db4a80ac01a571c568c55de08c7c4b03dc88475c44f48a76bbda4c46f26cfc64f6bfa3930ba2471caf6fd8eca3b8b3225fd0d90986bdefaa5986532a8be54a58efed93ddc18b34da7274040fde621c490e347267964563ed03f69282e5281dae32c02ca8164fc415fc84511a22c12257ab6f31cac5e082b2a6845e2fe8bda886f4de86376d3633bcf3987f0371920ff528522f33dbfc15696bb958493f5a65384c9fadfc71e52ff370c6e6b63da7a4dd2b4db44e2b2a96b115646348180a6386c9f2fd8be03e2acac87c7df82427d49087a138c9aa735c84d47aedcd7005bb82cdfe2f56ac39c174a2607798b46fefe4d64f1992ed12d79f2157aaeb8ade08ecf30052942a3460d731859a3ee8131ea67d06682b7a6c1bf283866a1f4a4567f5b4b9a26256bbbd8fdbd84ded2b11741fd7315f41a63ac95979cc9828263d7f3d67d87c84ceada93b72e9f1a9e387fca57d485365a8669e1a823f05a435101746429b228bd6f851ae2b58d08ab9c94643acead480552794cf81f4533db340f34c7446e91dc51a8b0595058080607039d7e12c7d9f74eb5ed17dc4d875bb8803e64d83c9db5695aaddf324c9f39c7a4fc13a37516c3c6b4396b1474ea1bef52fa2281da1f3d9308bd9f43ee9f85cfc3e8ed583e84cc4941ebb479a0ac64ccc80f66f39db2ad31b28c659bbd6d5735ea3b675d4d653729dbd5182ea5877ea7c3edb37226feaba735f0200bc6067db242f8a4b28c5e23fe4dd4be4e789f51bcab718c585a1b70e0acd5469402bd572589b58baa0a5aa8235545f8643e5ffdabe8735792b5a5a1c8d99755ed8fc946108baced6eb0df3c3850c8c5f124fdb9fae93a4e24e858edcfa2814301af239d193882b178485ee19e072cdfea0cafe38ebf16c0a1c4539c6c9f94e66f9745b98b4234d418d51e80fe80c1eb3705da463642a718b37e5a9e98b4e474091ac940d24fc952f236dc6ec3e3846d3695c6a320cc8e9c9939b2894fc11a155513061502b9a63a7e2339e49b6dcefd35d7a3e7628193e7a4e66f0c135bf0160fae1c5151dbad59876b8e80f9767ddefb62e3c7722871d5b973542c689ab6d3a575158599f88249ad91cbbe9687cf8e40083844ae92dda4d249907b59f73967b938016dd7a79fdbe3b0633fec7a55073059c112d69481d27d1b081af2359569a3bb4296afd5123ef1b28064bab4b87cec042e218d8fe85f5b03f5f3c362c592ed3a6cc0e554108bf3d6f6a38365420d0802df24db87a8f8a2f2f92f64df10b9d5bd5a4ae5feb1d7d887b2480edf56890e8955abadcf44ae9c6f0828eb7e93ebce3879a73c648c40e4829a1ae7f8569bfade753b543e8dd126a4ae9977b28182ff7f55ac1c0df9e42e4e2089dd8499efbdef68df02f97bc632bca8f3a9c5f4dec209f17cdc49383c23fff88182d36ea1bbb826de50cbd38d4594cfc7262b523c2681770a7693ccb10151b812ae48601e4c83f382bb0f0126f9b7be7116d99f656e284559087cb1005d0b4851fdff1de53eef59902228ffd27cb0cbf3a8b55759900b673b532f50579db875cc4c81cc0151cd6b634a8644d310a328e58c138ce6b702ffc63f8353e87fac10f34085a4edbac953db5a44f705893f4c0d773e6f16c28435935598bd2e915a5275bfc91684a1e681d05f4dec8cd2fef8f1a31790c5c249a3b1430ae1d5b6fc8aa174f6e513a3c6fc45c915338368b17d2e4cc25d2880bd5c6d5cb01fe8a7894c224f91e82e50c7a186ece32f77dd5d09e43460c416f441091415ee90a16ffb8d51030365bfaeeb5d0f81a88675566f2cf41fdef4e2cf41b0708a93f105eee5808987ab3916b496a97e226758180e34e1ff58d0a92ff212262bf64d7f23585d137996064319d015d1c0d12e953cd1abb5562b5f7bb2f5a842f23ea8a1beb32c58872ee0b17562fbd35771a264b582a6f01a6943140fa1174c32679b82fc5c5c4fbe159943be3e49e5ec4c11e7939532cce0e7d2590076e53e1c1caff8848308c98a4f7b8ea92e6bd6508b1fd15f955b1ff8fe1cd9d4262edeed29aa647eaa875cdca91ed4386e01f7afc1fea3eb9f3811610d170bdc1895b5bd02d364b82ae1add532dd0b6c2e7b330561368445e54aaf25f2d841c2e60777893dc07f54ad937b4abc57174c14817cc743fcf0a32d2c817395e95001df505ee813b9283eb5ab2ebe600a5380b72fc163231dde13508d73595e9b427c8679848ee4a5bfcd142ae772f7f0f458252206552275f21bbb84b47fba78ac1411fd4cc1b0906e0472ba3e5ea13beb335e4c639343f8ec7ef12c5b8899c07488ebca56f89eb506e9cbb93b8642132d66d6a5f2a1ef4a72c50693f408f3f21a2f32199b2978233fb0ee8c2e5e006eaf5ff7a3f9ba72eac43d26f54f363e6dd53d3907a4aa2decf684ff467338c7f36f949d84d7787be529ae0c51246dfa161612071005244fe55cf7f59f51c7c5f247d1986882e1a024fc0c8b4269bb261e48a2d74c7fcf93f81e541d3b75f4ee6379072d3e9de9d842b02f09327d6fc7c3d89c96877b1c53040367953db80b79ff2746957b705bfff54a88ffd2727b6838dded681dc4e10f4c8b76d2343a536061308d7da94f8d55070cb77af21f2c9588e75b24b1a876e77888981a4dfdafe43d0f6185bd357affdb4fec9d95c74c5f99dcacd3adf568232abbd90bd883e308a6ca8bc144a29e858de9d41d687951db34dd4b35996908ac15e71412232844115c0f433b5e017352927711c37a808ba32694b93c3692ab90b8f9bff59d288f0c38f4ff6e85287c38f67407ee517bbc53687b288e773b65819726684a51a298489c15b1cd2cb2b1e92209310e44f7950d5eea860742dadc570f1b10fda4f32ad7f9fa933a2842697f38d8ee2a28a9d4f622ffe035ff9c1f8ab5ab25ce76415c1265f8ee8fe7fc0cf5f555455b549dafb6e5b474daff0b8bb8489d4ed08018fe123afe181981bba2ab315ddd4fecf844fc54b90a6eae636525316bdeec0f659038d108b9178cc690e6e10d16c77f2687f81bd3269b91125336912d615c0a3b4ea54322eb3fcb211c4db533f419f987eedf6eeb6abf1e059cf5e5004a30462880c23f28053aa7b2d36d3bb741aedb07dd6ba70c186d5ca91e9037917dcc2f0b3dbaedc7092479cb7a369ddb3d85d2233258f1e7f0ec54d4e1dad9aa2368c0a727fbe361740da5e50c7de54ad5af8e4a07e806b4e1b658f371c9bcf2e48fc47484b92bc8ec7a84942378d93277d1f5a6ed60fd76b9fb103399f64c287ca1725b386b55089ee420fb5e4561f442a5a0b24f89210df11c62868d20e4924c515163de4c9db35f37be4e706380277879a929ca30e47ef4301eb762a9c97c81276e8427db1f579d5535300d36def5c8aeca3969a6d677a38287ea6917c3dd14fee319255b1e16ec911ee66187de0d6d3acd06b840b7f0c510a3432b953497fd87b1aef35453988a35ccc18f024ab0992747de79d88d5e020e5b8dd16fd1e3afc5df1e791057be9bfc143964b7869a5111aab4b54ad8f87a6171163399dcdc0c8ff8468e1f14cec898ee7ebc9a60cf55aca1c575f8c6e8972542291e29f936d812cdbbf9d34b091c2dd8a4f80362805e3cc2713e478973ac2856c932d98a98cd4c8c4416c52ae050d4148f782fbc99a91c87b3c820aa71156cc5a05e86a62b79922911dd4eed318b19b6455cbdbfb25a38a1c5fd707ca527a9694703b3924d090b13e7500f944d637e766ca831e5641e9295d48aa897c2c4c8e04dea07d87d693238bef46aa8a478f663eb7e74654b01c0abd5a43d6438b6695fb66dcae1ee185760880d061162496a5a125352622d716c2cddbd29b811fd5e53c5a66c2e5a591fd11cec4ff656e1384ec1dffb9e14edd3ef8dfe68837b1e2ed65308ff0ffa8400458261f3b6ef0eae665f2d82c852ff473c7c4f7c8cc41493ef0d85b8fcca94c63111cd66ec223193e8aa24614eb7baadf49d9fea3ce8f4fca74645726f7622115f28e95f7f8c5d9ff0ab02f3ca771a001722debb7df6880ceb4bfb2a58897bd4cc6d9859cc2692fffd5381f9fb8c52cc8a49cffca3ea17193a6418841cd8add8e9d57a13d853e2d24c94af164b8654b33f1b7d3e6dc353ae2ee07f452832cf371aebfe10942813ae00f54253e6158bec9b0d86160ceeee09cde9d8d70dc724e18d0ff918332ce71b1ff7a39b68d714bf3afff49e4456aa9da6fb4ac836df381a67b387b58dfd6d165acb15401213950afb189ff298adc591cc29444b24ca5ffa30b930b796900890aa272174917f07bf5d733db485bb9b4092a6e3b53f24a7eca582b1b1dff576edba45d9d15a44e26334999989cec8dcb71f2dc6013bd6ac2fc65ff0792dde30862154a9d291be37919f412d9ada77493bd43b3d4d017065583e5adbac1c4c7e276be4175881ca77755ddb8614219c08c078486d5b37c16bce1d97c527d6254291f51f5525a493e65268c39da8a5e2b27242586a114cd10d4dddc8018fd3982cf999cd77643d2dddfde440020c855df730a5a52df91899ed64b56b0dcab38117872772041f81756e5f61a07e7791444c0cf63d2ac11220b6f744c69d841f4aa3d9ad15b9c84c0519f662085029ff7c77ccddc059bc09df17bd87e844abbdeec67d97779fb16f2ec55445e196e120bada6c9babd5607a8af9c21c2332f4371fea7a94bb1693834a6c9f68eaff653449579a16da74c66da68ce7dcb0c6544faa4cc854d9dc0b55dc6c10b056f0fe3eda4d39c227702eea85bf5dc18c548700a8f2d312591f18dc45bd74508ab0f9f9d7b6df4e5ac478f397582e1aae628cb81309fced26429fc414e5aeee532a27cf2090562dc0e2ab1b24e1b414253f2699c8ba1815875ae78627e3330ebbd05de532e51ee12c4572a3d8672092d17c5dcd11baefc074531d102ded8ccfbd30f53c1d87ea223da5992acc0df44dae37fbed4057befef54fd2fa4043d7fe977b4cdcc7211fd30cea95f0d4428954ea9f1076fcd8b64a2e277857a62847726d14420c65bc58bcc85afaa457908ac94a596f4738ef7afa39c5e804e370a0b871ccbda41ddbe425c64702c8efd377fe8eb12e3f0a86a5771cd3de98bdf6bc17e70126694a6846360a270d9b93d524d9d08d2adaccf1424a4b477bd8dfc008db8e47ea74cc43b4256b141ba11537378a1b3480e9416a52f39f67c3c01f8e07f26493fab756d79940b5c054af25d5ad93b2c31557a70e4a97ba541d1fb101cedec0344b83ba5614ba7d1e808d33d4551fc34310faef3892781f6ed6b9c1ad86f435fb57258963774e8d868f26d5bd53a579ad5b7b92ba074299bd9e0842c9eee5cc089b969ca3c8b50ca1134992459fe2b53b254aa0b97921aa1f097ddc73d7a370c31736597a43e6dc1bc1f73786841fd79762a016492eb2150e0f5b5d09a68ba83ad195ba7cd626c519f44915cb21c65a3049979b835db7cdc88c210d2cd5e5f91f52577d68a3f160512adcc342eb484723d54b19e4b4a6cb18c182bfdb71b48a212718f85e82a6f70585d05d4b29599dab4513e9d3d302a10fd1ec98259dd1df0f616e75e47c0da85f4a5f4362776d49ee9dbf80eacf85c8f545a2ccb60f5ed0b815f520ad51a9912b65f7d12344984f5823f4d326b01b02118862d5e28e7f08cbdd68d990f3d9e5b7e4eeae3153ae2b7de289db7ef2ac430b6ca2ea7b7a6fb56656d4791709cf0a5378c387483ebd9f892a04f57d08b9088aa454b43244d93439a0cc6bef6d4a3af0f7ea6948eed16aec0e150c4fd4c00af548427f10f188e122e1bd9448ae324697dc331475240fa2cbe431c07b3181ac8254f373059b69576fc247f07d8ff56c90c5b5e3bdf413a63ac937f8dd6afda15f28279272f0d3c899f0a969b086ba67b0f4513e6f45b2eee91b2096bdbf599f2e09dd720db12c3f709c40c6f53e651cc4d0c39c4952f52637fdc43cd8e785182c9fec127a34d3e029fc10b38615689dde6141969c2b785319d6b5591d89b75bf9752e287de35f96adc86547e79f666137d7ab8fae350cfd61d21be53cc2b490717d34c3b7bb32a9d7bd7b8e5d21a8dc590350f06ba6af99315fae89c3a2ee66f289923f73ce5135061e3eea29165ae6a2db36fe120ad4ad4ab2b72663ae6b7c31d3b6c422c19788952e1361ddaea2936bfb05c453c1f45f244029de326082c70e7652d9e54f32c93eb7b828da4a8372cc1f70a2257e7d783a45c02026a2638dd3f251cb85c4707d7c86300083018b4e97aa356f66c900081e403a6ab65775aff4ac65ee1d82e2ce31ecbc2ade1f59e90023b543317ebe2d3775999fbfd37c59be6b1af3dc7fc5a2d23fed1d79a0ef5077b20b5dbd4c7ab8fd6a7941db5d995a46dc81d813c5c4e13357ba342ab9d5bd4ca7c5af7f38a29bab6a73e41ab40eb3a1106b3a15f20689fc11b3f9e5500a2332f41e113c17c572110593a1de87df20a1f92afe3db58c5e69cf38da3d7fc6d9f7aed317ad17598d428eda70a8fc37b547f0f49fde57df62b6f7cb5446151013ae9080166c36d23c439cd79f392aa8bcc532c3a2a22f0f5a0a7068f492141cf9097793d1ccc9085fc18947d6fb9e2e84015ecfe4812d02063228f2aaae3481aae7e7cbd272f7ef5e24f6cb5ab3da12c59ef99ada3d5012ecd190b15cf75f3a79dc844b7c803c9c25ef45af89bcd18fc104ea87f2ea30fcbff61ee0ae0b337917109a363d62e799b5831eb9afa26d4e5c1afe00a30c751dce15ca446b0a83489cfe97e489629b936ad5ea12bbb20ab0b44e6532e5585d03ff9f91e00abbd6fe89588ba07965d248177c5b3c7448f8e8110c33521e4e3a494e43f6aa3957e78040f1aff92b6555d47be7e20f31f9fcea26e2e078b964f2c6ced77c5e65152354858fdba3578ac542ce2738d7336bcf1ff98bc809f4cb7e0f96be2d55a9c42e810b7f0de8a40616794fddd66f289d9ef3f374acab9e4f6b3f292a1675a9c25e4625f5e9a4b5280e6b26667c7f719d882ff38730d1d43a5c1b4561c82c2e543e9a09b634dffc7bcba1fb4eaeb8373523244ee25bd1ecc9857e1b8ed97f93f10d7e57eb58e2c7283a120f60322f6dd7f8a32d7c199022043219601561235d683d20c1c7e4f01a33a143c25d93bc363802ceb6f6bcb6bea33e7fbec17daa81cbf4ce0867098543a916c6d0b8a1746d4d33a8d487777cbc099c869349d0c23e0c8ebab9541e21424d05f9b0f7ef292a1df089aa6ae2fe2f18d2f503d6fd8088bd198846471cb06dc6ad21d79754028dab9056f952792aef347982ca3b2ebd65f4d7b377e82276f2f2a4d1d4826b1b338de08701211d333fa4be1f5787907fcb6fc0c353f7f2900e834f9d8ef8123f0c20a208ac7a919c88e1e49c1957d57cc932fd49ebaa72082ea26b2202fdeea7823009df03fefed2539ac0931140b0a219846eb7b2002d6f4814875e56ede6d526dd3ea74a786f5310763ca7fd215cb464d625fe538cd01222d8875530dda47251dfdfdd31ec566468e3d411c4e116f7cd74e9032272adbc5211230886c218466dfb7bfa0239055e23ba1c84ee799eee97efb4e497703b0234b765ba6943f43adb3f175ac0e33683d89e385353b2bb29f42c35058e40932519482f8a872e3073a2e5acf988da8469f4bb62f74519b41e50b24ff50e1ff585728ab3554f44876c5e1aa600c909f0f1d29167dae809d717b1329822f60641a0be37f9f104fcf9341db7661b01425cd1ef552a767aa4f52ff1aedb5ac2fb7f9f6a475cb1305d48af1fecc1a52e3c13a96f9720c3b79ee45eef7c971e46ca577d04720d3a2adb7be7ad3580a51e823faf83a5d3f6adbbfc95045b7dc31fcf99b2606f8facb75d5d777182de94359f72e769826092958b9bec4f4df56623a6b7779564391afb46fefa07500dfd75451eeb0b04f8c090cda1dcab629ab020214695edf0b74b28543195bfa6b1e0cf011d427e216206676ef48e5ea7b964ae8781c4344b8ad7bcab0d84af4963f602b2294be252773d98a8fd37d77bd7c6e5ecc69fffea838834496dc59e242fb39d2d65b46c57a5e6603b2a840a3e28cc375b1623d14b4c14743b70cb6afd1625e37ad28392ab6dc689076a1440b4181ec6b199bc3f72df2164d8f940e0b28d9da177dbaf9e77e6d31ca2b40a63f0c6ece95118ed7bfd0ca0761d2fde37dffc2b4415ca4732c53777599680a627738491d2268278dab9f86b10f2fe4ca98841e8a826502c7158201882214cf1972e59016624672644db994711e6951dc6a62a0d86450158dd9f72fc5c2c187bd9a77f0fcd158012ad403b20f453e7ca8ea7fee26784d5b722cc92768227ea263ee0e57f5577258df563fda441832acf73cbf5799179a9935547fa63d2384c07f2ddade99322d58bd6e3552d4f855ac8b423bb344aaebc866571b8fbaad9c94ad8a4af69efc6b2a9bbe788ef830bb7accf3af12262a53208c7bdeeecba9e73386930f524018402b8acf733879e63420ff2f2ac2bf77a9583950c50cd8863603ca3873d9b717eafdea844c5cbb41b44749ef2f407c5964e01b05fa9d7097d280461547ac93df3c84c15c802f7e78cc8b5f70b460d8a09305f92da56fae1e769aba67f531c8e20fe782113811b07b11c78646713c84af5ee18ed51c93527a043f8b734a332895628f242212feb993454ae7cde3f667ecfa0a03d8e074bc271dda70955f76fcca5bfbf2a03cbcd0dacc72e73e0a3f16d634347e9ca2bbac699deca5fd7135f74ec6352d6c16747ff2f90576d6d8b5a503a35b59ce9e1105c82f431abc46ee4de7554049e6bedaed9690ec37a323852ed75bdf2f147eb8812bc51ea7785b14091fcf92963d798344747640c1f945ff5d03981009f23a0f6bc1828cafefa3be3eba05db23f4c77382b20faa39f81a8465a760d00afff68072a75350d2c6fa00c9652ad5759e6edf02018fab3873f30792e4853ec878b41d0565033012dbf2541cb3dbb5fba433461b8e9d41414f4070bdb2526e2be223dacf4c763c25644468bf4087eec51bed59feb16ba5179a4b3afb0c4bef8fc1a026b5cf30b0878e7318e371290dc7d3a316d86af25bd357eab0a21f537aa76bb48cf48dff500e87a4868e567ae3bc05bfb197a7b4e95e1bbdd3929b611ccb7e75f5df29dec3fe4efa365f3e93c4382c3bcbd575cb5382f3129309366b117c63da67966f842b80f3c8c82e7ddbeea06d84ebd6a269e6a0d8ee4df174adf42dca515d7334f4dca24cc01bee2416008ef7362a12d078fa71db55635ac8f46a83f18b435c621e55f2c31353cb3567001f1c8fa3c13ccd489f0153ce182a5f87ff2ab22710b85e818cc4d0f39182cde0aa6b2ef23de01fb3dbad746f38ceee7a744d70fdf3b8bb7877da9a9caa175c2f98eb06c7100f2580771c59a4483dc6dfc8429c2fddf3fb67dc0b7d273d691d6a3b2c071debdf882d4875850b2c208c54055ab93726d64cf679ad18d868878f8cf775e51280a8cd4e3b6f3f32785258f9762817258158bf0baf45790568538aab69cfb34c75d90ed77845b067a4188508b84635fde9d868870acf5c63b08c892126e6396f4fa45319c7fbe7d103c9df0a684f8ef3561670e936440cd649b2efac09f9ac6015d2e45f95e2b406192cb3a9e102dced1cb667ada6d077979507a51f268f868fecbc696b97527ac3a4b305f06992a37f4f333ca5855784f0d7b85a8eac567f3ae4edad37d303411de351e739e1ea97e8d240d7f36ece00be2564d355201fa34d3747a6f618c7635eaa17fef2730f5866a75f31d7fda3e1afa437dd315e735cabcb363200fba5fcf153a0e2dcf9a294bb3ca0eaffd0efd217b82dd81d742d9a7354faf63e55e2a0dba8bd4ef238fca5ab9d50940299e3774609887dfee8b1495b6083af52a263c0e2d0594d9a13c265416f1c66221e29e9ffdca1db4f9e0a2afed0e145b5394ff69ec7479f2c8259d6f1af24fabbaed9ae15056c66afcb482e394e7a35b534e96a597530127c6ae3af48a494c349ba4a0ac254c569012d07d77984de3810547d8bfba620cc8aba8d4c2b00d9a19670ac2270745eb57af8521818d3d429b9e8470a7686aec093adb3ecab6c7dffbfc9a63ac024d2e166e42426e78aa493d32708cc2a51fa08337cffd91581e0e81c2bda84a3ab69dc772d3a77ce3940c3e47e17e69a27d8cb0595b4ab1e0b7d1d200a6994347bb86875a090a3f457ed3397c57ec69c51bc172bdb5255877ede61c51323d8f6c1bcb19bc981720b772330e3c149282864a3c8cef0bb4c7c0291a11199de158991a2a64385adbd9fb22ef5e82067ee81801b32885e311d4cb0c81651710977c3b8f87f11a4c76fad5c89512b0ba99c5e5e5174f44c55e6850af2151006d6f0fe2e7966e8af7ce68aecfd0d46fc0beb5d6fb7b74dcf4c5023e9fce132add6ed6af52632d491b89d88a7bb694aa38274870beeaea2e37e4339a6f776c49fa38cc9d7069a505be5258540845048c7df183bcb6926927e90720aff58e203ea26ea18d3e5af03a0a56c76dfb5e1d97169a5f05d3e28d24e96e038a8d7179efc760362c1e2a4ca19569589aa13e98ca6ac3495f0b4457f014d4aac9ffe6c538d33422a428c29b2ef66a1334f35b76d5e25ea1031dbeaa485e54f7bce2f4d4e561d730203585e2a6c60954b2582d795b6d4f3b7b6625cff7b7f15ed190377abf7b22df1d3dddcdbc7c2b4a800901a84997e9e0982e67f17c5dc06a510ee113a88b6ce08f08312ac2b2fa7923ff69cf3aaa49ce43e028a24437193873784efac7af4d9cd04bf569e8c6a639b2b660fceb82543412053655715d02fab6d7dd10ca32c9ac64a1072311f2d2349a3a4504c1115cb7b30828e133fb5c75956f4f3c2840315f8d0925902e38b6ecb62e65fc58b7ccf02b0f4a04b4144e837ee586e587250b37abd9180f34d4f733b8d885c032effcecdc67fade88f1c59227d9f17a26b3f26c704534a2960166b0d85e376f61fa34aa6167b272c12d00242ac832ea558dfb67e3ebb96f5d45bf61e4b663ec507c48a138b26c287db3544df256f02c0981574831122c40c298e8148fffa05f9a3ba8373e42594e141fb838fd58d2b9702d19615076d704621715ec1a3e4cb2e878a64bf7b0ad92d04fd8a26732c70da794c2b972e3874cfd1296e24eba5615ed8dc4acab90e78a3527d85dcc6ca5296d65ef8b48f20ecfc8ae4442bd72fd7b63c6449f50de052cd9b84bcf72991e14f70fd3c4129f28e64d64b82a5a63571b27a5e75d43d61556cc6c3c70cddac155c8f77288859f5410db13c80e6298c4ef5607b092d3b5ee4793d6aa5048af7d7ba0547dad7aa26e6f848225379047cd388ad7c5e09d331f24ae423a8e67d7a99677945d3e74e32a4ab4673d3fa569edf81443135ab6b8de74b13c70e2357123bb8a50b7f9eebb1f894b6ce8963d8e1e765ca30409a3a44ba4ee8f381403a36e837827c1d2841cb03c52bde300f8e3aebe3b8de76b26265f85ac842c82726f228c6d0e116edf17fe1538147a15ecae191e78b8c1eed972c6c9ef5b729ed98c1cf760eb4ba97ae907e8a45640c070a722ab45b11c7a98674089d34be86eee591ce8608ad21037223532d92f4bc132fb6abadb852fe4b8db35c2717eb40bc6496d0aef3ff668bce4e4909e45cd2b9bea136719e2037c183102d35bd5412223613a086dca7725ac5b0143c8ea9fe6853cc8113a4bb080f5eac800a3732776149ffd15994413f4a3d337b34371d22e4802b3dc996d85a69955c4f27050775ce36a3f651a3ba431102338e9b87dfe1207667f2e8aae1896d488b0353054763d526183b21d37fd71ce494913bbfec9f65d7d7a3236746a6e464f55b944c2ce172b1bd1b80150e6fa9f72940389a9b111555a555897d5023c7abc385254f1e3fd1dc7c0b81396d6466cc0c2b15d1ef1f0a7d4d2d379a4c387d07b33381f940c92efb054f95b68e4845391edb5501620f15bc5e11991035bc73922f788e8141f92f70f32427a07191791216ccdc63ce6c9a6ae41679cfab5e8c00c96c06ec5e94aefb6fc6292f7cb152eb8bc5d7296f9ff240ad53b9bba8ecce595c34774e5e61b107fb2a94803ebc983c7a2eae397756e60b731d8118436c6c7abd2e3d7c1bafb8188e46ccef11b318eab969eaa4d7bc7a644d5c55d61071f201170403d6ed0f319aa9584fe4175800ef0cec80438f50c300ca04e1a277e940cd3b47045dbb7a268aa56cf897c239d7d487e5920bc4b17955fdf02956cd9d6a9bd7466574bbeb8181cf2ae33efb0a3cea35c67eb4cd111963b3c33526e3e097ed99b7af867987c9df79a861ee3cd5f010635ad74adaffb303e5979a10cd145b33b05e8b479db47314c1a3f28a067d58411fd09dcee292808d9c72f4258e01822b374509884710724a2e9c856cf94bc696aeefed20b19c118fa41f4175f45032c1c4438364b2abd79e88091540e5efd645d3530ad43a340c1a4c22cef2a56f86565e485427a09ffd807600ffdc5b137a2740bea009750f517352d7d51245be3128f8906ba7ef877c974853bf995e23e66e47f9bd707c9849147b0526a4b491e6e2f38e99ac81061425b14136ce7e79881f9c2546e7fbb65f77ef65bfbf89ffac545f2442d7cc911893de618af7838ff92f3844c867ba663aea2840b6119ad3d6666f08ddbd3f16b5f20a5cf1ef47ee119f5db5c45e57d1e4dcf5919a713279f5289ab229bb48769829ed440f7e398e358f32f84a6b3738982b30300adceff4cd105fbc3e4362899787de17a4095485a08d0de647a3b7b6c4c13de7e5a869065c584b1133d260e9cb09de80dcbbbc2d0d806a6c4f74e79e37d0b2219e462c27fd9f3f21a4db950a9ef5f678e3ce9c885c598620cdc8e75dd95cfbe951f04a4227ac3f4c58a045b0710da70162c2952ec361f63cc1b8f8b9ee5dbb27fe872f04ba0f9f86571e962960f7554c44e54db29f5305b3623b1cc3d07d6c1a6942a68ea6be31b2c4a84fc476ecedb36b4ec589aea82029fa6d5bd27a495f09c782c81658e6ffbb3845ac59fdcf6661413956c4bb66e8d0203489e9a8b0f26397c4fdf13857b56779fcb88393a6837862575f0800ec9777c2e852f2b191dad18bf3d3ac2a39d8157a0862d41e44c2bb8151d232ff3318ed138c04740eb5918194dd2d232ef35f6181d0632f953f2035dfab9be83b048bde65b461397e99136dde2c85d98c7cf4fe1d3547c370d81132963ad0e5ab16df1459c248bbd9b795b4dc2f1551c631ec3bfd39cc7e5dc53d756f5d9a6c821fc3c9cf9b05198cfaa3d14975bfc5b181e792235430880678895201837b89261258e3e2fd9d7de8f1f10206b25e9e57824405e6292b59a07a38d49b17d1eb446d878a00459689b6aa54a25abeaf3c03be9b32cf0340659fc5fad96f1ff2adc2f5efcdd2d3a78af0703ca1a3bfb66e3f7d154260603d3f5e70b044f31fee0ece697b733bc3f664e0fca8db99ad1e4bcae0a064e57e4013d9efd5fc3dc0ad07c5304b2841e1fa57e600f5f031a7923ab26351188aac81013430b9bc2704ff955fdfabad6b1a8269c978318ba1dd6a58415b91d1bf3f896ebb8141c2187c434f75ec463d3e141c0d7e4a51de67302e7111bff8033f94259505ffdfc3af3ae5b14087ac44ad9522bb4320bcc51b82f008e8b20ec6292c1db6021af1569eef3151390d88eacc28936889cf3560bc9c1ad2b0ad6c21b6a43324bd400e6905416888e586d6d8f9815b70135a88ae64a93bc8ef3ae56365a922ed7e599f993f0ee47d41fca502f863acb9e1c5b6afa3d96544e98dbd86f531df2df5a2deaddd871ee6763a817e8d7e10932e8837823a2424a79471414e7d5c656cf1da695dadb12557f9226f2bd7b074d6557f2be7e2b859c0f2967e7a1f9d9982a9d1e777bfc9a0d861089fbd51127df335b1159f006208984e8f6090607682a05babd52b5fe80eb9b0729c9f88c0af66b6c14589faeaf2d422ff4d6629f909e8906d38d020417860f0b7b1816639c8f3132095676cec57f25ef5bc0647576297454cc9dde371f73ea895759c04d9ff77c7807f2a638cc82fd7c448ea295e2479993def14b8c99996711ef8cad9a6d779976f9bc1feaa1060f7bc3bf133fd8bf5b007c9c4e86dc64735f14d5370c22f3a665b6d31b1f24e69593b639934b9b5136a2f1ca6f1a4bd03245c61adb49cc8118676980947715b13903f9ee6228eb1e371ac6ca3d99393c7a592366bde0926035bb7ec2c92b15e99ef3cf54a55e74047fc1b3f5c8abd3bc577b31dd21d4e4fa9b479189bd50987dd7a59745e4abbadfc317585e2560151c852423e2f3bd1c24b76d12c5b82c17ffee6cfb6a8aaafd01cf81f280ee452918f98b0475407f37094f31a627c49be0155f784268690adadefe57cc8cbf9abd7f5998facfbb8080d3f9ae6da2318445259a6e7bc43359a95bc4442414ba8622ae7fa27d303983556fa1e2b929115b0ea884d79003025be20225f3b61104694391fa073ae33500646c07bee049bdb86cbff6569074d1f2fbc43b0d3f3c4634cdd38c8d80f34d1a02773e8f2e704efddaa13db7aefa009b94deb38a86912cdb13fead917052c31d857c2fb72d9124059c1398c3d27dd46de0f1504fe3dbe9cc8860060f46e5fc90b72614b0be0263edccd6bef2b0bef4bd9f5f671939b6b281d462f86e75ad04d5d0fcfd63baf571e83a0d55e1c101ed3e207262c0da3b3e17e562132c7f28095690224ed318f87a226fda7c9c9d63b0bd0afb3dc3e4224dfd83a79f44a518dc4b5e603f0bd64decb5a23042bc85b00f69ff9a0c27eb781eb2440a167dec22730a94d95b6c0fbcfbaf8c972c4e284843aa420873a5149bf68edee4a77213126ae24d98014113971e253ce8b38fe5ed698dfc4f2c2bfd4ba0a4437eb57d69197d9168e0e6a35c819055706dc378226500bacc3b85a6f9fae8a706ac5664af250f438c0d91b6b54ed0e120943e1672606cfbb4bbdf2597691feee19cd5dc6b25a620679ade27faeb210f285c77b49f9976599c7230466fdd9a7971c931e05d356c7279d17c0a34010b1c4105b8d9e3dfcbc0ec4982f1abf5331672d89cccf6c8b04f15926ffb0c41d8a4cc08bc10ce88783b0d3f726dd40cc68517dcfc57063a63df73868e98cdfd18180d4d3583adf774b9ba73b2b9bdc8b5bc4bae6d5202a69c280222064765a91d3bcda2476482de176981e8873eb81b652ee959bc3894a2147347c1d549345b80bea20a0b2bc2729b9fd82e4bcb5483bf29426fee96561eab37074f502892539ae23ef30d9d780fa251a3ceece45ac2b04587dab73aecb5e1a080e49d644aba0c2c7f9ecfa88fa5af1b17116b64caaca9ddde520436dbe05d9bedf43a8289823728301f441048eaabda4b615f6502de1f9e3fc172b1d59c6a76a3b6745cf473c541b4ed55e32c6b62d4f5786f84675a0c21600ed48e5aa9751477a6f1cce3d51ea500e660ca0b8e04700c1edb6d232f6c9a4d9fb0dbd7f890ab463427a2fe1ef434a29db420bc0aa47e5f4cf4bbd71bc1947b68c313b9b7f215cbe1e2e5ab58b88ebc6416dfbe9bbc135d44a0255e3390bd5ee779330b2d75b2125fc273179b221f35f13e56017aa7ed891ed7fcef29e2c1e482759aa0c317d5477abadfc223ad467ca75bb94cb7266e6e3128fd4eb8c43a5bcb0fbedebd79c7a40a93acdc0d188ea6b08b782cb2dc22facd356ac914c7a997d2d1ab9f716359b75867d2d7a0e6eac791646b55add2dd9f94327e33048085725df95bd16c3e0156e82695fd7edf13c3c46ecbd70bf45daceb6a28306e0956e7fffbd3bc8e988ce8f214abf3ba8de5fee6a7fea5d2918799edba1b63b17fe16b4dfc181ff5a460e65249b37000c0d6b36efd313ad7df2c607c142d662d8268502758f27d97b74aac1b30fc98890a7dc37bd7c3647274660a05fe019c99b8f23adb1c7c628ecce00b9b089abd8f44214c458d7e8da5ce7b08e5100f3ac949ab0f348c89634f0172360c66cd774307646ad9eba2f15fcd5b0a517ae6236e644dd8d79fd7299a1887e5d5b1b95a1d34f2da60b2c2a8f833a55f137bd67145b9a07c4d7e0fd86df7f2e2c7a56bb5856d496edc176b7a012b3f2076ebd7bcd9fe055ecd099980212873526ed12f1f67998c805e439fce4dbf819f33b2cc89b06b132890513d93a55ae05e3b1939c83c6468e716d122436861eeeb554e0e6e493d4168a71f996c07deee2cfa3497c892bc0708245294afb863785d84524cc7ce36a6be8b6c5f718b2b7f35b82e7de7bb55180700cc57a24b7e5d745ce1ba20b91bc4b974e76b5f155a7e6914e8d794b526df448d3751a0834f8e8a1937919fef3564af3e72a5be21aa56c1ad93340fd0ea5c9739ff6eb1fbd5a619fd21d81021d183241ba5b09b46fdef193d39f7efb5a082f46b8504048af576979f7f88722ac05096884a72f60c5a4081c034e197db0c767e749ef4b0a0f61a2b90c9f91161d835b616df618ef7696c5400b5e7353434e6238312acea4106a4bc6f87a0997f70f76a4c17acf6b6fa77d1a03e5a6247e36f46bd1eec205cb3502102d81ca8c6e8df289d59251cde7e86fee42859886729121967f364e3a972556686ec98ca9a1ffc72bb400ca7e58cab08421e9c97d6d8b2a83934208d201b357c058a77f48afb6797be199ce2ef5e4b7ce4a088b81b09b3c06a7cbb02906aa9c42c8b52ce33e5aaf881686f148a510bf9528198fca996931da0d6720d55801b45b85d4976e54a24765c63b26d9b6952436c6a10453d9da99f0343fb1ce761ac7f66809f8b4a1b88c5ce752500cdca59d5185506daff03e36ff2382d7a9974cd34ee0cab9f904e6bcf0fbdef60f940cd512a12b86ba0ee9a484d1d7f341f06698f742a1366bb5ae0606e8c41e39db8fb790dc53178fd4a7e5444cf4f5440c79a7d90965e3eddbf23c457ebc694dac597892566444ff0468055951e011cb64bf837fe24d2f0e87c58127312ea65491c081ae240cc2e0fd4de059750e261538a6939c4389fb8b1975450a9f2e527d81848efe2724731f32c37e5189cea4c75609129b14c62f577997da822ada84adc365850c771bc08ac49aae312b043fe370ec67bc86ef11d120fb55339188684ca9a3ecd9884f0bf906a119d5c2ca4f111b799c469bf7ace5a0a55032340bacd578997941b47eefb8993421628257a1e48e4f207bdf5f20b0ea03cde99e2bb594cedb5bab029dc77470a652ec8a3e5232401b58134dad316a969ec621ef15e78fcd45314e1ed22b58fda55365f238309f5ddf8aac2ca2a673102b3c08313c7882ef1d286192de419fe531c606e15065faa2ed57db939f7ab008de97958252a68301a0df09bd2c0f710886ef8e25fa3c4480bb739262bd9e7d42f406165b3620602c8b4072a9def345ecf459c2ad84b268e704a2ae3ba0f056d911a44ed80520ac69a45dc79a2a391224583dc0bceb633dbbdf2328794c77aeb60fcd38f0415b01cd284cd15c7c2c32448a4017d813cdfde37d320d17bb9dd11ce05a1b2e9014ba8d69126e44aece212fb86e176a580ed8f8667052bc31876290e80371b8e7f15beb086b93438cfde15c53ef9cde4ecdfb735ac1b68d7d13416db79b2f584a538318fa81eddf7d0f953d2f83c705afbc3b136d7f9edb418a2a2f27355db13af35394428799ebd03828090f04f021751b1065ba011106b479f8c931dff8cb63d1bb0c672e3c9166d4264347416bba1a80041de19c182a40c163c042187fd9b6b3048ae11e5da629c667f33f9d3886f8c85a6da18767116eaee550e0059f824aeffe3bc1b94895491ca82c94047ff6fe15489cf2da6f11003e98e7e00de286888ebee503544a874f2f063758c764a8041e285222d9d42f33a2d3ba5288887b20db76ff120e5fa9e93193c7be21d66f9257e549a476488b6a3b618d94b90390134ac91cadf7218814c32f86062f12520e27ecbe5b24376613ceabbf226b9c087f6498c28621951211f9c1c72a9252fb46d9e4e11e2a0ab92fff7d6cd8ca9f02b48a424fdc7ed8556aefe843e47f0df64ff562f134e3b5cfb41df4dcda2af7f07d6df7e60315fd94b04a4151842f2455677487143ce093be16030aa552dff30ea9973990b1fc121ffa816c996abbeb0a199f0fcde803a859fc0e50a4fecbc86d63c1a97dc629111c708fc611545ef21d318408a83431779211bee1da80769a283499def54a05b1bca2a654e333479d86b70d673b7bbd07a6a1e420ad18b7a7adb2ee4ba1b5d5c3184b70ff753c73379608fee3261ef71a70e5b9f7240f63dd47c12f18c7aa145a3444f51ca1c4ac3e29852467b4e6d7e9cb88242e2edd148813973b5c4df28c786ad30a7cffae9598f72cf8acdae05fdc8a6f63a06d5631438999be8c25d22bc49392f24769caa00833d6e13de9512f1b228a6310f7b6791ff56e4493929812047b1f9369d746a5a29bed4f55c7b50843a243dbd7862dbc68de0c6f8a51edd2f7ab6b0828c3af71232aea0bc83bc46630a95a29d3c94ddcd29d8bfcc193ae34fb53ccdc3ac6a326c6f3af24a4c19400e1307c778291e98bc999501d79b1f56a8140957fb58c1459bf681c6b65b36d320251dc3f2ad913d5265a2f677d7939e8abe3b6b5a0cc3e7e7451a22247b1afbd17c0c463bea8315763e3e94b24500ec0a66bf12a88638b0bf008b0bebefb2bf2e571d546a430c99dbb0da7ca7adf4e46c6edb681b3eab7c2fe6d35592234d6ed1772e5546054a9f5d529ff261aba2e74500a411e49aeae47402e13a69d3216217dc32734dd8dd99e28de69960e760da76db8900db0589bf99c01ac6c96ec55c17b7ac481cf36be1dbcabd0b84cc278c5f33c68e15c95fb64b6dd70e4e62b56eda3738df8bf71d12b22369384dd517a5ed6cf2e1541e06eb61f0e44282cdd26f998903fe205d2078b015de9995fcf026692872a28b8c5fabc2fe0381dd87df0701f44ec8a623268c419549362b79997d209b0302f4e20c369bca67830b690547beffefab0e4ae27f8eb98772faae9c1f56df341270b5f58e1b44391ad17f4fced509cf9fef2e90dad3c2abb4af2ba8be118be96a2e3bc4632851177615422f8887be6db23e916a25fd967cd6fa970e08b790da20cdd56800b5fe9042dac7f7f0c08a59e81a6134a859f0f467dec145f58326110c75549653b792a9902cd261ef5f31ba6ac6f1b1357c62c2c1b44767ac5834705ea73b4303e8915b9158b6083dc857c90527672b089809c9e7d4f6b1f06a91298ab7f72b91c0401220ea44ed5e8d0b54f7676aefadec309f3b01a40723c72d44782be54e8f69e32f1d446bf32d33f93c0d974ace05137d0fff091f6dd2c01d1c0f7c876de48a048798d89d62ef464af71357af9e4b3d2f97a64de68fdcb45fe208f01b91203057e3cb4b1068fd52e70e9501edb734bce6ebfb006a3a1ebf1e191a8bf385e1325c7ee50b6093ff6e28a0e5d1da771c5bde70106902e1b3452718684ba45747ddcf8aa2279d58b36ed5de84f3c4be406503c2ff703719ca7b3c8b4f2f2fdb78b608abb96d8c9044f1b48dca8db5730e666c2e82459b1dfe3d00f27abdad2838abdc7a151f95f535d3cf87e526d9fd7df6a5384fe0444a4eea28214909f71987045603dfbd0baad9c4fc3a2af833ca7f29041750adeaa49a15d3bf836df1cc5bde7d4758c372b059073e27b10d37cb7869a734a2b3b850b540d7c76577f3276510c6bb8646d9725092f964454b05f6ced82baf69ec401803ef2d09f2bbab4edfba28c8adddb63af1231a1ba3b061c385870ada73b14feaabc096aa9991842e78e9e749994483b9c0fdb509067751b0ea0f8cbba96d01595b72e99f32e85df643fef310b891cf83dd4feeff07e275bd516ccc8e52f9311a91e4b1373eb9c498c1d663600604d690d8945865cfdd02f1e117b841264c4189818cfa8e7fca844defdc1574c8b34cbd1d6069b28dc400d371cc1af72f6f342286f0721be2bc8e0e6f7685f714b0c649ec6006f54de538f1736fd08680d86c081e127223b0a1b11bbb831c8a2f531658df9b9b4f13a6c55df3ffe8f9b09a8b817ee7ae43199094786ae1cc42b3d7f274061dce77475bc02aa097180e35129977b346ebea08f5b16b851d8a288d789a078ea42c34792ef0f4ebd01cb87dfa34f94fe437dc4c97d300ead24fb7c6a549e1f70f0de66aaeae553624d99eeb1466b8ae47eab00b8ab385c05cbd60201827b8e3811bfe70e26f71090ecc9a91cb9b8ac2d6d7538b87f30e00d4f3097ccdb3a3678afe8220fb7c6b6610273cc77997eb765beb83476e91f202894f8a1738e59ff8d1d98a4dfa79ed21e143458b443e77a0a4b45558da5c4c2b6bca2f972acf0ae30867c559ec3fa55057692cb6acc7717d2424b02815b77b97105139e04a2a2b531dd3f5d28c6ec2c3e9d29cfc445840c6ae3ed07cd513a2e64f185dc31513a8edf98b6e6170d97b95d0b5f4c135dbec4db837c4c88946290d9e0d4377bd140df84eb19b060e9e88c51b8fc6ba78d8a532ba0aefd626a53a39a2d008e36cf24c1128e97aab4141a7e5505e585ff6183d9e9a5e8abeb46e44c7b140bcb8b9a8387a50ef1bff21ac18d66190262eef24a9163d38212a14b17c46268de55f4fd009eec75424a5434122920e475ebe5a0c835e9cc312eeb51e578dbfe3fbaf1ce2db0aca8a50b4c38c8c0c045962a226748be50f4511ef3ee212de834cea7a8edc2e4a2a83eb84b342241c4adf4a1a7f9621c99e16a75852832a1bd0fe93e7a070678906e658cfbf583c78d2645f968bbfcd64826fae23fc5ce40b8a7f4a9cd12c4e22121b8b1a2d0927c53ad5a10949d3b8723a96d7ec75fbc6b0a62459b93c138f93fb2a907a8376c1b01318420c6c9430bcd407241b40f41ca8762e7ca36ea739b9aecb029f8378e51e3fde29ce74b7285a4a116e56c97074a26a83649eb4c7419575c094313fd4f465378770d95e48b5851452e04d1eb122e7413f3437f69400a839158c846ec2549b512ce7a4968c92f85aa17ace5b41bde8d4b2077f6143b1d867a243915d30efef4cd08ff61e569ddd5dd98f29dd79a0e9ed25681574edf4ed38b5a6460a99b01cc1691f1610b05851fd1e47eb60276ab0e1a8d7022b6a4e9660aeb8274ead0adf3dff81cfdae7697280551ee19de57e4cda874b6363b6a70065e70e3a2d4370852d545645f9391a02fe90637002cc84ea057eabe0b5b8ca0421355144a42dde8bccb56e93f7d3d9940884ba3c9889e6b81b9b54fd5606e8db32ecc05c90af4f48c84f5241fe70b95280179a1e46f254dce8e9962ec6d615695962abc7893544a75610ba844891f047ac95d069ea4c4174d74a37c75583ca110286f925cce343f8d88b175430305745fd13fa83076763afa1a1eeb1d5c66126894ba3f3854e56ca5b800a49bae7ed501c110dcbfc8f36f0a269e9fbea709ddaee5d3656296488d88591eb52cba354a6268fd0cb05237a017900482fde671fce02b7553b982a6c06c895433972625247394c5fc87934b15ae77a9f7deaa2f124488135c74571966ce05552eeee01521cae1da88e054ca2742ea478ba573e003014ec2013a7031f7502f08ab161c8e1a4acdcf19ed9d2d92d49dccf25e9e99aa5a968f33b8d382508362811024c243138f0c450a20602243fc2e594066bb9f469521d9fc042f448c8bfcf43614d2099d5e5a0323182aa17c013582c1569cea6e7b939ab3086542f5fa4152ee5c527128583a0d5e98d2589bbc257f1b557692cf8093eb02abc4601da9802159b4805bc477b42cdd67a1915d4a869ad03baaf675c8c34dcaaf239ed15f29aeeb907775798ab49832503849af81db323aa0edc1ac5d25370a98ff7a23c6521e4a4a450cb7bef52b12cb4a8bc28f4bc86908d9b6f6ba77d4209c56ed750abbdd5bd0de5a021b041e7c22217604977db005400156f3948953cd623e8c4ca595ad407545e8614da6309e5e3f93409e3b12d923f738d82aeb5dbd3e8a7a74482e5a899a2bccffa17e0cfac834425d500e49d031fd51c4ce5e6b05bdc7e4137eb3f4ce0c170f0e674bb4497f423e6dcdfec5566d233d425b00fe38bdf2a56c6f30e6db1d0e90438c885481b314a7027d93d4e38152851920487abc580b1319d7455ef2d1df9480a8d860e90094b7cb7513df5419f7594ff17d7d77b31101ddb2f30697447a2a03707169e6358450bc0ec78aaf0afeb804f04fa4851f7b6ed0fa252a42318c911e8d7a854a11681dfe81f634181ba785ef044967487b243754846e91fadb43145b263f65fc80a80ffa25b4084fa7c465a858e87e5bc53dd0e2b9f568e771b730a4cac8c43f20b3c378d397caef70b53031fc34eb8fb9a5f162497d857d111cfd3ca7f16584913f395e8627bf1429d42cf0305da1f183a416ea2098413b3ed5d35741f9348cf95eeed1c2123f23f1b1594082a74df5e74bffa63872c1352e59f6b1ec0c09573e028564dcabb4826cb0110791191d393956325d2a7bed982ce50d3208605107a7090abfc7b87000c90fa63909e9a6740da675a6e794b9aeb774e6fd4de34633182ee0cc2d5621cc0943f908159d81d52a3da8c4ee383c306067d65a459a989f94f235a0da6090f7566fbff0ff9090c090fa0afa909ab71f5fdd780ae624d509abb7fbefbba25423bca16feb756535c36519b3c740717f721e849acf38057dee95b81223c4922934bd7523b678fa6cbca645ab10c8f2f5cb2b4777d18fab029c3281bb6039bdad121203f4cc552ef2bb5f0970ff8437adaca4b68a9b5fd377e4c3f026d12f99e4167f4d0270ca3e0e1107ac85aaedfac61a0f3d38938ba50fb8d782b7dc7ffb61cad0538aa70876c68a43db11d7773ed115b76f29d53fd821458ccc3e345d27c0ef7f80b141b739bccaf4ab8e3555961c3c831d205ff4134117aba72dda8dd68b915af158aaf62af300bb936bf06a6eb81df7a9d08094ee88f4834a36e481eea30d14dc69366f23c48951497c50a2e840a10ffb69136c1d4fb73c0e4dd0d19b37ce353e59db5ee2adff157738ec46fe04f680d41adf337fe1a2fd33336d8fa371bc3411e7687215753981037b8a4f43ff985f1760e94e38784a5941dc7f08f767c3da1ddd3045ef5143286036466fb0de058ca3a8b23ba5824c28f40a48f05c584e1755cccec0c9c2849ffb4b75b7db295b5865d9ec69fbbba4503a12570a7500c3a60d05e7dbb57aa467df159cae05cd9b7f171e4aa2b2a592dcfa463750b2a60d8fd75e8eb6e0d46c1891af957eaca24f5f86ea187ea03e9683850be5e5d38c12e5092ae6dbee9bf1befd4c686bf0e1f7f960039ae408ea6e1fc89598cbc31e43a349759d0f5986a73769af7410c1f2ab6082ab8aa4d3b9fd071c29cd3ddc27200354e75a2c28ab0de0473457a9d8cd7eb41c74b7473e03865a656b263636486d3424cf2eb2d9290fbb1836cd202116dd5b98ec52d6337a8bbc46d09ba9cf8327319f8a476e4c81aceb19bae5b09ca66ce0a701b76d1be7c232bdcd4a6a030faf35e1cc3a60fbbf5ee2b484f6221def1ea048fe84834d212b6f7cc8c61f3e3567ac5556ce34087da095a411a4a01f670da20a6ea6e2c9a1f3d00906bad2afa35c5b9ac1d8f31cc16ac8734da7a1770fb997c4e837e7c492a6970efef0d4242758868513d9059f40c63cd07e25c9d72dcf6cb86396caff40e5888dd5d0b91976c9724c092699eadb12aa1b586655d0911e1e6d536abd0347c6b35203c87950062df778bc9e29c210e2c96c7a0337e4cce8ddf90c8ddd7af766f7fddd6200408143269a8f1404fd1c2cbe5480cbce425f869ca1fe215aa93d5100491baa9d06c33e0c060000f12cd7e089cc22b86ffaaaadca1979aa5d20ac5a3faff3daa206ae32356fe4d7649608729817464f80c29b4d9efa2a97f55b4443a7a36f4f559443c5bafd91427292e37bd1a879fb42ef21744277eee273d32a60afc753b50bf7ccd127fb5f5d0602b7be75d64c804dcb18a20d7bfeb33c6f414265442b1204d0914e0c737762bafd65600edbd5257858ff89721c0465b4a82087f9a67ba37c832070cb1e07c8e9d905d82fa08b1cb7aae00ca20b64a184d9ed23fbee8fca230478e0d5616d61ae6f83a492b61dfce67aa746f230d63d84bdc1671bd43e2910a2306d41abcb27246c62a2012d5d8c7f587da4ceb06a6bc335d4cf0ba5d1c4a2fb0bfe14e532602c1a37ea01e181dd46731ee74577b46ea9eb03fb66cb61d2c18dd7f3629d2a8d78e3c1d601977359441ff1e5b2469206b3b158f6d9c379cc7d53bfe096735960c44c6017087b528084bfd0db6ab16309efd9d2f59b4121300256c68561750b0bde806b62a8f2b027c83941032ceb41a380014e78a92a3434154b0de325d849993080bde5238155684d502b4f370d1a2d333c7d3691c3daec3ea90f5fd32df59dbfa7daf812185b80a9e9136ea386a341240e2e2884c191ce1433f35587888de2ee5dc73e504d6426a58cc09f26d1b5d4c384057cdb4631779907b9beed49776ad3a8b0750a6c7109c011154c72fba4fd205354ce5ae7a6e65f01e17153a2656c4b9255c9504adc47304b471c866a461bca9332a0eb510b6fe950e0f310de316872a4ffa39e83202ecc09970881a348d4bb8bf332b9dccc4b02549daf3448b33985f987871294ff58200989231180ff1d9afa1f92bb064349fc3f3466503608ca13b13056d47dac9a6e929ceb7127f4e5b0de8e3c2d7f5e65981c813be7621e65cbd96e2f92a2e2e3244014fdba6998c6d40d9af6b5c857ba11d0c76120b22682c54b8e66f2ee6dcf820c8f3faecc234f9e09ceac1ed30dc3b483d97cc36bd1f43ff04f9efc485096436f6ceb68200f461c80c7a27ef8db4d8db0313f76bdc7b5df91299f25a5cf41e84f5a56236a61f47f0d015bb421ef105c0827a57f83bd009f39a58264a765ed30ff27448be202bd438a3c79e0c8e47346513d258ded0d7801de65b9efacb0cf6cc98e8ba250631a1785a708e28a3accb0c9e12c6f0072a0e8884dd508b2947a301bae6f7d91e7023782644c64b64dd4f4f36a854bb95cb08926daae59b7a5b8bba3b02db80cdc9adba3849390d03d894925ff4fe01369e5b7362a4d4113f1bef1f0909600317440137f0dc174e8160036261cb2ee108ea9d1da942d4f2ee5bacbdb378f5758f8b6d61802ca6bcdf7dedda5ff4b7d832dcbbf7fb0c98aefc755a104c029fc89b6a8129f6be626be0f9f29e80aea24b04032f36d920df71f6c576e98e0de868cb554bcd6fe77cb60de375fe4029c63e34d5c6d132b0d25c002da17ce535a63f88e229a456559bf1c2101f4d46083360a929015fde82b4b68292e827dec88bb4fe4a2c436c87f297699572925de56da1e3bbf2470a6edd78705c2749b4498aa1eaed029d8650abf8fa4e740814cd79ee57acbf2a6ce40bcbfbfa6fb235ee0460e9cb7fffe85899991b5b5c1a4ec0b2cbf6ffa35ed264024be75c898fd422d3590c0ba710429b41cad29e5bd5863278e4a51d8ce140037639e4777bcefc0313c8aa784f2d79e83021f63e70fded8da7d4ab523d30c8ec4ce696c52b5dd4e5cb89dcfe52cb9f63a2dddd264a386fade6b6ec4d0ecbd2dd2cf6ebc209ce65cd603c9b324fc18d037667dc863f00c962be415da42f69bca6595b6270cb35d5f6d2ff41c8f595e9147767405151513ef2847d414e841c24aee31bcfd43954a750d490071aed38a0b7f2315ebe3f421a94185da3270ae8906e263fe9770d5a53fca9a219a840c7195d9e7d3ac8aefb30f569c3ec6fd28aaef3967c9de5dadd4fd1dea23392613dcb50cea0f5ae5abfc5b7d6bfb74b8a819e60e285c2310fd28bdac550e620b7381f2bfcce03735cf1c1ed530bb7439380976a5c06486ffc8dccd6ccd2483bbf2a125c9d10945f7e55f5a1681010c3abe853dabdb16339f63bbab79e3377f1be9f48a949ef447ca0f22b4ff8079f9a27f89d0f33fc902b7e3e7c23167115f4027bd8a831106b192d4e4267ddf4647db8ba9e79ba557167805ea7f6ff86091cb04a7845e536bb4b9df104ce5388ce85c6f9721fd302bc12a0d4e7bead1fc2e123154a406a6a1e670d6c945d33399aad58afef1a7bec75d5937f413e58d4aae1e44101aca236d48ae1413b61fa17e3558dbd6d187e019b5d92d9f8eb5127e2602380b5720344cc117a7c1f19a8293dc2a2eceada13033cdbce7e377209a2e0c3c9cc4ecc9abf4d21f8cbfd3c6753df9b8f71ccb6ced6d48405574730dcc083141dfa18ca664d9820126d287008218e6d2b7f1515dab7481218b4cfb8b896da81ed5ab7d0fb7e273af84458d44cf05929e7a3f2f688e18241baf7d751915225dd567363167b08a7dd48e57a77004b4aa115f61069348d33532e9273769e10b41e11d11b27d92d733d156a8cdee479bf0ec45056156a5d828d116ce35471a1b4dd506d2a627422b6d1f563b8826b9aaa8d222336b46a90d8b7380da94fd6308ad9373a347cfb54d0d42e40715040c1bb9d7c940c91f89316a09c12807d87f6fc74d5bdd5fca3e1bec5e4e0e927a4f34ca2c1fe9f1176d4a19856c57229af5a6b34b7dcaabeb0a4a0e76057615d970120669d01272754e1b8f5ace446523a3829440936827148a74fc265f2fc3bd48afc9320b0f7ddd040658e2ff54f29fb2665f046b366199ce041a09312817c99b8da39f99a52d2058d3343e4a64c979bf73e2d7b2d1c8d5d858911dd7615d244768e4e3bb992b746b49373832455b45fcb350e114aa6fa855fda670bf36561bd32d62ab97169d1cf766484c45d0851b871b75034f1725e6ce8ee3a53c2dc42ae744707ec46b47ac47bb65eba9e166fa5f565cfc1ffcb0e2c1f85e6f8e7670291cbd2876ce7e7a07d9744f03f0600c6e8849b0ec81646305b5570080550372088e77f2dfba40245281d78aa74ad5d3f081bd0b497aafc42116cea0509a2259209e291e2189476fdb35511024992547a209ac70964b38d913d3b6483f3f7094159017b722fd681731176b5ef1a97e149873bda7d73a1f1c34d1d92eef4ea0488d380e60d4ad0f9e4c0aeb471622986333e823c22e0767e4e24d956f473a8f7b90728a6c65d50a4a2b02e54076e617df23419e72de8289ffe5e647c091201b898a2ba801722e3d7926b33c9372fad09f55b47a279ceaa0a73ed37dfe4bfa340de288bb55b79dc42af9780db0917589bdf86e3c3034b4490a0f730ce00e2f610b781ba885369d46685c4d8d68c028288061ff2616f8b15e14e1438e61c85412c4451ee52a2a39a8cb689510c503757cff5a5561782c3ea1897cf289ebca216ac1a23885e519ee2b279f59ca5eb6f9be3ea0743fba64dc12a6b81b30ca67534a6c264a7534c3c2a40164ba2f575f8d9d859be4e17695ba0bf0e74332f65de493a37308013e2059d0e6b1100c30bdbcc5267c25f7bfe35a788985ab31dc9d753f86be6d0aa49f1f5be6a7151424f1ccd856f4fcf09ba0e737f73179a2564fb8474c199807217bba11d98e45097e6075e3981757439985f3e12e1d2b9b90f16e9c99448b08ccacea3cb903332bdf98c252fde7b7e56b6db5bc37461bb8363cc3601afe7c8ab42bfff4a7ec4cda7b5aae3887d13493ed6efee5594fa1fa8414f81cdd43c5078414fa904a5397748cbec3ac88a59942dded2033cfd3e537b4b20bcd436898ef9f2093ddcd95f99e2f0f75bcbe1a9cafb5826699c3e8f877b68e642c6fe034f1c5f6b036c066d71c55e26e6b997413e09f326edf03ab256604452d7d5c92445d2fa980012a78e831151348f2d72b18839006de0efabcb6076cd12c7cd28bee04b15aa128d4fc8a2a98cfc63026c20768ef53c002e9aa2634ab7d92bcf1ee89a7d698060072422a6d0d244b422345e265bed672aa8e83784dcf96f7703a6ba057993309b115e27253e6c9afb52acc54d9227bc7c2ec9acc4314edabdf62bd8282192fad340cdb4d5a5a93e597a6cefbf658305c27c4479e01eb58d6f0e0ec8f4684bd2e8d6511765c6592369243e34ae48089e4ea6b4f20895f2b375942421d7990578c91b5f7ae61552f78f01a0ff4369618eae5d4a223c8e0a80e21a3584b917ee2017d483a6300bec420cfb45f28ae15a3ec78a88eb2ff4cb92a7907e66f5b694afe08fd80fc5d484945e0894d4c03268b54e94c7820b82426f043c30ac06006c7c7d6292341a07fcbcda53275989191f6bbabbb23369ae42ff9ef3ef1207ac4eaec8f2744b636d391c74644eafa56cb9a707edc9775a20e427785b536c3c3cf6223fb95a422fb1a4fd16f38ae51b839674ff6ddf5c680f016e2e9f6aa843ce85e7c1afb10c79feaa0421ca121cf891b61cd8ea9d3bca33baaa401f34b0a235ff40ffacfa4103233ca9ca8d5187118d413d5678fdbd4c99f1cf42cb2610cbf2cb44c4234b0c19e950c4939465427d59ff65cf45cf35a3bccdbc366fa872d7d63601b904cd660e975e2c0507a2f1988be149b0e337431dd83a227b0e97ea8d02f035490f3fac198ee36159560d35d77d767f68352dcbfa2967770283c30d71768d9cbbf4717560fce14bdeb9e2eab74876d1dd5ffb3dd84b46fec3fb72dfe99805c1b94ecac751775d0422cb0f4296073b1fc947c32ded670fd898a1dc8ad4ee346aca90c393a71ce0b43c89b69c36e143cd9e7df7341736bd29f79dacedf9c15b9280ca6a83a989f782c903af423e7eb0c5e4c6df2ceb2f8f503dfb85f23f989def6046e0188b91b48c60ae03e4fef2c80818cf17b4465889267f5a7bbb9a2d830cc0cfdb1cff1c2af5a3e572eb3fa575cd83ec0d051c48f0560747969c081a79f01ab0255d5a06f400327feea0ef61c531ac4f871c72efd2c2fe0353e6226c4e58ac421bbbdf16ae420e561e1ce6a96b7b2e661c30d39e7cf5eb0c22800d48b87e40532e8a0f837bd753a5dc0624383ce838b4b674a37a01a9fc25e952cf09ce74895b663e14657eb342abb72f37e7b30efce916351a6fba5a4bc57f835d818c0a7618da6aa6bd61fef97e72ecae666eceb7845038d718c1ef92d2327de39d52474ddf39100275d17f713b834ccaa4afd045dd4a784edb7469023742cc114565729090443bc7aeff1b84a2951bca6bdd9843204228848bf8a9227b63c87d226dabe50451f3df8420601d2306b4907500253e4e450bd3aab44800bd3f0f5cf2f5128d56ca78c5e6ee1edcbd6aa17923481e810cb91ab72ad2760b9df2ce1f2aef822278acd3beeb261dbc9b0613931b86996bc1d47cd617c1f35f5c8ce0c8e82dd7ad1f09b2f25f08ce984a561ea347b0676c3122cbc257b511674b93b2eac7e9c5432b869666b5da1f9b7b87d1a21562f6079403a92cda25ca05d47e03b67d3e48b94add5645cb6558e4cffd15996458c089e22aaa833b4de2c8de3b6c8f3fac922be85cea062f760108b8cf62ff3bf64d43f41f893cdcaa1fc10ea9bafc7b989d5eff658853945fe526ab463f1a47c0c57ad6bead37dd808c01541f1cf3d1c93d34d2ec16bc41731bbd026295ef10e20c6bb0b603024757ccf1a0e417d022edccbd2efce8a1198d24759855d4c428a877f76d0b21eade7a80e622b459873b1262aa4932cde7b78a1792db05e34eaa070af55d95bc23d277bcb13a414ccfd82d9a1306406c46d6caddc2738ee2fd1f13482beb7f74736ca18a1d96b08356b996f0eae16cf75dcab37f70afbec00e5987966e99c8e41c859180823718f84b088aa789a40e27df792e81d9eb989a4c98402b767ac50d0d2aa163ecec0710c4a9a840255b15896592284e8cddd2eeab73c28d4f609d0a7b5670dd7eb4fc7ac4d975852a25831fdd2b13b7122056a029d8b1a7912dcc17792f61400cd0eedb001ed81fc1d0ed4e8d3d627de0bbc4c897e85965b1c5a1e92f561b5c10d6c34392c19ec2f94dfc1c237710f0d661ef5a42d928e6194abf52be5c0a6281e2da7b33f1f7e1688deebe54201a98eff35c95957d2e3dea82a03af74fddd928268220cc15f7fb2f751578f89a00f5df92c64430f8a4c17a8c0de4779506a67677808b543a1671b73557c8a8044849c8d09cd60be162ef0b25a783d0123d1800348d8e5c21b0ec9a6dacea4f3efb763fd9813ba44067d740406226b9affd151db6d6fdbe2d865d8a3aa4a3345126ec4d57cc9949f2542047d804e88cca064d55de7b0a4c693c7e218bde5f62c25b9f29a206d0055bf196ce4eab798523d9778fb4106d74c3d9edf7c392a286e62d1cc5416ec7bfe5a74e321244f870183fb234f11e603f194ad86b1008c49db1b79f832c78968660055275a51413dcc7c3ddb952a36a15b7de2ee9851f0009cf1645a43749732e2a3ce3f49b3382ead7331641008efa29cccb70af96c7d4e707ea4136143d76a91aa34cf2930ccd572a233645de44cf8db6a803582f87b0ce1eda32a8da622cc633334156bddf605abc696b81a61e343426f11b9f40f8f034510d784497faf93d730bcd4f0440f7624ea2db86c8e80a75d487353165473134a0b1a12c82fd4c3d92edd5b089954cf234ac58b29464a6d5f42d1c7fc9b7e872db77eca58d949fcf19bf2b2aad9b26ffe02a2574f7c57422930c84da791d59542a15cec8bd9f4ad9f60c29c98fe1aaa64304c91b17357a23ca2f325dc162cdc778c391e54c312889a381e3589f4b05212ee4f5997a4f9b751d08b55c52052851bebf0430f80e066c0f70ec886d905e3434b97beafba5b75248e9ac6c8796c1248fc93284f034e88baa50a1fbcfbd22a064384d18ad3b9452828ca4312a3c9770c8a73256d34f1b455b3a0c9e08b1973a6056940d030a966e928c7986d330c92c72a2021fc04317bbb16e54eb7f9fc3baf5cfd6a10d7e4cd207ea54b62640690d220775d816a631175fccbefd6c8ea3686da22a9840f9cb42978933cddf4d996f44a82c5aac4220fbd15c3e8fa1dcb12d1d937a7f554ed826ebb1fe40ebcdf95bb158a9a949984bd1dcc6944b92b7bcbfb2a8daa61a46df792b903475834a68f8dc73648f1b58f1e475db02169ea30ce0deadec97971ec33322b420db9ee00d03c453fd0250eb166cf40a892489f7dae8b1b054c9cb0775ef2792a4b0cfc3bd306edc75407fe94beda8ebb7121b5f182307853d7b70a55fdaf303909f14b7a38881f17e98a6a33cab52b8104ed15b839ed143edef9291a13601c189bfff964217ebfcd44d6b9a1400bfcff57da1bf0e86fac4697290d717fa7bef87bc07cec292126aac111405b1d2d2322bc9d931982ac6292dddf97838548d8ed823cde090ca672d2ef12750a38f5906e71a47afee3d6254ea9228e9bc247009ba199ce24bfc593804c6e9970350381772c9eb0629f8546d611bdb931cadecaa83f978fe0368f207f67bf72f13180f535840bb5c4c21025e44d60351d706ba225ea294f1c8bd5c1495bd2c1eaf57e54b299001a6423960572b7610f58f28cb058c721b8d883ea163f9d9889e92163ab5c80558322138454a993555c3f683bc4b4233f0373daab5f78df53f9e6976b3ec4e2b4a1fbfa0676f10f8f2f383866ed110770a696c55d35aedd74f41b374b46e79d418e09bdf4dc236c98333028758d6da2cde31f5ffb119cee8e85c7416535dab185bbe1530eb800a6c1524e9e9467e5f6968b12e47e046ff2dbcfcb96784ff7d5c9753f08196ae26ec7dd98786065352a93b9d56cdf3f5745cc7deebf8d63ee1cc500f2b195d921763e25bff96f6bf030e2cc04f70b4bf644e88f6eec3bf29cced6fb627e26f38bf635c270dbd999299560a77b029b742727099e917a350717d1e5fdf20b48feec9bd06ada5e50582d79732342172169eebf79892edc32aed4b35ae77f0fbe9c8328b5ed35e1582a677f491fc0a4217f915f4e481bbbfa2160795923c2689cc1dd8b9d171aa67b8fb12d82cea950993fd898c2677f443578ce75d23436e77f408208388d3e0caa1df99761daaf739f055a0fedeeb6474ee8f0f9cc373476e01e8ac83f33a1b43b8995c9278fe113a4c33ee2b2988357149869b95c6080ab1c3e021656c5bdebd0bcfa3ca843d61e03acdd1cbaaadbdaa407c429afc103eb9b057f74b43de94c08c0dd9f436cf3acc28db0e9240eb25ede69e86f680f14155c77a5f7be7e0d97b3f453f42f4b25b38ff1b7bdc488bda4d64be75ecd3e1408591b53ae17571930d114a3b3431f8c62021cebab99006ce64b5d3f9d3056d7990bf3e1c7cdc17ddfbb7542ca1a247f4d53a380d5bcf8a8b7bfe77b9c47af3d30c0d8a5ecded4ac232607fd44b5c574e57a62329434c7c199cad67886b9827c9d2bdd647c933f6c80ee24b51cf6678010f585c29c4c4f0aba9590768ed81929817069f3ef70dfc4b3eeb1da4e10c091ac96035899ee53327ed27dc17fadf0ecf271e2a0eb4aab0a583cfbdca2e5e02f3ff120231d3b54272bf840f3670954b1d7c97fd3ac8b75c2aa2aed7674e2c6bf4d7c29c92fa1f50993b27f1ef342b4e7e22c66467c43abcf2ff3b7afb9514e2a164e9e1d5b25f44c022ab714221b0edadb5b6edc7d5dd8176c6bb9babc9ff1af9102d3115f77838e55b87a8ca26c454ef5c36eca70422cef68bb8939cedde56204572f3a97107fb72b9ca4e260e8882238ee7f8fd0e54beb8cf8b9dd9b952f264a3a00e891ba490a3eed341e47035cd2f8c3b6c1051d5dc0fd31259cd7259db89763a70afbad7adb2de2c0505d1345ab4db6de7296e46a93899d04c4a281511662b3d8b9e11113de0afcc3f0bf0a1a612284ccc5dab651903184d5e239d3a2cd3ef02d3e8d15ddf424c47399cc75000c452aac35c2eff164de3b85a5459bfd4ebd00641cea3b5646a3adc62b0c58f0c00a7df36599221fc4cddbb71baa8eb489af27dd3e8d47e54d2f7e9cb532e1641b36b8fd5fb84e51bacb5dcb75c880bd876bab109e97f946a243f06aaf6c4c76cc54d4c12685d7b3971411ea544c4976bf607e86a623f7e144be4dedb4d1f392bb05c5ba650dfdd0dbbf54695e6c7d6fae8d36ffda7bdb9f45330125ac3432a736593f80a1c9c7dc54a0fc64a1ae3a21348d119d0b8b3ee6122e760ca76757f0b862704ff18a47481de305165a3053a5755e9fd753c29a6e7f160f7f1cd4f9a0fe818ed07c37956d55b8224f04933b9fc08adef808f07a6c2a8610e399593576d6dbb02e916797c4bca9a46d882322c4bd0156d0ae0516267fa97cf31b047606b2a351431f724c3df1dbf506ba837e8239c2f24315a940dfc59ee3c0a5a0fef1fdc2a6aada00c0981d13f03dec28e3e743f866596645cb2dbbc17d51bf6d7a4f5ae14b4f12e3b649751ff5cc9e08572c51d70faddeccb67132d02d35e70408a2e55f577d43063ef78366b04a8ff1944b02990df30c49923e72b1931f02d5ce55b6d6df0f14c3844f14e728f5c84284f60332955bd0b11e44de4810c958db31de538650a27f6a834c47a419fa84327f519871c9033b1e1ec6f2dbb9f31f8a38289a2c6601930ea182555d1d3b61aa585b1dbad1749fbd3992e5d4bcf5081816ad49401aaaf6387143baf8e528f1715e00f9166853826b1da9aea652e9f171ccbaba054089343e808a5daa7faa631a6d7b33eb2ed3c10f3c37be0b27470458a1ec6f31313b5c0fe87f2c3c8684e9229382e920eb116f60cc0cb1fa2993a815b21309f683cc80e0ffe27dd4f9b3f6d4969a57de8d68d3f5fd53a72f42c170e94b9c92d426cc2b8c3753ed8455f1569925352b6805ce85b2825a96c640f456c1420c48a744660c5ffcda131a2add19711590383711375ae0440af219961a6594e3829383c97a0eb20f5b38aa6c756ff88e999daafc4068bcf2c17a4cc5a3f6269dc54d5a2ce45d7a3c147d45a30edb17c788bd2214e6f42f7066059d0bbbc0039c674f57d48567d5c4c27497498c2769a61605d245a093f96e93c1c59beeb4ea6a70d46025c9f80b4448e38317164023e9638599a213231e374112fbdb33c466ff7770525d32ea6a193aea0f32149bf13c544ee5e62cb4bca9b7bfe8d0148905df15cc94577d75946c62c99a4cb47261c0b4a3d3555b890c18fc8b3b7cd47e7564b3e95dad5b1426e259f8d2a1c1ca79123225e8ff7642d2a917a9710779806e92aee40183d97e7581314487cf3e820737a3baec66e3ae7d022c94382ea3d2b33f9162fd135a86384458dcb1a83aeeab47b176f9fa32d985f9f1fa736005c244fcdb153046dc82a6ab47dfefb1fd76b5af7cab4317631bbd1779ad6724fbff39b478d8ad6141dde5fa74e253036ae44fa787fa49113bf083e728db0095355fe8be2d03df04192300e17db2cccace4066ffff302d10755238718ff4e904bafccd8ef705c79af57db2fbdf6c4e28f0e7eb697f81234a0f453c5262a4abe07845b3eb3b9a02da15fa28a8ce34a9605228841fcf4c3b312a1567b31fdcaa39e2dfc1f4ecb264350e06854f8db838d6afe7d36805f3027a9e436e8eb9b6d9f3229c5b8791a531d6dd75576668a2755f1e12b683c486caedf4b3c086fdaf33d079a92b95fec0806c581086064923a7847f05903aad1a338ffe8e616a2c5c76d8fc796763bdf306708e3dc5cba06395992b2e43495af893f3ecffba36d1b4eb09c987a06d0608f3e0344409d45ef10168d95654a98ab1512db9aa18db2cd0833831d0ef52934ebc556ae156695cbec00b0676b0f1e239348f4e58c71168389fad908896b95f38389e8702a18a409ce7711dd42694089ff3b1dd13c6797183489792e5bf02b88d866c89eba01a98ef7241f0f4f73b6e3b89acd854715811ad1ab7e098d20dfb3bd2d448f052cec3328f265faf19d6b497c74d4a8b673cd4bf0556239b0047087c4dd3c5ef296b944a5385efd0492476bb457e8e973cd33221bb8aafe5fe354ecf0b9966bc4940d0215f8985ce1da2409185a4778c5d2284bd7f954c051b3291ec0accad7df375822291ebac0f898f27898261b8adaceda237941da88f58ee92c7fb6340b9e04c24d192963b5fdbe8324a06afed86752c53dc6f39d84a6cbd97af15fb8313259b09eedae902b9c9b9c08a13c922054e5cfdf6755a6866b96c13f476bb9b99d3de4279993f4f6c1b16537f3558ba374910b852df8bb864738c308643d34d6b48d726ce4f7854e77218957033a00a559580b5d1f9e6f1c1a64ee3375b9f6ff32af00e6272bd7504723e621d1a40af12ae683ca607c110710306d75d888976edf452581d629c17a3858f4e3bddaff52941357e2e20758a8a39cff555209cfa4c197881ed8729b3355f0a6feaab39c1bc20870f0e6b54f872dcb53ae945b42e365936412b43d8641c4e9dd67687b83a06d13ddf2505a30cd0446ab31154ca6b331aa50a58b5b445171ea392a730153bbf981641bca0de0c92ffc27e033105d5ec8f0d994e44cc172457675e303726f489f156a53b3c53e6ca4d20d94b11157737f3744904356a79aef833c436dd24ea9a9dd5ab2e707d1cc18ed3f7976420c46e30cf5bd969d58203db2d991ca3abc42c38dfd094f6403a46310438da8b2d86f4bdc7534709a354002a0f626fe260efe51a1f559409e0bd36cc018241263e4477f9aae8110635a9b92281bf0ff78bdc8e3dd7f59b4af5fd9adfb5867d88d036e6ab2f62541a0e3b4c9868df07b062413ab06eff44710d65d42b60ad081dfa948e123de15ff315b73a3a0b3bcc0cb6a530bd3b7c90eeac5a98876ddaf4c5a207b75061d39f5ce23a664fd1bfdfd1dd982357aebaa3526e92c52b590a8d5ddaa725ae2ebeec6289a7b5328e3f2d276c79cd465d81d757b55f7a3e387330e8d2fdd599123852a5f2908008240ec2cb37123cadd28de53e89c410738c41b838c3f2fd899e7c1d3cbbfc41cc2a3d075dfc59bfabe3f5b394309e369a5bf00f3d2151fe9354a5d2e71e80ae7abf29812eb150f2a8fc33650caf1dd8e9deed534063e2774784d84e8954c9d1fb724d231dd438be87f40c738dd5ccf0e8100626e9e1a086942e1574d57881f93afb01fea64999f8e328a988b4a7b81e8de50c29ac96e4404fa016b6f3c0c98328dfeb5a8defce2494f0ee72bdb0d5ba1e55de660c965a32336e84823143df6bb0656deef289f6d394199276a0571edf5a782113ac54eafaacf4debc9a72287f2a0907765e28e5c9aa9267ff6f1dd691a17a65be84a6937f70a2944eb0cbd80673c2c7231ebd651045c3749a33c6b248bd4092e3df7abcf65cbe2b9a09f8779d2633954ac43eff1b5f5ce94f71a7b196d3de6cc2f01644fe602f9a2cfefc7eff9dc06b75da25064f161aba391d28f657e510bc643a1e950a0cf32cb332b06c12b3e5ac94a5becd968dd806c59a9f2cc965750863f8f6ab2a7f907f539ce73b4458a7bcc94722300bb4a051a83b93433b86136c73210f919c1c2a154aaa514ef4d15589467f4988effe95d8c61535424af12c417cd4ea36b363ae712236b357f9b33870c38ece4bd63c512d308d73c4d43474b5c04f85353bb865bcb62861ad48e7509b15295bec9d66403b8c02f6a01f8847b4c0b56a2c261d8300f63bdd843da713115ba9ead74c69af833475bb4b55c50def3976385689ef4d6e442ddf8825a60435e559cb382eb7b57f5e2a6aa84edcc9c317a91123f5d8e784101a6de2e7f07ffc46effa73e26d429df458c71ac8348383a82380e0126dc4e940783ea4843be7516823032f46aaa28893f58c90f5694b114b7f118ad501e6f3d84daf4b4b58444365ba46674bea5b5bc3f05bfb3894d751cdd4eb2064a07ba1195fd10b91175889884060d964265b8f8a8f38b42527745814cad1e14e837e1d841037d84670faac705d37eb0521d25eff269548ba20843c8171d7ba1ce410bce461843a4d4216ae171f9de21b00b8a089d06c8ff6c4f2c468296efbce3e17a26af0d588f4c4f7116466324cabe9461ddf08d2235744bdfa9c6f7fc3ad464c2823f30f21cf176012c98771290d11b0fbd94bdae66ab6231702d855930a867787db0b26a07fb7d4efe14f6c3dc86e85c2bee0fb8f12611386e73e5ab7a67661721b9343b71323e72f84ec3dd1a35ab095d5499cbd89c76304b80d4b938cecaad71e930905df79ae59d5c80d83d677274be1269434275e34d036d064d4b116d48e1545b7834dafee602c707113a6923be6c3b185bf76ac7d965daf425dcb2b88dd80c3bf042c4c33c50c8297988e4c7c7ba497077e7bba339949790d1d666e7d3356b88e837b0475045da41d3a68c424daf9453dea3e9e2a18a98111c67070419c72c1aeda6f2afb4b3947f5c95db3cfc869151d7e209b876903c5f288399a7a7d45b6b4189129dca00dcfcaa5ade5fcf2ce69010fea6679ec8e4cae86161a2df930a041fbb315158a55ffb4d7e112a26c54bf92e74309c52a3da16d3fc06038eb2dd4e417c050b9caf68e36f8e4df4092841c7a368fba7506b86032f93ca2d7cd066a511f15e979441f8dd529ac3f7d05e8df33c1ed3d6a2baf5dc4b29c9f561044f9d95a2435bfa10362402ba0967d8279218698219319f01b2c23e0551ea325451e0b8fb9558a9e62e5efb8437ec5e756ebfd2a177522203e7a38834464ad33f0519abcb4def0a1fe3aae498121ea1eef03eca2e1e367f57d9292802974f9d3479bed1c7405d642fa52b9d154bbe396e5a96f0fe951a17e9ac0a2985c0c4c3189dc83c087b3ecd19c82c1720c8d26f83f0edb88c20df0e797b7eb71263168bc47c97a4892790f7f99d45746404ec8cef5fa7a176a87c211abbd01bc5e65286854a97b6aa08f8e07cc609cd8d7a2a8e2aef2779fe417c21b5f447c7fe2fca819b396bddb08052fb63cd25e7cc21d582de80c69d893b8d5584caddc8df633f89ba28a9c0422ac958041901de56fa92b3696687eb24be9c7e974e8195cfbcde838c1c706fed00f4edc8283f6be5a9993d5e0290f5fafd100052a9dd0cf96e69342c8a6388a219c70aae23ba0d35286325043b7c3cdffa0955ed0fdf08ce9c4908ac71d5b833eb4ec1c7b6d0c6887bbc04d5bcff4dc8d0c9b7f30a70937f5b80049048299cd9267d0fb843218723853f60010d7d1d5198a6a2c30c291384c79f4b51b4b95bb12088473b5f0cadcfdd8960e96b7c7036d7279c1258ec5c1729432cdc14cb6e3ac89e609e9f982859c2c223a4872cedda8031926736a89db928b76310df5481d830f38f42bb91f11210421c7dfe5634c3865ee29e7eb97cad13c44443c7abd755aa5dc81df7fc7d4f516af972b172731bf9ec0f666ba8ac7830ccbebebb567c5b691a8539e53cd0ead90768b7e6bd0631b7dd11c3c1395d6823b0d53caf9824fabf639233737e85bff3c68f313c8a16f6af29168c470ea709632bf76f3379ff28e6ea5cbc484906301b9393fc69249681b22e91ee894a16b1bc9abe7be355923d5271af1c764d9ca24bf182e6d401ae8bceb572e7f300eff5e85e24799e465d73a104acaa72c8b9fe5ba71af1f01d66f4443564cc3458a332304dcaf691de406c109f3c556b1b30306b426bd573b1583c083006c3f6a738051fe01271141486ab832e2d1ee16c6cab5c4efc7b57ad500acdd43c4ae50506d34a1af5e04f59f81920449f9b976f12e464504b83aca3faa9aa3ebeae03fd4b42264d0b2cbc2fb98273ee8d76d3a876d3a5d695bf3c083a864bf93e955369a2bee5352fb069c053162d80a6ece8cf8a75db2eb6b6fdf247b3adaacb75cbb11ef5732212be1b431ee86545d14f1a21c84c18967a2253ce7b687304191a9dda615b7610a41a333e267279696384c6bd84dd91f34672219b817cc35ed524cc2973a761f8c87d68e9bb0f6e8f1986e773ea317d700149b0b4ccf0b99e5186145869549eb6cf13573d3080eddea8e1e0867655fb7e42fd5c3e4965684a290821886921bd445afdd6798068cd87ea389e5383da152281181da5a9a066ecebc6117e7092bb34ebd0272d79d027fe63bf01eadd55cb887cdbd0de300df3282cb052d1af6c58a01815eb0552a4037134c1a2f5d2e02b4e74b665518539a326c308c212063d78fe78c7eef9e2338d3d3e1bdc8f6f9785f0d8d1c88beb57a42c89e726213ed19990bad8c78b5ab3de60b9bf2ad5eb1ca151fe87a93a43bc8b983eb7f7254fbe5a5afaac3c39ccba582a3a33dc5756140e5202e50b034464b78de2ba70f4cbd90bd55b9b7f5c05c68ab09d0f0dcaa0a87fd98930ab2cc36a3e003f82fac40dbf55d11674390ad6b7abca3b83f7781f0539de2e5c2c463e9371fd0377e0866b4eed38adf563b66250a29034ce917366dc893d7a95202d82c4eb5366555742fc2858a2be54f4a922b99da3adc87c7630e25a770cbad723098832fdd7abd344f837c1e8fbb95593e6ff3dc1595942f7a451ca9e28dd02df958be6ea1a5cb011ca23dd3911c1b3bba1934c63b3ffe3e8e366d8112dc426b5a4218419a122255145dede4bf9fd14abb7c7046ee94cb91337e123caa56bde5987c0b30ae7068d3747197cad107145453f54ec2e9b669e1aaa88b6588c80edce62812a0938e9fc1e39cc01626c1591a903d73b2e2786728713a4e1def9e62275d2a31ad815ff294d8bb2783b6b574e5f0a4fd7947e79e678ca822a9607330b67a60834b04f4fa01f43cad9a4359738990da1d62825229bcb5df346b9da3173870eb734acae34491825d752cee3aa9a99a8149e2244f68fd8a2cc29e0e060baed8658090700df4184d8e19a6d4e584981ebd6865c7c7ee1225b671f211273f59905bb7dcd2fd201b79fb2568422de6d13ab75179f72d9d78e8121fa88a6cfe09a3c517de51866d113e55a8ddeac6d20382866cc0be73745fc08da4ebc0c0fa30f3fb1e38ca946905feaac2c3bf6a9d2479a8170e8865f345e7778c1d317825faf7a15ddb1fdf2cb145dbf9d50352a8a69be82054d8e2ae7a9516461c54aab98c0c2dad6c61a3d26b46f6d691f50feea8dcd8a3c76bd052537be0a16eddfc062aa1c0400f40ad00b4b5dd7ec44222512d1219d7ebe1b73d96b1c5e1b86ab2c668919b759c82fa5baaae9df1d408214404d6322857f808902cd91528e27400eb272cbbf57ccc68c980986ac5fda8b3353a84b66825ee071efceb5610996ccb85e4ed0091198c4a9d9083f2a67268a5f12e6ee19dac4ebe7cefe9608517c023000747f28004f5df476587e872fc7f7694749ffcf6987a1bf8d5f4d4710ddf5b2e87202d153a3cbb77473f7b7fe707094a94db18061fe165d05142f24a54f4d2c3bb0045fcfc22914792eccf279d61a1b9804bc08ac0fdd3b7ab08528fd594bc0cdc4b04f3bcf797db2121331ca7306a9a45e71a8e7ed17676acd53e081793145dcc4e5c565c44d3a0ebf6eb4d0e934dfed2b1183ee8d9502acb5535d15ad3dc78adbe906b3edd8e6bec9527e6bdb8ad149dd4822ef14edc2db49d9b41e920b0338e462fc3d4d97f212dce7d7c97eb089405049f114c1f7701b73aa7fa66672ec9feb08b5889621219b023ec9d054fe83d62ffbbfc00ec26b20bf325b83821129cec259e4bc9e360aa16ba1a48fb8ee2f27b4a142511c6a2492ffaf6896199d94e00d905f7c647d9aed0d737bc4383173cfcaaa917b8e3ea0b80617cc1759a5bc9978439f4111058fdff1dba570ed682628f282a83377d7f97adb7830f3310264c3fa6243509612fed1160f3c7d3bd396505102e72401d1ddadfea141346246026156ad8d35c75dcdd22e93a16fb8900309d76f93bae1450db29b8630838f9c41b23967e3d8137a3aa9aa3af62d200e215d692654b8d325e062becf33b184397f05afd14f1c44c9522cd005a2d38e179a1e709fb5629c0abd54e8860255e41e4f5ac4ce000dd7007be9d427d19570748a2f4405a8375d3ca4639f6e5a77e241f9d39435c7a3e7fceb1a37cdf2b7d986019d4d77ff36342ca691cf0f7e4fd749f5fb1d929b15b9552eeece0e3790384d8589dad8f4ba6cca68351ae5b10fbd0274d48a7015b44cefa31a52b2189c93518de7f85aa2e0c2c3a5786c56bdc1ea4fd7badedef55da38400c843f6d0a4c5850704ddf089807bdfa92677686f339ee3351a2a839b7f8c02cac48aacdff369c8d3e09e850eb7526ed6cae11c18f32640daedb27f8ea32460de0c285486976ad2455f5819f8fc82f8231f53810d5cc48fc213bb61f9926585eb9fc7b74eb76299a73aeee2f5cf661f98caa85428b388b0226fce8229066abaf5a725d481f846c7b4d20d3313eb76f5d36ff8fa4653d369e0dac29710e5460cd4ef816eaff205c41fc6291c470fa7e5860b3432c7e9332116ecd3a3c5179c0eb3a99bd02bb412f20a5d7fd2e95b63a1f6a28b9a11c3c88c9384842902e73e639185ef948c560b2b8fc36e4e3637b0727e42e6ae0d276ad15935303ea5ec9f7bc317324b2da3ed3d3b14b0facdc62ebe0a4c0c3ba9c53433207176182f94ce19708f4002acc78b2c8e322f1f33f807779c155db6543345ffd28ee9cc482b3c3114bd01726e1a332a7c7598484f1900c5cbd7292b8475b69d0d9cab2f3982a0e9fd68f1941aefb6e9ee21e023ee0035233fec0f7c339f35cba4ffe23c701ca2b0d1f94ffe1a7b519d42b54e2440c748cc365cece95e7dbcd11eec30fd00f12379066b301f1dca0c27c7ffdbd1590efb5e02bf42b68553453836a293961ebb5a816993def998c2a55c420fe3ccb1da72448968319f2ea889c959835e1da5da0b3b98bb5778403a1bee6de9786ba4fbba87c4e74cbb63211e022bf431c493c4973b8884cfb7911a5b727216f053f303337c40d5fcec2f717dee020f1d3d8a03b26bff1d7b204a95bf5974fb529f42d2f6c6a0f133be2452d4416926537950c8e8081acd1c0eef684e0a0605dfdd98a97e1d19949df6d893a0f69f171f784f0a5e6dc9c209234635ec35b1a1cacee2d9f951f4689aa76337751a166dfe80163854fc4e42a41cdadff58e730ce0bb6ff825140f80a6bae29b757ef4500ef8d6777004c21784257c08f25b3be7b63075a8a4235dab0248f8ba59e6954f34f7e577d4e2905ec72ebc8d4c0f6ea596348bf3118f612dbb1c48750df807eaacf93ecf7134f89745cf74214ef465c64b452d325d01b7b765e0fcee3c9e8cf8e93200ee386d8d119f843eedc136eddf79103c84260d8cb9303c41fc5fc81cddea9ceb9d05bfb89b62f7f946fb06c57834507bd922dc21fe1d3ec89d1673e0857865e6126bd43390c31048752d6023b3e83e138ac8a64b9b82f4478de8abb83fef247b8bc1858e289a451284470330c7e1cd0f7fc6def62f26e7f6d9b9d3b658803459811759ad24a8770329c68c874df228e1ea07059d729ba4139586bba192158dd169e84f47c15b330ab82d28ba590c19dc9146bad40fac135e8e3757736540d35a06bb3f69fe8addd9271e48cd64d286b7a26db7bfd8f1999d20a2aadb11df970e4509b5f235e199692633f6b9076bb5101f4f019841f771190e0545bc8361602ab1132a1402f94f733d22c2ea8521cde7d36dd92c3079bc206d9417ac04d8bc9273822dd9735c3af706c913c2279df41fe2dda35e1aa4f181a4e6b376be358d4ae3f5ee9c99e5d7b9711da81465b98600d77d38a374665813785407980d719afea5e8898c5539edbf15324da9df48eab8540adc857032132e259e78c6a36bd37b6085512c845681d498c085be2d4d30d54ace6b210bc922308f67e5657accd034f75152d67273650923ec9884746de4ccbef11ca86be878f97b5d5d119535bebe5ed23833a6a3e52fe32db79fd2b56a7624a98ee191f7d56fe015a117947f6a54fc84cec4f0ffb45da39d49a89ae9dc8d46c7d4a65409b6fb3cfd5afc16e50b5396da485dd94a05706d0835ab5df29834bf738e62b0d0020b0ae3c0f4ee4738bfd40bb8a4514bff863f87d6aac535996c0008139a6560998e34f7cc6b21faacbd51eefd97bc577e82d087c31840dc3ea0ec543d61e7cff37baa4a8580bab4c4173a2bd70345cb068c6479e35e78526d1affd263e1991f704af724d9856fa6e5bb7d79ab0d845f6c8eb18f4d59a28fb58b047f9ad960f6be79f0c0738111c4c43c90bd0bad77a482b7d34d71da94ead6876365711a7e12fe08724284aecfc4164fb930ff2ec9107ffc51cb7425b4870a06f51d0109c087e3fd2af7e2fb49742a50f5f182b06364699232e55f72aca965e56cba3c21002528e179342c8a7344f3bb65a2e9a65a5714761fcd9f70fc6e1e6352e92e6ef19a10425964613345493eb351ef1a5920cf9de59aa8aabd4fc6a5a4884ffe123f3e8e2f5c1361004008277eb62b0d620c1463e443320f6fa9a35832675a53c3fa7ef1bfba110fafbfc56406685b353432c1aab92a8f088e5ec00177620c004b5b6f918a6ef955331d3ab45ac15114908768036f35cac297e06f844344869807cbf31c2e5fab4333a1d8742be5c5790e5b257b5794a7d8fb5753d04cf44e0169467683cb9e95628a46128c4f8e7e909b1a97618246c2379d0ef6aca9d09bd6770a378488b6d419c54c3ec44270f748f569fe3a47ae258458aa9c0357961bf6499394fc0c03824ea89a1228a0272242318976e8c335d5487737d10cb4d905638eeae4fe0521c1b8a9f0d54eacba24e2360b85ce5403f4be3b03762e070f71320846ba94a5695e5f74ebb528cda937eb40dc79f01ebe7eb959466966f622312c0bf6acd01f7f107565d6ea9d0b90057b5d98598c8662c94f799f03d50da3c05202a4047d2fe9ae62114e933e96532e0df3314cc0b9263335b85dfb593e76f692eae0da458fc1ef21bdb2715440e6cfcb38e8c927266fc248279b763d5c258a72d60391b683707e2ce56af5e2fe953633b98d002c00d39acb4927568e9fb3a8b26958b3c34e797d2bb7f539856aed16d0d41e2bf8bd307fd99941033623071c825f9da3e3ba56c54395cde5a44424f3a93da8d59f99d2d13202244ac168e1c60804d3a4e995677253971a1338ec1f8ebd7d7d470a14a3c423655d0b85d36777ccbb5922f02eeb93b50735ac0fea038ec56ebf8da37071ab5817fccd142c3c52ad78604ca0dc0d0e29e3f7e5c26752b071c032e0a83446a2bb60887cf81f2558fe46a3630e770501485ee3c16fb19c311778665a23abc7f90bfcced62dbb46c88cc3794e33dd3d47955f0fc2dbbbc34ad76c2a434966ae1bbc9e7b6249f5ea603f9f3551c56f95dc8500ee38fb9ac8e532c8555c0bb649d9c66983e4f926dac05421d103d391a9401410dede88092dec048bddf40833145699755fad4889436b2ea2edde0c2d33265c928d9722e6e3d0e60b3bb702385800e350174230be3530040f22fa1a317301753c2c9153b3d137156d226e2964e449197a1b2c0a4aa7fbd16b99d5b50caf4742f96d270f16dddc042e8939531ad012c1e7eff9e3150f4d504b01497a35bd7138675d3463598f1cfa9dfced360250f81b81a6ba02ea8cd9cd58c8f199a4a113265afeb893ea44c01f5e48984a869af9aba4297ebbfaa11a4fd0acba9a573a9be857c00765dcedefcbe86c5fc756dc241ca056a44e5979cb6e069b5651cffb87941ac1da14655e6bdc08e63ea2e43c3e813be804a380c09618dedbc82390bd2d0110dfff655e2f6d555c4153fee9f292912c313a95c90f775d5293546aa49654d8dd9b842dc62ed9b8d904b3bade686a67a1a6980ef7e28b4fef8e6d7619ca4742d8ce8b033f6098dd46e50d438471c79dba3a9d3eab216509586484607ec325078a2737158f8d4469be4c8cb75c8c6b1b0b87dc20f03707c3c2dfc73e6a23838633804e98216785703231a9d5303a4eac1ec7bcf0b0be291d77c235d0f5dbb23645008f0c8234c12ce53a00c98861fa9defa2844b3cb4729953d194f83d5d4575e70ecc49e4140328ee3a4a3036c383ef6ec98888c844b08c4a3332a3e3d1905273154c559ecf38bab9f10130cb7e064a015b823eec2253b6e01f7cc38b6b54aaf8110b1ca9342a3586256b611fa7e2e2ff2358042470ab0eafddd33360bfc84bb8f9cc7a250dcca6e908f6c9cde6259d36a7e43a5135aa4be51031248d32af2babeb2970d29bd0ab48f138ccb434d53b65f88214376b2912c35970a3c576329bfb32feef98ad9766615dfa307798083bc3666c1efd92fcc71f43678fbc16aa468619e892ff39e050c14b05fcfefe0af276f73047afde4b81e38017e1ab12934f608abd47b793dd484de1c1bdf31ef0f41db0d4bcbfe9fb918b7e9bdbd08c4f2d4e842340122992ecbd5fcc77466d524847b15b04800124e2ab3da61dec857f204b5cb18c85d491101c6c04f8aa212bdefa20cf5baafdd4426784b0f6c3a904ed07d049402bbd8de14aa5cec2154bf6fe2de504cfd9a8b2a6fa5b2daa9f2b033f63e8937d41c74b0a7a8a824244f494b64d2eb4660eb9215030df5f7cceb27197f6abbd84ab94eb09b4b13ef734589f18bcd1a0802c580cbdeb58ac7d1f570add8ba1f2b26e159bc0544e9dcfaa2619344d74e7ae7c3c7f56a1b27e0a69adaeb6a122306834a81c1b890703a8add8b9daca84b4732a51a1b0dc3220df05e490a4e97d61f3cbcac0afd71e822b06153bf46e06f0cdc5eec775b98b16704fefb365cce9edf7a65ab51195e68bf6c7245ff26c2ba8d2c3a3a9ed6a39e6f028c69497e346223b5a65cc997088eae8c177a11e66bf447efa8cf16fb430521477ae0ea67db2206b23891c66e61bbd090c39c3e6f661cd7f283eb5f771dd721aa399cc111ce93f3c5ce51c5ccc0c703d83f3a5012891ccff6d3a8f7b10713e321b91d9cbf878042d0a9b1e0bc9d1eb5245462642fe83994bccfc5fa410815c8dce3222e57ac41d5c52dd4567d9f2739a36a9e831ebd412ddae90f7fa88f55ec6b33df918c2d4101fff916477ca5ff04d7b414a1a59fc136e5eba29aba247ba62432ef1c922fc7a73fd81583ac2169b8f02c6e7f5239b2fa68daf0e891c10174bfaea9ce0a14816f8e019cf3ab71a4ca9f8736ce11b957878d05f721bc6e5d60dd980099c7ac6e9d55eba9082f5b9dd8350139b0685fb63761d4db40c068ce6a0e7ef02cc9a924fe5d198b5e09c246303430bc3a89ac70d3452f4998957713721ab07761d25bdba65b62f66c020532b12cb8613ee07656a59aec5d5c3c57d7abfb4538119f1fb66d2303f0920c73ccaa926a97e3d6b0c2f2356ad44047231f6a211180738092d5cb9855d01932e5ea21659d21e8ddced7ae5d12b24771513920cd95dd2ee2ba96ffda0175c9ac58fa807abf34fc9632b8b998dfec222766e716da50fa1f64b662d978ea1140b4e2c5cb925f4ee907ba3039f58586e47f362b7751126a5170eead2bb0117ccaa62872db0192571df968b96a0e7a99dbdff414e593fe44eaf500cc64cd04b19a6ecb3cc0398c6c5e198da14fb52fa9ec59d3dcca9532472c99e893195752cd205ac9a1a32fa9b331f5a83311d96cf4522e966cf2df8b31817bd65b1a68daef0d2b560b6cd5a90a453287f811512a75e468ffc6a0fd9c09345211e39195c51f52aef1d6121186b11d544a882eb0afee8d25209809429559e3876ac9d8d462ee92096e3b10e5594ff216164b36f27ea59a287521b551ce4a2721b596d15579961e9b912d4037ae94243281f05e6f54169239796328d6be67586a25dff8dbc51277abc024ae1b1a175ffb694334d64552bd4811b5bb8d48617c65257e50f48426378d6f7ed0d6a42d87a1cecca0c48367944558d531f985e4e82a58928cff0d1720a9469abc4d8a38bc2dea1e682d990e924ba2c7b60fc412d17caf0fc2b4fc4c5e45499aadc720557ee7542f3413414dc8d694d9045c81cd6b12424d43e23aa67b3cb78e8e972326cf8cdf4fccdd86a59d8af24506acbde0b34c908faddcee116d47fe0749959b6db26c7d4545029c3c918efe7d150557865da035425f6d6270b2f4e16d1996921abe6b81d9707f0e7c3891e3bb781bbe63352d3dda51265b7cddee6a32835295dbf44e8245c31d9e876fb45ef8b3fd6506dbc69c31a1dc9fac4414a7d5e00e5100dc515241ecaf35270aa0311ef2584332fb3ad59daaff5cb5502537728a72c16c134edd31dc734f9c0b608475fc6269ea9c7baef75d1ff44bc9c2d0eb3ea50fd523897d64f5df34cc2d29b80c4f5217f85165d610393a020feebd67b875de9a1b3c22bf29c7f6c46fea615f410075d0018819a7916d6b7aa9851a21eae4453cf0957351bfffd40ddfbd6646d93a0c9f3f4d128259472c640cc1db92f474b2bf5aef2364f4596f210f28889ecd432d44fb293f074c90f7362a7f898c91363d5eb5dc1233f88d66a81a3d01a941b59f6bbeea8917070470952332e8c3ea941f9c8c549e4c999e87697e463c1e7ec94252dedc4dfb88c14f44464ea3abf486702c4f294d646f93c443d8e8dbb5a29e7609257bc60fa49234924afa31a5195819e2a3fef4aa01693ea26df69592e9bc22891fa45ce2f46523bdd662df714a2494165be45043eee0bdfaa8d1582a012b502528c2b97b4f198a741432d70dd12b2a10b54cfbcbf47cb7e2a0c9f2f6a69edf65cd01a6027ef918978b3f97b1549573b09e9a4a087212b8a0ac237ee8d07761386aa3f7e1c9d1b85fedd38ddf6d6a8cdd17028d01413aca53b3b596176c394e9e9f28f7ba033dc5f3670f2b210b330daa5b09ee12db09cd7529050bc6437420dfa1c3a978a1ffa83899f28eb1de6b129e7fa2b5bdb36e90e3289e8492fe613989903f8449f85047e18fe76cb2bad95467d50783b3212a498403cb9e74fc945a8496c1fa98217db82fb04a86a104a43004a9a9b72eefb9eaa332cfa874222c9de65132a217ba45fe61276ac3231fc8be9adec9663ddc6dbdd662692ae33a95fdf705317b90310dfa467f7e16599db49da1c078c69181cb3abc46386f7fe72d3d470b979b52e986ada1b8a20946090ad6cc281184f0fb54ef63eaed88e7d284de95b183b0bd895cd49ebbe982961207c7f365bb6d662dc7b82d78c5ab52469a3d194ed21e6a72067d93bca26df3e4dabb741d8c7328f3fea7638b8f943f4723f407728eb24e540f213bed96044bd3c60fab1e7008d665ba2dfdc59901fb569dc70f4a65bd9179932a59d4d513e666551f33e7c34835b0dde2dc9d751ca87d7f79d3ff904ca7bb18ee241b77f8380f9f1927e8e28a59b1375b5d32e83d3c24043898a3e99f3424fdc409ebfa51f564a9a8ae9b8f7f6f985be2d7d1d4c6021e5c7f9d12c9202a88106d812572ff2cadd15d2ef9fb371a9911f3259a114ab4108b735ba959fd9d04ec0e9dcd06f2f43309d251d986f80c7017fc506891083735b128c7bfac910812a2a5517cc47dfd95c46824d3c9786b65e7ccab81c51c7d66271cede0076709ca02b224b0cd25ce72565acf1e5785748ae98884e1ff3efc9ef29d049db7d7979dd45fa8fa38fd6d71728aa633938bbb81e762cfca9c583a80a0becdbf565dd03feceab3c1076d151c0fd484b38f1ef7726f34583a414a1d9e5aa7e9a7a4a03af51d9a8273034a5ac33f295128cb023c5e22c49fbdb177b2eb40168ad7e838538f88487772bfdfdb65a42636afa09fc18bf630f2afae5d7907cac8eabea25b23a851d8103b92a59cdc2d7cbde35821460af54536cdfb08d0145bc5bf76f770c8f9330f6435e128c40ea3ca67b7cb5750587d8362e217f0de72e673b2b1d24cb8072bde6d28c7b3e0c43df1481b62022cd3682bbf3ae8cd6ab5e4a1f96638459cf56b9787cbf3e6bdd6521f92707b78f7efb834bf1dffa00adc82cfcc79f8ad480b96677dff8b7e1682fd57b7601fa235fc75a32346b7eb3783d5c4b2e77ff9084ce69cf9d45e1c611c2328624f31ebd7c709e205b0c48ae5c4fcf8bc09c8c92253d17151d241c11e0a5464890f7e72cc86ddca8ded67ac144eb2fbbbcceb5164d8435fdd6f3ea0cc7801eb5c2c43bb6ff2c92c4e9792153e9bed3e0731f480995b44ce139ce1dd93b21b10484643392694b334fc2f6b9dc4dc6708526dbf78f2a6aab41196b40e91bd59b2f804b496e5e3ba789c18b1d6c8f9a0d36f19cdd7e80307b3daef26886e34654777b8091e9a320d197dcd5c023035c4604c96443e2d1b9991d28dfe14a345b5bdf96c5661a97ed8301bd6a06b7a451800488c0ba7774946fcacc4f8ba6abc852aca4f5c407270bbc33696da4f1d4970fd0095ac532fb47a852a96f3a5d096494eb8c079d2f9f1517fc7cdfeb2f6878a304587c71b928048367d2d1cf06a65a0febc169cb0142784911f2b016e4044687c2e6612ce6b14b6ee134e5378d39d5bcbfc4a7fd63b3f1c08b78d09f14d2d4662fe15db448d044c438f6e10ab2f1bcf2bdb98bc02c334bba655fbe0ed975ea4ef3853285a1a499c80a65d20b88d89c38010d2e24a9a7cccfff0c648ee0633f93bd9326516969127c9b799958f78ad907eb26a5df1c78376d9e07321dec7beb1cbdc5ab194975537550e618b73c3fb90d9c3047a2383752a5e98dc62252f857652860a842a20d69b133b8d80d641bf61a7ee8af4ca71d4f9c6dbf9ebd7cac100bb8ccb58b04090b3a7387d2c0d4dbd4e9b986fc1f845497191b55942967930e7f2947e632b741c292e037425dc4c9f948beb1ef8de10fc5dac5e9293624ae55c2bd99e3a435d8591973499eb9bf017606c082ef384279d6f0a4d2e7e15a32008db9e97806ad4546e9c4b81971240ac72b369a0fdf206ae3c7d5874bd6c2081181e693d993823eec5c926f516ca8b9c2b85b44995f68f6df78d79c0baeaa9ba73c1119374aca64f1fa3f4507fbd26da910aeadc3c6f9c635ac0e49b2a573f56e388b1a7890d0ca0079518f0cdd7e91d8b972278e4f2a443ea34480d094132f6260a966229c9345ad80f341be7a5b73d7e52f7cee974190e7f5239b4bd4942e403e4515ca1f458f5b0e71a0b4776d6cb8742f54c5d7fd510e31bc8f870493b5485e3bb49768cc395e95c07d88bc8b5608cc02aa4ac70d4f56c902ba6f7cc2bf1c50ed83b7704471ad8ff30cd00ee252c6e6fb4ee40596d68bc55034a0886631dc46c0c3c3947a8ee4c2c741b55070e01d79b07f983eb1fbd71adfbf3188d9d5dae49d0e7c8a73796f4f18c1c78b8942dddf7d888efbea9f51f4513dea6209ae863071c75befe3db11926a61ecfc5637e2d8027a4f16c24db50629b5d3caf78e5909ad95e145b72332fb613b8c7151fef6aea1edb8f62ee34da050f07b393a10f0b4c6f199808c559242494a6568cbaed99801dad35e170c585c92a05e9f7aca9f45b6c13e4a35af60c98f9c9e9267de67888e770156d88c6a401f193c4af5e526ad79057e12381aca8f451402849c97288cf63430e2c35cad910a975e9dfdf84e4791933987516e78dea2b77d9b36a0ae32adbb0aa29c90e9decd1910d577369d8983e5518aef83a6a780914e6fd50f8d146a0453071c15bc93c4cbc2345dec694e58f44de4b216b4aedc2177526c36d8c6a87bdbe46f3975e8adfaadad3d52f9e21d2572ecf37763b85a5e63dbc3d26cfd2636d03fb7096f292ea0e141b9a76f996345181f3c112b61bf42dcadf6987791673542d88779e41f4f7a122605a3ba20bf975a23cbb644ba75f1ac2cf508f77533bc26a9685e93ddfcb3a0ea6c2fca4d4bf0631114ca64790a649b210295316114b33cb4573ab34b841d9bc2cc7bb25224e1f6e23c2c435ab1ab96dc35185a17da1c8aca45d60aa51df5c05515599199eaf6fdd79f00604cbfc13cc5fb9cdccf189b63a696ac2e725d3fc468cde8509a430537414a3fae2a2fe819dc93730d24a4023098a32332b6c2af4e0d8f9ba10b57834b9381170e061f9a4333909834531b005a3b389855b92c218bf9877fc5c055f8e7dc3b22c17e510c31f85a6b2f6d5acc212516387b465e9e351df8de065fed77a4baa1644244ab3df342acb4222206f1404372ac6c3f80fa7388b62ef4d6d52ed0ab93222c96b7972e8117fdf68a051d92ac74943b239ff9f83eac4cbb3645ff713b2281158c241f78fd7e33993b03092ffab9cf46812c0934a0580e3efc7a2d10c917f991fd4334f8b599a33955ef6bb6dbd298ae5a79888fa34a1fba86361c11dd6b99bc1e8ae3746f723c031c7bffab7dc36f412340a1ff45a92f1ea93e19c7dccd19f94815c625b4ea2605c99f94248584d42b6a1bb0632cad7266a7db3979a21fbdd4f22072f33735ac48ee163830d883d1f4310c3d7cac266d9a1a5a47fbf5f903318d8e7b04ee5a6c4dc8df66b426215691a6f7837724f41346508cbba622252f22d76504baf5b4e46545bd52a82b3061982f238d56c78c3a88bb46cdc6ef21922b3d50dd7d677346ae60b836e5ea7cfbe1d3bed5acca7a5110f7e28cc910a0b5c3031b3604f41c9d97ab9abbfcc33f021b8356887c30d974a5a8bd10c8ba094a4a503bdee23a05454186736cc70eaac117216045313edcca1050b7b1376df7e9d99e4415a0b7dab11a94163b9d1a635fef1db47bfb0f493285acb657d623b7ac9fd670eb9a261b85876f99146ad501152afd0f510e9ef940deec23d62318cd88a2f91f326f4d9bf47f7cd9851014923a8c6d8f1a82f75a9250506b58faf06f86246051fcb624038167fff46fcc711721487a3b65dd6ced6565367fde17bf08c2078b2eaf4b7b4cfc934acdcc870002bda0ed798e86e2c88d5bde54c9aa6db73ee1db7fa2684d49e03eea8b835390be20473496ec9f8914ad473f6477335ecd88a3ec325151341bf5da331a4d762827c7fcef428710cc90c68d732cf14cbf53280bd4d9195d85ba470883a8a8c3680eae44ef1160bb4e0c1b8e2baca52ece81e3365f2b8f8af17370a0bb29e02ceeb6402d6ffb4a278bef579f7cea36f99a48d1152c8258fcb86529955dd41cbe815a127d63dc5619a8b215b02a6f562018ca3b959b5ca201d003359b94a48b79cda568cc00f5c5e3e663a6293cc8b18335dc52b8c5db1e8ca59594db32d991c28e389655eb69966b312334ee4006ef08888bae03f545963595b60e257374114bc22725863cc19a2613a82f8c363fb9c88694a1e6b184073771d70558b4bebdb4117cd19a08692294adbc0e015d0bdd20b7ea5b0c12a658f3fabb9e061dc17f58dfb353d02c3032f206bc5aa5a007753d3933ddbed25e97f792f936833bcdeae5a83cfbf2f5cc4c3168190f1c775526eb064cb7c5c081c992e37e2bd743f5c0cc1dfd18579e54cb685dda475f2e1a6dc4dec1a06a138b4d67cb08ef5b829087a232cd3984b9c4c54d52194044b6fff80b4655d78dab18cb9757ac70f0f6b82bf6aefa301d637c8b6eb282a010deb119c6438052f49a6bb3712f50d204d2ceb6432fc4f2ce6dc1ab34ebd71dfbd8623be377ecc539f3ea51b76d316ff6b9f412fa58e03e50de3b8eefab6e67b19d45738df9f873109f9f6ceb855f32765491dfc40af51abcb5759b6946b1653d5e151cebf735d0b8f3b974407e3c3df38cd1558ca7221dd16d61f5c9209dc8e3e68f82e870ebf1dabb09470d7901de4376233ddd367786df90d1bfc4bf44e6d52bf3a1da7195d62bb8867ce9423ad60673b9efaaf9772d7086fff85b0e4be9d0ae87f00c3e607488f5c94ad35c44f176850b6f9d3e9c38ee0406e2b22e6c4f04af143c8c67b19c70e391f400c4d6eaaa4454885db5d3a8dd9766f7b54df5b7d9466796c05e9cae0bc941ca3f8b75a57bfa1309913cfcb36851847999a9480278b4d151a83d6d1921125dba0234feb08ada8c03792a6bef4d0d2785703959bc1b0ba80dc69b23afaef011728297202123184523645c6a4a79a2fdbb5e2a33e19e74c4d21308f0c606fbaa0d911adfb3eedd891167edb5d8d1ff147d26b573e7c9fb02408d5ebb2fa0c11a5903d91348b9cfe8e90c51fc6c067861ad15a5cb1f4891c5c6228f9ef201d378a0d16fe7a3bccbb5bef1b26403636f3c1093478163599e70f7279467e574477e10520f5a8b2e16872d79e806fcf835e22fce61ed129b01eddd8e461b0d65b909a72e89c1260bf7b80313f66f25a417f2d55338fe6382c3296e82766fd09c829db3f81f43b95517e9f2bf251f97b692f11389aab60062299500322f4efac331dfe77bf85ba749987c55c8f00a5c5535c6db4ee2a9f5140fa7dedf54568ccc6e18f8322f5acd35f41903d78a1aedcfd83e28501e82f0a89857df84dc5a6137f0b9cb7fbee325fc352a35eab0aa7b7cd189b5bcab7fcea15ea2139bb4e19f5ab6d13d89946dc06ff95e7bcc7a0c0ce330bb49723af07ab0300b83e116a5fc137d996de071c5070bf429c00752056041674c8dd654bb1df76b15f82a6316cd9037e99e4f6c8958b87a435d84dd4cb1b1689973e3eadb9934abcadc89d3d5e91575c0aa743baee7a696254046a50e3c7ef96033288edd5b714837276b523961f1c0bfff08c7faf865c08f1efa6d6d996bec48cfc032617807c1ed55727bcdf9ff6aae32f9c88a65c04505bb44d0fce903ed572e86079f1a208e827c2858d08470a9f71eaeb74e7212b44d39065c45d02ce77ac4f83ddf42006d0e60d0b9b300afaf2697299788f6135ef28203ac433b923c00cba76800d5be63afa3f1299f8ba1296fa5d8c151d25039c4bba72ae800b0bf1f09176df2f63d0805056d4bed25a185285c3d3414b5c9dc56c6cfec984884db6e2c65e43cbf81b0b6a82b2eab44d89a4a36d2681134775f7fd8d1f3acc5346669b1342c7733be3ceb76bb871e34f184f407c95bdb30a932da1f335cf1c1305cf15b9957d096b61cd1876afb3a4a3e01e87e87e0db8f7cd94576bd7a26f89928c93f0ca68a08480b1aa0b39c2ce9c5340c33030dca3ee18b6626e7ad813efe2e1a59a8247a7239bc79bd0d9fd151dc85eb465f213b8bea6821c0beb52b01ac01efb431a489c7aa6129b370b63c46351f32986dfc0fc963d923fdccb8bf8c2b0fba29a93c3692bd7f67d62004347c97c53380f5dffe48e3285bb59eb8cf28a798ce9f6e2d11d350fef3ba938bb3df9be46524e201159fd5287be3e81c5f024c72e2e93307412feac994ff7f1368a5221ae156ba2932393be67bb9782868e6ed65942d42b3ff6e269e912a6a07362d6813e70604648a45121817c5619f57cc770fe4dbd319194c4bc538964066b3b4e341574175a724e9a6f14c241ca28b30f3b1b53985df7090d4b15a6dd80aaad959c939c114225cc64371dfc984c5da3e30d34f781df07a841658cdb75da399eccc0b3610acc661d3fc18d6d1f1bb0ccd5863e05d3253c0ad4f17e976087d341335631c372d9db6808e3cfce5cc775f25f8d4f67d681561ddc3d20cd2a8e1e03a2aec5dfeed4ab52f8bb461b2658c01a141d1060252e78e8eba941653dc2438dbe9bf90beda4107f950d4d869eeb59912a023e9012e710c957ab6ed32fea68c88629fefc002082dc381f5785ad4ddbf00d80e5a6c0a41b51b9d11fbb524045d562fdcd82f2013fba8f7c81c92e6a480b0467d797f0aa7f7f25130ab98bd5de309ad3f4d97fdc517b06fe2e392fc78dbff07654ad1d3c9532f6fcbef8b9b2d871c93cb73f5da377ecf64a1b0170f8046100d4837e863bbdf176626bdc18659698eba72165b34900046d5aeabe8f42e29c16def8a63d05cc56477028d89a24edb88fc53241c8cebbf40ecc4bebf353661fa7e60f4b3b36dc2cdc0f3ddfc39c4e3d052942e901af0b4d1c95a183da58bbfc677910964483aa8e8fddbadbbc565bd09a4b0ea6285732a36e31baeebb7bb873eaf92c1f074f9dc57163004b93c0c57c7e502b37400d5416db5c7b555c459f241bdb8f9314a12d848d3766917025fd4707e41074b7af96c1ec4332929a25aac0308d3f052b62eaa4256206a1502ad0af310f30811b629f3cf1eaf4a6c5961566388a1ca5a6e3773442b6f180ad08e04431c2cfc27756c726de6f31ac2d3890518cf8b11455013ea3310ad8971d76a80b0186fcd471259581e8d28e0bec109c1aa94122faabf4ad79bcb4e5509f2447108fd328a2f30c9696cca2fa74c261407415e94f4f7be7d98baacfb1afdf45a7e875567e4e55d423dba7dabbf1f3ac8483701c5163ac7f19fe08ea6f92207f0819c5648b289d26abf09f9a33b3b9998688b0fa7ac72a05af11e7a071648d2500a7b95f86db2a25eae126eba7285ec833f1777edb382bc67a8453bce1b8de18ada7d50a1b56011451fa9772a7f6c81ac1b9bdd6a8aa2d68d73328dd7b5d2be896859714dca7ede17f973f9a3c19a81583c98839b756ad9fa116fad871636a14c5f1eb34e13f1b42877f3cf335bbbbc2857fbb7651d6b4da0da1f762e729dbeaf1e0c96bf9b361a93aad70a07b54e3660149726e40d56d2c636425702825492d437330ba08f998173f5a6abd1f98ee96a906e8b6c37b664ab233bc9d004b9aa8cf0e7011ec1ef646e8fb422079764756edccf940c6e38723db3b512fc38f7cf4ac50441d628eb84cc046704e0c16aa2937c3efe65ea83fe328bd17bbf64d69506e4fc353d5efab233b5ceb05df003f5e3e82d2e2ac7a25a4e66a148fc5295aa2eafbea3ea20b9c6cd538ce7195d7ebd0a0e8ce07485fa30df90f91403cdd6743e3e665b36d2f0a081680782b589485805ce1ba8ec89d4e73e6c8e6be6279ed2cbdabf686ff9285ebccef4cd26b53590d27d9f50df9b769c46ef62b2e4b65b0bea839a5cfabec71a2b352d42fd6bd2547d63d36b8767cb38832287c6605309478f6bea9ece72c2eaafa2d387edf3c836733d389347fc9a653aa326e1b1d9561c4279bbf21d04dee6ceeacb119ede555cf3bbad28ef4f535b2924e79fccace607b5c7f3956c8d7f71ca3b81bcb980ccdf8603dd9f0bb960d344eb964a682f9ade1d25e6a603c50c15a894fc2fc36d2bcadf2c739ae075169ca7512bb0cc4dee8c0793b4b9728adc9d61484bfe0003c11b30c42b61e02327914b430f35e6f167b514cb82c7c860b751988035b81fe0df94064bab836548adfa1ec4c1ec968d1000aab478e147ece7663ab54472d468a33003b629a9fdccc3948669c4d87c97022dbff094519a78db1cad3a1a74df40c48341ececdbcc7aaec162dbd9a68e08063c264f4f13fb73521838b0150c4cd67c712b4c93d96f8392a83c59948801db3c3b705a0bce56ee20e5a08f4bc1afd67de882262e324bfbbe42563334fee394df8e37c95abb251f7fbf1fa4cb5d78b6f299d53d2c40645b8599f650d6aebab609c4ff0d1023a2e2e906198d378b0d2b96dc394c1443b8fea1b671a9f2a7354c96400bc720570a3393fc503fa9fba7b2d62d287d0f2785a434091acc2a9ec5610c627f4f5859d0b562afa181e95845080b0381f343c31ef148417f5a680972889bddef2eda94f42e8637956ef6730db2b6dc5242ff98baefeee31c894b36d2542873f2a474554c0892a3a8f7d96ed276decdc0f1b05d1388e319e1a2e9a674e16845ac23c3e61fd23139665fd0da12e06ce97dffb4d9e40dc97ac284db5c514a116962d120855fbd68ebf7bdbe040abfa647ae5beee507b2efd6f11f9ce61c30107df70a6b8aa92062284d7df9e9e7a5af95a26b3192650fae4113fa364a733adb5de8dc93807ff5d16071df5a8f3f6a1e61cf867ebe0fa049de4fae4627db8fcb45ca8a04045359e5ea3a77a9b417a9a191957a0cb18c466f31006943aa925d8aec840ad09f8610c3220cab4e1ecf41b4c2ed072373cac53bf9246c212bf1568d778387b50d1afe9beafa385def32d5616fcc61c5fe3d44d4cde28d3f91e92ea34ddfdff2837caf4bec54aee7cdba4d1b2221b22c8769cf8e0cbbb6a5d6e21e901f1825e7faead0883e21efa6cbdb539b1aa795126664d8aacf4a649344ad64bab744208594d3b3a54ff2b4f04cc8d7da1b5a9ccb7706b299f4ee295e43d4c1e662c8cb958ff2cfe0371508fe67c08c155446cc31f00715d772ca2aa0d7edf9040481d3ca70403e45d5edcb81764b68de90961c5ff2bd9d518552a1b626d2570c25121ca14b543e1b5319308fd35028443138fa37751b4b6368b25c909cd626e896693d135590b1e8fec23fd0ff0ac9058828c5c53e45025aae0e3ccc8c41397472daff1b2a4a9c018d71540ca63d10d79f83536100570b906ceeb727692c64898c33e1087423aba82e759efe39ec03b593b86dadddee9214c3d6573de7f3001aaf06979cd4f2acbf1b09a17c2b0c6e4aeddb4f61e8b326e480733993af266b5e29ee870144f01008722db4ece7526064bbec29e35a533db1e67d8ff96f9c861189fe4a8c4a536df38b38840c244dab765205a0b29b5fad3ccaf01e396b0035bd8eba314ec034fe0331218f0728626730e9dc4da35313353e9cffc111e0a3e216afcfbe77fc5021bd418daadd17436f2083b33de7203af2dc12b4e488e1ddfb6bb399268b9e3ad823c1c27c19728be269dbbd6fe9b067eab77a0c09887a97701e4becd65e5ba949cf5db300d73e05a388416b59f84a35857ef0f247cb36e43631a0e9ebef77d33e89dc7c071aa918da259a6b64c015750e19056cc61f6bb0c6e440bdb804dc2ba67e06e3b474fc6b72fcf52f6b96a12936618ee944f2d69f9e63f0ea449fe6711200fd79fefd409e98cd70bc40928197926aa6c4932d7930bf7e3081c93f6ebb39d214723198ef5342654a062779fdf5185b1b801869b2162d7a96e737f79604740e9b386d877882a6ae6bc55978261ba6d3d19a4e670e9173e93c31ae4968dc4293256b26589604bed8c99483afd8fe7be8db6741e44e231c9ce4d307e14cf8c60451eda215a706cb8a5979448b7317bca9469814b491c13b9a96644c0fe6d3445d0e4b7ed085c7cf28846bb2ef5262f03be0e07b31acf5e430d9823c21dd05a70de2f32a759e7f1128514bd63253618580786c41fc15f2b00eca6bc8809c9dfeadb64568f235fd9d73b5bb2be7e975494e5e99c407fdd63d70afc699a71ab1fb3d25d0d1af20aac2e0babd23769dc9f1391bd774f95ca7ac5cd21c87e1203d73f554b35054613c92b37188a28ae56295eeaf5758d7338d21f2b31623dfb79de0a4d47fa4dc69486533de06814bbe1c3216d3ad88062e1547c2ef082e18a42fe2a50f87e301f948564f54990c6678f627d2f45fb49963fbc93e5d9320fe1b1fb95b401ef2efcd75c452f33385e88f98b8c308ee9bef00fcda354215a2fe2103cd4302f00d4cacefd3a933b89fec93fa8fa458c695a1f4dbae5ea88114562ca82796e51a458b6a5de9b5b873031269cd356fe12b0ac2fc86fff527af08b20458f575a685fd98041331b2d802cec870ac9d17fd1ef96aadb1896ab996c5a309000ab2e9836dcdec401ba88c71116c5f1f9ad35aef729c4ae78d196015c5e23bd25b15a1a01f341577da73ba59502ccb2564f3873c1c6b8f4c521bc0ac375fc1608347792575226bfce4d80aea04cabd5c184a8bd0b07ebca99f1ff16e7d24c8be403df3c0211ebf1876a6bd341920d3cd352655ee7be0877f435a20baaf0bf3e4f3380b7faa1353740eec2de2707eae1e1fda0564e019c8038e7fd3a8173eba72245b8f22eedc881def3df8665ed4d0269fd44cefd4a2f4e3d5d0de23b38769e9fcc287cf9b176b9aa009f5292cab19e96149624861a0d594f1386053b779a6a8ca3e52e1b44b0aa96dfa789a95f07c8d74695d7623f3fcc7c07851c4085da8477f8c53b91262e8f6e56d8d134a91b73ece2be9e5ce95e258a36383f8c1f48b61312a604de06aec245af8128d71e30cbfc6a59919a64bbea4ff2b143fb2106d8e9bb63e3f1eb498e264f9ff8722e1561e98f363b1059f78c9bcbfb2a3dcef2f0e9ce1e55020307dc85e402d57e932f33ae5b0faf4d82f4db9c934417bf672249db4ec571b0c2c20dfe8c062e2470a579e300111032352f8699645a894eb1eed058abb3d085f56d76c6357964531cc53d56128c64579fc89a798dded5c5aef53476874a3b069154bba789d8e3a8f8b569b46b3bbd28406383cc8b5e05515f9f68fbdb078edcc2d9efa91ce5b0fbe532c0f0d3098eb83b7c92f2401eb16a2dcf6e49a3db61801b973695fbc58080f4315afcc76f8e9c7a476da2d29deafbd081104366c4b38d36b4dfe52d3a57046753009fa81118035e05268689ac9add4cccff46af2340ee12cfcc9242f50481bbe8ae4f3d6845dc776a233dda02e328a3bbac7365b5f5320fb1c304fbf9673bc335a26777e29f60b3fae0d9b54238534ddad353a0737b55824dcb3927bff8a498930de2b8dcb5ea2f7f3263296364b5f32cc2c3ebd0788a2cb78fc70a82ef057392eb3163c24f2c2b5cbc8371b27104806a6dbaaca8d82f0bf420bb02bb2976e80806326918cb6b5a3dc7bc48abf2762918e760eb45a4185a20c5adef0320c8b27b426a9972c4b580ffb87f5a969fed46b40c69c75efc2795d4cbec95dbe8b9f1ea78ad428a9799dc849f36c984ad3f84f3e8aa953ae8736ea637a03d719c40de722d24044926709d0b847cd1cfa7ddeac99dc303b0683fe67ccdb6454529f30ce69f367f813c936553b6f43012752c60809104eb2799562821d228805fac5d3f740142bdbab6452054fe8f97fba6baa3378f4c75863d9cc272b304c06c6f8b73841c85012e5ad9fa9ae6da2bf4caeb2497c0980f899a6f68fb3b554237e2710c17865fdeb5c3bf1154aedf25ffc8abd8555e9032656d37192571588ae70370897a77a3f0792623367dd532316fb2fdfe36822fe70fb62204dd7479363dcbf3be1a0d1870c4052e291c1437159611ddd935bc8c424a785ba1acd62635c029f3a019b6f27f6499a9040d0469e1f1b3bb33b3a41ca98a6854bd96036ac15d22e087e78b4d8e8742e6202756c6fa9ff730e0a56362b113702b380adaa6583610ca0be5311369c759793c9458e2c5f668ad398c11b252f31a12509d3224935a3d96d94d7cd42531234efb9bca624bdca52969f97749af18133aaa1ee30568b0c1dcf952efbe0645b225947edbe275051c1247675d5904593229c36735352fa1d679d48930257543ca745a44ef90ac23f3ff966d3a9b12606df2b489c494160ff319e1ccb34d479e7b03e80f52827f6b98dcad124eccc4f60f3db10f5c9f068a2830f36165fe63ade5e6116d735da355613fd1dea53527b8f4f04fc2d0b6e021d3720085eb103d39750e08bef47056d5ad22c7d1ef8da33645c516cba9c8de12df677bfac3002ac08da819e65548d76b46da67dab079d34666842d2f08165161d58ab7c3788a0468c231da30531da78ff92ee6ccc04fa59a409aa12a75fd2b06a4fca5e854afbb2f3a821d4adc35b5228d83a8a8be3f3216222313d85d1f174fd0bd35d7d9b1999ba8110f0853c0016839bf508c386afbcc450d29288a9a79fc3bb3df564cb62d1a45afe271c8bbe9763bd3de34b5af6ace1b35edc70f11abbf71f6f9e19a2228d460f175ec1670f098b1a667c4434b8f8d01af810120335837bc1451b0ff9090f396016b4be5b6fa5fc867513993a86e9a4e4984cc4f129dafaaa9290dcc9aaf3fd58ce693e2ce06e0ba9a5053845175d691288166ccce7ccc8f398706206ff09d396a50b02ed67fab27ce6e09b18c5a58c4eeaf7d4f4a6a7a8129135d366e3bbf8c714f13fc98c4c8d77594695df0dfb53f72f6258e6631af5e32aec28d997062d69280b4242dec5f73dd59c7e7e137a3d8ca1e50a4b5c6dd78a038ed1643e035dfd0403a03c6d1f399a659343b51bb67138dab7e92b94c580d9302c9c2460ffceb95da82eb64e77baeec873e68811d9a6964b8ac25d537997b8bbe930706b2547e7fcaffe671b6da5acf0446d1802541735b6b0cf09a3744a1a1fc69d6d2db5e80640c204e9704e797083bd60d4a11f6ed2b5974256d4adbc61ce37c20a5bccd51f99d9441f6f5369465d06470bc38ccac6318b36c0f8a9bacbad96a3cd0ebfcf780ef19aee3deb95400c4dc4e0e3a43d8eebccc5ad6811ec519356f40141005a67b8027b1d831873f953264b109f1a63f4f6fa3a1c3d54f3b5cd115889549a21cc45564259edddedd4a7c0864f39caf7f23ac69813d75e2dde9d632efb8c37ab4a761ff41caeba22d3b5e6e8bf17ca8feff3f8f1b55a5e0372b692eecf90ba8948a16c7bfefb36b78fdad105a2430bcea631cd4b562c9500b0c20b5e0bee669f462f65cc8f8b802899a9cca768eb89bfbd56930400793f1eccdcab2b3894992b351fd87e921e17a1a369a5c45ce20d3ca49ba8f83caf87f7c016dbb98e5711a7f9821abcb5f388273b95f0be3e1d7b6e2d8abddfb5028bd762f57621d06fc7b07bfd359a77503f38815a1b9db438b2e605856c9c7de96dd3aff08cb7b5f9578d344a673e0cfd5a1c321c4e20e0ef00d7f83e2078759f8062ccf4e49fd474fafa6ab7ec605ec9a08fa6f11ee52aa5225fc83d4a853da37326d8e35b367c440a5cfba5240c56047687c62414f831e0d006375ee9a191389cd5ca100e5965331f7aca0afcb09303ed2ceab4f687bdcae3c9c25060d4c8e64879d5c451ddffebb563c7f0aceab6a0e15b76d2f49fdcb202587c179cfc69f7257258bd81b9ca7d6826aff3cc8b19b825399a6794139089e469578a8a136efbb1f45aaa97ad6addb6679bc7abcea0abbdb1f38b7506eb66204e4bd5e072d544c2ef94b0967422635f1ec3b001c3e7de2cf5080fe5b932028e0f9df931dfaa6b178f88e8c5c8e64b47eeba09ee528f3cd23c75f43e8a523d36d7b647554e6cc901ccdcdebac48736f3e8f0be4579f1b154725ff22046ec97d36b02e91ca416ff15be2614346b50a78fb415d13183ceae1f8751f26c4968b7e2f056595cdfbe6ff19d937dc35f0c87895ba3d81d77cca8ef8ecf941b06ace84247ace83e71b8c00eac7102491a9ba2b646b87df6fac9996eef1daadee4889766b1f039eeb8c55daa6d6a003d1f17280e240bfdb753177ee0367ebb93a788d7139d0fc388ddb4f7b6f15cc8ca061f2cf1bbd2aa4c58a1d7df6bca8186b777ddb4b47252688018ffe10f2b1ebb5cfd2803f71a69bb71fb292ae8be6b8309f183389a8886b801812da8d378bb2ea3437892962635a602ff7f7c10731cba813ac982ed26525d51b8fc798551cb2802ecda90612b9a18d067e57f7b79ea6f01f4506d80ef7e2986072bf003e270e96d3cf41bc8ec3aa6456eecc559e060828876dd57da3a2665b57a3d105ffc3d184e75ce953f774cd9aee12ad530d3bcb91444dc486d6c3aa4c46cfaa0e7e4bbbeefcc544dd98418f1bfadb6453bef72eb2894da9d1efffcec2f62ec8e24fde7124c58d5b6d5e17cf00708b0edff73a7ec25dc0a4c050b842efe5ee360603db211ee488734367e6afc25bbb71df259b654df2dc2b07f7f3f075e7172bcc01180e90057006f8fb7670adc2671ed2c01af0f166afbf102cf6cdba41f6ffa191caa34d145be3d9ecc0edf589507989b9ad3c0c28fd4ee45549e3baac576cbf08ffc034b30a11f615a8b5c5377a6e820a619f559e40ec0a94a3d9bb9b267ec5b5a37b93eb26c43b8382121d1f1ffb68fe0ad25744c91c801ce04579406e4eab70b90b176124720ce0aa575b2e9c77386c46b8a83efe7551df8840b3ee1d4f95e852fc0e748409eca5d008c5d6238c57f5168bc812cbcd0b4dca03b8d76e3d5d6c1b178861bc5ce923eb00d23968e33aa246a28bff8647d9cd60f47bafbffb926aaa7498b932b3597c547fa35a88be5580f6b513efd55cc5e53deb06632dc6347cf15672fbc2b9ff235ebd55031f46c1f3f1ae3442aa83aa00cebb5d6897128df0af4842cf35f8d5bf3d527623112a3eabb59940c049cc2ee686b33576c7918bc7eb0618912c92baac0d248da213295a878c0d9bd9e13dcde8f64dd0954f434be26aa207d624ddaf46ec58174fd2581517319681e1b140d989734c591afa3b32335b774739132458563237a9513c1e16369e2869d78470a331408305a748f5369bd9f9a7be7a60d282175f698665e8b2576ce32a8bc7c678b3b66bd717982c130c69f23ac893702994fd9e6a82559d83b8844106fc224d866c2a4dd335b8c0cdfb6e78f45e95ae70d9282c5f78b94e56cfcde2d8881d6ff13926e983ab5802ae5391db99d69e7cf21dc34457810f4de9bd3ec96163dccd2e27744a352f5748ce418d90c1edf9b05a3dac94f6c5ae25b52eaefb561d8638618faf9c76be745c3214c2797dec894810574ae5465e0cbcb68501e8706819f114190359bbf5f1034f77208dda70dd9f47b5a66e78f70a0f29f5fe49a2cfaa43d0097f482a815badc392ff0866594d060f92706ae642257753d785fe868173e46c479060de3d66a28c26949db5347c63f9d82b79f185b6876fd5ae36f38615a0afcb68d9533b809d48a5aef0872f06b3d4c563893669f5042ebef75ad3c708bccb295813daacdc9e2174bb34103e5537f77465a1d8ce6110cf3e951dba3478683b39d2f31ff419ba2176ed9a428a5767d541982bf9303b0b93e1f650467daa6ba9525b63ec159b7c06fd399f9dd6bb06a07042a664683b6c0af9ed3e647f26902569489bc500c186e2874a139e32a422d826d5f375e0eb012088373a6b8e2f0f05b46f0bfe061fd93e78d91eb5c954fe719f444b1d4f8af1994444e4f17cd83b20f6086a3f8b26a18ee097d4d35ab600f15408f186628c9c467d22428e7be0b2a613abcdd2f3ba532c9776f4f88aee118b4730737a4e596a4800ce7d4f19d97a1e27f55271e2eb9cf2938e35da48ba1ac76d70c6a327cb3175f503e497aa9d70a5983e8f1b9a2f60694d04afc698356719fb70f0105c84387e8a9038beb52a4cfe3d2622e9f366f9ed804872f14571764384615ecbdee69b3a4e2c544ad5376321e8d8163f83f7a9f8a3f75b8b34be0c019bb38ba808dcf0fa81947280831ec3edc87591404c234fbe2065e1ee71a117bb5d926e8d7942230bdc6ff2044d2484a65ead376701dfb3ec4b78589994def45a97aa07e85e593449f0b98566a68f0034e77297a07a3f258d0849e6dd28c222d59b5fc00598257a657fe70ff54aaef1554646c1d65c4806cc2c35104e02b36bd14cca4ab64d4287410281b03f7527155dd48fe15b29bd1b67ee7ba97668e1abc880b95022c10c33eeecbde6c05e34a83fc5d18c69ce853838a21ec9c1e14a3717f64e1afa54368c5c2a935ae6ce2709c1d0545830a6e3b30de89699e4be30a8031a52db22af65dc2aad84db13b417dbabb4ce52c3bd1fe4243d8abf635426a4ca9dd34dbac8c6bc7e8058abbee022e84c2f4ac1259b8d88cb02e9f5a312f43f7faa8429eced55f2a8fdc03204412e62d7d46202bafeb485f56302534fa8dfae452cbb92eb63a8a01cb9a01c204f72c0a35ee1e9affa992d04ca591cc739056d61cd38feeb5124230e2e184676a2a28aae1e65587b4353c1016372d4711f80591c531ce2c24815f83369ebedb0df22a8e8c72c944e5dd91cb6666b56b736c1518d98e1434fc15bfdddf7c95e186fc23664a0c52c5696b21a2e6b6d940056b7b747fee11a92223c274afc425f627762be2eb3a1a6376e73faada31be76a1428f0d9aa20b396759ce1cae903ce37feff912c82d23f679268205eccc7ea18a258e9103e45c989dc9cca5675add218b3a6e5a4217bf3a385f44857cf6a343409b176eb45ff3d067d7a947957abe0cbf560aeced4a16885a5b265f3b85b0a8fa82afd8cdf9cfe08b04d61ef9c6c9e2589f75dd703fa3d6f07b8af1eb8c988fd7663d67cd8688a8eebcc9b87cbc9e999ab2f8c688b6b7169de11798902645a501178e386b41c6298e747ab0e4b41080dff301f4d277f5d6628539906b0e12cf5c63d2ace451c715157ae75aab7fa4b0b21da3233a3dd43a55f49fed8716514581511daeb5d1ddabe1d99083d4551554511413d92baa21419dadbb9ebcd0c77d0f5ce7880255eee7998efb38cc88d2b3420c2c3cf7687a5a92d745815b7f2be6a61f8d543429f300a70531a9a27c7e1cf023ec89f7d3d34fdf1db986fe4faa6e0959cdeb8926793732af3f0e3776709066c2f5146ce2f578ed0fd4e8242066e4353f4e759f2823f47ceab7aa2386314aac680dd61f6bfa4210441b6e928ff21b8313167c2e002536ae202cd67c61000f54269e8c4231d3062bd954bea2f0d8eb0539129888f6cb516f49b919b5495151388d376f159ac22fcbad0ac702bb13f7cb4391a68ec9f0fef1657b5c383d492388d3096c4d5ce0b1f0c80d3082819547b537c992265d87b739b81220908a44f98fce6af94cf498d0fefdf0dfee0fc2b8f69d51ae713d1666c29d24cd2288503ce8935576972a2a358fca8a902c42f3318f2fa59945733664defdda0fe0a2afacf3d9e91a2084295521ca7573fa59f5b03992a6bca91a14c9652d62446c2e5994d7a3e6785606fd28e0e092e618158724a60c174f5ba1f30791026bf39c6177c95760338c12536232f86b8338c189e016032621f19991a8de1895ac5e58b2e98040665a5bc2c2e8d2375b307da1db262822dcd0d3be531d94f5cf5d1d2a54c2f047a40a287bcd71f2f3144372ce2ff758c17a9371605fce86578bbbc81ef5c6c2916d952fd0c5b5f56a6aac735de2e424c325c0d604eb4f0bb35e89b8b8f4f3563e876ffb90a2c10420b01d8098e4f16c5fd70d7aa447c49af9bb8acf0f39f5d5affeb541d15673a1e8428e4dfe56173297ea18a57fbb67515a2e08586e76b0136fdba355dc01008ea65fba6d80e6c31f7549e16c08de05bd23c850f0fc35ba41da721d28f6126f03e838a182b13054e6e4fd4b3ae32c81fba0e434874f28dd7107ff27d80b571c38e8a20483d576a0652b339ee23fd050290c648768e5589ae8841d6dd3b5c83636aa83ec0e06346fa749ad08500d4bfc1ff070a459eea7a13fe105bc862de54002287224d4dcbeffa9d45a17bac921a28493afe8c5e6875b58259b879e183b9411d094ba0256fb7ffa0bed406ef1587326477134fbdc5c601eaaf663d74be2db10cbdc82d1dc45941f39515c284e0a36adb1266c767103011af4ad8b5ee78d96fac3309312b42cd6d3a17d26fba836c49772d5fa3fe4f5bfd27ee05cc26ef4997d2cf7c8d72c4154109743bec8a0678b8ab6c64b58c13dd101a20dda72be5b8ab337b540275d460ce76abf284ba7ab0cee96fd5134fee0a394facd2ad2003166270525debf4847742d578eceac66f45edd5e45ff499ac1517f01cf16d504b7fd2bb63ac9edadaaf4f69e29fab011e6a8640fd1d0ac14f7305fbada8c3398ff7182670ded6ee82e69df74a55d6c60b4aa0fbd7641ba488146eda3481f29c796bb50497e79679cd4a42570998b8d3bc035c8a08a53d683d4cd4054f085c5238126684fc55f661b23e9959a277c355847ae04f63e0a38e626b4e16a9917cd7670d2db33c0d879b5dd714461ee0d60469d90460037f0c560971eabc2ef54297c5c32e7c5fddd536835e817f2307ddcb313e7e8d1ac9202e23ee07d0d365ee98cff8e24bf04af7e9ebeef23d0a8f1d5e5edd53eae22020984fc07c3434c7bd25811821399424fa1f0f69bd3a842f0ebaa791002211a5399cd5550be91229580117c7def1c6406d41af3f4e3b37fe7da47ae621125b421355814afb0ac5cbb16a93243d6a796df0498e1772e2854a6b42080287ff46e064c6d62c9cab9bc9e7f06c16c3e5d56286c956a95438f22e0a8206ed4ef5b6f26786c0879ef30e8143e5129e3bdc1faf510309a32d501e3af5d22ac6b48abe4a4ca0c154f46653c99cdb623672078289d5d2eee26f1969c0fd8dab308ad9d1f2a28cbaa0c9e9db3c9924b600dce1aac3bc4a754bf0b90165ff408f457cfd2e566b517e5279fe64ee75be9fcbc816b072e734c653eda0b0ee36eebcb1b8db364875314c84bce08145a712dfbaf4f532799193fe355fd494c447c3fffa8dedbe7c42cf6f5d65e4c722a36f824f7fb6c4ee4bbb2a1af7bc9b00ef2495569156420d5505c755cd5f4cb87581078f7a0133d3998be39680ccca130ffac235b6aa35b78612d2c237a9ef54392cbe3e6a52f05081b1a9c9131085d80740c1c90dc4581ed4eced2a49be7b753f9dedd50053cc583e3b26dae229451359dc2d1ae5fcf117b24c40b10a10fc351e0b81596e33dbb22d84e4a378753036ba727136d5ae6a7e9e412fcc9ec750ffd4606586975a8bd214bac7c1a0172f7a29c2d601d75ffaf0577eb38e48e2259b8da45865336672dfd2ed2773787b4d03fea527e1db8442321a27a1faec7c23f07878a602e6f88e1fb5a8261e38fab110a7a2d6865fad113911aebb3245ac3971696cfc1aa0c4262a1dfff49660b10f2af5a109dfd9fa0c12e9eecf479ae72a4326180d9ccc54a063b6b9b417d2ed5533df88d2384a8bcc0d620522994c454464e9115df6992c12a57beb758d80cb92baae4d867aa0d9d72e908990d8ff612a47fefe9b6af711dcb493038bb9d035ea04c30457db671b9b5ce7b6bef398bb17780c5a8019d80df33a8438b84e3f336ba61526c30001eb7376cba6fb59518f5f42fcef71986600168cf4ac39d384dd0bd88a1b5c57851c747b18df68959b621310eb63e9693ed59165d1c6ff31ce83f31465c45361edf10600fc35a5f70007e0fc32baefe3d4572a9b5d7249584b0c51c8341943b871c3fdefab823cd79e943f99880e889d61c85117fb9f0dc5820e74d0ab931805f20908c6bfb3cd5455de912fbd8eddc0168a26525001a91f4898f430c8c72dae150fcad60f0d4f85cb3ea33ffec2dfd364f315e57e0ef0eab32fff09d2d0e8c614251395994b4a479f180a1da58e1dd40764af8888990f13f3d93b43693ec1fc3e559d0dd4622650adeed6f657d0c34be92a4466e3adc536b64b0b6329da6a500076ec9f3a6a181b1e247799ff0cd86a5520d92866506c159855a64510f7bb8a81b0353a97f2299c5beef0b2a7edac3bc92a8708de576232cfa42e03719baf55b61185291c47097d2091acecdb748fa1ee56f680842ed8578c45714ee6ee9444f4c981d3f9ef7e4148616d7f0150e40bc67ac06bd031847c5871d8560f1229acd4509a2cc86290200433faa23a8cf30d9ea6413381912740f545e27dee66fa9b4ba27ca56761fd8bc8fb9929755e8e68c67faac474b785a4940f73f9cc32258f57943427e1f41e8a2bd72daa3adc6c941c66ca57ec10807d5d4cec43282719715637acde83b082dc1b2027a4048040f38f50170b496fe510d463ecd1c8cd2b9ae642a6dbee830ee5c4c5e2a8eb6d855054f494b847d9b4ebe7e775f3b32de42eeca348c2e13e902699183344d03ca560e51b518cd74916fa8fab14f53b5b6a716deec38e7f4d0fc12b589f665c3bc3b10a24580338c3e76ff7028f58bde3874fcd0cb39a0a0de7e38e9bed85eb6c5d69b68fb939cb8ec4eed4e3130f02777cf89ff4372929e7693eb00be58e8f65e9891f11124b3b887500d02fc9bf17441683c7d4d9ef8984b2df3e2a5e355bbe2d7aba6355a68097bf2f212bdcde45abb68a6f385e49618d71e4accdc731aa66dbbf45433ff6deaa9ef9e0f533280f9422eecd0fd1f2f517dbca062094a52a68ace4cc3d903bb72b3f90b46ae7261632a2948c60c0c0efead0dd6962ba43b684a21e69807830bb5f493a64e8546889605768896c7ad7e4e94e98357ff08b655a89bca931f785ef4fa69ce662044d8048f788e34f16f52e2279c72131399cb265f0b540f5dd276e857795a9b458b9aac64fece3181675ed6b0b8220c3cda23028f54b3dac2625a120ab310c38f20fac01f36d37c1920fbe0108f4578529d8c2dd7176b5f9e5fd620eb4c2f49ba6d87e28815ba6f0521877e635141765ff1794ec512d317d9ddf864d6d7e6c7aba2b7e7ea9fb52e9c14e32dc757b2cea6927f3abc79985592ad95567953da7249a26135c6db8956201df3bc6118e68636e7da57b48c3858bb7cc22800e5a4515dbd41a7662d10fb766b22a5f1595f43e665e68d77b288b3afff5b6e108a514a19bd77081e3ab8f54f9ddb777edf557af037a5c53a782f0604257fcec31de0fb00a6081c256e038499c1115bfa4b32768f0040fab6ed2800050711c99449c768442b5c3565bd05365923b895e644142848f97ed923f844b9a062398b6f886f71d501be60ac3de92c4424492c4deb4ecaccfc4ef4b560a657b4d8e1d35836b31ec221df1b0ec76ca9b081428da19ae752a1ad437f82954506f82339e85cc365bc9d8b549e72dd60eaba57a44d5a7d19b6eba013a3ea4d6d3b03bb3498b884cac3025713b296c42b5bb71773f555efd3f81959185df0853e4f230b09536e4b199677a6fa1bfec545124c703adc5cd6381348e7cfef168e2c62fe95b24bb9dbff06409c48949a5ebe9fcbd6841552111ea38f3d5be3b03f7d933cc170ad109d1db7e592224f2940b52babfa646de5de906eab970296bdbfce87b11445e0ac5e893e81ab0f1589d0e2e42dedee74d8a44db698e2af5cb89c8f3fc0f878ddc0d849270e3b7deb8a170dbf9f30bb9e28d1465820b76f33fb7d823df3c31594d9a6dbb753bf3a4dffd99481b933696bb0a623c2714ef4fd960d40fd020c6a5d15d4b08d2ccbfbf201f7e92508f719a611a7bfb339d31558c33fb4b9c4bb8c8125b6ac0737c9d82bc6fa128671bbf0b0faf3a8d1de944cf6479d9d83bb64d0cb4bc0a880388bcec56540285b30a296e11872a007ceed369681c010a845a0522fc62bf059bd5b3c8674ead88be117baed49b01ebb0021177fe4c6f566a019717b5acfc6d5bfae66325a70e5ca7cbd8b67de95cecd260e53921e1385f93b075120f443ddc15f9df627b57ca4855243404affa20d701e5ff6eb3a5ed2e8196f57038680def1f40f7685475f7e2269539296881e6ec3a3bc2d1369c03fb42f8fb163a26be68906d9d6e23063718fd3393dffeae4374d62abcbba490c04c80728ccce7a7d0619f10aec9976f09020db7283a5e6abe438d2edc511e391abc31a35dc243a71c2834581ef9e1c7e7ebe16a8a8e53077a36a8baab6a39e2096109bd357adea3093be2aeefce85000f764c9ee773357aad761f8215cc9f2e977c8acb57a3b5a9b65584cbb926a6bac48f1214bbb06719c96eb927119a999b8d5eb4385c362ae7f19d51fb5159ac4a2d2403695c7d772d22ba514be73c777ca8ee8220775bb9a2e04d88ac64e8aa44c8b9fd3ddef2b340d944e45219427947d4f70b3a317376b4d6f1e3402e992cc027c867e5a0db27a2804ed50e3cafbc3ea1e9fb338f584542b154a09d6f5885ddf44aa3bb1fd6e9c6063bdcfda08e6eb7ad171f1bb9d86bcb5a87bc38c68871c749359fc3521fa8af4c9f6e94964c8f87d948c8e4464d46c4c4bbd74309947587cb02bc84cddc95942065d41329725f2cc67518685df51e122193d6878c409f187f4fefdac1c90916c1ea38ae48011c88a9e4670a16ad224909d57dfab8a0d450b4d4746b3c9a6e24ec59d0084a1b1be295fcdb884a4cdedaa5872754a6e9a0336bcac1049578c0809e7451b51a04d99f52728caa0f123edd33fa634da58982871d7f9b6293a70f0ae238b34d2c8efe68446d1dff7f7f2805c3a3aa57216b8a26a485a9f766ccf74bd4af6045c8595129e5e217ee6217a3d4ca6ed617bd62b66234be9f79ce92040cbe51b220fecef184fe845c8fc1f0ffe63d412fb9baeefed8a3490e5883392a88daddee81a30b40531af872e87642270e18879320a15a26dd1e7344003ced396b111827df92e7c9a1252e12e1ba7534a327a29da3a67ec35c05e3836e0c5f5c938b38ccb63e236c18fc6e5219a6396a1bad8ecdf78647b0d162745715623540a04eb7aafeff028ac6dd2f64da156660e0ec3aa4f0db187801be36d966f7b931df34341b4a51c7dc5ed92cbba4b050c947fcd91567255ee6861c99b3b0461ad8d8bf99e0e5fd264d0abf5467f7f37f17bb8811291823ed930e2204dac1eef0c95678040c0679fc8dd053f9e83bd7605971adba92db5baf7918cc8a317f141bbc1c6ffb10cb4b588f67e88cff18f9132970ecc7bae3efe46d394b2c301c5f99b217ad021aaf36b4d9d073a68ce401de17203b8bd535da36ac7c76381126bbbb9090e02f357f0bbe78999969b7377ef8c04d0f7f0782f23950d8176609bbbb2a2ca83d81fc5f0c341401e30a9e8b8a369585c57ed6e31600057d417e26ea90ad5e325486cf04b45df642a6f934f8c19175af498bb9ce71ef6b2ef8823e341743b88017d686cf426eef0b10e26e331f265d469ef3ff148846823bb9fcc19b6a5b9855856433186f2e6a77b9e4c3f70172cf53784b4ef34a01afc3f464ee732d6c8e1eee46ce64c57bd70c402b9edf83329c72ef3f3e09fe058ce70fa70f3dd4624bd6ff008cecba5a07435f1d9704a34fb53c9cf93f3269941e3804d33edc7b38550457231bc8b554c250a772147c3ce2260351bcf546d839d861865f8eb04e57114281b09c4567fe88c05749ba0cef817f33fcf408cfa3a48a4597a06586524156659cc9d8494627a89a01bd4c0b06c6e1dce596ea451bf287ad65b55f47abc2f3bf61d9b3f2de0e4d5ac750e477e2b0aaf451922ea9ff6b96052eaace3ae8012b70ed7cc2335ff780283dccad636f763cf4de3954cb12623ec629b13c32e44abb2377a7175a46916bfb3809ddad0d8dda99b816da8cf7ce0e7cdfa8c336062a1891bb85c7e8cecdb181fe5545b419827a0132f8187d187fbeece22286d5b3682be27f8e96f8cfb678d466370253047b3b4631d781fe4bdd3a245465eb5a6a2fd47d5d4bea0c42ca915a9a5e6b615b7391f60f132998bf576c22b2bc1d20d8b3299319b5dd029b83e8afa2b3caff5004f3dd74206ebebec89a498acf9d7f95a0bb73e", + "0x7c0e7f46d64d29bb09077be5c681fd8ec96ed2ce4dc2829266490109e8fd4fedf74293e1399ec2921fc349deac7c3731ac0b353f05a301ae2319507729f210e2dc25b1679f469c5598846a229b9103c2b3158a19906e1246677210099b509361b81bfed44c48bf8afe16ed3690e9fb032f78ebb5cbd2c53050faa078651115e7be002bb257ed436120c041e67bd457a052ec4b4fa7ffa6297fb0d788e14ea8ad43f9e56b2d8f1a6393c40cc0c23306c3b5516564ac55bad0993b39461ed879a941d285eb0cadb6642cfc3599bdb4ba86d596e98971643370c7451d565f93672bd8f190288952966d8776a6b138db770e9131b8fd25397cca35e9519e9ab0101bc9d701fd0bcedf1a842f66a1f4db5f91ae271ac109fd670b962c1090faabc94ef92d6b204db78f2ac4d30bf32547d6ac53a746fef4e3aab89e8f53295e201e4cf4685dd0e045f1723095b05df5823c088d2fb203ce6af12687a7e64fd769caa668f8af56a6f75a87730fdae40016d3b4cc48ea2d15e6308a8dcbb6812e185747a5079050588769b07b3c0cc1d6c189bb64cdffae5b600b3172d140f65b31c01d24ce7653023333abfc78f5d77d6dc8f90ec2c140c5c860dcfbd928350f44d227fd6f694f82522dd8ed9866b7eddf7ac564be4a758e71676d702d4fd62b4a273e6f6e24d80c3ebe1f080c897a914ae9cf68e5a28782dee5552028f497475bedcd5ca81451a884b5d74e1205bdcca32766fd6d784483e3674fdb36bd372c2fe180caea3fd2b372246281000ac472d1257d6cbb30e1081389df76e3ac835a7026d863117f7e5ae85013a9946a514ba3aaeee105d45d997cae184bf15fe883dee7e9f6b6abed2280bc29905a3f29939dc3ebec92955c54bbc9d7b689215a0e41e9c4f475a33f63057a484620c12e7d9373f0017efa2f6b54ff789978a8d695297578f3b84267c83a4bf19d7a4d21ab11aa73f810e13ea4654a9ed8788fe5678650622f1bb93ed0f040f1ad59c76eb898cd258daceac3d7a3772cde90da6d07059e2f0459d900506cd78f52adc544aea762cfe1400a5c74a91114177f1befab44dbf075d046d5ef1cc995a9194206909699c8f75539cefa9418d5743607adbed861bca891a237a9a311ee97bbb98fd240cd9138a495f481f79eedea6a8ea45e1b169e68ff19244d29dbb842fdf13fdb7f3c4cf03c69b53113a68cf32dcb31decf2dfea2fff81dff045025957ad38f8a7588b1ce42df88c969d3f30b9b55264595383ce8bb2157b6b28a4cc0f50c20aea6c1af6832671e199bd9eb3494d1afce28d4f6f1f18b79bf191e95b65b70878de50dffb5ba08538893ae90728ec7d66678b65b17d42dd63823f0dbaed83bd95e0c31dd91252ad08f0ae983506e1a8e3285f7e6d779f00696a060bca3fcc0cecf87829a3c508b583b51df445a74ac430616c52b55e091632082f6d6d4ef1bbc7fb119cbdb3377ffaf706107a13905a3ee39ea9bd57a9603715d0de344b7ecfb85fa3abef6fd6d44a09828e33abc0ac3a99ad4c64353ac69fa433dad3b89444ae7e54f55f8b8c953d7dd559fbf7b1f48299f0134acba215f7de976e1c331399b24d3f372b3841f7bb3489aaecca5371c145efdcfc38951f8931a0ea52c87d055ab98df01d95e5f36a433e2298352b73e46605dde5df1263527832c9288ee358061eebd02847bf418b1f99db809d12bd64d336186f5da1a33f9c4669b2ff06b5620a83227af2d683cf3f4015f0604321eebcb225b29d94c701dde6dbb3ddcebf832c09e3fba5f49cc18cdd71b29ce1b0498b880b33aa8993179df161a0f7fe55cda316b28ea9b5abde115bb18a28e2645fe232c41903ed1b74af3327dcae5106ccba3e4f2e6a448bca43ddbf0a7ad54a97ba78419346d6e929fb3f170d432444eafe2f1bc3b9e6be6cacb9c3bef383c86a2ed2b4e55107208ddd0c79059823f2ba12b2f0ad9c454ed52efb3193a905c0dba247b46c4cf4342390814bfc7de604fb346387895b72adc4c5d92fcc721cd093d414446776fba99416afce65245328269712b57a54f16d45f7f4241db3657995b1089f109b0ad3754f13d1971ba038a3c19af06270942bb45f2098141d04c1d751a122838bfb3f02568e8715f6e034c196604f79afb2d0849546dabc592ae17a2550f476638ec243ca0403a9bf185b4df94f0d462625a89cf636f16b8c372e92da82cba1ab5fa4075f8422768797097e52187b648b58a47cd6d25b36f55ff6e143bc4c87ced92607e33806a4e34f70471c31e16f85023674a0cfb7dc40329488b9c18b7dc68387d5d9e4e8897ae21234134fb0782af633be6343f139380493177b2c0a62bbe1386e986898bd346c77806ce755eda307f945297d4093eb03e33f47caf1c8064ffb74c02593c54b2f5bae5f3ae5f5873d6afd34b1f572af66498d0a881b694132e8f8703bc74b391f399f44c1247393cd317c3d189884091de840df2fa6346b40cb6eec1ce8a491551bfc3ce370c1cf0282f105e3b106d08bac86356dd6c19e14167a86f070eb7b1b82ad097ebcf859b7b19bc79d93b22a7c902bb1784a6b1f6ecd23040e3c15ee4715f119a66df5d8baf315bf06eadd4093e73b58eec7f5ab48639d7bebdd5e807c8606f15027570756344980ed2577dba55ed23cd16f6816c05993f75ccd6bd38c74f45e2ef3ced305753b030241119ddb32f8c10e81538c526fbe1e178be8f490199e58bc12beafec0bcf5a044c72aec2f8baa04f96bb60801ae88be92cccfc74c05133bc863de62d33f4cc6504335853028ecd5f9a5d5053ef2d49614923510b0ac887097bd258bf57dafa28b324345e36af51396b49380a1f4b9ae74ae3b73eabe708f340780497046ada146dc61b5e3ee1b6402f09132bd3afd38bc46a3694d51ec37bd34929b9130e5b6a58520472353e9039e1c975bf404bdddde2aedd8d7e591718e8c64c388c68ecc5805156124979d1b52b00ee2308ae8900cf3e267c52be8a53650e1ef7cc9f281a4725a7bda1aaae098648403ec5bc2b8f71b0ce3038eec6abc825b75a0e5ef39542c0c4cc16a378856f42c956cb363a4494e3bb140808f1d04340496428375796fadcb03fde19f09eedf5bd45ce33652bf8a0158801f354c5e2876da21400a96ccc63d9a95d4f0b03b350cc719ab7b86a8e9371072a736f188ca2cfa800249b4dadd8a2a1f646c815fa45d2c5eb3c531c3f9766af171617dad150654c0855e163dc2e15f61590a68819d10fd2a0e7c27ad8f9f0368b274b2258cc9f67db68cba1185f2f1cf5df53df9ce0b7c0f2e5b246604544901e3a54d115f9d397e32a749fd7d7331e6b70c9b841ed8d6326bf3249c767c4ee2e51c8206a28de4dec69a5556539ca4b73d617874232656c1d6270cbc9fc3afd730764367c50be956d5e3e7096caab34789baa2fc3a461e9fcfae99003317882bf64460259969aa841f126013ab5f657a9a13fd0e8bae7f828595b0f9892c7595218a6cffc860d68c954ea2a1b5802bb0fa1a936cab7ad7d759baed4597f9ab762c407c801a8dcd8b6bcf95434e56bf5e26b27bd637e6ff10d8528e78b5391dd440d4ad4cb4ef9b9be765f3b5802e0e3979718b8841d55042d163a665edeba9c0dea784845d6b817010f0632c73d935b81921d767714d302f014ba74ebcd367293c8b1349f3480acea2e5ee2fb32c91176942068faff93228853736a937f7f535e34bf7aa49b3b7567ad0b86cbd81d4154d87752250a6cc5c57ad527aa922e1aea723218e4c3c3878e8cc110951353a0d4155299618c69082f303cd7f6564181ce844714c7c5830764a0dd45fd828bf347c4790cfebf002f443e50ca2a48f718d33522121d1dd92d58d561238d2406f1ca3ac15cd8e5ef7a8f8d32768a9bc3d3fd9e5fea6a78889aa388316d4afe6c1b66a0784bdc26d83aa73a047684dc4ed8c9b0b76f3977aed8af901b0710d8706814b8e37b1e4207ee488f460ee5cc8c6e3bbc46b1800b74f27b951d2158414e19ce3ad204f5e9e907669cb3953d3aaa6a7d985e8169aa691cca58983bd9482d6ecee80963776b0d6e634f4bfbd1f91d83baab6928cac940d50b7d21a4e564be985cc5cf9fe79440fd8d493af481769f9a16434f9a544314f28b8ebcedea0ec4508614625eaceec5c25faa089c61e61ec60d7d0ad1f6f105cb4f6a494356a65ffb0c57ab4d6316096854c66da9d636bdfa583cd2f60952b8cf35f644d91e8bcdb369ce611f951f826182004d077b0bf5fd1c466a6f4fa5ef22feba4451bda7a30c40fac5b5afd327f7d4eef20bb87587ee2ff466bfad6e8545dec72039a002ccf9f83a415404932155d236e420db3750472120e653facedb52e19ef643f7ae30157b0d7abe77b3df57aa61def53641ab82fbdd2312352f66b24cbd10eac21b5977a7805c53f003de2beef6bfdf0598cb013929c2183976eca144fe22a82883a01410e206589574006cf9b1c863235d9bab502e8003b88275af1e07f7621710f7d9f1bcfdf0ad0f93220eac75a31574ece7c8726b30425d4a1ca4819a166e55654ac7eec9a3ec33eb29d8758cc9725fe90987c3c9dc0cc8c7e54ecb8fa872934275cd406a1274188a64a8b90c10a8e42ecf63d01e070ad4e0c6d8e737269d35249ec7be003b65976fb7eb4801d2ffc34b1a73fc3627152771e68e4f9e401405d2e8cf5f00e65a84ae6a18c127685bb324d605cc2adb6cc4d48219f0bbbab7987e6177fe1497d616af683a8801a96eb618e1158b3941d0178751684ffd77a6303abf599114ba4e3e0b5bae7db6927c22878c1a03db1156083120db93fd8f1a68c7a68b5145aa4bbdbd99f3a857978d4b1271bac7fad30a960c50373c89fb072dfc5e9902fe2951b2c03d629b70bba856bc866ec885e6064e1b572cfac38f6913c2c5c0addb4d401ca0e7514fcd53f868a98db3bdeaeed6940661cbd900110c6e94729f44e1c6baf4ef63fdcb417248486fd7dc9f8587229981bf17f2e2c1094af8a9c3fe3bddc9878408681928057cb98a8fb06c4715f5f69d6c689d48b65ea5b2a0d40b34c7bafa80193021f67579840cb37d322c3da8f18dbe717e4b32e1b3e1da90b0a0cafbc656ccbac354f044ec15b792166f6fcec6ccab943526662a9ae26f306e421dd8bdaf1deef84c05294a3696da9da8eba45124afffa2952275083f3457876b9d5ca54f2aaad106dd0a231826fc039b4013a1b3d76a20622f57c9a46ee98a6f5f3dbc5fdb3f3b0a7379ff924ca5836cdd637798cd4fb9bda582e5635aef98eb3595044a45605912a8b054f48e147f3e979b4857f65462e8976ca1a74bb38fd1cf1638bd611a0b22d7484c9ed78608afedeab7ca4c9771742a209d0b28af7f50a1ea078d68c6d66cddc95c4c689a288ed02b0fd489bd8456faa826509fab62e3849bd8cb73aa9d5c00061dee855be6d62e7b88c82f946ba6eadbf4a74acc09243aff66f6fbd197a606e207a92af6c2d7c3f7513c73bdf0b819403f560a88cbf821d476a766aa0a6fcb15b3fffa3aab24717135c1550d1e1078e115e4a8b2288a48670ebf792cbfc83a5c1994cfcba570a005798ad85b77a1421598265e4cd742399430593710af3799e55376e46ec6e5c8b5fdb59c6d92846b4e2e45d881d3e88c157edaadf5b573df4ee8b325886bc131fa29d468066d1f8a1390722f08d537c42477e473493c99e98bf4d577eeef8fd6b853a6bc2d06dc3335af5bff46e57ac4c8eb685ee983ac7bcb3f8adc9054f6b117d73824d318c461f5bbb517a8da07a405f37980d5f746ebc014c502c01e38837b1ec929bbecd4a5e23eaf9dbe9b9818319c757389b9161c92ecae4587f478b2a0cac07202e682f7cfe18f02a4ce1e69393d06316bb825911223bf3956c05a940ff9f584217a5a8b24a5d9d92d78a7c4314e0d27cf18921589d2a49f75818e5946f1743d53e63ce6fcdd7c873d6dab444aa2a7350adbf0d4097656eaf4172a9600247920c08927a1f7426d408d92d64738c049b3f458fc1ba8080296b727731fe6fc7773326b9f75168f007a5e8915383506789b52539465c745114e90f80c4dd9b1374a51071ff99675ef0e00148a3fe107256a95850718aab75403f115ac0f7ee0ccfcba8e708bc409dc945404afdbd0ee8732ad13c9bc25acaeb80e9c47385d975a021f85ee708315ffc4926c09744f5adbdcc7eb9a56f43f344b6e7f4c80a70776880eaabb8fd9d57aab0348a07aaac4c1a56cf56520adfd83f585f13c0face1d38376fb7238350c04a9e94bae2fb8e74ab4feff7e87d04237ac2ffbcb9804fd969ae7901e765e8d756f4ef173341ea768e5ccc542e0b4ec32f4d5d8191389ffde999f019b7e2b75c06c6b39bb889f3c92c789678aa23536d3f01936688df7b430ffcb8266d5f98161cf8e0f5fbb2b2871c7e3f423ff7fe163f181064ff472b46037bb06185ab924cc25d3f0831cdf9ed909d42e70eaee97aa0ba18e7011ac706bbca9898ed61664c77e43f6ae9492edf5a9acf6eb2889f99e5ad3d51a02a1b687f2dacac234615e709a11ae6965e856179fd4f32c0602e34e5e412751a7424b4054dd113a4b698f3a5cfbdfbdd44581f3a971e64a24327541f24b91cdaf8351518ee2a57a88ed0c8f018f35ab84260e6e9f43387bd217fc4212c63843d1b681dce400e9435118cc435aeb86b67a4fd2815ac7cf2e6cb5e92fc1bdbdb31343e3e55cf40fe7ab746c7a20e2cc93612287d589d88522bb9ff92c6fd30c89d725d52494dbd5980fcd3b794878cc10eec491cc1904425e54e28db31af27e39b4dc7139dc9247f2480befef3c1cbd8d6941366bdcd793f23a5b7473098a938851349a3120570de6b1b9007a1eeda42a8d7465c9d90e1495f01f6f7a7e18ac9cb5fb90644ef6af71ec091c4f063636bd0d09524a37fb43d84810ccd371e2309a5812ba43b8c02e0b83dd32b39bee172a304f488a381c0ec44b11bf10b97d461841d78c89cc473c3a54574b46dd52aa91e8e237636983978c203e64dc2ae6bae659359235ce2f75dd14839ddcb193a175b8fdb81779facda826be8115f0c5dc1e7f3e14908bca180850870a69729c9f6cf4da05e5615b55db78a082f51804dde368e3f32a2d0bc9198f40816e8b1983565a44868774a5921d335b5e086d5fa3ec7609cbb05d6250aecb093b483ec82f655b5371da49e3a997142731d9200918ddff66323e27bc2f93a5c7e0ecd4c6811e305859fcbaa190d8ddc5526dd5eb36cf37c628e4265748038729035bf2dc790d56da834937a881905dcceffeef705f0cd15ff85a69aa153fe621b3ffa925731d184c2c77637072c75d498eebff2ce218cba4a74aaf6b23dcb39c4c4df4e54e77677456479e7310a5bd939ff1db15c7c672fbc2b404fb79b11ed1a62bf1f3359576e95c06521184b8d30c3802143397250d7385e775db0dfd5316d3a13966d62b5f032ae9ed851d9016dff85b124d8e758707925d6a5ec0e5dec6370ccd5a48f18ed24ab7fa2e676e4ab3565187757b3ee02f17d41e337432b9803aeaf84daa4af51a3534d17a734fded053ba8282224e68d1bc475b6992a524199a1c177b118835e76e9b5302afb66c7a7666fbcbc7a543981410f9cd0850fe9f67bc3f1a894771b1ad4e1c73a0696df0109fda3ca6a3a1aca9a226bb5abbb6f2370bf840d77209c781c14952366aefba58b355d669cfed0f55b65de3904085e4b39a5e8ea5562fbf8f1da52f27e2a8dba1937c63a2db88c2976e6e9c28e8d275194f658a273e538b424d0e67c85d1fe3f1f4e59682e493d8ebe56df355babc0d4c1834be94d5862dcace9b1ad07fe39edd3f942252249fe676ae1a22d11b5a1eb063892dc1182b2c5235a6a5e64341e14aa00843384bf04e7999472736871910b2df639842125908c470121d35009e59be19491bc3fae9931c8590205b0e8d0db0185b89c95b19606796c54b95158ac24f58825de346cebcd5d7eeea7488382b9d58b3bbab7c712884167336944caa0d42b943038b8cfbfe120ccc648287866bdfc9e2ae3858a9c0ac81b7109d9ab822409a72018132951b5bc31342a588b46fa525c2e8f32c2b96c5cc34c2012147f3edb4fed71020de08543fbfa36761cab7cb1974e90a5ceb1d5f0e6ae0ec85a97272f2f9cb335efc3fba79adb9f3585b34d7d97f9cbf869fdc3992f7eec26df10f9597c2fa4d28c04874200944cd8c72b5c196106d2fa3afcef12c78d3f2c1ea7e4f09930ebf026c67c4f83838dbb8d39b870150450ae37daf73948c7102d197a9b4fba48921d8d120f6e5ab3e9cb753aff6d5d6817cad7cebc903f72f5510cf3f4159499ced9f7c81f24a445db08b3ad2e82e66eed39172075bc3bbbbc14751960a526c8a318b3be7e58ff8cca0afb425625efbba3994893b90a6edc93c56812bfa78eeb7ec4985a5ad8b34e9e79c468ca4fe31309beb73540e5da899d083bc4c985ead1bb395b3589d26af1c594d5f389fb08ba192d1ca789611a832b5574d8f9ef4e4d23c89f88da5b779ab8ab22ba82ad3c4877a2db4f81b4a86c037618964f57cb7ad534e976caecae7b82a5fc3a42e8bd11988a1c2df4b7c6525a0d3d4ef4767e35bf375276cedfd1d31f7b8fae68b70b634e8aa81ccd69ea777c0cf054dcc5ba27aefe1768edf6836313bbb016e625d13040f69ed2386cbf50693a6ec00f053b2c53a9f4267ed5d458dc06fe2aa2c5e107a85af7e22e86b7cf05b5a9682eb866f106cd4996b68358f3ad924b3ab12a465040f5d38860222b62e96b20e118a5a610f1f11a7c2cedcf6211a8625ba17058358a39a41539cc0941349f02676558c90b4614d8af886361a2e8271087bcb2f0c4b94d17326fb91af74f6ba9fd6c9f77e2ac25f867741961529fff82755591a117718bde5aa13dcd3ef5385d334a0eb931818a63b037a8a9d234b7fa5856b404941c0240439b52999954476c48187c880f939aae53978a841f31e9c5cf5142179f32f478072d18f042c92b91b21e8478143a2324c13fa1223384c090a74769a64bd159f058f04fbc60104da9365a0568450de49fb971b0a4edc580034c28dbcbda345b390ef3de72939867bb1202a346cf551439cdb4e0b3c54affb0fae24c7a1f4ad8e5c00150b347200a4ef23c43e9c65edabcf30a3daac30724551674f5191730e428633852786b83180ea73693ee5e18d2f8c97f374b894e6f6333fa143549d44449f79137d8684b4ac5df2c7fb345218ed53df5220c680071e5b7516a34c0f5f3e3d26b7455884eaba057d6bd571d2d1341b3beb6ecc7f54fa92818bb2badc2a1fe175424bf1c6e1ac737bd43d23feb58e9ebf28fdf60fd43c07d4152b608f52fea4d0684a11a4dcd3fa5c2cb154105cac63b5caec208051b4d189b7ae3c2ca34f5432c7846fdaac928b5065645e188cb76d495f6e717b4b8a233b1063354767beea75405461be96a3d41dda6f860152e663134b02da6fd91b2eb8ccaa1c1ac8377fa93d5a6cc22e2ac564dc2906970bdcbeecd07a722f72dcb32aa1fc665c6fd26cb6fb68e042bb24039d6769cfbbab47295598dd4078eaca6505663fc1080527b66071b8340b432d334dad04c155b4355259cb56cae8d3fc9c46077a352ca1b9d5fe89939efe10f16b71ca4f902d30f07695356b480c4ac2fa6a93f69fd3ca7f19fa06bf8b084c7a86b3609b68b2bb1ef5b5e2e6710fecb4ddaa125a738b5787de6eaef86134d2f7f54bfdaf46b4a35552d655d30d1f50b5dbd4297ceb05cc616e14527aeab52ee971834373dd08a9d36aa69e6b2795ceefa155c85e5b8d8fa6749e13949ae67ff02034901efc1315cf6173831224d8888176e58e4126fa834c2af0ff0e56ad333386c726117b8e4dcd4c9e78c6acf6e04342bc12d3b36c9c7bfddd638f54938acbd87e74155be1cf83afb79a5e9a5141ff1ffdcdeac1691b7b6facba58b309c641ed049d1cde3ac82d4b82c11b7a6b6abed90bcf8dcd74e42fbdb23edb16bc4a4308b680431e4d6be7ae246c97c588d0ef566ea7f33e5a754f22ac3694585588dac204d10ce3c15e5ee8ff9a8df6432c07d88bcfee74fdc11f44a259968a48992123ddaf2b71fb6a4646272ee77bf5dd07754f700ee7f114ffe28249d835b4efce1facce8f9f69e9adc8c61c05983e6606b780a98f1658419375f06bcd4059d651f8cdcf4db6914dd4e9d05a52dc9b124e71bb2da63400c2d3f56bce19016713d2b1e0a6037162f76a550460ad9f77fe83e9b2f5f9745a77f544ee01994fbd149e8f1ef35db6fb9e086fb86c0b65157079a6b9ec5ecc4e2b4447ae016a275841e32e203c200788f8df051a0795fc0a0f45102232d0f91d0a82f96b5af368889aaa3d24e1bd03e3d61a197e04e0221eab5a0d9d2bb40c5e3e819a4ab5ee66210acadc00f97f46085355483083c4d93a7629fec3d1ab7377f394fb80dc04ee60a37fd701e5241f3ac55ca5efaa2e58c3bab944473f5072b380f95fff81997a6263332f3a6a9658ee603a62d38c470b303509371337fa510d0172d6936cd808d86dce57504c0b16cfaf214e55c4b2cbf26a66808c5ec6a6eb0ada79ebde8077e3b41012517ffeacb55cb4afe73c316e86519db7f88f63839446686336f97939b24c6630c6e91300500abcbed711ca89f42a43807fa59a236e288ae36a7adb61692a3d93803e4ef0c90a38649172a1a995f5a35304956a8371c8dab8f841f80a1bf626291152be94c2137c0a73725416222e119860f34873e2fa4c1d124885bedfd64c722e1df430a73e0cc80b42af40e41f2416cf8bb92e10030d06e9fa681d42c5d82d7933ab3c9d18a9b9d7bb705b915dbeadd5db7227d8e4704743edbf810fad4f3d5e1baaa63261610dd7f33ccd647fd51e9f67b8f06f3345b3a4ead25a332a4e9fe09a4a2ba8ad92d5af2643aaa994d2300b65b3e9230f5f4b4e046eb49577e7546f07f6c45101b123df9f6874a6ed73777de30bedebabd36470cf45bae8e6513e1309597dff89abec0c0fb690aeb36a4cf29d8f3765873bd4c81aaf9240230207fb475e5917e04b4370a66db3c6d1e17a38eb4563d503220bdcc7e8626ac0ba0105b73ce446b805c194c8f759a6bd3874ddc293d7201c78295412965e2a1f654cbc727168f2d2646620db258c9c0af34aee71f3987f436f8f14d8a898ceb45256d36ea6f12cc822dd1656fa4c9caa0f199768584512b36b500f423f948111ed2f4865c33181515d8ca734b8048c1a7c6d870cb7d6df7b012393a9adbd69cfefd4a5ae12060acd4beee272eb41b235adec81e6634e5e5436080a9391b5df23483952f1f365325a788a6fde4d0672162c400674f056c5fc386265b6f95fa0c651a2fef81920c2ceb543a179ce8327dfef38a0d8547c174b67ae4ab4ddbfbdd06517d35b76beadbf1d533bb6cd765627fb694f086080cefd67e46640a82d847e5cf1efd341299c67d3b1a60ca1b7e69ca51aa1fdad8412491362c0a80035af0a1f12bfdaf05cada47edd04a143f720fd986da7388a8ea3f8c88481aac2e8e6f2da9832da219094e7d1523430ace8aa13a605b009fb3d3a81c51cb1b312867b351b85e68cea961e93ffb45094fe131d18e508a4caf7e83eccbe49edbd6fa2aca2936a30db5dec59c222d5c06eb35fbe10ba161c94de38021d962e39f04b814a8a465b2e11f026a09ae7b4329cbd566aafb2fbd5d932cbf01b9d791cf4928c9e606dcaa1e96e385c7e0c337004050206e3b7f08369d43c1168f2f715dd70b81ef66f758d4e94c2e88a98914e77c82bceebd12303d0dec4531b9f8c64005eb0a7b31a54f40ad8638d86c623f9118f037ee061ff0c587108f0e43f66d69cd7606d5a578e3bcb7ec5935842f854d91abb7c4b087daf4361f967d71823ce84d79fbd957110243a392f55abc287421c6ce4e99e92dae6c4576bf8e39c1e47746562e3aaed11f4050f84928d5b6fc407c83ca43f38ed99767e0de58c6a2b82da01b542565e5b5ae62cef045031e6376da9bc6dba2b242ab50219fa6f6b5fbdce42188250d980af5bfcae2bc70f8cbc5edba8c7fe169ae273a929e6fddcaaca2c03c259a88fb3d0b138d7105b880edf6250d80eb2ddd603061ced2584065f122877b64f58fded4ce4c93e9b06cacafb6d6901711186bd186876f05981bff8c3cae79e3992e133c371e3eceb48f16c5b1b9eea8fac8d68b5c71da7b7e1c1b0e5a503f74f74305fe537fe5e18a1cba866068e285ef75c69875671b1c9f25279b13abb1d85002a1a49a2cfd6bcd7d7c9c3be5322efaee910747b8d2a0fcce2e8987a1934b667389810f23496fb315883cb8133b98a8156173d63431aeece05d26ab3816f91af29ed6412722c2d4b8760bba3c02d21c5e9a9d20b004da64db5262d81bf9c80dafd518e940ca3aea2e4ce71f89e47c4a54a177b686d4f83671413e08163b1c082c5c472e38d161d2b44027b08dcbe58b15e53511120e425a09e52e7d9d5a6017c21191511e895cff7a5b1af0bbf6bb8fd13e46d736411dbf3d43da1b46269a201c4dc269c78a019725ddce61eb53a8fe4ea043edd76caa535c3edb534a1d4abfb9f23470484a49fa4f7a6c3ad967471e671241b75d5b57cfe9f7744508604c4b6edb3ca97dbb8c1d0266abe2a6c6472588030660370f1494190360c4833096f3e28a4abe86064417412c327a551cafea34e61555553ff87359671bf3df02f3f511363e8c444c378f805ce4254fc58718801f9d67ace36b72c7726b75e71d231eca19a5bde07a534427046c28e0f6781095459d2bb6d124a8b45cf0a38acbfde03121dbc5453295b312f987a3b7770b3f31aef23fef688b4928b8febd5a19799a3ddc4ab7a1b8bb0613f4e8676ae89cb0264d0d23594f586f5eb623d20c29b9af3bc645bce8feb5d56f7ba768f09b4359dae27619f93d7da94339fff8fa10899849dc2eaf51b5fbf15d9d9c3e250025a7c67a807457ddaa94fbb55d89a44cdf1ddc83f16bd76f44678b7a27a7499600a5f739b13802b205a35de7bb1f2abd4f6d3bc1fef9b9da4e1998a02911817bf128907dd0bc0a19dc0872509eaed4398dfb01be4a9bfafea9ea9b34441a5581a8494649a55b84546f46f98e66508bb05c929f9f0422e296b2249bed9f5530d6a09ae205c5bb0aa82118e67d903e5dd69b50d7ad02ac7b7236ed14dfc9d4e43d117ec38f0b8238859baedf278125fc673dd542c91c0814ec6ff278136fb223da9b315995967c30c8b9f0be89510740fa5c48cb31ef96c26c4b1aacf6004e0783fe18ab455e751704573112253f03a05acc77329dbf6dda0029ee87908cfe8baf4530d24ec5e496df41339d62aca2bd7fbcc68b9d7edf79fc8bb0568f4ec20fee437d7c2cbaad5a81f28dd7c4dabfd8096442bc571f55fcaf6a865b22ced7d8ec4fce6ac643e6930cd18569eac8b55753c5c7028abf8b882c10e249a4883c8d128b12f25e9370792d1f33b460de4b4411f6c86ce259e48318c269ca1578c4bba6321e7dd1f5d1c3b5d66248464fbbcd838aea5fa5fc6d18949ce8f967fedc528abdbb0a213e462e490ff56dbd613fc536066410a4beb8b82d5674e896ff142780c880aa568387fc19bd9c9d2effdc225274c80d83ec4c94e6ddd61c943433700513fc02b04b2372b5dacc075b3b717d7a899eb55028d7244705770c0101fb4bba0e78cc1d7f7f58e04f4f0e3fbba19541f1f9bb6b75b7a383a86fa5b955bf375ac3bb5612bbe27d83277ac8c425fdcc26a919a7b96aa690b00641c92e6a8a984409ea01a0e1ec31a8e63780460875a8278be9542d05912e073c8ccb9056f037955cddc3e7fdedc984162035e1d85d54e06927739dd4a0043a1095f4c9d899c0ccca24a6d7d7721f9953ad1997004d1c3c60d607eb7ca35fd98ada0249ce334309bd144739d12f10db733612421780f4b5369de877c5a9cbc7fff2a49b2cb7b4cea0345710e62bfcf295b03c56bbf3f22800a740edb0c39ebe85fcffd882ec6b5fb1b01e49eaae48882b686474aff3d030509f105257346de2085f2cdc4da5a5a4635df3b65effdf9d50cf8fcc27b96b1aad6dac717c5595676b51b74ea96401a73648c562776dadfe01387150719f46641f663b921ca8b346668f218327180397eac795292d8223ba04d1f7b55c9208cf00bf387b693c2c011cf2601fda109465607cf9aa746ab6b09084be49179df9fd6c3ef4cbf1b0a6758f295a97d5a380eca3b49b87f4df6030106899915beb89a7f53b11a2ec858dc470a96d77b9b8f6a6e23fb8efd4e11ea186440ebf2322ca557c450890e3668f44f2f7ea7e07140cfa50c4a28182897041705fdaf147b0f1b653f0a4e3345a208797f1958a535a390d40553e787e28dbf22c14694ab29ad97d0aa2853c287bf76c3041274f96a0d932e627872996a56a1648fe5ecc12537fd281669f728f008f4a723fcce32cddade09bf409d51bc129792f6d11113d5b8752313bb8cc2dd7a71ce1a9a61c4fb458388fc866c2fa80a9502b9a0cca99d2b6a1ba91ed865f04c3ccfa2448b506eae31f30cad5afc0868047a9a18e13568e758a2e2e2da9bb5aa885d6493b4bf13a39ead6b89e90f67ac5992c9108973a0855aea5efbc2daac7e417aa137c28577cac8f67be9f9b620a984175f3a27d544385c60e84b27728a6436ee7ddfcdd60ab6e76f37fcaa90d2b9833b024b732dac05e7454827a1936105b12e4c71fae750219cb9b38a5e425806babc26054f6f5c2d8a13ce853eba31d02c13c3f3ec70c4328693610c8c418bd3a8802eebd3f60661272a383d2713f5cd20e67a6254e7b217b5377cd63607ed932b9edfee9eff38ecec1f3605e949492ac1c238995388927d7bca079b509b0c004bab2e50154a63ef237fff2b3a3bf0b315cbf94c3f7d67164a0fb89963d24e9651f9cfce5f78cb108e6974a60b009404b646096d7f25d632dea9aa9eee1e9e88f33b136a648db84be788d5e493149aba2d5be156ed195c9a42f2b4c3bd4dcadbea21da40d07024267f8ef1625fa4007284f0dbf199608f31bf8d0c80fc86d79b4373256138a5ae27919ba88018277ed8e72f8b2dc885fe94b9557da9075172136a810f767d107430d1d4591bb794019ccf8f2ffaff13257d18b3208f717db5d8d715419eb67f70b634128cb87b2f21f9dd63ffc01a326a1ac8b13aa113c5e2606c54abc37162c405bc265a86e54847a00716cf430541d61c1f816eec1de832872848bc11565bc88fc690758ca640729b9e12ca611cc8cc15703c9877cdb9a78a74e051903f02e4ff0b08cffcc9cc00dcd4bcc4b6fdb3c2e9b508574cbaa7b75fd9bce38b4871ee7066fccbaf68fd25a0a40a3908427fb6e1d33f38fcd702fb2d1ea4d0e8f24505ab01b2cc7a122b7127c3146a381c40d885273a089b25bfa6e05fc8af62fa9a4e5829e4e39795001a9f9f95dbe0ca06eab10a8fc2a4152e3cc7e1fbb73e17490d8b9af9c9efb422146976e5cedbdbb191d141f37c353f21270a5905a4629c60254b2c848f6feb7240e30047f86a037f82b7f55c1fc55dfa3b6e7e264483dede6586ea4b07f27b8ad0fe583d1cfb62c324855007856ca60be02357e7ee9884ea9b115503ef6739d992d98cf22897357f1cefda4b4f8c75019d8852b217329356a856fcb2af5b169126b70b61da14192de5ac4c1c9a4765a3ab64fb11d4c7175c8ce6c39c467056d047f59d9f72ffc1fe4475a86ab0b93880faa1080044b69df6d839ea0191d673c3279819f68ee75c6fe9f521cc7eef223bc8aca6e47c74981c7f4ba3b2ed022f86090dd3adac3efb827d6a77f4a0cf7e1b2b68287268102ba93d51b5a163855e256e6a2bc06b3a552a18b32e75efe1c6377efc1e3b9a8b61b305b3fd09ffd7545a62bcc39736042a1301b35bd17e36f01a1a31499aa443a1ed12448f867c6c9aa7e929aff7aaa67bf0dcdd32718d911eff88f8cb56cf99ba10dee7b4281dfed60fe6c0fd8dc4e28ff94659521311bb8a4cd213f4c0cba96406895c4550a745052be28735efc658fe40238e6217acb2da0d56dc591df3b1e73c0aa31c058a6b62b9216d163499018f0c4059855a64ccf723be0bb08b01ed980d58c73379954b6d2b69277637f0e343929ba5e67985e0f20ad0344be2c9ba4434518606907cc3c2ce9ae7807afa1c6d876814fd87611f2cb88de8396b7310bbab00d735c1f3009331f752dbd43fca823b9d16ae8c20892b9806e22a9df43d269f09f4a606ae52e5edd36af5977c127b5c7ba0c0f34769d9950bccead1abb6f92820e278ec9e1955762225fcee58c8349553a7b035aaad4285edab8788fdf8c2f9dcb70d95f5e780223845fed324071680f605f5547178e1e5fe21587034a8acb8d7030b07d09e8d150b0173ef4e099df18c54395c627326b5eaf9f9b3d6cf92151ae932b3081476f648db0e150a5170d6939190ddc5bc0c6baa2136b6f8321928c7b6ed05591ceb0e61d9c87096afef9d990b30896b1498ff83bb15878e87d6153fcb4df5a6a08e0f1340c72dab0d044ef284bae6d7f72f780acbf42139a3bce61030237ffc7555025b6788a697207dc9f17fc66ba8bf684a8d9065f418dbdf1b79714c1c7c96845055f1b8632839088acf246d7f95a21df9670532784c81a73be9c4d76fd10c929011d751a23074b484dc68e67ee6455ede9c8f755b88e9d095f9634ed5b9254159a60c741d9738c783f219b5cd61e89452e5448f2a3e645cfba85f17ad16bb9a363b39a8fb5ed9dd07e131a803d8fc5ea86411e6d899c44636806d4e3f2f8fa1ad913399533603a2c339c1c592b6ea75b1ece57cd517381dc6327cf9b0453efe1403f32563a8e13269d4a93f4afaae1f03a7453ec1f9b168c1af6f796bb63c546181fd8cc567b4d820bc5d83d118db88b10cc78c25eabd28f3c5507aa17b47b95c104c47e12fb0169238028e71a938794a97aafc39c4eb7343e84dc7af92a647e6e3b5021d8e7bc70053022e252923a4981fce54bc6867d29b3affa005601a7cc80bd1b4e187ffe7819644a6814a2d35ba9728b1b91f00e81edfd0596294cc26cdb878847a0a4bb548b4d8a93d3cde9e094da17e42ab508858ace49968c9e03c3dd1a3ecd545bdd44c2e7ac860b96248ee24181e47ce93e58d74e33918b700e520336a900c395bf425d99e12599d4c248c098c79596f237693718d609a5295ab161c07759399db31a7eeb3d5f84af1504c2be69671127adb4f64868c70ee8b3d37e1d1daa5ab27e566d2438037ae303f04547ed8b7f4d10d8316bc2b52460b99d39e350345d36d7f7e0692e2d78d585f7bf3b5cd537c801f4bd88e255a37960ccbe028ccd67a0eb02708ee03b6f89288f86d3c3a11037d75e3afe6cbe8fa26f2bc4fb9113bfbedcd8fcd4f259d9d18fd3fab1b4d7db171d27b6fa252cef29011c849ee0b0b4473d6220c46b968acaeef725bdc2f2b5761266931c7722b056066b333642b18a8a9809e09a378d3bf79104260808207a0f27629247f11b6759c377ebb242e6bc24e8853817a89f902c53e5039ea36aed5985812ea3c4cac0a94eaa428fae5b62fc1f754706f1bc9fc028c8cc3233f872da850cb7ab46e9cbda133a0dbb19dc9864a1c61d85aaba365e93cb08e25e555bb935c0cd63739a7c73524400ca5c852c3dc7f584f04f3d643c30fde82a4dd22013da3035ff675a0be39e323102116ded125e144141c130056a2ca8c64b2eef22ac68fc18d3e57e113b5f71abab175565c225a599f9c3d05853c7f3cdf7b0d8b2b20ccd39f3d34785f35176962f1170dfe2524633d87e41dda5d9d1ed228af48202a32ba7a6bc7ff79e0317a62ae635f44b0e2c843bfdb7f63c4b3d6749f47dcbec4022f1c94dacb41f592fcf9342480b5cf46a6d80b23223d099c895292b32b6e0aaaefb47d8ceaba00b987a7d146785429612c3adefc1bcb1577ccb5ff20ce36fdb04de0dd4b43c4f246db0c40e758074f817cd6d6e608c0ba9055ab50c15181382a177415ad84f9583a4f536298c679f13100baeca5bafacc934233dc3386ec3822ca50daad0595d5df4d5541e22c1e054bac43c034d91aa84cb4a89643a8df4712b3f0aa4522cbcb90954dced3cedc61a5b3163fea0fcccbd9be35ec1acc8bc1a844c2150c1b636f20ebab35ab7c5a23be63fca03b183fbe9f5b14dadff2f00fbce12d6564e18bc398284a26b9552fe7ff949ef3d6bc4a892675d7b839ce343c879eefd86aaa556115c6183ec6804a124a73b0d3e8b4886d5c9abc2a0124167e6b91c4e5246c488d1857d3febc526665910faa5786204a2e39f9f00e553b8e0f14ee19c4f22bd4426a09af03cc77c4ec3cf12c7c530b66c83c5930a36015c443615b257b82fe9708e19a7fcf5a239a2fa33febbdf0ca80e8f6dae51fdc67eca3968527beb40d9f3dd94d2daf34ec7ac0d4a7e1fe95c96de727045a9a7c9ef443155084ee9895b56bc9f587754350d98fab7e424e4debcc4b1ea0dff2622a871879d5537dab0802325b97bd8fbf82831376749813b414cd25f2b31156d6afbe15b89de53876e0251e9a76abc104acbec2cfffb93384bca5ba6f2a077f7599dbdff8968cfdfbead242a210a657dcaaa55b62fba4c8c951e73450045f741720e8179ac1aa272a1b23de1bedcab7202bf2ba6cb74d5cbd24db40df2dbee4cbb417705dc6909f969fba2594683c5e16435df40b3ad34eda725f66372a9761c908d1691f45af8cca0edf9b23e8fd1026452bebd8eb8f4cf145b96c2b64b753b7b399940a504c66a7336535fd7a170d195b021c958685bb06cddc6364e522d36233b22e8227b94f5b4844da81e11208be88f1e05b9f3e4b4de5f78e13f70801f47f47e94aa8f45b36e52a829888d0735e726cb862e1a84648e5b3c797963a209cb031f02d40d568e0020c351c3813a150e28ed540ad4a02c3c0cbfc88deb5e90d47b2b25b460a395d1c2efe4e1262c372fedfeec3917eedc7d29482bc369674ef70ebfa4cfc9f27990a9f07ace863ae9e6fad3bfe17af628875e0714720456677106215add930c11043876fd12e7c13f20cec9b1c7c3ae2882c2cf89b36735fe77138dd458eb60d66b9cf02fef551f90a9255e9a8da374d977d34ba25f7d65bd934d82d6e446776770c09522bf5366f6d83938c8bb349f99c8b5a10e5cb6a6520df0cbd67d89dc07a4370dbeb1d252d240942e7b9bfd2daf34baf58f3abfeeec69a8767f7c48df1a934dce3ecf062e4774799768e18332c1746c377927ba6ac2f787ad3068df2cac6495deb34fc0f1badb163e3728bb475b62ac2b372858bc8c6aea097b993b4dea0a9d497f414af35899e6aa053bd8c96fb093b4c6a96b100888e339a6ac890ea603a65cdc7f07c4907dfb09e32f5388d0332aee385fce2676e405012dc42e2dd7a8856b53f947c3950b27de5552225bb5bb2ad53370b4c41daf947f3e9bb7e717110fa645461012dd8d2bdcd3dd775b3d7a5ad370f7c653c48e725c3b68a7b92380a84f668fcd36a43a6cbd4b888c7fe5fc34bb3cd19fa1398e5fe63c8f502b5f67ee7c3cc42fc46a68cd959ddc400013b5ee72fab980ccce1858818a2421804ff68555a421a4c371d2b63c1e659f3e8f1010cd9ebc5f6bd70627bd253f0d101f3b81ba4e082a7940ed69a516a689d604222bd333f1a2e82dba7c423f1b01441cd3f61b3c237c53224b1e9742e8192b84d96d15578b25d8ae4a1d5cbf0c8580392baf3a47dec780a810961152d3830001cd1268ba3860cabac2f741c041fdc48b50098d9a2c6dad23791ccf6cd87da6d590f2d5a3cfcebfb86b38740f552f69cd507900359f80e72b6b20c1a76c7dcd3ba0b7756a4dede88f2aa864b0b0f72ddd2a42db6bcb097f1b1ddd1891135060d3d5763dff2466d02decea6459c058c93d4f4d946401380092c9c269aa39dba22274aee662dd4b6604226f50f5f34d3193b041919c520712f37391b7e7de0c6610beed72290078a4884e20b122920c2c29643cdd62e80f19e6bc57ce2f114758681fa7e7fd5769adb2a12e2eb35a9c176ed2cc145aaa79fbd5c6c716e136d0585be5ee651c7f3b5880a57dec30f9f16d737716f6fc344e48702a94354d29123cfd8628d9d9bd911572fa8b285147f5456e333a3e1220a35129fbc628361fb29dc77de41518398ffa0f24e6b9875f1df53a2b69bf3e95567eb9db44425767cb3413ae7068d37036885e657660737f8c00d63843e5723658359922ee52daf2d69da35fdd40970eca766dad43b46dbad5bfe2eb622f7554b8498a0e1096e2af09b51bc678e007040966ce937150fe7bd66e251a39846575f7bb0e0b187103b4336b821903ab58f95fd41565935a66da4def09009aa0302b50faec04bbe7c4366a76c53e1d04d40b6a285b3fa4d717b91b261df19d52193af586afce02b9245c065f3400b46f57dc5ae9be3e365837bb51b39298b7a0390f7e102895f37512cfc23003d66902d5ed2b7cdfb9aa65220680bfbfc92178fc86fb95e863bb86f42b0287cb3e410dd253a7dc628e85c2e7d3e7bb9ee00600a0036f25c7b99dff213b88c206a80956e8b0a9d2717d2d00c6d57d3e4cb20339b9d39d20602d0d5b67fb2ff696e6501c458535153a98ab24b866e6958c0de822b0e87ab99221a5aa867c687f3e3fdba02acd31a66cbc3b1be78dd54c45cbd63c3fdda084008af594b289824e27ffe3e36defed72be20c07231d17c97006f27d6f64b969592bf52821524199a5da4a8d4f8fbc4ee69f1697da9d7f0906b57ab50ba75d695f2641baf4acd1e185096003b473a7aeea8fc283d16dcb041d87e38274138d8ac105b2676e4a159de546e033aee0729843f6fb4a873efb9a3becb9b4597548ddc9fc54a0ae54358bb21d0ff681107e2fcf2a03ebd6d0bd03b37f154019b0514ab951f34024795293053d24426eb9c4f6a09f12581e8f4e66a81dfbdcc82e6948faf5ff48d77426132ebf67ff547c0fb53d2b234947beed44d7dc47f905429879deb2c06ead41c3385ccb3b1710a1811451f2a422aef3ab9dc339c77716a1dd5560b23b1a73545afc73f8bfa98a769b1ecc4974655c36fc0fe4c516cabf6059b62192702af6026694d6fb4c2fea9573b701a563454ab973072976d38137b407a23ddcbc972943f1376ee53febe2d7019607f0528340d25e7bb845a49c551bbbacd69c652ab00bfd97f2f4490e3658bf478d4c8c17182b4b2ccac31967f23bcb4aa8e72c21049ec85bf096e0d4b167a63fcfd91b9705b9f32ae471d702870f63cac646755fa0863b4c03ab162061a0472f5657e00901a5e2654b448ce0d0df20c50c61bea7b4a1da80fe25c1f91e036992e77430159f4ba56a2f560f77aa1c16118d39a8b970e4e84550438663ee70303f826abd1c856d482d230a5aa5c27094b8c6f48ee5cca0bf7fe081ac7b2462f331e662067fa5deffaa82f872ace705464c7c0b5105de7ca9edc3c138349278e6f9ab04b20895c1ad351e1dbca939ebdf21db18572ac40a8b40b4e25fdd14795819782bf35db5a9fd753d79be4b9aae3a03f726193caa783c5fcd38b59287837ab5eddb4e3239146adc1c73351c9e0305390f5fcab2961ea839dc4948dca2014e9a1c5d75e55f168c7b40d65cf445e71ce23732bd3bda4d1fc81fc0862b1b8f5db61c523e66a9ad21d2925b6f36c98b92ae6e60301ef2021b968bb242a634da0f35e68d0836b6675cc833273869ad79c4c008c15a285730d969c2620316c01f0b49ec14d4f465ceb066a7b3e71d9b5b3de746aacacadb3425e86c44720278b47350fe45042313ec90911e8309ed0a2728547c7256af8e9de6d3702a5df05b34e25bc6af0f283fcc0f3da898a6a6d6350473dac546659903cebd5b136b359d700055af2d0c41f3f94b0e70ff38e3b8d3c636a6bf636771a8d5e9a83b996ef6a0b5b259a616357dfd65f3c514a9fcc0e660f4f15370d4d6b43b27d91001ab46f7c09358a2897ef6d81e146c9088414a551da39024643065c4ee6cdd8dd3ff802c11968691fc843aa5372ce15308f2a6540a8034dfa57313923009fb79a21dfcff39908e61fbfd00e0782d576cb0e7136e686fe56870ae444980175720059f2997b65163060786842512d8c54007fbf5470d11d3e41882e308ff092b2f072d9b5f9f2ed7eff181aa6b60536b8aebdcdcedb5ef36e71de47a66f3912038eecb68c8881a889a25969cc2c11d1d0a1e1c8089cb41a103b2232c371f64455f47cbb1d4a3f240d20f8c8fb8c2b5f6e5097ac39917710948f003198b8e5ec7c81ad167846431c4c3d026cadd633ee8a2d25b6ee4e95412d33a851a93c1880b0ad028a449a74198a7a0b6a1142afdebc88790885b2df5252d13f6f6f86a30b0e74378a39f5b84e92ef9fe28a22cc73c2fee362b3c9143f3d215a93d638e043144b4d08a76804a42f3886442d99ee6a007a5c9eff088dee6f1a1a4ebf6bfff829ad72b2ee85244db470a21d47173134fbc2797f44d209592a39f9a57fd60076133102bb04cd604a75428ce0d5b08268dda0794d334b5e17f6d2618b5fca53477e321cfaf26a4a1a4c002add0b3f4d45f589fc88cf83ec871c7b8f501afdac857c0a9d8c574855b515d3e241ce52cd4834e4560fefec304e2e7767826123db0800d871e9e36714a532f6395b39f78585b0d599f1bf1ed6027d433ba35a5ba4d562d88dc4dd9433aa0704e56f1c447ae624a5b5483fef0a5fa127a7b41d67f6b0de4f02fd9e6188ed7f52af8778c016696eaa575ac2d8140bf6dafe3136b7f3011402fb411476d429855fbc230495f44410cf657471b0587d1939fa182645a7138a3aa110402e13958c4dfb6eab8ee014b19e39ffc6ac53046e0694e2e23d69562565272bb8886c910870ddb50cf1cf5799e7fc6811bc3e2b9dc44cda527c3e78b4367faf26652757f3e7a104f918ad0b38ebc9b6f72a562611974316d3d3bc0a65657c82c71235da4950c8a3f8ee25b79f1e71baed9affd87837d76eb62a3ef44ef165daec2e30278c7a7ccac529e6f2057b0626c148485546fac038bf646c19e5fc37527cd3e854403b0d47ce60e765435e98f812a3756931e3db30a61d7083883518157015d8f07046c00db6eec03359fbb109d330a2edb6c909fd99334cc6f7cbbe5f56d3147e271c9596d2a3210fe75a8bcbccc7a008938de8e1b8213092d5fcd5cbd0d3a337f804c9b2af48dd7db4eb08b61913a0904b5b49d1982acb292a29929712343dc8771e2e0b8af0375f2ba3ec2ea9694801a5009cc1c152eaeee37e04626626e112be77a7c8d61b5970d9adda2dc0f44d3e2d51c052302beb555131eaa2ab00d678e93d5c00baaa105ef1af134d7526b17eb29aef20d66bcd57a641fa7ad29ae9429af8735d909f57eec89506723580274ac629b0ca165eede97bd7f35760fd0ff576d66d2a68b136ef59f41bbb3ea9666742de049b4b17b1194d29ef4df05fb95ca509654c83aefce3c1f95cea25d54bf7bfcf4afd4083b229fbf4b2f5ae77791b5634d4fad8aeeedcc4edd716517a19be1d02775cb63e30754a881016dc15da4839e5a9fe9216dc804742e4087d5845c9002aa6d3e241cfed6159885c511673870324c00b8f684013d333a8473acf90354e813022eb5af7be4d2fb9eff49da192ed0d0958e3e8dc2c19fa81886a8465d6b2abb3a9707854017eda5bb446a978db368202ec530ff4ef698836e3c65ab0e41cabc4d801c44670487dcdb3d6eac4449cde4248dbc990bc39de07e85ab8b4a83fe43b49a18c4bc264646a31caf93d6fe7cb30e4288f83cca4e71477041d924712334d054b01a99c6c6f3ba25cd03e505f1a38ba1f41ffa9e8eda402f808767a500fdeda6abbe6196209b8e85b9a9ffe50ae0d8e54dfff26e79740b83e33b4faf8c0cb605f19dd8129b19eeca6d38aba8d7cd4d99409e556a77abae632103fdbcda41356fe6865210b1226e5b5b66736ea9635575c52ea0ed23989d904a83addd6800f4f11e2f42631ac087210fb3310c148bde95f61679d3738154c36bda30adfe83739d470ac082e0d2deed5e3e63b6e430f4803e601bb47d8db8921434587f7b21e1a7750a73f7598ec3c369eb7d8d3dac321e4593b34984c8a4a70247695f07b9392a0759213dedf3ab1f9ef608cd55100a85093046d66f8715ba2595941e33b241be6c8d6c8258c2f94f635bc08dd361c4fca2741ab0d60f8318c4f9a02a9ea6ba35731e0c26bd5b43e9db24dd157d0e557889e640890a9e494d59ddfe96234e139f26e4b13b38b5cb06d2c9caf3699572ff572930515adaca4790d6e9cf23d17a62ec5047e66af9d0b7edc6d866ecdd0fb2fe7f100679523ad47efb5757f79a26b7275a131d099fc65f8ac445d790623bf8aa60a3673102c5563c2c4a3f58a13809a097e52a0b5dfe89ac7b38ed3e7064d0b387786cb0f50f3c42ad5f8823cba1a796e6bfe6cc71256347468fd7edbc9f5ed40340326196008b73777791a83226951def49d2bc63aa12d4700157fde462d20974b12de267c235afa0a64f4927d9f5c9b882fb943bc75fd9f06255f5d7ca6c523be17701828bd226c878b0b0469d0477a0db85665d62eb477b355aa205154b395d7bb00b34de955a5c7649e06c633b23caf2b276cf4fd727f450f73495a80f5e35544d2314e1a9163d812b0a79208b1bbebf0b4cd77b9ed8e112ecf5db4b04aa00ef9d266859143e0ff138825f7094ee22a9768dc7c14ee62a1c655654166a419fc370d6be08331f779ee3254f98304786b7915005cced3ab7b8ea515ded4a94edcaf36df696bf19c2261fd11887045bbcecc6d7ee9be0f6c6f37de0e609735b0cb3322bced786fa58829fccbd0a9f6cb0c0a8ad3b582a6a67c2c25286f09d6b385bd4cb3169b6bda22668512112beee51bb8679ad0f0b25db42825cc8b614f36357f521fa71af961a1f8b43d568d7a6b945d6405d071e0e0a9118a65d4dd16aefe587684af5dff749511e921dd69dcbf9bc5c6e61ec6f36b4f5885db5b56d52daea11da1e4fdba65e93b46d40310c7f15fd43449d3c7401558e44b1e2350ec3633f5530e770039f6e2d3327fff08e5356ede3b988f3a310c793796c3073ced5bd4a646700ea8e0fea9d2d846c83751316ed5cb5830cac327240722b339e51fb34488c736ca0be7648d3ca93dedff1d140ca4b97148ef07c5950431e30933fd1805f2cced6958d960804dd66842c2ce831bc23b04ae8ea4f54fec0825244ab442bb5cf01dff6216158ab4d6d49a2adb553d616fd499cf53fe5c3f700186c9a8a06866f2bccafe517421cce6b9003e311a9291d4411bd26225f33935a5c457ef10abd1322e285a1278afc284b01dd5b2754365cecfe2a532d153b4aadd73f5d46171e837d3a78034a7b113f4f5c432b14cee68263ea51fb9f6ff9b2425c09156a4cdae2b2cbb0268ec3687bbc0d1b277bd37be883199f101d89b9c7bbf8d2ea64ecf7d5d8894adb1bcb02a26a5cb21c2ea16c5046cd1b9a7121c618ce6ae79ad2e8ff1be461c30e68d525bc409032a41969d878e95758f5dfe158fb9060321832cd79065a61d84349d7907e8ab1767198b490b7e941bf6685b4d3f670b914ff9dc0f380b270df59905d7c128341b1d63d828421176c3042251d93f7ebbeeb110e45d1c90790aa86a26561ee1dac144abdb5a95e6e637fc79bc7added2587188027192f7400009bce59f915b01c539a731bb8e9813bd57e6ecefd4a241e924e32d107c55ee0012b40fb26dcfa7e4ca1aef1aa8ecb08f91998fac0fe99c8ce04c62107a899a04e5411be20a56564e81a450683be904c9cd79f35bb87443753bf0e130c25925b9308e3539f5a5df1fa419599cd360026da1cc1839b6c2216038e91caa53b5b7f552a2f63cc209000d73aef9e7cf62e1e653050d7dba0b5677ff709dc6bcf2b1ea4f6c0cd14db72272d8a17a7e65e94002d62313fe1fc8251a1e6e55b029fdcce72e836478d95baca1612c69ae9cb8d43b7f35e6583ef92f8d19ac8c19dcf6c1d406b853be3d4e342bf082845ba36da00ec8e655d9550f16dd193089b300f7c8be90473051454ac105d985fae2a9e1e7e594fe8c249d533abbe31300dadaad420cff81d7564a498216d5cfe4571be624530201b288c28ea9e724a7e280479dd8ba8c872a652796f2462bc8eddba1991cd797749d4a91231498045660acd2625d2ad61b6277c27bbed39380c731172fdb24b4550d2e36c24e86b680dd0bd41df90f5360170b2024cecaa1769cb619cd87ff943204fc4d66534ebdcce58605e60cd2a04bea5b7d4b5addb9009dda903bc0487b43f48514499ad40a3b9d8acd5a355fc752cb55d9bcc72d667450a9a4a2441ddf8488a7685e9f603130f3b74e3c6b0e77fe0b6011a2ed42a3ce92b3339f0db836b67ff40d88243e9c4c754c4618b9f41b941a69d8fb8766f36b66b2b8be52be14adf4dc57015d359c00de7aff8d82c9eb50b68ea0f0fd0958be1ee23432bd0428c84c6cba2577eef8fbd71245d374efaeecd204c9319fb41589250f9ddcdd830f141a39b0282532570ecd5b724571449826bdb82ce829c98aa66ecb8203d7fcdc794957f63d342cf2360c897c7896b46b19c7f594839d7342deef80443cd6e43550da5dd130adb2a1a131405a5446cb1d66c18cdf0f05038ca2e72f1e6369d8407d35dfc17ed159b7ab4ac0442a13b503cbc6a66b29f46a7c91fd4a3a615b3db311e4fcf6dc534615a25913085df7b5f0cbddbbf1301b182622da53fff69041246bed96495deace4d8fe7dd265e04c4f6a79a7710415795272b9d0e90717192c32924ecfb20c245c1f0970b25fabdcef984a67de5d9ebc111398d1ecb266c5fec8125da39f217de948c4f64200e8876ff661e89975a422af1392ac474e83d21ee2c7d1652b78f47a08e256150d678acc804052645cf13f93ebe4ba3198fe36ed2bcda4829b6d4c037aca7cbf16993f9c87409df309950bdf9dbe445d034cdfc1805758a734e309dbec16bf9dc615f3492a0c5905c363635425c6eb02b6430677ee2ba79a38bcc05c9d16711ad915412f4424c3727c71a01a6e94e5ff65a01dd7852283eb4c64700e444b456581f60628725c2d41db9c3bd196340691738446af75aa6311b047f0e918ec7fc4e6bce383ef5ab4e8b60282a22ea79a748bf35988eb44e4d7fb576c966964f9e9868b4877221b464bb08659486a61137da8548148b206b32f7587f1a429d1f0f58b2f196ed26ef815854f1535d6cc7ede83f45e3f8d19cfbe12520a22f487ae119095dce12c77af8644495a52e0c4d3c06283c65edc3c17ca74346b0ece8bf6cbdb507d95ef2e14d06fa21308b01a0ce1b69505a22c3f28520230af9099194ba1e7159a5849deda955d4e777d27120f4b3722bce5f5898b7d404924f2911fff59cc3f66b444a6593bed841a4695e46b76ed0645b2ed9335aa4208a8b858bf1828594b1a24dafb6efeb34016ed913ee44f3282aeba046b54c0c2fc936f14d103afb95df4ba1924b81853bf3b10c1c0c6f9bdb942125b326ea00a36baf1e15e145ff1bac85936bd1761930559fdb17f194dbc34a05a359ecfc658c971466126d9cef44c22d69e358c27385a8d03e88294654f5e626c43794a7ed350b363771b3efcd421f3b4bb4f564538c8adea26486cc208095a3c5720443c6f68456776e47e9f43ecd45a5aa56f9b319fb9427c41ecc5a8e855ff000414006631f918be5be9f9b283d9d34820517978f25e7d2250e19de3137bce632cb2cffed1f6c78e0f70ca765feb94278109a619188f034750d4de01862d4efcb2b5ab6df119d538c30c52971fbed800dca305832b23b9f08b145cf2a188190141a394853e5e7c0bedf2917a054f7ac718de144c8c90a0c0449206caa967f47a9e8b7bcfe95baf6538922d2377f56e79702fb5c45dad900a2f89dcbd46fe05311cfa375a28d4121402699a877f034244f41e038605852ed0f4fa335a03019e0b2633dd40b34d71b7dfa6876f4cf633b409ea303eb03c9d7caff9e919d25d469eb9c2087647c13447149fa758af36dfa8e57a9f55cd0796db73c2408785842320e75a04dc2656b9e31d0b451f9f69848414afafd88e2cdaaac2a776bf563fe5375502d512952e8b14271d4e8ab55060cdf6ed05476b18315117cc5f89601bcaa6bd9291ae5d44e13e9662bf65b13aad423e0f3a869f8464ba5cac8c2e2361770c6d879ab94c55e79881769889f303323974912d3baaaaec13747ac7ed049da7b3c71b8d7fb1dfa81e3184c40602a780ed7420823acd883e2ab247f22ccab7f195bfb90b9fe22eaf15a699a0b6095d465cee6bea959136ee7260ff8f87229f2a8b60b8b549b977a47c12ca0995554e4f1be44d4f09404917643a3182761d7e23e7476ae86a13058e5c5b201da0d8d21fa02e4103306a48bd95f0abc594ad85c69e267c232750746f519d611374a942455bf9277ef76232164ea7e737742b45d46b43a32ac7d60169c8a69fe27c8256c01144625b3abf10f1857940af8cd492c34cf69b3eab8ee5a261799b8f6241182be86134944bdb9caa26f000f00e4704862c2e78075465bf979cccf7584867637ca57a7d307f57f4613f8f3c484c09f73274ed3d0ae8cd139075893b26929cf58acd0abee76a955d5f33497adcf20129dbc6c7d5c3dd39d860e350a4e426290fb255606e6cae3d1cdf6f082fef95fce0062e6749c39ba40fbf34f4c8bb917ca339e020a55b90b955b20b2708add82aa7a08b0b525df10b77ba24fa0b44f7a819649dc10d0ba2b80568cff90548199f8d4e3c0337d343ee41311e1dde288fe29c432b0f2fafe9af02f08840666ba9d3087c7335fc062dd3e64e8eccd0e03505fdb80faa0194c75312ea39b65e5278225896009ce01612c3fb6756aa7865b50f1f3eb286d661e8200e13a487a70b924d7e3ddbc52c7ae9cc22c5650e201597a2fd5d0d6a8da81bd51782f3d5d5b3fef8c96b0a505179017d062f44814928ac8439fca9711b2bd3f6dda7ca3386b05b2aeed53875551b196c664dde420265fd1f3aced88b61a56449f041c02b573600cfaa058f7c95e286b4332b35c504fa7d01dea788fd5206e55924b473b8b3a39d3905f13944d1f2796fbd71aa2fababb05dbb7d8add6b5899f6097ab8cc6d7a139b10105bbd8a7a9b41ed2c83dcb1bc6989f03e8e9777d286b36fa2fdcc28029e8d4633fd6eb47977cd932ae3dac93cfb7e84e8a56ba7caa067f786020f94dd9d8b6f9c0fefaf3f1d3dc546f36bfba6645b5774a6ecf88570adba311e62751cf6761b1c57709c3a59be45371d87d8f991e3a2855082ec1dd864ff22db8683946511aa35bb31f5f1c20106a847587fb351fa0af5c4e98bf6be2ffc686db1108b4f85e38b530880469bbcafbac5bb6c5b6c2b3e9e6bb0c07e0bf5ac3b950985f91edd201820de8b512027423b3dc61e84332526111dbbfa344b62b78ed42ca9f6ce8b04ee64327f7d8d80be1b1f3c876ef139a80812c2262acf655f4b7aabc00e2ae1c28d3894b6b17787e4086e1b4eb9dddef5c8d5cff47cd0b08b24ea8a74940199fa06f22bb3ab9602ff29770fe4c59e2e6dc73ac46e87653bda36b4c28d34f54e1d6eca3099df553ac05dd1fc64bdea66093e1bd3deb8adc2c4e683c07f56620168663371fe79b87d2e866f784a5f8e6a638c810406569f42d5aea9e3c213ba946bc21acf085d359aa0b5d24dee03fb3e4288aeb2a2994f80eacf0701ffcfcb52257d91c0dc323168ca4e71fcdc7c808ebb1f560e47ef62828c1576e305bc8965a78d12cd5befa53fd9693835f8bc8227e4ee549b7f429013512045c49dcd6b5f5157f415335b587ca010a56169724e7b10ab13b0499cc74350e865d61bf6dcb298b865c93982b502d623531864fcaa22a585c7f9d98899e5a869debdcea10d3861fab5ae1f1f13b45efb07abb866eb5477e8c0f7b2fff11015ada01139ca1dabe5218d9e6b5e97fcaa132f9b36550b6fbd2d047b0bc8169f8e9e8de11b25d02e30672807ca927d47235a771fdf0858778f357a2f85931eb10364692b513adfc222d2a46aabb4c687a4eabfa3e7e84091f7fa200d3349c3291b26cb65766a9cd20f40e0dd32c7a5b00c50cb448c392e87928ac6e5ef3a872f097d9ef76630b8a8e2537f8a747c213bd7994054b2eaa747c0fc02dc043fa2ad73f3a0be8627f2f5d712352e04b375a5c9d859dc5aa8a964645558e81fe810d26651628bdca0f64dc62f7f9bd3a6b8f1afd43f15e596bc93366b99559a556d9359a1b2a2fcd0dea8f646a83661ef2822290d7bee20655230a338fb430f56ee254221153cc3e09fe38c8c077936a552c28357128a319ee8b73b387e2542d60684ba91c305df6a343d80af2372b648eb5faaabe7bf3f65ae4ab7aeaf4355d6a4f03495099e2b3073da23f394423c44dd0820f2a397fc04c23283041d39505ffc6b4011441cdc0c55443fc140a089237dd40ce50ad2f3fc9e56e3903576f632203cddc39c877578e3e4b636cf5485da4b5b5a56e063ae7600c5a278c1beed2f676ee17eae5c991a288dc46c09bc49b5fa3be06ca0efa44c4f33548286a934a4c2526dbb9a0ca03e3df2bf80254a83cb9e94a0aa2c51020dae7322022e21e907b7f86f77bd7b03300e2b779ce3031f11238c14ce371936a2d802313f01e85eda9dba3b8f188199c96d351781c501495e11cd88e0aa08578b587c8cf49b10869b34b22a05c46c9ec1e86ea45698f3ba08bc028a03769555ce0124abcf4680a11b423f53e92c7d8f7c201d03c2fe985ae8aa5d61cf3f6bfe0d48617d0e46764d9b48844cd3b066d5708ae88f83a74828e1ef14a1542ee9cc6dbe3b0e9f0a00d675d0e9022030d23e65275b4820636b7d4cb0dfc01295a08d2d00e2b362de81dd4fd4989c6585dd4a142568835759ff9adbc17cca75abd9d0265328d076563353043d016ecf6c9843fe63e23967351688cdb22c16ad8f0d2d96900221a5909fb9c92856fe534a8728748a00df603e554092f63317edc16a51da430aa15d0326bd49ee101cf769226925a5e1c810f7773235395b386ef455e8127a00f8db717c1aa56968018ac9576fba5402293a0fc80e290d72c8ba84e249c970447b5a6827d59d26df889b3706fa452fc9942926abe54e40c7f61d335efe0c2d5ebe747e04be6168b6718a978447974bfe1de01c15965226b1df45b5c610ae0777b31b80c349afe477b4eb661910b7e34cfb587c0f8cb60f08a96a914d317f66dd5bbd8766b74e456ae7b6348250199bc5c0abc237cf28f6aaae8c47daa7c92d83088206c686192821b3ea966fe44d3c5b280d403f61fb1ff8be9b2e87165df07e2ac1b10e3f0a63ed569b4f06f139b1686af08a6decd91d56679993230ce58789b30f4f3e850ec7663d9dbe5e1f24902726cb781ac2160fae500899b1666e8a82068a62a9829579e6a03d7105a71dd738da3df73329298aedab3a0de7854605eb773bd5779b14420e40bb9d7b28925620eda217bbfc36e085ae51eeb04d9e006a5ec5c32475fcd54122719cb55708dbc745461d479ac3b3ea1e009babf89a9249b3a7c7ff4cd842246ce5fc9b765d5df873c7648020de0315f161bfa9babeb3f642cd37ac9e911325442ea9899f0560e4686889a5fd68de04f37ae53233d399846d3d0fa31a12b3f0c65ea6d2df1a279fbf4a4306ce54e538892e3101b0bf1929771563aeecbddbfb0bee64382245a8a295dd178a8ae8b3357bc237843ff573be682b936f528098fb394a4076e9c4e647f3fd1b2a0771fa05d03e135d935afa4280fcaad78164796dab09c1b7da2aef50c48bb574c1f1d7b6ba3ccae3b2e1315731c9bab0dff4220f236c711b1886cd6160758009ffb092d796f6e4a27d316dc3b5004b1586da4c63101e98396b13a881a37b391f3cb951fff4aa90d6fd0c61f12d5e6ef51a779933e46ff9983fb79f9d9630d7ffe9a9e246b7a402f48a62de6e51596193f6726d077573d3346dcc3605a8f2c7887d71e8ca3d7ae422bc2cb16cafcc17089a7913b173b1a500d311c6ed73e6a1aacdca082ca35573ba2a8f9e427ff393c0759e05c2ef68f95ec1c0f6ee1c3170ecc197cf100958a4cb04d99fe9002164f9ff232b12ec8a4ba83416508234f52ee7507308a1f46910986f57c3816dd32e471b9f363c03e46dabdfd8a58b33d4f5c9ce14400abb0aa217ba218fca7704c713cdb0151f1c26312706a69ccc82f6c6d38b5ef8fefdf0ff725f495dab5cd9dc1744d0905e2ec4ed50270f886e13dcf6dbc231db30388e778ad917ecaf831401e32edfcee116d28d5078d29d7d8777a7cbd761e1dc59c7ba6f43444883afea5b5c62826d527c5a0ec22eb8d869ea55df20e660f43d75741ce9cb4a4a7abe1d2a37d07844a1c3dc0a399bdeec86f9d45b6c9f7f0a147b7917f3f74f1b09fb7ecd82cd6ab78114e5c9b7137f5e8cfca95bd479da1e28078ad43ab539994bfc3a001ca9ebaee86df06d36ae7523172e3b45922e4eafc03cea12a23ce8fc7d1691843892a7ee93ca0e6223cb153728b48d3a74880d9c2bb3be50c1c4b8d8835bd87cdecef7837f55f5d5dd6f152fa228ca625b82b25d3872bd4f6204bc60622bf4716a42577571ae72213b71992fceb199efbdb5e487befe511b04854af1c4549af00b4471b06f3e7733036eac93d7aaddaa2419ef771677868559c5e0f377c50c9045c5c471459c23c57499aa3e4fdc8327ad0edfdf9cbf43a8c72b6d95eeca282770c8150602018fe5bd556cd2a94479868ac2069831bfba58eac8793cbee2edee362727d378cc3797839e39f5bc70fd1e80d9fcc1bcab08a310eadb50221bde5319a9760abf1950a45f43d0694664d83f6a6f73d1a4666854bb7bd3b17803da41eb69f545b26358835ef206fb671235adb465808057e98252233cc42ac22c5ac85390f6937039ba217f12d72322662275e001310ec7c1b0feb2bdf251263a280f4f54ce24dd0255ae396ed7ebdfdafc3205dc8267e89e3e2c8639ef7f6f81f9b5ad55dbe11ed52e0af2ad71a7eca442e04b1d1c0434ed0641f23198f9893b8de39042f4b22157bb5988a25c2af76994df700e5d512783f2effde4def90845307bf1cd731c13b66a4dcc5f25829689e40446f6a47fc25d329de18eb703a26ec8291cf65c2de7a9721c0327d17dbff516fc3248e4660c6d44e48d7cdfc7b05dc93d2f9b516ad68903d96421e21e509b9395af22d6008c7015e824ee62f5b2fcb4879e65557fd9705bb99cea488f885a8d2ec91d7ba8d1e3d10d7cc90c7fc87b09d3b2fc96073172692d4ceb0c5f8c8fffa0a369afe7eafa3783a01c2a3b39e1bee1058db9a7e0ddf21c8a83b59be32aa4e5f13cf61ceeae7c794f704b46f029b636079f580c2d956c765c05becafa5964d87e93d4ac76da154e7aeaed3cfaf9bb657c3dc01b246ffa4a407f9eefa2bf055ea83c55c31e66fbf2c940363309dd0012fc6b13cf14ad4610a756338d8d3c1680df3990e3078531c8177b274df416293e72ed5ab40f7f234575b28d01d44758f22a6d4fa45801aec0f285fffc350456139e5a36106d9828a283b576b274d731dba1972a02b898ea1c1c95a338690acbce938829f349d4be331e892f40ccd8dfa6f4a7b4a0d668b63d0d56466ad4181018393fc05b02ea4b378537385b20397023e258942de26b18126ef2b17bdab8b39bcc3f02acbc3170596e5627e9197ec421c31fa2d91105556b9fe2df1e87ae0e695b9bf14ddd7888ff8181dcdb43ee1e5eff6a65851c9d68123290c8610829ab3b4a590d6090e6e59adca4977d8e49fc8095308bcfc14e89d26dc894ae3083318bd06d12a845f06da08d17bffbce113c9f95cc2fad41a381ccccfe9a94f493fcf67a0075d72f5e94a31b865ea93b63d9bea62f1695e15ef64e7e5fd219ef8eb764a6024c62c45fe13ffeaca8c9f25cb68b815d2690695de91fe3b1a5dfdf74a7f30916a9c641b075f022e305b271193c96733bcdb2a87e0b9c140b5019261482b82ac3962724cb3eb1697479ba1f37d12bdfae179ceda2af505b502d2d4a99f40fe4ff368cb030cd4925cc67c2c2f06817ba0ba3988fb770bdb689a8dd75af3b38e805bce86cbafe6da26f070706c6ac5e0ed3bcf067d3dcba5804b201f5306fcc39793554a4ffee749ac806a8fdb3825e77c14bba5163b79b2945e727bd6763aeaede6b73e7c9df42bfbf307e9afdf17fa92d5c40af66a47e41cbd6fae3dd41e67362442e87990b2734271ad73584a81ce8b669b3e5bb4e6e71a209e020be3b0188ee663a1c3a94da14f521400ab0a2108e43c05ede7c5bdebac5bc1653c4f782409120e30167ff81ea4d4ecab9e8b7e4884f8e10866bbccbd351748efebd9d0fc433bcbbd67ff38e375fd017c89d0d74da8a82bb4d6e3347a787d2c8c79aa10e8ea0cb96fc4c26a4f00939131cdfb26c17c80e9aaa1c1979d59e5c5df90cb0a8eed91a321cd4af29fd5ca8678485e611e93aaa44965bb83d2f68172100ba5e2d88c04784a13c3314bcdf81b02eebc9348f06ad3d0d0ad1513bc02587f0fa811fd409387e39c48f7d7bac6fde3034826e5a1c9f6e91bd13a7b5d1d28aff2c4a619d86e75f57c30b12015bbe7e00270a452f6a14f4a68ea8e00b28b25607928a3b83b94875b4c12b0106bb5b69fc94360a0859705e57f51228df91bfe705c1cb4579bd312dca9aa715b65e02d9e452aff2739b2a3fb0b5048389d3a81e9da60b87477c8f0158b22fd432f55b185bc1de18114c6f7341dcf1929329ab0c93154d8109355995e138f4040e7524be69e519de185c341ea2ca772f3b9baecc53e7583cae52fec12c8020d8d41698e9fb108362d2511eade953e99cf41c89e46aac52ce7a92480bc55fbce9801fb60f621b699a1c57ce9435e99138e58293fd0aed0253847aec157ba9a5c5037b22b1d02925dee89773aa27d681546843fabe8af9f8bc3920424ae0ad9330c126b0bfde07b9afbbf0b921648df5a48c0974b7e44ae66dd73ee0c1ccd05667126cde910910b0d72fed6f3f1405aa119417488f3673d50df39d13fcdb2dc6b9c4ead20130a404e972167ec26623b0f57679ce2e419e1eabf3c76c9aea4c0d6397739abc18360cb2c69109de0a3b91d85d07d420eda13bc79510de939ee64b45c0b2bad5e8dfab1eff0edc60b597d67328388c3bc39edd9667eb23e2ddb8b93a67aa5e6aad8c579608076b4fa11a4668e8c3fa857130e6654c9271aa526bc00229fda77ed7b09dee5e4a18c70ae7655e6616ff624a2e26c2fdfb9b47ed83bd6d9608ef46ba9241a193df857ab21e196e9a916b46c3fb03ca85223d69616b5e4eb4cffbbd0f232613cc3117785dae679135a0d29bf8686bbec49989b0a581c8e37ab581c070658b5f448ff934562ac3961898f3112423a9c1ee75d2d07442ffe3560768e5df686049c7f74d08e9ba5a7fdb6cf1302cb5137f0982ed3ecc793a0aa857a9f13fd0abaa383b4e5be71850764732bdfc1518a45172c6fde773881e1144a8d315daea4cf80b6887d4259adf95dc6e5e688ad3df61595f563d6db8084df464731ad95c9736cb8983adfc4dcd7f4c3e038a57aeb61d40a3712087a1e1aef42df33fcf578b0995b77c33cb29a966fe4302d3f0ee355f809936dfd09d27d47472badd2f63ac619b72f32c7045bc858c6d380aeb2b3391c3c0067e1a4e23ed1adb94bbd1b4b8a4a354427fd327b12d45856c6a81ac50238b254e027e2e78ae7d84acb77119c317860e89f85c23497cac94a2111259fda8aac88f4dd53a8337ab09a18a306d71beb1b6889378c2b08df71689e19e3b5211c855285e3fa339d3a45e856211a461d9a7674be41744457691fb690c4c90ef7fe1294178a09079bddc7ace9c7d62f7ab7c2eb19d3128dd9b987849cde6653b71c4a9adce1ef9fea2bdd37c1ec02514385c493c493ccce5155fad1c355bcea3fe95e8acc0a5846e6623a70aa989fc7b2c02b6b65bb817e893ed14428a3d9fc6494b9ec9a6638128d1de15e9116ecfe85841108bcaa43846ea7dc8a57241c2a04f336e52764ce8d53a330e967166390e997fc0ea26057044cdfc913b04c11527a76b7d24389771e1de5b0695364df00f4e357a1b0d66eeae728eceb8e23dddeaf86859c26c3eb94e8b0387d48763bd2c2c700a866753c0aeca0a21b8c4d5c1ab4f702ef1fc8273a190cb854a89cd05a0585376609eddca9fc079f4b015d162f9bb214e564366b1c65ec78fd1e413e3fb9193690d4e19d8f97c9bce6ced1a764627e805cf102f35320701c49070a0cb7d63f9f48a87a1b39ef16272e440be780f9d8bc57c4aead6a1f0f49d78eb46cb1f32e49c8aef11571f1274d2ae036feff6c2a095bfe5e6f8386513909e8fb74b6848c4b70c4a8b26caf9add36bec0537f9b213de9893350ce647406e81a90d6d3ae4a01c9921343d94e99bdfd4b1f8e419eda47c30623025442a55a8807a43ee28b091216f42b4c92f7800475de1e6b72ca0662b76f8f09f6a309f54106cb9a50d0045ea46b3ba7ae18654748ce313189c1b423719d5d6d45cac5d0a7400b489e79e7d067eae76fbe68d41ee7b5de4274fd67286502703dd0b1f458c0afddb4841fa8f60c9df1d80809b252a23e26364111906ef2c6de0661c5900437401bb72a2fde47bc6d36962eff0932e5bd1bed51d0562dd6f00989ae2c9aa871e1e4430cdfe7b03061816cefb80d205c455c8cfaf61be4a2020990e46a753befd034b8ccab165a86903667dd3b35c00f6ad7742bb55a50358d217cc7f7d80408016064c073a4750ef7f9e8553bc61c7a850649a2ef5773e032f8963e4e1aa17040093570314db93437887330f7b423fba064e316053e7818c412a112c78bd87596871b255c16f8db5bceef7a563163a3fc9974e899e7ddbaeb479f1ea359b691c14040407d764f7654c24643a1928fa070dc5b770a21466e8e8b9452bd49755ee0215b0844cb09acbf07e361c7f7684422803d1a6f25d2047eb72c85babfb9ddb19507faeaf5d0de702d676f7ca34c324aa9d4df5e65b138affee1104ca82197586c5d7c03007c1bf0208a31abe4778c8cf8770e486e5c8d015bd0cf1f2debd684e68851d4f6261046376eba58bcbffa2bcd7dc777b28125391317acb53330aa36e9112354eb282e88b857fb5198ee242c047f68420221edb3ae3864a319a4143847db0128052a099a11eead83b92383dbeb4d144d928e0fb162c6f747a9f75ec38cbaf4ce12e6be50b2e7e693d8fdb74c0a1b503de61c63d1dad339f30c4603d93ff885b784868eb1526d391926e6925d7b52a10d348c0bb7ac85d23d6fc1079db0275996836dff33d7b5118cfcf165cad389c4b9b2d95ea1f24d4f2a13062aafba0956cafa218c6f627cf3e128451c8a39a88fe02b58a84d62dbf850abe48cc2109ae5d10c9ec17ad263c49ef14330ed7ed41d211565bd301917dcf56f4ebc0f1506b1dcbfda1f0dcfa5e7d7a39c30432663e120ddc7cd278c4a82d48999021c4ef3cba54231b19e428a1ad8a620a8a8fe0f89675e7b6e39e7d29839c6553314641bd88733656f307b9eba06f32f4d6fa5861fc966a0910fd375cf11b85b37c4e07aa80cbc23a53d6ba93e955ff017d5072dd05902ee30e23b145e12118edefe0e46c101f69b832a2bc56fd5054cd77ddf3d851164da88d846ed74e15b4236e2ce133a94662355b5e5467a08c6f5afc1c45e6be99b788715c36448810e15c33c3e9998527f54c5e819c89f576c33af060f66e24d6b0a60d5d9364d30c9c4a8b6e4edf6cc000de77efb03fc5cc777f320439f44054508d8719552bab42d6e5a6c542b274b9756933203206ce51e67b20c163dfffd402f7e3a10f2a8713f3d89a1e5f8703c2d9c0eed6c7a02fa71d5800ea6fe2782405e475c097255fbe4cbad0872082956ec70494ce9876432261733b8c7be84a5cee00aaa48aba5c54ad16753766ed05366bf324aad2fe73bea69692fa4996342f245d688cc5116ddfd74bac45f3435fa40887f154263de54418f7b5d5bf5a0c726371862aeda4a470ff329895f2c873d773e493be4a4e008d9608eb6d670f7ab83a76031ee812a7d84d9b78886db0c0df95990b88750434493220aa43ef2814868d0a09cb620485205f947075d6d75daeec2b92c8e7937c2bb2e65d80aa77c246132aea4b4920c275c388bae77f0efcce0af7028a5f4f844d129bae7b0e7888fbd8739afd521075208028555421ee334b155bf0fda3746fb0002503c53433194bbdc057607295b3468e23734f5943a7ba463bc0b5fc08a5585ff721b45cafd66ff30980a265acbcb459b437492606b7b16acc6959b7c52602c5c21b3766f01e4f849fcd302ac2929d42fa89806de2cf7664b3ae71a5144aaafcf7e96e598808e0caae731484f8f74b1e24092a75508f24a973e9db9b1ce433841a6bafe0b7f0e9f618d5bc7b7afe07b56a6bc06b3d4325c22dcb66f3dd3a3b10e3a6a2c71e7d0d8a99cf0fd9e09e0944dbd112e0438642cdada2e80a5f4dc7053284a283fcf2fcdf3cd540aea6062dfcf1daec4674fa59fdc906d9c0e844e6fed15ad7a80006c3a0264efccdad904180047e2376ad64261611fe18fb52216b4a0a0b4d70ab80f94da8fce94cd399386b7cf9682c85aa72f2c8fd1d2461f2f26c0185fb3b3e68dbbaa75d660894a32dc8e15d8989c0747afe3c5a25a82e30109aefe9b2093c7e308d553f981ec1763d98b57f98915c7832bd5c026f78ab04fb3f21b1f6027a412ac33308b573443866501c5a29ab26a8b044aaa0bf8928986d7ac97a16eebfd06c2b6c685b2ef5a13658582cde24e5d0f2bc787b9355f4b2639da47a3ebdf850a8e9766f69397cd1e68d14dc7fac0f62d0e47aae7c5907464dae6aa4cc01f3b859f5104098c3485f91bf7e6652d71765fa8da1972095c0ace3e91104f36fb124849a82dc74c094afa734326a8b9d41e58a1c4a91290fb2b9393ce1eb92624b1276f735c5026779af6823f213a7da0b4acb0bbd534b507de0cec952e247585d2af8819d6372b31370153a34f8d6cf28668767fc9729e5bf0e6668c679cc730976957f6a7bdae3b851db197ba3ed9f063d7953e2d589df0f062122047c3ef88724078d131cd1fb3ab1efd580ebf8d3e7c017858f37ba530849e9b78e134bd34742301aabcc15413d492576314b34d68b0b59c4291c81db65ed7f19c6dcf6129f0380e905ec3bc098b9577875d31b7a67d3c670eac3391433e5a5efd90889660b850394317f69c8d0e6654ecc7a2f726d1f9afa7cfffb1e0591ae138cfc1ba50223ea043be8cb6c972318dab6d565d6667b7167adfccd1f48ad7614c314794a53cbc1fa443f590262563bf7f18164a2db2e9bd1668ae8c09bec29b5ec7a30f314ea3a8aee47d2a70d8d6ef080ce53368b38dbe6016e07ae3fd1796c303351e228d4d59b093dbeb993b09c05886a8ad774100b67e3a3981a9097e8e471cec07e4ad17568a1ec465bce4ae0edf6245d2d7072efaa6aa55e3a9243937b236af5cfaf27780151de70f44c909b4f030716c355b32619300ec3c6902376c5e8e7bf053acb97cbe97d28b03820e3487353758bb76220b1933aa87bc8597f070987e7f1359298fc698402fd482cf6e8b7342657293ba5849bb9019c243fe3bcb1499389ac116f2043195b10c8fa62b4d723406119a3943722acdc6c0bb10e1409d0e06943835c97f065b45ea7f4a226295245c438402385556bcab53a9c43701093934dad564014de95d223a4b16d28dd9f0d00745f14ba8410d144b45664e756a97a98aa50331f9e7c18de7bb4be9d59e9b47a7b331e383fb81e6aba9ab2c57b7f06d199595a94705c15d330c98dd963b5f2f9db2be7f5c29abd7ddc344f06812e8b20985dc122198709885e3786231b8e382aa7e6d0fbba53705513b717dfed59d7d531e0f8ce05d364489e3a9d3ac38e931eac7e13e84df3aecfedc21736c1bf1ae2a225236dc51ee7a3fb7244cd5ef094c73f38826b7cb2764dcdbc232534e4925ca713182dce5c18ec783f19021a9f747e95ceb0cdcf643f3532fa5a7b4c8317fedb2b490c94e142baa3345ef084223880a7e316655801f36e18bd3f3a3fb26ba5ae41195fefedf767392140249e62e76caf543d23fcdc34e6638ecb1aa3da2bd5decd6d4dd3af6b94db52e420ad13c0c72e75f70615709f0e5dc9660573f94b328e015a525433a3a3d40c82d7ecd2e778877228a65fc1e05c3d6af299e0cb5c08e1fae5bdfefd833cec625533063e544c24629bab39d0c6c8cb7123a9f6d339c52ebd1e317d4e52c84bea0d905a8f7f7331bc025330985e4f097047bc0b5f5579c2cecd288f3a10f972f2773e1e890701e5444af0de874174ed072a8d04f8925d2b9e716b4f257d403c38830243b9836e57a604681d850eba327e3b8966ef83491d11529bca472a56f14476953260b716ec3ce4b47ed8d42b33a548543ae3e43be1ded6ace54536b46feb11245984c2ba49d8dc611f9ae8d4d4b70c44be706ed7559897649409c71a5d95a4ce7ffc1cfee272c212c479314686f5a5e4e87966e27f7ff7e15f5e460c6c529129f77af5e90e22f7fb47fc85174b117e73bba8e2c6aa9081103d07bb50b0db9abe91e30567b1c000685b880e5fd8c58763641a5812195fa337b348557103fd56886e760dca7316ad3492dcfc3bc120cbda315ce7f744a7d76c52216b3f79168b799399e8458d7dc152c2c81d4eb3561a345424cfccb0b8cb1b7aaaad4de4a7d6f6574bad701b491148b244ec3bc332717f7070938a47198d836f5b56726a18fd569f874ac70a6e3caf173ed62cc972f1fd02f4b1504d04573ac4286849292c5466e329e82b8f3046b4e5b7544ecda2a6a6910030e0dfa629a50cbae5b0ead958e80e16ac5f2cd8a99aeb14525384493ca3ae51e920073cef81e62f0b4ce972300f28b2988c4eac9136c3a71aeedb7799d4ca664a9b556a955d4f342f04a54ee804cbfaefbd72bb5a720fe2bc5a970de54bd8540cfe18852b1d4b4fec82c76c9a6574bce564df2e9eca0abd4fd4fb44cecfbc399b9b1a93c879dab998b618bf39c19bbb72d3ec2c8fd265350f1c8d57155a94bb0be9ef3cb67b4129e052830dad1d9ed5c9c4dd8b9aae75f49ff9d94d389bc33de701db0420059e4c884e29a60b72786447d247d7db98b28014b2584cd875dab5a1233b6a5049cef60565884b432c526fb2fe0b6a295d868f7f9553efe37e464a3f2f8dda574fa72e8e97ae122bacd7714e2adf9e2fe06a52f873e587d381d5248b2dfc91d3727b9fbba67e230bc764c48ba16259519658d9f622064c4cfd072344c581cd6ce3f023b699048ded46ffee1b8dcc69ca0985e4d7faa6cb4fa3334ecfc796f092252865073bda9fa0642171ce80208dde5671bf2859df3cb5db754553a57380e58f32c8ec9c9b802f5354c8e1ecf70bb6ae48ff141f29710a4076039bf4e016bdcdd823048f6be4b9b79abf63abda39e7d88e3ef132ad85221ff9a9c1ef97ae4460b1f8a52b88290029ab51d377275792ad1e3067fb9fa088fd413d74f432eb9e1987251d4bef3dadb5faa775738c97639b78a338e8ad4dc50e46798904ae3ea5a20f52310e1306645c9700b7a00f4fc5236154e8e8774be5beae2acb47770ee9f5f18926579e35da93d2847f69a7870a5ccf9fd8f21fdcf82cacb50f860f3ac1e21cc2694d49ccd6c2bb5a9b186381606d2b78997ee5ea52aa97b42db03aa5588e6d429fdcbda8bec76a7b345e23dfe316dd32300ad298273f66d8e655c0a7e4efa52dad338ce375701a18e4cfe2814c282a091d967502ca25eb74a22ebc846451b3a1a9452fe4c004139810638e5441086566c328b350314bea62b3937e4b8dd3442a49482162fcbb647924f76d8a8b306b5da34a9d669dd3fa21f003fdc3cfebb17f873800c4f741729ea9ca1c120fae73df838762be2b95396497a0d248b8de30ccc955c28ef9374bd27b00123fa4a42d8e46f14947ed9bcb6dd6b0d0b042495df1a6a0fad679b2d68d1423b9ebacc62e439f9ebf5696a330f2c91d1faa1e9b0e88d7622de6eabacd47699c1a9685dfb1a6522671fe31a065597df6ec284b987e948ca63486fccc85d9f43e1439c14ca56ff0277a595a39d7963fecb0cbe1d7bf2891bab4a422598bc24bbc21e4747f092737c1a0a2574924fc9fd6f9566545846f28b2a040cc450c550a2eb553b67d9f88701ba225305db0b1882dcfaa68a133d98ee5ced3a369121503911f0cd761e7da1edc8e5d233906bf3791a1d3edfd5165626e9daa66118ed4524309b9d3d76ed844b237d242540acd4a42cb186f433642fbaca6db5c7e3056678b7ad3e5a16f046bcfa986db57fd0bada7a02a1eae103debc285d13f651681140f74d02316be844666bb0a2ba14ee7f9cb10d2874d41bc6f18ab98696e426f8b5b175aa29e07db8e33a8816bc63e71d2dbd5c37483fe3d9fd840637bb6e7e065615f559737611721f1bd2f9a0b52b0b6a93579928a4b9580721ff5454d84defff468b695f3255e08e118617cec92382f2c523029eb3e5f0718d2e9a2b9cb93084c4b65177825db644970bb4e97a4ba76fe0976e607996a2643ab061a7161ad8a8580b5307e227c73f3f24c3b6ea5725edc68db8d91aa0bc62ce90aa26363c3ab1fde317755a10c2aaa33ea2a89e1a0db2aa8b833128b967153eaaf886fc49a097f1dbfdb5c068df4c025adc6325576876cbf1f80649f79fcfc71cb91ea7647eb6df456768b04df218b29a78667ff1e5ece84605a3870b234adfcc5a91c67797394bddd07ea5b2177e328187b5b04d4349e5dc04790d096f5b224d71bc2457ea006b1d44418e85432a6c3bc15f59f1fb2cc7e47ba45542c939916ba188c22c22db5acead1c5fe247e358c05994fe8bc0e70bdc586821688a3b615cc7ea0d6d859fb8cad39381eedf9f45349fb3860bd8844ef70bb47d0f0a0a010c740163f5a2b1315de08c9eb5582cd8744fcb359de3d26dbbe1ae73ebdbcb2458a7c79471b0e9d6728ad688223d8ae9c77e37628381598b95c908ada28808bf7a24f4cc48d891e0f43a815110f1c068c36de6c24b17b40456610acdc98858f3187bb831d51607e96b62765c9c5574c607b3c337cdef9685b3e739c960baa639cb47706c93da088b1cf17041e677578d1cddb9fd73c157f2cab0afe17ac9374622564329575096df57d562d511c1888f1d1e735caea8196fc17df4925c44f7124cd6a57c342ba412121c13453a3c1fde84fb8b1154f65e3731ebe4a7e8617cdfd0f033bf2cf3c7df68676fcf0e6915bc3c6fc80bc544d417fb985a0746b003e99653695d802eb7ba19bcc8152feb6ad4bdc9547e4268bafc0c3613dd2197a41559af993cf031cfdb18e2750c92d55fef83b755a8896d3cd8fa303eb0f1601937860ea542d3cb6a7a36e160aefc247e0eab69c45fc9362628a4636c5dbb15ab97623056f6fd58f80f67cd7e513e69ce9f5b6dd473e6662d8b4ce92b9eff50379444fb36b35037f75d7bcac2afdba1732c0564ad2198a02be2a93840d38803a5fbc7da6450ba21ad6587e37b8f36a55d7edb0610d1a637d455f563dd749902b39133c51ed03f5f2d73ae8678022f26a795d38e1524c2847c4edd3b48429bc629b5c5a72c8238c791144c26b0745caf2bf742bcdb0d2b6c335fa0751526107875c1ff7132f9b9de6fe29026ee7a5cc8ad07c74b26946342cb521d25ed56756d217fab893efd05b298009dde64e6de5b3da0e895c75eaaac007fbd51476567874ac57e8c5c83c12585a6f5fb27d3f72de8f901a3afead09fd1227bb74efef4040bc335b09ee111324b6f0cd214a2b662fa3c0a973e2fe314c5ff12e01d0f66c9630ef642e8bb9bf8c9d5350c29ee88c334f534f47356cfd9e9c8049e9fed34a7fb2343c673b1d366c8247a9a1f8668747d19e4b95bc1865601b9738fc2e8d614932ed88148ec16c7fb8adfc6fe9ab5bf4ea572fa972fd347b53e351726e0b90d062440c2589b0c73af771e6fb9601b2e15e5eaf3307fcf4885ee0ee5a9db15ec63bbd94eb25347013dbf2632c39751948779975195cc1f1cc7a46b448ee427df17656b0c2cf60f9e465fa51caa0a5edfe83e4803308788f51890b27a86919a75f14bfce91e76f1bc278468121ade1b75a520be65dd64a505990f3b0066aac67f2d79ac54b41ea8fce5da1a3bfd4962512b8d6033a45b738583bb1767220677984c6d6e8caa6a258b73f8a935da00fee4811297cd906b07bd55896a1050fcfb822ad0d29035480fbfdb06db84d2e8241b1b82a841f828f98e857d4fea18ffae5789afce95e7a197d92236e89a0b06e9b6d8e865d0652da5480d14c16dc4a57ae9f6207833fbd1d24276fbc708eeb4d12fe7ab60a1fc5d13b45fef11a17c2c0b8ee1acd9b06b6904f405280919cb98f7e0de35f90915dd68db43db756ddc9e6ad529eccd6c172d4e941ec50326088e9126438c0559c529ac9039011f492060477ec0d197c8ef08342a3403dcebadaf43f9e682976110d2439781d0847bb77e42c6c4a1e160fa71d5901b6640ee7c31dfd876a8e1599aea02c21aed4f72aea3b71af7d7532d9fd7de2fe9c1f2eb56ee1d025b71f0a908706cd4e3214b1ab824c2ca890c9b895d12993c0a0b78be3985c3286cbf76c329f87b0b23a8733c838dde875b3cb89aaf268785b58b06796132a1e6fa7d7e36131d49ad27d62f1b1588048e9d93758a8a5306ababa9f14904591f8dc52f3b5bf2a2d1359542f9373002a4a5e39e9ed6323dedf56a49619f1a604171153cefd02ae46bada3e3c08eea4165df7cdfe4e9618c1b1a0551909f646f08a9f39288a6b93fa89da5d9d04708d017ac8d60f6d1b26769117f2a70e5f44d8078514f93ff2e4ca6832f8bc0e1255abbc6e56705c6b601143e802d774eb58c7fecef97d0f605f34bb88f77b7e636cb037e694853db6cf18e156f2f7a5994a0d49c98155cec4f8d0dc266ae20f5f96affc2c9c2a4c1ff14eb55e9351692a784dfcf54aac88df544aab570360eb0f6bc09267bc24c7ef344d70b797e85ebc54dd414d75791bea4f1c8d70969c45cad63955c809a8a13e80eec9de17d8fb32e4724b6426cb29e276279ecaa0d8f85c97c87470d8eb3076aa89d4dc103a89824123bf230823bfd98e13ec3cbeddb92bc1d594de45cf475502fc8c38e19fe7e818b134a7c6e230120b82ec1b317fcab33c3d3f44af8d7285c68371f9ce1a19912c2b9eb893c810a49a10975d61aa4b974454a8483a8344a4ac6a29a280d4d31dd2dab51ba37b423f972bcd44570791ede83f7d544c01eaa95c8087c783379f1d7382cb86b028861e97b0f9e1412918418c9bb67f103370ebf4647146c7a73d790dec8ab7762e0aa2e06012caf14e0556676fa99ff611759382a3752220cb6483b3c7958b36dad524ec2365a05fb3478e0677d0c0316a31508d9c1ac6c661066f08da0a6637341f89ea19db72236ec782c7b7078d37ef0e228d4030b5d6aeab97c87a547440dcdda73d7e9b73fbe33e335f6734bc45603caa6e9aaec0ce70a5354063d89520f62c48fb59384e4bc7a100552293b2d9bcf114122aeb72156a12ced1cc62c327264e836f06cf3198a83380847226dd368956bfcc0e2fba7179feec71df66d4aa9d5f82977fc6ac0c17b0179da5ff31e3223c05e501f8ce8e421c7e29706e6982371753a68615a2f650263da2f35b772c251e371a216ef27e66db66980f53948da4142983943af347846a276df5cf99a0dd1a951c89d8e8344cddda6e681a902ca89cc1499c4ff5159f3eb6276bfb6691d0d54f0fc01a0308790a42f2ed8f7bc464cfc7c59de36a1bb0945bd1527f77974d76fc0bf084213679ca6d7ddaf5923db8ab07fb07848737d78cd9be4e30f00d14349d9ef180595e582049fd7d67d686a871f6a2eb1f75ecc510bb175cbf079207245c4926e6ce06aaad2573dcc6630fe03597a3fdaeeedecf2e8756d952eb8af4365afe22fee01322de45759c4f0c4d3ab80a9d69c6c6588b96d1cbdcc9b19b649c80a92a840254bdbd4aad4529d73960cf296474059cc901d9741adba38a3083fb16a4782973f7793bba57cf9233d174fb617eee839042704e75bb9dc63af91134fd405b689812a0dae8c77e819696d1f1aba576ac94fa97c34579899c46696d99cb431eb0e21b9a1430e115cd200dd333dc478c2cb9ca9e5069f43445de37a1d9c865c53303705ded809f5143b43eb502be0972e406b27ffbb71f4fd2bdde8c0299d296e5b5d1627c108fb83c8f3880426140e0008f520b08dec2d5cab81c1857c5ab75698ae12e6c1252b98c1f8b041ec47687a8c072781708f99b6e957777e6c0850c08e6a86ab2331f19e73ecce77d89eb62e7947a847910b3207431b38017dae8c7ecef138c02ce3db2147414c1a4bd12dbc1ccfa2351ec34b53aa75d0f9a9dd1a03838730ebd9a8c829125824582c20fb8995024c36e8993f3aa4f4479708b30b7b3b1fa3a5d02fd096ee3b4848f5d40e44ebb4d1602c83d853f0afa1203a36bbc27054181a70315f98d0f52354689b1fec53e707a85bd7039f02957c46f37d92dad5cc55f1a146f2f9e348411851ca6bdbe5aaae584f8c16bf9c2f6ac87b1485f758465dc6349370a5c4d7643739215212452bf67220f96bab9dab7d82c617855dba5e68cdd91af020817dbe1b43d297540e6943a7a5cad0d20283b0402449e70c5f06f2f51c0ad9c1d4b677c02fac0247fa2b362487393ec63a86b719eb3e2e6a13e0dd387b51ba5aa4554b875ffee5ba6eecadf71762e250249f2cbb741e10e88193090650076c0df2edefc1cd3787ab2302c6d533a34c2374dbe1df4a42b7a48992cd193e35049b437c72fa8705a56bd824ed2f7cbb15175e283d3557dc6df7537ba2afccdcf7eb7dad48140b1424e9be44bc397bd857b848c38d173e3a9d6b01274c495f92b03695b4d4bdda3122c185c61510562e4e759af9796ef294260c0185c51471233aab2ef81f8a70362d7fd2972ebe4f2d475cd81a173dbf4f14241365698df7cc9975d1840064139fbd74e1584eed577b2c1b22118cd02cf8a34f6f9a98c661461ae9cae5f0ef85b5da85ed141c6ec26adfb0b57047146b1d7d4021181f648fa864d061638e448783ad8b1ae789d20e14a0e51d12ffb7e8414789ba070ab2064566097d327c12ff9f9fecf199a9e8e5fde14054fa949978271c1f3c8e9561b2801bc99830e812672347e71e63dc4b4a01722142d4401d17f940d768cc4d241274dce87c9d1eedc2f3a14b3089d3906277456b3501822659114ad8dedbd0f229b159c475edb20fee58d3e3929164b7ba4c846bd3b01acf23affee8d54f58d9dbac50f57d298e59488656c6d74abe6fec0bbb2c4601c536d4855fb7f366f65de1fe097c3f2f93fe1df2c013f2083acdbc3498b57794e447ebe8a7de18494deb4d77b150701f3f3b0ad01271267668f8a0a41492cb6bdf988d7081f9ea5b09adf08bf1a241700238d4b3571c62144058561c793331e541fc6d7abd1cd91724c00b06a799b229cf84e81d04effbdaec7fc85d236c8564487269f43ea014170003f034f2115dac966edf30d4d18095b249b51af69775c7d2ef043150b2bb6a1f5ddaed14ed6f28cf295f4d9296f2ba5dda9537c651b69395147ad5bde61dae10540426c095fa46d9062a858b6ed3a099b47e5ae4b4261728f1519bfa01cd1709e23d32df2c839fb903e796089fdfeabe989188b5c1ba8672101b5e47b9b98734814133562c109469dcc80fd814fdbcfccae3cb17d64261b1c66f6ddb0959872c154d139d938af63c35f26eb19215a61debf138d1012a6d6c58329b4927138d8a3c32905bc21c6ec9259791f88e9796eff4840e518ab61a2fa4fc4e55091b5779f7c6ff462d8c07d497fe93fb398b5a99804e44fb393cbcfa0a265e0917e39014238387a780ea4380f18df25f4d1b9e76a9fe2b7dbbf1e6f2dab0d8addfe9e904faccb9ba753984243e65c60a8ccdca3eff5bddd83883fdb38e208bcd75a6c1fab6ea0719a954944d84d46b294c4b97b496d8bd4f99cd02c23e93ac34a62480ecf1c7ea94831feeac0391c931724c4b1c44914859e4a25c2c809f3de01f796a2d5c95206966f28676c9203ac2bd241aae724cd2aec94e7c1464838c47328f98211f5c7dd4087f6f05257b05e3a4edf7213e5f2d3ccd7dd8fcf38871b3d2a243b368b2998207e0e3c92ad6039be83fb37b4d8c5e440ee38588f0b50026bafe1be10b43f33b483340b9a756b85b57fdcca01d78d955517398aa0801f88957413ddcf6e52c2009f139ce83906bce47139215088cc716b13c55910b64132ca0243d1dc3eace9bfc9c134d788ce0de9a3e9d8ef37c5d7cc33c43cf301da7946f59db7436b9762ded2e19e760b53db1a5013ab9ed14b7c9456a96e894adf49024c3e0eac92ff7b4aa276a67beb503c4082e8fd87ec9ee7e308a26e738e28840a95453ae195979512b8949d3b5a9a7b0f6cdb54d505ebf469494a7ff68eb97dabf6a004eb1aa2a6d30020d8b84aa39781d736dace4cf75239a59a2951cecb7e6b644319b62a41b87759ad31bfb081c2f4a032de8ba26605efa803b61f54a442d58842864cab7f68445c708410d7c6e21e63ef5133afe9e428e04eb6d0e9227b122e8a429eb81d683951d733a19ef713d0be3f4acc2eb91c4cddea7b29c11b4d562fc9a5d91d87fdbe5b18a3e4b8912285e8c8829ed7b1ab9b03bd9edab6f8d1173dd2e953714181a43f7cbd292f7c14ca65cfd9227c75e69e0d717824a3d3931cfee9b001958de26e57a46e07c9799d6c24f8cf834a07f3d78983aa8b6a37155357637d7f9dee21f7956227d923b4aa7e55610bae4b7350cac7f1959dc0f94a7de47939aa61c6d558adfb5d4b8dbed828b6b9d8f083334a51ef8ee3c4ce2b1babeb91b0c7343ea530b5d40af8f27ffa4c3068a32e572f87463c7bfc2d31f4e68455e4123f8d40d12aea9e2a13794b96f8fc687e9d12647d78981f92bbfb40fa65742472e1995eaae1600d3f278a0f69a7b240a017be7ff8f00d5d160bb9a41c47a4dc4ac2071b160cc601cee171ebdf55e948e3fb96f9988bcb544089955d04790d16f59f7a390dfc85e6e0efd4ab9b635ea5459ed67d50dcb54a8b96287ae12e145f34dc79601e6df59d82ea97a6f545c2636748a6d4e965bea9b6bb8d4bd1d83e6baa04d491eba255074553072f770a9aa311ca62c67d207b1e44eebfd86a4e9d5660ebbabba8d7cd9bbea052635fa9de26ac9991e1fc4fb811fde468d334c9fa0d424f1aeba0fab30e075bac6421284457c6842971aaaafe896b7c96a22daf647c9f14eb75b0bebe2d3d48a123e28b529f92f010649fcf47a05e2b0874432dd0e5ad0d85cacaf8fa7600a978cafe9bbaf165aaf360460d5b41688706e9dda1e8450253316f744e9efbf684af778274907c3a48d2c3de778cea62d9f6df53d750a11c2c7f23463411304707e16ab2e855d12f19edccfc4fd86de5c11c10710ee1f6db871d03703cca3a22ebadfe85b5fe3d06a6ecda07b9948ed2ed3ba9f8d8abe501053b0031b5d42c37f874ca248458aea5c16924bbbf3375cbda0bed1dc4d32bb98aae0961971c503c8fee0e6fbc803096293707a7b0cf8db7abafc409d37bd90d716ab7e8c4d9606946fd207727522288b60eaeafbe7b62420da4a857c95c726f39fc654497b418fb9545de0562f420cc1c847f8af992675a2ad5cd9845c93f31d71a4008be7debb4945e57121ff70ed93c5f8344947f7db3b0ce6ed2ab2ac40c8885d3576d933659c4adc34d3aa3e8c803c0adbe7bb42044e53734fddf40989d3cb5746ddc4d6d33ee3f83989a6ba9d8dbadc9293dd3ddc8c80d3485d0aef9e39022e317140dfe8f0f316b8be4a738ebacf48e8f3c38a53e4c4dbbcbd09df9c3542256350dc2c43e5675d9f0fc022f086d71494a3b67066a95ff19a4c3818984a49a583f1f0de1162d1515455b4749d740305a8b2e12315253daf5d815489b549112a0bdbe4baf6e582e503d2c7388282cfec4d465b4d6c122e63ba4887b29c159de59ce8b2f75a6224c393f443e526c5250ef7e01fcacc702dda539cc264340326a3fa2b0b80b9d98e869e6e17b603ac7a2af34b97b5e36d932ec3aea7f26a99de5200090ad7139d628287f4002f1cceeb0ce76f25e2c2707fa294280a60cb855d17bc1c3e9bae36226e28efa01737f6e292617271a61740d16ac5ccafe878ec33121536b1e42089e5781493cf7e157adbf9ac09b51f93b416e61897df33d2f0868e536cadd5b993be9341bc69e1978e4bc496b667095619012663e7228540295f3d182360c0b8cd01a9a23bf98b1aebf7264e8c4a9db0c5684afe31e682054549e5760571060586ff039b257a35ae68d315e5bc35eef283f95b455e2d589d561d58d8cb35c3d7d54cb2bd13b974ab301a443bc322288e43e8e07641e2f11195330a2da8f2c35faa2bb4cb8d58fffca81b24c56efd47f3293903d562225a518106939ae1d8e15d5309de35860e985860950fc487794644ad9622a62e5193fae3b46a982f91381976351bad3c9fe776499d26b07d175b827321c6c3691c9c31c2c3aa164f9c7a3cd1ca8acfe65d1218837b9b1dac1460e08775f7e72dcaaca8573b80d754b39ad88b6c96de670048e378001ae5d54cf1ff17d18112b3510be72f883c06be4bf39de0f34cd4861d6c45bc66ee8ffae4d4f286eed2a69bb533d4f9e77ae103e4f3e67a99c14170b023102c46497833a26c3b824d6b3a90b98c9eb7d8b61c065725bc0d14930f991b1f1dfda375883180270f1a88b605bd9e78cfcad1894ef5a4bb50be2b433cb2beddbc8e4149ce8e9d5f2e6b0c19b6559be7a999b9dc8a1bdaf8f6d8a877419b32f113694e24e73e58a11ed355cf69e7c4220bef28417f0ccbcf68f2e46e6a6090b5cc864bec7383e4416231913dc54fabe39cb16b15a8ab57cad1e523999ea4a06f7c01bf7a41dda7afee6d735c6c72a218a052bce54313077754c15683f8fce1ffd84d8a6cf605869a4595081eaabb1888014abac70397047834cc1b562f4fa9c861eb54e850e68829ee3953970aaf831ef8393263b0d62919dd9647487aae71160bdf615f08d6eeb8db0d5f989e0794576441a51c8aa39f0f4b080fecef9cfca5c32ce8e88137e35fa2e4bec6e5dda554c29f7fcca2151b83c11c429ce5c55018174a822362c9ccea592445c12a7d496bd6c3cc7431a57a6ed42d9a433019287a31c0f88e53858e57b5137d4a435f3161228bf3c534ccdd5e40c42928a4afbd2b1ea18e416eab1b8d5a7e4395ef51a868add0fd2e806d798c23c44f2dd4e1491743e6a79b7ca4f8eda138e9accc6e552caf002b2bea9570b8623e6ad4158f02f8e9fc50675b405c92ad93999e7ffcc285528c9a4502c617be317fb544e67850470382c379b57abd9db7e07b174e62319bd3398914297f200bdf03fe16cadcef82d568ec575b74204085094bddc3ae2f8bd1fe35cf98806dff58b87106811bfeb6beb0b3624ac6e33dadc6f7b6faa3ebdc9e12225ffb1f187924bf72719ad032d1b0ec546c66139540b76a0f2355c19e178d12e202a57115fb89353322e5096be61793a7aead52af43bb437fde067361de92c259b63d5c991a94d5c0bf8fc1f46d00a3e5d325daf1b72f3f65b155948fd5391e3de5a17d5a14a6639cae6692bd8fe42736a3220ce9e48d1030b53b1ca1b0e850ffb6520e17a184ff75cdb812707c4c95fadad9a2f5e0ab1acc8f966ac0eafefaeb950847e2db77e1367bde239e07ce80b876f1a7432093a3d00795eca4e599c503de0ee5ea96aeb18b5d45fe1bf470d33363043da7bfdd8e28a8df839a4f8bcc40b609ce310dc934cd73d7f6828a74b0405238f3590203aa1f88b8363e1d4636587a3defb7f87f969b571fc2704bdd7723e07c7348101d256531ac4ecf60509ef18859a53600fa06f2d404699fd318c164dd78cf8f4c858d18d687473aa2d0ae98b12cbd1a47b927b0fcefe38d7e7689ca57bd2f90abe48f210ebc0177a5a279e5f44fd66861cdcb7081f7b39edc80dc75e395f4087635fe318d7c7d6761e04a50e54d32b9c610f574f7448054b6241ff98ee51e9bd71215bd42420b51fb4a8f88e8382cf6877c1a02151a491fe786e74179195fdf84656f177a751b9878200a18c6e5356b7e60a0e6a460081937622cdaccd719852258983b7df59b650715beb20cc242861c208761abf8515e05b90675d19fa5d3dba88a9578927e64444ef3208dee86e57295b4a10e78cf38de40e2a59ff9f4135f9e739c988205499a5533998a822c50904a9e3936e23b408a995e32ef99c9c52487dde00ca9d17239d030ff9746e3484ed1bdec45c8f47bc57453cdba88894b95ae4b8fcd56a5e09f2e08b620df983de29de85855bc427cd91de3595dec8d11fdafd16aa604947be5bad57609904d7d664a453b7e7ef5ab492473c7a6e1986e22d6a371dd56d8c487693825efe659bb1b42079da98ed45698d0ac67b7c0ac36643131e4df2fffd27259dad002f05c8b8068e7d6243d14e0395d684308f7f20be38a278c5de9dcc5e6f3dc305e2636bf4ab28ea5111624ffdf9fc256b6c30b3c92f069300b6d6a369e6c53fbabf0f8af635b206efcc9ad78440f3a2b87c2753555df45b5b76af943059ef093b33304dd434efa5a38128407f37d52128354632e59c6179d56221d03aeb56db0ab3ff80a6b029025a47ef8c2e43df65fed0bfc22f6f096d0f609831afa7fb38bc824a632b6aada9e884851fa0a1f5cf36779aed7d4eecc838907599eb4ec1fbb1a5f2c163074c7b5f36b5394f4a1beff3c132996bb1cb73e0758d17bd6cf06838f96d694552dcb247ccfd4fa50dfda04180b87fc2e9affdd831a9e582bcb6da783244e3dc98b5052909112c42c468c2ca74af55694a6304a3040432c67fa1f809cb9684780f35cfe5da56df35b1cf6f64c66e40a1a4f5a70f18d0b910b326801ebd94ccb6ce3c4dc08d688596b5c7d590d1a19c0b3a390f0dbab1330cfc1e9d944e031392a8b1ec1adf94d61b978b915b0cc81432b646fcce9d408a34c343d26710bd86c398fba545665e8aaa6678a131b8b7078b9ff770c56c89e6a62ab87147a6307c17068869ea81fd89f90692e5962f153f34f56a6313ed8d8ad77a7ea553e0dd0b8d63499cea78daf2baeefe2fdbb7ddf5dd5b85827747c17b382d0008432fda005b0134a4bfc515e9f28486e530e1df2ea0516c0ad9828efd1af488cc728151173407c184b093003a66e1182ec7a9405bb45d0ca9ea1fcfdb55fec777a325ff8a64a26e8b6e4da1ce4a4e47b5c9caf5504d16947295db56857a3c51286466b5f5a26b3b0cebbc34eea3a3c8fa67d04d910724f6e51d0366f6a29c1e6f6e2fdb7daee92f2e78a4a750f477f73246e064dfab1f6b0135713a7322090bb87434e85414dfd1c786e91d01302d50b7f95bb1263e44ec66673f7d12a375574225bfeb85b6c2af4b93616c101814f60673df79b19274b9909c73d0177a6d26a963800514ee5bdbc413129f176a3b2f57777559afe300d6159875481e3d6502fcfa7eed6862fc68e3783c748a8d03e5b38b3ec00b21ee89feaee4ee12e28855674a846a13f03af21894dfded9a83a27b0f3307294f43dde28237a3dfff3deef6cae35dcd5386413c5f46f84664858a6a6a50a0670b4db23bdd600a6a3a66086aca85fb404b70eef710e694043016b388a560869e4bd5f6cb2490f0fe2d215313c08d6f8346e61a9203a01a2c7b96d5946ff76596df2cf1063131d50f8255bed9094b2c03a93a5eba5e4ba6bf28105a5af7dbfeb2251e12a314ac1b58a0d3818f7fca9bb77c5ac63167cc5129c251c5f04331e0670e603193b8b637f7e2a11f99a0ea5ab79b36e4043ee204279e266eefcc1d2e6188caf0020946d63a45413362173cae4e84402b946ca3e5aedebab5a6c4e369a9133fd47d4a0170933796a5bcf79abd1c6a3bf8620576cecaca684d370e0d085a4b4951886ff3d8e11deb65a44ad5470fcbee9656231a93e30c66d2b34cd38e0685a64e2918c4a02f2933a06c13799d13820b796ec41aeccf5b531573c47413789a848da860821eb3b21e89700580e9a1f2ff360ba1fd1c494f81cf14b78bfe8d91238753b7a29c1c6afd229a168d286c73bba8abe2e20889f66f7b9d2c6f7a73fa1ddf0f10e087064477f3c1c3c69e188ea03e2cf0d8c305677700fee2897fde5b9cac88c2a4ed93bdf3d354fcfad0e1cdbc8baa525330529fd877bf9a6f6c4c58bb942d3997450f34f00dc9394170108a59165e46aec070b008026af6f49ad7bd336e4c518bb1fab701cdd68d957c6608326bf39a5fe68949f0f5ed81f40ba6ef445fa029f1d02c8e80547aa08a2f8d549e8a389cd890ff526e2168e1f9ec446a037123b246caa8d80530f5acbc74a117d14722a558816b7bce863093738f6b286f880b5ceb53a89fa528ef849b00265a8d7923168764d5158a80004bdd55080c792dbe4bda4cdcbbf05ff6c109879ca4a9aedcf7c9db589e778cba800782500217a7e0be31beef4e89f027e56f59c30f5656ebec1ba05a8cd9d4614d19d9dbe148008f099641d0d6e8a1cdaaed26e1a749988ba3d372778263b1765443334897cfadca1f37d5130877835b05ef0848d1e64ae12b270bc1c776e885c200039c549bca24de5ab7108885718d8df028750a4a9dc4292a294b1b63c078f8691501669fdc421cd38da17c0bff68a4ff3b679f5000da1a2d638bed89aa724c6cdf0540434f242ff77dcd32914e3abcb1c614d1d7ac21910e5607843919e29759be6d49c2e9fd04c7c3d8ff2ad58a000206f6c2ab881fc12f47dd6db5dc56e3347d0fbb77381f9b6a1b4342548afb8690cd9527eb554d86e17307291831bfab89da32718091420c0fd6fd1015fab28064d2c261e3a466861a8d13a94e94207120226e5bb49180f0d068eefcb5ded8f84fc0bd4dea4ea8fd2aee9f79d8700982a2275761d5f0f3e4841a5c019457f122703ab808629d467d73cb89bf99fc0940b4e7ea96c47c02579a23e18eeea4e01e2a656453d0f1d5adaedb06532330f7d6be087febc0fb7a4414355362715a8127704e93ee7cbe34efad2f7d4942c1fa87499a61e620ec273b38dda610c76c22a8f3e55ec4112c6e872f6e96aebc14715e34648a2f47675aaaf8a3253040234b4140e21ddde096dd11f48943d21a480ccdb96ab27b996a75302f6b76ebe2c7a8850c5e6af55f1ff156d353b5ab4e9eace1f7d63b96365f311aced33cf585b75688bc5d260475cab934667d4f7210f45977c24d98471db38d40b8e69204d40e80436dd26e80c182074d8208a79b604792a9c00c7e092ac1a9ada908c492ee5fd96d902b8282b8315ba32823b416b040eb89636bda3df997e482b11c6e780ddbd085367722ee6ccc2dd2182fa51bcd5b4cae73c9fcacf8c128ee0eab398387d9bad1ae8d1bc8d236579ceca8ec29f38bd08a945256f3211c3d74ac8e314a4f4ea8a9a80662d5d51bf05f6c4f2ff086c9e8434c05a0e9d914455e0d45b1ad2e26230d577599e08a994a6ce05d3dfa127729d90011e1f0def8e0d41381427b9469f20dfade170516c2f07e8031583a3eb766f47eda4f8b5a95a03f9f07b03acb6a2c9ec9acd173c08db469b6f4f08f93c8ed48b4af40835d6a969b262f01ce56c4e0df747fe35c19b6bf5dbcb4a0e163fbff4cd4b6a5ba6873de8c9ef47b03207ec5938c7ea0c143fb31f7cec85062b20b36621b1356f532c1df076424ac40dcfa85204791b3bd86a0c6c35cfb457a1f738e016d8d95df6971520fa7d34f4a5fe1108bcb7aecae0afd44609dd3d50090ac176ebfdae51cb1b33b9836c370aacbe9dc0e05bd58f52a9ec1eca01b9e8e3e0e36f2ff35e4cea194b23c4e2f869e587225187e755d743b438b2df2f7956f247d9a146826b3da3f6748158fe0e4bd22a5e05ae0e09653381236a98d6ff6df50c016464d4a668d6278956859886c3f0fe711837c05dc2f00418c8998980d506525d0fe532b91c8367aa39f14262a266a25ebd89c9d3dccfa70ae241986907f65d130f279d9fb906bcb89a5168151a1c428db71bad82f441d3edee0b9cd7245319ee8045cd2607c61ddc963bb7083b91994c83654a92da2d273ae349151d9811d2da65567074db3aff00dd8ad1193ef8b8490e0384c17fa1b16f1dc5054287ec726b620e897f11a0e154a21057179f5e271a000327e1d2b67c8d2218198016f716570fec2d94cfb56dcba67cc64707ef25b592a6f457efc5a7986ad352c77a02c5f7d94c16d11d583d9b49b25be20796b0f8fa13d69e9b3e0a1b3dbf6a37dcc329cb740db4aacce19fc1adfb0694a493572261bdefc217c30fa19dccf7a908e45af3d797e967ab95287beeccd4ffadc33458697e80e63b5e163d48874a27f66208b6d180c6a50e88c3cc6309a236eca60e214cb236bee6ee1803be1a607015f904ff261717d1a6c262fbf6fcc442197732eb7ec4eb15bc22d98c613ca7757460b9db4386fdb0a69c1214877b67a1abcfad84ecfd8449339a0d76a38c68dfb0afe9fc7b6e3dda398169655dd8aac270b557a1bd900ecaf50f52e23e418486ba302f39db145d3a4b9ed402b2a7528af706885ab124049e8d9db8f5852adffb655dac0c868c41909b353843407c9fd2ca9f73ac056620e06377e457be6549ffceebcb12aa7b75ef278ab741eb1237e67bb8e2f6ef58fb3c0fba87b78d4ee10a8b144f8ffe5ddc3fe0a33d5c729e73077d4d5e7ca5733575f222f7447681f5c5ab7c8ae7d4662ebcad638db7352538eacb9600e7f3c0ebe02ace473563013190916d7426b9643b75c9a134ba0a2374386cdacbc3698db7e6ce53144345d26cfd8d441279a2489dce6250bb9020e1d40cb223ca000f618a867cde972abf9ada535644e6b3b33235fe95dccca7f435bf785ca93f72ad474dd03715472ce21e5c0c46323ac98b268892b247e732579f900080ece851a9a9486b99f26f8dfaa5c3577169865626c9d2e8d1b250aa7fe8521c41da94ba693700104de3b2186c9d6996874dc0184cca75b5bd56b14931ce81bb5e7a6a2b51a95c0ce0c558989e0afce185470e7193db2e802622b58def523ebb8cf4d00b4656b3c2dfa5a260fa9dac8239b63ae7f0566c242a7885bb42b54f729ef63f20cbe27927484c31c4f478ea77927c42a4d7f6eb522ac9c05a0c3a9e2881c53517a88a3a4442ff8b9e2cf9a4f4c51787f6e941bf0cf3ffd2b4eb3c689a06832fff21c7abb8320b9fca961aadde40677fd0398cc22b31fd3658b2384e797f72c7cec353a43418efc3a9ba422b506a903d4819b08ddb389b369be8b976e925460cdbb6d302fd394686a2fe86471a36a8c3177be0e71a1cf43312626d770258bfbb62ab99866d26c9e19d04c0123d870cec1ce336d23c11e46319e2bc6453a22b4a03515405710100278616fc767062979dd9e6de4e6a2902274fd0ab655a9a8887445fa15f0c23800dd0a222769ef0151ff43d01251e5789db18fde56d0d8958420a2ec914d305cfbbefc8da456651ada0b862d003a8c4eb171a76324c54e5717f24de245c708544b6ddf506e89a3d177d91c25891ac7a0abbc06abc0f8c9e53bdc011f138206d86b7969067b7c079e047947ef623a2564b24ba20e4e20537c840f4348f133456776e9bb6360094181379f4bb921f555107337bf889de85aee1973656770193d6b2fe7308cf24848df6698e840a3265150b62ba810505c43c9857e48e5c0b37fff0e92686affe338fcf615e3761f4c5e52371f19f3a88eedb9597befb456fac2aebb9c07b6e24f6c9c9a40889a0c83dd4f293e1be7eba24a3f8d667459e12941b9c5bd47d6d7d5a6275d250148826e947800a0c17408efbf015c4e7b87b16256bf59df67560149c478264a27a6eebb8d3495d3a02a154fb6588d82cf0a2c6a94764af40bff9692f56a3c98b14f6abed5cc433f55f797f21af12da840a06eafd82bfc6ce524da13a4ac36b3d327778a2918ce10c0a70875d2021182475c2d112f1785d4204bdbf1782f5eb0fec41ff40afbf5314591ebb151ff4aca443df6170162c8240ce7fe2d690cc01fb82197a099936fde2b86fa8a05cbd2081184eb5ae26e4d3f32e16bcb8a000b71f518b5e8f3e9dbd124daf05cce0398c9a9df0ecfb52b3a787943de4b4a58f2b3c4a035b3952a08484a5f57b59e492bfb48ca42f986875b3acd93485f55fc1a93a0cc0c4c54fab9fd982e8787c7b8f01f64798df5cbfd7591ad263b9592eb994a27f083dc0d2f035faaafe395d1061b26d026a8f2f78005d07e7b77cf4b07fa7220845fe103db77392cdb99799ad947c8978d34f8f0b6f4eb2c3476d8b3bae0d0d45def36bad234b8f7888b3c018f3c59e38e4840e28f08bdc1110b71a18261ad961037add45fd7da51c428fd8bc59c1657b0c90d1e0befa4a46db6e4e997dc39ff6b96446c222d9ca216fc1d864d6d9788c7a42132c2dfb457da6500cfd0c999e78d9b7da5eac27bb0bcfed2ec68f2ed9c28c39a0b16d401967154ee81ec596b73ad44b9f0ef46876aece653adb447e6c095afd5ae958519944c799affa3919f2fd6f75f201fe41be72e058d10d6d3078f792f7b889477899f39ee4defe8a36f911d0a8027dfb779baae848ba3143212a793d1f42465cd1730b5052282f13ec980573fa54fee17ed7f52f0b344f457511080d8416ded6f78309c342f3160be443e705533db550cc81b68d7a6f3df3ffa37359ba667a4a8cab8d226edb8b861190152f256b483eac6e95bc230e0dd6b8b739f686f85cd16ed0a6a3f92e407804b89fb2765dec28cab3160ba1ab421a51096f6c10a4de97115a2f5b1b6f25a5a21b369218e6c9c27e2c3eda0e53e1463bba375949dabd58b9b839b29bd49eb1e5b9aa0afcaeb45437f9439cfe0645db5dcdcff23d1abda4dada8c4b03c883b259b90191acb13151f9fc58459238cddd38ab23f66c79910f04b5306c8c69f2eb5ae6113119becdd1195c7b60f65357a57da0f87e5a22219ceec30a39ff0bf2a77c2cb5ef01f9c3f8bd045b3a45338967f75ba58c19d311025f808a5b78b3e54e162089129059f4709e244ed4f9a8eb552a725a359f5ca7a67bee65dfb99cce2baf763f6fda2a2a86d5af55917df8d4533edcfac95024f2621c12665b0eb65e86e4887e24598db28f34dc31cf075a238fa175846c64a44d71627543b7f622dbfc70d6515e96f342a7baa686ddfa7bc7854e7d08db59e92e1c98a39220d3b7ce472f802a08bca62fe64b4c100526fd1e42c819347107164308f1afc00078808cd14dce6f8ef841f2a2b5d1e790d8f31ed8aed168a275e0dd3345ad1f06283c82cb6ba99f1117320069617dd70b7e674e6d4511656e0910b8054a370392bcdd5aab031fffac113ff1a4d55abf2390d5905562a87c924c05fe041ee9ec1dde09f1395ae2dab2d6fef53e48b709e506adc00e094b6179f82fae1435e5c8690e9c119e24ca5700f45b9e9d14a92f4014d419255d137b2bc795474cd4503a85ee240e0d3b4fd3ca5d16f0cadb854d0be423744ab4fbd0c1f350c8c755d3f7059b641f0bf90fd4881042cdb57268c7f14de74d2a4d63811d420efc085e1b38fd30d197655f4e8ad8dfc8aac987affd03e35fa6c49790cae5db901ac405592e7e8e18e650a771e0855ee29656167f11d98442a8590b29a30e4f2cb631bcc296c729966754b9821b126ea08f83533eb974c03624303dbbe269804bfa3f4f1053626ade0aeee5af0b5fae6629c5bd1825637b5adbc04a37fa0473ec393d18ff16c74737c21751cbcc5fb86c85125d7bf3bc1dbd9910b16f3c555b1fced5c4d1245d111cc618bdcc16f1c83d98520f9b350548e420435a9cb674938b447f95cb19e42bbaa74cc44b1e3b4338c0bbf1ef83135048e2b001db98f1abeaddaa33b5ca9a407533ca1c07053f3c12ac1f95b2227c34d689090eab2ef202875c59735e30b5d26323143462da711352915db0633628726d584da87067af01c722ea6c1664f36fcfa13d4ce22b87f6d4b274714508102c634ea725f4ee875e9da13f5d33ac6bb9b89b2c47b225cd104737f162e05a4961012672d1e1d52d88131793a38c98d9514fe3e3771e43bc10af4fad187ecedb81021ef2c347cab0acc89c9105012f04577d22ff241b8f9ca0e3ad207caf550d8f18948db91ce066a56d869c1bf1270d6c5a9dcae2bc746269104bb89dc5b91818676f8ecdb8e9f56e47104768c23abb82b7c4a08ebe1f2539347ef065582f80d0085bb6925560ffbab05d6b275c7a118295987780fd6cd0f0a4622b5ec4fa6d3188d02f4395dc309796c77052aec1c5a0acdac77afc6af4ee868e7d0ea624d59366f2a5a8fb1ebb1bfb7a9db0283068cae51038fc626ad4c75819eb1a633e447598368dec70a8719173678d0b40b64daee057b5d9779e173d67f2ce5fa1369c2507e1e6b7c0e21486a97d28c9edb18f276f05e472ab4dbd91598766cacc3d1df00e4e09e91bd988d3da3db23d2f9bb285191b126610923689a4babb8f92ba7beeff0c37ad9480fab45896cc0185c0c5dd98881564dba9c79a142a67b1674eef189eca0efba59035a30812887975130ef45b3ec0a7e7d7922449c5e47402ea6dd2a40b1e42a9ebacd7e556db8207058e7e0510d49f31d4eeb336b4748fdef184243db720a36197f7037bf41bf34a72fc78ec66a08d5dcceacaa48dc24dba72821a8a71b72b7045c4016c825224cea0fc029bc4b33530f421e5adddcceb1a66e02f20c69e5fdf6b85fdef0e8454294ba9c950154b4314a640e041fcc6a6c40624928822b1d09aed57e44cdd4a0273bdc44d7fd268aa9713dd56a433efcf4335a30abda03da6f052e6ab617458c3c90120704df5bd27ec8585eeee36934c67ece1c0b1a17dbb17924a6120fdba4acd1c0b8e15b9cef8682e261489e8bc7cc2c579aac737336ca56730ca0ef1ff75245ae01fe72dfd0906872824b77041772d8ebd695a61ba3d183fbac9c6188e41f7a8fc3b049b6323e442ee850aa42ce741ea8a903513175250abeaa874dad0757308b79863b1a810c4ce89d4eab9c29bdf0afcb81a13caf90f6f94d85bd80eb8490429a8308e375b8c61d6c813539209a971eba93ca276c8801513c14fdf056b2e41da30478d85f1c69c513b14d0509086c57bc9c4f7a247ad1a4eba3c25a6745c19a156bdeb4f0121bd583ed0f77a5622b715744f8b1dc208a4c8549dd7868f0f494a5f583afb5dee5aab0301eef3f06bf58d6a6e2fd1a9e3c8bfb205faed470aabd99e12a07e07a3ba55fab0791cda1532656e24fc11c9f76a99ce9a948525100576df9aec84c95bad6454be9b1cf11736544f6c09adc7e19e2532943218cc6ae45149d27aad75550105ee5f7559d72c069621b1f9448ba0a474d0c3b0ee0e678a234752e316ef7182f0619a7e51075317a2105454c5a11970436a075ca90bd7e8fd23e47e9d18b68a4af1ca0c59ed509348462ab0f63393c14023d55fae6290ae9c2706b977bacf224ec72029f11f28ad62aafbad7df53cceacb4b984878cea6375c66b321a9f88b26f0b1eb7b212a90589d304c3ce26a27815f8ce3ec91c42971f137ab38d7a5641d4261deb0744e01f825d76d3e0043a19315b480c5d7c7a19e6fecdeea0aacd46409cc8102ef3a0e55afef59ca8f1dcd6192cea234946774a931fb413a081270be0d39fa139e1023c5b1f19f1a637448f6b9390734ffba275caa0b0307c98c4978b4675ab167ddfa74873f0bf138a934f0680a7eefd31683e80bff8658c98a4376886f386bf1f5802a9ff7af26f4acd5c77beb02c0ac2ba1c64aef7e75208ef8709bd13de23ab4f3df7522c15882b59cc4af4c15712ab8ee94c0acbd1efe96d187459a5027af3eb37fc2d6ed2310184acc73d036b1da05c7bfa15c8c72b650f9ca3d2cd94f4d718a3bdba1d3d4e6bfebcd8ba35c17432a152beccf369444a64a97695837916d505f6b48709ebda915bb7236e27f3b08f5f56dd7b8896e4f5240b226f11211f28a47240e278df1b579327916f400614a89ba0bcfa757cf201a9a08d07991d49502d3a80d7a245283c82d4c699f9ea8a5bde5a2bcadc7d1d3a71ce3c498d09d5d79b71111732fb63b369b85688604bf0fcb5aa5b5b95e2557e9e7ea4e635be1ad42d76592fcbeaafc36b89a4f296a96a1432ae5c7fa95a989876b110872dda1a79e721531f81365bae11d2c32d51ceffca68882788d850b78ee39d7b87e3974a720e2010065c321fc1c799d0e55b87b7d2f27d91f4140d0ca4f361f8a51df4936fb05160ccd92eb09c5c9d84ed11b6e7ef6c21b59804a73912594393607224c47a1a4251016813adff86170b59e4ad8381f98fa41482c86b7bea7fc94acc5de2365fab77c6efc8f7945c1955f7dce28887bcbd76131d40bb3b21aefa1eecea2820d80a35954574c05bda7270a310e8e2af5fd2013d9863a20a9cad75dbe6929a409f456bdab880cdfe602ba3d52fbe60e38f95d4fc6942abd09d2703cda04f6e92125d50e2887acad7338a4d52fa7195a57deb40413ba8c1308b9f0f035854cb765633545269b9a76afbaed4d2c70abe5b5e61891d6cefd2076e13d74b1b648f3cd25f4a7b05db54dc43ba170b00c90638ecc983ca90a3a510762c34814f7819b0b0134a22780d6047fd85317ca2b4c917e4e942d9ecf312ed74fff4a02ab752125f0ef6fad22944d8fbed881bbf7ba01c8634998bfcf50b115e5dd7e538ba6fa213a21ef2999e6f4a77a871f3fca063291898862eedb7146fd0b38ed8d924241b43c8ef93442a4eb68caedf8813fa70b5635ae30223231f51867d751ac08a42212b461d4dc165df9fba34efff527ed3993405dab8b5aeef7be442cc7d75a602a748e1be02ef1ea4dc663343af1b652695dd6202c3ece175966e2aa8d9d4df67b4dea3ce802583ec36577f7c1062944d44b18a2fcec8a6c2d15019f3e98c2282da75317b8baa19d1ab3b724bc2325f5d378bfd427b7b6c86f9d6631f76a10483d4582bc0f33a8e60c02023de9e28944b9b48d29610eb194168f50d71ebeb3ce17e15a5f6eb874bccb1fb2eadbff6db43aa48f2d03834d08dd5c19bfe919569045affa84ffdb6e59d332411e9a5e267b9b5f165310d247d3498f571cb859e263343afcc6a6bde543f06d80b0aa544f08f262cb1ad99be3debc06ec69da75b74bdeb7fd57a878dff5fefb6a0441b0b03f640e63f6bc1b890f165b02072cbf36d9ddb0e6daa70429500854399e4f939a2cad291e26aeafc58ef925f6aae84e24f087abfe5b203f4b82fcb669fd09d6332a834a05a771f2ab0c193c78f761277cea9ab390fd747897bc1dbec65b8fe32b9ee2e0ef7a86715891fbc56b0c41855bc8313e81ab47b60a68bae0561afc9e46b6765d84010eb422240611cdf2605f600ace87b909a00c8d5f09fc50e3612cb8d5be57eb7591c6c48ed755273443823df62a0645261c78663c482a4cff3e2cd9e3853869d7c870269ab1cd0e88c4f7d8b3b615bb2e48d5321d1e1fe4ea31de2d91bfef9d4c615a774e18e9550b234f8125151db95a3305ce38c94947bf3c79a03dfd0e4cbd78fb2912aeb4251d1ea5a91c156a4aa2c90c1dac2f10a105f19948880b1d9785ce6ac9e3bd89fb7686bc1b7e9ce37ab4d0e16c03eba67ab3c5c08ec00616b679e52d484066d159782471aa31a165db33673e4cdc24c987989fa3e860f57b5d437b09e5a057a33fab02baa02c476a1a4031f298bd2d3ec6b30dd15932066d4db7e892f56d7222a23c0d7898e4c3cd19a5dc8d4651ce59901d09a7d90c62d68b27930e38f99b2515c409522ce1233817026ad4a1d8c7936a040d1fdec688218f56de6c894a5b8a15849bab52e50d487536006e4fc4f3c3f7c5d6b2e06b2fa0b045d8420c99fc639241950d669d8b98069c3c46ee65aee9511d2823d774ec46f6fff4ee39aff9bdba47087eb3befba4a84b317aa2c2d03fb2bee036db7d7baf57311a13a847b266daacf3eb16aae4088e68704cb3deeaa9a7fc2379308047d538702df05de02827a8ff280b71bb6f522185760fb1d21357dd107df98b575e5c1f459b757822f0eaf69338ce17a21f2c2cab8d2d5b17d1616b09296fba0c3dd7d89620bf43e59c25ecab0a5e6b0f9e957ce2f24ebd8b8e3b7bb55d44c2395fb4751effbda17b524fe0e5cb5d329a1b196152eff415845421a7f34eab239ebb8e5624b7eb5592aaca841516a872bf1a074cae476d0945727dad728226604f161a0bca68d697cc7df9c891a7135bc03fbad72521b041eb6bcf8ee7c353695ed03c53092858cd5003aba2bc117e4d8e3854024411e3f0821ea57c11b17030e31c226625c72e81a23b10a1bce95f2fb9deaf1c9261154175ad13f383a47430f17f796d0612cfeb4a3c934199c108df36a4bc67719100cb91782ded1daac8076787071f5a1e37ee1384209679d5e3908efba8bcf49c2a4cf6ccac2d9ed3fd66c26e811702b59d1a5e3bcf804777e4d73c7e44e75b5744d4c6f4f603110a579c548925a4231648f915543998313b17525e044e39303b8ab99270991a82a3a2dacb93c2f1ddb8809515c2826640f2831dd4bc06171bd5657d612d40fe673f9cca3b803fabc2257c00f3d93fd082144558d984fa213552d5ddfc109fddf9606c4d48e1128565000ebaa29f520365e718713daafc7f4ab69be2a5ff95ce4ffaf96abfe37ab11e811f6b339c4b42181c9c53ee5bcb2c70bfcef7125a89731922c58c7987376991a8dfd42911a85148fc6dc25752c8b4cc38f592c1179f81e48643438509205b50aa255999f43819a827af2cd34df3c35d935d7d9563a30d57fa0e70de847d2f5792e04949fd43943dbf2fc20e7e1f51987083b1d689ed396f616433614f4e173aebf44eec3a863f234a948342786a87d6e72c9a69155d998b4e0adab673f359aa33f0454b9fc5ac04824f5de7aaf8de2b970b9ee7bd41f6b6b149ff3697d5803d8a5674468f09c6af93676a0b18ea0ee9b1bb9bf1853e4f0086a27ed6d73d7654afc42c420e94b544d9d14d7c98a1ea0defc6a91c7b64ce9800367ef03bdc49077c9a2e099a9ad1678116946d6030c927440dfb2bae9e1070fb51338218833786b7844016f78aca15555e5ed9df1b0503e972145e7980d9d736df6a956ccbd5137a81c0b055957ecf8164c2ff01c16be75b8ad050a71a0ceec2c6ddbb07100c15e64cf52012e5f3530093545e7d78c8671caf3e88aba5060ee4fea741b151c140e28385fbc979bd320038d0993a626a5b29fd98449a3340cdad072df613937902b36e77b5a8484965c7c120cc63e3bf86da1374b9c9c496b3a8a204327bdfbcd95409d1b74b2bab61245d9f8fea2e6e5037559940cf3ed6d4271a0d56f5f13262191d10a78da7d563eecc94ea8e1861018e68079992c67649336b47895f5b12d26e72e7231ce3492f4df1e66282f3e1b3b63617f8bc95d978bb9b3a8c1b60b43b30413a91ba1ea2034f6e6c67ba6757e5867a41023bb5b709f4005bb46aad929b37611d86dd7cc84d8b687cf53f9586c5a7e66c8ab4253327f77a86c72d7d9b79a7b716b08adaccb927137abf3bd53c5b52fb78cbef218420bcaaec0b34e4c916f0cac55aec081df09e5839845d69c1cd0fd1d79bc3be2fe58d1bd2e2e8576f539f4f02134d3e56684fec97fe2a0a8cc71d51099cc43cd2a4a2e8d2114c5219b3392a2d68ed59535be03bdd90542b41bb6bc7c72e6c959e3785b6ec562a61a9d455bd6a7ec33f54ccb4ae8e5a7573d702b4d4260b37aeb297ab6bf26d99cb376a76fd97941278a6c2a7e243138d988951589b6bc506d4bfcb83e78a044a94010b1a1a833f1d97d32694d216cb2b81b1004e822dc3c7525fd6b4ea19a7c259adb311b76e181571fccfb54e491071842822e0b42d7f89588ac67e0d898a7739f00df662aa77f925f362afa435e158b8b204966c725292c6930cfcbd098a312af99aa03de82fc46560e35f26a14a6eb4a36c34dd4083f4f21ade5bcccc0ab3a310016d061df5523bcf1132e589532ba16baa14784c5f485eb2d8298285e95ae0c29d18bb6f6296c6f6f6fee63c660e34af2673062af2627671de865d1333edf2e1139669304a743f387b8d5b04778078529c0c1ef02d3a71a4e06d1c71806d8093a8710e3489ed7edbd7fe8bc7a470e2a73d64c1f904aa6ec925ed5a2e66dac1136c41245da04fda7b66d8ed6d832e7e17f9706dc34dcb9a8e717280ab835483f45cf328a48cc2a906a7fd0a29968d214824518822785ed7f29fd853e77949491010d953a0f3d59b9e5674397a97275732215c361117053855f6a208ebc62de871b8fde10d83c065898394782f0a04a7084c4493ff94c4e33936a02e1fc524aa826c7087a8d2a824937b98701e805b0c45a5effd3fdcb04e338886d300891edfb7516c71a3d3ab4882cfcf20982fff7e80b9bce4be0c4f2582812dc09d862d28e08cd5647ca7ab8b89734ae615f86629de691c9c75ed5b23325d78c0daea4c9f38569528d70ef149fdeccea2556bdd36566acd5db5e80ea7ef7993a72823a6bbe4a2ca9281667c6a7cd34e043487b7107880d5411e817ba2614c0e781c2d01008854f2c8d6efb105f480299014ac90e0f2edfba65eefb3079d5fc74195f86e7ef60763be2ec61d3f88947b475188f714b953770c7ecf70dac43fb0f2a2b5a6e144525fa81867817c9f540b60be0e70b4fd988db9d4fc982576d48653b8a75d81b1f55207945b8bdcc77bc050453d9b7f288cc8e3eaf18c9f64f00e7e66eaed32ec073e80dab776c1e75dc3df10f6761cf4add9c77da6f166a50ff6756a9da247b4963d533e2265f834c180e3b583c50c591b0ae0ab1f6e376439ac1cf85ce64b1a84a0b15c2ef4cdf669c7c9f1666ef7761622d2bce008e44061f3827bb20ea872449be94a06361bed76b01aa35d786cd2245e30103b606dda69fd845a90d9536f95ecac0f4202dcd8de59a4146b157718867ca2ba15fb6b41cca18a9e713c4fa041de061c99a875e138fae1c768bf15383425b389524ab1c91ce97e42324319484edd171ff6b96e8de464346d63164264781922d513ee9cd3796fd1b507ed8cbdf0776a060e091853340e49ff19626e05e15110487f00363b7cc9b88219653e6856141cf819d6973916a465ab3f1283ed1082e27b3cd26df217ea2f9de984333da2d389575951f94b6269c7f9d418d3e55c08df976125e247d4b704f7f6e808430bf10bd4ead8aed2e6b5d6a4fb3eea3969fd64dc3213c7bdb77c4011850c2add9da6dc672c1352a75ba2c4a5c9ff5748a4167edd26bf11004505f969b4d650740d2e562bcf13a19a38c6ba3711d337dd3b68614f5498b72abaeeb2ee85cb7f013f323f76d5f4e2ab20e03cdcd65e4cc367c63f4279955173c9fe2fa25ccfa498820d221f4c6a6f64b59e072067b4b35201b5a32831d4ad52e6178c07531e8f69ea7202e789f15b52a81a5141fd6bfcf36a6686572f80f6af34d8858ef31046285a0b2a042aa6bc609231b84ef0e77750184689abfbb4cf66863e331f0b98ef8006f6dafed1b3a2b264d006cdaba4a469b39a4d36de3ef7ce6745bcdb9802aabeb332ac567c91b0a4fe8f0c7d3fb6d267827a38363c0b065d344634060f19c6fc0419000c602f52d86023d63b7791a3b396a9114e51d2efccf0822b508d32fbd37e66fb3e6050483309db566efbfb97091517e61df2bfef26d1a67e9774a4f13f41acde5e3322f9dd6e0a5c66a39f5f5391fc83c027884dc78d600aef00ef8723eef69d0556cb93275d869cfe34464bdf6ff6fe9aaff92b0ceec976a62ec6adfd2bc0863654d689b5d1656a1761b45feaa70bda19ea4b24cc8a25695e7ec63e2bc79cec1ae1f3357a6e4edb08783cab57d818c10958e6eef31ca513e94c3c40944b925c0f3bac4882be3b742fa890d1f0ea9ded8924325bed36edf8794523b66e82d436b9eb875751f355bf5b6bb9f41b819ca0c1481b1408a7cc5259b66ee0d6fbef48113a5e7062ba0113682990f62e9caafb50620b4e3eedf70e19f01a498fe7fb4f3d418154b1e3fe5ca22406e8c84a8b451958d677590e33319eece25a34b27116974e37df630aaa249d87e0a0e579ad64fc1a2acabbbcbe03f839ae14fd5c25dbe55b211dcd2b6e29e21d622fc9c559a94cde46f9dd3f2f359bde5e4c331d0428041dd9e770c311189d31845ad952a3bf978789d483ae8e67f59f35ba66afe3a71c742d6676f30e01d7fa96f3c28407aca0852990bc9533461c2e4ada7692f3e08715e68ec96ea2942288ecd0998efa648236c982ad99f0abfaec228f6748addf1c3025b6e3825dd344cd4133549323e287a0f474edcaba9ee0f8bf1c8bbb1db8914617af6c3a9320238ff1b2995538b134575df038509ee5a509e95d6f26cdc632849b3b2945c1410af7a540faf5808248c4e33397f869afee1252cde005b1fc5a8ca3774b1d95095e14b055798d0d86d42fa31c4b80487ed1c4e6f21bb7c592b65a28a341db9f01eb37a343425fe9d72307424dc39e3f9cd6d6d96e3b1aaa9c3651df18ab7dcc40951ed2a1d118e0facae462f9e8d791757d47203ef0c4854f0cd5b5635ad690f0b19b0374c234b38073009aa88ba6781d9b135071078c46ac88e1d5e96784ffbabcfe354426382f2649c358301cbbcf5b4e78019991fbfc396e9824035727e70c426ccbe415d0944187b5e36cfe535fcdd45f3e2debcdcb058c26a0b3bf12fb50794b862d17618866bed0fd29ff6177660490f60b9b2a2af41c25811f7fbe1367677c1483c536bd91a79e52980e66533d92a1436063ae9ea394a0da15a88e8c7ea9193c011485943d6a29e9868647586f93c7a0b279eb6c25835399c7a4cb6988fcbc326a4e1d7f4c3583ca5ae3d242d079b2c57808995b86f6bf726121f3f36634a658d8d7799a8fa2c71758e4630cd5c27daa2fc61b80e7f43f67401e815e1bad8db6f25d1b9b90760ee36a9d273afe6d9f7ad86b57b203fb67aacc72028a3bd9b24df0cdaaa906bbb579082bd085ca65e4e3891b619fb9a60a7f20be538a4e6190f41a66653481b3ce8b90103943732042d7c91c8a0052f56b1f717937d5f859120d2990892f9ff8c1115f4e73b4833fa9b89801c7f97d0c3ecc45afcfd863e9f1b9750f395ef7451a0f989b20ad7e8df27c55a5d35350362db21e5259a93893466507bf0bf23cb3f2ff6d6f2bfb8a2a220c6a16c02cb84b7a6a0ef98d73a31dec74e8d64fdc3c70bf3f0525b52a746ac65b1d92e9aa5c12bb0455143d845d65a3abe3d63cf322321296d5829a43bce6119f70d6839195ce920c90be81c8f6b81c61805d46fe40a2eb3b8ab1d2cc5c8f1d50a49a8a8bfad90a3a4bd1ff53eb877a7f8a6a6c6b89d7da9eced049573d5723d471d4800f63ebab17a2fe9beb8d8382e6ea21721f67122ee7a26d095042b52ffae20753fcb4d491fe8c9c9570dbc6b1f53c104ddd40ef10a7a443d846e1412ada66b4e08e14d8ecd7b1b7e6131a78985d28d517aa0714ae4ff950f64ce6d58f8131a1113d86539b063573a3ca8b1543181d55bc4ce8ab60aa34ed87436284d3488cf542ac2ef1c8e59d27ad8ce449e62f02d800512bf4eb5a9074f80d8ca48343d2f58c2bbfabf277d8764c273a25d53996dae765768f8ae843d3a6b6dedd2e1b4625d7d3fc9c0ad1493b508f45c169f5d2e0e5dd7516fc0f3cfe7caa9bff023bd97162ffe5207b19fba45e1a6dc8ec09d50b387d83b2061988235810582c3f1727e223106c0c7f643e1162dfcddd61f1477621f8d5ad3b8ca7d29a11a0a77aaa0cc981acdf254da5e92f53d54ed9d6a388965fa7ad8263c3ccd1a1e6642800c7dbba62c3ff9c226f17ba97f41f2d930ec3170e63551d96d52e2690743a72b6661873b06509e5992aeefb5e696a2bdff9660949ace55e48e2b11c9528fcb7bd986f2c470a8d9d645b563aa466009ff74a5c646433dea6647ee10157787d457cd3bc0fb57f55b811955f202f2a3076e04945d73da3a0760925c7cbd590cfa09e64b3cc03e0c050b72d9da984597d0da694bdfa1bd701a3976a156bd50b50c0e1f86b206c3916f43e7fbfda201c26a4c019a4b2a34a2832054f882233bc6ec2fe065f2d3020f629a1e816146926632877f026479d7771734d81b472bf25f0efa27e5d449f46a5e728384b0b6a96757e3c4ed32650fe19e7bd461d2e49407fd732567aec3028d1543c722b9e6cdcd5e73c48a7f91149454b39008b26d70efd730db7bdf028386ee8b5386edc8bb019c7ab94c5ae42a116ce658815db98642ccada5f6486bd000839617d4e31fc2cabf332505980a06b288d95473aae9f511a200bf72ce4f25d623095c1ad4de752246e74e0c4e0c8aba4345f2c85537c26934d619eada4e80ab5149862e1f1a62f9045240c858f15914a7e06b597f6ac480eec02d74d8be281a43aef559c687951aa15b7827d675e65ab73b37a72be3beed53d78e9bbb2aa477648364d1f08f2f76191dce51a9ceee21e76963bbc231db4978a26afa78de2e93d2da763565ed4e3d3b373ee7fa7da5ec9e7c325d903f12af865c44f7868309d0e02f61c615de03642a799ca1b437eb1fbbcd77c44507410f3b7f8a8c64cd2ddc95d9d08791e32750e0d6631305d651560d1a856c74ddeb7669a2dffe13363ce32c4d804d90133db6a6af1e8be15dd9e0da6bb0dc1749f2ec76aa304798cab4859230218c6cf8b6e79e6421d87f1399eb59d5bc12096cb5c6db46f2be7c07cd0ceb3c86d5a2014f20393f91cada9ec6b138fbafba8afb72f6a5c01f4e4cc5744b0ef1361a568446b2c1a7f1cd3140cd68166fde86bfc8d60ff718d5f318355c5d0414d725cc4bb84bd0abb1ea8714670e0ada38ca30d9047d86779e03f8ec0cfd8d070c4ff0b95bf1d7d473d0236aea111af723ee490f9ea41ce9d6da8204687a9beac9fecf775bb5994e0a4812253de5c55d657cd962818f156eb02256411b73d48b32861cb621a3ad5d6191a03320de7a1cef3c95a94bf3e558bfec9353df4e142c70b5acfd3bd3ff25d2bee312c5741e23945696efd7648ffc22195e229129e91036c9fa8fb81c4fc197143063dfd88a7def78d75f42dc2faba57e6228784515e7d08fa4579f63b0a560d0a38ca40a0b5e08d5b8bc2fa272046e3e4be04b5810f5f019ec6868160b5c36829c736b21e1f77c117e685b3419941b864a41ca05841d98e6371292069a86354d3d3dde2dc0293e76d0fdadad7ac068c4944bf1a2cfb1d53c927cb86a6d37d0fbed23f03152f825433b785ec4fe08acfde3a42ded84143a5128dcd082e89694d0d75b09fdb2d8f283b0ecdf7ea494d27ef34410b9ea2b2ce8cd306a0943dab1616c071b57f2ca71bb01d29d567d10aea606325dbc7ba48a6176961557098ab59add3b8dc99644e16e67d9c89d2edeafde614d857f6703437dbf2558df99183b35a215398117ebd6f1ff56b6a371926b25cd2fdd320f89c8b36464c878a8c88796f5dce038621e32d2483a944194c37abe1716239c8ae394b0c84539b4bde34c05573ad8d75653e5eaa696732ff8279cb490dd259123b11c5871bb1461b4400a980b7bce74493ea073e3bbebbf930428dc8d109f7cd8d2e1c589d5473f3c1acb1196e5ecb884cda45aa9ded7666feb33ede802923add8e8dda5f7362c959353720461ebb33c2f350d50851f1bd29caff1d7dfec13117833c45e483ccf3e2573213a79b7b0cb542275bf64a48907248865fae7f11f0a267666e2fd632b8040f84330f2bf2a18155602ecb42ddd392764affe081dcb74ca10b4ef9798d46bdc541531385c6153f0b4f2cc1d5dc5ee0cbbcfafcdb9f5c17a4120222b061bf622bf50f10f2f4747c9121df7a4040944b75d1c1eeac7f85bb25ffec2a6b216d19eab883a3fefe2ab73ec9b17967d439d4f3a17f29d87eec21206d40b85fca8c60adc5cf3140ceb1e63c13b6a76fe927110b344122927979e9a3f91917a526d88478290060297bfcf2033ca4d0e62c89acffbf7bd1fc3428e57a83c4b4e5502e2b4da3459cee69ef36a4879a247c70efe225108533d415819c9aed42a11f5ee9cb21dd67937a6f5404e1a8aab6485f9805c0d389ca2a500cc866cd0416f54eaa30287e9fb972f01d201b017200a863dbfa2cff6e1b36a28fd8c3ae88ea8caaa6fa63cfbcc54b2c78430b03d15da03fe0bc6693d42f2bec166ff9d7ba1e0365cd1c91ec9c326e261c994c42558edb196cd7d06621132b37c0e364b7125369f36a5e5abb74bf6adf9343b7f910362f01c9ee56c918583ffd03befb64cc4e57af4edcdf2266f03ed0a3d68a126a5eb5288a35db1dfc9366c4ba419ee11e7b0becd5868d3d298aa9d9d9db68f6e1f2745e35f7f4c2a3deb05e71dc39fefa671b5fab9e417f501b8f19564d1fb6f6419a7ea811ffe44b556c61b5b7bb14b245b4be7b3dc309d46f6e583e1e434f05813fe5677576130b9a61a5e32dd3fcde6a6bb75acd88a91d1ce500f1b29a1a8448c520e1a9a8b3095220e2aa4b84e60ed29e9b1590ce34c4f743d3f86158ad0314bb661345b2aa9aa65bb6e4568a04f398656e3b18fd46829d33c7f6fa24b723c5578dfd79cdd846c356af9f428a305781102c34cd5f92b9ec68cd333bfaa6101e828ba784f03fb65a6121353b15f3b4723a725b6b2b4201866963505acd202e4769c19b3ebcef222064e30d207b99fdf668e9b481d426d355602b947f098e494dad8b2a8fba10ab4f7d3f49036d4321b93c127bf2b5a6680102fab347da520fa117e3e0f5eca86824adaad1aa6f12ec0f32587b7807ad3d7c810c814346728495e30a3102abf3ae5f92158b111ee50d6ef18bec1c24117d779458d87719abf5e2968f6adcd0662ec636e82ee63b4884ef2f272fbf2030cfea872855db9f5724256a18c5bc3dbf09a2ebfa190c988729d11ffcb095b2b2a0906475bedd2f9a785d41cd6f6fa2ae1740361ec919bf08dff6703200a565b9fc6823b1e2dd84a0a76f34534dd89f04a671cc0301d77d59a465e1b3f34a23e98235f2f299b0e9078ca2a7a1426c356d140aa19aa6c6339cefc65d6ab1b50812d7ff87b7f21e33ace524f431c5b47f1e866500301d99f53bc7e9b1f144688d6a259089a721648a6b5583a04ba3cfc60fbbdfbce797b57f12703fc99e6bbcf998fbf8fd15a9b307a93034296fd7eddc93da586b5d2cb5f869fe5f7ffe345c2d05c40ad32851af1c98b70f592196d5cc709ab6af809ce88384bb83002e19c8b52ca6dd71ddf5f0ce9ad0d03199ab60d8ceb66299febdd1a3931c08baae30d334f36b4b635be484c23caa986412adfbc69820c80fca1da66c49fbf2da974b261729517504477d6b14958c6b5ac677298427a1dc4e95fed2866ddb656447c0bb9ac24f3d4b06161a0519b2b0cccdf5ff0d53f390734e197401204c2dcaf4eb62257990ca9a299ff9722937b4ed6c27a7b3427b5f18f196def4b3de3723c7893febd02408a86a6ae524e50e27218cfddda396d7c6013f9316f54bc016ea50374ae5bc14256ef386afe409739d445fa875cbc47fc5da31185854a2be7f4d93b7cd175b171533df8e9a69ee730e887d9bd303c384620138ea9235a763cd10ebc7ea288303109c276de112df2456d6ebae7191585226638eade66edede7dfc88a4134721220fd26f972f726760b6cddb725df2b0009e6949e52b3ca7a6b3de57ac905f971152b65f7325a6524751482102b8fc095fdbf6de0c6dc1d716b41b72eefca49ed6dc268123d7846c6cb074a05d384d9761f2714395695d56d56ace88cdc865630cf552d1c34f964d163f7e36a1a605f5057de3ebde12cc9a70e378de4fb732d5e2a71f783209dfbb1fcdc5de3061dbc312192247620f19417fd244b724605565bf429c57dd757a6ac610aa1653da754850e60e80183a6218830dd460e2b096ade1d98665b1790522271fe0c18b161d28f90ae29ade226a57f50da133826555b962c3e00035ecd89b3df65b11712fb89c2b2e873ffd8afae02c71ef2faa94ecea421a93b50a1c149afdf5c82ea2d31bba14ff09c337e816c2427b4c18e6236ab7ff3f232096497706826192aefdc3a89e68ae1242c5e7fe53b4919f2b8c5095b2575477e340270e225ee27b0a34563aa97b7172de5ee500ac45bdcae0ab2845a578c0aae2e960aa0fd403caa658f3640efa00c0711e751c43922edb450f1107a8d0aff2305d102e4313b6fa23229a0467cc18044741df74ffccb5c9e40941157c209092694f47a69fa8cd0dff205c1b1231fc75ad029b93096c49cb4f8a449d9c3a95e0613b8b354ef9825dc251deff8373ef4776aada7a17e08331b7a57956c20f365a67ad53ce97f8f0064916dbdbdcf3bb83af9bfd87170223db2a9f9668d346aec87bfb8dbd4b4897e2d6cf9f7a60622df72da81b2665958934693e20a279a37d75412619057d9adc0c070a8c67a92b9630b82d8050f1173cc85d24f4fed8ebe46e89a24b86a07a86fed264995cb1134b8be48928e5081d675fb1adc17e20d36cdcb5176dfc559b43353432ce0009e7264cfc4148c7a29a57b20dde8b4befab5f6362b33ac76565216c220ac9f6d8fa04ce75d4c6d15fe4fea8f6c02a30c84a4d9b048f6585bdcb1564f06d3c3b86ed45bed789bc99a68a732b5ba7c95e0d8e899276c8107f7557773c49f26cd313bb4f6917c3f90085f770823fab67873e76aa629d5a55e028f6845b504db4cb9bc10b17c4337f98416ed34723ed593e73960bd59d77c1c32a54dbe6a514008679c36777912e06d3c6051de70411c6b24bea4a175122d40c627301cc51ed5258ff4dd21e13ab78075251f6ad249b2ab5d1cbcc7feb088212d6bedd58d76d417bd12cc212bbf3734310aea76ce9eed30d04d93862072fb41936123c64f3f8754840bb31666dfbcaed92979ea688dc67230616f8f385c9c89fe50b4e06c7652cc93bf61ce63a32043946f8ee5254dc5cf12d7ebb40f8ca0d75578727e17060b894ba2a03d61451dc655326cc2cd0507f4e6a83f62e820348a7c14c3ff9560cfffeadfd6cbc8bfcbfd598201394f06a6e83bbb05e946963333c74daf21da397fa96dd53613feb4e51eda1aac1fd24961e31b8c16f5ac3e3f8bb5cab01e2b31d36f54351ed104552e8c6c81978f40fa455875806e8b2f0d4ba8b80851024846c56dac640a2eb3c330fb5eb00fea80e4a30cb81d74d5cded60c18782a26274bff8f9d64b6169fa77d0595606bbd12f2e49f2d0c3664f6378b77cf343b303bd7c62aeb30a7612c4f043cf10f0344a08be1e4f13c6bb8660126f9ec9b3f7df5642605d3ba83a0f26d2ddaf3e150c477ef9a18e4eea61a4d485d8112c08943f9f4e11327b69a76ebb23d3b29e74193478ef9a61fe3241a88dfdc74b3c31b19506299d729022b86f7e0e36d12e73eaca688a0ce25f45792c9564f2b4faece7b52bbd1ed8c6795fa3a5bb7b2873e6f2e05de00234425f71c3ba041737bbeb74a209f7c82bfa70fff89309402eb3733d92c593c0e4bc88d973216a30bbf023149a9a163d78cb71346e577bf862a477d94515c5c4994335da6f6d267293c43f9a145f8dbc10a3f87850610871e93d374e9b1ee026459c2f330938cdff62a86965ddef0ac2cd8b840f4fc13a0dc7279b887c7ad66435a19dae1bd66a70d24b985efa5f52193abca20d1d996df878beda8bf07841c9dd3e91ca8ca6cb9003b49c9aa601fd78a31b16fdc6c78091955ec60083447ec7fc5ac4637b0a500d3e8b317453d98ed353bd98fdb1065594110df617c3aa0afc8891092871cf4047fc65a425e3d51fbce3c00601788521ae2a8208858a6de04aaba12bb519934b67017246cf52dcc37221c76d8dee80b1992680c8d80a099712f6900da95c04b1a0824b24eed2ffc1d144f5a88ff999efe1c794038f87f406bb2a3d620178116a61a643b1c8ed07ef9194aee98515fbaa7fe36be646ceafc9d624cbd28dd726e556f794d8306b2af9bbb3e57e62c76565eec53d229a98488b4c23f96bab23bb42a44fa04f9e3c358c3172a698eeec12d734bc9eeca2233d8d52ccbdaa2a703929aca0b84b59a0b01985e33550f7708e414b79ae08c6ceabe074973412e8df9e78ca5ccb1bd04fd1bf8575a55b1ad3ee66a7d680b32c20feaa79a0ae6617be714086e8f8cecdb629b3fdc75af7ff9e457ea22d294aa8169d936f317eede4ed70c5031e5982d42d7a59a5882a986c9739f93daa8a978ad9fb4c2fa8ce3a624c7ef3ef07737013acc73ee504049650cd8634711f246646b4c205aadcc3fa3e06d12e11eb5ebf22e2495e0d722f982b9ff0caae6b9305d859c7411d901e1e7aa0fabea2448dde0685a218b178e6c624876191dabb500d5e97ff74ea3c563256c629471df641ed3993b94facf655d9c3711db2d67b6766e2a6afc4403169ba55582d87120e280a8552e59a8d0ebfc0586ac6c7954eb749afda20bbb449ca0795af6f5072b24040e940b47c37fee31683bf7f26d61f4519ebe26738986433736b0c410f838d7250d33878e3d5747fef5df4f7a81b0c46a8ae916e3743c1f7ab85497810df6799ffc7128dd4564a9a56100b1036f19551edba1baf769afa111f283f0741a03b85ac672d2b607c8bf6f09adad92caa6269dd92c0fd372782269a9426f8ce37594a644c0dc474d399c1f36fd7d4ec51595365574e827230ab59e6fd723b40f5464f7efc5bb31e381757ace881b084b59f90df988a158a1264f27cb4df49d481d99bb355139146dfdb57734ec6db7ba199c6155195d8be5643f61bbf5109514415b0f981a3dd5af1f5af4394987c15b3078cdaefdd5d541b1f38e46e0789b96a3f458253725e934ed9e033cc6f0195a2bcd33c9b0bfe2c8cb0ff4b8658e034e1e0b18eea5ae1d907f00377d0a079183ce81352fceb6b2b2c7d30e99a1bbf722fdaa71dec26da97f848877c8c366e1388f5664ea9ac15a718cd2271af226a289812143c8d5d68194be6c4a3f23694e051ae8983b7b60e2c156f8b1037c77e6495fa7c57984d6390f81fd9af75db0e517cb8116a6792ea3a733e13499a4a9df853fdb0c745bfaea2338e463b62dc4b56937c0668bc411ccea897fbb0b97f393ed3e0cea334c29ebe5e0b1d1a54dbe8bb4a30317a92efce9648e120163c4b990aa6d54fe062aec50b28cbdb85e01070a7e8bb2c104ac3b9820cf6cd6995e9360724f8305162d46880edf5278fe8c212a631d4c0d36d85aba13aa8a79dedb5e0d5b5fd8a3a4711d7a969530a54bb8887b80bb4a8b897291e105d378d98477662081888d4086763308c4fa56151d539bb14b7dd6a02adac4bf06d38a003eb294d24aab31b76ea1addf0f71262750ac985273ad47e35d9818cab284e11e95ceb85e181dd3e914ba2de429eecd5d9c1aad9961497992d8d50e6d669641ef8752dba77d26fa7d146d7ab5cd7c09ad7b750edecf84eb1a6ddf38746a0e3a704d89a2a5b582734e1bc9b71106b9300e309b28117045b6c997a9778716c29a2b0304c748dce4ea5b36c32f1688559538a8edd92512a64b1cf248ccdfe0de3a86061498c99f6f554601b4aaa02d973197a6cfbf72d3760a563677b89554610fd234519092863b2c9912d757537cd8a6d5162b9361d6b8a04548142f2bf2a1911c2a16fa389bd676743ecc45fd94058c9eefef94fdb8223e64aba1143310c375f3db02a4354cc0a55c30186b69dd210c65578a0a33819f96b8e9c44f38ec44b1999a78a54f91ed3c3b6ca33ed634c1d4530473cad1fdcdb427b2c769463e73d166982033ebf4474edafd38e097898e54bbf8a2d8a4ab809c1de018bfb5cbf4a14a946483aef32ac464fd08d1a634c64999ce151331063dbdb731ca3f1da83e23af29f4c22e41e67bb596273c1d96bca013be4deeeccbc034db2c13c08b0d1ed13295421997e441307f700ecfe40b54a2006cce41032676e1e096ccd86af73239f57207bd7bccf2339727172217828872d656a224f3d30345c1edf457adf56fe16f18bc184b6d27fcec1105b1d28ae5de9b69d7d99e73be36ea842d412b009c7e15b122ff0e3a007bf8a3796386210e7db4d5fccc9bbe306628433d5e4d6cd47a3132baef6f4b114aa9a27ea5f5fb3819a2d5a89ed51d99ad4e828f5f6a8908ccc18f4e6b2c55e4a420c3fe0f7791ad741564f340d6446b34853cb08c77d27b1a45596658761e7533c0784aa12fcf4954e843fb23459ecd616a86d204ef154437b70ad477e80db4a4577996854cc600dfdaee61726f33199f6f504c8f0d6fcfe235eb29e905fe07197bee7a6f7d7f564c2e22c95deb605eea1b8d17fcc96d5ce307483dbf757bc55c4c6272803185e5e276c95e7ba81ade381e25531428557f6b0038aba46cc2bcf240355fc158a4db463ff94b30ffb991a95995c01ac9e99ed078d85290f64cabeeaed1052bacd979185784432e9150a18755ae46dcdbe477915a22d5891288c99f2ae18b3ebe5f95e2e677faff0c43ec1cbbaf6d50cec197acf30a1c7ed2513c0bff7efd2d56581959a373a9a5267f8654cbe5e5c96247e3468fa1d123f136a3364bc2cd94d79981e7b9648e4157f8342df60100b70adf13a20c40e4ef8f028d428e014ec0b8bf618f50a36ad43537f1fbfda233f2a8873263eeb1081a0f170055ace0388849bbdd16b3d3010a7baf6d7e50e499a21df320299c6a33b13133f353b69127b74cc8308787359d15024189bd7f576fac3d281073d08022c0ffbad36ffeaf1c0326d726fba33c8c9e58c0dcbf047e99b117d50ad76c2ad2811858027e43c4fa959e34a1bd5f689dbcafa3310cb6b41ca2a8576a882ee108a666c95323fdcf0a26827517b8794fa70440f907fc9b85a2dc61655f2efd2dcba5680690ce1235789e96721231eebf03a5729c0fde0c80f9de22246d0ace55e4277f6ef48287eed357b06fafda55a30d926137b2e83a0a94868879eb6e55c86575f398b272e45591e0e45e2031a811a6c280fe89fc9d1a08e1b34f8685003e1ffea77e6c696ca088551e8f2a297b9db57c823ce336e36a918cea90bc65f1e72aeda422bc0662d6764a91fba72e1a6ea1b1c8b442544c818aa8b2a5627bf7f161cdf292aec8ea457b42d7df06730e2dd96af59adee2a8e0f8554c531f3dbedbe33d751744e6585a9ab8af2ac68bf2254c466c5e204553ca00c8aaf2ef32acdb94b6b7a8f1f9e54f3cb8a9e7fe60ab38f102d7d02884db406de44e1aa04c2c93995cde541f7c2873ac0538bed86b6067411dff3e48f249652b74a5ff58885bd9e0e62c0da90dce7a9bd6f1321245cddab87b8eeb879d23dccee3ca060de954469692d572619264119e1a026e7c83c630572b89fb20929aa20c94d6310bbd9576ae27029e8b1b3cd4ab5307e87cea0bca252c924c00ed939f3fba0f63723434b3610d498660a2abe3a0fee5848de8c195a94d4ddd4bbe6d47e4d0adafb647e2c8a96e00a88d9242a0bc8b4f52bb652c8a721b7068d7bbaedc1e9806531deef65cc46e21beb124b15724e7ff5528e284938fd95393afc3093333a64b2c44a4f7fcb76dadece28871735f91f3958be4054317911a99912e5f5d0e8839139b425c7ac95cc78329e17b32db4718cbacb885f1a32cb9ab71f2a55abc715abae42387e10323f397010c8f16663d3afde97d3a5acfa4785cf494e6a8ef7ebe47b89b2b80b7112d08dc3ed8f4b5e22f9db58581ebbd3cc03df6edb1a07e834b4702bd9cfcf668cb2e9e700309e03e86901302c42c91ce3a9804babd9ee36b061c8270be7418ec5b662094fe80e4d72f081f04d3a1f627a97de3fc904cbb2df89f4bdb92f83886efbfaea2f9b6202bf8e985ca54859776f3bb07346acc4a48903445159e79b6fe85c48a766db6d8b5bd0a08601d8da7c44b331c59c927f4d4a61fac2f9a75b3bd8bdf677533b8b58db475fd898cac5a8573da81b44723c52780b38f8b353898a09b1cee0af8f843893383cd064b726931764cc87fa785eaff736a5280d58c8fdef6363cf391ac72f8cd8f771c013092f36a13385845f336481ad12c52971e08fd6495625508d816edbbba0b77e09316650f044b8155ba9e671fd4aa78099236d46db1e4ad518b6713d33030571bbd3a5a4de630f7964fbd2122c92a35579990a31f953b89154b821a922f9f10a31dc6befd564a5166c651073d546179e0e05036d38e530efb79e6ac001aa5d8c7ac89827a47af745a42bc761d1ed51d78b7f717a0f60d594e38f7f865afa5e49307d395d1bfa916d53b842cca286468c2c2c7d872e5bea406807ec917b294d8fb1cf9f5aa90390f3174d3637b73bce26de54762f709ae46773a272ee4127b853eedd4c933728f7b78a1f7862688e08040bac35bc95b9b7835ac01b4d703f9f70db5428ea0a593b0cc2ce36f9f7fa91733acca9e9c4933f3fcda022e622bbed65b96a452188f60fde9d9ad387103432315c1aebb4f239d589d80810d1c8f1111e3715f051be6c33d71d10e9cd0d6acdd72a1078e1aedf16e3ab5ba4aaeb34bddc82d5bd0b40ac03ce152e5e5497a38a5b74531e14a7dbb2a69ba4edd9edd5a07ef16878510c60ee76946b4730c900fb3c6f5c92441c27c89f337c0c403553f8fd163521b3b3d964d030221c5f5c0ae2184f533319f52293c4dcaf8a05e0c9097092134392a25f77772d8771cbe046243084e171cdbf5aa2103fac4da2211f7a3cff823d457570507267422afe859d04877a0e01ca8a75c91af92525ca8bab12717581edb84be46a714933766592c7037b7d43c81e7b490753dd7b8d98ca20f641d6da6f3743374530774e92eb2e30d307ec39fb113f50a3684406da9c50ff896855c4046b549fd66f92815dbd954460573b0bf4557cf8272864acc2ce4a365795cd3f45ac03c8680780db7914e1c11225a861929c2ae268ddd5398c84ec8e40d9dcdd105112664342ed373cf253933c0884c6bcf4ec516051cba736d708f17bf10026763f664218ffdf10df7db9ac86e183a3879a981e7a0302d65b0207c32cea4e54be53aa9fd675eccf17155b6c1e894204788ebe7216914ab5c73c6e77f118fa1966ef0616a83e083ac60b3a0613b1ea524e4bc11c1724db4a61df78ddd02dca86680f3698f85004d70dbdda0c03c39e49e6e8d76b87910117864941a3d1e40d35c76f7abc7b4b80c94c2e5a24852c8a94788d840694b0bee6ba3aa75249046041dd32d201f8c772d121fa07a3b87e65bf8a4a4e12f01222ff9c491ee2d34376fd29cdaf5db1d66e408131d6d2af39e144af0b047d50aa99504bb125684e34d79a7c967f3f1452893375adc0a7f70ba2b1d02039c1c09e6be5087938d6b131d154fbcc9178cac808d875ae1fef5a21d9f15a3c6293878e10e04d48b0fb9c335337ed046508a98824d81c408191a4e715d18a1b123532ad3522d1cc47b55bd6e8d6ef7f3a5ff913b0cd3c34184d4fb0e74d1b35d4d0992b3453b642140c02065a35b64789eb0d4fec7d0bf8ccbd9f26b8630714a2bebdcbb288382ff0c894410380749eaab9992bcfceeabe10a357d7cc2e8517940fcddde50bbf75be2d6e3820137a2d66f68060fb646e85f6bc87ec9baf0c5d50c37c884e180575329e19c33853314c645ff55e72d17b269d4c55b322c0359dbf306b913ecd340b37b79bf664c4ad7d001f64404de43248d8d352f95ba20e72befcc120fd398e6a2717d6b93b54cb4131016b79cc5d0c75c677251d71c0ae107f55da7d71e1628a40b65ffdda80e11182adf02e8a768b499e3ac2e0806c8a0da4681b256e97a396f15b9d6015fea0c81a703146e33d94051bf676d985626ce4c7075a41da553dc6a2c9758443b3cad8f07e95d49559643d033fb64dfc533d38e9b69bcc44b1728c3ea31564b72e61950b12b9ec47635e38d3d13e46841c160cd03027392ee9de260164db9f0d8cce98110186ffe06eff66f3a2f47c5b4e90202bbdab4b53ba1684399c3826dbf597f8d2532aa7c7d24f70a3b22dfd5c984c591acfbec9cc94426ff760319762ef9741857b19ad9f5d47dbf7494a7cf76b2e86bc268df33e1899f62e98ce621359d190bd4fffff49f2657d75c814d6edc57a59a569553120fd908844c7648b8373afd181d3ae05283e5210417b785110c990178a7e98ee5fa806fb988e9ccbc58498d1e5db62a927ffd7fe10b5cb3beca64b5f8d8439f9ee32e723d37a4c1d42649c1e50f782a250703d75cae67de404be61ebf2972752fa6768982d4771260b339d72317bcc8b5ccaba024b122fae0261347e866bccfe06352e076f1c977df161e20c2c56f9fdf7e4f4b812faf7b709122f6c45558f48ab49dbc3a7b12f5813183dcc399b5db29b96faa39977f40a0e20dd8f0bef43b3bd097770bdf62a77327f4285b5564f06a842bf76473dcc4dd1315b179022f6c104365066506d9e3c7b182fafee78818001ccb604c9260aa30bf3da208a120e2578d8f129ce52da618de422b9420dda98230382dbe627c8ed280ca7d3ff2cd8c358981a2729d274f3540ce96fb715837e58b806974cff3307b5ac92bbc54b5b7608e0a5269fe25b37aeac246972b9f8322ce552a71515cea9adc891e748047a5bf13df1acf929a78aeba40af98678c43e8f48f5c726ca372fd661dd7594869f9ebfd19add1328ac677aa6dfb2999aeb0e783a625df4a88f78ec7db797e04f2f3e9e0b357108c0f43cfdbf169c414c7ebb56e38d4d0b81e833ddbdf7221122f7b9c3a0d8173f4d661000b7bb945254f2f6658896019504db2309a892a605362f6bf126caf4a56a20216e93ba59640efd14758fe7c694152bbd125fac9775c3ef8757c7721f301c85fcca26671f4b608197236a136f8c83ac45d049c0fcb086db9ab2cbbf688b7b24c6281b6872fc82adb07fea1254e076a89fcb297331e860a63e5b729e864495dc4e323e72371629df25cd6ce2d16a91a54951c5cdcba8027293811939068cedac7c7483b105aeedb7f674f21cf1583d540dc501e236eff48357d9332455b79d08cfb80f7718c7413fc26b13206af09fad5510c54a892aae6600735237ed9d0f8fbb46ee4a5f218a81beb68c0bc8d553eea2e3f39b898adeebf6585e5ce9831a07fa663cf2c5560b080a4622dca623928db76c64c7fbe1e3ffbfcbbdc6e023b29226e4b09a811f5763da9f7ff83cec69413aaf7d04eeadc307b816dd251660489fc59d0e7e504a8f926971f61dedc8231e2d2744df1d81f07629c7571d048bfcaf4db9143fef93a6bf73dbb9f1cb57403a0e6fb0d0f128b83564541cae08cb989cc4615f97e301ab240bb24ae115f2be126b589a0a25470531e9bedd0de7c88787faed26ba8cb8aea2e32aba1f0bfd1f897e035597d6d129c08459edee4f383dcf10561feb93cfce01ac94335ad306a467297a2cedba9257728a7052db4299f0fefd34d9b4efa1a99ecd68446ec4f551ff90ab85b0a587f705f73585f2de31aff77199e2fc916fbc94d6af35884f159aceadba8a01908e2083861cdf7580983ad61434f2bd187315dac94c60f8e4d7e6786f7e9ffa27e1834901659deffe8e7b043417004df30fbf20c2387b704d124a1e39edd1f9d8b1ddd138b8de0d39c49b0b61b94b4d802a15badae5dbdf63109fd97926e6c4037e35e8770632d2864baebe2a37037bec2201e772f743346a9ecf2ad9cbd94fbf66709e2693bd839e8d2b35e16750f6649c2f7417a8b50f973fa4cebf2500b78dc2ca2381b945b08b2b1ed5ccb05c1494ea955e654c8ee1afe2fab672bea88aef0cbe2775cc912be52e5932b4ed356620fa4d81f0ac70a2b595e0273bd44860b2d62f5ee18b0bba8004f33027674db14686fd93fa737481fe0ac19cc4884c4a3c4bcfda9a509fcc1aa416f205a04e12e2969e2af4da06df32adf0c271d07c578afbd8d9c9898ddc7c4df7b3c3b06fdf2c33131444266e3c9b302cb03bca651cda9372e9c6a184ae54d00a241bc3a49359a0e3a5ea4e9389ccf9298d44e2df2891996dd2a6e7892ead3b1c25e0463e28785f622dff6529f7bdc938b744bec78b18b018b11e581eb1575c8cb64a4276877671245eae4ac6d61c7a011eec0ed76e5bb559cca3e80eb6b22c24375597a81d7d423b077ec079d8f4b686991062fc2fa572a69bcc99910a0a4b2c50007d3551f2eb4a7b6d8b04d818da1265bc7b0f99df163be4361463a8d25d77d15829913d6b626214036f63f6bf311b0aaa3edf807d03e5c8ee2b82c3e40e7aefd07e76b0f7ec847192b94594c5dd8c248e37564c293897845721f0e86d9372c2e7a8b13f829c1f9855ca1258e1ed4edbdf103237cded13a08dd55ed28434ae284b9eb4372f85748abccc252355ba814f99e5ae1ed70993fb69c043a946b704ed7badf38c28658fd01da7f31a2aa8eef455ea38dce7046188a4c2e47271cc500d12e30b44a32831199caca38e121e68893fdcfd9d7c865c90396dcce0b88d51f22d7b47c5924dd33288d35838b272ec00a8fb8bddad4024aa3e0f4699eadffe3fde25dd9035b6445f299d54e37b3e6cbf47e4bf4e3cb4b09734e3c1a674cb71ce9eca318134124df771d8d7c78daa1b0f10f2b7d709a766762cf39c5a17199aad873f30a01a7e7cbf9d64a1371cd6cca7eb7801bb21ede367055f4b156dd7402a0e9a984042fcd87cb54d5bef1a49849cd14a4d6e3f89b42a573820c03c233b0afb023e02d7ed3c67578e1492aa4d5b2e87b7078ae6177c5def1ff64d1a0e1cf23a32b7b93c40aefa86c8729eacf855b2d4fc9119db8ddf0681fc52e6244de9222fdd5358e6e799dff76a4f270fd25f00ea1da74a1bcbd6969eeaa42241cadbf8ac471f40511ea1d914f5bdecebaaef12ed818b7a8a08ac71922be5d3d7ab62ff207c521cee2c8f353e8af4dd5b2d831c34fdfb73f6e6018d219039d0276be50f48e39291255ef5550ce2e3f976e42594c2ed39247683f5de302d3090175cba3d0d5f8fdd19cbcaea28eabdc79968f629cecdc2bba5f9808427bea07969cb43e596e37926e3f221d4ec964edd414bc1f2d47a0a97e2cf08400ef78e417ae964a3120196246f45bf3dedb476023bc07b1c693d7f84dbc34ad993a5f508e0ffc865b62a8ea616de239dd4da1c7c352111076b5dc46a7697a540b5c53dffa029bc21808552a30d9c8270f6942d94826f289d328f787d48c3cbcc03cce89314e2b65163b4f28532f1dae8ba707f059886d3b99e2bbf2fe78e8204dde7f2a41d5fae8ec1cdd6d7c9a13f09ce1b68a23d7919989fae88253576e2bf67385036ce99659eea97a865991bdc272655fc957f37aeba55cac773792cf7e0e33c437b04e16d944b72c849070cd31a562c1f3be4540ccb4fa31d28cc2262d20e49a4fe0394e1e6126f17dcca76ffa8653c5f257b67aad1838abdc06517142e77e93b74bc982f2b8a79f09dacb9210484eb7d408373951f689be9f8e3d77391c5bdd3ef7b9f1b2d5a6dfc5d31f1019e867cd4cdfc3ac4fab85736bb7be89820ec01f9a655beccfb23911d35e6706f2f8927b2fe1fa4e9494d73c5343ab75030fdda3e2ef0314506c2d2858f713612731a43af96cadc8de24dcb6aeb7dff293aa74ec12ae87b24f3d8a81fd4c1ff67bce66b3462a0d68424bd50e9601120e80b4c4908aef731678ce28ad6faf24dd66c8eab1598a5688a629f6cb6c2ac5860a2175978f4311518dd432fee08a8ba292d276e098d81ae7471bbfe0521c4fdfe6af979dc9116eb2e4fea87683f4d4c15e2fc80c0ddb8b85350b6480af7622e9bb6602cdc3c2f3e5e735484b13475e625b528aa5e7026b5ed21a3731af72ceeba8db8e046f7848a0932968ce4dcf2aaad1523031f72c7eeb579851fac1d76621bd4f089c9f567f65fa2fad097188861a3b2e9aba34f2ab2f5045f557170046277d99d2dc8d5bd90cc173a7afc5e89352c6da2f93378821bd1aed5fd729ed5a2e62df939f54c8984da272b95712be1644d7295c55bf3124f96c4b0bd8326c752a59226b7e7419a9ceebcbdf27251a0e5f827a91c52f3f70b1cb4293f5b14a42fc42987db2528f1de9fe5e34294f4fef78133c420b0b9f47f11463bc0aea9ae99571d6e402b546c88bcfb94685e6fc933c894077be7ffe91e6f6bf54936308816630cc47224be16b7469d7a3d3c22b2dc016dfed71d879b0917517e96f673cc4ec3b8da87722be4941692e2770c07acd76a1e6e7b408dde6ec694888b38652c52d42ec30962fc20eb4810fef8b435b5c134460170326747c32fd180f31135d87f06ae50797cab060ddf7530e4cae5d041bcd2150bcec6bf6ea304db6f2a5f9b40bccd8791f30148ece235c55d2eb8d6ed54130e90837c20d77570ddda396f5e4c6f594fd1c00b622ddf45dcc7de7df5c0155f2f7828bc642db999c493a87021f4d6531e027bfa7627a6c03b90913ac7534f432cf978d2a30ad715f5ad9da7a927210b9a10c54dbed1e1f594973e53b5215bcf36bd886a2ff243032e1fe3736b19be0a44c338c4b0ed1b80c3eb7556622af800fbadae715a27f790fa386086e20683026527b97b4725a75fb2d8a603c77f6c7acdae0bf5fad10c306b6f6fcb131e05241b5a989dc5758a6103d2789c506374b80d636479f019ddb8237d487ecd5470bb88eb6da6b62ef3174603253cc7a8a7cdf651a571898d95fe0147561773c6612c4331ee755ab1211098a74c8ba9ca8fba2b80beea31d344454e0e00340900594a189d96ed1c0fbd33b55e9f58670591fd96799adb03a5d5022ecd72dfc84aab3e94fc816e19da717210f2f6baf10927348fb145cd3aa66a0232605636ea60702bd6b27e56bdaea15e433ebc0475dcd36c2ac2065e785a9249d6db46bba9b7c0bbe7d24c8e595f51585bb1e0c15d081d94453b254bf5c131e665d24d0c9d005c9db4cbf0e88deedf6e7cfb66dba07ae85ee9ffa5d650beba75ec4af62c0375d2eeccff0ed19979da832c6df83f5db5593bf169bd6eb62982a364698b48014b19e16e07efc481d0fb27b75c1f4ea0c72112d6db8b8cd0c7ce781de309d400442720edefab791325aadc84455e982df44448338c222df496f71234084b82db36d771dd428ffb7e9d0c65c8af78fd5383e2018163cd6cd6e1531ff4a58e321f2276cfede7397cf9a324057162f98a70a9ad24db76fba3140c3e002129dc4671ea88787e723a8d41f89f0a102e7b7f622ac37657bb2592d9062117c2beb3f8f0d1df124f7bf3dd4dbdabf2f22002796b05c622081d4609ebf62a5be45b20152ef8d4523b167c8a44eea2c8ba9b025db0eb11a355a6221de0479541b3a1ef987d7aa15cabaf59c2e37d2c7b4eaa17159aa5c598fca9d13129aad2b261886d92be23365461c6c7044866bb7513e1dd2af103ece633d754f0c35f5084de36d996f23ca2e65e482e20ba410352a74e28f647d5c5c12da4c15bc6a6020befcc0f5e0d571dd1d9930f2f5c97f0ff86473f6d1757299d8621f452ee0bc7a9e73f0ea9d78c9d1ec3eab8347735426857fb9d822465250544758e71d6b5e7290b50d3d99cffde0fd00b0dd3126cef0196beb0b5f7179ffd594cba41484a8378a59cff4eef7ced226c4d62e7b1761f63b1982e78766f85a83ae5b4a1bacda4cfcfeaada48028fe5b12e5604b76adb57bce0ddcac40c6cc649f72f4bfaa7940b487bd4ff52c5de47f8eee3d40e11c044167cf5949ff826dea0d7da3e0ab3811d86cfff3640da119fcc4a4c779a88d6821d050a2b515cd0f21cc9705d940b9c039da038965ef58e85b541f3a848fed4ebfc47e4f91d05af83d1515d06c37a8491a72bfffabb0c3606f8cbb087579478ed84079169c2f78ec98319b63b22ba7b6dabf01f81dafed121720061185dcf5509ca0ceb6def7db02dad82e721b0d8a5949f8d680e75abdf4c452b10c5df6b2955131c83fbd6b677cf4d71d9847d0162d6c28371c953b080ef501fe2d87e1e78fb18299f8bc8fca3018f291652de45ab5542e1319c303c44e77c4cb302ab00dab892641b9bddb1aec93570101c2a4da90a3009f7b6aba98c05d464f9d7eeab645e16fdf02bb6459163e55661980c0cd240c913a80c50d4bc8d6e9a984fc745455246ad074245869abd315eb92166e53f170d81f1d3a75904b82cc039470cfec10e5071c067ad8d2bfa81d74b35bcd62902a33713076138963241d72cfee8c188a0bafd58282ddf2cf0c2b0aef63992bd49110a90e8817f519c8bd30a986425672985d1e0961b85ccaae91384aa40a8f588433ceb78adff670bc3a0189f7ac5456095fdf9c7f4419ee64584c63b8822682e61c3f5fe77305b8770b2e47dc3a4870d76fb085376268797a4633bb8cf3274fff339ea85cbbbbb8db9a8b702ad44bc8e652dc8d8cb1ef664420963d21dd7a7935ec2bb5d5c61748efad337e4427de955b4e16c77cb48cb278ed438609195b0d5a25189992d240d6e31a10e3a8755906773f3ac544225f870bbe538dbc1b1ac84781c1c9025f43f05383976015b5ef6de7262fd1951f6520025666ce3af7d3cb5b320b55db2456ca1cedc5498f6512b69907c5373d8dc4f4e7f8ab0b845a8454ffb04335f7e49f38276c7f243f2f9b8c755728b94f5865205dbb807c167abf48dcfc8c6b934b64a5d1ca366abde9de950e77058b08e811384777c870995bb2a80e0fe02d35556a0da92d68b5b6d7c176c429b4b80ef7e245d653161bd17db308bb48b0ed71bcc3c16dd38b54529118619cc7c10c27524f7d6f89196afc5f23ae59e2229356f3d702249f3553cbf28dc692fcf76b64d31ea6b0c9026d65012001a06fb7c1febd9b7825a9c8978d60574018cad42a23e10c94a1324e2cc273a6f8bfa776e0ef26cf7ae84d5bb1579185d9cf48e05508726dad5fbfba34ee65052e91cbc373bd26d1694b5f5ae930c0a19863da2738bca711024e23359c0552683bed463a327fa3f0c14b08ac857da1fd4221b65c2a50b473580928224a7fda530e4d6df26133d956b8336bbd9292836176590909ef4ba44e7e9db83e82c449b940bfc2972892724c92905d490b5e0d5b758adb43051d2c91b91b20ab1a01ea9643867cec7d16324eec39c89600acc2619999d1d79970184685f22a5c6f251573b40fc82157c2e43a301ddb8f01d58c0a6da06dc042aebe6ba6d11bcb23b4357305126c7d2deda0105096fb01b47f19ad061b70a9f6d709e4b8bd2f81d335862d96aee45208b67b0bef2ff4c12c3eaa3b587a4ab2a4b0e4e8cb987da3db8e753f7de61f47fe122763d4a4b728031f7b5183939b642af492f86b154a5794eba6025d64826c37e5f1ae991f5aa721631f8317af430970b2c61a05a61150a9a1a8efacb2c1379c6387fb4bc36f94c5ab3e56cdf57703fd5cffa0c56ac7f9ae675ca2f10af853d5e6700e4b254225ac8c17f291126d56206fd322c75ad4a5da18c4987462fafc4b42528bcd2edfe5991816c254ff1a3aa99d52e0d40c8e898dc320664e5c1596674246ce76c139afcc9410448e9f9cfe8129249d46f8ebe6dcda08b3aba76f237148fe4c543342967e9538f2ac65cd340f44de73673d29e785053684663ef257a49202f8612d726b74c7436dcdf91eee84ae4246ded89c600617cec39d545093c9046f0da03251af7b2c2670fc23a694b1fdcf6f135808293a30316f0d742099ba658a45c3944d51fbf4ab2141041aee80665892ad4d8e84adc16cc8284e419f410dab22b488234907d1c5ac5ff445ddc9263f3950a625080764acc89cd34e0af94cff532b74ea8dcd6f426c6d85bab50df8d8e7649b76f56004aebb0f56fd010be23277f850514f71b762f597a1ead7c089886feb7334e5aab188b46137b7a8f5d1be67ba189cb7680f0a24bd5076403ae7071e9b0b47075cee168dd93aa7ede03da468b71afb9379dbad36a7023a9aa788d0215422cec8e6359249fb5d8e4a488f61d594c77f99eee190452e40b4f6a8d472b1bb003488487ac22770dcccf5a871f7a7f00186c9254bbb7505f3915c51b483a28f04d5a96fe01afcf01eec679dfcffd8d4dd9159893bb8b9f22a04636d404cc472dca8701ac8a7a354e51105f33130b4a67be4ba1d23fd717039f1d406c4c9e2b45b6113c1d22ded78408d5d36b5af3097800fcbc1d9e9628ec3d47501ce398ff4b715b40fe7e7f8685cc092c31609d611b599b4be61563d15abc1f41222f9d3606ee515ca1f33b7f0af35552751d53f3e21c815680187902df6f82b73ff5ee5b71f55e3a7dbe7a191eb572e4eacda91bd225bc5ba3210fdfa0f246fe372548dd3939923bacea481ea1c5bcb88604b65be28daa36eb1f7f05d7a1c54955b6e9714236eac56cc0e066c637f2c206d0fdd88039decc596d042f526cfd7ee4933b3b23e7e6dc9fc57e2d95b5565367efda060b3218ced057102ff2f034b3b799cdfba546d0354a4ea6566a06b8186e163f9159d06425993977982ded309aa2a0cbc947a25afc199d37db74e50c2321420ced33b7a2b0e021f8148dfb5902fe9a3672bdbc92a7da93f9653728a8614c1d7386d59dfe72340de1c92fa26b4f29c1745a6dc03b92fef378290a353abdfe7409626fea2dbe0baed1fa45b1869d04ce0a0ef00109851b2f5fed9ac91afb09bd8a29a61c72bd3bc5de7994f1c0d7734b90ce97925d046cc7a2546511950c85a474091308af64830a985af7228c96e0ee306ce4a27bfe4f403368400c304a4dbaf178c3de1d0500a5b2cbda4a8e0bb9054d650cb54d6ac69e0284d2442d608021c401b50b67b0b8335af1bf52c599eef10acc7c9f3382f7798ede16d7b75e015622625fdd2c2213666a18bdf60ffa74b6ebb8515f7d89ac9b4a05ddc67d75f800b8ee2a00511f5c2413a1fc0376f5c493b421deba7d76d4308fd24aa6ad5f50dd3ceff1c87e194448a98d3ae7c9cf5cb43fc42ab45e6e008aec93548c926a36ac53cc864fc46c60e5a5b8498b7d763de905756fcb21bbe76b0652475b484ea039a3492d5944bca62116538e87c4686b7673899d1176c7e2ef586d435742c5c4705bb31f134bcaf49dfd72849e5d1771ef5946d40a4eb770f4880dbc0c9eec9c8098da099d4fa7896e6d27378c9d2bda231133ed605f67b41d2233f8867cfc691056f88a63ac3a8aa351beca2495beb91b19f2f265f6f8f265e49594d6dbd42d84e412b84a18f77e6137a6f1c26c0a22244fc8a266c792153e03dc00e8aa302f51124e9ca82a04d3898d9c77064f89aeeb074ceecca7aa2c3ef820fea9110e7b627ba2b10f744557f321a7bae27cc6fbaea0cd7f1259ffe965cb3427842700608db0d469e9f56ebf32ddad2afd645f2a7559eb2d83cf6421edf276661d92abf0152929a8e002c623f3fe67ce5bd8d35f5c8a6a89cf9ea84ea42cb27a72c6a48343303e471cd24480de5cb6be63b6cd45f685e0546f761f10e5f2e8793ce643340541a992494f9635166672aa27aa7987b4baed06d4d7dfa7126f9448a773c762a68171cb76f1c6863bed2f5106d3635865e5cd486b70497baa0b722358554c31935145a5bda2961d08fb6d0b99720cecbf66c87a71c13b95e4079e1bc4e4b6072d1b55c9bd020f83762b3940f2f911fd000e9c2e94ff4923e4ae6393d600a60fafdb1154e78d60ab7a5750ef2b105f4797ea59ab64544df87714dec3e75eeeb92213aa57957310684a8d7228466c440be0f6426b9aebf1096b793e350394e938640e0456f82430f235999b92559cc790f3ad249d25763ef164b94f4b7e90190237bd20cad0e6ae6610a19ae60114b99d81de60a3110da16e5a6498b7de873e546a86469ff9efd44328949c71541c5501be4c4595379ebfe18d654f00117f02ac0dcc0fb6c2de9eedcf71fa96d67e4c0c5df597bdc04c25d21f5a3104effaca4db5117d641b8fff2d76a8d94a00061313a0034519796fe96a2ff92671168916becef676f28c9b05af4e0ff397f62c3bef71ccebddf11698f88a2f974a0f1d094b0577c01b051381828a3c23199a98777e9360a0ee7345f76df0d03168c27b6f83b6223690702d0d9c203a3d84e5339421d8879767c242bfdfdd00faf63f2f8fb876415b772509515426dbf61c9c095a3d72379b18adb5ff09f2b459f4d5bc8d82a510a2e81dbbe1e6b733ac3b4835daba4fd51502736db6cadcf211b67617173c1290906f023c6ff370f525ce89850d8786da3adcf40410a2dfabed626f883086b08edf8d04fcccfe74b284d9b4a90f14d1a65391b7c9e538de5737756e88d2c15ce9f5378927f6ef0749f1efbf047ed61a977fc0b6904fd6feb1133fda42f996b02dae55a3e66494b6f9b8ba827fabc61cb1463b07638bebda380e6277bd586fe71229445e21f31b0fea097944f46be209763688492c10883f5456575fdec6fdd27a8b55d892029ae9159b7d9a0d33ab4bae6063ecd45be47d4266e946cabab0dfecea4c2d35d98840f128ab96b223a64e40fc3a3f72f0d84b2f0fb71455f64229bd57e13050f641993cd6fd455a76db5e6498b05476ff64341630b6c77e8b2d9f51e842f9b4a385fccd2e017fe04d5994c74a1ab50975289852afaead36f5303937e58f39f02df97e50c05800b6abb0cf6f0105e1f870ec3dffa8b8e9dee7ce3bf9b95d6c7dfda4593cfb38df85b575c672a9aea3dfbd18738726c64a4ad3ce8cec1a34ce444274928954eb45aae7c21fd22b88357c823cbc0b1e1b722ecdbc1761e41128ee01b734df6e4e820a21b3a00e5aba2e543c8a157ceacf4944c06742eb93e569d220a219416853643caeea6844c49e49150e57c389e74ccb90496171b7e01315966cce407e477fec029b0b3fe21a44f55b8f9eb2d25ed41590a2829c19e4f676b6c6b5b8e1ea6c4a849a41ed4d2eecb7c9967c69e87df8d43c5466f3ca7759b3934c3917e8c7482bd1c7b7ad07d7906195eab587149f22f72d34ea9187ebfd9ec1c11e82fb415558975920a71e11580eff5e2ed7fcc80cb4445ab244fef7166aa9908b47785c67a519253079085e23f951ad71ec88eb47e3a452a65d44e1ce1ac66c8d067c12692fc77521d92d10051e5e392c57ab0ab6a2f1cc71983f0fc1d70501956741add8ea0b502f3ebe7bc3ac930eb262f039104d086f010fb8fe80021a1cf5640a08468234af1c9e9c28594b2a997866f40561c0b33e0a3e04520e22c07b6623dbced8847fafad3977097428fe0299a623ab89f4114b831981f4669d4daf845a876bc9e4b5de2a795c6cf9dd0ca753c46543bbe1a5db273148b8f3450889504dd482e5c5e41ee2d85ed17c23bcc188be96e600b74f70f4e4d59115b2153dae52b1990f9c12a0a5e51914ca50545f3e82ef93b260a54ab0a99199a3670b9ce5edc8b8bb99097748492a5d5fb0588d1f0bc09c015f650e5f5d6a4764d669ce2277ecaa746e914025e7ea20f0a1a7fefa131d3371ecfd43ceabf8f095228c95f4531cc15755b21198080909e38c8ca5405763b15a74622d0c83d96e66bfd65dd1bf2edd9673dbae8399c106d2a22d42885fb2296759a96aeb9732f27dd92e5d902457e2f78606a5cb74d9f30c72ff860be8c0ce180c2c6183fa927f71910490ee02109153e43269d8c0a2181448284028cdacd140712335b0baa13850067aa6096b294217c6d113195ca1a52064fddde18ca8628798fa6a8f9c4c9a193071dae704feeac6eafda67e59a0af9bf903de5d57a89ce8c2d1f205dd6819438a8a36f0a810537483980ffc8c4a85a30220d164af704634b9eb753806f813358e5e0d708894694d72a53a0d2898458ce2da28e69aa87d8e72ff3a13d482e1cbfd7b3f17e6a1370cd980a92d66a3765bd8eb887463d192ee0aa8dbc7283ce9d8fdf475785e190284f7c7e85e49b6fc4b416c15c5e645979e096d524511de089e0085a68dc077cc1b5a0f2fa566a3394cab61193377a360c0f71c9ec4d972435780990d31761c944a58c0318ac2bb4c7fb7876c3b4c3e0fc546745441327ca3b089c749a57cc4491ee3b7ef9cbdf363bbcc833201838377f7864a03fa622a784916786b0ced3bc5baa380caeb1009cf0b9aece8c9ae6a28f0edbf2cf29095993637d59aee1488add36942c88cdabb0d2e69cf3c7ff9582b212d250071122b2c810f426db91e0c9632eac04119ba6c6216419dcb30d417044c9897ae81d3c06fa59ee7223b4a6a5f36cd03912efdb18a69d8a9c68f37c1e90b9c8b5f72ca0083145b20cc29b523414f0d828eeddbb51f0358a66b7174c3ab4784bf56567c1ea8b39cccc59cb338bf84a5eacb7bc56fc872edc16751945e38c19250d28691088459d7d9128fb84b35ee8fe48481bc0ad8792d5a86cd493d448c65ec841b7a880553a586d862ce088f3b14602fabc30a2b8d46657f27710b2590ad58557522021ee3a12daa5a9fd33b2c66536e2c5a03165b030055c5202c8b0935cb39b8b7c539bc13a1601e0efe691794fcea3908f100409dc972b149f1680736cc9a4a7c2572886761f03c5e091c65c5024289fb87dacf5ef7ac19e8f6ffec009da657acc1c7627a3811a2ecb3b815c910c3dcb309e74f164a50d0c383bff1f25c634d72bc4f5cb403912578d54c38f4c23a71bf738e3b584fafcbc01159a0bc661b60ebc722fbf2b6dafdf94bd4735002608e8719b6c09198fca6bf5f325bf89ff4073c4009b643e291470e7b85801a27c7fb2cfbe142ebd1cc1d0eaf26d410b5207db4c3537a6e442282ec1f49ad907c6e87746bd2d7fae24e93670e5b93777b194105fb0b295034ca12f07b3e5b11001182c3d692ca4683238e85d4c3742bf4c9968383ad1605ebf5c1b0176a8089756d412cbdf61a98ecc03840acdb268fa859047e2de38ae3f8b839aba07326332b999e8a3152f81c957ae03ed4f6ad8f5b8dd5a0005943466fd28b79a3a5e9a3064776b06fd34d5b1b987738748fe01a4955996ab88ff02689efab9b24387d2bb5a429a25b4331f3cd6114c429e2ebe56d2ea2b0aac2b688dccff1cf594d268219111ce3fb1a753179ac70b92e34cf83917189334a5daeb25e8599fb05ee3fc750783ad240cc1a7264396b21bb26ddcb0c88a743b731643ac54944a339c1b4cfe8926f16abd4d852a93285b6848d3f9086439d75109e5ade0d4a75f3793187c4219f2c1ba3b098b54e2765f57d586fa42043cd667512833037581559902f4e11556ce69c930efa92d12d56bd3643be33cf65de91edf5c81074aaf0a984c9b3a2dbb9974519b1d09c053fc5808026cf67d4c63b33a5bc86f763ae36dd835af3740dfc3c59d947a1b0776ec50538fb195f9aa6953d321e0e101a7efa53b52e607234935572d126271abc608bb656d7687365ef5d5ed3be2423fdb3b6b14014dfa18c61674e322cd1a55243f181ad705cd098ba4b12db4a8151ca31c64406796ba5ab767daa175542830a95f74bebfae8598758dac9b8f7519e44eee8fecb629088e937a32faf79d0f70f413eeed088d4e20ae2c91d529ab6495b04c2fde0c5f0dea4066a6fa06906e10dea8bc8b4723cb35b489b139e0643fbd00d5ca3797cc2327ce668f0c72922070dc64ae1b7a6105fe22c1872b43881bcad4aa23e46674ec3d60eb44a9764983ffb1608964e3192ecfd87ca25c3db6dc30536e343060e729356a46e54ac368d5f041ff8dbfebeda4af84a81b59b1ff80cdfef55151a6d20c80d10355e71615cfe266b701076525518a3b6d0c6ca7186c73f538e5b557bdd56918baf7fd8951508af71695958ec42b956158db26b9b708dafa60cee93594404438205f483f9f91f80cd02966b6c34be4de454292af9826fb594af4bd30b81b26c596486ed40ffd259d2fcdeff85939a963d05e823ff7dcf1c813aa3d211d7ff060a7d0e5fb9539a7fd13f97b73b1aab1581427c9cfe960a0b5fd56b7b331b3545b805fdcd65d1ad6e29550c11f95a8c51d0f218b52ff5f32fe38e8d945b3684401e36f8ebe18ea68b26eaa6530a36c103eec17a9a55371f9b4cd3198269a6965c304c88fe1650f1f1cd52abc2e565a9a7779ddcdaefedfaff05f9931379fd6b3fdb09d44fee1111cfe6038a3773f4c7813c3afcd5cf1bbb7210b9c9a23d6188761c326d4a1580b1f3f916c08541c159d9aa8f2e7915ba13e87fad3b05b40b732300102d92977f89848aca474a63013c5ee95784b90a36c30151d715129dc884493ff020ac8ba60df57d0199087fba22f53792fe7d11f0ecf1861bb8bee87b069753a386074fbff2b584c239b7784a1f64a001d3ebdbbd437fcfc0ce1378999fc3d6ffd879d648804158b5de1dfdde7699d4adc04673650474e2f4fa7c62ab14deec5cec7f68f4b26fceaa1ba721fcc886556074d72525c00171450b3539cf55234a171bd6ae2a2f3c1512a4873dfa85caa22afd89502df7e3c028c4d09938dd381e1282396d840368e5841b5d1b84b5a140de50361d23834bfe75382abfaa5de4cf324d6453523ba11d3a76a6a41a0ddcd692e0c4ba9fd1dce6e9b12ea6ffc09afde013975015411a0391e9b7328f56cc88233da148adee4aafa22951caa47680a8894541870411bb578d6c0cc38b266febaecb2cab4e5f59eca750a3731c12b5c81ea69a7f8a3b569152c816670ae341ac188a23c3f6cb4ed75e28d70e7c3904cb95da3f80c5b78bc0ac38f469dc19841088e3240e0f7b227d142bab0dede355a16605240409864321889ca2d02327ddf1e794d28a759bee467904835c2ee877200e73691d5b22eae179369c0bd72ba0c267a137d7f95e71d121da2e9010db1a5f8f56f334f7c6d86934fdfaea45542871f95669e4dfe4a6380424238df83d1cabee95c2fecb7e934a147c85288c6e07b7d56294465ff4c5d3fe14a38f60fd7773b4a66fabf907c712974347251fd1007ef6f5e71c278729dd50939f2a553f7b366e7a53575986306ddee996ca46910a8a9bf910c9d723f1a81dc14c09fa81121d2d7b3178f405d950319babd89c09cf84c8533732830862dcee14b0fd050a4d6d079874928acd4e8b793a244f92b068dcc33baf1b3525538f2f02a92c3da16f67946151cf0d81c698c5112206eb3e52a4979ed02b69e62d60af3136f602a5307271365f2524144e91c512d9003e26c5cc9493a69b90cf4d4a244af98ec564f7b3c17f7aa5a98c7bed52a7b77c78570092cde0682c8de5c87da5483b1e8bd03858a7fd01262b954108e4118842575931fa988ff1eb3be9ea8e2e69f3996e774bc9cd23c1f66ddfd38e1a5e2d49efaef9951291a085e461ed121f9f92881cd64c18e0851980e556c58236e1dd4b298eca7c99725f59cb77b626bd9d954656f5f1a511543db03e23ca0d9e4afd8f3fe690ab5022b756a49ea86bb0701f6c72585de095e78ce1d67ac7295d44f8b842b66b819ec329a61710cdbd84a41e75da3b5493265f697541451b0b9fa3c33294b36613af93427f4016e34528ffbedc8b236dd9814b0eb7c48d454e3829e16d6e407375f1dd0d2632261e9171c8297397b91136e66b44badbc55d251ed20be25bb219e49900ebee6fca9c0798a2d6d2a3fc6dc19b7affd1b3d7fd24ebb7ed8ebbe89cef1c81ea53715de271b8f2ee806abea698690939ebb0088ddb5c81817c42338a66b6302a9b2594dd3c51d985723872f1f51d6e9a90e9ab1411d462018f7688efc2e660e1496bd845d3c8baa6666f4b676d08bfc79ba7a40869daae85dc340cb24af0270fa4977359b2e4577cc305acadcc80df5da1eab8ad2296f6b4942be6bee85ab5fcc4f38846d75376126b04e3cd045d9cf5f4e4b307e058ba27755f6810026fb605713be0c8c12319744a0a3bd6567dd8bdba7b5879ae11aa61b7a885c12ebfca589d1f80c68f4949283cc7581eb540c97edccb238007d975825f3098a9cc9d08a2cec418f5a41d6e4f3581e948ec0c4318e0a2df3523672e10d5f9773ad6a091d1db443ed2e8dc35e39a92a15cb0ca15cd8d030582c19c357db955e19a4522377056297378e4250edb0ae98a8e1b6779ed0ca4ee2482f8be4b026c2b3791c42e34d6f6021bf17d2c37db85a39785548ab29d6fdb06ff23e0f076b94e427ce8d6c7a99eac3237cb26340ffecbafdb07d65c5f04c1741f6631d9d48d3be18a358bf4fa0b1da575dc1b2989fc0588ca78f7e7a136ee34862ffe30068b80fae61789a34898397167e06bd2cdbd02de1ca543e51a8a7d9d8f9105520a2a41e4673de46635973aaa25eb000bc4930183aa0e864ff5bb971610c1caf868377c6abc198b7c0dcd95cb127527367a64feef1439cd691c3886b2e69a75a34b50a2e76b635b7d13f1b8afb3dbf6db202930c1572f47fb51a495c5821a43bca2697c698097462a973094b359db493a186fd7b2e4fd2d7a9856c8a7aee385710e4b621c3172860916acf4d0a81c47cc24d95cf99b35c4f739d7580a4dbb365d9d10c176d179e1c529f8aeb9d3a4790a9d9bbf0e736a61df3c660c8b390c155ed5a9f1de9e72ff81d49e993ddf6079e5a801544f05b78eda6777556f28655744e5585fc5c3e8cd91cf9957855d9f23bd79e6d1ff9a39336c0e2f46b134f7eb335036fe6c0cabf44bdddbf2ebd89763d6b73db3966c90d014c0ea52c8c61849deddae11dc564e5ae5c2c8468195df8a91408ce2620962cf119cb6e4d7a1c3cdf51c0043afbca8b8887bb93a7f67f339e3b66cb9e9d1d8db097cd5bb2d3017b27c4fbf07c9d253411c6a7bcc3b1cb4d8d1550a4f9667205238603f223a9bd487d12a53581720305267cbcdea615ae59ef9eaa91694cce9bae9871dee6bd6e14a9b6f78b6e919e1398a6ee61f7bedaf2c59dd1eceeeafea575b694f549a87c801f7ffbe8391894e0cfac5ec0b14281eb3e8aa53bc510b5bc04f4ce88ae6a238ee88c407a8463c218772b77daf0567a1acbd55c43f00c9798deaa2ac3b3fa3834d53630b888a434a06902d2a86adc78e25bdcf05ade1a10717a55c99c6ef831da97485d74b83d97b880352f7701ed29b941e923a7dbac4c83f6e575b54e50223b72f2b49750932acc39283dd70942f664341349dccec20065247c3d6b8933ed1cade5796c6611e9849568f4931b584ef469603fb285a600eecefc4a025a4750bd5b431c578dd6e3fbce7709a62672e1908a15437b040b5b2fc72e483acd789d5f46d8b32c2da6a621272e1a6e44aef2c5c5083c67e2da2c5cfa6dc0092c7eadb9751b00caddf8c0aecd54935c11b93562d325f326e5ecba22af230c76f6db8ea2a2835d63dc9ed02f7534085f6892c25b3430e98232db2a678e88641279d40755a0683eae9486f58636f96c51150d90e3b6047296e5df4b2078f2106a4da7511e30fcbf15d2ac3e067fa1f9a9992e7ea809023acf5684aaa545d04676e35a1f9f193146c941be2b1d67ec89c48d2ce7497bcabfa382209f8674a34e50d145c8a1525212f3cf161a6c17440da17fbadcc6082b681dc485c09427945b73b19d2c8bd8ef4e06ea160de2ef98752195ae7f69632a0c248e9c8cf5756e449e58c66d84ccae87cb76e663cddf6e07a2284025c6436e5d498a1c73d1f3851b7fef21b84b75558d368fdb6e718f33eba467733488c5fadded82570ceabd4d55625ba87bab58d1307444d06cb9ff01eef2181c56b23e5e4a0949d40ff5a1e142c122caf0d83ed07116fd16b17961aceeaf2b32f59d80e96ebb5b404d19059ae73dc09e6332f56ba3cbb20bbbd8a298aef85f4c70accd0d424b379c148847d301a0c7eaa857ebf77a83bf81ef68bb49237efeae05bfad9b3c60d6354ee1b3253447c4e85825af469c82b8af0bb4be0366e15609e8b32d768dd20162550dafca8c60d78284cd23c10e425534a4d541e27350cd2f2bf9fecfb8b3fc9e280da6e86ad299e6129ab17f698a9efc2ad4ceed6a13e49087ee1a79c86235bc791dc657eb613f8f8038165e453f2ab11244dd386ba69b8cd35b4ecfc98ab79431f62b21bd50ca640e976a733d91dc81bbd43efa2fd667181b4299ee01eea7148c4dab499af4598eb8c773358c2a2aa0ec668f67edbc678d8ae7106678a83839da4e0c33d1fa171bec205803bf9167bb853c36c1c383bc2d13d323f71e15cd1cfe2846d9bb54610d0079de9773d46df45bbbd5f94ecd19f5b5d701cef3e9a495528ace57d3205a65af7a19316a398d4e819ca0df245ffedb06d085cca4ded1e6c247b33690d858a91d5e2460112c9dfb1cc162ec88478c6bab1b61b9ed133ad1905d3efa5f14a318b08a86ff4c5eb0c12f752ca8e5bdec3d2d2afd7661e66e36c02dea6923c8aed1198549d5fcdc479110283dce3753720f95cc973dd9fd58cd1d3ab2e8682c76d19b596254d8d6e644317e5221dee3a38f13e32113e51bb13d336de84e6094b19aa3128cd1b3c50f8e5a6e5db35d76a3dbe4ebbb2d1461697266b6505384a63b94e011f988f66645369e1235c07b4fe20a9c3aff1af24da6d35b94c0cd176771874bfcd23816ccf7dce4086b0e7fd9d0150b93d45d4a36d71aae796548eefe980b52b342c3dffc54decff5ebe3da0eaa53eb06e9ed01379a9b5c32aa65ccaca45c4a6ff1e78a9c371ad9ba093567ddbcd360db05a1dd30433d39fcfa4ac545abf73b51bde9344111bc85922d9cbe9e6649e98ebce44dbe77ce3cf39d2ed8a5b657684d213d8809b0245bff498172cfdde80fd2fedee3386334c2c2715fe9f36f183607dba276219c26819c6ca8503534a304be9c61f7adf75aa948b57137aebb1f33cc5b9b0bf82bb37f55658901efcdfd978a9edd160ed2d5867cd0d0535d47b512d73bb0cc5d608daa7fe8bd6a3551d51da80f4732c52a6a70c12b9039f37de16eed0994c73322e9ac63f1b4da940b0ebafe693b63657b7416a9ab6bcbbab887d5d9909721c378816ad6c3ff8be2cc087963132876e3b25846f2feea03f480a53fc7861ede9c0b082fb5b8e7d62f25dbd14a0d208d4d109178d9e318516a954d1711ea1cf53ed5383132d851f8a7d24cb11f1acdbfd6f633138465f1bdfc0acc206db1983ac712f449d1cf7401e485405588cef09952c232e69b299d36b7bf3a229d35a07974136e50369d2627aa4f36d1a3b6e7ed76d54241e49268d42307003edbe42df8c851241f546edaaf1d7bda36b703f0017c8372ed706c51e1fe58631883a591a56e17f5ce6e5cc664505eb84c4218a4c392c6bec1b4b932670600404d3a6d124940a38838c8498a931e71aba802f060e3666799bf1b4cbc1d70beabdcd99d9533baf6b346495aa18df5aecdc5f5df11f9eeb6ac3670ff5c4aba6e32818df147612ac01862bf3713672ba0b1505db7ac011fa31220f4e52cd78c8d0647b08690a34931693662595ff7e07c2d57c5ce714c5050cf37d99a50c7a330c6d5e8e7a21928276dfdbb4897a8be54eddaec2efa70378321eca6b980026f75aff51807d586f4a0b57169011ee956497b6ec531c59aabd742d14bd5a5fa262ad6385c53bcee2e378b5e57f50cf8f9bf3c46a841e8aaba5951bfc3f4b6348c71b8f51ed726d573762afdcab6b1cdb122551c04e6b358b0f863526aeba47270bc93fae8feb690e33102cd22ee5c4d3febf256a1c98ffe4e9d64dbc241c39820b95fabc3dec579b31753b62bb25f5444a9108493e3c43e480fc73ec9034334fcfc8463b02ead764b0c6396b50e696ee70cbc521f5588dcc1c3d3a652c1b48b889261f1372986a265627bf91fd6b1c052a0491190a8afe72f06456de091d939e6c0753cc4cbba371491b8fbab7c7b8b3e24c373ef7808bbf57991290b1d5aa114b717d16ad5b9c27d7c0b8913d8c7b9308f0fcff9f8c253266e594b6cd0ebed90b4e4b43c942370169077e060cac6238249d08b2992f6a5cc5597d14e738a7f0eb2e05c843dc840acc5e65cb627159a4c30ded0e04079762e3d9bb6d318f2a069145b4c00be25522c7980ed958c247d1346d39aff183257e71f0c70c683843fceb7cc569cd73d67c01f700e90023c92c100df8966039a07e3245963cbaf6db69ebdbc0a4f27bdd20399fadfc9d27df149330aaa6c2c0f944198ec0d0c7389018fe9b86793384766ac9ef4ed4e748f760caf89e281677eb44b715569cad9d1a88659d8691b65b0e89816e22785f4ce8d68cbb7a488e94a809fb30b4f9213ee66b582392bac1309501cb4bb8b4b3b21fb5454f6395cb6080b03e3e9745a14cd027f5013b67faffda2920b4b89635de132c8f158d85a485e06ba6074e61aade875804a82e2d367b65aed2698cf35ce333e09cced3ef7dc286ffcea29a310bf1214c8bae9e48dbc9000e2261cbe05c35fa6a767fa18f33829746cc2755203df967852ed89314d1c4561ea2583139c8a07bd701f5a4859015bdae77d95599d1951f3b64aafb930090ea85f1a71d1d4646c826deadc0d6579469b90e99858fee2f0ad8760a5cee64b3f03ec0be506f5687b8cd0d352aeadca6d37b21bf34f6da9fa37a57885becab159e1a260eaf5726174c357137e90c2cba4c1fd1b301479b26b7744041b87c667ab23c49564ebf74a1953911dec4edc2601d625ee0a9009e4ebacd2784da31c965359b5492f7d786b949ab39373522d9e12a1608d4182278857dbf01a2ebc1fc879683befc94922c036cd063b81da1383947a139b6eab1b1802a39d3933c86fe11a514dfe5b827d5c741dff022ed48a609337b09606038a2bfb85e9460d3fd10961bc2d6568790b369a585b4553e56da4307b407b774425dbcf804e36c2949bc55d0d3c4bad10ef36612634fd53cf00884f26b5c235ce2ae9d1636851e80b05e1ff4e44d0821a3fbde458f5915df9dfa67f458363b382c287cfdb3bb7db41d4d1d2c657225c096c6cb1b0f5dcc7fcbb45f874389fd32b93b8c546c64be259d8338bd18b57f95f342616561a0dc7e48b2baf78a1c3686276abfe709edda15e2e5f071969112c008ca44d1f6c09b59c9abf37c9fe9e42c977eae2d6515abe6c30fcd5dca425679eaa38ea2b21d831966f07c0888cac21d2edbde440e8220b9bab5c32373d9d0b2ee9bc7df6e11930f1c4e8f235e783df794d5b432c61e933f649540efa6a2434330a554d776fdf2914a8abd23ced984f67823a5660451470705f6a6e14bdeae3c0f8f02530c2498d8346a4e749ba183ec0957778474fa971801b973509bc5a531afc9a398e352fd24844b9fb01a3ddda47e6bab40734b6e9064fa60d2a8e1acc5753af261a45d3518c44c11d2b4124bdc906154aa9465f1c05b412dc4d5b19ce18f20274a6c68e279e40543c26710f374fbebf9951dce977ab940e89f5aa2424a6a09fbcb4c02dcb9bad09838468a9110012c53fd8ab0045a7327e73bc152ba243ad5ffcec80f8e257da155e8f4689099e67dec0f09f15a5a2481c2c86c2c392975cb86ef59855a214a6fc6aa2da8658d75550a61fd0ef0768aa6ff2f0d4946e258bf8420ebf187b5a02c427f3e25d30b792a5b177cd788da07be47472ba9985b614426035fd98665e34f00f188bde1c745754a43d1e789f5214c4e26a4ba1511d3f205540adf9797dceb07b101bdb1f82dbb0689faffc5d70254c9cf252faac335bc361a35c01cca3758b9f8b29c7a510bab8c1b2a25d455f8071d48b422f716d34f94d89b1e1e73036ab4973a1154d9bb49499e499417d5f6099d2627920d803b8f0bdeee1ad0ad363c1d664969a2349f2e25e36f84e314123c85a8aa21b21ac212cdf551bf1fc927888132263c40931bd00aa36cb964ee05210c4f3d33e36ffdbd9b24df399361128ee0282a68bfff1ae0393f44e63ad0aecc301c344d9b154864a9d423e706f0988d971e43615b3d87b8f951abdfebad8f642694b5d00955427db3cd9e2c119e3cce342572cf76bbd5d77c558d9e9a364e307fc33d00bcb14fe9519b452317c0e63773444d7dbe66786d07f08912ac69363a79ac1c56704115c6a98f00125c8c647be0417e964b496af6aa8470c4430bb37f0ea8f42a8e41ff52f6642cb89585e4caefea41365ffca7e92880cb48c20ddab1aa793eac7b3cbde5999c1a68cf967c227b6cea4591e7b174ce795382afc0de85a80ec5224c5ec2eea81e8ef1a50da320f5e05dab8c2a0c485ba877b4ba789c95f8242889804dc50d2149405c2677b56ecd6494c7b2d7c373455bd965ba6f10d0935e5c72d4f941363e925e72d9e272b9c9ae1d4540d7e153ec20d112d6cede799b9928405158f4e39f1d091bc6367f3955609936cd63f98c8c02e9af4330cabd48bfa8a921f1635f3028d384740ee3cb08003f8542929f1807c75ffc426940cd0d9ecb91df78551200fb47203c168c9aedd656af9ec0ed61cd7da6a44018cd908acdd52d566c54ec8629616a66f3c8543cb7bed62318ff7184abe5344b46a3e8360dde7bf2ca2fd7fd3b1287f090ccf79a09681fc988772c315276db4366197de40850095c997b3bc28abeabf51731271b5cd95d09c5f99bffb668fb741f291f7af06c09f0ca0d95f5fbbd590cf271157b14ac1569ceb04ef737fe8e789cf1b88adac6bb188e8117cb88dd6820f36efc6ad50dc84d94c8c22ebc2e5a988a33cea97bc522bbbcb76235ecdee1932fec25d99c3e920000f2e24f4923ed1191d48c9f56240a355f5047e6a0f5a8b0121284869f151cf689e3927f11bc76e8ca606dde2b745da5c5359bd2604af8b400eed9656c7cd6b51dd44bfadc0a672eb98563dc1898ce78b8111eacac79aa042fee7387f0f089faa204c9f70ad6e1f036939e318a47cc74a6d26d037e155549646770938a0335e6fb31c4a78518012f3303da9edd8dc8ba832c0b042b21338b011198147bdb3a63a923c259ed81e78658ed3d5d534acf7d42166efcae95df8c0c88c615a5b0e10c9022ef21eff2a2825590cf59b8b16c646b4a2a24ffdfdff3f2cde2d3c0512139897a0b8d3303dfae2bce713e05cbe3d060c92352cf5ffe0765c46786d8a0c1fd84fe6735927d67e5c6ad756a08f2b4894555d3942ee97413f6b47c802511c94a0382f24a3fe07a7521d7ba3c1356747c54f69adeaf47e7ad27ca9d2c2a303b749360526078deec13651a60518d7bf094b4762a3867b52d7c2495d4a4331827c5daf4140fcede18bdcbe9039542b9a8e278e5f32ae063ef2eb68b80e943fc05f65b20ea44887aa4f27eda944f3bbb93868a15b05556f70ccaf183aff8c3a169a0dac9f04bcb0112ff5626b288ef013623af1ef35ce508db7eac3a064843e2fa09bf5813e013f62229272d9c67b15e08c9bbdcd0a919a42ca30ace3863f82bc8e04f3974e3588f0a0137efb4703c7a2e99496c91a847cb2d8f614513b1acffe3c2f05fea83a1367031a49390c271507d98eeb3757953f10d6c340712a13b7353abd5be8de3260c427eabe495b46bb1d16c12d78b451f807a3d4b608ac3d3b04c9ec4d05396286157db42cf2e793dc0b6fef3c393a9aa53e9afc200638eb674c52e9011bc86733de3c401e688a5e5755c395aa7f3e8093db3757a7a5cd0499251b7ee838c133bdbb64310e0e5c0341ade62b776bcdabf80fe3c77c8e914ec6d5160332b9e784c285447b8167c3dabd0d8c63b67bec2b1567988a4c5987a2381704d3792b9d4d448d03f4008e77c9c0b52ad7175ad88e06ce4f4e1b20abe6cdb738c7244835eea128621e9d627c23612eed781df55ff4e626db56eb27c7b269c589fdd54789ac98f983c45c835336a8076ff2ca8e02d014cd950954de0e8d279c2bbb5d7faa33f7f4592a0c71e4c0bc6b00bdc1828cdcc347fe9f0f1838a303eba19a7646edb0ad30792dee1b765f7a684ffe5391c6bc795129ac46c4ba47846bceb319b648b13348a6804c9dd3174b972d34f5b37e67ae23db1a4737869680517da579bd9563e7b694aa254454f7deb5ab8d7900233adfd0cd6201f032d987f991bc18980824237c76471fddb5635fa927c1230aa9d74c0275f356b82140ace91859110206b5e2aac5dc761b8043afa4c0dbf57a2f98578dc6609b7a40fc89f1b2d17dcfebafccc3a8ef3c49a5e2dd34d4e39625b712664fa65e6483816dfb5be73551e60305dc7b160358bfdf95fc1f3c1227606e8ee3a7c5f65c5c3ee03655d99300b10071c793e7cbec0b5c32ad48cbbecf9691f9ba302e784bcaeffb319732da75d005703759fa81e9223eb306efd15ed17c61373ba1e8cba1bfaecb2cda2f917d0f4f9e90297938ad1f2d274c7b6a80b3ec93f79926c7419b788045c95953f0ca63fca839a2de2a9766b29e56cfdf4e3a294ba6cad7d2e57c8f7ba5c1529645f248e4cef6dc437fc19528ac9bc7fc56bbad061da859307cf6b07bb1307ee61e613c5167ddcf71c7079584c406a3cbaccc1d181ec062a6ea31f9349feb9f69cea3fed85a5fe51f079f81d5cd1feb8fa2336ccad6412522bc4481a00548cf5f1e4fb2f95611ecd4ad41cc046f4548888485c19ba2ffcdb7cefb0d81f2f76ab1ae79ce3e7233a26821610fbd5491b21ec8dbb8b0a500d525abb016fff6581a6c10af9a7587f86ff327920dadf33560436b69dd3a66e03c36e534c1b55884a50df0ef2929f20e7d2fc7341f82b68df338eeb92f3c63f8d5c91df85815f49834c3a05e66ce12079b4d95a86509015dff8cba6ecc4c90bd0d5c67504042ffe712725933bfd39df0ae5bbc4ac9ea73458facfdd448cc719e5a9151205ac91bd6e54d3d1d966937f9c345b508f4fc3a79ba39ab1f39d326d5822b74d29a2631d687cdf4baf945ce5e7345c4fb301fbdfd2da58199a123844ab316f76f336467f601cddee2db6f080d43b3bfbbc957bd77707e1b49a8bd208d11d15364c7bff5ced730f09c9cbc18e0336a51af6ce7753db685a069d07c1f2b3fa96310069040bb6c39f947a43987746492869ce835c8aa0bc08d00bc7d36caef401e63f9beff5fbdbec2240a579d9244766a6565e2a7d3f3576389640416c136b59911c97e6750dfbcdb39a4f086157ef32edc52c178d84c075a4af25f54ca6da462411a42ff1d2fbe2a50e446e034e0248d6f5c1d8180d9eb7eb0e770b722098ec107a347a2d42d44bb6a5032559ac2379f5e4653b37ce45eaa92ea9e9ddae5a654a15de9b5dec6361b76b7b2cd2c78c917333d6e5f68f9ea1f3ced8a7316f96baef88e2c3af7292493ff300833c298f45e2aad66ce56c847ea3710fbc07f9a65becdb4767de08be8010d25ef09d13e7e1eab2511802549f50c9df97196ad4c95f4ffa80678cf979b26720f175b2f5dda223d908fcaa8c892c82a2623638fde81c3a34a63503229d7babfad1f578f73cdd2a52d545852946b0a58a7aa8ad6535dd0dbf3df43f75a0ef330216e317740f63227278e3db9907f04129894dde7091bdef3194d91a784dfb00dd180d0c7935cec834fce1711b46c5d4586b2ee977cbfed008a554bac3bcfe3fb4d9d7034bc69ab9b6a3285042267a8eb0d590d746a853e92493b67186a43872b4677301de423bd0ba6b71a8762f0baf1209e9999ebdf5f748b162a100f7dcde8e5ee45e5e989045261ba1817252793c20979d58b41c8baf9c1ac72c09d1f0bcf772ef16aaf26fe284e3e083c73fe6e5c136cf5ab0cc26682edb9fa089b8452a290f3a46d45e208d83911be5580e75e4a1a896193015ee916ca84632fe2a2e9661ff3130a23dfa8a744dc028dc312910aeab6ab2c2982c6aab291157fb7bc5bf5f2e8e331086920acdebec1f60c13d2c9c01a0cf6d3fe123a4d0ffd0a303e5c8e9717a02ccd71beeaacd6159c20dafa36283354a29f10d0cf1413fb4329d20284867c022b95de7584751e1fa3788f08bbb455e3c62205431944d3e1775756475c85f7f326d802f3687d2dccfc5f808c9a6cd7bf87924a8bd71775ad54c290e263d5d45aeb26896ca703b9133ca048f9be7547a5c43642580d00f650a2f349b4e791e9bfd08520265ad24f55e730540b6841ec14588504d1cdcdb82b3a6ae4669d73b555b22adc16e0b861a8d462e2b3648db287e852e3bf3264e2830d05c30f2b3533cc76512216efcf6e55a9903ab7d431eaa566ab29622224f3434dd0ce762ef46de8e6c04dd09177f3dc11821a7ff47e1b548dd694fe4a8956b1a944570b870859a23868219bf95f6100b4350d87d6d196a6376f66a31758fd66cce4427389f6a3be4366bc9c6d6f6dd32edee081a8e5b14fe411870c9a8d9c3e6f94d0d99e9a9ae38b2aeaf9ada5a9125bea58bdfcb90b4253f8838a74549712a954865103fcbaede655164a5c94fe882b26e621706bb717fe5a2337bb5839de2baaeb40197b76f8e6e3e07ec6cf5b29599ebcfce66c932e69be263fa4427840e91cb833b6955a02e1fea8aebb18e9a68950c4d75d77ccddd3e2aa1b0a28306c5d74977bb323553a77ec4c0762a424d0e9e061d5c885c7d129edfe98b63e202d25d129dedf54da003c77b911d8e6a316e019af92e6bba947f01d6cc857f5f1c2f8a7a063cb5c911fae70e0b8937770229dda89132b8c799849e0836a7d251757fd7c2098dfbe12d2403b02e43a35cf972a51dd4326ab94124232528229d431e6452e5c4ff56ccaf25ef76a894f4946213a1214190c0fcfbe430e62c64037b3bb51cb4bbcfd7b641c4b8e3da7d70b0c3136ca3bbc8be7bff4eda3d86d38d12236aeb47abc991d4c9781b31e8530176f20a772d952da9f10bd029506a60a7a1f54089beec241f7a9c530b77a335b593bf5a850cce358f4f51e1993dd43220757304524901e61e4a25252f9d935f3fdf16292dc6c300bd302fa89dbdb384ae5710a5ba8b2128ae71d9bc611d72617426b7575cdfc72a475fbeee1789852768ea8738c549eaccf5f484b83096cf5ad08fe33fd0f2580a8368563de2949e4b4a8d74598d66801a9c0b45ce5f2dc8afef8ab0819d17f8c98e418112491cb4deb4d7aa4ec032c6c1508dc1b364c2f1191451cec8ac97d497c5fb0eb38c7b6a3eeba05bd8200b7c9f426e77c5eaf0ed94a5f5f20237f6c7514d893bd062daf40a97983e7f0147664ca84b26594fe34969ac0646264f465ca98d91184e72a60f9d446f47c8ce76d2393a08b33626f5958358bd6f5056d1d6b8af55adc8d9dddf01e18ea7bd84f215a9b578110bb725df587abe2db9850d816722a57e12a729816643631ed434b8df455b2007c97a5af4d4096b8fad67e4a9c81ae270cb61c84c8ca332da51869a778c71fdd8d3a07121329ec03b8b5c4919d60f16365b814823361c866b0231bf446ec06536808a244a25f8c9627d1720f0833a16ba0ef112437e2e228d31846d35d815f3f2ef4fba8e7c7a9f3c8f21732e311bb83ed494c575ab3e8fc29ce02ce2d7c27f618d3b8ae429a8f7378254fa59e5f6151a16be5d9e6b13320f4a3c33861d1a3362734a4e4cb6ae473ab860f1fea050e34880b632f2505bf447f8a0232782f89d75dfb1459045d973936c493e054477d146113bc0660e247dc12baa1c860a39e766635627b4a51b108768e7e71332f803dfb2fc401e3763f95cb00c17b4983d085fec53e480608b308d5a64dc7cea2795e6bb1f19dd33707435c80b94631f6a1973dd773ad668e3c9acf9c2076b3e9a2a1328bb10d2b888c06f24029c51b3a9aeff6bc416acc800a2912853ba4cadae995f075d5e3b454aefee33dd0c6048e7436324f2c7eda766d03f5e3f5fb4b4019cb0a28781b21d3b5aef499f383b4196b9e9fdeb00991fbace86b40183298ef693ab172ced28c1423bca9cdcd3a43929e1faac4dabca8f4619961eea29a4ea3461f1b93682df0f2cd563233f34be9c9b19def2eb89a39a785f55749d76acb827452f5c01dae23a292c06e606dfeba9e9fba4824cab2e796244623191a058e77ed7b7bfdd60d6194d4eaa6d81672c8493170fb32bacb31a3cafd500933aa365ab0a96cd8f4018b4102cf29a969dfcc81fbf789df5c91e62deab327141c9d35266404ce8d01a88a1cf005554400c23f596e4267a4ec568e047db20768fa9f3712a6eb199cd937a66484b40290bc8fc8e050682028c94289e1974d4af46478977b7519e1ca5aca31522562f3e9a8d25a7fe2912623ae6b8e119d345ca80a313b68eb55cc6eeed01526350fb93223095c114ec4dc797739b62b49b9aa82e2b000378c50a2031621442f8f5e502ec578ca263998ef5152304067568627b92dd146b007364946960e52430c82010d690eacb055dbb51dafab513900b8952c5c28872f4e9a4f28826b40041d6d21ad3a8c7b09d7c7dc342e39bcd5b5f203632b2442ae81472abf3434752c215df3b675e6ac6d1a40f6d5b39c777cfa6635319690659b231049901d431bb2f4bed992b5ff6a2c845faab6731be290b7e96550df15f54ef75fb577f88956c698277e14f966b4bb0ff4e0d5e094435d15aa1947656cdea7dc395b22f842b733317de0613cbd0ab3a1f35e0690b058a089d8d5d10af5aedff6c366444059e18b64dc4764d8fa3f51c2ad9d96860d040382f433b6a70947c5d0a7287e7df7c45fe7a375fe67de7498e7b11ce6db2496411b729d06916bc39415d1055b6c8562e7abd62ca5dc96ea5cef049d83f9f3c20e4558f83c2197be29a45b6763f6fc19d8045d1d9421a367f9ca58870d8fafbbb28f9f6ff83368eaa1dc629148a685adcc62d818fbcbdede9bec09dd0e7e17627f73ab0418a0223dcbf1862ee8ce90a8feae3483804240a537d50d0bd4f9ced6d8ed25abf0cd4e1e43cd3d54fb55118e3ec2051b9e8aef52a27379a43a64f7014d094370810f8ddfa941bb9556385cb06af71a5b849d03ddb8b27452cb7819145c404690ef238e6f188ec1d1a6c18b93c7b4f1dd79d78d57080b17a0c006bf6ae13748535e0b4efae216a28939948f4ce7ec81ff86dd5c6495e5e19873519af208bb31c28600495e42a46c98f25c8b6c646b803e2d85feee682dde006bb6180519e531369c8b0e368b134b0164258479448900e580f3b99bbcf40c78b2ea489a6e374f58fc5faf1818a706890943329c25db0532dd7e2207628490952db5cf07f9428a321d5f0f6fbcc4fd191b448de65404ff6b50a2adec5f7c2470947877b570f61f800cdd5deb851e864d0ae44c63f11f38f6a16890d14a9f2430aa6d048f15672528553d795ae3ac4fec5836de462d479bd877cbc7efe30110d7a649a05fa8e22155f641483f66aa614cea84c96ccf3b114f252b329a480d8b091a0cc55b1834a9194d0f3eda5065f93128529858bb88204adc2cd02fd1220c151ac7852aa2306ef0bb9ca47a4fbafd172f8535cf4d4a461c1896ba887638940c18f4b4a3fff74fd4818d3939978414babcf3e0eeadbeaa18678cac390763cc87783d02d11cd0a0a403872675c6fa61569516ab26ec61908e0f73437394eb4f89a778351cee86f216139cf3cfc197141a0b61e46896f5142257d807329759b87a78db36f87cef15b498eb911a26f579970aaf6d90b18053d1c19dc8e9179b87c569d35140da18317da7fdf8c06b1677120ce39f6ece5832ca0eceef6ae69ea6fafb1e6db2aa74e41d0a854232ae34c7839370740b65d110f50ad46d8915c35dae087fe3119cbd210587868f8504ba3bc9fed4fa901ed8d29e523169545eadecbc7123275291997d683b3cc7101f55c588f6da1b51d65af40a0af43e5d0b19a9928f9a5ae83456ac0fef10bbae92f3674c928c09db878c99092bfc779bbd1c6527a17b144c82533b5ce1d50ab1d0d3a95dd02125ce14026c6655c5b3de870b812cff96e538b3251aa7af678dc13e6566668d4d8ebc4b9ee77ac9d768c9c38187fd3632295ea0c8d14759182ca25d5027055ea3c454d42a3e7b2319ffe7dd44e0518cb6704f2f398563cd53b581c39f06fad8527e02e1f24073eda069b297601a9d6dd37a21e4e214f3dfd4c1e7f35d2423f59edc700f94907a5ec7992c8549e7530f5b90912286d68261a8e45f23131927d11c989b25c0ef137d29dd8af26f9e46da8e6bb74ae8ecb038fade5eb574fb83fc725881237440bf48a7f36a9aaf7cc253bfa4c18b223992f9326226f161d8cb08cb97c1e60e00e1d2472b0fd214ea64e2ab7dda52ba649dbb2877f48a33d079ae66f33870ed26b70463d59bacf4b3e26a3788a88b34c97b94c092b7c731bf8684c24c8275d6b204eab9becf17eb7258c0815ba4e087b931a15742e34c30c32b8ac2cf12fcd59e5609f09cbeefcbb6ee3719076708bc2c99d9357ca811088edeee6b32068c32eb00585e3306298e48bd0289f3944c4729278a49070b29f684a824fe486450778cef051d4c29ea92962302bf8d6eedcb9f630f51f19cef64226b62fe23e7b45681b550f94c9d5070de075ad776e462155c8978b50eb1161c9b84d439630558c0f12205af6b61f90c6ab33951190f385d1cebe3e2e75df6e40a8783b487170d223beb3e548ced1a480baf7fd93fb96205c2ca2394ceba57103886d3d092d546d59cde5f6010a44aaa4e2c6b439a65daa225c3e7cdb2ac00119f38e60ee62059b4b43f1e6be98b38937bb76bd0cf03702446cd65a11781f79d7b4ac321bfeeefbf49176a2928b5f2f465adcce1833dca9505540fbdd32e07899b1ee339c155f12b8189c2da48f560e62c446d26d16d8475b9127dbf2fb926182813b58115d69c8f74bdf1c1dcdad9a2d1f0467f24e37259954584919041adc52ef7889281036e83f072d18684502ccf8f8c06106b8b1b2920950e9d87f77534dcdd823e8e2a3a3fdcb6560bf4a37a26d376945f5ede5ffe3f281336e79cf762ad28076c9c0aa0dc8ee88440beb5d9d4c7fd2cf38d4e0428d14f9f2107b2cb71d704047a3641c9f38f55fab106892413927e06c8bb11557d3c642c58acb4bcfe9d7b350641337b453a6a98eef166698960701c0cacbf53ab094d7a11d37d337059a27bc9d03fe0c818f727af1401db073b9df22aaad898ed3478a4dba9ed7b0ce97ccabdd3b724b14007f12a8dfa1188816de1b3580c9193344dfe486c788bcd13650b4d9f1957b65bd688b5b4e8d67400c7deb2122f5452b959057b5242c221b08b95e69b49b8679f1582fc94a14b5da132204f4e6d7a12f4eede9a9954d6e9d557ca550eac1bd3a1615db31dff12093e1c38dee27b75f0b2135b17152326ea5471d7cda6f225441df6b80b80fa749e01ce8e0d610a6d3b14b8b1b898027b65e944a45435d2de32b64eda5106586d4bf33040c87521cfa9e3f9e67f2293b1d68eb5b5af33f9de6870d40e37cae0bec129bc35350a5f8f0c7a4ab299c904b3e788f44888950723e4a0652681d95f1bc0a0eeead2d458b791b9a1ac717181ef811d08c8fb56fe9afd7331d758eda4ff7a49ea844c6d1df79925580fe9f3f5cef4855a8a3e2f372609df6b1e0d65cce5038a994f63f3c417cd085855e6f66ea08966f0beeb191645e3935c393a639a20311fddfd7e1acdd2f5417cdc9665409f1bbddb50c45e980183374fc0be5aa9b4b1dccb1ac868a83e4373faff803c11896bbba858d588276e443fc00d98f7604e9a9338070df0dac1382ed55f6a7529eadd88589762e4127792f511125e90b70a42e70c2d3850a6bd305098aa32dd0692cae76b4c0489ee0732c7bfa26f6a7e7c32a0e24b6ded76665d3164b32d07e4ccd528fccd8f32aacd3dce420ab4d1b0e9511aad5b0cc83aeaa382f1dab61e6de918d1e261da12c877cd6cf2e95360bf0e94611d88c32b91fa75162d36ad1753d3a1aa4c46611599fb7bba12c5a16c836962bd626c94504110829ee7e9e02c279cffd48c5794ffda9b0e38b8f842f135df539a97718b15e209b68e815cbf258bb1ceb5d8b957a190af6924f1930b06d56613209dce2862d59d1993d56483063b02fb79103e9603bc1ffc3203a9010cbd2be571cf3c0031b6040f62764c2a08dfbdcddd1761aea2116a27fe90369c1c0e9f0bbc481012176f623c87fa5b797f5c13a1607d2c15173739bc56fa4962a8d815f9c413727f701f2d85a8765fc3c115924f71ffceb3110400a0520ca83f98f3779ceef1c6af05eb9617b14df3843ce59baab1bd0975dcd59f4247e4db2bf0de9303cfbaf33cb7770e488396566ee600bddb706953c8b9e6ac11c7ff73ae1583c787013eca26c9c432b15d084576a7d2db6cc1b5a40cf7b87bc1c4d4343d3b9b3cb33759e098334ab251587232e71f5a62fad7a7182e68b67964638888baab0e4a538db306ff8331563a156d3e241f48278222760d1505d09e4f5d50ee4f9696707d827bc0f35bb1c9c467bcbbfe652f4840042fe723b38cb9c989032b30081f3f8ddd99ad6318d5b29e65a3ae5cbbecb893aae2e9e3bd3d29c172ad7732969e8ff659ee3e85a45ec8926f5edc8a5acea8407948901d9f41f23cff22730d81831abc7912c1b4277e7df73c1a2aea751c2b31674913de8cbcc5617b7cc0d89cf0b0b9301b87a2122816f901ca3340a1ddb19d4bc8e65b508cebc5ca57ebe3e11c0369dc1b3c32d22ef24b5a7c3cae16bb6fdbc13fa82fe00fcc3c8ae2d0e4131b6c51c6684eab889ec0d423b33324571196bc4c47111be684d397a24b55b2b06b554d6f42d94240c81dcfe4e0705c48cf5b1c7099383c569f3d34d9374154ba1430459dfcb9da4e4ae66ebf9e72e2d89afe3121cb4bc272476a9362000424e234efc4a58b292d1e2cc25a0ebc06ca57d7c59f541689573e107b826e781fd410836e3c55543380b879db93e01e7d40d4be82c664aeb5bbe84045f871e54f3e0846768c3d2b903ab58a762f257b44dbaef5ebcb8280e4d7e01fae24101d2e431cf66bb99212e9f06e0ed8800ff3613782bbf2c61a2022135e3a5eb57c15b28766c09118861de6b42eeed3469ab3035e42d92e4c840707fea2f0b040c05102768de3823536956f9f31cab94170f50171249810f33f99085762f231d9ab0cbe0c9492daff1b86a9094afaf7ba2b53ef181e2071bb13cb0419ce1b20c80fe966343f087f648441aaac3401bde9c88d84d671c2d3b27624b3af42c7e085628c5579197163df928537659e53f58765da48d3ff145e8609c3ee8a610692e3722b2750338524c3aa1465749afd8a7eb2e6f62b8bb5d5c35eedd37f76216fdb92a380a4b8cdcf2c7c5706354ba972c07e4bd56e664e815bcce95099de63ad97831ad79995c597edef0b8e48b2ca56fb1c6a344cbb2ce58916fb3b1efc02a8b2a5676b70e9f014747d417dba3d4ab99d10b6eda2c71baac2ad74078e09a1ebf4a0206cd77c737267594007815503bf9fd0e7f1ebb6ec55b3b41751bc5f64c84525f675a5de035f7b07a62a311e39a80bc23a6e6868853f42877164bf2843bd0802b500f6247a71c56107977436ca344531e3b5ec83dedcc8f124c2c26819bfa322f1031f126a1f91eb5c8c1621eda0129f64686f5856578d7dbd1d6c2629b3ecdd49b1a3d07f6798102968596e9d093b5230db228e37254d7b62ad7d869d73d33a55db78d1052881b8ede7aa7bec47d029c5b08d7ea28ff8acf71b001d3f97ad0aa700bdfd8e6962fdd598902168d65bb8b2105d7be6cddd6f8ab530abcaade30fd63abcfd6ae1a319b51518b643395ce33eff9b63094945c6f07ac6d03a73429f7ad41dfd3790d616530a63e68f47c9d892b866389dc8f5f724c159facb4ae8fd9830afdf7046b7abd7e0ea576002bbd7cfe251e2f4b7eb964dddf2493b25e84dce05766485ab66ef5a54315370bd9460429a1c3a3d7d4de6709d0827630be49f12510d5b39472322639b3c6729e60b855469962957348f3a220a0f4a8d329adb6e12cfe05efaa9983b403b4e42ebd64e73b0222fba254eea7ad7bf8ea4b5fff61fe3a605cb56a449f9b884d3325937420f0a37778dbb9cfa87382a93dc3059d9ec9db61f649429b6c9fccfb7d68a976d8b998ae80cff9e36e5549eab5822207a60845c07aefcadb17fd0f72287b6780085dd0bdf41edc1846155b5f9afda48b1291c24d0c7418350297c3d0cde55dde4fd38f6e35a4ec614ef2b1395693d97d2ead2f00c8294bf474610f98857fbd542e91ecd2e3b9f82ce5833fd10a20f6fec1e87d4f86d204c1dd9c4e6ae41ddcef1573540cca6295e618d8680fcae29456a1c134e4f945e8e9a5ff8d9e625ab564b6ff0562a632988e58c684a9c3572ddb7d1deb9585a21fc1f66110a312666501243794a7d2339d5cd19b612bef63a36abb54d1b963cad808fdb5cd2fd157b02dbcb868f301cb83742cc3bfd1fc96ba724c1827c1f8c7c36f7d17ef4859fc7b7be9a33ca58ec7eeaa9ecdd33497579989d676c4276b75951dcc855411e6f25047293aa1bc1264c4597c4fc5c23f854e96a1cb90b2da6c884f796b106d4cccdde8f4f2797f44f8b144c356320a507a4789137009fed0d7d804456fe873b6f5757370647e705182a38d4cdeaad4e95fd9a4ba9ec15cc52d47bb2b2ad8b36a738d06011eb99531fb4eb998843311e074bc552815dd05ce52993b9e468e4349d340ae2c540b0fad9ea8c367f9c48ee23f8c9b1ea89893d8d01976363deca4e849ccd36507a7fc0ded6e448f09cb8676a44a01d22bbed10317136f7b5b8a777ca0133ea42196b5b8319ea3c0eca8f78579da2542c831dcf4c3583b860131fbef741ba2ede0324e24c7fb5d317d2fcf8f8f83d4ea0f688d4101bd0c9a0b6162de508ec32fc7ab6eed258d59574d2ae5c20b72ad4ff5eb3c4adf9b4e012dccf452473b250e328579fd091e4a2b24d5c58d9c365e240ad8cd1c7251d2c199d9017b1c934985af1802009ebd25a344604c6d53456a1349610d3b29bd0bfabc22a3b3752d83851e0f93a0aa3fa95609710d04df768365094c615e7dc75df9e1f64e9d334255e7ace9c44a3cb9ec7fc99f91c47786720ba272c69298d77665a6d73a1fe331645bce7ba4660f0708cab0f85fb810938fccaf401f430e5abdfec3fd8d8425fcf5375a6d694b5849c79f2f7cd82d45a4ca9be839d2101240ccd540d2631d0bca024618b87c6229606feced9fde560b1e4455e471b890dd81ff035d749e0d9f63d5ef262ecf34cf759280b6cb53226b50756649135c471e931039a53789334eb73b73cff27f5cf773f48ca5dc61da57e9e8225add867e56f6c2af69204b50665747f98efbd2945c887fe500a29551527c83c7f59f20ce14a8a05b796a29dca5fa9db555967762ffa848fe8462c9a8a8035c6ebec05d72c7b1c66169059a30b8fa596f3fe11e0ea80aa4d49d56dff7ff5924753bb93dc9b999c12ee11226f284d47a15535162eb8ba94936f7284c6353bf21187e9759917bed79bb5b681ce46cace540292dfa2575c489180c7b7168bb58b543047d02c48abe30d38e131490e9c7f5c5b310448fb95e91f1e062c86a1fac74de5320b0249a218c6c31cf3e6b880e9db7c26b1926a2bfbe45e1e7dbcb6a29d20d0f49bfdf37b0b3672a918b63e591147e4d00f652a2f105dbec861318fe9d5537105780d2e8077d4349ff98fe1b021de3f8686e12e3436544fdaf4d12dcbd64c072ba95560648a89b8af377742136cf35cd8ff68733ca69b770474aa881a29bce4b79a2aacd982c8292fc3d709da8fce79132f8b265dbc35df327e5196f47b58a3cad4852199f940577dc676022f61f47ce6839407b93eb94349c20dd270c04a8f50478072e0c6b762d0b0c811962dd32011693b1cb4fd5cd11e5ff08d6367a323a3f0c17de0fb73ded32dd09525213f33b79f7557a34b6fea4b93151cd6c42e5edb4bb4207dd8856a3b1fc29e6d07a8feea1c8cb27a8d8d8b0be8adce03ce88b41cc5582183096bc211b9dbb130ad84a5ef07e07c8d7803439135080de9410301e86513edec4e6610eb574d9b9d3ba23f19e9f18eb2fe164b2c7512a8949c21586f2abdd4cdb907db5faffbf6720cf7c3338032794e41e66165fd5831b933ec8c0b716c162ba8545cb1994a44c8dbd4e3f1d6c62ef6d66175b545017b38f69b9cd8f7605842a6e65d975416ce3d69b85f6006dded40510f33892f28203bcc235c7c5b1a7e3f896c48c24866ce85eed6b54699f940b2bd4f6edfb0082587eedae95becee3a675ed6c5871d09f02ab3345f4342a07ad2210aeace2ffd63c9fc99e916d62e970f60ba5ea5bd1f78ce70e7acd10983ddf711a90b391ad6013c91b8578dc4e3fee55568fc1139fb71761eef70f00fe155865a7249dc3cce38e0dc6c167aad170c86e26e0c482a7ff8c0a51a6fdde7124c28a3da0552abf533c5f904d6688e2dd23a3087d2ac172f55ef9951398d3d09a2836baea46eaefa34217819364bbe1c86a590817149e3531c9e75cbbfbe1d5f204fee541b81c0e6c1271c5ec7f9d96fbb1790c12441e345bfab476884c598054663f19ea124c17e9fe0e2a81c51c7e9d74f0434b00f5f322eee065742965caf2ef96f09eb9fc3125a171238ea63a6915be2fa290b9103ffada136f66b77fafd8186811b6641f585075836656ce8b6b101aab6bdb560cf63d5a9539b475f882e02c5bfe25819ed1935910113c10ba1908cc5ed29f13bcb2b6dcd6ffe5387296cf0bdbfbe2e4d77eea744862c7b20418e2e044a2c3b8a63a9b90e84fa0da6630d0889604444719f3c7933f039c72bbf882a6dffd0d9886c17e99005cd5679fd2c39900ce6150295f98376cdf9e36c46a6ef6b42a221acbfbd45df8da9fd8bdd0273bd0dca1bebf4b636d2e8dce941ab8ce89cc6d57df1501f6b8d07869a7b436860a81a9df150a241bff424690f549947d3e34f8ff6bbdfecb1329d73eef4affac1ed2d4e587289063ba4e707359f33ae8cd7de3f0184dba94c1c81d73139c9a2592476c294aaf9fd8565ab5ad834fdee8f73c3e5d8903e46081191bf55499c4a689a53ef95827c420fd52acd191a565ef8c8b28563753393bb0aaf4f72386ab7a3d7a4093bc8e9b538f851182d7d37b1314860082c06277218bab67d16e786613b29200d2c0d28a7f9a298f232bcbede902cf9edc7c8c1d39db75992fa9ddbb4759832c64345a285848d415cfae1259379e0ba39291deffe989007808c9f437f2ca2325c0b07e7657bf04c50687432adaa363d049229ca9c8e56baae4005093ec200ca345200aeedb1e9963efde8aeb85cf047a687bbd8f7ad4771168915969a1471f6b3f34bf580dac566810102ae329259fff2d106a13fec80cd839a6ca3eaec1fe12b740d27b92d36392dcc1f7011dadea59aeef83540019b413aed434d84ff290d54c006c92615bce11855bdd2169f71cb702e419d42a371bf5d27c7ae092ff807785162898357f0540d9305794cf4c752741c7f5e6926b9588c3ff53df82c2bf3b40c3976372b95de83469f80061edb4590dba10f8b4de98066278cc7fd108fee7461ebf9081a98f20bfbde693c21d9f67d4cf199ba52e3db4db65c326b0a035d9295e983bf2df35b17bd2597c7a0d7fb20575f26e6251c35398816dd9d5441f28da218e8ae557520ef11b21bbddd1a1cfda4b33d06c3a0c2577ccd073eb83bbddb3700209920cc7df64f91e4179cad684807ca65b18951f767bb94a2fd82bcd37ea28c9d1e768df19f1e9c55d10c5f3d4b27dc94037e8a4c34a3e0879a8965afd87e0ab899f46c4a5f388a27d8a20521c1e2b4f640ea36b691e7c9018097430e375d1e5293ed1079a9a4cd0386aff503d17979f52bbe6e5e20aa638a6904f5c003945a89ad7e81c038fd783b1a753cddc7c655402765aa99bbec3ac515121b1525b19971d9a8fdb3b000d7e42082fafaed3a5bb6658fcf14f1af26cf86cab4853b0614d886c8401d691fc9d7d4d4c5fd2ef1258d295ab1afd44cd4b8ca544fa9ae7e1d54e296cad12ee294d7ad5364a3fbd5661294c1c28621dc2f1c923f5e8961f14305e40d2e3eafea90f7486cf6141f97041e458003f102b1f5a3fee77f44c6ab6d3c6c9d80ca80f0ef9b81f2f9905efa717e2db732b0b71df55a2cac845307665263753a7740c591b34e8490f6c36897a340b5227d9f9c35307778363c705cd9e0646f286cb0bbadb7f8000f557a84ae3a1c37154dce685016506cc3ea8d85aa1438d6521a5139faaaabe2e505a1600dc962d3346e990e947bda43cdaddfe2e0723944e88fae3597f1ccc99a57bee3c7a043cae1f5b4b1f9f2e48216c9b2da99fdd89ce80a6f76bdc4e3d72a1432ef52c0d95b898b06e0d8f2a6f1459de9d84051fd00f0fea7c85794ee026a23f4fc69b86446d9a095976cdfb56a0a4e54073a889558664e9dd3af43ddb52e48043c1687c3e0801aefead4d3c8260f7b3043b8630c0f0222cd9b291d11ae1f91b82c79dacb1bf4b880a416e5c8f5d2c9028879b1c68645d1f2acf61d410bf9faa23cdde092a85aea68e2fdb1f5f9d1487a1df28ca21eedf91c191e2a3c2b856ca0e92923983d8ccb8449d2d1c8b2145e68e7844aad8910d388ec098af27585d9b34a41319ab1660975e19cc3f2cce50c0becbd5a2f9b2132bd509f100d8e1c943ddbca33534ee2ebbe6df1049f1f2c46e422e0489ad2f49661a2b23ad0ac98c6b04cb4b50b8e306c3b0b6454b85709c0a13d455ade3b84e4999dcbe65e43415c0c53c0be20a10dcf1d947972f46b4a2f2c5f3384e2c31ed194d8300e915712a73d959b9953b82ceabd91bbc2f4b046d4b51fc7420631cbe7e89eb098fca634eba20c1c3c868ef97fc2195ad5cbbd5257ce00e0ecd296a6104238ea1c1e662a64d425b850c629acf10508f7b18742763aeb82e79713225639a2722297c9602f9e9565449a91a9d85bbec83f59cff1aa6532dd99b1c5ad1fa15277d12d22bb7c8d1a5ee2d1aecfdf1f3bc569e73db45ef9ca4f7f55393827dae0b0438684d64f4487140038ca83a5752a22b22fd0e750801ac5d8190a0f6b280822e24f874339018d32ef2647d33c3950be84fed11ddc1bd1c4546bd9e3b3d0bf4de81d0bd4bda0ea93730b6a59f0c1ff5416acc02f06550507a60bd5fade9b40c91a5520345487b91dc44ceec754677797e7e742d5414fb642a35e494531142d5a05d724f70abb5f7c06dab00f3e5c5f1415195e1b489479285e579c9ea25635b2cfe3b994f539430cd7e7f94270359a6135c339967177f8da79e3b2d222825ea51eb4ad3d6e6f5a6e8333153386f250f7748256f1f3331fe7743d92ed80a7dd2ccba514a50663a181d4adaa1b9d63ea4bc4f98e52814b002751179e65ff6c3c332649653fe68c9e034de4b32d1c95e3eece88bfce74895c4994d325019f634b453dd714bd4328958267f8665074f65076b385198920c3a1dd3ba9156e6d96f597eeed2e3e0af683fde1a417ef298d3fa3ec71238616a3e4ab49718ad46fcf930ab00b8c243bcd7393b6c67a3259250f6112249fcafe804b25d25ba7a242db918d025bb70c8604c5d4cd996b20d36255a562247fdc98b33b8c74561d49b387c77dea1839780d5bfcc24c1a1e2a518c0392fceaff1587d37a2e3936907476072f52dc94e90f72c2d65d6100f362e12341cfeedf824b38abf8b447422b4d9a4afc4551f6e42d983187a65979abd4dbfb64cb8b0eebd81f93d6b420151b814edab79b63fc951267206a2c7f8b2aa4a6921bb65fa325579e76926c961afe95ceec373363f579d4f44fe923f50f83142f5736c6b42b5db1e87beb6450e69a07e3ab5d5f2e4a80dd3330e0fa88ac33d8aac4e7b833941d1d210fc5d63c39e1168fd280ee74d5bb33370c7e07f419ef0a60b78a884c9f0ca9c2ca4ea8a66e579e4c422f0cc4da835674abfe7c867c8f77d485b7b5b63b34971ee7f0c56ecc417a223905bb725d790123e0e350c6ab2adb1eb86f2d6f9cce0eb3b18b968653af60c20c17529f7c72430e5d137157b850c4eac2ac42a7a54acb7973da062b23687c826eb71acb06813f91babf935a7997031b89d2e490db61720dc82b0da031d0ed2a7a5e9250f41ef2bbc3f6b26f0ff2adbb6db5876ef32f48363bdab963748da959c6bc570b5ebb90a60b7c0d023f9e3891f0043b7355bdfa47a8bcb7058835181f41eb5fa499332aa8e40de9c587ccdd3eecf46fe6a99f90cbeca759d0290cadb4c813868007c746c8c8cd40cfab5a522632e283789a8ec04311d014332a237f067bd3781f37be5c0cb4e6dbc188189bd2aa8b594741742d4716b89950ee2a0d18ede2be839797483a3c1c71541f3964a59e9f8c1c9ca09466c60d4e897ee6e446853d75daef527958122054d74d25ff28d46f7d88179d0ab50eb456abb558596d6728e93fa7ffc8749310575ff182c8fee320241a92fe6d862bee474331c2d701df10fce913e1378f0b432bfd4740c92ffca97d628cbf4cf69d26eb1c73ccfe7e76eeddaee6b306cb0f55f38bbc9bc87eb4ad3fe6a82e61c26e07d74f4217f62c6e9831a97d489d75e3fb39421ad566780966d88785b1c153ae8bb0cbd2c550b634584a01a5ae5168b64a3dca0ebd31404b24d7c03b2f4775cae27f3703299ebfaca0bad877307030b3a040d440161c1044aa93fb8b5a1298338690f78fcbceda0a64c008ea971f2841923fc79a37f13752bb5a917ea4f02f1523682cec526556f67c6cadc1871c4575ff3152f36f940b7c8e5ee0ea79cebb60ac7a7b4bfcb7413820e3c1cf47ccffaec4ac1ec55a184b5b6bf837c995cc645345a443c8e9aae0ed028f24101e5cc90a62e800450e899c9303859d33eb2d223e6c90cc8cbb5059f0c70cbe519d01bf2f62e1dbda83d280093a514186a7494b5fd2ffd46827ecd80560eddaaaa8af5e34ad4773095424838e33f2586c6e46d4f979a2ff1b46e3fa2b30590c635256d8b911bc20880cc8cba4531d9444cb66a7297d02490d6c301718ac8262ed062546cc202419489b739268336d4b6cd63f52b2526b1e851f9e8a028622df9a5f75f6d5525e2b6028992fe8bcf89186bd6700d2b61ffb000137e2a3d2f96157117256cc8683819f1e16ab5f0ff9c541f5cf015d9ad5b99b4b713c75d2685800654cae41bb9b19492c162cb689f472f34ee873521a3b852b31b745f81b00bd5c9cb851254d51745d39778814c3a2b2ccac7eec63b57202a35bb71b98311572834a842b7fd2baed7d727dba21b822ddc544c6e79238483c4e6e4e42fa56013d955ec076aa1c77ea8743a2521f74d42931a3e57aa16bc98c26714e0670b11052e4e93fae4524ba8feb4206d98262b45e0b844771a19aebd98cd1c25c53c0a1b5ed3fe144d26ffbe405806d253927d44839dc34841727a0cb3202325d7a5507be2afb5edd6b5ec924a501471164a30e0088d00d73c2d171712de681517163e4cc13f72277d9d0bed254463ecbffff59da3209a908298c4fae875e6e216424a3cd6f58064b6fe7d15480ebeedde88195556404e8202c791bd69ccb50eb044630afcd66ed739ffdc341e3e344f675ede1305af10b46311f127d9bb4cbdd815d69060fd07cbea4795e222957cd30c2071208c7f71a25d905c8c378e87828417c7143b16a6bbf4845372ef8a2798361168f78e98530ef8a50a2f488683b45d8d3adc92e3cedbfae880d2bbc8a1ab1a95d3694b35f39ca773b23f8558494f3320ad4cc2bb221effa6cf0d88ae067154b7de3c5f673c02d35f60979aac47b3ae5c3c14e9069b1e4e7ad7c1bacec2bb33a6ffec189171af49965aac559f9dc843305f1f8ec218854e1ec21c586e06cd1534b8769eea21409a87156e9541355155722e5d480143bb8bd60734150a089d5456e646effe6f1f046538fba818ae7336593d946369b50fb5e53bc673d0161abca6a4b4882da81ff5a6b163b89c17c9090102ca1cb27ea09316e9b9c2227d4700e4baa63e2b27fea086dbe846b87b777deacdfe3f2cefa62a347eeb5718336662719e46ac7e900d4685b06d9a5039230b795640a736b7fe4e914a1c98fb60918ed202e37a0455801fe50f09d8b52ec1b176cd5459c8550204838a146acbb178be33fa639f6a890ddb2d12ecf132b493168d8980ccead616d5e2834a82ba752259e1a5f298b50ceaa4a96d0e178366dc99cd3e28203ae280348cb2a08caf94df9acf76b6adbdfe4f82e7ea523159c10c332cc751f66b195da1e2040d9ac450db4b12fec91cad860ec03be91523d7897fd7007b45f4c0c6d5f748283b60c9d8f02e654dc93e85e9dbaf3cf357e1180905c68719d2d795dbefd7a8e57bc9beaab09da6e79b9898f063cc4563f63ba716cc506041f57cd73e8980f08d930b5dc6bfb957415cf60ea04ca1f517a42104f371a61079ea25866b62d58f7639fc8daffab61ed17ebe633dab81af38947126f242aa7fc7e2d53a5f4d88fc855aa2f040060545b09acfe6a5a32c1b0a09f9f4f5f52278dce6949cd8db862fd07013564e388a3acb75653bf52bfda3d2380fcbb86c662cc9a501e8e526df26438284481702b510a236b4da7b2e27f7ce3a5efbe74230b04832ac71c38947626398167e8946e4fd98dd228d0584d18936eecb4a0e36807a98f0521d0a6a566718c34e6953468adad86750f66f809112500d226f4eb034e8e03641e52d67403f89f859aac60b79a6bf3d5907910bea0b96de0898edff94b92d62bd574c8ba4f8086435998a80fa03e1ce24886d80f535eb3524e5ad052691f661aa144b57872113f693bf1e97b1b8967ddd94bfcc4e12dfb7a6eaf863f37a37fc3e5246c41e515847e25c2d32c52d213c171ccd8aa36902917b31da78ee5e194cfb5a4f947aa1da201ae2adb380f2577d93628e0f16c64b133bb6c9ac238e2a3dd30b7b8c652d1a3b2f77d75d6938ea5a038024a7bbf78beb7a6946e04d3e2705db56407215965106bf77e3efc2562f13a3df9f791090f2e0aeaf4002bf0652dea0c026e66082c28d55f09f28a14587400cc016d22f68a250bbe25419ac625c84c5e3c4753b1b12c80925d218ef254b6c26b70bc2fc1a56d78eccd549aa33df3553ec0e7f298cb5e66b0c696f48b64ddfaf2a245b2c8514db9430a7a2913d633cc91ff5be36886e76c0d07f291ce0ebd172d62ef94f4cf5e69641e8ba09a7f93cd04f52a5bbc3d7624b4f3050532bad5ddd4b7a569357f50aaf296e6abb7e64d311662ac8e676012ffe9c35aea14774d25c6b7b64df50dbb141840e278231cf39bce3381091df1df5347e5ea7b9863f518fefc32278272c9f91e2b9d0fe1617ffd057cf785cbf3dff4df0cf9bd75d79ce18e248eef88f2f07654866f69ce4a30d7ce7037d7eda1c0bd09f17817ce7d8ddaa23f902c87e04f35eafc9dd7237d08456cd2f8ce07afe8a836f0e9bba62d2e998e8a329b7b1c5622484e4d76310e226a7d7bd1f72ed99755bf78a7e2aaf97b824362fcc8c26bedf20275cac9352935d68e6484ca10217774a00e4c779d6a860896a1eea9d9fad70c26ca52589462a171a710ae8ef901a952909432f8880f40eadb368a776261d22511dff07551822fe2bff98a084f0e297a5c6c6e4327b88404c959f6fcc84c3941a753cfdb15763cd1ab0f699687e74cac09d755e413ad251636765e799c8f94386a65f3f59790cc331b5ef70db1bd6e3d627000262536f8595d6332652c63f76cb54040cb755ca733fd4c8bac8ae5d2b39b55354c8ff8de4526072f28d95d0096e199a2ac1a7c08073e53d5cf39e0c2a69c9fc98c99ddd9a88dadcf97210478f5bff6e0ff18f02f20857d051dc5afc7ab098590bc82f0fb0b9eb39405a5652647e098a654a129b3757ac65c3c3d1da8c548f9c1bd8dbe540788e613ee84b7ac0e0aa5509e698251362f8357d64fa7666edcb9e59ce6bd7995994936bde15f4e5054b1abeb06cf6eb06660a28334e5dc0769f82f7cfcd3cd5a9201e2b6b9f86e8f3ca4828ec3fd34f74b3cbdafb4984058b12260e139512df55295458a2197fbc84f694d687a63ba2aeb160dfb1ec080dd85e650d37764900bdfbd3ea1576b57ff914e0639797413c83c6dcc4263efb9e45722d0281cda6535db61d6d3beca02e775df3fb01f0f17e716afe1827c63a1676715e9c521635c698cd793f68787c37087d0acd06f04c9abfacfd622c1363b141317e1e6674448522892fe1b3577b9dfa162e3059bcce0a27aeaa396d35c8648dbd3aa1b42dfbfbfe840bbafc8e0d9ef63b5e9266dc870f4325dc8e9541833f66d4bc546f2c76c2622e361ea164340af6f58c68cfbbc59a31da2d8adad08eb59a67caa91f7e7920274c5a863be2e6c558c268b83b2a4b7fa52b0f8d6e80f360231fb98cd5d5b005fd731b36d65a861faf11f7ff7add18dcfe8a213a9372040c8dd4301c460880990191dcca97dd62f176c7fe854eecc508ddfde699a8caab163e17be85e09163c4d965d66cdfc34fbff4bc425d54546884039dc0b6a133c788e1a934f2290de15404027e9c24274842863f8ca448740da959173d4a385894637a02e2ab24c007a2a4503bd6b3692314488e85cd3990c225432eb755126c2d04a2cb8fe8210f81cda18b6f868eaa596dac5f64f45b522d818d3644c0cda315a93c6456e12003310799c2cb074a53d826ad5a6492de44b426b59bf2538fb7d56c7f5f3f22c9cd6674cb59f7a5c68ee671979d1115875637c0525858b44364a8477b03b83b213c9d9ce28886defccb19f80b376324da5e58de178071283aeb36ea80cad33f5e48cb7d20d9405aec3d5a55b2ada5a14c935331e0b9ce512293658399e35eb58b8b44aa52aeb758ed5bf71d4b7735a94c1268d402bc132bbf2330c300b0c0ea56c32912aab82c88425fcce23f840921f25ad06d3dd7c5e7d26a96ac0449aed2fb52695a6b81c883ceca74e58cb20d9ecdcf4a25496b6a8fe0b89808f0f8acd42cbe4fe345e420723dde906ee4574daa9b3a32b3676df56d6162448cacbb643bd231a8e0018f0f7ec8231af837bbedb59947260afde987b3f541d0039ac6c22aa9f96c252088d823f6e2c79d679bf83cd905445d987b7edde833c914b0feeb471d090885f8a5a08c5fad8385b4a8f6eb346aee84a5d4cfc21b994e69607eff7c337723ecdd12347290d5ed31b7065acd7acd26045e3bbb5d07d85e56d716a982fffc0993d1cf1c458cf2f1f006cdb8c9f56a75307709c7ac14d8334f29c78319e97797eb5830098f60606bd8738cd704c0e2613e792c0f45f788afb7b3484c1df96ab92c1c5b82cb71bcd902b1c183e12eb87b34a1a5e36f1158d8e77784e3db817b7f9d0dcdf230dd6a25fe90623eb638d5f206ae0ab7ed29bd65727f1a215ab9f5bb01fcd6fc235f12749e8257b67ceb04c05dff045db8e4b05c0069dc7570474534ca9c18214fab1f0da7d0fd1206eb775dc7fad2985e812fbc5315505ee95c7d61ea4c0cb598083f4efb42a40e7e74400f5ac2c5fbd25abb39430c32a50ba4d4c075017c297150e6af492412e14694d9bb05e6c213c885d90dc199f0753a3e23b466230aa13326cad9625bfff977129d5418dfc3e9f3b391d03ed32d3f950d69f2305ca8d6925868c7ae3b978b89194cceb6d356d0d433f26500ae3e65c1bc498801ab1e544ce47efc71ecfbe4f6c18ba94c561c82d17d8cfa2f0fb0c447528768ce7488f89bfc8fc9d4cac09ce17c610b34934b90ce40f40fc546c00430a08f8c97a3d5ce29d362a0def66e8bffcebc6518a52d219349439990b6e1b9c38beea47b5349346c968378d74f02965deceaafd5969ffe96f19827007f3a58a3fcd65982fefb4eb842c143c1806c48c18c202fd6ef93f413fb91266aeb25f6963d9f1b3e9258d47a6fae72db611240b3bff7ce30868e7f74e1d628f5ffb2dec4bc4083a75c9e1f5337238962e04b667c9ee9090ab82acb79ae8f446cfb21f43764da42d44762980ab7b9c2fdd1e5fa9f79d861f91b9500b355e87f92d76ce2df362ea66b6e0b69a26450c78c95a06e9c868868752e11e51f71944dc7d2bb21757921a3faac5485f1ac8c6f4727b10dfd212058888072c818fb47190ed6edc8ea713f7a8976ce008ddb5399615a407a0671ae3b4f72a3c3d54a3be4ca1a163058b336e714dd5bb5f44d500ca53eeaf6878da0a7059221472f2aacf1c5cbfb6284ff56e1cc70b4393e58736eb3543f819b6d4b02a04e7ef971545c83487d98637d0218ec3a53e527b80e6f48e21745bc5e68675c36cbe0e55f0f10a664409a3ce58f94f7b19dccb33f5d3b1ae390f3aaee8f90d9c1467ffab8d8100ebac5e6e3de9409d1a9049d914272927fa918b73a3018c7a8eeb92ad7e453ab034a7c10edc4a45923e873602ca7887364412ff19d2fa9f08c0403c3eb97bcb15f2cd9e50b14e28a079939722c1589a149874e767620cb52f52736bee68d24f79737fde16633084625b938004e58d02399f4ec0dd048911aa6756ea673b3abd7dbedbdb9b904865b6373858f87d7a5c50af278f5ea6048d8f0baca994959b3ad4041afd34766ec3d2854c077805a92961862f15dd63134ff7ccc16c7894ac65bfe002cc99e106f7f2a747f635797d4698355e4ebda7c5769a0bd00f66de090c5bb0183ea287ad95ed1fc16d2b842a654e71b0936b575d8d2477a9f01476dcd56eb525fb98faa243625a81c99459ce13360225f4ca059d3586f857e54cb987a7a37133a6cee27ce0a501e145f49b1dc263e52b72d30ed53022bde5872b5870a22ffb5246ed4672b00ae52cc20c1cffc0ecae1d14dfceabd353f4d2b70b2e87a43e2cb82dd176e38e36d4218abb1e399141ac9c6161aad2340499d4c77a0406f575ea05a0d7883cba0c1b6b724ceb84623f64c4364679be9d2777fc8451d1078da7a3ebc03102eabc99eec76826e5a7869cc514307a5289c7ed31e50ac64acaace85ae5efa98d5be150f44c612d60bd4dab568514461680d3e17a4b1127fe58e38e07efbe27cbd75de10594df2c99220ad8ac80455b287a6ed182ceef0bfd330a0dae920dcb83e8ba10728479777cef4dd06a568e4c0b258ccc1f2b3549466d695a12a2bbf8f6b8281bc1fc748abd4c2a9fe9534942231c0fe96b4385ea18e71273ad3d5960c878ec5ee4261a0560fcc14a300427804c3db0bd2882ec6321d696b8e355e2055fa205674bb11106714e065d6b4769a2589316109b6d355f9b2bbfb8931804fccb10042ea80aa5aec3185a890307176a1015ace6843ec671958d17346faaec9040ca23cf5f47f178fe84e2c543b9f7c8ae3b0077a48ca70899789f547a4cb6a83c471191297873257ceb304b2cb0b9154e35a257d3d6873c03735a6c98e43c05184e854f6319e6bc293a986de681d8e0faae62351cefe8cb4ea332f1afaf08e6002888b802435d62a25abce557ab2c071898e61ecf16d68298fdf3c085d5049badd55ff38a838597d22923c90378566b2b68724654847c84edd47005f4b9d9e859b031862379b314027daf2c62985373416db138a014602af9802b072ff31ead772b6df9874946de99c7957c871e0d9ffe1fabc0ace86806da1fd03bdd814c057d04c8305364c7285117996dc43cb6b0eb5a70d309de03ed57ed1b98961f767afbb12d51b965c75ad4cd720ba4bb0fc63c5bedb24295550373d8c11b3ad0a5acf8811cbeb2b5004ce9c15268aea5811fa563a5ece93ae5a19b94d506e24f5c6007f8a0002cd037ebd16fd1ffd80c8237ab104b334960516b4b157412807e60fc85fb732d87a9d96a2c1ca486f37fa1fc8223d597b041ad2c13c65b071473b4b97f79ec3d55d9cd42ae9f51f1df66ce45cd835b469a81def9c7536eefb7d6ec55022a739e0ef5f14111031e8677f6dc87099c08e83b4cf63ae813e50a514067c99ed90bf7bb86604f43c1b282ade5a14f6ab5791b1518d382c444bb095f517a1fbc2b6a27b3c6faa7c9b542c1c9ab583636e4fce79094a0b285bcfea6a51831dd9c3b7d4420398ddd4ab4e834864a6c74e708439c80e398ded3f3060754e67082ec1366b94d395c76d7a3d80902dcd04d713e92a47a74e06b1a41b7704b384332379f623f4891969169a04b940d99553df01eddd4737a7cd8d697018c3dc289f700468d8962a891762dad78bb5fd034119fbf7f33ab24fd1d4c2b8302497f804909db30ee31042f85ef48c930f65e34ddfcf18efb871e113ab6a8c30dfa2714bbf2b5f69815eb4879ca74836f83f8f6ddf8898ba1ab5e129f8f7728d7c004214d33bf935fd0bca158201471a763c0e89950a5920a24bdbbda4b40741f24fa431d9509adff43c3644f5c8fbabd1f215ff95bdc551322bb70c298d314850d7c8298bb6a179dab97b8d5048ad97895aa41ea805a46198f5ee686bf33a247d02f3b6903fce3a44b1b3bba9eff852573942abb09140c763aed2b7eece765a026e5b479299b6fccc22606e6889669343bead5f6cce4de24e2341f150d4e8f3e8ce167f1b21b0bd8495df9a2cfb4bd5cabaa066fa05476f37c9e0a519de18fca5493ab44d5f661ef1fb690505cdc8d7112ca2e136f65214a70f1d75d820d206170a3671629bc0e79de7d8ccf5f08d1c2a065765e5e76fd9eb6cea95935410a68e2ee7f4fd2936813d6edfdece847b6c6673927aab902aaac0a49950862dc6f6f05732b151645d7a5962c07f5288db51bff9791edb4940d6850bd1832fbe7913e07010cd0e71540593c103c7abc1259b47386e3f0d66549309c81820b09cec9df87dd7a328499e77737a2621354ac6ddb02e0d448caf4f77e05545ad79e5263a1e89314367a231cbccebc1cc8e7d55eddf408f858e5918004eca71c24c754512d8f9a3eec9a9c21faabf325d05450d689168f4ce40ee0f0ebd9d298f87f45c54bdecc19bb9b7c335d003593b48f90c2b0e47f3e1a0032c64c8fbd753c48d9cb0f15b24750b6834f3cda1a52270542adbef0860f027c18d2ad3db90e6c7699cdcb12a0b5bd3bf19e39c984ba1552ea35ff54dcd274580336e3164ce30c04a6d10f0651a5f064b65b4d199159c37fd0060e7867d20a811bf9ee059cbafd2e08f89004cff48ed5b24b75cec12cab154e4d08c7b576c5b71520fd09eb9f6fab1730956ede81067d60b62dab6083803dd3b60afea7411aff3337ab900322839af7e554e78a866fb30d8d1731357c4a47c9f0830760e07f334427989dae08110d1e7b60e82fd2cbd9584404f8fcba32fae25832b4dfcba01563f0f584aa1cd5555e07970de0afafc4c0f9290f7acdb933c0ed02e46bf8b9a4fa21df1fdeeef4d78a06ffdd83099cbdb5ccde99526c99edf0ab27b5b0a4f8c66eceeecd7d45c1cc3ed6efce0918a4c80ce9cbb3e1b9dd172c3315dbb10ceaf0a78ac58ef449d81499acd8dfa567dd8f54bccc5d252da87c070178cde7045b2aa55e8eeab14d1e9704decd78661daefaad3cf6716e7d76d1b0e74a35671e5af461216e000ae28cb1aa0aa4335783bfdd21f3c7100cf404740af1ba54668529ecb320e2b08e569544c37edc82f25f0e7fd914c82e26995053afd238eb792248781c68d8580476d6bad111e4bd46b79761f625ffc0cf6a92e42ba66fb3a55699216b2b2d4efa9a1fb78adaa058d34108130017582d0f02493d77105de8ddb21e1103c81356cac8894b80582089acd1df4d3bab609ff7702558527e23f2d51c137b1f263954d6f3758e5a69cc4dd27bfa2a9e4eb794ee7123e14ec24180f79b178903aa4da49b6d83948446fa8fe864ae9385502de3e16786620beb72ff13eceee81b4f49cbd46278cb3487bcc6f34c31f9d6f8d2466cd2c2b4d00c915f0f8e8678430e76d2364f8df6fd6bfaf326566dc5dcc437043447974911c4e245874451fcc1275b1fbebaf32768b410464ea21061d6b7ef8fbba7e4c56a17d94e2941c782fe77a06a7b8c66c51288a8be57416b70464bc79a38db0c5614252a3d0411b88805e373ff5a04b3041e92703b72c1def1e431f36f2705631c8ac0ac69698e2719d18cfe96aa05ff777fa2921d01c3f160193ed858ae20ca65d0aa9ee09e1868f416dcb687f72b8828ef1a6a08d7c3c4f759f10f82f3941d6616677e0408b0f6de1dc979b55311f98869f365e0330069a0b249602922bb93660e27e949b93fa921bf20217b156f310f7df7684c5f044c6bc6d32438c160b757ecf0eaea205b7208823c2ed29d4a5383b4388c8fa70d0350972b94ffec5233eb34d3affb0fa2c37f1b4ee08e1d53a7bbf9291b6c972396f3d81a7169d05c2549f07591d995d30333eae82103729cc63c5373a0e733e4280c68498cf5fc9f9f702ff8505b9f011b89bbddee3472f09eb387e302fab196130c02dcf7b6a4fb29909231fd12d900f8aaa4147a22cb9b2157186a595046341032713b2f6973727e5e596497a196ede38bfc76543462a1ee3f579cc667dbc400b58824b96052f691578246ab02c13289a7c01c4bf12c3b48ba540600d8240f28bc8afc95b4278da9bf853aebce6410914539453c94e05740fd3841ee6f6149c6c1f09fdb3034bb316e10684763d7791b7ae2ce71366b86f14384e46fc1ad0ba7a1aa5dec781c07f978d411e489fa7462bdeedb92d74334a15d4dc1ed6550b797ce930055dddc39e395004f44281039f65fcaee4e75738c0df12b66f5142303d13e94531463148c308f1b14144eb028a376774e84e9bd91d63d407069088041d6ee7c5c56331d87737d4868529b4b3e6a68c3c2a33329bc3ce2f9e34f458b962cc5cb74534796d93a540110115604a0a1919867141513ca9000caa4f2d9a4b0cd0411eddf4eb5fcab680703ec2d2413d4dd0ec6babdf5ed743e77f2f541cd24da06d79da51c8271d79d75d86ea47ea3b279bd92660458feb5e6847b11763ef0bdca5df2ea7519f641b84a769b94324b649948997d4970597f2924d38f9d8fc625cca32f0d0306bccb34dd33a516d28d3801d9f165c67d72028b94c27997dad20c7c682da8bee3254565113905f85a9a9fc4707e010af37e1af8486681361d648f13385c965295d4f7b0c95c6c1ea51c65b193d944ca9d0c60fb1fde86b7ec39011d3f9413e6915e5b5dd777a395f9aa98577dbb7b08a39d1415176180bc7ffe2c24cefe756b27b91ba75651131fe3b4955c5fd30bf650899a2ba246e4a71bfded6dd1e05f43900a4b5f2db3290970b8c137a26cc02b906c62f6f1ce210dc2b57f8db00098dde17c1f19fb647a0e0e0d1c13d42bbc7699d9616a1a1717f99a8d21d3ccf068d45a85fce9367ff002d48673454e511642da35c9229799ead72c90acc846631a3c0c44a06a6a1cfaca12113fd60104610a356fb1a0d34ec7576196e28d6d865a35c97234678e76c0d14fd8e25cea0b74fa0736fe3e63c65526503a1dbf191a0f6bb9bdb128b91522007f605ba5f1022e9710144a8d51e16490c24fac36c1e849b9ea33c00996240ab780f9723be4e2e6f13ae1dcec31690e8600f02787403d7b639776037b2aeba807093db52014fe1589f482fd0248169547019f898d29703b4c045374dd26e86d483c657ba865a28aa7933c3fe811fb961730450f5177a96f5c1840669ea572fa0be530a199c59522cf774b78d70829ec3998d2f7b1913c315394fe3ba99318517a531e314c90995368363fef2ca1db8475eb2f1fa288fe0b678cf3a420e361b2d3f6547a5c188880686c81b9547aead227630a4b9b3dbe6e34dc14be4c739c82660f48f4d4bb2a7a88dbbaac9c6a0a64cad328ad33082f400ffa3a9d237b727429c8c87279f8ed3707b65d823f21cd0ed41559b6e89accc4b08c6bc41769f17699ee0f1bd1276cf02b851e612072eddda902c00bd643a55ecb7ee406f88fe3bf6cf8100b7119ec4eaaff1a9d0e6458021254199cf019217950b0cc4f8f0167a898408dd4eb27abec51a7d0da0c5fff5a47c04783889c2c2b371f52c82849580ec1bb126a26ebf2cface678d5b139976ca139a647d00a1a731500630acbce33c07cc306ac8ccd06400243cbd537710c7358a70575a49c43dc4720ddb5a036c60e40469aebeff271c3b25c7c17df93bab95f28e01d4d6a79ecdc2d00c4cb0d8e4c5a0cceb21cb80f25f172ad3f1b2706c809f2a421a02c807cdea2ef8fdb2f3844952be8db933a9e66f1293c0b99f875760ff91b43a293e5b5fc7baa6e522d23d9d02ecf6d1c671db3fb2146bef6b243d7059b91ea3013ea1cfc78671f52f64d4c311aff966828c19911f53492b5624f4c77dbe0274c8d88237a0b88a732d574fe9aac55f1ea81fceb9f382e4428104d478ba8810a33a96cc2fef677420b17479c79e4d6512057188ddb88459574fe03bbaa742b1ed7ec6f110b93c86ad004f621a76c53c6c7855bcb508bed933a06109269dcb7d9b6beb88c3da3c6d834718dd24aefc88cec2ff43ea8baf2bfc0c9e2505e266c510d23acb20d639a7d84ef701455148e28fe860d8f95b2d292b7b65f6abeade0a31ba0618e3995a0818b209a9985d0556c5b08b9bb2898d3ee1a0f7eae6340b8391b7cb7126274f3997c988f4b1ab6ee51c0b74913aca16ef82546ff27695279c7bc2c0fb7836d6349dc533c55b4710048866f221a88c774fa7c173049e08b471bf3e07837b3e5fcab8b336446e6cae1cb6422a982afa138956dde898bb57a457561a05f4117ebd1d6768435bb3994a085f8652a6c2a2875998b3692cf9257f54d52d06e223ec12260a877639db6b0d9a5d6465df8ad8cd93526850c00636aca2af48fd02ed2e54302f22f0d3803240169ad96c3c90fb219b7705f15be7fa9930499320afddfc085b25aebc5e3e712db4c40df8973a38cfec84707584cdc59221d93028670b89361ae43fc8d6d1beb322e020c532457ad59251217ac90723124a1c4b294c31ddb3b541521b7b51b492019c2fd23147967faf2c74243cfd372bb8d7f162a4404382c8798b8d4f70defd637f98d71bccebc4f94bb1ecf0393419282b78d55a812026c2033d7099d2e2cd54e3cba45dfc01973a8a23bf808b27638eb339287a42e46667b9976f64724bbc4ebd30f8c7d5e009cf75d868892dcf148f7df134b81aec4e4f4dce0e0114aa72c239e8310cf4289c2aafe37d2c062c6e06c80c8beab87fbe6411a0b081ca05da96267ab047e92bc251973f088df2f3138296a3608a444667680d06133b8cc403a22db4bd7126873d5c4ea5575623303bc71301b2354ed78f6d65fc814cd7823932df45b1ec7303b9fa01f63b34899a8249c4e5c32e5049915b10a2ca12668b3d878ce355fbf9ba96ed8b0fcd59518c2cb488edd7dbbedf9a6dde2825b0f3e08956f2f9ac47d9c7dc896026a4f9718f346670c3a547a93aeab4cf4fe18e100c6847b33ce45c53fdb239cdfe13cd46e54bf35b0d179fe9a95093ba619ed6061f1077a299af29836df2fa869f7e933d9420a16f39d7b5e585904142f23cf8cea199f6dd5a4184a5bddddf8857608b92ce72e955978380dfafd74a1dd3852614586d4ab981c9a4f18a378b423109fc1cc464fc5167ab9ad59b5e0eacfbb6d9481313eb77a4bca5016292ba162d47ad2b31213c22c95ac1f385fd41df5cc44acb02abc5d7d82107cb0ae4b829dd746c713c6dbeb2b49e5693b55b696edb1ffa19341eb96b75ce2f272b1ce87f3c798b0176facf9f664be1cbef36635eea482b1835161bc6b3c5e5eb81bc3e6cdb465d5c09566c88ea518b937b23dfd77f3964620a1835737de9d5933c37c54ebb51be8b7422c830ad1ca26f590fdf4d5e03f0b2ebb2c3c3edc80e7729261ba37344894f56e1ca7440be18b590c53cf4eb956056788f766752a08693c843f05e7af61f5a25f38c0abb380559b4a8218612b205b0555071d7b48d93e57c6d8ba0a946e69ce29add145ec7215101de8e5ce18677ce69a1cf903694735060dc45ad5c06c8a418c4c0856adf4b84b82cd6d4eb4e101024871b1fca47c5167c300b40be92b006ba01eb505090044b96e721079e8b72d785fbd6f612e20ee367e0e027221311dcb0bc496ea106f47f8950ebcc0129fd4fdd2af41f76103660911d593684945e4f31d179ac723864200c098317aee95942642e5fb0a5020862ae431f7e8663933821ea4c53142dc37cbf4b8d96daf7f3f834f773163120b59d1b7870e18817abc926c24a964ce522f92dde81aed15d773447388033e45252f229349ff0b3ba274b30122ed77da4b75dd4e329bf3a755b3067824c46ff0255419c139018115c8de8865d66b8623e5eb7d4fd27baf61155b758718ea591b91cd7d7663d210a22e78cbefb94ff491813c8f46c6d09894adf4798bd744a81dc666389b633fce9a440cf14b90f48fcbf7907ca3dc2c54645ba486c421e2b091fd781c09c15e338f22bef10266385b555563335e1443dc65e674d388c2065b81079d2c31518c60d1b3ce17637cc55dc8915708ff5e1c94853b06a444f04383cac36a21fb1860aaf988c6bdf27bf24619a42f92a6fdcf718d21d9b6a3bc6cf7ee65f23b1d93b991c24395287a4621def8e126209c14ffc160780335cfd56dfe4052836b0c12b3d5dd6e393272f0fed58eed865e920a37bed336a6771e2190bb4f829c1f95dda51a98831b6e846d555eb4a91480e8419a0a867b3dd34806923ecf8de991c42e2c1cc744a22c35af7908f4e59c7627c4480a9c0f6541df5102f1d8b28fdea1c71555a075d91debf6b81e762f498d9af8dd52f6a125827d4d145044dcb97920bc8508aae1989c2e65bb6cdac467e2d3eae02f4b3aa024191e03af917ee1e7df7bd62de3135e869d2a83de3d5dbe2620b376a8b37a6d5b950641777b29e787bb93ae3e4c7e9828b646246150a600dad8f0d1591fcb09b2850fc6449ab4a74fdcabc61b5b073cfa96a519344a227e0987fe6a8ccf1b85d79bb37482800481358e4d483009594a2bb776fbd7830a8299f59ceaed1de716715a51a6bcde04f615c05a933cd4a10fc7f7e6c464905fa8480a8a429d126d15b57049fb7cb36fbdcc00b751e3dea32e3ced0297b66d15eca0c949d7c97529559bd1130e2b3994d701f290483f24d455379a03d266cb9b50f382cc1a1f05cba2f8b1430c44ffe28f989403850f1331c388a5e7312680d05399fb469b0ec2905a2ceb97286febed561f771879315358b7afa5d4a5dbed8f818de18c8b3be667dbdf758c09b7b9280490be07b3779b2eb1c2aef749955aa5c21599c5ed12f4deb3c771e558b9aa5b83cfa0a311263a99a67b0c157c13448a4a35cca86bfe06a61fd14f1638bc153f37d8cf1db439917792555ba8ff9fc7c65a1b3a5ea8bd399b082f00a8feb2ce9085e81873ee5303b6cf044936a23e9d0da2c181909b2f7ccf08b5dab704f4571b324d5f634063582de8dd28c6a3f3dcb61591fb4b881b230fcb70efb13b992d21489ab8f2cfcbe6f3a5b572dc79f4f4cfcbb82d29ed59d64f33940387a63166130bae040a5005a1573ca048febea95abd17be965b619f740b99dd484186d159f6ff782f1b61fcc007deeb802f4ed5f88aaf292bcd1a178af739c953c56529e1b1cb9b61989769ea7d11728df353f2aa776dd84c91150979c0f010b8e1238533de868c787dcc1fe6aed80ed2bb5b0b2c8c61c1fa5708b5eebba9c992c1b06434f68aa66547f3cd447d20a5578ae92382351053737378664a3674bdc56b651db5492335ca7d8cd21288409f0950fc6920970401c3e87d490454f0869181c183d014435281462880f948e20471ffb9e0557a23c2930d352af516b1274a2f9487eadbd535a04297835327b2f3bab4897026a0a2ec1c7645c098cfc2003d3ef20a250222f9fdb4fc101205e4ee74d01d13bd3ec9edd63d4517f7f04a8a2861154524bfb7bc63f8b0e54ac4bda1590e468b56134908dc9936fdc0dca2ccf1c6808a350b3ab4335a54fa867db919a56e598bedfee29083d66f45e9d5aaa84ab72a06bd41b25eb8efbc76aceacc1234ba9aafca7cffb345be297ae970306a6ba9e55fe2ee70cee85006d4f0bdf8054380cbaf134abcdcb96f550bb7bd7932e04d1a248152f9e562db794c67099fd39739c47a9f0fcff6dbe5e6c3eb92eab5fa2e47ea61bf01287da3cf4e85182d96ddc1b9b74d5627c5b7b30f3d7e9234b5c492367f2b8891c7d8a3bee74d44996773b00f6e0e31d36a54a536102c115cfe4a5cf399ca63eecdbc17731b72e1d123fb7f795510d953aff0c03ac563928b324bf9de0d089b9cbfe6345a778853514a2f65d87e7f5d35194eb4f98da1ac268c44536cbfc88844596830eb24b474ae97e04c547a1db052f7dfa9b6153f30e3bb10eb53933d090dd913dd1bbd2731810c66a7538dc03fe30bdb31eb0d6fe7c434d942c57440eb05958459e14dab6e1f56418e9e0a14bb3b2e61f65df134c3f6ef93c1f248ca31f9a90e71c215fa0e9c21b8e4f016bdabfebc843ce940f9dce8e2b520631c492f601fdee04d9de8bfb36907e0a754282e060c9340ea64b2263848207d0286243b76f2b05a39585fae2952f8630e5710b77e4ca07ac4f95337f6e8aad5b2b4dccc5c5fbde5c301a3df1a3b1df0c4b22850c27c4a883bbf39664f12230fdf7f3cce9023fc32471be4b7cb24e029c429ab7c8d7678b44d770bb998ab94cfee70dd2cfeaf0bf04cdde925dbcfae6132d0400fa54800ff27ab68a6af5c9801bb990e2863ece309b74eb4d7092374a5923e63093ece06564dfb919669f568d0528a5180485491099b2b4c1161850a086b8b58da9ac0ebdc664ef8ddf2c4b90e05aa419a06320ea459a8449b68f0e9a6a8c319bf8c3027f18a9c0016d0dfb20c51b68d79686132df80550b337f73f0809ae6a495c72a873aeee3e106b202e9140e3774487198307a0e598d8887496a417cea7ef5889f8adaed24bf579696d70d2b2dc8bf6cff1f03edddbba19d2bcc680418cad927cd4439553b2dcf8d481b370bfa5eccc7db0806833a3ab5f0bad54e3d32c08540203f3b227ea0f910c576e02ec6790d43f3438c80f993153e99b4d116afc040d44f0ffaa637f2faf5bb4e2e51342934034d9759b09336df4ae0b279374ba97ce9e13cdf270588a00a47dc26a2530fb22c313db3206d1b8c0d5d7d32232cdf3cef31ce4585454f2f8616ee8540cb78bf476520f746769213fda4bb52dc2b134e7884b6c7b44fb224dc180765e6c333a116512ef5a8a1c1e791897e656076cdc167990534e903bec7cc1723db32b55863926e8e47295499e7ab82f4bf55920dafeb45ec299d56cd8436a1b8d74cd9121115f7f605e97fe1ed5aaf688930a412666934acc788713f225108211369c971fa0d8d21d52f5ddf91eb52e9f71b4f984b6f1dab1dac41ea3e9a8e92c81a40b61d4281f359929d3886f8e981bff5fc2aa7ee42d72037f9a641b304253527f1c09fbea51ba0fd2300be40b4607657544d2f0f752dd0af00f1b8a1bb24799ecb3954a88f708a80e12721f5df684fd7efbcd61007dd25c610e89c8df29c1bc3d51a15a90e9b7e92f195bc4580dc3d6bb3bc3cc7a6dd737429636ad8433e71390d66ca5a13f966ab5e589fed87753338288074f7dbbc0308e6089d549704c69d7d20e0ee244015a9cdb21f9270f340a72640cab37d8b4ae833c8f1d5b768881b8128d56077459fafd15bb657c4dd2867705e1c803f36d6caafd282a9500578f338234a8efbb5a21fe9e2efa85651d869d96942f061f41fb29b4d9e259a22ebb1ea93a0eca8ea2b609479fee090f4a1bb0f1ae8e5e5c1b3d70297bf0747195a2704c13f9ce7dbc3a65b5d5808f9a430eaffa0838e86657eb27db7d44105816d45afeebbd8863a43c0b8c7f711c1ee657100789a28a6c09117fee2791b8009e5734a76e12ac5ecbe2dab8428601cd05a7d2faaae7190d208dbdd57bce718e322234514394801f5366164edf08b7ccf7df5f054745c74584932ba20cb6db926da3fbc0c844d9496197317ccb43c918c9973f28bd9e212a342b483c0b4866f4db3af1a422069ded2254f086ce0ad547909899f186f8a58c2eb14ffc444796b66bbc6a650b21df575615d5cf203194434f62881434fddff8e755125da1ba59d65bf1a7dfcec287bef762df4f8012fa45aaa73bc9017c1aa1eb991ac3e96d6cacb6159d9572798c88fb599a1a7a0960ad51ceea1e90e69f213dd623924b6fcc873b5b8d1c57b9b834d72c7bc4e2f8c1795c7197a9b3d28a3b0ab7e00a12923e72c06575d48d5c0621f8a18fc618c40a85f9df9f35057926e93dbb11ab8aefe25081cd4532b51e86b42d907c3935d570c8cd9b216b9c3adf6d90b7eb09e45fd9d285a0ed266d1dd8ad7a69cc81c09ae2400edb2b8b5517c343c252ce6a1c02f6df43de346d5c603498b7ab8dc7d9038344e409c2b01d379208ca884a80c2bc8579e8fb66c84e4c03a9ee6e41530105365bf346ae3f04625fccdf28791960b3223f3d61cd7d2b3006885fda192adf1a3dece7e2236b3b88c0637a56a1b3e3d39809f5ecf99262bb0fc4a7ae888370bee352cee531fec43a8f9f85092f2a434ada4d466ce19af6804cf6a2ba1df2fff33b2c928a05d0432f398c528ef9fede0c043a1e27c61b78791bd63365b5592dbeeaef6dbefc8d4dc1a01a0503daf4e25072bee354f2d71e8176bf4d27f70c14a7042643a588c5a36e8dd48cdd91f6fd10e5f4b5a04283acd9ea6d441024ac4e3dfacbcb16e057ee57ac7e88630184508db4974dad80afeba421ee9d40359f319094ba551a82c1ecc420cace30ae1f5eca157b2d8f8df96c6af807616d4a4516b5011f417188df969da477b8b59976230c6f3a9a4d5cc19b9929a320606833fa46f158cb0cca1c51f3388eb2b4673c3060bc8be566bcf662ff84e8d278871c07dfc0cfc794cd302b75668711c6d4f5c81504ebf549f4c46152b821d925f23cd1a2b890c8e28bda1bfb0d9398d67c2ba23ddb8f97db2b271fa8a7997b6ef3623bb457c8e08502414fffc854aaa4f1bebb31fade0ff5a6afc2ff55ff826cd5eef8beb0689b3f96e3e81fdabca244215c400ae1c9a0e4cf0b98b65d0d87cc2f64976dd68ef88845440d9dadde6b9c0c4112298cce25e8110f0a12f97700518666d2f25779440aabb5a2dfe9e6f9e9cdd5dbaf3889b8b5834ed1ba9a632a50373bb682cd216323d0f6fbef0f93fc3aefce0f05390a57f46197c93c16e64533ba2abed774cbbb66cf868afbabccbef410d44156d961dac359ca40865854e0f72d5badaddd18481a47dac9d6154adf4ce0e4a51054142831a3e5986db05e53ad37fe5946a67a6ab99bdccf76c15647d05df65167d6676dc3eb47c629a73dd4fc30ec03e7470918730a6752741f2587df738212d294be5ff210768ad768710d9da6061958f31b92a98b977c8f0d4c892cdd03408cef6ef1abaaed4af6bcd56cde26fc7a687d2e64728531a229d751613f5b980814a7cba6cd65ce0aeb8e0c0620604773675be89a194e72bac8c566d3f33c430ead204ebbae2e645d7d068127598f8383abaf56319c7e038f9641b115f9348a0fdfba1493972bdc1e59308586933e70290b66ab812f15f5b6e281cd355480668df43127894387ae5f8f364c356b533e7f6760131fb767e9c89dcd627fdc5cc4067c143307640b87361329c36b936d005a1eb375de50e6dcaade4bf03abbcf0a6fca47b2f71e8bb61b3d568a8a5095582996f12dfcc8ad33895f64331ef2bb65fa749cad0f8a1d7708493391a5fc39bd64b78a133d21eaf6c9fdafc9d1d548cc37d6728d2135288dd3d8d416528580efc3703560a112096c443b79f0018b98fdb5906faaa69e390f2c6df7106aede17cd9316d47c087bc6f20c0cc838a8fceed1d044090f1bbb35e22f1973bf5c81966e770fe502b1dcd3e04d4199f7032665dc2d96e240775469b66301c536ec16445ef24a3c848a7bc96a2e762818616d994217b4823f1273a1b435a0b3b29150f8e104dafd4ecac38584e0bfe96c8b4957ebb98cfa478238ab2e0835613b51653bf406acd0599e65c15f475e5cabcd74599eba4c19b9b2dcfd29122317eb3a987a44a01cb71b2c4c535bdff97815f1f657c2b56ab80bcfef9cdb8967998c4c89efcca1a75ab2ee9729aaba989df738027e93f290d9b7fc2ddc55c9cb166d501f42292c4842930ab79ebaf14243d5fc0afa157dc8f9a859a8a12a8da86b854f66a936b8f9beeca9487f9170557ea11fc958010f24872b71b78295a58ebc490dbdd63cd115084b2e534ddb5e8b8a3e123be8aac330fa8a3ce7f4fae02be00c6fbdb0c5b624a9be20e27becb4b375ba4797ef57d29df8981aea79f572703f23534b81b789f70e26b37036c9b5e5736cc16165bb6a44ffbcaadbc30fafdac01f376e7a7606a23e76ebb3033747a06e4bf657397523716cd012fbd63f81af48dec47afa55e688a10f7a76b973c97faab2ca54a07d2b89bd0218c13a582fc3fbf2c422470bcc2f007d84027dec0d4a2d9996b7c23c5c4a0197592a02a97839fe12793782406a53120e87ac09282f3a764171eccb20438f21ffc0296780672d144737d9aa804c2348ef281806e60d9fcf87b7ae60b90b92db35f0f21b7a0f1dce437d422779ece7a8484346f4e31137fc0480eb821a62d96f26ee2e422670e3a5d3b83938a7303ba8348a5f520584c2790f3be1354aa40f8ba7f184522fc378ae86708e6019b9d8a72fb9a50f569d8c95a0a41a93ecbe09e3ca44280c993c1e06e52f36958625f234e270fd3963a2d670b5da44b002fc257ab8c649ad755659be45b6bf34a4f0b2686b7b2f85d07640c291dc587b49ddb873a1876177679bdca7bb1a859c4eeed7b552b66482103bc43e6acd88a1940e74fd70ce6854562cc2a6a9d7a456b2c5142aaa2c006703918157ea9e6589c0de5c0522914d980ad73ab4550c14fab0708c76e428db8809a7c960097495345f29820eec9d593416dfd883989f26f537ce89445754a757d04930cf175320f3f8a083e7ba3f1c22ec794f4954999ba235e49900a5eab09184a2c9b5775237cf18dffd582ada5c720cbc94c7c0ed16fe4b78823ab6915ea8f89b88528e6755aebae8d07233022f2839d10e6a9e1cd59e0f7877b274e23f593a2ceff228fd40114b385d8970e0cec83004163a3f0537bdcd42bd4ceec2406aa3ca88d8982bd77df10fdc99fd3fbf249de199ec23f3c0ee75fddd4087e9b57069ba3f455a107d67e2cd27c2eb9fde2d7b5b71fe97cf6d197280afd3d25beb5fc6dc3bbca095701479b21661fe112114ab31f29d9eb02aa9bb2a320b18bf88075ed2c3c84c9aaafc77fcf93da38aff589cbba4b77e4768ca5bc9ef45b69688010cbaa416b4dcfbe4c2603811d0e3ca7bb6ad49176617bc01e0273ab20f36084dff52a3b2b34eadac386a7fa592f9624f0231d3731acd06c30329fa1e2fde6d8e2bc3ffb0d5af3744036ea135d8e8d6fe65729f1af48457600d0241a58463688b1989e085f2f3509989fc02a30c06777e5f7f0c721e341ae3b91070ba7b53d6df7c7a27eb8accfb5d00f60fc65615cd3f8604e7e46263d514799d1f91eab2016b3f5c97ddb8236215c40c5c9455a184d1acb848a8d1047d5b3a00fe8a14bb3765d53342cf675b1b0588e2f8c863a3b3b12efb59eeb938008cbb1d24f8e97036b65ec2b46792edc0e53fb9f398c68dcab18556ac1a80a9e7f53a430303c90cd09a97b973edf2b260242695e1959ac025f81350ff6a8516b54e3ebc1295f0604c7d6b687ef06f05393b6407628a5b22a91fcf37375f12644345c9d22abdfc24f66e0d6acda03ecfa837ad5378ecd80c49536054c766cc19abe6ac9762dfd9b88bde91fdcf985310715176bb4208e76b641e07db1852d757433236be080cbb03e475d4e921f3b6e3b1dfeaf43f9b666d7256aa19e6fb89dec7115330a295d753485101a6ce7cb40a76f4fe3011950847599fc8573b70cf6ae467268a1c92c72e032a273ac3656893592749e4c1ddd5dd094764a75a077fc7c0a1cf3d6a29799ed477cbbb84c87f11fc40c694704b3e49c5b7d6a4cc66efeac90bc62de1d7bdeb9ca23f59b63b78a7654e3d25901928a83f7e6738445f5eea8653a7073694747d772c0e481e0a80a9c48eaccae61f5d3a18209c00c744d386d5d2708522619118f1b06183e14cde1ca52735fb580cb590642b9dab929f94f0d720266bb23ac965906ea16c88b30208b1821a9a0cc87193890ffefc4984af22df26629f42b399766edcd5bb9f070e03fc94a47e7dac01eae97d4f048b6079187ff8297c6e0902917e60a3ece795eba9904cce5c58ccc0556dd651ec532e2ae695d6f6cfea70520831306ad6aeb2a9121117bb9b9430c93109bb352a002c697358f42b9eea7f6e1f6283975142848ebb362bf150726db9e30ea8eaca0764024df46f94ce9d30dc86cbcd8cbf45058e4ff700223357350e200be423c73e481fc72238e0fca0883d81a6902095a76d1b307def4f88ee847c53bae71ed27dfbb1d8bbfda876e39f658e6c19ccb38d836b5a3ece104a235622a9491f231b1ffdd3adc0f1c7e35abb20bea13533da3b609d900478bb1c480ef592de8b5e06a3df3efab11344e85426d16f5f856d055b2d3671d1547bb8bfbf5982016fe528cd6a1a550c9020647dfcf8009bad19b2ebdec0a4c635a785187c6adfa6d7409b9c88f70ba9070dd68c963f1de812f6faf9ade20b7d8c9a2b769d18f3a0be50975d9ad2eebb503ef592dadcf5e5faecf7df0877dd9bd1ade1f11adc4d77cabb5a72eaba277691b5990a8893a2718db56e4e660d80153be4831e98078b73f1a101c77135409fd291905e623520ccbe55351598355d37621e6573f46343909674b04a3d988df718803b64a0e2d9462f824d79658c8c69c9a9340379130ace1e5f9732c51c34957bd3323b256707ad7f878abb20e89a613b08760cfd3a7d50e9d70e1efd7cd2ef95032d23aa5ea2b43618da86437f8139c70106ff54c376ece7bbfab94b28386de88d6cc22b8c24bc21787cc793216014fd862e6aa1552a1e0bd229085dd34e197a49b1eb4cec130277038b9d445e637d47bd28539fe0591e245f83479d4b8dedd75ba5a41d502657cc10135fe84afd0e8f3b5d0772dd6d178f812a08a9202b5ff6dd9133264d7295739fdaa45ea8fbc35c3918d1db43bea4962bdc0e14c4eaea17a8e641fe403eef9d651a77143404076b0e047288670dac832dce3eba9cfa8cb4b3f6a00698cda46b85c5d00d45972eecef5ce4f8c8590cf55683f24771d9347dd25c566162c4982225b22f8cee8be31af01b58abf687109b6e76b6c1f76f64f5d601bcb1e3949e5f062f2470a9964397239d3a2806cd62df2a2e3f4635e6a8ecafc96e9af271c0053c2e9b78d54f7cab87bc3d99d158c0a8f1588b5190a1c6ae3e1612e5e16baec0453ca69dfbddf2ea994639db871525e707d1d76ed744fa640502e32e1ce4c516be87be92f8ad836856f594cfdfb5e83a27dcb66700fd850b577b346336eb2323dc387cdc76171948a19890a5f22d9e9be7f9e48ef6aa0004e4628136677fe96a5e09ae758978e7f1777a0a5c9d15e6275de0526d65c26648927cb40be6cf7f7060e090515b9e7ac4df18d89fb0b7f3804eb569ba2a8fa1fa4e35c37e82a9785cae5483facb88794ad2f02c5f96d401da98e47afa65d43fd1130a1e9572a8d38e53c71dc94294d086426f71d50ba9ae154a0763b1ebc3a687ecbe3b1257bbcb4fc13c4bf3edf6e1a445f28368feef9002c06e3e458a3ad3eee306f3efac7bafb55d2216a1407f153a76892bfba27bffb9d6171a4fa407deedc06178edbec52eff76b8f8a6bb4313baec2fac0999dbf811d5468df94f720e46e70aefcecb602a4ab17b91ec7b65f2a9b7866ea1a49c26cc361f60f1a391f491350905f74327e83c4646c230d7dfe7541d1a1f93e5e058b6616a9fded5f99122f5c1732b6842b3fdad31bd591ba65e3c226bb2e3b9eb939f258f6859467bf5fab9f27d27aafa592de905b801a7d416f150387d0c5aa82cf05c8b6f440c4562881a1a3cc4ec439d6389067e2396510640b141cc1beeff9d62692a4ecc77e383b9cf7f539d0fd6c61d11b9d19a8bca6c0d7665522a66c2a19107be0dfb528d38caf7a8a2a9bed72bd36d0fe257838acee48a0510a93a31778e7a66f188c32a8d5d4a95423a76db7a74625b2f94c4f1cc93394f3479c3733996453b85066accd80110e46aa274c5ae404e18219f02dc6f2c8b36237e550e75f32de08dc8a7f6cea1a97dce241b9ade0893e5ccdeb7ecf7cce478aa6c0b0103815570f5fa7bd42eef3fb903a2956b7253326d3e00a6c2dddf7509ac99b7c7f30a0636118bcb821c63d2366257565b29a7f8f9df3df7a2c35d635853fa32a78e58269f7b8f7346e38567861eac1048d974108135ab627ece71a1b812654a7333bbacbabcc052ca3169ddb0b80ee876ac71068b48d8e6ce08026e08a406bbf5fe82d86bfb29147ce0b7b8df178890621db25eaa22d08b450ea1d3fe027e4159ad0849a5726006f10bb030d25003fecbc0b0a43238f5b12d8f3ff7c8493fa71fa2e3a90fa56a182202e4d64bbe559e5f96cc4ca21dec400e728756bc0ab5ffd87903dc11591dda4c693d6c54cbba9d0cb0f6f7fabcd024241f7533b9c6e151fbe9ea74b78761e40604e98af76006078d9f45d7772d8ca087e2513c46924a2fb10ba4d48d7c6764e60529701595fb6b3fece41554d1155f38899a4713ae48d4760643e554ab84a46cbd415971bf96f3bc795f073b58361f1216f72ff66285c05897b709acddf7a75bb49bbfa65c287ebf8e7bdca492459b45b5e7884087373fcd6432f2ec1a9d382dfb24dbfe5ef9d64073e8dfe4c516cdb1d72b3197f02a53288420d266962c343f63dd6dfca72f6ffa0ec07af22e3d0a7a50e6291ee95467654e867b06ece981258334b4b4b851ad11ff7a0d2d7cc81a70148ce4abd411013e20bc6495c53cc576d34196920476f0019b250df974c226f94889c2b165430204f349b8022b0150733ca25f5076a5322d335329137ace62d9887d82c69494772acb339c196455067bc43250b41ee954ec9a06c5bab91a4a0968f3ab7e8d03d207c91fd52efee6f9aade45d9a12ef57a4292a12f38edf6cabef145f3f0ce126b63a45fa06496a0801c16332c4447fab965504dfee9d2551ab579cea2f0edc9fa5d140b517245129c344b90dd9a49581d6650f022a3ca1366454f1d3346fc4603f224bb760e6a0907e993d8ac08409b9eea35b5973efcdd848c3ac4e687081ee8582aafe6354d37558b517ee9a389f60af0d7ccc15e2855dbd540b10b79a33a175381f9c8a1d876f77a1fb565399247e55d6a8aef162b21cdf0914e80e389970f203ae04ad4fb83538fb382fab859decf4e5b15232628c7d4ebb0ee98fd8823868933ae236e08842467519c6005c80230a54c13a26f76c0b72954a9705ce57674e0cf26c292699931f558f25b48502f941f2ed8d63dc2d24ac9734db62b1aa482c868597d65ff00d71f4337f96e774b175c29dbd2def19e20614beafd8dcdd5d6f8f34986e2a7546273f96ca4170b0ed917ab88404b26d23ec3413c764eed77661a7a798600cf6b00539d96e8f92924a9f05aaaa5fcb67d19973a19f624bc87cd0c29a961eedc1771477a211a6c189c36b013534de84e9c824206ec3be98fb2086ca57bf0b98d07d3ba258e53ff6312a644215ec9a4ba70607dfbc2be942c0e1811b01d03b3e7b4deff9b110dc2f0145054d726deb33e9f86728060389f85a170405ac4431f4c4f5eacc920987ec0367ecde211a8a72db1888c53d3f412d0bfbdc4e4b60f730331890023cfdc6b4a992f762baa60ee16e2dfb5869ce8a971fda1ead6957cc5036a9ac94c99f028ea179157d7526a47fc9d9a6d3864fc6b31ae74650b4270f132225141001fd6988c6eb5d86e2c01eee4659cdfdc2912c3ee75a2c5755e64b1db63bb017702402341c87cb06697beef5088bc6f4ff5332bd1cd889561e8f107836346bdfdacaf526dbba773d9bc0effc17af6ba6abfe48f65342c1d7829eab0e148c9cb1fa3ab6778d6f8a9d588fc5931377a456e651a3758b7b8ed66200153025926e6c8c2fc9453be6264dc07b3ceb724cf61df941ca089cb9b943a51d09126e000a00af705931a7a07fa7f3eb305b55ee70671c7c5b44bd657e84a212cd4c79d632f4914ec1df9a64e3baa83a96dce2c8d5728e4d40fd19b847f05e582a5a40f667e173534f7943ac05c88ca9878e3ca861d2f9e608d174819855956aef1da44585f5f0c6762d9e15fdc9764dbf31fda832f02b36dd9fdcd46f729134aa5975565e71a1dc76aaf4a272e7695e6aad4988de861bd0a1087183407eda4e60350dd7c52b08a844a769de44006895158a71b56f243fa584f5369c9d9fad57c0be754dfc0dd12f2d5d95327228148257791fc7a9af337a2210fd61127448f0a66322df8e945f3a3608320a76242502f2c9193628ddb25edb495069388c0329d97a38274552adadbd69d88864efa7445ff2927fa4bad99cb95280d002ed3c6685ba675ddb6c789c3847cceef8381203220e0a117325bfda8324b4c3618e120873bf524fec1cc25a3ce9d8f97ae324dabb5bbb9f10535a6830780ebfd5dcec5ec88a87ee9c309d332d9d3dd5d7849eecdfbaa0cd6b4cb9f3f44fe2404639d9b6f5fe077551894c9a0735aa6a8be7bd395333023e7169871d9b6bf7dd7378b483a3646262f29db1f0b9854b26ff8b9451ef6f967b42dce3a797d3dee9a96325f878e859d30df60a3d6ee6e77fd3212951673c33526a2888399f535725e83567912f191ff66fb10269f4b60bdb21126a50c20d0e7e53a53eef18f9c1249921e461af6d189da3000de436d6459024f7efabf9788cd240fea835dc9aa6600ec99f24dfbb3a322aa816c3442a7431db1f90d4ccb6a43a08b256a51c4b482267c771636abff18c208483b7051d205b310cbf8ea726ce34dc962bdb43e849be3b27103aff99986c74007d771d1aeba4e6f6c2cb6aca81ac81511687be9062cf62ebe97f6c4e8299c49e9071dd140b83f646b68603c84a536ade162b6f2622636a86d162984692ee83759ee564ffd62a871c5a4ffeea66db4d0e95448ed2c54aeb6277bc7ecc64cdfdad17bd385463cc76cab86cb11ff7b5060307da3c7e1c02b15ab4ac459107bf68048dbcad912eb3765798c12af8bf36a9b6e7a6f35a7bdecc40a442fe2a42434a4c8de878b7dd1f44febcdcc92b7a3f0673fd5f4659c2770f58903ed68d6e100dead3379bcb08edf6acfbde5114b3d40c58f0c927b2707d0fdba9365798e145d159c7eca65517518e851c214a2f3d3ec8d9309cf85fc969d97694a8ce8ae3522ca547300ee32c4fdc5f8dc3b79f30950a3f2e6a30a107c59fc8c0c121883894c4f1ccc7c38725a9b045e49195aa7be12d24dd0c5d7aa3ea47e796e81e1a39ea72f1d500f855a264acf531e4f23b0329b8f88d468a31a6827bdc7050d6ab7ac9da70a62b25e72535776324684d5f53121980139be0d20e21fb226522a20c088837cc553ff0d9405d2834f9fb8cc8dffc295139966fac46bd4a2be1044ef129e973752d819b4cced894444005044dd4b093598afaa4d1a5f374db130c3d72bf297f725749ea6740e2dc206eedf9687508bf576792e79907438e0b285d848c260f39dbdc3e5ed1fc24038d3eae90b61035805e6d9d291f6fb8d5074f0eb09eb4ba3c60f4a4a739c92e90ffe697497b7d813e562c140cc2bbbacc109b0d4fecbe4348c0a093fbcf47f2442219bb081c2db4f47b2d3c59a66de863dba9187220335afd539f35c4c8836ca755d5a039a2cb7208dc494632317a3967111f0f01c4bf733d81a665c8dd8dbfc42a0d3aa33e7049a1dd50f1488e30d7a7cdee2929c98c457249f44479cc2854dce815318cbf5d37dab5fe6ae32d2e5cfe2178e12d02848ca9bb2ca58dd685d4c709eb060c1d53e3e2f142e93541636e24916f8c95aa2966897e885f743f1112dcbc40a6c8f26bd9e7efd6b5d24027e59096990102da04bcc84b53f36fd24e28af646656ebfc9074636424a68e675dedf51c55c6041498830570ba055f5ac66ea817f937cb9d78554bd77b393d34a9ddbc04f693e5bbe9d4884deb9c4e2a000c7f1f66b5a65b378968239bd714eab2acdfa3ef3da1989c19c7da8130f496913bd47d3d91c86060c10af983e960107c3bcc41cf425e5798d6302047e916783999e661547ca0fab53f315ca2c664f2c3e5919b0692330742d236bb3faac0ac0c03f4b3b75daa1c6a57362343b0f71f7c0a76628650659e44993a5f0abdc894b2e43f8e6eb67adceea5047a5a556fe94c7e30ba28a62a73e9a382508e3beb94b1fddbbf0ccbe9f35665df619a98e3e8291a7dbcebdda6c2009e2fe8f9902997cbf4414a157d2240467ad12bd992b377f6d763f4fb62ff2c5a939e1511aca1886a4a84e52cfe4c45721fe901c80b79353a2f95e38e645f34cd029ad8cbbc62da1c7c5d7c1cc7a8a8b250805df9e24486e5a37c7e8d2a49c3d1193ac744970701226bacaba37c2cb4a157f48f3723141026b937ad0e65cca4a89a5a8bf71508f70658fd471bac2dd6cc1b593c2bbaea3e4bba73cda1001809142f1b634f15c4b8520597d6e78925207518e7d9510ee6c0ba0b512f69496504a029f5a085e243c642d32312bc1b63c9df191d3444ede609f5f5ce960467690f7bf78f27d0378ba597e67669ab785eaa3624d1ec4c8c27d0a91cefbd4b7b5185dec4a3f2df1f256071ac1d800c096cc3f825b6f44e952f90dc13b4cfd8edcc260716e88faf5a40023c4d66ac2bf0c1b4fa572e14fc791d0819c55aed62aed097bd56429fa11d4d1eace04377cd091d44f76c9c685b8729bbb796b2ace8778ddf6ea22658ef488e48cb7401218125d6deaff2c7df9f739c7032874494aa5e8aecd4466304676c799a143a051cc369e30f9d8653bd4e6030b388ae0da2f532f40c2fc35d807a351230a166fd8fef0815092fc0b519b68af853b4d7edc6bd82f9740a461ebe9d20a7ac64a2b0d504b2d7249ef29f60b32479e22d248f6608447abd9aeb6443f58776b3790e54fb3567ea574b2840d0c90f8e3881eb77da26726961a23e6aa95469cc6d7e39b9454da4c0c3b0f955fe88741cf0f1482ceec027fe43ebbdda1e8d7d1a090193dea9defebc29e221a451437050ea2f09c163afff38244f6813e40b7b6537fc2f6d524aaa0b6e9df2e284145355c71bea056da6c6512f5091a3cfc89d23ac63f2761e8f89a71eeb09fa2838280c709b5e7936b0c7586e41809eca84ce51a1c0655821edb8ffe74eebf11fb08241907e488c5a773db652ff9b555258031655dee2f92058b9c619885ec0223bc84815735a586a61b2392f3825aaf991b3be8786cccb17baa7af2de2b5cc3c9b74b0b30914d06979591abd44c143e4e47850fc4df7c1b4052a413b155ecb4d2c0ff861ca899b522aaaa09890579f4ee7371cff708e42d918fc7082b6595a89cacccdd9586b498fc9c830c192031803e16909dbbf07751d6f466ee4388a9af608185f1ca9f93783f185141c561dc2e6e96159639bf89d4ca428dc677de8dbf1b779b4ec43df9d02acfeb2f0919a2e6b58a7a96c01de3ce3c621c1b5f30e55aabb9be6519b1c67d46c27db6a524af31d80bfe44da92971957a409b9d4ab7c8a3326037156f7a2e35dccb651a31ad2219c000a2653026c4c8ea445c90b00dee35ec46bf484134785871cdba731d6cb492e1482e955684d5198d1e8c24a4fb6a0a2f9b6cbcdacc76dfdcaab44fb5af3d4bc6b018c24aa390d4b36f739554cc31a4cf238789df3e0f65439af46a2dda3e206797a75507e6807cf000fb3f92cc1dd5964fc88b73fb85f447c0f8e2c965ba7d229e0bbabea79349464ee0254fc8bc45f8175ddfee683a8fe64d2dbee6e9bee55a707fe457a116a52c98fa6daf874df01814d46aa2d31aaa1e8fc06390880c6c6570c4c8fad109ae61228fe2a9ad1da525760f52ac0207ac6d343920ac46043ec8a395ddac3cecb88c8a1e71389a9b88f9eccf82dce22b741961ada4b0109e16c978bba2fd0c03c8b060a8ac1832a39014a4522ba9f97ed14a480082ee6d38c74b3f6418c3f4ba196f6b1d4a1caec60ae2dbc93e3392e409f862bbb46824b3b7006f4644e6d42b9b19429ca509d496144fd42cf25ad637539f88ef153d4f6c5fe314dbaf3f03f76f95261f3a0c3b3823b103f944e445605dd17409e69ca965cc0802b0e683bfb06c0d49752db57de57dfcd30372ab3ddcc68b83ac4a55100e21be956af93fa9c59e74dfbcc28b7b58c04a60697fe980aca563ae75c9e77be913f73c9500e64855c1d8ba16e52d0c7759b1ecf9b388f65800801400d132f5976b0c01bb91e9fdcaca8444f7a300c6090e68124518890cdb566497a330aa468a88cabfa54cece3165ff30c4caf70bab5753fda86fe747396168b562d9c1f6c09dacfe6cc50fa80485a9156a8dec249ec7a673f4877e5232d25d013412b1b0314683bcc23c2d64ef5495046ceab747006dd85d479dc16e0e75dabca29dbc33dfb4babfe7f4d587145f108a435b42c304bb21c852c468da3a0083b049f0b581a97318b26c19dd52bb9c7ad54a43a3bf632df40add115c9b298691eb26b0036e15fdbb252bde3a1e7b9754df887a5aa21d4a1a001196d0b3d6833209af261742bb99f54cab55499ddd15be55583fedf0a0707da0118b42ac24110b19c43bc0af440e63bbec1aabdb4f50c047f8d74cb2e7a7521ef631677ae171b3260d4ff897503af5b732da1e2a7a3cd3bd513d8a85fa12338812c01afdece660f2bf6ff64d60a0badc0457b6a04bc19655bcb20501d259cb2d332a903fe8c75aaf6d1f4c8e5df9f5dfa687d1214df1fb1fc40e7157739408f45ad852df05dc114050bfb056b37254ea47f70cfc3cc428cb3c3eb3b190ec21c45c6d090b9df379a83279387c935ebe0853021ba99ba9850baf68ef1675baa30426909729760b61b0486215dfb685218f93ce10bccd46cc82f3557e4c9ead3ad407e733a3adf9539d7f56c5224d750058f73052b8b27bd80d9f36e6084daee5ac58996cc53a91a4e91ff21983f46ef85639067c7d0fdbcebed782301cb47fe0817e4bce8ebe80338448a50fca92fcb53ba33e306465b5253109567f1e4fbda090e6075a12c4d01f537d1edb28aa89862bfd0dbc11297989be88351bc89b3aff6eb4613e0981f390c2c8d50ae5ce69a8e8417b4cfa7455cd500be9aadd7997bc6f5032ff9de82c2c86bcbb5871aed2c9b96e65763d68fa3a0d25021c2859a9334cab72251b94c29443f2cbdf7ce623a81c341b077c6cd215f2e45692833411e77ae308d108fe8ef408329ebde8b7ac60dec24324c9ebcc33666b71651f6f597454b72d1e8c6f409d5719528de096766d0fa4a52f1eced25e4e687748f8d894f2f940c98e8fdd860e4e5b8407f72cbc4595a2a08e529201d5d28f6f049d32de841d3fe4a6094674f6ba35763ed162f1dca847951bfdb072e43200b9cba5729dbff12c999d642b928996e68a53d158fc3af8687afee37b11526a073af3f42cff3a6609bf60ca9d5afbafb7d7e472ec79b358f95a7844d0a4196494e033cdc86d0c6a047191409689df401b54a0d4eb1a0a1e72742120d565207027c968767f86527f0b77d70a0b31ecefa7ac9b488895e23ecf58d94bf40a1821035097022c77bffca30e14e5137538b58a8a00f8e5a77f2dfb91971be0eb8294f0024499b9a2c7b7493c8c88df4d1573d38d7b3d5f422bdb6a27b827ee6d5881aad508db59b6892582afa38b7192141fd5e5aa40539a7662d93cd3440876cb9e89b1b8e02f4732f624601a063e43e01f5df7889554ce415ccaa2bb2f6d5a254b274b8b44f5065a57f19ad183bec1a997f4a6779f0a3cb93abce371f388ad33597657c528ce1a976cfc7905c5fab19bb1435bd5097b2e2f9170996e748ed0c0d6927620169d97e6b2f9e83588f059305daa4f89a056ac1b06aa0711a940d91c10551889452ea79f827ba1fd178c3570d318ff80adbaf97beb5b6f5d6220159a4abf5b098aae401f56d344517ea7323380cca80830b5ca6651a1dd3c8e4d18d72b125c0645f25d2a1740c97ccd5e82d6714cfb8af1755c312e5c6c0b4db760d284cac42ba452c7bffc9a8fcb75a929d71e96cae2b90e4d79bc8f1f6147ccdeaa14c50e5f5d55ae07437bd20aa414e106f07e1d03ca56c60ced2a9b2c5d4deed10fff0facf2e8eb8c5e0ccf171a3de17d21adc731ac53df04df4c8b4c14fdc0f3c9613f7ac7f010f59db4b23e1a81eb652cda150c68a69adc235f3c2ee1d28ff92ccd8f87d3ca8c6cff798ade09638e5a855cc01757f16d057f45925fa9f6d9f10a5dd3931bdf90eebb7a54a9598941217543b89867006268abf412a455e4687ed753d9db22afaf1c2aa27fa93f9f39ec4c55cc90e5cb79246b25fa2e161288122a7c62a7cdb26c94ca99b7e26c2305be8184e0cee35c589586124629e00630bbbce768bb681cec731ad38df9fe76514c3ab4a7c7907f99428b9f3c4236ebfd8f7147e8de9cc476df53b2de7c082d8066a407caab32bc0d2ca641a2420a4f24f410a5da23c616b146ca027a62cbed65f612f890a15aa9c735d980a6584736e0bea582b614746b067816c36efec6ee5c606632b74e4f17d3eb7580b6ad0d04759c1fcb803722f4ce64efd83d8068901d2cb65b2a51f78d70c669a0e9c6fadd8bd75ea06e8e53fc36582fb4c3e1fe26e91400d92bcf3f9b84afdd1d36a25f07b6dc75087100e2c658a1412b73e2ff48903ee8b06bdc565227bb4cfd5c5895e42d48addb0a3a7da4f524f55dabd4892569d00f46511cbac4bb45500c4a09589c7117bb0b36a62e7b18c241465e26ac111c7c274ee0432ff9e1e7c6d70763f0f5e75dce5895311a9315cd40dbf966627e15ee7dcbf46da34b27822172dc327c3a209efe230f06a9d8fbae345760bd3c1d633a42b366b9d64a29381808c8a5590260531ce93f9595cd5f162f00c3212d7e3899c3a0a6b27ecd2d43e8a5ace0226475a71dd92c5dd74a4208430f5436553029b9bca74225f6a37b5eaf36b1979c17e29b2639ed57ad582bc81a3a4391104d0141f7d0fd15e6efe43cf1e94f8fda66b4adbc88f4a3ba2540cd5f12e5393621395b184569bfcdca8a20eeca97ccf1b90c73cd5c56a3f9a8dacbce0c395e5e1253215167d09e34e588511d005ba30f3535de1fa0c1fde6e060b139ec245d3ef0bf53de4bd8739e964b645754c4c86002102b186877755aeccec7440d16e5d1c175a1c3170e4dc7219942c88aacf82008c5963e39c250b24b6e9b7b58c602f194bd1373df1d627a8ca90b986df6363cb5b3f4258f2ff5cd0faebb099f22e238362401920e1744b0f5daf00ad962e3ce2e843bced927e01da9ab34aaf9b2ed6a73c7e855349ba37cfb20b355996d954a9bf25c761b741f81ae055ecf53a7d4db9b1d9877b0208144b6952f7803f1195e1a75e1256128a0a2bddb82f959a79aa2147914c3516a34784c445f411b00701333498092220bfdb096617e8187d45efe8015bcbf6e8331285a43ad3579cf145dac432a7f2bcea89caa08278b75e48d35ea1de4149af44b455e79b74c19c8756cb78bd16222f3adee2f65e7a9c0faea77ae0397ee810c5273ea865809f3e8617dbe08127f1e6800d00e2e1b37185e54ba3f87bf990e38b685663aa44b69f301cc268f98e0c70b30883c9975ea00f2232d1842ac28696cf4ca7220fe4bcbdcb720a5252fb87746c5d06e8e0bd044fda733c10bd361f3faced5d804fd423ec1e813acdf1f5383c6aa68ffa6f050eef49f608102290d735a29fd377b6acbc13f7f0ce35ea959bc6108c4e4dcc8f8423ee9ea2c3393cc2da167b6cb5a6441d79a7acd5b58902ab78e2540b94d364705b0d98bb7b56085567d0748e531522d8c783eb3b9ecdc5575b0c06a7de3310da6e2ca51e14c31be2aa7b0633b90d38e409654e2191e8ee8512db134fe4f1c75fca9687c7003cc2452e2867d59c2cf5cd032a0cc233c004bd0741a246d2e2e2d8c0db72f32a71069382cb53bf0422a28b27322eca7d71c8f3be555567c5349f81384e911bff871cc96dbd67f67b35100ff1e3dc23e4c9c721efd1b1bb17e538695e85980b79979cdb3f38054c99bf97ee0826bc928dcbbf80c3930dd5b54a501ce8dd6d86af2e8d97d9decd5164af66bffae857ae772dcfa79d1c10bfc18aa0c5b0f4da2a5dcc3d2fd633ab341a041ffba59ba00df3d978eacb14c3b2e321063f2c2d528a2865f176d71e67c05256c58ad1b277b5257076a5eac432ebca5ed5cc3f2fc3a3f9e3581c2c6cd40d8c4dff5073284c1c53c25a63129a9e3d8be5807d8d667f347fa1dd62e64d879db127a24d4efac6548157040388a93957b62d906724812e9122f1bb2e01d51de14936913483a88731b3e9df495f267bc24902e63fd5f2d2f80c98ed68607c18759360ec9190b8f07357e8fa8b63ecfe15cd0457022071de938d4de405519f428d019e8ed508330458bdf5e553a5f9f5ee452790a6cc7a5691233d1439acfdaa55357ddcdff527500f576767343fef2699f9324d1bc6ca0814ac8a4e9fe83a2c4ac8a0e2e97a23ebfc52c9fd2d3f947e864e40df01bce5cfe1b7c7eb69335f85c6f93bc4e2c6be80c49c5a3252255230f8814103e46493e706d97ec6d422580251989a799cd2106e7ea78bbb8e13b7667b507a08def75f51dfccaa0571b275b4614d98de61b736eea27a856fca9df6831b220147f799174938c33db70e01e93aa8c82811d0a3d3567e5ba006be2465f26bc542e6a2084fc97ba79b3a4fb74e1b1226d01f0d968a644015edad32c9fd84cb467df322c0de1f183d1d7b2a151faa13502908b60b8597f851ae699050dd6783fb45c8c7395e92951490faf0633d83f50d61051ec9f19f11afd847e6c6c7a0a36a02c145a3b0120cdbb3ab94f16b9228e4b82eb9b27fda1d389862d645a21fbf5770439b9d7603eb49bc9c42c9d2abe2ea0666cc74e5dc06bbcbb20f0bf65ee9d51e154127980c4509d47197147eb485453496bc5e5b12f2f884b23ff4739497f3f0019fd2c0ff112b96aff86fde5a93f3be4197681f686c0f8acfa5896a7147429ed2feceddcc188294d5dc83485f2f4a3861aed2f109af95d7adb2fb52730d3732937717a48673fbd2480ce4726c7283c6916130972e0fd21a3a5ddb45c46c238e298b500a77df4d490e258dfa7f0f77a2936ef85af4ea1b368c17e080ab1a50e43b707acb434bc66555eb57e0e20dbe991863e6884da5f6c1998dc1e68d8f953c6742a3e72255b588d2306107b299398ee20992f0fc82b286b897067e7e87a8f1c592311f1fab0585e95cb4b7f62c33f631eda269a27a6803f10aaef15ed43234c612357c6c7fcf25a8df7d1e4f93125b8448ef4bd749f6ec2051c10d9023bb88505368c9cc8251a69019aaca268af4daa203a7f45a6138a6edf23344329950443ed233140417943634821c307fff42a4009164444f7a1fcc867dee2df662e91420d00f315dab1f7c9d179a294831ce8069c99e2185e667ae386e86027da4657954a817373e759b108b601970482fcc47001f80f4d8eda8cdce0df021495f32446ea57e01cdf6ddfe798b6925968192678dc1982b9fca2a61c6656a8c3e389a1feb8bdbada305f5488074094d9ff5d3611d8e3ab5201772d350b90069b33cec043a55ed219543ef61f79b964fc2d3aa4cefe38e8927beb743262c40821009c3c311d59081813bbdb2f657737876ffbd4fb3b89f1f9bc0940328812bc501f3e08117431cba3a9454189eca227804c45d2a19869ef52c620119d31a0ac536194834d5e23afb780b5c64306760e3ce4f8baeaeeaac0b158f67c182a76a37b37a6f280044b036df2a0bdafd0f28b22a207c400e184c67de8cf0e982239576af77b87c0fd51fa40fe994b31e17bbbfc7df505b5d686192434866b4f21ab300095e92a622c2123ed0a8689bfdab2d4ca979650b1bb56f1a1bd2f8f8765528f742e30beb375afb453f48d133b27f2f7dae62d6723e493e0e54ddf8bfbc55f1a116aeece8b274e2ba1732fe902baa91d9aa5b9546a588a785025020cacb5660e99351d30c3391c0e605a34eba2a1a83cd0e2eae51d2a6b2177c39520929b13cdbd15b3e1bbaab41d40b95cb2e0d1a9c2920252af0fb066d6284bfd324c9d11b2b2f5ad9ac22ffd7d2f502195d67b398a1c24557956a1f318689d4dff5d22cc6af22f5e0ace62f8ff4de75cb2b6ffb104dd086164527fa29aaf0c81f0c32d69de19b85f3da35990691c50efb7036929529028c3a1bfaaceb757209032af9a9475ef3c52d485cb656c42f7e217ab5de559668a5eec3b862ea95879c28c6942e4b696b8005e078e26aecdf9bcc89a5d1dcd773159400e5cf723ce5300d8bcd9af868405deedd83e8852c999073522b3980958cdf81269b2c889d09cff8d89aa9a7664932774ea51d3decf3c3c87d51efd55c3ca199a0d00db574d87fb73ec5254d9028763896dbff325642003727536de11be637b26be2b76d7b477a0006595778b80bb99eeff1923fda847ed461b68db3a80e356f9973c41bf61aaa8fa9e8bc04d5fc4456e2c6f581aa6eccfaae3687e53a35633ad09b354c28b2a1dd569fba2f81c247dfd0e2e90b3e7abede897f6aafed3bddbac86550c2dbe348126f23294d7a50289c6d5e4775d20de0f7ddb6ac5941607a53d19dd862ddeada460c49ee0821c8e97d3f1997aae3af13c38bd788709cc390e84af087047d62056c769409fffe08be4c23404db7b64b5570e8db416fc383506b2b58da3312533a31ad8cbe763ad1296dc9235e21d185d0573cb88f906563396f7cdd89e1744e871ae3ddc638236e5cec335f27a98020bda64425c11090026d5cdca353c4819c838aff4bb6cbacfc9c903a4ee7e55170b390b03a5c753aa7dfa7fb48e0ef9a7727e61b75fadcea39efa409d43c4498e06a76a6d9475db995a9d82093e9c323599e200764204098e35139a0716961ec8714df3de7c7f34bf9fa07a36ff7df065666edc3f249b994a8389b52ac4f9ba8ccc3d50357d65f905c74f774414e39318b4e8f08fdfcba5fa923dc47c467f26b1997387805a3700ab2e5cf937fe8c9139a26bbc062b65aa1887656fbba240898a192cb90624457a4ecb51895a395902335314d8adaea02a40bf142bda98319d7355f6d35ece2742828757e266898c359bcaba037945fd4d44a6b9b3168bf5292285fa0c378e923c7615b8d81575e28b3e9fc3050ab043c4572b7b9cf8262be7942cbb68b5104ea96c0b59afaa92a7cb28d5ccc8d69bbfd2d12cb5b6181315fffc6c954501df9af0b6e84b67574cebada5b06085f59b2d765ff91f8897da7b9da88b1a7cc9aa17384fecaa4eb26c8d935c749d6672841edecc30c9b3809ff2e870eeba52c2b9367c069558cec5a643fd1ee0817fd596e5b649f9ccb38650111c3c621e7902c3d9b6393f33e18f2b9d63d9a78bbaac988b493179f69a4071643134db7288d24881577636dbda5849b221046339eaefd7ea3e418bbb96b724c923dbeaa5eaaba3fc3e66eb1dfdc1fd81a6240f1807b49dea2e3a68157d0595aabcd1c6645e682d1b9013000d89c5465f051d577b937c0a386c51c442bec1ac8ba91c523c530982a16fcce159ed6954c0e7e8b91f73ef74893ddfd41ff2b82c5501df4dd1bee06be2e6f7a942d0fe775ce8d7021369e98b6ff285690d1cbe160174857faae7707fee6d64f31e9e1daa962a975a3599ac5060bc2aa5c8a60781a47adb5239a9908d2b112d465627ae16463fddbab36284941426f7a6d5053270e8b2ba2038d138ad337e7fba73b1be7554f3cb137bb739a7b2d134e02505e792d336640ce4d1cc75ba57cc46ad99a42a2071a5ce0bd59af065f3a59756a11f943284319d242db30ac5bde5b691ce0f348fed0384486ed9e94ca91aa40ef51d7bf1270ff7db9ecb8bb1f7cd9fe6d6c323f5d9c45367af613805d6bec4831d3e1788ada038f3de1eb72e8ac868cfdcf4b20e63edf867b6f8f9f0c3db58f85a5c9eff2347a5837bfdb601d25b7302c2ed28aab7d8d776a057b4eef2268affaa6b9bfdc770d58347dda326e833150cac31a850ea0df2bf19c0b968a57a5c2e2093d3c625ce487b18804796ac727b4f85c0c839bf658a934caf39f22c04a991bd67575fae4d520fb429b81a8d4bf3e35db3de77b4e6d38485be6dcc362045ddb69a31cabd1adbeb97e2f5599f32b7859b46419327f8d3848cbe888b8e76c07aaf1f802572a811811069c1d1f5053761772138c3fe243b9d1cf75774a1dbe4b1af2c32c24bb12bfc816d0819a7a0ae1cf32c84b25d3606a24cc6f51047711d6c6c4e2b299924793d3de69c06ae7db1472264bf1e83337b59c5ee3ae208a300213118bec2283abe6ae032193cb6e60a675135d11e9e9e8105cd399b67891f56b305b609b1aa505787e1e012593cb27c8e2d3b583555cc3e3e5ae7b2d0fea3bfbf474da135ed3fcbd7e3b74a5911e3155cdd4521b11fbab832f24c31f4897604d1f03fc9bad2dcc31635c1d423b6cf3819c9815aa1bb59c2722a2fe8df8be529ec106597acc94078c7af48291d41df675f733b269e48130dcd545e3c7bc293493ad4b6d6f68317025ff6d89b8907cf94f35d0ed230ed83fcddc60ef5e6fc78988e5f542934deed8edcda2bdd4ef3baf56bd2c2db43f368d76cefadcda2d29fc454afd68d150fb1aabda656f7533ec0258da1953bc949c818de24de4991306a839f6af397da84b1a721cfa9b2dee88f27822fdeea62311f9b5d348ce86b6b7fe9cf92971b81f14da8b599aa8888aecf6f7ba50bb50d71c1f54720ed78e7cbb362575df13a6ae53a1382ef2eceb2457fca36d226cf38b4c5b0d4875600114354c21631aa5a386462f03e6a10d2f3beeea09bc92cd2bf8b04dca6c887443b4699127b974ad028ff0ff9543bd26f58339bf9ada5832356c5fdb4b360618814f43cfb4ee5d91fca398a0441f4fc610b7a3324cc43c32b4daf24aa5bbe06c4689cff55e5f99b7daa64a14bbd8d2b67c2ffdf375659cb8aaef05712d3ebfa42a19c25c7d71c0ff8c93544885f4b899b316fb6fed32ea626f33baecb8697bc3f63bf09368e4bd88285dcb9860e2e5517038b529a2602c2fc25835742f06a531f2f8d3c3b32b50c70848046589d5323e21b528a33c517b7a58de2131ce24fe1e3f4c0b9e01478cec8cd51bb476cceb439888b3d581c6844f7a1d292da90bfeb470bad9dd5618599cab1a6fe9b56152a9c1419a3a7dd00a058bb880ce3d224e19c56ca2580cd5f3f3d6872389d8c31ac06b578763b377622c971d5a6428ea4e40adb8729ec2cf69e0eabd9f0ca63eec5f693d0423dfa4f5cf417a70c34e9f908f8ce0762af9831fc51f090ec70314e53099bc0245fbd6c101ab0f80f211735b50daee81232b7e4c723b80ded944ff16c69b1755d79aced9b9294ecbe6587629f20ec888ac93757d6b7a934239d4a1038842353502d273e004f3819650862e291d07f326c5fbae107eeb0bb3c06a44256f0161be7031e292820823a977ab81bd94c62219ba338abaa737196b5743cc688eed30714996b43c34080cd3278a1efde9c43fc3251aee024d1011e824ff7fad6d12c8b1b6d0603f9bb7f463ad37c533fe2d8aa9805221c3bfbdf070d52b3c493428fb47ff62b19127648eb1e172dd5d55c071f8410d80ae15888687ee9d0384a3f4d4df2edb313bf672899347ff97af3833ebfb8f8369c64ef4657a33116c1ce1e096884e89b0dcdfb99ce83797700ea94e5ea68008b2e2cb0f6fd719c143bf118e99382d94ce24d77b60111e474695211fc30eead1e02e1544bef34debf094c3726046b8aef55a97227073c44368142aef27efc2da82aaf06c4f63476e78b328cbcaeee3eff0d7a20fcff6b08de58cb9f0a4251381e6a9c82a7c83edf5cca821668bd1238fd489911efe8991f325b468c0b53374c1a55462abc2f24b6804f41719f8727387d671afb2889bb8455377742c0cbf21327f25e462ef145784558ca8e4d0baee623825eb6911a4a9cc617490e932139a1f206c2c6fd98fc0e44b581e14d674fab0684f14cf0f9ab554977d891fc29ece6caccd779f5ecedbd874b5bce1e3d2fce8102b6aa5817ca7604818b8f77a71e41803c0575a318192c5e3f4d969d1e6a5bbda0d7aa7cbcb8055230143975ac3848cf810f9db571b690051d9c9f67f2ac81456d94dd3e60c46b1c9a6312f986ebd10025dba86f1539356421c98ef5ef9c04f8f89ea9dc047db9ea7aa4e0c8d6f7111189a1240f4a318b2a0eb92f32713716093ab1ea8658bf078f262dad0b869590de78fc71319cc088f5a66a5ecbd1dc5f255e0a0ce2768fe0d775b0d426f239455c15874971c50c03237228222e91ecec22b5f7eaf717352b768d26a534006c7fe25e45fc8ccf73cd7caa79d9821046aaf516fd9fe62c52b95b23ae359d6a0cea51b77a35d1b4b823c90f2f840b81d7c49c7f0f744a27ce78164bac690d923ffe90f28a1c8901b0e5288f4bbcd769eb5e119d3a1df09393d8eb5ac875a63e6f4be6664ca5d09fc5cea6410a02b3d20ee569b9dcf60f7a18b18be204de7aee3f4f76669b65f9bc37eaa2fa12aef3a1d0c27e6e9a8a40ddc34d17b56552b0038ddaebbcc88e6e10cbba79272b73e22787d847ee3d2382b190b3eea48284f2da6a56854f3a7ddadb745656444530319f23f72d6cd0eef2f08cd8efa1e9a03d2157019089cc3914b650324dd4b666a3cb67928f97d28b5ed5eb2d4fdb79d63f70e296a01552b8920ff5db6e7b12e0242cea143a8dd340c4a5508efa427e74de63fb8e1a40175a06230294a54120bfb20ab3880c36a20b92629debe11335e60edfbc0d3535973a50ee696da4fff9457b5a110056ab68d88219cc17395d760ff1eb7f23629687cea11d53b3c677b8b15fe68267e62e703409c728b03a0c0d5126f8ee9c48f0e008ccff323f588818d99ee9c098afd356d16c7f63b1f15d30e6323be9e055b7f6e62c7fdf652ed7ca4e7ca3ed53bd46fe54d9974e736b3a47bbf3c296928dfc16eda29f12c7188cc9e72ad32b8b37a77d8c8bcbdb25e79002c595ad58dcc5d31652d91925221ae483a8c24bf0d107dc170b472a6df26016322fb9b6c601b00ff49b4ede85de7dbb71ec0cc120639c3d955a26088e9b89182760a33bdf3d580adcf4ef0bd127c3156a8a36cbbde48c6dabaab06c2b1cb49c34778a5395a389b94d918e3207787fc5582e45d2dab92d8f7bc775833bc401ec07f0f417776d44d5e42e8ede65785e05911a0fe42ad891ff5113f94c07b7c93c864c8e0b05bc6028df24c3924dd0590fcad4d7db63d0bc5af0627fcd4aecb075efc0bf1433ee4b8f3460d40b62ebcc049afc590a744cd5391cd8d87dbcb671db83d119333f4cb5b38c758e4bc280d0040452f951c42f3281e1d22fbc67dec524114bedaa405f092582c2b8b182010525823df157be60b636b1ee0178a3050211732b665614d067222b79995f1b63311f8fa7003103bf9bca1ab4dbaa0adb1068db281f559297a9fbad6040d32c1f858fcc5a5b48d5a85517ede8fd487c88cbdab8cf5491e3bc4b7171f683c0b39756236e1d05784b9a55ad5ee33273e1b2880a9d5473464b8c9ee868f423e6f43919debf6dda9effeae9d0961c57dcad24da078d379be884ba5322529d13b954430fe52b9399fa96cfb5b96848bfdb68ba1eb39df014e07847b5d69d595377804b8e8196d272af3d7c54d894208c68e3e254dc317dfdb02d73c56989c64c257e3a765df434d71f0313b63033c12bc633cbfdc21e480b7c12f775a502c71e7351e32c8bb86819828a004c6b938a4d94a3bd31512462ccd2c10990dfead16f15a2309c0b49022b50925ccdb77e5bbc5dd72403e88fcc8135441485468ed5365d0f6d2e2469983a661d87dd898e2e1c8b8c8561f29764099e813ae7424cf35bee6a6f415e34e3852e6af47c59022356cfd0c9512d193d89fc030db6e1e17aaefb1d0a7e570414933aed799bf63981332d146420c0e3b346256f9a402167f74c186348cc2c41c9b42b79aa9992b36bae0dc1034bea3b8e35e48789e621f1d4061825a27532cb312fe60db38f4953b76c8cd05542505f3ae7fd8e10e26221a075602470483ead73fbbee1ba45f64d44148d43cb6d4e16c030c6ca407a659b84a2b2b3f65bdb109998108177910ed06e69426d65219941730190e09fc93d4a9d5bf639db9cd2bed915f3ce8173a9af2fb6f7d97b4a1b1f55816ec637c42f7b60221d6b549347397168d78c42030675e670d95982ead7f8d4c25d9d4f6cafab4c140f2caca599ba835b59142b005689724dfb0ff6ae6792ba52ccb979ff568ccd4a1eb11cdf028360370bf33ac7f419f836013ce64f5ccf4dff25be5e28aa00f004b38c735009185fe4c1f0ca3d5acaa2a4387bc1e85dcc9531d48630280586125ef14533786c39684cd30dbffeaf7ef7991d927a9f1bff831a1f424c04215ab863dfe7d795fa07e195657d4946083c52a735a0d4913c0bffa0fe53b3942b363a8ba39b563227b91926c5b67be1c461044425f17d2a3de9f0f2c45d851b5e3658e574d5fbbea9d5d6b90e9e8a0ae4a02be87c2b9858b4a7f4d5d63f95489a8164d3a844008a6c475cf9911cb423f2c296f485f5e09fbec9bd8f030aea955d9db28d06eef704d9f0b23d3c76585999ecc1cc498a14598df4d848ac3e5bf2ba3e2bd4e5d59019e535a14f0634f3e30e59cc869d29e402cf19980d1d6cf961c0436ea3ee9568d4cf9e07f9c2145f3ef5bb1954df64c45302494372d46cd7e57512574896e50a1661d6db19ca2a3fa17eed6deddf1eae9503092845a96f0f8d7b1faa6c289f2328e40f5cb5f696f024d9f2e58ee347cc77dfe2dafbc6d0ed6b29f01601f9ff20302584362745fed3f95051c56713455f4642e18d490135ef7346bdd459356e3e8f04b6f8a8650cbc9f4c7839360ebb7934992baa595f8a95230ba2f24151a19666a7729f66d6cd8deee265a116855800cfdb1aaae4c2e101c06028fa5eb999e545b2dd5d959c74d1b477081e9def4e0b86245ec7fb5ea5237370fcde531483981693173ac57d9a6defb8ef82e7b4d2f214ebd03754607b95286818d9678db7d772d3c5c0a49fe096499775935f769c013bcbcd8f7f1827e4d014b2cb085d0f4ea3d7acb44dcf6404fb3baa7d98f55d52b5f98686e3affd4cb9936f4e8b9e54e70bc0d3968426641b088f96ea6dca2979938dc483cb242741a4f5ca56c909ea978978884c32c5645bf946831ed03e5253d7ec6f981c8b7bac34dad4b8e02c1e3c08174ef3913b273d31452262fb638b0665fc908846eec5d78d36d656e56d901a7b3cee7e9e3c918565a94486fadb7a4cd510d03e4f411ab2d18b459cf04b6a217e787a2f203d16eb41520b547a605ec9070ea37157b7f5793f7ed3e92efea8305a3038662f861f691a57c59dce9c435521f714bb76e2ee1429857f195174e169dd79b649825f45ebddb41f204892055be93e398c0e33d7f4ad88779f25d7b22a6001b87a1d26dffa9979c59485a45ad14203765a2016ea2f5d8e4c2caa1527dc57f44875e058ede6f0ccf2583a5e4ad7f1998e1d05ca705f59d2aa22eb975cc90a44bfa78db7f4b9486b1975329b35f50fde5fd58d7724e4856e82bc758cb5aa6e458eb73bb4e061d0c2ad9a4cfea006f08300b6e8e7d3d8b8f025b47fb00fd3a1a0826611869f8af3fb98bf3f7c6b192cc402e196e1b6f88462f07db3e0206d03bec50058a257dc185eea625b70931126f0fa2743fc2ab33827b2b0efc854b03e408d874aa3b3a1389efa60fce78a85f254bca1c698bc86de8c77ce68e803aab2c54a77381458805e2f70a01615c898133d915c124b517348644502968aefbb0d43fb52145466b7dd2d323f2ab02791a294eb1fe9f23691dd7fcd107020ea85a64275dbede1f1b61be63322d083b4dd2597409ef59d99a46f2498babc0648df707e2898cf11b1ced461fd68c99dc183296cc1d141282b910a55c395d1cb582202538b0211964e763b58fcba9e23f4845fa06a38cc8edb0522eb7f33fb0cf4cfe426699a9b38b23daafd2fa9150c1cd913f8af5b9a28b8ce03eb3a2da6dbf1248ba9cfde8d3046d210918d6e287425e3960f2dbc102f3478adefbc5e94258e2ebc580ee08e6a7ae13db280861dea8bd55818e1996c35f2ff4d60f8b33f4b34493f9aa117529310ac100db7267f55c1be20aded06b562cd0ea4fc33358cda9e275d726ab5661c15042749f7dc7dacb7ec38b1cb6cc715e79145bbdccd80a5b392c3bf57776045b0b320af5b3f46ee643c288b011ac1d194c2247fa33ce90ab5e74938b588fc468130e83f2b39510a2a7869db992292b29dce2b4496f0a96c0d51a7152cb5b7c34bb03f1c26cd4b67964ea668bf1eb917b60d892ce529e68867379c52637e8726f86e8fe21ad07b5e85e31862b623dc0a27334568177fd552c533e47d805f469ad7261bbe001905bef61fbacd5d653a653645b02ad813a0ea4da6cd8ab8e6b1ce6cf7a2966e4018b94eb000a77126f28e91551d271b7158f26cfca74dad044a9f6a832fe2c39f7176009ed9e338bb6aee270b1a142e7d7c0ad792b2410fe48e61ebcb7a0401e228fe044e6ffe11c01bd5f631685679e337478db4aa8eed494bd81035fb9c3097b8225a098bd8a8bf0d7a8710d5c7cafa65d8bf22a2288cbd987a8cd91596b38a40945a2d242eed50a80a6d6fe88f00816002b0e25b7e809aaccff65360d026cdc88d873073fff57bbb66834a86586db9d35663321528a3459f1554d55f4e4f91a237b0b48cf64bd65549fd40c7dd810d02a8991a5f9df063c266002fd5985292f75506a8577f7c3f4712179fd0dcf11db2da706b0d7cabd5051375aa61be9e2fc587ce82da647ce8e4b69bc99db2cdd52a819b48bfc26529accd6689b9a2aad3079a89177ec17465a4d15026ddb036e96f7f9a2141a3d83b88d9df922dff6fc046f8191e94dddce7b6e67f708e33b720b9da5781bf152b186b3d297720b0fd3f2fc38b0f6094448b899c5a33f110f51aa6c423bdbee1988cb851a27a93ac9aa67ba03dfba0aaaa064a63a095f518f8194f53726b3843a7943aa040c546e8fb8da2d9ad42db4a3778d4ff25410012031af5dae8e9618d10690b17ee4403b5e78dbe3bbb95c27749080aac29fbc73f8397c4e16d8e408f1ddd5255ed09d7c478cf38aa6e57c2d991422d99d3e99c8a369ab5ea3789b221cc113f4da49aa72f2ea757da1aae9e63fa6b71720a3bd4a81171e99cc0d1415cc427c60108e7a58165e956b75325f0aca4213d107cce45c450b575fcd80c0e2ee4f5cb57f958faa02515c09ef6a04f951f54717b545bcc477b390ea233b970a628a58838c9c450e18ef5fbd6002162c1d5952bab1bae203f3abf31b126b212a7c730b99ff3b5b084c92484e1e7444892eec5e392314f84e6894a72122585d2486664ecf83111377a9818976012517fbb63198f65b2a619dda36b8b39ec7e66d3c63b76629f8b112ccffe116e68fe6429ba4a6684b05a13e21fe0851147117fb4ea815fae5d05b0d67a9817930823f5af9794c8008ad695c68bcd0f1d8821171e11df7f810db9049bf23eab84268c1e19e33c71b4c8ac6d2aec1571a8036e6a60e908034e49ccd842f1be8e606aac90b8d02e12cf75602d24842f21569754a3862b92248035c0f42a3913d0169177e297bf9db298a9e2ad05d0d7167318d8be75d1df68ef1253f361e7dd71adc640881550fa17caace526a699382293bf4b5d0f3b2c7e59568c57634b6a861d5b7145cb8f1dce6a3d7f8f7bb3cbe2e2e1e20fc0e5f20b1bc1ac8b0903684d24c43e54d78a7f43ce25c2dbdf60f542e7660cbb2093fd17d9674d53d70a7907d3ef48c881a03fc6c7a7561da94a89a2fc2e64c1336c3ce193738fd0024402f372e2e23b959e51782a0fcfb525e7df5b384b730ca5a996432178a9a9592f46f729f97024ba44ff6372f7218c6f576cdd374c8087d2c670c5c9359507fb5f36ccb9bf664229e4646bd256b11bf4dd695a00d239a6bd95471e76a59fab8197627792f1deed69e8459772492b8d52c6b17a30f19da0683676a0e4088943661dcbf77ece5f7362dfc59f4f2375e30b01a7c3afb88adc1bdabf5d21e495bacc21d23bd6840b1648a2abdbcf9730a5cc6b5d4f59a329c2b11307e61f00ba63385868733bb4d622e293adf5fc8d489d9b41f13bf771bea797acff6e606863e3488c65286038d675b2ff5efea90a02f3090c4b2d36003c9ffeacb9392937a364fbe4f4307e017b687f8879bf4a7a56fd1c65f8914e9e893bac5382dea31137ee6ab04f712f8eefacf9213198b099bb19a95127a2be89d4603643594af5bc8bc42e83629657456a7003f10899dd210004d93ca0463fa6ba3aa94f76454f2d92e47a5f541be81427c32f77fcdecc5f074e425f8ebd0fdc8b84114a61f61b957891922ac1015d1d366bfe3f0452bc88e855308956aa2941bb9141a039243d9b926223510cc5017e4bf42e34f19b6664990c8cb7ab4eda78f566acfe6dbaf5e09fe4ec760b1308ea240e8098bf73d4bba4d4e5209bb69e0fa14eece89981eb798269257f4dc9773403ea51c047dc8cc76074a551d70d22ed143c8a99ff6f93a4cea2a751736ed86adfe1716d3a1ae5d60b614de56018d462992ca6441c9ba9d72a866483b88a08e6438b1a7d8de9f18856aaecfafc5541dd16e44f8a7db8d7e2d0b2d0974232fd2470f7cafa0f23c3d909e555a62d7566f72a686d2b61119dd6951d986479e33a08d2051c7147090acca589e871f94273bc7f1d951561f9f9d68af98a0cb9225c9bc6f81b9fe80866dab3b7fb1957d6a45de65b04b9ee00f06d707c4cd14716f23b9460e045b868828f8e7ac094734da936ff82588d09c8a46777f7196f4c06906e05a53597b808cad75528612b0869bf1408a784623be76eb58adc81a086d9cd034c9a020f9683b6e28efc623bece6b6d9a29fcb45bc89e6aa1697a8a16f15f619dbba2f477e84c0025d42de8951748dbca7e34773898a89ce47c1babbf85999f2ec99c233812da9ef0354be1a9c59f52bc942827ac35dd3c0db207577aa3d6f488636f2f790f34a671dfafe220bb02ac986fbad3e7c2716ad50ce1fce2767dcb44e3154face4be197087cc928c32800a7e23c87935526a2bcf26b51b5a2021166f05ccef76ba6b1fa625e9ecefc9984e435d208fa2acbee6fcf450caf2d849cb15ec512b8554b18160a9bec01578bba04c8fe07d7a53a0e8f9775133b1562a62e4f3d5582ca04c2dafb367333766c2ea6f34a7209146a0e1b2180e13190acd59d0f0e37cdd84a6b625378f3bf2e7c95ce9da20495d59fa65aeb38f3b0c0f3db0d5a359d1676077d22b1ffe24900b09e85fe9da3ce3207b6de5946513f9ea0f6ec37bc8460bd923dadd60eb0d9c7c08c7f94ff3326fc44cd32be64f1259727e1a18f3dcfe5aef594d7d17bc6cc9b2b1f2809730d71f3b76d9285265477f6fec42ee1c5cceef79a84d718e33862aa735a997004acc40c0ffa3dfdd8fd3b6e457f7f83208c3ea742620d75a6df8b689b7f0fca4ab2675887eb8c73afb6db103aa4f9036459a47cfc2b0a2e65d312231fd0de1ccceedb1014185751355dc45344de2cdf6a647ff9f800c4f0f00f5013f240c4aea529e082874dad2148e817ec4bc4eb90daa6ffaecb6e51ebac8db4432803b88ec5faa41b9616be7b520caf71bfcb484a6b9edd36d6612ed7f73d0f8e152aebadd7ef5465156503100c1c08e8c0438d91e4c506bf4da0c8dd2bd93611a06bc63fc01575eb9d5858ddabe7a5f1a428433d5505b47651972bb3d30365f56ea800dc3491e34f4826bb09852a713d5284550b66185c8690e879ea5a7a324cf4359fe8fb08ab5d088452ed18109819cc5ada85b2b772b460dafd6a4ea153e5c9c6afddeaa50bb0d5fbc13bc48f4976aeef0fecc46905b7df1f61e6c399be7dde51a2747b61884587f5c0e9c3ad3a17c5fc7fa365064952c21887dc57098b32bf696d1ae05fffeaffc1425f4d9a4cff5a3f0d5285e39d948c13a041d0b4581c14a4a81677516e6f6f6ba008c7f7718d521ab182b1d882d28a80021b1042ec3a4cf6ced2336e1a8be9385c484c5f26758023e66c1bb82b100fe757e4c6ab1153c9a7114fac9d826957c91760012d01c27f973592983897f470656742b24822513269660e362e9395fe25ff81d0b5dd7dd1d15716871b25f19400708ef602ae6c4a658dc6c6ef4108aac528f4b74fc97d524760c7b694a4a17e70c7dbfde8318866ffc76891e4e5a1dca32fd3133a12d4045ec77b6964eba60e1917500333e210a460859b80b3f3ef891ad28ba0058f4f3035009b070f1cf9552e3a2381b5d2fbcb3c848f1a08429c3bed155ef98bce380eb7d4c3b651a430b5ff5050fd4b9b2860dca1e09decd6760da94eebf1280ed68f3d73f518ee3259a25dcbf7f6d7d22a3f7624a8021408ee5db4cdbde66eaab95f9c1a0f2011b77b5995372aa15a9132ca02766ed16f4b56752376b47135360653a2548573ac584afb23830dc5d909f6bc874dc759b778624b6f5cc2537a841e924f196fccc971e59580dfeb68f5a1a20fae89b06664910d26008172679ec1a2f4294f264277c98649078e29842831931f3e6db3e855f771f3d5be06b88b439b02785519a50129d36b3c386a4835aca8e6716f13e51a16db074b868b40ea9ac3f96bdd7c5be2dd00eda5d670d0d839835b6e231cd436b7d1d43505165780ad211f837836e285241b24b5694893b75249013faea82451024c39b38e5890d2736b76977e830d93dae0168e7010babfd89b1f8d063f36252bc697fe6f10075e7c1245b00ff017a5c952576e86822a6baf6215c1df3fe88ec3810b6b82f5de14339239fddfd4e6d51183ac458b7addd9e9037565a23c4db08af63206d3a3ad5c809c07019488cd773aea4bada10b43073ac355848e7e077c9b0adfba91908a31969998f4769052d4ea77de0325f91a65454ac0a69def5f1c377434276598f8a6bc31f15fa2100a61e7db751cb72d31f2f1ed23c84a99db47edfbfc9beb2af9c087a260e4e84844a58f7edd234b36aac4a52d20b254f4a71f62f92dfd2431b5ccdf15d355e205c5f221d07829e5f10e8bb61498e1ab0ba341eb8abebe6581068abf19064cb401aded6f70f1e605f0438efac69ddf70bfa535838561092c4535c2951bf733c373f4a8325ff0374a28447249a824a93951b53fe1c7dd552c8ed77e0f66f46d8b8c8a56c3b4749f711a0aaeefbe3ec8917241bdd88f3ac078d6b8afe26d4b8cd4ac17f87f862d0ac104721b6c75779b8a8d350b52f8184752ba71dc42196f7cdbea017fe47c5ce7a8bbb8e361cac81c4704162ba00c0a9c34458d008126d8e8cbf8f58b213d7feea99c25bfe9707d0927c7bed16a114fbfe2aef5bb44bd022436de0ffb3e6eca3aaae39a4f3ff018fd0a29c7664b64bc095997cce45da6361300a4e9ac95f5e990c58f142ca35bb546a780a003701a68cdefda7174c5ff81d14b7d523ee7329e18790ef88917e6af41655cdfb91475d3b904ff625f1403807b33f3afed280cb89359f7b2f2719202fca6734396c0fec6e4779e3776b285c9858f784a2562f3a4e548895debf24b3f940db37e63529a2fa0451903289d080244ea515ea11262606c50dbb7361d71513790a4b784b0a5045aa2007862c2478f06881130cce8bf1d7903f1c0f69048a1337c5905485f7120382be5865caac2f517a4051740c5a04215e9ca1cf06f36ff281a4a35ba9ff8b9bb835145fed5006aedd30f6687d7f6834fdc16510bc84a93d236f6411f6c50b31dbfedab0b262ab17ef667e0c87d2d762e0ad84ece3abcbe22b8e80f59b1c7d8461c813874bfe60dd91f9e3a9c6d3a53a9d8d62c8253298776d91a2c53d6f18e121cffdb77db8bb2ba74e036188402f916d1fcca104cf796400c47ece75fd29d2d7c6a62f239d39499b778c394f75b9b2afa292f2528efc30bfd02d2550e574a4a35285b0a97d4a76db9d135b53a0eb0865588503b6867c77c976879ecdfdfc9b8a0dba82918fa3cf577f12a9fec34ba3b593eaa72ee084b2024e6f9e62814156f422392af25af8d204fbec496e896950695ada7b882a992b909b4565788832082c775e42f4f8724f5bad4ab0f6e2a06170951ceae70363d05e36ee55ea536b26e45fae2b55a2859cda9c57969d7e9ec65bd16c70440f7e989c7b1fcb8a677b8daeecc44ee78defea82f6bdfa9d0810e9e08e45d3eb3a5c733d53eb769d74486f83bfb5550f1f0f6557da6a97e53d2a945b239534fa56fc6a7744b4f35a14d32140755ee34864db9ce437707a98ceee3e4829fe4ae5fb6cc5479a00226e52e86a249e6dfe9ee51e77b4ba95618c105c43ca808549f5c05574ea97dd2a7a078a0b5446209c34c3cd5cdac66a39cc81f0e728e0cf61c4c2000f65bdc4829303181d580ef874be2391fc6a85eba8161b2ca44af4502dc2799ee8ff1b3515c20884499bd3eb9307f3e14ffd000be35e72f9b340110eb4b3e0bd91c2ba72d582951a07eee8d4de6df04ce83152b40f49ad28e1bb72d6392feb3239fd0a1e4d457faac705df1a2d600dbac227dc147eb3436665920c1375214ce5edc46c9565ef5c157af8dcdf5fe61bd1ff0399417a2a9257ea3feb8f54498c41b86ec3529559c192d4c4882f551acdd5e970768910703cc7f86024e103ba7046df171ab7cecf45309dc87ff27da9ff94a119c20641fc5f0b9b365745705cb168721c58f6099364588d495fa854535e3da531a641267a960f9229bd272a6bffc65ea105150858236a7cee5c2af1704e3d25ecb5f55947c8ac3f41caa321f65b68eb0e202af9c78dab34446ff87b682e80c4048a4c73f6ce3854af5dac6661be7e758dfe5604fdff20b53b06d3513ae4a4f2356d1fd2cde777604282b8c7e30ae8aa8e46274c0b4113aaa753a33ef6bb0788c018120b48f659a8f3be17e40959674e44f04aee756d4e95c023f4544396b9acec80983095962df659f74f09318a50c6265bdca9b4b16376a2457d8dda66be5c80b139e5170033b935dc26fd1030a0536f72a44bb4d477c2ce83838808032d0d4bbaa19be4b7b86de8eb38a82dc3b9d49de10ebc56926822a72c0f8130400a0f9dab54a947132c28f802406f63294664f558c08eefc552bdf62a3bc04762f94dcba214d93e8ac71f8f7c6beb638cecf9fee10040c864c3cc67ae1ea557da1bf2aee64cfafcd9c840fce26b9c2f80df6f02446ce09c481dd70a6413a4fc54ba3d2414148368f758212f301421a17978f590789acb1ccafd33d23e5a76ea1891b88e5a97ba9dd18f2f419eb27de2945b04fc2fb22a6e2baa6d19d0601165b5d95b51c8000a68e43d92ea0783f9f3abdd62de651770aad2cfa91a3029e3c7006cfb55a72a02cd9a650109d9dc2627bda69b8f05a8ad5c5421837676963ffd66909989e9b15c83818ece208ffebba7a1ca97af9e38a3054e9aa4b0c29fe00a885dac5da539bf73495c70d6c998fced13d2b5a22943a79a107406b1d4abd98326bb9c46a2f14f3d9a132873eb7a9649066ecd0edcf917031b15e444359764126664f03df5b13ab2b4f6c2674903fe5f49cf0c5e0d30d79d6485619bee267df45983a140ad3d1e5be5a30cc3ec3489a782dc81422bcb6fb977315ec8d4e9557ae3bf1fd08f7ef9f1c6df42bee294c2ec72c06e2dbeade71b5c0622455eca4f8ce0db5772e5cb98e35475be311d31afce8c8a3ed67d4eed7b5130696d0cd34321aa36e82e568eb3d3cd15101ce3720d40dbdb0bb7756d04075a06d20064e79cc8e2d15913d6d2e2196662031fd19ee40a38da3091399991df94ecd7a37573f52295b1ceb1a19e593eca8955016a241748d2e344e6297628986837555ef653ab65a2b1179d4a16d0837123702d371f0ce904bd417ec8f94cba7d59fd1ce87822db802a8df1d3c96258c032243079abee317d3247e31c0cec4289e65f2ed2043d614aff56c9deb73fe5fa7b343d68f07337b16999e428412c21e734ccc889eae5e81aef09c7e6d9da84079579a904029368a65903166d9cdbba04a8dc838a4b69f8be43a18f8e4b0c44015c8d6e77fc1b020826bc4e7d90ab689bed87d9de18bc28b237e54cfc5eea689abd36ac02fba59a8d564b28a5aca0f6bab755ad98b8c2a76dad3f2946306ae64ef5412482ccdd96b124ad839caa9725a4bdbbc0d9b11cb60612dad9ee89d1e966b10cbb7b87d9b4b75925034cce852a730db73d6ca1f92c1d85a010722ccd50c9c4d0fdbf5fb7810377c48ea1c9262d9af86c2eebf801f119a06f08e1ca8e2c9e50a3989a5f78e3be22a0cf74961eca2b25fe047b4a6c83bd7643fd8e4eae46c18f31dc92e6b990d01225b77bf83194f58dbd131223ee74feaab7b1cd33aa9604ae7f42bc0fab9422f0b5f64e991c8d6a7bac1351b555e937ae89e9b911cbcd425551e296615dcf38ecff867ef0b7b05dbf73a0ebd63f1da88917ed179fdecc41da6efb7f695a7517030b21b6699a688cbd11bba0128cdc3ec8060c40c6b62b6533ad6fb2243a8c792311c6f17a1216f90a1c48c3d0e608bc5b58161b9a99b330237a44d758d07157b79438c29c658e15aec28e52d8ff181e972fe02e3ed7e49a40b124263e6953bd46047fa156879abd49babaa2aac99460987bc4ba138b702fc7a9de151d78b7f12e766557d1107601bdd15c957b6c9a8abb831ee4bd25be0159c0e39cc10cf2eba7acf96da11d52c0013fe761c86d5c0df110d0f2cebd686f1c1bc901e65eb21a929f10b6bbd6d412549e35eeceeba072118fbf9d304dbdb2df09cc3bf7c0767ac63ebfdbc5e09385ec3502b767b23f5b880a536799f140452c2f48e3d45511fce2fce20a35979d23d74f6c48045da6cdf05ffb09a1fe2712749240b26ef72b3bcdf799a3ecf9f150b1627a46d4af58d47c4ca7f44530dc78c2d6da9461d6c0846541c5fe4e7706755851920553d0696c424f4cd7f594801f9b14e149f67c9f2d24e08f42f2484375d34000b3bf0b04c4c774643f6bd66395f0404293230aec389b9ce2466bed84ff0063760d4268e7c868376b44f2608dc55c9e8ff675ab9e4e1696ec89e0659ca4d49b86adbd53e20670986344e688393905717f0dff960202d3e5a1345742cdc22c162ade95615cd6fc7651b07a36542ad5106c66ae0836688b4d382fec3351408bb43d05e42eceda10f3bde820d00266f780d3f4b510affe4c0bac456bd0d5153bc9009ce23245d15e5c362a1d141affb9e6d811dc52b3e1d5713c5cf66ef9a8aca896b78e77e4aeb4c5cc891c52a5d04595bf0cdd30e052f2d1ebb3ae89d1f612788721c2f4600f1bd79401defd63d0d3e6744b3e3ca38f9496003f92dc678e8b114100488e82f303e2288d40e445314ac704fb3436c2f7a0328805ff8d365b5bf6920fae83a9cf228c24564864f4556ba722508256d383a8a4cf998e09b03f0a0f3069d47645eac79eaaf0eced4993008ba357670cc28b0be2eb9c3bdaba7f676831dd7d0c5d0ad9a9dfa7c2b0d3c2aa07025712ef4fdd3e70315303bd2bfbc03393da62900a76c1326cdad0d454a54255ddbc271d8d222dd0bd4875595038d70fb5e788f4fa40f318fd6627d04415f30375a148dd6598ee24ef05e3896b3e5807dcaae0f9eeead3b2c528056c4d09778732d7b8eb111551ace9d321e12f40ebc0af826c4e3c4e2ee7f983a1d4cd66258a1d8b8683a15eea341291102846161714bcae71f34dde83305002eb9e57a4b4e56575d5db79d1aeba959553e1cb898d95f107764c2036d7088affcc07323ce032db992f84d15646b8e3a7f87dd06ea5b423490ccec5f6c9b5e665ced0d8ee591c7598fdc434ab99882d01f5d1da8e0db38ae7b061e3f527ceaa7a1b0679d5b004ce8d88eb01f55169eb61af8360630217437b393a34bc391b9eba4caa7544181aa4832733edaa444c573608a64fa09037cdb79802035478a991c67cbce67d38a659717acf7fca05abf2ca9168898eae298df4f806b5677cf5d35f7f4d1434734374ccd475935e1afdff90eacd613636a44a456f363db04223b9744b61fedb45a41da939a6d855854603736ba4205a0a68b122c9a1a5b31f171d3dea29d8cfb3c4a46a8bde52a9a8714c399c918440f058d2a2366a8cd3fc18dc667dc18741e2b0fa03d1d4d8d2b4cc66fe1fdd3c4fe8baa141d3e8a3abb86356522ee927fd4f8736c8b2cf97932010a7b30bcc6d750ff776394f362fc0c4a3f05e187b86fb520011cb90368d0ae3c8a4b5d8c9306653e28d6b3b208a7c5af19547802da6c4c58f6ad1d47c0f1b6adeba70655011a383bf87d8b907a281e143318feafd3ea20e29c4d1619e432387318615b67c9256891de7a8941b794461b535fde21a3aa2eac8c304437da702ccfe6d5d6782a6fecf4196c5fddda3fc172e162a876b3769a62bb385fc92887012c4155f05bc36e72806600079eccbe29039ce1b26e408d5ae8101831f928ca227e6ea72b8ea9f74b3f075ccb28e2ebfd3d75af286af346fa387bffe03c72943d6389a27fa53323e94d3e98645a71ec887163aa4a8d475af5422241fca402bb8c8d8994644d0b3f88471344faf3f80d0231ff3ca0c693a0e58820a0f050e32b9fd7b9ee8eb89db30877bb26ffa0e4fc68530907fdf8f26e71bde6f6eb1223136c97a249a9a1fd6d543bb2356da0817818bab1d478e7e8f2ba504f45259cff18d9b58ea8f171ac693e1642c1c3f397ae086f32b0fa07fffe4606661d8870b8c14098174eb52293efe5b5ad59fa1eeaf3aa764503ae074b787b3b41f41ee37f2e9cb42870fe568c78aa5a10a2c8a7bfe1ab20ba3bc2eaa271530e4bca6dc666720bacfb10474005e5b1e6e1ab113a64550a51b444887e2770ea1306b3af0ab0333ea2dbeedb0d0f4d829e53b8d6d32764b1c57d289116902374dbd8115196e31cc7f93448cdf81ed1ded3404e59dd316ce92c4f3744c98d526228ff999593930dcda9b18d51935a23080abf18b0634c0e8de0dd0a0a6b935adaee9f162e11795ff2222d794c14ddf0d1c3ce27c6eb5a0497cdc95b415581603178b2bc5650cc73569525f24d24465830f479ce291fef9da825df6e37e20a4cd6cde8ddfd9e182e7d9af522d043c69da848846b07a6a9fb162d9a57b0233bef014ffa13be826553db9639a7ef512135262c9eec923f47e4bbff4dd7d7c587631255316fecfd523c62326dff0c614006acf4c02bd2847111e04c1da4ecce792a8e3953da787dba66dcd76135be2f0c1fc28fcd7088434eb748c3c5e71b5460e05d2668c63476be7c238a9e796da955a2a6e0226f79de832a078432e536bda989eeed41fecdccdc88e207d539597b1c41270df8a042ee61f738a3b93291aec135815e932f76a267aba0d991283400e6b604efa03d9b0f77f12a3f6daddfe7d1452aae5a83876780786534223fd95bfb0a20a6275d074ff3513bc60d409e04d686df8cc87f26115c90eec1a4955ae1868783cba2a137fccb5e8758f5704fa498c9dedc27a15be79f125ef828ce645ae5b8a30494c3ecbe08ba395b2bbfdaf8d330b1f0a4ef1088d01779d78b779153ec655fcbb6c9ca763d2ff0b365d2c9493c4063faf7575c62852fe3977d7b9e02fd9c6507cfeed2f51bec35f1f1f0999aadaca6e7186010fc68fcf2be2c2b82e893aa31563dac12856126e9551e69b7de4c20e1619bbc5f732382c22ff8e83de9881c4172abd5dbdadaa34eeeb1bd8c6a300692a3a71b3763b20ea345f15c70954ba22543ec636e2c4f35218692b09d8a7ca811052abfda343f0293bdc7884e759e6aea97bf9f95d5d6ea8aa7d074ffcf58b15814c90297beba25dd2fc99d5a0d879fdfbe9bf24bb6831a705f6a52a734662c71bbee9ae7df6069fcfa69fc14919dec010cb642da4d96592f3fc7d1ad2aca1c3918ea428d9db405615857621704dee13b227983b6c38c90ca2450c474d0b4e32925f5315f3954830076b4c94f2547d94df91ef70c6dd2df7ce8c543fb980a579e2b8ae277c826965164d16841197ce4d180161c1ed54f89e42c65ac5576993504ce50d276d66c24f201b093aecb519730785ca5bbf8ca33cf114a7aac1ba3da14b77ee5f8ff3c85199e62103dcd70cea1d0a6ba2892d3cc25d5dc8bc7f7b773ba69f75a4727fc20cbe439d645f7e47a5e29267b3919fe4f917dbcec124d74e5757dbe7dcf2f54ce744c280608766dfce03184781910c51f46fa3cf84fad77fe778012e28af73d4e349af12ca18bbdbc272b8777bb0ec4dc7b86863f2931ffdbb1465588c145f20c76e0f5eaad3f4bad91402c6c6b87d359cb4222745d60f6f7407921837de48c78e69e5b1b49221ec02d3e2ea058bd97b0e047a3e424bb6af425f27444e2d57b3377b6621cb34ef542f1241fab1123f24dab2f5cb85ce734c7de07455509a80a5d488b3049382c3cd8bde51f2023d874ada3bf378dfe7ca09029accea04e266b1f4d00a7419825ea18b53823368b4ad9b579e62f2be64f75c68b3ec45fd0f33bd59772bd287ea0013c30a31009162cbd8a65e196ab002f2f003df80cca4486f07ff60d140e8a9d4d7919b830105fbde57178c5015e93c4b23b7197e89e1947c9c6f1ac526faae61959d755bc44c10468231268bade38ed88895a206ab4451ede26cc2f8ad16692d691ca0cc37aa75d756457bb3ef0cbe876756549703cb22bf0fe532904725b03f66ef27803061ef25e5485ab71b80fccb3897ca7a882d9329af39e27f25a0062c0e8d461be58f7390d406324c77d3f6002ceefce1d3c1b67822d636a3bfa8676adcbb8b1b74977d6bdd9c77cdccf41ed0a4cc398da4ea7d351b1647c8502c133fba1c94975c1436bd4f4aee58e715c61cb731aba35b1894af227c3f3458180a2d8b8516fb026771bc898eaa6519a9d73bb12ccf327f59eed61338e990189f2cf3a22b52242eccc6808297ea13b86d47448e2f8ed23b7b6b359dfd0a09198c2c60499e27408b05421844001e5d9c8c84158331d915dcb927c3c42a9e96a5a8c5dd3c9166612a9271856cdfb61ca3c4834976a1f9c254016642603e122b4d30ee6f2b771a17ff76d3feac259ea32da732a88128fd49babd30ca9c9e18676155f1083becdf346397e2264a4c6529a0e465da733ce792c83b142977afb20c7bd5a57f86f08c97909d46da9e538ff7e5a8940a4e8292085c9994d346397c33f59d322996f2b5ef2873e89f98118b9ce907f3d9ca006cb8f7454124301f6c8c6d801314eea9d982af49edbc37d038cd1d7abd90d122727a411388cdb16585af48f74f2681c13d630c33da6c133c15ddf768c7b8018a215883d5a97f188932832dfa15ed3952c6d50c4a62c4d4a263de6fcb9e612db139d42b9472ef0824454a86e22ac0712d527cdf6aa153b881f18c83d2d625dc5e83484c4a979cfbe5d3ca0260e4f77cf76562997bc5b211644d1fb3a54ba9c9e7024a1b37dbf0bad9704d167d9b581c123039b24468c2c5118bfb852f71b0614140e773be5e93e6fb71e977b3cb820b572fe787d91b8fcc0def1502fafe2048e48e9f52d9b915732146b0a110502b76a2060fd790eb75b6641b71371b8b34d47e7f255a16c472272e10cf536a701b7c2d4758468dd35d23cb97d0b531e6e59077e559512a2c31209b02ab11a3b07cb3b83b14ddd57098480ccf2f12714a2abb3f1a70a110415e4b4d3552a1fe93c0a486fe4f88fe6b4270c8dbf866beafd7c77568d7d8bb8effeebbef578e86c6884a266484976060ca7983be47cfdcd631dad7c8582956300c1e67a158a97e5e50970d85db3de3419b5303d7bfeda9ddf750065bd3ea11fa784a9e02ef82e9273bf003f072145483c585feba9a666a6e7437164425148adc64ae9617d9f31c2c5cac5ccf18984f7fe8a81ac4a06326dc82d1f3dc19c6b223fde1d10f699666e7f898018bc1a7b9e58be93aefac1216beb316955aa9c259734348d43b234ac0deca754db15a07c62f8f8b1ee736221edcbb2ffc5971ef36a379a02b9397b294870579b630afe0905c53634f541f4a5c7e20fc09fa10d58cdc9978c5841ab593b3f2ca482cc83e4778c95a60cca3c2c371a48f206dfe24599bebb4950bfeff96f24b06f1f49490dfaf9eef7bfaf0c7c95351af952c7f2d1575780c8d41517f969c13be96f1ab2c62f354b242db421c22f71856f537a76706c7dd8adfeaf9e7ac7594f70680a5c9c16835caf925e4848bf3f233140aa7ec1eaeba109bb330302c1e5ba7ae18e9034431b070093da749acb20a29f22d3bf96deac3d08d190613c2c0703e253fc4da7943eb72cb3fa4b8fe8b0ace6c9dc372209059d27c3c9b90acb0da1a87094a33c85bf8b1a91721a3cdc1d0edc153645b11a85471aa0e276bfee96611a048c955804568a38c9a89dd4071e304e2bd9360ea21a5deac9fb5aaf3a519ece59a9e6e88feb7d2991c47c179c7c8c792f2a64ed4b9429c947bcc18567524e642f4c60c9477625a420b18acbf0d019b61dc3e97b7b3e5026358c4c6f1922b31b064dea4ecf2376fa16b417fbc5ec01c66bff4d30c8ef6bcd08bb5851960c271a027260fca43fad52a56951ec916ae97d4c447393d0e264a64034a6c3b3d743f3a46c4083b702366a9c9d2f34951e0916076982a93482980d8b8a458853063a76256aeaf9d772a908d6f546b1b05023e6f53f2a7ba852705d3dcd367990c82aa97209809a83f90d48b2b5d770e92120a1aea7ed6d12782d4ea31f07c5209b4bd9a36ce7d00ea7c488b90920d75d17514011ec18109f1c0bdfe5121bf9800a848ebc41b586614bc16e4945ea5befb1baeed862296d54d97e5dbd73b1a46c119281129ba4a6ac574fbed1f03bd24f560df4411f0a8ad84294134a793bd1a2a402eb716d0e7b60710c9de4a235667d3e2e1494a9e6c5dedf21fe5cce99ac1fe929e95553528e9755fe5f86e677499aef7a33002113de591f09e8db112e9e4a8bfb12c6207e7f8383bc9095baaa1fd0e9b47002ead99eadafd3275980ea6525798134f7b1a66313b7d83384acf6af289a3a545332fa2b829a321c2a4d30e312d05657ce679c9b99175352476f9e1ee5fd1c795079b9ed081f00800dff526437383bc0b75f997ad5eb293525e5f198f2dcf6be0cd1e780aa46056f6f4ae343dfd8a202694513dc5ad3b68ee1e5daeb0018e8492db6b3c453d2bcfcead84432935460e91715e8b8e0d3211d670ba3a9f6a7eb9884fdd9ea70adf0a8c4cf2a4db7e65f748ffe13535e71400fa2c52e1504c08e5d1a4be74701597f4cf5a066877e57abfebdf9753dbd6d33a0b6d6ac6b2914b9541eb27385768a04bf295dbe60245373ef38581e1818634da79a31593050ba48dd28f30877ce0ef2467f8303b0c6216c3bf0f104081cd048cc344e6f6490ba343d9deaca4eafb596675192ac55da1838c72aa38b39116071212dc171ebd96316206aa45f6a5c7184d3d5d6ea8c251454e98858fe3634e85c329a511426534564939bc7c854d4fcee70eaf7249dbb908b3a3a13c5cc9dcfc07a805d01aaeb4a98a22051c814b30dc9a10c0b6d5015c3dd73703fd0d6d6a64dc917f5364157fde6bb6a6a0bb95329b9c350424bb3e220acb42156acc1b75225432f7ac60e738de686f4e6e2afe08b87a84e7892e4d640b13e84370d09cf4e9154966a0550bd7e9af6084fa68139bbc92adf567a4aff9b4273b1a35351a9258d78856200ae06cd8a218daaa33917a9798f1edd359d4c9a7f5c96cac7c193460ea65bd154d284a09595323d4ec6066c51558fd4ecd498c065df75ac30804e13bad34130170073ade1d7d22241b2afd9ae33599ca4203abd9b4253157a13f3aee1898bf02c70df59aee0453c2e972010fb303b4f23fad78de42b17525f5d6110e334035c22b551857ff7ebb9fa450d14f878446100f122db2c4baaa8112b2dcf39cf8567c7aad33483497f1c03fa8f360383c677c438e5925eac18ee4ee5e03310607003b14d9c009abd3b9c8cffedcf7f1356aa92c95c7a8da0fe657df695398b4d9c9d860d915b13027edac0fda4dd1b21ac33c6245f330abf1165923461305020669fd454ba46bc7538e4addb0ecc2ce97a391400d94a1ebc2220c5ac67a7cdd963bb0b1d3171e261d3981bb6bfdde6d159041655fe5ce1ac8c57f0625923b45abe277169c25fb384b55994e75581a0bbd64fd3477a1662dd9c752129db9c1d264013fe8de1e519b7cb7fbe35a0307f7cf8416552de09e0cdcc74148925bee2d267b5f208498dd23c999ace5fc0c60d54d2e9532dc4b5d140f0c04d9498bd69221cb46bccdb9ce5534168f684f8f551ceb2b9e7b545ea595232165da32920d55374f1f3c14043aedef8c31a2aaf8c199575f37a2e19780542852b8c1beadb95924a0cb2793a538586ea0c66cabfeb3ead4dd2f605ee23f0b44439aecc97ff49a00514a8445a9093a45b1f9c5a3dc02041d990d2e5992e9e53f39741a94f3a4a50db04961d29592eadf03814f9bbff4ae98ce67cd48b8e302e2d75bef4899361bd5624c50894d57f101faaad0df815904e6b602bed0b36ef91761b97518ba503297f740e56e418a8f190aa7b32518def4ae2f56cb153b5051f1be9596dfa6f53309c6d73959492636625ef6843852c7c4cf59e67c224823066ae290a3600341fd63b9336a1cb31b0dd74543783bd1b48acd65faa35b9e1d0b054148d00b105281c2ddcb18c75a7a6ef5e0d9e3795587b29c08cbd104dabfc2367b64b55734cd44d0ca74eaeedd2a684fb41fbfc7c5077db75237ded43bd1859f759ccfa94bc6e0c74592070d3c393dee0ab32b7292767c84e36b659aa23c21166fbbfcce76d382c1b4629eea75ebe584524eeabf55bd190db3ad45f064e05682dd1e0304747e6e513d2f5e1dfede8a72db26e001d4960e04eca62102fd2658871b300a8ebf487776a8ecfe930c300a95a6419933bda3eb1b9029e160b84a51fe30151ee3fefc87d86582b732273e79eb2a24c22bd20c94ade0582fe7dd7add404033af6278161d57487ec47f71f99c083d5aae5c4f05c1aec58ffbadfbb48c436224109e999dcae7d574e95f95c46e558285d224bf3a7df8ac27f8104f096380fb71fb30cef6b3c444afe9e256df9e231a0e49af9501a8dd9b781cc3782d5bb1d3bb0c2a29c712eb7f110f2025fe10906617506438d875116d0824f3eeb4e15a7af34103a340b5e9cc53a6223a2b58351f0fcbe952acecdd74e40d80df025426c2fa802aeedd7dffecc481e61b4e42ae1708bfb39b2869aa058e9c3d740d8b0c5d43111a24d4e189d3ca746490be4de86315d6246a331bd28eb7d848ab564c50e3042001cd4669c34b41d8ae56182a46c405de3ec0b086ca4f4d8a6c3513d648cf3d3cfc039933d227a70b1e371d429283324ae3a98c029ad9e9c4950c5458fc37fbdbddb90c7026d3c3ee8c3cd32ec13090afa3130d399ed8e35758b42b778a5452d486583fe828621065a528353c84ded248227b6cada2e0975b835634cc66120ee3ce48f9723979b8db3c75bbf1abd24273021bc92f47356eabc52d906463485228fd1c347dfda478bbc074bc825acfd13269748669b6c8616662f0793e8b505da8d061318bfefdf8f8b263225906601cab0d585956acea7a70f52cbfd1cc1220cb1858fab098318486367d3e964cd445a9d9d058c4cc61c5ee47cb0a8374ca9bdcdd18a717394a24deab64908b93d208181a9298d949e9c6ce3423ba337710d48d19e6597decd03f7e5d76313f7dace98c3fcb038bda4c603d9d5b13b08cf4aa70ffa9f1b43d22cb673cd133ed29df32bb2e836926019d502e6d03183f1a2f2c7ed5e614226410039dac2bad824a6947fe20ddedcba13547daaf16db19edb5a3945c995c3fc22c6fab61c5552203e1e1d514e95debe8908e3bb4e135eac43d5bf1c8cf141ab4529b1c4b089ca39d730a60cee135cf8120df8f4174f354ae7201ba4af73ed5ad4d910391aacd100c39e9e667fa83141da7d6dbdb960e6a2df18c7726224025aab49c74a0637f273b851d52721d342747cce56618746a35384ae4935dc8ebd3e8544c084886acdc3421eeb1a53fbbcd8ee4423902688232019cb3dfe6c4693dfdc5f55de41120d4129679b521288b9efb2796a68ea7e9d291899f0f7791ccd52c0139949c0c99ebc0f308353ed03185d4d0a0be21b217f9349b743bd9020ba11d1623d2ae38c4ae8fbdcaabebbc8942b6dc15d922bfea80b1510960d70777bad45698bfcc7695e296e686b4a3f3eae8f9693812a1997db4547648ddb22cb9cd04959f0a8867c3fbe7075094e96cde5f6beb98c9079c6ad4cc7140f72ce5ce9dac4a01e2ce1d28a5903ad1af5a2670e34fac771fe3bd5996d3b323551fdf877e05c86e7e78f4913f6d3f9b114f36de83bc5ee87db4e5c3a2a875dd84a4df84dcc1c00e97e1d81f5bcbdebee709830da33caecf0dd7f029165c613d74d0ecc8b29bd2dde9989c9c40dca915047affde7ac810393f74239a00e9e7c3f9f8c5831433dfcab61b206d68f787d55d8a8f3a950b50504688f242e71f50c84b8eecdaa53c53d842a2688d02adb96e8d02f66652fb847f99f659fe4361c8088683bf1c2100b5d458fcf2c871a83b3f52f76d1066bd7fcf72ae3035002805b42b476bf7d526146ec37dd5d2cb62b3590ecbd13158ded5ad52df2c36006436a39d4bb00322da347dd6fa82225aa54f7946be71ee03d810a97b3d8a2096a45dcaa51fc231fd319066e5d440821fdc463f2710fc4c18e8b688745684ce0b134fdcef16c16c72f38358ca16a20c4a38dd01fcae18ae9936286489f516c01c3de7be8b8290171d9f4bff61a199eec3a21cc8b9789acb5f4c8a004998b6e27aaf3fb36c790bdcafcf9c000b68f5a3a57ea888740b680796d93bcb06f3f2364960ec04ec30daa36fe800322fbd548cbd3b5765e6257ed33ccc8a3b588535c1a1e98baa46e56978b6134606b5aeeba60fb97b68ee97ad06a5b6a6439b3e0ee7109434811b52c9757291a11f8972a5fb5177083c0ec3f603fa8509be6c32c056163188b3eeba6bf2a4555d4d1ee377b86f9bf66decaaa4b4b588d0712f5d00dba8c5786ca883147ce2f62a7de80bfa5105c19a18d295897726c5bf5d8c781809ae04082d14596d50d5ec7551e1c58f06e89cd1302f3dff51f19fe976eedfdf8b86998bfb64e90886bc1e4f1f0564bcfb9e6f2e4f148e8ce18ed234ed03853cea7e42402aaa2cd430e8c1cb0fd66f6ecde0479584b8f952c7c8b13a553ff41d0c5dbb35a2603d386b3e88f101d87556cf1f15ebadf555a5883fc437cc5869246ddb77dd76e1c06e53b81e8a9316e29a70fd89c5c5c84d6a2ae6a80848cbf365e0242ec605eddfcabae4fb77689bec7a2ad0ce44e6", + "0x8f2f794676990800ff49e2109a0a125ccf71d160038bab4c93ca44d1c25e07788f62594033ffa28067db8c8a73449b1743a54ed336d5eb39a88acc6bb5914e7485681a7994a2e7384f6d5921e582a81125ebd338b854efdf4cfc0741db212a2c84bebdfab2e6af340311a3b24f7beee0215aa447382f76b8f734fa4678464eec74d45940ed0a5b2bc4b8586ef5e2231afad4f346e56691c552c6e2e5f0d0b69491132e2068ef2b2647e27411800724e605f9a4a6f666c8afbd9075104fcd8a1dea34c1d88be9ea153511d0e67cf79b63ab5c667e24a0b3c9ca654afbc2b2a3cbe3e7039a81a83dd6a919d8d0d93a0425eb1dc9a22b359eacc07aae141c249a6fb3c8b148b82967b9b53af6a56b1be9b1d5c02a784db7004219ab411952407ac4e7a66a0763bd619bdd08aed86a7dc310105e8c0ccef2e6f5048b0985ff8281c5dd1b3e46fb1a85a79928bfbbf347e4045521b14a79cb927ee349e42be134889c4a71a3b6ba852a70d8d8d3b1845d34daf1171e4a1929ee1dce6485775a6cf89cb5d717871e0101b4784d863f8424cb4e474fd5d801f49d810f2966a4f09d7499f9ecdcb66c950331cfd9c645b99f9d684c43e65c8521c86ea406545acdbc8fc4c79291272ba4433125ebeca1d016c8cb099d2d157fd0de36c1b286283feb383721159f4fa54cf91137d3fc0fd84e34741d41de91cb75028b4b1a68c039bbbc29e0a0b41569e08be1b662ec72c7529e8b39aeadf6ca18cda35d247845d1fe7de6300acb6acc678455c653f095f4cb3973a2abbd39e39f98dbc744f6abc028c87f0fe36aad63369cc57f841c119bea79feb2479d1bfe2c92c98ade3aebe53c5d5cd1e12ebe8a8f598d7001e13a5cdebd4a5626fb05078a2ca45d76eabbc250a1c09f97bcf2e05aec3117e02df7bddee395911fe35771a5c3312bb56cb5fd9b8594f376adc1c9e83cee6ae947c4a3c304f4f82da1e7b01e83d6933a51e1e11895c81d2a2217ebc65ed35114989cdd2ddaca35ada3abbee2e15e673f8c46dab4c4e6c139fabeb1a4d97f29d0ff23993f918785e8f68c97d844fe2d08b581fd10e98d5703ea36cb477a8c421f7c1eede40b1a39f9335fbc9d9a99a127b03a7dd2f3d0aaffe887ac909d316281215d4facd25e38f5fcdab45202de31916f2b37835ab55a59b27b0b8f275441aeba251d2f39c77c6d60418777cfd3807bb276270249565ad351a062a6981d0b209498170a773d913cbeff41d87c96e312ef40f183818472fff61072c2f27ee16d3ebfe065b77819a507457589609ae7fbcfd859230c15bec488e8bd9b6082587651be800f61b34ac074fab7f43271c9a5ef3fcb0118732d36b3970b0cd11bf8597a1be52019fc6e3c09fb21f5ba4efc6cbb8fd4f7af7302b96915e672f83cbe455e285d394228626b82b6cf0331a7a78da889a6d524dc577b17061d2a6a4d9a0d1c6a1d46fac417a188a563742b2124e6249d98334f86953af882450abccbf2967644bddad84115e23d1681c125bd8389edd0a4d20a90fe59532033ffe5c81d13f246ba19f0f6f3e183e154e9f4840522b548e88c8d8d2449932e83ac4f23e9096e39f32cd295e051938a08daba4da123449325d67b486e3a73f715223ee31634066d2d4e9d0b1d7fbe234dee2a1782ce7c8843ccdc2f9a29bde58aa093ded92544e58f5f50d881417914db79315b8601ed41cbd74f3f3532521bcb6d13d65ac9eba42614ea65f4390086e8655031c1dcd7a36bdc25ce253677f683b99b9236a9ecc862a814f8f46039cdb3dd4281f833e1ff76f93f6920d49f6ca0910725fd0a4223972a606313e5a7a1fd0abaa027d1c49562dad59432ae31eed6e6aa4fb5d9cbb67e534dd976598d528be244a0fb86c319489785153b00fabb1ba19a4c55606accb1eeaabc58349274a600b53b5913b0f367254f2a6f864f342cc432984bd4e65832d307a0859d8fb39a9592dad5d1c59ca0575df3d4b31aa307a48c23f7af7212e56b3b46df8c548d3a62714d3c3eb35dfb6ebe1bc7383e8d6f29d7562eddc7e311d046bbdd3880bb5ac438fd0b4782b1223b6ebe77d919456c26c397b7af3362e36b106207d5cbfb54d3b011f56f48bde1ca5369699421d3c8ba759cd1af168bea38bc217ba05db7848ce6ac60c4c89facac1413f218c3e292c8b2afac34a3549c86a2b36b44ffc2cc0f39b9e89971d719bfdfd2c08d13719f78312febcee48cd05227719d82511311ec21f0db2260a06191912b52a7ff6f04cf4cf928835a194232f4e6e93357c9bb7b0ab0bcd053f7e453d4c57b0ef86d9d4f823370d4ade813c956e1bf96f16c3951c0efc186bbe1a2581d87e31654978ab270cfc39e50cf46d3c59b9fed27847bb35a1e559c46b6c223aa0d86c5e413ada8487895c10b1744bdce3b9e6d54f7762aa30696afa3640f0cdfbb332772d82db0e11e509ac8c059ccedc5e77c90dba41b53ddd8475726756ba9a70ef71c81f5f8e42ed04e1f5734d712493841fa4d8176b8792048d495895fc7f40e95deae3559c093e5e773b76b8ed413617ead030f719358a93140e4ff19175b7f4ca1afe0515318d53bac66f5549464c9c4891353543f7163368dc931c14fdc82eaaaed2d238858d7a8c8ddaea8142ce9ef1f48d65878156f1bd4d59fe0c5f688a453c017f14a70989fe9b9d61a4428cef460f92493500ca4eb17fe69691df5db4e43bdddf790cfbafd8be292d83ed39b00e80650f025d90d7add99d7420b5516e3ae9682d0611f503806886ac3c86005e7f90c6e42aba769b4408ad26a88a1a75650e84ec514f064569053ca19c24ad5e09357185d56a6aac571ee68a6188754c112124b3634fd72bb604181af58bb6a9a2368ea41c5b07608c49c4bc2065bb3d3ac64c80db92feac1a76444b6f7793492c21b065dec0ba9c9b8925363b8c8b09da371da44902bb12574442c1638de3ac70ea191d11f9ed1daafb1f8667bda0ba56f45d6779c21a03eca97345653b295b7fa7534d6497db1f42769d8d36e1dd74bbeafd98aa5d3040b78e6bc14dbdcf3ae2e979c21e0e5bee9b862375a6932fd860983405ee8331c0a70fb0910b71f1565d5e3fa666aada5a831df7a64ffb7b7e4ffe1309338ce9fe6b424c2beab3851eced7983e2ab0bc30e8437abb70a1c15e376460f60e63433f11ff47478eb3510f07c78f1f5c125ab8a68dff8a3558d7b96e1ea0975dafff76a8c93102e74df5143372600d5c91ea48ee35a34c54bf821a085a48cf09988fa9f31c668b23bac24bf7ff4f241df9129d316d35553d2b39274e809cc632472c1d13560b5926cd83071d2370c5a86416769085af402aa452df22ef640e7dd37c5f1c354147f35d82f1af7b71672d278c29d4978d075fc6fa7476917233ff772f32b2e7a0443ed906cfc946bdf02dc1250aaa7524b3bf78b872a053bf40f06422a41e7cae94d8d784cfa01ccb7a5575d5c395091eb60960fa95de078f622bf42c0b15c398dcbc4f9c204672ff4206013e5b71335db9200ffbc87b532b1ba04dafeb7fb239a4c2641d8d993806d84c57d1c78afb267cc16f4c459dd1a6ff7ba1a9f12eb1520ff31e62d131c7d0256735eeaa349ff8498195998059e1ac04b1478559f43c815773eb97284975b12cebfac67ff88b445e2856d650483fdf600489444c5d146d106825dece91f5d0324b650647bf21567558bae292d773ca9cbe4e885afa9b28ea7be3cf5e66556bdeaadfbe297768cc64ebe46391b9b20357031baa557185cee7152d07b54f7ad2f7dc1f499965820e55ce73abbe411bb37774dc32360bbd474a6ae3180df90a6c97af52f727dd9946b5012242d213edc14f2034df5bec9290946776298f7940d0154234f0de9500ca0dc3e69dc3f294a724f82ed0438d7ad793acdc26e0d028fcee6f83b3caf9d86f4c754156e2e0ff3bd3f6503aba79c98f40e85ba3f218201302b9fe28651181f79ac3d98594f48bea3a9cd1a3c1d8f4a8d384cb05da16df6a6efd934a53f71aa644846fc69c00beb98ae6fcf7bc54f31beeefe07ad98dbbab6a5b20508ea2438905e295b3ef1c3a153bfcd6a21a53e21e293b0072a2d19c0683e007e52a46f06fa2666a8cb89ef794fc011725a23ba77baad2831606e2213cb165ee2d957ebaa464fc438d9a0c83b4b3e36934764d580e96dd6d3f173f6236ff463232806418d398b27c982422c12cbb271e57d738f6a78ca7c5914cce09eea1131397d1b98543db51429b6467cb695d8153d853ed58653261916113a1283543b9c9b4c91ad93e07e8a17b97775dd341055675a5fd8bcc989c631c6c422f3cafa9a40bae0bcd255b10f53a308345178d49f7eeeb684d1106b9f9925155775eed4b16a22c5a411f1fd1858de5be0b1f33e8c2ca4d71e9ebe06e0c2b324c37a65957f3994cef1ffaf5e28cbac19becb7e9c799ad73f55635148cb710b3ca40d58abb55e51c4b873ad0648169f9697ceb211620652644e26a94214a459418c78f4950f9250d76a1bade2c2531f8abf77704f8c6dd78a7d6c8838ce34e0563891ea601b5fbda40d0295a93c3ae814236d5a570f83997448ba193525ce74c92c13ef30e5af74088140ef7c8b608917269d57505a34c1d8c7ef66346143014f701f3de0d7078abfbc216a19f5d9e5d84374136b3252ecae2cfee1dbf57b0295008810ab64bac5da2f135797b1ddb6fcad1e7cd6d890ab499477dcc2a0ae0a1fda062bec43891f01acf52cbbd5e605ca63d946c44af60141552a104bd8c93f75ade151e960fe478286c604d6067cb3c17b8b687dcdf9e92c0f501a090d8dd9a29bc4cbafc2851f39d9231e369a98f484997d9d86380cce2f07d8f9bc7f04a80494cfe80004c43f3e0de25a270283cf0bca0ae4d4affc11519bfb92daadcf8c672deb784e2ce6716a19c4bf83aab69f2b40930112c0b187a7d69a2ca296d8fa76147b51c7fbaf33a91e6bf8d3a669956dabcef9f00efbf85370d6f5c85ae87e7b696dcb73fcdd381b4cbdd1ffd320333523d99a9211d4a14bbffb7bb1f8d33369a7774362ea08e7083557bf8e4fb7d236e0faf1f97a4cb3f26c1e333427d24d3eee0a9be34498daa40216567866381d3e3e38d190546fd286f0aaf5f790e98fb1ca2ab8d71a7a619e2b6cd0845ded9444c02c53bcf2ed96591dd47d5af24cd530d5da030a6446fd839bfd8d3db50a0ad81091508137080ddb4dfdece8dbe88c2fc248e99d792ce5f573f38d6dcb7a28d13811e938d5273774f52946681b5d35c5bd315b8b7f8984a8d192f831fc5de85986c5005583e88931a30af26d0d1ae69b2c434f2bd14ef8363fe5969aa4fa1a44deb5bc3457d36b3dbf763d885960c82e2c603dd4c26f95c5bfac58daa801e2af714c0909b3e7ba2a8d01d7f6da6f9a586cc6a2864a6660749b70cd07603e3802128216c97c28460f3de054f3b7482c323c0680a9617e95a1572bad6d0703662b9ddbd5368fc8556e1586ac89e9ffe540e4a2dcd6310022fc8405526b1fe58e3d3c057ef3963d1ff3ff32bb00b6ce3ef5a7f93fb85e8129664d943ae553a722536ef50ca4cd744ffb0230c2d2dfb2457908bf36f3fe9d82a7eb458745d2806ac51907be2545a188f1719ce4358bab1bcf22fbd325161a36f076017f0c2f4c02b31d6798d2b49fde77de7daa341c5d763f43ef29f3a1f4052bac820cf13c8a58d61d87dfd5fab75962143c80568f2c201808b8d31f8c45e11f9fa53c91778f32ac8204a190c3987681aad135d80eb176baadd06dbe13d871667da9c2b2e3a427eae7972b0e09c6a53cf2c07f74c6b0e9f95dd51a6c7f538f28cd6c7313875f2145732e90885c57ccfc4f4c75bc37bc81ca9c03fd9c2a6ccab4d1c8cac9d9f3e187cd4329fd2bcfc2664688130091e1553f2c01c0f83f07e5e0ff7c6535d3d47bf9b7f010d17508d565be9cb9c6c8df14d9016310c7b273563cac8e867f7480d51378e7a3859cb4450656f2acd77fb77f2427471e6c49dbc8125d9c94abf2f52d8a93c4077d4ca7c61fc01794d2eb75eca89f151ff5cad6993e6a679737e2f3909f96afa3cea53a02d07ee2fc574c9cc526ae25cdb4a1a05dcbd4c1bf4c06c764cdde44a12b1c6a15c582add6c1ac9407261396e5ef84b959688021dd7fa524dfb9a32670d3bede0f58799ff46bf43ac4d41e20a799fbf209ab3855e72186458d7eb8604498da0b7677d391908c879fa135b00e5920cabb9a212c3b7920f438ce3ebfff94f327a7c161cf88c59cface589e7bcbc4499d3a7035c7e34f767231550ec9d99c2af73bde2f0fac13519a98378632a6b51f843ba2dd183fcd2bfa5eaa279c8bd9820c55ac2f8656df21ca03a0a466927eec0a3579212b4e77e7e8c4a9721a1b8f861ebd820ec723f0637b62875f429a724709b2f56af9d4790e015c015b8284465928a2a7d3fcd7f4f03eb5f78970ad6c31753d48a9eeb41f751dbbb6f683b5491c02fcd7aa189ff95fb3638d72cd444941cd855843156b5e9f7a73a07c641e2663f172c47efe66f4cd5122fb41bb0c69e0ebcd41da62a84a91b747ea0aaa0e30b823279363ba073d36db3c87a93369329755e9d1dbc99d9e2ff06693bd0988003145265bd10884115be86289e1f02f8d6954f20be5fa60373093dff014920ff012a510aaaebbeb0f3e5e82f0f74766674372a0a5f4ffc1999ad58f28ac4b4a9f879a6bff2ac650bc28c931be6e8e29327524a6896d1b0568d8e5f3b73fcadf70611b635169f9ceff44e0aa882a252a6140bac457e99437f0554054ec0368320af0b64886fabbdda5c5b35bf7b0824aef73e055e2da5d419fb2c7006a4b25fad9e466f2fd274602de9e47a349b7d604d9184ce2af00b86885818277ab7d66b48c47e837050e2d80bece9c64d00021339f2e5efd79a747b8db992090785d0a28957a8e31638646d5bd356bb9728dd5b6c777d205afbc3b9b79f7a907729f92f2ac4fc287d0e22fa537ff0d34271868465a56cb9bf4b0750e5e2bf9118dd058304c2c9f1679770138ed9964ce7fe5585865b8cc949f2adbf82b5ce3e88f8c09d7353e60657ef5f8d68340aad919e29cbc7a1478f639883b98a8d62fab9604e046e8bf8ff573952421001286012d117bf62c761b09013373733e2ec13f8fd55bec2e4d2a3ae11159e951bad5ba034b39d2969a65e36bc1b6ed7ced915bbf2e6b899247281bc671fc4dc5aaf4447a4b3203d51cd1e89ce92f6a93d6663b3e4843e2e24a1f4611a36f8292e281ba82102fd089b29894f04356eadab3581c77296117b2b1ed3027e520314f47e68ca2881df55978469375ddad344ab89700aabf6cebd829a29f61039174788d1d2c73917eea6c4e309d6d9ad5dc02700ad86b44f890f15811b38b5fd524eeb0838a224625b4f04473bcd0680ff9c440aab620f45561db90cb0167cc609e74fda8a2f29d2132961840a9c742acec767abf5c8614fe0a3994640128381d3633a76e23b85af0af14bf8aaf32010672a3f75ef72c4b3f5bf36a3f12f826204636f3edec5d474a17a2036f2124fef0f9f84dcba9f64333c4b34650d472fd831defefeb1660c62cbd7e33dcb16187cf89c78e9b229ba7312568778607281b3025b0bddbcf51b0f53868da5933e720b17c8797c93928623b29c76fd01e1ec5993a3367b1815782ac16268ff71e629727ef51f209577c3918c4c5d9ebd84de0c798134a0750abdcd27e01d0b9f7b6e2bb2865460f2acab320f41ebb73a6217c23a7510f58311b51561f46ef151779d82c09a3589b10194eeef3d1a9de60fc2cdfacd0334f9b88817dbac70f4faf75aee15a139c7f60c7026c74a2105fdab136ffb6d82072f8688eeac15731c6d82b4d3aef5d52efad0220014d9783d71a09874cf697d4a3e345d50c4d524d8f4f4b72a794523cc5104e6ed04c7c2455b24180bc799b1a45743bff9b8b1283dd1e3ea3b44961da9e5d02a7457d5f17c2658a9317715954f3bb7e5ff68d7b5418d89cef6d8b223def41ca3a6b331407c29e88abe812aad127f5d2a17cde70f2ab1bb683cb40cf656b342668c2c2b2b9ea73d466ffd748b939c811c944f05b99e6290d0b0d90c6367235eaa1978113b5cad27a220ffe5681847aa97dbed8a9fd74ead8e22ede09f4516dbc450d1458f36f517bd4342ad5f7b4d11bac22234cc84f59831ce353bd538dd09aa256a063a760714cb66d9330db7ef37d73c8cd37232c902a50b886ae1e8214514fdda35c1138aa56bf4854b1023d90f963b9aae655c1b3223f5850ca60136907d14a9e2d63596674ef5c6209173e354c0d1f6ed37175e471460871a229399eb191b0ac06b56a3878694e31ccdabfb948dd63ae020f43f251a1d555ecdc97969d26487cd9098af4a65d6c36f202db57524e21fb7618eafbb17b173e0313812aeae685b1de636e0436c43159589fe128e46535f9b9a8bd51b4d43007650900e90bd277fd11e9e641d6e732dc3d13f26a0c83992358f6a0ec2f31bc1834a3d37649c6aaa0af176adf27c04171c59dc02bec7cd4696550058a2f1e8b46b6f977a53e071008bd0aa76a3c1cd3fa7a72d9b238112266f42afb0571832301d57ca1be5a149d8581ce4ac11e9deef3c661dd4bbba2a94e9e3ba8dce9c5a4d8a0a3cbea61cf9fe307c56be44a80339779117bdfd2475e1601a6b4d43cba3e29c82cbd0beaf200b79d1a4df3303abca449c52620ef28626b3d3881b44567a4c324ef23dee2d8eee1574a6c3ab6e0ea154db7d2ed172f076278b7388c949824872d3aaab70791aaad8cb20a30b465682582002afa6502c7a45c3c0e8fea40522e83c627c16e47713f5739a56b76a1e0d0461110a58558ccf2949f3aaebeac66026636d01efefabbf117010c223d2d4561e0b9667f3993e78f52f68a28bb84c7c43d268112f3834f48ef2c0c74be0da195f6c25ce0d8ae080acc1e920940a05ae113cd91c65bead6ca46b5dde9a12dc7c31416c77fca809861ba5ccf23dea791e7152dc6199c0c020f494cc7c903a865a12c7646160d464b33da055c69de87575b15d44777ec9562a06452aa94f4e2476f11c83b9ab38146fb6d3ef2a6b9b2492a0a2cc67fd8448141cdda68d7fa79d1effbeaccce622bb4eab7c55e8d9d33e7748e5b200bbe81e536f9bf57ac8df8fbe806217c80d22d1d1282d2afa5ef909fe65eb63ad4524509ea25c82ebc996461f1b20714f9533525d49bffb244c37eeb8adebde1f21d4f7337ced9284aff981def6420eaea44ce81ad544894d26661d9e893b1dc21f9ab7128394046db137090fee4e8b9519dd346600115b0c3d59fb731a6af91b1968c2eaeecffe2541fbe4a6ede839a8d662de2797b57ea6f43c6c67a6865ddf1f96b1931333b1303df1bb01c61f1d04a3ddf60fca0b71c8e97781d4dc84f00d0f885de6c9ca677d3048117cb62d7809fd566d7acd0cf6d79eb342852df8bc35fbf9d661e7b0d7c35b1ae74e93ada7d26716a072a7279a38e0ee66e86653737094d14997e67e6317d016ad4f42485bfc46db79c776d29c2df03468a273861ac1ef84eda61bbf7385a7f8635c2c0c23935b6909b1baf5c8b3480107385dc89ccb0e56d8019160c68f0acc088f693e51b6d4c4dda44aa14adce700595faf6b3f0909152b8e1dbb627647c68e17b8540b868c746a0b2d263b4b072bb4f91d0041a944bf694bbb228b138d9db20fb614f96f7cf17c43e200a15375742cf48d9f42d53b71043100514a3b21fd1a640586f71aca32ae3fc9221d8aaa795667e221058d74c0e9b5f84a19e8d9e71d0f97e27262c93978cdaa8dac3151ddfd5bbe146b3dbd7568b89a174deb71c4450684c01d0b48653798de9480e082789260ef2cd9c8ff6e314f715c0f97250e7a87f1cf199dc75ae2b665c3fed2f67210714518f520f9e27d404596a452d689c5460b14e0336ee21904e0f3d959b340bd125a12abf1a964250962e4285a384a1634bac5d9bbd926f79d59469793e1a02a254a88595ecfa8a8aa61643df5e385c9bf8176675b3970f12a97fa1deda556c3381d0ec1d76b86288ffd8e9426f0e5460b0df5cd7c846ef9c4be99213c15a7d5976a8c356ae165ed1ff0099b65602fdf4a9521ce5587e7f1f1ff0e9dfed4f2854c661c54a152aba1b7a5c0d3d760452d7f5a52c4ab92f13cf1d358dfcf18ee25b2552d5be066023a14880e244f17a3f47ab701c248ee08d5bb65ceaa6b42636141f755f99f9f9cbd5224327d4e8bbdd3f272f69af722b62714c8f52a1935a24ce4fe748a55386d27ba14002e223947b6deac3f778363be00ccffc66329b2058c4bd6c70920b70f84c22566690b6c778ea0aef1c166554d478af5295f590a228bb89e8be55ed74a8b46928d737fe88f0cc3ddd35a5cc4c75124548a48e54c16baef1e7c74af71f4d54769e3d7754fe33cf3396d0983d0aa32c53175092a98d18778b16fab8f056f74bf762ccb92fc8149d638d648fcc0e75acf7fbf635d6ceb992b0c75f9e0cd154813b64f4e40375ff8f63159b3975e91839c2b55598a27eb0764f71efe1259bf65e3d5769201a0ae6e3a3e627911bc00019150c54b52c4d4619ba2e6c4fe494e7c5a33136eac281faaeb19c31e28ecd61163a47e156b51c909a943cd6fee3ef922b2eafe1e8b94439262a384a6960de0205c7b4e09402822037ba7d6b09cbb4fa1d07cfa22d4fb6c3f82c9df78715d45ac3062526b6344a8aeec9f637ae133f3ea8e554a5d8edaa0acc6b14ccd17b26ffd01c6e8284f2f3b2870f53364833bf7051bb455e51e4eac822ecc90e74ab5b62d482e8df65a22ff5dca86200b8b0b8bfafe96ef084e6b1cd38304bf4b99293e2a950f16eccfd64139a1a930f23af82e9c99fdda0dc9e31979dc21067afbbff27d6786ae2cfac2efad5027f8d2a6cc703c10c665bdec60fbd970fee5f245b65d375c437bc01c0db52323b5eb4fb3209927c8a2047a9ace22a9b0ea3ce929e9d7c04e3c3a9ceceede56a878fbfdb4f19ec52c0e66ac0beb72a5c7d4f12a99c1601955379f0fe389ccd7ee0146c11a2a1f4e702d761d5b3903f4955f5017b42522255464cea278a5278dd8713094e849c1fbce3d71f8528e0cf75b3fe849b15657476d6309220462d7b41515618f8e5d8c825f80cc6381911a03fa2b5bba0a97a9cd6259e20cb75803423fdcc7ef9997bdaae5c61879c72fe1c3913cbb7d4354edf00f514b8c523523eed100645f3117bc3105f069d5e0f797622dfd5c414ceb3ff624b9321d498ddb05c55bbe7f8f624be4806ee4a28dec689fbd0c94021600f6dcfa4209914901035b7064438355396667ee54ff402971e9c78988504e0bcdac1a6e243aa51cb0ee7c0cd20cd1a4a45a1b6c326409b5b2de563ff485c53a3239242f08a1c0368ad089ccb710202af77d18c27b04d14da95e9b5e4379047f90c8a7ba307f0cf15f883fc5d7e8a5624ca5f6cc3f2f85c0e69a56e4fd9fcf81b4adc64e3ce69a3d7ae3d59c42f8eb6cfab900414332f398ab28679629cbb3479a60097887930a748c037057a945da519dfaaf03f7d537140ee37261a4edbb56f7ec2a3bba478b476d6835aec5fb0b361fe6dce6c1fb3d92b8c3a0083a428c1cb449f8dcf70410e44cb05612f65763f0af3d83c4b2d0a24cf71510f89b6864113fe745cb704a176ea2d069b7620382dc17e407d90fe17ad7676bbca9581d7e63ac480293f0721f1a9be94e16230073d75b2b5b071ad43b859e73d49f26474094c46ad3c22282bc4e5f5ba7aa9d5fedcf977bcebf99a50cb3405ff774aa33654f9443115f197858bf27e7ed33377549bf509529a41e6221cbb853062bde70f771e137e777b89df6da0b6b3879a1ff899597743ee22fa934249108ad39dbc3264ad1f7eda1bb76dc71c30a0a1c9fbc4a54a25d451040057a097c193df6512cbd9996323ced2df96db1e326d3bafdd41d3164ab418b768ed30c7aac01767bd463aeaf245359a42b05f73386aec10bdf1c28c7347e93565abb3074f597a70f52df53272d26cb924caf0e2701fac073334efcbfe3a98436ecc6142293664fad78b02689c48ba2c508cc61f3d30152dfeb5a56fa06c7088bd97a2a8244a0f68e1e6321ebe899b63912235dfb50d32387f718ec8e02021d1d3946fc221fd67957ac9550c39f7d1b23a39d08323793da33e3fe2b29989cc7ff2cf5a9c7556433768da78da02e142d89f0941c585d600f764f6b2797c9cf014a22e690168f73f8b5885c113254407d89a7621930e4fba83401de7218b3924f32dd43241b7e5db735933a35d3ed9444b07396e08a6c3b4a2c329cb699fa1e2252296fbde13268964611374edfe72aaf2481c62a5658ffb1603525ac4e43cdf00d580b5aaa026cb70c772a293acaca9ffc14acc2d1c1ad4c6bbeca09958b19be2de6b1f3177f9a668c7a50c9aa1e8c7105daa337acc3ae7d2ca61da1f4f493a42969e7124245ff02b02803d21cb9ea04e074959422c6a4403b0aa2c33f2a9c6759d844a5b28a13d45fb5c8f9e2bfb727032d9eb6727c5a89d146323acbbd96e4b5772cd47783c8c6c9ab8779b57cc54b0523e7e905cdfb3fb40694cd7fa9666a56a792555fc5be0c8ad577ddcf8c164e0612913ee9d65f4a2a30e98da53fe6ec5414dde6d112369a762009ba44dfb95e35bc5cfed7090f6334ed85e073e813cda8c37c50908c8f3e5cfc210e0a7e5eec5c273a7249166be4078cf2e52862c35aebe1c4486a47eb77d6bd1e59feb6a55911a99123a6ecf57fefa61c26bcb3e410c8e906838a032c47291e99c75137042c56e7922c1a97566d0d4d2c240000fa88c76fa089c27129eeb044cddecada3f608ca2484e89a79dfe0a63a38f8ed42330137cab93f5ae8cf5b664512975a9c0a49be7344aacbf356513818c9e2ad5512a553bc8491ce477e7bbf4643db504774f2e11367ac7a478b16f2702b2f316e388a922e947c0b85453dfd8da602d9a65b664ca4a2531a45183a648169a2bc852e7b7e8444dc0e81ec126e5eb0c8d2e058131be2d3a1d21c7c11c0fddb0466de93ade69b4d25c743b69847c9a00b2d9df5d9f0e4f959fc20d8f45be2fb6e99c9c62e5e51f6499c665c2e2006d2186fb48b83706bcd8ba758172330d46d2397be6fe9be1484cae54efc1b765b4976322edb1bc337451916e264cc5c11e92df1c0e87f9f8d58176e3881a028974cf9a48ff1ee187c99003f251cafa3f1db901117bbfce14f6fe6f80f55aefb16fe6f077a3cc61f5798354dd69c4eeaf6ef65b250ad8728a02de2b71d622a166141222f99e1c08d605d9d1fc8ac8ebb6dcff7629d1be35a48b623d57faf38864c6af407e2b5cc9c45be4fc68e5169c49dce8507739472227c333fee742281bbb978040c216e568875fe990bf24b88588a5a145784f3f071cdc84492762e5e0adbe230d0d8e24013de9b5ee62f9fc6ec424f675e0775c9f7301ffdc7237e96290d30167970819401b84656080fce019bc39705fc4b7b3cae12bdd484fbde99b53fe6b63fb244a19d63566652c1b72da365b9ef65a20016507a9c5d37e7f938afed8b2ff199ce7e33554db95c963e51e6df2c859f91efc0dc3fb10a4095a276fba5c08e71737def93113e86ef7d22ed6ad7a6ee075edbef155051cd74a3c760e023ae27334996ac953a237c8b5ab951d9ffb145ccdfd2e80301b1889b994dd68bf7537bc2a2de0a8fab7c96e2236f9302cc3c9c73a947bf7076e5e3f1b35ebe8bbe6f233c933fb8e0a5c3b85bd9372156aefcf8517e436c6b161fdfa97df97c56ec0300d1174c0c690d88ce90445d7b6ce9c857141966c2c90d0eb5653bc85fc322bf4647c6c4060fb54856d08b522c7df04ebf3b4265b09fe4a2fdc0258b558e1ac6f979cb72a03bbb582d9e9477f0e857c28799360922c9229dbbc4739f81d81ba2b9d339f48359f6632b3036f6ecaf556a00d65ddf1467049afa74356d24a40656dcd8a7539d5c71649cf13b23f1f9d12ebcee501d235a3e95e744fec5e05bebdb319d1e853039f81af0ff370d018e0787efb0306edccbd20dda9b5f7e9d49338de44b58225067b45c06ad2523d35eb46b743f4ca4c1a5f540985833cc211e593772a04e009f65d9c75702dc1c7efad92e3b9517899d16012d3d4ab633126d31dfd06e1978403461b1da39508f4f190e5b29fb714542127a4e8bb7720d2330c374701b1d7dbcd9d85dec3fa8d6a6155bfca9933c1c68d0244923d6faee2c42b0f9f02089da65dd3cd7b6381d40bb6bb0f47cce4071874b29ef095573804ee32ddc128a263282cde5f183fbad9d673fe33da5f666560dc2475825d3ed886e388d889d7c76960cb984522e91a1ad70d53e3bb0a53c1937381dfbdc67933b40c95373b6ab20da6cb92f8769bad9ff3e19a57cf24ccb8a36f477fad4179f0f6302e41d69e1b1eee6637e85ea68f542b0183f95c0aebefbfd03bc18d16228ad56b2b5d7ee7aaaecd657b61f924143237785bde71c62db2638b1570328b7bdb8c28e1e3e9beadc9e07b407439b2184257c35298acd54c5837d1448e8d3fbce8701afaabc30341cab929fd91077967d27d5a343a34f4416bccd81ad871907e807f4100590c6743ab2c2c3262571625c70346d77e3a745c43cb1147033f328bb62e411700d5857570161cce99b6efde67a23d558fba140d81d2c2df46ee99efb28a4f7cd308b9e7eaeb1eb99a71a1180e3f840b631ab6f74dad8eede20c71d080e226939b33a9f963a2255b7ca9bfcf8233cbb387b16e22a9316beea88a34f657e6af42d2cd6c39e1258c467067d513407157194b542fda3d433c8cb6b104f089b658940ffb8093e8addf42290ce5798fe773649e8cdf8941ce47d2427d72f7163acfa67182f82a12925276fe0a18851c3fbfff2acba5e06971b0e8a9f937395187e80d5b8fcd3aa68fca2ad2ced1465eda7682a212f8eeacda1f3983aa8949a2236385dd6e4b66e31d02ef79d925c936a972df5033f3d0445496619577a7f6003a2a16ecfd77903c4569808d7bf770afffcb1c6e004f21c3cbfe833f5a213dc1f3e1f9d752a7d9fd54b313f9b1ab0e839f37a106a28898b1154bcb580c3a6416aaf7cb8b073b80705ed4ea5a837058f8784b26265d2b10afff16765effa81ff36c762753c75344efecdc90e17a9aac34b83a81ccbf86edf2ab53767a58b5f88c6fde1a542c28ee0e76c7e45ce8984a42d1d4dadfbdf974f473db8b1d11ef2ed4d97ef01d4ac77e6f2a8cf45e5cbaf69ff8fb8632ca859683ade409234365e4b8896e47f816137f028de218bfcb7f9f7eb09a2cf6dc0b214884a644182c9bcff1a37fa3c98fe25f5d0f25d6ce5fb6443d489ebb1ed22f783782f8187d3c099b856e9d3f5c1e230a205146f88285fa8810688137d56504ee034803471d6f9744c1fb0f20e0c6559f85638ca423db4ae2cb94ac1656e1a355554dae213b1c943650451402d97a6363b91c0e34f84e516d5f30c40035870f96593833162c879effad4fd895e7134712f03b8b251570db2c4cf89fd7f16894094affd8d10dd11d39d37fefdd15cbe47a9dd463484bf6009713a110a5a37fb8056a112a48930de41911167af20853d0a6b86e2eb79a554d5bda3069fb3c38a855eae88eaf2a384fdb5c61c192665849f53f8a85ce88bcd850f428d9333dbb8ef2f0e6316410328c0449c3496685f5701dd8a1d9084275abc2dd630e7759a6ab1061bb1a35cee0cb658c848e711cbdbbceaba2e94ef6571d0f5188d3c0c2f4f930d497350561270004af879af77776173e8ce05f9b2b56c4bdd3c51570e3b07b1e45d0aa1aba4c133d857a8f733e8485a3870a2544da17f6e442d80a43aea71fb77a2fa5b9b5246d82463e5abcdcb0ebcf193adbf4e0f3ea9987579b0a65aeeb325098a0c8a1632ea7d0d3f1af16e5376ef4c405685b95a2447fa29aeff3ad2f23482e58076a5ad5bf806cc7a382e0b7a2e6194bb39ad273a7fedbef35ac0d0229cf8064d7e66db8fda2a50618428e34e7cbcb5937be60af8c4a9587b96558f8517b18a487226ddded660e74de4b34b8a751a55077e5889a3535c866149a62fad8f05000e7bf90f17167be41e0f57885ed481cd4404f5c22f50a9c66a44e72802d0b6067dcdfc2ff811db78976b499b090f6b47fbdd843ac8cbb3e47ba27e64408d4eb7376fead9b73fe7c8e0a8bbe06346aca5e173638c4d9633cc1f696d34f6bb4b6a260bb1ec7c8a9bc806e76ab45484849130646f47d0e0825a02b91c64073713eff2d581a1e49dbe9a7a6f408a5a4a608c252fc27317b0cdc5788e70562db6dea88d8206cd800086348efdff780770316780f300731e1fcd6ef71142de711424d5a846b1a054feb2b6fb964654815174e0073b58ce9371b8549878a340b4e62e743bef586f586372445ef45b19014e3c7303d7743659f655ee9a748f9a2a62e6e90105936cfa05891fb67998a05496e192c1cc0b7206ba55dedf35e6b5da92f971f9007e1a9a219778e8be613b5d4b2aa81252c337640960d46efad9331fe2ebefe690ed1d0d817cb13ba8ff2491ec0826cbd98ef8f3c381efef2e2dd52aedbb78d0eb2a7d1b7927c7dd0ecc7279164af54630d06f667ee021321fe4927dab1e318136bbe101b358375cf97e7e3491cb47e0a7cf662275e068a8364c2c71e588c009f8dd51f0c625fe2d64999bf2ae169d79555d79c24e2628e8d07ac9b1fa80a63b9eb5fa8ca64436289a30477afa7763f75cadd195ae1e992c9aa553bdf8f2342e124c106dd7697e091d9ce7a535ee29c34dc1c11e97f50bd17ff62e680181cfbc5ce57ca17d4385f11dc89fe0a78ac8498ff0d8939c27aadb30bd135b010a55065b52152836db04e4852eb0aebc1c3e7ddd61945fe716866e2e20df90b6e045ee82354c77c16805498eb85d24f2424351d58711a1064e06566caf55d7066d4e9bb76beaf67ddf766de90a5d6c173bbc4091f239ab925a2680817afc54a6315bf92d0b2782b2c00f007bfe4e42db0b44c75508b8839f699a7f688c5fff0d70403661aa95eca8fce696a047f17aaae104e64d77a465ff0f9e08d0ee5622c2e44c4617e1c57798ec6d270a8e4478deb8f2a35772443f55e81976fb961ddfe855d46175351b5e60af468f22770fb63baf4687e00a6133f7f0d64633de57a830eedb8024e7584c1273f20f0865d442c096ca1fd239b818a1d3a99cc56779c5069e97e3854a99e24c757aca14ec853dc2a31d7c8e69c8faf680dbbd969654d11dfd548df7a5ec3466c40549f740045d5e509cb3fc92bf96d7c9979341f4ff3d4466c5c628c3a74c660bc5f85a21b46b36cffe5ea53fa7df7ee0d52cc82ba8cc8a4756987ea67ea6d1f2bca620f94dc67fa7121adf02ff7c78eb013bd4795715bbe06b53881ee4b243e0be0927465adf61542d070b3cd7476214aa9687b435051eeadf0a841dcb56d91e4f38a37caebba401174be13326cf7ebc94b6dc4c465a92dd1a14f30ed3696bba4e2f09eea374afbf358fcde681d717c1f03a97eb3329f3db7b8b3e9b1c399997fe4e8474b0b8d6c8b2805b0ea1d5b0f9c364c48b4b58ce6888d06b8b8006a39258daffe47e48fbb12c4fb33b0674095a579acb3463256b768a05e1bea68414afca7bbf89a37b78a04a3226150012f06123e60eb60a9d207cd8913965875d3fa217bc87278fb862df2de1ca08ba42e4c4aa771b060f26fc9000a02aee34ad85427f8f564f71ff156e50192a06714c8973c41e6a270bf6b7c474a17761698474a558c6abfe50611462d81dfb1000a8e87011d2afb47b99013124c6f6103668aef6f69b61d0c0833436c930f0bee087841dbe2cbe768c6e107da187a5d660d0a551092915403a202061c51c93f26b4a3ae239ecf3a5a12b8ccd141fcd506eaa2728a5f01ec2598422cd43ae31659f08f56443723db97055c35a3c0e37ce14d6b5ffd1551bb2eb11470b3637dad1ec0d30b18245a5e456c931272c9571dcd7a8b18fbc1f035af8bec75b1d0c68d39f5549feed9074a97d365790523d24aad86a568aaefcd393c393cbe57507a0c73715a4fd60a0e31948a0ddb3845074af7bd7839a87fac8c7022e75b830055d49ab339bda21675ab275df0fe37a5e794e60a25860bb0e23496241416fae66cc13ebc943568afc40ea611ea09e32bac15d4bed9c76c7908153d111b5934d90ba6022a6ffa8ae1960dec95cbed420fbe6ce11d2fccaabbdca2af2f95c16296cef1323ccdf13a79cd1b68bee7e5bfc7c32e344de12d32e34a41f7ae51a7914e89a4524f3d64b140681aae5fb90e12ddb51a05d9142689e7a7b7a43d7c4843c73d1fd7905bc2892ff3bc2d4ff44cf9f7d1b7769df62544d761e8f516613a41483183335a01c420fd052bd5548e3d1bd09634ec6b138d944f5e37a0d3ae03d6212035eab97df636be7c8b9747c520bf1e9dd635065c1bc8027644f9091b4a8481dde33bd71b704525715824a110e20cbcc17b5804a4da49320c1abe5bda79131246d5a54e96428015573a240d46c9d5f2777e25e256ac8c0587f06d0a48df04eadb626f86cc95790bcc2a73763377200af51bed5b09d4b6f2bee29be3f75e33cc2e0b8899ec998568af82975b38e73afe010faed15f0bd5a5a20a54f1b770bfb6e1d0730d5ff8f41611f84918a22281c7966a3ae7746970b897433fcdbd3440e43a7a93c9c3e364b07e85bf705b853f2fe9063e7698db2f1bfad5c30b462d41cd7cd795a32e3cbbee6c95ae91400fd9235b0b2f474b313f2e99bcf77ef4f64c0421256a709f8f3a88db3ba6cf9bde70ea92971a2967382585654391c6a2b6a9aa1539d72472721a22d4b88e9cd3dbd5e2b1d99adbeefc3e43cfa9af51847d0f0970b333a487dbe1d1cbfbccbfb1a5d624be9f909511b7d1a321760077c65fc39c79a1e281afbbd8b552691f2c3561026e3bf2ffda8f50712b483b7eb32b88d085ba517c3fff876e5f770ad45b8be98498d4a49549094c5c7a3dff0fc672e6cb8807f91bcef58feb1c2e8145a43a3562a285fcd75c8feb64ec29ae0a25c130318e7a917c7138962299d41f2aa1edefe9e57c412d686d6665a3a8d8c28e6fcc009465e0d284b5675e1123aa58cd9289ba801061c60f3d36d4b1620a304f10937c3d52b2248a98e0d5ad0cbb3aa58c3ce79d25969b9aa0f1c49c8057f8df87071e0d2a30ddef473ead128ec8093526a999ab99372e33d1d11faa382b9a78f5e63fbfd15646f26fea20891dcea8ed49d12bc682abba1b0f5cc1c5e458d1cda2380d81c5d96cbeeed4af5250b33bfbd37d704d84bb237fcb1839897cf8beb13b5db8278bb6ed52fafb7042183d1553f52233cc201d1858d15be9d4e6e671907786ce35fc79c677f0b8f2569ed1578647ed23e2666a849c5e8901566c2d33399624878a0672261a9ac89c30121b849874ac096c8e7d148772375ed27d9be003e69f7d112e0b3ee2b6f93d69543ba75d71843e2ae9ef37a6ce70ac5bfd46495803d35660dee5cf6b984b355f2793e78d745bbf6a3b04adbe14a5122bc2400607c5cbc18eff4fc22b866e6b08b2832dee19e704eb8c56d6607f31c98934e1885636df493983a6c6dc4985370f5c3f0a99e28385fbe8c39ed827ed7391d46b14ffcef9d2cee335c292a3b89ba6b31400e8f359ceccc4f19d2ebbfd14e1456dd59213bd5945ae1448c6f6da74e4ab748bb88cc8045bf981d7a4ec8b2769b9873813dcb06144a3bf15cc780a572967d6a0b2f5f7ea2b5e59237adc1cd57b3ffecb2d5e0ae52adae7cfa9efa1a71749e127882d06c87916d0ab87b99687fc7eda912fc6efe097aa9d33113673685aec6f1e04ecbd81f7bf4068c217b3d53215e2213dc59bf102937096978fbcb7e3266365ab8685d0b5db0bf327c1ac1d2729dc2943405125038ad1380d408a6fb9370ac68b8261cf4663dab305dcef76d4e927642d532de23a767c266613e81ce86ade4cc992ecd968ba2c41b087be366ad9525fc2431118c7c95fecf0ebc5e0f6799c5407beb21990166bc34b54cd4096cdba0469c59035d4015a99afdf4155cb2d527d5d1f073a8c5b1871813422688ca6ac66649df9e4e8161a780066250038a2960efe430fadf1488ff51c0863568eba6da034ded21634e8df15c3304592f3512d9404d83fe62f3078217d29d934c59675aeb5e15969fbe50b3e142b769a99de31d757f7bcd6ca8c1c74c515cc74b7ea0c7d6460e57796925d2e726546079d178f9bc3b8f5ad53e1b5ff5bab321312a9c32e262c242aded726a9986a3057982748acf198dd22e06c57fa07e4c71c613c281b824ae6c6e6acb15993d2050ed86116f740663962d113e28fb80f09eb550f0b958928e6efb07380cf0d8894c5b59836a2cc0345801b668b7a19bc57ca8de63c9bdc45fb0b26b9572fd1b47961997e625185cc254a3122f747e1a58520c1b3197a069ab41af440068d97c98899283c1eecec11ee3e28337b57e3e75ef454e4c590243271ed1c451a49ea79a99c6841495712bb6d4262da99a2cbcd54f321d22732ba6a3f7d41eacb9d5f8187461a2facae7a8a45f6f75008cc73c98198714c05e51fd49dfc80e174bcd0430dd9f0ddaa7e09e5c8d2188f3ebc9db8b8005258d6224452b68bc4e2cca0210c06c57972431e1439d678ad566b466aa4a58792392151c911e1d0422d48ddf98af97ac35a80a6624b95dd58f71ec6d2c245f2d4652f47784ef63c9cd1154f6cafdae66816fb0df9f2c9c662c722a33dcd70bd5aa33888fdadc27e919e0809d08a5be5c3b32dc1a68845027e8329485a51f68ebcf77e33bdf66e554d41dac3a6a4d7629c355f87808941357431e0f85680ac22d1ac473daf66df1424d8a50d43acf852fa17dc23659fcf3e27f8392247a263e28533a6da713a1157cdbd1ad86768517fbfeab7fe10b02db1723ebcd75237c94c1262150f4413cdcfd56aa2f495170523828f2630523b445c37a7b956e1f588252a21c4b0d1e1725fa9cffeb09b2270eca12b10f1277628c7a156dc6b421e6ba1cbcf67b765a03def50e300a85b39d2207d169446c336432ce458f95214c9b60e4cdf750883c7bf8691059256623b1fdc7201e33a6562ef8a3a2dc7919b870510610cf8c581da0f6d28cb3fb31059068b9dd4006e236baa9cf871f258af3edcfa4250baf4bea88a98c7000fd2e0feaa65c8a368974f83be34793a63c5c7d03536b9122c3a0a6e0fa302b058a032cf35938cd650ff8192946012909c46a4ab586f93c0cd8c7e6d4db713418f708fa35d100f0d7fc21e88ed88ff1fb6b9e4495c73cf167a2595354b38f83bda3624d36b3e9616992d709b9882b5535379fc70da3dee1360b152b9de59e1653b9c0aae327e6338adf30f3270f9a056227ab237c26762024ad5dc11b4fc86ecd6256cddbee579c8efb5273d7a8cd7329e4841e1b0759275d8254f998cc910f848ff3237d0b91758fe84c27d563bd58428e196fbdecc050fa44cacdb82a05030e936250c9f096bddac16c0427f8182d973071445869785ef743f9cac8163d582e3422ab1757c916f417d5d10167ffb37a81b9bd5d676af2bbae2a93deea789dd0fc54bd97256a46259c74a94fdacc6bece5be6ee7183e173499295d466f596915dd46c6a31987b89e7de47d867e691fede8f3e1b0b1a0b7783aac7241eb51d46e733a38e31571f9271a1c90ce504057e3983b12e275fd230828aaae141faafccc8b473a3d43c03b60e45af9781b2ae50f7d07f1a9e72b8f8e8fec056701a782daa7f4269b6ddfd58ea12324c61a265a1215fee4a81d0b933eb103fbef59910a49a2dd0b7b463cc00361a651fc03af8e7d144b422b8c18abb91c332a76935abf2dbf292b5277851c08cf8014ce68d81c7ccceed933cbcfb88872d4c01d5f91cc6dbbcb7ebfadd2a95ec54ed310b125e38475de685623087e24ac26fe060331e43aad862e8e0b2e4f543b1f4cc32439861f4b8b2662eb93248e2c7eba3c6e97bb9fc77a1988a4b99660f7830c64c00eedb8ab7239dc001db6771b50def26b978a1c538d5318f4962e56a49cf897cd73c287aead404ae598a6fccca1e614902d8f536d57a1bd74c969232c30c8207ad1f580e112ca4c4ab647ea37fb6624b7d78bc56167fe4cc388bc227aa18723e72d395c2161dd8916555198bc19826733f0429ead881a04f8d942fb064f15bf6a7c84a8bd1670672d716051be46756701b7fe900077d66b1fd33811d0b6a5f2fdf293f05a0cf09583e7754bd1630bbf9de40dc5ccd8c90afd9e82869c8a3fd4102063ef44a7bf6a4a2473307f74263956bb3ed2379ebee7813225cbb1ba3f173fe9b9d4227bb00a3c18a336e4ab3c3f308d68cd7ee934dca0a8cbbd595fd4e29e709c993f7f8d6452ca31c9a6cad797be95e4641f76dcb66a64425cdc5382f8a31bd564d88f91fb727aacc00be8147580d80e0d580c1f2e9c6cfd03cf47a02ad19b76ff22d0ef81d9908a2b299725d3a36dc73cd1ee96a207ef9142db05db22b2e65059fea549434b85a1a679b7cf264548f6b9815890b1847d3a365fb1b178d77f7b1d7f74395f5d80af455226ec5b860a02f61f118f974f61537e89c6f717cf54d256caeecbd357b8d40bfdf4eb2317ed5a7ab2d6cb620255e1bbd2ba54f752b07424f0d801587f7213f479bd4b940819ed6411dbadf5911009a2f635c41e2877457eb8504e06d020d589282e23150614b2f46adc55d9f8559696cefd15fe67f66a0994441cd7724b6511dcea9d9f4d0822261d7015e0799874e2afd96d132e08d1fc229346eb77d474401c70774c01c3b95f76eff497a4eb37722fe4c2e1e338a715046a9ea69fab978694bb8132ac3c782e2f162d8d85a295266dfc6037a5e4df9bddde689a3c37c4e5f31a219514616612afcaad5caceae8b4484a67c476f9b276d269dd3f788ed95abfa8d262b5940a5b6eb89896f1b9ad1722134b0149281a51d5dcaa82842015d6d8aca0037927f313075dc4702699078f076f526501d455ce8baf6e1b848b9dc3bc4cad778f7d3001c7e83c4918313c3173c819ed03fb68ceb3fb3fba3335f823b8b5b0c57938d8abd4dbbef89102370bfa7210f1f6ac9ac23c5226019eae9434993171b9a413847e39993ef5445d05d18e0ff94bbb5bf41187a59e4e640b3fa89c644ef22c79d0f162416144c47c581e3ae76dd1d27bc88d7be11958661cae6f9949ba41a60cdec8ec05033efbad07476adf5714af7527f66c6e7b94d2ecf911ad5fb859008bd25dc6d0b11eca828cb73c2d777da2de698ef5c79d76e9f71d95eae264cbe26757fe0489306ab26484e56277e0b16d4da9c14285cb77fd4c79f6cdd76a551a821858f577f41dbd4a33d084a87a49a3e347d780ac47f2793e513376278d82f12148f53d51a9b304f2fd10434e81d55bd264b758efc4cbfa474ee1e70822988e351bc92429aef38cbbee7b3a030437f4b569bfb17aebefbe8efc56da7992d4b0684acc49349597523d3350ab0c6745d0a180a62958d99affbe4b64d197dcfd664693a96884a5bcbca79ff8a506e1c45b1a1972f4fb9f73f60f0f9b85401040990c377af3155826da5b275cdf33ffacc308677a167ec1769ce78027dd7ed55b803a7b92986add50147266be8ec81fbf21e9e17e2a2ab8b06beebb38f7efe424642c275e059d9753427c1a30f751f66c1411c1ca258570c8ad623ff90b7a8a503b480a4d78529c934581a58f7e2e0a0ffdf18869cca4ca592122701723652a94065874cff32e36469a0b8d1974e4396b5ea7786bc7b81b20003017dee223b91301b0ba62247966c38527fc88e807318b15f7183a8ff1abf0af74e0dcf9e0402000a8b5ad4b6b5ca8cc5840c8394af5e26626b4fc9b853885a813da20e5335e469cc043adc24600ca1ae34c3134405ec719acdb0c8e71701658fbfbfc1436c3acfd85c5f0e49f6df7863b365eeb6598341cd5df7a40b47ac610429a62b28fb6c265e3a0e67680708cdc1cb789ace9a1e468e658a2f7336edb487af3c986f9903ed023bc38d9ee0dd49483ae7facd1cdb52924a2ce1d2ed8c9b767a7aac81f3f6c454d08399b20fb3aaac99d1d53224461506b5aef3f0f390f1a663984cec7c4cbb7ddf35d3e1f2352af352a6346c583811fb8e45c3cd586dca5619176ea98b5ff8631f5ce3cee24a1d393a0129713d7e85d09e8acd5a9a7907a787d6af0eebc0b02050401a551d248c0da6be1b00fe5472e8dd1961b38f902953b2bca28ab16e382931f63dc2cb3757671a038f08d2524c5e94de85b5bcd9d120db1c9b10e1447fdcfc71a5b1181a299667285ffc4621e77c1d0898d2ae748cd48863f91479df51a1481d072fdaaaacfccbe195e013b89d9461093670fff239abb050df97faa273f6c558c727bd3ac207b809cb281a64fefd28a6f968c4311b56cf11680edc95f0b5852a2b94951bd80a35c0acbd3682b9cf4fc12c192d30f23e4eccd51949c883f7008af8b74ae68ed0c16466c649d2bd85de93d50c8446615e8fe46963057630fe40ca4b7522a06c9411a395356368b5d6818d229f41e9d972215e494fe4446472977e4632637da5daef583091f76d7caa81537d2cf5e4912407f8c53e8422bda8b6771913bfc08b37ed9be6fda7566732cafcea5e1f5a66cde7175b4f5420eb3827d26283ed4581d061d4a1fc09d1d588b78791ca44603d713847a54bac99be3d05e069e29ccc4359ebbae05a8308802ed492b492bacf7876b3206ace2722f8a8333978ba428df1f36d18edb15bf3d3c7cbb8f07aef273f6f55d8a34f0692209ce284fbfd2de034a3e202659d5b498dc8aaebe89d4d9985a71c98894aaf069699ff010a2a8195b1138905a4acbcabc26d4c600387295627f9e9d2b14cade85028d3fb8fe92b7abf3f3aa5ce4418fed71e1e9a3145d50232f8de66ddce51abfc1574fb67ed6ccfd38741cd8fea0e9341692c2df1569a6cdc40a14d4c2be25b6aae25cbe6d621d0d3f7d39b412358e59d72c41ca272a280fac647cb4a3958e416bea288296f2a68bd017776420628a25482e195cc803d93ada5fd40f8d5a7b9c1c2f787e4a44153432adefc8df61bdfcdf3c41856f39b4038a9db9f93b2826e58b0a94d7e6d24caccfefe09edb765ac3bc48745135272307c4a42c91aead5eeba39ecb456808e337b2762c815a506a144be2b11c688689277e6f1189ccdd024fd2e0ed11e00ea33a2bcdd978373547c84e40bbd704a6bab65ba9af40687b8aee81c8cf21dc770c8b5cbb911d0c6e21cb0543995c43cb7e7058c5336c1ade7ea504d0cb1414bfd09488b722464e517c435fff17d3a8821245e8ae2c4dba9afc5a86c83d70ed45564b54c3ff484346b008810244255286a6f35522107b74903660e3ba07dca8c538ec6473beccea0d6869158bf2836802df746aa7b63bc239f21e7c300d6f4a5ec5910383982843a324421b6b3afbf16c5735a7c0da6bc306081860c8ba0b8f587f95b020ed54890eb7633222f51670da18209d209df7bcf4e8316a6e7acc80699ec2d013bd6b5699c9499e054397feb425792a9e02e3bd8c115728e33e807cc68c58def62fb9bceb562179f80835e4fff287a92f72e2acf19b64a884fb36baa067ddc7040e5cc6bc2c1fd14b6a76c7dde6115a6c398340acae6884712adeaaaf83c066634676f7ea7126aadb5593f9e3e0a48ff207e4a3710931c8304aedbc49e5cc37686cedb5031cbf1d63f76989e1afb16e986ffdc9377c298a025a225a2bc96bbf0f34bbb87a775c134f448310259976427c6b7ab1886e8a51de5f4e30741cb743c3f8cde014a4f34a0c73276cf8d5b9b5e0d6201b2c57d7a3ede4311793025cc69338791d5414e2b3ea7e82d4fd11547840f0c974ed47ad5302756925d1514d684414763e0411244a35a6d80356ec8a1b2cdeeafa795ee16a21236ac6ec1546a1d9d473d56235dbf30aeeca5ffb7d3b2f5428ad521152efc9bc038ee3bd0a1cf5e5613889bef12419da9bab568acad4e9983a971e09ecb7d69eaf30722c25e21078c9507cd40841f01dbae262c35222e517e3c44ff28a8fd4dcc3dbf8da0cdb7961be51a9a41108b8219a62666f84e6b9f7d8af35859f9cbf5d6183ddc6993b388818a856f0f8b15a1b4e2c50f34645842032888e572f86c5a4aed28ec85bbd27194ff903187dec32e42ce43dcc6ffe9a27ec1c1ac65472b5975288da4d1401d8bb01147398b341edf350768b614c78037466547169bb5401ebfce202e13cc1265c7270aef882cebf061acb82161f9a6c08e53424e4278d2ab6dc1d650f7cd4fdb807412f9527497205ab8b9d499b76ba6e107d60d6edd5b37427fdc20a3500dfaaca128556af57f05a6df68afb6ac66cf874cca2497782f260976a81f0f79a2700eafd200c7f3660e088c36b2ca7326ae6025c34f5c20d59a7e8216efa0aff35e0376626d6cfaef7ed6d19f699646ffa118c467752dff8146a5c6ddefce8ccdae1aa4b63c32a5d09ec4f91736d2526f95f4b61439675f919ee38f2387ec0fdbf64db2ad28aef4704f5a54bcb9463b08b9e5ca4d54a3d78f493458d3c64f5c5af48896d4712d3c55fb6aa140af60ba2e36c3e231474855ffd6f503f96ab9d47e5d0166b2c465db4adc3dd981a69fc23d873559528deae39c96eaa2998de0315d15c08f969a069fe4cfc81a99f678d1e60856b6eb374ae9fecf3a89a23082683fba28a8be49ea67276791e9122af043437302a8719478ff76fca242a18b038ccee45e8e52b5418ea9db7fe7707a6208b37f4a355ae2cee828c0ffae5d9061f0253ee175b402f96be6153b1d8f92f9069328bc9b5bcd17dbd8c798c8ec0c5f7d0a5902a9e8f114d9182bf8a04c3c2799e51a9f741b054810beafd3fe381728d113828de228bcc3b619dce1fb8bcf8f4bc4b2f663be18054b80163fcfee8a3e62b5bfc0f0e7a2ab4f1a1c8ccbf51928d26f507b802c522e444fbbab0c46c9eb649e87741b668b8e1803f0931ac3ed4c5e5f7d1702085e73206ba1ecc5b771fea588bb618b457a13ccec1d1b09684749158bc0577dd3eb8d513f440c5bc70761fde7b2ee0820c0d1671180ef0f53fd4daaacc7e996b6d877586c89a954dde1a28978d4806b1259f127f024a5d82d518fb203d2f069e401550066f04388e29c78bedc24b9ca054e5a78298f8a52a27d34632e34ad131e245b8a9da8530d5dfbf0439cbbcd9d7debda1c1ae7d3c18c3477f73656774a6eb4292236a0c021c7d5702d2163597e1c801a0d3c91dd9c33e175f516ee54ba68ec7d841ff7bb7db13ef25f46ac0d3bd4c0897889f16f71930fa129b8b7614ff31a518bc17435cf963acc6701f0331e27deb4e1f5ea755af7680badc84ba752a85c4f451c13282c232de6f3170c676ca3cd0e1cb33bd7605c747ea8932be76664ca5a03983dcbef9f58f5e8a8c0b0c19dcd5408ed04d22dfa9e92bf81f9d035e67a567de96212af3231e075d4e71814719bcad58dc26e3a461f57a2982a66b61d42527ef09f0e3c0bab48f0ac38b08e74ac040869b1e89d967a6c8664d2de42eb2fad0bca363896fd0815236f0c7f670e6ac66a13b1fa79e74ac79aa739a044b8271e8e8a7a1c2523e0e5d587e9946a7bf985e7a827b13494246e6da956f49e92d9f0a64d0cfb661b99ef41f33fb1685a35dbb8dd9586a057f24dbd4b1a793648f9562bc187894a3e9b70ea665be28bf3060e5baefbf898c9e061946974aa547829633bc34840cac52e0d46fd6c062d40fdd974a6b1215e87dc7d5572d17a7e5bb585158ccbcd4271f83264195e34eaeec9162456639f4460b9c3729d3dfa682eef8a7eed6612479216715bfde889bd1d342291aafddd2e1639adc196593130cf93fb3d4af0239649b856ae21b729a1ed54ea49407609eef193c55e4b0f44061257d0536be35d5cb9e2c1e3a6d12c1210e41dd23dc140aaa9472a68862b1e72bb751c442ca30bd7d1941e0fd6bcd2cf47d0db5702d7c0e62bc10c706b4e0a2484d7128ae598c3a0fde2492f00a2517ac44736044a6cb65a464c126e969f173bfd788017dadad99c93b3dcc12c18c655d30d0e5be17260e6e267e249fe6b53e4c24342f243b6caba6f756582568731caab98b9fddd548cc709c7e93a75e8c4a77432827f7ba88455db82cb4fb7818e7e2d121be51ae4ca76733e43f8b7798c53d487f75e62575c17d3725939e8fec92b724c0c7a67355697b00fb62a7dba23d4a2460348e3cbe7c9ec9f65c3e61909277af5a10b956b022b74fc42dc88c7a27bda2139794712056980f3eaaf58d007be2cf16457c88eea58cdca34693ffa25b85c3f5645851f335d3e23dca5bf81f87882ceee611defe0869e67444c249b19648f99874efc01f82a2ceee40e78c9d16bb1875c62f712628599300352dedf9f6db0bdf3575ae46aab1a83c4220a325280d56c28ed676fd23be52cb1aa50918824ca1c128a90c179e801ad13ba362eae56355903758c642dc113273659eff65a077af0263dd331353f02d124af3d5d1169759d294aeca6d7abb556581abcdb69d3358030f35022f43df2e0cc01c9503a9a11d22c621d863e9f307854ac7b27e2908f28deb3255c1ebd573d6a62732233062e09cc53e209b57ba0f7b916fdf20d8763f76c797b63c4bc3dfa2345ad13f62ebf700de1dbe42b8d841c8998f3f47a2d316910a91560469c92e105b4b976499644e1f30f994bc43f87d629d3aa70063adfcaa2d37ad7bce1960873dc5d6c0537a6afe2e13fbd2f3c589974836ece05cc672d33e5c5d2007e2ce64af772892b25ee55e20ed6a9908277c2d3b55b685b09cfd885eaa32172548cc6dbe7ad655fc5970aba1cdb4d4837daa3c8aa110b2e8822210431255163e77cc9b27a1454a1bebcbc022976a1cadfc490b3f5705aa7048e085b7890b00eabb7896dd9a46f41d78526466ee7fa4900d3747d6aece961772640c171aa8d2c6b0384e86e7782fb58ef8b104b158c37cc39456bf7766839302ffc6d43e77cbf47a0409ff98294cb8b4e444e9bbbfd58460361ce0827ef0fbd29638f593ccbb991692dbd4e557e0a2c80060d3018017ffe9047910dd2b164b7b20fe94d486985eb32ff9c88bc93c0ff226e6d7f1996407cdd2079dd9cea8e3cad9cc5d29a53df020dd7c530259ea4222cc83db2d4f9cfd924f0dc7ec015e08d14b1212c7c738814b764e1f7de72ea1244a061c917e8c03a60d5a4356997d6275559209ddb52e44c8008f8bbe9c5c363f2b7faa860ae18025cce8b89bfd817ca0c0e5acd34219f4716e8728ba5e993063197ce7af4390a0ca765745d36a2a48f423caf8da2c2c4e15676d3e07abdf60ed524e0cdb91a2d2dc8df5fabdde68981413caffc8cea8922deb7148233c35bdf6c616a549d5004836e8065ab2bf44a67fdfe26648bf4906b1e17573842477e0343b0e0f473a2a7a580106df5686228df66b73e756b73873ede270247c49a6886a1d4b010f794fa3904525762cf4dfcd75d4edd0135ab2a674d20e6fe967521868e2180004bc56422c0e0bffe8a0dbcbbdec7b83deb794f0181a49a0bb0c9d149c14cfe935a6b89bbd3fc8cea1e84d4e6bd704f4c4a616a7f997c8b6442b51a83374f86b3834fc3470bc552dc6845004a037c82e424acfa39f91ade35b3bb721cbca848a4971d4586d1c79d8e95991fb3abf11ce4c6406c1293ef30e50092171ae54b21ec83a8897505ecd7f5f44f428a11b5e86b549ff6489b90451aaa1a3afa9e15552fa8b5944ac81d047a3ed56e31583a89cd59391efce72417ac0021995690f2b25240c17f69d3d434995f44069a3647e688de9eb4c86671f8e177e4e006c3fe0ecedd8df077345dc1284f2895993fce4d99279ce6823be514296f33774802aa4ce1ac766185dcd4c220727e63877cf12f10f00e4b47e91da8187501b96d83315468f93af8b3641d86da9d4d9edc04d7d44917121a661ff36e96cfceaafa8dd94a5a7be5508575f4ddd6398ca45eb21c17d44a53d3623cce44da11d713058012c8ede0beaf9772903cde745c57032eb79da86986361542d5934cbdf802842ad5e78c3dfd80da95d988fb9121682dc6634abc3253baa7c8d20581f261ed005ca883041f698b8546998e81a1a00f3114a44d6a2484594e65a472973536f0067e99e54342b97b25408d58fc583b820464e6d56874952297c335c481f1258b7bee078d9514f7174160238b175d748c72f32fdb85d6a8976b3ff530cb245cf96fb101e855d4397becfb60c704447238f51b12a9cbaee120c8bce580072905d65327ee575b0d35614c36e455fd2fa027e12b44b3a4999f68196841463b016b58ebe189e990f0eac3c949d0c0842a52981663abbda89f829ed1ab058a6eb69fe9df2d95d33d20bedc1ac8b066602f02ae706c3155be01c1b6e3b141df2c1c549c65896085c586a8d73b017046b69843de63a31c9adf2913da435bdaea0b3088f5f83a7197fd1ebc2e501828b7b1ebe78153073d35757b54035aeaf91beb512ca616dcfbddc52fac9ee567488ef54507df0e26af1f293c49f4a0d85079194730ceb6af7d4063e07e6295db7a894d667c65897db6dab6b3c2d10eb86650d2693d0bfa9ac0566f700ff746e486729de134810e15d36c57d6314398c1b655f4cbd75c3417ca6b5ec58ea7555c18be4c1ff0e413c9cda15341a8d786e956164c8bb8f82d590e386eb5303102244f0ee6dc74cf6355aa084014a2708e5b7062fdce79fa9c23331bac79eb3f20d5db4e2ae709ba12408e591f08d2426c5824b87bddde08ae213ce095261f20a718c9f524cd3499570e59bcc81eecf922217b566d83b099cda73d2809e498d0ac66a5a42f3f931896cf3d55cdaca24131cc7c57be1174df8fca10bfd9a4944eabe9851abf0c5f11bbe3ae77a42495ff0b7a22ca9b81371deb85badb5f5005e6669ed89fabb5f5d4b5625ebf4f3e84177d013c2861b3c752e9bfeb4af530d607b6394698e513eaafcf9ee1fab380ff579105b9edd271b39f0dea8b447d7ba03ee1f0e7e3d5dcf20765a6ecf15d9a966ccffff9e2caea87dcd8dab9eacf6ce54c53a4493cf340a1ae7bdb841bbda40f9c81f8680275402d59330f01361a26725cbdd230482a277addd376284bc8e1123cb17f94933871563b40f34aac0bb28a710357009847f78bbcd715ca749f00c57b5f12128eb3ea5cdc7033b9972db310767f3beef7c1ed5ee9003b66e2753d3326c6677fe9f8f555d06d65b40f867965fe7e6d0890286dfe7e15bbc5e306207765a3a1be4d00ca71ccf30080026fc512e6b9db8e8237bb202e0384276d26d92b8eaa9767bb6fb0bb5242032f5a21df3c61219815fde5b571191b00ce18e0ab42e0ee64793ba5581e52a22b13e694376e1bf94461ca9c9dcf15ec9a86a7afff60abca032c8fc9a55b1adc708974b2c0b7e9a58f32cec23a81f91a22b80c08465376ca925eece7407d19be432376a85bed28d9e129a84d28b3edb2c9f1d1dd296309c9927e13628668285504f29bfe041ddc7866b5e42606c25d0721d1a63fd6fc64c915cfd70d85d9021375b6c95fb4b803d1c56666a657e1d6871dce3f728b267830357e66a99194ecaf8518c0c554bc92469fc6d354267e28080ace35302b066c89205764752654cfe9a599c97146518789bf9894fa9ca6e574bab6d8590c456a9fdcfa3dd6f79c3dfc8dcd27e40fa697939096259fa0ec811592d5bae52653b371bb5f437679a06b363b4615d442dee2966b8a9686c62cb3825202885aee9c288e77b8d130836da64a3c286a3c72170cf354b2f84084b7536c866b4d2ae613034a04950649f683001c7a13b14d4f0cb761248ed2a744b3cdb2ff397f31116e9d9f02e87d1e913a33b55485d484c8bd76e305be7cb8b66dedde79d4e5aa88bd3982f7e7d34d6f1fde9ecc49e2ab204b0ca12843f4bcd8b705372fe5e0c0324d795a9fc111d184d4e84a5731c793d0052e11fbfdc829236963a30c6052372b5d47aff40bc4d8a4939acff4eef4a423ac1ce459d30be1bca86f1d95fdd4e53b461f491d0b73b61e6cca1653eb284e767c8f0ae7b253f6a74edbc87d56f4cb0c76835fecd07922d249bca3b8485622de7876a864d03baeaa1bf444a3f9f752de39371aa4aceb1aef8b13281adbef543f99ea4cc2925d7ef4bdd14533c573148400d61628d022a75faed0600a51da03181b8c83b0faeb3fcabad1ead38087ee5d0b5c303e0e94355ee38180ecc119ac980a9463c90075fdf1df2358581036e300569d73ab6d678a9a0805fdd3a546ff2cd1c50e958d95f9b3ab891026aeda6c8fe46e34e3f9af764b495755c8ade803cbafc5f25c1542b2476ab4eaf0221e1408b47b1feb4c422f651ad17a7c90f7ec8a668acbedc23b1e7c905ec70250f6bed7f890c6df94811f9dff3a90681a3f37dbe09b8a3bb07d1283606d010d858a70251eb461d56580dba2f7ab082e4f8b9915007c427cc35e0292423c25447a38a03fe7ab5ff6d531688c7c95501980a805c85b05a5791d02627f3256ea7dce91d80ad34328eb47d5ed73498e9f7a6614d81672ec25c1f6c60213afce3503061fe23925898f8fbb8cc3390645bab9140f5637b368df40f6b3e788852163fdad3df14f3594b61ecee7a039d45c400923da6ef5ec30ff2e024e654affb605e63c006a1710aae2976f638192fd2dcdd79855fad2b4edcd3ee326fe4ddbefc81d965cc3de62dac4e91b30617c0d88119cd0a732a95e052687df567621a668adcc75a1ed66e1430d5dbe79ea05e8e37fcf8f60baffd9c0f82805e4ef3e1cd8f089640ff688831ac46e9aae75d61f8a350cbcda044fb0677bc1654194ff945f3a08fa304f84de8963d55c983cd87970f048bd5850c076c2f50e888af3bb8ca8169161ed6c536eee701eb5942e772c6ea5654805be65049a5f7db7c6fd7597d6a07c163b4e4edb69a3574b0ad8e9fd0459d9ac59a66f17085e3d374a9b31b49c24968efee141d55339100767cd54c82568ff1940f1df4fd45bf649c20bf35d2020265ad6bf3441d35b0b816200ef8d4f92980cd582bf4db9ac5b8308f00f5a2856c80212478fc20abed8de53aae58672a1fbf6f6a2b45c401e510882021830a0b295936a7c4314aa050594e220106a38cd664110c66e21737f49505f6c6244838c33e1a95424677a7883b2f61aa30cde5fda0f559599eeac1f66b8da5bff86c16cbc54b2412207a53fa4ffa37f819c39fa9098e428f4ce9657139d9b4fa81d58f7d963e9dc88a45c0db0491160633ce4905dc920ac4df81afce94212254863bf4fc37cfdf7e81e50961aae224af0dcf14947253c85cb6d96ed309edde2e0c287919da12da2f3c18cff80a38bd5089f95701135ae82d8fab3423a9794edf80fcb6a95fee15671a7fb9981ebeef5ce57f0c817500aa91e01bd9d45322c9e551e127732b46293fc567ee192b52fdbca3d550c0a71ca2ce8beff81635551df982a7ada2718644b0221f9ca5e3c9dd0365a6e7652d8036ce265670e41b2d0ae10a120cd50fbaa72ef498753159f2ba702838b522809d232356a6e4c8a683c420010b6baf2d6428993af82d0cce4872c199b34652514af95ff1ff3cb5735e7571e6ffd60728d7b177b92dfd79be0018d556b8472b2f3f9abdebc422e4c5edb80c92ffbf9d88d1bf8933732361b042731e57b60a806fa7bf113b3f86ce53ef1fc78d3b79620cc0e4a43ae360069caf7ee6dec0060f82ce731537971b302f2caffaea3dbc51fa2145e3acce78d9ff1ce65ea8f255630cba96fb2a73d71bf9f45f41da7b24da4c331c2239bab651f12d8f842c063545714a5b5713367720d4f39dff8fecb2d56f2e37d0841f65dabce510d2357888baa54dca52c2d8f87cc667c8be3ff34912952d770ccd2658cfe69032c22666539775ca3f35e4c51f657ee1b657383a326ae1f152141d8f63899f6974229e5c429e99ace9399ef6f255aae530ed6a14996cf49c520274e4df7afc2c8a356376233141e44cb6c1ca3d7a576d72b6e6990d968cb794dc73f42a5c886edaa5c37e6791f1fdbf90cdbc0f1f0819ac9913fb04194ab64af3732b2568fcd7fd47cd45a4b0dc31ef06381f3a38740f8396b5755436d28b398f1025b4a834ab44ad0df8159111ec5ac4ba85d6f425ed900003eebc25d5bd3cf091444153b1cc3186c116183628d9d5489b5abe6364dee089576d598eb8e0bf9bc49a3a353755f9d49da0af244b95079f296511281ef9721d4eaf318fe85344fb1cb88f30612909f09c160074c035eb62efb3b23dc630bc894b75ac571197e24a404b35c8345e7e54794bd56d540752184972c9cd54ca27fbc38f1550c396c1d74c95a5bc0b42ab48c0571dbf47065fd163ae4113de0a8e46c56b1dd243dd9f8e7bce5db864b9974ea69f6938a3c60925d9f9474f71f7c303907a59718caa4edaf48e5e0c6d3f7c660793701e13be9c75631cd1cd31610a7849f8bfd3ba9433d2f230ac7c55424a213db38b0aac22388764c515fadb249c50106e2d1a7378c9b88aead21cc4c32183b475395b3bdc516638460d832879262dfecae2d8f62e1ccab70e5b3cf51ddab56dcd9d3405582d9e8ee4fa8fbf6347fadf1603a0f2b54f5a817e5a635d8e7f8bcf80fb10126969bf4341de04aef0151caf9017144433164456d4e35edeaecfd078f43ee16dc1753675a500d78e94996815828c963a853ca7f73c8f5de156bb6ff9be75bdfafa1372c9c46c71da354ef28530307e14de1ff78c42fc1be875ec619d2c5225b998dc5926a971290eb6a6a2b41bb8dfba3f2f59bb074b2167593a73b3d5aad0a7e3bb14500921c39d7785a476283ce6fd8a7353da91a00bfb7736d4f98cf70f9d086f1f2a41d405e149c49e556eb9bbd33b03cb9fcaa6ec4a4ca17c1a37d9bcbb660eb3947fa5606f58afbe5f1d8e015cda8f52ddd208b62902f35d618f90ba65907d7b2083f39e9b378892fe58ffd8a99ed6c82819f9b5c8b8d56516798406ce1af89d126ce2ac01ec02b4def3b67b96c330478a68ad230de5a7502540be588cfa900f73bfd86b58d7c64232b03c641e8b056089ccdebb5aeffb4bfd166c54d4d5a83b1fb40097f9c8f12ed80684060b0554ad33b9486d65801869d2326148326778fa1a48cab7d10c9453327f6118eb3e2daff65e2c15dc1078dfaa22927fefc58ad79969692aaa373361b4500b6a9ba237fa6673d14bfe374a1fe2609a21802b40a87ab45332ff9b4798755e9f4ee2ee2bb64e01fe406fe5f0b30baa37a39c974c722fe2c51ed4c6bc534f9c9c94df63566c9d0382a8d72a82f65f57cac6e88635a24b0f3d7f372073635294660e53731b2613a8adb6287a4a901cd6db2c4acad9913267fe6769cfc1369d12c6aafb826fdbc017d42c924546cd82589374506fe65ea09b8fc6d54eefd6dcf4681d91155c31b88cd0757dbeaabe5d0841ec50945f1107cb3cc654b0b8b102ba5b171afd7e88844d7fd21f095b2d3a56d6d117f51d12fa1d9444636ecd33f9b5950fa10f895b47e04296759a745cba7b682351f74bf12171e95545cb543361bc6d9b8935c1ed91687e73b89ec59bafeab2ff0a00e97c72d6d3d9442b652aa2ac1f57088f804956ac1bd8a2364faae32d9396f3e54b279d95ad1f7e8b8c41d7884c5e7fdcb38e89ad085a1212c9e8bbb38ba9346697bdf998179bec324a2a63a87754c14b5e91511fb533db6e1e5c2016419c0e9c4a6e5fe172a8a9ff94c9342688fd7c4a14c8d73e97d0decaed7f50b6ff14959db41fa8b067618f3e52b206e24d6653047f8a1bc1a769b7a808e98fee342d2f8a7716d8976081b1cfe16f234bf49c5ac1de9f5d98e3b18a9ef5b7d4aef131bd890cec237b0e5a5e7692a078b293f90e70821dff4ccc92d58670dbe1146df485753ed54eebe1d7999729e00211a1f6f4435095ed86e7f84213e722777381aa4d26ac381be9939644565e82dc067a996d784294f62d3cb0df31fd2081472d5f38ad4b95c7449e0561f05f1d7956de6a7ff5e6709c38da503dad07de72cd11f3590fe3b8d150c19c287d4ce4d74672ff95cadd6946da513b5630925a3344f5ac15768d467a8c7f20e3afbad1b6263d107a315d14e64236a5445fdbe1486e415aaf283b8dc23f9ff6b10f31a210a22d230412b01a6c8ba3b51e06552c2c8d85ffaf0d30aedebfad8ac128ae9e6fba90c34bcdb34aa6bbb4b189772752ede5f31800e58413563878c292972237dff99b4a556d58f4600f0b39d614ab8d94d9e06ad9e5a1364c6292824e73f06c86e7e73780342498e5c14c92b7a1f1cde8be4762f2edc9b6ab88d3425588730d35dcee1938eeb1e530b0a207e875391986f6450585f98dbf2d95d7b27c0876bc6d149206aa502d0a7a1338534cd77dbf6d259e73132e57bf77a77b6eadd2baceb64497a38035da4ee56ec11b68c7e55c7a1d37f70b5ce16dc9e463c2d23773f43b0424bfe86d8c077c8cf180355750ac61be9aa4ae7dbc22f5c377804e2fcbb30a194678607c2ed1c30e02b8b124d2292e05758bd663cb7b9c1662e462415eb373106ef7128d3d208fad30b8b0fd30855a931b778873c553eb751288440abdd45a95eeb6c29b4b1fe1ad3df7c9c366e4f831013f6911b6084b863b68c61ceb1e80a57f5b84d47dddfe85ee35709521f68f3842a77d1a7e12c8bad4f8d137e3780b1ebd1ccce20ecd07e88b5c86f046d4974a1cd1d59350e923de98491d361034e516a9bd8f10ca91af9e636703fb69b6c091713b068d353ccdac853ad1dbd266a52b27157fcd941ff3c04663775e57746d764753900b8777383861c011aa001724207e269574e028e3c2097a832b8cd80bdb48949cb7769b52a130399a2c6134f445dbc983ec39ddddd2060f970abdc2340a4339a8ec866208f5bfd0dfc9326353a7cde4bb0dbcf7d1c399eb8397501abedaa97c08c30fb81b9b1df56bfaa3965843ca32148f9b1d657ea47bbb25df902808116965a1bc7ec1d41cdb60f05a7b6b96a99d50989c8c17940c1a4753b9341361b4398ee70da7c13dd4125a24eeb14e4127260c009819bf18396dcdc061d39e38f14a494ed5951320212c1bf16dd946e0625cc7a8fc7ef3579ad336fd0d2ceb7aca9a01aabcda30af206bbe63d669280b60681d674bfb45551fe0c23328f217e066d973d8bd3698edb68c55aaa05e560689a26159993f5e47bde6a073d09f73fc8d09bdc3a9f23a14099b2e1732b1fbe329bc279f12ae5667ee985d785918c2572fb16c8fa385ced004d22e8368a309b4f07778ed71e8f17e2eb2b7b2c81ac548dd997c36a38b3c95d893f5f515dac4e871f2b49289ae83997fb4adf15884700d4e21501bf30bab7f766db9de7b47eb44a67a6a1bc00ca71ce6b4d673f962747bdc191d4db50fd717152b11d5d4e5bc7f6afa98ef8fda1b57eb375859ccd706b0043b60905a88bb3bb2fc1acdcd41714afeee2dee038965451d1e0b67a8c91759ea213f8a2c86be1a8baab3e606d5e38985f1b5423f4105e58ca0a1cb9867588dd2e1f9c8c5bede0ba3d9af839330816687cf866ff85269f04d5de01f5b7bc0aba824cec596639b604260491d7ef7be4b7233e4ccf7f2eb46fa733c2be38b7b6679dbed666148901372aa326542a9a80f14dde08b9b497b952fb2700ed6cf67f0f87e6bfac0590057832e029b513c4b42226afea154d1c40d0ed0db5510f0903ffadf3d1d9c63c89487f1e7a290880914b5aecde02905fe1abcbcb91d1f9a507afa87bd83b6277466d71bdf56d6812359c89d11e3335fa40ce2fa89e2c6e2feef96a93d2321c46f698c9dcdbf7042faefbbc1266720a7cea02c0d35d07a785c7110a1a2cec5698f9806e34360a0e5da36d344b124b190e930cdf2c262e8a52078ce0418f2de6267016999ce7e19325a4db789d3293caaf904fab3b4f36d245550da4548bc7c692e411b830c6a85148b94f5536f522a9bbcfa6afe525f9cbe696162e0b7ad014e2432485cfa04ffe999407b80337a7ab2433fddd18345bcc229c8391c2639a6edb6975ecf2686999a96d51e4e78a03dc5e152923cf9894845fdad545d15daf578df649179c038d883771816362c53185d86f0cf27cb9f6d33202d4f04ddc8500a726d58ffaf3a33339f548054535cc536e0ba5c34cedc8f35b91ce6dee63d698c59f0ee3030a797f06ed5db60dbdb9210e1c208a73989c461fad27c28fa07c8f0f96dd23e9659e618b01a8b36c6ade0c87c1423656ea057beb5c6971ab61349b632ab47fe3b787348de9d5aedec3aa5ccbd770201f13f47940ffd610d9e649bbfbb96d53dbe4387559cf5f281dd98ebd5887d7fd6e891c591385b292859eac279d603c629013be01adec3640e952b4efaa9c07737b698babc5947e0a1078f95528dd2aac0ac802d129122a49218d2820905fd4aa871a13e351c7f9d91cfd5407ffb2ad357139393becd310a4d2e05cb3b03405d2c664b22c876ad194f0363c41257e6da2fb4d32be7db01d2a2b935843098fe9ba2d8026751ab14346383d17264b71d1819cc0f81a193529d987b26993c784ef031ae85c5ee9d946e083e4b74c6d11b2e28a637172ce588eeda39f30c095ad9cdc5c3882502f0706e3bee74448c269c7e7a9eb6e09891caae568ef573815d62a79a08dd2704897d7f5b7c5f33615857af0a096ac5475e67a961e1bd7812f2de78daad839d2677c30e5ba25be4eea7592c956e0923314d960f7350e55838d6353d49fdf80ec751432e80b5beced3cd85a68cd1ee4b00a414f36b8393655d0ab07601a99d34b1873514b5b7e1bde9acf38e1eed9101fecb63cf6fb2318408d108a840a68e7e31430c9a6812e651dc968f9c47a0b5feca543aff4c5eeab05b16d3de43e56b8ff7cd85c0fe9c157d0f1d7c4bf8f63a6eeaa33b41757d4375e2d89b24347886bdc89e5127d1d00509d6a73d5a4983c9731c1b313b861f5775b06dca0b23fbae93027b2594bf4c0011f84da44cc0f800a088bfcef561c9ece7cfb9c029174f654fed55a373500a958589a6bde9a33bb47eb8ab845bd70bfc1300bb269528fa7a65ded71b5161e6a4a7108fd5bb6056c20a62d6fdbcda16efd7c3f99d6fadbe51fa2ab70c61675fa58ffc1fb292fd067e3502f8b34e4e4b5225c0be5256763bc069ea4c35f93fab58aa6b49c401a0d6386347996fa75a0d7c826a2502f01aa74ec2880f3f129186b73742d2fbde20ed72ed4b94a24557591e890766156656f8ed4629dd42cbb95f54c990b34ac5b012659fa0924a0843dda166f9f063e5730d84ecd83fe7e552bf11c84a0aa9968c91163a275270b3cc98a05c5e35071ecba4a7e090156f483f10a0ef4c1998f3c1e9f4f3bcba676eeb45d440ff2c6cc64c38affe0846d37e4c29d9cfb315b8c30389eff2b40eac47070c53fb8d0778171f0ec65b5a70ed33633aba4b82b701b28ef86dd422c092acb13f030b348f264d4a1013bd71baccbb47ff6e1a98c899ae1d33132af5b416f2ed30c5027120822a753d1d1e522c898cea599b49f82b026bee1425f8df03add2094af006494f3673b1c4812d27414dbf48b6d2b65f17a1e0d5179b3717746be605016750c3934771581ec0cc2798d893dcd9f6962b7934c864cd4b53d949c8308e5db3adb897ab71f7b3589348ef71ea9d000aef8fc4cc231cc96cadc929e29482155400f2ff96444ce9ba4cbed119cb9269da1f1e9e57b2b1ec9c1a1b1d8e590f82a0be96ca56c05198877550a4d2deefb4cf539b22987e6448fd628a0061ad55ef6f70eb9c743d5c527dc17bf9fdf3c8b50c1127c2a751610171c228e8881ea408ff34609ab61846f8fb976457227b51990aafb1e9bf3b37f0f86af64192213f63643def9e4433ac7b6d9199d9e70dad85ccd9c2f4190f5ce943004dc1238eb969434fcbf6dd733adb09ffa558bde34f12cd0f902128e3c0e1f81c1a5d5322dd2953445eed934108ac5c627401635aef3bd124638147947661f4cae9ea75fb22c7bc8997cdee0a05c2aaf180868a7602b6dec0501f503f62f6ae0bc1203220bc934ba18a2dbcbf74c9d617dc54d85bd2bbaddf3ed715c901994653c8072ff72912e7a15d9f06567ce3abf2fc76d4d51ac310513b9701594035310cc629edcd6661d5b28721e047be9785d6630fc5d13ab2f638220568d85ac97212690339529ed5d2935fe8b90f07ad24c80c95ffe2f47bde8c94c22778d4cc4d3663852c1a76bf2115fa5afdb009bb2004b23bf9bdbf42cd9a3ec9662a7bd1c8bc53aee41de6a3539d585d7b2f2c87ce78de3142bda6651a816e99fb267c9010dc8187e737a166b3a5e7411015647ea346d09ea260ba18afb4fa342c6788d5b144670eb6a90d29e63a4dfc8bef22de16462b8ac3c7106ba97b7820f22c09fae2940ad52c96cddf8e7f876f87ce525ec1817b17293a56dcac71c2e4df7964e298e029632587d7e07e2a5bf150c8626e04b787bfc6a2ede38c07cfca199451afef3235a241e81eec4302125d83756357d2da7371210ea10b6800d7cb90883d95830619dee988cc70b267894f2c7233d54891b3c5c62ee27fbcf3cbefd3a5bf8bb2cdd8244d1d071161ca90669fe2bbf8afb6ccacdbdb9a3779cd1e9459fe1dc7636af90ea3be4ba6e830989d35e83c6517d8e943a88d8d15914cd65417e9e12ddeb8bb3a0567564822b3ae21412eaa3a3cba3cb951e345a51f84f5919c837c3c6b012704f6789a188b01d1366f61173f9ad2306a661f9955c15e32cba82afb080088e34311364bd46bdb8708abb234198bcb6da57ba7b6525b14fc4b6401cc58ea01e51e7349f46e6097d67f5556dbad1e03aabadf86c86131b7d1e1f66f92fa8b14e530183da237629f79784f07aaf2e70e4d424ee82360d2a9e89635a00bd682ddad9bd9019b4a85f074efe482b1c75131e2c6a7a10948162323ab85020364386f34c5ae6aa651309cf204210731aa2fe85a3ae9a7f6dc22b05645e0ca5680b74c83ce8db1e6d4b34871eb73dc6252266021e1029484612eb0e296176d0cc8d3ee740d9bf1409eccaf421eddca588e38fdfa9cb925daf881d7966b1b2775f521423e1357aa55f1ca1d5a79fd9ee8eb3cd6bac170bdab950fabe95f007762ecfc28c9092241099acef46a0c8ea9a8034134c4dd95e3cb98c9097f37faa16a68d7f4de71ba7d9c13c62a57c3b941fc76e7175d206bbf4b81cca0fe0d4f2b3d7f66f0228c540c554aa5c9ed3dc13e30f39db1d04718a12b5055743a5c86600769c5d8dcf686fcb5b9966ff970217ea7cb20e861413d7a9b81715da50bbcd0e8408f5c934a904248e9bfcc9eea2e6117fd21d80de5bc62cbbd4f8519120dce77af0fa176bf6836f38990260bd4b84dd4ab114f1e7719104ca31aeeee4f88f155b117c19a25aa15e5b579d7720ad02b2e6ff6508cd98765ff4c51ea61aaeb93d4ebb74602ba977e0b1559ce5fe93fe8dcfbfb913297d1e19875a3a1499cba55a9411eb378a276f61be8d90a50a09ff57cffdefccf32392cae5a718e1eb7e899b29918fb3c1af7642c3c8c23a42d24c81b3fa531da63d78f57c1310251ce6706cc094b087c99a595dbc878c1dd588459d44a2103202b537860be2aa0efc66608b3d7fb359b813ab9093b86222e4651a67b5899f73be969fa07241cdf9d45f34efb0174d4521826e420ee1a98547d1f2f5d1789c8d6e0774a51b7b48cdab4fd4a134357aa98dbe58eed550409cd7dbd7a078fdee5b9ce1443e48eed45965d74b458c0026e5a788714079bd36e4e3a7e90285b42f1b181e3e37d3db1fe198c47083dd7f54d08ee3c34c82b8d5499154f7e7ad6f343419ce6ccf0a986803dfbad037aba8469efa80c95d743bf5e963aead6bf06826422ea07c4b5b651e5edffed2a56d19855649d773d40acd1c0c469f72bd05b32939af302350c1b9e1e042f4543f90a0f9bbdad66191a36a7c6f8955698b49336449cb88eaeaa0f536d6b7745d9d09758361ee5cf78c2b1774b6aea203ad455eb9cb9bd7560ffb020eb97ea23bc04bb5e1810514b90a4641f42131426b1305739f7e6d446a1003972034dad027ffba54ea5ee833ef8913fff315ee8cca3b219db630d4c6c6c8d7232f5b3ca34f9ee8fde36210a5d2cab57efb124c347398698b9226d6bc2e05d083a54c2e3d7c4907bd198255cfb0dd863b3effd35fea18773ca2cd06d39bd8391d188f0f4e4c1be5cfb8a6a17195ed040d72edde2e68abf6bdaaa8c5caaea7a7d4b4d40ac06924790cb43fa871648b4bdd743009c4dabef42777c5779c9f1c9415c339309191fbfd76fe9f4ccc0d7343302182e232b3c2f50bcb5e61f0c81326b811c51433312634bf61adb21bf7a4ca783294522c57a975b1d1964496bec71747ac05e29825b0ff47067a8167387877fb60a1a37c62800936ba6af1b27a69184902c648006ac42ff01d4bdc00cb4dc03dcdfa52c5f09cca93808722e13ccc7762c3e630f80fd32bfe35a9c2eeb9f153415e284bb4b67c5756c23ff6f7e9ae7cd042b9e596b09f2e8f3666fa86048c7b19ce0c46bc68f0a9b598d08d47cf46175fffacd3efdd0a1c2055767879992dac0f9bc037290530a19de10203634ded571bd07a9fb7413b9334303e4adb3c5a4a022ebdda1338690ca242d0a1ad10431e3a881b944f2db57e930326fea0b0f90bf4af7accf8d83e22a6d94e033f33360fa47eb83753af3ab007e2287cf65fe538b67fd953b86a7ebf1d6ae04e2b4de8fc4899ffd0d7d6965e9a30239cad907bedf4c2ee8df86d379598f13e202ec9afcedbb4653f834113b727f778b8164030a56a051cbbcf4eb891de61481d0e5a253deda61ff50b9027f317819b9c889adcaf6c83f3e7b6b59a489c032e9abaa53a3d0f7c430abed17c3bb7ff73aaebc2562106f666501f28a492599a45302cab1dbc88215810bc76f8d5a2e0fa371256f0a34164729d2b6706ed1bad62db6c9e1de886051fb1208ed1c3587d7466aedf56d9bd9f9245224fe0869aee4ebb597ad21e7d6487214acb83d1d7ab7b9287001d07859a3e44b46afac36e223abaac703dc28841c270ef6bc2d720d8c175d9044c5f37505744d8b0037d16a99a4e8f976c941c8c6bfc1fd2891cb36271f4cf6527cd48af03cb9e5f28b315d806f0b84bc791b41918d64e2ee765ecdcc1cdd2c23961f7dc935a431896213aac713e8562e31463d9d23a27f476d4eadb4a48a69948e24120b60db8d4f21f39291ecbe284b59b5525d3deb9e2ca65c178b1dc04ae4b4c0b5c296aa07d1ca3ac9b35ad71d3581699919f54a24de2ba794f21a6eff38b4d80b10ad3e9221fa6f083a47ef8432ee29646d4a3ca35e256a2afe87df1917ac4a67abdcbcc352ef7484e37528c02cbcafb3c8f8391df52af575b7a119c7eed8da865d84693b00ac2ed5a2a75d1e328ee40aee9d0269aeaa465d9ac150438dccdcc6833678e5c51f22211c8d093cf5ce16bd7730cbe6d75cff5c18f83b2ba7369b4c8f175f8ac564da282c89297e4b8145494ec6d9b284c89f20157751b9563dc08e868cc738230c2a7d6243c65cb0a0e5d732ab427d0cd841fe69cc35159665400483397622897a999a7f0a0c7ec011c37a38c7c18a8a7d402362ece79ac60b8ab13250c475a55494dcfa061d16be22df604755ea275d677fbb410c74662a6cfbc1562e8496a6fb273b7e3d079b119c6eca9ae92605a8c44421b84c37806b3be159434c6bdac319658e6961889fc160592b42c84387d319d72f7234febc15cf7f53647b5b96b43eb6a24f778992fe9edd94a28b7d15082551278bfa87c417d6e8a7b67425db378cbdc176477c349a903831f11a4ed3b7d25d2c14a138b847a19fda4bb79eb98c728b7357a004cf8acb7656bbf071011242ce5291df03a3dcfb4dddc9b62447fa7c40242369979e6822ce7761b1df7691d93b4e7addda32f2930b87e859e7e4482e6c0a3c84f968f41423079411ac3f706b2858bdbc263b09f3f9e8f8c8947d44edba22b781c8ee8fd09b2ade0c14752c6a4e973af4192786063780588c40864001c555e12177c1bec06204196c27cf0a2d1358467ae2d13138688300fb9f90909e10e5b7a7670aadaffa2cf59bcd4590444db229bf0632b6166050f8f8f5250d03990c6cfb0dfba976c6ea77d31e540adfd0cca07777e4248ea04cdf05487395a26c5ee79c43f1a53ea6a3748a4b16063d74cb5b3720eb71b0bb61659bb608886334be426637d6b650ccff1a408c87d8357e9880db00e2f30dd59cd1db128f4debb50a4c1ea3e197762b376891d39a17ccb02626c51985e89dc55e7b900be0cbfaa27308db30b626eb200db19f3cc61ed2617ddbe3b4a0ef36a4f853788b5ef0da47322c343abfe5da3b101ec76fde8c9e53dc1f90d56c8d97b48659e622c62ed9eadba3454bd37a7444ce28a577ccc4d03f89e735d9e3aafefe5922b096e9f9d3eecc0c8213622f89e4ce216fc0bd6e2546651bcf92db115412475a6cee014ad70a3c3855aedf72bd9351ac983bebf45ab13c172e6b87f3e0b2be3c019c401fc9285daf966db25649a9fd41cae1f90626c4df2e185091649877ab1c839650f825bd9b2ccc8fa31149b5edab270d441736807722307c26ddef97adde6282535ccda95c1d3c8cb67c9d83c189e66510dd499935aeb0612cb9476c747bec40b152defde724d0de55965c6aacd0345bd8d5530673fcf64151b8e362a3831581c1e8a3241398c77df701d2c5c7476f6245bcaee28c2fdd3bd37e736be6969b2bf0b0915504053a63b6840fc44b09a8767917629153dbe4daa7152b1b98ea72c47e3e5057f0a769d4e1870de2b2077d928cac7654ac88317125676b0ba2c8841b6eabd9e703f3e5502e9a5bbc36843e1ee6075bca193253c66ec5fa340e0fbee66c15a65bc20f7e5307ee60158797658c3ef657033ccce0e4a863cd4916b06d1fe11de8450355034f7cda2c3316ac5a9ea20d1521fdb8e21072d95d4f5c30f33c4367d93b61d4db906657d7f6d7038c0bc7232db20b500d3128a395fb5d29bda60b1d17055ccf64f3b085714fdb30d48458d3d23b7861cb344ca2459622c997f7636d0ecba83c258a1d2486eab799304eb9fc84a3c7ab1841b79a2e6199514beca60679192b45d0b1801c2a4464fbc7e8ca42d36a90622cae65b299c81c978a177b9fe9c1d9cb172e2cf59c78aae64087f78b32efc4b0f31f53f780de148431b5fd7168f462de4e3f305f79791c3c6846ac82e11f21305c4342d847e2c197d33604b71f1fbb46dcd92bac75881ab62764da17dd5bce756efa51ab03d7cd619a63f4351867e2fd7c69a051b419395fcceee2fce46934813801f127546a6207742514ae05cc14b356ca2069a47f15179da6852a90bc1a4e885518e8cbad26c3915d7b6d23494949da613e3272027311c10b095a7174b14976ebb3efe864b663365a03bd20855c567681ca8d07454c5576d2d68d4bd2d5d1bf78c81f9de9dac9d4c7a8711de383a5197ddd829c195f3f98373585560beabdf16034c166e90b697e37d65db606aeb5851f18bad7279bfe75ef9a4993b1e4d3620ce101f97c84cea194f6da211d46387166bf037f06c616f9a858a53022d052fe33d96e745c8715192480465c7d67947ab0a5d0b7aa99de1b5ff8a7ffabce69deebff7e2f32437088e661826471ef65eac64fb6d74e9c03b0f2bf24f85fdcbdb67613080f4e26a40c785e72883a03f9456d67f1c432f30375c63931cdbdf3e70e2c3ec86e3b578b39c76881c1a290d2b16058dde6d77bb37e5783aa91aeeef44cfbb6de99fb7593683d881a21ad072824f1e77ca69a89baeb0b67ae6c7f79e38f55da4fd3e6bf3e573223304d370c65679eb2f77ecbbf13ecb1f3205eceb12a5a88b383ee752ea015c5cfb70c9e26a7ec62be159ea9a28f17695928139b97320cd325c577762fe44474f428e4b68a416e96bbc514e1a35114f050b0caed4ad62ec1c3c66c6b23c7a50f9301c2b0e43a6292219a976ea1508d9037e849c62ce88d93ea1b851ce51bf7dc9143bbadbbcc3c820f4acf0a08d8782357c3e0445ead22c2e6ba0a963b46240ab8f2d72762e68209bd2f397f0c09afe786787e3fc55ccee0bd81421b3ec0c3c65b99ef729cabaca951c69786b957d0246f01d6b4b1a2e470b9af64cd5f99e59e71c395ed1df1d7112d32f31ae2087cd43e9f92cf7b208669f56925090ff031f1458316b3bdc34ac205b9295362b9d6cb8f549c6bf6ecca800436cdbc927d579aaaed82e0cbe0c5adc64610327bda601f8b676c4f5e0cbd7f3384e1381608ca2fcc9acdbe4039a7c2bfe62209802d1dbb1ce4718b82fe222b14215d3da2efd0633328f7639776dc85904bc5507e4b07692a1986b13e331a8bbfc2784518a4e56cb0b84a9d0572a5292f4c1318031fdabf4f1b71d6038f819bae7f0354232d628a0f6faa346bbb26ca9163416ea36826b4953f7e8f19eb33af1f554bc277a37f007ff5ebe2c213ccb9ca2d8d67773bb9c5f9a1205e74931210bea395d3a9b3a42580f9448117f17a07dceebd9f498052035ea0a73b7bc9dfa5a8ad270f5920045b16aac74b000195a8210a355cd770ab5ea8600337da40e9ad031ddfa26c3f8b0aa83fef466fa0caf0f48d8eaf1f1dcd0a6d4699568ca182cdf87d5a50a3792004af713c1a2d61bd4117a4d1406aeab6de7c8028309b09500968bdb1a6c7cc31d4e6fce1f1b58a721c85223198600f55f6157bbee8ae89606b93b3be8a6f4b93ed202281394b9795fe8dfc5b134f16c70b426bbb8e6da51862be96f54f4c99adc04727f641f6b68ab570cd5de36461f64223c6e6ffd4d6ec211183cde3b672fc1963d63424e84a511147530fb694a27c618dc993cd2e08ec930ff9b8cd5123dd61a1fa34731b693621bff016ed8960daac4ef2d5d0f91c1a9b9a5cae05510dad9782e6ee8e5c5e5764fb2a79840079fde8f884c56029679abac17540e33526382243ee67aae527f497f62bb90ab09a1731d006d45c6632aa66a2f046a7937777cf8decced68bf7910df341894ce4c9c4a4c2c4307d92386b8a31dc1662bf9f9f9d4dbca8a512b6edb2d05f0b96d0dc8123f14c3d9baa2b7e0c132f4b38244e7f2731c00c349c7cbe35a09ba1aba4ff72905ef311e4482e6d5c92401d4853cb2dce125cf1b0531948ed6cae4edc6c327a58d04e1227745ce652664b4db1cc6f09fa017b88b06091bd730277a6cfd0c99d34c8b991b21d40c6ee29f19a81ed28060d1b08acdee998731966784ef1d6eabe62c4d38770ab5bf2b85ab5cd8764f74be0b4765ae26d1ae39bd7570e9cec12a0cea000553530a203d93c7f4d4f0e7225e7ab39438401b67bca6f5f706695913be508e6967280fdc0243c1d4bc61e433e51bc4b636a123d4603dffcf1324e096a0c67f00cc025c969b440bd78500da631c6eda8b1fa253857b16043c4e562f3d8f8a3ce8cec4f57d0c5f4755248ceef68940cd2db36ac601137b4671ce2af1a515c55f30689466b44f828bcf63083024a6d0d4d12a3662438eece4514b18a1d4da6b0169b1f8abd4d2b5bee8e1af1d9b5080224e5891326d22706d91a7457f1dfd0b3b2bc88c87b368ae3cb47fbba02d749f662302f06bedb55a3c7f404a35deb737b85671004c6658e72f8d9fe931e40bfa69a18c41476c9c82fd34ce5f37da698aa14645dd1308a025a7ca20e5c645a988260172ecd8cdaaa4869d45fe64074071e269c4c5c44945092454b145f1b246ad4ce17f331733b237716f47c92ea090ae2457f32f8fe80a48ca103b9bd233f5d3e00a3dc5852f8ca5b0c0cadac93e5db864077345c4ff4ada9c548a35c6d4f9fef981c242583bfdd77a2444a4ca514437dac6cac509ba30a9c4a3e75957ea9311a3a0f3aff1574d001d2ee53c5614a0b1a5e5bc87e3a90a314aa960d4bf1506f3911897adc4b90377eba74058d5b465d3cf2f6d747fa1187d6c70bcdf0f246e4aa498860211b5827491cda2ab3fa8a2c58485ffa059bb109b76567e28ac32850f493770ae9b0db77d7ddcc5414f96335d301e51ddc52d3371eab1bdfab3a1eeed2a4ba2105e9c9963a89454e0be93c453806de83474731e252a76b16fa41185cd9b54a7799d712d15cceb77512ad47c7c1028a3af91626cf3cc72389d5555fbbf20563e78e435a3e7ffcd2db77fc72cf21e3063f1a52c7da4e60e25f4d0872e49a523d5639253ab8bd8cd24901e2b01d3b5d553901fecf0ffa2af035b28033c8fc64ded7742e5587c0965e911f3f8dd3b3676d048d125b0362c1a8b6b8f569587183f2542e3f39b04e59fcc71a4614d6e7bb6274cbfc6dfd0926734f4e368d910afbb93ec4f0110a27b70e5073000916c65a990c501c53b8d93d4af8f725e57fef9f0524ec0a2b8961b666d18dc76b3891060a98a246c4c0274dd554d136f8594f434339d20d43679d006483a2cb505951c796d57944e5c06e8310b008f5490a9b419a25f8abad136c63a56ad29006e301676faa0a520e40f26e8594027d69c285f517a7f04b4615bc52496c376e8cb32bf6858c90a066a1de841303260150710641ecdf758732488263be58be10590aa946131758d44e6b5f9c488ab0460f37350ab65e80ae742183cf23509cf670f8c56f2bfb00859b21be7349c0d727d02f69b9df33f5434ee2e8f639223bf3cc4ccd4d62be60c19f3cdb274ae1eb1021306cba0ba6397c72e546d8e28b8aaf103757fd7ff96b8807073abe96942584944cf30091577bc30870c59c3274be25911a5c644509d04e826c67a02b1a4798af46cc7f07efc3397fb0740d108ba426ab4b23a84063737d3d03bb19de623f75283959b1e494ff2e2dd5301865ebe5d569b1a2b4b100e7f02eda50d914d58bd9741d051228d8f5aac564144fdfa2bb2a7d85c9b87e91ef7a2fd6a17310c02b97a80455a417ccd4e8994231694041d76f80ac7da73869b15de5a74fe1c3bf9612a41d1b6c0c7156d5ab082cbf3ed182c59060c8b82f58b6d37ea490fe3c934dc692e219f34ebab89590a160d1f5dc45a03328cce697e2f8893c0b270b9d274bc0b90717c503c3b8ff224c6abfe65faf478d53a370bd875c1fcc81f62ba1d9d1219605f7f52704821c067344d188c83e55e7793359490b7fa972d119e6ba2fcf9e4b58fb989d9d0aacf701bdf0696bc83b87b157e995f29a31072fd2aab88e560363cea6454804a6a0f2229c2adf091cbbd47b802a13a84732bd97c845feaa81abd8801c9c39a7afa1218db832454e266ed09f0d6cbbf63f1fbf0ce16c4db85b0a7b4e07bced5d0f88a1cf2addd05f4040da6c33c197cffbda98b74e381e9a5a2499f438ca97b101e41342f5a6efefe2efc71f3281548bd63d7241afa487964f13011f39717e53fe770185c12a38637c8f4b6403c8e519af9519e7b210b84da7844e09ee5d6852cfb90cbcc7adeaf7bb08aa2c67f33bd26b21de133ec1fdf7463a898b61bf18e1eb54f4eb8e94010c3e96c159662708d48f973a8d005e5f2c538a13ac66ccdbbff1a66526f9e9d1e4274960edf6ca902d1ca04f793575c4b1b2dee8108d3e239ba8429f6df9db3b9aeb83eac06a0896374b572eca9ef4ad1c2e322cea60d132f1526fe379643a6b071f7c51fab64f46d950cff2d7d5b07e3ba39a06306fc7dc5030a7baca88ff27e30ac159b96fd342a62e8aae33bae15393e1bad54de7654e03fd1a06ae9dc2b66159b131b7880bb408d70223fd1ea46d6f6b4caa94fc74ec72eb29e226a442490216ff57d288326ee94e234c45d6782745859e160f5bc03fe10beb58de07e1fe690233d2c0e3c7258839cfba47e1c1806eb3114d901c9cf13d57abe4872925756e1e29b3629a0db4753e59bf84db49357d049b8e18ac5dd8309a67c263ff39e8b12390f16e178c6be2050a6406aeba65a84c46e9e8eeda13a94d5314c92369e3729f6b8e747b8e7cb21ba0375a3725d016c5af46e0dbf339830254d4e1fcaa817147940b6a30a3690ae6cae709dc7e98075888cafb6207931866869602240f3e0c21343245aa1d8c4500adab9ce21da11b41168114287c66c90db71b48d65554f6134d2955af95a888b7627e6b153e73418fb35d341d3a57d427e9b3640358b1298c30dc58606493621a7529d26382b705844d891c7a30d00ce8d470c7829c73f6e007b18b7d2be52c09681f87236c3e4ac2e500d7e7ce80420761288712c5fb51514c8f22134bbf1ef92e262422e598a5bc12846df88ae96bf43047bb061f8dc7875036f3cc6ea043a8b0d129eeb940edd97bd31f2c5bf8e56613732cfb177eacc2b5e33faefc48c8d44bce079e1851ac54603fb3d641b55ad991fd866cbff879eff449e1cfa7af4f2650fbf3e215cf88f01286b530bbfe2015642679d94e4b6e42d9d64814e00542dc83559a642a82d93e7702cdc14f56275efb2d67ef9ec8d715024a15765fcc47809db1ef39b35cee51872a701a06bdbbfff9379f51ad38ab26639b33b39ff762d0cb46b1d26e74cd6cd15d9e84ec9fc2f2b4fd36bd1cd94796c431c69b5f2458502c095bcc018b6673f70374ec94d42e16b650fda6b3ed8a7341694c3922dc597656d49efc74267f9d2dfbb3c293a5ccfa406d29f4dbe094efc969c457b0e92733d165a672b339d934be56a00401efb193c21cb21922f4e1cca14dc1b793bd14aa9a27aa4f0d5d56f5876dbce5fb4ae53464a876c1bb809809de97af559be2a249a2caa61eb89619fc7a3852d1234e0e2a819ba30ffbc72e40eefac1bf5a82ac194db13bc24ab3e9101d01d59a1ed440d72656fdc5dd53cabb106f4069a9f94600f429fc26412e567b08607bbd155c35c6986ffacd7fe7fac7d7983347217dd4f26379bda77daa60836b8baa7c3575803acbe8d725a3ffb255ab7fa6c7a3cdf5845bb5ab78c1faac3385f50c902f3b9be7eb2e11c82fe39fa94794f861d1fc4d0b116f2f7d35ba79f12e3b6ec7b8e2ce2bd7ede5e7ad43436a3c07fa9392414a94ad2deea3e774e3044e62b6bb0a5655c3a1b2d7c8cc6d700e6d6fcc1c92dc5f4dcdb86f434560343a63689e3362e1403f0f5e498add090f5f91c0c1abbf0c7287ff3232f9a4a3425b0021f85b80effcab1d67aa7b566c4579b591b306cd1352714a04373cbd301f5e4864a3542ad679bb79edd7f053766c80b7b38ce0b34a8bcba694522b2a2c97cc778d8adca9b25577069c9d1910066ff9cc17ff352c46ed4c7fd6c81eede549165a494018495694f75a5b801270f7769bfa05a00b370b862b36a1002cea615535d1b41888de42b8da3fd43c4079b4093c9fa3e4d59853fe41a0db57196970db4b54cbd7433ab74e4435c2a30ad655f65ee8c9b8a855e28995857662379556e1a66b254f7bb8cb40f7ef15be365453b7dc5b2caa8939e8dd9422371e34ff064ce13507850cb49e7bb9d2e7627365c429044ecfe1e45478df44a751e5431beafab7e2be3eb91091c18e793aa926a030bc966dce6532780cfcb3bad329ebc136437e39530827b192b680338ddf2d3ef0760038735d4ebe195e79f3de434baeda4d081382135e007f799a833ef30c9f1c8037829b51e4ffb46fb95eb3dc1301f3194fde0e88ec6a895c769fbe71fdc310fdc0f36fa3925c475d25fc89c021bed425081a611f2de0b98e3cf2918d68d2797373876ab318b7528aaf423f21634ea500e9df7225715879c8399b23d19a95f70bb10ead72f737462a3b98cd93d0fd824655560f39f74a2e4d45ec6769ebfa4c58feaaa75869c8626f61db9752297b3dc9c33c6165a933e9d305eb4e322493207f0c530ff77b99af0183db838ea85c9ee73d62d16e96162129c5d406efb2174def875624a6629cfeafc0dee4d818984155fa2f356dfbf67f9bea940e580fe0c1fc3ed24803cf09018d221b36f0810bfed43a1c4d0d7c5cbf85645018e9cc6cf3087e3ae73b39db6bea2840a5792cf6dda742379313d9d7948741dcbb9802dddb18d1d6a85e87512ce43eed6c71de7ca7b271a159fa0d78ae3f7a45f9e30d798bfab441fc2c706fac6d0a37ff5b0226f59b4e1039c53f52bf9874488bd7392a495c24eceb264b7a271362260082e260de64904ecf6350009cfb19d809017efe4277579a44cbbc800ee1c43610c140f92f3e06b7cd3d3b1f67f8719cdc715ca8ce2f7fe20b46d3ce7c238dda66bb5aa7349c92bf57c298cfcd38936efd3de1fd39cdbeb14607b578bcefbaf43c70d9810dcb4c6ab114c83654cd64dd8a20e9792bab29c50ffcf7d4daa91f5f078742839a8542d23d3047fdb1271aac2a3020b892861432fe6315ff4cf8e76681d7400df35041a5cd1db3d13e548c513ccd9cfd28489ce1db7c3356a4d7fd4987f880646e9e85a53d14c3e36e449377db3396ae816ede0cac7eabfe52c080bfc0dfed303cf62b26659e52695f3c4a7cb25b79d5aa7901c401a2475e80109e6f1bdcd0fd8cacc6935420381b73b5baf39c0f8aa15dfad56ba62a32a0ed2b68761575b7ba4ae388e9e35536b6fe47c1241a6751e3be268b3a90b0f333ea03e7e4d7f8083c61da0d3991a4d07c056e20878f0b5692af16acbc2821ac4b58f9803e21c3e4bc96d0e12baf5a2bb205319d4d5bf3fd47ad095d51e332e760c14a07feff863955f4f69776e3356a21d514b2d7b67c04c142589aac23450aab7a80250e5d250587be386769f5ca30968dd1dc3c6912a36308f30c5674e65eacd988af5156da53b7fdd9fd65eca8016389aecbc849c465b13491e2290d7b2aa778764e1b69cbe4ac962e7a617e513adb6f90b777927da8d7bcf0f9d5a9bd18218b1258b36c405114f3eb3c65ce6053d9510c087e02c3e42205ca9d5eb0147c6842b531d85c1133fd39d7970f7b7edd3ad611f7c3d0224b842159fb9ca7f58b0942167b39f4120e5c18d23111fdf16c5e76fe49606ec09e14a69e7bb9fdd0d658240762fc168caf89198857b055f446abca2b5e2419a6ec8c07ba28b71e4092eb0e4aec380dfe4dc18f3e56470d192d0ae74ab7113ec683c98bff52e8da6f511f57f6b87a8dc9f2a30c896cc281681468c71ef6dfabd6854fcaabbb741d01ef92361db744977a9eb469e4d2248505ef37cc679e78956f84c3bc56a5d6f2d924a78fa093891dc527db607adc014c78f0ea46125b7a6418e16f5f884c5fdfa06105c26d2c33817c0ce5b48f3604acf8dd7c16fa7fb85b2c12c1e11075b285dce8188f8e2b9edb0f4b02ea5edb6baa510dea53d560b909c181cb6606eb469df12f8f0ec2081a1955e2468e6163865a38aeb40e18b5388bf876c5558a10e83879b7dcb28f146ce3acc429124afe3b0c30db6019e3a8a29d695d873ab8d3365da955b75d06dc4d5cc9e20831308385ca55b8f7e54f6b9b8187c9103660b224e7c9039b849928eaa7a171a1e9b1b5f029ad978672ab0279ad33cc02ff6ec37bc2efc54865ce1b62475cb69b060b141f67c8b39f4572efc74fe38222722518557078313f4aab6a4b433a72fc36654047d5e592d57a1fafc4a10255ddb28129a3ddff6b49df1a892e26cd7fb1b6e25db19cdc8d44df2080e20980fabedb7b70a789ca39f195b5a906c70152098725883bc97247061e82e0470ea93af93ef8b97afcddd7051aa3d2c5e3c9cc3a3755e2d8a8f619befc20214f17c34de4369141878d41eb19d685ecd08b6e5edb3ce5980c7a35a212a87c0f08020aef78869a200e7a21c40388a29c7e5ad55768dc9d97706a299829107228b482fe77d4490029a24bce9060e5b5ef9c814241c2a1a9a334e5f816315577fe4b572ed1ba76e3d5ab8ed2e10e502a57eca36150ac68a9ff9831214fdb43287ef649e09f11ed1596e5d8980db09a9f3ea17f9f334ff510be7261e65edde1358495034edb6117d856df1f5c972eddf68be4681e1eb71c4e6cab8f62b66f0a0bc83aae55df5a1b7adf7e5f5cba325954b05394cf5e537d7ccfc26ecefdcf1ab876ac67cd254d9ac2407790919fab6ec98c7c317bd479c7a7014727ddedbdaef7f9e583e20ab1013d55d8ee56914ea098516755c13fdf95de5c618645ebff6c5e4f949f2e64a06bd1117f90c8b510a845ab09b55dcb23d69747497cd27fdee307049c826c3d570f4830a14bcd75ad9be304d22f382245c12c24cdea94fca875526193d2f6c0b9419a8f45ed06bc25215363202a0c122864695bcec310aa2c557c9744957a2dcd053380c7bf22a439b36261c9b7b00814b875b8c2777fec419233bb2d8387bd3c2d811455614408f2f5022196964bb1374b991232b481ab3f366b3b022ae890d4087d7875ea84971b1b019ac2f8f8951f799b8f3d72da1d8370070d28dfebfa07a903457d64c0c5c256f98a7f1fb2f14133c29f14550dd3f0d2322a3b820c146cae29be1a902bf2bb63737571c57ccd7659b1327c58fa75699e6e2b880f9a103daae7edcafb6b971d185b7a31592d1b79a2ac8a4fcfd04c581fb0b0940256a9d80ec296626a2c35c20947a0cb0746bf6a14fe81fbb1f3eb2a1a1d09938828d63fb04e0c888967e8cb423f094097bc624d0d830c013da9ead1473908f182593697d4b91939f8e2541b06f6e10511b1748cdba13d77dfafa941e2963fcd59f7c4acd4ac40459d9497d7a3a460823c5ffb71e6292187791265f3405ce4799e55e36c4c38c5ce4dec76ec5dfefd95e9d4b2ad66e043eeead5db64853080fc7dcd5668dba32dcdc33beb895ceb2e0c0b377fd4aebbde7df159d19757612d90032a92567545178de4b666a0b2fd492ea19f67df030f369c57878d8fb25386242b6a869142c2832e57c6f96a72d2ef3374de25a80529e4c272254ad6c091a0dac3c24197105b0c236ba68de0d1d041c79ea6d671a72675fef1f02cfac807648a220ad78a5226bbb44e8cf4425ff96e8be8f27c5eb8fcef71fc4d070a2a424f3ea4f762b0b159a47d95cb7b9445b7a294f0aadaf6fbf9a6d29faf951d68be41b400e187f42d05bced0eb6011ca1e52dea27d397a6d243f0e88e0e62cb48a135df6cdf6362cee1cec8ec2f4ee6e37ad60a9cd1d03e720f35143009beb2ff63ea668d86d8aee115f7a6393292404a8c96659191eb71ae991cc4fb8682f26a4a62243997f6aece1060729fb57f3e5f9bb7dfed8f0259511f76012bf963b15fb4bca60b5883db74e0aeeb7dbf6037915f2351731a4cf20358ebe2b592b399069c67b0c77dd8d51ca2ee26518bf146d67df707ca4ba39bc6357316a211575548d3dab889cdd2dcf8f0720a680a87ca60e0e5425b8ebf98f9eaf25fa1f399174ad20f6acae21e573574bcd2ea3338e663a0afb6fbafb692f578791100303c15fa28b12231c3f65199ee0d8f31df5502e8b3140e66d01c1534490897e3d0cb07ace58c75362a4ef7b6710aa46a227a48afd1e66485b474100893e9efd805e8abc5822da896b67e1bac966748916fdd272a3d8ac98f48aa59e68f2b29b38985427b2d9d379463c0b472de7807b4e96cd47b6c13c3f05a00273ec0f5ebb975ad109c773f500af81d5cc19b1b418bac52c48eba5cc903da3196e1c213f027dc78df6ec65d554f5520d17b0855aa5f003e343997e3c99e1e8626fe803f84f9c33c7d9e107b5ee7cf1e74b368c6c840b4bea171e7f8a36c0d3f3ca5b06a0a0b60f33936bdc3b506fcfdcd375df5798b1874509387d4ac171917a0e4ef8576879bf06aaeb5f658e4972905b7c7486ac053a5c7b221682c446f7cfe6efa09d4a655d9e808fdf47adc7dc16a6ee284a0aa0b165202ca61e05adad565d4bbd5bfbce6a591fd5dbd0263c844ee6a6d83f3d59c8f7f4613ab78232265cb4a40caea96c831c53602fa0ac69181a95913df8e555aa4a25a8dd51a2ff5498606c6eb9b2b7c7beb9d046e61c0f93253e8674b71da8fa752c5df51dd12a5bfd42271b52b980641eab750810adc5a82cbb5215def1940b2ea5cf2024f723fef541a64bb876f9f16b01161e1bba4d99392d271983084d9d109fcd5baf0d9cd968bcf3eadb2586a6eafbcaead5faab76150d19ab5b04a5b2b12465f73b569c6556125464941fd55495bdbe3ee9453146d4e67292ebeb6a4f2ad7ba5a0864ff7a5a127b6d6dd477a72ad3d23282e800536fb9c704ffecfe892445fd7cfc01177677cc3004cc5f28f37a30df7a9b2fb3100688e2b41e852804a872918e1b3a9636d0610fb5b49665b8abe8bb8eedcbf5724cbbb66a947f793c9e88d568f246e7aa8b8263b4350e7245882db82b01907681200ea12d9ba06591820cf4fa5cdcdd263ed8b2855d31598adf9df02990d2f23330393e3b63643da26a8e33033d9d94587652781f65fbba4ee3128b6630f6b5e0b77e65af0821d87ed41aa875468a04cfac4cc54e997e93a03b9eb6a0ba8465d5e225a2553b93b03f36d2e769a11575f111454b98cb068fcda2817132418f8e88f6eca2693cc4ff060f3fc59fa5b551f673f42b9f8f4753d1396683cd2d1820f32ea2adb2bfe3dac8e5f88593542dfd5a196013fad40d2eedb219cbfe9faa9b47dc8c6ec7d66933d0e7f9d8909b9bf116d4daafee085204b716aa8789dedb25e705c1122c4704ce8d4e7e79c2122b36d5efc5aa05b4a9461a1150b1ad2b9f7e86ca30605fd5ceb240e6e864fa4d7a1c9931f21ad2c28f0d7dd4d256d96a0490688b91be670bedef384afaf0079a5aa80989771007f4dd47d4b3da8917b9a23bd1c62bf1c0efc37c75489662cd34cfd65862831c03efa5c8b1a98110e88d1ac47e0826aa76fd3b17cc0a03eb75a00859266f94c1d460511a5331138c348238b0170a5408d04d30622a3d9303e53eb624d8d17e35e4b5820ffeee4e71413a4854d3f7840a378de977debe27fdc78a938990bf1faf9d870f2391c4c8fd9e319f79cde4d049731ad6295f8a7ac19e5ca423058ddcdb72ede04d21a0afbe2667d1003d09c12616d4b48ae7ade7af1325343f900929f2c09ca193d24e522329b80ebfd807cbe805198a37db17d0528453d3c3f8dac2601f36bb60e3224062838036d5f8c2e98a304c72f877d3ee35b86f5f935b82c85d0f190f1bd1b169845709df77f1a936d9abee03ee1bf225b8836da6d95d2f5d09c161a92e6a08abc4cee19ee2411b0dabd943f40d9f0eba8e95dc3d85569502c1cb87f7d1f165754d4f1f605c5c7316a24ab139732aba051754976c5d646696e60e34976c053d659a140e5691420e4454c5de0c0f9260d88580932d3fa82cf5b9bdd952a3157620d573a4fac02363a771ae3fdcb254440a12e462650029ef86e016895929bc0df3150bccd899455c9b751f1171e82d20d99e1e5f7a32e91bb300dd50e9f1bf83159b3abae7b4388ccd1e2d6ac8a9a398ba666653e8a7857d420a5e4db37c64ec04014ec741acdd6a190b8a291b9a38095e0c880081de3af632ee6ca688a21e1fa3d344157509c4f4a41e1ef6ddd99fb4bf233bf54af35c26dc094bb37a8e859d1bab31ac05b36fdedc237103bba0f908edff0bc997726de5a4e76d25f7534f539c2c690cfa1553b5427ee6fccfb679987d986993d0a40c47588153708e7634dac9c3ee9d6509c446ee39b3643dc72f1202372c41fa40bc76f10b3e8f0915d8ca67c7ad4dcd20866cc8fb15c971aaa878905237f0e454a9addc164b5e9880495283b11321c109600253974a61441853eb5d436cf4f9a46d5b58aa57d588bfa99392446958381b164d240e237da3ba07bda031d481bb98904d5d3d70bb883096060d39af13513719e52cd23bf5d3faef4f5499a071ea97ca67c797c751556ce1b2c2010d008d7b27cc8ca6885e3fe72c844d6db7cfabec095cf53203292fe7e73ac1ae82d07879078787b561009333ce0ca940c16c2c64833554f42d2e3ffe5aef717fbadf0d7d0a54d9866603f7095ebce829ebc7ffe7c197c15b486d321ed88a6cef115b79b40805601da42474d30055c13ba1caee0f34012453777c07f51675583f62801b41d3d45fe20a0bad93a35c2a38510c0be8946cc3a593d1ae75af62545afd1aad4fd42ef0edb2983649e921400372c992be1f1c269cfb6e785b0473d3a93353f16db8dce4bd04d6192e0b9aaf7205412369632f143d6c842e9a49c44fcecbb85583010825686dd69c4a0ad9d012f7a7873ae89b8b2549cd84b93f5e9041c4bf0744f954bda526c82ceebf94df1801c0ada0f3c5b1fc650693428595c2ae7fe2c415b44919c0d00e8fddf20ddba18e37e6b08ba840b2d224d64af87d22bf26298618fa65d1dc452aa6f5becb547ccc67caf305fbd399084ec15c177044ea8ccc6ebbffeddc7108e2cb7ae3d005bed7f22fe320df665c4c5458be88ab0072ec8fdd83ad3e4b2f71aa6d48d592c8659977e9a412b058e845c68ec1de217be2bacb74875c667f16adba27bb97b6c2de458179d454321ca1a2afc752d9b7e91835023932e3e0173d8e482a91ab3399c4c1265ae10cd67b51b9abaf76509ad394494a42bf3e37074639df78b4aa4cd29327e54911bb75666f6b9efa2282d73f26ad7505329bd1580abef8bb7c0d5a66db8f6c67d9be352f75a18fe2834c71f7846cd719b117478fe422319ae21960984cd0f0e4bf81f249fb97adc29c56508148d140838656ec25637ca4fb567627d624485756aed1378595c3d92f2e5b207b977d245227c79429f4c1e33fddfee4c3c35fdb8b1df445d1fdd80bf8b871cf82f7426100b2527e9ddce1a9b16369b05f755fb88f53191c9affa1d14183ea83d5440ac841d9971cdd81a9ab3b90727fdae3c860974a27613e80db7d682ba653a60806a6e9135e0aa7640c07bdcbaf1c94bbe6b530ffb0d77aca1245f7e5b7cda49227cd20de5315caf6006471990edc524dbc5f4579ee59660efe89cd26f41092f207b67db6285660ca94c3d652bb390b5eb5d6d67bbcbf3ef414c90fb031e37d2733316e7c1126eb90e73da160dd08e62ffcfb08a322877668142d017554cdb264d6d7e94e1ccbe242b1b6e3cb57f654d9fdca9bc74bded1869400627439eeeedddad7360baacc52fdc5f9b426b7c8039672bb2f0e786875d2ab56f985c8f6c624ca67b53acfb94ef8981daeae3798f8026dd1c2d9af257d47df35c295dded7f59ea8504439ad62fd33c0f6913f2905177bb0ad754de3d73f65f3b5133acbb31cb3e260ead4bb0957a8de8ec61a5b99a018281d8626bf62ed1f7c718c15e00b2b914f50c0b48786cf8514972fabf1c5942d16985c884eb8ad13f41f92b3dceb40af4775b6c9697c0fec86d8c222da4a73982c3f94e6557e5dac4a600b4af5e346f55859b54d08b225fbb96d4bd331aa08dfb5a68f98a4bbfd732e6a35c6168bfa93973cf08e7d90a784cf4540cc10adc219675873f7c95d5ce5078762e14bf90a01e99007e30ca66190d1a4eaec30dd14454f4ef050c1b24cbbff94089faf4c45aae27cfbebf4269896b9a1dca4cd09edaa447cde78acef6fbead821f0e9325d131b65bee98e965d7915fa9b7dca5c63756d545a70324ad8d53ebd9cf679d297d454d3ab78ce35e544afefa42c1fee974c2ab018073bb667c4cab3071e5b6801b63275d44d43d2edd7c8429d26ae30e5c398d7e74e216fc99bda6b6d8e77f59ee1bc4bacd168e9959bf7c9dfb9aa2149190937c41f35633d4d924acf749ef6424a9647cd7a93e84db44f0119f0ab99f68390830ff12af32411722e9c9f8735665e3b7810433b5793fe34a163c02ec95bcd452c29b55b107481ea155942a9f696eef93ddb8c1bb265dfcf08e983655a2d0bcc1cf25773a205945fe6e73cfedd9be3139558c8af5dec72cea33b72386b446378fe7e6cbefd2369bb4c63915c168545bbae58cae63161fe2bd0e1e60b67f23416a104e29f0d5cdc121829e18f7da77a10d3b51b861e9ee3a61006da225f9e226f641aa11b0c59d1b7cddbb1dde7a9972fb39dbb80c9520d2df3c447377df9c5a28e8b4acf8a3b10d5da3dde96d943d3a97774a2ebbfcfa573bcb7ac5d32f393a2865ec56a8532858f7b69f18ccf9f8052fbe5e1e0724b31ad807a5ee04acb4b7588cbed1221c4dc74f8d5c86217e7d1da78eca0eefb78ce0ae20ebb9a05e75158027835e562b40bf94b0eb29b07cb6df069955c5bd848ab5669a2f8f870faf289672464eda0f2f64ff3db0f7e952f5769446cff9bbfcae8e6bcd85e8a9ced7d39d9d63d0f23e1d617f66f7a702de2d363d2fd1632ab6cce41064f88f11702cab124eef09358f3c8fd0f1a67a170843b130a351cea5ebe6a8d1de9f5fa10a45f5df1cf2bf1dbfd5ff7fb73b52913863e28424061be2fa2134c910097edb78b9798a15731e2cecc02ad42518c0d6db74ee71ea955f9ce5431593a2eb5043dad5cf32395266f91d6e4382be22dcbce1925a345f9c86bfd3c4ddd98d30a09d115f1f5afcf28b55b77df69896b401674299c4eca17b1efa8c6f50ffa348a366466785dfc8b610a809e9110fd8d7cb6e74c170e404ff3f6f0092937207d3f25264328f807947a1b3c2bad9f242d6ea3ef74e3e768dcdb6bfc0bd487bb0939895992a7d43dfb1426275570b4da417ad84c94bd57b77acd5638318ac7aebb9b7f2d9e43f963f50186f1c56d1686550557df2541f87b291a031a33c1de6d676875b5b356199d3840c9a92e82958feff97adfa765d605f8636f69da9b388e6e399ed1a544b024544e69018d4813a7c3fda426e1a6d395559a53c95c4c0eb6239a9b45511a03c387095e0d1f9850102e00bf75f000ec7a02191b7d0686120e554657b0f1a92f6bf01c010456f6d2e45d936d1e24e3bf9fc90594637088186e08ffb4c904c7210e403da82e2263e480e081e8691ade95b5e16a739da5bf09715e65206e21ce3fb235e52cd7628ce99bc3c858d0872bc416cd0894e6ba471301d6c367b540964f3ec6e9e12b659831cbf99fc3969dc83ba005094d2bf7adc45e415e840fb1e271724762e43bbd613531e424942d96396ffa92a9c865130bb8527cdd5242c8e6268a4cf945080dac83df257c53400135770295d0a21bfbf03d8fdd76ab3044f90d0b9fd691765370680e94a513e8df47a71f87de5c34b4dce584b8f37f8e0d54ddea283b72caf5f1845c476b087b08fdf81bfbfff555b372bf54e65e9cde5d7cda51690f3ca05fe8a70d9116b2d9e7404a0dec3f271f9b67a79163ccda9791f0e3fbb77d7d1f51d8a2c916b8f7f11d979abe83cd3885310e889050cd6cbc87043b0b0ff9a2b6de40ff7eb7aecc7c544d6c52261c6e93c53eaaf53da6121407e2daf04785ef142d8e0e4f7bc9f4efc4d05d7072de39aa9abec618dff36f615ed44883ca6cd57acba98ef5c6310b6fb650141c6750953364280ac12be73c4be69f5a6d17f45c4c8ef49cad4d2b1108bb54a7fc2cb986f9facb9ee95286a1176cc55aeafb4066a157771e6aa7127447909ade6112d317447ee9bed9e58a24abc4d10ceb8093f76f773410943c6a36616cf26fafe87e77db408b35c09f57c03d3ca6c033f83f3203846840f92e59cc4b72003d2880d9816101c40dc850830c9421aaf428e5f15f082329a44a131302636e278e2e0534000aa1799571528180056703b1960e14b19e69a53ff0f68cfbc6fed6007ef488be373fa9da093e997e29bd3323567ea3c3658c7a90d8d0011dbc44ed51acef4f84782a3651f28aaffc667a17963c7655e6e303e98d660dbbd399a91cb844b0c4cdf9032846fd6a437474f225a0199829ad0aaac98ffe23f7616da1cfc216b5327f97df88cceee5826c2b02e359369be50d6675f83d1012b88e9719fa898e2cf04e7c9f7b1519a400df427e3f22db9bf7df0ea4ad68ebfedd0c9d08c13b29dcbf0331cf5a2f254d75510196525a57c00148f1ca4a46bb01bc4d66ca9ba9739a7b2d6be170ea66df088dc2cb70ffc9b48cf49c908b1dd7fc9f1293fa7a6e3897c4df01f1a64d8875d6ac9cc9d026c74f80cb121387489691ba6e245d2614b1391023c510ac2df1be572eca793c16e562373d4385b1227c0237cd700cd674d93983f11899a222cf488220931cee19f067a70bc85dd80586911fe5af55c20b178c722bba1013941b21ce58e215255f43c05dfea67d55e905faeac492d47b7d962b57ef4996b97cf492c838df21794bb27b053769bfc41d72e2e0849b53c63e4aa0f888a12fa02957f3259276340151ae5a2e47ac7387a73784c74b81ed7ed4ada1b9783d1541706711fcff5f8580a310c6d706af3b38d3574bb1156fda48e4b300aa7aa42ca9b250e2fca2976b08ef32400b03d0b85ef716ae2e6026c466ba720187d0bf3ff2b589b0f13ef6bbbbcbd2b7a9da65ee8b27e38ecf16287994e61cf82a1be143316752d58eabea3885b1e0fc0f92b22083de2d025fe4ef0f668069949945ffe0891cf324f45dbb44516e837e8fa84ed54373eb7ac562f4c7e2bb38bc0e7aaa9efaa75e9006d2174d36f8bfb746da33d6e4468886db05fc4729076e9f22a0d340e956ce5a5f9bf7d6ae4ee275fd299f29a39106f72e5ad85a762eeaad5cd5e60c52b448e596421b04feb767cf043f2cfd1dec9af815bde40fc55f7f74969a415c0def59f20a989af98cab32f6e2b1afc51774e1c0c30e2abe90214b0ef146edd935aa5a93fb37a61006f376993113e87cb9450a26b8314fd1d17bee6c7b45b64f195838fe18df071cbb969c5db1350de17f74abc717d6576294d2d62a7685ffe6424c7080e93ebd0bcf6cdd49dc8fa56827a49fd45e5d2d53afd3f1d79879221a7f06621f0128c2f1a6c109cf59bf1a8a056c98b9466efe0eb5819c650d0d4e67cc006b86c2d3886c0365f157fef666ebb2f749e0cde82e01da4b93f4dbbf88c28244f0209d8e19048e405abe0866fabc6bca7062f477f22e6fc4c204b14f3f569b3bc05214a884c3b7dffbf250bc240ea0372a36c259f778a842d3367495f280fbacc1f6e497d7e56f13626e9ae90789a6fe8ea948203b48dfb9df65017adcd14b64f7ddd10cc2be1177aa84f3d327d403e866794dc1033cc22121c6d7d77b4564994a5b6cb5c2110b6b782d21defe0720e8d35839c9b51a873720cc823d84ed0800fed11df146d7a3dfde5d9168e15be89388803f12dee46012961d89c05326d9321019f7b41e29d34cd7427d92bf4fc6ff423f025d2f0db94ed68112d2e9a697a9861bb310f99737bd3ca109e7f3a4185aae25ad355c0065737a545024ce342059ce0d881ae6b14deb0f28962ee064c24ac32db7d6bcb3e98f24ed904a311384bc12634a30a796da793edff88b55c9677b1942c826902508a99cec4acb3485a9c1d2fdbfaa4a50426973003ec04a5e99ae61e1d66a65ae7fc16446784b1542d5453ca03fd3c16cd547023c2ab172d882705f9cbe89b4d2f6fea012943f722d82fbd1cb27269b80b1ac2a353403aa4e5ec06e4376c0b587c08dd0eeea98545e5090f1aaf5d2db94bce8f80d19a339eefd714af1d92577b094a37a3588b5572931dfd12cff4df0e63fda800435fb613e64af3c1262628bcc48bcfb1dba92804b633bd23887274ec8693955a578156dfc367539367af36a42b96795a9d559079255b7fbfd8af4b4f70e87d3cf0cdfe43370f1f332e43d3c037eb577329f413f2bf0e4e307ec53e76905ac6467c2b09622a960bc220734a215b904f09f4dbbcb7f9ea1f117b2d7f64556c9a8d219bebc5db737df6ab70d6dc8c6b67d9ab2dd0b1fd5447d1ed1e3e617e956f19b844e3d8866a0d99c1bf2e8b65852cd65c952aef5db5d634371eca78803a9c679417266a9ceccd08e7121bcb4bc24ca6621d8521542802d170fbf6f7fa7b7be721caea318bc0c5b4932aa7bcb0e479262b7de52092c5019433b931f13bd03a7f4d4206441825f3a5dfd1b6845cea4ee2c88d9f64a2e1793eae1597bfd4985a06c0b0f49f47f890f28152c2ccca16629d55ce988cd8eaf8e00bb0c07b3e261fcae8e8e3a2d4a2454a1ffa7441973ce6cf2422f2dad1c3ac642a04c2838edbab0bd8bfbb923aca596ee88ac014fa173e22c632d7b485bd0b04a1b6fbfc3a64467de97b30174d0b13b488b1b97b54ccacf5d71ff625e692cfd116eb004def2d4cca3e9fa2bd603fd58664da3a2ecdd6ded9a9660d5910084b2de99ec79f7098b80e0a97ee73030ebbe12700dceafc075f16af2b11240d0fd5512242c264928db659a819560e45cdecd7a44d47f2aa562b27c14fa47c2194bec8bf084ecd3a739c308c3d5cc78ff21a0d02ad5389999d853932fb04fbae530af248ae165277a9dd0df892c4b91096273d399e97796296ccb1af88175ea45be882b5a5ad2ea106f1da88cae464b0ca38b5e5ee578f63a3a1a3f4f9ed087e1ac901a4ef97e19103e87a90b21f2d9bcc23d7622dcf1cbb3ae05b4c600580d61db649e01083ace78976414095afdb59485f973af1cb765404f4d8e4e275ee86e2800a3ae326185a967776a341dd1c7a3c7100e4528d7504fdea4cf14c7da257584248ab3a97701e218fd8694960fec6371bafd12c96f6b530399e9c4d1f8e40fb97dace986d425cfe6516823dec7611f65d56d0ffe85ba6dd83e7cbd311c739a405eda66840e1b1a8205684f3dddc889dcb3bb594bf0ab212f2f8b02fcf079c73e580b37c52e6c8271eafec1d936da31e86b65cb55aeab01a71d32ce4722e117759e658c942abfa84c0ae25c135c89678b5b7f896f7e9e246132e0252f9bc14edc4479695c9cf0480fcd5624fac7260e4373dafcf51786cea2ff4d7a6955904486d1e0c9c3db5cd75b2174b75ee525e28cce088f1590de39833c30bba144ec05205bc52d6b00439ab5e5e73e135357796fc48af24f2a0e9f91f6e54c1ae09dc180fc4a0ecf1280c6e8306a990614bd3769fb3fb5a932eddc3927c34073d9d5e7433adc183a4d0e2bd4b5f0c6969a824e1d773d5f6b63991afcba73c0d843f1363e8435ce3ef6e336f492efb2defc47f46206e60ffc1471c77915f1ec425ca6985012789aef8ba63fadd2ccb16d1fcc32d0e9cfb3bf85fb43106458ec3da3ce768104ab9a8772fed68d1865492210e94e42c8d0fd1ae8f9b9e73b0f6abc4372680cc76ecc0448d9112d75b4c010fa1de2683e02c388f681c31d82bfa1b078167ea14c537dd9a559f1c44426f7115bbf6fe15cd7aad3c8096ef85f5c5e35784b26c80289c202e5046ed07c17ba34b493c60019c756c17ef9a77747f3460e2cf853edae12ca5eb09fc040bd7fce5bb9a543e8d2cfd552ad218b9fff2bf27ad93178c5c0986e45e4ef0ef7473e48e80e4f222fc6db3d988cc993aada64473ac2626d0f30b934846b39141fefaf51dcbbe3084aee6aa3c84808ef839ac93ecce8458675827a59ed50e22cc5fc5005214a4765d9c3065972818ab31a346d5cc9dc92eff55f0d96682fc5a8624a0eaba7277f4cc1478212563c153b21469bb747cb882c22aced139fb5b22d19f4d8a927cfaa9b729017bbe0c2d1971a74284e82e379865827db6be18ce4e0f8eff51e62856ffb52ba05799d40f458ea3aeccd911d1bd73338c91eb2b3c7cc1f1dfc95bdb97edca203e26a8b0a2760889c032295a327d808fdff2890a51f097138bda19252cb7a72e5a6d320a234fb87a3fc809c5af5b1ec92ee739a0fc8e2c2892e7a0cc6b307e8784a98056522e65c72555305dbb2abdac843e6d97efde5602f9b99b5d0a98a386e37bb52cf5fe0435216ab85c73e8d1abc02215e3231e4c65b93af3d8a7ff8550b0282e33561379621643a9be1330ea0317fefb8e5166fdfd3efdae1c4244b677b9650470c0115a0c9a7944c67f3a8d9d90b1054279e165c7e9996c42be9608dfdf788ba105f1a4417887889dbb6e0c19871bd04a5f0ebba18fd8778263940d4f98a6e244fb045b9d2e19912f7382a5612aee6de40915b130f9aacd205fef65fb6ef0f6d9fa1a676a7030bf8e742a9809ffd5359e432b45a962f7938840a7b2827d238ec560a6592fa316d389315b11a45cf0df761b09c013fc32d0017bd123caf93635eb0dfdcd7f621f628e3f190e4cee916b48656de2aa6bcc665ce9f1e773a6fa2bbae7a38a19fd3a529ad9d99789335d879737b26d6d4866ad8245e3fd955e15a8f157abae43f55845c95c73fcd0ffa875b66e717aab9fe11925af4f2bc58f5309d2cb1b7e1e829a1efecc9de3e9fb36a77028394f557138d8972cb9197eba45d9c932729f120d550b444e0364a6213a86214850a9153328518a2312dc74f52eb0ee832cdcd6b6e4b9c5ace0797442ad2b2ef68aa9cd4eaceb77e1e55e596a4359bb3666b693cf4ea8a4d435817e80f9f8561c2fd7dc9d4893901611852dd636d09dc98465845eb4b48d59869541d4ec4f3beae8eabbf123cd5e560af35f0b1bf2d83cf40b159f9459a3f129f9ba8900e3b652cf53d590f265a09abaca7c6e8efb1e95f337e680df3f39f52ce68fbfef57758c78a832b2b0029ebce5d96b793a2e135e71014e24d810e8e4c06adde99d3636941e768a032d1ecdfe22fde13aa2379222f856e761c7b1b3e03c33b04f4d5ec0a7d31f7624633daf8465b9e1d340333af3aa4b80417e53592fae637e8d257b71cac6bf1b2aa664b0d5144ee5f8f7612ce751784085a8ff5dbbf8e25f120a36ab43983c641d9b173e5eb5c19274cef06b9676c1301def8d219387b92ba2c0181d1ebe04ea7b036e6fef20aba8a4fe688e9e901466b1ea2a0d688d6513d567600fa9f82129b257075e3b4fb928fa54a3ab1f42eef01be6daef11d546cf953d3860f8d6961da931e7be5dae3ba37bde589c40a4bb5beb70a2be072284f1a4b516da624b3869388784614e0b2ded42e7aa9fa8a368f2e2c13e39e9200c7f14e036e70150754eabb495fa700a8378fb483c71056dad4577e99767fae79380cd1f686b369bbe49435763070630c4fc6809b6b289e9ec5c55d4567f9e07b5d70a31aeba246480d7b5f7aba5b978261ce048d14c674bb6d1db1d4984e02a8d46dc7f6b383037e000a98462f31582b837cb8040155baa3ba09bb27ce1ef478142a6ce0f2887dab09d3c9dd1e8094357b3271212981fb04fd0db423d4c9d6006dd9f2c859d98424ed67eabeda66b5472800624665cf754bc3a17855d7ddfd291c7533cd54896965354f5cedfe272c9e0e40ed2915d26ac04977d4876b04f39133a22cac00df7445dbd1997136f3a984819f7aa09bb77c0e3ad6f570564addb994dc0b243f5f7274987d58d51e14392da88117fadd2b5801a05052a96885aaf072fb3193f0c16baa6f10d92b0fcf2ec6432bb7e4f1232bc5e9988685e28dbe7f367d9efc32f965a49f4120268d50f5afee8eda890ce442f7d43f83df8935c171f5edfc9b79cfea12e3f2fb6cc9b46b0cbf8af896c56c39f0036877a244c2adf1a14ca06ce559ac62afc20cb029ba623a2029f480e4c8d09f0981c86be333830072872460f18f8100ddf963c2e3f250e88b77007c90403db75a9d1224c109b1b8707023069a36c602e35b44f2ce61948567b65904d53894182eb76ffd2020e334f527a8800928dbf9b1195cd1fd5c010fcdbda5477a80986baeb0b1ade6d6f79ef6e2d993fd6b6084f67c40d5aecb9862739bcbb4ae8717947c84af2dcb040e3ba6743e6da3c869a27dfc1d06a9a89b054ee0bc0fea930f154371a8c463c2767ee3f383546fd601c957b83ea601e181585cf5fdf2bdbbd53540a1d422ac56e9e79135be35378ec5226a8f1bc856031e421cf61587ae71035543d236818ca83f50a7e508cf8c194046e2768821d8805afca314db969972703ff79b5bd8c2e796c41f88f006d7808eeef6d3868f6fba9b012cb76be0bd283c212968bb0446d86e72514e28b28b8bac6075d2779d0aa93a66e5cc280cc4ea8da63fd166f2bc5830f4ec4eb8b6db16355fcfcec57e84f2139d5552af4a10da0f2bc27f7cac5cf6fc24a239c5662817c94b0c9b5c92ee712f4d3e53cb63c1d79dd2d3386eb4723ec134483bd70f075c6e6a461a210f7ab0acf1a7d992c14d0c2969b7b4cd0befdc1dde4e76914e4d0c35b3aeb471626cc1346c0a777f36702124fa39089a3f77956e0f76e910706743a046a502e662c711702c0641f9c907c8288223bafdc0e7a3b73589677c2299db756628553f854df671176f270bb39ce2e43f65be432d146a1c518c035e669fe08a4bc6aa6cb323337b0185d5b485f38b739c34d845f58dedfaeffcf34030d0cc19b3c808c5037b41fa172fa654a285dc32dd91b9db08d0fee0ec03fb5afcc4eb9e04b895fa3bbca9b15606428d8f8757c448350726b7ccbeebe8b914cee78e68bada378e99606678c26d071d16555c10d735755f9fe9d889f11e49a5fe4312e1689d674ed8e190eb6dc4c24a46371b329fb56605d068a2fe9e3c9bbabe0b1a0fd0aac8b9e2a4ed040c94b7e742c833584f7f1b07c1bb4cb543dafb8c0b161b028b080b626bf0e25372ec9bc2b4437e957f83f70697921269080cc97804c314441bf1b2621a233060ab7ef7c48e6dcf6e0afffdfeb6e4083ef2bbb94a4c26eef383dad681f44cfac0fc1ceec5ce42566e0ae2fa4fda04bf8e62978f7378915c8c0f1e5e0251b7300fd3361448cd493621b3152db4c1de32f90b12f5e180f50f4cf7b5b312c5d372170ea666a1290ec15dbf9ad69bc3cc5002bb774d37da325a52276aab3a18a0f7469aad2d6bc0150f46e401e54e455d1ec98ecc5dc6bac8e39b7ab08cfe4c83540cbadce7a6b44c96ea3ac43478d3fbe79df5182873f2d69b2505c3906c90cb73bdfba99b4961175025163287036a32e58a955af5c289d0775f79015e11a156a5cd1ccbe1bc47f9783d122a99b931f0d79c485320eaa0d549775801a6a1235dbe1304c694015113b557f6f352a0a3b5a84a3cf60a21ca1c195d903b0d4e3eef6d372d7d74eba1133f73cd0b8c53426d69fdc5005dd2b518660f71a1905315e7d216e9b2fe679469bf5ef1abfef624e3017a8b741a75505d722e680401f96728820e03b32582aeb2eceffd0256e16c0a6426633ea416ff91f048150d3f51cfaae72e84b98f53c0111d1db8bec5485593ffc18f53e2020747368e7b85b2fc67b8e358b56120131eedf5b7279f6eb1ccd040fe43f256363cda8e2fcc14d3b07e2c5f7317732611d6a2e0fbbe8cef7f873f14e9409420f09c5e51fe62038bd48f5aa212582c02f2bbebbc72fe6c2fc6cf07173162b984235298c91901c8be867a6446018bd3ad3185305364ae8e1eb7fa0a961fe208ce0deccc57f2a82a763332954289f278565b68f0be80d8cb7496be0e24eff5b6f6550ce287ca7a927adf1de7696b05309c96b07647a7f61d0461f1dd5067621f5d4ab2d2ee13d8a94aada10abc829cec8f3aff8f26e27c85b72beb6aaacdffb320162b37428e9def8fb9a7ac14c491724a6911be6d894db7ca71eb3f0805dbb0ebabe260a67e85a04ecd3a48566352b58f933c0caa6d66f1c964a40da9136063ccf59d4342c3feeb058980fa7bf759af4ef4a3dd9d4021e4ed0010782be55792b31a3647754351a9cbcf22cad8a7432cc789faecf3ab1609a95344d1321c7588de76102c91fd35586955f2b8041033622239003f6f981c0bfad8ce804c73ed0490628d13bff6b82aac04e9050efd62516198f5d25c99310bd84e100d09991c31044e6b38b1b0e70df09a4a2e764051990d3a2beec7d0bbb3662c4a2cc7d3a2fe3575a634f8b1472b51639a5aacd8da52f61e2072d3b941d8906f6211ef8d61838cd97d4c58c9803020b5ce1dadacd58ff07fc47c69ed9f51930ef4bd91fa90f9f9085ef79dcfa7b8bc04b81dc2109c0ee7fb35930210ddeba8b586ace39183d02116095366f5bd3c62fbc3a8e59eb0055025bd2189b64d92e5b9115a1212c05ea7337f7046b2477d9b357c9fbd9fd01fef06040608e98f024ad2cd7178e163764056e3c2f387f2e51283a39f5202f2384e5bdb9106165de395a709ccd51a5cd70be3d7981e8dc0e447b740155255786f88f85ba27320cccd21ad7f8aef4d13f16772ef542006e80ca328aeefef1ace71bea5e534d51d41de3f19038ed6534617f1ba3c1a1e1ac520591f4dce1584b06aaea01a8d2ab844fefd8fd4251118cd2c4054da08ab8d0e02176a143868db39c7912bcbd91b2ebe0de11364d18563b024470b63927ca5b460edc6f8ef31d48e972e3f099885559526fc3855cc438c7bca5ceb9a37c788fa3cfcbb448f60fd3c69e8f92b049b323315a8de8988a2c5a4df6bd0438e41ff471acf8b81711e00055d0f4aea29b0322348091936f49fc422e71269dba5831d3e89cc13885a2bede30ab47e04ce2153468ab076b85302e7249e21b5ad0d191be71b335e59909af633d08a7d9252b75ba6cbad18b7984b800c9be0367c52754062d6fdce347d31be6fbfa2ee0ecf6e419c046aec3772881a577578ac4a3395843862a6f4aa53a0aa374f9084ea81a73391c1898149bd7ec40b1c6fac5994f37d1d81765a9f685563bafe86411f451cc09e3f698352038b653e37b9f90b0f32a4d247e2f7e890a4a31bb0f3d2aa05cdaf99aafd611683260849d86eba2d2ba481bd12748bf5ee16a6e4833452f9fc1f37e7b59e947ca35da1e32034f4b22b882e38435c054a5969cbdcf5b6bc944910e9109329aa93755588ee64ac32da094591007c7d19a045e88504b08df37d4c07830c49f02bdac65f4e6b3c94dc121851250352c13e1b695ca397fcfa9ca5ef991dce02da33f7488685d979bf2d19798901708904eef73a292f2d1b18267f2f3e31a1893729d39cb16cc7253d2ffa418a61ba74fad7c2b6e39d6b49dab0818bdbff28115157aebc79c327d8d783d84f6cfd98d6fdab48f13d2a59ce8563ba279377382dd642b6e6e6532432fb3533f7ed20fc0e0fbb86f80df048abe48a1cb86e52dc609343d1e6206903777a45d35ca9b400e88e61de21829fa21ca2670a50f73b54e96b9ed2295b9b8d33d244af1b025336a39bd6b3fa51f7556972ef2d57139248f686aae900bef37480aef5e5027ce744b193f9fec1463c39e72d904a70bab99981218a75bf0c53fbddc93b0f850c2d2231666a9f5dfc019c0c64a98644d69b2561f0f321a66372823d08bad1fb9a5dfe36b9aef77117210263b44330b280f17dcf9965f97bde0e992f56893a06d94748f63acc8dc447722cb14c16f4633c0f0bec1a56e35fca5a33e0b94f762f6fb2ae2c0f902e41fb031b19b487abf247e69859ed25920dcd817f2f0a24011638ce10390a05d7e13b301ea867d96bb721f352264914850b02b2a23fceb291fe9af3d4d45650e786d79b92fb16e970a3c8308819a8a1a5cd67a68928d9c4320cc8c241c61fe3df304ab670d98b36845cf471c233a73e31ba0627f7b8a43706e8a9241b809cc87b20bb47997676d865c6bdaadcbaf1f681bdfaabf559b72692088f884474d9e7c33ced644b494db837613307d3cf9ada5dc7bcca12452d33a50b261a0d2fd1022996c1a80f44751851e90d85102ed8a47eac2383d589acfc1b1d40d8c5959307066d64ec9fb1affc4c2f7657151ffc633ba5195d23d14b732799b9e03f8ef8dd408935d2079ea320f8358542cf215a7fd5fcdd242003e1d95917b7b041a7aa9ae3221c669afbe65484f5db6523d3d9e720fcddf93388c064723fb4c52c09095d305f773eb8d0caee35508edb82850e50e6fa2bc6f0ed45c756a14ddf4d4790c0a0e6d13d358d1f26bc2dc99b863e5b586bae9dfa4e8a80da4ddace7b68f7abd920b1eaab1e14a8afecb11ccae8313c640b50b2fa6ad8f272ca45a0ba7ea61779a8d857ef84f4ec5cc13a9227c40de02d66c1b4908942945b85cf2179a263df9c85ce74982797f469b53823e06c15eaf97cbb9850783b897c733976da55f689eb3b5c9460bcbeaea465cc668b7f7f8fe06fbe8d4ff029fec2e4a47fca4316dcf69538cedb1c0c377396443c3fb0e30f95996f99ff3bdbd1b946b1eb9b76c611dea49e6177bee4937f7a594b1c3e5ebf5fbacfbe60990d066f514c90bbfd9b731aab054d3ce98162d954e2f6b049c41490a955d190c282d7420cbe1cbe50eb548131dc461f9dc54903cbcaecf382f11c6da8da293e93785b939c132e31454fac001edfec6ab69a6c8aa0cfaa7db260a9770325b3f32358e5d37cf158f7a97d8664461aac877c7b640b1fb1c78ef50e98d07bcc98d9ea9b0d167b86c880b725d862188dc755731bfffb711eee6798e01718f14dce8871321a7e7c1eb0efe3b4c7bd2f7942226fd7c213522dc8901b061ff29b965c16a56046d2c99b0f14e31756a0159a24225945cf2391a7d941662295cac6cc3946abb81b77d8a5f343aa61c0c51c1beb677fbdaabe31eb884c829df5123ba529fce81e4c9750741ddc54b64f3d5ddeceda4ec5f8bebfba4652c71d9664d4767747fff2ec0857d19ce3684e88a97ed5fb41a7e12441ae27aacdca30c0c1cf7a75f8b51c17e6f7cb54699c70313138c78a8a75b6a9acc752804745bd04736dcfd46a59cf520cc2c64d53d186a4ab94ba015008f7f4e752d6f95169c6d1e77fb7ebfa2ddd3198716da0635870e0e6e200e643ed85a5818009c7ae72088a26ddefe2afd493fbc6037361cd7c884290b9abd635c96c8dfd163371790b8b407dbf52eff54403f6a6b69236b3fd950c5ddee2278ba3f70474d9c46fdbdb1ce4936cc78cae8c8453d8e1950d1cdb0d65c23d665119d6a32194d59f8e2a157defb2b08fc2521a69593064eb6d1a308dce994322defac650fa027a5d6ec717ea299173f5a8708f52991e2fc6d87282fceffd68c4560756018824523d839e41f0f478d973ad0cc5dc14c87b2039787ec3de5085eac11e6232dbba39eea2fba075341d43baf8c3ed4ee132a888dac31774356392aca06d45a88ef55e8d08032903665679ce60c54e851eb596af8e15778bc7eee6ae503776a5c2bff056e40916ee5167382d2e9a9a6583273af479e702096e7a049180becda02cb5bb0d7aea28f75875cf2ae0ffb082d1c2bfec01bb94b95863c2a538bb24f8075b721ca893104bdcc38de921cacf6af8109843ec8b0b64edca10536882d105fc9743457d28ffd488052a874bc42d5a36ae97b2120994241102594ca502720229a88d1eaf411da87a2a9754cafe8a8688e79049f79f9494447114869524ae8d262fdaefe2a9141784f6e503e51ebc4ebf6bf4661731d05bc0420185334a76e6be0705e17bfeb516f6a8a1af6cf3d0cade292ecb65e94fe4543041acaaf321f1f9d92abe49481dbc7c615509fb3f4c1fbfc1ce7ca0ab197cf15e1ecb2874324c493ab4a9ff8b8ad8c7be0992205cce9cc055e859ecb0a9d480ed0f3089a164fdff812d7fd4179f36f00ec2f9326a138cd0cacdabf74fcea635b5e60af444c9014a5b6215b48b19fa16af10bf665f79490752d75f6442422188b0a0d693e6800fe9298cfe7fed1e956a0d8ebcc6d722701155c64606de76bd223ca2701945378ab604e4801d14eda14a241240ffa5efb6fda8a8fb9f3eb4e8dd286aceeb0d9b94ccb82f4078022e70f19fe427aa3282fe9a0595cc72c9c933dc09caffc392a28c8a971cc4e5549a0323296816426e2b4adf742a522f1a83847bd5b78c1075a1040016d36fe73456c9d6dc3077b45c3a2f4ea1000dafb8377ec55886beebde081c86c5c3504f89b54b172f4fd154ca51356186354a697e4d8e88edcc5c2531bb7cf3736e76b5854e2f728cc6f0c3f869781a42fc2abdc4659aafd83262b61c80dfb388a53b6347d0a7a4ea1fe31fe073422fa3ad80046689dda2b9ee9572b8d8f7ab1fa890e4ea72a5884fe63e8f3f0f41194a11a7653cd362abac252d43a720a1533ba1073ee6715b55221c46e73aa0c3f7753d957413df88f82778768bc63b96ed515a32e69d72e46f57ed0d891c384e46a9456249d425a6e0ebb59500daf7c4cd1e83f3ab114991ada3abad7186e7ef86f7c3d70a3acef50117ce2909a8ca2d5ee2588623bbe706b9cb0f4be2d0003f272766873e00eea333d21ec76aa903f1612526d4a837b1987edf0c76e6a746448b5c1f7f7813eae87b1022d88be391744970730a593739a294e3bb30e71e82d4ef6f2b7a526d978627aeb5171fb6714881e74ae41e3d50ad4b2889fc1761ea449f570d8e3bbbc1292119ed8ba6bdd514eddd802c1b1510ef52d02e2bddcfcd5ec80f7f1ca288c957f974dba4e01c3b25e890b7212d09d61f482880e73b20c3d8fea165de1193040178624e618f1270b4078f5a90e6af17673152c9aa7e6fdedca5db1d89b3e515b26f4bd8b4c6377d8a79b1450ccf78a225500b54db80020595f4f7f80dcaee12de11ba935187a088af899fbdf87f62a575e401d886376eb9a7bf08d13eafb910183bbeeb3d25f93591060cdd9386a96f281c61351ca157a5cd255b98a99a559373a1384d6ea64b2b3ea2fc6402e72179a29f6793b9186094419cc38ffa349f46bd2b7d7f723356830d65db2694c6cfaa60d8ce7174b987bf5d5a510e162e861acce2d4857e9d2961b41a47419c63b10236e2a267797efd6a29aa89e7d6c0763bae544ac43c256878d5e3481f36a492fd5becfb7fc9ea6c52c142212d6ca4f02611278cb153168651326706238e5bcae5d184d4a81d7a015d38b97efc5c68208d9a92ae2fa8604c1e76f8836d4803fed62006a47053aa53875bef48c798145853d2a77228f766f0fbb2f102dbd5552cbcd5ac3487354cdc5622b199534d6504c10b3682f486f18270c10f40ea2efe22e16969b9d32e17af5bb3ca58a683e0874ce59e4a1af0bd7c610f02bb2e8cc527f9f64c2c689ced02862ebf23e1bb257d794cc3b866d1c200b2e06ea86fc4e972b259572fdd0df9f5e78c037599dbefd96d4f45ede221abcfa00a9010dedf5702337dc84aa7452d2bf7356e8d7904d1493178ce61e140817fcf600be5c5c01fa5dc6a09eecc730a514bcbb97873fd6bff5d4d4bdaea311795d7624679dbdd0f550c11d1417a73c694bdc58b78d41f369a855e9056b9c6c56cd9660428ce39c5b7cc06a0d30ea9b18f6423ccee17396d1daa852e9254c4a6ce069b0f0fdde6490e0c23d1e73a7b0c9cc92edf8ce3e55887fa8d97a226ee18f8ed3a4ac542d28a582fa77e8ce45c7ea27832ac5732c8729ce0dc46699e5daebb3f23e0f0b37c8b7eba8cf91635f843d85502fc745cf30b5c395ef313848abe790197fb1301e2b46a80b29cd0a743cbc08bd6c988bf8f4fd9b357dfe9f38a31b4856aa36e4dc79dcca5870f8cc6b9feef6a0cd49e13e86065a5ffe51e390c083648b8809ddb3930867cb065869e961b6390beeb5b6d45280485656250c5d8a9a50181d5de4e810e617c014c9d36cce47dff1e589ceae645a6f93c19a97a58124db119ccf58d56ee777e1525cb14568d59b72894dc0faaf741f3ab512f409f13bbb0a9e64aa443fbaa9641c2bdd550a7142a3402e78e549196b9c88fc092b259c076cd469df227545d255dc60e6a32bc850f2d8d1b7b141d2aacf1aacade55742bb5dc03f117b28ca9bf427e38fbd33ac6117f2008e1e1690f650e6b12e5dd839373f2eeeeec56b20b120183b4eea08cbb893e88ae71d01dab0b934afccd539d0c0af77e237880ce346d6b362ce2d4297bbc25f5ffcda93eefa8364643b5f937dfe26ce334341591e8dba7de16d1aa722747acd7bde105d503bdf72c3254f1a847d1d105079a946bf41b87633bf73e798123ca9f5efb093379f943b25a68ba1a92cc5ea01d9408e911fac27ce09a1b41b66f4201c68d9ffc695fb205ccea5c774e0514a57742da01467218437c7efa6fc674c7566d41b9caf4ffe0d4323c4dd06d2d15a0def6982d05f1eb88a26a698b4ae895fa69313a923452e04941c5dd1021d969bcd0544f71cd00033778ae56083fafe22c0584c2d97b2e8a745a7c1a2f0412bc7b5022b857e876a813e0a5d1856ae0c2cfcac781bd1168b7c6ba3773234a3e1915a48ce39d6d53dc875efcb516d4eb15ee068f8983db2b7c29867646ffd0ae680b3ce8b42a210aaf2573954f03f06aa76613faf1e470faa2a123ac72f8f24ea5b249c2eb4761048e5451a9d854223231b27322b6eb9779bccaed8033fd9ff5cfb2650fd1ba7b24648aa78c5618e97f8878f191b95d67a371925f33c6aa9903375ee9c18b4d259a7bad66f26bfde7986ee19211579d36b20b4a4b0be95a62f41eabac52955a6688a8098cde5b3fd8309f0e049ada5e6e1836a0a263925e01920767b26617fb0c98bfe329558d385928fd3d8e4db56f137bfb7afe3ca40fbeda903caabc41495692f94267d35a9d02a7859971ab4f90f0b148ad366dbc0ee3000084356ce9e47b95da7aa6f977805f0844e85666a9d0cc26c39dea6c5cacdc92466b9be5a39342ff0f2090bd0e87e2e7a407c19ab0ec30331e24e895268588522fdcc8be77c68c34d6a20240a8a29524ff6fcd6409703382a96f46e03a4e894c5a2f8fb2102df721744123fbc5b106fef8d5d140b9c6610781532a42cf4d90ae48c4261c55809bfe4fdf317ebbe07ba8961889f4493d00095016ff0dffeb75f366b58a0c98b952d106b831b3c7e4a0e721627181a0d1bbd6abc850ba70059f0bfb306b4e18c35c6932042eed7d5e76991775f7090c874c37665f1220e60877bc7e3a8294a21e097f5cf39e71ca5146d66fd9971bb0e90d1fea6bb54fe3705a75fb766a2e7299c314463738f2134cde09525243544cea36b5545ae38e8e2837a7f99d054b560682a23ecb1250737b82c0bfce2ac3f3199572ea21854bed0a0e1aaceb38883e53a9ae7b7521d1cf9e6dfa877b41b55a77c2003a68da7bf31182b2b1ccd1c0634659fc41a4c9cced9e12c898c9098349e6e9687c15a201240258ed7ed5603335de2d907c424fe6e856b69ce15f58f5d62dd4c2ef91c242d3277a16d3c4ec0f09d36ee65ad6551c293888f03f9a94035e2c619bd2cc50c142039e079b6afef14ad900757f778d76476a4bd0c25753e6d4d1e98f10c91a460656a2cd0eddcbdb25ace5183442088fce01fb5a74ee8f1b9ca36a83571faae1d4a2c48948bcf6bb95adf7e3f66ad8d3b15305e7c8c0c15d9bd41ec63ff625d71fcb85dd2ccbecee254c241196cf0c6b2bcb940bd345239e857844b9c574eda17256f77a7c961d2f19301d673685e45743abd0b589ed5410b6ce571283651c3ada0bc05fa4807f240ee2577347c4cd1859efd10b6a7bbe562c2d94d703d78a7ca27ba5dc22252c2a0c10fe87efb3a6423a5c6c60c25233053638291fe59cd8bebeff835e3728766861c87ec81bd14aed16b19473e98ea011a95053595f2ce682d8f5a2b921e02188a6e9dcd53e9f68f40c612d049d4538db585c8f5515620aad7acca3f506e8da5355aacd8ded18da1fd5c11444c6e61db1adb34cee21a77b3b648595472be1ef02282d6deddb253abf6fffcaa101ea446bca32285ca5ccd5646a383b23988a46e6a6bf0b5e860062fccd613ab307010ff5f61d420b5132d5cac1071877c4567a961cfa0b5903e79ddf358cd15c56b5f894628b06adcecfc0283408861def0c6bea9f6583c8d08811eab37b65aa60d6f3ba10c86737c5d937973c408b59824f6de8df77e2af84a178ab9a3a3113dbb11c25858410e58dff865a0df435cd319b2d0b1f1c4669a91fb7203993f74e20ebe9c234357524d892e5fe0e8a6118d0add6e10a1315748a50857ec19bbe1d09f9a9dec26231afa750273c8c908f413b84e234ae2cf6b4e682c708984665aa4a7736e896aa58570aa77a28664930a0e18257443025493ed237129a46b0b046ba74209c19cc776fb6e0b618cea30ba116a5d7413f346c5e758cf9e8c9d26ac456e123fa2795d15f34bae19096e9c51ce37844e42c070791c658f24bc428c3d982334322ad4974ca11c1ba53438147fc401d9be57dc4c2d3590dac1473e934bca36ecdb3a9e834a36ea52d769ae33d88e9a5898b9214ce16151bbaf223aa08b9756f885e1887c04cd8068f310d0a955ba72bf40daa0899c25e034dd3009cc58f0d19150edf62faf7ff072315a9758d02e57bb31b79560e532624a6e29496c306a04daafd53bea478c6c723fc8c6e88b27643277a71e034a5848c637496e783540b0f0eaf0606d0c893a2fbe8aed04aabb2ebb347a8ecadd7cac5245d5a220ade3674e9dfaea7d00a9a39ec0a8ac3db4f666201ee5737bb1acc2fb556d246f831c695f37ea59a76a101a2651fb861016817410ff42b0206135af855b2e0978c3b98bc57c195d7755390429ebf7c5a9a0d8cfe734a237728ad25317fca4966e21d2251a04bbf5931268e0a9ff4a3dc105191adb2f2354f54deae59b139094f273940783b9a0019eb22fb26b7342f760605435a4f6a68625ced95fe52f73450b33a8f0ef5d52e8c68c06ecec1f08147caa7bdf3ba1cd5efeb7511f0a14f9ee90fe1d21600274645dbdea46c94fac65fb45d79117df44e42fb5c242b036261c3917f0e721907ca35aa3163a8c4400934c740fa7d972666b20fad997f9415b0315e412519842bc352661c504c2b340cb8fe0c40960ae26ef9fba0d2d8b9327ba14701555b529b3885c5f077c214490543715b9eda3fe524adaae39d8bbc0eb200de8512c01a8b7e560c7a60efd14427f4b028755eb5f20eaa6944b444d0e4cb0d11eaea7b9f6ec2ee9091cb1c533f4c78c7deb6663e409d4cdacff5733f672922e09ecb04e9f89d47e5792a34e277a325dbd9dcf5830ff183b3dad07d6a923b2f2438a5443036ebc252afc43ad689727b1deb7bce9ffe20f630e23e4e9899ca9c48a34f744d60a16f7bb375e04e2895f4760af263b9d59f14aed93f873ab49bb303fc4981c9e9754838b43ac467664a30ea8dd73f16de7aec22c93c9cd5c473e39ead046f83899c93bdc82780078396fef7e98b3ea635f1f5e1e21878699b428b6b4d0206d54b899f9351294843215bf268edaf3fe8aa1daa49fc7c3ce95d5a1fbebc88f7cf4e705f5e12b136d60c890fee77b73d980a95ec18ac642b43706c692818e93d9f1db4225719c813cb382e4f77ffab2d3f5ec57b14050afd3997c064b8e9647a576cf580e364781104e3d4669acd2a519300a279a27d64e4e8adbce8dca5601dc839bc577c8ba04c34cf5292cac6786448ac6fd6d296500c20d955aa91436aab66b1ddb6381d5978b38b6a4321e7c0e08f05c2d7f31121bbad81ce4baed0c375656ed13e5037a682e93744cc6873a1684651c80f8b276fd8fd6ea97fbfd355f29c064d81bae53010b51b848c0cfcddb4a7e56b8721f3d60faa64df5768d2ef59ef8f46dbc2aabe8e85c17de41c1897532e49d8e0874bdbd9a190d879c0cc782e1a2cd0afae44a95341080fe538ea33096d554c95baca960b0b7dc1db28be30a8b36d3479988736b7bbd53a85b4b7adec2a48b47f748caebb83b9ef6e640cc127a7ee56a398ce0b35929511e806e6f52e7352f195bceca6c2e137476ab070e55331c764399a6dcbeb90b4f42f7554f92088287fec848164cc3e1a366fcdceabf85026f93b95066a53791c69cabbf497b271806e998c1c3ab74fc48da83625aa178f7683e444b645ab9db2ddbd6507addfb9a645776cc92078cf0d627cd5f9a22e61932b98c18eafdce7d22cffa120150673d13a768fdf72731f96ba04c3e4f758656a473d3818ca43b0164381aefaa3f084bf7b4f16d39ba7d8cf3eea68b34549af1cb36330ec6041b639ee331382afa23a07967df3a9b1f1ccf1849777b5db9d5045eb1c4916bbc749304e8b921dfb77430e5fba5049c455b1c09dcce6105eca5f87eac119b3020b2f6ba0d664230e6467f15313a7241994982061fcb3af047700ed9a2e6043cc757e611a773177334b72775a96bab7467d944caf5eb225b60f1d902b4ee67cc44982d906692816425d1564c1eb1de6e3c4958b7cc45dd7c6076c2352e4ba3ecc1d18ecdfbdc443127c44d5f3e31ba35140be8dc18474f96cb44835428855b3869cc3d1d8165870e7463e2dc5194f6276e2dd5c8e58b0493fe26ac41e6cc77b0d69b6108049157623dabff9cfdd3ca9995d92f2a5b25a93915be22860178a19ffd599998b2dc237ce31321afbfcf7481b1d2be4364ce90ec14ec9b479014c98e368e747277ae41dd3b12d938ffe5b5336d017c2ee3c131fa7e63238fc434a24967f7f7bf0e82681128424ea4c93251304c0019ec194aa37dac2b99dfbd4b22f3769c1cebdd1a3417ff5eba1e975e93fefa4c764933ac27cf95b3321c8791062a807a4d281862a6588b5be966b018c6192f3b2a9115c69e84e7def6be7ae94b3d73e4edd0f93fa1339fa1bdeb0f72bdede705000ee98f0e0287533e5f8733b6701aaccf8d240e6e1282bfac3ad84e4ce32264775dfcb5219ae82f3d880e464e51b278bd5166383914b88f40beb90dcc7c54d64192f0aaa53ed93c73df570bdc198843f22375409145e63596cce1559b82387ac42657e50dc19d9f3b9bd2e2722750cfa0ba69a0ec68d521e0054db59a3fcb929cbf2b77eea2890b3f499f73e17d26136ce502f7214fd5a7e302975aadcd7d1a17bed3d083766f74fee41b93415c6bfeedc7fb7fecbf02a47953a1be3f72f7a5b7a28d4c2acf8c4d4d3e6cbf6de1edae30e4fe196df2310c11cdab83bb0af695b43f7a12e5c1d372d3af38f384c0162f37f5ff02a9957f4a2a29b82814891f1778bba900daf5b3f48b251d456a050516759906030869cab8dbf352713e80d6b62163d685d344c520467382da44e9ceef53cdb3f4d564979b4eca1b8bb2c06364024db7c8bfebf54b26fbdb3200b75828af350c7ac172228941e9a60bee04078e22cb14092f4b1e1525a483b5cbbf734f583a513361b69d3f840b92daf3adc0a9bbad08e3da371c118c20aeb9985f37f193f0f2fcab65e18b7d98e6fcc58fe6e1bc55140019dbd7137c8431f5a011c6e999d5e4907d310e08a7222300efcdd5cd4897f6cc6b23d493682c185cdc94f00f1659df66163ee4270e368674fcc75317356c6bfef3c42cf899f339008d20694eac3758d69babd03ed476747fff1570ad8e763f0af5c923fba9ba556db5a878c76ea53b4c94aef3e9b00f14100c95f9ad1153613d5db3a0ad083e65539b32686b6548b0dd6c38a18e6a7077a9bc83d87eb2bbdac2372943127b3c250e4b39107e0f0370a0f42f1e6c605cf106adaedfa8167adbc2383bebb897ed0bbe142240e4db8e7ff8e0399c1505496c1800ade6e5192a40bc3431d93d4ac8273408c1efb5aee64e7a4811b6075c0cdff5da2c3f7c49cc3e5ea5ebc6115399a0e77fed6c7e61818c172970ee7281db3872e34fd771682823732bd49c7ac5e9d4889426f7c7405c350ce287f34220995ee7ca179b59edff44e0065ea44e88b54d8ba6477b0c8cd5ab68b709a9e0fc7313aebee2e67d8410a25a9e165a86d871022dd94c61e9fa56df2452bf3a2b6ad5e675f6f71cf38ae6c532fc454163c463a71693279e8033d0ce5f3db3b9aad39f815a2b24b0ad927fe9854e1f5b94b04600aeffa27b455201f0cd69e9050d36bdec241966350fe2bc743567812373d34271988d58c80f69954560a9a70694a3fdaaa002ab4e7ef6a54b413c47352eba3348b970b46134fc0c2edd384e733ac145c04d2a9b8085fc7a91846828f878c33e782c1f0a4a8e8378357b2fc0aefa490d00025c7645a55797cb5fa929fa21a3b9c15bd4b8bcd7ed02748d105c77d1882d3d3d6300ef7d1d248e8e609dd6c3e16080511060f26e184c43f83e846dcce1ff340d927d2936999a1c4215b4cc9e58de99d9152487a65a93547482b7b2b249cc4f5f3dbf310bc916a89df19c678bb99f46d66a02b50dfbb1719d8839239cc98790873e4010c8e07915dc4336dae007fdae6b5b36d4b0b8e572695f4bec1900e34d9571516b79c65c75bafc4df01b19af964a77add32e426b33ebfdf380699ea88ec73756c21393d2973d3272b70d1b96906f108c9ba4bde88e34b9582f89ea6b2314f71024ea17fb658ca151415b0dd07421bec18bdb42a8b1c1cfa5d8eb3d87d73d98ffb1c35665eb6325ac2122431f13d7dcad88dc5da24517e0868df7856a536709c882160442399d41d389a7e3a05bf10ad447058f5846246f2f1171c3398a69bab4b56e0d668d589bba23126ad377e4a9a0ce01cd7f858765f384748dbbcc752041c950101d67a47d980e5127ed8d7f623d5598ff7a2a108d6fbea18d97dbb434b686f6decb73e256169f7cbf822880a075ff0982a5b6af19420ab100e592a5f5d6141e00637dbf3711c52fa77d7c8311ab1de7a76d589b1b535dbb370909f7e19c03c32fa1c44e57ea3893ad6207b529dae799313f97890dad361f19e63a7b80046301da2571bc9067d21570e83f4f9eaee496db3da2d04ae5b3119f589f98dae93693a3530116df23ab17e3dd5220eda76e16d0cfcba892149a9957073c52fbf4d950e202e4dae78fee1fce6026cad44d097731f8fbfd8a5f55e8e3801597769621dd2004a6626f82798f4d641d62d67478ec9381230a390f31c377aa140bdf13552e9e725da9df58ab244f87556aba92cbeb7ef8f9698d394af55e7ebbe450a449f5ccd63cbec7a70a0f183b59db0c23cfd8ef75907cd4f9fe90741a43cce59c35fcd21878e3597b9fc3bf39801a9b1b96d5d63983a54339dc1dad1efde140ad0c770a43e569ea27253db14c7846f9700d399915d47873074cae8e5b1233052c77e78314037675aa75d52c63b038feaacb1d90a6b7eede82863eafd0f8ec5f73b6a680634f271899d06fc5f89ff746898eae8660df7c675187ac3ffb3a917a4d0860f74f170e94a3df3de3cb241baeb718523e680a5acfa8090f7f746a4406715bc613462b77d1a39a0341e470d1db92619cec3de73f41e7cc2f46e05714bb0d6798b3d020d8583e6d6070e942c8b3fc48f7b83790b6c7bba3737b2beabacf687796e83b0c92d712404e52c9623be14041493fcc2c54d2de0f899f1a2ff4818981657b07dc53a17c47b9a0ae9cce5509a17c11ad8162b65a6ccc41287ff792f54f7b6429c0a02be3b9cd6647b4a6c2628fae34b1790b2b64e86e87b3ce04c77dda1754204762909acf5a825b0a6a1fd1bbf89f8ff184cdc2d413ab7e8640691a1b002cd61af90e54ae7428b3ee6e2774543dc06950b39dc905c67c7d7d49c4d7f126845287f2871e2251604dd862d93bec18f725b7617fdf4bddd9f3ed0dabd2e9b0253d356401f7453586e6fd22f82c4322199ad07dba9744aa3ae47f65f244f1c78f30c2f226e97d2ccace08548bb522ecee858cbc7b5a068527cec2dff3a1568474dc20b3c5bf642bae10dc835e11c0d1b25d4fac529d6829bebcb0070ac39cc83bf8ea694f458f338be7a94580be567298e46080b2abea2131a514161924f84d7e050f275b1447070c86d1c5c301ede44297a3d075ff7a604615eead053087478ce283df22f89efeb02c3fc8407b74194ae6de1f5729a10ad5312cc7369d97f2e82cec7103dd82994c9048e1d0cab890bd40263a7649ccec4e055a5d1bda8a22c87353760051a57c87903ffe9344ce909bee2664d917c8fe301e16d1a4892b57963a6f5440946ca15d3e35006db5f23f58bb66e3e57c9ae1937d6f2cc60f863473cb0d5f8b3941a39d32a7408437129c5e70bd9ee9b94b459fd581a3fb2d9643afd99c1ed156e03e6b341155c4166219891f937594215bb31318ebbbbfaf5bbb52f4f187a345934abe2f9d4b5bc5c3cea93dad737960e250bf54f47e142728b297c8be97b8f36ea8e37b6be83de0e17a048d94369255a9c90ae887fbffb8377f6b345bae6ac3fcf5f8712d20a1433959d1d7ddb0ba7aacbb6cf94e2608fae644f228cf1237fcee0672530c2a812f80b2bd7adff632ddd7a8f54990d7beda1794035d463740cbc28a988016081e7c1d506abf9de71da6f8aac552aa3f31a497d9a7cf57b4cdd3719705ffac527bdea17eec06f853033327e492b342ac760498ce9e1acb73c64f95352a50ab68dd3c75174ac460bd52be2bec25f184e1272b8d75d994c52e3cc09c74c99743e351132a1e0347aae4d8979f49dd830a9ce0f5024501458936de2dfaff7b12c95126e828da8655b2284bedcc5b2a364609c32c3b02efa32f7a84f965a82bdce2ce6ed0a5f9b897f623c1228ff813d38c25f5cea675322f0adfa83c9cd69906e1f58204123772d15b0f38bbb567b12415f81f6f8c938ccb924ce8b93567d9ff2d1c7b847b2e01edb12f0fd1ab53b1428996ee9f6deb75f71540865d7e01d1481678bacc8c8ca5d5befa8b1e66bdd63003b39370fd3097cd8057e84d6b95be7b600b609a1e851222daaf5396d9ff75cd8e3843f9b97950d7fc05188c124fafa26fbdd6bf8d8bf18e63d7f58b7c75f80f8b23b8f77a5a33af4390442446f809dee90d4709479b60499e7b5f6c94605c978454ae7b87688773d4813fee3473015b1d2e21313bfb6e09bbf46606524db288639567a304c2c6087507ffdd32b3259a9d1c98e42c4ba0fc1ad14263fe42a1bd066a2868cf29202ca9fe1de40a5bd405d39323d80ad66f8015ba102fbabfe242a68eb97a13f3f6550915585e7cf2c1d87639fdebc798c8acca344fb191a8c3269737e92f31715f6ca3051218c67674543582a56063298aaeccc56455e70da5974a3f087dc4e0a645cfddd1da60e4c847f0295e1b13ae0bf2a94d16c376e27e52a2706c04dfc6c9fa2036bf8e4b3a6ee55bf6b0fac160941da26b128772895861f404ec31c793fc0963772beb8a6169eaefb6e53a54afe0db0f53684b7e6ed029583e6867ceee2449c29606b7be559114671a8dea63e5a17651c70ca087b098cb16c03f3910715da8952f6799eee510e946fffb6e6770fb403ae15653bf46f5ce58e8d7ba2cbd75c46b84087af066e7ca295ac518743b07d256d8825a35ed41236bf718db4fd26e4948bcc6710abb6a61c5a947c80e54520f8e49314ad9946a6d3542f1d01731ff243ba4244bb224c04ee73521a2bc055b07e95be65ee10872a6bb06d2972ce91489bb58c9928c746436e203b5d345de189c8bb38a15daf9ed09c5ba317c9aee4abe707dfd370d45a7132580aa67dc9872fd275ae953e0a4865402d605b8412674c6521530bd5b202be0f6596c2a99c2c4f376a33321c8db7a524d2a4e1fed7019cf4ca074f85c9f698a90f3a99e000760fa7e9b7cee31491bbedbd58bdce19cf373cbdefe6304cb2c3c0f16d50182770a2ab4bb3b6fd0694e6e7fbc423dfa8d71d1e07ea8fe4e4b14f1f84da76022cd7bf33a7bcf0161da0dd54d3e7b8e9d1c3667e80172bc8939155d4d729abbc597dfa9d7cdf5a71848e6cd48934509272498cad45cfd86c5bdf5225d5d6d3bc88a57dd54cc538f87877bbce2cc30cf8df9212991300ece9af9d15ae1cba375d99a78856a90f129351400fb77ffd2f65f0b129b20fb11a89e2498680dac04c14b6dcbfb6fc5bbd67681c098177f43a862bcdb45654d94822b298e2295e31a9a49ad4bc6628e001a43339968356ca04969a2a44eb9e4c7625f82cb47e1b8b517a337ea310c29f665030c7b5f1f068bbb3533c89cc38203b67196ba46ec98686f25b20cbd4f253373a69aec42505aa9a57391546c328140b2c24a9a5381e8098aae0f0952ec1e352975ba87a7f9f023d3209c8db0456a9d46461900cfd7ec35a86eb6af513aa7dc166c84783f5f08269ff49a67465352dc9b2c8153fcc49cc9160a7abf6db073eb7a1be80279ddc9637198e20ef7ae49e224ea464f08fe586af38c5f6c5339f58adc4f40f96cb5a48f4ac393614aa0013c3f019a835f241ffe00632ddf25a433c73305be481df8a3e4608a28722950aa95632fe1d35496c8318cc51db5c8b92710a266926d032b269ecc78db0751d82241e6df9ff6173e4bf15f51a67ffac0d5babadc56f8ee7fd6804440141c94decfb64706a2f9fbd8bff3c9b62b413f7b197e5b6c501034ba284cea14ee5fee65d00d15c25dba0d71262cafb5a4f39ae46bf614e8d1ed291be24e27069cb366bfd385586e446dfa027f58b0d7a3031c40ea2523b62e5ff9ef6ad298e6e7adc1c486019afe8e1b468ad1765e9afbd1353b8decf52c6646bb9abda90c95481a04c769856fcbeb1ed2ed2d497ffb3432eb31ce9649c8ed17e730c9a98db81477c5dae3bc9d3056a7b38681d961995ceec8ddef4dcfb8c65e1109072a80412778526c9375c89e4a385a3b5df042d93e42b0f9bea265905936fad1d389ce41e3829f452f21b3027c2a06696c9ec1c5075f71a4e609e10c69d2eb0cd6a825eee4300b70c65711a429298f156ab663975fe9358ce35a6443cbf868055d6c41dad5d1f09bd051e7dd36b27a23d74e2a198978bb2c385249ae7e812ba02c3e49c2cae80af84b6c7a52309c62829143365bbb1a5eaac31099df1edb729b9b8b3c7349aba5a218acd17c7c8cab95b1b27c65eccff213049814dab287a21a43446fa49585a11edd35c6c10f7f8b4bc0808bdc860c72159c53cd524d9b3097bf5f16d42b95457602d3a3621e44609e6dd45dca10397265ab8d4d5dfd40e4902c54e478612de2f5c17359f370ff557a6c9840fd9d33727768f650441c35649715a0b51afa5343a8d1a8393632a85d41fefbc6ae04caf33cf1220d911b4a158790454d242143f3fef7274b7f478a736705f1ce642f4466ff77090a8394e6481316482180a0ea4c50b24b290187c435e12bb1953e93d9e09cc8878a7a8082bbf7763237525c6d5e15259274a569cbca5ec736dc1fc635adb1a1dd8417302c636bfd90106114a09b11c01dd35228e6178daac01b6c6cf8a178842e2b0fcd058eae6373a7ff2b9060ce5b3481c28eb147d7ff50ca433a394d6c6d0304faf0c350cec9f17a8ac1fa431419c07147309ba0629f2faf7590ffeef25ec8929c213045f73da2abc9aed1394cf6d0fe281568ab3e0f67479651c7439fc64c906cd1a998f1bb2328ca23bc85f2e1152a7369afa90382483aefe7011fd08c45b354d99f6aa0c197e9ff6d957d850c656d5e305c5c59b5e5dd381993d5b80dca08f93e197b9eb72140c325eb1b9a5f3b1bb181301a208794cb4f3154781c52d7dcfd80312952766b2f7b6c8162004b354fbc603c3636757284584192de459dcc32139193c1122122db061ecd8c218c956ed6ce6ab61301dd2503ad8d8006cdeecdc619011d396a770338d87a12022fc1387555f459b61df82de103f921c617e5c95eacd18e35149f917083e67991cbc46749e6ebef97632a50ff30804ced6b3dc33ef96d23052d5434b597a4fa31edcae0fd99b1fda8c39f59355f3e9a3413e58f9943d22ea012530cc7b1fcefa1a5a7747c887fb589d7c625de8c43d0a243b28771d7122b3cc8dc68162c661bb1875130daafe03c7bbad1a2e9ad15c943f7dd5c2967d2e67a853594a05713b76ba9623d4da13443c38b38e67a672b2fe2ba818427dccc03e1b127b00aa16458a5d89752ce752ee87b58365184e473074e231e2f4e544ec52db07fa28b6670a20de053b4475e56f209304ac513ffcd0bfa3f19d149bcba2e6ef68f11778383c838961dc573fd8855b393b8e840fe8dd5f9b0393bf8b40472e5f0aa707b9e99e045731d26cd9b74091047067bef74fdd7aafd2c436a3837ae2417ab1ce517e7050d95a36732301c304fc47fb9d761d82a926800fc41c1f0fdeb6b6f88780d534bff6ca1491f2a588c8a3cb3d3868dd12439c4aa7e6f8de1d5ae595679b549f77d22ce2c8c9de45548a219f56f49470ac612bc83428ef350b3d57ec653951ca2b7d2b4fe4f4fab120c5b6cdc3f320e9df2b39bc50565a8951a1786a877160c56c133edf7063545e163b88ec2a4ae67177de8dd12464a409fe58198e9ac2603cb457cb098f4100bec76cd8748645b21f7006fb4ee486f2e70e21250fa9fbe25ebd3846c863e8aa9ae0d7e6bd06c0b80348d654840b453029cc1ef52516e40b954b1442c0d8d71d176e8e90502aa326ab41eb1aad5b6e3a9ce54a1e8e6426ba0d97c26839a3bc942e8657c9f48e92670d6eae94addc0020d441de7ebb70276c201a15e70401973d17b79da8b51cee8b0e97996526ccc846d4e2afe74440923558796ad6a34b9a53cfbf1288391d766feb291bf71fa35d894d347757913f5de69d8f637a851538bf40810657ac0726c50ebef2681e424e2fecb7ce8672d843c4e985e5ec19534ac33966cc9cc5721af89bed4aadde983cfdfc6d93d779f805f481d20bf00a2bf06246c2f790d16adabce4e5da087ad89dc1863973dfafbbc28f8f2c5cb0d3efdf621a595ebc5816c45322eae2ee039d154eeda849f89d420352e56659c22d3bc4f9131c8d1ba5e975948e7edf45579024e9773c6e73f45c5015abbc0eaa8f04447235502710e38abb842770f8571bc0adf8d0de4ac936b21c7c8473a5fedc69319de2708abbcdfdf3799cd6c7d7938e5d5dc98272196e646ddce56969993ab2f82b113ed2e7ae6abcce14e314b5584f32d869b4bf97c5c2ebb9df68d9f989b876fe5592a8cf52459e4695394df6c1ce6c883af790a68f713e3f869319bfcb2e3913a8c0522d634a96956a9e3e102e1342cd201993944e2e34d34a71a13a0b3e5a7261447259af4892a8c0f5e28ee9627456bd4ec9586cfb627e7d96f067c8499aa30ad4036a20ada8f66bbdd81a6646e7515fd02b93b745eef85dfb5961fb0153b13e623414e5a3dd94ed6521a50574a6a7165f2c59009024ba7cb722949e3abf3f5a3a8a20c91014f9afb0d04d0de4580bf8be9a18cccca230f64a02b8472a97ec09c03cba19e121cb2bcdaaffb4f7db56bff0c40297da0dabba4eee0efd1a79444dc2cd9bb33ffc16b1dea5da460776c8de8a51a5ee2f5a7193ad6e8b61a6d44be4276e81a480d59a5178dd196af8d812e7fa033f644a57830097b634a8d5c26f403720a34995e0ead16bfd1a63ce5745b925a363df0dcd918a75ee0260a775d132629273a232592b77c804085eaf6aab402c294a8b81bc644dfe280c498eb873d06a23de5abe767ad1c01d36e01a8057745c3b9a26f3d65312f9cf856e23701a1d4b6be2537d64ae3bf9ab4b8aff257b8e407ab87719711e74b74552db5d817de133cfc2e922e18e6a29b9edf821e76e2fe04b4b318253445989cb9d4848a186e1a77e6e8ccb0f15ef6e02e05ef88e44dc459f43d48c4c977b250719ce41951bb96e491e6b8238a385f4187b6cffd663bfb7deb99e481a31ce6680ebd10c46c9b054f3f746de9cd9a76c77f6edd9ff2517dc05be456f6b38eb9bc732f6627cce73b35e02cc6a3590647bcf5843961c434b8951e110bb2fb855f55fa33e7c3ba01e18051cce2e870d5d4810124e80b9ebb2d36c488f5b9e6ba44701aa5bb0ba42af18cc6a0a40767ac903d1d6b51da6bd5f28c180607142d8487514274ab03aaba3b7c1e1333dcabefe452861fc19fd4233176e7acbd6388767ae6c41aa5733f6ae4df1d3b7bb4ee29adad6328e88076eca74d9a649196d0e524380a5c3ca7a715e2adc659ab440969bcdc7a9c5a3cd21226cd887a87a051c7bfad6b7126be7d9b81874861b6aba4fc55fc7d561003276c133b1771a2486cdd3a1f669bbc8ca5b9e14f4367d287caadb0703cdce4e0c0e4e8e8fba96c05d444b7b70b1f7d0c4816751256fbfb1ad47a7c7040e418b57b9cb301464b72e9fb730ea8dfe98b5cbdf4853934e1717f691f575fa3ecd0ba7c5695a8ff57c69f847d49a985712c528670ad14bb9a35ec823457f8222593a16456456785767c78bdee264fefe74a99b77a5cafc18391099e808448c165ce357c0b8becec472d858af3982af187f464784056f79cfe8d5599245b79790a51999db8c51a158577c5418146bc6991dbaf7613333392557a98e7ad4d6bd353d00bdc9d6566394f7a63512a0b376487d60c7367ddc8b1826b690dbb3d20605b63432c07708422435c00c1e47412e1655e0746fa1654d404b7c29acb06f668c206558f0900694ee7c610e07d456d2ed0121401c6f00cb44579a61209f3b05b001a2d82a6c495a9fe6649b3adf43ffaab35110def527e5cda10d372524556bd9de297b3837bb8b3226b1bf3bc2d5f88382b57687a7a8c6a149f874d98b1d6adb707da42637d9929c90c41ad784c4eb6740059663a76cbd6ef8e58a7a3df8846df15d9080f325a8e82015adbbee6e1b691e0d4920aa925446607140bb6ec735dc7fbd3ad7798032ed00898804740b2af43a0949a254dd20c967ab6850de969773a8fab8d5ec1647369627b206ed65da2fc34be5b1aeb9b87f8196f7c3b59f2f28108bbacff5241ab29539fa0a7d69b4b8137b47fa7e4763f185db48e69b704b6be82403fd706d08e28a596e700a21ee2d26686408fec6717d57f68f61bee92e8b27d5585cc29892fb125d8ca7a5246df1b25f23b4789ba9449000e18bddfe385235f77fdc11e451ee425bb1d5830a33b29f8f275429887c9d1210c3542dfbdce47ed9f2fc9daaae7d2f983f37a3a48c9fc0be3ec75c98b99896b0372853561e6b3d6ed92fe66ee3fcc7a8066bea3ed9530ab2b61a21e4e53d52932a385a05224cb28dd4f6060df7761863476d252e37e36cb8532e07096d72ce9e89098d0f5e40dd90fe1c87a4715677d96ce7f61d360fa80ca74e4ea33c96eff0ea6c0e9f7e2853fa6d494fa98a8d3c65b8a619f548d1085539e788c137f7602b73ac3038a632b9827306139ed39e9485542130f4d7065b8eb71a8a9a6b28c4dc3ec50ac6bbf5c83fa38be2453e786f1dbfb8967248f569b4f063c699924907f9ab88d64c51269856da3a8be6d8ed9334dc8ce92c64b38d43d0d2e48d9b160fcebc38a1fd31dbe864f6a199c629be38297279a2e76158fad17bcf095eb922c69840cd0c75ea0805118d1026718577dd7d67f5f0f6ff1ad9411f87df493bfbc33326de8b80aba3517a1529f5ec54e8030013c30ba5885ff9cf3a761ddcab0c209baaafe426c19abed6c7e0dd1cdaec90da3637eeb880dfafb694d271a04fb765edb7afe2bf6037b498106d2a7f2aaa0f5abbd2e0f16e9a18ae547d64dc57a8de864b7582ab3806089ce7fffd9cf4dd7ef4ad09acab9a589480c6372688c0da124592f7e6dd02f0f6c289771f5aa49ad09db4f1b7383b571d7b992c8320611becf22c86014f8986996cebcbf9c91a415d5dfce73935a3805fe8ffe29c99422a06ed9e0ceb37bfabf1185884904c85981e711c1006a5183b42517bf191b26d98cc7952949d44ee338c73c580576874aba587b23d96ac74f59dc6eee5b6b5a737266d6600773d121a4094ceb87d10c18ab46a45b2dba5bbc23548eee46d2fab31619f4a83c806ad1bf0b37fc1105f7c02952cf1f0db4af894ae41407b2bcbf66af75a6675061f2906665081b4f99f51bfc20467a6667f93c1c85aabc5e676747334e98e1ac6ded2b3593394ad726c78956dab539801566125a57f08344671c450f420c04f9729640f5762b2073da877806ae9b606ab64ce9381a01b2b8252c5cb130910e0f2fb9ac81d22e6f98f64f92534bc165df743094ffb681cc065b0d8087b9c60ec6db5ccbe8ce1cb6935022b16368c957d92d9336fdb3419baf99b64fa6c63160b09c3ecd47777fdb58d22af2963ecc35aef5979a7dc26b9d2fc4448e480121a245111cb6393c4af503f94c82e209040fdf9175a8743246c4df92f199bd5aa1d58ac9cdc8bb73221fa95702fea98a89bbe5fcb869d57b83953d0f5a5b2a8382952fca316c18d337a13011897ef888204035e55742ecb72217aa1a1567b5756b9a430be6d2c0f8ace9a26162ae434a142f513093499f24e02679e8994b54e9fefc1bf9d2effce38f1a7615217f141e24985871a9ec2aa3351ffd81764575e00fe8bbf685810077622e250e885a0ad67f59a1745945cc3cebeb143ed6d32d1ce6ac18d55b3e43fd32f596c2f8e8ae46d4e308b834cecd9837f0a45158e76ba4926bdd607b6bf1a1446ca1bb31c779c767c36feec15e968570604d3d36a5e44454c1e6d29f68e9f2473244165dc534b746806d7f6f99ad764bf1a25abaf8200a0c2f8b5eb3fa0166231a0b056f89aaf77fa7aa0456352401aefe2853066d15cbc129e9a6395f44d44b1e684dd4ae2a6b710f77cccacd715f0e8c4ea72909289c3807e0448a725cf8ac36bac970bdf77e24a92259c221a5ef63c0b92b8828645993380d44db72c0f221d324e5ed91249bba7057e302edb6b3a7bf3f869089e121098523a81b2af9c77dfc51235911c0b5e94e33d326c5ead1e40301b3c20c11d7a93636e39d8802df235eb79a12426fc088fd28496fa46c13d997448306deb6a3326b1e5f92faf38530bafc720b24bf352c41bf97660cc56825d5d6185202d76ff2faf4f75102ff6a318ab06954e28892d2091ec452ea50610e88e26ba083be6bbea7b77d78e159236ece8d51fc37bcd8a04cf90b78a7a5b4cc9a75c837b5a08af6859435cf5adba6c04d348f3e22c50cafa8d1592b0fadbd6daa244d404af5039ad1025807d7e3d1fdc75a9e013a8bb6e428b3d2b4f44ff843278b6eaa38e1d06ba1c4934476afe3eddc308aa54eba64e5b4924c02c3b988e7e2b77465a27932272a298577d85301d5a9dc76221c9d280d032bd229609ab3c62df0f9e53e9d2bc4836b4488a67bb38b5fbe16773654167d1dc222bc0e4f6446e6956dfcfe7502cc22d6d95026696427536a3567849cc837cc9030e73686a8721b6795fbe471c3bd7767bf6763e8e5324b18318ae3a9da4d769da16841c5313f25c0062f4ba7bd82661068bab6a0ea760b9d7aa9cfd36d1a4cbc5150ee32d6575403aea1122602f38749b8f7b6a48b5261e1176f27f3a88fcc0ecd92d12b11819bcb4c3474acea6967a888cadb36c5a33230206468593293f7ccda6bdf717f88d419f3036e93906a2e5224e45d78f73f51a3453ffc3aba6abf5aec90323b64c5823e8b20078c535470a5cdd61d1f65fc146d4583713f70388bacaf3376ff252935dc5093e3f35727083938c09b5eb946feba786db9ab8987dcc582d49da6cbdfe90051b5e21c02593a5a0ec449e77d4de3734634c543bee869adf7e4d4a6878015fff2d5c1e07fb88c886a56c33ea2b86922ae951c92cd9e408a553ad0b228ce2f616a31fd3e3e63060a5e56b3bafbf1cef2c0b547bdf75abfbd1650ebd4a607e80c4637699072c9c9966ef87217c3fd40c9234d267480097cb6695abb369bc8626de4203e1191c23a471381abfa13e3491c90278ec333ae66e8b1280260c5792346f9d78f1fd8b1226439cf84b16da40f6d55f2cad8db50bbce04d82a6b865183a20c2d6c91c5ba8474c1b62a2134c86aedd25ad9cdcbf9941cac55ba8864e4d72ff85d19f39b0514e9002bb32f31711522ff7c779d57be3349aab15d2e8945ab326eec2e53e1137e113e39afe210077515e5a1644659dd47752e41807943b7a73171c4827fe324fb9b38d3f00fe06ec0fd204e6af6adebd33e209193a085eb1863d8b2243b30aad6bb9f694fc497d3840f64a008cfb51078799b2873c965d424e4cf2be2021acce137975675738cfeca93f5ffdf76d55238e96c1b8e3e9c041ec356610c6b39fe010e3918009bfb3f5f3f2d1b3234f8f30f0e976cc0c709a091f0c0a97afee8a34d0d115b7dc285e7fd36fa3514be09dee3c6d24006df2edcf23c363603ccc6c468c4a0d40ea9ad4c66225dc82c4b7b1fa61209e17294b11006a33219e47c37d11366dbedbe005c67962eec6c16a6c277bc7ed88c1538dd576d41049dd6e3e1761ed2aa3dd04e5df8b0e5501fc238d8f3fbe1141db64b1fbff88f51eac6712f8530c56ad39167e2415051c8ca7211b99acbdb437693d189079c8f8efe69e2d1e11a4e6c518283fd4f47f2a5282cdde729402f1fcb8dc852f62bee89f22bc03a8da20b73d7cb1a28d113b7cceeaeb4e6e1427a16af668953354559e190301421b7f7613abd628bbe7e8240374e5c62c16215f9cdf800c48cc3fe85893c60b401e34acbec1c510d7f15487274c19a788398c4fe9974ca0e9df549c54927bb26991c32a3aa2df99f10de9083242b9629bfb75c8b0467b9554d0622573dd86cfe6c3cd050096e586a78c5c8817d447552094af0f04edf87f90737ed1054025aec413cf07f919e957fa5051e7ec95b5e957b4ac4c8e9d9161b5880b155d2aa227aa49b862d3f8c6318e55d806ce562e5ae31523392fc32236272d2fed0ce9fd28b64d44aa803ab02196ddb1e11c34dbd6ccdd41935e268b689ade5b0dfb53eba5113df5a4a4380eb2ad631a637e8c0c6ccf46cdd49a82efd1f009bea13c58a294989c71a9d57dd6bc89aa3c1d5ee0fd6d4ce38617992ce6d328cececcb939307486151c2cc0beac0579c7aa0a8038ccaa48a46797f965c6812126eab65862b80547bac4acd20ff77da9d1082536922d11dd810af5adfb8baf9775d403359ee41377839ae56ca5020c5c8678a03f44aec3a6d0b69fc4b62b2194743a2f69d97064c415eacea3369974a275361238f461be0823fc75cee18a68a30233d5534a95f11816a836af7727ac52b2f5eb7b7adba7656f8c62d8d5021a5823c5166d761015e268c525fa75386f1282a4291fe4ef826a87f7f8924731b89b65a3939910306efe4d315fc4696f055d61cc3a8895d74df3dea89df61f3e4fae4b5faf2426ae337b2496e0ccf250399d1f2688c93ef69a560f4e515262fb4484b63c0ec1ef20cfa4a11a877acd784741aa37f0ce8ccf8d85ceeed490a22fc9ecd55240f2bae7b2fad9eb0bb40c6b8a995b81ff86b8d6a3204b92bded9e7f60c70ee6780c6ee96409dfaeec75f7bfea2896a8f0290078d3e2dd2208a100f0e7ede1cfe9d1f183753221730ecd1ea5c6823457eade20e7c092e7153f162bb0a18e60f0924b8c8bcbd06341924d23c822bf361dd627e82747866b332df359837c1f975ad57ea4f764e5953d2e3956802f76c3056bf97ab8a8cb6d8a3a5269bde0cad4d5d035f74cd24edbddaaebc9edefb68cea16cf0eb5d6903904a448196cc6f3e467c16998af74eda97392ee2839f8fa3f042d165bc2384b653deeec99bc46908b0ffc36adb213cfc847c2f113b8c2c3b5b644962fba3d03bd61e41362e0d440efdeb0d7a5a5458705d36f24c40c8ac37eadd926a8b001b857e39ef3245812076d1d1c5c5ac84d41bf2ef6d07136288fc29a294914162fe89f4b109db1ecf570ba4ac2c1a7f93b223e1bcc6a9b09c15d97f16b00324e511bebd1ffc85e2ce90baeec4869d2c2eaa737ae6fa11dffda97de217597bf85df6a3e9524635131b8e15ef772a45b5ce603cb45ef00e47eb017b22aec7cc22d3e839ceb18f26d2546ad3f606cb5f0454bc6f2fed6ce65ee083cdc2af345cd3c25e85d4e11c48f1bdde4e4cd0020987eccc434c4830d02487cb4e61d838a48590fa10550de0bcd5123b039b936ab8124de8b54e8c5b7aa93d683faf1394b1ceb3d767845854592acee816f4a3ddb21b6e150393c28d836ad2e1c3f9fed8a67b82c79a6f57152b6240afcb5e29e5953b49d530d26aa1027d81e56242e3363800b098c10897abee0a25710ef9d3a6ce0751aa847638c3fd877cf48ae7a9e23035dcec72438b5797ef9fc7eca7a21d23389d7d090076aef38e870c09dd8d6ded66cb704d4174bccc0accb118589fd52a1d05260f79c037538c748a95748baedfb32185718e0c2d6749468b67ceb2ddcf66a2e2a8fa0cf302dc87f544b6d0c10dbbbb86036e1204f61c5e9f5408f224d23a768f2d412aaeda750f7a1449b007909afeeeae36fee23eded5f97d2c0703479b2ab8b75030ad25f8b69864ebd8fa163eb9751ebf77e9b4ff5c89230b983d141d2a72a6299012268262f7797bd32b60fd703784da5cf802102e43ae2ecc7676ee87141e8db5a0905e9a4ffa8f09aec48a33a415e56adb888c7aba277c54937c2d727985d16c0f0d7ed12d75a0d6c8ab3148a48b60ddc4d9838e89bd6396508a8e287207c77e83b8c11094d8bd65cd14655af1a2a093de3a08d6fd41a1dcf5d852b17b12ac3453a315d199f8da5d88109ef71b9c878fd426722eb3a98cafc5f18ec68fda31b626525b0ed20da59ee4448a7a16be52df24cc722d2e90fab69635c1b522d69073af3e24dd9734ec8ffa6a8abd67d17644b18ff64710b4acc7c557b82bfc41ad0da6543c0d61ec9bc5f5d0802e59a28c298785d702347752fe84dfc9269e9a4b6e7a7304a3dd9a43faf0d7ef1d8d824db912f95f97da60190a66a858895a24550226f29c31fa052fa2267568636bc69f28faea9cb51797cd08e063ab060d672c48dc17e05fd2da0e999ab448b1bb48b385ae89804ed36c8a967b131364acad1124eaa02c22402931acaf30ca3196e42d9e57bfd48f0cd0faf2418f61488b8697acf03e0073fbe64903f29d60478cfc67ce20a5fd7b84da295e0604b0132e442761cc1662942d69cba9bd3f688a8cf5b8cb14098cc79943e30e23707579108095fce53f1d24f2eeceba4e71245e8eb8d3bba6f09fe6eaeaa3644d28edd69293c6555e46cb8c7f168df1361f0eb78231332bbf0e1b7446521a373753cd7f8c1e630083acae9d976466a02a4b72ec60d396b4a350a35c8d1f3765cd6c4d7bad829c9f3d665d5370c17b50958b60af67138f6b585275776d9dcd0506c47c6bef69011dbc5d3b1b7cf9d68b6c89e980d3e9195c2aea06774639c4db5afde898d23b623564ecc41b583c23944582ad415d524fb1ea9b795b1e05d5ef3e90945c09aac50d4165a94bae9ef507c9c8bab4ccd01d550222ddd04538de7118483d6281276dc27d8cb5610897a5b83d40bc0fcce8161beeee412330acc2438ac5f27c6f6ae9212c1a8ee76783b5320ae577f2f2a34bc8e39f9bb20d5fdacf22fafc0720ee3e068b3b3af9f622cbbaba439d5fb00e398a588e7310ebf2f20cd8b0120ed3721afe3b107e7b4c1938c14ffce39054bac4aee1456b31722de0d11201e0b0d87915385c2e05d38d70120e57477ac0fc3c49af70028f5cee799cda6ddddc8a77cb0ae2401e5d662f13dd27986cc3418caeb2e03b3978c2de64f920b7887305e4f27a6eabdbbf743451c0b6ea4966832f2cab5abd0f40e63621e06a341a77ddb4be0072a657ae0b966052e623d0abd41e58d7e711e0414267052230a6fee94fcec1d50ae0f65a25e8d6ef07e6872d0878d72211aab9add26b0bd939067314a9b2d466044310e4396b31a4f78306d44d0fd21c96afdeea6f6951589d890eeb2f8490f828c4745ecd7751a205187c25de087664e4b946ca22d699acf4ff36c5a7c9d65b73d5e0afc498f94c66642be450e67425606c1a89dcc3c9acf643a763e23348b212b58a398bb851cf6a11e8fcb87381a48f613aa33ca86b9ad013f0461c38cd4272da9a52537c674504649cc5dfa9d7db7b56b7754ee72e52e351f5551d50115eb717ad92fb47a9745395c58b392cb327d8e15ab1687a630cc6606dd45716025367a254ec626c6c14478af5726d82d502c3221c9d984780adb00764a97f415473271a939735b169a68ac852a38a8e03d331bbac284321a1a6af0ebbf553b8fe27c9d062cc7cc23adf472c15c8440a86c5591aeccee5f00266438ca3fa9493bb15140b2f4d7b09e29e7c100bded106abbba7937448214386574db0265060e98b5100ae5bc1a01f4279e75117524384434719ff0e0e784633756cb29e6b6daa2fa552d0b8df9d59a5ceccd2ae6f743623b708a838ab6a51b4672b6c3c76e4aeb0e3ccf41169e3df357416ec591fe876a533be1fa5e0db2fd636a2118273c94dd84d6445a3f2156983ec8f8637f52f3425eb5721bc96e6ca0b8a6d6dc9b7357fb70630049c8040f20330416d788fb668864edb1418a08f39ea781dffbcaed9962098018ba3f0cfbf8d052ac8e3440744ab5d81e7064cfdebaceb7d5ddbf180192987d99e4f34a189deeadf945123edbafd0390df0ac91e6eb18b5a48faae920daff8a990ae5bacf3158dd0602f3e03a4eb8452ca5a57ed31f943a0e7bf5ec86bcf6519a1c06f165c36d12a7f004d90df66f80263614bb1ecac51fecf27cb94026e603761fa1cb496aa6cb072d999c74a61d7b6193ee0f45593e468870166f533b3675556c42d4765bd0df249e33fc9675798a07142da0e829c4f1f6e71efa77287cc75fbfbd4005b1f14b83addb9fbb4c45b380676f96ea559c917236f6cfe481ca6025770c8126164d999df98c098a7aba81de7123c16c982bcf2b4466dcb0063d6bebf662b5941848905197979871e0f39c46207f1e4db6ea8d73215a420b9941e2318184967735b8b3ab9faf4ddeb7ad63d88769aa8979e91dd7a51cbd9d3aa4399bb311f81e72a79f8d028fda3c47946b3a037a013e43302e17541dc2d2ae442479552b84bb214a9e4a82734b17f1d475ea154d208bd739ae94a8195c06446965c5c8f563e4ba245e831aa82c00d7b9b161f8abbe424483181768051ee28168913bef26d1e8740f608fd7bd612fe2d28c49ccfc3ae56c0849e1c012d4c8a5f9cd851f76e1097bd177e99f9303bb4d01f4826c6225c3f8e7a055e9e7d965471fb49900e61071ccf84048e9505eeac843faf094ca28e4088f03ef44098874f5f0001aa1d4d9dcd8deeb20054e8ed506f1bbf28f0307962271d8ad9a8e750937fc85707fb779e4af3c4d086508c6fde3a7b30cd7244d4650a80694cea52b061eed89c6ef66cd16861af718437128fe292c628224b0c0c9a7362ad10edf3dbbc0ad3664a4ed8c5c01c95d7f9caa6b095a881c475257412f7c8e71d6aec1dbe22f638fa4db831b441cc35dd9a5f71e62eb2d9c42d5ff67ebd13ae26eff7b33b681942f3c1db36b850fd51eb9260d2b5eb6841b2ea8a3ee6ca83fe25fc73cf7ead9fbfa517d635f0559e633a66caf1d51a871d06adee9b93e3e98d414296b67fc9f610e5fdb8274ba184e662f7af9dc1f151812df006440e6e3ccde2a6ec22465853282616079b0f40e8307ed6b47836560cfb7697ff64148015ca3c6bd5d79ccc2b9f2d953a6e65b3e5db59a59478fb0d7f703d393e08f6a7339f7d5d04893183badabb8e3f5a6c77fbbb7f8a9bb488f8780be2ccd7c47990f9748da701115bda7f40e967f64ca9f18f6914632b846a0f483667001642b578eb117da9a8f7ffbebe7a24f0b393d4ac6959cea13aed79eb44a8be82fa89837c35fb0530a84857f4fdcc04edc0d552bf3485878fd262447646821c60b52b83d52425be4106ba7d9987786279d9dee2d801a42bf091d33c402b7be1252d2ec68faa33e1af97221915ec306774ae394abbc4f204e5270890ad531ceee37ed29da8de4ad1918940849c7fa08861649a0ad1d68ca943da51b6cc240e714976262c317a6fb1d4dacf3c01d6fc9e8614196a2c71540b7f04891c338774820b1867a5d95c77bb12dff08d4c4eab89c94b3c5878376b6cae945b7ead695b1e7c1a336b3d058a33f8bfdeb0f685f513cb89d3f94bac3a3a3489ebcbea3c3350b8668d6b631d311b96f6f5dd33decd0b01c2a1e5e0b70c11057bbdb489735da11c9daf6d29edf80525d30a08e700a4bc1de0d75b6325346a9512f7311a09c91cbf8fac36bce3a0b1e4fa0f3c47574940e73e5f02f326c5b6028ceda9b5fb9e7986c4e2afd112dc43f7e20cdf2992e557bd2ef4eff1cedde8223b0487c9c9fe3e16f63e7915afa14f515764443123fbbe707510106f957eadc305db5b91f9caf22f954e911b950d041af96a56d4c27b2abbcaa52950d8f2d888e3ccee869485a5594222fd37c2d02621bc4d4b51ebec659b5aa8125f56c9c78762bec6bfa83c6d9254009acdd831bc626748a0225b9c40154769da84b35cb6f3253c13c9c486a19d56e782019d9d7eea152cd57a96e43c5924c1f44cf8eb50ed60e909147f8feaf587e0b3437bc787cbb635a2a0648133247b0ab0411143fecd5f3e136ef13375c95822d5c8005acd4a8f34a2c250f45c3b47ec7fd24ef3a615fd966051372fde78f20258e45f3753cdb600abfe28f972457af4e63be21bfb772d91c513f456a6f2adba4f2dee49359597414ee6800adce57802095867c2786475bbee1acbe741ed9af6af7ba6e4eada72843cbf2ff612eb9a81305658bbb4ca6e934f46e6e11472fb3adb16a6b3655adaa2841bcf81bc95ad73d0169622a8ca46d461b07275ee63c515abe1b03ceefd3779e92a411f1d7a704bcd50e46304773d1510c2207fd5ab25215cebabefdfea45edc75327b1e041199716b46bd3cfcd2bb86554a614387ff8d507901fc7a6d693444737695f66a0d17adbf437d6cc91f927de453c21d0c2512e963ebc78a03405cbcd41b17b022033fbe309b79a6dbd2367ed792012cfe5f717510dd335c37f53c9f34dee75e80ad117d9ef416156de3dee9bb2129322b1e4b68381dbfb2b9d87cb6eadd5e0ae96afb585f28b54b0c66bda4f15d85ae46ec777cf51ee74f6168337af205b869fa5c6595ad433f2cea7e76b1d75bb07477e83f22076496800b979332ae33c8c45e582b3bd2b3903ead77ed438ae090c92e0ae9c6e8bcfba7aeb71dc89f778a8ebcd45f7f3f48024ee3a1356637791aafe8b134cab6c87ff6901c6cc3d4cd065fc0ae208a7a650dfa5841bb16d0f2a038859308996e51a987893a9f225264d7876202276590ed751bd5020e329162c2f0033b9b1548f5665bce99db6517cba21e7b543414ed9a367625b3f3566b1f56dfcbe13ebf839ad075269f9710d9525a69ccb737baff529a283fba99acbd765616a28d9e46ac1b6afeff46935b84162d0024359affde64271ef5d255fb93c625ae0c75b6b52cfab7ed1316edf1b8c88865b8f8d1b12c0a91bd6e68c2578e155b5fa641acaf2d6ea76a1acd9824185726e45181bbd3db47e37708d4c365ec1ac46587e4efe1f8b75fc3cec541dfc2a3ea2c2d3052a4f18c6b2cbfbe61dbf6756d7078760b9b72972e5799ad99da306d274b1e1be3b893be86b01bb719bc07f4ab178507033483bab1a4d0d383bba3c5246e97eaf89d4b7315a55ba14df6e97003c40e8d0cdced00ec8f4a4961a7642ab686d7ab5b3b5b75146030e8f18aa60f6a846098685b8dc2e1d08a6e94569530c146873a17cd237dc12bad8b355c7b32cb02ce0ce358effc09d8e707df2c10e676bdf8ab7b40f79cb9407f1e5b0fe78a85cfc4a96aaf6031f0281377117dd58f59056e030f491aff8fb36faa0cf0067f3e876ec0183f850c9a755a63b5425bbafcacc24b8252b7aa5cb6356f0b04d369bab9163e5e3a5cce0917a3420277801d6b6cccbf0e0fed4f662c38df7cb2682af13f4b74cfa9b04aaf9de40bd738bc16b907de6ed946709721567856b7e361146b58894f74d00f5126fee7181590dceb783e880b782669486d3f82516cb46a9f8657339d6e3e57124899f40305a7854c512e46dcb87281c026334e15568a1e26369fe269130440a9426780761d0d589e38957ca9ab869549a271fdb9a1ef3a8a7ad506302dbe936383ea96801b6e8572584c82408cbc120667b405aea76cc38eb17ffe4b94e15cb8a3fa460cfba7a71e27f6422ed50235b62975c8860b91972d6e0ca1c771e9de72703cce4ddaac5913583f8ae97c21764ef0b747ba83b2c4916011fd1b336d224524b2380152533707dd088414659820950c909f585ff2ef9ddad1e7e18e0854271d41afab2a1ec1eddaa7a83afb9f35f2eb8f1434ba1205c5ee556350592dd708ff5e0b5c3c8f51fbd2a82b47a6ed8e115e2293b6596ac75550b65880b95de2fd9d0d422ab18cb794722c679c4320c87f429803ed0bb7dcf7c9524627375dbd62114ff48a4dcbe79eb11ec629e0c9c8ea19406fc9e34e4be17c835d2b6452d105e49b23637738e9fdb2cfe538b37c163532198877598e80c6982efb603b1e2f82ab7b4d6c5e4e9628f6d5d2f06df5e5e2632f0330d7226c33c1b0ee2bcdd4e1f43d1958002cae72043ba318ffaa88c1e9a8416b3b60d08115e4db1ccf91fa24e0a39116774829f8474190a1a4810f8e915ba21becf973d561e347b2f037cf6f0074ea1e2f8ba632b67f69e02458f26c15c7092c2508b8960d357e2dbdaf879d4634ea3783e44571aa275e88e399ae2d91eeac8d941703cd455ca0804b0c2a04b6c07af69483956d871d9fa16e1695dcb6947579d41eaf9878253aab66c1d89f315160484ef756da462f65ac8ed95cfff334e32410017a155bbadf3b42827fbe673b72ef15e5d5a4ec9b7bc9e837fa2eed2c202bbc53c728364d254f0b46aaec7412946b895f0ccab3db45d6fba8b6c39845019a4e8c8cb716756a0ee1042bfd25d9a66b8e734668219d26d98202e4a05e901c7f1599e18abb2d6090bf5087e2848ab48f17ceaac03fcfb37e235c35dd183491c9618b4c9ccb474d50a4d1f028baa7e180ad09272a549e5fc63ed3a809a3d9a5099ba037501e462cac4b7bb2a1acd59ee2832c76236a8deb1ca32936c53e18f5442ebc773ed3a81baaa048ef7fe1dd58a5746dfb68b83ba15346022f097a0a75073e60a9a00b409b1dcbd31638bae9c38e484e7470a8ac1cdecc8b1e9088f881275ff84e118d34c9a0d9a70290fb6c0f567b6e7789a30b77cc42d6821ee24dcaa0a1acb21431b7e76e90c5523850e96465d7e79b34b2bee055749844392bdb6bdcc30cd2f30969069ddb40c2348b526547dcdae7009f86c6e9e49e7874c1990477ad1a4fea552233a1aea9a79314d32386b6d48084954220e5d4d6fd052dccbd8229db39bcdde7d116a375b90de9cbe988f793cc084c4290374ea21483e10d289ccca1120c0d19c8efadb53405e0d38f568e08cd6ad0e201906a726cda39fb7297ea14cf11d434e7e8c4858d1312c2247ffe56d7f7cbe87965b8391af40da7669640175ebcc525eca92a4fbca602e58d89ba1bc11aaa23da2d76dfd8e03f5b7051fdb7d4e339fd371aa4b53015a66dd706080c5dbae4efd32f4cbf660a888293121b4ea8866ce3b9c7d4b89877fd13d3edbc05a5a9299f5ba25f435eab50f69c17626ce39ce0a081a94e73e72868b7e163ff53accb91e6d01bcb6a9346a6b7be02d5f1804ad7ef9e3cb15bf9346589ef87988c75b66bc76dc51d051cc8a60d5441ba0350ddadd9d6b3400019c311ca6ecfd330b59c117b6bc2179e9cc1c15f431adbffc40b7dbdbcecf867a466c6349a5b286103eea14343da1d8610ac09785c307a5edb419b18f404dbac27f6fda168530668877776143291a892cdec7552145b3d1bfc46a9d3738286304ad2ad438e91788c02b40eb74aa931e566333a59098bbd440c2c15fb03ab87c407fdbc6c5db11fae97912659c90429c702b563ea7ec3dd3825217be014ea5b260fc32cba08fc99bafeb2ec8e4e5e3fa4db659bcab4608085bd2fc013b6ae5e919a8ea20ea47f89e1c13ffcdf440d9a58a36bf2050a01c41305c73775f79dfb79ef69fa9ff8c6f0bd38e827523879affe76cb04d3a9c9f60194997ef62b890e82173a76b0dd1e73e92ee5a82bc1015db76a43d8c1c13f9d94b47d640368b99f828448c102ee63b660d3234fb5461dc0392199e095efbb237da5f4fc3e315e79caef71b661be8a30712dc84ac2fe6a4b3a8552753536df197c285cdd4bb2c473915c131e06e7b7479fed345a3b16c5d1bd949f7e006c6342b4d888654916d946be992ef137284e166888f4fb4e64260e05a323c87912a75b8ba82692a0694508074beb63a7fb74550d33e7ff61534a19bb98c9c0403ee8c18432351bde75a73fb1e03fdb3f1a47a09d7f4a34466d37158dfaa8077da9b55b96363df7c9b7cec11a3370e80a622df38160679be92c67119eface6e50ea9d11d7e8b21569ba4d72f0ff7e5c70c35c4dba417a045af028551efebf8b6a70d3b58c69b5c420264a97298fb8f52c6d91ac07e98a202fd2c366a441fd635e548d59581748bb9287bac2d3d11e910d855670a2e9f7fdfce91bf3ffbc6d914f991ef9194572937510aff6737ca2d926ae930b2c165300c7e6311a2e3a43ae54e379a1e629ddcbd647bdf5a3f5f7f8f1a0b5f0414deda7c6e3390d77a4e04a1646e30a2f9b67652bf3681f59d656a60d98c371e61181f6523d7f217a62148253316fe9595d7877d0c75d15b0f4586845d4cfb742d7609c4632b9b0f3d26e1b0262ef7076adf75cd33c08c627597771e2351714f7ce3b8d76e67015e64a64d67a703ad17c3619f5155f5c5155adcfa72fc790a495690b5a140f24d1ab887f0d231586b7d73e09420d6d98733422a206c321caad29fe44969e6eb094c46af835cff01ae019396dbd37c958aadcfc78b1835368aae3fa8ec3be3dce26f59faa3d63ec9ed018d6cfe069ea30e2cb4d6622bdc1724759599f065a43ddaf5129626f4dc8319ef7eefeadb580dcf88737a867937a2801240ec3afc05c8ddc2d5bf56cedcb1eed1e665b976e3fea452f624e37cef80d545346ab755e7c4b1af80385261401ccbc0a15b0882e709e74becf2e4d435ffde2123319e8ccfc74a0879f4790c81387f693a3f05aaeea6c6ebfe4195c2455af88e30466400a28a300f85d2531398521f8f87ea1421dfc7eedbd3ea80ab74b38ec8f9795dd462db47777663492097bfcf879a30d01b888d6e7bdfc8499bd2032ddeeb56ab700bce6de9a40c67bdd09a0ebafdcab1513e728b5d077ab1bf5ab30934ea1312ff6ea4a282380f9edb90cf0b2643406481887b6ec81480feeab3b5b00145c5b1ef2e1e1f53443e134e657136dee29d17ecdb44c036f72dd811814e1fd2ff456f73bf2293e0b06db34ef6a44485691fa8d768f52fd6d60a19cf41df680568930d047cf7f8a2f6e39df76e9ba1d7f61ca80af772910af794a2e2c260c64ffb9495dccb73dc85a858f4ca75625b210cdb9054d263b7ea688ef0ac1e6ac4379e8aaf7956e5b16ace49472ab58a60c4aa157704c7d16dc08d3d05b24de71d98229bfe214896dca60fb224e0f3e61bb6c260a1722e80028a694b4b2147e1b3231e3d6458a6275181ad694698bde54200f1b747740b47987cc5293544b1f9fcdb10744e6bb43154b94dbc7c619b47f9418ed794e936051b7b222bb50f227c3997db1bd9e867dcb1fc94fdb831dc3343290d39bb329cfb09a27bb62497ef26b38386bc9724ed61ef7191268b5feded1cffa8cc90b485a376c1d840d498900d529f57a052b43bad6330f5c5fc2743ad751c64caad57f95186d9b0f648ee8c36da3e3926dff4ba86d8c520cdf22ad159b96e56347c0a253a7da11c3f201cfed63789708a8083f60052b1fd0327eb122f8bf64be4fe3cdba0d904d982acc89f4d5afaa39febc56217dee9a82d5953a487d14ab33e58651f534ea119e1a13c703f40e131321d6031b1da55ed278f2d6a533914dce4417bc2b17b4a2bbc94e7e07701e2d60fb0bf357af4528e8f1aab4afae5908500b87d0fe41e85e6479fda966ed575a4ed4492d9433d3162b3a1df75ad1812bd0214ec87030f0ef2833e4cbb944f6547a6db4c21e01cb63ce098433e69387e0cf0b34db052c853d54b5a17dccb4c529e8ab2a4c0a88b99a94f70328129cacef89314a8ecd075f7da6677385ca8572fa0be5d143f24fa0877433a6c9f129790d035f60c6dbd614fc3c1455274619bc492dc4d5d2c7b85231018b49605917465caa8bc092adb75e8463c182cc390d72d9158ea0165af9c7fa7576cb744b1e08473d1bc34f187fcff68b4562f6e232959625eb9c866c706a4311837bdba32eb346efa92a681f823079a39a6e9d11ee78c9f23cc3cb55f4e8f2f2e41f6ca16b2558092ee7db82bdd27aa91568cc21a44dd2ae8cb2c4e54f33149fed997a6ae0ed8f12d795acd6690b98b799f6f5c93dfb9f51e912d2e7467edb7f77a39a569ee423be59fe29e4cc9cde54b5b8c6474f45e17792314e570c71e8101ab562de6382e046b0f3d0fe26ca376f7370139805c6133cd5e7d3a7c758f80641bd12c0713c87173a49a70114435466fca8f5174322830153e48e245370143fcc26b2110c552c5466ba9017fa5aba8fe8b1e500d77713dfcfa16414b3da8b0b8cb4fb10988a24a990a1f7ac0d1e4102b8c37a14cbfca2ab7c5d040ab85ae87badd87d3f004a296029f36a74925f4b20d8d88aca19c160e21d62135f060afa694b28488725ecf15ae9d2a18a09ba0f64e536495d8210e3a56fcf7cf817b3c277ce29a223634bbea1ecebddaa73fe4b92d2e408bf0a1bd8447a40626b1b25848718c811ef82c8c1c21ccb3471b0d6d633c1f37aa3b8803deff7444c39028fe28abd1d58bf73a7a1542cc57df7f7720c5bd94876b6af3143696516ecf0a7e9952d01b970578fc54716a8ef5352a4391cecb5c12a6648ff6b305878242e7d68913c6ccab3a5a50fc1b73835ef0229d8d0fb252de1e1204063c665f4329b44fa5a9204658060d75e6bfcf2b67d0fe66900a264b95a9743174463f28b9f9c1d9b43c7e2dcb1859ce9e84a89e69d1fb7b4f5747ef06d9b55bc205eff6aef7a505f3a85672942fc9bc3f1dfdf9c354f54c30959189a23f0a5c49dd5f1b31a9f42092190ae126deb0c7fc26ab35545e0191cd2d2a4300408ce5b327863e175b2630367338fe5be613b99ad7717401e1c8f075e733f3596d70ef824d609f75b5d7b9798eab7cef20f030f4fb4c77351bed82ab47126d0c7c3560882b73be2760d80c66425edf00f6aba37646c1485c030ca8a5c5c62d1cc2b1276dc9fc0c4db7b9a6fd3e6ac09565abada3edf38e67c43555ceccd163ad4720102d6057e2c98fcfa4b5b7e6c414a04d24909aa7344b4ae523448f41908a678fb097b0460fc20bd5b5f5dd017dc92ed55266a7784281decd8e5aa8d86aa2ff5215cfa929e4237fa7d6992bdf4e66acfc5fe3adf2d288d40f9b188f764687315ce5cc5f4a641c64c940737d04127d0d3aefda6559055f46a6cdb6d82beeedb29805db51c6ada05f9f55c8fd5f300879f2aeaed33eb40be11fb5254ba4d631aebbfd1a01c952e65599fdcfde30f9e2b020abdbc6407e17c1f47f86bfd08ad03212acfed6127ee98eb9e636e55c514c0a30ea6ea887600f5f0b10b0d4fa6deb354528cd5b0642e8ea2b4a9cc2fc1369f60d108899e0bb048c3ebcae71ac48ca222b0f25bdb55ee626df6418402945c11ab481dee18c1e0b7ef6783f18159955fb0ad473a4aa202b31529bb13853b0c2f9acc93cae2096beec26715507d74a9d08f31d7d5d62b7c18d0755e363b0aa3a2b55ccfd1e0b9eb93d4431962d664d511b05aad94cb887f7ca50f820f08679df24dbb095a6a1f81ec10166deeb627b495cdaa573b6b88be20564134ded614bc7923f4208b8c8e112feead8bba79a68ffac60f70bd495c6d77eedab418778caf03fd8f170c593133d0f2ac5f02d98f71198d371b43bb930f33d8fe24910d20db98e17937a8e76064e0f0dd7f2e4ed0ac1d1b28957962b4593c70094a7dbf01567819a5ee9bee1af75951c296ecfa3417548d8b32ea6cc86dce0c0650ee80d11a152bfc812dd64c3e741d559c15e737137c50f3e499d15e934648bb8285a2f5af59d463e5f88af235e5a56657e15bb7c351cd2190cc45f05c725054f10c7a3855118c1e7cc070cc296769746ecf9533542ed05c4af6fe96a03e84f13d84eacd48ad8cb2a6d282da4d13cf78386d8b23854f4e72ebd4813251c60784a05875f19d82f5dbee66b6929542e35b37956ff1404ea7c5595e18fc8894af0b00e350f6b5812a4cdf186bdf1e88328b129d40a9211f42eeaed9c7ff5858f866fe0d8ba0a890f3cd3dc2f30fa5a1ac6c1ac1f51acdda578644ae4b2418f778f945d07597ed0dab78c083d719bfb6e470d4df76cabee90bf8b88ae8cebeaef2ec1d8940139f463c4a46b13ce1820ac84f70b5caac06e65c07f58563f8b1edff6069a8f421da27f66780f65d556a3c5d39e17b4a0c5aca22e29bdc05d3575894b86610a2ac6ea1f15aa913f442260a5fe6759bdfe0599d769ef8ed3fa267f05403adcb6cecac01cb20ba36a1629b96722ddec4ff27a4c736a8af83bd1208ec0dc823050611f7c8ca3c68a16d46813a8894d9ef0d5817f2548caf9842d0c3a13026b76d5104e5aac8f8fa0da765e57ddd38c71330ee30fcffb37e67d9461dfe5585b3a944b81fb587d21d30380b572c6fbe71dee40f17f023f85e6f05f0e1a6503e8fd022740e2165b3224331a8dd5e60ee78b3a50a47614abdb74a9cb4350c6ffaab56bf84cf8aa2e912a4c60abf512a8ba5b49c3d63cbc793de0ca2caf271c6fa94866684d09436f248cb32320cc0c7f445f04873741448954cf764d180b3b329614238bc2452e4c0d8bddcbe956309f821e813015974a863eb7c32648aaad8e606a85c75ec025e24a752c2928153017c552432be373115d1f6403736779b9cde10e0e97f6f224a1d6331f554a8ee1337e6a4f7d3cb05f54857659d2b92c730729b995682037d26459bccff96dca1998ad090d0b334bf173f4e0a17bb741e38bd897d72f174f7701479fc19ad7d699c3de85f984ede87718416ba7b30c763a9c44cacb6b9adf8947647e00b904430bdb73692a69f14b2bd7bb31aa84f34f166687e5d1ad55efc3bf798d8eec59a60cc37df39fc2f9e0e91293223670b192d5728a71abebd06bcca13b17234dd8194ee0b2966790e635e9e438824915c0cafcfc196b46260aa26fc73df938c496b8bd0e2e7a8efe237af63a0e69cb044dc7aadd72c4572fa0ca679e20256d22f526c4a17ff7e3dae308474d0e42523e4a1b1d0460e0c597e57ab55a02212d12a005917f421e8cefa6d7d8cdb74c3a0f3e9f44a9e818e3104a2d88eba586b541868177a9d730622ddf066373fb1c0c4e5eec69b1c43878ca47c6b674af81605ed0c65ac322242bd0e657d6c18919332c48e3e1ed48019f976907c84ecc5444bbc6852a6c222598e623b06d3274ff0318d326d23041a86ce40d188bcf9ad621bd50746f79071219e8f29b4e1db85d1369129c05653a556cc64107405dacefa26563cbe767fefd7e42dec6b906f417dcd096f1d01b13a5e9b16e42508e0a1ee99745c7339336ad6e09bc84cb313ae4b5c96513074345290b9e9c1e97573ef36bf0092a9206d31ca331864bcc9aadd01b7eeab6fdf43fe5bca1b9543a8bf694274affb9acf858f8ff01253411bb58bc42e258d1a19454d16a53af7e122a113c1b4b22bd7444e02674a4ee7e6cb877d9fff9981f9ca72e5c8b750d9fa349f9b81792cb830f71c23bac00520c2ee24131ff84d59f85208ae4f9b9b898a59001e8dd5fefdcd21ac501954afee2b39d181e4a8b36152c0be03f21a65bb41c8ca1448dd5449d51cfc4f9adeedbab8a24e4d11d842586e6cc0d35f6e14e1d025f42546222942078aeb5d32bc656361eb650cc1111b6c0f96a8f03c27b4d647c8e9537c53a3cc2b86267f7eabcccf4f91e91688e8773d00c89c1d9bcea90fda7ec461da8f2b9634842daff31536f7c99b7455093c2e089ad11c45d78dadfc0efe338cd35959be96aab1b3b44a58908c93c2904cef66c04e5ba02271a09b26af5a46020d053d5bdcfed8f2bc4e2e7f595232f5800837d1adcd81c4366c2ca1a0af9c5845e26dc4cfe524809e65f1047cf4ad1f2b6f671ec8f30e2b299c192d436bb207aecf64587d217843d72aa1922162c65cf4fc9345c96bc5ee814840901d5390c179832ef630969c3e6974c2c527eee72be507b0091f2957b4fd6565dedb602cf87d019cf5addb4e3588f272ac4befc32e30d1c7e77f9728fc3c4a81848e0db4386e469b5e9b2e394980c90880bf2008936a06d473d466e5515ca6b5aa6ceea86e5e0392510d54917e2819625dce6670d022c2124d5be072588bd8ebeff514ca80bbf2462d541649a243225c49200cef86677e50e77a891f2571eda722ff59ecb71e31a8ec186b2c48013dee5aba7f70ed7d0412c1ecc7b932d9eb97377f641ca25ec746761ad3fe5ce81e2ec484a37f99c45776209ab2efeab7bbc13facf4aa448cf21d0c637ac0f17c1eecab1ec62da5128e22e3cc368c1e5acd6bf415073ca90490ac8062dcbeb1b507306cf49bb4865e795aafce34fbbe5d9ac69b8428291c79c03eeb9352452cc0a9689b18366449b332d6d5792a82c272775202ea8f0ed499eebeb7cc8ece6d11c4582086460338d7608229a7de5a01cd03628597fcdec8a15c86b71664ac504c4c595aa2c026624997431d80301c8a791724e501d223d8e6a0355bde7eff4f4e268cd12f88329211a74d46ac6524ba3e47d520f1659836fa4201a09d867d464634feddea919f8987424476a4ed3da5a081bf7f6b4691edbb780d002e39ddaca686859506f8de870d6f99236c17f2c0fdd17ba4b05ca7c942513a5d9507912d1521348cecf7919e4264b97f3a4cf6b768efd3db36a691deee80b02c4929a7bd78f0fc5634d8576045de88b08b56ea3370e1b29bdc935df54b6f8627bdf8d0b703fa4f23b9541e03526b5369fc6acff6e5e749c5740ed4fc389cf65bcdf0463e1a4290a2b409071addc817227bd55642eac606c576e3e414c85d020c76ae96aa6695ed82623af57f8cd9c72d48ee3b4f939e1f3f34d7909971f5526e2525bf5ecaf32d5c92f4e7476d1d5631d593c5a491afbb2499c527b5ba2e6e8d641eb2e17f5f281d0e450cbda2eeea83e856e050bba9de7d8d17bcee7f8356370a5a4243ec4fc6b9e4e1d90acd4aef5b4fc1c6b1f3be0f705ab11699dcece0001acb8e3aa38670dba979a80c8de1ef9c36d8db7d99e9fd3984023b871fd9fc5df50dcbf5b5049c84c29411edd6c941cf39f8ac783c0c76a3cb0d30b6e4cb39be278ab1d830e8864a45bde3fefc8991a8fd88cc6d91fd1f40255d8b9317eae7fe71ea3b6086e56cbb4b6ed68d6dde0d5254fdaae8b7b3d0dde8f559f6caff7fd519084ac0624d13691c2a94dbdfdbee509b2914cbe3b1d9829205c796405971383b933ea4b3260aff56736eda3f8eac2d1bad0d08bace7f81d0c897174ac2f0f67826240da49c87bc0e086b5dd82775cdad268b67f0830655c198aaa8826aa7fea3a9b6468fd151c7338e13692eb4322c2c7d3b51a5301046ad5888ea3e969977d177c79e2c3cc82b35c21073e235d3fec8f5aca5003eb192e2ebe1f594e28ac96bd350fe5ca0383ccbd1d97301209d4ff1ea0d60b7e08b9759ab09155cecea42de09e9b45995ad52b7fcfe60b3f767c674a024ba6608d4b6fd2deffd592ea373fec6e418781efa8e337203749c54956d3bd824c739ba0d63018d92c295393d64fc5715e66e4c17029437f12b39b8504b5ff293f375c900230100bd33783df00e091c6c051432a81d8a0a047ea2a81e6c5851643a9c8a8cccc29b836fad13f8afc977b93eb22521cee6507bce233eed37ed9a927f6883746c397ec56fef75b05b029190b8bbdd5bf0dbd3d4e61062435a0cc8594402286ebb9d86451e6d54a288da1ed9aba85f9e0fb76dc5985072b3cacbd4bac1a21d5ecb7cfad4be7e23f7b296f2c04b7781dc8222bc4d13b8842586bec4f390e14a23aa96cff794aeb070d9c3332e0f64058e711e8294fc9ebdaba68deb2881756c245dfe493aaed1eef3904ee7f5f9c2864dbf97359e6451e3eea71d3927427a91c2b8c7b7d12c36feaca01383fd705dc4741301d4f0c1b5b60eb1a4a47c2a2a00b724ada3cf750401ed43992615f3ffc64aeb21a8b5a8a4393813994d8e5e1dbb29b94f999362d621cc3d5c0ac338c81d6639b7cc088284515606b7b2570b110d1804b99819c8a6473fe023846c2e4ed48c9aeac41865a50b7ee8ef568e9d1e5d8e23249e96ca732695172988f52704fb656d17e4c37ddde127045e9119e779d5aa47201fc855a02fb1fd83b66f71013b0578fd197fc404a0aed78021ff0cc8f08d4174b11058c927c086fd11710d6a620de94bec4d567728d46d19670136b75e01490f83067bcb97029740a9ef389ecae4d355b95a10ab4dc333f9ac2b7e68143f5336e25b47a4475bba756f381237c2d24e6080bb9332fc4c077a34007414e0776b67a5e61ed235c10cfb0923f54b6bf06c155cee4c45d89146e00e68c7593c959b7bf26404eeccb51337b744ffca69ea6066d8276eff984e7e0da1b0aefb410d436aaedf86ba3018b216c1a18b4b7a7c39517e621bc34a312cc6c47ff0e1b03d716fba74b25df8da26a8a7ca046321f6e764ce40b863c4411f6443aafa85dbf8d9fdf888bf23327eae439e9b9319350ac5151f6677e133723649bb6b1853e9f88ff9995925bf3ebd3e7572adc26acf6d3f66a79e627b6c8f9e2b579bde373efbfc4b9d5b77f3aad2dd16781318d96953ad71dda28d89121807e5c7e2ef142e6d863e421298f501dfc82cf4cb00176305b89feb66a3d4b6b5c0c5e69f154eae207b52dd3675055fbb0e0236848d00a053347125d91d6d4783ca32452e9a4dc3f827500d58d9c3f96005585991a7c1437626fbf3fdd77d5eadd1d5a5999f0ca41b1c396db6ee12b410c4c0c9e683c849590024e4e8bc75e0a079b9cbfd7367fed3ea402c19fa0fa92f0b745a76c7c7fe3b128f848cec1f3d352ff426e94ec86cea47fc64aecef3e8b078cbf5b8f58324f08aa8a77aa35dfecc7713124497aadf81ba1fdd9c9f87cf65743a5ac832572002f7695636848da7cafdbbdb87dbd46ceacba14c8e378b8abbc5a6c12a8e92fe9091f2c7885f00226066da426e7864955a45e1272f440537d47d19002addeba41335b36a9437922952e190c510c193a25e4866f34bcb83bf744af61b0e8f3d25a628350843b02446442189bb407afe437590c80d90d576b440f7bdd6af04b8baf52163c4d9e019b497b639b76f1f4e72665326b3c962cb5d58fc39e2908bbfc60e536e00728bbb9ccb33a2f84b9890fa02c1cb4223b58e4a3e898d81ab950c8859229da911bcd17fceba195b3bd837e1a8d51528eab922a273f10634468c769f7c2d99d2d05a6e8dc13de7e1934eaa916f33e5a0a02a1de5d0cc3d78916145a87565526216a0a428f1afd7004963b237369b335b427e68a7ca64fbea98bdc01c66d4e364afe909260664c3c5094e732a001646c03fdcf4b21f2d5c8030efa7bc5899b28ca7225684667df7f03c2d242bc2369fc912b657e244a79203a71fd278237b5502b7388867bea0d3e690ed418e36cbe4267eabfbe60b6e5c1ffb5a80cdbc73beba1f0cb4d3933f180185c3be13981c47387ec8c360c7bc6e9a5ad720a4408709e4a6dd870c7a1ea0e9cfe4709829ebea3c9278e3b7de34e913a1404de9b8bb88a8893eafb5bdf1b2facacade93ccb555f3620193e74ecb1fa495cbdf2cfd51febe40710ab851aeb7d2c811541aa3515d470ea9807451ba84d95f7310538a8d145120ead901add87d15ff99c7e2bb5ed88ec2509497960f1435040a695d3bfa32cf54bfa0be5695b2e047b53dcd567b3a6f1c57c79c65dcce5b746952ad391898dd4af830f895d9dcb48d1be493d159ed0b19e970471c87f5614af2f6317f61e931341a6b75b83c227d03b5526c256ca8cef5115c976ead4b0777cd6d98f3a1f15176d1731276c072d301f06cceb84b83cfa6442e71a7696f3cb1c9fd6a3cdf09838345fef145ae965a222b1e99910cba5000081dfacf817fe014bd7d10e8915e2e87458333882ad41d68aabad163ecb09fc14c600a53aad9c73647bc6daa9ba126475b3e17279d96817ee3cc0532f66cfb5721d2770c431a5ca9ebe5462ad2c5c99b672a9aedfb9213af2210edcc9aabaa99621ca84907e23ff2387b4849e5e3f280d6e7aa401dbc4ffa00a63444c8db5c6e6855b9bacf8953e7af07775d9655d95f7d24bac369341e5031dd424566528505a8ff5232d023acec5c81dd2effcd7182b9e324f3578b28d2471fae4bc70e2617f9859535f86683a631274e7210142a85a25c89576e5013b4394fde4c64e92d8388d3e61977202651084ca50d5f61f1e4e8fe04c05799e0611066ecd4d81cea08671efd15135ed445b09f55a8c81f8a0795891bac3973fccffbcef0fd8f4adae28d939e59f469f68553f1ed524ecf4ab67cf877d47e7b9f8459eb4e2f071f01ff36eac84009ebc8d9bfa693990a6115b7298af90e8d3e3ae0808c740e529b74a386f254bd838c3df98bf6757cabfdedc7a2a29ad850b8af43a4d24b99331cdbac32cb17fb498c7af8d4a55ea8e70d02b88529084cd0174d9242fa7162cff7f5f7f8cb81d664141b7490931c531911f7178af928d916e78ca3169c22a93f1076c02887f44cb3ee737ba9e9c7e08213ab33a33d65cc4cba18299250b459ec680acf7adf3a7ce9a9c8a64608fc607c3c3b158a82fc44ad9624cb3869321812272517f9ecadcbde86cefa5dbd8cf913b2611f3292932b41adb8447201558980fe8736e90f09998bb98b0194b7377f6f4b137b4a4d80b44552b93ff7beb9531771bd494cd4649642fb2ead625a613d17d4e7ea85f06fb7216dac52893de2c12abaa94ff32b281e05fc98b4f8ff8144307bb965c70a36a342b48c85a5bbdc043df61f485b0794432eca85b7ae3f3e205e95e491d4490abd92835a23635c81d1eab9348cbcef4173d7d221f9a30b69e711daaecb519b37b61e453735f7beb819c8b01ba47258a596a396b2864b954b5e1c0053895835ee95ffaee5c02fac9e2cb605486d7e3fd60904e88e680740e6c53955454d2eb07cd6f499d4bbf7297fa86ee24c8c649104f846ecb45618b4ed0b583034c260b4e534c7506938817c325c45c94074e2d6ca1a24d5ff32bdf7eb52513aa3c90734f514663b78d1b13725b70b77415fa79e5e54324e4d51580aaaa3bf33aec0408515dc6c106b30801caca316e01f387aa0727a4311c4dd136f011a575c4a33c7fb4e5f17b09d5dd740be773d727c85351f4eb3c35a80ae0fbc4c37c10c1716ce63ec056479778e96e7ceccda95f2a989691e5f2f4d3957b7f06e83adef7357a1cafebb51b5f793ae922282c80133661b008a3c1b972cc78a3ddee9e1ded180554a47da3b10b6cf3524f8c235d993c456e94e7c0cfcbf202fe70d3a9aee2506e96d4f6b60a7870c508f75b7e23bb08abb19f7b780997244b5b67129a996856e83e937774e8f3656ae2def65f1bcffba3ef3393783b093951393afedd877dea747ba78eec5298b342a695105571608526b2b72316bef06bbb4a585b1c463f90a4d1729c4d14ac16cf933edc44b467b7c317fdc2fbf0e15d4af4176ec6492b5cdc986704473c18299bd82bf77e5a13f9c850a0e9f8b2733dd7d379e42126ef3ae17acfa62b9eec91511a491c113a201a1d22b6b21ae88b2bf235bb455c16c9116af9e15c3651f4111ff255ea2610c2480e68ca72a2fcbb2c279cb8d10478785a84e72a7130305ade3d6df04675fc1bacb48e2ec0df5cad39a84020fa3c4ebe1ca9eb404eff5a5dfb7e8a6f289a0349a5831698c64cf89d409b8b74df0abe6d677a03ccdd4bb31589ebbf8dd0e88df4f821170f008dc5ec29939bde7b7c920cab43fddb518b6148342475e3c151e58263a7b92cad173cb631cbc3d065b5b9039881fc8e522e4f4c3df98731faf4bdc959ecbaa9a668db8028940a795494c45f62e8f907caa0adfec6d1c77b3b74a758f8aeec3c628ba3f96c03aa03d05869218d9940b5c8116ec75fdd7af36d4a9c5163eeb4c944b598c0b05b92adb794041e9f7cefe63bb0c8adf6b6d7b1644479d118048dde9b6d4545dad7e5a687c0117063f87ab57026b87cae148b428fb67de8f7b08383d87235b3957879c588fcb377979c2a389da37bf7405c37fe6132cd22fe89b958e5257bee6635590754e4316b28a6990beaaf161ee477f0347f4df1a0fdeee304b2c52ba04e7a43e553dd737762aa3728b65cd081e313bf28eb8354c0cdfbccf34d2ede52542b2b752df48970b31fc8080f20b3a95f811fd8d45dc753b8b2d2642c20329f877fb65c3b302412e3ece42097cf0e87e5d68298bdc8fe6b25f565c96b4d48684ae5c093843f1bd0e2a176a354bcf5f9cf8bcc80090311b0c7bd8b733a8c4428f6c9d7f6d880e836977f3e9922e6bf65a5b7d6a34290fd45cb755f94b296d14c2e8fbda9fdbc29dc3cfe4f47be9a8855e352ec1a996b214bc92c8e8ac7b19aa37130e94913531fdf4a1491e5aa99ad30ea5250e06915c2dc81f1d8801e6ed2d6bc1b07f19f3732f9f41940a5650352fffa3eb579d62787b09e87955cec76adf94f887407e7e86a1eafc76b07a4efdf3e79e8c472b7d5fd3c003d2dfc320ce524e926c3e67866f8ad5478768396837ec6e2449aa77316147257af9fc5f7563623065f3a4c244dab32d589987d69c69fbb2f04485f8648a0010ee9fb844d3fe12dff6c559bb3737cb388715e8d7e3f75968c625236bec3d937bf5ae89a4bcd2db90c9d42f01fc802948ddb2614189f7736a0e031d97e2bdb63c3dc1f7b4c67e1508a8f640224b8fe04d2f6a523714fe006d001d18e8f5027d08f12ed7a0d71cc8408ebd1d65823d104abe162b47bd12e3334ec13934019204bed3fb5ef89e83ee5ff20d44246b001f01a05382cbf35a6eb2dca4c41f1358f3f47de6c9dab9e8c0f37f26b3e1161b8a1290fd83411d7cfb9d119c50e415f205d95061c752a938fca2d30c906b26f4524f02644e222baf3e497aa3955757ae3d0a11261a335cc25331fd1d510dccc98f139e756291c9aa1e604e659eddd47cb0daeaeefeebfbbaff86cccaacb0118cac3dda637a6bfb72def3b244b99422e3225b8f20a6789e592a9855d15331e8a93f52f98e8b2d0f52f7aad39273fa34d53afe2000c624002b60f983b1a322e18d2723053bccdb5aa00f3531f79f3d442cf43c114e2cb534d0a9da50c70d5830509395670dc4f91d440693093c2d3c5ec29828be58fc45004fee7c5da004e5d39df671af4c2734a0a5355f9d2f7b071134aaa78bba88ee55f0738ad9a6ac369ee9ce1a46dbeab4099df6c2d1f008ad107fdc4c59ed7cde3771e22c8e27ff625beb07b3cd57448a3bc4f87fc883ad64f33745c28955915dc9441357ecac8b33a9d2cbf5c695c6fa7c05392b8a9f69f8b14c1c4aff87fc62c6bf1b66d89fe15471947399303416116315e96c046f86e74565ef45691313f9e9cb36fb2d69098c00bda5b86a0c310eee727cb1791f8020986a6ecc8406658e6a68f87893820fad200e5edc720d5080eee28bc1aa424de426a59b219bead34ad169472e46c06ef69c4080c559a3fa32aa5227d04239c9ff8281cd67515a75eed6f52edbcd3cba3cee20ab9e5ec1d8f809f97ee3559f52dc132f78c0a5e8a37c9bd5e093c4cb00f836d56fe6dad5ea702df4f12710db7b12167d558a85ea0b52f25d249064625174500799c72e74619fcf2d46f7a4cdf5f90010741e2a7c672ea26cacf3ee0527e63d5a64b13a5ecda6090f588d2cb5e1416a7c19aab00ed0aef76e89613d091abceb3328ceca8bd7146ce475e792997bc985b9c61b6e09dca0d70d0c1e470f1398fa417073347f7083f259f03ee39e591183d1220141a6dad5734adf658d0b55b8ca8757eaad52fd890ad9944dcc913246aa20668dbc18cacd57baacbf0c0d30ccc1a0d4e5abccbd983dd14592ab5e23337a239dbd3dd3b5d6bec7a43ebfd76159706c47b21cb89d13f36b4a958f9875d5016d6c36a5b51dffe96d1598d337ddc2a7c26588c1af6a2f4e25fa465752a9399e6e73c725ab61b40dfe99f1e4ff909e3d9e1ae8d68f8f7464bc0a0a75d67671bc6ddea6ce4e852a9a4fee82cd2b3f904134587fd9345373bffc8d44e06d12703940c4468bf79fb92fcd206e904a3fd9638cb74ff93e9ca18302759818b6ac79b412c69a7298ef0742e2a96aecb7a70edeb8b77b20ac4b6ff1ed73d430a2d998975d98da0f162f0aeec4edb08941998d7edc46ccc5c0a7f2a8792ae9c9185dad22314f10e8cc16a72f58daec645185896b0580f030ac15e160f5727b0afd30d7ff9c1651b808d9fa760b778ef6440b406ae4d8864dc46ce0b39e9b8b282eb24d7c9276bddbf3d0de8e0a13fab991123aa464d8f0167c859c120505df881977b902273d5b649592fe826a5c26fa33db07619271b8b36ccc71291565c86c713a26ccb35064cbdff8cea671fa704552bef98174ca2c508a78f06a20ac0dd7e8ff7173de0b41a65611716c1f1b4309775bd911252ebf35907a09b1c41d9ef41b114510a4e47f19345d8c9d2002322986ad55926756d9b996b75195710d46e991006a3cd3bbac81b84f04778b4f3e33d8d30752c11414462a680dc19535cec89ba563c6dc519c3118be651f17c6172aa143a205829a0162260ddd8612a527813aeeaac6df3895009dd44902c485b402069d10037e3f677bc95584d83768eb1cd63a9949b2bdfbc6e8e88df220d1140dead1c05950a8409cf14c7604460b77a5640f88c8bb9c6a7afc95fdc5c4590c09a302b5a2d8b89aa6e01aca304d324c51d2105d74e4f7f296e4c3849cd6c70b21cfa67a4a5f80c6063532fb0ebfdd42335d9e098427f21a611e71d2724848f251346dce30b0828442457646266d270182eaa69b30e437891a601e99b9f92de11b30142aef215e9de162be062ef89604cbece057bc07669a52413bdff281e3ebdd34fe6a8529cc38adf44a0fd3c1df027d5f22ddd6c59ee4ce12ad7ab3db76a503a075c6c8bc190c6e2e8407f73cd83790ab6c7bcec0f9c452a69ac64bc6df96c8532fe3b39c81f9771b58392e89cdc1ed22e508f1520bcb9c2855879315564d6b190423b189d565a7d18265859d16ce2ac64d68447faf45443475cf2a40927808112dc0ad94de2ad19d707333279bcfea2d3c5c4496b82152c0eac693f25eb922661adf79d8b774b8588a182ace0ddf9b0ed80893429fedbcc4a0e6653cbc43a74568b25d32ca3fcec17cbc5131cf2ca7397cb24984ab8fb0702ca537a207f507f80cf5f37ab2a089e44d2df7882bd7b4da8053727cc9f4d584fa5747dcdf82f09a1ba7936a6fcbae722e179772e4cb86f6d35a3e90ebb8772df3361b47e904d4731a768295eb1ee7d9ab4ba7680a6feb528e209655530db4f7375f55b66a15c9ada0b82ab3b9bafc8e6a2cefb9a9560fd8cbed43648de1a6e61c4c229ba0f1990fa4d87f74667642f16f2f939e37709b443231d537584ec971214610931e5051b2464692aae4d19188e7e2f098625faae6859f77aca7bc695857f39828bfdb2439f48ee5c44d2d00586b165d1f4e4acf00db5ec831cffbbbeca27a4bd07c35bb7e53ba2c0fe14fcfa89c723c65e6f93efb77faeb9a3035a7e88627386ebfaf07f26d7be4f77b27c07f66601033c05a117ddb24bfa7ca1168b793846e4ffa1dfe1c2eef12a6d34d2b3828612b7c89252b66c82732c260c15b7e8333c2612d926d4d3442e73421255cdb4a3799283e4e63c46b78e56061b40fb3a7fe44974e18ec7a10bf0487d41a1f168499a16b0ebb8c8bed9b9ece361fd9a625382ac7a29137a2b389f9d465692194de6a53ed412ee2d1d2ceae26ad9fa046ab600defe68d163a5a4f9aeed33734e67f37c333da2ea542175c7afab17d963f1892f3eddcd0fe3f402af57634d43a68d6a1e6377343e97799a04b49a18b4a7a8e923c677382cad349f98dbbf75339eec8c1f61d83afaec4a0b41698f96cc2fd4d9d5003188863233f23679ba40bcec82f9e56af591a427adfabc52c6f2d321cf4555bff6f7b793f3035fd533f3efeea4139e472b26382c2e6a6ae9e0ad9cea874e3086b28aa97e2b9e4149ad03eae678b9278117a8e5194f0425a46070315afee8e40ad6875bcac74e3636cc2a7e5b7c4a73a01e51868f03c71acc2fa3944bc8cc7759d70770f0643af4c5dc03890bfdfd082de6b7f2cd337eaf041998aace90b28a63af90ca93d5be22e94a3d8411a189b4acdbb4af493c0e654d4e42105993e28bcb5bc2d61ba1e56bf928594006de178fc5ab56a35a6f8e92cbe27ee0982313d9b75b13480c82a67a1fadfde52b808ee1f1cae6c31c9033f4d84deda9222597ef5a349d6429e7f98e80b3d5a0ec272599eaeffdf240580a5eabeb57175a94dc03a7f1f82ca973bb914238019642c64b480a95a87681f3811b697cac0ca3fc3a9a549e2bf3a97c5cd2a8dd1508f126e1ed6f7b9bc2a983c6c5a4a5843a1fff11fbfccca232e78c66d8e66aafcad061b9fc95257883a59beb9a0a6e3e6afad4379c8a1141bb2de4cdf2c9489067d467745d6758211ed7c4e69f80c3a4048ec3b7d9aa847a8160f4136f05055297d27ca46499a21f150afb59171af3279572aae0973d4581a5f7e439a2c0d4a5ef97b844f736cf1506b2312e170634a64bec7ba3a8f8f38183c30f832d010a25e93a867f57d6754531cbcafd46101dc4befdbb410e9634f0de65820729afa2b19e2f25c553e86923bd9d1f4f11622ad570d2054c75ed31e37a6382161e3cba66e8222a32d2ec48fc27d9fc9ed1f13b54d92085f07f4a1682b1e80369fb681419b436fc45f21df0a899f9223bc97415ecf4997e99bc2a9780dc5b31246d429667bdd357e93e50035307adc6ece4b7df0f9e7ac4db614f66aba0a0ebab422eca5b07e7cac4aa5b6b495bfa10739dfaa72330d943b529b8be846e7f4345cccf5f9ab90b38e7505ed0e412419dcd7c46db343758761be6addbf0c9fcff885a9ca62343d45bbc338f247c04c4fe5612c5d0422e7df0d9a87c7ff22a8c1ba6493415a4e41f3c53742418693f5637af5fc53f178e08d7c098de6f7789f2457442f8c854042cbdf4bb05a41c38ed41760879c3aeae526423ce61f434e65c60569bddfb6bedda0f0ad2a08343b24f88d6ce705c313ddf64a6d0445b9462a701ed0238911ddd7b3c53983bb4fa1ad56ddf2687ee7a480fba5e905e75afb911f598de09902b7f3a9e6de78bfa13452dc5afea36c3332618da3ff4a7185d2ca6b9cd0670a3063c3e66aa05335d6ab974587079530579b22b50da57e69c4d32680034cbe8977efa6b1635b2f7a8460d6e631ecbb64515ac0c376a92c75e3782f8319c6889de0237af078afe3ee8d3f094162643c1f7482f20c3356179401343bce7c05ab00f7392a9e43c7051f3a3e7e317cd4b76f322916bb73b4f67276978bd6fd93366647f3aaa2d0f256fdf43dd91fe6c0498f6681dd4ef3174537cacfb6a4dfce3693a99cdd8b556f39286e007c1d77d8c631f107964d8d3a46faca89416b7519ad894739c9125b4c00909fbca14a370b5767245ab51f380ee75a8fd02901816aa7c99136b0b771989b04a2d8c68d65925f758060ff8562b780066ac0a848f6c1d12127113817b20d0c070feab6ddb6b344a1d49af0e2a96228a5eb3d5566e01e03aeda6ab4355b1769067c714cb8b410f8c71b5cfdd2ee481920dbb3c09bb7cab6fbcb3114cfdf82e8f5da71175baf8e77be8eca35b32760a5975d2c858b2c41ff637cafe1cbeaf081947885f58ab1c40c27a6377b09d198b849b3b80b24010b1c7b6310409b7afcf6a5a33aa1f9660954d03c8c7c9e8864ed50848d0c08ac95560b7b6133a5ddb36229275e7ce292afb00c4fc135221307eb14945265564401e9f5eab752af75309392e54422c04ec6a17e09f6199695fa0f46f79092edb2c203ef0774e992100dc57315188723c50d56de023bbb876a54bec902fc8a2ac0160ea57bb15674962f9b1e3bf4a95d8323e5d30782881129869d544d4098eca0ea2afa1fba03035bf81594f292673576c6ded9f41e4949ae0a27e2822d8e8dc734d3f81e6a3f17c94f91fc2c0e1ae296cfeefe3a2cf5f809aceed5f5ef167bce2ca94cd21c871085fc0a452e8588c31a3d80213956682c9017f070ca57515f931099dfeabbec19ab1292855c5601a4abe5a902bd0b6a88f710541d945415156bf11d2b3ccec97469b3217e5e41b27beb0c2a28c431bb580b28756733086da49a2d62e2e9596eef25d0d0963f06df8d08e9cc7791ebe9c5d9900d80b7176857daea47ad5f0a8dfdc74fd14f17181863438424f9a6823527cf54521d6bc11085046e3aeb245855c11eb3dfcf7a8910292d2b5eb7d2a3ea047cf6dfa8e0e68d955fd0b25f4a4700af701eca09e6e6ac8061461111026d2e6bbf62caff052e376d40a044e6c8b883ec42730a8582a5075a35d8383291f243feae108e53c256a83458c41ef11325fce043e1ff356d641c3eba55825feb33aae79db76d9b89b6d1cd99766457c6ea12c17300ecf1014c7f359334380adc531b0228142fa2d243471f11e3cf76d236813b0d9515bc150bc09d726826eb57062963492d5fb6870f320a4a03677444117d0573da5a7e9f9cecd48d63e017b9561e80e0e3baaba728b243eacee4c8856ec1ee80ab07bc9c19b9dfff6fa07c7f01636a7a2f7b2796af410bb3337c364b09e661276678deaf3a0514698a99644c46e8f096b118f7d00b24f50aebba2250bb30ed95c432996d9761ad9edfc86030f6824d1fde085a473dd82e30a50f4bdd2649d15be81f45e2e001268eab238f8558166b1cb857a4ed598aa8e725c4143f34644f17ff27e92a4846118aaeac37cfcc562efcd17d7e155fdc920db0e6c7139fe846c8605cfcc79e74903adcc67c92cfef1e384f07146a1d6b99b693c042543b7a1db1915f0661b6c0fb3e10f3f8150c3ca7d46a5ba6a4bbd8fb7a41cf1e0ff399f659d26d0fedabac6ab7f252b28197b77bcdc8cd5be4c62805e7748634ac1bcb886959b67f9b21745deb11576a5187bb03874ea8db88e1d6c2e03a745acdbd8478dfe8c3afe1afd01361157e2c5e9d6a099da173050881155fa4232cf74d6424d1df3cac077ec8c8c0eef2abfb8e89a2a1d0d496e84ea75d6497dbd6ab52c28f9b0a2ba2613578953b96f481f927b75551617c36bd45cdb54d68627e5a49d54cc0f988c2647e5c7e2f974e07ecbea10b16a40a0ebc6497a070ed5a2b51c0d812ddb4f856ec8905065885844fdc0c99f9a118c7b6963bbde2a9560fd3e1bf46d98081f522612e79a2f9376b9cd30ef5d039b869d93b84783a5c157121c4361abde5c69a4aae43d9b51398843aabffd078ca8648437560d2d271da1cfe45a89304cf5278d83c2f791b410ce6fe2767c8b876d71e132d3bf1a54e82d795ccae724e4c0bf52ef72d8ce14a10a6b17417f71bd35cd656447c458dd941c14a521ef7c540328bb187f69da3be74cecd570dfc592de7bf8e8d05dcc7f47ab23e792494cb1d3600435ba6eb73bd48abe0536047d9658c32f2b0eeac7c35dfa21d873a9ef829f390553b36a2e10cd0bf3952d3b9a4c2ada276ca72d3affe49e5eadbd297034a367309a443355f729a306e4d1a09879ede51076c4b0ca8c1e052d548f3ec27976ec73150796c406b5ba831b0099d81dce490e1a932b756203a38c3bab35c2d77dcc2eebdb0c2eff322deb3280d713c7104541f4c3027632bcfab496f84610127515b71063824324d6f0ed3979f819dc88e118b20bd49909296d2fc3fe342ee5ed342a1d862623ebc7914164f7a8570d1f3241c0a31242ee5cdc68686d7d801dc99e81dcf052b9a5a37c999b695fea2254e1cbd6c8b3b05b1c1ee5f9961915cec1c325a9907fcaedfb188f6a25a442f7b70f6c533deb6c95633e7e80f0ce5124df57795f18479776d4b382c1e2e9968b6f82dfb2c5f7d2b6e09159f2950fec1705e916f4817b4c18243abf6d3cf6a8c9b521dfc3aaff201376987cecc26acc0065c5ba52844ab15c5bc36a1a33da9fb457c7305f39fd92f2bbaf2b545b8dbfee073213312172c590d7eb0d5aac7af880365db48944bb5ff97a957c4164d2167946f1f0ed1c8541636effbb86eea8ce49c84b86e69ee1a88d31bac69789639a9e5319926a7b3f2b64e9f3253e27cb00e097389148a211b0619463dbdb97e96e38b13a010909ebef4d833322dee514f07dbf142904ad12e3df089f2f2b00cdd074b7d6c29fd7d3b6dc6e3773ad9d4fdf00747b895aa00e9196290462b25c06c7c811264b40b6ccdd1c4ef2d64b283332a77a6051fa5fde5ae94447c6a4e27e2fca3f2ff622bdc3d185bc0aa99b414e0f39ab0e56195466b03ede9be081f300c76d152d7ce8c966b5eac4e5a196087f26ef7576671dec02ed972be7fa6890b80e373a451ca6f8d7874667817c6682fb9d6159ccdf221805e50297c23d56df433102a98ef7de2d72bdad1a1f8da916ea67476d7718f1ce3ef69b414ef767aa534932326856a2909d7c3b45be9202118a82d4db4f1e16869fede77bd3f9b5dfdbab38fa1ed2830bb4f0a4c5664df223ece413602d3ff4bee053254c373cd811d4179cf6e49c07cef564396b43a380e03a1ab0cec54a857742f3d4ee3c26f5f587ede07417626acb8d197a7b8c5e6a4193cd3b8adba078b557a82150983213e677cff593d578613aa604212e42ce5f206dc8310ebc661a02e3cfff94d0d07462c94e12c7e6628d178df16130b7d35fbf932592680e7e23ebc2e3d492f2b0f88b47854756f1d1dd9fe8af6d22eb266242aeba38baf1162b82ee18385413e3d3a7f3be5cdd00ad13d7fb44c319b5db523058fac6b86bf7f3da8110e598a2747ea12595f4cb5cd0e205fb50a71dbe71d8f6c9d0412d27d2388fdaed49518d7556853c1d61e4ae81f234701a2eab4bf97c64113d52768246ec3bc4633226308f5007df0c00bf79d220b5aff1a034da169a2edaa86d05ee631a02b58af1f2199708fdcbf57149df6afa995cdeab9c87efd66cc64009df9acaba071a9214429ec7a7e13afb8140b7764d37fdc8acbb4d481e1a57cf611f79c3cbf4b39e18da37886150cca21db9f5ae1bac9f92b1e00c62b29964dc4f7186e9ff770368d630bbefba8d0aa34e9b61b9f4568ecc2e49665c6b2c271316976c3e21bfc56656ef586a6cff79d1c2229b58ef5914023dab66293c7ccf3016e86fc40d0381a68876702d70ae3992105c72260d1a52c636b0005cd115affddeccadf7dafb208ceb573263bbca336b90af8dd2d1c621f8e574575b7ce6f0121441abc03e65a32385d812383324de9c5651601f3ccc0bee0a08d9c4a4c5e16e465933bad581d4c6b2750c34aab38ae291cf70171c5f4b7cecf02807a9e9c819f3ba85e43f961b2f3b5cb289151148bc5687ef34f7f5e206cca4da7f6e6e505d831cd51f566b5744bfef1245b5fc51e4a82d9d7548cac0118d12fca5e0d57d5058cf1508ecceca3a1e466a849dd511d2664a0195ef5ef3009c1a700b46813abaa1321c0cab1119d2a1aaa424ea24af6c95b8f0e60ff3edfa2311193fa13a6c8cfe3d0bda948852c7cf1bb18be912304f6c28648c7410dd1ef03fd3d94aae9d79abf8127ba40c11cc8dcca37ab6ed29406d9c9efccc000b81e8613f4091eb366752017fb8d67ba494dda1a8110ca801bfc3eda31cba54549ff7275de371e745be630b15a49b354fcfd6b8c56f9a58bcc82346ff5eb15dac3f49b7f5096ff8d6dc4059c35d54a19216addd6d98c5b85f3661a7d9a530b3b1ea3f28d66c1c5cdd2965479f7009a68b308014e38883a6e256036360e19ab152743208da2f3cb3ab8d29c23361f7325f2d6d1369a701a4ada62aa27ba45af68144ffd7c5012d7ffc50b4ca1f47e8b7b636d7c547f6d457abc638e0d42995e5fa51c78af16cf9ab8aa425f7048c92a94c2227c89db4bb0ce914cd6c2d83cd261601af09c3a28f013a5317f2c5295e01891951f00257622ec788d2ea04ed5423ae5857b1f84b88b2cf6014f7140203bd2de847c2fa0131d1b9b48dd18f804a8c133fded2c3276ad33a97c35a52296c5d13c425fa36f0e12b990fd4eefdbd39d311b19831b38387da6c441efeba3e2d68f59f3a05aa6e841582e7d7df10a91cb1032566886dd66925c2aa32dfe62ba0e54e5b608769589b8e46a03e990272a39ff78b70023c073f73fae59f8a97e572e24661edd7603c39386e1f89e3bbe4285ee4a268bf642ce368c1462fa0d60706f1ac885e7ed39657d9c68730d95a18a86fed85d25655caf00ec766ad5764677ea6054759bcafc829dc84a63b6909195d9cb7b7c24e9dddb84f68776bf875f2d41aa788f703b1b6d7cdf3b37bd92386776dcd0e80a3b839237ce78c9f62c47a816be5bf667a523adfe1b649113faf5e6bb4133bdb48aa063fc934e83086ea4296394ffdc37b91ce566c99b054072076f9024ed5b09f6667bace46815be91369432bfa22c71580226f68efe7be72704bfe2fb32af7020e938f080354fc25fb88c268df843f8aa77bdcf48508fb11873c73d69136ed3ef7eaf455b6314667382f9c1f48889cd23a1244d323e5d94eed4fd3d6047c7c138ad7047c1d1915f3dff711ff4914bd1719d164e9990a7ce3d50e42d2b7b1a3b5e975a1a3fd56149c707239bf53e50837a02376c26381a860732968b2bb71cc4e6f60cfd74cf1714c1225fd98c91567464fbb220bd8f2f0a99edff6206b5f427af41b2288ea1ee8822449cac5b16dfd0939779817e913f676cd67280c5f759ec9edf3db09e8cd7bcf1c1b2b0a714bc47b46d7615b7577d9d258ce6029736ddd40554f1214617a6d58b5d7ee2a9737e34b49a520f2272aac9d1307486dda7404d864c87e45e4d77f576bc0c970bb757a5ddebdcc19e9b9730a312b5395439eabfe2091a49a6b0fe69a4dc188276924f6452023cdb4de8a31217b1db89e0dc48111b3ee98f9e493e1021b920d221cbe47cf29c31cc8fc9b323ed90e344d8ccce1e893d50caa4acf5506b16c49354d0d6b7a689cafff251dd090269de2a95c82dd4986f02cd94b2a5e2ecab255b98ee56bf7be297827dc78b39b5886a07bc972b673619c8c15853041980c1d9b0cb933baaf7740c0b380b3a2b7f5291ad53f849995aba297d448d3f175684db10f2737fa3b07ca03382542d48edb52b388d336965404bdf5edf70cae8dc6de41a602f6a6e99e031ff1ebbacba25503ebacd3c036495f2be21cea6630b7064cc33ca13ecd3e8f2d6d3cf800cbc4833dbb1c6f79d2810ee7b881e62358624e48513cf0c7dd6f7ad4671befcdf59e1002baf76843b0fb9c3ce2212c112210a7624199f14215e6561e72b407bb5f2b38ff6d21dde9522e79d6d4640a404ad5ec0e5447486f41c341c5bed2ab2b5f391eaa5ebf14a1d5806f821d95092af5dc0c6e8bbfd484ba5821aaaa61a8bba9ee74bce4bf6a1d13d0f43b3b66a3014de2936fc27f618440ac172979f5ed12f1407350a54e40f26ded4045a5698b3116b98c2618885f410cfac4991a44e140f17b1b15ef5f012b751c39598097874cdcc7ae6b24deb236cc2f5aa588a73b0124c0d154e62b39504c962a405fcdd8ef7e84dc26b40c8f78756f7b5c4f9e7b8c968042c889acb64ab2075551ea4a335a94fff1d97c9d6355c990f2360d49e5d5b104996f1f20c1d6be1145ab703347b94d5ae346d0a4d877309d31670fef12591fe905ec858c5c79f2c7fe2c3510d96f474a2b4bda35db9b1454a52bb37b15d9569c95133c379e290132f879c04c6ad6f598894a5ce9b92832a9d707e0fa24b3cbe256b9ad2a1120d4cfe392a0b871382da211c32a5e51427341620fc21ee1a62253d1e379b72a7e9b0f4bcdc50824109ada88e4eab54823c6f8b0ace6be213653dacbebf3efcebf6cd6f8331c54ccc2dc461545af135ed2085b948d015457fe1937633d162ae528d7fd339a1799b45f62ff3b0d1c20c384942fa49fea7d7badab7d70b57a83fca00bd1c9eba7369e2302b22f35ac8b893f2be87146d97d91742a943fd5b15a00afb191e8837270cac2dd226fad8a831f8a0a328b357cb8b619fab895467fd0fc8647f3c9943cee92bb00a3b38c333fdc43ae6c4c98503ac30bb1f8076a174ef35bf79f2dea293d9233c1a12f9dba789cee5e28837186307a190fb8a1e976febe6720b3a390d24d5c21f3171de325ea6e00ffade05cd36d4aae142fdb895250095b6e3da72b39f2c6c494199cf6c3d7500eab753c1cd0e69eb60feadfb2ea774e273ec488045b64c2afb94ae14ac783fae1a8afa69ae036bf8d3547256c43eaf1543bc0281c6abfc1e11f66b4bcb8b9bbccd1be4a4f311b40972bfb50c4dee36257951d82c9c084b3b708ba3e02854468c91cb8212a08f70366b28d6fdf1ce35091e8bd04af45168ab2a5a729d60177543f2de77474824fcb9281d87a25d22cf0fafaf3bf10463e5456a7220df8c8a66178d34c304fdc5055a4448d304b79454e9cb8085dd5c3a8e5a342372e5c30ab1a1c3c1705b9894510ab93ae382fa47ab64d70b9e9bbd3640fef4f828d24f862e04124305c46bc225a72b4149cc5f35a26702db77290ef656813fcb4453d002c26ecc7b218f56bfd5069ebeb8a8bec37d28f2f266e690f05a649e3143ab6f870befe686a2ac69c8f33a52531733d72a9b922ed1ef637f47f841f53fb1434891637023d5cf00666b7519fcf3a67c9920c4cd5c22dd3344d743f54df579612dd0a4646483e6b7433f78c90be2fd4b78dfd1c176dd356f448679a9b6b293212dbbf45352dfc3fa2d3f5688c2c8a8884b2e0a8d9ad05062bb24179894a07ffaa90a9c1ea3e328a4f2afbabbde99b0aa2c55d29b30cab136defcd0828189af45e82c2125f36b57e93c8788f660f063f2119df79d77323ab721c3d77fa84217aa5a3060cbac10bde0b407d8086b3435f376b140c9988bb0aabfaa33c6e5ced444ab2f7b69ec5ed3677c1417047561d401cea70ec63023a6e28a679f3fcafe386599219208290ccf8647a9eb4940434e8fa71a9d664ef58c92ed31ac18036fd6cf31077335f704a56e53091787d757b76ee363c5a4eca4152efd7464e7d9dc9eda0251ca95913bdf762cfbdbc44baba584592e70eee8016dc3aeda24f5fc0e8e703639b0122dcaf7d10eee9e740730dd284972dd9830f6b0135e0369ef4779090fcc888922cdb60d393ea7ee7ecdd63d1e66ad53e0d21ca1e52e6eddf9efa0b329e93fda20d6e4251d9c90ae0cc7aff174c106bcbf6382f1d2a6418c00294363a8df316988c9e7caf38f3bf6d087cfbafdc8ebe84e5468b0cea3eebb735d10399a0d57531403b69c855cff474dca7c0b2d0d2606f8a29428e6ebfff66ac1cf76ee000bed5c54b162b6778a38246dc905f1bac2a23b291ac0f5125cf7b6b2bac0b3cdb1cefe5f2c77dccf4eabc8bebfd81f2a5b56f02eb97d471c73b2c3d8b513c9116bb57370972b01ee88a637d1b6e286c38e110186cc3d1c806073eed1725eade604cd613bb42ff23426be09c2ba1aaac025273f633655787675d9fcd1bff08bdf384aaef3c15c551361668816823005f51ee88fb66a58bd4db478f0566c9d573889c296639ff1dc6b1392a21fdda66713260adc99120b5aeaa36566daf00654cc7d26a8df4c559e3982712e0647c5950bc989ad9346655bb647e8ef83c3681f4c1e7036340633ef7505517869b15d619fc496da63f7d131008d7fcf0cc91d90f6aa0d56346871a987dde1d7f6a85f482336ab9a56e5c763ecbdef883824980503e46e8a0da13a8a164006706fd00cd69acb6ae7df3716f2c07916564b12db9b0992558e3849ebefb1e9d911fb78cae4d6d2c4d2b8b1cb5835ed73983211f18a8291052b1acf4d59497bb2a7f2586a527878fa90a2a31edc190f69820a193ef7511db1f465d92583a5d05cec4be1d525d8ae641f3b17aa7335e1b7bb781140fdb29e044cfe62bc6387747d6a818d60ec8edfd61daba33286481d6e585eac0d1dc9d7baa803a25a6edbff59dff2506670ad8e397ad528c02cc099bb4b3c1c77c6bde8edc513f1d4ab5c3a54fb40c5bddadc86a3857bd2b83c85241f1594befed0588fe5576855f60dec590461d255402c313abf31eaaa7ea256987bcec83139ab45e34dde2ae6e568d5815ff4bbec4dafdff7f79d8070e78c6f08ac6c9a99fdbf5f59cf0719b828bb9e737973a555396889c062e929d604330835157ed5f169175f3294379e70553aeb21adff806fd95061124eeb5d111e80b0f42e70f528d0baa1ccf48e29315c7b9f289f93a2891c2813fffe3cd958bffddf7a947ae482d4db08808d317bf066bf358738ceb1633333c0d836b5f41aa6b8594385bbe29b497016150bd5a2edd9d44a06a81a38cda23a08cde068e423e714832815e1279f54adc94a9a94f07d5dc1cac235629f3d23bc88f046378ef8ca27af17ec0ac8953137ac418cdd781ded57b8ff8fc597e3c245ae02c6c816fcd9905a80a8b86b74a686d7226cc868a194a3be3694d1d19896ead765072f7a7ae835e75665b8aafe75ac03a5fa747465dc0c2059604488503cb788fb15dcb53cf79b2dab5eac5014ab4ae68d6b70228b6078f39c7558d68458f7f6c52f349f244ad53f97f2614f82b6415c5a0bb56d1e089371be50ae262bd8cf9e1782909051761b11032d9c1f1533ff1e054f2b647d06ddb92fe34f3b43137af8f308c7b29c3b464749ce2ee521e0e87709249801f2c8a2038c46c926f371b04cac9b1dbf6bb3e1cfa7300ae6c00eb0e857899d71ece272e1b0ea3399fbba469c456bf612de176704ecd2625a1fcf0fc932ef1628244944d08568108697d35f4832dfdf4af0ff1eab6a868306d2e3a41445cf32f7e53841aa73a5add98908b0c7e6a7bcbf59267ca86637049ef432e19ebaf4259cd70466d49fca96bb2dd77778c6dc6a91da9954df34388b5f9fc204c7b58fe3c2345c568d9022772319ee42d0d57abb4900ae28e03f0323cbcaf40ed6a8c4e5619325a561956627247e32bbf99920c072f5ed93a0ff553e897c6d4fcbc05010cc5ca6f395326f88b0f10be37bf46c67d54c178ab9e43e895bd3dcc82ed7f35067952f444a945505de35d18c684e4a26ba043483286ae4e4ece289cfcf73c1add55459c9c73a9ee0b36550b985c9f5f274f69459bc56e20b5d22b6e381181b83236d2f40b7beb53d61c5751aa4feec0a520ac9d320ca0990785009ff7f617d189325c469d6bca6dd176187584d20cb7913bf838d7c0c3917017f58cf2e8cac86b71f9463a8da897b3771f081bb6789294382f14e4143c04b3566bb61778eda4af38f49cc0ab0b2bcf33482952157648c085a46bfaf7d2286d475828205ad517f43c4c31341b1da09ead425bdaf48bc74d9ea1b5f6b9321c7622c63cd358599d9efc3252f9ef2d3e84cf11ab6188045c2127e16c9ac76c1818e352a9934559a7f18b8fa540d62c5c9fae8c2653b57024c7dc16abb435743d2970addd0f9334da0b987ceb0e6f3131d96de0a29e782296d9636493d3bda2e944c71fb22fd85059e28ec7908abcf6348b1a0bd3424ab0110479e48cc86632a2a777ff659908952388ca751179f2581061e662ae9376768713b2224d8952c58b6f283cee67a0f27f54563a2b16f3da1d58340b2777aa142cc7fda0b23712de7243dcd793ec59d779ba6403e0aedb237afe088430129dec3c5354516f5a706664a22266e29545ba6de3d46c48aa477ba453901a16a0d6a5d4c7961e8390d829d65d6d93e6554592a55e374a36ea5b52afec9573216e11abcfcd6f65864963575f004f9bbc21fe5f05789923a7ad3fba003efe05913597acc06b2474c44c130401237dd06e644ba0c707ffb1065f63e8a22c8a9cde4d4a1cf5c4a712261902a8fef20f18247f21db49cdda6441f8d8b7244970d85571bfb28904f1f7eb670f9f466a9e6b9eb09519e9a605dca6e60c240a56a1acfa0deae98ee68650395c27a96afc845809fe7266ee38ad729c9861d3ccfbdfe1bf5c62803d91703c6e295a6c28bada8118f75c558bd572b01f1f8b896ccc2d910db939fa3ab03f51523acfed812d571a766f027be6b77bd4188d0baf8ff871ac97f2a61fee03b4170f23151b6670b16e81874bf037e483527dfedbd63358a87684939179e3d68c8bfae76e44e93fcf5a5d9ebfd1f53e1d4f4271212deea85907e35428d8410b799e3163869e0d0e71d04e0799c010ad24261fdac70dbc2398c9713b3ccf4eb2bab402d35ac01b54e6566b9c1d62404f1fe71f1f016e63cc3dfeb4160f340360ff2628db59268ba7bb849788dce05f2aa2d307e2f06f631cb4385d5ca1a4afac22c0d28250b07a53428ad5e26267dace1ee2834441d274eb1edffd9950fcb0960c4384f94823b97847a7e3f4d1a827d16f3d2d10f87d9ab75eaf13f7c4e134b6a1e4b92c79a65df64eb32a478358582548c45beca6fac1ae00375b81c1390e75c7cb66781d47f09c2c96fccb8fb1b2af3888c88bfcf7f31bdd5a773d68b099bcd2963efc7974226ee4ce22c4a0f05e9c575200fccfc7141ad7d2e735e835b2cb53d3cf5f448217eb50eebc36ead52350b51ba680fae034aeeaa84f02597ab52616896e0f672a3db32c196f1690263304b39285a4b75b71ab78bd0b81bc7798d357b0ee3b6607b4f5c28be06d002b065fff99756ace7864028a4519bdbce70b54afb42e27ae194877b8108a2dfe334a9c75c80ac87917265e96474c3ac1c9b00fd4f67187b944f92e158bd474310fdd155ce919d4e13fdc30341ed62164e05c20814b8b0b4ed213bbf47187701392d93f877a0a53fa9adb91fafb1b0925346fb2f67bd74904edd8300a4b8728f517b469b62ef98ac6f7578fc760dd4c748f346b32c307a4ef26b7087238e4d6b1fa66d6176caa8955c8a4d58fa6aa3ad7015c87d354bce981f11229236838a2561daffd41ce4c4645a105ced678ab82f25d7ba3c3d1eec3b5269f51aea256d5aa65580818a40b493ebf0e97f056b5abbdb9a36029d52c3322824569e1bf48ee0c3b9ad9ff6f71c2a47f95783913b283fff20557de6ba2aad8249f70522c9e1e8a0c843788669a3cafe230b5805856c67826a7089e94f491d610fd1acc6c0a176fc979e41df436502e104adbfe1f2874cf3825c667c5eb3762af005014945338d268c0bbb6385e0794d1bcf75138d593624f8bb71966ee7fe24dc4178bce9083c0611a236a8330d83415084c24c7d957ab57367b1f544bd49f9a93b3aed6b8e3c7317463c6de49614f6e0e6a54c476e2b57ec90c2b5f5427642a34e5a78080aa92dba0ba52810452239166d7af79f82189b832e652cd480d1ff5bda69f30895a29612638165d8b2843d93b9a93084d7f0a3cbf8c9cd50f398ad703d5c560df18394f1ab72b93bcaf57c4be5110e3ea58070540fcee25c3e549118c8e9e1ec95f6e310e8763fbdb66bf7425bc8152078493533ea2a45d09f72bc61849628be4cc8c190c96b39e153dcf2e3ccce3f11c4ed92740db789240daf77fc0dffa5d96246e1aa32dbf3cd04afdde85b0912ec2b8ccca1c2459cc7872b8a8961b6e5dc8e47bcf03950fc7cf72e992ec6d85cfcfe9f0466171b6873e998810e47854eaf70088d52c2aafe627150bfb01f0a06ad70984ebc45e4f3635feb16def2a517594a1224c27c4b873fe3dc6efcfb003ece90af3ccad2810bb816f5dd655a05e03ae00ac5a537015fe1dfacde9385af213ae116c40c5a191f104d52a47f30929aef3bd6aa8c4dc124758bb0487e80260f4c67ac3619c96f4236668c6215ba69e240244e0e3ae01b5c7b8f67e0bd4e8ba758ab6a49060515391edf3f7a7e0d3532602196e3ce2dba5288766e7db4acb38d4077535ef9f2fc7f22e22b8812f2b570b973420e9574a6ec9199a47029746811e5edce6e51d7c0ced83288f3d7424983a1db519a2ce60333b78bd22ac2dd33eb962c32d9eb7fe229f5656dfc9140911b3388eb22477c18bc6cdc2e3ae6f4ad1db972a408958f4e5183c53c5fbf8337b87b30aceb1b0cf20e5ab57dbfbf9121710736dc3d8fe607addde15e70963e2725bac3b538ed5cdb7c51c506d30865604b8f3e58b03d0ed9e68b9dde111581796ea14aff9841738efcb857198095be3898689fc2b453dc55ca3a0b90692985358808007ce606cee740b5ac7b6e94c9b1f024bde151d381f55711e65bcf12824fb7f424feb748affb9d19ceb2f574e9220087c5380cf766feb269c862cf669c959dedc20e713f526311c34edd97b903e0947647014e1c867d8095d98d94cc178fca5befe57181950f51e0bbef0a5335c92c3751aa79e7b4046d948065a04d2fa35725274ae6079b04dbd0453dfc787669554c39be696cef87245864abc1245a8e4f75cda524beb4ae515bedf90f6dcc8a125c7bef11c7881f973e51207cf2107ce79abd89a3fe3edb3f420d8a3ede3282c35792c43c739034f7a1ab9df75b68a725312ffb225d1fe865dc6a1a3899e6c4bd9b50639f184b3b5e7c797a0a61038a571bb0f0aea8ca4d006291f614ee05d0938f4f8c53b2fe9e23c590610e6053129d6c4d42400d322e4d9a77e9de05e0d67ce4c3986073763da6cad05781ccc6715162f9b02dad0780e7758f77d8b525757e9cf3388fd97f30c6191e7151522fdc4dc1bad6373c1940ab0a95daabca62b1c2f2cda95872f009d770a7bb801080ba9655c6554c899ae280cd6b98b86ba7ba517a5d1b054b18bc7fe7087eaf407de660450b65859c59b2045264adb1eb1efca6b59f9c0d9abb8d4bb5aa036660edf4b9c123e75acf22defcb039b955f52c57bccd9022acb9cf89e67559ce8b4d2af4629fb411ccaefee4e3fdb9e70477b7a4a2e0f171aa61559b42f7138309dcf3b43376a2bb6c096cb54f8ceef26781e250c5771c1e829f0a051329bb2afc5cbbffd69e85f1620ca7f798139a545b8d49a9d658d9bcad8922ffb06c8645035f2091ff4948eae7d81d5e0190067ad71fdc94245dc72737945d04334eeaaaed97a74ba21e4ccbbf2e5080031b5a8a2326fe67e3ce9e2fd9795f365b8d09d8d01e35c14cead1cfa9c7ee3dcf28a361c2cb84bb662c89d9402cb00b082996c8ae0b519eeee8b35a41b6d60ffb4157efab5ee366522dddce64d6cb168f7435fb610e5b0720489aba616baebd788de3cf5c911ba38bcf0b3664fd3a8bc70d7cbd50db1d045ac1ecdf6b4b18eccb0c57e5884f98ae1c39840ada3d1b97ab97188c1b521cd241384d2ee23509b572135161da9d78f0aa0edef2528658ce09421a4cfce0ea4ff7a4c386a14bea8a20823f8831e484b770d91544f817c957d3491703780b8496eb6555f1e3dddf2d042e4251f6ef189f09a04477595cb923ec280261cd7efbfecb306cc54d6e46ebce2ce0e1e45b5f34f2b504ac510b0fc07dc10af4842cfb956ecdd9ebd1d0e2741afac93c6f87062ad77f86e03e12520e211dd5bae1703ceb1f54f208ad250af52a3fd153ffb4d206b8b452ef3bacbd29d66e697670da27973f2f57960bb2fc5ff6d0a3d3168a26fa046d9f7bc93f7f204d44ddb56c09575161d0cf70221956c38f0c65a587f61fe2bdb956b3628db251ec7de6b7930932001434066b651bf1ba3c2849ac1201c278a51d479f876b885c7a069b4ac42a3ff7448d0768c1d3dc80dae75635f5391216506ebe39b422632f034ee3cf43d3b977d9ef82ab859fae60f32fe9894c0ce84b72804d7499264f4044c968d454fe51e9bd2b2b9fb5e5cb14202d8a28737e1bc433b449b0b31c169b82380867e0679d13300c47910896e410d830467602a155615964091e92f0c662beb58f671d8e3dbac591bb0a2bd1e5762508f9f0f2ec73fbbe5c5f7f65f1c809e48c779e59b812c6aa4805b1cdd89d8f5b92036e17ec468eca8ee33ddd863fa41d3a5edf20d05a5dabb92570353585f603f608fe6783b5752b38995567594796d980dfe7e4df07024091671208c2a655f1a27f0381d3c9e47acd0d14d55543b8598309c5d609d82fb139345fe7a15e1e0b382662f95c85272916eae045b02bf164804654cadd678aaec440890112f68d12a87e0e6a975e2442fd696b9af8a124310bc422281ff6e5cbf5786f9ca2a23b4d1f15ae6489bed99abe815c13b4b3561ce13d3728ccc79444877048322062be4ae9b513c021507d2fdeb6ded2e0843df506a5c6b628cd2555badcfbc1cc51efffdbbdb2d90927b1470d1c86b7df058cdddab5bdefcfff2dd5c909bb7bb3e0461acfa1d734a78829624ccbaf35db26629ad0cf54934c32378c6c1070089f9c5c9de52fc07af4f7a168c371143ca9f5df76c93d1244c453f80a5bce6bc1318e03c69c535cbe1c7120bf1cd276504e36f6dbb7333e46851ab601bf41fe96b550eec57db538126468660ec2e3e320dc35100af384bfd0f27cbd5de414723a5110d8669f8175468064500f0b587c82cf8aee750bf179bae226c87b8a443f65a6ebf928f7d5092b6cbb3c9bea0ef7d6c1046c71c015be115f6ee26064f9fcf287b4c9e71bb3f47c120e014ee85cbee1de45b8581ae6d5cf8702f973a055b112f7205d5e9b4fe3b60284c526d1bf65a521a79fb6699fbac6fd96c815acc5ece9504275a87b185180cfe33ddf94c0c7862bda31aa3eff29576d4b4207ee8e1c904b7c7130ca044a564a6ee9fa7a2c63c68df8650844530526ede92fb552b6443274e85deef4875a1ab8f4cbc5ef7a8eec34e3a774a70b17e9a5306baa19212f2304bc31bdb50913d45a215045a7f82e8965a9c5daa3059f5a3080144b636b15355788c552f0b960c3ee108b0a91e782549a76f024cad8dab1573f0daff88641c4e8569437c1c002ac39aff6db10f93990613aff04dbd3b07df6113ef79e2f325d9b3bed30beda865a6281691a8d90dc63daac9c7bd020924d7459e0737625fb6379482fd55ebef81de40fce81b97d9c420acb8de22d5be31340af032dc1be356acd15f06899ed9f305d6ce87688c153c289f211df3fb376c127d591a2496c1bd020f949909890e20d8871d88430e73478e75f6991e395b2cf24739035b996f7e07d31d84eddae3c2bba3fdb635b8bf6ad3c1454b83a3ec3837786ebde44dfb4c0a850b2b7ef4d70c32b54ce018f30f0e38fb2c1777d13fcda99763bdb3aac8a26279fdd8bcb82c0069a6845d9ccb43d947d21ee242d314c3f6543466d333fd7be70d2dd0d9af89c7ad70c371c618e0814895efcaa1fd29ec2cbcafd6e20835b677d68aa6bcf9cf10f15ce8ef6cf27543cca459a144844cef41ff386290435b5272d9c5d17f108af24ad4e8a1ba77124827f8ebc751e4f1eb8bcec83c24a6bf7c3fdc4d71f25aa18573c0beeaafe570bbedb1941ee01ea4be484191c7f799c3c7c5bfa254158f43284a7c9226a1fde8207cc439477cc3caff184e065af67db876f2ec82f4a1e421525154025fb5bb53c972a61192a8ca9abd7dd34c592445c90f38d1ca95801774fd2e97a903685d60f33317ae2358403781623052ee166509ad0b6b1715513a69eb2b36497909b8133664f3ea7274be4c66916c0eb1751403ae64e67deae558f075b7f5337c3cdf6b527319331159b7b1eb3bf1b22d80d95e7c4149eaccc5ea0234e32de084781b626e0c5ecdcb5790d5aa75d1c73e87687e0f2230f7fca915db70e51ac1978a30c508a5902399348c0853b5a279d571d224bc8e9a50a702c0bf5998bdc92b10f4a5aaf38f3571a785e61c59e599ef370386a68cc7f3fe717350d1fb4b3b1dff335078736eaa24de796e6920fd1329669057de2b22dea74e0f7b0aae31a1f41eed0949e2a63182f9e29067afb9d88ca1d7bcc5fa3dfdca224b856878a01c2488d112dac560269e8ce23e6a0d6f82071d6d28e590e371b42d09d4a4c3b0613f2e1f9e06e2c4a6dc213c4410279e332424da8cb7052d782de1785ae61e12089d53c6c0abc5619172b41f767e4d2d728a92ab764b77b286db6409db49ba4b11420ee08d043da01a6e35c400b4b330010a5bd0e9ce87c676ce122c6455ee8cc672cb74dbd7dc47ecfb09d2dd6ff142fbdf03481c3dd9c2c70ff9e6b2f4b40d50c6ca9269c67a13018a8a9dbd35846daf462421686e98644f755c3765e729ffa7249fb46565b255ae9d8231edbf4aa10250ecc70ebcef38e931314426fd100ccba8b077849663ad8daeb42903930abf57809ca4a7429119f79ea3603e17506948fbbba22bbc30ca381c535d5d77ea2f409e0a0a548f31b9c48190de30aa7276935b4d7c66fd014109618959b953f70d77b12074122d0b4020a00bb1516524eeb8384b719eca80704ef8f2ab7143a1dce8395b16cb185af8b9cfdbde7cb9b8a659ec6d0b52399d75ab0a1efd29ca3bd1c93d4cbaef9bdf0a1dccfbc45933a5e20ce5be37449a0b308fd712fbf3b57fabfceb1aeec86e614b53071829d40005318c4f1edddde2c056f8fec7133798091e4c36ff82ca4c27158659161cb58416de4a18c0c2bb1f799cf742aaffe4bcd7c638f5c75b895680372eec8bac858eb9f35af1acc6a22b33e4a1141b1cc52ecfb75ddd548b2cb63bf2a4fd436925a8f6c9c1e23e645453b3856444ee95e0a6398fadcc1cc373fc2f022822bab3beed76279ecda58afd63ffa1ed79ed63593c41200abca911ad95b5bda277a5e2021008f2c13465c339dfe3871aac5311364976abf8ef18f133872841ced96934d8731c6fa18fd5a8e4b46e289ead5258ec3f4ea774d99ba5535f6cab7a84a291e3dd4b14ba66a2ac33f0729b51078e8cb41ca0182376f7eba6e2656a13ba9e1f98bbcde7d27a4b2ed23a07b460c5a0d5efb4287b68e506f84e8b7b97b0f4e0a2b6e60171b842a2e1f9f508a5c49095392b66063a235637c39b5f1c6447e09db166b3e938561d5185c1ee94b5be6a6d77898d3fb80c6709abfffe3a96cbdc42b65334abda4fb053e91b608e0545a49cb19dbf3be90292935f6805c914540fecc177e311a47b0d7645410a1e6293378be800f04579bc40ff21570e42849419ee2e7e490ac6e063e0df7ca42f2a527e18452c970f86a9b70b5352b223f33d674f13e8d027151b33870399d3ee42055b1233626c2be7021a87518ad26d9618a149835cad1e5a4632b746631c511cb550be4bb07892064a68d9a8cb672596e83dcba3cea24b32d35d902103ff8ec503b05510541f2149bb807c8f18d3d3e96f59f88c63832a80e7e986d41c859f1120f583740c37180775d77cb5835f06451ff2a6fc416ede6b2c29df9efa11c5cb48aeea382277991455d2fb62263ecd13486ee0d8b534aef32bd23845363102fcd1c69d15314a2fdace72b0e64bc63f87e1d1658251ce820ca06f01e89c759d3bdedea5b4fb8f44fd3b3e63542c2df5b1325e26f7f66f6a525532fc294737a2193e6c807cd4f6a99869237293d0398bb4f36cccc4f2ac174983cdc2a61f25608f27bd9c2a655c1205647250bdf9b222fab7382fcb9204602cbc803eb9512be984b799e13ddf149731c3d900cc2566e184b3ece0cee261bf50d6f430925a2595656f2d2431df0e358cf9c29e980bb06f4a2dc6a0db785ed213711bab9eb62f7fc42016b5858c894b7a6755d62928607ba0304ae7767b8cda5cf7d2973e65320611f9f1d29dc0791e6135de6b5237aa35b94f925ea24ba73fad41ab30cbbc6a4e5b9f8a31673eca553e3659b29fb199d22f897b65ae7c4d0ac139c985ed4850bd2896c77ad5445a7dd0545d1498a9240ba5a2128edc03d269bf2192fa44ad2d7e5853e6cb2c06fd864f4dbd9049a28c9e6b8af120d2c9c52efb6079c65dc62b0118c012321ccec344b5b5c336283935cc44926195da07165143f80576f7825a79e7125f36a8e08bef95960fad3cbd79da2c95fe1cfa1aff6ac3ffe6689b2f785cae35464fe55b20a38816bdaea20d5490375a4717d0b69e3774d0b851832ed5e7df29586982a63fe11ffab3865759d8bd7cc6ff9e49a2a31c1cbbeeb8cf55b798af1c6c6623357b0c72faab98589aa2b014b089fb2368749edf6e2f780e6e0db2551db8998bb037ed3134b5d911e653c02464612c3fa529e761715442118b18bc63a77a4b98c60a305731d9521ced26c6fb31bb65c0dee346754a27181439ee02297376390b3053e5564fb7a24c44749e3e8dd78b040a58ac5b45e9d333b85b13273e5d1425b52effeb83d5791151b8aa249903b96230e92f97e9ac9f34c0bf41967d6a00103be1d86fc2bc1e22f34d4ec42e64bfbed8488a4a8d8a7a9886e524fa2cdb151a2457abc283deea7c459a756fb0999eeb20639b29a3c3b80501c917c62aa4e1bf8cac19c432afcbb510d70a203c030ddeb04ee4f9a5fa82fd9d71ba11d5c4e5862f8aa55b7f57c294c80280f40ee8f7aef1130ca3c3bf52e2edbd6e5dd8d713a8f9b73811dadc65042fbe4bbc2b16fb6d32625bcfa9d4784ef60fdc666210578a9a7c9d359aa75e50f60865949695ebc3a4b4411c16b498ba29476f0d2ba60b0d9840069b90dbeab3fcdfca93b7e74d655bfccfda0b1c2a743d5ad54605cf80a2b17285dd080e5a38fbb8fc87b6eadd54b49f3c60d193f9e357308123eac87c3a9cda943b7b8295e3c1b87fc1e1e009f6d88261e61629a524510e2ce3af23b7fc605e8efe703d95365b4a5ef0714c73ef3dd83efce8e921e9ff095019df6d5dd3e8bd33735debe5fbb06ea5103d4873dd4cab738650f335b3cc7aace157a48fc57eef28726dcf2a668cb5e4662ac693d4a172c74fc246fc59054cc324b948e221539775788fac977e0b52b38c79a411b4867aa529c0fa67e0aa6a5cecbbcede78498b055036e177e3e525288d2edb604896a39a9c4dc5b99bb34503c8f42480679b73294898bca7d61af06211351ba73db1c4d9281a510aaafb7c8741ad79b8311a6015fe6c6a189ce204029d0c1940e2aefab7168348c4b85d687a61c700ec2c199962b56bb05228fd15adda0f653bb973532ed7ce83291bae15b443dd6b73fa4a0a8b400c1fec1eb89b8bf8a823d8dc578d5ef44352ca3092b9d1bb0efa1b921b6570794c4515214660cb140530113107170892fd67111c6e54ae092f81a41c517fd5497ced0e6c41881dba18340e664517127e9f94b9c8e279f09d4496439efd81e4435267aec77334366c0709aeca3f0705d14b09504296be7dee8c0720710b34a7caca69ddc43d825044404305ef5655921e7c9ebc5a404d005b762ed88fee0a8fca9325194c3741a79de125d8168a990936a03cb3a035896921423cfbaf44b3f00107b7f47be32dfdd13559237cee1fe072a44441a6ea716b6240888f2c6e7282d9f44493d791e216065ba89361dcf0329dc197469729b0fd35d8128bc06919e2ccc1bf30c5c6f83d0668ba0df5bb093d5a38a8f51ff4d2dacfcde45d117d400e6398629a5cc506be32a03325029c2ce32cdace57a34b4700b478ae6509742aedb6b1ceb085143e6a7c88eba874fc872a0682fbc6c1590335fbdb0e770281fdc58ff6d6ea6619711671efec12ab767bbc65deb8722fb3b27da7d2365dc007f7c3097bd8d023212f1b583ac518992de9680a2f66dfdaae6ea508c230533bddde77ce96ca80eb7377d85e894020ba2fd79f32d87b65630bb3bc3084f1893ac64555dd9b072c574b3d2bd58410c4d3349ff76ceda9afdf5c4c94787c7ba5be3e0a35e46d2d9a18c697fc79e5035388618eacf815a23df4fc72451408c93e3cd435d3277c5ba2f83202b3d7096550b9faa11ab66c68e2397722abb7bce762a69c844ffcdf81b4254d82bdb02acef1b9320144a73d1946f4ab02e34a27aa114994cfafcda16b4fd243e30a7c0042a1517aef5000c32b651823e5d2aefc99bf73ec2159b866ac8b23a77592f1eb9f7e8eff3509c8435c0ea349ee9e91ee60d6f3947899b108a0906f94edcba6f39adb67446e5c083692643f93ff335396b2325f8a0a2140db381dccbb0935bb2833c030f72adb8e4649613dbadcbff927dea32eb37f83c49e6f02ed18a7ce94445165da76b73d3d683e4ed897d33636df926ea855abb95164c6a65279c69eac918cbb06ad09dce94c644dcd4e63ce78580ecd9a70369e15e47581c829d22d6b7153e3ea278d35d0e96ccf41c27c841548e06ae680257351088ba3336523081511a7b4019ea16c91e9871efa927b967841abe8d87d4c5be2ae702cb15e6040c71f5b398e4502c5c42d50d4df1ce4076b80ce5a571693de59e31fd20401cdea83975231eea9ce2c18c24462d82e481f67e6b0cad878626aa613775e57bd11a04eeb828ebce898ae00e3938beb7671e8fc9d79b43030b5cd4b01072f45034dfe582c9ff6c380b0fefaf970e6b9dc15b246165f8829df08bd2b71fab53c3c7d263ff82c45c11cdcf15bb1a85f4344e78f6d48592befe4e050dedb9bf72c64723d54426d09f603d802b181a8b6fd72c5d83d79f0764934a0849aa0620e84997febfe49f3058b1a3acfb05ab9fe3a1136a6cbe815b6a6e73fb8ae7c5fa77d3e16df2550fcaec29bcf99bb49bf20e0010c5a2722702af65bcf3189495685c1854d49acdd9ab1fbf723c8eb3f6a566b8a541522dd488952dcb9975043d1fd51841a5efeac906b8380a365b65966b04a05364022a456797c2885750c5a0079ca22a6d8ad88426f38cbb79f1b4ac4928218690608b0f01925601bbc5d4f45f6ed87bf731eb18904fdf74e4767cb8434a4aa5ad521acd778081dba40c7a2e38585d6e271429b46a5f9417a538137ec211410d2e13054a21bd8c54f39868e69cd8e58ad17671a817faf86335ecea905b8a02a2ca17d1e097bf56367c4fa960d87ba71e12e114792f6daace426a04c87ae6875d950fc63c085fc85c260a06e6a013bf34d83e9b44c202615ff0e36b41b8a1137d26d81b84c181ef967729630b99ce2aa0567b9c95748ab7ecc9a4d69ee284e54213b0665418a4a633dc1b833e84e9247552f7747fb6c4709a6f542053c37b57c7b42fd35a5242c0839fa47f8b221f8ecceb5625b68c0bc3fe96ec18190bbe7ab15ccb60fcea1f142d82d22f22db29d1094d531c42529a55356f6039e508b07399369d5fadfb3e87ece4e8b310fb3467abff14ce1a4c334f5fda4a57b25d47deef06bd29a407ee8b8cfb5852c5b699f81726e1bbd2d5ccc70883102d5e39411e4c76b9240bc1b8cd3f09eba2a032e3be39135606440f65bfc6a7d266f92204e1520c2090bce173d4857aaf21571f0e2c6af33a61c4249955e930851a9459e39ee4f11f1c778f10dffd85c1eb1f2b133d1f9d9bc4bcd3eee592d79024ca08c5b4813ba8986629f6457bc9dee7774058d5a439c442243757385681b9ef9eb3713921964720e710975abff39fda802974f256d764b5b4ec06a7d905b9ae2e5453e1ac87a8bacf98d8bd86e60853c15a46b2d7d63f9a2dea6c5955c4b419f8e2c2fbad2adeb07b37a27965426acc9c17e3f6bb2e54c76c4e163781722015186b8f3579a6ee4f0fb95e5a5c403599c8c0ac6a3c181e78d7de0255922ba4c6dc089ebfaf575165cb6973a2653539e7db84215a03140ea25f246cfa962110cd4a492ae6c283d96fbe9acfd918cd6b1f0a2b52c667e2fe2b4db69b9775cc89c13069b43a0498520289ef5c236a93275e6f002144d44dfc4e34dd455dd16a762fcaec0a65958d05e0cdf07062cc66c8e290e60490635e5fcd862c580316b17e8e5abf19fcf7de63b44ae6a241565731005c81980f6015b86285cafa3de0aa68e47de70e941ca514862b31c28381395b3e7990baf77b85d1bfba1baa70b5b87cf86db56a6bdd6e12e0ddd0b62b3df089e0599266fde458d703eea3eb880400f0c1d920d298a452939a7c79ed4dbb763bc3acaf0a95cfa9081f0794cd5711939ee76b2d709f80fffe3b1aa2d6e0ed822aaaf1304981beb8fedd7e22536196e23592f63468d8cedff835fc284137e3e252a03ea8e0f2705b7633bd8c07b4b548fe9875ac25ac3e509fa04a7657ac874312ffa4ed122047cb91f6ab548b36f1d630641110783e04abf775dc802d45b146d74f8b5a10e0d004b7627199c2885a929813365a3d68cf10854d24e8747f720e7a5c3e8e978ecd1a4714b89ce0821a590c64dac7c8c367690ef38f98e3cd0b30d19531527ffd159047e2a6aa5d48d0be99ed6ea493870c645a9b829a87526793415aec3eb143a622a2696b51ba37681ab7e179a1411c8f1dbe2ca38dbfa503115ac1a915c326377dcdf88c5de33c87fef66d02ebe87d17a491587511fd48dbd4b221f34b252ca3563e8ce36d3d1b1d1f45517597b2d5bfe4af5ac8ee0931e40d6e7177bbdc248830c313e608f05f09b9c4785c952ea0a0cdea71ecc7fb17b7e9a2064ad5d3fadc7a85b4f1bdc17cbfeedc5d2219e83da78c606bda4d1b3a803e1bc6af50764ea3a0cc729a33b6473679209469990722e490bf5d7609e2bf377d521fa3f4769344892ab741f5c7ba5d058aa94c7aa0a818d77c3a42d237ea6420762c44b3833a8d697477f08a715c085b1df1afb45f0db311aa56cd2917f7ed1eb05fa790db05501fb1b92f2b6d5b57634518a790cdf99cdc733653c8bdde2d05964454f8c86c769a4387b76d8da84ce1b77720c7fc02af6940465a6ac5935370e8ba87a8e1462d9fb98a7dd90231e49c38a44457112d4745e4ce6d5ffd3bc4429b7ffa581bd33576d905bf015c0e6b83007b5f68b9da704429409e38525f780ae5d2a4ae6881031eb46dcc4d0d43c4786b99c7bc77b2aeb257e8a45b3ca5b4d06c41c3fd31013b86a459cb6e06caa3e9161bb85f56e66d32e99d86cf15dd9dc7d285cc671c0dc996412bdbc991cb0983ee2fd5839875fd04646c6fd1ce2973ec37aa75c7f622fd156de772f0074511c20022a8a8b1928519fac7fec04ddc9b16ca4ceb5cdffb92140403fac5141cd95ecbb119235060d1e2abebb0def4196a77061fae3c20d33f42802ac307aa32b93fd1eb0c8594f942b1f4c5966142c65afaba8e6d1d7ec193197fd86b49dec8b1cd0bfd1a569ff472d792bda74216919095ea4d1e51ab7b9691a08828392545c1289b82a77ad5f875777696eecb6d300c0ac3a21d9ac5e4738c2ef7157627be5366d39fc15c07ed8ac1d9081dde87d85001e26018f431c3541a4871bbccdbbd36b66a9ab8813077488b1fafb13bfabe9d1209e7bfaa92d15a95ac4e595c54da8578256ede6696505d53e3aaa87b89d987c828fcef23be4a52381e802bdf1383c7a74b66449593fd983148a7c17432bd6acf764ff2a6a03e1f939c1e27e2b17bfb21237dc07d039f4654654906c462dd7d0995fef5f3d6f2886a8f2ff7f02a7db5cd59e760b8c0fcc7d2ac635ce98b88c48637f7236ce2aeaae77545ae8392eec755cfd7b84a2f79c3ddd7463e48728acbcb6fb2a31c9a655d9535e30fd46ac68aee92ba4e5f85b95ebbd114ae253f9bd59d54b2b9cf05ffca66da4c94ad4dcf8e6e2dd00a1ccdf5192ed2efa56b0723dbb68bfa04a99cd7792fb636449410ad45b5141e9c42bb66379d4134eee4822130afda608892ea06e28b51f98f821b058ac652f89417b48db1e9ea189c03726f430820cb2b4ac4f932b584cbf44b9ed0500efecf551f12c1110b947626b8d477010cdfb8d7f25fa756b270d3a2a84c840c5e67aea3d1c6d27cd5a086113d0e4b84b145b90053e92437765009c72b23e8fe9e3768d6b581cfd17f68cd09877ac6a9e7553237fb15dcc9edc1b1798a42933f6a68be2825c3e8eacc94aa9bf7027e4aa6f496f8accc36be55999b5d372f04e2f8f71c936adfdf96552b72dc69a13f3d7676579bbf16baba32df3349b650afeae257fac212832a940d58c28ea4c8ee22325ac5a6114acbb95aef093db7d510b7993c940067c374f7fd81effa8cc0e34ca54a7113540471bfeb4c2a50dec242faf26d5f9aead13bf75a6be091bd9308d38059eb0f4127c08551c303cda985bff60d0d5129993edce21cf2fe4a6224fa4162c5deac33c6395b648d2ba639d06fbeda87f4f9259d3c3c7a62ca86dcded351422903f89049e79e29d612573c9035c936867d672fed0ff3cc2fa433df1f44cc721a94e65c254fb290512fbb61f60988aeef2c626d756ec687d0f5f8a1cbb6724cb5908d0658589196bff70fa548abd10bbd96c4d0bf05ac978c47eefcddf4301a49bcaddefa1e10441aaddbb55550fca773533ce1649d674151c5df3fbf55aa29348a4acf47edaddfc8367d1bfca94386b22b9e546869d2afb95a3648cfe598a6543430020922ee7978b48db66cd7c6705f0a95741ea437d96137c6ddfb21da24a304fa1ae80dfe50cfa381bcf8b848058e13aa47dcc2e0a95cca99d439ffd5656bd322bf1fd0c6ddefed2e8b5c2c9bb997d705ac7df6bfd6a531c8e7d0d707c017b9591cff958c1938c016387cfb2fda3708de2bdc899d6cda92e6d46bf5095a84408cd401f339a3235cc2ee892d68174fb4c665404dd803a6504b7cb7854a80a39a6ccd4a2a5b8c916120c2f230e25aef4cace521e1b556ee3b6992b5b73eacb42ac002a617de4e9d705c9e54e1a3c17593b2ad437f68aee8e4409fd0e5459f43049907a4de76128b47ca549ef8667196cd32dcadd42f280337453c7be01d7715f28930c30dd5a9e986287cf0ab680426886f2762ff28baf621e1888e1767792ef7875bfb4fb086850e5799cc73c8fc5bf777df154aabe4be88ee62fd5c6778a90730383c99ba529c128d10c2efcb0f8ec441fa6458770e74ef0642149f0c5f3d7a077df4c4947843796f42dbb9f02d4d28837d5debd445a74f3d2b778a217492a624d6c0cf1dca3c3184241c36be178ad3a74114a1b993e2e25edbd357f4d6a337f8757136068b3a5d8b440a48552a792ca36c3b39aa474fea3b2f5c2a3471cefb990e348ee7265ca47fa53c81ff745821d63a5518b459ed72753927e825f8741abdae55e6e786f5791685a7833b8dd06cb7e47b900a3a4f18d97bd5c5772b71f6ae54610bdad0948bed9677eb23f1e663eb18d8687c230ae5a6b1432c1c61b48bf6885af8919711921c741985a6859619de72e525898328de3c926ce491f098be7ed3205326f6787da20e2b994080586961937f882e55c311336f8e5e6fa38a32647747ecb7cb1588945fa1f0ae03c0e796e872ecc6ca674f90f83cebd5b449eacf884abb346993b772e6932d9fa3b5138cc506b37a4cb8c998f3307b46b2dd58fd4300e421c6ab2d45cc8369490e6c33c2c9c1b770ecb3fa8e8699496fdd874ddc15938750af60fd654e1d27340418924ecc629bdd467282c1ffb29e2388d9602e5753ab5121384c37b335f678ff892d532fdd3a50ea80a3261af2576b577e80f260d62057519384efe6f09edb7d851836cc4d236635938074ec359bceb27e6995f40483f2e667bbcfcfdc6db2e53f689d275cf2c538805ac6f68a70f2512a137573f303184daffbe9a781789bb014141eeb92a118a094d704f42696b070e19e2fecfb5b91a5b2601b92e97f4a419e328081113d208f304ecfaeaadad6ed924b664cacb3a96525bc60ea161e340fc6e107f51ebd6d921e3c5826c42f68492eada249e0afe402d83261208441525abd81c151f01cb43b211faf8c98cecf23ee88e27cc4e6482db76bb9dcfbffd554c86cd5a7993981d89f392b87636f68f448c9df36aa7fa375390d18a12ddaa11a9f062822c294efbcdf8054ddca6a831f15dbfe3a294ce290d476d8726cdc340b0d348105d37e8686a83a623d64dff18f5b5a61b31969be487dcb747115dc92af4ee650f0418394d8fdbe04d36be2003e406bb2fe909ac3dc118a5d20d3802c62a5673aa6c5069dc2f342fff3f98bc12b7b5c4102f5a87a5c116e41109fabcdead51bd4db527ca3680bffa1d2c444c9e48820bf37d7cc73711216dfd2812d25cfbceefbe528df4ed7ed3da32a87cc06ed97fa996e1bfaf273c9e3eb33f758f213661d0ea8c4f6e2f691ee43d55a965218e9d148d7deb5ec2540d1b8c5b207853a5d10783fca14f4142ebf97d4509092feebe20d605adb6c06f125ac6396b817030405de815f4a2525276530284ada8916664fc744457520c25931eb0cd2ab82ae6d304489817795ea451a7f28c433821c6e3e96b97f0266c14e38352bca377e67bfbe3441db7eb0586d9aed6ceaf4487c230b7e37091a6c65c00947fe14c9cacc23dedff911c88d20cb9f3c93078801872353622d41281c824e018cdcb615c86389af5d4b247dc478d7e19758afe82fad2ba3759de0c5cc813cb9a763d45b0837979a5ab95542088244015da288b44bb43e1ca453a251cb1d7c91d59aeb37420c82d674e213236153050057d4b2721e70829c30daaad9995a221703bc7c5b0578c0375d392a87964d4019b37a8476c39ca0ac7c78592da51a7e01b5ee7c2a977cde168c6f6af1a91787d4811e746dfba152069a033992b47a27a4ddea2c3aeb4bb7aef6ab316fc7546a5a4ca25b06c80d8db0d9db2eeb2d14d7541cf3e24c68b270c8123ff7750ddae09b766725942c4e9d29f931406568fec240b0e34c7a64108b041c167826f41e2ed1de1544e04c27f94540cffc60cf1c278c6bbb527a72df83c6b44498e9dcf5b5c406c438a8a16b61204692b0cfcd899d786fa233c8c0bb5b6e25e5984bffa524bfe062b83ab620f9bd4dbe771f1383f0c950193286242a04edbdc201435f147d190f5ed83dd97ed5e3d6d95741abe0342cedd52c1c8e941f4a8f1783a53b67e698cadddd6b8a4188ca18f2adf10983c11363b5ddd5d5ac1752449111839757d48371145c0a42e3ef50585af899652c29b0d65e7782f416e3043a8f017f9df90c0a56ae14839a56d4aa329c2679a8a73b90142d7a75f813b51c4d9eb65501345b64e7362d81f439be1568c16e76000b0344272475864aa3da5159e2eb56684f0240ad9eb9f7c7f1e0f341cee9de929dd1694dd06e58c6c2ffad157b85650f328b3ab1d97d42a0a340eb818a649ecf1e404b1ef1778b740ef0e7b38de9f4c3a4857ab62f1b955ac7d7962602a1d07c1b3ab8579303d606bff1351c3c8a0fa16ef0b8eae7a7c384e7b53b4af7d5ff847b93c21ae3c64749e05bc6996f02afeb78194007e26dc0ef2199fd7e0345afdc26dfa67fad9f392c04bdc688ca627cfeea351d6fedfa680ab218871c2f897b097c7d4da86db6ba5cb3f9d7c738e3ead62c2255e270103127ac51b61aa08730140c515060bc737fa47f43a7fc81fccf1068d69bff8dc89627417916cffb4f31e6ee81d693a59f14aa4a055601f26283a6477f0509f363245e190211f93e3fe6f36b430e97afe72588e1cd23724413c24f9361d1cd0c60afbb28d7159cb8ed4f2d5335121c55bba067b674aa46a656a97144706feb6bac41a58cd88564943de9d5c732e2187c49a22c0230e579359c3d31067aa1805320eeffcf55a27f2a3cd9b1c03206d22c63f3bfd16b3efa9388dc1c31b358633c2bc55270ce0e6fae40a7d407a3251269d7f3914ab3589fff3193b4e295380daf4c7690effbc28e14f73b853f143d9b7befd9e9d6fa99a30cded4a311d976d11c413822e1e7c6406c36715da833000b14f1d979794790d77dd3598b5c5ed8628220b4f619d555ffb302bd94bd40ee8e0aac3430a7139abe38f8e7b3eb52207b1730a21311488d6661d91d1ed877c2d7fdeeaef7eff04459c231a7617c47416b5119aa1350041ecd823fc9605c7faa7542e0412735e7136c62de704a88d3ae434c67889073f1519cb70ac9fdbbf5a2954902a48634e0d265713a70abfef96a07a55761dc09809a482455efed5223a0e5e2e25b8a5b67125a093b449d48e3d489bf11d7c08312be3897838e6b7a48fb1b1e8397d0e21e292093a6aa8b350477486c430067417b8c6faf30a4ebb7e471520d1cf0d443c7d5e20edc83903e016a05b6af06b40bad770e333dd4ccbeeef516baee1c2bc5afd94c7646e447a2e4d97577339299d6de3dba3cacc099fb5759f5e7a40eb99f008521baadbc16ceccdfd90e46d7a4bea3ed141dd3b59d697f00813e5a514f819137c549f0b108413d423e7b72f14bfcdc0b256a64f6182de7f1d85d09674d712ccebc67659cf1a5c1698fa56eb27e714abd868f3bedfb5d8363018d2159b72bf21e1e537b726b7c8fb29c324327f6ea5338638a5f0ead15419f9e3b625d9b425d0e7143e34e88b19e04d5bf4e4b790c89cb6c6336a48452928a9b1fb1b0585ee818dedbad34fbe566815e5902eeb99a9dd44a2248eb25db07dc35d53c386c4e8808b8c2fb3566b4be72d01334e49c5d7da2f5698aaa79b457a4dec244ed53586f6456bf480d40c06d2962c0f327476c82efda9c0579cb2c90028fd0a19d1f85dbcc244b642e9eb5c44027ec9e1a2b853827cc36226ab0023c3a376533da3eea8bc7987f36b69c3629511a8f8b8d78534756d1f569e1bd2ba9ea22c81f30c22c5e2a0df80444692f4fbdfd9a971b3978b16cac40b8d5a36fd08d802ccc55044b69bd577049f2ce331438d13defeae6a5dedb70c02a43d85db8bfa889d921f6aa1e645a87bdfd37bfc8ebac80a37c6ab129161d75267acf44b52f857155f337751f5baeeb351b77b7d302b37964edd7ff5d13a0c236c08c8c6c4808784f98112b25c2734d2cf336f9e8afbab60226bf3b87171d233e7eeb3c835756bf26b319058d59a96ceb843c18f06200e37523268ed6b8c04548b2d0a529e1269993eb8f9f98bbd28f336534343181e69602b13068ece7b00ebb704236b6ae61b688ad33fee01355a61d6e637f15231df1463400b75229b1b73f710429a55e03282db3cadb77d94068c6b0e6a938d4e5effa06057e56368b0f8cd75e66e571366bde349e4740bbb7aba49de606a17b7afc3d966b4ff8af1f19dd7230ff79ff7a524fddf0c6c0dc11a88c968ab78fc0dfe73792b2f4ea43a6f1637547d4aa43f2d757c655b8a5cd7b4661ff296045a21ba185e10493c791e772f549368003b926ea4d39ac4dbf8b9f71682585e1ac3d9da30a239eb9ac86b5b43eaf468b7c8bbef56848585114a98f531a1ea0608b501d12a3725cb1c0f41e8c5664b95907c280467e2d62103f09416a26b26ace31bd72beb4fab5fdadfe842bb977cf4af9cb90065a6789e2b233f6028261af100e798d74c9bb19cd1ccb8c93daa4d6abfe247f31250290926a5a781d9d161ab7bad8213994e1b6b60dfb47cfb7840396be86420e55852d13841f3a59ae2faa0b362e8b81300c039cca0f9ecb52a5c0ce6a32d8a8a368211c5dc8ca9a745685fcc1a64316f517313bcb22eafc020fb3c64f43f8b5e2d34acd91759f012b8e0c72bdf4786566a675dbdf783d38835f8b19e3e2521f4f2cf09a17d8dc53b6d81e9fe92c547e34274c0bf4bfbf3084bd5465319c4d992200b59f0440de05d05bf27b2e77ea628be0dc796cc00005329b522c109ab77b475166ebba06d6002d48e787b616ffea994f2687ab2930a0fad42c83050464988ea40c09da00360897602bbcf6b623ede0ede1487b88106f545dff067c452df7192fa9054a19df2a7ba4fc4eb7d670bb68fc6c73e15778a53c5b27635c21f47854e61fa424dca4ee2d47ec64d4ff63b0fef72680203e56c897c76aaea25722d0f50c17eed2ccfaa18e73821381cb54a3fa470ed9cd800468fab1573db581a570d6bb3b57fc7b03ef7d6708233fa12ad8ec0b4cab8b15dac6e3f7d7ee16d8facb238c3de4653eec58274e0798a3c288eb9b971c366a7e24ec2e0349cda4d21aee509c77435f6d2cd92f09347cbe88e4a7104ec8399981fe53f529b1327f49386c1a9535862967e1753a3fdba4b3b252eda7e5756ab82424d291fe0682dbb351a13f0f5ca863a0857c3224c6d9f3bec600dab07ddd7692f15da99148dd4b8c260df231c4080fa5ba336a9fc7e236174a496b97cfbbed17c1a402aeee60b2ba710dc2dd9fbd27fb6fcd4cbe34576478a7ff66317ffe3c556e35cec13fb42f47222f39aeb922216e06919812606fc7215ba22977da72f728ad0c49e11bcee2790fbc46eb2a2bb4b894e5577dde55b255b9702eef9e56d4b3c4f21e149b308a78e1f20c6f98209226bc72abb5cc8fe411711f3fb5f0acfc70abfb2c281458ecc961f9049c94620ce0c0b11ae59a395421d7245673f9b67a79fd7c8a0df4e012ad51fcd6f9e1c36095108d54c692d933b7313bed36f46afccf1f648557733e653f1b24690bc0125f12cbe15c6907aaff018ab169d3f2e02a5b9e72cb5bd4a45bee1fb9dc57cc7ea782a12c760e23864f9ec8f7961cf562021da5d025f7d3d2da9aefe2aa0c79c2969983db0b260c470f56192085c641eae3dc09c6bd926872e1df6c876a822a9a6f08943ec26a23659d1f58d588fbb7ab41bfb799d0196ccddf742a3c2b1fbc9cdc407446cd4eeebe31a9da3f1bfa72c1da98e34e2c9a623530889cc7efc1b2e2bd214eb73a4d2b49b659421d03e843a3ad9c267174833b8af3b5859d2286d5ef27c68ac19c95d1050bf4979e58346c93f6d71b62e1455748fd998b018f9793e797100f7c8838d5894345048969838dbc54c14aaacf603739bd0e2c75fe454b2ba04ec0dc23b97bf3f658f653a52a692476e16a72be76b0dfb12c2b1ea78cee2d324f3bd98e40f5aec2821189f5c0756a54f29c6d95a9444db027a48af8e258c85d9fab9b4b429377b438f198514709aa3fea0d8f8e23222eeee19c0d9499b5eb8544902d02b82b58d2963c9213253286bb118dc5c1bc36ce89ef4b247ed943bf5920b5d7d693ad80bd539049b43de6507efe1a7f0e83db403f0cccb0a7d3505ea8bbe909ed3535da0a9cd6490f77a91e84700ad31080a4e7b814989eb3099c9eaf25dc3ea0c8bbb3a69a85190373fde629eb337b1ebff4f127181b6e2b61c4e6a877a1b6d3b2bfb8d386f1ea11256132dffd2bf95ea9afb8d27b41ca0455a6286f59982079f939290b3fab3ba77aba6e6097a7b18bfb15334357ea2067fc6ed79468232eb77690cfd11ada649c0644a8be9ca95065550c8563e1d85ac22175e28e15289223db042d55bb85eae0af08b03ddc62142e88cfdc3f794985b90ddf7981a8d7a06234267daad46fabe64b472944f7f1f407372b35033c783931aff8d74566ed5c7f162e7148eb6dd40c6ac036b8121b08b6d5abe57fcd0bd0629f54f88b73d83e92b67754d505d7a73db772e18c09ee340da4fd034c43eaa1b2bffb148606fd2c484a928958a81b0879fa6ef0f2ff36092a6558dc99ee9916c5ab0ed4a43bfdd03a748b1be997f551fc7536328204d884458aa05fa8e8f5e484d833cc783a520264b6712e0354ad3d5fa4d1a1ffc9694320c633a32e378ef32595db91e66c654009ee832d716b98ab6e15e4315bb25b0c8c4f7c1dda1bc9560c52bc952d03fc639f7e2d9c0a8579ec2fb78210ded8de689089bfbec05f6c63ccd0406875af666ccdf425980d0a50f6d4cd6d67052e15b89d07681540b7d5de77276eb88ef430b8a68583e3dc0fca421d551c48904d737f4c628b38f0b74cdb121eded44fda96496d048dde2db89e2badf859b0a2ea04185d51743196a3c8ea2205c3a4d356981e87b9e719fad117d081979c986536b3f0f047daaf4502498f5d4911658dd20d2ca3971db67ea6c11517be40ef42bd8caf8a63949247d5f3e97d4e1bdbfafd7f85edbe0b57186f197cc085cf23209de71b9ddd4bf341b9dddacc80ea1024c10ef151adca0b8d939ff2656e43780d0e6a95f613ac3b0b3cccf0b209e234137cb6239ce6d1d7bd4fb9501e5beb0018320510da31443a927e4d5bd91ff4bc46c988464750a49bd43e26f704e77853d564738783adc3c34bdb8b0826f325f747e1ae307099819c6259abd7d3d7b93a25c6a7569a4f6feeb3b3df24bc8d20b5f459d5ae5242a79a00e8624a439c796febd6c0e3f517ef06a19b728c15ab89b3722a291957dacc59b9cc97e5541729f078045e06a038e2bd3b5bc65bd57919ed4cd83f503a7f5c5c9fc9e10753422c2d3de3f86f17d29594ba80ecbcef422a3adb993acef2afc1a827f282cdd0eb3096035be6aed821d477b1b9e37b6ce19e06300537d6cef2791e23c3071daf29a6f0d7641190c2271a10f3a5267ed1b942037e6a83c62edf97a46c98752ac03d5071f33b75f0f5742123aab5ed81dafcfe38fe938ef0d37846bd3f9f94e07105d9c3e3750cb4cf827cc311f3d91a4c9a56275633a6c7d4e6c3cefb80058940c86abf5ad61932cf5722cabeb9b7215bebe1817b873fa14cc7148c6eab034715eb51b35dc1213aee4e8b368b8d318b762a78248173b120b55b328c6618e4badf54cfed268d988e3e3d10da73bb670045432fdfecc9e29ede12b1023e33922cd37ce6a043506f170c4733ead06c80b2c07cf15d221173219552216543b2b0e4aba7fd2e8c4e4760f8b545b456237f08facc02683cb63394461855d9462e90511cd1f2cfd372f260e3ede603b3b221947e25ecd73ed7671f5bf6d0c62b1723e01d56dfea8d1d83cce033ed2e01efd1b9c36caa328a98fbd08b840740125c7447076949fb01171bb459198d189472d708d7abeaacd3ee6c42cf42ca0f9b3c68fa78fbef6c25ca1987de8ed4710b927a64ee46cfbaebd8b7565a9fbbc94b2d51a610361acee34874a12674685516da773c40188acbf445fd48a0d70726247f975505303fd2802ed2eb824037bae90ccda0b7beb5016d33af1c81daf53b5ef5ddc980a9151c86aa3b9b3a16b538cce36daf1a489196da8b9d81db5690126147a4e52f87d570a3c7d365ec5d2b2d4ad6c0478e3886fa1353a67ddf2c2750ead3e610b3a47928fe2af5aa52ced5f73fd211557dcbace359dfdf231f12c370ef7077042161b47db729ad78ac8326ada502f1b7a79d7c3d0c386dd93cbb5dc87374023eda6b132d541359fa3cc65267e8c4c167ebb2535baf09a3e54f57e632391e6c9f553a0b0490dac909aed98825982e0f7365c7c8763fe850517e058524ae86bd8b51db2da69b4e4d1acef4e44679e77ce2941c4c4dd1a841f53f2bc8daed797fb7fb70eae4880f4302b858dbc2aa3b38311be66a45d18736cd4cd9f0bc0b4679217723a735efcc586fc7cfd5e2776c6fc5da75139be4d2d8d3ae6d54b38a4190e36f6387d075f713a1a41727267fcc99db0347b14fd0630e17867049791bed5ab08cf5cd3038209b311a572c2f706872860b30fdebe856f5b566c588b8a44a737aec48d80f86adfbb83049dd2684f7daff708b3c2c6917a30f0847e6ba6e3b70cbd061012eb637e9da7b100964f843edeb60580957f994fc2368d94f9ad0aff52be261647cba3e2f3c5b3c615c6656e280d87af32776285986ad30f65294ed78eace2a711e686ac18bbd5c3c3eaf1f988246a1182e149a9a5a48ed1f7eadc2bf379bfa7d07257524e7b04ce6e5ba1575b564ec1731215f59451a5e3bb8204308b8973011a06a692b78bfdeeefbfb3e280b027c1740552be5db0c39748cac5d23c34214b831e32a98c834dceb03e8ca37476a16324d84741e454c202435b7960d9486163969a6208ee929eec1c071e17289f50b0864d77a901a55c0ee3168404ee861dd6863f4e992afa568ae8ca68c78354b62b8b4aab79e75e379bfb9d1b1dca213b124c3454c44d908753d93d05c72e7512ad825999b57410376d99d71a933d4215ba7b8744c44f3d2a2b6698c161d014062c0a28126fbd9e26dc4970e6a7e586c7989ea61806517fb0af14184e9457f705b0030ac298b7c0ad827f5661eb7a7e4806c2e63b97dfe8e152f47ff91cf41a9dcb71758140ba809765583df14b772d54c4b60064e4639e0a1ff8927d37552b7f4d6d8235933ebf684d3e1c9372978e269ec58ff94a78da7983399adb55720d6b11f871404c1cb1464c77aeffdc2e0c0655a193103f1d6950c25fe448689a55dd1a232282724d5d2daac1f2df6702089ea304f0f007722e9fd980412b86c6d09263d99ce8841f1e76b183ac113b61572962baf02e55d89ed501d287250a35fbda07a48990789a24ae15ede2fb4980c16c15c5bd532e2f42801b670d34732289babae7b8752ad0f4bceea45ff3d9b0838172fae815ff1f3957a61133d99c0de1ddab6e9bb326b9e45a824433afc0e6ce6fa1aee521c24eb39c1b29d85920559e5b498dc755e73da0d755ec30cd4c27469948fa8c728c9c77cbc5a7e209f1230d4787d376b8ec0da83042b66f660ae683f3aabd9a39fb915e956f90baa88593b2129707087951f0cf7784a4cab3d508931263c22e584675d5318402cdcd20a2c3c2381a7df6bb4bbd8904f35fc2ed48760385444c67f9855ffc7abb0c650a1cabef0fe0fd61cfbd6e144c5d1338f9eaa1f630bb5d5095561163a8056c3bccde8998a69e505f7ebcb2ede7000c282f547cbae0efad759c421525ce3d679bc3edafc507e76635e165abb92d0136f715d7e405fa52ec6acb8d27e1042a7af999a723fb1bcbd18e71d551e19ff6c0508a2ea9926f03ae3d80cf1bf4d855a5b0760c217b313646cacd8ff1d869819c2a008211087b2eeb4d92eb55a7b488eecefb6c96585a1420db65d8aab6ae0b02da2f7a54b5b9437fb61c004faff134def15f0aa7598affddb9b30eef18a4e5ed37a1e11d1c36f9ab45fd5d16fa2b6f0233372828aa9e5c9f64e182085db36a9cd5c6880f4b284292050ad8cecdaf966b24bdd0265eb92dab6ffe8b90251bcc13419ba93e08772abd543f732a371d592fddb1145ec49a62ed25270cf830cb729859f2d2b2cb4300988e68c8f4c79a24e6151ce0c388e21a73393ff9038074a736b4f077e8890b54f34305368ba5316d2d558295fca66221ee0322f348cc07553d105b9c504e261f81036d5760e72c63262c6d81e32ceee234576a6ab44e1c47c0dbafbad0a5afcf5cb27314784596d9f68244e007cd4d46c0dd335d05d6f83a15c83ced3fd921107f741003ed162a2546f5d9a02b414416300b7839502d3977596ea297ebf72de04b25c9c26da05cadc33e3246c57ccc21c69ce8067bd24963e903784a14b29afb0360e46fb9b24ac29fb75f4b80affbd1e8a96994c3fc33c5ea1e015f6e03349b4f18a44a2799af0b0de17f34ba1731b8a1448d0738f373e1c38a27d5a3ad1553bdc20a3521583a8ec8012e0806a57d821daab2d63cb3d3b59e2c2b52cf82da303b0dedb7a43bdcd58dd2fc44ac6a6dd73103abe808e783edeaf7b9ba02807a439f2752d6c2b5ea4c9c3ac98624e29cd5d0b4054f272cedf9dbf261c7c2b7e1651f9c6414208d2e293b1cf8f79ffdc356974066d2f9a9f3f0e94a8f1e860c8a7cd9b775bd795b3aa13331f15a7e0a21a142b5855232f8a66e4d7988f33cbba1554c83d5a2195ca24d51f768f0d8636de534afc1cd585598bd87771ae6c3b58802dd4a8143628aefb2e6ac4bbff9f4c5c2f4e85abe482d51f6db03e7e272cdaed054b7ea8a4b1068f2485d5bcbdd8b310daa5bc55db1efa39bcef5861090ad1cff5c76591bdb0407894ffdd297b9fbae3ea6efab489736d176aea2f269d9a531ed0673a966b37a3dd5d897a0eb730ff54ddabc89f0d23cbb1b0852e282004560c6469e67ae82de56d5468a082d254c4e215bdbfa418ca4a18a30c2181727c3f39d75478f628ea59a31fcd0c3d29e833a77e4c326e9c78d1fdabcbcc971683c2885cd046a3c324c852ee463eb58e036c0e95240e6a7d5fc65b109bb8e6e50bb1f65f02b54e15aa4b294eba242e0a3c897a429ec8643de90ec9fb59a9bd15e137e4d62da67cf087453f582d2b21ed17f9a810d454eaa5d8a120d236225f9898bb5770a8e50d4d36348f31fa80990085a1f824a4b1e13a3216a8ffa142d76b7584e76b54dc954633d3c62bae64ce61bae2f074eb2dd03532da8f8a69820ef47e8b2e693618739f679571e500b3591919ebdbd29a1855de4187248d6a803cb88fa4a83b89b936cde2067786409a1d4255c46ef1403f7c6232b8405fcdb12883f8defa29c30547001f690f37917154e44388acae767f911ae1cea31d0b7124d2596010a9c1fc9bf58f8eeda998b96f992874443a074058079fe432ccdd5bc38678dad70772bbd557030ace6d1c776be65540d5be3e3bc1e4d705155b317fd2e25c82549d162edeeecce7cc1b236df4c48e1ce00751632ce44273d3e03ecf067f3a2dd1fb3386959009b8bc0d257309d7afb7837c03361e54fc4627986a2dad05a7c0f67092dad69f8b0368949dc85b26d1ddcdf53da7cd3b0fa88e4c7d07a63587f179e23053afcaf9035b135d3f1594761d6545f60f08e8006ca6894c681f4dc3d6d8c3494aac0187c029f36e6408064433c043aa4391d2a73a4b981120b9e4b1b46b7d6138a69b925a111f2a55960d1342752e06cfc00ee31ee91641655d7fe862a50850c6d422baf1cc092e6883cd3fd935f6d5af1e55f00a44adaab267fc106089a1fce0e1c9cf75672432c4d8d5ff07ac0a4669274e61ecf6cc1d8949a56118a296a7875f44c3a03ceb72773909feacbc86bf5a6d13c57fb0cbc931a4ef0b8c3748e935ebf13fde5d3a14295eb7329f8da4d7511f0f452f753b39834a3b92574dd97387639da4eb4b23d3c50a5edeaf30df78f8085ef41d995504df3004ce06fc0f4c91abf1d562c26c5d5be10d4e0d993bbeae524e5d081bd82b534da3becf81bfb3bafb5702f4112fd8e0e6722739a851077d4bbe36f17a0fe7778f88ab20f0e63edbd34f71b746ba8723fb386d2601b0f532872c7e83301b9f27ff632bc06c3c80f6e42ecffb4c610f36064e3da97e4f8399ab5c645bead6f5f2cf29f3ce36b2aa00d251c31641c82d6dd52cfc5b845ab84200de707ab1820084d39336c547b6eefb1016a954f63cf33a94515ad4d5d30ba3f2a86ad1c528d8b4fb9c1b24bb7dcba303e4b11c5a9cd7e5e0c33ddd1742fb0ac90d2889e06bf31044612a27fa49fd4f3e24946143cd4a4a613ddf7594d783be2164ee673718150e85f63c06370485c698781a11939423974f178e62deb7d708c74548335d2e1bfa8fee5225fc54c87122a24baacaef7b1e8c6a09cbefed373eb0d8d543703b35ece083cd84be481f972b3f9ff0bf9dab3f47da2aaa1acb5da8f2d7a9c70430ea7c68d012389f5a5ad62c9d9b99fa9526f05d902a07c41819b12e8ef51e023cc52ba8b40842ac3d76d84063254aeaacd0c5103f73d0a52388eaaf792d6a7cd0e10e406fb950df51cdce29f85ffdbae3c2994d0ea79a3e2027dc1f760fd5583b745597ca4b5e076db0af600e99e8f3c95625223fb4ff674a8c4ea8a29611c55ece77646a77e64e761a593ec850697ce50f4eb007c65d4451985dd1f0f0be97c9a5c645dde1472cf5ea88b3f198aa494eb631ab3747b4398e561543c0b699ebcf06f5efa1b3f90e667aaf38776db7f57663da6f61db139a6c5d2f46e6894e365e058bc08a25121da72b46242013904e6c8df679f6696afb21104a04b46e84668a3cde0fbabe873e35caa9fb435ec45399859e549710ef2c34847cf1f18e8acdf32288995e47240f86643840b1e18792f64551fab16025ec08c13de5e26764522cd9a2c64ee8b5d88b4921698ded773563e165fcf5fe2ef02239663200c5a813a78745d45dc26b58acd1f1bc62bade5bf398417210afb5000f7d2fd6c3917c20e79755e04b788c4121e8fa1accf3e9e42f0482b610a954c40175530807113be35dc335e41fc1231c777da4de727677ddd00fc29d206e9d6c2346f38984c0dd39bef8f0a2a1bde3b598c1960bda592e6298a5f56b8d9e10fe3250cf966b5e2c0aac6386e30fa231e8c75dabc794e6ed1ecb2ac87f810afebed630f60b96ba7869ab8404ad9717a98722e0a783d3de6d1de22f037106f276bed8e45e774830b5cefe0c15defccdd3e48186da4841e74b1b4877651d96cfb8d9ce6e4129de41101ee9d924de54c8b4bb376a7690bb4bd734b13498d8cb2b76813d29d0fadc916defc120a1ef4a6ab024bf1d5a2bf5383e09bfab9743da097087e5d3bd2334326ae7da7d4709082cdf0f515b687f166deecc2f500589bc8270f1cb4d35a4bb5a2ada886d8f824fd2f8e12d15e2204eacf9dfdc2e7cb1a70b82fdaa988fd35563b87571e2ad69c28dd1064fb889374f11e3ef0a18680cb14a0f81133d8d226b232797ba410cc2c8694776cca67672d218701f2d9108306e24d925fec7cb1fc2af56c2f8d1a83f6928517345a117dc133376f5f31b13cd13c2c5e0891de53816ffffaf31642499537da367e2c774258749f2d277776c0493a539f2086128b900b1595a8bc21026056117e11a3ee46cb469009defd4f3ab1250b97794f6ca165d8c65042c438393043294a0a874966b3a0a852a8161a91b1fd1ebf64189e4e2f86490c16b43f88ca489a2924867e0eea8a14e72f9eba8d4bf5fe0b842f69dff41a9ce7c8d88cc39821210e87aee16151a39b88af6f4d1973f1b2603284de72c969fe4b9fbe889e427f59fdebf5ec378c9bff54d5ed6064bf0f9d9e8a2f2f6f44a1b7fbefba32bad585284adcb1983eadb9aa7bdf7b4209bd1b0cfbb6ea0c9038c12ce4f563b54f9a4ef7a0652044beca55ae8adf045b7b60199e84fd939a30ad1c47ac18140be96565bd70dce22dc2d25f11ed81739b55cfbf7202f2acecb22fdb2a39096cb2d9394bdb7a2d7a7ca7f1d76e74103af95937f82d9750db1927ad773da3bcce72693ff4c493ced0d6545b52e407a8cffa33b262cad1476adb9326437c5565e230e3bf4a7cde95b18c9c4d7c50d2c22b545045d13b1664c8bd82bce022510712d3f98aa9db0c9e4e4f8bb090e1894949935be5cae187e106e1b1c0c6a1cf290e36355a61b06ee5b979a5cfe2f3aa57addc390509cadfe45a490db7c2e4bc754931592438a5d9846be954455640c0bfdab789a0fbc2d8fe9fbf517172e9c3c579abf8ffe5fcb332c1660958e55a1226dbeb03e2443e1b69d441fbbacba5e7491abfa628961cac457a9dcdb61f815839bb6b4a7e3b03d39e9903615d943ee2e5ecee77f66be6e6913ba552b9a4b8442a0d53f89b69b1584eb5fe209ee88dc4de716ac51bf8e3ae4a0b1ab405aa3d050465f204aa0e13992492133dbcb8f98f4170626449c740ee89d7c476c47b4115f1dcebcbd59c3f249ebfb98b5a479ac429756dc36dd494fd3defd38359f3f8f6c8905f4cea3a8e0edd6d405e38acb01d344efc9f1f0f7f910587a322ef06fbb07c2128714242580d7ef39e7e13536df6f68fde4569de0fd1f0371633fe38ef281936277420c38b798a4bd5e6107c06114f0fd78a159803df357c7d2a65238cb51ff6a1ae2cff0d22f092dcd393bb1ebaac6940f8d30bcd5fa63412958df5e581e68fad6816eeed175b8b2716fd767b82527cc1d405f66fc61a26fd1d96ef0c9c8bb3ab7951ba66dee81db3c1666a0b09a4ec1100ca902b721778ef5f75e7fbc8c616d7cbb341b2a8efd1a69f12273d8f389eced2e9fff4e6a6374b0090c6d6778ff1df144696ab8fff558503ec8fa55162405e749de2c1aac3d3dbd64a0b796e1d829855f38141e956fbece52f5bf6de40bfe558bac8a291b39f1e24b8475409448ab1f2e2fab82b3e3ae866089644e741ce4cd9c2b7ad8265551b189d9f9e2889cd867831b1bf06232cce19ab209f3d296652177aa6b8ff3991cc2bb34dd124a296fb5b6c894e9cd50fb3bc532cf5055640b19f1302e4f99d51180f371f77643230674aad195c03fec5683d47c24c49005d547cd22df5bc867b582d8df74a6dc06e91da712a5f7ebb530f2ee53e496a977f9ba8effa80fb2c57730a0249a68ad724bfb0543ca10f6265350bb0cf01343fadaf19ec33e6455c1184fa72a03f6335abce679d00615576c988f51ef9277da6b3e7cc061318764b3913f6f9193918b46164d134dfc4d75aef16c1fd137e99179f3c8e6bcc38da3942df8c8de67ec75a27275feb729d329d701d7c1aca9d13b045ce68d3030428fc063539e4cc758b9fe10cc72707f8c474846acf019c0e6922bc77f3bb4f09833b40d895d0a5f9516ffab634042381d0cf8a4dda955eacc241df73eb0ebdb61f68107c38badfab2401ddde9998fbb6323f84176c5db75de3dcce11cf0f4f334d487bcb32cdfc91bcd37dd2efb0f9eb212c982bbd83a21ac71a6a796aa97809f09be9017cf810047b75ce007c763d199806909f09a3f042aca0dc7f88c1a2a1b783a513c5d946eb21e0499669a3198155865b6caf9ec44481460e8c390da88c983a616679435b50e5426c294ab09421a5ab8a2eb2031593f003308b62fc5c9e5537af19ee1f213ab00e38774f0be8f64ce8d376c6a02fec840d35f585b702d821fb89df0113fedbb6f9b12f50d1050e54bc92aa464932f09fce53e1f8d6d322a5a9c964af616a14b07862d2e9b00c67881d4374b30092073d8a872af66e7cdaed05b2495455753b50ddd69a5198d4a7ee3309c4a11e9599baf10fa441489c27199765aaae863e41dfe2207da68e689e85502b603855d89223eeee5d4da1492abc866d37d33a7d1c04f35432d6a18693078791059fe6cb3bb32d6bf912a08cf4574234de9d42fa881fd60b556722226d93fe4b1801c0305f8dc4920d13b1e05462088b015f9b1316d0d3e38dba7ee1a067e00ae405a3a0c0e454b19b2c6cb770ad502642c7653a857981fdcf94ef9ff618c7a56ce00006e309c0dc933e3cf52e386f1ed753a67578e99d7ea504d0e91aefb396ce58ac211f1c576b69c5f27372b1e76d76bda8dd7073620e8cf4ea840151db7b2f7112070a57df77b7e6a47d2438a775cd2bce1f1d1ea35c61fc40e4176b0c953e883b9d2b368360f59cab540f22c17a892f04fef7bbf097df43c9b54779134c451b711f05e9f6493bf564ad88d35a23f0c420cf3609b1f629887856c95e39a9c789069e67d1ab9a16916031ecf129fd07e1e5fb0729ca3269966959c675eedab47c6d7d1a06ec7e6edef5fbe57a47f8504b7d80211c100778cd5a05ccc0c1b127d370f4d1131c6378b7de1d8d8a21e80cc6d3719f0a1cb79f78d4d40de80026b7362b8d75762e7cbc5c551b4eda040518c75872327b9686641534f577acc0d156b910aab68489422afb606ea5420e6b51434e3c9ed1463f62d688cb91ba9870c71e2dfdf6c73def3c307002aac9539b934e021f88ae6bad38f5a56c3007116797b38a0d7ffa6f01303e1db86708bcf83c92027b950af92388a50f22f91f9a3bb3d38fb8042647bd43e2fbe509f1494b48dc9746da265af5fdba6feeb319ed16868203ab819c84aa11ff9cd1d53f9a40f5489e8997ac3efc70540f006e06db47aab653ec59c52812f18c8839f520efe700c91ce34996cb170e1e6b406c1de7bf293baa51d2f82c846b82cace10d56d336e06d50408bc41a494fc57c9edfe81944e485706d7e36755c1a6d3b4ba5e217edee96233311dcd0ba3335668bebd5f8103361b0b122e271a7e80db04a982ec037a4269c96b41b9331359a12199982d64c4e9e2b4515ce62f1dd2a44ac0a4d4636852b7b4f34ab80b67a743aa5a8ddfc01ee29c273f29d033be568207ee4bf621d94149f5389443034581f3ef0330e939c201e7e164ce648ae9b0bd30d35603269cba8322cef25d900438ca8c8c6ff81a217c773285f7b4da64bd0ead3e2b623d4a2e11e5a6f928ab4a67f356853234d2a0854dbc405a1e8e17bca5db776ae498fd88557aa6d4cf53b6774cd38af593725aa9e8f80c2c5c56ff00670b59f492499a5283357e9743069d1a8cbc87d5a0316be6ffb17af00aa5341f5b003a433ccaa680fbfadb19264cd7d0f182c7afd3e8d4f67386cc597432ffbf0275aa6a4976b47ac7c3e8ba092d9dceadc7d841cf97ee61826cdd359577fa973195fc42dd0d5813ab1e17a6ddb572ce29e13f73e8de643c912b57a1d4354a2c50819f8b6834b27782ac4173f77724a51b5af932ca84cab745dc38fbd0eede5968ce490eadf387575ea4193cac07d4a8d272cc9285f4b8e3f971ad52fc6acad02c04f40ca135ebc7164de580d47f143d819b6d0a0abb8042102d32497f33a4f53f20a384c34b73a2db878e76e7fb16165cfc700cd50c6a1316280da3fe18feda5a12030f396905639f430198931de70449f00c57a33c85741fcc13006daee8449940d16c78282dc61706da94db89b75e7f84acaa11460bbe4a5bc17607ca87e81b021703650305aa756b64f7c76a3e51ecfc51d065474eb9e2669d0bf908b759662434d574daaef3e39ee91bafec21b6654ec9192c033a952957f23ee647be585a67b9c5e6715c7b53e14e53eebf7437b6a5aac5f05f64ba70e8d32acf2b167276ff12281df2e740180a044bb09b42d755df2cf11fe5ade0c3aa75eb4b9a3c220a1603ede767fc6a6203421406b62c2c3210c801024372081880d14b244099ef6548ecf3e841ced2ab499964294f16e541fda7b0ddcc4839a1219ef0a80b722caa25ec4a44d4631ec96ed0e93727e165bfa2ee2184f55428ac99957b01afef52bbb3c5677dd86dab6b9812cb18033a8fceadc6b1eed926281bc80b61d822322d0fe99ba3b9eaafcc87ff6db1862b75030200466121b62b0470e1d4696a21753b7a357c839f09f91b4172a2f169ee7a7aac32200d386eaea91eed7b1b05aa440ae1f7b897b119ace2b4d33fb1c71cc4f62a0f29d85f0768c0be46c9806c80c16ab50414fc5263d8da389714218c8a66ed5c14a773812ba094941c990c76abf5be7324b9c29a13e2ca6a47ec265f9231b34ff4752f8ca9ddf4d3f3019163f538cce89308d4bab9babdbb019e108490dac0ba15f9fba4f226e5f123cb842e6da5c5e484310d06c9a9d9f7f76a2a7e6639a04a14dec7f79cd2495457331101e89b8024999ca7901ba517aaefac52d5f99494e03dafe38ce3e7ebb00f07a28f7b5805a66d2633fd6b395d21c1d4e4deb1ff4fdd1336554f230f79771e07f2e20297ed510a2aad47da02bb4addb895e0fdc34745cead44645f1261b42c9fcd679d4743df735b7e476bb5d18ac2331b3ccde0790dd8c5ed0ebdedb2f434ec05c72d53d11b1c72693087b59f3e8812b9931696b5274f74be9f08705bd507134e1ddc6f184f6ca3b4917940399257530d015201b9f587988d582d6b6712c8e6fca792055a4242ed1732f3242deaedb3b588fdc9b5a2856d13c3be742b1d6fdfece080226b946d303aae880b98321d90a8ee19de0e8384cc0db27236737a4660f450997f4164331bc7ee2f4f28054a105bf0ab3e6102743fba08a34e1a6c6e4eb01514956c09cbe36762c66594bdf0a70eb33bdc29d876e38f6fcec0b0b35bf79a34ecbeec85e3d228678dd845421ce4dfe558839a33611b635017f60c8e5447a95a60711a991a9e1576a7cc3a7def8970b012d96f4f41125dcfc24ded61f44fe894737d8fdf879216739d1b603f1e0547087e67da66d20d71f9bb3d0bfeac1ed5e36d654438308f58fadafbe58e75263d7036bacc540991390c0f0342ad3ee3684858c153bb94cfc9a32f39512f4f329876d68a403f8c4e678e71e2aad94366130f83b315eb228675fc51fd4a88203fa47f80fd449035eb2bebb6f8d071a7cf1daa036d856cbf46c864562871eeece3ec8b59ede72692904a66599b5ec528bd2f622dc222804541071a3c39a9b7cd366db20a494c1a684fb889f848e618daa8f0801ecfc1a8fe4b847062c6b772701b51f8407f7fa12c52f6a0d529a9c2a59fff5e33acfa692dbe58ab0d861e1098e121092cfbdfb288df8f7155207d3cc547bbeb91322bcc851ab1ede5e682c89a33781303b126b6dc2c6623846934394a3794da9ed03c60b089f37875381f13e0548db77fba6534bb00b43690cd2876969ae39e866ea0d1c9244bcaae63000d67b045865c038ec96a25f3784a60ccb3e22a80c4b76232b1e20f62316433124840b78e08dc054ebb64ab0d25a8d161fab8748b006576f8077f645429d02c3c17120f2aa844975b81d8fb84be454e3e127a6e318b07faeb6c19ec25140cf810139610401c5cc47a3b29bb78c2e0ef36e1da5e54f0d8e941cd9daa44f89a58d2c01a96532df3bdd3896d7bb7fcd9bd1b3160135f8a5722e3d2ea38e286deb5cbfbff1971bd59d5697cef3e432ab73d623de866b747c7a406d957ef2d019f3345ff3b25b302e488c556aecaf395a493614821188b30b0eb1fab2ae0b9898a5a91b5d80d76cb6ba023b5dbc82087ef32c2620ff0f05f5c4f93de21a2940eaf50f73e7305d574ce59bb385fbb7dad891e0382893898c85a7ae273edeae13f02a27b79be774af56ca5ed4052be913089b936fdbb82802affed4290b3f9fbf5db98c9b0feb88dfeaa726f5f851a75aca8275989a6bd7314e096d08c89d167017626bf838d0408c3730cc125faa7be30c63de2d89b9c3ca95a71ce4cff43269e745b5d7b59cb7a5cb38584a26600cb4963027514c44dd3250a3ea7c893cb2bab59701fc56352b12adb358565b681c73726bece7c9b80fad25546a0ff3b3609560c5efa0042a157c26045822986202bba5a9c57a871bc0622e130700ee01f0f22590687199dc0502d3c4a0e53ab0a87416cdbf6f8e806ca311ae62bfddd3c761172ec18abb548264f6cf4154cab19d9ec6e8d0c1979daddddae843bf38474563e6a7dc394d83f6b3970cadf634015ca7297e8b288f06cc5c7116649e499cb7660b9e88fecef482c1dcef59643d9c581fac127a986eb45a27efa325d75d51e4094bb8865b6f121c74f8e1fb33719d7faf2eafa89ea5e257507e40795cd64ad5c3630db666b6d72c38abf5ccf86568a002bb3872fd8113a258d8ea92e426773cecebe09c59505ea8627f12ac2ce1b3940c7e4f9668e20a8c7ec7cc9d251735486d56a024c83edaefe98ba7c08e9a6a71837e6a355f57b5fe127735a542f1116c69123202957701c98ce32d6d5276b2711f447af31fb64429d8301f555303c2ad7743763ae916bd1227d76795bd58f8922ab3a5d3040f39b3041f34b87d0e649e017dc39147bd00e768328a318bf6de13b6a14d7cb0c95e6e768dcb06c9e73dfe373a9d87bbc2566f3c1edd6453f1517ad8fd08ec20f89e2951695a8e2523b4131021a23b4d803b840c5ee3bada6c84961848c2f72eb62fc5e13b78fcf880dbcd2320f2483249782d395580982217e0213bd0a1e702c88031b4e234fb506a76dc20d4d167654238027d7dc0209326036e419308981ddb630c7f07b2015503fefefe2fbfc79b47e95ba222f0524a44d19047f880a558f7d7cc266a662d740fdcf60a427ccbea3901028348ba2126d59c04c6cc1d69f54c045cea4507e29c97edff5e43f21a7fdd836fd0c2ccff9424a94026d2c7e80e536480d6967da837c53489f7d988bc6aee62321b0d59d04d81a941f74403d49d7ece27af69fe0c98a807a098aeb6430d3e0f7e975480c308d7867d49c16dd1398c0ae9404ef11b6e6fde50cc5d339996101563943d1df132146412952ed23c1a7e7643039122b04d138856a4c50c20c9516333a1fbc913a571c92e893a7d5455a6715b88707590bbc91379f7a466a3afdfff399bcda4bdad4c48a3dea4b4467499ead463e927dba7fddebd7d4ff699a5b34dc568c01f50078bc6eb09c8170497eb9ce5e5eb8832822e49a5002a56eed393dcc7dd9894d853eb7b66aec19ba70453ef4351c47c42a0de311a861c9d2d8743950713ecf1b4f6a1c03ed648420199283eacd044c7aa3650b8df217df66a1cb58fe937db568c8f085dea0d1591305d0349556589a477a5d00229564bfc946e46125706820cc896b4250f009d2d22505d105929b4ac970c55afa339c265181192dcbb60979c993b0d43ecd904c60bf2e2de23440353c45d8275e3d6c338264d62afbafb72d3ca7f072a2d2f7cbfee9d7f01a7d897c31d534678edbefea19a839d964f60d2dd48eba878769117343930116f2787f015332418f6f57aeb4a5d9384f4a980e6fa26b8a32e19b4010b660966f51b8d8eb37dbbc070436d2ddabf881b8bef7d36bb5569cc42b7fa08f0116cf1d71623f26498a1cacb69ac715643fe8d034044e9ec5e99146df605083b4601e18cee93be0b54c664f75b8f7f0ff193f685da77e0af2801af0b11eeda1912b75ad70d85c0e78d3a8339b5b8666838e24e7557f8ab48c4736b3aa54234470dbf2fb826ee8e56830d593abd6cd532d9762c62640bc25f761dcb0034b51e9ac175f75370d82616571b61adcdbd4f86f313d1392564aea8ec6c4bfdccd62b429001d63ffa7b2c182cbfe696f0d2178792339ef31a64714aa97d6e9bd586ceadef2a16011b630085348e694df4e185c4cbaa510e77ca9b9a31044eee93f0e75fb42dcdd3f5e197e3927a3a5d8209a1068027a409715b671f857adc080c153639583609d1fd7092ecf64181803929964013de4db3b4480d972c8bb0672289567ea47a6377e352d66571a735d9e8e470bcb93405540254e146883879a3f6bdf57307b17982823e03944a7135aeb98cc1f4e4d0ab230eae945045ec10c90f086acf5b1377e01388100cbd60be66634a89bd203c10cb81de516a77b0b1c9163d6051217b3fd67ef61d58873af4fd48d8be0d7a0a911eff8c734502723432ac23da426d6b6feed73911637fb30d5172aec311d1fc983faa3ffd01bbe7e2bff0e01efae258fbb5ebb67e86f64082ce1a59a363a5575b6f97b1f1fcfbcca33425129f0a052294515ad4cb28228eefe25d0607dc74a5e1545b8b2db744241ec56cc65d69d6fc2fea24c349d580389676ca909f416da009dfc086dc1099a2f9e44999e72b289bd1fc622ae1b691b8977e5113d717ca0095fe6080211399d1dc4f80b35bba7845633b05e335dbe83cfb45730482a267f4d039d9c4c112902f38b598e514ae300a99a9c6994db094a6d95d9db423d852ea3400e99b88a57e6265828db29dfd7ec4c08b7e603d1c882b9085c92012946a61765494b124986287e3fb4c2ddda05a49c03525942bc78057aed04c6ea53d95badd49dbbf8a0b7631d8c5ce363c28bbd92686debdae0dbca1e98598b15838b99148109c630e23a9dbb3ee3ff02c246ec0fe68c0e37c54d1f5c5339f20e642e709177f76100eac8f792878fddff2783924381def08bb6271b04d9a7934207510592534eb38a95b0fd444d20d47ae33cebe311b1004a413513dcdd671e4a6008404ec7cebede43135448ac8e79f30df0eadcc03af8c3b938f34e8165ec56c847162818c2db0b5a31e99d72a0138c5ff9391f90af2b38b77fb449dff0ea7f79c9fc69a1f83c18c3c6ef7ba24ab9f1b786ea42d3a713449587624384c85ffd15873b6f4e182b276b773955f2e34dc19617ccc3b1d64d0ff2b15f6ef0f3544320c22838223bca75c34bc2234c27c05ca48d7eb7a5108e283109dc54176eb57a819c8ceab1dd8416413d7f25510637672acda6ff00a23924f914b0aee39f64100541afc4a61d767cddd2c14ad14b168a96ede62465f5a689b6be0d13afaadaf0dc9bd3973f486df995cdc26d540e05b8fbf97b394b8a3b811746b944cd820f8e1aa320f5ccb8644ae9e4250b94f25fde8e41a35c7f3be2028e45bc3b02dabefc372f3bd63307862f5f93889b013ec1d82a3829ba9fd593f9d3c6c4bb05da4e4d906312b16f8615d600f36dde3cb98885cde6c32b9ffdebed6167a23a03afe3c3e4a6a0940c13df8bd9a9195f9c628d0d19ec1af44867044ff88c93161ee269bad72ba322ad31fecc7ce62b3cacf062ccd40c9f65b45b105e19aa54a0e983a1c672098af8877d1b3e7c6c10c3aa24ddc9685493a9d48f72168d922349ed267435a1e32260e366798ef4b092c00aedba6063c5e945ea4a4729dfdf285928aa1f0cb423c0eea0416a8e01072980f257a381f899d5720fdd9c48dd65f9ee89d3ff86dec0de0faea3090043dcc853bb55defc7d1435cbae65d48b1bb721ad75ba007db9988c56941353c960055626764b7360ebdf346507eae4ab6fb9ed6645020426c15711d7ea06f037821aff0a657597436100cfeaadbb7a33764ade51c6e4c281d4f19bb8e03057f8d4e318f47d19964ba25307dc082f2d840ef47ebdb70cf703b8aaf6a4b620173b08d64abceb899cd192a107bfd4a144bfdab08d174e40d43995ae83ba42306644d49e1e758cf713d4bc3c7da4a1d1ca35c1c0a60eb4db1cd4773a042b6dc2514b70c1447e731473c9cf32da105182df006f8de6f9841b5be0cd54ecbfb6d1261f194320416786b1fd1c0d5c0d9c748bc8d39e334850370903ed154513adceed8292676b8c6229c75e1a21fadd8fac8b8c9f9f229e1c4cb2338e805f6a79ce13909e7d07741322e1ffe3709d9b0808cf77cc71a675e11656d34cead9c553099bba87bb49495dc03626b41b44bc3c25a0641353fe860b7f99f427f4b9e809a96c429a2b57b8d631a865715ef2643299b5bc741194fefcf08d5404139dce7ce7a5f6a9a861574904912e1e24933b4676a2cdb34fbc87878819d22ba84147227dfa3087ead7fc3478783167262a51a722617fd6d98a80750b4a29c7a9ea33845f86d890a2da014ba38928199ef9a6d87ef297a9092d3f03b41c5769db5f31c1cfa80c1ea8882ef362fde9a7837dc3325c4b5c3a3b7c2d62cb845186968c4f0ab9c2d11535f46dc71ee021a65f5ec661430a6c5d51baa33614bbaef422ffd5245ff2ba5832d38f175bddb451abbd6ce38aaf2a284aaad71805206e719fcafae95c261551943c4e641bfb9805c17d818dbd51e678e376e914d33a541c7a8ddfc7f221896dc70486e6146fe4c65c6747055108316b4f19142c4c9f32fa789e1e3fa54c839e2c8b1006b1f7edb9ac4e8548ac868fe4f8314bd381c4037252a2b0672b67f1d7a50af6e4df629da8f199fe267ea1b40b58851c724316fad1d50bf969ad7f0f9432bfbfd2ba2c7681afcb4cc163b8fecad68e7fe668cb80c7a348560253bf0e4f9c7289d6f65f79d76df24012df3dd151c5db5900ed4ab4e9769ca80322eb590c3342122c2722b75f08202e649dd7b1925e20e304d829072dfcece0d42cb21cce99af74c2cf954b758f4ac0d70dd1c5c5dc38c02afa0ba0703b00cfec10237c1fa34e5ebb47fc8d95b8384dde47da69e69d88a02176f17bf38fef145ac5e29f8c3da297ed6b416ce2de5bdfc1414d2332586965871bbb87da30d15b3fb9fe442770fa6c62215b48a293b9941c577317ae5e9c5f7291efb2ac49daa35242741404676511dba72630bfbe464e5e1f858aa0f5effaea500b75d6a27bd05a5bc760bc8f056548bcadf3484f56164b945ea514b78a446c6fe55d28da3a5fb8b2423fedc55ea0518bfd70ee7bfd167b8821e658078f146939f310562b4a8eda08bb2ab78f6c46d073f96787938f73d96d402d80990848c49c747a78c82016c9deef7e406a93675599d34b8f5d93da246cab4de30356645863d3248ac295ff9c74e3243126bfafa14615d3a20ad42f71c719649b648031703dbf53ed813f0e0218c4b9385440f22b20617a03b56f40a796a9fe091633554d9cd0f1e4ce19adbdc2405384c13ae69e2659c91971050d01ca4f4b507345bca45cbc6c186ab449210963c54c04b78e598952ececed64d89081d218d5ac08ad1d41625315356c90995848f74818a959ed48c120aca561d3b7b34773c5accbb0d53c40e8cbea700a23865465360b7e59a3a985852b9eabf0ad23520a8f0b471fdd8d14e20d689934cfacb76857b9021df475851b5eb9cf25fea7965c6614e3fab8a7b84315844844435c613def99b5910f113b26df95c1200ac123d9c0d909f9e1ed7e8bfe78e4753a17bb08c89bd50c565924a76eff9043857fc5c4d959f705433e9d7949dca2ee0022c454af11c00fe15a3b626bef2c8af6ba7fb631b3b94fbf4b6e545927abf1f8a0688cf6ae6f9cf9d1e2b45e1d56d83898a8eb0a6953e8aac893e0f6cfd16617072e07f1932ef79e7df08b701f2310fb5f5d89ebb7315b4c61433acef06d7766d48e1b796acd820242bff0ef1ab83b43a54b1e20fa68266286485cef810b5483a49f806c92f1fc0c1b73f8ce041407e8bb085d371c69e49c0785684f21fc0b208dd7002a5e4cc0d6ded85b227215c1157f711484211c17207efab4446b08be83cc15211a5fcdda30d08ba1a6f8181dca67cce09eb8a0f10587a6370ce3c34f05c83ee823c221b61a014b8f381fd3f85af3a7ede0df1232d9cdbb2a476b4547935a0a6533bc12c94d85a88a5ade477ced59af65e99914191ce701aa784e46593073dde8bc069548b3747cacb2b00104ff94efda1cb208d1c2fa659987d7e9bb7103c92f326c9b17ebbdc58d8a33ea67dfb5460721913123b53e065c417aaf54ff3d08d78e64fe44c6c8e23f5057665b318cf7c16221262d514142c2d78b516619259894cec10a3fcde84b75172098d56d9c9bec8fc34ee5e7039a1c5b8b92790f69c29b726c8984b89f399b15f6e7aa5e66ed661a535ca13ae5659046fa3adac896b57b01305203f8afe087238637c3a3fb24cebc3aeb7d045cb1a2f5c4c9273d96848e8297bb842eff2d6c403260a231e6e0e9ee98c47a7281c26c273b9927fc7827c003da7980b1482ceb0e12df4acf5ed52d71746f5ba46b181581987a3ca598570e16d7be6e0da07d945383d0dc98d3bba4c70004e02e58eaf60a1d0aa6700561a34f23ad3a7fc392827a4a9db57dbe3ceeb7f272b69aa67159afb53df0a64443d7c72470c67a3e8a881043fb3ec1cbcdb6cde4b298e4a288b7c034f0c9245fbbb39c3f8b8a245ce12e47a0230e7b50be35d7cb8568fc1f685f711a6bcfdb3f11d16f12323ad9e960b976bd606e1711ecca697bc8bd48e28da15aed30b45262c282e4c2bbfea7c9ef93967e55f4d557daca5a3a7e481fda15ddf8228a9d22d16354255a834cd15435cfc740a041495b25e545670a9c4f2e10772a98966d797455c86031c78b4d8e35c9c95abbb2d9f48b56092d4a7597169e31b499e53498b02023446e59d0462551b9832d3d4b42a70945494780512e86df66bf7cd6fe55549ccf888f33a39a47539a80c4d9d614f5ba39edd644383ba6fb6257c743b39ad72f9165093f715c4477d86d06c8df310786a99f46ebee5a20ce77ece83ad6e4e9cf4a17f2e48a53fe8f3c9d756ccd52a3c1e24f3f10681d39036cd182c284c4508e9a5fbe36c07a2ebbc885806b3882725483b0ac412689baac96c040f12b6216d7ea040ec28d7e764a9e40628543a19706d0b8d1f27495ae994f5541d71df507b5e34d88617e4343cc8f0b93dd92e295ffe2246d2ecfaee9fa5b8e0efc554c84b75788c89cde5f7f5eb5cac88f4d4d87aaacf2edb88736651ea651267375489a53e1875a691e9e15b5348287b46f3ea37a2fe4b794ca006a4bdee612c93c5f77da661ec75e467c437e71dd413795e4144a3404781a5cd68a099a79134b901b265fa4a6b0afb5aebb0e06a9092050c3214df21b89170ef46e5c269a546b61999c25ac7dff79f699987f3759d0320f32a0d3ca3868a4bf8a6cbe88bcb843ae0b1b7507841e40d6d91ea81382370694debd52462f39a5e03df3e319b930792636dae7c29f479d18bc4f9d0a5ff1f3f9451671f5175b26dea6c691bc4ca401ebf509923a39e0860ac54ba1a04eb184593c190fb6cb0c0791d10810f2956a8e4cb41f9aebbde5acf42985acc851ac39266ac185216a21a4c4c01404f599529d62f5741cea1e6acbeb55c2fa928ea9d57eca9a9596d8c4742fe628bb92c03b72d3cf3574db5020ffc566f0451ed0a287ca2d19c0663b50cbc3ade12fb2553e7b2b6a9f437eccf86e0cafc5982503f59827b63e052c7e2e2c13f08354570a64e1b0848ed5da10cedc983734e317bb2081625c923f31d1d0ec9a81176c7871f047b6ef5db22f1d21ef2e38acba61ae1a81666b66982427b30c35a4517c2a8439fc0d1015828ff7e545c9a12ef074352c285b036fce00b6707a94924f22811d10186562e695ee2960ac82952fe624d06364ec98a848377be836a8f82054fd7fb858fcf1fdb20f3e0ffafbea48d0219f95008d708e2faab37108fd7522d98dcb72ac6ae09ff85849ab74dfabbc46b8e9ebb1dd28a106f36320b0b91f2883f38c93b8d3e396fb1a5e31c5aa97c7d77d990717c5303d80c7d219d39dff7772d22c2cda42c5f2703d1700d2389fc3803ebcb04a2f4ac1850b0af909809094eed87c4363a9e41602961004109d6c1a39520417ecdd0f05ae445a43c82344d79d2b309e1655b01824676af41cc2d607f97c48a2be2b6a1f9cb0d6ec0de4ffda25b6611724922f6e0ca64c9fb4e56e2ce69e025343291a7d0035d5ec149c9ab67e16098927927cec1cb05d46537cf5ef8fc5cfb2ed01344736bd72e26c6b610783988a44ec9f441661094c0b173fe3b365a2f354d62ba019b75e0dc9366f96cb861e281bf71d47baf696496cb226e1d5d005d2e60c7e9709dfcac7bc724eec0cffe28af618ccdde17b8989d081de4f829cc178d0ebeb2bfcba2909cf91830c5b84b63d018c566e0fdcd4c52416cbbf56954012650f4ebf4cdb76fdeabda11316babc315f5d3ff9cc16a4bb87c61778d48a3473a3d2538bc364de13ca89701289e4b13a7625c98e8ad9b0ac061b5ff4a21cf79086737219dcd9657ef8fa9c8dd4377290c650a8d4cc06c8dc69226a62a2fd9c04e64069cb5b5661b5e91febfda829d34f537be684ab840d1611053324ce96468de673bc523837d3f21ca4474ed14fdef89aa091eb9fecc225e066cf52ef33ec8dfa965a38ce68d9b65114d5618d9524ee1f22876ca3f66d5c3b6a27361f24bf8a729c7a5867d5b843ccc4148bbcd12ffa80e6e8fc9db93c0f146666ce19783cae9d06a36011aeec21aa8b9714d80710c8211391a5241b6f1805a1e24e604839477ac3b456c487dc9a46c136babddda0686322270388085e537fa3d19b2bad8348f69dc610d986813daf38b22b4a106bcd6c584fca3253722206f37ed02ed22ec7bf6698bacf12505e2822b48ec3f0f45183d8cb3e584afee97b48e3bd29d0437da536675466cc3094c109a8fb1335ec2ff3dc4cb9f26b76937e936a634b365c49876cf632ffbf303bfa6386fed3a4d20888d31b2812c7f60bd45c6f79646d9eadd648b37a570ed6f0755ab218256dbe5f9560c38e7ae95bc4e65972eae95eaf4fa748f3a98d85b318c1ca4b3e5c254e1d8f8a54809272773252435d55c709707a4fa26f0f78e4ea5825a9e3587cce270d3290efa8a1a5114f7f40308c01efc89a98854a4e4bc2ca1e8e3955c3805739613c2bc5435f957a17517a5115298058c47f011ddf90549a177dd0a2d07770782bb641dba2d0c2660ce1a656ac9cf9942b86b1c68d6d8df2b70e0e19436db60ee5c9477ead7749b4b24ba088bf9b52d5ac9194faf7374cb9b40ec5a7d42482b6ea2cd46e5bd1f27e148d5891f0282dc0435dafce125f9af08b1c0054b1a4e38bfa1729893b24cb9a3d6dbcbc97bcefd294795ce6a5a02e11fadfd6e2fa8f94bcbacfb3daee9e1126c07c57f53ec7720e63dd6b29cc8fb094844d05614451eb5032bdc4d7aac69d643121cb2d2304ec591c06745c766b76a9f1fa76f7171519bf4d1602aab9351480aab16a38b99b01d84ca8f658e744b7c6ca83389170943c195c16575ef8a9841947a38e2627162f3d25f03a1637766bfde1fd803340af136e94c6610f59634bd2aac57029c71de631fe51ff2dd068556fc77dc58cead655638b56a10761d24f13788fa396a81115eed1ea640af3abec4a55ab082cc9480128bf04e73caa96fa62d97a76220d68fd86bc70b674345b25082466d805a818259c0f97cb7462cd7c8bfc71d99aece083db80b3eccefad44d67147aab68480bf2f23f632bd8cbaf42ac914b916d708864a605ad12dc00c17ce0c9639146dd401c2379e7eab9b981ab124d57cf0c7889f400d421eb9dd76649c7292566c691afd730c7f285db17d0605f69fa7dd516d05b8c9bd179786254c863df29fc62006ef9bb9a5d2b8862ffe60e245cd472107c708aad37527e585406a7db3bee7abbcd0744465267752c2a41f53c2203db62239e6a7fdbcd82c5b47beed0870b18c545434383259e769a4fc29d793d0ce9b9e482b22d318c5189dd317fb5b18fe1192df298eebed9b6e7d165c923c61748fa492cb5f309de34d73695fe45f998a0214579ba8691ab5adf44497786e8d7dcb9fa1d3fb394fec6b85f2d347f6e8e7a40140bca2f242522648c21fc75e1cd19c23e8c3875ee3be486b4b5cc263668094a10f800322a29e1ed4ac5aec50a82b394507442e3427176712550ac41de0bc60799e9d2bb2b976a02a02699cdf700fae17f7c7ec97c74bcfd5ccc9a9cc22ecdb4c291ce5abe13d9c136566eeca12fb51024c6049b8659a282363dba468170e381f09987834d6ff65ca469bf03a5c8c1bb5e1b06ef1aadb9ab845645127f9fc1133fdac40e73ede099165f0af78b14d531ae223cfe240963f7274d88167c591e04bf23c5b7dfeef3515258c7312dafbdf54f821428b1a4c43c7533e42e387a9e5e7f27ac9fd3bf67f101c7091d17ec2f3d731df76d6dc13b1fec0bf27a270ad224684410c9268d12fc5364a4ae0cacac743bd522f4b918119c3d0c88db369fa7cae445319ee1c13286e90d00d891b559b89277df8849aa5a84a2ca787aa0614cb75e5d9769654f31ba14e2fe1588e2b25cccc52e15528e1ffa814f6142d02643ca87e0b8dc24a2d856673556e1dab4d36817bdb9304dad04f66745c061585499d27496cc8aec44932a913bc33e3c24b914c18a728d487f03c24bc1ddcbf57c8415889d1d6abb74e39d8e7d5f31f1b6435147d64686c634ee7f265dc0b7a4e95fca2b340d5a2b276b2827772343ae37f2403b4b499b2eebcea1d99e8920c580f59f5cee6d9a69458ad8bbf55600849a45b8f38cececcdce816f65e518454fbd393304220b4dbf1dcfd06512487bdbe27ec40ffe44c1674c44846f56c12918a8269d2394fefca94d33c564e122c9821cf023c905ca0356b455511986341326052ee3cdb0ed1284a66580dd302d81c9b969c716bdbac039f12f9826d3800f1527cf84f2d76660bdce2f60e8f0fa43ade865569f2d1daa3b3451f273b1276c8b1a39eff7885e9ba3a15cd5ef1e692e16b173ac7b8c4a99dcb8094bbd5cdd3dbe1b860a26773bd9ba8f62e65e4e4e6723ee0b57c91a1e0556024361b4ad78d8058809ace0d0f718a6817bac9f28d99987746a1a0d96278c8a34c048670bf75982bd5d22b2439db79fffc1d5697e8670f5f73d6a6562b572866ae9e8f6b23d20d09a5bae2587c8fb819f612261c4711d9c8101f48cd8251c902cce7d9dcf6e4fcc90e9037278f08c5ffbe6e9031584d5b3899a15ad61b294c867ad17051d3e4d69789ccbf310e4f5abb24193e911af521a066760004bd2085c89fb18ee0dae45939e782178c15127f437191f513ef250ffff3e1c457b664b429f91b825b103a824b8bd1757fc31f6266dab9dffac6211a1820dc4ff731a538fa06a84ccce8ca7eaaf8c315ef89d9b6d508ab56e1bceda18f58c858d48cab9533f16dbecf708b9b98062e98af6f230943b341e4bd4db74373163c30675483c0de6d2706182231b928dd729959421370278b02643f3beac71e95194f1be913ea7c212cb0bab714bd429cfd349f6af144329103125e4a6d3dc2f7043c48958450b010ac85a58d58d8543473db5cf448e1ed0f1324e371c3e3b306ace3749d47c4197c6162137fa66a46144ad1d9a885241e8eb33682561c7186f94696afbec2f21453cb8bb2be0238d68eae2cd7dc970756211d3785cbe4af71f38f9d1d42d5291a9a18888510b536ed6ae8bafba15dc6afd98c33ff05d298b64de9afe8765fb588f75afac02ff49cd69b5cdb5996fee0fbf0e48e587f7c90787881a2dd37de47fd3852f2ba21e9b1a64d4c1173155e279105dbcf8221a137c81b37ba93ddfea3e875b594b22eca656da71f35a8515595d3e690dbf0f51f33e64bd75012fa990802f82574f81e107c6c567e42dd153d71660f53dd1ecbadc6b6dc3f106ca217df1433aa37ab6cf23b6c6608912fea84343e7f7e00ad0ea436fe3578fa23504f9a04f498e68c9c2a051cbabcbd8978a69e8599fa1c8ec1420a3047f21763dbf743155c4bab20de8ea840c5905e9c47d7b2df9c6bd76539970fb9d3a2e4f7449009958e3a0e7bcd8aff2128f895e0d248ca356b7866fa4f8b5c21a8c706942ebd27130270cd168f863f8b56a1bf2fade141e1aace129d01f74661f3d56818942c5da005d9b0a004cbdc2466974b4db9e6f1b7abec9b73ec1b65301ef83b6c8ced6e7015544e85e4b38725950c09831f05ebd2882ca94f82288e3ade94d3eea87a9a27374ccaca6b4934fdec221cf98828451b7d886c4aa627b57d2e23fe6245d039be1a45010d55552107d372aef2e33e969b23d3441a0b124e6567e97669bfc4e071885bf1656163a2b64d064f2c41b7b85f8131cba0a749dd77e99c884a3ef18756c2a5e368a47d83cfea8ccfe654788480d4b1ca2348002b23f8afa05dfea94093c3342ce7a68fb7b3f8a5301fd7346456b09268e76f3f575a15c8571902c1752c165d9ec3616363e7d9a5d1823b84c5416e7bfe309341beb39c07aa3d5e69ca4a398626692d75f8c018a43ce60fb167df0a982d712c09dfc14c81a2fb2fe4110e22c703b41d013c7ccf1d1236cee846e93639bbb7b5ba8259cd75c9113dcc8ddfbf26b4f892c2f5b3716c86a2d985b87b0464d9e7b07eded4e176b3339a217a078ef0e6f0444588665035df0949bc36e39886c38e2ef21765e94263d2aebb8d43115eaa62c07752bbf05b8778b11c73cd326e42b83237e147ebe9f37230c591400b6e2e9ac482fb7ddd476848731d832568130925a7e41017b4f9d7f25fc4ed3ad1cad07b0d87814a2632875910a4a045c3be3da44a52a136dc8198812310ab2517d58f3a73501b1642cd26dc03dd6ae1e0d23fa6354ff8b9298c4ecfc2aa95d722bc15947cbc29171fc6c127a0217e329c229e78b8a09f528b2805499f06a0096cf1d88a755767742b66511ffbb0dfda0d8c26a504d950bd5c9e323f9722d421f2872a2d4031c13293e1b7e0e0f9d8c1be9d13d8eda74bd6bbdb7fff8a9f9d899bb1e2a3a62774a5bc963fba9b50e6e5a3dcb77891d7b352ea77d1f0d3e79a9d8c44ed4a9ea8f8c931308b644468d7257c2394dfb2604f8caf2e56f55bf7977878b88b0f6542e36b793442fe7c2aa9871d0391ea9386b0fb661578523bd6e26124e229f5e68640635a448d7110cd9d4b71afed45eae9348aa4c6d5e5c8cec8903dcc8173c1b04a30db8ba776842f26994744c9466af5f7f659876f65f2e2dc63d02fa3fba43252db821326e70b9b2d15a03fcb5d71c38fbf1c3f5a760959140aef48b5185f9a1e554a5bcb6eb5c38357adf7e1957a28ddb0e2f215f547618205ff32351b10d99e1df0b59c69a518875561f52c222284f948937639ce9f3ea5d0883be1451abefce55317d356f290bc409c48ec68226717a9a14da462ab1cf6582b32b9a7748cac8fc93923a793a0dcb90065b8df9836e609667da4eb645b846bc188fad9d8c163c433f74f419873e662312785dcdb8c24287516820c0a03473174ddfdfa5b601dce608f484442d32ebbb4eb63bc5eb70047e7dc0e534a3fb114b0e69cdf8597fa6557b55fbd781e1010ffd7919339d7b3baff7d099ba1c67de30484cb473ffc7f87a74d20e5cd4270d760b3e53a53e6d0dadd9baea6d62f6981dabfb5a2354d5b36a7416a9aa5645238eb90f7fd9c6d31b50cc56ec89e9ca07a7bdbe460515e6709cd3c24050cb5e968dd6108bcaeabe802120ad9a63ab2887f9b3304249d4fec5a89cea03ad6cfb0c9224f62bf42543db57c57f2c639bfd291fb9c233cd09659aba9198d220f6882a69b18b9b2525fc6bb9bcbe35e522546adac03744cd9d258b26fa4809ccd7d5c795c32ca77d788641f5b2119a2d6ae169f66a265502428e5fda306b1baf6495bb93504b0e6aaa01754558524fd63079c22efb7cc7a87ab38d9690e4fd323ae2329ccfed30c4fa93766cae10f0631b97e610ebf791292eebce23478d616437b7996ca22c0e6506e5695ff70e1eeaa6d9117925aba75fef50c4f6ccb3bd6b197513d23bb692ca94a4922f27c2b4e96681c98c8d81aeb3fb43abf33a962a0c3a5f83fba14c37a89e01d104bcd7cbd2ccf6ec540db3058813e621447ceb0b33fc1d25d4e844ef7c61322e3ba7ab89d47b4056590a521cafe8a0fb7066598be2293db5e8c6086788fdef78f582d2c5e4168f0ae0c8c017e6db9d253216ffe200e6ad2999759592b9acf5f1b6a7917b298ab4fab1f836ca8d274c9ba68bed77d6db43fa98a3fd8b701a8608d6d5630c2e0ca55387603ff91b63df6ae664a6c4440535f9ff5ee5c12dc5e826da0e78528e76fe5e7d5f3bf4fe7fcec920c2a41300b8a1bb6d820776889ce28e16eb318301217bf337c6dd7aedfd5439b8d2d40956a90692015fb28b063f42461430a6e1ee1c8075905baef3dc19f1ba0e4716014b3fc910291345a6af5459139dac2041f68a9167f43a88f21728e614f4e6be3218d5b228873cb79775847c8979679f5716c7d98ad51c1b0f2f1fbc26e8d816b254906ccf7579121fcc6b852534fe54e05a53a78fcd836b0bbe96bd4da3bada3653030838e47cf3f609d1517a73a9288e3cbced5557bb504a3f2279d99687bab77e207a9b934d0c346d02406dbdbc34ce1c2dc0bd3f8ff49567fd4390576edbd4bff11b91f4a7a3f3dcf4b882b59f475a870edb0730a55936c474b24324225612351e25f72660105ac23ea23a282f649b23d31bc6f36bd15795522175fae9b8e2c7873a6bde0f43e1927ceb7c752c40dc7f0b045c5ca684c11edd2e0aebaa81816831de522d523bf7e50505162ce2c84b20f43a0fe4b1eddbe8a03e11a16fa59dfa2df873784d90ec2f1b6343e86c99cf7bf409a872cb5d07ac56f8954c7b0ed43c8f551d1552ea327cdd0050c72787a6d0f0dfa1e5be7742e0b1c68563ca17fa342b25df53e287ebc072d940029417dbfae3cceb3da0b2202bca57a4eaff1238eb957cd3f98eb9c5a5b26e9181b30486b6f109399567db10261f20903822c4f37ddcd2766ab1662dd89845007c36bde0f7046ee13c8b90f336ebd6d66436e48ad8658410043386c94683676b720ce5274319f951a8fdc5017597f519d5bd9fdd96dc51ab703fa94adef3e2bc1ae1d24d2e814e0d05474303d4a73c439a5517a9df2cdd9dedf56f89a12645e70bce107d76d7323ca2cc24d50f642fc98f3bdfb13f7031a3cbeb0df5364e27f23c12db6a53cb0fce89ba594012d794036f4981becf183983a998ce5145b2a016a9f0a879f2a37429ed6d2420cd7bf68f480af8612fcc454b2b9390c7393ccdebaaef9cab432a926c47b19ed8c21325c615eb36961e26891630db4340513851a3e092136582a3c03d5795321db7b0b43c542b9f26c0099c66c84c6e16ff31cf55ab511bff23aaf72b5234200742f07a5ddd1e8ceace3ffd0b6fbdaa130bdc715f9bfcf62916fe569ff336fb7b3fc5120a6c86cacf4fdf899e463324bf00e664cc5bfc9c1f77d89f5949852be454f05b50824018b58a6506865d1c1ffcc97959d5eed436a631eab8865f276c310776f82ea158ac1454719c923a6a70f88edd066c4d20a4e226f02c5d2efc4d351bf6d0690487af7ef1cc572534fc006b355fa3d7bbc3f8facfb2a84e6b97b2473ac58f6e5487bce322d1a6e853d14e2219406e61657bf988815a7ec81f49533d150f2449004965af1a33df18c910ebe2d7d0271111f8a1dcba3c2584270c3bae7f1441a831e0aeb26efeb95c2b16fb954a4e947901b3a00e2baab667f8da498c3dcedff18c4a90de4bd3d02d1055bac7055afe94514cd6e255d071f655b4b2097ddab7672f8f78ce768024d1b415f575fb19b3b160c0dc7a02753651d26b7dcf36a0c95b9d7dc522e3b79adfbec28d2e1824826e1f017cd8dd2c0dc73e3c0684ee00d97492534dabebeb7a5e55bef87df55b42c74f883530fbb19ef56df47ba18dc6ed02e6ddd861755aef67147bc0adfbd14b310a48b80b1c2aba79e980629c5238d063f53ca43487ea8a639de301d38c84fbc719f76d3cea7fd02f7d87115a0ee793774651dfa020c8c0cec5f1ef2c139d32890117ef9d8d6d7804bac335f729ce062554f9301d59996795a6b44ed30c64d6a1bc398ca8477aec54d2d54cde2e5c43eeb6b52f5412bf3dfa0debf8b46eb050ca8bfdc6d3fef78adf713f2a2ecbd224951bfde92ec752610f16c65be6f8070db361edd4c8e3005344735c78708cb3c8cfb9855daf417ad8bee15df83f56ffff80c0f422659a906f15953f30a0ca9b120d3d0e019b41390963c2e0e54c21aa1a5a1a5ecc8c9017a777907d23807d072a4951bc3df55d2041ef478b4c892814d701076327cd6c52ea52331b7341f6effaf145fbee49ab1730a8fd05eaf08bceb485e02d39cfbec2c8126005197ab720b1db78e1e5c7f00a6b6cd5db91dd8d94b1f998cc3c9a5be1faf614b4606be56944457b87662b766ce88c835aa63531edd444dbfc1fa60f06d8f3dcdb6898088de8ec2268aa78b45a84354d54a3eafe77a6fdc8e904be900be1224c5ba4ac1cde9a34f9d45d8673b480650be996c78c44b556e7ebc3b2d9e937c369e45cb225189756bac620581e8e007864b2a18f9f2d101b0d1c66dd59dc20ca293c2c99c5d1e4a9d6d50849584a8b3c7e6d786c02b2ceba6312ab71a22c8603584c830c8c53c7f627f31d061d0f8e9faa82e6ac6d2e8767cd7a86a07b6578c296ae259afa4e4bdb4c8ddc58f56fd9e2d09948d316add94042409c8a8b85a72153c9aa28771ac13f5c2bb6c10aed206695c010f4c3b8e490f6f0c802f9c3ead3d011fdbda6a33adbe2298fe223567bff818543647cc2cf185ca59920b49cba84af88dd95ea3e0dc85c333fb9d337e6e3b0d1fcb730b2416d5024d2a24e25b7c88b105f88f9d757289d4114aa6538c21fbc38e710f42be8620a37ea218e1e219e9dd06ac0cfcc76dad5714e5a50b1529ff3ecc6bca0ecf58a981f8a1222d25f7d766f39c26ee98d3d31b9a25a39e13fc71b84f02302629ebf02ed1198278f7cf94094ddc1279004063094b8a1d3c9159d363fcd07de4b9bc060f813276583a5f023c7b9496a1705223d1fadd6222cc47f19965b1177c4aadf772ed6f767c2ac4cab7b043151cb00ae29a3926bed1c1f70d15dacaf62880cbdb1e9d348ed86885358ca4ae267ce27f98284eb87675a60e917ff6646ccb605147e083b71411ed387bb20ebf1614af399f4b030c360e3a2495ad841ac7f8c5f97719c70c37e784a19baf99b04bffe9d92281a4faf7e4f66ca15158df954cde8ddb306873fd60b51e5e081e0059540a685d78928334e0f0f098afaa9a6d7a8ef5e8e96cd154c946d07e7e598aefaeb50fafa1e10b5350a661f04e88dfa42e8cb7e2ec73ff9913cc7f9c1eb705bcc9c22b153104f159207164c440f41c92d1d54abec091042e9e7b045ed606d33c5c16708b6e4a27888ef302bc03764827f596888aaa227e036a817c4c7da679e26c2b070ce2db9e25637a97ec3b5a68f88b2682c1a7c9e1db3e6156e2840890b687b4ef14ff6baa02dbcd886b11c4d035872b86c00024431df6862bd8c95d307a9d1d9bcbe80bc83dbe6f8eae819b496a863423ac4ff1ca1aa26dc9c828f98a4dfeaabd548a84debd631ac310c54c8f8fe15f40ddd39dc74f2d907e92f81002efdf166c25e31ed9f6d1276c9b020896cd3503d65f2f86f38c44a88801957873183ec6a52fe9b917d25d53ea1b6608fb7e02d944ebe0573ce0e9fa9e48b707cd442426072e19520ee9734d150cad98360f27bf10505a5bc12ab5fd9694754837a4014b21003fff933525160d1d3f1a13dcc1c52a133fbcf4ce67729f8516f14bcf56410122c8f6c848438fdc553c73d53050a38cd77df6872f82fcf5b1047faac6b61ec557a8f3cf289562154f13f3a02f08d2799628ef4391006a72509cad472e7cfffca13c724289309298cbacc9486e906295468dc18fdde54ad1bf3b4972b23c6c29377ae4ef3fd07d461d951d8c5aa3c4c79cf80286bcee98439f1530a244d4ef63a1f39dd9d2375c734bfd5a76d74e81face0d1b00b4a08f2401e42485e478f1cf861096519a84e09e9085a3762309239c569d3ef90c6da61dac92b4268e161fe03ccae6df99353878f9d86d17ce24db2eee5c857fa70fd604509023b8206fa24fd5ba3f43dc3a5919ec99d549a0236a8d0dc940f87afa120997d804a151a70605c5818e9ed722d5bba5886b1f999b8bccd4a0f7178dec4f8947160db79fc8343f9ae47b281f7357d0df0966dea3dee924f24258ca4f217e200b1162e0e72e8a59e10eba61de6d174312b3422cb413b55234603a3d8eb80fb9dbb83d79ce6c221af3aae939c3a541fa73d41fd57ba6c30e664c7ab0b419207a735903c13c7d096d920ee396a449342df1ad942492c5cd681cd31d160b0efeae0b7491a88ebd0a7dde8dacc2d64b906d366c4c44100e6fbb8089bf2f91c5b303b61b60192cb643c60ea1e7644e41e772cb1a66d0d16a8d8c3b300229a640f8600cc3fd3ed769affcf2481d20b760705ffbcebbc2f118fabfc1f55261857223e97484849758cb5e059dd9572fc1d250310d71342c238b2349c8b5df9a039e2cfd17f376e65a99a92ed56745b9498712baf7c1c24a3045f3a8605534bca7f8653cfde0d22f50a760b52d69484118246191fd5689cf3b17e04264e2afd74a416086c6e58983b5cd3084a646e5bfcca9bcb8dbfbb78e678b1e15a47dfa67f4c1dd041f830d866ea6186c8ff273f8243fb289d778b99de3d94a074c56011491d99b0389bd03e42b90d4a3532b507a04707757b123576ddd7a61840d3c1bd02f19f54a7311df90c32eb5bc13702791cd669e18b565c97414632a223bb255cd352548a032b848da066b082cb2d68d4529ca0fb9eaf121ad56f5f9a4b677454c96c20c222bb6751e7221cd154f97d47cdc06136bb4136302c4568e1e6ea44419dd1a4950a815df2a246b81985d77e77af76446c755cd8a153606e5e7346947144cc6c3b510780ee8221da723fcaebfdf0a3ef58d9d06044cf7b0b781ab9ce66531f45130ec01e1a8bcba0b7c652c1e66724501ae2eb9188e85a219e1d316a58305e051f5a5e2a1dcab3f607722c9731a3733fb7821787ef4cfdc7bf52add0b0154ab78560afd5f25fdf484671f9435495c792973e64468dfc377ad2b0a1a18ee4dc4a0fff54056ad492bb99a1132bb80ee6c105527d838d880dca50ecb06145c7eb70acf60353a8bd5f21ee71f32e38083f34b36ac9c0aca15ff7b5234d88daa38bc9edab279ba3b6d0de72d7de5ea6bd15ca33f0b911bcf6d3bc029c117b885ea14e89770d46a7a52d321852d2da4698c2667fdc8a5f236306883e8de76e3eec47c6d986f9bfd452120c1901d61451e957187124f537596d621bf0fe47571f35f6135c4cc7dd9e4ed1c26ec7308b747433f84cb095db6d153e49a7b42c0401c78e723480f73d4b28dd6f58802b534eca460731e40a7881f30f11722a824fef57c3fca8b04d1078f4b1b3d9435650f5722018abb80a384aa6dae868a12cc3a718766ca0625f109423f9f138bb81c072e8ff4f2463f31991912766223cf2701dd702a52cc2b6e964a8e1d48185ded840617ee76d8e984bb4ec2acb3c2bdccdf6f0996ffee26aae", + "0xefd45b4696136558c998e6e9bcb6785dee80cc3a937677ef785096ba06439c2d8500381a18e40426cb54dce7572b8e9738a5ceb729d07ef542c23a3271af824fd0b528d05a6e60a9e0f8031c5539e19f5e1645d582d33fe1c5addd581d381c217eec7bb7aefe62861cf3301d0854ab31e0c3402058fde75e375ab84ed64f6c0604f74307d99ece1df793cb16562b207b44603b1d1b6b25d171331ab73c5bff17179796a592d082f5cd767da8382ab995933de3f16cbd0e0b713aa3034397df613322ea7a0618f08b5f7ad26a3b4502b4da39d644a2ca3489db052c35b24fd0ec18b642d1575682e15149d06c0219c295abbb1ddc4821481774527d64a4654916477d21c318f40bd2aa72c6bcc158975499be7d0b9d5afc52a62339c70926ed108903688ad3db7bcf5612d954c48c6504bfefe853123d13280074974f26707224699aa193834468aea7090892e6202bf43adaabadd0aeb934b375d877112c3d69b5cd64961a4c38fcd0c7b4b21bc31a95aa2321d73078a00015638e4436111f4900e8be97fc61f6c569a2e8b7e611122fb5d800aa40d67a1422df200bd5bcfa032387dba7828115ceeebddd6ae39ac79284c99ce945ddcc4af6e52b14811843d4b8405a60793cb3ee40868c363f294aeb45f69b3433ab3326544d9cc3a21091149e5604a5a09520cd22b73ffb3a64aba9a70b07c5376a919422d5ab8af49ac9f4787bd4ec2dabbb12bdf47000acbdef4661efb7712e23c749ebc71e8a060d8ee22da78265493164161cf46faf7eb09d41ab5c7ef42b60e6c75c2b6575bcc2f0c569fb05988fbc1441b13396cf2c4f864dc2908bd0f59e043ec78081f9ce14a8981bb8bed091dc6a7fce4309934a22a1256907f75486931aa2a315d7a4479f39abf53f3a72530628c12d9f4de1fc5615d163476e1f8d3a99cd09e4410f06d8d720f02cc385ce4ef5de69132cf37c3dca75fabe6133edbb9eef39031acc40f5ebc7c5742f516ff5f33d82b9ab81971719047bb040323c1df55a13a80482fc23867a749d9e7595bee42f5d7e228030377a20b82e968145c444919fb5b45e950e2e9fc1011a1f161ef05d423b9e97bc6c47b18429193486c9247085ddfcfe3cb3cd37b2254919ba3159835c5e2860c5c5ed5f3a8a015bb31af38f9550d5cd748ab029131bac31bf8ba55c3d23a6a2689b282e376034fd316d9e3741ff36cf94fdd00ef2f50d2c54cd03f7575b57c4d6f01ff95c1d19529c00ccc31e6aeec5492deeed235121b21e11fb7a84c635dbd62184658de22906413103036702c8a5110824acbce27813b525ad247efbb6d042e1003934dc903fa4dac8d37a1ab84dc0b0ffe79a204e5f2898355b68e0b2668587a196beae64d1fc89d4445866e097ff344a33dbf4c75d758eefbf43b370e824b100ed1df3558cb280c992290c95e7c893034e6282b3321272ac9d7aa21cd0322d5da644c3dfe3e6861da2b644c37fec13481a57f9e0ff676a255757f527afd93beed3ae564d2fea8d17ffee8b5b168dea197ea47b96b151a731538bc45536d81c111fd8ae26a6c42210016161a14ba431494d7911cb3ba17b8b6caa42765000ee2944c353d6d7b0b05d69c89882e67c2ef4a2c8ad1bf39b472e1aac9412e1b6d9513c73209ac69c9396b97b3a58f935e859c7c942ac587833975c6e3a8bde75952c04721f11feabfa1288f9f3b25c420ef9db78e666a4e4b972fb2f076b2d49307f9f4d77f8f5b39ad84c64181540eb2e350d12074b95800281c613aaf0d8543162921667e9d1bf305a7c0231bceacc3dfcf59cafbe93610cbb5ba3c610034c06298ae0522a178dd4b448bd1ddc28546a26375cdc13fe8fa8026c4b9d722cfbc1585947e0e441101b550da4c5ed4b47468a015edfb38b8744e796db432943be2a48bbe522533bef082e3c6857f3163d3cff76f0d4a20fba8449bd076e2b3d0719438dded8b59205d5eb9ee019d4692056c85326284d870cafe719e7c5cbe1dc254b4c55b72503df7acce185cc3101b25321475727d14e55e51c8678d4b3cb55a9cfaff4c69140411d08a9f697592a0511e8be9da83688e32f5d10187a239b2109f72a69d07c3ea138f3e4768e32dd013d9caf59be463ff65738710ef776c6025753f7e3d84b23aaa544b469bc4b48e15f2f0fae7bf5974392edfa008435754c3f1c0d99ae37e3bb6b29e7dbc86b7db6315f4e01c98f6172f9d9567a7a2a586a4748164385330e66631021f9254497e24094197f481fbda0d84bc36e0d4b7f595c1ffb9fa25ab4f1a857aa95d129639fe87e0f974ab621dec5848baf916ac42bb12020ed1ab764d8de453ea6a5f5537697ece87cd295edb08cf4227456ff7f86ed55ce749d73324940f984c6386e45c8658fc2a4aa5fdf8ee8f6a3dc0d7ae323ac6d88fb50ca5ca6833674b24edd6149fcb1d64b89c646660f9e7164c5f1824f49374050c042ae078d4185ced8b24d7fca11faf1446e78180c5463726e264e6d015a79c5d610e8b5f029899e865797478d599cd818ee14f9e85c30cef61b77715f6167aeeca696b04535e84ee6904b5125f6e187f926ff51aa83c823f1cf8a66fb78fee4e3cc7c2a4851442b1519799fbd3faa49f95f72dd187ce683cdcb4eea8871bf4554ce5a0accb7c928004c600a4231faafbcda844d5cc36fe0a195ccad35e9c031c891376b7f2ef45a340c06bd2528510affd187c765092594824152f657b1180f09ab791a7d8c327c3f41e3b87966e2f2261422622a6dbdda6aa5151d6dcb51c67bba0e1baf6f9d6ca091744e53518bc2eaabb6acad15c652b5f1951268970c448dab9724014ce9ac473a80a782a5a3190549a525dcf1868124b0cdd54f0d40fb2ea41020633ed7e2a725023f991c725af95a36c235a9bc4f7b6bc5fc2d1cd45f63b7b3ad9b4dab5856a4d065403c252de80f916a48072f87a5811d304d887669daace59eea029a7d3b6936bddf49adfc73a9ed7cfa6b0a5a70e2b3afc7e29c179e6fd47b7b84b26253abf0bf939cb977b5d95248a50a6adcd2bca0cc65749fe9cef50efca79b853dfe8e3a3574c76810401a9191ff01b086c65c636bcc35ba6670b3c6920a51ade9e038d1c12a56f080362fdb12d8961fb2afbb3e86fb2e8a9545ea9ade60086465552c2655d9159e406f484ff59f1bad22568573aa1cd84e84bd68c6383e468d516bd747b850241a11a972005dc54e1e7a6d933b7aa155d0c5ef8948298e89ed74786e6208973fbe75cf4a94dedd3965c1ad21292bb2a94ceca8882af1e6e2d13839791d33be0f2c334f2555ffa0db96e47b3cd207ec34371287775202ac33132c81b3847c0a6509d67a1badbfb226fe33222c7fea6f20e75526706d82003f34817b239dfc68a4ee2fffb05a0d3e1f93e298dee8c8408b8a565dcb5acd89f6548e7b87411f36dc20cf6703544f5f218d8ade91f225f294d5b989742af201add84d5d7d6323543ba68eb3b539dc5e9adea5e040b09ba69feda8eca930319a18e8db7505599c91e4a007f9096f82bbbe2715f494f9585e63025117bce9832d4f6bfb134370f35f58a1191bdb68010507159ddd5d3f9d95acdf63679e68124326b394909c9de2d9eece678d68898d867d2d666ad2574033e08395935ad3bce0a0cc2fef9cbaf9191c5ad92826eb50c126cc7c981b7c2bc79e702048b900942d55647a0e39761de178a9191002d1e5b60e5f4f4fecbfda1821fc3fd3b1a261e4f332c7685ac9048dc91717a4d20edf03c50d33a827e2e1052863b6e172891e965b278d64d17cba5e7de68688dea040ca5198e0c6d77364b099bc494b167378bce1e5e63411101e11603d5cb8b0d5026ced96f241f7f89efd253940ef518c539cbbbf104a571a65bf77ad56aaaae1921505426a1bcfd45a648c4ae9a0b73e46f8b0f8ec512012971b49b2728506704f1856912b49eb897d0b5d67162456291a93820c82c80c410df5fb1972653bc910152ad07ecde7137a384f219b39cd284e82aea87b18978cf90e1a1260aff5729bf6fdbb8e5f98e7dc0d872dd1bb262496507c3aa64b3da6de46e2d3047615c22fbc1de2eda34c74c09964cf16cb06ec58f07a44734b0028140b6a9070ee64b3fb13ff370ef532d75834b6cf4b0a05da2d7eda297bb15a1c4621074a75f4f883a4c564d9c8bb1bd0692e68cb54eb400666d34bc1f6271173f3bcbbbd2b9f6deec3ec946ed9571fedcdcf0b2e9c0b83d985e84fcc435a7eeef0e59e5c6de570a665032cfc6198e850f3a5cf9d8ea07d7abf07216364753c27e42e7b9a5a524da889bc56c563c4a56d5a22c3f71df4fd1481cf9f807f384e5ecabb1d84d6c96636a5ae7c784733e28c19897f3c3df12042e804ee1c5e9529f873980fa5075ddbea22cea5155b75ca025a2f90f667c0dce84736a1b0f0e045a5015fb3c1d82eba17dbb724dd4d0c9d79da0934b5197471c6a52db78dc6930f6f6d2e01d0796882cca2cb4f1cb2b349d86b8b522f54c5926e3c33b636969a631a03f15ae6dc3ddc3bbc1653dd833981e573d3bd831ce05cfbfc1fa3bfbc36f492e1f2328d3a02bee85f0e65569be6b7ee6b2c1cd5fc3f66d50540b74fb46e395d7bc87efd8d4c6ff63b1ae8733a77dc6860da12317f9c80f43105000ea10ecf5e1a85305b132c1c33eeee420085a3c5b674398c4bb8e5fab98789521eca3862a7584130e8d16ceaf88eb879bb033898ff5e2c3318bb50760dc9e13cd717869046a5f18f810eecc2cd2415d22b21bea745e6da7db52174a0b5e73fdf0498b65aa5c68cf375d3fc40be2bdf0b10b0b493bc6ac0e16d897464fe8ae5d6dffef10c4c508267e972dc79cc15c8f8226258a3b35d0a0bcd1141659e8ae6a45a2098be7731811f88fc368e6fc6c27c4f50fca147c24631e8e1dfd27578bb3a8b78a1cb64288ed73ec9bb370d173e418b77f2bd75b562e301a0caec3015a49641a48fe9bd486ad10cf4c1c48a542fa54d36042c17e2f8e4a2fd5ac310d9d9994fe5edb9317949a8c8ddfc338fbfecb3ffd17a91c30cf0f61a27470a1d6d9282a1a361fccaf7d874dea54062d40bd82cd1f1b776968869a51d552e0eca31d2b309e74ac249d195fba2b5567cf1e1d8e515225e445abfff74d840351faeb70eb58ddff445666b73dfd437e2265d5ea712ae54098da9b0540971a4b2023a46a193155d564798fcd1124a9b540e0293e63a035b97a52d6bf01e53c3eb3d885809109a596210b811c5009514f2d0a4040fe9d26f00ce3f976f7217e1e04b3f1cff40516be8829008aa28a219e674862a295c57adbf6cd8ec01ef15c9291033f55596e45105d243960e26ece467dc22f157c65d93cb1ee6ba38bee646e218eaf8ae656e6f23c93642e75ee9f6eee9a63a33e280881e9edc6125132faba6816b72fb6ad84a8bc210e715d2c3917746be5af2e80d52cfc089d7c7ca174ca089c260cfe6370c84af403640c0403dd7fba49a6633119db9120525cd3bb503a22e75f68344ef0404d46132f628fb432155fdb5c50fa77bb6cbdcea9dcf78ac545fc3192a72b023f117cdb22856b9351bb7c65c4496f4df642479d6bc3e7ea97396e4e44c54f67ff10f9ee2efefb264c162f6b580861b21824b0d30758a275e19f1a12784ff2ed3cb1f75c2a1521268db539fd8bc77137dd27d5351d90d04b61b129be3d6a19bfd57584aa53821d99da0ad4a51e9e591939902c0271140709c78643ccfed45de7ffff2b6b4094e95a06c671ea17fe511e9a20ecdb3f801b583d28eedd615da4800ce8c3569cb1301d5832bb4bd2c889b64dacf7f8b0e91aedffc294797122544c81183fb14ec98bde4e7990e8d4b3c22d374234d59b2792caa980c2fe4c09290478c13385a3837d5383c61ef6e2fb13064a8b8125ab3224de0c0bd92438902b68e3222b8b0d1a1977fbadfecb13e0a202df5a1efdf2ecc1003c7e01770a201b3d47dc627e47463af2d373e0a1add6a47a4fd9665cfbe1b4197ffab82d9231bdff24b026d95106f05f83537416126256827ef685223f88f93a79ebcc221e827ffe84f44e1b6abbc245d0efc60b478151a767a6bff6939759e3ea4d98e9d3fc8bd561298810f9c2c551a20eae133cff422345cd4ba43c935d1efd87738da7271150382a587bc0c2b92b21702d273ecab726975532de5441f224eda10e81515b9bc5a14e23facd4cdd6ec4253cafc54f1f5027465e4995ef78c75379fc3c126c850e875955b239d66f654f5ccf1cb19bc8f500b23583eecf9ce809dd198050820cde0ca936f3858c35db9fc276ed172555185bc8e09c5451a061114c7843b3b1bdb977fcfca580797a6ad25da47712913783a2fa334b3f3a1facd4966bb73f7d3a608a92452c1d1c4db09d045b206d304cfec19a4f7a3ad86e3dcf0a100ee8a5a3250f5ff98086b87aa669397dd5bdb1dd27aba73bfc1a811676d2b3c9ea38d6593332cc30094c9ae81a4f303f4315fa657a9deee3e4f36b2723008dba0bde3e522963f0943202d6ecd672557a8bdd6fc93a07c913524b21546da0e80ef1a90286902ec2b6d3d75741395e208c82690f2026cdbe5cf27c1deb6a4dcb460ce56707c28e9acfdcdc748b0d94e46970bfa4c217d4b807ad9df9543cdd0fe489e2f319b58aa64868987255c23eca359fcbd35e8276f8996c940ad0513c96b1e8688570608af98f07d9acb6a269f694efcaaa3ab2313199d1dfbb1f33eee49b53358458353635b42870008efd9c3aa93067006540b97e3e40f89042e96905c4a8a006f787790d78edbb9e587f7519cd78526bfeae1e5fb6b6e96b241671420071f01c24a565d698d81fdc5a27f11db7bdaac2f1888feabbd191f4c6684eeeeecbf793f7df6dea62dd5bfd86a34df93d2d9d06a814a0ca64a88ddcdbcc1b0191ce77c74170139ba600789af731d01c0694c4acfea500f10504309fb7e7826443c4a32ba02464eaf3a999be469068be7ec6f8517a42d152cb86865c0df058199634ec9676136019780e46a10bafed21b02723da80954019f35299f7a164a94a93a8f3b605e6704a2b29361872bd7f51babfbe627d69de597384cfc39b02c2301435bdfa596153b95a325f899e1aa6bd51fa1eaa896c4ea5943a9595dcb143ccf1635cadd099ca939b96f1b511350acb2cb72aff0d2eac8ea91b0791e536ea529305303ed71fff5a90318e3e00ee9e369136d75a56212d0e7fee0a2e9a92d5ac246208619fd64789f731c984bcb59b73dcd09006df7a580c38d518e9a724516209bba1459a996db209a4a0bef5fc618e2e1ad10461befb3ed082ba6f85130f3ab9675dab7ea824d3486c63bf6361c2c776035b1a6c19f54a8b02d940c936a14260056de00daba3f7787874de9b4893b4c6c744e29114ba78a0d27202992f56353a4984512e4f5b7bdd6dacfd55c01bc5ccfaca2d23aea22f597805ec1b3d65ef6ba2b6687d58d301b68dd53c92dbb61b9a817703a0b58d9f70bb02e667596f1648030a9a229ff08f77305539813b2444fa2620b2161d56f6defc70985d8c1644d747e3da1b66f860e9798652bca2515bf552db63bdc86a74c06e520c2ff6a597c6e209ae22c216486c334c9cc7f1760360c8cc941e6f375722fc0cb0759a6d5b542d5d08d6101f46d9f463730d8cfe37cd189b084af87ad666a2147a5170c61f3fc8fb09e081ccf5557940b2faf59f4a7e69fb29cd71436dd9466c316133c3199d7f4b784552516dc5db4ba721f04f025fd408ef4414cd5f5c402c35058556674ede0d7bdf4f141500b929887dee3c3134751e33d0549877c03f9c8a8dc7c579451e10517f4fb83d092eeee11f54c800e56a96d187c0667ac8f6557b5ca5cef50a7ba9e7c7ae1b6824cdc631f375bfdf2f5950f763ce32637c4f33dbfd2a118108de19884a3e5decae642b0cea5708f3dad57ac85222519932b66389ec17c3a9c2c00871c6e6c3aa1aa5da6c710adcbfb50a2d22eab73c8d14f13dd1a6222c51d0c776a057182e269a13c883de3795c8226203768915a20815864db2f564dce09cbd85507f355fbef1443ae7505ffe55861ecfef200ca255997568ac426b9bd97ce6adf0618b6746694aa7d0c21b0fa0d6818da44b8983fb8bafac6ba41a8099001a863660f9b5a9063fcae7263bd1fe52e29eeaa22fa0e307bf7226aff5f0386b3bf175d939fb572fb99e45c0f9de190239690efca0ed8a43f0663e211a7b3ce5313ec2d9481fb310e34911fcb8df86a994cd10c86537ac161754d8ff14cc7c63cba3e689da10ffd51552e319f0b7ddc612dd5b55c2df9c172a5c817f4a18b3904ff5d9c5e86d32731d7c24c055b2ce8408c00c1896594d61e8c4992bbfbfafacde1da2dc45a47d75f6bb9ee3d02bd083ab2f1bcdaa770a1133492689532d906ee91ab2d386c3ae1411407265f4d43d5455d4b3a5f03d0909c3ac0843123e0b6bff81d66f6ad8bc1fda9a1f334cba51ddd3c4f949a6dda177e50aba1d330fce1f72e9a02da34fac6135746b218cf2171ea7448425b3df607f7bb93d8c1be98f6df04357daeba85d9521c90405aefdf401f1ec6fbf1b0b08cb5d520c63cb5fc61d87b12bcd81f5f7c0e4d5ee7b28898105ec6a539c265368cfb8cafe0be04b7d6384b988820e368ed8b118b367f374867e7eeeddd0ce05b6e24e1f0d9991b1b44255d70ca7dad4784b6e3f1512a61f4713b89780c650a368c3c6bd8254a70cd9036515b3010c802b34d14c6684aac7f8a2e806d7e76af42ca60d2da0002fb5f6ae6f9d230d3a1344ae94639516b848e1483308ddaa3ff201f2b547c8ffeb9febb85dc7c8c334acbe262f2718269977b6277ea4adc8a0dda0887432ff1322c2c9e25b46cbc66fa588f6de3d1e68c595c941a72b753ab53b932e7848260b6d98dd142f036f6478bf43667b98c40488115a3e7813b48452cb5cdfb11a0ba2bc9c8163433d3af89fba93bb9688e1a9f8a7f091a4322c80159675db7781b080a086ef553d34ecd3deb7a4e70b6b17fb9339bbd6bdaf32e217d95fba55b10e1462af7c39e5b4fe21123ef920dc046f219ffd56b70d99fecb8a1495459ee90c664c1d20206096531200c3574f575e95d3fb65e268ec9771702b07adcf17c64cb50e8805c0a512d53e134d2cd4a19a8fd39e289faa7a7f952d9fc44059ce31526ccbbbfdc455845af9dcee34977c47970df53461eeb646ad557b7b26d2e13528657dcc73070790c31b92fef161ce10476d79ca1a7d3644096dc7b1455f4929647b7f098020fc436e256524257a8afb50db0935c006a005eeff3c3e9cf15fb2fdb302056c1747a2f551d55e4eb5cc324f284d58f87ee041c3b4b6f5981fd7a88039399b268e8924b0958fa157d1784cdaa8b3f6013a531243945443adb9152c6baf30c6e19d138cc324d2762e2d8ae14ae0276c34436bc1b44d36aab261657badecf2ee1948848b19062663e4c9dd09e4d976054df28cd1da2eeec3cd70d741efce1399aed07d75b3a97663bd1c6cef66653a937974901067a6c3ca8ea8a2724d3966a09fff9ab008feb78c5400d5f84128940100774e98a37eeac1857e600536f7f813d7edfbeeab08b13755da08fd2caffd703c0138928685ff503caff26b7ec8144b0b5d8bf8d36f450efe0eb3f26c6db66cfa5e0dada5ac9b49239c8d15f44d3fc223e599068fbd36e56eb36a0647c55a8eb08ce48a80c44e8980a09d12dbaf5f58a4682c9b73a214f4ac02abc49935c9cc130e034fc2b73761ecd0f05f2c510030e3d2034f85db3fa78f326edeeaaae05ef47a073d13c4da577d124e5db91f8f80eeb504f3929b617bf662b64a1c4bfeb9adc32cdac27e2a2ed1779fa3768242f4a56a7cd3f2f7676d8bb0aa3083e0f18da66a97f67bd75fdf65c86607eaaa40402f93a1578b75988a01b8a039d9a299c238703b9c9f9892b0044b24ab12be25a3b2370c1b87f54e4e2740d2f6e95a44ad5ee7821f50e6402c4e2637e0b0892130a976f21d503c8c4bb9471a73935d838c824114f9f832e3f342fa1d5fe53d29bedb133b6ff348d8588babf3fd1dcf443f597424f1cee1903f211b8bd823cd55e3db5c9b7fccad72b6889789dd1915b8929b24e223916c552561f6db7b272d94ea5ffe58f2499beda4b794ebea8f3caedcadc543ce687c4930a39a8d9bcfc6f5eb249325c3691775e97294a71ec9c0896aca9a207b2e05813319a9d4c20c638096f37cd72fa5dc1a451377dda00e92b70f3919b5f136242821d1000cf3b8950cb0fd14ad6b4bf873fe5789af10e5894a90afdae15849227749d61df322ceca3a7afb425c467148be470c104014b0be335a881376d6bf733e1d02674dcfaea3ca01c13f92ae6b5b6eea78d27298b13044be192ca9fd8316ba5929340461ce9683fb4c90b2ab617ddda423c37de2d8c71e74e0b74590d08ac0171f69b7e3e044713502bad9cc3cec3ccffb3c86750bc5f464248953bd825861836eef4a56782e72d424aa489e2ecc40933990a6055b86e6c09c7a35abf9dd4730098d4716475a6a061d57ab1215ace7be774cc38bb3dd3a14376cfbdfa74867deb37f3ac86edd40727dabc06ed1533308f6feab242c3a5ef452dade33ec41d08481e7db3b35515ffd8fd5e2f008a95db4381266865f72ba68ffb5d3c573735c764cbfcf7c2d208a8c8ff5c0629592d529739f2431c277ed94e4250ab90f5cad2e6933d7f2cc00c289e964a1ada53ce0ef4802e04f646dfdff4c9a30bf43c2725b247e06507a4d028b5fa002e8d7c61ae8df570bf7d987bd2da456ea6503af420629d495458347e5589afcbb8f545f474e1c5f05bf1250713f6f799bf16e8830852640811b04706e0325e776303751dc6c62ad713488ee2c49c66dc0a02fe4f8535bfcfef19cbe6fff2d26d8db4503aae0fe351f788db014c5a564f2f943b772241e9a7595a17676ad06f9acab809f25bb952706c715dced7d3798a4a5f975ad1e247064c7d3fd9de43a62a5fe383809eac2786a86bc2a1d4bc89b86e201d84640acb13dab432e89df4495ec86deb846e0ea68837d5e84575dbb6061daa84b01502de86a887cb5bec84ce83320ac0736420fe9d7995221a321da8f9d29ecb2bffd66a1c704f2605946ec2ec01c63f5740b14de02104e51b46bb76a777fb5bb0a251b2e98007d9b663ef181f4cbc5b3c621d2f28b71f1f16316f5a92ef71899f637efa763a6be645a80515c85c98a08551dff78c1714b0a734b7f7e38d936fb909c655d192648691b97ce7fd31e8bc6038b0082bf110b8a6d82a82159bcb7a714196048893ca1d797009522dfd3e8fc66438d1aa4770bda367df24a5d529269c1c9a33d8da6fff78aa76e1a8a627e6c0c74f69f5f12ce0f471dc6255ebfcb7798c8218201981d05fc7e1902f48e75b2c78cee17d1ca995be49a06197023d0711ea5eaf109633aa2f2d07e8e8b10ff8cf31edae88c7c4a6e486b44f2d34c6936473859afba9c352c7c59ee644e4e1806fd035cee444446aab825259c60b637b4bc60be70841c327617cc84ee69780a670d6038a9cbd867516de17dd510aa7159f68cfb71660b8934ec488203eb4f271c6eb94fc3dad8c3dbffccad20b249940fd400e19839a0b2998105558c7dbf5a11958a9b47d634e62f3842f96d0432ea8961b8f7e269a46bc535bb042e2dfa0df8f8bb41d2083629e67e0ea871ac293925f295aae539ea21793a2d7f62645d6f426979d8d4884f494b1bf783628f449fb807e011ac8f6e621c7657ecaa6c8866e54b10f1a87320bf807962f012e9b0e07179279e815889792542a9bd0fcd7c3547db45a97402d1fc17d1a55672271971a21c18132374f738de0fa43b53d15a2e2e49ee362566901760ac74275a8a21c1e07cc9c33a8d842bf8ce39a88cfd9eb67e41125db45ad11b4365c9a01d850b3b73e5799719cc3f6d5f374ca4af2aca3be99d33fa75114c57b315d8aac270e78866a69aa1ca148166e3843124b4acd56febc4e1b30a98e7cf6679022d3886689a8c4ee0f2a45af7dcfe16be3ab0db03f57f91016edec60abb07680b8e8d953d215c5384feb2dd76c1393060d9e8e7a383ff84c4666e0a04d8270fd5be82fc7a499bb7afb2355b0e58de2b8f824bc877d5a49584a0e95baae9f049a5bd01b272475844c0ee00bc15a94b824f775dbe53fca742da955dbee7f8c022ed959fdca7ff4952ad08cc3a2adfba5749c442cd607cbd0eac29951cf3eeb17546e5ea87dfd8064f550168d837de793d52c8e6252e7cc265251d1fac5eb6269ebe09d1e01d4f98170700bb4a4c5c407f818b6e0837c6fcf497818e18c1015d596e7d5e38cd55decc4760adadbcb89f7938a056546c40bb05a667eeab3165e423cfe5d7e44ea0fb7fc3cf87c115f95d3de00e06db1bcb56f3485b6b01eeed95f894ab90ac75a40998ae5c3e0c565c7fc17fd3ef087d7df4c283a8fde8503e7956c90d064a6ea44f3c024b9eb87bcac56febe461cc63c0a38ad365050f28621c19736c64de5c2e98b5819a3a27e64d806591106d41add273bdd5862f64702917d025b96217d2c059eedb44198e301c4bb7126b3286754a3c0f51be343b63f826869f7f423db1ad8cd80b4d3d184aad1069484f7aa439c2d00d99805c5478047c4c9151c285e860545f328b7584204496e91021d9b788ec0b28d16635355025956e7147c5bdc962a83918f62ef93b369dd3fd42d0e87377f32bd2a9d4011d88f2dc9fc7f471e9e6168847a3826001aed01f6a659ed20f95d56366af3b9fe0d753b3ae3d7b25fe2399e5ec9f75aa86491f713ce314dac7cbcac6aa9ae997321df504a60fbe6d138eeca9171ca03bcea875b797f8efac3755b33f1cc83d51cc7571bcc12d6021870e4e9f7d6340501dce0820b202f43b634584e032a50bb7a010436d734d06fcc8abfbb4ab467b8513f4e1833a067f00609188bfe76d1375e87083e4640a542fcc98e7fad93b6b51a41d8d65ee86c22ea734dafe64b3b75727aa41f38a3ba4da687e30d21d7346dddd15c707e55123bce2a81afe032cc39b06d7c7e9084e8ee40e1d7fd1151bb15b094f4ef87450a4fcfe9c86bb648c490e8bbcf307698e62e323250b3c76cd880bd1d9711f2b3fba43f16967c566d5f723f2e9242d404cf9c595e0115f4e66cf0c18098193ce6fea12731c6ec5304b551abf2a3dad955696c86ec05302c16f7208e2fdaaf68285323c0195f7962459fb178e2a1a97a822fc2fdf00b3e67c3ce598928c92379995fadf91fa1d2df1c0c24c618083fec003fc4f7c7655a8292d37a2c758347f9075108f5e65865469c596108d9a0be2beba7fb20a087b1bcfa4fad85f8bec176dee6da8a179b66b9fa9f7786c579f57733cccd19d5bb1d39cf1294b58d4b4fff1f4194c2e2533781250b6cdc65d9bad2e8c059f71918f38357019573764aeeab74c17d5d5454b885e0a50a79fdeede838be3d1c273fd3303f8a31c871975561246511e4e75c7d2d476380b21b236a69571157ef703ad868c6a6f8a4f110d73d2eb9e303a3e394c22fb1c246c02ccf5593b4fef07a3bb0bd186ccca3d8a4fcc0be8234efc5999f842182b1e448c24e2df577e91d64a6ea4ea9a208256f185efe333061924b8e37fb1711d7f6b23ed468199deb43c51494fd4535812b4f20dee049c261f73ef58380b9412eaf337036c59da415c87725c00ed35b7b206c8f2fc192deee86070700993750be8c38cc480c6b0f799f8ab15c27ca5ed470bd7f11754b0aca69687eee6b0868964193e2fe4eb33470941e6a4fa277fb7a81ba0044ceb379ab77430c8366a52aecc03188cc530d0acfe0d703a697a4085819efcc9f696bbcdd58bb7be5ff1ae7e69e43c9da6bf2b4e5d7848aacd67c0f11792ad68d913c5ba0a242dddd1177e2b40f61b8bad081b569c93393e34c17706c5093ac556a32c08b0b8a74115d1fd817dc2b709823da52a6be2c2c08ebf59901ba81d25968ae5d1a87556dcceb9a8e533a93c70a6d718af8fddd30a9b803c07562a47998c92daa7afc0630e368fa675fd5fe7bcda0f30040e72569e1681d1c9d5dbe6c92089dadb0dada75229b3cc3fe66a3bbf1c66457865818917e6282eb0331e8dfdb5be94f050892a5aebad2ea3dca789e2451d9899b25f2b7f263de436a0e898756c88a53b9b51774695a63e44c8c6c6521cbea09cd25474c7156baac41742f6794ebfb20cfd38beeb75ec7d3452c9b175ea917588381de1fd5ec494cc3dca2cae724198ebdb25c744e972bd2f5b894af254283fdb006acdfb9d3addce8732be89d56fa4bfcd32b482ae4dee10173198c034d4bc98f461de9fdd273c7abfc0d40d4dade4f1752e9462663882e0c6c1bffbaf2dd9f498193dda6ac6d06fc9cd411283e581dce21cc5b2ae115c1e158c6a70a98d4e0c1d20a11596b7996b0c46ccc353042d19a2b22632435a50292aba7c21e4955b5df3f62ac7e37f7dd3ca2ecf2d477c9b8042db1c33a7b935e6a8c71b3de5a887f228900e2fbc06e3ee3e1a28e91dc113ed423662ac1e788508e602053cb46b777118d60d94e117da4850b3754a92cc09127d94aaa128058c9ed60f3425164cd17feb24c383d3e3d3fe4638a6a9809bcbfaf37d150e407329c36466d92fc6f7313079cdbbe1cc7eebfdf7f9d59ca2af3d028eac70ba63f8219713d1a03d7be23069749362cf3961be7083dd7d40ea8ca755aa8f4aa9c86dfee31df247e73ec274788931bab659e6d4dfe4ddf1e6533c9054b2c8d40226d17c0a85ba8415b814d843fed2e70141cf9ac642872fc9b5cdaa5fbfae96aa3cc6901ed8f33b6090969dcaa4968d4995c0e79e217cfc92aeced2e82dcdefe89712f452d5b807ae08cab4e87314f5032ec017a55cf254e454d618d67e616ad2072047166af80dce267a0e8ee6d309ff3abcb3d60c322a22b3fdde8938dfdd56017dc18300f62606a32e01dc55cf232fb104aaed541b71306c610522916d6122e35b72097bcb53cfe1b8bddadefba19c85cc165a5f9d80ef1ea326c08b650eba19111166b9e3843ad3a9d3b808b9547aadad9c7cb93fc0963f67e4ecdad6927e40985d60047cb0b786d9c5c64c63b8aef1214da39d9aa64627d843684a03947ea81011da472a39399fe3aea0d5c6ff59630a218babdc076c0b211af9aae2e04221395e209556a4ed98a6f53747a2ee22a62b01680546b4ce67f5880d3b9d74fe7afa019c01baa009ffc511af252b845454ad5eb5c5ae666527078b3e4f1549ccfcdee34298e65c5c452860397d8b7516789c5b5148fe0249819390088e5af9e4f492466dbebf2da8f6790771c15d784a746883a4cfb3246110d42b4b6a3434f69b6988f01efa84f94da8ecd476345dd8be6513d8a45ffda3258bcd61a89efe05c0d873a1e8a537761e68b7601d12fa727d4bd35cf0278303b67f91e7a145c68b0efa1fa0ef9f145f22afe670fff1e41f6db67d442e45ef618ef71a78ac0d44a9600c610f0b1bcb3d673af564fc3efe0b7ca7b82f50878c27a94281ff7f8c2ead1ff2c819db21217992068eb12258cb7624019ed254ced5539a2f4c6bb98dbc49b3b13766fd0d7ac926d8d054f116a1bee60dd4515b90e423089580ce9e8ff728eef3fb5d980ead47c8b6a6de643e9ed737f635fafe572fa80fcdbc4a1a44dec8988683e60fa82b10ba6c267f880f76b7d84e0c15164098e345336550791257c98ddd9b70a83378b4750909cd1fb80a80d288d5dac47dcb4dbfa8e007de95f215568d427fd759ecf4495f2e3622ded772427b9ec633d3edd22813e5f5781b7e95d6d10508039ccf7c6386314c2d1a2df7b7e5eacb1e1d9baa86dbd32c912666496c07f54e7bcebd9a7f590d5fc779383d26e62d31e1c734a09e6e269d19eee806c73121208d965d2fcef7d01748fae0475281d210985380a66cbeea5612dd1834ee75ad88a4f2664c3544640581147167351ed4c273d895d041bf4fce3c11af321e9e6f719ab0f93d3e655c4dcc2d116f030be7b0567e1e0a57eb4175baddad62989820bd71f343f87048e0f2fb23122f63f630576e03e328aebe173c0548d3e612f71cccfab47823c81a9d65c0c707feee7591738939aa3115394ecb518cdb943071b5870e3f164035ceca4a815eb35a427e7aa58c8567ea00635588d39893bb4c5f0f5754b27c9de19d40b24f1fbef0b0ef58008d62b913bdc36cb78a8fbba8f141959fd081d41cf68099298db7438a42078d52c6dcb7e321e88f4c3d47b9188437f7b2cbf544fa38b8685f1fc72cb8b6ebf222d916139c97e1723dfbcb1afa0888bb4cfba87a16be477e488c65593b2222fba67ac48155b2c58e6617dae82e6e1f5f013b0a7e7a3b743bf926979b782f19533307b17f5a192d3e55ce65c9356a0906418adfd90f514bf7a489db81812aa11de9353b5cabbeb5e988ec14f2e4d9f8bbcf78bf11c7371b7375f5a2f17bc86cbba182d29885a47e44fda5c2eaa07ec344d5a49568a6d9f65e2cd5d091720993235bc17d970890af980f79fd1fb922e47ce66f21f77a4934eec08b3e05d8aa13cca6b454995111ef2311678745d474f849aa9a761226eef07b6bec39f546604b22dd6e070da93aed831805d888965e431bfc087c02c17a893fd13500ec486f7f9317bc552d9b39d932e4e79993eb3529faad8a6f0811fa2311422e49ff2d5a582533d196ef15c6e813e0b52a5e9eebb62a4c275eb505c9243e3a0bbc4a3ffd629e5d023242e604d30fa0ba1dd22845175c8415ad903b59b76d9a22773ad6e08d3eef51289b2e0c58c1612fb83ce5421f691239930ebdf94c95470088a5228aad07933e88d6b0b1b831678c77910b0fc3a854bc9dd67bb116fd245f76b8a943fa95ff55f96405ac38a53c1f897c24359ecee91c295a3c6c8b549ab0b9afc72d9188c2b734ca1959a0773bd24e45dc6c6e5bfaccecbaed57e8d617523d62be66f079e0e1866b90adbf08dc89df805ff6959d0f5d6d01a855ab7f4a4ce49b1ac17e884bd752aedbe9e4b8a8bc8694ab6199419afc87a3cace174ff27b00487ace016f72ee8d662eb366f5e3f241087d9da4728a01eb5af513b39e8c50dd6bfdfb252d6a5c41959b171e5533ab43a9c555048b9b119c4bd5a8cb8544e135f1eb1cfc3f74df0a77ffd5e8c4e1b9747cd4fcac54357a717a0085ee4ddbf4ba405a07796ae3c19ce28bfb26c48a98ec809955b2d9043e9693595f6ef77abd8facd6d5f40da1cc3bf7118a3cb140447c42aff8cfc4ae610b01b68ee3cda475cfaa69f8a912d5a6411b636315268038253c1419e2513d0b2351c0e7a80caebf05e0727e3860728e9b4a63279d6482cd9e0abec06dce2b1a07ed50455d937ca5b2f92cea27e6a94b4db5a60b44d3c0c0d26e70d816aa31f8311fb71563aa755acb58e26d5b3486bfeaadb4f48189bbf66020829128172f85f169ac5c63d7d06d388c1caaa3a331741ce849424dec54951a7079330f3bdd2aeb2dec16c8c1c0ef579b58e32d0ea923220734d1a45a546e86baaae2dfee235797a0a9d14027242876200a2d0f18dd3f4d7ca0ae08eae15160aa42b0ce0f37d6c0125e953ee0b0e15c33f736bf07842582b5f8d9fd320d49164b6627b65fddc70687a9f87bf4caf8c12337419b2e1ec9bb9ba53b8e2db1e84aeb529694f582355c983f4d71bf79d1d1035e3a63e1ee5b866154a8c71d47e554cfa7850c3ef9a08ab01a5edf242d94ad029f32ba00ec9c84a1966138907ad0beb3432be28b063eac8e6f2348d54495e996ef1da811e647ebccf70579669071c61f6029823827ebb11d1b2673a28b170f7975561ae66a5b05eae14ba0f3f279df87d49579542268dd9a8409ece318ae1b6ec96f61d524bcafa2eb33cc28756f3040ab18f9e753bb470c2ed882eb49defee1d8b2af84b812dba269989ed11e86133f72ec59c3ce305c076d3cc789c5461c5270099d3f639f0e475d21bbe093cb97aff1ad93dfb7e05ac705c493a2bb7ccd87b837a8e0db24e29a1aad4bcc6876ff533234c54e7d34d693a2aa82d1d204dfa23001af4938fa85a73f2f7dfaf56341b8fd1cb0bcca743677616c711e764912f4ee3d776cd9c93912d7e0013e7ccf883442553c7f5d043845f28e05c274349ba732f427e39f81d20ac05d8c62ac15b3bf04a8f2361a8e6af1fea424fa251ea23f9041cc18eb7e3b8ab5f458c9e3e7d391ca4980ff0517af35d88c79ee8218c4de423ed601250ff1e08e00a115b0aab196a46939300597c088a050f4a4e83891626c0c9964dcf38695939a29e96bdb45b0460c92ac8175a8646fdb480674670f4e4ef4ceb1afb71f93fc56b4b0064140c9d4d8a7c45a0947dd26ec6cf229673584c5c50f6d8a47f7a7fc058d80495c83b74f0ab3a5c005d186f54b1b655d3e71d292b65e25f771da53eaa400012b04a6eecb6b9b5add8f4cacbe5353aa05e3234b3a9c9efd87a4abe664c4de6a045b7202dc20645c6d9315d6e238daa2f6121f7083af19c5977ddeee8ea9fc93b95167f9d8feb9b2a9ce5ca0226fb4182d8c2f2de4fef89fe58efef7b759b30b26be376ff26666a425f8a3e195aaae23a16d8fa26054ce3fcdfb28990f91624761a2498730e4dff781534321f1b1d79d50656fbfa99a0eac1d748ed33b5ee7deaba237afd14bbac31704e65d933e01a8737475ac84bc909ad06af6c0ecbd2ad917d05031aec130cffc6e0e24169d453e0d7f3806c5901058244e3992c71a93083ede17978bcda18203088df4599e7cdc4990c6e763a4af40daf4c4dd42078f779292c2db89a10d6898f70bfb48aec6325eb91fc57d9b70c89b6a1a3e4ee00ee529bcbc6e14cd9b3b9f218414ca9207ead7b4b7154171bc13c8c34f40df480851024b230601db158cb137c7259e6a65789204f8ce1716df1f2ca78fa2bd97f398202e4a41c6c46aeb60abf8c12101cc05c214beae95ca887b67ca95e228624f241578381bf4b72caf5e870e212d716a60c60ad955f51c4d8fffb3341c31471ba1b9e9282d58661041ab7056668c5e3301b84a8e322e9e257663b4d237dd005cd0396b07c177fc70ff2e53ee36cac25e20e16a163bed3aec65622de86878899d62b92bf9b349e5ccad5e874ba04667e5d994401e78faa3e2a7d6ed83fca0d46ae42818d5285ab54475cd90b34ed4ab096216ee465fd5582c21879dc677f234d4ba1b1aa40ac2f22075ceefc4135626cd49825da2fd91b6526b81f366066508f02fb117265f9cf249e387e2ebbc16fd76d3eb603cf240e4bf7c6eb72c39bcae588fe2fd4d69e3afcdbc195cee39d59a115720c48f386c9545e1a35c77149f1ea852c836bf9bdf525e06baea6313bf80edb6c2f80ec372629682f35bb76e33a7025ea8cd585b921bd49ce8bf3631d3871ce4b0a99be5cce5cc007c4ff39e568d8b4cdf2aa691c684a7951c9027f166d8f772e56e109083e4e29afb39447bcd3cebccf6c16b0fb1c0752f8d89498dc73b973f470fba58648738a7675158a705b7d10d7b441fbf4a238252f83385d231315d22193ad856bc11139cca1af03242c26d3a61ec6ca7cea933a188a515279a5c6ab4fb6520cda3911aa8aaa362884d1df4061139b0bd059292183d1b09e1fe7a2724b38f3ba424bddada7a2b17ab0aa5204d630a7e884adfcd4074adc5ec3e05bf1923e745b5c58e43ddd89d0ec67feaadb8275d1d926ebeb7ed7c8b81c3ae0fa0ab32154ee4443b2a3a99d4580a3431dd83030d07abebf4468f4ee3c8b1e5c1fe628aa9db0a8ac9c536e4b69addfa2ef543bbe76cfc0aeb1312cb5cfa6d7df750505e6b65b21ced323be5f08e58862fbec5390eadeaeb6bdd4f2cdacafebd37d12fb6bcd89ea6c2f0cace2d82155b6f05fae517e1c794e906107f01c0f16f37009ee5fb16294db5630d3574d74eff9a1bf219ad535677ee14984dedb7e14e85205c26d37269eb2254e60083834d7f6055eccc55011b136932ccdb44604dd6d6b9a486b23632774c6f9e7dd39027a1ea8d70c2091f809fa9acdf96e6bebd62a815909d441dda1abfc41b43339ace61ee9f7cd0a792c7e73c76959a41a83ce188c488b78ad9d6cda947aafebe556e95acedc00eda76cdc24aa6106e754b1b877618d06c718e27768250545c65051bc5eadcec0015999ad0c1f6345a51a5084c27aa12d41a558fdcf41ccb92ff05d0a36f550b0e50fdc667654397fb560b7820f5d30cc3cfba9ffd544adf537b41beb40045efd6cd5aacdcc510fef1f5a4571a6b343fcf853f9381b55e892388bbeafc371db03dcb99688c460472cf50eb16121e2fb3002cd7f76452418257b8091ddac9523630345ab0559867dea8fd30fd69906bcf687c6b291c37bf6b410cd51d59fcded7878d6f71697aa941ea5e18d0f95d543c0fe5599cbbe60889456c5c45a522bd04901b5f459d26dc6d506319ca58d298d8e636eff7ee532f07e0acf0596be8710306ede4b3a98935592ab6ffe0ff58abbdbc2df400c9a5aed5da5576be491a7fbda3da6d45fe4a8ffe43ab6a5cfeeb445453902054b61de00e368ce9f0a761f09b87bb9d6515b3e7cd1c7c4dbc3ac3de781b9ca0f01cf286f0842cd5588f1bd1730b07ca1572b2e1ac4bbe71ef790b38b03dac939272184364c159dc655f0bb382dcdc7f6fb1a642873255f0d9a659d56be58f8fddd3c82018d88235fe762b2b7b66f4faf659fe746f6383ba2b14e47d5e00d01c5766fc08276f27283d2d4753a1e344aebd5287054f592a1387b248bae0e33837310f474d51a9729381b35a47f7a34fc2542c07282766b913f774cc5c658a58d1e4483421c5e71868ccbaeea9795dd6918fa5b732e1f8c625b65d8df6fd5a464e9c21be1e77ccc32c6ff6c61e6c976f281616651eaf9cd18844ed155eefacf5076eac8cbf0affbd7a0ad643cfb582dbccc7a8370afc5330d1ceed1d31567988c8666f6be54a767e7edc10c9e94dd13371ed8fa3b8ec30cc67e4d4094cdbec93526498c9523248297b5fdc531db85e11433c9d970e704dd7067e35e75478cb0cdabf02293184421a4638e82c2191bb8a21a8e7c496df84573d54fc392f4cd89d88c857178cf4cd13c874794b2c2bee7e1d0669c5fe2f9105f08570eb897fb37efa0dd4abd5e0ddba7f1a3f907e3afaf7fd7ebdfa99b16db3d68e32115039e07dbe7a7b8b5e98ee9efd04ba77d6910191bdd16e39dd602127fb8db30f39a3e4d4db3ec624e034542b68145245faee0fb40b6675b8e3c6521940dcded039feb589498a102bf8025c85f9ab72f133d7e333ca2ed947eb6947d1d6f2ef640cc7e29474175759a57a02897d804856ce83463e905c9c84d5cd30aac7a1ae68b1ea2cc0bd850a2bccc73fccd7b6fa2f9cdec4e327e0599ba804e9a76d968bf9eb0a8635f9830389b4e22ccf7c527986728edb790fbd412e0fcf8023f93157d5c2d29f02f0cae15f8a388345f5f33a00aa13e8ecfb2b5d1ed64c4182edaf8c80005b8269dfe75fb4dfe338b460e7836ea1f470af508d444b723d03dca29c6bf3b59edab2f7d6651125753b74f082109d37fa9654a92bb1d777d0fd6fc39b595bb4fff25adb6de41a354b8b8969d53c10527cc10b55ce94241f066fc9d07e46f313db87de2696c3a7cb7b39a4a5a403e65bbed723d71ba17fca9fbf7f9dab0cd3af2dea20e3576d04084c0a0f11bc6e7fbf5b997465cc687578a00490d0d207dba548226113b4bfe6f038be45308b52f16fc4e70c6aac84d2515d006866f65b8eda9504f82b4f6f2bea8f436b17146f7c60c912cd056f66a21d1e05dd2ec0a6c3756c6aa593eb24ac439752deef2950760c397aa48850c3e5cc4d5b734c28159160f5000728b4df5cab4636b977ff861df08b1602f988c04df03a0d8db86b17beca1f60efba566666b68fc31f800517cd0ca1baa7948e4b043e683a51bd522d52a7a55bb88feed0225c36c1dc6f1930e4668a20784728486d116d545f7ac7848d2e20c057debe75b8793942f6be0390808769130834507ed7e765e7ab64bc64b55a2ceef155bdc28e4ecbb48e7a4625dbfc5b48b333e67147e2f4cf36c2629ea36a9f05e294eccdfffed9a79ec63bcdafd677b8b54d328ee147d200a530b17ef562cb92b3b086a678122889d15884479a2ad88d5242374ffc02ed392a1d3afa0b88d3ef55b1f7b0b1f5f4dd15f7c5b8bb92b9f56104d5528e211b53994c520dcce710cce513a897c77935b83f03ba564daba669b73abb7b7f555afce357878a33cf868bc549979ac4515c6a72ed8b17fe95b441b2be2b905f74a015cd2766d1635367706135c6479995b2bbe4ba877e1a76cfa1f21f8dfe27f93b00137d9127b9c9a7c0e8b271e69a41401ff98418e086f716149d20cdb1f982c48be16d28aee24ea559790b1d1f5db544af91f916b785c54a62cf37931f3b519b60edde7c2db440d963b7806caa23363feffdda67e51c114780e90f43fa15cdfb09350b1a3198c29d188fc8cf10386c8796de7deaf9ad1191991506cf3017fe9b0106041b2e1e3b02ccea8afcc426e275e5e14cb7d5fe7df3930ab05a269f14dd5e8e2ed1ad1dd7afac7be33823468a1c474944ae4a81122b995c52ad4be3e08b0bf6bfbab64c04deeb4fe3751ff1368f41bf77558d2113a379cf6774847d5831a0b443c9edf4f7563fd50f3aac8e20bcf6228a079444c341fa061f5602e918f3499b1af829a8258cef12e15b24d663d4b7943872bde8ec445fa1dbd37fd7dc035cd4f7327472cabae35a438c41c07f446d3dcd64580c5b2ec640b2fc04fd07a46eec628cad0c65205e6d18b1693bd93cd500abeee69661c02048f0ef9fcb20b22dd337c455003a3f5a0fb40f5d0938cada88c8cd3603540ae318912fbb9b4fcb38a4251e2c82cf32bf5f5e478f23497e87de2e2da9f10c85b66ecac2fbe8e4fbb6f23188a4066f14d8cbd51bb5a21da851137bb3439b663fc40e8128d19ed1ff7f4430116b38aa6fc45fc80f516da61cc9535ee164d7c41a6860d01921eb2b13fd6350af6f06d3c6d2535dcf48e03d8fe41a20c035078c175fad861cb9b0ad5223328f5634f48127f723ab6acd3b1f7a712318e032c3a5b1c2b7a5e56f7e34ac29ac425f57b40ecfcf323f6020deeb96682336a76698fd4c630ce58b20e3445fdcea903c945a1bdfe9f59b77ff3c26e7285379ef2e7c05b253f8308ae911810db0fbf582b41f0a2238edb26bc11db74cdb4079f5a7de339ab7502492590d375bf695c03e2bc783dfed336e656dc36bb28076de96166d7f4c274c942e74fbd41fd6d8949a5433efc02f4d2b4657a972c46c07e6e0eba6e6493a850736b8d76826e970ebd5939a00c64ceb39c20ae8e0382f30e3ee3b61eb090bde380d92732c7ea1be8e8bc91c274971d45d4b8f912da82dd2bb18c23511c7c56494b9e398f85ad8d81e48dc2d1d1406b450cb4e29b5f56fba6771cca3625b9489bfc38c2dca8528918f704d675b842d9c3f2e29db394861517495a85aeb2c79ee0fea1b6a465df6f1a77814d8a1bf103749bd7e3c5d92878785c96bbe3d2aebd90fa314913166470884693ad773f8ee2b04493b3128ab7391ce683039eed644ddfe6f7217f56bcb2d13b8efb297c22008f9232c0686f66b4b9ba32254166858904eff53da2131b9719a6b16539877811023ed2af1c99d93ebc78df6e4d2f0ba5b251ff8d0e6af60312f947a0b46abf0bb742ae7ee245890ff457da1d5c59e982bdf7f76a59bea946b3e11336734b0dd3b51b358652fc3f0909bb8702d9206248d8a46dec1394c4fdc06a8e4ab392c0f6411eb2409664bd5b16275d70b6380f228686fa4aadf982e781d6ae130f0bc187781cb8043aaa49da1c7268e366594d7c471008cf24f6eb371e86b5e6b37ac30d963bf59bdbed29c2f0d1cddb54a7711f8ce0b72af6f545c8c24cb39beb3b4576fea4ccfc3cbc11500096f2cbbc596d8845f82a71aca5d032460050bb14bd6047d3f9047f1dc6e02dea54233b71136a4da36d6c2f20d581ff9809e772fa93ac7260086a8e563a067525d5160166b1ab69c1a6d13488a8cca843c1706d7bd29905cbc2580dfb22e3750c5cb55939347bf2805e32098b810b1519e33e926390e97d2784c25b783dc02e20187927050ccaf01a61ce07fb0a6489988917d9a158a09dc2d771b1471bf016d4b7ba233e99e03b3e02988d7b22df42e2c8f73540c9bf96e474d43b47d382a4b709270adac891e3949f830be9ea2f4949281df051ecf3b5527fba143897c623453c693346a27893bacd5a5f67cb049f1153baa290d892792a25cc992e0ac092d698fb1f7f9ef206e88c215faf4d0e37ae6e11b82e0546b5181f72af1ac7f5b763ca34f37b1548d3e8e948b50d6fcc9e188167b03624c6747ffc5df0f7f78704be902af07f0ec8b8b26e9571294ec1427526afafba38bbf474ed1ae18cbb0dc0ba1598af496b2e583ebe7d6f0c3e8e153f0256e5676b518fb129c5c946a302fd32babd181894e1ff32ad53bc89e2a9f80e35f844af2873009e45c8d5216d6d3626052bd0d3275363268744c8783cc53a8fc6279aaf280c4c0d008c4c4f2cf19b2ae4fd209ff52feaad93a362d734ac5d5e56482439592f842d72d4825ffa3606e96e7b1d9df08ed5ce951e7b896929c52988c6873bee72f7c6e9dfc51a8c8ad332f91cee7c9386c1ab7699528b5a5eca2e5480e2b94b889c0fde6707a37cd2c4ca03460a935a2fe45955b5c13bfc7bc41f1f6d812032f74b662a2b79f5d125c53a9b9315ca1ceccae8a9c1efa44407845b2d8386b3a5b07566b8acb6bae12e82f1be621420dce6accd07f1128fdaa654d745bc9902c381a285f678d15223b77755b8c71ff7f03e90156499fde42d8875b56aec3c00fc0439c76c9a4dd9653e865e309398a810182c03e108993923d8a88cea8bdd7df103a415c93cd2f4977c577c1159fca9e76775a6071723b0ff69ad12101ef49dca041e7b2545c9b5f9ded7d17dfaaa4e829f016c61141f6ff52549aecd2768107839e388d7403a562b1b64a997bcba57507e99f2ef1f9f54cfc17df9e755b24a9bb3920f52b23ebbb3b0aef12a66ef9dd3c8b338b8c062405a17d7efba23e81cda4ec6a67502e353d9a3e84dfcc4099be65791a84d00bdcdb37b7729aedff86c162246c54eeedcd9bc8aec57270f0e638c8e5c4f4dbbc0ea5cf0c4e6887c7389968cf12a0b3adf7edb8529dd0d18efe72a1839868925342dcefd1cf24583385ac0cc7c7242a9b60303cda2c14f1e7191382a5e9a4fe9831208976f1e063a0c4152d27a32cc2e13cc27a0ccbeadb6b4ec9ba1ad21f85a73db175955d8681cae733e44502f9ac4d13eafc6de3144c83c8c6d89d9882e6d081f68922dd51613c8d294d3d4c40877f584e436fa4e99569683d32e6232c12521cfa341ae950e349c95f5839bfa9d3faab7aefa5eed1e6e54dea82ae84b1c8be29eab05439e6bd8e69ffaffb74514599e9607cd205cad37d71889842fa560e4f0498c35edb4d742be279ac476948da2c49d386b41ae637fbe2580f66f5976d7893fb0e7a160e9d3ae0ff58283114c65a750ba6efe2cb625fa6a01ea685a2097ddbadf126248a7838b20a88423e2c2cf9d924d4821a31979d712a75684dd980da876bf7d98e74d75654d3f7a4fd7eaa79699e6694f868d9b6bec1254991549fc2de99d9beda5551f7f3da86c8ddeab32ac0de969457cf0d11bfb7a399375de10767bb0fabf607cbc52a6378b24bc5ba59dbac9af88e5e6723be62cf1295f2c5278dfdefa1d53b4d2d07f4c86a03572ba091b34c10c31d26d26a9a120cb446f15cbfad5f8c7bf32a2135d99238a45d36e5980565b8bdaba513503d8dc95b401fe3cbbb1306ba0878743fa0825655876bde2d9441eb38b8bbb87eac51b37dfae5d6c73f6162d4a5cf39ef9d5b116cfb231960ba3e72e28b66720b4bb187d643485b68f39d4a44ca6ae543678c8270d1bcd69cb29f39467ccb6e8d0499da811e18ef82b51098e2ca862b5c59d3589294a145521c07093b7b85273bc5fd73f641291c5d07724bcacd1bd5ec12f3609bc726e16b7d7fa26388433b9cfd585f629753ea8e8ffcc3654fe30490f676c0b15e3402f8bd138ad438b76c082335bea5be45c07e970d98389faea64caa8714c841c0ea7da7f7f7f437d320552fcaaf3b8a279ce88e55b122610d03339bcfe66dcd18d66a6c40b73fc059f6231faadf38800cce7585988e0b0c44b1d0786f2acf52ffd783202df39e27bb503e747d8d275c369e25b2fecc1e6d92618bb402b315969294793cff34bc4f44f04ab2cf1ff18b27892af0f45a0523ca39a705b4d70b50091b921a6314c4349df1f3e4eb9335b285fbea3e9df6d02035bedae861b4d3ae3c6ddc7c685ccb6397ce4415c95c6925ccb7073ccfd9a12ecc80d71ad3bac2cf027e88060ba7397d4c3aa1d70683d270ce4fa5b1a8b56868bd101c20fb85f54a59b0cdbf4ab15bb88cf236c0f91706d20a5cb907ae5f89bc42e4b8c04e21fca65f214194d4e9855d9de035e9c74dd7bdcc5ac7cd7ad28c70c8366f86283613e021479cd53afcfd4b47236b6e95c6c1581f614c340264839a6315b6403dd1bae832aebbb6bd5a387335dc14f0c0ecb8fd8f0714935f5332a79813bf8220b21f2317e00cd0a308d55aa3dae5163066eebbc03cd4e43610aad571628923d956b8ea7ebcb99d22272d9a5b7d3907acf491d4cae7b844a5dd6cb8e5436fbe8535ab0a51cf9effd6063161066669f14d55c5407184fb76c1b2dfb98d145f3311d60f43856d81b9cdbfccf0c7d70f86fbf0fe2923233e61ac7a5992ac651e23f7bde0c9cea209f51b92071d2fdbc27af36fde6dce76248e3116c7d384e18a77186080c6163abbbc079198d173817d066a82062082da90abf7c08461fff3c9d99f8207d6c66a8881c05ab98b05e17d683570e707e178fe0a41bcbff1a171bd39f6cc2f89e3f49f97a7de95dc69a5d7618a41861d64ffac223c616d91d5b6e049c76f91e4f6b5c7b62874d6e96a4c5cb5c89234126d87b50de4fca6207df9e602161917e0ca00ec7a22c467ec956ac3ae5765ddc7289fab09711704d1dbc6101d61a6ffeaf3418be4de46d2b309912e9a927f03d3419c20f858095faccbe7339bd74681622bbb4cd79b58292095ae3d49c52dce0163a23adfdfff490d4425de3e9dff251c7a5f609ca326d8a72506ea8f387689d08907946a38d35c2330a7d00d1fc445e1321a3d5ef5f658d3851447c84e12cff12800c36734506e7295e74ed4779496efbc0af2af7d8c31c16bff194fb0be25cd1abd3c4685d7bd520a7461a1e453a7752e7f8602dfa965a3d767f10588b444fd6365c2a08c740c6d7cf7394949493e18b7b7d32ecaf4ee3ec2b908d1cf5d51d0c59529adbccda64547465be1c47b0071dabcdaf1e6bbaf6c1b53cb1aad965dc820501dcc88906bac9a660545565d7b8d7ad2d76b4c61c49b181c3d4fdd0d251da78467ffe53aec4931cfaa949075a66bb2513c9f896b0d4dd36ae75f32968838df9e6e6c5b64e01a5756e1b15ffe368280f346f53d7f4a96374c2a411f7b8e3976c0d5dda2e845ed3f8b56c4dca4ab3841d629bb41c324a1428cfb6e542abf72e2939941d995b2e5ad73ccb732e0ca6cf9c78c9f5e71152b91172e626cc48dead5e096293f408efbe7e708ba92906aed709fc13798952b063e90551ea8661cdc804c234c895d267b0007efc038d8bb001dae2f79043e529810303ba9bb3f1435a4ef4303c189ce836b7daf00806002deda945243349dde59fb51a28aaac1791974ac18cdb4978b87e5971974077d92337a0528d42be1db59ea3ccc50b4825d5e4a6e46ccf80e19d0a95c9c5de6de2da1173b0f51ebc0c0b7e109c40b519f0a0f29bd8547773973f8f82474bdf0c95a3b4733ec418702f92b6cbffcd03dafdbea0c4ffe269122726fef70d6db0bfe1d0a0ff2d711d17bf37d59fc3438999f2fe30f81c379ce296cf9abefaac392c6938cb15ac6928f4f330bcdcbe4e10f04109f5be298f21e0b492ec6f585c3cae1402f48675176476939479c7cb3ec18b1fafaeb3a2165aa7ee8f914dc25f0673298db2dc948d69379f937fd95947d42b1e88121b8bd4f31d2411ac500aa9f216d1e65393cbcaf0ef5f3f48443343f8ee71cf92329ae4dfd1d2ca4bf6417ec5634c91dc816f660c9d7fc2b76d24cddddf07cd6147576a061f7507f601f8436c353b34198e0422d552f2d9f5f1a588a6f1637c511b528b0cbc265e77c2270a1420e048773fa71bf5bad7ba50aebd07a6a634022079cf68663076aebb9086793a6aff397a9a0b2a2c7c4fea6b9d9e1677b2fc682521658503c6653ef32e803379ad42b8f5ad2cfc67c13e9a0b607f00d81b0062b354b28e01417422a7063d5fd961a5e7d91e7d4ffa01ae7a631bce9ad48652497166a552ea80c1329ad726d18e929d0e82ee0d3857487a35b6feba18e5a6b70f596ed22d28d22e74a6f9f1dfec34bc848a3b5dd75ba8edd7b4705cb77d61158a8713e898aaaf600426cac7dec66fe398979393c4db11cab53f3a45437603b9ac62fe0f0ba30502d98c0e3df605139ce8db14aa4749bdb36442cfc081e1c61a99aaa9162e73036c4277685439d875367a7ea6b66b0d75288449a134881bb4827225e0b493bba1733a05a102b2ae7bd8c205e049bad89a0aa5c923aa83999bf37918b450c058ba7ea05265ff9538b03bfb5a9d5e67dd28fd42b25401424e6ecffce2b702136514d7d30f1d31da741c290176a70bb13990d0b617d4fb9a3e50c08f4b106a6e47a4eb54afc0b65780e8d856aa5b1e6c7e23d15458e89b71b3aa75dd09da93fca96106c54c5d5385ec1ea23c60593dbd5bbb37f3012b6117441924466dea7c5c64417f6a16e6377b499e25bb9e3d75dddaf8dda10d9a5c99d8155fd6d04622c5bb69f095a75f3ce19fbc85fc420612165d27854e66620700625bda7ce44f1452dbffb1ff9b76938f1313e51d9d1317d5257dc5248e276b02487b090284bbc2e87750e74cecc9240e24791b0e4b96e8973bbafade0521689f0d09d4a4fdce3a7d8628cea7da80b4d57e8f8503f94e2def67cbdc3ea2fb3f368a50cc8c948b1343144e1627e9407ef005554b03b2fd1b5f16354b2ba3ee8b80dde295050af708bc95add299c756ea3506a66f59e562351da5aa99934c1620c64575e8d520f61cd794c8c8977620d15feb3bc83208e357a0fd76bfd52f4f55775cd4226742ba4044194d7bb028ad3128591b408ed9bd35050d14effa2de2f4d4fc882490b3c589ac182d6d7056a55f1a36a502126e32ada404e8867c56e49ee82988055a17145d2c1ceedab9c5510fcdef3ce3c608ebd88e776892df2e98bc0a363cc4c7647c9dca9b520d9b64b28f0fa82362c238aa06e3241717970aa85c3cb40c018fda5e9ba09ac35ee971d9a37847346e36c4f8eea72a8fbe41f2ea8191965d3b35ad5b903139e90b356e51bc14b9b804b2b7e9867d975ef18f07429882b607635eb3f7b951cc0e45260cc25dee1ce3caec647823600994cc268af4215a9688a61bc0424601fef1f88f321dd851e76f82694a90d9f6410bd40223d2615bbb8c5cd115a35c239a13193a4c1dbb89d3054c36377c506e4610a5e4afb46e78dfa96e7e0bf0b642e668f34d9c90d873e8a7172f3350e7245a399d422e3ca7ed2c4592554021319e3f7989850a21f66a2bfa2a979c587b3ae12306980f842923e27ee754b0c8811e2da3db89652361cb2929eb01ddc09552c3f82e24e8802f80b470592d989b292d98e865f9128ec7f192faadb7c50c5a42fc14f3709b7af45750bb52ac35ac07e1b4fe3bcf7aecbb3c51e6b96263454580b830de2435fe7423eda241105d5ac301d636216d4f3c2506a4e530621bec2e67999606722400e202b64655b4dd7dd93fafe2f04081f4928ff21d9376405db1113acebc2de7ba9ab8481c53a7dab60eaf0b3015ac75830e43e99ed3d5d8b3d16dbed309c4666d8f1981e36b02db9f067e1704fbb17005ecf288462676c9610a1b5a58adb3ca3c9ca37388f8b260832a3d3127cb05531e37f7fc732b2655c50f9e8467c75349545de36e8c72ae892c9e170854ff5b09c2ff04bb1def012fd09c2a019de08b91ba88bef81733e25693d6f877364a3adac58d2565d4eaaaf4c0b5a6f73a53ae9a1e3f6bebe157144a2c68189876bcda1fcae8db029ec986c6ed124c87f4b90f47c673485fa1f2fdf1f7fab0c3c661a3a1f1c642b3be9d1ef3ec0f7839814e8a09a032f2880a9f5452095794c3c3bf2f7b402b2df11de09cf8eec7d5c2eba94c87f236c12e6347ef8a06eaea55446d7abd29a18a82d39201a2d03a474413990d896fa43af7a14d63091e6761af3c59afeb704a8a3c22d17d0c11605ce69c72f53ce7b7cf0c03ff057d40d16d2374834ecd58bcbb57d14e265785ee0d36f30414e873677cafcab888c141ac6959579264425d4cf04597000437a2f57cf741e80f2d3724bb7cf794020656cf85302f7852acdeb577b8009b04639bb9171ab0ee0fd05273733e589b21bb5d9b19db705e995197bfb4b46d09c3e8a5cf04fa0f43d428da0ca40af4ae0b8119f7b2a8352c1d2c18c9564277a59708f7d9e6012ceaa2426fa13e332d1bee4b8ab4454a71ae3ff7ea88000e00a98167360b3805ba9a61f58b9d8a4e48edcc3fb2a9a984b604791f2391a1990bb0ddaf1548cef68e05140442d9d129536102bf177d11a7d0c69cedc7d6ceeeff1295fb52433d2438ad0a8c368d23d6da2e128f8e4181ebf20f754a36fcb8294394cb87ec072b12965da0cd6f1043afbcce5760a01e8902b5af8902771861d4471f1ef2078b3f734bbb73860804fa34e2f970adf44f37d23e8e648eda68dc95a9e64804b47d7769503ba873a66a61425164c8adc519a988f18bd1291420fd63e18dcdb240116e05842956d8f7ac9af26c0ccd0db2cc3b6b01b66da8e359e56e5fd8fe5b464484fc368ddee89a2cb993257b36bba1e385280418860580669a2662743771f6428be373851245451287bbb16301dbd24e90aa15228b7bbc164d3a205ecdeae28cc8db0698abc659950013431045ec21ae520dfe637c899421549f621a759ae9d0801c81b217922a9725e8b4686d744097af940dbbacdec49c928fe2fe19f148c77c150c94eb0c8ccffc7b97d4be92d41afa1a749d2d61e21b6d66ce3b256fe90945a7e4aa3cbaf4f1ef35c93a024782f3746ffa3a547b0c05b7feefbbc9df878c3bd9da26cc6d6d6c5a2646f56d0a1120ab9ffd4d4582eb5ff911d396f831bca19bc5d9c08b5c20ebe13cf138667effb15f07c88d894793cda408728898df4867490a776753cadc6188b75f6d7187ec6d38747fd775a5c55c603c0ffcf344174ba5607241d1503d309d5e8178b4626ee1b3a9d02465f71bbe21588f46864796b2a8da4de048e325130bd5d69f0072e70496c2903e92a5a0997f5ffc403ff29843c99ca124108ca267e94a9534fa6cb1f94a3953fcc97457bdde6ec6105581f1eec4301e2cb79e6d5ebaf4e71302278188f09aa9aba55c60b87700ded2eb95f163838b5c0a2ebf10010e898cddbad1138e3edfd98cd68f9e46cdd7d7dd1ddf5b0458570f05dfbb137831bca3a702dcecab04038760da7fc5f27bd2c5c7b768b01da21a3d84a5ba6e7b1aa569159befdd27e19e071193fb50cf0625faa2fa8d3dccc64fb7f7050b7895ffa31ea132d9d964131bdb5312ee67bc96546a4a58cc59caf884ea8cb343467a7f42a261a7fb85ccd68c87706c996c5e41fa2f1c0aea641212f114f7ef52190b885585496689d84fd3eac39c236c905823177b67090e5b930dc5f94a494d9dce31e96c9ead5dd60f35ad547dff3804936fcd2556725c45abd78974affa8f614d43410fb72632280130713da7a4d19a6962aa018a956d2d3fccf7db0aad89595f1c1e06debe5cc4dd3b2c77702eaeb74c5238b2ac48138272d11fa17a664e31004c1bb4dc8e16a34fc6da9814a4047ed4399f69ea0f5d17000515d7b079df9401eb6ab7c6214f8abc46f1203571bb596b7fdff6f3b7717867f093b4354690fa8c025de2d4beaf0dd0292e12c621b914d080794a94bbfd9b8f794d1be9ec0f6b7e917805d460635c9c7d4ea1bf633efd358329332c5fccb4607b30211b631ebfa7a99aab764c0b90fe5d6f7cc412cd228e13d06e6684cde3f0309dc93ec5eb017f43c5fc075a20cd83a6058602b20b21f9fab62ee154568edc09faff4b67b00cb0595944e93eaa56c2edb020f04ff52f22644df945c6f23044461bc8aacd34a30e8be52acd70c0b8355d544732c0debc69a92d8f6e6c8f52af29e66aa3f43c2f3b0d4dfed672dc154358103076a629964f5654553a83e8ca0b38c00f7dabdbb471f77fc51dca90ff4ef348cf928692c90614f3be26738c509d8c122f5eec75cb7744d30bdb88d9286dde9f4be676138cb4c298368280eebb2adbb945fe1f99930fb7e26a2171d9d4f5abe0cfb93df7d6f418c3df9218cbecd785ac500be8385dfc9391ae9e1506cb48575dca9324aa060595997977f735176df60d312ffa4edb4332e53a8ee4f29a449f4b6a7c75e2cce47328eaad6f8b088eef82568c1344bb20b13b2bf2dfabb0dc5c5d9fa12aaeebf8dfec4745a446091922c95de3e1b005594204da990626d4d1f979d8064129a666a69680222f2a262bf6e22df77d7e5ba80921c11bd505abcddbb36e0784dbe6a7d61233f73939718881041ec8afb2b5ae72bb705b5bdb5cb0fa805e50c670eb4de9a2326ea2d229618cbae8057aa866667b01ed48858db55097777a21641f762a40b2e3e7fb8a6c4d83cdcc0af20ad3d0b6a9ce0d603320fee6776035e0c86f66c6fc3d3e4a093200162e5c08a2a2875a3a6ad0e5656de40045a6aa700d29ed888c554a36e46bc5c8f221a615fa870636f35008ae71b4537a057c92e47ed82cacbd187e5bb7f8326d9c316030e125e3ee9ed7e02b5d05d0e7d063859148ea7ebe3998befa713d654f2736c9985f0e42875256eadb028d5c582373a972037dc5451e87cd9993ff50bbbc0d9d39e6125ca833d989d648affc64c5b73f12641c181becedadc273411a0b11f136a7e95c94772148a445f919b463f09776722578e02871d0b5d2795b34093681bc72d53b4bd1290df2eb38a642c9d7b2928bdf92830afeeeecbaefdf9b66d572c97ff74ff8c511aa04df0f9746adb0eb0451dfa8adc6c1b87dc4277a0c0030d2ffac3664a1cdd1fab5eb51479ee61c6f1c64c037939a6c2a8b56404dcd14c8ec45cc6a958e30e9034467846b19605c7a738950e896f79c8c116fb1905486841de390d5500dc9563516b6caec4d4c9ddfd1f49eb789ff453ada09c1e12579373e6465a9368b28b0f94697e9d63e8e3f5c2f09fbed447a34f98b495f0e13b90d478ccf71f984eaf14b9a9341cbadb8ca229697b7fed487bebf59aa05f567d74f8aa2d76cd5391787163b3e463b2abea99187527791f01011984e4aab13e4603d7e4df1a014d5e9a2ce949156307463c350bfb67cb683b2f116037af1d1222904d4955e835a04d51ce2fa6153e27477ff3813472ea4feaccce2afa9e517aa6e59bae9bd477a39e8ee4985fcac9e5a1f9f70274c11d1ae95f8f3d8f93edadd3d2e426b2fae80446a87ffed57011ff9a6c86aa7a1100523dd958ee1103069b35d1b118d7503e3931b8b5bf2ea2d369c2398a4bbf2a029e926c6fe4c780a4e10fad6ee750b4433a193e1edd362f027ad46d11204997e6e6eac1df7cb8a5449e1e38ea2b73e953957ee85725bc8644d3ac78ce0900c946cebcd5f83e1c1a5604b6d6db7ce284e2c9a8a282712f38762bb554976294b40b75fa68cd60965cc0c84a2658c75891f4f7c226c4f1a1cc24dd7903e55c6066f691bad7b45b6ad0595cad135d376c2ba3de6f5cc6896fa0114a4e9057f4e4a01bd87d8aca901fd06ff681764ab01a3b9d2a6fbd353d28a0b50d2b3d2f6ec42660ad4afb6dfd44fe426fbfae64d51be9a4142ed343ac8acbbaff2f19d3695cec03311975c0ff46d286ea3ed053a23b6c0c505da123a0a1297f0674034d81610f119249492a2b896be551a69fa2933f514049e67a90a7566995b90c08cc791e1df0b51e34d72c36097b9f3703435f186e3db4d94f47c30bc244d47718210439e2d62e770e35c0772158f84e91083d6247146b31fc88220ec80778d05b430d1eb94f823eb879b308f7029799952bbf75cd6d9c7f8099eff3d00c3f7ab6cb9e770ebbbf505c18fc52b8f0854f3dc73a8bfcff49e556432c3734b51e2cb4794f4e9dcd66cacb4edb8ba7102afa995cc0b2191917ea47539e9f2c191a85b2ad43b8b60d9efeb39a128087419d91d14fa4a2fc1c670f3c1acc4d5f83c49405eebd37c357b98ddf4028028ddad8fa2167979e14ffcb3888ee087915f29301d3673f2b0e5a105688c5bb2c6121b03055524ff99ccac4431ca79132069803b78b6538f1d51a2539fd77eaea54d59aa1e21ebff2c31bcc68cc22b9bf255c86453fda48a18d6f1aef83e3c378c2a54f8c41c0dff45ca4b63fa7c2245d5058495e7fdd107d37847a626c5dcecdbdb72e65df90087115aa6181ebea187dce5bc6142d28917ac1584d4ec07b9b23a1227c8ec4cbd7df0988b1e0b984d5d2a06726d054991b8a57407f18d79a6c0ab7746aed3010aba5062ae094107d02bd3a34741631b1d379b16397225b58e7bd3f2cf52561e4a7ddb6931b6ff7462ce1d1ac9e9b8718bf987c3dbe0afb18daab53418b873c2e544d815774950455500ab26d4b3ed717667b231d14971681105fb19989f4e2bbbe02da211c3d8ba2799c144a79dc381c048460a6574534ff37405993854ef1bb375f5d2ff4fdd62a6d2fd3caf229683a48103a52dcb8f141d4def57e6731da4299901fd16b99cf706622eda790f224a6a56e41ead0806eb943b4731f5507e0c81fbb39edae4e42f7e33a40514c72003b34fd2f0fd6f0e51fd492d72f6cbf14a9d255c47e2416d7c983a0046922adb5f7201448b5e4054aefe63257db4cb142a67c7b1c103d5e69f3efc79446c5f05e7cae9d31a2849136e62590f3427477c9633432884691231506db1eca731fea3590c57d64f452258188c70859fb66ca48e774eb0b55507eca980c8bbf2fa6f80e9d152b9598d878ff9de370958caba66a1fc6be8986fefea2c17d0e1beb7ba96b31c51b02d4b043dbb0d78b48f494473d5af52011b78374859f852218d06284d37fb2e7f2bdffc5ef8fbb9d4f22ddc054cedd199cdb89f5ddd2159c6c377f941ddd434234c238793acee506917b0f415b12c13a55752b475100072bca2eea567844c82dde1f35a35d44801b7958c346cea22fd7e721f2fa5b5275c62efa13f948d4670a3c6b9ac5908b2ca9ed85a652665f81424a0c25debef52c986e8ff6106e4da462400b91232084b8dcf9c457e00d0cde13e8776794739b2639621a18390d96699788bccad7c9d1e279384811b05bd2d5b21038a777a5f71351ec785d3ad639aecd960dd934dc5a2f970e3a23ab3bbc89ae14385b17d445fcea99bcacad91e5a3bf92e2d369f6c9cb4f1d383eedd03c64a18af611f1d5bfe810f9ad5f3fe4eb775394f34fa5b10d841dedd18dbca2a461a3ca02503ceb29a180e14586fe6ac2a319354aa53046dbc6ccb90aa37ad5aee88ccd83bee37146788bd333f961b884cd14e8c9853d7528ba3c72dc2ed887f5328c43b2a90515602873415a3ced446e386d61a2e35f9db05f5d73b38cd56b7a45cfe35dcf9583c4bfd50f50319f1964c5f129dd27eee473c91d42f01c5a5a207944ad657dfad2439dfad9e09994d56a838854d5b8c1d2325e3c8c686f6cef2f93b30e4000bfb3b37c128f886a88b32cd0f02dbbd01183f62d2b04e43d5534d56db1b27761b5876c93bccdfcec1b5f770879a912a462e38a567a409f3637fca03030fa2976213accbc62fba1b210bdbec8893f31d8c205fc777aa3cb96e5de0519ae06873dc773b3b63e751357de4496bd28edc449d1a8203909740c9503adddd24493568ff665086e1a619f124e2d3a04d5054b2345870ddcb9bcfb9bb6cfe2601bc2701aeef0325b1d94c91c0679071b5f939a43f2de9ee2cb3aa45475453795fc7143b32f5b9fee38bec8de2ee301629e1158f483e4f1c2a1a20881bdd4dd1914a650f29f28400d068905f69bc74d2b266e80f06786ecaba9c39ca6ba9c3f091408ad228be10b9d25a1a0062365b55b5c56e2baa3f6b359eaa1c9882763a71645938480e9c2782176b1eb5d0a44279b9308a3448ef033faa56f6a73f4ddc646430592c77c620568b02fec64b91d36150b0fb8e3a7949b21c56d51557cbe303869c7a811a14ab2443d7adfe2145e97c9f58570990a02ddcefb1dc1aa5273ddfb2ba22e05eb72865e562fb20f313aa66cebcfe7a82c8a3280daddf537f46caa7de9b19b53ed43080cc4d588764363dfd764e6947def7893573df69893e430d67cebc2fe87bf85c63fcae737a8fe8f650a26c6bce134f0404fcb664b8102ae8514a17078252032d2841611cabdc1717eb9b7d1fc8474433d7e7739231c1d1441d45022c0154ca43f0bc1f8ffaa452e14715266c3d20b95d06c36f629d113e87468c5459d67e509a9c4b240c960b2213644dd49d5184234057959e3d8290b2deed2b6f66f5d8349aa90027ccfbf4580950de20ac9fd3a602a4b421ba16680426533f297a7cbc5cc66791bbeeb5af669074099e58c4751a1535a60246ae94586f01f82c14bc705bd0000be0cad09bc2508476f43dcf193dfd780aaa40b70b2e08c8d594d73a4fd4a22792e6fd64a68853477a574ce945fbad1a006fed01e8d209748433ace44028b7a79228ddd7638e6ce8ef0d5491b4e6aa058511dfa5a807358fd17931eb6a74837523fd06dc28bdd3dc6362e89c9f6a367c7f7893e751d5775d07c86b720ebf5909d3bc3e51067648970cfb29d9338878e6155d04424bb157a87ac6104063c833ddbf5f9d796b03fe22be6cae8c308a43fd547b529cfb84159410d2f03cffe7efc1c1226894c4d761aa2e35ca3f1ff82e9feaa3dfda7f0a8e5be944fc4aa62540dc3f01b77308ae126d9fd2a5a471fedc1edae78469662e9563b3d84edbca4e2b7481074cf597b47a01352866b1988633cf839287cf16127c8d40c83399c1aefc1202c25f3da3afa48412a6a8acc1fd597e0c8d68b0bd064bb847161f4209e25f9a1aaebfb7331aa7eff4fe3400c5aa54f097fa6548b2da094a8f3d381833474b1032c933015d3f4ca298f816751a384a9b958292b978c311b1a8181d4ca0a903c6a4c3f9231793c55fac973b0b825702b72b1de5acfadd2fcd7d26ef98a215b7603eba053e144816dba40d91d29e26b215190869d18d25e463eafd48bf341b33a33889d5ad432460503efc487ca572f19876c57a5360b9eeece0a8a3d2e16ece9cf8c4ec114cb08328d206a19cc330a67db5b479536155f4d8a4989550d7fd7e96e8c6658991675af929febd37ac3bba240dd0588a902ba9ed722fe2c0a81c824c1d4fa20a8c44a5abe1e5108a822d52579b1f709af459581fde9b7af93626e85ffdb67d008aadbb5acc038e05f60838fcb738298cfdf6d7b2a3dd2e1acd5be7f6760875207042766fcdef4d7ef134c43c7e4392ca7c2f2740d5de457db466785c74ab7474629d8b7ee72e83c3d1c5ce918190dac5fab3a37feae0dba65ab66931ba6407f6192da1698c11eb36b8385eb6efe6575fb023bf5b52bc449e26882a4393e86836064c896a02d4db3d3c0eef96de849d76f8dadc297bc5f54153042398eb7020bf9e6336d9450a80949d3c286b517ee988ff1c11789c9fbc21fe5ffd8e8318688a190af74c4bd3753b1ede648f46cdf6fc563cf4e5a796e8cfdee618b58c8539b739283aab6109e86eaafd7bb0cbad08a9efdb92abf66c33f5488475d1880b79cde0d33b126299d690126559f49635f09258ce64cd7cbdd7e91ebc7e18b786d142a5e4e4f96b6f818b8077276a242a2800adf66be4666a47e597466ab4b6ebb43c81f93ef6d75bb815cf2ef0710ff2279a2e27f6dde955f89451007d441e36d9b78df051eadbf4deaee968fdef049f6f0ac0ecaa7d477c07cf2987f7ad67d02423a9b840e2b533e69981621c97db403d5f0f3f3a18d005e485ff1db3d2c7129940e7f4c16676f186b7107ae5c4e0f328da6f29df3f35553749b008cc46c00709f8b87102fe9ac242e98db0b6eed851972b263dd1961ec1099c5e3bb36256f56a63ef4897932307c4697a4829a7de8104eafbeb4f4152860e559f107c2b2f04b9fdeb3deb43d1a681c1c6df9bf6dd5e7e4c886354743850f99d0679717bf680bb54e34d5c88f58a16afda246813db563676608103ca288bb8b8ce169eccc0e9cc67040903dd836a7c0914bd8c551baa101a5310cdc9cfaaea519e84c79d446c9e5c7d578c321540d0256fce439d956d44ea20f469a062fe364bb4080fcef403dd9ea1b0fac92dd53e8e3d1bbcac0da6ede96ba0fc9645bbf594bcc883618328a9dc6e7966dbd30977d38df962bb82bb6b6c0ba0921c73d54ac671413ebf03756deb074f721814726a14acf885546c9d9cf1d305a3e30967794f1df0f66a5398e804a3db1057a8fd987f1b2bb01ee8e2c96f646ea218e3451e0db6866f2d457fc1a321e80fd010fd6371b353c3062e6d06b38c338ad429da171490db1628fbdde75862c1b0ec1f9420d53aff9a4ca5b3022a0ac9f2b3c8648bdfb957a8a61e4231039ea86e2cd165a3898d8786418c6e285b465e2c79dae574e116c5bc3719dc19f30c299475e9a253c8408f43c6a753dcf90b77810f8d24c411458276bac7134883bf6a5b007553071c148493a81199f327f9c527c11c0e3c858a41563002b9564d268b7b28f5a6781d1ae23324552b15363d3bfe13ec64fa8abbc6e8fab98da84aaec76884c826eee23b8423b591c45c9f485bdfd4b0f92bc50a5d35a97e0cd6a180490901563b3897ca29f30c08b23a1c98b2bf0f398107051e3a42fc5efef4b423a69ccc3ac9cfca9fa7531918628dd301452bde9d587461bb06701cbdb0e9422801a6242014e428cdbe11fbc7141f0dcc0afcc7037ef556e9249c45f4792625a37d01d2faf9a296b97db23de0176435e7b3f6b8521efc59bb60bf1f71b9608d4d434e90af0ebd79cc5d52726a2f5b46d8f4448950b155414a0b006722ac38d35450e5afa8b11427cee275b4923401207d432f9c7cf08d4460e4004d384752b237df72616052eb7af4fbdb287a4e4a253ed7774d76aa4aace2ed6ef12a328d251df01a64bac3154bf723462c0e8fd9d64f1c19778aef551f276fc52f9a451a26962155acd41a28dfb8fb968968987afbdf9dea153a8dfd571befbb80943c874b8a019621303bfaab3f76a02a5bae37aaf6b78b78cbf4759a575703480409f52b43b4d056c486b48bcfb0333c48e6d118201bc60dcca7891eb10ebda5d70d5fb4d3db42e1c14acd44513e0425df1bf7d6fde7b0a38a1ac486803d043859f9860136131ea0f35ef130333253bcfc56d3c6e376e830ae77adc12e3fb0de7f5eb2a226fb1eb1adfc49d9f93096ce3de43bdcb5afc80fc1942bd1490e959bea06331ea12cb08c9da2e5d8660b6e951c0d1e5962080194d1d7ef17779394cddd74f06c0d758bbbeae2a13f8083e0a565ce28dda0de64bbac865932559828e0990216a3f35dea1a964a6d2712d7ae8523fc201a8b46975f93b174f340145ce686c0bd57dd5fbfec0cba18263636ae387dbac82f11a89dbbff810e88614b63bfdc0e1f00c7fd236d65ad85f3649da1ed5e67ec534325b265b05b4b3bac4d10c32b8041bcd4cf755f513f278a3a4aa0190fcd773f5a92ce2d999111966efd6fa77edafe88f1d8788950be4315a8516b767f529a707a7a5ffc3195519a734d8c1f10e639e8a65faa25975dbc1f6a5b2ae59a7d073aa29c251635cb1c301e18aa3305837b798cb95986058c8b54885b219b6ff305b722c96109c85d6be8ec4dce400f8dd624e3cb705264d5f6be9f1337134a90ad703c62d5955f19bc37951234f46b3b301db5ccaa7f2e633982202eff017b09bd69dd7d8aa71f3b71fd09be7afe856ceacbb8762e0dcaa5fc324b2ad1464d6f1367412d96a576e15359f146c57d0ca28ad3dbdd33659b603c78da25b22218ac94dda5db85f098295fa621a0a9bf2d71a02d131a7d35a77d5553fb153a1b0afa6633de88436cfd5d177c4b86e556ef319df2a6473050418d16f8566cedb31b26735ef6ccffe6d3ec24ba8318f61b8a0582938e5f2bfe67f1eee8c70f95ff68b6f74c0788fadf0c2fe278d29e720d83c3afbdf3bb017d50c30fe29a74d8206b9a7446bb7009a0042b5503a9133f9b344b925968e40c64165249dee512ed9b54507bdcd932301ce395020bea666d46d68cea8bdfcd1ab30067f1f91aab9c0476b006ef4b4ca8288743a84bca7029dcffd9e3bdbd1c548b76e5dada2d5f7d6a36c32d5f42106a3679b217f0d0f62c7c7a3b9c997fc29430d0b69c195cb427f1aa501e897164c4943f297a6ab77b5c6f528f0f1927328e72c41e8ab14ecd66139fb438fd4d2f643bcbdfba3f27ea89446076e850572eea003417b0fa835f9e7af2904271aef8dbff41519b32d40b02da106830b34b62083327a4365ad5b05c143907a006bffd8d3d82711277643ff12a3d8393fb12badc35ed96e789d340362d57ebee0468fe8f5f626b0e6e1f9fbca6cbf3a8f70abad3d122f62e8a23a1881742c5f7f65c01983e87181ea0121e05d7e91aa9ea8bb1aed2b6208a88018479884cc07094116983d4aab9fbfb0a7d8d7a3acaec185794077e04f1e80c87c7468f1738e9f703808c644c9740731ee96cbf1a9fe85ac16439f4a7bad8c61ad957373c051d6d2b5d526a55d5cf89b7bc5cdd1e474278c9483d18bee49bb5e954281e47395368812154b859860dc9f823bf71e27df1a81a7609a7cef11502547a21ca475a2bcbdaa0a8384c718908ecf1b65520c6985c7eba22ced69e065e32cce130cecca5847342e0390530605bcf944b9bfedd9c23dd6dede75319d63566155fbf45f17700ae9f1633b7fabc32cf29997e16988e1f60a3aaad77c188ce1ea7ea94a1c4e5b38a4ab20a967fd619449b32ab6d855239d034daeec3c6972f4d246b9b03b3ae7587cbd19030ac10ea4c77a9e2b3f3c7fa42f4dab2831587cc153d70b371694d424a48213834fd90ba92d0ca39c93f9204df84689a9dbfb6844966c401e01b157309c94350b628a2f7b3ef7f15c652be47552f2d1d7b64bc398ba2641ac922c9865ffb38c4ecb3c62bb65a8be5539bedf3ec89731974e1b73a0244bb910dc11344f74ff888920592262984e49b22decd67b248ffc061fa02efa46db96594ba7bb328d2a7dca3c6b019e480e539cb626c5f6291ca8d25a5f004866348c7727e433fba01524ca4bda240287b2a108862f598200d14e12fb22c9c50ea19152d8c293f3e67e17542729c604ab567c93f05477dc41292dbbba5fbd2f366262ee6c1749515f84583fc9e0b3cd1cb4306d613eb360d0c326a0df47e2f843bbfd9e114eb58e5255cbf6d3fccd541ad99056aff5da8ae17c4102f3a095d179f9254d6879ac9571c1b79173f08bd0910e70ad64e26949e6ac28b1cb54057e7644e2caf464f5b9e04a497c192075746b9c2a894c3c13203bfca7bb8ba0b7fccc42fe370ff4cf83b7ff10b0d4faa97fdcec1ae7d6123e1aca8e32b073b600fde94288760ef26a4abfa6827c48b4599b9d4822e72567868d08c65f6dada18ea5c1a555af9c9c699e7aba76df83fe4b891e072718d6fe39acfa7a6782703de0aaffbd7ae6679d6684bf44a86d3b095722119791d4d385dae7265daa1f221bc9b5b333d39fa0dc6e7f6eec39cb277aeda4e534cfaecf4d9f23a31628975245f119b4418093f891816b106e2cb48a088d53127ed1ed237af3b6a5f0086dbae754dc30cf6372133e13286547ea941ce44c6340518c193daff43f44f715f89806c109317da3ba9bc28e122d95bfb2e415553ab8947a97d76cf6454a063b92169a5c5df43c2b9c6da3ce50b7015ae4bd9766fea68d1757a412feab51bc0f598c941c3773e92bed8997a3ebfe2951da89f54f73176c658e262f47f3860c457ed3944de276ab962ec3f453b9600e9bf754e97729b8906986dc20c14dc30a3728fe47102c04a5a3a0562d151834fb14baec8957fcc8daac7705428d80e69865e21bc8d649127e4d67e38a9678d0d4fcb2aa51fce0c9fdba7696cf82969acfef9deb97e90fc8f1d3be718e78b8c9d9780f76798904c577a670307cab62eb571d429d35e477b96838407ce1ce4c6dbd10b13de2b33a4e4284372928c7d25b6ed8cc04a13577df01c4352d90a23cca7330d66c0d43bc91c1ee9ef987c81163f32e03e19ba225442981ff415970ebcd27a7521c7398350cc680a8a29a547a7bc0d1b117ddc1339d00be87463ca8b33f9b2a5802db2225c6ae5cc0dbb147592d74997d09ea7eb14e6b90c71a132f51a59fd2ce623be8892cdba7091c762f80bf0afe435fcb992490844c5bf4efde1b5a6e9a3d820703e2e0a40abbd0c0cfa777e49e0bf35c25efada30f274e2d02126365e2425dc521791a0b328b525f9ca2944dbd84b68a0b06a1d7360b7899dab2c915ef9ca63803077312502d6cd1435f6c37c019b96685f776f0e6a8b8eb1da9879f68c24d6fff9d389d99dd83de21bb5795b18fafa6a34144c2853633bd71454d0eda0a10827ee99e29c7fdb96cc92456bbbe369fc1c9f89a4a3f640394f5c8acc93667d6e97fbc697496c18e5d820e932fbaaa8e982fbebfc68250412bb87f74324eaae1e012f0ea7748ebe053c730379b9b235e4f60061796828cdf063fab41365b610765de916da02298572fc59c2feafa5529bdbbaf84f9b630958e033d96f97a3c81169d626858ec1c89b9e09ed43496e3d4a5f5e8b75d5901465ff160fbb72a07115d9aa4114075f270792e719ac1d15ba9c095679de3eaa29a3ee8d7faa0cf307bf33a3a2e7d0db206e2fabd354831cc1d6a77ee7147acdeba203e22f9c733e59937701436910a22081943f2dda2e1e033c14a242f1c27f75bfc3c7a3a3400b58a6346f1270d435248633a6097452d9507db12ba4c8ea50c95bd9d9e9cbd46ceb8225b6aa64b98c815dcc831af260a7474a9a6e10f86b6912b84136dcfa9fbc4c5cb6053381368bd897d052bd33e8b68f22b3314e30eaccf497ec24c16ed77eb92e69a68c6a31968d2a7c23c6f6a6d1e0c84b728705e1f7bd11cc368dc88f43aed8b634db03b935bca4500e73a418cf2109187ba76b36b58bc12a3baa5c114cc9d9aa9da1292c5f26e65776b206c6b73e4c8c9df98892df03c8de1e426cd5adfe0b36ebd191d1fcd079b10d0e71cb1710d1efb2f984cca53915673dd8d28af75856f4665763c175b11ce6bb14f8ea6a066e56a1abdcae8f1b921426845fedf78373edc425689a47a3c1f5ae57ddebac612d8bc8c6223f37a8611a961bde11a74b6fe6d56729ec623156f64edf128ff7d968067e9dfd399d5aaa9fad801af73dcfa604b0e12a4fc2422ad43396380aa84399c374e4bd24e23cebcf9fa2a8b64e98bd05b751bcdccef8f7f6639354c969d113ccc2ace5ac9d4c5965fccefd948fd87c598b18abb3e75b80370416b98c00059bb1927863185ce6e9658b4e57be09d210a8ed2ea7361121a60b73a461acc5bf2f2e7592ca0419dd6a605d736d0cffc92b8dfefa920c58c8fa0c626f6067f623c6c50cffc6381baa68bfb3fd9c31e10ca73c2976267001fdbdddb71095d43ef96b7445f98150be103c1c3dc90afb93a4fa37f8d747b2a95d6016a1584eca6b33b7507d4da516a7153c3584746e5ef842849f4d7866a6079da91988ac83cdb784c11b160df0f6ee698efac607c94f664bb5e1320cd5844502ec9c08cbc6a37f038aeac67ad1da9595dd122bbee1c6417ef83615f2a847be593f5f2abd33cb513de3a3a9147b2f417539f15d5a2fdb787113279de8aee2ea83f786fafe9f57316013ced311761e84527dc5023f64dcfc8409287830f818a17d0052ec816e333e507632d01ee7f6694338d95eb72156e1d5b8dce70e452403f16c05b93e73bdb3611a6b61f183e1005023d17ef75e6bf90b7a922f3dc7f0544c18cd2eca2aff52cce2f176e3840cdbed40bffe4eed6cc1e29d16fc02ea413003f9ca89187e53084bf273333e99149f2a364eac4c551076d0e283086e6a3a6af636ca3922b49dd54b805c4125b2372ce438969e1ae42c21270b4f8c7efdd81adaab2bd9667b77263c8ddd3536cd6fc84a40c7fd277cdb6716fb2ed0dca4b673f2282a5ed77030a01f0d34177f253de5e5e7e27301719801e881947634558a17254b13d723dd7e47b3fb1421e307fd3e0fbfecc1c09b61fd96504d624e0687e08bffc1d3dc824e01f4466dd40b162daffb330cf9fc2ce781551637a1fa02ece72aca20f27963a05c7e4206db407dfb76586fc05d045a0d213749fa8fe80d467e07f3d911b2f8ffef90f7e230222396fc5ebef36ce20b05b897a9bec0ad20aa159c671563b098497a0dd49818d36e3d03f8c8b9f8f61d4a1d84dcc61381dc0d9ec9e9dc5cedeb245420633e00a7d80e7d7adb77178486919daeffa3b857111f1ea4b177808e0d39cd6d1d0eb45303187f74cb750c6c3ff9b34b69e3da82a9dce33ffb0bf976aeed625e05c223892a9c903115fd4cafd66e34568a5430f90ecd99233281b0b315153b96c8c586fec7386018f090bf68732129b01edba2de5197f2b25dfc302fcc1135cf00636c4c602df498cbef5b0ecc52cf91aa9231bc531b1f53abf22336f703e2b4212b660cee5b64e33470708b27d98f53b6c9481e30f654a736b56377c7a9c369a2ea8162789326f6c75a92517c5a31e979336dc8ca0138025fab3336d3c1eb11787300621643fdcccb8b89c16c7fdb3f261c80580813897aa453e48b13953b1ac4d46948c610c8dcd37048377f03aefbf2c1a17fbf5d6f6be8333d3d426f381915334b126998b433c08d35bf7a752dca29c93951503f238af3b80834f805882a1711c6fd726f4a018ce5dd2d67821c2ec28acf1c1521507a2e3473b12250097439e70e8bc09424a4ffc4d44536be81acba37355102dcc06916560c2fe9e0d2ac0e078763c7ab41c052f461cd76dca1c2de309c38c7029d6c28cd448b31ec5bb26acd03794134e72649b5cfcea8050d2a1502483d2f33f18d8e463b953b31203258ee6e6a68255761e5d97b831cfe6c2b0708ee3ae23a991bde3ffdb3af2029e71888000fc28d789127e7421f9f95b2b6f40a4456d02035515504f48bd154852acdd353a2e4821b8cdf0639e29aa65c6539ed77c26e670ffe8b52d286895b9ddd594ef4842d7463bd45a4a989ee41b258bd12f7d2d751305b76328ca655dd056c1786ff79f189f10e77700b431b879974ea9c359f368960d2dda0304f2152b1d21e3c98ca764469db713d3dc029bdfa4ff9b4293fc90a66021d13465085f0c5a1135e3821d629962bb13031fc73392140ac46db6c16874629df46639b67fda104279fb8ce612bdc211cf4452285b3a86ce969a4a955435200b45f75abacb9dbf224e1eeecdb019d5adfe40947fd8629a17b83310e942a3ecd7957bd55ced858fb1e0b21f5053d74a36e4139374bcfcaadb5a358f8c007b0c1efe3758a8546315d072edc7a3bc66634de2cda74b43da134d36b2f5be07fd72272fa7786f482da23fa25b007b79faf032a5f4c0ecd7360b7b344f462ef36f8edb8cf8c4c7787f23a7675cec36b40a6df226ff1ced272b0a05a6c6d63d079a246a948ea6e47d1594448fa39f87b9d21c8f4edcd4253839c5a2f4651e2e754b3fc59580147c6153fc2b3fb854b231cf45e0a56a36a110c5b482848ed4ff14d428bc0417161f2cbd0236f977f3f77e45720fa600efe8e5962dc1b2355f2c548878c9ae531530737f0c00698fe7d586bcc5ea66e505ff9c5a097aa565918d00422fe6f26601610fe5ed9f3804471b697f617d11d5a68b261fdf36f0bbb90e68dfe3f3b03641e376e42aed18ae480c4d1cd99f5282bc0975dacbbbe5e90001ffbfff8f06df75b3b190c78124b80a0e7ae6b6722e115bfcc0e3ca74ce35182d60480b62172f0dab81a4a8d4c621a994667610f50199fa7665779e0521f737fc02630a370f29a44123fd830f5b3ea44d45262b2934a88182de3548be481e6e5275fde87b44833928ff1f6182c83697c0dd95307914bd1f295aa211f67bac3cf43f88f7e8e1273028c0aea9d67c853ee02a26f34da8cff732dca5248fa2368891dd777770c6b521f083f6c963467ace454f80c209b6c49add2b0bb4245365d6cf55c537c25a0081b848656147bbb89910ec0f50d92ffb5118a204b4a57b77dced1e6f41f6f38d0cea4c0b03230cb907a4cc82a30c3dc3390f76a4225e60be5ddae1f59330fb171130d12186a15b46dbbd264b1fea84e12b0f5563e0b03a205ad89dddf14f7a0d7ca0907fe625f600c99e6322952d0a0e7a0cea9d1804e7958c0a7230bdf9dd12bee34d24b5450fdb5d3f84826aa5da77785678133aa2bfad398004fbe394b57d7d8607b118f1fc9d35cbb72bcd9f123cd841d4697f91f8074e9d17d0dc05fad718dfc0ee5d6a426481dca89ef71938f1d1d3d3a607a48edbccf75f42b33dec5ff9305044186f1f1dde315ba485e3bd1f20b8c8b77e4222718e04166c24eeec89b5f74d42d234c20d7bd830c8d82793c4c90bb4eb55b3e4a84e2d106bcbf4c67a038414194e1bad4c9004d3d88c0f00cfbcc6ab788ce014700b2a6bdf5d4fc68e7b54ba2056365b4525124868fc6bb4a538ce58f507de6650b3b7e76ff8aa9dd32ad414501d11b1382768754ed59ed99f08fa8bde7cb217e123062e427be08c8bf5681cc82f4d51b9cf37a927bd2f2d898e96a714e7245d5078771886f6ef72aec9fb7d4af3fe7e2e5b528dd105c2a5259d2d025a929057e0a78a00ec264d7665a164c1bcb7e9d1540f8f11ef715ce8a622a076d9b201aa66740bca2a028fb69055642fa957fda2ba917b71690935e036a3da0c9c8d1c63cba8e1117853d40a4240168dbe68b7c1448e5076e9fd721f7083ae05153191ef8ea7197714686f283faf03d64dfc49b5a9ad647b5e9f984be6229a9b96bd1d653f49006ebecbaaad85264359cdefa986f6db97887d6087bc9cc68979d93d6193050b6c6e3c15b974c0724d0157cde6d20adf700b3beb4fa18b53db3f790f01ee198d8d97d7c22143d48b72192b3c6eaf183de754544540721fd92e6f77dbe2914961e114dc263d625747189729011dbc27731307c704e233baebcdb7b61e7d5d76291da91d6491ed13db2cc8598f3f99957b3f0b5894da122fcfb3fb7e428052160632c56d7a22ac892f774b6328e4d990a4117e0d88df2c47718048fd445a3db354be7a2863071a6902af62188d20759cb6cb3cb20131ef3f34e0adc1f156ed69be886aa83dd6df1cd98601e73d2dab106bd86355254c4f4889321c3faa5e1e6c96de88d18bb9553ac31178684b784d9832211cca9dc746065b796650be95938088ef32867e40d814ed2e3ad5b6115bb44be68928318c671248db19ae545ec87f97809931523ca52b02e5108c6213ed3829138d4965db1178ad421c7ce37e0bd76b90f63fbb3cafb65fd7f58f92e680ca2849484e34d6d13981e3eabb386fce09f2c65ca2627d5621173ff403fd88c868991a1119d175aecafcb1e0d6120e712b49ca304d72563e88c011aeb46a334bdf113081d27b28c094171424174941d86701d385bc318286401d408f90e7034b551752dd6366843972d157ba2f8442ac7aaa19a869b2c9874f8a364c28838d96bf1391ecfca8c228364db8c6b2869a3136b2f718588cead3ef42090432a16f276b9c05a78f46f49c24bbfb2998050d4e0093d5218caac7a00f73f64109da56b17808e3d8544123867413f48ebe10f770525240ec8f2737f7d21928252b6b098f5957d6f347bfd19bd4a06c6f630be2c43a4fc0beee39fff50dbcdf28ba3761cd5767ebcda53e89d1e55a4ec4ab344d46da604b97bb30d439cde67562fc58556e0c7c72fa73da6b65ba1005e320c0ef19e6446cdd0a806903cf81d78ddb3e7560e814a0bef79ef9605c636f812c7ef5c2295e794f74dde70407f26aec66607711af13e1603dee7b784890e3f89f14f8a700c3749f976c5ad81a0c87cd4e7cbdf4f8321db793f4c891ee0b13a82fc7b6abdd9b6f6d93fbe400e3d6e5926a69f0d0b0cc61650d2d51df34ecd6c2f3cfce7cc5d18a6e8e4fd500f21dbd263377152a95f0ae3302f6a868f2222ff6e847f6a5d30cef983281e17e08d46624495ebfa7bccae03e8d35000e7488fe056c9f7b56b302561e2a6925ad9c45c367ecc03ce90c5aef8d0d0e3a90fbb54df1c6a60b512715ffd7a81cb124591bbf52833be6d3c176fec1a5a296eb3cb01e399c26006d86402988e279ba309e2ca7db1905ee09e928f82cbceb205fdf611b9d7a08b99c385a6cfe90c4c314fc213462db1f53e2ea4eab977f9b52cf01e6a800520fc2793b9f8bbd70524931bce7775c9b19daecfa93a8655a12a0ceb2a22932f71fc7eda1929b3ac347c80a57f01628505c2dc7a6b657928363de7a783378fda11999ad102c952ecd63301ffb4677af940e87ca4c1fff376f69b58acb23e5496c3ec5e14056b0bc58dd12260d72cf1d248486e3a0c6b7ee5bea8f5a97794103d82b818681bd1f61314f20d0a1253f90643e13b82b6c8756c4ccbb84bd0fc0344a63edc232ee07b5aab4c75a04c65b8dd97c6f19c71c1b8def5bac9491c0b70b8a62f0b54bc3cb151776085533bada0fac5ddca22409dc24629c90b15d60906f444c2cfdd42408275185c9c2618e431c2e8e714f47ac587069b0afb0dd87647b8720d1886b16d9f7368a476475e6d32c4e8b0ac406423c9a924c3ddcc22e226d48854d25c315424d261f6c478940ff3925726b048d8d4e0f313c98df2f16348de01e20821fc9d334881d20f16c8734c96b60ff4cdbef3535ddf524b63f03fe288a784b63dbfde88b43faea5c2175d336fe64d2d446cef545f13f362e7dc9b5f9e67c2e19e4f61499453271c95ec57b636200a94df348636d0ce5b58d6a256338797ec3503a0b9d2e00c7a3c80e3820083c3557125f410af391787f2afa66102f2bd087cc7594170ee8cab252d0638737d628b915d9b03c50282b9f5417ec754ec7ed8d9c3d2d8a6ef6fd14ab755824ff9f53efce054f468f3bafe6c41d6baaae7e347cfad13fa197287a36bf851171aca841c0915a88fe357a2d8ade5c0da268642b7a0481e4da7dfe6fa046bbb834f727e341fca5c4324b5749b7769a598665f25b4e303410bf2cfff2ab5485b85f34f86c2c6584fda2bb8b3558818eee301882ba2e76e3127f9532d6113c859e67c017c97880eca48a808fd874f6660d5314d79e05e11c669609a598e99c12ce4c0327972cc2a4dbef6e2401e47f42f4139e924c2d6880cb4642ea61e935b802b4cbeebc7561c8f73284ccaa3e03b608301cbd0be4b445bb0957950ef999b3a2bd41d6867740465b98d94e5247e84cd2e2cd45d1fabbb422516ebf4c6a3b78e1845d6e586b67649ac625365a371000c52545787780e2ac72314586c867562db270a0e7ecf63338f272d8527fa4cec2db0ded8b866bba1dfecee38b686d242c8ac0cb9827dad72e0fb669365df0d8f8025253168d84428ea8a8f5729adb6a84f3fe717b7456448723c36bb902740df9524403950813fb99e4194665aff7e678ef438cadb8f129d44dfb4a7696d927921ac87fe9dd0e0f6902aed29248eb51fe2871aff2d276467e4f976d4c0b56f485b90e51d561d84742ce1ebea8d394b740f7d1182eac55d542936191dee4b457064b252a83f1b87ffa7e18305e173ba31f30c98cedd7c498ad833adb140c688e3c209de1fc1aaecd78f41cd7edcf7535abca76eddcc4469ca431610998b30d59c60ad957b35541b33c462053915bdd8eac517f824d7d7483df4aba9e5a4c1e693377c96cfb4a6e2bd7a1b8480b77531b1c265f26b7f72ff269608faa0d8ab444885721d68caed9976e79fb3d220af731ab91f3f034f79f5d227d8005a777a104bfdd4dfe02a7da2f3b0262ab1d04152e3aa92382027c975f3d0ca279e59b3ec44206bb135ec618c30c034fdc4a48a89d60ffd2c203c44a78c20f0151c52db05674f22e178392c057c2f20f547baa3a62e82688cd3cdb73040da707330a5989d928134607ba9d906ad466736d84fb38a9510571b359bc48104de57b0ebb92040928235a3e2f2f415dc9d14ed4be250c714df5aefd2801e59906f8120ba4fd41ceaff15db7717b08eec1918d49875989e842b9141e192309c8909dd222d3de3d5ceffc7735f66c3d69ed4ea3dbc0498b56cc3dc07dc54b519495ebba101c2271548ddc653994fc5aa413aa7b5e4d78c65f392c3a7b64b5456a976572b796ee4dd8207cf246091ae6b70b3b417799922a710b4d0575559be6466763eeff1c4b0a21b525093c7524f8db44df95010fde62cd7abac7f09aba95f6afc75175cdd26a334e5c2f62dbf26fc1405816eda2b4473cf0e2770a59627f296a067c908d797f895e866f72a46c0b40133a43f3461153a38b5b379a5c14e538667b02bb826084184f68fefa1bb2eb37e82929af742c6ade9e82c5ea92b5eba1c9108e8e97ba58edfc6e2575f1d445137c6c62b1aa288e0830f2b36d8c4ecf6c8935d7bafcc03db637ca3be1bb20426ba1c44b24e9ce45047bc2c695015c9ef1f223ba49a4b7cff44457b8ed6ff34bf1bda18675365bd27b6e9c2ae34aafdead24781daec5016b3f5c5ba685eb2554e4489e2243195981c12c9c6a38e6debd289316a5275c466fed2b0e07226e04c807514e087c2090adf08b0350c2f746af3585626b8aa6a412c653f4e9601dd73e48fa5d7f3c5d00417096bc1518c499993f98c43a67a8f8b6cde70946347ffa1ff8f8ffe970e4eec97f0cac99bc3500f6a8398101e6a92ff319f0bcdd710288c3d414ac0fb24f0275c8ded375d45aca82b72ddf7961b3acc2a8ecb7b7ac748ecfd2ac2d911f3a6f7e03b4452bb8e5af6bf40c9e40f815bd8c934a7cf6078adad30632026036c634eca769e5c804aba00964c1bcd3d4e31cf69aefcc18225c4f66ddac0753c21a69a3398bfbb7f026259c7a0c9033e3748baef4b4e8ec4ee7ce413c327b3213dd952a44dc9798f5f64e9e3d00292008e36fac78e594c0158ab229147447d58ebe24ab43d3c357535b399993850b2db3908d88c7c3f7975089d3936132a32993eddb03bf1c85e98bbd19965ed73425d29cc8ebc7034375588d235b98c1ff425c9f6afe9d14b050ba25e0919f057279c170fa40e54e2efb6122d5fcfc8d47c74b8d05fa564e8ade92c167948b7306b3d236d61ccebf41f48c3814227c916c558075139de7103dd4ed63374d2d58a224675edd0d0d68f08830a34e7827e046bf2498e95facd617d0f803d257e841a9536a1b64c6bacd822e9d9b0c1a9d20c330403a980213cea2b08e399789f58cc8d32ce4a5d2b467d198e43d590a450a619e1926c73fd45b81d7c0c433ebb9eedd8e3df3e94c3822cf383707bb847eec01157227a24ed99324f64f05a23facee2db3e4c9b7417cdfe3110e60bc238d2707c5f290d50532c14dcead84ba3a5767eac150a81bb6ebf316f0a60e042054b0c0e22cb59ab188e36090246a54c9e80a09785b18fb81eba6094950befd29b4932bb67270d4ee502c87c1eb06f60ca9d9698b09637970acb5c151a17f12a0ae6c0074a29d3b1d8784a1d3454915eda5ad4d768d186c5866d143130247712347ec11bab49e9b3a36030bd93c49e85fdab21ccba28bdf1e7d1efe87d66d67cd7a5afbc881d71e39227a2bfe37c1c5cc1ae67cca8c54abd57cb5020c372d49878a0f1fd5b933ab22e5ead9b26e90152a1a9db835e0cc16688e2212aa5f28ea4644f9f4087e9d4e9b850a8fad3136d1b8ed00759785938d8702e6750fe7e1a531ed19a9126188bb940dc567321d5a947f8f89b87c0e0d64cad4f6aa305d40f8e7ec050a57d768d544f0baf7478b463de7018841588de0ab2e953adce82813a67b6066c72348374db11ebbebc307691d1be1a12c0a9d771873fa0f2d1e5b8875d2497b007b02f14d62824e7c591bd4b90e614ceb452a82f3f77bc6d334b5b57677269522525118390e362fb0137ebe1b4bf1548a50de74211ab62204db4f11dc1c5799175ecc3073503ccc6ee5a400b1e5015948d1bf04363a08dea97726f76250e781c4c6cb4440bda4c76239a99abc42af4e7caebbac98e1cf25f3c54a2a4c24f3dbd75b9660b0e40778acabbc2c57856cfbcb304d2db9b7e018ab67ab4ce4ce1e48e8247b149c1603696457b67effce1e7bb2e6690954395d4c647827659c8252fee26688f7b0f9e4d8ed61caf8bab07dbf56022b08c763e049736b2063b2003347ca78fb228e470c3819ae272ac66ff70ab22b6bb475c6fc0cb9beda9469a89d00c401d6b1f03f92b016e10a46d5ffc9740601b5dc3dac71853d4cc52dd304c51b787a3e46f0a4ba9a3823d1a1e4d47b67a5bf6b14fc4e1b1a9a442ec6261b691dbf0b73864b524b058646b83699ee612506cf0c3420478f23341c04dcaafb0ca0a0241f99c4c15d341d3d452231bf6a3f2c28c6d551a98a6c47f5ff4e2d57f9d2a161d5ae8d0e751d6609bd2904d0f71f5ed362d72484d3b6c050fee10b1b52f5639f4875c549a3eb1492b73094452a802bf6bbdeddaff335e80f5abccc5583dd9252a0a30332517dfc0397c12da5a8f0c32b72d046223f13dc10d5ec46e6cf75237fed72f59fcbe4b0ab998a187e8e559d21b0589338ececdaeff8e15ab7da3ae2e8561e0a3a12e9f9704fde57d8e8656ab21c6755a9a0505eb7e1f03a8a99be51570c692f418384155e7732fb8adc2c61f9efad8110ba45058913cf43913e27d90672179e88e866cadcaca1fedb558ad11754248447c5c24e89531b655d4cad42a13e73b6ea19704a93d769bb0bebb30ba7d78664fb0b3524987bd519e0351f8a5777c9eccce13ae50a046ce8ad6dad9610bdd2fa32dcfe33a0e7e1f083a25ffbf64ee9c584108d8a8a26b02af280d5b6465fcb33b731f21b876a86a59dace1a013eeabe3afb3e91ccf4cdf353e6d5a4497b979658fb5d96308b0f1c7b7363002a2136521d13600948beec87cbb53c1d1925da6b3039cef470590b1f57ac26a329a4e76c0c4ca39efda5fdc71bad65f2242c76184d7c56753131f3ca2340abf2e7e4abfa4ddd12ef80de4b2570d46e2f0230d7f04aeade3ca5337696f3efcf58cdd4925a1bd362ed57e8283a1bc60c905ad5e15bcca16fee6ddcbf415c89de779307311d43a84bc6b548aaee3b6c7e79d44a1ff32a026c2de4598feddc5c80108a405ef13e44c0e935fa535545e4fe420f7c05da5de8e32c20aa58aa705afc6cdb1e4b26bf6f08f167c753fdb1578bc2759f710c8f4b1c224f5a80183ac8a4bd49c2a4fa7d5195d881ffb94b32f783ed35460419d3438d997b086afd99eeab9d52d9b3df05952cbe3ff6e249bdf6b8d72dbb1db580e6056f5290544269597cecb48e1fb7984fbe0fffbcb80931272a379b5d00c551370087a7c68533ddf245cce357b8a3e6d7dd7d1af015f324eb7c9c7ea49c816b31535b077c0d62518dec941b71aefca7bfc9d7f5eab1b82f9b1213e7d6d4662e427142a0899a8814ce98e554707b31b3d0b56421c323172b11d1ca66fe4815f2c39530c0d3809865523b8d216c2638968c9d9186274c5d78a9504e85221b8ceb5a0916864bb1e846a726a3aa7c40fc5e5a02f4a75681bfe63077391d3f7ee4c6a26e56738396f012b0959341ab4cfe4e55918b84cb21fc7a79cdaab01fd6aa83f4a5545d77b6860a35a4f4d90cc3980618f8601ded0de5b241ffce24c0f39452b336018a011d8180e4ea8053199eddc8da51f75fc590b6dd75270fb6e8aa7916dae756fce3074805397d82fb6460a2b1b44bfd333b77b03d2372299be38ca8a274c79ba2e5e55238af7e29e94ffb5d14dfef4e248f9a9e095a9d255a408f7506c92458505dd76acf98ee2241cca99cb444380cf49a3336f8e5b93272cea4acc40742682b3ad375e625885e128526213ffe8db5f58c15b4387c44e17edfd23613bb65c64e047dd1a8b5b8ce03fe14120f2a4aff6973a862b42253d47c16ba4b4b5ae9b8a364c0ffd57234d0831896b72438d5a65e910c1d08e78704908cd3481c2db8d79f9205a80eb893158982e9a2ff74d6f8e5e2c37e785c54bc66d13fe7a591d4d2601ccaf3994fb3777d8b18acfa51535d88f63bceec9fe06736e3a73446bfeed10e463e01f89e7709268ee7dd88a5d266f3dad4583ef532c5815dfc472cf5bf12e5a212664b633818b8fa9b8abfe987258e6ca6e3d6f9c1c68ab0e69a23ee4d2a522719eda1c2f2477e6d20462ad887a543f47f322c34d8b65533a9c9bca607d55f665c7f285aca76b3caa2eb81c665591b35637a79140001acc42de868671d132519105408ea56b9fb577870b535c4e2d5903c03b086357dcd2fc7231516e24721c992292480466d73f846466b1ca63890311b870c7583f67e063dd61f367bf8183d7c89dfbf7a225b6e99f9c529fc86b5d316ea502f3bcff39ee6d3c04da5dd47df10735bc87bcf74da3147881ae62f23473d348b55da5eb901aaeb7457ab07bd797d50fe6eb6575270025f5174d4d556353fea90fd92738aa5cf6206bb6dc92c2958a24b595e52e1b3b378fd99b5779fa78a8587dd840d0c803dab07bddfa783be7609081b2931b1f84339d1ae28252a2f1b115e76a45e3d392b72f43a697dbc9d0f90f60665ee8dc3805be460e861650b6995312e25c9b73472aaa82c0329168d9d80729f047965363205518f34c3fc15b074740c903249e3a9835d362c1439e16e61c2867e4689ed6f9169320745d641546876e5d87004f9aa7c46c532deb1072ef5cf6c8df243b6b88a51348d0ba999cc33edbe38eb262f9c30b43bed1171e6f23f7409c759e69edca3c06f3e7cc752190ebae6d8eb0d0979a752a47ff0c427e95847e83f8977e49416f16f473776f25e5afedd153acbdd2a027f72a7bab571bbfe0d4b84df0436372f2e962e31ea403993212e97d2920a18c16c8eefe2bfbcafc91b1926f21c0ce667bb822da8a9bf5ad0ff45fff63f11ed92af010b4a9998a0dc2d6deea0eff512aab52ecae98b596c2d8dbc9a18624ae46752f6bbe7cf76d95c6de176124b6b04f0b6a94e9bdab439da5e6f37f31de2157732e7ab16437f49d39783708c4ddc36a1a2ccfcc5ad036aa341bde8950a6bdd1636d8a1683ac1511a2dc2d2a059a4895688202c7dcf5ec769bd22801428e8f42ab19dfe825012b40ac43d5a4c20c23ecc389d002b1273234875637004d85d176487b4319627c9560f2548e68f9ea0a117512e4d8069f30390dd7c2f067558b0359ec1b0d7e707f0755da90fc76efb8a98b3b3156629dff810b1a1b134f02a4bead8cf71c2c1c23b3e33462f8d784b5dd3a7b4cc1fe167b271986dcfbea84ee446f23d8159588c5445556d18cd640dada45a6b20d0157a0f0066b7510071d8373d2e0e1b6322efa7d10414ef7e80a71517cc8dc667a0747c1efa96e0e58b3e3eddcf1e8357a6ad386c450711130089df746e0c2ab3a47d125d91e0e84d205ff9c39185fba56105b6c91cd0cc2b5a6620644cf00ee72b758c8e36d9355519823281db877e2739d0da0c08b3188fb6135bbf31129f527abf1fe0b16023b8ca358833a0ef53e58de19740d9a25f5d81a6bd67410f1bc74e2d83d7aeb253f5e7c605ec77ff5d24f0bd6a17d406a2faa1c561d511acbf19c7bc39e635b41425c2dddb19036449626a832c4c9d1946fce2910d9595f3277ef0314607a1b9f78bb3cad371f7b24f8b2b0f2dc5511ec8276293257947765e478d26a65ee2613e887d89befeb7e4b5830dc17ceb92f724bc350cd68364c8c028616e3b4fd2a51ed2ae3ec9ca488c08b690141e1d99f413f34e1fbe1b2734e51f64351f514c5e0b8419a224680b4a759b3e5af438f46e9e765d6481cd652af845ec702f87f3462cbc3d197b7a3ba8fffb6004b82e0c6c262201dff76f2949d00fb2bd22eaa61c87f79fd2eff956db7ae0cff3613caec13e0b52d2acf1ccd0360721dde2eef5c277fc28263f1c4e2e30aa60d93ce96782a28b123b30d795250f367efd432fbb6b84bac0c80a41977ccab08387a6fc8cc8713d4ac8e9996a95a3cde949197bb54c1b658dc99f29c21d69f5863ab179040a00e666961dfdc0c45716931ba61dfa01669b44f36fc2bc6d3e632b020cad618a89cd29759d307e678fd31ae2bb4e73c1b5e7d182da43c7ac5f5574d6eefd56966d297253e67b44a25ffc6fc405cc8932d6599dd6e11b2ed1c342605f8d33f630cda847fdc16fdcdb6c9c0f16f4618f0aca2bc40d52fc169e180e40fec26f8c89d7048bb0f5d2639986133e14805d2f7eb0d6082062ce5172aaadcf4787c5c9a8d684ff4943c5bfd2b03f166a14ea4afa1f0073ec4fce382c9f54584e3cd1c2ad026f3f5c1b97970569d9c04967cd267ac6ddaf8b1d7e283b19cff33f9f5a328ca24f88cfc5def2621518c7f190ca53444f6857cbdb68a0d8b4a1b69da35106332705c1a82b5a5fcf7f67b28fc226ad40cd37738d8d93c8739a037783fb0bb38322b7641a8d2fe9ec0980f77b0030625d19f62239e4357aa85b2aa662aef5409cf0b62cb40c9e1a995f425a39599138b14cb14d7db3c8913f88a7cb66e5e871dedd9c1193434d7a93efdfa253cf294ec101a9fe0a2ce37faffa431c797cc33cc0af4cac2b6b03595965a1a4debc133212a23cb7ec049f2bfde7065957def38de28cda430b85d5e8ef2e52149aadc11fa59d3e148f8c0f64975d434e346decb723369175e49610901432d546232bc29439ae8c177598ac656fca77813af9560e6a4e2890ac465a26c19f5fa3c7b003f60dc7746cb62c1ca41e537d0412574227e0ae650ff6b16b56df5b3995705ea5e67b066fd456ec608e79cc47b61c1c0fcd988364d401da569d83b12f02ca2e0f0da57f32d390bbbe698ae02076d1b21336f7c29da415b4811f60270cca33cec5665a22b2f5b8207005ad19bc3f0c7228a8dd8260c7ebeb7c2376f60aeb60f3d1e389d740ee2bcd609cdbdab137a9cb5ffb0f52d3f034faf06f0b32a397dcca4bff0cf0486dc2c97c78c474284b5e5ac1322164ff5d5d37394e5eb4676016c18f0247c674343227c0fde18e6b7456841a0260631054080461ed1e5e5e78acc3281f816fc7d7c2dfddeed9b0e219d5c8f4245e38e1867b1f22d18b1686b49c5b2d15efe79dd4bcd557f0d11a88c649516535d44b27ac49f4411572fe6eb890ef8cde93d63b068ab04ba9e8d947c38a73b6e95b2ff3658018dd68b2fabe4de378b804811977234184b1da2a32652c737c58c62a16c87b19a2259f49fb3b3e6e89632d7b4c4a34b4bb35019bea8489a9162ac29da019326a6dd5df13333bc99d4661ce3feeeedea2b8679afd2d53f133920083e9e5c7cd5c99bbf807311594a1aeda5832eed9b620954af59e560566986f4e03d982fc0480ebcab208a679fc04a42372b57ec5f12b97080e1fe6b54ae3736d60f14bfe3d8e8a6ee2d5304f11beb1f9951d2ea69a70471868ba310e6268523ce02db677325f642500f12ea5e641a62e5d92a3cce9630b20a4c8bdca57f815a6ed27f13513f727e00c0fcd1dbf5f18c071608093c0ea8d1ba3b594ff7a876602492dcc5525ed5c9138b3fa33e2f5445cd89b8cd03d588336d3e545db1637f1cbec00214313c3d990f0a69fe140f20d686cf1ed66dd7de7ff50dafef98c8d45b9206e4a8c56e74e886b83db545a82bad3740edca6056dc1f091bc263ab54264d396088bf995b7ab3c6aeca4f8398fadd56414f1f58f540c233f6b5083944da06d5b7bcabc49e677a92552f878eeae09b1f5a59a2aa206fdddb3281a3cf4643fee92ec3521aff6bc3f024feca480e26c27172dbf12086642557f6c8eef4d5af91c79ab4ada9496c9807c044bc96d0c65042dd7a01dc99e7160fa52713b1b8b68080f5f0498bae7704090044b3127da8e79b104c988b61c16fb55f9935e97d4b6f73c532c9ff78e5992fc0a03a8f936a4d2f2d7ed3f4ffc7b4884252e789f7f46563bd9762de3c6dedca7c5e9069bb87ec73b70ca2c8bad3aba8980eb28100f74f2017375d53d3f4185c174527acde21535824d647ca7475df7a7501948b17607cbf6aac98eec02037c2516b250197a8b3821be8db45d66a211f66e27cc998b2226404540602dfeced76d27fe67456846221914cc9d69d5901f42c3fcf2ea050d897fad32a5062b4dddac3127808f6135b4b1925517ed350592bb922e6badee81a3387f3a00a9919319260921d149495bdf0166c060ad8ebc36ecc568e83ece1c9d564b09520fa2e16f1fee4cd79ec06485ba84551ca8ab81e940002868fe128a8ef32f84add5f1c3d786d8bb1a794a4e33e7364ec98ffae0d621f2804813fd7e058226a94d6873c5c61b2fea96ac572185ab2a8672f7f1e7764fe9e311076db7c7a6c0b5f2b3258ab3b808cc7909c2596a626caa6cdcb7008d1505ea8558c2eee0657e726127a356898f14dd25b00d2ae19ce8f6030e489af7b21adfbe4b8288942c6297db7412b53c75df4c4c38e0bd7f481d2a2d7be571edbe6932eb7f23504dc9f61886ccbc932a358104c8942772ba6de494b9db75a4e1d63263ae5c482fd54803e8125daf24e6e2f274d18b865e73817ed8d9ba98cf84bc2ac8b32ef3874fa844b3548f3ecf5be74635d3a3cbbef5596837263ef111c81a86f83679d8a4c6d2cdf87ca9b16f67b6ded47990e4747d48edb5583c38c7e2b22eff57b3f1acdba8fb6eca0aadf28e97000891182ae9bd9ddfe655dbbc02463a898aa914c4425057678ee7c0a98e3c38da2d7d4e43bb88ae0a8254e5671d94daba4dfbe7a6fe2bb04abaadb8474856f067c965c5a34114c1f32ef22db0bae9354a0c5a835cf79640e7d516470e3ee3176ac622c11d33b92f0206ce0fdb974e3734c00ee5df3c3f24122aa965cec0480b1a388647eab714275901dd907f04287c7e629619b177ab1bc678fc914df305ab3f48d2489ff10a390a9d6137c66f50813a74c13cc63c1bac0946b799407e0b829d1a5bdcf891cdcbd7b3d0272b4abe6b5356b2e5a36990092a1c3e6c6750309735c3cb57057ba07e59d5087206d4757b425f99f82206de5bb4caa042c2990b81e4d71970190b4d29121dc4d53b8f11e64085f93d6738764419d4ab7bc19ffd2426496999d75f8ac2d8d066fc4da93732f857abc811f98ca79ee6262a8a8cead381ab20c367a198a1fc4c66894085cf11ffc1b721f2334fe9bb8c3c7c5fcfda49280ff9f8e02cc31f3fd67645a29419f239e8698280c53583ae7d235d1af92e75cc16c738f526d20ea2f09cd86ea77033e92f35b44cad20c31b50a06d2fa1654fbd31bfad62978f797961f36129afb4717b311bb05a6f022c9b3776b4141176536f8e4acb5ca107e6c5ff291b2c80a6f9bac7ee1df4cd1fd11d93b91cc73a42d4948d18cfd807b314dcc1bb810a0a9979bc550525bb4ff74b32f0c09cc44d465023ba0754f41a365a08d0d3cb82e1e52a36d8fe2d50de47cba08b489ca913f874a3f4440d0a497f56b798993bba8740474bbb8835723505f225e90fdb4b683f9a0b264b56f5808846938278d46c1fc5ed8643cde453df9831c6b12e18db8c04e6254db4f2b12cc4b32fcd41699cec7e0c15cfebb0020f6c8585d40f1bd561d90e9ff36cff6415f80e4d34e54245f2c6ce230d942b1c7446bd068322a5c1b419adee7399a34ff5d3ee4beaa05c44348eb337418ffd547417fd57597150774da8943c55af1e726090c9a2fcf3d4ed879042000fcbd559b34f96817316929b61a38136d45f10a3acae9504af968f380e3de399a3a382341c345197654f5c3b234c782075665b24ea8f295ce36a328e8ebf6bb987a8cbb387a72eb616be31627e43e38b4226ae951d38cbb43ec5e1686be023c74d98909514be610cc7344c4e8e43808bfeedf6eeb1d2a62b3515bc55fcbe646d168ca77c309aa6b7f7fef4525789d0ca936adbe8f7b9828f7f2ea83b945bad670aa9d3bc4ec40230d32b0d06de36f263228d110b087e2e5602d8a3dada2dbd4a21ac322081011cc8848c5fe91efaa3c3f2646388301c00e4fb6c5be321e151a4aa3f46d3ff55be3dd0dafdb7c6a2dcaf148b48b954996281116711f2d39d19e3d2641822c00c7a13ee44d2b61a3b68c85d8f34129e7086c5a272dcd7d355fcdd6f8367b4cf973666ac1500683f1f26691d45fec73041af962993ef0f2994728c961dee7fe8ca93c50aff325d62c98c7186ff8f8f0eeda3ec271b42424b0b0b6f31d843cb9c80b3ee04c0e7979329227739055665498ac78ff85dec1f50bd3e8b8df53c319a264d3b44872dcd1643f716f51691324171063cf01142a88fb7de68dcac2159d73fc159bea9910a726bd6241811255a126078af8e4c9dccd18ac79def6c968507682d3e78ba6462f62443db7237fbb77a304d3e184f944e0bd270717f1f0351a4b85f6f418afde66069653eeed5e3199106d24e106d77d70893f47a23b280b1a777b5519945e316b8177493dcae5deca13a74c7ae7d7875edf8ab0ecc8738b2fe25b2aeb94e27ed04a3f1653589e7aa9f6bb8ae07609a89667bec60b8265eaef57c6b4a3c1295d1459711c9a6b0cf25627885a3757b7ebd18b90bf7bc5676c3007bcc80859723f5fac6be8c6881f9496b97b664101620abcfbad2f82e1d7b5d306e84b57af28f1c0c422681a6b7527d8e2eac0664105204e29beb1289cf0f2b6cd77e347a7151ef525eead47816c96957beec63db5aef9e2ce77b96ead842273b683546d3bdd4186d964901d6e061b7283d44e0c5264eea663c5044642890d26840759daf8cc98d6ee49b90c899a14bd9c200409df5a7e8aa9f95c297b70b59dd86aeb3281faeb2ff388f5625b58f1558c1c137f777c32cc21149aa1ec534310bd994a0b0bb2527c7f42d89c249ad571bef885580b3f768395151ad91fefc1011dad38bde03443b3aae8027f5607eb6ebf7cf5fddeca65538d641e72106a2c18492336aadcc78c57926ba4c0188781b4c1476fec0771ca91db41c130aff39b6575a8bb37f311159cd87501f1c4026c9a1ba1b3dcf271bfbb104d75ad622c9e1f396fb4b0a9ca72e620b917ea69f84275c6d82cd9df13b906041941318060fed11119bb9d98b8bf6f954aae9249dd7630e237422a6209e83952d02811d7928bdade2edb13eeff3bb5620f65ea5c505c522f81e892e12733c1d9e9775a2657a5626429d9efecc09c433a39955acc1c9ce1950192f11a6e41183ceddc65a47c991aca0943f268062029d1d2140f770cb1669c30e0fb9a5a4e41634789f377881cb21c82cb364c04c003605c2faa718a5d2ff4e0b8754692c2f8f82ec7c63e006768ccadb18f14a61f32257865ff7f15430def00a1f6d6d6cabbeb98b7538884c1152d5a37e4546d0a27e1a6c5a09c82050402eb7e0a554d6785ef3c2af65bbb89bff7de67cf30a0a1405814f0f2780fa4be4846263da314ad5afaa9c154ae0afa1ec686b162e3c790cdd473172cf444f22efe764f6af32b345cc96ad507ee223e829b87131e397fe31ba3ec901aa7a95a6d089fdc7d4da9eb17593ac4577d599e16598be2e5149156869416c5cf5c4455ca6b2e8eaa0d40ce436f48a8ea2ed3cbf949c865fcea663e767e06945492ee3b06d10389ff621731df128e9f85cb7e976797a9cecb45c75c39ba6a7e5cfa7666cf081d502fd0f0a6f50b321a9a8fdf9df8d2074d9b42e43f5ca4b72585fd93b8f983d7134dae9eb1e36cfde033ada7b12d70f1412013ba04f31d64f50f34a60b5ed7c0783fa9cabb0a06e0c500c7220f734703d33a7dbd96db0c36072cee4a1ef340f737aa3f0c1557f18430977770a25d155160135adac68dd89e94d6adbef37c191a3b1a454fead708f7f8d4c98eea23fadd9e3c19c2d37ef0278710a90fcd2267ca1552628a74ee6a55422cbf34433bf9a45974398a3d7743eff9a74b2026574fbbfeae92c5d746fb9747f8cc7c9f917b311b1bd19afe7ac833be1cb37960c09c52aac0a3706ce2e0634c805a5fff12cbc741810bed830df8f1343733ee053c3ad9a858bb096df807f0232344fd29099a1d40b6a599feab4f900fc1d20bcda9bd3b2a88d01342579df9ff415cba766b7da20c9d6fb7e851ce9bc96fcb5ec9e6db5a493d2e5de63d95c879e5e627af636a5801a7cf89d7bc7c94ed780b847144eeeb4073f5951d5a284407c41bbf53243f3caebc40fff4ede0c97678b60b65d273e92b33993677b550174e45a86bcdab3b3e608ace7fba188947e249a22b1c058d9333f560b657e04be5065a2ce6553783ca5e9c9b0bc7c786d1c034da41eb9e82004d4ce71182971e8e6284bddea0f79ee121755ea9ea81eef0db551c2704443d3de8289ea1db751083233964f78f10fac0020edf24c1a25a10407e5c515fcdcbfd3269474064012a2bddd59c8e7b0c651b29017c1d766b66a8bdd93fc6b641deddd0df7bc19c87be570bc5d759dab294e1b6f1a8648c89347cb38ea1ddfc564d312b7425b8d5caddc8f30cf9cf51a19f9a74a566acc272e8e533310fd4f8819264ba81058d2077dfc18372db63791d834c80a9d2856ffe2d33d7534e2df3e44aedea252ee5dcb2dfad9b8dc98eda549ff4c04998afee95ae11cdb8d2e69be1b9ca7fbe88581ce43dd47aa805abf7a7379020197bb4f92e9e0bffa5477a94ad439694744f7856f11a1d3d08429e63acf4b4ce46d0d90504311456a70cb0470cf423a152922527d9dfe59c482954344962b90d83005e01a82024759ab341f93bf9b2200eb537117ab6e56ac9d7085ab0716d4c440a070aa429e67a37834c373725aebe5fef727fc80f226ec85d63a5fef5628ed3fe00f7468d739c6af69317a76dfc2a7fcdce7d7e1df39da63f6086fb26c664a5830cd0af9120abba3b94ea456ce1f719ad0ce5855718e803f60bcec821c6f92a52fd8b65fd58d7a8b5644efde06d23e7449ef2faf7dcf4d06e0dfd51658df074b888b0ffa08c426e7a6acbbd2b802ecb18dc86aa7e4c9b328800e9f156ca1bb81864ad7cca2b32bcd4da64e9d354e35a078c835c2e77f71699a0c214bdc74c0267b30ce4d0b3f52bc40dc72d02a72d6dbfb704108ec654a8e9c2c6934615bd33aec7d2bb8bcbd1db7aa0fdd50661a65643d36d8cea615e5e3621242700c0d49f8c2da7a9d96f824ede67dbeed2dcb45b6c33854fd1a2474a2ef4df91e11a4f8eb10ba1511b3026030b337e147cb467e066d417ee9599de5ef85dc31a4017003464d1d025b67aa463ce5d9862bd2267df2f70df71cea1bae1aca49b7c592dbca0fe34e16292f9e0972b336acc74f3a23b1be5a41cd806f9e6d63c57b7cdd4248e6d8269e79efe4d84d91f951423049e9252ecd83d50b839b5f7a3c9121f8d5bf1b239cbec4900b0bac1b432b87054794f51201d759a0ece33040b20333776ddaf63fdb4e90b26246c8279d963a6a620e1655377d15e9f4b11e5d05056e37809de2ad1a40fdae4bb7bf08e79f431b03a20333629ba0722f524f7cc0fb151ff127c44a803e6b5ab3fa991213b9926dabe23334e66734364aba98b691169973d63bc0244b47e1da0ea6b1facc866b89152fd303c625e864e5855658ea6d92c0aab7c4b622fa1976a317d080aaf8fc428d018c95271c986f805fc3d5bfba66b4627c1183c87122b13e643f159bd8046469944f47c3542c0cd136241b282a317d7d9aff753ecd1e8ed4a482fb08e53e2e696ba767411e1f2c13b1d919258b2d22cb9bf8a948dba5e97e6994c99a7645ced08dc6b485cf29f9559e8c242a5a0a45c188e05bfed7c22012b98886cd15d204387b4c4330fb78e2a269a5c4b4b677bc8c912b229084b4d8e41df556e9db0bb88d6c2c4c3e7b34be858035c416a65a557beb970cedee3fd3f8e32dac239505f5672f8834e382ba530e154b36080eb573f233f30a94be4d3f1bb1e72300275630cef5a6bb9e0ea2ee42953c4f634de2a5b400977662f6474a663b52ab27657c1339534be8f298dbff69887ea9c154f98159921e06157f009e4a03446da811b976ed84b0d697ba8f113bdd5f042d0a883e011dd97f4b4e2be2025a5bc043998a6f88b2bc29f2c2fa453db559709b473af3d1cb9de13c0f3463f9c79b7598043d6b7f61f9857df6d7cfece1a13ed82c643572bf28c3f1fa1551b740215a03c4cb0dc282f1dd429ac5f626d958e3fde2e4c28f3dd88c0eeae25265919eadffcd8e21235fd371f8370f8b6df9ba4f3d73b3a3534225337419af212fabffbd44574bf412f3f9cffadcd3712a5b7e6b672dc62d415777c7ab34c7e93e48d4431e9eabddc121a583f1cedcf6c2e4157dc1a737a0651c229c52dc28e248db173af1244f5c3f28c4b42043fb7b646fcf21662d61fdfadfe94352c9b6aead3f86af5f405a6b414d0a8ec2256aafbb85c21048876527d95918c9b28c7619d98cdc14640adb249da6478d9637aa797e65647869986f793ba66f096ff8b43862f534107cd181f8c996c15e1e96a717b3fa438ef305755821a6838066b30e58ac9d96a0d24ae9713c7beafef319d0f81ceafbcfa200899fcd8aeecc4eb78a14a21adeec4ce26e8b61321ca2b4a844dd04bf3109994555244b8172ababcf7d34affdb3421994985cc5ff6be6c57103a53676964896d8cf6f02fbc2437a9e95d3367f6d65f2f4e04fba5b33601e3a3a83a3dde5dc4eba05c48642fa0a5e0fa231b80e8239bc14c9e993f6cb2c5aa31b092265395b6e7f940278044768621d890e489089d2c97e6b3a024d1058bed122be7575f164b29c2c379339216c0d5e110aa71267cdfbb47432a0911d7cc6d6b39f8ff72e3c5a578e84358ddff3cfaaf943ad7eb2af330bd75827a2124b8a49dbe7ed826706eae07183a001349daeb5611a69523c5ed4b5e14c85d1bba81df66e0005b4e240a5ae29fe96c801ca6738600da2090a13e2db30c1d727fbf0c41b88bb60b57de26b3862d71b485376eacade04d4ad0c3b078d5f266b8692ae1e146ed7d8c9b6d35754a55c914166a9e9b47b0bf3e7267adb9437a9fe2f44572881afadf69b517746287119d37f71c6f97557500cfbc7a4e1d83feb42c5132b5b317e924d48413a97c133cb2e8d6c563d4d5bad055e720416cb6fefa405c6207f29eb478b6990fadaa7016e200fd7519b4b50bcdcc702f786e849a2a0ada1f65bee09c1fdee5aac59446c4a187954c65af58796ae206b3ae22031af394c803f05d72a4ba2324fbcfc188ce1a4d4d00c3f54d190323f668ba73e0671a63ab7fc57705119cc82c083b3f22a0d37e415a131c3885f2866c43ae55ac8f2dd214562561e1f02b7a8350d25d1f09e8f810b8aa743b59c2f7efeacc74fb44c177261fe857e2905cadc742584d15bed155348dafea80b7669e4a374be0145e42953bc6452550042f4454c4f0a0f6d8c0fe9fddc87a7cc48a0cd7b9e25a00555605730bece2d2a247af47ad5b069b5284be19c21ca3af28ed928632343b16c7cb44580165dc298692fd614affb9ff8c029999e99e649192cc56341afa05a5f81a797d90cdc60d10f88ba2ddc281adcb41e98315afaf1e3264f8d71a0b2cdc4d769672f5dbc8d46121475319b938c0b60008899b0756573d78dcf2932c96eed06a07283d360d04e34cb13ba89a35c3dadefc7ce5fbdb946df26a2315b5e84ab0107875cd18d9f7be321e0aa51016f52815fc87f006c3397e8ed421e8fea8dabdcba62fdd4c613063f9d69d22cfb88c72beb2a6cda927b1b296318a86aaae74f09b5cf2f86ed79e053a18c1a37f7048f1afa38f239acc174eb00bc01eb18a12e1fdee857d8569831b151c0ea17bb9e7c2e116b9ab40ed301bb8a4e71347cee34f5bed9121e72d0ae056a22e0957fc2e64675d69b387717ae6ae8c697b8e5b0d9c0bdc206b7135dad3aba861ba3a27bc3bf86b719cf95c4d00b658b5a1192abe4ee41e53370f3e3737e544370b0f284211080e705c2f93f8be1b8d00843d294690597581348fbf2b944dd3be427691b8906f3342fd8e4badfa770c8f56342a07ae2eaaf966ca4c6e340debf71e97f4abc9a41a931c5acee590d89daafd0ffc6a9db65872a41a835aa79eca324eb7b922af8359556b0c55a8e2fd5bcf957c238570a4e94c1b21026340532e31f7a581799da6064c2f0a28a955a71fbbeb52d8a9e46b29bfc9dc25d795e7c24432f65931cc4e85b1c29e53d8d2ef36fe04fb320fd5311a0802117db40228a65c8b094ee9dedcb577124b8e5846bafb63949eb380c74ce3e5effb358127a5a7ef83ea1ea456d98c9320642a36222e1b0a882b8d485e55009d0a5dfbd966783bf50ff72b0a1d8d524483012d76db43a0457d265eb5e6c61103a4cbfb72661851ab185bd68eff290d4de33be43e6b611385464d410ecc2ff129605d15c9933d80bbf95ae93f2c83d7a47ebb96ecce0641376909605a22f2ea79b59c5fa59bd63d6e046ed18cb7552639a69626de868a795ea2b2701c1f943f446fcf8de2f20c0bfffd28ac821a213efb4080c1a618e65be060a1ca059da04e192e8de3984f59d0d09df87ad1b18f5b984646f81a8d927dd24311faaf99170d78e5a5b5f22da8d63510ac026e3a6f50ea46a0d760f27481fca4d3fd9eb76ea9be5c58b1704b8e10bb78cf21cb5b399764e24ddcc3d8da6f880dd29829bc217f9eafd863522c8da56a68d6a7741c2c1f804e85dc8ed4866162bc60616812d3bbb7ce26bc2c9867f1456916f74c69f2526ed5b1409700cdcf18256178f747fc576bfb3481751986694b7891fbcd91dc1b2a5582257679bf1b276d34122a8e2e45644e5ef6ef7f6b1ab986904075caa8e353be4741a5df6a1e74f07d3b4a3ce3f3d2342d28745d39afe0f70d2ff2aadbd62396a3a6d6d822d476bbb583a24cdc92d8ec719b7f894435ce24f0bec4afa8e9237886bee78cde74e3128b775adc14aa2909a9585ba0b90d37d91325bab96a6151907e13c12aa58bfbec1615a2ae41f381f3b18d687f51bfa2d726481c8bace4bb2156c84d620adf9b72dea343a8e1911d65d53f52cb159a83535206784dc153b6ff01d476eaba3ceb84a59a7654de0c0ef01bc8776a355f0175b595950cedeb3315e05cb7fa187a1d33117db961bcabeb77f413e108e95e8cdaaf899d391d77fae145cd70cfe83b16481adb8b205c1916b22ae4729467beeb13fc466c26318ae8f35e7b9e2b0d57d7bc4fdc1c074a6e71ab2d84e6c0ead75d249af0c48dd213ad725bfee9d353dc8e3ee90066329f044f43a6b33d84c3e68d058a176c08debdf396ee8a6a105221c9b0a902b5dd71b7fbae5dbc089b7e71962456b731995be3372f1df18a2f5158c3aa91ff5aebd56f3ff373eed904192404e26d499924071d261d5c15ab014b891bf6615812626d21f46de6fcae82440cd11150f91df068a6b2d5fefe125bf6fd2212eeecafed8898bc4c66f4ed1dbc699c7d8543082b7e1dd1e3f5d5b697e372e8b13ea0df58d8bbcd157fc6d09fa884f7606b896963f15e0862dd691c12a99fa73a844eff18ab23af1e0da3bf18153c7cebcd63190de380f3855b1c6cac1fe8ab48d99ea6c1c028d213049a275b733e86c452be7f01422e1f12cf48584baf48dc28d55a0d8da9cce074853fd07e301ed482b3058efcb3e498e24d830f58abcf165eee354ddcb61db014474c905e59b40933c8f2881c0ed7f363f348df40bf353a20ad2e6fae7bf8d39c497486194f8309d861bc2b685d767d167ffb85f46a673cd9adf34f2bdd48ec05dfeda8928b0b5fe3f4b93c467fe3d911434274698f11f5a873f6a91cb32ce622016393f0754480bf13c1e2034acb467d622a67190b8353de0a16ff6ff8999514f846f81f47ab8048b9c7e94f456f511960a0d58166758f847b0bafb68b6a3ed350caff4dfe99ec4f6395acbef2dce2b5fc1ca5a1908e84d20b0243a87fefddac23e72b6e65d8e717fd8c8848a69523b8659f7a7fabadd0b95205da9ffb6d48beaa3f0eb9259956db99d997c9ee28de9bb34ec6a4e8547d5b1a2fad19ac27787c28c93929ec54cc46ff87ed828e83b66cb85c599d75c2f48d12bfd538c3d0bd2e1e7d5ffe9d3538f9ff56b69603f5c14c1e04ef7b788ac35c5386da428995dc6fd28a72399d03cb08a648708ea02dcaf1d5bb92541cc42f85af500d217d117eb027c305231dc75e7d2d3ee2d634b7cb25d5f936c0ad1bfffbd6356ce304dad4b4c238d1c6868fbcd4ce289c3d45aa0e45251f215cc75bdd6449fc8d3bae7eb612814e7472ed12797d59998f79d4a18ec24167084a8e3fb59d18f81bfefe20f0b73fae153a9317c55e9eb8bfa1bb2f45a3c6f4e6affe9ff5327b0f7fa8d5051b61f1e177757dd97a4eaaf21eb1925350026f558534484e2de62ecfb0d559c2c0250589763d19dee59bd0de6f0929b6dc8b6317ba863a2da031abb894c87ce630e91c64a5f3efe73e85852e66ee8dab3100d94930d7c15b78bd2334d9e7094704ea13b1f7b96bfc99c108ad5308a93d3bb7fe02495a7382fee95ad0223c4749ec385591ebf6abad10f6df9964e262c1741a3d4555ca2996d44644ba2ff625d216358274b2d6691a474321e8cd6e5db82426c4ddf6e4b1a1861c7796b4e602bb211a69c134c8ec5506b88d2c577e3c0171ed6916f0e88668e5e67026ef03f7ed52734b379cfe0e2a8bd87b44594c7e98f014d9540b1c9ff486d1a7634ee6b78b8c9d74c145f05165541d92ffa1f3e36b06550f010d49486179426dfa1a4e08bd3e4f20b798d90227b0745156acf369027ffe2b4dd33c1475ac4da04ebe9eb8116b0eb1c146386fdb03bd6ff743b1d0faa0718eb8e046d5dcd63e3074215a378fa7b736e3e45129dace4c0236faf4b4a21ea244688fbdaa19a4146fc5a0aeb1d0f1f94457a3aa5cd8b36b78a2c96a38281d9cc9ae14791d74c80134013ce7c3da0cd81948278e32a169d665d8e4213a28d4fc135d4d574c8630eccd1afef7b984162c14922e8d46c64f3d1d4bf40e1f9b1e74f4b604ba282fe2efc52513f55f99fb207a0fb3fa2a3a88c51a1bf6892a62b44ac4240905c3004dd87107a69b621174b38f26b86cfd06e3873e3e8acf66f7a9d663fcea22a77bb8ac56d86ac63f093b3afd93ca3d0b939d10d784b47f1d02420789fbb2fe48a936205b1faefac65448dc85ab7f0e8625f3e07b45051ee0d112df5d4d370a81e7011fca50dcdc29d2eb140e89ee41489dc0ebb7b9a893200200f26e35f7bc18f77447253bb8b59cdecc33f2eb327ea98b091b845514ab59c88eebe9b98e0c679fdc6bc74be2f6868efadcacb6862f632501cb91a3e896c7aea9082ce7e4f7fc783a1257d5e5ae438b6b86cd4c640385bb554d65702568b0bdfe99a086300062b1b0f608c2bc1672b886fe3e49716e79aee166404efd993c55c184ef62d0aae0d9b687b25b9d06d60290e2dd46a6281a0d91cddcbb6c86df39bfc47b73bdff62136866ac13f17dc8fa1e275fb545aad4513faff67738ed4f9566e631890e0c5f2933ea8474861c381c179386f4b8b4deef8c2ea7cb1d7510ee908aa6569e62d36df59e82a76bab39e6f343ad2f58ca7aa230dd8ed5ce248857a5e884ed6597536811c1f637629428249d2798b376b24cb01446d01fcce7aa5cea484d0b87c324aa62c45ffe8763570a62819eb8caf7bd94a464da0a4c0d3267ae8963cf52046a5908d05b5da44c50082c6a20db6c6972c10b2903d727cc64a5439b6db4d2fa6045e03e6b3a84a5a572744d4dbc389bcc69caf9f15635bb70b0aa0502e77a4bae95341c835cf26752660a6a3a854d64828af12dda948b5652752d60a653b620ba668eaf6f1a25b1aa8740544946ca5f419f8b9285f4ef7e4d221ad91d06eea61ce5d7eb0683ed45dc7eac74de6ca76a63b833e72e9c10f6f51a44b307b4868f1abaf8fd2a698f09ff533c8367c9bb2bb3e2a0622c2e40e7c734efc3cd8c108e31dbdfc29cfdec88b50c0814b2df90864013f82c6a1d1e5c50be4ff2e2a88edeb40e7e4d9ee09b6f5d2df008927ba72845090be0b426f6c7e512d8bf51b24cbc79b78c6565d58c10d0ffcb17d8c3320019d84610d4b8a87bf0bc22ba9aa032e893b91c045e812ae2b2c1a44e98451dc0360bf9c074559d2fc368660ae3a1e729228ad1d93ce136fe571c3d8bc0b160605096bee9e3349781032a07e8728b5ec62abc5cc7e15d3aa42e88ee03ff46569c730364f898b64371a2d50622846b970d889c46640aab0ab4c37db8bdf821ab713e913a4c906801e26472cc9960167bcfe4ae507bd4d9ca3652963715d0ed10a42333eabb75afad1cfc01f9c3d0c8b6e2c81dc78a1049c9d3e3fd1c3afbae983bbfa5140d9f593e4dae24c629da39679eb56fe645645dcb5901d9a8af6aa2e2013b09b280d6a68b038f59b9eacdb53361521313113d2baa3af37f9cceff6af306c3b3eb42f58ef6b347dd4c37a71c330ba9940089927c9e0d92b1134053078c1d0a2e5efa4d51863670698dd5b9dd9582728d0efd78dc3d0ca71fb686cb49575dde8b1740e796af477756929eb04a993073a211ee8392f595dcf6bc7403cd1ca1cd925b2186b136061be22300dcdbb980e71f7794f8b7c3aa3e445ab0809e6e08da60339c88c18577719cd97cd03f736400073258d0d009704b5a2a37ba19f4753e85122790cc5e04813d792855501ed26f9e285a8b9297b3939779d96ead891043bd672afc0e09f76865642ea246a64205d8e9ecd2c27761eb3053b84b85eac321c7c3823412f8011a09724befc8df325a1d4a14ec579c0b2ae17fcde2517ebdfafc5c00c45172b69e8da65152ab45a28e55270efa4442677ba0d563f1a832f3d8a91ae84279ec0ef4d3dba5ed7dc0991536fcc8109cc8d03fc57b9af6b7fc9ac64aff731185a5e671b790c16e42e79e91301b6517f0c1c47c3011e51943bdaef12dbd4de24f8f7dc3c0c5b3dce2d83fc18f61bb7a203a65dd67f48c612ac66fe0217d171557b6f76f0f039cb643678d7b95f3d5aff885f942bf472b39ef2ddfb52663e6e0bf2adef2bb6133620bce9ebcab1a71864d756ae5f3ad3148f47245865329c24ee7e39c6434b940ea78980ac2faae824b826bc703db25629871adacbb613d2804073701b355df210de4aa6f37f68dafbb9fb5c12406de560c57b4648a902989ddb840c3694340489bc09dee72b37fd2c566702fe77e53f82597268075d2b5c9586310f90a40f1ba253fb9abc11a957b1d09748a62fc90071d943f57e3761ac0cfd87ba0f707c891fce4e950c445796b9d7106721734ee9845a9ba04c2c1d1bc82b34017e870ee7c7db5f78adb9c68197a46882770284192c60acfe63b2312fd723880a2f44fe03ab2c6228ba4858030440fec10d1960d30a0757a207c01bf380dcbb1ea2de8bf233f5b098785b4e20fbb288a3839e7e083026ae61a8346aa15a43bdf7ac563739fa1db64374a73b7486f70cfcc723fb3eef3e9b0fe0a2455b1ba7a5d44c6190cacbe48bc59d06e722135d2579ed39bd8a847f6463c7cbffa1d1f7b3b1b5da28e5cc101a42dc4dddd16672141a58d0fc73de4434c06f2b793ddd44c5037b1fb505449f783f96c125855f8e7e57b8f8eb90e5ae340d54eb8ad69cfba28b44c41ca4fe9a5268789c95f405715bbddf4e200ccc9d432e2608766af7cf5131215b8dd99f57184a23cc803ef1fb7be2f07b0a6011bc24eae1648968f1f1436b6d3306195a23e589c099b0aab9e25c1f6cda4e0878259907ac3db385efa76d6684e03dd38735a0bcbe087af74224ed55b2f40b40e5902a8d073987264495417d4ef234a8bf71a70083c05a27c1f0560afa0c8159b41e668f851c5205e0dfae2090016e12cdbc1932e4b488daa218a91e16659bf03a088b7831a8fc2fca58e22fc6cbce2cd4385a9a130bccd188fa78f0a6727f7745f66fec5a066ab643c5a4106234ba2b47fd5b1c44d7422963a183ae2865f7eed0858a35263fbdbadfde29662f5dafd3a043a0a829feb1824c61c3e479d40ecc129b0d58830449365256691b01662e14cbc5f83c62aa3a97cd56a21bdf252cb190a505205db47a50cd8776175211366eda632f4027971fc8510e007e951dfe86eb32c682dfe97e997cdd37699b0649eb2c51c82ac249593e1f5a23a15a807691347fe9ca5d2af9fedcba855e7874325445bc4ffbd75dc2c607d9be2b035235ca9a413cfdb12a97b6df1e82a904c3115e279e3d4300e74808b8a6dfbcb4e40c4a86084967beff82967cf680da8cd5122dce112db89a62ea51a2f5f3f9cabed33dd0a3bf5fb13277d9e54d708a8dca8301930a27c4bda574a7ebdd4afff48ad71e6c4911a10bbb024cd87d8e6ebb50ae6925cd72b8104642758ab4c69f0d8b2d5b8287b1c37d389c01e12cd2931f98065d5882ffa362c0ffa004405a512c3cf691a7f710d2d33ee60b49910d41e322698831e7bb0fd00bd2bff2ab6252bb5ae2d2746a6c377de740623ecb865bcf0b925d23def4969e72bbf95ae07d0a5c3c043d0072cfbdb599782f2f81ff2f5716f850b7c861d9615cd7734eab1da0f1a7e355880143ae50f1f2d209cc24d1ad8b85d0df24a529fbf534402b96dd59a3bdcefd614bd0264c52a3f9c383e1c5ff310c0c89a637425544dd65b7821c19dd31b93b699c36dea1dbe48cc2277f55c9a05acc301ff21cfc8d4f84d9af396121650b338695d3a4f300d2207db31f08d9204ab974175d0c4f6b2a81b082de716b04131f0c90ac12e2bf6ed1b18a99fd308ad4472523b9b32077e28bb5415ac6d488f6544a5e0f966095b3fc8a1eaf8f299a78195a881e7cbef894b58bf3208fb8f2df2f18de2f49a564d3742fb04a411eb46b1d622986843ffbbfad005986a4ce2a830871627b8b2033e7eb3dd4ff43cd2722c1f4971bad379938636072a7f0d76cadde877c074584ba34eb6825922e50ea0deeddade58b945f9b151360764901d8355cd87a3687ca6c663ddbe42695f92d6f3d2ad6133b6a7a8811cdc7ad84c973d6c41ff0691d1d0ac832dec935862580829f3dba67e8e0f43c4442a267d5b6efab42411f5854ddd49879da4d4028acf3ae28a420cae8cf460f7ad1d49c8fb6ad7cda9500975ad5a73389b4c70b0d8d144586550c6b0fbc131a6ee3055040e93e41ed8e79436ee874219866db1652f2d23e6652481a7aed37c9ed0de338a99ba68510d1ea3e5d598d82c34e0ddd9d8bb25bc00fc964879821561d2f4ea6b48a4f7a7772e9838680ab7256ec7bd74ff0c7705c0f13512b5401403a8b588efe9b1fb499a6e641573071ef2705a1787339dc0dac20b0f3bc0c6664db8cb818ded249587cdc4858105dd227b6a7fe939ea9eed32389a680b7b4f89489b0beba0eaeef014bd6e511bf07e708f01366f9ffa524e61e7e5ade9cae47a8aa206399b1b12793ee81740bf4c1ce45eced135e822f19d96aa2ed6ee17bc3e8d4f6d6f58de918021234036d9f4c377a0de04d0fd7f20ad48edf93c48d0a27c0cd741ea2335f34c0715f2022707192d7830baefab1700b35a32b1c505e57a12e9a7da2a19464d9f1ab9c98e5e6817ea763ac0f00f52bf865e909064344bc7a859dcb452cfdbe91ed2e04a753f3fe8799a65431e3e7bc6434d2fe5664e7b489c3fc91636a9e3754794ad87021577c623088c183deb436f1aa4cd9b141cf3a8ce4f758230b7efc1bc4b1717cf923df3895881d724703f4d4fe83c1f8518b439305f1af824d3b61226dd6a5b744387bac2af88c571ac6506ab33e186c14fc2be148ba80854829101f3b1c61813768b87dd88da8f992493bbdc9037158e74a84ba5253fb8f133ffecabd59f5ba6b44309461024d6ec360801919d4a06759df12f0147b830a5a623f9af753baf5c52f066b72405854f6ae9663f1e3daeecb1b0f3dfa31d445c9a41a082ed37a4718e9484b19a9300b2a8bd91f0edc4e7b211f963c6d22dbf1c7744d30aec03a7411d7657a22ad71e95aef2e27efaaad2b76965af2079d98bbd3c3baa65a8612692a6a24a35864cf2221856b113cc4de231fb9292d3f1caa3b1e2d8a42e8fea0948ed67b37a6d6464a63b9e11e36c1d3cb5d2a19416dfd8d24e4af07a5f4b897806e2d755d94003a06b70e22e68642166688eb653a9c194493a09fd7c2990fdee6fd74af9fb78024c53781f33a4df7145b05b7ce1b51fbfffe49c9f846a935ca6036cdb0c2da2ad95a281b4bf210ebd6cedc59e2ff2fdd1e6410b16759fba8b4ad182e95bd2f4460bda9de5f5be31c4ba24c94f8cd26d73ec1f90ca4b7696c6007dd198d2fa6880469d995c0f80ddde48ad5cc32edfbb05cdd1b9c4c061eb1ebe4d1f4e52302f0467f5d8a286ec6573a93d53b4d37e5919b60d433277d02ff6ed3f4e3696ffccef5c783aaacfb8938276f2fede69c8f5f6b82e0be7bde99a866856acc027e8b752031f0b47a0be3f1b30288182ce2d59160d42c9d8dff19858b9a3d81f63a62db10ad4c3b1c8859de56a420fe7991180a8228a79a004b83cceb5c5bcc98b093585b305a1059cdf9f994ebabed4fb99200e856110fda0af0f9a63cdb8fbf0c726ba58c423c2e8561184640e9c18a85240608da7b050779774432fcd24332203da31ca37334c8176b009b66de903d36fbee8e4207f2128d0aaa77287b8b4336e943f7775e46c5428de1d3b3863ea3dc4bfa4d7752f9952c462744bf73e0513482a2d6901e6ce15af32ca98ae51a653bcb9c876b892074504beadc1ad3872eb9b4eb60d842b8176fc9bac2f6b001555f071398b9cc25c3df7872b3e3db58a9a79f08bd17ebd7bed657e777a7eed98951fa81258cbffae39446e19512db99f3418a6d28a09801310faae6fbc48a394c7a648232dfdfcb858540277c830fb49991493a3b3e25a857af804eeff6ab9f158c3f56dc9c21b59ca9057991698a0e3173eeb8a745c6c72482eaee16469ea9edf356ea78d281311503e24a5083ae60d24a32f087ff0d75d1d39684cbfd8840b9615d8bc7e9d93874d186518cd4c50281ad08712b884502ebdf23ec28531c0ade7e63e4b18c8be05690da6424ae910dd13722590b2aab5b3348776ed0fa2a67d0d47a426ef32b5fabbbf3cc5c432d296cccf74dff963fa1a92f7d50c257a5679babedad323fb0e7793aaf31ad65cf60496caf8502c3513792d0b9d70da095722d88d020ea5eacfb3c00fdf0cb309ad975c5915a7e591d84781f10efec10d9efd5282e84542a84a87790e573ac2baf209bcafb79c79eba1e09216a1b06802ac12f72bb71b8ee771f3c8855c99824dacd42383bf5d7eecdc04ebeb8b1425f9d6705cff62e590c249978fa400f1c1be95b70b20490a27ab0b581ea8b1cb35c874a7e339fa304ba7863b1449c15b23aea83538417c386edc63e3e53e8d0b30b0164cc29889390883ea4724922ec9f55bf4150fdb4f6f1052c093c713221ebed071791f35977380159c4bc443987e5a1b9ee3fb4cc7ac564db5b64e29b3e1ad06e14a40174d05cc95877970e1f392bb72e66ee4aa89e0b0705f81d4ce5e464f0da661c4524d492513d326ed9fa66f92649c48ad10586e205af48dd80e9ad222fd3062f2bdd14f7b3b944da79060577e9a5d49ce31d4b172303354e95fed1fd881be7814962957d471400ba5a8c0dbaa6c5f0df7963c744bad92b81c5a425b9c618ecee4a2df5b805ec32406850b6586ff4171c33b4078ff6d717d187388c8b82fcd170aabd3831b63c37d140fd9afc8f19b19807ecff13e959ccaaa02753a81440d07a44b5aae609c5ea0e4613f4ac95482edfe93dc09900738acf211a99c9254d4d8e78406f0cb5b963b8693ab1926e94d987bf1515c99cc729418b7956b614154c6cc8d180e0d43b2a1c4434bd3b9d94308905e217b3c5f79d496ff0d3918fdde93c8c0ad044a6b1f477712a484e26e95f138a1326980f6c62512ab932bc69b06049cb3b57f3142b348625fb80c18745f4aeaf524214c114e23c238127cddeba3612fcc6064dd06c5e2a6f5e29ed249efceb3c54a0ef1ceefcf6909eaf801302ff97ee43447851044f7c3846543c1dd987b754c039085de600de097e38227d4ef9c97cf34f50049cc8d260980555003d61724219a7e0f0fea24280ae18e0038891fa3d18fea1a85bd4e4a86c90480e63ca61dd2209f7eca69411a9deaa7bce853dc045d1edbb2a485096ab46cd40a9318f58d074b3077059bf39bac80ea16e4c32f86a6892eb0a4a02fc083dd1ddcc91313e3dd3161ec6dedb0685af489b4bed5fa92e25b7dc40c4d575797968ad69e73d2516a07d88ae2294f6a15e64ad3c71d22863d5f17fe6296ba6a19709bea98d44a6a9b2f2cf37cb58da183ef0648849d0f06e1a17f2a8f22b7568b2b237d4e3a57bce7e76bc4b884889e90ec2acd1af53071982deb085822501973e2ca1db886168c7ca3947681b74689a24d39a18bdf755ae601c64c64e0ac6208208b8db31b6c96de851e0531662fba375b4775cd29d3159d272e7069ad933543903715717e7fe52ef27069c95e8fe26e5980ab297ec4544cc577567253f517ee58f12bc5513ab585f966e5f27016c53b089fe5716ec4d215f4a6be67cd63d39d63b16d98e1ce67158fd31d896e577e4a1377e3e820d511bbb4f68544bb94c5b019c1e1efc62c8a07cdf904c1354c5dd3a26eb1f8e4fc26f6cc57ba9feee2c0b755439147e18be84541129531f1d04be164fd2610bec1966f85ea7c7676ca7cea97a86d39ffe8b2a12dcb5a493924c7cc1431b541a4b341e33886b45fc4709689dd3a87aa1581b10ae3c4cffae96b68edbc2d857dd3e2604665369093e0182150d59393f8d15989c8e31185a94e2dfdc3aca6e6800363920078b9d97025aec6568d24c4e1a8b810e844bc1da2bdd82f1f64650ed5cbd0f589de01186aa63f780a21afec2041a8b34edb4019a7db3ac0fc81c92477c8c55800fdb48184397eae1860cef9f73d79e8251d0f6e5c87084c291c42a4034d6473858caebfd215403a73e16ab722fb3db490440ef49bdb5ba7e0c2d7077f95d234788b7d7f951c00a5cd7744e7ebc04d3fdd2c149ffcce2ec5f0d9a1c9156db81fdb59e4d5eb2d5c2136876fa75e54c279a4976e8916b6e12f21df4eb16d34c2b679d458713d5d960bac4dd328ce8cfccf89035ece4d55b911e1ab9f72620a23f99e41869cc87414fad5caacb52dc51fef8c0297342e3e5dcd7dbeea9b479b10ef6eaacb10fefae05d39950a08f39491991f0ac3a8a1eb5b26641d98d409c4404635ccba9894d728b395954ff07c397e8b710bfd878b6fa1f92d75a86bc9c773fe3a259a827ec9bf414553b44b387e546fa4be57ba928b04867ea82b36c84fe825f5c0e6e22a1a9a6dc536c34afdbe47e2d96f569d24bebc44ef26c6bdc4cee5a59e4fcba6bc5d5597c8e9de075fd5ce884d4971befa23e6518f0633bf1c2a321f8fc5ad76219bac8c73c6b76de75e2433ed899565ad0d0165b709c0f850bc9ed6e036a26832ea0289a819d66d79cfc81121d4a4ef1cd071593471ce48c4dd79b137e4f5824871ddc581d617875330fdf9b5c4f1f8bba500470ab9531cd0211842bb75a50eefae679b5d3b299c6c414bba1b4ec557046e582a5224592d885f55e49531e3b99d27ef301ed3101a25f0fc7e69e8dee6a0b78a1df44a7c91c76e0dea8a93988aa4e266bd7e2fa36e86bba046da82eb1f16c98a2040b27018613ba0d7750bdca0b39ce357a0b30ecf8aab8966b3471186f34ab071a7d779fa8c7173b0c4d080c9a8391f5830c8524e27f6501fc7af69e0d7cd387618fbf2d6ed8f71533fa985e08ccafa46cadcc043124a4e4105177f44d2a5c332bf64c702c79c86e7ad39a303eb6ff45e77ac820180fc24e1cbffd5f0e97bd4532cd8fa263e15235830f7c394eb7bb49c6d5512db4f04341cea765ef7d68554c62465212fc2eebde15818850cdd7a855f70f6c17b63c225ed869603b8358b0fe09bcce687f1ab4eae5bf5bb9c1434d49974ae328d1a1462105efa212bbfbe35189a3e86ad9997d381e51eeca25048b4916a0ddcad2c129cf8041409fc4ff9d94f124c530aaa31cc766b13d2ea06ce5a314f3f8bb75b2b44d329b27f73c81375aae785322534bbbeca05e3dcc0482fa0e7e67cdf55b8ff129dfeb93c320ff465f6a5681e20d397b4ba2742add426988618c497cbec727e814642066cbbc06067a5aee2a38614ecba6fc6839bebbe77ad1d7bc917cf724d50e8999b31cf55d62155dcf8636cbc7961fbc0b331635df1dad62548dfc42d6f02082ce61e95ca679be7decb95dbfe3b3f649b92ad835c9e79ca988413e279705fecaf80bc96102cc12bd286819308af6bc2de8383a2abac17d6eb60f5ac5325f1016319088ad5d8e215d18d051771ff056cb098d8142839e76e38209d94d220884f9665f3eb68f234888799130b7097ac3172c007f231c03f72af4a78b7c5a1b7fac5b8e16aca674dab044b30e5efa006ab7dd120a626a218866843c5f9b2a254dc6cc02b212b89abd64f29f7e9d71c3c934c8c6454ab0491098dd7176c3219fb24061a9d9f6b062e0982e8947b27217b35a0f3ca09f1cc6b95c0a0d601e0358c11eff4f8c7600a99f165504ab8bca874e979547ebf5c0a8e0ce9aebd975da3a9af1ab67177e9961487e016ee68e020dc9ff6205c2d3dec843cb88f5d4a1f5839b2c99f30011ffdad31a488693ff189ed7e5f51796c7848f90d9974991cfc8be855b8d3d2782aacd282f0e83965c891e38e01579b695bcc4145e2e928eebcc7a45574a2e8cc8898d87d6007f059b18780769eccbc27f52bd2d2704c17c223d221efccfe76b1c72c787009a9b4210f6b894788f88bd2a707c5b30bed4455257356f78e18755a050c4c5b6c08bec3089f475bbae4eaa0d9ca5962339be4044fa3fefefe955106bded56eafbdddb18d7fe073f81497187ef7970d63e23fd0493c21987c39f6b58aa817afd3819eee98d279ab083c7eabafb401116e825ede6f4de684531f79883cd99ffc0a7b06c5e7acdd6aa3ef6d302ca97e455aa91e16fd0e8f4782b9ba044dacf13561fb5deba70dc1382469cdfdb33fbb9a993f05fbfb4ef874e0a14c0ac9b7a440b3623626fa3f3ae10dffe756ae68e01456cafbdc50d283155395b28bc160f0725ccc32b76dd8689f3bc962f3d0476534b557da70a1687c50280777ecc75f83436f7cafd013a9089d601a05ddf4c54e93041e59dc3ca37594826535acb06898808d0cab27cb34617d1c5eb803bb43420abe74c723adc08ca366705c844d6e52115e5fdb7d523bfa0d2bf11cfcd9305fc301797ce83d43835b3e3c4c93db1b5068d53e38f2090b6151fdfa0b5a6dff5a10b86c1ad85eeb27f3b07fdd1de97eb9df1c8a44f83d9056cdbe735503d0942dbf684f8df4d57e4cfba908c4aeeea3b333defc420752d681daa646ff4117a6a975135c586b8d3ce0e6eb107101bdeaa789b0523c14ccf4ea5577f8ea620d06068de242d9a6604e36ed873f4f416f92900b2a776031f157606979234a22346f4031471d46804c279e0c75c5c3a81b169c37805054bedb1d045ce8615d6a5f1a8c3fdd3750fe04b799c6978ba1aa167db9da20d771324a727ebf24ba764e5c03026ac3c4e02d042d09d6e454142f04f5fcf954c666869777e857602cf248662f04d35d56b8969aaf5224030b0527513417cf4816c6dbb74e42443a54c1f1481558045982a3f876a8a2f4490745eee30f52db52e40d8de43dddec7462e1556fc46a83fd88a951f0b8e0a32599e70cb68804ecb9dae701deff34b1533e4f86f0aa3d4ed59784e6ba455be76f24404f9bd91ae5f29129554225d080a89a76fd56a92b4c1e48a015c3d999ba9e6548b7ad51e0399be39b8536ac6388f1cc5540c157321a56a439b621279b4105d63e8d4bec164f4e194de8a9191fee4b306363f0d40935a294bda857e515f358f10f6486f2ecd2db6dd210974c404fff1e4d89f48a7a96d67c4d2c88091b988acb6ffdd79d59eb8c7682fcbe4e6f7f07f64b099cb71a5b3ae4e6ce1178d2018de9e463cce301cc89eb8c9597ee1086b478169d46b7ded5ba6fae23eee71b7515cba7f578846efe759f145b878b16c46d0d26106e04a8c90ee0b4560101ae5d8c8e952e91aa5a324d34e0da3de6edd2113a52c97070eaea69f11f77aa775d66a3e31dbbb5e7b27c411ce1e1ebcb3180e53190f12944127df4e903171f2a9f8d2c8d32dc45076508e0ad18a5320ec5d4ad00286687efaedb6ba327e18f7d080ef3635ca0c89bd57a5f0a1f6c10c78f210661bbe04f29a9ac780383ed0a57ae3c5788d2c70b4be57ee98611dbbabd1a07365dc1bac970feb377fa4256869ad5da7fbec40239b77d009b21a4b32681b34483fc0b4316a7543bcc37eb9565d296d65b6cde60f7e9527dcd269e2dac092ff24cff1d2f87ee129272a58d73fa41e5796d77072ffd40f23a6a168d896f065576d597675476c07c5890c202ecb985ca1e947952e95b7db72ad95503735c653146e8eafcf6837a667e4a646c2cad23c968c72a7d6187bf4227515989d80454e148a24abc69ff4f6006710196bb13a32c69e05671a114f3d2886f322ba9deb11b776db1576e982d3a841ec3d5359a5f184b69c231faee2aedcc78b7dd4b9b0446388facfad8f0def1605343c7c1ab29e6775871dff035ddb7b68030045092139010f9c116e8b3d452b93bdff3831e544c92c1e4c44153212a4556d25fc1527e37ec257c56fb744d8679f5e61af74382a4b9256c771ad9e54dc44d558f85d61e54b3f1e409ad22cf172bfcfd25c5d9c354f848a56790bd5da0a4c73f8d1411ddfde9257c58f521459950bb170905b23b97cdea232465c2421fb098a552f43514c2fd896562106436d3e4f52e7ee7dd16c3e5e18de3305a553df5eb1055093305a3ce47426d587408380c920c9ed674a4c44977c1192be3376cab48ff086f1310c850264a6668056cd907ddc2f5a98d75600f87c1f287ec5d534d84323b7d9a3ee90c18e8f43b928d34913f7c3d3ff80e62ade91dfac315e277a600199dc02285d66cf13770fff4c9da947be8f4ce731703ebbcb224b4934385aa8a1d6822db01414e6307621d40ce652ed33568e262404f94870f22712cb397b562b6d4c42d6612cc82e2f02f3bafc0a7db57fb3aa0bd3e0cd595cd3e00d84e37592356ec0a9bd414d2000f1a0468c3b36d510ac4cbc51b9714a5dd90bb61e7f1e335e347c4c146e7ec68462d0f62074cf068abbf743520fa2a58d34b685829eadc83079adf841d0c22ba17a13771ce6b60101f91fb38eb2864191d66921ca768ee3cd304e4a8c071cc82e955ea0c2e7e2fa3ed1880daf358642ef238292f99e921ff9dfc8e5feb972400ec19aa72c72321831835b1dc96fda32e37466bc1a92da9c771ff7d59b0ff312d040089c3ba65dbf82a28d22b6fa34c8ec96944eac334e7d701d703b413779c25e0a715f164376a2cb9697985fb7730960487bfd4744a568b51c2727ffe00d5315482b825a30f8ab551b7b8c514865c6fbc1240c74eeff58d7f159ba59c1722975daebaceaf7692c21c1193d76959d939827b1704b3d0f327286cfe59c12bf9f3ed3688230478deb776adbffdb485abc5618a11d07a0cde427576662f8100ce107f7cb22bb721fff11cea4a3cb5177dc4d25f0397a6dc7215af8f2bc937e31de8d44f5ba5eec298989fa1dcc42627314a552ff51425af3dbcf8d6e8f2b1f926de3668dc95cd2e2bf9ccc48ff1a73840927984fcbc3051b1e1a507541123df8e75241e803a8601de18779675fc33fbc23d9640c250a6ed3f4b90e15ea9f2582d43e6bb7040a7a4af39208334b78c63cbcd91566cf4a78056fbfaaeb2c36a99e758eae8c2ecc240976c9d5615e51c97c2dcd81bca3186b06f7d799952cfe9c19493b8b2c6c880a4764b40f7e8c53519cf76d7099474d75408688656cec6f5938cd64b2b0b8f1f9f029d9390c50f229c96a68207b044d246b759e2b95bb833de61ce88c7a99b764336fb2ad0128105fb38986c06ede90ed53ebb71c5f832729f134d9b1f5f322e04adbd1148bdd9bc7111655f57af351a9362c23fff112330156f463722ae9ada8e430dcef224c5d7836f9d657da6dc813a64b3aad4cc29f2f9d298b5020a1a3190f661b12f8a5614db37a90f50593af4b0403cf9493063920473ff4821030c837ba997423a46ebc650ef72fcd8fb9a7558bae3035afd154c648596e7468ff2327c808aa1f32a6ffa386085e55cd2f9e9be5b2d4a73ad7631498f52b429c6451b3ad64f3d674dee22ee853cbf5515d9a6756cdaf11c2105385c861b641c94f16c9a22d216aad340ef2706b668a39a92e6a7210dd33511bc996b7977a77283ca7fc62f2b1d48169e31ec579c0e542ef5238688f45de5148434849536f1e51ccab027e977a5f43916ca4f3a60b4aba8d9dc9d8f99977ba7bf79f3473bc254bbc00343808c52b85164dbd8a69caf23356a7fa3faa15798c312925e0f67baf71133e11fbf212ab0209af62bc353b8916ebe50aede830f0a24451674e2ba59125c03bbb55730427d6f2abd4923cc8b0f5536f1e8b659efed05011771ad9f2d84f072a788dcb3c3bffad9d14352d477cbcd2e8bd3929ae5950ca6c6884851d41b4715632be8f815639f4186b3b2aa1f5a7435a54358376cb7f242bd68d1813c0132161f88ae4ba3c22a310e413658f981192beb30fb2f1b1f1a1975b267aedfa1eb7797b5eb3ed85b0eec5cd761175d6090cf18d784b957dcaa70c1b68f849ca383836913bf6c21cfafbb63aeba20393c29e06fc95a4c6346faed939e4884bc00894b9b61d7db1c04a9eb2825b8642a7c94539fcecbcf5f183291c5fff36029dddbd2a86e9ce69868a3095c0b9c9c76013374becd96d16603a01153b5e512ad8df7ef044ed07b655f4c4f753b4636bffd495ae1099e0a544f0765dfc6128361c146cc157f1d799681c25485e7a0d83362fb6cd11df8c68f11d8f1fd9b46f5dc72daa5ac7d80121d0465c554990e0c0b0a83b877b014293d2945a1f8ae694fd6d31699bc4d1fef4f00dc6593eb42a2389789c503daffc1fe40db9f3cd189dee54e741d62016a784ff58dbf0add22900d2a0d3782d398ba539086f46e2bb5b90f51ddf64d03b024389a23734c80aa21c0fd94bb4826a422777f7a854105b143c81bc9ced6e15a144ef8e907007c37fe8b8484d7258f144f856c245321e79d9765aa50656ba22234de2d29980a6cdf770bb11787b2f571ffc26918283da7c3ab9956861101591c930ec690fe1229dd753f8aa15006c89ba4446ece17996ad12e17fc6a64d04cc3948e71c60fec088f703c40a4b8cd7f1e64bae2a68e2a63f8b6a1502a0a0b39dd1968358b211062101fb67a1754f1c1f02cd663087fce370a25d8a0308ca6fdf2e2ec5533d204094fb089e233dc34afd78910d7d53a22bb5c975c54adfb82bbacc4b82863055fc2250ce19252406579e2859538adc03def26c69e0b15b45fc76d8a7e86fa3fb8ea43891fe82a12c9992df657f7ac2d863cf745faaff1dd09ddf9f6ef6ac47d38d1bca0b649e0c634ed18117e9166374a10b1691264a97baec2e3b68ff5ed757545a0d84d966e6f915319174811e389a86f07fce0a29c8a06b9154e42ce279d882b7d77bdd34495d73701c7147e4404984cb3b1d41b8c357c0352f1af6d398e97ad2558a6574898750ce5644d03d91f60f7b4fef6a6aa0f735ed4fcfaf69dfd0e4677a7d591f51b677325a23c8c15fd8200b758256abc0a2385c6941fa165e082a36c3b51508c00819e6d5456a562df4b561f9ce8d529d4fdcba6d824f840cdbfcf105cbecf35a344adcab2f0a10e09b4efb130ecae57b955725e8af79d5236acd4a37eda085d3ad838abed88c5febe672b7c9477babba5f827cffb017400b2053ff5d20ecf7f2791f517172e990df7d28b5ac88428d9c765cd6c4701ef2d0b20b022467faa7315ade739d38b199fabf7e3f0b5876cabeff877eafdc5548695db2adb72bed6fc52f64a2fdf1843794e306ca5fc7a37aa273ca866849d7542ee4cd09efba59d1303fbb105282985e7f3354fd13fc05e0f3088de7474295b5594e221fdf71c6ef9c75cd1fbf3636f8baf481d3e864118a794160302532d2ba72fb3d5c5952305b88f0eb9528433df10bd1abc495e4ed47d51774c85dc6a5ddeae0ec09010f8aaa94cf49678b3d9e985adc7303711bf3ea804820bf32677a866249c3cfea4336e67cc77f0e9842de4ded6b7dc932a232d9b0535d2ce0a2912350649948f87c8ec27e0409750fd5977fdafff3b32578ed6f06214b2110f37e8f035209a761df5faac0a9c86ba477f7f94b700330561f1a363ca1aa288bd6a7c73f1df2691fc869997ea280b363773f856d695cf792e1e3de3565625748d3c9f2e440f8202675e0c607895895e45a45d42002b59c5081291c1ee5fbec3e9774b764ed0141a6dbee1fd71e5d0bc4f0f2c2d0e24728c229fc407c1d25849b188ae2fa3eb808c2212e925030fe782c06c5e4fd024dc4b8c924b46b3b32d33a48c45de4fa0d756bce3326edc591f36b644f635e7d8b791c259b325f4c97fc8ba32d760e37b2455ca6ffe9df33cd1adbd2b52cab5bc4fb0fd111e219496f6f3cb5a572f884a0115a598cab7df04e81968031727484438611ff6733c85ef8574f5e5f7ac1d5906b38974783f11815a5cc679176972653c8aa733495620c13a0829363cb9c5283164be08f2e08330578a2f2b7ac2f17c7e1814543f6c385c87f23150d4126d23b4a3a693b3a1c0a6778f06717261d98736fdd0913181ed1c09db4898c2a5168bf076bb611fd6c7c67595a6c3c517ae6b0a7ede356b1b53ec9bf074e6471ebcbdb7d6d2750626aad943b833243089bc1dc866c847260102e560bad3fec0feff19d7d23872784bf58647560cb5eef6ed4d80b6787036efe8efcd5d9c0d1d71b4cdafe90d93b1626f1aeebec655223618c888441c6575f2a30f70529379188938da7b4880c25a04ccd2efabe33f9370f7257ea4824f05818b8a302d750013672b5e0b1a6e4f28759e404ec4216c1867189b04e63140651bf1802355b6ec8fe9c64a41d4b7ca1ecd48235049c2e2ccd4e988657b196031226693d1881a8e1124131d6f786eea85003f029166ee84e1b1573cdcb32b5050dae531bda620d1d0abdbf9eed2c547014fb322bae111e52127299fe2fc0965ffcf5b28b8be7d89f8aeee5e63d780dd4c0fe05ecc9f482f572447d9772eb1718567e8a20e1a69f5e3f1e03deadfb6ea621e68d01212a9709fcc0c799a899796a8e79439083549da61e0404798dca4c2b30a09a60fd6805f498e4d108da671d442a72f935f0149a97009e3feecb0d8b9acd170de7a3ff722ee08d4e6fde2c78c9a1b0ad8ce95d24a585d276371c77cfa04d057ed54c7a77c7e1d7d559492a5bcf128b6bb877442f164d1ac6952944abded076684fac00a8de45909ad966be7461c308c3ff785a7f877ba9450adcc3196a6f19eadc0aac602bbbe2130348a9713e7483824cc27db26891d369ddac8ffb4a338da2eaed573c76b593ce70df367857833043accf3a197b91a3f21a0beb4afce24d5a4750aff91d7c64eabe2de0ce54debb2fd104a50a5977e25e0fd0fa21f19bfae0a86a78e292887a010e7e356010c55e67927dc6d5edfd0564d1c3c64f0d3d0602250c61a8db34e45885b22376195c1c83696e09f6f6b5c1e1b531372529a11a86bb82cd1011ba9442cba0e676310f0e0ef3143dba896c3425d78c805791a9b8f6c9136cb7e17e718a8f7e3aa6cfc3e934743818208ee1eb149624af518718df4093048fa50eb64aa1005e9eed9fdb2b8c503a5b403ece380c16e94413be3bc262c3328f7aed4cd9f955bab976fe068f8f93b6f349ab3b8dc1bc3f1bc6df66de07e33cb967e7291cb5471437737fe7bb686ab4c3b43829df90b6e7fa89073eef55e33a8750fabaae4c929ea5c568825a9ea866ee061d8349e871ee9b9047d09534990629f639d4f26278fa335f3583ef87427ccc41e468656221b4ff882382b7083c149d3347de27423d04560e144e2fc6d300eacdefc3154f3c00578514c8df33e9dadbf5e054c9dcacafa72a68e2b08a19cdaf87f02dbf08ff25e6fa06b12ea71fcdd7c95195ce5290f49e02478d2a2d76879a606e272679e8389937da409e8042e15390fbfca5183ccbde2ffc6ba267703421e3479e6d9e3a513aade59aa8f81baad225d45705de04393dff85be3c963157adc928c4efb57ce07bbe70fc98dd56ff1f93e59ee93bc26ccee9150a928207a246c31735ebeffa15494e36871179023637a9cd06600252eb86b4940bb795e536d472ea6d3e3442530e2ee9db8f0315e987c13c5ef2b716cc462c1a7a60c7e17715b0cd92ab8da9b0ebabac84fab8e651dbb979bcd07d7205609c7799cc43b467b413c0855e46c49103ee9a2f8138b1305c29dd7f121551c9e90daf9c5c8d3d9a13e2174daf9def49577c3eb959191745833a569ca8329ef1721676d807d2feb4b97af8c95a44c9d0e356190724859b56ea8be539dba8cc7ce57cb8c512489d7f7c8ce0beab79b686f03920b2fe3725cd47f820a36c2e4f1aad4314d4b3a86584cd701f264eb95c09c23e3b81967d83d9142cb183bbb421c772b75b0c904ac240ca3a57d8c666261823dbc7b3baa1e32da07dd4767e4f3e7afff9168339f1c9e5f1380183c9c8c488755e151c40d25b468f92dde5f2a928e11721fe9a1922ada8a2e2e8eee6f3a94b3d6fe9093d9f624110fcb03699e6632c6369821771b24ba3c06cab964df98c8057b8fb04e81d54483e19474ad88ffaebae2d44ff574d9f44288b3f8d96cbe89a4fe97957a331f1877a3d304b22f1f8fb214b9c4ee7e34d51ce366bb4d8d07b9684698468ffa5deb8bb4e0ccc74c9f080305b147af6541974afaa4b437c06ca3b10a2aee6bd93223816ce12364ec976f462b4eac0161d6f5ef12bce9c88f09c74a28e82c21f02abaffe82898772b7a4414273914fb68adc78d79b3876664b7bb0c259fcf807d5c74e09d05162196996f1fae4303295c592236d44a14d509c365929250d2ebddfab92270e5b6a5ff3ee67898d2117f6f3e88607cb7330eb49625723c319175463f09ea6292cf4149d502f81ab73e134ebd8f300b6efd1c1dbd4a6311278b50c57102670225f034421e755c18b690bad2480d44f7da9f19b5c28fb56e0f8602c98ede14fff209907c4dfd9a737f9d81923a22cdbaf0812eca03e74c5b759a21e864b9c3f3ab1528e94e92596084e5ada0f23aaae51c77ecd5fb762debad0dde69e51c7fba9e85762f8ba9dd873473ec31a8f45703977a34ca27c1cb6c185cd2c670da66273af9950458b3a43f2f57468129472b9ddfbb1f30938e18d3f14cc6d48ed04609b836089c09b37153f21a208be82e035b50a99d5d4d9cef51210ef1c1746826768f62ad4d2a8cef549c35f84bdd2caa906b04a915213e688477cf1bba1d066bfe02edcf0a27a041c208c500b179cd941c8cd5207b3dd1e75fc50ee3601270e1e59633a80905985f3c05d0269251f92cef794bdbbb4f18c4117faea0c624cdf5b3564bd0d3b9191d04acea01b4d3d57cda70e4e1ebe50948426da310fa523d53bb313ad14daf5f9842ca8779eb9fcf960d79504335abc2d7cdcc47cc185f3968cd5e48f1aac592ce8106b45926706da9b0d59f554e63d3bbad582efa4ebe920244c63e9382c1750a409c95dadeb2996bd9ade6e0d7c9dec56f450e2f7aa94fc7783ab48b08e8b72da16299c9db9d84c46547c7039c7ec335b745e7cb4406a09d4dcefa65ebe97c36f8925264629a96c019bde70f785fc495502521ed80442d5716ef41533b620e215e60cfe021cd5146a7c847417e5e5424989c39c3de5d984f29095bef89a8f3860df6165dceebc050bcb417407c983b26f21bf4a94fa4d4cfded3e2f136b506978b55a0fd4595e21bc1bbd137658f360748546d43d30a47704ba72fa057356cb43ca6123b6f7e27bdfaff3a725cb1a0f27b8cce81cc74603734146a5e1f695f60b81970f187513fcff76b48da9941e4bd010bbb59eb27fc4c4f7e3e5efa98760fc904c2b6fd0de8b737c23d00780ea549cb8ee3089aeff214bc50732399fa80807ca882969a8d5d8e247381f7936ae12cebf38335873595ca066859dbd56fa3402ec865bf050afa4d8f13d16c1f85d15ac55db62339e87660b4fc0087b6c823e119833c3854ac5a5baef53d2d8072ead595a11eec6b8644e56a5349f9a37c96daa94b3f5dac297f7cde4eed8e5561c0e0e768715894c3135d9a0eea55f595be7cb94ddcdd5f8451b2918554eb7a566845b1ddd86361411d8bbc20f9ab1d44ba83173baee67b91788b589237c43100fb9786e27878f2d8ca8af254c9f5bc8ae929e5a0a16e4adf6cba202c9a7df745f06be9f6fed9fa41075a464713e5b4f1b8a8aa4be3ebbdff03bede709392cd060dcc8cb30ed1bd16ba13967d973d85b32a0c74f7f93cba8b834da077c30efd26235f743ddb09bc552efedb8f80da19a1251f0d02631ab4223eb8b150eee5683771a2d3658c4bf7fded64feed25b418ee0cfb0a642b9984aaccc0e087d475fb0f737165f7b4f889f0a6fb001812b141a47633d8c95b4fbdaf06f821cddee525bfe8155b69320692b36e61a7fb218e4a6f3d1875c97c59e4e331540cd1629a300e9e8547edf86e44da78a92cd282bf8e315df05b9f2aa0d5ddab620aa64d48fd6dd1da7e515fdb6080463d9e138c5a5e8e2d61a4f0412c102efa944a0d7be59ad40672d74dea3dd90db56412d4ce2c123142b762760390293a1cefee9d14cf9193e8573d2558c01661ae749a960a58b17671ff9c24d63b064c050c5918a6f93f945a6f3158dd2113f96760c778837ea591d86f5e8451852c645f8492d8feb2629896b34a1088816958722b9a768f617b27b8cd7f278391c49c8091c383fef2b8281fdf2d2406e86ec0a2ba669baf214764a978c1147e3d8fd08b7753f4df91fca6830cb332181a9fc9eebb303ccbe7a7b562f3981c91fd8f1671f17e3410f3848bdb80f8e8d51d27ba76307bfff8c8b08f2fd0fe0496954156be05089f743b321c36fc45fd72f78a6ef4e5d1d499e963373d95be5c5fcf4b73f36a0861e8e877202a8ec6248267c8e20ce7780b4000c08b0e10e8671fc57f32fac7e63b9ee6255c4919f7c9ec322df4b9f68b5dd9dd99989ac682c3262ceae305d47dda2e73ab399af943f88b58c0964e6b9ac7699ebe85d82850824c2b36255c453390242e4bfd35a1a532b33b8bcc385b706c4ffe91792aae8a715dd0b655b1db283db246d7e0b58a87ba0375523a4065b0121c48d0210c853f2070350541e55175d7e7b33859a7b80b6738cf6a0a8119cc37b0f27b1c6457d62b2459628228aee0d15acf17e215e0fd626a469af527727f8d3de2e8024d377d1ff7a7c8e0b1da8ae1a9e3b930121ff50ac443f0c8bc8be27c0f1fd13a0f0dc738e0f81722551aa57de1026f6e4422e82ee01cf9d1f7fc249e908035a318c0cb831a9b30edd7c85750342125c3284fc6b49883f563eb6a88f8e7412ead7ad138d6f99e75f45ca4d9002e4d7f39ddb9f2d0eb75de2fb72628600f3a81311340c3a0220d2a294873c0fa764c7d6967a73bd018b4c21d07cf14625df3bc465a00756597dbe5ca407fbc390833e93d5e17227dbd8573919c6b095f5aef03cdcf3d6a017d5c17e73123953b138c993d5055383c9d7739d9464117effc1553f829b417592e09865a2e570e2d2ea08aa5583eb11ea7b337ee719ce2ee57ff6f1ea6c7d4d547199d3f9c4facc0ff6dbf1d8e3e175d4a03ff01a6cd798dbc6e43ea9b2f95a9ec36185e11ad28457827f9626f2c8c70f049989194e7a992caa91d7d748cf82e0a02fade828ae2defa9a5c0c91e265a980f2f5633588346b5808f5a91c9672842520974414850f3ecefb91991f40e5e607495cb9e9060496843175179c92d101f63229b41ba2996bc06cedd109d503dcb94e2d2f0c38314cb3b6bdb3424584c8433267be308bb2b9ee6e86a1f75536b32bf0017a76d8724760271eceb582296b65a52ea45f74e9a2534b29957b12ca26138fc84a330d86c99cd1ce6cbf603aea9d98a052902f3e9b9f6b3f0991290fd19161853a7dfe485730f88418519b95d891dd2737570cf1e159facf087aa93298fe9b3f2db151731dc64cdaecef52d7f35d2ce7eb3f340f3ca5dab4d08b077e7eb394c084d5f164dbcd303c2e0759ffbbf84494692d85572bbc9f0e5c863e47ecbce1fe46bf117639159f3d3f8e5820eed15cc6763c790259fd6cdacb504504ebdca43fd8af33c8ceec95c36d6b00638bbfcccae9c141343831bfb8c83d47e91c89530a06357418cf6fcee3c402c3e33d75810c559a1900b4569227b292c4fa1e49711599041fda4e54d43e57f754af424d52866d64baf511ab1948e62a043647dc361a113027bd488697b19df5d122b385a424cf6efb3f6083b66fb2d367d63f4ef9effd09ca3e5bf6c5aa234675b07dd90a0e7bff79e026d2c6b364ea717fc1e041e170fe2c3f90253f3de50d0550393347bf5dc7b1ae0765ece60cbb61971c3f0491dfb166cf7d9b446418eb1ed490d3622361af4db2ea9843c566f956b36207bd7c8252e6c9963d669604a2973e6b0ad93d5eb775b915ca3dd5d4a5685a965d7b7160190eeaed005112a66986b4b179eed94e68e02d53bd6968b2e73c7903813d42f6773f37be749975ec7ee9de691866566449134d6c6664e543461af263150db5114c6ae0f8160dd0bd607ac68a1c5aff86598d28bd0322cb535355a2a5cceaddc27a58ad40c0d9a2c0017cb1e7dcb00a249ff1cb8016310935258076bbac62e8da465d09308b7f5ea36246d3d901c1236187314d75571baa46d4c8d88c015877df42c3aa58d588b466e98ed42f923d5959b93bc049c7f5a4fad80f22ed6b522ba6319ef08c4bc280720da92a90ad6bd32c023e2bff8fd865afe359ce7d909f319a1faabb86a0ee8f6c9f976f8c922cf5219ca46a061a1d0458f73c5b699f7bf8f429a1a9350b67c576c6e29e37238d39d5d61545124aa6e57520b30205cd291593e9499e2dd89cd670ce21b90f295695fe6d8b964607abd307fae41da59157e4a71bff6a68a493698320e2c4e6eedd4f432a593da887c89d21112ff6a3eee60ea1c26de77656f0abd6da8dcf9bad6b21063c0018fe459608047239726ab974d4e628eff0b8f4d3328ce5e0f13e35107dabf3a4d170f8162df254c708bb583bf5bcc922c2fbe7c031468e4510ca619466f305bfffa7afc4e02f0c7e9c36456d69fc64af137bc9a9932d60d10adf6c54301c44f8c9fe898c3d1b607432a34b026031f8369dbe5586c86b5fd3c787abe388d2e6e73aff05beb64c4265b0798c8e9698d865494addad9e1256145e90cfd3f384304f73f7f4a156c2e6f3a6972d895bf2776a9b01864d48c4cbc5c013ba0fb717fb8cd7a537fedc34aee97da9d542904e9312e7f40580699d3c6770fca4d494f7e7a6f1b809152a53519cdf864f8b2b033d1d204d387075e67d885d52f6530018303e0a1ef4a01ab4c81e96107a0e02f4aabd31793cf7d703965bb2d150274e7f4e618b7daae9013b498d8383df39e36d6efe3bcd40643287f8aff1adace7281db3275e15250783bd486cb89addf138063cfe228013eea72f1aacebf11a73e6b67a0c051b9f81a48d60c592d74e37dcfe033ddd7174d3e414c1b240f020a16a86954cc43489e0f62297a0565a227c22122095ec027b29357d2de3c2b255da9b6d82fab278aaa22aa01b12450bc6ab3a762154fc8d9bf07aac873454eabfed54e4db0f78adf90c949d63a48843cbb5b79bb61ec46e41b07b7f7af44c9f527c1338760c583fab4029de16cab880c02d3f1ad328c8d978db5832cadd51d1aa07c38e9d81f3164a1db78a29c4fb00f5d6c4a9d903d27531c11f7b9c58277663e9f70f74f39bff78d17ff5d64bad29949445b52607fbd0f7eea51f1a0d3d1d53c7b89ddbaaa3f6336b04497f787aff19e795e7a0b9256d3d50c6baf4f60e89c5adc73e87d6790ac002b4e9e87435dd6589b3223b925f03dc22e28d0787ba6a1ce77d90aad467eaa73fc89ffb73700f73115e04216674fffbb8665b495452cfe0978545adc434a87fd73fe0e23292a7a0ea5142faeac3d5ec41c1fc13e3ba7824ace029280d9ba450aead561ee2cb0763623df27d3464fb5633338e087902c2ffd33da8fdf16ed366a2ad1556f0d7878602735c91634c0f0f761aefe6ceb7bbdf00515d590532b8208556d88dfeeba028c54b39a52bce812533a5f8d4e4f111658632b098ea229a4f1ae375d21267f07ac55988140344aafa993c8007e4b35d89c3a0f75d3662aeda91ddf7b9473977121d5314ba36b3a72d1d45452dabecad6012ecd8790abb700d446104efa134a9c05f9d128ff87c299cfd7d5807cc27197157a4751e821d054278e0e856a59ded8442eeb2ce24d5c74b740ca0a748d37d6f4477b0b42e6a0b6b66b499257beb3ea884c1fcfbc1ad7e9d861ea76936373005d15a48d296f27c486d4e22da3a4318bf35ce66e4a11d4f33e0743cd4ce1a0b98e1c9cd6bf47617274af38d1c232d3e8a88df0c7893af71e7ec3d51c9e36005700e60b88bb7701896b90083ef400cf202a1c8e81459d210dd3974ff50d238565e06d5668f9bafd23ed33b2f581885ec97f4037a22c8ec6f59011e8ebb7c425226887b2e39ceaa731e67472bf1787756c3463c5177bbab41fe036e41a698cea00fe678d84c03972f5d5b62d2727c8cd041f280e2f32af7969ccdc899ccce838252884257fb627ef8844fe85fb5b068883fd175820e1dedcc6a3408914a87ab2ed4e28482ad9491855893186cf20d7464edff28f81fd67cdbaa4fe032828e4aa664f773f7eeb4e699ce13b217933d294bc5ff53ccecb1d84defcbf61ff3c85a6d2ddb8499a09dee6f0d60c219649679b9ab09af1e8d7958962173a14c706b78c29b82166402933bbb9f5ade604c513acaa74a55d92fd3bc6863b59453152583894a87fde572a9bacb3d3e8896678eae11f6a7935f500afc0207bb02bf324bdd9f35773b8677731546d66377ca47b9f2d22e50fda1db7e7b419f1886a455a532d58f02124203681a5cca9f8cf68108a72511a110c79beec3cf04f2a74654f8ee28a8f8811d307ec09859623aaa1964ef73a39dcfb5fc714da35c0365e13a0ebae8389db50f759f80ca668f23104912251e55688b7856c19cc0f0f34f915f32271f27a9b05a646e9580d36408786b9dc1c4728284f899b7c49b72c9c45b4d6d278ba2b4abf1d05428defd492e5e325434dd08cda066b8d025bfbfa0e923ead3c7f7141e93d3fea164b53120b1f1b7c4992dee871950e4f4252bc6b7fa782a9e11de2c1acc313f94dad9538b507ef3631614750bcbdbad98e1170ef756957db12988b658bd842033145e3e5f33e68fabd71d480b6879dbbba21a033c239154cc69c20ba968f9a59f39dc332ff0151f8ef18c0ac33fe455078e06b313640192b433e061545b18d0c0d3c8b28b257b864f6c53d15c49c278958e8028c4470460a77bdd95517a9b2bc8d07e88720f371fa4b0aef74e4881c46aa312a3f9cc77f2a06efe67844b843fbc81258dfae9f938f2f026f3ac048df3dbc51bd9d1bca2ed868f0b2f954ba9e3afeb8b0f1a6e6f8b9eaa6c99210e9907643ac29a0b4b0c0d7a79b7105d8bbc54ede22966c82e3c1839890fe43e26a334ee860ef821c1a27e289a88f7d9cbedd7d105907ef65e9d12f5ef183574ce132133c3d25b5604d573144b22bca174ab220192fd35f86b14d0e4820c09461ded72c9901f516bb47c91c0069977ce4d132d3437b1c94724722613cde93cbe6add3d3afd51c883fe0fac5c70edac1828fee347342db457bcd7f50b69bcaee9763ba5ac1df6bc63c45edd4abff2ea5c4279c39f8b85b5ab38056ef3a6aacfe05f28506cc8f4a9c6af8a544346d822290579709d33bbc784219e04fbaf071c357560e772956305f3f38ac3f6ea5f808e1ee5d72ffaf71f003c116a84eaec5577764979f612b2cbe0676900c293668ad349410e7ae07c2efab5f38860b13498376e6444f34855fe09311600a34fddc6cc925f61092074b0aede84a15cf7a12e533919c491b1380d3a81433bdafbe12ff5b11faef93c87b0f58ae927147e228ee8ac70cefc6e2564a6d11a1eac32afd984ca6288ba8dc1631f0731c0d9e4208ac98446475575b42ab8e9848c64c5444df55393431916fb479ad2b36247bdc2363df8c57b054d4b26ee3f4482e517ac2a83fecf448b836409367c9f441535f5df95275ff69a66bafcdabfbc7f753ae0491370fe1b1868579dde295add430c68f309826584b0f2450c0c9c96f4bd251ce5ab95c9bb4d46574d4f9c47cd26bf705b100c2c154ec43444c8a37eb11819d962231c46283582618c71cd8c06d01b100e40d357ee63a624d23daa56d701b650861c1129d4a346ba0dda1839cd97d0f349e84d73859278ebf91ff882b55d41280bdd68c57d1056f1d709f62781eaa094c9a5b277b26a68305bd33bedd13bd6593b07376bda919cdf2ac4ac27efe6f8f62c30e5536a1d9ed1d32b54a4112b3d686f65d9ba1f1a3df568f14331deaa596874f215a3f3e464e17c42d9c9884a6a7d5d19723faa22077d525ff5a8a04b54441aad802cd6c173e99ba85c3263a4c89ae1dcf6362743d72cf28e5b93a384b90072f7aabfcfef6645e507e6cb5798c737330ace49749ef87f8e0adad6a5b8b2ac7b395704c2239afb281ad8513ee40c53c8e2a8ffa339567d65da70997646d3b61e3263922e85e03f82ab5a58fa21300536b65c713034b2d47fc800106af40812a689750465e31f52477cf3b800f917db6fe81420b65cd0af83ca0fd3d4f82af6ae6eb3d6437f7ba429e0a83be36bf4a98a4a18f309791efeeeac92b8877797ddec6a5248b0387f7edf3cd0027d0cbefe0d0059f74a6f2ec0192594475ec4bb136d12343b1f837c2d84582101b86a349a8d1cf0def3f960d5c45810958897c9898968b112c4bf3b3498a779f014284c3bf6106a059116b59ffb54b7bc8d405cb1bac851b3a16e8a699de61c5c088dc2e280bcb1d91b9e2c93d995a9820a582ca4db556ee7ad4a344b5d5075746e709309959e9bb184949043e5f9bc8ffd4160bae3e1f5c71689174a016fce9056fc8b6fddc295396525cca7e396cbcc8070a3833684ce407b5203bef4a7c0171426541f2fb12ed548b83334c71eb9f237e4612c45f834807c618a04b5dcf45833106ba4c960198c1fb4ceb4c0e6bff7afa2d1bbeab9134a288d6c0f307bdb8396698959077c307eebf0ee4f6cc429f7db5765a71452c67ec137a4937b3f8d21421387c7a991d431158d02615657ad69e6202f2a28387f85e81442efea399579885232b7736e8810689ddab482006b19644e1de0bd511335355a8a4417afa73cf768a702bacaa6ac9cca47184c08f3bde51f33ad74adbf18b77ce098dff9973c783cd19ed2de111fd52c35990b605e03769d98e26f3739faabb919a8545d7e80fe4fd6c46475678689160ae87a86aa7239628488f034bbfbaf9329f5e14a3ac3e84b04e762e3ac974643b945a489f8a6965113499d3d862a5b647f362a980806c227685efe6e143b0bf0a184c7a20b99549edf240a71d0bbc5ca5a06ec56f6fb77a8aa4d83358904eee13f874cbf3e1750f64b577493f3e33044b9a730b9a43c0838c078b5a2a39a26318c53e383c189d621b38a0764f88a2cb8b82f8aedd872bbb51f117b51a28a91bfd77ea4231e2e46122df151785b585c0fbcd96728f9523822650be14a34e7f8bcd230c5a725ee5438b06a34972d3bd57e1827bf60d20d3890de278f47016e821fcfd0a8ff0307f0be5190a3e01ee0e762d4be8560089ee4fd0736f7b45d1c8570291a19ce815564c87c87edf418c9f083c8db31a5a0927abf2bd814fe322ab50c28f613da78e4fffe1b8294f52a87d2ddfc5c6717e64ba67dbf2c237f44a3e0b4c6a2cd2111918674371a72eec3c17ec766c9ec31c6ce2f3c369f78e1048d321e876bb582dc89d04c6c888ba608ac37d1740cc8da014601c41f21b865208e21a8a3c19b21de1949b5817d1b40de4382600fb78924e3bfbd87644de361f3f82490c2e26395755f34612887b1f952e129ce40fd9566988fa2849b221860f03f43dd7ef15a9fc8f749d4465f3c661365201cb42bef1f608acff1bb67bd6220a19c6d613ee53a31118e6fdf1989c42addb6b80a5082a0235e040f43bb78aa535f67dde110da9f7c2a15ced6841e126edf6fde5bd2de570186dcd0b8a5458752237f0df24a10bfcbb1686db04b41f4595cf8e9862b7e5c93dac9f2a7e036a8d9daa46949f2ef9db7a4395288b30f736b6f5e2b428c3d983cbf8f7566d2d520430c08a7b3d0b808d2a36df02ade4b5d388de74ba1383b9b7fd3599ae536bcde5700f7653efe505bba6c35f47b875c3d39a61cdce96bc7550c747157b2a0c55926ed2d267a43a5eaf5f014e3e7d7cdb86f33a6ce3dc49f611ef9629d32a92818e4c676c5e9cdf303e1ecbc0a502061827f2894080bb9668116e902b5b7b353dec25d08f60df7bb0e2ec4163bc9d12cc928e53b134aa25de782e2785f6475ec6b75f331cc49409a18e1844393e48172e77340036f1960d3bb08a4f417c8a2d8212da5a2396125aaee350fd73859a7bd235a8db7ecb757674451682a8c0dbf49ee5d9341aa9aa9112d16c565641a41df60e44952deff81e1f2e4b3ced857cba8656185299086ca58ccf3d7f2975facc985a63c31dbdf3d74d3caf7ee82566ba2167206badf449e2a635296b41b1b5cd67da005b3d5b8a06c0e0e64fe6069be1e86b06d8b7c65b684d5ef45011b8c759786e643bf53675266094f336822d1f53c8419018df6133abb49b4d2b5001041cd2b63ba2213c4e4312838dc2937df9e6d16d184e0f119af18f30213a2dcd72b8c96ba0b59ac21380d25121022b7c5ea5bf90d1be8af45dd797c9b68094b90a402b775efb4c74cb91231a7c0d9da4ad4e46d892530a613ccd6031e944830bb9bd341843e2e1ad7541cdf4987ca0a23ad53758011c6ed25f95813887926c1eb5ac609c5d38f81b50eeeaad54eb7903f4df7575bdcbfd535ac8090c12b8adab777e0077e1b2ec96bc084a7c057b3830d948b4cc36353980ff5148749aca12dc5217a7c1c868327fff9518d6155302c3d99d0b3fecd4387a03efe1b573206b559450636f6d573b1c6fb0e3bcca1a718928a35b0e29489e82ceb7370fd0d32db64e76cabc0edef0bf9b06e61a4f7ffec544ce7d33c3d1140a87901d0c20432e3164c8d2a69f41bcb06e57a60bf7b28082fcca4758fad76163eeb6e0293b93603b30fc7d724a2a1f1c3cfbe5296fe8b60573f65d1f5a6305774e389e85ed2bae7d3aba538fcc23dc934a5adf3c35dae5bdc6e4d5a36da36a1a617ae98e8336da7cb120ac5e2d1cafd76073d4de484684324adba85a256aa8eccbb4c2f8512276a9073ccaa959eb95ed8056edf67b6df7ce6355f6bf0badd1da8570dd620522e6c9f195c6d0dcc7a8ca15aa66202c945f981081167ac807d6ad3d103775baaf75f031a349fc47cd820e7f28105977837420b6c27cdcfc36f243a345fd677c037c6f0e5216dcd67c3a93141d1b912f097247682e6af4379bb0574799c431cd9c907d108464bc8838ead371ec38f6e975149f070f70899bbe79f69fe70ed647bfcf7baa8c0bfc33cac86b178a0914881ea580a566c2bbcec8b408a2dd218e42f32e10b2b37c2d11ded12f3700da2382dd16286b635a2a0608788d4a812dc69382e1852eb68d6cda83fea4cdedb2250b8e3266d9eee8ca3c6fc96b64a9c22842fbcc25d84613b3e2af0dd50102b79ce093d3bb962299dd33136ffbd1819932f5b30d79c9874b3678b9dcc32284d108395034f029cca2a673b04fa7a309a808713f8ba74f9118177cdd4f0780cdb477cdb04a74eff0acd75122634b4f95888a45fb9c647bf20aef58bcca43c9ca28c76b9f3425504500d3f5ec32306e4b30db1d86be1b102b3c0469d9388f967ea972d88db43fc0b489326eb4eac581a8f5d9ca44544fb32ef92d6c1da6fc397e550608f1bd9655dcac3c2ec4f88061fce64538db7f5bcae73cb4e45367d200742c91e1c4115fd491e630b58b3e7a1ee97085f9b6040f49b0fab311add22c999d9db0cc02eb21ea593f96b41ad1b45be8544c00853ccccfda38d2c43d880f674a660f472dbba8eeee8df5c5a8492b54c4ef995cbb1b24dc2bfb47807d4a273263c0719ec9f6f3eabe89a9a30fa6060a1cd0c99a0f461d7b5bfd9021c866bebbdfe0a8b5e1f18ed66eadaee34cb9a064e59cb071fb3299e0963d47dcdeada57a4dc6076c81ccd2f353e99c66022c3455e64bfff740628983fd56f56f64fc13f14e5733d8396feaf3f7253508f80c5c743ba8668560a0e6e224ace9526153bece18d16708a197a9139a962ca296f1c4ecd32835b9235b9ce396615403c380aa57f5858d63cff488b2aedb1f1d6ca6b1f1f21669dd1306dacb4c283acfd8577e56c2ebb617e25359fd5af5d71eac6f3572af047102ff8e7c3c3ad8052bd5794d3770fae13b7bdc7f26f9054be0abd94534779314bd7ce2812dc3dac21d53ae27c687da166c3f5dcd4d98e402d964190605888a3f655f80b8de3f654a61cccbe9729ee33db056a842aa7b7fd338f4fced35773da91144201de27c83ed93223013eae4ea466fefff53c0980e0b9c1f6cae30ab4292510a6698e13af2654019c9a1489ae17b09ba927d6f1a168601ca78f585df7912d355a60e86aec91790d8ac362f97c318766c083b6adf3851cd7fff737da462b1b90bbbf3f100f8ed326d42057fc3d582e93f1eb43bfbdac28decd7c6d7dcc24266d8e7d495cd8b5b6746fa4e999c34b91a6f53b0563394364c64952525419d41d6aace8ac1a5ce4b14b8966d90b4b2d837bea5a3c98372d46d5cd7f8cddc77238e357405398e2f0b967b04aed73007cdfaf05de61b990c0e8cef29baac8ef25d376f54e43f7ffd72362bc37da54b4c899850ec69885764bb375b76bfe28aad18b815874c03e6f1e147c9ddac69d1cd61762ad57c425599014d8203d463d97fc58f25f4ae05238bcb813973c66fa42761aa4fad6fb15c6b6d596a06c18ed5fd18b1629870340a37e88cc2cec1033bb4b24c94262d98ec8ceb98bdc2270bae4f1de7d4d9a69b654d50a491108e351e4b7c89522c17eeb7c588394a3b4f0fe857591045ec594070da0bd035663aa66b4fc133e80fbbc624e523e98272c722db294620c445ff855b39e18424d3bc9f540e295334c52e06cd847b2bfc3a046d32d08ce426231ea8cc7e6c64358999169f6dc2c71e2f29c8019b419af19751a16c63c600801c503d5ab3c96f25d1ec1a25ea1ea80e7c275042dd1efcc0adc3a35e70b870aec90f6d13de5b3e128399ac53e65e6f71923111c8f2cf126b420415b0ae4726d076077ef7de7ab1030f9edcac48096a378d0fdcfd76c61b19ce1f0d5b079b05c7e8d1a67a19122d5d15d2a3446ac8115848028bffcbf741921bb46f31eb2897bc315f9706ef79946f8f8edd465566314afd509222bdc3aac678226e55f9a8449a956f057709162ae88702637053a2bb8def3db56bf11c5b4677a7febef523db8f7ed6a29d7582f75b63365a92ccb9381f2934bf152e5dedc93c7a49b90f9c598f817748bd8d5993c2b8ff691375be8f0847408910696ff3a963554f647807c9d1722fcd11b4dcf0f8b967aa6ccc13bad05526c47dab39ec636b0b57344997f7508a1bf443dd09653e2c46d7aaebada004bea6f733c470e61bb9080270ba84764b98f019f6eae733b7f01281f0a3ebfbb540c4e73eca3f461628e541b3a9de26c54954cd3dd613c8eb1c30b6f3ec2590f8031d195a6f6da63d2a67cb6e7011f7067d6a4a22aad82d48a32ee57ca34e8a67afa87d7c22e978a0789a0d630a233018a608e6214e5c8a9c8bcf86ea9738119e986d6b4a02eaddf153dc252b8cddd64a4341d1aa20ab0e9cbbc374adec6259bffffede9e9f09240555ffc3b2e96132b1613942a261ac55614f6cb0ccc461aaef5bd6b30790048757cde873b50cdd7ea2317afbe26c4933e6811dc360423eced6b7d9ec47d00a0e85b7494c4b3b59303aab305fb7c451ba8b25a6cf17d56754231ea15fd6f6c9ddd137559459cee5eed6420db860ece5a595ac1de3b2d810eb06164d155d369beda1ac968c1c388fa29badb52594127362abc13a11878310d3b42f007c3c307fd2ff4e4929a45ae17aefb5faa6f98b89a95b70b46eff24a41be7a04d140697d13d1963d336532eeedafe1f4410ae1d180393dd6f0a19b4a9e45bf12e9e00a1dee0c2f8461361b81278369ee458c217d68528907c9ce5ad2d5f52b752e9a54ac4a1ef3b0ae25b51f4c6cbd5478eba3fe6df524921c00a4466a51164d654246949713c5509e1a03b700734732ce80f8bfc072e6d7b3442db75cc6120bdbae08c949c65da1351e38977ddac4e5cedada990f63bfb72cdd8d98ec30fb9b5fbefb3ec28cdce4735ac55116ab2a094547660e76ddd16057531c652ad6c9b01a09ccceda2fa33ac07d745fd4489469051bdb3fc26de1f27db40b58661cde18e0ae607dbcd162a5d631365b08cb816664acce198b0e85ac4380f0977ae0c70978bfefbf8ca70a0eb8e6348a67f8c45ad855e2d1aed0c2a98d83d7fa4c205205738cd9619a4f995d2c3a18540b791d9193e2578bd623ed5e6ee7b8f94e01afeaacd6ce0c39fc8e9230af679ae291d3083ac45ad6f81d6e256a70e1adf1fb095ab0ba98da16896bbce816460978dc5918605d7fb719810006d365066d387b04d94e889621cdd435c21fd3cb88097e6d6371c67e15a758d796c2a2f714e4107d589b1c064554f4fce68e2a8fb2ace1d1c925777043e8dd0439e2dad8b9cf6269f11b03bdedf1862d6cf6422a65e60cf869aecfade0420c29340ea5e4980b982704c33972feaa8c49bdf46fb8ae37ba21967dbd93842fd2f07a1c6edbeb8f015fb45eca772be9ee5d84383d57b9c2202997b0172720a71475d23be9710a1dfdb8aeb64f1ecc415d79bb46a293f01609d7f2eb0149f9a661ebf36b2ae50c35356c27bf931527203cf962700c2d6700ee702089a846fd8fd2b987b2c17ae78e50b678124d6d6cb6aa700ab9e4016161197274d967aecf4a7cdfe9bb1cdf2f001033eab1d80126b345f058c3e9789580428e628ae2501bc5ec1ac98725c523ba64bf812c488b22bad98c6aa018dab13ec595f2523a3d55ab1ad878c6066882a4c742fc58c78fcec0817ec1d093f6c0e54ae20e7a28af9a63099b9286522472e0b13729cb68e2011ca48c487f89c076dacec785ca8625e303c71596bc8d8f57b584260c1543e5ca499b9f4bef5e92b1769a1dcd21e2922a85084a3529a66bf20231dd861d9adec55ef9abaac653b704c90995aa4b7cd2966bf08c28e4dbef0d641463271aa37d1ace344bb8221001be1f16a206f07b58b17269325748e65a7b849628e83f2e95d22aaaf64aa617738dd35ea0e096c39cadf14a36db0c7f6cf29ee9a2f1650079e0c7cfadd0f263301784eb35ea1f025de761018e183b49d7493fb1be9d63d88868230e687aa759c90a99ea654c2e13a110e85b57681d69d5bcad7969abc0e95f8a3585b0d65696debcc5365062587ada8054ea26d17a3caf53a34c1bc02210e94ef7ae303c79837560c06d72e8985a75fbd2ded7562c3109d3447d3fd597b045a90f32a1c0229ddfb91b0a71203bfc3b109f004690dcfea22ee720ceedf5f401fcd1284e2447116e4b677c674712492f517f93c923f81ebae1dba2bbcaf80bbce034e670f75e1ef39aa80e59a0dcf1a47cbb14e87db8439ed3dc3f6011e6a247cdabaec67b39a46e24a53fc6147e55342dc99d490909b0c8dda74b6a0f1665d469097522e4bf350622ddcc6625f42a98d45c7d1a28011340f7e66b8ad2b9bfe0998567b22eff11316082a422671947d34c74126e57c2591e41a7bcd6e3052d1e3e67e6e1266a6edb6ff6e346adfa8a4d18af81ecc1a4c98dc09fbca6663855483a0b5d3fa08280b328ea3a17554ebe6893207e3c023fad5e3f76c097288703a4d0b717ab7b4ecf3cefd65577dc8af80d6dc9e065a21f163125d3ee7f27ba1ea4df627d443111dfba5b256631840bca31fe72efb2308df760a5705440e1451fffbfa4b788b5085cf66bc3e98c434abf22679589af94280d1a600c706f83cfbc6ca4400a0cac6c3ef6e6ac30f7bd92b084223cfa0eca05950f9a036964fa21cc38cc849a97efe602e30dc46a154add9f06419882cbee78d60994b53618c77b42ca6156997e6298f34e7c7da6f3e0e61abfcd48042e70c498242cc22587a31a96c0f2b298e131469fda1f1d75bbebdeaae9927f54b3157b9ccc2f78970c64277a227fa315a89f3aa58960cc28cc78954616a081493deea946739bc6b239b2da11f5781d8e86ec0096ac8009dee9e8b91a185a621ca6282b812a58a49ee4c7c30ec81a879cb4ef07f2801cfbdafcfaea83e058a7c84ab55829dc2f398d1167337414a4928b867b920e0148d6ec42f722c7ef0cd2ab9f8712a6f3b92e3d2e68cab0f230d5a0a8d3f45b179347262f414b398f6bc6b4545048001249c8f7a3a152178320b4a3f974c310d2e3d9285d6a1ca3af95a49693f582161cab5e0560b71e8510450fb7864769f3eef3ee56c478a200467a54c48d18d7ab0d4df5977cbe8cda70cb920fd68d4fedfbf126b1ab5c3180b6694466b394795a4af9a2af271054537facdb2b7cfa68e5fbe2ef0d7de98dc57ce26973eb3d109074d99ba6197d218f4d881a7b52a91ee824b36e7ae39a1fd65f4027b90af8a3036329db861a297d284040613a7b34a2cdf80f80ced649025a54376af179d8308a2d6554a1204dae8c4ea18f4661ce6d162f75638a7aecfeffda8dd2bea40a62653525d1c9a84ba70409e7a116aef12faccddceac35a813f644cdc0c6059fdb66605cac1aa29fff7bbb3871995280faf92e5f9ea3b1ca5f4dc81f2a5cc872f70678991f8bd7f05e86ad0d87a7606c9ac27259c084792b2a2dc9b0057278376a495c3ae81c6ab0d754c0acec6ffaaabeb5d2633876b240913efbdb9066bdc0fbbb62ea0141913f307253b428932b2efd4c5f25697dc3b5d51d08c324ec236310c5f40d08c904c5e803f773ff071f13559b7bfb6e6bd54f8aec0c98e5f499ac3a280f51045b80d9340bf45ebc1caa6253645ff0b8325ae22b6f17b82038f4ac1bc9c58510c24844ce45c54e474cc261df3d96015a1183531315ae95632a6dced311bbd2e5849fc7b2ca9795af06017210f480b6cc30c8b0f3754b7395981f3e8608ab31b3744ffd1e2fcfe016182482af30d00623f964535644d8ed9d158ae4b04de33dd5172543587881eb250c8e0e463a0f91dc5ad714c7703857621113ee5af3c55249ed72b7175ff90075c7c6b1dc781721ddbf6293a23dbfe023bf81e35b5b45faf5868c45a871364f9293f444cb5098863d298e86b84fb49588e882523d116eab22624bc209726a09900568903cce96bbf03ca623345cd625d969240679e2ddd8b8368c18abe57c5a447a148c478ee85a77ab38927cf0d47f3d5b5ccf154e444f282fb1858d2c8527a55e0d30c04cbb661b639770fff4d43b02da82dde4c2e9e3081c20e6e29d56a2e91d0dd521800e5f6e7b5c6817f8edd530fcd3a6e1092473d33fc0117918f1ab5b5af424357734a803a1e1d28002acb804b8ee6076a8e52e4cc07f48842d0c070309429b537e5541a10ec56d0eb3931707705809a7fc2b3d7824ceae9a8c925a94239f956aacecca60ce6b1f90a39599db63f8fd64538ea6388723daf29f21044ee754f41f1a4add7a127acb1da59cd3077d9b258d3fb694e44f766d37588cbaac02cf4aba6f12afb6f25e37383604933fce71a85206e1e07c53c4c581ff5a0022a723a0aee8bb0bb8c0c6fe71b11df8ffa28e38180c61f2523a8fb64d8b4566362f85bff525119aa57224989217ac60832c6aeaf9ca1ced3ce75d56784dbd9dc1ecd0188b6ab572e158306965046a2258b0629d89020a30b16635db9b14635b22be0231b7279806ce7065eba6518415249c34f47f7ebb23639d25875ac48e09a03cbda207118455d92b83e0c12719ef5e0987dd6308ce583b87bea46a2ec94a60b1c7ae164a9374486f0b974ec0c06b0d0b61ac6ad67bf6c4589693757d534c9a818a5c84a2b6647de6c63e86eaff49c796afc012100a796a3ec5e41bd39de8f16d952ac33e2f39b17e3f4d1c76d51492f9c0bf3acf5ac01bc66887b0d2d09924d4194f9a7e178e5c0844f22f0531be5a90ca5cb75a5b6e373922057db2443c721d6c887f6cd94ec887699c476a780918eb64b1a9359495d14d96cea0150aa16ba78a7d2a83b5cc80b3848d88a303c6df980a2618059eb7b19fee97dd6064f010c08fae03213e25a57c327f9cb89ed9789a9dea8b3ba613a25257c5e27447dc69c13ef55093dcf84c425157f73c0b1b34e0e0feb4f0ef44ea1883e7e9b8e0a201f47d95413d4b717e7e84ec6efc7dfc1547fcca56494e310f9a2548b6280ce1f0a2d7dd3b011a986e50b2da56641d069b40fd47ff59ac4732df788649a9de345fb7f8570ebd2dfd05458767928f8920a1af52b84a7d880eaafbb943df3f1db0a6443589e65b3cade323f2764e7850af3f8c51f0b5ac7202aea1a8df01e7c31a83a901432fbb52785854a58f55b6777b988fb02e418991c42fb40b45caa57f05f74d7983b8614e8814a399ef2f5df76deb7f0d8565671e993b302cc69c3d34acd090d9e5cad2654781ce87b081013c1a77b468d01ee0e7357af95609f53a78a8f82a05a308199e9601456ffc58a9a718f00fa4410c1fcde0ad2e5b0513761674f42901223eff555492ed15525e6f0d3199ff0976e96346de44ac110e9b188cbb46a67918844fb83285a87fd918ed37554604c51fe2f3dc2f5b4cd0f07a0d8e8097853a3b555b4dde4f7379c8b814606bd4e9663e8205aba2c544f620a658810cceebb77e79016a74a9bf11d719ffbae8df1861e74408e72d00bd63f47a3400b3867985e7e860bc49709b1bc4ef56e93bc45d8f9e030754a11957fdefe2fa5b648e19dfea076ac10012bcade94e7686072e17ab3ec8cacca3f6ef2d2480d013104eea225fdf894df06f5da4e102009d2ccafdd571c3d1bd01864c619979c060d74fc352fc31bd09da79291e3a65ba2fa5db9d12ba6924a84bc0c288ccb877ab0f48f2946c9173eff0f80afe39a6b5b12ec22ac909f990a3c48c2e993baa1614154c0eb2ecd4ccd02f45e36cb5b9538cc4bb8b47ece8dbd8a0e5ab0c02d3a0edec202b9a7c93e5ceffde9752f2599c9bea6a603c3e07020494d5a05f85cd693cb8cb49df9f8319e22e27d2e09cd263afc7eb423c7643bff9af289b92317f7f3df6cd9e37aee25c5736af1808cc852f0e1082bc407d6a2b1c93ea66ab459979de96b729fbb345104dd1db9e02165d6ff0bf293922175564e7e60b8c34b0b64642ddf824aae275fc37e3d344cab4989701a694c524db4aeb682ec912b8fba8873f121e0866913a765daef5c69dbaaee2e2bd5e8a6abc9b91c1e4ac07494bc6c9df06df3175cd32045b5a4c0980562c07a85a83c67b22b28ea6eb46b9fd664a79e366acd2c17a2043a0cabfc0b928cbf95b215d82c4911fa0e249f3126cd81cb53bdba45b5904472ff0c4f87854a72ce879d3ba5315e465e2d2394ac934178e458ffc1b89ee9cbf6be367331b9f92edf470e9d25221117f67e887134675c5ddd7b9151d1b570fe59a63f179a7ae7903e227fd1fcf0387656e2941d76256fc9b4849b693710d1f395d32d501c7d84e96c27604706ab4121f85b0b1650a7ea837370015048daf7865166223a53b370cc801a95bb0ff96580ccd29b3f0ca9bf64b555542fd6780323a2adb3eb2f52c681c8801a04022ecdc7e0f564b903bdfcf7ee4f32aaf38e4dccbfdd8e38bc6da99728d335ad6115f9cd74e8e9a4cd97d66029e396a4eede62213ab6a7ed33ba62dc3b1e7783bb67b34b006391a07a931d20bcfb9ec2f21b5faaffff4d0172cbde9134b3a9b71952f9cd05b552bdd7cb5bcd0cdb962c6db2366b211adea41e38ec253733c2b04be516cf312f4f4dd344d1ede0ab582eba525c38a6f216e3aaa4cdf10457348934e18b89a43bc922db43c0adaeadb1b1fe555ac83b2b027819a6dae3ae25782e19aa07577626593ef8c4d8b02458df8a5f7736967050ef4b04b2d0a6254d362eeed6976256d3fc792964b90fbdae390b23fe0ef3203c1f629ee0c6d2912cbc8e78fd8ef3db7a95e58bb88e8bd5e268d01272173f82ba7205cd34c36d7f99012fc05b59302179b58304b5a50b9a356189427628553106d066c3974fe3bdd6d185779ac3823f61d41450b998d7b68a5027211f0c7103e18072c6dd0fb5e4f1ef7d3d1cc126019cd3fd10a239c6ebefab39d18be2bebea80c2a3faee76a24054aa2d580b7c0ac85e7616ff59ea7f756feea3b1e1c18054d0df9fb1224f521a3277b8a2bf4ca65a13af94899fa5c219d46071e6141ce1ce082404b9038fce76d326ee2626c42d1e485bd654df165f0129095898353d57857bd8d9c8ec10c447c2105709df00bae7eae16e65070f61a128676e17c6195103518154e87c3325387ff599ac6f0992aaf93d0456866337e0b87eb2926da886b506e446ba169ed45b01a9bc0fbe64e2e00ded7d76d37af6647baa9a277482c2b5e95dc277621534cb2f8ddf4297429f9dcf2db3efe6e8aff2413efec24914ee5d9e8ada35ca5f099d66dcfd182b3453ac7b8e321ebd1b71b793f97f98ff5d43519d3ac7f8fe396bcdf6c37cc48f74dc3964cbfc4fd917bb16294ae4b0cc43c6e4b0b9de63705ba804a54e933b39c15a1f70fd4cf2be4485df745efdf2896e67127965228bd98a5add2a1fd51887c2cf0e9818c80576491d0e1508171635bc726cea935788b2c2173db3fa692b3804348f6abaad600ff97532646e0c2072402bd9cbc9e6fabc65738f6023bc11f07d02ec8748e4df184fb753ea90716c07d5b6383741fb8679834137c582a708b9ab7cfa255ffa28287c21b2e7997abd5c3abb791fc09cbdb02c4e566ca473907d3629dd8d8f770858029518cd008b8201c84e0bc5bebd94edd7fa1f518022a88d2c4fbc9e6e16c9c4e15187c27c965327ad1e0d43de77bbfed573476415de261dca6fc049f3c1190dd5bfe122c7bd9b25c1ec1802aff0a377d66fbe0ad48e2ac5d1007a13257039d99d51f1fb2dd190f4e3c60243c7a0112f7cabe59dd8e4a90175e947961a34295261d57f90f6a2e0b4ee99779a29f757c1019384e7f55df7b2cc833cff472196a314c483d78f53f0253402f46dfb923a0ceecb59ab8f126a9ce12477921dda057ff96159fb9401252f917b27798b8d8db3d890da1c455370e6446de622f6e3919a2ac2cbda9f87705a0d537a4ea88e499e3e11c3646b61079d38e4ed99551a272d38ff4087eb3148560bfc16ce46a5c47766476e1f58ccf230689f777677dbcf76d43ab5c9c6953e7509ab89b2781e262e55f687dd7b3d15f530f9904a2dc808369036509bd6f4b42cf257c305b3d4f876d2c18fa34cbdfba37a97cf3a0d318131a79749aa28d67b96fc890fa664b1f4457d92d06a00bb03d61f456280f08af1b1dc2780da15bfc5f11c8f56cbdc5ab558f0b7e39f1761838fe65fdfeac184e30468a5a0c2f435821e0501d879814819adf67a93a2b70003b108dd98599c9860f9f0f3f82b9c781225b5b9630d56b77106d011f547d59de5854c267c4439327d679cc01c94b5904caf9b99f9b6d138816d8528de582fe6d537ad514a32afc49fa728eb50b1dfafec8a46c1a2f805d683ab4d6f6e10191dec5693754343806934151a464be8a0fde729a320492a150121cf01e141a114c6c8589d1b36a8f8e23692f77f34d229418f22cf7d4cf9f8ce34ada1b304af3d18cf14f8134227dd1b9e05974702c0e71013ae785596e39833d35ce8248ed483844146472b8498697e3dd579fd2f34e771c62ccf36f8bd303ac5b7f0945b1ab5d8410e1e854e6a9fbc2171398494630611709e037db22e077405dde9a0418458c99d71079d871fe4e3c7c8030294baf77f152a59881b3174176eb2db2f6d8558ecdfd71e3048cbefd5ced127a534561420ef9ac5d881973789e05c7ba35a867d6e548b3891d6990b81ec05b2bdad8afea49edc21ac8d831f4aabc60f9f3d65b80d903e9a29ac46a07101e018bee05d14595584ea0199ecfe82d820661670f13c228f85432848a414971e63f9f4cb09b28d52459026af1ef4a85c5dd696e36f6cc0b156c6a13019fc553295e3116f7d44e1057c58282739fff3d1b357fc3b18903db18fafa2a91d9541dbfd36c7c9dc2b452ca5cdd716b0e8a18a1fa5042f9863a12a6f7ff657bf9716902a0f1b95fc6ded71e3bf352ecc773f49de717200916fce801b32a53b2154d1e52c403918e838947e7cd570e527f971dbf5adb27616346ba81b58692cf820f93d1863d8015f35bbd45babd4493115fb28abda35703023d6e6dabea0480d1a7b9087f2837f52a9d4978d854c20aff6f005096fef555d6baeac29a97995be2eae5517775de46a6a7e20c48f5b8636c1643c614cad030c92bb7bbc975e657d805acee9c326117fa03841d7adacb4b457f1cec442396322de3d37aba1e2f75011de082143a7772258424140dc9b08e872ec6a8aa576e37792f154f35cb02c50c2c80b6a52be0314e585de9c205b04e507345eceefed285af84e24f3563d112aa2897f6fafb46ccd14bf1a2f0a958793fed129f07878d1093ad1c8ef1c4487a18b070a63f49e71f63045335ec2ae1c2e38f0f71139fee83a0d4e9391d4464009143f507a24e34befd122e632ad0bd9c5e5d6d09a9d77b9952da81d63649cd0cec93f3b6e4833334a816512dc99f4f8bc2eef67b56da5f438a766eb552ccaaaebc222affb1a8f264e2ccfd42b8304124b2704bfd2be30d232f1fa583d4e2c6a737bd45b62c51e4e7566537d17e03c71fc163cab24f924a108d8bf5252862ef20c04ccb0eaabf831ee7b0a1d3a8423fc310f847c22ecf5773238fba3b193978d6f8009465a4a24b21b5484f752108cb69bd167a506f383229f886cadd930a967eaf5f53d81206c241424a5d5c1f2eee0c40690465129d0292d3532fa2e9c166fde69fe3cafaed03c23f175130df86f7d87c460ee45af52d532c90f7979b013f1405004953982ae6d46e39245606bf6eb926472b26afe2452f6e95e17668dfe001c4afd2bf851e93cb167217e08c7f837ebaade05094e72c03621351a04d0650f0e345c76ca2aaea34923788cf8f4dda4683c9c54b407e0c3a37788d9495b6de9c7841d9710ac9eee29b5e20d461f160035656279bc4be05761df5c708cb0d3b78efb90582f5477bc21492bc9ab104d42522fcf98b9852015886e448c09d8197bbc9e3a3a0fdd82a932fad3990625581313c9c9c9071186c9a769bcc561d98ff03f0a65419fa86cee13052a23d9c9c1d69e3b5b3843ed6a403c1e31d217c447c2180e3f934f3d44b9afca9c9eca8e14017071771dd1820c5d3d8db26f14483162dd9c9e2094d2c34fa5a2025c24c64798d98c70fb59775e3592e5a32123dedff6370ac3d467ed2b1ac77db5f554b5efeb7b8e0e0c4692b3af98ceefb47680bd4e6599b0c9c60c468e9b58b1cd6c5513c4cf4b85b246b1ee419f828b091ff3abe4b85bfffd32666092dd7d1e24a3a3c97f9fb5c210cdcc2dd56db952ce989c569f155f37e930b25458fb98f1fad28100df8d6ecf94910c217dba6286b33ceeb61a762c1415c808ece098988b05f8260f7d8bb13b700fec7fa6b2307817cb5c8df96996499309ce315009618316b81ff6536188d270056f4e9c76f22c58eae8d0f28fd7a3c083ae87fbdb4e03d9d6de6efa2b520d9ff665e4c79bbeffc3a037570d1e019d47cbab8ca24b896426bedd2cb1d899015ca9c2e8dba9ed8f9adb3a37c260b9c1bdfa382994cc24f2f3fd4cf2bdac3cc375aafcb22e9de483aee969a88c324a7f882f6752998515fea7c5545a05bee074cec885c4e467afeaffff8960c486ff34ef0822565fd0f1b1a06ee57a4e7bbb80bf954e4c306d6b4616b606b27de1d5a2612d7cc2c3bd8445daef17c01d21a8b357ea5ae6d6068289f888daec90dd780f03c60b3ad48c3085ed691ea39e458e34f06066096300b390605707c4d8a891bf7bff56c78c3721d2129dc41ea64e189259d798d4e21befe32ee79eb92d846598eb8b50815fe64e067170800372f7b9600ff34a2fda8c02c8325f5bd3a245c4079a1ee492587850e6c26e128d6bd10623769ada6c1a7b0feb11cdc7190ed6468ba8f292f74101fe0a4945b6dbddbe587624778fe68585d8357a9ff8a3f5b4dd709e43207f8246e36c1145e3324377c6bd9d7a8f3d623adb8bcf2ad4319071afaa1dd34dea934382fbd8e79c1f86086ac5b156e336c0a03a843626eb96a63347d07167a832d4a565ea2e4353e8554ff717ea028b63acae7965342fe177c93213a7f347644f2651039e0c9853e87780a2000b39a20650d205ee1b46651c7d3d33cc6cc249094fdb6e62c8c8c8b8d1a35673b3fa94ebe56c91b3254fba57b3369759c0a8b1af3a10dc5524d94b49c2153c559408641e6b513e236291cfc929916da01ece91c0606cf1303e75044a42038fdf8c6af9b73f48986caa39e9fa08d9e152f38e99d54aa4ead64f6a59892ef2c51637ec8c3080905fe154d7d8136f2c2bb78e445e68dc1e8bd7832c3127113a0890149d18eabb582394b8dec53467baeabd43d2973f5974e04c9c4ec2bfb886f4fe9850dde4d146ac3f7b2886ac2c49da15561c6d9750f5d4becd0df4efee55b745c51bf7cf28f136c13b7186927fb4ca969c8dd056832492f6fac54ed5a97c7101e3da01e82b677eaf6ad742853e67f29d2d91ece39337b3eb71797c6b26a2eecc35adcd55f2a896d809614f8f6fe58b35c419a069ce994735654f59e973c3abb3247523ff3a2897b09a74f0746043c421ce1a0ba0a068a5a8a012947f1aae2d8f735b99fb725115fbba5f43ec8caaf92c3c0e2b6a68f80b1063afde1ab287a748a14a771f51ff6e39ced1f68187d8494d3f7187da184e1623dab8ae0b7045f1386570ab4ead02e5a7995d932c389f707d1645ee70d5a5fd2a79e48db5ec35ce2093c1ce899e9f85d3e7fd53d06165f662f28f40a30bedabfc458dfaa7a4758373627439e79610e712208c8e3586a3ae1bbdd74e03c3479e324330d8c2027abeed328427ea28ffb16b3d4bac33ee6786cc45acc593d48a97d051f06f48138bcbb26d30ede95d0ffcaeb75db212d2d1a2cbe81e2a1e7ac122bb3f1401ff59431c6a0f7b3b7b095372d6c04a5a655c99cf7f4e42e69b2eabe5ac3b85e1c3a7131e17bdac740d52d553ecaf80badd87883d4f44b26504293ac39392512e3236bd60a502cf102ebb113c0892cd7edea6fa9037040a4212d314ce7f6d2b0c3fc2da0c637f3312245a77bd2aa1e6b0cab96340e9786c7fd17d150b8e42e877edd855aae351eb89d581eccb01d0e4105697c642802dfdd8083ecb0379ce03a77b0bee36050a4d2c291f49f7dfb0c2fd57503f0e34a1661dd04af928b9b71af8ab4ab98c11c575f55533db7570bde0ede2267be698a8539be57014055f6f6e730b3b9c1836ddc3ddd255e1fef16b8377a2e63b7b4c5ff79d942dc93e117f67db57eed4e0cbc2599ed8eb1275028e52e9c16ad5d627ee87f93ecc756bd8360e4d671070db292b9e85a7cf1461452cdb72dda3b39c5013baa7db71abb1a29892703340d594fbbdbd5b0376063c6f710cddbf7ed197c3ea5074fc59b23ba972c439eaff382656cf2757973cf7897f3ebad2eea2439932ef88b92ca9057a21d59a382661277c05820d2134706cc433b11db9471eada64f8ca72cbb20d135e472af79b05401edcbe2e6e919c6de14fd3c52182fb9c978dfe478ba40b07a73f407c1f66d4f791f8e2aef8dc0773adf02f6d89314dde5492da0c77376591625109432975ac81741a55aa6c9cfec5f1cfc5413734dad62f4b9abe5892c1bf0acb41288c0b3edb78cd1d34f7e39e3a384e909cdb98730366140df275b74a00730415dee76b4d10721875d6f06a8514f8afa6ab0d0572f6b46695a678f4f418cb8200fb10d85390d278f50539ab2d41e2427accdbda2ba9e35c8448144767a68282697c367402ba048373d8ac48953c267485318ede62280fafb51d74a0662b3fb831c3ac83052ea76897267e60dad5ff4b94be988a58759490c0dce712dc73edb0981d232a652ec00464180cc81aa0e2dce937c626e0c80bd5e774fe4209b0aff9195675c0831faf999b232534b295c439fbd726a502fe427ddf84795f3f9cf60c8887d2b06023bf0cbaf1a1b7469c81107644eb9b0b2862d27f827bc1daa76beb5b3b8c804342af358459d4ddcb248c6c743f927ca0afc35e9b26461c7319f6cb82a643f30e418ea3bc16171510fc45c2fe03f785745f0a9b217f8fa27b11cf9d4e4eeadcfdba73a59e9d24efbab9ae9bf79500d2af09f81e573df188d89749d88de6806bf0450bf486c9ee4d09019b4a6a44034af995b2399c19b21da7861818758095f305ede0df8fb396c07c106210cfc86fca5240a928a42b11e933952cd1036abd216bdf10ddf365a6ead831a6d864681a0874ea4eb73de2a99c4e7ea8cc2894cf1dced7ddfc0a17ce7e387813739dfee7d6476b837656c13865a637f6117938dc0481f481133795e7c67d45cdc6b5e739e37e8e885f8a7fd42b8a89c04f8c9364cafd86f27650f83be5bf6409fa04b18d0f2ae685c7b147da2a3a07f9a0a19b0c6d91fe171e2bfb3808aafb5a5761ac94dc53583766779ad08d5389cd4a91289393edde2324840783b8978b9c1e0d2d5f75ecf16d3c4f4aa97beae18e4adbff4c56dff8a152a3aa28176873a0c7b8c721c329013134fd9146c5cd64e3c71a24675da5844f49ea7c48441b09f4f095436d0f5c6002878af91e91fcf4e25bbab7a9956b54fef2f61b4a9ad5f404268299fd6eac47552a2b949174809591e7a2aaebdef2e40d323a90f2d8426e9907b838d1aa595a2702b4d6b0c39b666107832a426075c7ecf6045b2d7a5c65cb9e22ec3b65bbcc69c232ba76ca4bea050729142e3c98ac57c5ee642c3ee77cbb47e6b698e010bb91bc9c4b3f49421e6723f2d126d6ae0a433e22ea62e1e27627212e48d75a82d639b2301c716af2f4aecec90c3d8bddcffb27fad876234c5bb21887a9de9f09242c158aa20a7386e9385fe81a6961e758d16187ed7a5f859674da5eaee5988f0e90894228098b90dbb9d39b231c3b6b35b1dd116474299706cc537f43900f8c07bf29b61acc847c8713ca6058007948a47c03ef9cf9897a1c2590515184946be34816e85eddccfab97f4af6fcf0927548618b99d2a467271d56408da8ecc2c8be0097f71902eedccc596901d016e104d1e9618f45757bf770626c3767cd6e47262516f1166c7221fc4b36e7f1c665d2d6c865242198ea8c62aecb3a02d7fcc652ffb5dd5456e87b715efd9c4cbd295e9a0eaaffe78b5fbd6091034a4cb53661fd04724e784c3368f68218f8cdbf33d8e3d9e98803e0641d1e0be4b47e78e75b064231d69836d1973254baedabea8ad1a9acd2c087b9b89e8e0944456f5e0387e1b844fc82155d62ee656cce30b415f3a63bc26aa02f7e79fad0705a5cdc80526bc1816cd44f2fe28fbab8adefbdc17be18dcbe22ea95c43fdfa07ee72c7cc69a20479e9e55a8c896e4909ed8ee5d8bc08c328c6f0d9580748408b90231601c40b47ad85ec132e525db5d727fe4e65d7467109b558c65180c9cdf435fe01129bdfbc2b35d79214c7b487fcae705eda4b3a51734a64991b80c9c6a1955a2fe3fbf0ac2be237365072e4a4818a31ad8498b15920d2a6b8f76eaec0b3c00c38c02eb0beb87bd26ed54f5359564dc1133f026db17e197dea89f76698e98acf3d3a8c8ba1057c21251af990e3efcc97c6c41b4ef859fe0d0ec4f3fe33ff78ec6e5788eeb431a8a36908fd81159487c1227c00e9c44bd683535437aa0db05b034a6ae4a0202a0e798dcf9d22c4d7cf52d1a854701de507b443b1242d744c4c51934561479b37885c17727cf81b403814b82876693e4fd60f9bb4de13611de36b6e1da985e7a19b53e9fdf0de80eda748e2153159929e60991ac29235de3baaa2ebd4c92d2501a19208951346a4436e23cd04d3daf431b27107faa2561954f580aa99e708b77a9147d708153c7f7333e3f9dee0544654ae5be7686f54a33fabcb6045fc652348e53edb19ae6f1a864b6a57e88091c839c37a50c2d5095c5f28301e5acd786e0540f0df8b8398fa772b821928a09ceca04c71564a644b2eb1a2ea1dc6b0098477eefff77fa8a7bd53f2f88ed57e54669772721cf3c1087463679ad54f8848d55cc83e83deddf44392a1b56ff181945a1c2e920632280ebb2d59c2175dec67f1506617189a9f9ad606076277f2894dc31047e2c9d84552c547f325d9d55c51c00cdd9473a2b0a2c936fc93eeefd48f50cf59fa616c0a58a6edd05a66c8247259a5d269c4cbccd6cd4756f01a8b772ca5d8533b049a6f4b911fe18a45ac10cf162558fa3658273cbb6a14c7a82a62e6cdf820db16507d36393eddfe3df7be5e712d8d817708150ddfde9a4d8fe7cb23d834321d533f21fa4d93516522e4aa5072aaebcb548a5b0e71027d4ec09041a76678ef18b0b5ca78c750c98c679637562ce36bbbd7aa439653df8e3ad4c7781a21d3df005d722bda18d395878d09e2c9dfa46ec750cce3b84c91e5fb40cebe321414fadbb279b9f5a9801e3838386f873fc4fc2a65b14fda8d6384dc09c5dffa65d6a53e85a1ce1a5e69bdd671f40d1304367e31d0ae782e81306f5345d5652ba2500f50cce3cd461feff9889f44ae8367e09552bfaad9f8d40a0de944c342136f9949a6823b0fae5c4131eb02f57807c0bb338265bf710977e51920c288e53cdbbe0d78596f9c2787984108a82b7620ab6a740e6c5aa4b3875f2bbe91b46e480fbc3eaad606475d67fd464255c2f757ec483d54869d32b5643faad1d04339127674b0c702df40cb1fa672d76b11fc98a57709eaf46d31d0d42aababf3c8171ef943ba9219f3fdd2e369ab1d55554db731815bf7e7e117f2b97ff7c89022d1cd718dfac57e3665264e225997fe3f3a19437a1a79fac75e4b39754f65863381232eb10e66d5798cce11d6a3513345474d9ba85c4ff5442ad5bfadb58b0be7e32281fbdd3013dd594245056d91669b5ce441cbbb40f6020c90dda5f7236d6471734e951d3787ee82c24d406c06f8425726c38acee45a76de06988eeed346efc5fa7f5dac07983c1c8c7725c39eb900e67f98c20e59991201e42305f0e187e9e13240fc1956e15a5936cad18b3ba5a31f729c7bfce08c0d2b21d48d816f5f0e67a221568780654e67f62d848bcf0b70eca4fa2082c15cac4c8b5d4c15100f62a0b6d4225fcb6b919c46e050a50056101ed4e16d508430aed08797bcd8914e16a3da6c347063330f4d449beef8b56598ab622d6c5bf9c7a63010c65fed32f9b2c77be9d2deaf934489f208f9775a1e79122571e2fb72da1bcb5c5efdabcf3a2037d7fe49ed3c70dd3011261339a8d1e9f7b90d36028878c25622d323246269de8400341e983210dcc0ab6a4142220f547e302f1638340e05202834d1fa63275c2403ac875bbcde66749924c826947ef5b92f646876a70f1947d3b903463a50dc3136921d3665614c297a597634f51568b774a89559235f3a2717a68f83cb2807937a6fc6dcb8c49de1ddeab893174018d31f1adce0b2f33ef759c261e4baff0bba75dd9717d02f9b3f2a200a2fd47ae04406e9bfe9f04669659af8f24e195e8ca4ece1c8cdd8fe875ac4a991bd546e9abac5d274beddd033c4ef53f440f834c50e58c788b3aced58765a20f898152867f5ceb6413e8e7b4652a66ddd70c3bda1b6cffa015789e2ad4376c6e495e2ea9f3ae59437a39d4cd27ee2b1aa873a439bf03e353ed48a2c173f4dbdb816b035e700f7c7c76b857dc347d2487c5f6469d6b88c7ae82a0c1bad9e91814b2f5ddc198a340d381e2ac43a2116336da2ad1f2b2028fd5c7fca75ff5dec1b36d9c2bbb1e4f20a281ca0de9f342af2d1d0996a30eb0f3e8838e4318fc056552048a434225dcb0b9c26d3ef0409d02a951110ce54d20fe4c9e13476fcd8d096d225ddb397335148f22c0028883ac0c2d7c524d994da78f3f1c6cab2623a5a620b59c91d7f84586babf09a3c66510ad69372d96bf9b2cdbbeca8f2b5cff36a8b49a8d659c693fd3c5cb616e961da57fecd255ca74e834e9bfce8fc4bd0a6471f5e9e83addecbfde4a582b34b2290e49a3a577f08366db14b595bc3bced4c0d45eda4058db268d1c62397acbb101f88d2e3edeb1867d538d64e0dd963928ad9a1697d9ed6c1c611761572f8b260b36fb035bb4db956f75d70ee2a7a039e5ac00b7865a8735b393ece8096dd2c7657afc60d4bbe089d4ca49e5ad3d690a148737e9d1039b6ed041cc4456bd80af60c5280de2dc57cb0c8a90d06c9ec46e2114e3cf3203024058f17e182be57ca6aad2d0ec668e7ab30df22a871550c84477109d41571a77a88f97dc5ef3e82d818fba75632ce4a77c2982ebf3a077502ae3fc71d35f081af6a25551b81a38018cd4b54e863703e0c2b49b7cecf4d37b317d1260b3450ff0ce523562095d4ee9070673c71ea2d74a94ab35d737ffbd2ca50094df52317d60c909ae2269fb5adbb647b4fc7ca12ab211b86ccde4ba658bddc85257e10b59b794dcc0bc5f30a74f78fafc421aa5a2039f3ce480f019018224e411a396d530a5b13608ec747d86c3f5c8ee9f0bb7cad1a3431fe93c0d8740aaee8d95cd8a8fbeba352e860eac94375fed954d4488f9d1db763253d724deba89a75471eea1cffb3cf5daee9e9be6b237c24c3ba8d2d35e378072de8e821b25dd71436f296cd636204d529f23379cbb31f00e8ceefa30f64b760cfdda188c7de233783d01e3c3b19fc4a6a5f32bf3e01bcb0c15541c5cbb5436c8f81170c7023046bc7ca5acc990d2bb9d22de3b9333ddaf0fe31de806f3c2cd8e6bef6bf8b6f864f53e1d612b5ac40d1fcc98444ec78175c8b3eb02c7895e55b1c56acbdde060d5f48f415ae17c1dad506d7e56f73757437179dac9a189f6df56cadd5cc18be23011e9879876c65bfd4c629d744520195e44da76a9fda7a15eea127b20ca08c28853bd9c8681eb9aeab81d16d8efa32dbe29b17f704bb98e9cdb8714d39a6892d3a4f1cda58606ed015da4c9d052e4f180a58d7848dd3965b488eb319b2302cad6545d456d2b10430c4b0f589df58d168781320c3eacc435a1af5077d2eaf366fe874d13e65e6be5ed070d6fd43a4b0cd2e4143f83409dfacc599e5b25d699a3d4950209ce845a7ccca76068395e5080728bdf71d58b2aa8becd102f83aa17bb0b2631634bbf86a8bdc85c3816a4d0e8199af133b14876cd49b5b771980ed5bd4be682447b2a7b2b80de6cac74478421a118dee53d5caec4e150f679cdd8fd7536071200653c28a001508df9d0452a181677ec2b1bcca473f242046b03d7ff5b534bf1331c8363c3b27dd29a1fa0028922a194307a144f9c60386d7b890b0d9bd556a5b31baa634cece5de7f400a53cbdd0b07b72c0e49bd9375918b0490a0256e1ba64223074455e6426d8b394be4ad5bdaa7fd931f5082ab19240c43ecf1d99bafe01e22ee865304accb61d2c183638aad89709926c5c4c2bbac3437b481b62b9d345bf8b28ea0777a5b876b9a827f31f4fa2b1b65301c62e0068a91ad921edbb6f609198f24927aef11cf2a4434022498f74e76bcbafe83a7e2b4b592ab2e4ed170375798f422a660f818d79c7575f7b5b31d19b0b171ccfd42a803c61721cc4f5eb467950d2b24fdae60fd1b2019d2a415f446fa074ad68dff17afed67c2735171b0e1c36528c014e31b39ff961f22f4370878f9d4fcb7a8443f9f7decf5d96fcc24c89252971828dee8b91a3dfa4f2de8fcfedfd0ff215f11f710aa3e4a446c8a0ee6eb12db72eff88c607affb5bd172b44de5adab9b80eb91cf51ab79df1dc367987e544b6f3f31e430d71c767a5f5b651f75773038cb9644845fdf9d222e85159599d6d533e4d535af90c08a9a8b0749dfdae4337ce978ed3c8bc6495d55ecf367a8c75ddbb932c243629352423350476d7b393d22c76862f04c6a02d63159aa705dc27a80d1e5233ab7d4a31924b37a35624d2a56c9df08b4c2d1a66752c0e9aa420b4e86b2e03ea2d204282a31795d8727611952b3244cd39fd7e7f03197b6fec6a31fef2ca92588ce29edfbc04d9f76f4786e8e9354cd3f03b4235499ea7e696c9144a219ae36ba5dae4f40e5071239a8f0d2dbd94aa0f006c1cd2e99849d6dc31bb980743f06be82a1e2d8590ffa08149a2a44ef5506cc86a8654b16e8fb77d41e519ee7e46cad5d2579f2495da8be06ee84607530582ac1341a3a53299003e7536e96f4088405be8220bacb28e579488a5518bc4e71e80fcced15911fb4ee63db8264f12eb3e251c13e58621572255924469e732e41cf2f4f774b5653f620dd5559f8316b9aa3fd44373655daad7149e514911303f88eaaf4407a2ea61e636d25e0546dcceec9f79d0f90b90ad22307601059e8d12161723875d50da510e114807b9199a1e5072ce5af72af1ba30db78a7d7cfcec6ea1fb6512b087074fedaa0e82017372db04444887152ade043740a40855d139cb03e507a97b32d24073e887d92f8f495776852815152566215a647e84a95a227fe31b09de0987a2baf23f0a7caab7a84ee25be74d0991736088413635fbdd0d00cc73f9911f4ac4c8e52a52af669753bd99a9f10f467e9862b0a399503d49251bf73c111c66254bbf7dbf72d4a980490665eaf0c1bdfc5330dab1a0a2311b73af8bacbedfe53a79f74a4b2bd2cf3aa6d6e4412a0994d734d5cd5556f84cb6270405503d706ee49970e91fc49edc58d4f00da690a663dcf9c5b9bd3168aa328a9bd576abf661c41326a23c5270d3161c74175690bd51ca61a24e6fa778215c4f178d3e758eab7c875b18e0d0e18c17efc9cf2906766920b77b7de1ba988d54927f5a66098b4faef5a4e8fb69a0cd849283f79f769a1cdd794e276b7edf4966680157c573c64b2534b758f7acc54ab3317e7e0415c01676608f03bf9245d211804542c0f4148e209ab7fe262874ed866ab0393f913f2a0f39e2add945425d5260c4805986ca4c7d64d1621561464d1605a22017a62dc1bfdd52f103c27a00188cb7ca705c405720ffb2bf0549fb4a585aead0a94a2424fdb5f12bd0c6bbfaebbc197794812a76122f0c7bc99b74ce508c4fbebd731ed5961a24c9caa9354bc2a49cfe9ca68e5dd9a5ea03617d2eea35cceac902ff026fbb03a83b03234e178840db1f7ff97c4f597ea8493c0c76bdcb591596314c309c798751746da89f7111d8c38c085b7835c1c2b99e59d528bb61be791f43415dbe7c2d58962d6f02a80589b35065ca34194502e5f0eee938471e53f2b13d05178feb292accd1b6b90d03fe102f1f37ab118cdf591187f8f06f58018df2f646ad3f31116a61ea320cfed78598c7b8b20df7b46f3cf02f5aed04ada89392693547fcd0e7fc3761fd9c04afbd4a54d5cba03a781911545ee3bdb82c2bcd7c443884cd7ab201bd48185a2100674b1f9a2366ab14aad079bd4e70fc4426ff6ae1b84f5b3a700ff2536b5d4b20e3396d868c163ff44160eddaf47928bde7250716549db2652593f8dc2202c0a995a06fe474e4c9bcf113ef27f51985c662b4de457dbd1a8041a3d72541fd2592c0a16ff15169ffae4d714257ae3d26222157f357dc5fc192766cc5ad231b5dfe2b621857f121ba1d1140265053c66c9ca3c7232a992bb22a113e7a93c7989d263a704e72383f753d96ac23e788172c8f9c2caae8755a615592c2fb3823b59ef71779f42ad6b28cf66ec89956a3a2cab815eb31f4d229a64e96f41cc7463a5f89a96aed0b611b32e2ea3fe66e4d2845057d89bc67c92d5fa05d0d74527fd15c9fec9f06c1081127ebe0d0324d21a63e88f8e47050943250e23f4bb76edbebadb96a59d8c130aac1f5b995068eec66bef46f32bb54b562039cfb789420f7adb6be1182c1d4bbe53fe992ce21ac0ee59ab1f0a1f9c75f074f0daa741c67eab588e55e16805a5f5e0ba2f9f2e41638fe7a97bef55581db944a5d786ab141ff19be68f13dd42c1cad247873e330f920846046e4eb35d87609126b1cb882ca08c18d9b99684ddb79c04a53e4a4efeca9d2669e9ea65de1914b913242297928fe45b5d47a6d42bdc8f72ad6678e9f47ff8522fa518d7b8300c03729ce862390002aed1c952122199090e297071f4c8f1a3d5f2bb41e9c42e013cb797b0e9a01714427240fef89f7f35a29404502fa7ba8fb27e1464861a3baf62dbfdc00c58e1edf65501e1b00b0583c851a5274529118f2f053c917e2b925864430594d3490582a712108815913d26ed30d07ab6247ddeace8766fb6cab340e9961d5a7e80606e0b6b79514ce21295638794c1937c0e950d9773b7a57a003231d30d7568480b6f27a815f1aa5e150a8b43f8eb07802536b03939b6259d89f9ff2ceafbbadc0ae64d80e5efede00a0603b148d6b29f8324f73ba2cf8f5ef1e89993c637ef07c85bafad1726bfadcbcbefde76d8d383aa2861eaf0f72b763853d0e61227216267f77a96a7478c3cd3e04edaeb3944cd86ee31acd237ef1541141e325efe31174b098fa86f55add427915b2ed5b6410b0385aa99742e8aa39f07d47ed6a4ba5e5982b94a7c27db38e16d035dc60009b066e3d170228cc7140b8d550f3b31ce0f1e78888566e9f5daa3c66a41b03b400e545fcd2a47983a09600d65151f758cfa80a7aac57f9b1b52db34818e9b8031a9cf35c9b38cab3dfbb26e80354b7484f195ebdf59a2910e0d5c12a6db475bd561fa06718746b340225f9f4d69c4e2e6acfec7798e8cf1eb7a59005df1cc4dad4a0f55f83349b167e0581017137fab88f171e16b88c63832244b5f1248a04b6e2cc50bb305cf3b79d54b3658540d6eb5a53e83ec4135b5176e70d8efeaec3d7b056bf33d5d10fb1cf1350a5af9a7fcd1bd0c1ca54aa70d310220d6c03000802f0ef63f3772c42e6a1e428bdf8bc9dece2ab1bd722ddab56714f507e7fca965f90bbf018784d525c6629e37e25e33cd6a34a59db69db17b40013adf5e7ad3af44fddbb337be31c7128aea965ea59c3845e9949636ce9bfe71fea414d4823b193568dab0de47c80d2dbaa5b030e67bc1c08e83a58d936831cbd79823c6233cce30d61db894517085bb87b291005f53c0b53a386d2c342bdc69f2a0cabcf3b8ef3a464d707e12aed14c66a2cc3e28a9bef40000b5e907191b4110cd8c8c29da111ea009dfe4000825c68dfaf5302c5cfc985e56e52249b9ddef8de630aba704bc66729ef3ddc4e4cc21af0d260e4357ea2acdaf8d6cb92466e7143642946d93ed2d857dfa84a7b8a27d12577b2b06bcb092a775dfd2fb85cde1fbb5913d213394b30b1d29c3809f9b79f87c96382c7fa8daca3d30aac6857fa8cf1aaf9ba26417c97e3f19a8655e3ce658411b8c8018e1c19c6b7bef4ed0ba2abe107436db97ce0b6ac34452992e1dc358b13580c7589e1e62b3de388f6b13e4dd697ccd3b8484efb5d88d6782a16d8d11d510df21b0d5100f6c1a364c28f1928bbea40c9ae0fc9838e0b51da7636dde83fa5c5fc12fb104fb3617c1f8110f3f582e915060606a889749e7d2f1a2f459cf77d130005a118522485e7edb63fe8f4185297b41e8f613c47a2d36c062e9ec096aa5982d6406dee0849d0d1834a0732e0617d8e2403db29c2bf8ff7e16cd5b5087179ea1e5598f4bc227ca7db7ae14ea804b112e2acf147da79c3ad4712f21ea93e8c6e90f028f99a7711b3ebb3421172778333d96b212c715d11a9a7b359c9a6bdde32074b25b401c9655ecb31061d5c895c212ffdd62ae4133682c97198f79d93fedc3094adfb0b4d429698b769c13bf5dde8f3ebe26d158c375ca65aaedeca95aef95a36221de430da79b296ed2c7cecf765a0cb54467bf65aa0f18c7fb9d7b0107653fc3c9f79247ca198e54bf87bdae90a549979212686099c405e8bb83d5086ec2a5ed7202442c9f223358b33b25019a0d8f2cd09914e1aa8a2895ad5cf1c997ff9e92cc370f8bf08b5cfcb8e55194cefa04b071188478542464ecdb317ba05d029b198e58ded58885e7990bb79976ac3b6b563a6dda98e15b5d1f3cbd3f6f3bc2091c395ac4a102542adaddedac7978c958c0a6f17b1bcccafef45bcd641b9c80caeaab1a73282965753e7035d0b6d2e8288827c42fbda403b1436000500c360e080684039cc9e85fd19a7782d1065b18bfbb2b2f9a9c8be0b97c5370d1b177af90a650c79b86cf11a895d3a5cc89657f4759fbf607bf38f82c1ec42a81fa0372383495a2ec861d5c202b950f8223bfce5dd66198128b947b5541b38d7fdc3e051dd19bca1d916582172b557c17fa81c5909c28c2dc4fe0fd870dd3e3f1d1e967b2cd17f47997bd7cccb9da8697faf9cb0c87619385ba6ee9d84115daa555d0fc5730981b1a297f2f84cc11586a51995654678168f85feca24aad89a83f6a84d8d535caf9dcfe97aaa7b151ef4ef3fc0251824a416e38389da4b88c0838152b5a8ac98bcd9e706ad21f86f3bc111701a1b40f8709cd20ccdf4ada4552b8de58614010ce6518fd3d14fcc038895ab7e59995bb934e9058b5c11b23765b1454feb29ee14795ffc63f08c4a681e1701483676e28ba2b0e031ddb8fb396f13a87645fe145f8795e1313232ed3d385c3318e0d2c6a5b77baa9606f16404709f78c393b16fc78429accf1d857b8b0905453edc6c388ea7a81b8bad1ee930cfd44fdacbd65f7205b4d025dd405173c53e9871c59dc01b7bf72fe7a868d0b5f7550769cd509dff62cec645d22e589b21f021ca2bf734487babb31cf22f21809d4e819d087748d73d826ca537640f92f7c2b2493210e36036061671b2d31c1d53c5b0b4768d09014961dae59e71e27c6772ff82743e7b0eeeb3e9ee27fdb1f8f95aaf5934075aabea6c8ae31c94b27e31b0bb160e5d3ff33658f353ff1dadf4c170f8449752353f0fd670cc88259df073451b0b9c5fc63bea8ae71eb40d2c4124b80e976fcd835c40f6a2e43844b8ccee5d016f02f61902405cef9d98e0c23bf8bcd5934f7daaec36cfc1ea4be353d41d3eb4cd6531b2f23b10f5b5edc8e664967728e3f401f518915640af73eca5780c1047d38d1b45ee7a6db85e559ec8a5079e544a881996533b04ec513cf7f0fb9fdd417d12b762c29ae474c3e8314a0f99899bd8ca30f64a6098945eebdb6f36bfa434e4d19801e169f1be8714c704f1e744a3ee6a5017e9f8cea237731036203df919961dba9ad0b2852762ce14950cbf1768f6537e1149798d01e0ca48e0fba034333ee1794c621a0f575b5b8a8f10ef61c7f5f9b4d3d73e23798786f5482d1933f9b33e11b4885b0df4a780082931761e35ec9b048440a495d178687d79618d0071417e05d89a2de31bc1c9f5b2ca263e082452c622775c7d2c51cc6d1fcc1abb22677d2c5d21f4154782f5246c6b88213c23f57a61a326f20f1f36a47b78abda91b90cf3adea7e9e68e5aa861fec0e47bfe19e6b50217945c8cd2b05b9f30bfba837004555f84cd59f22ddaf286dac16c9568b7ccfb1394a1ad5f9a3dde381524b17ddaad790837cefc77c375a38d1163ed3e8ea5d3c5e4ea0e835886750619b73b08bac745cb097ce82d7ff5afc9cf28ee8b19198cd850ae8c55ec6cb8401f087df0dabe50b2631457e46768983373838786da0edd398f79aaa1e644ce8974e9175bd5f019cc6482ccd77ec160c46e04282abcd6b21b9ef70ff466d83285ca1b6b75e40c96fa27fa30857be79bb7d8d347c36d4aa8c68b04033cbc4f352ecf33204a0d8bb06d367d4fd205c8f4c99076db8bd225923c97e1f6fb4883797ee831a2a59b5cc2edffda59c6dc4ba8c77fa2e45718def7aad22efa098dc677644e2e9f0aa7c41ef621bb62d2eb06096bca2ce15147df91adb10a44e07675fa09fdc88bb691ab889f876ee1a9901dfc8a11ff58c75c80cf602d9bae7d5ecfa26a39c21db6b36cb95aac1b35ab93fe7b9919ca5105432e5444684f38d64bf5633aa23dd009a411dd7a8b591bd8943f147273dddb44384676edfb5b83d36a33031c07b763dad12a15900674395eef1f6978002586a776d8bf895a4f54e5ce179f27809d59bd5ff9f691cc6397af55f4ae066ccee8432f147031ee1e1722e83a26c17fde7a09736a09da0bfb212ba8032e2cf48119422a6ef909e0b85af74b08dcbed867503b697849ee78e72655c82bc7bb1b6b36089eab8238b1f94d6ab348d9dff2ccab69a5e2a81b74f1dc9f6afb69aa1f87e1760fdb66a40fe049e850a88892a7c81ecae7d08ae0574fd9c328cc9abd49d0bf354dedb28990fc46a7dff6280b814a7f4561e347273afb9ba856cef5897ae6f90fd810abdb3a6663960e694eaa551b6b1cf564ad50aab802dd5be6a6c184c6bc604a2a45770bf062de28b561b379eabf9b5ad17d0e36dfd19f93b1f0d233fbb98f90c4ac25ddf628f21d7f1d5301c220e110a5ea0dbf0d3078f506a7d61774a59d049cbf6e5ee2422f4b2a11f6cc7574af56791d72eba12d5e08ceb6ce70d7bac0be77903bff5e5b0ea9d121ef599e675398c2b31e3b2e3673e2149b34d3b53411ad5ce548006ac7e33dd9046e9115e79705243dd28b30a04a37e4e6d75f7fd6454446ba690e84fc2ff845c7c50fb9a9ca412fbf1016fa24c2b66ebe0ca97b6280db78bd9913c2138052cb48039e6aa2d05f9331de2c115c6a3edf5b2a9f4e242a0532d1df27ff4bde6248bbd3d7e48e4a9c3201494a544b7f9f378d591ec668e076f38b00cc2587d2374029bb37ff6cc987528fc432cdd270fb6734b3f7c4ff7052e5b800d861cbf2a4b3ec9a036aff12931eb05339723cfbf804c5ae8f21bfe6e1d4d577c70fc203e1a43588d3bf4f762f012c83ee0ab3cf53c9cce06b3700a6182596b24d693ba9977786f2ac072630f5eb4034c40cc8cc885d64094abc1f996b9e60a55b42a7a65052381aec6794df81831d37708befc6a0b6c0729a22fe6cd26bceae01a59daf4ea0f7d675d76c0a014867b5174800e15bbba69f777482dd03bb2f2ad7bd57c847d540aeeb0fc4b1903fb66c8d81b8743fc5ef49751b14123f6606d2d1553236999eea39dce079f6f35b18b92c67368b480109b1e07a210a34c689f2b6093200d9bf9ade2949a8cd45d18d6f1bf77ee544aa75384c9b9a19dd4a236c908a7bffe6f24dd2216936c59dd78a88fc9ff99414954956806775755bc2f385cf75d97fdf45d272fd744ad8d8dd779a5d35f323568daed12b242ad028454b9007bf3970919b4decc74cce53f807312469a51c4e3f8f6351eddc3606309731576a382e235a25b62fe243f1cac8ef88a7a7650849a401383a907a9bda9e6de16470826d9f88e758399fefa71bc302c293d9bbaf9c6fb194dd96175ec382714814578e5180aa9b52a7b28927835984170034dfed8b0c76f0f76bf108c682078b735eea5866648e19a06b906cc2223033368a6d030d86145a7fd505266448dd7ef6f041a3f7b768f408f6d3b65295b3b60c2ed714525c2df3c18205c99769fd2ef91ed77a70d92e7f0c1c0d06aa44bbb7119133a9e152bf71d4cfc507e0e5b25812183ec6c3f62029f1416fa58fd21b3d85f0672e3fb90f9e5018c5785d88d5ef358c4e964b9294b63f96649d8006b3c52396a87223f096d76333a6b9fec0309aa71e129b09534fbd39b0c83e24bdf9bfc077242b452de68d2df3c0edbcc69633bd5472ab776c662aa016839bd0a1e311b13f1a70b1bf59c76dc10637e814da4971aa8b41e8ff27bec968580a1fe495920508ad3db456d19f83b383418495579fc5b6d6fb76191e8a092426a8905bb29095528ef2500d96c1bbafb5b8b40af4abf589cb1b892acd78653f82d342cb704bd907fad44a3c0cefee7dcccd39896f1879af3e07de236ac29c17e5aeb33784779486908bbd54cd7f70dda6b5fc15ba44d67d7aca2f9166797e6519a09680d6be500e52a345454cdb4cfa092aacb884c2449e029063585bff8f38abd5b8b0783ca80e5e0bb92b3500d8db21e96895a2da1ff6022d4afe8c8d033074bcf5b5c201602520986f554f008ca6d23282dfed04295ca697f092feaefe6b30873b73819352d543831bd0c68037cbc34b42b74c719ac3f46880a7cac230f13cae9f5e3e692a401fe7310d693a7c7d57fdca44228209c7635db0ef437cb9783d6c831d2071ec6c4444e3598e7c9d0bf21502a2f04e19bdf7d9c47031645fe66c40c8d09f8b52e58fffa32d20a89ef10de58d653021fdc0ae632060545616dfc86e1403530bf6b35adf44916ab2b1c19ac0e1e06af7ca58f22364134802d6391e7c276b563b4a0d6d929b202da5f53b0e815a6374059ea3f76920a4b66ac04439b53ef479d6662dee26bb68ae1e852f60056b143c31893949271529cf66981822a989be2a8fa234d590bca46acfd4fee2acd83607955927317202a7e42388745aabae093c88fd0c4e29171b55fe61e18bdc07e7150029b05c04091b1fa037dc87525f3b1cdb5ba21c2b899d8903b13cc77e58a69f74c0bedebd9a40322f33f2d1f8fc73b71590f7473890edb9cd9bae667f9245cea9ca30a91efbf41ffaa148823e4d6345b535e23dd47107995ef0a28f506200de89d665b0cc4f5a267c4c2220863e4f84b25b772fe6d395044a5f8ed267e5dbd1b229bc2f13411c1c04f3dd5778bc7e6ff2fe729d3be50fb33cba28bcbc469a3bf762e5f0602a78a736f4057b7e947a53d45424eb031644bb728240434d6bd56edfec3c0bc6daeaee89433e4b476ad63ea7e5a855526051603cc7016f9aae121725408a4b7ae5a59cc9af8a0f47bc7332307780dca020512b8154ca7229afe19036f6d85757822e509679a7a836f8702029c7c37f4a7e33823931e545032b5896b6ab50ae5bfec7e3e4396e768d9f36bdbc1588b70f649099f46dc76e35ec7cc7fbb236d128bc8b3d7a1881650c7c54620c80392f93086fd55143a85251c573579096834d84c450be7352b66937e420c7ac2af69edf06466b88808edbea9d7cafb46bb6ccd9e6c4c2bf10fefed40f4c1f253c3414df06b65de1492db01b8f1729d9f4cf0db6695915a38ebc076e7cd94375a73c1ae2f5c0b83b272a8a0110e01825949f744c4be5a13590d284d56131e78bc644fa1ecf7f4b8662a6703c32f143f40dccd9f1111f36e128ce309c363c79ccc430ba2af498fa49b625be72eee481541b4269a12c509ce7d1fdfc9a44ba4c91d948988215f92c1d4c2ce2cd80c0bd87ccf2a778e3e3e7dad05fcc6a4d49c3a7526b8107ab90c22f0b2ec078d55fc085bb0b2d39d8b35d22eea78dea3ecac1cd6e85667cfc177bc236a9662505322f770e1336ca1634fc7b7bd502c0f7187339085d650aba1bb1ab5c869a8ae158f23d4a9100b6b5e04974aa131ad01b486b140ff56fbd24d4d3d393175cdf917dc5e9f432bfa9068fbaf132deb8c7f8d291f9d3167d04c78818b90a511c623fec0e42088c13f85684aeaa49a43f947a77d57a22ca5335bd8272ede514d2d3d1c8384234e730174074c8aae663d9e92faa909b2bc6b2068ecffe966eac80f8bb6eb098f1ca2f2088c819d05bf7dfbe5ed6b1554025ec159356b7ed90c8091ad84d6027641ea55392d46e513b0f3bcf28dc2e145ce50c62f1026fc0aaa3568654d6f0850d1843905fd6d6348e12a519c07e073a7fff4ed02104cff0a91efd0eb0455d7d4f6025de1ee75dd45a5f2e61abb41e9ad91fe4a709674bf37af38685c666718dbe116de84d3dd1627ba52cad1a0c7ffdc4481e15a389cb52c7566a47ed9695694481fc7b69625061c45501c84b9532a08fea9aa8352b112c04a394ae1fa2e67612f8750a2e3e60287b5fc7c2fe04b3b4163a5cd51e1bbfb2d0e6209e3b48f75064c91b2a68192f641cb6056efa001bdd30d0ab752ac83ea9a47075fa4d7dc144126ed31655faba937259f9e3a0c8adb4e8db38437b32aaebceb18c2cefb63dd7f38f582c93fc9589fcd9e6fc93abfe458771235f03024ee6c3129fa1afd8ce3d122fa06da28616efa39328d86900fe926ec08dce8cc34d1bbc92bc4b949131e2aa4a8701f57edbbfc3185c5a718d750ec439dbf7518e72a0a24c261da33ce6e501b82bb18fe2aec97e8726a986950a22ebf1fc272694329f533b61937f961c980411b96b3a5ffb3266c384b1f7faafabcfc6090e2e5e8ed52ad70c2717da0002bce406c240d33bf06fcd81a1782a8f7a0015e84028b87614e26681dd5d16ea5d8f93206cc2d4054f3db47a6c28c0d2d39905feb6458c0cc1bf1d1bb81acf51985681b2c293a2926fb1d6cc48a5186aeeffbeb44a923132561561e042c43aadd53c876343ae20f4c3d772e8313140d17a69021a3eedee93e10dcfe2086daf38ec72cf541131c275931abb4667e6f124153a0013b691b48383cce0531cc01086e7b1845d72f182037bc9ebafebfb984ed52c6d62392f4ec2f3da41c7920d5127848dff1a509b52d3eaef1a93071a86e0c24e223b34928f96f9e736860367571eb6965b99ba6193f7a47bbceec3beca4e59c9d13777dc3d61f3d5ad280dccdcd3244e9e2b613f8ef341b3146e70b26c8d0b7d9a57b64db7325319d1e1d0661237a9e6d9051cc7fee4abfc12ed218ce3c0bb6b840e099c9bc51e67380f72d82250d2d7f54e64841858a4f34e892d46129a44f32f906cdcf6a76eb310a39c95e0ff634007abd8eba7653ed021c4afe22e2bf1d7413a40fbb04af27fd5f2fc5233dfd21863b2bbdb304d601d16ff06204a7f031f566bc8c44325697a754dc1811631cb35d46471ac2c5748bf27c9553d69022fb98322ad7df9192b6bfc7c22dc3aa2aa1a9f6b06d1c96d044a8e0804cf63d41dfdba7a7b0b36cda0731c01d7019d21049c3de8a607cf84f7a70b0a3da3f774eaf1887421ad8cb0c69c30619e24a3751e52fca0261a849b5b10f9e370b6c4d3a76909887543a418afb5926db8c4935174dbe3977a2ec2ddb94d8c68cf3723b3d7eb1128ae292cd300825ea9697d779734ef977b3da78d2b72540f18d39d0579f56fdfb6e89d63587438fc5e7be1b722c03f16ed2c94db183a290421b5ca58fdece7d06ba3b9f5e157510c13bb670df0302d7f48abb2644997176f81f64094a19d9af85045fa2b670ca58e227b678eb7ce47527a3efea7e66638c1c9d7676c015d4e8ece9359b9bc88da5e5a0f25f11598a2c86d11d17ed057481dd7e1dfd8d873438c313cf69fdcd425603f50ee5232c1f536cc7194e4126ccef0175fe7e04f9efe003a4e4cf3a88e56f28f1c4716663091a1185101d41d7e921b93dfcedfb88ee3df04bffd785268368a40d325aaccff1eecadc6f05b36b8631ff7b57d33f2679f5a94e52a6aeaa83787d6dc3f4cc9fd354fc98bbc4d9a1a2f126c7806870841630dd1fe5ad78ca773a08d1e6618812dbcfd957e2f27daf7654cc0834b2b6baaee871da9f470ff52f9822587f1f6ff4519242221061aff77b40dcd75b32f00226afd7c6b46b696ac6b7b8e893f3c3f3039ab401aff522d1608929db2ed2caa9d1125dd2c1fcdb14af044ed983e0b8d8c5e699eb37be29423e650f8dfc6f35d05af954ab7f68323d56d5797ad0acde32dc5aabc5ab0e8ad42126167690d92bab6e425b63da6406d8c1a4fbac6994f9998143c162265e7eeeb843ac2ff855f3200481b79d3b0ddc6bf5a475a63785d6d89a2606f41465b66e8b1508814f00438a94b32f5ef1bb88c55ef42340b96e0676d855e3490c4fee2db1e3f115e1aaf8e68fac884efd76fd34774fbdac521e226e8768ad50e8658a0b64982b45a07e0d06b81b66e92b81c8f232fb2159f76f9345186fd425d6677bf40dff68fc521907dd28a99b87cfdf9f18a2ddc212b18fcc0319b5e054407fe2d974199812481915f3168a781b76aca64b2b3c3f9fdbe0098c8c769f42bf1dfffa95e3f3e3d3e67ef120d46072df176c1e4fa782b2e750793886b1f37a24372aab9d6462c9cd7026471d9fa932fe7a946ff3fac1cdcc2d8c19825c50cdaf5b101e07271ce0fa619833e347860f1d06811f3214bd1a8eaed7c529722d92aa7e1528aeb69182b6104e6dff5d3dd0bb9eec74750fb6b36367430c5f6a3118bffe079f5feaafbc4b35a54aba230f7f91849879489cca8b052bd2233714cf41da0df58b5d7c2d878e0bc09707563989c51791308eabb8344bdaeb0945da264a0a34dac33c32c4626767d38ed39612eb8b31cc0e489e215a13f027b123fffe5fcae2bcf29383bcb6f141ddf59f77be57418dd85fe6b69757e7c69c78b97ed6db9911ca6272dccc23c40ca12da6abb20dd092c3f40bc9c0d148ce6e8138a7eb48876da9112bfc196374857350f52da04627b0a15275eb8759fa8ebda6f4dc1bbb8a3f1fba02779ea503958298785b2f85912dfba45cb4746e0ea135b9a6ec682c1cbe2cadd03ba1739e35a7b48e321ac79fe9c36bf4133ce9e1687b543e3d83bbded0ecda8ead796ebec6aa34909b28d5e62bd98cf42d4d120775a284eecd6e8eac50ef4365300881ff953f6f7df8c96094ccd354361abafb4cb803a4fc8d4f329ce570c8fcbee98d6da539ab4f487fb5d3d92a9fc5f915f2c441ba31236733582ce50770c7f81efd2d92ed753a450a1a344072a70a07dc25c8d3d6616c793dd9efd3750df0ce8961a07d8659e15032907a5b47629e13ba29ded769c0c0255de4bb17c4e8bae662a7aa11ff8d003b609180f24ff444cab914d71b2f25d5580ccfc9e6eaa68aee71d008a190d1c59c5724c6973b1f3d560974d274050a2d9d3a347ac6443212ed51181c82d4b2499e5a17a284840fbeac62d816d19392ae4d180654fbd48353df51412200505821b4aef5e38a595376f14ad544db2727769002db57f5ab1793f42948fb3c3424216681118746596130cb5a431e8e929c12fc24d39367bdf94a3f9fd17ba43a566782001adae5c5011cffc020bf4eb5871d13321177e14e981e95aca8d4342bd61945a76854b612b4818412bd6471574a78fb6f719150c1f11f9d0b1190db0fc9d9a592ceb66c0bbe0d8b0430b782d75b5f412042e9cf69766c87f55a565983cf5e356fc908ede629721861528838734a2465dafe7573bb579527084612250ee3b0c2b64090a07013f016bd32e8edb9fa9c90559fa80bfd396ddd49440a3de72b3dc0f3e4cb3ab993db32bfb22b1ebc6b7d2be4ec3247b9bdb911ffe79e7d2bf9606c545375f97f10c1e10518cd345e6f0a922d3be9599abbc5fe57d06b2f66c91ada18609d6d4dcb8a176a4fa98b4902a3d433d0e6c07b38236c79628be918243c25cf5e75b4c2864368aa67e5d31d870a28d96f915905fc78adb25e1032fe4c22c964759c959c9c4da2d9d2c4269df806aab9f6af8eceffb2c5220780c160017c76a92ca33dd43a35277259e49278d4ec34bd06e1f689fe36f4c48f956ea7fbd279d580b2688055f35538a708435337f6afeb8b77ef493149f23cdb3cc2213263c1d78d06869cb684c2c6dc34d87daef6f8a291cc2dd717cc59758b8454b1036b3f8d5315bf904c541b09fbe97be8e2bc86aa117ae713adac3a0ff601d4296c637febe2bdb288e8e9e0b1708485e73f8ae5adb451045a541b7dbeac6d6e30a227b9db21dbe3408731937d250a43ba5cad91bb8ea3ff6b599afce4f49d1d6508b0fceb44bd93f8f33353066c6ce00eb4d7ae0676b2e8fea1eb67c810d0d69d2b61207535f9af588262f37a49f52d2ffe0100375d107e900df23047478ffb18b4ca8913fe32fb7ceb43d6c7794c069d3150ff63d4d63b3fb4048410cb5776a926844c0c5c8411584dc1e66a8635b3773334a957fae0301c2785faff934932c361cc6d460e1399880aef69bae4dd45c70b43d43ccec277c6e14d901a628c20db8ec619f6e691c1952d17dbc189617937ec71d7c2fa16ba42572ee2ffb07dcc4c4515c204e79f02c83fe7f4c5e09294db8cfb9c8c88b37b8144789ec5d0e44ce503794b63993b864ff83aa261e7110aa6ce22e3bdc0cc22b0d1a7ac43fbb1d40327fdda4d31afb6325c0aab6e621d6079c4a6adfb1aa9fcf0ac6fe5c19519140d87e2bf8aad7da0f55ad9c09a66d8f4950087cc9a08fe308d5fc988c72572050cc7c8b18f676bf588e53c90dc92f7b22ce4cb9abcd09d0bcd5bf3448db190ada3d36ef8e5f068e60034eb59be2432ef834feae1e780b17d232e69e9e5d26c0bcb45dc7c9087d71ff56527f226c0bd02d8339e4042dabaa69319d4b3cfed06abc2b156eead53233e99ea38e11d3eb66ea1cca6cb4d7a21d31ece46c3156af7d11407761e5ac6123f5269b91598fce34ace3b54bd076cf9370700e59f42d1e5c85d70f4e7f91ab914a6128cc9e709f233ba5b0a5fb2cb442b6674441da46bc0dcf9a5ee9f06e93d573654bb6f6a8d141cc28a7c3d080f781418e0038802ded0222e6599c3bef02e799de9aea4a5dd84e686936e5c5e2e36b8f589287de0457e9205ee8fd78f7c3866a4fbe64bbacae57e79c32e3e9fae50dab549f5800b76590a62b681daf3f08f76a20f60f9a314f63137f21a2a2d30f2923069ca899ddc7dd16fd2a9df303e343b90393a5d9f73d2fc4f8bd54d7b19882c7355790f501f0d12950f19ce7fbce1b7ed77adb09c6fcfb05a3748e304e59c48ff06fdaf688979c62337874d69c24389156a5e23a5f97699dd6eb25582e52ed4dbbd7e924bd37c1a4a2ea3d012aa5551295a235621519647af077e7621023520ed357f0feed8f4b99de6830e13df6bcf87c12b71a9d1520ec33a217ceb5932d47ac0b750f892214d6a287ca6a461e5bdb3c2b20da941f27a83bacc5bade0dc13945e22a7a66b714f9eacfcc9be50b6a73e137bff59a5174f63a07ee50f11e05274a2017fe3fdacc290b3d04de460ba99b201386101fc7a09468da6c749cf8e9397cdc07a66e5ab6b23cc1e408415325ceb2b168cc54232022cd80c035c0f3274946835aa198c9c9a463c1f30b8c7c926276960bd9ce0a8d2757069ca80906a0d2ec5312ffedff12b7be95028c6800330ffe5cc2b952a4050b87b0490afb524cd250e13e45f09755d4660939fdd6c2506e1a31dedc662098833d74dd618c98c056cf94b21e8671c10800deef03e383458a64574cdef52ebf5d377d37042cbd3af561270999492eb7c1c1485b26976e13b2cda2840f2383eea289a9d6a5a94d437fc62bfeac94b79c9108710519e48d8d18bffdc79e15582f76010c7be481f6dd9b1e82130bcdb7c1e9f7f518302651100062e5aef710eccc37a36b987213084a262ae58766d51c547c4e657bbffa0eca743fec0737aafe10c2a4c2984e82fc5274f95f9db8579a643874c4b773c67c93d7843706cc4b5310d126bfeeaf70ea30e6b6d02f36d128fb11f50db9eda43758bbe001c0a0813687e7a144f8934011f961f16c9bf1e5803b0810aa542b79400fd71916fd63b9f2c54273e8b01444539e9ca339f36287a3991bbefea4867d7b430e385955ce3b5aadaf367734f31db681520e948750e6531e2699dd3356012f2cd2553e9ffc2443bb52a26e110097e492d15dadbcd1fd98bbc7560ff577f989555df650ae390b0427b569806b4b58ac0077fd063166c23cb1d81fd01051a819d98b0bac61d1d4fc0da94513ee464d7f79026ef8335ba54f0114e9537e0ce9522652ac8502c7f60cb0d69ec48e43ecf3fbe06d2d8cf929a3f4eb153a6e22990e5b14db9ef288f719bc0481df1ff5464437d144278e35bf50afba1a20857232092c60a1d3aafb998cac6d6de7b2e58fce7b830eb882dbed32d5c0870fe67ae7615dcb3490097686d133b45a14cb02b5943b17f2885d7230663ea4e20a0d767a1dcbf8ce58f188a0dbb848b1d05faecabc1a984e93c34e77d1bb60f885796997a20106613f37ac799fe3515b39affd451190dc06a861907099ebdcdde7286fb03f66e35071e12a7a94396a0fa3e00f7080156841eb920329a91d95a90fe1c33aa3ef58fda9b5e86a39cac4d51377a60f9be832235357218032480e0dcc4a64b2616eb9dbba17db038feb8a67c4936901195b79462d9aa736250c035964dc42f9736586a00a384f049b068570a608825a54b3f4f097c88314b9c97c230e94607eb472860a12925723e67360ebda3a73bcc99c1f5706b809c0ebc44abb7882521865471096dfbafad7fd6724c937d55eb49c28688cc0dcb065f95989d04125fea5a9308c94947ffd91f0efa7d4c94a1c5b115e711a63d0d13ce6412b3e8091965708306ee2e653627dd7fd1a4b4c29ceee145bc69b5c281e4bfae6b6ac3b6e24f9f0a32abc9e10f8534885f4f2b53bdfc9b204a120719ccc853fc9a9daf1be22b72f80e7001b029211e3a7d792aa7c91ee9e47a696387db39405f333b3117efa9c7b16ec87cd46c398c7f1418a05d98859ade8b9e69d7acb085e7d3d008007677cea6e110cbb7d377719a614f654c2fb705ae54bfe60bad4cca324e87018530d047a30b596fec40202841b4b3b5c9173314364c183953e18f4edecfee123ffcf8a8a19f141440883f3b428700a92b8462ca935db87229c7fd09cd60552e42aaa7c5f0819a04e9fac8ddaa0a4eea0c63607f4e33b2044017d66d4a2dbae0e211b65a093c114723cdc042be04843e638dcef2d546f790a8c7deafba71fb74bd26c4adb32d1f1192b88a061689bfbf71dca6083f61599d8f0dff03db6cd7db61f5f6cfef65d3942de6a90388ddeff188893a9c78615bbe670a95e080cc2ba61f50180ded2597bfece00eef230d703c4cf1ce6ef5cf1eebf2073f6905a17f7d034c831b3734f64f2aa73c3d490b6a22aa6e274964dac5cc37e49924cda90d07c6f1d0e9aa9b138d8d24c3aa721c13cadf720877a1ad662a55978b8776f8203527108f012607fa6fe288945387c448b639e0319fd72a691ed067d3e90dee8a6319ba4bc80263e0dc52fe833d859ae1f97e44a7ba684476176e9981ada10a40a700d7c81ab488d9a23789098dca0d60a48d70d9b9d1bb263f147be59dd6805f455a20c034077d35f226063e11e81ceb9a768845f3253bd9c6173d16ce32624899eb801684f00c9d35e219ac37aa0c6ad9d6203c956d6439d9d3d78a57cdda917fccdecf4cc97e0088b2f86605257de14432994f720b080f8d2bff1c7faf5080894e986bb0fb0d03fede68ea50bfded71674dd2e249ac05adfe70b00cf6444fba7dd6c4b75462bf63df8ac6f38e449e710eeff857b047ed24768cb0c9c9ae06be442e48143ce7d26b4d94b08cc7a85ec3ecef49c6d8302a8361c8c44014dcd5d26a33f7364a9f28943950139b29e90c4deef5387d6558160e3a5c53bd38fed263e47bc5c567ab74de39ceeeef29965f58b03d0443a391a3a952573d41dfa3babb9b6bf70a5f15cc50f71ef3b4bfad6569083da595ffc2cf7d4b47ea7d719d7c04ea7e6aff62885bf7b0e20f67e847ad457915437b8ba63e189e2eb2bba0f1d0402365acc884990cc4b627f7642653e353c0d690827e1a1b9216cb1f9fdde1c6d20aebeaa73da05b05ee98ad3efe60fee34c91c176b201a285532cc570e0fe7fce58b5062ee91ee05353fc81bc79824620bd38fc5525b4f8e8489a9ca9244d894c39cb520848bb498471010645a434cc5f6c56794c78ff3036becb2f0b6879842bcef0cae0ffc6d361ea5fe2e2105d2053e38bb4d173b79ca2cf6cff772f1d1335acd1ca9b165871b3f545a0ac52565f0c60e55b887fd6d2896bf5e415411336665cfb8fb479f13354da16c2b9840ce13357fce62c2a2e089bd6cf680128dc922fd9a7109977bbaef57779c521c22920d3ede9ffb1a7a79dc928cf46feb41251de1558f1ac464c5879beb6e8baae52aaff7e0928a54b14067cccf59a1e77f08102743ea30a7c002dac3568cd6fed722b58178b4219118e65f6018c704f4ae243944e79f53097e313967476520ca819e6b5fcd5ee9f17688c885c86ad16c62c14cd721da38a7728c87caa673f530ce62aad24bbdc4d1faf2f99443c9493cca000279e10a824df31493019fe9a07ca03a177b87784610f3a8142756e5500fe5fabb708b466f7f72a13359626c75597b771ab9887ece6714a89d67e9d6c8843b15229d85ee8ddcd2fa2e60a37bcb1adfba8b2d547679ef4bce34b43b0c04447e54ee8aba8c2b5cf0502bbf37cfdd0492c5d4e3869727fe9c9c2457beac293f84ab8b712846b2952646c66e31b21e02bc46f91ba32226cc6555924323306d10a3427c4112906560fcd37bc003c05751929f9a60a94c20ca7d10e4d49ab08a57409c077a0cff2d4a0f498d083880c085c88b1680a089856c8ab1ea4f19329c3f16ffdc62d3aabb008bbf80c39fefbef41c3e8415247eaf30c508503348505f1817cea691910b67328b4e09e050a54f5996bdf1baccac29e79b85c556cf4b29fe5f8be793608bbcf4b40c0e75cf73e9339d09218961d0983ba8d0adaca0a993426b80f374fe301529b340c5ac7ae6ee57b194eb1c300e7e79cd7e10cd0cbda5c0efb0451a136e639a9137b7e65c48313bb7592669a5c9eb3913d1a8cd78b906bade448e25a060acde9d55fb266d6d7c3dc55288fb6033bd830d73e638ab649d0d6fe9f7c213051743342658e913bc5c0c1b96bfc6445ca5ab28c761969e590289fce5d088da5ef8344d62bcbbf01c684d38c251a28500272770748ef48466c4ce57827f1ac7614d03b3f8ce75d3c04d3811284e83864832c7f32bbc9cd5114fbc576b6157eacfb161c6280caeea235dbbc6204afffd51c2af24afa62f5d15a7a245a8d3478f370d850f4f418877fdca877f65e8f9ce0bf369980d47a8f387c9029a2d01b02160d6a23a405fe51ed47c72d44c92f60480a016226c4ebbf4555bdbd9fb5b6f946b8f645d165b20b67ed145a6c1e8c54cd92b9df725abb7dfe367d126a392f2e3c3b9f4ad5f72586a5f5b901f6c09db06d6123c8d0327714f3d2ac19e311bfe418e9202adcd4cc27ce1617259b47f265783d8174bfcf71a3d5f9da0acc0a775628ac3ec14c47b768f1154b50254779946fbbd6644303bd9f602672e0e940382f68ffa750c179ca56d9899e0f5acbc915bb3427b9e6c4114f8d0e29da39ed5610e39e40fa8fdc251528b9be73f750e0f22a13b8b949972f4f1ab516fc35b2e20ddbf87a48e3837f58c6ad3191c052dee8491adf4e43df9f0e62b51b8c299d5c30c4a9eea6620088e9a1d7d6039abba4ed7f98908691ce334f81c30f95954db7f50e8d73e36a743427bcd89866b6cf3aa404aab4141ac405accd9a4767a5f4d9ccc22cd1b5d6e723838854aedad25ed3eaa1f745ceba43410e9cd49415b31e839be8998133571c33029bdce8858351ea4e469b5f2daae776365761d6f5db785439c5f71d595c64b8bea6549a1090e364906714abd067edcb38e69d8d24a50405f4e343ca878d3ecf65cc678a28601dd729357612f93c40e7fb623fb100b06b330cf1245d02d2b791b838e94efe775e11c39a39360e4d2318ba208f24ac7e65163664ca0f72e9d51b0d133a1bc8040be1bd125de91936ddd48502b1ce8f48615519fb263963948cbbcebb0ec43e79ae7fa848bce14941075ac121ee4ad5dee5a7d40310f7c44cffbdf85a2d461d3a2584cc8bc9dd6f2362e5a4c43d90eca0597676770baf6a8e11e19dbeff97a75a9f49a41113bc824d52c1baa486bb0981249b85e4d6ff8eaf878e628912ef22698ea85d083e641bcd65186385525da1185e8f7829f1134b493aac02b1dbeb554bd08d5c7961ecf9bc8552521aee48f0cc79c23dffb04421301efbc94c624f0e2ba974b5fbea187f45b58f0f3e2fe87503a398b453b2a475fc22b519b4a1f79e725e08b4367730312d80ae76785b847466bb8f3174a4570f232a58e8ecc1e05ad9843a583448203bf97a2e36d5e8c973392d57fe07c3949a9d9852406a7fd21c8053ebd3834319ea9d7629540a130abdbd033bd7da83d027234594bf1a5c32c11d8ed90b2ca22030bf4990a5ee7e62e2a6fb1e6c7743d1aaf0c4dc15c7732ca93bd8ef1c6ebc8a248151d257406600359f7d6ae291fa617c2159fe88c00d063a82832dd4579bf980e80b1968bb052a4cdcb4b2524246edd797fe3272df45f65d152b5936263a4422cb6d4b2d80479684c333a4490f4d8a5d75620fc2d16652ff00ae63f877a19e8b50d61ecdc9e3df7b9ed8a947c84aec9223bd9577b9cf3492b55ae2045046766302c295c4f4718e945fe4124030cd345decd568291b7f0689945d4ffbe756b9f36c9f6e61d52345767675061e78ebdf8b22b125801c9d7cdf8cc4cfad52dfaaa94f672f485e25248db4d8663c8902e14cdaaa78ba129fac91c7a916a2eeeff8985ddaacf096da4e884162e3ec1fc08db43100992961ded21f64579d94a82f85f58d862625e275d6d99fc0dbf3b586243b290974b3a7bc480f4576d0f30d84339bfcf5528794a0fd38c1fb63083d74923e0ca5f75141aff06aec9902602fb91d885aa9010adb2fe7212b92ac58a9959c7c699b999012cc0f3e68bbec325353be5eeebf4a75f11f47512b664e054c11b7999bf36f13a8b1251a4f7545f477f4ffe3246f9ee3a84f9a4c1c6d7ea2fd51a49ee184ec0ea5e4d495cc1280e5a6ffa181b1ab68443eb6bedab952f9b9187d6d77074194cd81fc56c7bdc3147616640ec63ea667dd800d838685828b4544bd64749efbd82b9a3949cddd87cbd01cba8fe5aefd45c4482aea1e3b4976380e2ca9c8c5af921b8c5ed74a02a3634bf21bd234ecc883653d7d6b36550097f65564130d83867323e6e66be167ac99f84364bcac49da3b00ec756fa5a17521d8860789beaa1f38dc25f515bc0e8bfe1996bcfa6c73dedc282ec2a305e600f3aba2bf74bc58df43740692c60827f149a376a50636ef388045e0a3883794f9ff2e1c8887caf841cf2b1f1760768d28d3c37fe213f12cc02213e8d6c5dd8e7e21978147f711df78ccd9d1de53bc5742a3562af40c2527bba5218bc16adffdc1950ff703269d70d12c678993331271fb236f7009b58293c2285315e93ae7324bd931813cfcdddba83f5148b82cb646e8c6d53f931859a367ff61cfe48ce49de01b8f1f31482761ee792b8744de6884b92082bce3b02154c23f5545490f8bd10b782db72323312b761319636d59eee0abdc25538302f44f49a911dd45fcd197694004cddbb499b79e8d551cf66791fa749ca19b25090f5e956dc7bceee17216382a8010f7ac5fcf0a65ace4a1639f433f518c0b68775563f2367f016d2a6e03d5d803b6d070660f72e601fea003e7fe86dab178c4abcdf2dfa294458ffc86e91d5260a1094cf600ca5cc9281386404ceabf8e6b613f206ee348377774e2c37ce42f6060fbe83dc249958e62f98402453eabd741aa3e1cb64d50ebfe4ae1f0fee8f641f59ff5c93e0a046df430978b287be0f120d96e336bd68907365e521bb40cd83171b8200ff844aa97d15197bb98515177b8dc7efcbd2efc372decda1867ae44d75e3c8ae85d733dd3458a0b78e67a12b9d443a5b1cfedd4fcc27d55fefd622bcbfc5b590fb7d0f4faf3d1b22b6e16e938c118f8b0a278b9270abb5ca81e7c6619489f69a49900d17a240ead4204a65e2c7bd6befb9ac7856200f66c34e30ee2c3d6ebe7acf3db27d463010dac717b4afeb3e119b88e2ba1a794e53e889e6c433c827b478ea3a6bc1f7120e46000a907cea32f9eb1667433c6fd4a13c8b03f68ede10d2e97a02fb3827ca601d617c79eeeab04efd44e1bafe4607b24e16bbee7b395ded577b39d3abdb582af8ce9200364c9f4f2b4765257f7c707580208a6dc5f602aebc2beeae2a12af9b0822d1a236cd78ffc06621ca34b68fd971da8efa235124d1a71974f2e93f510a8beeedff3f4a1632225c9cca0ff3878f06b6e71e06e43c25a5e6d22160ebc29d0c967b6d01fc83d0d8f0995c789d981abe5a0dd23b6de9282cbc3e9e81e7d52ad31ef757ec36ed7b66626fef62ec8762accddd1a1ae7bf9d4dcf9a51de5af3be905f408e4eac254eef05872be8be86b292160e81b6b89470e1863937619b2de175c0afd10554c42fb183138690f5a4e6e2d54fdc9f54855e6ecefe61384863487ce07797bf40ffa62ea4581b57e9eb7a2fb3b1a32c9970622286647e583e3958ef92f2a776f829aa71a766e8f6f10b03cd963b937588aae138029053f88919e0bfd70fac6a04af9d27eb82ba3cfa9d9e7db66534f86d65bd90c9452369819aedb01b0a1d317d43bc3907c851b5d1abdd558c368af2b0e58bfc8defecdcec35f2aac25648195b1ff79ed9a996c2b2e33b96b7f798c95a963ec159a75ebd6e5935eacca8fd791cf3c22d8d5859c238424f673dd9ce904e278e436b604827381e44833d48aacb6764b1cb7e93516809419bc9320ab4b2d5c1f7ed41bab60f9329ff774408551631eb822952db3b45107555733612ba9b8a29a9d7bd4f194d36f9e3d2b731fc9290fcf859fc3975ff95a72017d717745c2707d681ac39163fe149c8a12e2976c51d5098fa7598743b2dac2dfe1d1c7c15ccc6bab87ece76d8c45d72c6dd151035483c858a479cf6b05e5e2aa91b5199309f115dbf94f7ab9239927757f20c73861c400ca306a9144538241b005172138440ab6708c4f0ff57b9ad77f1226370ddabeccf0099f1757504b947b79dcb8fef8bd9a61c0a81985e495e095f49ca455d7c603aa90b93864829f717b6a0c83e406878818fbfc7a97bdb7613374a0f49fa1e0465f4d19eadac62b8b611d12ab22c3dffba602eadebcfe7a6cc1e9b840d838132ba869fc638bccc042d41812fc40773c96db84b2304caf6780fa2bf8addcce8a6bc63230796196799344a74ebd20dfd53f8a8f76ed226f2150c218265bc54a8b4d489b5104e3fd318960589c064cab43c89919fc542beec5a9f211fd3706c632a097b99d8c292c4dc0a77fe67efa01e70f5a7807bb6f739b9c407a76d7b8120c02df4752841023cca71cb3c3b6a8f824043dea437b68560f36e63d278f4c2e71567a239ec25b35b47fea4f1a91d31e71f84b0fbc51a08704702e48ac7593d3bd941ace211bac8ac54d1df2d46b65f327269a69e219c106722a5a0a2712a3eb515be0f0ff34329e814236ffa6faa66b395d84e329369968514a96fac9ce471564f0f3d37d0332c081487c1ee1051270a32fc5472e22b059dd57e4107580da22a49a8ce3338293941db865b9557f385ebc2144c66cf18e142036e84a62951f9bad7bec34ce96ef9261695d804d9f0e864da90d758cbcf7edd1cd8629e2bc77384a5691fc5c3ac284559e72e68bfb4aab7d0511ca363fe5c887c52231281a126a84eabd14354cad0c937f38a163ca3b878b3918238028529e31a10d6c275400d289d18a7b60b0011b2c25372edbc3644758b4ed3fe0df75ffe8e274e87e1405c85d03e1d39e9b167be165d54ae152750bc26ecac2bac05a8b0f07ac3476c7b5d55b701be2f52e5147a9e68f7a9108ab68ce8af6b6770e7078bd7535e709af10398a589013d2c4206e8524a784888380e5a4bdfd052c23000f80c35519089bf866bc4aeef2b6919e33aa722bf4483d9d81590ef800d29a412f68db4de83cd81f8285f52bb47f7af1aff4267398afef562b87b32edb117d10c968ec91f5ae28cce9fa33c5ac2f42114eb16e94047884b949ba19d42e9aa73a62053474e4ebd685a9460023d75271064eb285710fd1c0f632ab5c9d7508fbb0945000c4e0643634050a365751ee984e43b6494354011f53b448bdca91610cdd8d3a83d214db2262f38f4ec8de00d39e961e6453b21b88218e92de93461a5dd18e2f512833dc50659ecf80046293a2d801f683c4cdc3df23f743d3fbbbaf5b086d06a5f7f14e81ebe43eefb6695995a7144762dc8a0294b2164e46c8fdcfaeec133fc300870fea00d874cda4a0e148e8b4c28a40972aa361872248b67b128d73ff90162f339c65fb419ca7ab5a56b5ab96b622fce1ccc975dccd8a0e8b4023a8c2c9dfaeb5d13bd61ab635f50ccedf63c85328f21bbdca601ae2166ae42d4b2581fb929cd4b7957210ac64f8d12b56892945e4943e2603a83831c3cf2221152176fb3bb8d75deee007337f6ae68f16d3ec95875803afbc0ca357f95146cce5db6f3084b80dc71250957da0f62f58c4ec19e82f5c6baeef89bd1691fb33d52afb4eb133f245e7827e86beda6cb1b04c710cfbcb31387067bf597fcc2932eee79587b3470a56af4593567bbb1d16b45cd2f4819a8271897aae41ecbe686f7e9e7fa549f85199298213baae17422c1c4bbf554a3d8be23cc940b1cca88679da51acc571473d6aa66f4217bb49a26682579087b29a0f99efb3edd93e12dac60caa5e1974f31daaf86e99092d4b2b59306135347007746aad7bf75e7aaea52d2e772f6691e6ed40c25e2ede4d54c340807729dea6721e6cbd3e25d90a521c6a4e17e486017e7d93d07cce1986eb7a79cde5f6574e8e1f7a46439356da85c69dec8077e74142cb1289664cef8f8e2a06f59ce946e92d69b403422fd70b81f2cbfff3af0bb4eaa3ac650a00cd795fa80d661ca8a98b5584fb08a3bacfa593665c8f9319068cc6ea58819cbfd0787f0458c23c8d4e31b3ce7897deb8a80c4cc59bdb6944030fe5138f34e0a84b8b01a6d60e7ec758647cc4150274843d4de1f13a1699b2bf21976acdc158ea45eb9eb51874bb74c033eac002a228e16037ac4acbaabaf90c2724b81312335cf85097fed58e662bd279cdec32db80c65548b9be4717af38502eccbf6881fa20530567516650aca4ac72f5c7db30a5c95565bd9a8b546029037271ce53bb6ab679c43c7f4a6f2585c2a262d7fa6925820d66f768d6ce38c43526834d63a7f0d640705938a467f4935d0d8087cdc54b811c6fc8664dee50a1059703e2a765ac4cb392c372b80b730a17bbdc3e5740f2f7981c0de2782f95012b97c321365b065f91b0f88172a4d10860901ff3dfe60bf38a7c8147c2cb66b06f3e2d52a94e29d4cb6b86b3dea149a6fc732f4f713c542b6dd9b9cafcf178bc2ff837f59c94f3970a76b517b1dbc58583c5c99e5baed6c0b3547a57da8eec5cdde15f22314c31fa2653b018bf612252e0230141b21840df405177eb74a5ec357f79baca8cab311eb0ebcfa582dc6507d3835e58cb5a2c34edadc88ec7374d962e9c8210585c09a669eff7039a7d96786f969eccc2fbe15406d099e032bfee3597d4b5cb40e813dcc9072dc748800c149c7f4577f6de2dadcd7de094f934e8727df99c2e7735869d79dace14f139648296dc82818a085155f588244fc6aab909351c5a3e31132411d9db1f11a1ba715e6c1a208fe67132392749a2fd237309cb28c7d57c27d66ac57bf1044685fdd7ee821c734f35ee464f80e6513701daaddf548ca5b21705c329a6e426e470a9257c0f338f72e51ee13911749d26346d05c2cce3c54042158b76d4a4dffa57619998a0612ece2978db915edacf39f4d4df31335a41c3ed360d00345a9d26d5a4ef7093f50cb37a55ce45e09186295d3c790e450f1f17e031b2a02848a5c0a840dc079d6cb110121e44ed832db0e4f0494a304f843207ea51035fc87f604e324f111045abda0a6f799dab28b5e19810a8ae12b2baa6fc5a634db45e629cc9f8c8f5f266830e11d793974224d00c5d861da45b64a25e1188bff6e0e8f3685e27a56d74b18a025ece72a640bfbfe0fbfe3524166ed884cb4a69da8b9afd7e660a8a554e2941d901a15995cbb72960fa877adac16fb5e49a7f393a82590058bd950d9410a5876d3fde3d1f64bab2753e173a393117ace6e9881b1ace40f76103dd85e28c51662612da4b7123ef6891a805e22e8dadf74935ca5916811feaf8099e69af172d230d272a7bc95f6efe988a8de6fdbb8a9af5262dfa0682f74f106db440bcf18ca81f712a33a359c3d3b425503bf9d69cac7a21a02a02647f41b652a2245940973b19c679ff238f6fd2c33fd15b2751e4f9210392bd8fcda27bda630ed15f14c8822b9e7b54ba9767178070f9e30deff8f09e287bb61f3fff310355424450226fdc6126d66320f6936d9efd93b827b682e1c1e051e6151868b1d9c0adef30f83005a952f5003523509872fcd1bfc788be8ac3931398fc9163d2b8a9607814b0830eb58188955c30ef6de2f6c5296a3900fa03da424db009ac3ba7b29207675833a53f9202265cc434c2b180e948b67e2cb9569f638a9656b17467031d2b658de0a758fe1a66e0e1d720710198fab2573c4d36397eb3312015c887d6fe455e097d0dc3ae4add22db06589976929fef1dbe047907a2f8a31a2df69be3d890a443d21b98bd531b5f12e1d29d187ca4a3b9531661d05f52f3d286b70a3372aa4c90fbedaa4cb7fc09abfdc3ff9c5d9a062a320f228a4a8e203c5d0f196c35b81e95e74a66e93efffc1be21fac4623df62daa29135ad7c6b637e256e1d59af165b52dacb1eb572a607a78d672e151cd6a40a8363197c13c71da205a40431129a3470eb5213ae22f09816ef42822a7db068e8c6cc50e6b0d8579057a39230b55e22fc87d19502e3d872c66beb8deedfc5c8d3f045c3cdf87ed78a2b13093192296b43ec5e164d8af099e85c668f8ebc7c6eb19c76d27e139c24aec1b11d35c7588c02af9e0af5b3fef22b8d8f0636f7c2a719f683c11c30820c4813876a5815645eb33677ebb53eb74066bff3e5c5511683aa40af479dff6f76cd49e7c12864ed185e3f18c37acc7e73a7267b14def51c34c1504468af351d9b02424510343d6198f358510552463f7d28ece389c4edcd426510d8e9920c57f17812d5b5804e2787e16438ac3a574c1bdcad0c9014aa29473efdd60677c0ac61de7efe81b9ea624c431c20d3f0ed574804fa0ef32780823303a9633170132c93b9829fba118643e2cc8bde49adbc764813d6292adb27556ff03a850476c92d6317cb1ed9483de5f54e9163da00ba34814b3c7cc3a43bb14478e8a5bc232d32da5d3e4ee7c04dc1f27d629f3a91a4b98f05978f9cf7bd31628f8261d1268bcd2ff16f1da64d98aedb7704b9e48278fd4e4047b2b18e918573adeaa38a60b4a4af972b1ce83d2472135fd4944fc8f90cc02223228e90fe8712d89417abc07d799191eeccc9239bdf764202ab41642f5e0664f206a76f31e992d40ce489c83f47162a6dc7b10bcc896a75102e38eae434ea21f13c2b0cba666aeb6dbc3577596f7c1f0eab42252803be6c57811c2d2717938a50ef11e30c94377eea3d7b18aaf59c9f6be1a85c46ae862f81ffc119cd516ce2b40272050133a90f489ee81117cd43bfd330ee055f1e546d1011e62feb8c65dbb74f6c2a551cc84262aa28520b349542c91e3d87d2076055d692ace95d7001e764ad326d26b865c5a4144f78f220124583223ee2a2c09b5c7b8cd2a64358e428bbcbf52f7b06b10f9113f021bdbe0dd06ca7f817f350bd3afb36115e7f19d5f333dec32bba3734613e501d1061f9a5b6a2dfe1a59013ae8825536b6c38d661473316a2ec2fd5bc69d424a2fc571a911e786603c668e6fc941dd05e5759e29a9897ed6ad88c79f09a112b190a1e7552f5f6b263af0deb3535dac1343c12b8954c31413b6663199035c81ab5b2b523a831545a1acf33d74195a9a7e9f356fca9af463b785baedbabc35cf8d6fa21d343298322bad537d52e48a80268a85c939ae00d0eb8ba488249d74993cb75ed9f2073a4e4fa7f96f404284c3c0fb51fc51c1b347e179072623f939c544a5ca50208c78e3fcd34712a88e4dbdcc031de716f095a3dc6ed4fed45ba765d8f8d5acc170b4c1a42ee10e2097bf311ee749c56f4489614d43a67c881be8cf52ad521335b489df6ef655b1dac3301855f2ea161fd19efde886d28760892aa49e03894eec88f7313c0286325b82acb81b179f7164047e153d1e9608e21c72b7a2d634f6438f1745f4d09d7caeadee76cbe6ced04a1addea18a83c58646e583f9567874e41f867c3b3f638f36d8b7418a713398484971cbd8b6936d0b23b6b63a10c528f62d3a190d4ac5054ac9f99913bcbf4d2238d97f24e42656e717b4deaf1bbf13b40f6c0ea1bfe2d78fb426029fa671299ac2fe47d7500adf7c02b2a8187cc1e438f6b8d05dd92047bc345e65d5b8e08934b3fa654496e44dce4a4ad72011c7cb1bad450c4626afbbbd9ee8fc78311d92b6fbfd8c6ae49547167aa1c04eb927fdfc53a01fcbc6dd3d5d99bbd7bbc854aafa2ad0666e18d35bf0db8ecd41530534220de69c6f604ffb6ed8705ae6f6c3fdd418820ee5374e7711ec4bfa4038a72c233330ca39f3b7c892ddd9bd4df941f9077abf96ee1ac6709092615b190a7c27a6e76c24f6fa149a84e0158b9a0f83d2484e0e83204f067ebe70a8944ceeda6a2c0dafd74986ae0afd40d1235fab61ff535a774c407d37be8fc0d75f8f90e6beeefdb147952dbcd72124203bfe8b1cbb112087decddbdfaf93884c0a988625f0c991c58aa6133c63861f3858e1007d85ca06531b5e789ab67d2669f63cef7c513b4597eb3b5a6534bc132756ffcb45a06ba53256c561db9a3d722b19e3663b366d93556956b42274739887e6b25e2094db6029d811fd0d08a8fb5d7d3cabcb7953d57a355c002d722b9c1d0be16a7bab5ed0905f560ffa10af2417bf568877f6d73725370b14b11f7319389c6f0273750b9a709a4446a3a62a1a0f91f9e85c0f179b418a3b24e792b903afc60bbfe7444fb914ae9749c62231edb33855245829ac6cf7fc7172a585aecd568740ac5fb08261dfb44e9fadc0ff4ec90e01e32f2d0ecfb38f422ac3d5322bcd34dded28158eee0738b7ec572173b1cf014a35c008fc9feafb82981305d9f094f4ab5c7b109e95f4bb475ed0c80fce6412d1b43b2bf92f24294d26ddbcf532914278930306e8c720334a40299e9ad54dd879cbda0bdabc36b9d1c1f2424006126e6526579d7e790e865612c06f41cae1faa8797aa260019b7dfa9e01070384cf1d95fe4e4136be94129d9f516b53c618b9d235bdece86ba3fcdc79381ddcf361c51d142aa0996efa2801e6eba689319b6359bf396b25cefdf0fcc428b90d3d00325100a82feec6af8c03d6fa98df26cae1bbfe24a4eb974fc85e6da5b65e019004532200a2483226f77c35849dfb8ce02a144dada010efec276a1e6e118b035d2eff4fb777b1b33995282f267527a3facde5bcee6c5536a3639c2fa96e44bb1f79204ddb6c599fdb88fe5893c5d804086c3c3e019963d54f070ba68991c23855fff6821805de9532635e3b1695c9656a3b1ab822bcd9538451b6f301e6e3b94cb00eb273089ef32faf09a31dd1a0884985367168ef6719c9b4ab5e0ffbdd92b9d065982e001e26af69ee47f2c82a3273270c62b44efc642858f839fd007e4c0a77e3c583bd7c998f82c1927db0211bf413384ae47cff4c8b956b5afa4ef91940101e1973d1f72fde5e698b7820862275cf27a3511ba1da1a7c29717edd4d0884da719ecd1580750f56383a71938742cef417cac2573492474e0d3648cc3289416a67cb0c225e018036f705d4ecfc092faf62fbde5c9cfa5102dc8b30dd983b20276a5046d9e6b7ecbfbfd88ded6c9cb2421ef90fdbc8f52ec34608aaf6ba13d1cdcefabadc3fde5826a715ebbea67a33840b777d8a42fc6a70bd8987a1be4445eb296114123432e49338a90e6dea95b95dd4a577a1c78d3f1b11c58f8ce48d8f65f6536227187867a3bfbebb68a16feb4c9a77375df868668be6f4760a49cd62f28b4c4e09bf304ae762e43304a74781e1d4775480135c56baf814139134fada9e6554c86c7e69e8630ea89afa209bd7428050b1cfc2c07d562b53023afce8ff4ab81ea64743d80b0f2ef7a6e4e77564aa9b56e993f7f4be446da08644727a3b27594e4a55b6b56f5a38cb69c57f5801e6f7b77a19d762eb196b8b0c92e618cf3ff4216f95700703a208ed987ea0b4b1d655240232b7e9399f11cfae28b7a42eec92009dcb3f4ca1bd09d91b5a4e42ccf2d40bdeb32ababd57e03e0bb17032095f72a0aafc7abc4573300e908382af33c2b1cc78f61df7b2f10bfbe8fc7e3cb21a2ac2e1f666905101c651198a636c9965546a4a5803ae0ed57016837a6d2a907622ba08c6aafe599702b219e30d969b0bafa75bb90ff81f9d5518c6c2b74f2f1e5b429e3fd4e416db77515c66ec41ed7bec9eb5ff86563899fd03720e2ac49a92814e0a7aec4b77654b45d5d0a0ab9e8e6e30b293189c41490bd0ddbbd1b7a6a657dc63501c3b9541411058407c0709b21ce392e24bf5dfe7b2770ccd7d24ea006afab0e2608a3e7096848dba87fbd76802101dddfce13edbbc0fdf68cffe3f9d167f331250a70c66ab1601a71c0129c53d733b79e831f04458897258da48ca4ce3296a07ed7d918d7eea54530d31bff53d7cce3049565476bd0c238a55a89b312429ebad8cf7f3c1f6258b6e5d3cd8b451f7e57f839adb76a01542915b625e44f23d2233cac172d3fd51da8c8a9345d385ea9766e215108073bb4722bbde89d071f8498b8b4fa8066bd4b1a564fe0ab9d3bf89eb6368c08279cf2a98d714faf468c6aced15461795bdcc6a957626eadf9f160a979594d39ea8ba96711984062526ce575432c87a2ba7dda09dfed5f05388d64af7808846ac5c45e9ceee9988aab6cfeeff6151926966ad55e076ed5536835de41ca82794b5d9b23df75ba79b1f6d863df22213a563f126d1e7ad51af3e4de34b1c12e850799eda4dd51bc842f3b74478724406c523f0c5a71e6f54d135286c508f675413ea86299d77505d8be947c4da8d4b22ee2587776f54bb597677e9e402121f05dbafbeb4348ec3fd349b86647990e76c7adaf1d9723f91bb23785842a7c7b9e207a283c832f0b6fd61f25c51a68e76d30725ede421f6452e9f3cddbd6dd30fc39b52b89c931845f055af494c41e09900d9e1f14416756d27aedd7e89bcdfacb3f0824619e4a451c4d1e6c711a6a0da9fee583ff3401c5309c7093295c3983c8346a851d402d6095f2f7e0595b22c5ec192cdb5d43d310215d282773fed2f075c8a6f39b4ae14f5d5f8b2e98b8ba9aa4fd4f48069d959de64169c4a0b80da7d8183356cdf656995aa59926b055b7e7bc97c7592d78b23cc71f5c25fb56e51d782208e09e4020198a97283380442d5a5b15e6cecd90b7de9e425f1b242e552bc74f8bf544199b1954f4bbbaa571b1d0d6777ecbb5e233dd6b7b43a66e29a1d04043444f7bc4d6c63d5d5c60f2d7b8aa756437743de9e998ce53145f0bc51f88073fa4a132e4acff2453d043f138c9392b9cf8795b487afc92d14c99a0a37acdcd62e3526a87796c23f7f28806a0774375189091f08d9fe05ad8d15510b0706851cc21cbb2f5d24df4325bac17a8caa7fd383dd010786ebfd4ac18bbeb9f157a8b81e48ed625c0073b4cb961faa067919f9f9573f85f73eca41871fbd533ef541033bb9babf8852e7e4066bb98da869cc5f12c1b2451ea2883fb5dc131295b8369bafa12672816a94dd203dd9ce3ec5ddb289d7db77d62894e42c5f85a9a77d8160c7e62bd4083a02b51ce4691e431b85cbbe497934a0c44da0c95a2e6faaa76fd7dea47f0990d7b8a0668bbdb024bf70bbc13cf302a0cf742ea512343ab199ed0691a9236190fba01f9a31a4fbb0475af372c995b171830f3710e2c25c8c3de32320f8c8665786f4dfd12bd2b06410abf7737d9b0a9782e3d20ab65c4e3380a09b404602ceddf9be4207a0962eb2b83055a7d8073033507ef6fe9177e123d3594fed8046a15cf9ed9e210ce2e0f7a2e1c741ce51a852d4cd05fd076c1e5eacb4123443c35e97d2f1a577be9c4cf675b1c5fa49de6537db4812c1c3b31dce0364bff963ffec3cf1ed8baf594dbf129d75dfbea44a53ff95a7855503787b06d5d46f8d654d91546979d51c570fdd98c9d9a96231872e83162c3b3e17703e27a5eab282040e52676fefecf481d9867a6b642039b5c1bc7ad67a49b5e50f4caef6cbcab2afc26ef9de4fe1f57814d3c23b8bb41ce71fa1ca3203ffa86806c4b7d2be487509f0d7f2b4aff0643081120eb4d77a6ef449605fe9f7d2d82c0cdde54615981869d0d0c89339c09c6f6f1bde961b28cbfec45a209fd74ca5d4011dc1e3294a6358d6249641be63bd5344558f62b5d0b9981dc8545d8524e5955e06e33f6c356f15ff9ad228d59672c9503e08e1e49b644ce2fc4b0ff11c58b8ee94a6727db97f14f59005d78cc92e17f865fa9e2fdd7f156e853905505b1e1be2236b9a5cba8c7a02e8a27fabe2ab532615b167d545e0e582dffc72e53cf1b12a97af57a3241ca3d3ad3c767fd9fce9161ff7d05420e520b4dcfbf05aedb8fe2ae26c4fd20cac9d092b57b83f89fd186b9492afffc7c71fa1f74dfaa83f809bb44520abadbb5faa9c417861fc5f7876905232a19fce15afff2536718f8bb6b856dfe698a939dac20e457e341fcbeb6877a96e842a82178f76f14f189e912595fc63e5c8662b310e6eb6e5177c8373ab9991abfb86c4a8f547e1e318cda7ff08dc1ff8ee3e11ab6e278e6895f11afcce502c40ee6067160acc7e8e7da5b0f0fab3955045e13b8cf4a8fd4c5a996d91b57c8844070e7ee669bb7ec4b6f99e2aea5a57370aff078e67d4d2ccbb88d84a187ae5cb3582570ea449d9c5192e88fc689df1a1fd0733bcc141e7392c2158120169ee1e2d5412fdbf0fdb405c1187a19b6c05aee5f65a5cb25145e7c7f0ef4552c3a7bee4d1fc0db3c6783d1d45f19abc5ce85b092efb331a10ed69cc22fefc3d4309961625336aedd16fe85c36a11799736614b76378f992e662771b805c8dca197ec5c2872d1dcc99fd7cfca556a013477f9ec09e0dfde41e7283bcff70c65475c5e0ac88302426b637db45c16f7fa06b382bfa42ac1e8f35cd4157e78f3a0c58ed4cda5fd18cc3e84e5065ca7c20c932df06bd2d21f644fc755bbc7b51d975be61a91853004be1e746b5ea5070f2adb9535067e210ab6b8c17fb5d41bd0fe6154ad4742a4b4baff8ec4f49fa6d2d7d4737d0d8c69c5a9f09bc4ecfcc6c9d0b03af27c2b4496ad25917d15bda793bfefb17abf66fc3102e3488c04d23085064782202195c6666e27d7762db5b8a690acef3322bfecd4b9acb667335abbde0c51ce48a53ca7495ee1589f5e9b8bef40fdaac8de2895cb81ac1cd8388ac9741d501bce6919dc823f4eb67ec8a03bc7d8e00493f0da0e3541a3a07a86e61d1c28faa05c0b52cbee66a8d96c425be726a9dd416e8a2ceac73b662a80eb0968d9ac361a519e75be758b8c5ffa20704cfc466da11b01941ac22431020c53cdc908396e0e1e111814e2abbe8bc7fe04115b3a61520eaf06cbd58c7338783a545e159fe445c9f635881eb44ed6a37447eedbc2ee8027327ce18e87c1c1d76a1ba6dd64758a0dfcf0856be975718f72c325fae66401531c5b3149e518a198089d71ecd902507c48e389ca3edf3154f72b13f10c51731e3511c83286990be7edc5df39a4fe0e52699312cf1f26034b85823d5db5a41561e59a23e519947d446bc340ac4c91a4358301606b8476a387e020bb0454688ecf2ee78b8e0ee50f8716ff9bb1b9b4c8c5e57257366013390d1f75ffd39401ebb332678990025286b94df1f263334a905fd540f5bbe28309339a436d36a0f5aefc19939c8473246451f1ba3c9345846ee7e335a3f4c39f3d6bfd9f8399f14c6cc92e54466b1ba133e06d4451fc69e92926b42d68ee7a5c462f44a2ef447bd7ee05c2b4c96a098ab6e3be1624302f31bc7d495224369500ecc590fd5463d13e1d1fb8f781dbb5b6dba36bb4d1b2316a685e68341fab1129685df244a44ef2d892aa3bbc631d5c65fc709014396f81991a6bb273dfe4c3988ebcfeac15b40baa0afe95c7307615063b0f4f6e8ebdfe68ff040e0dbec790552d6fea4502fb87c7d2690a477efd4a234db0afe5ffa86b8aef81cd164f12a2b4cbe14fb82f2bac78f9ea7c71519431b3f9c3a25e3256a9ea98c286174c2915335ba897b86d3f706a19a647e7548ee4f3f92f597f85ba5fb92a100bde0d5299a7ce24213e2304f3762b37d875014ff84b5e3ca29321c6308ca00a051ae7cca115ce3cb99be9d076a4a8d6d22af7c9d3328c87fcf7da8ee51412dbc5314d92f3cc3c7d544bff64645c53b5195b4ec9a8d3607962406bf3034153bd63891e095931147fb306a096b83b16b65aa7bf988f47a57bbe5a27f286572938d3d0fdc7404a11fcade20900b702fef552c0370917d3dc74f76d95ec46dccdec7df18182b6f2048b8b1a884256fbf84ac6d2a84a475f6980c5b6d485926648fae631db76329be01fb71430b2e74b0f3acc3bd329ad9a03dd8c08053d8411ec6574fc5d7567a22152dcc5778918bded7d5079328b4dcdc56fff244aacdc0a98b2def5681931f3ac450d0a932714fc1b60e14b6c08565e2ea5de43a87257cf697cbd12a08e0c8d03a017323744973ca37454ea5eba78e43347fab036aaea0fb21194930dce19bfb87960b2d2b863d149adc189e11c7267fb75d02c1e5512cce71d9ee81f3a9af536a96d6957ef40660c1db5cf9418930638838c705ab0773072fcb1b0a43f79200790b740cb66cbb64743708984183623fe9e57c56af989d7ba5b36f37f7fcc4927343672789065f6da6ef8b5f4af3a7e7ad26c739946226407a604dc15ebe3aaec2049afd16a88747e6f75cc68d409d860cc1f2d8af6d5d028bbf5d7cb99edc847382d74e08c6dc814c0c7470cc4e1840c6946c305952e6adf1a9093f5d97062138354f3c9eb99dfa82a5cedb948d9da3d16d45d0599c386366e401d6e2a20b8036471791af271abebf37ee1cfb4ae8eef015b62ca79520be7924b7084d50ad7cb06fa59ad6913a35cdc957abdb396720de08977ec5a33d6c619fe4ad5b1da789cef257915151f6a379ba143efb4bbcd9f639e73376ad811351c401d07c2b233c17f9ec9057e9dbf7073c30b895f83e12928d49f09350b6889949cfe10d1f44a65d990821e4d48ce67ba63e252ec879996903811d3e0af75508a1d002df7c9e8130bfb54d3bb23e5cdb42d1c5b186a969c112fa0bb6d53291413dcb532aa6b929148fdd4fa8f43b3abf9a052c40cd43ca366443a38f30ad020ecf4c5b71a791661109d1c538136065cda8f5672aad6d4261e88da217e57e9bd7c6217af26a19076371c57b76819e24f67f4244fb25815baf452f711176123ccef3de6fa883b34b4c7651c4619d7ccf8e2093929ab88e3329bb237f2e89a7ca6e0f5aef05b2b9206221f1602e2493cca33b0f88ddd9d7df02e18635e137d19966613043df77f828d16186fa84ad11e01b96e429163f529f28231b776dc0f91e0d6d3f02348d30986a64d4294b2337ca8696c4c973ff29dd2e6dc9b058abd9f8edc62bd4cacb95dd81fd0210342adb35b1496392464d3d035042197a9b1b01461dc6d945d133511ee51f1d7f9bf5e7f657d3fa23781a9e1c6267b9c536aa564b50c2f7adf1ffff7f7abb94b26d0fd89894d1c740cb531448ee57fba10ee08d6af4f47121915b32434c65bd971d333f3dddb28b89b47e99fad3fa56892c1bb468bee0fd772732ecad0dda4fa6eb7844cab15f0a4ade6ddd11226ee442cb6eaa046c589160e3ba27c662c3e648ffb41e6950e28f55a970c1b60f4de352ced7a2ddb1dae7850cd850dc742783d5141c9c540be865f33cdadc0f3f8634fb86f1a4a98ffe00c3d51dc6e59d910916c2f59ff719115fdbf7fcf9c3b3b3dfcbe8300cbc84189e67915860a73452c16093629d5bff04514254bf974c27e98dc38f8e09dc5e16c88c79b6e4afc32ad740830220e7df2a94f690bf6818a5180c003a721f6b9dcc4a797e4d9122355bdaae8e96456c60b6868cb193d27d9880cffe96a4a6dba2953216cd919651bd4b40d9678e3e87e872089ba713717db6116c6d8e0648772e305473ff7598288efee07c89d1d04c6258fe07b7c393546d5e1c8a60cf8775d83fc75b295a30679d0b76cd2cf9d648d17dd2646765badfc3703e14421d35628aaf66fa32a36bab072822eee39ebccc5a6ff25a946d1ecdd2d6d4cc55b6f9d32d7b508e33d0484cda21e9f9da59048e99464e286f9e299f4151048725f2d1720b13692fbe273d044ec8339c0183c5945625db2b834cf97e71d298c8fce58b4e94a0d7a252a3b36bbc6f4b399fde277a01dc12820fe6e1de3fe87ffac6184a858ff1853f64938543da9fe3a613d8e8f6819671b1472ce8ec8a3d4a295335073ae6b3a3e2a892858f00028d74c612dac13c63f9664d2e48d5e19baf551f6c0edb87f924f4a1c3f8808ed442c486b162be6549ae42f57df0d40ab90a550d787db820b13e7b91ff1531aeffdfb2dddbfb7af96c1bb4a846031c4927d741a383c8ea9cddee424d92892b0667a35015b7b1fff76fcbe6f6e657808cf2397cb97e3889b1db710ea25af5c8213bb329f63ea7ecbad9d1bea66df7fff4cf773ab8ce6730e6f1ccdd38ab6e599adc975e7d2891e880ce41e55be3a113544879a9c6a5c5d8d8bc46423014fd1e4b5aba4c0d3f3a5f88cab4e4209a49d195f14f9d8db716fdb5c6e9c2db511d181ab3edc6da7a00905365c85568d494de3b9eaad16f74f2101fbe04515bf9409a1fcbe4dd986553ecef5a9e1b57f55e33546561ba596e4447f94dabccfc1f4abc3673b738a54039c65a3a5ab0691435ac9588eee38a0ccca8de8c35999926149140f963fd36c6cd4e5d21a781c63edb6c8c89efe3fa3d9d7a2b58be416206ea31a4764749524dbce479df305dcfe8c7120032a5d93b6c9ff4e1b3a32dcaf80e99d579a839828ec6b2c4b228edc312a5b7fdee787efc8a0e48de7508658518334cedb62d849b45439ec192c344876bd2c32fa170c68bc2f9f514185565caa502d79a22639f09739b85a1a6bb7cda4ce1906df0be1000dec475d58ab4054aec9815fc393a7b680dcdce7815cc5f9ec418dcac4331e8e357a62b4b45956b8f65064f234186c96c8ae94549d83727eefef308bfb9c2538a9a2cafb69f2b0fba96d01f56f17fd65cc4964bf9964347254da03384e208b76ccbb46119b8edcfc3546f344f6741f19b678d5392e2b74b22b682137e83c4423443f3544dbf1619c58ecfd30c214d640a421bb3605062c45874afadec6557f550a67081c3912416e979d139f68106fe3b84a3bfce129441840672d7de07472b406c064d62ec5cf703ffcac161a33529c7421a3d15aea2600e80c988e00cbebfe48566613e634546fd9503e1c52e86952e4c8a1c1b5065e87996e7fe30760bbd92bd92d2277d294a804f37f11e9e097027b68f8a1e24bbf56481b3aeaafd1e9db05d649545fc977ca4a917cb5386b12b3e5bdd4d01b40538f4224807c769101a10a505463969e30d80f0c930a37ed8d91be0b875520aa83db91673046854998e6092763e856ba579d657650864cfb912eebd7a586fd18cd06535389151a998e65c9a0afd2e57362b55af7766a251f56db33d10e2551da062ded34eba7c148f1f97eeeadad79c3632108f806863d00f8b6e467d3202e7548a7d849eb0aeb3255903159012c6760907311e75df99cbf0a9815e568c71811d8f9a69c89bfda1a275a4b24c169842555f09223eca15b463d3b4464593a479f405a5389d3c2d5f764afc95c2369c748512fcd738a0f8969a91a82387da3a64d77d67e5a65f0da8b26021406a9906f7490eee38b46b78b6a738b7406dc38114473c438d9c1f44108d459c650f7f7f14145b31a976b4fbbc04bf8615dfab109ac90977a2eef72d91e06a6e2251dac3c29d301cc4363ad80e0c26cd5dd46c4c2b650ec3873ea7bd4cab97e4e62336523f5e1abee6227f3e3e7f7209c1db286cd42abefbc4e4e185f68ee816754dec5d75182c65595a221ccc023533be956ad95ba8d55dbd69d456b0506038a1ebab82914d46e57b730aff2f9da2a24d3893054e7466b5580e7619ab5c0818e9ec4ff27cc56ad324f55f43983b3db3f10e990e8ca8f3a96043abd2873fa17561940517b70a212778dd5716f32d0ce3bcf415cd09609ec16b3038f8472ce30beafac2e329ebeaf3d51cce1798a764702adba525a13e62ed0f2f838197784e72138b0d4d22fdc82c2615b0a4594242b8844b95b701e661b0be4f275e5e1d8c38a48510a48b15cfa3b2233714dc782fd7fadbdf42cd8343341dd3563cd23b5edd347d03cee9cfc8b7f411f371d02cbe4e75ba7e5fe2409ddce2b10dc9b4932083ecd9e091530aee6138a0a47e171f90b1af290760b0d0712b491414d4050ad98302576c76db6aa795ba05e801e17cef971bff987930e7bc08e0dbd001342cd8464b8489ea6ad56224f568afb6924df75e97241d8bc9bf0fbf2917ecf4c1a7e9f9c046e2b110f677971e658d5ca1034c741116d41df5943d3fba91c11969cb1410ab53ddcf28be1cb2808fcfb78df26330c7673479f528187db541a37dfe11eda7c1b7e46a91dd698d2ce8688ae6d25f81ec3c19e44d403cf770d8eb5bc191723b6c52fc61554d6f80bf6baccf873f73e82fd0406df724eebbac37e14a468a823b0558a88ed2c858466083d7c44e3add8bbcef1ad57d23067d50f66632e5ded778decf23ed664da214d8916c8821a7705f127be772490ded84d9de80766b939b7c9c14e7241d9f5c93af695d5a78cdaca54aeb242f5cb7a89eae6fa5ffd653853261567e2ba6c681e983d505c78dd9654b25c74eedb07bf8425f5be00a0aed8b86281ab0fb2a8c594f5c11f646fa5bfddf892decfe3db5819c6b09c5ebbad225d8abb5f39a2600eed8a44d8d1dc7c62a2cfd4fee7954470c359313312a5e9819651bd537e785f78f6a972f6480f3f453a9eaf35e8cb716cf5dd0c8dea56c7bde0dfff9f8e6bf866b09484e8751fea1755b87f25e27508acca416abc7a932d78c159af4a79576892cfa3db881f645eb9bcf81b9749bd2123fe9a2f2561948af5ebf3f6e60667520b35f7f6c3716f7d9ea40a9cb2a00059e15e12b076c21ed29c0eb2063eff68f2cd84b39e18f47d2d13626343cfe80962380218a0b2d17ca10f0163da229adf8d64174ba7ef0fa471f2daa54379de9a01b8cfc7e4ea96efc51305b4b4f9238240948fd4a1f872849750cd0577a750bff02d1c519d84bf3ed7e8658a261513234f3e80c8897648db265ed46a2d592d69bda2c50dbe41dac2e4e0c2460257a553088cd174e28678167e99a2d7cafcd3fbfa890b61f5fd9156d1bd0a055b9a1090bff5d1ae90cf5af08dcfa48c381494e27f4dcc1866dcb9cb36245e48292c5398b53e62f36f0863db27f066f495843ea6c4dce7d0be586804547458844f681b1bac3ca399e74022454f55228db573047cdc3f9ce3bd0668bd00e9f0cac83987a6552cc8855ace4cf06c629caa8332c03f26bd91b89eee0472ca338aadfa6c6f48b475dba18a23c483560318b12b5b755bbdfe85afb30a89d8a13bf39c825eca166af053cb3d1756b9591a554a63cc7e760bbd117a83f9f00d111e70fc69681e0bfd6d726f8abf20aae0f20527438212f7721a8412ff49a9bcc723df19fe55e0ef5d2f4647a1577ef19f0f081bdb00c67883637d427def42017b1877f61d2d1cde5f820533de66210ce3207c865bd4f80f9a35daed6bfed2acd6cb4c26870046775646850cb6bbc8768346945810d7ea2e4147a27c20fe055aae45baf74a8b37f0776d3ed9be60a0df53b3df6ca6197186cbce735b578427eba81d0cc20b435a38e502bb0770a0101a3ee61d8d00ff6c2c9d08a388d587acc924cbf5cdca4d0545859ce959381f753a0db961c28808d6808076db5bd427e78f07460a615dc60a6bfbc94d2726637d1abf034240ab37881e5216a9fcd7d486faeca374704944f8d54eac47339cb1499f802774d51b8d854d35decf4318319443e4465ab3757d96fd31418defe35d9d3ab4952d0ea3603847401b9c9d1848a17347d850fd184a4a47db2ce57db1b7ee794e2de2d79e7005d33d5cc0d30e06f5e003322ae1ad0a7de00fed410e06a37babf4c50f410165c8ec8a848a3afb18bb2a5c8b2faffc260bf2079f75ae504cecb27ec7dd9af283f169eca6d95a63f101714c32c0cc5365a09c36627041f3cca2f2289fb6d4c10e386fc90aa82fd89f25ad64c24993ddb022dd44acf04b35b6eb20bd0c1ea22d84dfad9d4b68be8c30c83e9b37c27aeb5d329b77337f4221f81b267d166db311f614ff373c059dfd21066e9e9a851749bc6fd986dfaf43437e879e380e6a6af96388a91cda70d5ad24ae438057c438dba1c1d0d8e890b2dc8121fa135fb38a082d871fe474c2a019133656fc089d0131075accd6bc11094eb3339c42c064e983d2cc534cce8cbee11d38420f916c6d9f2327757618eb27d2c4df1790688232ab554a1c94880be5709f31a06339a5a528634dc5e0da1343b0d093a9d46298f6dec46f3652c5a4573652106b012ccdc1d4ad92ac8d432e3ac816538a7d552be9376ba0e68ed8ea5c0c2826420e24704a98b582ae35cda69f0712e27d37f56207dfe67c46e85a4c5d9f374242610bc857cef67c526117080fe3a483f3c74273dd6c19791a0f13a74da7f0117dbaeaacc0bec31148fa102a0e62dca6e43c8a27a561100c37ab1c827042020ee65f3b9fc0b4e9c3e0d80dbb1bb0ee9e8b9f367125ad3f3a4d54a6749ae45c9d003b9949c9eb5def02d6593eaf096b1d8245141ba3602e11a94c7af5cc391d86e68fe5a8ce514695c38cb3643daf192c0eda21cc1582a1f382634a796035abfbeb663a229e8341aff8c717a424041b9507a8b93a26ced0db49f22bbb5052a07cfafb006c30b2fc6aaf8dbff077b1938bef514045397828353a427ce2c7742a455384e4abdc3f50c8705cea9cb540205e50c2939c605318ba1d55a54f36c1218e700cb060c88ca800711d8004308f9c1befd19a372ead87391bedb7f8caec263ffef5aeddf92c61c1013c5a79e0bef57f8211a20d355692ee472497d17c5adca46e85097ac60540bc28f2be011fd4861b08bc354293569fc6a394ac07a40e064bca8a8e6e76fb3bcaa22df1e16f25d64a86290940229736e81a10760fc14a081b0cf80f62448784d4f6f7eb0dc9efadd726f615a41d3b3b25855ac83d92be1d9b87c9a9b6c620a3d4e08e66da047e01b68a9fb50adb26c33eed3eddeae41cf9208a9dc74f5262574910bb980c93144e76bab85eb4ba07285c7fe7c3ec4f54910d610d08b9dd6589b4ac7e13715574effcdaa0d8e0389b1a6cd1094248d7d6197b8732585c7e086c1b3b806ec33719b63cfea01464b0ca48ce1247175f0c7ddc027052c617dd86952ce9a1af48e10bc6e96aeb612e93ede0204ecd53329fcb9bb86215bccfaf50a5d9a08cea92855b5c09b5ae5bd00ef85d92a94854d5228a35f65bfceff00d44b2a806b1a7ec80c7ff9d9cd2944f56cd2631d2aca77efa37e0fe19fc13196e25d23e68bb91de56d86434afa82cdde0a9246f2f1f11b0523df6b4ff4179612db4a082d1faaa5fe622bae776bd435973aa896084bcb5391b693d59c0ad6ee9c5b6c768c1bb0e75a5e435833b969259f70884796b52ef677ff17c00895a9ac78b2f4be896fd3be55fa966ab3db6bb95db8bee9257972b333a91ed4294d5d9fc7cb640d03f8de73b73e61e2a6f56bbc7c3465b99d3cf441ded90fe263056436a12615de0835de31c33fd42b0870dd6e639cb1fca999969a61a585a439b75551a1b0b2c4ff4aa98aefef958cb83299df112665b2a4563d45e4b9cd5224c06aa05069bb82c452550b7b693c5e2e5c5cd4de315d90547b52b5c26b6b03db49009508b9036eccd8bce04ea9d518c0194542da7b06521de642b6a7ff95de33ce1ae2347933277cb0ff8be1b0612d56295856d68ce1567b60fee79591b62009c2df8c14c645a02eee00a70b4954b08d1cfe0d59a30491e4727c4bf43fedeccbb5188d5cd40973a6efe6b8002c19d495ac835ff85298c3686134dfef518cefaea5b3fd5d2fa387e3d79d1ade308933524d97f2e2a65c11abcba34bc4e899d092c642dd91f60b0b97c853eb812f78ec8bb5ce6897aa20db0e64cb9fbd6b50761ed87d5eaceb8cb5af70fd149cb7298a3b4120360cda4bee3113b11d05479e17ade7bcc899644561b83cd0602b62d4bf35ea6909ca2056030ea6de168bc5a81efc7a7de8067fabf00293c89bd87827f3c412eac4babd4f8c5bd6dfd89fc642dbc24ce40f57450585d90a24cbe1eac296f984c606af9757d30f16c5a90dd079059e2036a729cfef04307be770870bba54bbd88641dc4c24691008a6d4c5850a10f9b65d4dd1c9d7f28f1259e02d621609e5e99664d58d80e375f91ac672e0e84adf9467885e3f8393386785a2a4e8558cf526c514c022c8ebf7ffbe388194bad5de26070620e58a64ad93b8ea4570e74d1f48c974c84f6e9d5c9bb57172fb5a6267c1136cbab4d6e22c01081be08aafbec06db97d152c773405d9228d897957c74e2404b9391528a1c976cb589b40888b8fbc91e7bfe4fd0bf201afda25ca746265727934be6394ae1f611b314d10bca7004db2a18dd3aeecd7cc094a5cd5274b4401b4efa63d004de00b594dec338e27b7aa5fdb73c74bab20e761e7a1b11b55bf001bd65b88aaf7adb3a73716e7b2ea0330409c21db2a17f168ec67993caee2a4bcb84d19d59fb902ec6d2fd979d016c040e3ec14bcb5388e7164c655467387b526ba675f6945d41ad2d40d344e04620cc7368ffc52e9dfbbba86efa3a2b27afd69f2a0e6e6d2b51deb4e3afe7a612dbf5b0f476854d882ee6a927e2d94e3d9f98357323c48d23fff580caf29b3696f8b33a4b2095f276c6acfce8986ed37bb334382f167a9a55dd346860d913c976e2a4113b307f39039aaf0037f78f40f103b9633c13d1efeea8d0af7c2c335d54b12fcdb6426bc62aaa624fe0f1c8c82572bc9ca913caa65ea687fdf3c8226065d83e261a8c55efcbdd9db102f946adc20242bcef11c48b60b6b897f2ddcda7d57f61c6d3af835552217e78f1b7c27195e5f986a2e71d1a082c88760e022d5844a35a0aa5c353777f2935d537e5ac06e86cf90eb03f980272d18b9cc9e2137d769a9ca290e677effc4b71b3a96abc8c1886fd643de8abc230a973954244edf26a8a7c0ded356db9f0a918ca47454db2c8eae0989a9b4cdbffff3504823e39a9621c6ba2211bb179dbc0611f749910b7e8ca15d77327632faf15d3a42d916ba415684102ff06693515b21e11cc2b003b9a8e448eb16b7392929ce6e9cb3df07b134d008a7da5e42ab3c05b500712e389569560b66465ab17308c9bef403f92269f431610e82d30eaa2a78dc144ffe15fcb916fc9012118654140f36afc4197a5cc0a80b4b78451fe6510cadce451b5b8cbb73d6b2cf4f571b49f8d8746d8fb9743182da2b58538707804a5826ccaad81869aea73a05062c6bc173c8add7ae4c0c99b6b0de7df4774bb2754c1a9347b62709c1923b2efca6beace53e0933cdb1771b9454784f221a04f4c13b2a4245ee7470915aea09f953dd955d25fd09b3c3779ac231711532dd188d18c7dc43ff226c143986227c10e969f9deb53e56bbc7c66fea2e266361287f80c39239a2841db3ed4cfee1fdbda1562cb6bc48a5100491f7873a560f570dc95a9a3c4ef3323e9f2a4f35c99dac2b6a921390da4cbaddf7eab559a5bc9acf96508a44ac5512e8bbb1b448a0904ef7c32467c278af6b028e8af8d21cf244d31bad9379e97c04784674280bd051a6204e4836e9e89047eedf985386a7c369cba39096e61dce18a9b290f693e753e38e51f4658fb57a0932e52435a3960a00cf0cff888b668c975f2545c9c21841b45be128338fb030473a9224ffb31c2e4751463ef068641596b4fbb12122b9cb700d6db5539d6935bcfc4bdf3966d37bedd8d884b784bd2d26c4426c36b6c30e7db1314ff9c3ba5ed1dc6728b98d371079b75bf8bd989a5d72303ce02191557e886ec4f7b0e93d7ad24cb3693ea0264fb5f0fcfbb50c295d5984e1838a7831688ab88bb35845d101842df07d614e66ec26f8fece2fb619915aa05ad92e843e049eea4390a5cd19e00ab2545bcaed1f84c8e8367be99a2197e5248741ff5f041520ad7bfbf347fc44589a058e05205dc391618d13be9a79e25e5d7a9eafc73318b03817695c97268a8beaa1827d808f208b3f8242ce775e686b87fac5eae41c07f738cf4946528627fce1b9a0622b0b247004a528bc2c935c557201c4917436a755ccad51f371ceb7ddd852358c9e884022d71d8b14e2dbfd9b5a3eedb0fa9b6adcdf930ebd24f70cb0d7622d9ccca23b6eb123523f1d8072009694c114d888e02ef1b3cefe68ba54ed2f59a0ef395926e67c855791f4cfb4a11c999ea8c7e1b5341215d7e51b174da819952a26a292e5d1962485592d9a8ff93b18420925aa45bae414eaa194d2880c5eec174af4944a78717643032ab4aaccc88f1cf5608fb96226e11db0b9f1c3f262275ee36a8dbb42cf0538a87778a75ff5b27384335dba8d4fff023abb3f48fb7f81677f240b6c7d62ed53ab9b434d8389e654536f86b012bac51ac342cd61e0612cad77e88325b6726232377bf6c5499ac75707d4a294f3bedf9d9ef56ce3f264cc2101b3ce9ffb8628c7b95775ea7607a230dbe1e84f693ccd92e79c33bbf23bfa6bce3aa7697ffa195db7e42a9ffdf4fc121a7bb9acebff6334f522ff96b5ecc2f0cee12e615ccfa3e48e6c82401c2f09e4b41316d716a248a885dbee984d2825aed46968bc8309479209536e1feae7353d5b4a256d907c77051939e31ba24898e52a55bca1125a1bcdcf85e40d68859f3ec209b01f4e84c0aa36270688acc983966712775092e9496d1d945cfb6547993103bca5e2dffc48e596be4137cbe8c3c801f249d9e49d8e4a4f3854a1cf642afb3bad97ad9f2b04e76aedc469dc3029a7766bc666e04ebc1a2417cd3f32e08c5edb753bcce86b420d3dfb814a131ef9690767e715dbfa38a0ca59cb698dbbae0f4328ecbeb84721772385b003b9b06c115a18865ea9327c281791d8e1c063b295a90828ab5b8215ec3eac4de34bba2ef08675e50bd1a2965a7a018186292470fd65c9115c06556412c0b5958faeece0055d7d28c5f2d5a8559310d84e3f33f25b0fa1edd27f77abf5ec488d4b59379729e74ed625ac0a661f770ef0564671f6201a13a7673cf159dde0cc7b4bbfca5b047c8b5c66743d9b6207fe65fc64426f39ddee4b798c19327300256a195a2ea9dbe29b8a943555a47df250d10ab105040229dc8daec09fcd395c30ab090d32f22b5738145ca4b7f3e036c558f8058b9009dac743c665ee17537bfd4fbfd2271a137502125f98688dbd43b31d32b691a0a311a6e7f7f9bece964899adc0e6bef98a5817801ee73d8d031125ca7869caf84afe4a16e4bd3d07f91bbde21bdd0dde73793fbf72839f9fb0c8ff0d4dba0e0ed45d8e131583afa9401a654c1b5ad5076f0ec91294e3c1856edb62156c64818d6f2389450f9a25f00d65850f0a5cc92989002922b3ef4696819a20195c1612d47ceb7fb4f1416eea30d5a9900849bbeeb4b9357b21fbb73a07b1ddd1083870752c27f890a63b1afd4f3949fcf032d37215582e0c0a8a596f8416f6fb6f38d0b6f22989aaa362225fde52fac24b03a3c61810c8abb9e56f47c454bfd75d340713ca8235f93a6d729d620b86155481c26e62c72a8f77c12968063b21ac390869ba454b7c177b3660150d9c076b0c64cfe285321dd4ed710c8a7d58c741e21e850d7456ddc29f33e17b9ea1e80063e2201091ff9ffb2179ebfd1dd85e649a8f562491693e5b12f721589e568c5466733ad866d7de67fd682b20bc976d67055dbc4889e87a6afae2fd86e16deaa989b00d8fe93fade0655e4eeb7a94509e33e716794ba06a185e6db7b660472f86f98b677df5a8bc14e6968e668a06d9e2bee2b7eaeb98d7b3d2973bea5e79b436004d795f2b2e5811e6e2992f36c6d011f7666a7f96192e2ebd7c2dfbdfe7494a7a044ae58ad7b9cd73f656f943d4678b1ee5b85651482d9e2214f1146fe4d4135b6b0135dd62fc9e9bdafb07a21f2eb7b61abf3b8f0f82be0892ee353510c029415d6966efdf43c25001a3b565e2c57cdc5046329233016c660052b15ffa93e71a61b7069da9f6d9e5bdfaf01930ecc8b47aa2f19dc1282aa4f69cb0d6b455ecdaf1ab95aa85c7651524a1b85d8fce0de9044763fa42ac9dac907aae43d9f59b3c79590870f5e0519a8f3ca5d2b8e5bf33685226c65d12128d0768fa67b82f9c982e71475301b967585667605bd5b6d7fcd05f0e99cdd5f4a58dee38c3adb559c94bc8af1209f4d814671325aad5ed53066ec6a0f6dd0e576b505ddf89d16c821f4ae490df6244b9bed620481fbd3cb328380e9890d06571b5c12cbceb82c7896619c1af48d36380479e80acf7f94c7e1f45ca6359d9f11ba18a766daa840327f982b0c6f4271b8b0b0b634dcb24d9bb65f738a5669ab35400ca37e7ffa52dd5e52a26002d7fcb99caa39fb85bc1b678229d02b5a3498dbe5a8065f1d431525423e17f7d3706144e3084ba8eb2da304725502f1c54eaf51f7e4b35a7479e2e25d5345ed48138feb4ec70a905909495bcf228f51a664428e29ed35ef781360e12a07bed8c9be991b55c26c166290c42f0e016502195833993088c8427e0b838a30ebf93a100a4d1a2c2a301903722c90144ef6c585ca856675ea9644d67237faa0542d406b426e7af0e754e7455080b8faa85d119b93463b26b6fedd58b2800b84890dd1daa0bb774373dfe97aeab34412adfd373bdbe566e8438d200480633a50e4a234003e1296e22039393fd56a73ebcd262a8f25202ba75d8c85f82b9a40ca61d993c163f387b1c035b95da25bab5a9a85ab08bd05959063d295cc4c798cc29a1a0d14aa52e62e20630e159232055088ba0b567a9f82f076e43b14019ec8845fe7f33c427ad493986894afa2d7fd546d90795e4af5cc8f34e62ee299d2d280aa2438cdb379e3d17129cbae3fa6c6ec9b0946481dc3cd122c41bf758b2dd56d26241786a11bfae5bcc4eb075d2985b963c07e75035759d861d4184438e2a0237ce0f87e5965bef17ee65bd25e06160129ebb193c413ca1fde87ca0421c4ddf1391a8be46a68eba679e5f06ae2f7b40cd80d2a914b1b9f8328e6d2b290fdfe39b2b9916c830afabd99b26c58bb187465eab467b7728a1df0e56d6582a1f20cb7d6399fc6d9f91c0677aecc8cde0c9bd501f0c237f50273ab7bf522f10ae259418269bcf614eecdfff7733f032e41b78209a956d469e820e2045d20cc24b5d03c0cc6b661c297d509c294eb49844664b468925d83a772c052cf1041e1bd59f1f11f54a8760b1853fec82619cb992b48f54c31f153f9d42ed5c69cbe9102750b1565f6f7105fbd13b8cfa43c63b96d8a22398298d9d0cbc39144dafc529a0a5cbfd844e539166c6bacecc6a630fe045650e0a46d9cab59f7e630c635c43ea4f3e1ad99fd2a324df93149f743b1dda70bc3e424447f8bc0ef76c984a30a9c61622fbe4808730cca382b505c72545ae85120a92c65c7629bf02548f18127bd6f552cfb2d37f898d50a778ae2290ac9ebcd25d93e04de72e77a1bdc59dac639979ed5938edb939cc5d079d3108fe5ca9eaef3b3acb84417a34fae04f03f99e1cd0d7b6b3edacaf299e0a72cb458332912e5d47e97521a22ceed8276cc9c7501415352f2ca9beb74ae2fb7f800c4a1aa6c39560dbcb76ef6d4b275ff10f3c2b59def51d89dacec6e1f08c406e7910a1e6141552745d8a4bc13b7b7722df4e6504f344e4f077ab14c8284f674a96a7d15424de8c4abd985685198ad509624901a46415ee61639a862f523dba52727563983bf4f4fb488d414ae2ad32be454e6341f7a1c6b75ed46937fb337a2f1bf23848a4e2bd1f468db0e71b640d33bbce3734e2e23c8e1e05fe6d3b705b8aeb2d2e75d73357e7336e6d7c30cfa976eb12aafb781698b493cfcf08e1190e5cdb4837502dfa6840f23beac16635a27f08b7ea973842dc220745e3ddd9b656323cf8ce05974be089e7b2935d1f8107ec862a061e0bad1ea37070ae6721b2b6f09106b52856bf0b2e9ec7f319abc0115477300b805060eaa084cde35d9cdea4cd06d0fc45f6f4c7b36b1fa431e1a46012686181c360adb4d051cd0cad11ee558e4fc86b7c060bbc18939610169804cca3b2a82f20c9a561a1eb54f4d6dffa1443b3f427313229a686fcb9095c465ac4009ac532c17aa0d8a98a3be10525ff2b06506db63b61f6b7b50c4d27b85c43439229cb63227fb9a884c0cfa05ccf5c5c7fa4e049237921038e5ec6fa345d034ca456a20e448b50bdcbd84f614d7256e72ddc10614732d9f5d921d0110d4ffefb778086f82ef886222645715c01cd9426bb5a51b50d3555e71baacac8d2f1402b570d86b6823cc4d999fedd511ba5a3b4d7880f796f5c4eb4d84846edcffdf69c4b8d0654080034be931ab1d15ef8732565f345e67f8c806be9e68b30c7d2f3bf5b7d3d4983474679576efb56068fd84eee63071dc6042d0aa6f0136a81312cff6e80b8c13a042d87c9ff4232d2a70a21b0b7f85184779948fb100daad0ff3ca23ba5d532f587604bc52efe431ace250fb5e0d44c46788f76bde7dc1bf3a1e13de01a494260fb193571f61b876ce9aa07c5aae8365105da67ca5f96b87f277db40a889bfc1efad9f342627b6b823dfcfc2b9495b9ce08cd70cc8985c9466595c6ce12a65bf8e4e2bba55671009760e4fd9848d06ccdafbc72b0e8aa3ad01856338e091b1de04fbb9a741946ef67250ede9712a595705e81f820ed35bd615d0b699407fce8d32eb0dbba9ab7456b158a6e67e6b034e9d9f86298f50ebab60da8c5476222c8c609507c6c5a7510045f4b462e7fa26412fa8225dc885014d428436712a6b9ea148dedb008eca4c5bf0aab1ad065c208cbd58612f3a8c8bba1f3958c64ecbfbe39411f7958855c7fe6e1e5a7e59e69cb66e6ecb7e80c7a0f345c7d8572de8856c2114244bbb92b06e8af9a29992b856cd00fa0cbefc71c10ef167d33904a3d1fb690f3a5b37f91ab6f6f4d63697f176037d415a8b5649a62ed083b1a4c4c58e7ef90961aa6e283f42883e738158bb5bc623bbfd8f8c3902255d60100ac29293521c7d3dbfb4ee9137f5133d73103087a031f98b6b41dd38484d63e1e2d3254ed799e15c51b3b2135e179636c2d174fff9f9e9c14745ce949404303e2691e51492e530a48eb0b799655618970c0e3db01f3764dfc9caa8b004e33873c87a9eb1d55b22671c977b87365031f7e0f8a91b3d7d92f7ac7712a1824d4a483cb5fc271d8931ffc355796c0abcb80bafffa6b411d2d4d7a713c68c3996157e200e8c9637240727896c63fb390bb6cce7f34f7a1dbc7b2b4a1e29baac08d4359855fc861f07add7dcbb8d41efc46886ec7e4d6b3235ff1a94b2a4d6e52662f4f2abbdbae36d1e3f0879ee99d0822dc73cf253eac24549eaf868cbef95b4884b14581f139be2e4b579c92088d01b15384844979d5207fd30cea2060a5101ed0a4969b4dc48667a13ca88f2dd535eb3e4b767d649dcb63ac26a0c85a29eff545c5df710958b797b4a6e38f49866948d1410563f1f3eaf4cbbc02930760a2fd3af758f88e0e67c1169af21bc041f0bfa5075197a5f9552ed435d2fd74d8470ea9c75adf1e274807a0aef4b9ea74baf7354b698c1afeaad5f2fb5923e5380643b05ce59b4b6d2f40ebb342e29563df80614283037fce56a351e9132150711d8610f6e4927cefb164d7658c9b81026e66edb235ee1354c7eea2c49c01e0bdda9bb1fd554b6f055385083148a4e3a18e62038bfd7aad82e3b99acd0b3d73791af61ca8aa2db1a6fc8c6407a71be3673fc5ad098d97379722a17259ff721dc04186ff2414012811bc1096447ef01e9b35775c77a7412ea6dcc6687ff059a3e1d9d6ad5f91098abffcd28ea2d9f824bdad8a646e8b95247aae493dd59fff01a437f19b4fe563e3afbb6dff3d2779fb74347b7db32da73fc20a37b63bad5ee555d8f6e4d8d6fe13fa6ccce0aa2f0e9a49b294449ec6d9b79052341cbbacfd31b15ee1c63c5c5b4eb68dbbec184c616f2c44f9b71174975b290f4abb6f4ac47c8d598f231a940f9a331cd922888ccadad3aa64bd04f2000d20275666864f7392623e1f01feade2547e709e450dc008afe55a1b9c9aab6b41c728abf1489a34f09a419d0b84243aab362f115c269183b8f1776a81cba64a82ee034cb63a5b8849b6f6330d07eb7a24b750e6331f2820313c44bdfc9c0c6deef0cc041145296d033ce2627be170f3148b7687d985058d4a58cf9381ea4f53b513635ae4f3be00bb7d6739eb3d9cdd2935097820af060ea992ed95e7bd34ba9d3414ec14c272ffbd29bc3796771e0ae245d80c214bc63de52bc294ed373a6181c8976b0a76bc788cadcb42db0ac4d012c23646b509cbed0c63668cb0082980cd29fbc0328e59c76068340bbd15a2f361d9cde1fc4e364b1e50779e3778c855043759497fbde25ba3adc8626068433dcbec9f66daf7e4b18f8e948de8fefbb73b417760e577e43073973d3f8f2537c41fe5f502752e3424c9b719790f6ecb939b4aa18ede8ecccf24a9f19339f3a2e881d93091b94edc31a8ad9c775ea817dae2945fc5e6dd3ea6bb41f5bff0baba52e805bafdd4da9334fcb4fa3567eafd6be37fdf0eff06a30b73debe0869fa3f73a0118b95ba7f6c2d0a60feef24a32b3801b829f52e3ffdbe3c2d357dfea36a49caa5087aa2291c3a0b49e8ee70dca4e0b8b47faffc2a64d537eff8a72f8fdd7bd75329948628a48dac9c64398c33bfee15877ad5f5caa5093bab18ab1c79882411cc22e6a76408148d74b7479b6153d138f8c4f02c78ed1d543098ba0d9599091364170808a3086dc2012a5e2554679fd9f78ac7b6f07c883ee8756eebace05f4bed7df1eed90db6558702a798d5d2dfc15af8a22a74caf4eef91710c4d1459d7fdb3dee6695bdafc1249144c2c5a0644ce9602628f0953a0a3c4bda4a9c355445bbb9c3bf6be52779701b5b59e22e9feebdeb84ce3cc74c6cf73d1e54fd248b89f841970c82b0345fe2b081731f4eb0aaf3db044469274aa27920635c9e8e850bf5a91ca32059ba4d0e32200e90e5dd9ca4d0c83218474a717755e100d20b7ede6ef9f0a057c8e890ae140089ded905713896c845ec23b94e3f5c2d82146b63eb3674ca63b3d5da677eaebc29553b1cea0263bcae045f14e3bbde81481ce6446c3772540d01194588e410cf9676fcc05d32997ea28916a590468ddb5c7ad9bb71cac1220823802e9c6dbfa85b26b37f340e6811db48b461e849b204ecca9f4b5e608e257cf51a01bf16cbaf6961265a6b85e6061562437b30b4a7c1cb7572626b76056cda42cfdd01681cf69486aad4160d818392031f3ae339988aeffe716023dd33d155c8e601e75ef634142f8ed9d9ced47397360cb6306836a2f1e637cce54ed563644aa939ea28fcec0697196f6e2752d8edbb10a67a8753e4901b94a6665610f742b974cff6ad438ae995e2692375403a60f898fcd74d805a2ef857a12d85584f6e650523edea3e13222777fb5936fd7643f1be449261218051d650d716faf0cb2c44e018221c86387882a03b0678900feb58c4bdaaaba122232ed485d037c942014411dedfb7cc9298c4c0903494f0132fab1102507aacf5f3467f325f4bae013ab1af10df388b7b92270d2a80408f92ef594c9f6d739946b2770c9a9a420a8d66aada39d4b827345acba6949bec092e8a0956651a5774b577f75fbfaef2abc1d8a41faae25aa7fe480ed4d2cd70171c66dd465a25924a7dfc3d2e74990e517426017d35228632629875dc426d0c0d5a6bd4b43193a0a8a01ef4ddbeb08dec86acaf720020f0f514eb2549116ab494548835dadd18407142607487931962e3b00ae5d28b5e772aecc4eb8be8c5b16e992d0c6d51a172788e69db3370527fb9e4a2de4471cfcd4dc20cd44e0e1490586bd0b439d1ca508cd881a8bd8ea830e9521bb7abce5cf3d57a8f54ee24015c73396879d24468acd50318eef488c1bfde86e14ae3326380e9297d04e055c931c30cf53de6cd0183bad74012e97d136b5200a22c85fa32c0e6edeae407c0be1ba2f7f63c108e4f40aca22e1f7a016aac7af8d2a9a76f909bc3374e393ea3c6404074f1d332ebc2d08b6ebda3936166cfd0b728dfc8ab3553901605f087e8d9628b68ef5fafd2fa838d15ea23b316fad761fe1fdd572f4e0aa799cf9ac35486ad1737fc290d7450bfc6b959199c87efb8e58576dc8d5efa20528452f7cce96fd4e3ddab63e1ab4e80cf7ccf835ba25fda1692b0828997cf5ef35c930759b8c88112a591330ae032af21d8b509fd2e3af003d99536de6155edf55881ba0cabdc14f348c6d18e5e704120a29ca8932ac42056caaf84094c892215c66a2490a188b0f3db67b4b6682d2cf09eb3f577eb157bc561ce9380675c1bc2588447a088be9956d616cc29f4c4268d7753eedd4997bd353e85a947f83226b236666c61fa04e6c4ea78d02bd4453dc4147458248a8c6c35acaabe45d964fddfab8c0a7458f2791840b69c446df132fea635b37f508638d9afda23c64abed18937d6408e3fb857f7a1fd9be74dc0b4031758b7e277edb42ddff235da5c0125f60509de9baa953d1a13fe45ec06db5b2537c36746407d5eb90b97228deb627409fb4cf9a619619458ed6eabe966228071cf00b2b3eac5f1c84eafbc1b2f09b3f628ad1a0b9704aed3648712c7cba6dae18abd9eb083a8118009e660a236949494ed9af3b483fc53dbd486a3139630f8aade4d12f34ee03de8ce2beaf23f91a721f868a770a9dca565b62b25f7e9b97b1740261d7b01761978fb30b684c307408128d0a38830c74734813cc9cdd1f030996061dc76b94b01cdf2edb9b037ee313b906d0937bcf9e000020109c186b7eef9b23eea916d93f290991da6ab02b25bc8dc3fa4ab1f3eea4ae1c991ef1ba649d62f9d5e925f55c1c6a6bf1bf0ceb400f6192a74a8d379cca02f6541f6088716cc2a855f65f8ec9ef6d496f00a7ac9f3690a78c5f6921f4f7ecda832ec18d8bc060da041fd5589f0f4d0aa83fb21b991914b53d9364ab9561a6eedd923134c5913f5bd38a3bdae753d01c5219a69c18b85194c1eccd566f3bdc59031430b4ab0268f4e989e17b4be1ce6f779b6e81282acced7f8e7de56bf7e2d73f684a66cf03ef4e7a3539346f321e01322e0e04f6e262acc1bf586508d76a77bf434cc0245cb01c5ef3b95e4e8929f2f2b0bbc13de4affe870e5762d67d2b71163b9278d38c36645515a1a6189dc5c28c6828e69fdc32f4a9124565adc52f8a251bb9a44e75796685f0ccf6689393f1cf8dbd1527110b9f6cd30a35aa017a51f24403e9201a9eb56835b31ed6e0904ee5edad24302762d55c81c664279d0a27e1fc6d9969e278dd7982f39c6e7910ec50579d8a416af27b39a7b3b3c7eada73706b6c7a1de9009db1e052b157024858d4989de52fddc27c09079c404a6a841c7c4bb16bc5daa3bf4f7086cd248e20574cd99da1d0889cf1070239f6ea5026e312ed8571f762abdd7babb6847be98ca6e7f17e64b76bea19b501ea8de1d0d5777c83df1bb527614df927ee196be6fc8b2acda54132f87433d05526dce1b9c9625a94afeb1d11fd48ab0ab3a31c064753b2692b3234c55b8371448674ce5b80cc76131bdd9364d16fa491cc060f8cb624975bee51b74233dac3f41c5791870f36ffc224b3cae7419742b3e26bfe151c9dd1f2f1f10055634259e43560b1ad55930080cf89a9e1547e4d71af5bc12377840fd33410a0fa70b0e43a35fcbd39499a5b536cbe5cb59985839f2f31d64c0567c9af437851ea7243677c7ff18c3b1ab6b0364eac449c81f81e14a1e786715cce1ae9f50f4d69c8f53812e126357437aa2fa2d75113e747a35da9925ba2d07ef82a06425395dcdd77cfef167b1a0526e70fbc40e5c73510eef05e404a15d7954b61869a82f927737adca4d8e1c4e2e827e195ac065bb98464d10fbb5429a67b097a82c0b211d0c494779eb4a52fccf117988c816a521667291ee37aa8339c142867d0cbc4f466cb28d5df46b14d42c7c9218505ec6edfa8421f0d442a24a9536a525d97770a1395627232c88b9788b69ffc272a727764dba085f4927acec48af5b64b0792b88804ea3f695d1a8463934784647d059c2d00d72b0480207f5d13cd4168d279d644753ef3d662be1e13882bad3d225a4fd9d84344547e0e9e52fd57f283f36d6cbcc36e1e0424a7514c49707ca3b5183b9698741baa624de349d3e8e97bd235b687ed0af2114c409fdba4ba483e72c2300efeb36c9ebcc46e1320b79890413a6b4f2067705e89a588d5ad05a32d5cde936bad8cfb89f83d45af8e37b6ff188a1856fa8b84caafcae58d4b3f6cbc785e9d07d616f5dbfd610b899e6133bcf452f65c768d7fbb2a76db2a195ca0611e36fd15a959da9d9bfd63c3e4685a2847ba4bc97aa9c736da28c1cac0e29660fbb7a1ec7bb81ce3f8ed5303935577596ec47cf31b1b2199aba1306a533ee56b11c3ca3fba76bece82d11068f5ad4007014d784b8772a91ec8ea0d926eaf65b8fa09b42145e4d53ebb762cf88bb8c84a35503043db1f88208bce55b7902a14a6fecb3994bc03c53ad33f306d00ed2b6144ff11ce46475f61e24275a13a9559742685292fc9df39c2f72c3a4cce33d593fe5b8835e30db39ae2ec1a8334cfbb1f1127bc553494f3213f727853fe627dd0b41e5da3d7acc5a264c9f712b838072861de4addacbd4e63cf5461f53cb3118e401fa8df0c4cc2e74ffc4d233de5695877377aa46ed2670387f9c8b9c22bd08fa24ea7b6ee2c2ebb42dc4cce8c6f047979fd5d035839106bd2d77dac65a73aaf2af9f71e0ff7b50947a4a81c3c249c5a68bce8fc3eb8295f5a87dbae2c6bdda66017574cc5f275d170693c12d7a5e025174ea211f280c7c6eb3256f94564a4decc5bcdc9020da9bd5f6f2ec08e0af6a2e07e3cf8dc764ddca8f39179a008f9098f43940389c0cf9e2d94a1fc2b6c2ac330c290383b66581a3dc5a436494412230e2a52cf0c51a2cec0797af4d79a0966d2a5d28b8100d45314c7cdcbac4dc93736e2db2ac68c3af47ed65fea35f5602ac50d6616e48fe1aa5ef655aa8c21fbf3c8bf0bdc251ab4afd48579499cf76d2ed0a1f0a4450fe9b4f28334a25ad8e0a5ee184448341db270635a2902c0c93fe9f95770648f87727fab2d3243e6fefbd7523723c21f33f7f47108f67a15ec8af01d04fe9345af89313ac8a75ad63cd6627b3b6686cac27ce0931fcf00846326d3f47d0e4fd03b26f92dd7050243af84c6d9940f32a8dc69fee9cdcc6097371581774528d178bfbd0ae21f018bb2703f7f37675d71b45b6e5a6e1b2f306772c7a18ede66b2656cfb6d5274a984461c5beb1fdae1cecee73e0eb8f1af1fd168a1ecfbfce60fdb54af9777311647d3bd9752cb9b7e0a88ddb977cc841f6b523b941705bffd515da2fca96feae9451121e1a1f6752327811b4e321c168961a926a0cd677a6c1ebc764c52f84dbcbb245379a71e6b2bba2d72604fb2564afdb4f5360df2ba078e73f7491ea18288bb82f0baab4ce003d38513dca94c121a8acf9ac7484f60051bf650b10aa6279da04f546a79316dad6d8da68508de41affbc29b38232d68d147b157e1ee371853ea775d78deecbcf246dd7fd42c69be328448e288240aa4143830941e6daf959fff77170fc8dc4e427d7ceb3b867e2a0be3a59d1f58e02cb2566596ebd2e67d4be252c0949a35a1201e6a8269b35a38bfc9ae3f7c7a4310eb03c644597471e295f6f6c5ea586bcc57b161c569ff98a7190c28fe736dbeda033d9eca6049bfd5f3944d36c5365135e68ea0e28ce036436b8cf0f73d16a0e4ce2290999c4db19d4a3c4d1f8e9d1c8b2c6e0f9e39c03f14cb013366f836bf990207989c6e47b8cb6c85c7608a9687f8ac0584fb595bb034072f45e34b2192820a875a7fd71221789cc737867def9e62174e98d2c9051da2ec3d7541f69f2be617a2c20b0b8f650a4446993255aec70a98ef8e8be793da44792f14713967897eea25e577415e30cb3fd5a4e15f3c90dc6b6996241ae186e52a70f15f355b54117cadcc5845531aa36126dc34e1b288911c700c973e0cf9929a1bc9f2951c5735d97d2bf3ea7220b01518ed6ab845ecd96d810497392f9763744547522280516f8e32b93a31a65ffbaf3f2904bd5bd54561dd22e461e53850119e347d0efae9a51bd7d19dbb1880a5fa5bf03116c3852c68ad8fb534ea6699a5aeb1027befa9788371d1caf01d690bdd89e292535afa74e54e532e78599a32d3569d5a04614acef0f4e540e62289ff96e3abc718e5494cc354d17b2792ca17654b015b886778a8c1fb36488aeadb40baed3d7243cd7210e8eed254878e3e249c2fcec728286b29b9d6ae4d696ad2f3e877394336d47bb5b49ba3ca242e3810a15d1c5d1106ab70a328077507fba40b22d6d71d3cfe704eb9b2e3d9a747f8f34ee7b515fb88f31fcd79efb75f1ed91dafc2c8d00b65c006a8c2a75727dfd73d3c85e22a99b566a47902c03679c1222ffae8d28fa49ebc4794e07414e288ea80918d0e1c175bd92f5e339346ce5dd2dbae32de2c3d2ba972d6dec28b5b4bfe68cb5b29bbba623dec736efa36e089b637ef67f6ba2084afc8ec5af32147fea2d26a01c0330506f2aade961f27cc8e9070c258e36a2798a691a51ca403b395acd340aa7e4be812af74f4dfbbd47b07224fc05adc013fe53ac3fc02b1edeb235f828b841348575694d8764db00a6e2b2533b4f96ab083d22a4e4e4f6451532674608afa345abdc8be2e576e10d127b413f87eca5cbd8404ef3e1ec708ddc5b07ecec32b3c7da3b2b302a73442e2a7e3070f56533af9e1b3670826cad9594ac0c5f83157f0cbd57c873cd21e553315a6ba36c9641e8b99b04a10839c151808041998f54a30086b109897927c4ef8bf7346e28b2fe8e4c100b50281386fd49acc222640833f66b139d598dd745bf445927a1379dce08bf1ddf528a2139987ba588976da28110242d0e2e9ad62d4e89cd5682ff91d91c3ca2aef24b3b7e55053bbd68a77b65af6f402483e98c7cfe2cae7aa9b61759c433aa7b007b02927ebddddf3025b3cdb18ddd9827f36898a224b13d03e9481df2d6743284a0ceb4ecda78fa0f8a5cc5c8c2af394ee7f16c190bc91743f66904c29e88cb213167189d78da682b92fe3d5dd859c7f027aa69e79e9553d591cf5e1ec4d7ebc31c8edadd18acf49a89613bbc9d622358cbc18a7a41642135431579eec9f4b4d7415ad63a1dfb47c3d2ad3a5660319fde1c99d5a278c0d964e6a3c64eee56b769f56156a04f51f85b61daeedf781a7e091a13f3cb6f94d1282a886628bdae38c080b5f1205c5dac25416bac0bbd7bfce6f7b7d1af73d9618f1499fcba7e4a40a39fa91d6b522b1ea310801e640de96d369aa7798d77d804437aee1851c28a1b5f02723e4227edfbfd7e321f8ac86844401d5c7c6a90faaa1d88a7a764dd664cb2cf8b403e3153e99ed244cdb855c0126c503caa887929a9763d0123ee630114441ef804acae7423e6652039fc9bd0db9233fef70410c0e2aeefbc8176b24c0bf57a462aa83e4889e0242443f8880241c47fd9bd87d70a1191c3d61bc968bf7b57666ffc7463ac0acb124385768ec361b51e8aba0974584a36368cffcfe9186ae1d67e959b0800c0b4c4f2613321127e58af2284f4319a2a4197b2703ada3585f6b20e799ff74a2c96e369928b3a1aae2c03af50507d943f6c8a5d8c0aa9f46abc579134eb61f66bc2ae2ecebcd7e140ada3a64044699f9a9a86d54a0c022af5c7156cce235b1552ad75f56565780594e8472f95e92bf7a9d358de59855ba58016b2e10d405b3db69f1fcfebcfa48476ae602f7c559e9cbbd59e4d892269456072e5cce597bfee7419a5a74261629e68f68f305cc8c1c5cb344df1c344a91cee55dc2a8c9f468de44e9414af30c1bd4a162c12ca2434de804d2cc6ce54d8a5ec9cb775082995e8c0658f73c36a50764d22c08b922bbe1777ae567e48b27b082ad80acf42d6b354cfd3cb5841a1a69034578b7f817dc98a3dfcbc57a327586d97e35ffadddc8d52bd87924d4a93db263fc0ff1cd10ee4e6a6bea142138afb624673b227665c73c8fb52c0de794a0dd1466242d36a8b40b34ff81c58aa513352fea7f38d9e4e99ca986149fbc2a2dde1e715b0136426341f7ce399a01d8392025c6087d5f78897f3596bb1a22a74efb2c4e257e46072ba62afb1582aec39f02eade7c852795dea4c99af92e3b99e6e01361e7a42c62befae9eb5ed6fe27ee829fad78010a72870c7a6bb1a2a412a855afac70f55e65096ae61f1be0e34dc5992ef8072aa2e81f043b0718adec684e797b69f416f907f9696029d89cda54de6179ae9d1f764cd902b72c4b853bbab476c5936eee2ae5278c6cfdbdbf281c0774f268fc785deb95d9832228e054cb5e1ffb3ce29a3dc65eaf8108199eb5054b6971657f0e1ac6bc70dc997892770c0f09cd938b9b61cb83e0402777b4190f2930da1c7dcb40a5021c1b44a3a8388cb356c18f4997a1d62eb2a35158ce1e1a0c190277d90ac801a25728307c8a6ac5277419dcb76b4b1f70bfcbe75acb26d2636d8fbff0537cdd96fd30a486d63ffdffd7714d234756977dcc3cda20e7c6f3aaf96e191a80c190bfd823643f59ba4e916dfd91869cb745e3f8c8e48ba1b2b7729af0047d98a423ab5926c4e4263327291b689bfe1453a523cad81710c0dc1b9697939c26cde490ddfa0ca16ca6ab7e145bb040118464bd47ceda0b5333f9d6c75160d392bfe2790a780bdfe17c1b0768b4339b3c322a0a0ce32f92eb33b7a7719d58bf751759a359c72b53a46e0887fbe6b4347471a46a9a2c29978e39c323564a6fb7810fead4834edf81d890c7a46c252b6b74015e91d9112fbf670d4dadc28a2284e0cec117a46f5d766a502ee3a7b6620fbfc38e390d3283fabd941dd407d9b9176de667ecb8e06c23f74f6b46c51c01c81fe49bc16c78ceddcf09812a43ec5e2859374b75a2c8c001965e1addeb29183f87bde42306fc70cf85f9810aa8a6670eb2bd4f67425e91775f720ba8f90a08b1de060a96af173bb1721102915449fa3f51aa8c6eae11011404165165adfd3ee964ae250e417e0aad70438d319943c8bb7c9f096d3abaf2d506def72f218d063f90cbd2b50d03c1d312e56798c659d02cb16d797cf35e3c83c39206561b9a3fee02d07e2a4ad5e495a95b5e413e4a62006d0c6a25d118366ce75560c4bc3834ab0e7d42160640e46d985ecc1d707c9e09e3c593c0a38f932e9871d043a3b982eed294bc52951e9de3d1e73f7d7041338e4930ff91387aa75f9eaabfdeba9d8ef631682b8adf0d1f43fd489c836d55708a881ddcea03eefb797aab19a4f9cf8e1308437c9b664f04b52ed6ffe44bb62a3b1a8831dc77f9ba250e976637c236499917e51caeff442e91306ea910cb83bd0141bba777cd517d43a5e4af26e554cb0e6c330b53388be616c8f188f6b137c8415e32a77f3aa09314bd13faebccbc3709f44d3b20030ffbc894a9e2d8ed8b2c3547e3c2511cf8b7126a03eafc321ebf5e0aac636759d88cd68d01657bc56d9565f5aacc269f8f6ec843e60a514782d969acdea9539a696200b0cdd15fc9fd74d5b5ff9f7a33d3ae61bae9eddf5f78ca8613e04c3dbc57de7ffbe21a6ff0b197d7d629eb8389bc3da650cd3bde745fff6debe1e1b6e989b7c6ff9512333b5306924b31c634571f895910404520411da6fd0c5bf6bad60d7656ba5cd0b83fc8d52f290d6e78c043e0b565904c5ec8b4fe8a1fce89c8d85b2f6defeed14a204415304afb900d4fb9138676061deb8e8fa0168c3eaa8cf10e9f31e135c092a33cfc070b8b9c37be3b293ce82a1df05e17c8598ac06cc2e2fa2dac048b7abf0b417448bc91a1a9dacd8c377bed25ad33428c433fee115c6b430ad14d48bd74ef7475909f08be6ee2afda9d82469dc5522bed23233c8c68a9763675644995ae52fe02906b411e46f95b4f9b95b6d8248f03aaff67abd221b70667c6ef66840a0d2c7f2108dc087240996e4cb1cfbda8f66b2a3243561a4acfd3100e39f348a561d7268e567476f3807349ae0b40fa431533c78d47ca0b997a28c5e6dc61c8d698e12cb29244a267af2a49e5c86a846be06f14535993874dae49ac18246af703468e19c92178c4c77939b39ab8731274ad6f5fcd58a09d8eeedff89ffd0bd87f132702c1889ea6676960f804bc04325fe9c99ef8e8338b17c0c8e7a1066847df8380e657e3727e52a0b76ba58d0b3e4173481f4a169221cc232877966e11f91dd093d974bd2822647e589294767f0b9eb00e4f106571e2909756d09bc6d545907f7342b6f7e2787ff7ea46becccb0531b64d8e3021d1046249063dbb508a4cac59a796f455363c02811a604d158f37bbd4bb0af17bcca57b6611d1d3206b579d24d7ef559dfb225db3f6eca36f94b8aa4a0655613eb42adfe6a60642c90085467b05a2e46a39b886b8be43736b082614ad6165885959136fc52145a76200149c6248f394e9156cd19de90e8d21382122a61935a2959c6a9fe61e386a706399d2152d917ea954a7a0c03c4beedcc957e783bf864e6098a7f27076be3d0e628e251a518b43d0957cc0f2c50768918f9923e605c42da2b91f1ef55fc0db3381eccabcb42749e3eee19166bd1a5ec48b5f7d0528ddd887bde648482ec4770c7816095376844a9faff8ea63a8670ca43d04b8295dba7af67d5e9a867759cf5336e362fa2c84d18f5b38b3ef4b76ac103cb483634f75c6d911cbce50426d3a06f96c38386f7cb7b5bf42f2959b3722e1370672d3bdcb5665150ecedf9e20ffb437cef33a210b2354dc8dd770e51808718f2dff93acfdc5031859d8d0d7742bacaf6668579fc119c607ebc951b0ead30455a1f10c969b4d26f9a80f0abb3c79df5086a0cd2c477f21ca786676bb4f603e5460ccefeb643fe7e5c77bc6021de2407080ee839f9aafe7edf2c084f937e92d5f9b425f85fd9bb8577894f5f40d08f18122ead7d238859766b17fafb47477c06b7405158e8b760de39956bfd58f61692d483a9304ce4406aa010140816b31900733e17c3fa5c53992666bd34dcf1c4b7a2a21d2a8fac9bb11f2288f1cf44185ad1aa2f61c5b50ff6571bf82454c4eb18dcce6907c0b31519e1ee21964f659a4373474b6166d215efb107b18ee4a3be1fa3ebeea41ee0b4620d5441bb7e2fe0fc951d187368ea4dace475c3585baf3487e3f891a61bab0dc1a85a258aef847d5c01465f4c4fc4340c3ffac60bd1e3fadea8db65f32c25495e0dc4d20d05eda74b4650012634d2b323513c0e58d9f5e50ac56afc36b2ef82d635bb40b5ab0035474de3273d7295e0b65e62b78f43f006c1c6f9445fe9dea1b9d7747dd6a16478e234717c53631bffc1a18892266bba3f0f40dcab21f335b20d4ec82b2850944e418018952c2ca50bf15cee053818e8f6d45c9b6373e7aef4c9530b124832ff479e950c121399ccbf2bbec2a203f0745443c9d75d10fac0495b8eba7134cf3a16c88c1f17540ab87f0391bbd069754d4365e8117ff6aed65c23e8b886d3414b139e4d47e6c0702fdc46c1dfd17099c74d945ad205eb1e66f7f5ba2fdc6b5144f998fe37612c5aa45e70ad2f63c2db6c4d00d4ecf2f34b1d309bca591c291ac5a63ec36d21f10d7f243649156a2efbb7d02d43d77ddb8594be510fc39f9d45101baeca3fa76eb94267fe0fc6712536a80b73474f45b2de38984750c7473bd3c2aa1aaed6d981ac5a6f62c700373d1b4c227df7c7f94aaf601f238e591fdb706bcc481f20b312a6a297b111d123b2e9a59ecbf759b4bb2bbc997c3d5ed4396384c210e7197c8930fcf76ed04268e0818bed30e12f0ae10794576051225b75fe91d6e2330e6f530e8305cf562f50cae563d054f7a831d92b88f1cf15b9f495ae67cf3d389bee60b632f73f6c8e919649e4cb332fac3b8878c0463dda4a60ff8fd5ca3919a0c1a8e00e06dc1ef5910fb42ebe9c85e578149cc171146c9e36ff9740a9fe2c69eda12221b0f9652c0d222ff4f0b2a5e79f69f657be3061674e474de7c74b89b5d8cb9bddfd9e94091a61887c2e6fdf6b2eb58d4ac76132238f6910d5dcf0e16f5b24b2c069039cf24583a1b59a1c6e2acdec12c846ec258fc75ff4c56554b73440b4de3772191eb862e250ac53db0e053344f6bfd00b0a01f404277d41efd4ff85038a270e0150afadfbd110271de77d21ba8b99a268bf2ce099e94fb9d11f9b619ef89f3492ac352af2c5a8fc2cbbb4998c3ffbefa69320374119e7761ab5a89796479368d77608650bc4d0efa2746456bdda9398d86b82e3844779a08058624900799ec18f0c1a59327a6f74f0f89aec95d717ff08bf5719d062ff9bcc3268b77690373bac08cfd9745dfc4dd94f25b21ec6e4cdb260e281f3ee25c85de038cf94bfd22bd435cdb984ea7b91f419eaada8c0fcd1461b5cc9a3cdfccfa3cf2c917ca2d0a5e350c6e0377693652d57ac6345f04bb9a91a9b3df696a71ca5ef0e7e538c472c679be8a5088e16b6447df0414e216a6db426e943ea81904e7caeac44c1e3f995233edf0f95e8af9a4cdefdd5dc674af8b4ad972bdedcdf95d547f7d8758f0b318c7b8c0e1fe687c22e5f36af50d48a5ce89e1a4a17163a38736390f79f72483a4fb2e75d0ea10ad1247e3e08cb37568f0715b45c3d540690ab03dcd974f90d83c92fa9846b8e2f3a3ea9afe1b6f809ceb7d0fae2db9ebf57e7c3f187aeb529b18dd2ad4c65aee4d6e0e44e373cf711de1783c584e2961222246707c7090b3fdce27c3c26cd4c7f1c42c2015ecb81ac6136e8449d26bfc97573b62e1cc7eb856c435797229951549cefa5fb659759885099b156b4df54ca227baf80bc2da5f406dde282956421da32465edd9117c76ecfb9405b062ab8a30bf502108d04bc260314dcacf8ec0df617fc09c19086be6b168331183a866473cd2fe33c8619d9925ffeec1c5f945657d4984e6c2e631426d1d6b4710b58791f668a2244e7bdc5e168e62f19a2e0b801faf6de229af1c1596908bb040167d22937fca123a845787851ca812874fb906960c551d339b839a6f762eeeb3960b09d898f0f2e818b3087c6dea41cb2348ac38e0948983c02cc222b9f7d390053f1d905e0f4e7b06ba42f2807334e9d7cdf69f199e3c7c45f1b6b5471b6ef1334d93968a1150862473c946a61607425ea2b7971a28d0b8f21a115e5fc6f82915b6ade19171eb534845fe2cdba8dc20b37cb0608220d3a71e141c62059452bee044e1a3b9ca15af70bd1a98b14ab357443ca92f06eedede8f8f14e7115a09ac3d04c421b1e69af0cc91b1350276a3b6d8e679730ac341237076a90cbaf92cf0b4257e40f9f11c7552f0fc7d5dc401d11bf2358445a6adf3270eb0cd71d8320fd431ea71bb3fa48b8b24b9943d33bd927216252e3c5ed0214da145f1647a5beed9f3b54db058526824cdf47fbdea0529b2199f1f8939ceaf0b0c606238b453e8586eacebdd2a06afdf9f1e160846104a3d11269203ac96e93a3173e2b38e3ed090c50f9a16cacfc7f3b82a7c27f5d9f47683dd52c868154932459c844131b06c7a953ca93b8a27024973174f13e753ec2c08b06891725625beb2bedd3d561fc5fb9071688b0993e221621074a646c1a46d7e59784e04b00db73a4113aaa8e8264fca1caa4e390fb6cc5ddb9e7479ce7f64ea932f6a9fca02b7b7fa13bb335fd9f1804a4d9f08f6ddb355d787972764729ed3922f58e33675e86663a1185d27a6e12d4974b0e159598fb090cba23d7f78d1d2299ce7fb8c8fb5c444be4a8c275d8d9247c5b87d3050a31e00bddcd27aa936cc349c5be45247c87a9998b1a10eb55bbaeaade39c228a8f399035a9851ac1e0d97349c64fe8525d7405fb8c90b90e0ee97a276147a417ee3eba35fdc7fcdb055fecd67db341448df53f1681cb8306c09cdead29ee45029a6d10de1aab2283f3fa3dda26581dec7755f24626b0381f388e9b60e723a2f3665ea8a9f4321bf3ee968b90e9428094035b8dda482d2ea064bb0104abc5177b04de544cb9e6c0ce415ecbd78d0d18ed0ff3e855123db223217148814bf3c1d8d0ffecdd5e6a1fe2ca9932619d58d12d57525492f804e8e9c13d0ab3d4f38ca5c61898cd9fa0cfc0f2f31a7e1312d7c587ec26519c553c3ff4d90cc2557ea575b7a915b89ecdae015563169bccae65816c676e3e88c52ae6e33aaccb755f004839a82f2f3838c1eb86f5c4e6e574e3a403ba17c0d660d266f1a65fecad9bd3cc380e7e586b9386717f1269b89e29a8d0a91a39dec598cf896bbd252ca0acb0cdcf23553a53c9f8e02f5916aa04c3da539bff6b0495dd7ba34b1375b242013a1a839ab89d6f10a8bd0ba9b8db0c9c6ee84804f296fde80e58bfc03df35ebe261d4a23842096d04c0432240b894601f8fabd4d2fb8b3d0008d3805b08174bf78c0ffe7f38a87ad4fc8733091e216c0cdf827c5a7cbd4fdc1c72872e69f1b5eb63d922e0364599d6d85f982fe0731e07821c81c9cd89dca548f63be25a4bb5f849df6891e76f7a9b57c11e4befebf862115fad70582321c28dcf2d897a0366026bc12dd2fce585dbfe743793422b53c495111083f8a94f053f34d1ab438dfbf6c5c6512382aa5439c8c57aaf8683dae648677d9ad6c2091d3b75ffa00b5e3a7db4abba9468ba36d498f32118a62e0db4598e0a4c1c4ceaca3aa57476df5ffcf2493fd121a004aeaa28e58906cdbebfa9aca194ccf6a5fdeebbb44f6906aeafbb23f5031e5004f3cc8389b6f5ca439990d2a238a599064362530b94ee2ad5d4de84ea41b100dc6e5f8f74ccb2f3bd9582afcedb77339331a16f36ac4b6c4f81f6d61e8064c7183e6d3c8597fde19883418cb4a4d306842f46d67ce3bedafadf6deac83abec854b78a52cf04b9bd1287dd8bf47c19196e1a546605e93720d7ad0f90c3eceea0c8de47fc95a6abe7a699abbf6f957029e9c250e9c652a0576dbbe46505968d857bef727fdf32d02ccd038c5301e0cae12c6d2ffda516b454e37062f1f83e64322ad82acb0d0336e3a0e7808c8d95f973ec520b61fd116adee145e960536d4cf32cbbc1c5f29671924db7949350afd114ac1fb22e4c84ec9d2348938eb9b01b5d9d706f840a0f9d0971bb1047dc6d60070874fecaec9221c4b89a521e1c18a087bc00d4d6e0b3e804fd8e038c21d32f2ae966029786c4c3a7c9f15fd134baacda222b4ad02a6cbbc484a117da36279b386ffd01ac63860adee817f968f83036c092e30939c84863384db7b9fb4a7433326db63d2cf3a8e28fd3696fb221177fcd5fcf1a11b4fa559ee8678f3c580a349ab0018df287ddb60dd5588696338f54353cc9168fe65801bca09e3d80b9fc0681f0c4c8aad23fc8e3e0eb214671be5a95e660bc444edb2b0f751a7ffbb7a0d9892dd6059dadc916f1dc3c45de544d6970a25751535122e59afcf08a898513415e80859fb58fdcd94283f7601dfee9f7e79d24d5d9ba6f06320d06cbd7dcb3ee41d011129463bb88b6b9def103ecc39a866772030794284361a49ae2e1ada374b8af2ea5aa8e0e73a43b476f7a15118f2d5f9f26792b57c95a30b90478d24a1a6fa986e6b8ab63e914f89c89561e8b57779d3fbad5782b728501c99ac9c3d4c0dc9b35f42adba8f54195dab859f7ee68212597ddc21d7582915fff3a2eafafd7495e4b972793b3a36720131b03b17de64e522296ac802cfb3477eaeea615106132ce4e2e5788bad9240feca24eaa7b6eb66310e2ffe0e979f117e6c9d1566c063490b567ad9fdbc0ee5d1f96bb8db2f60caac29ac5cf6ca98503aacf4925ff3cfa436eccbfd895bd58c5fa5b34c0efb83f625027c72a1542ec62bb2aade7487adaa6581a73c74df832b6df9bb1fe832f4f7f03ffa6936b9a0acff6b2c3768b781225ca6e0983cb75c10ac2abb2e8c421ddb0dbfb965f99c7703d0ac47f7e4e8bdaa50a41dbe7babf8d21ae4ee51e8ac0bfc30a7d9627ec4dcd0bfb63d304dc03bef2d72c45a82b1d956440c3966eb2d22b12765962745661f656a1b9933ec5a5ebf6e08c94f0125bd5152a22c83b9ef147193ba2807ceeb5aac427d3e4e75c2b70374be5fc50c8247a98b20c00fdb3d53a722735128e6ee06be98cbce7ca38da8c512f1ee03787ec2c5430ab3325dbb2065d3d1f5489b446147e25e6a4fcb3279c001a8ef385f16349be93fb604901a5c3c332cffac341a00aab19db6c9d6e6d36298bd40bad8a84f80add6fb4a8972c0b1df317d1c8bd0635c9e4472997", + "0x02f65546365f449dbedb4d15903f8d2af483cbcc493fa0a9a6d1d982e0a353b81d20fe781245e513126d1f941ef3f17dcf3ee84b5a026981c833b726fd4ec0e179f891e14fcaab8c96e1f21a9f2a86efcfeb8ef4aab91c7baa37d5905d09b3eb4a8f3bdd149d533021ede698c7e59d0ed3a5f9b1c55998e6dd94111de984a50bbaca72956ebce5e79b8ce29ed039ecf4ec48e31459d20f6d434925144cdd0dff65b1de59cd3094b88294e5f9f6fdd6b8e3e42234b6ce1cea958fdfcd748cf0d5db8425688554243d688f6cb8fb87e390b0ff52395506b5e2df2559da156f0c8d22acb5424fac294a72ec018ca4784eac04a82e814e1d6af9ffe3d9da26d9d26a326ed10ec54f9370db7d56c139982075c0578ec2e014958929a26a5061ba9d86767c6771e9e14d406f477b3a09c352687ca62e62ed4b4f65656f4dabc7d2d59d514d82099e19fce2109d16f0e4e5d2f001ccaaf47b0f5b8c1018d6531af7fa5e974658f62dda07e53591ae7f9f0a7cbacff254f334bb5d9457fc5c3a6265c09e10b846cec2db8dc966b36236947453c2985ad6d3e7690d65bf3646b96929af7ff8a5410bede3e553c11eafd81fcd9c01c34ac105053634dda01257393f91007182638238228ec94778d81221226097f1ead47ed4240aabefa5d2d315b6b1a20d50fd7e1c39a45bbf517eb3908168f64d5c6742cf8001aec94dc71fb3e6fa9850fd7374b1ee06921c244558b6a76c666c9c2fed2375582c9e6db5d997abdc2a4893c60dfe6226c4096147568100abb137e04c0b4d06edf5c3ac8cae9d227b926d15cdf1c6980a60f38723488f7d96555d93d2548e594fe8ee066e5cfc30731d0bf7e241a1f9eb07e3aeeaaaa413639b84d39a5cfe39627d6e4a02a006fbaef1a6a0615325d15b9aaafe5ebaa93ca28576f3e85647938b5d869c2006ee6e4ae83cefea2de0cffce6db3682269674ef24f6fadb21dcf974d727f3c4dbc7b987302eb383982989cb112026747cafbdac25a923b1f919225c5f8d9c56b65acfd3ac31327ebf33f6f6e61f35a15c5f1bcfa8d85bd682b268f3777bb53e4ef1e7da3b3ca334bd80f248a154dc40d8af19bbb902c7cc13c548d2a634b3cea58cfcac5f4cb4938f69bd1ee5c62824902d4331f32c3bdb6841e6755680dd76b6544df2f440047544897cf1f1f73cd46e88aa4a25a9c3902b8986d1c77ece4c1e14dd2fec66aac966aeb76e4cefcd0018cd63850e851e17f8c8146f7566f7e187e0f41b3736ac94f66bd92063ada43e677a08e1792e3e55ca2c9d1f8ab11a6ac6ce9c025cca89b57582b4a7ef1120169807350b54edc9e1fce6d43b4db4d031e0b6253a61ffb082d320fa80169bb161f1a80c9c89b59bc543fc8e74a60f04658199a1a702c00634416cc56087405efc0d42b262c07a420e4dea46331bf57625912d685363fe651d39d5101a201440c01c7ecfc13da08030f1899a8ae7bb3af1e279960dad0417b9427f3b17d43f05d5b1f7121c8c57cd3a1d01cbb614d936593e24882250475f823d688b62da6e6e4e0333ab50b1c0d3d7e033412eafe6a707374c631fd5a6f09f3c0ba73e64aed11aabeed0470867f0204ae705427e089c168f5d8da6721b745e3df21c4f5e58974148f8388f0f46b740f9b3464edfa67ab61d433254d918067b4209da50fea8bf719943a306bfd96fe595f9d57aa62a762474c8c0b2e794b83d9e8cb6621f3659e0ea7b509c36de9283903fa80b271f1ef1bac56b3f38800e64751be6ddae9d0c77f1a88419d84a5068d9d25a41c5e1d19681e6aa7ebbab81dbc4ce88beab6692526dc90aff1dc50a9c77fba9c9b3d042607a79b820d08afe4b74341b9c7a3e36912d77ae71c13fd79429d8f7bfbebcf99e5cbc14368bfd64723fb5033290725c714fc1c13601bb02b979c9cb3d463cd2316784017422530a4b803b0978b4c4fabfd26a98c01b2389b1f0584d7bca5f7b5b3df90789aa00360c24e8d94a607e1797dda40d4b4e1aa08c4fb4cd7fab32fae8175570819b1ca6f0544283a4f7f5536c492dfc07eb132cb0fb273c62fe6426a88442cc3bcd8b0bd2a295fb64e28e5f6f5373c75b5886499c067fb1199a75292e2e7d6dedddf08a93b42199aac59b80388a05d3290b22c57d7bd2e5ddbdb504ee65d0ecb634db395ccc559aba5f7010c752150931ceeba290dc1cb717f3890b9f6a6ba2481267a8a1a8919d79c85efdcf9e4d5678e8d09852fad9aae10c5e65f3a4c83097617c55028ccc26741852495cae932bcbf4cb90858e16621867dc8d9e5412f79f3a1e36f075121e77b83688b7f689fd457cf92a0245962bfbc61ad4ab6704a13d49c9342bd6fe51b8db6665ae88d6c6f2a50b385a1c22725c7f99dc2476c8960c8ab3aa0b453bee8ee6df1d1d903f82758d64414b48a44962ba231e081c2e885f0fdcea9c0a900bbcc31b02cec6a9b3c812bfff000072e7d60ada658f2befe843c03db8877e431f436a07f9a7f4e5de0935b6e127e2062609a7f251c671646e964324cdcc8a5c86d215b6fc2cd7030c564aab8acfd880043def04d670072d94278996554fdbdb01bcf31e9a480a924ab6a683501da75e22ac2108ba4168cf1cf0a206712f8426337d4669726ecccb291c8476bece8a5e48165e871a61ca488655e0fab6f428ac25d84109bb08b8363e6e3dac128c9bdddfe15aefe54270d49b7e5d30ad88ee49c27b2136bf36cc9ba3a42ec0bf0ad2c375cc6d445fcdeef1e5b778cb5101c20a5c3c3c105cdb5e9875f5cb4eecffe0db3d2bca01a0cfa1d634e8df86943bbeac25dc152482fbd13c5411c299f4e249718cbb165d13c8c8031a152876da45bac2b763b1d5b76c2650e66f31f4e57f57325d03bdabf8fa05b070f720dd7b9a4a608d0aa6a596d3c5d853ac5619015ae89ece419431e2d83910cf9f56d1462abffd87afb82f4bf21d7ccaf131c83fde32c0a1efc93239b5f450182b73d7f936e8a86ae1fb381947e71ffb77fffeca65ed80bccf29bdb8ccf83eed867272cafdaba65e77b821d4fa30f99c0f93f9810884c0a98f273ff09b86323546daa6e131b7606eb9a095671f8cdee5bee8a5763f462717f84badc4856dce9c8567c8db46d2d90c191063503ef043136e7c9a6f57b6d457ade7a8ebc91a8910e0e484498ba5ea8a7959f81f3733c0e8a33aba68b3643cdf7f2dd572cb20c345731a032f13f637a1086624fb6d2e5d29521c9a0fdf00e9cb4c164a37a7f06332f409198572a52aeea6265e1c4aeb3c1fb2bf6c47718a68576eb0de6f1ac09292d3e810b947fe3070e099045204714f173190b0a6becb5766bcbcd620b9d52664728a302c9617380c7568bf7dc50deee26c4f1df65b885efe1cbb59a874b5d76c662c3bb0f0589b09715a661215353255401156b77009f1caa4c8fb3472e70ab0ced671107469bf94d5269c9d974dc7cadffcb49cd9f1d69747f18a4a31535afbb7c22a8891132d3dd15f97391d08c89e05651e0a1b84cad718d745400269935d9178f449a9e74779887d6a1a001af1b12e09299c23c4fe211cd19ac2cc93fca8b0985df774a7ab1e6e497a03d37414e9e69111a1de1efeafa5e3905026ad23f5e67fe62a42c4d2e92b2cb8d05f5541af259adf9c96811ede4a3406bdb86d551d253a56f0fc79e7fb1a20a4eef5c38670bad7dac3270bbbb162db01b1f81323413075a8490a5188584c4a10de08608f1dc934ef8202c17e4f163571282cbb084366650eaaf210d867217c1eb61e9196ab56ece6f5fdf14e810114cbf1c01c5c4a92ce087bdc6d6875741ff69f0e776094e5fb7171fa30cf3563773d30f3b52842d1a27599d6fa6d32514f3f588f33ef55227ccafb53110cfddda63cddc38b835a86e987d5f22a33313d1f86b11567a9ee9fb265cf240f9591c8d584433f072e845fe00472306bef6c1053471103fb8665a4ee89db574d31490eb0e18113a414f86988cdab369ffebf5d098ef12393a2430583d1418b1366a39f72590c776b53b13611b02bdf8af4696b1ab85f7e403f15146f9bd9c23539c37271ab2b5f75efee0ed4b89390f22e8ebb2d2d7c704febec9a882aaceacff4ee132d6c7a06ea61b338d1bef7687c58b724c892fe1e4beadee838bc7a29ff340ec6596b68c33d66454be1b361389cc54f7ad44daf33907983ee1e303503833331337a7ab92ea13ab2930c554d4b14b428c568f0eceb08d4786a28f2844b70180aadef1c049adfa64789ba332b05d53cf50bca882677ec12df25f4b841e85f126ffda12435d625ab1752abb4e14a4537cdabf0a465a59b2add408f52fb63c31bd9c6a0c00d4a6bad7b57ed8d46bd3d64af400f44c0e5f44b1b8fdf297550499ee774600d9d5877598dea4081a8c340f6f81ddedde694b9e346044d6725797b98dbbc74c8cf17bd2cabf89b8c4766b9f3ee56ad1d989bde4a90307c8fb6e500851baeea63dd5687d4facfbf8ed8f84aff39577fed2c5de2fb2ccd2b4b86ac2d06b152a457d8f42e1ae1f3126a02957bc9640baef30cf681cad55887932995ca43ccdf5739228755168a013104e46443ce6199dcb335ca672c48c480d6e48a3efc3d7614d6f44f5ec964a4e21c8dbd4a0802a9371ab963ad1ac52e03c732df8385fb726e42d9849f04a39a6fdb8309e1f2813c46563da14a7592b21075435c935d9f4fb59831e505c5bfc97c1d3d83f68af918cd907b34cc1a78411dfa78272f75e912d5e6afa024bdf162e806a9bfa2feeabe8636c170eb174491387ee87337133951c59fdc8debd1b917560ea7080262b9f2b1477169e16b4718d99adf04f30916bda7be92b07dba5a5e5dc68b87730f2dd5b85a7f608fdfd7195a285980f5faab47f8ab8110e2c85cc68bef9f3f8250f38b72c6f684d656ccc27e538b918d9145d170dfaddf881e0a5dadf39ed8028c1c7ac1b67301b9d403568c705bdbe4eed669822bedf0de34f2210dc73b39307d9a0890c4a85a1e24df68cd61e3ba3bfe752186996e7e69af688b9f5098f1d0e6c6fe6d08db1d55b8c32f908ff2d9ea0adc6807c02f4024e2021b49e6cf75afccdd6a508564dfabe199daf15f8a9114bde901ca8683d21b541d02b31e6d28ef7c7e1a36373289bbe34e0109d5631c30951d806d5e926c7ecb57d65f36f234089a2da3b20747f93cd4532041786799d8192059d00bd7e69c1d1356f289523a74e5d4faa16838f0836a1e25f90134de892e3b859449a3119612f83cd83377c555c23da0865bae4ff910a70ab73c9d193575dcaf67ac995ba6297228cbafbc9ba4469953543ae7a82e9beb85827b2946d72f16f8f06830c855f0308cd98273d5a838fc5ea9ac351b65fc6dc2389b936c7bd21e4186d43436feeba4b6e94a61c8ce85de6eb8d27e82a13bb02eebee48b65259cf120bbc46f663ca86e5e8443dc21d979bfa64d5baf5a7abbe589ba7ec4fcc81270a9bf657b15aab516a184d3493db66f43c54b97995781ea4dae53fd51bd738c8d9e1eb319fb0dac5de2a9968e826628dbcf4885aaa2765f3566e348e34b7eb78da4220ee0cda3e636923f06c7692f06d64bea795132bee41851eda563f19eca12b323b7f331716f41129f0caf30af3802c2d67720577bda64e8a739f8e4dc3d1636166265e0e590326c0067de391aa185238c4d017044b40fa0abf8f14d5233bd1a156fc60143f5ead1b1c772f973e6820488a9fa4980daf6963178225aa23354a9ec96c5f9ded99ee78961c93fb890849ecf66676ef989965ffe8860aef8cb88dcec5b6e28f518a03b746c5d505ed74ccd45fbec6953f27fa1faedd63ec5de33346746d40747ece7d9c033fd5d4a18d72cf4ad48c1a1a86e386dc7f5b8904792e41fef950bab4431b7d354960187816d3cbddeb1b692e680a732f95a7a77c5ed98f7216768f5d8c8a315819e11aec38ee278bd811693380100081ff5c0d3c1d9b445953f1fedf913f9385d8d76544fe54c76484953d1609ed3af6cf91c6c165154546948a5630fc57ee6e21258bc0dae1b68e6ee5bdf740997d99cccf28b287e5a06d91860960bc8f1bc88624ddea1e015fe0263601d2e5cce39ef056e2a3faf4cff655ed8b418645340b0b971fce848986e1d3e01757bfcaea76ea2fbf25d8593a8ebf20e0684f8f12a8a95d7b27a724a8f6aee14be3153d8e839d0e0e105ec7ab7e04c3d06ed35e0f27cc033fac87475cbe85a6828e352274bc9f04cfe7708e946e2bed106212b6b082d619362209bbd957392d9a81f0c8f9cebb0316f5122e3ab78fb5bcbecdeb39009a5fa15875b4ce884072dbb51cdd334f70304bb1f073392e6106f4190d00501be1be1907f67d147f242fdc2d1184335f6f04335dd72cfc2324c489ec9d0024ade915e8361eafff3801e969882d8922ca2041e8e13965044c2f44018d8b7dd553e0d19b225ff54e750b4f5887509a08f11eb2319bae392f3e2f135476ab0dff426d59ea66936cfa6906e94cc560944b0fb6bfdd4c6d375142a20b3a6e14e39e12284721f774876567cc15e25ec7df3c4d6dd10d50d74cce215cbcedfaa06fcdd51d74b5862488b5fbcb59bbc4f0dc45cf77809bf8ed490fcd061fa7dd7019f4be4ed2b800a7884e2084fd6445cd608570409a014ed5f0f6bc9a9e46f466ff75db2e1741356513b9790dfc181f5441f01fe7f272765996b81ae96deaf9aacdfcfc2636091ca94b72b89041c312fdf146e7be07099e6752b2e2152e681b26a2dbba13abd7ea24a668b7ca39df824630727bcc7134b792c02c6917e5e4390a013a92c69473c56a31270b8dae08222fc018d64b28d92c8f5022e23a44050348d9f88f839f32fc736ef1523ef65916bf3880c02a93c081b92670cf9e3e70bb1999839b83bf69a51cb951c35772f13f7de00a688b6d4be48e8c1283b6ef9db57652ff6d72bb4adda440dc0fe65d3802f799e40c46788df030f14e35cad12cf49fef897df186f81e2f9028100decc4883ee0b09b65fc3c36e579ed887644376498777ba8156ddcf846a7433a80b6f10168d34b8ba61d209b9822e4b929636371a762db38e60a86d555a21c530a7c84b20d55f0a7fcfce15d556e151da72ba772d8fe7bece119a0b12cf3ad83082ffe16cb34558d0eab7950d1a7040a88f4fa9379e46d0a770ac45e7f29e557ec536e80c36c9371b7ea8cdcdfb1a1c1b633746e9e7abd328c6e3662664b8b0abbafe3bb196ee78a84c37887fc678e67f39482759e8bac81f833d695debdafe79046d45c777d9fca39e4e9f6c48e7fad516049bd94e9d9d309afc87045bd577d17aa16348a1fc9df4dd52eea7a549b62b8304f63df220975ff74ac44e26574c81298465684956f7469fbad378561f7b263fafd0fa2467c478f065dcb5b4c618ad8e8aed599697d60ec6929a1ed7898856361ad9c44b9117e614a91183ca66d79d1cd12fd820b931d6a85ba3ce2a895111b6031e7f218985792d7de617702320dfb5ff069fd7c641f2876af43350b4175c23d274118320ae63310ec16df91b43d687e16de4a0e70d4a26ab453dd1578d4e4d47ab6ec03a5d0c70bdb72abff9daabefca701af2a20fb06aaf291747b7d45e129de9be3d4092cc9513707fad90046b521e697f634aaa7b6760fabb89bfe9d6d512d733a57def72464f0bf498a75cc9d755cdaea733ccfcac0345e0a8426040ea7f8386edd9c8db9192b87fedd8c0ad5e047c7de0e4d6d8ca88d1cf27fe001a153af9bc49e8650ddc8f3fee11edb2d551a5331251a1c60fad0e0499939acbad6232472c20bea3ad8411bbe9dbb1d26256602489bb3bae9478232d64d6aa5ceafae6604b4322f796799c81c44803d69e3a368211a2f295b5a9c983b011ba16705cc2a5f28345c1f3ac389e4c85e2f4342adff8606535ecf4d59aa66ca7482e7035b38f772c7032a77fcec2683c7f5388504bee8c2a44904efdf35b3632129b1a9589d5729cfcf673506ed14b09144ec08d3c3e239c5225043a625f2aa3b9b8f4a469c72a8fd199d0230baf0ef73895bb837393356dd9769ffa3bf6021d04c510ee090728e89442f5e32aa1ac50c5b5095e537578b1aad390e55a8946deda647712345953ef2c4e93dd958c9197b904c3712da464e3b5f360e8c53a3db44307dc2a570b160d412fb897e4334b986834c46b4c8f1982b5bd5d314cd36d65af99ea53a5c835eceec1b9e5469d7d3583f430112e32e64b15c7ee22603d572472ec892eae3c2e874a5efcd80bafd7cc49d4bb89fd9ca36290605f7a7fc59e506f0985339515270576a10d90560ef2d1f9527522ed6429152431a7f3ea588085ad7438abcc78aaf14b7e67c7e26f840a938cdc8698b81802c89551f3419a1da36c38729023ec81e7f665fe3a795f977862d6fa8a745a60ee2846e2b289b1efdc8d4ddf7c63cdc7ed113d02ebc7e63764696a49305d776cec60b002f929d1a3702bb7d127ddefb51f3bdddf29c0b3d44fdb612bfd7789e53635eb56a148a55f3baaf3c6822c9125ecdde05b6cd985fceebd3407567fc44b99110134e9e3091bd62c8b53c671c2231ae687e793ee42364b80c0d9401e5da1baa2825025f08bcca407c9ca8248e7798be5b7d2ae65a893a37368f0c5545301abf473ce087ac676e44829415232f162786e59c2f2d8f4ee9c2f41464217a0d5deaec8bf7de3e28a365686cc430929fb57f3cfddf272289eb24994836351c8e0ba925ec89219ac58995862248884f69ddbda9f908a1a90a220e8282adbcc36f52483d398e367e9ae03e2fae0a871e307e9f72c269f45c47511f04bb0de0765fe4613dcc303120198f563f21c4b3ff063c9494f139b99282a1811a912cb2dd117568514f4d23c82f21fc6f58071531b6fcf0843c9f3c59bc1e0f6260f16e959b3e445fc1f9bf663343aa0b1bb5d7e6ba6cd466b937ccb33a380b216fdc093d107dff66d4f9cd4c0948f7e83c8745027e781b69ca93d04690436b5dd37e0c15e8f3827bf2486a6e84a5e5cc0f880b4125d6653ea6b8b77cb1f7ae43ccfcc44c0d6462661d961adc4d75c4963397d09e977c2ae1a09daf6d00f04860f390c456bb1bb9488dc4af5b3bf59fd79eea1be3ea24dc15ccaf3014372f976dd708aede8b6316cb6a69f84aaa0942b78b868b9575cf1d5d43505898be976bb84845543a260f7aae4150433650b6c248cfc75ad22d3f07487b5313bc5171245dddbe287007f360d0d0f8b1ccf5a6a8b003df38b9d27b7960388218b2bfe854dff9faf92cc268e1f3ac125b1cbca799bed74f6f709b4f83176619b3e9438efdddf8190243e7ccd7e1c3073d40df2c9bdcc86f58f6cbc9d56be2485d992ed654e6e24c458c800023b22d7000ea64cae27586ec253b9dbd483a77b42a1289971fa78559404aa9e8f04fe29c8a71c8bc36374044f73c5b426f6aa6f60226f88f9906a018e75c58ee1a8bd90d60548160deca2a4c402079333c69a21aac2a5edeeddc46f8f2eae1809248d4fbd64e34b822f298ab7f7ea0b0b6a3c822a563a5873f559c7b81550f8edda38dcf19797aea5e1e215c45656e9abef33781d0dcaaf2413772b50291ed0da3135ba9f9116dc1a0eb693089bfa51ae130a9a1eeff786d619b75d1773d9b7647e352dc90e18f29d91e624951231c1a3d57845de86ee0a67bcb108c011871479993e86cb55d47b69c09dba1a83d8bca77f64887e9ec0432285246b8be9fd8818df48e973bfac21e7475b681e556be1dc1dac4634b60a30a917a66bbfa0706280c0a5849084f27babc781b0a40a94849e821402a4f37ad09dbc2a60dacd193c7cc0dbba6f3fdce0a19d76fafb8830e4b802eba89a8b9546f1e0351bd42a6afe94220a1847b82ac2e71cf25b94e737061142b8f1fd810cd61ef4a76edc64d21a19a7a99ee4555326d8379c8c286ecd48d6c0f62025611d06676b7cf5147daf503c5339ea2730daab20415133a412fa219e259f33b8c0e73eb18c4bdb5976202a894ea2294c2698e0a51ec49e6e05e770ec4eea045a143f3c1b1d724745fe6c22eeae63e69806b4f27acac7d5bc10899bbcbcfa792129be99a59103c01783553b6f083a4fd4cede2e01156dc87fd921234a19de4061fdfc48fbf8f41629bf460646af5bfddac5fa7af9624b529864d03d06f15bc7a019d809d11ca6daf6219ffe30cbac7ce6b95693158155f54881febab8afc083afb444e2375996d98947734deed4cc144cfc9d1aafde8c3f0230b9022212c69882e514d650f1821ddc339f888ffe77cec984a177ec8c5eb397201435903af0717497d7e0c9e825bd33d5f10159d695322d96f9db934db873edcc0dfb876230e90fe58d5a49fa5e6e64899ef3f27af017b91cb078829a92463c1b7e06a1ad33b1053bfaa1d0c971a11b32141c2b0f6543d27bb66beb9cc5ee06d2545dddb32bda8b5fcd94b9dbef067b0644adfba197ce2a5c4585074742f3f61f3d444fbbc42dceaad8166a76e978e0998abdd01b3b999d16960d944de27e1e400831820578225c7a1b88b818f313f9a9951845981e3c5095b3917e4803d7af2da4b937db6c26fb94786387e1f9cc81faf9ca09999937cfb33ab6cd8c29a916a1af4330774cc9b257515d47389c98a5701d9849a393009242c335e0661c2019be2763db5c2a0fe8e8b6725d513817a6dec2684414ef76a2365e117d1e6357b153aca38d9f9a1e09249c5d759ea16a4ba7fda799dfe0ad2dec0f1e5cad9b902d637dc6e82656effb2d0c9fc3684ffa3d3c62a4113ce14287369fbbbf57a446db93e516ef20e8a09f0a92b87e768f72be7b5c23d9a277587f7740daf933f9ee843c1988c216f182534d356d08495d6806cd366d208641dbc0f4fb27a8763bd73b7476360533d536b8d1f8213af040dfc21f96be8709d22cb4ed29efb4437f0627ab26143bbcb1f67387429f0051b348d5bc62c6e8ce1cf6b693bc5b4510bfcdbcdf27ad530a4209a7aacbdec30fa1634a19d04d439957e8538609f4b55db705bd4b3527af456e5f94c2eeaef77fc11879d47988f081bc4b88bd4c60aba1a9431e8ad10d883ad666cd67907c5ebdaaf2f5c955d98d50e94d8cbe65c60dd446f02429ed55a7eb3d150b63d319d1e40f96bd89b64ee77a8ce6b6d9e575ed012c143ef1c30b09947c0f61ebafd8d6cc9018cdb625e0f7d17532b3326843ba878cac218cb304da6266222c07c030bd4b8db772b21be83f5e91586404cf2d15ecc321e999372e8a3a2c58c81bf31755ed9412609609b5151d0eb21fc01881d43b8884ae3f788fbe57763620df47e8b1858f527ff9fac884c50b151c205afc2f9da370e39a3cb4748724dc42a4698f09a93031b00594bb8eb3838a067206a870d37258631be634e73d4e347e81e0cac2224e638d56ff37688e9eb4e8ba0a2d50fd486a18fbcd4d830b3c17396f2e0ac399eb5c8dc7a19dcedbd6dceb9fd293a4933f5a3689ff76fd0b6a44592e3a841efd175a818708406853183445fcdbee8f97927a39ae584e29bf470aedf03ea9da088d8ca8c969096918b8f0e8a735f362a73450e93a4d6c65bd21511943f22595103b2b3edd4e2307e267b387d39581e0bcb3c22658381f0eb2505c9103ac5f293bbc0fd9eb71cff38a45a0613b4c5bee62511743092c0fcdf0222a10da85147022958d601c8122ea0a1606eefa3b7d7a0f4b06bd73775c937e8885a73f0021d468df480130fe070febaa49b82b9bb51c72873c205b0a9fb23405728061eb39bb108bccf5bddf27997f3126bdbe65ab5322a040a87d31978da63a435e06b38ce677977ae2b32d88344d266f24929ffb136b03225ed2443ec7a95321dbcf6e82615e79b9a2b5c1cca20c56df5d1f4ca986260bfcc865be24503a2fa710f5df6f7377d93253aad1010469eec706dab26dfd1540c0ba6e69137541d9934f55702faf85593759a5ba71a993b6c111fca2ba10cec4bc0362372b8456ad061e896a4c99397f1c272eadf30a6abe1bad4b5a01c7884981fa53d6185cb00c7624e6899664fa61ddb9ab36fa18d619e031a52eb325705313014fa4d9c29a4659ad1f8f7b4066d12a2ba6c6b3d004a35b59acb3be95a57f04fe4dc9dc0387b3ddd8b331efd40fe588bb8c1b7d94bd30950754034ecc22ef8ac896d74f9ba3caaf3008df76ada0f7821785ef0cf773a0e865d307d070ec971c9b28de611c0e17819e942e38e3c13fb82e801467b71afcebe8ede09ae3a8039ffbe1eca171a90377fcbdac5dc26ec11de62748dbf482247928e0f4b77975544f9846fdfe0e1ae77ca68e9c02c078828fb587b5a807ccb2951bfcc319b23d69036692c87810b57b794f56ca33ae2d7bbb453248b2657c12c7ec217af797ffa7e8bc4cb14d60a925be724446427ccee1f75410119205b2cad4eabb750146de47c9f9ab012ff871821c6028cdff6f046e1c114305f5ebfec762e018ab690e09b106ea07d7add2383ada59eee9e102d6fe9adb24745d5fbc2c73c9201dfb8a02d69c79252f9994c1f77ec852cacc135a395623184e8ff654db5c915bdb47b77cdcbcedcedd41e22da0d770e6b4cb851107c9e66cc6d58dd6cf5dd9e5fda6bf2dd637a8eeceb9a6af3eb1871110a8ba1c8b233c66aa0e287e2a8b3de146d3db3ff3618a3a29801976a5914b43ea231f8a609879093e2a29e383038376b594b508a40c69745f38ad75799a26522428643a5ce135112be204a4843909d6de915c51002f951630d3040a38c7026c2ffca846762e4acb814eb8eee7b924c2766bb72d328f855df4532fdcb311d04f6a02259fd181d816889134ac2444747fb0185b041425e4df0c19397b1edc0a3a59216121ca17351d33bad3ddda46eab79c45cececdb9cddd76c9b499155603c9069115e5372af06495a532d0ab2fbd39cdb4e5b8fd574ce4e9d5463a94679612965e580fe9030fd2f5ea10aea8a944b98890d3a081e7f80dfa40dbf34747d9d5434441cf44c66630001b931e29a138fa3e1719d6f8ea8b3a81adb45b03851dc09ab4888367e58e8dc18c0b5e59107a06aa9f1d2a318af9d42a813849c63cca52c2fecbb26291fba22955fbd6bea32670e002e51f208a850c07cd24d2df13b28206290c5fb6169d48ac443ef24100ce7dede6938beac7971074f75739915e012e2f379d380bdf79eb6e79cee413a3e3e39230863464a5f3ef8052186fcc96e40b69b4ecc5b9b1fdc41d4a2e75cd4297a33941506edf769e51fb23cacfc148f31ade99c775e1c4ae7b3150c2c58e15d390042bee1a28bfc2aef81f185a69d5e578f035336a4a57743ea8a97dfc31b221e34b0d601588d4d60afbeb12131b3ed2df766484b7e67b779d6f785b49cb7f2105777530e94d1eaa9afadad009cd8c126a479b1b3707daf47a9641bb87591fc526b6dce2b9823329664665d2b590f51635008ac8fc1e2191ec56c212f5f47a36054f0066cac30d803744bfc5575908a3f93d3b81a5da543ef11d166821c30fda347a05dce7ab86458e7d90915f05f4eac9af1393410778e4d8cba3a3b7b6555f7b0b359d099e0b106feeec721362af059c51af8775bfbf0d9291bf20fdd1eaaf73411258ea86b70655a7abdaeef27b9b267eea1e660f673026d84680047692e27bb870d739e7ea4d582cf38cc945867a545dc441eaecfb410429c798287e2c7dfa9cf057a30912539f16ec4dc7940a93f8ba6d522e5b16488ff1185be457d9115be7b23fe6d201db92a2cb719467ba4184e5facb685eecbd5a396f1db0b7c59e928a3211bf7bc8ddc990ba62706e0718be15b06435933404caae4a85d9ec1240bddd9dc9d6e18c9ee2410eeba4ca89cc187d78250438db2741155968e324da6ec35ffd78409c8f8b5ba752c4c1308a68d49e6a48f782a22ac6cd82cfe5539ccc36286b9105e8c95794f83c5dc4ce88515ffe755715e4c26121b6cdf0c99dc335d3f1fca64d410f15804345fcb5c021f4dd3e2614f95df68c7fd4ca9884ebbaebe84117ab75a3faef1727466b8e36ed240cc0bf724efbe257c473a8759f2d1c3997b2fdb123f7745565796887a94d6ef2f224b2dd754bcaf4e3f14f93d09602f8e9a0022a55030815412ea392303d83a776fb97a0ddc28ebf9100484978bc35e3cbaa72aa1aad5020cbe223013a0e16c4b03ea3a9a8fbbd453042333472d25f327c913f0aecaedbcd4ce46e81e51b3b143e1552e73ac64f61bb648129a14ae466a293d18ecd4f775757a7420c35af72bb43762f93955d1f3192c41b245d2bfe134228d677c27c04aaa5fae5c698be66dd8564ca454fe21028cde2ca974ac2f03240f1046aa9f502afb273a61bcdab700ce72bc1a96149c6be510360ee38ed61d6137be4697320b59e21dd8bd0cefafe15ebadfad76a0ed0cdd1318010b32df579576fa967cbbefef42f13f3cc53a01019c8cb18fdce7efd7cb4a2e21614b1c0cac21618f7b2188572f24dc74efa351c447d78a5a7450b4525b0ee214a1d8584965d12429fe3678d0ffd9b23bc8e7a68310e8258999040d1584c657032ad80452b8fc8183a7f438efb802c82b642caf0a9b3a04fcce1cb150dcd52c1b6b00d91e068d455fd4f1181bc21c0a256472d71a5d0d8b78c74f92423630f10d60480cd61bd6fda3ab3c3610ec0608cab9d865e847c73a25fe6af8c38eb6c88e1d537e5a059c30d9bef3c75dc79c43047ce4d99c42781c0edf157dbb4bb249d86d10cabbaf10dcaf3a43b8e64a17f27bcb3e29d374fedfa57fa110a8ca093f277d248cc25bf39b78a7a74162ca6b6021c79a0b1e619a2c3ce7e6c61c3f086e3d96e84868e03b07aa3998fcde3c23ffa790b56c81cffb548ce775493de1d2e0dfee16465cbdfb3d5eb2fa8c38d3634e0561a247f48711f732859672446ce57f5684735c80fd5e2ad4cf02e9a4de2680f6acd4a2e6dc250f2df0dec2feec2ff6ef07043e6ce9f6aaec4d5f052b07d5ab79599a20b50512ad620c60194ee0aff47bdba8edea89b8b7ad76d68c27d2c2db5200f89b364992c9188aaa54a9a19eebd01d292d78fa5896c142b42bc97847128644199634f804b17c8e2e4998298f3846c70377c98bf15df709ace1930e68a1e336c7cce9371e181eecb7c73a1c159a3ad697b144b6155dc1c30fbfdef750d575ca962e869c5a3673eb0845bf27cf728e8b752984dcc470b3d77e6c56b017ff1259c185b1933a3151a3d511eeb2ee0627b7ea88d6dde1fd0a7e6ede78e17e62d037d99e029f90ba75e1a1f8a0db96686e141c73be781a0a23b02da01bc9b666895bcc64855e6c0300a3438542c5ac38d0b63d21727d68e4ffa84634e4ef53af5e0de7673b6b6c0cf61c0c305737f3ba3e86bce05dd096e8c6f55f22d02ff66f31afc889980181ebbe54d924f48b8bfdaecb6a999e3c742c4016ff6cae0a5a6229907c14067c69d6a548926443ee35fd98cd019386169e505dadce53a250ce4332d12857619d76a05ba8cf8d00e9eac0797c8a891eae0c42af414a79a41648a47a5905ff7aab5be1731db3afff44a860532f7fc09e91cb74eb8df1bcfffc8e1ef6da8cc79459182ae8232f28a4378bcc2b70b82cf79f87036c61655dd2c53bc6dbe619c9ea824584937241b569e191f28ad876fd4bebdc2ab0101040923b83b5251262a127b54ef7b6f3e18e5c1c9e92fdfd1bc56f6b8ecad9753b8e8667072a132a81edec8a62f6744da8959e9a93a9956e6442708011f22c81b6314a18298da87886114dd6236956fa6960e554abdd68bd34530b45170195596c1d4db893192c19b615549b6578c7f15239fa4856bf0e9f4bea33b1fd8f220d8fb85374fd8caa5cf0757dda7b6799e03ae93c88490324166bf98e8c522784d13735f3b1557a703ef11b392beb897ff138861c968d13cdafca21f930d2c891d49e1519d6db5d91e859616b2681d49025b8589f16ab762cd0e4a4001d8c6fc49c4ca5865bd8896648b6e2eda01fa0cb3c8e50dfcc4e95eb0ef17f675617f8bbf9e6b54b39f25f08b3f0200cb6c4f38d2ed7718ae9fe57b7a39dd4a49c0055b8847b8152995a10d899e56a08a299121c32971761a9bbefc1e2d9c1616bdc8e21b1692ed5de4845f84e094d966c121a205765e8bb43a5dd3ec9c397ffcca6d2016d4e13e5fc80b6d0d951d15e63683324aea0dfff2801f7e8990ae20efd5abc84519383e41cde9d89dbd62d7c64f93a1a01f2db2d9138b47c89581cd6daec1e7f63839f0b951b6b9583d91c03f955c7d41b1cba565aaa923a7b9504d22b0ec6e563075de52e56e2259426fd753f08298ca45c211f376ab268cd146730ae691153b06bc0d2bdff05b17604064ca65d535d84dfcc432d4722cf3500f152fb3dd485b3d10685053fca74601f4e7576bd9dc7df064c0e64b37d3cae910d4f3a8297dee52e5686f0f594ee862521d02d56f42f9f89e9e24267990071ee1272a2fe37e55dfb60b116e8fa60640524b1a92b5e5c87aaa7b6dfd9fc7105b50bbacd02ddc2f0f14db693bbff530c00146221d0b5fbe1090692bde8cf675c903a59dba36fc5e2831e972dce5b129001819ff051111db6d39314db48b5c0fc610d3662ac0de027e2c02ccb18f02b73f1bf1832289db4904c27ee109bc3dc3fd5956b33a86e2834bef4a23a9b9df12fed75f229289d19ddfef165c03d70219e6dc5c7ecb5d4585c242cf8470a2bfdcb9e894680cddd89cd0a8fd4d135c8780b629b4c5b08ee4dc6119c8123bac0a97c21fca14b5f1fa3d35a972703c9c4ce63d72ab2ad41ff8be9a7c26418ffc7945b262783ebbbebeba8be3d6086a3e294e74be0e37612cab69f1fc31f937ea8212b4b22e0b2d5d64be72ef316f0a26340c845b57d80c6e61ac5dd1900782af3f72ad59da2622a618d31bb19f175a0cccac49611536da9b224694b55abc9e00782fc41552474bf92e2ebe45a2f7dd44130d6c6f1ec2b6d88e78e53b2979fe92770976058b8336dec5e84684c2279ad5df2eb778a0239fcb2997da8b5906ccd34364ee4cd23ab827c794bb7acb01934ff96b8d40805b2616e13a1321d36953d1089e2a37e1c5c0cbb8fdca3a6d2c95656258e5c409637b15553fa4acf7d5609afe5a9f66cd0ca47516116033a157eb625ac4a9e0e0ca018d0fd1fa3bf2cfc58760ac2e1f761d80d1793a3431d1cd3cecabd54b4fdf279856ad6cefc1b5e67a9677955078e62ed3d602c133e2a1b7c931eeba79336875e888e480a137503e541f5fbef89c05df4732b1881bfae5e01dda951f17f243c1460b2e2cc560260541e161be3559a4d2493e2a9ce90c7c0ce3efa0cbc36433a8156f1d54861918b9d8755a7ba827c249bef24126bfc423592201dbcada371da6dd9f677b83d2cf077d42732c1be6446c82082ebab146640ea346807d32fcb2a17f949c4beec03cf800cc39594f66e0ca7c623b0b53c567d64a7bf16fcfd796f913652d857c3b6bba167176acaaa9743c9cb2342f4b5d619cc9b7b1729a62c9dfacbe17659879c1cc7e34890a4a540aa31eeb36423348054c8d8e7b90642dae17cd8ac84836b5caee66a38aad502be77fe984a3fe7b99606cbb719b37adc4718211ad88d204db3005643409f55bb3dd3e358c0def43f28184fb4813d40965255711fb53e36d5faf670c4441b4627b0597675a8b3cae82c0667342f9494115a5feb1ad5e9455fb44890899f0de727f49b45793610f9c2f7649b64367bf3f6463043c2d6059dc71401509d38279beb6d9dc6b2b1affa5b6556194109b5e3a4917775e3b6ab3583500026575662fc7d5b580ef8ce2b9da5db163126de8cd35c5d17aa99f61b27a3317a48e549770096ae395c374884f9ef5c7124826f4d057f34a6e64b9d35a6a55376e4bc23662d54ef9f749eb09ffcf9a54a458279ca8ba732ef90dff70196363b4fa46a08f3dde2af60cb62d3c47f5a8d1664d55bd656be7170c1c8f927a8416236867d9324962a65447e74e21ef1c3a05f8edd2ecc4f4c5fdd65e24f770df83aae0286f3c5670c0d891fa6593f8ce44a421deb6c0986a7379b33388863b6ab1e0e83630fe466d4e65e5013c29922e5a2f0135b096e6bc844466a2c2d8023a21703285a12552ed6a6682bd0700674c86430ceb270df20daa62b66a35509c640770be0aa312e7465fa3f7f2bf340172d78dcfe1276c6d2d75cce021ff75cf03434facda75b4cae9ce5f2d80d1a6af233d95ffe9ba39025c9fb66cdf3397a56791e79ff7ec5cdc6a3807f5e3f7d85438dad3e699dbc2fb26f035c07022b8b1e5b11827335fa94e068de5c799edefc38eecd8c0eab8196927707d0789c695881e06de6708c22c92bfd72f150910c191a7112732ef1ef40fe7cf4141387dbd0fa3252c72ccbba56ca07241b153cc28dffa13eb2086246aaf678902e633704830aef341ec1a6d06bc4004aab18468bec1b3a801abb9614d50367f65ad4c0572a847bc53673c230fa0c264de5bb37e02e94cb1110707d78c500363586c216c51d70ca342f4a82a03b965c350227bb8730e8dfb80fdd2e7904f8556ad55c8ebedb7b25547cf5295e2a766f78aed449c831eb4a852311851e1f1075a81d58ca3a86fae749650382a6041b5f8e8aec101d554cb46d6e934d7e28883dbb69717a83647548f686677decce8fb257ab6d16f025af9923a6d1307932c4266177c0982a5fcc93844e5199c4ced0fc2d1929e9520d544bbf95dea84ad969abe43ada0e2a86e67b0f8152f1421030088b518c65cedd50a5b29880a160b78c761659c3ec048af25bb1b7d541b0e2c9598fc43b5929495987c721909b28f0ea598aafb29bbc423794d3dae452075809ff54567d0f7569174dcd36a66da1a7391fa1c9a3b68f27745f12ac3f85a1c93cd7e7df7210c63a14c9feef1afc89868186596bb972c3d8d1c3943fc27bd64f3acbf0ad249dbe1a308418fb5382f63b8b031b0b70c12b9862814a7b1b1b184b14a59d005cb27750ab438d1c6347eff55b0cad54a096c1cb32201c9bd35941e0dd79138d4d9c6482be1745a6f4d77cebc10a56a551fc597de97fbbb0a29a63737fd7c5fc1365843cc374d9048e1f2fd5f042ad905cde7bdbf88a6d1c178b5b319b28616afaa79370ec184f331cfbbd712e41035bddb765b75eefd7198cc0db89810093e89693f8f18ec0e445d21edbff8ea06482768c8f08f5fe9730708d68ae3541dffab424d2f6f9eaabe05769aec6c13c233363d7586852192ac2dbc8f516824ddd1810e4ea9edf3147bd47febe8ded2082d0595a1d943a417383778274fd1cb9ac30deb04e664df55729fec13c229dc598713ef69ef09ebf10f9b2dca3e3dc282d222a62eab4345edb87b710b7d7bb6fc25fa5f78d002ff66b014b87e50afd548943fe48eb5083f9f4cbfeca4e00a2c2f69a2581fcf078c3724b2094abf9715ff1db5edd8be5cb6d6b006c115b7631d738547bfdb40d9a1abfd95da052fb4df0f4a714209a857e0d6ac4b2494917026ae2747ac3be4a7fb0ea84ef8be0a135cac957477b4b22b147f0c700473a439ef2f015d155d7bcb5e0c57748392d3ce4c8ef11e82be1167839b650acaf7f61cfb5a2049ae8491ecb2b2bb2790f7064c07b0feceb7d379ccee133b732faa558fa24a245bf165a4e3ef1328898380a7480cea476566599540fbae6ec869b28168c1cb68e2cf169ceff469d2175d6aa0bdf71032f143e19c3fcb4e7efaf40470d76d36dcad1d11e44821062f9a0a7978c5ff6860ca5bc3ed159e66156b72db4b1ba8d8797759c0bfa5ab7795fc5d6f99f22cb4cf496591149125580cae71bfdfb0964e1c85757d25f72271bf749ee8baeca92aa46d0c1655cf3b9f7895b31a1e96db29be5a3454284c4f0dd394b2aeb697080af52aa15dc1ef42c67e6daebbffb0600b5a6b3edb29fb1b069efe0a21b42a7ae63dbdb002c080e0369c50a192eb8d871cf7c21b5bf8bde249ebbb40884f291a2249c33f53274a55e5320eb358727a61a0008abfc9247a589698fe8edc2f2066d72bf2212b82482345684a5cf8256deb980a2e3e522731526d5324dd54403c51bbd67178300bc57c7da94abbf6ed798bbdcd3b62c1dd684272ac2e8816fa7b76c4628a75e1e43dedbc685255d303ea28bbadbbabec2daaf2e732dcd408ca54bf5f78989505ba67a278ca1b0fd97a4988db22c53fa9e0e6a3009b63e275888d32f228962983f3577bbbac46d5f2327184cbdeca2bfd9a3de8b4c762a7f4621fc2075175d277d24cc6e23e25fd68468f7b0a2774fbddef0607825d9ecdb0e015187279995e6750c7888757f1a57660b94587cdc12a337efcc2c691d68911500d1c62d6654702b67682ca935c0b8e83a2f52cd5b1e24c2bd7762cbd66a879ab99202964c18c62517f24c763251c850235adfe9ed4cf3dd1db015966d66a35f0b79169b0b71cd45dfd9228eb749072d7572046abc2523caf6cea5fb9c7542a599f762c4d7a99d87e8ec6d4b9a902f00e72efc29a6ae932cd1d7b679f3b27df04be79c74da43e86f3e290014c5b5d625b23be0ebbe0e58a95ca9766d57df320ccb6a139eaf40063f517655b4b480ca3711e71806cb003e83e9bd27ac7e580b1b09e31defe93c740b75ed3994fbce00b4c8dd65aac815e179ef7b13ad745ffb5db8f3a3ad8a5ac79462b2c0c1bec234049bf7913962c7f37c8816469418aff387ce97f1a48cfb64f7b45b0d7638418b51d21324c87d5aa857f2fdb5379f62bf14084649fd5c4c87686cebb1e534c1d8bfbb059f70b091632a0ee0b80a112c481e6425e690599e58c96d57a3e4976962c528912250c42f2364e438e8b5c7daba98a45160565a922f2f00a20624d47f3455ed767f12384a42f01d73d703f33146b3d22fa5c425133676508258967626687b639110c3c06b857888983db5180f6e58b6d2f5a8f91f0593ef9cb1d49a6bf2dbe800eb2fc28698ee959274c18ee02c6e626f9dc30567ff9e504c293672a7d63d5d68378dd7b7680bddfa6f82006c5d83a7e151a4eeaf748a4af998a8c32ad6eda639c62e50d80316987b8d4dede4260d9d4070ab4d16d8f69b034240673df74c2e12311eafe0e70e25c0e0042a5365341f8387c92f1493fa633a18e2cd6c7d5060271b0c291bec4f86f5dc3e5e4948784c34e392935c3f77a5e4b262742a2d122fc3629b2b262ecce1da7dbc84eba11808380881ef85513ac95926f273baf4d08fd0554dd2c6ac5e006252086d45a04f799f55c8ac847e571d2a48b3f47154ebf9773b66718b7a01d2df0a433bf1eadf8a8d3bfca5f5650b4fd71febb445206eebcbc4f90f3eb25ae8cc6c54e70d5f616b2bbad8ac384bfcf41c864b85a874cb668536efe62697c7f815cef1bd85e3030ead1aec065be7dd05c9347acdb9f82e6ed05d35e61e8bf15efc792ddba40f35ac651488e9d19d545d24c91b05c4c7ad8e28a28e2f72c4039686a18cb5ff9db23feccf5505059e733ceb7a583a0b9c415145c6559b92edcbc380b9f394a9e51805507a24f8a8bb58c7d589068eeb1418ca162a5c319a186b2c0d681312bbd3e9035d5a0ed8e9073885b0a364b84732400dd29f8ab39db0bfb9c463629f281f5e80f099dcae6575a0e304c59480475f29b30d263e11cf525c7a67e61a00e9b00f855d35a6f5f610e2b25156d64466a6b85bee1872f46fb9b2201d9524ca6b7ab164e1c2021f4f9945a4d387d477d1e8f12363aca9349422158245004eeb5f34962e2804ce10617f34d2dd2d3c1c1733543372c13262b4dc531ad91cbb22cabfbc3be17365a19b998739c29f324f248911329568cc3f10e307865959f8826b2376a663417d1ef413f2384a5b35bc93c33bcf25a3f343e1b30e075230b4f3775f7ecf626c26c9c066e513bf6e60264c58d939da3519175dca5605685abbb19c918ed7b2f26355635e5a7382eb17e26e2896a7519ecb1b8866df89fb0176cb562304271d42b96bc37da2e436e3965996ad6dd2b07d70e1d78cb9c1579acea599fc35e9446070289945c45678b1f48a64203d764e0a81b0a567eb7f733c1d76c5f4758d9b7af29d872aec9d2494c7856172a5d56f5a5d02717452bb41ab6ccbedfb894665d0714e07442bf133d4a9f129350633159ab206f226040d9261300270b69d8bcd2850b420fe136f21018d86edc8a35bd67d201ffceb3733814b4dd0d9844a960b4721bbf657c495e300f5943d6c3c18cf84426230b67891790d29bc1f3259e8960ee544217994ca74f6ea7b2b0769bd9bdb811c807eb7acc3fa4da123c24dc36b4919a4d7a7efd4eb40b631b7cb279e65f21c4a7f62dbaea61d14308b1aa3af5f428f24ebe9d45f241530bf8d05d895ff17a220874a97e618f3a96ce67fd9f585a5857f91da1b7df773d4c417b3bf7e12acb283a841a04500bcc92c26212027a4586366ff7ee121047f89f0d7c1ecbb59ba448e6ee9dae10286629c622b6f96b63d94ffd22370a3076e748a1908e5b0ef10c11171b3b975e74d7ebcf11f5dda841175624e8d8c3fc6a619ebee552148aa234c0db7cad0df85ddb8dfcd66d74f46d8ef1b6204529583b973018037c16e874e4039e9d697a14747ad2e4c572b92568a66ab870aae2b0b44a3cda8423e952949608054036d623821da2323317a07faf2cd076cbe1be648fd57e5e709273164dd9081bcf32f6aa6e19e0ec1bfc75632f366176a3b7695716b19f39c0e133cd832f90efe90362953ff1e94f2a150eaa29a5838d57d9866bb062434974c12b2a04141ad81d7f0b033b7092ad96fba7185c889bb1396086fa6caa5f9f338d4150f3e461a7e114c36c1997f9e3139fd5fae467d6489341b26d577c3294d4ea3e9770f05c30a27c994d941918fea159b6aa1909feb51d8d3e97408f6bd37801b390f24ab4b02ee44ca2fd71cf00ac3d70fb6b8697ecb2a45783619fe4312303310d533b607b5a3a4784c3e2289e885270c4c1df93df1515c76d648e15d237dc70192c4cb846bfaf3651e180076aecff9e40fe03fbd8543d1eb35d0233f080a5ea0e38079ffb86405fc1af36da6335b595e4f51be860d636dc402d5b6337391370759b45feb9d8850caee4f725d21bf98065ec1c99599f4f852f038e2183ae41f529f7e5f6f7a049e02be5b05b269ae67ab096ac1db612ee7c77fe7c6dfb42aa123be8f46e5d0ef0af9f4818b120e613adf1e6236bb2ff347bc58e4f40d6c83611f647f1a5dd8c111aaa837d5bb35dfe17bfdccf790987f9dae319cf63d17597b6e43119618df87913287a2db42942891183db828250894f37c483aa19beb09923f7ef8a20d7d953f5558fd030e207250966159013b9be5fceb6a0470693aba3d4223ec9a6796188bf80ddc4dda18f40c999f9da107cadf0a228fff2e7e5f6c2a2cba1ee3042e3bbda464b172375e020907b13d67b0e2006b2efc5ebfc1ffb7ef36e06a05f807bd0b0a1438a70716696d8bb9c78dd5535b147f0280ceb397ba379ff4c6c2081c2f677a8fa16103a34722153b517b06c70597694474eee3591b4525d5d1ba30d83a096a56ac4137ebe3e2581ac300460b84eea58e5c9d775d3c4990aa8a2c1d339f2af5d403fa81ee2fb54bb3f10090cf722fcd40166fa91cf34428c58504b48ecdd359d48be415adfb8aa9fdf2654f2d0008e345fdba4843625f398930e5896a506e787b79bdfb5d0dd871c16408e402fbb1ca9cc4e533cdceb7966bf61569e6659858df5bdb8ff5995566db9430231e8344cc70a79de2748ab813fe584ed11478bfa323761c01fcd7008f91bda5d636a44a12c27425dd714dda0a0c4d22741d5d31282b0dacd3b3a69fb8f7c7d339b965232f9e371942879998d7c66e6db82f89a758d88ab45e9083bbf063466c7c6019f796e87ded436200115c02df7a39459ccac9dd980d4dfc471009f3980b45a1f2fc1fb37fc8a64867687e81dbcf45b4f5cfb71e95f71f7069e11c1d6ed72be430638626a93a4317a29aa652646f5f92371e7e9f0100a9d8b585025a11c03c90666becfa48ca8a90ffc9403c8025bde6e3d82106d23c924dc6bedbd5390a77e5a6335480653cfafaa07d3f39f2e8caac7d4ec6aab826d617a21e8b354b0b53a7a4342737fa02ab0fb77e970572aaa4a6d7873838d57c44084cd3386b3a8e37970bb4b1f81f3fc538fe2dc2bab9f89fff7aa264dc66c6001e34adce9a882bffbe9e49a1afe1530720143c3c7cfab8c0be4f33dc086439017dc71a7b0e06fb7e8be51c8da0bf1c418d80a807348ad34209f1a957c3190794b49820333b4f6af6b671b06c422379da948bcc285fdc1c153557902f863452d755da0a2dd535afa10308e71aa745044a163b0028ea17f35aabc18de1b0d45b3fda25b264f487412cc6356ed7734a7fa18a1119931ddc00e89a0a47918890c712dac8b21749e70337401de1c86991a9ff22689b7c9a0656ca7ace9183c88530ee9212e34960a247d6ca82c5757e80011a377ef8f8668c8fbf5c11f3a3c2dcab40be5baa41f8c1a313d164fc4984482ebb03989c9e0ab817b90f4c0dfe0f5f3fceb7c2970b65bcab699aa85e166366a140b9c6e10ebb5ea05e120b7547d103c52ef4d5bcf60481ee4ae5a5058ee0e2541cda33356798ded88a55895e537f932e4cc7a6dd15c5cd4a9b519b2ecbf8926953e909decef9f709cbcef0b99d4bc59ee87afe7cbeb50092339b55bfc8c6daceff6854deeec9d3b1e4da2a9fc310785716b5af280dafd7a65fa49331e5fcb40bcd28715773f3c8724b706a5d07d3e80ebc2e3e2f6205d0c16150f11167ed00b780e4ecb48eddb2a7aa21da1dced008d817ba5615df4d1849ec2d634ef522592b6d32e5a174f8eab861f017cc2423556c3699d1b6eb3246b6aaf18c471c89f488fec14976df5937dd02ef68e237eed14f7d2439fcb1584258b6c07cf7cc24542630ea965a8b69404ad4b3cecad8210bfa24c10e73a2511c5c224b9587da5cbf261488e3d9ba9d5ff8529b68c1fdc93ce9b62748e4efa2b86b73b6b05e7cd2d00b512d5cfbb147d905a9daca8741ef044793fabe390fd98a5d2058c607d0c995bda09e85453970d3753d6235c4630741906eac8ca03faccde416409d50552202b34fa2e03e1ec49b7f2490d49ac3f5f883cfb68cdbfd34ebed379355a76fdfba9abf1ec918b3900ee3a9b275eae89b797791207f268d300757d6b5d20ce7407922e688aa324dd030bfcb5a5999fcf90010655485df7455dd003c4650e9696b8841cea2e30cc4464f38bb7e0d8a4edf9d4c4e47f369ffb765c827e7abaf05a11fb9148af313f5ad34d3626c7923cf2a25bd23efae62bd3ef1d546da2d83af099b536a16ca6542f248cbd88b85d2969b5ebd1109984b0127b0d2be6ada02bf0bd5c915885554107fabd1eef1088f5c31cb8d1630b2486199d401a82796f47234221c6f86a7f1479b9a93a5c2e638011da72d87430b673a4ec3ee90eea6c967b0b19a666e4b63d6d5b91eb5638595054109ec8b1d982a2942045ef8c55bdd225454cffbf0a7132d8209ba077f09d10f4242c09d9981cd937ae572d387e5dd8c34ecf8c5018619c244a1123bd5fea96a27dd9b0eeb9bb01eda01880a5caa0671cf06cf6c1517578daf7fab23e058d9838be312804302fa36051e0dfa029eb201c463d22eb014e38bee00584645f5db6c5c47e96cc9104489560dd9f4ef68544f1b6a855d44d3473e84ce285e180afe5c2c944e9dde368c8be390c2bc336811d520ce85de6062052b165a9bdaed296c2d124ad3b3b65b46f39062ff0b37d013eecae9a6ab2f148d5b49350c5dbdc718dd19846da23dcf963c37debc0d457c275bb389da5244069edaaed8643d9464780d45cc34304e013a25d7faa1e4e5345cbf9f30ec75ba85833cc0abbd0518d171851b3fd77a38798e31de856e23097737239a13d148a4683713ec5f35f3d82c63aecb602c6f98c78a287bd2b7530006777299509516c9b6d37ab2f08e7b748dc716db45b4537c6c2694024fd77149d284feb921bdbdb33b108dd1da3fc28777dcf066f1433edbebe14563b27b6e29ff83f9050f472d11dcc1ee815c78237293a191f40a9a9b5b8aa7ceaab3f1ae16114efdcd605aec5ec87242c3d057aee747b0f4d14d19a9696c33059a7d258af38ece8591541395e9e633b2b877efa45324b437065470fd9d118f87495092ce18a0ea7177d6cc541b0fb96b153eeefc0a45c01cd29e88fe7366f131de02d23b3071898656c1bd6c1af0aa1e9955d0e24e1b5989c0feb06850e681a84d574206df6961ec4de7bdb1b7bcda809cb035321f43cd0847bd99cad78712d232524257407de5aeed648d0eadf6accbadb29201dd506348f6296308956de15bb208decb2f1f0d3eef0007012cf3a13c3da8c615bdc0f59a3a6db1d9ef94d8326f965bf363a8b8ee7d9a3c1abcf25b9359d743680a72d175acc2724973fd8e098f2d00d3583323770fe89a8069e6e3967c3b5da938580ef2f07cc739640284d8ce7290640a3c2a76cc08d86b433c378e673efebac64b25502a7545daa7e0aa5aa79783127f8c32ea88aa9eab2a4d5ac70f008933f1243971f8c7a236faa2618e81e49c3e224019b84cc69d1ff04544159bffd7de348a645c0902aea774ee5b37fba4a3bdeee7ee276c35e33fc3a5fa4a6c376839a11c61b9391e5c5e6469df5d3ba83d576919326430a12d94f0ab1bc13ffe80f7faeb075845f79edd70b6ecca56c784496bf2ddff0f8f303af04ee8d6573fc77fae5c7eaa070fa97d123e958ec423ccc3bc5be86d778b9b64c496976cb9db096b92e95d464ccd3de95840cb7ce20f2e6b7f14bb8421b513d8a7745e6578463d0b7a6bc8662f98afa101e96eaa89d3e7d968d0c901002b356f0c72202d14ae8ce097d025670e683779de5f38f5b2be3c19cdf2a605b41e2097e9d02e30e4441f21b06d3b4d08b963178c0f647b2b3c962c79b0df94968d0bd15af7d460947ab0391b53683c0efc7678789cb31f59d6da865da2771551e2d5338e40b2b0b1386246984f150084e9af6b39466b080f608291081313d5050192e6028d0a9b4674409cef8ad2867057a01433ad702272b3c129f190be8408809da9172c489d87a6c54065e22f613e75e96b8e36959bedb8441f918fc9b6260fe34ce9f8e2b98ffe4f6efb7018460c8feebb7f88636737a851b74f215963804f8a3681c4c1f22c5edf1485ed5c908dba5123ddd87cbd64b5dc293c142f67f09d7ce05367f4d1bc73a45488c823bc7a0f58180508b0990e9c072398fba0030592d4580f1456e51883e106f13329ee914da5e114c2793886bac44532f0e15a883384bfb9c5403f93af5d33937e146b2712191a6f208a9e19afd9a4901191f598283ccb1fe3fbf202d9339b7d6dab1d46fff9329285411368a94947eb11f63f525ee4469371f999e05d16301c7d5712607605ec3eadd3a1c6e143adf656740a05eec48df97046d1725439992a3444fd8ec86ce2ee2ae598b4e80e467e7984090041d4112a3bccba0a0df5b076f258b464fe42fd9ad0040b60c00df5ce2df354e8b47dd99c00227a50efda0473e573b04b9960fed1b757513af2e795f1de3be7a1429aff68bcb6ba9f046758990c979077f04cf91ee72b849c121270b5869422c8e9422e93390d2774c1b0229d772b96650b4fd5bfcdea057c6470c98a8ca74ab6e29a2bac039df2e5df7d0d6e281a28ed1b62cdab0f12f62e8f91542db5070720d9ad49bf5cac51365de2770a433d50e0f96bf1e95b6ebe40980bb91e6d21e439b104f3909220fc6bec28f42175973d3c42bea63747d1895693d914f1f7cbd37199a1262d4dd3b0ff6f17c987bfd2c0e9fb9c22ff64e0c623ba3478614ea4a6b76aaaf4c5b074af984cc372750bc3d00de43ff19d1869a76ede476742b50a9755992602e26c633ed9a6111c9d350c06eac38573fbd8d9a42468485c3657f3c15838dc0adb122d263bdeaf2b0c7996224d725b5b6fe01ef87e51f4413a6bb9a489d1855aac4d9a35fcd6c8b6dd632f849362aa31f882252337d330f9ffb1cba5f413515411d543ba1ae5fb06bdbf90b337e37cd1c1a4b666cbb289d71854588b029bd4ecf335ae0b626a221b38180adaf26de8ebfb0a2e4ad3649d25f06a15032150712d2bcad30287794127e2c834466dab38810081d1196475169f95bee21efb2862b48979d57c54109d1046bd6de97e0cc86bca0b306385e8aef5578248ce414493333c1e44d9e7ba42f2a84c4bdaff1aedd6bba5fe7bb584de4c2f1ac66c04a7b7f077a6157ffdb1899b9cdbe8d328e465c1b43c5df87d3941bef7327b35991cfb43794de2574dc6f60e622dadb2831eb57e79ec4b34181477d57bb7f4c815fb1b1bd285774ef7aaaa011c8f23f86bedf63769af5dd021743b144f6cceaa57ceae7a086f27d6ff70015ed1469b4d1f64cd6784ff622e6172b56e783c69c29c2bccf484f07c62dc4552c53ff083fa5d2a275dc321dcf699ab8fcdec802dddab2f6f34d1d325ed0fc7ce097eb1e86d9be4ccbdbc15809271e1398cd9ccaf2b8d6959782678f574d77c59af6e71ffb9be41d4fe9b630ab16323d3febe0896c0d23367104cf9db77e64dcb72027a7c1373d051ec6742cfc8c6719fe55ae6491471bedde2c5e38e7c33fe87c14a303e5608fee42799d04a8ce00c98fb62f75c83274b62e952d0698cd40a723f5cccef80e3e003a30059fd790ae2996c0ff101ce785ef8b2bb80beb5eb744643013b75337fb03e27fedd6b4ee6c8f15a75e6259933e79addf0576586a34d29563c934d35fc0c0dce0665098fa2828a58b18383eb8a9ec2a27947e0953b15b4b79ac99cf0417819887bbc22024fadccf0e19381b0be227249328ccbfd243f27da568b38f2aea2699acfb5a332411d551df25bcd3a548e2eb15ad4a8d82e6d78e44a6be76e596d341aff0db2ef884e02d1339468bcde8da1caf4a84acac233d731b3cafcbadfc3b074557ea7cc74e07d71ca0a52ce5736801b733447763179eacfc0279fcfc8afaae883afe9a0264d5354e53807ec071eb83cb7c0e2060fc27800fcbb51cc7447360908097c06384fd947ca54dcf7fe79d25d6086d3a79ffc65bc7694cd749d5a6a3fe296ecdd6ea7af0bb0aa8fb21c42f3be69a7190a549df12dcf8dd1ab66fea6469c7f6ac8813457d668468c46a99dd835196fe7e5551ee83002de53fcfe5a8ead9fc469aeec8e76cedc3707be7d1ac5ab3d313f7024340bdb0d166b16d05c8058dc46353bd59ab19154fc818cbc704d9fbd627de940494cf163c5574a3f2b1cffbe49355effc196b093d643021ad598a175c57e10eb1295702c29530ffe8604ac77ee7dc9d1c7082fc31f0bdab41bc1d866c173abed50c20458912a7fea71e64190616e746a69b8072cdb8eaf7e2da67d3545bb037b0a259182653ad77fc28bf0d2b4c61bc33bb5a5c11668823492b65ef7c7506619da56ada5f30efbd68495c1809f9fbbe579d9687ce2a135e710e55c524672a39f1a6e229b72ccef364b540fd89e1c1931b5d82684e87d1314a941edea5424914107a7716fe2825f35d0160beb30863bad9905a82af0f2464d66729a22a22388ac20674a84b4bd18678c3138c623b7ec6f387729b6d5096072d096822681a4e5336918168365f28ca021f4ede6326d3c118a12dbfbc084d378faf6d64d58fa8b0d4aba6d1f73ec53c6bdbbd6016d1afe2f1b2162caa42b79c4713d5bc80ce25d9e332ea0a957f8a52dd75374191c4a4906158a562451b00c1090e1eb9cc5b3c5d64a363071755ae08ce4e098e42989f80d1477c64aa25bafe5f1d5f4f79f31309fb5d454f71b92087cf2a2ec843a072ab57e2ab097969c63a71385f7c92e029054583a78f11004428538f86a8df7d2c2224e118a285521932757a40ab6df26d95416bcb91b47eb58c50f2ae25845a9e80a7ba6bc586f5989d1f36b57509fe7849be75569dbacd9381cedb879b05ccc86938092230ce71ff66193509bac56be0e6e551b91b13ca675ed400e25c2023dcb48a78d90c9c3d26e2f9d71a83c1cc67a1830956a7db960c4705eb5326759fdac210af047a5404de902728de3fe3113cbb98f74e38ec0c68192cc7ec0ba01ba5e94878681fbdc1044801a73c6fc2a228b2072331f891bc12864a23b42008b53ddba1038eafad968be1e2a975f19d23d48b78733f4147ca3db1cd11000da67476987084323ffee7a7bb1d8a7cf2fac54118101ac6c630b44e3a97dbc96cfe3e40409a55e41bb3e07058094bacd812f38fd25723f4780778327cfcb897324d38ff5bf84d84c34d710c5ee8ef321760aa9a40f146378746889b6d7bc195bfef60f4702eadac18b46c78eb7055629a713e5a49506d9a43887cc44d6039ae6db4f114b704e64119a0ed113b24ac25741bda41d3a545fa67780f8a475f17cfe5ad8861179401d205901866c2ccc04b0b1259735f6d35d0e21ade75359d947654f6296f3eebc25c61ed0bf96d39f3f4ea41f75969637cd9dcb4a31ed0d93972d2990110bac762751a757a6ef2b52e6e052cbb4eb27d9c9cae76d40b589f80c3dab2445b846be7602f07244be99fcf925239bc06673194540c21783123d846dd3f122151dd6fbcf8be15ec1a9f9e3317595dd553d8b61105e561a040cb370e6fdc878f1a2c6ec4b97caf8d13cc92143388326582867190db5f0b3add3c1fb0a1e532d2c71be177942aa615469df19886cad31f8e59025a58ea10c86394bafd870ff4d9ffa9128259d4ad00f03b5bede239b1886b5e0bdcf627fff71338dd1c67cd0135e6f4826452c2b9c41413de6b202c8f5a7dc49afce5fb9d96d5b025fa8a3f2fa614930b597673bcbf7424e31d0c4224ff724b75a80ea79f9b671d22ff299a2c6c1c103d7103c65ac38839947c5b5dbe1385bf7029b17997614d5d22ac9e463ab05581ddbda8be7489e6a346a583883a97bd0b93b66331f3f480f17a816618719994fbc70bca980b65bbfb09ecb42783c6dda9a8b8f3b9751b5481165c3c001e22f30590d00de6894992dc5f474dca6d71a514093876231ff72ce42ac230392af31430a198de71c3db6c685a87da496b32713864b6d8fb55f58947c929103380ee41af892bf74f8763d7c2c23714cc97c3a81ba2ceddc456106afaf6b2cebfa7a1806e21fafaba0ad5aa9711ca31a690905ffea50a218f11d9ada4dd9b6bbff35999fb2b402a33efe1f88745e5a6747a6d27740e3774615617cf3391497c6efd06c3f244f22ea89a03bb933ee1b202b95fad66b6e411c9286b67c48540f34afb34d87756e9400a3769cc1959a68486f96ed8e22dc4085cb1d501b5077de81631160da2d3e99dabdcd15880134bd74f197d613ab3799207cfa7b1aca499bfcc90746ddf1a4a1609c9949d986eeab4d50e3ef5e7985bdbe579dc6e702134749dee22efe67a914eed8b4ffe596b073127a65bf6ddb41c3e77d1e0b95da46c6e0d0be63e92cdff1d700f097c04c5090138be965c1b5582056bc03af5a157f288b4d022114d8cd43dd7ef973e345015d37fc600ede4fa8c479a1ac880f3c1eebec116b4134108401bb55680da80a750877219353ce3061aff25e3edfb30c3eacf4d3a65cc6afc8f29caa73ebd10670c861f8cd239f0bd518187c3926e87acb156d78b28088f99b66a01f21d30212d57096467243e0bb8609775823727440f2227299799afcdcfa0f5efef35b428869504c08751028528dbf4b7eed26c2fd3944f25c70f7ec4a16295d32678a7ef2d37bcc2e30928f309c9309c5040c5feaf650309b2107e09970119913bc30063f977df5ae1c3233374227d74332c57d15f0a64555eba8aafa92f70501e89d0e8a0cb8b7df4fb3b50032860f14b8aa73365d539d7b63dfdbfc4cc303cbaa912f769da49928d61fb92ea58cc0e3531e3a0d9ea276041fb84b23b061eded1784e314c1813400456c6ac62c552d5811c6f2524dfe6452d593958839c8909c1c0e0c5f7defb63a1e83f39c80a84c4016895b3a9193d0ea19c09893db80ac9acca76d3d6f7060a8de4207d41f6a4797d2c55c80cbd5747c2681f7bbd95475e77f002f219bc30804d2ba5966d4c4ff563efc800c0b94e0356f3f9a5ea8b815380bec5e2c88919831069c25c46b6a841a0f127421e101f96bfb892ba242ef27429d3f6aea67f58dccf764a67f36929e900f6a8b1d7cc67490bc039a6ba8773ed60a00a7984c017906d2479d09218248be02433acb29df5f785d1f9a62763b5cca93f2cdfeaf7a81d55b2cd17d77562f11bd359c41a3e499f243c22106ca217bb46af878d7ccb2df72ec77897fa66c37425d35ee54c40c55aebe84ecd0e31d0875899ca9c88c8c6129017714268b4df607cf27149790149b71994af86d398d62919ce243ec0c78e8734e5d41f923343799010813e8a718c79f915c0afde9bc605e0fb58fe8fa69ea6b66d2e7fdb45579ff7b8695968c44081065002867c6bac8fa8247b8984c9bf1874eea5fd2b0e06e39394868105d2be23375ca1ec35f2ad9193a625045142c1aaa9e3a05dbf83f7c2df636ff22e38ead8d3889fbc9cdb2c29d43d2ca6c739a977e0376ba7e46903f6c5bd1efcb1a541377f4b7915b1fbe28026e29fd1bee5c2d2a3e996573cf5d05c3ac0c73999266963779dbf812a7afa4964d90a7d6a0d5b748fb3d6d1a77b0509ee824e99a4756086bda080beb956a4389dfabe80f1b42a13b1b1940ed1e25583c81ab53e1de8d10b85d1be9f295fe04c1937fc332e0416dc84503d0f9e75287af1940d78f5e19acd619cc761257945e88c7c3a03ad10b3207e32b116f7703fbb0f0a1407cc817aae6fff2d7de3f40b707fb5fcddb007118a1d33f7d3990d50743e3337a5f381c2d1649b6fa7eb435ed8f4b97f83bb459dd5e825e90af93b9b22331a0199667f52e9882520ca0a5f1d1b4fcfcb73a927f530729b14b4ebb57360f6d04d370b88cf9eab172007a5957a8371a76004a43c6df8d6259b5851dd882d242f101152bd0ac6e4bc50fe4a066a9c17c64b1d603bafc9064355595cfb4b92dfd9423eddde4bb4bf5973279ea26816ebb960941eb69b6287aa9ba78b636b186f59a59a9fb316fa950c9aacce59ed126d4bf2d65e90930059a37f3e3d8fd756b57a5eacf382e6234434d79aea834afca9408a4b3bc861edd312f1750447ec4e4e1c9c1dd423c04f57ad5e67f889e212c0fc4dbd9627c4b2c8128bf17d7aa8f989025ebf6c24c197626edfd9719a1a5d9a16fa3fac5cd15421d5087a3811f7ebc566e1a27d66e393b1bfc0db80633acb85feeae76a872ec9f78c090a6d0fc6cd8556525321df24f87e4322890b2431a70e05e154511efd7a78748016bd24ee7583a2f86f4c53f1b737456a653d54dc8a2c301d5dbba4dee9adc07812ea949b1f1a7e3da53301ab05371bfa25d881303fa70664da84665e1e7d439bf8e5cde42d0df1765bf1085f67059a67be5715d0a00df7ac11737a66fc9b162eb05bc2a439e0ac48b403232290cf70255c3025b93ca6a2ada2ff2adf034b6d23a77640f1454d0a5581b3af158b6deda9644f84d46750aef24b74e61cc18a41c65cb3ac747db272ef9fe0e4be7f6f1d76910947f416c64178fed6d5f02eb32ae2a9dedb32281881b41c6c5230d4220653e1c3c1a9286958befd4e333a2875932caf54fb32139e71c25c835f8573fe05c48b07466c0f0af897c0970cd535f85c68a199f3973af293d40b8960e23601b8afd7b661643e73c2a532ac964cef518553264051d782bf9615017cabb26c685d99aba62bf07414b7cf2d13c2d60b0cb989135ec7649421fdcb73332b1e7799c1e9d67175deec9d4afc01e26df6cf4c465f6edee3f3059d6e2fbb9382141f1c3bc498365be4a6d841483cb7c6ae7958cd6b8fa80532bf8b7d646d5e66ae5e5405a25670b08673027aae7d7fee5db952ae4b0f298586dec3254e6df30e7d67b05007d2a950dfffc519ffec0b61de43010c2bac2f2a4de3ab370cea3d764ebb78caee016451dc43b0662bb49e0f9b63da40f38eaba9096e2e5f8142b01da50463e7da02ce6ffd93e5fd576d36d5595db8c928ec7b4d8666fc2297120ebd4059114cf55b7ba59597c92d66b46b0c1db7010b6a7f42d9d4f5c4429c4bf583f5d267f045af2f84dcf98cc7a3a8ae32275f9277d6fb350440846fe768f569e1a816fbb574fbd8742bc41b556698ea10767a51cee566aa7067cedf0a778546cf4ebb61d3e9560ede515d8a3afdde27d1b44c7ca3fd330e3344a0a5004caebbbf6eb7e04bed561a225c2eacead65e04b1bb612e439df6b375644ed1e09f1417f9f252870a67a683a97218100862f61d13ffc2acb4a767adc16f0f2ce620130f75e11e8787a323215f3803599185109e8296781e2ce1a728b9e0ac649b13093d0957a0f1d30709789a3a61fecb2411f4ff9dc8368e64feb044f00721149582d6bae00a12197ed9fbc174b8f3d775df4af5d551b3b0020def41a744560307615ec569637ff5923a7967d9b96ee6e65dd961f607a1cf1998ec59dbe8472ca2eb8fd33043d1510d19088c2b7649f71fcba62d59e3b53084a8933dd68ec63fe44685fbe66709dc57a0d133f337052db2a126d3645d0bf13cbafb425b0034b2a247fa65fabbc19b3e5ee413d9971da82dcb4ecc49f3ec1ae325504c3093f7cde5b0dd34c175f369b9e8c8d9ee52d1d8163fa5455893083889e6a666e9af21e301b1b9a0fc15d5a6b7438d4410811f520f1873350f5518f87b0bb732cbd147e6dbb788729164e6048f9c25d6e6698bbbe1fa9ce6968ffbbd10d3b81fc81d0be21351f59be546b312605101b75578dc6756a3806f17c44d2c8dd5ef42b29e8e6a0a72036bd10fd3c6634bb93eda90f6239b11739c55f2a85fd4f8d1658abe75cc8d228a392b00d06be63cc33701c70115eb9383179535694f31399392932274c3b9e8d5607f27041d4377ceb73e5da20a7a93558272cf83353de4d3f9a9d9d962594ef4d92641a3e98960853012cd2d1a38e79b601d50814cdea0cd62ffd823e7b626ac70ee9c391542b99c4418e78ac86d8f87eb6cbd8a0877379fcda1bc371bd5b5500793ae443e3e6331e8d9babbfa8db792958a0ee56653b359e62ef3fa189f493db0e62f5f0367ac11d7d59eed999506d5d96793544d506ad5b182ae44d9a4976d1f3410ba0a1de2189b9bf2305f6d1562fbb917b10281ff5ce4cad85756c9529cb410bba44dfcd5094a43b19cf3760c5720eb4402795d2b5df6f1098c96fbdb8cb42c64c27ef459a37cb2de12866e0db22f7c5d4dc34f027f8091caf1983c69c8869cf4bad340cdf670169fde6cb9b69237138c6a8354e212dc351d19b815bdd538156533c2d26e9625eb9592cdeba92dc3398a0cf7b4531ab7d619afcd048c1f977dd39314660d081e159164a16d008733402fb15ac34cdfa20b32d6133010f7416bd862503c96e43647922deca50d39e04a8d6565bf98ced13e1f8c49b1cdd94f7a038fdb133e580a2bfa63a0312a862ed504d17be7c77468b3a465d66d2f20a0e08dc765fb72ffe8dc23f60d7d2d3258bd38f71bc255f6fc3419fec2183b86115c7f1379c2ecac8d69008152eb1b2f21e9e34f1bf614ecdf32cff2f0a2fb8de5b85a58fe7b864168e2975e291b2b8dbbe34d63aea2004864a66d5cf6efdad5e6d3ed4694239a8950d01fd03653e0ac90da90199a45a80c8870dd87e85b7289449c1622c82d70a63d9829590f3a1a430292975c8a185a0eadf74a630914cba49fa32e478787eb4130788fc68c28a167b096fae9d7c21cceda3a23b92db4eb8899088900cea5c7388d0e3d2b4008fc816a84ec95d172db13cd0d2302eb9728ccdc9108b389c65c07a5dd886f830a7d57bdc2caee4c0ae10b409f1cfe6b3129596e0e878ac75d0d3f57aa00e0ef6ae73a2078290f2ed2f9b48c123f6af02ae95125685678dcc97c92dece8728a6fe4ebad535dbd3a063cdddb2e3fc6b2a866b7add42d031381fbd5663c50295ab86e23ce83e0b90d5ee63b12944e2b45f18219b4a57e1d2571ff89de7dec3e9ee9d4b3990ec0b1b8f642013cc0102b5f81ebf16496e583b326e827e92dc652147b81936283c635f408ea78a31e770878e2af3d19932826c25fc307b58a596093f9474e4709514afcad7a1cd2b02936f53d800160b1dd8c6334df0b6603185a67d3d8cd021dd1c52b3514d09e36021995fb361a32dcf09f1b2c4e257b0fe59395694eb2bc904dff34d5dd2e176e909a7f18499d9fd721bd648969e8afa69afd53aca43a5c37decc51717de795c5958be65757c998db831e516f4931ccc6842d3d483abd1f9332d2041ca328981289d65fe1a486b497ff90824a4fd813f1e23a0bd155b07a550a1f46da7f1d24e01682637c9577160ccf7af2139c76484d6a68e3659c427c7cbc1d35eb467ad2af9a83975b3499d64503324499993a6f2cc59e7c029c834060b1d1a981b218cd18a861d355af738cb7ffa29bf371ccccf90fb7aa0f451c2e11e8653f6e7fa4540887a6057ed9dadf98fb4632bb9242c944589518cd6c9702fe720bb2b1ef579f87b1226546a83e4172826a24533026ae7225133bdd473aeff6f427aa5047c8225356ff97beb58b2bbcf4c330dec28770d3efb9c693f46c484928d44e0b50c29a3fd7a0ba07bf9b9143045a640a8323f948a24d32a6f2b289dd5caa39ccd7365fe14b5970cc283659d73abaece6f2959c6c20271085a533b0f7f1e4a5bb2d37db2afdea676676a0059d717f8a6452a0b522bc5e48f4d6d22d78ddccf4e4a70137bfebdafd5dd4bef34c5a285ef62b7d93d8c0c67d6f31d9f6412a78e1451f1e87864993e61b8ec4c980f83d0906c7442e3de7b52787c62c6cb874d8fdef718a12a9fc550af89874fc3022ca5d93b6615321e3a12aaa8919241e6f19539efff6817720fffc4b08f28b78051e16654a153c50d889f9bed2a9d3fb5f4f3fc22e130aee8397bbd298205ab89fe84ea51c0cc09ddf308a86de8eda9c9f75ea93e7e9e27027b7996a2595bc3d459dbda18502961b8428a6024c99331d1bbdec23174e9e18c4b7884132162ca21e2addac2679546349ab6200a0c1cb7ad52a00c52f572f6543b7228f66ac3334a5fe8aca617924272147c976c3c0819a6386d765a4edb476446a2343094301dc2a62cee7dd6958c7f557fba0813850376f98749c706759fb99be387a8bd83918521ac4da06f3587f23525a9a0a6c644036b997358f34d9d9c94d551efe3ef3e19361e84c8af399d8f9dc7eca718823410aaf2214839b82408e9feed2976cf580b92d39ffdd8489763ebd089e307d600cd0dc880dd185c028573cd130315ca59b64c6ea8cb60fabfaaa8f91e0a264440a83c0a639825c828fc78f7460c97d3b1887aba8ee907050b46a534c8b887cab36afc19adda3f4129b349bf85403b727b7ebcb9c852a2ca30b9dc41b0385aef813f64f79b2c58b30a729783745a4f3c4a8aa0bb76207b4ef1bd9862990a2a8a1948f51f6c97dd477b8e4aa94831646bec2b41aefd3efba64bda61f4850ca85f543c2e15dbce5127428d8447480e797c7634d9b7afe6c99b85201c1a9044f06e0c46d5f761c1949e6732cd783964aea8b868d9831724ec2660bdbe3b5e26358ab1382cb2567bb7315f53b353f3b9426f3fedf4c9b2f284777ef98b207ffa07002d68677f4c570d639fc12075b51c07e215f82385d8fd06c02f69143df0081f2b56a1404c70461585528f62bffa5ec5dd28b0b8806d7e34fe29b92a38f8be7a8055958af690cbbf00a1bdbecfa14dae8f099e1ca710c3e9944ec5cb0b332948e703595f3c60c2f2347a2edfe5c6b700e9029c0f936c686420eb124c333ddb3664d10a075e342738ccb3a0b5619e33828a41437cde74ca16a438d122b66324ee5ad086243f9efbe7eef5e47c7a6fde02a20f22a64105e3b3ae517c477d40bd7674eac59624ca850ae276d677bbe96bb6658a0503a364742d8f7a9c8936feda03d946317ae9299e8ed26126731a7433fd8ccc3b56e4fdc6b6ea27625af3c356280dc46c20609ca4cfba90af550b6768508bde93a5a6c02ab3d9bb0d3f9c40aba7c9d6093cf8f9ac55b40c1f4ccf069cd7d27c810768d24bec251f43e2ed215a7aa1c8e57bd6807a048a4c4fad5f586f7bb16e74192dfeda3ea88eac7eb41ab0e36bbe6f1f46f3caeab7353d15c9ddd0ad55dd9275cd8111d57531b43e1f96d36171bd0d679ea12c42b5c42f964f43db189260df334edbf34b3a3357ac746594cbb9eab8fec43f83c490c52252781b5b8f9f2262758de9db217e3a3a92b30c9e13c05583a99558e738a7ba2ba03f98294e4f4cb1c52d0c8a77f3f22010a8b5c672c25980ad6100f49b85b515345d20ed979dcba7dc6ad6ae64ca42f2538d57bb7e807cec3b1a61ea42ac5793fb35b1ac1b98014ca868be685dc8e9eb09f23e78d87e75f3ff28640ed2470bb01f44322ac6503c0d7f8087c612b313fad48adec0a4ed18aeb62d09491420d28cfbfbae49a8052e84acde686978a94981d34bdd032b9ee5c4a730cdd81f38ef514e39516b35f29ab20064e2d0c64aeea7506157f6c16b70f71255008b208769cef102496bf4af333284d8164e70e993f1d820ad505ac8b00894c1cb09e507319b28597d5aeac31a7869af2b012b46226f2d1e9b2ad718014511b9700c243f0e1637932ca12d44775322bf7ebbc4224cec4a3668af858536a9a02f97f1ec150bb3e629f68a043cee577c793a6d974529cd912264fde25d4dbc9df460ab8daff0c31071f9ab392cfee74591b76a0e37a056862ab853bd73ef6587bb31f19b299755e6276a1c9dd90b59ed399940c2cdf631f8831ac509f4abf54574255ce64c4639d53c61904c7c7683c6745c45c23a0c39e863b60406cefd2e0cd8550e8088a33f722b714a906607eea0a7052941b6b20fa97e57294002424b27f92387cb945d92cd3a160a48b32c11751b36bfa37db5c3b284195b79b16f1911282ef24b375732e44a1aa032c5005868e50b099d10050dd9f45657b32a249dd3f1fb97d800435a425b50377e5c1cbd150ff1cc1ebc0a153fe1f6b933702dd0733952ca736dbf968b9604bd6ade098e124a4e985b8fed27f44eb0517f406a214383c70c8c1ce7f09666f259bd3a64277ada9f43b2dc1ba3caf1b5e03704c531ebaddc789413aae4a19c96b64ee9c06a709f6ae00a7c6f5d5c12633b7ea35a7d391096f9775d88ea17a8080735f44c9588bb641329f38428a2032c178e3afa1f4a35692233aae9ab9ed847f2f62217bc5bd7bd4f46f7185123bd30aeeb1fa5bd7cfa8fb631418c6f064a212a0acc641febb5f6fad28064614c7298aa4aeff24e62dd6ae0fcf4c47da03b995f69f84ad68d730f2897286b8ad0adfab8cebf2ea1e9e4545e426e76abc91564c02099ef6398edafef684a419edf6d37d787c437591a66050258748ea11bc1ba5ba7024f7fdd18682292ab7f4591288aaa24f1c14e4a1f26b15d6e61f092997eabafcdd58149e31be97d3c7216b3383312596f710d23dcff27e51d725055a804cbedfd63831dea84c7cbe9eba0d0b4c4c81bc065aa7495a792d7b28631c5e7cdf295a8054dca432a957287f02227fb5961bf37098c5d4ca4a7315dd4c9a54d60c824a7faef1b153276c938540fed48ce0ba46aa1f229d4327a62f9a277bbfd5eef14d8c7b1f497021411bdad8e8abf2050b4965eac8cd1a6a9e425a67f4a59c41c67007126b58416121d928859fc7e8ca1f49e127550deb90385db7e2eb86b7e3f36e2189aaee576a9c581269d2aadefde81b97b278dc47d5d6609e6f7a1bc95c8d84bcae0a02295c051c86e3a7014714bf7486277a442f2cde4d7da770e9fb834fce66fd89865b96f330396a35dc7f0be1cda53bb2d5928737a03e81cfa5232b163a10467cd45227c0d4aa7009b99797ede0365b10f691a7cfbba3274f67b8a666075ed30a5f2f520d296958a55fb99068af0195937f3f221769d0f2daa81526e3d7bde6afbabf263cf887acfc8a481f391bb851d3ae0c8a856119b40e1ca712d94f9a91baf31b3bf5897b76f863f95d2d0f045e786133c411ec6793be4bed17b6465317ce34e513a187c94ef5cb6c087437025cc0a4b9b1b889c495710e84098a87db3665bd63adf2f041e843771b54224a2bc7fd93e846fdb1da84e2c894978e211ef54828fde45920b238a7d79940afdfed531587500e639f87577e805ea59a488dc31802bd378fdf430edad67e8377db7a9a0191b4ddf42bc66be9bdbd20acc57c28c9afe9670d8cfad4096177b33b6486aa4e4e7734bdbd89da793fde6c68f7296121a5df20934b008c53bf507d9f6cff5b9f0363544f435aeeb97b80cd936293cf3eebac9da550b56e4ec2037daacbffee280ce7a64040c34de8f37cc397d281680df726ac092fb3a183bc0acc48e576d33598246aa8e9e7ba78566ff6030a65c0d4cf74234a403648ed4c8c75cbe2503fa1bb64f2a452ce618f71b31a0803e6c7a985470a38189fc27ef924c8667b1c905fccd105d7a8338f89f51d3efdbf50c3f8f73a366609fe7a9b9959ecb14c7153f5108ef9e480fb5174071b09dbab378a00ec1823abb9da909b90fc3d28c39837fcbe8140f5328cf992a31ccdc18af2a65773f81da2c6a9e94bd80fa6ac923b14a1497a0d3747aa9bdbcf82ac71fada7f62a273a5297aa2a76ddbed9900bf15b1270075835cf2a4cc789e67c3d182684ede966d0de58ee6cc3420c3734d34f3ee63fc2eb017a2e57c4900f9fb6c368e4a5ace220abd042eddc9c2a28f9eef767d3f615436a399347f60674a24efe2fb1abacc7dc35b0569a4cabfbff765b76e5637e9e81d3d9e44938439c8eeacd1244db612ea76afd809e5c60e9571f463b5cddfc4c3baa5b357f0af12b7c11a182e5258641f7b6be9e894c28c066d05b8e5225bc938faa2e80e3490d7689d52782640825f9fae87d9f47bb7b6c4ad33c95f28e5ee48b27b33b7490a9811ec94d129616662dff6bea6207c11347d867ff862c14a1ff4bd7e5ea556b34166c1c020526c0cc2587b10df41863131a224cb7a3eaf6d5486cb7c0473f856226febde10981ecf50f9b43fe5d043ec89d2ba6271da63c306fac24b9d2e2a723a3839961b05cce034ae3f5245bdc90bc42c4f6e921b56d6ebc993439ad0f5b85f4987b839d96bc20e03991419c83cc9d916928161e3a2c304cc0ac29287af902f1075b6238694cc6f0f9c957c162c58d444690df8ae9bbbfcef09a880add895d1a5212522a2d6aaa02c98a812ee8a5c3608caec5d164285d7fa1cdb0c78f0148a9af1406e34e8ddb72d556499cd9e6e363215d871ae95faef99efc4ebb568921cb12a6522fd1b36001435a48e53eb9ac91266f4610f088846679ad1492bad43feb32595ba9ab25faf79e887e4a421e17d5e2d41b40161b01fb915f1475fac9358cef1f824afad52ec2cd8f0c5455db82405002adf13db89f256621b88ec98a1db1288576266efdf25b57b066b9684874d43b9f9711a473aa76d21c7c9a6aabf601a19a1b6009b2bb9bc51b5fd65772c9078ee5fcd5c9383255d667396277ff45ce491666942dd2ce898142c8e4dd275a78c3af06b7029353339861ffe93597a2363305f16eb7d2e206a125e17c571a95bed15a4ba0434b5a2178ad163ade940f85de3e48d96dd50908e458193248c003d6fc7588121047dd185b2135a7f7268f2923c7445a94d081061e79120032e262e9b794bdb997b9b76bf2b708f3c21caae42ef31582a029b557ebcce34a620bcbe32a7a1bfb59831c180abfaca1c2570d28f306117ad37a67c0a4739e372c6d755f5e0e41954fdf3c68d32c7f84da1185d5cd2ee2aac8998dcb0601b3093457f2cf0657d720792ac4249956f464ae2b5cb8e9ce741f8df352f587b7f75416d3118e3263f27ef33b9a2f4bf904f2558ee0ae93bfd521ccc1407c5ecb3d76b1e5e258494dd334fb28c6773e44a5aa2b79e39db18076dd9a92296a436cbc9a1a4ea01ac076f8a283f2ad2abe0c4a3254c523bfc8b7e171c581ec4b9311ea27d58ae37b5a9f2fb53dcaee2de35a5bcd2f4ce1a123102430dea1a952660c73efc18f6369882c4b0e13cc4a691da9bf5697f893cd48cd3c9204200e00b7025ba74a503318eb92c31bf082ed8e109d8dbb6132c61d1d4588043230b55f9245b2f22a68ac24424d0fde56e43cb5ff48fc5a12a1678236c9cd58ae64ad4e773d18e713d336eecf73cb894786badc7df7c6e361cdb41db92cc0308ae2014b89ab18285501be7abce62db549ea41334d45aa431a8c0c24dd9bad0a09fc7976f616b63a251522b423b1504cfb500d9a36e6a03e8fc4185ad235dde0f6dc8f5ad80313c743b5e6ee1d38dc9af6d254dedd1f2c297a88cac996d4f8b6e30846e145e7cdf6098b6d38cf4e6251f33cbb278f8bc91779103d78c084d63ea6eaed299ec850b58e548f98278a06e8c8a420e5cda93821489bed055c3bb1f88e5cfb90484cc9ed35bf4517f5120ddd09be943b2f4c908d14f071604441d38169ec10806f095dcf9320f50dc322ea7eaefb88647c0b40497e5dc25f2e09f02b1ac35c8adcc66c113b4e15fe07d75a7d224b716f58e2ce00ed570a4d7708f647ae02d4b34838b67c91227b2bf3b07962eaa854f46180fbbedbeaa4d0ddddd1267a482a551df927bd6d591d61c39d6d0e16fd20641b7bea72ccba4b76cbca16243475f729d42cfc028c1452612463cb4becde53a6bfc9df73ace2de575e095a951e4c4eab0f0d9a59a9e5bfe0d357483dad1161168c096977de048a8a489972e2430044c05cc0be9bbf65eca0b721ee145915524c654977caddeabd41feb29aa947f478ec820044d5ac7d1def3f2bfd72b0da223d9c90f20e7c941422cc1f156fb78096b22c8285dbc89a8232cd13f7299bc92c0b881750c7d46a89f0d013992070299b3a3031c42c066cb8ea31369e46fd1d1edbe71c179df88b4143f14700cdc269bf7d9ed4da6504b976ee20f6e4343dd9a6d1f85f1f92ad8eab42da4a78950e9867b41426aaae1ab5c84e94f62ce279141b0728c8635306e06c2deb614327b21277f0f8ce6e9e729e0eee919bec6aff1a9024e0704b806e575be2bc09272e3da1dd48e80778f7bfadae41f8edcd89b7ece0c43de76cc7c92dc4f7e56206d00e45ac408679a7999e1783f5ace7e14007c3da0e0d4e769f6298ff1356d5ef9e497a84874f50c6fb4d1d9d4f8c94875dfc097d68e14e92f8dbd1a77215213353b44228f65f6526388c394a26b1841fb7f2d128060b2127383bfbc5eb62ea9a4f1efb6d1f76132cb612630c87cc35653f931f7e1337b7b595cf5e7f3ef78afe33bb1aa7cab5038014b5daa51ef01d70fc09b25c5bca240072b66c241009356e5c83314a5725432bad119f2d13caaf8702f378dd4512b02dbea2da7d53cd4f5c4508a61cf6551b48956096dcd7b9452bd53b0b44b97fd68baf2c7a551f1588626dce8cf05dbe49576183674f4b8395f2a778434f560b0996ed5d2fece01422627676ff23ed9c6709f6eb1d42d4d9e015533c43b7965f2c3104188aa10878098ddc1be3314225725efe1984d71fafbfb4909dc0afc9c609886af23d385cee4c36ad0ab4cc84bb455e1184c1372d9af771ec297770c6555cc0efa3a571c68eb309a8c07cd9da550e956c7b5501962a77e181a1b6be2c3e598dd219c4ae32bae8d126b1c9b7de0f58b7a14dea0d018e78367789865ed64d33ac9df9b717d61722c1606346bedb58d2bb52899939caaccd96cb524f6b228b37306cde0c763738884d32f324b5607d37bb2d5082e07825d3894312543fd61e907f5369ffcf7d794af45ce141a9b2f4474758ad46ada1e4a3cbcbe7b86591a6640fcefe9f1661ae5eba422f20bff804ccf7c056fb4aaba4de62e1ec28de6f73c6c77af343d5b2d271a675ee1265c29a08df7767d6c310439192a159d3a739e4d5bb2d264ab7f71b441d0a713c7a9f632700905786677fb451ef8596d01eda532e1f590d5bad119a50c13f0451dd3b5077f1fe4e76bcf384a2098db6a6d1e80965aa4f4841bc4d70b49013d9eacdd25538654753bb9a028fcb1f625859bbde7de21662b373731f90c684c48f9cc5fb91293e51c057f0106c744b6e439bdcab2d81766ffbda71d62ff025696a72747a0447bb6c29d62219e98b087c6f0983e22af239e8bbaba4a0c694f90669b3fefd36353e62e90fb8326abb312435206090903ac337d1ff298f673ae6e1f13e6871fa8f773b4e6570bb08c6d6e057d755f646721e47372873aae6b21e617dec3cb5ecf86f2db7075d2008de129fdf3675b3fe27181534be2b5dbeece7de073d4066de2e34d005bccd7de4977e4579df0e8fb51937e98d823b87dc37fef6d38e76c7e7d369f0ffec27715497d76e5303b055bc0008c01409cb7bba72358c7711fc0dda06911e2a136b7bf6ea1a9a802054ddebd3444208b54667a0c4bf819a6754748f4acd5d808f75da1a57981962c20db5cd930e8a26f86f41b62ae845453351562b4f227b7ff4ae1983efb13c6b8f276e528fb2b69ab1f231683a506ac337d9dfc367263e7d8681e746305f29293f31248a21c13b6dc432648d3af4cac8cc19c291026279eaefde4b178d61f74bb339be0b222dd10b7c8573adeeeeab5584a4e54674f8a8d83ab51fa70939d895ad1137d1f1d02a735b9b9b199a9cb0b75b2f2daf8ef601ade85f857e4c37f2234850779b6223f41f4d44841f5c84fd26069a6e2954d90454694df7b34d397bd16174668c7cab21d280d1fc30a5bffa18333885fb17573bb225649962694ac46d1e5f2eaa4b30941ca0966e31614ca8f64a82f8baeb54fbbcd394f8e22b842928061e384aefeba1065a419275cc7d7ccb4b373433222d9c85e254ca2b658f559e8914d9281cf54489f6b9a1836f1e83f9314810bae11c75992ef16bb15715e3bf18ec6b3f9d1d89b0e231084ed2f47baf8de40a9b89e78f16ce70cfc05628f7b5305914b9aaf289914409ced51c245aacef90e998d28a95cb34bec591c6f1991ecb93be6d39c829a886f5cabb712526dcca1c0d139d334ff15d17e423141a6b63bff8fa859cc0ddcb90c3d4dbd2894a3d9e5fa929105ed65f921149fb16420080840d01c64f97606e5ac9b3c26321f275e29d93708e97c8e1a59ccbbcec86bec407a46f94fdf9cc09095b9bd2b02b2889aa4e347e8ef5d97e987b2dd9641aecdbfc022ba80bf4c1a6541febce0900734dee35540374adcc95932a791af072862b0b5a928d0e00ee2f9df0912a874b79d3244b5cfc5702b3012d21afec1379c070b15b3291d090338c8d29722486ca61cdd7cb77d8a9e8a295e5398c1a84f49f3ba2d786dbd09cdefe330310fdadc0651eb1279f9695279aef9971f2816b67138c05eb2daae3091936144afd3ad49e93ad8e10388fdcffb36d9f14fc1b83274e7db9e09cf66d3001a560c8e0540dd5c623a9a254dbd9cef7459aa62a1db6f74c71af6d28e06cb76a12dbb0e1a89e71fb3553f966831057054d77ff5d61e7f936ce1051f7e8df623c2ae382a5e4158e0ed5daa6e2172994af48c21a5df2b55b8acf27b18fd5ab54b49609e530a30460cd13004ef994caa8388b4b477253949e8b4479fb201f36d906f2fba0a1c3f6c325b514e95c5d6d0ea585e5017cfc6972f4177caa7c8810650dc24903edfd8a8f2c8f7db839b1a66bf4d1b83dc6c3edf19b9d7eac7370c6f1008afd77f51077d7e301cd437bfc50b65bc99cea84c06a7ba327e0097cb9318fccf887803c9e88fa9dc7bb38f19782328669623917e28d4459ebaa23b2ab6766e4c8b12758950298ac9bbc8211c615412db0f6e58d4e435389cb77abdb57982903cca799930d5baa9e4f4b7e2a85809cfb27e09ba6564f80fc072c493b7093a05993233c1242253c5f228f81bd885f29f4df14584634c33954158d483ff1d1fa61f83fa0a6f1c2b1e3d5956b216f382610f4ee882431d5cb25e6b8ecf0fabb64feade3c76ab4e1b5a683a71bc5624709f46abaa398f22d1dcef0aecb3304107be626a9ec5f81a23f416cb3c694ce137b931a0b76edf36520df10f7c3705322179255b75311265e33c39657f36f1ea9516d4ae3085cec68248013adf487b2d94d1a5a34beafcc123eb2c3c5677c740106c8d6aaaa7eb4c69b71a9c4c2d3188f5eca4eb606bf3bd4b3c0e9cb02a98ef6c0fa5cbadc2f8f7f44f05020a3faac65de2cdd6279d7874eba4dca8d121a520365c3b34364ffd4b740d4615f9fbec59ebe608b3c4c7bc89351155ced07689453d28530735edf7551bb98c5e0a6464b33d8a57889555be8f7eb5a38b1a5342ca1348e55610ce38798242e21ec2a71ef7fb024c2ca665d004c16e4fc8ed051aac9023301a1eefaef426a81962bc26c39c4d8b6d6b3b2e71641bb3006ade6a6fb14f5ab5912d24b2fde66f459a24bed9405fcd1b934a2f9a365012067553a093c3307897fafdf113b587af338a3c673dc1e45fc3a6fe34f4a44546b89b0a0e3819d4b94977c338814a30a53243da25d48090527553352a99e084d31fc390bb267524e1c31fa7ae7e59eedf9f80e846e6579dca334503bb4d8ebb397eadcbf63ebacb19ac7f462a8aea31f803bae3eeae4747af85d92dc75c823db49cad714af07ab7ed286530bd2a8a4dd8bcda5df8ff805066234bafa47e507f8a02008ec4adf79c494dc76b9ef996fb9478ac7c2213af7da0ce5a373276979cf07429028d1335719150b7eee4ed3ed5d502a8788fe2c01636a729a7b94d7bd277628401ccb86ff0c404c4271275a3ddcd260e2093a29c6a138f7197a25d74030f1cf991e0e7381ab43cf3766c2243f7c3a7e056d1364249356f88d0f486743593fdb60fe7b6f4b1431479af29ff166a2b92918eacbce288b56fa3d2aa4b6712f0e7a6aa8f3a47bdc14ca19c69c5c8624c67055304855c81e7749f4fd4ae3c69d0ae39e744cd3b084a2ff379009006717ce5d2c343175c9084732cae880602abde5b271ba2a496a23aa7747611c93f0ae76e810ec0171c97e86d9989a929076e9569aef4392fce5db886153979610605e650e5fa662b5f7a5e2ca72f75a3b1ee9f57e4f1acf49e514327b859089be61eea6d9f62bd32c8a47c02b822e9d66a87ca3ab3e50ff2095a5bd800e48defc676f30b34b22d76268191336b9af43b093c832a3278a2acd29534ce11dab1dec8109ac9226da69da40220c832017b203034eaad20a6d5743fe77b829daf9fac3255a6fbe7a8888d0a1c6ce6ba7626976437728a6f3ea293f3762bb945cd805b219139f5d58ce6826b4917000a4a0a7e01351196eb642f5c382d6f9b1110c769a17386fc42d71109ab05cd66198515c7c7bf006f510fc95bef3d999ae148471f549119ee9e5c7aa23c52ff194662556c838c0e3b4b8c2622b596260d2cba2373f6e2b1d0a17edc3e6335b3df61ce07ba20f67cd01bf9005c7172d3b7f9a086d4f542a9dbeab9bfd8fe365dfa5ced7dd8987a73ea04cbf939aecbbfb40da42c60bef1ecb1151a45d4a7e4cd0d7995cebf4f3cff4ac848d15d96e0a36a6069bf4c951486d381c245f9704f2e05b6d258ffd880a3ecfd0eedc765b4148699020098a133b287c666c1222a8c0c0cb26016039c327aa55b8a2e7f6f8fd8260179c13e3cb98bc113d29cfd663578ec8534bec07b5fe4dd748219ed967b4bb3744ab389c07842c18e61b070dee62e643ff4b6f678baca3ceb8c4a2841c8d30348e5fb38dc22e4730f872688f0c1d8427b7ad96641186e6b83943da74f8866d89f2fa398ced1b4d381482afe41eb5463495503b7c1f4c752135a6415ab141ccabe01cdc71c8017cb94bee5ba650d16d2f44779e11aec7a74c9f18c444285d42af2a8c3bc008f065c4e96d0e57dd38eb282c8195fcf425341df429874263bec844863d2cf3f431c0e93934e629770aeb5ba815f75975b578f6287806b9b5a00adffe9efd624432be5ac0a9ed143196d3354d333520f43689164d0af178748c397a4e0381c111c6762646516749f856839734e91df5c2872f28681a6b6a931e16533673ab976bf1c524ca0b68381749020f93af678fedb2cf691d2f1b96c83f457228d0c2116fefa6777cf03e20e25e37b4c11a7ec2e526cc1784e72e4e3728a9c26d73ce30712ebebec96373348dd39722402c172ae29012cf354f259d175372aaebe88f1721879f9d7afbec0756725d593701c844b1c29be9e990c9b1ac7bb177e2e68f2ce8fcc139b6807bd848fda860871ffba398e8fbb6aa462a721e73724a109686a39db3010a822a0c282a62e013450a0272005de5ded5123c0e2187161d6a254c6b3c52d993ad3a5a86501a40fda0c78c2cbabdca0224fe1848ce22532fc43349017fa2fccd9858206377a860e53d764e69dcf2242ffa2b964858f720e88a711592d87c1b3d3d5fb008ced174127979cfc216257d63421ca9d76af45c0f78096219a6352a0bb75913aebbccc1089686fc4b07b01167ef9f7440294e4094df2754b46e690a152aa2b01644c98479c17dae0aad3e8c3cc2806103fd77fe81016a75d784a52a227ce19132386499768a9e8959f4a06cfbc03fcdbf1d1d7e40f786f251d310be9aacf60954257f7ff0dd2e8dfa7600492c2b0db29c223f123fd9a3dfe9d1ed8fe66ae59156c307de7517f6c4e59bc4f52a4ada80b542ed9296e6f534a35fa153f8f02a0af248607f4e34d1c4df7a9b760f147be3b479c7a802de04066e8918a911a7250b6c453b0fbc90f5ac4f4949e7d5324765898d581b4b64b2ea12d131d112f3e97702d932b9b3a4bb33b6b8fba62c9ba1e7ec68b515acafff603cc931ea1b9b78ecd48c88345cebe23e8e7d1659413d541b96c2f070d6dc113f1b18b22b3aac36d244077e6de56d42750d2347fdcde153b0bb4798f99504955e7565667bf775a065c20a98034de309f6fbbb6da10826d1efb1fe4cac79ac66ef1bbb5ce312f0b9413536b6be3432a7f8517f8410777a6eeecbc2fc2733956508c454b66cda278daa6ed4ea880b34c55f53fc204d910da23b9a4ddeae8778f510e792180c8ead5932758e72d14b4d499e61d7d19d853f9813e23b67bb155f92bd91e235b23ca6d2fa637500439e236d28b89b7cdd73d473fe88144d14b3392c5e069a05bfb4a1de063d8a671747e97833b3da306ab3fdc7a62a657e277c548cb508cced3dc3fd7fac78d893696d953f5c4369611fa222303f73d81c40ee4821b5b90435c553521a5329f9fda335177c3aa848b04d2195b6c4c249b4096b5980079637dbc48c593d30662100991fe47412dc8a0ae8f3f197781113e7702ed563ba9c15c63ca2b5d9885120bfd8672baab4e2897180865c4c6de604b95574b7ddd7415a26f7d73bec154d640fe3cd9f92b3b0d5695109c18e898ee64981d5b42f4c4707a48bd8d8ec8ca1465edc3a8e4a9bebe6762c898a4a75ca07023d867ce02d379eec51031b50e5afab2e0e68d8c6eb2eb79d845a94cb89f291b63f407bc4cbe8670e9a966b16db58d64d0c2a2ba968c33dd2b89b6c7a9ef015302df2b9df08f295226f445151588363d53f71a67557b060abdd67b212fb950cc2e348977d2b71d4d3a737b04b9daf6026b82794206b69319f9dae33bb541c77dad3b6542564cdffe9574deba1080e1fc6099142d10ee0849ca39454649cdfe21ff22366aea96336455558704a5228978b21024c09709197c986b0a4ccf2af6b794a74e5062b79164c85e8ec2eecd3c470d25d7c501929bb9d9092ba78820b7031423ccc92068a9458b7bd96cc50ce83f5cb7f6ba458019a832edbe88ea72010bac2b4b9d122d3d352f47258a1df755b7e34d69521051471927bfdd71c47f169a793a7b09797724c2723ac43b17c9670f6e6c86f4b58abf7d5ae1efbbb6a765c0fb09863e848891610af664af5cdd88268815873bf51ecc6b60cc8f11f9ffe64f989e63dfbd1ca6eaf8ed8eadd0244be2cd8689748952b01d1d481df370066760302ba087432af91978f76a0e8d75a0ac46828e238d14b0f0b51f2e341852e3cdc443cd41d13bef0f717bdb40314b96f1d1b68e7eacef04e811331a7db3795db42a10d40e9c32aed0844fdec380d2d2a2a31947f027ff0b29ea07fbc8d8aa36facf70a263fc7804c3a477b0af515a53b5d042a398a6913b7f6a3c99e545ab3bc58f4739a8e8efd2353b52322dcb8315a1eb1ebdc7d863dad7617decf8863e06019756f6ba3f2168d6e3f098f9f3cb65e6b0874186ea9c05c402e204f9ec293edd58671069e380c23ab49f8fe790488783c395a90dc6f64dfb33cf6e33d450914b93aba0fba2c6de5914dd8a5b53b2497e79bd204d26bc17d770c464c53aa3ef83638a40a7f5aa0e0f274434cf5716ec60b80820687986f4d539b46c24a7d8b4806a4b371b8590d39dc22b8551f4c85bb6e1ffbe3393e5601915ca50975e31ef8101526ff787e4df26f9fb5b02d7737891cf137bbb2f5babe81ec0bdbaebb7df8a7edaee50ec3fb133317c169874598707e19abebd45544d2c2a2633fcf4bc25e1886b5c2e5293ac30ce9b01ddc62769b016b3c02c290aaaf3703c5c206387c4917d6d2b0ed6e7c4ec68773d2d5bf476293f9b6fae7d75faf0d4435ac0d77257eae3996960ab7e7c1d989c0afcb03b24943355f720f9bc28f9af6503c573f655fff134ca0a87597fda48ce534ee8fda41624a31e0ef6c9808734959bf0ed4d3e26214378e3d9752d1fa7cbad3dc052e058f4b1243bd6ec66395e0c1755f9beda7cd22c6d39db442a4c96dbf477e50ee907a802021f35bbb851724688dafbb49a5f0382854c632a6ea6b91e26be90540f55df64ef64ea911735109af5bd142d26f211d051d0950c66d50cea106675295f756314de69dc641fefd1d4740b732ce79c91bbad6f5c3e64640cac02daff6b0922c34b1cbfa2c677ae7c7a152afc3a42892fd07b45b14e05456e1e9e17e4c1c519ffddb9aef851c043c189d450421c9c27a7b88062b986324a6ac6a42efc59b59a46a960b1ffde94a58ce88e09cb4018abc6d03c4caf201bad920598c7769bafebc3f43cf6512e496de8d9a9b5a5a9308a8343cf7a9d81d4893c3dbd99551c2bd5780b42dfe4f3865b6b1ff3075238e5001f2762dae8ff505e78c63ef33b7926252ba68f83bb6baccf39a80c87f6a4458c5a495b4bab0004919ac0d9368de88d2c61f6fc2d69e2a45096ef9111e7948672bc9d9124de75d9e953f8c659dba29b406e64d6dc63dbf709026d07547b8ba737e47f13ab54071e145a695364a57a9a398f52abc226bff647edb78e5435afec29ef3b9e9f86709420a01cebf5653d43f41677a1c6243b44fcf7404ce9379d14d5ec8ec3af2add3b021f652fbef1b7a6d4aa9f23028bbd6b3fc2c2653e0dc53f8f6311de01a14e3a122ebd0f042678373c8fefe945d3b6e2ca4ccc8252bd06f4ede4bd61ac2d54f58d6bc6c222e7a50f1604eb4991268b987be906c37a348d844cb205ca3e03a0a212352eeb046f8d004fb1e1749e8f5d2dd3bb1930ddf91e6b4a712563361d438126b0782aadebb45258238acb56fd1e037ac94ccbf7355fcd4af0ab708bea997bb062f4e1b16d975ea757e0b557158b9fb99a4d791709b97df3fa64bf23c833297d5b58e8bb265f4f3459997e74d6fc40fe6ab738e031ef44b13e1a855d4b3f07bdeace8809f83872fcecbd89340b451b5ce94042cc038a26333fdc8c885c454584ea6e36eb501b6e824e3ede518cec6c0889b1eba4ad9d9feb5ac51269213db34a9765fd475d1aa149fc90623b538c80dd61006909d0a29491df685eb9b742356bf852e11884a3a95b94ae5c935c25b9d9a03ed1ef635bc0a12e601fa5bf7aa0a8d89a06ea353ad3c5c0fcbdb05aa2fb9e882f1f1cf1fdfad8f1a7cb4cb6ec0ba54eacba600b90b71834fa831d38ed22f201b03fae14219eba5fbfc345205e6f69d5812daf3312e6eab5bdfe196a42af3fbc4fa29257219f0f90bbcc168478e1e1f4dbf4203346cd533f9a1e1513ac8c13debd2a0e55fbb662e0c084be34c4e55c7af83f91f18f7271277a023af5ce9fa145ebd33731d413816894d22cec41021041c8f8f5183bbee45fc3e0e13473c33f5904d07c5faa9d007f37f5c535ad43948ae5edcfc3e14252c1d60c18eb7204e667a47219b9e8ccb64dbfc4e2a8b16e64e7cc86bb7b8a70e4677c4b2488f834b699e4bca5e3d56e3d76dae94ff39c5b61af1a72e6871715c71fcfe0f90537636f7028f585071a7976c6b64dceb357614e0acf33918be1e4ade178c2c4ea055bf8d7c94e76d6d43a03fd38c89224afc35488da7792749787495f5221621b0b1ddbc6064807e2fdcecc9db81ec49539d07e4a7593d2b9bd4ed79fb70de67d5c21c76ed20e1c4209b17bd6b1b902b85fb43ebb02aed0e9664c91ac2352176cc34e0dfd6bef6d8b0abaff721f14dbb6541ee6d683a01c89fff93b4de5bfeff50bcb24ebdc890416d0990de26ecb5423076a3004dab8dd40470098d4fe111df4092c26dfc04dc393b0149a49406366ae5472b77c5c344c5dd1faf2fc823a84ea3d1c501cf985dcf604ec62ab64447db30a1e7c458273379ca64296d40067baba433986832d1057a8885c6519cc3afa927d6762b7a29e7f4be2e455bad0488a2675cdcc233db68f0e1a8b64fa55bab2dcc0ecb1970eb29ab764eb056a543672226a09ce5a0002b563950d685eb57e6e4aca0d97c003ae11eaf406fe187c8a26f8408d5985fe4d4cdcc3fa3c63dbae698a093da2593df503b86b7b9ea222400b39d864e03ff9c7ab1d9991eea89988d5d93e6e47a022bba120c2e7c5c41227bd806415f8366f147e04399552d66ebd566f9a7e5f40d6c0b0fb1c255a6cc73889070cfedc87784445bb7ff07f2daf1585b56e08a43ca8860af82f01c4113983f3047218e9b09ed9d420061150307ba36e55ff533967ac851dea910971254ad832e25b19231292a5d27edcaee35436cb121137fe1f6a77fb6a6adcf6528ca4f0af3cda0caffdde6d3a9075631eca6fabe66d4e7dc15f445007c4b0875d2c1af98ab89fcc5758045edcd77b87254c6ffa532fade269fb04261e33fcc40a89da9115a36f1a09ca8d7cdd468b4ce508d84334a19018c8411ead6c7315bad76f0f1f5665cebb587e138a323309ed8d94138d5bb2406172d1d3f1c29e8da4c4b4b2ea89c65daff97441eb2a9e94190fee76cb0bdfdd0c5fbba373885bce80d8feaeff9cfe8e7748624881e1cac880a49353437feb11326ceb147e355bdfa19aa49dd6b2989481c11f5a9ece244c6b45a766db626e2db5d820ba68d828edb39898b3e4a125bee287ac1396367665eb322358ac552b7c10c7766b1a92476b22e465afdd74bea701e0bdf6c3b66e910c6f1e3c986d3dda1fc37cf8e91aa1eb5b913cda01e956e743b6df5444bd79d2c442214882b311d4a836dfd43c374405d73b0e6e21f3df218418254e060fe5b426b7892ed3a231db77f09f81124973e40c7cbaf216393ab2e7b768c54f435741781c00d252abdd59b2a7deb401c1025ed7784b645a95f84ba6691d6c464696576085fb4204b477af6c7231820aa507a0c1524234f797f24379aaae4793d69d2b514956399d95bd5faa4e8d05070dd6d9e3b4f3779f00a768b3167152c00806dfb383f27b669ad3fead99be5272a84f75d34cf4d5ce476e9475f0221a82c3b9701e926ee8ce041fa4e59a71abb33882bb0a499504f0177d630f9ffc7db943fd7c0a99e90cbf88f0edcff7ca3d1a1196feebe270eb3fcfb6b75e2b51ee9b97c4871800d885c7cefedfec3c90ed3b9e0ca32dcf06bab90150f4ebc4becf1a225acbe8f1e79198f3b0262d5be0e977dd4ea20dce6885aff3401b943cefe3541d55c5f7dbf58dcd07398959277c11f4de8b60241ff73ed3218836cd88e8d99614e0fbb9f3104bfb907e949bd89e678a47e7ef0f092d165cb93cb7f442ed6732654fb567ae8f701c06d9c8a78a661bc2d3f71a7a537d97a41d71b4a22aed903dc4079c8649345ceb559ad408bdcce31dce95d02ccb3e1a1665e533b0a085f71dbab48844416132755e69a5b2d62eb2bf9bf9ca01c3a84f76da89e6792c92609e21cfec23db5d1036756c5a539d66fd9f2e2a8c7b8edf04b47cd102ecf74cc72eaa73974f9daa925ae44361cfbe72275d93bb09bf08116a207dd4260f4fffa4d95789ce28d365215767d447f548afbff565dda1760ca1709ac4426c2127424e6b0138f6470bc0b4e1afe10cbd309ea39657b933e0fb6512926b2618c294ce8742d3ae40359980037fdf78f955cf3f4004af2175e93bf593f14276905951deb443cd3a2094149a4d40122b4ddd60fb750cc68fdfc6b6ff13eb4a7881b23c1c417242ad7559d7ce3403d31747d78317e1dc8972cee257bef9603af45cacd72428c65a12b5e981655581a2c7556bbdc2880ffbcca85b916e1420fc359d0ac896bced91b77aa975ed90c176d677f3f6ab36beb1243089d7de7d6a31e075a759b310ce36824aa05b133d09366e17a6f92af9f254c04e2a250b9262a98edcbbf88ea2beed95734a9d85a83f3f91ea00f7f8915a2336ffed76c98dbded481382b8d12daf2d4b529cebe8a7d2e134a2220479d3336e4a27034b86a6c5b5c41e33cf07c5a0c3756a86b8dc1c8fe22b727099902e151c1e803c2a11ad1b7278d2421682941d4dfb13ffba0fa98cf9e0bbbb1010f34726ade51e1d798dd8c57d5cc98cc6f0a4c0b9b3b36d64ff3f54e1659b2cab0427199da7e12ff93da706447b3cd3909253e3bdba08912585031337aad38e810625985bb501f3f4ee2fbe12c7f5b162226ad2c9e5fca84a35eaca93657640373fdcd88cbf89fd048eb52d5cb98691a475b67b2b77d979ccf77c034b31dd2f9db7d023caa89a6613ee16c5df5b8600561f4e24e364569009df16ba1cd2bda9e9555b56b0df104c88267dac9cc957304e367be319b5febb3afdf0dfcfc560e380f78a623e7c5c4f86fbe03e94eb63780c733625e8822e8ef7c392d79cf970754dcba6ce833ac316376139895c1b64d118070c286c65f9e0ca1f48fc67f3f2dba86e63339fac4cc8276c95d08295a65bf4cfd2803033a54cd7c17218ccf7b0f6d38ecabf0c3e8a94b5409c09bee5a8d699c72f96e25b2ab18b4908eef4f6d089ff104bb344e245298ad3ed5ff1b6ff2a8ed47924595258b3674053b1494a58bee40266e5a988e33e288da7b0feb046df805b34baeac0d137d019198be78c189eedd5f23fc8afea0b8822e00f694ebea57c34013c148211ebf3a89b18ec18e09ceda6033ee3b1becec3344643c7d350cea7e59c626f970ebcbfbe88e88ff3cf0b6a940873d4a40548d4892d4706d3f2cf94453237f998e25de3e1ce00113268a37265ef063ae79e3d5df03ec87be4b6c322e7149ba8560bc7e5527a596d2133000a03a32ef5b453f88920afaac87f77e7edf0bbc154a67db349ce3160edbaf6231e867cbaf85c9dc4f92b59848b1ead1f5042a9b1eb97c422c2bea6757e2ffbef10dced8b67f2f574bc4e591fe312e270f107c3c7f889d5d676d1506cdd9344add043ec17039329dc5e33cdfac0bb3884e82188327bd816d6581e190f91f79489802567e8e99c075507fc2ec90b01a4296bfd71760c2054ee86562d99b470ab12b106661ba66da43da2a258f29141c5d20ec4c8eb564f002cc2aa0f3c92e67bbe289d3ee28b8415751e829d0ecc1cde149902293bdc003364f25b1c9d0da50a633c42b202682233e1b91a906e6fc2e72a6029fce80bd743adba272a53de022ebfb748a8567ec073ec5d63fa94d0b1ac723b882fc3a9d4c3e21d039f6b9aa4b7f255f7a84ad8f866010c3a47b51513b5ee03a8877684ebd92333d54ee790266effc9293360e3b9ae135ac51b3e3914f1c4a42308fc7b3bb551ea23be3a7437cf4e57da84af5fdf9616ffd8274cdcf34fbfbb620a23d8bbdc95e0e4eecdd46dc92dfa15755f9e8a94836faf4432e9a3ddcbc9d7c711ef48a1d944e4b17e6b627c4a201d8c2e10d407d8898ad1f7052e947cf3a34ebc1b50dc4dcc73931c34d9943bf1b29cee23b09316530dded5d643c98851c21171049472e4b653deec57030af626ddbf0475214141c3601abc10a50348d11c884e31c3c7d4e307dc27e823d8597696baeb49126ce4a175b5cc5b450f3ca52c98c7f2da6c1af60a6e796821d4a3873583af626f298a72f549de055c5a844508e0249890d8f48891578429cedaf97e8ad273175e6f4671b4bafc84c7006700014402f63ae66574cf135b73f16de214f56aebc6a7c92c9fb667e5c96e6ed01a3290ce3cf62cb421f1e007805b48cc3ef505e294b4cdd5de19758a628a2ccc80a3634d1ffcfdedef3abc06468e918567f8a6b678afd2df2077f5946cff400d06e20d17496afe5ea80068c712c520c2376568d79badab6ba08ca9db5736826a362f821725f1dd1b0367382ff564ae9bee27b64b08f3429e2f43aff07817655db6aa050df424a17c3b215017f81fea0d4a414f2da7aefe209460ea946b1716833317c80c336b539ab49c2acb2c552b77ff1956298fc7c8a0f378293f457d2120e51c29fc51beb9d5ad4ccd8c8577d81dc49c2d02a3956c4d50f1099a974c8a989c2b0619bac1cc500708be0f8085b1a8e558df0d809fbe5e15256605437df2f7655e0f7224e0557316abe8fd9fdbe0a4722f4db3bcb7ab8cb300a912196b626ab802cc6b406e08698a6ff271b9eb1401f34c7ff37613de934da3ba084fa750c436a5a93baa0bd5a060ac157d0ba3ec93b071f5dd323420b574d95961c095c6faffc52a6f31bc024be9ef84a52a89af928fca001809bf0636f5829e4c0180e1a78f960c656f73cee3dba58061bbe1a11b77dcd15d259bb3e1b235112b41087b892e6305d2ad0cefa27bbbbea0fc5a44ac494414f994f1b58195af3c16fd257702f3898f3d1de96006ccf37f40221376ac6d4da84f65e8236985e9dd578216119851210f815bae4954d5ddb2977ffebee1e5a0485412330ced77dddfec40eb83753db0824f4adf9913f99ed0ed81f8fff8f98eb01145d246e78b512009ee9f96e7d899d9a935494f8d5603b4ff7a0965006fb52525e29c7d33363a939376e2e6e1b51efd684a7fe0513f86877e3babbdef4f041e41686cfe327e85baa5c1f64879a61593b85cde66b4bb440b8e7d164e1c466319aa9e068a4b4a61900f436036681dbe8397fed2914b1f0ce0471fe3c3c38179acba931edc66bc4ef2d25d3b108d1e4e5659e65b4b72adf638382d853784325a285eeb061a6f9e9453a59670ed6abf1d8a27a5023bc84d4851dfbc700be58f1741997defaed9dee2fd73962bc8a537922c7badc401b1507d483297ee08cb717e930045c85d181d396fdbfc3f2189812a0ea5a9a61ed343bd9219b3eb5105797cf03d9d237a26466274af02669b828a4f234922ece899d62300f17f4d9ec1c7f2e28dd1b14aff40977775ec78a3a5f3c9cfdf742df2b3ce91790a0095c2154af7fa41fb2f9124ab1a1be94c21f62562ff15321ac66f940cf8f52ab3daac778ec6074030e4141ca5df9f791795b6df5f59e5e23c5500f39f4ed709516ddc452ee88f840101d6efae8dc8c88257d5cfcb770de29f4a3f4aeca9d2d3539dd73fc6478599498a41a99473e12bbb22b999da10aefad4b91d5add1fc3a9527f4a087f4469214b9556dd6a3b562f65657701a7a05546c3ede4a52b6f4b202caf48a825f9d2521ffe2e1f9b71c611f0fd6c73524a63b57d761cf3b09af6c0005ea30dd43e907674ecc6890031da44b81db37cb58caa8a69ab4aceccea9b86fd346485292c686a9cc12f37148630eff97dbf4ea0acc9dfb4dbab05d9062762f6d644451313dc1feb4994cb295ba16c93507a40abf61d1d1da7892dae1889bad00a6ae5243f221d654b95e9bbffb4cb9796374c973ac3860539d11b382c84e5bdd8c0e280f6fbfbbdcb8ebcc89ca34db1c64c903e2296acdd5fe46b1a3d36b145241b1b517ff6e8a6a747703e2867e953ed6ecd1446c3f6d7ba66fd64a4c5de208d9055cf2b1d256d5566b577a96acabfb0a0eb37210722f077f57258d854a1e3a0b7b7ddae2089e8ecc643c8e029ced3e23a73104765bd415c4db33ab06f2278a7024e2f3b7efcb9ce775019a4a409b08a8513827cc7adae10606b3b9e78fe6894ea8a002f3ffcd984b31b9682e14028906a1eac96a7a8d5ec3e88689138c5fbe699bf5f4e801b77b6a7656881db6f0673060a3a41a1ba58ba8ebeb271987d1b8378a605ce0d7e24493af384031f431db83ef0430e8bc3732a6d030268b71d13cd50d9bdb007605809470e882e0aa12af6100fbf7180f7e2f74d145a6405131892c55a5f39b08d3a740102a25e1d1d8aac00487e8a185c19ef5aef0e94c5bfa487770d55733ce7c27c3fa2937b0884b74de5a3c2dadf4fc7564f5709ba60f6a26b8839b613bde5276673c2ba402a53a1275dca5b520dffb0729c541b9b3b7f660f210bef34fc0f9d0d04bc2eca063dcb135589584c55f1d41ae2b064f0599977d73e12f9ae7a83613d84ececf8d2a8401968544762af7ae2a06b7ac791f2742d7a54c4230e8e731ee3023415809230576a55c10637de48007e6e876cca3db3180739f86c6afea595434f7936ad6e2341686e09269b8adae2823dec570933f03d81776a69a169f19f859523ab3ddc047096a98cd5accd03338480850d609f382096503bbdb41fc77b2e29a105d3de09c7a7fa4a67d5176b44bdc5724581fa8b9b3ba76e244f22a76b69ace38cd8389d9d0fab6a5fc67c0e1c636f95b031a45d8f3ea06c0bb26fa6a43404dec8eb9ede91c0b1b714d88ebbc6211515cd5cc018590cf481b78dc7ef8ccdb20c1f1a16202b03741de16b1e96ff7deeddca3fbc981e41d15cff85a6404af642e97e857c684c8eec31e23364962655c01d805ca3ade8c4b59393654b69a0ee67771e42dcf1764bf1a74982570787f514c86d26cf9d8d81d31dd74137d11f3a57bb467f90abdc7033d93d02340aee883b15d49b289f6bfb6cd64711c0f1a38daa3e304d75b742dba0474a7c7c1091cba8ffd63c2760f35615fe7676fbd6217ec98cef9152ecb3d1001160881a634449d8c5b212f5820295e6ba91c17da3c6ca73b871ff7255039d017f664f959e019bba6a00b9a3180e109092796a270d665c86d6881ce0b11e9d6f7a5bbebb2fbe5e12360a9b2a2c1d8496f26c8581dd38547e8008b30cf230c6f91004cd88dc91e3de3330d7fa3a932b3ea93ff4f772ebc38e52f234cfbe94afbaf32cba7a3b2dc418b05c7a51b2caba5e6c2356963cfce8566eb2ea6df1969eb8fb7a5f1038a0e991c2880515797f44d05400f8ca426a0568f96bfc26190937b2a0cbfea19370b0bfbe506ff7680951375c5d47199db32fd39c55a80ef9a3bbd880252b555f002a93c19813cacc66b2b5e4d88993fb23b4e804263856063a088cdf38af7d8544b4482841436de416df6c3131db691d73e12b6290870eedb9afc7227093573fcb614518eb658967c4ddcdeadcb3da59b35a3febd02d410b01e8b35390a5a89d12ecadf7ccdf4bfbbf0b6a9c337a571890483759499ccbf37d2db8a0e92382032f2a60f1962db6bf4a48573826e0bd59dc0350682dc4bfeca2c880dc176e0da9c1455d7467e8a9c2b04e4190870f1d2c7113815a3f152e71289fa3fd52dd081a3f2880b4cfa3c0893349f1dde4e69b385c97c5749ce724af1ffbf39c4f265cb585da9028e8d72a8dc4e66b3ceec8bb375e7b3c7e99a2610ad5312078afe6f52fc4d0620b754945bb8f7dc52c6fc06174b90a7447af32a8988254e7f30140f60fb05cb1dc1aa250f255047311d7fac55450bf4d1f77a0f5a4d254109354a204310cc0dadea22abb8897ec2db551dba7ca1366e85cb7daca2d32474f83532891447f996f994fd9b8c68e2778c26f28ebe0c1f2e7d57f059d64f3ac700ffa26ac4cbaa5c95741267a67fadf6c485f161135f49c436a56e0103240f0752cd3d21020ef0e82a8ea572e1db8b2d13db42fd67a7e207c7a731507afdc7bc9edc91cfaed96c4acde9439220c2f704bf9c05e9cf41c3bbd6b0e84a7acb918540f8a285bb188953391f46db84d8ab030b67e992efd72c1f625bad7892a577b086e70fe1ec15f06891dcecfac6dc3c4b31606f2d98359e56a97d1fed1e1f62a6d8d0b5b2543321e301faa9210eb7cce049c970dce887d878831f45197ba9e2cc8132cbeccb597a343fc9915b1bdac089c31344435a04eae2969927e3555eb1bd348851bfc64ff833c5a0c9a27cc168b13a1c5ea7a763d7c77368a863684b29b499cddcec8f6565fb4a5b150a4739712d71cd789c4474a3fc698d3665dce75483721cfb507e10072c68b706ea3043e9877b5dd02b965e373b50e3d37f9eda496a50c189152f11a57fe806a3b1f4337c19fe610e64eb513d5c01e38d51050b0462d387b0f4dc6145d793b104e7ee987717d0ad37a813201d438d0b56b279aeb58faa230243f539666fc3746647122970bf4e2a93c7a68bb104a33136a522140ab04eee58a6c61b6914533998c300f89261211c7cef2f959ae54d715bc1970afaa9ae14e9beb0a811fceb382910b4569c514a020a8511c6b9c5552f85423c5a5c2dee545ce1f3ece55867dbdd80d4d2559b97b19fa4919b22f8dbc865ffb941c7483887c9666416855d21caa288a225717bff1b99395ce35a4df324ba562028d3ee5fdbb6ef72b821e3460c305bfb6df6f3f3878c3b52d9f62a556cafe6c6ab2c49c99b53f72667e3d9cdb229a686c51abf4e6907986bbe722c2cdcfde61dc1cd7c657637f193405da4f661559019f2afc9c79ef2cd5135846e3c0ca4ac199934e8b55f8ab3f276b22b09abfd0a61ae08c67d1a6441b61d602b75c3ad2079847e0de55610402a7674df458d25b149fb754c0b0f907f2e88439c7522a57cc05d655173d55a004701bac14424fa5e96172bdde41f356d47cb0126457bfb99abc1ad3ac97f54986116786ba3f5d307f89c763328e8fad48090fb9b3a5d3b87ed2d2136e12ffbacc6d91bb05fb2c56dfb4ae7c280974339c0a4ece8d78a3998a0d0fcb80ff891f9c3e3e615e64ed6b16737aa9cb0438daed12f17242938968c567768ec2d45a00278db4da552ed002f1c9c2446f383dcc664780fbcdb9cbe4d48f58f781acc2f6a53b7522d0501e746bb11f72ee4218ae23e106ad43337769676790e312c60fcc907c21404b855c2b8a96b37a0621897480b0e11a6b504d65da87360074028ee64457b12420cc7f600ed98540fbba03d12e94ddffa4e0bf33dab9230817671726bf27fa6605e931347f4fadd20354c876bd02a6ac2db9fd68c07b4360e0a03492f11d859af1e125604bc04a6cf41d8cbafc868365bc330fe34580b6fb9d79cd7b27bbb53ab8827ced5b6953683aa3b14efb3b6a4950ab0232b62fc5b1886769f4dc5a406461d938a34c7b2bf4855b111e2c55589cb40329293222a26fdefeffbc68a5f0d649b9c41ea39a108b6c1d5287a497048fe72062abb7a9fcef4678590eda1cc0f98d3b85c8c95e5484e6a5d17a48dddcdd176b7904954563e27f35ffdc75923cdb1f387f1648d5663ec9141d3d289454e15e519261a62d76acc035bc7a51b03e682dd10bcfadffb0b0466ef9cf493d83e9b5c3a43a3ccce92e61a0adb7a270f05229e89c3deb513f6e0a1afc4396ee12ffe6b709bfd1405938923ee3e47fa22364dea4918b5c333c63c365b374a9d07e6362a51797cadde88f6100905af46af83072f11aafa2823ad7c8ff5ef1d0a2a16af30acf8c47a8b8c1d675ca6380c0d36e21fe2fa2800e507e107c38149d34948748e896edc1dd2617b155ddb155eea55fcdbd92d3571d00a3dad44b8a05eddba6234409b7856ae26432fa27b9e31681102766e4038be7f5b250e3dfcd4846e92fd1a7cfe05271cd986de28e9991aa7f6462f4c90003178fb8d1ea6e555c4de647359e8f5566caaf31c32f7c74d5f2fa25e0a620f04c50368bcf0c2f79f923d52f583be76ceb7eb90a91277052338a11982b80421d4ea68dc0eed22a51117efed7db9179f85e4dd5249eb421fa0fe07d42fdc75a7a552169a892a8e90db828b0022e3b0b36bd29cb5776e42e5baebabcf1b189ca47673e99dd1d5da88d667e4b909bd5ae386cb93215bd6a5d6e20af8325ca139d93fb6d8535f7a72130c7f1a3cea282019bb4d735a7791b6bad6ea9876793780c830c949618d29de62a2189ade50365778c4212239582726e84bb699344121116983d8a718dd03b47e0db5d7bbb1728b88b992dd017790dc75eb203eee1a0f81e65199d0181d4e1cafa811c8ee9e6780b609d9eccc7382e9e31245d11697b8ba860df0d5315bdd4384f2287729d5386d523531064ef3a3cf7a54db5b0c3a0ef14cb1f8e3d015cbc30c7eaf4af7e6a872372c5e1702a303f5044e5180f62038b7bd86fcade4aa62453d65fcd06f49735480987a5fe3dfe67d243baeca50503898d90d4dde4e602fef93ba10fff61104d8874a7a1bc51638512df5e671bca8d588a161fd7a806a11c8113c3ccc63c330fd78e0d5140f5ba8f6150131589e6132c444b593e191f6fb81e7560a9600712c1a2f013e2179bc421add7e85612e1ae7c34fb8d8974f2a2ed4b293360229a8d2cb19af3b8ac73d6f7ef6bdeddca2e7a84a00aaca6d326c23bbd30aa3f834aad1d0c7001eaf5d19a7532fa8a32ed7920c1cd5100748433c207eb222fa83aceece6fd5003c1fa83511f1b54c33161080e77461bc64a34af25182aa5088faef33eda1de9e93d25c991210f308c8992fc8d2e2e769a6fea48f41c547c8effb1896cd46c820c9064d0b4c7e2dc923e976a5531a6ce329fd2f5092100fbb195931048b1816f9ca01fe863061a8b5928a67ba40e427e938cd71d811c4bceb3037c0ee8d1c5de6589f7c940f2b84d3e72dd1933188c46275b0dd1ea65306b3e8f1c21bb9ac1281c195aac4146a434861b59de93e899e78423ec4f9f39729e0291ad26d2f578eb5f53e40326df9122a078993b95d8b04464725a70b037120162f83c182ecfd78465ed941e5c418940e5b0391e6e87fac840c787a9eee45953a9c64c6f389a2ebea2d1ce02cb10f430373ff67d305849fe6a1997d000277300db90c130cec9beba329f2b3c37983e64fe74039911f2ec87d74e19d0c5cd904c10ff20f76e57577baf2a1e806447083135f2b3d394c196f3cdc557e41606a7ef055120963241018918f76454a92de4915e336f768b744e12b6cd6e2688e6b31e7fd882312107bc98fec14c216583a9aa8100f8c3287d76cba62b3870f4e59745c87a48e16a2f4a3a94f7c259ac21547785fa02221f94e09b059805e3785f7ef3c82f2c3dc5c20de4733c38a38906754692151d4ed834f2327a412b9b0315d6bbc2877269e6cdf4ede3e7522766d332e17017e2d85f1dd9dfb5465a5ac0abd90d1121087faee2754d218171798650da82391e836184d0cfc0123bcb327d28a844fc35f06811949c24c249fdb90ce6fe0107179d4b091672e6daa9387d9879ed71f80b03913cfe257691b38ce19b242bcdcc475fe97f7a21dd1b8ea9a328ed1aa57682fcf5c43dad905de4d55d8b3b219de0c6015484ca794e47d90b8bd5ba2fb1c58ada84e3f1e7021338716a9582abfe42ff8b6ca79ad5ac85ef9ea54a7711b35daa8bcfe6c1f22a26bd6bcf0df2fc153432ebbe44c0e21a8c292ef83fa074da577bed7a0ad4adb2bdb5a9eff9aaa13d2cf35841e0d94601fb531b9cd7165537c22a1bfed558298b48181951d66cff62e2a8112a6dc35304c72f3988749cfe8df5fa0b8dfdfe21392a0fb408711e6642a40e5b550c21cc4bf2f075aa3e5ba57311c08148817c8d84f07a53b4034bb0e4e6b4daf565dbb74ee8c0559c3f5e8e354965470d700a37dd156c51eca2a07300a07e3c89bf9b4895223a3d7c6217c84cba68bf7c44e66b06aca9fb562c6fc120ab23294b5450ce2259f08bb5a8d872601b59c2184cd0b7db6a2fd6c7172f77b337b08ca043afbb7965e686c1945b9918b15fcd8ce98eb14087aaad14f3f91e61ff042d359eadba6b2b15132b233b99439cb3807ecc69d78d66fe798adb0d6050ce5290c5b706d1274fe93f5fa9791b10c3236e7f6aae7b0cbbc1102cfb4bff36b9a133cfe8b994383cc4a11499f89c5d4d9037fa1d2fc153d6bda724ebbb6f5a374f11a1588a706405797c5376008765ea70fd3451bfa79806732718e005f3e1388a77863d7ff8a1f1d1bd6845bfd73edc4d1dc304ba2843a4934d3bb0fa491c3cd62e063e644e921e09c84d55c35afe13434000d27a635a0d869f5d1609f59a568af06f434796337d520c4f928171757f86b96e43e3d9992ce42c4f10ca044521522d321bfc7abd915075fb7bd26bd107da3413fed8bc4152fe214cda777ac378ae23b2b99ac2d9cb9ca1a67070709da619b527c0c348f414552a58d46e38e90d7246a0cefbf2aa0042ee07407ef5e864b1e2bfaa113232a920a3b391b182f8d344f302a04006538c4351c0ddfdc8940e23aa38a5b421489ecb9dd46d650fe874227971ce4b2fece41404d19b58a908e2852a8dea9f41bf3772b28d4556a70916d96e39ba44ae25f51efe4c8cd96dd38a01f4eaf94ed9a2aa6aa24c5e7256b4e18f5968be15b5f6683c3fcf8831bff74354961f353bfa2c5eb9ca9a184a2cd4fc39a3f35bee5b193340ea7fe5f45fe714507fb9706a3cacef996649c6948c81c925e178bcc1a53ff66e2fb2041a056fba5a29f69ade8ab421f9a1f3dfab0f029a726a50a9c69434a9fe0665d780be14f3ec99d7672100ed0efc7bc0e00df3d441933eec30f94e5bc19ebb30d665efaa941430fba1c0d20cf177798e42dc19ad44d13bbdb997523e6bef446b25edd61907f4c20b59cd51d98c7727f36f5e9d7abdc6a5182fa5ba20dd04728d66a2a8a17e4010e9a75cf136dcb96db8047dede579e2fbd7496993c39be6e32230ee341796c37ade3506679fdf31b1c1604881de30e91fadb3ef3ed19d12d8ce44a121ddb7da1883e769d68e9884c6826470171f2d72cc64e985e9a096f8c22f6971b29b1af7121d6da50dba0e8db47229cc86c93e6a5b914d3f0e44557ebaab277521f9f41f52a27de0d11feadc4624acd51e7c498fdc57d2740b10117cb06fe8aa87d4f16d7eb096c43b479c3270eea82b98824ef67b59fe3fc715b13e7d2b836e55c5dc8d4d160bfc233d4b067d4e5f0e9504658638f3d5ff63399805ba54d7085be1f44121c802ba9f22b103166e8be5b153ac7bea4d5fd704dc43866bfa061e610b52e0f559d0348d5eeb881277a8bb25bbe6e399f80c2ea24917697c73a73c514c4fd2a058a92230c4c4261b9f79bdf272152425075831ee5c02cb07729a54eef8fa155f1c6042de405e261c15ebbda698207437ef374c490b4ebc734549391da623bbb3ee36d5bbe23901883a97b2ab4f50608f9df3b5c6cabdc25b55ab23bd2db76a969d451f884a94e569d29f36286b1e46957dfce1400461554b1fd82e1046cfdaf1d533ea79daa837481016067043b2da416d210d7e03e4614841e4dab36df55b72df3b032c34f50bd7b0df8604992aa554d76cb66417ecc72d5b708c292ede4ca49382bc99d7d0ae7a86e23b25a7b381da6d6e2140d40edbd5d09f0ceff619a562aad2692bf5b51d9a23434ef0c7491e043f86d414aa40e714b724062713006e95b5b2e3d2c4688bc18cae10134cf3814c1e041b05412ba78375ad89d17b664540669e0838f4c2df941cfa700a682e80ef9b9384c54db8cc19e7478a94888fdde0f4e438f5fd48339203e087f3584a47b0047a6321d0417998033d6214c114791dc74fdae37bd756a40d420dec2265d5ef23a14f8fed44c9c45b7f4cdc507c75c3ac3dd578c6a64b859727e0028bd18013c246a3d5d9284772f205e8d6df94be154e501731739bc8f0dd9e84b82ebb6d3b196efebe7fa7745d3c54bb56d1a9546ba522120e845ab8a610c59e0fdbf81949baddc3dedba944d650ffadae2b20cf1d9ec03a225ae0ba3dd37b782d851fd3359c899a653bf6a13a9537895aaa12d7c732c1882dbd699fc515be818a86123fb94fc6ed05d1e2e7406d3d80b7bc11abd3a4f5fa498a56ef396f19cab2fe7fd43f91876ce8515b6612ba2ea64c73429b59a79910a8db4d65c4638c89967cf25f31b33989b08cece43532ca74a39db58e4e97d1515bbb536fcf40ed9a6a51637e879a7afd902c35184adc9c44b09af67d021b0dc436b3b0afe87808f9182f8326b4471441701a0f3090368dd9ca9d7ff6eec29577b9cb837c73a9d84941f4401ed82520161d2e014c46d5ded4366af79ad5852afc0acc97622bb49550c9c77082499a27fe92210d00d281983f3cc7da9f2e320ae707cd9c9d7696db78fde5d7406a8e6bc04ef8b9d6ba24ae07d02e7a4ee72e38515e7137a288e8d45041c14b9eceed39e8b24c4fca74046f7acc78028670251858ba546f97542e2809505805b2b3525d447c3592ccfa2280cdb9849d371d6fb69d0284e6d64f6462fa0ce4c3e8c55a406846b5f84239c41998262496e8d05f34c4a410ec6e0472bc1de43edc81375e532b20e634834867565790c7d033fec7d8f7f110eca2736c648fbaa7dc0e2783a02830532d5c77bc20ebdbafd843f54736648b9ff76848d2e6146fc2fef855673f3e6932f48f2562b5175ea6375c824eb2badeab1fead92bef90eaf73bfc2eda86104f7013506e72bc05747dcc54dcdc78b0b2ad2509feb85a8fc0977aa71c617086cabf8fc6a22bb6beabdb5a12e369927fc38d95d5ab1683be5f5df4de2f809e4a0e205990943dd5b57c139d16ae7e62636f55b4166e06ba6fd23aa9591601dc4c8b8a7b3db085683d9009b7f16ae64e1d7377cfc6a5c12a190f8b6b2361b2b73ff5ba46d2e743a50e9a6b07c88b8bb074b6c360959c82b8d6d80dd51c1b5915195743d0496d12fac4c0b9fad5455c78af28582b64672dfde42f4f3e77afce2997375ea70c3d2a126096e4b1e65fd0231cad20eeca98423e25525ca43c20855db7cd304e7e78be57c5a08104dc50eab58d17b88892c385099e4be842c78cebfd3c456f10729078133c72d8a42eaecd6ad638bc773bcd012efb16428b47086d7b2d13951bb23f5f3ef1514af263ea44c550fbe65d771055f10a4ebe0a40c0032f565a23517955b2ba7374d6549b63d066598f7ee7ac4f6fb43b6a76c50a739a47c55f9727f94f85ef38c4bcd207c218dcd2a7eeb576772bb627957f844f36b68c4e0f0b13d7c622b2163a81ef6da6de289fc69c2923316f450609fb98918d22190890b15aaaa582ffcbc5d1c9a5a8c1672b9949d03545ba7f3701a29fa1d0990dcee8a1f47f365d4777c610dc1ea67843e16491f6e4cd4facbc3aafe229e2a380bfb4a1fd58fca4f11d1386b95a605568b4835d5b9a39635fbb0448122436259ebfe7e1a6a85d7156269378a06d6b2d4e98f0584c751df3d3fee0c62d602858fef4a2dfffd91ea497dd66b2bf826c02e406e4b982c8d73b5674b489a203a32ab94919dbd6c6acd3aaf39f319c56a803b87c80f2ef9a02ec2bae8725d703153aa0ee83960641374469fd89071abbe1c22ffb8e1a4a25b6842263d72194acb8e756d6264fec8e9bf9aaf182a8491788b645884b2490589b8fcfec749dfd1e2a3fb53765226de61e2c49ad632e41e235630aab412eee56ce9499c8f67e1bcd4da9ff0ee650e6f5f8a96370784ff72b7fc6d8f2388462f590fad319b91240ff86a50298c811a05daeef6b5f090c4c1410ddc66f31214440cd3893266e38f7523e030fdae8e7de313b014801735429521b5e5c3670c453f6670a62d73e828a33b855281b34ab7b7a0d4e56c4ce29ecae180603e19beb50086386ab3c7be790673b9c74650db8feb6cf293b762bfb1486d30af50ce943241ed04a8107dbec728687582107c2f6965403a427cc5541944cc992a7d8566491139323600d4e64467b9b8d7f150eade9396bc8b8de309be606d849d06cfbe20975f4d6b8c85c26e706cc600de6b04ba43e4692a5a99eec99cc3c6d2e6f6017ac0604024ed81867bc3a2a57819511aaedaf591c318cf841c34ee2e83090ef1bb03dcb2eeb7d9d882cff3969b082f36150cdcbd7bdcb177a634cff5f6cff6ee085c64f8e941f208d5b91f86655ce3a3d7c4dced3ed0feef8b61b053b95f18d5faffe650012c7908a72ff326655e2c0e748d8186073e4ade4f227de145b1f8149f2785353a3a3cac158ad2c351ae83857b8893394143a83af006b7c211447afb5d47a41e5be85543b79d2950b0150249b537291856be5dbef5efab767a0aa6dad78807f11f765b10beafbd1f3a84dd70621177b369c1d40c96c7a7de84d8ccca1d2b8951386db40a10c868ea621568de79ef1c88790ffba670ba44c0dd0b8731ee785274a8ba6afbd8828a9d298a58d38a2ec6db74909d34fafc606f88df98e4b34fda503b827f8fc5568660b29bb5f07b5e9d1357ea21285b1410d8ea4a2ca10ac6bd23e05e6f20b6221f8d6dada0f7a943dfcdb099020c9ee0ab058fa0760ebabcd10090f0c77f043045497bd8a83a9ba308eccad806875892dec94ac0232c92f568a64dde80a0557135a473b15dec1747f8d893c8153b1f0467a0cee6ff97a15ee1fe0356b248a8a274b466f0af51ae2dbfe089689100726062d9229b0818fa6ad2c4b0cabf9ee2c6c8fab55bdd43a5d6850d2c6efec9898b49f3bdb29f5a9c664182f4c63e133fce0ccdc1dc654f43b3f946e34ef3c79d3a934b21cc539a51414baf8ff724308cfd74d60c87ebc1388ec8ab5002ad4e6aad36335526f5d1605748afbcd5819863c7ab7257d85774b4ef07dc1b4230e708a335928bf9a12007d6fa6b8debcfeacc24310bfb43fda526540ea93d3c2663e045fe3440aba3cc9bba4a11383e8d1fe0d8216446452f6681bc4fab42bd5a20cc800b2cde2c98cc873e5285f5c4be4df2edbe6d9d8297fad0cd9d2579e8a8889b655e45909c32df7c8b8746b5bf6ba9cbbc6f218d574be0181d0a8cd99f72729dcafe713f82a819c8dd98b00a7205f37180e47cbcfa69863146cb051b493b3a6bcf3a5854782eb047db6556e5da23e5e5f5322bde876a1f41868d577abb9e8b87e1b044cb6d6b09564f17c1c307c9c2eb288db99455e401f16ef45c88b2c08bb35b5b04b6b32e1cf23e221440b4e91a40675180f0e1fe58b0422cd51eb8e5e4cbd624241a32655142c135d3d57e09bdae63554b02b3b4cd86a96fd3cf1e75c285958a6c67b49ba3ab1c2910ae49ac17af5b9b554477ad3424bd32baa5b2541b991e1de27f7b4af4d0c62900b3b0c3f03764436e93a66debbe6d63864d4964e2794da11a1a583f2fde91a8902e668c8c089ee17f153ce4a0fb68f2c32ac6f96e6b235e7df99589a9ebe44ced435035aa04c21ac2e5046f5179e64a0d183485005827737e26fd865bca1ef66b136d8983a7f1f6a2ef3a64d2f50adf9e3809ec2bc703a0a8c362b17a2235e7187ca04c3baf57955ae7087fb4afc3674586c50bb06b0ace48efd80e05be78755f6554b30839599b41badc9927af6c0fc1c7f239839ac0f687ca287e00bcc95c721079262b1453a17a1821058b7b57fdb1fb13edfec5d37401e39f5aea138679a138163a6e3d8eaac7ece4215389e9d2eec15ae67a83c0f626d1404f946ad0e6295a16c43e2a08feba6070afeba5db6346b31e31120ac149ac206f02d131653e6ab2a003d0e0fdf85d98459a4773c5a6794363210fe52d86a1ae97b3bd87a2e651e5494a2b77ee6b1b665dffcaaa98f6516d151bf7de8813b86da695a1a9050a5b3ac4370bd0884bf84479673ef764cae4272dd0e59ac47d624f205eb845d9ad80e3e4bff180aedfea18b3810d3a9ff2ac618d779caeaf9363c4f9b616ea6a44e56998e0637d927f7dcfac4aa5d87088af831238fa5a479a94e8cfb423d0137f70d4e122b40008fec2cfefd2f79813c69cc82080ac8b13b38459bfd30c092d3b4cf4f8120b33454b7847aebf56dfa6350aafdb37a657aca6a09faf706cb322a7fcbfaaa59f22efbe9b99a5820e566b97bc009b37eefb1445428004806ab57a35539bafe48a776d947ba7753152333717691077e899c54d9f158bfd1124486d80127cf14311d339c8b899cb1016cf42d85cbcdeb3ccf864fd9ff9177ffe82c18aa4b592585f510c37dc1d8876dc4db88e0b270b651e0db81370afca3ea40bfe633cb8e90d9d758215b8eb1b1e07f138cbfa8e500100df8db1ebaf3c1aacba1787613035764ff645e8b61064f974fad3c3299fbcc578c77e0253e01c44ad7f3393d3df8a10dc8bd76a7d42b4246c30a0ccc59b083390c83a5552ee5a196f88e471a9bf936109d4738d076d4b3ef6d36631e4322711e1a805368489fcfb758a3f5086069062aeb16c7547e9c8dc7207820038f3c468137daa85705c0cde169304ae0873ea25cf8b01da998f2fe27ee8a12b745c495369df7763be2e89c0ed53981956bebc13dc3ba83ac5265fa95e63f7fc4c39a5845ef0a2378764041cbb200874eab48bdd74b591b40d311b8d5c1049ebd22e26a4f6399283db168451461b98044586b131ae8d0562de20d330fe6b91dc70e2f0b8a1b3b9253d8363542882e43768880e7d985437e5c752caa027f7f9bf2d21a6046b851843c220621062182d92abe237d62fcc72d5b3e69204d97a52f69a657f109622fb39f05ff21768dc50244cd28c195cf76d432f29cdcbc65b7df6584e02a37ce6ee9099816cb291772b060287dc09c0673368f45d9ebb540ae2a0019fdda45000b82fb95dabf6664e389cfbf972d28f867ea34d7f099a6e9b47fc68c99b68bc91bf246ee571c5db6d56951dce9dd402e6fdcc7823cfc8b2288c32839e1d79449fa3cbfea8a07740292deab9fe64ba8c3d3cce1d5a46986bf6dcfb28f22380cf1f67c3650d12ba638e2aa0b158215c9dcb2cd78a153fc7da6eff016bec13934c9b85fcc0fc834ee48204537fb7b7d371e0bc895e13615d76e046608d9661fef01d4a68c63d753c3b9b25991b265e8c14267f75a75abd6369313e5e597a391570824a75d7071bda5e11144ebf815631133f26a5a613ba657674f1734eb031ce9a7fbcb3ec7b02cbb150199275d2819da406d853c9658b0ed433317e8f7dbb138f84b11d75f955c7b5fff9fac9439de9b673380b67562659b9a90f781412d223d19798a53e6978f6c8b13d0a61ccda7f2b42ee6d08f11f6f5e3793bf70caca82700b2db9576ac0af0a2ff5c1bd12b10773a67167e529adb9999865c6d464560ccd646beb21e17961e2398a4ca6316d52e2b9dc580a5744e4fae5f47c47384c99aafa781c0c2a500b58273bfe2dcd9598d06327aa2acbbd03e3640dbf07de04726906b85f53bfc9910d966f8818f2f2204f37e113a2a86a435311a6e275b45a43e14fec016cda0b63bb84c4d092c555a23aa9839023c6d4ffaa85b49d6e3278a982b583c364660310a8c63f23edaf4504a986bf63f6cb41fb195e427705c100906b47696c17172e6451029cc4085c8f5e7110d1f39512ba0503a9aba067ecf173ff2177fe0a48037ebaff8f746c35e604bc018e1fa34ee2826eb2826b507810c3a2ba73f238d518975dfda4136030b4a04a8f33a707fa04c6a70f184da22162214e0232d819566c53bc4e3ac02ead593d36ad87fc8dc9869e576d361242461fb896e4038a77c48d7dcba37f0e10936bb2ba7a2d62d5abc1ca4c0823c6973831a0018ea6196f69932bc8e4cf64d5d7469419769bdcbf272cabb07590b53a42d681bb1ea3e9273484b8e74465ed72fe3e8ab511c81254735191fc522b7d90959b1e97b5a795f665c1af51960fac75e79a5954d7cc8bc78b075824d399b8d4e01259aee264fd2a3fb9c2c5c2551951bf7b27c0c05080864628c50f65809b2dbebd7c5680912adb52953c777e81d239a7447830b8a0db9b2ddd2ae3406c52719ba414819e7a7ce3ab3c47ac341cdd5541e3b505e967753809afe91e8008827d05abea796b909b1ae7af8fb479a0475d0ed8f7f95e339138b558be245397ecc3a6e0f0eeccdc437320efcebc6b918de0961e4a2d28f1b232b8538b10df6c86e8a57d7d01c5e7bce2f0761d402119386f78dffd12b1539238a58897b0960fbcdee851f8a604762d7f435bc335a01b6cec8724ccbc06683ffd40a4380fa72a00b68f6d3c099e5c4699a04279a07b3f123cd0e58a423023b166211f4236f68b275ed0e4221c9ea7e60d7cdbed598236cf32ca3560af7357aae05d16865300d2321b3baa2457f5f82b8951d232f6ff6826cde759b12e458aabe0e14356239165754981e890e8fd7563f65f2fbb55a3940138094239b492e0d03a66f30eb6a76a6c10854758b824c929125206f9da2bfeb220360093b474035648924f6286deadf91da57467394fd666981e5aca80cee77c04f1d12c305898aad5dcc6550716cc03ef3c1bf2c302b113d159f63a7b5d210fd4c62234e5f5fc89310521f67c5057f3dbde908673a826b2d5b444902cd2b95a8f6f9c7e1483d7e0b05490e186c804479b8d22e42a4915c44b6039857859018f46ac5aa9e9fa08fef03b4da972acfac9daf9ba2070bb3620337e48d27cc475fe4193320813bf9b5f72ab27599be9e48315c32b67266650f42f3cce8909a78669480209fb16951f9fe535590522e671c8083bc23890737895c0bb36f1df147db471a5e406530203c9aae1a239064802056d67e86036a0209b2b6f86b9ed028a14d7198424efe7eb2fe851be9da8a31c2891d09de459a6f5c73f1382919c21a4eb2791c879ca7ce62386d11e1abd36e62567d1610e8316265c1a5d47ac3bfd3acc29fc8168ed2b1a7b04bb6ceb0a6fdd586d9df63ce2c3a991b6a97331091da3b5e347f978f3525b20404deb8206103e36fa49505d21894811e2fb3aecbeb66ae19219adaec4868052cafe469201c97c9baa25584f961833c9276234848ec746a310e3350114e5bf9eea5b1f1362bcbb8ff6d385541bd17fac8ed41e19ab6d90a4c648e9058cef139add29c23d244c75430c00150f4f35c824d85f75fe7524fdd0cd49ad46ef35a457405f916db86f835d2d195319491eaade15f7e2bbd165e66764d4279415b8bf06544e3a45ac9106909559519523687e8cc321ab1832dc2db1c913c837f49e6e36e523cee2df18af072d7680c179059b67af185e5f6116ca728c52e16aa58de184de65ed6ca34ae3fcf9493711c3c9f2c69de16b9b30a83e928b826feb40c885fe64b3a83148596be7c045d951413e874675bbea8d4fbe0f3b5bbeb2837e942dcee69f6e13f8c9c4ac2abbf28e3a1624a2413252f9e1f57cbe34032272bedcf87df652b1ec8f493b4e9fe12bee5d0dc820c56134e3b78abad84a07ab03f9666aa3c60042e73eaba3f2a5b154fccfbb98079c43b0b8a0ca7873bb9461eb8cd9b672c035a496607e2266363d2b701fc45be2fa046eff741bd7b5e4d5deedc6038305dddee684a1f4814a6496137a4e77a4a2d5fad876ee5cc60a94a0544fce66e4d3cc37ccb809ae1aa91cf9df20d878545c8598fe44fb53b42c0657e65fa363b597cb02f75675347fc7b07ce71edc212651dae291b837e35de81b37f3b72ce17c5ebe37faead2755146d209e20ee8cb673ceb205c6901e28272a2a30d465cc9f549b2f1a80b8af946ee9c6facef0048bce10934282cffcadc44434e0e37e61269d54b7aa3b17ceec7a8ce41931d4dc7ce70bee976fa0ccf88f6fbfc63edfd7c68d6097ebf20709b31e73c87060cd3c98c38793d0b3bbaa7617ed70275e8194f2e29d2d4efc0be0273176026e5750aa0f7cebb785f78ce7db1f07ea92e228b40cb1e7fef2738c8f9b01357b8c7688b3a4c08b39d4e89f10f41d4146650ce32535e0cb7269b88ef4f4ceef92bc026161905049d19eb71c0b9dbc5a3d42421765ffad91dfdded7882184c32512fa31db207837f48b19a5451175a2293118e2735732590a0f179e67cb9254eef46e4829efec0420ec2495ea5668a17bfe91fa10060aed43076888ce77375a547cfb78e6bda07efc5e081c2cad694ddf569c6fcbdbd7e1984a9892edea94cc5f3a7eec04a5a6906a959853819d8f07dfe3f7aef7b90210c185faea24683305023b9c3f38a1b8b5fd6769872fa4fcf7a7df9d44af785f6e377b66fe60e9b98b8756351c4dbc428a4e8d184faa42992b19fcb946ddc4eb3482c9d0743695972cb609a188b65128c1f6e19161ea66b500d4faf1a449687dd88515ff681b8b69e0aee7f7de4b7b219dd1b479feb0c5755095b0bedd8ccde51204ef77d311e2770d7d8a747c9d022c616d644743e481d9d033f293875f509be8e63a225f9dcba326d571f2437be7d9bf3e7e76fdb098a5d5f70dc48519602287e137d38fe00149fab18f622699c82369604fb6d9dc0967b775e170fd51ff96739938f465800ae6ab1404c36a0f2e9497bebc8ceb17b3d11618ea4a4687d64a672c7bfa2954518b5466ed8b87bb0811928ca3af8e44809ee7d7cddc1d4bf97e4598293e34fd6309a171370e5e14d6d0129b526d4fe5fd214df2d04443383517603fe8a64d08720a6bea85b5c78cf55ed5fd2db502fadcc3b779bd7ae6ff2ca831ecd20c3c473d6599f8c27a2acb14bdfa20e53db8a8c8f4d1d6116a7578ae687fbbb2965039f04a7908c319e4cfc9a6eaa78aceb96c805e85e5ae6783bfe40d0e25b64f15f042c79576e6a1daf00d842509bca7ae62d45df2217838f1ee01004bb3285d18f751a2df1fba14f6c84f9991d71ee85c64525b91b5228ff77eef399ffc8f1b41e045912ae5e3b48a65a6bc529cb2f8cfa090d310ad3e8fd8229035c0710aa0f73e46ded1bd35680e1ada2ac48458f1589a3d7b4cf6605641f12c9eb9ada9497e2fc8078c0ff54536d7ce3478921282a9886e0e650d7623242b4ff3bdb6181c8d692e6dda37817825c09952304a5b9d6597d3f1d280df109f65e4e127810b56101c84f3fab3989b10d44b9e3f9cf58ab0874fde427c530afeb2b998d360ecae6a0d9e431c321c9e74368d9bc418b9c3ff417937aad83888e9ab8d69cc745f81dd553593cdab8c711cf5800f707a5ffaa9d9b5251c3afc435f1b2ca81eede9f9103ab1e5eabca487ec4762972dc368509e431768f1300f2d5951b7655f76611134ced358658a0006447f7e020114fe5ff40126d90aaa3bcc4b65f88837d211d330d7ec519d5e2f35ae1f9b08468f7a82f1518a96289d0a1fd6aac9e4b823be8cb780d8470207058dc6ae15c3a14f3a5c3044f9f4708a28c9fa21da940d3dae375383e3e5850adf4cb83b1da6f03ce3be863fee5370971ea6aa7aa5fcbc043871022ab38906b1f62ea9b72706481178d4fb3055b5bfa0fde452df24aa6248f9b3ffc3ef44e1455a7628bde59ee23e2b0ae2c9c0593a894fcbaf2478761b8aa7ce95210e7bb026b543ebbd7e0f909e3813d5fc5f6f1e199e978f1a512e0bb9db0ba5b3310724fb5acf0dd6ce1006aca413adc0cc43ce8223cd01e6328daeb4b9ba1ea33e9058e576fcb376b489770afc065f35a586eb38a5039bcd1e75cc830e25076291c78b7d57f8677c139e26ea919847ff4be3604290fcd372745452bcd48c02c9791c4e4e706bf1e35321b59f05ee0c2f73c7746973ac99c4f0ec72ec16baa178add55d91aa3767a2ca60f951ec1c753e885c743bf8b11948e9fec63ccc50e51a7cf8d5d07e88e2b8f55a1186ed608191c18f1a51dbda9f40fbe0f592ed7b0471cee3f692aba4f3fffca46d80aa87a561bd67349e2a93de4c9f05f70211d9613a3ef341ea80ce7d7ec428885d41475c945c20160d8d09a87529a5f066ac48bda0cdda9928325e4644685849d29ea57d54e5a006340de33438b0869e833a7a044045fcf6b15d4bb6bc7126bc795cc00c062700cd6055b9d8b43a9261bb833a600fae04a48cbf445e0276504837dab56fe068872d9fa421346359517f1644eb4586d9eb3fa79343c0daee729272104c29007adb78c030ff2b8fcac1071821fa7d602641694cc44c30ce5bb453091a9b26f03730f415bb33e0cee95b70c8d019df81aca753e9a9adbd07954ddde6d2015086a4ce67b5d2d1c5aeafe0aa7c07279f5daf243e72c5eefbb806e04268cdee2c7fbaf5bc97c7f564f96b7d6ea8d016391d961e9b9c26c49c9a5f7e4e9d9e791ba1f94c05e5165da5b944e40f1f3a84502e257446ad4299a4509fe3c8e1b53a035a09f1c8de99c3b73a41d4038f8f64ee47e39254fea657617cbdcddd45c3a0f95a00fa903c65d2e5dcbe421e9b6a4733e3febd04c0ad0d59786762c0c2f7ce407deba56e22b790f96e357036fc5fce996e7ba7d8f083e94fa4075a48d0e7ca86c8dca459cb6aa5abf394c595de189ad170161db154597f2468c35518c89c1e93d68b94eaa53d332a016866ca6250dfcc278e2880ba05413e0e038553302efb68ebae97b0d1234ddb55880d52140a8dbb7409e9af3ae57819d6fb96614260a261784ab8aa16f4145547fea0763617d9086259f19a37c52a673ee3f4ee67479d150fedb6e3f0e537956c903c3dfe0c32695495e820b5e1852ac21ea6a93706b55a31960ceaffa462a5f496ca166cf75ee93f87e46d5a5f73baf23672c985095d2a0c39b856def2a2ea9117f8ee5f147f901c5b048ca40ab785aad8c9ab152586f5208b020383d210168d9ca4880de929ec121d16310858a06ebe0ceccdb0266d39460ba637643023fb8bdc8e4f63531fabce999e233be5c437559d271a014edac84bf87c468a2ae2b200083495c331c6b9a87a60602409d76ed80c64bb5a7312cfb302eef2b91a12ca0e477b31c0cbd1581af5d84330a0c45c06e34aeea1135861a1bc8408b01164a5311a73054da7e5deddc5904e7461e3cfbd074056a88ba76ea741c4ca37bfcb59f116226750b2a7095063fa3eb2d414d05a20d4d444287b60484575854db123ff7de2acb3e8df7bd5d3a8872db16e94be7acce9950ee358a51f317e08459aadd2791a5ac033317775d13bcf405c4156e2422a28c5a965635d454fc12348b0b293c986427400d9a14f33ba3a42a304cd222bface2a049dd8187608d505c40f3e3eb2121f080ad4ed0e86d906d036905f7234a87e7a328133c4a82d9b2a56c566b9c8cc3909990222ba9a285309f403942cd6411fe43ac56b5db885682e8837649f1097ae12a290967836506428cdffa7b40f79b1b3042f943e887a6be7ff452a6ecd2fd9379443e0b007ab3ebd281144ec4b5ef49a49871be253fad996ba9afd09f8f11ab94c3f662454860e7bfe82ecafc8202267833eb048098fbfa43be3bba6bd435ffcbe237fd8bc12ee97e4b58e4b3b004627d24f576550ff7fbfacede79d1d68abb76899a2da3ae621485d0adf53161cd442e01b378c3124b6b6f8dd6c8d2bbd8de095c358a859a0980cbd98138268b9325ac6f7cf402b5224dcf861985e221c2be7e8ac56ffdca48bbd9ad984d1f624ff20de548d8d4396157ca42673265c836800995737b59f91e45a047fcb9932516aefe6e9e93fe55907494268975c17656a11f813e1131bdab12235777647a9840eeaba2fb9cd6318342b8c58a9800851670ce382dd938db9a0cf4bcfe1973a3325b040bdeebe080bd95b98a1b09ffa72691610ee33d27ea258f7d0a30097fe3283346b0977e7b4086f287e1dedb2ce3c37b599e19eda8ff3aeb1cd19248492787c9dd921fd69aef2d15c14d2b44dec162fbb189cf5b6557bbe60cca794fff1cc1019433ea779651786bc3169c1d2c3a5caf78c2b0401326713720213878b9b21cd50c83a06b050e4a989073e46564db128cb3645a159d0a500c4c6cde8673eb3bd295d23cc0aabfb2f37f6086be0a2a58599755a19b55cfcf85021ada1a952a929b44a0ae0572442c05c1886aee684b34310e23f0533c6db5365d60a13f0a38a7656558a7d17b60700eaeedd960af6294058edd250752836aa917f70cdfeb7e507a39669b3c3a069680ee3505a1a541ce183fe61c3ffdb317da5926204bb848d7b6052e54649dd53f8269ce18e3ea4e5a8172eb25cd7e9a12b952f4c6b71bf7580d71caa8ea4fa4856e0847d87dc6c39eac688d5042764ad4aca27b81bb487e8c0333a714720321eb534995de6888a329d967655076768b990a96b40ad3e0a17e321253ec27cde32573a126ecc4790e419c22692a04aa4202a12f3bc8e06cb6c4c83223e234927dadc6afec1e515dd2435b6ee49bcb87bc813003dc37a665e91b06b581654c845810763fcd8bf77f5aeed44983596e97c835eedff19e4ccc5169c2a3012923ae7bd0611a20743e59613a943326dad545d9c6014bdef6de524b95e63292c4f28f831b9bab243dd6bb053a80d07a5eaac9994708ca2671ce14decaee4d6bfaf7cb6109e97199621196250150e2924bdd17aca692fd00f56fdf343a6e768d9ef3e2b52d4642dfd86442206a0f8ef3bb21e88029a58b57a7790a649b8af2ee81aa00d12f625a52b6ea6762459df2d65f6cc97b9338da91e588e002557d4bb00b66d8b6cd1e43c386e06a5d4d2d0f9a627b46d510b899a81a9d975958131cf25b7591ad261183395f2a6dcc0ac7f990104b1aedb8871f517d9bd9257b2e2f26eda6c32e6a06216aa3cdde68afc765bb65a174fe7f78904915cbdc375544eef5a9d0834b107cf68b71739e70cf5c7a1383844e68bc55db0f5d590c6a6edf1f18574c80d59024d273d4eaa99fcc0af97045bdcefbf759838d74d440b5d71cf6af01762ddf26676a222fa55e7fb728b43ade5ebe02a2b73a8220b28863202d6d0fdc2f02658ede1f2ed0394a2d666355605b380df05a114db7c1c980a3f6d7f9f6935ec431d2d88fb23ee28afb81397456816366ecfe01da4506d73cfea8f487acb66ae54f30d7f6af9dfbbf8c577ffc0e37bad4b04893df7956fcbf712cf3c88328c2ee99d313630476898a4d47dce427095c7761e2c9141ce63b05324153d2b10e55fe3ba1f5b66852b19d6dce4c35caf62d465afe16942ce2fd9752ce2b0c86cb1a5338a19d7b1bdc3e5fba429d5df3cf52e61f1ee455586a8dbcda92a56f62d68ae940995d8323921c18fd85f5db22eab98ee6810e7bb3e49c2806d97f150d4a212878493c5c54c8dfb4be274a33a6d58ffc60d7666782c1bf4bb4ee891435fde09bea5a75927e563d1693a6e831fd0ac777c92230ac1bf4ec2748c429b044dacec4d377f5c2754390f14dc4ef87103d9ae75689a5c22c3d01ba7a39dad6daf472f2ff35e07dd6c25541c32ad3ad341a02f78f987296ebe13df2e14da8f0858c5b30dd730cf9b50faf45f5f0da1a33cb3d492ee236e0fe92c53c2ea1b5fd99c598420d898492a509e414d2eaa1cbd36c50be834807502715209a606db8043c6240b28a330623b4fcdfbbe20f9818a11582c79323ee87f3b4bc477b6b79d1fc2eece9b27a862057a8adee8daf81dcdfb6dccb527b66e608ae67f86ee156039d273862c7d9a990656c0049d09bf5eaf54cb09cbdefe120cb75d69c466ec26bd49146deb7e34bcb8e7eaf1e8ceddfd6b8600ffaba8b43ae6c4821bcd307c0bc366d3ab8473af90cf72d34dcd287ff085fd05127f9ab6501b26e455c5d036c878fa0bf3de02278d9e3852cf7c90968260d34918f39579393f171a17a13f1728a4f3e801ca23b3c2ea213db6e0d7102c739f72f7abce10fbf1adb791449889550e512b0de87d3f184102fa5dcb148097c616d4ccfbe798c69cd2876bfb6e02a1f1b718377ab30f6a576e8961448e38c26c5bd51ec3b47b37ecc5f24d247bb9a34d4d9b2df00a0dd4a95a9db5584c8ef9d2c7f6888651da13a55f8731c34abe456c3adfbc11782ed9017ab470b6b3169a6e74101a98358674425f23730688618b2f4909f37b6a8a03bd09acf1b2528873787134fa62e6789983988a8397ea2dd064589e3945e4125c76c320ecbdda2a712093dc93f15aa80439054e367c909ec28202a8f451239df4a8809c2294cbb7ea96f19a9c0c0c938ec76b367e5350292cd205172b9e37de42b48a14d16caf6925400e87034095e922e30dd9860fff532aa6b10dc6029c37e9fec8235cd1a6dc1d9a1ea60ab2bc7e3c5f97b3f24800cc1e2df6422b96375aefdfe4da409437eb94215f6008fb4647387bd7b08c09a8748c8763f1d69285ba4e307bee8b514b27d0303d79c06b0ea002df76f0241804866e76c3aab6da4f84826f702f42b504ee6701694c36bd27138ef983323fad4b4cb660e0c2d56872bb594a742de057d2a2087a1a2c7ce8a0342f0f855c2dc7593beb5406a0891699db88a28bd5f7edc4a29008398408b31cf3676117f1b61605e988a239b24c8ff9a5553b7d8566117d655ba48c38aecc4e9a0f59d34cffe7ef547316360704dad96435b924d458c890bcc6ec85142e2e57501ecde5061355c94cc2916445b97471d6b3310c5d2fe4cfa0bb8a86accc406564e8a0e0bb924fe6abd16408f5dcd1c4c6c63a482487b66db5f68949fd029fe166f2fd0a8a5b56c40c4fb535b6c648fe71a0cbc1813b7b51b6d3012aab9c86f95c1b224cf5352a4131ecc4f4187cbd809fb599cbe481b8b54ad953a44356fbdfc957eadf0d92ef7c51c494b222f28c501c9c7ac971a1505acea38c63cb8057222af7a4886ae211f78a5309466e9227a61f230d71f66f69658c36c2e9bf8a358edc7c64e962d0c8269b2bbb1d9bdc39a6d1bb4e7fb28665b4d2e1cdac572b5b16b0b45008e19d36ad7d16ce9faba5e5a15996516a004611467f0009121e42d38789bf4e59714e73890a42e1f337090505cf6d1249abec9facb252aaf8ed1cde8510c1c3569265dc8ac5fc22ae2744a20a77250b9cfc289bf92bed2d27d0077bd56e6437df73d9794284c7efc9edfef43ac7f25e2ac9d41602ffe87fe12fd90ce2526012ba7a77c57df4a5c2b57cf8190e24475ea118189b196fd9f69f3977d8cc9bd8fa94a994227cd4a58c633e5db41271c06ebcac5c1c083250079e7601d032f0e3d2db9acc4544cd11e834ac600a2fd14d3c07e63736fccb8339a6f3164591b74a270db5a6d8c727a0ba42b9b769d3a706e534e7940ea3c47d2fac7a3fdfe04baafeecb85aefb9c71772f4e90b3d626263455d0c864dd033c36569c96013ab2a185630ff1097db1f8575235589a0a22614ce7b038c68853528353daaeb806435d209ef9c5a90c99e62c08eba706d89aff7dcbff5295157e17fd2da6d1707b5818d2ec090e8907fe223f6215b7693cbe14d10d23c47dcf7d71ada172aa6122606e8dae693c2cf7662d2f087dc476579a65015077e166238c165b56a229a1fba5f0ffd2bea4e9eb5c96d3cb5490df4790eec020e21fc4852412d042e6012819b4a17c5333fcc1a76a83676af3e02033d95dca08fe9775a2924570c2c129e606b37cb6eee9e1c81b682e09d5f9fc5eca9294c33713883878f5e21f573a5ce770f2eb4ab117541dfab366889a113352de3f2bf0fac2d4a74173f27951be9987b97d511c15a139725eb30a854c885543d4e9ebb3672781cc4d34cf56d9baa3b771a4827cc168d726cf2d92ddf90d37180e1854e5e32b393e2a9da9a2102f8151e5aa462736755bef18e2866d18c6337097a218f0750ecad3c02a04844ac7ff7c2d6bda0cebb1540dc7fe041c78aba5d0a9fd9ec7064da7e34a4538d290b02c247b8b6eecae5738183aff3e3a19016fe1d9fb80a9ffbc66143c59f0dbf161da778b12a7be4ef7de559fccfa31002b75b9ff2c0db0ed2e40bd8687ac7d500e2284788f1ff0cfb802a34ae8108460d3223b2cf0c73415cb95d6db483f88b04eddd457bee06bc7a0c5eb34d3f016b9b1e2803d07e6021f47657ac871517739da2b2a598fed7597942a34a1dc19d5bba2a659e4fad4594930d7f4d21fde7769cef03c57baba559e659a302a00a39b1a0163d52ce6afbfc6c8b664f939b4be321f52930c95aed09f62616eba81b678935892e1db50cba33462eeeb3359f92efd433d655eb6a874f3cd2f0c3184113ad69db2f533982dd153b21470dc1fa450c61bdf906f0d77b2411e9702b5ed844b1d0fc2cff20511b16c5adcea1d41ff96d94f2c9f6d7761c8d91e93fcf88a76e593c2c7409a1d645d09bda04acdbb2cf7da315bd8498b9d7ceadbfebff1885f8be3b04c0956d84a83ef48e0e24d169cce1d2f6668d046d9a727c61826c10a4fda82bbddc5108099158493bc6c63bb991982788e93cf84b48fa6a006a4d7d766a79fc78beb899a5dcf02f87c9713f2bdf9516bd6fa40a84511fb9a50638edc5a6ebe876bd47edd528633f40929f94c798cd99c83f0a6b4929bdf7062eabb7df40f69f717dc38756d4d872671aeaad79011b327a2dc0f201afaf1870b55058e92e086dd2b8c12ff5467c7a466bc16bb996101ff82b171074cef4ecb001dee09a70638e3c9d8c579e108c05dc0bff78b80b4129936704f120e9f16745a72e89d37294eee166d9515a3eb905bf75dc1f805b8253814bdda3e37c923051424e85f5c6ebc77ba07a33e5cb08d07a965a9163bf64a753884030414d47f7f8e183a14c3c9988764e704748411d8031a4fae1f0a8c9c7602ae27b3e7a65d3c0d56a2cb2f9b88d944476c7ec4e51dcaaf4cbd0daf2f466793e354c76354a5e8389b02a7f59cb26d8feb6e617df2240272eb59213787175d55634edc32955ad59c870b137f229073ffbdc5f23f8e0e6e9243690c07cf9ad470e5c85b6f12682f2a54badccaa6370d507a125b52137d5ddfb8022c57d0e95155908e8b2c8099b8b41ba515e7aafae2c46afee3302205d4524b68f6b227bb8137fd7c8bed87ce4a73b357dd7de470e0a034c45f08b494f28377888477db616b8d4c8ffe2b83b0c5841343cb45bc4abdadb476263dfdb9be31a7abe85b42b9e1924a668ed3057506664f01e38d1c8525b8eb961de51ff415be312fd6e5393766c5a30035c43877307d1ef0b2b68fd86d12fbca7e4bae7776b0ec6ff8f1ac9e1e6929953c5504b2dc93f4637bb6ae7dc21031c81a6efd104a324c46392e6a0c530626c131cc0a65bd52aaf50297dfa0a78c25c2a580470e8b9013b621a04a5827e6c17c98e8726ee2cbb5ac0af6631f7462e6f032679e5beebf95b3711ea804e89977871058822312f1f2072b85b76728f43300653fae3a39d2852006d523365072983eba4108b2991ffc2641893e97a4a7cd7901d54f400c86576226c3bc6da307e10f19bc97548f8e1296795c442fca64ce7c852eeb8138b72f345d3c36ff52b41dfa645592e3bfe0967e74ec49fb8618195412fea91ca7e964961269ce7d2c19dfcd388d028d6898113ef53aa4022034d5bd88327a80f6c08ffd36c44499bb983e20cf5946bd6c9fcba50ddd6a9f542dfbf5f167e02834882b23729e30259fd8b2218ca28982efc1f664bb7db6141bfdf0d565709aad84aec619729aa7440e45f4ca66c310f5162e665f7c582f3ec9a0369b75d311551f44c386292f34f4af8df111e00e536e47f9d6f274c0eb3275982227c34c9e92bd81a72306291c6c3424d4189b47e598539cc86c619a9ef53a6aaec9d44a981a823ffee86a28f714d5c11489552734a3f573e532b2e0158cdd1f53e9656d3b76667bc784031f9508fddf9f8cf3da0e1f653cfb5fe0200918ebc4f5196d0e594171d978fed8d63459e13d0a178f820158049d83d73efc37cb24eae374d0b7da7b521e8eaa69690a99bd5ed570feb27f2aef9ebc114aa8d8d06c26e04349a6149986b4a9cf68c8155cbe0ac43612f3dea5ac2b5122bf6f5686e5923e51484fe836cc29459f343549ae60cb3e3fdf422103649391bb902f609d3e4b116fc4d7b6a68bb0f16383c8ffb73271c817c5908fbabc0c3c3027d8460166f16407bd9a23b2ca9e280743eec30a6f8f820c864124c2002cd5b536f0ab99f32a8dc7e2a5a6456aeeab5028e66550e1fbc1ebb1aec53e2f719069dd128044b01e81b8483cefeab6be7681f5436256e052b3f7d8a350326dbbc8d9a86a51a189fc47563856163dc8d03d2c126d98afee710fb878e172f0a8cd0816993bea871d747578431ca1c0c60a806da81f5166c0fddf9d589d556454cfa38735593f44c93cb61d776e53c9f2f626e51dea9478f9dc53ab18ff1771d1cedd144eafaef1d18c6c6c225dd2573243b71369b1d218f6baa39108a419f78a3ba45011bb8d8fcca15c7afdb21619ff4211fd752cd6ec528606f7f91d1548bc68d6b8b60d08a9e53d69ad9b66aff1c869c13287650ec5b8f2b5d6a46e0a14980f1e451acc4daa092560c7fd28d4be44d4e0a7423d2486a4f6022d618ff918d7ca57c84c30123d38a2d6eec7da4737aabf85f0e3e8e03e814d7a616dee6c1fb69b8be64a095a467e01164718140b16970dc4cedf6d64a46ff61821b5ecd30d126675a1c2379a5f2b1318e93aa0def828c43d2f1f27ac6e83b4909a105bad1ca0729dbd0d2f26e5d8ad934f80fc959ce28f43f7d946694f148f9c4e4007827537ed00824d7deef3c12919884bdb39611c3a8546044f277dfd5165e67d2aafc6c0654a94e23c8ff0bce43ebb05a4fa3f133a520e3398c20c4c0af6c156f50096a74f9af3519fae71e0bedddd04f2f29c24236a20d7cd2e93e98dc030a90e1d5c9883df53066caba77e9d5d9d9b12ba9e682f5d17b06e8dc945f03186090cbdb2edbebf5b437c9b9babea11d97888c6f5a7be7cba624e942ddf10577c88fdb81f6e1e10870e3d9adff312a63a358aa03d9dd05bbf301644d8cf0b9196d0e2e146e3aaddafc730678a42069abf6d83e4618d8ddf0aeabfee0431c45976d42dac8ca2c80580a96b549836bbce45129215b185bedfd3511c8e023d621854d449aa7356c55e4d7017850b51ab226d9f084087f95157495c4e6a8994d1050e5512d73e37517022f4f37b6576531e60d3ee6bba0cd8249edb4d10aff13f217fbf59b0a26800bcf598cff95337b3b0550d7cdf32930a5b9c6d6698f2dfa03410c361218f61ca955116122cab35d1fbddefa33159b1412122bdb83c1bc62be9b442653d5c1a8b8cee3d352b07c436314c0e852c4414fb232a75b63fe3abdbebc68710cae33c8462021746c9ae8f6f7ecf65f77fd0eb5a954195a822a9aaf02171b2039a51b9d89545da66b091bd8d090d2306440c2ca4bd8d31292ca1e56bed9ce352b7b4f11079f1184bd17b64a6fd4cbd6f4ba01ec31bc30aaa3e413b95819368075e9b2598db389fbf21d8b752a78cc0254621f8c515b0d4eefee09e7847c5449ec643e63f42fd701fab9c872ea107b8ceb372f85d393d748c4ac82e645269d287c02b23bbafc295dce839f35c100a8b47a6a598600c05f871fe25a86ce4e6d6a81c09ce23fd2347fd76a74e01f11d461c54fd6b4a6de5905b0da9cfe7023b54d8e7742c73c2497b9c10e841c672e5ba107b03a5b7832c5a5fe6b5c2ef1acc946575d3ac0bcf25b365de9e1c586534999b92d6a2ea404353632b72eae5b55d6b8f39437b3032756a1a159030e9b43aa467ce1b864970f786a4b72077eb3d16650b749c228ad3ca8511e426c7acf6d16ed3f03e90de57c7fe32f687df68d2c8b780aacb3ca49b24a1b4b35aef5c05409a70ede9fad8e8d0ca6f885cdd882cf50a0df31095702ccd2f00b48df2b6ad00eb865bde0808804619943ceac4ba932fd6c20eee25c0298cf407bb3eb8fa6a68a790b89a4c65368b122d5475e330e2e2f32254cd0bce1167776e73a8c16e33329cbb7a758488c158f1971a0ec562999e33a769abdcb5a574c4efdaa7afdb544ad36cf317f730e4909889cbd0df8b06632b3ed04dd4f5e184edd81084760e616881b70183eec06e9cba88c9cb272a779d43c73dd0ebf3869f7e8b74717c582a4aefe89407cbbccf79807124067c837dc6fd96c7924276319b53fc13eae00fd0a12bfefedc2a5034dd80f36f60b21c45d4c1f5dcd2352c034f03366a35140bdb08232b173fcec93804c212ea494540f7f212a011792323db2063d66db9b7296a8a53562c3e3319291f73a6f1834b7f2f35e847b8e51b501ef27b8eefee78cc6e96b199c7aa5f57d17104dacc6d6f2c802e0a0f4dc6b50b10ada7a448133a57f96f7cc23ec7f23dde8d47adbf9210de06aac211b03dce91baf4747059f164b49568b0d616a963a8cd484b74727497ef10efdfda2fe93e8167b95ce1d75bb5d0b77a7d8a3674441c6f4fb956a8cb4800d04509ea638c7a60a8b34bf9ed32221c3815a9c9e8d97d3ef47895ce45b992731eaea635d76d9015ef07804c280fcd0ee0290a31af85b957913b612da7a1e3f053fa29a582ae4d6db6944185b4eb099e06d15e95e4619dd8ade4cf1647ac97e129c05b95172613983aad89e2ef69a1c93c14937c2fde0cd0a4766a00b5216ff5afd16a571a8e7daac142c5b3458869120ab230a0c4a16078154ebcb8db214da05030e1b0cc052d1b74be7ade5de631fcb8ec1771795368a8c3f0e3dc976cb39ae5ab4d57e838d048c50dc35e9bf0c99133b6d190a661155f08a8ad619e368d5cdc9f657929b316ef6ba333c0ea8c98deefcac354daf3e03ed2c8af0db34460a66a809e38a92a55b7ea6e0da4e022d674ec8d4f485b705a0d36cb3afd2ec7e8fcd229c32708cb75a6a80c43422819fbe9bcb76cab7a3fcf368f935121d7af7924b923d5d068cb45a999b02ee241225e55a62aa1eeb6b6a745308f48bb027c38a9864a9e2e3ad9500f778d9e6391f24ed6cb7d4f3aae55e86ea3861ce411ad705bdf90b333d221420e88ba34b5bc39330c6b1136e8e0be41077b470c073469c8cd25cb4d43d804323dfad9f55f5af94c9d28bea00644163d09b28782647efe14d60fb749b77fb95e18ca0148faef92dab26c713fd9a3af5d939ca4e78e5242eb114bb1d45c92708d803ba991b340273278cf48cc55d6368467681f85ee1407cd5c31cbc7f14abdb838e29c1ecdeb2053a195feaba7bdbb7a6b2df93e3d3322025d8d3277acff4ec0693a3bef1d5b042ae03cb97bac1a4c542a8e50890e7bbcc0f86e1dc8b69c45851ed17b9c8c01df6b7018900f772f053651e8e2aa42c0e645da0facb3aaeeaa3dc9fc828999e9ef7f8efd56bdcf31c7323215530f91d3ace4f2c772f91abddad0bd25c431d4936367faff82efae8df41d44ba572608c920dff2119ea80ab5e3bdb19ef48064253df47b3e3ae4c3f7e69ca029330f858e1812d29fe25273232b64430d51c882e6c6e958bfe02cf14f044a86d2161a3dd297194e7fab30c27fdd857362f712fc1024d2df5cb4face539d6fd64154fb37392099634e383a56c6f58224635751b3eedd6de1c14985252100bc98b27d66cfe561c0d67f9d3d05a3e51a9ec0fb111d4886a33476fcdf74886853752ed8a9344e06faadafd845976b287a0fc12d44c322c9be30fba3636f2fb8cf3b3ec1cce9628fefb3076b3b4aea4af8057835cfc4cf879f33f81f6a7b8320115c2aeaa5480585b2f8b32b834cf83132f58e389f514ad7321d778d79337c283e6fcb8a58facd6ae84f67448444e8a91bb89df9262fe6fb30d4303725e72db8f4aeeaeda98023384ccfef896acac0883a0913fa3b384ebca4c2e992da182c14797732f9aaaea04cb553dba22eeb46ed7c08adc0a0dad2a53152dedd88febbf2a2ccae92432acb1a19fa2baee9a6d86403b981468796081c68763f2a9202d71464d2dd0548f11903aaa71c5cbe711702c78697ccd382b64db724bfefbc44fd0c075550cae2d34b194b82f5aa2db462ae3ab90d9ceec81469b6d42c71ed16d81db043da4d47f20dce0d75f0b9814c2240e603d57281255ba98f042289467eac5a3d2d53a4d447f2b653af2d64150ae11f81f8f79e936b9f1751b4beaff1b89d735ec9e63e091db6ee7b25b895a33237864190730a16ff0319c8eb754b36b2bfd79f72f50ceb94d8c7b80c9a8c75fd849ceca89fb9165b36245630ea9eb88ff91630a684a8d11f81cbc76001783b177d0ab37f277e818d3d38de11dae5b025b8ad59873f70d206b63ecb61742797217fba0c3992e089b698ee839f1c73ab7f70a4065b07b168e5e2a7711116bce430c2de95605b82988dad4276f0ade1ea5bf2ac260c1441562baf0eedb7fa8d994c4f81665e9b7adcda8668699ccbaad5ac8aa77ba9a42e239c24f0f85e8cb7a5f2cb287d03406f6ffbe24cb44121b3f019f6b923e33f6415d025215356fff8a093145c9c05d56c516292983f0005a1c87c236233918464f3b2341999b2d6e52f13a70e6a7bdcbe5f14265195fdc30dd465c62ed52c8a7f6701895f70c9788efa4add3fb762b74ad02bee7069e2fee3c895b907b054d12363d276143eb6d317c286f75695191e2fa9564810e55c167d17833130c849c42c740c25d176d811f39e07f70546e428aa22543efad69da74f3edabe6caa72c75098ea9357bd525ea7358248bd216ce887df7d74c6add9184171f920f773dad910bd7df3cc9b8cb95fbc9f3efa473c8e9b6e3968d2c8c935ec9f72e82935aec5cbc4284a78a0b0ddaeff7b5cfa4b4625059686feb33e2bdc6e3e8be90d40c0e0d69b226b3f0c2e333b3127709d175dda457f7662ffb03fb89054c07e332f075dbea2f73c5c0e38d5442f277d80edb9d464f9ae337a264b11553f3f9b81d41d290f75085004be47a63720f3769bca769ea6ace904162e19a649416aade4cabf604cde06c5fc9f9474bbb179cbeb66141d9949732a4cbe7499247659510719514df2a07b83548ba02ef40699bdf5bbf8197673afd8b45dae6e83fe55d37e2e58f6a88d41c0be2dac27e465a88f2647ea5a1e649292f3221d16dd405e821588fd41084b08d44745426c2200ee7d6135964a2f0e25e852039a09f9eca6d21c7391a58f18d5615ee2aa2657c7288941440b31f5cf0685a9b800797d071450f1ba0366b3c97dcd6aaa7513301a0611da6c3efc3ba0e78e6240b38666a3c2601a876c6821302e026f20f705bf3aae3e005b889840fc0e54c3961694781780d7af5384929f2ee788686ec47c74eb373f674b24d944c4d449c8da149eff6d4e56efb829bb25b8fbee6e073a4628442f4e192ab2f087a2265b337898a96d85e6802baadf2a1511937cc8bff734e2cc169017b2b779a58e0787a54e1440aad82fff7eef4bacafc2283b6fa55fe45430e1bc2ade1b0f9d7d0ccfdd0dfefb242ecb4fede0b72c30d30d4cc0f8178d3c64779a2e32a9740455de7577284f25fd7c8a6adbd492ec26ffe38e4f228de913fa37476243924f26c6bc8dc1cf025ed02ff5320a47ed3ffbe2229819686d2ad1667154876dea6e0fccf6d689649b5e028dc4ba7c78fedeb43d97f78d712dfb9c74e8b0d9d12aa4cc2573eef4a99dc28f746854f42ba1c66eb8e0ce2b5f8296b5bd57632a94ad2b5b4c2cccbdd013e5bdd38275ec2dd2a815e8f2b7aa57e9eaef03e814a7c933a50d12af91762208cd39276a69408a34ed539194fbe9f11fcf8874be6b18b4609c674f9da8a4ad0f2a7824a9d3e4ac8d41cd90e11720d0a946386c6d35a1b33ea1b1bf2c31d2d4bb60682b7f025f2e47ba0b2cca9604164dd6b81b7c6148d0b7f0c775a5c0ee0b28a7cc715e11e4b7f182c0f99234ee2097e83481eacbd7db1cade51fe76f99607131c9f16cdb493ebc1e3a0250561f0e56424c87a6d7d9f3a1a66ea7e2392ea3376e7c0505be33ceff38323370d0ba281c87a3be16d9bf9adeb3f9971daab0272153b241372b2547b40555c432fd1a4ec1cd2f1391507bb64f9a1d1f31dbed1e56b90492450c64aef83124b42a2385b4e044b012e5f41382d586c2644cc56f7904cafad025f4d4358f641717be2b734558e707d6d28d04e73416fa71afdc1b1fdd7af91602223bae5d4e1c8daba9ede9cc4069638c9e68c293ed9fda30009707951a17c3ba5386dfee4ad8d3812fb0bc2442866b3de04451fee244e4b9b7c86865ed23d16068182def904d1622f611130a263698808c745ee7b526f3c7c217c28bd97968bbd22cffb2f2c54c47d3ecb26e65433fe77705d4a157369cecf63904c82365afc6dbcba5ae2e25bafb7ffc5803bc533077fc0c01e4c36ed94d6eb176e03b38d72eb5f3ccfdcf04561e2f70e8bf3c1c8127b43f3c4c69fe83240651451e995c05d75be124dd9e3bbde373a8395f7653af6503d68ada2105663f2d62d1cda6f235584aa39430a1b21452785b83e0a7132c9073879a71bbe8eb7f0246fbc0c0d2747afb5f28fbaaa924c78399c607059f687edda6ac5a1082bb5ac3ab9acb3f01d2bc3cfaefea7ecdd471d16b7bda0ab8c8f863a907c1afa43d5a8ab6444796e746d250fd2dcb7ec11bd4b607f925e4ff723a3ea2233516c3749c5dac50927ce45922e2fa890fecfe66471ad0b9f7dd0cd474527d0d2c76b151528d08c58d2d05ae45c5c4744cb82b7a77399fa822ec2acd4ba0026c7c10c91541620b781cb3f9d48c8b2c90bde54ac7e2bf121abe3df8f3587bec28e41cee37441c2138a94296a979e532b7c077684b5d2dd4f1a6e14ffca8959aff81423ab0c740ba41a2a9733141d5d03657f3a20d8f8c17b9f97a34623ada2b1a59a04d844c396fa1f7c9808451b1c4e2a86fb4787379ca189a05adad84170975d46588ecea4189629d269781c6f60cf57d365de9da772d3fb1aac536ef792af83dfbae70c9a74a930d806427f3ebfa11c5f451f6e799d13529a5262456d6a11445babae8a7579039c5803b41df12075e117b8f28917634122f36f37a8bc4333c8136d96456bca64bc6799db7c46bd14d180e361524707438b9a9e27ad28909b8e715dc9d3bed6ba2142f8f3c9287f7bb33474e0cc04ad79cfd6ac52d64d3c53a55799bb5d12c19a33ab40a3c696aaadbe18419dad9121d0ef528e805ee4086090af50cbd24b74d10c35820f1223e2ed245ebcf6ab553d917e20a07a30fbf9bbe2b1911ac57e0340bc2a49840c7d4ad1ca3f4ed7af19d4cf9c6f4c259ddb103783f8a39351e83e1ce4b65298217fb0b6be69173e0fd5d7882e8dbcae561efebbab4a9092644bf3819f7c88fb1039b9c431ddbb6639b026766542b2bc3168acb7458ce73d227080686648c219934aeef96fa4fac906473e2b6593875076e6bda49e00c95603783125ab336a7678200186652a8c66343d712cb09c7b0374dbef1cf6490f1a77bb6595d086691cb7ec217c19f34d037f7aabfc7bc9e49848c291f6ce182b3bd0b87b56c0e2cdb1de9eb5cae81ce5fe496272d5d8d2e6b0877da7448b685ae3597879b5c707a2b5f3b6e77ff3859cb8e05f9cf13db417c26505fe03e27ba2996de96c59f619f07ca1d3773b22cd2b949804451aecac4acdfca5112a5de59b27a38cedfe515d22885ef02804266f1b64118ff9cbcc098c7108ed1c09c64df78680dc0958f46cf469143ffd035145a6adf3094f478e878bad2b9ceceeaacbefa645c069966b085e965603dde49095b54fa00dc3f6db2ee85d95c24225f89adfaf535217b8194d213d1c0f471da3a3f32f11262162c51568790fb823286337c09503fa5749c394ed99592952b83422e6c3fc8fb3a9e3bf34edf0f2b9bb4c77d211f33ba7379662831f638ab6286df9c2ef1d4ae8302ad1474f68477397cc48016835ee90b0bea1498ccca8e9337724d112abde767c3254a19403b38a2418e57dc8f233c21471548531a92e9bf8283e06dcc6100afb2e6a7129489dcf7f7eef0e5df77aa687f3c8366f78e076dad3bf5c7316e16f910771be01bb76d6b0090001f8d64d9170738318fa1f2f92999e9d9e8cee7311c0424d0ede68059f2c98337423386295ebee792d6ffa389c7227ecc9090a5bb8fc47ca3cc0b950cfb14bd0c8e74911581d5aafb8c50bcf9abb410cbdfb7d34360d7d1a954571c5d2aae95151ad8c9e0b5bae61dc0df0d9aecc55af4d7ff7198651fbbc2e3f62dc56b0a47ee4ebf889512af83677e94972917cb3b789bdfd32bb56d953d2a3f546dde6d74b2429ebb5330f0706e79db1109d510331848cf1fcb8a7eff8d37ad1207692e9f05fc9866ef58bd1d6dd9f5663dd213e937928fd2a421fd5a10b9835c77fe31b0abdd251cdf59c0ffce53fb3542922ca77d81963c9f373e4fde9cf21a51ddff75b1bc5b877a568b0fcdd6ee50ac1cd1dc02f1edfffe34de48b38a8ba91f549b1c256320e68833ee4b1a5c1d3d9cab419914b502945d3255f6e0e4e15a81d4e5bb5e81828a1f76df34a0b49eb800c6301584881dc6ef56e0c9534399f1115f75c9d84f2858d0af954f4b5f382fa96fda29872381341c49d57ba79ad1262592a3a29863e24a28d237a4e7bc1245285909d5281e73d361ab91864b81d42751e51806277720ee7d033c420d33a94f8639bcb94980c76b8edfbda9b7442314c9db3e9a182a3ce50fcf25b91c101edac3bb789d3021e115458a8767b0c089828737d36526f94b6573cad59e4b42a3232caadce9aa387bc3d490cd879b2aa6f948774d55d6f076b8520a060bc133f99d7741a92dbdc3fab85e8bf495e4426a765629e7b8b3dc8fbb7b00e01cc25d1d6fbed5579be39e780c4de53f60719e76ea1fdddec317f514603e9dd173ee6422f33a334288e2772f291926197a26fad4b8a6bdfc0f824d8f2c1bcee8b48cd0d339dc648cef26f97a51621ca4bb7bca823bb81e77168185b3b9c1b3050ae7ae3781a8ca48edb6d01f1554e55bbf2079713ef88614ba2a7e93355f2925a0b7b838c5efa9c246b27426df5c0a3a63b1021e82bb00d0bf2416a7e23c77de29a5c5c32d4ea176df62c72c69342f164b7ae6a53bb2bb534c3d2e7094ae4af059cfa36b987eaa0342ddfcb444320a825f4d9a4b936249556e93780436514d626a6ba4361afd934a1d3164a253f4a0624a66f4b02673fe3d964fd4d54599f55198706f9178791c05c329f6c64d5503edfa5e3daa85c5429116ec37a853b16afaa554f082ae191a59a99ecb1e3eb3fe792334dc70b360da31a70d6cc285a895e856d86d25698c574fea53dd18068683d9bc59ce28ab2b71fee5eb180d16f1b995f3e31e198eeb10a1c46aaf16d845b76b80df5d20d877f33cd149e801d22e2fd4cb73ce1cb16e3a021962ca1ebda1ec4a6da5c7ed9a5b7df34ffebd029c551693ae9460399fedfae9efa623980f06fc3e49a0c392c8dcea9ca60c49efe817247f71704af5d43204def0b4d7c6fe72b607182e211a29eb529e034d6f9541a5daef6e6a4fd5051eb370ebc6d7ac0ea36cc9a77ae9b7fa2af781f5a455e7c4b8cc61014c15089896217551176de39781c40b05f4b9506b8f7243f2cf06b8a3f7c3770c81617a274e9467b9b0b3fc44f156c804cf487122c530e8d1b7fa1da49fe41d746411ba0153eeab5cce6efe95e2cf7bbc9b452bb66c78364f5d0081a08528f3a19c1ffea972140f99ccd8915dba8a0909ea07013525929c8a504cc70464cb8e02884862556c6aeb72a950964408e58608febd059e66d64088b9ad0b5379829087b91fe570f3d36b0e1507df458dc1b09e940d9c682cacc2b1f02bc5a17699ab2585a8ff1882e3ab35120d063192f5e2f1b758c9fa6fc26b51a78e4e1abe4e06569cc3bda1fb20dfd72666692b8e9ae6eca318e830730e7018a0924a79f1085896ba0317101f923c851c00992b1d7ed1c0ba00a0ddda586299f7cc7791d03f2ae761bbe7a0c9ee26f650b2b67b462a7e5e89db6e43996332cefc7e25c86732814ea7555241092bed8496a68b3d1340d9fddb53b99ca8f2e09299dca0978ec4fa530f4c8114ff408aaca4cd60e2741e5e9ae21b4f95954195264b87a00bb61d23857a4bbaf09164fe921841fab47b0fa27365248aced9afe6adaa3fea4707e357f4215a73e0f00a377a05b56f4ddd75ba8b09d6b45b06aefcaf850f2d00d22614b5a310a3a3e56ffe50155bfe1ecbb49f2aa57e2f46be359e9a866e50ff4a67e8621f38d52bf782162139d95ae918cc6b5aa464e10a8156693c6d2347a39a36b397625fa51e5c6676a0e9357c48b3e2786b7d32de1945a1324ad7e3ca5c3b66e87625392158bde99ca2f7db52246639f16f35accc58e27cfbdd98f44331a8cfd52457d53c67c8aa0da2ec17613ef33f57bff4e0879e4cad05f0a44c863b5b14de4a7a07f30e92c5593efbb0b4a978c6e974ab4aa8389e9749e385fcfb281cef9294118ce4c2c83e88b87f7f534d27858deec58d1e68f20cfcfb65dc4ab99ef071351cbf4830b7914d761023c76649741251f1cacde10fa6dfdfa7c2814471c1c762a2f5cab5160c45821e3a160499ae4003f0b41f4de3f9d41d0fc55f323b43e7d251cc7fe4b1e1490a26bd2389e6d715307edce0c7c9387ca3784656824b2b73452afd7504d72121e16e5f1f2e0f42014646e44f61abf6c14623d37c4577f0f1fa398e86909af8e0fc5c176c7d434aba79e58e2ea0e52de03e880dcc20482645376a6bf0b5e9e5e4f7503024d89da8814000d9cffb05c5b3a8c32d9bcd7a9fe6c45bbdfbd76cd4a98e18882cf108ac3bd66691925f542146038dd5899acdf1fe70538f590c3a3aa024efd99a50769cd6ba4921f4ae2d9011b3bf3ab6e81e35828b3696349f57addd3f0e390dd164bddd2f7e766b3b2e91d68273ea5daddb17816a972af08f0e969a09ce1c7323b7aaeebdd241884f2c4bcf1aa5a6cdf3bda2c5e7d1c7620d0de993d155a0b24ada0904ae73fb66a802b6ad8c6e20d356db45a4df37a2f1025913bc88dcd7861d3cc92d925f5f66f52a4318cccf90b98a0309a3b24d26538612822145795deec811685cbbeb532f5b280f4832077238d36ef939c51673e66a067094c18377834c6e005ac2586c8cf3c1e502fa79dba18cbc2e790372217eaf10e360dc847a21faa80de900777942490da36ac52c420ca14101d25886ea340d4f036516b7484dfc132946165bda17df48bb0216cc9f2914a74b9a353fff626d2336e7161711f1cc0237f766227f7ca886f3dbd64442fc7bd8d1210fd922136f06a7d22704b01dbb20bee797c7cfd08d26950dd1ecc59f8042275be07dda66e529286cb67053ae6c17634f1407e91deb20a682373bfcea6061ae2aa5f1433156eb9424d6a244dd5685c2c48e53e12d1321f0a81b11c1c56d9f8b67de4e65b07c1620e9bc84f9124544232c76da0757c96fe0bef79100ac8c83a57b10d307b5c6f737354285cf7ad9ffbae684984ff9c6ad8a54278c6ffdb82f0c5946bb6fb9d73eea3468081233051c7fc4337e58a1365e58136971b8677d2f622c8c30835f05b1f179cf672e4091ebbbbf42a4c8003b412f0763df1eef7d9620cd7344328fdbabd7203c8337c59936ec763490e76f687e18731db8dbd7ef6ed06d91fd31f69777d3c61be11a660d118baed188ad78469fb2b283cab3f81b789377fd735cfaad69515cf95e29222f01dae1a3fab8ffd259f8c8e40a8bcddf3496cdd7fd474842d74bb30972d5671776d50e7aecdbfbfd2a2604765bf6f62d4a45eebe6be707b1d7dfa3a1f7c89c328ed176e98333512bc1c88dcfe40db28a2d6089585545690ad7c7c4ba95b4d7bf2d7902c699fb50b5363ed56dfe013a9123432bce75acab8ef8a50073ab7a1351652955ad5e9093671c348230a734f36e8e028f4d18cff9344948c48dd197b55028e3607e0f505e0254ec03db8dd9b5648c31028694bf7528c2501df0eaeadb77534d79dbb94e8bbbba52e196a95e8c48e66d062edbcb97461bebe326c53e8857038179ab100ef5baa32da56f621fc0034e0b067f128e93a36d7af5db48376ad33a9a8d9a50abbc9c22f3a0d449241d13ed7782b542c4ce05a66899633a84baa2d946969634355df2250dc81a63f1eb0a43349c9212c19566c78164348a7b54d1e2cde953fa1b63c0619694fafba43e0e547835db93872175fd845267357dfd3e13496bc876edcaff09da3d0e15e9d45827e039d91fe4b3147fd5583bb6c2931ec80a8eb03acf7e1b5d2088585a7908b595b9c6d9431406db40756892047cb077356ae00bc7682675fe911cbcab3fea0868cd08acbdcf869477b3b073265c23a7ec6f269ad12f81e2203ca7813549f6c6c5bda52888c4ecbdea38f78650f78fdbb21ce2669948cf2a817ff0d518168b78f35370a5f7d77209175c059b96945f99a74464394b6c618a3074c646a4059f3c6157f880e6beabdf20e77d232c552c37bb382623768744322f0cd2491ce1044509c83f9bf1be3ad996b9e9b534d3c46175b839f78f0222c8d6fe62b613c7ee571e9680dbc4aae74704f06c8b249ae9970be611cb89e6d9e414c7d44a54f9444c0a3177a9776b74aa537b6102b11af0acc736c57c744f1092753e6e23574fd491bc871772f9a852390152071e51fc8848be992d2735dfe3d3fd9e84484d4f4ea94854eb278e63d85f1da595034eee0167d54ef9b14922471bd6f5391fb82f93a9d4cc99be5a90da3a1fc33b7d635a7dd91a28d4419d1803d4c45066f59143c4bad71342af010ba51e87920b79f09ac4c06a2f4ec06c543dda78301a7a06932b9ba80163774f6e1f1051ce5a8ab7968b1466ea09603b6178fea309b042bba21b1d5c210418f7a58e4c376ee3652fe43622b9b60912d7646984e5de9145a8ab88a5f3fab4975e4bcbc0c4e4ce6563d67709b2f8a80e6d2caaa4843daf5f80c542addb04c17d7b1ff58e371de30864155c3c2716eb4fae17430cfb261fd1a9c56642bad6a757bf33a48e33633b6f47a4c003ae774f140494445c4fb190bec6d4d1878d778236149458c9449e52e2b97672f9200a4761d4192ca83f68fcafcdfc21321ae17f30e98371ff318ba74a1ef8a88f76fabc7cd6dd9cfa3bb97f10b231140aaa120cdd4ea045221fddeeb63e26f188e7a5e17077a808ce30f46ab09c96de6f1a4d86da23790dd97f709ad68c21127b65f88b8d4e85419521ab5145b4017cd23a52a44a517332fed9f97783f254ee5561b312e6a13c9132937a5ce67500bc387bc1c15017063c2058da4c353297e6d4e15674d1fac8df80c684328f9dde50bbeaeb639669a505022c04a08bd7e7ce0ceaa6016bca3aa6c9c22990a09e71030986b92bc95beb1f1ac11856c7b7a916e62f0784121ebce75030c6075eacaaaae3d579481a9ed23f13bf2a5f4f027d609c222706e963a62ec9028378715231839fddb93fbe0914674bdccd782ee11a683f41b8fa573fdc97dcf37f7e659d8809a75979876f3df90056805ef290a9d4be31c1287a886dd94aa5cde27e29d38087f84d5901ea4936877936ab74499c9899ab849cb5eab92a59378595f992bbf71ba4e49dde6f6e9c6230f069094f369ea538619e8ab20240e41425bd79d9782922509c1dd644e5b7a3a81723023c111c9b38b64358554dca94b68733d519f01384b7c677de32c0aadf45727ce9cd53a90f5f53bcd30feb17e30ae28d6ad2c1aeb125572cd006d5d6f51ed30d5d65b22cdc33af889f5fad206cf01d7ab469d2f9acfc006f6c11ba28c37c9d29898bff7a44916dd0d5892a3493bc047dd8a56224d932a6cf46a9d215d05f174303674c07f12836938b13127cfcb8395bce34b84e01d11512f9a66b9fd6f98bdcea499946b5fcdaad8f4891c400a004b75c2456a859771acfd9e6e7ec95303e278c2216a90fe5ceed4db8c73c1724ecac6e6ac5ec13d4d8b827c9fc4ec9202bbf3a0af34a4a0decaccbb64b2156692079355eed807e2e7e9c3cb5febd40979c2cbeb8c0be25768aaf28d9be829789b56f203dfcb28bdf3e7be4933d2509988b15750d61930172e63eec7b729a830eaed1f4a6dfde0cd6a4546650710d4bd9d248478987778829d7b9ab3d1c5fbe7bd548361e4d79e3122e7c255d36780644310d9ad4c91c0016d51545819a4bbac36a14a08c5a43e82b3b9403309afe1a791c5ebd37403c7f8a500afdeec8893ed09a30a6bda6284fc94d88d4c1b7841b4b6300b420b65e762858e04df064f382fdca02d5e1118adc2a9720470e6414453fa098cba26a4a2a678f201936029be09cb3546d0c06f756a0d6089e97eab090107c2d35f26038f91475993b320fcf79724aa8c9b64f973e11886476e2d935402dc0bfb1eb403386cdf977389ce9c8e8367d2ef13c86c7f976624aa2f8df92763939e2718bc7413086666ccdf0027af815bcea3b5c04aa545c26c1cee6b6f6638b697b7a74c73e8d089315c7eb1429a73154cd12bd70ae6766bc17463e21bb4eac0b1b3c6cb980fa6d6c2c5a1266d1361d9acea565d651b7c8a3b2a093f6234adb648d8ddddcb2b7a6cb299b2b1e76db63e454e9414d99a5ceb0a89f004043bc8c6796e556e8816af59b606bc1aadbabfe556f4ba032091c531bc9bda26494ece4a5fe82084afe5b7351c657a43359d5e078af58b8f11aab4adde43c196620b53f145c2d49f8d53a8bafe372671fb4b76da8abf7205c733a396175960b2d3d18ab9b405c14d2c7af7ddfa728e1a7377afe4b74f954925bcbb980fa3fa1e539ed6a7cb8dd888ff29bdcd61768ac7e7adf60e1857c357c3ebdf7d2a9a4096c8a0e748042886542e16a100e1444a981849952d7010786d12c7a364b490ff2c84374f2fdab1f9266777cd586ae597a7f46240b38384c70b2a96f4b274f0013befb6dc4a97a5799821e4dbb22cbdf070c9638b123cc48ffcf41be202ea115a4625dbffd39cec82958d7aca4490441fa641f3ee21afdbfa224af18313e8d3ae2cf04bb61d8e3c494a4100848e00d864366ffbe2f19df2baf3c8be1122cd54f90dd7397ee64a5284e71657fb48e10a4948ef7c39c7f8be1dc0ed2b4e7f0e7dc71ee31225088eeb874f4a44dc656b7f7e5136e2c22cf9481c764b730ea28a2a4cfcc68a56b96711a4201c6c5b37ae9d2f107ac892e3347cc70d390ffe8e12f29f796904cd540662b9c08a80482b36a08b88c0bc11fdc7f98ba43d6dac4b9e943bbbbfc9458196c6086a9c34c8fb7dbcdfb1808bdcb2925fbed0a7b7df34c47f7ee065c5f75e44ac9acd12ce40911d521c3cc62c1faa589a437932142fff4408aebbd7d07dcbb7a8ddb6d883773441621dbd5cc8aeace43182694eb7705d7bacd0fcced7ff6009e0386aad7f62747035b51e4c93ecab144ab2fdbe84e3642d3253bff39cf5b1f570242c43adbce45ea42f9aebc543f5537232ba4669b595e2e925354f2745c1f24ac4a680dc7e9bacb50ea874f0de1f37269d581a195472a9979c153b62c7a082ac3fba4fefb4cd59e41ff00abc1bf060a034dd69b296eca9d6ef27de13dec131a85596a06359d2e4c2c57a02c50d71fc0e697db1a614f27e37bd8c7a8061eaf9a2a899a5a8cd9d1d8cdd5a48f309f94f0d81d3c0cf001dc71c86627bbb92c4ede6855aac537d0917b84a0dab9457ff8afac293bd6f1ab74388d1730b7556b0e52bfabd10050a4af96eea47f9e575467b2a86c6d54740dfd686668bf07b6e1288eee1eccf3094ed1cf071038e93bef9fc0d57a018383f8de89045ab9f93cc834f2b06429fc021948c0ebd612631894eec52b4b981a07d1105422f1d41cff0f3a97b0d62d9e8325a7f71a2f9e43d67ce7c069bcad9ee91394b86db7784188d99381c1f34241e6e5a94a3c140ce0d153f120e40c91a0aeca43a7c339a7a54afba23c9addf7d9a1a16aa8d9c6666a0eba9f5abc60ed38d418f370b789fb228982504aa0da91a3d2f5e8ef8446d5b2b9c6ddbcc33fe2f919b3dbdedfbab56f152b6010e1d42c4b7d50e07f26ddef1c987fe8d0c216acdb0d655c59cd68d7c48bea922dfbda6b2e3376ee7af496243b056219cffdb5dce50d8b07b8dd2d507bcd6499608f9db98f30ff09fab6bf2bc291e080f295cf2397439701955b2d3a725c74d66acbf318e287d648a78a6c8cc6ebdd50b5d67ea74dfc8eaf3d788b2650e1aaf198c458858e6fbaf67a48f43076aa31174095beec31288bb59ab8f179f196c739dba268e3d451c0fb9416720bc0ca2ac89587ee4f66b73a45a95e0dd9958d42d797106681aad0cf926c6b45ca9b26099946e0520d7d035ebc5f320ea59eb8c6cea0feb927b8892250d0f9909ce3f480aab38a93d976714b9317ce2b88f081b1d3f78e69b9d908ca777091bb06f26b3a832d1b3d0accfe6c9bd63b1c124a2e97ea49e4a664c1012aa4edfcf0c675f5535a77e53f4e427abe8d11429f6421b6bedb4ca74263a09b79bca54b9fc92dfedc3179b36ff690bf53e9c137f4efdad69f75684e324bf753433bb9c2fa2d7f5059c12a4504ce156bd121e998623f6b086b9f559710efefbfe9c402e6795a17154230011a1a831c21f01ddbddb0d5b5b3843b9d2d9ccee23d1c0efba658210c0985a06903319f7ab20006ea48ac193b7effd9202c3717ea7a6612c3cc14f52b3502891aa7ae0f821e60624d77a852e7bf293b17036634a48aa19ace15f22c70760ee04567593e8cb0088a5e83f8b41440ffa1264f55f087317d13e9687859c373f115f61ddeb99f3d0061846f757e1227b4f6865951246cecffb38ea8f2a88d3168df1fb84c6ef2d4e7666862fd22c3a92fb9554c4df92432fcf3d360ee5bb94f23d03204996d4a0c6d154ff6f08823558ac385a15eb85866a2525595c049212348c532f71b487f6fd98ead7eb555cd0794dc14f63f2beef6f06ce969ff749b47ee1fa44210f59d80839c56b0334ac697501a7136ce8cb62739640f3e06b011fca3cfd454174b71245bfdd88958af2edb7414380c8d093522a694531874515a96e72c4cc4b508714d6104e9b296d2a04aebe6b99022d0a5f9b09b24ecacf8c2a0afa36bb6d26c59352a87efca619253bc5404ea8ad7b1a675a9aed25956627fbfe32d8a08395fed7b621c1848b2fa51c780d8a7ea1a5323a03441b305dc4c6e50df9d14e21b29a50f44aa789987f15936f73a89c6feeb6645c9fba288ee6ce6d3f6b87cdd8cbd4bdb24452c3860f3339274b190dcb99875cf33026049ff717d91ea2101250592ccd1e65d7b34c4df953365827979243a0f28118a7643c51afb97761398b7e106b41783406b95bad5e27c6c9783b53ee6fd9658c1b9ddbd59ea2bc4ea8689e05f24b88be24e9250205ad4e02fe928a9e891e4cf048377a4897af4f781705ba64c41899e013347183387b74d6368952c536d6291663141ffb1a2baa35ae4f13d0154a2f2913f06a6b604c9ef738a852f1e01df8f84a34994dbb85a5098b8ce8fde290cd07c68d113a5e4093bf1928d42d95df20cafa567ef74ef9cfacab8acedaa6f2217af07d97d764f8857aa40ad96eb39851f5f8ecbdec66a05948973c58b5a0b73b8773a15855d2cad9d70ca4c82644fed34fd8292f578e05080dc30580168b6c638361c31cf93e4fa1caac172ff5b737c8bf71eaa0b26f33e18785b00cbbc5a643159380885b6937f17b4c41b2de308eab82877b0bb00bc7f29c7e628ca29f48ed1accde7d532377584152b10cc84b190218eb341e487341673c57b51c26ff8b359f9bc9e6ec2ae8a8d81152fc4555d14834eb9512a4b72452aaa76e9dad787be9ff13c2807f89f1813aa8be99d951ca76e109fc573bfe62a7862ff3b1f5ce8898c71ad66d9db8e1526e2919307df54cdc4a0e57d6a23157cf8dbc64700600d7c9f0c24f51f98bdf48e90604454e83b343ee9ae67ff73707a3d1f3364d3f82de769ec8b8f9d35a5bb4572273af9d3b9e7e7366df8e4705314493a04454fc6abef0fff72f216681982fbac0619111115f79fd0c4ac12b1445616fbbb44105bcc59cb75de5cd56a694191b127e8dacb096299dd99c042c7f8c3117a52dd173507d16b93c00f25ed0f4f9eee1f6335ee2efadd9b845b7576c4ec997401de4746eaf0d1cae93fd90ec41fed5207112ab0cabec7e625da6df670938577303ce90cd795712d8ff0c56cfdf7fd9fec9562b8781b860d16b23148a40d9bd9cb54293c1ac2d629c015423d3dff808c91deabcc435c9ef967ab8d9a4f131a86901296f41fb21d9a652fae7caec3dcb698197812159c66a5facf8fbed512319716b5a68cc6907822a446ea29ef9bad678fec5edf9a6c8be2127e0cacdb4285c0a4e330e9119bacdfbbd8da92147d41247df6991909798b70f7801916f516af89164ef065c1689365bfc3e9b03ccb1a11e37c8528556f3b6389ef920f9f70bc585f5d064e8a7d9b0dbcba82953e63702455132475cf8d42d912d696bf3ae2ab4c745c77e4f83c46952d2098e64b9cad2817299f7a3c4d9b02c65d0826fa9df2e7a611abfc39d9a80cd7661f6b9548ef8e67abbd66cfc11777a63910f0f036fa8abaf7ed224fdbec145b4290a744cc891162566d4aa877d9dcd69d985cbb2e9ebe3e25ee546f71cf6e2d02698a5c3a8226a4e142dab7c1d8de84ebd0306d66b04ef877434a96c623d9b76aab28530714421df1f2be2aac6073ed88abbcbaed753463c9e24c84444e3fcc415a8a76492ee9b495d775be059172331260ef8d57245197c8a9a1b0c7c837be8c01876eaff393b0346ec1a13ddf7c022de97b79af6af81995d780f07aa1d2bd2f2bb26d4d396003e0daa9c225903138ce870dbc67e84a665d919ed446f8b74d37eb57e3210b94f184610dac0341b50dae3c8cc51bb46036135e43ff7e8596ee955589c0ba28f0b1d9eec054bc62887bfc4f7170cfd443d7beacf4f4bd10e259890239a2b481d2f69d8e408251b5add124cc2b6167c6ba111a49ad29aef7e1e52b906772e5be288995f3efa059d320be9401953d73fbe271e2eaa54cd5ac0fedef206052e4ba325f9ff4ea3395a79c3b080375ae06579bf7c1a7ad145535c552e4d704e0480315d96e0b663e47f0b122d127175d4ab3be79c47d120ffbab3b7faa5d2b286c5b3b0db8d59e4880c32d57ee89ee5ea25b2e460fcb1933e7bbd96cf76109d8ad398b4e13965ce21d08d0cb8b884ac1c391acc8f7d5083c8728d2a05212b17f4049665677b200c5daf851d6b1481b27d7088742a545bd0ba347122987a79df747e87cbcec3527f76da5bc8d7f2ec6aad26911dd20a5d597bc8180f9e3d94f3ba5a970a6084cd79361720f2d49680a7689d1efa016e5692314d48a42fa64fa4a23d246d9cfca4317fc9736b45863f5c18b51311c91db53c73753059b018a3ee6d8dfaa96dea41b53519e5141dc53e730d66d3ac1a8be078b23a158176b8ff8317bfe00f014756a6c52e949dcc2aea7b47b9e7f4877abfc8f9d7a00a8753e1c9b0d92487992fb08857e2ab9aee5b18972e9d00f9f9e21a511a82b5a59c762a188d3b1ce857f989df2a7e81fe2e0daa05720e4ee2b5a84f73b9915c34e284e80aea8a6b058fdd22c251c016c9e6c6c054f442f4076609d861aa72e07937d56be13ed6f2ef399d3399f5e22cfe2dbee284c2dfa4076d2182a227c7f1f180b548a1d023fcd6acfe976a19151e532a4ac3a9b3a00131b15043717b7a74080d5246931eefe49f16907066c99642b5276349c2985f356cfb85748520f56398ab52872c01cc45bf82a4349370187c5877ddb65b8b1f69606826897a534d3203b50c49bcd5861461ba3564346abba9524d036fb2a1024811d3d73e4646877551fb0e3174110d93cb8071f88b45f51a245f9a1af636908f2164719ef513b30cb3cad70c09aa6e09363bc20bde15f72cc0cc9bb7a60d923cfff9bdd7e6fd2ffa990aade93d51d62c49e63ffa99c3e9ad6c945e8bc89576ab103cba7fbfc927a3c3271a1418ea4fe3d7d8d07d96f5f19bbcdadce13651bc55f7c6745961c1c4b2e751ab3c6bea885092186a4c7b1a99152e2f6d83e1ee09119866de500e602ae1aa50b101aa1e6803b3959eba63a2e7b4aa01db61398251fb1e2979db7e7dbf76a34ff3ae98a8ba836ecda0face1b8a26b1de4db82f7f1337635d4e4d858bb0a8578f8b564d4ec6cbed769edf02389a530ad54feabda4285f0e1d9168e7d7be1494dc88c1c1c836ed9102981e496b779acad7a9a02ae51436a1767f30300c70ae4397acaec79d206844da46f4b0820e5c09a486d82d10a8e4ad3ce20f33f1b26e6f09a02fa72a8be32a22b7bd06d0205a5e18ffcf37f9bf83fe451a4b8dab46cb945cac8bdc0a0d4247db7112506efc8bb2e440e41aac60c3b38346dfeed9e235cf17336233d32bb86c9d0beb14dfc72ba2f012dd938c5c638ff9ec9f3d6eb2b70c0db68b3859d9a6464ccb4d6a8b71b1f04ef282665d217dd6c27ed157074759904e300d227f7cb6c4da44abce5bb2df7d5ae94101d2963dd224172880f59862c630ea209682f5d823ddc7ab3f75ae9f554ee4694a223023b8efad2fdc7e5f92c5b5c7968f669931f8d2a62268e52e3da0d9eda64d962c24dc120ef2fae69fa9b1c6eb1ec213063889411c41869158228d88b30a2f45e639e944f8de82407cb168b5dfb005d08f8ccef3085388dcd812ad44fe99c76871a911882d399718142c5855c0c0925c6319c50d9317eb9dd714cb30feeaab4240fe0a16ecf861b924998cee21dfe9e751fe6c758765dc05235c04499ea0b5181dee5fa58ef7bd75e5dd82ac16d1b7b1e8b4eb188a485a667847480bacbdd5c7e1ab8830c8817023f100497e9ba9af1b96d6faa613432a9f96a5b8a8a45211499c6114b5f52a2ea1d88fea71dcc80ea9f76eb3fbd3e0b8e8bc700688c4fce6595da0d6af6e977706dfd8d73fdeb79a25f87503af80196de41ce706231a3f8b974c4b12c034effb4ca3e2a9a2263c65e7038cab4db5f35f113886e4e464204a81ce447d1576533e42c2d1b4c0c0737026752a4670e5ebae1474ffa3444eee98e150e8ae88175bb55b43ee763a2ab399565559dd052a884db3153281652af8b41150c9ca08fab9388f6fd11f0fea9f5124af30823020b3357191847c0024f19399e1ad684c49645bbf1852ac6fe5d780dba93c22987fae32d19f655f57ede84ffd7685f7cc9acb022a9092af9d2a9f1fa88cfef84170b06a4c998cb58d92e07c4e99c9811d3c46201c94e224d6e72003e1ff692ed8c77b8cd857eacdfbe57b44b8c4d564cd09b8021982f3c0233210f3b788bed680b9ebbee277bf1bc933520b03c89eba8f34f3e73ea180691b622c00c06c4b2951480f1b72a373e0452e5129e755004f6cee6e7d1be8c1232ca686aa9490b0a7dc3446e8437ade77c2c4c4d0699165023cac87931b0a0e64a38e7a58b368161912fb518f84bae4a5f0d905d72c045fc4af441c9b6687d381ad019e82f897610c560c0daa1cb5d72f6859c836f7eb8fe7f0d013d7cd3e17d3d6a7a30f90ff2c9e2d1f7618304b20e60a9a0a5c1b742302b2f9b1505e09fcae9890cc54e8630df91391170a0e7f7bae4998f54501f253701a80946a1481afff11fd4fe040a1d52b03567bbf7f84d94a245a0e0ff8b9b41db7726dc43f3ce46f4bd5b266363ddb7ec7f795f87c4282084ecce7de8535190fc5633f98d32c8e648392d60585047ebc98567dd3e78cf82bd8e58789d14e7d08e5b535a1063295c8c565da9b1c3648f769979ac009ddd054a50417976d471485f1f0e71051fa6cade9700e46291f4612274985a154bc3ee2333d1da0c35f9cd26bfd20b06890bbb32b1adf33451e85dbb6dd23cb2a043a53047120d5f83fa94e62b6d8e7afcb329457704ea6a59e9ad3ca1daaf75b3f6291b94540a4ccee7c7230e94bacac812e5185724433093d06ef92f85e8faafc8dc968ea9db58d0a2f20bea60088e7a2c3c0f853232e2922c428df94e54e75c7793c4df692df265053dcc4acc8e3e9c1bfdf71bd9fd85cebfb05c69d28913c11700b4a2b0f39b7d5d75a57a387c30c68cc3b255c56cfe04015dcf6d55c9b13e90673b01db1ec1ebe9ea86b4e91ed04b42973be02742d2e89c05ae483c0d940f1ea89f460f6015505f183acb867d68d292da3c1334ca95e9ee574eab91aaf3b0d18fc613b2fdba46681e69f99d7ff4a3e6888073a67649878a92767c83815c770b83ed5df0b79e731f0e0aed1ca6bc9e3ac5da82398b3ff3b7f722b9e2bd9d3504731e4637bdbb929703f927d853c338a2b867542fda5ae2ef0f971ca727e29b4924dda4bbae399c5210cb7e09a6412cc2c036becd90b85c62bc649f6a0352b639c5c65af3b49637caf523d6ccdcb60854eebc4adc13170771195368ea82e0bc87d41d141aa44f2debaf183ea0534c12a6d3a83d28ec8bda33314f7d89c52638bb577c32af30b84297cf6832e909908f19a3f11804c35a7ff37dd05dcd686e59b16126fdf533f5ef21a5981571bbc7e3a39d3b10c56eff87af3c5bb3e1a84d4618e9b60d74004bacd23a36f4e2885e9a4ed1ebc1420fbd999b8f0a7011117702f3ee202c76c63121681fd33c4d302fd6b727855e5b3a44289c704c0652bc9e941cf53e728b08e27092007d60a6d5ac6d90c428206f3842cace7339e0b72597fdbcc46a9c05204be17515bf3e455b2c5b1eb45395e450eb54ff5932e0fd88079bd584d7e17dd1a5a82a5976d7664ad00ebbe933cba226d2dc3173ad7f00d35d99b820a88c4cf1144d3d9502fcaa4bd99d558e2ed598249e721cd15d144422de2a8ffefbce13180605303c9ea0942f5dc1ed9e718836fa72f2a9491edf6dd7f153d4056cff336744caf613e7fd0d87a6141adbaa83f2271b8578494acbc735183fd8f5b17c565def5d78b0e1e9e1cbbe0983033ec4c39b47825b766e30bf931a353d0c74f5e4bac74f13be01af4019e5986868941ba95d763bd9217b7b671b66887cfb6eb68f768437181c012f3d74f3c51ac85fd0234c52d7ac8be25ff61aadfc613178eec8c121b34bc78f4e52a4f4b47f7dea98b7e89dcd43f44c1446e531768a6d128d471d5c696594267edb9b6c2d8ffecee46e34fbc3417fcc2955425d06eba78e7d877dc94393ba86b39670151ad9aab01d549c2284fce5babfc46f82bd4c47f385477f4250f42db04e29e412c9ffe9cf1ffcf55a84fef9aa315bb1f203c9a723fe0aac8d3d1eca58349c7cde6e359a93acfb8b440388f717e08371c29e51f101e998ce7e33994c2edfdb2c6eb4c6ce6102693a49080aa8bc5fcaf1e1ee293e85b67b57fcda621f6d48358d57e78fde6116639b43b2ac54bc2e638b6b6b6611fe1a83d19cc66af3954fe0a3f1b882c201268b432f1ec988070aa37f49d2761d03f54266ce10152b4cb8723db75725c45877860ef4d76ea4a6208558950c985ac0309172baf0bc14a7ec69d56b14107cc1287d7b9e37e03ed4ad27d9524e5f6da2f4092b573b2bf57f71a50ec5b2732045e19d199745135911f64b7e688b335d98288b50594223e28661e9bb9afb8d23b20c9704abc033609d3ed78ef7f5cf9a6596b9f4f746d96c28535d78df243622780f2071f7a81f00fc1955bc75dcc456be767a4eb4c2751c8ec40fd0e3295622a38772490a43e9c5724f74532ae8f527283c7a9e971c95b843886df8a53c6b219041cad9c9de5792a8b685fcf06e1902d9d1a72399fdc7634bb4cc18300f08f33400e88cf5cd65dcd09bfe0b64453d7c0e52b51f1e5b1286aa44e52247d2506f159a92b851dec1c30ca4fb62d0403f67976c9bebc57a6e87b9f9523bec6c7ff13f35117ad05b4ef3ebb4b8df946254b48953141cf4a6475ac0f915b2729e6226eb9db1a24917a2533715185ecf7882ab5e091fb6ca07fed5a964128b2c73d92a8fcc46b4932e878d6fd8214879da2772ef588073861868e1d7579196efb15cfa93b1a2ed0f5b7d5ca9a97eb655c770e10b953d176f7d4d6d62d7bd19f5ae732def452067fb5b37b1b135fc2053dee3aca57a21d2cd92ea3e4bb12707d63e3d084bb11c3f17aa1aa4a3c70d9f420fd6d8c9353cb79be96f8a70b643c7a55aead8900f78d67902c1375a2648b80667f580e2966040da0a825d4894e9906d6441a6f000191d9b7e7beb6764e6c49b17c0eefafaa6e2c746bbd9ae31d6518ae11b2ec0b868eeeddfcb1d7e1f47de9b270a000047e7b26209263f51b02927afeee633cbb0d27d986de73e6e9f6b5f20477bdd369b441aeb29c4c67f1be6658ea7221fef7f48d31d433ad32e607af522620f0164119f9a58ef0a4d705c76336b3ae7e91b94c0570a37e3458ed53d40c0aa968c5ced1fa3f20f60cc3b4325ae15665e5f14b9b271f590348b7da2a202feff32f0fb24b0747fc6a3a72053a3a513af44aa87669b316a9e33931c113be3f6c7dbe0b7098116bb33a3c4d38784e3f7ae6a335ec97e0e89d61c8cf253bfbc8d8ede9e4c2b845a08a7a676ea78c0032a7f37d0535d5eb274a4dcf4fbfb887e0afc5a8c3b40f1f18d15e338a71733dda066244139b5c4d6db20987f781a149d4201c21316fec39131fb0839b3c21e7a51a03f0077c13f3132fb24c4a2b885122f695edece503927231db5b18e92a4a05446a95fab7de06f6a938dc2bbaa21ef115ac95a8b4d571cea29ff14c2904eeb042c18f87d6fba4543cd90351447d2798db27493af9262ac26ffee061a03887197b7566702ca6887797620b5fd34a6e04e9922551e8468487971fe2778132100f199bf5e445a87577131e4a8cd5a50792e086aa5e7f7b60b42cfa2af02e4cfe1b999c701d79a376328b6b60a5ceda591e7953989df7460402afbbcd6bc8ea937f2847294816d9e2e83e325f9a7c621d0c9434d1bd719bcf3a9e72712d2a6abe188c2da7963036571478bf4198c746024069fbaf271a1e79afb702e1d1e9135f7b6ebad82296d3983551b99ccace3a547791769d9d1bb3ec72f0f11d4bb708ccf214bad8b2e264bd8f246bf2c0a2656cd150894d29224e6ea529e87dea473589a051e2e6ca1aed18d379bc4e4df977dc34f8f4c71d170462dd786372aac022588eaf99b340af28306f1793bd0bc9049e32b00f37e358e884fb4e43e355db7e282a6c7f1bcc8c81e978b4e6c6efce18b51d466c2f13a511ba1efe7ac288a016476ad5a4183665ce442d5f0cf240c9f3aefd4554433333e33047e8d06c39215e428f2c933dad5971a88ab119551260fef3961f3d9b6b8ed4802b2fbc612ae137da3d9557e67f815893ce63d1f2e6d3369bc450834e08e0a93f0a741d600c157af2a03d571f20632fe79117c84818fff0b0f67a4de3928ec942462f519ab8b88dfc6e6576d82b4f6cb9ac8c91023613e5968f0c6b1fb4c3e8f388730e38e374cd45c8cf169cd26aa4346c4c5bf4c111f7fbd935a5de19bfb0960f4b77b83907f3c56dd596df61d9e418deda3c6bde892ca727dc0e650df3d50cc95aea084726c25da526c179ce5bca21608210badb9f62c9cdd1624d1700cf1203710014d36c38495025c1937e904c65bc58ba88b6bfebccd286241d0245e40f83d55c4c0260ab1134cd4b8c805c613f552216c974c7c347c72c23fba78f9d377800c002849cde9a6a8234fd9f2fc72f6b5eb593d136971ed82e8705ffdba07f5a9ec42390218cbe05ffccac65c9ad05b8508274cb984f7b88a10fcaa370f7aa9dfda0cf461a9dc9a224d2c638adc9f85d5bec0f69a036bd895e25ea9711a8f7797a8514b20e3038fce3109e3a72352c56613c2a683fe174820bbe7de351eedbed2d6fb9f94aa0d80dc020c1c11d2e4f9689a009f92c769376e083aee6e2900412f81660b32522af23a18731335db523c661e016e21d973c9899bce8e6505771580afe27952296e7397ea8edcec9c1c9c2654803016cf6d65080670d3169fc4aee0b034955a7f517458dc43c75f80c8eb9e3beaa34bbe2f97f95fbec09ce19fee73cf157f80be30b0c9198ddecea85f9d3cfee308f948b87fa11bac33a313834a41a0b25bbfc1c9253daef8b6e1a7eeae2013c1d54302aad5e0de0318234f3000e26e2aacc1b0c39f2222278d4ec807a71b320f39650eca756cb4ddeedd97275af0c81379cc7b24cd57b44fb4f7003da17c260c6c0d70858336492ba5536a31046bf9f64cf588d9e93287b954d80bac6a05e32ad5ee1e6619ab542fba2c5ad96f7e58cefe2c4331f709e8437a5a6d6eae95508ffa9ad6a189a2bc02b6527ced4866b08d4ce9026284382ee072f07126325f3197441b888c2e2b800ff030e601fa589c984577370307e68c147d0b497a22b51a5090ef7b20cb8cf696a5d780eb40afb2468540cf90c30e9978c6c96d916fc8f7fc915c7d7c7b277a2a60fbcb48d3b97f643d8d9cea4591333cbaf57e9939e3bf930734db6235102933ac0af2f612f7d2b4108ddbd46942fda09f3081434df50a3ebb80a5b9d88cff6d1fd4bb98d29aa469bdb00d77f349797a88624745b083f7dd55c05209d0d13267af7687162a9ae5ac979e15dfb74988b38fc966d73d4d65820195e20241a35c065896631a5bade01bd44bde7b5511f5ca6742ad375336e0f4db18a7f5ccbbbaff110fd593c5f96e44a204dfa17ce0614f39a489258c4db72d393d1959e11a7f6019a09a36ec55272f176d7d07c8790369d14937678ffba3dcb5df7f48989cf0078449f7f88859dbd1e7c4a54b25883d512022c746ebaf15e4197fbcff287de5292856a995b1ab299af3f7f06dcd1862d507e25110029daedb0aba4361e8a9f3cdd24bb90d0c41a9e89e455750cd2b8cd67931b8940655be8c8e012375d9018d4fce3bb921137c3591fd88bd3c1e9dcbcae6ed56a9085a8f755d29f8e4cde71fddb82de2da6a612f5ecd6ba25f4ee89e3afcdbfea711f32c4a05c0ea7c16c83efdaa9eba0345521c8a400ed047b9880545b36250eb50d8de70db580aafc373c305ae4e96aad5fee64798ed3d6950f84b1caf2955585888f883bf31f0147673dda282d64ca3d7822b398f133e9ef38e1084ebb4d2d16858c2d0adde25e5beb3fc52b7bff90521de63f993d8a7a159c4e657bb575ac0ce9132dc21e59d80102d94ea0e1976aa473b7e93d3c2f19288966c0317198c924e2ee5db48717ee73e69c21037c180b355b66208144c1375de169c093b635b39a1054139048f993f900808c1cee137038e9532cd5e9896b4a95fa17f969865a9007e0115bc9031545da856cdbc549bbf4026974a7b6779995174838f09e8935bc4116cc1018e131442cdec56d6ed4cd4afaf4a5d39cb5bd50ece7cf673fa52cc0d3c51440224a510deb2a555d5e2a871032e22d48b6c02fc3397f6859353a4ff849e98d8c8e13dfe24239e159fcb9d884ec742f67269610706d7b7a432802ef72472806c510a08393fb751b6daf46052a32cdafbb6153cd0241000caa66b3a3e1895e8226b96af3ffa239eabd7fe38c83759a58f7228e5998313f3069f763d62a5c7f9d26aa05932c9736c3cc4021e2a9a61cd536d20d286f109f279422929722bea3986ada3b95855501a0534b8db7cf544265c46e9831e32f63bda9e9a3a852e4ea6fcea399d9c9ebd1f75f654b70466f2a7b26e0bbecea53176f066e76c33746cbd275840f20aace8d7503d2158ce5df40dd2f3f0246682a58b1c0152031a309279ae998e1e56ccebc52e13fad6281974e62d1a0923999bc2a7cce5e5d85a40571e6c86a97b5666aa28fa213c66262387fda7c7d46381bb79f0094eb844197aef62eeb91bec8359263373c9d0f81feaf8fd19be254b1a8bb608ea31206b0106a9f3f8f65dcb7deef0c8ae8557ac2e640255cfa51a8ec30a1f531e977fc5bdcc297d005a79ec8457993092a5a57fb2c3a1e20ae8a17ac09a1963672f78837ff33d74b25bcdf6ffc03ac85a51160cce3b84c47e598d89ba935b081947a5297d6849956aa3a333f9f18b6a17e1648dead4b395d6b4808e3d6f82e79f03357b6f7faea6bda97bca9f7c12dd2c830b8130517bd12ce54438388079a0f7f1fa4c139ebb61f02a387dc37e5b52d032608b0f2132a491204a9b813bae1931e5d559aaf8f1857f6998305cf25bc58ffee91dbc67e2588bd2622f4f1055a5f3248391785eb7029840a7f0048e5ab5c99ea88fac0ffbbe91560101bed0405cf8eb38a44716c5d39d060aac79350594325c48f51cef7f57918282d54eaa0e388c36a2bee5cae5a4a63f59941cfa930950467c0c89fc69d56b014fa964aea82c12e11583a187d491fd1fedec75ab1b0d01baf8fa38932981747ddd3dc8ea60bf7e16234ed2c44e5fa0dec714adf771b1f237c876afc77c5bf49adf6426122760dc0ecdbd5084ab5ac2d787c3121c4571288bf42a3acc0b70a8c223558db49a17c71d1044f97d89a54a7f8bc4962549b77b3fbed067657da440bcf59cf307fcf2f2108a462d5c66135223b1f651c19c591668dc828a6ef574e2180835ae403df5a3de5fee530831e7a97e5cfafb9cc7c1f9b57e453a6e2f7ba56d30cefc79b63a33a4ba54520729af521bacc27357f48477de0b9bd23aa751175e80b37c2e3e6b8ff4752918e69c35038508323a014842b851d642f1ae8160b8768581b340a88cba76d94a17b659fda74b7705f82c79b7384141ecfa6d27667dd7b9828993edc549d47706c399dd08dcd55b95f68f081e46f60fbe95b8c3194eae6fb8c9327ea9e5f78ce415619fbb7603905da332bd0d8678d90e2c51191a8881c176a40b802bcd9b75f00b36fd7cfa9ffed1103146537084da906f705f777b4a51012e35fc7e51281a6a2659a46424a529c0730b2464cfd19f80d0c9188bec5fe0c5e0c83cb358e266adeaed83a0614d4661a8863b5b42aa421b08a0167d95300aa9154bdd10db692be661d79c7455f6d84bab1cb4b3becf31be90e919c9a1cdab588da34fe46788fbd799a440ad57d3faa61ffd034a0ab3c0972985c4543045c2beeca5d7999f4feb9a218d911cf06fb35cca9d4b8541faf6bc557ecc29d9ccc97e3c2a3fcdb88740af907d55446002108c16db62ed54575acedb61a3b423bce7de67b5c435fc6d7333fe336e9d198ee22692a839dc86aeac1247a2037c0a57699dbeb1062548c31859896c880642d6527a70516e6bee8cd813670c16a2816861fa7537eda58d2a8f6ed21dd4c33520ab5c04493b39f8ee8557cf4b2124eaac6eac2465d42652d789f47dc5d72101c60ade4b8b1e22e45611c2567ff5b99f0cf58e47487900308cd23fb5c4b03de898e8a4618ddc964633df8f97dd856a6da65397bf556b1955e9dc18a5cc52ade2138f920abec0c8849545967169626714aae1055072045c020b05a4005b98c2195efce62a963d805b3886aa88b60385c802bcd6218b29b30d78939e794636ec6b1dd0de4d394e145bd692a2c1bd1ab2b3d1ad2d3fbe55c86060e0a54c5be447ec1831b120a63ba366d09560cac1562471b8bdd71913b2cb782b30cfb4074dd161abd4e6f576a75f352479bf8f43538d92f3290405c33b25e6562350721896b9c505923e4432fe7ed3b2e503c606a08e1b45dd05ba113b0cd2a4d3584d85945bc8412bb7242bb31820d774aa652615d005afa645d4b58ca8739af8898c4dfdf04b4436e1d6f1e70f4f4c0e092639e58fbdfdbd8c54d17f8f984eada27e6425a5e56f4f4f3b5461f36864ac3e0a861f40a2225f761d7a4a242288b11af2ad22e2612700d658eeeb99c78e005ad34894c98b5e862678d256a2872c405fbf0a60bd3e200350d94a92239b2eb27488064d583e3c175b91b1ea5d51fed4513e75f6382d85d0c68c9346f268c131bef5f10a2afa5af88bf7dbeb159dab7b79ca2d5da797e89b32e2d1e11e85555a1628607db3ee08ee1520ccc2079d2c821047f742df15072e8071bf9ae99f505be5f54c2295bfad3d5be30a9ed41672a8b99963a215f659442e742656a73486a45373ef02450605645cfc17982de363273128306324bc79609f49d272b7199ecee17d5ebe06d028688a8be281aa702f29bf62b21abc9f503130f20ff31ff5cab9a5334594c71c6c957b95d153253fe68c8a3954bd7f081d003e95be2588c3d05c1f76a761b86105a6ba825c8772676c0f2ca12053511744cb8bfcef306c545bfeac6fb6c10b0589a81f9d33db5410b7330b146001271ef4f8df1619208ecba4d22308b5c412e7332a0197f84319f85a841f0e45fb972497cb4774d257db1f6c37f771ecee0ed605701305870b5ef16a08aa90a82bf164150229cd2891379c3b08a69db0717417acc8faddcc602660a6055ca1d6a909cbe74d2d7a7dbee062ffc4dac274d003e33b416dfd32da81c0f76929c86a4b3f7dfa881efaf67b69e5eb84c8ddef6316e6bc463fa495acbd1d4376b6943ce5fb505fd5fd7081ed996bb4efd32c516db5c283feddf7cc984b9a8484e9145c0de44fd010fb205f2ce19111b784b284ab978a5c5f897dc5d148eb3e03ab5f1e705838024675f548a663c7974a11b687a4ed47855517a4285dd5db3900470e3a0a43ffc605d8fe1e101dcfddbf9344cd14f976787b283a95b03ac890dc34bdf3d9414900d2fced28cefe42f3281caab236c88887317ef4678d36221104438d5ad920f26104b397e6f36d0b27d361fc03d41161451e91ea135d9defe8c145a594533d8704db3376703d06e91d28ca9290531bdac0619e190b90ed4aa58c71ac3be7dccdc794932a68a411f1382bd985cf34c6408f0521e036c15be080637a51c9c7ba3885c7b3f37872b60a4ccde43594ab5ed2a673148300a0557102176bc413100e74125ad63968f37770a49011c5d24d894609fe6bace9e27755eb96e83ada3714e013ccb305b62848325f37349d7405ba443ec1e2e5b4c479f4759f3e6c61feba0e9fb5e285cd2013b40f7631e83cb8f2ea9d6ba61e1ece9e4de45f2418205c5d45ada8718cc5d35e2eb6e4d914bd5724466bb3662d23eed5705ef4a07f7b4da7ff5ddecf0fb1a7542a06a80d54594b71dfbe850249dc22cb0421cdd8e693889c6b095a84a97ffe4b0afd8c28215d66bc2d4138638fe434d7c2fb5cd61521706eec226cbe186e6fb77fc89054b51fdc631cb547157e5247e7f71fa991db5ed54598ebbe7dbd068e2813fd0e668e38e4c38e526dd57a403e2c063f949387095b65b9f456eb20b260f8a11c1052f1c30021d6f014984ce53da0e4f8fe92706a8b11507231806ad7e804d76c722465b718e63d017e88a03cc4369a9a17536f74f37b8d5d6ac1ea8c5edebb1de7983446d8b68059111c853f1fdac72c73db60f0d486586714ad91d801b123c0fd1eed5509b350ceb59df1ac412f1cd2c9dba5b94197ccba2c6e7580a3323b0cb81ee502d66bd19d2d843b623877de7570aea20ab2d3b68f5491526b47dd03f85fc8b13427781baac67d9f43c2cb67cae9f542d9671d1a8d3abf049182cacf1d9a97ad429149bc83e75abeb4cc62a4972843714331cbaffbddf40e7b7695c572eef678a880df354443e81ba1d67a98595d8b9f0b5cac5ec8154d16558cc3624d411e76ca983a7838be589f147c10d82e69754325ec22c65605b2668d5156f6bbf65b4dca76fe715b4d161564ac830e1750b056516734bb2369386d051853232bba75686b4a847aa05ab0afe54ce177814495d4cac748c337e5793cd23b3f625c24b37707f7bce40d78257f394a9c642b26513f0368ef9869bffe0a8d30ca7eacb971ed92aea575a76bf5ff215a1fbd4e8eb21b6ff969a870afaab133b82016aafad681b138bee528de3f8aecefc67920c3827362d8ed98c7ae2b2e99e5ae1ffc8052adda57e4609036b3e0692581279f2c0153fd4e84bd5ef29c2466cc6860986227328efe3307796c36a6769a8768b124b24b289932a11e78eb5aa9000cf5495521929846106e45db07e3138d6572943c33f3a0bb9a843ad20c38f8472ecd874cef95675c45201a6082850facc28f9a513061168096d8521ac44e1f1e582c9b8b5ac56ed04716a84cd9da3c66399c390be6b4552866c4673684ce62efdb291666b6f19b00f244c7f8e2173db8d58a699cd78d86aaeca39bd9f90d4f2a95319a2872aedb8bc40de1fc78d5d7bab7e152e27e9177881b82c5eaea06198b3c82eee3abd1ad019bc92a5f0c8ee373bb384d3ac7e8fa9320a5d33a64d68e4289b1661400f6c93ffa46b03dcb24beabf5be2da914c152322002feb4a14198dae825995f97fcd32f9a442ebf1c5b55c94bb4e52d72ccadf046c4c872b82c47fa319965e2a08720d790f8bc54475abff66af1705943beb37bc5c9d65dcd21786b589e4bc9fc7d89ea908a4a96cc2f6310e95d14867ed1214cda258c498ece0204d316112dd88a52580297e5436548b1206876ec470641779a649d80aeb6867a5416bbb86d609c1d7a57afd7358ffa6b6a2bcecbf031d0b16b9c2dc271a4be7e3e4196c8858167efe0e5d88f454efd7f43ab8a6941f6421ac97383e76164919bd4da88e00fd8e143edb5095d7918ed6c425be5dfa168e22075d581f253293dba254bc4a0f89cc732a530b0f8fce4cb3d8004ab7a7b88fc49af6dbf020ad4a421d68a53e0165617a47a4f2de1b0fc7b11f1cbbed58d53612ad9e906d84d0dcc06a85f8f3324849494f3f554845a7a4433153b954b592be6730ea4d624e9765fad555ea8c2cf5b466a6669ef39bf5f53c38467b8b3f87ae4110280e1b065a32c185fd42270e5d4f7583c6f3a0e34c437ef17a44571045eba55b2568e4bbfd7a449adae554fc3ffb6d66b76655c6ce866baadfc6ed158c24633c6ae778e71155e142d6cec6a979e58201d55163991eab756d31bf9b9d91f708da5a7eb6f8b8e937bc32d66db1f75f2cdaa8fe4aceb6ce70cce1fbfa78d6aa0929eed6ca5b270a2a33dff982de79e607770d2ddbeabc014b5c9522dfda9544329aa4532d640e78d521e872a193781c2681944014f960d45bf2db0c6a06a4f496ca1bfa79de44f7b006b6515873b9bf966619ac4c0a37edfcb5a9f9eebcefaaa37f6e5e95d70e03478daab2be80f8c2e8479679075d9b231d45252e0e795dddcc440524ce2c067a80707048fdbb0234c0483ea4117e890eae20dc54adf13505f5734e6d5d1e5666840864a38250c398151d2c9a7b258239d5c7d70ac39bb7d31f9cc88bff1f57a2b4808a073f4a84cc100ec8107a2525244d87f626dab72425a47c8affa3739f34bb9e0335e7aa2b443e66d009b474427ba87479206b41272624ebb2da7ad927a45139b556ed0ee2b023a56d60d98f8c54030f5f6846ca4c9d67657b59d2154ee3dbb7cadea2e2c243dcc5aa90075e36df9b2691c0aa63b63c781b042e8aae5d7788c16d66d736e26f749421087d7aea56d2590b04d5886064a95952344fbea81dff847f368f7c6e4789171d2acca522a0a7aa2c916606b19f9584fa8a681d04c82b9554d9db6805bca161f97eb35425a9eb82a74c48d52457022559eb45ceab9130ff668a5c54a863c58de6cb477769cdec6c26dc703f01ed131cb96481d8f9f6792748f6c18cbbae3627536eccf63b2e3c0d4cf26e5ac3f41fedba2f158d81bf9944f3caf9853af14672ef66c9a20fba8e1ddd3fa53074968923ea0710cf3266711f16f858cb391ec5c17258159496d8dfbf5c8f1bf833bf5f87b6840ce2919f32b6579d34c5f57c8b8e1bf6a906b74d7809dc8cc84096418b9c53507d1121403433063d64b689dcd2f5477de6d01ee2d1c14b7e1d8c4e306636f5826b68b01a18fa6d19e6bff03618c807e834648391dd9b9a1990be87f792c5de830306dc6fb5567cb8da47beeb0922fc578df7bac95dc3c9cf313e6f72d9df9756a75205ae4a5dd96dbfb1ef628f53409cc8840c96aad95d3ff6e009a644b84de4f8280af51abe89115ca132bfd589d0d04084639d40c14ac644e422f63a8cb4f0e2cb1bede8e0dab9a515c74a66ae87299526df3f05efe65dc1643a1f3dca3370a03d68a47e6d4ed1da5aefc5e02c11f7718fbe83da385f2b22e4aede1b5ac535905d3b1efb4356626de769fa458e5e5801ea1411ffd0f594b1cae117ea03856462181ef5cfc2f7991a379b6bb4a31130769687c60cc1b4b9af488a31fb7669dd0870001b8dcf8b20d00d17d2aaffcea5636c6c2aa553d4ba9191ca49eddc14928cf128052455af59d883d813eba3f9828c9655a0efbf81917497dfed7edf69937e5a6a11b3528e31bd3052b83722f052f03716980047cf195fa66cf2cf473d116d2003e2a8bed5fb03cde994f3544298fcf613058f87577680e463a027c0218934a272c386732fd5e009358374bdcca615da673d2839432eacbde1742ecaeb0b31281c5251afe38769d6e6f988cec65312aa20e8ff363bf0930233cd9f38e9e2a30cc5971a67683228e968c0f1671e581dcd590123c96f6c78b146a3806394ee5ecd876c4d0bf1bdc4dd8ad010d902144ee37554492f2b4b872ca4dd4e7fe2281a9b22a66c07bf6f5afa0cb1474a0a0632708bbf1936ffb87f9f8fda74a3dd7d17f20d2c72f8f0a0f861782b40f87ed3ce8a70649003aac71449097ad7a52775bb5a798f92c0b93a396999a8f5a1bf21e4441f86000aa3fc8654f7f681a0e5fdbfd798a316a5e0f7ce30aa5198a8628ceeb4655adff686a718c64b65defab09c08df9fb491e300d3a40bb8509a3ce2204e816798f144ad46782747895beabb4aafcbc1541758611d138d7f9da9dffdbef234a80c3f896ad367ba30a1d3918cef2f73c87ba901a4907489f994b9ba482adc77ac9ef91d3268032793c86f80ee722c595bd7918fc01f95ddfcce02883f0d4628b551b0a3a8d7c5aba9c658b9b6b7894067fea5ae65296b6607b5e95cacfece6b80833787114725a91cdd49137b168a318779bfde8be2300500053552982f37101ed86184124405da0b4efe98105172f9812bc3d4616b5d1d10c8b777a3ad7e8a95d4a154257d8afd67c58ecfe46e136c905a6c0a84fba713fb39c29fd5dff61ec7215dfd135bf6f2381b4b8f339d30e82fa51f4129771ecc5c95c4c482ec35f191c6515c71e90895f402c92ae3b31c2152fdcff295a6d7a613065186cf1efdab5151affaabd7707096ced4bce2ef24538420844beab16376f4b98d2f349441d6050f79279e4b7afa9fca8c55a7b3f7b4603bd6bb3f227274f319790b934f76b856c24102a9d24f302f81378c0c5f8019ce1850caa7a318fd09e490dbe2e318232a6af2682cdaa2b593e651101902edbe0800cd70c27179a62c3598d76598ddb88eb06b0f5d5c42a7845de21ab50aadb780ba657633b904f435bb8d342109ccea2df7ef7942a05184b213dd86aab65ee7e17c9460ce6a9da265b1726fd456477f03ad0924b03939f219b48ce455f0e27f6558e69c1fc402011a66e61d62ddd71575196caf1e6a670fc6148e5d32e87a41acf340287248aa55be3781ef02673649f85d392f2020e0c7b8f8a32077f6843fc219dd0e8708dc6219034e6669e875af518681388f7abe244d6dffb54a97b20cd18d0a2a660a73c8dd46676be9feeee8f14a0c0d0fef2c307b01cc451063eeb8de67575320005f5bc7a1316e2177046be02a5033f1b6f9c65ca9b6712866408028e5c24a2e42d3740a209fa2a634adaebcb087325483d846bc3b948e44354841545f6aaf6a3751b607055b91e9bad1263533d9b617d901d6cff568c2ee3a9d51e23daf4da698951b10acad1d73c3cb1d85e1c5767b52b43570358668eabb06fa60b423e3c4ae936a89e813c4a2d920b0aeb62b82e0bea06e9472876804aed249e928b045efd683d29165312d6d4ba15f84e2e80c6733a004aeb333329d99659328ab9864bc3aea14f5e6140da07b53c897684278d8d9ceafaff6a690e4516069f05f0d5c846b771e4d28d4c39b6f8109c0ccd77527d26942579c2c5d3828c89b2dffc75257a52e33f76fe2902e8ebc0d4a355b3e3d7011cadddb5724c02494ce83eca8d9292a4fa8e1aa01daf616b63afcccc4dc424ec8097fcc0c473b356324524eda7de78a280b786a1b2ac664812a18ec634159db77faad6e3f61e8cebdd5fcd1a03b9409a4954eef6be1a75c8d451e93ba8ec67c9c155d224f779e6f9c13e95ac72de79abcb83c9d477f981225a39da07a3a0bb9b5b44180c43a140a204f60a21cfd1784705833637963431048428e26bd3c5f93b9b2fa828d4eaddbb312f289af60107b8b34e945e8b3ec10ec1892d8a23e511ca26cd4e891cb08a51bd04ed5f5d7f4499d9c4f24cc52de655376251edd12935fe6af2264413ab4b2156db29592ea3e75995004a49038e9ce1be5d06001a8a2ba15947b9f35038121e0823eb97fb4971bc47ea2760ba57102fac6f6a926c2c691078221f333c10a7ee2e2acec9fe835e590a36a8df89bf10af6ad21859380b59bc3d68c6244649dd6e386c81c8e9dcda1c764a18d9bfcf2d47e76fd76c421930adc28795ec36b5c72a3706d60c479df8c6b9c99da7edfd88cecafcafc78e6802fabdee37348aeb1ae5443b13346aa7fe6800b793638c2e969284500acad815c252d48e4ca9db921e17b532b082f0d1edec2772176bb1d886d324c4c4ba9bfa4576364e097c63bb906a175a335cd1e1f98cc7036ce4d23bdd4507a2563fab6774bc8f7da7e3825ca63d0a15bacdfe85545986736f359cd9b1924df0bfe55b6a348e44ad96966047e421dda4960196f652b5c1225b87d2a589d62920699b3b5ed6e9007c04529520e45e037285cc9f19a9d983656d4c499e3721f96b1c365acd3adf9638c15ae832396f56213624614f2f50cad3e7b5e6bc28f82deef1ef21e11c152d71eaf11b2d9181281f48a33b486a7a1c0d033ab875a5d50abb5ee1bfe58b45bdc90de1c91cddf9268a65061e86d60a72e81516173308a22c87968c1ca2cdbde2b3a7f74f38c7eb0ca8dab0846bcb89694a33c9dc81a442e5a41655648699dff8e1fa84cc49faa3254ee3280afaa3d1ce1bef94a7df1e096662800320f3da9f898f3ede2acdc7209fe7ea9687a2bd92711ad0002f5d413eba12e044dd1aef080cf90add3f138a94ac03274ac5c8c7d04b7e3158a886eda0914b1d266740a1b7f29cbc5ef6fbb7e678954736bbdcd062f8acfc2a3b44a8deda21989e8e53fe5e0a2040c38b19002fe94f736f612b78757975b0c985a4601e2e6fe604832e774328ef5972dc4ee9402fc769af10c9ad084f8ea0ce31c37e77076a3b95baf5aebe28f80552c03a671b2c4270d67237746edd4f3593983dfc76d11a43f06a5cc1bf3d14fd5177028976a265a16403a929cf23e538b777e7439dbf77229a91cfc2458dfdc6e0254de93c392353012004f9a6c26cec9db5b1dadf7831dc7a8cc9bae81fea00756182ce0b4e9689f6a807354452c4b4ec35f55f26927a915d42d05e501f26aa08cd9dfab697b8d8b131338a4c09f8ab10be9347ced853f573dbdf62bb64475996c52902c49818aa45c1542635b39049b8e9a0cc276d27d0d009444a7b57d435a11e33a2efe1fb96e722de2ecbf639a1562f85fff6acbca0ece12142761b7873afee47f5a724976a72c66321afec7a6ca2f4cc7ef4edce3e244334b5a40f1ed5c76bd3978d15466be430e703d2057b3117b3155e4e08d1e236d07cf6959c8e6ff7d768c4f81eedbcdffcce9cfe410d5e752ccbfa23b1a71dc977eb96e852677cd07dcf3073e3ee09296bae444db67b1b3dafa6020aa5641ae38c3eb8d559888fe8bce1fc3d905f232c833e46b063cdf4386b22bc89a24cfb716f9df5a42d51ea57269154c7ff5ff477c32a2b695d8026f1d552b59f34b242c2c4af4834ae46f93aa9a17e3aaccaf73b6293c6913ff293361fd8593b4d6fff0c4033a8757dfc4134cfedf1ee719c5ace1d674893f5f0eb9bb5d994c2af07e4e6fa51fbeead5b28e80846b3f421c3182c9df626afd02d7bf6da3d908d2bbe86cc5d3b6338c1a0fb800a3dae8ee43bad7160633678ee8c88e4488fd668a626c89f98c1ca80f6aaac293873f3b16bab616041ccd756ef8adc43e5429915f7fec422abfd2109e97668952233c78af5d9e4df8359c405fd3242b6864fa1c78f58c77efd3baaa87ede1277137133f61ebd9279768a9a14215f6524c9497ca7f85c62bf88b33c4626f8460aaa7f600886f9c3daa266fe67eb3c6f39f275cc531a3743548fc9846266af138b870b50873c068e578e74cfb6685027e4e5813e5a58eb4893e5e3bc8cbb7024ba0b30b66d0a5c98630a98b10c696f2cd72ad98bc17b282432ca0b9bebc602675d21b79469805a0e1b153ae848166f0e0bffc41c816d5b17cf4ee3c0b8cce688be1ad6ec5edacc40bb495c4d9fda7dae397cca5106c18f6e6a50af30c182dad7289ef953e2b1383d27e179001897635161ccf837b10ee7ede6ff77ffe72e552a6da27278c080607c634258430f2a223c476e1970571eb1c48bfa81baa0151a76637b16ab76f3a3cc1b2329ddb245b088f189f45cc1e16e8a87f2a1bc76383aa462f62353b80b28c81c38a0468796c81d2b551b412a3f4a6a68e72cfe85641f03c886ffc9eb12f179d975ded3e439075a0388ead0c4abcce8a3ee86c001917a707582987caa5c5850e7e0540b7684cf0f4de1b6e13396de9e118c92d4ae8d2ff64f6e895845d9871e81ee005bbb18b4e41fbb554b10a159dc6d9a82216601981ebf5a457b3d78e5b90475a467874d5b0456af73c567adb763d7c3d07f97b8b7b53350e4d1ca5a98b3742cdb4383e4195c104c6b8639b5a857548a5af2c2433c069acb60d855d691c9f6be2ff7a910be4130d88dadfb7599024be0e6c5fde561e2eb4a58effe46c4ed546992dfcacc447dde27100f16eb74570951962572d317f29ee9a0cf17b2712d7c2bd3a10882732a04810dcc65982aea3eb9ff40debffdd0310d467ba638bc55018901905cfe8fccd28f523db9a4c3a57e8ffb3613bd1480a421beabe759e2ed99d9d3a611bbb03b3a6be21b58c410b5c2bc5f9676693d90fd656b25c805d1029d29788547735fc874a9677e7af33aeae4042e6c816edd33c6c8b9886c7ff54a8caa700d710a880f7c840337cb00c17026fff684424f46178ad46b31a90f795c88b35daad7c2ed7d8f0e2d59ece7abbcac9e73bddb86b7785bace8748987500bd751d79b15c4a06fb2769233f2fb0379fd4a97fc00f7157a4f189d18cd92c9876369b8fd9af12d2d2b5d2ed6e5e1d0ae86889cb77ca6b20ffea1c12965da7f813b657db52a1183c506380351435b2e7d1731ceaeaccfba4006c11778f9f6e365107898dd5d41c1e891c72e347ae03f82633c0fe8023f2ba7871770d56333beccb96cddc11dc07775e09a477e710b0d84851863ca8301613ea8be0be4331f5748af0667022c01015f4aa4361200d290ff7692f8a34a63a19810a32aae2af12f1a91f297fc9c14fcf0e9ddfe0173908503984e79d2033e33856df15879bfb974c0a246192c555d1c391efe24780be4b7232ed19f3b7097e309f1924d489d6592eb4693f8cf9297c98d0c3ca9cd7d55ea60e11656c2e88f0f54cfb96b4623909a2e888347c2642f4abd1824c56671d393983dbddeead3a08deec37d39e8e3255fa8970ddf1a2ee7716e6f7cdf4404fd026f31bbcaee2f2b101b87885de423d76ff6453328e827ce0ea1803968d8463cb0ad93a9bd170e56dba65fd2f5485f5a63fe87520c03db868e097e828e81bdb0c8be9a9b4256163de8f38e6e59d9c57e167df7056fc5aadd9538dfc5025be1e93b46628733b0ff6ecf38df679790b70ecbd65595d33448af841cdfdd365e9d71d6d76b3e755019bc142b1dad449d4d82505602f60f053b1f2070fe44ceacd52633711af609b8c354ae609a0d6b6bd081a0e4835b2fb1611edd167e5a30cfda678dad3760bccef537e1b6ac45ab59403899450458e6ca6741853ce6b66e04f70cbea06e53e557b7f1ccf52b1be486cf75bf11d28c3a8b52e72f4b8290f153e832ede5ce030e9ea7a940b9f589f0bd64a232f8e0ea3fa1faafc96fe02f9ced5ed5c2b54dcb70fe7881b3606b004fe519803c4f43830d368a42a47254745b897c3920c741829a5b6d437a69f1abc380bebd269db6e74b1f0264c81e756850e35d28ac54e867ae64e260941f71d547c35359408e171bff43b55d04509ee608268cf9bbe0e19a0e0dc440aa02d94dd86792d23cc0e8116e49cbb3f0046e4d7810896d6338b1216b8613de169698eaf407622d57e6cfc249b8c02b657f4844a2e94b58b5c54083798d67b616942512e3ee65c4e20c16c775ece3221893d48f29e0b91b7f7859efd6df690876a5785805796beb332e2b8b144cd83462bf7cf6344830f2086c2df7d63f556258d08f2bdae6fd610ade210fb97417326096f0345c460009a5f7d1d540817e80f3c9eb8f732bd395e78b2e37e0476a66ed40a2028fdaef6a1707bb483db8ca7b573810ed79a65eb5fabf2bac1302732f30a44b2628eab4ba206f49f8f6c932489eba08ea0bea3f928cc1174c58d224e3b2ca649a9edc7dbdb5713a70af4c44831c3fe1590da5ce531549942acab9450643b8aec1869a6ab5adcc32a84adba1926dc82a38b78a94f9653b692188d5f1d210bdababd5420f8cf17c3b1c93be7f1275437ab57a98d1ad8feefef05097190fc9b1226998b6f6cc75d73f75b8142794af79ea53896bf7e77224e3f073dbff32a3439f70912f1b7089b88fc1ca6d78ac6c7c9613946f2c5f20ba4950f73cbddf9d9cf0126e726e7443515f3d342a6352cc1e1faf9390cccc750687e61583bca56341a9ff85d1544a198a47ab73c66d8d99352be8abc1e57ea005969376853d1b92f3a1d95621270ee808c33c99a530745c5de4e37b1bbaba6fba9630bf6ed4425dc473db2df4b192faa7b40a48dad97a3df875976d8c41efa0a1471065d7e741c948fe8bb1eeb53bd692de1d3ee4ac1194ee9144d615a5b78fae910fddcc3367f40de5823dcb66a8d84c6807a5567c933a7eec05fa58c4adf30bfc358d7b48812b01103d42aeee2df09c5f09ade13384010ebf6b44c7b10c96c638e621dc0885c27c29011bc2e921f9b832cf3448501fdc8b482848213323299b979e28772c84eb0f20d40bade7f4891237b67f606436a05548cc57104596ab5b8e49120cbff305e5a87d5958ed1c38d625a63c5d945f730d8393c98e947301c4381effaaa04220dfb79cadabf4cf9f8598795f421a743f04434138830414ad20d310f69a05c0a5240acc3854698eb81391f68e97c45ec815d60c536b2cced1dd40d36938f3d172d29fd6446bac7d4092f3562920733a3deb0b9e0e33d578eaef87652dd2c77bc9ff38fc28d4919248ce0761219f9ec05e9ab919495d7ebddd0a51363a6db034e010df45d275e28b2b31f90f3673cc079580393e3373db3a5ac76cd3e941320e05935dea5108dabc79da58cc46261d928e0ae78f10485277a4294b2a85b7a42a8f82c1c2230baba7a32e9a34c6e0c2ab42d2a49520ff7ca3407884584b9db38318e8dfce1e9df9676d0596758d108119711e5725c3e9aa2c22f4500c5262dd00ba2fcec9415b5eed743a083392783217f95767c029445e1f4bcf0e75e117f7dd437a69cecd1fe40555a11000414d44a6a17a4300288fcd5905b2c0c32d1ca861ac6dcf0b61778e382f46b3677ef7392c2de0da12f5c5648e1f3a8c3b9065ebe32eb7e48903e6cf6fa672598590962561d2052347f0f64016d8223cd2a1889124d586cefd57a2107494264d2d735f338e741597a9bad6b4935f2fbe60d9bdbdf164c978ae62412f36049340a55886201c350db2b037bdc7641d85a6638f5d661eecca126998e9fbe93aadc7ec5875be71385975f9461cb3e51fdea74b8983d8c864398f852708b9f0d91ed89591b17322b894e71349e8678362df1e5e6ecd33f12b3425fbac2fa29363af512d38f6b76cbcf08f5fc19a069ed3e98725c871ea5f4432d184c7bb628eacc2713361bb99081770fcf7a66f663b44f00572703f46dc9f0ed0d53a119b6904af5da47d943b4679c13eb1363e9289ab37dee98e6fe1b2e87627de94d660a51e7d9d10d190527cbf016a2458d64931686afd2988962b8c854e1d1f874dbab3061b9c45620ea7c6cb1919cce71b7c7869126f76806ae992d154bb0f660927c3a82a2b86283e98148abce9307831d4346a61e6fa5388b0eac2825391809b1659b95bfe5277ee9787f742fb255ce4298ea729399b26da6e767921f67341726cbc05b02dc3ea0eaa2147c573150c340c91bd0ce253edc4e2ee6f90fc0a4d1401307720b56c56c7eac37dd9fc5c383f3e9193317e2a93cc1f49490f80d10c1524fd52d8f5dc78e9047d1f5141ba1a19375c824551ae9bf00d6d74a4e21e5b9c134e81a331a175fbbb27c82875c7d809a03b1e28c008659de83b206743eb401f84d8e43b13df57176359c99dcc870985d9c74e64d49d6bb0bfe639080ca4f7f31f580dd9257d1f6268a027070004b0b1748a9e84be3c31b8f6946f736710a1bf02d9cec457db1aebc51291a0cdf63cb7b870ec634de0a94ac55a71c6c44567583cd287be7f1b8f5a8d2c27ef748969231f0ee9d679ff4f07b67feaa956acf69a521020a6d4f9f0f466fe35c93c20fda4d8ae096edc6d429c2b15ed4c941384debc6f0a3f7335301e09ac3253ec36d007453adb9a34cc0df0d5dcc9e0b8d6d0266967d3dadb88d7b6c43a9b75534d9ed67ee5de36e38803643e7f8e784311dfef3763066270320363f8af9168c1e37847cdb55a456f7040fd4112a49c77e347737cee7381fb0c70099a7f4cf38b87ed1f30d3c7cc02cec4248cef47b8dcc6659380ae22b92838259fb64ab6e68aef300edbaac8cfea1b409925dbd8c3bbf2c42c002d75a906517aa2e8edd62b9c28e18cb3e1d0c01a44721fe2793234a6d08b6aad724e428b3a7c7ee1dfdf7722d230c7d316e946a8704478ef179144ee80cddeab713f670e76f26de8dff558816a8d1b0b7638cd4d6cfb254cbfb7252b6ff88b12400733cb0b875b56f411d8a1ab12cb5c1a3e22e89225944d9e527ab9f6d2c07122f0436303d3aa19b9935d71f75c1c7d40e45efb51264818becfcd3517b8a44666d361596c51cc32fe5edf61d48cb85949d7682c3981da2a09286003390696870cce5d96f67afc37b69ea0e6798d518f8ccaa6c69a469bd3a152b6cb01f2081c44f042e51a8c94d13487f4f96cf0b0f1fa94e836bc43eeb5885cdcf8382f6962b471ce78d3b7e13fbdb186982cf02605914f188e96d89d49935e2b38bc219da99734ad61e4c88dd260eba444ee6bf18799df040527959d59b2cbb2ff83882db7a5a12b1ab473426f2d91e7826aee9ae5bf9679744f00f88788d11903b8d4c044ce26dcfeb3da5610acd35e5ab91182c2f2d2e1da462aedc550c5eac1d39e8d7cc3e237cd58070543af7b1cdb3ed2b17316c8eada99ec99db14d7bff7daeba3805447642ca359dba9710a8b95a7a2f38587ddf038bbf9d9e53385b5289e3471e597bc17223830dc78044f841df5528c356d498960241e79d2388adc1b0f61af33e68e0e9d094b04fa0dcb828c9a1c65f6dbd323df055532e6003f225ca5290367a4b1a0eb8eaabe0cd8809a01a9657aefc7eb93e787926d3832ab4bbad290ea71de20d0418ded22a0ae041f1a0c0d4a7ac7774bd09a65273502be2cc7876640b7b1eb9638706fb93b8eebfd7fd651a3a7a50c359157d3ef1b4c693a5cc80786908731534a32a9e67722f1dd589ea7aab6c473664bf00d787ff798f31250cc58ca1f9cee59d5960d82146f04d1e9091ca150ab57bf30e9b8c8ae4062c946d4f4256b20c6296b23ef9ea9ffdb9daba0d69041cae5d28e2e56b1e5f9222505286bd6351066e1adddca9fb165b870cfc784622e722c10cb3285cb2fecf60ce95b3d05a2c6e58f28774b70c5131d84d6cbc32befb82b27214f67f8e6f9e0293a2a654f72790da1efcf578ed5ec5c1584ed86b00fb4436708207bf1216b346c1eb56a4424f9776ce990778b0818e3e5997e91ed1110ca4984ab81c2fa90c8889e6210eada6991a8a696988de901d6b9a429cc8f805d61e504d1f649251bba74ba844738193fabf1caaea8cce6e40ed9d8b6e97bd1fd447ad7a406bad519c0eb8d3f959c4c045d48056aa51720739194fedf474518da6fea2699bb1df7e51fec845fcb7627bc109198047a50857bc8ba6e0539ba884d5f3b8c96fbcfb169b83aa011fd9bcbe0e81374a741eb44a4cd201fd6eb56c9ed36172f66ccfd418372dcc9afe3d2c44e25fbdb834a738a94eb20bf3cf6ce151b354c760f422c1e7ca19e39137c5ad3a4cbd9a18b84068d275b16e42321883182bb4e480b6cb46dce838fe91e816286e29e20edc7dcd4ed82f5e445e3721e2afaa9b0db6e9040cfb221821a748c90a64f61aa939064a3662a366e0b689edfe9676daf1770064f6f303c8de882127b70f6f23302260a4ec86a711f276aed4e9a91efa784e50bb66ea9dc8cef6823319f3a1ed9b46f164149b69463c34074a1d60b889bcca3031c991d5a9fff4fd6b24657cba33fe199ff23cc1f2bbf27de43aeaa29b1cbdaa47d6b9d56a7e13e89727ecde2f6e6c7709d85c5466c3a08695277204bb430d4c5a86aa74ccd2b8eabdbdb0d5e21c8828d44cc6156a03216b82271b47491adb596c1c969c1fc25739dc9bce6e4d39167c5b2152c85432fd5fcb8363bf0dab72853bf60221662be524b0c6281dd9fcc5573b91d545557fe55964f01bbd346d909aceff21640f38dce8fe9d9f7037fb33ae1bf6c548ce180bfaed7ba65822f90816c6fc5df63e6ecbd139abacd754e9c07903dd6bf8e6987748f71e0d2ca12c02828b485fe6d36178557c9acd59c4df0dc234147d09f7ebe685cf434a3fc12b21a120580fb4722617ccd19c64d8c9fb46bf0ebe4901d30ab76a76b43f8aa76a51677fd258336ad7b59719db33c32cca2cfdff37abd5394b7c8d495b1695427f012b70de53d421ec9cc145fb4593642d163b4223ab1e8444fa799646262d433afe304f74c5c4a81c1c4addb63097fcfeb5374d4c6fe38dc0b3ef77e680f554d07d7a4548611852567094f8154391c28fceb237d978b2f7ef129f3bfc84a744af568dd0f1976bf1dcb2118367a24c766c2e8d120a348494fbbe2f7b50c2c71a5ae704fe8028da3bfa1b555d3644a3d849d4a5fd95fe27cf837513723a52883fc9169f5f31d65a827e7dc3fa54a237ce2036d5a551102b025b624a27e1ceeee90a7b99b16d79015b5930f40ebe25a4ac58b64bb5567fa3c0981b90673196008c9b1173e8e346eb08b60a76c5c109c8ad483e54d2f6cf9ccd96ca2b25f316414b0cd72586a2cf93e109c25f49e5b378b9d1b351b4dc319744c732782d58a65e874a3fde30f4b22096f0eaf86d03d2ee50e1ce734ab37ed8d22604ba11c50ba38e6263f6bb2a9e3e619ee6f68013b6d84fc2f6ad75d9a5a529a8d2a62aff154c2fce74a5ae1348e363fe4d9bbb6cc3e229fbca4f907f1e87bf9b0c474bb386bdf51f38272fb42094c5821eebe681c41d2144a240563f4d1a10ab7837ca429fda1a3428513b37afe86a181052b048e6841da7ba1a0bfde751999b0117880b6654254bd26dd91092c4398c1c8a2691ad9ed5599da2c7c8a0a4cf7ce4fb09a415f8beac89d08712a574381c24a1eed79a0ed4fa606d290e09f6e797080ebf1ef25f090693eb901fc980ce1de7691d91e9bd1720b63c20597d373f93cf671b6cba12493f2696f47a7ffe4054f459de8ff0dd1cfce9da4783fcedf5352da09d2b6c262e54694ba1ad6bdcd7c9d67f8cc32bfb15a5c1eef9aa563e0e980db6f5d2d78039ca98041a47962de992b5f60a95697cf6bde6e5bb37d70ac2098d8fa28d8eeb4741e183ae6e0d2dbf2c52f5098ce153e3e26487f1a63cfb6e1c2d70834effd62495a7b74341f01c3e448206e26cc213d74240207be267fb219f4dc8b396ceed99f43322fb5c298440c553b9ed229022290f16a03a06dd4be3963718d200d06471a039b04e4da1bdccf1382eb921586647b66463b569fd053b618eec7892680fd06a4fa63124f2a42d30b03064e8ba8b70145f8768a24f8af8a8adb844646de51d044d132e184ed76840547e8649f38f452f01a4b79f5419ab148f8c7dea5baf08ad75365ca56e28690ffc5522399502382b504fd7578fa43adb9b86e0b6d86d16b722d97985a7b796b33563050dda52508a47dba64b0b3f703e751543cc4ddc84d30eaefeb77558ecc29c7a2a4a8fb4b43f627843ebb9c0bbc59a1ba14b75bc92ea1ade8b7cef80a2edf1a6b4b9a42b4f0095dd892a0da3ee5068430e9e61715afca16dbc2ed5f6050f80e9d660e2f66b5e880620270bc420f4c6eee460d38fd98b8739b2959bf5cb506e8118a4850f99a600eb1c2afe4b1cffb562a694e3f50529da6c2db60477325ddb0da3f6ef2058bacdd3a1d1bc2203f7a4734c65b05436b825eb61c47dae02af45f06835155c1d7ac67caf0b0f1437ce9224582667f73168985f004b7f09994de946c440b02edb4af07bc2d126462266676c9f8e1c49fa8ba0681fe8a267bf6cddfd1e96549b0b8c97d5a5a30606ae353649a3816face1c694d4749e3292b2627c5a6ca17350a61be330b0f4cbd09dbb9fc0683820af5901f20eb7a8c067ac126efd6b3cd75498f7806ea7c43ee1a3daf94c8d00f5d8dc622b92ef8b507cfa4953f9a6605185f051396eae030b891b9d7eefc4a13ec43a4813ece7ff8a963748db3fd15b809f0eb705e931359aed305f04609d0206b87b4b5fbc29eac579f184d4be6ecd4bac04f661aedfd69cd11596a92d974ad64caa5d3fe6a3991e9e4391d68a4858b62759f70334f1c09d0c9f21a8847fd81794cc84bfbc707c22588c94452ca7166b3a830ff3f4803b2160f92f4409565fd2b80933a94c215feb66e790dd9dcb635080abb4bd2ffd5e43c9cfed483cf5b27e18422497021413e561541d83ea14cc9538bdac21915cea4b5f77f610e9cc19201b8b11db9adc09b204fdc41e33f9f7b5da690fc182cba46092762f36c702f106413235ce8d09886531a49575d2f108c1468be4472117c8f8e857894336e6e306cea7e3604d2264ce9524bdaf7df74490440afb30c9b8922b954970baa29ff96869a6d8dadba9aedcfe0ea95c16b930c33898dd613326a40578516f93c70921cedeebda0a1d67746b43cf0c2a323aa02f660e9e713413ed5580a550346bc8fc1dc4ae04f91b214839bcb6d7c30aeeac783a73798349735d7f9be3313fd639070a7286dea6f791de7c49e34441b91f7d14ff54f66d42f16f5698b96a0a4b9e5904b1f9d909b9112e48d9a5c978d6a69aa78e7ee8706b4ba944bfce70e43430e697b6bd0238165c67f52e4bf92c9d34ef9d2643362b5798e21a4f293197be845513eec06c79d55e10a84bc7ea7cce2a65f5b6422926bba15ab176b8b505575f2b5959e67efffeb5f2770977b5fe484e621194d2485053a64d3899cc5a40c1934eacfe6bc04aa8b0f1f725cdd31677876a2bb3e85a1cd9ba50d7ed7b80430985fca7261f3917800158a88309067038033ac7c71f5fec432942cd1a0e408abc1782ee8889e056e8669458916c20f5686ed8c116308af1a300541a67b48b08756bb2c56387402861956b96dfc6704bccceaffb4b5b69513b15cc8a0b7ea2c7bfc162c4df7cf3f7221fb6f7182b6fe8eec61e8937ddbd1e453132bc66153c08f03abc635052dfae2d6cdfbfce5abbb406600dc2638b8b542a9388ba02710a87dbf527ca84eb0f33c12132e97ff833006b6677d42d0704fa60eece27c95321a85f5143519d29e04df8d699d563042cf046aaba6e8e08c818b3be572de99cf51db67b193807ce13b59083e7c8d7030db3382d46324e078ab2912ec8081a17fabfcd71b18ed31878f371d56bfa96e57cd63765fbd7afa03e26812606687f0dfd175f1f9112689431d421d489483d207c91d9bbc52ba2ee3b71524b2eea51611faf56e2563cabceafa54a90028944653204d42d1c433a92f96954be705747d3a30bc732e129577f89631553fbdcedd92e8e4e075f0a474e3a49d4219b72d1903b4b183d7acb16c09a9eb21161316cade9ef3b6f6f860565f43aedcf67a89351965c3bc967a4a2060b2d3316f1b881c98dcd6f394227f12e81055953fd67831ae3f4cf4167fbadf630e01b284011a76e21b8114037d1a64268577a44b48eebdf5e8a223b54c0dac1c93dd9766803e24238c0346ed5decaca518287b818902dda94b1c1f07a7b6c4bac1547b7789902287f6cdea6eabcbbe54fdc799e1191370874415eb51f5ab930e878888f03abcdf7db256fd96f6da28086777467c1fb49ccf5ed5220f8549f70f8c2d3e5c26207137aa1cefeb656f21fa6316c9f7948fb1c7a05ccd6e9cad495616f16f1be7e0152d6f35cfe46ffa7c454558780dc88b7d38686eacd25c7310a2788acee00869879a5ed9f76f6580216997ab110a28d33cef566b8a5275f7f256135a09343e8f9afed59f3e6bcc650dcbaaf88b506497583d4fcc4b37a59070f6e4b777f0e6dc219a775da72f8a9d5732ac78d3d6daa93778805091810e66d3aeaa531ac7e6aed6f77ed6e502de81864c4d27a3a4564347788330886258cd07cb9048afbacb2a4c5f25b78ea02be23927fd90fe581e95341a87e81dc0a15a533f73c685a1444294621684b4bb950f6cb8b0ffa4a452fd08c18c6b2db7430c6221ae72b8a9e73e4c53f474d17868f27c573b4835cd9cf87bd0b4d16315643cc32b7ee277d148903bc9ec6a4bee5372d14137ba9f2e2d2b57319bd38add5742bb3af1d0186c60d68c1f5d7593ab76bb10157ef4f1b3091b3ad1c3a49fc5d5ed41d266f2aba24162eef38696de2e382af05831a07e5eac75642117ff9cb7f8452198a087ffee20a794aa54bab96ef3e70df15254e1c6f1fa6e976e71275312366bd662120da1aa552eeb2d114751718291aded2365935767042b31435b6c4d12e8faa4cdff5ea91b5720dc40c736330829bccd98e2038bf7bcdaff7ed387201eb31752cb329cfc41fbf87e1d2d6c8d738032c91c4069475f382772f6a15f907ef56299d9bf27dfa26be890dcdeb8916e808798135ea8844d7395e2505863424293b6ce917aa07db296a5fbf373d3c9b978183f275ebcf5d71e2e4b7772365f69a911db327df8dc93f8ab3c1733eac1bfd9a30389e331d76771ff31ef6a2f4517ef153d29bff9107459b99904501c631f48cff82820aa0d028299a5f681d70a586788996687bdc2a55e5365146d001e37a4a21526415c9404c0924973c86dd12354d4dbeaee340737483f53bcb01ce5fa1609def812903bb3820273065065e7890687e62012a385fbf108dd78d36ff79e54539b1a8424b72dfd0755d879e4ba2dfbd4d3f00120ee44547eb6cee6e87ae10cb6242b030bfda81c413dec3d469c7fad11c6a9ff17c0c34d3452563aece6fcefc937d793c8f305f856e00fed99505baf37482511c8604a75017603b0d43e8dc6086101dcf7701f816fb6b75f1f74f6dd653ec684c6816c0f80df1a056c1cf2d95474ef58c5876919b9675abcd0ac48005d66358f79d7340990f88711768af75170957e627327bc84e6481d00d5ac57b60668fdc69d1f6b06d49b84c325afcf3b85d09fa0d6096376a9e7e33c0e051164e87568e4c177242733e9c4a9a246a7a59f429f1ddaf1cc9d3ea714108dc79badb37d41d6c9039825592a99328bed5e992dd2f72dfa3974a9df6ca42d19fa4b2eb8e85aee6de471d235c7b7626f3b33c88577b5fccab2da2f505c3bfbacd8a14e6eecfca2b87d1ec3794aa1aa53ad5d685d15a8a96ed1b2cf54a4841ff6e7fe80ef6a9d24890dc83a1d76d0ad3060f81c53e1e88c202e9021355bfb99d7d7fab7786383d1159200f4dd672843729baebf675c7461ad52b946406bc66fe935829cecf2376363005276b6cd52b27b2b048b7cdbdacef8d8f4f9468f753af3ef28e552e4e68bceca2e106d2a00361e8c3d73da9f490876d96b081d5fb1ed77a65a3353d1109c87b7fc62082a3c1724e33273af7f6efdb1a9fb011d6c30f925cf5206bdd230b3110734ac5206484acaca9731891ef8e7c6ea90c1a46d838466a706a702c137f0c3eacc9b5bfbac5141ec81aaddb5b4d6e6e76527927d8ae2d2f66a6bb904ff104a4b7595f6cb78502d6a3878846d9135d8443e00ce64a582baa1bf521cf714f224df48af3a56d6a0271b96ed3944fc3776fcf99dbff7f0959f0bcbc789d2846a2591059e023874f83b9488731c886a792baf1917d3822357b8492f4902337c11f636f6036d836b206a03768232df051e7c410e7cfb46da63712543d3ac26f09591970d455e83988a29da931fe2dfc13b7cca6d922d066adee6ee182a54cea372c7c1eb17fd8f979ae14778fd79395c5a56d267cfe19f841f6c1f9d8de58d32f3bab2c78834f3d74c6d84703ea76c0967c6e0125c95bd459709ccf6f4f3ccffb0634c770832dd76029fea655e0014d08ea05b6de7498f781df7e793a933472ee90d9c0f6fec68d49cbbe25bf97dbcd41048b52beb0498285925578bfd00ed004fd870d78e97b014c0f99cd0faf84d184039ebadd14d8acf17b6d03ee4d8534748374286112ff2fe07079c8a41b3036b9a7f54b61cb234b2647f916667ddb6b7d3726609dff4c3ec36860f9dead2f495103cc0bb45457e3ef18ddef04d558758b32599493ae858bbea88feac45dc2cfd5926e4f09119737ce79d575fcd2b8d5bd7bfd1aa1552d5f02f1942c1eb3e543c74071b5b7dc960e48fa3198cc96b970c70046a40de3db3875fb34f2791c8e87f3d3c7392b1f2022c4c44b100fac9bcb57f8c94ef21fa361210c7d336f22d069d6e370d05b6b5bfdc485bdd48471b2c9b3f4123fa019af327873b1cfea988be2918fec9d7a836f4c4ef7721ebd5db8c702de59dab58745f4f04e75221d9d202182ca949be581f5196955c28f17fa6efe9208aa822d6a578d572178876426d1b958be73964091d4743157ef629f1bf4e4a5b18ba701d8b79458c0c8d28ea9cb02f877af441056283ed0b89ec8f358c9e111dca228a18499d72397b9e6a53086386bdb66df6e0227c7730db997c4c186e2cf0b162c04e47f4450c0cdf06303df400cb067380fd160d0bd2085f943e9017477f30d0c006af48c200dca151b42aff554b6739f167fc2327e156e09347c68026857e8e5162f112f04ffb844bc9a540df43ec3b72ae147d06073e4869e0b16b281927d4466f3f7ea303ef5bfc05e56ffe2b386ab8a3a56f7137f15943d9eb564d608b816a5e127d4e2630ea50b006a7146f07a73e5376ca4cd9d153803e32ee6d745e0750aea3ed50deaa6d0505885bce71a596e19955c0771af3a1a676e70a7e25269d4e1d73ce78803ef966add0e6c5da75bdb6ef94e4ca43a460d1e29244ff12c0c71ba3c482a4a9409ff598a69ebe1c6bee38f186374aeae1ae3a4e5c11057edc2fc0871d27b9bbfa6b3168b67dfa069209241f0743dcaaddd0cda493766c1e7cc8e0eac9f55eae28301c350f5c6c6e880a9a1df24618b67f22ebbb29492938794596b359bb35007b1b3acda7b7c8d8fd666b74a875fdd1e1d9c77336feca27fee14cee1e5b73b916271b60d40cb77038bd9c738f40a59fd299131b720b9b9f0b776613b0631edd1450b73cd4bea57092d2836891b442e355d4cdc9bcd7f6d8f3e1988e69b3565a00a22777469002a0f8e115c199e6004520fd745b953bc70fdeba4224eb2c5e8b5b118637afabd9746d3a41141a7092811e8cf9cba59137b8485b307f967b53941926fe01f73b1dea862d6c4787fb8349eecf1efe35570e0180348b4612e8d07f2476587fe9941721ec4d7332dce0a31e6190335db45c495f2a76ed98cc3ce1cbd8ef8a2cb6ebc972ddfdc03414d21057ff804c5f3386df11be04d4ae70bafc3585f417df739f39acac4d5827b097c10d83836aa8e81bcac606c0e8b3741c00f9f142463b9611eece3d2aedf836dd97305bba3672afaab7cca419df9b8ead4f5cd3b17b107d0e21d58adb630ab00d500c296b3ee784740a878afbdcd4386c986759ba440fe7c563a720d351132940e0ae44b1d8530a71042c7ffea93e333fe1caa3d2d2737853baa7a2ca59ef343418393800206a07de422fa1f01ebb003ade8e4598fb0e3ad76ff445327d36655e94c04176a959e65feb1cdeab8f0169f1b7edc9ca028f171e25cb53efbcebd50456b3d4fee32633b22c14793c291cf6dfb8c82b16b90860dadb42a86aa3dea26b92c61745498123e8f4818c577e1b79da928b5badb988496c00ea38ef91956c118b5a6476ca52093dff368021bc1983942ef2beb4d0e36a3ab4b38758ebb7dafb80e5cad42266e2749b769644419cec343712ae7cd4143f9ada052f1176f8131415688c19facccaccd025615791bf4ffad33df58b7b35a948aaa75e618f714693a725a0a70022857bbed44a93de5e8bef41d1567af9866c72c5c6550d0a3e227f88db308e6f5ef7c15bf60bdba39543b03fc1059b6c0eaf4c1a47ea43d2da5e360b7a1d5b96bdac8bf93c3411098f5f3d7dcc297766007f3d0e1807ddb086320dcff277bd6014519f27bcaabe0b9489e18186611819964b94b55729e8c766dcf9ce0706f8fd15385fdf222309a6aeb125ba0e3c23f3ed69d219a3e18aa2af1d510a27c423143ad919161babf96d058ad59f2abfc1b4489083d010562ff273b992d8466142295c4bea189e211367480a142ea6e45d474b5ca664f9c2025303fb453a67be202cb7cf2854d7ba380025ee7f1352152ce2eccea454dff1c3b1f42ee6b8d472094793466b68017ee477bc336854b3b5854560c9dca67ec5e12c1125dfa789484766d7b615af83c6ad20859e104f7c9713179696b8564ab4e98a55b499d812bf771cb3c97a9078c51f40d43606543385c8a8ed61571c644846a0293498132d89adcec04d8c4daffbdf818bc48344ffbaabb448b9c550699e4d3ebe03a3e8e80c635253b51b1f2ec324390a5ae6e86e6873d7fd14c6f045e89f853b0205a882e43c671d96aacc33c77bea8fc931f13334efd3144929009debd5b50a15d896445f9cb6042bcb1cba86e0d7b229a5d136b542e9ce14b7cf3b817fd40fa761b0b9ff0143bdd210c184d522896a555fed1cf8efc5bc95a6e77b1972c518237f862ffc3f71bd8d909fda5b9d8a736c13c156ffb1e18ad1a6986d3267ae207c221306c07c153682f19b21133cdc7e52cdff0f3d27483c30777523e3eabf47a6de8c9469052efd7b0d42b7ced2cab42cc6d3e71b4c1ec3fd0f377d569abd881a84907a4af035c56721f48aaec32d90e848b52b77c56cc5e95acd5e49b2df4656cd310d6a8f398ed78d7e30adf542fcb3a6896b20fbf8e3897b9e568cede7c75b1bc52f03b316f98227335c141ba3ec803bfca15b023708d3a7365485b3838f2d42745004bc9208c117eefb0448085c888243d861589e15a590ea36af96555a5765f070907e30e7134da66af0d8e0bbc43ac420de6cebd93e5a2eaa1623402864e4d21b7df4ef7b9b7b6b8e21a9e863759b440074fc173fc324a3fbdcfccb5e67577fe7d6bf61f39dadf30a3199427e9d98a1e1363b1491bc241d55b84ec38d749b98af597db8e505641a159065cc41833738fc2dcf8a20944b240b72885cc924ef5afefae6c16ddf46f3dd03cda60933f37429d79a39ab1c80b17e686d8ede151f6d375ec6f157e06552fe1f072cfefc303b82a357a9b908672a670d7367df68c2faf561b7e88bdc08ecc5d28ace90f0c4164176004e9170bbdd37646f82a6428729b891ba20f64d106ed3db249a0167866952290c5a71513782ba8997f2f94b8f3b62b097a982d3e534e54d5e51827cf406300878ce8f0a0c7ae628ce40e732dcf05b35101f2daefc7d64103361508eeaef2154a291b3dfeadc72044254cb26ccf90acce142c546e239c76018254cc16420c2c2f496577a9d8a9f725c603a5ea68c35d298e4caa4dedf864c5335297b54a1adfb5e61fa652ec837dbff31a593377068da3201aff624e514389fb950e78450a11aa16a9c91a129df3e16762a817e0dd42a9144db0f94b9e75b24faf3758f10dd31663977d13cca4fab6fd37b6a685a343ebb561ce4066c7542bea89a58e0528cc42e30a66060154fc9f0f11f929daf3f44f19e6e103558b34b929cad07cb2d1f4b0b5fd157efa1c45111c9a3c45ddbc89f8e66b85123807c2bf6f91bbcae70f3b526e2e93848e28c90aacf7ecb6c033965bc85af0824731269a6003ef82a6869e02097ae66cdaa57e915e786fa0e2846e1f30304bd67e4c6e04cfa85fd634484223933ffaafdd020519b1bd2a5155ad3115156ec991d53be4157036552575382c34804fbb01c6597d12f94cda6fbf5b728b5255beb2366a68f1da8064340816d808de687876b481608844b22d91176c30eb9c679a448dd2ca158902b5f0cd1800a44392525f121a7a6626cb99fbbadb3db6fcd7dda193afea3e8b278f8dfbe638512dcdde1d2f3e6f25e6bd35fbb7ffb5ff966934946821595ebcb05a6aabea80a437fc3f73cd38945d337ae008f61289ee46261cd8dbd30cb230fd3c4cb48b025ced09c08db84a98d2f1ea871dc3d6d4c62169fe94111506bae5013f2c6260e5735505797e0ff00cb97352622ee87595547834f43569b3ff2091ee59108f2d2952dd35c8da119b595d272c6883f920b58df6c7825016f4eaf6c812a4abaf6a7c7190524b5badb509587ba8e9c197a3d268f4497feeb547f476b69ac88a7ec7f4a556b3241ca462a08ce8cdb5d3f3a64484718a9dff330b22fefee9bf93138bb6f4eb84d43b8837a3f0b24ca49aab6b877c6ec55ff792f7f357df3d01156a502f97077c9358fc512212121bbe856d36a22ac2db338441cbff8cbd1da86bfcec7a3e05bb572e45dbda7ec1e544221e86eeb5a1d1c87ed84066baa1a15d5eda24e9803bc2fbad0c5085f14c71763b1234e2aab6ed28fe688ab56369877bc68b95ff9dc0347b2789d70eb264245de77af22686d727417067948d56211c6be046a475b3728a46125e4967f091d3147baa670e6bc82d987a9a80fd7ce8719a237d891469f64afb5ecea8566b6fdb2b8af32dd142296906f6512afa0ebe979f47c6408b72dcefffce9c3c17c4bc1944dad5ddd1a8524100146b2f44773736483ca35d19e2285ad6b063046b568dd28a8626f5652f0c7a1929fb7de392f36a8e114cd35614f8f8d9b514d6c96de1e4f6d26e4d1cb2243371d6ff044b40e85f7e6e3d4815851a57506ea8719b7ac1f38c7525157c8f2d7a1c04a10d34d8d3bea2ef79e9f4e9c7c658f758f8747500e29e2b1c8363f8017183ce2b49d6b691bf296fa0194065558daf729536b8762a05a6efa8c0e5b379691790f4a36c9aabaefc34a89bfb4fbeaa06965463f4e874acf235c291ffba22d4300772fc4f8f8bbab9bc928d780e6d230efd66ffb83ab17a6371c3e91300fb6717fb8c153da414b75c9c2e6da078c3bfcfa360594a793b900e94194a8c3fb61e4492f293e28b0188c3de02dedd99d6d25de8f952d49baac0cfa524a00ac5e257bd3421047eef14bc9aa2eb9d1fcf257bb531604148f7e89202f202cd49cb6d2d03847a3cf0acf293007324c0767425bf5f591d527b3a2dc27d1a1870b74edd75bb6ed7b48b00f66ac0f0aa9e388ade2e5c55592a3841a21c92ce41032cc0ac5332f455adee8b25b49c1a676d5bf1a93c2a7c83ed1e129b5ca1304a7cb6db6067da94acd370e75a59ae00c09f4e15f1b30e27d2c8642d3e43c5a3b0c78d78a7e7fce092dfc52a6d0e373aa3d51b63ceff6a3dda5012f9663d85bfde22bbc37e3976d4d88c6365124ca46bbdd157a2577257a5d3619c67dcfd17223825c83741287f7df671913b1b60068bd384d60dd7eebda489173397f171c8129725cc6c2be1d035c89e294f84a6cabf5e8680ae1ec699d1959f14e28dfb46d7aa54ed40023e6ca8cf31f3868b1b12804f4f112a10c497f604949dd9d391f9eccbd0630cca538ab5e0642d4b4a3feb888b990858cf5269e3d854b56ea55a2838ef0e410b4961ba85f68f80fbe57227bd7619163ebd8d601690c36389cf63a0c635c3cde3b6f69e8cff331e59442b855bdbe4e208940f90dcb98029bb4ce6f2eaee11abbad41fc3342053a25d2c53c6c54d079262f88ac11a5669ca7e51d626331d059f7bc3f0879cccd07f33cc160ace85f0851ef1bf4bc49a97a1b21268527b8fbb69af882624bc88a0646c142d643ec62b1713e45fca165ae32c77654607cd40956df0d812c6023c5d76bb6ce1d25fc1742ccde908fbad7f132124337a167ab0a72b3dad53f1240fad28075fa9089f40fc3999a17eae219a4fe74ad9b8b70d1ae373a504dc1df655050fa3f53046915955885ce33965a3965effd766c872637acb84b255775e8c1381e2076cbdf0637220632c46d25455f36b9cd182c25992524a9ef584ecb75f720dc8d1d287a630edc00b4dca8672be9e3aa9a322473de4a1c20e6843e186e409656b2b728d9c5813e09128bdb397a116aeb2d49a4e68fd65ce421001125e41d7c6b516863b5390d7058cb1edc24002816c3e5d4e96d48a645e749d14b078698386f036c0fc60e37ed094e5e0ccc735a665532a08b782b826c6f3771cc362c11f885b3de37e656147e8e80f1ed9ae90cea0e1b7682e55d69161d7a5d28f650a16ae621d2109a6adda7a13a9ce93760c2a470b92029cf87eedd62d47a9d6e900b9d8561b468d863920c6fc948d3013795b5d0b9b7cd1e56a41845bd47bc532e3ccf3d590670c1a2af6a116de2f444b33f451ede3eaeaafb99cd32dfde357e90596a1c4662511948f22e59daffa9e37bb4fcb47d947a62abe74e9398c977b0c064782537d253f2be2ccad4b95dd6e51d4786d200b0b5b7204bc8337ba2ffa2ec693f85917681ef2f2b3d692829c1c18764db4e6430900016d45418cf879089e740e2da897c0cee09a88c65361a1f388edb60ceba3a160dcfa06d540e5eb47da7dd2801ad64ecb080500fe0685e554c6ab513c3a9a8ca8790aac37668e2329ec530d27c5c996d5f0bd9c75837533f39389e4838ea86090421a2d6c43e8d683e009811824955ad44e5213d109010014277ddbf92cbe3cbcd51dcdafaa744a733bade1955fcd93b438d6b823e52c3b0e58cde0f25adeda6a7704ec084eede0a2a79ced7a350f65edd469b615ad3d7e04b3e49a8b6866120a5d49a6c2d11756bed674f3e59f6dcae87988fd9ec5cf454b73aaaefe16049b238542d7a11448557bed318c654f14a0739cd846201a8c36b6b90ab3d7cd80a185ed0670e3b6ce53f1eaef1026319fe06d07589aa1f698f07b834ddb310a0c5be82a7de98aca5853ff90f8170ce987b97f3e302bcdfc3aaffce7e0d37d5fd01736f3fa58dc8bd0229b7b0aed8e16f263789ad41c095cfac649daa310b6749afa5ff80aa6cf4b608c4886e93f5bff2a5ffb82f26d0461a7b212259ded30a7272e2e35925a80d47856439ccf93006489ca2bc09d584142324c3a20e50fb217a4451063a113cc75caa45e8716ea3caecacd6639d7b3a91e08971aeb203c205f5605d6999ba084f92c05250a5e0b4a72fd3ee4d922437fb3adc621611df787e8e84db816d5b42aabcc947b0d8d200b2b3089655549c27318ce353e25be9a79b827b491fb6c7871061f353f81c1b6067f13be9909165a44e281bcfcea49323c8230001eef329722d3bd9a79da6333ae0b4966995bdbdb043d29b4c126391529356e97780aacfaf98b9979957501b80ce9c1481648fb1656643d674fdf74026cf15a9e795e305fc047eae48151ac6f21f9d69938282413bf2a71d108a1da48750ee1af605ad05869ee0b2ebada51d976b7d38d53f5596a1a41f026d137be83ad683a2395298f098d169d23129b69179ac599963278b45dc2a407b474219807b58089ab25f3add963a5a256200b938232e20f055deeca551e193e27aade3c9d249c8109443abf398d023d122643c8062f91613c4790234c07813be08d0284aeb1fa1d9f55f089a4674ecfa11666f6d498253c1fa779d060c72b25a3ebc1e7362d183e94946f3b0b5ec108a9ae0ab6d83d24269581650539605d43603635bfddad3f405aff611e065049cbaae1ae8b664ed223f8cb2f10251f7d13c9a5d5dd0d18b8fc37a1c8bf2a8e8d57f5270453855b588a331431d56000d77cd5fe7047bf70d80d494d98e430a26afb61fbc841a792cdbd901b9b1995c58879a4e1c133c10880aa77d8bcb3a879c56282ed98ad0b884d70e164752eb054b345155a0b29a9ca501541ab6f7d8aa8ea95c0958e4b78a150baff325e60d7c96a714c78aef8eccca50dd9fe94c54de7eba3c9e6c3d4920f85b0d5d62194e8c2e7dc870d0383a7f0e75bc370a06c580e64f854a2ee9d8d8bc7e5920aed976e760472b1d6ee22f517200c137d9e8e197f26409787e5ee71b6781e65ef6dbd5d1d809c19144a64dfbf5183f0701b4cc2b5aa7c46d4db501fd9e42c106b814501f92bb8d4eee1e2484c9f58d0b2eb6ee9f12fbbd40802d324bd2f59678a84086ed32cb9f9ad64def051067d635f03ae59a1ef5b90e6ea900eed0a3eb934d5e09ceff996aa780141f0b5b4e310c3a117e4ff462bdecc52d03b24aa6a0a38d319f52a2faf0d43cbe6fc3441f16485311c43800bf5f33b264fee6762fcbe414c1962d46b6bf608175929355661964fe921b9b99c0ed12391d967118c0daa1abd82c58250ab809bbca65c1af3efbb261f16e5c56ca5b992dc98d3203b20f1c3d8600f17727aa72b131be3ed2da05dafd106b050c7808947fff98e541b141bd5c9e97c4e0b1bf4d8a82bed42100bcc89cd4cbfdf3194ff75bf9bbd9fd3af64b8c36f3b1db40b69a0d7ac031ce89d787ada6b8555930eab55a143c255424c71b632b345d67e2e9810c38cd9b16e39779f2f330aeeef32532ea54203756141974fb9a4fe21f972f96b3c0a549e88f60e5c0ac88126bcde2b243dd41e88d0722a7b868d37944d47f87207b5ba44ea3a7e851c7f4d454dd6786777bec6d7fcc3f938dbcba41ae017190cab578f333483427cebc27c0f17505bd8a1b0fd0cd879e886880529c92fb81282c1eb9357f3dadd4ce08fe2f2c9b87a53350fcc4d8302fcd4ee32dd7079234c5a34a5228b25277f107ad3ae3dc8b78757dcfba14e512ee38ffd92a0ca70cf8b3b031ccbec8eee3d4b0b05398513233c77ef3e5e5224c79a4a899866e52a1e35688af698d418aaf5e099a4ec718b5c5d7593a1e962f53f7235e1e02761bfd404e7f0521e8e434d0690bf8ac0a13e8a3aef0c50900036e4d4878a8169a80c0e658e95624b8160d945af1db68098bd8299912dce4509239a6e0ff383a8fbe0163f5e12bfa493dcb0fe2bb5901f49c42eea36b68a2cfd42348f693173438bdc7f50de7f025960d38dd504a0a97e68619e5fb29789c3741f0bbfcf94f81bd348f5b394e7460c65bb12913ea8b18c29304526120bdd4884c374370ac30c97c03c9675a646d60f964a714307bff7e4e32dd8a16280dc56fede49e5c49cd61c2515b6fa876f2328765215ee668891ab872338af4a7e3bfa6a9b82586b77ce47e0c1c836a1bff2348b53965c0bed3eeb994c9518f71dde0f23cc42a2f365ad26a745a7aefcff436a0919b76b9938a1f0789151d94983d8d9e7bf2b3b350c5484afb55cd8c68162f5133096b4ededf6cc548c263cb83698493ac7c8075dce0c5426dc13faede0d2855ccd995938507c02aae2eac683a6c807639735fd2bc12fd7470485b40c065be43907503aa2cbcc78f09ec2d92db7266663d39d61e2687bb4cb906baffe20dc803f8da072ec7bba4890644444a414f07412d0717df7daedc38ee0b217705da9ccb071a1d797e44a6dc94aeb0240bf96f8f8e6847b8c3b94ebd19dd6ab6b605efb17cda11d1d09d165a715bad71b00aca7b74bc16d4a3202711b6f3410c35a933516dd487de1c8f17fb9aaccfc8c43fcc7244b6a4b0f01ec7bad13bab4cf3469b3f1756c204fde78eca78b8ba1d4dfbba5216deb796473210dc8895606e1b419a5d49c2c474eff72270b5cba1c8dec5f849de10443010a0a8201355fb88b461013d190cc115c912476edde19a2c45c526c770fc40f9dcee4f80f2c5ee7d0954a622583fd69c5a1358659d2fc1e5954bd51c5ba4d0846f67434763a052d68c289c648af81e6e80d7c8ed159b27a9ee49c4ba7de0b5d0489bb2160a997d9fbdd2fb26fae90f218fbe5edb1a3f9b4093d4b31e4fdd1a21bbdd43cf00d26f5080ab3cb9dc5826c2af2e7efb5bea354cc5a6c4deb09aa71ee8c4a897cf650d02f6ed1c16689de62b481087a0659ec0b37a9f686f4a69e830f3aa427193df28841b3a1a4824a72a11fd51418c1f13e6f10a40e3866f74044ff530d70c90bf5d1961167ab4ba78c0923462590bf13335a3062e5a40b236c4c0ecb854d1aefcbae3fa68e28e03a4587a41b9ec53f99cf302b0b5756063fee789f8eaa646f97c3d4ce1fd81f717d6c474884e2679db21c03ff642915d6d70ce79ac309b56f19e1aef5705c985bd4c86e5011feb85754905d268e87b0d29036b193039d515c6b1dad65894b1419656ac2d74ac96907acf3b3e53dcc81a05838cf12779d306c87a43107122984d1edb0280a37bc7d94f20fdec14f9afa31b9073e31da803092cb312e1720ca4c2a6d3909c7d953b48bde0e502d43d7ea41b1eb98d3a3fe7652086882be111c0812bce660df907bdd3f9654862dd4a960f3ef484f7a6fe47ae7316c2c81ed522fb176bbdbef8631eb15c3aaf405fe600b5582d14fcda697c5991f6e3e33b61672ecde2630c063c4751849e2ffaae7b8d5b83b98f307246bc5864af14a0b2a13565017b7e9e1cad508514038c0cf69882ad2ddd323ede208510c43f479383e47a6ae01595af14d3b159458f2664f56ededaf6afc1ea72c70e6a6c95d5dfe960324029a0f195714e7c7a5c9ec36489532713129b4f49d5cecfee2516ebf64dacbd9564a34eaa7bc4a832d33e1c58bc43cc3885e155cdcc0c1220af1bbf4d3544cd80b5b7d5e5955f73585bb1402c805a157019141a3ad21c977c2c719f8fac09d93ab4096ed1b04ac8b82defcaab9b5ba46b679c64a87ddc4ce660d7ca1611be28e538dc5aa09537c0d30c21e199f22c85980335871c22f2115ab4831bb62d8c6c95fa052a9085dc2cfc2e27085c1358ce8b706eb3667a428a2b1b9e811d567fe52c6d6df2e75271352cd313c61be08bd153282ba1474879033744c34d638b061ebc5693e230aa3403219cac148a3c1adc8ebf2485132c8669bb10844b7cbb7732752b071f82bbe57d8fedeca3aee4798769df64574dc81b4bce3ce5abacdc88a96e5df0f0f9d44a18846f82ec6cf4c299e695ca69f47930ee9b4bdfbf3bfdd7dcb8738744bec8acac3f8c5112a932357612468b4e7e8b8174e53ede82f45e64f187ea9a771e2a58692335ef9636e6b21d0454ae0eb7cd0b106f5d44f53c5d126074940a78b08620cd7d7b27dcfad540bfcd828eb001ef93475050e446ce2b290e14734d3283c1d7b34a927776ed188ad8bedc5c0eb3be1f4b582b87d15773d7f56dc3ec4fc09fd972389e934fe0855de699e89bfc80c77a58f8886ae39670aa5e0a490646576780058451e09839e62ca59fe0a2c03f51b42f66bebe59ad8117a6a1b8ccb38b29b0497eb1fa8d098a8ce1919a1ed767e7a097e850270bc1fcf797ab81031181f44c4ccc8b2e07267fb8d80fd28d0a1ef755f27f413e022ec20557511c85ac1db0bea5b41101dc35780e29ee90c3d9b7f4aee15c780f88d53b61d5836fc0fadedb73e60bc8a715d6638f526c83692ef6bdcafbd6959cfe536210dd38d9353479bc5d13927a8cf142cf63c769207963709b8c8fd5b2588b27f079a810e1fa435cc96f32d329cfb32e73538cfcafc39be9581b79dc26ac911122e90ae6a33906785325e7dcfac249b0b44d690b656c688a6963062f3e75fd3c4310290b95afd6d96ff91e5b086cbc7377e4a9cdf06abf38f293ebbae6845df3ca82c134482e6ffd29efcded9407739659ce6d5231094288e19e47bdbe1dceea00380556951b16ebe20abbc9868245d954648971de69d3fcf1bab8539c78b376f40c00ef8df01c7d8bd45cf644ff5e12cc25f6c762fd7e9990e3806b994444251240918f69bbae6619dac5ba0656f0083f33d3a1600daff52659bac0eb1fe493caf8f390c59deed52f2ea10b6691b2243ad4f5f3bc35b352351d9cdf541f4e848cbbd747524d66cb75e43e0c8e6e399b9af209c76ce4966bfe79ce59c24c8f7ccbf608314e93c4807d95b0f4aee01505eb9c42b6abde47f94375cfa1ca23d17beb79a9dafdcdeb7871dff5ee788ec8846f839a63b4bb0c25b862673e0f15f48db1f8f88ba56d5013f5e238bd3f5384e9737ea4038e654b6355532d483105fa47488baded6778a7bcc7c41a3b11bcc0779106ec62049e9f70c39f1b63f1ce4077fe2edc34d308e516c32e100c798d9c41edbae5066a78416b4d6134a648bb8c8da5427192d4cc8ab2bdcecd08e43c1039e3dd6f4c56dabb42b2f83523c40de393dc0a39e93f834633b5d3c43d9675f0652dd3e2a52b02f3f745875f00317934aea32f780c1885e0f96374af8cee94c0e959a8b15ad4fe7a676f764556b3a7d7794b3d14094a3a7aad0f692d43432e55bb4d889a6ace313e988befb543b6b4d3d032234c3b9ca01c3eef707038fb884644a548677651d573c8a462ade9bfb1fabbccb7003328c9963a00caf843a71e334affdc3dd01373e6b238015b411821d49d17308da8d45aac9384bb611fc81ed2cda1df8015f66c8ac67e4535fe5d7f57e005aa2f04eb0e9426ab0d3e059dead5c9730e40f4a674644a3c671eee98b676af57a5013a1231c6a8168d049fcf9a9efbf9cd38fe2211c0a739e8988915a7788a0c8780fcae261bcf0f8d0c141278bc1fe0a066abce20b654d9090ca659a723b6e215a687e7e239ca30619a4bcc82424c9bb323eeca5103192653187ccefdb7d951fe90864f6e567241e2fbb3c5ebe852dd53d9fa0ea62ea7eb11fc735068ba500d50bdd58e6840bccceeb420519aff54e4734025c4f8ffc311d1076ab1988efb6101cd232c82c151b1e5bb91e0a930f32c2832f55a7246767fe7225d5eb1e198b267e0b202024c67902ec6f50ee712c3b02d08d5d214eff840ea5fb9c5cbe4f1ecc07ebcd041f92887b0a4391e578cf4a5608dfbb7316b698835a1b0cf74576311ab0e3aba2cd8581059b036a0af0451a8437e736df1666c66674d53b62c628dcdadde1392c68bf8449b465281da67fe4e7c996273d0cf42c5e4135bcfe74034baaebdf839a43918f4ea55e0f376f8af755540f27b1d2b094651c1d9658fbd9b037923606f6fc824333ffa9acb57f22eeb3ca77b4b7c3c1b1d1b243e96807ae7223fe978ea666e4f199829c1b002fd64ca4496d99265fcd5eff100613b0a0d4ad6159206cad98fe8517570ae32336e527ea3b9012da2de310346178c5ff3e70cb571236fe5afedc7125dbefd29575c9a543282476bd568efbfd035ad50f215bb93b18d7bc4e1231ccd5742890a12818e8df095ea65f01850ae0c5f276b35c4f86b94a48caafd773ba07157d9bdbbebe40b7fd0d298ba9b9590b7fdf3eadc9cd1a2bea74659a4f74f2f3d81d45edb838121a6d39b6e5153c130562906977bf18757395bf5ec0ce7f8fb4f78c2b7b25bfd79cd2752bea32d4ecbaffa21e79cb52edcefaf2a7b7e7f3bd1c046f4b3b2d2d5ce84ec83aaf3cadebd4ef099583b49989831fc59ead9fd5c1bae74a30e02886de4fc1887c25af419460163a4024813645f33c471cf0d018042ba44da68fc1c494a8c4c17c144622faa5d0a3b1f29ec34ac8d12b6fca1381f3f88007798afc7317c2d2fadc5efd2be193691b62935585a59bb605dd32e63bfa842559c725db5274dff613170ef701bf32a3a98683a92761a9e0fb257e29c727016c0208cfe3c4ef8c2ffecd8ad8925de18943334f765eb70fa6fba7dfefd0652b30acf6abce13bcf5eadd9f8e393345ba13e2a10a3da17def65aa9225889fac7d0d7896a752558405b3ab3b82186cbf9aebeebb964adb0ce9f5a99adda6a8ef7a63fa4293d2b31db6ad16c874c7d1168e962aba2d99bbd19646254600186939b717c01a8d929f30bdab8eb0a1ab348f142387ee7917e05f59b172af75f54ca6df2a6cd6444ae6b8223a3293897c4bdce6b0e93be9233f3effba916551914f0eff082e1ae2dae429c5f8f20e2a248e9e35d8cb67cd3583ddd203cbc9f6946d3beb25b230c786a53b5cc39229970b6bd1bd15495cac1d6da920bdcf05c1d7e09cb86f07614b9214ff44b1c7d86099c5ba2c83a6e5dbe3a0e0f9f0be3d9167e20ec3e710e5dbc921305e4fe90cac624a6a30486268b9de191e025d91662caa76444ae8a2e19004f5f354018b5c5d9ef710c8c47f25d28f22ea7c987bd92c3b996d42f83b7e536ddcd932dbe919ec53648092cbe02609a2749211ac829651ede2a701f6705cdc7ab45041ea6cf4ae243f8a2f2caec33266c29828e8062610d09ebfb5f45f9f04cd341b8a9b53e59db3871e6b375b9326e4311bcfc2516c855a71682d37b3d7114a9a11c0763d6be2f259e7a8481d2b40c05610020a47069d19c5930e6131714a121e81997a531f2b36c3e6441113d5f0ce75af71ad6954ced9234c5032f56f02b0315775b7668b30e7ef4fc095cd4ca70d84c18ef8ec2412b97b04b1d8337d71be8814a79e068f83bd904d0bf71761fab2b2b1a073256f7a209784528e7488591116da7bba131980b667f248b0f55c92711e6abaddb46307adbae8c9defa2b1df091c22105b9079a01acd795784dc42bfe103839219c248711d2448fa9a09eb0c17c0570951453cf3f1db2053a5e20945394a564b33fc4b59deb645400ec6d2537d86625cbcae8d5032636972d20f3bfde07f89ce02707c975908f074614bada1917e0565aa5d9cd503fa8feb0ab4fa208a9126f95c1156a675d5dd1e7cf8701a9c3f67a06d3668f656fab6b8117ac65b58a33f0b0a34c0929291aacc018973948a7865309efefefc1a6ab91aa2aa074d3cd9fc294e295b7ea81c61904e07971a73d3e65baa7a0f81c4649413b4f1c10c1ee067db01d6931eb6ae427e83515f6ae6d6130cf77c9ff523bf78ead0d706a1d7817e8c3ac36d3d7f521d30a383a97812af0a5090881b1d8cdf53ab7761ea87ffcd340d836bc2399b89b642bed8d6e9b40875d969e9688e4804c4a59186113083a1d612a4c60a82d3f307d52fd51c99dd67627e2f641d366472f9eaf67397801197a7b3fc55a61fd2132d10eacb541581a4ecb9a5df81d4bf46fbd202c9f25055aab7ed6a33f928208bea9ad2101522db7677279aa98f7b78e323783843b8ecff17a21fc4e4a84d7467a8222f6a1634a13dcf0c6439aa139e336e3bf7899495a344538dddf5b54d515b92d82193e8f7046806cdf49171d8393f5a3f3f0c9b005eb401e1249b2e80f4fb51f135e1c0ca862db47378a5abd9a4c9c4ea852214d6525d3da5c8debc4e945e8026fc5ebe3f987d222f865ced7a2ef40a679ae64832f6de57ca701a61b6eeae7d35b7ed569d0e510cd0e0225ef2121f38269a73672627686f2387bf3fc82799d65f1840c15e65c7c84ec71babcec182c95af57f7e361a5615eb0fb0872bf8a0c0e80bc017b1d0b92243d55f016c743bc8798383bbdb13d6e03b12aa1c982bc07f9b95b1a0f91faea76d73e6b08114c197c0a7db8a01f3133d959087df5d6fe6b843bd24204c7053ec2ed8fceb947205dcad859ff5898bbf695c115524da7034ce338b8858f4aef21f0c986cf180ccb2478345169dc8d0f2f359b78024074c0c63bf14f1e6f2eb7c4b31c6b3d1f6a344f8c968010006d0c2e438eaa301ed49510fc1986278767c21c4eba4f0e9f9e4f442cb2e2d4a007b0582088fa93b28ef701a15acb3ed68ed95ac2de66221605cb77a1809f9ca674216c5bfd052536c5a0fd01d76d863e3c579db0d7ca4f0577ebd440220ca535f80a39ab4785cb0fdf270a13dfda83eb419802044f9fb3bde7c3c8621e7992b01b3ce9523d7c6c83567fbcf60837444dfeb48adb1816a1448ae6fd3d0c112f9d9862900ad3b02f502fb67ce71f2f3901a61145ad64a5785be43118daeb7ec0068b15917d5fd0153652681dfe3586da651c2b99959acfaaeba4fc3861f397c5aa39b6dd884157898f48385ba2a761a2c204f8c3385c0ea8f8c1c2326c9f3a44872dc2bf08543bbba580f8a26405724f95ce01745c7946b0ad9d2806717b7a2b93283e7460aca19e1d0b3758f2103c6e38b5adfa031ea64e41670751ab9685a0c3432a32525b59a2cad2a70904f37686c67f0865afa851fbb110dd1f52209259e3b098d2150b36f7ed429de504e34c8c45e351434fb112c2669749bd709c8465002601dd2e67d998c3fe2445a299a7be315002eab348d158f110921a3e9288428b45062d5a7d180427cceae3eeb54634ce11c8698454cc195d1fc45b48137876c721242cd38f785a12cd16b002799dff64cd0d6aef5899e33c5d699cc54cc061cd123becfa0dbc81385a346ad71f0d64296291eaaaf870732dc49e5b329e1e1795945813bcdb8ab69d1938908e355e23d312501ab003e76f25a5b2c838cf5a068074442010d4ed288ed936c7099623092449f800d1a9d6ef956d95eb64c830fbbcb93c53995a89f29cb97c664358af1582a166a05555d40273d2131aefb82df3d0bba874ffe7b74def0431c365c675fb2f03c2e6ea85f020c4d36d7407100892b1f885a1ac20a3006f6eb656d3618b175da5d0787349e694e1b289c5549bfd7efd3257f0ac49eb5390be1266ef2aa8e83de8c99c7baac5daf0ec98f4c63efd89ce8eb06e8c591783a7110b0ad409ad54527aa76941fc96ccee1b4c42060f11a37920e85baf0e55066fcf1a79bd559c0af9334305eef7b817525a7d8c8292b710bfb175b244f6e1a3b97c63101eaf2c2a136ece0a0d8c87bdcbc21c15669ecad94bf322adc5387e082bf264e2dbeb0aeecd544584d2aef8f075f6316bd0e6304146f4433f6505f985706e14ebe10ddee4f6ca851605eba8c1d19ae56edcc9f04e30ed8af5efeceab4b91287839a58cf0b6a98961cf8c626b55cadddb379aaa63b297d86d3df9c1d6aa9b1329ebc87b07aa6e46827ef3fccae4a64e7d7332a7015d741b38fa422f19f5f06925bbc4fa615f52da6aa4757c392bb31318789509e0b208bbd540bda1bf6b73c3dab96ceadd18216119df18426c304e7d77e485daf9a32741aab2b150c4c698f6ba2c95c8d08358693b3d863dca6da7ef57fd0a0c307f99a140eb4bc80aefead605c996cc14a0aa165eac8e9de9c540097eb0eeddbb8d9a044b1c1b2238e886439c9dce13ed4b7d14108fa110e37e72191c6c4152d92f5d61e1cc94cd29eb9f85b6e51ede92f26e585fb955959c0ee7e6ff87d5b19bc384e8083790e84c10f8fe979f6bda7d03c9b45cb5e6da6d8a21c64273c2201e0baa3ece55cb2758cf6d289a4b1e83b9c8113b8ffcb031c095f2ff75b6e442827bd9867cf5634f2a086ae028a9a38ad9ea7e6e81c6b60b8cbd0288851f58f06eda143dbbfe5f3bcf3e72098aa0ed575f717a46d2271e0dd6484d03cb1903fa00d4cfe09cc42478ed3299788ac9f192a25623017480b3ac8da8a21e0b4a0bfe5fbf716fe854016b1e010b346a2826c18ed6cdc502a362646fdb253557035b4c699cd9ae27a9a50af38a8301a2cb0bf2c7777d175db2bd71cc4ccd460d0f24db2271d647441ea327a7f8d4445ceea17b086f6e17e86d7b265aefe73e708f574be891aeb0bdc7f544c5c5642ebb24edc6c96490972988f6c86a97918a92792bfd830b98e7c10a76003df0ac3946e0782c8ad504fda1aeab0432e240ff8c409d34a65a42fdb26c670bae8fb9fb184ccfe0413da1f20f1dbeeaf6493a113cd1eb4d6cd84b6fe3a7ebb2e950ae41ad1902f1d8fe73eb87f1738255611d5afdea1802eac7ca5293e88af8ec0f407f5a58294fb080367509fab6e9f191566f27376cbbe6bcc54e788bb23ad510388de4dadaee8f47df5a7c5f94053f25ab08363ef1f94028bb665ad6316d9126f5b7b3ffb5f18bf114973f65c0c23ad0b276e47ef7c7a9321b958feabde1516ce71d90e9d9e3b2d2af16b46f0fe641755769b078903eaab2ca3560a06ca0f814155efa576b08979d3e4b6da7fc6c5d515a067f70151a25f7a2409e113c500c3a98967b5716b604f2868df1d9257eab54cf4f5e139f5ec653ed53f9588cafef811eb386f386c377e4fc4f34accbe9c5f79cda9ce08e0c13d9ee8ed972a19c5feb680bc5ecec0322914a2134ce563a487afed4b17106e50a66583ccb3b22ae790acc51e8377dd39495d07e66a2cf54d718045daf4b6d3e8e4dd54cc53f9d5bcd89b3d15bb2f3b35fdc2177dbb665a94c73122739e3efe8f91d80a1d46c00b639d01cfe6e0b0af9357e821c4381e9f3e60d607439e1fa22abb56b26f6c220b099421850d35904856d9c6ec73e0a518ca2927959ce83c29d5db31abd29ca35f780b64c7587362695e8001429a89738471b3abd54292cbe91957d06f707ef5c5b8b5172ce897f399ebcffd72db8f05ce6998ddf345bc729e387901ca064e514c8003fd83dec150a39288fcdaf378a1f192f86674f46c58256327e3b19c8d7c2cccf5bdf452304ea1eaaca41f923c4080dfee6300731be0cd59510ba82c9792db520377d77aa7a2e364b1e321771653f8e1893eba2b2bc4fc1444adfb6930a0232038cbc3058fab0ae6d27d1fbd3ad14b88e899b73f45e955bb79568141ff45191f8a638abfad44c2eb3f00771bea878359424174b81a76e3618500619eafa0e875c00a55a18e6640dcc8eeddaf6e78211dd328c421d632cbb7a00decb3ae19185eeb2479bed065da3414c51ca756feb179484f8d05f7e68beadf807f832f816a6fd5b79b0014a20a38d82385f736792c58c8fb0310a837b241cd10e3741583e21f9602713ed7b998710f7567bce1cfac892e0db1a54ba06966d2d74cbb8618c57678c53102bc03b10b91298c437f3c712f929f4c3a81e6a44d97b2e4b9ab5e969857293b710627bcd6e939a77ca2f4576cae14c3c8e5c51be5ced251ad70d216211149119431b51bd9166320afdede1d93d8c8511b19f23d448b9b4b4993b64eb00c48ad64622baf72034e39d1324adf74f0118464ece928cd6da2dca5c19c69a266bd0fc024d386b5ac26a427e57e0ada436d09775220f29b6db5427db6dbfc707e34837517450a9e5c13608cd8454df11594d16dec5523acaeae2702294abf46447ed4bf50e0bc3dbc2e7e223ca07e4754b82094732d6c4807203ae523c4ac736cc4bea95ab76353e0bd65b58969a89bbf238289f9d5a757c9ed8a2d4bf419121dc04ca908a22e6aec78d14237ad5a32d11891e6ca661e57fc4f6fa10539868a1014f19c419a42f7b974a190f3c212d7cd565642ccab3efcc70e643f2d53bd07063743ba77d16fe4bc58103117b0cf714ac1064adecda146aeaa3b7bb2379f0eb6a51d74ca494fb0c9657eceffec9eab153a2f08f5ca6efff5f1fd7fe89885f7281d8352898c0ccdcf7282fead0add93eb0860c754ea9b94092bed4b97dfe7909b08ff0afe93f5d188301fc3f5ab3dd7859fbff8cbdbcdf0bbdd8cee8bc594bc1520ef037103a3cd32f26ba8d11f949e96c96bf82fd78a6bfb43cda13ca79069eff84ba9c93de084f5a8e3a20b3412b1ebdbea2fd0ebede6aa9a8dca316210e083733129aa9dcee43b162baac9b715842122f6a33f530aad0c552370840798d0472f0e3e6b2e9320c7182b516a0131377d2789644e0b54f70ec6241f77a8fa0b8a8a48570ad3fcf04dfff882da8d63791127d0e5dfdf91f0329759253a7d10cf979cd444f421b20b550a2e58b650bff1bc2f515d322ea6922091c1d808e9489e8b2fd444e8f3da08f2a641203bb284dc35fec93be5b3c7f07f35b192d7d9198e6135aae202d6bb55d2af4fe3bcc4993876543a9c28be6c897bd2abfe7c062ee50d61d2c9e3cee8ca80134267838aa3f5d662b970301a3eb2e41f7d0f6900a6bd9a413bba0761308b1bcbc409cb62ebe19a9aef582cf73fcd85423f64d916aa2726e1fc85d53abb8c8b256c7ee23db08d0e6263a5c3e17c5eeaf80e5a16dcdf414bab69e545f8bed1dc58045341a5cc8feb4c48d9b6498184674d95fe7015d37dee761272cbd0dcf4c81ed7b134d7e04320e0af4a850c03768b96bfac624abec4d1a3ff619a58d8b47550453eb41b364fa5d51c181ba9f45804d64b9cf6f2b0da05880a9ac6bee936762609d847092005c6f44613a4e08ccf3046b7a7250b55f88d9eb97133b13e8b9a54eaa497e54c0169f636d82111150d75d172f10440662d04b59cf3d336573d81b52a8ed10594d6abd8213254497f6b0f076e7a4603dc1996037636a165379e23ea2d7ada8a192371d47ccbf60b7383b2488acd9325e6247d1080b0401ce1166bda98c960d54cda168af61299056a819dec22a8789d2fa4e99e110e2ecc9b54c918602761e3b2d91f5894543f79bc4b1768c2cf3fde5387522eb8f48e9bfdb1cae8afd663b4405b97ef9372fc46fde990ac3e452e7477c36b0e50242022ca42256be3d1d19018c0358f73d23c5040d506038095cef8c1e5e6da0222ccb139651c65ac15d852a2c856fcee755a04b322bfd2ebdeeacac4b0e1d81149261776bf1504fd74c88166559ae9de7bc797c0fb8b0e04b2281836aba9602e9ad86e2ed672fbe017c59463b0b97d9f797f09269f4d1f9b23e725215d6e2306a2b1fe1e2b14b7fa8e1d2db386b51c91102e4cc3d1aa61afd6ce73ca23a042f3a060285085d029c9b24671bfef4ad09f4025b2e06edec576c28f7ca3b8538b2419d80e3211566d265e523f061260d08f9da41fe0dbb5aba74ba716889efbf836e557b951316de176feff368226a81893d836b47d684dcbf864bf0e5e7640b01c26527381015110eef7b28362578f426179c6b598afcded6a952f8f731d6859dafa6e3ecd472ee94aff04b30484d93c8da436a47844f75e5e66db2b5180e0c5ccb7e9bd7f5c84f389fc463cfc11c4630f38f0867e1eb28c382edca1b0c888c58c84640a23a241dba337412b211dd837247a2c9d626b46fbe089cd189b30b373fc7bed2fa0a7e16939caf7d1b81526375f19439f2f5524216258dd544f60e1ad2f46e4f10eb46656dc52c787033b9657444b638ded0a010804ffd08f493200a67780d921a0814e1a728c731bbc670197f23cf6601ef4d5ea3458cf0254ddd3568b243edd0d4c182d271d79b2b844b5dfba76da7872142a69e555c00c69b31d7d2ca6cc5efb59dd936f0ecc2912063bf1e186e1ddec764bf8078e090acfbe908b78f27f6b9be68764ed9529ae40c952c742d3cc93bd4bee1cf3c63c410c3d3e5bca3d52b747d4528475b0b19bd5608e85dab862a13e028970281904d0d8bf0bc9cfc61a3e7d7e297867f2a13db185f8c8c455fe3a250f75607fe8b0623287e54a3b1e8f3e0f775451fddbaeda17b75aa89d60060678b5648bea15eefb732d5eb331a1a9fb047552e5e1b96269345d07330e6b5f3a63a49ab7bb9c479911f60ea423c7326ac7e46674244dbacddfb1cc1308099b0e5a17ab488eca6ff5ce82cf0da8aa54caebdd1c8fde6ec31cc9265af8e5a2c7d6f02573ca106c8e02944db4a99f4c7fb93bb2b63750a21ee52aed9001f4cf88fd40f1c7e7692710bec6fe9a72f422b02bb0189cfc6ef8ccf86724f681113bc866774d3472c4429a3fe86a13be2c4eb788c38ec9cbea496ac22e4dde8626bd9c3be656968dc33b90f996b297a0c559a30ef83c106606636df04d9327d6775ff99364951dd13e814fe5f3f77ee9ca096f1d1efd8db62d311a1ad78864c476c4b136d686a3d5130e5c3d46b2cb191c9f4b6a4ec91fcaeeeda9bc54c4ecd7eac59cec6b516238acfc425df3a997f8354084cdbdb491fe5f19c6495e111585b0a0181e8a0b5e3a8f677b74dff6a791a67eedd71ac5f9ad7efe0038bf602d78278b22d3ffbf4b6068fa8ec4ecdc6199456b12363875ecb0c47d43fba3e3b716afeb6fd7aeca98cf654f177f6c2d2164386dfb8318c21533ee4da1857b1c14adffec5ff0bf723343dc241c5bde0ef700d96af27619d02c7dd5437cc3d6ab9b481ceadbfaa0c2c2492c8e43300722621ebe00be9fc3c66a78aa9b2bb6a1a5c73449a08c9d3b22127225cb4337e0587846a4b1f52107936649c286ecc8008a211ef9d37ac4337e86a0fce4390dbf581d82d623d002ce81ef89ed0482a45a1b9949daa1e0a7ef495f8ecf60a04208277da68c83fd5e7b59b2bcfaa82e02398b0433efd59804ca617644331dca4397602e367f6b2ff59bf2de1a0ed8763a897f0a11765e80c38ce39980f242fda7663bfa305486cdb9fbf45e43aef0dfb0782712d3eba83a51028caff425d0a550a699204355b63b05c8cb894f5e7ebf69641c3eb1fa4214c682ec3f040bc95f08f8cad7b7dbee8763362ce70e28459bc4e295153faaf56df17afb32a62ac9f7980a2d9a176ef93d14e413ff0434a7d044ee580a862b79542b76fd46d752f9f1abec6c3b24ea9825eda59ae5a0dc6741858fb8e78bf96853f29e27dac38b8fc900c65511f4583c35a888876446d92407253db4a76cd33e7ae0fe9ef1ce1d4ab5f93d13c5633df05540ee3d92440283eedc77f149f1bd4c50c51ac9d7d99a95fea5f717c6d0128e94da454e6089981199c649ebd388dc3eb98997d6f32fb3ae4c3df7236652b608551884aa1be3f8c606d7b6830ebdb4ad589d6ccac7d9988668169164353450007d77a704cf42c6c220383dbfdf20ff69ba5bd2c80fb7777b513b3867fe4732578da407dd5af0f8e448596a1352c0b2b94c9436747b38e8cc5fe5b417347ef0f11b6230fc332cb8977c1f181297f0110978624a221864a7701c7610f0ac286f1a90d719830d7f6d4f59e7761fe0af9c132fd60936d7e0d6c3193a88d64ea1b0c2830f95babb25b4576c72fd32c444edb3a92b8c52988aa4e0351784501b923200055927902d47863fc69c238531f314a73e935ed6866eaac7da1ff54c070282b2805940a5cc1018d7027fe72fb4a25774fd1a24b4c4e0b89e771cba783a7477612d05d4e21745be7298c5522366d81bbff6f0d25366c3bf4ee6c51bf6d90b1f48b26cde693702122d4f45e772d54f127470f4a4426bc2179185f6a0b01072df297d6ca241ebfa3095b605393110bf69ad359708f720a5556c140d1d2a1c09411a32cbd64b07d62e9c57b927800cf612712ba5aac4da6e3883ed7a6ab3c78549ba72f147bbd7796be2c281d8bcbf1dccab9cf26b5cd4bcda6e2c5ee8313deee1b1dc7be30a8b3a83a31d61aa1bcd26174869ebafc640f8689f476103af3937952cddab2cfb32cb895a55553a3bc37c05ade2d3ae3fea077c8e07b59c553841c6fe8a568bfc90018314b23b6bd7d7b1ea35bce93ba32117d0330e379ee247197a1f2875e31a631ce09d3d1d61f8b377157741ff4ba3e5f69fd0b8a049849adbbf7649794dd3db916fb89e6684d604b05adba3c4f07bd7a7f865d9ef3960392ed8b1b1b10cf6e19ded05a65c7fee963f99a6f2fddc14410f836cd5d201bd267a803ebd85b404ebf492a105371911271c3c061de9730696c80f9309dcda78428f85df7d80388a58a2d2c00a888083cc9a89c523bbef1c8fcb86530cb1e9c84b6ff11a6d61715708a94038c88529dc91445125c5a53401f7bb5ea29f09a4b97e3737d4519ae7b6c873f381d1cbadf1a7e094110759f48899a7fc9a2a4aea69ae71ea3c3d7609112461ecf8a06cc669a0cb8aa4d98ad8c712393dfcb162a73feb55d390e9ccb998081d93c105b3c11c283e9a901e1cb58d3c66241e5fec214fcf6a208f6530f8331814a2840dbe0d53699893853b90d48c895d0a48ad18ee5ce47f299afde53328ed301fd9c7732245ed75706f07ccad891f6b59b32968a1e6fcb68354bef3ee0ab27bf4dc152cfd40e0c65df75481d1191245f9e6a8717509103b030be0d7e85c978fb0642fbfaa93fb59d62327d6533dec40ee69909786aec5f8d8d575945575ebe6071b42b1960d5773a08b3afc58272dd77175594565608f053e8b970c653cb1b4d048223374ef24e4b78df4ca517168942bd8ce13d1d172a6db6b48cbdde011b53087496819669cc3331983e2fc483168c9220151ca29ac7d8d4966ce46db1d5bb092144c9e637752c7e133ed30875dd669da196c9e9d84ea666d42b7f45ce10fe1aa68306c923ffbfbd724fc31888f853194d067bf360fe7d031a7ad14483364be75573d283e7f64df8491777ee313fce318a0d4e212276153627f8a4c2e0ca04954707eb8a86208ac613582b702e4fc28c74cac230d8a7be4a0aadc679da6f4178efe4b27fb0b5fc87cbea5ca4203110a53d3d3dc3cd4ed76d97a0868566cd4b952bd5afc1538080e927f34ff654280df56e6d8476376d581a35a93b6ecfba22f36d990b8fc1b1c6bb2fe58a8ad78901f156f4468da91349d85764bd458bd6f8bdee1b14b50541d019232f59a3500ba9d12a3991276a05494b4722ead32952b4391046bdd0538d77dff2ff4a1559d6b52ea7f25b0ba2a20891064723d32b1870845e431b1facfbe66fc0afb1cb38d14b693971fafcaddfcdef7943cc3cd599fc28d59ae9dd19491dcc1fc5255d41fa82e6fbcbaca712f7f0d423d3cfa54c8358815453053c2d556ff9156f01b03667e8190f4a1116d5f16123139c1aab994c3de9704bf0d9923a04b80d91e4ae7776fd5f1949abba391820d2dca71c6e541e95c0050852daeaa558893c2b310dd903b5a8f77065082cdbc2daba6d4c2118c9ff3d36807582417dba0632ff901b64fffaf1e83b099bd0ccf3772a4fa2a40a9f4c11c6d8c56acb14ce878bcd6bac6b982892beb9c8ef03cdeeb3a3791c320bd705d6f393563fc75f0c19066f7208a94b9052dbfbb7adc7a4074744193b1a5ac1e2553f765e10a7c63ec2685818f35287f5590bc74c7ee0e922c687a98390cb7d549bc543b632e38d061d01ce13bf604411e77effe575262a382167fafe87d713fcd31c855db01803553bac28e0726be811db71c2410c4a0cd9717931ba9f18c53203dab5f54855f8f5dda5133cfddeff15144a4804a50f4aa519f0a7461f0c337f842a9a4402b36f01fb9797ac796de4b297367938a84326d230880739032579235e2bfcb548a5bb6894a41cf684f62f6f8d9995c72ae946a944cb71ab1984ac9063e8bcd49f99c26dde634aa6a154f04b09c772022765aa096639ceba2ee74aec272df8d6e2cd8629b610d28aacc2ec35a6e2931d45a8c4e38736950749a10293c091f50e157e8d08685dbc3661cbf193f0e5d5b03399afbc2dd58e36f6ade593576dc479c2cb4248c6aac981eef404bca0197d379041c02e6ad80572a7318a2f8e98ab33f000027d8f9bd0069b9a957ea58b31935f7fc0672d87e0e61df9d25daf2909009d10fc10253ecca479a63c98fe4bdf88163d83a8e32aea45e7c91a48b294d9c4d176d0bb914678ff2d1d6141677a7e3d327287c763535943ea9545ce0cd9e00b42da4e0ee012effcc0ad23a0d06e7ebf606ee4ad2d3a481903e4ca0256a75b827c1182eec073ba4985b74751ac86ee7d3931c8d9f8de6505b0ff24abb8a8317cab6dd71082732dd30b786ce6066186cd85d066dc92b79fc7cdc130c43552dd6ee56cef825495aa4d2853cd6472935e66192f58db0d0de5266404f2fab6eda0730d366723e346afb00567ecc2c02182e43a8607103f606e698213e131f1c22bc84380b426397e1ab54adefe6d8e4280489c8306498d6f24df2bad5dff168a8551e6c7ff93f8bd295d4eb2aec79c3acd75e3fdcb680fb8db57546224305b92f11321f3c2c6e0f9146a5ccfc9a3fc5810b4c281a4e1fa8b1aa8ec6aab4043467eb80ec8d4eea41507e309cdc2cb085e7431a139613f6218092bff3e1ce4c9f7200e69d6738f12f86d9499ac7b7b30d7ae7bd3f19f9f43f4fb3cdc863781511e9188c9b6d501886c428b704fafe39139ba08643b5d33e712c3bc5634d1b3667091bb79c1b9eeba4cf59c9a9772a864c52daf6befdfc08d33889210d7bac85283f8e2d39e80d8ceac24de5e64b263347cb52cfa94f3206f289125d77de2437eda955b33535491bb03192ce4dc4720ebb36b9f8e6bd5c1088fabe40fb72459a390032875a8fec0038a4fa6e5ba38e1ab10bd0d201c2e25bcd360be3482d077d004906f08172663bb48042d7787fd197def0edeb552f060bd9a52aa604424ba3a35aefa8e90cb48de92c3ead9fb3332c38b975d90c2fa9d51e84821ec111b75e0b1c6b80dce0d92f6e287c760f8f7078b69b63ce156ea995da28c9f19dfb9affb50d63aad03693a1357cef464c3396aa4cea20d14929f2644452225d269aca2440f03370a1ce48c0e4559644a82cc9f8c5475c9a65d98aa14e659ba71ee693d04c6320816dddea624a10d4d941e94df28dd684d92cc659d09dcf2e5a3f949a3f6a0ba2c87987efcd93075ac09092ed75074aed84292330f57abc23550e9e9aafd7d71c6d94909d731c4f4bfe98cac2629e8568f20308d1f490b68b996ee035da3a0ca1ae043d9d134efb28930a580e24d22a4faa71b4b85b2211488dca2607b6c632114e3cff55ac7fd8051eb857a14cd8b8b84125fd809ab4ddd3be881dcf5fad009c05260c736d01bd5239d4bdd37f10552fe8e76cf099e1b606e0edb9274004f4dd30639d0fdaeeb094db382debddb41f11c0a6c43f7a83cac436e0b20d000c535210fafcc9a0205a5e409798e8aef8065f68673e8d9499b9cde3d13959ae4e8ec24146220cdbf155b3d808b12770b081a89078ab5c85de7c2ea26d826935b9b007c471100a9979fe5749de14ed094cf693405d986716f330012b3a6db330f7e906ae4ed5916ae8b83e8444999d7513a913b79e0be97557dbd89c8c47923a52d4453408d1850a00e2bbc7a24d33f14dd7c4875a9e28f213c78833627c2c391c9ec436bdcfe66db960858389b54b133a198e54b83b3c25d4d00b9519c92a5bab39f6760b705bc42bfe3e75083674ad8cb2103490d572e9cdb55e9a0fde210e9b12b92c605d689268068d765b0ac1b15b48576fa8eb4e654188f54993ab17e0cdb04b9407fb45a8a18205beb9daaa8d231067608e14c8d14e38e3f6b4ed81e4dfa26774e79f68dbb691aec3ca5f06a890f341f9e6878dffab79e72de727e52ee51f98abc60e1d737bfe5c4c131ae4dcc08cff261e72429897f2fbc3e223f3201e8f154a5c0a8bfe33c786121a55932a31f4252fe21e3ccc0191e6c58ba7508e7c6915a01f91820916d1b0988dd066eb55242083a9f52be91bed9da84d215d2a3db56c9c7065fabd5ab3f40fb8f594944fe0cc0a001c008998db3dcc6964ec4005c6bec9eff4763315f5a53bee89381f5716289bbbd18492fe76f51f7b9cec37ede2db71c23451f854797d0c6231ec46d85a059d92e2d31c768eb9a01d1deea188e283f97a37b0bd950320c410f0839bb355087674c98079ca6461c3029b009d723b1408588292773a9c49c24aa71f88f95104fda818a24b0fc94bf886b2e21309036966e4cb3c63d14addcd8507c8d4c9a0852256b23761b117c72399f5ae93c7e34c46c18c0117eb1006be9296279da8ff013c477fcfea9e18aa4145db64cba1ae0703bbfe482dab71eadcac495b1563d537b52b60452ca7650cd1d468ee9dbc8e4e4d8d97f69b1d71648ae1c581d8c04de55b54ad41ccc9563e3250f0392eeaef28fb6a7936abf428fa76771071a3e8676d3d2502c986e0c9ee577b388cdca44748279949cfd1592bc7a60a885f942955307db2d6e1abf6fc75495a03356174e7bf44a859ded61044b349d27797e6e82866b209273864768ccb502ed939b5bead8bfb84fddda81cecd8cd15cd7614c0b395a80ad56d68ce5681024ec0e3fe2a45fe025fc1ab76c7866fc84621cd0aa7563945b586898ddd2dc7429b19f976bae81facab5504c6880db454775cfebf4a1e5be1e33c86d7027dc710b53a730b0aad8d4468a77b58fbe42e9f42a78475d1ebddf5afed08cd26b6c9c9703fe47b3bba7d7be5a20e1a942b9b00b9ef46cd88489e56dadd13ca60ecb0e8d4bc64fe5b413918fa0201450a65f240fff3457e7adaf1ebbf5595db122c9e5c8fd9b6f16a0a0348de70365640df714fd3dbdf9318233bf735cb7e03b6042c282b3980139fe7e17d41f6d41d84e0815d2bdf1b5f174cf61ef041e4abe83764a99e34f15f46d5634292915e6c2ff73fc1d4420e62bf1e77e94c15e36e06315a5eee654eb05a286a9ea399ee9c75aa765a8966a57bc43b8f95029fad0c658bf02d57b157d76d14a37900306b0cd3d7730257934c92fcc7d93a2b3d65ab3ce94118b9ad3f3990bc7c6bbb61af903b8cffef8fc7a706e7e75772f1ddeaaf11d3187c8ac512ce319cadfd948f9523ae2fbb80d55877636ff36afee964caa1602169e5a7a543c86d9f930529d459e86fb4609b79fc37766e557ace0818ad78e4a1e92d05c76e8ea36330c48747f963b041ddfa658140418ea48c257b9ffc37c9e0725388ce72cef3422e8ea4091452f519eeef164fd208a110ea9d0ad6d94e76d841bea969fb5f9a979df5649788b51d1ce2c24eb05c6db16cafd5ad20382396a90bf66563468dc9cbd2f05b2af9c92ff26566569426196a414bf911e905c0e20f35d42f302d9866b46bacc56da7e19bb516aadbba8510824bad323a7e304528cf5c621ca97d58825fe867293018eca7f4f2b0904d66d6f2dd380ec8ec1eeaec650cfc6434ad864c45c3dca5da1fc1db90ca1eea63a7cf3e218f39bd274a64c1b45d12cf2d197b22b53ae6653a44a4629b696a1cd34bb70c0fabcefb07747de2d9a2bb5843278111b284ada9c64d1a69ebb19a8207e5a12aa414e7bb16d04010002bc6365bc15eb7bc5a887c8c03b9a717eff4eac75febc43fb83008c0fa2eaf4f9692b1108bd05b5970102ff550a89841e5d3e213b4149dbff1758728efc672cce9d4a7dc2f3e6edebb4fd32fb1050c0b50f1ee3442e8e6fa428ea7e627e2bcfd4c4b71bd9ed056cadc4d02eabf5f64697354a9716c53b9e11bdb6496eab6b2650cf9d501416ce737d5583a125b5b6d6d4b19725027d8582473ceee5df98d198a7b3e86a778c71576432708db11f501762aa285d69bd9cce0df119ca3d6eb7e6d0e9e171cda28b9dc54a75ba9557b2cbaa0b51afca61fba9ee8ed4649cebb63fd4f0dc59a2609369d42fb40d0e54f12156048bb2ff3b7e1ee2a512600fe2870b4fc7f37188fe1d908095e2e8be638c9b3e887b5f78904f1e7f30fbd407b62e80ba73d31cf26df100b8d92af3e9a204485bce063aea97a16c5e0a50f276e37a5f047f982618cee670e3789cedf186c34b74d174d8defe38f3da7466d73a76d575b977bb495df89c6db8932c750d5551ed01d0a57ac964c74e8291afa591905fb49a6c0db55ff6fa44d67246d462addba282ce56a3cfe0159c57e9d00a0de66000f773c4a47187826a26fdeb4529fb0bdae91376e53c79ffcf81ea4cc5c64406128d269860829d7244a445664cd6052e7486a98757aeab3b241e62bbe5640570fc0921ee3099deb98a03f985fdcf61a630e5df195f5ee8f862b60792ced29d10397286161de426b9a1a7f1736697fbb87fc0ca49c69d15471b4aef7c3472105b50e47a98840403d69a81a71169e0939f7704bf574d73095208f11847a1ed78c1792da58ee5b338ddc4b5b9e9b4963cf0e54adb4b2a8f116c35dce1523bc48203cd99b61362133a35f65c69b0bd61df53b7f87baa283c6fe8a8e28fa2d31cf1ccde42ddbed6f8b6e0fa501d54d1d3b68c2f53c4385bbcd6c59fd5c9707c6c1aa4e2e04f3094540951d0b6df9daf12d1ccab781cd1918bf028a48f1d592a036728accbc6ad0d5bc60899e4dd614572945ce925af470556d8a608117910229fd4a0296afece0e76340e7254ea3f6d2c37910a96eb5eeb0da05f9203b2ad34be75da31c8393a4a21ce2d9490fcf3d71a4513d49804cce46ecde85bae00820c82ee56bf6bbc7053bec10c6b68ac367e1a1d75dc2f714b776ad6073bba80810ca3f9caf2cb50ab551c710b8c49b92d3e8a7519a8a06dc5056da83c3326b13b841be4ec76fdc2c619e8f4f7b64a856c8628d269ebee7782f826251cbf72f8633aeb10931f4163402d7995904a529684306e105d6d1fd26f078aa07afa591cea8f917322de2288423c7953d6d6c41626ed66e04d44790674d8f66266f761caa2bda2174d65c00bc1f0b25f2fb75354d0e3f1452167385dd3632b29f2c7351280ee2a992016a0c8a5e8eda159ded64112684716bdccc967a4d05ea4cf06f9e8593868ab64103a210d951d342d3e98f45ae69a80ce93b67654bb1bf8b9e8b8a446b5c2924980f67b921451e62e751a275a6ab281e0ecd8223c18d63eb020b582833fd0a86683edbfac5ac2b9f2ab2fb7f060576ec2c052c74324ee0200217a23ed919fdb083f26da1a361b654ecc2827b177966e3e4d03029815cec51f83ad0a08cf7c2cd1016c3d600887d35b7c001ef0bbdefc1f32e6386e7e147d59a0fc2099b0df32a38a115d514070a34b87a8e4645b32688aa8db0fd993491045a5d431cee13994e3ce2334b0e9d8a7079e0be959a8c5579fded6f3acca71dc12aa6a6df645ea9306da9ebed8e31566a599e83f6d439b3f75b15492747cec32a69921e8ca2db07d6ea0307d7d91549aa8a9671be18ce6ec5d3f4a61758671d67ff18a1a47bd973b9adff6f67313bbb215182d587cbf3ffe7c0c7014c414ad8178a4165f11047fc4a3656e3291602351548db8f3fa56ff68aeb3eb29690bed5f4baa0577738a01a70e5a7b3e96cc69cde1fd12900ea468f3bc5ddf5e95bf8f92f0055a07e354ce86e6610bab2cd007b1d3ab28f3eeafa5b9e8785337e6f267adc74c4e171aa02a952db9530ef3233c3b2ae6af887ad1f8aabd6a447aba42163992f85593bfd7a91f9b9b1681998051def26f28dde695f20a3a365bb2967d6c333e0ec7ca9f89f101aa96ac200e96adc23ab9522201dfecf14450fdaf99904b8c80e314f27457b62df79ec78eb90b323fd15379b0fe5886ca741ced0301ff10a83f0df3a23f29fd29f002076dcb9b2166da4d0a7fdda95bd425cca987bd1595e0cdc0ce552f22128ed1947ce9969b2b78315c49ae54fcc5a4e0991ad4174def00f431ccee1a1a9589f5a5342eff82786c9bfe56ff54c8f8a1109bd6cb648ab2c9cbb7dc2f899d715c72adabedf344926dc907645819fb72870aa2870eca3317706ac2914049b696de08b4dddcfd8acb5a2b33ac43c7e059e562ea7b841248951d5beb072f9bfec8f762df4433db25594592b2bd6e9f71fe9f948977d992ecc46de9aaa46ae8c0f726a2b6ad2f2c45a9f5a2dda62cbee47f6cf7dd3bfb1d23f8f13b7c68460c2614fb3dfa40922f48a464186ddef36baa38580676089e099ae4ad3e7a467c2cb4879c322984218f396b40d6eb1ddcfd2f6544f6298eb942c8e0995dbf49a621a00d447f0d5b253c48d86ecb47f126460f3e619c616a0772c7ab240f1250c76fb3e0c0f4e945eb5bcf7d83a4ac71b4948b91b9a4c04587309e73ac2ea8c8c0cec8e5f05323314444bf20494e127d8a477ec2a618b31efd4becd107270b35dc4221b94cbc7e2c058879b3414829bf53eb14f55935941d6e1b2bc3fdec662145c5134b5c6a4f49881372a61bc78e0bdeeb021c5492698da8e3f330cbc9cde88c7cd9063fc62db02a5927fc3fa772dc9cd4088bf0976c39b84bfe83a1f53ae12585785425c211b8cb8d43ee472f19442421f3add845dc7c71e1c8d625025e7ae8490fa5d588ea6951f5f81983a2e242b09d72858c49d1c7ecad1dceef147971926c021f287c0d65253feb1973a3c23e9d577095e0640e3902dae4d00bf2db7b423ecf6d8c83168ab4f2372c5166514cef1dbf027a240732d462f7547ad6c5b0fcc7842f82aa132befeb6f0385b3e014ca914cb857e6967744dee33ab022b88a296325f81f0f16c1cbe793292eba3e68fac6338e46302287794fd7be17d5838f15e272e98f208250c220666ca0b210f46c7453976b561c455f0b1c598bd49b8d7048e76b8e2db9b651fba2a2e050ef2db3b449ecbe712b0f25ade004dd0a76e4ce13dcabed42f61478c2f2b92a07af388456f7848aa66489bd1a39c8504f057d2714221c135a786d3d74a6656c187e703abdecf3eeba5a335f998b041f2196ee57d48b6579d75351299e91f6c87ac254535162215ffdf8ee06f2db0af53198cb9f922cd92d59852ec94993dc168ae1b9f0809e75247b6428f1a5a6ab73c01e3922c94db150d51f672ef99f125f8a5b885950eb3cd9865d3b24333efeadc221c369465d2b9808b0db6eb35e3e63fae4d1777a7d71ed8edb07e468dc67ade0c9d6e0d555cbcf342ffc2121ab9c14b667b05921ef812344dd643fccd9feef3e516b567864e7512f1fc4e4b88eec19e91536b00e301d1510a745820cbdc2e4184329812cccf092bfa93fd9fb826a4cd1f8b052840d87acdbe9f2c08714c66f2b24cf78474acd964ddd5825c20e963c51a5a7ba9cb37aa9258cae52df4b536befcda9375d7dfa77e060b5719710ecac520040863bca2a20690f76529cef4922a406b61eb91023e36c395e6a2748f812f93c34f88d0f81f8d3cb5c1ee4106ed72920687366ae439c737ac441baf02019a47e15761b92596c4d7c24db3cbb273eaca725dbc8f97bf6effb762cc17e571fc2c85e0b66ec178cccd44ff061ae3cff1c7034e5c4142e5c966f86e372d269b87226c6e31a249fbdfe1ce88728ce62367e81417f78711dcb626f262478710729f9334dd3d20e67353e09940f74fa25f6fcb6a97f83f2d354775f932fa899aeeefe73cdce625e2480d84b6bbc3a4180c1db155d1be09bb29f4a3da64ad53e9d34a61a2071bcb63afea49827059a9caf112d278d714b56b96326b6c83ea945925f6c388c785e6ffa62eb14f126fbae48d35dde55003e873feff51e2dd8918da386dc6ed94655e27d349a6d099c472f42e78fd6372d747f8da564274769bd9badf211994062cb6ad450cd0d06ab2df7b8a1c4f089c0060285794c62834727f9e9a30a1277f429750b65a42f1fdb74e5784bd79cff6413664d7674fd244ab49509cbc9823c4cc942907769c156776206eba14757002af51446399f42024f5fc2c8504a62265c3143575e0759df0d2eb4e553d425d4060d675874e9bb91b97594524e4191df39ea243045d0af38f185a1ff86e51c98511a21206c78155bebe3c3f193b0bbb59ddcffaf2b9460ecb923007353c73785452314487c781668cf91567d22496a1968423b256507e2b2c270355247b40d5384eda1e6906b4bc352cfaaa7b09deda81b27111b1a79f70daa3acfcbe2af2d679206289cabc73b6be5d0b2d62a258d795b78d10cc6d91113d477aa7f18312b11565c93b361e54462fe3b73742d0da49574a6460bb8115b35e71b7e73d39ca54a9d659e8b5d3e74ac95c316b78ddc9511d3d4dd4093a7655c4ffc3b096e90d45197da7b1dddfbfa1da7d428b8cfe5c4ac8b9a7473d1b6ba79bbc4f9753bfc62fc58fdef8b31d514d6b752c952ae89f4aed152eedc3b36c01c9dfb539cff0da3cf58721a443f3e7c234864eba89949c19580fdf2f5728eb139ad167dd971eb64c2f4a8725f02e6c558644ff15f33aa183196af79186a80a475669f6a48be3cfa0bebd3b8a406853dc81866379dd3e5da00b5930032e95bd4ce8867d23a0887308be171ddbbeefb1db8f502608b026f1001a37a94170d86ad6594cde92be2564c1fdf6521e7efc13ea1919572b9ff425d95cafb0970c34f53805311193dd63a4fc4d19ff0d952a3907304bf1ff53e0c9cefb9250a93511c9a9f50b81461df8d126307553914f5cf03ed6c7ebc59e414cb20a1bed42dcdd7afa159020fb6ef11010db4c8417fcb39b148696dc62d4d09b5fed814daf8a3bdec7b026ef3336a5a79ca72a43ee7584361ada10c03d1878aff2b5a5f8e4b126f860a214ddebfa906233abce02b5335bec9cb3d208c6dd49089db43ae18e6b0591fd2536942ea79ccc0fe733daa2a92391d0e6a1c5b562c9e435b566bbfdae26d6c5476b86e19995249605a4ae38fafa0c593daa125feb8c0eb0d796a341b65256bc62d2166a63fdb50949affb551622964f5400a9d395865573e378a22d0c8d9e18b604f3b7e94be0dd93fe6ad6094927076d70463101efa34223ce49e4bef6a24d9b998622e33b581edb8d086bfc4b211dbdc4245b8d1606f75dd8d5f199235574127f1abdeaef291785b233f7e825609920f3492766b319d528ee8d969bb59aac45fefd69f091018a0deacfa6cf56ecd4337d3980b9ccc25506982aad74c51472756e1f2a13dc63568df0e38da569028219b82a5fc443e0675ae86e85077d6eaf6c8f0fc59b77875725eb61ade73c0fb7c89f80d89fcef5f4b3dbe46c0441a65aab4576e5ad68f815b3e64cb6a2d95fb55d23b1e578e2b3b321e2024ec0e4b7ab3dea4aca670a37c45c7453198faa282764cb0f8ed796d2713f9f1ede3066bdd304c108e954d754414279d8567633bd3b94f33bbe16e87a3cb9e78753eaf763f2bcadf63ebabbb2980ecf98389877b62d739487b2fd59277ed7f381b5e60dbaced66db3cb0b9bbe66a8b01398897aa06ceea54eba649b36af431c6f1e9c53db316f4d1516b1cb4ded1ddc7b11358e822aa48eeba6718a9feb2ef263aad5e9009758b2dced86c17f04f9db70d17a42b2aebbd340469c4331b8317c1db18ff79b49f059866e3b8966360eb0ab5a9e990133eb44058b98444d3baaadcb9b44f0ce17e83af6fa7fefbc17bccd3b5e6a8f8999b1f9f3ca6c400ae00d0b308e949caefa7e7ca6689b4d49ab6a7948932f7f5601af4dd2b42a0941d5e521304aabdfe698459ce1ef642ec85c1c968c57d000d59eeab286bd06dd50d5a1e8ba9bad062dbb8c30f03378596e908e2bc76a18041fd1fc2f4467631b4b4f8c72e586d7814ca25554b22e14eca4f3a86972e0848f5437f39be883126800e3903e6770301dd462a01a8f3c9e10b54a4ae71fd74c0165d3717d4377c3bf9af8b2b4d8a0f8ac7cf8400cc0719772774bd349fe1df5f9f9731e334f7359332d8c9be25478789077f4c4b011802bcbb4d9d5a476a0d346208272b7b92630345ec66de56a685432fc001226a25ef5194125b44ed90bd602accd900da8b1598d1c6f1d17df91655b605a389459a664bd43d1379880b0c9a29ff6f7829bd4e0f54857e810e77cb2ed03807c6439fc5b2f0d3cd662d99e2a9b6c3532b035e145c45bd3cfd03d9369292dd7ce5ea16fb037bb79ddb450b2cee5bf24cb7ee00e9240e4351f620f1f5186c25d2340bf1cbafbbdc188c590dcdd7354dc23d9e59d442c9ec0543c0544dadea6977c743c8cd9a1c66b89166ed456da15031e13adec145d6fa845d3582f610d2c962f596fb309c63f3c6e6c9e646c73afbf44dc19570f03b10a1e3bc213b5382e2b8d90eb6a703bdad42ecb7b16e942b27652e6ea566badae49d18fd431060aedf03d27196330f96da7fe64459e196c94e31b63a6f5b4c6f1b896016c07d72625bef0307e9677547ff677dfd99632185d69a196953530565e575c7431340985ac814d36aa5badd8fdfe83d0f4b2da02736dc1021673879785ed9790b643d35a960616f73a2d264dee085150194b311629b9b591cb213ee29ca584bff8a1882add2034325b25d1b6d9c05dbfbf04184abdfc03463c52addff1c96310d43e70b5a269d85b797dd862baae4c6a247579f6feb67e718bd2d77997beac65fe3d22ecb94a5aaa809071d79ee8df27b8e621d8de0f13c58ff511e919989c7ce44359f2d4c93efe231c2ceaff457e0e8c8a84a24a668fe1f4aaee72e223c98dfb495e7f45956d1f05d98797e20eef3ae59d489b5af817f4fe26c1feb94babd5518c4e061352a9541d15e7313c01bf30feeebce8f198e15b3f570c3c03fb562539f323b59a492c17deb3a041749e68e728335258f748f992082dc065041c1d409ad98fa89f496a1eb14b0e9754a83d29a49d8292bdb79e6a3537ccfd0bcb506fad4dbf6e3c2f3c3e32244d2fbdcfdb57263e68dd5296560bbeb7f38d5a97f0dc50f365a5ecb087b55266be5bd9c4e8d62c8d597a874106aa4630b10dce915a48c8992260e7bbd605bd6d7395575409839c855a06514a4eeb79b215ab38d02a9e3ab24ad8c3e74cddf08025ce9cabb76a6f3dc95c3e40fdad6491dccaa74e99e4e454f17aec6696151ebb0ce0acaf8a93f6b41790d8ebc9de6b86f5196af8f2954f00be087bd8a7f67ed9a845de8a81c1cd72be110f487ae5d4ba487a0512a941d1c2557c7a5dfcff68fb96613e05e99fb883b765c242e06e012b842ed98264ea758bf2058de2bbbd589c3d036b05b51ff8a4077ce5d51a0eb0ead070c99306781c8e0b25a0442f3d0f45b15c56b6e59f29c0634730b4d0095e4e0923ad1f81820dadfda6a2ddde9af74e9f798e1c3272262ca94b3cce0a95321175177581c39bcaae43736b48356498ab43125675a19c7419890d3e489a6de5a57e663899ec9c3b4f2bb629115b3a784e0edfe4f4deefcbb82b5c0ab120219beb7a8f757966bdaab4230c57a2dc13dc20e4e38dc524a4b35d4a630da78500edfec2302bb0ce369a80eb1e74269022b3400e88aa79637be7a1e980fcbcc23ffdbff937dd38c9cc204552ce032033d9055554352e3919f8e8050d53e0c15977d25dc6db1bb9125cc8d80e77658e3fef308a15b56e5a1d35a1dc93aa3d892c7997d7ed72428d1af45e956f89c027513b70d5f2366d5e407efc3b3b88355fd541e006f2b61445d91965308cc32e6191099ff02fdc18353d39d7ddad637ad6ae5dc45d8788475bbc52e17bea11ea509cc4c12414356b226b328a77e2d2661a7a10af5fd01a4ec5868775f8f0bb3b1c9e21cfbe5c2c55a55883832b8eb126dadb6ac500dbcfe32393d5349567365c82e31a0ba0f3a44bb6016666d5151be15c6d6149942d3ff19562b2f537993d479065d7e385ddf4034b284d2941335d37ca2b56d4f262711b9ebbba28e5ffb1e7f1c4b44e3b6dbe04086df4fadfe812554608c57ae35c83d63d69ba035f09089d24ca948c6a6c94914bf96196cf5b2404a019994e9a17ea4be3b1d3785300776c6b863a0c7d23cbca500ff1c2dfc59460a559dc506f243ba67f3b8e0ffcc6ea994022f230010367e3527d1d139489e1ce9b65c36613bc75cca868664791da4e21fa803805fb2b1959480a8a2e202b8ec994921ba2a55ebb41a2bc5468efddcc0e13299610e301a53b92f85e52cd276f1838c37987be346e997cb56c968a51efa3ef8f2a240ecd0ab6ac94b6417efb995933f7188c356a3a08215417cf588c6e1bb92d0936901aa640c884375b7cff7e2a08ba3bfad048154717a2f5ee925033fcb113a4d042f6e0cd66b99a3b031ba3fc54e260cca4f9273ec48ee8c3b935973311bfc1562a35bc6fe3bdce7c89f1f7e3a3d58028d6b3c547c4ef185f49620f135de24d73036a0e4a7a482709b63583a9d401a3979aa1bf792f1cef6740102021dc686a0abcce252909c62faab322a89ac205096836c7d99fb54be1d960f81dda34e393da70cbad0dad438b95ccc70f6e00964ab04b4e417bae120ba459f6f0f793a18d8ec3735fc703424d0882c96d374f7c421c91f88208487f68c7f14732eebb042b09405522ccd472b5ac5ec1ed6b75f60371389d3353e1f6669c6e68be247759bdd5293871b351db5028bec1f06c8c22d4b9fcce380269e3ad57ef1853ba57f4925e8143d62af3c0d2eca5ec1fc09e5a479fd550b7497336139cdcb84570fbc37de28bc4fc13d4ae5b1abe9c272fa8f4349d2dc523d8cfe6ca2d99e8159549a95e54b708f3c2668cf1d809bf41e33ad0b67d063f20851c311119b2bc8afe86556a3734f4205559ec4931f16bce4bc7000737df1da1309edac5a8cf377aa9d12b01ea3a19f342163a1303c7895520911addc13ab2d8ef431b999ecc102622448a02291d85356fee0a504693a8b702d3c9dcf13f2c14da0645b2e6d25b2ed96fb63720b74ffc2e4bbf59bd76bc1de3713e32f55e5a1506957d94e6fc421ea81d3fe0ddc26b8ca7ae819170e79eb43bcf593a6ac2e8b0ffe3a1b2833d8bf4f28e8b886626487af489e7cd317edd40beed046be755673a0c78b318e9a855099fb2e9b635393e76f818defa3f26bda75e4f69a0f94eefea86475cc3c613c6c3a8205f6954f7e4a612a4826993a7b6df3e1bbb07dbdc60821a08ec3a7ecbffe6526ddddfd453f949aab3d395a568c93d6b838ac821f041fe58df3905b15ffc624a7fea7fed0ce9e2e13bf250da6216750a79a398cb1660519b70ed1ed8b6ad7bb25b970230295b436954149cf76d696bf445a0268c63e315a80d5c77dbb0b1963091695d34dd518ad127ceabdbc87e04e5a8c3ac0ae954fc233d7dac44b38c84b33583a1789937d17b10baf8ed5d99de3c04015a87ed4bcb9584112b7a460f3f63c22c76b2b9c8c01cd0225b8d5dd355c9e8c4d3848c40b9a43e7a0b31522fedbba1c66a846ae6247d1243c2a22a7a71e9c6e9e3b5d1b8220076e53458277205fbd5a87f2e6611030bd98c896583803f7f03449eb69eb9db031f92473b69de6170a885dc2cc491a58638b014ac84cf045586e95bb7a2c8a660018aaa0c402ae67c7215ff7b2fbf96bab910393fd29277f50b849383f51acf9f13da6fe0e622d609497c8fc921e99b2609a4fbc21d3f5f73aee34f11b49196fe3c4798bde00eaf9463816fe985adb6757e6489431aebd053756a676dd941c9c2052a9a3a9d9c09aca3a8e2bba0a14e7f2ccb7854ce9746cd269f4651e1bb378127b60226c6660ecd808b70e1fdc8da5560a48409eb4241de9c1f785b239114275b1ed11b3a4cc02872edbeed31b01fdcbf30bf1a4b369444e7e8df3a8291d6d40d240ec3de0ded2e0f68945714f21c62636f30ad6def7a8183b175eb72bf268aa2d726b57cbbff80ccb1543aed913c332b15a9fe36c125aac46fa53201b5d31f2813bea476e70ceb2de17630fd8efd9739a7b46244114aedb541e9f66f562b1d82d7a54838144d29c91e810231b411fc350f797dfcaea90b95c72b15f9db8f5f3d2b1a774d8645dd133285cfe168ab09231513381379722f7a7662177a0482f46bb8703099d4aaa9b863bbdebedbf5ee24f7258f457b0a5e65b6f36350db285c298444a5c3e462b3f6ac7e97d43c8282f242510aa9fdfbd7ded86855a7ac7b9a9a05851291ffc304fa537b9785a0286e72b9ce40b3261fef002a99d22361098e897d4a1df42e4e0e4973b19421cbe802ef6e9295d0987c8c23e59c47f35463be220efc88072c97b2dfa4612cd0cc0a0f74a86d64ce0397a5f511bc261c3d81e507e8238a7944bf40a7b0fdc30dac0a5c5f0ceebb9ad6eeca077f7be59206801220a8db7583e5dd5c03010025e2bec119614816e6c30b541d33dfc2e2d3b4e9787d2b06286d4c778e7520a98a38d6484c37e44efc43eaf0415f8bace296b130d8e2ab23c5cf0a58d1fa27f7ef6e4bde3e88e1fa3a44c92962ce2c6af4c9df859fb7efe4ec21ae6ee3f3737b72c8f7f580f70fd0b10e0a8ed2c423a558eb56d62516b215ab15dcec9f730bcc99e7ea717b1152f314e7bcea3833a32e0e5fd9aea22de4e163d9c74141fdcdd37e1ec26fd5a59e96786d9f5544a31504cd55cd9582417da03761c45542f802f0288ea5ff6f6ffc4ab1e39a54df5d338bc90b53948a26cbfcb84307fb49eee873c26fdad3c09853a875cd57589b9c715d61244fdea47111d30a176b76c175181b2fb30db5f6a492e8c0a9f940144081230b0ff1b3d5f86b58cc6b95377c577fc9b0280aa20482a615c24ba434b9ccfe2ccfb0ebe06f5016ce74717119834169c614f344f1b7794fe41cb4459864ca339a80e20c5ae8ad3ce90a5af7eb278f24771f4f7f2415fdf0f580572be9b28cc5153840841dd3fbd895446d380709a07a822dc982f270d1a05430911f0cb4e0f66a1be68fbed9d4aed39f64dcd388201b0ab4a239918327c34791830818d3bf83a64422eeb326f6973d44c2e7175db450f25fad932091d5c541b2aa896bb0a6592383fb9c2064cec33245d284c2aaaf2bf9e02bff54bf6e1015de8046a14404fb662941961afc7296c06517d92db8cd87a4400d54d1ec8af3c7dc26ac907b1fcf5bae44f6010679e0036d22349c4e47b3f9229fc9b021e5de94e15d395d569dd1faa8bbf882dcb52f5db62c7ce5c5e95d1984753b3ea44f44f51ac3445fca75c09368506597db9caf5af07175031945f3852c2505f3276969b581df561f743d40d1e9b40850bec6ccfa8e5c55408c63c3e06335cdb69770b5dc6c04d074e24a387076953736bd3a6f43cb5922f59dee4f2be2e8d57f078480852482569f1932059ba0941bd7ab48afa322da58f12405929cd3a58795e3de97661363d4deb95c7686d7fa7b2f3cb491d02c792f3b01651f85c1d5fd8c0d32d63f1b7788c5c907e1c232983d5cf61b7b9c27e662ea522ae3b1afc4d82a26e4eed0da37093cbe850e415d7025c7af6f4d1ae7019e80a3ccf12e5faaa76e721de1bdb9b7ee5c26b49b03450bcb1d2f3828b3276041daf05435e964cc22b779184532da2e796bf995d75af5ad8f5fe8b34b28c24f59c668a7248d4e76408b7da8de1b189d4d16f3383ad9399dd780eb0f033ffceba89b4be58bbf65104e9d442af77a71e5554419f1ad478d199426c48bda08f6e32dbc02041e5fb31d2a1e173e6a726f9c0ef3f02d2ec3c66498e21194db0579112df9ef0d4ba8c9dee72bb52886bfa406709442606fad0238549e8fb2bbd65b3fab3e3ba737111525c96c8b76b9e08e4a41b71876f8615a4ae970d5ab0442da393cc8c2ff105d64b66ba81949b814a01273204239b1fc7e38b4f24100c6987d3e070367f57b53e6d5e7ecc4f2337558a557172e147d57ad8827a8725327043bd3c3da2b83a840c2821f625635748725da08dd7b542bdaa196ed8ac01ca4547b2dca08de07eb9b15a962c9d827322485aaf4fb4ccc471d2ee535a470914f53fc4225fd8bd2f61b6d37b9b9dd9869312334416fd63a88d9b5461a939cd7633e2a07610fb932ec82c2d22b589266e516bfcf252782602331acb6a9e583567d4ba85d89fcd45070436f2685f25bf0a72a2bdb40a6d24ce8819ffdcc8fd5081538fade3cc9d9a336a96403370d0c7fcf4a683bd57a1c3683578a077e969b7f24e4ed97faa959f70165a58c2359127e6367fb8ede7a8407de694f76479f7a1ca0690d61322725f8f6889cbdff0ee02a37d51c1ac7b839becceca0b41221d2a5fe3a625a56e896a5782ed3f85549cc7f370fc24f9698b09f122fe6c6b424055baee3f21f39e21e9a6cbe4f4bb0bf212cc9d3fbd001ab4466b9938f28e6c57d8ec56934946161732f96e477fc23039fdd8f273b4a18d1860d8f355ffa2e75cbd37ec24955e0ed31fe2dc5b6d23d5c593d844d451cbd2d9d1e76fc023ca2d915439a614e9a511929dd946dbc44b7fe18b0bcb55d6d3904d120b533d245a6e8d1bad1fff1a8e7efa26e824068d5ca5857861a410ec7e817ce4a067c9c1090a2684d9156e1ecc0a033462b0c8d66634e60cff4e386a9ef0f00b907a85cfb81b1dc579ead83ff43c29cbe56beff4fd0ecc35652ea46fed42d53b3edcb26987e9a41ecd25358fd5f0f7b33a986bd60f86bf13cf0be815046a625bd1e2bf5ff973b23c78ee16dcd4d5dd038bbca7b43fe502205492fc3e08729e7992666423b3ed1fa1109561e571ef53ffa625ec8793e95c06fbd3773f0ef96a0a1b45cecef53c9f3f7d0b889e13155489ac5fd3f32041b3fd30c25567f2b0e346aedfdd13607c7cb5d2675dac32741f9b77c0ce9d8a1275a908b750abd2dc0ccbc1997226a27b30c7f462757bfb0a557eb6ddba1f8b75d5cd3aeec9f035d7d1ca415ec7f3c23bc30d12db14928b2c58c3591384087ff6d560220842be5c8f53788e1adf384d73fefd0155b2ffff00072e5dffda9cdb1721c2d48861522d068775893e014a3b0f70b3a874060ca504c1129406f949c4cbb42306579163abd0236b4b3f469dc0ac3c29c784ac87b985bddd38ce74fc7cfb5c6da141230af298e21e4317346a201dc2ca09f252606229b2be7cc326cd4b04fe24da760a97349b0ba390c36af098e90986bad07b5a9d66c9b239931db67837af25060a2459612b557968c360370bca0bca3655cd123c08e96636b2a2417e58a52fbc750f939f2d12c32b9c2f596f2fc01a2d5bf2a832af48ac20d74e652a20ed9a8b139723089cb0d8ab5970aa55bb0225b1e00ab6cf4e5879807d2efb62bbf5b620a4a8a2a60488e2c0062851adc4447c6885ac70c5aef6b06a63f68a7d4beba0d0cdddf40607f84cf434c41cc9d40f6c6d12732046e9f729a80d48559e63e19a5696949751dcd631817927b1232c588708f02043d8effbb05a4006d35e8ccd2d04eb97273fcb2f1156ecc556b43c9fdf0cad4f05f10495fee68ab91a10c351a0c41b58e4f9b2517314add101be2ce60d767cb0f0d540bedb0fb704de49f9568c1b5cb3315a832d4e445b7762e2577077e2b2dcf1c00ea2eebb5d29f11a92779db5454e5ac9c30448129c2a10ebca5578a74ab617c4adb0e9d4519c8e1ce739c239527c147c0d6831f99902222bcae55d886258ae74b206170c30aac8ddc41a5ac863b88ba48d8550a87e26c6934bd95a8cbc9797f784237a15d82bdb98ea672afd3dadf0b186c75751ff49aa967955df0a3e1303a3dfef0118eb4a4fe88eea235807ced1b1ccc2214ace3947b933befec872d4e70b521485a65356233ed86143a8cf7ebe6d4b758c972678614c8b58cded0780e1ffc09f8292b8a6683365cd167303cdf6ed7ed40d8843e9501347bddfa64e16539ee3fde04e0c930963c687b15af8b729a0f8abdbfde78fe1c6631b5691bd43f17dc43d25660075a966ff3019336709847fdfcbc069d759df478d4a1d5f7041168e45a8dcbc8cbdd0b8096975cfebbd91416c87f9c05cfc9e05a8ad4fbba345812d97a632f66b19d7b3505a8c8e84fdb3b96c83b1e9c3e0159549e5df23398463c2c4f8ec559ca53da13514565516a42d5bc2d4fc32dd2053b53d52f74938bfdcf9263c48e8e2336bd18db5b0f5eb590800e26e666e80936b060168b28d4b6749b7eec16e8d459ffcff20677ff62d3c54e158e26d2a04e92a8848cf24553f4c04a69eb583c390301bdd2b26be516d1584fb3f6b8e5ec6d71b8e7958cf5186dd7d528f937cafd0128b70de5e54041f26e8efcb4fa992a858b9362fbef142b7facaa96cef42f2dbd7632fdf56b03a1b7d89d2bf8eed2c8ff3da9bb73762660c540dc1b58ad84cc70ca509c667757c1ee0e739f7dd961ae41baee295dbd494e25a57d03dbb77f36ede18699f09c77847445c54e0f81d79149dce09ffd1bcf93cc2ed5ead21eab4f1cd36176badfafb9ad621bdfb3eb43e101750d460573172418f08b9ffaf8fc83275f8439e67ba26809447495ea22422ce8aca78d78e80e1bab975e90300d02a585bd273a36ae23545740c0b32e6732bc6f6bbcbb6245a35955cbf9bddf9efec4fd942ef5351a309991d6858362dda677503d17403c1bb666476b77d85ca85c2450ea96a8239b3211032c2b73ad8ef34ddbfe65efa490980df398bf1462a05642fe4550173ae97f3a2251a34a5b42778036ed7fa88f6fa935eeebf233ff31d134224094b5e6352572ba721c0f07af0e0705f641dd2304b9c5f60bbe2e507e7aa7a9b4c47f1bdfa45ec980bfe299d1705b1e1ce38ac484e6a06e2b9e77f890f2b164f5f16cc300e4d089911f8716547c0d73af27223f6dd2e98db539ba95e909a19c1a2fb046681e8081af2137e64bac0f8b5f0a0f4ab42a2ffebf4c1d1099873cb44bcf1a039dc6c580be9d11a307e94acbfc58112ba04804999e6e6bdcfaa873763dc2c1f84ea49c711e5b5a271dfdb90124fa92440cfdd2991d0ce042e3170aa4fde43f1b4cb350b50fb0f8844d97ec7f39e6d04f0cedf7579d0b490a1ee2c3a6c315df93c6b3f3bbf5b37d1e4a1e4747fa9d041a03670a6508b9722bd1a873ddebea812c9abde5317483197adae3541059fd09eaed3ea5b5eda65ce8f162dcd323da4864ccfd7b447cfab8867c9a1db7485c19132dc20d6b3f56c7a5bf83f4b13a42398dbe52ea17f4faa65e7107d73dae252c5ff60b47d3c3e04649b6739d909b2dbfc554d77c2c6004084fcfec73eeb8aac98780d8e5a5e0915995a83a5df55b6385ae18b82a5250a3b4fafcd5ff6a1e19d9d301f1b9c2a10c77fdacc2986d010a0ce330fd1385ee3b0c3cfd5a558eb24331c5fbf14141e644c4c8950b740e119d76bae9a2e513405f3f2d3c0e5a4628f248d2128cdb9710b828c4887933e82642eb3476e9326462a918106a823201e667b218e3f6224fba6dc9f03aa18f8548c3c214670bad574a2b42a057b44958b4379399692c0159dc3e2389671aba9c601689fcae3dbdddc7a4e3c8f47b4d05c3146ecb8d914ec47b948df027d69d144863b102b76a3a35e7c4816a43cc72284632a86857125308a399c70f9d780b1814a85c71cadc7efb64227aff18213e140a62003ee70100cb1ef4f9aad5bf6d2c8e08c0eafff9f6c27ee51119344ebe53bd15e98694716cd78d4e161fde3dd7e637540a11524b62baf3182d91e7eef0cb4d1092be70c6c654d17c99de792ac460dff1530435c9620d3bfb5b905736db6ba1dabd68fed8beb1abfd279529c5a7a785981e053cb11a4f65758f740dfd94980a22568595b1d19ae6496f421547fb4e27b4ccbc71dbdf143f643eb504046aeb07fd8e368ef59cda4a8b6639e786f4eb93dd37b8d0eb5a924e8a2858bcf1dd2df2156ff4425c788ee46b3ed2af3aae64d5b2073dc9299504ac7b5c4ba07d126068e96a6d85938f2dce92c0e4c8994e19aac2da6dfb63fcd469dfd400bd057200df0d37645b84f54c41e9d15fe3783e617c015fe2f75d1edb4b150a14aa69bb86bbe504286fe1f1c2c0eafa55b33ba5f9e4bd9d61e13f2e0f0c4ee257662ececd2041f91e143245d8fd9973894c4b9fb5d257781d0cb04ba60b9bf1e996d9b3ceaa7a01e2c2b7e4cadc007973280a82fe1b679c126d4e2f34ced8572fb85ba2e1cb4e056db2a4ec469708f63b38e49b0211cc9507b0125e848c7f319a06ac4cb720916dde7d404c33d1d9f906b0112faac60855b2a9da4582b3742a31308a72084f697098048bfeb374b97e4be6d74ccd88ce801ed2efee7962d1cb08a0040be6e944d658a371c028d65bd7da64867aa0775b4d80348b09e124c717550a9dd3be6f52830f8297a72b887484887bc7f5afd7c7c693199e769b24f083d85d7bfaf4f7b8fdce7e83ac92c1a258b58f3b76743c12faf84dd28984ff877e62c16e538eedda88f973b7b3a9424805b1a0f1da29d58a49cf363d05e516e83608d1faa761fc46ea52760a91ba177a5279c4a2e9b8e9f8895c541ce550569b532ddb3e20fa8f0fe2c2dea87656e103e2b93fcab2cecbf0bf1cd771df987977bf541271c2c105f226614f17537705786fe0077f2ef83e6c27d769433283d0ef2d61e41abfb0fdf334b53b84853f41ca605eafcc1c3cfd8ccfa999c0da8d8ba0418b346002b0c0191046c3b9ea03275eefd5b48824bbadcf99e2e458ea1f6208b90084b7d73a2658871bf4753a6edd56375c45aa56e7324ca8fc0c7981f44e18827321eb40b46c248a42f0eb315a317a5519791cad85430696bbcdbb29137cdcb5cda758230ec2cac649256093e4c3cf2494539a878d6d868c3899eff4d5989b6bf2129fca5c880dbabf3be7b98ae1dd06782188f0093f2e29c7574140a1c002577cd99742d1aeead28a8b0713d3c65888ddcad90695cbed4ec6c2c80644527febdc5a44112070759be2ff55d6a846f8feda119ee6c6097fb2387f0db5be6d9345fe4b303a189db7d03e814700334fdab8f17ee7a095d91369f60cde4d4e3c8af3e13cb57ac6cf6dfc28ee98e0ca6d396ceff5f0c04e5f8743645da6b160fc4ced0baaad906584d1b79940e013104afaadb7091e263b4e785b12a4ce24fcedd099f8061450aed757edc3e19533ff7272739fbf036f1145fb14b7bfde50d552b75c755e75815f3b1c6509bc25ea8e76e7b3f20e7bfbf529adf36b0347ac56c23ca7cd59bcf0894a4db71416dd104cefe0799184c079e408b3716bcb38750cdddf582f3c172c7a8c2d08ce5b0338a93a9c8c7ea5fe6a5ccb28984455ad66905b511b3fa52c3bc15d06226bbd53e9b02a0629dd13e57b1a4c7908cb1e4f130f30c1a7ddbc2325437fcdf73a7694038475724c2f20b11e0eadc0d2ffe9152aacc3fad61ca8f39805e6fe9df43596787ff6d9f31654c1115fafa09e26cbab13eb8f39a752eb7db365d5bc589b0361952dcf2a6ba872c4a783a5c130dfda0a939f55a12e3df6954ee22e108c33698d987d1aea682a7a92af305c0208db6099f4b9420cc68b699b326695d3994bbb8e0b9d6547a7ef6d99ab69c85e133c45e7a08c003a3d6673a31df6feea43602c4399d37b925fcd1cc53b32981a5435e6ee5699563ac92b64fdb1dca441a98be78248e7472111b59bd2f22d7bcb3f6840b9a488c3d0816f0220d6a3a1158dc770a810ab385b94f53912cfff297dbf88a1bcde76f604e70bb39cf539fa104da3a6d4033be000ede66de5f8723f647ea6fdae86ae7d5b4c237e8d8eaef7ebe9c1c752e4f97a31f659fef08bfab7020e10a6098588ec4c9c06a986d42481e5fe08c73ee4996fb1453448542edbfbb50e504b09d1e9d4ce135ff20b9f705f7d899783cae2d1a92ce6cff48931ceab1e273a3de0a8c2121267e53c59fa3f48f326e3cbde6afc91013475330c19d7eb7b3fc62143e56c7df910dd8b82f6a8a55003a678f7ca5637d96d16147d9812068f264617a6f943069f0e7bd3f036f344b678a4c31b6891fefb1c8029e521f56c0bd839859b742debb7727f5c6eb5cb3e9222267cec8f89d5f2b412a5190942d3573a8e8f631c1a8136c797b8d2fdf87bc40788bc12f356979ff239feacb3ef16bb511f3f54d54c84fbe9ffab87c276f904437ea3a9ea70586b9aa01919e41ec83f973c44c61a46de190f0b6ef756bef4430bee2b31d5692dd87e421c2f4023f2475784f12583deac415d4cdd16563f4927a9fa51ad772f979e537a69135aec3bf9b3cb7b1af0e69474649c4eb37cd7b5a5820a7df17ccb08f63d901a6cbb402c1f5d0694cf8ed369b8b6165fc4ee95149dcbde14e5f5b0a4ed857bb6d0b47379000b80a55c5119b7c8dc2f0a731feddec58a4e8dea3b91429fa0f0347a7dd63a5f26c2dad4d963f69022499f24fd3fe802137ca5f8ba40b4f39b599937fb27618b3dadfcffafd292c8bd7521c5536f70d3e8ec233047d582b7bd206f3a1467e6110e204d3cda943c0593af2b792796aa7e7f2bdfb88cc221936401f1db8dbed3a46d97e49d06272cba1459a1713f068dea963ab615bba70a74db0db16fcf8f1d72e072a50bed6403497007b68ca748cb8d6149fea2d95d710fa247fbb04e8d4e00f29a74fb61317940d09e0172fe324be92e9c4fa0750bcc8f7750dd4623c73e7cfeff53c020f0388a1138f5b3b9d74f11e002375aa00244036ce11371445c045857fdf62fd201122b36176f77a09fdc02e252ca15e6014443f2fb5aa479b5a98bbf030feb08434fd5e4fab9a510edb46085c2240e44e84979aeb2483c999304781d0c53601dbbfb511cab86d179a3367e55b49fc264cdcaa832a4937b6de34ce4a9f623f2ba76dc847d23dac021fb09f8c0de99b7eff06936168cb65bdcd22b8fd525fa6e4d3f8198affdb6316110b9a601020a280b411a293f46c04550e537d01d12121a32945a9bdfa75b27769acd335388647d5d65c434f72adb3b90ba0b80879685c73da172e6bffbd1d9c2556ec150a9ff414795cfd7d59c1707e745a64619a649b4cfb5fa6b96214debcc5e06db8421ca86ed3e8bac476d81fbbbb4d11fff9a42ffe020f147506b636dcd0071fe14df0f2babd1ebe1f67b4a89e99d4491e50d013ab4d81eda0e73a35734d463304cf3074aa36d0dec8218f9f4687fd9254ca2f33479b7602c49264728f4ac3e9881fc9fef1e084f66f6b51b44346bfbd1c870928b1909ad751a83caec1594e6dc3c6fcd2b1810a9c276119621f573d7a731ecb7ad2369dba535f8361bf0e6c074704ba95d8849590caf110998c841c5fe41604aca777db10ba006e9e028272f8814bbcefed7571800861945caa55e7d67b6b309330a497a28c6ab5da04d3b586acc27efe838941f9bac7a88fe49c82a56e1053dc10f1c1e4868ef47ceaa1c416f5c3fe008a14d1b79d8fc2698ceab1f7eb6760ae17f650838bf156479693b45e7b5d4eeadd1074af07fadb4d3717ac2e7bca78c4fc302aaec02d97f924d07e061dd2f6c3c59cf76ccc99dbfd4fbebfd97a06f383607d9aea146f4dc4c2876c474e1a2b0a6d7b22b7ffd64a640bbe0790d2db36d983a45e6b62fb8d67a567935c395fca6b1d91c58eef6b5c6e1fba2f9cad7d67e53bcb3b3165a4d716b72762d6277f3298ad6a5cf04ae842b02f9a48ac2016dec65cff27763e54527c27003d23c98ee2048cb33df91531d7cde008adf7f042740636b002254e8a5d75a92d2adf4151edd4debf5b52befe8ee1e8f4f58c4f919e73c231dd5fc1d76e629d728ebc0fc33b4c6d0395025d5ac35b4011ffb93f085779dc3cd35653604024c992f917b6939f786a9a940af5254714cc55fbbf8ba0d7351f6d73f1635f4f2088d80289d7a5b5fac3c1426c48924d88767d99459fc624df1bc2b70cb6a2aae68e8f3502d98d98184b5cc57fafa9a07eb38638395bd9673e32218e4fdd0a1153778a0d526b176384e97010b838c6278cd6352c15fbb0194caad2f0d7a10e60434b9d031760c2828016a706393918be327a9111b86f11fd36a4018f426636523d2d21aa78ff3fda4beccf29e16023599472633343283be95f133d05cfeaa08d9d0f74d937acf7b3ff905bdba8563f7ff46bbdfeb01d5d641440fca5a29e7d022a2477ece70383844921e02c79dc160e82627087151a1c0e123b15d26b0e9599214f0e0d63d1317daaee9940dc7b2a512396941cbba011da1c4544e1e7e5bf322372a490cb1786ee26aee43929c74c683e7a04ed8c90491a326ca99a0d686af385d4a464ac34b77a8f27c3bd0d4d26feb766dfbb8196c3592287493dde3718e5fc47018b0a982e18ce105c039776b34ea27c09a5f8c9f6069c478c181fcadde39fe9afa679d90be4e0037a741caac17d5646a7f1395948eef051bdb47ddee4dcb38827988501a0c46ce909dead37763df217a7fc8d00988420298e8be0ecea5ccccde72903b7f4db11c59d30e7c5c8c4731a36279c22b501f1449150e689c16e2036f0cc19a042caeb8becd04b300316ee3847dd03bde44a21d7bfc9d563cfc92cd8466518af77c0e7904f788b0a48958fdc13aa61205eadfd9bf537809f8c50fdaf74266743b762da1d46a5524608ef7481945c3247cf68e191724fd80a07dfb7e2058028ffd87a7f03f19b88cb8c4e82b3083c46e3d9096f9a5bc03fd1626942020c1a5bf2e57acd4597f61c2d71e4bcef744cb6bd8f9489d7384fcd1b526a1edb9de18e449ccf468d23c6c60624bdde3b1fa38dd1fa7e580d747d0d4ea0a1d3bf51257fd6f10233b1a24257fa6ae71e0312cb989d977be071e0c1ff5daa228496c6c1236d89aee981c60b82b5dbea67ec9f390d86d713fb193051521ce2b283261d5e0bd8403e99f566f93ce3628e76ebd7d2fac29e12b7a27c761e204e780c457bb8102da38233fdfc7b196ebfee9ac3127eb944c5be6bcdc17ba76f07f86a898802bda377136a92258d390305e515906bcac42b99e508845e22deedba643b22f34de9d23082e4022530c2571cbd4cab42a3b7ed59b56d2298abaa0a2a3d923eeb0871137a5c1a186082ed4c403c4d7bb8145a05bb67d0f016713f32ab3a2a3fa78a0793b4fe7a7ee25b1eb180f75b3f3620f31767bc8072650df6fda98ff18ce0af82327036cdb9d87f970640fa86f7e6a050ce7b438f8b751479371f76908352872ca3f5b4f007155db86ab7bc76e43840373c057823871a5c3c55210ec3573f0eee56bd516bce8e5ee172726af7ea5f7a2c958caa8ab78cd48535528ca042ebfc64bff71c6c92decb6196cf78f45bd2b2cc1988bb49c0e7f088836eb8298421a3360806422e06c3391187838de03ecb581f9de5a5bb99ac9f5660c2bbb800acd431f100bae5699f8a76ac15b5c341cb1b9bbd85d906053ed3a39faf3f2c56dfe511ad2fce9f59f77e9ecf60e969df1430ccf1bb657376669aa8262adce7460eb8f4b1946ac124f8d503e815e86b212da3ced4d0f36b73d0c899c13fd6034213d6d5385f400df7edfd2ae436590ca162c00eb38191b3008c2f7f128a2e46a1caa0a0c178b85b6eca54d33a9c45230f428501347f4b9a048d656812bcffbeee948bab51fab56eb3a5f8df0b73dd91981f26c721ee973a702d2042fc1c2d2225d868ae4ab2288bcf37285a9ab98ef8f191a2e9bbe690099aa71bce5e036138677ec685a8a46fc2c35f332ff3c26ba9b2f469a9b6f5fe43739c937f815f5b011c725a552c868b15da9ffb8ba6b7e110ece50f8a049b3302298f4b3e3e319061b6277fdb7b4421dcc39d04f89312bf0e98c81011cccdb3fc50692752f00f1675b011c007847a4c195ca31492eb238af98d45a6e87773b24bf9f553f91ea2e4e16b2a76267efd41a84f206510b18e27462bc7abd8a3eb5aabd165ff6a182963c3b96e7433cf53c26a802563663fcbd00dc2fc9247c583eb0e2ccba148c8f54609c65fc42599355ce3b3e9ff3186a55aec2c586835d202a08cc1a1d5bfb2ebc163038172463e147fe500469152fcbccbf09c91e7e2d5206cecff42c0de230501177edf6ae446925d457b39424b8d03439ad324a09656098663236e0add50d1fa4fad8465f71105a0b1cf65135319422e1b80cf2932acdec04687ca685b5ff08dd47303e38379f7e620dd916b347a95d05c64156989eb33b7bd675eb4db0498ef2882f038d21ba81d7ddc26385e61eb187d3bbde3add692c5c0c51593f3b6136a84b565aeca4a8a9c7652b29dc8cd87c8c0185325a056f7d4eb3d40b0fb323e6b2f607ea808bbc41ba9da67388f4a83e9331ba633195f53f5ef6913853d7a0be324a1dde676ecb1757cd69cec62a1489572df48135ec10ac8add327b1e13dfff1101226d086ee5e396b2d4b47352e180b540e125c4f5f", + "0xc8926746567ca6cede12189315a54fc3e17ace1626e5257b1d4e0f2a51812d1856c1ab5c2322444a3c24568fc99bc6ca09729b8fc86baadd38df41495970072b7f3056ad71b6c9e27227261ec25697007a6bb196310786adfb99eee89c95ee8be7a6fc6be3c1813212ffc4258b30c677faffcefc7f44874feae405b2b0e5f9fb974fe6eaae63a089afa29d06630e8887f38eeb2d9f9c5099cb0704fd1e57e2497b62063d1b10606f643bad05bb827d4ff4ee636dd69af24c29902a6fe2acbd79e35c73a0089f87294e509ecfbcbf3ffa2eaedc5b3c5334d6d4c5d1eaec1058ac02ca5cee68aa33100d036d2ebe59a968f7e2fb913c2904535f2fc477a17e366d729bc12bbe3cfd94485ca6b3d2d984134b8c5c9d16e6cae5a126d6b45afd8b25af1169bca6cfd7ed26a894893a208b3c46825d375d1f9bad357d2b98e3aaab319734e0a74d9a4045d5e2ead5eb96dbfaabf6ad1f7aed7685fa30ddbffe95c17df0db7dd6f42f992a0635c1181234584a6085b99e27f225d99330f158de68dc9de247af2a706ec7be6f80f4ba8c4c8f08f0d45556f4ae5573e72fd6aeace3910c79490fe1adbc74c248fc3a8f6c361db507c753b1c52bfe25a28cd5c90627c89a24fb09b02699863ccfe17f6179bbafdefa38d6f451ed4493b3422d1f7bce6d2239090fb66f78aae8c42858d0ad5b15613d5490b0a53b582accf0c33910db2a3d6f8a9463acf30effed53a294b75f02fcea6e4d0da0b8fca0e5eca86ebe6d541762686c341747a42f934da30b7abb7555417c64437546c7cfba68d224f151ad7612582e3a7d207edc035432508cc0e72d220df9542b3e3ddc48a6cbf30a58bdb36462b82fc2bd30b80ff6c56fb8a0ac6795e02b0220f65409543c45e1de7fc9b39ffc070c585b43ee8b1f74507cc0348642049dcf8298105ce46ab95136f3b6e8f1b0edd0ccf211e5d03537ad8cd91475f984e1e1d5492d7fc37f96d44dd062fbe8565da03a49b8793b440a264dedffb92cafce62709f20f6014ba1d055c4380cfadb5cf9d34de04faf38aec15a071db070dfbc1fff65debc71a38139f2751265fd9bd35b5ec88d700f302a6703d0620e00e3231202b820e72afbaae3bdbfa90eaf49bc78b55741fcc5d258c5c9eee2c53ae8328e4d642caf070413c0c2ba27fb2f677b8243c00c263ec114d7e43c2f381fff45e586a44ba92764684502999a5e824e5c278d8a72066c10d6b2bdc742e1d7295b64ab23797e6d7abb90f24f5c5d0fca763ea6f12a1643d6d29c74a398d32bfde8b88954f5a50133cb53fa12b46f233d7f35b921284a3cc6f4625b8d5ad00ad1b8f04518c012cdeb677bf89d3cb96e5c43dc82c673dbd4dd35e2785ed1580481a67bd7b430af00699e94ba4fd9198476d540d5e9bfbe0e213635074e81d1d2bc67d08a1b26ce8fd99c5b871444ed5e4ca8ed1622c5b0ed661c74f6039cb2cce8bc977e7f896eafeb838b97207e45d6791d01c010c885fb35141e687bb2cc718ead8b263c1d4b5cf195fa967aadeb2e6e4844df30e01bc5b0fa3c33b5d0dbe35cb28acb0bd235d614764a2556319a8af4e79c95f5d9e85d920c14613a6dfe68b9eeb8068e1c2b1f9d69f8593ef7b1714cd8f49838ce9dd73aa7b2b36ed628eadfdbeb4a1e05df7e42cd653a105b2450d27ff7b2f8c8c3cccb6e1419b307597893070758faeb42fe92308546c51b6af737f8d340681986da546b903b581022c35ec862c8b83ba8ef66c934eb0d2f271a4df688b44b25182110ef38f3607621a26409d0870f84b1646531f310bc7d8ad157b21d14a8d945c7ae5776d1143f148ec08f4e53eab638b4989f878dfdd28f18fd529178c112c776b5fc969662878c26775b1541d181aefa12106bae66880950b99c388f6995dfd9e8dc46b912d6bbadf6051f389ffd3b95a20b3cb4ccb8bebce8e7b71b9e73ae22cadce1e5c991618727400674882e1da896014b54f003fa05609fc57077f6508723a85b79db44b0c00cd2a003710e409b93655936f82c9cb794c967f96667a6c0a4880806ec98e785f4bd714b931b31987703fa77bb1d25c1555e6db3c552138b8fc3ead5633474a83869bd8276a5c30f4f3b9d27dc182df9136b7ab1b21d1c297450485fb1e3a1208fecc4353552b132591738ccb1247796ba471c96410910defdfa34d35bb84f87eaed6fc21396a17a1c6ea1dd03f91cb4175e011ef9fc4674cf416d93e507a19aeaa576dd6617a7208b82344894f953d4d4459e95a1b2a5b96f8456b77e7459bddcf2ef0fca3846a537d404ed7907f259ff36405e631d35fc4552398887696d744c9b0132a643854a9911f3214b33280b2115cb6d35269b94a6ecd206e3b553eb232253f607ed5b99605e3f2c189ae098e89427cd9b172c59ef4d2b63192ed06f5ccecd60c62e15dadb5fc9cb35f7cb0e623eb41cb6521d29b44735864a8042f33ec82646f9aedb9e6bc10aaed7b47263bf4de20a9e271b64fb891e89f0a3ff8c346eaad4bf2fb6390723fdfb7a858cedb0b485de15eb24718aa55d3c728fdff52643c20957c1ae3fd1a388ca20d078ea4dbe45f186a31b37425b7c9f851df40c7118b93b80b0bc0ebc7acca65879f1fa8c170a3050e7e0a48bca546b624c51535f55538f376b4e443e4f8f121bd3f89f4c3e369e64c63c2ad450f88ac440ea70407eeb82bad5fd451744690274bd92c4eb9803d039d9023d1a2cbf9bbeb6c9ad055de563dec90eb623e6c55efd41103372b8506f06cf17d68932106f5cca5779736d74d6b6bad4054271b0832934941d4987caba50150af32831488f1542f2e5e16ee4528cb601de461d79c15da0fe9783666a01cd72e91494c3c8b30fc5d7278d3dcda422412eb70165a6dedc139c17b77be22b8cafeac0cab69e4c31a7491a7655dd6a4fc09e45517951918107cdfb63b1b7317aa42dfe0b4960fb0335d3bdd2a03099e07468054852010849f75802ee2b77a02c4cadddc2d8db1867a9d8b00e747bf8d2399db460105463adf047d12435ab1b01affaec82d4ef2c1237ebba5bd9aba2d88312d7c29f4a36d0a1ec6f5ce0f1d78bc4e4c214fe6c77e7cfe245d28d05882f5bad3497cfd60b753340c915e9dd1e56a498779252346b169469e0215227edc749da576c4f60decb77d02f378e18ccec9f16299429da2e0e1378bcd170dae8ba77fd0fab44519f0b3848d5d46b91d53e2012796c5df81c40c83c30119c07e5107034ee1a6a5fb3dcaa0853899567bd4b60730b758e0143b27d0c361885ae24d847b8cc76eb3274935d62265e739d1e225fbb0a6bd3d7e6617e44eb17cf47398b218c44116f40ac3a1abb2c442397262ea37ba1db68a1fb75c27a12bb3f8b8ac746e93589ff271e6e94552c1c61d916d8a8ec83a03156ad417ff392364f2ed5535207428ec7aefd04e77e4c4f377dc472166f636c1a49da16c516f4e979d1a776247453b5d175738c2c9d99f7f9521a7a0f6d7d67b28095e8148ce68ff5fce59c9b2c125d3ee41c92bcf983984ebd952141a20cdc8a0aa5bd17b5bafeabbf47504b0c6fa2a15788bed7285d6742e3c632824ad1f22f9505f3e17be7789d3dd87dabf71d657b91bcbfcc9fe123b1f6d43b2018937fcc84624e6ccc878d0c3d780c7a59125cfb84b103e061ab807ef2f90d341c99ddca66a0e02c9cd888158c5ac348290b3a831cd44280abb91b6462018c97fc32dc042155b8f915bb7493ea868071b605e2984a85da912af106567ccec856ec2dbb54794d649f5b38a974fe58bfeadfc5ab3abe98f7daa19be0bf11d675b6dc6137999a0446d551f8ece0baff6eb63651b8c7ded790dacce37b1ca5a3a1294627a77e0c2fb47916ca25d38cff18e5c57556ee477d3194f85819aa3e52c6d0b9da269f2b33ed3f141e990892af5767e0407752dabc931a0d702f3d7115285c255ed5cb8facd939228dbc6719bc9c27628432de99380be3b202c3735eb1836b54972091f6e89ee7c04f9640aea5472647595beefe8abf2bd6ca4fcb6f000dc5c3ed2148386a01b751c3ad08fa3c0c92589a24cd13bfb6fe09e8405be871bdfd4bce0a478667971c19eb8b74da2ba916f566d52cb4d7af9b3361f9356983f26c822ca102b14ccbb0f6edcb10246deedba6a08d948846cd52769d6cb2004d5c85f0fbcb327d36aefa0193bbbcabd013ef4e701af1e3750f1a8fe7462063f93bed6ab42f4c1f789ad2a5cc8ba85b7a5f102bc1dabb7d429f67aef1a5a87945f2efe2d5dae0cc19a686672911b94a611c1fe0c0b3691f7ce81a664d615d8a01de22065f02baf353e52a4260147307d1e09d00631514c068847e70f4e2b8da938a57e157cebc0e157dbf61cd32d089ea24093ce00e8e353ff4acecc38f10d4762e35854536ec4082851615ec4e9f892029fa8031735796ad2be22bfabfbb5fb679135cb8ed19d770bca300e0905249b92c50e1970d20a454eb8352bb47f16675b4f079bf601891ea07a0f7f0f65c3f52f4d9f414e6cc1a47ebeade918f9d206a2d9db071c07f1bafc82a640476816a5ba039ccef95318c8fd5369fe63cb31d5df8759b671f5873b0fc52d22caab58796d3fc4234acef84aa10b7be8b6ab8d2acfc48273d9e3a059631320519177ad29c2923a532222e13065ab25a347192b3ca533c5414a8bb39394783f8a2f8c97258fd8c29fbdf1a6c8b30977df93fd2d4baf7d210133f30c92a025f5441a3043e8a7f0cb8e75068590e0fdf76d744036c98c16816e15820a12a6e0824947472fa451d13cf1108394cdf762e452de5be7610b8bfa02d4bf85db110f313dc5347e771363522d8742b6f3cca7b2f40868646e5ad78b32748cb5b68eb6c1681c244e54a24feb760a777d5dbf646b9b725a6ad6c30916104eb3829af4e96118c7c5d3edf8fcee20f2551f164f02bd51f82a10f0ec640347dd4c7b7187c91242ba9fcb49418bf6d10cdfecff5fa599868d3eda5ca7ccf5f505747fdea181425309bd235a04ac1bbd3cc5a369cc5b9b86613fadfb0c83feebe340ada9f70c4319321494190e578648ba4ac9ce054ccce51d6c7e367b2e5680c690c0066870c99ec6701e4c272870fae3b0f3539bd8cab45b396daa85545d302085647a1fc4cdff966fddfeb2b44ec7905d59b93adde11c33c64e3c0afd2fa6f292d5468bd99621ee5567a92311a296a359c8dd0c953ca2e89423b12be6c38a2e5e8b305876af5e006a63b9211073bc403050343d551574f4bc76993ecadc1f261779d7639e9cc696f79d39c9df39a0e023c5e35ade386d27a15064cd46b9138ede852eff9c74a08f18139b211e1db947fcaea6313bfbec78c43f7dc4900c0502c92b95525c97daecd5319ad8a24a2e5fd5ecc7e484926213c20e9f3bb35dd9c56971ec31263af7187df8fb9cc2a1153b57f9daa76a4c13ae2970cd8e1f07e8082f24509a629f80c410444d4597eba7629596bffeb0f284d5f3c21e4b9f1c0e70147d228b2e79f5daedded52d809f6a9cd1a700b2525bffb92b13305d845e3bcce13ccd72b9201e694af725cc9d0d08cb993e94fa7bb4bc76400733c04468e7207178f012c7fc64edc90d56c8f986c806d01aebdab7d389a5c12fd1f2939847d7bf4ac45c28a8fdd2e385fd2c43bc02ea742ad419977293fcbd7885892f6b1d74771647597138e032a8c8932e2a1250146e060354f2c53e882da62247b21a17c83d6241760f921d11ed96d04359507a73f9e49ea3ff892a71f3f47d4ecd747eefb4c35e71e074d7e62ceae1326f14e93a486fd265bcd75f6df76424fedee12b1014400533773afe32ea519ffcfe2e37eb4a0f5a1c89131300d24e88ffd15d1d04435b3fd4f5fcc00131384bbe535b5e202c63e8772ab1415f4f2dd1fe87bd657c157db3d05828875f3e9be0fe9e73c7eab476df95f82164a6d69eea4dfce49d6bb13689d6b6430099b87cf16b17b66d59655b78cdf0303d7f5ee9551edb10ce5cd49045b62ddd627db7604c140c710aece59e6c8817032a7578f4271af011b9a02bf07eab5b4875c3ce4e353ed352295e2b9e3aae3fedd0be2394de167828d1403405a7112989ddb3ec864e4d4b84b595cb00122491de937327f09925ad1a5f4524d824ac6cb85f92ae95ddea4df238c4430c596075c66c48b0f270c7cb36adf9c62c18554415fb071169883b0d33806b704e25dc04a362dc17b06e66f1b65fd0e2b9062d7fd2d209d3f7b64572f1563879e4e456bd2dd52acfa904fd780ff7dc73405db32face0ad148e0ebbbebf880f541d10e31d618f736359988ef62e20f51f5b01817e77354dbbe2bd3c9de340272862ced1525bd46f35ac96880106a682f3142f8d27e3187d4cc77aa8c83accf725a1d0a740639494401a9d71a0ffbc27b18d68ff64e165450153e56d606ff9257fdb00246eb5771168f5353a7bb8b5991aa2fa2c523530b1e51a48d35d23d3b5ea11565410eff1228370e6e44fe32efc932322d7a7f392299d5485b3c0fe47da7a7ec39c10c43e4e1c20a4d752bed484af0e2dd56c737b489642ea016ddf74f4ba8517580c28e84bfaf4a2aa06c11afde3ae697891086ff94e7308f7032db6c7db83d8724f292f04761c4d4dc492370e7b6e4efddb6e9e53df93e31ada557d2c1a0aacf97845d0f9669a22a132fc55c556a85b23f27d16c755d6ee06c95dd4731f5dd2134694627712ab3a469069248b6c4b15c0d880c3ebbcbe3cc636bc4cfcd419047bd605765f550e5ca03428d8d51eca8a23a29932aceac707980f39637e7bc387d2b3d7359ccedfbba10efa98a54e2ffea42e618a1ecadbb3f62011c8e8f31a2f34560c877f52b7ba629aca21d0f500cceebe3b139a54bc3c91fded8a61f14124f0d8309971ee82c54009dfd2e400f609dd753662e37b68b975d384097cbf2b628f60f7f758caa829c5db5a02572bfebdae72763dc82b1d37cb4909d3d47b4c78cf399423193c588ee6ff5cb6f67fa16bb6fdf67468a52be20685c12b57a56b97b513addd19e9a14c96971a8fc96f99cab36d82c9281bc797f6d58a7e4461f35695fdf10bbcb475645703edcc4b8be44c84acdc08b6f3f0d68c1c689f0597105c0ead5cb3b0f40fc8ad99ebc3d62119c65a36d471e5e7aa3fe0e9009c513b7035c89172503f08fa557bb07c9e7b2e3b48a933416dd1a63d73ba683d2917a152e0db427c7a5ced0757cc9d912c010f0846f0ceee77f8755c568c22f28483fd96f18b1895e1bbe0c3c6084e716d0f4a1ef05b090c25e7a8ce3a7200ca120d2cf53b74e197840ec14c47bb722579fc79bb26db35736f72ea6ef69e6f0fa1687fecb946dd0ba559a0c98dd470bb4bacd6b657e9146d06e461691f8d7132868ca6976525bc38f7da52aaea652b91e3224427d438d80f50758a7aaeede05a11965de4a04fd5d1a409ff33c8c9b9cbd1ccdb9cd7b041ee0ae116eb7bce06a5d71d1ee69b4c92bda0c766e36584b4b0712cc06501892692170e8cff925e565927a9f96d9de94b46eafad15b969fef9a7b0521b12c000afe000597fb5c08cf37a84e93558f22838bddf27871b2f23773f18fd950f4f0d060933b88f2779d7acfba1d8d612d5b15227b27c3416b1a8c3266f1e8b5e53f9c2bb84930272103bace82a39eff760f7d39826e395f408fda2755d1d7b8a8fed76a891a1703a98098f11381f1094e06753f29aa9a1a5e15bbc7191e00730782caa5e9b42b04dfa27cdfc2c9b35e294f24abd533e8af9ff6c276a3b4b3becbb14ba480a919b347014e168277ea83d33b2c225f9c70459b7327ec390c9707ab5f384c2e70158480a3dfa3e922ea4af6367d7ec174e9ac87348cea14aed336cf9a7cda96195c17e2ca633a0988c322743c3a5669e71c5183071032f251aa63ece1381d94997dbd90ee1881ba7e6efc5e281649d62b5deb9ff75a5f563423db1af5f473c95ef681f3b5203e8f3fda850c554b7629b5619c98754032949b3ed29c90c0b86e0020e4012c8d933f31a05ff659d846f66b5129281bd25fda0f110a380d75f2fe8229e9f48617c36e231ae59aff7d7b1424db6ee3be3226235a69b17ea69f300108f764264c3c6b83f17a99282949b8f943d78a51698ad8f599a74a252de7158dc0409be42a1d2334dc4cfc7346432342362282408bdf9ce61c4fe8db611885377e0f7ac9191247c94ab9feb0e113df69cfbdfbb1b0050da276428614ac6ed3830cd655155352d2c5e1dcea4cbc913820fe8cbd0eceaeafa872f918ff395a1caf8055b0265ae58a63bbc54511ddcbebc706bd5462d41f7c6e38e99d2cdb4c0a7e62562fbee6526947d01e87d281f784217886bd223afd102a0e96c59a683a487b388be27ee22033dbdd1098f052efffa40e7eeba28c8dbb1a70259ee80f22fe33f3bde8cba70dfec54212a0d41724a7d8c51820a2a5582d4e56404e813b376940a7ce9097855bce7e3a887015bfe5ee37eb7411d2bf34eaacbdf553d483b2810bbcb913ca658a814cca9c2154938593effc92100bf011f90ce131f5bbf97681f9d8d827d91d9e69fb6c253b4f353f011db22fa1591e1d9bbe80edc6a4a0e016c1d381511dfb53b510cd4583cb79dfe1d42fd7b07de82402815f91992709012c44d152bdb064095387ff46977e494d843487e1719f843b0fcd7d05652ebfdb3b564934e1fd2858ea0807568e43fd67c84658d11a0c41ff39db3376c992a3726063c257e18e3e683ebc7f7791681d6e6ebf53c4c763c2c775eb24ed742d0ff8793d3b2427e2cfb331dcf8fa15bd66c0ebdb8c283faef688775e1a26fc233b13363ca99f35e75c9265857faa81a5f2d5e59540002617cdd5f7ed1295f71debc30fae93d4a11da4d5583e2e04bdcb193aa2dce9b0ad71a083741174e6d7e0fff62a09929a7614b50cba1382ed7bf54fdf36515a88141139c96f1cd0befd239e161da68beaa890a8b3d23e372ae2f46747d4877dd8e2d45909d5e0f1dee55844c2139897503f33021ce99b3596906754902e02a623fe0a07d05cb7f3659d7486cd69951b09340276579ce3b2c7bf9487f140cc5226850aa4d0544c2534f959640c213bb18519b31efe4225167960a1704ee25c4ba4a3cfe386b570114d8bdaf00cc1ce5917fcae0038b8c915f3ef5aebc3e2707edbe7ac81588fa69269b878a4d15e191b829319c4a7c3adbf5380acf5ec1a753ace21d4bf6c54cabc6687c5234f264a5f3f86421d43124d15bd2aeac1ba115cfb392fb5b1704a27d49a558e600efcbab14cfb4fd7029555ae824c2711afa4389af2db6e31e12ea16b9e97258e0cd0a5288c39f165846c622fcd67eb8c2fec9eff4636e61aae41bb6816bf76f53a65deb1666ef231d30fb17f6000c12d78bb456cb15dd652d5dc41c2efd6225719016ed3469e22ef72967ed372dd4855f35bb774482b21620bf390e34ba9128f985bc71e3159718571cd29b3aa4e509641681eda448beac7d2c3ed5d0af655d3663fdb6202baf15ceca93dcb276130a77ed68b85cfe91f792c30cbef5148259b131a99ee80af92c447080b0c5f74ae90f502bbc8f5b06d71c38e69a44e3d7e6b226c82fc556c4b87e3bcfd84c99957bb5feac432e4049c1b601333e1ce3c88596ffdf14ef5d6aeaf665185d2b5c8b88f8a38a779d13e14199793a04b57c76e6eca5a81afefe7c4400dfc509b2468e4d3e886ee9ef406072a8813f494de069716e45c3b329df001f3fc5f6ec139303fb5a048c0daed15987d28e8ced655723c0bd3d8276191912266f28e3d9ea87e335fcbc8bbb2e698646be309ad60ed14622fa99739d45c554d979cd42e6cb2c6596e3f0cab07f22ef88c970046d43fb0b1a22f82a85e7fd9c0bddee16f0eb4c3f29f1630f0bde1262bb57a2741f577b50df450abb327a404c6561337c14d479f4effdb0b8d0be726a60707efedd71172bda891b6ac8ca4efce12055d7372600e45d860c076867af848dada4b09c1ce3262af942701399f1314fdd32c480710066db24c2461f16e74c6b7adb41d6ddc05d23282ef900c83efcd3a645acd8161e0d46dcf68ea5ba91f4b9a1a9d508e6ca81caa6ad36221e459765d2b4ce713d76446e327a498e3e5862472c23cc32cc74855b436d0c2e963f634f4082d13cd7d0e4991ab0e8d25d5cfd7c8f03725a5a78fac41c82c07f3fb2c3b3f288a871b53d08feafdd074d0f734bd12b6f2f096adf6f2785b82792ae12c403f447bc0bad8f574bc062b1407d1338541bf684ccd0bc0f5cb4cbf78bfdddb1878db3bf49cb67492026aaadce8dfc0f2650b2bfb45c667d6c4af144af5c3e36dacd86912f9ac24e92f3da8c80fbd2fbfd029bced6e0417d17a262b3e832a2db6d5fcfda037539b5a96c9494c2fd390aa371670ccc51773f4ff3cd9044cee65503afadd9d0ec691be2d13eda648128a875ed9a2233f2193fbb45d9dc76a4f855336283ece63c35b0adfaba9919f17cbce43994632b8f9a873533214354230b2cea1d0aff58cfc919f0bf7a47fb8d117af73aba1adacc94da4c7a5d2c5711cafde69c0cf07cd1a8cd82364cf40558d361c8f31f5be98249a0c36095571e7e26e03c16bc636fd819d7b1b9615898869ddc03d539c6052958c510e68ddfeb42a1b6d2f3db3b8f95be85bdc56042f790db4a6a5b7e9d5f5389a8dec5db2b24133554e6d83d1cff9a38425aa28136cac6336653fe0b332d3fbc038b4a4310d31c42fc85f847f7263013d332dd09c19f78bc57286eae76276f494babef4f4827391d0c15bc7f9b303663b06194ab5e64b07df3e622dded0a586c5783d44d90f1ac2448cbb952a08b1ccfa0f79093e4ef7941209f3a8dde191d864b8efe0ed828797c0136fb97dd6ce5f0be7a31300176bbf490f8a7f0d5975c4b97fc6b266f653bd40bb29383ce483a44326124fbc5179e1a9babb07cfd4e0c2f9e2ef68295689ed844f68606de5b90125b9af2cf295186142406bcd1e10b669c093c04948e915a324187ffd49f245d0fed045a991a899c40556b715e681fe4d10a6f0d623067c6348d42d58c66e75a9678f6775f0487e53005ce26d8b1e04d6fd9c7eb44eb15f79dd1d663b67c2addbd2eb6c300abf6ea7c8a3a9fe29026d4088c76fe2172e8700a1747b199833835af4003d91fd3e7f3effa4c19810dce3d5100621c5c7ed267fe546de42120a126f7168c12107e4ecd15b0b6ad2a273a24ade8a756dfa5ea8fa673730b492bb86bc0c177f4ca6b84226848befd9ba8cf3f413d138bf2dcea7db2e95832c610144a2a6fdb66382dc3659e42bc31c06977c4cd3ea9c6b808b097ea2971c9f7e30f372d6946c05350ad48e2be9f474bcd1dcee8f11e788cfabd946326e55b44f84a8cbf1837a0f716c6c4eae769b1dfa033dd69795f729e47b98e714930966b77274c2cd0a5995ab8f5b33f04ae43d9c72e6318ff09bf82b3eda1bc66a09c81854df6cdaa76ad866407f927361a741742095fefe9f040954fc71d1951dbb18eff286c9fa4099555202c38047fe8e76031be0988f9992660045a4505f4572d0dc767e55428addcbb17781f18b16b523a79d0927d7ebf2c6ef5db9fee09e1c1bfd97cf4eeb627ce6c33633f049989a34a76c5ecdb4fd1b0321325d9a0ca17149a2a1f9bf9f7302b21964a7372ce3a86a613a4a9eb4d7293f13936328037eea0b54dcc6ee975f5b70a25ecd9b6490e2f9d357be7ec3af9ead06fb08171fd2cf48c8e40cd488695953e66ed5d6712a47ae00adb4c9372ef857e2f59c4913eee2ef7f40021a761a76c20cf56ce2b19345c22565a155591933d13309b3d1ff824de9d12d2357c3bb167181413874895069c812b102edf6c59181ec6042836231021e72f419d713eb2fd1d2a74a9a50cf9e55fee1a6240d7663c01cdc7f54221cb1f8e941d23c4ad998ce171ace45483fd277b951b979d8616b20a033a214c7fc0d16335f951af10cbc39ef355ced72d9940645cb619812377f6f2e5568d759d2f14f205ac071539a1dee1a9ebcaa86766fdac1215fa16f0cb5dab683a765f52ab10fb89d019d32ae7aec9984c86c89d9169672a6578e8b20a46a64ea9f142349df30e08460a79655f7790d63efc51535d6cd0805781e88f5d19039487ffedcbbff2b1ebb0cb4fd63c9665b9e91057649fb73f9da13ae342a420480d5f2a0198a1a3cc7af695e5c4a7ffe11559b987314006b7cb7b9fa2bef1259454e0b7107127a260ffc2ca8f603e88a1d8fdb3656dbfaaaa09232d5a8c0be7712d5b698b910887bbeb04ea943190ffca4c2bd106daac6ddd34599f2b67ec57b7c347cc883e512ea24c6e96f094a21a91109acba7642ebc694de3bcd67744b51a8dbe1ae1d0e14d2e12f8a9e3956d2ef60fe6b091b27e2652e50b34e644f3666720fdab30a8ea5b58555d5ac2ec5dba5cdd0fda13616a2e33091c87ebe392b27c08e8f4a86376c567c59d6db2a6d3c2ae66fa7394f0d365f006e8089c38eb3d80748318d196e074c3d5797e4bfea5fb2555ef97f9902fdd767845e9e0167d61eea97a08981257a8dc19fa504b3999c2fe5c19f4eccb07e2eee18b512cedf94a72489a355ac55e182e7aeb36d0f3ede99f610904bc577a0df7031891a534c7efafc255d0bc264f6e89925a84cb1dd252019a34d9d633b9a2c2bbcc59fe4482cf69ea4399801ed30a2d971b149e13ec575bd070732f8e893d35ec8d0c03527886ac119b41ae576b1c5c9345dc10a7d407696f7ba9fbd6c4d05574c41538492b30ea0dbe5bbefbeb0573b1b3921ba2962fc74e74a19bd6d8f4b2a8df5916fed2992f5daddb9ee3f914b28184612b4933353a1760d9a68f4686921ecdb1b893d944ddc88e27b866938838e29babdba620c2e4a6a6bf6135249406d985770c5b5c398e242bb8531286e7e93f1fe152f7c63db91493db1d859c9e41117f22d76cb0a81633724906bef7a63765fc63b55d0018b0d1d785465f6b25c4e439f4221fdb5fc44ef69affa3de2009f1617c602aa0e38ced06311c9363863d2db3b4e415170a4b2d6cc0615e86da3bdd415ddf5ce9403cb41942606ee92b3aa7f37eec16534306fb2f0202ed0f1b7631d238ccb8169814b0ea7873c8770bf955839d73f9b27a7b14bd4d3531ecd1451c10650fb9d2a3839cbbe8a8ee1b7402c4ee76d90109a545d838368a9f66cdc5313b902ee9bfcbf2fbb080cf0df72c5a59468a61ba65bfd466e78492411641437c54059eb0ef4eecd250243473bfe36681a17b04e28321aba8b2591e846f9c9d60a40046686e3ecb8108549e453eebe8c39730a65a57a0029fa8db8ab832b15a153614aea6b64780d5a8650925d1499a45c6fc4218868003d67d7906a2f729a990589c800b384f352fe44c1c76ea17525e4edee5f2eb38f7ca04baece1ab50cb5e1e445877dadad911d4f3a1fc8e2ec51356ca79e51505213cba9c9b980c25a4c7df990989744ce27b742384ced8253e518509c8b3c74726a33b8a641a2fc36007b6b3da6d52ecc33225fc0a9774a3e6a589a4352a78bd308ecad47a2afb19782302e45a8eb5c3f78c2afe629824f97b2c94e0112ad17e3427cec801c8acf17a12e67dcc6552478e562ca2abd73f138900d9cb877d31d303fc4f4d9c3b50426e82caa952ded1d19d23b78110662db77f4e14da84fe2cd31a057d1420be4ddaa986d84955e04fee15c3ba0fafc7ec114b9dff9026f408db4cfc295c4ec3d95475db80eecc5fdc72c18b0be14a0f8e963569de4481aa3ecdbd4f4a3eb4ad8160dd3af4da6816fe6a81ece1841264b92c3c89f4e4d130ff24d1607a911473a3557b73ad19c1452dd20a0058edf64c25af28210bd86cdaadd8f8497759fd82f31c298fe4a00651551eb1e3f167574b21ba0d14f1e8fb965d0c8e19a2c76a13fa65db5c1987e3b9579a07380f2604050fcafd03f542dd765c941d4b83cb99d1922d1c1e90477d10879063817a55d97be4a917ed6e7eb5b8a747d24b43336cd76b94dfedcf16cbb22f458915e0c87497a931425334bd868d7122e701305c00b08a05adb32247b2cb0bc10de34f30c893fc5431cb25d7de58a1384ba23d735e28c5ac561b17bd9adecc6b37a6bde189bd90818e60a296ee925178e19a7f455da3483db91602746d509576670e8031c643a84d5efc0f059c9a503c06fbb1a020aa12083ee47a122fcb811656eed65a13cca076fd7756c7e1b5a1ae448fb143d37c78621972da8ea80d1b8fabd05ff829e5642f4f7a658a0d37fafa65d8015f7e79a25c7f3bc1e3cfb4e40cc0319d0ce469f7bef695ab7faf3d4651442147a520490ac8486a93d4e2d0d04f8c2e7b9ae464ee6eb6609fe94cd223b80b3acdeb66e5008ec21cf5c165a4c92515b0c3cd690bf2c94d6539b8272c65afd2ca015ba8b32856a12c548e78bf2bb5dbf9a7b30bf4422a71e27735adc891a2b4c2f62e0824f97c53b95f9233c646971c09398369c42e98b442dac15d9c632bd823e207df7d405a2b0589a1fe94e0c2e761f275072f9df8831ae6a03f0d48240b509ecacdc49bd71bea881e1422b0465bbe2f30df40888b8242a5d52e97e58ade0429111cecff560148d91fa26fe4d38a93afb964ac7dbaeb55250f9cf28e326c69252b44e033e9b05339a43b1e9c18de86170602f61d37cf75f5a48c56d04630eb58aece4852d4479b2dd78bb36ceaefbd6e0d4b249e6942b3aca3edf6e79da02a2d97df464d6a75e97b657d75de40386aa1746cdc492fe1eb63e98b3048db6be331f916df672fb9eeafe147ceeeff0a1100c696a1fde83735355243ec19628a8f963fa72fb750cfbc9738158a8c92b5d7bf396844aad9f02cc6f436a3b4178b7fb3fdc20da96ac5adc73531e31d55c58a760e976dd7d4dea4b96e241628f6c545814fc4277d9f71451618f53dfbcfc02ea2715e951d3d3f2b3941243ab86e5e9d20caaf53c7fd45f91f36e1a9f0c1dda721f86fa7aa52cde0713d69155a9c3f6950fcf443ed36ba8fc1b296b9bffa7d6dbaa66b09bfd180e71401d14638467c02f87e8e76ada5c5f5a041a3079b057d4d938a20b832e11176d68257bb32b2bcd0a395e3d494a423fea2fb50caaea398fab9e117b6ed509c45f0aebfa45b47a412fe5e0d2587345c7b7243ec2c94167e809cd32c146d28fc9fa013031d780059cf5c95611f3ef3ca8a00ba31c1dd3a46bf8fb932734485bdcea79d5a0284ae962532df64b5c4611eb4fe42d63f8e726abf4cf7ebfb97c9b90bc964f27f2f0bf88f9baf86d9f97a09b665195bfba15f7c066f63d370a01abc5d50889a675a9b5f41d4b648e1109a2176eef39fdc806e2a14f63f7a2b2d2fc7fc8a1b07f99c61aa6fc1e2b36d11b1228f9a39e57c8e305bd6c7c27c8d1f6ed6f2462271f3c060163e67ef3ca058cf13662b4630f59e8669322a2e4fabed5c34af5b9daad645ee06fc70877a4414f80584a8be43477a9bcbb84b7965bd1e5ec02b22a7f708ddd41098aaf44e81c948672fddf59dd85daeae37b9887732d2bfbd14f79f3e2fee46787a88606796ce6f24e5d8602f5479ad5128eaf6e3133a1a061dbb6a616514a18a759fa43225d072125f6e1bbb6b73a028e2b56c73cb1cfeb84955b9d12c9dfc7d1d2aabb1864dc55a4ab47c135ee2e21216d689fe3f50f3c2892c69b2d70b92c0a4875fc3b91aafe3ad86bba4dbd32e2e536d5db8ac45c7d55eafef17ef96ebe14cb82ece87de02ef4503a3ffde4877103e7f6e1f8d7c2bacb6cdd63993a7e77f97e317e997952469c70e575653b49272b27454d7750ca4b2547d49a71c5f8be1a5d34ce64a0d60a212cf281def80b5953e97dfecb81dc66f5538b0d0550ea529a17462e1646c8f6cda307b417d8abced469ad146426dc645667a5d787cbc3e4b985a1133bba811d72961b7a8eba147daa70f26452fce576745444adcdaa3e029fc3b86ec570d1103805551e9d90aa478daf0ead042a5d919ff9de2aa30b2a38fc570423cc6bb19caee43dc6f0ffe86d87817a95e7d6dd69e260ce214540c14e35b798c5e85260031c6252f823429981d7dc75ca5ce32d25efa20408e6b87e3c6867670fbf19417e1db3c99d2652dcc57be21fe0b0d17692ffce92c10e12e6c0d10ae501450a2b8216b8a2695be1d8f1cfdb0990f1dd0bdce077c1deeb7bf02aa3e0c06e301c0170cdf56f448c102bf2a49def823792938ee5a72e88f3e2e198afe9d904c62b06bf395ac95a79b5a76a3a87cdad0187d93665369f2a22d2031805c1358c92b0b643bd2da876c9e94a6a1b03ebb0d0c3f3d6fe1826a9426719eaaf845fce4cebcef169af5b6e6e595823a2e3c2e1efe7503f3cce196662baf190035adb5b79d8253e93c5212861c36b9301673c5703937135cf63131331a9c22ec30e845fb3b739043920d31d774c37fe4b0428a42b4354771ac1dd3ec6eaf3225163a789d55741ab8cb85069f747d6c4a5fee0509242fc61e0ad872318e94bf26d60732f237c1defedfdea608ef1921f3641edae4137af1431096ef3fa4a80df93a5b13e78b6c9a232b7d1b179840c56dda5fe99e8082a3e0d810ae62b37ed2301963a7da19d580b8dc9047cdef0d518f4aa10ff28a42be3bd2054561c55ca75084f224f9313732473284dcbddf92a76884b86a2367cd09dd69b339cb53be4bf621fdbe400e1c027a498d5ef5495381f5dadc322bcfc96274f062cc2de3d2b77d1b1f858f45e38db78a213970f4c826ce622923f0e2ef3808c9d9d4867dfbfe03b916d45c3141a32a4a7de38eb0e0fa65bd207257908d5d0527e7ae86304f02f463445600fabc7670421f153a5a79d5a0a8245a2b5303220ab8dc3673f419f386aa2f94a8d7322a67f94a0aa94ee92dc9d8fe311a5b49c686970dd6bd6857a5e2e0011563f851a3d6f485d8fb467815319a5a1550ec68378dd3539f9ea33cb2bf27080fd8651cb2ede11cd31b17e3010857481d6d1dfc1d6a9b8c7b46eaaf6ac1f337a89b376c87cd779dff93addb672f65bb28daebb93ce1e919667a87cb99e9aba4c636596d7b9dea5d9a53d58425186f0d35befde31e271e5fb9a91e5d17d2980871492d1d24e139f1aa8ca6f7bcf2617946164fd416f27f468bd1c9692a962942bf6861d0bb0a82b5a82048c05ebc0aa0e0b1757a8c3c1cbd19bf08a6bb9586d45a9a58aed783be482f4d9f60c4f272050f161ed69b92c134478308fd577c85648f8fac336ea6160ec38acfccdaf89c91fd88e17e030524202729120e0336553deb0168af2d60e5ada5cff8ec3c76770f21c89b1b631b5a7a9a0100aad9bba3cb6fd3c6c4227a2890baa8761d7e3bbeb1ef2af5ecc95ff540fc15715a84e2922252d47aebaebee9677bdafeaf447506892934ec42955df2f3dd9312d779948c784b50aeefce7781a5fc7b626834386311b1d3c7029f2d9d18d443bf901122eaa779c53f6fb1ff460102be6000a9afe6a4f3da0126bce950b7525d652766916daccf66fc619d5d61f622d0eea34079c302e265673c8ba1a9df99499bf40718bf2b164cf18a2829ef42ff95947236f7f8d0783ae3e592aa5920b2278c807f287ce87b714506be2daa6b831e02028da34416d9602457b065540f79236d0ca0bde84fb6e870c6748880353d0fcedb08ae89bff07599dcd5d369c5bdf1fc08aacdfeedb1dd0f0d363a5a2dc07561fafa6eff1cb37a07511994bf616d03a79c3d0f6bf4d25002f3336867221ab1714fdb783e61e12159a81225cd81cf41c4221d7a01bbc5a803e2afc4e0a657650d40b352b32763de21668a83a2cdd2651ba9bf2d573cdf7d671c11da189118ab2d24582515e92e34b6257880496d693c3374b3a77a950d4133324b321a7e34edf0c975e53d87c20da9135168038df5694179d073368758a05e8e9494d34d6f2621ef68c428c52b18f472a6d5fde0c57e80e33ac0e5faf1ca9eea6cd3009f3d716bcbe9f1eacda0670f1614c9da1aa26e8091357fa577d6f6c2d7f3e4935d991bbb8586f831a9a8e6c2ea7e60117567bd9494c40098acfdc952388f3f5f32e6b07ebaed3e32cad3518a6ba3c7bd2db5f2dbb51f2e04ec1a89d1c4e1b4270ce6ab39fa0878f78404c2fa2bf43bf004a9267cecf4d054aced2dc3871145119fbdc2a94be70bb88f4707b74fc83decbfabb998ea7a905f0822c752615ea48fe208fff2a477c323883c562612da4812a64d893590538ee63bc1c34385086da08fff13ba731341a56d0e0a4f4015ae5f083334b4763ecdfa2a320caafc86371aa7a9a4d018d90f3525fc7cedbcb56889b5103fd8659bcbc0dac90abf200e1349ec236c1b68d653acf670391dfab508b882b82c47ddbcfb1bf6eb050c216618e666f479a62a03657c0dad05b1858d0cd4c935db49900a04f14abb6d0c831111b5df6ef46f9d0bdf4ffafd8ba47a3f4423e6f9b72ce5f3f0014a5aff5c9ec36cb86729134ef1eaef603187a1e80cb917b1bb189dfc76b2c2e28cbbdf861d27fff8d0804379c955ef3f8a9a6d29fe7fca9c2c95698692dc00284902107880f43f54322da9afbff4885cc1a0f3132cb116f2a4bda66fbcc73dbce072ddc49a5807a169e66c9be06e03e3f791c10e024fb9218f98ccf62abbb33c54f32ee013ab00c092188b212c446e662ffec44f03e0c988de60f76946f26558c91bd292e6744dda92a814831778c05fd2a588b7435df7b6861220ab316f6f700ad7291ce4c612268fc813c70b0c32c12ba25ce0ee70044d01072a293b9d69230693e09030e0ea0574dc86b7e4495abcec1d2b5ebf041d5ecba1578d6cc314014f01803ec224753d716e23d872dedc60a89dfb418920df37e60cf8fcff46ac5e9a671015e4637e427933d321fbc3afe856d86692b218315656056037e1bd90274180215ab86e7b67c31f1dfab6fc435ed41f7d90b30c3f11a6b77f0836d13191c4eade32affe4fb94a8becd1501d1bc86259e14e99b5394562aca780d5ef61cc432c12e513ec9bef4d6668136ba7932c23861a578784b0cc9bc44e22c7d07d29064034097eb408bccf7dcc8a1a34f68f9fdb5dd73211a1276646ebbeccc511a8f6b7f0496151511a18d07642676e0d86446c531963d895125df9300cd5dde695216dbcb77f5efeff32f19adeceddd20fe05f97d0794a6e221c5346138bd7a1b439c061296f9010f06d7f4de1bf80fa4429bcf925e429aab2c5b3c27bc7e35d58166aa49c1d7b1384dba7d9e31f3767b835bdbe42ab3952957db2875c1838ed142fdc5e0c49a852f1d4ba92bec7fcd19d02be6185e73bd8fced79c7ac4071a9da2531bbbb06fe2aee74d093cc04f42d76efb09c7746408809c134caa7b7c5fdd639ad69883c75b220187d1ff51640936f4128b6138942653d2c8a447627081508d1cef66f2720306de59591e8b1afbab4a0ee57e506198bda632a5138ee795536f7eea216d7801e104105150b7e37549f972f701826b36fd91d6b5f1b9f6d94f1d9715dc8ae2fb26c58af8fdb9b3cc21f1730df96e8a79db51af4a87f81b92b434a87c51ee5d11ede9866764117af03b4f496f3eb5d14c2c8997b00510efa5a01407b5231076014a735f07a1077f4d6f66645f7c22aca274ddf920b9f76a49e13549605f773bc2e50a618463d34a25f278abf4e7c09cef969b782393119e9e682458e474bde99516326d8afb23b08d908df24ed824826e7dced37094b1166d8e37586d3d9cfb12a77348727736b8b1f21cab81ec248f901eed23f7015a6a980846aa0d10f224b54eb13233eb61ad01aac12fbebd9fffbf35bbbd4742ad78428ca4f1c83128610d28a4ba284fe91b45291645097767730e2d782fa4c90d82d2e57700922a6ff36e287265930b88b1b3948d03af77d4cf4997903ab94098e3211e4c186d6e164f45ce9346e37cdba86f2de4a22af9b325fe14da0126d00153b1a325893e387e2451c8fc75ed7bf4281a7462aad88136df104c2bedc967a3b9c4821ef6e6ddb770626687893b7483cdaa89faca86fa75892fc384690d97402ba6fbe638a7bd777559252a0041a2a35aff07e7181d2ccdfdec18725fc49bc213aae11370818bd0b4d6862e0eecbe5ac46ca0dfd4b696304c8b16fccb341dc8406a99012cdae08ad08ebf99997c84797baaa73375da59d5d81136fb09b1900c81f345b3c200e01aefb10337521c043df728431eb724bd194bf1e69cb85f9b7c03f53d425dcaa3cb1971f97dc70f477df6f1ff54b6cfa74e6461bb819de4e68f34bbcbcdf2e0aac2d43a50680201ec4e96440f26a92a0a5a5c973351c67bccb1b9845af9fea72f2ee9f4b01d2854bc7c1a2a8fec070212db616d6a459069557a7f8e9c24066481894213c328ac5ebc320d23885a93dae291498bab8d9a033833aa54c21bfedb0ec12f4104323f8775d327ec0e3e5d292234b21ed97a907c2ea2aebe693c0c269be30328c7c5c5e6cdf186f44ee1a367995fd0df1645af4400601b0496508adea6d0a6c8fa9b8a5834167d4c5214db165a961b05ac98115e3b500c41c77011b3b3d907d0d06ff3c66e9a83fd4876d7bed32bf0f78f0382b0d359704c61839d21a2c04b5f0c0bbb83f3ed66e746bc8f069bdf5f6e2ad9c338d1dee4ee2fde32f60217e492fbdbc47ec7ee3e625c7945b2adbf552d6c54da7da046042faae54f9ad9c6b2188cb9437b0ef335e11c3684ce6c045e1606ef1c571e5fad21cf287bce22d0ae9a18b1c89ab601ef7a9b1c082f29e7d2ecf29b0f29bf600ac49f49ac0e379ee788680ed947b42724a4bb87c65fa17cce4e60bb92037cd6962d56f4f86a5267f8cb4a9e8bfbcfaf0419eb8610b40ab746acd54bc4f4ea05e7731a78cd893a278c8411faf3f5eeecbc2ce1e96d3a4e64ad0b30d6f189554bf2ac2cedb6cbb5d6a11c7c429eff9c32c28dcef298efcba3710a2fc0a4918829e1dac6bea1357b5383211240233a2b4b08d8ed288346d5bb99bfbd5ca91b5ffc1c4c3400c7aa2849ad2cfe528eed75de8e9dad40832dda6623a970b71412ca024ab089eb77714089abdbc2b4f869a6bd7f8bf5e623cb238583884fac411d9b47584564a04f262821978f5446ef8c39d78f6e51a31bc62e4d4e4d6810c046f9a970f36ca334bf2dc4b2781d240fd222036298b9c75c59b8da360163e964d3f0c1fc9f7792463924f37c73c77c43d05e9723c873112a0fd04a8bc25be3354e23ada6d82ccde27abf538b1a79bbe9723d6016b6f9e52e0b0cf5868c207b9ba53ab454d7f030bb63a197e724aa33472228cab79257a5f0f56863cf0f1aa7f7dd3b3136ccee07a0947e68ef2b12ef12118b1ad815b7dcae311c6730cf974e51e1e04ab766c249d3da52bbee938aa055ecbf6388bd661070ab8842dffb58ccae3cd06a8833425095e38c8baa7197742c49b8df0f779dcee7c56f7314378631420f71157a62776f8c60966022a8271c16d46056dbd65d43c6ea320588aaf6e2c93514d3c512455ca15dd2e6982a4735c93f854bd6fb13810bf0f8b0f0c0c107fd480ec8d8837937fa92138978dfdba314262c0e01b8ebd6e0880a8d923ea6afecf4ddcb5e4f1c13fb3637e88f94bc22520bb934bf2d858bf33eecfcb3f23279e52e349d3646ab4d2d69e6a0c9cf1375e40eb3c66c1688d4fa375d70f1f9e4ad9a65f7b3911d9cd285b14064519b935c8074a1c0e40a073ceea8bd7616038642c414d49ed6df32ad3ea86332bda39c49221a58313280ff5d01768ba9560e33b977cd4282bbd746e88e4fd7e0b535401ae8381bebb202ce04d8adad80f690e1d2067b81ee0117cdca23b7257049a80f65483c8aa3e797150215d170c492eb899509e70233132aa7b9fe806d0894de9487ff9525d47b366668d5e354a509ec155b43bf278f2492926a1e9ae58e2ca8c726e77048a79dd6072b498631948ff5b035dd1f932306d08d0edd26238aab4de20258b68ebe8bd03841f6a17e4e45dac3a6176e8baa8ea94cb6fef47f552c9a3aaea1304b29ccccdc73a2eb57eee4bfe3f58e385684d6e9b7f35f16a419d09024cc8a6cc1712fe383bd57575fdc5ee1f1ddf9e3961c6f3bad6f031f074222ffffc0f037890ba5d3a07a3cf884fda5dc1ab183a8dcfed8833aa7683db18ce72e743d29695b37a782a40be20bcf23251f14f289d092d51e0da8d4290d1875fa3565a6713a4e9299760e1218d1f79e71f112bb863c1c8b5b320aef2cb7434ea8bdd58eb11951915c90a9a2df07188a70eda8075491aed8ff64ce4c8f33fb755aa7de2bbc770107ebe0c6825e5527133ee4de191a6a7078ad861c02a1f0060dd3575f6fcca0b211873ef0cb15f7d7ae109ad6b3ffc27fe04984b0b236050a99275152415e700868da82b205fd48c821b66cb273a91f76b9024482fdff3b896d6669d5930016164f93059e11df10ea9de4e5f043f1e8adb7691b007330354b8e2b352ecbc0ccbe96c090df4c1e5e3453c3623828e8abd2f2e588ed412f3194941fa5245ed0fdee46c4470de813c2f94dae2e4746db81759e96aa6711945379f5361d7d33b38376370c4d97a7b425b1c73eedb8ca56141230817e47b04080ef0cc80e482dffe6d5466c6f48b2e00f1165394e18b0304505fa2b74dc336d8c43b3297a0f5595dc0ed2d3c3e4affc146b8dccf6323d8ddb0ef0338ed423670850e6210ca3aed11618e1cf7e210b630479305cb2d797afac642276656db2cc9cca70b5c087d20f499307aa24847fef9d207d59c5f3ac14e8e994315b53768cb6e023114117340593408038ecb43e8087fffed572ff58ae5d50f3d108d98dc8e2f2aac73dbf7da88d9ca6a487b2b684eb111fc684d2b381ce3bb2fdc95ba9d2b1446a61c5c4042415d43d109e0c1d7195e86484506302eef8f63e84a5cb3661acdc0212f83990e4c243d52ee12b36f01e8942c697b6e565636356add93681425dc026faf76769b2219897a00b321d25ae4aa94a68d259db1faaa6df6413a2be75744b83c43dc87a2e0d9c81381298443c67c82c352007445473fdbdc2c934fde6e1677177de535d24079336fac966c39b2208d68303351c78ae1528e3856cc0a0c67fd778b2d4cb5eb64a1471a495743fc795d5ff6ee2cfa8b2aa5619b8a10203febed34987038312035710a329a75a912ca3021920c025be4275b79143c2b454a0fbeb95d92a801d34bf277f8a2da3dd75158b535cd56dd73362f068e3f566577c53d4d4d8b0ebd512fe98d836ffe34a98cbbdf0b6cabb7dfcb8e59d56f691017cf08a8c77022e9919f0f4211043e8ea1b4529fd3070b406e3f1cc8520162eb4a6513db61ea5f1f9ee9910c4b97590cc4edaafcfc1b83d8d19a2f5cebbee5b07d79278670eb8541d3388f42808cf3bd26ac6628215aa4ebb43b5258765db7c1aa1f5e5e537515bedf299d40e187151652a7bae9ef3504f91897c48970964245d716a9043b7cd8e4b6af4465056eab945bf3f25cecdebbb1dabff76ad76515da5ece4a2c63c5594bea6e82db453f05ff7ca6e90193b4e724ed691116569a61d6f5b85a11fbba66411b104635b78656282ac8921ac37a28fc1d046e072ee27c188338443f36bf935576aef5d5cb83384ae724735985b524c8742a1bb085a2626733f048a73f7db6e96a73e82ce94c27ed610825e0899c045d7f235dd806322f6368d4f90609146cd710a5ebbf79e801618ecdd68df707f53e1d5329d2f682a60565e2c09e30bc9324eee8c00546c18cc5cbaac69d6691a91e9c8da97b32e4adb2d903563877b7cec70e419a101eeaf0a2501ecd9520e5d36537febd11b843cfd8b1444e7d80ed057da055a3081e5c391262e5d484ffe8afd34ce477d2a848b921c52b899dd796e2a984f1767617bad6751777579186ef7729d8c29e6fecadbd324eb9bf4572bc54528a34a55de92a1dc2ac91ead70da7efe607be2c51e08152fd4848fde52b1f101d42e23427d18bc555a587b1991bd6da16fdcad0a7bc52919f1a522148f34f0b689e601c5cfe926a6241a0e6ba443f822b08066d4f99dabad424de6076a45e016dd16dc92ff3790ce5070d56912e3834ebf4fb99813c71adf52639c1f1c88af2751b519dda7b6e902e67ace4028c98c16c37f31f581d6572898e6aa038b8ce9f217b4e6bc446583efcad0f05f42fa7ff230c4a7d1f4460b16519c02c9dd2f211b87171fc7e67784120df0043068f9446fedcce6779f2283a5f6bb2e86bd013138f4d578d904e072aba2113bba64ae3f48e7d90424f3d617f8a79572e625f2cb37eac7d4f0e003d6effcf9e9e6c9fd8e94b1004aa940264150ced91a774883fc56528bee606931ee39366e8b3c7d0af0cdaa686ecd9e4003779df2ed4e5973660be5f0cebbc43034772d617d3feebd4c469ef308cae36a443c8922d89ac81625e42cc3f6ab1a202b964fb136c7e7cdc7f2381abc1d3ff6a3ad1067f6c2afcd5e09f19af657eaa643e0d394cff760b472ea49932f43e86be445e8ea57a32cb7ac93deea64e81c6bb3d7e80f8a3cb8460c7895d4045ec04562accc5be835ff5d93e105852915514880363405e7f50dbb4c20fee6406817ae8db3a8daca9badd0b2c7d4f7f081f6a2240b80137535986a49dbbe5ab3ebeb96be74de843e5b17b2ac25002c685a4eb348914b36bf097b29c58190e8f27c32579077de5a2825e2bedf2c1d8fd4c3a3836d480e4f5bb4a4058fa8760deb01fc45393f4ee10a01bd0caf5866697957c7b33fee075de2fbbe8570a16a435fbb68e160a062717b26c431cc4f9b9660edaeab448ec79ff580c2571166e3a90e0712fc58e28b2d000344a3e9f4cbba558ee79afd6b54f655859b0ec30d3ed4b69c18f54658910cd26398a9f8ace8d7a86accf452fc534e9e523bf2e6b2dd27354f1e543792ce94093ff39fccb3f251aa159c691c0bed1e5c912464c62268b7c944a2a0ad99ce8ab0bed84c66e3681b3265700cf599c83b46100ea41b25589b3d0051e6f362d958c26c0dddfc19240ac85bd5b06ae7563f81f5973ba7c7d1083e30d4ee267c83a35cf56b954d8037f5ba4c64ec9d7d84e9a08cade73e4d618555a92bb05e5515057c5c46bc10a9c2e5c5b0877a3d0b272bf373f655b946e5d4ff96914ed5096f8641dba216472755fc4f67ee5a7fac71af25832156a3991295b3645a505e8cb807abe3930a56f66270bb667f1e698bcc72a2e49d7240548b7ebbcb06f3614a3fe1be39f340c24c61b2b50eb9ba853adcd650d44f8632ce530beeae70d8bdfe66fb59df8be2df9408f9b6c98cefeb757fdf7603c92af67a0a75e52774ea776adfd754fa6801a18bd050f27aefea1b3d219e324336f0f744391953aafb154ab1845d13058393ef04e90819236ff111dd71c016bef3ea693e69e011ee632b675a6c7abcc50dc69b63d030630f10ba42c988bfbdb2c3ad10bbdfe092c8b07126e11e5f984fca7f9df1738ed7c0d577efc2b5eaa2d1a8dcea3f15a05c6083eac53c1006309d829a5a8d7cd5661b5a3800e843ba4ae27231e299327ea047766e088cbb44ce5a6688c8e1719f7c067b7c0c5f50b80c025aee9ef90111d2f1eaf839183348cf2f9ae82d65636e2ed22ac90e95224865ab302c248c7a0fa47c91e9c9a9b40dee005b06c064e7078325f6dfc28928b5584fc23e9101c5f897fe8d6a4f1d44e30b4c900c56a536c244bd9e94a90071d50ddc8983121ab165abb8387ea8640c7b743851fff90cfce77e92cc456172d897615dae334df02f9fb19fd7e06710f79cebb7f838eccc149572f3f8c8113fb76bb739a3944ad70c19265a3ff216cf3a88d1b1e6fccb55447533879cb9bc2d047bb4f1bcdff765d240da314c576550f5b2bb6497ed4a682a2fe8fd26d5bc4ec3f3499634ef225ba1d328970e374ae77ba2fb5262bb53eca1f11b5ab51e19c751591510e74e72c7cf03b025b6a111d43c0b2911ac3fee0f297679e78085e321228560c39aaf5012ae9ffacce7504ec2a7cf49d2286d034e10680343b121d5312e34776c2405c9d7735b25bbf96288abba0cc7a7aea00a47bf0e3d3cd1d1d30270cafcad8b268fbf2622d948cbdc0081535a0a0923ee3e09ecd0fcbfd17e3dbab00365cd8e18e9fc05645134410259c3b8ec6dc56237a5b2273cae2751365cd7d2378107a5dc10c68d01545b4563a21f8f188ccc4989bcbeca48bcf7853c16365fd82df5113e04db0c96cce4ee6229648853265d296a8ac184785c06b03f55c0ed236599dffc46d8c456905db37cb9b6068f86ea46cffbe28df1ed53065ed5d90abaa1e62b90fff17602773f8904ff73922dc0215603d834c5737a251801d6d871e7664dcf35197a3b1da58716bbb14b5bd0c128a47b9c2b4354db1f99b3979bc4809753d4fa84ed15608265d844e81493ab5e11b185e07f8b9c1fec00dd9d15dcc092dba121c42c12faa0413bd466f463299860ba231208792c779462786a9c7c90180e9a963134e28e54cec372935a3d85a6d89f560a1311c32889a4c3399dc198cf272ffb868599ba40dd75aa8cd5fb0c7d6cb29a161ba5d4682797d231eee4a8f1d0d0f86682823dd89b8a18f54759f1355758010fb7b31e33556db13163522072fcc489941d06871b89f6a918d563f7c504b1f894e1d4fd26034f6da48daa35269c09f6ca5b2c4b3c4c7256e5f008d68843cda83fe5527d83a53eac1da8ee3faa1e45dcb480ac2478b6a93af539a5abb81b7c73ef0c2c324e9a79892d9b41f6dc05c17cc6387d7b62063f91d17a724b9295199d8d2ca1c1c0c2884b5b517e930450457a534fce6634ba07a28fdc42c9435bbf2769192970832e41dc1c13459b9c14cde5c7c1956a90467fab47cfefb6bb00a395be0019e2e61f2898bb713990e596c92b2ff3ad2d5fb64352faeaaae4f7a4e94feb8d782e49028272733af3a3347dc70f10844116c1393fa39d1ddab9cc6751debd2ce23c62ca7633133ed265759272582e28b2182e3e7ad18c769aae59c86720d2fd2fbd79733a8829d2722a071081a3460da1a5d34da7ec2956e256858242ba791419771a462649db944298e03d91f335674426e86b3fc93e77aa2f82966e7dfff459c131d938531b35f29c89a4f02891d38f4a68ab2f2be8b3c6b3893fdf22f4536d9e13db8e2a81b01d46b538ea7db13cae2b0a9fdb5ebf1c09cd9edacb684710b0b5636f466f864e791d1608192d119d180f87c654ffab245aeb0e40d720c57e54de4ad0205e1685fd613868de2271343a59f51f72a750699d154f6a7f70b0e9f69b63973bd62e22c558f9f8e2a0e6cc1bc5ead5f37124c0acf1af85665fe71736c57e7b34163f202ddff1926b9cd8f051a13c51c9f9286ea3e4891011384a0b14525b9ebfd709d8cd8d376592c1b6f5d37390381856cda9c4277bc9f31537c8152a222a5931a4b05b8ceca806ab20038fbd9878571ed12371f454a91d4712eb80e4d8c480f8a4761c51840855a06bbc15182a36c50ef1db25b905e445f7ea0bc5b78d26662f243062569956ff5de1e91adb45e343acd8caa44bdef2b91b0027c0fbbc6d3ece4d113050d9b468bb92a6341e4f2d8610015b1f7b14906aa8a476ebdf1ac901ed4eb3b3d2db83d55a0e3e704724f67dbb0142b587d8c7360e7a5aaeb79bd867cdf6b2be1d96433aff7d49ed65396df219105c38fe62cdca42e190c2642a611928494828711af7f927088c34c069ee7868e0b69fc746fa76a00e165a186065a99f7875d4730b8122ce9124a072a724df63b6de3addaf2c1f19100c86096f37fe4b5cf6caef037e3a78586eb94b5d059b75f13efd40d25744a4fbdd30ec97695515bd69d316ff4ac8bb47d423df5acf215b80df0c5c7ca880d102420fde10a6953e36d53da6e4dff3a2395f741aaab8d1dde0c3271927ac3825383aefb7821205945482e3274b49b7ee0effd687ba9f2cf28e7b8720720a7af85ee6efaa59fa19ecb8065af292f24290cb0dfe19033ce819618a11b667b8c0844bdd4a6185dd0af9a0faf23e7d719337c801ad8a50e14470d3d101730a108bef5097b77f9a795289f57b8ef23592be8b00e8c4412ae3199b697b58c0e77a3e0d032d9d76dbebb7b7e9c2efd1178d3ff4a89eecf4fbf10a1d58edae2db39ded4925b07665d5798ca368557c19d8947bbf72865d844a0e9ce3a2b038250f889d1c7ec9274221b8717d19f39ca95f5b56270a418ec30e3e5a9629c1e3c7b176e627a1063422425345de8da5498cabad4bbbbb9e34a6ecf920161b34739e0ce3e298935ad9af587b654cf0aebc68debbf5359a90f415cde23ebf468158cd3a7e356ae8ef9ce76c57af4cd67d8c4152c28b65fb8206dae3f853485537bcf66040e977994373da658fdf1460dfc9ff136d1ebdfb1b2420d553e3750323a700b971f681a81e2d33e2c55d0947d30a5e65960da115f655c6c362435cd69e083dde76019ded3354600228e45151ad4d647f57a5fe615d96ebb2cdca8187d5a4f65d287e9b1cf71e2808fd30029ade17b150035419d27bbee9e382e34489813df7f058effcefc2f3cb5bb6a1be5e29849f983cf4de66ee2bbad8a2716ae09a6520986d737f3a4c71cee637dbed2c9b6e9811dc744e6c97b63490a0d5367c11bbed52ba9ff2e56c26be938b4c760553edfd67e3263319646cb86d31df80ad6bec27f20efb85d676001b75ea1769ae0d00b7ced70ad6e3de157c5b22525f4037a4196655360d36c2d959eeefa6c4da59657a2c32850e0a525e082abdfc56b26c9c8bc4ea46fa7c1a43ae874a58b0845b73df1ee95b27ebd95ffb2742825eac239a064018b364a05e61d65718e764443623fab6f2814adf5d79960f900c4c37b7b93defb9123bf9c7972dada56c99588677f8ddc72cfcfc243a1a8d6601ed89c00dfa78c7bb7eb2c25c6fc97cd4600df5f08d1df689c351d7e722de0d84744942ee0fe56e81ce820d0297e053a8d617a657f42b4ed6bd6052657fa9d058aae741e6bfed24d9e232878e2cd757619716b5c457bafb2b663f890016fc6d16e7b73ede7b8cb3c747cb735948caadaa2022ccb48e5b46559077e971333cc88e01f6a9d990ee0f7a51f845019645ff6190f18430a59bd2f58f79f71026251b949cf5985b044065af622096477e6bf1bd487ef5895d3588323b667a3e917abe7def7e0510ab5050d17500794a453ebb9ad1e562d70f8263b387069f91e4864107c5ac695c148f60f9c8500d10eaa78872dfd5585c3d15e0835693995994ebcfabf0e76eaeed1cb8d6967bc2c1732ee7cf2dbd7723d874731bfd3f1097efd255b4f6f7da03dc3c70396d5c53ef3c84a9ff60a2d8d7092c19fd0c0ad886100c6c569bd0e00363602b8fac5ea98a68b7c9a70c28bb9b14dbd3f490c0f1d164ffa703a467e195fabe67feca9c04b0627ea2b5e838a83b698c0addd4dbbf91112cec78ef7c8259a71b5d6d67e1c7bf8fdec5c0166a50576b46535bddedcd4c3ca86ccdc9c0977592c0044b3059a02628b4e8ddaf3bc610e66d81f89f59e5466ca184bc37005f9948231129762192a74e1d14de99193c9b0e65b5277b3b18b2402afdb6d4aa1419e9a0255d1923d6a4ceca90a3e8f5417d624c43cbabecd85a1ff29b58671673136a9044053bdec40182a008626a309f63d61fd1788af28e434799a4fa00e052486841acd5c5ed2152fdf72227f05239a7a4083745b26018a6e25c7d64041ceb0deddfbb2a7b4dd2ed4688ffdf252f6090b00e81847db1959b3b9ac6cf91f37fb5d7fb3ab8aa3c1b492355dda341e3af6459c5230775735fe04d4f73b334a5b93dfac220bcf7274c76516d3db7a668c22975af9c839539dcd46448a5a9c3e78e6d7917ba53272b3a21e105f0fc72aeb5dd159aca228e4a0af91a1fc7b5e5c703ffd77c705d08b7cd2ba9061c7c6f83b0b97804d4d4ec00e1d6958197489504957e05c60f4e63d92779cf0aec552a5c5391b60519760dcbc2be3665e895bb4ad75d65e764dbf49fd9bd6730e36da53b54dbd67414c6a9404ab15cc7e9751cc6b21d7638d27a0a28797ff93bd7842919b3841143b437e5f42505a48df0129abf4602f4ffd4915cd3f843b37eebc058eeb41a69b71bd4dc858f33b6c1e763d77de8a2c1571f3fcebfac2709d436b9a727d5fdef4a914bc052bdb1e1c877eec3365a620fe69f0172ecd8fd83857606d600d1ee800bbb9c917231af69e9de4e83be55b6274b801162c94a65d5b34f7f8f0bc190d09178370beaffa970698e3a78c61752acb0693580c6ff77a9edde3c2eb8d0647bc3c4b4bf9bf7b8340e22a521effee70864ec1e5ee3f6b8c2fc6dd4a7be9480d5442df220048dd286699b0e2c68a972bce61b145392eb8c3b6561a34601b1e0d8f513dbacdc43c07f411545d92ef4090e1623644d7244633636c973381d5548ebe27237467af4131674f50470dc0803c9149c8d06a5223a1c2d7358dbdaa95863997ecab050bda0a618e7ecbb9b400650160ca76b2ab081470dda32917913b9d2604c2db21dd0652d9be6834cb255f6e37c8212823666e4c50b5178f2068bca1b4ea16ea38adb8c416002ca64e909f9140f51b54cf7eb09b070dda461a6fa13687567838c10abcf51e2b2b421b192b6e112ea5843a3243cb9084a07952c90fb35369ab4d6d04b6220e4b911e3f0461ab980ecffba585f7056131b8cc28ffe07c68d81b3555b0301d501ca4bb213db70be106a70bb8bf4ff5501a00ca8f7c4b5d1f6f9aed09a8b7980393e6e03fd16a9389d85c221deae38497beb35c04111b9209896b81e7880470e9560b0c3873c0a44c1db9c4e655d6fd7e8c052dbb73799dfa9aa5a133723bb3213fb7dbd9f8d433c9c1e3f0f915586c216989e432b84616f5a6dfdeb78b3791a0dc13200edbfd7343827aa3d37f3d81652f6fa571de01fb62c72fd98f7ce76db5f2317bb8bab9a09c74f77847b0a261a9288d3ef3444149f1aa7901d5f2b9b736f63bbb26d730c4537f67a5a105a01605973ae6b42fbbdbdc120dc6aa1e1a4ee59278583d97459dfbdf70bcc2a30e8fd22ffa85da47ded07c549444ef35fc8a62261dc15306350734a4a90361f05c65359af4e02017fafb5cda52db7df17941a445f05c9e52c784df303e49981873dbb0f3421faf90f72249a1b333820e7f432a34bc72174c10d1ffbce7785689a7be764c0988e186a10a40ba27a0d3ce8540596e915913eabf975ed232690077c325fe29617456327d9363cc54e7b176630f4722d99f0fc702b7e9d4159bdf59173b9d0314c5ddae3269a19093d685ce24b5f4b33712d8a2f2ac7474d7e5866a9f8455c72565ea7c8506fe54be3579a5faba6a373fcccfdb9612633a45496129385cbe542fa3cc00dd0f22794ff6d24b36a56cf9f1bc07f974469a023a600bd9e289fd01896b4b015d4608f5cfb70516569d80f81449cf26b1a8fa7b742ded021a320a1445ad292c8e9570d295fb47dd21a1d86552f596b1be0a8ba9bd3cc7ee358a0a4bfa73c49196fd0aadd2a15e80d7c842292c42508ba03473635f528b2ce10479575e803d24025c2338f289fb5e6776a65cbe23f1cbb9a1dcd5ea22e6119de8e15db069953d1b55f5b84870b3dcc07fbccf51bf642a2ed7d2004fcd543256827673f391af18d3dfb587116317e52ea6a084be58fe88d2f546353f117eec08666729f97679563a36ce93bd68ef65c4ec92309e997665ad696c9ee97bccdc756ff3fd3b2a567b892cbadd9131edcdd89fbfc04e9c966807d9beb5fd04f467e6745de589f97d6eb9307afc95ee6e92941f2dd0c464f7dc0bb523cb02d6223301de86ca7e9239fbab748f97d2a713ae8dbffe352eb1a72ef90dc482fe351aacae90c107cf2abf54e40407efdfabf31e744d1475644c1d70e18c6d536bd351800de687ee6177ff8ccfcd2e52c4f24862ce10ae4a2f4c92d9fab4830a7fe6942377992d433c7cdf1b9dd12da9228e3400c655252357e5d14380cecc45c1e53d4c94e348bf3a7f335da710dfebb880170004d5f9a387bf83ac211db0f8f1c652768133878e9ca74e126ce6fca72e97a6719d8a6c2002f337b50444cdeb3f0649600338ddd15d1422e014dde07f331c7ae30fcea025201ad12655f92e3acfed258ecb2a861d6273b5cc8f39daa7ed815bec4dbdc4f0a5206d68656bbdd58fd704c5cc8f12fb6e633ac537c2636ab85afca4db4c12f5e4ba98095ff9fefe6363ca939fdada66f62a1b190d824fa5323b1328fb8e9259aeae6c3c8321a8cd96dbf0c5f6ab8650b18d2cfe7d8a554a9d5f141ae9036d7715582f56fbc6f5afa241e7ee2399fd1d0acb990bbff550df892edd1f2905355f0214385239314fe347bd71e7abaf0225570f39bcb3abdcfdd8f2b260e29d1752947a1d4ee86637fcf267d749eb26f037e5e1b5f166abefd10867e60a4c6204485493aa0c6dc6276273ae6ef5caf18411d259666f13db8e9dd3eb46ce2918ec6a376db272f6fd87d001c3468d84227ae9b623af5dbca0a8381e8451615842f89771c49c0a1ec599d796d941f87652a2e722a291c955c5b48a36f0b0fd69e12ee317a0718318fad85a9128f1e20a80a9a8e5b25e217d64c112628235de52fb4d1493113d2e76040310ade7e839a71428bd29e38fbac1ea2b60bc86e4c725bcca24e27fdf82739fb20649c70fb1b504a02a5f1c784d7d64639a6558207ae041c8c2ac28c298d96d3f1afe99a241b73b27e7f513d4753c9fb7fb007e334348658ad025c172af6ef95a81852a42a468c6f662e8074232b7df66508367ba6ed61161e6bd60dca9f6ffb641ef7766d9f66cd2fb15924f68592ed27951a780ccb4fe48cea51faf8dc32fdbb828d2ffa443af40876d9c1b615b7cfeeeaec06733cada860621138b03d6b53213d390e30a3a55d7cee7bf81476a234f377ce5d6fbd63d5241a891aedb8d3f44d8695edfd93205750d529863abe081b473453d0481a1f03de6dbe83a86ea51f95db951f31e69921c75e8d6eb018fb55fd2a08f21a7325e6b8f46ef9d9b5b18d44ea54f40ac7ef54aaac01d962114b76a1bdd6b17522240bf8cef1b5254210df52b3f6fad9c10210d4404ee5dc8c557ca27002803ebf3d73d5ebd0df20e3d1ddcc72c5a24c75b24cf51fb32b61529e44d6415511ddf82476d3ca8ac8fcdf129e3ca5ee3894ef14ddad1e633d20cfb6c6653cc66071f7fda1c91bc4e5ab5d4098a30174e45137b40bc39abf65716c9f8ed0967fcc0a1f952387ced8ae2926d6bcec93fff3d3d902b5df14a5dcb7f19202db2f898addd008b5e4eb7a3b551673bf4b71093b4b8999a5fd63088e0f723d6eb0af4f025504dfdca1092b39d85507055f2069141b2c68b80b94a476b121a6070e2095308fcfd06c2fa33058fe3eb5d0ac72a38912011c112ddf3a3d0c8ffbceda157629de664f417fda3412ec610f27d55a61d2937527d5c7dafcdb6f5130009c0e577ef97e32a9b3a1c5ee6ab1b7d4b0fac97a1f3661f9344b3f32edac85fcb4d7645649cd7012289bc73b8b6eee7153dad2e4293644d6cd341d5bb9a4cfb8c69a3930106971cbdf30ceb4a2c8279627ae08edd1adda1c03ed51267bea19822ca4d3547eb7c57173850a540f7048ee33718b41ed0330d888f198a8eb247ddde3a5b8af1e3059a5c4aa60d8c258de10937e94936c0015d8c42b746324673c3c515c52b498bfc1f19d0fe3b456958502511217afc388a9b8ac7edd1522dd74da7cff69add06b60b63a4db9385999c2ed8b28ca3284b3f392004feea5e81fcbbb46c7c0eaa775e534856e388ee2ee89922d80eb335525632cdd064f2c63d2bc1890601b6ac88555beba64373ccc71266d5970619e7676ca28879e5918bc2e27f914b9d0feae69acff00de49d39a6bd87ced8059527e83a78e13f646b0453e24b25fd7528afc24a8ee13568f84031641efbd5d75128fa5b3b69d690d82a98c174c170aae2a6512ab5eb7d0217c372fc7fbd9fd70b3c041f1633e860056c1f199b320f939aff4d4424fe76166acb9827e8ff98963be72f6d9585915aef64d63a52acd74fc56f7395079268abd71674f2aceef9d27e03edbdd079e1ae13f2937a1050d9a6626103c93996ceae20c8fd251b0f4dbeb9a16f1bec265e24d6ab8c06b0c9bd325ced430592d8d506bca9cc275c2af493aa8b2d3726257fd1ea3fdf4f024d3ae12b99fcc76ef9e27411e8a16a074ea27fe9e2638ee4a732a74c170b03386e9fc163fafbd20f6e09483ee2dc6e41f6ddd38e608e9e6f2a57cb8a5f75901f054e23f17c9228915696dfcd8a04538a4f8290f925f22951af42c376dde5447c893b04358a141899f488fd0fd544f49d60403970e4178c86de3d6e7de606f2f71c71cf4b385c5a0b6011e9f6d6e99e07d71bfc955e481ef9e203d0347de92671c58d6b1e7a473e53af1761a79ae54e4b23eb27eeeb13aceec347abe8d482f8a7304199168235e51629b65e24164f80c68bdaf2e7b3cbf7631b2bec2f6f2a5a8bb8d2a190aa8c8f653dbca7c062e18faadfea902ccb094f8376c9e2d49d1b06a9459b5564c035f9b2f42c31401979abb27d6d9a293b272fa961ae4d9a72f7f5811b885a1ffd1dc6313bbc51d3aa985277748bc21141c4f9a81d5a34a70d426bc5909ccaca57b5fe5eef56c455aae666819cbfddcdbe43b94340c191a3cae387b4336b225614739cd0e29b7a7b3caccc7eae5a3898ed4bf5020ecdcecf03a77630e1a07f01a34f26990c5b3fd550589b3a82ff3c3cdf4897e92fd90ca101be2335e3792f61f2475dd2041e29d7d8fddd3ad5256b3440e9deac833740ac343c85c241468dd44fdbf820819edc4aedd0e32532999d201aa0666729ac1aea069973760fed308ad3917343f24b9fd7b5ac2051d4f9a04e0b2538f89defc59d68321259a1696d6b1e72e7fd92c6398af18f9d1bad391a4f85f3f07fa52d6e68bcc6c79d4f461f89e18bfaf43066aa86321bf9f50222bdd029caf6ad05889c53edf9c65a9327cbe33f6edb49b8b6a74d3a16f8397cced23b4a2bbccf939361dc48d4267913410ca99cae4d0913f4f23f67eaa533ca2e10c8e3df14d4e6d74f492e438b5f79dd5240d166c6bf3d947a49cf2505fe9284bc062f719ab4115246d5c3965d19b4daf2c017b398c48abc4cde76fa4f15abe9271bffaf20f726f30a79a90095fca62882ab2f35320eeec559b30ebfc8c029c8711bba2d3a39ea1fb55d101b0f101f4e8700649267a1d3c006ddc56d1ab665619f53a9c1ccf7002fe841b56378b450e4770e23f4d0ed72ef8f3d0923499871470265bd08b60428f0dd5bfbb6c4510d1a0791c98636a9c9473b6d7ca4323442e2ee7ba7e07f5c6f214182ccda370b5730c4fb1bfa0cfc68f55a8613d49e9c42eec21556ec244e42f8d7a5f2f7fdbbf6fc080aaa06021108d61f7ff83ee087bcfb3b117913e5260e9efee5551954be3e6738ee01e298595ffd3bfbd191049125eb1d03ae012ad4adaef1c9e9af403f33f04cba29cbd619283155bf141e953e147629095ba57b2d5dbae8681b0fdc20e727b7db4e84ff0c3c6c4730445ce7f059a962950bb184d8dac6008b41f028adfa338cc4fcd06135b95d37886965fd198162a7eb571e27f98bcbf60ce7ee7c9bcf4d041c75f93329bee774ab9476f660b9d6954bfda5a01fe935b210c709792a34434910f54c806ecba02dc7ec730f930d0cc300d246bf2638669fc4f9269250fdf694a3cc9b21b81653ef23b2603384996041d3adc525f49a31dacb1f8d294546dc9f0e2eb9cf15257efad595e91b41580177923428a04cc75f2891516935e4d17e5f9284023c69d1d56435f7db01350d7244b4ad3b882e502dc40e374b79ae58fb1453f3d03db27cbd0b48eaa9dd24bd0c7b42b90c3a6445ccf6d4f3a84e686484ab1656070f0486d1568765e83722267ba390bf6f984012e082598256fd98b8de6600bf8a98355061caab98d389d7a73d14746e7aa1b7f002dfd9b013a46c2de3e1a3f5c3ce9e0bee696839c72dd0172758f8730a1345fa3e405a31feb0ba50015d09ed1f1e7532b0ea3f86c8df9d0fdfe4c9eb3d1f53dc96748b151cea3217b95c7d7f90e7982610b6dddafbcdfd5c6221d1a1f630137a7d8da19ed405f36521984500090de6a72ebc9cf42a395f5e80bcb7615dc0fa515c5a658073d306436337955c068e59ea5c16267143a56d405b5352085c37565110b30a96a9f394093c625a9601349eeba07951a4d9998043ec6728f123e6a3dc6a92958e0b21ba147d1ebf5cfe4ed2473679b19da1f2126a7ea794a7a407a937ae00d8458f0855f28e7e7767008298350c997519f7bfa3333181377817d6722414ce525612b24455e61f3703919fc58145308c2357b7a251780cb69c78afb5844b1d83efd578dbac94f9e7ee3e963d5bb71b2e67e4334a969b3fff40044a3c05f1bd6623fc93887db97a7c42196dd17f6c403e80e4c688b73676918ec0f8585f1c5741ad0e2ffa540cf97699365030e325de262741585ce2b8477a3ff2ff8a88d461ecaa78123a7a546f80242ead3d39d2b11ebb0ad74085e5ad0af8a6f9c93c96f33be10adc8648f28ba8969f5f5ee51be8ff81f079942a557b79cb2a4a29acd35842eb78c7eb79540f291ca9ed8eb0dadf1af0c98f13b6f321eedc92a4c5b86e7f7c23da06d984837ac6a972d454509fbcae6d11e0cdda7ec9ad03359f2e1e4231312d2cab3e96960d28fda3e4dc382bc9f15a649b37290bb664b62d58be0f9a1e8dc3cf1cec9f3c16c197eaaed86cf5a9d38605dc37a781fec546db299157b7b845db06243669378e25d77600edfda85fe3e75bb6567e1b93fba3626f0fc44edccc327a81258edb09e40e7e6fc3b8a319032a6ed96ceeea93a06f27593bbe074c5f24b716b0df93f63e31baf7100877d8d38e6ebf765d51f73f2e57d13437fffa77ecad9ebea55d295f25e8a623726de002b22d6e6d0f878091c16170a5b74727729e2ff600da49bdd9624959c934fefbe2fda0c746cb1806ef2778810640624464b077f4d290fd41a3cb2186a16b598efbff616a7f746408bcb11217f3d4cbb57d5ea0d3b36b343aca063a1c2cdde07577583022d06a1f98b97a6b2ff8066d5971252b29121f3aea92cf616e2703abbe9db26de8f053d08c80fa03e9948129e2b63a7b6e6ecb7276cec5e82f0f230325be0fa0748bcd520b9cec1cc75cb15402ad3858191628d151874d2381ce53e8673bb1f25cbf67555cfea53d066edd3666e62b7044f94360fc5cf5eb0bf71d8c6b9d19b1c6d932dd12ca2ab200aea48c7e2bced1e75cefbd1129ac1e300ffcd62bd5efd0a6221dc282a9fc09a37dab061bfb0271a16bb79aa7c7c71c40c960e07e1c0b6492e1572f872ea796f0d76acad49398a60de7ba3dfc1c804ccd35117aa71b91281ffcfc2499f484f0970c7eef48d0e7aeaf7b85ff74b20a95044391a4b73edbfad3cf38f4357f15729788800323602c296a798dcdec84f4e51a1b1917c364cb5ca9294ec7950e81bbf15e8986f727569a87f2e5aa52deb0aec9330abde15253f4197de419b2e4942e7283966ceed1a3e95283352b98549564db2023350295350cc3bc32399cb4977381e9c59f3dd98de33f4408f9ef47a400c87bc1508cb671129576c3cb2336d3f409f90e7b739a68b9a3a821535c7a988061725997d3fc60199415c147cd1795616c0b4b519132ab7dfd4b89898d9a9d6490ceeac2590d4457286bf37818c9b62c84e2bfe4f536f8a8ceefab8210dc02332089a342e129e5a5fee1d9fd16d7700ebc4b0bee1790dc97032c1037cdf6fdf49b3910b84fecfd0279fc97cb52d55b803261439c1001b809ec93cc36d52746b53af5327b60ac4210af00bca9040d0643ee1a5b0ef6256aa3c351231f820de808dc6e991727f95095fef341b29a6c72d922225fd805f32d6cca7a652ae4783481146a13c961d041fc2b4897d78e712a098518eb849ffe8451ed9d86a0808e15394ad3fa049c7d4bd212dccd5b8d064a5fafc54b0e0f2033a2fe4e975e60d0664ee10e17ee204bb249e6319f55eb8f11a996dc1e66272d12937eb0b3556eeb2561785105e3bd6e42b801fd5a316da0177b0e4be5f2ace0f4bcf33dd10c266273163513b8f154dcb01849695e2f5d1029ac5d45e9099033e79ad3583d1c926e639720f00f5b3fe88b8919be3be3f17043d7e27f0d79f7b2d90cfb598cb39ab590129487c81780e3d7cbc93e4cb30416dbdbc84897011b9d2cd6b6292f12a4a53b36b52cf450c61b0fc5ba6a005c1830cb5bcb73c9d8edce9e215ca0e30f7d9a82ba027a09e43fe9ff02f8fee46eafb0e33f0b4a322599ccdbf97031ba949d20e8d7f01916e63bb4ee2f685bfdcbf2f20531f3efe284c66e43ce64a3791eb5f1edc99556021d9d1c759f8d2dc62ca86226212cf36287bafe8cf3d8d5bf3e898404516642f1841cadd2c7d682ed9c789b56c2a1f216333fcb962279d85c1c244a7036028cb1c85bc4c6c27ea48ffb86ba300a9792fd7f5e800af763d40bef52f20ebf104fe3cdc79d96cdfd5e927c56dc99b6ca2e1ad8eccb7d70238adb867451183a2d74ef294ba495cc09978a270101d7c4abfca0a0e3185e7335664ec297c10f79e3712da8d07861c4264e7258bed05cf69d8ffcaa8b6b4548246e7819ea181c50bc809cc69556065fc778573eb9fa97564ef110c077a84d1b2f882715768fe5185a9465384dbf6b6bfd47165d372829ad17c0b41e4fd0967c82df70d3312eea2fa5abf3631199bc5bbac8230c0fbeb40a770535f467fa7bde0067d4855da1f276084ad0e32628f9c49ffa67f86de6734190b6dce73118e21b9bbc85f03188f2d1bd2b9a068f8e84e15fc0289fef9c2969c210e59070cba2ee38ef4fefde9b28ab2a875c4f6abb4a10ae4b11d603b7fb5d4c44e8fb45d9547731e9f7eed947c46f4c6d45f32af40e53bfe67344a522f53c011fec2a0d049bbb5381f76f7c8daf10351b3a5f97618ed05a3dfee45fd5a3ea0ca95e900456b1227f74e989f24c5d82974e10b09c4a65527a873a87a7255a8dc8e5ea97c82628f7cbc90464794da53e64ef4339f1e610c57a3762507e8818109f2ae01a9e659bec436394beed9ec8c275a0d80187f3fabddc0d39366bed09a301be02eb8cf2bb932abd6d69aa2eb20f4d09b742ce7237f094b4e185c032ca396cb0004e4a1030e6d51d08cab6a96829deea3debc74280b7ec43df5d326c63087a21727cf338a7bf16b8fb5c4506709b6c51ef1fe8720592f252c132bdf50b0d0a63402298dffc6131825e2b824e8af077751ab4c883dca17a754a4adc8c348573ac8bdf94e86ced65c3aa5ab186e03bb81d23b5abfa332baf493b4210ea6275ca4fabc9bde2abee089a999d9dc81d902a948fe1cdf2f31b31774e8ab594aa2434a3b0e9584b2cce2bfca1bf56ee6f892d80562989961f7ec8415ce42aeb529c4b10e9bae866f95ed5f49a1e4066b2c2ad37fe3647aa1e06a5910ee947995e2c96fb37aec6785752ca1f562a6f0a415c6259ffe04393118a2e93088423f735e80776c5a98d63c8c3e5a5e5e95915127e19c284b81f8475846550e7742a0aab2798ea6a8454fc2aab013ca776d58dbfcf142f137f42b9a991d3e50ace8522eb04e6397b8bb89a6a6c6fe61b7e64c419fe751fdbad0def59f50b35aa7ad14eb7dfecf5ff00b8af9b4a00830ac1d5bbb53bbbc677ebde7b6d14bc364db122206ad9c8af49965c6d71ec9d5b69973297abbb4b22a699e2b7ddfa4b4e6c855e78e65b8b89bdf635c9afdf72431168fd66623714840f49b69cc1d40e419d59e05c888f1f7e1e3da4639c13a3004b33c0efd76d33249b42dbc6ef7503b36865700796e53e112d7cf21d785c9404de08eb434c9eb68bdafef842d3d2244b9d338aaf7c9075595c374169baf2c6b4658e024b9a0e66ea0cacefd072864ae1b725f3c55907379687e740981ef13dc6587e1e90cf88a1a9e5aeba86354f9957c2eca09cee8402c40778bcbd92da776d5c25b8f1c6d74cceba1c23fda28f8301dd12f0b4218897e044cbf3e1be10f76433e6c80ca34eccfbff40427038cc59ba80722a2e9e553ad1e235c6982a5c5a0cd7b6387d0641112afb18d47d6f306b0d6aba5d0ef773081df6feac42fe6a05220f9f9c4dd18ab66070d8596b3e09b61108f0815ff12c5ded40e48582fc4a59d92a3d4530fc052d099a650c1ead4a28db3beaef5a3d0f460655952db297ef7c4f54449d5be314f8a923da9e2e950970a32fd4271df47007a99b38ea5ff6b3b5a055f8d723f41bfa1c0507d1c246ff5b0c0faee79ba4e6b092b0e5a51e51d14f208db3efab3905d1920cedd116970bcc1d74cc91d897cdc1883128f93253ea16753c62f447b6bd42f59d4372e0d0af31e16e54e38839c2dd25208205e70e815e9c5408aa6ad0b6b97aaef426f61991a0bc27c3faaf3f2a91d837e81f8fa57f9a155f3a77385b64d17c4b9fdbe324fc6eef3e69aee140aa254626424b89faaf87b82aa2a319ecc1f2e30b169557705c66d235e8322ae6b0868368ed82c1a743e4f7707de6e53fc900baa3dfe38fe9c683bd60b911d4cae935d6ab3ad584f14db892be1c45836bfe14b671b62636826d48b51aa76f8669c94feff4ed4dada6472ef68867411275e44bd346099d4e2d2e9a413651a3752b06a0d27cbeb070b18cfbd17f555801bc86a144d87a4928c2053410f1ac1ba0cb1dc6db26db035c9cdc58a1d875d0a147efdd574461a4767796a644027f9651c5cc6993af64ea4576dc8a2a8868d817adb29119d3481eff03a5e897b5e6a66672967f4638eece414f94fa361c64f5bfbe6322cca36d7284f59e77a967d08b0ad3439d919f01deddffefdd052eb3c163a01ce7834843c9d9790e0824228156e9b55c5e522b9ad0350b3e703b3432fbd72cf9547a69f1aa47a927c697881161101db3d8b064aa86a433b6ba4ed1d3e1ddd29c3bea69d1c1ac5c40262cc1ea14f748d92033ab94711ec9edecb7991be66130aa1187b0f26c04bd53458b864d016ac8a7de0cf0b3ce7ecf614561b3a4a771bc4b51e1a597223d057ed9a81ace415249b6f11c3fd2b151daf1891c9e9c4383c1aee449b3b6a2886282b24664d43493abe6254b37b2dfe4e261101feb45f3e7c283a2068d7af98f7a47ca581b1a827804dbf737588778a96cdb56c6a773fa83297fdae9dac25135e256e5aa8a31716ed67b6970177b723003692c27c611e625bddbf19ee2a097cdba5dc36917fc8ffebd71e697032ae44b7c7c6929dc9c1a1701d60f3e2fdaeafbbeafdf717132a94a3aad383ad8251f1f7068383228a6b2bf032edaf8516ce19843c1c18509df0a8004e28c37496f9a2708e5ed9ee854ad7792ab41f2bf039a4f14afddcd2ce31cfd9e0787fc7803ad889d907192b9e16cdf0b955e9381849eda9eb50444ef71472362d766f8804b18249e6836d7da1985593c385defdf83960a93b565ece092290f52513c0330aa6249d751c3d7f5ded97fc9677a087dccc900f9b71dfe63a01fb175382ca626f401069494cbef39a70daeb2f70f084cde7247c265585d5ccb19003d93c477c5f15560f45dd7976bfc3ffb553fb1bbae6be1b1058b0009db97c240c12e61fef5de7207823c7c2dd1fb1b3d3a9e57e995da6c2e699d005e5a5cf59a4f18a0cab2ebbb414ea5255abed636ee97f59e4ce2c536f4b73113521ac58477bb24e6bb57bd4d24d4706d5add53be113c29124f6c7bbdb6468023082e5151606b68f3a02fee385d715904a83b4b776ee9a387cd087f3ec992ea3d60d6d6af5cf0c087a668888c1a87812ac88d2b0cbbcdcf8d7c9907e95b7c6f1065d7f91f043d4c1746958e30d83bebb7401476ab95f9a0e7bdb77ee03c9736fbb890b652c13eed8ea62374901e6600b5f50940f6600b0a19f9d0020fc7500ab164c3de80ffb0cc28a1c1a1157c5f0b83718ab43e60668703c99be6c7e814d767a91994113c7fd450dc77f471435ebe94d96c9016ad60939290a5323a6c2f3299b8b7d09036f03399ae623cbad87bacb691a6a42de0cb307848581eb3ebe1cf527356dcf5b821ddbebb53bf5097bccce7cf665780871d63f997409bb01b0a081793abd939b21109be7d53b49f9a45fcc1a24222d6c345b5ca8a8ccac354bf5d4dde2c3b3e9d8eb2f62beec9a3f36b7c722c771290a7f3b2fc75b382438781ee424a8e49036eee1761b2739d4615706f42147e4ac730a06df8ddf7cece02ef03bb2cb59e2e7f583bd2aad6478981875eaf70ee7fbbf839fb8b6ffc6d9fbb79850fdf3cabe139c465508aa2cd7e014eb413acea7a91f2b4f3065ef551acf73f82e1741332e0718ba1777495ae16f2d642df252a9a61d312f566b817209c8dffac596827cc06b0943eee66c659b76f5ebd5f92034f96fdb1209487c8b6871f16dbf85d996511e5a64fe9aee4b4a86a093b195bbba09a09d299adc7b5a18cfba387f86167bbb13e6d2ac1da09964eee3abaae81bfa6d845460b668e73a42f8c324e3b4111e2f5180feb9599cb4c3325c4995ac7680f08c83f2270f06f348f82b274cddf47c2fe4505f2033bb718e2e39b1df71a4f9ccce9f10ffb7710fe6524415ef5ae539706260361e8c024ad91c4d9ee968f3da3a44a95073f3e945fdd67e716d4a48071b7495f9f35b55bb59e1d6897ad5d588d27b1f6c419fae5ea2fc770ca955788b2d19864d7d735584bd65c3f09c8b0155994655002bb95e1e61bf68a4d321ea59222375a7aa9e81a8190910418d5434017b0dfa503611db1ce25e39a95bd58b39ecaa1ddb977c952db9a2f94fdfd0d596ff4e13a0c2519cdcfaaae163b48428835d4be5f0b17045cd3f25459d20e8253180e5c08e6d7a3dc4dc381bffe4fee6f0a1ad932ad874c0353501c51196f22d660abae425eeed0295ef56ec940c05396a57dc29c1d2a67393d80c64036aa6bdfab9a2a1ec57d339f4db7c6da878287f9e26d96cd9f03d3e6e78ec4f4f08757edec38e5ff7048984b18c289cffe9e886570bdd670b812c85b97c2ec55f4b4fa8b2d303c3239da4439f333e358f1ec3fe452c9dccbb5b3fb6c0c6664c152fbfe7d0d86a205fcb44dfec382d4e3545395fe62efd8012515dd29f5620857fe0afc873dfa90ff1b8dd5cba43e7dad3d99bc25c954da225bbc3b3d77ac5ee150d2f04502b5b35afb9547ea64a4a88e66c61b9e89fc9820ed198a75ab795a9184665f58b645afa485dede8005008bd3ac136d4ff32dfca0382e2ea61d507d073b7ccda447f116b7a5bd0c3f3fdfd867926bfeef312b97ebd93d920f4ede1e0bf96fab5bb7506ea2ce4e90fefb13a2babf7a301bbd3796dc3596e7bf33a6e5dfa5dee3f39a3f506375fe50bdd9869a007b509705e8eed5dcf261cdeab577ba600bce95529b1a156392264e5eabd9bae6368f5eab54ea1e5c7c8d4d0a2fbbc0e65d65bbe3f74d92d622bb3579f8d9625a022dd3877ab8bf2f81bbe1b7f38b1d8aae35bf7e0034cd06a70674207ac367c714c4341f2623ff8475497290c5a29779761242909b43bb70a676ceeda052b80f477330e6f5c520cc0f6481225e105afd117a9328c38e69722878dbd50da7808b984ea75cdef4f51dca2bf4d9eac76338408e9e3c049125ed3a64e93a17f6f793ab5fa283a6f2342365e92b198bf96de3a69c4d9d004e81dd6d7c2678490d4276453696306a77107264526133d43c530b4b37a6e7eebf4c6b56f71ba6e1a40e2fd00858221987c9ab8cdd73c84e8b41541ddd1ff61696de5c0f1dcea95282e0fada646626f89735616a279f16f60a41626a32f7295643462ab47313b8c46a269a966f670f1c0973eacd66c832bda8d9ce68c97f39a05c4126e7fbf4568fe58f2359b6feb7f3e845eb48f155bc0783e182ae7ab60e79470e544d7d298fc4ce47621e8f5ccfbc0bd732b1cfc28d2d24be62b84d96a77c38768a0fe3fd6fa4b9fe08030929b70a72cf02a562601ffb8ca2fa66f1f1d7d581a8755aa83c402623ef75ca6cac4c45ff098f0117f8cd320f943f7dc4d342c731c1e2df54e6b67574455f594d5711288055b46a2a3ffb07f83f89256ea6df260115815309cd5e70d595823a280cc94401017ac77f4e0aa20aec9f6906a8e5de919ceef01b65d829cf495d1b96cc4e7c752cefc183908ea0ca0b19bace69066afd1876f3c45c0567be2f07500bac1287ac175a4a21d79f929644446c7a5e765db3cb5e1cdbcc49231696834c282a6e7299e97c13c68b2a7c92ea993807b960dda7db0e31a014f70e729c402b9a56be1be9a9e814772b3f566240f3b9251e0a23d2c18a7b9db2a40a79a4072c8b60fdb7e866f408f580d88fb403d4ef31ea13fcfa560d4790acb3ad8f0c552fa373674cbcc1f3eef04e4c859c10b4bfbb0d084bdb5c8d66665879c15a9ee83b98049138e55ab589505c9e0dbd2587709fc293858a9c06ad4a9896c7115b63fb4eef36a818d926e182143af24213b82fae9b9d333df44576c1dbd06fa18ff23b8b08fb22668439c0e42d2b6eafde6b8ce6b0b17353eec81dd5775a219e5a5b70300532fcadafc7363508cab272a528fb3cea1478b7bbfa855228d877060e352e12d9e1e2676a48161ab5f4645648eb54f4aa2e068cabb99115cc99c0d516c4af54ef1154b9349477b4dc591cb8294e54865fdef62a7a99aa65ae6c7f6654b2535dde9825dcafda3345f00ee69388a21a1cb0c0b87311c83f62ef25eba409d51a5379a5fdd4842e6be15ca7c35e42c5aa96595ecc6994d3417fdd836d11d24b2c2f615bd879fbb90137b04627b105076d27efbc4823d0d1a311524d24934487515d77fd85c8fbc31c61e1b37cc13fb7af7806d055076c92e0eb62a6641a2e317aecd34a298d732aa8cc2f489eae4ec0206690d7b25c7396740afb6932138e83364f21e5b9585adcd32c4ab05e9ac24a544560ce3028128162502cf8caa7be563dac7fd183c7cd2a917fafdaff93b78c43be23aa335b9f96ad534c511ad37212e9be5167a617007e19227c1abc5292c1c9334d5438524ea8df392e86444374b8b847954a950ff31767f5147a40c0a9c527bcb2f149a3217c85a40b7e200c4b73cc0ca96198343914b89262752c53a7f880a9e3448a3cf959b0adeed2b729396e6a6aa2104a5137c110908ed79439a8d85da276b5b0d2d5e775f4ae0dc9d2333f7f7394661c4ca0c4b7d474448253693f2a4ad2cc859fabe86eb9d3da489bc4d616a26a53d14d253ab7fd3a0a72fd074ab77932c766705ec2380bede9db66fcbce317396f0038942060d2bf33d5aa21bbb707ec2dc504c1e8f30236095c2be25dbb6e2456966bdef6c5c8d4788e505c164421314ea7bcb16cc51092b75a83074b1919431e51dfc15f3d9a7395779fa1cb5932d8c52697aef7575837d798102da39b521af745860e00e2e761c5dd0e9787575ee74df0807a6d561d98638cae204483a098945b06c29015eff49d00b71c268188e660c6f2ad46f33f5d0de1743f0638e2afa1cdbe734bf84de74395fbdcd27fec3959fedf4c7864c98367f5894504c2f1f018ac1ecb6cf2d772074306379bdf46072a02f5bb656188efe05cc555dd51d4ca0b5a4bfa852f7a20c529110e148f8d67e3cf25afeba7bd041e5b2263f2b67a4f13101777bb1e300006578147bd6538e7c8778ceb0b78d81a666d0266dbe711a05f59476cdcf1073bbe50d1017c971997df9f97f6221a43dac0c23f07b480e3621d952b9d73203731b58e4bcedb43c62f7f01890cda543fd70fbb0fab6a3dc6e4b27783b58fe63e9616fe9477c6e88e09a0ec43f838f4d2fbe870b505f0821ec82888b53f06c3203d6880071f09eb07eb55bf6ba6544bc492362a04a400d36e63eca255bb61f8a2862468dcba4c1422f02571d28d18aea605aae9b111455b7831fc75fb8d800ea5a38500273f1f0ed30bac0c374792f7f69fdede7987b069ebf4780569c8274f841da2049ffb49ea4de6522d54eef70348e9a1f20e4b59efa771882a01fa714b9056d7243bf8f89ccb19b7863e265b327f68373ede2a81028edd700e8e8c0f558ff4a2859b5a267de30fad5d13db9bea20e29591a1bf275dde6ad6b35762c30453677840441e54c77301c70af71ab714ad638ceec15d4bdd2a8e0e6b8ab063b35cfdd3e2a7a9dd1c1adba67d63a0ff9d0bae750a8ae0f006d7e18e5eed4fec009238c9eb010a12003c085eb5c6e726f708d1a0d228b9257c28c99707e9fddc5001558e4f01e0d65a9f669b4a71ea3e95e209dee383eb728be7345db7dd47334ab63313f84247cbf792e46de4d4d80572e336af11dae2a2a18f2b1a11ca1acd589e1b86419c42c107a78bf0c1126ede8b107273e135484fce0ff7ad8c4131e6297d02c57c3577eb9ef5f94a33dab6d060e5a4850eb044674b1b1a9cf5b2d9af32f14f1e6e74404c34fb8b0f209765d0772027ae0782d9c1f0096f8aeafeceb728884c70ceb666ca26ffb82680f00d4fd99fba776fe837dbbb4812a35f5e1df087e3aeaac9dc02cf330c6425e396e1d1944d76f09cd5420f505afa911d994daf0eedf8f181a35877ff782322e962c8db371c721f1a74a4fe74675f303e8c50ed411b972889cfb1349300c1dbc7c3edfd591346002579214f915f5452b300e556e6c5f36d6b27842bdb6a7449c87d1d4a126cae25324714a336a93395bed1718e888af037223e6cc227c59a7bcab889b37fbde63c66e039779462c17f78638e16f7c07707a00dc798ab2aec09bd5ed42343398e8b1da93a91023225bf4c69b3efc6ff175d4961f48bfe1c722a28ca752b01f8262a65fa98cc79a61dce7afccde7ccb0db7e76108c899f6cc0f2a4c4da3de355822d8084ef5e18280fde9502aff7a4b5ced4f40810ac6bb132335ed5d35a165fac296681a91fa178d06b05e490cf2d1ce41d8229e586285330d299df2fe04b4c287940b79efafac3568486922de10ae32d8356ec9c95fe21b98b2a119cff380f907bee4a3d78ae40a35fa7df1ecb22ce989b99e1d979f97ebc7ffa2023fe15efe88e82622b316a6094a24c238306214b9ec6e6f958128814fd0788dde5f320353fdfc3978a1680907c4a2d32201df6659ee0cfa0e97c011f83e4650be73b19e95a48ab3a47b3678aa0ff55a47e7b53cdd33758a75ec41b45dfebb5930425c69d9f6dea631dee3834ff4da36bb72731e713d57afec1527200c012b40278be704d69dc60d73d5f3311050e4cbaed4249f5cc9fa241553f06969bcc2f5678cb65467885a6b6bcff38420d195739af409b49f4a02f112937bc9e707d071cd70274273e1a860334d44f16d23f208fb42ceb8ad6acf73c550edc1fdff2b2e0b2c074ec1de37ff24337202b2f5bd535bc2c3f09fc07c2be1bff91331ca1baed9839bd0af173420ddb937c1dd739fca179a96222932fce84803b6c4182ae3b58b00fad9d633c372570b2d2c9de1febb8d22e65b612ca490c20bde2c6bfae695fc8e324a3f951f9159837ba1c40874f97e52018ac06e9dacb4e2ec9afe64c081b641d0848cff9d657a1956e73b6d2a6a790d895853831196ecb5edf3ede09f2791daec244666850621f7e4c8c96aec4087797b604a63213dc8df54386f9a29590f905bf4912e69ede8fd3550784ed5244bb089adff735c7177df8fa6fb4aa723788c7f17bd6062caa8336b17626c94a55eab024856a09abe615526b56d95b9ff9e80b4c01c6ec16a9f58c29ff3f917dfed0c47cf15ae3274c4cb4e32c91b546530f30499d399cb168b94dac88c7fd0d71355c8c92e94418d431171238207d2440e035665d6c4103922bedca7ee88af342afda833c65e34fad2a998d5651d80b1a03bda35551e7462c8e833c210a807ab517b6562e70031094bbb54ad9d1d160c77f78066db48769afbaa85a644085c24b4c773a26115d948c3a9f26ecff3e9d3984cf183af88c8ee6138ca361c8f43eb13def2c862294876dec06628eed2cd03beb0867ef02d68da2e1823958726836f0841f6988d18c8a3a59c6221b9a301b915efa02582c0d703c80a2623d1b5d46f8f842f6831f68b24ee1abed61a4b432632eb500e43eabf5e70d7f08dd9728dd74feb7194197c00757dd23304ff7a4e0003814f9c4dd4f10d67fd23a8ab3e8bff38b4bdd5da8d3061dd396bb2433a782ec755f8b1ae230662749a3a95f2484845b1c8993c25aa02021891c4242d5648a3a1373d62e8142d2aefd7c2c10975017b209414c264ca839050393dd7d604afd3f1cf901c34d62e3839a703c47347337330a6c5fa329ec29c7b03f880c0885f690264eb36b663f5c655edd7999419bf9b6c9efe95b17f13ecb5ae0a4fa9ef6214f8a9a9afd62f2b4eb5b762305c0484468d98d482eb818b8b694787434ce4d40c80683e709d337948b2f94a1022a6b53cb6f739f79c7594c1ac137a11ed36eaa64ec94d06a5f085b6883a5fe24b3c63714b37556f27673a2ecef8ab7be48dfc7e5253b0de0e0d99df64a7c674aab3853cd87039786020ad7d421cda673bdf595f4ba9a5cbbfd2ca06ee048ae5ce7a5decd1d3bd2522cb7fc44ba0f413e17242600a62efe9c202bdd0e6e4fcaa151186480b55e39a692fd95642a24c29908d2206c175c3740da00852e4dc7559c0353457957194517123a1acb1e6744e417e33b0f8081d1570051fa1f45df0c7c8bee355d78a12fa8a522790abacc4857fb31c701fd339a7a1b9551e3d394531e3fe1ba17c3cc78fb761e9209a65431904b0123bcfe77e11ff67fd7a8eae7af9ebe31b2618395629810c7ba2e065cc8a8ce9f478545c3fdab5e7f8923c8f749770874ca976a67743fe42e395a943ab8dfdd443b318d7fc68c6e4a9aabdac07231c19b07e1a8c6f94e971dccb0723712d1a7779e2f82961a66e801f130d48619a690a041a594898237c74e23367c29cb3e512a20ead9485a4e7fc8a8fd597157ceb66ba3535aea600038e464371e063a6936100773a833ea1a19e18e48fa84e4233a882d796e2b2bdc9ea8a68504399af7ce9cae834df0b4bc5d51a69751ed9e9151193227bc663dcd7a74778022de8e70f68602cb922ca6ac25bfa6f2898009f4ebacdaa9c964385aad0257f0e2de98429ba2038cd5712f6899bf79e59d7fca29779aa18e4d067c52c5c63bb18882a05c1661498c5513c6fd1317bd5209da2bb448c0d6faeddfb2a22de30a2d0a397356ad4e7d5203e563a91a794616d2a69be7499c1d5224254439b23123a6f14642290172dbb4676d0481fb2f997712182bacc9eeee2c7fe4e2fa0c6dd6510c801f786b88b7b77e3e2a31e5b3726c6fe911ce9550149fbce4fec66ceee642f26d83688cb8f4bb9f0259c989a13eab242d29debd672ece7627518c281e0e24b116cb0a8b7a8efdcc939b989eb0a28d90666fa2a1b031d85c33546d10ab78c22317b652ca2312620425fe19cb42f2c2691486162d23e40932cdc8f40ed84768c0ebe99f14ba21976b1e11f1d8e3bad2082834fc635662650db42e5a0cb40f07e8116bd67f70f18071ce6bf6369c396f6f6ae3fb9e269c78934a50d645dc5732002329078c76cbf83e7b24542147e197f77a22551c4dd58324d4b6078b7d1eeae12973a83e908edb10b15ab20036d98bd4e6221fc6c924f03812326713a55335673a7d5e3c442b6855e3ae73d24a7b8ccfd33a19507af515669b55ccdd955c8c21c2df53234b27eea697c401ac5bd66feadb640b0fbc8853c53af701ccc3901383201622a8511cccfd5ac729ab212d03d202bdb62b807173b703b36aec49bda504d4014a370d37beb3b2e288e52d753d4a21095613cc16633e8b68b5a32da3ae12f1643c1d19bc7c3214c808295fdb41febd2cae473a343967e5b9a1a88476d5caa668f276107eaa67af2d6c9f1b3c325e0eb2aef0b15b8c7e9a8ed403a06077d44c19166ddf671358814aeba621acd174c548a2d1356d1909c591bc85b2fcf1ddd4e7ba7b54f63a6cb55de0711bf0f6de6940ef835d23babaeeb2866405dcbd888125a6c890bc3a50d526843f4103cf4e27116819c688abe50fa422f4b10559ce738d27ca14def080a86cba3f3e95ef4473d52b88897c241c4a5d57aa036e0128f7bb81c0cc967ee0ed76ee733c8739e967ca168296323cfe939ae7e019853f0374ade2c3aeb216ec4a93ff1e74708b2d6bd2c29994b2206e9158c6071da9404d974aec6832131c6de5923d96db1b44a493f217d7da589da4405c5b395fb1011f8dd7cc3d283090bf1d4a75859c0795b43fd66c1de153f1dff9add7620c6349d42383e7a13d91d107c9140df8c3e6a4167f4c37057f27f6a67c149a72a2fe72174cdd0cbac754aaf11b4c31b93a1e82c141c44c0b3d2b96da6aa3a33e46b108acb158438346aaaed22fd310dd734be5b4bad7b237f70c930f9f2b1c152e212e0218ce1f466f5beb49ad90298567bbc34808bdff9d12489cea40c4e628c7e7dadcbcfaadec733ee4b6b0eaa43160f0b1ecfed54a5991b4b5785749464cef10e59442fce8fcaac2e2216e50c431d9221681e621ade562f7edbdded991ab989bdbc28ad9c339b269946f73b15d052dba2ab415c751f9680c65f41258f97971feb05979f9c12ca447f9f9a80468c11ad8d00c9a91163fcbc4a235b9eb59c2b5a2357ccfa71f1aff87a2e859c297c939cf328d866ebc945e423d88aa8022ce256262972c958a216ae640e29e670b714ba4361716efa7ae167dcf8bcb4448d43710738bcb556a8d9b3683f17ef40754fa92c0fc89cb3143b3c13f3de82a4be2fff0d0edc0e1b89241dd44b7fb70c57cff88c565905b871f1c2e568da06b4a31f53bcdad56136b03f5530c4407624ba5d5a92d76091e1bc82938a3c3af002959b09e2ba6a02e69b5eba7d93213595d281bcb865d3536a586ea25b6e75d2ac213fab87ce58c5317a056fb44df8164777383f986bab0eab307ce92a3aad7eb2d82069f48b7810d6ef21504edd0c39ada0bc1f15efc2722cce983eedb8a7e8a1526855c09b812c6a2a3b38b35b65494a97821a7dcab55ee19e0c3fe512c00131801426af57d754f604063ee55881cee14a4acc05dc6b200b14aa858f11e29d53e8c703b9aa0255c8ff61b9fb7b2f2ca9785791892943b2c5d66bee7648df4e281795db346299706af21c0a4a457224c4427923d0ea7ceef0276716d2d8e4f925c7130ab45b6ed47bdd9ab16460cd81f205831f1ade2f6e68f8700fc07116400723e9b6fe8da6d81af46f2a2f2a552ee909d5cabc6c664527bb6c07ca4a2048b4119d0416186c5f87aba070bcdf289ecd835dd172a57f69bd60d0829ac80ff57eb05ddd46d7b5753add394a5b277bf4da33d6392f853f0caed6bbf1218b8b4ca047696d1d1226d1f952ab5dc798d16caa04a2eaf43a9f60d7809449bd747480f7da08f55a142914cfa4af2ab8077e221340defb4804065365886f3fcc6812e9691413b715b645dae66fce1268b4dd2932ecbb51dcb9de53ded9d77bff5239e92d2b433a9d4f3b27dfe1a6df0f1d283659cc5a918f7f280baf2e4a8463de4a87a379bd576f160b0d5e8826ac520954f5fa1dbf5087492f96bf132aa4227685888437fccc430ceb13748d067f264eb515065fcce03ffebe9b43f99b03d24e3323d3a29ed7406165406c3f52fd80bb2cd87103ab954257d021a9209c61212d5f7db6395bddb0531c00b9cebdd6dd1da065cd88f38f9965fc3c71b0eb76f12a33ae961be5642dc467cf25af90fba9e2c9ca51badea25495f390a3f35465ab104beb393ade0641bf49ecb045c1e5e98cc38418f579fbf68c299d4cd12b2a95b7f18c88a83c5f2d38e8889e44a0e097d6a2f917a3665e21c2d133bdaf89488256a377a8f6adc1200743586e39c5802542a32f90319a95b194bcdfa16ca27f7e033cb6135a539dcbda7d3fd719081a26ba5e3648d09762e0129dcefc787fb4a84e584d8ff2a05dc5952858fff77edd7a79c6ebe20c09c129967df9d427d4fa7e01a527f1685b59329e420bf034d54a22036ab77ec4509f0c9b220a8fe2a448ba8eb71b709dd50f635ea4e76966bb49910e09906d0dbd5687326485b36534d46c67e5229a76fe2edb5dd9c7f98f8aa6513332564f875ba4b0e8b282517ca6f7a0242a440ded526d55878fb0c6cb4a645b46d2d8d8c5e50221f94b81782eb09a0fafff4aab4d58dff6057a62f3d3c808a4c63d9036ad141a6788a09685cd81f82674e72db4aad142f8ef7a162dafba01932f8094bf1a2e5464e0ceff16fdd66c2b30e2889f009281dd853d4001d5208ec3585966de243f7a416cd16b2dba59552e2fa2c31491db1f7f8b03bc9e1a92c9172bca97849b413183e7f824b141bd1fac478b4918082adddc75fee629189eca96ae92ffc7a37642ba951b184741468d6822dea2c8fe5356463805dd338db816a77a6c88e20db671d07ab49c55d3872d56e0bd1c98e9ea3142c10cc0732efaf1e8761174755231d61f40cbf9ee8b0503b2ed41cf41eb399ea8ecc0a4f5cfb32a22b4a9f45d26de51ced4843412596811f2f49227cd9ef11d79fb450e0e418cee8f88290292bde5ba90f714d03ec2fb1ee6e8487f3d60b333e843377509f02337533b00d981ae50117af2e24df3d7176e6903353314308a17aad3df81dee1565e4ce3d7abadeb413a9b56824f2344fb29c44af56d2013e2d56e3eacb263b582761bcf652bea5340f55d763f00085d51b77fc28b4b362cb47931e57aa2f00837b2e89c7eb540a45784694c64eee8b1a1d32f4686f79e653586533d445625f5836214dc62e31a0672d5b0b2b4446f274c75e87d68c0a134430f64bb6c8c94bc23324e9d9218f901b30a59c28ddb6db944fddd7c43f11580b1de2324541d5417ec3b4959a89aa46811ced5bff3191a7623469c43d0e7e03febcba6d9cadda8f577d63c14579442c17ac2b534f684c41c5ed0b2fc59d0446d19d81278408902e32ca573fdf002176a187109585da0201b2c2a493ce119a47e3d732eb8c0f94296815c8c5d9738c008f5c7d1fe917f11b283067eede81fb4bc14d382ef879e5973bc885bce0f3d13b6da20a8e7123fba4f91c5df2941226e79df3f4aa37ff67245fe7705b9d04c1283dbd809cd132261d84f0e08f11aade41a9863a8b0ddb6326d768fd1891ee3165bb315f795f321c94ba8420cb7a0d2a6e7d68d4629774054ab51eb7685fa07a48ed7059e8c47dac5823d6a1e29272d6cb10e7fef9cd6cddc87061bcc9208ffb0f8558d534a1904739ab46bbc59d35f17ce015e8e743a05f32dd7a3c2599cf931befe56df486ed8354704219db0e714dea448138fd2c9763c40131fd7c6b43273a1ac27099ff1c9c79e6173a17b9a903582271857ef875a55353b6dae9a43e22064d3c61d57e71ee18f7def3627b9fec896724dd2e08c046c412b33fea387bf0519a0276cb6f307cc4fe5ceb51a39728780c6b3f2a4e254912d211af00498982a4c6661913c6db6d40caed1e2980239b1383482290db2217ea61b73fa2512ccdc5b0466b8abc9a8923f59b5b35e07a6b1accd4edfda975fbd0a9541875963e4a5b8fbfbcf8ab2bc0074cbdc67172ff84fca1667cd9293ea7dd2c0ff8de67c5789495ab1481235ca34a149a567e466314d06b2da26b5f3aae003dd3b2e31bda56e7d089aee4acbfe95d5be058e6e4390f56eac5a1ca98ab07dd1ec1a953d4ece9dc51d87795e640eca7afe6eab6b970ac0ed100b39406549030a04c594a6cafbcedf1189398dd3329f4e40b8165cb48e55dbd06857ac17789cce254cffc26a85b6e48b1d938d1c3c473c6d36406f8f0fbbf3d41b79906f4151e5eb02bd8f904d78ba0965289caf1014ed8ba2ed332cdf10ddbf45da7b44ebd46596725f08bc94558023fbeb7b1dcccc08a1d50017ccc0cd2554481ea5317ecc45f1d86bd44db3fe7a0a00e2fcbb632d180f98ce88cec59ac89699e06331273ac72f8aa2c04c0617a3f21eb89c69fe68bccc17b79722f27c7a84c2696626d076ff8aa05fc5d1dcdbd5f372e55c995bdd542f9080490d4885bc146fe9499aebe34ad239a6a7227a8144b2766a21fd332cc48c8f34dc49bd545bfc8fd9a4c2096c415cd8536be379af548b6556a7c39e3b5bc4d50f9aa3627aa5bd470e68143eefc363473eb7bb5525794e673bff3de1283dcfc053b34d1dfa8acb099362c330bdc936425817052002de2ce6ad0186c24de4bf44fe10cc81e2347082b7616f59518b445f1493d60d9f28a6898bae9bd26cc9bdc3daa90384d8f24abd035aa6b174ab5cc413191ab974aa9bf902c732943ddf58634ea401397ddbe82a3f61afb82a1a8e2114ad3dbf6a7bf4899d855d24fedcc366982f9be6a6c14e3b644c0fbaa31bf7675ad20cf380db73f2db797c03f74b53b6a275e28fa0c86478ea1a8c2c8c7865111a9b7cba2d748dc7b196bc5af66c74296f7394ebe17c1b6a23eaf60f653b9e49f3d2aa9fd9b25d8e68bd5c95ba62b91a061cbf8f190277ddf879e37b6e160816dedf14416136b3b858860d5a602b72b105b364f125d68a9277e292c6c205214dcda3eaf3e163ba4a1f93df616c9b4c9c2e6966b648539bbcde1c58adf7b3fc7e2361c7ecaab8546398c8a37d5e5425365eb6de36f8c66401a2db1acbcc4e6aa89ff439e942358b181d297fd3294e195fc5962777dd2a4b0cc5eaa0913691bdd6e0e3cca784343ff5e3668731e9f18cc61a490c21e0ae0b492942aaad83caf7342779689d883aa77ecbbc62fb031548fbd83e2cea5bcf02a917526dd63d27bd34d366f3b195c0ecff993a4dba1375bcd110f29e9a8deeea2e26ca2abf0620e01e62e8138249fa324877ea66ed14d0165b121f3ec837492c711b4a3c32047b8e6fc796c8ae6e7c9934dfd0b8ac042f61fc4115a85d646541fa02d487b77ff05829004080fd01533b037565a951527d5d9c5b63e8d03a740d8820f0f1cdcccde68387ed81f57d9cd8be26575831beed4c605c0b0ceb143aedca05d9cdd1bd9ce1c9e9706ff7550c5f5214210923f9ebcf6265b7ade4c0d4b43573481d666ef3d31ff906e5c26b3277a7bac9fe89311fd62a12a0ab6822a3149f8e2d2b0d0c4945fad18a33eec0f064aaa5438b74e461211418c35fbc7fcf56847d69a1fd1d092428e79fd7c4c181f9c1deb02594a3f8e14a62f8d9ad234e5cdfd5269e9c5b556989a1915c14ffd66467703300985746f86c4fc3d761ef7d956460095db6d39db98604838b7025cfe480dc795eca0d3a4d9614ab8706a1068984442f1206ccdea24825dc0aef6396ac36c77618d6350e14e9a649707393a47d28a640546caa7cb4f34275b6cc0111f55d2c08669370521ac5e638308536f3298a1940eac756b260cc1a8a3597aefb03ab0dcd6dfaae381c6f15007a74250ad0286ac564bbc60e9920629a48e409d3a912e84e99aeff451df6ba0955fd69761982acda96cd23d2a71f5901b6bb5dfcd09a7b241945b2a754f37f434a1a29f06c5f1c8f470517f4808141aa0967bc2fefe283858edeabd847e95348f2c7cf4049f345e56d5b450d2b1fb4cf947bef4db4ef51b7627b7224aad18f65c7401fb47f1bf412d61db04eea6da4f4ba5aa35e69305cf88b6878577ad283067100ea4effa53f9ecd28b1e4a41f084ede7f0d0d857812e5a863fddbf3a804399814831d41a2586c36fece8d529157906b0462b55a34956d6cc698bb04bb150dd1a95090ea95ddf599109a0c48f3122479de45ec3dd6f43496fb48cee5a9edebcdfa19df394983c39ac53299d90c26d5fd307e8f948b946be537139b95bfed0ff8e5a5c3ffa67309f501e5c58905b1f068a71617e842347eb321796d4c6deaec3dc75b74fc4ce92ca5623dacf5e1fffad29e750716c5bd451e2bf333def1c39c514e737b3a2c63b0bbffd77ffad4a5842bfb203775844098099a8a04798ed50d6fa6ca27206bb8d1ecdac35db8aa8c784c21f7b2f37733e9b68b4680d99572ebac4032ccb9b0ed0a28d15c7bb401c5ae643ff680f43b58c9ef1eaa54933b8e6e1756fbe4ab89459ab437faca34d1bfbf597273cac15871ff778f22007a63d43c3bab84c8081158bbf3317dbded32e33be7ff13ccdae9c57688d9c01c26e6ce7c39ea837b224ce99cee06df5be437436ac9ebab9d39c5bbd61da590fdf9d9bc7f21c4fc24c54ef29e216f51376ce1d43dac762434cd45fc33033c0819a9d76ef09998096fa631eb9990e871d5291f04fd74dcff9baecf558b8880b61d0cc7d9872c3515999c8f3d8b88be0afda4ec60a46096ae8f468a14c984697764059839045489f4f7c757a3952181f9893f90c27ed3ba0729869997eee8768cd2fd730f081ee8812af8cb483596548db654a45fc12cf62d076a848e31bafa2c2892e8021f479ee532a1c1504a668c44ef11a86743eada59a00e4cd55372f11a6e297423687b7fbb22c2e0725b007dfc04842f94ab720e36707f2793a18c1a2eafd8d9b8efa9898a0294766b993fd49b1da405a9a5f319978668955f122d1e8e6b9ca80cf352af4530088031721329699881e7dbbc0f5c77364729a1841ae982583a03f29b57703cf6c0f220107e7bec52e7cc67365ac7333e035369fafe50d46b143f7edc732fcf2e4e1fb625ff79dbc1e00af73db3b26a19a934ea78c42c46c6fe11a789bfddaa453933cda28e574384ef34625f6686da22f00b6384f1be14312b4f2604ccedd01642a8511779766af3c1bacca2cac5915902b7bc392f2a98bfd9e1a0778c506a44e39eaea637bfc6bd19a97ec2d1000dd0e195a72e0f3063b7b3e0165082a9ef65af4757a0b31a235b4ead01802edf9fd52a2464d6080063026c26b3734f9af9a8622a2d01c0d2889e2c7b6f057a4e4cac056e62b9cd25c70ca5aef73ed9e89db0421e294c97e4161834dba87d3bce0202c891478bebbdef9dc7e790f38f83f3388d618701ed9078f3b4de1117bdb13b4e5055fc0f69f0523edcaca1423b627df875f1f470e1675a2845f45e29a23266c755b8a1aee22708bb1cdf30a5e955e84f3704145bae8ec62c81394b9ba76c6d093d80b567568619c92a1deaba4a342e406ebc1b6c0dbafd7421e8f647ee7248634628dfed6683e99d4cfc5ea7af9f6a02fda53b39c4766e0ec5f8daa8b7376d9b30c6e2e779b1140c39bb94af3e3e11137309f9860a49f5df12af58bcfc1745d79f34131ab2509fa807e1c8579772f2822d4c154551948e96e34c7d0bc33dc96a1224ef6f2cef79b5b4e2780dbe94f637943cc804834371f883a14e75d11eeb880860d53fe36d2b6c84665950adf73d5eae3424b9361a2750484821154f9f07110bdaf15282d33786be836284f09133878509d322415a7a50305c9e51d07abc79a5595e75094da1ac6724d8ce81a6a10a361ca8f1594c5a38522381b3f53ec033483d6ff43f127e7788b333c530cf7e3486ca9f09af56128c9c430a9238a04b1d586bea50f9da1c33081c25faf27fe7c21378e424f4143c8c2a6a835d85749a62c1e4983fb977355a77aaaa2011f053f1173c3cc2d88169d2e97a8d3f14f93246c14acc70625eab056ccef5a48b0578bc11604fbbf74eb7dfeadce113fcabf02b8aacd1918a9f899c2a168ff9eff843531da01f84916b6c7264fcc581ce630eaf7edc65a49c4b454792142eee9dcdf072f33df17009ad0b50b32e799858749a325386638f93ed8052e357c83c49fff57f09fb8128f3c734a118b7a4d3faaf471680baf8f8c2f42a38e29697fab213eab35c1160f81fd42c70fe371c1b0d81e828f2d599f09b17374b76b31bd9da33d6bafc17c7c4985beb5ae1ecfb749ed3864bd6a4e0af79d132366c44f39ad195eaa94ccddbd013ed17fe8b528558d86b89956ae2caa28066b5b4e9314683a6c49f89de123a420d647983822275f1cbf96318531c6316481e9fc31b723dcd3bb6846d628a9b8b6435033361809cb58cccf74e356a39f0714a0da9e01f33cf4996adcf304c257f9e5008f9d37219c7c1fe6a21f6b7e801b16c50b744f508d1876c35c2b87309b2692d0cb097b52123e865ebeaaeac4017b7033cc90a1dbc1e8332bd9ae93ad140c301a55e1d698285b914169c41c19d4fb8ee8ec4edb85a76cfc1bf74afa6558ba09a0d936257f63a6389cd175ccd3ddbf9986d4aa1e181a87e15324d4027a572f1905d4a0b2aaef6e4d00ae4da87dbd1ae3d30f3b18ae8a31d857db55717f8a016e52a3497e4e105ecd034aef59561cb5fa397259ef38d631e3edf735d2feeb553c7333ba85b4dd2391bda2c6b6cfd0d78147c61ff9f86b4405a01bbef2f2c2aa45b8352143ba538d234c93738311d108b02d0e1abf07c4f4b64022bdc64d3d411355e918db53b0ddc65011be2375f563724454d064d0259e2960a632a074da2fe9e1732d55022285cf6f792539098b5933840b8af993be4e96d795368abea56770dbc9a5a063c68e84d2eb5ca212b6bca30d00edcde307873440d68eccf84036d520275115a3f85fa7a6b8468684a44b519fd75977287e0f3a79f9a419e3be0e7f76175b9603f0a29d9ddc40158c901b72212228c51ea75e722802ceacb54da395050f687b58ae76f96a8dd4730793920f1dfa238e54684991313816ab94b1993ed9927cea8e3e3ec548d61ad20846d9a64235efe6aeadf761410d036d1e8f64de61f1705b2043a9897444680b5637ee67e1242804e45f57584711fdf3e4850baef38af393a2d4cf7daea3114aeb2ac57771e677c501ab87d8f5f653b2ea1aeca646aa5b8938b07bb2bdca5b13762d1cfd0c44eaa8e494f6bc43a80ef92973bd1cf6ecce3b1cb6f852e877e8cfda76f04aef2431b0c2e32a41ed6af9d20ede605d033c7bcc1cb806477d3d325dad1cbd2efe8db593a254747cf014a4d0f82f49555254e7c61998c69a4d7ee974ba94ed433d329879e021fc041151424dbdec82862bdf9bd389b6bc122e7a44bf7f072e3158930349aad9ef2856f39f002642a797b91aa7d0f5b0423b786a9435b07283df1cb2719c8684c0688a5d9b466ed2435f8d12bd9a7c70021489aeb112b29b550efc4ec747ca1bb082bdf3d760c74e81971c68f6a74e885431410811ef21d2d4228dba66612350276dc2a09a1bd5e112553cab6ff333e49bce86e893ce4a8265b40a369cbf0fa08d12b06a02ab306ab8f3ab424b9f02c7f8d5c2cb65d6b197fb22d0e305e662be9d7e62170f4ae784dd6988e4d7202a19ed5260a678198daf8f77e347d970c5487072f7e02721f8671fdcd89eddc02c07cc1e5261726a471b18ea6858282632ceb601523a143ed98cc3d8027053b81ef00ed78e661d6affb2afab291e88f77a25e1f09aa398f3f22a69da536fff372aa4e9568c3dae190778d4fe14e5ba68bf132709bc8e29cb20827f907c85c3370df3b7feca3770106607e83abcfc3f02fa42b07ce453664f34f54af30fb59800988a1e0d482dab1456dc5b13d608ebb0768854c208364e5a72f4825805f37a023225f92e0c49d43fc662335ebee1e435537bae055d77613e13b8d2943a8fc7ad55087034a0e55b06d8d9c5a0f004b814045b7a65df7d2016c3cac6b5ef2cd0b50dd3ce8a8f79aa736406eadc8f954abfd1457bbfce079bc12364f106484ba4587c9cf6b3eb931eab74b5f573e1ece71956bf60b62b70019e48934fe4cc5d530658628575cae81d47c60e3b78d0babbd3028766f340036acf3a393953e87429086bc70ce3c46d8b7f4db7ed706bb6607a99bea86215633c0976d3657a6c76a8961222f2b777863419b0c3996763de64a1b360664efbfbf41d6d16d0d80ce63f23bfdad1ae04410700ca7a96118e49e5f03a07acca058932430358828ae03d0579781a80a58fa2231628e81e0b6887a370f00121d88aa83fe310ca9501e4d6eebd55c90066c2031a328e3efa648d9036efe7bcf001a5808a09e284ee587961534c05dd10de4a7de87e720ade38404739f707770a00b573bcf3ba617ecde2edafd24af71a68596489707f34f493e887985e8b483114dde463154aa518fac884f6257854b18923d7244814d42eca8dc9621e8479966d850c62e83d7a2029b74fe7b8fa09e734615937b3c3d153305f4ebbcb5528f8dbd7dc8e38af3b9c6e9f5136b9ce94222bd1803f69d259ea4d30e4d2bc35407e8043f64435b18f774453af7f6904b84399b3b1c4cbbd1e74d3f534089fb0bfcff7fbabc777c751fe110d884c6d42ab36664debc874b26b9c0448a79105264f1aae7818b559694dda5ee85daa6243994ef669a4f74f130747d1e9ce52424b2706abf341f66a85c81d71650e1753536e0157d2b72353f8e4a88b386dbfaca547d028ed4edf92fbdd24bde75ac33bd5f6dedfda60e62aaaa9d404bd01ee5412fd04b7a7ca716c20a857dd37016e2bbd4ddd56d747713829fc64dca1ea3b033fb8947eaaf9f2b93c3b17bf0064593a179b548fa29ee50da8a82efb3215254f31343d7a413e48600c705f5153c31def7e22444c164dc22e0b932484633e318ac0ec801bfa8ccb36407ee74825055a79a5a1bae7972d3b3a7079d70149c3183617e5a6e129f1891cfe66cb7ccd0d8589d2fe7be288598bcda3863b3a9f0183bf36be7cdd65211e305d2f08f686a861735e473e08d385945ca8b49ddd43480041701dd5f9092499bbebea540bf3ffd6b636fe1746666f5df735fff238b7572124ed62fc25b4032b62289622ca96a62f015dbaf9a9b05741733566eb2ea172ce9029b09d2cca937d6109c1cc7c572f013768154d432891e2b646c072fe4bfe3fbd733ed216f044f3447609455503563e1d00ea12c6c61b32f83c5d89c823b33a5b6f05557893093c3dcb65c322cbb735c664e21ae388511e949c789e5a3c5d719195b114e7624af26a5b3f4580c11b7ffde4562e41efa2bac7217cd67dcc2c2e2aafea9d2dd0ea31cfe85ce5185e4b198c677c48e47f63f2fa3b12e7eeac96a5e25fea177d935d5b412d9d5676ff7a3a54e6e2359943a6187d8b08732ddbc494109762cd0028c974bd54810b4d634295f2ee4335ad462ae78b69021085fb960d261fb47bba4c3cdb9a8087d4602f2514c922a173d21b57be3d5efb5f0dd23292f51275e27b84f235bf4555ffeb6aab4d15b7b27d9355493870aa99e8e1cb24e2fa61474d2796a8ddad2bb240ea010a33fbf7a5002110ef602cbf50927d73101b574eff111e0e012a682e52f3c7445bbb3abe2b74966734250ac453f9f8fcf00ea1f3193de9baf8566f417075bd67678d9d00d7870bfb3fcbfc1358fae5bde9f124b983e6b52f6bf4dcc638af8d02fde90741cb6de973bf859abb2725a6afa6c1b0e1aee83342a7117317040c7692d9587e1bbb5c04f6437461fe03ff64f24c0895fef9f3c28f1397b9016170ddf621da5fbc36e3eab2aea2b4d4d73e5246fbdc137966389ff5e27fba44eff6b6f26a9e8a654ae6b559add94b673a6d5393da43120c9f1fec17d9e5b2140a7e9caf51871fec6c65659f4652999541922761be4f82484ed110dd1e111b9b42505c39a4f21e3bbe5d7fbd769e387124dbe26055a7a60fc57bd7f126febb74aa7114001a9227cf956637f1db58d2c3ad61bbe2e94f021af19a2543a20b2532ee5bfd579c51363961e1defc726d00837e7f5b5cb2df8174a3b7f08584c2b8d73f33b5f81e8e64a0d2d6bea2630da761205751e9b1792dfc265948b018eab35d11be337f081f483e5fdbc52edd9fe640e87cbec628357de82623eb7e255a06319fa98eea2af4c6df0d95a5eb024243b7a8e91dd794d23b3de559e2ed213d91b24ae55c204c4ae66595bc14ace8a7de8f34a1d12142e0bd58c1460cc279b462b7c41ed7663eb85b46cbb3eb459f70a948b1b62c4e6bb015680e375303e210d30608a9caeb88966c0c620bbb0f513f4193b998d92ceac2d6f1390f8c7cbd10fcde2358133ea083f6d4f7914c686e2bc9d94fcfcf2e7884ed4a42ac9c3c91d6de6ed61b98d2ae0652d074c63831ea596ab3a09587e97e850a207d8d97158989b15bf762b581ed921ec5b9c75b4e86d1526f95f9bc98788a22f1ad80ef1f0cd2393eb29197068c6ded8e9e1b7e2930dcf892366bdf99e0178f926c4ac33561a4cd249114478129382f9740e7f6306d872151dee53deeb35b6daadb848676630b900c57da0ef7dc21be62a1726653d715a9163b1d1bbd8196f334af2efac546e5c36daa3e75d0cd00dd059511e986a9735401225818d10b66970183a47c4a6cc49aad8faf36575cd689aa00cc4b455c00036431e3d0167793093381fe35ef4666baaab397903eda7f900f695fdd0b523f7046434513200c473ec4580c8be44f72cf358657b217d395e004d1736fda934155e1af9fe0a587c3f2fd83698e1c0b73e893245759dce4bb47efe71dfdb69dda212560e43dfefa0a64ffde63dcce1b3b00fb137b746728e3d74b880835293bf2b533b0cbedab3c0f343d8eae6bf46828131acc852afb2941ef2486dfd6c173857be221b45dcce84fcd00351b62cf51f756911130c6b971fd0d9ccdd56c8e8728023ddfd56aa8f107efe27bd3e961f217b1762002da2c9cd7636ad1606ba5fb1bc5020d74282ac04c6e53e7cc58f177b753cfa63765be0248465649832a9fb6461525edf57a5fe4c0a218fe70b98b85ef7d1a8f38e240f4dc8dbe40417d1a2da7384bd1112ff955bc67c6bfb3e87ea8cdb7c89a70ee667dd62f157517e5379e0db150dd732fcf440c154b6b120bdcdc2487bdcc8faa49c142475e0490801a603144c1998a9e5b79ac546695340ffd215b86d2a37d09e3e11c27b56b4edd6e3c73cf625663e53a451c452a8f2952fc1ea5fa54258903967830fdc6d52cc7dedcde29aa5cc03bb00331ea7f1c7c3e38d7618382b79f0aa69ec30354b944079d473d5742f2d2c8212a8888a17a96ecd56e884012cc942bba85493eb4c7fcc6df6b4a178a2b433f99e8fa299fb6306039ff59daac5ac4ff5fa09f434f2b76f45ebe5f6c148e6fc2455ab533dd53c3fb8f7bc9286d2b9af1855a97a62416f396d6e5250d27830ef6f845d3a89342382847a54bd566f1c75d0062ce2343a0107b88771fd53d9a9b54a76ea46e4b2654fc941001361b3534ca087f17da53f6edffbbc31e30859b3a4ced73faa967ec91e4ec386ccd050fecc2b9fcf5780dd89a1736b2f82c626afa2c8842221798b26ae98ca5254e10b2a1ec94a1ed7ebe6667bec8ae065ceab7a1a6da146b1068fd4337f21d40be1ec68183fc37a957c943ef45c1a549de67856f6f69035dd1b13e7ef861ee4e5a819269ccbaa6396823fff9d176104012da7679b05f25016724ac5d67603c402485f8c7f57a99efddd5d58a4ec011c11b73f591ff0a41dda7c465c73a3b6b7d9ee43db3844cb991627ec0b9f77da26e1c1a22e0015d0c858068ec0c368190031050a7fdb12375f1aeced12f450ece9052ea97934d6efde2db3ce83fb184f865d2ece2520a595a20530ce560acd8fe6b7cb0fe5dc4f6aa9a70403fc864dcbaec96d342a83b29fdc7f1919cdc35c35a64ce706d9c6bd4bc26c7c87b36a0e45e414490c789393471669a4bb05053be2f8082e09c5aba8a6c94defa828c593c905b0aa4fa0dc9fd5171e43b8c16bd39701b88ece99970be95feef539b762f45e39f8e04997a146d5ba1ebf73e665fa93fde223028864ebb562af322c32e8ea8a9629e980de41d4f92e85329b88888078f48588144826ded40e7b00c5704a4cfd640aabdbb51c7d5fcd4090e57a39a51c964e365b73690691915628608c2b76bf40069c41931ae11eb618af7c8f67c0890730695c70b7a622971145e246cc0ec26ee64719b21477dcf791bcb37abe9b187a2fa829cb941b51e8d50332911d30c42dfe27c6c637e74a7aa8484c8837e543420eece20d89d5e7c91c6f8ada61845ed5b8614fb72a0b6f3ce85ad69132800e61e79ceb4985d019bad1975982c8356d8915257529b75e840ad7febf14c1845b598320fb1139b6239573cc6a39066c2ff0b2cda44894a1240d080718e88fab88fe695ceb8d3b7ed9cbb31da360c6f50015ecb276729171f6f192f8a81588073547cba7edc88df2f420473f58af62b8c8035253ada5a146051d0d41331c7b392005c77468c0da05a1d51a92e22458b459b83a804e640d80a38302efd84d8b4b7eb116c815a2721c56a8ae7f28d342f0d6eb057e9633d80b39ab672d09568a986144c113c8eada96a0f6c117f85d37cbca80aae41f9dd86d9ffb37b23abc1af2a7d5e63bb85ff6a67896ca76a4c6a9fed32e576da2146a35b75e1d7258a8395ce9746f1f4e8f4fe7d7061c11a69f88180e01438740ae076fe98fc111714b6ed25c3ff1a12acb19f9486039c4aab42ed1636c095443b5edde930ac6ed03421e2e3d63a12f3e107e43558b4bf8b822b8e983db3217212586a29542fec382144c542c0cac0ab5e51b60e6d2771bfa44fa5b16aa95c9a0e0bff2e23995ccde585fb7e2e5810ff29eb4e7208d1ce9f0421864f8f3f4c4fe90a6a4c109b092145794b594f2e2febc1bc36d7793cb83718fad826e07fec9481eab13bb81f6f59e64d06989b32561d2d75b956fdab5e656fe3c82d093af061962703984a3840b0d3c8c283b3594477dd67ba2e2ca4285d9a05e31e5299b72451e33862821e18f2485e96694b2b1c9062339240fd446427600173fad2aa203da0319f7d2e4def01d246d11a28279034ec9b769455921e1f45a89483b8c5d9806109dd324af1aa54b9a9436b2b1d53e09c43f1d4280e587561cf08c198072ab75c1febada535e373c636fbb670ca9147ac2a15cc2946b9ab8736187ed756b81e0e369c7e1e2b4b7c4cc93957794dd3cf592176f00a37dc1abbbd74ca1a9db5e540ac8219684ffba188ee1e306943fe15af9560d64ea7396df6621677cf2bf3b27954ee5664f43da850691f2653a06865126773b7a8dbcb2342c2869dbd7cda1c31df54f10b0a6369110defa19594c842a9a988f3ec4682111b12eb18adc0ef31de61b60be70c8f541d8af210471195e48a83cd8a9117b4de28d661051aee84f1d0c476a7151b6fe84a05a863b2bde4b5c28d04a3bec4d98644c2f649f94187d0dc21b42ee8713a3de394b68fe36f22d322633109effcf7d8ce87840a8d64dd38d35d59eb07d66f7be0fc7d0e447afe92e64657a8209850f85687593349a4a005ce860b902fa84b617c44115c4760dcf7240d8815956f20dd90a059f5c7f897074ac197b073a809bf0eff7f7b27c49c3d13af3b04223d6bd49b9aa441cebfbf8311ceb6421baaa3fc3b623370b19f0b541735cccf11e418fb98de7d4e606655b2f672d22408bae4907383edc3211a6b5daae0fcf693c5f1c7917e4f19e66fd2415e50f896af79568bbe56aa03118d8b2f0bc0a699bd025a7faec227e05f8d7ed099ed4cbba2b0c40dde483b40708aa1d6c01500001ace05bebcb6fda6aab6c4731206211ca756d1ccb98ef78f95f5920eed3d7714cb2e43f505725eb3d4774334436142245f9859911e84448a5881c4cc6efbc4e339d7dfe67513e21182e4a48e83bf40a482983abbccb30acd3e2589b6d456ad1f57f1232a11acec1061e3a6f4a1a52651a7ef5abad662657ab85b35a51f79e1a06b02d5acbb91ccc2aec360484e119541992cbc954fb9fbb66c3b802a552c98de7848b62c4fd43c80cb4ebf645460487243d7bd6549e27b2a96bd4c07e2ebbd77293386be01cfaf63dfc76495a6f4cb4328b8a9d823bda1826fc32db2ccae10af51da0a481c108bcb8e8b961a385f89f9696617af2afa0bf1afacf7d5b7d516ebff9359070111abdcbe41a6a9a71b6f3c635eb33f84bce3ac17917ad0b4e6a3351d0c280a82781afc69d350ebb9262297cf227cf46f1b046a0c6f1036e60089bb9d7f9fb687e1e5578496e1fca3f90cfb832a96cad41ce0eb45e1024cf231225041fddc4007605a5bf06184ec25b4a53cb79c6dd21f03df6e8a2dec8d4517adeae3cd0336493eca3c837b1540757ff493da1dfbb3720848397bbe1f282575b8225e6689f77fac28711992ea71f773ba1a022fa72622e11f14715ad68091ad87b7f5842c36ae5c6a35bb35846bcc8b9853dde17579849f8bce68a952abf840f80b5e5cdb7bdd449e07d17fd310296c3da23fe3da0d10d365b7ffdb72f4b8c252a448eea6a1a4011f2a68ddc3b3810ff0ce381ed4d9c9fcb32480852c5a73eb73ad85f7c359fe921226872d059d849ac484bd79afe403b393effdfa3f0e2eb3e572b40f84a66f6dab4592a5a68ce4e567d4df722ece6b0e08f482c908f9469dd3e883de23607e194317c02def2ff386b5b297959048693ac9954b15b13336a04022838845b177db73ee9d2704ab0b613b761b166c97cc42d93713f4358d205388dd81b5f09a861dcc63a4d05b19cd09655cc80c2215cd782ac370149b083a4b00f580d2fb6f1a9693cfdbb2ac05258a48059b162ab0570915264344645cf8d281ed3271d4579d645fd390d507f12946f5f5375c676aad9eb2d12da8eb721565bf6c0ce7b6cd7a9edfd118a00fd0c515b513844137d75127783925b673ea61958cbbe48d872276066670a6a0c98b30d8e62bcd3ff0a2491c8f580b45e4966751aa482648aaf850e8221b2ea95d803a0cf96f82ac1508a9e0802a5c43fafddba23c258f2a67c8c152fa835af430fd663792f27c6e9b5b7214c032eae651d9e25dca89816da55dba292119914430c9d625242cd8e33280c4f47cf2aa671b9920658a4ee4070857feca6695062fc89c024dfe795a7ac0715923fb7693977ae09c6dcd719395c1aa093f2d72e304ffa345db729a6dbcc7bd546f50ca84e98904756c8696606bc71c4730976f780c60fd373ec932a7d4d10362790d7f48b9b9905e184f82a3fa65ca9622600f83fceb40d9298849e1c9907a234dd22b9de6ccc2f928c99f5ae69aa324a5281a82eb0ef48a6a18cde2f5c76cf0493ae55215040ef43de87bdb6b03eb8e78bd1a1a25b016db0be10d9878d0b7e3f4dbcd77242199fa9783491301a0ba5ce305df8997cc971e9ec43cdba9e64b3a8e528294aeccbe7c0d8a5e574a287bc4aed2fb2ecbb0dbdba456f4cccb4bae018468aaf8a48f8d3ee555b5c5c92c6dc285bc471a96d33b057837b0bc7fad7b161c836e17580347bb80e96c35eacd257fb09d5cb4fd86830322c450a1bf32de72ef60faf37e12e357005145b747620a0666f81b72f830749004af99215e041acd1016029e0f268d654b0026a65700d84b2ec82699018243614e25b32c4f250386f8f138befae021f425c89947d2811e850ed26414b12b18a18bdca9223bf584e78fa4d7321c9eb4743ee84dfc7f41c0cc79848158c9ed913bdbc2ec8c1ec61bb3f5881bbcf23b0c2c5dd793004c86751a40dd6b586d6c3cf79213d166f8835800d675c6b8f0e123751f96e1bcbe484a89f598d689702620605c410ef6c88b626b6fd49df27753a8d3e8c353a641c21dee8b24b9f9f20e3582147e4133637571939f08e97ad2147dd6f33825afceff22be1867cf70bbc1e773f8a769c2d2c155e99065f796ba1e3acaac9b3a47ed836245017f18a8010697b0e80a6b7b5816eecde30398bc431da93bc04298ec1ede372d07fb558d9a571a43cdb38e823feab1006dcfa29e363f484a87b8ea4b1d00d252efec8f97b87a38c0640bfff00c542a5ee30b6d49326bcacabb5ffcf08b03b5edbc70902bb2b22e11080d4e0dccf074ee1661564f244896399e0c4387ff043906bbe8681080102d0e2db5ef1379b6c3438b383f05eae6467df7e053aa7cb30a3cce3beaf3e571d8e8b132ba8fcce0da288fd70dcf2c032a79a05c6646d035a6dcc8d82cff7636ca663bfd6c42e90d959f2b2a297ccbc1c36f795fdc886311e149bb1e0b7be8630eec2f32249dae0e612f84a400b4628b4835fbccb5606dd063b07a0fa48464efa5551981e6c8b1e4bf8382f98372c6212432cc9c198fa33f280ed8dedcd1ce2504a4777f1c3f1fe6c55ae7a6a8947e5775350367d047cd3dff884106da852db993754e730ff206069cc31a80e77498e08f1702e6cb61d9410c15c8018715a8cd2f51f7827205d5cd03ad5572bd975f8c782c127b99175aee476bc3c0153cce7ca8c002c0d816f9aacac3feb52c68cfd769862c7ef2578843fb4f8e2175ff18aa443b32b23916fed158a154823904d0305308980430a6304347291585dfc4d7af3ae0d4de71ae941e264abf216d199072574847d5d18a2b24a0e530a44e75fb5f38011148c13d520642fc62f655d18d1b4d422075f79343854d32085601b27110de7ce4064c5e26eacd4dce9702ce207e3eda9790e8e5aa69ea01f1e3fc1802ef41e9e5f19bfec8d07d9bddb38a3697b4ea2e4b8b8e5b622be6628cdc8599dfa4698e10ba1a0aa3da1cc72dc685d3377243bc80a9f73634fa05a61615a7d85f66d230250699a1f38d0746b80a903bbbe2f04dbb1ad66124f0ded425adb2a58ae7efab69dccbe33370af7f7249cd0f0eaacbc1c827003e783e5d785076b97e7352a25cd119ca45fb3f1b7c0a3a62486ebe649af6e9f005b87843af761612258f48c65bd8cc917be68865e21a48f59035477b61563c45bd4b8da194a798da41772ca6889b0981f042393947707137b5e2e289da3b0b3fb1958d61f6dce56f1ace6d8263f733ddcf805759cb39d1561d34b738055fc14589ac01bd5b07ccf454345511b8b7cb4d9dadf31b0a3f2c885a6576e7ef4b5561e71626c65b24cfd0cc82dafa17227e5f5d79f7e957757b87c3e114275a0a65c2982a1cde4359fd2f77ba635a25659f014e8885c0508e031021fe42402727e13956f1c73e0e4c647f575ce741adb635092f132fb2b65901636a8bdeada08903bd14b5d071a83493f5831bd134922a6fad1a186564a01454c69154789b88beb1e7e595fbd78960ca063a1b34ad868cb20bee9d3090f7ffd70261d9b96efca2f57668cbe1239a2216ee022b4a9697c67aa341cc6b8447d854e465d8ef3d2799eacdc873d6de6769982ce8b2fbd2869ed3d7f1d96ba2db08fdbdee793e51c4b058705112aae1ae75b104b84130b5f5d39d7237144ade2db47be3162e0caa716d3a8b8b1fdcdf2e6b8dfc59eff3865fe9b71e5080c043a5eb782ee38f007ad214956bef4cb5d9d1b5d95f33051204e421c8ecb6d9dc6ea4b04c7c6edf8ca781ae5e02255eb7a7227d0abd9b9ea1dee17dabd0eceea211e898522d26e5534dd41fa867d4b9c97613a0a5696133253a61c07c23d19e15723530f1a71650ef3a6c0de55406148c4514f37df95d3e4a2f4ec7bd1f8af803e95871f1d347e180719a6cf6a614d4426779baa6ca1a720a4a83c06c67fd3f666574f0339e29f635a891ee8fe12a18e303329b2c7a852dec0da405b67cd8d80ce89d902a79104464c968afabaa5678de97ce7b4e6cb422646bc7a88248295ae106cedebedac1d62e75edd2024a28eb7071d70f0647bb61e64ef2fb5a97864c006b1e6c76b910a4b27c46f9ec32e36d5d3573072d778f390912629df399c854805258c1b7148a46926666b59b713e52385a5d1d71abfca03807a7d2426251cdd10ed3c50b6b31b158ed4d6f6240b55398ac2c7d9655a919ddf28e3c2b6be50f4085a2b318444dee92811e5c9e7767d6c9cce93b3d2d2b3f858cdf2da00e14f243af15f3dca8433bb1c3fc75dd158af1e9abf5dc7baf2b749502e12ea70d3036051c857761a48613b80ac39d16bb6727a113401d26989c5f3d73b877c10bd8f29e6b7177b4c990fc89e183502031f1ec0f1ece7e846dfc2bf775926b17110f3379d4f1997eadf1241b86dc9a16e1dd62e1bc904e96f3aabaa0919d5e370be550509f72f3ed686a28306d17340c575ce2e2328b1eb5b84d3d53c2d4305849afcc50abc36b03181a8b61bc1eeb35c7523ff19649ee958944e779fa9987d7ffd0a204e87667885dbabdfdcc3ecfba872fe28654a77b31fa2da94c9e20b01ac51362addd8ece13ddebbc0baeb8be7690491bb8ace57512e27b28c005a874101790840c237dca8ec1929d20a424454801d151f531128de5db176530fc856e51d525cd89e770d59a374398f2a3a4f3f59c4ff07c4bbd97ecc617bf8745019f43c584ab1d6cf5f413eebd6594d8e69c5247b93001b600492345824e6813fc58b50cc5e86387e039ab9d7cfe0b20f81e0b8d0c2aa801d630794023bfe98f6ec51ab98f1ec12191df3e7c4e0f888ee6a4731b83c13610bd0082617022d257b18cf83ad7ba93b97da426c804b5cfe9338abd435261e99bb24e62977d69ccfa976e0de51f92ffdf123624442f51a82b184a3a7cfb9637ad76508c970179037d5bd37b71584201bae1c908b3e889d5039424b3df2cfb8125234915566a09b5d9549f8b7a42e81c831e3e6a5fb3c60754536368ac3105743812a3099001c5c37a87d39b006be929086f5bf39565bc85b45f68fec3f2abb5ed14f02a4521560cc1fbc482e8b2d4732a0912f42726da9deea2f0792c87f6629ff949f03678574583e9f4ea7a679ba65f21ccd7e878a9f4803934708f54dea17f62cd766c5e587e89b2d331e1eaa4c230a92f11335b73951d95cebabdbf249910ec284db23967e60eadf8ecaeec7ea3bc5de9db6570bc422d6f9852256dfefca9a37aaa16f2d35e44be988156322c7a34265bee5e3e6ae4488bdd6f5f11b660f7cdf5ad6c761c83cfc44529afef53fa5dc247d6057aa319bf4998b1a5d1a87e78fd0abacb50353b48d3405677afd3df11c9d544c163bde4130a9dd855343eb200790cdb0e4ba0a1bb3ae9a8cdcb75e0bef683ff0034c81f7c5ddf9671a1bdf138f2886e542303032965128fb676ce13e5cbe884b3978ce863093b0e1e7323b01a8cd6ed8050300107804a35995281599c7b57b5d03c0c7be8d96add28965731773188d3b9d6d36fbdf65ba9c39a714c0d2ac4f8cf6ed7015d4417057dba6705713bc710eb2b365529bd93ece5db9edff57a816c2ec3c9bbc8d92682ae13a7910168cb6c452cc795196a963b913cb0d72670b19ceed5ff766589ba3571a9d5c87220eb75b91e6335d421ce00c05570f20598832e131618c922b37f962138b175e40ffe6080c983c59250bbbd4e9bbbb30c8c9aa927a2109d220a42b23ca191c5ca090c519396cf8bff34b2b67c54a37d49bf3240b73454a73b47e739e4ebf2126c40820633c8b828bc3acf536e24c7cfde9ce40ed520c81077ab3ead5fd50e4a66cb68e261bd1e0ade242cf9ab2227487ff61bce945eed3197524e3f97f1e7a3277e527f664623c26d08a08fa083f045f7c29e5890a766878b5508b79b5b68de730e01df4d09a66ee61694161dd106dda32cbdbb63a37521fbbc91631cf6758ae28af75064f617baba38b75ed6b24b1ff5ef04bf312441b0c1438536f13b1e835e2175c3bfcc98a2cd779a7ce346e79ef20992f21d73f6f66de9db3993a03b23a9359225b5ae9020f8398099400a1373b5b6565cd1ac17e0c05465e2a2803659d5c779de61c637fa874be8874e5129f7eabff4cdfb2d89a53106fa325ea2c34aca2af92222fabd8dbbb9a2e85050fbf1531b02c6ca0f307f6b5ad13f2e46c2d4c30ae01f1bb10420497d73bcefb3afd147d9d28075b43313cd5ca5641dc79bd5d1c3ea84b4a71c4ad9f490f5b7c9ab2e2e632286b4633473e8698e6b58cbc6da570831f917d4f973882f87fb983849d6060a369245f708ca05a2c0f5b104507c8cd75267b45a0fe766074a1b65495a34e1e452326897d5fd9d2b95b21f818a6bfcc3dddcbd92c5e7f90b808c58bfbe1065ffa0cd64878d72de4589543c8b49fc078aa4edaa1afc70b83c500c8c408b3c4ad8d51c000232c92d2b1dbfc51a46ba61f60229b7fc09a191933c0d824e85f8df2f40440a2660f09fc3bc9b1ed5916e901c483461e3eda3645fd3229dcef59486260fddd4f2ff1a7e271c5fcc9d39d371ddc08aed5da0ea866e419fa622140934abee3bb254263acaf1b1cbf8b67915b4bd1cb9e134bacb3f090f5048d18b06f239532c7d417c67b5623929f37125315b0c272789cee03d4cbc91e695bede5b5eea0e2913e5bc45265266bcac6f24223f590e2873a3aa385df3dcdf7ff4a54e2bce09d4d4dd1cbd37f234853c7127e38b3bb416f3c2ed6c98633baf60fbf2f49c9f37102689aca1b7617fed5bb8f6323f68bfb8a067aa7115467b8572c2537b0dc024aaf35f07c2a90ec3dce7f7fb23ae186a00d59b03375f62974e58183bb36a86b4ec2663e294c3e83f9964d4e98b00c1468a31eef78cf9e8866694b3cf3bb6ddead832984b3cf063dbf977f4a283b11675e11736cccfd71d3e150ecb63158633dbf88a95acddcf4a71af6aa1c249106701aa2f685a58e1d22919933e177683b616ef2a1fe25d31617cd7acf76804c13d684ee37ab62274b2af66544f6644ece433f50dd3fa689fd6409d4ea72c113c5b78b2e35adb39e0597dca63e8a6b2116b4975b4e56e4dd188e269864454cc4bfb0cbba2ef51dbeb43b04b3977b614d95176cba6eee29a381611073028b9fa906b5a2fd62f04f24c83200233545a2f3d7dd105eac4c7a475c0332348e0f54bfdf1c695fc45ae7b314d589410bb14efcb7a5a2a8e6b6901df1e3fd97130c2bc59038a33d1c49fa8b95302b8755370aa24a0c523240e3fde02a19e3971a29efbc2c98b43daebbe097bf0d8de694904d27e793df7400d8e8a1be1db54b2a6315426fb3eceddfbffecfe1e60b1d9f5b2362288734efb1ab2e99dc6edf3c344f80fc8ff6e49669bc21c3e47f4171517e5dcef509ab273679c96ae7859fdd55b2cadc2683c4c434bc7922ed8f7595199c3a9d5ba220e48dd5b62aa208f813f7302c77db6c13008ebae5330b2294a25efb1155bbd562c216ec07f9f7c2c8cfb1aa10c3a6f1a728c4d36949e616e8e0efa8a751a5f2bf7256f6b1ed0410f2326dc732e8c85c6f26add9f7d452996d0eb82625a4004e4248305df6f334f614f84b9bb3bdc0ea41c8151fd62e5dce90c8042cdfd0e0d61e0eaa25e11f3af08a8f93f7f84e449f9f875714bfdb28b8842f679f1ae5ac433b81192b29dee6d259811273cb634f548f42cea9150d6fadf80591be2ba0e9ed1c9309320ba373487877981fc93b1f5eafe51327930edefc9ac19820659a7c580af85882b4a95c1441e837db15c114da320d47e08f7874b185f8abb90bab7fcd730d132ec95032bdf17a6b5f5ac6060b16267c77de4a9f399ed635f447a63c9eb16d8fd14172eee9a7dfc10996b7d8e112903db71cb4c8ee20643f80f50e5f482cee5dcf250fad3f8aac333981a9d16ebb06184ba20dd0b5f4827fc3a1a0b5aecb34337fd8ffda27832dd7f61b8c84e646f82bebc42bc0181ddf6542a04b60350fdc5e4c6ad03a20f944fa58937572a577928f920d0bdd40a86f578fdd05d9b95393f3a62fe88eafcb9c5c251757c10a0f15a6d1b32a9b3c6585313861687273a430a268a5c418be55b0d16a181ba0201b9e481ba12be6132379f3c5c83541aaf57845c22e2937a62bb983c54fd6913d33fd43fed532bd1e92d4c431121f5af1cbd8e94e03a1a596aa8fc03044e342c0067fed63340958ddaec3404c3e1309da1010cd430a72404415f74caa5689a24ffd279322c1a95f6891912d391aedd0d6a6869cca6b534f8d69c5e6fa7fe7028ccf0219d6ce4384af87c06f3ba9a6bf3378a10478e717f83c239bcd368eb5d6e173213765e377d7feaf5159f59d55ba33688f4a16c4572c83cb7b4ea34da5c3e24b333f50a3fdbf0a4a7a7a21072c4c53371095c85182a90cc6c105a1c3f3e481292a9ff0b87b8d6601407821e27ce9397a2c8b1b33efaec8870bfaa53e7254a8bbc5f0c130ff39106b2e7329ead3766b6ffaf492baae9ac1de75209f7970b070fde8518b83e5bc6f60ed964f686d19355d3bff0f16e319cfb238096556c398d57660eac82b33545eccbd759b98801a07d10fc662410c1975ee5a24726e7d0cc8f5430ee5e90bac74087bb4e77b642b9f370f13b583fbc6f1303375748f4437e5691e8c9f0e996791e55c873459fa087f4a029bbacaef899271a6145f16adb58c726742277276b5368871f75fbaa3e4b0a41b7e85c5680b4ec1a67686afa32990493d71731b44c4563574b936981d04a1808af8de41613d8f921310dc0cdb8d7fac6585b772942316a7ab64b09fc2292f5b8aa540af1a2ba14b0cf27049d322f59200394fb2dcab536ca3191eae08f0031f046f66025d6a12c28f393065535b3f7d226d3dfa255c888f07094dffb8aa7d807a475116d8725d17572e5a4f8af3626c3d618985bc71f37758c1c290919795e70e96c002646c2cee1c6c813e15f629dc768e8c789f96ef2a47f6f254b5446f4e6bd69a0bcd43bdb658ff3c30c581b0ca7f8ec8d3a386f4586abcac392eb0df9e2cf5903d6a9cf7b430da5c4be82397beae5adefbec3ba9b79546bbef89e9a516d4e07fdbc6e378f3da8b6c54a198e01cb5253579d507759302127dd83c271c65571a5685d837b2597693c1b8c2c3a8216a77a55b687d04d5e9f94c27ec311c163f16ce3a87a958fe57eb564301f556fe40f1b199b86420ae8bec3054e9c8002b18a488e989ae2d0d6baccb9b029e3ca58f8794fb05bb4e85752869a2d602a2dd67e91a81f5d66dc4812a97e8ed71be080952f5e9c8d62ca129348ca5ab50f3cf211dc154bf2dc477121ce412b87006f8a5f3b29ac9499d91c9d793fd6544441df0ed4207abb9d5e60a58c455dee4244339028d74d5c40d83df183e5178bbd051840290d15d04dbeddff0297b4937b7754a742457dc732c5fbf2559fc4ba7064ebfa8b4a667b62e777b7add43e51b0c9d9e7d91d02286ce231697a16b4d9c17a9b90b95a43ba736ba3f687067ad92ade4ad797c2abc801660102c1245bf14108f0dc98bc02c15ea3f10bbc29112e9f4749c3e37c4b64ed5f78cd769afd9ebd9794ba666ed4753817bae7e351ef27a2a30b3957a609ada79e92bd2e63e0949b4b548bf2d8f2f10f020da0d98130f06f3eeb8e42bbd6c7929c272c1a4b13178b67e6b6ea354a05819b68f1179e798902f98e57418925ca34c0ef55f1e64f8182f1872339c324b2161176b9aa1a4b46786b1bf0deebcf4442790ad96b60d9c00d0410be6f5522af7d590678af46f44dca7d15f84ac903b67804563b49293fd5ecab85fa441b42e7864ba2d56557e71bd3f051d31d415a1249e07864e9d66256026b7f4b20a40df9f9a2441ad09450ffa49161272d3fc744523cb41f75a827ec91babdabb67b04b737dd3fb6e349fd9e3011675f70e4e3a6abed759e9679c0d6ce268316b7ec3fa7ac17e5ba495ad16d3bba282bf5773289ffb127f3c123a765badd250d87bce685135a3c5daf9f443aa67f7dfee3d15eb375cbe8980d90e67e52cb37170ff270bf87f60178a670a3a4031dea8f94722adc6d3fb6e89afb861b109d6b3c97f9ebf767e9270b16f3179e7e436058b2b7a7300a4205a38e309acab5460e88b3b7678508634db63a1cd4f0100d971a71e1a3d08998fa6e99b59b2c6ee2858e405d75f335e5f94137800eb609306157d1d9a35073fc3851103697773a06c8e26f0e297f879eec143553e6dfe3acbad7f4efa33b8fc9b73795a4cdf5b0e8229ee4ae5f9c81ed7bbf143eadaf6cf0042483f9de8bb28032714fda5f830bef05dedf6422718835d474aee8873d3aa40d0d1e8c3d3159e98834b4b4db13867eaf447da5e158a26fe088a25bd0f671a70927e640b29310dcd616dff3662a0d2bc774ffdbe9600a21caf6b99b2718dfe9a2470f34b408b2ff21957a5ba9623c9df4992cfee3cc92a149dbd620ae385923950985323d5e6d033b9038d885e9acc974dfba9f6c92d7db72fb740a6dbd7aa11a4d9f472d55a31fd7ccdaab2801945388f7cc56ccdd40f1453bba339462a7a597b4e69cb92290e7f570cbe1ee7eb13457967e83a48cd56b0e251789d3b8620d8827e9dd98edc5b55e89458e314b8e048ff580ccf3b1dde786677741c0a1f63eb0511e92f353773d60870d9a0de50a799252c7e22d12555fca5402dde8d66994f720dc1ebbe4910a04beb91cd7de3dfa896e435e42ab2d8157616b0bf563c6be1f485b63eea6a8fa96e68a87055ba263060eb2c5562962becda9d2dbf026b0dbc1bfcb207f90aef8be9cd4220c97964c307b7713a871d8f6966a35d8ac534b37974279a0ff10818555dff59fc05e2a72af018c49801714f063866eeeeef272f418cfff49fc8642d7e593e1c1a7933d1c8f7378e66ce7b8ff3c03c7480a5f3f15ef29901be9c68499fc01375ebeaaee9765a5624deb60dd93eb8b167856cadc9d7c584436d79a43986e55ea381b2e5921eef1297390342d83aced7391e8b5b1cb132684f0ba3eafdf5a1f7d7c143ca4d615b3936249cadb4e6e9a7521e379d59a02a27920e7e2c61af4d3c6d06907618e35cd8769b2bc66c059290217acc1d613b5a19590862cc33a0c494d52525239abd3245d01ab59288d06d3b0075a0cd21ba03824d048b350b1f43d2dec33f9ed46d22036c43c24bae988f7b96fb42fd8c08443f1d12b859ac784d092d63768a54e5f306d01a4532737789777cf34d1a43ce1e2fc0a48a224dcfe05c23be6228a6a554411c3c851ef332ada75c890eea42712f73f03c97e76911c45af45713bb9cafd517256bf3cd85aa188139c77554d96bba9808ac8839537c1db27165edf80334cd1bda9f76791591891b2ad572ac11a8fe33603978d4ffab0798a6bc8c9eee2bf40ab109bda25c9a78678ea3264c8e468d58075176c559e32b20ff493ccae290da0384238cd3e923e1e9f38c350167a0b72275c3a6525d7b07da2917c4e39d194f676a1453136a708b35450720ce0c076f1b25d4eb2c57f47b848101dc851a977cb66233227f9fd6ac22ca0f20dc356f44d8f63d2fd4e40a8a31b11b247d5d6c5abe463b586baf3ee6f201f999afb6d78c540c1b0e9466ae961d02b95eed8bde2a9a5bbcf597584d2fe1e2ef24eebaae35ca85d4f89ca15a17bd0882a7218a1b7da4369735f3f00765b2eeb6d9aefbb075a5810ade788c9255ce275419cb450b8d55a1f208a6b288b931b986a4088a50dc9f8a4d87f8d37edd561b7b6cb41820e39b489d2807cdebc59bbf655d9cdfc01f9bb366ac1dad8c89b08987d6f26ac7927849b891de7ce8182babc1850388ad8fce2d54b92d4712fc446f9128f497e92c4b5b84befa4c1ef89fe808165b50e2e2a52a90acb7ac9d94e2be6c34411522ab9470c06b9967ab00c96c4ee2c0f256c9f35fe1db9731db899dc6a1f3cb12b70b3b89dd8f0b653ac4d39f9098ba279b8b8b5f70d9be61cade7a0b26138c9265ee383f761411cfb99b25aa7ffbf65d2459abbd0272826748ae376aea48e5368b37ead706509ccfe6545c71543d73ea132abc5e179062b3382173ec628a7e3ef673e5f6bb7db5c105034d7149637aa1a1e17ccdc2554de989f746f56168234e218df941ab3fe682aaf522ecfbf17b10a024c35f1b321340de1ce65fcae30072765a3d8a09decd00189940cc2170230e2ac7edac9f5f215543c5e36f30356517493cf0f9a42d5cd6c8c962e3fcc586db66c241c9734401d432d3e1903edaebb20242c5762c61ad4a989143e1a96ccff2c19790697d9f71d846ef061c5298670572286efab22d245b03671d2635de6048eaffc85cd7cf9802e23d8073f4d3f3a8721303a360248f5f4e83301542d81a77621f0abde49996e4107bdbe1352cff126d57fc5b7b87a774cf1847ec6b74ef6e5cbdd023df721c948344c9fd37b403d291a4a694de49c46d571b34dea92500a9e490df31d204cf7b6a6955f25782f9eb91a717300de93b413d9b101074e5f7d13f91037e6adcc7ebdf78c1bcf884dd01cee53e4357f7bada9a8958d7974a530659b38600022c56eaeae89addfdde177ceb756bb18ea224a54d118a54a98236316e71e6b4ffd509a3024c9967a2d452036d2625351f38a3219b91aad00882d1885c61b64af36f9a2d030ea770805658a8d0266cf9b836bd0cdf31b3c8fe5eacd563fcf1b36ae42d3b8c77319ce45434bd20cd2960fc8ae5162d1c22a866ed58355ad9eeb25cf1ec9992d4a042cbd75badc3f1ce22950f37a9a285a34e2673f1177102e8ac41e76f00db33baa08cfa530f6ba3b57ed480c4a1e30502721cacacb08abebef874aa8cd01b9781e27b71096883f2fb6a8dc80680ccbb7a57bfcef7d3912834b4b640318eb4c145e6cfc0841c15a7795365f096e7869c475662879ad7b206b067e5f4ca4d8d98728554f72244194992ec85616f37e805162bd7008327aee57d97e8e3b1fa5422d681e33494e34189d3a8da14a73d9a85eab39a2901b9914c5f094d3ff97d638c72a627f19b66a0492decaf0fbff1ba68c061645d7e83cfc74213975b6daf4caf8292bfe845b4c1908a83392b4c206f4a02f0252fa0d52f5e52ca109f69a60f4c9e3c028c1b4c21095999208b34f95fa0609c82ee8cace19e115bfb9476ef56f2543ae4b186d714651471b456bc8b5b44b4c4401e55129c6f2842630a796002e5ed8c4286773d8ad5903f16a04ced168a2ca94d9093efc92e83c8ae4049d5695a6a11e84a058394c4f1ab7e6d643930d613d9eaebf595349559fc318c5bb9126976360e749fe598dd81f3c4cf2e18e1881a64baa46b55a40124196c84219c32fac91be4cfa947ed31d4b92dc9997bebf204129cd330d6af0b88ea10147d220fec5c68651e2ea34944be326cfc2bdf52902023d83ed80a64c2881329595d47a62a7cd2f06430acb2c13bcaa789819b9a50ca83e5e3099b4a10462e7d96189806c7a393270f2278b5a2ac2dd32faae24c1c95c91cb8b9e344d33a0573fd44f21f8498e2b58d8e116ecca978f78fa62c908e5e4a046e23f039f61b431ca89c7910785f90d0d73cd7bd2304167015f6eac46b460843aec88789a7c15812b11ebbfeb839a5e5b5556db311ce143c922a0d255ac9c0880b6281f1b383d0e0a72fa3fecf95ac415a4ecbf72548548d7f46f0102e6f183271e089e158cbc0a41a435fc76855769329983799e2003e548b7e09ff6a1b615085830ce4a33607b4b136731df26d8f0ae01601b82cfe36d9d0133e172bf3e33606d0137c82c6512d0203e825ac1d80323bf36f52c3261157f9c67a354476ca4adb7b86afe3bbd6b45a0792b3a9d21b627489ba1601c72574e0892ab0ee1cf51c56747fd0a6563ddf25be2a255e7ef458025be0372e8e62a85f8fa294a5d59861dff780f1178c04d268e152b3b2f2ef83e757bceebf295899fd112b0462c98862fd869a820811fc2536a1f2602e93c13f768b96efc1c9821972e340287e58b9fcf9e4d573a533297f792e5308aed4a3a6bc516735a4b9541285e366ffcc2040f5dce85d77107a69580a1615189f83dab0d65e9cad3e8205206e4cf97ad209467b53f08b10f76c7543ba2abc10a292b2116b58c762d60266edef7c8cfc8030d52e996150fd7c1379d3496d421e7845f5de738008352a465ec8600fe822d8f94cecad03f4742cab0bd4cf2901a4e73f898fc03d66a12aaffeb021e3248bb9042578fbcc0ca9db8d903421eb3bab03f0c619d407136d8ea123611a5b18b20f35186ea7e207c66772bcb4cf775193b9b629f24ab94f5d4e16706d69ac4fb754be121380e2ca33536e5d3034d9707931abdd1bd18416c11912d8dcf39f120af4d43af86b73bf9d1e710d4a36642d9c0b4afb119ebe30cbcffc53bad700ecccb54dfef9598c987b2c297748179ca92fe4609cfc19ed599d1b4a22ed2612644c1dea1e9262658535dc2662c61343502a90eccde603e2808f03d314643e4285e450cfd5c4da8a80c9126a3abac37958fb532b6c08befc57dbcacd7c081026ee8002679caccba414216f2eec8019734cede3a5a7d5564df84c61401685b7b08143215d569edcb45cc696bbd22635c8f183192c7be3e67aace3b103aa20941e8c572e8b6b49f9f996c2f9fb7e666031ec1bf0ac385df57701f113d5dfc10fbccf9294fec6637cd5add80db30711cfcefa112558f1d00a5ec3d7ebbcffb328308a12a233b168141a6c7ba32abb6052d16154b8d4590b456fbffcbb0cd4b6c6811a725dcc1c377bbae5c5efd6ba96d6ddd9f16adbd1d748497ce7cc5c697696de505e019e8086a4f238bfb56200d990ad9da4416077714dd293bc9a7caa415083c14911cdfc1f0e4e50add9b916acb44bd603d0b71c0062227804387057ce3e48877684bb257b3b511b95cf16915decf09cea134239c32a9fe06369b4cb83f5fce63feb0e70b98d351fe5bbf08763355841b1f1f46bf51dc584dfa9bba48240d40135c7ab0e7a8a08739592f670925f282ddd0babbd3bcb8a5c316445c3a2233b59f5d7aa930a855c16800b00cc9a6b60632a0db67a8304ffb7e6bd8ec5a554ceba769a72b85097d808ae27613edbe26a667b7b808f2304644d8169ca2c69d88986ade9a2c02c778507134f93c3a9dbc47a77a6f9f1e5458be5204590bb32b484e411f13af1454f9ac031372164e9162ac2a758068fdf1d1c86349dcf808e2a42ba5e072c3d8c1883822d0612d9bdbfbc9c9514d643d651303f68c777d9f54e55f272c3e1828030143ae3809540759dbf5e844a16f044e15bbc1b77df8292f0b7d0799a21aba2014a06a99f2f55d5549df114526ec200adeabd414c9322ba2479a5161eba6f717c3cdb085677c0865045ac10eedf897e50f0ce3da388b7f0b8246ae4e0b496411e66a3408f6c2be02bbf83337ea3a925c57ec3bd02a335070d54a4ef5190dbf95aafd4ef3f39b21d294773b817635e925fce57a5c057b81860f3d9c56cfdf3c6b0e0a8e7bf46471d4a6f6663ecc32d7a3591951e4b22eeefb33e29dd00b7f7ece64787d2456abd2907e0408c68cbc8bc65a7cffbc1e020262f6602f324efa23cdd64be84cb7e0d22d9e78def23aa4a66201795c5ebb0d85a4454482e740c31fa2dfa809557a1f1fbefa1d7527bf9bdb7be5db7ebbfc5aaa3abd4d8a752a4e2b16ce2b686e46ff9e8e792d7990e75d400aae1268d3dc80b351311842e67a42ff10478f55a2877965187a98963be266074f9aba479c5850bb08298af15a433b31bac1a24c81ecdd29554c23a320c43ca9e3fb7e3265f09079755d18e0b4ba17d9c20891a73ae7d63a99b44f226a0648be4cb74766ab2acd11923dd81c28badb5fb3bc766891307e1dc26b176c21023c0b00c7b775290f2f3f646c62469741201a63d1480e4042814a7d9e7600e27a0f827bb8fbf497ac6c6fa640857ccaf11390110e0bb0e2dd55bba66cc6d15e118539412de8813093c49efb45c7e5ee900b95f38e56d86b827e39436ce78f53d0439d4a5a684185570a073fb7b9724f88a290684130db7dfadea166243c3ef3a37f58cb8b3c2ca813c3f3d00b1bc9e2686b9b766c2fa0bfd0208e6a93739e04da31bdea9b08c5eee4514dda66c9801d6130519e25f41a69d2271636a8233aa4a9e1a9707db211d86a34ad6024851c73c9c37a91d8edebd094969bfbc8331513a8fc2f41b710f2bb4c4f0dad538368139b60f1d9c571e3b9ec62d1bd4c17531053bf7ce8e2e82df4b14a64f735d028bdf69a5d087f21617c777a712100d858fb8aadc6662c3ed420c7fec081c28141f29ae0b3946ea1c9ec1377528da6f03563139b41e2d5efc5023ff0b64d23bac2746e8990344e9f8c0d6363cf5e71f75db713445be3b5a78528cfdc2d5f387a82b7fc77d50dae2875304f8fb3048a18fd849975c245b518a752af57e60f13442ed8f3492bd672513e2881741c278f60710b13c6fa16518d77061d76454f7b8dfecba41848a2522aa690e8aa039f0fd7b2f9d7dd7e311dc6b93ed98b39ca6a0276a386c91de25907790039ed62e40f69b4d59c4fb3813d288f8ba9f749df9097d62cb3ee51c966164f2e692d24c688a307e6fe002c88eb3be83bd6ff23f3cd6c36c86837a12dae45f6ad34b94fb3e63d4d75fd2206dbf47a165cadbe3632ba7f5ef3897010b7387ac2f19a6e2a998a743cee7eba581e3b6f596e001f300c212eddee1a150d185f163ea85c00365e49334b9ec9b8fd29352181c3a3e86cbe8188f6e0c76edfe554d0f463834a454eec0f41e409a435d96cd6ff42efdcad128b745c065d4610949ad852b8dab61660ae143f2fcfcfe74efd1f054341e3a30fa79fd8d34f24a4078850d29b6fb12619c15a067a9025814f19397cca7c4525b97041526732214e31ca10f1ec162dacf8c97487dd227db3af87b5073883fc1d2634aed9494146fc1fe1bfa86ce637f1be5fa9046d438597bd208054d2c00c8d2275b9a34fd97d5f079e38635eb99f799a8ffd50cd123cf3f752295e37a0f2204c6ae81e56fe1351c8ab40a542b0a6a9405a0ff6df94f7a65d9f857ef9151f45187f748cbbd5c637a3028fe9ceadc7de3b35c04a6a30fe821d1b9c62fa1284b27ad01dc7ae2867cede7322665ad88a2c4589afc4d733af0775f0e43e3d1331d5f3b2cd21e1e508ee5723e8b5741b6a2f5431850e164e3bd21addd7dcfa92ff98a62b0988b79fc33d2108b2a040a6c5a72bfe0bad1013edb7a7b3ca5bbb934f6fb575334ad30c03ea936e7d7b7a6be8ce8d361c3d817b01d20fd71fbf1a19d49f8e7fa03fae8567c5747509dbc6a31c98ef115694a06310fc62c4c4a3a6ae6f36006b7728118936751b90bd920347d04f763bac4ec4090587ba8600b7f4df2020e41165795e3a5b8bdb07e039da97c94a4755be921b94a622703f92c8aabefe48f57b1efb06def6af49761cb1c0976b97b57403178d8ab03f78a51f92b25f45cde667b3e7005f813c594c5a62e98d0ae3a5a1c4b12f587b6c0082f38d3c5b728f26c9b06fc5cc79eab84de334628550059557e7fdf5ce346e40330c77865071c5cc4613d12bd6a6774711da6fc6cdb1e3090788deeca0a818c32a7a4c935ed84e1ab9096a7453e761f38200057579f19edf9764ebdbe698264a6c0ef223ab34e68fb18771f9bf921cdb62cefd31e0b53cc1df16102e9ca694d61459c848e1667f18f1a73f46b669610dc3d704771d2d3f642b1fe8c723ca404dcef7d5d5ab0f65f9f0de4fc97b167fdb8c83457c8fc1dc8bbcbea1d8be5bd0a55d345cdc3b0ce73a57fd66f0753dc749fb111c3059dec9a247a271c116ac1e9015f3f00dc702ac0485028741ac1d7ecc1ef34fe9e2c3c6c5745ce1e6b72cb60261f1779607fff7f80ebf9aee50c1ed29586dd29c576c636d60b0829e912816333e54958bb91e7af23847037533be7e0ce3933bc52480ab811bacd172770cc70ebe8673891e4e73a87c3571154a86f889488d7ff77f5aac862b934fa6a33f7f6a8768f6757a1448a50bbdb3532f484ba7e8299655dd1d07bd08992036308cdac252ccb5ac9770cfab478c6739a25f85aa77ca0ead7bd800869e6bb69b9f1766986c46590742c5f01f457fafc90356d6de7b96ca14d6b8c216ce8d513453eb0227384b2f4fcdd56247522261efda72c148d102574a3352bc8aec816384150de176aa9d19a68cd29d3f6b044f3250dce1aa29a8a2e418f159b142c41b849027958bcd0d295e58755256c3d99aabb347e225856906afd1ff80878c95a9c1d6c20ac43f8782880f2ef809416e3904f6398ab0beeadc24ec7a84297b95fc6cd90c5554b06f673d115f4458ff6712c42ed8029fff562213bd75832e322d0e50f331a02067557b40c5a99c28ccd965db1648b5724877d6dadbae63caccc9fd4d5f45c526bceda02d124bd690aba5611b8ca06436ec181baca134dac7d4e68942bdb942129f6308cce687d46a52af1046126a65bc13c44857ae193468cae8af0292699b8c10f6487eb329d831acde0d794eaf142f39c273fe6539d17aa5c77ccec52f5e5aa4e69f07ed0a926657f2a4f98a9df085ad741b076e0c838a4c8958bb2310585b07b8ae078db34ac927224bd434b5f49b13fbfd28338d41d31c8c567dddefb21274bc529f9105b191a19199545f8a1bd6e3294a5c642ce8ce65a1547d05de02723ff46faa79f9216c8192331641152883e7d0a9b673d5ec8bedf7f25814ec83404c3cc9dbcc6a7b6c34b74252b3921860c151defb190343ad6bd6aec067960a9e95cc3fd191f4cb565fb57218b4f4e4f66286e9c3cfe3dce60d26aa27bdbc68cfa70614e8d7dd719656189755e6e26adf94f7fc9d568e7c06f3cce9dfbb2a49b8259401322d167bfca5c364e5104ba9447263a9843046c71cb1d8140d68b0c32444d5506d2a4258e68b45e96f9a81ad72eb93084d24d0cc26d178fe4eb1ca2b4b4e9f374be6d734be7af9a97e14f2d39b4285db77bed674ac4fc98424e6dbdbbc1f4b23a17f4b86de99fa9408af5f3e7690dcd6f0cc5e84241b6d8ece3bf4fe52ab13c65a964ba4c242e62dafc2b5a1cc41ae97d5e24b2d939af830ea482a9b8276c40124cf0d7c16846ea00a4668cd9f9394fa52d7f459c4262c4a108a835ee91ab809cb54abb0a7a2bca2ad5b648e001a16cf0446c826b789fe1588e06cf0d2c526564c538dba7291a351fdc190cf5b3f5c21090e013c4c86778b810ec3c9ecb8c442537be9d7067ea2709460de198dbc399425d36af90c505a8a5b3d6bd55cc9b072bb834ee04346b7b7acc0e8d5ad218185f27a36a6ed11a02331797b5bf5e2b25348a4404d05fd0019f49126f14153abf6fcb1de164165c2864832f3f84e7fca5a591ae609a66832284725aac81408ce7335641c7bb0dcd55d05bc03a627340dd4daa6c3db6882d40d05f1717bd34be272cf49eb45ee7b74a2afcfe80c8425d55f140f8976b9fb58b01410490634fe5ae5e9569e61073b7835b70751b3b68c3f773f9ced8ceab4fcfc3dc037cb42530bf6f6450422aa8985c31b6456b89e37fb91019c9c708d447a7a2de2836642535d2dde179ca676c565c047cc0629260867c7fede3113c0768c8f537e41f36357d875418ed99e70c33183fc847c2d46730005bb39467ad6c94027d43d73218091f7ba22b179a2f64d4ccde4bb86909d032234e9058cf894ef199de6edbabfe384501c654ce78f379e2c460200e263f4d511e918a0fbbdc84e021b59019a9a348809ef496dafa2fae8f8b571c600c3dd1b60756ceb0f916c820ed3650e42d36d47a00717e80534b3cff008f1e763f6069a9577a2cb12c3afd90fbfab50f50ff543000689d4595745eda765291e8379a92c324247a879b125d5f6cfe723f727d44ee99d910cfac4944c10e0fe8b45a5033ffbb353f051661cae05b7fe890c2d350fa61527afc9c4f3ef54930e330a01b2559a5bd895bd2999cdd2b202ab8cf45884127597a1040bcc49842c137e407c41828b00958b7f16c2521b0a24500182627bf21ee70814b967c30a301fb7901259f15beb854b98038c90651ee66757f57b1798ce3fcf72f4943bfd837b90949c675f38878153f2545c8c734086839fde0b51da335a26a2c5fa803309809b1fcfd89ecb36faa41e85ee8185b03c5a5e19ec755ba719002e315ad7324debd217ab72146d76d943217a355e6c74e3466d91d5a11fb14693c1bca279e89e1510dedfa2399fa532b84df720466ced99c46a937e49735b72dc4bd2b5123410db9546e2311dde113d9233be270fef572ff7ba8a3bb6218c911934b3f044422e3f8521ba07dfbd1c9ee09a3037c4069f7925184f4c82fbddcc4c9eed1822b77a9c6a53c86c3759978db990853123c02d4139b363621dadb456bfbf8513b5a8efa8ae7d0777ed0fadc7b683e3732045a81540e4c9564be584d67b4345e37b6918b8223789225f95f7907370f1f560cfb632ec6a4978a4cb8a1dcfbee2c6e322896a7ad431eaff4e964a111eb174bf6a4c97143f505513c76866cf35f3f3d23fbf69cfc0f493d3026335b76ab4c2cb87139532f1cb6658946856d2afd75721a7b4e61b66134af4d59d0c0ca8ffc7465eea68e39a9e8b86ac5854f4db18fc1cc6af50c0a520090f9baa11bf072bf4a71f99e06b5f91d685fb3f8e92c5e227046b1a2102e1cae0e770b9fb001895e59af92bad2e7ce6ca91e66134d098921c8e6f69a88891ae83d1b074ff0450b8d07ce89ac438e9ecc5b9a24c051677885763335f7fdf71b328362d0ecc84acf5c2df59a920b68937fe61dbeb438f5baf979ee6329ff735b6ce14c045ec3e5c66340c9f273c7bec5933c0a8d995a90f6d8151a4662aa4d380897e294373737c867c7c2f00eb7c9c4ce363d66715972fec9f005d569f1e5b539d183e5d3e67e5caa55ebbba8c5401db9ca8791b18d23ef2ae2391c984815f7fd49b65285ee50674cc150e5f24c1cfbcd044d894c794ccb38ca9db11a04eefd7a85769666ab9d42fadb7c0e193250a3d55be9e1db05ba858ef704c806be81cf890ac92b19d33c35c488fbc8414069190aaf16657d56c2622fece923bd31817a2ff9019fd96aad3ff869b8dd5088e433ef08e8ec4b24e74653a0bf8c0358ad1b8690ce34488f7b0bf9e0e8533700bb03a66985d25cb4bfdcbb8e4299a444e3d96f5bf8f066bf6db768acfab079770549946e67ce30ef2de8b870ad511a95811c04c59da5d8c09e82e4df984181ad36ef5bea4bc056f976d8a42a10ff13fff223d672146de6394c796dd59a0a3f6ed5df4d2d22a6667d2c89a42c1938f56824e0d0e701d843182284688f3fc262c9d9183fbc3792428fc7f4a89f9c9c0927eef854034c05650bee05f4f7e3b0468650bb468a0b68e4bb546ee86c7a3671679e9949e6e429684bb6a654ee3a0674eeb6e55e6e34ffab261b9e01c2146bbfe5b402c78b45a8ecded714d71c2e81c377aa2b285dc6b473aa63125caef838696ef405828b0a0686c4e6f2fdeece73ba07eff1159308f086fefaae0c48e28ec716739c2f09e1b98e2da551649eafed62b0c13dbbf5493885decb65adf4e127a31d5c1a1a0d220b8a3134fcc09755c15b957ee83fc16ed28d31082787bf51c95d9b3945ef03082f8177d87b133fc0f630c3c07a80f1543d22a12e8e37b3bdc87825cf764a1b20c7155230bf01f21eca085b7a8ea1d445471d56c9850164c26bea490b2ee1fe656f6a711b29ed23c397e966cf386f86b2eba55df4a91a6496ef76bf49ac29a6ddf4998d71ca563d63766061f6eafbaa6b4ab53ed036f26c7ee794b90a92c437e7bbfa40dc1721c2f73ab943c261fd0e4758dc15e6974ba4ea490844fa4b0ad6015b246c905db4bbae3da3450607e2369d361c9bc261fd8db17de6f8256391af3ba61312a70a8e99ce160f48dd87ca54c77065fd66129e65ef94d215e59c6c028fc14f0d1dfb80330e7e9934a93c3d7fa1a7de0413fdddb3d8aaf6d796cda1d8499972a63dbb49685232902813d2089b19d1623d276a450cfd74270515e2ca0a28270e008edb3e4dedcee30501d8c7a066b7aa925f845a1e2c5c26dc5845c07ae2469dcef0e609431a3b8307992f0366031c483199f834c36e9b5599ac5b039ea08407bc8276ae3a952251ae126cb017ae8318852f8096d00321052f72e19552cc3a0a1489761ff25e6f60f142f1363e5271c28b615e44268666f1ce91fff455e30bb66a9d24028b6198c8fbffa028183cd3222f072e5120b6d7c0fe000a13cfd04148a2711419825ddfb583595a62a0df437b8f1e9bb3e79673bda308cfcef9bab68448408c74c6a963c73ec1552308e39b3db69b79b5cb89c544a91a689bb5e73c06484b97ab436340134fd806169e65557fa528fb741bf33a089a0c7474b7e0e05f4724cdcf66a1036bea737e490490114b066c1f666fcbd7e4a5cf2dfb7cb60bcca9afde7019ea2471dccf815f5bd2a0eaaa46d9bcbcf91c801a93dddaa249ebd9dcc199bca9b029dfe7271c7cf9f7ef872cfc8ca7d0df55d9cd0ec3d6101b9fb07e00a6c35e13af00d435d18001f3d86b6ef70293d7d17a215fd17df28ea20bf002c7407ec226b6e240d3725c8bf60f2c6ced1fd3f5edd6af3c0e48443fdd0e8fe105fe4fdc5bac9cd43798a23d814d5d47b998affe0792ff38d4e81f06cae18c36a778189641ba7217b6edf45147cc156cb3c9314a6d97f233c7f3bbcfd36d16322585dd44edb1193ee918ad2f5c66593d38b3c994add0e3c89b7191b887ff2bfa0e7fb270608df22fc7f91694d9a271e6f56bb39d963d94595c78fc37d8226ed50c48a82c2a02a55a5764637c4c5765bbf2083195325348c631754315bbe189125c1f6a9ec9858651066f54e564a50cfa4e7e6f62c5dca5e5c3ffd393a24935514728478a5aa43770891f2bad2b0ab0d47f55d83ce44d763cb308aa14256dad094c83d4a3df983ef7abdac565cb0cca193c5deba155e241962ee962b3236e34c25c0c64abc83f7aff8f4a4b9eb24b326b6fa0121d18d96a9b4d43fbcdac33bd1c51a6b035d67f6b039d56db4cc552318a461df2e4706546cb872f5b9a04bc1b47c2d77f10df2dc52967014231d8c00999406d7e8b101cd394df2c207ffe47dc5d2bc2d1df084d5ce8fbe942253f9f3888159b887b94c3142b010c99d044147c654e9eca1dd460c61449c3b09b4ed99c8aa62f95c02a11c3807a7effbd0c8f89a132c54d8dda6b621fd5c18dcde5eaf781207f09d9fcf8371dac20f71180c63fd24637d5bb0ae9805a3eadf5d3ebef955005d3f8e9abb2c18944e1877a87f4afe21ee9a724725f2294476e33d9a1fe3108110eb956f243ba2064aef32db8b0fe7a6da8c804b81fd6293b8fc5f88af04a5e1d7c22b8e409c92e592117d25ebd949d5203ffb95ab6aff65c291b0f479194236f81721dc275bf0473d33b68a58612fd2efe214b4917fd6355d127a9e80134dd5d9eec7320e28fb2a7c6211248ead5a480a55b16a88c801a0fb90bb9a214d5ddaac1ea1dd4d9c62ee196feba093678ce332437a2f7e8216ea395992cecd10dfa51d11bc1c4205add580983dc15c9688d4a8e2e4adfd284e78eea562770ff131581914b6a6f1bf898a53c437dcb7e06250b449c44200d2d054cad80da4e0aaae5aa26f5321896f829795bf945b8cae3e1143be938190413fad89d52eb9518cfdd6b4b100aca598dded634c493b69c341d3948bfcb13cdfad53b46207ee7f998b3d3be226566f6b8c603dfec48d632cf1d8f7303b4c59f77c3feeb183cedbe9b9c0129121a483c6ac29db261af8449b916595fbef8113f2dd09d8717bb9bff797d71ff0d10fb0bc7f62995508350a896d434e5d97b3536a60707f0b226256dc96bc726b3e847c27b48d6f2b1392b1b9143fa7925ef96f4e95d65fed6951d1b1a8f17b716ae285108c0e7985857059fbc1aac569499cae74b1c1f205f961ef95acb6505d967fa8fbb2ac0d407fc5ae3a15d97b3ca69b984d1c5cd0cf2e43d306dd93ffb463a4fa5b92146a14f29bab4639a6656f9d2a1c9e02f35f91a6fa299433d5f42dee0c97bd9056e852c08fa5dd5ded1408422e7f6b587b18b2925da11e5a086f29c669376eef66c87b0653acdd27104e2ce9c32183300751474899ae1fcf82039bdddf9eaee99c88f8f62c38b25a74549cb6b61048f354a13a54aca4b357d8328be487d4b64f35ce77957428598702477a3c0c68b0c93ed2ab7deb1a60b7670da846ee2d1717cfddad0d191299fea78cf0c479859c84495e702b7da3d0eacce795f793294041f1a37b571cde429dd450895cea0af2631982d2bcddd103d06c1ff27f6c193b08814dbe5814b8984afe0f49fcfcb02464fadcf1875c91a23bedee3949629ddd784c7049bba94c342a1f34de4282e9162459a1675a9ccb7bf8bb5207fbd0ed018181c3cd3b1958069433c1770403527c084855108b165f5e1384fd55d808f68dff3668ae4cb58449debc11159939f627fdfe221de69565cb22bc5cc26fce3e5393e2c10686659982e63fa360399362f01755b9cefeb9ca3aef1aadf49ddba811bde1de628220f8e70fc5f267eab386136c4abc7bbc7532ecfd191faad55bf72668f470ec75756cca1e5b69c270f167449081c5c44a922f7e05780b0edd6f2ab514be550e04064ad9f19258f983d7a3ccb4bff417ef2acac540bb3755b4aca949ad48afd09507db5b9bff064303a4c26baa6e10e6a72d56a0e9a72acd259a3e4f897d8c6fb9c31ebac5bccce23cc959dee51c362be4df99b9e2ca90d19337dfd43caf21eee117d8ee9fe53fc0716efe365ffc1a2d14584480bcf0b059f57148739d1091a833f5ebbcc71c71079fee07732763dc904e03b4c2ceaff00f96af685bd33a4326e9e30fc2c80638e43f5622f5b14c602ac71f0dae15dc68251b499ad764a8cfae417ac8c0d0cc8faa29eab0cf1ad545275f41a029de148a53820baec9e93a7563d9e7b7bb2a9b03fedca1000926c0657728d0a0c81235d1bd4cb7c5ef7bb522dfc06c3cbceb242bcaa6a44a434ff3e29450882bcc27e18ba5cb80fef907410f9fa8e05e5efd1d371eb4d3867204f8ca0d89f89cef3902ad21918febba5ae9e2b5fa2b117c5bbd8d3dcc400e8a117e4671ae0438f9f040b14c5b81e0fc241e6f8bcbccbc91eb447777bcb10d4c56d6598220631c491c8d939a6ce70bc63735f7aa205321b6cd71da97a122c8a41a7635d2f8218de0cc9ad14828c46115eae408e22ae6823f680a09032341a93bb97a16240f1f879be55f801af6135662f0c9e431b7c02870b8589cce63f12724e31eb73c858ea796b79770d2e43f6769ede3765548ae2bc4a3a86169e6c778d872454fff657862fb4541631d3fa9780fab17dfdd009094ba1ecb56a4df9010e89ff524fabd3789ac39204ede4a26fd6539ac8927c4deca33ff96b62e7ec9f60368d9acc475fc208d623cb00eb77ef11929cfd7a9ba2053bf396315d77b25e8522dbe3ad12049895be160f6a4d0eea6d7b5105863b475dd721a8f8d23e60b4937dd164294e577f25aba99ef3273a75d6dfce38e64ba0da424c3fafb126c16e8f06d7826239e3124459ebd512ece4dafb647214fbb7eaf1923da8a4c19a79390c4241d9cac52f7933e2ce24d158478c99a1684a2404034e8c3dda8d6a8c5066d93e165986c399dcbc6cce234e15c3678a7bc2e420b260a3f6402c1c9dab5a5390ca050d2fd79c91fdf8ade2b79c187001366229f880cb271b4d9c6a9086fdb46e07906d32a0c78b6e1fdb8f0167ae0ca2ed7ca7a7e3c41e66843acdb6841c74ba6b85096a02c79ddc26b97aecfb5a9dd9476700f778ae353aa50ed410023ba0855f11cbb240cf0b0b6c867e2b235bf279a10c4c859eb5451dfd406e97ac9bdb97fb6fc433190d511751e564f3192f29acf495c8c32a16533a957f7c3bd000959be29a7e7173673ec95325903bef588169ce52f9269c17d3b2efdc67843168cb1eb9777f10e6ce9cebff8a56bdb53b82139dd1acdedfb15160bc3fc3c96616b412357eab1c9fdaccfa27a3679061830769cc25be313393ba9852126c278ea7aeca850227f7e8403c4f9644bd53184905a181219b72bda1033dbb9553290edc67e24fc65457c248ac60b56e725c37aedccbce4d97e0e274ab8c33b9e3ca1880cffda149da7b144b00d685f5262443c4f7dc3ec0a6e27b9b3c284159b31b2273fd1cffcd8afc7563812d6e997373bb5339890c47bedb882a86f2dd3e92fa46406a9f794c90fb238bc05b44f047dd85409611260df6360679aced54aa86015eb3b4ce74c45f1d63225993d0facb87109b79c89df508e1a39908ffbd4fe439e9a6d25a84fc85630183413756be8b3f6eb14cc041ac9684a53a40156d9940dbc915fa69cfeee0b0998fdb6a8afd11fd5576e3618f5aba684fb8161bbe91711fa03877a9e5efa253763677ace0ec849fca805c49c0639bb2126ec77f17db83e2cbe8f89c0b65214f660ad0c3045efdff29d8da87f0c1c72d83a38888324adafcc03d8c95e630041c2d1df2c21b8aec53068b0ddec7ddf17e3fbd08ef7a5ae42ce00f2e265cb3341d8e86250bacc2ef82ec98a6d5ed8733271c0b1cffc287848766326a0fc78bc9539176c99d193e182df362b8d5a52adc967c9ecb46ddf4e400fd2ec32f99192fb58fd891dacb6f8837fe61987ea4cc33fb29529fd3e2573a486d87545cc4f4e4cd0ba197c21c5eb40f5c8cb751434d3b9a5c11f3ab643b1c6479a22ddcba1afeec11dcfc42ba3f54a2cf82fcee17d5d18392b1d9f813cd5bce50c0a0d08d818d7c70533ae1dd996b321d124babc1ec37f13cb851f8b19305d66c0787813100d189228211cf9f60f5192fa01432e19d070b3f04bdda03f184b40426ba56920ba02974848f69f10e9127de40d4c47c62e7130567ae74c2b65135ef8151f5dea6cd776d8ad4ed9956f66ebe0045d3e13ee4359ceaf4876d0f458b8e95d68b74d1506f5f725d8646e2fabb1d2983c0c3805b230269c65a58e2711594a5dbe7474ccfea8b1deac964f7cb71993ee5a115ac9e20a3186ab054d63d0d9c8e4aa45d04b92c862d66435b6ef6ca99b1d0c0e257844cddcc88e7eda9126af8bf466c0ee6fe2ad40627c94cce25c7735b392f7a3b104139a4ed97d1f9f0bd384450d6c3cbce2fa01a90a25caf37cbf6b2ffa738af818385a1b494d08fc5ba042c19c0fead7687ccb27c8f60688eba94388c106af36d78ce3c37e0d501e65f1ac06cbee6a09cd2ea32b65e31245c47547a45538ad381e3442f13bb07d0082d32de7a6de6dc31a06d658305e9d97047a47e25b42862b0e6eaae3f18b759cc7619deb0a5cc614d15bef280d22e02c80ae4f91cc0a9e26515137e99f62fb75c198e8cddf0d763533241b64ba378c79e5ae3476dd77a1a1f3348fe901f661113e35d3fa2e5deafe284d0ead680eee33d269c74abc66baf6cc4c9dde0e836e772bf06416050d8d6eafe8daf7a0a01ad6f7edb23a19cff4e7773a3e54c7be27b583a98a7724fcf926d90468097bdf7c215007446581dddf17db94f3ee532ee15c495434a8877a87ee5e539ffe23de0798619ede62890e458f41a870e173f4540294b5c0e8b3dc5130c002c5c6b477a701940bb1b7c794463b03f118763b6e07bfac48d8a8db36a678f36ad8a6586946e894d049639f93556bbd12578c223981b03adaf011d1697bfaa66f4eb4c31ae61bcc691055daf837531b4e0913637c25787fac937cc8eba30c11baf05cf98ed12de02946f213ffc48b2eb71e92a78f8bbaa33628f7eaf685a7502c2fdd6237eaf74a512093f3a2168f57aee6a109594ca013d175c7b80773ea5d30bbcd35a36a13fed3c0043795ad3fbe5d827060fc2457ebe046e03bd52a978ac4d6912a454060177f4f078d736c615a3d5e3fdfb529907354986f0a2db19492675be682c94a81a57039cf3f525e1a8cdf97e403fa8401ae828851195d616c3c461f5b60b6645d7c13a986afe0f3794488ba48d534e8e2f1bfc8995e1515cc894c09d46a5016a019119dc79cb2c1edbd504bea71c264719839ad0e44eb470678fcd609c7fd383999eba0244378d1c9c4d9335aeefadc6eb9ea16aae9e85b91502c51045da19edab9310ea1432f47c78fce38bf836b9e9ff7bb5b1c38d28686890e6fa76ea8057cf17ee9375f96728228ba4f520e97ff4e5d200147c3097b253625b1247ec43fd891b9e252016e64fa63f1d5e1dbd70cc648c195c17c3f924e0703d083848b76eefc40bc549a4fc6146b93604dca3c69d9680b375536531b09dcfbb41f7878e682e9fd6010ca250318d3e21b0cb67b895dc9ae5781f41470ffe126952923063e9ab7863d4f5a8fc531467976a7385358aaef632cf910cda2fe4554f1244ade0b01d5c9044e09b770f0bb17233db7f5241e0788bc222db6e67874d82f6722574cc831f0e43e246a7fca411552ffc05775991d62f498f4d25104ea4e7f9e18b933c0c46955c3f177a49553ae61b2bd7bf70170233fa8afc939dc93b6b34ae706c80020561376eca31e0fc4b62a30ec1456bfc6f41ed6a5af385ec089d93cfd41ba6515bb9563cdb4f15735707de7b01b2641e2a2f15950eed98c9fb34c1e3465340d6b3b3f8b666a9d7221875858342d7c76f7bb909a5cac0a8b53853bead68ffedb9f3fd7634d647ac77278e29951d0f9553c30c4b97e64ac27910ca070f81a73f7bfc2605455431ca4ace133d4d4f94b5684c78e081494134ed06de4d51993364b49353939da8ff7b7a37d8fc6096a25f7ecfd338e95abcf910c24990f21d08d07202886e4da2e1195c6cfba409abdb8389a197785daaad4a61548de6a9fa5791d93b15c99e36fac36f6bfc8aabc4b971f838bfbdb2a1302e86f41630568e574c570beb990c8fdc377eea8cd7bb22ba3364eeddeb521190ed5c4822a5676aecefb2ac15677303c99973e9ba2c296fb73083e2e9de85f400f8fe33391a2244220fc0b71a2efeedbccbad1d613a07c4227a72dc10f7f0ecb395c51eb7486b2d94acd7a8ba90a2fb0426907bd94ccdd8716299ddde03831a7e9276ad9b3711b36bfb44fc987d46d0e8a105cbdd90e597a5626ce251c06c9c3bcfc1007ae273de48dbc387a0dc74443a37fa1fe86c4c0bf333cf0439e90c6f7548ff089e03f4e6fe4362e78a25404e6c16ac7c6786079481b8b5d5005b1cce453b64bd02da6a4fb2833f76413611e151be933e308e727407d3ae7126cf6c27f46ea5d66e81bcc03db0bbe63e2c660e5e5f8ab931a73b0f542f03171aa23382981cb4bd73fb0ec31bdd8b4c0e8cfff8d73f8cbb9a4b38454615b229c0dae947f6099a38b414f818f91fbc93893bd701bac2c104fe86642c9eaad59ce7a421d55febb6dc739335e85de976cd3c64514b34b3d6d637fe3a1abc419c2adb73ec5732d3ccd29e36b0766c8116180880fb1b1f3b77826f795b487cd5b2ba22334d1187a4930507d5a577c0896a5ebd538be2e828a21bdb57773e0d22df7b2856a495200b4107f953a75d86f956639bad07dae2989f8e5829c9d452ed3d5bdb25c3ca82474447206941b553141039c8d5de70c72ee08ae28a9e6d642909218b838d1bb9e23deb676c92e8f631022f67a5762eba2d440b84759758e5d2ef0efe6602ac6d07e9d30678da3c9c83ed5fadaaa502b17bc69d9a8f8b1ecab7b95f594ec17211ae9efacb566b5f7ef4bcf7db037693fa009b10a0ce964df15c6092fa7259a43aee980a551316d672f79a7e59552e25d6f84c0f4b22125fec866c1f7030b34dc7ca75a94c39e77c6ce4f2ef2b7456cddf1d86695aba916762c333a88d9d10df3e274967b11af4b7bf318d2480eccfb46ad17d0c12d1ff93ec60b28943e5be73d303f9d827d3da18c87651379de9864e66e334e8734358673534fb1d112c7da0f8721f8ca957337916087096bbaccc3e31186b1acda3120e7f663bb7b2de1ee8e40d2b0de0e51eb616116f7699783ba2fb64b31d6e76cd052ea314721d8ad7919ca30425aec2a1e882e6dee3c4f4878cc8122e40d6ad395b38fa7dd534ce15205e4bf18b48d266ca2522b86ffd89c953ded90c8b22d6903b419340c076b68d6224524a3434fc1b2395db39daccb73be282b7c5d1064c32e3b434ff1b22ce0b6ade9a9f2e9914a67c09bad318d48b72c7172b4ca20cf8aee7ab7f0d88b591da095bfbdebfd25653db6898340fd3fc4f257d166993b57fd6817dd15e960f1a4a948f571065e48891d2afae5be381fea156bb7a7fcb2056cf241b03fdef34a309969ebfb9ec99a836b144a459c225aef784d93efa9a1fdbe3be138f2d7db5a31f51bad37d6e3c2f29c43a05cd737f08a96a1b89b416b32ecd020f3383545c248e7cfdd210282a5c81fd55ca3a22000e90ba1416a47b14984e701321f81203ecdeeb73e5cae2786cf90745fdb9891b92cf32ac701abbe4c277dc71c366f92cf49635249ae2cd2ac2242dbb886016f81e70d539967e0ab8b0ac6576914e8b67efcc6b0df81b57596af114ab16b2564e8a4bfbb998988bd5a79ebec5ed22509e958e966be6418ce1ebc8ff7ca15b360285fd844f8b7a9bf20501aaffd8be002e584d94b2f88fc64845f75ac8c5533ae39082fd9d925785f8380e11161e38ac464daa8767744b1efa1056b086ebc8d8f34050c65606baec55c90e00e947d9ed86969fd209e928e663aec1e2934229d9ca0ad633fa20676f38b19c6971784f8634c737459758fe577bfa8abad6a22d44b87cde08fded5dfa39f499ed94c234655d0f0d4af40ff80388ca24e506a9bf15b9b27bf7ba39cecb3d161712bce0d8165830a1245f1c6b53328946e908b30c50f8bef7523aa842553c73732c282f67bfba69f1de9b170033dc90ef226b9c9036e9f4c32bbe399c47e10b5fc83e2177f4479c28a3069aa44a5f4f5e53e93102cf71edd2148924b6d896f58a49470aef413093a00aceac66fb5d2fe73acb9f57a8386318dcc4eee74b187b19275ec7c255ce0027babcb3ce7908137299ca02bf03a8f4dc2ec8d3abb07b0e8f5d21a450552b9c7603733235ae1767f8c7488a862d9242bcf568bcb12294e343f5850530f8e226d622988bc34eec90905e4ce29a5b0e3350c7783a1398c4a64f1251af432bc6e8b2e8f93e8a00112dd1055d4abba1a72ce7643caa26166e659bfc278f7cfac8ceaf3c088ac163d5f57cb421ef31a4e0dc9db279d1449687989faa12333c3d86c09b4d567b47c3fb6a6c327340807c6edf0d15c8523e3d5637e5199340183aa699c655f5aced83e614e2301f2b3edb0bb7e8433bf6190bacf55dedf6bbd4b1ec009e798fd6b90775ba724a0b006e01628a54d206240e73bb2408570f6485c8b86eac06f08213913165bd943b1d215aae30a218ef49a0c4ddc04a3e9418942a8b78db8135f2bf9e8d7ec4035af2f82739844c6c4ad2a9c44d07c0b44f2e7371cd87732f670e777b9032caf5f57f877cd3f60e36be7102117801458fb7ed18d2f75dd6463b1575ec8a2c2821fab4c5e5e2a60d77427511e380e4e868156362a6d3b295a1f16a167f5abac2bc1000f750554b76475ba55a7632941e617a80d1447ac7bc3b0ca8f01b7a1b8816a6966a9eb29ce2bbd0d6888d2a11559671dcf0f108a259b43b2107d984b096b68c13f7a2abd83f5afd739ff9a6488df71def84bdce92e974de5b5ce1d8298d21a95c7ecba78a5cd2ea45d0340206c78b733891d1b7bd06b5e1335df2e3eb1eef851f1909ed579ed198acd1eb173264fa8fb89ccfbfcfbddc594e96b6c5f72d767f0f6957434387635a664d63caf313abef17f70ef09d0a5f902507710e74f6d5d60d0eeecf78efbfa7662a237dd9989d776fadcd9592621e5618d493cb7918f0988bd86cb371dde215cec7659fe8125ad230a9ec35b08d68c3fe400d640d2a2ff90c2856de8f875e84b89dc13249dfc7defc4041f9034c5afb240b257ec82679a9526a5021f280d6847a6986259b8c2491ec143f25c9e8c50ccb01932746520947df293ec2e2baa7d3613e6d81830ff347b9f9b782deb5950e3e6daa4d913090dfe786bf6b870aa119b843ded64756bf09c7f970c8ff7ac851cb7512e17771c7a3ec9335669dc2cc8fa12aec5758ea13d1385596da54feaf8b49df2f435512b36993d78aa0d484c64f5b7c50656931aeb655cf7b0c0b7bd30df383bccf5b442af4befeb65e0002a68bdd50967b6347de1beafe67517a64cb877c832b7c988626aaf3f1e5b6345c8bb0fb0ff08b6303c1cf2b17925a8c5384970b57a0a85098457c24e3f5ae7ccb464d6efc4dd5bdf84a757966b590c7472439408ef8fb746f02f5a85f412eb3e8398591f389203a97dfd94177db69945db5c34efd64d61a3e6d85b0e3daccfb617b44130b1c80e8dd45c04f220ce837fb8b25a3da5d358579304b55966c4fd46c1e1b3f649a1c19b9df2e16838d9d29cf5a663e7482e79ef558ba39910cb7972247882a9b6d24f7a81f1c7bedf5debcb36333b880de66ec957370b4543e712b3f55bc165aed5c5e33bf04bbc4a12136fbb9b09de0ba8c59a72fc379791dbcbf583ee0dabe3e4a7236a29c131b18ed79e10accd4a2a7daae966d66f104f9ad919135381de8cd3d69da9763c6d4ba07ba293e73d54adb0b09162c724f2d37b9774061593c77cfc88460621f8c55e4f987cc4574d2558c8c943d7b06cc5d1481d4edb782912cbcbeb28b9e01e125aeaee5c68e2db0c1d308b02a100a2d2b78ab764f301b4cf0ca550df36a6d63202a8012a7c516dfa5d7bcea57c6cb5ab27d45e672ff773f21c289e1f8e061d86aeb26801f7763d05bd5db358ce35c6a179f36e7b59f005d274161d2c1665a87395ae01ae5c16abe97cbd0c1bb8af0b4c51414bb95fb6d6ae145b9e606d348ae1280d0835207ebe8271814c418001f808427d51ad5e006d23fcf665a8c7e8bfbf82bfdc4cd6fa835380fc13f3475fc17283ea78d87bd758b732d43c078d75397de119c4df378e0d02b118a9ab11332ceeb59e3f2f90ab285260c1891248701d9034fa288af49332d9cda3b2b917f08524b734149aa262fbc0f5175873e4323cf1b8830422553e8f47945fc8c1728a3d7f86553e7632ed2530e5cec0673d97b49ea501e22cae14d95d75b7953b10cd6bad39c964145229eab7eafb4040fc25c618e8c29664a2dd5852e63d88f2f807eb2201023437911e6cce640527e3c6d2ade4f0002e38359f3d0041534586e7d052943c53549ab7dce9d0bc06664abe9f330a9023b94bad9e876434986cea2ed049809f46d3684f87b97d5f29cd034dc24099e1f3acf2468a7d21c50d7fe6f0d324a465c15fc2ff57b87a45f4d6af45236f214a9034bab636f9fedd041d96a4a3b78397eb3c3db7a1a4cf0bd402845154043783336be07b9a5c63703f2fe9ec4d91e45e0b9c61a61e54679c5df1ccae5433f4b720bed702f1aae024e5f923bfea9a536bc6212b0a13d793660d4a643fbfd177b146d0c6972f15a79b2d8a5bd90b359f667bb78bc60e60882785c73ee73be65e136c19072936440d3de269fe88557d5a79a56de7d05737dc428aa5df3a4e9751a8f622aad965ce0d9a19064ac1f95a5ddf7b20976a47180dab4612e17ddb0a78be9fb4f0638791c45ccec0d4810f4e418c3fc4662b2416fa598e3272f101b8ff93a77bd04b2b1df6c83337028d00c3e6dfe8ba17dc428d68592bbfd4721b8699d359b775e1edf488cce9e0926e87d8f06a2759de2078b47e5b723fdb6905d5fa20f53dbd13493504a072ce11d2f71b45c3e5cce3f3241a49e3a16b720708345cb547bdbc12de1018f78bf76529cbbc9068c3ebc3ef67b739fdcd4f16d4f61dfb0b937237c260af17c14d3c44a3ab1dc1b8360c0e6a3d4ba2875a5e598e648a999e88b52afc8e32767930f6ba7177768bf448f0ca5d985e3c0b46bf60590485fbb1719a43a3dd0850085db8a760f66fe5531ef5ee25bea9a423c7cf663b92456932d49f6485c540e332e8a83fbc3b3f8a2abc2ee8076f92d977fef337ecdc7332a026d4240eda42119cdbae8887eecb791cbfd3188ea521bf42bf92b5f3ca5c260c65204fc91334e0542e8bdf02f2d97562f36053b2f61e9f6bb051571875de1a24996c62b5f844fafc0ed574822804851e012961d8dcf6a52e486ea51db0ba684fa72310668c5d2e7321bcc9944a9375c09e987e9877b06155645ebdd29fd06cdbf233bff631e9ed15926536790ce1547afb53dd598a7e47ff80b9d1702d770838ab0a0bcde900ce9320b368e60b05f4c4537620bdc3662ffacfc9a7497bd32044d42f432b95d50a4c8445de2040fe6ef4e1a8e2d69711d5aab20a18c6af8f1faa5b19e7922907003fcc956b61e6689bdc9c7a2d3a37145a85584891b4b1c7714ccd8330f7fd88b28e9c13b78b24169b85765e04d36cedc115840a95e7af5a07c2781f88bf9bce478f6b50be34dc8752f00cfadb906c7d7398b87238248e11d6e219a90d9abd3f876720624ff96768e6eafefa19e1dcf7bc2252bca560913358645695131e665d6241b5d18e243d9343f5567d9df9a42e4b5b4a1b9a52e5330986a24e9f3e3895690abf9c72a6ab289735be2936f3499bb6c2abcce74dd51bebcd5ea5ec8c7b7b53c4fc0a485a3674d67c69962ab4e4bbf48bf5c9f372d23602d5407aea4a76077a65505b2e9d3d22375bf221b0aafa2fe104f2b6372da14ed92359dbba4d07795b49c3959934f65eb5448e737657c380bd8ec14fc0014877fc1e48c433b0a9c11a317822cf84e6fd8ec555081ba8a4a7ad261cd3b1ad99037c03747260554ca6fbd3ac1f6e1764b6c8c68db9b621f034397e0ba3bf9474bc6ef351c6003ba752eaff2cd3e371cbd6a7e224f44ddb2a70cca39f9cb37f11de6c12147b059cf8c1f449d9fdf43b6c8d38c9d66d5f486aea383b6075ecaafbaf12b24e1616e35334cc4e234a37b6630bcab4a7805bd38fc22f467cc3da248cc5828e66510c6dece24783a1889880df5270eea9f926486d4aca7cfa33847c0216e11ada66781b0649e0941cf0d7b0827780623f14990e1cd306366cd803c09424d7ddb71d1cb775a2355ab8200739e7741645498f0135112643e0e46305cb106213ded3a56e22dbb388531a3c119e758492c6f7459e4ab897c30938a54be5e8cac51e8e57185cff8b3fbbaffe2ffe0c0915d82b7a240a9faf31f9bf8a2bb1c585232c3c327a5100b164267568716735bc09009d0a3cd47b1917d62e820e6af7efe4b787842781341725b5e12d3b7ed6c5963e352304fa98f166612c15f3726016c8455482636df05255d3d7dbc573accc2d0255928bd76e86f23dc239eb34b3120ee8fdabacde97b1e988bd539a4cf5da012cf1d156be7658f4c8d8eb9b4d1d26fb0b03d32ef6a4497d5a1e07197710288924bdffdeaf80788682464bbd0dbab35a566b384d108f9ccdb97824f7b10a750000d37310e815642a0634a89e47666ef78f7db91f77bb183c0619b9bc4250afe5b28b61cb37b2264493d69da26dcf2623a2963fefe4e1a4501d24a6417cfff97c5679f2652fded59b25c399bc00d8a733a333b0bcd68e61337b3329389595134a7db59727197475dc1d5cf4f64eabf801f3806ab7aeadf834eb24a3a4ceef4a9c97f5e1ccc399f0177a1b0def811a2d696700f8c9a6442644c8ff395ceadadb0168170d061d391b409ebbb358fd1ca6cd8818f60a93cca07acd11ed8df1aa98cc871790f99b019fafac8085760d8e4592de9e664b74ce2a8f76a5b4354b953b93fba36ebe7b3c4ea16e24cca4e581a1a14baf858ddab06263f0f350a922c797b3d7bcbde2c5fd95b4cc26dacdeecbb4e77a62fb8817dfd87699347e0f1e7227c9f414c9e42c7cb06fd784d6f66590e3d55b35c02541b40f6f12ec5de56449213ab4248bbab699c7b85f1868b24afb6be0ae33530404d44b99dedc0778f62855acd420b64d37e76e5c1f22b7ac9d768402a237f1f745db8661943b5f6e50e18c8b564760f89aacbb8a71c0c921eff979377dd05485989269da9d087b3d656113857034820d01c0c8589b5456633d4d1a015fa226687b0cee3989b12ab1e2b8510e9431da50a635a33da418c557235997e50851ae0f6f592d58e95b626ac8ac26dd81b0737a9f327495be6740f856ded9ecbb47841dd7bbe737c67ba45b4ed8ba6d6e6406b7636c3b21407b61d2772eeb2325f0fce8ac8589779d97d04d1b94187d36ab9c28271f95842a9e3d872dc0b61b5a2ac6fb010acaddf25b195acb1dbc90a33875620585d5c74319564e96b8e569e517b894524c85d570604672c6b9a56ec035e0eefb173bd5be59336f05c4ff27e38b2a27a8571cec9840d0d966c934a13d46ecc7b4281800741442c811d84d722db238d98b677b5504ead7a76f0f38f9e52514df20949b7aa967df4bf4b834ea98bf3c05c94ce06634427447d39c2c0923d0c19ae2a14fdd6b3d5f7d365cde3541bd75bbffb79e18f38553f8c91f9aa79163685088557da476703ef9b082127be5c0393c07546b8a4304384f388fd870a6332ad096bc61afac75a0ebd92310eb54244f7f20da297de2166ab3656c504162ba7cd863038ac3208cae9663841235eb8d07b0f889d5d9567ad3e0021574bf165c009ec05aba08aeb56cce2a12ee0f1ddc7fab7bafde2892671a6580df45d03a2fce4a74f87a8920fa1e7f755fdab11446f885762043162111bd26b5fb3b204f3ad27986bcc5b7edb6672481d70f585e4390040adcbaf7eb65e0dad451b89ed2d964bc594556e77cfddd50610659c6a40cd222ed358d41873b3f8db6d917fc46403a17967ccdcfff41f9292e8e18c07dc7618e7f37060d144269206b2492324542eb82e3e6300ddbdcd5e882238e8f46afd42aac200f9ab0634bc42312bffba1e0ce6b74404da09e20845a4c2b568010cd2c8e9b3220ca7871cd8368ee9d56a242983260302b6d8e064a62e7d338649d10b684362e9da416402bb79e6c6606401231accd1c14bbbab37d758fc35e116cdc098a7830b1d0e2959191df3e41137e6c94a1ed699cb7a858651c1db6eaded456ce5392d6e91e958c71931e414347cdd7024ec5adc7f18a2dd77514a4c82b36125f46dcd324ff8448ef16a072abb280f2c3e4c8a2a2dd098d2ab3034d3cd730deecfd9863de0a7a27cbc5bf37712752cbce0746e39d549c6f699a313f5ac8f4d3cac8874092790cc92620079ea5bcf6151e4f9eb78b1070c997039cb61f679def8e28470caca9959291fb939c074ec3ad29ca51816233e28c545e46ed4e219ec864548750779eb090dafcce8a70fb6018fb78d98cccc087530e2bd8b68ee73e3b71b70c849a7c4ad83f2072476ba691fa96ce51541d21c6ef83808b818dae28156e6f82bdeb0f43c9b536dfc95d7604b10134f57c7ba0fb684f866b1611f00117b5d01cfed8449dd42a62c6172a573a7ff9876619eeed3724c8fce2b2ed2a1bddc9df0b3e31ae3fa8de9c1cd910777a069d98cbfa829e843b9fb39a55d85c2b8112d8bda4d60245e21d2f6204edcad6f698aab71af3aabd453710a858e98c1c07d7a9f196c59bdcadf53a395d9587402c24f8e56701eef910df8d0bb36d43e8e6cf749984e7f7baebbc324cbf4da9aca9052dc47f4fa88311c5377f7b560e844584118da05b371ac8a25e846fb77048241ce9cc1e8bff6087af3195862ffeddae78890cec3aa34ae0cc5a90ed9cddbd106343b251a6786c9c4330263a0729e962b79c12406024d359f195baff4a3988643d4258b14382fdfcebfe0ff01a27ba878b3c773e68c9218dc3d20ff3e58e587de2639f339fec20ad3df843826c95b3d26010e254f042cc25fcabd5494f2c8ae02516ff5a0369611c109025da9e95c27a99f28c3b176860da3f095152bd26a7c47641f0ce491320ba5bcb389d984cab85d472d69964b3c41daaaddc5f1bd3fc96e0bb27a7fde57c8c58c32051756365c28e50a4ba88c2286c4bab4fa0a64d40ef09d2a0f37440cf8b4426ee903e8788024105967ad8d785157deab3c700f542a3abc6774b9e67aec4afb5bd2dc0eac8641e3b07da0458afa786a54c0c1fedb6ecbd4b946c4e038a822ac6a6548bbf83c25d50e2dc5050f359b3ecec2c119c03d3a50b2436919fd204b8c3f913e6c15b9289d842a273eb4a1ca0249e7b992e2a4b0122e587e02cb28076a9ced9f5ade5d1a918e8dd67fd1a2c3d839626f412babf4ca040d02a7f5471838ae3c5ecc364c83b8c771da57c8450b8957f39f97ad5f2800b355342cebf78410bcbe8624997b4d3618f83a202452047ba0c11fade456cf4da1074a5373d53cbe76aca4d0893b7f4fba8e20d4c27f392a5e13a5879a0e53ffbfc8b8f3a519f8d6acad139cdb18e2371cb61d5bd03615adec8fbd8ca7a66a14e5717e939447cb7f6306882e98dee780c0e15fddc5070b6413af62515af025e27dd43fdff3a41708194f146b20e9100ccea333dd143d6537d31abc0e0b06ceed0a529d236dfce861558f4c300854802e360d790ec80eada9654cfeb76f1cd5604ed38a0ef973d9d4f5a0a89b0d7a9ea37e769301f5c30b3646aaeb2675497e676ada62c1f52eaa9e15375bd25c01fe9e42e33ee7fa997491221174406b43bc1480be2b91cd9230511867046c2167981b8b5a98ec61dd7029f24894bea7506fd948e5cd824bffa2037b9992b712f443fb6287481d43e820d60859fd06d2f80d9e72d2fa1d6d5f576438b0b071f4689719496445329e4bc597c6ef169305a138bc02866cbb636ad2d340e03a83dfbb5553c72f74b6d47ae166f2ce33d9518e35d16b2fd9baddb8d76a2b62a5041e0cb604f65a0efe9a4153888832161440a067ecf6ad9e788c747aa359ae41c231424669df26e840b6ca2b06a56c19fa73097874aac403e74bea8b82bfe2d3fe0ef5933aee89452e6fff13f8f9c3da36de34e1dd6a2a9d9888ee596d635f69dfbc22ed93ca4980eaf0755edc0a8cdb40bd595283838dd233ce893f51cd10260f79f7841b722bdc1414fbe8a9ebfcd10362744122acebd71eac6d6adf51abba3de386ee2c0e4698f9a377de51dfe33dd6a8f7e37d6c83a1a54697f03f1e7745cbdcbe157aea0bce95cb7a59c03904b5a668b631a5fe93a331dda2410b0b41ce6251f3d6b0cc5ae224deb47ef6e3630d2aea57a525878870e4e08746967145361ac8e509b18cb78cad736d9364b1ec42008ca170d4a400208d36f3a5b626f59536a27478546591df789f4702ce0061a6bffa924023358b055fc51eddb7c1168567dd451a8bc35466494b6ba8942b88dc26331021e02be6351fd7dafb8a88847e0859bdbddd308dd554e17c010e0c904fdc70a74c51cc10d236ea917546c53474628e958889cef094bb319ec87f6b811010234c884da3c04cacb5839b961dfeb2e8fed03eb58de81dadf19eac11b4ff321afa2ac2f09a3c342f457b2b2b4d7ed92e7081855ffd24e84954d425bb458aaecadf864f368d6f7edafc2be0ba8c36448e2475ecbbbd77be0bbd4d5717eab9ff49f4852a12dd5d56c219d951f12f536d433f01ca36ad54e55db599c3c087d94c36ceafe83813310de59fc8f61dbc628e7151dbc111f36fa6aa44245143609d70dc05f2065ff65f0c5c6bedc96822b257dc56bb10ca057f0e568709e2fc088f5b08a48410739dc5ef3bbd4c210988b990e04b884f5eacd420c9b90e210b07769d07c67053a33ebe362f218b45441f4fea496e8ff75a975b7dd5afd5063e82bf5988eb639dce687eb7706b9b245b995eaecc5cbdba0c1567d91e12db1d29abbadd07c8b2293bed1d5e3f72dcb10cd913f91de037ce3c856ab5f14b7a338ce33eb5e43ccb9ba1d6d9e39aac4a4d45e1a5c44b2038c9589bbf277f7dbe255df1e9964a833cf16d6ad247c67b66a3ae2df5bdd171b8ffb827d2f0a36aed42ffe5aa152b1a53c19b2915eec59d18ffce3cfc9d86593b561666ac0709ebe1015ae406ba92994a025ee8a00fc11b12ea67d235b5dfadb888c9d17d1dfa25dbb3d4619a9b120735017bb1a6490048708ace4bd8d9eb6c6401dbfa4ff77d76bd8f672e5ed8b693d7572bd3bb7b00873645edcda431880d4d3af1d4e083e78baf749b273c5691b0984158d9cbe51db6b51193f0db7a7bf91146938cf6044e2fbdc1cdac648a011ac84f437aab4309cb70c877b8d5cf7e1026e634895ed46194405d791cc68896a70d863bd6a0f9650f48ebe11d8940cd72011e9b6c13a1442192cb5d26369d609d972bc922737685eb08186179c40079765a5b2a2fce262271432156db3460b1676b6af1fe8772d14931f0bb7f9944c9968ce715e170e1db610072f87d0fe577bc9677541bcb77b2015c1e3ae10c9675b8b18c7f07e31bf82ee79e116b5f9e9673b681ac9d6bbdb17c9175bcede76e4ddb51e63947e7c2241e10f746686091dcf1e2b9bfb770655f1335a8b7c6ec9472623fb7a38529aee4c514571962bbda8e8c516210fa897ae8b35e2053255d216bd3d55e8ff08b4f9224cda061c34ff03aea643aeb4c11af02401006cfe81a089308c9e45bf37dc10e5840cac3d0e3bbe618f4bbf88cc4ad6e0a50395025cf22390ad5017827b4efedbe4e027968d827a03eb1aefa1a797bc4827bf9bf2309dedf3653e9b09cc2c26eeabde7396c16d8edb15f674070456f5c825037499f3036ef1ba4927449ea4bd2d21de61011caf03f4c12469372f04a93017d876544a37df28201119dbd6a57349d3cc5d6ee795e09e6bf518a2ad6d1c340f76aa95ed9846b9b36538a88c955d1969891eca0df928ecdd0a572ba5b7acec173d6961561c42c88a9c163b9ba61d1602399bd42e44fe35c725a1ad17a0e7541a3071d3bc7e62ff0d0d655505c283df26b8249e06a1a2945ddc2873ed79e5cd56b453976610dc0b664e756d27295db6490915122477e86813f248becfaf719a6d97b36f45e9301ef805162eba3bc202d7e2206befbbc4d45b41b543d3d79d64f79dbdb2e5a2386cf258c7f7a40bf5cbd5bef9b800cd4f407f69bfaaf2a112b7ad1ccec8acf192aee852d259a0a8ce41180e995cc6ce7dd67fb25e10592bd183235e44af67b723a280d3269da84dcc36fc703f907bc93c060ed945867c801e9b0dd71a792969b0882ed5033c40da089fbb17ede06efe73028db4358f085802391b6bf9cc79e217a6011f56648241d2164dacdaaa982f954327e9e7a6985019785e441d60d3ffe6c680b3697a05d9155bd46744a281d30d02f31761b6423b7ad944ff9f85729a3db3968e02938db191cfa235ab51796febc0263f36a0f13c15bf1f2d5e9a73bf10c08e8431f98e6394f7c7058a911c9273be5d3c55b98fd042f33c6ffb97413cd840215442ac80f917ff31b15f132c284586eca22c4901f42f208fac488454da9e0f903df0defee12f345e11d8d9b225d6604558a30cef097458e6239f0040e43d07d3b0a676bd131589992dd1bc7cbdc5de6ca82cb5603a648db85c99bb11ce458cd4e4f38e4acd9613d19ff3e7dca088517ec46967275ca7197a38f1fbff1ab701be697bf5a09a598df292975ac4016a5040dd353a18b1243786a6301b68da37515408a7ae8a8a19d5dcfcb9682851b938c94baebc16ffa68797bc50081d56e36764800c6fd3bd176de0f5d739b9f341a7337ac46defcf748ed03559c305cc2ab53ff8fe234bbaf6fbcf4fa049e866d701637e2b4102e2ad33549a90e10b4d7fb1482f0b69982b8cc9a0ce8de73e90d5ebd798ff22bd1375446e91d30e5a1ba6548fc52d12dbfb99459ba4a6b70431f2d394095a6ce653cdef4b203885ea21aa997d2a6ba61eeef3821b14d03036b8a16512ed1f6fb760974944d7379a655f5604940411e09c2452b6e1585f1fcbec9e174413bff1c65f4dcab02f3a30505e06183624512ed03cf4baf23ad3224d2ada9eac0238a9c398f0cf559c7e438a1463e08653163256eb438d08edeb2ebe2932778299c8c5fedc1c175b0e14601dc453675595eb43a241d9d19218a90acf90dd5fe4fec665c6655c47d4f0c1285bb7034019a58eed7f079e4d473910d265c159db1dd6c01d9033a666d9dc84d14bf25efffec94e6d65d2506942aaff7474a308b2fbe5be77f33768612f8887a46c33d1bd044fa93696c453b5b706bd361f63646d30a6a16f74d49d8880b04e80bedd63982632ad6e151e866232c05f2e335dd5dec864e7f51d783a0f2505255624a690309bdc8f716809e3c7650cb3c9ecb3c396b0f5d06fec659f8e7b51b2ab111e402c20f6844d294ec3dd8d8cac450e46736d461ec63408eeea82d1690f19897574b356a55b4569d3eac45f501f36460296fe002f0f12d0a3aecadb9c96cd6a0e12f32fcf9b4fe31bfe3c8a16e505e6d04528237d75c8b35a012abfab260b13bb109e6927de96fe25972dc6ec516ce88d448e80ae208ddef3f0cba88a8ca648c221681a24e2f8a059f41f779168fb47cdf51852091387b1460fb9f66b4e887b02808a4e267588d16d27c2db38f096a56383701a3afb550eae3464f0d7203053ce3042b469960d2b70bd68ce973ef53eed02869a41ae8671049a200fd3e42f8d5c7551588d63821e5814861556432335cd3f0dd67c8020dd181ba5d6542caa2be58d7b72c7419405d0f537444a2400235f02fb27f9e01a93e6c98f3d91e8dbf3c5380b42166827051e9ab92a2184bf03554a0d67860ee19f19fadea5d613903c48894cfaff66d1bf56e9edd6525f68697bf7401a397ad734aa93786502dfab0ce2ca11bfb38a5dd843acdb24874557035ec959bd4e6fcfd298caa3decd28a0890c272eb19dfc4a44a8612cdfcb97bb7486735e15a6e4934415518b2876cbfab509adfc0ac0594a6ecc97ae6f3e5e187b4fc11b953df05e699ab8c247809bd67f332cd94c630bc3287cfdd41f0b3ac66486699fd1693163cfc8fdbaf69bc8651fae0aa679ef0f5170e0d833e9e3f26fd7543fbc06b6aa441e0a2a4dfee6af6fc597e34763000a42fede3507d6502195e62ce38aaba0f09b51478d361e1315cb990f412607075c18abe9e8acf17b81097ab1f3e416a64674c33b5196853026e809ae37b1fa09cf0ba1677625c95a8c7504d503e9334b40d1062f0f6fdb1ea448674802d8e756c3855e220a987b570fd489a8487c461ac025921fa02cd7e607ffd519fe90193732a48860edcf5adb9cf4f59406c5bfc3bada39a89618697e83388bab905218f9d7bb8d9855b81b5ddafbc2f842af22d5f8cb7a2ab1e272b94ab05b16929c56e1b5d117e5f8e796d4e2dfef632468f8b72dca94071a1f1069a7399a77cf6fedd3bb204fa5900f19b62eed46ecb8e3d4ea1e1b75f27ac86eebf93946b31acf68c9d197ecf2558d43d7b443f4538f596ba642f770a4bfb837aeed288add2547a460a9591cd88edd7cdf41556cfcacc3b260310bd07ee32f8765d7168ae51962b71fb83c306f7622f125566ca2dfef621ae081f626e34c5275f96822825b7133f2357b4b225625a2221f34228f09d938ced02bce814c08a82e6ca504356c21cee9d0ad45e71fa3480abc2be7064c118c0b0e599c5e73ac9e9c3a4584aa6b84cc94566b1b91adf421c85c997fe026b76a8511a2db7706d0049ef989003e89cacb77164f764199cedfe33881826b1eaa21d93a0efd5ec2c08ecf31d6eafc86eeece143832eec1c8e591d5f2adb36fa94c312e1d4e6e6f19a55e4bb3c48558e4d53394b59d4e91e3e09cdae9e4a27a66da84160c86f5ea1f7538e1fa133147c0aab57d475295a4eb98cd46c7fe2ddaf7eeb1c9588e49a0e27eaf6b6f058b43d569ff603d3a556796d261f56308b6e9ad3ebb7781686d21f545ec798727afc1990622ccedbf1f486df3bb251f58166820ecc46ce260b47ebfc56c18a2aededfef128f86bab6d19bfd2d74d2441d322cc42f4f2149e19c099e35fe77ed11d032f26abde450cab194ae1279dc71de576d66d8ebf2ff4ced52dfa69355df405bee7b4a796e529f12e1267fef64649eea2eb8b0a7e75da3b0bfad248e91b60b986dbb15ec5c009bcb870db51ae435c7b9aea149bd21a63e4b8cfce345b6820dcd9987214cbeec6384f5119bbf28211ea9a62e1b748281542c73099496662fc2ac73860949f1b3dc8a5b4a0fa402790f0111b169b776ecc41390e8208612c8bf0bfee27a9be4947843dbd8f7063776c14d441b9c5362a01c286ddebd4a551b08fb553a7a62435f7b6e7afeca30255ed31a3b90178e24a171ac70e5476ab458efd8786f2df5a69325c1892ddbdc5c406f80443463bb08ca191ab2d739aad7dc343c47bbb2d945cf2aa0850950c032a646b6979af5a13d918e449379150e5e61400b316336fd921fd85a99411830018cf64a1de7464319f64c4b6ee718c51bb7ee4b6e5350346844c0866bd3f38c4da390ca56e7aab6616b555703a2ca50ff70236fb9b3751549d8103b693c2e47419b764aa7599c7da9c9cb098d4d6da43f0724f72a2e9403a38b37780b65d664a34b2bf8ba2bc1325a4096100d833c891d3df1d245a0abf55949d1b4eddfe400e40ce467e8f3c2f01debee900f46bf5240754a1cce9233ea958bada4b5f78182cc1eb73183b977c139b2b3d2751794949b6f571cab0423268ca0f531da843395288f796a82bb2a3bd8d1245ae7019909307b9365db9d494939896587f840d10a2524f53db36540f0363415ec990fcf999bf562f34c4f463a6ceed6fba7061af700fbb22b227696e7de3b7d9be5f709a3c5252ad4cc75c1d52c0b454e552844d97ed33cec9bcee33618e017ad207f3e97da4789520fa1c4a4b004b75f74a72c35392f4f7f0b81f1792e030f9ffddf244eb0067e124c9fdf225b4e674ab82fe10b91b98900e008f94c7b9df84853d7e6a9500581f984a242142d7e9a9312747d7afd05f6158fa6969c191d43b3e5ace00996aaaf0a00e2a6ac83e1f9eb2f60adc86a01186d9b706198c6f70b3cc13670e374c548abc645a61b6701091a10bf18b13d443ee488e376bd5d4d5749513fd7f7dcbba377d703020fb9ff5f5decf7e71629254dd2f2b9beb500fcd7b89bf72a47f7635d498a782c3a35fd9f1aa414bc0f71abe6a605445682ca2c6b9c0cb03b21e11da53479301ec17df69df67f4f9cf9fd7f202bcd0a97494b90091e474263f62230c39f1eed03f66c199ce2c77ab98cfa76ee34933a8e748dac05e6aadc0c960cab1212e7e0be7a0e1a201280bdc39950735a29d82f45d413fc7eb9dc70e2fb88ddd371334f3104a96356ed1d31c7418f485a58df6ddb361979df97b660036963b33bdd185686ad0459f40edeaae2eabaf2daa3946a28e3e1527bc5cbfdf05510d4c89a50205ad1b5e7b565e02cbf369c7753e614011d4f102e45e6e76cea98f96e485138bde0f290112c1c87d4b716cfc67470aa84130ff4baf7bff9f02920241ad2e78c189cfb7f8df4a042e82f885f2c57b778f7d9248af58a499b0b514ac562c16e68d6bae05c3e3ea5e183e0196c6d2e66eab59ad128b62dceb6566e7b8dc3e6354cfca719bca334faff368a468eecd68d05820781975561e85f265a8e8c06b4d1d945c60291b125d37452f202704c9357c4e56aeb41098d45ef6a756861b6ba3cc7336ca73252aab56475957585f54538935244d0cd55961370e74d5f087f9473ee42b7f4f64e5020d04564f719d581fcca1dd1b5db55b99bc03e76eb3d54dad0ca49c54aef4cbe24c4d7db2f57b55c8ac24b31c4ddd674486e8284d2e944d604f94a3a3bb72b6fd1d7d384e28a628d34d74da1d50f3159ee0a5dc02cf3aeb7ea99b66c808ae2eba8f2715964b58719502e11c2d1c9339da66cb9401d9efee37a86c01a5c906bdb37b28402072fa9fbc1593c91e2ef2849a6da60822be2fc9517149261f2186083718b78a26df14c3c7df4a7e095ee054793dec5b2107d7f4a7c11e199e7d03a0c95a69e605f73f2d892d9d16c783964f811d810a1fcc50dca53b901a9105e9fa9f2a5138c0bff121aaf6e556782b057cb52d26f11fbdeb2bce05d0b1e81369c024639d7e7df14ad126646b95005a95bb8911187b8aba97f937b95b8598c436ac76a668870797450dcc266bb985618d1c646ae833acfd8d3009a0f89b1b911378e8ff9fe24b3ee74cc01d0c65f3c58b4f25221cdc34d1a53d024489f0edfcc30981562b4cdbb858c4f94c6e047831caa69b8558a6b8d9570ff54c963c10523dc57cafc1866e6c0593c42353c908791a6a0c2f29722feeb11a45afa4be896d1e4bc64013835d33244b3f131850d9b0cff6afc0a8b07580bd3c6e2ab38ae09bc51b845333ba28cd4b60df74fdc7e8500517326f961eca951afe7d1779a4a485958f8af66bd5efdef45ceac0f3fd7369f637345ca2a6534fd1f4928740bce52b3b55e480e518fa830b19fe1469967de756abccc0fa8d98029cbe65b275e8b8f4062f51e4cb89326ef28d880ad1174ee9e0eb00e8638404e22b54bfb4451fb7c7aaf8c3cfdb73a596994e4edde024f02288f14ff9645069352a44fc9ee6847e3aef16e0a181c5067e8a1ce6e1b96ab35205fe289353977922f8ba90d362dc2fcd3153842bf4b42afd0b8d3c4c7c54a9c5abee703548b04e056f1a7fb5018aef36becc3d42f5438ca5bf331046fc8a2becba0c017c4588e258234be2a6a79f67c2541ace222283cab15a52755593a452fe9d8925291c5d982fecde6957c75c44ba6feeaca3fde825865c9f5413482e7fb0cb501f00d67bb13bb192d462be64b7e5199184371eac05c1e44fe731c664d3f7379da26fb13ed867c1bb793fb7aff514684ab3bf29d373db0a333ed3e088b7de89cc580cf83d97ff33b3c27c6ae3b8bde768cc2e89989e595957bd2f99b85669873e5cdb3906df671660ab515952bca794e716fbfdd2578b4e659c8ce39a1e8a69abc06cb7ad84676897487b5b5943a927d70b61834f94dc04946682a4f943260a4008c60452bfff28273d6b9a349273d096db75256cf0b564df7a93a09a3c2a1efbad1c2fdeaad4f50744c653ae716fac98e709b8ce29ed81f18d12584544aeed3a9c60ef78c725ff5eab32fd3aafa98ce6465b97c5a1c50603265909e9da2a3c27b496b3a17a5652b0d376a32f9ccfdcdb4398dcbbde80ced0214e534341bd52a74c0389528a06bddfb2e79ec08e3bbd91dc31b02d0b7f11a72d3c323d017c5ee0aa243174a4baca645227f75f5c11a24a45fea3b474efc46c4ef8507164db94cc8d7deb90d8149f64503310e4e66a09c3632b3f170e11108c5b58e8f3fa21d057a32fbef91a9dae3a5dc37a988b941aad520126c2ec02f98e81f9a68115ed959214664781c2199857c1f701fcb05940c5e07487b4cb24ab49be565bb04ec5b9f8f68f61860d78a043d3575078406110de0f8abab48707f975672f5a99fec20d7dd66a2448994493008220c6d0279a11fa97863595a4edfbb5a23ddbbac642d30735dd0c64edb309fdcfe25a5fd6b7330a61f4486dc6dbf20ded3cc67a08aadd5908a155eeef3a5a495072a477c2be09300d7448ec3939c3079540aaca6b3b99d238becacb6cb7b2c4af235d71e5a019736d5f0b596a00bddc405ad9e95bfb676b20d5a1d393281f87295b03ed3cead2b0083cef626b7f84346490e22786a40657123921c77af77ee3106b6cde477dfe2e98fdc5a473a84342cd24e4d660aceb17d2da1f5c98cfaafa4ac264ca8c5fb9a08c185a9d5cf2844b1b2b7052a057d28c1903a86e49074dffcf6ab76d13964c9e876472ec24c959ee416ffd1cc1dee36613dd46ed4e982ef82ed836b5eb117488dfce7fd66c8eaece08ac1e9b82a230b9e2d0d23a4aa8fa040906a187a4ace68f1fdd5e6cfc29eeac8a11fae066706bd519aeb28f46a1bae794e67863d434312285ffd6373d2a574ab71bbb5b35d7187641a6ef5b2dda8cdb1a212f3c928a364d84b3c1f8bd74a4e9d3b8f8dd798ba44a57179cca51cf578f78203453fecbe6c2447603d2af86ebacf6bf49bb02dc0e564c26594ee4ea7b71a071cd02b791ff061d87c0406845d28b8ab7812c633624358429058e80ddc5571872c891633be7f8207a775be35e7e1fd1eb4f2b72bb704d58e3dc1fa08623f5784e64302b4cf55b8e9aeb213e3ae00b5dd53a51cce3611a948c9940246ddd7cf0500d303cd7b9385e1d091a3b783b6096cf310b4e34484af9ae551bd1c75649bf7fc36047fc15f2bb232d11c0030fe3381f2fa09d022b21bccf4246cf15965abd8b4640017437b1848d7b9c57b2bedfd248a41e9f49a0a305ea79cf29471807d20e6150a42cc95bcb9b2cdeaf74a0b647b7aa41008e1a6071b970945075b0477c1aed7a6cf6ea9f5663fc2819174f2251b232c4aed25e4991d4dda5992b769d4e166ce31b40c2c1210f26560b9264dff9a4aa655d9d14f969971529ba3f04af6bee4be776e3b5bedaf29405a1eafd2520b4d818050ba2ddf1dd297f513a8a600f923357c601a70a646d358b17a3aa2efaa4e0725ff4c54a978e56795d4f725806c2f02458f0b8a3559b8fff50bba9ce8e13b0756b22a220bcf48409c3e69d98332fe1dafd347a7977d915c55241961137f94a3eec9227c132ebef2ccab47a120be9f0328b92802c4a17d1d6c871e5982683b2f4eacc1658c4d632c69f6272e2171c880c5a25cafb81f954607f68d873dd3860982f45060eaf704dbbd2c6762d762002d2c78f754d81cc2572e960c314b5728fe9cbd2209b216166f3d7adac7158d88717b436a3a0e546fa209d86cc025920cfbc91338ed2c1a956bf87327779845e67de068e91defc1b8301d45584e949df957b97a0b72b26e047cf9ca66506d3044371267546f1495ea2bdee8bf9b15861d271ba72da025e38ef16380bc6b7b2a2b13e81a3573e03b23c73eba72a632f23b2cd17d79a46695f2fe95f19dea6a4332a710825a424934f0ea8f3faf6a1c87218e49393888cbc252b2378da0cb1bec55444b1e610e418d62de1cf48f1caf3c57f6155dbc712bff91276d0d0566e2ab81a41f4529a66e6ed26586df8b5cad4603f8c463350094f3237be16b01e61a449109b4efe4c3a02bbd6da5fd4a60b634c6fa2986673993d2929dde0a50c02007711e3c163f7aba81f749e5c5b2e0aea9ce4aa3c8b9e86cc25f5bb253266e9a2292c2452b1a65ac6ce6db1bea0ec628b0800c66a1687ef3717bff1c28f587d04b631498aa440cc7e2e08c303bd6f78b8cd48281d0136ab291f4c0af5acf73a34aa895af676cc83a80ae52a4dce5920b9e90d6e94fca2f943ec428fe5b3f3e553ec1fbda7da3cda4d17df75e28816222a9f87e4d3b6d1c399e42cc6172347a91729881cb306cd622d43e340ac5782b3794c33ba202fa3733520828cfa755f794992b013b2d342f43adab1d5b90c258a6c9263c5861acd7f93334ada5d5d82d648edbdf841e8a7881b78b1d0bc21e2899aca3eb55558a92423ca1b3bf387716485f1ea6983f54b05aaca3d128a884094edcda50ea076cf66cb1085fcd6fa8eaa05f7845a9b0322a576241c619f0bac7d260bbd4bbd46aa6862f026e801fa03b6e2f45f6833ceca2f42dfff6e973e52b859ed11d2c9817b5036180d1fd580ac45cacf5b33f830de5f848e4863b5fe7cd66c929638227d7f7887d80c13954ac99d7ef8d4491ba445dbe70164ab5f838ca09dd1ed83ebee22670acd34aaea6aba1f555a1afed1c8b9e8c9177e939ffef21cf991c1948bc27c196657974f5f764448b6994222d405b59dbe5f6815a4cdd392e6701d012efd7d7ebae9f913e53a22c5a1a2fa38e1336d980b8de35e3f3928429ab807f742b2899d152133085108e5e827872723385aa6792bb9b4cb67c68b46a1a6d293fc0767c7fdaf41aad98865e2eead75b31f7b703a4e763073b51612dc5b02e050d14bbf5ce91866959b2947c3ae502fda5f70222ad5b125f4e858c8077b03d1c3fd169a29c738c9a41713508fb64af44cc5d723d9d86652dd6349c47789885cf5ff82891177a1795fafb1974467372da7a30f5875a020ccebaac2e248619d45ff1b6e78cc4dc4c9d32ececd0ab8e053014c433c252d4d065ce9dd9742b2512c77d7cf4cc093ec58ff3e361c7eb1fd6ae69b870abfb05f60b56da3720380df32697e1dd097050a5180f0f46458f0403f606d0774d112c365cb284b368ba321b14aa0be8f13534ba393391bdf9127b74b8c2240c4536c9c292b310dab89465a705a9091a7b5a2884d536f1854709b755bcc204e7f7b8d5d68ce428288db68492959e57fa8550b7ef2bed0a27fe2a798422f5049cd25782759b938941ba95e933e62f9220d5e1bd64e58fb2f54f33792481f9fb144fbe2fc581b97fe89ac4f77edf16d78ee705204550474fd25174ec81dbd7eebe5f4b8c4d9a5045fd53fb7d56ed3a3a6ea75a4eff97025a9fe928083768f63cc5931971c3f10c9d5fff4e586c2c643d16f9ffb6cfc76d8599b44782da5584637c51952fb922a5436f4a47c011f2bb6fddcc9b28931cebe77d79f73dfcdf425c9c3ad70233c74b7c71314f6503fe0ae072bb31ba61ff2ebf485ccc4408d1c80955b6eac6520e72a958b851c5c09de9ca50feefb5ff243d725fb6d4eb52cc9ddf2fbc773b3dc8a854ed3d88f7b46b7397dcc1f094d114ede29c9c30ddcbdc04557d90b6901fd6ec7b8f71643606859fe471c0c7285e38cc1e370818d5db781c5443801e4f95dde92ae92a7fe4994e0ab07f02e58fe8947238209f1710aed5eef4579d7707f22f9abb092bfde8d6e44c44aee274eb49ad20d9820b3ee49fd1d56faf7c949ffe6657f0634fed06c60f70f81e607dea5260e6bc554b44dd88dd315330f17e4931c76996ecd96193a524f1760aaa4039e940f8def6cbf6cd5f109491fd40366f7b5ec2d5f52d8d1d113b4ac57ff73afce1aafa709ee683e23137892885a862b46909191d6ac5d635fed1c61169a12463be11f516d71ef4614b9af961f94d8419141dfbebb50b40f74125c0d1e568821f316d107c33d12206a86337fd81ca6ea403764d3ceaad0696df1134a681b8f0d1c8495a97ae4cdf9a34856785786bf1e474ee392294d3ad72b99f7f91a249ec9cc6276fdd3e564129d721e336df43d06224fdbe24ffb731619af24bc4c943f8bb788a528779d18407bdc2966a31cca82aef7df4bd0f7c5b57eaffa7bd995427ca42bba399df97c6fed223749d9fa49a4ca7c1a7d74353b982c72d0e0466ab037bccac29fc8be5f1bba3f8b19f0cc9033c8ad5ac9014e54766f2d4edbb824074ea206bead0d5ad2d59d35e3998727cd29af235da68960ad5c5771ff1ef6fd20c55f72bb1deb8303c479e9028cca35593650264e2e4a3996294ed5e5a17c745b951da73c8ab2353c21d2823b3c4b76413a27311c9e1e656610fe51721fa6aa052aaf246ef480b381ba9ced74f6ef864ece0d42e0d97f12291988815098dcb4d9e6ecc87640c7ac14705f575f8cefd19ebcbd5b7de614e2169f0a40dccedec9489cdee76bb662b543b99ec172d1dd2de58323e69b6ed30836d37766efc81487ae15b64e6f814599cd1e9c034c21c8c231d480d6503fb0656338bc99f251f4ba138f99bb1b32af4c5ebe64d5c7d661c6c2175fc913cbdf6cf9253568c179756705383e94ab3ef57a87c92fbef5d440e1bae7517822a9a60a4446772fff1397ee28b752e5347bdbf5f3070d009efe294fc39289351313badff21b6584ef36f39aa2a4b9f4eca77c877b4fe3da9ebe6d0c909a355723673079c5789517c2bd63f6170b94f0a4e1c2e82a10bfc0d68154a2f436b7bcc1a70166bf030a5087c7b6a013ee1b85982e70de49cb7055aa399b64b8d1a3d7f0f8174c4cba3516b0377398d4c04e6336f5b6bee7967b5376d9ff31a18a97e25e26f05ede6a53891034ad271fea6702c28462e17c9b53b066dcdd093cb3d72f7e1fcad9bb390c99daaaeae679492b268d898fbcbd97ec993dbfda08c353c5b97a74695fe21c6ebdeac817885daefff30e99f4afd25b98278e83a29e20a41f5fa5db6561216132470e818b5b425dd9a04dacbac0c54f35d8cf2cb40e78951675d0af0bf1ce275402a00b1cc1228ff401e79fe5c71deaac3779443e8ecb482d99246ecc9bc4e1f624f56243f7fdf05f8a83b14cd54c3bc24501580b915095ecec273a3f35a4d89cc499c653fa2221577fa60623c9cd633078407a7e17c38665250d59b1b0bea6ad4b4938bc658f376d6d9d2710668b1819722bbe9f0f91d98318e3b6466c59bb4ca9e4015d897a3a8728c880d85d7124c3ca4abd381b078130b2e85daa8f78db7f35652cec2439a7a6e091e1951ad6e4a87da414014dc026447b1c024f60c79da583f0076a7b02ef83153bfe7f46c2cad6dd04e6daae7aa0491c1a7b3fadb1ee3b9dbea6a5b0c3f6f87203ef4454f9dc9926b6561fa31a7f10867b417fb4438cf65e7960d1a21a943be059b0f1890c327e03bf0efb7217860faa3ef4fa23f08c25f2185027b2c517e84b78a26a50b07b9da9b1bcda9bc32c97ec23d40818eed56b9c06d59d2852bfdbfe370874c901793d5cee8fe7ade31ad4ba944879397ba3c55f7c12ac339741df7ffa8b4aee6880be76fdbe93cdceafa1ee645b375df004df24ad6f1ea2974521523ab7cbb849fbd9554e01372ae47f2ceaac3a7947415eba693e16fbd7b8e88018b67c2e19c5e830ba3916bbfb78cf64950db7807432e7a6ae017776aad93ba8e72fad4bba60572a7e9f3d58d9821b41a7eac9eb084a2c871ba9c4f715b8c2f6d0698476d68aee21b9d8bd617b2a91d0e48a0a954b438b671768762d0041f53bf05f1ce59e9568e6a9005d223a23941d409938044b96b864cc0dc63178d9c24186bff6a8f7f3118802c8ebc8db1b39e00035b46e90773ce2d12c34bf266d0927ea4175378a374c776f1fb96483ddcd00619a0648028ef11077500475e0111f8a5be16282708e0df373071bf2d2b54dea46705762587f87c56715bc2b8c5c4c83ffd468a0fa4460c7f5bcea769299ecac07f3f59ec35d039fa538a859cf174d6f92e09905511ee05b124b042f6e0591f05a87d22eabf33b7d0f55568732e9d28998cbe74bf52c40121744c9c89d0256b7eabb0663a1e45b47f1141ad4af95015817c3ac8b6332c6f4b604a0b186dd0af02863490df29c620256128b8add02f1e2210023445673cbb4d76d7072ab0cb0d8543a7a706c13a637167e04c526c630c2c14cecd36e5c3cf98f72271c7a7efe30da851ac14a734cabdcea2422c40f3ef606e88c8144491cfd303137c4cb04df3c7426d13559ded1629b464f896603109348d9ea131c3e007e758f141127ddf196beede8a7be9984fb2a222affc51c8d3ae0f9d4fac96a91fa2f7bb7d6176508d31d64cec3082209510ee4228a86121467eadb780781db0e4112021ec32de2a9f029c594c95dd5d7739468e62625c6f585d53bebb48fd2c74d686cc91a74e5909d04b370ddf51cbbefd2dee9ccde33f3e1c9d9a5004ee4a379e0673f85743a2a4845043ee83d4153623267e182c301c85d346f03d3bd149bf8ba1887e916821c02651bfa07465e946187154b836741a1fefdf3c4f79fe43ca8fa98af5af091ba32d46947905d4045b2f17de470e4339e463a8e8da6ff71292e71064914d3709019241ceb9afe4a82cefbe0319b1c64545f5656659b768e9766c0c1e986b151dd20ee6f51286bee39bcb460f85272374a14139139bfabf3d022abe9a874263e130063df05d09d9ab033be65c54e65297f9dd31f5960ce8cb0374f6fa41d343a59aeab213c017090fd158980661fc842e2390baff9fa0f222bdc22597e7c0c8b092586fa49d3176c8c333aa06fb47f01d999d399b1915e91c557cfebda92f47232f2c7f629665fc69e62f16db7f0fed1bb19f690fe95e12518014379e2c59424179bb07ef8d237d4c4e56cf8d94ef06f56ccf1d2bf60fb8d528c9487c44a48e8adce351a7aac897e682243a1b595bfff6955c829b83ad165b4a991da2fa33d6e2168b35e930f650644a72c6aec9cf5762b949bf212f59b4a14f412acda297a105041a9c0cf43f3ebe8821856672198f5c31d662ad91143f15c2f6f08feae12584ed5706fdbebcb7838ea048fd0a9ff06cd8758da7d7c04c909d7a7d5d7242b71e0b2147409c68f00ec2ed666177bd55cdb82a54552d22a49acfc2885265c8f5901bfb387d1fceaa40f06a616ee9c2b7bf2c4c6e9103b14276c7636d1b2d0f67d61471a794a07612c811e45554eeee0f809c484b953d10b58835d6030c285452ae1e47a84b51984457507e97af049c36b8e404bfa1c9bb7f0bddc98daa4f25ba9182e71b3f3257a62f36640edd5ba21d4e09f94d24e121daafc4ec5542aff4731d139b8360a6cf132578067fcbfc0c05fd51676e7323d7e12b6ade4782810e9c08bf13eaea49ae6a4d00a772eb5a462a836a4965ef3569136754f25daf72359e4f833847f8f7fde3ee257a73483dd55263fdb1a392308d5dd56f68335f5feaced7ec764ad3e487598e5c9416a3784bb6b207e4f43342f034b8b2ece580368dd8fb91cc51f465265b0839adacaa6d877e17ee81cc40039e4cfd9fc218b0575ebf1f7e0c0ece28b67e13ef18cc2e5d5fe2af2498dae4209056a1bdd440b66e79140ba604a0070648f41e7493318d0d66e0a89b0ef561b73110cbd106ca99198157d3aba6372f24c044a282bd676864aab9a42e361948e41d52d413d50db79f606c8e0df5bf78ec83abffc2ccbc8ea7869f9930ccbc603d025bbbd5aa6ea129006afcc6ab9180e0d0ff4314f3eac24576107e5349170c83236805bf25707d5b1de14513dbd50613363aced9f1fc61e6c14b9138d93f28bef17c0d9ac14184012842373f5a6b518f822162632af9d08c5dc8eef883380e1456ab80731171d548ecf57702f259dea0bcf89286421f8d5f9352fbdc97690c3077a734b5237da15f6021f34989b8330f4f10513761561bc4172cab6d88be80c025470208fa3460ee96aaee3cf288e697b20a35b70d8a9b7974de387b13bdbfcf48b5692dfdbf1cac2afb5531c9631b8b16790465aaeae07ef1054cf1c1280b81cba21c4d3c7265c97a74c8feb9ae3617d4a8272c09b9eae7737eca4da4674c749f1ee6a020217d83fbb0555261e3f4fbbb0e04c8b6957f3f2c7ce0f9db12e9689afdc4fc7b2c1d876305e99525faf91ef696a9925dd24e217d4cd8bd2520ff55e0b3cd151949af804ebdd00863189d9852577f1f25e57c907d05b8a403b1a988a1fa86003fa2e59fd76186628b274fca1027b3f1689b3bdd2b34ff06ddcbc9863f776021ef527220a6e695886252d748019f1438858b1130c19a596dd0b14efbf7d5dd2c2f011fac889b69b33e3e7e166a05c107efadee76ec695c81843e8ff6c300e7c405f439037f5b9a33d7c2683248ea28e1f708098925be6c889e6fc0c389a10c3b152151330af571d2e8553c222dc97f98d82b24aaf0e0449269d5ebd86d50dfceb1a62bbf50f4965ddad4ca705ca42603ac1ec6272ae9df4e902149f7f995490bd42e73ed1c3f9101511e860dcc4f7278c84bb0ee359b6e62040f3a2c293657e7c86b95bbdccc96402e695c0e1d32c85d72ef0bb56a0cc30824f669ab110efd6e49d7253235d08db78fd7abcccac9807a425539d75fb94561afd96bf4834bd3f47f3216aa79de3a404b5c3efb0d1f40b433d182a4fd5f2d105e8d22d8745ca7207a2526b05b03922cd497a176f5a8446b690f39f7e8c4f8dfb10f76567cec8bc6a56aa21fd80af6b47b5de95b54b533fe6ffb17a5f282b6ba7bf59ca67923780b6e8bddf4e3bb2cab87d19f1909dfcd128cea5fe51afc6c0d4c8f825a39d4db39ecdb9f9c76d103d892426548c53a7ad171b0db20f5114d4687fa92279eed25e04b665495f36a8f7651cfd0d6248d5d5b62fd5e20fd7ad652ddaa6d1c67b482004f8dbab610440df3371580d3c8f9022ebd9c21dfc0c6e216b982126af9998aa549b0681aec3ff10d28be96a848c7ec0405015b534136e2f546f6578f3fee640f522952f04832857acbb79e0452862ad01582e4265cd93a73e8abd06dcecfd3e2c6ea7a05ce798b81d703a4b1cbca03d9ca7a71f29df9215afe7816db03b4491d54adbbf59fe64eaa24b7d2eb59e6f9959bf82ebbfe83dfa325d9e33c04d1e3a0193c3ffc14148d6dc7a272fe06e6a3b64b2cd0ad2f5494b0b4c7340fb2a1acfe1ef10d40cde001c63f976982f8074731e9a2c22455032f0a65027601a474dfa0a9cdd38ff8db38d66ae1bd8280bf2e5c8ad349e2029bf46ed7660c257b4d8f8ffbe9e27589d4fb2238b39000503980979386b2e82c9cd9e58bde27cb7c49e1a123c37238de48a442515a44701b34baa5fe70745a23d5dbce0f0c004e05bd3478f0e89b096cf75b2560687873f85cd685f2a4f9ae8ab8e58b52ba4b882733679408dabd9ccc1d79ee6ecbabd36953436f3a076a810ca3ca0c8802d575494763b382f9ea9d3687c60f9f4378cb3ef92dc64cd8a2d5e220ab4299e9c8695456f32f1abe8b397d05a812b4674bb68a274765388baafe11a4a292f70b54d2bb5b591bc901a8b5a4a0741e49efeb20ffd4df389eec1f2ccf0f487710f5697471a2ca380a5854bcf7831137817510119a6579625c3eb83d719ebcb95834db5a1942245c7badf0f4713081c1b37abdaec64c9790c804531b3bd28e6e724cbdc3e8ae2681cbbb179ed313cb7a3c4bd92bbc3de05b48e2f8e90392e3bc5a62da2cac55f94bc199b2e153506f31cfd1524deea927c37636872b3dfce25d71410857fd7306093f879569499fe13291a81adc6578b6fbe730e781765cb6f1d4d32649f7adefb899f7920314cd50d345214f180513b483346da8024af19dac8c041047c0110a6251fe23c1e4ef20c76bc20d5c23ce4c2490eff2b73f37f9ae585968c0f0a19387638455f87bcd2efc5c21de38c31b96bd595b562a15b35d9d503b00925fdf29954e44dc22d8d85c73b0b80c95a741629706972d0369f8e339cc49beb101abb47f11309a41492035ca30386dae3b46fb270832d6399455939f6347886f91064d4b284f7c33d963ea9be783e8b6b34521231efeecf11826cee465df492af6d686564c199e775a5ab5c58e370f7a1359a29a51e090be0db224d51dd04ac1655f135b4aa705831d1bc5726559a5c1458c52b41ec06d15f14e4c1c2b405d31d57131002219e62780437327c2fe59c2dc11d1e308358223dfda2aa8da227eb475779d87da96ad8e3b890b6cd0dddbdc634545fdaa737c0b83037df1325573dc4cd13049628f68fa99e8e63018ea369477f011dbc1a11b3fcddc6272165c2f516e3281cb60b43deb88923eb92e0956f56d371dd8b0ffec5801b09bfb595c2a35128703e557c9c24e73531b5854aa6401afd0ef4b0f27d067f7105d7a09234bbdbedba9c547611422cb4275b27032873098db8100af7ad48788e1915ebc73b15cb7a08fcaddb5f1def92a92ca2176f414b5c5bb00326b1a3c8577a1011ac016dcca6cb3672df331e62134bab5f3e7109a80c24a7feebd8f34bc819d60d5743e49b9895ba176211b1effd3a0e3bc487cd0966ba9d065b6355124fd7663500667d0dab4f07191996c9b6e723bf83fd8db48cb30d8ed89d51ae24a02437df6c5aa1a5baac35e39b045a17fbdcdfcfe4da861f825c493955ee245929d5b0e099ce9cc15d806c14b031de4e9591be9ed1ff33b4624cf19bd918a2379da2add7290c1d50c9386b0a6ffed1244bdf64cb70c94c00921880189b4f59ee450d01456269ba1964ce02c11e8335a7260a0ccf68bb88cda7183fb219c1395612a3ee76c1616a994a1a9800d8ef0ff72fcfa3d3532241daaf2250ee2f607c078f64ae437742096545aba6dc53f1e824938d4d96f9e2f5494e9624baa9151c7e3df3ee934ad6d725f4de39827a194c1df576e119f360c5a5d13005a261ae584efb704ebdb5a3f9202f3b74568d644ea5c93768292232f96c54248e575e1233696b7ce2ac431ff74fe1c10c6506750367bc10a1aaa6d77935504e2d88aaa6f5709382b4e177ab3c09dd3fca1e8789020e7faa80c03b60555c44d4a803e178a81d1fb23f37cb5e9a386d650d687081eb738e05abbd26ab3f4652df9532a7f89cb1fb38f57f874fc327a5cd45f7fd7ddddcc0c7fce621fe0c30f1a9e0dc8f90e37d3d19bbef8b94d1d6b0f77903ffcefd43afd10206edc3378f1b9549402065d57681ce68564441bee4a79bc24286e3f6b74b767fcb6d945e029884e376f1dd8ed83c31492a5d62ed07a5b2ce382be874c736e7eb018a1ac3d13f54972d28626bdbac81a062fe679f1624005ed5b695a8fda568f08f2507ccff64d29faabcde91785848202297797f9fe8e8c7625574c76eeda7ec4aee0383e9b94d0b244d42663e56c6733184e61712efe975c4a7808b54fe1f7299df8316775c6f3f6674171635c803b4491b4658772a1064054eb1b0ba6ccfc9e5a76258dce6cb73cadecb0fd33f27f52ee5e016ba1068a536c554783bcea36be0597f3fe9a750327d97ff8501fca4bb9a10ac8a7f377adf9db2a028cc83e6879213e264ea6474db14486def3033017df66777ce8f8390cb33f614899940a780408587861947dd23786499887ddb5428e653ed64ceacadb7721e8667f4df986d1c82a0079ed6ff91147d7bcfe3a2809ea2b4abb0c218d7047517bc154e5c1597c804ef6d1d2515016531c2078509fe32249c0b79b04d8fa9632f93e844f905fda951ede2db89a822c87c27b8fbcf8a2d1d33256c408025ad34ca76b8c0f23cd30a2197b56c91e7f8a657882cc02b7f4dc4523c99b8fdccb0b95ede621f4366fe0cfbffd7f202d15aebe617f39c737b416f9d09f4c4744563fe962e487152159a6c2f5d5ff11c5a75c6b3135f33363e2efd1f43d5cf5e3b0bf7ad01cfc5a09d741213cd06ac6ba347c7a5d30990ecdf2d11c65e79ea0b6e027f6463e087bd5491766df0ac17db602541b9ed4acfba65ca1c2bc87e45131736a727fe67ea1d94a5d23f5ed15ae6aa3502ac6ac3d1f098863a92aa6b392a05a9544290d764a4519d2450151dde0689f5591ab6d5003d5557d80eff26dfa35aef2e3441a53feb6d16012252d8ecc4a7b26fc6092a23c30b233228c67c381be6b3de8798c930a4e7e335479b72e50bd712e903912a41890d489c81339ce8099a329cc2e840089ffb8a3c3269fdf9a31f8be081668799ec4b179e51199c7c4dbebe0d47fa8c6c49d9c87cf489ae80f378e92beddbb2a510a254dcb110f343dd143c7645a332a7b9fb095f92445fd4696accf22430632e7a66b8d311b3fdb83251a63313c33b819667f02ed74a10c5352e2795fbf5157048f86f6356b87b7926f08b8d83c8b32f6e06d5cdd2bb6298293dc3e1bdf2874fbe379b2770f410cf43b48ad31b842e504e1842356bd41a9aee85b99cfa283c9e0d5ecfa372fec5c7d4c8dacb3c883ef5ae3c76c9ab6ea43ceaf3fc554419fc6e9674943d76c285de28d4c5719bc2fec202e4e27bbc1b8ec97654cd8fe7ff517a0cc0e706cf5ea233d80f2904a34b8a1b7e13aebdaa7708a2511b4535cffb0b9334d0b95862744e5505d4f6639aa1845be74435426e516b0f6101ce601198bc2a2c896e3d25812398dfe0b2c2a6a6912682d48491d364afa333fbaa72de263de66c675fab0df39cffe717f8a005c2dac367dfdf6a36aff329db8e6b77ccb92742fe73588f006199b6ba44f41c18768c8adeac3df735dbf826052379deb8485b4787da1aa786bedf175f0be9901996585e82bdc7cbccdaa6e9727b9080bac57b4f32d7da2b526e96466010ab819b07f33b50635dbc768a872b33393ff6dd716ed994bec04cdfcec95630f525dd20a597d5e655117e4e2347413fdf693ea6c3e06d0d366979b93be90598d1d5887268813f8e0ea9194d553adb5d8ec8b48b95bf93494f667c2f854b0335694b40877c71acd8d7212e151ed6556d656558f31fbfd4e51dbb65808fa5c8487aaec318382d3aee642703f4d3349a773521625877d7d1598a6145cb2195025a293656404bfecdd5749e6b0268938e3103302ba2e4c267a299c4b54bec1a896abbb38cb49b31014d7e1b788f95d616c8a19963e0727fe35b1d4536ad7419e8c386056c8264971d01a16bf93e9001a51c8db798e77ad2463ec4b9557fe6d9779c40a1d75b2f052a3b210bd385c5bf59d30bbb0b88cac19c2dcfe8ac14bd870517941350d526d5065183ae1d6e71dfb4d48b27d85842175e50430fa956dbb30b5f3d76012d12639a6df4bb19cd19d2d5241e546a516ae4e5dd4d5e2658edd17ae3b9fe217504920d820ecdf1547e2f4c32f1ed45ab8afaf596b27bdab0deba11f2fc6ea03b6a4518722d314d2c2f3078feaa721cc64b724b1a8afe8eebc72846357ea22209aae55dcd7b6bb2f5c6327bc18eb63308bd26438749f32b91f43dbdd665075451fde1d9a795b1b970b839b8eb6b621cf5e7348e20095b929a8afd5348901e84ae802a5c63206e0f1fbb69e4a66e70b8f4c181f6e043aa4653ebcfb7f5a1fd9482bbb3157cfec14697258ea7380cb0918464333334d64aebf61c008f6069cd395708f734aad6fb7b6fef95cce86f4680cdf036cd45d6178b936b3f31695c4d8597587292ea7d25c7e9a711024dff2aa1d768b91398fce2b3faf622f0c5134dc87cc7276d4074787ecc69b72a1cc7a69cd615ae20d5b7ee60cb12a0efea4534c048511937420ce24810b8e23debe3dc3c48c84ded0bb376b5de34968ee4e87b1527cdd271c30588004e3a10b875443e54df5b9176cb892587a1ad425fe6d0302a50f9df9a2d5c3e651683629b537514f4746eb9f1cda19cb8248dcbaf90577438470251285ac9119f9d6520003f80f9f27926c91026a6ef63eee6b7a22e56fdc04d6f3d95ff05be9064e333354b4b5ec3a23a075720ec28d5d51d72d76e03954966c73d7e032138fac965aa70af4e069ac7297e7d4a1ec3547400cea25813996b8093eecd435f266badca351007ea88e432b77ee752e631c2f4457dd77fce7a32a89b70f9a8f562058ec6ad69291cd10fd84c1a27b2f255fe4b6a991eb9b340ca525ee94c93977b0fcf418a2bfbe29f9e2cdaa89150a10a2624001de0d09d027e22ca0248f54334570ca26b4ddb1207909d2345e499cc9a9c044e6abb06556f06bc33680aadf30364a86392908d07ef15db3b4ff8b0b448e68073c38f4fea4828875a4cd0eecb9279fe026590c42a959b740de987b5c2c8527862d114a038e3a27410e47ed23f426ae2f7ef62adee061c7f707a024ef0c277b0af1f03c26eaa6e23c2e840561ca33958715cc91e85a8c83f452e71e7f1527b549d9ecc75929a4bffad153368d2fd8ead9280f04d4eb1ff1472736b5dde8b2e23c923e5e283c59f3212ad20c972cbf75e2e51c12ab4ad9217707e1bfcf2eff75597e59a9826d0a585faf54fdab73bfa725e69c1c5e9fc5c2e47c4520e3ff88d8acaff7ea1fb75eb84a0b65ea829aff734e5858361d0512a8e7781ae6976938139b8f45d6ba602208981be2ec5e03edf79f408a8111634eddf5334ccaae6a098833025c8858cd9327a675ce2c2ac33b0d8d4796d097c814587bc218e138f73f85f7f5d2a79feeec167a2e6e8616b8dcc80e900d1fb14e756c301cd6f3da7562075e44676381e4cd8509a361bc42d7e1b98b8ed3e2f366aefa3ef86ea117505b4267ef15aef0590fcb4b129e83661edfb4af332d326c8e2fd0cacd9e9ba2e3016a2eb530d2f886c8fc82a1f916691f406f8f3e429039e7a58421c1a507dc9fcd2f3d8c2a0bb40267a66627e760c8262a221ccbdbffc7c31d3b5fcdf8aaf0283da6f3f7cef7b93162d193d2f746a4e39630fc79de299875ca611b385373ea44f8bf66320134ea52beed4131f4e25f531404939053282d22225b927aad77002e38ce083326dc25067773dc7c02c5037349456909aaf1103ffc339a1b195e0f4327a9bb09c3fff965ee590e18529bbf9e0f06ad9a85f0dfa416f66b14119d318265c419128d54e13bcf591d869ebd66708c1ea609c791bb78e3117c1c66b6bff1af4b4a0073a1a86bc950b926953bfef33bbf19f8928e1d35c2ac7acefec620660d60c064d8452a2b1c0c74605393fcf1c244568a4dbe72f78d48a312e573cfebd54575472ac8ae681ae13c1c336df5130e15b22c826aca8809c189f3bd4226de8380156d2f5437124522bbdac865110135b66fcf332780369c7dd609221e7310e4f69872ee72e6e2a2826e3ceeecc791b30801cc7beeb80f9a85975f0c4cc8651c06a0b29d362f032553f6bb8bd28b0d3b675430aaf53ec4d2a39d8d95019e8443de8b3ccf0cdcb741493fe01d7cb477a50c7d0262f335b55a0ec3815b9972e71f8a12f030460463876abcfc1cfc0cc818bd4c3aa61a03b53f2b1142fb78142d370e08d1e96b1475d6e7637151b810611165929c7a056c260104d70f53e81275c0cbe0f51be2904d3327f5ca04649d48380a55fd34ea043e7b9e8fafb02bcc6708219ae347ae4fe21ea848b05470824e5cf3dbfca367a842894d95818091bc868167bd24396dba3e0a9c8f16ed43bf67ce0c780c87c929bb6903db2e64e400011a276805f2614aa3dc5ac5a08d74b993c98732c901e058cfaa3b166467edc742a7054944b8ed2e37b6b7f6b84e3364752e9467a0804f85daecb97f4dab156bdeae60acb2f1a17216f968a9998c7a1189ba4f74dbb9f781b6265a7b78a49f8917702d3fe1927e54e0249c3bf7c269cd02a1c3d64551f3dc2fad4c11f00cf0eb06f9fe16278db160cb31db2ca6e25ac5cc695c35a2b2c2bed2d7b45662beab5d563950f909f6fbf8212256f6a2e28f304698d2bf7b03bc6b208fc5895c0653b7c57a17ae348065e734614cb1b829d7d30c2c7bef40170e7f76ad5e8e9b4434f24442069070e15630588c3ff22b3db0f52b434c52b5b08614086455136c3e1717b9799fa7df15cca1ea6fc81430f0d020ad5a1a3989f616fd96381eef0ed2d525eaf196facd672cbba8199ce19652cfdc9f03c2ea4d48619145f3b0d07f3ea0dc0625c0f3505d8e2f58ff24cfd8c11ab4f83e6d811a551e327a879f561de0486ca78c7ff64a9a2b54b5a9da039dc8dab1b4254af23df1a7340c2bc094979f538202f35881a54b691d1fe7a0440b29860a292033fd7f5fa0c2b04763471d2385504b68e9acf788c8c0eaf16892af18b63540ffcdc997c9a05131ace1d97bdd1f551b236a263ee8c82703154508c7c70b5c40662f175af928ebe84bbe3f651deba97bb43e6d673f678435e6e2013bd5afc22fbd83286ec5d7ec716694ed1683c3061e08a08692657247fa445e8ef21d75ff825b6fb6e34d8f55d76ecba73233eb4b31f7a6b730c9595b484fe0e559a66d695ed0223b9af4f053da24c36e5656ed008eec288e78c864fe414f0a89a1c0bf6ea734f032d2625b39b67d882705365369cb5d48290f41a470b7ee2ebc120e4998c095599b787fc050feacc01c0daacd2b751277b16f21290c37f9d7c2223dbee8ab568e4f6657df483234cbb2529b5a7c4935577491b49b86be9c66f052860b956b3bdf24576a35cb25da3fef632d9624bbf07df68678a13e6211118d33236e65df1774304139f64acb8e154982e73ddbb0eaedcf3b3fe7927a1b9fb41cb4fb837928e68dfbb45e777a7bebff31601fcc62c0b2b0e3e213b7b77578ba681bb25316c7e12199012cef173d07e982a599d52ba8e19ac2c494798c5f9731c63a035ca8accef1ed8b67a95b512d5b06eee8b93cd7fd18706c2d1613f96a6c3884a713daa580a4d7d3aa224e0bc884f2825a3a56df725593874ed73b0c76eb48847ba7abf7f8c5e8eac3b96b568175464b79a0e17ab78e8921de66a75dc329f01931717700e18e4bc636425cc88d84970292af43c877d5cc819582a0035b74513d34b9398031912dece5bd3122f8833604e7672c019e791f2ba484756f2fe1ce4a44603c422be5c6dd5f8314523f4298bdcfa6b7bcc45630c32c11e92f423701ef9c290b85681a208c83ad67a49c5110c126260bbefa3867707ae106029c04d6c80a48beae36919f2e0d76498589f714269fc53c194a80d762305cd822ac2620028e6ba056b72ce8f54ebc4dbe0109f505dca953f384ba4b266749f4f2cc7a610a62b6968bbbc49eaf124a751a20d0e9e3e4a3ee03c6261b7d21a2c2f3c546754164838a5757dd532531c3a6033ed8b56177c95c035965b75420e1e20cf88d08aa64b1f027ec9f8399ea9963ef72794e79fcd2af000843cbfb2afde34a0248bf352ea16fb3eaff2f4d4652978644cba8643e04df4b117bbcf1a108b11dffa68d3b24de0bebb4565feb5b4206c9be659a8345bc3444c6a3dc0d4e7026fae2c62f4d4a302ad729beb142dfab0ce4c545a8a913b05ce4dace11396e21a9ef2c456242cfd93e00faf089a53ddd227f0bed9a998541a7209e7d42bf841b2fd6f8f21b28b4ba2a0efdbb81401bbf9514ab6ff4aedf11485d19e2dd19018aa8439458af5339419ed7064f2aeeba922fc43250df3ebcd944ff29f77b09a9f823b6f688ec5eea6d4f917048db558b2862d109bfcf00ece3c8d7c80bdda2d69b1c04c6949003cec1dab80b35b1c5d1b2dbaa222abcf6237e9efdfa02341087199c687ee7d078e1c461e2108bff8adef94cf76228fe40a4d979b55b5173fe64d6c90fe5a633e96f21e1fdcd99904011caf6ba5fe77c6d58a5ba81a22af0f6b05227ab6eae38fa12a18b263185d1efdc86ce44b77aed0e1ed77a47ab40d51994423712a01e9e70461758d6bfad2c8bad2375f42fd12a151fd9f0faa82958adbfe3775e982acb899a1939babf06ca8d47fc5592277849c1085bcde70fc2fa19cb5ca1e855447764aba7d7ab2061b0808dad5219d30ef69a7340df9a476376470ea9614d058de1aafa21efe879b1e56654a9c5b22eee07220945abc74bb6701cc7d67966c88e0a2b98a39ac1f9cdda5105bc07ed65e6467fc00077a8169c38d4efc9ff4aafcc18f7262ef3f9ba9762b92c01f57d96633bb36a531f5c92b8b80991cea15b8078165c5ec01275dd5b9c1b60cbd84dcfb04245a9acae864143b37b9ef86f21bb40b2e5daf3405ebdc346600ad90fa098ed81ea5aa6b7d0ba401711d86711988454df890512431a00f35bca61644803a37a6693e6205d773484bd3210bb72bf6944452603cad343048fc8a274239317c2ac8877962f48a7b5bcc642699265e166205d37f8d824ef9a3e93867d8a2fee81dc73f2b29df1e22edea113848c1fb0df4ef9375afe6f126e2015661b3db2acda8f01d0ebed08f53e2882a493921e185a3bbb0c5288f44a494161569949ecc1dd043ef36f860d08232f6e3f99f640009282acb2e749da1de8cc6ccf93139503f3bcd49994d5f43144e42d4f00c08dfb2c25a88f6f33e17582eb57417ff57f61bcb81029c5e614298f73a7ac37a81182ea0bd124652f6e80991a12d3f4e92528a8d03b5bdafca9ad51926b46edf5bd6020c999496e0c80c979d79b7e7b170ca0347824149435f0ba464ab465f44095d354febc12dc88aad4e8d20fa91bc411cab0c164a1a0537c996ba71590aa79f823454354daa1d4da9fe77637e6982b3d5a2a887b5713af4fe76b9abf915243b2f186a6371a029811396d981f3747ed2dab3c27730da6773458ee72d96112fcee12fc19a6b4678bcb29739c3ab56bdc0e343073ba81c5fc731c14fb084bed8be2ae17a2bfb308229815c5ece1b9d6f32fb9bc68ed0446738c479968c7be865ce2fd66648e81f00992d26b6d95ea3457f027fc67ea1b5b029f861d1a017ceb86e2a7cc76e79da3bd89a01e057b20137e22b104072d44d873c3aeeabfe59194fd7e9d1b799fd1bf0685f797e76f88d97537e09445b6a9cf4c4e9b7a2b52468d6e14d860c76439089f74518bea038ec9b435742ff702525c4a7dca75f56c16499f4cd66cacc22e0daf4cbbb393a1bafaf5de58599b20cb51b06d9f080c45b6e4707f01d8c43f3cd9588a5b626f26f083f67acb9a8adebc619af1fda548b84d1d81cd641716312621baa39c3f261a709d63e035472a8d0f72b2cdd595431ae909163b0b270906027758d21c6bd255974b7fa9722755d8f8b0f61b87f66f5b3bc648a4449283cc47789baab605940be1a4d28e660f5ea3f01ae2449af36f84e5d3ac16ad58328a5d8dc145c53b86735d01338c51e8576bbb747ec9daa2713a0e9d947916cd5ff726772d268b0f7c9c0e9e433dbf6c24923a29e9eb36cad85ac507b653a0839e11a569de03cde6bf6854ebff72415c9da580c13e901d41731da9140217c745dc19477d57df5695bd94e1872476e8d0648836fe4fcf01c185278e5191a7f8e0ca959dce0dfe6a951240ac4ca45df017d4c8e56086f5b2c8b863475d66a01d30cece57ee495163033104af228046d999c96a952491114aa5275a3a4639dd43c366c39002ef6bf0c7e21c4b7991b644638b9c7ff9fff60eb469dbee97c4e5e73d4dd5c74c84fd1e05f7ad47ddc82e45c4ca31e19f8c876ad8ba760354e491749b0cbd53e2ec86cc08b51f672f31e617991a8ab9dd38e03a0d118c9ebca900e8a5aca33ffa9c56ae5f9574d8b21de21b715aaac047e33a8bf4e641e6dbb02651a92e3858d3887d331fb321f117887c13656db2482c1327b807732e62dc3fed064dfc3e206fe1266824ab357c555cbb1f492f55a5b508d82c8c2248e5fe1c11b19bf9de3e99ff417d1051d0290798bb3ef56685a4b54433bba027fe6282ef5a13af6062443165d8b27b9a7d2c08ac3609f6e3b72f7d536174f1ce6a26ed644d57ee94dc7e9c5159e61e5589edf38f5a3bac6e3b673eef2fac127d3db2b98b2bdfb11e6f0cbf560ddbfac7ee00c557d3c4eed417ed7f4c0bdc943718b5a41bd7126e9934a4bf1510c4a8f5b35f286c13e232f5ee3e119a9aca3a55b146cf364a121e6f180a9695fa2016107e1427fb891758b3b45ae237809eeaf18ba512d8a0d5c66c1c584e8f248e4e32449ccc9e871faf747c7783ba887521a3e2415de230a7f9b3b4d6465805ebeafce7616a19ced36af85d172ff16cf0074e1df00024f04add83fd154504176cd5109999465b3692683868ea74ac7fef88a57db588c48f60fd9cd0f95a306d732ce1b81659a2b1c316eb76cf064892526824ceca29ff8f3b7d9b34852ceb5fb35ed6a26a4893a9372dc479ef98c48c848a0ed4a7f56d4a1c9a0b9c1748aec1157fed62248f2882c50672d9d560ee960b1213511119f81b9fccbda427ceff77c31fb26339661f69c5ffd61a3a65516d9ca9667c2f6ead6896a00549a6c54c3512e34bfbb201a176a9db07f2ec9b41c14759979c1d2b58672acd55f18cad2a3dd06f1bc4058aa7a71f3a44a8322c9ee662fe363d4632405694a968114a67ced1e17af93ecab94ab620fd98e29f0b5c218130e63aa2d3efc7a792f2564bb970f4580e7730d3aabc23f89c3f46aada447e59d8abf52b183f1402aea2ce79a6f8d3a1b87169610015be159fe14d5873d507f4c9401c035e3956f67c7befee79089173b82039dfd92ad74a17a20bfe309f309052f644b204e974b049a440da57fc1ac3f2e0ddbef099ef6bdf6e7bdf0f28d9e5177f132dd70b12e9b371bff8f3ac8faf74a852fe7388cbbb1b0ea2b4e4ecec96acff112584f2906dc5adec08e1d06b8d4e5a31b7538d0ebd98e59a8bf2adb0b12b33e7104c8d5d42a1198c02bf584d2ea80b345cd41e103f538a998f1ce03593c3c9937763f552e8ecd5b762255d7e4c527d9f865ab495079db62a14d9ce09b8ca25b308af616bded7afedbfb837ac30a5cbaa128a9b4773b8f602edfc7a82e9e3fbc8b1ecd6cc0a027aeebba8deaf4e903d65232b294f0649f87ef479b9b631fe25f5e5b73f0884c242528994f403362c4204224ae1b86ba276057c42fc0febb79281f8b4b25fa12b01517d38e99ee5271584a044c80d932c59e1d40d5eab7d765042c837e6610118c34c0846cbbc85e7d8d69ad24d6dcdc52d2bb7a97ebbc18f101449c04df582d10fa3296c857169e939442d08a105716edecf23b93052ec2c3110c3ba57f73369bcafdb7651e6521c56d99832a226512b54c44980d539fde56b28ce82ea5975178b8b66fe04af243f431da64da8df7af0e3e79457f869a3ab235affa69670eb9937a7634cbb030ce67c29248402750a052ae1bff058d1b2fff71c6cc8757b5ca98845b9b815f46e8af49f37a2b3488dd2eebf9faedf2133cba74068810cb7e665366069484d78edc46985590c69909712fd8a86d458fe6728d3f057c91aeee9c6eb91cb5717318aa978aafc50243158a29f9fd1eace7ecb01dad41078e419fadeaedc598e716256754f122f1de773de4820d940ed1f1f3a9545b990f750bbf55e4363049e96dac7346e86f026c6feb7d8fbd4d285054bbc2f1dfd20a9dcf906e87b20dbd9207d87b02237b13b100da9e7f08c908e20c79bb6b9b13978844e6db46a91164305f874a2a7ad208d1f8982e98b6f1d10f6e552a6d3569a3f5d8accab36976c30b77cd6b26ef22c213470b5baf10700fddbaebc5752d442879df5f3f8ed778227f006f9f816fbbdab4e1e98e278334ab1943ce7f6af1f86fa90f91f4e83dd946222d691b50dc16fa99003eb8e29ff1f14dc7006f1e9b3def186a67897a555d41222d699e4c3d4bb4520deadee7279da772177c8a1ecdb0ada3321c0076b94f4a160f5152959299fa0372200bb562f52be753ad334a26503ed1e27c8c8436fbade32db87e326be21b2143e97b770ef7ae57f4f490026b01484dac6ab2ba7832c982996a0bd1412c55149a9f2da4a1667585bc25b8fad10c9eb8615ab4a29ec915b7efe4d25aa421f2385972b0aa6b4a2d23130aa9f2d99de85462d751b62019470cead9c456568ffdc8fbe64ebc5f6d5237c3df17e7ac44dd4c73ffd5e14d8176aa7eafd83af1ea81a0065384e1f9dea2b60cd407805c75079b470276ea56e05fd3d102d01901c559f8a864c3d7bb72a3480d8f35c8320821d1d5a6ffd1831bae1a5e21c9563f5d907a1e998c71343e3468f6a75177e9b9fa4181c6d791b79d57aba98ca148580e52526ec5d472611e35523a2a0b59d9a9f44f8ace48c7d7d20a2c977c28f79bdb6c193590bb2381323a74d518ea9a1adb06e22f41212b07abaa14e15b215c15ea60c541f69113165b504d1ee5f90a1eb859416a33a2eee21ddb86964716d2c60601f6efc630c6f4c3d1f211fb43917e8c6ee12dd0bd571ca19dfb8094fa9a351ca34754239f45b0524aabe7351a6ea906d8d4b2d3a536d9b6fd5732479da801bee08a810709d29f396c51d266310783bc82f0530faa0e3f5bcd3a1b9beb1002a3e70368bb052a056b14713ad08b4d5da58ddf36ea660c6e957195718003d841255a1312612e25901f5f5068ad33066c9db2a914dd4323faefbee1df1716fa43c1bfea4b6a049b9950cc5689aac57f62e43e6e28f541eca1f5e586ed371adf289b852e162028d0f43d74843867cb7e0d9f9b5580551a209cb86f3fd1eb4ea2aaf78ea79d1ddfe323e94beb35f8e56a8b5666fbaab2acc6554d4a92e6f28dd768c15566d4d2eaf7109c795cc567c8063c7419d301d5bd75e44ee5b04f3e6eb8a7069bf93202af0c2b60b9bb402f023da0cb44499f1d0639c1575e4c657636e37979a79a9a44a8cbea84d1aac6c299cb290d56a365fa8ffd998abd3376739f1547ef1b71cb8432ba501d177f920577d86954f1df5973669a280c42cd00c6668dc5e3515064829f8ee38002b376cf9db8249ad919fca193d00785bebc0031b1f8c6f34b90eb519da112cad345276d38749042692f35326fdc6fa40549232a3d20ad6036e4f2daecb5a55847bb7d2172d16a8d9ab0e7e73c729d996652b55b65b5f592775002576890104f5aada49e21f0a226a05530161b40679939ece524f3ed0f9250a298d8591a16151f22258e43c009970d80e828414f2f5e7ceb8818c1d7998f0d0b3ac1210824d6a117240c45dddbd18f880b1c8edeeea47efcdc7b2d8e365ac6c0374a2d3e3500ddf7ba2b1e98fea835db3503679094ad9e11f9cb5cbb69e9aec695fe3c6ed6c7bde6396d3c3a795548249382e5054ebe153d6d344c0f48d7f73e363cfba61da2381c4f4c3dcb0af2b30f375356419fa0d447531ab49657e23ee83bb9e2cf02cc6dbc82b478e3bb01005d0ac4076a5b2070978393ba1bae6c8fa867fc744b8cc4dddf32875b55f3e6d7492c3668cbab8f1d35e3ea75fa36fcf2470fe1c039b0cdadbd3f1892b7e3682395e69f74295342bf07c81e3f130dba91bc2d173915a06ffc29e4b0021a1f34af9c180977c4441301934060d4c400f662aaf7a2daa371f445daca0d986fbd5a65574c1115a677de84cda4994b18b5a16df85059a376bdebd8214ddedb76c9ce152e7e68ae1198051fe035e1d4883ad2989d7a695871d8a95a18ec48612b97e8cef4fe550b32daed22e0ba094d11b1420c0752d09c14c3c35b5c8164ff093ee5c586bd325b5eba7fbfd6f812a06946d020ba85e35784c696fce358bedbb1b063cfc6b3eb8290e8a86ba79cb4fb9dd8ffe01335c86b84fcbfa18d61d844acd2e967062982bbe6f5d962a7add8d169a07319488bfdbbe5aca3b862e6a55c657c5d4c15fa8d804a9c8731f8e71eab008a78f90108cf831d80e88bbece0e939f948ca27b1db6ce96a1ac51f76d58c92e4e7b434852e4fc0004fa27cb3770f0eb45a5b1a0283ab2d76844d754180d9afbf08e0d87a4b255dfe4874f06561c30f1ddbe2ae0b06b257d3dd12ca34cf7f83706e811e11a05f8738a0380c0f1d6aa8b134e01d0012e3f9b45d8df71aa8542a2ff638f2a6f7d1f6b7d2506c87d57111048b1d338c87eb191d1627d450f5a368ad3fdb92ff80dc072176822b2bbcbf63ad7a8e382ffe797b4707c7efe69cca91e7e57bb28147dbc11858b3d741d542b97b0d69e99a50b96d0cbb7448196660acf3a39437d80e96cbf0d122d3f9885e6644444b787772146a4c7a826b10266b06ad60ca839834175f5ebc287ce68e7c14b45ddcb4d3f71f7a8da698c102e4001e8255e97d734c7eb35bc290a9e5d778361dff3a0b509d9bcc4d2161c982d1962fd8062563cab93cf3faf140bb79726b84fccb8e823f14bcbbf8052f6963d4cfaf51a6d920e4112cfeb3816000857581ea21bc69baa084d2897e0bf02ae13e9456c377ac1c5b6835e6bea0812785366e0879d98e1dd5877a8065f894c38133178d483a7121575791ee48383c128581c9f919d0e892dcef83de4cddc6eb2be1bae0052b6ee93ca5c92a10e689b97523b4c3602ed10c56e129726726911f3c0d3f0080b8d08c698e82657fe59fd91cbf8d428f55d40342c9a0cb157e67446b1350841f5b6fde486ab882ced3dea2ccc7b9cc8ef694f622b79e03ec08b0fbf45561d2653e0860d7b8b4a8e83c0ee328561c63666829f8d6b2dcc071495394dfffc2c6ef45c38b2cc3fdcfc81d015baab3b51da52fd035a4b48dff733c6e96f7b214aa38da0d2755dd1d053b021edd3610d015d93909a2f89f0ad946ee381907f74b0f48dc822cf87227543abaa9989aed0196b5fd9336c025ecfe9a135ab5b82d7a627b61073189d66b6f62526fc95fcf0e9bf20d74b29a35fac16460943a9efe231d2665b8bec7ea4581f3b94e58fd3ce24499b6f9298aed69d57353057c5a35f964977af41f3b9377de2d5b85b76033f0d6ba3e80339c6385ba4077f322c23ccabee69b79a7f6a4f795f1097edd0c60b70af976f9166dc0eb93dc150790be4dcfec1fd407aa11d71fccaa2ff17d6f36f6e69729459068d77b7c46400561a97f6c36970bce38cd3f3865823fdb949319b18188fcb70512da3e0b4b26fb59abdb499133fc2ca784281306ce46499054835d8912eed39004259f75b0183939502661bdcd78b73577b9bbeceb34df75d16d5aa425cb44e58f172f5a8a1a557a4bd8d43a67877630a1c140bde9a9134d45e872c071642f8de745b5a6cb64241d9bd609e8c6b86e1f34c95baf3045186c9a74c726e7f9b37b28497c9e3bc4be498fb4a4c56ece00608e218437c5e6fba23a699b46c78265eca343bf9aa46b5b5761869d499454e5fbf196d427854120c1639d6c9c8263036a6c271f06b8efaa766a411c7771fbe198d9eb8246259260880d1df70cee068bb2360f595e8a197d7d5f74730178dc2c8baa1f11ab2f9d981943b876b0f6f6463871e9b8e37d58c477c1247da4d2112b3cb2062617ad72097ba2511693dca1bf6f3bac76b4e14dfadf956ff5f1e3605b4c9a82dd6d5d930c5da6bb5c066516af6d433f329337119508f2b910ff69d1cac1d35c4df223a050d8a2221fc1ff48f9afdbc2dff6efec7ef8880d59cd4287881d5196fa3449ede27c599f53164f3b1547ede96799c9efac626fdd4a3c7c25fb07943c98b645cbecb2d13463036ab56eb7248e4ed2af3c8941a1c4efb6374bb6bd478431fee59edfffbb31c774c4eea214b2ce035b1fdc8b9e9d035d726399a4d4cb5a026bfb47681154ff302529c3ff14fbae9be69589a64c66730bbe872af97b4247723c68aa737fdff3ee78562085067b870e8b1235dceb131193dccbccf03b5c3b51689c193b88c33dfb8c3055c8b58057ab2a6e73787f9367f97520376242b2a18974ea493dda9a7b1c83e6c392f134221bc38b2d1d2619a250c80124055278fb537e38cc1676a1fff2d7a5cff7ebac8139251abd8148f8f81163a3e703b67a8723e35907bb4570509a147cef17d778f114de4317d4d80c73e6e49646cd66fa18daa4055e681c4f98625d7b9b887539371800356f6a52cfebad9a94a3e20a908138b05d269c366571d8521a8df789ded9d78562dfb0c96e489d01148153e1d3b69a582a72e86a70cea9937a758679bc492c9871049e3e2faf0eddb37c240bd89c76bee3aa4e55ac40069404cf5ea8ade622d874923b8500e6b33bcf53c754d0db943a877ff0fd23ce10c301cf0f531bcb2b2b81bcc1512f7271beb001c455be09c1c9c5ab65a79d80870810b633d82c63d3b6b580e5e69e2887ab07121a7de4027561205056774e75fd77cc4d13111494f4a30e3b6b692eda534781fae1f69eddff6251a6956eae5c93cd50a9c8766a94a23efa215064f16c7bcdab0475104eca1325b97260ff4ee9979a6e28c4f63892538cd5d81ff218eee684352181d22cb1c41102ec4905ef019411e184e9f4349e8e745e7d23f954d4c941efb6e5340575484c2608e58b3bf05eb5964f2c9fcab318d0bd9e579125dc791b97c3bf421b221ff614c12d6380d0d0e43b36d28fa36b2dc8bc81db326a97b6e3e1196ffbfb2ae1b2d13a3efdc5556ea74fd15727a44b093318cdd8f4060368475c439d65377fac1ce53da963b61faa374c028a50fa68676bdac0fb03bc8fbdb36db012a1d1d5abeb8f4116d338d834dc65e457f0323209f5090a01b4b328060b551727ec5a3f577f4d0e777ba2474c2a898f085a214801b024601bf1434afe00da43139831c47f7e380bfe5e443c05182dd139fafe03ddc191aa8f70f9528e2c35788425e679e3cad8e40e24f575138486d78398218fff24a448d30796fbe431628e53538eba0e649e3d67a621982eb6a205005919104218712ad8e6cdcf6af554a5b227ae7c328751e3093160ca6331134af3c6be29eb545ec8badf9228bdfa6fa1fdb8938d411f2d8c0e93bd27f16aca70d7c624db3bc576baa6b42caedabda640cd868aa7122e4853e2c6777c7912d90c62a67483c7da39014c7f61ebdf1450820a61e3f8f3334c5251cffa9ab256c449b73d97fc64761ccd6c9bfb45243c3e8fde7d020f4ac3b7e35c319274a2f7d6d2fcd5068f494b32a81866b2c376b483a69e6aa51bd0b3007efb71b1c3a1310d58b129c31fa73b476ab24ec0faabeb9b7ceb0f68ddab808f31c724b0e043814439b2b7c332449528f6cfd7be51f40e580bacd093f8d2fd9dc47afcaeca3d033dbaf45dbba4ddc957ae2c778b3bc91cf2e607be7cfef73d9ac3ee7a74d0977ed31fb9b827468b72bfdadd5c70edab7bcc81680ba2e6bd9966095d0f97a9b9656c017d09090fbd44a9d735fd5758aab9e67d58a88c84119075522f536e1b0a6d0747fd232209f9e52015de1802a0dbdd3a0bc23c1d604b9776e82563ba415353bde145b611d823bba8b988788f55bc65e448d2c8a681dc1933f9322ae9c8cc06cd699f1a402e42e2befd6aa453e9e2d03962ff1eb2b46c3f97df877b9c34863fc9f378622d79d46e136ca5ccca9b4b7eeeb2ac83e9d0f311ca8993a461f724da622f999721996d9a968af04c004b02adb882e437ced5c0266bd20f82d95a80fd55051f704024b561c77c20b6f9358c0d19a8cef55a2e4abdd4e7cdc14a878b519c891fa122c5021e6b3c3990704a968fa82bba633adb465c0fb62b6dd04eaaf9c6d736a62d2c9c343537961f7264fdc20eed56e7b78abc1cfa2c70beaf3f38fd11e92e05a73f06901db2b7dc8412e7fd9d017ebc434fb914b2e673e98350391f78deec12fde92b19c88275b0d49dc12700d645cda81ae1fd2e541c0b18d78f330096cc7206192c861d33eba2d8e24390a65c331a9691fb1a09e1958bb4528273b3a5416130f65db9d3046b6267684c6a758dd2884857d60eef7f575593adcc511e4d1e804d995d3402997e48f9eafe4eac980fe58104b425b0ea1973a9ccf5d064375c61d863f6688a18f80776e0d05d27e1eafbb9ae3dbadb62bbd3969330c17fbb24c5d6b94728eec0ea8e77036a3cd264e47e90feee9585d67edaac6ace78d6f61872a225bb0d4e6faa726ff7bd7db224a4424bded76831d6bca03d2d33a33f63fd945636eae27dcbd5804b15db9931d70840c17b4418d7f14365231b48e9c976b74df993821736ec28ac6c113924a73c2c7d40ae9734994800633a9508562f5ea62d4b83e81610cfb82861809dfbc8566c077c389a869cf92ca3a421c84477e231f545a93f9e0c75e8711eb5c24e55926b34eed6442d318729e0214802e994f64bc703861a6e785637b9e025e8fea49f0a7abac9c12d9090a104ba05ab056025b9f5b9b67231192888cea8118695128572a59ae2a4f93308a13e7c478d8e5299dc65070766aef99cdee8eacc358d7ec109a21f359d9cf80e40761af2103617922a3725af30129f538a9a1974e76a5e6760bc03949d454cf50cb8be98dd4c75bc7801835597bbee85372f3dbdc2cc27a07b8dc346d8b6f51cadf718a68c39c4acb7e512db4411145a99c7c5a43edeca8e5fef60c0ea909a08f9f54d35373b95552189ece26b885574c13cbe38db04dec56f55e08c5bcbeaaa481ad0463df631ee53c221d65a8daa95266831b7a4aa2904587a0950512ac5c4f6e6303a054eefef0f8d11d3b01907253e74641fd8bd33fbe27025f8fd6f4719c23a67a873c6c3743ae5afb05e5f6eaedd590a0bb351c5f7511f97ffb903422d9a9218389b745bf92dcca4c3508c5f8409c5c498fba2bce4017b56f36e759d11ad87b7c8a07b4caf5793ae1d15f45ba731ba75b09d2eebd990426b6feb4a3edb6e84db263ca702a68dbf5d9f11f808d2d081da0eadae79f1d8e1c0b6872ba7ec81d0c9a6004226b4c2dedca440af41b1c578860a90d41a20fd268115bea1fafae758df3c2fa4c01e47b6a0f8c0cbbcd72b9ce72f17e02c8d568187a12416fc68e6f25da3dded9ddd94b507f1d2f34c86329933121f215707a0536fe9e4a27a0ccdf81e07c45727eb7c2623762d38c45a886ccadca7b02092ba6ac476231f9a795d4bea5997744ec6e5f5d355842c3a3ff42e3bc35f489c2ba543094956cd5c9588a62eea586f522d142d71e118bfc02a81e28a7db3992491e774e97c406319148703330263acc081a0838a833b147ace9f4b522ea4304fef1af07e34d343de8db3c1aac93c95e78642d3fb7772b28c38c9810f7c7048b9df14e95e8e4390b854e1282a5da664ddb300ce08a2ab281f55cc0121e861c5c117f513c7512a3d6171eb3e802db98d37ce16174e8af5dbff6ab03fd76745b74e823f34f69b1c8efba90c690a7eb653a0a4068878cfa145094cfe6b7288e14f20a06cec54971a700fa2a2d8822524e75aef87dbbe3164cd21aa0f79aa00740775e768bfd365706a603386574e3cd1674d51b5f8c5ea1128994fcf94ab3c66dbd6666249ec539ed963d48ffd6010c63f3ea9bedef884b72f422442481c5e587c568ebb1aa30436bd480ae22bcc73520d657d289176d5b1da756dc6bcd0a33654d3ac0cd305e74ad9bb80122059d5fbf5198fbfad3ae296db3f1aee1a5d8b32b75b2c382323a2165147c9c1fc1a418407784b6e75d3ba5b049f2a81e55c41b83bea375cdadfd727ef57f1ec2455ae00ae3cb88de845fcfca611c39c099c25697cf627eace311e0269a6aeaf8f9bfac9b9d3458ee86943c218a7ad8f408c803eba32027c14062be2341aaa8d0043e64fc7664f4ce125a98da35777d188679f3f914cadf7f8919ad78706ac2575223650f67db8a9936021e6d244126616154aeabe4b1b7f02bf9255eb7aae892a0d7ffa9bc4c2f113d6a227dbc26549bef55ef95b305e5ffd8b3f38748c68c818631f77e25b45b7bbb39880b74758bf6ac92240f8df1455ec7f6b5bb26716732a70f07d9d85a6b0852674af49f33d6e13c5def10f360d3f1411760b7dd4cf2e782485a256f801ecce070f5bc44bc40f8d895a7ea937f32d663acbb6701bcee4c9840104e3082194633eb2cb3c2dd5bfd007bd8c3137728ed23b7e16eed88ddb8c7fac0e4e22a637a64cb245b779dbde97ddcbfee936a20ff115dc3fa7e4986842a43f11c664ce9997d12272eae2b7f070ae2ce0ae25ba66b67a4a4ebc226756ed0a89f96a0e3fb3a115211a97ae4bd1e30af2ef77879ef694d129b4ad2d4780f1557bdf88dcecd21d5d6d6aa557318b2330e3895bd4f4ed97a8614105714235f7f83ad5b758bf7987c24fa229850374b14f4fb5a217bc0a18b314f3a730c4d485d11c983928ff65955d417102dd941d7fd1fbab514c461a4b30de0330429914d8d40deebbb82a90569d65bce14326413b8506b3cf300f53bafd32d8a7ceece3d28b9ac9fcf14d42c258b07b693025209e78a38b253b5604d1300f3f3cd61a7f8fc0967e6f030a0e8cb29f10926d1bf9b2eb302d965292ee85e1fc2a71d38044310bc39bde00919032f6e03369378e4228b4fd913489f0c7770417c023dff8fab9271be21fbd9afaf7796b95dbabbff18719b85d97e5f4d804027da7d20d5387ffe22862ca338b6d3fc4fa73af277d1d6853a01f7f79066f60378e7f6ce11b2cd4f7196fb2796e6de6950f14a16571e6003befaa143347118180d8344837cf37d8830e76c6cc6db33b8fed24f9b2b304019e1545bed24aee2592ee11dfa41b872f2c1e6a8db819620bdbd151c45525576dcd8a5a11eb7fe0ecb6a095126e7ffbed191f27c746bfa664e209fb2578e5d729854b873f56267a5a6935749c5e08bea7810e285f57950553f8de3b45dd61d2193d30ca338f2931c4742fae58d4d6346f1ca7c2a7499c36eb89f6c21de70ee0896c553f653d0500a803b76a0f38d5351a9dbff65e8f9e5a3abde57629b912e76ce83f31bc66f11644df52203b819692cdbc79a6277c6281b673cd6ab3561bdb7d68f886c6a336b4ffa7dab6fc400791f9d02f2e386f06689882daeaa4afa826bfaae607d48ed998221068f3506fa9a2dcebaa081e3505a1ad30cb9826c70e4da0768fd82d3cff9342959a3f846c0a7b9504db1b183a025e9a9ef651d8a66526740229783c3a18d9f1ca28e673bc2bf3a45b124a3b1b1ca08310534c8a213bb063aa49859f21f7b0d05f54b4242d8c600377870e8a5e1b11c57183a23dfd516d0c3f91e86e6bb8d7c2437abb08dc7e2086d88fbf1dcf1288149d3a25f699ddc971fd87cd3f550b2cdb32ad1e8b0d7fee1d08ba458b157dd0315f129ce9e89899c2270b9c729fd7b850695b425cca44aa11d2a3af80498652c75a0a1bd740c1f430f3e0fe74f069f1c36b0a0edd0a5b9e6488902da0274b91414f970a92ac9a2e339cf6dc6df9677e0b65bb5a8989381f1573b35ef4383b4d1bc8a0eb8a32c9ca5caa5f6eda029826378c96787c7fa9fc412b57f9be056966b42bc8b89016f9b6c2e5b808b3aaee37d73b7fcb8b5c7505b47a5820f396884661de606565a47afd408e216f516ccdeddc79f11f2d88899ed8e0851737ee505db01d3375ca41bed3eb95077fb442c5f28cbab16436879c144c7a1f5e046e5861ef096e69f30e0eeedc4ed940c415e72a9aba0cd3e3423d21fb293eb2eb6a9d7fb817b71f84e2b5032b84f1526d0becc94886ecf70ed8b1ba86c34a48a0563ad7b76164b6ff53a34a75042d59756c341d621850724536fb0f5b0d704e373501e3dbe7d77ee84cbbe7e02cb6296542f4b728193347904fde8a31339e422e935275e8af2113f05a899de2a177e9df2048a7640e26ccdededde75af63913bd6db29f41f4bc55772cd704c8156a1a2c7743e7a490a94708c8af20af1704aff1bb6681472d956fbf4d3762a9a84741743accfae3a64e8ab826845a3743cc5cb02de8b6cc48a19a72012df438cec57bc64254680c92e7a18363b40f42737aa048d421f6bd88277d1909765690bc2dc42ac05d1c5c914aa4572100d0d22d8175eae5114f866836e787fadc41d8a8349c06a2d4382ba6db3af49b71c4be3c51af731643ebde80611002f053d5234f91bf0dfd39134fa4d1e06afdca05eefb63a4459e5d5feee130461411d1733d58c7e46cdef56b8043e4dc2809e105ff334efc97d86f5038f7400a756b01904fa66d5d2683750b65c3af20d01f3a6efe9e125a73fce1f0fa22b55bf8c30120de43538f2d935e1a4027094f9f347e373ef9abeef0afab7e6dbb76397ba6c52961bc3f1d1a9cf8e589b031103de290954b8d80dd7fd7784edf9f2208b807d2ef5b584fec1d1928424a81317ec1c99a051dbf95baa793632cb8c21952388017fa8a0279357515a0e8b7210a9e0d4eff2eb61b7659be8a5d3a41e1661258d81238583a8955f7620207e8d76a0edebe08ed450e0dc5a82905ae5b72034ef098e7bf20bf11fa14056cf2f0ef327c78d25c8731a9de48219db1f9604e25528a1c9ec36b31701708bb9d772defa3fdff1e3387d2de895d13bd95e479cff1dbf9e9c5ed451503c0fe76e14abcae839cc5db73794119d7d332f1eb7882e257a372abfc0f4115487e34b17094e2dc83eff9d866500c47b1d9e959baff195b46d49042182e69287cd7511b55cf3590ccaca6e03267246c267bac16d2eba13058ccfe9f619a94f6ead45d37657f529972db98fc21fd7918a475f06ed00e335188105f6de7e899a0af96b2dea69a14c9b09337b59be3e5fef17dc8a7a54ee293988169e1eafcebfa1370d7baba3f83c19d775fcd3b0ce781628136e0640287e11f5fb1ff62d7621fc239c00633c00ffef62da1d2169c784a34064427c3a7f935cacab7ee67d005ea12bec2bc30ea206bd496b29cc9f987cc217672c1aa0ec4189a7966590a74dd4c0f113d446161dea1081cbb573cf0542edd9752e36326d714774778d83ba89166fcd1fa3a1f705c2d0d26cf9f5b75a04cca7076b1c9289a935b4707cef46291ea14994133078d758f65516de36daaf671415db6780cb6ed9a09e7bbba7e0f552d6a3c0ab3701138c43fcba8eb9003fa017adf09b72c796da8e7926db56a22ab7b24ee1607322f180e70aa07904b3c7f3c36b55d2ead800701a25a3e10ca8a0cae271124c3b0da28e8697d300ecc203533a40bd2bbf30fac37d9325fc8e930bf78266121b92171e00900df3526dc12bfdbc90edc84e6876a60648928def0a4697ec3cd4e6853b860f4fae4126b8888b5fa8b3f7673efdf70d96df7cf4fe35aeeb3a36e2599d9714bdae0b0f5063b026a35b77437e64ce089d3a8476a21640928d124a90507dec9c633a8e6d728d196d9a729c699969a0422eec79ac5e99deac3336a3fe5c8e229d2c7ff1383ad867ff007757de10b19ae7a86c94d6cd44c3b1d93b20ecd82cc2ddc594c56ce7c180833f3bd06b52d5c90aa0d8bf75991929ea9c45d2586fd97aa2fa3dedca19de0f892565a47c53629d487e807862d0304ce1dff982f847f39d6a12c420d21bd4057e4b4b6336f17f6a0f40394eab5a4eee20871628753ec0a041176a6a0426d612b30e2c136449ede877fe716ac39a61d4fd60e37581cfea9e9f6517ab7d547a307059f1ab305605b4adcc010301966e46740a784abba528d5d927a316da487b1919a92899b15684cde7a9cfe96b3e8b9314e3413f5ef06f27239ffcb46cb2ebcc6104933d41ce6c17f1892cfbdbb7b58bffe1761dc6edfc9a1c5c46dfc536d50c93d3b46ba924badb40b6f5b167b24903f35d2a64c1536cd8f5c8dcc7897410e0decc19ed1d318645a3095c932234c455661a89c6b37f5ab01da72af0961a6115c56695ff063ae6e571c87abf2b6c56ddb62b5aaa88984a93826220b27c4d86b78782a4d19b330b2f5c17bf670c69817d648442aa750c1418635c1db841d5fc9caf4039094d4720fbbf527f5166cc951a5e3d71158d14b878ae8f1c827acda5d9a031a63effedf90592c80755f2d57b1c5eeb4a6e20284c12f53000e3afd1614a3f54127e1527e76ed696d0e3ce5f99f2569362ebf28999e9e82bea8315e0f50fa394dbc94b96dd39a9b0867a1ea6048cef0f8ff73b592d216ea0a95d906c3c09ddbc91936192c8cfd64b1032f6f373df0ffa33b079d0d7853bc167420d5eba61cb09c046946efa7c0439bb339c8f83657d66e569139c04040bb6e85527f02c02fed58fbee9889eef68e8513c1680fc9a870a6629cc72e92f5a63e78e1eb38a1aab0c6bcb4ae791be141dea1d0806c080c4999f2b055a43bdba394d371e243f9db35629b26d6d37e0ca90de3de2e1dc1cdd6e9d5cd03f3e08b36e4972d3971dc2b733ffac90f5b331690a8b1460c11cf669d1c1e1d2d42d8e2e4195b05371a5843b715a6604d67df1e0a810b2566e099ddf6a668ef7cff1707e2b853b53dfb622dbb11380869d5245bf649e37d39802218bbcd86ff1053bf6e924e1adab99c49f8ff6e00e6c1075b5450a785889567e979ea82b438efe6908cf54e0773259e442035cc11a9cb08cac122e3ce191b1f7994d60a7fcd8f16ab752d90e5bdf03dd17f67d2e1f5a5a9ffc59deb72d79e05fc3f948b9400c57c6b2a18356f342c7766db2323c90e0bf6457ad12edb09d0120376faa25eb546f18d1c0abdd284d9bde579190734fcbcda2d7541ccf6ede73da1a3138e58b6476458eed7df1bb63e7e32b8f6f22365242597637999e8199262415d6c788e2d3620b878e63bbbfc8433405f0d80c925301429753abbc96fa7a5fd474c63568556005feb369131c51917e45f416eaa22eef927bc77643709990bb8a203f4ec7b76dd05928c75b0e6be1930d9d56db1d6e5cfdcd6928b06468171c6c75849f5db8c8c3a210e4f3a574e831c4800d16a9424c9e17f20671dcf200573135cf82bda5119b071d857b4362f41f95af955065cd1ff24ab15038d5ebaac699f363b32ed250835b49fcd021b5a1acf1a7b11b603a70e53adae78a600c5da8e3d211be2ad64737942d816fc9c1c867095bea371fab21cc205a0f202442342054501cd6e1a2b83a4bde12959d465d295541f9211bf1f85e1641ba4dda2dd504b720e28bb4648ccf3f5d85614f523a130f7fb08540183edf9eba2febd0f17fc6d81cd359ba3504f3d2999cf2677a1441b818130370c135271c9605ca67505fde083e873c3ea05d8c8a01575bc1610c4793378fb5fe4c7bbd575fb323951a2d349caa08933ef194f991a0c9360c8f9b74257e8c3934d585f8fc06402064ee85d16ed2a254ee5a2f5236d22f814c93d50ebb6cc080cdf8e1de1b1bcce87145860b5a9bc84133e7360b6a8110545880375ae4d5faa17b75eab7a88ffa8e6ed38a04c29de315293ad22244f99a1c5caf7f59f3625cf562920930fb167a70a0342e090b711ee89e24229d7e459de559d7479c7e28293a9b5acd8a510a31a461ecddd41e087cd994064fe7f522b658a0735b55e24aa937b2a7589c49e2cd6c9fb3a03be81dcee6c301f0a82c80a42c5b7a0436bcb2c94629fcfa2a673fbea25b17e80fdab15c3514fc35a7ca8dd6d00463c83871d16e76f32df9e89482ce852c67875c69945079277284a0175f9a48ec7c4f9ba775ab88f9e0d06d9cf5f36cbaf329348f033325ce196272831a9252b69570c4caaf4ddb99d18075ae830359439de268485714ea9054eb6e20ba4d2bd9ef9ab888c6736a21ef9f33e001578518b2ae7717be2bb027723082235c2c742189180c553b1b8059464db7a907a3af211d06d57e09029802c329ab6723e7092eb1e2f7e8dedb4ff6bb423465577ff655e4d290898a79c4c47a2b57e9a767e0f3ef0253bcf540b228979484d5d663dc43f769f944fe44a6c36203624df7cb4b383cbab7906c726f0ddce75d9c171c338d4d5f7e408a9f418a5c2ad85725ba781982e808e81c200d3b762984c36ff37167554f9512c9576f57b4b31b736c653886796ee18921e1df3a3310bb35a21b3f1cb2f7cbd4e67f6a9d43e4b72fdee6aec1cc8334003b7934078df356441710c3894a3984a3cd541483639b02bba3cbe4e28e3b8b1c44b6c19344c11422a5f7b2a1a7dd0f1f622e3864aff7a570cefab65602b1d870b6d73742cc1b5069e846dde7a23903eecf8ac14e97e14f46b854225caf96d3d23eb2ae6d82ebc5942c256af764079f39e6864683c265105cf4ad7287ca2121df6101e8e0bbecd083e455effdb311232c845581fa41096374cf076f3feb8b62743099d75c9e0475fbb2a8ed3c928ab47b158853de92817a746028373f12a563360c6aa716cb669d2403324c882c2744d81e3ab60e717a29e628f4281800303e0c7c887936d9d5a80931ceebcc185b897eda718a9c7953ae78452bceaddb02439f10ab7e5aa088be1b42b17b86e44cb9a9e447954e9dffba7d2e6c85b52826dfe158d09310537e6daf2d054e46f35d191bf8a7132063704d6b089e533d0e6c8083e6fe7d5f694bc77bb5d80932ad5fee99babc39c0fa36505b84240d23ed39b27d6251073f5ba97e1dcee0bd85fdcf926c9958a2111f45868c507fd09c467e488ab1c0b41c2b53919497ce050c21b7afe1b5ed2aa9c8f7f7e118379eaff20c74a9285e8857c0f8abc5e53baaa7c400adc9e1e6f852b0d5f25e173ab4b7a6db089dd1ef47c51153c6f7587061ce736a6ffaab736d8ca1abb0ae340a35e4cbd8136ebf200c2e20a36c5706811d09576163cc7c199d0a9df0e5a0b85e8dbba5561be672b770cfc025cb75b08ca2774269a59cc29b7831cb9bcaa58a1bfd92c8440a154f849ad93746d7c58f16f64814e7d14c2e0d359c3ed6ab5402c0a215e0b1d3ce1dfa6befa299e120abc196436368a7c1ff1ba99a8632b8e747af6ac4c54f5128a4a2adac33ed7240c0ee51417dc22f6462eb45ae115483bb44f44d72e7f3bcfd46e1a31b3af19547bcfefab0b5a295a2d90b0a0e6030b1d423635ec7fd4d6a6ebfb5873dff4a9639c43b3e11046a256cbd644d2606545456623a38bf124f135ddf709c876f17cd7dcdaa4779f26d39b8c6208d127fd5cd0d70a5932ad8fa1ef1658d286195284a60c647fc14dcf8fafeabef6e27cfdf68e6dfc2da2a4e9dc716e41e6ca8e38708914e6e129e7ba3f2bbcd2e0b6af6fe7e742810dbb7b99eeafab088cb2c5007e4a6ff706ce8c9e15bf1f2ca2d173398ad6cf45ce31eeb6f9991ee6ec9333eebb49645a1b6592cdd10a515eda51c1438882903a8e17ed44838139e1317f438f7cd3ec749706af3f5ac603fc4ec9b5ba03e2999875e4a70b31479c491f61d7e6798dc5e5d3529298635af75fe636cb1bfe08d80ff85caf71ce3039fa8664e58a13097a2dc54b7afbf31a3b6c22c9825fd459d99e6c79969e77fb4e708149c49a4b5f5fc337ecaafbf9b52053e20df82812042fb3dfc2860b5a5d42956d80f068674625514962c57317e548615c3337168708ba31b623a38ea076d264ea3243e8338b04888913ae7196346ac4f253b68035e29b80a4266879865cf48c8064b396fcf92f1478c6513a8f14a748680d171987df256037799e258b60d2b7f4269408c411f418d2db4af203a85b2740e84bc46a261f65ba391f4c2877e2ad69858d8165355e7ead441af4238a06e300217fefab01456566163e482ff3c0c0dea63cc0da594cbe7f6b772bc054850a4c600a69d574dff2951f50b45bba8b1930fcb0801321f156187db668c0faf1b1aa5eadfe4277255ae8084fef1f4e4dc6f354445f1f29fc3f44d00f36662083ee8be336674588e36064b20dff4e65705e77b787f8a2f9fd7f68691b77bcb0e6a94d56f24355acd2bef782b0786692d3cde7f8345435c110bb3418b1c341c7e44fdb4e3a90e83032a961cdefc3327d520a20475d02a70c719fd82ff2fc55898205d330a6c6c4a26e2135ec4b9249481e508ded3ee6f4bfb99515195d4aefaa2cc37a314d938f7d0a1f22f3d41c908a963206617bfea1ec7640976044082b9656e8543623a382abec35fadfd86fdfd8840da3d2b3a33c4ae8e61ed9bc9897dae6facb20b67ed6253b0eab58aa5ce6d9e2168d4f28d0e9d12f059b5bc082c39ce7a1ca95b467278166ef334c16461c92cf13935c0473de0bb3dace95b4324671b879c484f22ee022fc22a655110b3c9bb32d0e8dc4ef43056b15de1832cead46df59d1d19ca93ddeee0c54a3e9e2e9e9567d44805af8afdf341ad50d1f2e231a2bc2688a284513c45ae4791602550a14a832984ea322669876c6048f79e35951aa624a203d39c4b498e01f4e1a3d0c82d70e6b3b1ce7073688cb0493ac25ccd3b9a3be10b0304f4b4c5ad5ac315147cd5a36cce71daa0a8d4c35a8cf574cfd5eefc60a2bd916f26666ac5dd58dbd3589dc30cfab71c5ee36a74940214a55b40201ad685ce5d3d09e0e373f8c86f3fb32359ebbc05a54d91ae47e69c9ab40bb942a253022baa9f79c7fb49488e6f0d4ccc9617cc4e764e7a8ac72fce1b68b10cca3678de71f0e997677e125dfbee36cc3f2c06c87c01b141c886555642257043b006cc4f7383b5802d6b6a45b2205713e62ae208eb6ff3b799d95be84d81e071f27aeb56b80108e82cb5feb62a4ce94a70fa65b9ebbdcc9a111ef0568c1fa7dc10f3aa90fb97e506999391eb3014dffd525d2ee341a59090a894a290e5df98eb9091451ca913f92e4f62298e620d49294185b9bba6573603bac852db535dc6327b18e96666c53b634c120b5eb4a40b58b937847547098cfe0889906c62bc0889ded530a58833c787322a627fef55da607902f714434b615c3570f3b2b5c9e9bc4aa061839a9c3a16c756b8cb2d32f34a0580154d3136b2584afdaa62816801fa55e3781ddb495ec7758b9ed65fb6543323ac213497641d1f333cc99d0f51225a17bc60a0bdb1ee4dcbb229c5c7f167c95e48a5b474bd2e0240fe095f3e1ff06eae25db0d666ab911faee24897efc581f875093fbb70e49d4a5a218a4feb0b8c9ba35f67c32ec75d5586a1b8befbd97172e7f73c8c5773849fa6e96b2d6d4aaa8e1681bd92f240455e1b79b505a033bae2de2c970f7a3b75ebb7763395e48c4f94cff0b929fd6fa34b1c3563652e63fba1e7f2c9c19d57189c918ecfdc60611d529695ce77ad1af0f8b53fce74083df87e007b93aedbd4bcbe7fd7c3b4ee7156927c3407ae9ee23075517f7d9ddff74da169fdcfba62cfde63ebbdfd8cc8b8015fd62bc98cce77c069a496aabbce1ad79a7ac9f976d85459cd9f5c11e299f7619e373864535f6f6c806e01201beb4fe6a3fc2e790e00c45372a1ca9a7e4631ecc16a33558eb4778cfee4bee1b9b01965dcd8f61b38e02c5c483ae74d88d923acf59dc8431e84030a9c6cac8286094479c03e804747c8b78ec9e17b14e4b88f30c6f16c367db8dec56a8461508eb122a0edad46487a36c80c916153d5857c5279ba22fc07fa7060e1cd4c6b01771e3e06b0bbc3d756f95bb18ebaf03b67fbbddcf3fdac83ee26047c32a70735af962ccd49693f3ac417aaebb02c5cca1a4ecb0eb1899836257b28f38b115b133df6b9a5c3f26f2a2ee3e0bdea31d664d3c5954c000ccc09385c3f25c14590bcf522cf1fe0c6821cb3fb12403f917a7d7d03e84a252cc8f391d322924205b3737d54c2ea4c8dadfd86f13d6df96df10027f2601c86b192b6a8763225f48fc9810c266748784023589b0b6a92cec350dc87a436eeb2b958d975e47ea1121add5e6c2ca805b10ea2d60a665488bd4ca0d5786212db179d0c2bdf0e994d6e6cec0fe5697030186b7952eea9e7b310b250ecd7da390d1bc6744c9bfd6199af5a343a8521f747ec0507ce9889f4c4bb01a3a91cd51017e626ff6a3024b49f34fd0221e5ca09b2edd0f3d59813d0aedc8d9ba10f7f8eccf5cf094d72438456f1c6ac31b714950c8c087f7694a923ffdba80ec2711989b51a074a4fc44162872259a517361911af79158ac734b75e5b5d4467e86459f43daa6a3373db486c3b558ccea184eddbeb93a1470a462c6583bc4343feb507ef707ecee1b0b7bc6a0034870ad493177e5a0ea3266d35d88df4e1f6d992a0483469b724e3fc9d3f0ac82ab49d0af55d45a559617766783cbc651dd04fe90c607abd93f0d6190ab113bd4da5023a7da2ba2827324eca80c6863a5db6bc35810f21fe5daa55f672508464754239c0f335dd45f7edf78c9a4887ff358653899f08077a8d1aeb53f19391c9c3b04d06da8260596f426402aec04ff117890ed4a876b4d9136d7f7c69111df2dd56c7d73d5aba830da75eaebf98bc403c48077bb8c4faed11cf365a64b5980da0c2d876c294cb3997638eaa0d39e2110a8662b11c76fce4c1f18e1193a5527adef1b037768c96d60d330670ef85a5b09f447984d96c269a3d9c9d8df05ba27222f583edf2abe37af42eb8144d6140ea25cc8be936b50a70d6e360164876ef4d6a318d9725a64b2e1d442e1fa54c27920f88149554be299d10183e4ae4d1eb89bc40c5c20b7ab0da2e0f5bb0a4a3501d6c4ed47705000b82e3c28a1141b9c7d27314de9c256a07151834ad0130426668021dc2d352940e587cd5e67d5681412232ddcea8b1e21be441bc3fbd5c30d8c21527d19c395e3e66ee39b87e2dd0f0bda1cb6e0164ae61a8ccce2648d3cd1cbe900faa126ebc65df5b51d24c3d9459aa40a72b0d5ebd71191fb0169ab173b2288b79bb02d969f9f50fb87d723f03e19082372182e64b42dd4d532c09a7146c392678526f1918a096f7390e2f467c7769f3ca42853ec065778c93589d95a39dcc1e3fb50abefeaa5965dbbb21aba31f01749d2e29f0f6e69170a7e2f98588f8e65653e6e9055983f860028d49c1769c0f1e58264fa2e32bb900e465d38e3b36dd708efc4047e5d3cdb236da0efe0d3ae3fcd693c91fa2b911f11b46b7be68c09a74d0b10bab6c6d8af94853c6d2d06a8536568cd16fdfab80c930e03ec44d54fe8977441f460409f7ea5ccb7524844ca21311ee178118cc3bbd600dd125147ce59af08dd7371853459a90a5e9e2fd58f265d09ccf4e6ef99a961efda5255971f10404a6e4af25dd3697c918efc152501c83637c5528181662f7f5ce2dc0d3e0df35c99da2b81ad1188f968aa88e1b7187daf845305b75c0c82c15c31082a1330a0f5fb91a5d0d1c862818beb87adebc281dd6ef2e3b624a773781b1d80cfb719366576e00225513b627a32376c488b23817b73503a7d1acdf13c6f6c2417d15022e7f3e18bd9d8d1eece323d5db5300b6b6701c9ef5f838d18687ec02d8c12aa4b1bbfda3ad98b093a6869763eaa77c69c23f9fb9c855f65f79b73bd23b118c8d9868af6f928a16d00bb37d4a81200b1a055bda47f6870a4d23842e5767a13cc690f09b0f95b52b6fc3a1033978b40360b47d3125f5a8ffcc0e77a561ccf4081b7841663b61b1a67ede112e294e9282a676713e69dfe5335021230e15d0d378da11370cbd1a742861fabb9d115b194a3b6c869f0e7cc0a3e5169ea232d84ff6ef6d1fc71fb4fc4476a19953b409f8dc2c8a0265f258ffb17c15eada2acfa0057a737a64ac1fa73c568b218d5d7205e0c88c8de8d9ee6ff5269aa0b0a4e26ba21d59fc00448a1811e887d77df2ad97347703fdc2486c6691644c64b10d9364cffaacb03d098d24698318890a6d91e12018ea81e6571f639f024739ca6ea4ad591215f1398682e659af165eb40117bd426c5c7ebc3a091a6e49c32596c00f69a8c946297f8faea34a0fda8c4a25a2f015e9f07f0375d88f177f5cd5e96f0c4041e8cc1e46b09528379e46a2a566facab028ef7eed9181e8fac29cc6fbcc2b066ae3acc35766542a17485c9286a9d19a7f85ec803bb736a9c2fe901a93e3aaa9bbdf6b772cf62abc14ba465066b24d048b89ed17112c0d8a52d3ffd0535071770e9671a8acdf414a8ef90e590759de0fa40c50c052523a8bd896b98f51a7f51dc6635725991d016a789637079b7f08c9edb56960288fa6ee270da6dfea8f2220f78c39e25b8d3dfee4e3e35c1ee92c9bed69432a9a1bf90b583eb5b738e324d48a9f462a39365b02bffdfe335bac5c492a6f5c741893dcb8110670538fd980583def2e78f2a875f74289331fecc5d5ad0125fddbfa88faf911715539539fa74f07bbb39d983ccd6888a2f573657229f4e5c0825f2c1091ed613e7ef1da03236423389c856fe8792603374939c3531587884fdee4239dcd1dcc18ac9a2d3a4dbc43f3de811b70625092f7aa64dbaf3808e2078b008c801d3165f09943705df684a1b99511e40dbb4d4e46054912018c7ba62a58566f8c5046f1b4c464788cad6e4f5709f022ada79d87b9ee8b6fdb30ef242fcabbc0cfe9730b7fb9cb8243d92707afed3b0219a42bbe08fad01412ceca6f1f903a934e0943d87369322d97ffceea922d00ea5fff0d346fd76a594bf2c4cfef59597313f57955905f010ff62e8b0d7b4df0e909af9973e4917d331984da7dbc20ae3ccd20f2bf44cba5803c4205110f42b580462e759bbe9e9d4791a01f3abfa3085c11f400c2837ba7c24fddf7e75cf467f6da9d757a29b4a3be6bdaed17e2b7a57fb8341d7b2b30222e99357985801a2cea3fffb19bd7a1b19221ef00f6b917ee34de6bf8168be6394409f2c151ee8199f6f07182129c940505e1a15372eb075c3048b386f5f8df55a7fcaf8c0339f6640ef3e09e59eba24ee32c99fef3be9be92ef9881d718a793dca98ec5c5a319aa71a1193a232a0932989fbfc633671e5b6ecbec417ddf255c14bf3796860ee7e86916c72d7d2d725d08fda9f3518f8c72052cf373b4d61a3456f58fde4915db8870897ef966cb7b9999f17d46bffa4ccd394663e8b8731840231b9706b47f06d805e52dc6650e0c5fe4ba9c12ba49575b503edfc3545b696e0e8e80ec11a650869bf3f8529e6a6c2d6b5e155bbc2a71adb1dbb0fbd6dd5debb0794e5f73ea8627ddbe0b6fb3724d045793d65fbe3a34793ac413dc598b67aaae50c5a4954ae7b4885fe182f4d93fe84377080a49bb351b1ca1c086599a6fe4cab11ef49d540208d7bf4606dc1de1641d60f6805808670f4dcfb66d9a1af2920c2bd7fba308506374120f07de70ab030b5de9970ef8f878897d94d75f2eedf5f28c2e5b0c71faea0800a6a886c0f1d86c38145a358e679de3592761f2c3a00fbabf7627b3fb2f2451cd699de8f011f7e70c3a8791add666e430427b76897027af4c1968e6ddc67ec6fbfdb15ba750f982bf081205b193e33b204ee71215f749950d509c300d1ac8d72695428b3e237cd2f038a0811663c5013f803e677b7ec419b4e931f396cfb7b11f87c0d4bde5a13537650dcba53ce385dd166b52ce9faa581b170fd160a76197896632f6ed1b8d22b432e609bd3bb7b0be832d093ec05371952a0be99b88c3ca782fb00ce565e88256d5f02dadd4def3ecf2997cd67fda2aa76675e074c33e05d616eae2a34161205c329f2050d39cca0c30971013f39ea8e3758bbdcae3168088f89f8f9e8c2721e4e3a0c7424256ca4e8660a2c2adc32edae90392f680f28ca86027644a797194a4284fd76c1d154363d906dff53aaff6472b85f5ed2d5fbe3cb2ea2a0b56f80e155b4175c09d0a7011e0ece9f19a8d13009a2f504a0c4da043fce7b519147857a0e3bcaa5bff0438541b4a5361c5cd663b3710f5fe8b90000ca42ebd3df63323afb93aa775defb7d1edfaa5e3dfba2a44219ad0cc89060c71d2a660d75306de29d6fead2c1aa890129846e9929e98368a4137e4f9c8dd95f35f54806e28af19cef752fb1323c6ccf6ba448c13b38aa5969737290ab257cb0133d21699b4b8ade4fba1f93464706422516bffa6930985ff86a6717b489ada324e5547737c48bb33507051a484add919033b157197d8fe69ccdb3cbb81733403e55d6602ce148b53991df892c901bf6addfcbad86f91634e1069e2e62baba51fa24b10260029b2671efe0ebf9100e55bea213bd03a879cb2ecee525942454a16cbc81f5803560206054ef00df4aa984542b5fa6429c47e266f33996024df4bd37e3faeb02a4f8cd543d270467aa021b1e7bdbb129aed2e464c5becdce7cf25442956061d8a7cab93df6553d73bbd2cec5088765e93fb20a9dff8cbe77db8a1a8f5a0d984383be294d407d63e427f867912ab7eb4e3f42fb48e03209a7a15c42f9cdeee75829c08bfb2156cf1d7cf63f9d2f91c98ccf2282d4042ed7a403ed87d7f4065d0cde43f23a67c97dccc47352d7a792e5f3b5b3537cee76857c7325c7c787eba5e4b5bba0eda075e29b5cb7dd1b7d0ade56b99ee1509df21e1c12d02425534452ad2622a8f1822e8ac2ab329315aa9baf11a14e3f0f84ffa6f8051dc7ea635161c2eb749353587a8d902ef557c38dbeabef6571168233ed3301f5221e05cc6320cf7932247ae513d369d33795c5143ebf69747bab5c8082d9ea0e55bc53675f591a1fe31e5d786822d6a3d118d533ba08f79422f2c19276631fec14bfdd303fd1b9b68f2719171b0691b7c385057927bf692ce3b1e942f5dfd8041fc7fa659116478642ae72b5847ec3a3ad54b5cb4c68920b7cba956220fa33ab188172ebf69fef768feb191a2c84d1f356644dcd455fa3f2702849178c2443420abed426a43afa5b0aedc1a4535a65bc291a32af01ab0e4286b97335c1936ce3df1b8cc4e5c81b62cdb15c766cb1a204b31288bcc424d80f4a3103a1bc089dc2e93d6db196503514f4560e959b99ab942762ae48a6ee95fd8bcd0c146d6b19695a95c4e4a959559b2154a9853e45e1b3da64902d113a99b8dbca80503a35f94dcbb92476a39c1601f8c7c57c619b8a84c61f3187465ef90212f919ae7aab936ab95177e01e01b644a4d4c5b9489acaf50b3112e4d93e7b81cc5ffb29fbe96928038b124248ec7904510c59d6e98910b86a5058b431028f4fe6f2ad997dbd576d6e23d5df63df4456afed50d56ffe6b3bc85fcf5b0918de8705577067354e159a21018b2f43666d2b7670d883b9aa6e82b10b30edf28f23850fb60a4a4b9a5306295b1c34d3553545dca16050d802867fd3fb483fcfbf489cafa398be5cc0fde4f6714904905a7a502051d41294aef6c57e93edbe573a0076d511fba6f8196982dcd7f4ea0cd7793803cce461e8cbe3922b42cc1a961559fb3455e45325267e7d93493eae6c12c2214aab81f982010c96f2638ea86c8104fec339b06dda4324f4b816f030ebb6aac73eafcd664461266d12b2e32c0cae47623d277aa3853c7a9a4a1a01d055a0ee272bac22a6c61a09786d435b827f02d495a15523c4869ea55b2d432d948cfa4081e486f69fd1fd0387091d2c751fa3ff8bb2113be9b1e74272aaace68d07b0f7aa3d41b379e5cc18e890524f0c1c48184d7711fba7d07fc0dded4621784e2825b59016d47fb45ffb82d1b68d62fa63ca63bcd8c9d01f832eb9860fbb0c7f56bb9139a8d906a59503073d1c6324119ad618902df521ce5c4d3fe9d9824bcc1792401a3ae70052187ba96a25d9c10c858f7ac59c96768331e536eea71f53fbe16a9918ff1a2e0aeef09594a5bb656bcdd9a2740ed466d519b01951925a51e5c14b589b75f3bd50dc7cfd1791c8cd0190a88b766aee02d22c618733418d7ef7a9cb8112d453f0599a1ca5f67dbd3176143007eb4cd04e7a5a927d97f4360eb4102a8e6d85f9c492d394ee57b46481c5d3481eb7ca0e684116a35ce61cfa7c30df4b0ba1b5741019fa7f9a05cf0364bfcebc2c00468ecc91d1d1f86c8384aa97aff78e28eef55d3fe974ededebcd8d87347990b2523d0c46461ad6d80224bca45bebe37ec282dd0c586f75a16c3b321559dea5fbaa974c3091a234c0cf09db2adba455a58c633ebb1be467d8466994b3fba718cf33e368941cc1c21b517e7f8f72f8dfa239dcbd393a2b74ece4e1f882dd274665115926ac5ae5a0c58887204c31ced0fe2582e2aacc29f15a967186f6a7cc8ab7cbace72250ede2fe0bc4cd6ec0a01b450ac154e5b165804690e8f556232fda0683a38799eeb1e1eb8b7c6f188197378af76005f310ed9bf47dec4a3dbd1fee5534ad86243fd47e14ee2d27fffa55e2e1631f5b93abbb0750a13b321c5f6eaee90db283cd5c15f4e4f40d91ec9ada8ae446ad70b90088ca6783030cb5946630cfd3850c103fc3e62d784c753ec106792f46a4840b3f2225ec342d1ba1023ad25654b32e5d54043fa12d13ce6520aaffe4f1449d6307cffab41ec1cccc2cd38390ec91d599ec0bb25a0186e5686b2b282811100a50ff47403a62c48cf48cca43d61cd7ee9d73810552fe45b560542850a4fe8cdd94334c521cca31282df97734412d1683b67ba4d1ecc6389ffbdaa6220515cfb1a74aea879b4af04d5f5a5a7232e2df6b2398f7ee6a9d960dfaeab12f7c2b8c0a3387eeef1f12e95ac6b24f02ca4074159b077ccb74fc8086b34a7b263e22d66f969a1eecb1299f3f727457c3736338c6c42ec89a97bfa3458fd95c5f057fc9ec63472d4880a5eaf7c527d94c555e623abde282b3c3dba27c8d1e53f48d19c3f5e1d38f7d5d65b9bff861a907e1338dfe95830d74cda756f1be26cb1f18d8eed98a4c9f103e65f7e9950b479d4ad926d8d1e666b7ebb418cfc7b3ddfaeb7b41cc8d96af56be9d0001fef60a0e074beab6ea11913a3a37a32662ba51fdcf7d2f404d5206809b743ea2e5c6435c53b1d71ecdc403523cfe44c6dd3000d390fab2cee08ddb7337bdd258d22478bfad945cb659d4f5f552fd6bca992d733381af72189147cee719497295a14749c058229ea8e454877b4664c8848c55da69f7061c225fc0761f6908d1c301caaf72dc8017d8b7941648c4478a1ebf9aae24c93442787c9e00ec77ba4168f6d08c418334fe718de6496bdcd97ba8d14a9ff5d7625400cedff6d6342e6b225782c963dd931e4f183c98538232fa21736da2a380ed7cbc719cabdeb712356c50cb7e203d4c22b37c905ac00ea80e5eea7242122ab07bf03299e5cdb9574eeee276df7c39f67267d222b0abbdb72a949132830abd61cd0516aabd03191eef4d5e94decb2dba2ae3a780bf252e7e48d85439f8a22801b245d1e4d5735a38b869ee2dccdcb904c52d7a601e02e5bf71ac3568e65ddb51e4ff50a354c2203bd2150c4f62333f4b816e414c6ac7cb81ef5bcae28a554c6814fd30564da2b71dae89095bfcc866e0a9a6e41b5c88ac31a4d6bd4de1f77246772c442781088c6a09dc87b3f2539ad830e9c13fe02cb75e52514b5d83e44d88fd53126ca157b1ff171cffae54f789fe547e27dbfd380202d205c6b37b785c20032b57e87d665d5ff5d03ddf7a8aa7d740c6dbae964e0457760c1310267525248aaf7fe0c8236a90bfeadfa72b5dabb8d55996d3497e1944266e2dcc76f8b0a852b62dfc5aa6d68efd7ad9244c7a10ea14dd844403fb0253e93ca0ab43ae0caf61aeb9f820ac424c33dcf36057f095dcd832c63902eb6239ebb60efa67bbc920c950ad2b1de57640c54a49dc1594bd6dd045f15260e042f13736aef9dd647ddcc27d48d526ebdb898d53ca624f07503cee668d9163fa8d61b2f5c8a127de40d270d8fb425172ff9dc4e6bb32718ad80cbe55982325d0959607823aada0fb2f30d4caeec12411158a1f5031736245253e526300fe560c8c8aa003f6f893beec9ecd7b7c6113fb72c345cf9afa0041ca4dbbc42c4732110c7ed46c81322ed21c8e38e9b285d32a1188000e356500409d6c3b167491d81290e0ddfd76d6a719e89073c8d4498ac510cfc53b957b25033b23a844a4e5b1d5f8c8537e017f40617dcae707d9b2eff231c9802822e9174a8106ac8e7e9d91a509fe29026582e51c8c6a61cceab1d6015af1b9529742440f147cda13340eac29eb8e790e77e19de0ca394b8de7f6c27315ad807f855c8812da8ec773f202a770a9fb9378208615e871361f83e2927675117db81ccff1a3c37fd3955352074fefb4ed2268ded1e193be409ef3a16aa15d9fbdab602c9aa702f15cac3ce581bb336180567b437c593c71d7a00720791c0635f705d4a910dcf9e5c0862bb19eebbd6619642a75c1191b50e492be0de25a37efbe97b524cadb89502cd151ae0926c661d1d72dade09255a398ec434bd4fae809278671d2dbd85dee8742034879a5b8516c7ad9b8ea3564b9593a636f3ca0cd66bfc737b93149c3beace680e0085cd51be2cd1379e01d2b62bd85174647837b0c261198371573cd83a8ca5a4b63d7b1067762d065214e1a7496313b4db45c86a62793eb7903942245123d6c51bd8f523f6486b9052ae09447119b2d37f8990a01702c3f05d49b0dce6e140b2fa02b305610120477a2baaf38e011dc6b2f037d8fcaf062312fb6142ea5adde168482c4bfd7523eeebcab112978f9fb84e03c0de7f227bea9541c62388394f7aa3a682a536556492ee40060ff5c256ccf8ecf8c43f52589ed31e9c10252082d83298bf2cc9a189210baf52b237ec2a3d01c9f97001f9f18d0c8e9d4697ace79af54ef8e4c09560e046694c602a35fcdbdfefbad217f59f8fae5a35d8b39050e2e39d09dd7f904778a33e1b98de7e6ac013db80bcdf65dad67270d3a4a65e80f7577f3ebd405b7b8b8806be7ba489ab7bb46ea4acdd90a1ae752acb1d040ba91ec4db63d903f6598b7fc9d75014165d53c94474c0f1faaa89cfc1e3d0661421770e35fcdbbea6819463668c6df74151b8d19417225216d937e7d3dd11ba19421d16182f4e8c4a247367a1bab566f4c6de7884bf7c7eeefdada3957050327129c55e074a511de12a7ec0195ea6b6e3c643865fd0a4c2ba6becf374121f577d6b1331e3031120163b0e2710ff8a73f82f8a5e4ec6c357fd3d4d005313dec9c0287190d185529ac257025a8356a972cae7902a3776fa398f13125f19d222857988da72b7cb37d99cb94d8da505b4df74d0f5c24dea7dcbba569698ca28aaa64d7b1f2afd8a894d791f5b006ac5cdce6898d70275d14cae3a7950d8698abbbd44e66028222e7da71eae277ad8610dfe3a6b631c82e2c7b723df9d4cee8c4656c14ac5406a85f21a9215f8ae430cff3a4ff1a45729d20a271294a55104a7df81ad48f58b850cb1cbc41b45bb32af538eb46a989a39291156334227d73e774877ea938f4944590e23f77baefc16099d4ce24a9897e4b1b4da1ad9e0ab729626978f591ff544cdb710878886057e073701b814a092d1d6ee94f88bd10961c6db8d1a1cdc7775f8229a1ae355ca89caeb9bc0c2c7f1273142bdcf599787eaa42d5ef84788c1d4dad4d552ccca4751f33e03adc3b95ce70a6790da0447c972886e298d79e02b2665086c8a3868efa3ec91b47251dac0fe2eddda5e4952d18eddc46c8ee8ad3668b3c5f1feefc842b3304215871ce543562688692b402edede9cc2d93abfc1b7e17e7cab7dcef8344a48cb256d7a3d5c2e5a845acf82ef5b2850c061d5354ea648213997159fb9da78ccf0d5a0ec9aaa10f5511089eb2d0f42caf039cc00fc69db53706871794770b087b78746b670134fcdd83d7ab48deca55cf9c6d2325267b66cb2bf5565cccf9697bbc8f1c3c3c376c9f5bd9046ad2bceff30c3bbb3af8a9fcb18b747c09e89d355ca65932e3727679c3f959b62735f97974d22d44771b8ccf95880180ca2de3d00988404b5cee4c3f24e4c3f6f2e1db398c323405abe662c45aeaf4735d91e30cf2b57ff155aff8206847c035e386c44ba2b255b2dda04997c55eaca6c81ea6dd6a083cfe9ce7bc97c06fe7dff4283d88899d1795e105005914f4c220fa712ddb175eb093a57dd4b2064e01b8ad9f70772083f1ac68c784eb8ba1d981663cd665c0176a80838b34b36bfbd5e78d15f1ccc6b7d1b93c0b8087edbbef7d1ec50588a999951dd0e01e6d97308e2ab78cce2593d0b162a7e87d945e804b7db86428ef0fcd5afaeb7e8459d9cba3b23d56fd0211283beacbecf85d8c8ff220da090096cfa049e6c21d3881044d62ada89b0c3a94607b23b096346fbc6cb2ad23b342fa9f84d62cb9a7f0aba95ef78542d62c56dcdaa898f6dde79f0901b99fbdfa88f78cece613b1ba1b7da647134afb5886a3d73ef715d8a7b71b4518bde8ce868ca17dd36def272980686b7619d2c9c4dfded2f67b0abf5381eed1e2b69ab095b6b7ab36185c427bb0a8edfee08eaa9194c347b12271033075df58732801ca79fe8be79509733f6a4da1f514051f958cdbf1c9e3b133aa0301a56143f66a9e1818776576a808336618575d93c50d04535de74644df39b7858abbb5aecf26bc6bf2339be27a481710d6e7dd79775df4da1a04eb4d749695e3f968f0752774eaff85bc64e612403ebf002c3e6885bf94eaa3d582be8284553c14b7c63bbc6a2a77f38141140b2becfe4aec0f26009c369d9d221d1ba9260427a66e6109b11add07f219fcff12926b0cf254ac1dbf4a75e49870072a673a2d2a7e5d9acb3567a7fb8dbb77c20b8f3c5ae090cbdb1020f20139fefb768231ab4437710dd1bf5d7a2e3725b07a34c81811a0b6e693fb2e760daa6b7dcf7a634664d370b54fd20b7d931fc631c766f4658a1d718e9b0de3c473678be9c80e4948ef255f3bdd561573b0e944715063fa58d3390e04ecbdd3ec735215c238d0f3133e0ed036f7858da11ea7bd723c2efd7b312dddada55c736ea0183607bac833091d82ba5c7e5fd4210a275122b97be78198b9067388937b2262ea34452c2e1d744e68910135b37a08b794df98782c4852352d49a67c7639647581a9233427e00e0443ad6245b96ec4fa6508492fda9100e53442ea09241ba66877fcd9b69f24a868aa50e2b93af3a0bd99c9b916740ff2bb7e3065dff5204120ec2bea5f2d5cd41897d1c0034a23637c4658056beb1fce7e2c57ad4f411402527c0ee81e04bc2ca37cb1e4758b0492cb780ccceeef8af428166d12d0a7a5b10c888ee0a5fad0820e34aef2c90d6a16cd617aac65bc001e68dcc14b7cf7d4962cc99729ec9edf9b52b6154e9ab22986bed5129b19f3167b21cb021e909b44bde739b100af5a827bdba6e698e826669c6b1ae5a4578a541ee98bc93ef09c5a9b444b7d63eba737010aae87f2986bef16b5055cc2f1c81ebe8ba85e97a032518e9f6b9afa6555d2a0b5a31f83f2edfb6e126c1060ba5299e385dd590b4ce2988427dd9dc423dbfd49a289d8d82130bca90cdf0a2d0e45cb6b8b3c0a13c1302e195fdc226cf0be48270f56973bb7018bcbc0bb0e8f47639bd8021fd0cc71e2c454a01628d9dc0867b92d8ef2622648bc4e5f89c8d64953754f86e8d2a3f4cbea439670359bbac79ef7a0b071e947574c5db0a7f9eef7e9a94b6499bc4d81328493bf1c043fa1a5908a01705f6fd7d9f1728c4dfbcabb87dcfa203165ac79bc436ff001a37f6c8cceea5cbdb89ef549547b61d7324a02850ff2f1e09713ddf1ffefcf7151883a5af228b2a20229a6f96876b065519fbeae216a400e5c8ed34c0882592f8a29eea5266978ed106752ab382b90cb788be2d2ce7a2d256c0225dadbcd5ec5f8f8af9353a817a9077a44ba8f7728cd9fe6ea5c85db0a3bc47bc169e3d7002d53d16ab961356a6921ac2dd35a5938aecfff5002a389dd80727d3a4f113e38c4510c4b13456543650457a13cb2e491101559187fea53e28513f045b288b451943f1e4808c26ce560b0c498afd5f798223e24456244b3074aa4293d6fae246be8dcef967e1ef78b684f57efbf9aa4c71dc0ae61ea1c896f209495a087451cf9338e7031003105e05a73c3e5d40ff52c155e9cf9f1f053f06140b79022798c4349116059ef7fdc86438a4f9eb155e7e9136b691fecdb2a95ef439c531df632e5df323c0fcb62528f8593daa38df13ab28bc12ee7f038591c854457d42b76694e6b3e949d83578b07d65fe360bd19f05213ca0aead9a8c378db27c71f895e82424122c10bdffd5a6806e6e8a5eabe2726752be4c66e0f58509bdac1e837544b59108226aaed6acd239f764326dd5369a00dfe739ba159aa7f1f13b505d3e7c87ea631ae8d8ec6061e4ad805fbd29531c5799ca68fdb1e889207baf2f0edbac07007d2240b046592310d978c2069d713b0956b6b4c596fbd4d9ae2294605c13144d38a7b3f98ce6ea8541021f61390a50dcb33fd7d97617d26f87c004aff7d6ce1fc19b8885167a0c4cd057dc12732e29eafe58554cf30e1c81d2c5d633c641782d0b38909b7a8d83a11c10a277189b3baf3e3c10783feb892b6e9b39937b40d384a6d0e2aa51fccb21d1275b75d24d1c9a02cf04e1a897916bf61931cb77fb166bc2a521532a02549a2b27960b48937c9a7fbede78e696a9af72fc4bd8cb2fb43c64c753aa261a10f19d8f7f6dd3c0eccbfc0d51329aa589a26698673e6424f5b9a9536cb6cf4be8ab1fee3b0bdd2f1789482da164cc8f9442b1addd82eebd60e9500d1415044a5320b3721ac19993d85440962ba5273dbfadfa662aa7d0fff102386bbd5761848f3bf803f6a93921e43306a91cc7b9a34d4cc32d44a98b06fe7f705de08abc39aaebefbc54d30c9ef1118cf989ee69b2c1baa7d5d40828ec47194d13b1b9cf69fb775fafe1e72399ee78a920c849fa635cfb2ddb1b59ddc235b1d91e99832e67258cd3e3388ffd798cda40b8357bca1e722c7412af75b29beaa817c61c7f437fa4df2ebe09ddc731f621da37ff5882a61fb5e6573f97d5b3436f122ee397b66d147f0f6c14f33779956a60b6dbec37b94754ca0d2d0e4e6da2aa33af141f58f19691c2065f8abc8fbef99b70919ea4f0e5d4efcaa37f29ad386ec324176bde04ece4fbfb3d3554f2b88f9e532ed9410b5b7727ab70c79ac019da682b533fe0bf401f2ecfd801fdbb70ebce06b28e5e4b63949b262d03ddded97e5ec3e176684e183d3d10d84df7341826c46d83c00715dcee534bf2b07e3caf0fe359686ec664a48d82752c6ec5058791879a19d9c58c614b35de7673e70ecf7df02a125a649153a7235671447fbad9f8e8ce8449ed68fdf147bf6f01f802d50b4dc2962a960fbb5ebcd249c4f5cfc2fed4d772fc3fb60b4da7860da7bc8f473dc926de902abfc098220df7311bb1d7d803e5cde5f66d54e8276285b0673c02b34754d30ba191cfc4f60b7121aea6e6cf19b7ed82b85bc1d4af3594c38806417a920abece5e20245088fb0d3e127bbf8c3cf00241eb7ccc2137a33acbf75712c21d88f9ad0721e1280f4bb78c4739fae25e0f8d059dae29516f7a41d803a8b31b1a346f72cad0883090d18a58959892f0cbc9f6e2a1ca71f62211f652342d24123b07d885a708e2c9ef82b617d7533b1a37c9992101cf8a030a234ef396ae34dcda8d813ba8c7497d9b480991833c87d0df66155deb3cd8a09e43847eb2a5d98b7051b2412a22fc0c3ab989d3988a1726e313ad5e3f65c03b4b3dba236fd4a391388368903951f976b612da1ecaef2814daa2cb32b3a2768f91cbc53c318529c005f17d78d8e8381514aca3ec41f872f4269df93c73746c5372d105741ebfc01a6aefce3a3b747d8a114d3eec14e2816f355f49f2c9fb75dc485caca59eb0cfc95738949d02202663feec293ceec2964645aa905a0a4a2281ee819702fa94cf385fc7ee8e995f0ee9d91d9f0c2af125a96314374b3619250f025ba2d6f3ef6a354743f63d8258da46c237a2e00e355ce73fb8ea3d11868b3e41e518df07f649c6036cca268d65baf102b3759984298a910f06fcbdaad586446b6fd3de6926fc02ee7f04f31b0e7aeef2fe6e106e3086a38ccff28d1e5a02a74ea51909ec787c8608bb15a87fe81308ac51c1a7927eda24cd1417b953fbc0023782cfbd3db5bbffb16df7682a73a3a661028bca6089d767372c98bb377d29370b349998d069a85fe2eeb9911d0b4c6c90de7633a2ed3201609ff9f3e09c0c7c580eea78f6f254d4817b1801f3eef3e4528ef10ca9c626eaf2ade05be3d96338997c3095cf4eb1fcf06ef28c72ad4050ee309a65ffa1942ea79228f299eafa0a178d2c4c25c6257265c9856987668ee28a6696e91abda10100dd911f6d67d8dc8c2988202618f24556cfe10ec71bec364f5ea932a4bb063c7c335e4316106aeacce51117923780afde50a2249ab64bf249c56a7633e035822265d66b1829b69e4bce9e4e3ffb260d0026c9bd875e514fb97e01cab67d720fda68c784b77bf57b05f889030d2dfd35801a04dea19106713cc0eccfd396683ac63acff25d547c98daa4550dd16c7e10da1425089e1304f6dc7c972cfae4958fcbade63127ec74199916482e986eb5fbb9adc7f207311d9e627992f83e0db0e7e551312faaffdf4c082642856116cf4374fbaf92e2c97071764f406744b65272779fcfe5a06894fc7e2546836542e9b6b26fca10c6e194cf805205f8df731b73fc2061bd47e656f1538190c50f76b25a658289fbe0e161163a04688730cace9a09b1ce2c1d2cca75dedb7034c8ae7b5451c03dddb5fbe3458095c2f3c92287a431010d1eab7e8fe0dd660de76c83f42ad71578b817df3841ba3e0e9b660293c1ed07ee93bda66ae92de9354116412188b07a89c57d7ac461ebec9af457f75955482e52f95a066a76892b3be30bbe1576ff17447a52570b3b95dab5c45778ffdb4be602ba60e690900625a9c2f18fb73b22ae086753c7677b9e9be30065bbf8487484b6cda55e3ae6ed2fc0eae5fedb2ab1f009acb6e5434b696895054831c49ac64820156e7d49ef200be5b224e7ab137b71c85e77386fd3f8fb4439045c1040a659a0102194a984424df6ef9a64ee08e96688e9a0001dbd82720765724997d4cc3b605a9af0490baf5dd5347f737016c9985c1ab86094cbfa75ab9bc3c0812f3640aa923e09b2b3a2c29bf07ce00ad82b8486d4cccebbf88706ac110f20035afe23d0e95994544fb724d86ee8b96cf45d8bea49c4dca198c8e4aa43a1afbec12ed1a5bb72a236b1a86a022c82c9e26fe3969be3f9ab2331cfc8f5fa02ca6508f28e53738945b61fb5ebb336aac27c7308905d60021535992216d539f351e0ec31aba51251a869e7b9a87fa33e9c19a55bffa4b871b2ccc285cb0c49490e1e918032bd968e6e7cbf4823fdc1e26cbd8dd57b1411b8cd941a595695976aac336b6b8040456cecf480f6883e55e8e7c938a8eb21e7a7f2061d3369a9ffa4e9f5eb9e7e28b458deba7642e9242935cd92e13a2670dbb04be47cffeb1865142995fc847bd2c4206ca2ff240c6c686875ce11b55b77e438d92052089a2e26c295a4cefa51628c55ede5a5b4eb3668016fa367c278da4cba6a81fa28c02ebd802c5c8cedbd6c382044057fc7ba4bd237fcb8fd5018bf57241c20d421d11bd24b2558f1a0e22c846f01389ccf8c589e1ae889d794dc3aee4f38bbe867a68d9da5f81ee67ccb003e1b70305111af82cf8a1c1eaa0b25e4d8cef5110ec34d7a309b028464cec45c421416718df6b252b04aaa651f1f67d15da9616590db425e25b116a8dcb39e062e627cebf6e5ff8b320c60f8054b67d8d97e736e19f678542c1a6e8cc16572fb63529662e3d81f80f98ae5d7d1ef0fe014c2b5d653d2d06d5a68deaa29a65a49c6c25544aff606a332476c11e84a2bc00b19f5e96feb4b58ebf8287bf5d5230767a8b752e6495c834bfe2718f61ee43dc3609c598e5eefbc55c277f6aafdf62a82d3f28aaa7854fce03e057d0507d192d9961318418cb5eb6566934fc25c6261d904ca7bff4e2e0dd1dadc5351024b44e831479e6ebd6160185cfb963ed86c8c053fa422498fb76e44aa8dee438fbf9df447c5b3fbd80c52bc7acd0a065c94e044f0d3bc402527b89ead96f5a45689a419690f1849d0c2d1c9d7b3b49115e6c5d094f4a3e9c2197161fa11be7e7d0b41d6df9859dcb8301a04fe4c908d4407dc557a9026465bbfffafd23e52db1f2b8dde0f757e7fe28c9e6a82f1319813411380969f1bc6ae4d34650655aa5061953321fd7e7b3813b4a043d28ead0b9d17f38a379230207a0da31e321d61a69ab838c70d7cfc41b13337042ac33111c23e3492eac09a4f50fd79568d7942b0bceb6a54cc5d8d5ccde8088fa71efd6c0289f76125bed453554b06fe796a2cdb70ecef77eaeed115790a80caac0f0ad0add4dcb03fd1d3aba94df62bc84f9c7085893415b67ce9999beac9e2120fb37c49480d8fe78c010f19ef1352a288335eda4f90602d2e402bb881a49d640b5aa8ed44834554db10411c16c517aec1006802ee50db5196dd423c45ef7899e2a50a0f5e3f8c9db3a893ecd1644ad75ca7e2e0ef2e23b54350c49ff03fa839f6206d3333640be6c79c67d6e6a40bbaa02b42e8ed554583b959a462331845932eabe02fffaae6dbb26157539069c6497de1546a283f54af0e2e449be2f2e462c0bfdbba9b1e73a1d2f86ff2203529287bbdfdf42379d67fb9541cc40d87514ead25e3acf56130c96e25a8f466b8046fecba773a4d9e7b9f97d7f9db7813896f5f70db70aec61b76bcc8860267de71c6af5d43b8509b3b9aaee5ebecc793cadb1244c07daa8817f0a3c3b7bcf026f5bb992213c0b31a20f5087130b1919a8e34e2bf18ac57028a04c5251868bc7a1922f621f98ecad9d699147c6b5103f89948a2de66a27d490ea76f6de690a222bce1e8fb039dc0c4f5f56f8149114604fa4fad0a8272c72f5717c6ea7c12d9c6055667a8ec774bea666488b8d2a72574ec9e72ec977e60b19485b76a81fe0fcb5fbd89ec2eb1b7956d8eef737b55cde3e64f84c6f7690f9c049a49a8e1ea25b4501edb02dea97b05604974909c428e0bce82d92d22154fc35fb7f4a3e44b7704e8357e30287512960567a0571d454e3c7d5f6d9c1293598c474c28d4cb41c08b27c750c4a3d7cb2758ad4cccfa82866433e577d1e0ef63a3d5fe08b85b2b3587756a4425fc59e7f58f1db22f872f55c79e169e85d8d12767800d71866f549044808ec6771eb356f0ec5cd8ab3ce40f795d3bb180963297bcb57594da2c869b0f1c89c0704b66bc9648d80c63f8c647027b644af40566fdb954ad4c79fff1b7be64ec2da70dc1ca769942edacc4a6df7a380fd1632980544b7e01b94f9b7050abda08e42608da63eef6a6a9efde241a9e1d8579fa5724d921691d3dffeeb8b95af751e0a538536c90e7d6f156ca15d2f9dfb1750744693241b9ee39131d5e61c1b2639cb1e759790a2b6406d2651a7d4f83453aa0bdaaabc32828d93c81e4fe3042cee6369b8b3fac83747942b162fc9f5e89480edf756a34e6cf1192ee8ae718e3332052d5c48156519638aef17dddcfd2b6c8e2f5d96fc64cc16878197809b84bbdd843c7582399f41a024dcfb5a305cebe37dfaf72f66ebefc989157cc570d545afc7b9c680dc614801cece2fc23ac1a5a7970c76180b62aee0fbef403e9a1318334a9cb8f386dc6b12ec9504d909c2b3d67038238b4fca25b89e4a2f4f58f28bb2092f9e553b019536f27798e8d15620c887e117f01a2887fd3d16413a40cfef8c50934c7547076ce0daab9175b9591141e783b7e98d05f313f1740399de27f79b333c014d9beb7c29b2dea8654c0bc0df952b7f23a4ee65a92b3b4940991bbb85e071985f44eb6b7919b2035c299101bdcdf923bcdaf4b44c0e76adf785f34a1e37cd13169a0a3a2f303b5f564b735f86b6a50165752c9a16f0e4e5ae6e97cc3a8ac170d7fc90997e19800ad5c81cc092a2f8d890652fd1b76a77e51ae7182d98ce0fcfd4c68752f36b00b117015e9fb39d4ede4b289c437e4ad5cee42a2561b7f050e7c3323fb74c332af538f7ebd6c4721b189728924523a4dab6d4769635d18470d1018aca28a3d1e3da320addf63c2b630d615536e274fa1437a2b2e5af43862d1bd8e081ab09f9040216502e2e40723fc475a333382cce46d0548cb0fe1a669b2ede047d8b1d2bdab0fd9941c3f7325f10002535e6822ae61c5e9939fa973aa208b1061e1136a8a5ae8a8d581c3040833176396d8759c19ed3d7ace634d67b7e3f7bf58845267c19eeee4f1b587fd101c20b1a104001f2ce998f55c19bf35b3f5907f821c7c262df07d4f51776762843f502b0d859faa508a6ca61f8a65b73477256ec15ae9d921585a64a3c0f9fbe4526773381f039479332eb595e1a182cce33f51bd280aa18caf90f895f9e47f31bb67a8a4daec833eabf611ee9554911611a89608c38bc5383efa94db658604e693aa2c18198ccfa3a279438323628ea5f0c5049ba550f4bb99f33645f96ea13e9fb5640e6eb4f5fe77ca4f9f88433527b408c6f9704520f597ed40ed9cabc11e9c48a8c4909579507c341359df96a523d74162da251dc114294350e880d9d47caffa68afb71176ee56bec41a7c9b959817290551e6e0a62caa97b003532f4478225d12751d4613080ac58eb40c9f2d4f6e9f1679304eb0c3a416ca48c719bf51b7cde45252891aa099fd82eb71b00919f9369eb4b9db36f4d61472d9da186913225919153db90a36935f8ecfd73280456a9cc4fd612ad29b52f201b5cfe4ce1797cf8a43d0ecc30b8fbb43629e58b9544ac0eb786168a7e965bbefa2182d29535c60e7948e0179fc7aafb7ff5423afc6b7b7b82f4c459660958520729ce93ffc02deeb25dccea8c978a55cc3e1285d91cbaad5b794a883c9b6686e713a3568c081437ca6815738ce0a4efdd87096fc481867bb6b6979ffbcb71b6a663e940800eae815fdd425e248bc7658a77215b16148053760d26ba378fb7589a024a98da69f3f45a2ead634e3857fb9b56355deb261ec47625ccd995d043e11abc56ac5cc0dc5c94561ae4a2b9f12b119433cef25956273469a29452e93aaad6c042ad3753f259d7516a303995e0bd1f43de05df2693acb68af7c9862cf4aa0c242b71fc732a840fa15349e4865bc01b981b5c7d59fa3a2ff954513d5de4072c5fef690606189b49cb2f2adcfb9a1f466ed6d3c18f03e66a6e93d5183558c52ccd994dc104691d00d8d7f01397bab891c26e115cbf5eee5e64ff4d3de0fe26752f5833d7fcb4e1dad5907475b06b17a138ba7ebdae2a89949a8dc76c7f4486462804278b909b8aa253081efbd177479a9594bed2797be728931f70cba77ca97bc13b7542f432f0a9e7601229381364f14200d2140f31386b17d8158be1dce5d9e509328573c6d858ab4e03b759ffcef5d0d69000b51d9edfb07f8cd228479655e61ebc8ceae49ad4bb433654597d39c16e095875807c54932ef9aa916ee4b071f6983ecd4bbf82fcb9ac944f9310e92275710ff6deb77b3b23c6d296178f8551af5c73c51cd714114a3dd7951711e244dd30e9490e80488d689b33277b0def2a8cfd27c6f5fc8766974c1ee8260ee213c5a27c84a3318f9b96053d8f681c81866d364751069f1074cd418965b70054e6efdb1e0f058ce5ca8e1df09c9f497d2217f268268e67d76a9d109f82f64da87941bb9ae7efb7d41af24c03ba539e985cb2e32a11652bb540bdc59951bf99ba20458aaaeaf29dd517a9220a68ad19dcbd49afd31373280ec46423e78e27692fe9a92dd5aaf18c11c75f3713354afb29a34da20297369466dfd24d703df494f390c0e59006a330214202226edbbbdd310413fc6ddd417a8aacc6877abe208c4760009fcd6a15d84386467c8b2303a1dd0951c6f118b7ea625806ff32395a66006082d24871250cc92f22f7284b1d25817ca53d7124d478d221dba837d684c6e8ee85f64c540876a677517f3b2974d456110eca4c14640933ef922eafcb368d6b6cec7ebe83c41574ced371490269fe124671876e854af14e0ffce9c1763a5bf289bb6d9881b7c848dd69e02605d10198c8155e2fd1fb63efbbeef185c70ee4a1d79d733a0e0e20318a1ce645b47447156027ab961200325addc236b01465105e4c61a02a974f873adbb60b0d148f0c1bec3779b63778d7585fd5ae9c04a6f03fdc79a32ccdd0ba4c3847bce55253fd6c55b948263093daa22107937f996b7fe7ab799cd0403d8e4b99a2c9f4c3649f9d3b8668dea7187ac52e3eabd196043453129e7bdbe616033ba3dd00af715a8cbcc158def5a3e0abe26de3aa4966f264276645f22a702eaf5f94d5cebb41437ca11b51df04c5586be174639df45a6c7a8f866ff3f6722d739524a7f4d79f1f209e6475d82de90358e979af623fb1ddf0222b43c4927d0f81562c384caae963cca0d72b070f66f6a343a4bc3b03f3632b78498c9c0f4da3b22cfaaf9cbc6177f311b8c0a11e195b52fb250467e77652164f4a37d7628c0e3087bbf57e0a443870f619e48f331beec5d69804cda98aaf997d5bd7b2f1b245662e433c52d8b276a0203f2ab33cfa839f8412bcbc2078b6db07e721a2a4d3964dd0c47540c496774f7a6e8cbf68fa7eec154532b807fd55530e1b702ce46f20005fd2d85243397370b101e6a3400659a51fcaef50e9fdaeaa7b79425e21ac56a03b056096fc5415a9d1e4768276a3227c1d688014b83499719c99b8c9cb957f8f67424c50b49300ac94ea63396b78fafaefbaf688e85b1fa00aa11a17d78439f43576a042b9f548637327337bacac97f28f2966391edf00e9967c51253205f29037f9a200066bf5eac1fc5277edb4c338517c6ad2bd6a2edc198d6cbad11e6eea5a8d5d5388fa845b609c92123ce9dab64eb89f4ef6cb50d9564f1cc4304544be7a0721ae40306564ca94a6af749a50c8d91d2533137340d25a81372868b161c9d44601b32b2f7eb68f64a587363a29e9064922dc29928ddd006b3825406c83de221153c727b0a63e7f2b8e92da8e7fb4b17c3fd97342fa98863abd42ddd7be4c50c734b8486b2b300f4fbeff2edb00339211295ae852fd5b5ad908d2ea1afb9505ac026f4be54ddfcb4e7b3ef9576e793ddc11abe662413a8d387ffe6469747584a2e0b51b5fc06bd7146d96805b1d972b1e2dc103b424d692d72d6e64c93a368ee1350c9eb12e3bc4c51f50a31177d41c3f35d74cae3a0339333e728d9caf594e132d8b2f34b3435472836d38b57b41781de619916ac83801de87c704e90c8e83c036da8d685f26e7146bf2bfd13a947d3d836484b64ad4453efbe60b17dcf460b28533190bb819a1f311bda3325a5764804f0dcdeeed2bd55137e6a69a7fb9e12b8f78a25235a494d790ee8acb9368c25514c24ebb1571ec61f7e7edcaa8f788789056379fc426798868e3811334c7d38a9f744432d962bc459e1cecfae0f1c753077b9e934537b8a3febbf8029eb27df44157fb2682d0e1acb3522ec20198841938d875990ccbdb341975da22c81827324fe9407110ec7bee5e176345bb5d7a85a9f9241c6331a76c66903ee1ba54c0b0a313d6cab56cca04ef66ae3912616f04a568155b05de6473f64c77ae123d94e61a55797857817db058ed924fdee0773fbc20e38fa503339abb6f7e3b8282bc7914ff59541293213aaed692ac4903c2964114774965fe581e0e9c02914f5e53a4f78106f8b4d750ebab2fea1c55eca3b6cac03d495f8eef482c3c979cd490bcb2acc927b440b494242fd604b15424e64eb4d3ebe320e265f4b4f9c83ffdaf9fe921aa9bbc6cef20e8bbf9918c6e4e84399dde82e32771ad682ac618e3cdc56d7ac55bc06f22b4d2ccf42b57c71e2f5e0be81b882c6ba6160e78731f0dd83e8c6e0e0803e802641d9026012562b502931e3c439ff4d25a28ae68dc5b84c9287f9af6650317df39cfe8be408f7cd62381a3056efb2cbb1ffcd82b9d6d10dec0acbb7a66de813ebcd7cfcfa54a2af801a42af20b58df7559e98cd55bbe05675294dc1af17156daff792f8e2f5281e867ca6675e76ba0c529896ddea0db644a6592fc5db0abf923ba94ccd60136bc44125f9c463a08e7642a5daea23f037d823c8cc14aee345fb923ea48a5d535960096bd4fe1d1550b7ff7a254e24ea4af9ba41cabef800d73f6aa91509df90859e596cd490344e2ed368a1e9b41b1d62838121cd8ddc6e79d6276fd5f84e2756e0d4e5ef731336fca1d63e511c92d0b1f8e109ef0aab357f53cb73d13c44b1baa6960fc7c31a3b586bd84748b63187672e6ffbd2f6eec26f9f8cb6b9aece70cea3b053c968e5d8fe1143e9b07628af6521e24d5d946f45fd7bb3267c22da1251f9c7cb17c1866384311c50494f92a7ce92903f4a4d568e210e14b4efcdd693148f7d511a0627f9a9319a16a89c0872de08a13b9babe4e920078ec5cf1f89c506d8c0636ee43bfd46785e5b9a333fdd00addbade032b6e7437c2c01a7c9aee3633ee4ffac65533710c223cb532332f3a5f4f9c1a5f49bf49d8b77e035386ec273085f6337d7995fa6dafbfdd078311bee32137283ec9e67b1d81e8124ca20ed3c60d4837735110e4a562a6acd54c80ef3729d518e561c26cfcfe9edee3795771ed15f2a776c513f5fd64bc676b996826e250c9423149057b6941c4279eb784c6f181a88dfc7f39ab9050ae1a98dc80939a15fe695ebfe44d18106e0ee9b1cfe7fc091ce7436e394449b8237f866791e26208d4fbb983d439b468e85067db3dead3b840353247ee61eaa0a9dd12f44cad57505078955b53d074f5c740e94f81da146de4b8f2ff697aee016d31f31eb940cf269b621291c7eca29bcc57e74d69a0f95d955cfe521a868947c51889e526778758ce5293706bd01af0939604b5e2af7c8fd8843740fd9dcfd48e5cdc2ebba85ac71303b7ca491f18bf1b17fa8f88a9955fb040328ae57b087b55188c4187f431e91372c3754ad0a086147d5083c44c26fb72949639cf0e84054fcd7b493164b147b47450c94e62b4f8032e77617f5d1ae9f0d8c7184495d8af25eaa0d82cac68002651d2245ee8fc7d377b1c9b615f2f7feb68a135d0ef4eaa92919c60838a2945443d5e66e2be1fad862725c6a348d36adb162664861d669ac8a9bcba2c0683db42daa375f4fbf3d9e5f2441d6f8e8b28072575bc9414c318ae7e96a3f710479cac07a0bab8ecd482c81505fecd2c608de9b93418e9689630e880ac3a024e6ef6b1a7fea3cb31ffdf53d6f86a2c8cd842e80ae797e5727de4b4eb7784c2fea36ac72e7a1fbe4c675c61a1fb89686632415ab74c1c25e828a7955bbee99e58420e9418c925a2b0c01651519724730d9d5bde0d0cce4f189fe2c99f52b416c58d0c309cd22da7a77c5fac8c1c2980b56db201365299ff3fc47299503f967ace8b21b339f5b5c69f604098668a2bc7a4733f367808acb4a3ef286ff4e02335bbe81e13fb22bd80b0f3f217ab1de0d36acd4d191e85f9d964b848c3bda453a319fd6b5282784ba86b6b641f8143a16681e2fc09a554b9d942d10ad62bf8037dbe2a7ffe3ebde83f4bf0b9754cb6ede4f86ebf0f3dd5e541babe1d3a187572cdf77669fe64ec22664e0ac767f9bee65912e1de10cee3bef8336f1f2ffb7cc47bf67d4ab17e7f085297c6984a1cf0d206e9a2f558fdc64581364126cc70458263b099d85cb4b4b15f1cafeccd8e339b838d4c736fedd9c34fcbcf3afa48cf18fdbc5cddeb2274b52cbefdb61e75ae506f34251c3eb235432e8af1d83eac605696ee4fb6fcdbc8b2c4548c9bd9d4d2a2b05acc8887b3bd13b1fcb271561fe2f01aaa37d53f691bc8dd85e376cd27f16846015ea1ad778047bb4bb9e89e6fedfe6c3f044026ed7c1e257672d78d94bf1ba862e729c89053361369661852d2747d4dc4f60fe03a5b5b9ba7697fd5b6975ab6c38b320ba6eefb06274c4c90c0a7cbd43372f1aa7fe72d0197ebe5b8219f683b424ba47dd38ef520f0f7c53a5a222f7bd466a8705752c653ea45b4a805aaa9fbc2f7baffd95847ec10e5389e59834fb1264488b566c1595942ae4b44a46a2956618685a1d94559c9c56f4dede13bb708dee3fcd6d38ba23d018e3bfc7b6b157502966849906355d27ef7218bb2cb59eca6ee029a39dc5b3e98c0cd8455653f0eeeb59aaa5696abcf0bfbc52589a308e9bad1aa09ed4fc8672e487a189dbd9eb38eb1a78b55d88d3ca2ddbca0bc96fb85857a9aa5b08c2c61b2e4708ab15cccb3bbe8ef5cad26735bef2f81cf5a1c51addbb38de02e0f5149a9a914291397868a2e86261f8aea995aa8ccffff529f87a4872ecfeed5a505a34c277a709c9730e10538d2995db17c884ad4175577c403952bf5c3e4ee249751c9fbef8c2e944e1f78e8d1e1b9746198fd971df15edc8da4bc495d250ae25ea5b1a970ad7b190c8b17d7d02f8687cef6c9cf5bf072aed09d18b1a9201b6e3278f4603026d9e5b7f9495dd406887b0f2e950c8d33b069de28783f4262ddd6f159ebff1663431e4210d69ab5aa7af7b25a963264fae7cea993bf0edbef5c71fccc51f23caafd23c213a8419ee62e830bb034ed034e89978b2af025baf7bbd0b79237bc71ae77f4f24930ba8f236dc4b10c8279853b3db3bf203cff38cf8f150c0840efb8f162c8b0e9fce3dbce9384ff9ec3d875dedf35e5087f4842416f33e991c000c7f7219a7e9b71c8aa102c1c9499ba78543ba0b682dd1c70db2c8c23bd1990f78948fb56028abeaf78d2ee8ed3f79ea316ea50707d99890e9873723cff9999309d42bac18602792a9415f4b76452fe95a59033aaa460fb4222384610a7ba8389d4bda77879a577cca2990663b1c3f0ec5d2dc9cf253809a8b86c1b44b37dff18b67d0424ec26d4871ad355156adc553b8e317125154f389baab140cca4fb8f3cfe736f8d159f34d1c631009502a80bf9fe6be136edd6b930df8397dafe2fdd2b1ad3e143cf6abef848b72ff42fc151ab64c3c0f3076cdb5250bb5395cbd5e371acf02a7b189c546d92ddc2016e76ca19eec0eeed250eec3a8a59bc5d195494a40bf8150993fa03f26ccdbb867cfecb9fbcea4154eba897a730a8c70777bab273c36ca3bd0494be27f1e4efa4debcf32d62eec613602cfbf277a7ace47ccd09b0117d00d7d6dcc82f128eb1005a962d5c6a9bca007135f370a9ccc3eb4123433c672426fd98607a9511656e1c7c55a100d0ad38086e46674ca310519ee14ff6f0ee1d4a047b02342008af7b72121f381c846819318b8f9370564e117c0022c15dffa68bb0d6cdada860208b66b0f6ab91ecff37a5614793e949f1a4ff41ef7af9a91186d8a356fe8e5af3811d2d5353085fd43b0f6a93ad8d15f43123cff0d4c32f27b38fffa9fdf88a4eaca724c31a90ab7cbe5b880027afe82ed75ed5aff992875ac774adcee59256fb86ae74a15e188fa028527e8b990c03f6caeb0682fd47dbca71db94d552267b6c9904c1d9968f42a35f89753915343c083fd8161632ed0c162a4c3d7a04fe89141a0bf1bc068eea1d8ef379408b137dcd63213e10af512afbf5bf565303b7620c57deafe5e2c1262a919bfabf457f43e5249abcb6a10dfdcc501131930bd2bf091d9feb2c9fef857cd4354c096e0d1f0579de51ae35fb80b49e5645585f12aba596fc57ae563d0d4fa7d52778e3c338275ff4c1c6281860c3d53dac8d627905f35d57ecdc7facb51b546f27dbe4bbc808e38456d75b7481d6460ca45ba2780365ba7363a75e19ea2685ce4d6c4e0d9bf8c2c85eabf2497948b0980e282ac6aa0545b6bdace6d30edabf4f7c596e0993f5905da8fed49b13740471f226481957fc6c53bc80ffe9f4ed00fbfddcb10b261d69390b8aa2bfce068e60f97a23f8396496af67005d876665c394fbe5acecde6997dce01f6c085c235cb6f1e5c5a8d472cd6a8ab65d639f57fcd908513e72d8c1c6b183d8c35f235420ff4d097b4a7fee47383350a111d18ad56296b0d2ed46559346d54ef6fabf4de860a336a716e7f42eaf3621492ea1de30977fa50798ed4c9aa7bdec7e827e815d6a2cd077ca8a116bb7abb814cba6863eb77ec7311fa8c860b4a24709f2e27f74f247390f453da46c126b85cc36ed14b039b41d874ce32dacb0f38c912f232bb698f6560e78a7972ac5968aac34785452a82427f09920c625b29ffe75d8abb98c915fa09de2c367d1d50f24c1fdbaf317b33673c11076ad63ca9d7f8b0b98883ead4cbf57f16278dce4feda67f21dffde6838cadfcf0c11b1f6663087073dbe80f3acc0b7c7a7bb93a64d4a66b67c2b7b64d8e51026a3bd2ff0761b4f4da1bccbc010d5ec2989a827272c13498ea9f0ce43abb97a430afe2cf0cef10396fe63db0d2ea135785481e5108ee1fc38e873fdedaa4b9323a7c9c35d75d7d5544325056d621e25ef28ea3de1a980d32c7242ff04b01c0377f5422623f23ff6ac93e44d54280b73aa78cf97167aff6613f4db235efd203c030086281ad4da38bcc4ab697ea3eb393a8d9c29e63fe50c9c0d0d4a84b648c723ebc6e6982a9035dbe12c0f881a9ac4f401c252f6fb75cb40d319d91562988ad76ac0a0a80b8dfdfba914497275674d91448c2feff50603664fb8c4476ed1890a487224da1060b5a00d2daf5dc4cb50021b4a617039633d51fcda25f6aaaae39ae32f62fcd525a6fbb54fb1a5b8a655f81cc344201540d5cf4c4b3272cb980deeabfe03337cc597aa7c285e7e28104df032fe10169ec1670a23149dace72690c9a644220c293d8627f0c74f5a8eb8eb321f5898d5290f42ee5abca972fcdec588efc66f3d87fe0379d305a8a988d99eb4f5e9a570d2f73cca3d517c3369c25eb732f876a2415bdbe49db346f657b6fe579c3f3127f8a6b8380d41702a7252aa8e3297c2ee8a01c167f79ea3fc63ace0ae505ee20cbf68aa347f0580dac028ead1449d0b489688297d4164f623b4d36af8201ba0cf8c7eee433c9e077edf1f2f0cd17cc6a51e0d94520d1196a37b2fcbc470c122b88d0350f55fdb6b6dbf0b8340d8afa964e0dddbd9a196bab6876e74597809c5622fe1f88cfa777086340261b3699607f61d38634e790c0a7bd13b02abc25e0d7ca6d33b9e9104474d7633be922ba515f41a1429a9c4c29b79f11e2784b076a901687eea7d9da1a0d7a25225e8d7e37a2d9f011c30e2245b65a5ec453bf336d625b290a9ec0a8a4c91368ea66ebabbbf6b7b143cc5ec6bf44c51c7982a15ec6df802faf414b96d2d9199189e9c371679d1fee05dda2c21b5597aaf07f9f1cf16669b2ec6fcff9b8f849140936f43cb48ae7d88a0f6a0700a384aa410a435e04bf3047c0ed724fe292eca19b24ee75f0d90d1d5e88a7c4b877110546325e7043ad6896d7735e5e1531556b5a1a6c214db29d869f36aa55a9c53bc5c1281dd86abb7b8401bf7f393394928eab8b785449862f3f7cfa036c16b79671c7c0343d67b70e66927f572ca190b98add36d7412577e8792d778ffae62b2c9114d7819a14d8ea8289bda7bdfd5c9e2fb4affec68c6de7c07709401c382cac1cc3d2eb3397d475a2c94489adb5e18a650d17ed7475448c14c2e8af33d85acd16e6ead374d89cb9b48db645050c92f69af35823963dbf2c5fc291ac0044271a0bb812022ea6b8acf39a3349202121d133c4f7ea711f6ed00e393450773043376b9d992c4d69d229c79abb14865ddf17063937ecb8a508a6898e1a89afdb7e6c3e19750bf37be226d23395ccfe3bb2eaf93186de275948afc2f2050ffa4161098e142e78c8618b1f2e8972878fcbc24e68407363dc8c7d73df33fddf23743e12cea3380f5d782789e16150b062b5b3b8b11bdafc3f33856b02e6b40e165793958912d909c724eef28a8a61134a30adffc9e1e576e6552415d0eba726ea1bd011c42be2173b5442a0b6db0ee2ddbf45bf915e39dca53ef25538ad59bf1d2b699183d5052424eeaf2053d991412e6aa0f256bd2be79dd0b2c22635bcbf4da1b62132909f425c082c59b3c2206789ed82b88b73dcab177eae15f2e15f7b5e45ef57833dba80b3a8eb09431b24be7a042bb0fe131e3bcac08242373543fa788804ad4c0693538bdbbcc7ae706925c1699b90bd32674772a7d0e8cd60593f1be34d15aada33cc39389291ca4fed2c74ee9d5ae462d78d320991d3b584dadeda1c3915f1d350f19170e980fac6b0d8e2bb8e6911bddd358f0e6c4d59ebd0eaa00507edddd32bc78c6a2b228d723fd095a0f2e3140861f9d28e0cc83547c046bc16d6ef454a11a75ad6bdd0335be78045e074b6d2a6632d1d6f4b87193e507261432b16502b915771af5c080c1b096406c981d0ae0e3343524be50526280c1067527bd15900a2039a561ed4029c07ff114bcf02f8f14fea0447628da4056c2ea7ecf489072e4534c85e2e92c9ef3e041be29f6e9b60a07fab40fae43c4ff96e38d9c0184199c71923874f1efbb7e43ccee377ea8dfb14cc1c985d1c943f82fba318d2a41b09c9ec4791903777c532d2268ac5dc0e3380f878d40d82e950abb6770d3a6406e5d82ee860eb9783c4ed1491185a2eac74c7c71efa54c37d9e8f19bd831589977a120eeb7ae8fe9cf2d4239b10310c023a6f7ba4132442c5841923764f8438b4da39af86406e284a6c98f5d7986d9441aabe32e08b2675c6ee22bd32acba4f8ce0dd3141d4be74a0038f21860f7ba59e22782af1677429788bfb138e49ceae6c8e4ca9f2cb469fd31d62a3e4bdcdc48df5fc3b4ffa25eb230e942e63a87adff16bf6fc6736dc4a5f9648f970a52e93d49f99fc5d2e09d072aca708fee6ac31254f47d0e8d9ef30ce3aac75f227c56c86585e8002b280ff29d3be09ac681fb901aa00bcf43c02642bc4e22c96533325d50a74b978d633b55584283a1544c7e0fd59c4bb45aba52191adc897761fda9d4521bb250181484141487d1f3868573cb1ed8193ca283b6a9ec238f04969621e9cd20f603804cb89ad7db55130b065b20b4a2ec3c5f3e22ce236bb27a8299e9bdb1086a205f9d755361609f3780c17811f3ddd85b010b16a5631911dc7e0c8f5386ea9726d4cc4330a41725ca7947cfc4eb287195290b7b13c9d9e19e66e04b1404c2222d70739b265400f3ea51726704016f6ab9004fce3ebe5fb52713aa574c3c77b75d75d830af820208eacb2d0fbe187a1aebdda61211df414656a620b7aa51938a7565a7ed474b4424d1867f4c845c6a17223d93c3bced9cbefaa42ab0c4c0a3f545e058fdf08fb767da3f3bfd0d8a3579ab05cd5032d770be59e1833791388e6534d26831aec5f288f2e40cffb3d38f80a420205faac7e919aa354684ed0257f1bbf2b3cb0cd1a69c3e77c246f350e0b0825f92281f4f073b9b0edf7418fd1b9fe792966e96f2435e92bdff00f1fe22bd8cb210dbd095534ecbc53b9837204693dbbba68b5dc39faafac6c5b1f150da015daf1cc2c0a09ce651cc367dd29933244c9d232b7641ae65353d78cbdf5072a86667345d37a6e18f33a58f615474dc12034c744f7bec9f5435874ae1c84fb7fa698eee413f72e6ddf0aff7788fcf33f75fd04f8908f2f68da0bb3e6c5f2642dffff004ce28db1edff7c2fdcb35a94745d084688a3f6a6501526320157905fcf1133bc73a0446e4802d96e21d6035612e5dc4b4a545a48641d90b259991d61b2e650eb0982b3b275e6cfd9f5f0bc7a7071fe9ae35c282c529f7a91caa452c3fa909691697b90a0fa6fef2acf5964808cec49a26d265e8013324cc5b9ed6c28071e55b35c10b8139442672487d464463d50d6d7d185e34c7490a9dc95fac90ae3a3611040746ab8c38972155cdc27c43af50ce688ae3ce25c107b6bbccd06601290b2398fdd0abcc18fbcd0fa697159fdbf64593b0abc5818daec189a87121f8b1c9410c40d59e670a6db42ae2b54b65e4fe02b73f7678e84a46ee024d6068383ea52a25bfc38e291fff9c1703f1bdda1a78ba0b788355bfb249302f8993ff96f12dee2e9bce78cae335c58aa18145064c0bd6215817a6dd0ce754067da5a7a9c0c086cc586d61881b889a80a2835eb06771f28485fd6a63d881e406cd548e84c511bfb3dedb783f18e54450107620b743f5adbffe0149df602ed5d63b024f8597a8688faf974fb2da2b01951ebec6b85bfbc69ac374859534390d589336834d4461e28140e41af42ab14bf82e24c956ab798ab1a1ab12fa78a0b5dac918e34e6aeaee01224a092725bdda26a4548493877692b53c80acafea975c577bf8f58adf49db0bee13a7004b0d697aef5e720caa92d4fb3acf049eee03e8da21c752684155f5e093cf52c6065250228d36f312777e002d38fafff07900588ef39c70bfc43852cfa6d0c1b3b0b1f3d49134a5e5e57f2e33c1660113bf5c5904f03007819ff3e4bbcaaf94fd9340fa5304954d8c58efddbe25fc47f47d19a8b67162ff976fdae46836c5fbe1248f594d7cf850181fbc43fd5ca95a318eef41dd8bb5f3e8141484b288b36b79951c306367e1bb4b58e8e85994de84eab9c7680998cd40918e1cf63bdbda61393bdd6f64e439dbe85f0799654010635e4841752e9af6a5c78d43c64612e4385bc3bb58005ccc642c01c4a03cb1397f99a72f79028d9d75009b2b7eaee6390d990811c37eddc92f34325c5c063d55fdcc7c18b2e03bd45537dc4d9c420c8bb1f278313a47cd467d54332116680ce6571e03b6cb970ad29080c574daf8234bb36c5edfe640a2bad09d8bf8340576712c020978f2cdee71f5433f40c4b1de316ffb09d449554681581582dbba669fff17740c01b6e4e9af47c317a59d89d2b7350cd43cc69f2d5ce661615913e4ca9da39deea7bb86852d41cee76999ef099f7f5e2238fc135fee77ef0911326753dc40be77f5404930b321c6eca95ffd4069321f275df3a478404fcb143a0126d85156666c296e0bdbaacf52bc54e4c81adef477d9341537303d9bba0f1e20ab83165c5745b678fde2a0886b20ae8daa55889304bcb8f7e6f137b04d299bf1c7aa48089bb3c3957927c82195dccfaab12a3775e061dbf76e0360d0f1f9a1fa4939878ba3faabbc182677d87797223ac1917d1f3e4701a4b503528443f5b6908d8379dd86d27c39ad1aa8b22ea6e7ff0e1933cbba7e82f6ceb48883237575d8471d4619a7f4780f0d6c796ff200b1ecfe5bf208e0e82d60fabde22c503e0a1422471dea59ad962bd621ac07023be8d394ea9b758527c0a2677a258f85d4b841005eae0761cd016796ba27beeaf14772f69fd07e0443717bccf8790166f2530a0d78afc2451e9859017d74c091ca5fc4b7fb78377003681d1507e94badffc6ffe40458a1e90c6dfc1d4a4257a1bc13adeb0e3f3c4354427cb984e75f706e8f2b7bd7e60bde95461c9609e2a63b1f1aec32f313a835a59066813dc5a06b7e3eed90791b09559f1f9c9104caff14a48164438fa8182d1f5670c13d3cbca103fa28db09bc0abdd4a687c7e616bf573026b3a1a1f5c278b08cad5ae8e912cd73fbc52e2f12ca59c8bef5aea802bff34c3e1587a7b597cb67a03c0716cbb065ac117d4edc6a346c97fdbaf95871573bbacf9e2d3be777a651f3a0bd2cc7d53d991cf733b99567bb8d2decc29669eeef8c37c1fcf14f79241057ed346d240ef721913bee0768be904dce301b919518201da3215098f33a5bb197bed3ab0fdbd18afc6e6fc43ded78d193e5dc8bc24979f999bfd2e59e49c1dcef05944918eb99c378e1e38f712e5c35e10ef23c6215ef036f6ba86a60944c4c90a3a588b4e2b0f5396d6cb1e47ebf94531b76d00cffd9d6d18cdf820bf13aaa1ed1d947b9b47900022556177cea407438765d05fadaef933f39e592b8b0b658315c21c7e48aa679af5229cda2e8a01c13ea8c9f89beb7488c9af5ac4044c95cd7b0a756563e2b35adc529ccc3c8ea051ad38a5fbc805b2660a5c204c4f04da210b454b91360d64e7d712265d02e8ef1b92134cbbacaf8e4b71fcb432694d612516ebf9282d1d22d355c96c3be9f7b9a0c2d1f564cb8d3cc60f71be68d79b4850286db6ff0ec9300fedcb033071e96f2685596e360080d0a7fe87544e53d9763008aebd80d3eeebd972a8fe528d60bbdd276542f88ddbd210c7411d65dc473f41c0c82626cca5eced039bde121db67f5862b6d657c0e9b9952267b81e73aa5b2998b9be207eac21e10ecffc3f8f26edb72de0a1594068225702d4289bb2e7aaab22f1bc6baaf0284d08dc69a367319acb8adecb44e3691f8db3f73bed4b09fe112523402c4e16f051ea5ddfa682d3c08301dce23ce13ae29dad21928718a1cfe5ad98a444982dbd91b103df09f6bb2c9e39822ea59ab9a7509a1413c9681cee89e6314d4d2e7a3a17d730bf6f1fc1a9091c7ce85d9bffc0ad780321c88ad9bf3e840040cca653dae0ef93089f6517a9e2cadc9b35c7bf876088be00255dbc91fb43d4c790385f7f52b5e133a4ba953bb5b9dcf7e95af403b3391ca394a022e7d723d7c6a30cc00a94552555b124c0ba5f8fd90d55aa6be1044e4c0757ac8253f08a50a316818eb3a6425b38c70daa35492d9068e2482335cfc6a4e723e178d104d954f6aaa85321a9fc6566a0ea828b9ec41d706922e75e46c08beffb0bf21648ff5bc6553e7883da5123d9a992857ce7c82f30ae6e0286c7e52f67c2e2f07fb0e4e1d25a9d0e7243772864a436c59f1ed22da3686281d6b6c98a5e3dd335c9f7f72e382542dabeaabc8ccf43faca31e9db926e27c8fa5c54739782224d1141d89fcd4c1df6936876bb2d8e348e74654208e597bf7ca990a714a537e2d248ad74b9699283c2ce6777413508a1b8e4aacbb0b0157c87bda72238ecd18675872f6d414f9523d9c5090d8f53732f83fdfe2e903af2ee67e7d97e8b9608706ac3209aa62d2911c3c16db3cb863ee25977ce4dac063efeacd0396200d0d9c8284bd2b443a150af450c5155a8c2b006b053cb0efe7580294ef3a247e37691d14936e2c90b0484245db91818045041597c002533f2c56ee44f8abe78b8f58313c0997ee6e8f6875741fe4781077d2d8fabe4c0016d1f90a811aba3e2199e1aa3dddab493280235148beff77fee2125beac3aa5570fc9e0276c7d28bf0dbde409f1e48f12606c4bc6e5d450d553832ae3f7c45a682d9cb0a705f51fdfc0984f0ad5a758605494ee5f7dfd073b221aef9d6aaf7c3328b510e6172f8be1c76f173f510ecce82af9c12d52e7671c7a3d9f01265d11b9aee877f6090227c7dda4fc2cb373e33bf4985b861915e6fdacb5e41565f1624892d4f2c27aa0c1c1e6f2e04c5d01d11d60b52ced895c8aa43aed7158c49090a0121c1389401dcab52501d44408d312354d815b6d989acc9f1b4183aa13b1646ba83bc5828aa417c4135be68da82293cb95aa8e4e8824715e63d06c806322e3d9ef4b37b8b99dd926676c5b2f6ef05d7f9b1520aeff6ce1ab7890f85319a655e4bc96a610648c3b11264a50e3b10c28afeea76b3b8e4ce780dfaa8411aef273c94b089f907e1c161e8ecdd061501d543234bbc37748cf42d26a05f9dbe6592f800253503a103529e5f942a0933b63a42ba6a8a5537b847d4541b608ba0a9c7fc4aaf0f1d09134bfc43b908fe07fef63e881fdd06", + "0xdbb36146f6c78513d4557fbee82d6490e87dcda8dcad4e354acf52f22ce2e4a2ede071bb1d832438843c993b90632ab1a10bb523f89d9469bd50be3de50f45bd2773bfbe661215c62910151d0c483c50ec40fbb55aed6247e023e620dd668556b349bc91496072dc17f97aa14ac2b854ede1878eeba037d7901f5f80c31a33014d2315794381b753539bb48edc1c54019c779325dd033b359e1d0f5a2dd9f030c97c4ef1567071321959155779569b724396a3af21ac002c4de5663912a2ceed8bbfae8d87dbbbda5765381d7b0221d704745950ef8eb42fd8e5fe8f4f30944c0dc0cf5f5f00db782fa69e4d60b9357f51cf0c3742252635eac020ee22f2bfc15d8c71776b988433796736b84a190e3472256d5459a0631c24a5073eb2913c9b9c8a68a3bcd5a95e3edd366f7f5678a00339a345382ed7ea9a78e1f3840d0fab80e7c01d686fd4793e76f933e95b83f772e8ac66254e18dd56d3da9b07617f73d254713607be68136bfebae5967bb96f8554edba2b35e36cd4c9bf4e0abd7df3f117376136e85ec26c916e3939afd09bd3562b809a42e8c38487fb5c405046884e687544181f45481b5d0cfda768f223464878cd858465b84cb900efc39f8537ee1d3288d0ea9c950734064c5cf2fce49f17b994424cbc5c03c864718e6f7f1bebaf892d0887e5daf3efcb65f45f6005f2afcbbaeed2745ff7e23762023bfa98f38234286d4fe50855a4894ab20e792125af82bfe7ed61f568da637c623df17cc787f7cc303c0423d8a089ddfcb5894b766cf19b50d3d6cb0bca1b4d570a4f1ebe291a69866ec98eda43e40fdc07b73df24ec21290ee208d8793a6f66cb632263f8d3b0029cdcd1bef9c678181e1a6c6ff7391abd3c4b7d5fb280e43928f81af4a1e21bfd6b0b5d75cdfe018bc0ba52bd3a585f787e9d41476a77d309e65c704f06e582bcda003e29ca43150848b6ff5faa1a18ae10266b77e4158d0c662a761d765c678541fd65bdffeda5372820c5fd4af874a56de8a288af952a928745fc3b7bc7db73486e23f865be8a0459f4b681487a950229511a7882c1bcc44422002dfce76bd3af33e67a935647f601ed55f42861ea3c4c0a2ab58ec53717cb93b23b0b702c9b844cd3f9198c092475ae8923a399a7480bf8f9f4e2af4469b226c1221c113da012659c13e72ddbc26ec2bb3ab2f3d71dc0875f0b4b14f8a4bcbb5b63a22b5a9f02bbbfee1b596bb4a5c316d99233adb2392222146f254ab9d3ea5a5990d4cf862019348634e043ca5628e9cdc6f89dfe5427c54b49ac97c860dec8df00f7ca4b7a36a37dde0d5994eb7ad849fd62498757944f3230390e45c279ed084bec89d55af541b1e5f7424ff72b977e19785a66a9f027aac673f965dc291a6b0b54e4f25bc573f296ad38e95ff405ff7d75e2e1ece7730dcf298a128d4a39d60e72d9014ca3827b3841c2294987cac0856ce3d328353883398a385411ae32f97397f8093bd766ea9159e66a15b505090727d5d08651a25a5be780892b2e3b4e974effa18ec8837a83aa83906e9707dde856c184817711b1cbb0b4be543bdf30183596c9bb8b22a836a41b231944b21958662c85b1f3dcaf31a766f6bb6752a1cfdf9f31a40fedbc1e7dcc9342494322f003bd9f3d84dcc7cbe92af387cda758d0a16a8151630101d037d7947249a2e75598c02817a7fe57cc3f1f0c4690a23378f2fbc1211c6c0042eebde42c4c760086b60acbe298a7aaa3f6fba6b1e329a16aa200f1a2753ef1addef082449ecd9dc65f9d02320ef1633cbf6eeeefc3c40b683b8583a5aca50b53ab43c8f0d344fb709dd3270dfb5c039db3dd8f0b37ce3ba6cb3c704b58a9961a9b7e14812f072b72ba0ab2976eb5d4fec7edb7a568905574c28620b573ebb5a1603c5bc1e8fbbc98c2cad14d4153cff7c7fa97804dc9ad65ec5e36a91deb5151c840f76716af732007bccbc2e0dde44d86ada3a23e6a6154476263e136fb5b7f4b91eaa00487e0ae2fb51f175ed9010b04badf425a771075e4d5b272642169c3c1e6aae4ab44bbcdd275946d811edc7872e123ee602f22f7fca7acbfad791d284f3c27bb695cf8804f3fd92574c54c2ee363d948c5a6e29e9d85c5405ab469bb5638730849bcc02341c746f6dcbb2ce8a31c0d6082a43229b1edaed697b85ef4018d58f4d6a2e90cc92a9bebf5f44aaf26c8fca1aac355bf076314879eb4ef724b6627f16a85befb76c4221e513e48c58e36595eac6b6a98eb2ad1b3d7f3493bee76a88ed492aaebf2652803948789d04ffb34631c300f8a4f6309e1451e0d56bdefe5a1cc546b133293385c2c461789f83a34cf18f08c47955dc0e610ddf84fe752946e80591afe0ca4220247370af4c66c2fabe94d19e497a832e4207689afe6387c3e24dacb5564c1503a5b2c446959e950a9954d1ad7582fdc16278c7c7bc1c5cebc95bc1a27f85ea2643783036223aac175163b62a025ead11d53dbfeb3458b6fbf87e3ca9853fc944d8ac1feb463dca21846f14e36451cd6bffa3aa9fc060ead6687823d20975ac5d4e7bcbc75b1a6a0d23632db9a37222a1981372ad99958383404b7978aaf29a33e480809de8c922238bdc4d22c33bbe86b4b163942ccbd1abf55e08ccd91157cd81110c369fcd778e2e82f9a7848c5d76e044d6053b73621cfd94d551048891f61c02f9d025a837dfccf2716775b5c5cb4ff11368ceb608480b34715e07842fbe2dab2099b193d48b3b54f9924c663969189e6a58faeb92c6e4ca549ff79341f83215393871811268bec28ff09999c0337f1568236f11efd0be6c7f94370dbebb46817545c7abfc34f022d158c4d787935432384bdc394bc42fe98b11def0eee2c2bf02cc5445540e3b180739586b0cf660acd3072311b2a4afe18ebc6c86c88cf50625cfd30e91fbe0217914a660244ee1552ec258e5be95a8de2493d6260b9ce53b01c1c1dd1b62942083ffb06a328e13dcdb9b99dd476317c63a63d6f1273927dfa70bda5da291a0c600246d07ff31d35cb2e4aa4848fcbb55455295675d4fc00fcc8a60974236a2b42a404e7dc1b44563caa46d2de8f1d982ce55a120660d1d56ad0f3c04d4e6cf441824268cdc18971ddc15218739f888e179ba331e616614291fdee03dc399d246b73853ebb361c6dd612675d7266c9575e3a0c76c5090fc5e45300b8ecc2c2e2e31f33eefc819823718f96cf819cbf08e067a0013a887cffc90b149ec60de397563642cf0fdcd144d6c6611581537b2932c91e086ec8b5f15c5025832a8d3a83647ac564c798f611d2977f30755f6a6d9bd7f4f234d9d9baa4f384991e294a23fe2815f1f2273f0e43cea7e4a10f372f1b0b4f0577c06e4c20e5b8291628d6b1ca2ad0d091a120be4bfb21c889f3a4105bff4498dc4d16e24aee88427788e9de1cf8d5b9de809e91b7e7725d61d7f042df6d639f77d4cbc68265089a76c4bf0b32193d557467becd42511a479989847dabc47becf968b1b5a8a77e9a11edc91504dc5482c968beeffe410e80f02fe8dbddb050bb4d4e53ecd3b355bf2e33d0f18e53bc10e26e39bc4af37e8466a5144c7ad25f01dd375e068d5d8fa8b17cfcc5db7a4d80c4031e1cea2fd744f6ed14026288e9033889a760d93a025cc1fd50efe5dc254d2eea4672df40b3b7371e5d365067c68674677f8cec642245ec9f8917caae915b3197321d3adc09578f098680d09fda3a2c674b2b2f466a5f989c4b32d218455944556e60dfdb031be2d17b563df77c5f3c3bb2aa3832908869d292b2cc491344fd90b20843a207f3887347b3707209cfb16bc154c8e9c766cf7fa501d05209a663dd2868bee8cf4ba02e6d8cfa7858a920ca95ad04243d022b171f805d3d7612a90f2edeafd22213700c728662f041d60e8fb278c6c966439f6a9d7b15f71daa1f0322059db458fdb8c9572cb4451f05e21eb175537837d756d23806f663a94d79360cc4a120a773c85b16b1b71f5e786ebf964eaf7eab9c2c542e72274957f60f1ce81e1bfbe40f08fa3079fbfcab4170f692e87c92038055dcf7ef0ee765b3855d0bc0d975ed749fd9498407480ab3de3c1ccc81c6d9016ee75dd0262e9734d0e3f0336dd1dcb1ac4d27f33e31ceb0a7f4d365be88e9f77d246f72ce089b05542f910f564e243a7264f6eb16674d3fed89b731d08332181ab34e66a2609f3c6285e14c1ecc7c335062335ef69b4cb959aff23b07b821a1d3699428385afc50c10d5fa8d6f9bb9e48e0626ab82db589be21012a0a1921453a3b00b4b80d459551945cdbce561e3afb0d703f79c3f84380e29d89e40f126310f19204e7a65d68f089c1ceaaccf80cfcd17831f4f0592f8e5e9947b2c1fd2db965946dec865f675df4c7e6d4dd055db216e5ad385aa073e39b4afcd9811aace1d57c5caf669f7ba3bc9189c9c027d5ba825e3ebda7d02e2072fad83b7aed09709e18c42111ad8b9990c40204b390ab1b4ab49791322def7d6c713c8155540981a25eea262b7e63cae1322f8c6fa7c8000114ef473102befb22b60ee4556e6920f38e43416909f38035e83edf8010308b18d94b7d314f58daece095ac9748d14f192ec1ade8cdb93e4748b98cdbb8a0bb7fb85229bcc597d63669791d96998feb8906ff1daa44e57735ca13faacda540f857c007222d6f621670c3efa3628cbe89f1b8e3b26556de66245826e68b3b64e444174936fe79bda5a9b0a4c77f6bfccf5a8037fc7218e39c5e6b1d21810b64738824c3ec5b740958962ef96955dfc978d20191dd00f17f1a9ecb65d8eeff450d8e68ea4032e4d5f2fd0d06016b339cdd46a6710c59318089fdba38eb4450b787e2fabb71c901d5416a855109c01f9b26063cb320592e9a8e99f986d8aa736d38b9cae37c362e185aaba5043743630eab46bf018af49e6c8e1302c15f7ae3c216666f3a93e5b9f47254deaa575a2ef4469eb29552ae4a59980f56bad6c3ad390ae688fce317fb4a233c92ad055c5d0ab48b07b14021089737b7daf9f6c8d7cdce55b05da65db4292ffebbfd821783d4b3ec96a0d67b0b15dc3945091d7e90414b77f858db21cb07d77aa29d8c4ac3683f85294427fd840966449795f41233cdd030fee0db1d4e0ec7519dfcbc2c7d0d017f105f737d8f45208fab72546119dd7e0c89d169e1cb2c5a6ce9561fe4c5f112e64d330ae56ea81e53d2d39d7f3ec7f0b8bb44a451f9f1e1758d8bea0eb38a5d2a4d29f6b21e4c87cc7d4b4a31b1a26e86d42df225a862095c4e1af63c755ff79f2b8694753045c6bbfe637472d6aa15ee7d5bb0680d4936d3b33b6073424e97fd90725555fa0f0de750e30ef27bd8cf07af4332fa57b601d31c4508aa109481e017d4878c1505c897f70b2f92ba9a7d121c3b6f0e97b07d15e4caf44f2021574946bb42e62c6fe519ea6c46e9a8d967f036fa87acf046039a943279c15604d61b166834451b1ce33f901269c2ddaceba7bf912a302886b1242ea7f2d668f7e89f0d275d1f5a8398ddce2ac59cc26f54e1e430bdc974079bba79a14057d5555b00e88882febfdb9c4c246e4129b61d046cf45e22fba713dd286e76b180af0826d0cdb675ff8ebaf9ead4dfcfcffe1f5dbb9b8adb1ea494807ca49df781393191811de51d54d315949827b7622a8df75b63b81049dc224f128bdca1e0ff4e9c55edc32696c211c4563ab28399888e6c729fb81cc9b7cb1e556a91edf2939f4880cf2423942446d3b23bb6de2c6bcf2d01cd8b0481809a2e4ef59de5cb4ab98919489370bbe631517b068d3bd70bee09c0ef2202afe19567304bf1031423e391785b5a95778afa5e7b8e24a9f9d15c2c802b816c7cd5d58f594f53e42294c76cbb7055f1742618aa66c78b9683dd3408f74b5cd26a2adad3a8293975f906efb412d51812d7e493a4ed2a8fecb482d8daab3e4d98a00631b4f3c3a9be0c540a8e6f38aa33d9829616d035650e2ac465f0b49590fc8b5f6d91434d32f177500daea92ec9ef9bd046e3c1e96a9341e1f813ad0757a28d816d50d3baeaae903e197f62b0c75d8134f81ad74af0cb53c5bed52ceda5069e8cf1d079418ac0845737a4c199f2249f29a9b4f5e314636494d7901ec6c7802bf481304bdc8ba89c48e36aa6298a437cbbd1887c3fb4afee24095b77b54cb0c0ffa513c0cc62c6fab065f310854a8c860d8267e87162862d8041483afe9a7a5d4b6a6f9f13bffb32a5fe195534841c6ad3d063c18d789ec766e9ab2e8c0fface45378d3cf8e105e330e06a20a3c44cbbd899ae832d31dc19ca06425d6eae00bdb2f742588702fd87ccf8aa7ba20ede317a8c9a88edd41171512f6a3b566310962a8f99190ec2ab29eb8dbfb7e5a2650a298aa32deef60965d74ade6619d2eafc98a05b1fa2b0b01871a6fea485583901eb54939857c1ec2ee9258ff731b71addbca446a198e19be83745328b7c855ec0db8d1d81cf5152454cd490b83ed818d6a950d8f40c907a038973d8172c773d88a5038d59052694c074e3400c8084ee3e474cf28e5dd382b0a91b6adfd97a1b510c515c0928982f0a0e5d10db5fa5779ed238cec8af63d12b4ab3b21d2a769da165cbd32d706b4b2276999bafe45ea6165907fc43676e6b7915b68218ac0fd5dc19c1067e9368b25641e2f90d3d406aeb409f64c6b37af6f127f046e74f679ad82708ca80500ad59eb5e46e273d041d00bed48acc005ed82391984e69e75e34239fdc7d3ce839a4f04cf4e746d9e196e060af84dd8240b187d73bcae3ac72917d280fc5e99f1b57ca351defb5ac6c4cad840067e1afb161b37276cd17ba2193b57b8383fb40eb6dddd306fe647405180cdf491d58c4cc0e2b4e7fdd9f92e62d3ae5febdff96e8833f3ca65a5592da9011f8f3e7533f6dd6ab4c82d60b97bf5f79c94635f6f453c2c5bbc0e79d8e7811f1aad4fa87637325d0c1ca318192473f561c8fd6baae7a06384e3e93e791eacf23a605f690b718e239f5bdf69c2f5ea5cbe7385b0b9ed30cd9284c4c69ea6aa9a1ee0a33da8754dc02a6a5e0f37e60331ec9e0b180a02b3359304fabbe8aa383b85b49202862503610824a83d473f1b7d673bd0a8e16e2a3a981a6b56f877e650919cd24dd9aecb609b05e78de6552341c294ea1386435fc4de83d67a39d86a9342660c683c754382248b8df98934b04eb47599dc4759fbfba69f0eb41a8d7ebc8d6f00b0644a4a492d65bbc719aa4ea14ba3aa50434422a07bbbab2be2b9f951a5248563fb09a32a5db56f876002d04ec8382fb52146434b9c7bdc4ddcc2c28c4141129436f60d4724c6a19a9ad54e3f838e3417c89fcd8ba2d110a0bd592a9b16c2d9ec8275b0a011185f0fe6d54562283703b0d8d50f197be656645b5d6d4c3fe5d7da743128c42870ece106fe6993ba12d28861c9f37fc0378d7327db1ef494238323973237999ff0005e9c98efa03e3eb93efb8dd4209b552ffad64e067cb036d1abd2a4704de3dd4c6a6f17326413079b22de5848d844361c40044059adce15ee6941f65ca98f937a27745c7b1c3821ea338ae6cd90d4f52f10a1a176404cf08064bcdb84714619e2eeb84bd8fd3646e35111eb9828631cafec68962650a95345cdaf2051d259596aecb531782b87b6309e3c8d6939272e570fa581a0e604f01b29b14dd160d2af7b275ba39c1d0face24464087aca4528b7262ef77e0b8ecb9a492f7ef28a9a8d80820a4d65eee2c1758fba0fd0d5644909858de6b8550affb07912876cf2e0c607ca462252582ee450cd0040b5ee46da8f6be57de96cfb22cf6cc76a1881947593a2129abf4703167548f0e5bf38e282af0fdaf7f413a5e4209137322588dbca1da398f93e24e7d375c0763c0bc3584a06e01e12820d6f5d775b3f7bc865fc6625dd61299992169228e332b91150cc42d686e0accf27e089502a69dec0f2b301ca5fd917dbfb924910a8d9513196adebddfbceef4127401e4152645996f52bb7e37d0d1126129ef884a5c51fa46c7fd08c97d72d9c7429bf8533590dbc1949b164fb7f9d2a6dba19907a814f18ab100667ad720fadb136426870867d166e8fac5879316095458221cc3061739f923f86c962ea652164d4287cc5f75829ca1740fb0159889d2cbf0c086299955d2f8ad699704571a7929ebf13e30a8d4c0879a308973d3facc029d6eb86f58c89f521a9e6650a81468a56b409ad2b4902d606f0c80597fad99a64e701b351cde7bc0ed54a9f8b47118dea2e6901f9076e0a1eee5a8513905f82d3ef458d42d8bd69108c4ada2b93eeccdc4d8cd7ff661617982ea87d70071e22339daa989d757494603bf21bc99669b21d7c1dcfae77e98008b8c70f7b8f3761c21d27b7aed5c4c46a739fd805a424cbc388a72bd258e8692e0ad85a7aa3c38ee6dca2b284450de19749a4ac2a6b9fd62162ed064b839116f489aa4ff0250298ca5ae2f7d33a171221cddb65d4cf3e4f1f6e3399a6a79557700d2c41450bf852be775497519a5b075068513a9bd95a0702d93bc2e4b0732a738a496830872183665819d1ad7d3ead6cc5f349090976354699abbf42de4fb1496996aa502fe72e8e54ac63252143df5bd17d3c6fe9f794129e6000a28ec8eacb1aeab01fa8f87613f633f80f318c7045c96623b66f7c6a740574922187b2c8f975e76cd11646757e3c0c1ed26cc7f81df36fceaca0726a8567987a71a21dafd477d16324ace279b505e6b52decc7a6ab0c8d051516dc4ca67895632136732f838e275a20ed32f149e28ccbe0ffbb08cf061c7f6c396e13042cc57f229a3d945d1e2c5bea94f70e1f53d326c33149e84ef0134fc10f690160a35741b47dd0875ee9ced24cab248dd147ccf78c65f45f6b503d032c9c061abb95b3c529ec3e0746211871307451ad7cb5e9294ca6b6f1b7d605ee7a5400e8398c3e05e1eaf76d66f0e75f45701cc73812ecca344d9323034c2a586feb39421c9717c2301b8cd6b4fea5bbb96fdc0ccaf7efe25bd381a76fe65aa3e52be5b70bdd3abef41da2df0af0d87830463039362fc69e0c1f6787eb2ce51f7c268443cbef5a9d01d2a8ba12f4e0500c6f6a5b2bd8c38e56358c12c5947da5796b2cb3667096e6a9818ef36e318062064329e3075bb5c91b887ed69b235d011b6b19d56263c833bfac7156cd56cc1c049ec98435379808457b04dd2b13c6b5532433cdec1dd94ea4d70b16e80a5746547908b76b62a9de7e02b4dbffc2e7d26bc4b9bc1ced6e861e1d305d656153eb510e803fa0e06179072be00ef6dd15c442988d49d396f420ac8c3cd713c70e1edbe73782762c275ae32e38fb3936d767af4ed54f8c264e76b5ab49c290906bf914b521ba0cb9514c1cb28cb0430346c7abb9b25057c51c1d9b3612e5a0acd87561abaf15ef7836374e99d8106bc6ff0d3c05932c65062d58f3084569a813c78c16c01328ca7fc93f3bd4d6796e186c33969aaafef785d8cdbf694829521f723edec362ade30cacaed7ccc9e3cfdce7f06c06a02a004f984796ba2ffb594451cac244a31dafe4f313de0d3376aa32e1ddff302cba35881ea51bb3476adf560fb9a05c464560d1980aea5ef34491a905664d526f6b0accf892154424e86568d9ebb630f35336eb6dce00d3aea81dc235b1f5c26f5bd8b901e6b6a34edcc3c0499e277510262c8ed24975d28c7411873753921ce7f5c54da924174fbff8b1eaf29975bd24bf4d437011d5e67dd7f31429219e3d781c9bc132b19ad33434be9b13d0591f5331de08e5893dcc7b6f33e43d1b504eb15364a2ad8d294597bfc7fc549487dc25ac54d8dff102a3b4c73889889420a2db0a7da182aa26c0e8fc6336204a5e6fc508f12dcbc859ddf2f750e276ceb1f62daaf1bbe9c43bd6cf5ea4eba4a3f79cd25f136f1fc360d1d3c4404b9ad6e929d232611033936d16cea958e84ba7846fad055591ecf7e57d1590a4ff062c5548225019351c45038591b46a296ca6b41af7b0f2cef052fdd8c2f380b09787f7c13c165ce5af8174453bd9caf4f6ce6c2d6e941f4d7949b04dfcbf7056cee1cc314f505c02d7db08ee73fd3ced27fde060286d20b3485d8b5b29c4842114a7909fbeff2be9d9f246fb20dc88b11a599abe1d1d95f941c29dcba451b76b25851ce6c3f18eef8fdfa88140d9067a633a9384e3d08f25d0ef7ecee27448ecdbc06ba523fb0ce0ea5c83af7d2be587f636a93e0a5ee58b8d2e95a17ac632777e60715782a24ab86577e2fa1b9234458f0f1891a01213ccc7cdf1e6aa2f314fd63ae4fbb6ef42b86f9adcf9a4d8e8905c229491ff3b7db51aa9935374981db58b4f87ace2678c4a75aeacca2c248788e636ee9fb53cc876f66ea21a5ccbb39720540cb87db7c4241d8b097b2625bd5175329e07fe52525e8190e677d51679a3188ed1cc2ee1145fa9101e8122958599e74bc8aa5bb7caf99e2a81009dd74a162443e6dcd5115c0b22ae83a80fb6130813192a88a195bb44bec8e28fdab77a66696575f6f69697cb94fbc4c5f335f7cdc0e4dddf8c4e3d3cda4184377ca7033b7c049b7734116925280cea10169cbd0b3c4e0327e127f4366e544f309ff7187383b21e1cc71faf58dcf8a01fab268b5ec1fd692152cb74e906b5453d95ae9135caad26b44571ae66d9ad8f680cb242819391a4f5f545ad20a3bdb7fc7007fff12a8a085bb810e7e5d6ca350e9cde21a12ca809b692850bf36c37d19b1f54ea690c89588fb798c27f78b06a1247e7eef61ac901009226d9bc5e1b0c6b90bf115dd84d06c164187231bea89c2574c4a007fca4829c1dcf501b81cddafa83a319037f5a950572bef04566d3c4c7f867d19d60d4bc63cdf711dacad360155f7920e498533f5c2f8aa3297d33c20246a84fba41342ac56ebe3327c38756d225cbab8260c2343284dfe6937a46fe01f08e8dba4b26503b2167c142d4757a88d349e6e24f207c4c0e933384fecb573712c90e1849bb9d6e22d5eae2ce586ecc83df642774e8f24614a0c825dbff58521bc75aa349e00962624257ee0f30576682eb1faa726b0b7398823013eb6aa04373b78c7fe5d6698ac9162148412c2061f575e92d539d4f326a43bbe6fe681a4bb6ced3c737e90926e827797573351628aee5eb8c70175f1919a1a9aab0bba5cd03eae0222931f229917ca3f1e3821d30f5a634fd1d32ff0e0e275c9cadd9de7d174d885255ca74784bd89dcec2f96a6c80531ec824b07d3773c3752fdcc73448dc138267d19cde63bf8e94e4810acac7e9ded5c2d69639e48eb4090509eab37844355ba37ff89469808fa0a9403b2bab8b8341c340e65fcf3c5b9b485a2e7c641955c096e148794e6eb059cd0a69e2ad74b0ddf2fc14cbc79b7d3403881bcbcbee3d1500d0727602178bb1faad04d5840706c0ce1e3074f7996f18d54d2a729d6bcaabf71be191eb99624c7d6bbb1279d55533ef2c4724c02740b46deffcadfc987b7fcd0b644a7ecdfe557c5aea27a256ebec28a3781edf4c332eb062a6df7d6d99b9f746f62b5b11817ab9b7a81bafc278c1cb19a4a8ff200224f9407244bda1850b4c475fa6a2d557930856b52569ec539827d7ae936deadd51b97fcc8f9041e223c22d73acabcc1c46751844f3f5a27d55f1c353a06edd6464971e10ce6a0ca6eab9103cb3c8d544666621f3268e197cad2a04dc7cb467481a92c349238e5c0da6b356be70dc5e90b56eb4e9d4ce2ed452ca7569d7236507b5f21aef2dbdab2a4589860f4ec3b8c6bf67e962367b594b676c79e538eea524263ec77fafe50f9c743c8093e6fc3ecc816eed75bbc194ea6e9d70852d4c55553ffb575b093e1640a6f406aca8dff491a1d768d5a4e01bf7a73ffb93f9f3fe02c55c86578d2057bbc17a4cff923cf4ad4843fabada76d19ea399887916d54707bd775cbb8b63a91e7e6482b316f448d92592cc2aa545c75e30fe24e625f86308fcd4fe0f37e3578e17d9122f1982dec08bdf63d7866c3aa6b0285a01abd6d3d25d2ac05302e28a9c1f017e08b242dbd87669fd8bbf29dbe77cfe369f070d9dcf0577f70e10c16270049a8ef227f6289a31e2c9d419208351e693e86f2877f48bb1f7c09442338869a040bafb57ba2025f42b61340e36dda9077a46127b23dee62c190bb39c371cb77929f1dd0ca3f378c43c9701705c3d530d3b71741cae9477d2aaaaa4effd41568d6c614d9866346f82911e28a1ed415b70c3fb88c47b2ace018cb0c7a2d374409ab1d3316aaf5165b0b59527cd7a06bdbe5879b0dc80ebee5a0729f8f6ad5080e5b87043b9715d3f298d93e24ddc8e31cd499f0288f4052c2a852f31a14091de1290831c090222a2991d777986108314e8338efe00263fef96e56088b4e0c8762c96fbc4e3e549b9e4c92e63599c4395153b657622c0ca282fff8f3297fce2389e3d3a0422ce34a7e3382b22a3da81afdd4962a92397d96e5c1eb8b59d3d8e60693da4da74bc1230b43e75fef0a5030824e01c25cfd626358ea0c4ff3b84282aaecd4d61770e247ed8ea7c1f64207fabf3c03b7c26e261b8206ae067763b6681d70a9d99bd21411e5b97dd83d2a94e7e8cca23c0326cdc064752adae849855bc9998e68f18c69242f7e77f9ad8b14648060c1dacee26959aceacdcedca6ccf624549580b3212d5a132bc4d57433eaaf370fceb220051d8b77ed0aee32f9a9ed628103d773f26f7cce22d33d8f71b75b6e2448b83716a5eb875a018c74867fe883747e072eca1e1e4557c2b9c49b6b76239e11872c3d7f60aae0546898d248371777056d7153ab0cb4d51c513b8b5fc0f4af91c1cbca9732128353a3302bffc98a46bc2f3e9e441ee139e91b9c1e8275613ea720b0af8ab7531b6cc1aa1e0e21c7918551d9a09f5e253508777ab49480e6656b9f120174b2a5d3f43657ffd727f87d6dc3caaf4fdc070fe3f550b37729b2f3c36c6a7a50ce12aa413663644a2bd024e4cdcf09af98061f6a6bf00487909deac58cc1faedd34ef50abaccaa825e4610c855cb4d575c995463a4ae940689d202e85396026c7df5db23069e6f829fcec440c8a4ff297270b008adfbd59ea4042505263d374c0913d880186b16f46d4c3369b79509e98a6fc7f6bb453ae9816cf12e23f9e512eff83a8ec42046ff458f47ca719d355f4beb456b1c3dbe0cb0c43950ac6d7977578ba7d672b26b2dd1fa5ba51eb1b418473e65d3b19a5e6ab95f849fe99d06253a6695f9be18345e9f19c10e29c69aab69e07aaaee849a59270f8de1bc6ac10a4373d1f16d6013cc593d3ed803045f9010ca6aa85890f8f490fbc17bc962853ce1cbf9ab763ec020a2fb894b90415f8a57122d40f42181f606bec4567cc35063210d02ed16bbb7990f4bcfb4b1715ba05966536e31ab43a46e03ec903dbdc4bd3595b2882e0bb53cfc3f32bdd7c9f6a4682d7bd733d0cdcc9dc2c4003668a7b0cd7c26e85a9c3e1c14ed4595893c394f7decdd36900ab6d349968b87525a63e79e804ee08cad1aacd8b792ef3b5910e361c1c11cd9c316ce1b1cb2336f7a8704c2796cd8128bd4258a8514cbfbc1cb69599c06fd94340aaf7b526233d47f44e2c475994051aa3afd2881bd0db82e9e7a45359c8d778d3584e4cef4966e88f06294f94058a36ee06481dff1ee336521938c970a75f8113ac2d34e76e36e5387d19f7ca1441e569de272f20932eca3d0ff4286e948a1d443a1a5952d7537f925d2d7b34f7730aa0bf4e510d23079bd8c5458e866dcacb67d89f0c10db2c46c8de26ad6b36457950bc321550bb637891875cbe2c4ded125998f3145430cf9ada56a61a0878a65ac3fea73f7eba7425d9c2d2745d8c952d44d01dc70acd47657f85c7b795bc6128f8f495c17988207fd265bc9728b20ad50d1011e1c5bddf11d3267f1d013fcd040a5eaae19b0a2ffc625a4b6015cfd81f36336ec3d17ec22eaa8b2fb70660c1f4070f55d5ec45f58f3ecc0fcdddbf09113c3822677dafcc671cd344047611bd42fa5b4ddf4d8f693643554e5de2f30e6d0b7d5e77053545497be8f8ae1e3261d1b39aa5422e5446de29b537b6191138111880553a365624f63b8826fa81fed26fae8b30901585188961e0025aacfe42f7b84bc6e91a674691d9ceabdb31c23ae22b23fc23c90a8b949a36e5485cafd574f7a75e2c6e138d3e67152dfee38fbefbc589002f46386ee2f72a090ddf836d90e4188a6ec940f6d3ae2138a25a1fbb42ae311621299d0ff07b62b59c3e3a55fb53146f919732ebfe2bc07677bdb24708b1ebe650c70e1f9f30174a6b1a7abbe2ca7262b1fe392e34872c68cc33d68ac2d179192c11722a3b5c57208b078532f52860314e880c4cb7a9978f226736e42cba20daa6d33754beadb0fa6511a018c88b165433c97678cea6c373c8bfdad10e3d6d142fe5c712e78000a9f76676fe35b92e13d13ac9f98b349fd8235afd12f608d3b2fd6a16bf29e536f9223cdfefc2b9683596bf64117263126fa362f6fdd03e81c640400520e04d9a54bb9cd53a82caf4c0b12ded7bb734c80944b7b0d97b4ca805138ef5520a3f903d8547d45f24bd1beb7148471cd9c63ec0af5607b1fea587fdf49d6667fc101f98626071c99b7757958a13a484527648ee6c6037668eb7f2281ff927c91e39fc5961c281f5acc18e688f606312fbde28d700a5c9f9a786e5a0fd9f4b1b04968c48f54b274f232bdf4cba224dfb58a9366a91bb6c4b5c817025e0a402fa9a9544290640a4fedcf67e81cbb82f68417d0c8a92231758377b3f3bc7cafe419b140e70ab4aa6b99f4a0331de143ee6a62180a0f1740e8d51d3b2dd7a2ed14425c6baeb9c9a0e1bff0f66471e93dc364398d25554d2c344dd3ef04a2269baf0554f96ec7aa0e40f6bd78231fb37b7a7d23754c40288ed41cc6d36d4efdce7b325573f47125a8fca5fe3d3bfe48bb732bb5ba06b8ead9808b6a2d4c6e398e12501a45a7a627393223f4ddb98eb6f08b15d36be3b510ce52278109dabf0758a984603fc55b101eaf6c60f61ac611c10f6a3a39b92908053de857b51b519f9dac5867152aa840c9536f81a884a51b097e31a1fb76f59c6bd1ba374564ed91412a63badfa7db0f3fc1e6741914ab81551a47e42a8462edbe572de510ea06d61c0c292b99ef19ac9b57355df339703a694fe10365b1b24613343978316b8e177c22b9a0a4093a5f8984cd90e12607b0bbe1d322efb8aedb519d629407e26a59a2fecec9435eec25cb6106f71548e96af6f1f5572c4f54e1b4a3a837b54983b5409d86cd1f4e6985b8a37576c5d388b879cf55e427c305404a87ffeba3728c1501e1eacdc45a2a12b8d72802a965d758d69a244c0f2fddb1795e4f24fbe60c1301dde86e22df6f28c9f257647fab539653b883e3b63805d9770c31f32cdf48c951ef719b0c5895edfd2f6b5e8821704c6c129e9b11623993d187e3166b46084875abd671bc3c76cffa3e6e1708df64484f2cb73fbbe9cf91e570338b2dcf6882e594a4974d67655d78c24a1bc972be205e041add713bef0767f84e6faf172e098fa99034400d7984c71e645e99cf3b18b1c611c497f0d012e015c0126ede419c53bc387bf8472def46986ed2c748cde0914f566bb160345a2a0e076aaf4656a3869fc5f53e2d9f86edc19b1aaa9ec61bfe7d9682ebc16249f5498f00f82cdce9701fb8c3bd77e2d9c43b76d61a1b96442a560aac92d9662b467cf8ba958bbf8ececc6a9587bf337e69c106ccf5bd924bfcf336a8993c5a67f318ee6114ef9bf4509712798e4209518f881cf39c79b3868f4d4e3a1520ea13281b07fbc9fa5aa31c38487c2c3d44e379efd204737f41c6b0c5d4aec1b9751be41b686a4bfd6e78496c64bc9cd2043b837baebb649cd74b638e76b97b3068347db821b5f5941b3765ff38bf7e85e2879a27eb615ca5401a5edb3652c51cb0031849858166647e86f0a5f0d457408b5bbe02d6a4cdf306958ce46255459976d932e7e91f01d749afdfa71fd30eee0a77871e4ce52bf2c6ae8bb8f2ec45e3779a1ac49b7b6ef563f71a5b4fb071a23d439dcdb8666fb896f52fdf4135338b9f9274cfefd0174adb4dfd6d8e66ae522e993f322dcf97b814a5fdcb49222235ca1fb7adb5eaacd5e315db01d00ada1d6495bd1c6b64247bef85b020c86548e9ce5db0fe81f6a013ce43769523366d2560cffe39fd529a6bf8cab8bffaf97ef4313ffdf38ab4a90e2aab89bf0fb5c4f5cd74fb91b61503b5134cb6aedbffc35823c8933711e5438588513eb999f09e7e2876425633c56d2e977702c906d3b9cdaa7339228f5a2e1e8cd5b8b8c3aba09bd528740035b06757ea122542b390275123250a422805ecac3c7e8b1b8c7fd12cfa80c7c0f31e8864796b5ff86ad27547686af73013a14486ce523f61b7f61ebf884b843cbf8ce85b4de922976908332c563d43bbf76ec2e44fafd0f5ee49d7c44c9f8a9c88f4a541db0c9589cdb292d280e505567b82345dee2631ccfe83305ef411c9eb2f066054dcc112bd04b4e9354115a9e575c02e63c628c4c83b45c1b15a1cc8c5ae3bbd594199a8331f1a31da7cdf6fd4889b87dd6ec8e3fb5c7407d5947f21557acee7fa92ec9966f1078abcc8adeb7812fbdacab23f5bac51eae144836affa1b67e09315125dd7830dab4d3c9f083ccb77d06f62a3bec31de8d13eee995a63015f7d6c123639e39f23f9720f5def571fe75afbaa9c7ca9f0963c6c5508bebef785902cced83baf63ac1bb4e1138ce0bb194bad9aac21f3fa6c906f22ed1b877b929c6631621441f8319d0e41baef3e20732d55d390486d97e85438222c58a971f5d603f986d03b65edf280574461cddcf8bed8ffd1492d3f231d1b73683f33475ce9073aa00f293b02d38be6cc054c3091cb5fb642745170b7268de7a57187ac2b71d401481be7a13661beba8d07bd8bb602684163799ce5185a4b46bdd3354121c4eec7dd54bf762af0fa4e2cac4bfef0af98724a6fbedf6e88664f11e1242d83c72b350f630148e86f53e002637b316902f16af6bca8e0b54f10bf4ba9672d14f58c1f7bd36dc1d93d5df9820300a4e868a32e8ebdd19deac2ed5c85936337babd73e941cdcac19f458994aaede0f3e09112aacddfa41c18c689ff97b79ae7889486e76e4d65833654c1d84c0c5298da290f71f3660cec786313729fe7ffa814f07d8edfc8a1a65ef24fda3ef3c4e21d615b807ef3e353fadfb1e16837977b608f586422992566b53767a8f83f0caa97f742fc7a03906f3c0a0e7fd522d7e6c5af954e9b93c2ec4ff7be722dd5f5b2ba4c45c3e55ea24830cdb18e325735ed8c87a47456e0de21e2f92971d4c5e8f8837e01ef4ac5ed3562dcda977bcbaad2491e7fb8785390465bfbd5f6b6f9481409be8e8406c948cf6f27909ae2183e5d5b72f24837d2d7bc76c22a7ed57fddddd48bd866bca02afd60c47b732ede551932b49137d460654795f8b0726c86738d02f88f1e96811f7dc75856b50e50850af05ae595ac317650266e77d6415f8b2a9cb333438ad9cc92a6ce1cf00edaadc0803da71ae4567c053c9c72a5b61a6f4fadcee5ff753754ef64af0c72b419d722049ce7c855530f60763e1a2391dbd6f47fcac904678e15a7ccbab4957a647397a6c910ef97c6227798191cfb1095df8cbf3a30188f6172c5509edc5494e2083a776aa0ae2ff1de89630535f8831faaa11ead0310406c4f1b525f62061eb379c915ba89039603bf2a5b14ac692aeda2287ec71181d218928698ceb3aa09daee8dfe69af8fa4fc4a75347bcce44639a009a56896903d87cc487ac5308b523395393ab97df98397765c7fe94b92f35aac00ae75fea1ff6a32b3d6e9b3a7900a40b31e9384457d848a59bc9dfee14bfcce17412ffd5a2767c0020ce9378af134a9516ab19b31c72dcf0e80f4f3e6ee3995b4547b751eb2078bce9cdef26ff7a9e25d19f5c838c240fa4ccdcbbaf8d22fc6499649bf1b8497b1a9759c8c0706ea652924725237c5f6e7f15eb9de3b619b58abf9a034d59225e513bd718c0ec317a111c221f741517bd0a00239203d41ad715554908a343336d1e10d741167f23ca04be75f537387073c72c8dde42a85e4ac239340a8fd41bea9f8cc087346164561b3e22da8ceca939333a5ae6eea1ed4ac5d3952ccd1b7588ff8c6891a40c99737ec6b3027af8ce6f9aac61b30faefde6235e2ad60eeec1f0ecd433ec30d8c28dd03293268cea4aa7ba0d667698af2d82593b4d33dfacaa3fe876c8889de1439fbb56c204822bd628356e7ffe277cb9554e86a6b197765f865cea5739f045b4bccf170cdd08e94c6cd1b2484359807bec9d5bb48364b0df498ada3a3749ea4d8ab174f1f688ebeca28f57cfdfa36d53a52d95b022591c120142f8ee9e4b575ac298d3e51702a9262d8b92d090cc93533513f2f0c894ed0c9a6e5886ef15693cb21e329e0ff826a622ad0082b8e5c7e823cbe4e4f3768ca9f56f293f8ecad565bb5c10502d6f7d78ce2e46ffdddffa0a4abf8141e8e3fc836745c94941a8ccc6d25a31bec9f80c3b2fec4c7929aae1665b1d48c12e9918d2398886bab7b22f0c03ce8adab9cfb91176860a6feae2505b58fdbe1a0f920f1326369643ffea294fe926fe95dc04beb98b56f88a13182e971ad820761a7ce073e04b089b0d1824af38f0b42f93bbe46e882fa73bba97181fcd4d8fb7a43bbbe98a2fc55f381f5aad347d3af7427640813df118c198d02b846f3c896842807f6f3febdde7bfec920737e8acfdd472ae69abeac9338c427d1f54269de85069c9878a37b9a13fecbc3d2f619fa33517b9e3890c94fd18ff3738a4e891d26d3a3e21ec55e7983e1171e41dcc874ad56dab13c3ebd557e2b97714dcc17f30fd1f0b3f5abba63ea46f9e6497afd1b12bb2e707f59387a53569451749a8932ea603c853bc8a63cd3d64e0ce4673f0b030edd2f4f42927eb7e76573890f07679d37030116fdfbb7d384d41f769ee0a11e0a1e762455ea739cf7e77542944955a3489648bc4e7d24aabd26b2451461a42bd89c126a4afc99c5fa3af0fdfe7baf13c09a4f27fcffc320cbf8c3be31c96884c6134637f7d8e00076aa1445252c5a0a25cb5d2587a0db9b9676778190f080a95c4bf0579eaa48cc62da846751260dbe0c26abb7d0ed4e971a55e6f818320d0a71bf225e78e04283f1fa98e10060812b783f7710f4f8d50d95c744dbcc8267312978c7056fb1a3236d5b2c43ee0ce5ca933074fa0c65614f99681080084de9d6b3c7a4f030b3702176dce7af0ff98df7e08c939bbc1ecefbc292978976f3c06cb02eccf61061c696f3ba4576996cf9ec03d61c45c193dd473f0461e5e6984c750ff2b609795e643700cd6e1c11dc1a03e89724a74cd98cd5394ddbb47d1aa439ba1f95eff82ad2a72f43097621f2ac58d9fb196676f8e32f2e4c4add73713d35100811ea94d88686cb0187d8e4aa0b182c8b4808d5cb73acec09a72a85c06939a353f6dd68be5b57f96cee1d6dad98eb9837128b4c801dbc68db8a9e87c7994a5cb65ef7d1d5ba16c167698a44e0b18123d1af19c98412c9f412f51d9f1008622398f93c92e5a2e18caf893b36dd5aa2e114e217a0c12b080fa0b074f1f08b5c66dd635980a71f40f162c67919f7d9bf6a1cc1a763a527f7627679835b2a8ebcb6ea314febc04f5ff59dada24926a0e15fb1f702c59c6ccf1400037082fbb416d03bf12c085ac7038b1917c22301ffd7986eeba2fdaa72d451168445ad0fa706e717fe2da1a994033435ac397e72ddad610e7f981542ec92a8dfbbf50b5569d9249201efabab19b0824b6296340de7c22de78691d3f5be73d3c310b2560cacb24449701021051baf6c48c66b9c27e9a1acec93e6e7b92567d31fbe5a5845773702d78f289e1cb7edff4e3c0a22d9d18bc909c68d5afc9c6ce933f3bb326fbac47e2b9425b972b24c970885478fd9ef0cbea187e2672588879b6a993c308b8887e5c6ea3f58bc6f75e0408006b4274324f0aa84f2b42b313aac155cb606a10f76ecfbf8c0a2fa04d6c3a9f9effc65ef112eb562220549b5ef1ea18f5a816898776d4c47800f8ba32679dfc228c86078b23cb707a352b8d4ac23d682ccbc20ff675a7fd2e7328c6dbe287fb21bd735cc657af437e10047867f5f31f758fbc5e2250738c86b25ed1711a85b85e128ff0bcc3f74066480f08dd465eadaecfe8b79572ae7af53df8efa96b41a1f35e4dd85e4304ec23eb7b0d8cd65c5d0ef711912c47879dfb4d44f687d80a62c6494e3ca6f7e84865f951ca60a867d18a8a860bd3c060ebf74c86bac787e1d20ecf621c3dc032bd5ee61c315e2527dd209c075184d25e543f58c883ab431846dbbfe3fc6cc8bb94511c665e21999c4ee0590730e6f602705cc57d9059f984daa63c5878adf78f9c9976ffd67bb3da623d7c3791ebabd8913798f5de853b41b348406cef0b7ee18528c71d554a094ee939d867a0e1f03117870c9da1e0c0fa36bd1437d1f3500d03ba51432edd92955797d3b4c22ccaf3ff4f111209a5e2d3b88cdad13594a4afd0b74efa9b1e2aeb4f69e605b4c3c472246fc8054eaf1ed42cdd033ec53c75c81cb96b5f7122111c5c0e1edc65286a5f9a1b08ef24b498e8c98ed99b249102f0fdc4487c07f26c11dfca9e707937cdc21a13dc8c058f9474bb1df6b0635f4e9bec03f9716a36c3e87e001b236fa8020b7ba90339f01ffe714465cbbe243ba1707058887311da819c89425e38e581a3278b446f0a9bdce321f6ca1ba978bc05ac736b7090abda783c1656c6e87f164cb6eae5c7c7300cf64cdcca7d6ca966c993ee14234fcb4a5ab6e482c3be54581f3fa744e4a90ba00c14c157dde46cc802fddcad86177bf2412e3e785c45f3714181b5a057ee15bfa050ea04fbe3395c05e0afc4706d041527e7576faa06659d5acf97eae239ba645085f278ea97b90ceffcace12efb73a16fbbfa225bdabe22197cc311fbca8de75d5e9f3b93418f061d90ee84026ca47a5a2571aa30841d41ae56974c4c7c1ed72fc2d78a303bf0adb416f54b9f16da9293d7fd437fa227864e37f5f435978e63cf711b85d14ec6231a23fd38af77394ea4e55ca1b1ec6ec1b39bd0244976e86c6c391ea2da5c56c37b418b6a4d7ca2fe7e7c1157c5c14a5299534496ccf7536bd7b068248352a56645ecdf2d8c9cba52f52a82a5cc060608423d016b3cc0979c068c20e95770150dac90453beec52f4142ba25f16b557a2df3112867c54c9046947b5abdb5e0f5b427a36a17ed157e507f9642e55c7a72a27542e0dbcbd586693f9d972a529efed5f1c339097564c21a2ec7026bed436e1695e33df6640192f0697c507eb5aaf2ef89f3e1cf689e6394b377de547fa0a191a4aa4867db656a4999a2afaaba94e20d32d7004919f09cebd50f9fdc080d497af7f935622fdc5c50f7b7dd80104fc9f3740d2183d1bf32ce41dc7cd89253ad2d68fd27be91a244a8d33381afbb567de99992fe4c4e78dc81074719daba997015d3d603a1ea4eb7e91e9d53e2922930bb3035432e3f232d831ba0574031bffeda9ada30795291cc8fef5aee59c20cf6948e1aaddac9d3044ed57556a33e0c3bfc22dc52349ac62b2cff143155492310d44853d19c05e1d489727d0be83b30c58d548a5191c35a49372da4e3af7cd4f2c5bb7fece97ff04013900b44b714906f681ddc3e2485fbfdc4fc92752c818242928484734cb9d0e643b61c0c0acbe4c058ee8cee22c99ae180102efdf8d690403a084f5617a6235768caedbdfbf6299b283ca950592f411499b524d821c8ba62adeda926e02fd9888b99243c183fdc6184012be1b489b05ea958b98fcefdb90e709f219592b179519e528818ebe38739ce39a6beae5ed6d44b0b82e257eb3cb436ccf8f50b7d40ac880b4aa9aa34a73aeb66053a7c680e64af05b915805e2dbf24e82cc0915706dae13bdd4e7817d1b1f70d56f1551635f777201df058f6461c14aa8a3822f8fba3e33e606cd58737c79837a5c7550b8a1a375a6200ada6fd49678dd2ba928c344bacd594d49a10762753f1eb4b649d6249ff5432111436b42f6d50ed52ab3500ef09a368adf654b087e7cc0b616e57ac4fefd6bcec34c242354b773098f3861674d9b10d0cb38a001f375ddb38a4773f691649d8d1183acd54b7c7b2fcb00891367aeaa2cb4dfa356f9bbe42f4d2710109bd3bb23cdfe0e92089ceb002abb8b510f7a06c603882e3f6ed0b687a026ad771f1df0fe592cc17f94d59010aa68791804c059da9ec14bea6b5e7eb5861bd688b328a1e145b6b85e699fb99a729d962f6a2b3ac0362364b3411f435bf307ab19c3637d4b3c6fc26dbc38d23b91307d4956b25431dd480dfa3fe5ed1e6d2e264d61604e0b978121d4d19a89ea6addd05f40c3baf50bb21eda39151d97a56ec1fd79bb32ad00f156b685a2d1884751c6a9c34baef834c5ba293837e75d0d9c46b93022ae75cbdc1fd507dbe6d0591f96d66f1ca4bd1d403d84e499b6602e946904b54f3324ca2a4012f4c422276ec9cf4e571767b7acb02501984e0a2418a87367957bd463db2a489ff6e6542275ca2a180a12f60e882d64343348a02ed034ddbde32d936f58f788563d7155905b39cf3f1e54a4db9f71143618d5bfc418892112317bd4339902a08e751067448a58e2e48ee7de01f5bd96131ad1872b8da0595a1a685ba72d29bde7a352f38707a7116a4db666a149c67b787bf0a8d5bb3882c5c5e6d65be28ff751ac74b06fe05b179450b04e71a61882cdc4a7eaab11cb35c35f6588c495b5d12d8ec592f9f1aaf8bae703c869f9a1f9a537a4558054950eade894c851e2d1055c9381d39b9af400fe8bd55c42b14a1375e3b34612164dd2c265ff4d4c26a48138e299c328a3d2c51308f7c12f630975945eea5e9d1b60d3188491ddf48358a7c6bbba4184f68b0f29e6e410f8e4e2080423af59bbc0947ab37fe3927b7ae2c91350a424a22effc8387cb184fa71e6cb5f94e04e5619525bafe26df20e726dae880d1490d84f7b6eea4f0dab444a7423c717eb84059f5f778a6a548903dea14c9d60dd222bf3a76b0579b415ac67e7b8ee0a37a961a853e62ce44d47adeddad8be5deb66b9b4e48e580156f089c4784abf03cb7a5e64431825d0683a73e274e55e70f169d103f2d22c49a68409e65e0b647746082a0e53b79f75a7daf3437f11bb958d404ebf29a1f3a6193d34f65a4e6799d6a21aae27a4e1fd18b9eebb266fd5b7f175e9461f733ded43d0c8a93fac1b9cb4ff515a14212f2359b2359dfd1e5dafecbb57274209e4074156655d29eafe13d8c9abf639850a3b43f5119662a86cebd1e5f8f8ae89f4744b1d6f0cd64d4b05321941d84b853253d2feed184bb9af9ab05f877f99268090008a64953b04155a11418dec79036a75dc2557ffaa681b7d3b57d8b9256cf0801f7d665affc739d7feeeba0db42c7d2c579e84c505d2137892a712528e2dd5e5bbc1f83ad56216b283c5160f3a639f4dd750cdb6d281fbce6a30b594ad62a9bd07e72ecffdf5741080f025b51c5a97537fcbd14c3a26560b223832ef74704650bc315c89d4dec076f7d3d91fc5f6e581ff8aff6b33cfb0f1ff25e94c63d6a270df74c60e669385e331de42640663b964677fce95cb928b9971bdc762e34d951d6ec90a8289229172d8fa43ca5811494472c659438b0efeae8ec61afd79fe4f71855580184399fb8a4f23712f98a0f11cbec2340aa0ed15baa7806bea060a1d93449707cf5631918f76cae839910e73a32334b3df291e312bf18237fd752e01ed3c6e423cb2ab76eb5a6cb33b2d65cd2f69db6de9b4e3a2d20e6f84e67c0384f372c7905a53c857e7b4d73f54c526c89656d8bf4062b9b79eb40654d35eae250c2beb004a25a1ca38e922546182f4d05f20949e648668564dc4ba6b3a8876278332567b554da8fe719ab8beb8ecb452e277b69ce430c88eeea6e2f6e693e01f3eaecf8c0a226ac7b84501406bcba4db721f291397c82e8a6c9d38d6cb32b1916d005fc97bf3b8522f13ea02a2f418007963f536be80099e460e95c5939612f5d85428872092b55746eb83e55d4dc5eef9d597a4aae127fb732e44aac7562de2043dd0fe1ad9baa0dc101fac64bb8e3d3edd9f05687150a4cc83b2d4875a9905009f0c76fa146e705fae3b3200e3964399c7e2d4b4cc019bbe62a25179b200bb9d7fea01ea4780e473d2b124d217643d859ab344bfc9834804e2ed45698aac7a14369cfafc293e3a0342a7b0b63b874a5d3e428c36d7a0e10368ba086d99a1fcb10f9e30e038e58b1ad36222e76ffcd78fb556b57b9155f4985c9092af43a46176b5b7452b0714cfcc92724dd2f7d2a3b1f4b4c88596d08ba14330dd135461368fd9f531a09da99ccf9dab370fa185dc609b84bebeb5a8df2d8579a18516e9d7b69ba5a4ce97b75b8b3b256b403ecf2e0e3b3e91b7b07d861ef88179549d7a4d19302c17166991ce37b1231a534c7c5ff2ef606c63a735073f75ff6d82b9bcde3cdb504373c8fd35557e462fde0ac5eb7fe5ed56ba9f342e9ff365809d344aa3a287263d05449340a3915741ed5512807896f58c91dae96ad95acc2b2f95596291dbde244afc9cc7f4f16d12ce9a071e840ce75f7df20d4922e24e4cf17c1603b5480e8e163a60df75a5d576e883940cbf1c595b010977bbf3f4568341c72c699758563598d8888ab5de2f13daceff2eabdc2d358cbb9abbdcc7bdccde3c3bcf9e3fd834c6bad7ea708a24526a247b4a474d8beab21fc17692175a46c6d078cd6bafc03452967bf0a41206ef594fcbc39713caa31ca2d4f35b6a5fe062d00ba059efaff5e539cd6defadfc9db387e66a715c98dde9cea5186f3c318a88d68c4edbe535f2528458bd26fe9d6e72a6e0d7f007d767c43287915a64a347da56cabe9fac8cc62a5efad76694b1f718c23c4e74ffa86c3d5adac9c7bfadab25b2b4ca31dfc3ee9633d37d6ef9635442328d5339f0688417396e941cc542314c43b8b6e21f810921463b6832e60c1a1cfbb15b4ef0b09734fd3187d4a21059e40254fefbea8aaf8b6ad0f76cbc19b62795008b3589710b00ea63572f0ecbd780de44a94bc5cb9b170f68a4e3cd7fbd2ad0dcfc12ddd5ccec428c4f9a6834509386a98b03548f800423132e2df42b316084beec04533349b60c497d1af7ad20ca61c233e8004894fb3e47f20c3a87a28261bdf4e3092c58ed1bae9afd1a76ef0bd51e2926f0cdce4fca85db101324ec65cbe71867219195bbf9dbf32a2a79bd675d6e392714129a418ab72e4a30ddadc942c0037578a90383dd6a1e50e5807fd0a6d26296b6678d0a32dc2cbb4ebf643bd8f70007accf7117d1fa2d7735d50746749441148a4391975069a9b0c7f36de03c507fdf76725f22808b27b239eda5b4893ed3be9066e71511fd1a9f404806d99e10be31b0b2b55b37549cd40c5b3138be932587cfe5f7338f455a65bb7bcae1ba936c86e09163fa11d5df331c18716a4d99f4b4edeeb5257190de7c958948ee11af8f051d83f3a8b0da5dbbe47a56d266b25a3d96058a0cfb2ffe0a6ae39894de08855a9922e9f54243388244c12f16e94d446291fbf5d25f9d928aa004787fadfccc6a97405c8e2945909038cb0c5fac468faa61b052956bbb994839caac90fad05dd906185117067e15d110672cbac59a2741439637c51db4c59df53a3b64815551ae8609dcb70f890b3ef7e9ded49297117bdc17e47c8ce3f3cecfbcc9945950febf71a8b7be27602c245fa2287c0fdee92e5de1163101efc3573ec3ca98ae0de6d3a5d8b11c864ca399846004d63102afd1d2224a126e8b61c6184aee12a5eb42df19b1af4871cee81e570b5701c94bf2862ffd27bb05dcf325ca3bf8b7ca78b377c6bc502db47aa3d274cc9ecc12d4644e34eaaa43c447db2a02f3d7c5d0cfd35b40789f2fd6689544bf05d2d2074880cedcc8cf6e777cfb0e8927f617d0ea07c54cdc3a5e04dca761439d58604758f1b98982c8cfa61faf19437d7afdce43d2d75bfb56121a216589745852c8d317d1ee2b713fd0687f688a51009ff2efad3e030039103bc62891ab7f77c99481d37fc53903c0394fc6e5c5213dbea176d667ed4631a97775d05a41877589d3aa1e03695713a0b5feaffea3cb8b0c8498fa22963cdd9f046b5dbd781af257fb19b25122b08f270d410c5e8457d37c465695173cbd4da2d0363c2ee7ecf58e8f1d9544829eae16a703f38900a6223351d349a35e62dfd3a21b21a6775c9d08924a24a58c90ffbe559dc5fc0ee6dfb3f7cdf14c63a33d5c545c2874701d5ebac9c2e2bb6b45409d4ae624d426228f613768dac678f641c39e506d5ad96efab228329ed684df8abaea7ddebcfc01ee657c314522680e2b1a66fc72ce4e654eb422d34b4de671fde30ee6f1eb6c5613698e37e7e86b1f32ac1e29e9e767509a1edeb64fb01b8520f8941ce2e2c0d07f7c79a8b85b2b782f346fefef5021f5435c0eac18fd9aafdcb85c8c48bba86a8f926942eb80f769bfe80c1a8e0bc1041e6f0cbc85a3d85f0f57e40aed74a0de2fd1eec0c57658ef206b74a3465e0d41e3c8209eafc6967df8cfd8dfe46bb92d5ede9420055ff715d5fbbab8fa98ca5ff8dc0c80b387d44e2066412ba4e0f6ea82a13a29ae976ca5653f0c87709c12c3b963bb9042a25f4f5381990faa2976402e925ef9bf30a3b7a1769e2017d7635ed16aecc21570c4479cff7546d85abf7919d1ade7a2bb2ee0c4a08f9144f0f97738e8511a384cc55b15604d9d563cd5987795556e22551027203bedbeb2397d1f3fbfbbd3e6372a546d3abfd86c6542f18f747053226be9db776474b974f8d66d1b3f5859d09dccbc4ea0ca0eb8ef7e7fd75076afbc07c790822124d7b7c33f73a4415aada3e7c6f1b9c0d3f0186cc0ff4e76afd864e5ba2378f2478cea19a969d69b7ca06954cdd1e883f0cda3aa16f3d8d813a4c2d5c873ba42ec11d4ae88a2d13c96da753f87207cad4dc1c31bd351ec174337bd494c1ae83230dc6298eee6077a95234328a5af15f2716805f6ca961d6260f78b6ec904efdfe9b7d056e3f73388a239be226175d2395df53feea1cd103214457f3e5bb7c8e982fcbe823efe398ffcfbc6b9e09ae51b299f8a58ceac060a2a565dbd95bc0f2a5ac8aacf074f5bfb2e0ec53de62ada414d963bd384b84f1e15f9f41532243444fd66acdfe362f0e6860739b8ef105fb38e99f3896bdf5c3d5d0389e70cf53acf6ae7092fbdddd81cb8a0e8763d7c890452a4aa78086f11b11c3170178e4e3a315fb72833e4b8d2bb54d6d3aee79e8c7aa721493a08cd9af8bf056d4061908c4515d9c2ff97693b2d7cdb622f6f1bf80e4fb442e417211f563dbc46e87bc7d262b85ed4329f186e90a8c0031a5d38802de473252bd59837ceefa6476d6f82056e6f3baf1469dc172a47cd9e41069e373badacecd1d321d5fa4f3ec1242de72cf93ed2ba5e985e374905ec126ea5f55e3039b1804c3c24ebac21047f04c3c1b115746b90bdd524f5f1ce4adf25d7ac5df8228a5da33ee8d3cad7e1411df8d643c4fdeb76a6001adbea5cb85d2700a01a1408021f86bcdd2c165d52471ceaabc45c3c8c6458afb67219fdaa6285fde37c075d2c75243561b00ab5aff77e98334b5734d5e550a912d0c9dc9604acccb7c806785eb0ec938e9439003603bede902f7332d4ccdc32071fe5c94786aca3648a775fe71adab80c03ca0a5b5911143023c2dd52ef3f9f7ec86f84ca85305c9f8e4daf0538a0851abd9dcf7a0f4141e30ea6c76f90409091768b6851bf3990c4bcde19f1eab3cc2b5352efc7833f2c42f9da049746fe520b3cc2ba1f1b264c5e65f90b875dd90827094122ac9f5a94cc5b621a1ba54db2f428c9fdcc1a4d0b2d0200c258d25db5b726ea13bd00dca225d7fb2cdbc62488f8b7fe1b4127c71dbf6c03882b07c6f29d48d33ceff9a9cc483d68e44bdf949eb1ae5075ae058f2a2a85653aebadff91ab23a42207ffc281f6c73b2e7d4a2999cbdd5c4421e6223b21a268c3d9fad1b5aad774f16a99370126bb576cb6dd611cc08c945942e303028e4f9e07fe355e6496c4ee9588c5691b57d04ea56c81295aed229cfff6a0749a3830bba2920578da0162c1ace6b32b844bec1822679425185b6fa85eb9fe2486ed67b0b9f848de98cd94dd8e83c3e0d15f2c70fabe67299d3938a19388d4d2288a15bfd5650d1a7f2673d464929bd0386fd7b0819ccdacf680c393fb9680f1d490d445ccc5ae53c89745dd6f013f1b7aa6b6d9edebb301a72094b32835aa52e21267f54f58cb5f8523986a3dd0abd4451e98632819551dac434cfa983ff8cf7495cc0394b62e5d272f4b19038d6173b21cace0f75133725f87d92f678e75e2f4e036d5d0170aecae066b90162724ea5c583b78d3c403eb2b097243b3e17b989f7d3743528da0ef4dd53203f118b16407a2e00fcddfcbdfcb778ecef8f88f95d8b68ba5520db478c5205f2d66a0571d3de0b25fa897aed9114dd4c25e0a7c89b3dc30bfeee3eacaf71caad8c6a765cd5a6fb5f1c1ec21ac55ec4d8358ed373d668c7aa3ebce8be8a177243aa3da957c0960439000a303144faf097dad9e3177169bd65f5004ca12058d21fc4321db4c743d0a632fff38f46b2685bd3359d9b35f1d03f25b1f5d1009e434942b484b8d3352dbf89be8f305073f8219532407ae04792a96afd003b8689238c405b4493ef5e8ef7d3475b1dc382ae8cb015fb5d6b3475498e1c9f90797a52b79788f91c935688f5feaa0438b9a15e63e256738a203a535478ec97ff304fb7e8211af16a726a56ef17bc0850e0fd1f2900a84117c16be7750620c22b876db9e98bc2ae31bd61569cc7f53c8952b0ccc032e172fa47565249861d8e7e439bc79b454268f7f7c28ab52be84712a5cf8421312705e3136c9761d6a77dc5cd84d07463408916d987180630ac242ba7c72b1b6de571e381e81ee26feaa3204712cb0b83ca2f90d36dca0bc9f5a47b8bbee72a64c21cec425b35a7da862b4162d431b50493adae397d8f27b289eab9754ca35f8688e515f6e98afe4dd0d2f794e37e2f2cdd0a7821f4f85d910deda0a6af8f4e651a9bbcd1ddb2ef7f786a137d85b45ffaa680f0747dbca7a263f936c0f49e171ded83696542a614e58e598f92cdd71dd208fe2cd87f34d24c052e64dc3f067a2930d68dbe314102e3d91712813771113af3a7354f5bdfef411a00d96f80c4f818be400d7ae9c340b73fb4bbc2ea109e4d6b51b8cd9fe0580d5cb544335f150fd02d63988ceb51d4142b4f4456f0c4dfae26078b1aa27b3b3130eadb8c22fe744ee052d7cb3c7255ba95a06aaa24a2b70bf088feb0579cbc35c50f2f349bc67328b31664824a939982a96fb2181943e8878dc5008a0d4fa84b69e6500ae8774a26142c95981f84ebb1b61a73896945429efa660ff76049b264c3084d600560a2bb8e05181c59fad3819414361b44c9e04aa746faf8dc5e46e31160ee25a995134990855b30b90b722d5f6065e701f3759016f375bcc108e94314add5bae26db9590c85cab14eb46300ed1a4a3eb96ea7aaa62f7e26c7e72762cf05e05b5203d74ede52d615e7563e2a42ee5af4a2e57a7f8572889a1e3b1a3bee4ddd6691b78b2b422bd151e7359758c19fda9a058bd221d4658664936c714f1bc196ee91aa977282c698d2b7f89b59d582c6bd1a94f976c468b8706c831907517325595145304805cb10cfa62c3b49560015810bba40510c0d503b9dae69b8c9c3980237b2e44937586d7f83c1dc0afb174437b3b9aa91619ae221e7c0e434eaecec1ddd6192ce6e7b4d033c8baa11beda37cb4fd2a822d38cab80c7ae89fd3b77514ecf856980c6bba50077c268b93aed6817a94ce7ddba0f9f457213b4804ec6bfb2ff9501831a907a457982deb1ae09638481ee29afb4864ce3a3ad8c03218be15d50cb7d97c7e66af6a64cce3e797e9388538738867f0991cdc8de0919894d477494a8c1f0879f0a1497847e4ea8ac67e37867dbe9ece219ead32b80c8e3eaee6ad96eb5a9cd0e0d61fff1d1a86189bbadd9e3e73d0c0fb79e20c1c2c541101a209ea59a0f477c3ff3b53ff0b8bc1e98992ad45c0e8fc47d67e8ebd35c29c274c8da977032cda653f9a4807eb3ef0a42fb92188ff1fbe6ba1e279d25f3fad98bea61d3686dd93d7a7fd4a7671b89fd97754c1066d3a590b56044ec6940ff8093e22fad6bd9c265cd3c9d0c35e7cc3ec1636f21a8bb859241b57b94f3a028b87da8b3bdacdb70368bb3aeebf6c832262c5aa833576105ed2169c871a6239bd260d2f85c4f42e43e202ed2e4bc5a71a3dc5804351d1d81583b410d06783521f72d0de02a1ba1f4fe01633b7c9e3178b60a895a97c80cc8be96714bf97f0ccda3b785408b40e0e36859c9c69b531939f510a01bced87929be3382ff949834292608fce1242d2ff6687de8bc0d5dfa260aab4178d31ad5ae2aab0b26468fdf8422087bbc6370cd10583d2c9101bd2cdf3184fbe0a455d9f988a175fd20e5da1a1075eecff5af5b7e89fb079a8d3f3988be15b4dbc206a7de94092155591f4d0cbb2711334eaca65bc19772ef27534b0f95d5a60bb22eeb39bc36a81dcba79c6ac2aa6dae24551edcb82905742d71d593b0b447127c2d63b3a2bf1ef9733d22d61a216b55f4ed6a899a8b468c5f162aff9deda7a02faf4f159e307bbdf4f488898b7ca0147c42d2dd88b4ed2e5f4b0bfcfd2236aa5ba8a8a13a8e943615c9fd032e04e8193feb5e1d16e324c838bd724007cef32a95622456b4a75df83ebb90e6f52aed4f05a2fb1dce9717e1d465146202fd795cf79863607f3948bdff83690323b62ee458a6f4c2ac5f559c85c45d3cce6167869da4d41bc2dff99f8ad3b10fd033aff30732914ca16ed3de7da6f3445cb011d028b91fd3d7d8bc7a342257e366c1cd07a6fdb640110a976c557ff009314d949a3f312e27cd9756daf81006b4272201020dd5c99d54c352578a51657be84b96f30aeb1e6ee7262e3df4590143a4256f72d53b393d388280dcfb26df8fadbd61a2b5b4b9941b5aeccae950b687475e9a1ade216ec77d5fc2376d19f349c24f262af3c8330d94d1ff4bbff330fbca27a08acca70a5f584f94fd07eb1223fd3981dd785b571e31ccaeebff8ad14abefdc05c85f3ad35f19b9849d62e2c66487da4c87e35607603caa03a57dae5e206222d90b414ae90e52f096b4a01d4122172b7c841621f3dd3fe09fb1ae1077459934fe94af97960c4b017c1b750017817a74aa083eb37019994e27abd2a6450c353110bf771957194694628d5b597d3530ff93909a686c406bed3a35baf494024ffce31b546616a4c0504b141dc44ea0c8190931b0e071cfb98c4733244a537afb1fa153e5b213d5a191457fa7a72b912845bfd0834c7cf10e13044249c4a286d3ea48191e3f2711e808e18e4dc4e1b44706672a0b8bca70e72b32137d82c07b8b5619171a8a4b06c837f1a48f92d731adcd9cfb8d98c1a759a6e7815a8e8fcc03b526ee55ba33e0ed77280521cc53e1c5bc49aaa8e9963f73d3c858dfa41a4092f358cbafd6bb94063733b921f03b7688cedd4d2b4e51dfbc7cf4e103e772beb9ecf1bfc4f363232df495c7c32878130798c1a124ca2e11bee336535318c2711121a6f815bc9f38a3b0464e832f8d13a43fbe34fc3768aa6424e493543eeeafb9cf0815e04aca7dfdc0fa59295be405e23c24ff154d6bc1f9752296f84143b7c483fb76fae23443fa670069bdee20a0cb8934a6773f4f8bc2e5092e626fd523cc8e41fd4f1b228aad3de6106aa1265c3a31444a1452a0ae8c042d2be8eaa3a3681c54d6e5f0a1394a4d5443c440e0a9b7b88e09433dfe9c14b5109c2f2019e3be0c8ca66559d2267d6dc1389d20033bc05be40ba82463d9ab62454e18cad776e00bbc8a7e34cf5ffee966e9c0b85b6e5c7d48a8f02846d7a44800cac5ae416c7a14c845fc0da032c575e3a0b805821e6e5b55715c909fa9cd685d8da6d3941906fab22824c16c933457be8cd72ff3926505a8a51ff400dedfe4f24c5ccd473eb966c8647a8f5ea4d773c64be41db861d4238dfcbbdcf8b92e2cbacebe2b79149adc3b5a9d70c9127be7c941e5e751cdb10723312f90dcf5fecfcf56d81ef9ef4e63ff1e7f6145061575f8312d500308049a01c367e7bfb604f14e2936fd582869d8987047f75960f184d0e226854a8c11f51eb4cff486c54590622458bc32d7026dac7479a01523b677c77b935df2d6a2c979bee2f46fd2d9587e39479dae874f92732bc885b9b60088e51a9f15908d67b4188b8f1c61491bd9bf32fe7bd082c274129b214b08ff1b50805a4ad366f79ec96eecc90512f5c7f2088ee5868b6811f4ef83c17bc25d08bbd9ec43111d057ddae714f1028571c0cfe054b8c780334c876f2b00c4eb7d7415fad03e5a1f48a2cc1d5ea86fe61937ce764e4679a0958e3a3d02ab9b52c5336d6b3c445f5dfbf85071d498b70073903d544fb7bed66d5c596360addd33383481b1d48f2e9b0b9000a099fb007e3b8eea164f6128b03e75dd17572f9bbb01e83a3ad3a4137d6cd0f71c42113e53c6e7c78ecdfd18dae9e89083ac9241aa2ca96a625246a7e6665beb62286f45f04ee7af5e9e4e83ccb5cbd1ac83aefce07a624ca26f73d287d7e3f51748e682bc07fbc2d6fd8d33cf95afac4dd365773f6c1d8fb76876f111329cc30677811d5579b59ff00b1aae75c2215900deecdb6e6a05484690d6c47e80dd2aacc89ecae8272c3586408022fef164cb0a7da4bc97bbce99c8ea3c357bae3712c678c2e765865a65f659c5ba906e82dd1dd34754370012412c9cb21f430f94d4e134d3049f88b9ca1e6cf26ad1d20d007d57dce3e155124bd90e9d5eca0b0a823b91d6bbe7a2fb0b86127519bb39a5565c6f80090d3ffcadd77c4ebc303fed2de7351852e6c4fae0d06ce66bb0905c5e3232a2f556b55b29f0009d45a48edea2447c36e83dc1f49a2cd13434b66652fa7f460594a420ef9536fc89c7c6f1aeaaa8a4f8d1eaa840a0d33e750a47a9126cd4029d295eddcdc298df5b946bd3704f6ed57f9a70d9a1611af615b9883b5834472d8c2fe47e324703ee85db2a68955599740cad8942fbe7bc73bee67bdd27d670503c0bfd13c5ca966de61c0086ae18a6af37292aa45e131445246f4ce391052c1076e67cb73dcfcd376be09a5c8e069f45d2ed5829421971229d20ee214b12ef5813579790aa8ced23494b6d5a460d0d2ef7b67c105e5b87a67420839dd57f3e4d607c042f414889901c41de995308ab01eac407a3828e78c542ae133e5d348a5ac3385e71a47dbf3a9178f9b4321cb16e47c083bff20a5196030bee1cf7296236f491de4da7a0b745bfa09b4ec92be663dc63da5e1b01b199dce816d12f76bfccd0f7d2d821f04f82dc1e2dee1530a47ac36d6c098a7772240a3adee7adec30f3a88c8dadac1487f9683987f0acf5eb2b31f699793d5dd762451ed69a7f8d7776d030efb97c60726f2835d595e8a6e9d5e5237d875eede2e46f0ec168c4d82a4e1459fcae9f4d9980228149c6cf5e6dbb90ba23d943b954c4a0e5d53f15364e255bcbab7eed0f87b6981c219d687448555f1e22c7b1ed6cff43e4605f2774e824dc0762a3cc6f50f3066be26d02f9c9bc71d17916863216db03c0e917ff1a12a8eec20d05b223cd5421914eda510b41f293def42ce6338330c99d0f1daeaa699a581833e48dfe70ef182e9c93291050f98b99666d4f8863e38fdecf41bf7104561dac21ff43dbbcc6ff9dfa16aba8201b4f7a309d53dc8948dfaec13afd82bd055f0c4bbc3303d935699b6f7d0e5383e23a323f3df229166036b23ead5976a4757f054a00e964ad0212eaff600bc2a270e0b110834cfaa3fb961a7cd20e9526d04df745da142a409b0aa77902683fbcda18ecddecbd3662271ab8ca5f8e3fe29394d8fc73ddc431ac8319a4485bd455c9019691ccf2d572511df7bb11809af5b9b1c7bf5178481e291aeb525f117b7bb8db0cdfe1f1914ee23fe0b99119926dc1154833c5751548616fd003755a84b93d30d2007cdb2f94e55a57fc3c63acc8b4404e5c09b9b37b4c8a2da4a2f7c42409e4de70f9f6b0761faccc7aaeef1c898263c75cd71157f76fc1667210f77a5eab0aacd3a914a4bae8819ee9696659f05680d6109e0b623c0689b7fa41b817e36ce4a0c0a51ff826418bc48f19c76f5a702a139cfe077533daaa473c48e05145c411bd4a9c2c4dc12e9e2192935268a75af5bbe5cddda4defc1d25ea735c1c6a256bd45e67a130229deb97cf568cc91fa6e12174f384757c292791593f0e06a53de82ca8a4324d648fbfac19a909ef241024f70e3c633cd9b64b9e93737703638af7ae0ef9d42927feb0e9ebbdd851b4d73a42bc04f21a5556427cbc892179fa9218dab4c3bef29a67dbdca28d4456f768b13169f1065e0bb2206839b202bc1f891a8ddf982d2207c226efe13cbf27dbe5a7f560d3ac3bee7120e0fe211092ac1e1fdc7330d7f3c8b71f85a056eb88611b331069a70d9b9430dc65c6c2cc81f4df64ca7112b04bc85a404b6f43df0fb07ad6fa5384d59931acd6be7474a36c0c039417d585f50ff9b18fc5cf20b880382221ede50dc1200d3746cfa80d926913117de0888df63c839d18936dd80b82dc3337646f11ecfb9e0066d9a3f5a115c2981fbaf00175380b6f3aa63be980bdc60c2c915df88fa0103eae256f8e2ff6e546dd26b6923192ac74a4fc28423b3126bf657fdc8821fdf9f6d3c866f9dcd9c4453990a8d583aedebc389f304432faeb4bb3197b7e9309fea3e99aedb47b59643b03058bebb3662a6f150c754f04437053f2e1df28da4680bf3121d8ab12f792886dfff7288cc0a0189cf2fd37744cf4b76ef59f2b45de4ac8395ed064222a605da1f392dad0aa0d3e6441e70f79fee9f98f605af95674a2ccb4705f0735d464d357b91fc4c33203b8675eb11e3d1eff99ec80278de7f5b270984c148526b0cbc247765d63d6ec6ef8aab2d488393a012c82226dc2f71114b64605d5a00ae12f3b891dac6894b567e3a471ed6726353c6193f87949d3d101562c74feb33ceee2a074e6c83f01565ed7fdff000215c2badd928803d301922b16f2024deb57954d3a9505e3864f58a0268f2bdf8535a9c571221d5b96534483b5d888f16e371e1433b8ca5828ce1a52ea625e3249f7359c31413b478ac562a76df99c4d92eeaecdbdf7d1a68426498230f17fb96f2bc2b2af2187e7bea48ef740cc647bd9d367410ba7906c8152c2e391ebdce690a616b4103108de4f90fc8cee23cc69d4aca7ef075075e2ec86e10127157e25bfc06155e613d670c24f7b7b1c165b105e0859399bd4e3a2cd11bf4644aef7f87ae88b5b66d021397ac6a6391ece7a0e1245619efc4936358dbde6b690f6861b45df9a52949a17cc745a2ef3d0c43bd5e6922bda8bdc3fee244f2072bcb1f5c6119fc51835c11205b991b3de6acf7b4551a0b37756311b037a0c1adf0aa1fb04e446a823dd2e3688cc4e406e8be3ffeb234f8088073a1c481345c51f980dcdc03174ae6151a387a76d6b6b057145767e3c87710222d4735067bb77a0a43871d861d1554a766c050f954e0cdd8e853376a7eec05e6d750942fa5c140b08dedee36b64e7d662ed67069b8ffaab7548f616c0d0c43533a6438d81344a4991bea409c966a0e00ad9e92caec8d6433db9d8d2ac4ad6a22236b36d7dc95742f506535a64303751b633ffe10d338548fdfd7f51905e9cb98e38ffc144c1e285fb3e58ee09a60c6f291228ae9c10ddfd128725e8ac4839ac8d049a07460a752966cb030e04a4e8005c04b6dd4fd73ee0d6326a78d0cb1565dc27931af4a80a316cb79522757421e693abc57f346f79db3a06bb9237a1ffe6c9796a4d6f36f951dc2a549ad99d3bcdf8fe782c74be2e7abd43ed583c057e07fafe9259674773ad666180a313a8045ea1238ac4032a95af2557b7eba236b30a270dbe76d9c64cdae7196c07f3cc4dc805aa32bea122421f761c38cb9fef1addbc34fbe186e34f376c3b528e3f17f8cf9c24e98b77899e75297f81f663d5affda951219029f45d69edd5d80fd81ae64eae843adeee698673d7b447b26e38597fb57542f331c5b850a64d83a73676c8c81313560f04fa5a4c6f7b008f084b9400e7f366e66826e4030a471d5e4f44dfde244525c2f9daf230ad55007dccbdaa67505687c00a4529da30aa96fe5cb05e3988b2c53762c61a77246f8a5d7f6fe7a39e7d164860926aec2a9f108cd635bd908b5abd5bc4c363bac5e858c1a55490aaca553bac86c9593f5b602867f8971822d3712a72dc268971195b815adce19621fc58fc6633aee24d40cb8df83db5c2f89c611bcad47aa2739479dbb6d5c8b5bf050c8156517019890a9821d114d0a9563deef572708af3ec5358278b38b4228df53cbf1de59d452392f69fd08a875c7e93ebaf918248840c202821ee1fe8b3a465fef9df28b2651bf64986b320630f5b46a8b0b6c32cecdacb79be7fbeacaa2410a206662ecc0c731b2832b6858369d9128df8563b89b39b1405bc09d98373c426cfad20cee99ef4aa89554dae017391e03f7f886b557d4d4ed110f6ae7ed42d9a3f994cab7c7223d777084f3b76c95fdcc4eaeca1850d580f29ef981c74b2dc24fb3f808a342b5aa75bee8ec489c52e61321d4d94624ed55e7c76b53bf9fe2511624f622c07733d69e92829ed3f347ceb2fbe45398ffca46482160846727a97b210c2deb50abf0630e5945a3eb0cc3cd4364bd02daa31eb7f6862daaef5d658d9e5b60114b2b0f798857f37af983dd1ba58c118bce43e1c3b424dbf2979a049e3caf420eda516c9ff2bdd9edb6fe62b27b1735dda72defe8ab0ebde435ff2c6ab2dca508dd571a99d746ce98b58201bdacec66b88e453cefe669dbdeb2b68c04388f5fb766f75139e3671032d71bbef4e41d13e721502d6ed724e6128d8362500bf4749b3cde056c6b12f0c9d4d2e76d12dbbc76ef0ce031d03fb747569e19b6ee765f0e59f081d0e3035c04b9f3022ce8768212fd206c878ba5a5d134e412e3a48e7c886c5ac0ae65a6b90a64a466045f7b6dd344d166c7a3932ad46055f5ae7799fa3358745e9a3181a8bf0acb86f530ce004e308d337618939b0ea8e31f72b4c9d458b3735bc927399390b244241e5be5b6602249ebf8cf00fb2bed9016322d22b06e48ee0a004e21301bb86bddeca40b624befa8e42c102621cca5dd040ab582aba9962ce5f6515b53bf4beed8f511b5a0e360fa262706e1bf425987af1ea7c474a74e4c1f4afd87b41feef484196de3d74eb0ff510043dd025728976f3e60e7347ad8323556c5078a86fb98a44cc99a6586118ac4d8395cce2443c01007c04c25afcf4fcfdf3ecb1b1d1bab255ff565fd0e27e40b30c18dde9e6f0ead0cae05e016812fae08a3b3afe7cfc978940beb60b88b0ce6419878491786e4df05912ebd0570dd85de52837181ebc765bde58fe6ee49c0605add7225a2f64aea72d75bcf7ad316f3c34c5e38a6156396c8a22e80246255dff9952a561c408ea28e7116511c154df40eb9da4bb24a4a516c25da331b4b651131273ec21e7a2d4999556895405578907b62a18a625a741fa196b238676c4724d4e164732cce189db6fb78cd4ae5b9957c359e944967c65522dfc92953a35bb903712763f8f93fc9a9e139357bccce9907c5c0daa06a0abd0e2f18016dbe246b116c28f6b5cd7005b3072379f24452a634c84cb656ae35d2107b80cc660433ebf4cafc6705af8504b474ff66103cd03aed97bae97c53ff582bf8e44ea2adde025e6894a93319e48989afc93b86d6a78ef1b1272d85ccc63a64a34bffb265d200ef85327433194bc0394698206deabd3cae3857a80b61caeb0cb912185ecd655d5245f692ebd0f12b304b9aa87182ffc2b772427c49aeadd0543f35a824fac79fad31f3a434f5f55141d12362ad5cb47f444939beab22505e277b9fd82ff4f9cd6ab5d9d926501a6f9974cacc176ba116a9cc92867581f3ed147893d78b3999f170a12f6b263fd5d70ace91469056fb67aeacedf4c563b27f2a871d1cfa377a7baba918d47334afdb690328c262f8288393c0004cd5b346e529b998f347d512902fe5ae09e334f145c5363258d1de553fb181fb86be30200f8965438b02ebb4866551eb35c359a3d55311a9059dccd463008e760ab5efca75fca8e3e795c598255c4e1eb7ee52db46e0424529c039528a362af45218d7a5d915e07b7d60a4b764d21ff86571de5ac756f8fb918dced624c9b9f0c27123e9d2ad310f59093d76c1936d216431547ef0d76a8b302fea9951e94783f20ae4fceb6300760e73381f6d7ac463f58c1f7ba05e5017be0f21a46676008e22757d1f407e7a42dcf9b22de0c9146225ee3aee4c9768d5e912b8415ff8b97eb50c255cd8d60eb5b747bb679c9b30e13bebb8baa800f2c9df9f2b4595ee669fcf3d68d14052efc032edd9c827c752a041a93e38b7ce35943a6aa8197022a2f68011a747109093206e1a843c8a0595c117dc87b1a652f84ab29591a5f3382ab81a5593175c23367a8947a728d80f7ac2e3eddf320cdb09691a49fefc58716245927fb66052a65894435825c8931f6404d28da9a85a19bac9800539e41a5acebd1353ea8f74693b9abcca5255ef861ce57024da4daf1a5eb57f1e402220499a1f261bdf352c5466708ccd76043a0e4d6726727b6a4dcbd1fd148146a3ed8e13f802529a2db4c924199fad4ece0163096b82ea2a6263cdee2a908e326b0ab02ca4036af012900a062989e88b0ab42c42766f359912f32416b769311e58ff6afa2046720f090c985d4b465450dac649520d849d0e82f7dbaf5b157ad9b49cf4386ceb4ff6d07e94c1d69339b862b54f749bf618e2dd214ba36d2102669b6f9fc474914ff82f48f88d7159f24dd758a748ebf50802c9c724dd49350c7b279116209beae43ea6c5b860c6d19992546886532f68c171fadcb8d0d1c0d70379396ff2c194884175b7ab9d4865a07b8a29967c9a5269c42b122aeff76ee79c86c09784ee91c653f6cf06ec0869a1f0369c4e91886bcaa4577375365cad091ac0f615447904ba174167d8b79933ad4e70aaecc036993450481f3fa0f8daca0281ff9945ce106505228dbbae033a56e5bf27711e0c5fb01876f24faeddef98105317a6bdbd068ee860f35643ca26347b0ca94524727b59e3353f91e7feaf48b100f06e855c340d5f576aeb2f001d3cc7547ffb2c3d38e1aa37ed1c520fbbdc8a778c239c7404c15fd7e953eb6b9941f7395f18f8a42fe6fb549aa9fd6d0b67ef7ac6fea5854ab0af61605e38bca32f2b5a7f0b2ccd870577af96337a22b69d6c26e8df6455de3c6aacc25197cc410ef77a3735cfdde647531fd6445de9fd43404003ab4410e9aa817915cbd2f95eb4e5836a62ceaba1d2dbf130a7bf500bd9dd5bf05cd4f985ab37bd6bd87186991af148453c79f1e693ebf78d9dbee4db156acc1f9245ad980ba314135e460fa89f0b251cf40417e9f674e4cff9fa6b3aa44167a63aeeedfa21318c685fe20f4933986471e2078b488bfdfa9f861a34d22071163059c907641a21b60fba1d77ee48f27f6ee7ffaa40f11f0e7045456eafea3d3bc2f5f3bfabc40711863f924b97a7e3255a1acb3b594a08ce4df2aa9bbe7a9ae077e02fd54a2249be4cde206089a82e16d5bc2f729ee4f9666118f8091dfeb5bda17b64103b86a48822b96a18dd3a06cce775548ba1d4c86f31c3e65f4cb66b08f4871ae598bda83a08a0583d0d0e95f82a9046f5c3b85f280682ac399b32d017acd802a2a8613745095c94e1fc9977cd945575078fee3b08060488d554cea9d6d7e86b3121260ab602a40e5625573c17b5aa354b1a19ee9ce50c3bd089fff1052986cd69deb02c7ee25d792ede5de9276aba3e54c2f59db844e389f183ea584ffe2842ee5c4a7d081905cb55f1cf779158da2c29b22282f012a3bd08375ebf278c1c089fa180302037acc132ede353b0afcf003c01a96b6b950f22d940d6bd814f4d009a6ea84d27f21458dce625dd0505439df267d23900e8998b164a5f1d50346f32cbe702309d08c7555e9e85e96250814cbfcc1062a41352cc71da425ed81930470d093008f5c0e3bf0d371641e2529f38c92b84702a14623eb5f12f32d59e560dda8f8059bcfcb05fedf5f720b3f2b3f3249bf9805067833ff1f72dff685f00f78a3aac7a111a7c4722b8c0b8b35525ef9c6d14c41eff98b0b8d60761e00eae9b297f6b186a1d82487813dcaddbc4f3060ab6b00196b138756d4d05a644176f32d01b76b1a9ddff7af652c89976a284f33bad7412ae7f78f99cd2b850bea8491b9a22721a882c6ab883c1c9862efdaed771bcf463a44dc5a76c946097c762ef58246371fa473513219bf4a977e689b2b5622ec4769ae6e172166ad9e42e01ea0f9e53b54cbd8b2f9910095ddf640e51f5d5c84a6284656e4e75c86a57e9b6ae0a69db93e1a3a54245e503f327ce8679e5cbd03d4f675d81b4a10bc343b52072384aa181dc45b877132cc90f2def8fd333363b29fbe75aed229ea753ac8cf9292a2abf783472345130fe5a40c057e00074400c8c382999c6991312ddd0e7fae49665fd2c35c35a668f7f52e82545da99a12827a96bfa039e1d1e77629bcf9284d8adf7c0ff34a29b69f3c42e955c80c195a710540f56e1af39298bed31c059ef6c79cdf9060ceb5fb7e00646bc3557ac90e965af3030bcf578dc0b83685b720675044041900bb8fdba46ffa53cb5fd9cb7160a09f1946aa4ed17c2684beb3c033ae15f203afce7fc74e1fc54283786a8916b4cbe06174920ac00176698b40866a3182c3f7482a9e62c7e3f278989da0b8be188583a8e05db4e1d8ef84319ad49c0dac45f0045a37aee5fa7f1ddb6b4fa756705e1eb2593df7182b68df18a34c342bf133e77638a8909b43c0892a0f69704aa0dc189bb210a360f65b47e4d03f000960bb7c43ca1368f16810590696a364e6c8f611b8d320bc2b949df7709247874c7e11ca685d856d826bdc3acb035185070b923b937245ebdeb31c3a12ea4953b45e32732af8c01ff2bbca5369b89a26bef5e3a1306d04cd6ee899370262a25990ac785509d192c63c9a7c86caf5962e3a22162e88e12f33c69ef5f91562fdff32ca0a339adbe5628c3f57c047f234e5f5ca47490a359f626eae69d60f3879c527cd1f0ff0b8de6b4d29970a62111686c2e4859738e914e4d86067a72a22274e7b3a483055d5ac5328bed48707f0043fa2436e490a10b0f6d8427e40ded2993813a67ba83b0f145124e0007716b39f4dd8db7caf7143897c819716aab82f1eb18732e2e03cafc17874f41752e8edcaa4dd11ef24f354df4a2364edf7b4b593b469da50ee7b65f4c08abb5091f20557d66dac20451e23586c662a076e04a906fc94587c8e1b40008cf872c1c337457fca90fcf664a5d612bffa9c17ef051612e0347a4aa786836885d4d230c485236c27adbe95a9d674e50a098271af68173147a599a178a635689f4e74bf6b4219984a0c4f3643fb1eb40fd47b966f09e284a58349cb4c4fb1df51b1de7e5bfe3dc25c71661bf3a972703f07a2a5011320336eb3dedef2c71effb1ef0640226fea9e2011bf0052a3249d355caede2407cbe6726ccf22b98641d618c16fd159ad588ff41e0bd0ec3b4ec138de18f55983882521ff5fcd5349ebecfb77c31ee3f387f49df93fb48491abd24ffca8d26e62edc0f8fef28b20024c48237da6c832d980054176ac6de1625451c934cf89c2e9669305503ffaf50a04b6867562f89f315bb9d8916e44517ad71d2355476b227475a92f309aead4a18682de73c7b040f5b0badbad465e14f3e9f02587478edbabe3751107f06aa6bf2da4c18c273ca774421c4920074d454074d8d7070affa86f09925f4209707034d7750a3d75f55135d1f04dd3ec42ccd17cf0a77d917e55fe9b3f60f218dadb4a429f2f31083324028bfb5ca357c19faee99f169ba2ca4cb41e2f272e43905f7caddaeb6977e674e3c44f56fd582f92c5a018cc75413588460a53f5454600d972cbdaa60302c92032dc82e423082aa48a384da18edd1f3f98cb1348ebeabfe33687f7ba74e2532174629afa1e31ba8480f024964a7e345ccd1fe202046f246c034c78a083a687fb615260d4c101239baac6bceb773bb4755af02ccaae324f30598c5474142cd6d01c76f55e5e2661e3f72d7a7a40a085d1d9e7d40f3f50efa1e6d9d4cd5033e018d4cbdb377acb4f60dad0461bff9cab3646186f16662473cfa3a41f18bbce0e2e25a29caec8a40ce6ebfb04522c094469d29bdf59045f577dd5ac582efafa93bfd32650796a189223f2f55a8e9fa771aec86d0e7a4334ae1df6e607bd09b0435ce3c8a13a7e156f6720429a4b6a18532af2bbef6f708d48a6a2894a4c03c8824bb7194dab86285718c777f212d53e45af27e79d3834a084bbf5e380297e2e5531b97cfd2464b19ee27f0ddec79b1d45df9fee1746816ab56727562c2f114878abc48c1dc30495342715363a2c6ce346dba73331e67a4f359ea126333ab478bfa5ed359813b9acc8daca25a08c4a9548b60f159af65569074e22654ee6a9f17f736df75628ea4dbcdace912352bba2d86caaad309ee58ec1eeb40f1f914c62ae66ceafa68361fc3035c7d5685318d4fa809940a40b0d358a9e836b4a654cf66349d93189ba3ca6dc5398a1bfa1572139be5d44f58fba9fbb7901b704a1a2d83ad59b4788c29b9b8a7d5f2470d9836e915590be3a748cba5d8ef84e4ce19b45880a64b680980278e0f557ea26e7ff3cede135eaf2daf13f311e522033c48b0b9617b3843f545e5529df4564b6313e94550f55ea8df6fbc5515a5a5e103620988b546c4ac53774d68947ed855b3a06b561197bdf0906a5cef8f38f491db6677bb6167fd5e1bfacec456d5ae5d2af9df74ecc2c934f2a67859f0f8b25a5917c749f3b2e19ac01705e54a704431b1f2c759baf6c5e230cda4bfd9151a0a667c2e2309f158835cfa5f9748d780ebefe5de1e26e5092be5ae33ed66131c5dcc61b1b48d60ffecf5335d64f728d716392e4633a8f6f4f151ba7730524adcb4d6d595a2232fc06cb73650955f95a4b337afc1f875c3b01d7587933511657594f8aae8ac4e0440afcddbba1b4de4de3b7b4d041c4c9bc3e90951da3af6e40fa1f6f911f04d76176340de35db09ee12fe85700cfae901732a6a74c040729a481edd9b79f35093dd3f5760e9176320b369738790a4cc2af6a92ef35b17a62fe7205ab03b38ad5b02f40364950be4fdb526a5827b57388378098af4746b8a9ee4f1bd1ced39fe42790359532ae3ad99841227567971e72aeccf9c42263519b8c15bf9057013a6b233e14c79f1a65b20397ca37d9341c670ac906cca0d2a0da02ddc6e57d839f9876bcde78545cfee4d2d3ad273dd3bfb5df053bb1e0d15fe4efcf3504060ff7b91bd42820ddb87d7f3d872463a31671b2c0dabb7f59935db0c6d0f95b46cd0fc1514fce80899e3c978003360d7fb15d3ca881a61a99e0807fbc0c037eaa15c024d61dd125201833755332bf0d3193c7b5bfcc387b7ea1ca28f2147acdc071ef9e32949942b296ff3979a2ecdbac3f30bb6c679814333d5e40fd79bd6cb3ef0c77adfac22b8412bbc61174d349f8a039de48ea60991a339c216cf7fdcbac3a9f7250b4e4a81b03e2668b1a24d9664772da496b2448dfd3a701573436fee44e965ee47a2eff1b7b9a77555369939c99ebbeadcd08a444a09dccece42ed7406898f510dbc54daaf7653e7e3815824de01cf5c105e71691a6083da0650df9b566adbbe499622eecd19292e8f7d4279b31f76d4513b85d156eaa5251f86e375128bf21acd4865477e11bd518a48f15d900762e1c6ce4bf7a01f446d113e0c5b3a971e3e836f81df4b19626907c981794f1f3a45fc936b79433debc6332017669668dc777e4ee8195901ec2486ddce7acba87a7818665098b23ce018ef8ba5f76a264c04d27cb73768bc994372f98a915bd83024deed3abc9ce9d59fc5cfcc2f3df7ec9c3c2080e173f6b21c12473cf35f8eafa77edd6dee8a79fc6ba9ebe978a7761ee5a20329a4d7b5eb18c5a8c85ade05e8943ce4165d1147e3dea2d7a1fa3d6136fe59123e7008c9ae369233d0822e0a6a32de83a4da8f925731c7885c26832895f64102071add02068706fd8dadb6852ffbef31755b826a25ee7e2e562fec600852b0366ed86687f5b063565820b87b3f1ed76e2f7b611d62771c62978cf53bf68b2a2618c759abc56b1ecf22a42bbfe4feb3bc9df812d7b17ec242c2784780418ef0cc0a690528e506ad989505aef8acb114a09c34ea4bcc8b9ab7a772eab1913a57f6eb1fdda5c3e2a52567967ccda482771484b638935e7a5b5205bd8b5cafe5f2662cb390df42f52d1ea6ac81394e709d1e79a66e934afa1f8ca1e1d1b1f0d891316dd1b4df2248b7038b1e716e9eadac663f54cba12e0f8d563928c1ed46ce06c10b89fb1a1c7a0f1e3accf4c9e81f230476b19d371290483b572230335979c36008cffc68303cbe8b9715e9b4fce298e5a5d414df0ea9bf8339224cd23dfd424e6afb8e1d1ad3b38ff05fa97de4c3527e2b76a0b9ce5b3d2362be2d2bcf73449ddb4aafc4a69a4776c6926c7fa3c7a4a3d076e141c4f7505d48527d9e4d68d578765bfa42397d86ab789db1280aa224c4de572a2b11a78462e97e273efc5b2c8ba4b2b45ca57ed1dce4f0bbb23641ace28cbd8f802ce5635da2a42130aa425396803863e51433cc3f5501209ca1412cffeff488657a02d2a9d36b3ef5a605a28761b9f319ad469b583ec75f38a5754ed7ff69201a32a0b0304a3f120674020990156475e738f472d95e4297e64763e828d52eb4242138d62151cee777a2882b0bdb4f6120338f7575cdf138c1b0c83de0017a46c3149654869b8cc49baf5c4a3f54f172e229fce1c0615adad8161013dcc6275e06f5580f65ea307dc95f37fe3f8aa610af9a369278ae85104c2bde8f31f6337737e772a2737135dac80a45c27d922f44f814c9c9ca74815ccef68af119843f036d1fac988d815acc8a89a74ecc912f4324a757547b11de2770e39e0df42313fa6d6322f26bed22b124f9f2c2e9a6af87495817f4fce532d1b93359a403d218fa46a3c3fa56f255a73f53aea0d0bd9a7825b75120da2895c86b782c83d8d5dcf83276d470cc2b7df36df0d9955e6c42a20f55e31307da24bc75ae3f77879c9283b9bc6afb533e6a74186561171ac0d97eeb59bf2bf7d081d4f68eed0f1fc58f8f2423f3f0fb72af27f6cdadcb2054f9ce5a3c6a958ffb51015943433102ddcedaafc1ae6d387222be3f8d15c5881d1d82b20f7f4d51eebd55d91f857612956ddc13a22eba1eaa604011ae658cbe1b252f74c72a6e54d7f2740f3faa64d4ab2e454e84db0137b146c3ab9f5ffba981d61c4e46aecdeebea10e46d9db6cf763f70fcad670595e24792c89be35e7a3fb58dae30ce0ec1fc27f6bb6faf8beeb21522249787e157313df06742d139b866db667e1e2a9351c9cc609f9cb13ec6fb6ee7c3184e870c50d246715d5932263e361ee1ae387899165b3493df8f25840ef1cfc1f1c6583864436e0aafc4664a576ae09bbe90c207fe9062a1add9180524252a8e2db0288af06ca87d6d2320cb198539fc1815eb5ba5085140a189e0646cbac963c679d731b0fd50abb694f46418bee475515b6087d2e78bae3b5fc99f55d6659154b6bdbccba13d2d51d094915ce7e47a952e1aa8f292e01e2c040a751246300f63d722b9a428336491bc1afb3f0e8157a6dc21cf69677fe0c2a37dbee18a9a9f5a5102dba80e8c588b94ca54e8673776223ce3d2c5c290516135e75f2b2e3a1772c72ddea9f4a9799b172de12f14c258b2f8e0a54589cc1f84d686a4643de145d121e942c4f73af58c770646b590306772820abec642d66f37fbc563fd60c4e8ce96a794bba7375795a772f046d0cf6ed98b7d1ecb7bee7a7b5f5401ee80489ef52024db1941d372e782b9195704020488317695a12344a785e602c18de00524d62667c39f987bdac72246fc2c659e69b641993b9aff8fc6f95817bcd005d769c53698901bf8ef100b8704d934d7959903b2df7ec5b77474c568e225ba81e85b54fb3c06f285090df9d0f2958dba442d60cd360616ea2c575bdf2a96f656adf83184040ea7eafef6a1c7622fbb241bb89dd21ae9eaa6ff4fcb9cc000e360a591897e04df842d5d21bfe0df80dff9d55fe21400e982f56ceeba86d1fe83fec683f70b5fdc715ab4e40dfb1501c4268d5b72def8f55b0d4777e29de797b1da2e97cf6b728526660bec27332d60c3235789147ffffd029ebfb141a58425986e4698f0a33b39639e8c72aeed61f9ba3fecd55a3d517202ba018f015c97b44fe090dddbd4823ab1a7a700a0fd46c34029f2149a8ebfb458e7c1b0bfc56dc0f4292fb6bd46987955c11414958da2ec14f5671689a4e0a46310ccea4ffd37f655ca0634896deac2d5ded7aff1b886425cf4af75ef221f951d8627249834d6ae2a779097aba42a67e650f5cd3a2f3c3814b0142746e19452de391cf6f8781da2f870768eb9706a26219c0730a7223b57f65e7dcf42c00f01fe9344efbc5626c04475861e432ed1053250a07c1cd951c326fce88d7ee338f12a0e82435ac960b37711f7ffa2f8e1ca7fe3d85f9efb9f554266904a1f724aaadaccd940e45fab54dd332c3982fd66dba176c0c761175bdf50bcf64c8ddd868961a0936becd1a0e329e0a0881978343b6deeefd8d4da0acce2ffefd1d056992224545540a1fbabdf54f46f1e859a9d8f63adda2719e88c2de0456dbf66a85db1dea2e5bd24d50a8d08b286c14dc311b47029ae08dab6d9f083c1ac81ee2ed847af9f552a9e586edc29f16c08fb855b26c0c47fd01e8032fc2b0f3e7d2daf7490776d06c93e8bdbb843a1a2f6bbb2655be204b74598bf4221f2b6cdf46590d9f8464769f384f85f2adbf63261a210671bef6d2dafb425c3dc019778c76cb2c40b357a7531e1d26953fbbc2fed7d22e20f4e74bd404174b6b716de64e4605660f36a1a220ba3c1b0df9302e4db41529707cbee81676e147af806ff3e033c860436190ad986f3f923c23e740c3a8e357f80d412180f5e2c7db17c3b8bf19e2d5e550719125cbcded60bb57b89f5af06bc068ba31398974b91d23c1b823c71c11a2e02f1bf58b0c43c527a6f6ae692dee766cbf97eb0392fc568e0555896eee76e35e9b9df54e7bdf44e0d281db6e7cbaf74ee4970513fde748e35357c92c19fa4315496ae2ecd9c09db469844e0c1f7f22ade6b70e2105c18e92f06bc12a2ea74a00fd5d60dd7118939a124c20b15f4101700f420c7e944668712ba18c1b371a7a5051532a31b9cedf2dc0cb98f2dfd83ec034c8f57fff2854361fee4b199f05af8e0eac4df5a4fcf84bb218009df36eed81d19c398d368c7afe98a87e22d2aece7d47ce76112971a07526edfedd71059d121d5551436889e725b20debb9f06dc513d5a24df3532f47e05a288f2a70efc143eb4d662bd5ad95fce5bc166b6332d5234015e2982cee3f617c4a7cc26c546bcb612506af9277482254394f3510fc33947f9928ccf998c19c32fb73f388af49a53d3fe73e3fde36936f6e421f7263fa3833a186a1e1cbb922c184a67d9551051e7843bddd35c885af91252775d90f62ae2c286f8be05a6f631f53f7bbdddde482989b1d81a39492c7c78f7573a93e54cc282b0f95efccf4a5fc7bbd71d0cac3afe4f673fafc910df7b8c02f607e42488d952a0a96d1db6a6a60311460dfe558f5efc8065ab884e458b130ba54c501728221ab467167f712e27a50bb0431cccc11bdc90bfed826fdddb63b443a7574402f9bb7cab09bc1316744d687240a73a035c572ccbfd1a4bf500ba2c0ba46282ce6575ba810ee90c11ebe65640327a3e34ebb83daf07c1d714fa6086e28ffc0d500f329faca67eff42d01c3e16b9676bb14d080541a6e285e470176ef9d2070748db7b4efb6491d892dcd5a57e80add388d902f3ab0ad4bd5ba06d8f4d8978494cb6f17ea8c158be8c4f1b893cf001a7f07361bd12a0385f15b157e7391ced72512a76fa8e1ab621d97c2101d078a463ac4631419384ec534c6ce9c6e4fdf5cdaf8a35c84aa18fb93ebbfb8019d0acc65c6dbad50f71370f2e0d8ca4f018699d4de8185be5c5064adbcc1a9389bb3ec6286a9bd897051df8934d084cfd4ce27a628da11dbf98fe221163e0292b613395f819edf4dbad8de70bc68ab6d1473339ecf5e2e0e9b4a6933edb68537bba71b0bdfc1f1527ffa2f0e0022027a0b4a00681ca18db84d8f26b0dcf619bdd8ee4ea0a781993fd60105647c02b2ac323263f9a600e4f3529af6c46e8746c12f2961384409bb7f9d14898aa885c64e275d46d1f5676b2f14d5ec9fdeb6bc1d43913973431e0429cd5e59fa1e47b0f22ef72586560d60dc5ee0cfe27b96cca72e938b6d9c4963ef700b04a7b5fcc2bc49b994a4c9e7832ab96499e51996ed80c53e6507eae08a293c728fe98e00b63b1513b6dd1be99ad4e14cf9c834c439f7f9f3a57a58b871e5e90cf33a6d0327d10140c7858657eefcccbed258b645edf5301380413fe3d40cdb3b9cbed37e15aa9cc9946271d2cc19b09fbabe844bed05634dfd4ca1eeb099a49deb9cbd256547f0aefec92fa706f2eeaf7c0445a73dde2c0a788b0d6ecada7fc1b62df6e15f963da77b10d31b6fa9fb539666fb238984313c20bf998828c8ce48c3f25be32e998fbc95476c3f63dd7befbc7673f29efd6fe678a4f17095672620506298e5649febc8694c57a03cd14450530e9accee8d6e87d968b458214191548e811618730e203728266902deaa0007f71033ee118a5d99ef709a7c9fe3fb2d214f420334ba73c699b41bd02cbf8eb3f5fe94a43eb79358386f1d5c2679fda3a2fd5a5d64cdb7f695ae108b90ee703bd1575402d63b060c89ca9c0c916b6ef61dfe610022427e308af085f17711d898c2cc0837da1f9e1d885438ddff187f2f93daf01973ea76b3f91a95e7d374217131439626705d8d6a3250db2d5398409979e0ff3cbf0835d3f98058749766d7e93ea7a31e6281055657c83171b48dd1bc389be7345178df10b1664f4c3fd286433b8e29f49edbf152193682ce0f0fa155ab1e2758da658d2ee18f9b7345edfb992ea94266b73f97cb7177a5bd909879bfa421b9a0ee97516f5a1ef27badf3b7c95307a85e62553b88aa1597442d1146ca66e801ff854736d581c059c37af4b1e29828838bfa7835f8e4db57331bdfc28a2cff9f337c88ab54d02f10e236aeb4c020e07fd9fd2b0b0b92bd1cd8560c8db3a1c4a9fb12422aa355ff30276e7beb59c10648888d157a99fc0c042b1e7b413e67c421826bb70d7d32baf79c344f701486fdd2eef09291b8be01cb5d742a9eb090e1abd810a0e5fc1b52b78e9cc1ecfb2d00338811d83db3478f3d11a28ad7152851cdb06dd0c2e4dbdde0f33f2ca000a947ca8cfc9fe6d05b8b5a2fb0e193d8a96441ae52724088cfa7b374bbd65c81a1fc112f656d03829224668eefbf3e0684242d7273cd4b5c698c70f630334e42f0f95c8e225bc705d7a8640e7284a6289fba3beee89fec0faea82abec42a9a9a235f4095ad7c461ee99bb7d790f115cfd2aceda5ad069077b9588f42217a2f13fef28b44a3ceb6f2dd1dd7be64d15b1469e7a44323f6978236863fb6f21d53e9f755fc5e47b7aed19aa161964daa72eba597374e8e4231e9e746942d69cfbee7b90411050017831f5bf3fb656e83bac03bd613db9438b23e23cbe803bc9062d1a32ab093d6e8265f318fbb112fb9f609d3213ed0c4c5039b529cc3cda3491b2947448203f9722eee7f4715fbbae181b38aa9b4a80d31d71b722b79b6dc73f079eb912f1a3a07d8be7c3b8a897fc169f5706701b54363aa1495af21a1a8d7aa630b5ae9f990533c15b41d8d56b04f65ff0b0b05819dbfdce26154fcc54b58d697d5fbe8fe9542080f87ca59edc6cad616d3b3445f398c56018eb899ce8fd080a3abd1ce65076c6287a92eb9acfadc4b36b47b441997ea84256cbc67a441ff47daa5e30ae94715debaa07deb5dcdd02dfa8fd1b86b1a60ace55aa0783eb38388f70c6ab95eddc19de94ab8328180d593aab8a398448beed3a650739fbc39eabf12e01f9d63f25307185483b7259d53697e795a5ab095bcca5656d13b07acc873545365214bd4bcabf8c34dc25f6c515ac88ea2e5024a4e0ac50bf24efceaea2f714c328edf763d44fc6fc782157ee7379aa80704109c4d77431f07b4eb538f6d50e6d8d7f8ed36e77e83a7dfe726c5c68fea5e5a36e5e24296d8ea95c54eb3756dee97b493f48ad60bffc20872fbc429de6f013597609d6e20911e7ce7c26f907068fde1dd698c89bb3673c5f758915a79c2d6b014adebb4a8371989e59d6513370a19c49fcd7fd4c1504cb9dfdc58621d642f0b975124d808cbe5c306513a2101bf7ec886c8ab4f5cc9231904eb92444d496f22a9331e9a97e211876c52242cc425193717a4f95f73f0668af92ad4cde55b8871b32159de2328ec6e0699878db110cc5a77cd25836a69c126e907b3b8b6f64410fc49b6b8e5d812618524a2c4d805e72bd95780c1ceac13de7f2ebcdab06a628219c0c06ae04652877973482e6dbf67e602783d67cc84b9b0c215774b9c7d7b5fb5ff8591ce55d357a80db2479fae0c365a0956679790207c4c717ab7f5e6c21d5360fe05d8019a0471f955ce297337e2e009f8093cc5ae5397bf905186d38d894ea50532ffd753ecc645d74eab669f23c51a87c89feaf89f78bcec138664aeb36c72e3db697876e6e28301f5a410d40d83022d79d41a497ee4ed6d439c2d9e6029ce63aa671aae844d47d5ae7fb18fb6172cfa2b4246751a6218f566deb8784262a67fe35e069ca34daaa4f448bbd9047224965b96b105fd57c9c8240201c687204a9527961be5e417ca3fc8f054f951201f8053d972ab877cce09b852f8148908ee302b284a90ec544831bdb2d937463570dfed84f5061a44bc37f09e02669f662b65b14c18b57bb5c80a1cfc56739b8114e40afa7abe981b68c5ec4079656de77bb348881f7ac25474c172910e81af8b27b7633c95e4509b6ebd0695277625c9c0848c428d63839a7a1a24eef95f10216dfb9a6eacae71a3ad769ab1cf8b96babd31edb8a3f1e1278927c8d8413b6cf9caddac227c7b9680c858a3f5a5d509ac9b9b4042378ff61a58d36fefc43c8fa5cab5203595291bcca7b05b10d0383b8d66549d5d32d0819e207e1d7f952f59f01a369e93d9bd34b9f4945278ef9af6528e5742151300594c1daa04527bf2d4ea0d2dc801015a08e59fdaa9e491fc23a667528dd46b00666210b8624071badb1718d57ea918833a8d5b196e3fbb634c4da97c41ee5f77542bc0b302382425ee8e56b5eb05feb7b0451ec03ab46796e1b8f000a1b6294e46457430be1e781b2d790412f982e6577fe3a5399cf2ffa4d2193df51a43977f29a27a358d6c04849cfe06ed16fdd8d83d58ed20e277e644371173e38f978b368936a43af79991c5199561966f27304e3ba6bb8553b8effa1b57dbe16e47793cf44cc634f7879e19b0a5bfccedc01d3f4deb1541f74be415b9ada03b2d57ecb7525d39b2a4d6dfae34a8ee6db66a23cd32bdc75962d700799e1554a9da78013bc5185b0734b8ba9b542861b7f7e4992ac6b7e0783e4575369e7e6919d494e921e7130d8b1f2ec8a07ea2ad1630712c61762a326e7a09e8f97f20b908d7ed6c418e1a34e38bc65abb52ca0d8a4e1b5a68c347d5c45693f042c73dff6af71561e561c1386139e0f2878197df904eb5f88bb616a467c0c79a6f16525c233a58371fe33a876e9433c574456925ac3163ad2291abbe55ab59e896f894d30cd6307064c0ce1309b7df40c4dfab056f78af74942bda06675f1a4d331c49cc925dec207d8e93d04f6d82805fc3ae491f7d421eb1bea9a420e9e7329d488795d9528c72c24034371f8ff2d87857c5e0e55181ce56114f829920b475559813dc76e89d23adfa9bc6bd400c4ffe7b5f5b8f048b7b684457d06ef83ae51fc25236baf0c505b4145c7e98ec9e1fdc398271dc69457114b7fa81c80663c7ed7aa49c853d637e7a6e81640f08f5380f49ec7b62d26cd06abd44cc6d7aef54983a3fe9b5f2ce064f68570052f59dba87563df9fb4ae40c4423daabe9ed1e386bed285d1b8d70adf91d48e14b941a7fdb33aa0bc94ad66b77b5ad5fbfca0e157f5c0f1d02a01192dabca216a154cd8fc85a23f8bff08f8a614bdfeaae2e3ffee35692b04a8b9b6d580f92b6bada16a9876e56abcd3263d9ba0a579309855ffc9be5088312acaf069f97f65ae389d8c1eea49e3086a0461abedf6b661646a08d6514ea66ecc958bbadd3289e7385ae7c6341cb3c659b5be69e6309b2868e22205619c90ea9c26afeb584e1a30efb12b59d8b9ea39e26fe2850ab5689fa80c29a44e54391afb603d5c913a790eec744fc39ec0adf7eb0839f9ab8d44395a365d403675aece5370859da6d280c41cb3b121c197f905b775860838748fba1ab2a1a6d0b6480293d623706f1dec693772d6fa17b05f7136cbd5302f28910486954ad3a44409157dc403238452aee507524bca33a967921b402b108e47da64fc58d42b21f6ec6e50c959f153adab94b68f6594b92be22382dbd8cd7991723f60231821f3b6eac0af58de73c04c4e05c2a73d8b163ab1f77941f47a6e239b2d2b790881e9a31337683e508d47391210f0d01805426b8432933521a99a1b6c3ca2bdd66b62c5f2f9a57641567fe71bd5bf4f9cb56a5de8315335e8f07077889161325a0430ee9d8823a22b116b6b6f8765c05e89432c77a5ffc0308133c147a55d41cae32c7c14a3faaae981688ab9dac9c5b3a8639c4e6f73e9e368d7aa9d3b2cccb7f8a1b8106da397b177c5c31784cf956d6ef5bb7299d8905a32ecbe5121a44fbf146306f70e1c7978f5cf1b5d9a656f7096782b9c86b90422a1de48a7a7b03475a8311bc4f80cd0ef63b8b2717199f05d0a38a62f0fe84bf79c2e1939220bffb0275e3a04f2648f655cbd46b0b2a2e545fa37db8ec20229396f2d35fa610c783a63548c782c0ff974bf787b291b6d2319b9a7721b00b4d72576259e94585affef75dc49adb812bea8846bab50b2e3a859fb8ab2e51396ecfe86dc320c16ee3c419702c17b23bb7ef5388e69addded62e3bb92dba8bc4e3b0492f7cf3b20853042512653e4346ab7d05d30db1f252933f70476b9c3a592fd2cee4a868737eb057a718009f2ef978518cd289b935bce44af52f7f31e1b4c1b59da74280a49fec352061803cf8b32d5ae9666ac219710e9bb563c80126b7856733721f2fa6a4e55b857c4eb98976ce94b29278da1279a8564fca6e2453028dd2e076a5e722037adebe29a8d9ad095ee291b938101a29bbb695e4bf5dd72b80b646c6229c8252716728a0145693b74fccc22e863e2dd001450d3f8d8ec37cb47bde45030d7740ed3b14aa277b519468429913a222cd7326ba73b4f6c44e42095f73f65e827195540f458f9d435d5651fbfa85cf187e9c087c35804a2252aeeeb0a48a9ac52a49ea5176cf197115bf5a47df1ed7a54b3261ecf620e5d4cc47382d664d144d1ca7829ed2ac12a7399336d3d6c00ba5406955b00b0b3b985feb9cc380581711068308277a86b3b26b23a70e80b6aa8bedbdcad9012b7688d25b06830e1b8f6e6b7dc4830303c0f9b66467a91321b1b3e9018e631538519a8e6212bcff2f35d112589815f50ac2810499cdded9b680094d789fc1bad61ab3218067d99784339c875aa03f4d930c20a787ea16afd1edc83502365f178b0a30bd2cbfdeedce74ed99c6ec18fb375d2ad14527ba87cd902f435b4bc4867b51a7b9a8c7f96e541d65da5c45db65a6266f1b8fa3f2e6b6742b1c66c3c4170391d00f5d3f125800e60f22f12840e2d7cd5302aed67c67497d16e888808b0b14a1cdddcbebd040ca53f00c0f7b31401c64b665f43497363e1e80d619f78b596ad07fe4104e278d6c056878ae91af3ff4a79709c4db9695ea3de096db11652c8e08310cf236fcfa6a91ef07f8949214bc56a1152786a55a2e5dcfdd89798862a67f9bde7f9c431869ae20a21963d9e725195496f84bb36fb25e09e57591090f1be24508465372c9d09f13f42a6a8c55849407fc9cedb451778711ea32bb4ff8071e3ddd0b8df0c7c82076eb212ad7eee46aee9b4aaedd92b392c7ae52b387197f3a70d2243fe81b7b478f3bd750dfb8fa33ff2be2fea15802f39ef53119981f9be4550251d28ea6ab1a99db1aa20caad8b8fa49577bf6dbe19a720ad5730def619c0eab2dbed39b9ed37585d81de9327cfcc6f4a8fc6cea81e62039d445ea1d77abe9af35f22f034f06cc3a4c167db027dbfd106ac18767e2803452580288769e4f0e14522e2c38f52902bd46280ff98c4adde6d9eed8c6415ee02d27f5bd770ec30d85faac166add3b671382477cd4c784bea28cec4a92db257e20c06f53d3920c4ecee5c04a1d8e7613090651f08028a8d8d4a35c3ce9f6a48f8a88cd5af07ec190634a485fa93e57b1ae9cd5a32dce955af096b2f0fb4425fd4c0821736a702354daae178bb99d6b6cd4560e687e1119d7ce8baa348e8fc0eb4b369c168fe143706c4abe90cce7a1b893202d360dbfa1952a3f23fc7db70b10f0d4050ce28b171d78f5458db74d1582c7657babe7211b99257d1c2d3403b3d2a7decdc9999aa38101aad01722ab909a8dc6f8570cdea915c229dcc136bde1f5630293191fadae072b94353a068d41e7cadb6b09f09a5a9d6ad97bea98228fab19302b9392a99ff2c1b2ffec358855e6a40b17c9fd7d0b8369f960dc83a10a3640358196465f7423b20770ebd2df7ba1066e83160f751ad26e88618cb567613d5769d94340f9f986905865e6d57b850721c11306f650a2c00f5f97a6014177fd5f6a4f92bb40b1660f7f4b57882f9df4e66d514ef8af50b1430824b5cac5ec515de99e0ca7af08b88c4974760c50d2e58c9c25fb4cb81eb1e629678d8cd92c6eda8689ec2553d69084eb7b22d59aef71105970729fa276dc387d69c954793bc163bf6b450c7e3b1b18fe9ad82a6cd826b0c7afb19314903e5e577e4942da1f1e09e8d2ae674b5cbe90100838a645e6576f69a9303c4b0d8de0c15d780ed803c3e13a2668f5f094b4d4c8caecbaa400bf957047a1a11523992923395281b3624284f3b43ea8e116f3f593a2482829698f2c251cd9419fd56e0b778cfdf720e1a2917bbb9726c0171aa2e6e242890b76be84593d8d8b0a14e23817ae1ae4a6a84327a731e04b21fc1fb30d6712c9e3b4d3afee692d64dbbcb8ca135fcd4c4c60346b01744ca51e288da28eff16a6bf2f870669ab17a531d5b7bb1bdee948971cb908291a42f7b85f690d18fb513489ced1a294e5919bd37c996ef53e9d88dbe0a3aa3c8cfeb70ae16e3602ad3f5bbd0ed9e3390673860869582587085fccd88b068257290d8f4aa2b2835f137e57728b4cede1c6291a43f04c886f5bf86aa94981c51d11e8df9d5db4fe9cfe4e38ae0f6126ab32db009cf04e242e23f3cc00e51a2d59e2ae39bb54b4d5b25cae600d2d92ba2d62a7561c1b6fe9db13d2eeb9912176a50037e45cf63fdbe4896707b990b817701fbf2bd86de1ac737608e4b50a0ce22c33d95b83cf210613c94ebaad90d071eb63d904d9e661a3aa05c7520a1db4b674ae48cb877244ef994586d851ab013fa0e2c35ad8b9b3ec585d59f27ffa8cbb39db6f98fe3da355c34080145cf314bc3a103e1aca92da0672befd1261eda8be5c6cc7d8692d179ac64c42f609a28d67475b0a2337af54558d29d71398477b10df95dcd6bb1da94459b7475aa6490483778625cb67d8eba2fe11d8eb1da74406ef76c391a92f167dcf8543ef5f623a98f556605b5e88aa997e2b4aa4b8e9007a0409033acd315e94cca4ecb86f2b99f0c9082c8ea1c3214a6314e6db096a7f480d2620ba983c877a832df18f8f1a741b4f3b4616d77173a968de4342ed5f07d2a9774d2918ea3c4687e2279dc053746bb64715172e3f840e09b8cb1e277e8b7d7961ee5884d394b22b4619e461e307799c33f2aa99504fb6653834c96227f93277388b48a53e0d9b75ec03b596b48c9eadb1515cdb549540bf0f0a3181d4a0dd65598db10425ce849bea913afd7d347b5ae2b9ac5dbc07307e1eb35737860ef24cf0997cf0fe4f1416868fedb41e4c729cc6b690de21a06fcb34ddd2fc5beae30483aa494dfcce934085151fb525a62aca968bf1e92d0bc9b8fc4e494aaaa2abd39012ea38955c7189c3c372737d650e7c6f332a247fed6df9d09ffc272ab24619d979e67c9cf4c032ebda5fda754acf8006608d646150712a82713c0c1c4e360c1b73f7d03db6b5a2763eb28fa6f1dee15989de9f5db34cab4c65ef097829008660bf8ced91442b445baa088b6329f3f78acdd6a2ec165a06812b0d4f85c3addf257e486eb25d1ff7ffb158fcbd9f898f5754a19cd6d35ce9a0bb25f372694adef082818477ea3511617067824bb05f1de3256079093af5adf2f8d915ccab68af28c9c279492432ee832b52b12d06f802c2e8a80cf0c02e72cdc55d4de1899cf540874902b0f17f109c8f08e9131c1ce378c7020c940af2c01fcefc6481fe00e589b28a5f8945add18390ce7b31615506e2d169d9141a93caf21f936b9beab06f37ddaa521320eba26a72b92462ef73cf2a8bcf1d3de5432decfe1412a4934e82713804df2fcc92dddaf437cef64b08405bf9983341d89c4d103e055ad80c7f507f2ca8dc8f169a23791d87a8e4a1ed8c99771c61f0f9193f47d1fe93b7eb6cb15f69d75aad8722501faa3c905041bbc29bc029e3e21d9a3c66362fae4e99428c608a88d2bf1cecf734c4bec4b0f5537af92280c76ef9e4b0bfcbd7d22e6bb2548767e7281497de796729c8eefef0579d4f9554976dff1fcf7b28ce5629707297dcf7d081723c829f23a0eb76b49fae3a686cced11c9e56bb3b11fcf72a86b996ec3758e27bce86cd72380a2c8bb6046bd8c98b36a3d9fa42c9b1df6bd0dfc7f60ee045a329923dc41d8cdc393c304745c6751ce004456025d55a0a3e8e995b7a47d691b3d87b1df036eb6e6fb7be2be3c8ba842e900a3eec0521a0fe855f3bcfd12febaa8af73f4a6e249ed58c68a7751407be810d0c3254d960ddc0626eb06aaa4635ac4650e2c8d062a19582a87669648a35c43b223b451a598de9d66a0776a6df0718c46ce95fd56c7d2f916a989b55c44ac5632a3e5bedc3934d95a411cbec9d2b0fc9725891d96a9000c0aece9d22fbd2630ce082feb59464a0df5aa300e2081fc5e6e5da8d6f3d071a9c6f210bf4de95881978340c56c7893204821787d93996a27d013ee51f56686743a75bec3632d0f0df91e40e8a7b2100655acad41ddff7373361f6c680f709253ef38c2cab2bb4c8f7590607646d5c0fe2e29ca221a2dcff438696d2c4bb96a6a064871d1c6be515d8a973c3263a011fc1d17338ec2695f15a6b5b7823438f6d2f7f620cf5c5fbf18486e5c903c7e9a46c48b8c912cba3e3d823a2e9bcf5c78f7f47fae523e50495da9f7ecf7d8d811ca4e7d8e1d0023dbeb5766c99dbd6e66d4d856cebfba900303f5942c171874ca5f742c4e011b3ce7d6580e04cb581e8b9830c9d760a946497c573985c08f35ff1a8f371877d2f74056baac9bb0d8a9ccdacf4b4ce0fee98bd0aa9cd57122de4834bb45994d99383c182b214c15ca52751c8239a0c8e5c79fd5765911a916e973fbefff96f5208001a8f0e541b5a337e31bf76810fa084d734d45677066e504c4558a751e97c2027b5b0b53ebd10f7efe6ef1e5a810ae6f8aecdb6794fa296672263b5670223ede689343a2daedb13990b8d815debb8af14df6609736451ea624f3cbac4cc2d895fc2412b9f7aeeabef41c80285da184ad6ea2f8fa3e797d84bfeb753f5553ee26a6e71e8b5344bd0386b03ac1114058fe10477cb303711a243399f570ba4c73d1006ba6cb70448cc122e828905da322b49975951a08555250051638b1bc2bb8311bc58198e490639ebcc55f1a73f5371163ee0805f82f2744c9b603cbfdc1da85fa0a23449497daf874c7da2028e5afbc591affc3f92a07783814a5d946e0ba5a192e7a39971fa617dea73d066b89fd2c6c11768f397b64719df9a06ba7c0e57b104d16254283960bae3a7bce6e0c57bfffe8c6c924c1ee512b01e5957e3ca351e8de65df52b74cbfc8a9374d8eca12f47b6d21c1b284b33880ffaca14b25853ab4922a11a8412ca57af72a859298ebeec9a638bebd9f52a2986bdd89e98dd44ce11bf3e0502d29cb452ce53c7ffdd172e81e0d048519e9db7a866ed266337973279aaed1c5191d14db0581e45ba6333c10890ceda5516e786066615e286c93a35a244226a971b323393d3f03a583a274f1739b02cb0966f006804ba8abebfe16be0574f1ba697b7c8fcfa36d2724588f422e28f30e220ef245dc133dbb657a4192b721004ba7c7d451baeac7b3119d0c04c3fa5b86f2ff9031c857b18cb035fbb5f0a3a18cc2e693590d0616a4e3c67394bd919feb6f67543afbfa384d178267e541b2ff471a4fdf8069ed5142bf61ed62437f21d59b8549c74cf0be9f7f8ddc6ba1e67544eb89c411b6aa7b5f41a5a85ba947b9532ebf05deb487114b06d74aad191c29b11084a998f0660ccd887e02622f054cbe3395ae7d2f91b56ac228d73e86d27500a83dddad349449d49415d0dd1777986e999ed3199c16204ec336121b13ee29b450a76b4db6ff6ae5265d38496a3a97345fd73431999b0f8d70077e662c073cc3fc4e62b454fe94afd63ea4666822fa3b66049bba963020f6f3665a8ac2fc6d52406cc17cf9c4d01c52fce06f30642088238e54b7b638fa98242378377b540cba0f4eea21fb72e261c5884e6185d3afbca7d7b38476bef2c034231457998d268403ea1cedab4e94f00400300189265b97bde53dd4d279b815cbca1f1961edb8c6191c4ed08af06d99ee20ce19e197ce1bdd1e226a5171496e2bd273d1748c6b8b3af4327cd81c16209d8ca08a5f9aff70293a616d7155bda4d235413a5ce51914841ddf76b7d3c4dfa8b6d6c15a7d1e59c454841d07f9dc34728d5132212b16334c942aea1c16c41a9d89cf348dd4275e6c287521e622a4b078b6b1049dd319bbe5db8ef483d4daaaf775cfc50fa4dd8fbd406877e3bd26ffdd6c08f202c974c22069431518cca37fdfa22d611aaff2203e01e30bc33cdaf91a8d64b3d5e1aabdedf3541052e275adc3f46462deacfcb043c8a33dfdf2492eefb2eb4d47ee693976d54bda1cd4ccb068e8c05bdb03e2f54c1d08baaed671fded8fd6a9f8cec0286b1c2993b979c06cad4a540ddbf070f884915c46a501f64b6edacc78beb229a78f5279ef6d255c83bb88c170770b80e0327188114c915f255ebb953406a9d2164627be68b4097967e60531e3b7b41360cd500f7b2e3035f30b4804d6e856e0184c9776220ed5436163dacdefb1296707762c76f26c49bc36ab0d229f4d2edc90a41a6546b7d59334c2e935518cb880fde58e4c7325c413b08d9540cd0bed2aa627610d52c268f5da4c6d7724623de46672244f2dde4f46a264c7e52e2038efafdd72550f4cc59476196ed9a8db9fbad203059731eb516f3497cb909808a6fb5b7f8e005370bc1c818b35326816fb2c0e6628ee6d9cfb400bb4c9a73d59671f7c3cec487b60d867a58ed18e34a0c6160dd78497833c303bef1ac53881871f58330b0db3e378a063e5a667e90852514507881236a2ab37dde128597728bf1583ff52e7ce68645fbb6c8777e63e75857b9139afb9288a9e3167c05d40f4f9a0fb694363a0ed3e3b5ca931f0a85bc2023a61c750ed92085069e60ab51720529d5944c0d159a4ffd7e24d561239131cdb189c96d4bbe5d22ceb4758c0d6144caa22ed61aa5422db11ab3c45297196e6c0db4622ab6d11f976e18afbb4bd9d7584bf8b696c611e030472cbdbafe217fabd7e11a0fc239ec9b1c900bd9c586d452060c218000e6b5fd3d845086d8a211fa23ab77033b2f6b7cdb66711e0a4c7a6ebcaa6381b1f6bcd2dd776c740508fd7a3b124a4c7d81362930e59a7b17c1e6f89bb2eba0de48fa7428058fb4a8b59d8bc9fb367c7410f8449edf129383b09768562cd4e15938f0e32cef0a67757cffeb3eaecfbc1752d846d52a41aa7f97bdcd6bc00636d9f474a44b3e5c31bd26d8d130563af2dfd03c0c5d1e87dee1295e0a143eec638002d91f00bd8c5828f0517018856a7b02a9d67362196c31f0ce46fca818adc152b85d51ff7aa813dc0ba6be1eade990110e01dcfdfbd93d0b1ecf02f0e301e8fbc3fb3b89494208f81b87878fa72f8401c46f9eeeaa69a87e6a6b8a44da93be60a179e23f410823c0b95b0b26308b6178a52de34f8fbf9cad330f88705bed837426d2bbb33d683e7cf148bfa4679ab6bb1feb643c18f8e989b05f0ef367fab2dffbeadd1a5c444913c50cf31051537f86b39c00b0342490c44db666902619e8201a9b585581b7dfaba8a8677a569c7b8f77692a37dad5d06e27f3574a61ba27f254017b76d3e9872803dc206ec1746f8e95e9a12582bc14d3901f854a069228e7cb2afd873ef5042ab36efb1243ad0f1dcab4ff1eaa51382591e00ddca857836b78094821f1d9715e894bd27570309de6e740f6b45295114a63b9da4cfd16ea81a6ba55bade821648c96a3cba40db7037541060c080da405ef51d3f725e10c9e7751de4563eda2853ab8c2dbc90e5f923883075e3bda39ed46a55db974a29f38a58b9f3430aeeeb05dec3032e9fdaf02c9208c254978fd8fc982ce8d2e3ec3b9197f4cc268324df5200d0cb659121c17c9377b9ab1d550f838978560f6f1c218cce9a058aaa80ef982748c6dbef156b984143fce866d08701fd686cafd8cfe5d46cb3406ac8f6dca95b9577d325b060a466d6af5d0a1fc10de7aaca412d26c17735a8a201e8d0454319bdccc703be1e2c5f4f7e66a7cc8142ec5a03a51f860287c1bb333658230ac3d2fb1efa3dab84b19ede19285d0faea8e7c72ceb856e4d29facfaa9c2c51f983692f20f3ebd92c2729755d9c5314f98868051a73d8d64e38a27c5af6bba0fb3bb911fadb0a8b47df18c36448305cc320304e23f8b71f8ecfcb753a6e20e029e90d432a55f856ba661a8635e5a227b8ecb636a8cc65933bbd5d42479eba198557a624e5d7fc35863af127d41ddbf3fb3ba5afb50e46761e619342b293ac58400d398309bebc18b643f1acdd460e07fe865cd8796966a704287e069c9d5e7dce776e11efc3c410588c85f2009df70c3f956ca16fe1f2d0557c81f452affa21268862b29936060943aeab3df12850c39ed51e3f6c3cbc28acb6d33f5084f08eed8826941b08550eab127319ace05db6026deb6bf8d1bbc09453002f6d8172bf80dd3d1a30b3e827c63783852cff610d6867017b9ff38967d97568b20a84f87503852298592edebf03d89674e5d42667b227c53a1ea8e318f686bf4a256dbe60f1b0c0db0b2eb49b98fcf89a9d847ac6c9aa4ba79b272dfe9b998b3f8f3b414ede7af887ad9cd06461bb0c8d8639ac8ed972e06c5562ebfe630caa25cbf5c67158c91e3f7a7efac05d9ec62da9641390c2f7813a6ade49e112cdc9b54079d3b71ec07c9d8f6eddfa4579326d01798724124a61e4ab6494fa1087edf2c581b42a1dacce03af818b3afdbfeb56e36ee65b102e6756a347bf6ff7f9eea0b6e1f766e137c5317ea2f64de246a47083109138b754ad56308bdf0555aff70a14f0f01f79d984b0506a780141b4a368bcb2ecfba48002186fd6af820c49081a67a736b4ecd6260dc4104c0866d041146c86e1825b55699ccde40d9deeab74bb5ecd24d2c7f236e3b84b127517506bbe01205eb25e4798e77a1e7b7d715c639764c0592c62ce35b772e04fc273ab24c6172cd2f303a47a019a1b9fcea77d5117a235383eda5317a1e835ea6a7911018d3289b4c104f0aec8e218c35dd9048dbc2f476920f405c6c6906fb112b98eabb5fe27fc4326ec05959acf564b5fdebbc668af566d4ee89ea63077d23ef40b61b2a824a8fc876707aa0eb669cba5f2532a9df3af359fceef317ce3629eaadf73a3278539846ba76f79fa68327675341fd79b8de704eb457fb78dd8dae2d74bc88595e933568794abb583e18c28e623c14ecfd8b4f5e7f6059e80d69428646759b1ee44a0ad360e5d34b62675749d7b2b8be6a493d6fe54afeeb8e952ef08a1b3a7d2658e7118bcdca0a95c90a13a10253544d5415e9ca99dafa1d7b8a2ac3f793220b08c31ef76b4feba6ea13d1244ca2aae614370c40f630eecb1cdb27602e0d186e93132d4e922fc8315133d9bd30b56f7615f7119c08b5a99b17e3c1e49327b676496890f5d98147aa475ab2f292ad39d8b21acc92111d0595a1b4235fb4ca79e25d64b27b43f835fdef8eb02d9416797ad57c51471e5310aaed87372bb1fb111db95c7f7887005f00af3896f60b946c64395405b706d345aa74e883bd23284199a76d2e6f53a6d73ab6099fec5d32bd030b214ea8400b8e549f724f2a01e9b2466a4258411e00320775ca7ca4123bd510a4950f4d46cd34a55b556c55d114e2a714aca285658bc76bbaa3a20a80f44a82839ce6c7870ae06104b9a094e4c71c9e01b966730cc3503d831e47dea54b3cbd826fab192432c23aee27459b3a5432ca4cbb760b71d8e29507adf55a582fdf2a3f6a43d370b66ff8e869c002606ad0b9093534a225b04ecd83343335b7bbbfc9d54e9ca4f67f5bceca7b07325eccc6b87b12fc0e64e6bd2dbaec124b0f822d6103020a456e60e1c9f9982d63de8d8ebf0e670ac8bf16b5d2362f98eb2044d5aa83ce50a9c8e6cd04214eed23f214bc319f666db24f197afc86955c8007ecc6377712becf95608996db44142aed160c6702b698c1b324c5605017e20659c940acc8861524daba6a4967a376bb3c4e80bb5d3c291604a635c3f0b593554632f48ce82a647c9ef300d02497dd6a5dc610e4dbdafd16404b810818f9ab79330447c51210e1a3bf5df734d6acdfb628f6962fcc0683a3ddf772a9136e50032326e8b166cf533a4873608330897498c677a5c1735407b278d45350bce7a1de1ed6292f92f67fa21e0cb83b7b536490181fa3f2578ce143d742b6f2bca7c2bbab868672b789063f832e6e43ee3bee1c70f9ad19a6a2e9282305e827cc0bc3168401d64a41b4537b822e5f1f26c50fbf1d60167f8f249fda80fcfc438e91cd0bb038c317330942be6477ccf7d0b0305f6b1d1cd1f7736e0c7938ee7fba4806bb3d6949067906c4f3caebd335ae15d1f5e0cefa32768a1650ef4fe3f55f34cb71560a258de5b51759b59f4ffe1f15feda76923fb4ab44c6aea9cd614e6fc78bed69cb02621741e9006bb4e4bd3a3184eaddf0a62d5529b916ca9f298fa892ecea15ba376e103dd338e3e59283b45d080f49552ac14bb2dafc06ef97df789fae30cc0ec20d4f2a7ace6bd48af9485c075d44c47146b6b8e176af2cc48898d8d812cc283765771a05d7f0a151772f85c4d70d3b38f9563eea9936fcdd13d4b0c0879ad2a755b73f259566963e734972b482b900f721baaf1a42bd4eb9a131ff0fc38a105ce782ee9696f13418d313d2da95cfefcb5a5c78b98b3448ce5958577daed1181b8409f13eec9b5addc192ad64cb9291888ad49ec06a59538b24fa0a64d934688cb54047952edeef548b18396f61e3415ed8a3f7b860bd22214bbb7d703dbda0b57c360dd03a8d4dddd9ccff2962bd32e9d6dc0e5767dba778255b2db69f13dd8f779fa151969709b43987b2c0c51d1e46e33653a9bec3e81112da1aafec134bc5f5dde6d22b13da15778577a1fe48c0aeb60ca152be00699bd0d35a41b2455ff8bba5a1ad172ad38242b18d1c0fb7425e4b911df2c8aedea3171456054d38b28e45283bf68e0a4ec4054d43bc3d38f1b2b195e142bd28107b5764b0fd0989814fb39ae042d0ffbc3e53b89c49bccf831bb2f5ca796df84462574e56a3e958e5cec18f7383d0efe4b3b8696ece40f5b5bf7c4b66968e66ef92e2454364a2d550c9030bd07908aee72b18f3fb5a8577bd6d2ea9f89d3f8e86d2611004fabb429a9fea0243d01de8032675a2d38b354ad1cff594b1e1b6952c02f9ff14c3a9619881f12919aa3735d0aedafeccf6fb65a2079d373c4dcd63e7e9e0358b3a76189743bd632bbc8bfa04aec796cd012e581db0ff6d54a625bf218b78a04b1b8d9b1a6cd04740871a65b2e7d5b81cf1115322ebe6fb26ecc68ea273cc8ee702bd81b0a0dd98bbe150f12c63544637d2c79140df2d34fa828d8557b71b2aefaa49e29d4e7d4ed00ff903eb23b0d2f0d88fee0ff1aa97407c45293fe7e3202a34af68c6a6bc6d7fe9797cbade22f632d9f2ce3ef1971f01f4dbbbd6a5d684e0ce951ce99d2d2c727731a9ae8a14c6690087980466c891306977b1dc9b6bb17b7ca00ca1bb4170070f00800326a88fe04569dac5b2cc1325b0fa4b1c564d68722a0622e6e0b4809a5b7d545f3a6bdd71e8e437034416c266a399aadd176d0ed7c1bf700f915e82ed2782226fa731d036f02ac6b91578ccd53c0abf615ea2839e4211616853e70fdb4a4685413d224754c84c54e4d7e61884bf23ba7357da18436b4179c0291accb410fa0f374e4b8852c3a8f5d0b8055bce3b66990e049b78672f1b4929f70232d38ae501cf980d46f8b9781f53554be516a52fcb2350e3d1ea8d4754c2e8a2b7fc7e5305b289d70d364392a004d41653655881dc4f54f8fce789011f0db3c9e6043156e31146238363ca91c82848a19dabeeee7b185c3f53d28aac1fb36f3c034e855019301f12880b548d810b3c2d6b5f2841818c1a008b33c36aabd852615a1af9dfe69e322747dbde74954901e30bd09df42cb9ccf5ba0afd8a3d86c063c1235b8a010a5ccdc5c42c71d8b4360c3f19678bf5099164515ae6ae6c5e5feff37aac7f0d944524a337c0a2d0642366fd263002c6305b54d49e9674d4e8596e383db3f4c87be928078c5d8efac7d27eae53cafbd721013c31577853115125f4aad448db8d5c576c08903b20377e3662032cefbd51fad71e57942141d0c6bf26d3035dae7ee50ac94269fb783f3292870c88f3d42c243c466150c11f3fbbd35d6ca04a40ef3f25835f20cec26c2ef4f7537c2104fe5341e47b0fa037bfe0d5df90058122e7906cdbcf5e5aad61a2a9996147b8d60c62b5e9fb5bb11a6040a69fd9974424308a881de1c90dbb545e389ef78c1a310d8400196b133e04b513319521fa6f8df9d80ebf0b876a05f2049d18381ba2eed42ec478dd7be3090fc538cff61b2690d2860ece1fbd2847a9c0be9e1d0e590cf5ec816957c01529c72450913f45d0efe0fa8ed1c7e046b9b410b147c0a6aeb6f3b243d4e9a48cbd9f106aa88ad00b3ffaa85ed80be79bdd9a6571408587142461c660bb8517ae3650e24e36d282a3553c5fc08449a28a464fa7d3227e6952004f73d63d46296e507306b21be4556a10b21c24c09d79640df7e277071675e8bf1f7a7aba9b2c6448e12f4f7a7a5b1a2daf2e5d67c9c723248090800c08fca5a40fbbe52edcdff01194576987e31ee76bc624e9381f6bae6b6831c5d3c98ef45f9145fc78c6131f581abef8f989427d8c90d021d5b557873476a399b4abea4367e0b98145ebe06dcc5fd9a01c2bcd78e1283428e450d05022450e9cadec33fb6bdd8ef887c5d37500b4736dab55ddb9d47ca76499cd7e509b95a9b8a2e6c61851b2c751339566707a76799b5466e863a28dae504084d32dec7c3211ff901d2b0c2e8a14011e897fe46919c707da9c802191e41a32b718d4f395780add1d16db58da40d01d3f5277340cd4ea1f80f622309f9fea2ee26ae6448f80a70f0ac2185f129f0a3ee8364cbd6787c6f45622760cd3f852ed3b5776bdb1dd4001167f77e60f773affb3ca9d033bf8587bfaa563065b82317bd4aa2e4a74e6b13cd5c32ac6ac0d880a0ef10ddb3278521c3b1fb6032a0de442e75f30b0ca9eb37b4e77bd478eb65de5f0db6de1a08c656a18764ef072a096544aa06ff5e605a811aea1f3b60122de54a2c8352410d8b3fd4fea50d19f8afe1b2c1a5c4d63955293949591735849cfc38889398cab52493652e30833da5d36b8b76b1b6090c118bc56fae19b2c4e1b9f27d234480d557c457f372dbb43b73a2e6ea99107f49a80f94c85d9043081cddaf0e1149001414d4266a92148ebd66a0652067a4b86fb9e53545dafc44bb5ed26361ec28866e7a5423782bc01d9f097b148151f89d96559ec1db572c48fb836097419881b9b233567f4328c87848b5fb6c59ea4e37e63e09200468254d1bcf6ff99b7a9f9604173a62b6a449be970b1e1857d45b351e77ea473ca67caa225f1264013df5b75b20a13d01e337175b111d94110ca7d80e1e63cc8574e2054b7138ce2a1d9b8104b7f4ea1750b9b6da1819147ec0e0691da02703e3c7fb248373ba8570cd37f21d4441ce2f9870d24b7ca0c57abba79ac434ddd0e104d88eefe6a21850e5f4261b195d5844cb237e5c28a527455a84d410ad38db0bec95ee6312e287eee160f245a695c795917392acf6a84504161ab22492b879729609e8eb84d5b88eb6604036015df32570944a52d82a793f9cd19cb593143f2b82759746684d9e1ced92635fbbb1443c1d3c1154d09eca61777dcf8c46bc5ed0aea84566a3f93ca556c6d282083bbae4e4340931be7a2a3c47bbcc0833ff82fdc913f2f1cc6882dc4b664f383553fc6d1d493a58f82182828913ae9933b8e1d46ba734c3ed02e1967dfee76c6d7a12e9ab78efaeb6b90b4df2198f4623967e7a638da16a13aac64e5538ccded2eb40b098aabf0d4d3077985410be28dc5b9397130f49a8b2ea4ea2e5f371a2e34ef2deb34ceebf350122c31ace49ed85b107dade3a26f5d9e504d36a5e1d9e30bf56d049934d07ec7f0e134feefa563461bb73a41a4ffb335f24495b28780f64a48eabe74a909896b3562f3486c4b9d51827984c8d8118da988c0d083d86049814cdd52f6e051c820d8ea46de63e7f710b8100651538dff6e6824ecd9df0e2fcbada7abef10bae6b84e462b828cda7b60b246bcd2eca97382576ddd24251decf7cc7081e7829609bdee43e338ca441daf9701874fd3bba13782fb05c23e586a15666b3cbdf92b6ce34576e37e20af4c59ec34c22674978d5034062abc7cb39ec2b64f24bdd2129f3f72710c18dc77a964e5dd258eae832868306b16c06c6aafa8267004f1327a6b00333a367d7f01e6aec58763cc4faff9be95affbbcf37611e67ac5ce55a440cc487798be697f5447f29d5899237192a7d74c9d3b2270b3a36ebfc49c42d7fb229d29891357b01e2a2198360cd0687b1d2e0495589b2f4e38406bc4f9a6407de17444f61315ea0ffee76b0d5287309c8aaa38ad546748462d7c5f5b873bbc24ec9fb7b0bd488d33bd92eb6c4d65213546b563b4402a65f8efb0a0d142fce89b317fd4c83fdc6a14791126d8f3b10077194be3cb9b2c2fa918654acb5017f2732e6e23e21cca18968afc4eb9b3aa47ded521b40ed8f2d2d6ceb4714340cf997e15b632822853b23f8323e5ad192dd70cae2a22abf02140273e1f7bfeafec0b850ee30cb250d90ade5d084181e4b87dfc0c15985b2256d3ccd1a219c78ce8597fd3b024baef01b3931926ccff32e4002b8b1ad5c6ad5381ef54ad7bb3f78a3d1deb6ca7aa6fc2ba070c27e43c55a1570528b7e36335160253c7d5c8ae9d68902dc1e6e27d96657834d2e60eb8ed831a260e07e307a6bda9a44bb1cf7de86791352cc78667686e60e05b2505c4a4c351e696e16ec514af502860308fed0da485b92caa676931c2864ea179e987bb0032f276130a8efb7e7b7cd8fc43b30e022e160c243efa72cf71fe146242da622207c09659fcc2e030c3ab96b73f2b67372c175b4add20e65f39de4c034d4d4bfe4ffb28901360c70660b3e5b0101dc656ba8fd83849789172e4682717f05129129d578f44dc42a38593e22113ed464afe39119515063bbc14d695accd673f1872c15e6627609501ba83982b53346ceb56e825ea3a880ad256aeda33be9fa068bcc863a7dc678e77f2d964dbc78b5e39fecb9556426924af22254a7de49e86b926930e7f8ea227d23e364c70b765b2dbafff3f9a9aa22e4fbb270449862dc3dd4fbf5148bcadd455b209e0873db0d7ceb19a73c51c4faad04027b6a6d29b91c01344d1cab9ab294e42ff57b70bc24623914d782683e123f15f70a9f33b335ae90b6b90d25da8f65459fcd60480f34b85c82fc236a210c15658ded7e8ffdb61b1ec433297c1b88d6bce9994a6b88a4176634b6ee46b1ea0fd36db333438aff92d4e0d3671dc959a9c3607da12c0cfd60729876a1403210f2ed0e4f01cda520c3eb4c1ef2614d97c41c74a520c930db356fee2272947eb0e68c9d16bc5573d964346011a961488ab175bb7058bd8a2e7def7fa689f5b68ef6f72f044fef1739adb41aaa9e95bdd71f9763242c6cbd47e40f4ed083d7974194a0051d38239feadb547cea974a63fe5f25e1a253158ab1586be76df1883d40126ad57e07d1720ab09b758d90e37d03e7f00a51da1b57978d1f587ad71d61a829826cb0e35c80c6f17a837c37ecf005d3d6fd189f9ce9b17ae165642d2a580676c91f79042e6553e72b48cb6ffb6ffa5f316c44d7544b50da218ae3614c6166f8cbd1b03a7d3cf2df1bb375ce65f9866ed83aba88d81618ac415c8fd487079e94498f306573e8dbaae8895d1ec004cf06b28d051019a485b4d65d71586fa60b914e044afa97f0e71d6d640cdf310f05d2d2a56e9c3bcf09f8ff5a15b81f59011cdc4bf2858f4fae92dd6d8fc4976fc19f2e3358b2bf53e043cad030300adeafc520dc1a212acab466f47c5a32769c71dfd8fb05a8f5f55ea5a40bd6f18e39ad0141918902c2a9f1792e5580c4bb4dae29d5faeb2ac5f48af0e4ef4b9f672122a6af18dfebe9f38eb11723b6c95324eab77758a7b8c37d373d5c9e0fd2e17a4071163f61b86b796277a78588c488c1b5e655decc259b1dcd65fb663998e975e483cee28cd696560038adb6e0eb3678c9b9c6c8ca19c0661f8987bb7af1e30e29e0e88c69c6debea6e54ca478aace012057f31736907848638b5e142f52590148efc6f2169ec92d83738b0d251d27e1b08977c2fd5932d06d924bf98523707554fd42e212872e57fa5cebf3ec99205dc43d926b2898294fe08a6ba0a04137f23eba685a4440c470ad1d19f4bd23173d6e05e67ef3455f1ecca221d5997dc05e18b9bdd2ee99ffaef0b6a7572df724b17799c9d364abdf7aa5cc1b19d31a0b1cb9f419f34ef9410f482dddf11d033510e451283aa2e95834124067318e53be81c847103ec8d957c9480b8f195369e55547abf292ac7401283ef99491ced3b347a0f1e66f39474702efdd0e52f1013a8a58cb1e566e93cec1e436ee56ba3b52a6ae16209443646e9a10b42675add41e7d85f638a867e2fafd2bfbb8c5369fb737c93f92130ee6f13017a62570f3a2ba7fd0168461a4d0dca4c28d8c7a4809b4e359d7103d58977bb6944bfce59d5d9105ec39aaa812210dbb70fab5c1d3f593606eb0a40a77d4482997406948f0ac76575b12fd02c36cdd5f6e8facc6b5d3ba127a7d5425340e8954d9a7353a656950c25a7746fc149d1e94625f968dd3890d5509557d69614d0cad0fa5814c8b23a9eb74e128c8557537a3e0c3dce8a7ee2c74bc37bb6d5aa841a599e320699a9d1236f6ef0f7fe0058b2898d5d0dc0d5080e69f8061ce9bce8512d10e077ca44d585fe2e3b0d861372feb30f35f2381ef0f8b5e76833f0e80c17d0a58c42d44de81c2ab231b867b45f309f942d8c1d2802ff9d9c18ca7a11458791af411c174aea5e7aeb9588da540b6312129bde25baaf82a6cec69c45af46556dd9d6e65ce518b4b60d49e48d68a0dd83fd2ab650d8c950c75e9401d041d4fd3cf10cb90ba0c1e892d450eeb2b5c3bb439ac4fd756355bbadd8ab94249a19d9d408d4632545aaf4e4e0304ad8c4175f07aeb66c3c32bb477ea09d69f212530c1035afbcf8f6b09c924a7f901f5997acda107d7925ae5daa80b815b5d1663b85eda40dbe1f7a0516e58f1f579f5177bb25839d1673c5164595d72ca191da98943f20c9cfbc110bb5289418d30b4444de3220107aac14f9a192c41e7777759b73cfa0fb49741070971551e72eb9ffaf4564ca2ee345333a63c25b5d2c54567833f499f6695c581e1906cb3954ae5e9796802a4175a8c478bc1cf7bb23e41de1cc17f94e0bbbdb3efb49a4dd8aba0150e5cd8528f29c646f1708aa4e9a8605baed7dbcb64d49d83d63a04de49a4b95584f29f3a55b208e3bef99222e1520090bcfe31a7882d540bf3164a7dfa304fd616858bb0df2c83408416894e60b084c3d4981d8b8099511aefd5efe45a019e977d63044ab0411877b5057865751a554c8b8885617c3911b2234e28f12c7d54eb546e7d65f8dd3f15b5deaf06ee737a1aca7a021614a8c68bcb2a212504685afad327cf9f4d487c9aae8d9fb55fb4232f6fbc0d1bc454598f05bb002856442c3fd3b4575b6e67e4fa40806f5cc09bd0203bb520e679221c5ca7ae0c431bd80c0b23882e40166dd11ff94c54c58e10e9960f62166f309bc0c5dfaadbe4fe74790132b238bae25692649cdf6f218bea15cf7d6831b39c4add51a9e0061e20e67f98030fd07847f7231b43f49e84ff2bc61da59d2235ea11ffbb0c0f8c266225cf9c76ccfcec9278500943ebbf6698ebe966611a4d788786a570339bf3d74c3a9eaedb02f6ce028c45e5e93fd723cd7012a2c9364e8602aeba144aa8592f7de4cebfdb59bb99e8b6a4dc072cf57cd844d561fe06816cf5a80efd3259acd0a5f30399aef31e0dde6f4d104a42e715413a86424833cebb021f20b608a6cc801f6fbd56a11884ab09fea414650990f5f1ac1a7d86459a09e27d027e706fc2a909efeee7ec5cec3c734cec720fe23508e37c4e5aedc50d6e7c5d83c7bcb9dfd9fac8ee8edc3aaa4b68234825ccc139a05185f1b814c14308199bc8b7df39824341f20e64445b35a6f0797c1f858c6df088929a875691247799fd80aa2d9e1d3db3b9aad447062ae152d1ffc4f516b1903a18db4e7d05d461c67469aeef3c5cc00fbbf61e707672d2a8ccf76de51b94fc662a75a6c23ea3efab455905c6126febeead6ad51208f6168476e4e731ae7a15d67a03bc1de0674e06b63fa7da3a198142f22e61087fef8ba2e63bf1a9f1289e1f5df9d3e168f330be087ebde34a9e6666fc917eb2dc38d4b239fcc1b724aac04313dfc0acd4264875ddd027f63c7e25c1022cbb528070d9280d4680db443e86d3e4346ca5dac7d122458cf727d1d46df48e01fcb08bd84422f165c9f5d75862a9c275560a66ce08c01d46f40291458f9dd4a7f911c636045b824f2e62a4c2a63179480e10225aad04872a18c7de9802a6ef27bd7d77c8ce311e71b3e1619f0c43b30cbb0f33e18733821e127dba91e0236c202756f69297bc62f35155ad6f2f874f9796057772ddf60e85c5d8260f66cab96e6c3de1f61bedeceb7448c9260f73ca1f6d5fe716fd4c57f3c7eb573f78ea6c7c934c3f715ac506c77e4bf51291cfbe16211bf676b884bc60e3a715861a036f26f79900e3159c3730421e66a6fdd1bedb283500eae449d7679831fcbaf8e18016c90f998c5571e80d89aa28267ec4070f0c672fffd9c1bcfd9702848fdf53b0518c92af28e5528eb891ce79e3a63ed289e9356560f5b71a9d48dcfb3f4165a3b097771b36d3d00c7288f75cebe7ed40def35009a918dafc42468ade2db632dbf0974baa8ef3814246158c7b071bee2f9eee3fd56b28054dc3de742ea5754950100ae967dd5c98f1e9d0269782fcb1668eb461f72b8fa160eb9503c1d9df970aafc4de6264e88576e1c5a01862ac7bee59b33a277fb80f25a19fcfa31cf5ed96446e2627c7b8b0fe34f6eb85ad2f658f4f6c1385e79524bdad68a60565dd0d7c11022b693cae37313cd6bde8ebedf8b531f5e65e351cb6a12a0f5c4d8b614c11d7511f9b9ef2c67b97ce097036315a432778a1346ac5379798e66d48006fc1588a7da466506e7c7541bb4bd61eacfd096ab2ae95270e670a80f4749b5d9a08bf687fc044cf52dc09bf6ea2562ff2f1f86575d8b1adf707a61a7368dee79791e20fa224ae1b90d55dd92bba3af9fbb7379a2675b74e87b133ee52b00efec180c47b06c49dd361d6a0f82b874b7ea4abb4b33fe6580545aa1971b307417d961f05191eba5ff9bef03b2b1ad0ae402cfce706ce66138ebfd407c96e2fbd5238dd0d6b3281e6e5e70e11219988fb6bb734cdc4f52911fc06aca5748d70edd1edde4a20de7820d3e037bce6bdfb8e59ce54550568c9c04330505339ceeecbe6a020d6d091bc07c0efe308f98ec66c29dd78d307f2037c9ed5a24ffe24cbb7e85d25360e0f4a662d20610d5d89a23348b41226d8f0cbd7fb9373d5563616dca4d93712ddf0778857c1479ec51f00f18107b29eddd4a577ee8bbc015ddf929232e73afe2b1ebc571ee6fe0b733471ddb0ee5ceab6a3567ea3e1ee9427ac486c47040ac05c5bc297c2e6505c66a0e34b2e66787c2c78e2f57c3f4fe19461e6c90bcc69b07fb9d23ffcdc0f72b5b1ab55ebcd403ef1ffdac8d85262785d75f42de48288197320882ab327cad449a75e0d7e6ad2845ffafd26674c69696191d7b23e8d0eb5b2cbd695d0ea8e0a18377d427fe3c18f5ec0236f3461ee22eb14a34e37f5beab45cb622d358cc2b5e909ee1f4cc4441223b97df8334a61493392bbced0eaa7b8e3832699dc3a03e9283a482f9effe9888be32455aac5c314c95049b5933de3511c2a69ca9c601d63b7dbed8a7367e25d6f50f8e74e126607a3ca7a629fe5e6f8044c0581bc3410a5c06ff6487033d91d56a6cbe75d77b30f842e97339d7c6514b649ffc2d12b2214a271e96839825c3fb29de5291dbe0e6711dee08190c0bef5a7d56b40f682059a78cc48ce48d1d53ee985ce4d87b2bebf6df247ab311200ecd376a6dd64b60c759f61eb116186121129bd6e24eaa6ea936eb4ec8e5dfa74865709d8dd000c6f2a7085273417695c2e493d7d6c46eda6a78822722726a1c7683a3ecd671c0a9dccdf80cd79df2522b8bb0d3e3e28631110616f202d3c55b152e1171d5f11fca4072a0ff2fda9cc2f7be1cb90c080e27d518882d7e9bc093b3dab6d9fcbe470a7a596e288c2625077d0e92a4f01c3ceb2664575d1a8ead28daf2f6b33493aba5b7d8a1fcf49980b699ec56dfb0a278a35c37e17356cf96b53ad9711d6395271a4fc80dd85022338dcfc9af0be917f01a7a2bf6b78d2e4b2a6e094b208b4aaf033c13faafc10e777873d95a0b8d17f1e303710279355372994e18c76876720d640f19106ec3eb14d095be37d9b78a853fe88d736014ec6752abda8d94ff219864a461de51f1cbfa18010351f9db45316d01846369563a9e31a1e9b2af75f5da8edfb6e31f299b941b51b0d2eb4c281609197d8fb1a561fdee9b8190d51cdaca6c814334695abc85bd06bcde92696182c08455a0aca47a57aafdd38fa656a2c3070a7a4752eb5ed04a53e78a0697342fe90c76e1f88f340ed675112bbb954e1b87325aa81c0d301b5886ebf3a4d987859eb8e13a7fb78e110d4d062f2e1034ef771cebc24e6478cc8bb7221b07d4b90481614b9476ea8c5e2e9de13916c424e663dc1ae8b5c8d24ff61d4819050edd1d63c888c537ff80905d5c0f95f16edd9c6105d9fd65de93afe0a1ae17be3e3ba96b2c44a57a68fdb3f87c9677a51f24299d3e4f19acb79f1ccca6b96a78a7c8c1b008e7d92850b51fbd8569fd01b4cd8a66e96e65e290f2756e271b35d8f1c3381ff7b54760cf094c5392288a425ee947930a88a21675bf4ecf72f097c3e5b62e30819632a6ae8e0d2f0c6921048e2a6e041de0fd27b3fa3c2dfde9af446dffbe22e0a6e08d043c476ed9f207d4b0d286f2aaa40d7cf419771f4062a4c6819f8258b52191f045853ab275f4e2cfe5557fd6406b2877777b573ff5ced1e713611d39a03bab1c3b32891900089b09a28fe25048088b03d6a99aab12372958de2611aabecc5b6f54a94e892fae6727e9073c6662022117ec54bd9ab131ef5e5b702ac551b5c58ad06f09723ced92c3062db84fc28bbe1cfd33e29170cc6148d72723d0d3f2975fc62d42962586e6fb62fd5441ad32f4780170ca6cd0d54d9be433e06ba417b219604d34bc987fc1d3e01ccb4de8551dfdc87cdc0124385c46edef04566a7af2141707050ef56d9ef100c7dc02634e23b4e3df4cbdb155f662617c8bbfa8648701a4e51add62e58f0dbe1181e92d42c6042962d7fa89618e43331122c0b2edcbea7e2f27dce122bff45d297c497255e45e71e3f78ebb5db7828335de3b2c1c3ecb9a7d1fde237fb52d678776caa2f3557b5c5c0b70212f0f0a6dcd32b816ee5911f2f9411dee9e5ee2ab11c176d375ff8c926441fc05b972d82173dd775f9367827b9abbed7df632f7f6b8287f711d7fb11f8c6f9819321a62bfe13bb0dc49d20f328dfae56620347821bb3c32a0dec2a44e04570dba085e271d117305f95a13a994060af00e547b77dbbc79715de28c1ab42e416cd0619018f77849446baff2f184f5e34dbf5f3d7cb9dcc1169472ff0c2c9645e8db6d734875eddc8a24e8c9818ba84d21ba4fc549e86f905fd69c15c9dba9d1fe1420b41d7dbd5b0a1c1f7c47f0d77c488c067ac14c81f8a64f19d9e225b2b1704f6060073636bb61ce7fe35d27a2768699960b4a25a0e7b928e88c218f5e166218c1ce01330b7480528442366f2d7c00614e113c72bf1f88d72d4cafe3f680f5c94e363d7365656e1a390f76540b1f2bb4567c4111d5ee236bb0a29b73bf27a67ba6b9d2d8087d5575584d1a2d71ec996ee51987a6dd7621a04d34902c64bf5af7af8b917404a3ecd8bcc04373489318877a8b107870862578d1805c974412e13037374b647d60f104cd094f8ff9bbe24564509c46ae71293aa822f377ffdba2842d5a028aac249156a62bfbb620026f5f793e905353265fd6bbb0ba6bf1d921a676fa3b9ae0ff0c46d7171652857c2569755720574759165b3abd256181f910d540ff55f6a128fd694ddcecda64912ec9b2a17c34ae5935e27c831fdc439f719c5bfa58b9af1b1bd8395ac728dbb369d68f0213e9ad8a973b6c6c71963f1e9d32d0bd5449bfc69a677da16fa08837528b95d2afbaaa2d56c9c98aa24bb6aee638f6c399a92a6cb810b15ca84e48fba42f1a9a2da10dd61a31b51e3879410732fc9de9d5f2b597022e2f3bcd092151248ff754e3fc3f056665cb5ed691e30491126495c3c79a3f668c7a5912b491f2f7cb49fc384a3d2036f248e3a48b7fc222228dee909e0827e801ae1253596f0e8dab422efc5eb747c655878ae611dda1711d55f4a8218a52c2b931205721eb8b77860ac91f33f64187579dd22f151e3250c05a3973eac8bab1eb47df6ad686539735812bc3a5b64f3f090f1e237b963ab3876998005836aa6707c516c2ee4e5b271816d58bb93a56a083c103058415fedbba6a0c5695b7450132ab414b592a886b5a535a18eae59a18bc996bfff99559453b7d1bbb84809dd611f914a52000bc1ba185ca61dbe0300c09b6538e2c6232c7ed894ce3890e407bd3d84a307733d9068fe0dcbc704dcb2444087b8039746a53304c9f9b77ff88a374796653a7c3fc6d1177948d915062507f01750d3cac7d32d06674f6a1720a752199e0af655d1588537a8a7d1ae248c47696c8415f3ceeec014a57618a12fa5cad202c1feb599e16ebf4e49fa020c60ad55a3cd9e522613447c46279e8e364c73364bedb3004b1f47ca24e24c73f0db6bae4017de4c03c0091ff1b0b839f66824dd5ea4c205467494e247f9a9ec747b76d02e43372b095ce8cb1872255faa4cb6089e31a8b013663b69ee695f666985c53285a62d43ccad52ad4e62106f414c0e2afd920457121f9f0d9ee3fe3adf80aaf0c0885ec7125f0053898cd20c0c413b6c21fabc8edeed51f9ff6a845576b6349aafa74bcdaf842618488b0058bc09a2d61350eeb552c355915fd5cc6c6bb6a5fc28b1f5511c0f40e84a13c9d846053ad880afaf9673b7eceeda505cc7fcd4f5d4d8cd4647e15866a4f568a329d89ad94da2e4a4d04382f9714edb744130a8689ec5134df47c9b39ab5ce44db89bb09255e2f360f24203f00e0fca7c8fe28b31eff50f4532ad78594566751c3881361f81fd93986c50bc553a9943b5f64c1d281592427450ef746df8621c979f879c5d39ebad24c9c553d29374c340f6dbc28ce423a1d3a89577bd02fd6f68cb5557dd641be0d4cfde12d0b2ae99799a4620ddea22148a2f0a4d5a8165179c2012607ba3a8001283f168acb6796a987453a2b877cff83687b425d60234532dc87bb60eb1f693501e8b66787cadabaa709df8d42d7b9e0c6481158d888374e55d41d724c1d45353804243499c242ad903f895020ec2caba4738937d38765f8a2c724bcee5a3ae3dabf3d918903086fe6cc730412ee33429e0a3fdb0416f0e5d51b0197bd331497644232536a6aab28d01bf43e48e5c0a0293101334b5000fe8607b50e793f079593e7cca45a17976c8c0fc8fc7bf296c0c00cc789f55c1031e67848017faf3c8bb15b58fd227beee45a76696934789ef56841f34309ffc20c85c7d3e65e9a5763c4daddd6d653a09c97c832012fff81b3208b734708a75b0446c3fa49bc172f667103f42607ff30b6716c6b792d22dedfaa184c96ecb4290959f74ce2382c76caa2814f0e9be7d0bfe46672a5f9b2756b5d7f825898f21b2bed12a5e41769b3612aec83e1393de76fbf7770e400326b97689d6e1c2fb799b74fdd6f85e7c6760e21dc9260dcc718a7224ca3811a42f71a0ce007aaeedb6e51a4359c76a3add2ef5c0a4c621b2c9dc82b0ac4466d51049ea4f60cfe5c080be124083f642d1e896ee8b00df34da13d30e573b113fda33023de864a5121be16859917b3832e187c33ee3f159d4d9262ac2273143cc6078d05c96b723870054b7769b1a417cf1c893f4ec4bbdd83cff72684fc1c043863cdd6309685666b35096bbf1054bfa8cd61a605a55b9955e1c8d9324f734c5d01dc50c5240ae5c1fe382d0f6e092c7a5491d85d36fa09a08e03492b2838d4ed19419cd82f07fe8d3840d949062d8fd111f985d6e75e702f9cd73b63cac7fc05f72dcbf48738232cf825d490981e281339439ecdbf3a956b24a28ec734200f3a2710960c76351769be3aa16782ef8df1cdfe21e35f824fb3643879f582ccdd956860a1341fceefa80efc3d34a516938c52e2b8191d13a3392f998f30207e4b8024b4283561c3c9bce328a28cbbd053c1da0ddbed10bf1af500cb748cbdc086911f785cae60485de7a1073fbb8f6a13817dd78f647e7f4b04ab114138dbc41acfd909b6cda6ef2a09fc1093054649735f4eaaedb27bd0fb561063101fe3c599204a5c1216341164c92ec6ab56f8243206845e6a9e813b6ba134d6772539c5fed0fa527717a73649f9ad4c6e4673f870867c4bae602a27f1006e0613db03928d6ca3a721ba993b4088a81e32f1667486dadf279f4b320a3b5e9b39ec6149bc94012413c556108c28cb5249c1f1c7eee98556ba674b19b814a5b3ff366cb0f1ea133ce8fd1755aaf3f146f5da21fe3e80d0c8d767af6dd1c91a0b707228b44479fabb46e9c77c27e4d8482a9aad2642603b551568d14b7987d65aad6accacb25dc56244dc504c1989278a6951de0bc9df09461647bb217c0d6da1e2fc4fdb1e1c546a294d951c149c490ee4a111889c72b4e89f1fb226f8366d89236d3b6b2667cac611f2f78a44029de8f865b756d2094459205223d4773bae45ae2e9e688e2c58b24c0fe529b13e2d6b71b70d602aa4f401ddb9ee0d6457444268003b6214913282fbc4ef5e3b9c139566f8f83176a974c8760d4cf26532a73aa2e9dad2ed2945d854aad02d70eb66471fb44dc8fe8934711b8b7c96f1dd8a7c3619c2fb1785e589d18bb743052c0df4acc35c6e6b349927aba830d8cc3de46aa6085739e7a9c5befc58597a6aa7d1ed0053fb7e6db95c7ff6f3bb2b18d956337c60184a8dbd78a4e68b246b19e3fba915be474b5753a853696fc7b2e646ab39404b7f68de34ae7c20878b5da99b4a6c1970ee3b51bfb998f232219895692941edc6c580f9c45f3b0216a4b126d202387181a7c1469c92a61bc36f13e154a0ab1e78387ce55a2ad7725136041cc246a4d4e354c0c8101a13a3bb7ef5079a6d01210bc76e9234ad751f95edfd0d0196290400f8a1388b673ec2fa5f4f4f9f4e9b3174b12175bc9b43374d520e674f6cf1007d62628270f1e1e5ae9d40c36ac477f1043416a1af4bd92e3a47bdc18c9ce475185ef650bb2d4843486147771ec7011e1483da4bd9aed80887c61e801c08d67df8419e96442cccd669ac4e810904840c79aba2c694ea34916370ae0d6c19635079754c16aec221751332fc31dcc5482d1669a5b843549ca3755fadc24961f913217bc62d401bf6285ef3a43c6602a6e647121bd39f02f150648eec8db9d27865f8841935fa6b4c64a71b07bde59dd3cb50bed5ef98c5289958bf4efd01b64649f736a4c4d8c043f1aa1cbc65b5f99f4525a2001f58cf46d6991c060390d3d6f97967b6ae3c0c5ec24c0c2bed695c3a29aeb833ca5f84b4df97a803b34925c6201626b4be9880c3fcb4a2d580e0f48d7409e914b4484a9bd32a4bf0e40e692342bc835b12e4d20fa25ab746c65caf464ccd7a62951c4d004f6fd1f09c1e81039765b6b540297d2517dbbb8dd61450445190bd7280f7272059838f41580353bfdd8bc1595ba1c0954d218d2802d9c395ed88e18f405c0fa3261be04f229cd97075b5a4ba130deccb056455c25153a30da0cc4c53080be25dc0f7e09e5cc4d98ea9c7d0c3a41517085ef9af1660d1ac1a58d8cac970cd00bf95185a2135dbb42f44caa43f84d9e9e30b90d036e2b979fb38511266bff2d98cd4c6bd94c34d8fa21b34c0395b9ec655d81bef56929cd8f9af5d9f0a4ee7c9b1d198b75cd8e0deee528b85a4170bf8e634c5d7059e488d8323131c7133671ec63440eadb20ae4e3b99a755c8b5e61d2d3ce5b02a9dfc8d2e860ddebe57483487a4ec7fcbc2c0c75710ae22fa7f461c286f4ef8e4bc1cdb894fd2527cb0db5e6632ddc3093ddf6eabb0e1d4834a72173cd5be62533d2ba16ca592aeeeda764ee78c740e8ece9fd494c50471ac0716e3b73d644347c82c67ebb1688ae80ae3244057a011deb7f1c48ac0d11ed584f301b18ebbc3630e3fa6201ad517881d0f55e89975d7b6cb53732d597989b7cc1259b0b57ee57402a8636cde95480a381bf1630e2b1915a02f70148d39865904cb037388679a43b329b38546ab1340378f09fb8143323c4c22c2684bce726d8fbb0a8df1be2be4ff8e18a8724bfdd66305d240859782718b6cebf6ade449094da7498e06e413d5620787581dd4405536882acd2d3d540fc817e5552db773b897ab19bfe09c91a0c6f81fa69b2fe1d27a4c94a4f1587b3082ca23f4deabeb4ac71917c2d2b15e7134e481bf7927425cca9ddbab7a8a9272ba20c4f6b538dd32dd6d02a31454f9d0e4eee7017c1203a3c050fe7678907c0903536708df499fc4ac9e9e2fb7f204dea9eacfac757e65f4f84c805cea9b14fbf17054db8bf3d27b1e9505e143474ff8097a44390bfd7ecc6bc1341006c6ab8f4e2252fb13a22c039dcc11ef6710a81c5314042a2384d5886832d1ab92be0bbfa11f4a416fd3fc3e7cb9b26ce7adafc068b229325574b6645732afbafb2b7c95c84f2aa14382da7f5e34db02e4645904767a8f1c78339e9cc6daba8bfc266945400d45b4a2abcf39ed5d3b654fe17433dabf80f4778e893fc12a2851090de76d1ad136975abe99d1156426162825e0d58e1a4304ac5e8956d4c25db884406f5b5961ddefda31b839ca063a381e305d512b7d9238c4e31fc82c35596197b05e1c52d07f08a90af9dc1ef63a53aea4e8de8801f8a08ca15101e69522e1ac65eefc6c4d7db5f04d9cc4b058ec4699010e281b2aa7e99468d2efaef3ca4ca29dac3041461155e25d049e9a7173f2984ca1813663c0b35a0c8d1e84d4ecf3e9c3fc1c0baa748302c5024151efedcb2a887116ddc9207c40c19c7c33efb666a8ee12515b5dbef4fe665604bb7f227b6949091f7f469465e9326cbf0c1287dc15df73e7aeae07f4d368e8f9c435704e012ee41a6b50b32928f7606bf9a705ae5dec7bc6ba0676d019124ffb6984abd58a0bb0bfdc9703a40314224bcce75ee21dca371a304958c128021d6640ec5d5cdf149bc63fff0b67cfb9cfd5b2b49461491b005fea63b8d8c2229bc4f02c530356c111b5cc9831ddd46eb12f3bdddbaae2e826965fba39517a7e9e393568b62d7ac74dba8bb90b18fbea84d115a8dc9f35986110cd9e43dc0d6c9924defe73c57fe52141712500c9fe07ec4bf18adc82caa3e44dbfdcb6d2588e77fd53696e85ce66a27672bbb20cd83ab7b01d131ea152d4b05368856df4f2a66a4d198a91d439a8c42c5070d9d834cb75b3ca6643e75e34467197eb9476d3f0d5799060a4da5859ce45cced2cb71387cd8dc79a7a8d640684e3246fa6827dc36cdac7600cdf5c66510d6488c5692167c029c7149f8b2ae0feeb72d178e552b0e5b2960d35a53ae3c17f665dc8b7d0a87fc4c7a6b971c09fe8ab9e3bf3355e81d0d35417383ad46712531b7490b1f0cb20ffcc2f4812822794c15fb9ddf6ce72e75551b37c5e7c691fab4f38ef81f679dd7763e9776ae3c34267d702d683a8c76c486f3a87c131f7d7758747b18993a0b410a23e493a7920a25c61b252f5451158db15262ee087345ece6b86379eafac554606d70d366cf89a83d3e6f10f344e5c4cec5f8ff9f97e24f71e12189e8eed608ed5b091523944c53e7fcb107b18698e3a25dfa718998b4cbaa34a6bae8b20c9246f0f8abcef524bc55de67ce26cd27367a30faac5133d644d99d171d9ab5d1ef1a745aa004fc162a474f88f478e290c1b9d6ac73665b3fcd8d2a848600bb52ac31f27e16e82523e54e21c035b324e54e69ec140c11b6b7262c8c21345b5bf50a0eb8618e2ee1e0e59a073a0d2704a87a1495bfb1362199c143991d023a811e1f53d92ced3113e9ed5418f7c9e0877de181f41063592862e1dfccfe9c86ee488500aecd82d39510533553b7a5acc728c4c8b3a05bc38f18d13fc3944ed1b36bb8fb50997d2db472079d1572a01372dabc3e7fa6cdffcc7b51dbc07848c3bab03d1f20017e8cb04ba8f3a45e222e49cf5f908976acc38907ab32291e8e323d7b203640573cef3ea39d15a88ca628a33ee118060e9a3127c60dad0973e0f54dbe78df18a3725606c79455ac0cf0dce7981a36b0af49f436f328b38c104d414ca3f552d1857c832495dff3a2a88bf0151689e74490e902fe6d244787fb42067380a664dd2e5f60ab9682f55c2ca07f3e941f8002936503fafb6596edf44e8c4d1f7cf36d602b301deafbf3143e4f7907c6059430169526585bcc645b5ae1393a533c23f983ebd2f4fd0cd6e5c628792bb19e9497cfa50a7a254abc8d96bf4eeddfe15fbcce8fdc1d1b11614feb7217f67c70be04b955a877810affe6210324eeafa22d36768afa78bfaa39b7934860ca90c715c80cce8f9aa68955ed12c85f195b1636a8f40d2859c8d139e484d05f9e022f30395231c2e22e4b75ca3eed6c1efd36d89b5d1f7d0a6d8cf983080f787a5518722f7a2e45813918e8cde98771ff5b36be5ac2eef84709dd06a5251483fc874c39880b2b265e5def4ee807edf0945e61a173a62784c0b7ae903c69889ad6720026a45fd602936b1097300d72400ad38b7139842b8c9abcca37a13edabb4d77a655e9ee3755ef01ceba604e47f86085be8a45616804eebf205011d88d66bc7dd7eb40ad8ab174ed0e7355f10d94e9a52181f1723d4f49d8eb1b2ba771c00f44edb6967677dcda5ca931936d0b89cc7f5d50dcd21f8c2b657e717365b9c148fc27175c8b80200be301d8be9c1c32877feb686943f10c88b9becbd3ac4169fe3a7990081db091a54998e0225bca136889112b3f04bb404a969efc15207effd9354e9892eadbfe7b336c1d2cb8212513a081dccab63e36cc7417986a23d4fc1752f341f8ec0f28148f63c0efb631fcffdad70ab8520ff560a175b5e624643e0a036b65ba13f2712ad91c1ea19e50f7f8ac709a7e2a2450cb25fcd3017583d298f8d1bd5e1131b62d2fd77e1bdb8abe9e7a5176d1ff1781c4832b8717af68ccba9daa45ed375001be315a5c5b6dddc2e5801df32d2886cf783f350ee9b1cc3cfde6a9c87465620634b7079f05ec1db3940b517c52c137c4093a66211b2882a30471df3b850086d11a4e81c7de13b238c6fb3c10c1f512ec0adc910fb4a045ec03ef52eeb30434caaf8f8b7550e878b06b9e7c644351fefa0510c8bca037484f46e9700d191fb46664421968ea6387fec8d2df4963252a33f50ce03231ce363ca8cbe049d4da470a624ca8e5ddb89a0df380030ceffd7151ccf0a13b9ad3bfcc1d449ea284ddde6702765a777f216205586012167a25c8e3ee2a99eb739dd91928f16f7dcf33666b52fc7304cc4002c5370e681bdd39dddab4b6d91b38504b356560153ddead041c97f329a7e01274b923741060b2d0755ceb254290ca573a77015dc676df4bd621c579ea067e6da1b9847e5d82d82b2058527b04efec6fbe453c8eddc181baf89909b9889f8c10612c16230d54f2fd3b241fd57fbdc73cbe7aee65c8dd7bdffaab40baf61f9546b45e68b7b9e6e73e86757be7b44d66739612005f9693057601e47d0777f64615e89a5e978eec63109b570147dfe63b924ddcee8bc1495cbb32ad871e7033f1fd7b43b01b7bf355b21f694383fd7a9829567a4c750aba432b3b6858b34b270d4ef0ee69e05dce6f878682451152ea37b421213e48819a7d4cfd819fc20b83b3ffdd43685be2b4aa299f1a0006272db3ff0527fe541654548dbe9e3f747f4e232afa1ee2c20a40bf8e6430e1a05ebb0c2537a759dd4b1215306366cecd41ba3d02e75ede43a06eae3cbb3d47a69a302711d82f3233e39092478bbe1735ecae096bf48bb788034a3b8e11bb088a047b4c9d63b1fe269f0d9ec3a24798c226fe2f1632749e8f17996c071408ec6900daa637f0ab47c675ad948d36c2056480457f3475be16d1404c0dbae72131d85491c71b10e52a6acb75d1b4209ac3ce38e66bb6336976b6b2f22cba9c6b0676917c211b50c7d81591b336ab5d356e4266f0881c57246b6085969da2caf1105ebe9d8ef596ea1825604ba7919ccc531b218311d8687773bd4dd2762989fee75e9e59c841e72ac44aedf68e94dc83f6349fee643bbaaf62f031d094c436879a050e53f2e5452147df6ce55858a9318e1c69d882fa69a4e106b427155ebff9277849be0d20c7c8267fc28df775c8c3841313bd933b6978eaffac3cdc18553304202394841e049874f995c25e076a78f8e1236e6037e2a44e2232d71125cdf699247544a1287b5d5b8ea74108442e333c791396d869a2c02fa35e299ea4120dc3b5576615579cbb9a7dfd08722d920d56668bdf8b526aab869c3b5db39f61565326e66b74dc843702e5c4b59d4b95e28214531832c544fe9e53401242093c778dd69c8eb6ddaa6bf8eeff118d79aafdaedf918b25ca47e497cf24e783d34a78aaee9900b8dafb15f7505bbfccc14545fdf650dae30e61c9e4bf004a72149da456e94aeeb9a62f670b1ac59ee74a9931450f67cc8ee60f9fcdb2f04d4c3af72d32ee5003ddf0512f56d19e2df05353a091e537ef6cda2ed1ee9bbb32165024a353fca5f4ad5cc4418ee4a492fa406f1e9f91f15a67ca2e67b6aa32a016527b10c1e44c09952a3bb17d66e57da1b76b9162a831a28e9d6538e970455458920ab7f91416ba65707652801d60507fcb7741812e3cc39282528c1f5904282a2d1ba36c314348d1e1b94a09e22939b83a6926d75a2eed4ac0f9f9426d0bdda08dfe0efe7f139af128454d1e4d2d176fba8d01f128d70e2f16badb146d0f1a1102586b872283c3c2ce4e91d7b6e2f74e53a93e93bb1f70e0ac3d37a734875a9760541a5521c760a2b34378e38499fc03ceb3ce338f2d0aa096688be372ab5a93bb8167a845504fd8174d5204c92c49bd2f272f7c7ca8edd3df669003b046b62826390a35c45e610a345fad8e2f3d60b346f198cd8acec9852f3c9818a40f06bb88cc8ca4b7705fc4615221ec3d4afa9d465ae2b8923f92e3f776e884dd87c47985ea46126b150af8d3c8991be144f6397572f783b0aa54bf36e91781b798a8d16cea359074efd579dfe2b42d4c757bc7e6d8ecaa86c78a10c6883598a068f1f641f2e1a29fefca7ed303ecc826cec58e4aed985b504598703cd93f2ab122545ecf28abc0a71247266229e2a50b075f55c7be4ff8c399af9c5d813eeb91aad945cb654ed8c22b64ee989761115718b8eae749d699c5d90bf81aee2161b276ff2b0c122dcafb85673c69db486f45f22f9f97d7e187e905490824256769cf0adc52cd29e8eb5c66f1d8c065e5b3618995c82e8f80c2c674a7f8062960b3c9ccdc4103932a83eab8996d324100e843921c3e8f8d987c19453215e190eb41cc2df043c039134f6d72460d2ea42fac9f868ddf5013439cb50114529f3558ecc26194e9a8a48bff0c71cfaac961d6afa2cd320bfe9b293d49e1dfc4ce162cdf201f508478f3fbb9bae5729e197b9838a321a62960f0322cef4b3926fdd8871af72090ac957939946b9034241953f29f1e8d2a20dc85be6d91900e56a97feaf05a65c1bcb666411e235981dc22470ed40799b0dedebc64b61bf48ed6c3442b891c62c553962f4dd7cd0f584bf9adead76586fbd559d0b2f27d841f4cbfaf9961cda98ad4b7a812b4eb5cc7595f7f603e42ad9f794f88a1bf7e59d502314e56c716bba9e73b058e9c0a2dc8d14026a1b2e75abbc36f0196f05d2d676701b0205f60f462f6c42b88ee10215be46a3f507170c95cb1c41b940d47771b8c2c8909a1c6e53fb16b1328fa57cd56a6d44674cea40a81c36e62eace9371f3a7121bb257617be78ac31a428396d18390777517ad29007980717e07a4deb5369358470423dab9693aef8ac4449b137bfcb7519808ffba4aef8f865930e5588e4f58ee98f75207653ac5b89467d7a639ac5db4576c4edc561e39be0fca3ab0117b217b549a9c3aec4b04766c0fb92a85441c44a87c89d1229f849557fbca2b02de09bf1b2abdea01ef97c4cbd0d5a90acbaba9a16dd805aa063ffc35032ced76e2cd7ee595c6b8d2edecfdde31e543992e71febf89d862016c065a6e54c106e4164153d71efd8d95d055e04d318b2cf9bdb63706acaaba69ef76bd0014ae8c3cab8ebf8ede4d081e697f3444bff2c8a6ac7490b0ca51f526306714a99f97e169f8099f3141158fba49f5fca84138f62894a9336267611b93d3347f710438e9f5f78e4c638535caec48b661650ea4c2d0ef42a91f1dfc97ed022111da83c00a11c57225c63e7d75e801d9c9d0f4b423709f95c7551a224c58ebbc8f50150c2d9025044a43d55dca895340d5d3b3fa72fc67662ba39f4f4d4d3d6603b3e4a1161afe9bbdec04f2f9a1e15f28187fc0bb2070827818826b6999afd32a60ce87db7ed93d48f05b54710d93103ca78287237bc6e7e429ad05ca907ab123e9e6e4421f64c8bbbbbf45e2041375a3ae5751f79fd97dd09a9ce550c4d94ddacff3734e5df1b57e25e6234a7f51ee79bc91ba2704fd5d6b42e3e887f7905512def0c54d4af76c7e26dc2f71480020ebaa32e53da0eaabaca6a6313e7863a01a898a54272a9020eb7480249ca41605079e343313743cfe1b1120a52c429a0d7e86a564c1eefa405f19071d6af7501454eb04d1d512f4562fef1cba3b8a8370432ed8b8b481167c54ea79cb18e9ac74d17e01102406f5ab3f067f974466f08c8e87ec13b38dec4d08b42fffa8f2ec415b550291482688ff5541bc826747b523b4e4608b4b7c252132b55b7b9d0e1ae1a2f0cd3ee1fcd80853a55e9e51e62b0f13c4e8a9f68790ff2c03801d4e89fe642d3da1187be6776c334682f80b12b06f4443ea6194159dd2765af6530991aa020a3fadcceceed88472ee5ae92d8b25e874d2ffcfc503e533a7da68e47d33ef9532fe96227a53d2bacd87abc18cb66eeaf8fd78cdcc41a0cd3f2f550227ebe535c897f5350a2d236eea3a4fc9c27bf6136e14d752dbca2d4bf8b092b5b4bc67d99d0dd780fa03eb6da0a9b58d2715289afb2751aafc158ed9671dc690aa29940bc3693bb658f62d01eb9d5c8013f0f7c6836953720226e9372e9decb7aeea50b00010976c8da8517fc2055be588fd5785d824fa6f1fa80858fef2d5364379c1d879a35498c16fa578601adc119cfcc1fd44b599311afbda8e2cd8a3a7e3edd2a7e2ba4dd68804d76eb01f9cfa3459b342fea13781418cf054a2bd4f29c19cb346ffb954869a937c1def3e6d1204332e0d4db20ea78cb20097596225a6962856e95c8baeb5a3318d52ba9db578c401368982310e7c91136696c1f2436a4f78f4e276a191d97b8ee55613f9ed77251556320acb574c3aa99e59afae1d0a7a1987cab99aad594643c4e615ba2254f5df19c02a5fc38965b2cbacbb65fc98c11e4daf1620a0ea4a3e4fba65b076696797922248f1594ed93334b230747a2fe7764b5d181a80b88e9e0d9e945ca09a8f30d58eb858dbae3432c102e94c07c2f50dc8b1ac24566178c86b1b03fb680f6d2f7b9b7ead39ddc878825ec2066847aac7cdff133e9dbf089c3ab1fd4d2c431e0c236d7a821c1b849428ed85d6322f4a87ac84a809c784727c2c9c187c5f63182cebf2e3de5c7c58a58a0e68d85328620676ec6fa3b8a31a485a2f0c3604fe7b8efb3220918a79c8cb22bb810e8a37273183e6a8ed498b4b77c1bc93bd3700e153faa643e5675283438e74e503ea1d741ceec9c675c6302557c00d1155a404343b97a8d3016b403baf0fc631165b0f9d6e174a8d8a71ea93bd9b6bf6150ef27e0601ee982d3f791fb50d55c30119b993411f3b3ee1fd1958a2fb37392acae9b67b6f1695094301a4ce9181e8ee3398151a6f660b3413a768c06c154feb4186e95e9a466d5a094e8119c996b8e80da0de8c316f3e98d0493ac2de9f7777726963543ed5db54d8b8150b878b7058de301a90d5c6c8e645a5b58225b554e46d1baa129d07fb802ac19222c35277da335e8c448eb12d76f631e69b794d1354d93863adfbdd7a302e1fa01915bc6b846a852d37d35af8905cf8abd3f7e3a6d86ef1820b23f0133447a65e9e3be4dd7d383432b9def92f88631bfaf51d6fd93e7cd65bcce059c9f48af7f4549935969f245fb9f130067cfdec326c5352e9319163f969f885b7cb55440410bab4f88ba709e89ab90b7cea044c763c6a5c69f360195af3db66320fcc72600183b674ed7198741027f7308a0accb6e436e7cab6a9a7a5d7525d9de6e848656543ee9fdb91d49432ec3d384bfc272af44805e76072ac44299e46a1352dab237b734d60bb96943984506f57d7140e05e4ffa95c7724d8b9699583f90b5bb626986de95b3e45047b069bde8a54c8a7e5f4422be915f1725083a678c0bba33906629c7d59850d24af8e37229a43c00a0e5f9ec7500681d31adaa010ccbc0035c9b7dee730fe1147d058bf97bcec87c36e5fef1dd7bc9be9400eb9361aefbd61187519a94bdf2496331052da4d0c875381ebafb3473b67b59e498c5d4d0ebca840790a6ab5623c8b8fc8594f92b12caff215826e8e1c61cdb2322bf938683aa9059cb372bc22007652a1e99e8b81b8bf1d6ed21de04a37dbdcde5d047e280736447a1f31223a3cfc480d6432ddcfe4e055e447ee7222351cec5d637a37cbcdd56444d5b8db09399294f8fab9c03fd06301fd3ef7c60210e1fdb868ddb688db429ef80b3e62c63006f246e9a70adfe90c845cbdae7e907c11ac7ed4b150cc19eb07b3909c932e5ef74f64fab23eed4e93f9f52171c7291ca58b364d0139082f737cfd5ed2220e6a58b5e11157b4c0fd26c0665500524f002bfb5512d86f78ae2f4c491d80986d4ff17758ea54cb7b7de5d24865feda0338454190d8c9bda6ffacbffc0a6de39128dec20d302c30841e65f485447343649927fb9bdb68c0c12e276abe7004792db90e6d1071a630eec32ea9f5e14c39fa3f1bdbc740cf061927134ce84ed20565f4c51fcb194e204e3a3d02d0e5da6f8b0600b7f8361a3e50f197c54cd90aae892f1acd44daf3cca17c8337bf2d4f686799c7e6ea79eb6d1b6f0d59b74a01deaa2c7a76895d270344ec63129a8e44ca759cf5f2d0ffe74496b6853dd3bdb2aa61aa2343f531c3221c6d3828117a364c87c62593a9a13675889f40c161043ac277b0aae65b1e60c37b8bcde4d8e5042cabc183fce67f0721294d357ceae85dec4b63765746e5de685c4de3641a3973378b16518041be0a57337f8f524fe2001b16c242d5c0a4e147ef14af203514aa641067667acff2f49e5d3d2c47ee03ac0a6d569f3f73964f1ab10658661b7eb6fad1c2a98fbc4dfe958600201e3be01273af856fbcfdf0d30374b97da4d361074a11ee9b3c3a10679b28d530cffa2682c732e76baed3105d861193ae84e84df1f4430acbb38362ed8ce61258c88a03728759bc9ffb0edca086b618eed5d1162dc86e2d5f0c0ffa5893432d4500dea2fd1ef369e9a3f5899360fba53847a0545523d31b91c0454af0fed7d1dcd819d46157879c7da72b94f10b3a72f7f175b36bf1b085307c5e2b01349500b1d1fc6980576f93633dcb9cb950d4878cb495b552311fe11b3b32fc5ea7ea0a910a79de6034dee8f759dd81ae0b5c55cb5c13d5540e3d36cab72645dbeadd6ef9952cbdab113b0f6985ecabd782cfcc7ea26eea9a883dfac52988cbd2c967539c9ba18430d26ea63b02ace200ca5b99e1f1a25cb7ad0f642a54ecd59f75a803e04a8001605807bec643ed97383757d0240676e61e61a57b2be4781b24c2c426619d1ca2d1565213b5b45da651e765a6ed530faca7b41a838e1f277946727e9a6de909e4bfb0d15c87cdc6f66452fa1dd34322f30ed13f3f2be35e116e94d9c687449ec8866aabbe117bca5b4af0a358e43c350f746e471372f182eb08ef60f9e5b58f30292af795fad4553923eddd301f7fcffadcdc9bd9e2904882077ddbd6f238151ace470be33e24443ad3ed4f06fbcd97a5af9c1ce2937af4f05ffa843acc8f3500406e2bbdac39ec6b80e4b232dfeaad3639874684ad18d7988a801beac7e52d056ccb3a646814929416f5cb71a7dfc86129870842ef14a2290433545ee8411a25e4d053b769d8f67ec3692fa32619e47415e1468e293771f0cffb887f6ac949695f846711fc1481427bb7bdb09e5185f3f40b4fe8c293a032f057b19e3dd2e8f7376046cf3f5bb74475920c11494be56ba219be23320aca22f033f82282c5eae6e9c3b40ca72407ceac122e51d45a85b15faf9b62891384af5bd8805c10d25dec99f46c787a0912915fe8874ddfc1fbcf508eab7de7e0bb0444e62cadf26e92618bad30795647fb7091a0ac457ed900d8fdab375502cac419c06375c0e7adc091ab404c40a8976f2889f968c3bb0c0720d1dad4caa30b770f66d8a8dbe15d15f806472dd0365661305347776111a3e7b09e02e4f228d6f772d679206886fd50e44fe1ee6f96f7b26a3ee88adaf25a6e5e16e9d16204ac04b32f683eb9b27d62f85b88fd7eb4cf49a25dc9a56d43d4cd7a538a575f3b10dc3696fa46b8f3d3a714a56d341e502843e706fbe990dbca462b50013d14e7841d8fb61b67900c5dbe93cb6b16ae7ea7452b5555592007218c236d0061edb5d93a2a3bb679ad730f0d2a0f8704b424062947aa2c35b209baadf4efd9069f68ca54cf56315e60d27d7258d6fd93527f166ec02716f07e9424942b7d18ad6955ed9ce33cfdf14389a9c0242ce965239e1a413a33bce35652155732a4a7eeabe6f19627a72fff0d2aa5f0b53f6d22ebe56a007bf9c23c745eb1f846548c30e3182fd32a5330b2cffc063885e07979528c6c8154eabcce93caa84fe1622d1ed2fc81fc2d827568c97a2b6a10051b4b891ed88d8a372fc2a31b212a91042c36a2397c538c7950eaddd1474f5d4959597bfb4f530857a64e83c86ff3b458cce97b88e2f00e01ca6161654cdb286baa2508d646bf5287daf2c2bea46668dded103f377b69bde68ea0784c976e50cbf1db813736012b45e4dc10dfe417b2f793b4bba72cadd87bec867dd1768adef0106d91f924adc1d58074017e94de456ffe7109ce6b3bae15dd9de5f37ba32704083b80cd7d38b0bc663930e4516a29f151f861b6fa06db8c2436f8e39cfb8e56a6f8d1b635cb2b47aa6749cfbf8c278dd06231fcf6a266bd7c9e398a27aeded7ca9e0b8b429f8905321469ee1f024637a271e5523893d80ad242d1008457999e34997e7961683a493bb36066bdc260472de362fdfed90ad88fc65816c7024f64e38cf17e2d7ed7a9ee3ae0502727a5fafe6fee57f21c060ffd6b72cd1447ca09085a0aef85c2b982045434383b69e6ef432bc54e6ffba49ea85a3dddd2bedd0d853b6ff3447ed771794a47a0ff4bacaad04996e3267015f5e5963e2fab42b517ff25af0546ae53db52b0d67b4ef46b14ba918ead0c58908a59bc9d635e92d1727dc82376bc7a3e6673e45bb24f3c92f97df4ab549578c85595cda44b6655408b9ad029e8d9d2837e7feff9a2c30be689bb159e16459fa353c5aa4a6e689d357444543ed4c466ead1d168df9c1d7f50d77bc08e458eb4c9066c0130867854e7640d83ca05df7952d37f55ef646ee7475d0a8dcbc6ffdb76f32ec7de022b416e350c01a91b5c47193b6e3330b31eedf1765d397093c3fbc623b3914c85778a7be54c8dba0a28f3a28475a274b5795f90e30e76df3a6d4562a2895d98656be5e415d1d531981d41926d965ded8c077bf347e4290e5d189a0b042c96bc2dacd6648d209b98e28c8c22793e76d8cbb7b07babe76d6330d7e312db0871761bcab16fb66985f2d711ba6d709c034efbdb37acfa0fc435fe70be1642a0edf3a36240a91e324dccbbba1d25dc04b83e19f2f46e86794abca57009d255b00cf2ea123b5af8961978a67e8f698d660e15163f7ff1812eeda015833debb67110d54b3afe3f991d3632030428fc16cf010e56394f72857fd83ed4259fdc0ae4d7ecd68c2434fc13826b11b75ff64dff804a32c35f6c0decadfe7da5a8157a2aa787cc75f1743f813b0165308a95cf0f10cf7635cc4ef99a3d303c6c456733f8eead244ab5ca24a607bc66ebe76a79254a23e33935550e63c63754a0b8a5e60ce5610a4b9561910d5b0ad04cc86ef0353507ae75f6247463fee29912492c48c1ff055a7861f2102da38c32f9750a1adc99c0ff03778a362c6640f67c0c9893a3a61d293362c05095d3b3707be729a33cd1d673c01e11c676a861e9106ca00424aaf33db04705a2b23865413b6ecb7afabaaf9b61ba37766e080802563c6d5b5154d2903aa59f7d1db250b1c3dd50513bcd647b6358b2ff8820586858822b5ea52461d145a23bfa7ab668a159e50a20bc70530cc2e881feee7358532740eb56e1886ce250cbb858edc2b542e29514a2f51a60ba8329a97274942c93a3e2018ffa24d45b982c43791418919e194e9ad650d89fe613aaed4021dfb4079e2a46dd167c9c06992071649ee62c0f1987147f6b3820656def62af4911792746ab7b12990c2961627cbac1674d32c62d3bd4a56cced1ff140375ec36388a7ce8372d893d31741fb903c9602ccb2745ffe07b1269b72df1e3f6c6875fbd5622fdda069e4659b2a7094f75b2c70545e50535a5d6d7d80a6ba22781f52f91414c86307934b9692e932a8dbe4e05095351514b01c416c93b1372489a0c63b62bc0be3d112da9595533efcaae6e015f3a099fa3b5f2fe93fa8108813d89eaaf0557182079f5955bd7088aaae86f19a4eae1c039963d89cddbc1b928af8d6793ec7f8a2d87f8d6257d49bfb48e556c78597f53cc21c382a4fed452e8f81c33c24cb930601a28182cd061e7ad4f44ebf070e0c4d3d26751e7732ec44c359df68a021b3927c478e6dbfc6ec198a608fae9e7d3aae36c50c82c62399c148a5dd43577ce22f768634c2e66c41551c88e9fdd287c69706b6a0c9341d151c2bf0c203d47914c3312657e203a6828e84b69461f9ed329339ce388c6a5c75e3dec3ea7b41434d34a258197e5f696fb2c564e0d9ff42320a63caff342715f2a8cd5eb8921c71ec02215ba65e3383c620af498a796288b2253a7056200f9d1c3f088efa244a0c887276c9946cc597ce2a45ac4cdc179808feebae16cfe93cb6cf2218b80993b40d89fbead1368612e6862f7f63d04b7498478aa80655f4eedf31de4e2ec8bc4a7b71aae071fde885bc74595734c9fab8263ded2e69905fc4cdf86997d06a66db3f212a8ba3f9219c30e4860250459da9aabd6875ba9e4b2ef66539fc7e838792edb217361eee6c058aa993a1ad7361d541df186e9e878c9553fdd2892e441f275565bef9971768ac155f5aa05dfad324a3215e5e0d716d2ee33310991488e8af93bada7821a9592d8de6ea6bcad6abb65e3e8d753a404b09d91f7c1dcb95ff1c1035cf342912e2b2cb8679bb8ad12ae66bfd9b199bf8fcf3d610fae6f1c135ce7c4f66f8231509d805b936e9812a1d06151c2c4cc8290be187266ddaa0b8ce816845c8def76f2e94a7c358e9e5941593dd765a44de30ddf7134d89ed2e266f713d2acbeba79d3ec350a04db305ac97235483c6f3e37f3b1fc631dc48f55339a31ba3da4197b740c9f0357e958e6340359ab4859060a0a44618216636c9839b8db00f12bc4818c321c18900845fbc4bc0ebef3b1d100aa9bbc21fb365b198c9a0eb2823678068220f11ae491c881a4348aea24030ecfd0a120ff37cb2ec86726dcffaac977b0bd539a45f03ad89e3474598e13b5ef3a94e50fed05491fef242bea702d380622e895444ac58b0e94623cdb908ad7ec3120c5048e0318499b3acff25e2ff2eed46405533652232a30a9fcc349984e40edb2fbe9de5b812c95165642c56fe1fd069cdade2459288ccf9f5199b7e4a56b264950a191432c2de9cb2e3c5f3a4e82b6e56e2ec15720bbec38b93906283bae5bec247f37d7991300da79d416304bd3ae271243990d69e240120d53657b459224d5f2cd3ba4bd8b478efa15c33e8fcaa4780c4f408abc4e74783de92e7e7c6196d35347ae666fa66ac2b69c36627644635ac13841ed7af15e00bad35d89c7abb8af159dddc5b9561af95d1b9e089ba1075d4a1ae141f0e2d8d7ee3e546b6ac30974f8f4c119f9f4651befd82e341b474e3d07c3b12070db1a304029f2659a4013d42466378354bda358fa2b25b4251fefcf9136f400ecbaae63f7e6fb68437c0e211c7d08e15a50e9ea4a03130fdd160a4c3c29cb639c00f0b9a79fd0c20a18997edfbcc86b743214c2ba627ef8f69ea3c6c0863d4370551ceaaacf70c14976794950167f02694a625770dccf6bc02a31f110ed086f3902f4bf77c5d4fdcf3e73e25775207272659a2bcd1c91c657b5356d453144c1f775ea83bf25934bbada2b4f3934da4131b3c4b1e160fb7bff3cee4684d7d15438c1e6087166d78690f91e638ba62cce614873a851f8d53b653f0e69569aa227391b9481fa54a8ba2910a362be8dd5bc5e9c9a2332caa4a69a448c1b4ce9c7d2645e427f658f7e598bd4fd51bca38a13550bfac890d126e945547edf00675642c58856bc320b2b8215c188622714847b8d561401029a24d9417d063a876b18973f3b4b942d8f0d8bd396e52ff602d77b5521b81ecac58e6d7e4e4f40057e109cc63d414bc9369b4db5d742bfb100a0b4e27318bff38aecab735d98f6d2dfcb7934f81f87fcf034ecca4ab0726598fd64013875e4eb311a65e2c552d4bb02859127fa459cf9024e0c5a7a836265c5dac57ec2538d0a99575befa04dff1c0c16aa1176c98f9482e2bec837ccce6b798903074447cac4b2a6abde92f20f7a59bbd8a3c248f1a1dc3d91e714d99a32192de09d56499423037a94d63e9270caf7a5cfe4d74aee1b50118019e8cb049afcf448f074a2e58024b3f319cec0a931285e7c8ad42f416571dac6354e3e0ba2ef26687c7f62d77a45f1151c6fc22d0de4f51fa37cb1dd93a799c5c425f632f8b3f9fdf43a69c582a62fb1a8d2077542550b4b35b3f37c47aed8766610aa9e9f7e3f0a54cefeba6c1db4241cadba7d80589b674104256b32150130c6f6d5aa4576e010c846fca9e9934d5851385a00b803a4ba7a1eaf3825c002a67c839f7f293925830614842ee587e2d47bb167eb651997072152f73020674a70a6a6ca4a1958d117958a4ae155894ff09dd822f86b989c3f9f17afb8a7140884c211be13ecd70d1c4b626e7a2dc09526ac73566a1b2ca5e6f687b4f55aa9c561a1bc975b0baf2307a337e146bc6559fab7cb344dc6b94c188bdf826296584defca6351fb134d06db730a60b20946b0f6ad2e44bfa3d58c569103332fbe29e037c603f5f15110ae1b51bdfbe7594440ac4b6b5b1f144a3f8c49f70b92a677bc8c1b61e114dfce42671f9b31cb56d5adc3f359ae2c5a9970ed2167a3697273f4bfbe831ed4785016f962ce93cb18825a7fef50ea6bae72829f16208ed22aa09473cc34c284b5d16ea16ce801559a6a73467ead62632a3e1e53f094a09244551ab72a8464e31d8321fcd05b71def6be4f13cd534d806995f739805bbf7b423e3a6daa46a4c0d30afdef840146d934431fdf90250fb7e5c85e029bad3f28a6dcf633bc91bb09dbfe03c191943a0340d3e864888d98300658a3c25fe8d7b26a0007c9a840249fce6e773f9237d9dc27dcd8d59af8d1968e7c46fe4a10204c57548c2482724cabc658b1dd11eb8346acdfdf58a25818d29da0fd2eb14aa2cf91d219c4af0a5b6b7a32cfb6751b0d86a0f2a06f32a1c949b3e1847b7f607bbafb4a0ae00d30049c33642cd04e11e036b33fb09ad34ce1f9419141868c408b250ee1268514ce6dfcfdcbac1fd47eb9e6b78321d73ed6a4ef30b9b47d567d35a51b8d9dcc601324999938d720caf6ef60a59066cf1c4260ff4892bdd8c6ccb130199a47ac47f41dd11aefbf024d714cea19cb7dd9ad9332c5f70bac687789ec7251284019cfa6d146cf29c3b8c9cc72ef5cae701c8953ea42004723abff30f726b0aaca768725592ff3920f78f146dae7834722775210f2aca91ccc8504e30862a568898b44b1a6b1fecb006c9a03566f96b76d02e0d94c38bd94d7d51feb0eedfafe0377a24cc947d7e949ab4f8d2dd84bb59448c9c5a2fb2b6f517d382fcd0f58db7d61983d4154fdf4efb7c94dc5b74209fe8bc36c5d3586a042d88ebe8e6f9ac31ce0178f645de2691414a816d72f611144b77f6cd48885cca3c3944c66e39c4e5f47dd93d3a0f0b98fb58b9b3af6623f93d0f7e58904ccce1fa0a3acfe5f7f66e3652259fdf070c85b6221f43d5d7898580a3bfd7603a236a6fac55bfb5c05cd7c61da3bb40e686ece3fc21e8ede3f3640cbd05e683bedc5cdc415f5e8552a959bb07a53d2f0b8f9a31e1077afea51c88347bcb36a8ad3f20647a3bdbd489ea5026a1a00eeab55aad94d5a4606ff0c0d8985032e47557c689e36741aea53763bce64de651eec0c3358fea6316f444e5dd0e75d0510892b868f99ed14f9d5ff65cae23deacf328e3f6e81f4c467384920339657f0bc9181dd2662e6dbc0b04e8619bfa8b9a84a93ea1aeca4f1c622bf547260c8add7d703b674ecb3412392d1d82a5b7d427da3b94528e90d8b055a6d0b15f4f57d3897318a8fc7bc3b5e64f1e400c409b754887ad415c4d5c91698a7ea967f1aa4d2205187a6748163ec47830bc8c988917d61dd0fd3f61dcad0e1b9ace61c52ec90d9d112e4059679f5b89e01bd03a909b274f3e449c47a0be5c2db9d349d22234288973f20c7badd4ec23b4c63fa30a04cd5e833b9a95ef268e034201190ea9895c4c35b635a1d170c60d7c90bf2c0978c767a51dfb0ef47ee23b12adb9f85a227999a6338f2ce509f733e28ab0f8878ea91ed86f4ec33b52b0129c47e9d5d199eaaef8acf93a7d689eb896b00d2ff8b7cd3388f75ac214e3598b08c83d5f0dbd47521b7f08a219c9c00496b0b1966626bfeeb1cbe29670445b6b6346b888f491a770804be7933b7c8aad053d335bb4e76fb865373c4ac3113f7fa0260a0b3c77b4c684046aed2e27fafa9237dbc7ee787835d4bbe0dac10bf88484f33fede3f2225616ee7a792fba4eb202eb21243875ad8d8925631b54147545108acf75d9ebe0f184481f6c9840cbb0f9c56f474cf2c3de5a85c852349928cfb3025e1a45606fa4cad77ddbf238d9f0ce98f68612286219d82044bd11007e6f15c7cbc40db3f73dd488564a922a08956641be199250b30d00810ead161b5f84c3550677c26df8343e65dc0a7ef9164f7b1f47d534662b3d8961931996d0e8fbafa8ee2ec35322cf80f213d8d9d42c8cc484caf433128034e7fae643d482de39dfb548d10891d5c417e9c14e96276f25ff3cdafc95cf4ea86853927b16baf0c421f1b6d0ea6e8755ba15edabd17b669b8543791e97c6d3d8b63bd83a9301d215e5f35dd6b961aae1e1a996751bbbfeb9e5c3ed5ba0e6e0508445fa56359e2c8d849a13f406766da3840d370b8f0868918d5c7cc71d038071648c105a58ad64aef7e248907a8a781d49f6c2f1b7cc5123cda6d371844bd8326062d1c20ca5550a234bbc2b5f0ee3e0e73efc833ca1b33e65a56dd5e34ec6f36058ed7de06e9e390b456da16579ec9e931335e3267c1e23a98591daf281c927c413c6d738e7e6c38ddeb5cd7fb953490ff4eec0585c50c55ad78a9c8f27d3723ad9646779632a7e69fd1f3cb7d703681375c69047bdf8cff05a4ebc423a17342ab6d174fb7a7e188816fbf2e81cf8c09e808c70f42cfe6d4ded1cc4e93081c3c953d67426beff6e91c3ce99232b8ccc055fac4a0fa4d59adcc64d83addcef1ce383917b49402d1de9e0b0740bbff310974ffbc93638e2ed538e2f570e05aabb25424afb0f5c9705748ae2980cfc73f8c6f13d32e644d6c1fdcf832463f24d0521dfe7a16b7b6be48f0deb02c210b44772730339c8872458b48d757fae287984abd7bc352e6eaa5e980813e6fed3910cbacf046fe7c40efdc61d23f0a73ac4398cf52ab0ef2f13bcc7531633d6ee6786ac6030d579315bc3cdc5b306de276951ae6537b2d2f09f7f16120de8e65816eb3706efcb642bc9da9c748a8a0e28e6ecf0455672d55f8341869448aaf9926c156579e1d8ba44b71ce0168619b6973b07623ec1553007a9420c7d652575179e1d25f4c436df697b693bd687e5d349fdfb0b0f974073134e3a64922c963dc90306e1e2f8d8c1c33959903111fd940bd356d0a03a576cb40a28cd0a1352809f5b0cd5f7d9e9f1bfd50a02fc4d45b52ed157f085d05ce17466380d26e3e4aafaa2a4da14032559d4490c77059b1767018157f7026ab6e401f804dd9ff7c0a2750140e9677f762707715774a42ea9f665508b08112cd08d814ef0e02379da9cd49d34aa408dfa50763ceb515014a6e435dcb7c6a03eedb52a535367fc0df5382fe24dc67844542f7045bae7befe95bd90fb147d074d04685ddbbb515c1199e2d24c3062db8a2557beb6d22fe54ee724008d0b04cb67c692f4102849fd48b28351c95977810a996f125a89870cd3e2453419d2cebf5e3da70437c1b895c2a6d0860000d80cbfe335bc5d22278ff74cd31ca86c0ac1aea5a4b4f1191551e311898fd290caffbfa5cdfec97b414a37b20be8a80ff066fe0f8286086591a321c8bd9233ba9235a102348721d2512d897b41f18b5ec5f1bbb5d552a52dc0041605345bffa192fe9cfcd820e232095ccd6854299cc3e95708bc880d39d80c5137c6f58264e42da66ad4e211e867d96b3190d54bb7b9a790209d33f3b74f73b713d3613d6722a5e8fef3cdbf14cb0610b3ae848b64cbf5092334388d36124c74c53957d3e03d7aa2f76a509af9b40143400bf5761d44d51c957063909072ce44487251d9f182be10740052bc0348e2356e62e7a57c5c229c300f1913c5fde9e71384482f31b75d97ddaf861d5666bd798e10cf22b937e7968a006b549bee81883f1fabbef17079d1f2586f2748a7acaa8ab39c1ae97355799f8da2ca1c6f9063034ffdf0c9ec3ecf51269c91b719a6c8e469a2e41ecf0c9278f1663f0d94733f4d37d87a590d8b7a65377f3ed671881d4b483453a69dc4da2b6462b5ac6b8fd1e7ab64f2264f9a6670e0222f7afd0a1fe1f0e555b7d7a54eef5e8363fb23fd4312da55836a94a94c018182dfb8de0b74fe7507054cf7ac2b2d8109d9688e4bf8ef518c92bf2d80f1e53ae8ed6530f83e0507eee58db5c7092721e5dd6674ed676f99f494065e5d93315ffe26e059e1806d732eac3fe3bab361fbbd56bd598c958aaa287118e8a6a2fd4e46d337bbf5e084c11c3cca39eb22949b949c4b7b1576fdde0b319403c6bba6c8f932d249591284ef29d4b7fe63b81418362e5587cd8afe944023c9c6d3ccdbab660a1c92ec0f7c582de8d120cee58727cac95f37bb40825aa2d618b386f516958013ef6b54ffd682ab13ae3a3e91c761717158dd6eaef5ac5f223403a4a94232249dee29f75ad7a7886471bc83aa4dd6a77651d178a4116d7928d91f8498992e42dd90a7bbfaf452290fc8265681bafbd042348343b6ed83052e2400c9bdccfce48e2c9af8b7507d445090797ebbee7dbdbec2707b6f997dffa7d7cfca0d538bd587aa5558e2048b2e2a83c2faf658a027a5dee8b484920ff59c031307109cb99bfef23114fb9d86ee5d6954b96db04da48935afc54c22c53be09009a58dd74a703ef52c8a9b5f141919337d1f20bf6440b494812cf3859c480c7decb53d903954ea35fde4dcf2bed6d38a4ff0ffc9ec06f7ed986c3ad41487890c8ef95ca9a5fee66e2903e2a4d2bc5dcabd9a79588b386b0fc30cc5d6b8d8251fdba06b6d95fd603c00353cb249528ca54016c41284e43a251fc9e1fd17c008aadd1be9a21581c84c282b85eee10e800aec781518d90feb4ae4f7d122d44569820398e049efd79924b826d4ef8569dccbd9d013c619ff3d0c860c39c59256f16a866776efe40cc6ac2f2c52886f3a268fec777a5c4d1c2ddbf605dba63b83746f2313075098f975a9f8ce956297397b41a32643bd3c8f1ca91634f9b28a71e8e8d71a4d9735c80d136d553230a14ddf8dc84bd5ed8706528b6622c92982a9b05af507253a593d201a6be5310db6b1dbb812c6a9e7e03ed4e64c19e52f9baa7118e7d6c3355e6f91083ef8d7e70efc2a2e0d1c9018401b7184647e47fc1753e11e72718d6289809d832f179a3362e7a6d1de52823bda1d929999c4f8be7b4e219776732e6bd12383406bee2cfffe0b8f3d23c4e1a7162c9c800f1c4e2bd3417c4820a286fca7660e7806a6806e5a0353dea78f3365841e5468a9c3d6fb6eee807bafc9cbf3c697e086ceffee132386ba58fcc438bc79dedf8a5384863a78061290b6fe61b858e3604966c6ccc9c041910f80e5f46d3ef84bf16e586596b9112b536a9904073814c2d6296ce8430cfc22de876dbde714eb21f1a2b2dc3f624938c36f6d8b451962cdd896213f6c3d32dd02f31410dea3564eb4a3787a63c3bfa02ca6c31ed28666324b1727f5dd76ee64e8b168d96151feb7900f171ad7c666609b96dc23d54f1230bb12d29c1250ebcfb9c21b0e6423f79702cccdd83d43e786ba091e59cd223c361b9f27eb65d8d41a7f0e90e7bbf37a71af91050862ebad51b5968a935fda83d21ac53bc78bc1d4d353b55ff1c5593f252aaba64c0e778a5904cdc51ca8d47af5b54ce784f85347c4148e451ec43af39fb82fd473bc70817304844d3e61e72dabc5a0e18458fc1abd3477dc43983144105b1f93b9c20f9dbcca12e5ae38f53a69a195c5a2d631c7f246e598d315355310b821f14133c5ca632bfb8c5b6f6619c95b27eccfba3abde7117c8d455693a1678624fbd985dfbb2c252d62599096e6ac90702516abb4773e3e1cd36c9416a604069ceb37d05143b20df4343762a38638d7a83a2ef04bf2e7f6f4243695fbc632a72be884844ee03ed530017307ecffcc49162ca05f1aec22dc2f301b98419d8a608e761e43bfdce95d51152b1b96251c0e9f4a9c0da1a26cf6382679b2f215939a542791f2884e72e020ad5cf8eb59dac0f2773b489c6155fcc1de3dde1cbe870fff19c7988eb9a60453638ffe220c5942a462e2c9a5f8d29b804d59200e9687076edad42450bb8630da944d339dfcef1938837b045ee540f60b1113c54a62307d20a2009eaaf160ef3507952fd6963cbc1cdbedc45db6edac5e561c573464259deb380584f8a0def262389188ed7506824f84588cb15a8a28660014fa4ca5818a4f8eac74d8afc7bb5f6db48457d098fd935253ac4891142e5de21c8f79bd84b3f7e9058545ec14c740e0951d2932456578708f1e7237bd9fe346759b42e9aa996293824fc724468aa77627b9e3fda8470d570394916ff645bb16a9f4e325a7e754bbb5bf356eda0c5536951202a8b8354f22f9461ed76604cb538b5801f3926ca818695d9d82901afdb54ce48cc37dc6cf3ed2cd44a007ccb67d10e48dd3a150b781c6ce78de847906b8e6174a5054b3a6ca6e060c88160cbaca923d4c4c66f042f916c7bb122751c2e35c189ddbf5e93342994c19a1f842c172ae9af832933907a1155e6764d66ad0e9c8c303c54a9e68e9ada6b09c60ec85f301db03a12eefaf157a310f8e982c871cabe49f2568062b5f0eb70b5a4ce42088b6070bf170917a63673d3e4f578dcd3faf0136e7a4d240f78ebf5f6ad3c9a34802169152f9f408e14ad1ef876094ad6196da5551a6fd190507efe4d18919d724856e80a36e6d3c36a844601f7e409734b10a6ceb6a83b16edb18300dfe7c41a900777656c27d851454612010498810767fd726d6e23f3d49532118543751832f8aa7530f647e194c8776673ae8759a7761f16818afee761e6d1624647ca1939944df98f5ce169e5a844a45f0afe65b0387cbbf4f36f7d264d5dbca13029e11f6e8e33f109ea278dae3d1833b246f5e89f568eaab774b08b90c4f5be0beae0ab0169ef90cfed1dd6396712ba42db148a51212807881134944590750627ef00f8c0cfec1760d66a58b99781c5dc9f9f772a41fb5f3e23a51858a893869629045c8d16257cd6431a8a35262c2ca52f2790b89f632251bf375b896a1e8fb12d6af4422d426d2c7577fac6e8dfdf45390a6fbd0d47d45f248032eb10fc2691d73e382caad251c2c0a4901a8333c06beb4933b1756f82ac3a399d676822c597ff89868aa40442dd9c799bf204b3ad4771f0dd3ede08cc9da42a2b37d75ee3e43e5159125ff17b2438e97ea4d891210e7f1aa3c23ced7d3c5f90496bb3a896e1c35dd86dc2c38424a2735199013c377aeef518d017a89bb7f2a52b67e9f755b93638dab7a74389cd8363cad0aa60a6476b4788aff95bc7e13237ba63f2d97ddaad0cfe00f38f97f467da775a0550a5b72f49c2d9b2f334b08f58afea1a3fec78b2686dcd7d11fbcf93ed51dc76c60c0fd1f4c77e6c49b8bdf5a8c55c193a450a55050197d1f05a7c6f556610187f5f181c0a3fff8a2d09c73ebfac6cf4ab0ecb510ff84ab2983a7a7e7186448327899f0165297360770b3032a546a23916d63a459f2dc8780f232de8a297d9f28e41f592749325af89c47e15828cd9830d019af053bc643d310b5e903f64c5af2a026f0ee5f613fcf4aadcccd65ac25106be738e404c68d2148cb9bf9f9112d04965e7fbcede71b12128968bed4f602c76c80f37a1db8f8e250e4e5c08ae5c4592973959fdf224112c77a0145fd98a1d8358fe5407af8be7bb6211b2731f573ba13dc7d61cf048f75b87108bcf876d76bba39229f03980dc3e2d5acb7a1a47c6e8d0f623e63aab6ce22ba0d244c207e68fc96461f73c873018166659e1ae87e12400af4b95ac4f09c7ad2d80b8fcaddf89e3cdb8170b2c750501d42c866503be0111df2040efec262fc83a5ac7a7865178366eb0abe3f1e48f67283ebae1bd60cd99f7badd406be368326e69a0290dab0c2fa9512093c90db5874b4640764b914e2b6c0211bc6cf3631e119995529233a2e925038c189d4b0a4e09e776a457181bac384d0856c144827d93e7efe9bab029824e6d9be2cb12e5c192636f0a1e4e0738570b0499f170ea700627e921fb5c734ed26e8652a10a5241f9e8f25af2f8884f4b8356c3b6ffc5059f4dedfb212e51722521ff97e6f7e409b866b898b87b2704999eee5a7f791541395685e8cc6b4bf2feec4ca55277ab622af74cf46b5453984ac6bf75ef49048ad1b08d38ef95e186d8ae05ef1288cc3a10d8705a97ea3eba6bcf98ef5c72e6b40b439a47539b91f772eb16e745e69e370df3eaf6dead921a8df73b86510c4a4cacf8a9a112601fb24f1411a7813540fc2af614ae778416a145f1c95c0c9cc6381ee48bc81c94d6a737dce6094efbf6eb52fca1d5aa89aaeaad00d2b700337493efee97a7b5d9c037b49b9289a969e9c7d7c56143551c290de12799db54623442521a9d36f53b0a1296c5539183f9f24feb80021f6a3d0cd783636ad663fd36f89c4f274747f50d8e706b769940d5a27d282213c26e3ef0e138f701a93aac6458c8c07ef9ea85c5e118d2d64d3913ad07094dc857fcbf4dd829ca65af1e4e9942f4d802e1731a94062b1693343ac0589b6fcc45dc4000054083d3bc64032cd8c7e2bcc2714942a8dc86e09cc604bab4a01c9b6e917d7994f4f796f79c15fbe3dc785b75eb28f66d4bce2a1db0cc599d6d3b7c7dfd88d0143d3bb15b1733afe4a5400e33989feecab2e913dcfabaeedc82d623e80d4a135413867444dd6f1d0521e8c992df924a1ffe83c41e396c08f1cd5fef4e074147aac21895aa388f6e3209c3de0c61b885440f8a63ad6370913ef1282e7b81ff47617eb0e5442e8f6167054749c5021dbf0405b31af301cdb9be43eaf9adccaaf5c9f01424544f1d5e2d9c8d921fa4a24fc415f32a6a5f7bb16e90429fc1c37bb3580d8dd56b671c573deed540beed78b057540611c605e6320c9d2f96df3c3f3663a16833ca02227d6aeeffd7cf8aa9b13fbaebb98d6f6fdde826960acd00d9a259387627110af9c040a8126acbf18f00c63f65c717ebeb5fde53bef40f6fbefc94e98c5872b82126012ab9b7fec45bfeb39f7ce41af22273ad8cd4c16ebb77e4148f0447a0014de5e5d1c0e08fbd8fe69da1fa2944ce51a45155698c8cff22a6c6b53b791615e25ed8119ca4d4058445fc6aef92853fa9ef13ffefe4a331f2972f5111b88a0c7bdd0238e13221e2e5be8d642e810efdcd2a66ff3f2aa26fabc894dd6c5b99fb6728e86dc98b70893224bbb6cd512056583fd14d157225f427fef924b5a6fe8629e6eaeab47088193fdbf73ca90131ec5535806a92011f79d303924c5935efe1f7ce6e4aa2e47aa4b2945815dfe10d7cc50d3296ba551cc232497a29497761903caffd10bb3ca76f8852da9e545cf0ef1d6d9c53f4bb788659d0db1c7a3d5a95173a1aafc7c09c9e90be13ce2fc8b680c51589818d7af9f9716ccbe066568ec4daabaabbb6db80aeeed04a3d5a4eb3809a32383c358996c0395083c08a3aebc68b3c25b31adcda589ac6284204dec2866c71d13b80d9713082eccfafe6c8d8016662e843a844e7aedf6786a021319e1481eded94662f3f63b11eca96801346f959e46813bbacd480dc9e0a27e8e0967f10ea8497c3899ebe40af38f0e13bd3f486bc1ff3d1308c6e065e959f548a32d7c75cc507d81a2b493c20338a965faaa8c5ca61af0c73e751a4d6b002a40256c14648a613c8d04058c8cbdfd1b094d9621f578bfdb12b760c52ff82cadc9bf2c7a2e637371c6ebae09a52679444f63fc654642992ac4935257f6af99642796760e3a3ffb83f322afb795a7788ecc05f6c56d20a130ba3d90cee6c2912e1f3080985e8e88603124ffac59cee44457fa7dfcc50636c7f35905139941e29090f8035fbb394031b80c8c8ef448c826f46044090216a0bdef65585496d913acdfcf366270712c39fc54a21fc9ebca79002cf8b31ab1ea4a335491cdf9a40d283b22fb9e41e494d8bead59a0616dda651d366f772db1c736c8996120f3ce6e4488d35627d7ea3bb3f2eb170bb8291285f780af6c959ab5f7b53e3bbc0a203467a06f31d32caba6e00102d64dcc904d5ebcdc296e1896dfd37cf57b82d5afd3d3c780644ba71182876e76d14bfca2e502b5970a0185e6330a8b2aaad667d41bcf5f1c851bc2a508b2c0dc1aece9d7926d7e44d6802fa2021fe5ed00cd05d729ed11c0e07553bff6814933ee806236078ac2d7ab6e42468420aa12fdfa179cfea3e304cd095947a3d008db9c779e0dfaced9e5a2c398c8d64c2017e5065c256a971f61d1d01bd35fc2ae940e5cc30d8d3dd1ee98831d65336c2a6a56c7c33583cdfe0506e138b2c98add8b26abac1b0aa46eb3ed72d84261ec6c2565399b875b6c42cf15ab5afd9b809c8244f8f62e166f585ee0b44a5de09319626f5446449b19f170688ca1084b2a3e721fdad2235833bb1fed5c2587bae8aff5d4859f62b95b423f092a6f3ec27424402d20ac0e2cd6e7c9870a32078b4f99bd9c587b2d517896c9b3a90f7a8b2936fdcaab065d4de6660ba121c04ab78ce779de8d386d3f4690bf8a747e0ad8ea7b8d3013dbab8ee006c82321382d45cfb4efe5c12820a88e48b6a927a30df8c70f4c4f4603eb7c09e80e131a2534b1e955d8286729ac3ff4d7026214f94a37f47d693ec62fbe1f1a69ec93298fe6d4c57c0db05f1c3f9503bc6a4d6dd1bcdeb69d89a829a81be8aff4129c1f737c4c31e659ef2e456e4f508cba887b1455e0775b4ffaff836802097ce45b97716fa056e8b938e72c6f7c355a0845b4dd9f5f6f06bee487bf5cd2cdf0c475102151f62ebd4cc5217a7d6d384109017a491ebc9c1e0fc43bbf92c844db6057536e5d223e1e5d8582205ed8a3d630384a09767ecb5fd385460216bfcd9116fb3e6114a6bbe95bb4c360bb053e941a88c9dccfea5fc6ea3eaa879a26580a00fd5997154e392af8b46cdf8bb763aac12dcebe49dc2aaea18cae51db0f1c5d996d30a69cf459642d824b0684ad4a1fc53144f52cdb23709ecf6fd6538072bf86552a6fd2d82a282374380e7baf2d7fc597482fe9747ffadb1f1e9649246bcd57be811b80065b438a1b231da27f4550a6cadb1d59eadc3ff01db36b7343885d84f84a156a7d270c3766b89b4418adb4a78e8fb20237227f12f5487a17db517ef6df2e14f96029ba75a4ba67feaecedf0227ff6b0112c325939af107ff09d089de5171025daab9fb0391375b04b2d5190c9b82bd858dad09b71461d8042d47017dec1a084c2be0ba127043c4e60fc9282ecef9535132853e2a8a289b8d0cf6c71e103b73cdf1a1073f12b11692d21805bb0e0264f518eeee3d16c477e59489fd8b0feb1fdb8ab052987ec60e02268ae6d698543fc8bba393e6806dd1713a3ace1b3919cecef79e32d9fcb68795ecaf35e63d243a009b8b05d190ae4ba79d1bde454e9ba05aa89c9453522bf45cbe8eacc56d6f334c01934f671e489da6e43ff69dc14034f7bd2790ec7d5ca5957bc71013f4115257ec9880b922a0fc6836724a69dcea0da3138d90f70df46d3b9892db78117dcf66330d58929534b9789f5df06866971992f2f745c4707c22f83bc05ee9a6371c6f823266e3ffc2771c0e86bcf616788fd3ba2f7c1a0e422f3714aa3cfbe0c72906362ed7e85f61f0e40a005c56793ac6cf7c2b48913e61e9e45a5f7a323956e4c936f7c943ae5c79e73156debdd9cd7825aa922c968dec0f4890eb3d5e5666ad75f548d71dd5f43f8c2796a51e915b824eb095a42d355ea941456cf06b8825faeed17bb2b3229cd12c3d543edda6a326291d59cd412a9cedc2ea90635d1d7b978deca07245c3d32d8877546898bdedb283649c87c65d27421a61d58eeca48d96218a3538f0e2f5542f10644c098d87ec695cee6e5679237353c118795616594482ef6ea8e158aabc90d50130a95da9a3bf0129e894791483e324b9ab6482db3afb2d7f6d8b9b7be23ec4c0bd87c41e05d81e3c060e8fa2adde70a5c6b85c47192ffbf09f1c02fab5176558ac10291b8caeab2be23e00a34a3c8d3ddcf00de00fa3ce795f00b97a3fe2fa570c08466bda9f9252d1b69f712d901d4f08644c50469b0ef74df16cb6d2ef23fa37dbc593c3f72a94880aeac4595ba38ac4e935c16169f11609cdabfe23bfeb78cad7c01ba4ecbdd6d6d14d49e22c89feca4cf1842f64c3a7c55d383702702cb997c0d0b6b4d03999d5e5db5c7b6181ccf7be2008997e276c9902db49835e824b90bfad2bb64f9590042cf99ba784eef38fe93fa60cb4393b2c45b2971dd8bd8e3fc6036c944f44b5f18ba7b47d744304e64083b2f21210c818096aa2207ae478f0f1a64e7c64064a92502f7932f7a13fdd75285d430ce52e72409056b9ac2443bcd424d1c6012b76eb18fa194c3976f7469d0fd1db5a6e8782cadf91d5d7132e74504f5a2630fdc6757c62c96009265a6133dbd51760c072c0416139d21e4c599dca3476815331eece765f3b8151bc9c9d0b4faa8044860e073af9a65453cdadb233151908cef3d7cd876e170da6103d9be1298ce42d604d3963093837fc97438ca62a4f265b9bf394424f6030557af1654601864c0ec9f296445d419ffdbb2c29674829846671c697ca5f90eb1f21b81a3468c7fe43e0d6cc7b021dbd94bdb8f7518dd402e0facf62899630036343663b1b3cc27e84dc10549695e94ca0f373794cc9bdd994bcfeff873d89d4dd619c7d72570d9a0cd9cc74672caa13f7da5588e28a6167612ae05e3e4167c8af1acfb3a4f43061be88a65bc739074b90b1a12aaf314c6e187de0ff650a88a1e0738134e03b292046ab9f79b52c61279b5528c2416947ac0766986b9c82986f12de16667a07956e721517ab64b6a967e4f1f6d8eb76ff61c59ed0a1e198d82075c4e0f6567329e33fc534c3453d4acd7728363381cffb15b1a14dbfdd943683706786d6173b9ab1aa6adb49dba89163ed1d5a0af1320543dfd2a602d9ce0733190e2a37743493239c19258735f5f2b060fc1574a0a3e3eb14f6fa41b995cb2d5460a1998081bdb11f201c456e45c535d7cb344c40ff00378d68dd40286da88dadecaf96c29bfc3575399eac2b6e18cd847dc22eb6491e8951ae6c2a86c712fc3b1f0b34eaef7fa0818fa9d54e322e852044e325b62586995025e65afab44302633ef794887c3065966a315a3fa360d1c9c3fba4bca57b49961f5577580f0ec4358edc42cde755e6bb5846ea8888bb3760bae846bd7862b4166d45586bc1c16edebf5cdb9e628f0dd378728bae0cd2a677cd25bcd9a64e6571343c39b88d937b9081f14cede979c231df5a8114007d1d19df991e47a0b2f5a2cd3252d5744298d33e9ddac3070b7aeb3f4b6e488eaa0e94f4a7c91e59104c73f09a79068d59d71d0ebae52e97589ebb544fd0d18189feefff2f43d87659842b9fc97ab82a095b9eb21d3d9f46bcf0a4c068f45776a6d3c4d06d70999e6d28825bae532bec5ea7891cfdaeed28c399c8ca85ee9ed34baa8d108860718e9cc2f12aea97b8b49c74a2d051755b584edf885f8c45532bbcd3127d36588f7e9553a33029ddb508d2c68ac3b217b3a4a037e1af0fccdbd0ffefc84f45e79a0b6707ab8a19f9944ac6c0e5c61531f36e70697391da6f484f43da58d335fcf4ffdd3c3fc8c316e6412af35bef44c043a3f79983f6247d416508ad92824d70326bd69eef83ff993acbd7197ce7770b5d025506a865fc77764477a4b820a3da1f9d4d0a824324168f0bb0105729b645b9ca27302710df112b312b9ed876c89df3e00dc1aafe1789bf6a1030e0a0095a0cb153faf7bedf6ba7a32828281c4b95096691258396faff1baeaeef6664db2a5960b04321bc0eaae33bf297a9bc04e9dd49a2ea27c8a1c93f7678fff91b12e06b6f188a974dc4630542d91217f5ccc5095fa9d7b86539aec572f85f9298bbfec058e824c381e64eb0005b62052eb3eb6aa37048a74df2820f7b9c22e4c21e237c70920f428dd06f031bb2549b7d9afc4fcfab748da4266050c3e109843d054ae30a181761a89d0394e107fb4aa88b11ba9f8428b3a5f1bbae4a48a6378ff9a43428b3cd17054c9c87f16fa325323da0f7601e4cf3e34b1c293e11ecb598a7a6c0c7ad8236acede494248df0923bb43c7ea050f629620b7baf0d6123b3c038083dd27527abd6d5f4feee50d02e24608669e14ea4ca7515e95ce6d7cc8655c7a3d07c29a6758d38019432775c67a5aca4a903dcf1d7b9cfd6d89f6c9f7c210fc2d2ea6157045fcdaee30ac9c92a58e305b9beccd76911d8ee84d7337d3fddadd5b55d31c4405b1e70466fe1c31ca98616056bd267182482e22bcf25a51f166b8e517a47ccae43f89f85fe3234ab3048b73f302d2cf9a83a031c8b49b0bb32e6db6c2e3f5fa19f783d603b5f201ed5a607af03efb01dc06cb37fa6db444ade19d494014bb88b1e2ffb3fef45fe7e83f94b3aa897ff509793800709f353f8349318008c7f85c970906d770d5533241c16053278072b9b0b0953142a403e4b99dd384863f48e143c40b6fa57f4d52b5970230a3a299f04b12340e2fc7d3b85e9c73c0a6313b1ad8ce61ddd877deccb99d3b7ebb2fef13fa3f8cc4ac6db326278bc3de7e53d691b267c08d4f9b2b6cb51bcf9d417024856532b74fc5278210c279bce241a51212c722c45e3fdc6ebd45d408f60b181971cd5df3e75d3e73b955bb174bf2c65c2f43196e9a4d0d75df24ec34e255d8658258392203cc2b8efb6392d546846f14a349c4a17ea3c422a18ae223ae8080d3631b5a49e5d9442fce8e77b8f9611d0e76ce20a655db9ce9ef22d0a9a24712e2127d5614c19cba851cf738c7d0836413fbddb1a81e48e05596f30b2222b9fe4302e3d15168be0714ec2f6dcee68ed26199d89539c659f9834acb26e9d486595f0ccf63708c1cce34d3ff59db78ab3d27676d2accee1fd9a50c14e7dfe57e30cf35d9880a8fdf238fbf6a7cc36a05770a945daa38492de380d52290eb4e405de23f2f6f57e26a51a70cbe549bdb28c6a3a352c73b7d5dd4ee945e4974357c171a0b843bb6f9c80b4eea98f63fcaac46ff775181f5a13f885d80d8eae9565646afc9985629ca74492b132b22cec9dd3d1d2c9464694627774fb12fce3985b60f0a02ca6ed6daa2e93cd323592bc65ac274bed4e5ff092645d813da835b339d6c4b614a1c87e56b884f5e0b777ed8d59b6a8b52cc05c56fc023a52c76c811cd99c45df5812b077b04877600d2b12b6b15de971c782941eb3bed01bd94fcba5b147ca9e3d75380216ddd6214cef4f03f999fab6a5a0182f1480845f61bf86ffb71ae742b88b605f2499d35bf1a3a645b50f23b0f25839d7d71da35fb6dc3e40fcd47807669ada0456fe5622687bae0ebad10264c0d8d244fbadbc62fbbe41ce0ac6b0058aeb71f4cdd29a72f776e056ac1a53994fd5e1bc1621be403eaea57774af04e8c53f6168a79b23d9a8897e94b67539303b91b82578eb991d9c6e50d07d3e16d8c32b170e6cc1a6798e437613af42dc798c24b6d45426d5a2006eafbdbd0fc591f61d08da952d13fa30f9551fac23cdb78515bae6d67ff0d000c92403834352dd33163f60f4f9be682c6bd157c21fe11c8ba1c0ca04fcdcf2cbe7b88a48d311188fc1c9a529610f3c49cfdf2c275e184e180400b15934975beddc64a8aebcc0177d1cfa046271b3c1b9e6a9d9617cd8ef7a6e0466af97934258897152975935f5e5cf9caf6fe7cee5c2959cc3048970667fff958a18776a2958799ea384d4b52be883762d81446f32399e6de58e58f4947eaea52e3baed01860c77abcb7e68fb4eebcab97d0161a6401370909ff1f3150161f7c50a6ea1e1164364963fb797781a901a3fe86b09dd7d051bbdaccf7935f63ac95b36e6e70a81f894d2545834b6e48f301adcfb4d3c6f6b4d36d11ac9f7834eecfee50828c0e22dc10cb8fdd411cbba3a5ed73991df43f631a74e5b017dea70509364cc624b0607a72394e9bdcc45b90aca8e770c4fd794378907712fd0e25ec93e8089a8dcfbfc87e4fceb694ef53f981812964bc67aa792288973dad1ed468f41d3f39db8a09da8d744410737e5557ce1f940acca3060b8b8a1f27af2a505bf5e1f24fdb66d6ad11c9093fa412f3874094100e411556de678f4f6fbbc9d23d7d47d4e1511279ad15736c458f82719e4c2ab547ab8ea119ae83dde3f31954b3ee665744680479af8acc5616c337fd4511edeec49c80a3c170c3a3399ee0f3fbaf1cba086ac402e9bcdb8b7346ffeb4e52a84e3020f2dffe4c05eed522e9646f71adb02deeaeaf393143235e3ecce93efa62de1a74445154d22dc18278e2aba07830b8aed4bbee5beb24d8060a571ec6040bfee1282eeaee1fd94c3c9aabe85dd10977c63faae2c7debdcebc60bd3fb4e659bbf6c071fe8f25701305c8ab07cd1c98edf87e9c63435619c2de29f24a474a4e43cb6521eac18002dbbf8d69ae61fba126eb2d3d680ce713723b850669ab09d7b254386b7b0ae3544972be901ef676d6e4bd288d82a37a3aa2cffaec95585829aa83c1fe275535c607876a2a7882ff71b92e88cdc57e01fd722a0ef5854972630fb1bfc5ae46bc08695cb1790e45c8bef5f8a069d273e4359393abe8b8b31a05c0a30b3e73a9c6b0bec160c01d4bda6ed0562fd0fd14a36f42aa1dfb346c278b1971f393e775109ca87b13a064c80c78d90ace892ae029c24e85ba46b485b6d173e60d7ca4c3adbe6aeed7144c8bbb56bf3bc8d89f5e74dac9f222b70bf33bf7b18be72ce08cabd0934907d257ae45ba9c1762e8ab67e282961647391822314a705d9218f78b83c45de52e1a608592f8382d407718ccfe708cac63fa2122be7dfcea41395037fb71bca5f635524da28d95f6420f511e9136c259dc89114eb883ac9e7c52db1dd9554e3d8663f5a0a4dae22c76698ce5cfdc927733e19512bb0b8e3be8bafbd588c931b5216e85ff1c4e02f34200dcdbdc967f7881ca7ca539a9a76186437b9b4f0e3cd555e85897c869c7df2a66a762590f4824f4b7225f3bb83923920dbe67e1eaad3deb7123bfc8c4a48e178cb9eb385dc3fec12df703d01550038da89b885ebac2bddc202eca3a1fea3f2952ee9053a254abddd9f5c869ede9c82bb14d15b2c29b8b8b099c40ab4a5e5aa2eb6c9c3e3e487ceca3b07c970cb3d55131aebd8482185c67e3af3aec27645a4a29d7615bda6e26310e5de23ee67d746bdcc6097e05a3cd50031976e53680a0ccf800927704ee1722ec98058a6262dbbd7d1d5787fbce8a5bbc2850f7cac0424adceebac934ced26f1441e4d5304f172caaeb11c62fdee6b8f903db87a751bc240816a583736565d43a6b28c792dd8f89c81ae6c4ad92d4f32931376de8438d0d674f6658011b72bd1653fc39887d5339dfdbc13643a8cee7a3c04b93f47eacb93f8270f56e9b8557a025845ecff5cd955e6e3ff380bd8d87a879ad5887eab45527215181e7a4ed794e88187bbc14cf6d4828ee4b5a2bc1369010e83cebcdd64d12fee4589096d5fff0e50a43ab6db6a42c3f2b93efcc3965c15105db8312a6033bf13de6fbbf6cf0334addafaefb669c612d538d32dcacfd624c065798c2a08cc681d32bef502bf09e47a0bebe349f9bf0ff56243ce061e1e37e57f58f4f13e3fa44a1171a5f1f818b4863de89107774ba4dbf9733dd4576849dbf2c8594c76efa2ea50a276befa2b5ada1adefe6c1219399805b300a944d58999ea12a2503bbc492849a551d977528d967177a25f4f93fc37501ca54b213907d6f98b6f30ab10347b5833af61d6a3d7dbb35eaa7c83557867ea0dda251eb79f92925f8806f6419ab75fa89502b101c4bf760e35e85cf2eebba5acb5bfe12b384e8de71dc3e23d3558424f51d557aa11f0f631e62d590a3c97997855d8016886aca694763b4a8979266cbe39a14a9bd7708f9576ce4db23076a2f14c458c3af8a5fe66bcd09a8ec3d649441687c2c3c1d544a72128e029a6bedd4b94be824b813898f6f117553c4f87ca63f3a62907d2713c8712820ee2c0cf2f34e90057c65921dd0b506b90f31452e4607b979e0f4f3c3fa83225a6d31d2cbea4d33c75d4f75e19c88d5374c6e54a11dd239672f0ca943d00fc96cc25e41275c9c09cb8e7cd19fb5dd545bf066154cd83c22fad986ba3c7c8303d7724f5c185f4e5c8f0d49719195a674944249d2f1ac75ac18a15dfcd94cf9aebf486b4e8dea2ddb362be401c6a7b2eb666db9d0bfdab3699f6a4a59cfe56341f61062388ba9030a748ceab3aca1bc663a1b3f1a2fea69cb015989b7782865cf43344459a13de3c7b4cc1e9067928b54e02ce10a7ac88b4eebd05edd3446bf937b000116028432d221141a5369caadfefaa0357d2177a6da5fa4cddc88888a94d76a15a22fc54f231aa0ed07bbbdf70404e54b37a5409778188670c843af86607f2077d87d7d96fe521fddaa441e2bfaabaa466e8fd459f765c0c24c1671b3ef5eab7b55cc32d5021f2bb023d00e2f0f649cd6b05aeed274a1ca2163cc2daf925f44d6fd710b72f658d717bacaaec54986ff8623389a8e43ca2015a102077e7cbfc45f4dfd06a1236d72585475946ca9e30511a37b35534ff7d08c81afce913bbc21144ec5c61557ba9fcb2d208529ff5a6010e32d56727896ffb0ebff4d5a440597f044fcd7a8e7b5040efc1170aba877e8179939b5165a9f0b8dbe44a072f65aa6fc9a383130ca30b3c06dfcb0806577b34d4c33802a31da9bb279c63842c46efdc2c2fa2c8e60191e6c113cb206b93f258d30ee171bccffbec549b4b2ef4d43831719e904cd77b885ce0caa485ce434d464bf94d3ec362764701b530f1d4f3e9eca78f794b42f80f2b6fba4784e02188fb89c13c5794936249bc76e384369c3a9d96b0cb5f2c7d356a55f186cbb8dfb7fd0442edbac6103937085d5abde172b622d40fba1608047fa716b19a44832c7e8674cfa54205562a2e516c316bd2f1bc47d870bd04900366a018f4a07bbf739702b6f42f7f25c79806c48924cc341901a7f7100fea1e1ed6ccf57f1798d48050e00f2057a58dbf99062fa2968b706b0ce285502fe73720b1b9a60a63e5fbe60aaeb06e6e8abb8a786456880d5363d2b927982060c1307f4a338c484debc34bbb8883c4c9b0fe4234996677b3ea2ceeb70a22eb2a3730d4eb3fa4b08216ae786ddab3474264b763ff826e51d7e92e380aa866e8d764f2634fea73630ff1a866bd687a28b5e6ac74bf570b056af72157891df879f73805a028dc6fe8ebea684c5db30d5784ac4c949067b000839a62fb6150bf30dcf86eb29ac8ed646eb2e11692a2cf6a14a9e4ce3faf343ddb9ad79c9003c6981fd5f090bea6e886d21c6299b68512874eab2a21d13a903452f1137e6b3ebdc2198e57c920bc219db99e1431b7610f7b1fcaa2bcfa57f30c6848966a18037ac86b288c344277683da654e68d968fe7b3f8e0b6a4a798a15bc40c48c01555e23676b15602171a1369829b16d1eaaacbd84e1c910375a53a26b10d9e76af8f045de413051c8834f2561939f1375ad0a1121b960ba637e05a349cadfcff8c0c53fd1dfc67b0f3ee48e99b147517262cc5115b0247e673d6bd5697a24114221a3ec3d3ccd7d7a724945d1b7fe9039fd8b8dd906bbaece6834c04d94695ad3d42a62c77a333a3694e2af3130ca49dab0ce85b3fffcd97fc64c1903c79e5c27de0e04bc16c0c95f13cfe1cdef980a2429acd4371ea528a5859cc4bbe0dac95d50849e42c096e786ea30e523d2ad091f3bc1ce833466ad95256e00a00cee2ba0ebe96e87781f8c4fe714cb7d3aab8666038c5d51614ad9274e914fbca0947614278764f254b3b44370002ada9cd54abbdc6eccaaf4aa7dbfc8ac51b85b74eb961fb1a88fe9c8478a10705c1abd1086d55d737f118f2f7bb5ec0d86dbf2471cdaf7dc3958cd396593a6e3da6281bd668059dfb976e50a8bbbf0ed9b6ab36a58b441e70fe9fe5f557f0e04a9956fcac1cbf6c33e451268c5f7bbd49b29e3a373b8bab3e46c9e8be3b2a3e5309cb0dff48096c530d67fbbc359f68e1ae9346581cc3b929a6e3a53b6040d04373051714d47b8f52c7d87a82946f6394e0a82909798109240a863da401fe570f1de486e3ee45e9856bd3df3966e2ea98239fec42012c3eca2793dcc0ce25e7b2c52a7c74d1a647274b08720e5d2128cf875ee27ee680e424acac805db4ea8a0b6e025e06637623a1572d1295b10c0337bf6f4800cd0cc93414b8ccc1e476c6c615760484a89ddef9f57ad69c1fb4c45d7581778153b49e43c163ed9e7164ddf7a6f87003e29952f8632cb7c62ce289eda8e5a326a42ff5323f9b8d256b45ee1b52da1654d6fdaedb8e054bb6e48f85c85b122ed83b897f438014db355b1fdd964bd5b3dde9eca7c09cca93ed1e6a135a51218366d7a3aa0e07c59adb1fea0df33286b85144a2f40db3c4daa512559a071e518d1940ae83ac94694d889c12ef6d6bec40f176ec1d82b5409d3775e83eeb7d84b48d83b4ee3ff6ff63bd75f8539b54ec9c69cbaa9cbcd20f89e39fed6542c4c16e00fd0f2d63fa4b84180f719f29a1cd6889a154485cb407890e42e2063a38b0606e78f0b32e6c53ddf34f45be1001bd35500872150d127fe142f57ace025f210e25a2d952d42ee28b0c47b1f1b5f34ac21a0d23241f38d75c88a01c115786851aaae723aa083a080fe1a1e669cedde9c2ed11971e81cbee87e5f8638ddc5d73191ae979f1b44497ccb91087b00a6e723a21da95e737b6aafe1b959cfe0b1125ef609c5b0eab60a8a58d1c2fe3d4f2a162eee2f698adb074c8f1fa4b7f881ef8c0ed4d9cfa55a7159b34a8e9bdab829724a20b28d2714db9c499c4a6bb101df075c4bce57aa05cfc819a52b675e4bf58217687ab5645c66a270d7d18f473b931c70eaa30258c9a42c8e3330b63dd8f4b4a529197fc8a0a7d05681ac0cf347c87e08e564db732ad0d49b6fb507ceb54bd09f95f15eb77b869f19a0deffec350df90959260bd2bc44931184b62a08c195efb5f67e1289dbbaea703b7aead7c5bcc0a5e376188908325f4964011b1a8a2c234370acf7aa4444bcbbeaf35c6cc660335f11a9b74184c934fa891a37deb8de11de17c43925aaf46b2c4bf75033313df8af2d12d8007c7cb6077384f7d817897d95cc1b78b60b52842238990d3fc00dd8cf8dc8c31e95fc8c88fb1c359c1a9253ee55139bd1efd7edce6e85b0aee5d21c15231ffcd51dbc9e018019f498ce4ae5d4646ead4d2ad595b84cee3633c9cf0435f6722e01f27d2fe923bf83a6fd1bb9e2b7e8047d332cf1dd6d2e5d6889b34e8d13a640ef8d529ca481ad6cdceeab864e8a0c50e62c17824fe2754b7c037fbe78e738841f574d99fe637b61ea8f374487d9115b8a885f13dbf93d6a81005f824fbbf281bc70f3207eaed0861b0c8a5e0db4be4c2b7945c431f06486153fb01f9e3832dbcb8c44736db6fb249ddca621aabfe364fa3e2de646406363ba6f68f96602158db593f6ea682ad8b49a039a7210e9b251c17852086bfa063980d3e41f94ecbbd2bc44dc4b88cb9e1975e92d4d92f025fd6fb7bcfaa35b7471453b459664e834213b789a76a4deef40cf0712ee6946ea6b607131d739a988c8687f23d7d597f25b1033c3a1a96ce78cc2e845d4276b54e7054b03da8ad8891d5d24ef7d761d573340336e45acfac17c0e1c4ec6aa682c26f548dead8ad74e7987bbdb63b8ff59282115ad1d9c876ede18bb4cd15c3bfff68c168e105f267d68b508d4b59042eb82d46f16f52f1a00a57ea2ad27ab5ed16365eb9625e5c74d9cfdd3bad1d4b2d71bbe5b9f392e80ff4592b20352cc355af05a64ab30cb8aa1eff17017592ca3a1d3b45cfd2909d0b22f5271d117fb19d81d9c2759d12546f070f673d634ee8a66f2c1a29488d6abb828d2a02e683bd78db54655aed356defab023ba8d775b7c6efb57075d449e166f33c0c7b198f6ae51edb5794f4fc38bc556d94f8584b57a9792bc27dba4c39bbccfcb2c6715169a641fee6eb08bba39804c52ac411506397bce4e51c7f3592a153a03a6f9c80196b4c3d796801ad1357ea841a7d4ff41657bc63d60871217cc6479f522fa80f686add12f0fdbc25c33cee1f45c904d8062251cb84581d2078cf57b09a888af70b09a653acc69cca83c02ac3cce9479b9133a6a534bbd7b7625fa933087e9a8f6382ecdc4f5d04e0fca26de8558cd23e6ad9bafa19cc357afa76546d9e7c157674710a939672dea5b64eb9b8f82a8314def9e2b633ca94a8f472e68f03bc9a08d085ecafe02c17c48426c63e0c13db3fb81545619c4192e851e5de96bc47ae6c5ea69561483820c721e97e69354682c6e4e55f22cbe09208e5cb33f119713828524299b85caf6fac0d997fde63acc13035d77f1a7fc93bd43d32cbfb1ea1054ac696a3e6db2dfc7e01689c9ca67806bae8d048084f2af9f86921054cee604522c93df1cc0670c4038afd5c6e02366411dae4343f17d37bfa3ddc30ca84f60c8bd571d3da67da4a769b10792cb4ac10aa74c20ceebfc3333718cb119ccd22d2c0fc0e2f3c2727115530b463d088b3e59bd30771b5156ad9fc4f2661df5865f3ca42810058463f233e45e7bb56350ce113acd6578eae60e9acc2624d343fa93074ef7dd29e5cf78ddbc3f0d871d89ca654e5648400150620f130a0f417fc652dd3d59b48a9af00e0df2ed0450c10b4fa46009b16a9b33002005edded0e490ef162d49c97a6c0e0b2122194419b4c88479ab034fa103b9957f12282be9f431e69ab0f81081ba92a1b6df1b73d414cce1b75494276d37b52aa22e8e3661d6839e479a94a79eee08639460ec262c0e715a9b5df5b9f14efcac9ab36c5d4412b9098a9f6aeddca474fac8fe13c093d9b9747c24351e447676148e353756d983c341c7c75d0b7ca8ba61a2250cc40d07440eee934a48146a38bfef218218ab8bb19ec810683a37747fbac1926924cea5215be5470a40db6bdea857c781af74fea42e9122a8ace1871d88f42024c21859c7977847d97edbeb26ebe4d645876fd24fbd65644b77951f5bd75959295ec26dd8000655af0de1276d74b2505353afb2c15dcdd29cc7a0f977d11c433828ab4ee35e3ec683d6f4353771487767c6c990cd806c9768cbac96e419fd545510e149badcf4d401d84689217c3a07832aa8820a5c6827276b80ea3f259d3c7583f9fdfcd15b5433dd5169b45473eca1183f40f696e0782320463343003850c6217663cee2c9c201f6ca60f1c55ce1cacfc6dbd98b8bd6ae6c56ff666603d9a9c4541b9d82ea996242bc99ad0e276d43d0ea67ad23fdfe73f348110e5bab687fbacb48a3e581f2b2b447169ecaa3906bd25f8083b047154381f559ff45effe749e2a180668edfa9d3bf078b1aad286667a2c43055eacb6b49673952221d761783b2caa8b6d4f8956bf7f2b1e4acaa17175a9bf96139b56209827a1dd6cdd6fb039a23cfbdd6c8eb501d6d0e8cb0cf91f21636cd4e1f07dbeaf9215c4dc65689fa4ef6c58c61acd692b4aa3d6984b509a011430fd62ae9732beb04fbd666d11e1133d49f82e83f3c84135187e336fc14017dfff3bdcf98f8d1892287eb8d048bb3e558452a00303fefe63ce31c9a4a769ffea19f10e7c16ffb9852395c22ddcc73b1bc106be4991b9bad9881e5c7e245602d95d8bf2c678d9cf243595d8cd3e0041b375919f1fbfedf3c43cf669846e8c61682d665c15a494b05cb91a139582dfa5a3118e72bb6bd163a86303b2bec840dba2af8bba7469c9a528010151a5060fad74812d0b71a88cca21cec546602ef9c8e146aef4945a510efae8a0825a1cf5cb2212e605f0e01c54489002c6d4532fafb020833f109bac5069381c5d2ceae383d09e39d113958ff45bddd272de33514dc4103cd5099234954e85f969fa6abc57e68e9f560c649259a0e3d1fd56f27f803c01766fa91897eaac84a468cfcc38db106974001b62505927e911557ea9f57b3f9598fe7044ec570dabffda0776658c41b91dc50bc40fa4950ca12ecd0b4f727b3e74af4dd5be11dcf5a2a626e30e7da32bee5c9b2707136ef610f8d4567140a8305e360dc29cbc0315cd160d3da94c9dca1c28f9876099e25f3737a422300fd2c73824f1bf4c27a85cb45ac3128a79c328c9de82278291ea3ce98b7de40cb15cc00d04b2a6ec102b44ebc59b9e5ac112847e2beddea4925d34a078aa2b98b5bcdae46beb56fa61fcc10a0035c51911bae2b8420dc92967703c8fbffeb83f14abae22278bf5d54311052dd44f9762661a5c8a3bff87602abdaa2cc6463463053d37a842f67523da9547b8f409b56c8bda0852671a6ec60ae1e8f67cd7f55eb5c7acad4fa4245c58daecea11ac3e562bf77ebf5b2501d993ecb140c911b2dbd3d6dc996d647b642f5710ffb7cc53d9528a97ce71e4ca793707829c7cb18d82742d0ff8621429d559080bbbd143789e46f8d47c1f8563c142b1120f9da15f837ac08f95722de9fc220e8afff116982f13f599c6aa7a95f4babd9685ce1315fe8306747677f40d0fef9d0521daaf5946bf7ef901b3397a58effc5db9848e16d6076a2627ec42e761e86bc9c75975cf40c29863c49ccbd16508a20876c39d2a67b9b21eb11e3c7a4e7c5139bed96af39431b14d51f44c7981f85803cd823e12aa5af161c79afcc9e5fc6054613e74e5a484998189790b97e3b7c10568b3b1d0ff63869764660784b482fb6c318d1b50958e129ac904ad7a2f7cd246efff6dcbeb1ae70ee4112e93da9bbbb722a1b57d85d45db5afb3210ac0c2c22035291e2dbaffd7e2684451811aeb6ee55d39389a1f08d6c5ea9a80161b322b441ef89904eff063b80d95e631ada8387bb3c8b841ab002ce1b6334872a4a89536f8e232e78121dcb0ee325a4b4cf168d3917566c9421a472fdc2ffda2725121dafd5e53bb9108ccfb36246d9a5af7b9359e4d06e43f9a572559257467613bff71a381bd8bd7d0f2df1bed05e61634dca8d29d4ef9c55ec7d71b22f628e16690b6b465333424357a73912b8b628fb3f5b49cec3c59ed2939e4a189ce7d8c23b87a5b7e114414e874bca0857e14ca797185688038611836acb7a045910ddc235b890e45c6fbe5cbaaa5667e84512baae7bc1c27ee117ce724a626c4487aa00aa6fe14d1f05a04d7be411540b2bf98d71f3fadc1f119de762e3a67cdfe8600bc2b95f0ac91c46404a81de6245bf6c22e382fdf85952741a24e27638d0d3f668f9e37ba7bd45d6151e1daff47eb11abf99af9ed09f733b6359e9397c6189a2a69ed30d1ca32c6a72dee161b1815975f43cc05c33ed7052ebd1949915001e862455ac38eae57f9430e7d1a0c27f7022de0b4b46df3e207acb15ec0b36c03981cb95c6ac7233e4ed5589e290fd8c5958a25614d56013eeeb1ddda44940d7684a162bf6c1c800f99bfb8ae6595821fa6bc7043dd686f2a9fccf9a355ad41efc3119b520240c026d044aa148d1df9822111f0ec1b9c0e5629cd3edb71f099479307e28240c6ab5221e9bfc95d1e0b4860fb50146e36ef75345492e9b8cf5db9c22bd4b0d3f6dd9641213bbd8082016466e658039d6c5bbe02bfbe626ed06b9e754323a9e4d31f02a208372c247cac804587cc03f5766c5a1c10a55cdee2499c2c017e324ce62c16df336aba69b3eb79339080bf2dc352e81dd01ed4d4f4f082d9dcf8ca18ab3d88be2606245bdf23129dd543eede95314e71a91d4a75d3438fe24614b3ddd8e03bec33587659e796b29845c4a302a4217f6412566dcb63a80b5b4828d10b567d69b4c6d7f3f2023fd7e41dab6ca6d76ded7ca25b181e89bd9daa10e9039fdee28b02dc8a4b73cc36383160f1bdbda969019ce1ef824e37863ef6d4ae84260de941d5c71c0682cee7e779439a7ddf0915c18f450317d6644deed36fafed9a1c8f9523b8c967e535e118c04369b4a379df17d3522876dd17a325b87d48cd5088efbcf98055960ff47467a58bbcd84b1e606cd7eb2d8d7ff61e7e6e78c228c93a87ff9abc9332b3f1626ac652f2718726ed3fd8867373f2077ad9bd455a47af08033fe8bd5c0fc606b24f52c1b2648e70e962a799b6b3aab43d69ff76cca3a756204cbcd36900dde4693da30de5beeba33104c19ba6fb6e68dd785cbfe9fc98d71a50f3cf0a89bbfe12b6c1c5eeea85f200506bc00f0089f3ccb2c0771031e5e3d0f53dbe601a5c62988ac3c161659a5f0c0831dc5d2d2ffd0ef3075ed290f9022fb17ac6e0872e0c2ab898e18a2f1eeae8c64d39facb2b60c27ec18d9198b87ba6a11ddca1df0b11d776563487395e3f43cb81d1747c7c9357806c3bd2f1d77ff1e675ff914dc4381352ede54ff05b58ca40b2b6f2202cc6c8c96770e9ac40ea31e0a0f6eb7bc19dd1107cbbfd06155721d852115f14959b531d24719de1abf523619e1f541ad3dd89a80938b0333366505117fb21a6d04a4da4e816b53caca497455cad6e4f70ad946615101cacd6af43d9ea25636e420201cd254e7a354a09eaca64f654580c1b0ebfd415eeafe4790a96a904c9664124b32b256cc5029362ef5aff2b4fbfd2b2d47221c1e3e0adbb5b45f4323bc420c6a7ac67afe2b0c63e52a74ecbc1307e3117a890a0632f9d1b9c97e1d27dda46aa2f6e76de9decb6c6d6b0ae8468feaf6e187e64c0a4839af11db5d490b66850f74cc016f78644847ee9962af41e25a0a72d67cc1a6978a623bdeb31eca74856d20c7b109bd8bc93daedd19fc9d75e82772b548d948473ea18c4bf5dbd35a8f2a98d378540979a500d4215fdeaf264cdcfdd2b7b8f716c59744a000477b1f49841c847b94742437517595e76b2bc4815fc8c3f1867dd68dce33deda0630fd56e07c90d268fbd924c6692cf3a83794b2d6a97eb02df3ec335c2f097cc87ee46d32bc506bdfaeb6f6610e1c61ddbecfeff829e1a80bb6d3fdbe4dacab80fff43522f5447815b02ffdf54362d4c71721bda0232b835b7d97abf79c52ed5c5206fd1a878c7145088c878b773ce8605f2c6b14c48163517b5b95bf9a0e7d350c2439aff16fa564c76a6a4d71ad74205f03420ff86a023134d319f438f45b92fb0ddbf946d858b23536d6abfbfce2f6a7af7bd5cf5455defbca5c91a19d6c957fb270e7c8d477da4eb57db43135926c9eae0edd820dc7aad89e55d63ea79f5bc2bc17911815d68d2f7f0cd968a64b99906f48d5824a0061e0bf2d6cc53330a7880340135a72ffb1987fed9d3763c7e592d737177d2340d10233efaa1f66f0e4f0183e8ad265988a2d7561eb0fc440c9ccbfe7c8409544609b15835522e8a5deebbcad1ed18b4e7e9c74e5fa40e21af51273693d3fffc25a11110067e46876ac7167a44b272859597464e91afa1d95a02834af5bc3a5700f45ea48cb6c1564b775c2b3c80fa0892f0281d6c214988fe6c5b736160c309bf185f5fa1c2a26dade642dbcc126ffeb3f36da65b101bb5f678da5833d2d2c5146549bacc251544913893a8f460172f77b38d3460f32b1b4a06f196a37f9891a1e3fdb7b05d55bd4f70530621c05cc4e9407a315d0bae88bad962529653d1b419dc5c5ecfa137d0c5d4289105b5d0211ad37d7a1cbbd933560d94d55424a1aa9d44000185cd7febda67a742e804bafb91ba8cd8449592b69e8e009938617a339ad814529a463a9cc6ee853ebe19f9191d0d13a08f97bea6977a04821d45334d5a7fce12d10a94920f7633ec4abd70aaf4d22a55c8f004e3b947ae833bd5634e2731337335aad31a13ca47f06cf39a0864db1e91f86e19ce511743f1e2a3b69639e4a3cb5494db544bd4a1422914f7d0b7b81b733b42a5bcad920954d6a5f80a0dbfff95c735daf2943b831cca140ef5fdd6611e4ba8bd508fc8aa7137a27885ead830d0fc202fbc44640bbf1e2ede915d99fd05d811399f2b7302641472577a8674f294aa3d4fa1dbab0cd794c2181ffe827207538aafc8f6e5a3690feb9a427d66e92d5f0fb131b4f4c37d895cc708f70cdffbba0549334b175efdeabda4b0c041ba2bff10a2ede8a45fa6f8f1b95c9491ec1e88c28ba23ded6e039b7e10c86e8f146ac0cbc37313881cdc5551272c3f0508f8cda1f1045fd3e87b6083e6dccf92c8173051ea1020be79b82c88aadb46e6ae3195ba4f9e8cec7da1ddd5f53b7e8b6e80fe0f5e0f186cf0346efa7919766030d3b67c41b9d3e64c166957a8de7060725ddc247eeeb7a2ed74836418a59e538b178167de110acf799000b92497f193775267209c7d7a3f19dcfac5aad9bd7874730556cfb09bc22b2ed32d19d6a9ade29053ffaec5248ab116daf7a2d03478c9ada528adc68a348d2ad1957ff37aadc288f837de47ddf08a114a890e719c1df4aa2023f3b3d1efcb1f8817ecd8034606c55061eb7d814c6f0fccd2bd7be899c4a4aa84592ea84f77b48b023c7e1082c8132df11712fbbc453520ff4a1267b5d6264ab55a25cb1ff51342d939083ea4a0969b7afa59680b257b98eb2096cb5ecaed72a75ed4ba695c89a889b3033d8253a127f47e777752d39a15eba7bb07f351db70a2f3b922a27689c67b3950a0f355edcf13951aeb8a86c66642d84ccfc77f26776a3168fca822e6667440da989525219857bffb2da6a17458d6c5690952f4718118f4d9cf1af0acc9ef2cdfbfd0a071d99e893d9c9df941bbffd48943a9785854ef275920df062b3c8276d969b2805ec07f2b19c5920f3fc2e555499df38ee12aef7635dee998d4d61406a9b0c19e3396b3284fab6017593073b9879d27f1430d214b3a0d3b459224078a3347bbed0b7b36d38e15b37115389f9d5a8cfd75e0fae27456cdab486ea781bdd9b9db10db3eb557dab5312f27b0e1bf344f67c8aac437eba00bd7e493a8d8f3fb30af971033f310bade230f6ec9c427bb6fdc22523ac4cfba316e5cafb3880d62d59c0e449a22618cfe20131c6ef941be14e4415556412b3859d25a6b963da1248cba7e47eb387e33c675768db223b26e4e21b10e117d5d0b304896db90047471089db03d1ade72d20796497f669c3126b0907226964e4061f782c25e6e7862e3fab3f66d38a30bb6dff696bea7d87f88d780e2b294f0f4bafe427c58af16761a098a448fcaa30d6c12307c974a9cb174248205fdd66d15c687eb8bbdcde0ae20a782575739f4cca4cc69945f19ffc505abbd6c4f8cb02379e36d36756d9d895e9b888cf30ef196acfd25bacdb874dab17f881b72b99039f3914879ee192d6c153f4b8cd6af1a88aa788f27b22e3fad249126d673a66309c0ca0e327d250fa93b5a832f754172d84ec07f565493fa291ff08415923dfaaf836d7ab41b06bc99a0892916b2e3f84b49bb587d05bd7715cc7995ae295a926c29a55fa1cd30dc94c9ca03e5ba0ead6fcd4488a58af916ec97f0be2b0b81278cf60aa1f5bcb3a3d806ed09d8d6c722c412793fe4b7603b211b8527642403f17348d0870989d6948f2136301d96b9157ebec553e2c22644d94a031476bd5d7a7cda3c569e0cc3bbdc3303e16afdce01069b8b64e31969a71528b358cd3cb6bdaba5c589a33351bdbf68070738f01206eabd02420c529ce9772fcb360762804aadd68c9eb05b6c8bdf4701f758e0f6126a6bdc1d1067b25a9bf4a292f23f8a00d5d46c890c0ac257f09465f91d76c753cd4e49e1f48119d8f25d09a00fef59ab22525d699403fc2e9e4d6b7e3283f33bab13562fb90cf1f2d39aade36fe81233a65db385a5576fa211bd457c2514a6e203fe623ef19374b71af0aeb726fe75cc110eaa7274528acdaa5a038ceb91ebe10833f9752d3798929e1178faa72f3c4305d91e5ab47b3cf815ebab415d9976b7f067ad08adf5c6b324f5d37bb78dbebec47f5b5f308887d5086b2528fbeaa1f6d54aa398514eb6be419cc9f19cb73b1070d52e6a22a842a5142b6c6688b842dc180bd885e7df787f1874b959806b682feb2405639c01c253e1aa76c64f5f8915e9e85c8aed96f536c82d928a3979751677e0b3521d4589d917ac3bcc5c54002f748d6c6431a7f765c183bf6b0443041ab7b12e552e29bc13f31df7c1b5a08a4701ab1792be67fbc17fb3c602da3304013f83f37b75a40ba5af42bb08c24ce48ec36822dd019bf1e920384e484a0a80bf80a8df01421028e4fdc91872b2a91469bc16c8e90410e75faa8ede88dfb1d54dc0696cb4210393982e497d43785cf479d64a7dead2126b6448880a40cc7f2fe94093f688b74e381ce6cdcc028e3d4ac0fcce8eba22ed9f1b5e7ec05a4ed1bbe687068dbac8c8052dab91dcccb055958512ae495f615166f212a9db91fa727783d60b3d0a10fbba53572d252c5416e013fb3d5f76433ba97495b56b1a505943a7f3f56706ea3e34cfb24521f4500c064d5211f87ca1b349cc2a868cf076b75b06939017b7f673b1b05c08dc7cf4121ef3730f4b89414f6f8c7e46f9720116d57c2bcd24dc66a0e40cd1858d993146bbb932217019c99b847b105a406e082efecdefc5bc0a0319ed9c5653e17e020abfdb73ca53b33d78c0616a4b9f56f1ddbcd0870b50ec835dc0a47c4f047f61fa2358646f3d3e832bf3e3b8052a6a1975e42eb53a341f663f41d33b43a5aa45c92c28d0f7a3aeec0893519fbfd5da8772ff0bf24cac6ad9aa77d17998bdfc33c5eb23fe7d27b5acc9690229bc930ff9910ed5926f32a9330768fe03d0f1ffeb2f6e52824c40a85555398f98b615d3aaca82b05e16028156e9ab82d4a5643f9c819e5899d5d0f868c11826b17c1dc6eb4a83c6d9f337bb30fd317f2d08e64611d61fb743225cd815afbeb5c347307cd88429e63f0dd2d11c5fdbd55c54c711662a078544253f2c4d7d4f4cdf562720555ef136b26a94f23b4816fba81e23726dc932e5c331fe2dfd48e99bf173c65111986c062d9494739f589385e3e491220e5de85f2ed1b4cdf52a9428f765b8c0229a2fc886584335015105e559e99f6bd6b5ac48e5fa4a2780966ab50954fc88fab59235367e10b1f93b6757c2414eed470b35ee3f9574281e2ca8cc91be93c2f1d44cf444472738d6573ae92b9b934fd88596f6c31a75c4f7d74b6f550db01b0ccd04106a2a56fd3740a94e3297483685ebdaca3fe6ff7b3ac387f65a4ec16705eedee76ed2b75541b58d7c6a4ce46eb2fdf782c60aa9315f698b75b29b77d7d49fc665ed3eb7c64ac6be5c33d3ec4534d2de443d6244dd31505884b14f99a2b591b19abc806138aeb7157566efa6fc89db2bda1e650858078ede439407541e82ebaa7e383ed917c916f85279265f50c1a950ac1981f6bb9c2a58291aa630866bb80c98c7f84fb11cacbc5106a05b43b50e47e37fbedf1484917732bf671cf83c985f0ca7b58228cb7aa2361990bb3b7e1b7d15c9f8109199843d7a9e95392b372d53174fbe21439ed1796b0286e4dd9049e06041a1529eeed964ec5ede3ed04a647271cc5defc26f50002020390181e015a067284747f3fbc0a0ed990d3f861a9a6c56064ace4bfcaff90147979c772b6f2200efa295a952a18c9cc05ec51ff932561e4a8c6147e5ef5268cc0a00c84151153821eba95b7927ad676a1de857ace265aee2347fb8d147400086e42bce1a3ae682295f0289e04c23ab45fa52ea49c522ca1ae7acf1e47fac355014ab125fb13577a883c1d86c1b582bf5d736e7d8ffdd911e2856357c2fc8fae59ca363e492768d5241d86c5c08697c25d35a8820fdfed51a019d66047c1cf523806f871d00a11691a9e49f92dd2f63a45a297f7d8178daa8a3716bd0909e1e8c908b9b1640b8e8f1fe4cbefe473f88a9fdb2a8b798853dc87066b2b318bd4b916ce5952f1de9d276dc9cf43fa280cfe1a9ebf53d577f43443b771b15c3fd34691fbe557f232f6bf408a1ef3350219990702a6d6a689d9b0ac7843fb1b78f2b88c28b310fa8a4bae5b81c85c8fa6684bdccb0a88f5043a2c767cb52971cd805cc0b6cfdd2f6f069381f410fbb765c877b44cabf2a36a64dc980be55159d715b0ca3a44acc9eaff13fbf056dd8f1aca58ced2f480e45b34e7cdaa81653eb8ee8ea974e9d0985adfc918388d5eafdd4e760aaa71b3bfd0eef3144f87f7817761a542d8d4ae7c8bf374a83b13d5e187c53d6faca56a8f9efefd31a25a55f72b71addca59dceea28a18f812a0101a304c7d1a862bccc854e4b87295779b868f6cce8a592fcd26e7bc03dfb0c39cea874fa5081b4aa3923442485ca8e30e911ccc3ec2b0188052377846973f1ce9757206b276f29a6b2c233fa07214c0b872311f71be3c98e0c3d1ac597cb289a7a4a3aba7806b913140de960ab01f9ea4f4203d618a59353b97f1bc79ee892016dd171d654802b5083845d135183fafb2a06f42b132dbc2ac4c5e8daf333fb54c26d5523343d0af47bfa1ef4868055f8707d534b129cd03cba7cf56cb51985457855853a2b3d2075fa1806443d19636ae7a78a9f44f695ef56255961f08b284f2df4b5b061a88a475cd83c891f3095e128f9a5afeca2a13701d6bdd4e07f3e25e76882889a4659e0af0a95e0f7ec4a4bc0dbcfdbbaed81542bb89e9c176d1d74e0050f3d0808bf3b59d22eb30139b5e1112a9b5f428776b9e18ad6207fd2c5896dd07b8e397dd2c821286f0af646cb6248b61d63bf04b924ec1c7e6833b09eb7a705277aa75ddedc045646fce8054f81e1c5da24935c552782d51a74020c427ff792bf08500242104c7ec6e9c4aee1c1208f7d86b26b929fba2e1d3f336f59dcc59927dcd4eae126d9120a8a4d3c2836a4bf6386c272eae78b35af02e3668a3d95f226a7c7372866cd5a6afb19eeffc792f8f76fc59493bc680bd393e10373fe82a6edf8292f957a18f20555e2c8c206604edccc0a5a98194466d1f67659b674ba756606a9bcdf4edb489772d20f9ca8edc9e4608b3080930c10f881e50319e2b251595bc9eca576f5229bf450d1ec31e7e6e1baf9e587ec7d66a829cd9daddd29e15d9d0972ad0e8617c7aece5bc07490153b24972f6ae87dd9b5cfcd4a1106acff9dcafe23b434a311d0febfc050dae33c59f94b25b8a0177114b0e72db80e263a689e8f7ad0780dd180c5d6599ba8c932e1b499c3c1db8e45d74422f0497a68559205c01562ea2e6b20fcf04005b66545be37bc690e28f3047f3bf3400e94c0c6abccf03692a247c52820f5d30f3df5b5fc17b75c65be106f9855b84e697ac93800f2124464ee431d4def02371dc27a3674001b44666c9bdcaa4e584f684c60096a451147567a5a80d02df4d3443d8272426b06acb109f6b57621c8fd5dcc36cdf43f9e6f91213b542c7126d137fa9b8515414486a13907f78346c3158f09d8c94f3da78daa4249cf0629eca035e0c87f462772a4917b22b400c67ed7eee212791081e997f2bb167d7960d0741014f7e6c386c740b8cb2a91ef368089eb74a60ac5b1882957f116bea7f10dc44126da31cc956d758e56ba48a6050bf44ac4bce0d6b311ffd27d4b45a52538cc0e3fde4e78ee57c3c80049279c9bc7e5163838123d0e087d6e727e9aacfa1709bdfab11c167c348fdfc50190884261ae99b418e9fe42f727d0447899a58a2ebfd6e7e6f252c958a0272f3577d1dcd8a26a69456586c504295dcf81f1fb4b22767fd9741736f989a47a651de749cd339c8aa4d8b8c2782acfe9046da6c5269a79d87f8047ebf41ba96f9ff67d40a8ff79903ca3c81adf940efa3951903998ae5675f8a1345d982ba423ee44ebdd87dc99e563fdb12f661bfa912522da755e2660e0480c03a0e7a6ed91aa7e77d31de16212f722416f786c4e96fb4a83966629302ff562cb2b976dc17c05397959dc34bd1a98497b763e52e7bc4281e01bf7f120a724bf1ae77013bfe57b62e07dd0ad97ea285715443a68490d481518a15049cf7106626f0160b56c16320daec2079962d2769ff93a26b518f15120a7e23e4aa06168d6c19d2de1af3877c9780c9b1591132958c7f4c1dfa0d4f412dc1454f93ac6b1cff64c38c7557ff396e7e0b8931f7d448252e476204f572b505a8ac8bf0951b4e86d58b0cc8ede420139f5481a0918d6e01fc8fea4350c14b49baa38bbbc09058175dc221c6e54fe12c00c03efcfe39634e9ec75d68bca761f6838bb21c552cf5bd3b25d016dc175686227131ef7a29a5c1f4083d5298e736362e809afdcfd534f402df6b4e7509cd11700a5278ab75b2c6432808b0ee8fc327d47b62c7c708648e99ffcba9d71e9a06fdbf0ca950fb6bf0f6acae2dbfeff117ff1a4ac65d87922eebba61f335e30fb09a6a37faa21a3d5a945a913581f5c94861749fa18709055e3b9faabb035b03a1d63bcaf5cf9c842712e7176eedc0ba17f565a1c5ed39e4e5154c5a301a4debdf3ea382dc6532edddbbacef62cc221d8afddfe7dc2637552369264bd751aaf486af92bb005cca55a0ca1631743917aac2ee5a37b12bd812e816131cb42985875728c1663b917c27b60791f708a14473c6774fe9ce2397a9b970192fdff02dc8f92929ea489536585e550feb4fa7ecf759a78eeba08884523d13dffbb280fcd9d63e9fc2e9c5f3d7bdd0b179eb25c12a05b2b3ead214d908ffb7786d29eb81f4212acbcc6204cbfc54098237d741321f110c977e10bdbc262d7829218244bfca2e2d1a56bc6d573ee37f0ece726f35b7676974b6969f448a1984c05c5e3fadb75a81cedc744f2a6e5a2ec44a253d6ef341c3c40a423a15d3d6859ec5ae60c70dc4d570343d26cccd494e777dda8523713e662a7a5e312cdcbe20d5a799f8f15cb50e49daeae922bd9d12e60f67779e1cd8bb410dd98995ec498c92de060a3d747419cd2fd98efa32257468516372800f6181db554f7a7d8748ed1d4aae35242ef47fc60d7561a9ddad2faf07f01e95fb76c62940ef5e7d0f9bd0a4e19c3fb87d29ba4821d319173e72644a4d61563cbf0ba0a3fa64e5fba049184fa3e0147bbf00b27ddb676a6f418e9f7d56d535b1cfa0993866201a4e3f26cd3049680b11f4378256ffdf77cbb8ae54b657ac3443c4eb7f58d4fd22057bd213b69c588a4d29258c09239871481119b282a0f0d617631f280f4cec769cf9579a9e8de471e4f1435556f788266b158bb4b0df30271bd563efd1449aca03199b18070f94bea8d132b8d74de4292d7edae3a12b411f5c678f223934f8fe93fdcfa31c153096ac4d16ebbb84fab19b3d70c05bdd5d2fd1dd6ba65b18e44ef753bf8a75d1a5aed0314c28b54e9a02d087f26d77d9c7f8c8f8116012960e27741c344810d83f89a3bc8010116508b0a7d9f7d5c0cc376839282da687eaf4309093aea1a7c2f06e95e9499c3244ad96416af48f2dc59b9268dd3acfa0b25889db251eb6abeaf85a5b2190bc071727ce524abf3a9192c6d2c1a668a053d3a93679c4abcaac98ce08e82346d150c1667b6b5819a1bc9485e5daf774120b3ee8ca7395ec6d1247a617cc186e953b574161fd85e92080dba7ac547abf7cf4f535d8fc51be4df5e2db916562a3c0b4faf03314afde1cda2075274f38ea17e5c053637befde8f713e17c20167e38a9fba732845ebac1a60fdd9ccd6e6e8dc14a0109a219e3164a8bb8a24eb29e42a80cf9a6032d9521bf220fb3692396daefc6e90ed266c3a6ce371008b11443d40d18f1e9c960712416b74715863474fb0817fd41ed4ce946d0a546edaaf361fc38cf33880d35ee9f30dfd1e405795739ebff77df711a3b97469fb0757b9b3cdc007138951d73e29f9be45b660285e62edaaa12ed7a569dac00913a2a5630292823f15f246e8316e13ec50785eb24cb4a554599b11486478e9f7ab0760bebbcab022fc6ceb4e325597f18ce5038ec78513e555f37a197f7ba60f3c4294112c5c2b5d54231159489ac31860a78a7b967da4ffb71cd4ca64ca0b80db7f93ab2d3df64bf476d5d4dadb55c3904d40f5395d2e39dfa8792073626bd23e6fd32550307f9f56ba852929904ccf867ddc07aa3f709b638bcd0d44f2460d6b932423efb551aab7b8c0dee2c5a72cff4337320725eeeb8d687ed623ae679c903f6d8e82b757ec1d6c466f1162e9c6e0f16c98fa7ee8f5723470b5a76ada3e66790c7ceb12987c1c08273c1c72bf2b38bed5ebe32e3c68ee51f4d5f132ee23067a6d6b64ac8305306fc11494fb04bfdbec36b1b764b9b411776ab828b11207360c4ef0d50ba509705ea855fb74e5134d9c5f182738ceb57cf79d8e27973785339dcd50cb7fd23fab70a2576bc4eefbb95c57e3604dc629b099434397764519569c16dacada32d59d59d139fe82998a990ba7cfde1c8bfccc7fdd23f4b6a4694d1ab96aa8952659689e710fffc0d57f4ef3e12cf08ae6aab3c298e23cefde2411cb6922165c2b5f27eb253fc455fb2839b0e93a7c2425ce94e552c7449092d306c62ff73f243cbc930cb76bcee335e48f28e806b810d5445c7fe9344e46fff72ba145e8fc7343289938475c3a8d6bec8c5431afa84e95e45ea69106daa8334629d942cc79e8dc5fc1f31b8c504453bcb68567ed12d86ad4b131ca6210b8fa086248e8dcad1566d4a39ab30ffa9b35f08c9185ae6c6e9baff2363774e3f4fdc3b16118176a12d2d37b6d086a13107d00edf782a9183e8c24540cc386ce474dfd02212ad86b3c5828f0f00552bcc5b0ac33a8f0cb368af883e5cabb5be3c216b3190eab5668d6114cd56a274bafe7ef92416151e74da3d6d099797642ff271446278d426a6b95daf53a19d5aabb673574523e86d3d92e8d5423aeb0b36edef3e5af470ead0b3a696df05df8317aaf0df943d8c7cd0d2d5e2787b467681cd1c1702744353aeac3c21ffa2daf1047ce052f741a64c9eca817510ca0b3752d6ec1c651335b428b7b7a8b16602b75863e24644948003c0363b875489e27eb9ac49ae5cf411895ff4bfc785785093de23c7cb1f4489193383a7cfa99335002e1a8f814083082fa6e393e8d038c2a0f70017dd5456d21a3bd73cbb20c9b4e328220ec065142e2d71118323dac0d80fc2f18da41b7391f70ab7c7b1df38d1ccbc1d8cf07677fc0c74fe766d12b119f4cbc6978cf51ca2e41726e6ac1f2a45ee583cc0b1eef4ccc2713e6516b4e38c20a321d722099f01ccb77f8e1eb566892e2abdd8443fa961a6817cde97634b3f14d416a4ca2715514ded8d86275fae5e5ccc70f4e770585cfbca4882b3abdec4f629138a3fe74a584e83c0ea1d572746733d97a80041a4c709f95187e16ef2afa44125c5e778b2801bdac8a863daf508f044fa7e160c068fc6e9f2360fa8ce19ccc11ccaf6285f58180849068da8e13035c138729d0c0d020c59cb6ead149a2019ca08bf5fafc2110030b71ad7af158cff8c937490b82855628a701f0fa2f265726b7ffe97bce702b62e1050ee6193b0eaee30eadb47b620583321d017b8a98c453bc096296c0725a60277e9046be87305c5b72b98ad1fdf6a28ce1b3abb24bfe35334ca1587a297b58e687639c5127076de5704148e99737f8eb72bc65fd32cee53069007c0ba1cc39abd604d6244863035d137affb749fea92544488a80682d22e8d1256536398b7334f64abe56458b7f9cff88404098d09ec393cb7aa347857e00c31d7b4a39726cdb30fbe28c5cef3a2ff6ee65aef466aa439fa32715e473955e0fd813592c67ec635469683759218748b38a5a2ae3d84f204fe1299de2bd61a783ee1ca9f77ca35d6c1e1131594962a5fe52d2df4c5001f2fd9848160e5eaa7b9ee55624921001ae98b317cbd8721c65e7a722e2e9693bb8eb0fa28213c5f5033bd296ac6dee2569a8490d5e361c49cf8f1a4b4ae4c63aca0bda911e4772236498c717ad7ec721c75df69cda4df052de9b4c1ec7ee801c6bece58c737e417c9f7f2bf478b2dee9bd9a4bf29f7ff1c60c426ea7db14df501b2c47ee0be5513a808baa749aba6602c272fb12dad84352edc1a8f0552c4cf8b6616b194339ee5f49e630ebf8403c54043af51980275c4d6685a6bfe0679d8284e4b6242c518796dd09f4efaed12b5d10fa8ce37b29eec1e6b214e9c1afb43bc4b83f07d4021fedb98d42a1fbb43aa1c5672e64a330df3479da1b566e6c0fce9d8ef03842b9a27b0d59e8fbc502fcedaa4b7ae2acc96c3afeb7f399c8c9efb1975553d29a26777d31f4b26eca50e5b51a3f9aaf69c50854d5a52c5a88153305e538d34a145f39a0a4a5db7e1d23f8cdd6409333da2163f7cf027a338a7fff9fcaa06c7b605a9d775020c5d143cc41ede5a9129daf4078cc5400056b2a1a52fa20442b64fe27c870296c2856b85c3611c9d8c02863907609e66504421a0aeb8785c5596550560a5df1c9dc619bc06d71663c819cf473cdc47e08132db0565b5aef76a0c5ebece694767f07d0f917c63cfb26b59778d9133467f6e8d6a447b37265a3e5dacfa44f72fdac2452f11b60fff7b6b307098369f1fc6e98487bb858a54dfa34b66cdc316b50b4d36ae036b58d19014d9ee7e1e63556e36f629a4790c9217ff46167d50044d5780f849faf40e892f86ef52927fe2c87d8e26fee235965c31cae9d454734b1ad27ea83e2ad0c9b01a3558d9e656c4fe469d4dc61df8734e6413c8b328bab3ecff1d88265821e5b88f677655bfe027f2eb05f07296e7edcb89fc8d4316373dc36968812d7c2e1325c6bab26ad922e9697fd909fc1d8960a9cd3a6e4f8bfe2ce1be1e794247df7cab039b5100ec63f501ad220945e84ce54ba796e02706a929c8793071305d4472e7bbcf99e966adaf5ae45e989529fe8a061a6eb01654d467a91a467bc9ea0fab81a4ee4afca74f652060fc38712d541eb691345bd64ba0e61fe93b7b8d3a1517f020e3630f675dd2dc05e1add7056682dd8eeebe262334bc45d79db9760dd03e2feb6e399c0f2eb6c407e63538093199c4bbb418d987377276902e46d6c8e0331769a2dcfb1bdd77f3655796a11414bc5bf23653ed95587250f6652a6afd85112eb067d17a4bcadac6e875f5f8ee53c4e53034a59a9dc782c74eee6b1767270d1ad4f914bdb916c34cf2f584413997a3aa7903805d6db9525a2e26dff147cf1615be67742c732a0af59080fc3e0f6c8c34200fce647de716bdb9a0c97becab09047615336b1f3063f99131e4fcdac2aad9145381f8ea0f368b32a254473a8d6c13783a0105c0984f2dee1aaf04e56d6c9455e271b3ab7205d2e2a8cf63656dc2fb6b6342d84e952328d0bfa54cdaa5596cc9628caac154958663e0c2404ce36a4f55eea3f13c9e1afb9e99a029d8877df1718c50db82808d38eaadd1f084ae12741e9003d46fed7be5ec9492cd8d915e8c0cae9f7b37c11994c2256df6d92fb42932d0a5666003cfb8e591e31caa2a87a4f329db046c6ae68458935604d0ee27c1b189bc036c2220dfdce59ae41b189edf4df2521455cf2c0c40f5f15bd1144564b86c3d613dd25435e7d859bba1080ffb5f15047b8ccacf1b787e68b3c6f09111067b084e705d902b01272617c6094302242ea71640378808be169bcd3873842d5f8f5e7d3852a8dd1d830462ab1169e31eee0e4ea478216527d5e42d91b352cbe7d4a7dae005a915a0106317fb77cea4cb9cd64a1df1c558608cad91b36b530fc4488a1f6e0e6a6a2ae75334e277c7bcd991604a1b8d5bc2dc3ccc19f57aee4c513f50a68cc632ec6794978444b2274eeabb24a01737f0ba029cb94d69601dc25de29eb236cd6e116b98779637ab4a4b6e1b4f4379623649d597926298c47b12dfab7caa2d8772d584e8705f654aacc1c547ae0169821158eeccea6ff5f0e7e3c9eaa7f9759a4f3b026caedb2d5d11d0c6e8f1b1c6913242a70d6f7cd653b33ed7433d998271b9a6128153323e124009613d39ff818bc48427e0578c43fe6293362eae75a2bcf9bc35789628db7f48452897f1a792f2286bb101ac1bad2800886576072d8feef4bff314abed4b1b5d2330db044aad4ac4c5ecde52ae7daaf8eea8bb87dfb1be3e954f107d89a9413bbec70358169b9edafd1f19f75f85848f89ecf0850cd0a63eeb55973a78d6b42355539d9905ccfa7b18400ab99d7156dd7721dda7b55767642e69caae3c891663ebb74a606854ee807a803bb173dee860788d9d68426f836c406e3e6cf3236f6a208b4099ec0711977f93ea421812a21f59df21efdd42c2b423ca7bc7308aad77c27fc94672cd7c5d361d8a3e9f1e14563c47ac3449c6aea00c357ea1b3451ecedd55c28e49984b91d3f142d4fef870b89243567b5b47160e8bc33702b711f77e4aeb1d19b4ac204aae996c56d00f0b43ed4d8914abba8ed9bd2a0c83ec53d0c1fae75fbec3f6a046d73c17cc760fe09a0815877718a1ee72c2305589692126dd8be72286f043f3489d88865395cc0cfeb37be1a735c2cf81d26ede50112dd89edbef94f5ff2048839059af54ffc053c4752601ecc3bc119ac10668c64564ab64a47af7ad17f74f14d7f4bd838c229a6f0ffca2d3c19b5800cdb12732e90dc6b461561f5b15c4bd93e4638fb37a5e6b4c439f528ec3338a7eef9a45b2faf63666ff28f7f18573ccaee615367847af74a27d92f7918f0952482bcb5e8557976b59156dfc3ed66eb8d478427b992b9608754368479139e8a1ef7b8a02256b20bac0b158c0c4967443f370a95655a23c9cd3881d4ec2351a276962fc3730d816d9f8f33a69eaec273143d7337872a6254bba507dec741e6ede203d6bf425646f65f1f9832f7a8b12cd245baac2228f215382383755f925cd801ede29a7efaf265f25e2d8e16fcc04630cd72dccb5b62a96e2d0248fd66e2e0c3a11afb03b87f2ab23e44b6117c6d8c37eb55e5f1b55ac1a80e613f750c41f45600493e4a7d0fa90a7c10e237b759ec51d4928fb3538b8890e1c4ebc406df133e7c3620bbc687f3b4112bcb2225820bfc469f552fd43dbb2007800633813d0a0f23cd261b471ef3b8e2ba22c210f8110b5e8abcb70e49306c9c79741fbf7bc9be877b1191ce23d0602a850c173e56b99d2ad2c005adbe81caafa200444f361f9f5fc2dd5375c2e733ece0737b053f33ff08f3e40df13422d17d6be2bdbf233cfa29455304098ec3efc5a8f6903dbc16b2c3aba0ee6657098a4a55089fdf633f976d683346ceb7f88836f68c37fd1b2895db085a04573c45f88c877c612c5e397ae3760e4cbb59354b4a644c8bbf9418c8e446e61c90830a9aa3e44deb3cab08afe8b56b4f2c09c0b9f922a8dc0ff81698b0f386f03adb03e4697f2a001eb2cfb682a000b72d99af9ac24b63b483573977d3e4a1def46ad0e19e34f2f4b30ead52128c8c8232d95ce58c271904c27a59598c73772630684aa248c8a85049cb346835b31ba4438771d77085b5ee5e60664d65704a955f840c9fe3471eb0c8f2a42121989275f4b23e00e7f440b771fab09c48b6dafebf058c5b10163834584850093dc7d4605f466f2c1bfeb1031540e0d5ec5b0a85eb54f1b2dec7ebe77174a7b2d5005c55bd2fc93c5d0497adcde1efdfc303e6bad8f63ef4506f2e68b9261f2a163394374a5eee86ab6d96cfa89dfe951cb89011fb6b38547cb9e950f7bd4688d6558d777987979377d4f9b32e0fee9727ab32a9530dac913e3b93c0cdace24be50e087a11a0eb28d3e80d1118b2693f78b0fd8ae259dc8d3f8629e2d384c3398bfd1d208cc2362e5e1096a185b1787252ab1b1bab92e353887b2523888efe1893783273c49613e949c9fda18d3dfe42c9af89179e96de549bc2f44d079184490be116babdf065f2672be24e6509ccf7455cf06b10abe53cad623348fee3cb1cbec6777e274a2c04637f364522d39f3f74facd28ddc551d249fca356b8bea4424ec0898932ad2c137d9c9477d6da0fcb0fdb26dd6515a85ebddf1306da0995dfe17490e728942a7dbebf38e72df951b17e93f81ed7eb4f0eef1335fb7e0a71eff2e628ddc3c24194dc0328f18bc4585aaecfd6ca455556bd7e79bd2dba466eee048ddbf57a90ca4078617b36e2833f490612fc1dd18852159b52bed82b125f8570221bfd8e79339a038baf91b30c52442d52ec7ffb1efe6f3796fe861bc88ad06918e9fdfef09aa0d5c1e724d132a5744184bf836525aaf43e7024e8129433e82b17ce361fa4b3081c91ac3e401aad2f8b70a8488095218e132b07ed3ba8a2367a18b0485671ae8ce0e40a6f69dcb5e783593ccb43daeddd1339a2d1b2c2f967d9741ef28b14e516622676999dfddc87f8b68e7e92a7561898db5e221f54918ee6b9b834234f8cfda6d486d033494616cd5f92046d88b2a790aaf793eace6ec8562411606dbb52cfc70b9a8f9f1627e482978752a2a9e6231883fa12bc3d9970b495cf1e1f199127f7ff5248e7d33f9e7f6441a5dfcd6581117d85e2e983867a35b9bcf48b18491355ba47e2eb5d8ae147eddf4fb6d53fd872f83878c158be843a1d7624c46299fd7ac2767028265ffca2d891f3fc9b768e41ed2495359dc703ab2e5ce0764e0945b9d16279aa5285186fe38690bb1ef52b60db0a26d1f4594bf1a932cdaa702aade11b515ed1e9a8d9d19f6d4547eee9bbe41fee70ae867b19bcb8009715ac4831d4ca220a8c0f79faf5ff61851f737c36f7def3e55149c64db4a88e4a25773a27cf1f049ccd2a7fa1fa0ed1e7aca1471fe9e32257873321294969db3192787f0a0ba58269dd9b913a3937a86607799f001e11ee9f6f95261b8ebab5fcd8f2a39984d3861dfdb06e2daeb9e224e8f11ada45e3e30539d70bdfce2bf434e30c5ad9104ac3767c28364030a0a79b877f4ba64bdc570038e35d4cb95edb1dfe5925f26a314faf6aa511baf2e9e458318444f641ec275b949171a4bbdc56d620c86c9313c078f6d48f98c933400f5122019434ab908dff83f77466ffdd8300fe188463acac5f144aa07c06528322c2fc72b97b2c23da1fd0252d320cebc260192b197693c0eac6005f4c4c64f3140b53e5bec2e809a83f23e048070b4417090c4235f15fa43632c58cf29407150bb1a319107d7ab74a177f199d1dbbd0ea37c9c29a7d71eb64a0a04c084506f8fdebf01e2546989ebeb789b718ba16fa248e78d855b37f10aac11b6b4ef8788811912b47560fb4e89a35467ba3c269ccd5a1e841dcae055a7661d390b86b4ce6b947ea4985e3ac319e2517d79b068d018cb3627e72a6e413f6a2a0b21eb1ea725aa347d4ea33b3371126700507d864b29ff764a6c11c06a9a3e06d0e4c3d665ed68b810e52bdd216175506d307850b2264e91cd55fde5bffe7a4dfb88370f56d31345045011b652a29df6558f3eeff05687ae7a2ace965fa04eba4b69748bc1959fff73891a97120ef224b360ad97fca16848abd6473919edf9c2f10d2b1bc9c838f9face2b9bdf1a30904660674f677327d4bda0907cb58753887bf8112720edbd01c955cfc7d232e62cc7b856c1f77bec3ca6e5b680894d4414e08f604dfda8404ab0fbb23d6d24f7d5d11a2222b729542e23582a8f16cf4ae84312550ed2ae87d7548e28f9aaa01d43d8b9bd242749f02e62843e63b83af7db50ecb0889bfd8ec4e77ca7227d73614f8872d8fe9126c48a1c09ab02a4d6714b3b373746de0e0355182c48ef0de6a48f65936b7da6b2c80d774e0e26b9cdf195ce6733189f36c9d724af4a1170841a398f5d3129d2a16a8e2e826631e84044ec1a6af103ebf17659355c8fb89b52ca57ec58297b0b3a0a48db4798bc2e454d6f9e7e423fc020d4266a8d1e23db560f5538041621fe867d0555dbebab6cb4819e032ffb3c6a30631f48e39fbd08421acea93e0052cbf88b1b825a8dd8937d6916cf9976c9a20bd6d76c88e2d340e86dba2d06b132d00571331b8b0c49f46e249f962510370a3e928cb44958d1e82e61e270ca394a244460e52db8ddf9a64be28a9b65a99ac81832e43bd198112e0fa1a531a26b06c293fc226832d835595b6a64e29a27186ace0582e7f5dc405e4ead1194255e508b5edd717695b97efa8995ed21c6f33e486c8e685bdc814cbb975848728dec309ca711f6fe33a1050f9bd06d23b079761250032c8c998be3acb54b36e3fc36859d9f984c03f394b3a8ea9e506ea7ad7a4738cff453221e8771c2809971871ec309b8e735b36cf9c148b4141459f381e8b1561152b596062bb14ac757bd9bcbcd95bb6610fa691de32bde5c87d92570da39dc1bdcb56230669386442581f729da2f46f22251a1b0fac2d53259ae86f7949d4df3a6fa412f333b00ef7a362f666346135cb7a03046665a206af6bbcb1643e390d58490eeb840ca3812ddd120762f49fde7043a77d7d531e168b8b633d3c2950baf188a2626d24d1fcf71515e91639635ceea33cc3fb486bca66374e1b7811e5aa3b85dbff62f377798e717bab0a84530bc7ab40cbf1f532d32f67e074f69ce2088202db14ca8419eb5ab4da4136083fb5253f1247a72c3992dc6c20cacdb67376af4605f6d1fe87bc170c2f5bde76d3ea4caf085f95aa4304df07154e3bf3bf8061342e74330ccc62d05091af6eea6e7bce855f1a8844be05b1677bc8e9e2bcc4fb87ae8dcdcb036bc79c747c8da0aa81632c12356d0bc85b66d11374ace2225ec6fa90eebceeaab0598759b833a40b2224290adb91c0ec9cf1d741d37b0d8f8b7d76f9e462868cff5a803763a4c11dcc63506b9e89e4bfaabee82fa7bfced753f32a76b66e3b1304a8b23764491c12ad9e52694dfca5ea864470696bf1eb71d47c9a4e9eac38871191a2ec0bb72d107a9f1ce93fecbb999a87cf0f9b0a245a54520b87914d7ffa048e3de0d00f6e1d77699d24c8a8dc944386f8e047fb08200e4f64cb74a843682152e602c3581aa71f4682d2f2b5370e46b7abddb62996cc2821b5b44962d141d8d516124c1af32ffcdb18c466ce10acba8b2803e1174c98db20d0e842760a7a1165b3145d036c2271dd6be423f36c2a4ef738f4349c9e0a9bc70cec4ce940a59e60418b1d1d938fdf462d1f176d12bf05140b78c4d500eef184e17968280f01889fc66d6f66ec00bd8fae7044b8d7a1273ee2a5860bb3f27f727c169dcf439715e79fd75b7f30a1740101650d906c212102819224c94afaebadbac2b9c5037951b2338754fb18e841a70c5b4a0960e36743824bade286f997854f82d228077d4454887be3e71722e469c738d05d9536c012b95c9678791e27d0d27a3f58d4651b96425e1c5c11b5f18f6cfc0cfc673bcae3964c83c8b0932c564e8e240c33d8526f8a7f56d4a9101dab88499ac5de0a3838b704837f98c9685bd65e15058870e90ac648a803023a747c4341faad899ac1e43814f35ac0e29a372429417b5b732cfcce4ff8e8b0bdf123778f4be788b5231dde93196d1a1ef3999b77bac415e7e0e0be1caeae9f8805dd9e1ac40dd88af01dfeb00c035d87d16937529c9c6afea4c977f862be5b4f7425757256dec6d4be9d42f299ca0edc03c71356a4c5eecfcde85ce9eacc6584d4e4b46a8e44b23dcd5a0ef4e1842521e632624aab6f36265eb85b4a00b3cc2b60119808e2a6989b7c718accea32e668b75899147af5434beefe7d1e9ad1b3aa04f97c69c26128c3756f5878ab3eb778d10288dca80d1372c38f40b8839397fc9218b5395a59de0562a10a2d5420c582107e95a63976da3ce6c91bc95194aa7d3d5f1e453d7a3305b81f208604ddd1362e17ee9a407a0591c013bc044fcd987bfba1b1852d046b377adb321ff5422a96659aab42b05a4fe87c447dc17574f993f95961da1080b77f194279c0fdde1c436dc4cbdc46c5937065380377fdfff856c20e80f3ddb3fde742f5d4ef7f241dfe60e4b81b33ab5b35ba305df291055d75f8518771d0af80ffa0b6d91fe9e7446e4453f1de911c2e66a7a8791e3a9007374e70cc38d39925fcccb97f95173b4ea390cfc015ab7308e13f5ca4ac32e41da70d9b1c6276fd1ec06a4b4837e0751fd1ea2dee72296786b98048149c465365dabe4f57d419985fe1edfef912372cbb47079f1e9d83d88d0e9e96c89a0d945b44c0694a8be06c4d9e25ad951e7d102c8d0b7def233dd05e2a5bddaebe85b8fb1312eae03feecaf17aa08c365f3c7707202b8b2e53dcc1fb119eb6588e47b71fc90c1372c09e2d2bb526c6feb60f77513c88a6e2c5405ed8e10b30fe0b5131e09761830744564058d0c22103a048bb6baf36f6a9694a75d3bc9a8a5eca1bd3ebe5600ad34a353e772e25794f1f9b08633955f88b0c172bbd1fa3378461a58a97a8538b566b072e8d9674c47353017676130833601464dba946d0e61da5887246d05f6ea8c02eae05feed6be2be87691ffaebb41d2c0c218fc4dc919eaf0313c705363063823c6394b2ee1191ed5059515511978727280d0a50a48e250b60226dc091a20b08978a58e5ae88ed00f0203b337641b19f1d8d60c40427746c1e9b500e2adcb8c3353685b2f7f4aee8d2d2bc4459623d5ca416d27efc4581a229862397a2002461d0e3184a8ca9da22e4ce811fb5e51321cd5014ffead60a10d085acd736cdc0733478132b3037db9b6a87cbe9d9f107eaed19f13ce2fa94fe8f2a50df0fd1d5351fea5b05cf74de1478f7ed17eef2ad6e319f0dc7d54c3389b56606330358f349416404ab68906e8f7d0d4a466194a6b92b1c97a56773d700bf8f73f21e7271d83d75c85e42e9b0d2e42c3443e9b4aa1f3455207b3c7798461de8421e4dc09a59e6f1e369670bdc5553d0715db295ef7f6a2aebcaac7d40d0cd32c1d01514bc3746cf42e6e6cea82471f044d6a28fee19b3b43a0b0d11b8c0de897a1c4779144a743648fc053c96481c8ff1c5a34ae0071a58425588e530c33ee746372f27a8a3fcd61f362ecd9e3ea1e6f8ec69a8e59fa1b582a707fce5046fc0da6625bdadd41c43705351173d4678a527160dfbe848bfa03efaf7893752befec51d3bec0ddb14b0034752d115bf07aa2e87c3790f11546b0eb431f144b1fe58f8b321d58d52063ad90ebc5f4ab3cddcb677c0e88af862477a5a27233e1f8c12dbceceb8d026e77a11373ec10b054aa3c3300833265925e05e5333e9cfc65ab8a3e54918d1798d1d7cc6fcc49e97c5900b675e8c45e39e2caf07ea86770978ddc210dec0a815e229dc04e2403300b686c3e574490dee043bbacc6a81396b796bfb483cd5c3bf8fed77242c5fe23a7d7dcf321d143199a369ec13489c95dd2bb3aca58786740555de1620d148b6a5bac8017697eff871217f02df76bf4b08b31d4ea5a2557d8361cedf9d18c0114a67036e29e6d367ab46252e2fdc127211ef5b5e397832a57ea7a02ae8d3995c267b1789123766111b23a8c4b58d4551da144e2654e300d11999b845b1b3d716c2a7e5a75eba3811010e51aec8c3d5627832378a70b42828fef094b17574e27d3b9ee931195b27229494d5267a76fbcc379d807390dc15e51552e4afb43366e0a71999ea318960db2cd810da0232bfe1de66ef780132a949f0ddacbafe25230a8f11de29f52f61aeb7632efcc4e09ea9ad236f78e2deeca4061c337b3bd14ea77329af0f78aad1543003632a431f66dd33a418639abf0cc1560006ca20e8258cbf437d33bc348bd3ebc090a0199b0adb144e686b74e0bc0e8e08ea503c6b477c2b89b66e8058b78f1054793a45c4c69aa6e42e3270b8a30f924cbf855ad59d1243a74c77429ec872f633354f495b1b34c7cb341b919aeeb0eecfe596751331ba658f4cef0791708e4e6344dd8121bf9a1175dc963f32caa1dd5cd3533619625b00f4e9f468468c4342652991af3985518b3a5f666c9ac8ac39ec499cbb3ed190ccb3e4071ce74d95dfebd9eea088e3bf134b87ffd6a4b5c2c3ad5ec0e36350905f77e4b3aa080276f7c47cf6547336a6e5a0549f9221ab923aad3372c9781cadd2352a9502008955573e5f847441434378ebf6939fc9cf05f57f6fd37a97429b475fd5ccaf13a21daaf312625948f15b0225c402c084cc24fda5aa55311ca642b634961632e78c68045eb0ecf92589b3e7e1897cfb615e8f4397f6f2911cffc77f604950b12da2c71227318c8fbf898b3cc73d8e00bd8709546ca01bfe9e6d1a6dd7db795ecaa2cd3f351e6e59049af5536af532f81eaea4d06037ee095039339980b7599f6e6204967ae7a85effb224672539142b2935ece20d62aa660317c72f98683da76c1097201d8e6f29e13033ac7aab7c6818f18ccd652acd62a0e65e907cccec63d227f9d14c28be654679fc13245ff70459144f2586ccc27084a1f44fc3eb5dddc23731bde81ea3967234f987c75374ea9bc575b417dd39f3b2c252cc24054122893c4d173d00436644687b670d25aad67284bdd89c07099800d98dbe7bce47a7f75a101f78d4d1dd526412058b73318a763a6b298d5322cfcda8edb59a027df177fb966743a29d340e8b0a90dc3100ccced594ae44190fb2896b4cda15be2f7f89c401af57dfec29e094c2cb9598964d0ba69483eec7fae8dd6365ba0646b71b06ac1e386a0d6688cd81fe6502152aabeb467010da1a191144304a3e3b34603c9bdbfe16d118e1dc2f977fd7d8521b8c337befa9991f625691b5bc1cc46d22eed1a2bb444e3940876e3d4626635a4676593ca3923d0299ed6b1a74ab09e02773d3da1928b4c3f599663328b2ba38138d18ec76b8cd7688cc0e9b2d3fe3f2f23ca9380f80925a62906179ebca2887023e2df87306400cc42f5bd20e14b33efde50c0cad0716d17ad52f41de7e85d5b0b71b40012710e4fa8c7ba3ed8ba8805c9561bd74be6c6168ca8c1e643f9e3947ebf2da4f220a25984148322cbf2cd5dc3772dd5c863f6ed8f2b99e2345b9b1cba50de8bfc04c7d782154d183a3b9918164c361f7d8968cdff346d871e514ff3205151735bfb67e2722a626124cd04a8b795a85cc3f0a97c516780fd35af877f99c082824bc7d3f7818f9e4202b52cfccb7eaa743c11eb9a0ff8e9957da6150283f061e8469f3fc4754df56282dbb2bf2c9396502cac856f170b1491695d8a1a358a54455ca8437a268feb7924ec3aa40cc77b6ebcdc704a907c4135e724be5b3b3fb2e5f76c5bbbbbed1a4e0bdaefbe074d9b430e36cc743e010435c0754cf0be7849cca91c68106e33b003a0b4fcf43236ee6e47cb59b11317c36594a7134fd0d7d88cb2c92ef2ce8aeebae0561478fcd69ebb0199ff4c1fda3cc6e37fb6ff821c96f660e8d461d90eaa7e743deb52efb389f3c88a46bf3f74fcd4e24c1d6f0d16a98e8a0b66114d36ce82de78ba05ac49c3819042deda3788e836133df2d35e92b0daa838561c16a3d6b26a42bf32a85b11e54adb198e09abb8adda092523dddf3a7b6535f74fc3745690ad33bb5a87956ef20c1b6c33b8b8775e92d869143d584d169fdf01044d5b7261b18172a91e338ae766ecf271d4930568c86ab436a697e01131f81083ae4d65af2ae62ed27513464ddd81e8ad73a995c9ad53c3149577601e08c8250314f6fb144e123dfc561339aaab39320975652f99eaed93692da12f914dae232e9f9b165d21a06ebf3fcc2e053b33d5f3359d2f8a523ae964ee8e208fb3f5533a04902cf161789830c5dca437f68a7b4c18d9c4c333a5ccfffa21fd062c46e19281edc7975a8c14febcaf4c10665cf2107c4f72073aed05616883017c94a75c10f4bf048342943e9cbd4f8f45bffdad9e0e569027200ca65144e65fa020513ac1098a15afff3bf781c73406384c6341839108cbcda90e80c145e3b9bf8d705142d575bf9066c92675292200855c3ceadc7ae6a1919f3eab5b5993a9f968ab5fa74366dc1351d032e7f11aff68a426034b1133e75ec7de022b7c423b4cf25b84f3368ddbe926fa8a617f2b3bf23548916ee5f5442c13fea44e9690716e6672c32147203b28b13f1d0202471d037ebbb9faca93b401809475be471abe7ab97285bd6b4413375335e20700c0c524ef7b4655b31a054f5f319a1fd94f8c690c3e150b104f8d0f0333526f2ff3852944ed24c70b855d92040001a9c2f4b65b673624c0530967ca9a32e99e3694649f84aae73c816bb24e11cdd7177bde0eb582d2474c7ab8717e5d38a82326ac9d12350545974bd65052d9030fb480edd806a9e674b1ca4c116fc9fa967dbdc11d205d80988b6221574d9950e264cee74dcafbbe89ec613ec28a11483afcccd308584d9e5d143e313bb879b14ad52ed01aeba4a6c5edb94d9039d85823ab46c634f04e8bb7710488420a984585a81f92de21bf9e4d21e7939d7b05d9604ed0a2ac46a78aecb947250940901698be365eaf1effd6a887ce0ca057d2f0086fe8952e34998ee7f9b47c00b2406eca883bdf968367f1445ed60b61996301b477f0e1ae2e4e0fb5e5563ae93ac207246e66840eaf9139ef57d3d93ee08d1900e1ad19d13bd10708194efd5daece8ff83f7879895655bf5e653411aafd9c600e6e14d473b385fbb7e720ac479f0f7657be9b89ebf0d8b3a90daf2ba8a338d602796bb321d2c3093cbe048867760f06992c43160df1547fcd56ee1a5463c0cf874f200aa01b85603412c3aed0d8c61bd9f5737f3bd013c5293e06b45afbb88c489fd79f648d4ad2e3e21b4d6a5e008d776132d7b7e878f201c1ad2b7df6241578f28f1919a1a6eeadc9c75d71980c8e9457ff7d34201805fe7481df129ae2554b3ce74f1e1f15c09e9a7b73f46780ed99359a525b6228ebacb0d02e822469187a75d56e05c10a3de3948fb657a4f7ffb0b2787349ebda40fb43b733cc5b7f04c3486e1215a4668d4f232cf1d111167a49d4a62c0f626134bfc085c3006cc55367cf7bb4c88baf80d72c1e3fefa7404497f2009131c3ac093053ba3bc5152c40ab5d04a74df4c6f416f5b4b80f28c98811cdf969281b2f0e6b2a0c47d42cb37f575f0d8807f5fb77ca8c4b3ae60386daf1ae5e9de0102accef704bf47a6609513a442d930cf3a72455d25f3cfa931057b8a3cbe43a4054f420d5172f1a78e7b5a47cbe75a623bf8f3d02598a299e2315a8bbc1b68b64dfc3c7a1afe8a9854079ea85c552d6defea6acd75f88212cd4044860918d1b5329a49066590530e0a188e506dc73ccc1a386f03ceaa2e5b19ea4e4b88a4ca8c5a1608a302a714e145cf973fcb2bc70a1d1a1fc8bdc744e8482930b1f2660e0f4ae96ab522a95b3484fcbf5f5fd56dd4c1714e65e622b889fa5150fa3165aea029bf24abe1ac4a6ec741cd061d934e01fb89567f0e0b091bd3a1688a07836de35d463a3eb5c1c80b68009ece9fdf77d65a5575e0ca532bdbca30ed2628e2b48020ab25752bfca2ff232e938e052846b8a51ff4d902ea734560a808ad9bce1a9e5f0c3e9713090b41f36e923bbb104931fc715da7b3b157324e959145dba35f610b777416a9aeaa5e1a15425a2ec7094acad805091f47dc7f93ebd1883213317e373242d246947ac3b7df5340a6ab4425226071b86dd76d58666090103dac969331cbbdb097d340621da134f62e76c233daa7750c36ab21551cc047daa09dd3d6cc504614f8c9a0453648ef7cf34d9f1e754bf22b65ef052f9fc4000627fae577541ab36cb34aa8d8f7d69b1fbfbf71a2e44266eb050112bd2c58e4041ca556f6e5d90b55e404b9a0f41fb85ede306432ef8ef3059ff5296c66174bab36ee6b3394d77a1eedd8bb955088c82f9a38ac1fcdcd10cad500d5890ec1c2cadeb2443d60d2b9cebd0c38c4c4bdc38bcd7c81e26680dc68e21a28d3e962519ee812eb48ac81bae6ad9dd47b5f5813c27a6249a01747ecae746b4260c51024858ef438edf80e4c5cdd67f34e68b78a79d8d1fa7d3c299a55862246686f370455390fbce6997492ffc669832d9b8909720e7d76cc0d32a89796cc465030997df40997b6565eb07212b042f328a1fa5ad8bf2be448e739bcdaa162d8d68caf3a8015a01b61fa53b3436e331b9a5899b8ee17de83c38b3b26b7566a22041f9447989bde61c32f33ce28714636287cd4263a879c698502e04817b2c7faf2497daeb83778b628c44900d92a9745988050f58560c5b4e33cbbbd0f83831a46db39ade089203494fc9ee79d6e0d9e09df28e20cef6eb89085f0d40d36f6aba3fc923f6604d310577447b4d7f9ad1ce47a4366feb5b0a2797df525a3b1ecd7fde671119da83fcc05578ee968797b40acfbfc47f1f3d523ce70ccfccdc3304d9531f64f2ab03ae16deb7e5c47345a015d400198c1d3e9d8db4bc1de99e41ea7e66eb7271ec901198bd66852c9a182d7e2dcdcb5897818416b1319627f55f1c7ae09699499481e54947725084fbb6fd6b16f637a809b1f5859728479fbf5e18ad25d10c7193254b242e0d6d69ab759a16ad00f1c498814fbc0d85bf90bbe0cf4a1af0d9a4f56c5f930f388edcc8ea3a4ec18fd1fbfc47f25357c889dc83446c5a59981de1167edff9cde060c10696d5f2f2c8e61d7f6d7113d8bb1b89217dd937bbc5e9ebe72dc12abba2aa5fc4e10b7a20cf7eff04d89a7c66f9fe412c3c90112cee28c9428cf3ee92713fe3b5fe4e6e25ac89fb2d9759406e3b22d27a0f026cd23809474ff60f8245b992dc1c5ce8ece8434d6d7f6811c6e29e96af6354fca085032074f760a01692bcefc090be6626bc2a2637a1e470a80141776e8d225158943083226ccdc34f713c546657374fe20879b03daa67e035e5e25c484f901714dbf68a6ab91966c74fb27f8a4d7ed7f84ff63cea7c06a4efe67c8a9da1f2dea72a2ecc256b9ff48818a7084d5f70ddd87735e8aa33237f0ed2ebf26d9efa42b9fe512073415275950ff130b290b445016b7c026e9d7228fce52153df91d2684684b43d38f5502a627ce2c02296c9698b0691b82bca8425d7a885dfbe9a9c0f1cf09b779a0c1a785624b368e9fcfd439e58c5165aa722b5f389686ef6daf408612544bb85bfd6985095ae06b7e31496f92edd907aac12485554bf9c1c3859200cacfec327ec6dc31f40f1b71f43995d6cf5a6328a9716a839718625e4ab98b267f7eacd741b51d10963bec81bc621875ee4617e8f3934558cfa7b87a824ac7894fc00c4a395351a45c4b870863207f8477f4bc714539bd1729d1920e8f59a5304196803ae862b31813c88c6a0614fb43763ee87a580ba8cc14cf815c4d84c3901495453d632c56a5c11b67d8ec8ce1c4e650ccd533755de85c307c8847c6bbc25aee39d1e3b4098ed1fcad0d890c2ff42013e4f33d1ac0a7ad743fa11a7b50be165b64bcbf1e22f3ad7f270ea40657cdc17a13edfa90e99959bd1a379e565aff8af3ae1eabeff2ec202c27393f43f887afd3015f34a595e7c52ae156ecc8ebd0165e7a1ca94505ef464c8fe88253a3b8fd8a1fd91a84a7d09315a2cc8c88eb8e8bcde8a7e749c45b6211ae0e203aae51f50d97dde6da946cbf02862ff7ffdcc6d65b3eb5c02d907dff8055a9c5ee759448a5e1d82599b53843222e3b1c0b4aea3e84941802a3a95bc508927161c23c1ab7a5bb12caaba6cacb09b362203d7e6726310bc4ad5e11c8f104b26954285c9178109d10c9bbcd0ec41f7adb779f5fe178c0608dbab216c0b4b2722c090d3f9dd57a3b657f0ba35a5ab2e8b7ab1b7979f0850829dec80f5dab895f524a6227d6752367ac7937270674417bd9ac2a6236f154b05b84ff88d17037591b2bb53c7b2ebec24184109057a668722e710feb0bf7b65d99dfb158bd4dd04863cec6009cfa4ac948c422c0558b2c7805a9ca3e71ad829267f89fbd095f21856fb0cba8a65332189683d9a873021fabc8be1a922df303f74d519688bd39ace340c1634a32d008f7c750e6ab565e76073394afd56c3dc546eda7840c17b6a4fcdee1a4d3f75f5061c80b6a0e10d27afbac62d1f4b4db934140d5347ae6c8a6a5b05d3c68e9e9dd54bda56e85f7372cdbcb861107e59b17500b179f7d2fde20eab1bb2d9bb9e9147a6d83d7ad7961ebcd13a5acdfd969388364e37b2f67416f08bda90824f7f371d4c54038e9fa8657df498dafd570839192c2eb4b3ec904be0e553e5ac35ded047af2ab5df4a8f5931bdc735bac186fbfd65e16a7fc800c8a8e1798b3b2a6dd9c9b9bc131fe867a6cd86da1e888d3d7c2f0ebaacb652e95a6b89a71d32b671b5d4536fde59a5fd241b0a8e09f1082bba825d4f368bfb6497d6da16dd80ca44b07dd52c30b374563de382bf1a54e5a4781f91fcd33f3cfddeb684682a3574d44aa461e0ebf90826197767f1a8d561d1f5ec6861166955353cae70208e101c22dae380fc38f0005aa6fad5c84c8e862cf16ed9e016e09b010d1dc92751c841c575aa94f50f56608f691d1e90815be30602cdb0204c99124a7d856249a56fa96536cfe3c5d6088698202b39b6d5f36e023efe6b8d6ed1e36bd1f34eb65dce7f40c44113680dcaa6fb349e954cab2055972f535ed56c4268b68035e98137a610a835add6600a7f7474fe9d5689883fbd911cd89a6c7052cfef1fe9d424b22848823d288632c7fb0172d5120b47f86cd4909c49c409f26e27cf1bb147fb771f5fc8a94c0fe7bcaa2395f539eb83fafab0877f950527de057a8243136fc45689bf083250698cd0a3853630e3dee10415f73e0422fa85c9ceea2a23cfed25c8ad65e495f84cb24f0470df6ec2e92693b380d15e553aa635564e5a2eb53a260ae9bf900b8572eefc99bace057f1ebc4741ad308f179652e5fc779bba4822b3c7b25557fee6005a2c33c177d66ae4319c93679d8748c41341dd93eac9b6cb1b51a14c171de42a13f02542ff410b2fb821196330a36473b9cb483d38a5eb6894646b38c0b8fb2fb954e0f0c2ebdd41a6515f8b566cd134d7a6cfa6e946d128b4862a81d8722918f2ad932ecd4b03bef6ed51234eb38cb1432704155695001af9ea5f11fa3bdf8ae6f24ccb6411b902c6f1d59babf437f49a796c214b6d6f6b43ec7deb52a2d012c42a0cea7e55ce5cd811a2bbd50fba59b95654b7897ce5df5515f8bc237069f93ce9ac22449d7b1c12cd764c874df1e645c8708045ec415857b91b83419a09a604dbb1c496ac486cfe0c182452b62f5724fd8783a7dbdb0f561c33dc977e6016546245ae8528eaae4b56aa0919b97b34022e8f0b4caa8785c32bb5ada372819669430183da09413d4a8955aa9421cfafce91f089c5120b13f0c6835ef5a18b5805614f2e8edfe59871324f8acd5ecebc3a62eb0a16150ae497977a02b43cffeced88758550e1e98adc6aaea1a519b2293ef03fff37b1b654527ad07a18f619e66a509e8d02d2b731c748ab1e501b5d0995c899929671cdbf23770dbdf1d2d421c90071623cb23eb415e02b99d583d8ca3ee8698294c5a86aee4997281f485d4fdb930afac842d02bccd2c0dd8f50b0c6fc00236d032c758dfa7a161117a9234675c0690b24575d5997717358ae32eadfd7cd09deaf2dd06c7507366a65e6d8adf116a02c03f8f9e5426c0712b7b5901399770beed2275c19ed997fcf249cf547ac2d5ad6cc55d3414212922400b60c7752094c2e9de612b1d75256f98770a4e486dd905a1a8b01b02b2389863527c732d5f45eb5b60f61ed0b21520e54c229ae658e75043a2fdfb0372fab0dd62acd7b38a75b94b45c546046aa7d2664a722ffb293eb87b0b8d0c7c6876395b676706c582d40ada5a56602a6c338c4253b3569da98209fb2afa58cd8bf8b467e0b1ee153e853e08abbaf99327ac1fc183d0cebce1d1635abb0fd1395bcac18273be52b0c527ccad512881250aba58853ffb79583032ec4ba3e5bfdc65521c784ff6886aad1b5daf13de6184d2d9ffaffa4ce0a73280ca03066cee05986bc9eb6a035a719a02259ba370121d9879ce9dbb0e54d1b155fba162f6169e02cd5bab5abb4c487bc6116017e0195883cf8f0b7e33e5d7bb86112a4dfaf24125cd982ce38399de8f01fde09fcca0c529f2008fa6ac2e699342867cb0e57f3493bcb7b2082ded073e614740dc5294c133f32d91d5fa037feba09f5ad862111037749cb1eca32f7234aded6b89eeb420cde466c2e9233363779b9fe1ff71fdf6241051c1092e85f38016bc0ab5bb07160fa7ab34eaeffce5595e0a22e7814f5ace2c7ed9120085bb36de8dffa057be598e6eb4133a4e4be6e3a4b0797dcdb82cbd969bd12585b3addc26315afd94d73207230bea769e10d1ab5fa324dd4beb5cd8c5ddb56dd0dfbc069910b460f5bfcc7210e6f070800dff69fae08f6ded4a86589af39f48dbbabac756ce82f76944a43f86c97c4fa44732420b7b36f0ee36268559ef4d9466730b428a07150dfa384abcecb34e5ddbb5ec93122814499608752cf2bdbc3fa13fb2f88eded8057964ffb3cb719846cfbf78e04968f383d8babbf1e4ac7c718faac3701ff400d32c4739312054c4dcfbafb20686af8c371b5b3f2348627cb4293592d1d5c3b37e3bf41b85ed604023b5237b148d3148f6a383851dd51b60c54f65133466fdcb3aa55031209a2aef9de40ce743b2e4afbe9b3b4e65d4ffd9ab73df4b09bcf50280ee67b2cfac9c39c231258241bc55898e3852fe0a740edd70ef2f7d0d640cbb523a5daf8d37c7ee8383ca57eb49780aeeea31a10187c85fc27b315023f1bf36aac8888483ae6e0eff4d172c282feefb888406a6dc70840954499b578ae0d87cafeeeea56abefba560222b6367c38d8e327e640906bc4b9ffaf0885aaa66bff4fc1488b3de813f9d75e9d72a3ee3534941df21b38c734d8f1a5f171d374796fe6744f137ded06b6c0299f3dd66b32c6df48991ec8aae680f088b68e726668a16fcf92347b7b343f73c2efac20c6ef101099e0f4c4847cd0d96832cfcb0df56c3ee666e1fe2e577ae4361deed71ca419266033cb5882cea15bd999646496d9949d287d34b429aae01e0203aed3f8ec8f53758102d13fbe1f7a1830bb8829860b482ab203ab4a7792be1a1b49f17859917e270f9c2109a00e0e850ac2c762d15bef3dda61d8f603dc765172f6948e5d9ec1ff60d35faa5b7442655c3274d49216b7df964293711ee38cff59401f4ac07eea53edff45d0a64815fd0401269c5992b9ef7e0a19c5cd1a580531a77c37d7c3fea87da3b0f8fae0dcf459023707b1fe82bc2315093be688c918debb98ca204fb2e5697d24f328debe0f680d4847a5c892ddbc21e86484dfe163d558e4db0fc4f154179646f1ab7b36322499bb367a92dddd84269db4b0ea3473c3e1d6341a14597865795f271e4395b846e3382dc68c4db61042f5a4add86d74379b662c5c64bdaaf241e0fc70507e1dcb2d29e462d33d182c612072b271cac4e63c91536364a49262aad8ccca8568f04d853d6be68cff8704b73262146a9bcf63dada31f2cdc864101580362c48201cc3cfe82c96ef5847ad54a39d2098c63c621fc411cf2d99f6d65db0fd3ea0447d3e98e20206fbff0f4604d09728fd466fe2a559ddef45b8a0d854677bf0e4c9c8c829a45ad5a9219e4e0b7707833fa853dedda60a95517cf170f4469eb96775c27a10ee693c9be00af19e3f6f83698c7e51973c982534702fbabf157bb6f465c3580544735bb8cff64ca42e36aa7f2a9bb6c0b119de23d3ab503a3e6def5a8990a89e6c1a7e2578840dce31508fc6ca2954551dd4a4b116e53d154dc7759b2381bbdbf1c8c4e3d622d4479776495f4b8ef2c79eea942762793580761336d04cf566c8a322e6e3db2742e796f053379d6ed56fd49a121810e98d090fe4a1556f1ca501158afaeeeb3aab49c5eb34274761129f65897a9f2e299f9a11349344cc0b18da1eb583b65f8fba5ca0646681e2eb9e127a1ebe4a010671699b570bd4f624693a5951229104ef948f089f43419bd1af5d40f27ecd7d55e32b6f7cafcc56ccbe1ea4b8abe599944151c02efd7fb5b143cb69497bb2cff9b97373ba24d2a56fc2bfa5b5910a54d66390f18fd5d305f6f2f1a8a15df9d4b336de32b4ade876dcf00a4058ce6b5ea08fa7a64f28c474115fdf384e41259fc52aad59c7ab47aae62e0b22dac51d52bfc28051c4fd8a810edb5156247e97f764aa723acde53bf95edc473a93d09fc2faccc145562df3bc6d27f0c2378d32d6fdcbb34c6bb6967059dfed3afe5e75b2ffb082395850404c545bd043a71829eb441dcaa8f383e9edc361cb1acde9681b1b4866cb6f07b46a0a55e82079888d191ab8d68ed52397a54c3bc4960d20c06ac4b2ecfb8d5472e4c94b33a7879eaef63a214dde9d0b979f98416aab5d0565fef75f7eac770b3d9bdc5c71a97df38d4dc55a77a08771a037caf8d11e30f20bad61b5fd26de9abc050b2e67fce266c59c89d4577d9cbe559c575e91f520a8aa3f57a2a49707b0d2ab5aff6cf838d400972d24794365f4f25131c813fb59ec28f2a2a7928d0777c1ac1cc6edfb269fc9a31eaf8e642ae8f3b038121340075a0ff41d1eb77d8779c8394c2b30e5b6e8c15b54b04477c475216206941397db5e1dec1ac6b2401f5e36173d87649ca17f950fe34341b6fc0b77e800993517a5931b72a0e9e2913d0ad5209a347c8aabddd6405e62237f7d345c16c3548c9bf1e2f393739b0790a0e803c2b3d4bf1a11c4b6260bf63fd452f9bf92d28d6f42c32f154ef2dcdd415e56ca7e1e5f733e0349052ae373f8dafa49be59a678eaef546e6c19beb4950e7d78aa6aa11618ec3368336c66a2c95d06c2993bfd7c7fcaee60c95c368043411cfc02b074bd059c72681c3e3e789c4b4973fe5a84dff5bdca6a59f4c2094b8b2c835c0dd0a225cc58a836a6af3c76359b95b4afcd89cbf7082bffb2ee2d4a80b8bf1553c963937c06a46be0dd5360d1273e2485966a326db4d1b1da51193818bd7f7fe78279c8b3ee453fdadc60437a4f804dfc5d283654d760bba54c694530922ba043aaeec0f8b3d41eb793a77cae179a22874b20c4a89f4ba1bf91b98807e378847546d638d91410a84d6fd8278f2b0e846e65ebd4a99325bfc98068aac13654399ed65dbb67e84e79a7e4af72636ccd784d17e4e359d6531fd8509c91e808434975c094bdb82ab0a383c313d31412d29e93086636ff7bf2e9f40ad38be671c0ddc20e43686419b128d45898a3b15bce3a0443c231a6ee5fd69a5487878b5f5673e37f69050960ba044161977debcfd0bf38a921249e6220683b0ab4c18d5d75654ae4443fc8547628a4cb42a3990d00221abdcf71fa5a0b64bba940b503ee4c75fcccee7fc544026b8d4b5def342cd0c969b6a70d113ef5d6f28ca032ea7126d5138af5c9aad04cefbdbb820b5cac53873ae99d80fef9463b2ef42e45a1a104303e798553245933afab502a2151f88977747c9f8920b935c7afe011f36c95899b3ca4fd06657b30df029bccd47a74cd675270428c9aa68cb12abfadf3f45d656065af09cda19dada5215ad71de21fc3e5e5f4ff99d4c23a4747e2f32fc42ccf0b21189b2d918b49319a1e5979b6c46dd49010f3def8c7160023cd153fce0ccb4a6ec35b66f322a691b3bc8e08c8b846118a9655a0761e8b5dcf4d6719e52a3ea65edc738e07108fd6e88ebc670f2e7e6e5f6d35c880e11b42cf6779ea41ae13559602bdc0139a8be16788fd6c2513c50970251c2f8ff3f89c9b0eb842fe20f4ffd1c8bc8ee17f2d069217f289c78342d16edfa271dc220eb921b014e89c6851805b8300303ce4ae0d81d8783e59c996dae3822c25e85d433b418f872c804ec95a9766b4fa764ab1727d17dbe560eb0d0aa94440acf4f7dedf50ee7100729820f37af58fb3e5a22fb28623172b05d0636a707d3ec08afd3b5396092bee1eb1583e0dc0712c6267f55ece70329c99ecbb7f3dd06903f2984616d0e141cb93e0a105ee71447ac8c72c3d3c8bbd270b86aed2e5a07e93bd86703baed63d33c6142ca3cf3007c47be6d50bead8f3ca74818dea96da52a23f9a0fed5611e8ce103a1880f64a134ede2439caa82c215a8cc442f04f06388f0c52581adfbe6702ac230c81bc35f9eddc7fa6377628371831266a3d63b119d9827c665cd71abbdb3a042bfd0edc8e8460fc13040e70bcc5e7ee882dfb2392863fec0521be4957023f7674d1ef3c0975dc236da857ab7fea53e984a190676f4ea73c2d6d8903f9f7a314cca0f4593b51c690a525f358b860bf02bdc7759d62e05fa65c151f0ef03131a32b57c675541c178be0f9b2707f939a7b65e54ba5d32ad5e3521edf876f711ac7c194a4a2b796cab43f731dd6c975f5a709108a131360b525ca141902ad48724fffbbdea0c6fe63c62a28ec9a4ef206405500ff7764ca75172f8f906bd8e9b20dd5fb5b0dba93655b22c590110378a940876948f49a33caf383b8ffca3634353ea4d514e0e0f0dbce6f90aaaf1652da5b308b5a2242c231a9e1b790c9e972bb80a34c973ae108d02744fc92c098ad3cf91e05fc4a8db3670e4904660d2e68e860ba228586d421d7151860d1e7318a95c69a4f49ec8646f126b63815641a0fc66e154514e458b483fd5e7aa7739b564fd8519c32903a829577a7c824bd29f53fe7f4d08de8f178f014dfab867fbea4f959994efaf2d23ddf6a8b0992f4192ca4ec77e7cfac5240399040f694e6a434c4cee3abb879e6f69ec5c5614e6de99b294f66ddca2b6b6cffdda5a72d06a69007e28edfd8f86b8f642b3f12be7bfdeb66e53a3205f15201e9f35e455f507998bcc76aef9aca110209b3b0fb39a0bb51d774f01f19176b4e1eab09b86dae18a4002d9dc89235f178288b1df58d911f525d2a538334965121cc2cb1f34db39c5a97b8c11e2623d8f7a0ae2cc57a1718ebbca2d85297e27f4da56ebe562a9e7cf4651b6a711326a3f814a9549434b5b4a81b8340d818dbae145dbfcbc2e22cdc63f6b05f2ee9d061ed6c6b0bbae5236ee186a17f67a1075aa52d63ad02883ed1c8f7af48918a5c3f9952306c1b289d13b46fbdb75baf27fc7553404169e345cbaabaea9293af9e6996b67005ee8ff5266929c83db9d410dfbc909bd7b4ee8b86abb61fc6f96350702c4be8c0951f87b1886cbdf0f135dd98a5a8e4462b564235cb05da9f4d86a4d6cf07aa1781cfebdb4cd40b63ef0c6a902ee692fc92ff65c8e0e5e19a5e4b2ed140a744045b0d88d218628d98b4272623ca95119d258071829c383dc4b4ba176a4428f764a638e5c042f90f5b9f673046f888bc04d9a2df3d4603c0ff3b2fa885604ff5bfda26dcedcee26d678f42c6bc0e93ecbb63e47d116cf22c1e50d91a81d822bc9b66a08f42b14936f5ff42023e4f0f143032fa8e3ce1d3e5663c3cc565656d76dd8fe236c6c9bde55a6e84ea233c5aeb431a4abd84c0172c7733af8deac93f71df061cb8d817b4aed03e3acf7dd555ad08fb6ddd6fa054f198bedfb1bd6f6aa03125f312368f04d293ae29f99f09e463b29eb48003cbc537f3a54addd0b00633363d009b0c916c87ec482ca88a2d71441925a157f415c802365dc58fa14cee370c145002b04a0976d8c2af61c2c26a1c5af569646feb5fd7a312f7d3b7ce41527a9be233b322e1bc5b17348f7329bfcd67b579fde62eb0cc9a98db45d558e27dcb452cfe72ec5c8bba3cd26cfb1e65db9f0eee9f8dec852cff8342698e58f9e3cfd9978d5bd1c5491dd1b1473012d505b4161b92682dcda329044f50482d71bf7381feb672becd5161ab8f0c03688df77a0c075624dd19033b2bf991d4a877519ee93312f1ab093718533e2654c48e017ab8eceb146a208ff7978c9025a201e64aae7ae4f3436f9ff70023ac154cdce73929bae40bab3be18bb42810d58645e80dfa0cdb9144ddab3befb9e0149f02beb8b39144eea1e957dd07411d77f53d0778349695dc7892f0bd6f0c0005f98bd38a184a3534e54d1748691d43f3ef2a6a09d7b700994bb3fdc2733f5ea5828ab07c6eef88bcd5ab99ec4059125e220ef5a6048580b8c5c777c0ef06d61c5d1322c8fb3f0c9e49eecfee6065f70c10309dc34b09ebdc413cc09dcb2c87e45abf562e772ba9e0ff25d2486e0361deb59ccdaf0fbe52713de02d31de0fe5dbaa2c0b89425c59480402201342cc36f055a1dbc07116a1217768d5fbc81f1560f37bc6a410aae89b255a716426ab9f3eae518b4237f500bbf9ece16567639d807cd0267610a68711c4a7162b545f18e5d004a464153419bfc9697dfdeaf362ab11d63dfc27112ecb8889e9a1a1fed9fb31d59496001f1734ab3e497aac7ff8693438fd610163cd8c0a40cd42e36d904b4423290399f8887bdcaf66872fc63c0a1329b330ad455316ff34bf581be860512b124d1e9272083ab2660f96d520494c77dd96a564177ccb5b6e77933680404d9e08e276ff36b599b7ecbd3a42f5af6f8a0e657c876b7593b31c993ebe989a541530a33ec5617f715534e6d681440b3add780cc14888501a331173fe9a6847a3befa193a0704421b0a113e91991ddbd09b5c6a7a9ee844ded7425034bd7ad2a48799a20a55a3ad02ebbb95de4527b48036011740f0bac2b2e14a586c42301170ba8380047fb70237804f401d531bbecb112e420db16055a309e7ff76793c09af4df50203732c9c89094c0c052a46825901b29fe288f25560bc7a0910f925272d0a6db9ec3ce34903e416cceddf0b0aa26add6309f3ba6d9f718b1535d7c9c485162eb8d94a317bba15766e2e595f4d6eed0450093eb6e8193d43c38df1d6ffac4ebfec0d615f3954fd18a716d24cf1875900cfa3aa1ad812e1f16087214fe04c0a6c82393e28f2b9c10b2745716e56328aaf2166ffcb048ffd862c06290dcf309ac456b1cc3d12ce6545655c5c79f74679729ba446e4b1a8721824ce1e3b5c39d2197e91e1c46f29531df75726b1170f7daeeef094352fa9af62660524d955926a03d8fbf6d5842bc6cf78045570c1342d4b895da6bf3bd273432372363b2e25e0ddb3e402fc79e7c4fc055c29a31465dc380120d9393801793b1c560587b281c147851f88ba00b8312742c9cc4ee57dede590648c8e29969bf1b409c93a11b702a2a89d4304fe831938f1928304aa608cc7a364325d8b4856af93b83fa430d70797371164c204fe94fd1ff28a6fbac47bd772127578f2d3d3e4d1e11b67551e9390ed650e51a06873a4dc94d7cedda2ba13b1eba4657fa66ba1bc7d63fc18f9a83e1cc20d026fa96c437f8fff722914bdfc47c549e020fb191d25eb782eb062c911b001f2990cb5c75182fe38402fbed51724a21557a60967314106c99c815593c344dd8bcecc9d392aebda7c327c26366c11e7a96da2363cdd1b0b643b0c4804ce492faacf45cf408e42c38bd666879d0aa87d97771d6d59c1952519d31df00af1360938bcaa4067221dbbc8cd2d00678148b8c202180c78a5f5d0067d59c611afd08a5f2af6a7a5ed33239c4d663a29662809dc4bdd11acf10869f42b0e047bcf7cad21a1e4f798dd0c6c57a0bade82d36edeeec5256f3f35d48e33205d15c5dda675e71ebfb25a40334560a3f87200e46035209709ac16a3d3423a74b0b933a8343ced92f5db934b004bc048707b413b9eb6961bc348a990cbd6a091814c67c20a020d608992d197f3741414a2f9a37c6d6d2e614184bbf72819b1b96ff04003a1ff58e3479e399e9bc63da13da2c6d2186c0aa98a7252f5f15b3e7da696cf07a7e22be6d4797c420e05231d706423685aef4eedee8cce4e46391047941cc7abb86bd02a85a34947f17249ca821cddf1d8d24e550a26b4e76f37c4d1f0f92f93225ea6e3083f9ad412d5087cc98b9c21b4683fc0976b6c4a83aeacac133993a7b6f3b63be651ddf69141a51ee1ef01322106164213e034259091ddbb9ab3e392b046ffcec324701e977ba72d3ed3c16017d78aa02c7686cb61fd49b560cdca42aa63532d8393d49e9cdd623b0bf1fc6d0ccb5cd609b878b1cfae8fa6c327cc6ba0f5a05b2b56c62f4714b66d5746c41ec1acda9159a408f29dc2cf6e3b07e90407be8453a38ca76dce2bbafe94aa03bb1db765b6352bb6cced60be40406509c8ed4a9a803c17bc59f5b141ba67893e931e391ad9d5749e213e36e52581e875b5349da9420d8652d792eebf84c397a376d01a0bc7115c14f7fbdbee776a3d1b91d0b0da701ba9482eaa746ed05a9efd395d5585fcb3c6bbf8a292b366fc8824601f1963d1560b518b138e4d295db3f03628b0a02d9cc557f36defa976f1efb7ef4c23b6a263e2fd7db443eaac857dc4c9fa54fbc0b1a6ce59975f50ff346c454dc7301c13353ddd7a4804ab8b795ab5d4400dde4fa66262c129a31eaca96ae54cc33bbaca777be159b92bc28c7682673c553a2f298810bf6460a190fd3febb904d1b77e5ecc57e8d707edcb885183a069deda8ad124494ca19738e6c55c1d225180401dddd10e7212c4608becc4acdcca3a2f8e7d3ba4217acdeb45ac8fb2d55015c83e46006d811016ba303b0f48af4ffdcee5987fb91916b28f0aad9961aae64c38501053cd2c3956e41089e1b41ded7941f5406b4fc23d48592699c353db3931b7e5a2c3529fd9350bbd029ec54e1e626bffc9e1a153df15f0af9384762734fe017dd893e628a077cff661e6f4f85e71638f38a2ea6b8de465e09378eb00081690858568c58221382a14797a4ef3af298081c8899507fe113603e3a61055a60570f9eb33a59d56c64004b066252e16a0b07469a6ca118c70ae1ba518db294599107e44f0bd251a0cab4c7f82f1211b59729c3c1938f4b4b7634d4abf7d6ae20068f83d2a3f68ae86ee04f33eee734d35f6e318c945c09a8493671cab96c2bb042bbc765bfc6c35cf2f0c2fc55429bc6d461308e51ce782ea954db5915c54d349060203155ae637b35c73e8644b437da07f2fcb362df95893c05886a4866b72a60b1deef9c51022dd505ce752e4062aed6e9f53451a9129705d3a51b7e80ba286c5fbb28943bac40cb75c8bb7c5855f2127b646473a61a8f99656b0b6fd5fb360a2ddc1bad771d2dfa8c9440d55353ef55e2580e51056aa007c0b8c6eda98b739aac90065dd4d652a4f2f19cf7f83ec57aa818fcd6fe3aa0e7dd9a6a042c6073ab03f467c8ccf78df049e23777b6112cce072361427dd465605ed116bda8abc5172d1e01a3e296b89be6410cd16ae5cd44263ea676fafc033111bb5fead5536ed58cd105c37948352b846a1847642fd6f3080581378667e3de4fccea589f799b9c8e889060572679dac382c2c57252aa782a7ddcfc2b78ae440796c1adcff4b7938e4f506b2aca52d15381a6b2e129a27da6c0c68372b12a5c3b3f12c1d4a78e87c776fba62282be038dd6a90c5120df174ba2c2a1995e9c6430d96baf2898eb1fc7009091f20cef307df2d712763c2115db1b82a484d04ae5b9ae5f38d71c171bed64850d5f6c6e108de0897fb38ff720255dd5678f3ffba7a3740f3fa4288cd8204a31de05c30c6d771b5bea8508cb5913eff56481b96bb222c59a35c3a1e955c3607b998a98b58faa282a6d853381e9a0c344162ee2ceb3221b8f54e4402f978ab567fc0ef3b740ab1d02c37465392d483c71b10ae478362083969e9e077ce0991e30ccba20a31794395be862632a41d5eb72fee0011dc4c758be01be905e48331f737539aa28b6ce9db1564dbafaff494352ba524d91cb1d2b2c85f29f665a37850db44e0149e791b3e485354a706128d2a14d66e907cc7d0858ff769da52e8b89d7085fd54683dc87225f0807a2de6e8ae0aa2034d12ce63306a368a03007dc3037b2568ba2816d3bbe55b618d2714f092db774bc9352facb46b8ac90aaeb8cf9bc1644d82447fd2742842fccbd3386ad762117de46fe32b62eb4236482db063f15913314dc0d1c989420f782059918335beca831efbf0be643b4d7f5e92866b878219c39e486b90fcdc31eefda252d2954fbda51ed42ae734af6113aefa6ff1504d30db5eca7d1663e381d0d7edc3db978f48902f5a911d23f25a8ddf609874351a15c2599b09be68c226e2a8636e880db0f2dcbe7ff605d4adb1ea5c8160b193e1c1cebf32c48c48f696d66dc8f3ce7e0ecbb3de8ac793be8056eed6cea2c9bb4e74e5a371ed1155e98aa2a6365e7da476b8ebc4651e69ad44645fbe76f21f71aa8d957f7b55797422fd6bd8ebfa70ee345dec4a7f7cfb41a56488cc7506e56e95956aaf1e156ba0c391cf0e2512bdfff87aa0703bd1536d0621797bbcc24ade92e983f1ccba056558ffe2540b0e392d8800fbd7f3ad91f9ba39128a63918ce362e3adeb23ee7665f452f53bb0e2ae03402bec4488c9b3018bfdce7cf0fd80102d8006a505cc74d7a1298f591ac96abf686627237f358a758a3b9719aac434ee7ad2ae0b417d200320399ec5619f3dd557d2c501b6e620973f09a0ebfcc7237a02c9296ccac9a8c7f1c1089fdc7f1b6a629da411a273637f19b787c2ef9d00a54014d0fe83aa5915bcc41e865b6160d99f9859a9202a359a366d6631a8a79fd3e3343057961ba472f414802076d26c327cb2bbc2d7deba277b2a820effe4865d06fd48f558b10f79dfa21796e721bdb61a41487b26181eb9f71fb2f524f6d70f390e4cb8cab1f556df96bd15fb85d55c88462195a576a3b89fa242c656fdc5aa5d1efd639ab45b4c1218eb4e08155e50be18fcf8377d88df4f2d5823a2528d63510dd21ebf0b423041d8abf6ffa0916e74171b2eab1abfbf242d65f3b93bef626715aff7a07640eb1dbfa24708c8b2cbc35958e3e796473b219243e2da198844b3a0795cd1e159fbd14e887d29cc922d997d5a6bb2c59b0a255ee8debfbff29a238dc3a2533586f2dc9b025a0a04568ef702483cfba0583933ac749ba6e18f686ce97f8275738ff642f217a3bcf6899d0addb06fbfac15a608ea9c1064d1f4a7c174099637aa85400b82c6a19974513c0923f14379c62386023efcf888f878c3616bc2e045793b9d0ead7ca12e3fe303e80a039a2042bfdf5453ef5396c2151df0693c44802ef3f015d046743912d8bcdb97917bbb761b0f9106ffe241e9d08a9f71260913bba2ae48a188f0b41fcde5aba6208e7e1c90437cacb8aeca5435d22c57365d1f03fb60eb7d016df550b031d5414aa37d1e1b0136ed0e815d02f332a926e2cef349ad246e41ac48d5dea3077c67642becc15b9fae6d036b89a29ada144605d1d4bc3f2dcb7fc463f112c7012fab5dbded4426c96dc1663fc4e18d70c9607c3e555e203f353ddca3f5435a6f795d4293f656d1ffa85ef113ff8ca98cb4655ad23ed48b34167d7671f95ea4d24523a70abc0c6914aa8ed5c44a04e33a622298ab0ada4b795d420c3aec8fb86110272926b53105b085942f6f8cad0e7bd74407d0e95947911edbbaef11dbba87e94d4f0b2b199bcf218466f9415949c33ccee0a75d6e5c917f911b868fb98a62481a5b85d950c5418c83a58956cb0a7c58407e7d60ce02a2f71bee77070bcb46ad2603811fd72528a170120807dabb82d90fac021e66c383dd66503f46ee16381462a492bfb6397c01254ca8d6d4c6a671258bca3b1ea805469137e0fe52d3743778326d302aaf8a59d2075a93257d2cc07726cdb113658d3237bf5f975675e8a10f136d7da89171f7305a566a5dd94c0c08b9e732c222950f63ad4505be45b691c71a10b77de9a4b17a56970c2019b4cfcb1f5925e37e2a83c03a1fba1ea2b6aa1f1677f3d0be6b1d6c325ce39e6604114d1a462b03906f8beac7fe9f887cf178b3a3eade39ca6115c60ba954964d508e0bcc373b10761aedeea9f825c36227c373a852dc477ff78f09c1c417ff83a2b7e86798486248f2f160a1a55c6fa64aadc751beb59c87f0c5670cb899e5a27679280e387c0000577795e0a222a15701abbf6cdedc7c37e3a82035d57119c83dd7d0accdfc2453ba4ce2be1261c1a32642c4d48b3bf7febda9c9382ee6a6bdda5572216e47415520e2fa571858cbd2489d6adf3d94065d3ccf364319804c302836a3f217180515a346c45f5efb368d2aee58f693724e64741c00a9b3b05eb2717fb7b628e22960f1763a64915e224d42a06403cfab55734e47dd5d5a85cbc4f8d97fa4e6d8044bcbfb4090e2318cdd3b5b54ee576f605c04bf510d316c30e4713919daf987211887d878c3864eb19273d5ef2e36e74bdba70263919f0834a48457179dedfb66a28fc9757c3753df767e76476198680de299475380d01796374dfe9336b17a897ae0d2eca3b2504effa1c95ddd5134b7f613709aef3265a75fdf22ed141accca7e8c1eb6c03786d3fc58c09c8e57c72498a0519757face1ba2bccf3b8c61124bd2382bbc7d0c2e7f64d0c4c0aa44bbb060a04bb3b89d5a68d05edfcde5a1326cbf9f4a32b4fa59773c6d9c2373d5369668c72df2bf57591f60b2862c6e5acd093f0d70ac5dcedfa171461a91de6deedf3b9b6e28aea79cfccf98af79d8f1c68794e44ef2ead955ef9aa4a10fe593b40692f9b15132d1ba935964232e9d2d60f9ac1ac9a77d711f59b78778462a6f9aa1d7909fc13c5b63d27b608582f1bcdee2b5b9ad246c6e89e4c321ea6bee51a0c9846409290e90c3c87e481d0d94acc557ae5fc71548aef63c9f5839e5802af6122d4d62a96a00fb69edcc715ef2f29d778bbc3ac159911cb710486302eb12cc3d30758470e6fe9f362611b3a61ae64e8be7163508237d4fcff0bfb17f2cc0b200f5dec796b62154039031f5ad83c5064519c7ea7f065bdf7461c01db72e158c8ea1da68394ec3684db4b63aa9f42eb3e4febee53ba01884b4bc0182ab86910bba57913e0b558593cf7c234fb6bda60943bffaa323b725da93606c9d5739dcc6d8147ec1d531c9b248166b710801142005411386edeef8ee2fc7a1e5eaf83fd6c777f261a47836a2a68678ce0f0445957a1eb10d198c89dd706a7329debc2805b4d9902e9409381f07d9a5cb255f6949e86a126c82acd67ae4ca67030a2aaa928758cfca81927ebd40de4421886994a641b4886069505f129291381c29fbfa811fac7cb50f737aebe5e41ac5ac6e3e79924af9660571aa32d92c553d707df37aaae135dfbeb7e406f477dea43811c4589bfc5e36012bc089ad7861332640933ad362ee9013fe3881a027bd3023bfe49f6227448f77b4aed1c1fab38065497c93980070a200993314f69bd9b5d04145f5bb2c4e5a4b6f06cd73fbd4df717d74fef413d500133a5a0634b5c5882d44ed630823b016f5e95b538b4c03964b69e5bab7280e8517b9737f214a0b001420c903b1d6b6981f0ac86d1edfb4956a4c5e7f31115d1a355109edc628a63e876328321e043b18aeed6a832c620c71cb1010ba96b3db34b5cfec763f5a88ce8c45405a2d07328f0548e195c203671cb8db5161395cf397f4bdaf83944e150bafb1a84d671b2168b322d38dba16d380f6041c54fce1e56c3685294dd581a65b72a8dc2c79aea17ccbf1699767cf92de468d904aa27444a953e8f484dc5f083e4772bddfb134df6397ddd18ec1819cff5ba06d56da7e78c580f4f10876a8fa20c3890e1e86651e1171fcba7ce1cb1a3ab7499af32ba03dc3a3b7c2a7d659b30e2a31f8075dc433c2e2f8db22e1dfec421247a1a824652384f49f4ff597335927935e874e27e0083e66496c986fb025d040ce3137690e0c70e165422faa388aeb31092aec82c219635db0aaf6ac1b890bb42f9c5c8c69b06b72c68b31ee32d7568ee9376d6d9dfa051e3458151f5016d5097a5622cd781c1fa421dc7a691f44cab56d64c8c6e4cf1f2b203957d18f78d551a67cbe1e692e8c75452d414696cac6aef94fc726a7d24cf5e99786f1259360f25f4a041c201bf5a14b399611b6d677b98bf8fec627d09abc04bfc17bdbfd27572ea464c87dea124175009ce9d5c70d278342588371aca76dc98377c77780bdd3a18e7e4048f79bc75c43c98d4673e8d197752833d9db0f9498b67307e29de56328b43fbc99711a22ac0b3e83b6a2918007bfd9dc2be72cbc45b3fb0e4904ba335ae3948493db12e4c12328bf619287bd9dae238693ed23deacd7faed4e1e9c19e18eaabe0a8f7ac5559937891172d7ed81b7d3a2131e44ac0b033f369683f76b994abd2ede367ee83941238815e787b0a6b32564dc41b5de591bc5fb3684d4dc2d527a54a65198a1cb323d2acb89d3d04c5dac6a9a2f76d6648915e291a23a453b03f0827bb4f7bb834717dcfc6733554bd5c99c5656ab31e4bab0c8af14638afc610ed69f0536745b9f37bf5e7f3975b51fb82370373d2b16a08be8dc46bb069a91b727f5415ea3681dddd2b2473b8006a521d1b8e9c6dfb32e9c747654b7207b5d6066493843d428e8d3c0aa27ccfe32b1496fc293d4d136df750ff29374f963b340efad0c263d70ec59c071fc0799ddf4c4bdf9f571477a30f6a7fe092c5dbc2614ce40b6acd7d6581341e597ad8b7502c21c42e0085bbc22018f3ef0745f186c6a0409812811cb1e0f50e73c09b633d3e12863b98fd9e3b94dd88237574dfede873ac98d2ccd2677dbe8e124af8ac244a0c9bffb0748b97f4258a0012edff0fbd57bf64d74b4405caaa486fb056ddc944c747cb24caa7201e2d0ee235ad4f7e5e3e052091a0af90e86791262a14553e891a5700031e58a51c71f43aac4623ce2f648065d1d812e8e957be16e6c57c3c78fd3fd9beed55e82327fbd533124d2dc2a8571b839cc5c2571d2ea27a49faa9e825a2c4de4787330252c1512616b70e2229762de0ce2e3de8654d10aa24abd3dfc253d73a4b999f58e03238c042bb3a549e5c2678d2f9c078f7a918876071757ac18357f53c65df589e84c9c7ed875fba186523ed132e9b4109d798553445806b974c57656005153a7051cd276f4fd60270886222438713cf6ad05d9c69dd546a7c65a7351e4c6b94b3bb8ef3b23f670be4d26286e33feba31e06bd2c40abf76d3140a2276838ed51b4d3b6af6fead6eb570e437eaefd08d71ef23b1828f8bda79558a4622680bd678a0ceeeaa0daec1d4bdad8a2c10ddd8e4f976282181051b4f6d6633ceffd1f30c9e4ed90c857271ff342e327998f903101e32e226a40ac5a8381a544be494e46708bfbf20c60aae632c9a926afd0e38b14eeafbcaaf72c73561dba6529ec167abd933e6aeba6e4a3bf989e1e7f0b0e7b40edc840f0096f74602653b63bba4bc477af2c7857e963a1cc06cab6b675f423a075601ac809d8ca75d3bb9f0504e2ac86277938cfec318d9ced9519a8fdfc1a7a9c9eac71a1ca2052383d8e146b978af7abcaca577f9a4f121d28428b6baa0cf4f112d852f71b9ea0bb6e85e03e97464c6942761ff4a3f93f7d5ce1150f65c248c37aa5ae91a3644ce3448f051ca702e3632517f80946e29928c091fa5853afd9b0fb63e6e6ee17ba7f4f0ec9fa5c041a8f22743d5205d7e8c9ee5bcd4cac0ea2d3b99a13c236620024de838e8d93ddc6f61dc94e9f9596b614d67222fba3a1beecd10383dbed41df837cf53e868c571f3f257f40eed5519094564c71cd836cf8a9bcb9553302186b32e55b77896b8e83360b23becc966d1cd1e0a2b0e5708de2261f09777eba3e9ef28c185227e7de64eb0bc31b305475dba0e58ea2d10474a5067969fa148983f1e2d6b884c0bfb2b4eee78ec85b7d6f7433fa126cfee4ee640ee4b9c13589f5eed4c437e99312002d6419c0336d695cd11710e3cd2abbc088fb18fe6c81c3d0539e049ba519c5eb684a11393c7ba2a0d048f18c87963f450cc1557ea16c35a72a14e1212f24c2927159e7c0d622edf87dc0811006aa59e7bf01d8ba1c899c18d4dbe4a1c3aca7a6096d5a8de98b522e22af19c57cc1b24471e1b87de3e74a3a0998c2cbf53924f484a761fde355e06545e0d3177d1cb366870259e665fa3149eb48b0c0fee7b285bfdd89c91ef0fc1f91e419b820b3f478ec0d092dc5ce28dfb6d9ece7c65938c78e9a28d3fb5432cb4500079af5a9a0d789a3c1e7ba16b6919b6716b5453ca82bf750f94d17a10469961bdc02b66c40518cd926c9f66e9683b93c1738b1e81187b65fa0887aeafb1f4c59b3754db42ecc84b449f23c31c2e118dcd86df678be01e48037577c2f634d8c308f93aed62479251d84b893ae5c5ced05eda446bd16e533cab17e573c6373cf03ef77dce96dc7cf8edf8f316ca17d58f08b8a4b019db12589e635fba1b4ab0ff22746d1faf37f7b624a2f3174675ea5a19ffeba5d745d547727fb588419e9bcc5a87828abc264a75fc3c1f40dd13037c0aa069fc144dcdf603c5b8c99d8a0db5f99c2509f33d1d2d62287fcb7389999018207de3ac9734524644cf42b7071eb29ff3c48add530b458ac0c798745397e61619957a194da879c43f56465d35deca72203bf88d03471aeed1638f1452cd5d7db97d14059d95ee51acd45f4dd4d8c4ec8985cd3a2c4f6abe1b4fcc674afccf2641ff25aa36b69463b5fd634ecc223411ebcac3e872b38ee0d2c09f0c626d413487ccf9cdcf9c95543b838e7ba5fb4c42d6b14554bbe8bc9820a6a5e7a71a5c0f74c183cba151796a4eb897650ffe18952c07a84bb22dbc57a0ec82cb8867f7948771edb4e7fe05c4b603ecc25ce0f137a6b46010477fc3bee59c11ee5b69ae065106b60b65adb87e6d226fa301c563384f07b6222c9d71d0f1c405bcd7bfc680f76d7ff0de10e946233a757f191bd9b70746a0105a1e1172be3255f398fde957b3d9e2f49d64ea36b9bbdb04e20eb2680198d77d8a959ad4b9feebeb9fa073f0538ce6eaed57bb61c6156c383d8aa9ff453b48a0bdc5261941e6779dcf9a5557b9f8ee26a10a17a61537f25c32c5a91f2f0b67d9b5e6c2882d765440716ad522593045aa8d19f96e25e1b0146a667228ee5620ea79f9d8034305e25eb1c2a3e7bea18c950abbe6d6a8ca1d5db333b23a06085b7cd52c9ee1c27ed1cb1ec410dd0527c21376eb8e3b04920f58805276b6ce184a62d7513954d9fc2e392ec55e2160649ea7b2a993afd57fc75066181173f35a06f95460938a2d33351bb8aa756d94767566a2438ee06919810ea16bdaf1f38d2a91610b043557a9331978d078ed7bf1ed34b1b2a0f7428371518db36bd7a3c56b9dda654cc664c5118e8e810162832e298b4a0826b398b3604a2c593909aa2068acde9691c653a63881ff0000a42eeb369f60ea5378d57446f8a7d7abe703cf25e0509e49d29aceed0f332285239037ee15e71fdf631738959ac55c1a3f7f68fcaa58294c6ba29e68767571f6ffd4b48583582df570b1b71cd275f948b44193e216e0767996469f2cc776ec6ee6b723851631011da6aa69ae9d4a624ca340fa59c1184ca95c589c72e6cb4a4ef90b43eac073b0d0d73cc2ed1afa3ff5a1c8937303f3f8d3a91d8faa8e6ad638a236fe9a142243e2f85646f6d6df0f2519f937a672a86ca7b1cc5860fa31d40956b0eb7ed1c990fd201b6ec1857694aeb247877104315afaf4124d0d4f5f7c7a00891bdad4f32cd9696157762ae2d5a3abf82007a4cf6ccf3f908ca00b19837f03e035c3b2b363e88333480d1669b23375a92974f6848cda7b5c2fc88ce6309f746de9cec31d46a06b5001f1a4f6fe7870ca21055f9732baff7c3f4530340bc288f8a94adacac6a1f8a9e0874f9637ddfb1d0cde1214ce56176e83d4bfd10c40eddfbea02358e65a18e6d3ce74fbbff07a3be4003049381adea3187693726e2c2394a1bff3e8eff065e21a7041fcb3da7b0f653c594b39f127ffdd1d4a2fff21d01dac9e599fc585792bdaff381348c29f581fbd4d6f1c49225bae160f050d125e93173a65253d2ab9837d4832ddb9d3752be03a50d1547b8a036ba22153ddd731a34aa0f8298c0fae61ead00a9ed0c20a7067fcf6d03159d339d6a0bb5db592361078ead6dac4c9e0718206f1baedec88606e2b2b90a3c957b03d4783cd72087a2f8d3a656f62b50710f6b4e73dad7ce70dfe32b3760fabc411f5326b2db4921c6970183ba1e5d1e2d1e6b51054163151da1522a1b0346b3879a060436d9158e5bc8fc8302c81a378fa590260d25baa9dffa14c63ab200733f94ed24463e4d6613bbf751352d6ed8707fb8f93ac2c5ef206c2a4029b3365551565ee904621f9958967488857c159ea262ea4af7d949562515f864ff6343b1b4657e1f433bf44e86204c5f006365854baf286ca036c16309213ef5af977f22e78348c40a930d92313f30b542a2cd456d995bfa5a0595a20505f5c9f22103cb38c00ca270c6c4620fd90d469169c85c7ce34456eda6175346930caa9b41547e2d7de15f425047cdd16aa3de51e8bf7bc970f4d00db070ef48ab88be836facaaea20cdc43a0d052a86737cd061c28931b67aba036f1fd0866b993f882f4ec57a7a8abffb38c26732a8f6d394eecf7414926c5a5200f66cac3cc3e28c27c4f9f389b5c5f97dfa0991e3e1bd5ddf01179fdec1382754ba22eeeefdd35a0233aa68f9ea962cff0787cc0bb57b9c28c6cbf4b89db043e5eb59cad2253c6887e1014c9cc40da6ffb6ed3f55f8106deab3901f7014f407a2733d4d0b9a4ca32e9250fcfb0febc17a142449c188cd69c385342d408c3fc7a28c15850dab3b8c003725943cbc88bcf65bb355ee79fba05a6b781838ab06fc207279db60243b40130559f17123866cd2f41cbee6207dee36916e00d2687e0820fef4f2f814c62c3166d2a026d131ab6cd048b93336e28017b6c5b08ad4f253dac966bcaf9a860a120796ad1399ab7d16db87070966ff971d8b0b1b2a81e2194f34eecb1e3059ca4fe4e06bdc79e743125d86e21df7457ee02913c2ad056ae25174d4d4b0a2cfe5123df6637db70e8f36c82a0caf2e3ab157d3dd83094bb9e1cf5aa2f800d962e7d4649ee6e2d98eaab9ee0adeec99d6643544627389653bb3a89d7ccb3e1565f51e2004da2eb5e9e6d7b1f2509f2cc224c9287c5592e1bee4c7797163d4d506087b501a7a7362c752ca8f7c9200e042714ca253ca5e686ff568395a6976db972ad44147b8aa0ae31e42cc61d4454ac5a71909ac8b4fcd591471983dfdf30f596ba56227ef0b4d6357ef534a2280bc40a34fed048cae33444b0c6c8e198dab84ee4759bdc096ea1a583517398f313ed17833052decdc2af27d1bcc6352d83820dd370e9932dbfb2287475fe3e895dcb67f1c8811a68f3f4ef4152a54d15955fd1dedcf4d5e60bc05408faf9cf9d6eb3b3d36aeac51985e789a682b5401151039ef28eb9a824aaca0abe5a18c229e1a80e67419a94a3bb0102286a61626d4b2dd41222eb33716a2a51cc77130ed1e2acbc49798f59488b87e4ddccac96dbea5f9f4778a96e920b68740315b57a43b35c35a1c3348b74208981ef8d458605e9e6f3d931451fbac2e7782d5b6f319a2ae06b09d4ed2a1e59b5bef73924149ed92dd76636145f77b763273a57851d3d3128b612e5b361c047fc60217ebcb6629d66ec49325614f086363ee177c3d7e8457deda435c2632eb301f884acbd962fec7f7f4513291485c275916c10c82004f85da21782526d99955fd58c3c639503d26b881b8d8ddee76edc230bdadb2b9270ad7d309469ea0d9eb8b98646559c932fb66000977b26d582858265715a3cb5e5312982b3b31b5caf9a21160919d9d6366b256deb06981b6c76ed2ad6aa57e3266359d72b71cad860315ced6711c6c7f04dffdc8a938e528cf916f6edc70da51589d26ecf72dda27ac8d50e660f2370b75ecb6d361aada8b6c88337fd589af4262a83ce7326e1227d1e40dbb0723f38bbb1dd31f77c8a7eb407d6ca335ae019e5c90ddd71b3d4491b87825c13da375c8095d83d97ebe315c20e8d7b1e55022e6df75bc22527ceacbbdd9b900264095c5e09d2222658077a1005040534299947f1ab14c971b147fbf747e0f2137f9c350084419276fb67ea444bb9084c64cbae36f90f1c3af127761ec83c257f4a293ae609705e9fe98e7cf5b5280d232bc75e170822c4e950d7fdb39f6a66a686975ae39364e77db6d95e3198c2d6d7b160880067d7bbea72f405ec813c758815bcd89fc586492d2ab921f89dc9536e44d7bf74a8fc4730ae793d33966f9c4c0b966515f47150940562b1be7621e350df02fe88510b05af9a6502a94aaae5bd4eedd6167cb245d8d62136ed4f58f5c9576ca36518d642e1ad38c89ef692ddc8c9f4c8c5686730e4ddc9e5601f75e68914123ac9720e5942e7d9701a4d28e6ff29d2b21a6a0200e800e2eceabd54762356dbc887747d98d48cb437589fc5cf19312d2f5f1ba069d7d095facdd19f74910ffc2902fe095e9cf7203745ef7c546f95287cb599b2f4e89d8da64389a30cae4ecbfbb63ae69523706ac005d2b01c81726680906af8d0169c25dcf924979cbb34ce71b06f7eaef51a04b76f2218276f49faf437b2f994a017b5b28f52182bdb7ef981111a039425f5bedf8c8395c981916aae45ba85f189b9d79e1957e85c969e6ba88e5da8cec8e0129d1cb38c03a0d823612bc8eabb19dceab4a10934445a6221c2f3c2f44675c1cce110ac9f85da73ffa7ab43e26d5aef30c9a29df081f52d674d9b46b984cca8b33b1199fda5e2bfbf855e2d6b5f9ced4c968f3d17f91cc308b5fab68c76ec12f7b7f896ad738df1a31430e50c8cf1df07b74a75c9c2e89981291463e4f0fa32780b54477f3e56767599df403caab172922cad6ca82954c9aff10319241da14f40d9e7328b34dae4b0b97ff2dcb8f899b45e05f2e831c07fcb0a74743f028d2fb62929fc6c295d7dac26f83e19ec23469dff9154ee9a710ba5652a7dc629ef956425c461a136443adea986040a1057284401070f76560e736b0d7a957725fcce63ee1611b2a79970a3203911e90cfa868fd610429e28259e7d0aceb8b0626e4cb803b24819908b002ca073c9c7353822b08ec7fe5083a40d08e2220a5a4a015238f2df4a077cea156bac6c1e04707f2865f53f61deb6602471298ab22325f7b1ca3617a073e8af782f27b1d4f50e033b1ac7fa7acf4091ffd5c2aa0f319d9599101e8a292492726dc55ea11a8e743b821134720d3c5954df19fe3c328bffa46dcc1d99039436f225c46def6ee32462d20b6293142dde281f4a088eacf490f0b6979c5b38e41491c1e8ef23d7e3fff7df20583f21d66371be58c901b1f862cc1eba5c1b424058d5dd20ea1966a7c13d84b9c4c983af7ff9786f8e8b804f178d7b33c7d75d6098e9b626a680121dbfbc11de597a46bb5b6a6f5da53629f2e80aed4a24c3ad13c819d8502c5bdd0b12beb84a1010f87e3ed55fe15b9f94772323093567c42bfc3c5a5c77f88448a20cd3fbfb7d3a467cfb2e6ed2ab78e694ea3718a392f66be6f6bfbe1081241d0eda4d3425911d68322fcd7c693b062bdbd4ac614de4272f67f0053be8293d82d6a6c526c36cd258f2c0ee142d3fa3550c666a88cae559c5a80d08be0f462063f28894a73cd8e5e10f6432df41393d8fa1e660f74539444092314c66efdef725d5a45b4fc3afd87539b91cac2188d5d45c6ffe5de778d175b21c759494103cb2ebb97b3f66079eda0040950cfb3402e6ff40ba3cfdc7a0d298fccf8ba2ed40c743569ef6083f20a4de7f697a3b786b8382a98b813cc583fc85fdc7a28607a5a2576e2c35b019bb7e3aafc81006f950fd61c97134a76501459ec36f03d2e9e4f637fbd7f1d606c04942a6c5d498e20212e484eb33ecdfd4eb076cfefbda11c9318e8e105ebd30f3019a1ada8de288671c67ce7f0152386b319f994edf072ef21231818ffae38e0d7c2ef8632ecb7b77921940369e7e2d69392a1c5d7565ba5392457ecfbb24303befb42a1eccf096c1d3b2ac1c77ae3e24bd36f4ccfb6a62b41626b28f3e1c2c9c4fa152b128dbd1e74707e8c4612c44268e0bd163b60dea31fc89d1520cd52fc6789daf24cae7521dcd9189c3a81c9bb0e857a98b0f86c2b96aa782e0efe6654128cb0163a3708dae764cd43128ed3532968abad24868d9917c496fc3597c8e0ac85a42bd4cef01779b72402b7afcfad4dffa0d6bbbf2a2ceb4146ccbd4ef77120941db68cc1e8d6a34065d53334abbf1504d9eaba8b3dadec573ae8a8af3acbd4d1575faee5d110d8b32e04e2f42b39649be5a8d9ae8f700a8e6ffd9d7741964e46289f12fd4abf837e6c645edf4f708613c912f5439ddc7ffad3a51f1ad9bd311f7a62d321b955b713e5565fc4e6b3b987cbb5352b0dd9bd40c21d39717f3cbebf5bc71c86e4375a99da25f7821d25b5c7246dfdb12cb37979acd01dd2c438103c0d0e58da5621e7d871de8950d6f4759d5ae5da2fa632c785f90c2f7326c1de0f239970e74bc3ef29b1c3a3fa515111c9f387cf252225d0eb509c22877d03d490edff57fbc3953064c2392c052017f85aa9a8d741b1d814d25b9efaeb4b86f6188f45409edbbf08c21fab084d9db8d0cdf32067d926aa5ccc103fdcb946eba905a6f6d9caeab385eb41b5ae18147e9d091ba03ed2832a75cadeae3d87a50163f51b3da5d66c067d5a640d9f341f1767d06fec0a2e167bceed1475c6a0e96ef5ea8049d9d4bb24a9f4306798d75a7cafa39cd207afefceacafc6b67853539a6c7beeb9a5f143fc1d896c40e30f731aff1603729dd1c2c8f16db66c8e3707b1060ea0819747a27447d1caa6a1aacb0a51dc42586e42369d8aa90168548cccbf518b7cd45201b925b255e1ce864d5155f6fe4950408a6674b3be35969e4d46592b71a30af56738e25151a2ee42db8e942ff1006155f989c3ecc336584ca47de177067b3cb7ffa48d29acdb440d66ee5e9cfd8225071819a5d79c047a8746af62a50071271d29ddf29bdbc28e14df51aa3600267ee9681a9288ce823ee573f7b63794a6a5e3c1eac033ad1033070c250f30ff32a4fe9d60672e26c7a2f8908aace2bd20fb1da1248ced4eac49a7080ef0f4eb09373c3be49e3a4e62d8c71ca8f6ca0620a6e0292840af57a161057b660629fe4ec82d2d685774dee90e792c01db2b325dafed8c20dcf9485d8888c74050b6f923c45b65fe5fefdace6675cf6380860a850ad7cd978467f61f77a7756fc5cb15e4aaa3103a09a26d23af80e76df4b081d2d2bbd3f092cdfd10963286bc65b569de743ebff64437c275bc9b1bf994b92acb10c64ec8f521d53aa4616d77a448c8900c7bddc89463f3d0acc167ad34e51e096480d2b661f0fb56026eb40a104d253e290980591c2d1e83739ef8f628bc06e99bb8f56ab0c755cba8c605bfbc0d9ef2c1cf0f3e52a9e8f290bf02a78b00df55da6f5479b27c9c5e0072c1e7e4c3bcc1a8dbec4fec64d780181063f735d73678d2c057c09915d2397a8fb7f7bb5f6dd2329145e6d314f9c019f9c9790a76342dcd65831cb00cb30098282c385b8c6a984da3786ccdcacb33baaed98409682c625100801213eaf953e3095a9e5484335ddae578edf8a33751db06a27ffa670c9e3a9dfb3fea7bb71574f561a950cd409ef58c972add2e8446dfe2e67e64a65e512572a5666af13ecefff721790de72b37cadda92daa1d1cad8a88445d9649911023109cce95afbdf29666f09f64d3e657029326206b5082c2c0479fe0ecf81eda3335c68ccc2d500e52d03bae51cdcadba68bfb57c2225e0a52f8110fdd6d948b7bd3a482c95730f9f01868d36c1ab65cdad3b8e1cd1f05ca0862e5019b97db28314fc741195b1fa4e136ccd31e7c840325e3a82f0fc6e12f82ef30db22f1518f6e0cf0e3f1667054f99d21537ecddae7f85c92997b43271298ef67f26df8dc0a0ade6012983a44b134b1c38c763c6f2d951a22d445b05f51fd0f9e11de6652b816a2a087fd94141fbe69d24c994019c4193e9dbd42add6d14634cfdf754c69e75ec86f95329bd0306ac5aadfcf7f4cb2b4280642dac2301a67bd00a96ae6d6efb6cc2ac061b699992e2d03377bdfef043f7e31ed6414c9d8e900f21c76e6a452605e6eab766eb779e51d693b64758e1c1719f7b9a9cbad9f0db5ea0177ea5fcbf37363747590bec25c684dd4eacc87f72134b83bd46f97c42dc134f7fc13cc82767bb6d8655d03c639336b0773827546c611d053219402344d7c8176e8badc5d65c5a7a9251f0a3aa0b9348c6e7adc16c870bd726c54abf4b51b19b0323cf3467c47caa05558e758a09ab9331ee1bc505d279c9214e7fef6498fe0ad2489de59aad495b06ff4811a86a25d91533a86417347c30d68c64616f3954f568a9d2a4240c6e060b0199768b8e7bce4dd0c33b8bc4a624dea968bd70884c04096c53b1e73975ef8aa07f962cdb45259f94accceb3c6edd7fa7f7d4c41b0dd24da86784f771b1f3b83785bc9e3a98e6a881cf813c7918c7b2d8e10cb44feb4d4feac576e153b43ed4b207a9a7986e2d3a4ffb886aff3c36aa64123e3dc22061b8b46d0cb16457e59014d9366967291278e862f2c973d5da45c695868dd78fc594f951f1ae8b54a998f12da6851a1ad981ea6fbd551fde54ea4ff0c4b535984024a3d3f011956e672af4dbe64fac1fb6522865bdd471868c6ea2c4b7aa48fbb3d50e0c72b8b229f26c5be87baa1a53b77829d17f987bf1affc36cafb81bfd0b6a88ae74288f6135b207666d230e4c3a8d8a8d09e467586f8ffd813622b0c8ba898dc0fbc41d99decf62ba625289044031f1221290037d1997a26a6589be70b7060bda6876ab882560575b24a7e274738ae0b030a46c0f27b69145e5f78cbc858da5ad0947351c1ce67e01ffdcdb6c9ecd2e9ec9a2cb2a1a32d6b27c3e278ffbf7bd20d02654b2429700f2b87f9cf52f5c6370dc9cbd2ba694d458319db6ffa83f0bb67082aac5a276f3727df6d05fe2494349d785c8d61e441935e3621796567a69e68310e61a08371a13c9489749841385203101f6eb0236f9738962221b2da2c76e7611cb9f677172b7724f436cdae83b7c554faa9f923d86a9976b4358cdda935a283d7eaecc303c82496ebee61a20cbf4c04bd9497979977d816e3495eea4840a8d7338bf8723dfc836eaf4283f3387875d20f284deab8fe32db1433e61d75ee943bcf185ee54560c25f395921d7d024f4b7708436205f92324c1d90d90ce40c9aeb2572a9dd92244b4865615c1bc5bb86ba036a4972299b632ca13e9af9f25c5a8be85cb6949288655d830b01b4d366f798a0c165cad3d55b1e5ae0fa5b9c11947fa7ff48165e62239b100d15aa7d05ef044811f68023cf10955d5e13ed57549be2be673668c49b9fd3fa9f73c051aa9754160a20fea26e7e08886225a98bc3a49dcd031d3e67b28cf766ff795fe71c0fd6dcfd842071679da892db9079d0ecdf700929ad3b3837137269edc3990555a92ec661928b21c8a908277ed87831d761f4708f8107c45100b2812ff85b5a040370cd50623f6d6fb97c7940b602b979dfdb33d387b05e39443af30ea519d60ce4cc5a072c1c3d91a22390dd3f0213423807a9f5f82773bdc0d347d82c893803f2170c6944336a3532d761551b30c890d029d1d8e1d1edbe67ba5f5cc2409bb432768a7dae076ab7b27c6569c3329a39bc12b4c43b6ef8b2a9df75717546cf9d5eef51ec3b20ff45c26fff22dcd2d406b9dfdde794dc0322349c676f4fe5327203c67a843d8df0657901784b97b5fc32f9a4e0cf487c6a2d006b60b37f593d9876c1e7b7c343bd6de145cbf2284f20efbd5306f1482bcc04b187c32098255eab97d3b71c6f703a0abba9afeb4bff33e1c1e94d267525a36c428ace99d922f6f862c47cedd0230eba940aa64dd6894ea1733366298446773f075af988909e200454cd83885bfa0152314bc3f25d5d4f3b00ab971a7c7083ebf711895a8116bb03984e70efe2a13b783e9e28fbec5974b02d3e76fdba1897f150b0240165669a6110088447ad5e83295b01cd4bc609a9750505c33c8f3d7c6781ab7b717578243d2580335c13f2e2356ea24f073a7ee5f24e331d216046307769c637230acb95e96782101cb18411be4c29081c8a42c705dace005d6690ccdee8bd8494445d126c05e0a718267653bdb01f6fb9de16ab7c99f41884f4a9116dbda971c7ccd4410009dcaa066634af7d7ff145d04a65f29e8db61a8f4f7e268cb12a51bf9dee9e946eed9f41997c9a1e603f9b9ae0a2cba37edc345817f442b21ac00606e28cd24a05c161478da78d13a27de510d60ec9378711a0213fc0abeea7dee02ae0f36afa21a5e63ab5e33ca47319f372b981cdfb6e48020e966f9b6180a2383af70700ae21c92560ba7e916d689e5cc4b53e5b04d56027a6dfe872c2b136914dab9e5d24bcfa72a49ca0dfdd4f967a4ce7f81c5a2a5708567ce9d1d8ee4b5afbc1349d4f26cb5412631a3fb85b1d9e16c07e957a7c8939eea13e06049e38cae26e9b30d60446ac5e5c2a6096966470707cbd3ed50fdb9f2124bd96b4379c7d22906ebf942ea4005eef57af62aa9cea6ea70e054fcac0bb09cd398df1f49fabe1fa6561163fa4e48bfbc81ddbf6024d67af01f8c16d80f0a2450489d2cd2ec7c9d7d32f20f972b685c9b26d16f80ad9768a133e77a22ced4b8ea69106c8be56850fe26028794d6e8c8bc874fafcddd7fa6a06d5b2d127c44807eb174f9585a547c7601fda3747cb076ec960c22daba31684cb6c26d0374d42096b91018232b245ed371a92dcddf0013890ac7fe281ff32de30b77e587425c50d28a187b3876837d5cd56e5df4473a77b461e9449b006783bc5dad4559affc067f1cddfb66cc4dbe4f42918fe92e3cb569dd9385ee061570ca45339fe8dfe098c985d195f54f67250325ba7793b2864c32d4bf72e6d3d04741b7133bd1583d7e9350adbf30f0240e76f5ec02d7d510c7862743174aab1f45c5ecb39ee172d465300ede0af699a0ff06a40c570b12481588de99a7618eb649db4803967e5cfd6f57828748f202dad15725acec6a44c24760aa6b845be65d12bdbc513d35ac0ece2ed91fa6e1f2c69634422256463f87da092b4693e24fc806386591cdce232502895d8667909a29a512373c87f23b5b5851f8c5ae1a85ff75838b79c26a356ae78c26ec4e6750918e2697dea75377b1a6303ec90f929cd823edd79501b5e7a1564f9c7af0a752fc1cc3a2272ba31399e4516f4e3123c76afd8df3ae881d3ce7b20de54dab238a3f5bb17e17a9ba4a359da1a307e406a24d202a85e8aeba94936e246048bd5f9d51b9973a5d1d327b303cfbc4f613338118243b5ab4ded2ac384c4eff61b9075971ae991b27aed8d057bc2ca4edfa0e0ca1a71c73dbf2a5ca80442938177759b0ce03845a42b74734a42c58de320f909433966c76260303f823b3d698fa22c4797df995efbcff791fe006a6023a06debd142c66133251e422211994ef5315f1f678b2ee0f404df80fcfe65e76fae479c0dddd18545f6212b7b5161174ccdf7f394ddc6447b9e09ced4abc18de9ee8e87d2744b3aab30c2080d2c83cd76b5b035bbd38c6ed922439872189926d6d8ff3dbfb76b7a8c23f8f051b615de0f39f260f7eec00e774c85154d7b6cd6a4375220b318e60c0f941a99c86832779640017621b286984e890aaf49b000a67aaacf9b9450fd86eb3d9810119d5d985bc37dd8cf29c110fd7d309d7db3cf607d263af3c0d8a7ed024982280f157f97dc4f31306f61ff4c447f2a2d312709a1647202ce0c71c4a684d8e6512d746a1c6f872d254fe978739818841ae2d2222b33a9ce072a9d5eacb881fbfca9c4f7d4e0a03a1106581aced98873a6851ef9fa5cbc507a9c2303344ecb17c350efab63f3e49500f7c6a142ac41fc56f69a7fa408ee6cbb248f243c23b27fe51f46f14a6b30009c1651cb01f66ae1874c7801ea8c56b009adaf8fb1d529feea21fddfd6be751cd6449a8d3fef5d6837dc0cf2a9c56017e15117f01e13924f6632ac9647503a1e76b2456606d529ebb8b5534d865d4c24f2149e641888475c2f7ccf22be8418c8d9d27db677c1103b37d26988e7b3ae457526df23d5841543993e47f9adf73dba884b6d2f0b640ad3308812123d99ec8c1476b930a9e8bc336fced8fed480ea10732cc84e9f5441da577f32639db5c3b4e569d01e51aa7019c2d6a920fcc0f552f57c41eb6c8493f67f1e559f2710c3772e2f09e7415f5b15d194c77c027048b0fbd214d12fe014ef835928c5c8d7ce36ed1512cc6e7819c99629a11af5b46090de3a7c6e168f891e4dd8fd6e46409def5fcdd74e37873a71c5228d333567ce70d22f3a904a5aedb566ab4c23b1003b8303250e336fc1c3cf3b0c420bef35ba1305c6152e25b1f0cec6252c35a0c2884cc52aad93b227ade63c325c5863595bfec17054475f6e734eb7fede34d99bb706611c6e0778256582f4bbdc3cc59f8047380046cfd1fa0d97089243f0447ed00325a752d5923e4a9412eda5ceae5d0ab6bb8bbaa996aa890bf8ef600354642fb3965e1b391762335d87ac00306e086f2f9bfe87b79c3966617471e1f834e20378b127d0b7d2c6e667aa651938ad063976e6e606f3001d55c3a9b094fa7daed0cfb9933d84cac9a25356f87fab35928538bdf6929cbef6bfc3ff18ea112ca7edc8deca70f37123966ec3b3a804d45b856e01620f7788d93d1ff3bc79f819d207c923b43d018bec67202b476bcc9a00fe0887e36114dd321e4f75c37c7850da9ca34c7dbbe4e257ae247e2a84820846cbef1abef031a821e4ebbb89515dd2958100c682c5b45cba7895b7401316d2805850fb7e2a2503b8c7dfa989faf3c5315d12c4dc7b1cfc76c4c5965c1dee5380273c9ba00158e62630693c309d1b1ebd2b9d1184be1fe2a809ecc9df0a82ebd64f97cb6d69d5dd1a3feda51204e624ecbc4c4916b7ef6df1ad9cd3e32582bb5df856a3aedce512a1469a005c1ec88919335b73be50cff3a48f14353b1f909c60e00fc1b9d6bb3cc44cdac2e07c5ad5bb878741acb907bcac7e53a7208d873cf5d9d4bf7d58304ab18c955f00d5a964c0045c63d1e5ec3bd9bf066d996556ae9e4865f9f7698fd69bf344bc6082174e7fcac4ac510af2ba0b8b4307678565ec84a8abef569074bbcaa5d4669a02cad1454df6083025ced5928e11d7e32c910f36058cf7b75cb7512d7856b51f78ad37c7d3a3734774b091516ac5754d7fb13c1d8202ff08dc67339a7784390428043d1ef985728cfa84f1cc322bcece05b38a99d391881827db9060601332cdfd86736b2f31c9e8fe483f08ef8040132c3f63e5c3013647d6c76a2527d5e31e06163487373c61c08c6f7b2c1e415b4bc2f41fcdb06d7c9f8572431e71ab04eef5f806b0aab6a053f255a45330bdf2527c30e6890aa35b5155ea189b1a4aa2d79fafa39873efa8c044c8c7740988a117726503f4d7cf32b16d55ba79afc92e657e52eaba518b375ada95105a82b0fb75a1054ca632810ce2744dca8cf5099d4d3283785f59eb2368cd3542bee8cbfe8268fa3e9ac8f1fb44194c003960e4b637fbecbb5b72e3b22a7d7b542b7ad0889e0badef3a59a865a08c277b8b9c2e171d4155a422d8c03a270d5b21f8eebfdfba349ff8ea3d664db3029f36d4088d71300d3c57669aa0d159e5bd56cfec2194fc6d93f87fdc65039234f7f55f361512158d0c87331c1600e530671e7e924e4835a6455c4435e9cabae0a635456dc0be4894dd4f219621b23d5ce82d65ee8826c3b5b376a65818544a4713f65727ae64dc17c2bbea9276e09e9ca530cb87e90f0ed1f529daec2f2319ae5c714093363bfbb1a950897212acc569eabd7bd518ce3217a7a258aaff3ed4dd3a0e6114cd464b20d149b2e722e693fd0d4d92c4d9d16b06dee757dfb8c054a3e921b0c0b265e5c5c25e6a7b3c3e3cd6a7d90c3664486e02b5410aee0c1f934f2553eae178507e28e7393e09e1900839d429c67e8f9141d462b8b3cc9b4e943837b08a7853385d72a500903f5610a0ad88e8c3e5cc600e28e32d6a82b211983712cac5b53bede7f2138f5423cc41f07cf8055928f212020d2fd4a2af5911a1287f665d80e2b5df9938498d8bd3088135091079f8d302aa7905028604b499286d599b82f47243e57dd9a3c5a3243b092dd774bd79b0e619c343a860c6ac13716adb6424de246b7d5addc6dd6bb5768ef949e109c36980c727cee9704ff695730afb08f9429f8f9b0c3ceb7537203438f5b82d7164902a45460898b98c5827d639d6d948d72ae4a9167f56602d5a4f43c09f8af8dd3d0ceca3dd957e804f8cb1672f290186b4f3221ed2159acab98030be62df1a20bffd15275a638ac0f9b92e0bfa7edeee9f15136ea3da6c5e4d805d95238d7a190f68be9dd25363f656482d1ef7648de369ba4375d49a868b81cdb5b0a507042221a940379d30255fd67d359c615979eb1aba65447ad605ca17550dbf42f6df8cfbc671075a4aca4c35cef107abbaa1c0890e4b122ea5b3e66c6f0435efcef71da27b8287cb3a4da5ade64ce347be34d06da323b9edece67e0ff109c94e1d7c8dd0e3ed123fd9326174a11a3b8cc4e0c04126bc368c64d687a6472df5d8e7cf08855a38688523ba0f887ae31b989bc4e5f5fff02cb24371c827ddf77a0de578af5a4b692e7b1d2650cf5f03135483a7c972e2e2626ec2305d5e3b72dab8723816b405fa6b21e9535a87f6cdbb7d04aaaceb93fd4056cab635c1a9cedd48813dc8b5da6a0d4699157702b0d329c4ecf00001e28c56367b7894993ff00d31e573be1010cf62bc809884b647b47cf401e4ecb2e66ed65265259179a42a395fc051ec9c71679f250074729b842455363e7acb23096e15389bf69902f923f6bff527b5c38bd25d4914dcc9d957ee5958a7b5aa2a64f00e1bfd92eafba1b719d3d8e671bad87016fe26d920c9b2bbb02c13e1cdb57cf5dec95fc019b9ef153e508b7cee8c6a5aaca1e454a63eae6d89f56a5a2afd71ce492c71ab8dd0db2144dbba6eecf7dbaae32118429c2bdd9a94e13fb4ec84119834547c2a0122573bcfc8b015a01392f7e294cf23d98be4908698c2c1f1ef7841291e6f01062de239c5f2e5ea32ce987bb7614bbe45a4b2de99d76fb04da22fd5d661c3d77eb76958d29c8cb13f36a4e3d0f879ca5e91effd091e04abc533e2cd8eb22d4323c4a138e468c2db579500ac821c021bb625812b986988a155b2297bc6af3304fed858f1af5b5c73805a7bb185b91dc072183ce00a038abaabb408de99e50b54f0957d5029f17ef9b1d48eed754fc75dcd831ca4aa5acfa1a93c08f0453d69ed2c9bd0160f41742458bd5a5553e9fb1593b39f27c4f41b61e7691efbacfd134cbbbf7cf85f33721fd592337a03a6131fa64319a82966d5af2efcc883d45b7279f7970f9bdcc442f4fcc2d2d9ccd0725c7d8e1da5ae609baefea5054a679b629e104c8c9e8e5b001397a571c3db891516a06b5bd6accf24d4092f121134bf087d8abe92fc3f2b5880e2465956bffeb7392d3e7f228204f468b6661e31acc971e7bd02d5adfea9040f0d02b165ee329d665653f9100ef3b34f9fe65971668d2e4254235593a014722dbeeb95fc3f583663e190c1d1387e500013a5074c9b0d4824ce3825163a03bf3c8c0cc5d46fb72c82a773727f68d41b8c94578189aa6e2f3000d0a3cda80d8b1a856b62519c2890ea155e55b10bdc92395aa5541295768b5392a06ec10a804583a9e8a676cd1b2cadae363acc11b092c6cf29e4f3839d05b67d938589411fee366ce77ee66731450f865634c2722c11a8114736d63cae78c1931958a476fd795638c96321b9624179c8c7961aa48aaaae74c8db8cb0f622d8f7d1b6d7945e4e44e937fa2972bafc0532d4c92c270e964ffd5418007008be7fa080e356c9ac836e4f403f31259dccc594e3d371f9c0d371e7b1b66633099e02db5439b5097de2cdaf3c4e20cca1736655aaafb12240a50722d532ac53933acac67f27628ba3cc90438f09ac42fa8717eea7c99a2a98a3eccfc723ea4d26c300d61a78884a58845db52c301ec86b0e316cf53e039e310479c5580f0f4527a159525e1db0856b83d3a8f6a92681d74b58f263b7ac8fcddefa109f11288071093bd527ff6e3f8ad4772fe614d7f5520f9d35ebf4e4129286ce6c4c0246e776ffe4d0d082cac092a0045406dd6192d0f64ffe6772c6c126481fcecf01a28af06b9c0555c7a812f96128933e695526587020acaaab2d38e11e72dc4798781b1f29530dc9cfd5843b701d5ced26d366cf7967afd5e8b0990133fc7045d00d6f9b26c0d42016ae2b67d52694527eb16b5261620e0ca70909ff326f195ef76f01b7065d174640755cac9feb14caf98e301c0887e26ff86730e4d955998eeed96f6cd748ed7ef1bc340321de29d6299c15ff6909d9707519bdbb3453686d3409fbdfc8a13b24f20410e0ce5812fa0f495f6d6b20b46a99c6e00c79972f2d13770b7003823ea827eb15f8b3de86641a12b5113096c993a44ace677ea54e6f9c27a955ff6d06ed16d7a915a6f92b6afa5fa5f77bb6813b5dd341022d1458e65cac03d5ffacf5eaea09f8fcb18420d0dfcc1d44e1bbdb584a87f563734f92c8f10becfd93b643a7396170606fcd74e6e228f27dbc72e768416a2c23957c7712ea7a59fc3e9a7d7a01e845e52edbac72a7465c6641e74c9d61992bb1e48d36999d35e6f8a90802a79886ee373457416a82f078611a9ac45ad640bb363a4232ede3554f890170853f89bfa6306e051f7dac65c56e5ce59a07fbdea980b944810cd532f7b0606f8e5d936cec075f7928704b66a7b1d1f1332aba8146fcb8e16ee5fdb364716bbff9a74fdc039b26b7af475c24e889dcda82d741ace7c3dbcdf8a8b204c0ea7a9075292c8672c0e0bcfe41c866323c75659171677c66bbb04c50ed683f5a0cfd480577bdc786acc984d0a12ecb962a04fdffb554789fbc689c5fa043fc23d5e98083269ec3cb65daecd7482d5a089d1a7f7d1c5826f4d375ec3eca3a2932247011189556879749cf1437223291e0194cbd5085f231ca8c254dbb1f893540193c12c6fd06137fa0ca2f095d1f9c5a4eaa82d2377c6a0a4e88f6db6449652d05f9a7dedfcdbae042057bd9764cb81787a558f130fb58a1c637fd529f6d1579eaf0998ab5249f574d3f072916aea19ab8533dafc10484006ace0b0d197ad3cc8debbe44faaca649e5e246ecb42e7acc1760fba07dc4b99cfc2100a932ae6f6e16af735d8127795c0d0bdf0b1b82d2794225da6f7982e16f30935bf905859bcf3ec477771c9078fc89e00de4a8fd5ad1f7b3ea59d942e77551044e83d8b739011560bf0b92979ad7d5fe14c6713f4ae860c84cb0af584d300249c3035e2c40394b9503e4e3f5516126d37a7626aeb635e9ef64592b06d125082143e8ca78ef51182f1ca2e54e6c518027a2accf1bf717a761234f1684585d2810a4d2b6e72e49a8d7783923a3e622dc4b2b9758159e4b544b291ea40a12e513a5891acf250fc21c6c616f17873f935a8fce55e9a8ca77d694d06890b5444e6401674a5903d1811da0ff61b29abb2889fbe37c11ad58a3575cd8648d5dd52da8b446a085f350f2f85296fe2ffb65a6b6839894c2d2f1bbeeacbe5a02c1ea9c7f3ce990913363a35438b58b3ea9539b571ae59b1a0c200ed8319e281a966db7c8bbe33fbac37fc46db6a91d751dd6d37a5eb87ffe1149d23de8bcc021605a20dcba4809ff9b18aee91be8221a85d6e44dd367a78412ea9d9011d7a73622fc7cd9020dfbb3c61759368faad9396188a4b1d3696b2fd281ed6fe89778454930f403e6ca59e44a4ee47a598dd50c82ffaddeb38d97f7c956a222da9f5f5867c5b52e87be1a85101010186f827eae98fae019c363ec260cae7f9f46ee9f359adf7039f2d5677728d4c5b857108f23d960df781f4b9f02fa16ac2509830c4eb70edb9c1778205b22748df2d77299b0668691b68da7d945142737654b9292fb966b2d07fd3556315a901476fedd7f808448a117c715356c70608e3765b3ac0f19a3a608b5f1d2ce67b2aecf76d6f89ac477005fef1044cc9c0406e8ca09edb1bc4e05d0ef268d1e1a02d1b7434c112bafd35fd224600c82fd44580c4c857b8ee55b10f736e93634a8c496f342e7a8159c10b64e5ccf8529ec981eed24fd8e54288c105f26dcaf2e02693cc51cbff2dfb8fdc06cfb2a1b6924015b7ea417f684384a521d34e290ea6b97a5ec808af5e574e67cb5e2312f4c47a7f0e768a693905128a777d97ea384cb95d837d32b0fe1cdb7aee6d935966d7f97289e745dda46355ee4f02ef166ac55557da3a9636dbe36475b47906e18f28f492d0a9e915794198663654ddc8cc681a9640bbe5b95c51256510ca397f252d84d90c21bf925911fa9813706eb7cdf6f7bfe6a35afdd0eff919dcc5b4e55f816bac5532f3f78df2d651e8cc43cd16d2a48e2ad5e8ff14964df120619c8e4a3f4e0a498309a135a48972097a991d8e46ddb4a104ba651d40ab1c9b192e63aaba276eaa27b79d212bf7ef0f7351c1517e003930fe262d01fab0c9be86c6362021684b63303cf", + "0x3b5944461642e26b9ea483970adaca91078dc8826c991ad82f55a4db6fc67958e37e5095016886dde8b5e898744a1d31950b3508ec98272558882c04a12d799872c0cd152cde8d36ba9bbf177cfe74de246c6c52246cb34859d5bb381e7d774bad777a4e4578252e30db080c039b75a5ac4b24670c6fa97dd0441d882224511bdd45ff3f2f152b46867627373d655062e602dbfb1208cf40bc8a462b796339b44f00b7768051c8019fed1dee31793022d2dae1fa97024787028f942c066c2332d4acd72f020ac15081ce3aa13a5087273351c9166db935efe985e0c93ecdc06d428e0e9735ae1f84d7d596e98997f3ef116d61705f11d09f9e98ef3daa336f68f140e1f1cc62294c6e9f06cfa056bcd63623c0e7aa435f2db11dffeb6977afe73ee765262cf4c392b8e661ebd8651a94b2caff8c7c78031d96616fbeabfaff090b66246bf098b7804c57420adc34cae658a1a7c97c313f9326ffcee7375834403db132166784769f63ed9be62ce19f2a3e60f0474184954f1bc8c81be661a49f3d28de71144954d45de6d0b19b9c177c41e05651d924c556973db6c3256fccf2780274352e0b57e53a412322d2631c4e7ece2e5a44406a949e98d8a877fb3847dfcbfac01e830c5322cfa5e0cb047f04da7027b4f726114c97627a0cf194d7f868f1ee8203d00c96ded30e515675d73a7c7af4ed5ac70369cf9d7b2cbd1a07648b5d54ff311a153a5c360ed89779cadc4df08c3a4af85b9bf57d0ac1974b0179c524afc7ad05e4e32e4109f7869aed197f1db256989324b89fb08a1653a477641842b553b3f4410a0bf35dce6d6cc38c0398b0c787609301c435ed04558e7d628963cb12311adf0d4ddf8fd96e258aa111558dfa52cea5d341c8fa2b17de199aa1c69e3e495cf166729e0003fb83d666a4cd10bfa47eaab054d6528aa7a11991ed246eefd306bcd29cce157f5c053577fb3262d61ea081d0240a21bb263ffe607eb0d3b2d84d6bc611a4ee382d6c4b981ab324d1d4189e243662cbe44ae320576a20226e18a0edefbb090bfddc96340147cd4845d080113af9d91aa9dc3f651349cda6a585c9b438a85186f82fa610f78db603788eec2c823ca2a0353b9a158ab8dd625ac6e588918b75c795bd7303943cce9ef47e878051b2e959e9d829c286da820d90b522d7c939e7c83970581b1a6722112d86fe43547535d4e2b8c63d6fd2447135e15226d82ef159e70943da286404952d7dba714e80495430f5e7110f4a5f76990d509b4406a7fb579c1e5b8950adaba0b1ea1ebd34a1c1493df20325ef2d6ccfaf2db7d904663bac0f894d0a89f240dd625fda55d47758f251d68545f2a86365723bb95a8ee5ac6fa0d94112320ae17c45341c700961649e88ff2b6688f1ac97b4d74ec2aed7e54e5c77ff23b25f3204014b101c5e7185ff4992820f6beec9bc09127b7793191d88a97fdf8d3578257cb5954509c4f6416894fadbc358f867fdb61de0f90e744fd1bdbc65e229e78c7670310c6710c1e64d7acaf2a28f96328c3694d4c116ec0b2924ec91a5c3520fddb8508c9778faf74da1e878b3564b9179b987ee7344a349c93e55a3cf7888a51504f6dfe51a90b4c2c10eee847670a2efa065ee125748e93dbeaf486384a1167c427eb96e762a6e202998570dbc23051b03a9338eb217c4722c5a765a663724ec52fb6012eeb5b70b3aa0b3bf7a4344452b5d25e6d96b6a6764e05c9a62a8581c885e12964d7bac56eb7041d9037bf4ad18703823f8ddf31815d23974fe6ba9d52e7306123dc8d1d94441f9cc325fd77ffbd47d875cf6821c43e9fc7585775fa800a9b068cf27556be343cd85e49a95d7bd76e2b5f76c5e57c680fbf287b2f79aaeaefbcaf82aa90d7a058ef1792be23177fa8a05e0f9c13bc95a2cba577bed735ddc8e3c0ec1c2cc4e1b8ce757ad18bff851f5dad1b5c8f34bb7a5e48c3ba1ab266e66a24f2079a7ba21510767b8a80a431ecaaba70a13eea1ba5784800ccdc7968e48255a3eca50aa0a0a9d964ce01c0de28745e6330a52f2233d40d46b39de2d31e198b3d8058b21bc7cf2554ee7bd4304720a334fe3fbba537c98eaffa340dfbc8e27440d215db3fea2b41a13fec882a26d1bd8fcc3c248a232a26a6c0ae0968629bad782b4680bbc443fddfd508f9d33b6d04390aaf53f06e487bd36cbc9ad1b50729d216735668d2bb19c2bf3211bfa937686d0fb2d190bc90095ba4e3d765c0215aa5bc75c179ac9a4d72fd2fab7467efed948d8d09f17753e632e2a3db66695727605d51f01c66d4a14e1b4e4de8a533814299bda72048f85e0b7ee2a24504ab05dbebd1520305f6a5c359732343b913236b624da860296c3859016f1edb011d720e98d5100017a86bc2ef54e0f82b593e14ad253a1d1ecf8123ac27a33fe45326234d892448927ecc6d7d66bfbc1341adae7451ee146a53b0bc337bd89b466d82cb395d321b0cb080d50afa434e8acf38e545fad3323c66c361b566379521e2f6a85c0cbe0b101bcace860332f8f404788cf08aadc3905771e786e3ffe221d5b6c106bd15f2e42b4c050f87111f14322fc4eb9a7f4e62f1393c935040ad8925366c755d29187cc1be9d1f04236aaa5f14051ce42e6d5bb9b283ec06901f550c0f0834502f98fedfccd9c1322ac4bbdd54d3d1f75f2173a6eb4d7b8cf3c09e0e0866e9c3f3389fdcd96254490b5bd696942536c78ac8aa6b6d10f47a288ba117a0877f71d6c72af866f90cbc44972a908e12c8b207a8ecd45608c5443a49fd92e3c5dd2fce5a68b790a2ef58e9167163e11ce7231190d424103e424fec6ea76b84749748e73ccafed1d080e1b6dfaefc15a4589d718d09d10a272719717e4382938f4a6b902122e1ee07d19deef889c606cdcd4125b2706e9e73d7b60323468c47e60face0ebea5d590f0cc43dee4cc3198d8f29799df2ebdc2e9c44fa9fe1efd6c2297a0280def55f07fa4da3496abc455cbf563df885525e5bc668680cc19ddbc38e1297760f49cc3d622a2a1edc148bd728d020c0def0748b52ed5b046cb6b09756d1a34bc126153078ecf05e77c460d2a1a5053960169a6acfe48a5c03cad53740bc62d969b50ed77bbd5f9db7b2d28ea8d53bcc564cbff8c1a82c19285777f27e6b143f4513963dfbcbc470613da15da3ca6a23962fc1595589ed744e3acd5ebfc34ecdafcbd885180de6ed2ab367d6fffc1366470f7efac65cab088bc5f80337768b10b6929b85bb5ed1f02ed482e1f4878fbb101cd58ca8f228a04190511be94f2b11374bf4d3189c4c29ed44d9a9d0ec74800a21c6065c86793ed5721fd603c0d1caafaa52be80bd9f2bb2d0358afb23ac963dcbfdafcd03172722fca1a606b87ba5ec42035c5505dfd090ce0a289380efe3ea3b8ddaac3b3bff53ef0265607676298c664d5989b01653837c9d6c28045bba8345344c969dc8618bea140add43e83e358b8782b2d076128b0c1f6d25d0fa622b5b02ea61298c994125f6da793429e9034ef10ba80d25cefb9322724a9d7bd9ffa9c7e48dc3dfbe7562914f785a1c9a2599290820c7475a910aa35b3b993cdda41a75b44a0be85cd1b2a83e7deb52e0e332d7360d7aefe1b38580e40defdfcfcc7f2b19ff6ff4489eeb26815e0258a46944a367975dcfe270c2c430ebda63f948219afc600ea09026eda58b7a429ae1d6aa5daf83daeaf0cfd238a35bbfde4d96fc84890ee1218acf82b4b76ddc602f238f263decb33007aa1503e82cdb30a493972b2526f9faa433db61ed6fef9fd2cc26f5bd81bbf1373880fdde5542624852292e90781e36b573844102ea472ae116b1e4f31d936c00075388977e8d17b907e7e2d824f8bfca268b3453129bf36db3e1751ccab2711b46d5288042f27a95225b77fb01598723944294607bc814b2ba6fc7531996dc4f84969c5302a7e1e6fa3f128f33249d57f38617ff4698fb7c82de854aaca9ecc37a7c74c27954e9e6b1ee23380e61da2f7be6bc092e8a7d7adf6898b6e4a79d1c96facd1da3846c02627e5eed762784ad950febd991dcb1d67a9673de08975abb95d0e2ad65750719ef43b6d492b0fb17e43e38e37a70f8fc1064a8dd8c247ea5623a3d09c93236f06c1810787ed45af9dd72f2ff9e64345c96ff12504868a519823ab639bed75cf2e435ed74a49bb925205a601435191ee17ff1ab34f0805574ee47523a8c588783a7e3e3c0b38d59aface0e475903d04c730db966640100a525a42e7713f858a6a5610a59bf06da7cde2469aaf8e136b3bb3b0375342de49a79be436a487d61679cf36296b31330e0aca380b67ec29a8e2a5cab9897c2edcaf6c6a629fd2c8921a1fff11d6ec2b2e3c4b7de5ba2607ddbe0d4158df770187a0d873686f386860a8383b95ea357a79650ef0f6cbc22c3aac555ed940cb787263447df7849a3beafa4541e8b3aafc07d2f85e623a0ee04a1b4fbcaf4a9a497fcf90d619959ac666e92b79e1d62fecc10b16eba9b0391197bfc3af5749a59725fe9be36a72b8479fbe8e3c24db4131d3d1f76a6557879a0842d2b69e28cd37e643a43cc037577e5df8baeda9b6bc770e4182c69b4f3cc0d1f380e7b9010dd3d5855260d35292030f42bd4884ba78d385abcb9df81e710f640db2c5cd2a12f3238255058669ad9b0ea1d9ef1e3bf5c48e7a1dd0767eaf01df36262bd81c61a41373ac710e429686cc680db9fafab59ac48a69d1578f0e020d3b6f1967b3a42913cbca456a188b68e5eb468d83d73fc2b2d857770a6139e5793b87dd7202c454d612da4eeb587ca79de1fbf21e1b59e2cbc431a5b4beccf0579f23e5dd78860d875fcf801d87853634548473a323ea6100c6bf29fa2794cbcde95d02587595ef37be7532be91e7484e93667958ba6bde4ab1213dc4b9ac04bafc92e121e2f6408292e4239692eaaf1ef2f87bc8b0dcd2819bb45e9cb14bf99ef48c0f50e9f72546a945029005ef54ad4b8869e96daa4c64bf84a7709307828335185e8cbcfa7eddc349c22f706a096e7ee5bed51928cd428ec951bd3db9b2724e1c5fd4e1597b55323bba1bd554bc3cc2dd72629bb27960f910cfe576928730147d991959d471f54df269b630a2180fa05c5cacdd1624a50d496d0aad327fb1affe05a202dac509b9692141fc94c543e83e88db04d5ab9ae8086ee44989dad56e2904976eba58f9537d798cdfa1e2136c3870e88b56d21e3f82158821f2722aea45e109e3fe41ae7535ff5693d7b84d7db84acd2c3f0161cc2dbbd23b510f5afa3b2d8a6bc3387e5d23ce3966474e3e8113dac4b9b2c2679de00f6cc10e1f5fc04f446201e0e7a1b7452991a0a383f855fa8b8780ba38b8ff7e706846e9d0bca248a6fa0547d22c8213bc860aeab589c4a732e1fe5c522e558eb66383748f763542dc83fa2a3215e13d92bf4685d11730b0d57cc5e94bf7abab73238395ceba3e820721bc77aac04c0b6b10b29aa6a2003e4df4d89d0833ddbb9e1b87046457e983073d53d9c9014a1a32ef8853bfe0f824a6736d4be6494ebb46f50602094782b8b941188246e9dc436c1b81f3f4d81debded5ea2a102d6c7cb097df92c7e2b78d4a7f98a03e9e22f214a678ff9cd07db895760ee6227d102870c1e15da04c5b208e4bbfb4bccd8117ad6c9e796310b5d02f01cff1dbe44c0a187f77b481d870b0be506dc531aacc56e73c2c55af64773cd0c332c7bd9665fa78b317f9c91479df9999106b8cc3ba500a6def091fc4bacf7848eb20f6b5ef5ab3cd82099a5efaba01795cb949799abbaacca8be77efbbcccacd79833a2c897a9045ccc4707fc32a7d54e9d855b8be788c4d8d4ff800f77aeecfea3ff8436774c47119fae2affc34e567dcc3d120cbe1be580767a81920f64d6b55b653aadc937a8af40d74d1fb5e099e954cce9ccfc80ccd967befe64b59bd1f51e93a824850d4cd24ba808969f2208d9b9dcf2acbcdcbc245d3128b87798157748167f09eac27b7b46537a302e6cab9bf2863e43146c0242c8bce7967c46ab3c636d80bbdd0bb98d2a59dccf3b38b2016780885c9a3b333969c2495a872fa0066ffce21015e7a1517e6781e9414b2ddffbbf9276b83b1db36ee22b33cf0968dc3495edd10e95f8f2fc8f0c0817c9e98e2fe72743cd9c827e263505a525dba78aab05883ade83c402cf9cfb49fdd3176c460252291f9d170d3eda8c086dea4a1e6c5e547bc5f9c7f3528375de008f275a8771b3c49e32b0f592fffd065ff9ce6d36e30939a088759f7537ac8ca69de73c880d1862793a2f7193c1ba21a3802a8c85d7360d1e9427c19a61072eea7a797d8ad844857b1894df2e87192a35e88c5734994204cd749b7a15b9bb308d412188e7cec46543f0764156bb3acb1bf67ded31bb851df40199cd30056914b5bf4f508da8f16b43e25ebd0c06dfff6eed8e31461292ce3d8c3e22c806d7f0d9ef86c98a9dbfb794f6a01d08675894ae17e54be6e550803293a0c76fccefee0431e26cac7fe39c999fe150e1d3dab068b2622519b7710e83bf4b6a2d33a4cc5ed81cb728bbc21e70fee5e7d43ba349307b18ef6b4fc04a23ecbea0c0957d5a0ef6eaab5c103d7b34531d991313a6abe353f79cf6095d78344822627bec3dfe6667594c9818c89f13432ebfa2c7b8f642b96e6370887ed1bfdb578baadf15336790b325fbe784ae2ddeded8ccc1739ed605c23e5446580241f9005b8e8ea60587561ec1605ef07e488fe10722d25ce925bb636e15bcfdaa00663bf7e20c3b97d636b1335df98e1a525f6c90082f44753d4b93f563049edf3e43a8e6f8d8639d6c91578f49397d40b336035edd6320af851ccf1a813540aa2d02c6955dcc64e224842d6f60eb1de471068980a4d31f5ce9c169e9a3e03c86bbecc5d41349b4c4aeee5c6feaea37ab23037fa849b118144ca1b6b06d690de52d0dcd575ca520b3eb79b8b07a2bb571b05b54ab708ffac25082cf846e27aeab8b7eff370e180fb59dbc73593b1eddc3e415cc03d6e9662670bfe9bab983bcb1d76fcc6e7fa7ade565d760114ac45466d4fac9503f4a20535f138f6e8a84ae431b64b05efddcdfef12220d87240067ce0cbd4ad2fbea9131c63cd3fff778fda340790a4bd53e24963fc4efea24f817a897c2e6f1f4f84bfc45f2cc91bab6e184bdbfb0dcecd2ae2f41539e720e9c4e50cd3c02b64ed7f2c3cfe02d89ff9b498f0deda69eea2b7b2366cfa4d5a99fef5bf777b84f9806caea4aaed2154e470ae1fcf2b981eec22671849a2fd2717c1d0fc38ca38f8c91b5a88b3a89a27bb7e48bc245ca59da9ffa29d8412faa4f4cf1e683dddc6b6221478a99981864b045de11ebda3d5e2a92a9f23135ffa1678fe80f4609f67ead1b2eee457acbd17bab97ec122b6aac5d7cee8575c5e182f52ef4edb03e3586ce6b2c8912085b26f906c20871c0c5c4ee73642f6804d518394f8d96b91813e4f3d983e2675f1de1038f8d46311c5809dcb7a853cf5f5db672c27455256fd320aa11aad41b31c8457ce9f1fb9efc2d44c0bf14e6de11e4b0ef2eca28dcc41563fcb9f310483aedd99b55fc6f1f4e8f217be524f1f7c030e0263af8420b3e65fc2441d198709193e9591ce460fc5053b0696bee13b7e85622e54a8b8a174823dccd3d2a45fa01f604e0f8817cfebdf6e52ee1ddfd52e628d889b4681b605da319e1875e43f1ef7b7c0e6bebead7f306170c2955f34ac2e366535d04c2d08ef16fe96a76901f7e77e910265fc25e770c85c99fa651651150b7bb31238344bd88ba0294158073f010a6020d649097505ecc2e295904fe8605b6e4f67015b8ac307d5a9dd63cb6840c52a36ff8d58f0e2f720b23970da512d8d6144eb0614c5b575e4059cf3e923bc5511b79f386087cb35fcf8028020da3b68b43fb930719467ca7c63e20d6e94bcc49d002478bf04e7a5fb3915e8d49e86ccfb5c060d8ce85afc7f2999ba87d3a1aa5493da441af5ceba17133e6eb5dafca9eaa614f5d2aedb9cf7d61c32ce3cfa31525e121f93e1d6c3b8e738b6d1bb1ac7a179e464f36933ef624d4962dcb66720c1bdae6771787d6a32fe197fa4fee43e77439ed1d5e7309168a3feb4b984c1441139e8873e88dc63787119b8c44f3c1f09a5e4469500dca2ca4925579452e572f49a2c01b24cec1b6c9181bae8b9c41a0adf2f28bb12eacdbbf9dfc7f9ccbc39480a0588f592f64c5b7f9e00520375d8a19a92a0c9e509cea0f220679bc6a3ff6499eb1645f878b6cb64d53c4d2156442a0ea972cfd3288c1cd12b356f0c58c1957e815224e88f39677a797360af68ae274e11d5ea39f97f0e9a9a959d56d238adf731ac64a83d29432720138d0cdc386683c38c7447f2ca94c325e9cd1d9f9181558b04121cace9b6c4fabbb30dd22d0267bbcc237aa7441a6a90588daa06b55a8512bf6aeb913415135f647e81cd86582d55c5e071f7bb3cf9bff5f8b945a195d826e401db764049bcf0f736264cd6dd10fbfded588f11cbbd92eb28bb806ffaedea4eaeba9cbc30be58f6e08e1ea175ace31388f3f5e40f4ed4aeb4550dee785fb66b5cbbce74375c3b279dfb8dc13cf390b97eb2bf604b170cec5ed7cb472fa2df4d5486ff0ab51f4b46b77f2f516dc0684da41392df2719dc8ced62562892a2f317445423808ecbb5a2c29fc7559c23272122a3ff3b832cc82ec1a25d2d71db6722e448959ca1825bc3aa56c071b05079f07f08ca6a92ab09cd590f2de4abab9b694822a3f457e9b0427d2d6c71a263694b4d580003a1d7efc9512473596c84cd3a9e357ea316d56f318fbca891e7223a4c725d5a3863a5cb20c1472a4b208464e68aa8a2d2b491690484e5f4b6fdda7a122168d7fcb8fbdb86e895be2585626053c044c943281f6b583abd90c59f0e5335d7aabeceb078b4dc11d6cce89ddee88856394562a1856ccabc2544cafc3fef241461d48ecfb3b7a62b9d5ab075fd9151aaacb855cbd184437827a6c460dba824ee081cd785340438058f6a0da84245bc223b498f474c235afd5ad35753c73b03644bba25e355ee1a031cf06cc4666dbba50ca1a82d02fcb31b43d729ba6dd3160f56f570f48e559172ccab8ed5e168a3280e38a7ab7ecf5ef7e7b5f99c3710266c1e8962282d9c493a647a20fce426fd03a1564b4bf6b51afafce4e547a95859752f46dd08a7792938dae3c4a70a0862b7d2fe3ec15a0f649d71f5b357dd1837692ba5178aab42beac1f88d7aa169c351c2535a43f6bb742dec3488a8b6a5d139dca9071c4b9c5b40cff57cbcf1bc1e41de72cbbcb41519dae8d8faa0c5ceee4affe7a9e308ad0991f2bdfdf5e96dda72a8bb11c055752e68bae839118a0e35ca11f146955297efac700fae4be079ae4b7644199bb64ce2ff7e9f9175c1c93d09134e06229aff1eb43c90f6a9dc926ba8657983fc459c0c5e14bcc348b30cfe0f5e8d4f1b15265ea3ee2dab408d72b95c77199e794c862d55f659288cedc8b817ece62b370d969cc2091672004be7fba979ccc109c5d2914b6d974446115e4f0e6736fed0c03e03339300ee232ecd15c9c29b0488c5e5b5b90c63a5ffaebfa8180c35b864d3976d67f8c6c5a33265b569bbd7ab3677eaacac810a7e4333cadf0c5e1de7144eb36ba8458128bf6cbc11293934f0389f348847b1642325e398a9f3a7224d28305f4791aca35a7a4d15851da9257616b71a793f27b1fdbae8eeec8c4f6640888fb8e8905ad62d1cf7843c4f0ac9533b95caad5dd486f4996f05d4cbf754b34449d2e06b9f8102afa136493ab8e09c79a5dab7001d6ca962d150ba5673959d0e425153b8634817830f07bc5005b03482b199a19837f20e34d20e380787f377bb3620f263efea77aa116a1876a5bf1470395fb52cdb6d0b34edaf356d7cf0a0c61c9dc02c004cd27c1ccc5783e8d44e3d5c5e60d53da7df0db16d614a84e3cacd12e2dd263092d515ece1eac4c4a5cf4c50bd8841631bfb6b2ca09916e9d30712e10b283aac9f84d23898a27bb1134fde6bf32431bba8c07f6aa4de7b1177a2fb09a024a23a5a12d87b952e5b51f7e99ebdafe0fa0fc17f7eff6527d752fcb6926a743c6e917d738dc37feb0eedc6981635ca2108c57a8f22a5dd03bd939069056bba0302fdf1ce1d98780fafbda115375b01ce57651b0a27e7165174bec3ab27bf0ff99656e15af6ef80df50078acbd59a86c8f881f520cfdf8e6276033abdeeb6b6e0b54a04024c34b77c7603d81729199b3c92e0b3615f04feecf2eb52f7f31e58a3beefe1619655a104989b2f7e4d1ebf70def96b8fa001dfae4b3cb0fef5b0f06166acfb4f0ff0f433a3f3826ec30d360c2ac811e35ea8444b98a6c6285614cc42346e1f1936808f7779c4ebe3efeee06ed7e526a0ece9d00b224de2be9c6eaf5504305a1b4ea7905b6d8665729885b1f9dcfbbeeb9fe4de46e81449cbf18395cf85d04430df7fc894c86bb2506bfa37ec408033bd4f0032f71ec86448a4679ec8bb38a59a3302ec74482bf58a78130dcaa3c42091d91abcaaa9081fdda6bc14997dd29dcfda7841769c9ac9d1b3fc1a11b65486409fc44c4ea512d9cc0e86aaecf84ee5802605b7afe918e64874a00668bea424ff068d3b84df4ea96495874fa52abdc0c2b033956e48c98f4ff88f3b521510720df75e5f245cb5c8fa1b3643b168f0b905d1a03fe7459d6b7cdd7b5ce5a927c11b5eede43bd0ff59882038440ad8364ce12aadb5ea612f76edaa3c1af27c5072b5ae2fd66328acf4004c76ff2df85f015a1c42c5d2926d2c9c456bb39022b24a4c5cee648d01cf9dcee7bb20821513b96251a62163be132f9d7b899e0746754aa5605f4a732eb6184461e7a640d57514d63162d03143f6ea117bba209125529c79b7d2cdb7355bb96accaa5dbbae22400a6e349e45721c101a5b0bd39a116f7817e36e4457d3a5224c5ddc9eff6c6f966e79168efd0fabe141924b58b8ef8e14b069fd1b7f747e9abbee56bd25af03d4570a517400d39ea8c17c75c5a8b98ffbc852c7c209bbb0ddad7f6abbe16abfd83c9ca02fe8ea56d361daa67e7cfe3866f8aa81fed7009e9d61b1dc2e3d66f12e2bee69329876ef8bfe4fa98a1f5d5a6fad054a8400cdbf11f6497974bcbcddd22783fe4db30a6ccf74e40a9f4a0d3a3d46f5b2e35661fa4690b33295935f94f48523f1f1702fb24f3a84c6662358537a1f95e0161b2dbf16db7dd27ef99017aefa587a5126e253aa00817cc5a21c65b79901b549bb59ffef80d739721a68d2e759f2ec2034142abe8b0d3b192e49d0904adb0caa7140eedb391a32c9a4515fe575833addad29bf2952c2d6bcae6546b1b0c80b5330ef93682b3ecd756d8d9e3490e487cffb7a893c961bd34cd90bc80bcbf178a5bdaa2f63a36256dd33ae1cf927aed13eedd3f5e464f8da704467f3e6e4832b9f1b686a8ca947d2f01e1cc9cdb6c2a0812cf541654f1ec92b65bca293c12f8703555259b07fd50fa52793fcb61ac2cee1ca1527d9c3b540f484dedae813aa0867934850ccea96482c47a2cfde00955a84a65b54d69fc8d5174cb809dfd62ee26ff15c842c0b365193e92cc115a2e74cc7c064b9b1f7c8c52a89c894e4adf8a7ddd4547eab9c095aa4d7ebac5187a6acc737c1a033140a4086749eb7c5ecc80c2abc2c5d7db3853f3185e811a5d98683017a769ac457443e17cd61b2414864aed45392e8306dc36a277304a968f67ef23b777c365d1314edffd14948a77915f2ab576973d09802420f1f734b919d495633063f8fc25279a4cd4a268e125128f1a43c468e4c0c2529d9cb3c296c15e67bb37220a4d94e58704586d80826cb6e7514e0f6899a3830121a4aba4f3b0c19e5132cf4831b84f8280976d41b59c0bc055b81f6c93091ce9d19c81e806cd5e81c48d883477462861b97d3a6c735ad6c02561bf9e6ca86cecb539cea5564dd1e1cf6a30adc162b9242668969b81fe4dad127cb66a19f28a13b50ef77bd17d4cbbd4484b99d0fd8900e217151a47e32e91c2952d8a372fadefcf02370baed1bc143544336c29fd859be40d621fa65a47c1b15e99c152c31bfef9adf557ea37f19eb929c1993ab04a7478b12b5df139bfcf0c28a36fddf52a1b5d99df9ce2c0fad905f626e78c5689ccf35087a80e1dbd818fe94dc726f2a883161cd05bdca489b65aca236d39f733cb3ad33f1ab7e9601e34f1ef9a22d1a98988e8e73aad260c8b39304e5a7ef9cee1f4a8d30c492a26a00cca7aca0321c9d12cb4d13a1df8f5ab21025e5180ad5ff3b687960fc1c5e8e1f32e24608462a84ea719e09f967cc3d6a4e8d12b1c6eb1edfb39340e72da7e998f615d0718b5ae04e1ced4d4ff139a0aa3ef93d7e70a4e1da9e38a055d4647e2b045e83b35ab966a274da29cc5ce5750d6b09a9fbcf5b3fd3484ee78457f450c9484d4df4edcb715cf351bfb9051bf40b322791cc97fc15a759f48e9d1899e9735fc7538ecfb27f7927ba816aacc01823e256a046be7da1689070a381b5bed628e9cc69c13116b17b6ceeb76f67a2200865ef77cc8d4d0ae608e447eb467628de66bc9c359a614ffb2f0cfc1f158f10ed6cb32af875dbd6c1791330dbd318f48ea610a94d8b5742c72880c16d07762ed55594c395e7e9711bedd228575462d45715f6834915b19995212ac90de47485f92c7bbe6dc570adc7b5738c78dda965a38828d1387950044439e0abedf2e9653d90d08cdf33a03c19a3e9cdcad014c766506b6dbd47895ca8ba1454fa542ce1b25720104cd1023839b53af3f928c4206ea495e69da52319f1ede38236dd804f2f3b222550a1d59c0fd43215d13d0419b9be9dff27a00bda9585594a21863fccefe5a415cf346bc9bb4a43e28899785fe734452e63bb10e1d7884f926cbde2b64d2a5523cdd8d6029d09ec1b66b91623b562091d1324b594d2dde2980300e73083471f031ad62bf0eaf00a16a8d3839b87f7c22d8a2fcffe1bd51b696180f6a17f73f45dcb0b541edea5f33dc7fc127f09f9efee4b13ab4bf558136b37d1d935cc1a134d876ee07d68b4408d0346328cd7ccfba87ffe6d4f0ba28fd463ce0b5a80888ce69e363de27dffe41843af8e043d1bf9d632ffb600c793cd30383e9c4546e8a6aaf8c66284ecc122834006982c009d29a66b5dddf82d22eedf0fe5416b6fd4e613cb96737ec5a1b388090d57cd3e26607a0b56b7f45263499436051a0819e2ff0e27a8b65355989b75cd81b9b55a80c169815f8757562ebbd71e85989b60dda77b52550564acb0d6acfbe19033f6e4a8be4c6289a8f669d784e8359968a8a74caef27e127cb7de4f21b202829d002c7d784f8f9c0fb16cd64a37f457f4ebe9f8f10665e845e87055df7bd80ccdd2fe13c9f0bdb1dc7110f42d599d528d240d4800b3b499d06dde0d835f08a5a05ba2d8980f7cf901d55bee05bd12bdc0bd2a268bd9946912fdf345bf3d1c8d765c2a4cffc4394893f6e24afdb8c53ce119e73cb786bb9d6129a14fd97f74c7b5b5279dcdf63aca4cd3410c14a185168626685a9e2ad6c4fb4ce88e291651f946c3230504ba38ec0c39528b9f2d8ad60c01dad3caa3ce7a7f01b3c09ec68b8d16c97a525c85dc505447ff39c531f4bf11ab33e1be19b79b71288dfd3acbddbd976f6785bf337fc6c97fd82f02a23efef8ce2d346da76665bb8388f891c0ca6a3c5051afcbd6d573b766c682a4ea59a868949d98c1d5103f27deca004fe48ad30092b053535976dd8bb3829851966b22cd84a54015e661bde6c388daafa38e50e0951862def15df95811b6cf7f446c50d67f6e7bbbece9000ccb6e9a047a752c5cb33b812765e340536fdd19fbef1d59f5bf5af978bbe0bb116cbb4c341f9298fa04faca9b18bf9457e158616385146ee2eee46c039c8c03516a8b5737065683c344cd49def412d2621046e1acc9ca2a194a9d4b89dad5908dcc1a369d2b3ec8c5b8238046189c2a163b08e79c90fda157d7f6ae2c20d13a6865fc6005341bca8f2f7c025e5978ad39c69fcf5043c71d20a9d6d87f9d4a45ebeb89f5a7dace09b80c55b5659929f1355d3375b8b635ec3c3317ac0c059c9402a40ef5cbafd8b458654090cce6c07a99a26cab1652544f36af717dce5557f7fd966ec250274c788c2cafdfbc6f5b5196708adb8385e4ccdc907ffdb775907d105c4cdb26f7091ef76f45df8e445b2882a94a4b6a903ea7c20ac6a02b9ccf44d370efa7d4c5569b3ca4c92e50ea05ae59980d1c0b98143ebfa2fdd6838cf636c2216da3f32829418501011447bd72d737e1d499f90d12736dd607978ca0a2f9be02d60bb0f3c8afffef0ab46723f375df0100049d6691f3adcf444105a3d5b28af769c04ed599085b840d6fdd8e5efd3762e893b11fe27521293b9e257aef564ecc14f2a2472b9a4f0c45518650ec25caf4be27c516d98db1c2c3cb12a242eb185eb5d095cde7eb13abc81c753a85ff44674da2bd2fa5b907a62b3f6a77cd875753f16da681fd9fe50596c77112b71ffae27cc2504b22ad12fbfd9ebe51e2e95e6497a465f4591b8500b66974d4b3ce5f5dc4ef8b8d24af870c681b126ec818e733d2f1f95ad344b9898c7f2dc5067b9078e03a4df475115b5c69185fa99ff48db7add39b0dd9f5ca77a5147f54e946caf3769cc93d80694ac84171120b11875030b16e195645e8067590e300d06135eeab874d061fdd3454becf588a1f969415b38ff2548e2a063cfc9db77be59558032ccdef62ca46023a81d0de9d22613c24413174c28eb50143658f656ef5fa65b4cd6e1e0bc6a20c057d346e13fa2f6ca87096b9ed6c7f0473018c808d354e40ce69a6e98512217380abf92c2a00948c33a558c2f189e8162948ed883da37e5ac4983bb227a1a9deb9083e02119e781137d8c8ad02f156994813b4b21ac6f2512b83f6d39d1a127284177c2b6db6f2898df1eefde40572cab3ebb8897142d4c13e426c9067f5d557f87523b6d6dfa261f2afeb1c7183b5ded465e9a9c63b4b1c5bd0c6b559dc4a1def81ffe65b6f34c585217f7817caf59e188e247a5087d34983896a8f19658b508a0d1e95fa52c3024bacb57d577eafdc7165885878ae15eade3b9bc8a5169283ac2328c229bc324eaba6fd3c47773c4cd36d42ef5ec1ed5435c8820bcabf3eec7adc5e46509abe08f37f278511fd477eb746357954f989e576523b51ad1d4056e141ae3a4ce5518ad17812d272571cc39a590596602bcbac3402bf0946d21b01104488e7eeb76bf2daeb07823caca3bb7f965eedbe0a51632553df7ce0aace51f9bd79637a3a9db506260763d42d363d694085495c3bdc56a2f5a5079b36bff4d589abb8295dea7332cf83cfb4998ff6e2c983015d34f0192a3fc123eaacfc299da5c15ca76297239de25840ea0686f578c1878397f2deefdf2ade781624047b9167ca02953a2dc36b37f26f98045cc63ace3f90157ba84a07ea1192b8178606b5c22f5308acbe942599eee87208c8663fbc4c40952d58338c04b533433fe6e34f9bdce10850b85b3770bc20432d0bb01f99173d0ae7c9207d0952b878b46fdd6b2b08cf125cc53571faf20c6841b12c78e09eae1bf400948bcf894def6977e5577759db973c936e87136a785325d4876ab80c40a3d37acc8d450f6495f1e63727d2545c7bff7d1d918d523b097afce41b3e28452fc9270afcd21c282893e90e3272456a968e6f738b19d1dfa59ff97835e2f37a833ff31d77480562bdb2b52e931515d536ba7b5ed6bfdd2ad3034bad63d50a1615fb057d4160c2b03b87ac51a9b6c3e99c130390b5e8697755c0f4f0d7848fd1901c2ca6becea2aade204aab975071d67a976601d1f40ed08289d91ac726bd7953f3086cf9e27912b4bf9f4dc5b32b877b2896cab665c739c2ecf3eaeb566efdf09f02a221b7f2f9237a523a5d6af229bbd9037d549674b013df08c901c32a6aad860fbd08f1e85b6133584dceaca2244b09c63c7e0333ec879bad584ae78d560692cf34a312e973fbe1ecfc4d66bd2baf4af2806e24bf24c4d1badb0adb182729459bd48d5a3ada4f267a1f4f4939555f217bbb3fd36cae822487a50b2dc149789e72b78334143611316b8511f4d276498b1a287245737a11f882121bd0cefc0bcaf55ce939e129caf9263a10258ddb4d5b13a96a948f3ad0900f918917db752ba4d12043c2b1f754c5aaac91ff5260c063d3e7f0d53f26b781ab49acc30246d80b4a61bd03403e5ffc7ed51a60ee53ea70c0e6afc41826ce6acedd5c1e9da84405cccca4c32719f05100adf740c40a8813bad0b9f8f777b3070e8677270a0256acb1a1eb9633e1dd3937eab62e09f34a3b1a1a00b014b5198e66915ed1693429f7a126a7b2e1c352afb70fabcc5f1a56a13ef6de263181435cc0e8754d4e988a483645934c826b4e4b43416d691382c302e5bb8e806e108df70cc3a668bb577dd2cffb8d8b91fb27ab273a57a360531f2be411b03f851fe45a9527def704a2b8c8c64e17082fb702279301081d7e01eace0ba5c94e64f0489553358f545eaf26635d7cd7dcd4c15cd859a7e34157ab193635b7c098785b51b871672de92cd365b0207a1747b08c84f0e468901a2b9b94b6ce0e63311f0ca7164838b1cd6fec4938a12d45d73dad1e5f461b79318196b7fe6bade00d048d89d274951974ce5b576ead6574310b0ca1c8aa9c4e8726cdd52f253b4c4d6fdf47bce690e66420474af47754da5dc094dacca35c8297249ab0c8ce431f11c3f6c880f59b9c0b805a92ac532e50a9d2d2679d04c0cb6ce4f50360543ab6e5ab970528e16245933a67d09cef9bd51583303de44a42a5c5ef6cf82ec0b5d0bac5c88ce35210efd22e395ca03ce20b5b0ae023facdbbd04802abb26bb982126cb738fe2cb959294a6dbbbfea66fdb97614d1346d2e21cec95c2ec57383f383d906bc913499368a2d2b0d395a8d6f47cded7661d7bf65669d8c83b9c6c74f1090274b8e9f2f8e2a835a783c9a202f45da038eed04e7e724fe187e8ad0b464090286b7d496fa77274f7953ef1514f4e4709b81ef6aa6f3d680c83e2b843bfda24f91a4532507e522d069b8acba4a1e7b8cde8cd3edd2741099707cfec57579739f053092e61ba9bfcb65a2828ae99203b1a334d9f7aae7a92d81705da67fd3f906f91a2b051be429eb5e75b3fe79399cdb904195dfc9f33c3dbefc156c4d1f13036d33498935bd8b275e29373a063506037cf46d9eb1e2a892d91be66e48fa8580663430f7c93a9846b454380c999029282bc91fd764509189de7204c2bc6e7874ce50b53d08c304670d1894c2cbd98df6d5bd382ccb09dce2a1e599ae6186f8049d23c2f4b47a089db97f5ecc4b0fe2f40ac09de6d90937a9a76440fe8626754111ced4eba548e29ebc455d2c825c7a45da9106ecbaeb8f2531c78c15b1d7436bf7a27d08d2bd528176008cbbc656caf667347e056cf597e364687fdeadc91ace3fdce2740e831f84f7b1983bc9d3ede347a7e575901348c6c26a13836cbc9628687e3d1ed33690ee505c65391afc212545966ee06ebc5b2c56f9b5f72175b8a479bb5c83a0d6f4fb74b78abffdef47107761217f55b5d124589ac455840e63609ddd20d3e0e81ad87765d0d8f12f67c9c5c55aa9de226cb333ab170627c2e08589ff005b5e9dd9ab430ab6e292fd2a63404e48aacf2133251e6a74bb41c05af4489f8345a9038ab9117cf0afc7145e8fe6a06fe78b63f274b5851a3d6c4a63781f66c9a8064889893adae47a5f7076dfc7ab265756eeb7bf56073801198d6d948c5603e5c2a0b7262fb82ca88b4808959ab11a47db2e56c91e917397d8a252d9aeeff7520137fb6aadb21659df1c4d022c37c972bcfde690c65464e3afc3cdce89bb7d4263dfbc5b81b527cebe66a47a4cdd086a191942f5cddc18270be2ff6bf02b044920e8699665f0939968840fd318457e474ed78a69a6bd8edd17deeb1f16a00de0699bf1ccd4f9c7a10288b472c33627b762859fb9cf883c658f07f96908ebaf5334564b52dee6e0f354d95df33e65d14ce3f8aade18e88b7a3cdd770293b91201bf3cf0b64f2f31661c04f9516c53a22a1f5a95e3769b5682c5d8139350c4f4e475a75c75c50dc10a1fa019afae1190f7031190d923306fa4859c62ffe9d0277a065c90ae74abca716cfb739f06c5e725120c8edcf7ab1bb67e085d3dc62311e8c18793f6bfcf3cbc7312630c172bc789234ec5272e1491f4ad92dfbdac292a81a639ec30e9fb377ed96c65a4b598a43ffecc323a08ab7e8f4dbe28651ccf8191aacb2a7d72d3957137a99cdbe842c4e2ed2f130b01fc8303cdb45d135931387d22445c3300725ef82fdd4e7c75fcc413ddea6b4e8252b6448ad205bd7113032f5c3999f0cdd7516f7f7266c75df4144fa98781c94d031db995708d13c1c7aed6c92a7ab308e66250f5d4f124f46b7613abac61b70c0536030b54c5bdaa0c94f755949b08a07c36257f18a16463cd8358ac94593db7b0729cc8f2612097b128c7ba391e47602ba949afb94d8ece052655c7397defc526b53f902c7ab66fb770dbf64827dd6790487e69be6f426a881f96e76925655fc2d823da2e0afa1d06842939fc61ac49eed74a9fc7a4aa31ea8164e7586addf3372706e5f873dccebe1454de5477766ebccd30461830fa1898347c8309acf3f878e404cd5cf9cefca8e04959629c5987f4d3adf130787edfc374129f130e64b73ac249b369435b82363d342149045d23a8490ebb62853fe345502c92e3f8df5c0a6a8440e2de4b372197b5fee6680dbaf9c10f61a7883098dc2c457c8b95f2c32cf9340cc2ba64dab2e97752838629bdec8253c91f50f084e43f45d5a453f5a32480c6b2dbabab495e460b2f739f5e83a006a14dd5d519e75d16c8b68d65141b9e8379a448e9404b6f541460faf8141e727cf87ebdb12461d70fb397824463c4aa7b1ef7ba90c7683ccccab8fb594c6c314775488ba2d5539fdf1b74b22a01ccad54a0c4c0215e9f74fcc7433c9188fc0d7c009c8b0a3fc56f0d7f9b70954db313ef5ee0af0027e6d845252e16efcd8f2068d312a76f51f7a274469f14ca2cb7f5a159ed3ff360cdef9cea8779cbad4f7e09ca2ba5fbfb0fe1c59f1bee505c0a15b3291fd0a90fb8070dcd3302fb620993908511f9fcdc742102a354ef71d7552ee0cc2ff53134722a333da0bb5efeff17e55e12b36582bccc04c9e156bc4b3182da3f54337f95257bc2c523e455a3275d222934ad4c3a57c6f7b1e1ad869d8593c4e839b7ea18efd5feb916a344d4dbc217c48dac6a735127d93b70e5647c0b89b9d15678b1aa966e4134042e16cf6232c57e50fc9eadd17dfee8583bb207585344b3166e71b62b9a79648c4ab7f9cf1be349abfa6afa33778e963fd30f8329b5e6ceae68b02f88e5a72ed273975e17005dbaf12a740de5f40683b99edf1ae68f9499a2ad562afc1861198e2b2d3964d6cfdbb0a307dd5eaeb3a41044c8b87e62363643af2f03a4cf508c2028729204ac0ed39b1a90d2e8ac3a50ab3035e827bd29c0b3156a182bd7b35e3d2262ed7bb69f507a63218bfd1f132f52e9d6ca9a88be653cd71d12fda2dbb50afe7f038faf3ed382f2f12778430986cef71e1dd063b952f64cbeba27bcad33cdec4e915abb59bacad5d92eeb52bccb9a8ac44a6707d26a1a08ab676f3d23757bedd732c7489328b6a4d8fac2cf1f8f9ff842932b9237d47caba3f15719cbe0d2c32950ec5441b6911791bc15b2faad36e0593e69de0952ff334b3d241e46c5c716d419343af0f3bf54c80a437668dbee858be00484da6e04eaab530e6acac76ae86d9552bcddbc2484e902c55b5a76c96ca0af86f735772dadae0a3a48a1a29d020dba61527b59b8e481f9d49313b0ecde22e78b4a1644ed6aa53d243da8333145d29cb4c8f1716c73c2bac590ab020443e03c506e6ed5b957c595905fd1da46fb5dad333499d0cc2d045b35218cf7c8a76f65417da1bce6f1a4e237f9a1280f7f530254d983f4051e3e977884f83d6ee4a4a8ce7c075772ecc002b9d0b2dc3f7cdcb5fb18f0733ba991c5e12f8011e7091b86e63c6ed84fdff85b8e6c3234db122752e5add72e580cbe55c58e8ef044a6b469d4769625f80111e40915638822f5e44d54856351c28eaae15da1dda2a58810707011b47e4b4432b99959193dce5cc8982c4672269db5e1cdf100fb8f6b49183bd37cf0f90dd1684ad7633fffe45c0d38bf2918ba82ad117adc79ce65bad777d6ff6be6cd8864231023715253cca6eff2dd211a4cdf338a015d1e0c0f72b21bac35cf296c1ae9b7d4ce61e4736c52300f086874925884c58b4c6fc1f92140b888dcd5bb6bbf7adc8c186b1a80819a941dc279d4cbea31da2c1efacdadaeee44b03ceb9743de492fc0779f2ffa73c766d66a361ca2a55e0856ca9563b3a3607c02751528d5dfd4af81ff2eef9552b4f2051f4be3dc327831d6873a8cc96bf35e2f61dacfc65e9740f8d6f73d57c77209897e59f5e3907a5b6a744aa26ce956adfb61d260aef79c2b770a3d8d0022948059644ecf11abbd30de8e03d5ac29c47195395da50b045d9c2637206ad1d186b0aae32d24d6b97d7ebca4bda9542b9e74f86d81da12cae3233cd3c8f294e848f8151c325aa894a1b98f1589765ff4ecc562e3da2f47eb9434c314fa5500816937d7b67a0dca5fbd74b28dbde7bf6f3039d9a0a14ae51bc2a7f5b836596122f452191fb38cd93ff3ecaf1a0a7c76cd7de5bbf03dc21d6de838242e78d99c7b6ab452c7055734fd1e7d343ba208f85eb7a56a4f93a51fb4a5082fe2ec417d0f62c9b10d6ba729c1ac2a8ecc3533e429f499f9d927f3f2d75e1a8eb7271451acb4829991e2e6fc569619bdf77bf90babd9a2f52e922023101fd7e9e2a866d9c873d42d0c6e32b89a451514803b29c883bfea38f32396395e6f8b43b3ae638820f838f0fdb4dfceff850b6915e5e69f0bf259cf6c9b3008ccc4e5ad06cbc60f29782d6cc310f28f59428dd58b062a3f004e20ebe5c2c1c338ab7b956dd0623f3b89b2f3e260a6684f8752071b183ebdcdbc32e9c9488beebe0144993e489d3389d0cc6ba56febf62626b4200767443329cec665aec7c812fd741cf31cc9f0d33bf206294cdfe2ebcd5e3029552bada2f7c8d760bae9254dcbe24370b33368a1517eecdb759062be4d2bea0d6d28c32bbb12a4721dcf42a7277adef9a51128d518348f8d8432762d13222632cb92209400ba301089633342633975adfb10e5ce5e7604ac1637dd92b367d08f2357351d8745c3dfdd1a0251dae3738583dc68d3ae33e526e5b189051ad4f5679849c5aa1ca7671d7fa12ae3c0a7aa91f55f101b3ad7ce9b98c6214c46424883e635673968566b0ffe681d7fce73ccbfd2dc4d304310e19267267e9f07fd9e02a94307a51c25e48a0f9ec08cd26bf3334513269e265f43cb8fc7313d5d5e72bf16a465bf4d532788fd00ea8f7b0219318328b4ee5a609c97fc70fcc96602623cdb0894b6e1c751c7064ee832dbfda19176e2a5f901bf9b4aacec55840e62af25edf57dcb5816bf845e5ffc207113cccfaa46ba82e59170b3a6b3e646d744c161849a5a586528963dbef6d9b0c6d7459ec3a84928f9a650aa96ae0f5b783ca1b1917f3b270ef73c84bb28295fe5749610febabba1bbeaf5ac5836631b31487ee15904841855bcdde453b8071932fab0537e410f4e11aa1b8b10d82666fed0298916546d199c6be7d9604d8656771f67f66b9f561272e604239880d6df1b6b985cbe39816a420c8ed0e55428052804f4c11e9335888455f52d599b9f057b2c660c57f91f3634c7493d6a86674225cb7122de1c667c80eeb71ce460e50f1af351b67220fc76661553c0d17d2fe690f2601ff5b937bdf2181704d609bea464a9bbe5ba119f2e79822b5a649562dd76ee25e41cd40939bca96699dfda755a08722b24abe9e4ebf9e314b0f82f535457dc87d87f83d26c66dcf93eff06090ae7a7c919dd3c7aa100bb966072ef4bb1db1c3349d7879c222760aa204035abf110cae53d881a65cc20b3fb6706e8085f404039a065ab04802d615560900f44a7f0be701717b07ceae8d6d294f7bc39673df98d2dcf98bb6412305c5280a0ecda1255810df4e4ec406a1f700cbdb703dd77b9877f138b081986ca24cafc6d74e9338bd1c7ef47b3f282796adfc4567f17c631644b2925454c95119676562fdd3e7df43f1fe3b12667e4381dae448539bcd02fc2e5fe2c5e631feb9f4e28b5df881c814e9e6e136b001036265dcaa9b399da39284be1db551758e5b00def1963b99e0ea291f9fd0022c481ead97efde051b9d87cb88bf4c0636e343ec0639a09d9b86687a8529a328793ad0fef4c2aa9d448b78bd361d549c5b20b4360eb84a3a968be6a2594e9a7e9a02601295e026baae39d8463964b2dc8d664bb81ad87b818975a5d9e2d5fd5f7b8046eca9f3f770eaad77d994002bee61f41280f24450282a6ba974d351d889b44fdcad0419e91d9a1beede8a106e1b7a7510f16367ff0c1968cf2f1625e6090cddecc086251723cf90230701e01916d03bd79a32f592518a9b96c3f56e3504a0f17ef3255c5464af6c007f1a9705aa3ec6973b02829f7d9ad0da6df0a8b202cce4af23740df2f535da01559ab6cde7cc5cf8e1ead11f1f4655668029c98ec0deff3596df36dc00e580763da982f541412cf5fc4b7245141a25b1b7eb98aa413894fe9e9394c829627e2dc93cef20439417d008a52218ba40abc4d8070d38ad3eba230ea0ec972302ba0d2c96172cc7d5e208d956df5c403b78d31ce2931b6ccd303fb446b4681e905ce77aef2c59e9787d0a987bf0d5706049d1c95ffe3952d475dddef9ca31300ed2365babe19000c3f56f6c7c02554a84d4709cbcc7c66ead45faf935af4811e69f6179575398a2ff6e5a0e113bafc9c793a161f988dbc2330690a31053a976514b76d8d92cc6b74684ad3efec7746817bd5057a3c15ffdc6134cfd4c95016471f9a2ca23c9ae508a2e8401a4a045ede3c81bc0e711aeb020b51a05c95063330a6847c1aef28cdc5cbc99d210f3e20fc921cc5fa928c0ec270f5644b0c5e1604221f68ae6c940c6d168022fc55aea1832c81cf76d22a4e2d4dbcc7adf8535c667d46613fbf8220385f4d0c828632a7f1a03a2b97a5e462349e44b70ee01996d5981dbc2046b79bb6676b1d2a070c2cd90bc44f9ca2e054eaec76e87bb39cc89547b02ff014e1a3fcbab61ad69869dff5dd0357d32319051cc768519acb5aeb6a0f7058fe24e871219a464cafaf2ea20ece487f065748a9366574adcaa2006b2335d236471b2bd20d8aad00135b350da813beaa7d9aaf477eb61ffb5dffffa9f2dffdaefaa4d5a99a5cb7078f8e87ea865528de8e49203a944ddbffd97f597a9b5dc80795acb56bffce7a36eedd14b702f6bfc6be5a8eb24de776be4dbb1ca66ad1346e87e9bba190177ee754fe392728a7282f71715f34da856606b667b76a01d84b73708ca26acefc7e776d9e07a1ab70d98b29459b163a5a98e4713808f6efe9668ae4090bf6c24f28c6a46796bfab91c3715b801c0405f6a82bc7664ef01f87fa8cc645c20cb1e39fba763aded143e8a91acb78e37e807fb8f476167bf00e75813330a1c085125d61bccaf77658eec865e67d63b65706e2001862081e02d9996aa1eaace9cee6714b396069618bb76f49d53ae64c38bb3492b83d4d2327133ed2da7682856a51751e224b1b77d53f75eb0f9b285f1b95d147b657eadbd475bf5e45a605ec6e8848ec6c803868548ef1e95daac612d0b1d61d396ba2577157fecf2fc390e004130b239172bc3e5cb3369fad17476a7bfd0b8c2d8554eadaf60fb04749cdaae85724ed0ebe8b36f23a4d5591f5f68d14296770c0f8a2d3e295ff1a232ebb0fee7b809ae3e5455a526f9c40c10a4dffe5f0a760e763d463cc63a8c2bab928ec7a901aa81620e2bc6a6b686d94b2360a10b3c6efd7c320a5d037f22ae9ee1c5806122ec4303269585cfd0fd78b4df01107562f918c99dc849c1bfb99ee83f6e8a0b6a9debe5d5e9200593413c7414ba9127f0249451e34b4d0a5f75ef06a41de698cbdeed15ca9265f9a34568e8b83c0cc18d745058868fc8124d4e175ea84c317689e977f6e13c23918a719cadd0695a629b6d5145ec18eb797e064e9458c5773a3d83f5f73a9e58086ba588952cf7963fa4ae57ddda3ecee7b11811ef6eb57dc2bcc7f111a95c4dbe8a8297eab33019a8c815d8e6d826099649f2cc771c525c3e02b05b41b3fae2455a6767e224f8b38610d415a2496a49a660f8bfb850b172d429a2a6e88cc3eea85f5bb05ca62befb8e92603a5b9440cc52eedcb83ec9ad346fbd8be8234900f03c0cfcaf7dd2f8f8286bd94853d25b7ac0c8a45e5f2ddd867464cfcfd1105fac75f18dbf629f5e15f54258e2e9883de4e7297e306b5cfae4ea97ba54124ad4c9673f059bf881be907203462d5d2a79c14cab32d73d4bf5a4e5af60ad8e83f1a55973364db9052d7630ca9a9020fcd0b8385f50de3324fc3031c9ed92b5c688d4427545044a48de2c74e30f35c1662de50520e437e3f8b985e1331ac067b1849b3e81bf913b3e79ea2f03cf8bdaada35b398e01b463c2f7b530b5ce7ab4682476cedcfceb5a9fd93c49368ac61a026b9c6dc7718f27f28465adb6e203a6763792ec016aab91dcf77f2f461d5d571fcb230d2039e26315f350b9bc26251ee5a553ee29e39056c1786ac288768cb1e883dadc69a330094ddec257be1eadc22709d0366200fdada2388288568ad0cab4e9a456912ddb4b9c321d4c38e9ecf9a65a52b9940b76ba3d00a435a1816d093cf6d4d39bf2abbc4f1c588815d138f7fdc4d94b2e5d27dda7737f816429ebec5adab48750394df1fe177bebc6f169d73d7597c94c075d66f235174eebe595721a31004a165fd1bceae4245024265ccdc7e172059f0a0ad6632e441e2312f989b0d06831d0a32cf8b9f205ebf033745e905c868c60cb45ac68d631dc77c06a996a5a11fec249b4dad64163f91cc714afddeea1381b20c8c99d79ddeff1478112b4161554cd13a7e2ee9399bf1e5926dfd26cc692181f7060965b9da590e59816ab5efec57c6ba44d573893d7fc9197765a67ab05adc2c1733fc998e41aff4e2bf5d04fafc95f2f2158b653cfe309d8e141233ae0c69760e902364a35e04106ffc5d3fbde833c32c39f15701761935ffe970413286bed97290ca7011824ed673d4a72ec11bab17722618b92419d5f24b7a0ed093c0a67d44f50d963ab2d15dd73e8777d3da6612f6fdee0f78e2f5f24b1efe8a146d6662aeb3bc1e6a2359117060ac801aae8326e6362fef1ce643be2077c1696808580ce4e283d578dac9387325e553add1bf4ac1beaa3668d1325e119bf3b58432a089b72fa15546b93a1e526c9c7e2540bb5457f017f4f91577f2b65308788eb0adc8f638db3d295e0baac2471d4261117b9fa38947b39abce1dcd73b00f7d8ba3bb4c44ca3c97f42a0b9cb59b8725ef8d0d6e3fb563c7d3306758d8b458c26d3bd998dd8f35c084156736f04c4475d3089eaaed9ea02d9a5d2e623a47ac9567b8d6ddbecb0e3d2f353043ccda099fa410189aab6d35b7e2387d0373296c6afb9909a9ee668750ef6af64e87e6a39e15990e8e2657da40f5f0dd59b9b093674b46b52f2be82e1249ec5225196ec564401a95ba196075bbdb87e804df2984e5db12e6c5baedd4ee0f74065cb8e7b3561053f9b6a6d20bae10bafbaa9cd8ddf525b3ba64cce032247d5559c96e9913cb7cfe59fe3df7adb27d9c1174eee397d8f9f6342b6884a747966b1909be9e9a909305987317d2ccf5c98b918f80c1c186b1021edcef416ec0e31e57fa534eec6753f886d83ae7dfb7f846daad2bf25829336b255e2f55564977fb2f3fcff1a28356d7505618473fd0574f00818121669fc3df2539fd39a07242918ac093019a0d4d78b8f8b0659c29bee7e54669fa24fba84b651d6bfd511fbd98a427af56dfa3470f45304f7e923e1a4d6339cc4252039d99b95b86540507dc95b963cd044ed3d1a66850cf855da35002af1a5210dcb40f83b66aa89aec375773d5293dceb9a5dc90621278ede47c6a4997b02d2818ba39156c6457198e8e40d01b6e0464be0e791af61163b8ed0314246742f9db54f9fed5c886b63b7f3eeaf969ee04e4b97e620c0d4d75a575056b75821ea3f51007a1b265b3868f3b511dcc3ea83047365359c204abe76fef651d1fde156a8467af41225df2b6b50d22a0f14060ceb109634de3b3735f685698d7337afde99c446f3526d2ec84a4e2e00c3f911cced7c17758042ed096e8d5280399ed2e385ec8fa2512f76f2dddc90ef82154a82de782ca88c0e95495630f32d5b1e30610ced5b80446b7ed2c77d706675e82126daa5e8e7b0f35717814e0e7aced25650f5e2b41cd43a2fd0f23177196941e2e13d54c67c7e4d200cc8de50ec2536c31032c8be617cb59d9d38641d01049621242ac59ee366234be72abe6812366b9d4434f69287ce48fdfd695eff71469529b5b7d542fd326ffca1ea9b4ab05f676b921c54e3ec306951159c6198c4c8570e7b594432bbe8479295a5f0e1161c3e2d261ce9f94eabf91958c46cb8cd23cebd95fa62757dda704421fe98dc6e0019b15cacfbc47f68bca35369313c78992c599f5da241b54f703630134aff4201d44fabd0785a993c3b7dfdd116b5fc326ea1185f2fb55ce3b703ae53c8c5a3d5652ffeaaa1ac38bcc4e268f90f14d358f0471822fdad39a54dc5c49fb01c9af14fb24053a68ce05f694bf29cd27dc404748abccfbeadc9585e0c11e3d8fa67e04336f93224fb999aa77054266072c89f201f7c179c2a8e3a7b84631f5646cbb5b676accfc97a732e2f07691d7a6b0d9ebec516473ace37ac7602a20becd2751e151a082f8b46ec1fdb134f763e9b15c5accf68d59272e7ff7a291e69348f9228fe023214b2718bf76ea85080f15c82147b4eb3545579e6b675804f40571987ae9aa09b8b0e0657f0c435431088b68f46cc476c42c093b0d0397efd46315cec665d8ea18524a485359d1ad6429495282bcd3a377bff2824d27a4226ba6a9f8a97aac6403a2b2667bf99a445d6b4d1ed2ceb0c0d79837e4cc354c51b6179c88583326976103c49aeaad3aef6d716eb909c028e13bbee0454d11ae942cfbee84476042aa944a4e74d8245d28e28ebee1842cfb5d5e98df7eeccca0e7a2b8e0042bbf7844d16b1db52352168ceee718ab3b4a3f4f01db69db2e1899abc54b5ab744b4fd138ce8cfd48481835e31900afe78588315a30cf89dd9315b2321fa515f026f2b49f6cd9f7c908cc904c3c8e315e1df1cd542a0f4789d6bd5f8b9914e50ec93361a8a56d90c8ade4189d6bf5f01c87cb5f334d33517918836b635b2bdf5e3c5fb3fa7804a150630941aea73fb25d82d1d9c07c1b0947b80b24d93e2dd4bb2a844763f2c4fe05c248e89879cc6b80861d03f775f7000ef716f9073759364e6365cff92913de6ec32c5cd94ba3347e4386d0f7354bfe132cdc3b9f17d9de603852b20fd22df552d86728034b22e301fc4888231d89faefe0146e30b57468a014c61a3d02b529290ba836036908b277e21f2d554152155043a2d8f9b7fd99d17d5575344be28b136a78ece175db1b50cca76851fb9ddb64aea2920deccde82de2086826fc2d9ff6f9a3152941f3fb4a37ba8d7b8a5f32658452c5f8d35592dbd634a865638a1790fb46c15c6704bd4bf7dfa5181f810ed2cd885f787b70da9a731c53707ffbc528d47ac65d643c91aa83ac93f77d6c6c80ddc72fa091a25942df34d73c5b28b71f96f8f353ec38e5ce466842fabb02e671e075f5a758e519ed87dc29b477473f0bd3ff19a966575c603314175c4f212f0cbe52871aa71ff0edbe9941303ab9e9e31365e4ff99b0c57b3336fa8954d387a07073e7af0affe3c0eff03c588148d7efae4ea32f1bb626424244823c10f19935085a9156e8d801841d35b9ff1b22f4640ef53c4fa067a15c376d7856d3e60bb8fb615c731d53ba2d67375105b6cc6e1aecc6aad94f119e33c7424310a60b6e7c00c5177cab0076fb4b4ed8f736dfeee48fa1536e00bcf21d7781ecf232bfeff6d711df36faa432b817eb41417a1e03e0a8396ced12d1670155868c9488bf360f9a5f069bb9bf1113336a79dfbcef7595a0a5886f1c8e148b01e05cffdad3b5ab872d3eeef8a7c75ee17e2ab6d33b6fa4ec24b94ab81e276dbac3553c20959b2ddaebcfad2b8c53b349f55c21ca28a8fbef7b1d430723e98dce28b0e2591a222346b9cea1461375d6056f6edf78545ba221e4142e7b8aca3f1595579e88351d5a8c9ca7d49ef4a6878a78e371a5066d24a85cc816a343d5e87e304553790f5eba54bb55870aa26ff4988d332c727aa63de22e8571c8f6ee4bf482f24e93523fb3ca174820d19b557d91bde7477edbcaaaf198a2f45fc9626490405add69dfc8c21436ce8d19fdeba1fa39516f5e23d19dee85595c4480e6783f0ef7c3e57499a736134dad31c5c041a57e634888a61d9c86c10be5121fabef723215f39ad2d185af1d58c5781ef292706db6f338f5a43d11bb7fd4bb017971e7668ea3e8636686de3cf9627acadadb68ed06e00c85b66ed28d84f1bf55f327666a4f4b9ff5ae4f1cc73757d066b2a479103585ca875850a7614d02077ee23e95f7618ad37c959e28de7087aa54aceb4f3a95b84afc9963f802744373624d08492ac3567f6cf87cabd80132ef2e5dad70fa32902a98ec3cfaf6c8fc3fa9af67fddffee472afba271e93dbf321a812473a78a7638d028edfcb59c3d55671f259183592b946785d454ebd818d2ca469672f7a37bff282924aae268fbd66d923f95a3d1965ade94b9f1e84c8ebff893ac7984a376519f5f30ce9bad1c4f0a45fd85affc1f687856e1e0beb17560b6f2fac17ad72807c04b0cb660301530651b6ac05beb794c11ee51c0e5fd85a45a81a449bb8f55a41c20651703410039bf86669bc0759a6efa5e02ee19975a6e7a29e551f0ef4734ac3c1ff3ff201de6c82f244ea8073f313d0461125099f58b7638882d43874c36bb7cd04722c74d7147fdac26432966274deccd7ac062393fa0a1725f8d22349a3cf54394d970966229fd5a10bc6cd2581c701d4413436f56367016091f4fd4cc8dc8f729ee75a2b06c985d6a673e8a96c3a91755f722c2d4bcb5ffa874ed85d4ff849e4f7dfe3f717864392e86525adf3003fa28ae98c42a718f4a297604a57db71b9e33678ee019ccd64566d71050d48df1f5695625e7fedcb3293e19bf1497b6dd93ae98d41a50261a2ef4716b403d5016ad5bff450586c9576114811fb93e2015cbd5dacf284a854672a7a003419d266bbb15cf9ad96b1520cc4ff57bfb3d0ac1c85d122668bfa247e6a3ba5c2ed732d22c8ec5a5844b2f44d8594a4b49766db2c2cc187edc68cdcf3118322226e24460ff73e68909b836fb0700951f925d07c9237d99c7aa1142cf4e4453330d8e07fbabd9d3c2d0d405cc6d6243efcd8a3e5709709c9f9c37660a0ed06d3c0958517196af2304277ea55e3532f5f573525cc4c7efa86ba13b869394716222054f0b089f0efa4ebc01eefb1c40ad870073ad5c6402aa584a22f91ed7e3ce6a310860929552b2d3246756fef45a362a76d15bdf1aacfe254ee4cb62232d521880a32490bd04a16458483415237ed529d94513c2d8016088064f56f59835a32728e0ad7950963816333aee612150a3a7b377c352c10b87fbf1745b68aaad73f726418354faea1a28f5c4e224fef026d192ca10d8ab77bc0c32ae97b09f44596ab741a2e85db3e179c3ec05e6d9180c8a865a4691a11bbc830d29de43142f377fe09943728c97a79d244a77c36a860e52a408dbfe624896526e0a28ba79fde171e892547890319c1185b292d679bd749a8597db2cdfeb78e0611e372890c2f732d96b1684e6d72c49b6703d6e6415b40fc7d7cbd0c0838a169b18aedcf289262b02ce95d2ff378cf56c0d72339e1718958be4d0ece0df4091f064c0a28a1e5bcb7751ecbcbfc0a26cbda74c2b2a2e87d1f56f3652cdb4dd7bda87db2f172192608f117e80ffdcb124a6dd19f024a2be35b01fa1cd49fefae6f90eecebaf6e45ff6551a5440cfe33fa88442a6938ea9f5567f97fffcc3151de8d1120d637d7af1f59307eb72576c35ca7716cbf294969474ddf8ee3ff40211dfe4049e2eb2361b18c6ec45f0023128faa920f4b4cbcf37c961c7cd2426cec03558940cddd6ddc016741f5cd45e83bdd1e96b0bc0a3a5034fc01035927e5635dc041ed106dc43acf1438272b12fafd0bf3e3d3d261405e2e3b920d98f440ba9312edd152d6230c4503304a4075f79c4afda5ad8264b335d3943eaf0126bbc032408a4062a1bbf06e6759c1f4f5d483a074a07a99b70b7e4d4eb30a2fe9477af6e574989d3085a4e1b74b896f0a97e526749aeb8113d50c6f30b4743ba0760e31bfd52f60352a77f82d2a5c7aa0dceb5d7e566507c87c6562090966896324460630a3caec373b6a0a4ad8858299393c94f61a17a73670f445297a0e167cfefbd5bd31c12214b66f67503e5a974861dea6a3ca293d538b1fcfe5dc9a88e9d42a329354382e7adc82c3c79d7f12f620cd56318d89a228d785fc163080fadebc83e8fd0d0d4e6c5a95f2f9f57e2a602abc10b2070c1e549808b09ac85d0e4003b6faefcf55bcc3bc8a7d75784c8c37aedc4a1925f56187ad77c2d28d484b2aefd2db7e4c9bc0aa37bca58f0dba3c9fc6aa8bbe6e1c2d083efbc3234691da6c5477ec66d62af522bdbee1dfe8056fb0b10dc4ddf4348d30b8942575f357b607f6a4fa835124d37c6365bbbe2df7b1f8db54e616c7f92ded1f51f9b73f7e0fb2b8757d58b325abe11b3a3ccca33ad1f8badb8aeefc401740ad06d059f9ca3158a512608b13b64acdb8e6c26d7bf10ca2775e024d4e37babfbab77cd09f507598bb9872664cd2b0904448314622a4d5e268496dff3b46341404f5ae150069dc4494d502582b3d5ecca726e0c5270b0f125e8d4e33c8663c7b34d96626e1d7d5e2d305b272317500fa9fcaaa973160f883b9c297ffbee24548c5773e84c0e63a2e6dff57ebe37170e505ecb13000293dfb5aa55bd98ec6015f2cd965b49e8b0996b371a79dac8a402c64b22a4683ae5d325a332b1fb1858eba5adef7bedbec8abc3d2552854a295fc4ddc1ab56fe91925491f8a091a29353e78aa5ffb123d48ef897659f46d229a675648eef1e3d328b82f750c5d16bf3bc875f4a1f1d6be224d4c6fec1a73e0a89583f6ff021d8d2ea50cbabc5eab9ffc8d1511b4a97fb96c48e9978be10914b765fe12c982789b734488d19f0c686eda00c709e6d39907b2599cc795d1182a6eacd0f03faba8fa5eb66caae03b751cb42186cff351f8207211cfc7c79dcc1f5a6ba585133a9257d059bb685adefe7fe99e6f9c053ea040cd8716641f2c6c8f7f390d9739c8803dd774b97687907bd8341fb7dcbc94173bbfda77ea1b3ca374a6191557ee82ff5018fcefd6e947cd36b91f20b33d44cab9d9a014fb98806c940f74e9cd32f377e54f4f2d1177f2d356587f7b44ee9377b03d275ab86e73bd079653140d3a6808e56c6772caa33dffb45904c26fb2fb51dcb342e346d7c514b5252f49c17efae46e3e79201e754b9e9e036c79722877ac687f40b284800d1829b91282efe86a7ccf2b86b9b55b0c891a442520ae4e3c03e5eda1d07f4ce693a34b3b03574d8163054bf9fe4b4be7c10c7de6bd6f35cc391283d2d057ac76c71670c43b241cdec5e0f62be825bd4295400f9a18a0fb345c9b252334c473a4fb33219eda54c9cd92961becec0906287f514251d1a9f870bba2220e00e1a0d2df8d5d48eac8eb8d75883c9c649280233a0b3f8165bddbb5de0dcfd156b8ec744154f7359e2b667a0cfb26614b3eafe2c0b67015cd521a48a4c781b6a1c75ee76bda2b7571ab28b33c225d518d794c256819e2ccee025d4629f93b0a8fe5defc91115fde264939753f9e3dda6ff77cdfaf90eb8e4135f4aba169d8f4f6000e1e7c1b3eb2ae6967d0727b37588e004e244c1ee862602c9a9eca9df9f11256b889fbcd3bab3fc38a11c4b891bfa61cba7c4b0cd06b24ab8025436675c55b82666627064d6d5b79b7d9e2737182c3bb951eef70ba5baf69064d4bb8dd5b5cfb209c79b3ab63b9eb4bd63c53ce8c45ca1c29a74313404287a1351a943db80fd098d07aeb4b865c4fcf88008fa84592b5642849ba786681769c6333965e6391315e581b75adc26339d24d154adf6f989e014cdf097f256631dc3e9ddae0f165438a738ea5b46269e510e7642f294a4b49d2c7810f1684daee80663be22e3827764ff50aa0b9e606a7be35062b29fceea4dbfee46d447658d5bec9642f1269b7b55d5942ec067a5041fdc8812ba66e1e95dbd7bb9ed16c6c631e7fcaf36bdb447e98af3b0b4b31888c59e0963630ab937f509ce1e79ea2fe0170111d61fa0d41eb850fe2ed1a7b1b47cd7010a09fc263d93d97d07f53f70fd23bbd7ca479836e258c96cba79a5ba356fc9646833c96d3045cc7fb6c6c5f00e1cd953b760b5c723fb969759c70e5538cf57699eb168c7cfbe2fb08950a52750e3640db479c1ac08417afd77ccf8f3510d200bb01035e1ebdf5450f23c952516a9e994b573dfb9fb82dcbfe6c66adeb695c489b922fc5bc2700b84fdff2f0aeeb27ff8887745fa2fe7fa256d6124b0c08d74e633880f49281f26d46cd1c88b0bdcc24ee07e8c2ef3f66a17e96647dac44b1269496d0eb5840660ab5ea13f74072437306f425e47d09b5ca6ff88ab1e3b83171e3aed341a9b4c1cdb86c92220eee6ef3a171f63eb81aed0815d1c1516345f7b54d0cd59eb259d3f16f77cc3039e98878e24c431f6b481f68087ec01ab1f056c1ee584670a418ed2767738c021761d97519abcaaf69a12061d3b89419ee339a2d2f4b90951a43733f56eb5ee94541ae52c8f259aad4cc937f65eaf18024223738cc3b57c0dae865bf65b217d09e5d576cb9923b293fcf2ed4d83af41bf8f5f89ac1172e87d3d1929badc9b98433f8585614de9f052f95fbf88f2f3b511bbed5b54603b75585da9a2ec473de597d51d1c23c6604d4880cfd5b15108cf08a29f0eebc5165444be53ee16d5279a6fb306cbc845ca15086013fef6d0c4f706b910659cd25d496001430b29556522c80b437010e0e1c3d96a15db2aec7ed844015bd6d88442e4bbd28968f97a93b9b317f08b3a375e2a35b928e843bb61a34c4f049dd04d2d72dad33522bfb3a099d74430fa8b48dac74cbc505adad24fe880e1ddd3fc2527e93656e504958f1bf5edb3dd34ce487cbb7f20687baeb4f0219246d04d96b1c178bbe56977fdb9d62743079e70cf90eb4fe57f51cd21d0cbff0a94cddb1f752f2d4ba341115b82e33d3a813102df996751c9e49b1eb912934bc4ec6321da197e14396ff1f376f4242fc872177a530a126c291c45bda008ff296f57aaed4cc224a2cfe389f4fb80fdf3f7f9e1cd05d2bd9f39d8831f258dde610fe5814bc26e58a1c81fe141fa35d9e56410d3b7d156d56edea2c3ad390b3c467b276521cb71d8e2d6604b7b678796b4c1e99c2e19b129ce34a03cd4f34dbadadff73f46baf424f71d6edc1a9aa70f9853a25f7842f8bc030921d1250de18acb3c8d0966258c51b2b6d27badd06f464b743d3ee5359fd9925f051b256401a0dce3e21aee69dce5ea2de85592a8d8f4cc12f424afdfe0080ceeeed23b7b1dfc85fe6e7b7e234e7ee104b173e2a60284d72ed39ad5b13cba179f43fb83f9e5408d07299e0ab8d21e032e8383b0b3ceab805faab80d2003ae5a1200794926eedf8e4fe048e9ceb8694494821c089b063d774d4a9f0726f274e3195a049672dc8e9379e29f90d1902c2894eb06f38d15d8e33613075cbfe196a83b339bacef2ae100fcf18fa06f21f59f7c2d53529f5092076bd3c26d6e80323f325bdf14d277296ea48c102b1c6ca05914d5498848cfcb51d4f54f6cb51f285a6da20abaf66504291182f8de8fc115b911477ec7e4d3b7cc6800ce6da09021d28fbc62ac580d2f7f36da5ed743e69fb1a34a8e5a34c4596eb662f7473b1009efeef256479cfb8a35db0bc256f74696eee863585fdbb1f8116094f5681744c16b15a7b1d986c471ee1c836fa22f3d483f76feb23fe2724b9c9a832a72c946303542a587708222baa3e977e587b0635c06d567eea8344adf12af5349c06bc4ef35e846cf101ea710c3841429d307fb1581029aabe223207b3d7c6b585d1a2734982e65c97e8afb85ed05ec4a22035e3217eed5d12ce14a81bef4d3761276d3bcc76f1ba6ad1fb174d5d9c0930f37865088fd0dad3b08e7916d9ae67e702575df25b9590f15d5a120383f9b13a179a014b888207f0013c0ef250a4ce0af505b00d24e478375cbe0b17aca2f8d4966b1790e5be20dace2c86928704a4b3923e509212575a807c33a6d04e295f78bdb4903de37f9f73f3a24cba60f64078252feb45e69e005aea3464c0a424e10807d4bc1055186da1243bd130dbb450fa88fabb43bf9c4c883f50557227b99b70b33bd5711d1a091620870fb225f054ce315a716dce73f820e6715619f701e11a2a6af7c6d55a01d6ffac1812e79b08972200d6bd1f9c1066c4c6d0c68d8e0a2bec8319ee36b37f79f6e2a8cd6992aff237218856c2b52d9101ab233b6c087ec1f4a55a2731a5edce41aebd4a2e55b83fad0eee6ba2ba0cc0eea141eee06f430fa2443f3ce5a0c60da9c78ac9c98afc9b9837d2a34dce6c366fbc31e87df266cf81160492c97c4c639f3724fc27fe23f55d865f993d49ebd9b30eb81d15278afe61081e5e732eef9c2042ed3b47a216756a0f9659ddd0092988d44e93fba1d5e4ee42f2d6800009c1e16caea460178c250b147b78c77580ffdbd387abc4700042295ffda0ac97a872d56dc06599c8eb4626338facc55265e128f8f7f7c7ee3c0d3edf03473cab342da54a791bd6ab9e69313bae91edc12d7f974b060b7b5db81d6fce6fa6d346f32c884e349b69b56139ba3fdffbea7b0b424037310a098148397952bffc3aa4a952bbf17fef9f67c4d36f8c2c240050f4bc6767f5502a7e7d372cf039bc0c7f791acbf812a1854fa1fca7bb59cc5791cafbd2a3f8eefb542d702845471e59646e276a68e3b7e23a21d6d99d8d5ed39d9f766235dd2f86a5efa6fd55631411800e57e78e37658e4ebbcde43047d62b15983df85d6938ec2c41b13a45c4b23c29020949cf5cc06ace198296f71541ffd98e98b1c9b21408da75cd218a5c972fc8280105f3315e4a75e71da955613b4721b8719d5bdadbfed86561d1d41bfc2a3c9d7d270bc76ac919d84c632948e8c1561c9c84335b9c1da27ef52e107ff5a87da71ba65aaffe53b171c5548719aef2228a7881b2c0709a1da44a8589b0cd0ee98bc0835e9ac4c0cb16621dc67b7cc877fee4eb8e1793261116d5dba7c79710f1055e5bd9f64697d3bfa927701dca066a95224981a7b1e8d46ff29003120ca98fd00c03b28a5299c4096bca6c3edb297cd638edc20d2276d33a6506a75efa9292c5f73d698ea838a22026a7a2cbba8237cda5ccc5409b29c5631b6fb8337b5d79d58da14dc0cf3fd8920c709bf88fdcaffe062514dc5fb8bcae0adfb67ab41aa869c01615918d9bf249273eb1f83337e8044507a88af8bfd6be5e97462885d1f17b13d8f2d63a82db48127bd41a8b1e6f5b7b1f8abd60089504f24b65e9539a616633551f3e007b86b7347a1a1f91fdce9921aa155a6891c8de4a1d476ecd2244e9e5fbe1bf705679f31e6bc9309bcef0ab69df07bd8c6744c9aa52588c0a573c2f88ad4d653d354c230bdb79f3590e28e7f06835e026aa635aa48c3d79066debe7ac4f38b896d2ab504953fed1fb02b65f9b59c069f7198227ef00fc77c3ba6af6d5a5ee27017ae64c17086c0399d7539aba3a157b97e8726ecc82b98a9b37fcc3bc7be59937b33b86090bf0671be1e46bac49daf976283e47c3e7e42ecc61393aa079e7220db24d08707a5f25266baf64007bc170badee35b6713457297c7e11fa3ef0662fba7e944537f5a8353b8e5a0823d20444b60121a401bcf51c71d000b39286724f105293a4f2effc3af515670dbcd5a74e59471f1a5948d07c628eaf2dd79aaba822482f2a77d93c3e4e7f0a7cb65fce985620b466df5040a6ff32bc1bfd466b2fd3171e9dab7c0effaf2d0e0a272d5323204053730a0f6b4ac9a69f9e2f0d46ac5e0e37ad48a55b1ba536c9dbfda21e41a32d978a550576ca76cd07b53951949a398f9156a8a54eaa51e6a25c6545b7057ec4c73e8d73cb3562fb010919da8a1ffa8ef319fad25e8a403a65b5d13e62c5f0b4b02ab6e26e1cc777f5689b55e39b0316906483046db4a2645fcae8ddd348c601c886119c61a734006e7583d2149af6c415c16419f025b64d58ebbd1470965f83a4cc673117a96f45b64df8461c1bbe4a0dac157131346a0e519f57f81a730a64c4e2cef4f997256c4245f307d58371ed87256a72995a7f761736194399fccba6a38a967cffa43d8ceaebf553e1ac28081e5a7e050cd65088a80975d580ffd29b220be3244d604932f5f291c922d74d873dfd5517559f2ef962993f2fb9ead76b3c51c38aec9d92e0f1b833edc286ef6dc82e5619a596aeb609e916f68b82ca910d013d13908c888963862fa9cb86124e030602811df2a35c96cd947645b54f5e2a31de666730da173bc548c74f970ad5d31b8b476d417cbedb116e1c6533bc7545cae1ed03b460e621bdc97823886e404faed8697d989963f89c33fb5dad6a4d26c5d8574d411846949ec9d024c252df9837a1672db3e10699042648e7d886b3efc017198654cafccbe66d4714811398109213c71f2422140b356fdedc9fa845b6abdde85fbbb8c17a66cb39fd3f1e66d103569296e019311f1921bbaf1ae5f76677454020b28cc254758a672e1ad8d57fcbd2d55fbbf0b3db6b8b8166384d92fd149ae0d4d0091e6b1c9974c222f5886808e321d2a0a525ff1dd6f62d362c300b30914c98ba886c56410569b8f452b4ee17ea0cd9a584c652f950847948bac28c64464ae6c00932311c90329cfdaea24ac25cae113c0608cd6b94bab317628a11e98d6500edc36f6282ab1fbf445f3198d08025f71c911184a462c97ef229a131e75a6e6221711238d0586400b18a5135e6ea111fbe783d706c330785d74b7254fc82f546453c80517bd099250f3c8970b7e11886603a9afe647870d9b8893dc79c1dd43bac2212da97f03ac35a117187f7d663ec0c6b6a7396f220e89a559523531ba5c62bce9493da2f28b50b3739f5971720420f01a51c78e5daf67077e305167647199169c8b0e13926276ad5211133aefe23c3a37454dc8e8435d974e0132e895dd668b5e17fce685d2d2b14fffcbb33b467c374b7536a0ea95e1aa11f5366b4cee54aaf08e57907d8ecd75ebce3cdf37ab8ce5580d48fd2f5e7046681cf806b46591c72dba4cda60954c1a2d787345b8d43f306968414b4bdc29908be912938b460f991e97e0cd8426382d5e0218820b074d398f347b92475ac98e6e3e5e101ca4eb91a3718134d3d055331fe8ef6f7a6c21597464b8d38370f58eccef19d2481ad3e84beb5dbb69577ad3a6acf93ecb98b51ff72e6e2dc437288ccb49b0e7c92620564eac6ceb94a4308d1f2d4cbaa36020b910d4f0e43797ac5559cc0d18efde3a05f1c40aaf641c5a64277a1cf20ef289043e21a5860e07a161ce2ba0272867c1ce829c50976c246c2996fb517dbb7dfc8b67092cd672395c08eb538e5d233a06f92daa3d9bbf8a58d1f63ce556ce9ff4b4468d3d84d0f6a0c7d9862a4d1cf5078756a9e3e67758ed55f72f56f01e2884bee32c3cab8175ae1fee55160fd6b922dd20b86bc8aab413fcecddd5efb82dc29ca69d1c03cd05558b045d703cfd7effb6e61a5a5d773ef678c3993090ab00bcaac5b8a9064753ea83139919c752d0f7e7b05fb1c4f8a9e66b6907878ccd332edce8af9a2d464d60de795522fa4475603860344356a0fa572094096f96b59e62ed82ddce9c79e419106ffd84256449f96085cd6f69107b1b0aeca38100133af723fafa358424b16cb1b74d39a2d07fd7657854b564fd960687244df49d25797d4372f488b9734fd0a4cc438dd20b88f3447e6fa65d2d36b24b6d87952a63dc66e71ffea844f47e281cf11ee1bb04169e3b45d444c4fa35a7ffa43f8e173632d86cd2649b00617b5514654bd7cb9d1811637b8aac836decf9ef357285db3c944f0c5defd8ba15ab9a4cad89b79555dbc94a23ebe517f7c609fb979e4437776d7c3af1695ac0f69672ee3bd4073d71afbf9b927d7150b5afc72cc2392c639f1dfa631f06dfee4c3dcb7c3760b902c0544b6531fa068b6b7e6f35063f01cffc8744b3e446d71438adc999b4b3a21585bf51c7ec77067c1b73e2e235a3678050dc5eda31c8078ea0460460cd87008ba210a76ad3478de16e3172218bf81aabcd324e5c936ee06c51bb743448c8ed7209d6e43cc6eb7b869a722800f5a95dd28b6299a85857cf5f9de383ba52bd5a466da642c1af3cb8441d3e4224489e7f22450d77308b05ff955fe83fd4d4d5fcd7c29f94022318ad8d51b8246a0be006732c5db8dc892fe96e1524f9e5bdde61f589b8687b50f689d079714c1b8fe29d2a538dc49eeb884ba9853ca09379adb2924874b06c365b78fde4395bd78636b600853d10d41e644e084a08db5ce99c9a0810a0ebb1a7fb07ab08054bb759cdada77c473c1c593ebf6ed7c1b4f2ec10f225982d032a59e4cfb7e9102d45968391ca8bab8dc41688165f14bf089804de6c2f81396b35d77f0d3271f488ad01ee40aea6c5e199ec43ddf9119236f294eb52ac822372a69b2e61abbb6eea2e829107245928819b43b29ef3d1296d05127bb31dcdc454ef86caacda94699caeb845a5444ea6c956a129065de0bb7c1ee0f033e18b002ae3fb5019386a20c0a4342a69187b40fe223c54411b9f8cf370a92abd858d16094b413e8b5c104084b1d084bfa9d3710e36a82b26ed774e733d4117d3558b51afbe9fe48a32087ad6f33919329e03a85b97aabbf362c3c3118ce3dd0a69a98d6fadc618a74b0ac7abe33298cc1448be9c1b55880f765b40e0b34a0c437b6fa5a6b3c1fe7509ad6d0a4143321e2397c18b360d3b82038609f89a214c7e6b51dd3a53b8c99af8fce0d12cda48df591605af0fe1a302ee76ce18bd849683a2e88239bccf0d5c47b3f34edb685192c7b1381607d60d2d90f2562dc6044832ad6864eb0b10895a3c63b24672e7428414a70145cf18ca37ff47e7e85dfdab3971ca8e812b4852edebdb4632bd72398639ad88e8411b8811d178c3376ba391dcb3f3f9d776f8ac3afa50477b14ed86e5be5b1a996b6b3b798890a7fc0d66080b8e1e3c274903279f88c66c930f9ecd94640e5b989a2805f3329d64f132ea2a2fcf0efffea160783963d7a25f9044c7c885a5f1c8e84d5945bed720652122804d20302ff2d2a8cfde589c5bd31b6fb0cc13592b2bcb09d773e8d84856b0f6be675ef7f33df50b59871c72ec5408b8e45ee4ef16e894a76fec80256d2d27dbda2b77b0eaeac6a6a121e7e83975dd0ae20091a78f14ab1349900dd56453b02c150ac8f1901669e08815a32f2710fc79a68bdc2223469d65ca3dde6974a7a69efbcc0195035198bdf6d1fb890bb9a9ca295141e704705c5aaa611634fb2b08912afa34225ce296fb5bfc6abd6dd9e08adfc2d9ae91e2c0b8b6d630057911d14c980c22f51de93a4417506851ead6693b44d5ec2946de6e4a4e58ab5aeb13c8d090452b74d2ccdc5b12f98372a61ad314562509f7f92b70149d2b6e6f79212f399b91dedda66f60a258d577c9e1dda19015c01d43c955d7d064f2692f6fac7f39457975c79694ef33153e1ac810af4741d13b2d95f32e42c1a2280c41616f7f8eb9fe019f490191b5f69fd92c0fcd0d3e5d4272601f85cb1f7ded140e6274cb6e186c990d31f6f32aba35dacabae401f3572d6584072ced9c4d8601b97cb5b5c8da9fc1de8b29e65055d7b2a76883610fe9dcdc4bc672cbedbe4b60180c4d00a5b14d40bc4c51f2cd2e19d65b9f8331bc79b83ce1c266ba54bed940d9b5e539f8b5990813f473d5f6caa5391f15c7520293ed79d87deff385753b54b055fcc88b1f7eb50f43defad9d65e83ffd79a3205235e3952c1260c0f42188928184e5d833104553c27c94ff28d3a1a9a1840bac83ad7cddba0e521f4f1053e0f697e967ce6dd7344c677e1b406ecdbb06ba9fc0923d7704e87a201a45545f3bec0c668112dbc0217ac680f70fe8e8aa388842516925087beef202f3ea441ffa1432303ae1c8c9c5f6acf76331726f22a7461ebf85dce2210ab54dcc03cd756cbdf1af42f4442c75b06bf56736d91534a77e0b2478f0e8b2fd5d3a5b8bad891a5f2292c25640d3215b968a84236f7fd7f0c3476b673387238bb55b5f3290ce301467448de725ccf5ed175a42f1c5b5221e1dffdb8c3a1a6bff8a0e03d9e92d3c1aa0dcc8dac0e4082357ebe00d3aed6232fc69e7b52cf448a4a179c117ad790c52eb4df33773afacfa6a6cbbd74c60e40fc781c2c3e0ddbe4dadeeaeb7cc926ec4340d0c5abc6737375fd6fa23cf4b87feef8d912c4c2df6ce5ebe08388eed721957878a720f710be188a579bbdb55372a9e0bb27a41cb2e8080d1c14cac5d201fcc0ab403fa69d6c1ea9751daa1e9f925e6b1fdca7ec228c1229959594954c649ed06d6649a0da8e9a92368b2ff518f619294b74e0c323272d827abfbb1f99c2dc4c2e342665d8e2a929772e7ec9c91b87ba732cbeabca47703868a80efcc04046bedf81b41cdd99caa175713b59193e57124271c12d1263b3193f66a2ab3822dfda94cc4e26b091adae7834002440109b4951aadbf5f762987065ef1dca088aa17f932e48d41a4c39bb6d271b70d6b27f986340015e1db343f60f67ed54636a1e9a1e476165ff27bc3d9d1199bf972a7081f582c06bda55034de6b31096d80dcd4fce74b38579d6752afd9a1d1e8cbd7e2236159987335f67ec5415d36e5984a9e411f863d1cbd755b9428e727fd9865792bf145701e39a421931206573f047c2e3bb31ef57bbbd2f7235cba2d1203e6f7fa4fc2b025a55bc5e57f6ae3a98528e2824b5ff9b3c5714bb0025f204f09539c5680352942e31f86320a75e4a7ecaa6aa5476946d8388b9927ac0fa51b69871fc4d019d426757bcf96384bd686db7e3ed3f6b02006931969d7d5765301f9c2ad01de7aa56bfafa485971c25abed0c799fe1d7a4b9df85cb9bf48361044f9296f33337ba99322afd2eba3e5bba318cc0e8976648ff9495646680662373bac43a00972d0724895ae91806d723e1bd075a6e231de90661b4edd69ac0397b5ff7d3a613344d92444900c84b15d4431ccd290bcf8aaf6479e50c11d4b9739f22fa72c219f3508a9eaf3578eb74b3fc50d9465b14e61e0afafab1f25088c00f8137623561013dd31baf8529dc01873b06392f484bdeeacddcd7194ba89ca0e563200e2cef8e5950d51c4f3a9ad5188120146a65dad10115fabfabeff13260397d4422abb9dc3cf0725ffa3eac1bbeead184d6c9959dc7dcd7361e6b875f002f10e9d350f355dd5067b58ad54c3ca0f7e01eb4120e43ad7619b05ae285e6694fc1855bdad61723d94defeb52ebc2b51f103853c5623637ad83f0adafd793e497c6311939a0a5ad96acd284dc6683ae770b2242c0f6969945fb6d62385c120397f8e5ec9b70f7df363f48f879aec8c77209bf9cb252bafc889df941e91b62a4c68c22c6ccf6cdadd5decefab8dc2678bff33d38298286d277f3fb42bcaec6b55a4f54fc9ebf181d0f5de8aefeffb45d2d61daab34d602d74e6a5697f581b68fd1858ff4840d619182fdca44275ca55349b3d189ee1f051bc40662a351a23997c967458d624115b9461f3082d6801fab430b7dbce1fc38b3db1be3174d7e8ed25d697dbd7e5929486095381baabb24a25b78755200ab3629c6b10ffa3269f42c1cfb3ecb76a2d27b052cc62775e4c90a6ca580c4b8fc5b46a42fad6b0f21feeb56f4552fdf43a09c17818ff7c30a4cafc61292a0653db2efe0f3b3d60d5413905f8b9b9f379d744165727328ebe2d2bb13494fdb7293bd696f37e80b5b7a9e014967033e458cf74c8c18fd74384319a04d3ce78b6294182d59cdf2e666a759449f7bbb3dd6f3c4d0a82f34f49373a32b2d9f7b11774795e821fed995e28407971e636910dd12813d70fca01a99d16c081ebed611217706aa3098a5956356ea7fe3b5609a89a7420f1628ed52831be48aa5ab467eeab89fae2b5c2c9740a61ad11ab61bb60b3aa613075bdb7b6211f8104ac5d4585924a3446140d8905c331095435e42c736d66d920506c1ae5885c540d5e8fa252ec8c9533630bfa3cbbd3b1a24f34443b526a1ef1bf7d7277e04b60b89df5c614b9476dc99201c50c930d8d8801ebcf5d988ed7b005a9b9fe0d117912d36821fdb6b35e844caa5508078bfa888900fc80063c44df2294eb85959025b42f1ac470e8cce135d9fd58595166483a50cce194443eb649983d894ec50f1e04a9d7e658e169c14a5fca42c404ec3d303455f4abdd56123ab2d21a9decc2d349085b60033e649d6133b2c9bc930891b678369363742052f5bbd8a695ef39e68ffaa23293e5976a3135426a8af5c2705be1dc7edceb7f048ab4403928ca93af564a88fc00fad0efbf7257e37c1b64fb49c40657438717c9ee5e96660dd421b716ad1c85ab971a48e88bf8b730286fc7741d4129e941eed770c7fcc1d2d7ab3e93cee33878c6426431901cade39a5a5c90ec92deebe1c37872981364f74ed6b7fc83a2a2833ed287f4509651d9e00eb7dd67a7c86e87588979d8316b18554446e35053f661e228c9d3618072cffe8ac8c4cd8e1963ba44fc8deb9b782d24ef49f9a7ca89ef10ea94804113a28244b4f53edf9c6ae038dd56e8f17b2fd52bd5cca591b855b1306629d264c4b9423c4295114d03380d080431f0dd6cbbb115931367a2007ac516391c2c1eea539748ec76d8a185629789b6bb8adb5948d548b114056bd4b9632be7d4349be54df4a17a58e0720badbc979e36b9e24c863ebe70fa93cc97f7ed6ddd0cdc72014c7ea62070d1e1e440e3e9ea76878f882d6538aaa446da59c090bada55b17dc836dfad92e629b94c28c24339664a99f273d62fe323113398c273f372928af295b62ad39d5788ad12d519316b832e836597e106143f1bfd154d7aef0e7a7a0185bcd266a453c68d5f9bfc4fd45f1660f95a5456bbf302edcada935086191767b3fbabfa45e0e26b3432a76b4f1fc9c3b4814765c2edee0252819ca3324f10b2ff6a023aa6f5bc089d37e9e96dfe703b6055fb1d670f71e7ca81cd6b254f163509c4bdff39009e0c8da91d4d23c869e76722c411d8f13812d4bcbdfbfc2210df3c08965cbe6194d6066cb3cc045f5f10d0bb065e6f5c96241f38f23dae22a27327f9577f01ec9dec79c94546733abcd142f4448481d0cb21249ffece7b7f04de1a9e39b1716ba2563eec4409cce1673326273a8785ff306fa3c0350b3dbd299871c33ed8fa1a3e6eb1652e3f0b72d54c7bb007dff35025c6f90ceaf1093435606077ad3197295cedbfa855f2201f624b007171169a5dd281c4193e005b8f41b6538c92361c3ea145988d3cf597ae0376b04f2a234975bef2f7238565ae4e77dc4b1b56dc38f0a58ad7d07b2c14f8468846b230cbb41b2fa254863333ce44735387fd5fa34e4d0179c2923bfd9b6a9efed6093ba912845baf1b455f6ae519fd0c1152cc25cb55236403d63be29687002ef14434a2871d6fb0fd86d008acc80dcf74fe2f18ec7cff14f5056d69e963d640f758c8ddba045cc18214a27714222681f1276dee632c87e3b96b181c9d2a3a7386bf0094f58a7daa95dc71fd0e4af55dfeb997962941f4943db7981311978528daf5f0410fb70a496f7021162a384f43dde2e9fbd98be3c8c77fa23cc67d30b40dfc721706c658a3da8726d21036739a4196c843764f3ffff3ba1c8b7842ffef01d9f3af8ba4ed52ad7b6b9f2a65a292c80cd8f6f5c7f980bb4489a05c5f81f974155068fe75622e5bc9bf1dea3906a81c3e2088189d97b5bc5dfda607e1dfb08b3cc0e33f10165dbf95d8e0aaf9e6b0236d41ec1d748aaf122aaa62bdebfbd2a561d591997eaf3e9023e141584032eb839cb832925f5bf9de33f5bb9e32ddc8d6988547687e70d0765f9ba2797f51c4211034532468a5ed1ee32044797f7086c67b483d9804587a6d5610c4aa785055f5d6f7a0940be023850c8576c63196120fa6430413b6146eddbbd012f9c453cdbb3d529623b8f9bbd66057b8bfb88092643b8744216ec701ed63c50a194f5f44965720ea8d54c292bbf903594a1b63f2f65f5a566abb95b094c98f14e9d76cb09c7d62218fb825a907d11515e5736f8585bb9708ac5f0cab5b8b7a7e4170d2f6c8c8e00e18313648434bafddae6e25378efc19267dd2512110eaf972a302f9536399dff2e2fe06ac9ea992e614cdf027db53388c6dbe28b16a4ebc0ef3c962934611e42cd3d6563f8d93ba3cb4e617cf72f552e49e81c2a14fc04af80ad501d2e79a88b19a5f0ab2fb9682678122fafb979c6f5281ae61d74b6f391ba288dec40a5c61b673b8767473a25fd656809e501804e6aab78ccca8fe2ce868ae1b0ebe70c8f04559f07b61858c281da111920fa16f1c0147958f005dedd2c02918f9e99d11acad0d8c6fa1848aee40fe7a1657332254a11df80f741d4d7262e0e1f17e05ae0ff86905d70ff2b965974b75a0231ae685c7ad186e3a280aac8aba281bd98adac3e4e548f2adf79bddfacb50a6b3f5874ea5d00b382d9986d31ec5759ebc4a14d110043416ecfa91c954c66cbe268958eb88661cec3cbd483a8717a432380d9fe440521fd7d39b65d9c03abf0d72f8ae4637314a4b037878501b9764f2e19503a5fff952035d6ec3a1ca125206040e6014cb35c77b5da96655c182b98268458a160272886d775abbd4877fc475b1f04efeaa8b79fb377e0398a3a37a89b224c40f04bd738793d6410a910ec6e3c56bd7e068de7c62f61266471dfad373067f04be0ec737ccb31fad181b5d9d40518c61179c109df5207148d340c0c58cf4a5e0395bdeedfa50293cfdb236a4e30ce0d4d8085ee10842bd88dc99a5a163fd56b42b43f922219b3e8d545e5bc7d971131fa4a613fc311d5da9b50c3a91822e802080f1765575e1352463221f0884da05b2bc5774db4aaaf94f73f5970f752fce862cc54c7c012ba6eaad3393fd85c9ab03b763a91b447e83c68ce87f6c1e79838d03981e7f1d4ac6ab2250ef5004b040091507ae8fc78bcb7b0cb7424a60b195a1995b94bcb9f47b96d005803e33cd5ac4f2a9fdbdaa65d580509808221165f37039be5b8279aba8c130e8741935016db3c28f6c62316dc30c5b9b3ec0429a216ee8c9a8969d79f1a3fef587c648ad235c1a12fbea1f9620f9b2c135c2d8f415527bafb4b1bed71598a0b19d4048fbd2c78eb8a3f89daa5645d465491c6f674f97ba2faeff573b696120ae2b137726de03a1bf1ce4e838539130cf349690aab4fc9654cba1211d2aa1b39269e1a09f98a0bae04538d694b8a5bf159a4c3df4ac046e6cb02c3b804061d4d60ee18726a3343a6d833326977bea1fb71e2dc1a93c775e792c282644658ce9b8a55ba33230d78f0e9846a6047aee467fec7eda05addfac865f9390cbd2747f314a2d2e45eca669bda69923c768e4c1a6d75430ed6a0c3896bb5befc1664b10e5014985fe7f43f0c1e6872d6274218648e51d196b5691fd17f5e7e8098cab5c56b834d610c35313cf3b1da84d11a051916f18b190b144ae1de48f8f1e5b0f54db50891d6ac0ffe58a549f2e20c57f9b4aafd840b03ac252bc8b1f6c711e578d162e74752f9d740b162a0446b3248014a304c5f32ec3e8ff4df959588fcf484ff70438b4634d633364bb755fabde89b756f39ade66c15b9b85716f2916310a2982cfaa5a53c281a677a7d2aa0d6d246a9868e85553f101b0866d8d2ac5e0a81ae439b3d21fe808e3d1d92db9cdf3002d5f8b929401158652733e4d67321c934d92f2d1fd03593549abd44cef7ce56edcf8094fb2ff4ad81522ca40c6eef9205d78dc96132c26c8d7c3442bc88542e48004922cea433eac0feeb76cf32288052f774028d03a7787f8de7278e79caa7e2f36e2073146a8f7ecd290c91aef98e05bb6c1c0f2d50aba5c3cd716fc5103787a86af151c463b751647cac3721704b0278a062b0cd4d3b0e99f8b9a72ea29b571af695c17f70f25e5856fbb96c7cc5a0af0bd4c9de50739b5ba98d1f7ef013b3319c53aec0c1fcae63b2186b176e925c8e3e79885d3f52b12072438cb1c35b50b98d2dc9762246c32c76fec7736633e1a0f0d98c1ace2deac695382e18f24f0269e57c871b586d5cc7d282af3f62035e795606a797dfeafb7295416d772de5ed0c20b54a22e84151dac0a711b89fa7e0b019d415f693a802712538fb27b669643c15a2ce934f1ff703d7d65426a9ef2b189cbe15d436b3600ce5b3a77f442d20c514cd0b3404ca991404a9e4da26c4b3c470b2397fcac3ab1d1059b87320b6ff9793d1384acc6f067ba192ac13ea8abbb01dc77b2846cf981638de8d7a7a7709845299da6bb27f2b07861099a344816f9aa665d7bf5d6640e95778cf0f70efc4af0586a39511c91c2d6c3b0f8b23ff30dc0bbebcf23ae71d33f28a6c0ba8edce4fb754a82119bf75fa663879b304d8f8c15064adfefab98cb56e18740d719fedcc5225f95e7810d9eae876b29be3e9a38d03e39b8eeae561b1f7b38e49fa9f40d8370a14b297702d872042c4c6721a74f8c05892747e4adcd21c5f2dd1a7a7606c3c35d89d365cab33347109bac00b061f5dd9fe6db03a2a0e8e7a33020cddbe9dcfab2d498a19c365c894e5560b291b9503af5191d7dbee1d74f709237eba4e0e7f3133cbcdc73e9cca794ec6faa8855bc68981f1b248e5ab7a12d1f604cf21821e2c88cf29e8f0db755825f64f9bc6f24afabadb487244dbcf9e7da2b2e0b57e13c6cd9c3d9f1e0f9e62d64a367b39631a0e340fa9a9380263e5b04d95fd91584747050278ce2f233ba9d62bb16d955b1f90adb20c5765dc29e7c3753b86a37e203976253246c88fa5e4f3f4431006e3b2b7d119ebc6a1ae272f05f467d714542e77839fc73df10e9f0b3f51ef9db9d15faae6b47cb8ff89f87947badfdc441e0fb007e7a984eaa7ac4af021ef381fa9795a2118f3a0b907b98f42c87c5dc066f4ded6e942d10b6df6e1a9f6006f0d793d573ca37b0872ca41cd41d9a1b583835e15347e37e3f7d416642caea2488417f4acf4a1a35b03982cbaa3173ed7ac3a7201bf50e313ce525f46724447a8c02673d77d3d578b7bf513b208807e9a8efa39f7f1f5a092934e5f73d99272ca53ee9bbc11f86a6d2efdfc4974fa446ecfeaa9c907d380f6de563036eda8d705e9aba5217a4d8c7b8c0bd679f6716b1755ec143b07ce940348e82b016aa9c1ba9f37727761c1b45299b79c280d333cd1467d36e18375179edd1f5a945f544cf58aac6b8f06a1d8a6416b252b5fc301dc0adc15853ba89f2ca6678c681be99a5a57805aa2ac60039afc413196cc56b5f12e4767ac19de605432a89c141d82986aadb0fa6df374e9dd30f946d076b9613ca48a99315e9646793452791736fe655ea0bd6925b6bee429d257b489d386c8448a829b3d84ac11f39623e14f66560d8c785cb0500ccdcad5ff40e8579095a8f13ede1ece49eaef579eeb4d9217d666809226e27c4f3af306c37f1aa9a9bc4665640e54de9c4e6cbd9714e0c3b504ea55dbe67fab16951c99f93829b32b2d6b65eba3389ebc60fb7a4f1d323001f72d1d3750c4964b07ebcd5c3dc18280801e81da313cac24faf336a6534d82268ade5606937528fa4ed616ed5357c961296b5aa4222139871a6f17e3b8ff7c653e24c5a18c8ac782b2e34d074be194b932bf2bf417e936fbcef1f77ed5a2c03eed1d1ff4842bf7731a3c0e4494dc049fbab1e3a9aad6599a49900afa419756731d188ee8052977cf82c859764697b489d416c9c17213e3e3937d2c7ee4d0b71e12466ab0d39e386b65e225bb9853e32b085dc8d6777a9d92a41c92182a1bb18350ec1209d5d4d2d84598aa3ad7f68a5219d7656bae19cbb2121e96512703d4251d23a17668d80199ba6fd6ab4b21e74382df365f34b458764e109fd3428ec4e934660c1e0a5a988e4aab8adfa3257260752d4cd692a34b4ceba3c985534618bababe3320fae61ccd78d2dec23010a75ae009ac3380f430f17fb0eaaba5dd1be87e17be255a089cba8ad87ad164969d16f7fa6222069c93666fddfeb99dbbca00d3e4d2de466c77ec6fafef9d8fd30db8fdd71e8f40d0a1d3d2f9cd43c80755ea5903fd4accc0172a9d432dd7c6416ea0895deb7a172108dab5bb42535b63a17941ccc7aee646f4af2415deb1c6020890dc0dc55b7b28fa0d6b61562a13f2f6226949d284cab8a3ad89db0b6e89039f75a8c0c2c8dc9b747cf633c5181e938c5aa5ed3ca75de838ee7149b5941989da55bd6bbcaf19e5fc4b86e377d1aa5ee3f3cb3d8b060579721108bfcf1e513dbbc19166e626bc954303f759ab66cb915bf5c52870e105f05e603c5941e302204950108194a08281cf65d77e68fb6fed2aa5fe8bc7cedc44663e5ee108760814f3e74bb637bbfb5f056768ae8df0956a159a462a176b1b77f3146da2853fb9bdcfc29f18014613858e3b568ea41f0ce5298a0c19bdddba2207d758d2db0341485c364f3b0d716ad3705cd1656931f2dde29bb315a74bc121b8a1efe434f6da0a6c0f25112ab7494eb78f5199b7b3ec07e3ff67461640be10e2d371148e6be4a98d0002c2c1819808acb48f8b8ddb8bfb8036ae74eb8112c5a503e3afdad98650e06bdf187cedd8322e366fdcf66a49c28138fa857e261da046fca53c3e26bc70829c9c7c31e986c74756c7d7e05b5fb9ffe58b3963420ad161e688b7f45681f07337df6c17f69de698f39109e6c4149f7c920ef6a68db220580c87aca9c487527d3f90efd0ba0bc450f087f29935719276d5f837d19f5ac8cd13fc8bd302f2683ec0ab093ff267d582a525eb136e1c5b05638f807479af976de93e8ec4e92f09614da14523f8749d4e7088eca52d8fc19e5d3ed98d74b5486881adc2dc838e1c21671d7dacf770f37a21a1a4fac8b3043f08974e511f75efc452801d8714633f7700c91135bfee2a28a49351f4af31bad3ddc4f2c209ea5f89fce5508a5587573d63d4225b01f54672252484df714cd550a41ae4f9690ce39b3eac24bbeb28515addeacb340209af0c3614f45c378e7b188bd1f11e53369a2b2834ac9a07a371691d2096aa354b64b19ddff8c81ad106b5b50d5cae65b9d40637933a72e05b339cf99c49e1082f070a276702f48ddb8f81c2c739856333d7e9f828cefd232e369ebb3269be8ce4e9033953dc4f371b1dcd7c1ff2054b4fb8cd47ba0a9f9db81691cd21c072c43ebad720a6447a1c943498d9bb91ae5b0c91883053637954d95cecbd97f1402d948f65c194ca435fbb93ab306de30716b9bc8c372b44599d570bb18b78b48341d0a55c1ccbeebd6aa8b9ab28eaa2a43bf181cbb0788cc815f8add55ff6d2db05fab02c39dbfa971eea0d6654723120cd9f9c22b885fa3c720b711886316c9097422f05b6a84b532425d739ee767a0607f12a1e4151d346f55a1adedf2b271f4018631d4bb05230f8d6483a0b3a16437eb4d504b5f94ad7c0c89d6722d827bcc651ecb4e5de1b23d354c9ca637d4f16e301d18da1d70e57804a27d3ae6e4460f21828e3c42893ab844aad35bd21adf44361a009fe4d8c8f097a0921bf6d968dfda9f07e6bcf803c09d348c610f1d8ddd3fe1d9bc3eb7d4f6b947bd20be4d0382f0d7d3e8046a11563fe25ecad1c372c20463dce51dab8f9e020a77077ae7e5e395871fb10dc686c4994038a24e792a5f5931b1e598126981cb0faec3623ebb0e86a77005adc83712f36ed663d77d98846788a219fab9b13d5c3433fba0a059b74360577c11137f91db71307e741b4ae57616eff31d0f9cf226cc148a0fd649b4e9b5170189a60f54b2d0f3d94fc29c9a45c4267821f252c61446b0fdcd88b97f8bade153978167b239af314cef57539ff0ffd9c3607d3f63e2f9b418a33d5ab5258eb7875c59e7c63bd588233f43ff556c4cd380c55e87748cb58a512f0621991e1fb4844ba958ef3e56969f6cff09008d178971659ca62bccdb8e53ef5676925606fd853093d8504acb3a75903f3b469f1874ed70dec8bea325637d0eab28a8c8a74f9b8749b351ba504e4d29ed4eb690b97c5c71982fe5fa58196109e05f0bbb28c12923feb81c25bab144668b8d3fa84cc0bcd7ab835e4b865f452073e28c7f78fc66228ffa214fae476a41c960b5ce10851fdb5d6a6a5d9ff0a5990a3922c48003de376ca9922f9d44456a4c8d4f6746522ba7ba164d147975afd4f49f6773df3af13f6e0be804c2704d00ff112bb8d6c798dabfd9d14a8ab2c52b87411925cc5153279b105c79a36b6e1d6aacc9e24fffb655e8e4c3bff956ffa686e7991e0b6a8a21101e6fd7c3bc8930e7a88c6c37f6e458f38b7512cd01a67e042d6fe30fbe742f8c0e624e7381f227b2f43d57f5bf1af300543bcf4a1aba6d583dc455b1e5bef5543ebf46f6d3f36b265f87c9d90360c05d07ee8be1e86dd42258e66611c46de36fb5cec6719c48a9b0967c47ff9955f897d66c1426f6a6aa80a5c8579a1b59a8692820e74f58a26b3fb50e7b0bf0a9ccb74815a7ba158042db607f8933bfadfb259508570e8924883c1f978c103da217b55d504131abc8dafd03c6dd0f5a69b271b61df1a8e7e957590f520b11729b5a84cf04fc3aa782015be77ba7b7d1e0255166ba5f122e7cc2b768df65e842810c55cf1f78b67364c6abbf1f2b30583aea444c7ed16c445e183a50c3f299995538dbf5135b6f8559bd527c5aaf625ef3d4fee1cdbdf4e383bd039de5884844ac6bbe5e54dba092ffd02c4d761d25b95a5341ee4cb9cf4dd5a3746713a858b432f58710db5c8d7d2ae5b901df3186751311e312695a3188b09529dd7b317f332273aae3a61dbdda5f49c786a93c3f0b96ee30f0d02d88b06450cb0732b0be09d0b17c1435f2b59a59fb05030a726dd6ae4728adf7baa455b76eb663b13195ad1fda418d0f123ec788b936f6dbcaf403fa89436993980c796023c6fa52aedc3d0bf098be3bf47b748de5d5c91b752e666f1bd3392191ebca8dc3cb36d701203321a1ed8dc73b85fec03671756cd4c4f9d4901cda5ed754f05e217dc6e473666c0263c47a45b42e6caa3c11349412df3c4434ba22cf4ac62767b6e3be80d0b779e4e1fb9c495e2f588bb160cbfe3ffedcb0dbf4b13acc1f6c329e969a9810db4c10bf5d87ec8be811d59c7b9036042eaa5b0f12ec2ba2804abb6049d77c921147659f186b4c0d65bfae45902971de6a305c80d09f70edbcfbf28c79b960e2d0f0d489fd110a6d612a73f5bb0602f65fd21fcf8c289e2d5df63c23452ddd12bd86e2959a66ca3c6f8a308acdafe67adec2e4a1c8dc8ad5591af3cfb3d26da565ed29ea8c4ab671850e28d9d74f3996b0c43f0b0ef5d0ef04cce1f5fc02f202878bd70aa46cfcd08f2053e1bd5abfeaa92a964069dc4fd3d3cfc98894032f84d2002d78b0a94b6ccf5ddbcd22c45ca5172ca6a0f208aae7fa7cdfb708ab4d0a7fad019d17445a2e1e079ec867029c1df243ff092310c9790de94a68fa72582724853c0d87e76277673caf9ca1032c0672fb8381eca756a01303a97fba51c0d6a1b55d1461ff9fc9e7aed528b04d5f2deb32eb28d1aa4130c8308bfe55bdd9c51641f593bc5fd28505960ba2e1bdaacd0eb6428572023dc1f0e4f5ea1ae95b2c27c8293212a2c2b7d49afea5cbbf286ef7aa6815539140c201d2e10ae0a5e234166833d8f0dfb6f2971e921d445e1653a0359038c4d1079e80d0b96e994c6ff573bee18053a7fc3dd0b85eefa344587eaa7bc2643ae58fefd54ce0cb03c2e5f761da1557721d6611ae092b82bda1f33f910e5aad813c9dc6811429a770f18d52b02143242946c861f505780f31e19156b0a487998cd637fce3a65e4ffd13925055f6f60e4d4f7bbda6b1f9c5085b00a0bdf3cd4ad75029970ac2baa7beb886aa01374ba98b90dd78ffd614bcc66cb359987183f398a9824038c06fc2abc9db4ed38b734fada9cfeaa2a762b24eea3ff18fba569d3da114c8147f224b51b86bba68ce36d654ca36b9fe5d34a65578df64845ec43fe21df7b8b9f56ac19794f1e0d6c26b8996b77a353ce50c34412df13382e0a226cdd006fe0c535483260f8ea543c5817a009509c950461fcaa0c877dfbbc697a81ca360961b7ae2a72d5045e32606fa1eeecfd571ff18daaaaaec97fa02b39e2d261ce85966f687a9a01a7e05746dea3e41cdd24edd7f5abf66081bcb229e88853f09c6cd520eace02beb87302e437c33da22793cab46f239710cf279be7a788eec2be408326e2fce6ea10efa284a6d75693748819692a9087f97add394b6652bab9872a88f02df3545c9a8b1f70f8f7b741c408a3234b9170e0303994b4b9b8ad7bd63d4bafc010929c94e394dd348e9a75766b73d131264eb9b4d5f24523abc62bfee53bba8ce20f711db6d4e88100dd1194238835cd4dd785d0b013d58b69855f10db224b0f2c8a0eb8f1f9930f7ae181363f86b12d91addb95d9e3d0355f759c0017279a10f1a94a18f9a01f31c2f59add89b106129d986548a2d96f0b434c444cc5310183824e5a062bf481d37f4a9f6b88bde9e8351ae177d9bad1b4309d711b5a8adac76e9819175ab4c80102a7aef9c122233db59beb8427ca481c4af3b90c8b742eb4728fb9298f1756505d0d440208907b4d657cf928e4b8d2bd05be857543285e61af6ab8c806263b28817a8986592e56d4f039eb9353d3c425200ef8a6bb850a6d4294af0436516ae9f122a0b9268e22dd6f8a74ab19d10510966ee27656d049a4e962965dedf214163b2b4e14e39469a2c1c584da2c259670a921fa85d9c4e6cd414bc91b2af9d788115b33048920c9bc9ca6ce6498b395a3d7c3902b26c1812a75f18a003b2e089bc267a67b0dd865556de013e0b712603db15a55888a683b27cbc9129785c4393698b26cebbee2106337fe83af4276ff9f69fbb2e45872c12fc76aaec9ee56cdcf1e1d98e229ea093f2c6362131cf61eff15109fe14a62180422beb0f65fdec665250f178a3765d0fda32393595b1f88d0450ce6965e843df60e068bba11524369f620f267f71657665e62fbf15962e64b9f1371c6b86004bdaf203828a3abcd37b39138afac27defc2bd812f4ca05c4172580c8e9c1f970228cfa96a3c7b343ca2085740dfb6667254304faef8c0431ce055c29635df5dba397c236938e2408d61e5cf19fa9ced3c30038f147bb6a37a8da23fa8b4b0b52eebf53abde2fd008619e5e8889bc59fbaa3cb1e285a9d81275464b7065c84a0d8945741fe01f94e27c08b3389198e308caa4171f7c21080e8e3046322b4a32bf07cd63f904143a9885f8a478a4d7de42b7962c45cfedaeacc40580f760816207d608c5ddfb4c9784495cd6bb613709344f5620904023658a34113b8f2e714ab12f11144054dbfb5b412dce2a6cdd513313972e8c9e39b011d1292ab0da390f0f653e98c6b64f52c971d85f438dffc2042154c8aed5d273628b3eef0fbd4c4b9e39fb8819535c4e7960fdf0ec0346f0e598a9b115a4c8488157867ea82d5dcb1416154b97a608378a6d6959842b75eda1d4f2dee3f33709a2d87156e0b46a8e2bb1a9a5bc36a922d0d73894ec8db2171974ff27351b8caa7775df3ce51885f634dbf1a16c63bf16c877cbc460214c0333529d25f39253633934a33902244786b7738950b5f9f68bae09b92f2bd5c8e1369af4d344de94776b1f0e5bc10e4893b22e2404896c5422afc0c5fbaa5afdbd4c967f19710154977edc8f01df819428ec70ee88493c393425623430ccb8fad4a550d981fdae086e67b9d54c86a536983e97fd2428c0f128da9c45cf856808c9dd20f7d2ecd2433256e0ec4bdde4cf73685f07f8a30077f5b85e944b4878d60ef84101fd667ded4170e108a998d7e3776248c32d7996b9f805420de9fd2c25dee5665f2df16b148a62a6ac0837da8fd446e7449f9e6ddc3ff870a73a59baf0029689be36a9d64510b0738d6e4174dea249a3d6bf97e68e1f457dd240f74eb1a356defa9c6a060b855016966930734bf50f66f80466cf63937d3e3a92b3c8feffba3d4e9765433febc6e415e76d5e9c35dc5077eb860d99478c4f95b5cd4b75fbd35712788150f9bab9ed773d5df3b3af513f5ff31ba4307e3491197664305279cc02089a0bf4bcfa06f98ecd1d5bce297cb9fb3ea4ecd4c77dab06722591e28c56af16976a9e1034c63c2b3c1d544919d335c92acdff4afadda7189e0dd2ac9835125bc9681efba83a9eac066aa6ed1e245faeb8dcd97821bd080b521505860d55eb33ba5b73610fa2b77ce3c681a9bd6b83941f2177b261fba1f41790b58b04d90c67080b99ec9d03e246057d9e916da644eeedbb6c7a5d413240cb574df745e823c82f30eb0f76e3c82198abbc47224b761a5d81c88dbd48979bfa47027ff53a329d8df491a263afd7364d5d156c69c380fb9120b2e2c817c9b5b1afc6ce298c9528e08d42f1c15ceb167512f8d075ccbe83651e90dceddfd1c17fe3470b01209b3b6e9de642dc642454d11ef1d0fc925f2d1f082dda13c18228d8f85f7c5a98bf96b451dd419a70310d9b8c1fdac803e249d1f613b9b3ad1e53b2eec4c274ee109b45079bd7e4080454fbe56e7cc7bd0ec95e5f926b9d18a3453438bbb6c0bb47732aaad01d7b242edaa92acdcaa25dbaafec392828e811af1d226c614bffd0c10ab8482a60b0f7a62242ac09f1754063389f504985ad02c90f919312fe4395f5154af7357940034d4079fe935cd531e4e51998894b1a6519c02b183625bfa5dedf965afe0276ba8c7dbe8706bd37a703aa7524b06b5475c3335468e0c8aa33b4aef12b1b5fcddeb93d7e18a50f4f2ac27aa27de62dce797854250ec0ef8704f04d26c366c99fe57e3a914fcb640ae16b8b2a875804d24b058f4b5ce4d9cdd47691c9af03e354dfb368f0c14b5a4b736878daa8e1cc5dc12872b79c232391900fc87441e8aa8e46b61b82191298c51fca1851dc9570f32ff7e2e53c929c91cc7f33fc62e53ed176b0c01fc412f97942f063fcbb13410ab6bc0471c7325fb2f67b9e3daa9bd2f0fe230f645e7ac5e80602a6105c31c5cc26b62b418e81bbff1846c597eda936ec6e19f2c4aedc648b00877118f1b5b605ec38de284fd82e235fd6070e326c4ab0f7b7ce77412686d266ac93d4b4aa01bf6e4fffffa7ed9bc49c19a53ac92e2ac7a75bf0ef4f4c38aded1f0b67914816664ad8bd88bd021ec715155cccea3a14b4426b275efcec8091b49321b8d4bf5cbabce9404a5ee5f21b35d8154cec55e56afea7671135eae129e6cc690e39ed8f12c0196671e9a1cfd37453ff93552960069137fbf671072b140155950ecd46a9111c19efe0830e5fbe524660d7c986ae3da6014bcac15520a9ab98dff83fed0ffed93ccfe1846cb72f3e501acb99a228e8c8ad0e8b8e1519ea8f476db91069246db90d843c5a5e39b9045cf0ae0b7a6a6f6ad24c39001b79faf691bb32f771bcc8b2b8b0e76a9c6b2f51ec29c5527079a69ebd2ea32e28e56ba51fbb1e66c3d8c1c1141135d5013216859800425fdf4dce9e97398524d2695775b85faca77aae0a43b6ed8d096e9ba08bce5d6276945bc2375f3637aed913c5f2a9e1080997cd9c63f166545c26d0b7d917f2dd70674bdd8ea105b512028d153ae1f1470a6ad25c23d523f3c594ab1c5751109ac5e1f8f68b7de67fcba041f32c155cbbf0fa08bcbcdd2bac5702ccbd3e01184392d888957b34507d62985ee00f4807dc98297f1aab556976dd24474af0029d56a9f15bff4cd814ff681cfc8b239549d28da3af6e13334efac3ec750413eb9218f76d09c8113a24645b048ccab297a43a0931619dd32d6753bb96f2a115853201df2e71a7dc70a8911ef1c917de81079665d1b73f1c43806da5df89c8b563e8b58702d7df4fdf13f6510b91d8b6125529e541eff28e06e8170b5a4d2a0bdf56243f298a3fbd8e46793f853eb86603ed80a3e55721f6f1cfd98e4b850ce47a5008512c1eaae514267b7d961fafc45d4c44459dea47172fc41f255fdd3e526b2f8308a679c603ebef4205e1ef75a86d40bfd6d388a811c5c9ad3b3403d233f32cd9711ecefd319e04de6f4096e28df1d36165ac7b990879df03b1ed28d631170708b46d69aa7e984bd16e165106132058c9eb6548773e4b53d168b08f48e116b97c1444ff1518459724781ba082344d50ff5208bab5ec6ae472d28bce787f654dc3dc8a696506162a57482525f232b4848a3547c7c917e25b06867ca56312914b1ed04ccbd6d1079107156bd6e9a2010dbb5891bb6de50cc522d1794e15dd8c321e0d9d8f93c6fc7b45d534d689a8051f79d7ac0d255a8e8f3fa897f27ba5f3267c3a9849e31b64ef1e3569be801382490e50ba8f38e59d33ea159742304a0624992edadb0f0805fe92ba5009c7c91166740cf72595b6e7b14a6c35f98219f0b529b89d666c007243bc9001df3434fa6e6c382a26cdcece129b7f5b48de74616cf4b08a63937da170618a654e79143cacc4f3c2156438a9cf640e2e5dba46123a5682165848c8d8941c4e94ccff7256ba57128bb27bb3f53f3845eedc8c10304f29e5f83b52cfb1c6375b770430b38e4144da39f943f464628c95cc8b4066a407f9649120f73de4955d81271121b6887f252f9e3396214c60b7b0ef8d55bf49104f02e47f7aadadcbd810ac045de041833d14cfe764097b9b05f9b0206144d663ad99cfdd8ba347294624115364fc150a3a5f44cd62b0617452be4ef9d14fd62bc208931941ad60209c950ebaf24bc5b729d278e05c75e6fe01978cc626ca5dbbbf375877ef78051ba27ca01289b7a5a8c4bef675e99cd63a2637e2a822bd75c82af2bc4f3a7777c3c1d8ddaff7f4ae2c45f2ce0fe5a052721a6d59e9e8e0a23c470295176d03b72ef757b3edab04b7cd1c8ede4717bcd06289d1442ecce86a4c24a98bf5fdc7378252252b7ff807523142b7bc5e7a4deddc5c468325d2924043f50603d21ac77a3995a9315d3b648c935763ab5fe3d7a9eabbe8810deeeb19e3cd8f924149b7f61366dfbea551383d290a3074e1b2c08cfda941181a2af728293a8b86cda3ef3f12becee0fbd9515966be7ac0b51586c08a433afae81d390f152f099344f82dfe65639ae1d15edd2e302dfe8ccdab8b379f5b461c46231a6e2f33b113e07fe2da8f6a7dff5f6c9c77a6485d75623e12e61f9560a74b97771815bcdeb7061b0d1f2b3ae2e394c02f38e19f9a1d15d5a0e9804382c7412789caaad0125542777bf55f7e353d023b91f48a15c1048ae461b06d53176fbafa70672efae7198bdec32b48fbed66696fcf745bb5bf82ce2103529206e3c4936675f9f79a35b8fe48a72c6a8543fe9ba8b0216821f8ad2b82ad394718e811d68e3fb2b3bb101af0835009811933b0dabb622be55bb2cf0bb1be86a5981903df3a0bcc5cbeef311238ce508d3a670c9978a5d38965cf224a86229e7ea5e71f24c05874f4e182ff429ae954b16934ed8edbb1bef2dc7ab6d65ebedd78ae6b4899e6e4f61233aed3b1143b0675b2d413a8a00dc44ece849b08f1b8b1d0e782bd3c1acf0c56b0fddea5af9cbbafff906b0fecb4d0cb08d8b348fb7562e28a21da54ded15f95abe54ac37d4507114a3cb43e69f180f627eec2641223a9329a08559b26c4cb059dc3f5037ed54128503e1bd4962288abf946a1630b9116b0e619a4c667eea51f8e3db48898b60f38d00972e146c33aef48dfc785c4fe9e6dcf1b55e22bed976b186d128cdb2f8c082abbf699741531f07a68525950885cb536542752e7c7a6f7c84dc2d738bd1f9e465e2842027f5751046a8d75f178cf3e892e1fabdb6c6bd2ff3feb4ac469471ca01fe5c9c031cbe484f19b0711f19cb1747755a5c329397b31f30beec5f36d09318ff0e4c43e9fae0ccfcb4b73e6ad6ffbe068669834d6804739272f85dfa12f311bd7f89aca69ead16644aeffee8295389cd73a61ade4e05057f9b87755406429565d69b581712a1ae3cbfceb1c8ee9426bf9bd1a6659d22c7202675af17d1285fbbfc9b42aa331663dec3bdf907e1a702227b535d655ac470eca67f74826894b57223691e45d1ea7feee91d81b8d6aca19713fbfb81c19097fdd099a0fb19fdf3423cad69c2326a187d2b23220e31311af369ca9579c07e9d44ffca7f9303fde9f97ff1e8e98e07b418653c01dd6cad36fa06d37c1479b85e7cb19f56a6993606fbe7c2029f90e8e713d50b5cdc9553d8e07722dbd1c44dc911072a5850228b8719b3e6aa3cdb3fa75fa2ef0e3acd2d75e7cdbeccd0aab6c88249922bbd3ca12eaae79ecf9a8377542c521a13c9ca8ccb061db30cffeb252f3d603763bf55bb29fec9fe7a05902bddfa513b775b56c624fc012c87e679ab86b15b5f878631de3436644f1a827ff46ae671b794a6cd43c15a16a4628bfb26f420eb7796bc6747288208849d1bc00173b665718366a3e047807c2052ac4b0a96a8e6e61ccee4336f6ec8be609239842eb844220e54dc98526b597d425ff8eb0830c76a46a266f620d6fae411b9c1e8c5750d42a9e69287727c56cab474c5e9fb2b2c0b8b92015eb66dbb4304fca6e2b8201d802eca7335451b20b7574428dbfe985799d9039e6c959f6944a40c28464decbacb5e6641377512e80fb285cc53f42daec0619d775deda02731fd6efbb20ea48cec6cd4501cc036e449f09f0f76d1883ca75fbb9dfb9c3a5c0983b3c90ea9811eab12250aad5b96cc1f276c859595032d1e8b6672481dbf3466927baecfa7a46289f2e76e7954ff5d3e9dbd73a9a3f256620ccb2f72aa0b1d6f5803ba16e4952a0b487b8db7bf24da00ee23558fe748aa6c18e45f1a25404cde14d0739aabefb08e28c90d72da0b863d1743581d7101c6d296d362ec650e3615e84d5061ea9a0fb5d6bda60670b32b22c4cde0046f3966377327eb83fd1e17419f9c3f4ce110c75aeaf0a7f42119962067a60485b398ed4a7c2083a39a0e6e8f3087207133b83d204fb171fb6ad918ebf4eb0ded2c82e25bf2e804bb90f47f72d9a5474554c338825be2fb8877a8068152bffbeefb886d77278b1ebe3838d0f510f7fe97a0ed658282de4d782dcb3a4bc85e00c211d2de19d362d54a26b8ac22c0cf005dac13d5df61e20520fd8891480ccd0215805d276ffbb501206beba37472df00478fea7adf2e59d5b055486b4ab5991dd1e4ad5d23961ccce362b2085e702920323a09ada4c3c102e4d6a82e4129891fac9be73ac34260383ac10171dcf53f7a5e1f0eab19cfc9e7f99977c39858ca0b8b9f4c9eacc087972bdc6f3b1df7c29b7ab7ea1368e9aa70082ccb18a5d82097b445ed0a8f02d411db6cf104322520027ead4569018fcba09913ee9c1e2feaadd33c81237c018f218d40c02fd524d6a653bb73973744240b9afbffc5ae602dedc9799f3588b1ae18fe937b633e29096d5481be676563ef5c97dd5e8d8c14f42a52fcf6adfab9789908130f0c07650bb691e28f0aa757b8d14ec5faf128df04e97295bd9e0ed3851b9cb6d2d91e0398d0efaf9f942246f5ba8b07b071eb85b6e5c019453d43ebbd6b03fba23cd099e38010ac707de067f4fd5506a594fe4dfc8e71a98a653c7628277b2866edd449517f0d32412134960c9570dc71612ca8fb843df89e143387b64318a890687afb8ffa02091341b4cbae0e288a89e6cacb732113bff9ecf5987e88fe9ebf6ad66b1f116a2e9580c39b2c0b717df5b4b81200ed98c125b379253c10e7496e780bfcc05843a189e8a8e2c5c1568ff5616928c6278011b6d3f96e47ccf6d21f589d7424581178b8623830d679b9d07f05025e7143a77920dba81ca4fee49b1495d52e350fa3cba0410bafc8115dc0ecbd85b574660c3becfcf08c37bf7136c7ff3756c86cae40dfb8488acf7c47c4552c12766dec8f859f8c44ffb17a2c85fa29073411d43a3ab15ffe133a3d6f004df52b5b28e38656f9877ef7376f8abe17ead8b62ca0dbfe12b2082eabf0b9e49e421bb13b8d1da75009d37c63314d4cf8dc3aa8499dba5ab6928bb75fc24a0cbf4058f060e2891465d54f16c72839c1fce066426f8a728876c2fa002bf420485ba007aab80c0e6c88d1eca6b6101c5f7f980718a89db96afd6bb288cd5c06ef501887d7ebe9cac4cb882c8bbc7823e745ec0c8063ffdb6005981f82d0e3cdcce9e009dfad8c6211c6a64c9acb4483ae938690f7334b064002bb78e91e08e24ad73645df7abb6a539d8006edf02c6c31e255ca2bad13603b032606262b5b23acdbda2c148e73afda368adf8b023b529e130e159e085bf6c44e93fa7c8e0317767292bf66f460453ad6de09678a50831328a60214641c76b1909ddbd6b539656112a8e3794f666cddfdbcd439f7a00d891bd98045e1c2b62872447a995dcba76bd46753c6551b42661704ad3bef32f6a097a70d7baaaf142d1a6d7b98549a88e464a199975c4a444045beadc07a62bfd791d1fb0de4b69bc36460705e3c1c3090242c1efc4071a310c292c02b9f5e3fcfc360c7fcdea0010796487f50c3da0339496042fad44365ee5d504ed4ecacc6ad281f7a0575aa70afedb79b6e23f3b44a9e9b8d9c8e28578cfc6a7fc174a296cb4f1c20f8520522d9c61f4fb286989e503fbde9a696b8d0be72750c5d95eda728622b4c331a55c813df59114e508e747147acef067d444607c5ac9e7f0f0bc1642d63ac7cae33ca04f722314f30af4142fad14351c94dab0f946dc078dfd0dc33649faea7b9ab4c263e994c645569b68a5b9a02de550aa53f77b95df467e5e08889fe34bc6abf0d6de2c359ca063dc7d484f63c56e4e78cd520b8d4df9644a4f0a8635a8fbae20edfab083fa26e419be148dc84c4a201432d6a3396b0cebe45d713f546000c7d0f65c3b3fb30639fca5ddec4897a68aad01ed21856ae8875d2b1d8a0144bd26dd760a37560cc8b14ed6e5c2cc55d4aebda9e8afacb22d7623c468e93c323048351d2b7e25776547178f4cc14376dc6fde40aee8f039128d0a08b5ac03e8b8603761563f2be68c11eef95798232922ecf62cb17303d56efdfdedcd160709066250583f382cd135a925ef8e1ff390e2b849b35675c5e561b027e77686c666fad98117e95d10e5111dc2db57a19ec1725f25bd7e635f295a581e480b52587c0d6fa5ab87403eacc461d3ceceddfff782a237996ed01bae3c7f8dd0bb48cd5a9746178b70ea1bae8bb0b4f8b1768513f63d7224ed2aacdf3dcd671d883ea45445ad5d2e42f1779979c70d1a4604cfed2820106d4353f4c8e4fdf09c8e84a22a7b8d36fb23335f3f68aa9e16f6e299203b6463f8f3a719cb371abe83fedfa7e4bf7cc8b9ee7af94a7f228b0cb521f43de6f811d0bfc173dd88e24f0f3980ebfb9b4a30420e09dbf24c7f32d608d553e5f1f42b42fbcaa259a0e0cb8d3a2dd28b3483394c525fcb49f36220bb635720450484a3e0a87c9b6910775f41362828a4955c7da11e02a0d1fc96405e09724d6e4b110504f81b73a2034472c8e075cee9670a039de0a6ec0e4d97b868f669d30eb5d3fda00b1d8f55dd5bdbff0558e5f07b5737d4e526ebf5c57bb92ae66105a9bc336fce1d238c789b2e83e79a480be6612e8589fe8b61b163c8f07d92139fe5e5986a6a2ba04599c0d2b1033f55ca5248e1caf598838c08841f5294fbed2da1ed1780dedce0ee1e017bd66f44c925c803d20aeb4dcc7b9a9e3fd843b941f7ce98a85ebbe6d4d71b52b2a89934854df8ea877b930399a0f90ea4d186679630905aadb93b8685bd8d4d2d2670e201af04c719c24b5e0d02bac55a0d6ae056821bee8dfd44b54f511cc6a69839ee5203d2f8e7abdba1be6d353b24274e943fcc685bfa5aaf4177f477d0b7523f3d3e394e223f2264d0442b1a49d9685f45b6e5d30b47ac1e5087d60d22dd4dc0beca82a2e0e5803ed3dac69ff6f90ed25c415b567ae5bc8d2db1b23017333686df8f5ea2974f6ee9cc6cf479dd63c9c6671c927a2fe7b93c2e5a6e402d797c8aa4816e03a58884aa3adbd73026e359d974e68c5305dc10e137711ca218bd8c17c1d99a687f0bfd5cac368bb4e462e761afd53903687470019977198bdaf219fe1cad2f1d6b8be192c482aebae986dd59681eec99a47dc9a050a8115aa267249ff0a58200a9ba0a3c92b3eb670db4b905709234f48aa83e0fb551ff8c8c11eaec1d986e0a53ff00e89c5442f7bd0b5f1d865e0044cd0f2d47f6fcd68c1234d756f76fbe41a942fe052b7c1d02d20ae5862359454a45b1480a9d03112f7c27b08afd51aa9c0d8512f63549c15e890cb26c5f0b6b8d3b188c0c50195c122a1f7e8b5e38b45b41440221510a3a1bbf1b5fe9a3f3e5988641fee4e0568972e7465569c73b8540da25837b35b04fa0a5dab529d052ab8eae7614c67acbbc7372f3d450f9e51e71aa1e95f16e1d4cd168efd42f094fb6d655e094d3f94c4ead71449a5da9ec9889a85b9ea1d378ccebba292cc7a5235f6f7a985a211705edd17be2bf805f6d6531b9d7f3e4a048618e3c86347a6e2e28b662377229f4e8731aecbd5377daef516ff6169640403842b6705fd341fa61016d94f367854bde22e6b490f0d8031e388cbaa97625c822a736f78035f71e74e24bbad4ea783063363f425f45551fb258dbd499d6648cd7f5f8441aa45999b33fbee39fc5d5b4be5c2318375fce0da8188d07c05c0ae59700dde6b3cdee400d8b0a59eb21786e587590e0ed41c6a2383c5aba2cbaac4bf4d7faf1996a1bdb858596e15990f9b4f4a8a6efe2b7c3f5cf9e82705dfe98b414a65707ba9ea353257434ee60a03cbce85e07ddae34e408877765e2ea7317919007667fefca4735c7844f41514c4723b3270b69a3d4faf13d46475297a628ddee956f783284b52a1e6155945fa9b7d916ec64356cd2366d4abc2984426936b0be71470615b35d619ccc05efdb27dc164fc69a331f9159f4ddb6ad4656aeb351dbd2c675ed6374bc7dd1a41a16608bff0c3eba4e37e18cf9508c9bfc87d4e3bce9423d8e56f91285dcd52e90af7596f3e4c872bc7ec1d4ad218ae2d0785d5bfa778af8f24102a14d1d58c766475b109c64553531a25bfab39b63452a3211a6a85d96fa3dd36219f77338f8d2aa8e1ea050002dcbde2313ef3d2b510e6e0501fac0b36f85372ac95eda87e41638b9308c3f431fb812e8fd9f61ecd63c8c83358c5c6dd18c6eb45fc6ef8aaa7fdcb589a0a3b4ef8cfe869f545936d11cbd0bc3867a6b5df9fdb2a14866d6b68fe4c8ee29713ff334a46b5e673ea051d1465b0f4d0ac77b4b30e2a012e550bdf95a40e41f45d2a7dce4dfb837824b5a9e5e9f74a2abbd1608366c2ea9d7fc69a7c9eb4f9822184d5205ae3a935038f3e862fcc21e41c7ebdde5991b2f2c2d552fbb9ad58ad08af07679c085aed8ef09efe01b08dcffaebb9e471119ad6778b9fd3a79c1e8fe0ecb08797206e2391e4a8a59a3acd1fe77780c1cba87117fa7f0ad7ce8b5ed61c5fa071a271190b1a98eb4e2cb203d35534b95a99072bd52cce475acaaf370552d7ad4a6a99b2adfddee7145c76bcec1e422d79a0d6e893f45faadae9f914e7bb376a876da37f6d52c82c24c13a8184fdb84ce5bbb5e505b94a251cad7a5cd6b6634bf7806f7e64f242c2a068110dea1320595a568accd2ea3b6cbe4e94b86245c035e34a686364fdd193bb5345e6076376362af31d5cfb76f504c836fd64038e448576c689480a5651cd51f50469bc55cb24eaa90c70b954da5bee839229c45b1af8ccc5b7c66d25ca5bfcb8dc8c183767e4869f03c9e5fd8a2d7288faec469bce1c2a6a6473705457044a7701ef52b78306ad964f2efeed91d73f4c170907df112611ac86fc97131ac3fa046bebc46a946c885dbbc2df252062a30949cb86dd08462ed7e05caa553e6477a3bece76491f387c5abea62aacd95448ae80caf2f12cf3440b97e2f8500f896c8d096b972f25ad9a08fb410d09b2a86d5e22fdd197bcb8a0bb150264011c8b646f4b99ba5c1ac952730dcee6cbd8682eefb7b88cf2bb74d830482fa7a66bef77e8d071e1f56e90ffbea9fcc901b6d47f6c7305f04985250e041f376942c25bb00e5e451e81a754c39d0ad369c2f6140e9481ef5584e9a837a766d3e21cf53f86ea28a11d6d05755fdbaf1464a7a9d570582cc0c6b3e00e67deed72aa404fa5f5f7a3e7fc89bf5b87d66cd72d4c6b574960cd483a87ca617b3ffc6f59fc05d602a718489e8acab983fec61a20d3a2c9bb8790a91bd73e061db5182f4c65bdce2bde111f19863143d959a47c4360ceff5d5b063e551d6e146b0220e0b3d01cac2f759609fd7bfe6d0c024a65839edfd3259e869975f7114d4938abdb8d597386c9b83335ddc8b2f589a5aa44e238a8c719c862bdf1a6ed8bd03fc6d6d95f6c6d78e8d7b600b14f25320505bb216156b78682e8f22392ded9fd53f6669506d47532ba7cf223dfee290377d2c6124d01af452c34f369c37c805e83909098b36b0bedd7a15deedeeaefe46405526bb545352d58d346b06a4bc1213360596c94cef8385a97261f9e974ca7cb97b88f57f29c214c3707cc567912ab9b9d99991666d7cc55988a7af38a76d9bc69223874c42f5884f76b3f8031037a453485bb6d6ed9bc4cb5e43015750e40de6fca3a513444492fe4cd68807b29ff9359a7d60f0b204bb88ebfcf21893a55ea318d0db651907dade809a714acbbbf36734a12396b0fb085df73cc9575966c2d9958c272b04bdb17be6db1a065b7fbb84d86f769fe52f694d71d5fd8ecf9ca0a0f575bd564f257b76d983ca928b8e4f4a26ec6e2b8830a3a46f3b3b0bd574076ebef543410bbfb8ba3f8085974df5598f01b472b68a26abf944470c97b37987a33f72c68fd11f4c7d0d2a2ff7670e7aa9e88b99017d875e090b22735b88b83b5a7a67f4f4dab0a501ef96e8b4e012b00767c2c9f842e394e0763a5e7c9e674d8223a0c4a33fe36412f9f1a16d963d7c6660091ada332ba2d2e3edc3726504627484994be413b286ab3f3275815a8adfc9e14554f34b32c96df7ee861493c66ff81381293c60f96ccc9691c3013daeaf6f0a22de1650d3515a41fcc052f69b74a505b34b837c8de1e33dcc820745d2cda89e7fc028cb9542b8dee76a85aa1450ce7a1639cafa3f94b54f43ecf7b08c725f8c96f16e309e3cddf513a3270a76fda1cecddb7796a0cf2087f4a85b060b32782e001c3644d80e38e07006f5ccc2c5ea95b95ffae9903e54599b0b20b9b5b82cc179574acc8c5ca85697a8e0df2a2d5b33f9773e2b564aa8bde0967ba41caafd038afd9eb3611d3c2000ca5bbfc5790b173b694dd9632fd2803c8db6da1f27823c7bc65efc4aec14171532ac1f4e776944b16e76cbe234c4d84dae73b600e7f8bf16dcf32b8504fb608207b035b4f814967fc743c0c9b39eb57718b0fe055b6e78e5f920534b8a8167a1258eb71873d8707014ac460cb1c6bc68f67a94eabe56561c76cbfceaeedf58f5464ed7c684cecbd4ef944012f7f2dd87c4230852a28091ac8e204e9f4b3aedfa1a7a23884e46d922316d4ce03a0dd00a2875119f26e80d666bb1bf994825dc7520e710df14f16f82eba78a2cdf293f213c3f141e4fb4c13d9814f3c2057ab403aeac3becc6a132bb9035860f89cc8c2d4296d7190e6384c07036680b5226852ee6dd498932615d2b992f19393f815cbd90e68c7f09c1dc5add623f75649f52a8230025f470bfcfc240c6ca7c915cbef026c2fbc285bfa347acfe0450024802dd0b0bb7cc7b0d7dabe9af10725364e367c63a9a7fcb85a4de28a2c43227f0c7c31ccf63aaa4435c1b7681cc9ed514fd575b4d5054c1a0d5834e78214a61b4fc8e74939fc5c08be5e2b297399ea91ca28ba44de9a723c29659087109e5d2c58758d4e31c14fd325335f91f51998d5da336c9fb7d816af66c30d538776d3dc0d5497e8dd77768d69a645dab8ea792e5c9a247351289655c3bc4df602d1c0c77684528747d778b45d595c4094fe80655e3cb61057f8f1e779d1215efd0e0c7dd445d07fc8c97fda8c897585dd07a37267dd1eef7fb3da7148ebb83f53ec16048ebfe089e5a7ad2466a25d6e3510a70686818b28700038d10643fc9058774f54ea0c953fb6c5f4cdbb559743648ddb02346ae3fa28ed573b8df2610bfd466bd89a15c0a3dd142ea191d599534685e2fe08ddff4709e8c0b7ea6c80b100a170f315fd949812dd07823b09166ec89200c33c1e92155ea87ca2eb561b443882b579c132d16738cda2e7cbd7c869f4dd63d1f948bc0e83689429f07937cce1ba4832ed6cd73c07e77958d2e1499e0d59a8da7fef8c01931361d112cb00130991cd5a9d18c0a7440780f369441769bdd4764516ade05fa84844f29ec0f229fc9aae242508ab1c8c0c34ea973fd8ac4fbd7cacce13a8bead555937d76fc0e0cfc3b032916a8d73a7deca03fad9714bff92225e17a0335abe8baf1f0c2def50f4ab5b1fe2554e6877d87416c5db11b1526f57de1d9cf28f168fa97f02a8f355d9d760f5166e431c6c56329313bbc54a88298062011d056094842ffea9bee60ca35e27b7077306928d6ba1f983538c0713ec1855d5831cf3c73e7c982380945aee0ae6d90fbf2b3314ffac60278312dd264de0d5732c691394cc6f1c181abd65a51f42c28800994b91d40bf0bf067446553c73352034bfad5e0b7cae5eaadc18e4323d5114b81a89a7400c684f2f6bbe3957197cf981af53d11e7245f32eb4a3ecd05855b7455e83538c3f98f54a5347367721e53c7b0dbc29f0b12e3d0e1bf92bd93a14c48ea530c44836e71edb42e53f8a965d580d3d421a177f87a5f155514ec7c9c59486606cc315a5ce02f24b23bb084509cdf7af623ace88c57dec4ca6635aac1616245877ae9cf75a7251a28d689a01bde17f2c4007d5042f36298037144c54a6218e3d76fec18daef624003461bce18525f8d22074611760e4968707e509408ca8883ff1604f9d7f3f71232d237a9f20c2c55aee0a83a4c919513f5e8ca2ebcead6cbf536098f896e192a712ae8bb1809ecdaab79c99112c0abc7f465659fdeb10355e6e9cdbc8526566cf7faf6ab94b5173c42e82c1ef22028f650f99919652286a61f49262a123a5f30d96bf30c95de393f3286c5702962d47bbcb390456e82bf6defff7a12e107cb63c7cad50ab4462265920c4f59648aebc0ad2407184876f2c368a9edc2a32c4de77d9db7cc6c2426c31b49c8dae4c02d43a407e3f19796d8d1bf5f00a3037a5218a5cad4c704f93dba925327d0988ba8562723ebcc001a111e485f90875e032f6aa3501738195fe2cb6dbfac5c23981b6a78d0eedd1d23005cce1fa4c82835b57139abf97c6f29d3717df47c4c86e709995f790252e9669beac9698a8708926659642762679f99b84b160750a2c8cb89653dc61d3586808b9f3948fd652f1427ffced04a443f1a6c4642fab41efc896f08aaa0b32b25a55e0b4b0fed600cbe5b258da595d75543391d0422d32bdb09ba096950bd9a3f00d1261203f5c9abef895f14e3e81f1528e23d6343c55aca34127ce14e655baa31f2401024dcabb8498e99f1433f7154cc0eb31c385920154d34759624b441b6032f7d4d5bf8a8f68e39db6f85c854e593f313b51250bb64ba2eafffe4b9683060360ddfd52b79bce1711a14b811749c47127b36534145e648d9fd62b9dfefdec8df12643fe5c6aac02a465621239c88b00209027ebc2f14dd77a7d71edaecd5809f2a2539ed9f009befd23174c14e1e2f9c4dce750ace10c4d46e41a49dc9d08b004fb3d2d16e985bf98774660880aaec38416967cbad478bc402cb68ebbe2ad5b5213f58a9f25d136736051b328c30bde99f14b653966bbbae54c97f3e77c6cef3aded3d5df4732bcfcf49d2837bcc775580cbf427d3dd6ba77965698651c5b92d9bb1453fa25024f9ba9137feb67e4c6abe6d17dc4e21d74460a4c2db2940abae5de57e70b9c2fa4616ba0bd99811a4fed65043137c7b798ebc51aa7954ff704bb17201fd27abbc4d024b5af89a652d07f48fc3826101fdcf76b2103a55018e591f558c7fac33afcbe84c771915e2c23d82f05d5ebd7a649ca890b1ca9c7561a3365cb159e6a5717be08d00dc5037ad9dd528cd70fc1eeea8b77408e5b040cfdafd3a861a55c4ff29a5dcc27cdd0c3b0cd7da36691ea70be891472ac2bba8c98e962056c20b07457d0213dbab6fdc1d407c0814c788ef7fd660f1284fde69a95f0ec5938cb6dab2d07f7a8e24d3be3f1730b00d80fd623b5e11ed8f1145ceff4876a00754698eef6fd9816be550dcc1765141e4d6db9e8a723ad3ec69edcb79954d0bb73c4bdcc9e716194552f7cd26b27f47ce523120c89d9fc06fa890113a4839d2db22c98e498e139b39ac15680aba16be2604863ac808abcb0f2a296989bf1255ff2f7fd6d4f497d0874b4c5147fb426b925263bb702ea5105d722f1cf691c193ce346acb1e128b5add95041019c410c8ff1477d71f51de48ff324d4b3246ae61659f5408e32776ebf0198136eb7047a9719b655f22733511e2fb4d336a98e661f16ac11f446579cde9c6370b648a846265b8c10a5183ac8448f62cbbc051aa1f122336b69f4aa1fb022a1d5e71bc087373c4993ca0bc6b6dacc9ce99db4799c07b7862a88dfdc135d2efad543b49364e8fb78bff471c81579f82b05a8a6f6e541b1708f7dca7b7214eb7ba8c17ee2b1fb129e988b9e02e7022f976e9b1d7ae664a0a89e8b33817885900fd88cd40bae564479a14ace87e1175e5733ac562328985bbc6786435df966efd53583cd44f8833d1387c27d09e19f180fd50305f867e82a4309590c2275ef0db8c1b8e2c5c831c729dad60fe8a8467b38cb3d9c39aec67f1d5c821768585dd4be94f1601a83b185e2493dc441f1fa20fbc1eb6a29af843dc3c49144c64572c903f92aabfbf67949e58c04fe79816f271c6d11854565db91e2c7adf7f6a9f3de4cc3114d6207a5ef3fe809daf2509c433af2a77e482d685dd1a50e980425294ea5b289ddb6fa71d2b50d8115f3433ce6c7611bf675ab2a2c936e845e17846184851228b14c6ac0c95cdd7244f21f4e707572ceeefd6806be75b6ef73be206c1f5c1cb85c90a298bba9703a58c5bf9677fdb692fb8067431f8651c45fce7b1ffa899db9079448a4bc4eb7067665651a1b85d23239ffdf0e5160428fc62ed3d4482337de8ee344b1c08cd85c1d4b44a56702c4ea18bc01f7811b576b783143e8c507258c76ca4631dbda7d929e970447cc5a3debfae0cc73d654c58ccf4cbd3bee23da5ead75aebb0f052654e1860cd29e2b1fd998e81358c19a74b55e53bfb34dede7a31e9b4f89b224a2227be3d25fb06e9e4c401d4663ecba8cc2ef823fb9db6b97de149149f85814e8cf15775ac7f16c4d52ddb3e4b5b0b44b20d204b3ba676252456cff240b5a41780326b13b2b28b13debd44d6b521f521d5079b96da715687b44959482e9defcaebaf1fd4e6db1ecb48cafeb03a199a96c686b69db75ea049cf76668e95b83ae7bc3e6871fb458007b9d939a95eff909ae917fb53b9e6823e0b3c1f6ae4f868a2242415dcbec3a9b9bfb8f669cec4b13ae8a6c609b9f3c69ae7d01dc85578aaddf2f0234db44bb219277b65bc02b15fe4823a7cbbe78f948cd9140bdfb2be6bf7cd53546e9ae87ce3a5406a050a62d534bc390c1922fe5deecdd6906122385822c538a00a462ad3f90cd26f09e39289663e3f5e6814dd5ea9d831b6828bd57e7491e367dd65bbde1308df108b7234ba4ba91dc6dbe5f1b79b65b593fa31d5497ea7d2e05a6d800ebe335cdc7148818cafeeea2e32876810ce56e0f51138806088f0cae1121ddbdd8d9d9d70bcbf166d16bb06d34fea8565bbb7c648327e8b1829c3a0b8891af8ba03083e1a104c9098aa0a1e63de08d8bf1c977dc7e5c4b00bfb7cbde29c15cb70758af36c5e7e2098fe01e4b8b1dc2de497e064b61316443f388567a738431b8d24ecd3affabef6d4ab798ca1456691930550396eca309457cecc7ae626d41b4be55c3d26f21079379cf17351cbca75b7e9bfd47dbd9b3a77e15dfe2df7ce51477a1689fc8ff2915b438b2f9803925798767b7f2442801d723b2af79c306372bf9c80a088512b247b742187525b39065c0ada7613c1d358854b32189b1c195e4172ae91429bfe83d788c0a903f7d1ab17a53789c11cbb5ca12f46fe04529248f1142ba19917173633ee3deadaed4f614c2ea88b9e1578ba8d59eaa5e4aee4bae690424309c31dea44814feeab0dadf0faf526b805ebfe65688d93499f12d34df788e4682bb041b28bfe167ab91219292c0cf66dcf7c797f60ef346d24f8e4ecd64322f6530c5fc94f3e12b792b524fbc0e50f41ed16795e472076b3f8c2bcd3672b8654303c8bbed312eef3257d35ca7687745122c39799a18d203a084762901e3e15f57fd0173f7a36c6d8aa2a58245afbfbadb3329031fa12fc123ddc29b5dd2ac0b362f5ba43209eff3d2e7d68e4cff716aae513f930659a32ea1b647a3fdc0944929ce87b3634556e31fa10ad1327c7da14d7536b003570e241c85c38457c30f6d5a720c67ab076931b31095a13bce385b5ffba48507aca8539cc0c8c6fa83d4c1ccff0a6d2f0c92e8bb9890d693a5ebcd8e1b9b5ff24637bf536af6b4f48b090028c414d652bac8a564dc254d7ed495dd7e08f330d46d6b3f15a004dc44835add529385947e217d1a3284f86990d2c9a58c2b090fbdee52001bb89a92615b147addecda007a967e8db1bf4b8dfeba98f4612636b61d6ac2011d9f596ccc95d5f13b7411575373ba5677defaa3f8177ecc57842f03b858ad95b77262c7b61814cfd0455238d8bb1e646d9ad398160df2e5a84567771faf71e42192e641b643b694c7f220279ea8e2b971ed38ddd4b2c82974ae9dbac9403769349ffb3d89364134bf2dca0e9b5af5ea448c36e820b5cd368f031c15af44a575bf290362eb7baa9944720ab74d3959a0c86056b1f5861bdf281f7af67a9d5aab31ff721c7a8aaf1e1d31c35376bdc0198e9d9a3508bd85ab3b0764704cc7c7828e58b01aa9cdb115614b1cf65eaad7a7b444f8f783610e55d0ef8fb8068d43c6b460fdcec6287a4366e69e18b4f74130183c8f7ad752c64a1053f8a931e77518f5cc2df01026f35f7ae2ad15eded7faccf48a6c890ffa82e280979416aa67e69f881f4fbd843dd966d7e3fae443795abfb8b22ee4911fc57fa89212263cb8f83f67e21afb811bd0aedf1e28741e786cce45acb7da5d87b50a1c2e91275ae0d803c89148dd60fc74ead08eca7ceba82476a8c2c0b5b8c2558c228fa7bbf58a9510352fe5e3a8259ec640816fae312c864c09552b053adc0e1aff562ebd8b05338961047ad31aaa8df966b0ed2be6b39027f10ed8ad62161115cb3f1950f5d5a4ec9ca9648c4179e192d3b1f62aa52d31100849d39c5d9fb441b85cfcf397d79febfc588c3380590fee210a042581c24180e8c5963e80dd08836d6b592169e2f8803d908f4a8ee61e77f0ceceec8dd45b0e2b6d0314c6cd71f4e58d2fd3d882b7fe99db678a6d7d3a1e1455a47c469ca0675b4b7d0acc3a7018c7be6d3a1cc3d4b4ab56f2deff041ebd6851d10e2547f5d18b1b3f2f2ff3057a6cac9f89d30d2a8879d4fb63190dafbc94fff722242ee8a6af5614ac0898a01b2d439f7985b9725e3d208fbe1ab5cfa3a86a17816fa03769225a1130c5b9311c58ecd7f3468a5a6243478a61d4dc5830a345194980e57a0ceb9d28acf5a804e6957f5e10d3b26e390e5b8a6a0a9ee2894447c18150d1d98538a446fc2d194b2de052c940ec13ce72f2cccb0c9d707ed98348bbe6281fb857a885389270a29ec2dafe0b24c77aa9163fb1db9ae4ef8cbf90537212b4b88a03fff211fa96cd3df0a0b2c787bde7c16ce2ecc7d41a4362e42007341e3077bb710f5ec7f45ac002187a217caebbbde7d88aa9bfc833b56780208a903549347abeb88257a4bd3877d943218ac1c4a0321a9dbf3f7ccd4937cfa9656afb2e017f2cc6474e66643cf7257ec5fcadbba03331a530e771c32f503149f0f7049aee1166e9fb61bbdfae7b1497dd8f1f5ac7136c074c5478041244b2de28bd8afd5a23354a7d47719b09ca22c09e89377775381f0741275887f0a82b388aa59933aa57d2e110dda2998d2e0cb7f9f487d6c39c1371e58d5cb83554f0d0147cd0f9a09b88463ee2acbe5c1b88ff8934794751d7470190d7e7ce9794ad57151ee97bcbebeb539c4d165577cafdffd6ff1aaabc86e29b2354a0c067e7fe448dcde6dcc78fd4558ad3a5a63f0f954f23c4791cc8c585c51625ae11fd2f02cb1b7a1abd232f67d8ce9577dd51702bdf97f6f09b0392c742895901a17c01064f9c29fdb9c42bf58712f1ea5ef48e9eb0f8933681e59bba3c6861464b288487d355323218d0d82c2730307455fb1005f37be81c5aae5278c923ed0db011975f4a4eddef016fbfc26b01a901a9ada4eafe93fecbc72e3693362d9f4058a5e68e8a71b6459ea57ff4f83cdb9e973b70dd433ff29bee57bcc4aaba572d128a565054d4daddb0f7bf093e87e8949ff222c35284193edf57f70c5057283ace615a53fc29696d376a44954ffa687800be9cd8d9096a894547ec8befa0720a92562d45d32945e70b8ba18cc51e04171d168c89e09828a229ced1cb1595289b1e0e29353d9e6293d11447f2eb7f0c896a1a227b1f2617fbc894408fc8d9bc2ccecf7f76b598d8039d3b43215eb473211a509a8e8dab6725ea83cfbbaaea511736e3f08449bd0cf81d273fc3e34d717c203c33e66568a6f8b0fe6b9eb421b82f2f4514395c29de6878ec33a9eb47615790114903a658d2b8e17a5dae4f3fc63e3ed0b19d001ed79db19155eb73c464d30e4a07928d680794925ad481ca83dc8ac62116e865644a08202286d4fbc98e358b5c686374f9dd698ef0dc53dc0b3081932251aa6787c58e2bcc0826aaa02813730ca7b16e6fbde40e0f2639170e33efa37216b8386adff3653ad499afe14d4506fcecf4d7273d46f72460ab270ebc9de14d9a1b33790dc9c5b46849c95270ee62a862b4203fa1fceb085f5937b0accd587f571b7a0af95a876988a491b5763819a5aee06245dc71e353235db59c9ae438ce28375d17eb68fd8e8c3d2d3838c924b53ac00d70efc6f4bfb2d8270d29cc6ad3ef484d8c431e19e552d51deaf471b7f62aa5773d88fdb1a6914d00de5022b44d6d547f5d8d9cdf4e8daa3ca94d46be0d9643ace7f77d7f58e769fee1f16708919a9d502d8e5004894709e9ca979efa6b308f059ce4e16340cb3f4b5134ddcbb28ebb565537408102fa787961b0009750cf8ba24f5d2f7376d7fe450abe421be05866a06f9034eeac2cfe7646d34ff85a24c8be1fb648981d060ca80fd5893e7365bca225bf89e0c2547a7858968f9fc6e4e8164c48c16f18d33cf0588ee67f62abf2b004e1b45501b077d0416ef0b6776fc3f3d2f73499b80a8bf232a2c1056fafa5ec84817af571117ade6c0a554c2bd890f591967dbd07dc1327b715e9a2bb6c9781bd6fea890b01517e00d64279ce9dccfd63d5bd53b76570071711227da51dc6c2068c2241584b4942be7904a186d0fbb7682646034b895079e6a9c6df15759781ed3bd92ac2f37a8a0d48c43f356f1f74fd83d26afcc7b4501fd9350b807575ce9482aca6fa7fa7a604543b3d1ba85fcb5a5c44167725c3bee7c5282c52c6468aaeea981d143ea2bb4c9a0c26e6d81c077a17bbf254d60a5f147783958fe0055d00dbf570d84076ef673159f7b4ad0bfe22207ae48f9038126a468f562981fee2f70536b3fcfe976a2d81807428310cd332db5beeb559463b5c9ca527a2cab8d9fae3384a68a383de24ea2e65b8515b45fe8f0755402b720783308f019dd006697188dcbd26933073624ae0312e164ac5dcccceb833de4c0fb38d261f1516f9ca0627614c3f32a490f6fc0ba3337b99b5d7f7f1c1091e5c75a419a372b78bb339d7867b432d604d4780d5bcb799e8128944ae2c8a6f25ccba9931910e08d9ec632a8baeb99c6ba5326268a34c620619c8614f4e6db513b59f0e6c8bd278c4512e2d631dea25eda1d85335821d3e8ad96000357a225da492ee858687b7a3fd050959e701b15980550a83958e52279f18e1d42d1ec278ba4bcfc5f7b3054e2d463affa7eb7794a713e2a491d0943cd6c2710f1cd9eb12b3a0245a2c8c54bdad8cee5a648f3f95267325ddac366b496904f91e0d7270d064eaf7158db89104cdb816f701e753addc67865dd65560adf843621a224cf864efa9ce90882a5ff96cc7352813411359a7ec01695a4ea1239a20d846208844a8fa7938ef451a0436d110dda1c2322539016c9ae73273d1a53f99a242d7d3efbf69661e4831ff5af290162805b65714a962861c73915cb9a2ccb9b4681a3efa5f15a41946087b6ca386a3dd433dcaf7e78dfb419899ce1ec6910f732953a02f2055c9086ac6843b6e60bfb25854b7ee93e7fececf56e1ac740f2bfc73e296bb18a56d50cf5660beda71b3205e8db05cb07de1a4a633fe8a1404f08163cfb49326bd916d615666301ffc12fd9bf9820a571e37b4f1f483350ca3b83f7815d19f4dac781a73c166ad37599411e68f211439d0e033dc6c7055f627bf7c549a26fa28bd95f13a462fceebc35d0115f3dcfcf66f039146c7d480e2a0a829ed23f4f77b21a5ea86800ba03e89a49d7fe31d83c93ae6ee5ed2e8ff4b298a8da2d4f0767ec69235311e619a9eabfdb5fad6a9f7b558232249525f59f11063ca9f90fa4b7dafc36ec00ce8ee0ec11ff9e6ae9824bbd3a289d68ad09c68beb0af19f63efe523d8362c0cb9bb07cbf2d0d54b91549e57b722e79f99ccd47e1264e78a5001fa5e595e80dc69b82c19353effc1ab72d586709369afbdbaf623fa6804c48060ad51b15c799de565f64da4fda680627059dfec48524c72eadba654303f9dc1b204d4617bceaff9d2924d7b5ab579484e4e234b7d14991638da9c89b8bb5786fd3e9ec1142fc2b3b05d69eacef9a9d042664ebe344b648a82364a32aa543664763c407e5a5cbde7d6300d966e7e61d11215810bec1805b2f7a84b9eeaaa0d96e3be83166c4566acd890bf1821ee4909faa5800a975ee9f8706e2a4ffea42e7a8c25855ebd1f76dda827ce7cac97ac9823f6ef2aef635bcadf78197d3b887b12ba86e0fdccb52d9a4e3ffcc48fd76081b2d55aed11cb5d18ca909a91cc159384c7486bee2a6616c4a92ecd63adf25a2c5a51ac676fe9bdd7d67912ab8255409bc29c1402cf8cb88447ea90c3c5ab0ae78666aec308e0a5806a6c631e78f8c8439c7cb15bbf508cc4462b2dbfc11d986016e4bfbefe0c099153767dee827d4710e90eabf306104fb44cdeb929cda4942ca079032a70b03e0b879474597781f9b83192c013fce3344789cc6b4541e0e4444e37e96da8defff2ec97144b3ae54d94d33150dcd6f722b3cbb0f44c5f17808345001aff9d19c7d13c271be8a3b389247166e4c197ab3cf5a62a74ebda8a20299eb17aefc02b4133ea6f380632f10d88f2c3150b3ebd924ba64151c1347d275becff325f191e182b2158b7b08abfa30716572b544ef2b0b7916ad8e4e4fbc6a0584d6203b663e2cdd24336a4ce7eb78c90f4450ca9fb1b83c240465d55b3fa6548fa72a76a9469b2d1be29d6bbd61624be1b4df8b08d8eb88765fba7ac57f87b96f2caa6de50cd78fe9dfaeb9fd19881e24e46adc1e6e9a59a37f234686c87945b79ee73eb294040846971bf1a73127af9023a19f63d5b5ea35433e8c6741fc9467508144ba53d2e2522c9dfb0741d8917894bfb3ed42c3acd16f29c03d7c21786bf31a196b921ed96b333102e12824b5a933366c9a116556b802e9c5ffc4bdd3e37bfca945bfb28efa5d2c6d70f88046937df42b5d9a70cad47362afd77495f969b544fd8f64c1220e026ae6f640e1885908fcb1bbe8f8362f422f9893e95464a6e7885aeeb2edf848dc22406310c932a637810667e2122d1417fb2b9388a1ed960ebd85d6cf1497e7898bd9cf008a240648675f3196c149836927290ba1ad73a0e1443b453ec0c1f6c9cbf98092d18da05a8321081a4c7a4a46a4a7da91145290366d9e5cea469e86e88a4052bc7ea85ebadd13b6e6d6e3703aabe445b77a0f856c940bbf4d1a796e8829ba71f86b32f689ab3bfb1bd82f7d43947bb776a050057ae3110a4128efd041207de00323190a7018c95e9c23d180c8bd14f67bcf29106a7faa14358eaf4e540fe55f362c62d65eee39ddf231d8d1ebb3d661848ce847516fc2d3d230e55761bcb8cd78ef8ec529993260873674ebcfee08125495f4b2fc42ce04daf4e03f0ad6c2298caf13091234dc1da76a2ad59fe0240a6f0519d44e896110617830e678514fcffc6ff8bda6e146aff2a18baff6461223514b6afb192d55612478bdbeb46aa3642e415004520bffd890258b514beab29f41a81fd22279dde2753c761165349e99db249cfbad47a00be00b6970ee307409a3b0aa05a043220ae5f9c770c94beb7c7d954dc8c9045b414b3caa441a68d73d3b58d37b854eed97fdcf22e55840d35032c159bc07d747f7ff4ed0f3d1cc9007ef0aa63a573bf5f5d3eb8410b35ed15169d0e91fb1e2da320a7bfb067e13c2d8e4de6cbe849a639eabd5e8e409a47337ff0e5652e37ed41f43ea4c7cefddbf1a21329b82181391250e459a4a4acba5c9b35e48361c803b6230d42d258958e7595043f39ee7421f5e0d6a260c0ff1afba1937a4845b61438fdb80470ce66b2578d1757e17d569ddd5264389a5844ed82a37ab8c467cb95d5c9389a566b3898ca6354870c930dfe946ecf99dec9ceedb6f309d50d321a54b7fbe97756e9b4047e5ffd45b9340029e14b344d3e6fa188baa95fab1d0ff5f0b76e1d526f37e8ae59930beff092101803752e5b2966ab63f41f9037435e035c4ab589a5f44e7fc4076a8145c0dfce59858b17d25b41e4d3c09d371c23134b60b0ab9a31c2d82a664f283eeabf1e138d5a48cf42da7cad62f494f3214825611881cb8278809408293f70cce62c2df1ea4bf17e40fec46a502e1d94af433155737ff94742f9b3c395270f1d2691843fbab79d33e692629210fb9681545eed56b5c0c7c2197c9c30a765a03efbfb79b7da9fe47b50015e8fc6c6a0a542d85386f52266accc52c08450fdcee997cafb0b3c08ce6e208d2bafd09fc721d0b9a4d9a013bb64f04582eff30340299300103265a521a3faa0f2fc3ac99d41f833a186f4a55e0f5a315545ebda6f7b6c30957cefda6ca7092bc25c481d2161d890a2e686f97103a6a889a2033a0c8c01f4071b080a5a7c78094471f03f9bf331b46e5fbdf08c4fb3ab7b67fc09950917f54e01f22f336cfa86c1d65da16572eb2bec7454373c40256b12b40a0f4e2bd585cf3c81d4a95b43e78a066d503bbe8fd017cadc98c96ce21cc4945763cb3248c94c41a0483e598d0314c6349d0269cbf5dd8137a748cb96e08f677fc1a293e06b53c6cc34e0c114f7575d778b3871f22ab9221eb121b22fb49f9b139f0b73f1eb33649777a2ca9adb55f032156833798b38da9d08957a617884d2161778e03472cd3d27549ca0e495b83f133d57b97b9fcfbf9299f0ac22053e9683a4707f433aabaab4f051993ab2fbc4fcf0d31936cc918031d0713c2f4e814bc4ac3c5a208b36030d253e1feb509f9685bc4a4f8c54bbaf82cf0d5e8697eec33cda213cae3fff661499571fc7223dc1774b91c683e929d2e1f799f2eab929d8bf46444137df5c933d33abbda37590ca52bc8eeac6ca261d7ebd0e52637706be15767141e445eaa613d76500d950c3e3c8c2ab1c217724cbdbcede82bbdf3a637b20605a48dd9dfcb473e7f1c5a192e8409a34dd08ed51db518b9c8d01c549f121cd2e25d664801f5062b97349781ba954c81662117b250b8bc967aa0a4097c3ac3c2b12664a4436ad14829d4a53632453afa47d752041db08eedd7aeb44d984b6a32cfdb4923f2ca613500c307ded49c0f04882937d527b9d518660804756dd49b50a4ce1518a4ba74dd6f76a78ef90d09f53c36e54d08af1f7f444e9efa317687dfbcff0b343f233b5733ce87bf633f0434b6e2a99b7b600961dd607dfd765870be2314a953f8b5f2f20ca9fff0f283eab6bbb9212aa5e99e8904e03835cfd0eedd7e83bab9ef854d298110959c7f60b8d3cdf958a1096e05a9e5ec8fbdb13d9777b99723c132dd073651aa2678a7a5ffc69bac58e2208ccfc93b0840ff3e3bae4cc438569d4c6a58791e56c51471d75aa4800d7c0f57faac996cf2b2f9e44f639a4d46b05821d394e32a26c4f55a13af9af6f25b7f617983ecdedf48a920ac4050a8700fe7a5a055314022a8afaacd2dd13c52f6d6d5e0b41d623da36f55ed2e8fc00845468e1163b2aae35062149149308401544ef0e4a55c6481c5f2273bff06d3e1ca6fe848fe396739da00c44091c9af11f93e05af024256fbd8c767da2c27d2c504438c225d06c43771b24f17096218c36c8671d6e55a56805fa4bb78295444e8bdd8982a1e97c885d3a1f0f3d5d8218681874c186ae906ffef69d28dbfcaee39fb5d3b3628ccea7ebee2bb616fbf8c767c0b912d190223af75d046a1f8339d23e6e115bd8e69ab94395dc0fd5ece5140bd5c5ac3abc4a490518f929331495fe825f0aa50aa8e5a98a40f14209343e88cba38b3d816692397db1992eee377edd668084de11fe0cf969174e6d74b98bc448a30d5bbaa11d3a7cfe56c19d1c51c14adfbb2b9be4ea458dc0b0be8e7fa7eac3f3033ecb1203935fcf44ee827124d173aa204d69c361a426dff6c600a59707a26fa24df1f773514bb5fbc4501175a588c89dbdd15c6e846c9f07d32b373bfeef4be00a3b7f6ec5a6d63ed5b17cac3d1601eafc3c0c19971653b2c39fd4ad4ad848e3930e6df4799bd3d775c0240c610db5a5e6a954e0afe11d1422a41f8d10307270aa9f1200b69bba5a008f85c7844227478d29bf761a0fb25655b4008a20ed6f84e27c94b161d70cc410a3105700eb54172e6109ee3de51cdac5feb8ef04a866756004816e60c7d2220473e74db0265ec1790ba4a9af2ba31b6ae5c40ab020684058eab6ed0da6c0c065ec653c27727e369b7581b209b0adebb17f8e991ab773e451b69b6991f36a7ab6f07c69333395e81c003446f1c4c5c40417f0b0fbf306ed1043a27227f18a39fed2dc6ccf323e9d0aa25cbbbbbca15510ac86bec6ff3d8edf42211c582753c3e3dbeff38a1b7a5b7465691509724190f470d492472784f4e7b6797d4ce2d34c9bc9a43b18fee635c5e6a3e17cc31ad0f249339d875fd4a938778dc11bae6f87d84b0909f2cf88f336d68f37770f56e9a55397c322bd89320baf853ef5e15f171586b42afde621d9097d99f650bb1a33f15b2180d5fbbf43e65fe94f821049a6e89301cd9f801b150e32149b27b2ebdec466812ed9f643353fdb03edb798df03e4fe192b083cfe8f7ae48844b6e0132f8e2829b396311491504a9b3595169c065d48d066439e7a23039454c712b6225eaa8e4ee6525371e2f527f76ef9ef7f1edd674a91548f017a9ed896e366a978497b35be6cbba47e267fc3362bd1c9e9cb70417c2eb3dbec18725a70fbe6b3e330cdf07de8a594728098c0f79457107a6cea3472bd77b13757e95791e258d14b1d15453fabe635571395974c190e72071047916b0f0427c742122118a176836fc0aff1a154dfbc5a23a61303ea5963a347c81cc57724b442b6f99dbf435a4eb0dfb06046064904b0e0c9d43a126c9aae20028eb31e7eb47c21e6c65d13e93def9b0335b017c90aff7d87ce4b173692fdbd1013ce009ee86ac6fe28b2cde55c792894c8f87312726574e0c7fc5fb20a0d4165cd686523f3ae6c236584b9ea3c04c3fba3510bb101071739dc09dcb48646f51d4fbfd54fdeaecd76b412b00d73bafeaf05570220202ed85cfcfaa5cdcb54efa922efdebd943d3b645dd075591858b4065f32897660fce12c6b4a99846788928c43c2281f67d342b73e74fc984b572978d98c84caf0aae4f941db165a264cae71a349aba989564fb24957682aab2c4069ce517263295b3c04e9bf71869ea92567a6470d4b94738bef0423f3b0de93c36f4b4134fb0377d01fa250be66a5dd52fda56a75d00386863d07d005860dec1e739452aa959da14e030192fde2d5fc98436c5758f0b6105e9782f423bb65a41544a0e646ebb937a35c6debdede0fa8d512bc830d8b72c66dceb462825797b84b4698ca06fe3d60d15ea22d92f3f4d0a4dbcae034865f22c8797517633d583db18e5c0a7733b3ac8c1f2fe963466e8ea83abe55375e8890f945ad7890cce2fc226afd92b239c94936c5f8141e4d250147e9350a6ce85f26d8cddae391e87123d29744a58110d2bf1f38b40467b60b48903dc080acc736eb61bb8e8c7382c7fb44a32a1805cb444335c470af9879d1843e50638161c4c6b0eb0defaa3b27a9bb02b25e6b9701389571da0a46ca466ff0010c16d45290ac7b220936fa665d60603cc9c2a9cd76ee73bdebb619062da0ff8add48cbc37de77ba17e308706cd399b0408ee1bc225469b1c297dd2e55163970478579ea6585c951edac0ce584705cee892acca12cb47554acfb9f50e037c51f0251894f0df52786f965b2cf8c39a17fdf57ad13dfd9b9a27869bbc493ff0d0966a56fd5854f649e9878a98f8525070ad920b81451411c39c46a53a2c128d267e4c4bff0c31d8dcdcb66cb78ed484d6e546c651c6731bc6d02b30d493c25f45987d282e226a6d79315b31371a00188b63db46a6e8454d0bd88ee80467e13c871bba93f7d17b8b3660e8a07eade5f15d41efd85dd858e4ca3cce4a7659bb3a41372324ddc72cefe151ff92ab6c9e780a11070037ac9b3dfe022d2d66ac8d3368160fe77e0c25ba78e18974e15d511aa4131ef401e7aa59e00947365d25234845e2c3dd755762f02f053ac9e7840bc81263981fa3fcf760feecb26235b52b5b3ab7d77afed121f80ce024a618642b789f1ebda0e5845a1ad8c68b807089b69396bd7b2873940e1f0e3e38359f3c49a290ecefc81d0645771077c7b4de81b3dc7ad8ccc396686315e33cd73206a896c3d662b9a09b816a092e4e70f694444664ce9c601caf9a356d352301711665a9ddc8284e60ed2b5d85eb401391336a02204382a9766fe34d2281a80356057286f5f0e3acf9f1fa91461805f6a47c7cdd456a80790cb3b4cb0d7d2fe05bf3cd8b94e8419b8dbbf33fca08baf2a43ac1c0cfd889de8907734e7013b5398eba7b884745b1c2f14162c53397fe28d8760b2afd5b97d08e0766876eea75d7100da0eb1f959bed32e56498c6b3960edcff0c38d23d35ad2f8569e6907c8c8697e3d474326b32ee0dc0754b6f8502cc1f40e2d39699c4487684a98a41c1096bec3b0c39187c210875cadbd93c1aa93b6564d26654c0e271df05f3bf53654a9f6e279c206ecab7ce10cc2d43dea7785445d27db05aada81fdba0631879938a568e294e3c57e35949bb1e51782b5c1e43abeef4debb8ab4274dee81a1ca4cfa9551e68b70f62a4fd802419ebf9ebd37f7583471ffd0452f450fc308cb4551d4fdd12003fff5383cc4a9381501d59b1f745d9aaa3bb233406e6e3aef544798390abc095b680145dc9a26c5cbde129038c7a44a031dc2c5a0f1aa9077011659d3a9d3ddd4f84ba3cb7b2362ff18bb0dd71f67a8033c224e429a78cd4ed75aa37d066dd4f11308517540011a7580db022d27b7a6e0573ad43723803e07779e877ce2f15d78fcf29075fa502811a59e08d960f66e06cf33f9559adec17766d4cffdfa5fb27267c697039c586cd081d923fb0e5d57e1d67fec3aeca5e0c93bce47e976c8af00a2c44834be94ab8da27f15f1ce77295f9e4f70b0b857b94041c6954187d10817733202286132a43ca32d3b1ce6a4b8e2bb1bee99ba6eba0282d7a2970435c3852bd979753294ef84739fff520097c8a3e41e9be082d72c702f819352034006e08786a9635ed1b4e67c38dbdff3d843b5f0d8ac0f02728ed0f52950ce0e54391f218acbc430342bd3a47fe42ff943c22b9c8a9d926093bc6026969d92f968721b2a3b6784d2bcec62279cf092a6885f1e4bbd80c7f184ee0b9475c524f784343321716d3a419b189472df43afeaa9e17b53bc6757a20180599fd7ce3502467ebcee0a655536b8453a7d3ad28a327e2feef415d6861eba8b5935ae462f68602819a266a7ad132d450a90c20f4ce2341746341b467011d4559a74539860b1179488a0ebac9313c9b46b1a3251144aca64294567bd5a4a6886704203f64e03c6a910a28269abea8e61faf767bc954a9348fd0953719e4903341c5a5dd1e9885927184a18b926c2347ae17ee5c846efb60d47777e7bc9b225be9446e5e3a562d23e8c821edc30f1a5917aca5050555eb120fd544b9ef665c277054785c7c01ec884ab010a049d247f71daf8f42ebba0d26582ed6119888ec4214555071f2fc0e32ed08bd4ef29b495bc357d3e7416efbddf45b72c8eb8c98635d2649c4ef7e861a2d3937a98ecbc6e61473c41232762e9a540eb5af4b3a35aff1d7858c4fad29452e5d57cedb338c4dc22e333831420222bcc47609e2a0e05893059b3d06f6062efee6960a177b2074c1cccedffdb6108d48af4f34d901f3e54ef99090f8eb3c4e3df932f062468d84fb0d06d9a8bf68fdd5c998f58795e32e590ff1b5e2f6b47247a49f6f954a28ebe959a57e9293c7e939b3ff4dbc718031d07a48d6867d88e4d7afe47e3d1cab426636170a96de0f0d61482a3029bca44646ae766bd533fcd1235c9b5bddc528921728522dea61dd5f480e5655832657fa5afc29278a67b50fc035b5b36a6ca7e75ea23fc817b9272cc6cf0c52e375aaf17332c637bad2ff2751b9956d878a3bc081f932fc75945dd45d2be91111eacc6d8e1050c35d8faa72da4db46496df69ca3a6b111e8c1de8218d95a5c4b92e828580c7c25fbfd12f2c131fad195b9512c83da159e87c9a7a1e17919ff791dde2e912bd32af2e6016fc0f055208eedfeb1bba476f2a17a64cd8afd9614337d12a5152362fc85d9364bf425036132ae6c1f6bc819d00cf0b36e0093b47ab8587b4ce8c9dd5e722e92c604d90c432fc266a3bb0daf1e88513a40387525d4bc48bf5927c429795b2d0fb863c48e7d6a818f1ab6fbc2675e117bd2875baf09386351f586f79958f6b3360a8ce40a479ff91d97e409df58950df4084b2e3fc54bbd0dbb9b24ef6dc16913389040f1de0a5a3ce1c4738043ae76bc9ada3958f73795993df56e600a4d82f6d6f8c5c905297882f20a184a9ff69da493d25931515f16ae7f08deb2e913507a08f351d17f807ff079b30d3985680d96d2a8d608cc5be9a07aea20b7a5e329d608cf4124967f1e7e59e6d82e351b8bbd8c93efd4212302f29bda1e853ed564c5a3ce24c29768c2ca28a969d78f43eadac8bf4a7c503b5e62419d1e7499d564f9bc4369cf544eb4bbb1614ecc9bc4cbece1d7c52e1dffa41b42a68e1dfebd054dc8fe1e7ba02029dd7228c4d90150b05008da604c8ef2dbbc6613b8af98fcdeb5510d29d8d6c8962b1feb8e759116fe59c03e3d856f27a1b4eb76e674f9cc233e74c878ca5356e0821d5fc3cabd08dc54606feb82ceb19d2d0072ceba9300222862332ce2f83a2b5108c4ec381aa704e4958c80787f2c22f64a1f3d354057a1bae2a9a99fa9976f532d7638c8e362f2aadd842e6c984d1f38614d5a8eba67a51bcede1225d0981512105191df768e07400c7b58eaf68aec8a548907162418540d912aa9cadae2318ce8e1d47cd4dd9374cb7c5d17b7ce8ee421f925697fa60257b029fd64b90e33001e6a8c4a2577d91a148993c2be3b71343e06cd783641ab223eab034d60361209d2b1d33132937394b8e62c323302c2fd13d8bb90932f4d9d65ef69634a91585756aa5772eaadc09dd9ca01dd0044e51b7d9e8fdb478af9b6e435c359f4208c25b0e096dddd4632fd704f782c5509b0f74dac886ae6838ef58c9c69855f6dd5271cc0cd8dc431a4f7c8b904ae24455dd8c761e8f5684163ebc24d2c618f51f01e88a43854f7761dad0111fcd0a5e96ea724e73162aa42660901ff24ac0ed8b96617bd9525f5c39ccb8e04b36ad40ced7210b7d795eb5a703255bf4ec56927edd09fbe10ffe06bd257b72223c0ee1cb5352cf91f524f39ceabe015b87cb27ee1dc2b660219fef7e9a5185f90c1f824cbf18dac49915f8142c558706a14fc415be579cb2dc03948c5fe20e9e8793821dff43ba23c63877302d987e16094e316c22d7c8365d9a0434bd89352d970ba637833b3474e6197256f12ca2f28e601114ed0db92c2e6e418acf90906cfe3cc0879036641e598434b8dc0933302667aeefd6e7130d760dc0ebd5e6c0d6347827beb2238d5053ca38e7dd7e885a6b871646831cb57875901e5cd2f7e28e777330a4ce40125117eb47877aae17efabd907bba09ad2b71a9f2c399ad51330f5df98ac08d0f3941c2d4e908d62d845a6a85fc74738d280f5cf2bd3583cddcf0893510f074a2daaba84a229cc88ea74e297fecbade1627fea965df1e8a2dadd38f0aad6c256f3ed695bc5a86555895c42db51943c3a72e119457cfc9ae825c8b4fdd49e1eb1e7f2308b6ec2045f6d228bddfb73ee6d2171d1df5ff554e2e795692db887574cce7a76d2a0bafe2654df913bb0cc7b6ddfea533116f46186b5e7b9873ba19c78a0e2b34eb0a121fb737abfb892ca4c44486d897a2f66139c27a1d19d8e1acd0dcbe627c303b8efd9239fe8a90c67e3d35e9786d422d1d5794e6046480c92ed43ab4b030184e22a6afed16d39701cf0c12deb1b4aed62fad954a52f3a72770939224ed3e205133a75bb0fa6c6c681ab3f348ed974ae437714b1659c0cdd2f2bac41a085cae358fa6f9bd46f461e6522921be20589a058c7a93061a1c3406ec2025a18b078ae907007da13c7dcad3682d9cd437a4cac89f0e1dfc17a163b69ab3fdbb487c5fff2896f2f27dfd8012622596488653274b9b9ceb218111a5f563870934b9da3fe7c967f6651170613a885ef6ed6bcea4790825d663e6998b686751f930e0201cb77e5339288b36cdd57fced77294eb56e1b7040935fbfd66ca7dbff3a3b372508329d0029072da2bae5aa406f27cabf80f3fdc84a617aace81d38a0e8258cd16472e48a91a3fdb6228f7e7875529076884b2579acd76811e4591d6d8cebb7e0e5d0b331ebb86a660b13e1e108933fa282f7dac737a6b86f5ce4468d17652a2bd8758ff61783731973a15698c7c9e0bde8277bd8b3e0527b6a2fb8beef909730b8a6e5d085cf6e97bc60be299f616dcd414a0f731c3df0d09e1410216e6b379c34f3981bcb0fde5050528ff0a378cab79cd1724097016d4582c772aa821767e16a6f67fbb90143b330053a967694a5bdea8439e8b6196d6539d2bb8f4050aab1884e30458c4797285d8404c68e7002d3907369781af48be6cc776a6bd49d47a42e3193677f0dbe18291e38f7e4b5e62658dc1518d03cfff5ccd7ac8bebb1fedee2721c91215b98031eeba9b4a532cec6195d78ca17fccb49c85854a21cd04edde19f3f4b65bbf81a05d93bc2492158bcd2e14a484f4f4b5edae81b309ecc709b66c77250636099161f7850595f37e1f70af994854685ccad134aa7a0aaeb8697dd8b71237cc4e1908884b0ddd0d1f69b4d39d16ffecc0150f84b111abcadb5820c24e2493bb665baead34396e443d22286f4ab6c8c6c8ac32efce57ebe5e9f3ef73d2d7f624b0747104591f6ebac235fdacd3a8c8e26e5b0b2364c6b92a6d371ee63e37540b40aaf262cf69391587ca8ae0e55c6b9d17372bab2c4c7bb5072a4617a04a3102ec6fd526014dde0e8301c9e5cca7efd8078b6a8629b888ce2cf0e1f47ed6272c8cab44916a139dd8d28fd711f74ae863380b63cbbac9aef4d656d1d3d2a664890ea66d335a796f4db2d077b3b5bfbfafbffef55c9977adb704cad978791c299635f5ff6a81937ef4dc8690235d1d2ed74b40c3aea2c3b96206bb22b177b14c391c6ab1ee67c3a8d3fb47ab652690c5f46688b599a87dfc76e631b87a84aeb702d9b9bc6a14cd00120b787658748169c97f727540b7ab11f676a40bbda05ae6b9da265b2d7c794d6ae1cd43765e44d0b2f012f30383ea8b7ccd346f91bd836d3cd8ea52e38b518a6d43958925a3d306f27ec1e287f0fc6c2c38289c1bb35d70ac6d826564dbe564952c46629963f0ea410cf138c7e8edae67f5be2ef2095b2aefc044dc8f5ec7bf2638940c424bbbb1bd748ab238eb9bbe5a3894261759d1667bc7e20539a5cd32e453cc68cd04b46317d3454e031042fb56445567803af109780783b2237c87869026327eb71ee5591ea5eace426c963cfda8ed3a3018d8862aee2fb71001bb3a41d411f76ac1e4c5958a343c5c0a624738e93dcadd534868b515386dda7baa02810a66a2f1d83c2a5b98576062e80a5b071711a92d8be2cc2614f132a18e6b44427e45ef3494bfe0dc79c44c8aae64a7182e4d4a7afa90e4d6ad06e7078ffe99a145c677ce5b4792e0dad9d1af0f41d0333749842c40347516852170801afc5278b7a87268a263bf99d3a507ea05a56f747ecb15a40287592da13938a8379ff1bebae63fae307e3c1051b7c92f5d3c915466711db03a9cffa8665aaab496aaabbfaf37e0ccce16b0d6b344360c3ea13587a1299f972452e6fadaf6b9efc227ed185db47b836dcd16111f9a3263aa51d1a2ddf803b2199225674d2e59445747d48f8a09dac330153fcb31d7e3451eb9ce9b2878978fd43be642bf8a03db87b9b3b23313ece2fd944d9f248134d7c688070f9b5b09b2e128e682a5d335c692ae914b7c4d42596f6c39ac8553554001b54e5c11d7eed43ecbf799dd88f0bee94ea8a2d043921350ce4fdc0c0738b513d3e890fde53fc66a887fa7ef7a38f126e3e890db09385300a4ad7b427b1689523e0b229c52d7ce6718f7f5f7be98d81e1471623cd5b01e6637c71ef2cce9522360677715d8f6aa72de6cc9d1ed9b2ca1a31d8926021d424b33e6d8a368ef2190b29a4556e2c1127067007e5d3754ddbabef31e5528c6df4aa4a4c295152dc25c99bab8a83dbfd252f86af6fb53d71f8b92b538fc689390b00671d0ef4aea10d0f9d06e587f5d74fc5c725a99c7bd8afd1c5308a2c99414ebd712f92bde2f61a38d5742eb0f6c765af67625e13aa542fb4a76cf09437a9374941cacec3e4ef0c949c1e4b8869e15c25ce98475e8ad36e555f6a19a261c6d52857d98bb01586a02d6f248eb750ca5ccc9ce06443dfd6c69fa64f8eb9ff4998e42f4c26a70a57e64fec3dd31ddb37636e3419851d43c5f059381126263a09b4c5a94ec113450845c3c8098b138f253826eeed397e71967c758c529040e61fd5b1e4549e2f1b92ec7f06bcffb880d8663eb98a0cd28c33a210dd973f6559f646a3443864ae101521fad37e415c0ad6e3011941f35b67179dd171df541ee633137279d2025f791b7eff58dbedbb65eb0dfb14bebc888dc478ab42323d4ebdbae6ae1b70beb3e9302fb3c8a16472d10e75193bca5624ac0fcea223257e08cd9d3f2acc8a7246077a4cb6d3f8f655f97f0e965f7d6b4fb5fdd42eec4100d7f5593070c5d08931b70e19d4b30a107682bc5b51da31b3233fde98a4708081724e7bc3883d48acbc0f5e4d50bd6547201e9dfa99978a33b0765bae41e6110d4df4d6d2736e2bc3f3a40e6730c1dcd9d334f37b1b2c6ff30e7626adc20e4cabf2deb0ecd0a0e93eb52d25c3842e6a1ca26c4c59382ed413bc047964bfcde287c1746ea71e133ef2346ed446afe860a78a00ea2f5f0e369edcb6867ef5d4cbeefa88846b55102773f7f197471f846d804a8d9a7f05ab12414509fb003df62e4eb29001a49477eba13ac9ffdb61be140856f37b00a78f6da4e68c81a75bc05ac84389f4a43cb7eaa80ea11a77d76087997e41b5a8a75620f4cab45617c8c50a0845a7b7e26412e5f84e6c06ca4cae11e413cdd626c9f3c0dc31e7a9eb4501359a63f4f7c04618e2e9133441685ad84741f64b98e7bd4dde6847652a8fe324fdd7db9f91b5c42f1122009f9da60d87d6a74824f214d7133c43e0cb87cc3f3bbd53b61fbc694dd8061b9cf7c160d474d7ada9525e623543f81c7561fbe6790428fb4fefc883984b5d0ed98310dd206e950a9d420c9fb19979c12e9fb3f02f183cd540744b055f2e0cef9b1c0c0ad23394955a30fff3fbbe575222a46a3a77c506deef643fe94c5a6280dfe94d46cf69ab653d820beed3c66dc9308fc02dd4b2fd786d70a6809597cff70aa5b824b325dff4d8b698625416bed9ce59fb00351dc419108d066b83e3010061c899e10754687addc60fa6ce0db4299d4b300d036c5c43e396ed851d26149d5aad4acd4c80d6acaf96347235baf717d1543271de58d3ace94e46fb2aa02b2acddb904e77ae0054721321eeae075d8cb615a24b09489f30553d2b51302db9f025df60583e7df556292703b05e2cfbde43c8bc0bb1a4638413aff980b87083e99c10e5d475e9f1c4b212580f21cf1becbf96a99379d019cbb23d68ebd6a78639cb8c857a10fa8debda13e9abce0258ebc91113e5c312d1f043ee443dfea6fb933b4b0499e07f7ac77780c3dcaca4a0129b89c5bd6fdf121c29c5cdc72080432c3849500d5967dbf476bc1e92b9d5170fad1adf9825aa72636a093c45896a4ce53c40949592e9ddfc936f647aaa8bf633097e9c6c60f5f6420e284111b4d8db6def2e582eb9fb2a21388280e17ac2f93362f7875d2475a29f7a04c71941b549d747fc245d6e78774deb7367aa2f8cd338c89892766fc8f0d9715afab547e60797bbf80152c22dd71f80be5593721db96968dccebe5ab29f5d6ba92b2e4416c8a7c02c3265711e91206535ca31f793018b97df649d1e806e3a9517e424cb609b03c8671332da8d2a5de65a89d732cb35c0c9340dfefe63a9bb85724137b041910190c355ff95d37990d79399915cbe5e04e68e90ac5818a159db9d4977708550de235ff2b2eafa896423063383cb555d7e843afaa1c58f2bf29c5045075cdc98dae9d827eb111286dba14df47cdf629571db25ae7c2801f9166c3cfa7348b539161d1b5b2f4cfb2cbea6647270bc59bdac2293211b90cf6ea2d2d73684ece2718dcf753c04ab2b1cbfa429dc156007a0d1da7838c79030b4d9320d2b84c474d5915eb5b6f2e1a864bd2b6c41508d2a5ebb14120ce1cc62bd77d98f2adb396214993ff909c6a370519cab7064f9fbc942f34c3dd6771ced39b20eb7d6b5b4ed36ffd86f98d564bf8eb46dd8c6dd03acf10dd2e1425598fb6c23a3f42d4bd4ae50fc458625798829b30c964e97e2b587452cff92137fdd33a7b49fbb2ca1979b09c1551da4e1fca1ea23b4b90666384b5a15d6ee671ab5bfbbe15ad63018e19df809cc33391482827b58a365936754058444e5548986e9847e4478b915b8d8ef134bf5486965f8f4dd2ce810017322b35177689b0b8b366a100eb7d98dd4ed5bba55c89acd6ecd29e6093fda6c0ed60bcdc448b8a998e4c3f1b0a8e7b2d1bd5e4ea3ea2c57d846519a004dd4e8353186cdb1c83c9356f4f8c2fd1b760a399cd684dbe05b53007c935540ed861dfa3e45dcc8f6261495ab7a6ffdb5d12ea7e4e169e4e8fa2e18627593eb5c12baedc0bb719dbfdccedf626e1b69c077e2f3f4d12dcf09978b4415f616835b15bda8ded396d3d0886460348425c04a836e5a51f532bc37f65f364e8203faf6387a85c8db38effd6913d02ec0415d764f110755c261b29965d138a5fd87c6daba68f77f28c924ab0f24f34e9173756ba092d6ee5a93c466397c81f2cc3e30d9994a17c333c582534326a2d2c9c2b2ae2fb9866a85109c5e60e2b31ae8ec8168a918394b4d358331fddd4996e6a21b697eb9949f76419245501eb3c9bd96cc36fc2f6c35371c50e40063104c48c8f3faf1deb29b180aa039273950eb6b8291170aff0b5fdccf557f9c284aeb5c18793787ddec4d812762d0babe8cbd9356a577ac343806bad26d413a857d0f6fbd81391180d199fe0d75053b538a864cb75f487d0d72498728835f558dfcbd2e001569ca197f25a8044ad00e0e3ef6aec0ad9088872d1d28e9d6689f13b2c574cf3bd55edf68e60de0f25e13fd75dbf7dc9fc6a0510203105e9724d98c47ee3cda2be90775cba2eba83728a2823edc9556d05c342cbd98af1ec66f4f8635939266daa08dda208f1284679aab79f985ac1d8aa5b9f56fe16ff78c10fbd04205fcd483d5461ce0be90e10ee404ca1ba2103efa15861041238f24850fe180e5ba86cc84aec681daaeaa9b3ce1809bdfe3bce3e18a92f5ff4031ff391253ef0b0fe63ed39f8fea8f5b90873646d559d174ccc7c0a3d9652c199f026f722e9c0d41644ca387e519527c38fa6caa35be6aaf018ceffcf86e37e66623b9d33d5e7fb9456f551a832d2a05776b333678c2a2501c4e2f3a2d478990f860d5c8a44dbac4414cbcd0a976b12554852664319ef67e055e0792eb6b370d8032f41ad7becf86fab80893b1b6a2fde65252d0e79c08360421c622d4ad876fe9264d23c432473127f062e957d438a96809fb20de956f02678a66c5f0fc6a4b58174b1b8682f761ca6ba70b41ddb7fa5213a03cfe7caf43cd9a3d20a6980442531457bee3d5b8b3b6bebc7188212529e23fc2f0db7d9317cb878b09221475403984bfcc017a204a5cd293d55d6e9d34d3750cbdede3980d35ec39a6fe33e0433c04914dfcec71b30fd6b476968304958602bba9ca9ff94f48926e876bfa91019465de3d23f8628a5e4ffd62c29c55b847583939aa7111ed7e8e379a4a9affa2edc5d1a8bccc9bf879a4dfd353067488aa31508d62bad48a2a0460d8af9b661bcc78b8821dafdcdc9f069da413616a540e87c0c38cbfae3f9cadd5f1eec4cff83618e402b5169fec5e778baf51b03630a9998bfdfe4b29160f286b0e5219e07a098c2ee4f209b019837e08cc05f10ee7bdd42473413d2b65c9a4867541c7ff0bf6dd93a3fb7e68469c9491fc0a9e28b472f571d28bd5d1e52b5fceddbc604e17777c64e5c8cf0ec923d76c6d044815ca3e008872d8838808e2ccb0349ebac4b585efedca0974a257f65df5e599d869e85928930d9e0065edb5c7415fabb1675126005404ad520171ac82acff8c6e01846beff26157323e803966b64fb494be904cf4d8ddcc8f59831206c76f5f621cc6d2fcdaa13b5a3dc219ec106460f9621299066b5e8f56ee998dc37303207614dc0852594e65d6c92302ddf093668eddc819d790bcc6531070f9f85d877f7a96cd4b4f443bde655a2596f0f42cb15ebecd7841ace5024ce77e0bf62791567fe08e482155b500f61e0aa86da906fb95479c9e7648bb0c6be4ffdc7748c341fe633d50cd8b1ef5bfb96690530accc5d34fcedfa6a7afadd718dc4f54bfac1888f06e141d849fc925336037561b0b2ec80781708f4234984671916bd85c1773080caa6652434553ebee9afd3ec0630b856ad87ef8af483d75dfd5444bf6f664ad557ec90b3a5632f2ac53710176cc2f3bf47469fdc91a2788da4e3e557d6582b14cbc62d2cb4fff8a47cef90561df8370d55a39e660d890cf6364cb003a58fce8af4687bfa745c6fefd7edac8d7aefffbd775787754e9dbcba61b7e62dd49d5140235f0fb77887312254af3015a4e22bf9a0a186734d27b58e1e8c7e2b09a276752d9250dddccc1b62a5d9dd96df5380955038de86fa66a8314c13a43d5eb423b5d805fad16d7ed2a40a95e8b7cd7e26b29de26380e90b4afc29c234643823e27403e99c3993313c85a5fd7993ba6928df8913001a1d64d57c085f43001505624532381a9f0085052848832d059351f8d560f033858b288623c18b974679b8f49262e52b6a64e41c306baa95c34832e8c126c18c4936471dffc6612a826d260ff64432db258f8d33c33d85b54aafdcb11857e83273ef6b6089e2b3ab262effcc1341ac0b17cd4f429e016886961b62f00276255d1126529883ea39fcb2fcb36a0ee503ec226c1b043a25d074ad509da4543614dd04541b11e30b63b5633aa4cb85a2cb8805a87c78ffcd31e0fa8247b2153690911ee7fe9fcd72cba0b536cff627fb0339d8768a618cc4639f797c57619a93e3f18dbfa914a6665a3bb85b5f93d17e3d30e8efa6c707f5ad79ae2b60de2bdd6c869f9d8ccb282bde3930a28e723e3d03efdc46ac7486f512ab722743b9401db76ccb182a20983893018a77b7044a8d32cf2e95c6787f4449658ef1d2674505d5d613fa2df6f89c642d9c7fe0e0bf4bdf7bedeb47a65031fd4d2302f0bef4782e8ab313b92f5f98db0d3adcb440bcf36573d6673914d3a060fbe6e5427b40fcd5611cf0d5374ac6a42296e4a5819c32578bbb41499fff1fc27b2df9f4bfc9c5e9c945f27b7a116649a37476e6a77fd9fa693915fb65a3f6e0cec389b08ee9777a434bc1dfea60943bfb2d4b0bd6564e420abed7ac49242cf8689a69c04f49c2efe55a19117ac5879c4881fa5eda85de243ddf39187255b006b33f3c5e4f0b6ee9d8f35b0fa5492234de369563a013958a26016d75cc5b1aaf8b2a091e3e839629db74798fe7216ae9c292018fbb6a761cbd4c874985a2af25c1d4dcecb07e102bbefa0da74369bbab3097830ae0a9438b4df6ff3791dfa40799a582479d1d42a5e88ecb71bcedc42416171b216a842720f5d3fde32728cba24baca125e13aed64d2a58b8fdb0ca2bb9698a113d6b2eeb42a44720b43151b29852ac694bd64ae8f8aeda10a2fa0a3698807d23c48f3ad8333643a8b22f8cf87e7ee21265465329e316c4acfc9f999a1f537a4ca059af797ac96c0e8c81e051e867f0d212f5b64177dee4c5ebcf0b1129d38a6d5f7b1020e045ad8527d28075b691494e3b961165d38c62fcea3fd366072753d4a2cad65b6fe6ecec84b6acb600f6294f9c4c9e6a8bfd8937f1b67ccff1baaf9ea57a54627344fe73b82633f23e833403a03e263ae83fd9322447eef4f72a463ae4e2c23be8ff3c50c35426221d7d604ab8e4fb0358bac41cc44ebd4a006d7f1dd8aac9197d0ea743bbb775ac1b75326fe61f62968f1fc98e4c409f3599abb0ca7aa599e0c0bc00bfe2e5df98cd2799742dc71d57660f385a67155cb9ea4054d42f0b0a5d727b12a37efe75e086bb9d8c1441d90b89d20d5c47ce6c4d5cfa45d70c289ce9c5fb5c672206eafa036cee71741ac4a5cfb8f29881bfe293c79972bcf2ab68534c3d3ffa4287b0d3ddb398a485e53ce51e505526306a39a42368d4d7557339dc0b8c9fbe333b44950768e7cf48d80ce19588e978cfa4d86c54b59cd541aeaf0467401ffbab0ccfae51a8950d8a02349c4665bdfa339a67e553435bd216affb24683d83d82d18aef0949fc036ed1867782b4f3b9ce084e75ab1ed342dce0b4c17f4536205c0edc2c157e8a9ae13bb7d1d7fcb0b9fc30bf36156d4002a93cd9a8ed6d72f115a2f9e9dfa33044885e7de6a38c8eaa377f37b41e38981256dec830ca838b362f0d9d3c949ba0dab09fe509f5c64785fc44b5eefcc885e6c54dfe9c4563ad24b8904467e1b96bbff3c5581cd29ec6379bd50395471d97d27cb432fc84bd07f28cb487fb9b47fd641f7d44ecef1fe29c840cd8a65e695f1bb9600e2c6193f4fab0c37b426b01650c7ed853f494e66c3d3fc6fcae719269b5d043697253bd6ef5314d289d0097f18178c83778c4a593b474638f667eb4fa200b741bcef668d8ac08a50bcf792e9be288a6ff4128a28bd12a494cd3c49da40bd1ad5d6187931100e262af64fbe03db407af0182163591d0c461eb321f50a8a1d6ccb997d390de1b98de4ca84437a4da9c8253937f4d3645da988c45648328b9d8528be924899e2b69ba81d6fab6613305a4d2a685ec00904a6034c97a202c41a0e70f5fc0f951faa5581485ad507de26cfcbc96fea659f9342c58380dc7709e42d40735c12ff13da860c86d22efeb99d557d9642626cacba6f77a1ddd4b0de00087e6443acf12875d3c430f4beeda65dfe52f2557aa8b07e2bed98d8d31e4f5ba139312bd50e20e999b00d662a0cac7d1ba5257b18265891801289d5c34e652a7adb8a19f7e66ddabf256bf18c7782af24e36f03d94dbbe58465cdcabc324a5e230a7749cf9170278f68ba8531d9bf80bfd999639dbac4132968c356881b48d769ac356b2b5c7d85023f9bb14ce69e08d8800d4e6e4a1f449ffdab659c55f82a98d88d47b79d5947f3840ae37fcf90dc793383c7b4fab7bae10721e24182943c5cf16839060b68c30b98fbd543a68669e2575cd795450293f5f913949b99d8d04ca5579e45acbffe26cf7a4d412d30d952af60a133b6dbbe007aa68ce1cf8f7030ca49c84ac875032dcccf55a7f25c204f44094f1e341818c228bda3e66121ee5c817a3806ce7ecf4d91f890773b1d451b6e83a303cd0c47f549e50a4f3288a4e544fed4d06365f3af63efbb3539acc3708e7d814cd8a91f240347eb8d16c0396a9d19970ba2441a70a4c633e760ffc6e668469912e5332c610e1540142662caee6fe73c21b310b0bb0e0b826a95692a8b1d0267b8fc8008df1e8cfc23e279be3ce90a041915bfad0c7c29940ada6f445acabaddd30e65f2694bc10b1ef4dd51045ab29ebd82d861af2a861ffb8d1673f805d6acee7f1fbeaaf85de1532d7d9b3d67cccc77f1121e7180fc6eef0bf546538bfcfaa9dbaa90e7ac3daac1dc1223b306faafb6af63caae51a683ef3b9b18646f31abad1267f6e33f7fcd1737d48f3a4e7bf5b5149ce1548900ee352835a0efcada5c11313ff7a9a6027be3234b139a99742c63e3ac7acf3d579b411456158140e09398a80724f75cae67506d6f5fb595d493d135345e6de09041b2948a257290593716f13c9500d67afbed3fee616f1b35f8d025e6b47c5257f54078024233c50d03290e19adfb0bc28e72fa85bdb55b4e61b139c21dfa53303140ae510aa2f002d04ce9025c22da25a6fe4ab33da89a56553a14b36fc43929e44089f4a1c4d92ed999fc55eec5b4bcda57316381c391d2c06dd7e98cba5491a03cafff18cc09802a28ce175359265ee1e8c49c31532b0e7094a42a7c9966f44778b4d5cf31af3787bb4115f5b2f444d8498ee5af9e6320f413f13cf96269c72117d5d4af6cd96883948ad416e151d80992fb9a587ed89454168a6efcc286e2ed544fe67dcb3e783b10de4e35e2755c47ca2f9661e7f0a16c846fe43e8b31f3ec678325e9486a02939ddbc6df4cfdcab1972ff6993fa6aac39aad1c633a22a7b41283b0206694b1b2926641ddf7a9c697cd64b875b62436a773e424dee14fd280752726bc55d4a7a2d69cac6f61af18e343a942d99dc1d7c76fce2d18aecbdbd006cf5f9cfcd6fedecbc9238f5a3384c3ebb9418f13217d020b40eaa0352214f58de1f9832032791944951e0258e6e86f9abb21f6f520f10358b8e9fb5304d154c85d5c057b02c9465cd19489558d8538e136f4658cf69810c7790281db5cdb544329d144368d782771a5e474404c2b1be2ca978825e5eec67c4ed371dd6994819298b872f23f08280951c01c4954a858de5b09cad5bd9eca692c15f2cc8274918a3fb71dcbe1a029bb85e0969954039536129e56442ec4e17544f40e28791e5604c1d0e5578ce98ae91074cf5920e8bd076bb8c2235ce585c52397de453c95d54c54b2c2575de235841f28e319bb758902e9865cb7d6c24482807b31f2ede646b233a28bd3f9256eb7f60a970c7e3817149cbe61a018b6ae345fc268e5f50b6876eed683e3f4e476e13b9ca5faefc2d82ba5da143d07461ca6d3e2b8bf17551ee2387f50848ccb83d5b966ad8ee59096e264847db9e3c9177384c71d735ef0c73b3dfe8290de4215fc924bca1a77d4ba16835ae243e8dbf8f90c3c4ff3b2b740202f1cd39a6e3b56362d1be30ff6098ea101578ed2d0a55c43778e8cc5dfc20a3e8102f511078ef254048467fa0d00ed6df7d4b800740de6b3fda8fc0b53c033cb3fbe178a925609912c3930335d915344ce0c59f0f258a828facae68a28248e9a4aeda62b850c65a97a75aabf043bb3e02899119ac29c85e650b997f47e5d56d6d128f47e3d5abac27764a7e0723b59860734944e6d86708cfc2ad640cd1855bb975357bb6320f132a087835326e58f1f7eb14a6ed08dcca30f584761bec9be0a4d767ad233ed9ce9e1e40a62faf167110032515939b834dc211dd3ce40a21c53f02f6ccfd70211095407d583fbe543224cf7ddecdce19370e1bc01d993419070e75f0387bbe82d4b4e92a01a68eacf2617fb5e2351db023753d9b8eb3b7c5b0891f363fbcfc020db608d0e32e0becd82c3e93238baed37eabb5424f6b4e65f89eeb0ee83ddd4ed5e7cd4a4ea50263a499e3b7f02f58c0a536071c42425324752d189db564754c3caac9d77b5a2452daf577babca92dc38ff382e8e179052f398b632f4df956465cf45a6e2da40c8d8e3d8662a722a12e1d921dea2a9add17ed0006bef7a7383147ce6dcc2e5b61a134a43eeaf4e833821715965c0aedf1039d497c1c86802ece99d689cbd05dfe147f116972fdeeb6a7df55ec7c0c046b4fc41622aa6c7672ab5ebe30d91a0b328db29e27129b491b68c17d27990e30089c488d9c8bd9e3bc4548cc8cac16c909f1fa1a892cc0b4d279e58d6ce22f09b47b81c514b71f022dcc2f596f932281aed84088ebf5aa0dc0cae5d864fb18e928291e4c425d1073c14834529ff0a720d1dbb59e2e531ed6b7e71986f47cf771a500b7a24579c3bb602fccba77c5ec182791ce47b67c23b590a3cb1341eb3704b1aa1cbc5291dfc271959926d660f8ddf650a9223d0f1bf4c35fa6ce07d51d47f02a03822bf2a7530494d73f598dac68b40cf10077744f019e98dd5b4417d7a809457b506aeff79f8996c544efd845b7adcd236983cdcdeffe96b932277f8cd399e9c8799cf2d8ba1c988b85b4cf6e4bc7acc41830c905f4aa69731d5c443f3e389d89bf2c63901d5b91b0e92144f3a84855697b0b1094e92a888bbea015f89e8b0bcadd1db1d922cd9862698bfee9d8b864c3344730a6cd3cc11006abb1e9706e389efe940c808bde777e93ee6ddce9ca39be9a6a339a42d4569fbf5f46ae7223010c423494b2fc66b67a0811340d6a5a048a39d547d70eab693a045910b4269adf9b4045043d7cc25e18feeea67ff27728f54d1128609c611684c4bcf44256c321b07fb33046f879fc01be79a1cb998546c54bf6294b792fe64242630f428af506d7fbd6d354c07b974f27a63d1a7d637ad9599b1f1fd7237595974d6f09946175a8a70e7c2208e4ad3c29cb51e13faca3bfd119740f0df66faf2f6c7b1905973964e52aa23369556e3b4b50cb148301c90ec21f2e3514664b7d48b5b986b51802720fa832435de1b4f626ac408e7468e8486f52c22d0c2d5716768bf2453f018918f2b8134fc6808cc2e8b2545c3db6c63ece80dffbb57d0e772274ea4982b79d3d4e21727a671c3771d234c584910c90f009a69ea1f614c897061e2c9121b300c557e0de096925fe80baec3e8523665bae01bcc0ae5ada2796b2b79cd70451433037ab8774d8bd4d1d8abe50882f33e3cbc65de4e88e10f4510b96d49cd5b71d76893714e52471dc7bbf4518d5f0050593203add46e5153090c62a769584cceca3e055f28ba17ce1b4ebb38179274fda400a5697b3d4b49e71f14afd6ac4364ac03edc1ad407a89b5333ff34909b2a7cc1311f307076040ecc6bc5c0e28b75f0919d6099e2f2adaa82d1608acc933bc48e794e2f7808d90ec06749202296035d626ac360c86334fde5932320285e999c8e789a09fe6ec4f9b6ed9c18cbe28be28f048a36753d5555ea5ac2eba6cbcbb00df93957f1ada663cf5923b819342e1dc74209bfc9c9b6a5909c56e027b1d791fb7b3668836fce63a0dab32d0092d3fa07ea5ff41d3234c981e3568421695b9f5db08e20ca82a94d26f4bf6b7cc892c92e3b4192300a1657854ca510fb4fbb4786fe2846f45905c09dffc99907e524fe95648f40bbc4da954c09eef26b445e71fe0196aafd89df2b0ca52bce0cbb69a4890ac686d6378fcee0df55cdec2ffa1e3707a3da744dc63437682ccac962fcabb1c634d2ef21b782eaa9784dce77f0a00992bc3daf03c98cd61a68b2d9b5d7824ca5091953a2c54675d3b774fb8abae5c4da20cfbbadf82dde6285fdeed30ab00fa62be430bd2543cadfd82bc65a66bb0649e2da7f717813d93e3c13efa07d60c840e5c998dad29d79e4f33b5edb2214e8fdb968ac1a1ed46e7cac55b741c51762d95ea31747814eb10ab206bc87dc9f1349aa3ea694a2c0583f048f50a408f7cd4fe90688b2561f8e0fdc97d9dae94c363471a50d7362673d8076fd3af6f44b617318d12ab132dc29c538ea0dd5c781d9f8ca584e6dae9f238b8177ca2ac259a68aadc64c3a87f2c791bb793f7fe6211f84844d83dbab7e707e85623f79478e46cb5199952bc103a8ee027d6c5f85af07fb5d37053dc5d7adcdaa7566dc1f95a9e320d99bc3402cb4e82660b804a01ce333bdf82db3aa2aa9c118830e94defa2073039d8027e20077a2d75ac77dea1c4d3730663684e220d5f47bc190a35352fc91d9eb24de158583d0cb3bb2e1dd0a9ec6bf07979be9fc39d6dc4ffd50e00dae4375300255899bbf3d7fc345c9d4b109d111c2ff05e49cab2bc6ed3aa7db7e3d076542ce5d5fb3cf47412892d1378fbd005c91cd74ddf26d8bbb218ef706ad9e4e8ecddaa8f8b3385e939d081aba5c302e26c0e0bf9914ebe1ff47895212f82cfc97228f4f4c69ab89d7f885cba5f57ce9dc43d960f544a0edab435c1031b571ea24ba724fd0f252e04ecdb28b38e912f333290af4d598f1c214ccd74cbe3a9465def4fd07f2f6ed1368991209104c3fc4583ae8bfaa19264882903d65f10b4dac4ee2cdbb1e9df0e15ddff475a69a1005f54853257d8768bb35ac237fa216fa758b18e7145c90eba225433c04dfbee01601c6dc32911c4b2ac02447001f357e68b0e66a9e708cfabead07996fa28a60896691191396f4f6f9a86c26130e66eaa3296c81499c370b346c8565748b3958a4722b209b66f9e15f6424a228656c8b34ce5e42e9e04a63143d74cc54a3cb70e318b28fbf5977a0e99993af726cc9daa2ca8915b6da4aeb05912242542e4b42750554df1a23bb29f5ba945d67d342fe655b4f5bcd285369c0ebf3a23c884f93ba7f23416a435bb138e9ec0944d566f56957b72cac65b60592b2c07adb104f2ecb1c731611090f09392d4aaa876dc050908ad4a9baaf7429de4af111802892f1f24126cf95203559d3fc6179739cad522ce08a9cbdc1ca0499886ede823cd9c62d779f1020b56be0b711ea2d8fbb09a6895d002d619b5bd2cd6cc1dfbae30700af89362c0021dc54e88f651e27e21d6b61ec4204b8b9b6391634fc3e040b672e607e6040282e1c743d7c005aca59893766f5ec80b5df3c0a28b54644c23150ea5854f3daaee6c648e282f3cbca2214cabbcad290b06ea5e5470f285558b6532968972f964bf52eafd70d2af4bf889d9f7be2025ae54ea657cda8e737b1322cb191c279f5de95ccac6fab249d04c7984a31e1a21cf4678046a77d9f49b9e810ee8a72edb9e9154940d3c4513c39bdc96a5e74739e63a9729ed9bdd9ade03e39f33e68340212e5496a7da45657bfb33367f7fc040017a35598f6bbd3bf9d4ca3b44c5b4bcca4355d51bdcc025e3f306c98e409e712dfade101a82bc036e9766f99869c1edb0b2daa8d379ee7e524dac36583a25c27e9a3617c2eb0a27fc01c635e728828955ba446db634ece191c6ff7f322615fcf4b29d4bcd9ba9ec8a45364e0ccc97b2cca7854ac0c2e867c9ac75a68885dfb437b84bd768eb9d31a19b400cf026ce343326c4856d23fc5d357ebaf6f6de74df1d7062cc1479520a92a365177b6bd02509095fcdfa81e152dcd351cacfd10b12c1f05b1739280682be31dcdcf40039f26886170c856340674bb8aede95909de3ff65f502f101633b7d4f7ddad2af97c89de225878f83f23fea49a217f154710c3649ca885f7c6c10795a54696b2267cfdfe32de727d2c5fc64f37e105bb8273b7568cd5f69199f4903c7aafe94b00dae975a237c42937f7ce48b861b6478166f21d87cf4cbb379809e866e9461cdac6ce7579ee9e136603465e6fde00aaae5c31eb314931674df7523a37badc7faab65d55880393a84e2f96232d9cac4888689d59d84db91a37c9c4d7dd430d839c17610fc8494c262c55826fd528ad79d7b89ce45422086e00d8ede7d058356b7258acc14a9d4f2246f5c7de0349130bbc928f6b892a1991b2f7ca99764fa22db868c02cbcd7c002a7c3894dc045fbbe86927db367d536c5f2284f9da126c1f4c51c6c3872a4d58422c6f061438c1ec7633dc7e389d1a2def000d9a81d0d5a9f921f736e0d963b36acbc0700cbd1ba4ed52da7085b0c7ac7a5b0daf44b9e3b3f565c317ca91f62fbfdcdd1d57e2dd5f0fd64ad92cf3dedfd61458bbdcf65119dfc0944b59d534b8c8eb202d064da7b3dbb8a66d5ad027d12acfcf0c54a7c41b167c27c8ecd8940f4d7d78ba465938d3b9026108a66c7062b6fc5f5d0294f952c824fc623894f8a13ee35674861bbb9e15f1b924b7d0516837948802981e521ef21182eaffd42151d65d1a57753c3e09df7eff41a81951be64a12bd1cf9335c92ba56f81736bcbf188823cd2f8880b8cf69ae33da9417e33733b8dc7aca5186dedf838060ab65e661dfe2fb36e0649c4b386497d587b4dceac0128d18cba0aa53989eaa356526a82807e6239025cbbddb4e8dc1347eb9978a7fe75c4f8a3a2aa37f3cd562aaff43efd51ae40a70c97cbbcdf3298a29d01834069c0a7e7d347c35b98b8f5b41c0e50fd3cb32b3993b8e1ba4ce1b4a91d58c1a56cc77833c8d1ba3b2b0d1b640af3032fdad155dc3f7b7a1fa282d4c6b91370289de9c46ced4c93cb62919ac6f90d9dae0701a21e95e58e46ddcc24c04d063c5cfed602f05e23c834d22969d36a4abd9feca1fd886bba2f218a8726bb8a088d0c0a6ababeb2606ae73e089891f8566d7823c44a24c2076cb6f2efcacfbbacda6f6ee5faa4076022898b51197e604fdd049027d63e3b8f8e3e9e32078f24b975bfe712f24044ce90f711ddd911a6bdf9338f36c41c1beada47c38da1b9aaec71b966d608f13eba2b69df4b8664db72544e24190280e8490eae5854c4481d0f3a13b57b06bd6e1e42419f16ca8d4c8a0da7e5cb7469846db85c68c5c891045ddc00a3577b7fac734947cc6230c1a8e13a23165188fd8bc84ba8c8afce1624923deebc310784147d9f311a079ec7b9d17ba9ffcf33a078f2bc22e321d28ae3a427412c559395bc17165b6da57c8bdd97a97d658e741402e1b4ab511ae9e3b41a78fcb0cc186d424e5c18c28f8c00804367f82e28ae5b7bb51f2952e4068f031d4529c2c057012c318108088c41c7c5d761075d2e929fff1f2cedde2ac0e66e84d72b0d2380c5f39681296bb4cc54dba96b77b89b452584260e82b459afb929b55b8983811f405bf27b9112235c97aa84e3a869ccc6d1b9842bb7ba5d50103ef3b83593bd3c4806a92ab652ad6da078cd02f1dcfeec92a742ebabfe843d29fc27243c9f66c9eb33f66c4f6bb3ed0d1d209822876cc7877522fc74bcd9688090361ff3efe6aa739191892ae476f23eea1baf305fddad3958b73bc0f620d1e7ffc61d0908c8187c1bef9d75d68ee719b9ea495ef867df3612486e6a13a45f456f24764624553ed79bae40bef3c4bfec1b4a251b2e6f139b43d0084192a894f07fd2f7cc361f8098ebffcd868e6bc2f04fd1561b46697c62516604cb98e19d6be70736e1e628a10b2b3e49cc0d3d10e5f24b6d54b1bbb03e5cfbfe76978a1168d4e09a3769fa1bcbfad51ea7cc50cc95af77d1165b9121b9a6c7a7104346bff1a82b81af75543c9627b3f0928b36033cbf21e4d792b747c5bb169fa6c05ee66f3ed11e4d0023879d57f2a7392fcb74220fc2014d55e255ab2e44b077d1afe815b8847a6692f2311adfd9a58e590168f46a395c62e03552caf980c11be003f6ebb0a9c1ada03ff5ab61dfe1985f571d9179010168d36ea2d0ef31f04f42778ac96f5548ebc3acf21e24441cdc3560d825bfd688c7d57dedc6b25dcc2773b129f14ebce634b5078b7418be4bf630c03105763a2039b77c17c8907c19e615c531019a2928fcf06a971136641ede93ba8aeeeb33c2c6428df95a105eae28386e7abecf30e1c5f9aad29dfd6928bc082a2a855ca160a629cb671ccd47a4935aae18075c6eaa6eb3dd5bba2b1e47e29d2daf24ef0ff749e561ea0749fb385eb44a983ffd4b7e1a0bbcb890ecc6fe200e7f3a2fd9a0f976ae27874db9b7dbaa582370c95992d119352eaf8d12711854f078e7245c1dc71754dd586ad3ead0127329e58e7d8f991bd2b0cf1f7697a69adef6c3fbb6db857325eb32fa77bebe600161206c792a24d5100e46153317246741a888c256e21708fc0681049c633eb6d5c999a2c59eb4753cb29b9fb1dfb05c2ca28008d42c137fca2d18b9cc41803fc470efdd04fae158ba0386ed99b80464b857ce3dcad64fcbf7d0c4708e68d1707535dfb55561f61c102de7a42c238dbfde06da5138a8c64a0fe7db03450c8850358c5c4fe1efe684e532dd9a6dac24b73d9285803c265e5d7523f7400d4e59b9888676bf833527cf834230d4d60aa50330d6b31a292314b5c49660785dc6c208b3da46a322dea8222fcc59b1e8bde59c691a30beb75693675074c202b8a64cc77e9981cc798fd754a86398c84b75e099847f1e34d593499a249143acf6bb8cc5db89242f457ffe1d712eeed533d54b6a9d7415db001153dd36a3c14f687d73ff9a5707fa372e4683af7aa4fca8792eb14c52e3efebe133cebabe63111a802bbed14bfdc82a3e1415848b7479a80fee65d3cb9f049d107869a75eb59d3178ac8c030ce44ad1ee8b44cd3cbef07a0ae1a968ab0017d210f5f838e7716954a4f63a4a42309e354f89f76ffca631534adae4e6662a4982fb5dfb07f2338c9183b7d11716f5d52b5b7f4d6737445bfb026fd5a742f2e8658c4715da1fd528187fd7a32ea9adaefaf9438bf996b3a491b761463b2c19a77d53e54098af53a024c58b31d29a0fb5e7a2a06d056f16b9ae2f13846b1ed06d816871de1d9748d687d69f4df7997a16a59848a4798a205aab6935d4dc9ba34cc5c5133749cb6285d26e8fe5690cf8e0d715607a08966b9fb3096af2db2a90a43af9252bbba9bb0d9a80806dc8dd4ed0a5d40527e90783d2c60eb0ddb281412969743096f37500bfd25cb34be2101c81614b454f06723c88d88ff892a8d6bfab93d773cae2f12e5ef5bca268d4e94918ed7298bfbf4539ad4ab93e944a12f15ffcaf9a2f4d9d02cd9ab3d6a339e4d9ac131e0897baea372d3a99b29e9d4b1d96134634761fd2695e239c507e1ce409cc944857450b2db16480cf4f77ec61c5f6bce4d0c4d9b69154d59c3f5c542e934f3ebcc85dde13acfb7cf7336f9e3c2e7a14c2a2231c5206895b67aa09cbc8461b6712589d79ffaea5bbb567c88556a51890efd93ddd8458da8f1e469043364083fdc72636309a7381e1a3d931d9c27a433dc2ab9ff9c0f47289a3925acc430708512f78884c4e08ea5e605fbbb8d5b8b61745dc5f8f7e99ebfbf699c4c171ac6f65b5381dbbd074672bc98679c9994d2328e7239043b745c8788680b73ab829badfcdd6cb46f1fbd0a204d3c1f7e66ee66305a6eae3b06917a7ff5a31bef05613af05c7c658cf6d337f0fc158fdac6732d80c30f9bb54910fb8cc1071c19a3f1fb049575fd253d6e5112f841b346209b8669799c9baeeaef65cb33d25d176f0708da023142adbdf79aabff4332da18c633c35ae915d73e0bb8a9c70fe9196fc4a381811dff615edbaf792751c44dfcf437d0eb9cba200981420efabfbe84242c4cca98bca30eea0b001cfcd63520d54de84099b28b052c366f6bff578352e2a64e70ab233229e07c5c6095f1396983998c15e7fa3239325195f8083ff9313b7ff1b9437b7db3b5a893e44bf40c448bc88f04f098a8be12bcdd80b3544be8b6672c404b83b874010c1e9fa1e5e6fbe76c4046cc84299c7aa6377a566627c284f2f0e5100c546607a8da208d003e64ec3a21e8b0097ea733035d564ebba81d101803409e7b2d6ef882dba1bf33d9061c8dc909db469024f50ae73f098a125733b561ef034a0dc00423422baea0b211f4e355a5a4b0523008b672b591815aa2440a3fb0f286758010182c701e1faa2ece5e68c5728ef631af46d5b48e40839b5f3a891f2d52c0827372af27b8b907af6243b94a877c72cc2cbe606835dcc6971dce02791c648e3cae46e7f9a32eceb4f27e37a322e9580a9c643888745d91016631ebcf18838548672e10529170dd43ce1db914cc98febd8843b5e1b53f4b491f353784c30f5f1256c7b4a79426e564bdd13b7d0923f14f5cabdab6eef5f334508d59f628794686f831ea10302a27c4ce70b5aa4973bd7540afdae75b618c98b0519bbb3cc687dd12929c2f800b0a76317574ac4649068b0ea5aa18335e51c1bf7d04d5a9108ee20193ebcbf78c7bcb0a7e10c0afb9ea863faaa744c637c61d3671d4aade053246d9e196ad4c232360accdeabb7caabcc7951c4b72132c8fec0e728aceb26658e020ad7a86387b64cc29c93e19e757072f671eef787ef41bfc75287ec50289e0f5c42d1c0079f231a5107ac2ffa6d0e5470317a30a7f3622c59c1e085e24d8e2dd7619463e0a1cafb3f010d7f4bc7aa971ae331074610fe869d9463a5124503fa04c2eb568ef3ea38e755c4910c38bd04810e06dc4d48f5e647972283354037c67e7afd40dfdd3bbff0d54a2d87a8f4cc8c053864fe53b0ced60dcc0f3cd96f3dfc9df8a70010b9fde809407290fe618ddd401cbbb2e8dc764e79f347238c453ded08815135747ce4b5ad8abc24b432166e826790e856f414b603bf0e446d96be7f177f610669e5875cf83cf6bde2e78da2841ce6710c45f8c6715241823374b737cfdef19d95c5d4f921c51be8f83dd0f51964c61dbe0672e57f4dcc430d4af051c701120537d5eea11cbcd0744f194db5bab0f40200af9aa4385ac825ebac475c2a8d30a43366351cfe051dd7e7d8c87f0cb306d3501d77c7bd9e115878730ff728245010b6dea19c24d994416fcd25531863be6d57484accde2511c3cea73f69f60481d113cad0f4327e094bc9c5e8ca12fb297a689ad65caf9af5ab12c983a6ea8dc99777231a6962943710a5b23c34d5da2d3455762dfc75b762c66a42dbeba417ece2a112c1afc30b07ebc8e796e3e6a4956e66b2121b5a75ed898429ac12f199189abd1b36c19c066b7ea5cd4df81f7c88a7347b26eab626acb8505b89810a1dd9b7c9c43a2b77d087e1941c836c866eb0181decf64be737bfcf285c315a44f1da762108def05b339d2268c61fca05ff84cd31aa310c2a77cfa8d6a9af34e1b9781b5001bbe05d0d14840e0ca62e74b99ae24570d8c9d2e1a6731f249d98002ccc0daf3c3b254e49ba940b74363cfdccd53e4e5c2e8471c0ae03c6fedd08f87333da1a4ec1f4528a7540eda66345383f00613893574bce9e498c8c7dc4b7f2d08a19d809a8d187427d1d5eac0d275f9ca8e0cfc4e9e0af18d27a4f32a0e79fe2354d82b56413bc6e52746dbb695ecb7ba2b016bfb0c25f52b45be80749b6f07ed5615fbddef92c240eb4673bc0a477de5e41ef583a63a99b185c911fefefad951debe7ba8024e2dbd0efad0da9099cf7d97ee30b99c33e4f547b0da2209020ad6c203ea361b247126f03ddf866e047317fa34a5edc263c25c60b027135c2bb2ae140bba37bea31d3f344ee6c75b2ef40b06bc4fc0b8a2850f40c5d3e2e162eeee6636117950fc62015994fbadbaee22ef78c520b7b3c160c59a5dd1e785f961c4a34c4babcfae976f1f338a18f8f09013608b7da9f1c5eb1bcd37a7684b06aec37b0f76f3f0b2b5f42e5ad2ccce0f151fe01fbdfa1d66a27f85a6ee9a1bb9ff44c22dd44d8fe9db5494f969dc66844cafaa31ada4330866a4716dd3f1e44081d048bd5dc09328cb2dfefeb45b8bca130ed4b60f12a6e4fa8df2db99bce5bfe69a0b673a5dc1c76b07d9e0706870480ff6fa4316c9da02872819ca15153c8ae111c1384b150f5946f4acdd2c80c35d2767f4e1ebe53d7a18716da2311e1594ad781e9fa25a792209c25e00cc26007b058b6d882c657bc21f2e42b169921586879463640693750206ba36ac08dd424799a93500683ea7e4ee37978851a2d5672f69ffae715a71a3b4f1ce2dea6614a8952d22d4a44e5e0e3f51cc650d238a316c0560e4929507462c2b4b905462e7b3f1b8be23d9122a5fad8fa62cd70c35df855f3f044c54d5f4ae457cc0782d423568493b9f7332b1c739546ab97c49f7d0c841ff88358418a81a3ed1d95e1dcf69fa6c4ab0d3d97e79c5d30b02dfd25d5d0647e619187382ba78bf37536104cd156986e1d7cee46ab59c2fb8bc7521c47b15e74f647421e81370434ea4b2089ad9bc210d952dd9ecbde81d3908c8ea25564d932141fa64ba99d2c289e5d4ca52f4be584bbd2bb1e3513b22f5e0f52ffa620ce316e412db6fc810f630e01edcbf437f471e0bfa759c5b07568e032d9cf16032d0b63257ab4ad4bf254ffd3c850b5fd290c8cb3eaa216f26c1613c3733b22fa5030489161a24531a8b0085afdcf91ecef2650190841d4a52426909ec4fea09ce313a22d4ea273c7f40baa9482d9dc34eebd102fcf9d8c6ae0742e2baf254161b872a14c592a9fdefc16fedb1acc02c716c0e9f8398219b3b9759702260899e7b24094c553b7d8492fdb788e48183471aa11c0e9a3120cb6467837f3b0fb07be5abbd43a3947e5331f4539eb11bdee870c17985a9546aef730779752ce87672d1dc083701782f35bbe9b82f3dd70bca5ff7b11a8e99d84c19d806adb5d2de48bd401178765a98a4c02580f97ef612411653bbba17bbeb43ea53e727a794bc59a9e728233c8fd4c5f943de98c0e6e49c88cf0a618b81caccdee78ea86700074b9b34ded9425af4a9be14849d22d7d0c1eb669565227d228cd25b6a6b6f734c551dbaa95daad21ea58e0d8b751a9f42c03b372fad8890758c05cb5165cda4e93bba26cbda4c951db18b494f73edf407a5b8b6fac35e4b9ece9b2c3223a3c3dbae844127743247bc31fb19598738f495af63f8d96db91495b31e6c2f25a5e5475091f638291ae8a5f3c826b8aa6af4087085001405a125c0b8f711c1d59ec511017973677ff7f4a9e9011f726047afd80b2929a0139353581ff97b8b0bebd11b69da535370705a93ff57f9e62666b77a0d9d96c9ef00abacded7a5f75afe8a0ae9d4ddecfe6037fb54a1c44c2cb43e6db0f5bb1cc9ccd94eb0a981cb5adc31a5448e4e657d546fc1555808a51bf02c649088efd07ed069721c6ce04465a0c62d5eaf364dfe100d15711cb5cd612c8692ff710f20cd58cb082c7eea784df6564a4ce5e671a30b7536a32da58fdc52214a0d0f363edba52f64cd2628faf6a09c59ed62ec4b7dee675da1f2accc7f9dae6b73857ee3f76c336b070a1a07bcf5eb4cdc599d107618d56c3a763b2f1f1c0e61363bd9995e5559a7ceb661c3145d72615486b5b8531d7d5e6ae68afd3432f69bc05bf040347d54b8ae1c7a3d00d6c45222a4028e34426490b11461f23019ead2a7551c7a85f422f6810f00434672bee03af420120a03155e7cf75f3d945a8076175b68eef540f84b20c78a45c7d7aec2efbc47507e8eb2afca29e60ce256f91811e6a6a0fbd8f795456014d2b5bdd86105c625ec5f45db68d2677f4336c025c2502f96bdf5aabf0bef5af25cc37440f51cddcd7f29405be10a15e53a26219d69a8b6149c2a96c281161a5e64005bcad8ff53b31a79c9aed1eab78eb66953441113bf65dfbcf1728b01688d2b6e6aa9395a7eb6f354de545da579d267ac07243a95d085edf3033dc851ef5a9006a91d725c3641a0eab2f1245ea995a5d23f8fad3d358f2bc88951e5a2c17ebd4cb782ae8b5973620e2c418a9f378d39eed499d43e7c2eb27f33401ecad056bb4f44aeb5c3485f602066d98f593b0e651af1de1726f9266c4c276246ba763f2166979eee0c6756d6252fbdfe526f6e7f78969701ac43e7d0487d14a5a6ee7b69d00879fd72a04596d48abebbc1b1f4cf9016011c75b52dade4c0c22e3ed8aea9dd87d89179e12166072db176b28359856d9913c660eebcabcf73c1e4bfb9e2b124146c402699640f92036d1d038bd7ecdf9b8878b0522090b38af865387922d4e144e581d73f9831b4aaa0bcf613cc4a826b3135678680559ced5dfa6fe3a1d68fc336314acbf4297af673b8d48ae7f632ad9d1abef787a3c0f93fa3ef2876d260cc2223403b0ca2336cfa869801ee9df7d811567054574b79fe5ffa0a5cde0052b319b133108797c7c8755672ae07cb71b9cdeded108abe9ac2dce90bf81bb9335b685165cef0ee15776849bc6ca11a50efa21d3ae14ab20ffcec867456db2025c0b696598094e3c61e7832133addb8716cdb3f5744786088da6999ca382c51b16fd6308f3169e6e01120fa74b8920dc4fa6f7ca7f6d8184e7b299a87420af2f109e1c8cd730ebe3ddc3318a2addfb73cb48eb8967c6014cf762932977b758ed9c4a6d2efdcd8f97fbe31cb8283483bb4887180379c83bc4252898445d01a230ee96cad7285ee097a2965f7fbc96800d0bc84e539e29cd8da0c55cd9d918ca98a57fcad698a738e1044d9d772b0338b9c66dd8ac81c615352941f1f01f20aa294ffffeba98cc6af81691beb398fc408f3f3ff5965de638a4e4f6d492c8cdcdd7066b3ec2532cd91a3a7cdc54460bf9647a1f699d4ffab59f496ee31fbd9360ca926e18479a350341c4009b5cb4041e60704b862821a585546368a2af7bbb6cba16d318c970d6a52cd2c915afbf2601c4485dda6930f53e35def370e25f56842b77cc83b6422ff12af95d4ac675d3f12f6dea94d017f182755f5aa2e97b1627e14293552c8964e9c1c59c104bd0aa856dd9f5f17b15389f1c372cc5cfef8e920005daf5672a28cdc258c662315a7419390ade7457d35d02606020696d43d2e166797a6950c848f19d2f3665969864e3717bdc7438115564c1e355c20c3d3905b0468a0b027fd8b195f893b3ad61efd8918dd68c3cea5c630eb10591f95727d16a3f566db7ad1e1f670fe4585c88948866fecad10e4de24e0938cc6eb5eb6d27d9e788720644af8f0d633b32eb6056922bd1dda8ed979ef55811639b881a0da57f1bf2047c4b62acc01bf2db2b974d4e46478c79c4177559ff90e6a4cda13d30eddac01346be5c492886d601941dbcee839596d59239a7a5f744862e1b858069e6eb317e04aab0fc920bc486005e68ab404efb6024ee9cbe70c8d7468379a73d9ed5f2d3e90646d663f5d5921aa63da82f4bea9e87f3064560a1b08c7226b07d291cdf8a9926b862530b96cb3b8c26ee2001edc2e817d806c522133d1f23e6458ab2f7aba43a185fdd0698723259ca9cc3ab93bd65fa5040fc044250d3cea3ae0d44aaa916aed64d647bc6ab42e29fd950e1124c96fbd0fa3c21d62899d2d33469df878037fb649caf834f7cd38c8dc5982f8c4e38ea1a0b85fb9cb4f6c27643a91a71b2e6a6bf185bb095f862c7b3dc48e15d93272704ab5ac177d3f45db5c517dd9ab5dcbfb2d9acea4282f0e68a65aca66ace26e0df9701aae74573db1bcfd40a21555a15d72d04f250190b559d1a6c1b9729846a0c5f678e40ebc9ff75bf4902d5656610a6fd410de5eb9023ddbe48031ee2ffc13dbdb6d985001085b04bd95370a84967ebec477d6f3987ca5041706c765179b966ade339901842e73b97169924c761dbaa17cbb48f0b9014802a18cc7ebc3281cb0bede2c97dbeb3591ee15a4e41cf1c5cca8332115db167fddcce54ff4f7acdc06840a8aeeaecf7f1cf4dae5c448472643f9a48596446ac964db5bd33bd65ad00da0d15fd77526905ffe3165d9766c6c44026a4ace0756482c82ef9cfdfa6939dca1214d6ef1708d5ad23b4326b667a7489e197bbe9286431ef919447a151c19466b0a6747651ffd2104023736c3f0ec0ce3d3d663416ea29bf99f3bcebbc0b7301a70b668dbd94d87f73c09d9b2abd4affbae4fd8d6d9752c516c451873461ff7179cb814fdbd4e511d1d1732c6eefddd79d58b4508cd6ec0e9dafaef250d9fde0086db644ac2b2046fecd3164290880ef0c766a783c9617f6957452c833b4c9b555107b4badd923c6b3b43bd635b99cfe6db6d5e1cc6cb29ccb4e6f9fecd7be4286911d90faaeb9214b380baccd4db227f82659207674909982df04170f348193bd7493166f61c19b593375100e8f9e95319c264527b1c71908e4b60841012f535f0ed7acb266960685e2b10ccf026636c0831f3fb5eacce07a8332a83f0fd53fa32b37fe64c7b12ae25b1c0b55496b551b80e2a5da4024a33c4b7441d3f6f073245438ff99cde19878732a5c889038e997bee66c8524cf6218b3bcb3e6493ba974bbbc9c941825adf61ac075cf929cb77df17eb8a1b5c92396ff6452040d9e6a678293a35993bfa45e83218ada6493a29f7031eba212ad95a7775f00f1374d8a59014c18192413936e0671b66e2aa63491ee19f76544e620ffe1650ad11dac23b4ef4ceae3eb1da726f07e96c9d1367655e142c8fe6861263c78e1a91c348e50407b5ee53a2091d36165fba921e53e85d1cb24bad21361c4ba1646c9b4f3cbfd6ab3920d67fb0423825d048fff7ba0b6af206d875aee38fbc9c734f6246f954a644d302fe1f6caace3d503c711a9d82cda30e4d476eb77cd4cf6c917a5006844254cccf3816e977a530e8e9adcdd5a793e7fdeb7f2e01a1b37b51ea9463af675424e1240e9d39ccd5dd3762ba2640ace15fbaad75d0b2aaef62fc72a9c683cd57d6c39e946e4f8e5a8fedcfb74d3fd3b17360058afce007bc17966bab3ad4b97d3a9643efeb83c325a551267d8637bf09e9bc72031a46472c0b20527f123afcaad972bd1dfe11785850bc1f487810cefd0dd2e49610c2083231ed482de210d40454e564a95999375f891c8c1fa2b98513f759ecca4bd77d381f26cd89b2f5a4bd31701bf9b5a115f56272efc042a210d5d93abe9e93297a7fa545bdce534dbb138805f655180e464f5a5470333c40caa7d214061f91031498059aafde7ebe20b46090b7ea89af45f34a6c165aa48cdb3775bb88d240d4d4a412c9982cf2b380f3a56b1b486fb292f93af6581fc584e70a5fb5962828ad793fba4ac2819cdc1c8f72e7ef373f2df5be4a46fd1348a9c70ba4bc4e53dec54326afe8101c35acd1e707ca00e985965746b140459b2a805821553eb0375cf5d81231439bde55da2ae959ccd1bdf84b2fcdd4de6dfee011562291e07d5d923db45c374e908e49e1870e14192948de0c75543dae7d01c06b48b888f7ef08f73d264996d16d56457f503837d2693b357c2d20555163d35d1e80039e0d37e819bde52a11e88609b23a3943f48cbe5fd4a3816fa9fe63731cbf22125162cefecd2530b3ad82dae17ed6979333cf13d0346e67efa3fcd9e57867477cfa699eb825057a1607e339b234e0c7064e98e20cb72edaa9832b43d20b3523b76d46ef4e508fafe6d122bfc6a5279ffcd7d7caadfa15a373b27c9f6461c745f17c572be9621805c53bac93eda33df26a03f2fdbb4fbcb11a72741f8cefc5e58900a871233b9b574d54bf06621bfa282d0a4079ff5fa004d742ae22f17a573d75747df8e4f3351ddd36f0f3934ef9e201468f10c9eda021c05256863c2ca9f61f76cc3fb0d8aae5173fa57905b41aace8179f4803ed811e49bcae438a706ea8a36dc013d75edf6a4b2c9cffb824fec0d184a501944a6a3905588c5e21815a625e75375f3c6f5e3115ba628de99e8ee3d179c9f1586d6801376cda23cb17a7493f2345ce8d36d5b8ebdedd7007de753f4cfea8ef48dbeb0eec9215b8636691455a2faf401fc5973c6d93c334336ea15ec436d20c8474474ca7c5cff57de1dabb9413710cd202190496bf20e7b0aec62d4aff4d805c6535cedb9b2e9c34cf475d7da83910b2de764340add4af0d6cdb10b2101061a2474f3cba6f6acd82d42002a173e995322dec8b8f2913b7f1579a070b188930bcea97c9124b52ddbdecb496eed31905355b5dcc2951e35bd8a904e204e4183556e1f1bc4d34c86f0a50d317fc78926543f7cfe15fdda1ba28a1db8438d091a4b242a489bcb140e7e6ce529f3e9ad4b1a815ecb7a7aa7c836876273e84e2be9ee404dc77c51f452325128b80873391f950bf83f9091bf9208386b229eea2dbf77ff42bddabc4f58eedffda74582430549bee055165e96d2e5f288ca5be9218d3879504e5f662807fa53f21d8e06f4ba387180839a9fc863e3caa87d6c44b1b0da6283fe9b869ace2d27744f5b5033125eae3c85c6accc3f19269bb3cf7bc7b76f5a6985a39c8543d576aae62985b64d78e7ba18872f2f75c71d50458e2ad46dee8c53039c3d8e4f99b84cb6ed8101ca976db962a2e97cabf8d707f5c97ae7cec18fc0a1d9accdf068ad28c9c2be4c37d9894ce621981388b899511f70cde91cc020f8fce57815ac56684e62f051978ffcfc511a48eb110b81ed5e021247defa701e90b6f34ae7e47f06053cac3098c41e4734fe498a3766d3143d708c31872f00c562d31fbe509df528e4f1746b40733d0fd195dab7361f7ffec27feb731ea7a05cd8ba1ad00cefbd115dc88b89e24e1b62526dc60711e0debffc07e56ad9c699b9a1c7f171e305a3e67ff23aedcd0892d0ad0a3a4decb6790dddc460006c2e6169abc23d598ab8193ea405dd62c2f7ec57694dbe6e9dda8317775760c2706af8d27ab7c8eef4c93565f2e05e21f17d5ff2596903e439a90a1cfcac5be1b0b6c4f1e0e9368e034689062d94469f994ed14ea1a469b06a0843170dec9403de4de92856da4efb018007df556aae48362c139350c1668175c6659f2f948cf579bdaad0433cbfbe2c43f4a483f450b6176074d257961427494b9137d259f8d53ac0e62573237526593ff7f5d30d327787626160a1411a67bde1a283ab232b14987a108c21cf604a5f969eb534bfc36043cf77f58b265b1942606de54b2f8f692119ba6f40b4cd3c2faa92746b59fe06b57577920ce5862312cedd1087e099548231f34e3fa9b0c96b0e91db817309e7d898b6566068defa9039ee6a42f451ae50a78a0d849e0b714c8a0167c1d20a0e24a7246349cce1e0394f98c2b2508ee2e05f15c713db3012f053336d2fa5e449b43860ad2f523bb4b19fadb6684ef615acb8078397de7322abcde7e46e3e42f20d5b0a8571d6e8cdfa20933dcb2ad875d0244966196b0b10d57fbb17a8f4f5d5390ecf3b64299728893a86008dbee3cc4c9c7485d795bcfc2d287aa9abe8eb2c4bcb7506e355d8628246487b26d4d1fef2f249c44f896641e41090bb3afa0efedd356b650ec8d6152e01c3bf19c565a8cb9e6d8814c4c7e2948b95883a75e08f204e7a53203fcf0f6269d90b2df9e8145e0ccc9ab92079da4a104dead71593b1cb24001d736e5711aab7f193571e6e811904e0e6c49f048ef9a59ee58d9c577d3f3a9eb29e8f47c54f66506e5d14d2c59abf843f8d551fc339446656e3079e4f612591eb39fd440b9e37ee97d429ada15849710f4ffb3a6f685e87aa7cbf599a00ec75a2c854c4eac215dd3264c8a73746531578974834aea77a9477c8487e11b19d2e453e9f39707b41dc47b393a2cff09d12123414a7740074f91df37708b7419b02e66bc7187f373deaa1c99982b4322200a7f5d78a27be758bb6846242e652ab12025154d4ac78b846d67beea3000d4d12ab820bca02b5caff42e1697609219d2a6f6ad4db84afad2b2774161d65f38dde385c4eac1e1c0a1fc21909741f1eb1e6e6f646c75bd15d168647bbce165da87fb27eb7851180135191ea13cdeef54e5fb91ba533119028141f80d0155c73c40e66018837dbf20c21852ba61497641b788255670261f3fe69fcf583c319a51483f6e3466e69fb4e478cf5033761f4f3d49cb83913ae3195cafdb06591ddc0230bc260be858c964b90c465dcb271951d90ee4ae1963b1363c9fc77f0363a2ad1f2544cdef74d2706cbcfddddd87f2cd186aebe9be2e5c0cd53ca2759ef3e1a1f21b678dce42c42918381a5275364180f7b8a86bdb963d67b0657b59476722a321bc91c517f92a75f3b71541bfe46cd6f1ca790e4e7a75e7290c5ae3ea271b6b7d5dadd00975eb4cd02329b3e8cc2172e70406d0ea633b7f55c80c8e693a2e28b9032f6f86272b3dea3b09b50a99e2accd2edc527b7e6bf8352fdc19cc57f0f8c44415459b78ceea049df9d8268bf20e3255d85c4fd8d06c436a130788487271f8af495b9ae3cf87dab9b7b133f858d68c68b2575d5811cb41c9a820d4b3cb1b0d00e79dc24df85fda23295a39680f786384c1d1f2068a5967480dee0cd57bf4e8a1045a78594f4f37bd09f07ded83193b08d3fdf48bdc2ed3444f4129c990ea385a6fc80db8f04946ae0f13c28479155becef30b10469b553d949ab3e662a64db13267d1bbcd1d32c381c698d90f8795ffc0d653d93712d7d9d8f0516cfd9ba1a2189f768ae6885dfbe191a8bc171899be1f5ba68492f2b10c11ce8cf3493b8b779e91665a7158f70a41855f6fd6d3c4c271af13b51b216b0bda1359978631fc4bf8c9c2eefa230aecf15ca161a26bb9aa2b6f0097501aae918658e6f9fdf244d154ab42c26314011f8962fcd7325e66ee8524110698f7689f04fdaf54950f0d50c9b6837b869a7fb10f2bc2fc3aace11bbad93a778c65e424bb6c558a2ef1ea23e5b2a505ce0e3466ea6ae36b2d23ca0992a3704791d19a467d13d43722c3fd04c784ceaa22287227ca7c7780db8294ddb15a48623e3b36183aff6e252c95944608387c3d412b64224daccf79f9d44740077f39b39af0de8d491e7fc28db6462686c784ca4d1ac5e3a4f06fd0be66f7c23b4632e14335844b14ecb115f1ecc98a7ae1ea173a836ff89f6c2053316428ab3fcd6a580f59e5a1853a1928fd6f2ba56dd5e11311c349d5f9fd1bffe5e8702e34c53780d60396c214c2d259170ab2b69ce7f390c8f1e10a71c09169d33bcdc73de824a28665aee015675f8166bbfd7bb98afaa859d7c4cf94bc14c814194c5cb0633a0aff883b0a8cb4429579e6b00393a7c239bb16d723390592ebcb776117ad5d71cda6a0d532777aa3669d7e0d5ba015b58121d212c7109b0477d2bfd7e9941055495e7a30d64f079864ee0c1e1b6c7244c246a5f5c8475ac34cf8f76c9b757f729be18c5c5cd6ccaf9d679a941fc9793380b78001d442db6fce0a6650b2da50ac4d42b46750c207791d380a3b10eaec9063567720d4d243b7f6e0b00f10c1142090e72cfe0e7929e224974b066e88cca571c4f35f10c2a2cf01971b2ba1b6ec3b2e4f35a9ede02241b95d645b92c8afd1c0a36619e33ec7f64c8029a0f715459ec8b72b76b27f22f56b66fca9f155cafc041c91f3ce363ab6e53d609a0b23cf184e57b0ad5168dab002c4b1cf9a51890de59e22bd1396830cb21450898106a1eafdd674b2b236fc78d1c680ba7ea9b348cc3fc59220e1a0d1d7999cfe16deb95514e50c5ca009f75bbb676dd78547a9331c25c0de1f9bd48ba9ae84f385edfb1e7cb5697b1904eeda6fea9c9e5747b89f155cfc1290b636a88fd21aa09e431eff1fdd536669b082af178997d97a71857a2da988352b76500e93654b529183e73f6646ee92d927b6bf3656a99c472a220565d5e7409e9771bb664e87d5425198211b0384c93d0fdb4037ffc325ba87e6d73ea934ac34358d14e2a1dbf8041cf061604cace3c183d4bc967a250fb9168aa5d5640cf79f6cbbab3925a6e028f860d3ed620321341483ba1450270c1b1bba6ad42b55fbab7bf73b36910307d0f4f4a6b3c0312b85747d4122f1702e1e19817fa61306e04c5ad1e27deb0e2a6126293f7d4d1574ca4c3295465f0ec0edd2414303c390078ff87e03e7f0110dacab66115a854c286535690de89b705bc7936997bf5f42fd47f6e62dee66c7d78f11c53c0a491671abcf1261342bb9b1f228a06c0d997a9c53b6c5109a337a11da581ab3d9b4e2c6d7abe49effab7ee1153f7a0a0ae923085964cdf5f307b26a1eb9dcf2cd77a4f9edcb21cd1be5cb2b62b340f190e1818c6f65d3fab17926be98111c927bb5edddc58a0064c4f1691f7576adea54b1cccf4bb9e2c7a8030018ee3d7c8f3ff193c0e0870330df57ea7cedf3ffffca50049c52c6363cdcabc304ab4189d4179aba2c45eac11d0b76d0461a5fd4456c7b0a01139fc24d4019c733ff58f3ffe81779b859e43d562f0832ee99b2ce743d61779082948b5b8390ef807b02d473372048760b9a3f4ba66449c71015a031b99788bab935fdf7c2ae7219901187577c06e19d5a1edaa196e333c5f25b218ec6d62259e36c26fe699e705f6aeed29efb0e8d90941037640b13bedcb85c88b0b19b3a8438980b67b66bcefb1ad02eadcb373a3528da09cb5a09706b14d33232aac530b2e25e00a9045b0de424a53e3c1d5e326077b85a118b5cbcde17d978efd072556dc5de2436086ed0424d615610ee32766a9c1f3d386f7d101d64a62da78bade27c9a1e53e3f6cc548c80726566221c33b5caf68bf0f8273514479b3fc943b7930c97e535ed2f1d2c45c7600d95dc05fd0a98488b939eaf0e38cc3eb4ca9ca1ab6b963ee065e07f7475bdba7a4016463249a12a65796c786cef391e907546e64147f79db20229e1cd3ec0399959f6a798c19952ef666c80fa0ab8f3dccf2d86a36532df699c6126b201c9ce52d5bd0182faf038734510602d8afe68720ab339d1f644654e2d7c80d18d83da9143ad2258983529574238d496d6f2cbeea02125a63c2a0227153090059c66d4f93c4b2f1e9b65d455da9450e45474951f70810f9ad9fe72b3e44765cb6e56f8c18364205f20779d65b90b647bfcce409770ddd9d3bdde86b466fa587b6001e7eb63d0c551ecadda31d5c4d1d2ae820f97eeab43f5dea5b0b0c10b42d13f02925a24e4db8362c7167156b21764bbfad0a84dc89eef9f2350113a5e5723dad754ab78011bedbce9cabfb0a63c7db6f809ce5ea60850a5ee55f65cc9fe7d5346beff3001f4601ab333e4b9de824079ab6ff62e0a2a71c9c0e060f3055c832397e9bf8118e956e489dfbc2cb8bd3eeba70ed9fd3631dd245a403a28231d2dfa441348c9c30f94044c136e4cc48212757adc9a33fe360618a7485b48b987d1bedba9019502b6a64276d5779b8511338f56e055bacc67512ee85825d44cabf5734dda32d536213208d2e060cec878e20e8b61016e7d0f0c358ddb7bb033e8dbc3c56edfb839b088999db616b7f0dfbcee91e140acb176d677487b86ebb8636a32a17dbd94878fa0ec043482ac9e007a7851b19ce99fa89815bfff81c44d2611a1743e9c0f0a834ebd9c2b020f3b31f0453315fdee35af3ad974cc6eeb955d366726d99d0a3fbbdb78cb074e79e7254b1ffa65b1b01dae31870720a11e9386f7b3652cdc9e32804d700e6a6609a2703702a7e4848191d0703880a9937cad2df86e971ac929c7f1708e8d3c82da43436740dbd368ebc59a044cd2480130f491364703bffb5c4d21cd9d3e2c036400ed8e6f8524ff80bad5fc4b6c682e1bee45328b1add5e18d4a462edc1773259ced1c649d214df871ff5e02d3a373dbe2ad1699059b626725fb55bf953742e9832a267d26f541e0ea76558ea6e99fc54220bcb17df82fbe0463679658e18c37662fc6362575676addb92e8fda38db62310b671ff2e23300d2327f95d65c6f04693978884a5814318384d93ebb2507fc68eebdc6e643d96ad0002bee0114b00c8e5613dff164ed36e1524f6906da21e0f765e33c3d40c2e0e0c94ca943f3c14fe7537c9c7b08115c50218df109b200df3c77324cb7dae56612620821022a358edb8d9e94778f4beb9585734c12efdccff3d053744974ada8c236ab877705c4d27ad43f909f4859118ca24a0329d9c108525011683d14e2734e04515ed8df66e6e2d5d7cba11cdb5c5ab8f43523eabce8325de58d24a28c3a5261fafdc95d7fd8b3c06f77bb64e9413e53b01300dc694f54efa37f9a7b67927a41c4102974387c9410b338230a2099e35aa96297b41524a34ec38bd70f23b6e4d1f11720f0ade9c6b6c6a74338961e4d847efc97283dce97e0ba35136b8a030f5184e68d7b4bfacc1030d0c52b73f34ce84e4fd6ef9bbba294a6b4b6db877d59c42e24bc5718cd1c5f11b46be8b8198dc0d9dceae45bdca8c1dd715f1b254916ad8dcc65485248e5ad45c8badf6cfb278db8b9200a34279086748cb1a5e5312a1fadae0d69cf8fe261727576d27de3d024c210b4cd7014dcffae57fa2645233ddb11efa4e61b8f42dbf896ea76a5828c71339e6027f0215ae445d8a22cb7b27a4eac8481d72d7799e0cefd05ae0b6cf9db50344069154ede5afc4b72814093e29956bca4abd639e6c3a8ed4451a09928a7d13af9dd99a20f1b6f9ea0dfa5222903c1b351efce0ea7738ca16be3f7e605bf8c273d8ee8a4442b35f4b8e236db2771fae0f35956effde9d8c410aef69250bb8c0a97c764e26fcd62234c636fe1ddd514885563e71ce5ab09f7f715bdc12319e7048a3e946e1c6d3f3673a6047a00a8bf4826d96a99734a024f3c3017fd0eed70ccffe5a65b7aa087eb210b77901bce148fd12eadac31187ad54ae228b0be8fb12907d63f457b8ee435491fec32429d3e21a58194617d843404ad162faa3407427be2dbb3c6fe4b5abbc946e8114fcd0f95478bbb06ffce0e4da3d0f5a1902e1e33668d2b020f024f57365e7a03b58420d87efca2af2d0590968f2812ac68de4a57a7f9371c2def749966038f84dfdd85a846fa9fb3e37b94b72f7b06c8b1979afff95072bead955142d96d6c302388c31a37b70b2d0337e2fca7553653387348da3f1eb09625a954c9e600cb4a3e6629153b63fd7c2af1efa65de8f694a85797aa86eb2ed3e58c71d9c3019a39694c69d596eb04c378b5ec6aa10a183127b8a1c3f66bdbac8875f6d1531b4305f73fd3693e45f26a623d22f02919f9b6795d0c90118581d98d7fec43cb992ade85da50347c3bb29b958420555e399c15bffb5c0f40d14318074da47522883d96bfb2ea6fe7fcaec5ee44bda970cb3121b8964b50b17532a954fc32e357199a22aaec5ca6aae0ef1d7d4cd67248154512a0f683f988653ad3f1898bbb8207c21c885302371a1e691897dff1283d700a0495aff2c55d6cef5d51ef905fb5d25144499f27d69a7089f3fe984cb7a0834e77907de700089ae415ca90f5e7af09ebfa8ac7aa0cd8e1182b177aa0001a562dd0eff60c0dc0e95f4d93ccfc9c6206dbc62886a4b34a34e905271df557cf3f07d78cd773e08c3e3758d1bc3b7e40c80ad15c6bbc7c0fa8ad07af3b1506610721386666b685020f8e12b27e46bf61d6ef697025b2690d148d7dcdfad9c9b3b3fb02d8b78697505afc569990cf4676538981fcdd98536c8da6f5b2af58518bdcb72a64ced0c9a0c060855d191f2d88adef2ebace3b655b17cec3260e24c1f483c7090bdcf761c5d84005942af0448e93a02be36f259f27153c7e1bf33d3481c2c8da33269cb8371d24c0ed4fb28cce1a7c5622e2cc54a278c781533d0b3550d0a23d254ec5bb660ac7a1a3fde5bc103e5b3114767facd7e6876b15669744ea34e6b70d00436d55485d1bf3afcabea02043625773b623154d6a9ff0cbb958eb2700309c4a946389f95aa1aacddd3321bf7b332d81ab0840a057c591e13a587d6c08732821ac464989662fc69fb9eb2df83b12aa5228ff7bc00a47a7b2eba1a231d0b16bca77552b9325c01bf0bb6fce1630127678c07f21bb97d5d570be8350c15ffec83d22e0f3bd90d517217c77b848db691d7ade5504e5f3e2bcfa52c4590840d325b1adcec3a35bf489d0807462aab7f0f0984f1f0a8783240b8f161b2941c48a52d9a2189721c7278157d507e6d203a676de43d21017cf17a31d0ab64b4b07e6029f434b13a8e57938b91788b209602d6a580a352537077bcfe87eb5cb797788564ae50aa667f27d13d357800f90b84b4da42b6409f5ebd287689dac5ae29a7af166d48af371ddc7aadfa82f6fa87d6b882ce74d0b0401e3c4a156254c772da9a4e26a15952a9870e89e96079145d51a1bb981362bebb53ae563741c6076d963a628cf8827a1fe9634b5c72e748b458adc35463592614ea5211ed9815df691dd5a3b29d4a9ae73d9b113f7001a8c52124cd093b75853e4b8113fa4b97c9d06afac0ef9802bf066e0897b168b18eaacabf1ced6fa9c48d24a4050dc1ea2cabe55f5a49f25cbf804d2496edc12fd4ada754ec4d392e92832f6cf3f747a68bb29b075b01af1045543de4e1d388b7ec3b3305dff3ee8eb94e19b2f8afd90fb7858835ebb6825513953b3422a262180a7b1c4a25b34b67a50aaddde351d93c29525f868180a9712f64608a84a29b2e367bfb9ced2c58cec76c2a142d3e5adda054618ff1d9931d58a5f1577203a512c683dbfeb71814ebe73d59589f28c7a619c1d56f46d8270dcf20818cad959c5f0f5e928209481b489f92ba6a0c18e8a8ff73805ce4b7ce5010505d2996913091ecca569fe8454c94b71568737c436e2a2e5fddd9b437ab8e300a6078a6b1fca09cc6b9d65ecca6dfb9bf231d5d7b07b998c7a7a60a3802063234302c6040fec54d65e01f2a586d36f60c25dfcf539c2bbde3add0989e9ec72dc420eed535a069eed8379fde5f50397ff4e0c6066c417f725b3e9f98663fd35802ffe0e426fe1030d9a0a30ce4059fc28c1002853674e08b01de71e2130c96d8d4ca6b8c665fc775c845ea0d391049fa96b4045f13d3176e5a0039ca4eeda38e30b5f10f1ce0be1ace64384980b8818afc398d6aeeefb5b5532cc011c8e4d218093870248ac740d66e72c711bb13d13d926169d19efde0380f2b81662d7547ba43dff7d53fdd0755085ae2c5e7fcd1093dc8e806fbd7f516aac9d2f955eb413729eabc0607970cfe492040de6f9ba80703517240bb575fc43bb39186d91482e6323f6b3d3fbd66e0b348ce9b775d52685888c8a1ed7cd9aaad7ac8b35067cd432d24b5997e1377a75ae489bb180c8d1f3130dcb6ddd897b5335f93c6f25d27310069d467f1600ecf9775e0d63dd8e612d737bd5fb301c5126e9886f59c661cc384be032acd94e65a0b199ddc8adf51d9a72ff46dbeaefab12c7a71fe65c512f4ea28d92455074d043a9e58c8a91235da785834e95d9e0442ac604bbdae5600d0a8622441ad679d3f68ed63f9eae0e7a730937a1d8a1be17ca8035691fd460d52107a04cfa9b97129446220f74d5031b92cb0e7f6275ce4ddc9530e47ee0b62279330ba4db8bbe42242122e80a3420c8a2013ec7538749f87c87d3e058c3dd3bfbc6ee111c9b0e0c045556fd9055d9d1b3fbc41c6459db9a8b325d07098ee1e0b5d5d41972ab60bcf33edec6717e7687ab60de1aa5392686f321f37b0490e5690fb8d0f75edbbec97ad10193f3ce94bd31b18f99c7cc3d02b5cf1cf7ef719d353203f6ac33afe724491baaa6c6f8a0a4d3221e02154d2949f95c466e3077d46707c1df1bfbcbcc5b8078e6ed27be5fef5ba297b38e3a6851bb693f4cb8a4e8f75a6c2935db15168c0ed6673c79e3694999f14877e5946968cf7bbc3913e2490f036ff533bfe39d258569041e71b6a91d0d6245053b5c119d53d4d575f207fdb7240168ea5ca2f27c1563373744d0dfac3ca3e698df0139fad2a987bebb351fdbef512a1ee7b0d62d9d6a9d356a421e749e7844957da62d91a57c31c9dcb55b8f6cd3eaf4fe79c14dec2b7a50e0ef4ee35df0bf39657f2e5457a2174be52e74b7335cd770b6cb5c6eafd132590b6fab636fe17a66ea80f1c01f34e291a9ddbff02c9328fdb5390770a711d15b9b7244aeae0cdd7006781f5bb4431eacef1aa5d1abc2960ad7e45424195884cf12627d72013a1308b011d3f6ff98bb21697d257886c1ddbbc55b8ac09eb31e57d37c8d4cb80f8a299bea1fd388428d3cfb7e4f68ff193fa27b682320c55d9411d29c010ca82f752553a687848ff1cce097aacaba9cf7008aa5864ed71e20817a5570374ab55a4db3e03883af307295f528fe4f9b46aeeb56466f6d15b760a3da5ecce450ccf84c166e020293138f665d505a2b1747decbf0289e98570e545c48a18b8f507f68f0519b18e2626f57a67efe8fc13b0552f33ff3f519eb0aae3238284813e7c4e67e6e741d7972710d1b5c21da068595b3b739ecafee3f872e4f9d0f2021f690b47dcd3b500f2f4efa723dee57039c7921f1fcc6944b0b6891019aef9fbbc9415d378e7a1861ea8604bae7876a5765297b7dfe0414153a64bd3bc0dddfba8e1ba63b02092820752e2ce96503afb35f3ff7bc45c12f67b3e88713e225da4a194cbcde3101757089360056610dac5c52623615b9f65a11ebc10742721c0569fb30acb570cdb8690510b73d0ab230ac4b468f707a93581444753ba774ac436bebd9091c02c5d59af527d43e9009d090ef5ec1b953ebe1274374bbc4fe8252797a01f8b2cd0881816f0b2bdf2acbdb0b161d9563335b5b3591934b3f48faf10d1bf667db2392d2143c3ca005b208beb2b9d131e2b82f26ddcd6f62634b262f77772d823d92a5e93b52003f7fc694982f36901a30d1202ff131aa289cf5a4585b187ca443c81ba85321b61a7b8ad59ebfd6a9d44963f430f7012705ffe7135e315b2b489d8b32a3acab77f90fea05b5b3b49c33ae0c1ac3abd0b786bfc74d93c4b8676fbebcd7cc0c7116f5b173277ef2e58f27e6ed51b47b91db5eb91ed112b45bc1ee5d6ba0042b29ba16bfc0262876fbb6b4f986b0610a7b7e2ce9cbf244f406b904f4faddb3354eac70f96df4f3cbcf366bf3a391b2adb9e308f303be634c4c9336445783d44b771a6102a494ad93a5655067594c22f1f122249be1a32dd812ec56cf38cc460283d977e22f6706049680abe910bac81393e3414d865c5b876dc4ef5d79d825e29173f0872b2a0a684f309193a5e2a286f93f9296ca9bd79cc104077878addfe8d00ad13f3679b59c23775a81905f757161fa35a87e7b29313dad59ef8f4f310414db853f3dcb0a9166e26c552548822ea96db8da3abdfcaf9d2eb75798e5cb9c4064401fd430e1cf1c19dbb3deb8f4cde3e3ec26c045355846a51b857d1854078887785c1d550eedf9216ec6ba47548fbb3ce8aae87385bea6f08415e320a1137221add542837b1aaffa98baa7f78a6ba40d432728351148f1e043e7d8349d80b7eae84f7eb22b97895ab13f007d088cdea56b859cf941b421f5b79c9f47ed83eca99ff1b1da363b61ba890d18e555d048a0924daee9918f5363f91d7d4d9244fbff2ec8901345eed6fb315ad8f2fc4b03eda72d41ffbebf6865f215a1750a606e59ad445740222ee34935656cc2fec2e17cf17874e488faff03ce72190c15678bceb8b9134a998db40c25effd853531aef8ffa4f3b9d64cbbd96fe8d6f51f5f3dfca6e07e2ae430de0aa2bd816de5453b2e29cad626e495d688dd6dc1f8913fcf1fce536449a452d6115e18940b71e3461d3b291354df090edd1fbedc41997576ff9e149bee84bfc4bfc14c65c99d9f2ccecda27bb533aed4d326d97cdbe161ad69ee078eca5f59a148fb2cb63b1546685c753d51c297e1da04a9818a059cd85d551c7354d7f997a2503c8ce46ad855e8de18a463ffd5d1e424ccbed7a186a1dbecbd855a143501fc35d6c607602a7f3018dea3c1fc3303f19ca15a842646fbae0d0fcc99dee1b5ec63b5361d890f2a4c186daef9284cccae6f276472c82c162f07b7be61e730e51d8975be44c6dff2903aca5bea9b29da44e78ab1cacfbc95eca15b32b00b255751cbe9430d3291253129a8e3223b77ac67c5df5691489a12ecb914e4198e4ae35f527d2dd1f651469ed0dea6d3d99d15c0ef5b2f4a81559ab0f511f5427567f987c441eb22c3bf8bbb6ca7a44e36bfbda1d26c5cad09742d1664ab68e710cf190c8eda6d49af8b5fe019590418f795a011f4a8bf6b23623ffc0aa5a673e78058210eb5a8cca5a1e0aa93a4918609658d1c71b57f03d7823ac0b0a4fb2c8e41e12d03271612a1fa62a20bb937f4034ba87d5fb487a41e69fa876ab816ea2d6a7257d01d33095019eaa9414f8b7e6d80e8944db60725d9604f5cb9538d5bb641db61760201e8f3d0b342485341570d4299ad5af6f20577d27f13405857e4015183dd595785f7885ead9e9ec8b3a4a36adc94a15d7f8793b8c10b5c9650026c49e3a5305e48708c0cf9828a8f61f2ad092280efe7a9cdeb52c2b52ab1b8469cc308b0b0c5d666f1916efadbe56b311997b5430109af14667e24efc578b4de87521529daf742c8161d17d884d8194903be30d9c01e94f51a9efa2cc19cccabeb24bfe4f622a066d083b309ae5e5437ee1a01363d52a0ba92cd4e7631106cecc0b5cf1ba9808a15d56134ba34822ac106b4ee715606ddc3a8289c2eca9763746edaa47aa3af9cd623074044b9cc4db360648d3d58189afbc65154b0d8c16675b8d3ae7fe42df81532f8b3f4a92b95b24aedcaa8fcc3ec5a6b035bb728f78ed7b0e4f4298f22c3f6f4691b9df3a07a9c1be3653991f1287e29668a9b1b6bd6212a598ff7baafa6af17943bf641619a771b35715138126b499a182e5b7c709ef26ed32d34d5f54ef7f0eb88d2f97339f469a2d7e58073129deb528675da1f2b08402f8f976dcbec80095baf205784bc7c0408d184ce20421a02544995754b24d95a460b3488edb588454c0dbe58562dd64d166fac4bfe61f75e521d0b047416bd0a690ab5ce15637003fb3519643dba50b9a6157160c69be43b7f2118ded0f2a4866b8bed3af5b26bc1c76ea4ca0536887b9cfb73e7f75e008f46640858858a631dbf9eb6148be43c1c7633189bfd97b462f5ac299b90dedbe8da6b1d55cc1786722cea1d5db13e013920b185682c768a3872877075a4928f5e48af485d3ab6bc4d6a29e40001880dec5b4c39f15492ab4f084177fb7fb5dff1bd1db6bf35e6d2befaa64b6c6191da2e861a6dcf0e4da71e2061f3af08c670297994268c6b0b38986ec6365ab0a901b76966cb9d212d8b0a7fc3a7257c080ccbc36a1a6d57ef17826d7c96f8ef2649c07d2fc1394e5d03c39c163b6c8303f4e9bfe8cbaceb3c0328a7d228bc52dfc05bcaa6a00dde290bd20e5e5ed1cd0149bb52c9f9ee050228432067877d4db4eed517b4938ca3862d41a77243300b927de25abf8169a4371a8324ec85b991040b066f715e4a92875576dd7f63492b08db2783eecaa5be332c9784a6e00e73354d9818aef158b8e92eaa1a8395dc3cfb15cb6e6f00153c3057daadef3a53c42f48a5396ccdd52d88169a8dd3747f24c7f2e3b0cf1b01c2d0b36397b56dd9a9e15628e46333d182e79a573b95176aa809fa82fc8dbfa4f996827d76fa25c337bb1827f27c29f94ead8c571d4715b4fb263d843f9fe1737e6bc4c4aa52d377f433fe9b4a574cb2c9229f223f36ddbb08c42a46e6ee45dfdb1b63735868e69a8040e5753fc67188bcb69849f8085db2374f73b65ad5c81ce1d6e996b5795f1bb7e2c53e8c501b21b57b137f9133f7845375fd66eda679be18afcd3525d7ac3691986e3b1dafb81917a6cdf8dd83c99f7caaea9cbb258522612046a5d967d988fbe850162f52ba7b91128a7a94984342cea5ab8bd10bf0057a84b591dd240b8492da5d6787dc73b086bc80ac7d650d6078e1242ebc8421c4da9ca17b119a51e9ed7df2aa7ea3ce1e29485f9fdfb33d48951de36ffab13d0d4c0b3cabe16bc41cbc61d4795432ccdc697bd99fe89ce08cefdd5f984127501d8fda7adc36cef16e6f1c3e14cfc7d81e5abfc9bb3d10cee441e7552a556f46bed3f5c0256a0b9db5a8c6fb9177d6ed4e4ba2e19a3b53d00138c625a94684ba9eddab16dbd200cdcddb7c9749dc8484f5cc57ea8cea7d1a959c4a4af64d588dc78032f26fdb9f2ae1e3e09540232c58dea23395ef20f80efcad05dd380f4e513a8c209099686daf885e97c2b6dedef822f131dc4dd106564f88d02a810fc1840251f3db33c405a426aeca8c1e86db2d05276ff2da0b3944cef044589a4d7c9c43b38be8aa2b93ee1175a673142e1a28c3a4afc42acdf990e0934216bc7041de0d1aaaf8ea975ab16c34dc82271ac784cfb3d7094a4e025d28f46c660ec3430b04a27b1719532e39c07a21df848bbe1f172c71e3972ce3885edea96f313aabda1bae08419676fb3bb8b7af62d8bf14b63e0c2c0e036a7f5bf332a5623b2416440351c31a0f7a3c67975bc249f46b8f58025e59a28cf89078ad3b4e6edeab159af410fe3b9a92843e3f621def111e29ae20fb6e64323e1f27c19058c4a84aab740337720627bff949e5ca8398bddb91067c2a86a5a2c00de819c6baad906cd36b2c32bc0ebf05d394cfc63d53bfffa93c5b98e0b35bf28e5cd0b62faf3efcf8a1b195db145c93e27bb29a9ae092d40969f4df5cdb18eda97c064ab6bdc74b7b1e8ee1b48c542606cc89476ab240a87b64abb701f6aebfb91da4f91383c9d131f809938eb6a069b430071183f7a91e7d1aaed47a8cbad7efc8ad384bb21a7fe24fb9f297477aad78f2efe03db89957c2abd8c59386c1f9cde12f142c6c8105cb1a70b45da218b86d050458f5022d16b1600b59c16baa2cac1cf80ec3b321441dbdf4c4559f8b3fc76748168d286477e46b5c999833abf737459745e3f295327c747b9057e5f6fb49d0ce65ea08efedab7ccf1752a61154ee54655da58ee30f809234a41fd2af27cfac54fc756f862987217dfb4f4d87bea4d9819ee28bbd4e378777cccef2ffb0c67053f99b7f6448affa53498ff3b2e502ac0adebb43c7b4a1bb54b8680c8e57af335c9f4d31ae318ebcddee3ab6598e02f6028b1228c966333c98ba54b4af6da09fd88881dddf3f4202b25e18a561677489a4450e98092855338777df7825fcc22f8b41afda8e721ff080f81af357b27c8615e69bc43be7e433e22db9990395d4be683f542912372aa6df09cfb65cd71252bcbce8a4b6cfb053f6d07650c938a665a52e7230e4779f8240f0ef3a963580dcab23e7fae579ff15c7580ea9e84e9fa90e660e8acf0a6c34c1c7d4de8dc3e837e22dd067278209269b845dea40d938fb0c22b1df38c6b39db81dfc86185dbc7e535e9e9085c179e175cba48e4db87f84e6d5e8d6177e4c862e51899dacee440afbd5905203a0f2b2475d06cc0b0c95471d7cc50d71e9401ea7a6c1a247081cf96c55aa07697c883cdfe60cadd87b308d02505b2763f94f50ec978e4d45c4b205a2c331dbc5f14352e54122b9c9751aa3d9c345e8187b6be4be93fe3bca58ccacf7a8332e17d7a0c46d59172d4244b0ea23d81f6332f63b729934c433a41c01a49e32fd0bc8310ffbe652a1c3c62e6337f0310c3577999923eff0b5f2c1423ba0f1dfa2aefaf7765e727ad70d52b93b7d476f2fd2e3af1447906a4c8fa4113b6c6ef07b13ce6bac93ef88b55bab7b4fcf104232e263886fb21ece27696ce6154f4b06a29f110dff8544999b3482f84eae06cbc2accbf220f5bb2688a963e5afc2e23675d4189baf41ac89ce5f5052f9a697871096e274d25a5b25d65328d4477a6fef1914a164709e1695f67c44baa640cce651ab9022e3bd619e19e6d73beab8d2a9f575fb2fecb9e2a79e2cb7fbbf3b8c423f3f8194e7297deb8189de9bfef75e6a33abec593f427e52b8c8ec944120dd8b9796ccd0234ede72dfd24b28b9dde06442f3f4657990b34316ad25643e1cf47199a47a1913c03dd02913cf48a78360f45620f21e2093b0e3f20f3f0e5b32352d8bd7f07ce40d577ffb37bdcf280d5546e6ab4d93ab881000676a66ea52b8796036f59cb4faa0c372113cc2aaef8d44b72edb28ac088a7278f570a16c712538b467076f566c705fb5cf2720a184400ae4abf338db16e56682019c2cbf1a3167e87058f49d8383a10fb9a19d8dc30c3de0a17f455f2c47bd6a5240f2784141361ba47f251a3f4492adfb0e86645b5e70d798a27aeb91b77db196379c25f128f5ebde7d395dd2a149ede1435d40504b499cdb7d0112016216fddb1802a2c736c5f2fbe90f6422031fd160c428a27a0aa24df8a490ae2e3188a81601f6257593edbe5b2d04cb4b09f50b8c94700c04ba354742a2e6b13d399c9f9febb13241f0ec2e64d03b0e1b224b4120995922ed758e08528b601b45f26bd3b39a67838385a27effd6c10395eafeddf9877b7e8abe2f9a82a51ea2d442c6d0f10fb58b2a6128d9192d01766f61e7e19b685487022f373e711a698b695a3be9de94ff05380539952423704593e9b30daaa47ba1d183ede682bc4670fb5bd9ee6153f79142563a8493fa7ec0a11cb92b72a8f64146f101035cdb774070d8e3b9477ec569f1d947e561821bf16c6d95956113518d04ca69ac6b2847a52719108fc009a7c28345d69e8bc35b77799ad7ab87785a6285751e2c5eabe2026f3a1004e0f3f5834a5cca5a91bd212983f010b01dafabe992b63312a7c62ebb0d16772f1f1de39d2c1e1d02f932ca16f95cfd54fbb25505cc4100d7fe4b4501bafd3ec8d9b0626f214667decc8538c57e50ab6320155c4627a45217dea01281a3457d58cf1d0d59b918ee5817a4d1656971cd072dfcdc5f6979ec0207f3c25ae89e0ccea59ef6d093820be86c043895431ea0b0eab4086ab0f2bd81fa7cf1751d4238836252bf09e7860b3d5eb2dab14bc00cf7c0d24aa9e9ac9be980dacbfccbe9b150f3e45d85fdfdd82d086ba92bf5edf4a43ee046f859d768db246d9be3f09c5c59a7c766bab4a3132787c97f46665dcfcc959f8a6518aaef03b4d066bd7b49b607b4f9d148fc75692c7b8319a9faa600dc1cdb1710912ce209c45f9dc2d12eea23b16081195c634d8e8bb5a1babfd799b5ccc527d0044cbde72ac8feda4b18d6001ab1092a6d496585de3f2f41f7d3662ec4ebc9c30542884d83af30b0b5678c7dd0e67fb45c4349d5a232c0eb9a8976b6c6b24069fa4aaa6bad67b44ad1ef1c00964d4dd96c486e71884a8672d1f28697b86a3d8ba0ac50b54bb32e7fd29eae9d95194cef721a56e0467d96c07ce8fef225ee5de5860c1fbe459a337ee2f8335bd88fae2457845ec214964d2aaec45f95bad28d1190162454454e082d9c6244d1d1be72299ae8c97230e2fb0b2bd558c8c9292d0175734c5c3a1f0d8a923be484d2c66432cb1fdb325aeda94cf19de687c9d01eff420fcec4d97fc143c8c845f695b2f1c111a71eb0584e0829aceb27e2d35120fad6af4516171a94d537efccbdb5df4c4aa51e3b007383dc5a40b6d2d427540da164db80c9b0f3f0f14bbedf0e33f7a9ea5518e35df8de7c2943d372aea59cf0acf30e2e8da3a23fbd66ca4d9ff2758d3f0236c20bb9832d307f78dcd4559e048fe144ed13b491c3615b5758413ac5757c22987fc3897170af758e7cd5df9a059b5ccb7ad8e95490d0f352a57539e35ecb3f9c2f00c4a19a0ed5d270cf145377b0e86aee820e0e04186b1fa7d97d9be23c75ebce44c43340cb08cb919a6347c057dcdc483f31e17994f42d439e7b4ff769f8d8a0386da94974a686d88964883c42e491c962267926643269c1210c4f8f468c108b14a233c4760032ca4a5117aa1e80c8c632049c50f3be6f4e5feac09a8a0b95c865cd0ebf729778d32e88d690bd84f3017da5cf572aa49e9a25381b2e85e30e8e9b5befc786a2b7bd1e0b0a88939670b2f62a0e3bc3e5eb5fedf72bcf23956a792e3e7ed8808d00a893ff677bc1b48ec004758a9190f690d8b792b12a7637c7e67169e5c62b74eb2d3430b951edabe4eaa4ae84270c408570945383b4fcf3b48448586c8b00ac39a61f8c09975fa1f7cfacbf2eb1579ec83b4ceb49f49e86c3c1068524ed5a3b48a384a4680c0d8b311679d8a045f6e27dfb38eec7803cc260edc6f4a567f15b521fdb2e3a3f6db7272c74ebdd93e950d5bb7c54b2eb690c072654a8db5bb8fb83fefd85168a4144315b9130e8038a20c754a6fa182011debb6e9a2be0dd883edcd06a273b21baa54d26f6a3e53565009e574e1f5ff55a46de853b0aeab1dbf9dffd21368b0cb9235b2f91815491aa9151335fe7c3f87d6645578157484aa9391cc4fcf81f314d589d1c4bcf4fd631e6b0998adc7aafccf2ae2368266fd807bb78b6d15769cce1b49338d3d3e3e2f3085d6fe56854d3a3b57db7e31014c370735aa16b62de0209fb1fc6c699721ee27493d0c25bf64ba70cc84ad4b35a13af0696012aca3d643ac4fc42176f283d659ac8f4ad6ba4e61269b6e4582f11ab584f32771d665e8758fc83122169804d706012fbd1af980ec2d1315c4eaafc555cdefadd95af8f1f5361c54ad9ded841019e62e93524ec07f85fe24fd3ce35089f74e2f562458a2dc508ed9dd6e917681ca09168f2280f6fe0bf7daf9a4695dbda8835c57b68f02d01d8f999bee95f81cca73807ee02d2fe35b365b0af44309ef2c59c1e5c7f5e67970dc4b8cd01d46b75685c0dbc58fdde7b9296470ffee403b58aeff42a950bba04b553fac5986c90d38be72af1b67afdbbc4e582242cf7cc9a68d666a7d7f992e23687038ddbdb86562df58aa00e0d34cb47905bc68cbc7363a83daced17b7e4a2c609fb273682a1215eeb15bb33993caa2d19dcce5f593394c3974f604cad479df2999e90df7253e1a465ecb95dfeb5b81c78b3c4e98c79c5e7ef5c651003a4f418a04a144b88a2d077ef6454a87ebb15cc978f59f48d155b79cc7032200c07a7ec14ee8ab78817bec38e160194b7d0b78d24d9b04df7b5bb8de1d095e04986ebf7b724b9a05ade9b691ebaa8862a247cbeaaaa7b46c4875c7093f885d5fb51dc1396f19d4b49082bbd78ec4046556aab57051df8335d08fe1f4943442840594df0dfd3413e59229e09721bfc805ad338601c43cbedb35c47cd8e9e0a2ac4219a931030dac5ac91a309a3275b433add4d77f36e7e5270bf8561086e8fca04b527d26347b96ef867246e0385b4849a048c4f089a21c22cd8b5f5330b26211fc551d99c37908d07a2285b54e4b39c1f96cb2b010b36a4c20d2558fc8ae5e7306b7ca71cbdfdb95002beeb5aafecc654220567ab928ddfa625e98d1bb30afa48210e9248b1414d9af972a9eae1d8a2245681f049fa3b6156c2244a4d49bddee7d927bf407f32e8ae4ff316c00985b5e13961c6337d119cd2928f7a51267c3810570babe6083fed217e98262b77b9e7de180f81c26756042e4501bcbeb6b652e72242a533b65c0424ef4bc389e8a70398932ec99035a992288ecee1a4d3859be5cbc151dfa83e976792ed49923a043a6a9e30dd08c9f144dcd79f71ff1c092497467c26564e1856157a8d086ee7f5a0dc6ec60d4396559a79690927f83fa923ec9605f1ffc97ab3d0712bc6a35e7fae78990c4034dbf91b141a9571f9d2627419233a50d6f19167ccc15b3ad27fcfbe32e26d6f2c3f2ace7ee01df190b1481309521b384bd722ebee8f24923ac270936281eb28a5732bc138d255fe2102a0a35a576a707f1633000791a3ee1ad370ce4bdfae0c60b09a8669630f24684f53eaf34ee314c9652d2810fc8fe2d8b46a7936088751d524bcb1edf96a9fc95ffd52210a5d128a1fad2a87f178f8fba8d481175b3a40f2b8835b73255ae479b4776a46307cb056c0d792cec8b42cf86e1234c93463b827b774a2a60e02196cdaab631e951a046c93502ea3f5516ec8a193c7d399e4a9c839ae276eef669815f761948ce6fd7a76076092a077fe24593eb5d2c520e29ab8759b8e37a67270003beaf7fc13fb53a865dd95d505c7a5c29c34d11c9f8c256a3cc80154b6d8e42d24caa954112e2020e5c6d26868c3be5366c1a5bd5a03752d4f4bae644792ea48ba096e72d77f4a9f5439284db241316c52a311fdc1ffcece5d1144d7f5acaca82e582a3fc44e8e90d4a53a064dc63227b4773f38ecff0685ca147a7286ef0b238a02694ebcaf795e5bb9f07c0843e8d522c238fd642a04308d3789f2ce6717af52a2d80eb068f019fe66f4e3a03bf249c76a6fc3033448e7cf05adb5654d98d7527dc98a6677ab7037eb36ac6c2adfef174c3734d22663d81e21a778eac488fdeccab3b8afb1b5f3a66b6989245cb4b90da1480343077a7545753e23faf7976aa476b05b60ceeead020c8386f7a56bd91b7c3e573bfbc7f332a1b9a41fa6a633c682fe73b9f0890a35ee412a5dcd6e4b746e1ac2b0c4181a802f66e053cb4ceb5be17f3f1da28e0be198a1ab57352031632ebfc9dd174e5f705317aade385424d27438ca330059d0c6ac6636186954fbca5a76004f93e05888e0a0d2aa053dc4fcecd50ee1c7196cc2a6973f3768d4640b716bad4ae65579131c5a445f8bb925636024a7aecf520c5fa900eaf22cdb3cdda92d055500cd1e33d9a32fcf3d2e0bfed4950c8b765c6f38eeaf7a25c19b01edb832f2d2fa79f150095c47930a3861d166c1680086e1aaa48c78dde55ab94a3e5a506d0dcc1f920e8c690dde1625d10b5ee0f54409634260b872390466cc03a22f456617b997980c93352fdda17723965151efc6a4b38d36787895d413e176c9af313c58ea50e2225f2bf2398a66723c661612160c7b6fe019a98cf906fa26c0cf17c6bc7ccc30e4753eb08a755c2cdbd555ad4c4eb65b9355e91221f58a7ad69e60ebd0e71f1887af6264c7e077e6392dd8425ad332aefa285e49e5a4fb35474457cc4397743d8ea6104713710aff7d1a8eb7d10e155195eef362438228c621adad7a982488e5c923c67a6db41c105f3908141d1f55b3b11bd8985a20e35a43c0f74105b42dd38c1a85c81a22e7318705fdd438ca3e0f825c002f656370d1681d2b80c395c9752eaa526cda925a0dc9fec6cb588bf000037ba1881dba086fa343270e5273d4673463b5f1379998be1516e28e18afdf6cae9ab84c01c2576bba7a2a386cfe5d3dbdbf3c208c1a77875cad737a19ce51b634d8829a24eeff4a43025946b74d86a20658f9f77e490252becfc0403050e445b649044e874c130a7bd83b9568d104ca28dd00be1cabf802bfcab10a8404056037b185541e529c162ae23e3e6610a02b614deb18d01f4a9c5efc56284145794b48f00f1103aa181b1d5c3050a42cb8928626563dd301a02f447d6151c18fd8c71b71f1d07a60f698fc45c697c083be7c8094622aea4ad5a06449a7754bf40dd485463f50c8661b538de518f81e9fb8c7dbba36f6775b7738cfaca21dcd42d8c49cb9504ef9586088a3982353080dbeb0d641792a416d48068a05f25a2f644cabf6583f3222a311fe52eb46028eaa80227e40da306df4bf13a85ed74829e2510bbd626cbfb99f6fda254fc5de335cbe53b67689cf983188660304b91cb23923e21090f8d9060d2f4f64df49daa231cdb5488bbbb50b0000d344f1a1c67436d1fc78dd4c5bd243fa13b7555e27e676193351ab2918637bba9e23eabd21e73fbf9e54e992f6ceedebb0aeb1f4f1f4439dbda479915d4370fcf2061ddfb4e63224788ce63a2d69961499f91cdfa78ab16c2d0bb634dbe2ab421f736cff02fd1c8decfbee7753f154f914534557d18ff82c6f666556a17f26baabecdeb56badf058a94cb6c0a451fb13fd74bc797995679602218dc25712b5c73b3b40c09b6e143a8c3e3b4f68c2a84e4496edc3262548f8c87dc5432ad0667f4036b2818d3180bad9951aa5252e5c8b5240df9c63e783b323a3ff2cc54df32d7b85c6801998f7b3c3299404e937261f2f8547cad6e217bc627bddd16155a6cf4fffbde6163dd1d63fcd27f49715e7527be06ffaeb552a1f83c4e20ce3c10698e78eb5020cb0a5252e0cedbf55b018e13c4d053b0cede5783de997b901f10d7023ccdbc56e063379cff66df4f7bc017d785a388366571378647d703a899e256f5eaf45457524bcfe8b75dae78abed24a9c488029487cc8669377e8f3a33a4a66000b9c3d761f2db209dfde30e6249a61ba79eb6905d36a9b2c82d4cf370da056e0b4a68cd95b58e992ca452851f9b04e93be26e4719fb005a8fd52b952b881f67689adb29848b2cccc58d26f37cb3d92704a4c1de91443a5318e2424a7eb8e31e1b2c2564fda0bd5bd6c6d69edceaf22cf571afce6a12111984e7484185b8aa6b2dd4cc2db27ee54248fd5bc8460a0e6d9c7684f30e6ecf28a0241d3574ae627984593658fca63ed1c767ed3b05c5d3bb44694448b15ce8729e2a90d903fb73acac3a050efe32e18196b325ebb017b7294be1cf107c9c521e1d85ab422af649b4f498eba04eba4a0250955d0884a304eae23e4cdd880cba59b51354c74b2d7b80f6f287c3da3ab25810d5ce0acf5ec8aede25133bb584d0d3eea1be0c81b1833b505ef96dcde9c9a823430088faa8c51807d1ee6efb04de776a8787c3079406460cfa0a8faee28c7cf5cad099feec6c4311bb288c3cd92d4dc89aeb083d871d529cde07a16e3a9c7e36a666599dcff78941dd021a7af1a0a5d892813705ef8c474ca057435fabb8be5a626e4dbcf69f5fcfdc09fd8a54bd3f97321be940222a41110d02694e75956ce8e6710ca757c384c004b509b5d280cd92691cdae02619c306994c2e6cc2d40e05617b841f721318a849169007024a7a210e5e2d5de330624e4669d290c42b36c9299701f2c9f46500162823fb014292f104ba2c8f0f4f1f2f8f2b20153bff1eabee010d30a28cf03f18c189fbc1c2c860a5f3549f023a0bbfff91ead81ef8b5eabdc3104c64598e03ba80aed9369de2cd2fcca89f6f309e620e4a5834f4feb0df63eb3464ab062d3e8ff1d8731ff81c439d111a9d2e85726296b2c07cf12cc881ac43adf0d0161241f8978f371dde9f86b06bf3ec116694feb293d843323bcfec9c4ac9764b1bff1c2622809c24601bfe2100ef8d82750f519c686427a46a1e587d0b4a3c92a187a36ce9da85a0146e397333a44bea2d5dfc27d5a45d9d331f0c4774395d14bfc360a922c040b024ae848cb0511700ef04cd61c2e9c15127854f2380961b6a871c7a5678b78d30d3335e8d133973f77520364c21d43231f566247b90073affa6eaa336c57f5d285399495540f374589dc3478686593b00aff69330fe2d287a561c9598c91f548bf2b01b8c7e564e4ec2631c2d4e8437f9f79f2b5e9ae5824f7aad288891d08aeffebc7123e85a530d2f9e76e73acf9ac31214017cd27f1ebc81e64ec8642e82473edf2ef88c79a45a0d53be1a05b684daa262bbb7255f24377850546032d26c639bc09ba300120e48d6c243212c402f8f20d460897028092b71bf33cc46d5f88f6761f9f069276e68025a1a25f583b2bd62b549d253d0079b113b8ec7e7807c7204b3117c95b825df29a7b692fae54a7632e104fc1db9f38e40f99bcf825c0a9b701d567f6411669bd1ada8622ffc122ea9542a81af1e672cdaacec9f23042eedc73377f71ad501daf28a28770aa17faa13328e6645b5db8faee8f6e71bad5d64a0d6bc00e0b080766faaa6212b18bbd36b028ab7e393f972bdeecafd8c65a3f8f52069b774e472190fbbfd9773b06be7708dde1106c411c6eee789ce5bde11a74571208156bda4dde4973080610c2fb990a668afb1d66f7ab85c5e5c3ebd3db03454946dad9eaa21437c00a09207d18a0d9126ce537e1b6f282ac3e5e00ac8826daa46fda17ac1f77cc7de555fc382faf6f57e5a8e80ccaddb46a488f8f3e7feae83cc28c26189a7243a11a955b8bb351151354a5246e3eed618a18089292282ad575b6840bbcf7c989509311977ebaebed26d0b122c96840c09da198e4491f661a7f3c2c4f9403c0c2c4c9f22d024fee685c328bdd45ec1f7fc98805c5998a59c421bbbf7ff972aec5fc5cfc41ebb3a9d09ba11c94a4d1fe3d1f32be5ad3af04f6dea964ab9ceb3a9b3f78481785b5f8bf7220ef4a82a01e11c80d952b7cfca7655ee0b4eb931ce3046fb8f59bb16c61a6ead46146adacce01ff6f13a4f60a70db2cf581d5763ce9f229796cda9915b248af040a958909538cdb7d2194ba6361b4ca45e5098b7ec20bbfb3b287eedb923c85ffbe8385d5db21ecf881b01dfd68640a82eaa60051092befd94077b8beff6e107263269ecf99a5a0f31011acbb54eebed443d13e769de07f56ed25b9ed1f9eeada72d3f368e9f184b8cbb21075dd6eba038035404b0cec9d9dcf2f5b427adf091cb7a66ec4c1524b6e67f38d37da911c212c7effcc93c70ff76ed732b6181a77624fff72561108a742a31906d82a18f1a723ddf32e131b386c2c820ef9c68954de5e00a61676c7f62592cb9308e6591e1e13879d140446e8839a3d97883a3c34054f10c275cb39bf61cf96b279ddbda395da3622c027db02b6603381eb9c97be588e5a7b895c79f593f06bf7c7984328a70ea6f9c7eb21eec05b384cf2a2d2a8eb194f7420259919d98e1c59387efcd8bf4f19aa25aa92d64ae741941f1678fb1eed2042b0701d212ff0e20885fe8d97dc90d494afd05ec178a0eaf19977e8a851a845814f527e315bb1dada3c3fb0780cb0a0d24face66e657cef6a492ed7737c5cf8f92de5a92adccf833e77edb39254f44a208a0c410da2c0b3720284cc25f46ebad43c017d01b41a41c7de98f71bcf1d23db2234baba2a47bc7ae08fa315ccf5cedef81350ea1160de44543572d91fb6800df9934fd8787a3413320e0bfe92c2b9de88196b5327a5046cac272edd97383b8b659d342c9da16a9b98100824648ec9f8a14689afb154c30e4a90c894a27a301eb1914ed48b674f823d6371cd865f8a23e4cf5c10039811e5965cf1275676c1c27394b9080404fa163f7e7307164e52aca05f089193fd46e59c06f126413a53f4ee6e43aebd0f24e9b6dc0cbd6a42b6cb3c37a69065279c2c42d01f89cf4acf09b562eeb8c6d8adb9fb9c911d4225134aa2adc3bcc67ab577e9b56afbe03221a22f22725e3aff15fb00602853da3e063470b8deeb37b2142b794ad37e6a5abc20d785b818bc3d03e2f5774f897f2ff49edd71edc785c1a2eb0a2df0563d7b153a2ddd60786084c205869853434301837d8019d9485cb32bc7c5ce6b484d352490ccca3cc7edf7bf905d65da02d84f1f846ae2fdfede06dfeca4cd81271055e65e1f73d37a9efa0c01d36d5a3ecb68761d4efdab2d109bd1f52c3f84b6d057dd388f65df76cf1ee178d85e9fa79793fc6e9db1a7b510657bbd51e459d40e9b8ed33f10cf1f44c7159f967649c24966686dd504aacf820538ca0e66fbfa466d02e4a6be463dea43a90f538f4bcab02835016763e09699d0c9457468f60dbbe7460b931b9aac476d3e5c84696dea55cd223bf0fa6a639f03d1852a78ed781612ebd273ef55e3fb1b999c3537cbc2b3f4b398b7f9ddf4fcb15924ae94149e075286b9f45bb841ff5c268f1bcd553f68c4ad589bb3c26c0b6b4da8c65fb6942892314f3d2633358aee7249fd474dbe5a199edfe6c014193bb9fcbdf9c8b037d1dc086268b9ee2ace64b0785267cc8610c1522cc087c50e59629cfffc61f483ac60ad3a046b4452ea50353239583c8fa9f35f5c1f453994fdbfc34d686708472bf6c5e8ad33422fc6e7fd53252edf933f3d9a408296c85b6d9eefb72aef841d2e46799f197e2dfdbbf12375ebd0477da162a001ceb9418e77cf00f5839c98c180a3f6211ae7f9e03c3f6c6609badc16a5924fd4103562a51a06b96b84af83a90082ed3f79c9d2ebd879bd424e755a15896249be155c6116fa9e42cb55441df688371362b33897ed54eca10f447b506d21a9786afc3566cceeb0a833ce1c4eb1fd5ba226e89d5a17b8c7c4edfca5a1f9c749840d47990e733c205cee0f5d945c10afd70d9282e16d7b7e7ad9253307724b655f5a10f1ea903576b0b6373a81cf97e37236d734280c450a39fb80008bb15634ba865b02fe7158ee5d925bb83b669511392a85d9dd35d9531a8829720e4d0a048d5fb03442e22e81003a5c3bfb7f41d975ba0930e3392b805c32433cc479c26a936d755524b87ab498114bdc8e4db97273ecfac4d024b898e129f71bb44343d0cb29ba89042f799f0ab1662bd7ef27ff04f6ff8f6e4395e0b0ace0653914c5d1f8416326b71147e19dfcef444be68471fd492d023d75dc2a71274b3284889bdf22edea7205b5af3e7fcd59e573cd414eb8b4255af04e60b2f4e5e3d9179870af135027ef2bc2f03b3e2a95776e6d8152928892abec0cd245aa53c1674b0b4ec3dbf1c8905ad13c4e4f0f7cee6c18b2cc6bdac467cc55c3162acce19fcb41ef524d40839136d406308ac79c983459a51129ce915ddfcc2d1daefb833b1749155a802411d35750607aabd4e7039ff17e0235f3bb16a8746acc93cffa060243d76b4ea78792cb69f4e4d36702751a291509fbb07b315de1c2c9ddf6de9e351c2930d8a5a82092bd6975066a3f6c286b9c496fc3f8d4693b0670b0f2bfa4aa92121e00962799210c3576ab148130de35b80983c7c6a7eb11cc2ed8b6b665318c501aed5a121fe0b326440f1a855e66584b76b2d7b6bf35fd4e3f42da7b17eebc5a1f8b29d0f8acfb3ce1e25d5d097c81a102793890da4d1109bc8157e302d99d07f9087d6802562d85c2b83d170ff41dcc94d81482cf6f207ce34adddf2c3cb3486b581b04512180157e8969d3e232874c94d54a609189cdcf31f8ae6f513923b9d0b329da8e48d369d5314cd033b08165b9f947fd49bd6e2f080815154e429cf85a1251fb8a7638ad17f10329877c0bae2cd1f5320fe2bf11cc9e5dbc6b9f8b0ca4b5f2acb44c4ebafeecea4a10b77abf1f6eb66c720465d4c3ff6c3152eba3412d9f6c46bede6adcf8abaf63d217ec1889e570c4b3e03c557915de86d197b347bd186ec26f36969b489afd495b65019216d0ad04b269837316eeb2101866cb814c2a5c76c5d0541d8388b5a23600f0f6baccc321c946c4a2023d95d45defb4c45325c6a1d31c42e4bc2bb6448e59dfa774f913fcb0519df903d8a691881fb9fdde1ceac78b007bf8239a341d4b7597550c7d567d161951664938e2c1cdb4b67bba6649056d53d8c2ddd1a416706e7f359401f762196129f30efc0a37e2c388d46e1d4dd35c63f924be3032c456f2eb4661328147119fa94400662e35d932bda084a2faeb61701e98d4fcc7d3ebc2bd8311411dbdfc7e91bb18dcb32c6f3f9b87b617b83fbf2ed35cdbdda98807355016f3641c8bc55cafe48368fd751ef779554de3202ff94769054c5e9cc084b2b7eec953956015cc8220ec3998b006c06616df32ea7aa3d742e53b719d45c739505182cb108ece16afacb820fda761d01b6f0f73d79b72eeec2e2ae82c6ef8db9b38d80f46985cb23d79f714e1dffab346aebcd8be74ef120acb98fd244e5f3d71a45c62e7b5f8d1b07312ae152ae1c81e503ad99d9058ba0c32a0cb22fadf1a7a308b8e7e8aaed4e531fbaef9e753c54beed6b1bd5eb0d4c1d2add27e9fdbbe018cd36059b065d2c7262b7479d9bf2f1cd6f0e0e71eb440abcf4377d572618b13ad932986e37417d2cab1879f9b79e30bbf49a7aa6f7b522a1de0811fb7de78e9d8003ee0df4b9f62628d12b538c6909a5b1f8fadb0cc547a4a289e5a5f428daadbe6792c44919fdc4bb662f26bac3a72becbe215abc6017b7f16dcc10cd7687909f6b7450caafd9aff9769bf7afbb9ddcd5530fb315c0c4b792b30966becbbd2e21158597400d3b22b2e3e84c5ee388f3f67ccebac4297b28f98f27630c7cb3b76b3c2335788f085959f9b0972d7b6b6d6924d81be60bc5d0dec5f4a3835f340d9fbde9c59ef5625abfb5e69d13f8868deb20e05797e08e7640916b68c911fc452849ac4749fbd83eeb2088f630ed5531a6dad24d3f4fbb10c1e9c274ffa519b105365bfb13a0f78a47d41489a4819c9a7968fb64e5e89950bd3d86cccf8207f829cb512287fea8f71a752e5bd37a21089475b8e03d79b56803297dc3ae23449b4228451919221b2ce21a96995dc1611d5ea7b61802e8ff2ad97090fe5c5cb824115cfc8038d3b917f52594cb4d0eb45c57d9ebb338ab4b956874226c3d33743bc4d163ca6baf3ed744e97c88feeee051c7d39034f5bcf39707dbaa6c4c45e5ea1a5dfb16e74b6a9c4143ebebd5bbd199db5018e55379af87994cddf4cf439e333ec34503ea028a9a1684c22ffda4da2924972c5c9163ffe006a3ce4a38855ead9b32049ece09f867d1c63fff79d644f98c24b5baab9e12f1acbab125e3e55b4d4c735d7113fa614befb4906b7281fe626f4108eb175137add82212efc286e186e9c094aa99b7cb0b00368ae6e3b6e179ac8877d887e5ecb2b1c8b064601e942f574b422d28d9364a5474fe6012193a6aacf3b8f60ccc0de498738b12168a4c3244c53404c6511db5baf2f544633a7df968afde2a42128d6195b5e51e9da92eccbc4891c7ceb52202cba5e261ee0155e73ff5dd7b554fba4fdd8947081f43680d589f9170a2564359594d773cbfc1d235e12359ee0ee924aacf156e7b1fc2cb0058ecdd66ec689721b19b92c1fbf52fc8d801fe10466badc8348855583b5a16b098d32adfe45b9b9a0c8c49a65461d3a781efa759ab23262229ae42aa3ccd6fdb008d91b46761d79a061df71323838b68627692309c8307d4ffa9c3f1055a0fc6fbe785cc95b957df98094706e97332a180353758481dde58014b8fc9133eb867c3a47fe788133952fa2929048a6f2d5c4df64a1dde9d4b483f9aa14bc7632d327bf84926d67be014fe82ac7ec552c7621eb8b7bfd60a77d140cc5cb8029090e4a30ef68bcc730bbdb53d3552281ee8a7ab97a7af8055a39704dc0d0934d9488db134e5c77553882766da7aa33f117ee41a62acceef8e60028a239a51f510d371502eaae294ab9c221f8e3d0c1f6d9b92893547a2a7cb797c1a630968f81417fb21011f7638e494650f16b7165323e7f1f71f89e2db82fc6ee52884470b313572ede921b298ab3b6270043633f03a1ccb66bdaa8a2ea218465f989bda895f8b215e344604eb275f0a07817ccdaf331049a6400b0601456f3a22961238eec7a44c9987f8220b843257042b4d0026871821eaa35daf5ce0b2a23989ee5933fb68848d6a1e5dfd882cede468dd56dc0bb1421798acf69ce71cdd778b5899a5add26e07c8acfe52ace6f0184374f6023b8bfabe7d03e2ab82c7ce7a67f031f62b69ed52f20b584ee7429f386ed22a91be9d51d4b1e725364d508008cb69dcc1f1b476a5bcc96f5d8f91a01da0c979949225ed00951f3c6527884c5f87d72339b779ccf40fc6ce4079195efe698d3da7309ca700d8740c21917192807d573a5084fdfe6159fa46dcca81ec3e8b6f242609cfc8bb8a390e7d725b4aaae29047c96b602e688acab9ec45d42b7cb30a10bffa8a00357cda7ea3f0b81e4e9c31e48a7d6ea3b219b8dcbca02364d45f44e0c9d52cf677eefbb53a8a633c72b5410af956efb4d08ea9f4b1a9e4a9c0195efd90392066fb838690aa6c722746a70bff5344ff6e8bd993e6fa96b2f4e7ec84aeea8b36f061f9db69a1cb232aa340f857cdfde297f1dae98c0205804f10ee9dc384fd575b446532a665b9f8f161e0e95ad0a96ef8de2b28ce107873c89917447bbc86bac47f157ee32d33d38124eacf61f06837ac48b339598b8d0508d8d8c5113d8be050c88e604cb2b2a5896230d0df1c1c7f5c51540c5de683d42b5d27778148c6759004a058d9d057c7271b0bbaf963618f3a087f0d400258cec47301f10d3d1d93ac66ffa16947f3b5c074520d3ab4e402956b4db3d25e3b028d08893f3c263d51f4644d0088eade40626650cc179019c8208e69f67c9f150bf635984c5cbaef3d64156d8123488e81ab94535e13fa39e7bb0605ce407e3472be6c6c8c074c0204e4f7423b415832a626662b2117c4e4cd16ccb39bdb9be222cf166db188ad31aa9f51908cf42e285025dd1808fb5afbe7fca98ddcec4b5a5284d4559eadd9af6a7e651a44dd31c4488e1bafd6e8c6ba3109e77f63529c94661231a85bb06fc9b5d8ed655d60e16a8c060c170a40fcdbd3948afb6cb9fd7b1f25340c68c3d86453673673f9026bb666413367f9c9b6860cb7f0b50b2db4c42a899be2479bd93024e20dfc7f7b29f26927cadb664c3e5f7eefaa480f1c03d8e9e65a1cfe646ae381794921ac3678705194de6076406317fb5916500232215dab59cf69947a8811d516de8a7d6af67149375fc45a354ec0bf6b39f142fd714a2d4a0f777696e613e4e50e3a1492350d64f7191a8a5a3133e7c4c72ff183fd714fa4f5103571e29f98a3e907e7a09d5c60e14ea4cd11571d4866bfb8bdb7ead9220e304fdc79a080294dae67a33590bcf896401b16776aa1996528d86550f2f34f0d60fc52197a0e23cd2ae15dfe8e1d2cf4d373c0e0c68708abb323f466c8f444148e4e3073aad7326e96a91ccc0a7246f3191b5e60353cd1275d00d5af656c06e6ebe807c515f65955d1f7584c1db0d70a479c837f76f3b6bae1bc8465aecdb781d0fea90ba6ebd98a1060c2d10f6491fe18b84a54da8586b8c6d4ef80ef47cf7798614a6dee25180a2ece7fefab78ba8b73edef97d2bd4e4e13500cdbcebbddc48c5133d68884da318f657c947b3f68007322f7d6faff651257042e29f8f6d07855ea257910db076990ef4861e26a2a10b79b2de7d7d17d4fd06fe7037888fa5249e9f68adc8d0f36515190202fd1d92037b07ade1a724820184223ad496d966387d8cd4d03ed24e2f26658988c8e74203ebb35e7fb920077fc21d03d8f7367fce460f02b89a33fd4b083bb4c6b8f4b7f3e69eea5eb0a0906c9d6622b8f9447943b472fa4f66420c17e443379e3c2e830e8593f04d194d0dd6b9f51b15d8d7d8eab2239a8203a3c773dbe7c862b7f10e5ef6c3716eb165bb64a0c84d79c2748d399835512893cdafaf07d71587db8db80cec4219b4083b07da5160ac9096d734dc44de7341338dc03cac85c5439dc8ba8c1c8914923eb3b99763418feb3d6d2d639af71ad9bf8107fe22aa8e6a5c59e8e29cf27b5b18c7768f7a758d9ecfda786eb27f94338c9e8a2024bf5bd7d86e369e41404b185f048c33ac0a6a518e756e837918642adcab7eba90857f31c12717466214ead0a80d0f43e68f108f9bc73df6aa88d3d73fc3cdaad47df9ee2f18a449297944926f174c8bff9ba168c1104191ae3a13f455d7ed724971cacb36cb98b9115973ac9e6c84f87c468fbd03c21fe483bbea85e32a0705c1e95827ad3c1d575305f5ed8ce8fc8f67aec9bac204c164ba3df9c8a1d36ac084b7e5f9d15b60c1c4b175ddb07f5c2dc974fb6218300ecc7017866b9d3e5916a26c1054f68e02cc2af527343ab55a1d873cd631c35585587942e18584ab189153e06b9a512c5048034dad1a2224beef5a316f2c60b59be00bde53edcaae5b37b2ae22ef54034ccb989a8eea31faaa1a9b7eabf0ee48f0dee1aba0c41eadf785a0b5ab7b4fd2893a94a04476f67841495ed6bc959a384ee23391146c4166eb790d988e8cf9d0d8295086d01994748c6f45edad6f8a637f0bd3182733fb66b564433f38b18823be53e958e415f6d8bffde1fcfe070eddee8284f0aa6d8a92fa84f354df51436abfb666889bf7e120c7cc3e4152ddcf6b1b10d86b8ecea0a27c9d14c7786d26347d215b69c30e0ee0239e8b7d28bcda08da3ceefe2b2abca16004784bbc7114879d3711b3b334783c1c494c74adc2256468ae05c42a026a6fc5e42dd6385f305a8639aa02b765e06f39efb57094610b604f9e32faee7ccf3faaac6e2579ab7c1ae818975703ef784516d215bf04ec8793159d56849aaaa11925e1c4353893912918a47a95423394a07da4363096885cc8c1084a679d399459e9d29fcba5ce425a3bd2d205ab4756f6d870ba9a5d953b7e2de12b4dd6fc262e1eed4ceebad95877407abed3a7eb36d1ee6e485609d1f36627e4f70443e5a41c859892679e4216bbaafed38e119d6e4ef1623fc00ddb27e9651bd6ff4051197af0eccc4819b01d592cb844acf6ca3f9fdc5f56b9e1dc7fa0494612d35dd3faf509ab79621b9271f310297803f4686b89250737284b6e6bda6fc94cbcb7d24c0b693896cd4faeb2237843e1511d6506e6b79fa574bb067a19150e4215eea60391f9970f64c1fa76f55f4c0fb675c25325459e3c0cbc8d0895477b78e3a111892eb298c9468f788e6b7f25e335f8593dc5e2781adf6adc82b7e972404b863759de9ab46f57b10050f8f0076137308483ddf8df21e40642c09f84fcb418017bd26f235a57bccc349406adf9cd07622dc29780b695948c5d129fea07d7365bda7c07ca9938631806d970d487a7564316f8b19263eb6b62de75bea971703981b33f9c1172677951842408cb8f8bb9434353fb4557a76a15fef4374e3327d7530f377ac83385f1bfe6a1122221552665dca3dbdddcf89825c5b3f774690c6a88d61bc19eb856044b01a0c752c28a7ba4fffccc4894937ce26c4e22ae19fe6f19927ce50c6689ac9d978cd448a2b9f7f147b9daee2cf6a557702a8e2fe265094799562c8a36b6275b40c4d8bc8080bfb90a4f27d03be722491e1b4657fd397e27cff9331343df7a63ca92e95e57dc5afc8d1e6af346720a40be4208fe42a9b9c751836a0087f9ec27568c10d10dc036f7b8aa6b246018f6a69a69c8991186c7dbbca5932cd8d1860f957bc871c21f215d017b8802e93882f6811c2b3049575affe1e7476b4dc19aebe07d83f6715fd01e973b345f5af0d0f190c40d19c2f1498618fd714f8d32397c1d8a25d607845bc3108f72ec28cc04f35792fb90e99f0edd865cd141bfeebb04968b8783219dbf501a6b5e3b21bcc947ad86ba1b6e28467907c77ae718863bf0486ef5770e9d5bc4e8c7a40ad59aca9dbe1bbeb62578355a8bfd54d841ed198653f6b10dd73b731b74e007e5f37f3a7f3311b3db974e3f191c849ba5079676ae6f006e2a5491b0ebb93fdc0fa9d04ddf72a6f852d50f708adfef5e301cdfbbc6b5d5d5b9a1c99e8b8a5d8cc958abbcb65d1e1fd687c9f5ecbee80150d8b31286149103f875b62dcba29b16d856dd45b010c06f82638ca1ab93b9bbc83c9aebf13031098c2707313c140a8a67700a29e57ea8621b647669adfb031992ab3a7962a0d56b726ca0e20a3e788f38630fada9f7a8271d802de83537ef796d13a23397aed2a2b71be45d66d8fdde1e9cf19969e91e219fbb15dc55b2f390cc871c53db21bb9a027cb82179d455c4cfd6dfbc9473296606c540a7eb1b37e4077f8b5a3aaf3b34efe8c592f1121ba40079e0669b99e1408885f0cf332c4753e530888ac410a8c538d9b0791a333573d5c2cbecfa2842b07c4f897ee97ce38b6ecf776ae3ef6595b48f0d8283fc893a9f2e19275aa43ce68094fb02f714718f1794f446be15f6621c016abc39255698ea99d8f5b5c510ca694d004eb689a43835db93adae9338daa8b8111d9076663dde11e9b79d695c77067efe78c1d7e9b2c3c71ef1c4d5ac247cc51efc7792c870e95c20d27ff581bab27e1339535513fb7c29c8aa5cd1da58dcfa019569db708ac29b9f2e068bf397b9f582703760e3673f9fc734c1c1c6023e0dec89dc40c179b59b02ba829aa9c587aac69f4ba9161ec42f072ce2244da31e56685b50f2d23e42b470e56ba68b2dae9c916c8f3faf9da5d23df617ea8830af4809f3e43ae36f0b4ad727e949da6eb4085d22c5bc6231b6a3e63af804f2914ee13d1f83074ab61451bf766fd4b95cbb44812da235387fa6ba01633ad6b623d499460d95d9ee50516840d16d0cd57def9e6fa28fcf94fffbe0701fac1cef37aaacc7d34e28478e82688db909ebaf8bcba75db4fa1d307c57a00fe23560ab91b8b0a5e886728757668077b3eb62aaf42a92954035a9ab950b635b62ef0890e91ed8b0a71e83d6a435380ec71b84e35d2c93aa42e640d34003a19d1c44949f6dbf5b22d3faa9000373f63304ee8e251be46b035e0afcdd42f8520fce279a133d99dd160e8ceb5e1609e097fafec7c3b8de868858840862b7f9255afb5a94a8eef2cbff60e7686411b92d073e401fdb747353c69c3dac0f904229316abf998c08550f7db76e828a3ed95071e914fcb6c1e6c87fb7d619b21060f077a7bc7f3588548d2f610977227c63814b197ec033c65c3b80dbe7fa664fa8639481b413bf5f2d4adc93ec81e9bc538f396f57d5d8de9bec765fd1d177b700b9148a875e16f02c33a7e6f3b81a8356110390a3510c169f02ca3d1c95c28af44ec89b29242396ecdb43d4892d206cc74ae5a5e88e32b2f8cd99936a2629591b64c74d4611551c5cb8b93f2012f3a3ff6243da9c3cc4a8048aa022f886118ecfe4aa80f54876439c9dc0eb38e6b06af4c78fe2a2c46523eb0036d2aaeb9ae434c962d87f44693fa993c9fffdeae99825d60a71d612d30173bd812cb312cee98ebdae3b3337843ad5417f886a62b314dc1f9cc1a8110356a4b4d1debc7cb983e70e3a54476890d01280e8f6025b965fb8ed9c0ecd6d3ee73a911e3baf6b1c680516c113d23410920fd75e9e1d0a0a0891d2e31af57205b0e80a02b9fdc8fda4b29a732bccab52831ef93936bbf64635a16cc2aa9d13895f68f3c67188554e1753e9fc9325f6079ef27d685bef76e62007aeef06eb6d2bd65fe3c5a20cc57ff4ca943706eafc7d4d296b2d0ed941f09892468a7d955ff4ad12b1f42e25a7cc44b51e988375ff68f3a453e1332b18ae7ce30878dfe5fa26ade41a6a1bdb3fc761eaffc6cdb80b2064b717e51145c5db44d8646801c2ee2c56ac4f9a13c6b1a77b56cbb7eb8d8a81681c90ebd5dafa8f784c51a93dc933dd5ad53e3ce4bc1bbc162065c8a91c52483cc4ad5e0e2ec98836273fcfef8090bb2053da1a01168c4f8a1e8818164ff075106ed8eb32d6b55cb0b9efe9f990c62e4263b4900078eb5682a0135704561f9b891296321819b36fac6d48a13f107bd30f20a30f1a3a41357e82dbb78c3d9633411ec5277cd3797102c47d1e2ce12b0209e353e1af54f3f25195f4a18791a7fe427cf3fe7ff1079922a32f172c1ec4566877f840bfe1e355a354b7eb1512603a8f709c52247745c78bf550a93096a188961c7809712d8e6270edf2261a7817eb9c4257d3d41812395598f4f72d591d2ab158ce76905685f086940a95bc49a5e5d0b740fddb633d77a89959a29c54e9f60d9b81e4087ff6260b2df7d7e7beab260a5e2932e9762bc143c7d03ffcffd430afae5b066e8c10e8f63e675ac9b5aa1d19a6521e914a2845f68c55044c19cb2ad3fccdd37678736c913d77b656b7ccf643cec47ccd89ab172823f49291711a8a669fab417a310992fe1dbc17c50ba09abf9c872778fa0e01510d57cc56c95bf68c4323f1fa0aeaabae3d9ab210df2d0f3bea47dfd27579e781e8151927bd86e81bdc222e16be2ef3eb9822f07875212256fc335d007100d1d8899f4815c2070a1f248ff216fad1124f51f0da0070f1c727b018118a1542380c6dd99e3532e91c54f1f826e38403ab4b84c0aeed203d68b4740965dce9f9b3e672ce13216961b6af56ba048beb8e12a271be294cf0cf637c151d7fc50952c0c4ef061a75f0572dd696a550c0c2370febf1bd636cd0fc7cee540941faeef2ce190a647953bcb3fea3e6af205a772db8123dde7c60c2436ff056a7b494c913a1e96898ede0778491a5ff4102d1aef837d7004f6a7e6a73ef59dbaa2b8e680d554e329840c4e158b59e8218a2c33784ad4dc73185e2b4b8817648161848b2317ff5599a8aae38546d062ade89748a23fe5cadd144ec894e0f8985350a07ade91ba13f851aceb7d49a86cce92249d9b8044169abbabd92bfe945a5295072175c27a79de04a5923bde27f2fcaf04cb15c2c09a1fffbbf0decf554604f6a16911e2d71c7a6300965b3b881a989e1ac2a292f1991e9a11ab3450dd15f0ae7e452b330fc378fa29a38e6d3d494d3a439a90a64a90234ee3fa9f33fce57bf3fae77d5e55970ac904ee82b71f2916536ec2cb8c0449266f06189d086cff10600add4d54d2f2677056a198cae0a9a762b5d3235774946c53bf77374a04d8763d7fe618a7537c2a072b7a886fc7fe1fddd4b237fe06d753c5c3c35bd4835ac03352033923dbf2e471d0297a919678a03441857483837fd723daf7986b666895bb477ffefcc28f663969c05484d0d27651c4aa3e28783c87c249312844f37079ff0cd3a3d8c68b1902dda42649e700cb81d0c7cbb0000a6e7b1704a70ceeec7664cccbdf74d89c67a3596e61e94c27433ffaaa40bf1b26e1c9f904900ac4af209da85feab962877a0c2acfe3ca5e971cc8619709c6f707c4e8f838a5077facb76d8ebd8fdcdf73e31467e4b97dc01b0ed426c91c4d5677073599c5ebbee2324942759e7d17f3b822b08718c8460d7077539607cfe209549fda571824b16de8d75ae086b19bb4e8c110d6edc907b70e1e0a0d155ba5f4ecb50985ec23c3db76aecec9ac4020a1edecf64621e147d8066d7ab43744d5fbb33328103af3ce02fc53fd9927c9075acccae39be797948f484718a5a7021eb5642a244c2615d9a3bfb14bad9dbd8848f6f6937f7e649b269c1f30762c5840f708ee5324251ece2c438d3e33b14702e6fdfc30b07cc4bdab2d9de96c801bffcac2db091ef359f2a25c20b20e8f8be408ac43ad3eaa8498a553782309e874a5981aaaff777fec806b00eb10cf34648dc3235a63d22d451410e327a281bdd550cbb4aede94ed4887d29b326f0d67d1e394ce4e917344781fb4c22c4f7198deecbfaa5c2df2b302532491c7456ed470c17d29f0cb1297babf6af43520e95977704318c5aef89fe04253c19244bf67231e6521f51420e5571ac906749ed33724d01283cf8e927d4f8f624369b2a977816ec6e222a1b742299fa79775227b898b998fbe97e9c8832c62394e6eed4d89678675adf23d3f0a5b9faa8c7a9678ead97ff9a95f33d74dc267415808783a57850fb61c11c2d9c338a5a9139d64b432a4ed34731f3d2753aaefba40417a24d6ed577617767a895dd691e592e32af0aa0fcda1a1857725bcf465332bdaed206367f6e4a52b0f57bb0ef975c49b0023888017b80d481e4b9bc396523a4fdb3665448dca2f3bfa6f4ff9502a702866ec8a43958b8360e0c6557f20bd09f0118ebfcb29b044c757928c3d2a87e09a6c6d8f09a3255bbdae3fccbeff8058db518758a523e9ce9908f46012facd87634ce2a210d91bf41aba35bd396d5831986dfc787db63ad962bbefe4d2f8bdecf5ee1a4b4a172b112dbc92777d5537f6e97030948fca20b48f2e006561f4870d841e0d0948ddbbc36d95d46e6caf021ab251a480f809ea15b81c6967b12a49f35c7205d4686bec31c69bc6459e57f062f8a73f5ca7eefed2679dceb82ab3934e0a4409ca964757e90e1a370072831bfb4af06625a9b237fd5253bc74e7d632867e8eb034b2fb6f700e4031c2a8ba9503cff3b4967922c7e97d411efac16c22a02b80fae43eeb30f1746496012a8f0b1c50fa044ce9b44222030beac320be61c74337cd9a9eae4fa9b277cf74c236b50dba285559760793b743e0a4b298b1a96bd9eab67913bbabfaf6e8be0d686d58eecb745607e87c5a908da259d8a5c8d629f40405e9cc26eb94f248ede617e373d78c01bac0b1adfe130c0f1770d4719feec9ecd691bfaf5182d6b98f9a8a71329073f93673c44a76fdd8e1b334245c81daf02ad54be36fd61d30afffbd468ac8cf65a1b1fbb30766eaa4b5b2ebf0cbb26166ef094d43ee4ea1ec989f4f07e129712339c49a80354113e4edc485dbf83b43c6e02bd1d598c5f030c22b76e36d6f000f9d8bdf2358e1ef7a77c6784d72914ba7224092a35df40a27d005abb7fa02e7b1f013840d3fe6eeb6217f487a1fdca0495c8d84a4ff960b1ac39bae351ad5f592512d8655cc96f36327f5c13d4190ca5f9b62a13b2f56831e3cef5480d1d846cc792a4705047a2976d2890a619f24537350a276837735174ad15ee64d0560f29a3bf023e9e5c1d6172c285229d95943e5f519821ab0dee73cb5dcc9ef0416b2194783fa4807209b6c329b565eb5c4ac7bc916b3a712f6078863a7b2f09f17450561d0b2b87e52519842d9df8bb9270d92c75329191d29f0ea5b929165275fb33370ffa53cdc9414b229c3dca72473ebbc0ada4384b02f84e771fca1c31f543b7dfbc0473a286c47953ec9bfc6ce7a5032a7a1b5891308a73b57495ec36cd87ed80f4051724f127bdb4a040c16a5cc77ce841159c13bdc8be2a508532fa76729cedb73e028d3b78e7ad35b945a87a79d66173b436b45dfab166cbdad3822da5966af5d2b23a45d8a26f0217b0773ac8284d293e708d72bb93ee7e953237cb34e63f574a7bab95fddf26f7702b6ec771461ca09dc7e8b17c46a9b7ff817d2929c754d3122bf792b194bf8b5c0476be67df4c2fdfa2c902006f7fd4222b835e007260c3f946845251cad08378d5570c5073cb4db78fedcedeea69e04e41dc9129b67915b5d1fbb84efc8b65e6c38cbe0914d223fa13648f0397680a9606edc48a640f945da4bd7cafc6c9a2cbcb6bc01ef8ec4f240e20d92d661b9251804fd8fa89935bed5657048ee48d7cd01c04ef52dd0ed0d1a524b971c7f71c991ba74bc7796353c5b8bf08977e9c9aa28636261d3bdf7244cc2fc2b55c542dcf6194b131a8b6e62ad958598cc9fa2973f5dfe92945acd0e34c04c83601c5a115bdba95ed549e49c49ffa1dc3f4741676fe2616d5bdaa8eb86db5e6042081b8d24c0a9fa205604d1ef58779a668839c667c3e92b2986d9af21f961e815ace0f32cabf0c6fd0b4262a7bd07d32552902003c2f59086dbf1e62c0ad7fe67ea981a47ccc486476b78fbad5c0f77990a6be84b87a4c52b8472eff67d499bfce27865a3e982e044e8b5e088323b920c516ba38e8a82cbdf0a58362ccd8a869954afdcc904fd1c9fd05012f4474abe1f05797e51813c4ae67ec414ab051be9b0e3fde35c12f01a006e64caf1588250a33d22b58dc7dc839fca4531ae4fcfcda9c444f141d838b691e60bbedb70bb4fdeafa61e2045438aa9dc9e156d6cdd30350b316ad363f35785a0d76b0c71ac3ae26adc4d9b19400009e5a5f2ab40d09c5bbdc2a863977bc172a8492a666715d2861b1da156cc6886dd47cd1e3192f50241ec163ea4e14c102212679dd73fa8308910e4b7352815ad88f494f73533717f8d5d2f669128651e991ecba4a54bc760087fe7b5656627a5b59ba2ff12cdf326c29427256165dfcf1f83d89454b66a6569c9fff21887930c4865aff1753cd127f5c8b62487801b43336169a0b6300ec62b1bdaabe7385ee189da822c2438c31861741aa9985f7853c980b823be57f12137c4ca31a8d8dba0c8351fd76ce1d86a81d4dd9ea6f64238cb6fa745a6342b46b266d0da6acad048b83af91d8244ed76053217e9d11c57c171c63ed4f4fb1ecfe3c193fd89b2417332037cf317b28f3ff1493805ac2083fc7c1bef1e723906477edcc8ba8b1f75fd7b3bb31f2382ff728dd5a138b3b82d4f7585e8e521db7cd1495caca137fbdabfee4b5e62ab93908523b72aedf8c60a8f96594a1a4813cf9259fd1b39c8b610962e8f568129b19134a1acad1ca20a2cf922a394755794e5190b3620fc621f37673936b6682a26971ae56130504d1b3e67960d107c2773fa65035eb809b2bd1a7d23eeece7928289873a593a6060b2ee7dbc3e16ea93387ecf2107262281fc52cd6782e1e981bff475fca40a0900462f5da6d39d3b12fbabf16db9fc2fefade060a883b4ea7905b118f1e9c072600a9a909ff3cebe0d2b93cf43e3c17b3522436adbd466310e3b660f36608028ea1a725f2997c3e23119f0bd4bc7a9f5f6b642530988e2c5f65b3b1cdfa93045352f75990ad1ea5c9a3214095b8b0c22068c3ecbcb59ba9c8a1eef9363a71ab45b6e73cd58fe9cc08d27d0d27d84ef19686ce44aa96397ea12aabd6995497f2f72f4a5725e8f52a77c91a2911b237af676b2bac0830d502e3fab38a365f458e407579f8d9e953d89286731deccbcd77bc7e34b21b4e2bcaad661b64a0bb617fbb330f97be5e2d973a4d04bde5e8521dc2581491d7c670e8c19bb7b340ceefc446c5f95f93812ea532b13e5b3fa8721e2b3e3242697c5ee305b27e1acf04163987f4e3b98ea83f0fa32ec66fcf73122eaaac0100ae2fcbf5044c2493e02c6e3d62d1208fd8bfd9f1985277ce7ebec0d27af786b8b922bd3c6bc79a48541a9ad784958d840c947f708373fbaccb925d94d8f3224c518b1d778cfd59fce39d5644dc981be0bcec2536b7f9ea444671d6a784b5779470d5773cde938d799acb86d41c56f4c5ec7694ffeb37c0ff167f0f6a455b7817c5b56ef27adc8c545791f11c3c7f699f957f0908bdd31cc07404544462ebf5fa330cd153a0463e004f9dab1ef82123f3247eaa2f2dbe230a2e3be8c529403b455096780f305f4815899467134ddc3db2f86e8b5a1ebce982256d96d76b048ab7e7715ce032613281619926f600214b02e7fd56d6d87e3e7dcf6251effebf8a97766f81834f56d635062203b6178c65d8b980e18b894c5010b52146133af4018db134b21b55c7c6dbfb1e103e5d47cb4dacc13061bf38ec82f6faf64c7d485c51fd2e29e6b6fc89fc9a718622e27eb072ee99c277efec5cacc3e939e6a7c6e34ef555969e09cfcc138cb2bad079e53b88265c1ce2f2002a4ae141346b9e27b075e9bd2a948807eff8524895943949dff6ec0eed0283e339302aaeadf5cc2fa47c5afa933c91508b1cc0cd86a3fd377e0a4d774c07c25218a70c7f54b79c1b0a7d8050110526b6dc277cc832a2e4b3147a48f3e0d4b36463420849cd11001ca157c4b90c3d6cb623a683af4ac7d1f7cf045324f653c01fa1f734d3a7cceee22d9a46b6e1382fe26c82a54153d3ec4bcbfad669ce3433a3ff43ba559322de3fe0ac58efbb365d0d5b4e042c4e921feae25bae2bb92ebddfc1bd57086c704ecc1fe700aab722870fd7789900828199f24e53acf4b73ef2df5a84dd00fc493ea891cb7a09ae126314c7d5af7cda804f70f83a145dbc9acaa079a0b1618999b5466913b42157354c7c2f1a661f9b2c766dbafd1fc5c8e5227a878b4dd88b383a4a5661d1d9abfbc04c5f3a31105e990a1801a479df7db039175bc4bf6b23215b71a16ca79eb176e1300aea585599b14bf67812c30bdf7833ff218d289b2af129934a3541e5193ff50972d8775a24613b2bc0861281572b9aadc2ac3fccfdf8baab395a5d7d5fbfe60f02a5fdc6771021cb4b2a6e484a9ed83a3954cc095279a6f8d4faeeb34b64c381fdf2aea4a1ae0840f3275407b7a0bd94b0162d12b5048b258ea59b450d0b3de6237522d627ae40bed30c359abdfbff465a39d4b590328a8838b53e214bff2bdc6c4444dd52e6dcc87de1f57e0a36b5d3467ec685cbf2c76e3a2767fadcfe067b3d57d3f19a3f33c69e546c0f76ffdc9bc0f31dd260daec78eb64d7ab13046e43b978e467316f60a49884e88b60ead357eb3f88f889b2a607b2b2056abb0aa39f10b25e66e0cac28db971a9f5947fde1faa56c602536d27b8b1f79cc5419f0cf4eeb17cedba6b7cad05e764b9bcc8a6040e862f95b463a3f01c59fb7da9cab43f6a604f2d576bf603c5b3c129ae24b637cf4b2b2d8d6ad37c7bb4b42336d9c84c16783a2c8d045a4b4764ddc91f9800c49274b8af13dd753a785c0d8bf98c1a711daf74bdf3c518ec8f44c9678ad457d6fe9be8479d34c9d5079c820ead88a1de80b589c795d16201dc5b090744def395df426095d0261596fa6b41a18022f783e20fdada995ab16d343c159b1d92f08cde56db2aa08c233a4b77acb1c959d97c7aa01818d62e3eff7df5db910d4acea08e35a55ca685bee4bc02dbdbbb5dab121a82cd668a1f8aa4b9373b2eb187f29aceea215fbc6438199a8c176c95eef24c5eb3d3fbba89d6b066b48ab2aeda2441c4a844b5e6f3e7c7a60160b1e9e5d71174f2da2fe513ac30391b105b423010fef13d17eff086a46a9734e81ff35dabd60f14e7a508f4544e96a28a288058c519299c38b852254a319fdd964317435de07a12cfc13eb65fc688e8a87a14d538825a59593638cd3d3ee7c7848206960614d80bc06e5a89216c1f1d907a8df4c2238871c0b7c772e0f200fb82af21485e570269b9354a8c2ebe67d3595577d49ed15877c6b1fee71e4ca59e906c0f674381a6700da43674e48a768a9146d5236cbe10cf580fc04ae24e530f685dab3f39da7a9ce5019728e1a430fcb872c166b184f08579cfedef9e849f1af129b93be52cb620ba58b69f89a7c583c3913d0b55bf3cd6bef3a703c88746a2cd50058191662838dfc9625b81cb0e7a99697ed62332706ed0be0a4059a054f5ccc9ddc3acc796f1f534c16237cb433a99183c114c825a20ee42062d4c70f40677780c5247a43d6d742e7f7b57d7b79d1330d160e47e2db36840295525b0b64a866ebd1698b499b32946ddb1579b9021ca9e326a64f9ba31255479bc67fb64666afefa3a7bf5da90b29d4bf4ec51a995796b0a33272e65341e76b2af1dadb119c49da911ec18a32a04cf92a493e913284a3f7fb4edbc8354e1c787b352cc56b4ec972d318e86f157e622c3850939eadc60c0723a5a313f2d0fb3bff4990876336b9024f827ec5e1d7317645bd34361064fbc40f9781b250cde57451b85c64ba781d5dc3d215e0a129c369ee3b78e501d9e2249bb31b8f6b9974b89cb323c87d2a082749a0b08dadba43c599341849f6e4ccfcea6d629749219a7cb72bb9dd90cee72ca85166df163a28e88a040e94a6e4825f5e39b40267854652934c1598e52c703ab8799387fde020120744661f424f878e65918d3680fcf1187edeb653e1339a7e2d68e9e444304ee6a922b032e19b34a6dd1c9a6371223c7b254609bf0c187462010124c785e3c9cbf658afdf34947518a8a8fe87f7c7e7d571e4e233961a774d120e9e7e63310f5c81c424b064c7454d1b92e35f8c621a99bf967f32946c470621df72273083d8be0faf67714606ed79671cd31c164e22885ec5f5a2615bcf88b7dc858570853f1320e8e74ed635f93383278b4503eab847c466f9ceb8ba2eb982409c0ca2a3460a83cb47b25d5e2c10abca17c69f2f97b89efd59f60043dbccdae0c2beca599adcbfd5806e4b78937b4c49b7b213c5ee4225452a9febb88b35bb8485814008d9229e52dd0cb18594e03e11ead38fbffd7ab8eaa28e5d330038a35d7d2f18df041e25529ec2e0d49a0854bc67f42021634f8b82895eaad19a8fe7ef76210f7f54e675509e90089c7916c2f94cd63fc71677281175a3cc3da1c51688a0eae2ca4e39f78ca05391e32ac88c66b64a772f190bc384ad35f513cdc509295a9ff185947ed53317696bd60c865e8941e2b370ceee68d9559a642beb3a92dc4f6462f43b5c9ab44b7f8dc1a09d29f3b8ba7424c999518515f668714e6cf8de5575cefe682fbe0cff3bdfb9ca559fbef26145fce98afa1dc9c8bada41d5e3f690e8e61999696b8e178d9591684819426246ad0c43c71d4174d50e4072f4fd0e60bf789092e46ad4c3a94da2da4ca38b6c3c78af3cdfba2e67931c28eabbd1b9752afd4b4f4986c286729787a59c8b65e3d766b368cbc32b3587013bb4313b6dae577866f6a4900500eb1610a56d3103b389458f9fc4496ecb6b2afc3f9d109b14ac44fe199bc68e3d20ad9dc84233e53d36621be896ef3817694d5132461d04298433a051f311bc4b0ba2a66b45a320e3e93779c6ee3f5671a3cd3c83f88d557184b4bac7d58eb1bd1e9a51111ca1ab7e0c25fbbf86697176344d33593815fdf77c45ff9c75465d36efd4eb86ffc9fff147406d91477580ffb8c7d61a0ce286b8781f8e394548219cb75232d684f817b6ef9fbc82d21fd5033c4bb86673894b28b17e8b64647efe331072ab43fa50f2193e978ed5a24c3decfbb599479a5a60d1ea41592a163d2670e1f3686a379e3cfa38172c3debacf44e4da69abdaaf5dfb9c1dd2ebb17a199f0f473a5033e3a9c434bcf456f5a4440dc03e4ea4b4242d9f2c1190070351e0cc5c1841b1db4b0b25d61e6ec9f24e054ceb5c0789d9d7c83d47f0278325786bf0d9b0a8bf00ea7d792c8057d0b12cb6153338f1191675e3c0dd4f35cf856289527cdc088378444d2e9948e83652a4e901c67a68455439363708bb83ad92abe8feae644078554b3f1273ef55594722bfae6007e9b68dbdf85446fbf3b633ce1743c737821081cf06daceb673a9b630723d8ad317448e3debec4ff8bcd58fc36f33895adf2f2663229ed7e7652d26ac78d2e01cd2808604397975916dc923442026bcd5b6aeebecdd5bb71182fd7a6fd818764bcc2b6ee9c39b90129fa828a5f137cf11a9d9fe77ec700f0d64c947114eba3b1383bd3605dd928426da574a8c15c58d5228f2ed0a772101c6b5506b8cb7eb7fa641dfcd0c0ac64e69ca12aef38cf4e34484ac528f8c18c60e26eafeedf6df790bc8f1eff83940a7fb7eea48383f2ab3d05ab04c1496ded8fc90ff94622a50e6e6ac85cae5b62e31ba2042862cdb92b6a0ac1bccf5d166ad926a8ec73ca8fab34deee26e5436633bfa38523e69009c771270feabb2df83f9b712a716cfa61ec06f45821438a4d410ee5da4fc56fc7b528061dd9c7b156d8dc2d7f11633d903a32db9942b79a81cd912dc9a96a99ba58a17fc31dfc4af41bc111325f05793708ceb9b7a3fd871f9084abee611482e576facfae6cd64ea7e547ef9902bf238343033994ca95a04cc6280680fdbdae00f903e7cdd3809ba8828a16f95d226d49fc2f6b75412ab241d8704d3f34b7afc10011fec6b8f0d2c2827327029dd0bb20605873e90c617fd1515ef5640823772e1afea19d9dafb690a04025956f057cc42628e3534d718c4035b3ee6f9857955cec7ca81e28842fd3d7050c1b86cdb98311ba3df250d88ffd896877cf7bf688d6626ada13706e936b7e2805203cd9c90348342db7eabf47aaac65f8f65c0e212fbdf665cfe284d8ecff06f7a7b54b261b04c47cd0f02bdaa3409de474355b08525d4f2d74f6b3361c136ebb47a0d33488de52c62d9cfd700558ed958e5f0f7c03f523ef8b6f5b3be2ed00d98ed17d97bbae3b12c937577ab8d17c5577160265ce9cd3594b479cecd996083c5d8472ff9a781ab6828f8f05083084a9864d2c7b284a303c73edcaeefeaabf360ce13642ec92a1cf137d3909f810705ad0e2d0b23b9ecb24b3cb0ecf4efbe18b279d31b3d1918dfc8929b47f3f62d06da11b5e9aff264a8a50b814f9cd6a74127184edc9395fc7a6dbf7158e6f3c8f6f7e6032d19e05da3f4fcece118b5be4303fc98eb9abec1edcb7a44735dafa90681584ecdc8f3c338b7d38f5d8c037e1ca00a46bc111954831731e3e482030603c306fb61aae532fa6a48bd393a1cebc5553ce24083ae7f09f387e0c62fefe8387ce5889e1e301abbed890be7b6c08effc220c4c0e88cdcf254d14459751333057bbdc515c293f1a5bfb6ad017e94fd0d6c572a082c43cb3a4f9c10f053372b3432a754bdab917d13ca649e84299ff0b26117aa0dbb68811c6c258f1e30c39e92969584eb1cf123561b1b9a47fbcfeddfe8aaed66c81526efa0df780a4247925204ca76c9593f50eb1bd8e951897280e5e9edc2262566feb8f0f1e5100ef581255d5e9573864ae8c41d8cfdcb24bd012144d279fed9fda94bb8b51027f122322e0abb5942f2a4d09cca9ad6990249f16a01de92bcc67e6ffb453be8a0eec90f2c0f2363f52f258184e25d42e84390ddc7caabbd8298149943cfc3724738072182e627ddbab669a922f0a0e436bc74dc1dee67274d58eae0e90e4700e95ca085fb6f31364d8d4de550142412a9b9b993f0ba5419a5acb3ed72d6ef2ccda479876fd6fb25a1ad75810bcf1d7ba72386d165fa46e798aa23dff9a59ab3b6e61c3ba7f21604de64c94fe5b7b5a51cfbe8b414cd282e53bb74eabced5c105d0b37b0265c656e9af0f48b716c8838d6a6506661477762ebace206f1f4faf287881db2bb0a9f3f97ffe4cf55972715d57d106067bbc5ae497e2faaae81708136584318f425d0d572894d18f6d6954296b0e146b4bd372238d7209509466b6a7c53c4a6dd61d8a80ea626d9ec76cda79e095f525598082ffb66fdafa5c6d0c7fe63de7eb112ea30a1aa2a22c1633a96d3fc8b45f90d04790b9515f75ae733d13ab2731f4df30f1daed757d38c7c3c246a2449f728050ef4ca083877ba8a615e00d289f59a74a1d95e5073e1846aaa577799e06ad8f19a524f8e3b5a86b9d639caf1ca7c4c4ed066f5e882aa95724b206b8d7d78d29933c49bc778036f974743de3c05f087f3207f5397515a85495c220029af05c11ef603e4ea4b3ca7021a625ff3ab896b80e90dd0f5ef5e4ecf0d516afceccdd30e15b7b2879670211ce947bb36535488afd6f5d4552eeda3ba0459ce3b0bbb479b561b0dee3efb871e03031e2c368bb6686727ff542695d2a9d8da4b9ac9cd50fa9205ee5bab8242daeb60d5e1b38ae5846f07bbc4b3e66ec2977524d5449628683630b2864c651ae5d720ce57cc50c974962597f9f225840540a1c9e7823c4331c5d94f6f1136500c32f69426a88d8792d742c744c80f35c24a59db70eb18edad53b373b1ef4834e01a5b85830f44c60803a8916f5bae001d1c976107cbdcd21d0c1fdda6604f9440e33210ccf1f9bd633dcca08d963d1d76929cca1ed24a36e0abbe93c9e00490a9923c4455df7831137d4b7360aa1f9b957f0e789f937fd19b0352d0b871eba6a0625502f8901e6d5e0d2d64d388e141e825dfe48808caaa877ae5b2251818110a438b87b55ebdaf8d0f7a05cd674f59c4be08aec90c145b2c895020b65d0fb55e56ff36dbc60c9f56f423c7af4499d0a1f71708f9e0da88a33d04619dcfb14cb37298cd3feca9a9eb063b24695d87756d70866bc4a7b79991b9295b437e388b41a285698f14a87868df74d0dbb5be2da33de581b3e977dcd3b21082d47f4156aca5900f1f2ab1d2b7f002a0c6941564a768d79d5b14c6ad23f1edd4fd6cec63886d40986b3bb69279fbb8230704f81bec6cdc473bf66159bdd5e98669e106d0caa0cb2e3bfa2f94e19a83333c55dc5ccabbeaa93d44e9b96fce7e2aca00497a9f1adbcb533cefb602b62ee15999c7e79c3adae3541730d957e3277a63eea13fd1691c56dc7c7d5c7b107c8db529e26895c09e92b16a2913f22d5f18095494605e50a452c9580d0103bb89196e1e1c97f99a5214dd9d5f7d185aece07cdea2a60b44214f2912fbd1ea9f886ed9d8e1f3f10a115363f5fc94fc2b83a5efbfcc1ac9f2dd6fc010dd633df8c2d5cd7be01cd8c3a020c819647528f6b16f282c1a5f83b793cb255c24eacbd6f2da326ddae1fe6fee6c3b9758191a2420a27fdc38fd8c260d7f80244d92219be8b242da8b90422957e1de5db76819b41c936c8f283c238698a2153b9fe4078081604a309f284c03c3aa7640bf1480b77c7add84f74eb2524a8b13967e4c010fee1184a3b16956828f7c0e78e984c8d2c9ccf2018fee64b70f026ad14b2ae1aa4870dcaa67ed6f1d4a16732252565fbfc05d00ce8fb03b19915a0aa8d41073037cdb108091bfa9c13ad65fbdb02f61cc1fe4e7ba3ead608ee4939d7e5410f5a279cc99a45f265e50be22e7ade0eb245ac5b8f9158146ac6110ed99d904310363c0d74159a78cbf1d71b4ebbcf95cb05f1eeb8934e92158915d97a4e33d7f74f5320a1f2737c02b71290b7894f829fce5e40451f1d2a7ad4f7a7057eb264b945c3e9ae1583bf6530ac2976046f78839882e178129909915846ceed5e2f67d146f5027107cb2472697b464e4c6f5d722fccaea303ca5904e4854a717dfc426105a9e01d7e5f197893d8447ef6c3256be85f26d608f1579b86cfe1e729be8a0771e3b34852c3a176915f8e437741280e07e44b9620dc05893f146c4b6f6eaf5490c7e4bafaa5bd340ab2512b37f9acf29d31546eba2cbf5c78f4b482d70065d114eb91135006b0859814b5cbd1077e331860f3055bf232e512f6eb9cdb037fa325e40bc14908523228a7bc1ea10954e102d1d9cfcd90412a571270c6101de3ec48dbe420b01a6a9afaf15e4a34b4a927972ab9eabea98138d27a9fb99d0eb8dc27eddda7ebe8874244d124397f10d053592363b2defa3ddb4d8506ccb30a705bca83bd21578a0f7feb51c418c15c1a7c6df2857126840a3d73eeab99c56fa9032d7b240a9a01a7f98ab7d045531872bc63e09ba95daabfadbc8c19bff1c54a244abee4cf8eef39ad6e8d57973a12eaa82aaf974555023955e198788b682183a711753fd9ddd1c280298a803852329d340af854b49d6cf652487ffc3ed29a11a9fe332cf502caea9f3ddb5a0af5d148f97efc0f7f6fdc209ad9d8880c4d6cd4be92b568e605e2de4484a25931a57d25b2da1b563665b0383a6996abe26f5245015dfd026bc3be1ec236880d2f3fd31e35e0d2332c107a99853effad2031384ad0141296b864d361f08347dd2a29e278e25118c30da210a6e0ec48ec1c06360abcd69ce08666433aac59f986890709516eb9f958c1248f722f1733dd0c03b9768f5c4de244a13fea7080d81da5a09a459d53cb5e63322088f560c73020294ceaa1f913e5b52306ff10cd7505f64e7aaec7b832f9cdfd8f76955d05263168d6509e563fe19e657b71f2cc9989d69eaa836e7a066e22497117390b6e94936e7f4556aa21193cc68136e77a43af034d54c102fd6788da810ad69b6ea3001c38a5f64420955be4305916d539d137c92d08d2c0dfa2e9c8af8bae8d448e07d54007394ad29e525aa15e3bc17dc766060e9d3cb3df53ae3de89617731e5100c58f517bff7e5c4764c44463609fe778cf58eb07b9745c6711fffa860b487af1e59bd126967f4d30f4d807545a1940503211427e5587c5089781c38241128bfaa48ce535deb631509697dae57f9a2d397b23485eb49c0dd422fa52092c0776bb87a41d8107610466d9332c6975d21166fd588cb9df34a753bade3bbe39056eb139d551a72c030c39ffc5a4d687e7d0bca8312a6bc60e7efe1ec239763085d33489dec110600c9c02821f5c44d741757ea02b6f4d68e7a16401b3670761756784d4f0dc574f639d061e8c4e23acec42b16a5bbe33ef678105945f241179fbf8195a96068e7a2adb6bcb0d0e5702e4c4607074f9459556a2277d0af6018214bcc5f96b50fdac7ab939e64e3fa658eecb74e9d00550b3a6ebc024ecaa6bb87617c7fad7dee426a895709580db1631ed48077ad436a429ab7d8bcf425b173529b20fda44f283169f3898dbc217ecfd9aafaf1bdf066e22a09aa76aaa52be09d49443eea6531454f69603eee35534f550613121fc414920a3e9aa012b32d576decd19ca01cbfa489be24a2b926413c00f455aa6eddec2dc4c3984a87bca68d54bb45983578484c429aebd8ff112d150f75c80ddf4220e1a21bb96f3bb1da302021b00ad69d16e035f99a73cbdb94e388fd928299593027d05b21a70688ee82643c880b5357e55effab40b5fdab63c47df67b6fcb6f1738baac489483b9844ce9604e6a709313587ed2b838396ad606413c32cecc3401a1cfcd85b03bc169b5c292feea29e463872e66a434944a70939da067ac553c930bb38fed4794a250d6860e53ae37ff4cf881b4afd7e93cff8c5f66bbc5e77fc575a85781c311619f1578c2d66ffd3fda1291db28775778b05d3ac6748068d94a5c239fad9a4f874ba1acd0c7831b221c34be4ee6898ff934a2066e0dd7668b89990b741886bca1c6973310cabe0bc928b43c557da931fef5a48ffe8bf8afb823fb84f9bfcdc3c0fab1f88b69b18f7cac7bc58bc813448b595bac8aaea9a4e90fd0c3e468cc8dfa5680af016de138240a8b2561be6640e616172c1ce5b0388a41f1befc5c02ebe7eb8c5f64f8eafed00b15bd9a9790e21a9b5d33301cd7a46ae1065ea179514e2498f4425b7fb3aa30230f78cd452e0e777d97013757479b3f160c19448e3cf4d4444989c08718d91d3a5943e739d2ab10048abc141b573d205d53dcea0a44761a32cf38223cc47a0f13df83a67aed543bb8cccaa2a8012909728d6aadfeb912a05367d844ce1102a539559f1e0b5502150bad7a2b07a0b35ac894643b66a7e213bdb8c49ca92be32183733838a19db6fc09322ff2dea7ce5893ff9455ca9c10a41e6b13d575cda5e91ecf5a2eacc74a13233211ab237b22ab5eba1b512e88e4885184af4de9538b0837b67411abf518c1f9ac4efe8e92a2df362d9c994eea2179f43aea986b04b7aa20afa743d3263e324bdb4607eb8c3de361ad9e2a2f05c73418d013fb87b6d9a31c7daafd063091d4e2a69dd92ced528ca73dec16faddb4f9fb41d0f22f499de9a7cc31ca1b6d3adc9e7c15f65e9147132adfc9022e2c290edae9c3aacd8d6f165ce9960a71e40cbf84aa3ad85b2ce993cef49ea91c903c3cc456e4872693d7e75f1f3e71d6d65eb9e5bb5f6c584c508c357bc057b9aac85090f731a00d7a33bf67aa1085c2f52449938526923eb897634317d16eb7f0329bd465df3ee63d982546543823d9b980b323d4d59ed72d0fdf383d64e4f8529a73f463f361f61a90410c252dfac193c77d46ee07dac6ca86ae5bf258c34c16cfb03ce0423b897c9f63bac60f0e4ff145f2285dd20254aaefde2eebaea97d744d30108f38b2e19ccb7c807e3d37f350a6a2eaac63c60582d5643b086f46b0e02c5324ee3fe2fc40d9a48edd049f88ddf1e02117384b0c47249868739ee01109977fcdc2d199243a9d92758b6448674c9543704972ab7b2644b7e4df19d1d6efe29d5b6510da5197832717ccc784cbf7b12527ba9970565ad5609daea40889b5e19a866b9a5b5fb065e326a3c67b8c6f4827fc3cfc1d68a53c1848f96d84a6ee43e7ea83ba060c75e26e3ab709a822fa76abcdc934a5ef7fc0c6fac5cbdd8f9e3ffa9594637bcda9af116a56945cfebf1b5877a7e5f2193f2e3754e5f2bbc631c8cba26e788d72fcc53a813ee13a2e9ba79ab66c885f4cc1dd9b343d005c7c11bb58e6a8b6c1951addfcbe0a71b955c5d3201f89523e3f6971060682be1270aa5c21ac733cd2df33688c2669a3a6f3dd395c1f489154e871dff094a031c31d0163ac8277092f1a9226c55f79f69ff802830615808c5835e528b6785a17683c2d940218110b7b113167a527f71198adf5ff9a715ff37796bfa1160cd73a8e8c56b030267c3c0d488051ce5012565aea8501d5ee0913d3580ad5b7f52aafd8f60cf8c86fbf236e78b8e006541600ff9bbd353cd3f79affd0f6de9f4018c37afa15215dcc6b7cdde76ec2b7704359789b86a39546497f8555448ebb0489c6c06b09f50a458031ce8850f4705d7bce07d4c49b6bb67f9d60097bbd5a9f868885825726ec4005e066ed2ed06288a341c5b91e1c8e4a4f248276c51bb27bafcabc389221a3c130fc010ac930e3e7de5f1d10eeac91697a634ff8720c5a6b6dc5ebf813c2d5af255badc7f97cee5a014a4f0013b94b4de99420f66c5bce8e6e3eab9c5ddaab37a053ac6636b2a299de66ee7fa3bb56a76f64c2ed2844efcd22a129bbc571533521e0f6b086fabfb556c96207b1649355f277f44de1af80e03fffa84753727cb16a2db4fc60f52c2b422e67989e03a426dffded201f9faae68dddfd7fdd42dd6d5fc8c6fe139e73809f388d14c11a71ae2854d386de6979917e37122bcb72ae81972e3f6da8a54377a43cb6e343fda42a382e4400d8e05cdb503263270b2e2c063cdde3716429eecc949c9aea8bbd2d77873cd188b861a950c38e844920a91ad3fb19b0ec5aeae88a807446d1927fbe12d53c7e81529f16e89606998a5a163b4b2b9a5286b08d4ee74b149899f4774f332486446b1136416b6469dc8697fed93861dcad9280f85cb5a291c585a97d9beafa9790713a242a6f867a1a4c240941ba228157c38b8df665b98dd44ea619a25a90f0c1c4c3e4b4dc194836789a57453e702f1aaa1aee2098fd2421abdc6c25fadc71adc4cc3a270957f1a5a7d29bb890459a770bbee2863918e1db24561a2de9bee91cfb00b3b15ec598f13346f7f5f65e0c1e01d73bf536e36f854063a08555a4e54ce66f7fe0940b8d37427a84595cd57778ec10cde0bc34d479f318313bef6dd66c93a39929795e89a8214e24c58e63671d393722dc07a2bf606a9627236d7bad210900066547d04c0bfa46ca1d8b66575eef102f24c59bc6bb1fcdac542114880382b5aa4f9202ae39ca320ccbd9eaecbc162c071503862a5e42c5fba99d9db22177cf6b07bcfcbea0b6bc2a3cfb58396ee8c29db3b1ad07ef6b98fa41685249797a2a2591fe288bc1a7cc2162e492b9e0d124a923b33dcf6ba79c8affbf6a0081e15aaa5704ba77b338cc90308b94072e474d082f7c9517a2c779070a71e929a13fce2ba310fb549df52a742183e945ad659274c544a3f7b60d23ea4eb97ee3b6b0b13f26b84cbd3feabbbab2a98924636695dc78c82354a01fef69fa3c337391f366547429d0746a80c6bae4e2eefe8ae0de80fe96e9bfab4e4843000bcd3d765492818505031b83aee46bbbe575fb11dcd0cdb0f48dd2f72daf8099b1206e9e670b8436c8cda505760814c1185c441bb4d8f90d4b2d23f7780940be62c058b5933a30c6c0c6cbfcb142c7837eec6a7dc90aa237291167f34977f3b028bbe35c6cadcd5a9aabb98a3525b313b2adc5440592fa74d4698e87a0288a702a5ebea8dceb9d7974532d653adaaf84f3a2222d2b9dabae68791b2238ed4247002a01a121d847908b9b56571f4bfa7244f2762cfcb31ef488d25a88ae78a740186ee2c49423006f7110adbd76f04b7794814de6289ed3f79f8c9551fa9454a92a3c888246a20ec9d5553f096525beb7fd5c963614464f8db08fd06831bdc096bea5a4bf6887bfb8de8edf404f18085511f820ac65415a32b6592e8c9fda275ebe75755389d4e6381149f67dd9b2affb339c7b096ce98f8295df92d22c1e201c1cd8f48c9c85dba8c9abb36c3513b7570a962ac44f2db2c09c6bbb211430212f86a184abd743374c44eeccd0c0702998f5f329881588d153949b96b4e92f74ba2b2922625ba9b6cd3556f2fdf385abf59fe774b370c41b435fe04a9cf13e982591e63c5cae5f4db7f340b05ea0d9dc26991cded965780fc02b21043cc68e249a74459eb507a3e0f92cf97bf07e81e8e90296dc40bd62e59c336453cb4e2e9689c2616d7e69f42169325b43c50e381d7e4de5106145143ccc0c9fa5d5050f45249a9d3d3b8b04b33ecf89f483c3dfc52c04cc2e6de58e75ea891019bb8ffcf0e36143436494211394b13519e283cdc4baa99aa7c67fc4c1b62ac6c22ea180f402eca53de7a6b1d5eb6239cf327874a5f6a4dee981a41f84911c2f48b835ed30feaa7062a4398448a8d08b1ed2284df1323d314beb13809d00cbde8a331607341cf6199af04204009364cbeabaec1196c2a639b9011155272f00e1064faf0aede25da9a9133395b658ade384f2a7aa147f1f341ff683bf576b95416e113805849c10447acabea48b06978f2f19da6101471b9005b1ece599a7b3a9fe4e28bc8bd84e318bc5793bf69333babfdffc3c177a8077514c25e460f8a3340834ff9cd3eaef48bf2a4116ae551300e08b3292c17ff4503296f400df1930de1ec2596f9469f6fd22107692658a2dd364754435883d388f3b92701396e8922c7a4b59c38fb03477fc0508f76dd158038d8df1d53ba2945f61f63042a9e7f8f718f85956ff5e016873894fe446af53ad00d38c69192057090fad5186f3bc90715942f9e7ded6fb9a6291b8f4a80c5dd2dedcebb95c2b5e10d656459c29b12bccd77b6c3930c0e06071053dd8d2b35c1a3054a573e3bcb56c45c2774cb9346e289046273156866e556741af74bfd59b82a3769f4d93d143695079c035ab5890a6721bd25c89d8592cc998d4d472860dfb8f96ee232fea84fb4c36a5838753aebfd2c5904bb529527831cc4ff0ba3f2734d4980320288e58a6f9676c3a21fea8485de3987ac32f169e84985b96985b491f54752a48c1c4dd392baeff02375896c08a6a18ce7567986513265505049ab7e381bd58108d9a5f02bb629ea00b03c2ccd5216cd0778e33dbfb9916f9e7a0214a96104cc6e5a251380e0f607a73c63d045823a6313b29ef729c85213afd77bbe0daa4f8f282705cc317f186e25709026dd161644189fed39fb97299f7a709e659aec2470bb71d7aa2057da2055c5c9e4c891ef75c709950510a5c0e7617a767e7b949260a32c7228be3d981ab22f0792ee971d78b59c8ad083c3617ddaf853494242ae3cd5e0f89915c5ff633af1ca4412dc66dc49f1f93782362bc2d353bc7de6feadd529299e6eb6d1e66797fd93470075d2893f7759be0ba3ab2ab454509160f2385254d8fd8224d592e8347473dd29ccae11d5365f996c38b63437184cb3ab903a5a5c01fcc40fc06d631ab26485ed77397bdb3ce2b725c15ccb6a2bcce67ebcb05f5a2f87ad2064f104fed5e6af99f1570a88754c204a30c239b9e145c0210515aab1dd177caaa158fab4e77e34837401266c7dd31dd819a557113996d35457e7ea94ce3ca994068a534c3214ee78dd64a080414b93b225a516315ba6679cbd105a653699e0f0e10ba2bb6ae60df2e900362fce954f013df1e70e7cd5c2abbdb194d8a27fbd1cf078ae9d1933d8e097989b61c0ec552222bcc10a389ef6ebec1a80da0e094812dfd3ad722eb534f2a71239b817ca086f93827a0a68ab1f132bde3ede1dfa6dafcd33d8778f4cf933babf804b4ec797d3373480fb2d1202f459d0d01fe6fe064b02001189b8f9b477b2f47bd595f1469203bedb040412f5a4d439958b96361848eaf734ac6c4eea5aa59eab58297a78fa267a225fe235b19f423988a0e8fc6fd55ff56f6de3c70df605831f8109b34b4c1bdbeb22ba3579e6bc87827144c463fc5c261c602c5e53313b00528f637ea842e7c2d8e6a5045da574f15b9dbf8dc00125e326665d2746117b861d5a67999c1cad308e9a6a07ad0d6ea11253374890dbf6f118ce9f8728bdf1d171631363a0c6f6704c3ce6adc49785e8b8cd3a49947664384888773c6fab05de521d9837f9593d1a7d0966ac66ada85150312f3063afd5caf455e9fd659214de0eafb3c7c17351e59fecec083ed0ecd09b797cce2c8d2f288e03e7e0c4eb89426ec3c8057d04b4d375aaf715703e3b825650022d3d2046fdb459e39e3902d2de8a8b132116f6ed4c46e15e5141ea25a79317fe99ed574f1177d1b9788eadde9bc95d27a5624c71c6258e1674824f2dea53fd39acae752cbf88a34870db03beb4a66764266495500981f81a8efd1f5016ca4e6b344992e04f415579c26a7312a3df901ba054f92523222403dc247f8958a8a6b35228d1dd67d36358c7c71a9f2895c44d584e6f4572a951f1c0a0b8300eda4ac246bdeef301b1d2ab18ce1a86309a42bcad29679466169d4230cf8e5ba29488f0bf7a19a354478858819dbc3f15b8c9c93a22f4ccc2a1d069100e9e6d350c576755917f9bb16c4c7342ba1f2e220243c719fcce98aa744118b9b13856a0ae05175de5ac5cdd8ed34fb9fb336d37cf5e766b15a9796efd25f98255f7a37057a9c1f97aa312a4bf5a5c84c9eda34f069eeb951d1d4f60c6ee02624356b02b5cd880c7690dbc3cb752da8ad5b83c77d62d676ef918928c6574503928e832961d2d4da7b83ea404841f64d262dbc25213eaaeb639f029d38b57ae4a73f961e83a309aaf3d10b7c0077be8ed20a203995c8472d779f7f39433f33e134c4b1e7740504a1bfe6a50519c074e5e60cc6c26acb2b9174d8f7d5c0a581f7860e849d6f61ae67b53b0d9dfd9bc8efa07020d56e3b8d33cf9cf4bd922f3485e31ad5edd9d2c5ab0a8bbdbb93e6f1f0c71a105a613c6172d6d6da337b610fcf8f49d69ae61f5d9cd1119a0b3d028f4cbdb9888afb740e727aa6c1eac7b5137f69c102f982b7917185f5ffeaa94f3c0f1de9c377466d2b982043008bccaeb11f0f5dd373950e90e3a61e06eb7bdd7266eef8ab8441f1a0128893f1332dce2e9f98e496068cf695ae681a9e54b8794f24643ad9e9d8b1ee4dbe2d08f3f83a85d5df9555c53ac71a146cd569a10a8f1e3e2df436302c9e1d7d23b1314f9420b7f8583dc5530a76a6598d410200d777ec4f556027bb24af20187facb4c07310e6257b61f96c76f42948c0381bd41c31e515b555c83c5c1f025b24822832a6f07ddbb842a95ddc6fdcacfc2e6933299701f2f27ecc3a534940c426fce2862f416a7e08b29b87994cbad83a856d6819965b6c13413793f7a52a969e823b1133c29bd7fcff06e079f6c320808f56712df885ad99b32bf47aa5e458fd25501ceec41b926d86797176e0035efb9ff081eabb6f03384ce963795cf15672ef8c6282b189beaf8e2dd9c34d346e31a93d800d1cae61102003b66f3fd01e5f291295908b26515e9681c830be96b23949a9864db383dd84dcd81982664005dc913ad8a27f81a2b234ac85d417308e0a50f763ee659e3098d95a8c921335a04ca9ee4667c36fed6c22a9690de825edd512fb1b23fb5039dee72c63a774634b048f266aba5239d34c26cb62cf556aba751ede624090007afcbb4dc4a1dc96a5fa1df8c58153cbd719e85471429f3d68e81a3d24bf4f9999ba19832c44eca512903bd34c562a50e13becf82cb13c4d6bddf1a9000f1621e1a220edeb8865f838628a1ae7fe89c4bfe339273dc70262bd518a32c738eee9be325c4da348a30a8230f31af3ba07009fc36d9de01fde9f5a3cab6302519079459b79c0cd30ef40a0d0b580c15cfe2e97573bc469240253c44ad7df6aba4bf6a911c5e3340a30aa0533f4cc1534caea1ebe9e03bc3aa5277fad330a6e3807cdc7afd0a1774faa066877e9faa7c8a7f49020415dd343a47296f4cb75b0d1404f9be4e62b8b13cd8444113f78a564bf16adabd14a3c6aa7e214fcc4c18882373bc9742af83738452b57fc31d0306f27d61a1855149840a28a8ce8504b80bfa87b150b86f697f4d0d426017aedda96e76fdec2ad901e30c9b7923376a6d6c7cbefeb58cd909aab8df7780925a32ecc4612e755de881537566e40c8fb1efdc774b7d8c6b1748412ba2ed784d840280cee628300c9c45df7b6b9b22f0c9b1ccc89520eb56c986da726a312dd2a53b9faa929e73f6d1ee714fe358acd61198d8233dee44b4165bf77cefbbefa0655454dd566ac37e6d638e4b1596c2c0ead5fce73dd54dc3775bb365275b0d94b032405b6334c9aabceeb685210835a2e49d5290c467cd0b4dbf5a34f1c842d1a38247a578aa921d7302ca43027fb551ee7e5d8ddfd1e2ccd82d441cfeb1a1682af0535ab79879770973d3371e78589fd91baeb2d901f9d7ac1135c42be13e482dbfc99fa590d6e02adf43d54f9d65896aa331177a50b1c11f1435ecb9458ed8ef93163f34c49e8f8d53bb51c5627bdfa466139b3b3901c9872477acab5947105f040ebd8b3a9d28d7a8fe1309fb7f167e90d084770fe4de946d69ee888b58e5416bc47a44d82cb422082414eaa443043ea2f17f9c7ceebb616fcbd1ae46f45b5eea8331d5e8c1b2ca03ab8ea73967d41d978099f84189edb49996357b2b98db304fcc93596631e8e6def0b1df2f5850ccac96c6a531bea9597e09bf8794d7bf49726103375083b8f0e70b4a673ad89f6f8ba6cff91b932914bda29044e2c72ec7686506c815f6c009f9ff9f84f91598f741455bf23f848de55e10dd422186b7771f044ab06af597e73f0614fae75632c8157e4f093828c3d1e255cd953194885172e1177ff25ff6cb9ef703913b3ceb53b356eb0f4259c5cfd2a637365f9384c0c7c0dd46d50e68f3eb7b52d35a7a84a9915ced13d5496e930482215b3c82fb3120a6142afa6ee40617b29005233218e4191291e6aa5e99d192a1033c75865e61b7e6c0547fea5878800de55e03cd7afe9f882973451b5a2945031b38fc1ed470d6f04fe301531936921fc6f012b3581c6cd1bac22b8b9f04b8d7ed97edf5c2ea7eb7ba10e09c458ce4a12e8886cdd296446a7837bdad88deb899beaedcf7a23f2f27ed766e0aa5887feb237c9f2264db2cd4cd0e7de26ca433fddfec3760895dcf8bcc8c002e2cbb052632595b1a9b25b837acdb88f8ade8280a0bf78fa93293f6763e898bb3ebc796fd9700f23dbc390b8875640daed8eda6ff00808465d2b521a68c20ebb27c929138b58f3c4ba704474273f3751feb118047da9508a4abbbae4a358b195dd9a38118cd2f9968e4d7bf2aa57eaab7dc0f389e1baa5b9ecbdba07bd18ff435346e8ccbc92e09eaffbb41f14c7c94122ce0e1f3b4c0f0a94b4babde1b405a09623fac048386165662fa81ff8a40193078e023a0f59d47874f458b352690dedc8d8c3fa743c1877d7e481c931fdf5c1ae440b2182466d42daed6589bd78624da79b209bbe7cf4e7ff95982664a7d7138fc9556fdd60eb6b6e75b95367e91e48a3eb7858497a49cac1830cf64c9c0a7236fa47956613373b8b41991b27cd4d4c8b4661fd9da807b700641e2ae7b2c1ecf9408b5585d443bca00d7d5c309ee027c3991ee5b865ef4ece061e6b5def0634361112483a007e3ea9155989ad7ab68e0c72b5846875ccaea6c4b292cccd621f207bcb5ae51a44d3addb3b842a49649adf2b07defb19e9fcbcc7e72ed632782825393a495c3632d35a69f827cf0f844653a6e60d4124f1e35782d60103ec35ecdbd8ae295173635aa47fcabf690811f2953afcbed3946e0f3ee40183f5e9b1af84e176e208d992c57a665e8b493bbde3f5f9c6b4bba8e2b13221755e6c9e5dd6191aedb061fd31398f4e6a41e9aa3cc0797407445b6b3ffe811a81f01428066bf050f9a32937211c2877138a695a3917098a66d8ad272fb09dbd83cc2d36fe9de846381dc554b29a058aad81dbb802d62408396cd6522883c9e97c39f9cde23c2ea0b6562511042156dffe395b3b12d22f16d714fec9c5b9d7ae54b1ff5ba74189fce3db0ec191e5ba9b1834fa2f2e4347b21c74827d3c97f5f69e6422bbf8443e99250bb0f2075d5cdafdec79134b46abc04e4674e310e687ed58b37d1b92047f1e3a9987f90bc40e55c94dd6f34a5ab76fced865cb5f7217b594b51bf3d1e36a7a720d9ba0a999863cbd39a0a961e36af2ba8b896d278e4d3e48b57662b8679feb9d43fd7c871f9d32ad0328f233ab81d3df5520cffe8f00527cb1cbb67bbb589d69eaa49ad7dea4987ef477b4be5c1c63144038d6924c5020e9dd3cf40a2b2277de05937d3720cea30fca1efbb207f9007fe9baa611a5d2e6a51ec49129ac16029a6e49b157759be9b134ca6c3aa03b450502cc2266f9cf7ff190f5d04a51b185594e9160502f66568957b14d077fc64990d077a8c6ae8fec4101925bf6d72dbe70a791affde7f2bf8c4ccf532ae02296b2adb166a3acb42cb973e9104b1a79cecfca35d29bf61586999fedd76764f96fab87a2e371e2a9f4d59e0d2d289eb14f4ee1e31820fd67f307d27e2dad8e1a92b95f478e2cc01e15b76bd433a00738a00b66836d795d0a5072d8482bd647178c2dcc5f759ebc93a5907aaa499ca14fd4d6aad3faf7c07bd8ec9adf2e2a5b694cb275ac7dbccdf643029d35e401d94eeaba4f12f8988e7c0ac175ef24d7fa2b97d09a7db15ef34ffbd55bc7fc3fc15f24fecef1d2d87903fadaba57603837646bc88c9183a5ad7da34f6e9f2ee490d0a91df3df31fbf241a07b2d154ae68cd9987931431f388101cc9c45fe6abb20f4d1905c9c886db1b8566f87fc3363557e083b8108205278dc832583072d0d6f92ba69fd1e3906315cf0fbf544d8b85068792e0b414a489e7b90767e7457b31ee90b3b9ece7a6731c922f696e24f812359b4d471541fc586b4e53dc016262cf53b0c055b0782ba348931f200b189a5d6d67764e720677fc5d1705a8a2add465df5644e23f1a14c02670d50bb6d8c9255d49eacb8b9089673af88504c7920b7e4563bf73ba6625525d359f7c4820dc6efe94318c175cc0dade7948c2e4c1caebdb97ec7b8a9c5516d580af40ca1265ada1de3c1f44de126150fbebd8b2eea933d5f8e3308ae32ee6c208ac8f72a34a7ac3cbc60d78b3f615001b93a7080db1e5fd198546aabc66dfb879f36de6e262ae3c1f74102c84210873dffd222d9935141d3569c7146ffdab3c37d748db1cf9c5f50506da538154fe75206a795391d5ca5e1035e8586fc127594b63fc508f994e3ba428bff4fc600215d48a2f50e60f77143b6e061dcd2e9e30bfe03bb05480e979c0621e8aa2648ea902ffa2105a9952faa78519678a73be460f257972f3ffa8981d13c484fc38c7cd836a52ba926ae8e62c79507f290bb24d45966f74de350279f26bb9d3a9ab31480d115d9db887cdf1453b16b3c76b691a488766983cf23c61c35e47a4062ab72f2eba427142cc998152b2ccfee65cddf13e1aaf437c2e41fec863e023980cd5c851700c3717ab1d545b1a811da1fe0057b9f3890d3ec67cc31821a717f03de1b56b39f909f6cf3d283f9a266efcafdbe6e64d0a9489029cf3d7f8894c043a6fb35a4c1248654f272ab7625d476113709f42eaba06eb0050c1475214b19fa3ed0a66da549ce5b86bb261719b9951d9aaac4b8b34a2ce8dfcb847e480e85ef1f6ce7bdce7f3360ab580e33b942253076a7a366906f72a8b037d5b951659c9af42a10bfe379a6174f16daed9df5d8cb41cbc13ee64c066c0ce1f744496fa34606663fbf549c3fa6d167a1edc128b5ae2326329709111caa803d5558eb5ce89dc502d6015b83011047e2eb89e287d5132c8a6e6e7564c191112324c2bcf371b19ee3c3cb047d6b302bc011d49b9283f7c010ec9fcedd17d8ba505244190dfed7cb72e4fcf40ddc2105612c1bac1c9d579d91bf66ec885f2315e3fc967b1850fe4c1c6bc83469c33e6ac596cddccd4aaa082e52e05b66d1dc28e078113994cf4282d25f5ef6fca526ec14fed928a1060599c9258118ec497306b0eb3b699976f6298a2b986fe5ee70c01702f2da68f2ade789a9adbf82c358f39f73cbb750105dabbc34fa037692f75bbc655088447e111d5a1ee95905a144da5de0ca6d76c7c6a8e58b9ccdb580e3ce95cfe4fe2d5f561e6b8b4cf045c884347efbf114dc04ddcc08a8cc34dee7e469591a077870d50974aec23789888c67d1fa606db6e99d3ca828337aaede464118623514a32c439eb65b756ed3056908b8ade798dc1653b73dcee6c0e9da4fa1e52e959665d412b66a6d5813bb6a8b09dfd8996e2d719ed68c897821ada69ac859df33dc80b0ed74bc23593360572e049d9e3daca91bd279036a963b644f27a1afbb211ca75b42517681e1d26ae1c3b983886df15aca86a94084f31ae792b04470aca58dec461b20e5cc2caf8410f04fcf02415881485afafb7264695462ceeda5c0ed12eb3445551812ac25d5605321b2db844a1ff1fd1836d10b18f066e8faadaa4f5961bcc5b112a07af3b74425ed8cc983951839955910c19651d878f86cac3f199190cba1da0c8ae2be8b9e9e6f92e35efef7246464ca6889c70a271d8cc6fbf01e1e1ff491e026f19c614934ad6c25f6d8d4cccd596e6f9baca436fc9b957ac6e8c8cc538c10911b058b90a17a39ef6063c0dfa207a58324ee7f1bf5c9b5ff5220d4bb8a1ca628f3e47fb3c20b9b86f6e7981fc00905d5987e508123bff0f029ada3269c2f4b10eac55a693f93a892e6e71ee0fceff09b15c32cc6318046575998a81e1b539cb027373559053d429f61d0ae8d69c3c18dfd75fc7dfb8402639a1b6605d1bfab326ded02a0920dab9c51fc0f23de848c68a590a1eeff311ee511360a14b4a213050a4b264e1070525ea20460b3d87e4a6e100ecf91a41d6dd4a0e8ced62d1ec35de041dde83c7d661e1aa13fe5ab848de4bc98699747cb72c9c47b1babb1bde6b279c1d1e826451ff7c19b0c70fd7832938075fe6122c64c8308712746a355ea3d2b238d38b7a5b269de9822a394b5b548753d5506fc45cf650402b3308d89977e4a464abb0b7887d977b5d2df782ee655f53861d2abc7cdf3ee4e4343a772c1b9714ea6c5a11e8e0e733e001b606ab50da86ddfc16b438c59bd9e322fad20c373d435fc9d50be9bb63902175f6daacb4b9eb1be08fbea80e4d352cff804ef53faa3a5cb0214ac44dff2fe5d493fdb58ec7e55078d9099e1864670b67635e8d9db83c667a3a6d9f97e4b6f7f8b4e295450c337586a9d5ff356a9e090d3acb16f6a0efb4ea6ec4a1cebce777d6a9c52fddd0353376e5fd4b50e71cc5c11d7b9483d69b6f8222ede5063cff63041b10ffc7c5419649b43174f8be3b0768284a2fbb1e9e09aa421f19d85de38defcea2deb1ab12e12a918ab90519813a84ea0218064c97c64aec6acc3d6d593619e1b3576297a5473821195080589f59bf036d25ab9ea7cef331002cf3d6f2af4bb77b2711c01983fc4976955f1b1673bb9ccaf8657adff371d5fa11e876d5a8ffed4827fee2416fb42ee30df8342e39e4c043629aad25f3bc8cc76f0e4549783a538b6e19cfee59083a34daacd5d477320955e036172cd7d8445751568b3b3ed00b6e617a69dfc7a42d4ceb4076b9eeb0292f7deeefe60191673ba988bf9da53f59c1cc492d41b17ec3dd83109f60c9b90ff0bed095adaa5377755feaae2bdd97ff8991d69151ef925210a02d21f8cdcbeba58272df97d3c14763a3d836db3292a5d27e9385e310343f412fb049f51c055af074c1a1ac217ccf02cbfbd64d0669907bc879135d3ccd1e5d4eb645007d16f5e2bf85107bed2f5efaa805e77373a014b9b2d07b79f690e2fc9cd5f573465fdb4b4ba9b6c8d1818fe22e253e12354ab4f41bdb6af45f16c368b3f80ce799b4132ddb683bb19a830f2fedaeba370877521b912b8ca31421182b537fb078592545e3f92d79ffbec2f8a4d065c4e9efc520e36c5b0cdc258597a7ada265ed9e7a19017f82b8466127ad514703d5699d7c6540a8644e5183d52fca27ffa93d30a680667f055265061686f97210a00c3116a22554d9b01d2f93ebcdc4196c5887b3c49f3a6f23b46efc689162aa4d7fe376ee20176e3424546157882e3bce8629f85e55b03e026a41f56c7da48ceb8c63212dcf2c3cd750f8f00fa477053dd9c6fff70c0a0c2b91a3d4be68d6cb167873c2c2171100fa002d0dfea73c6e30d00e839e1b048800cbc7dce3a2ff359b9c7b0a5cc3b02e19cca42c474911d1ca085c618326212c460fd177df92cf5354cdc6cfc90d0c781c9d83d76b5c3b34f35bdde515c61ac7d1661abe6516ced9bd02911c196c743afc168bfef002506f33a1bfef29b3e2460b0ba2311594abf41e137901bab5c7c312cb008def3db5b22cb9020d906ebb462e83e6af3c3df72c56b161f43be7f6850978b5d2656d0f6191d0f7f3b73c2c13fd4d1abfc7111ff27a9d7c807b206665a653a755dcd29f0bb85d8d31fae7b29f71945b88ac737204aa6209d4878dabd1ec9fb684e5f02a20f08c10ae10179894b34780273d86689765c12b07c81399c73d29ef577c4f682be75c075af0c33df44c78c158062a1b5d9590de82c7b69ccb18a57b58c8a7e83961f78880fe7b732ad04a1e7ec97803d01fa11e4775e725835216b8ff206365009168e0f579a789a9420c24ee9b91add632ebf1b8ecebce6e22785fb45198457aef9ffd234e7def5cdd508011b833245d8d631b836c7ad509bdfc7ded2bd4514bf5bcf94245c65316ffa11f51b62f9691baa468b499b9976ca94e9b81e7069ea9aaea967fcbb2bc4542445acf583ee404cae00f93543a8c6dc0bf18f5d5da4d541c66d6b62b4415c9d5d9becaaaea4c66f41169d7bfb8445c3fd6289fb66ab45d9e8b01753e4215c2de9d7b3afeb78b4eeb1e6f43133f32873a4f26717f599c62e6fa55e9f3217e1291765ba6c02848513675a5c81caa23d655707350399707f2ef5041d687486877e2947b0bfc250498f996f3a28a1dd621638a935c67fd5236a1ae07da76356075b48d77a761f214af69b7550f774e85f89eea6ea9ab480b198d27533a7e5ef0fb286381ed818ccbb41b338bd56103138c17506446e33fe34134674a888a19080bcf6b8a91d777e7f4a7fa06bbcc8a3ec48f8126064cbafdc59424597bde6e93672ce9072f154e88753f38252384dc249acbc992654d138d48c3a48c78ee34533149cb124f579a19080dead21ebc455fbfc2128d148a2bdbdf2d71b0a972badbea68a97b53e85ceaa580469b68c3dd69f4fac5cf9fef5a021761a59f5478ec6946eb64e11d4e7509848c5f2f7e269e1fe3d219d166901a9d82409623f623d6bd078911e6e34af0b0e2057b98a4eb05ad764b4c36c3069b647b0f225188043297f12588d8fcf1f07bd938d521f3e890ef3e443954d2e04773ff03dfd508c4a2e4d5095ade5891f7d71bb327400bb2df34ee3a41237f06dbe755dcafea845b254b089b7e7613b7018ae94ef6ee9dc9560300b00f7c83a696ed997e0701dc0f64c56d8b4b10e31baf0e87dc4ed1c50c7d9f0073ef5c382121975deb237b0e4661d5f9cbfe6f3ac660df7ba11fc29d97341230984864574e2c62f996d63b0ec2a721af80ab195604a7942f42f94cbcbe7937647c05b3b6c808a7ed3d73f33e99a7793549f3768f81f311eb79838d5914880637946c499ff64cc04b98387163ee53834da3e82e68ed276eaf29e592d29237b435d7c9b38724c78341d8f9c962205bd2ef9594597339853c37bb7896ca34a24e934968f5a4179763af6f3e83d21095c27e613882e6ddc52228951c2d6a5061a334263d3ca9ac61ae7de68c8b49ba906d116575627b3fabf33383f3b0aea91935b512a8d2ddf8a73cd93d19dc3442f7ac9c6f9f0a4f3c8f09e08ae96edbee85cf82f969497284aa287763ff6aaa2a99a0873f22d270df266285eaf631d84e70db82bb251c2bf38a8e90f82dbcf93756da3629cfaa15620d2e30251395730b996ea9cf6ce38a28d50ef8747b89cc4136e78190c32d416f83ca3a045ec26ce957bcc5a6550ab04a5225d2ccd6f613a4f3798e473394e0ae2eeef471da168f9d0595d43b6012fccf2855ff01f8befcdb3bae251981475e2a5cc20ed0dbd0864389043b7938d8f14c581eeebec9da9a854805eb454e4f2c4d44111e84bf7c855c224e01de7af00abd6c25fd5e144bfcbe2a844a42f0172c703fd9276f20cb8258c413f5c35156e94b1d05b8d9d5f598913ac997cff233479d608f4367cd977c128e302620b196085e19c5e9430688c0a570d70db9e4e135ad90bdaadcbd5632c3f92bea17a35ec69f6d506922d0a01cade809f24b166be5f2cb942c3c33f28fb78427c8da53570de56a8bad0495b6518f43ad0ff76b48f70fdbbb043706c60d7c0b04b1f5c7de7b8e2d693bd8d57e3989e6337d6b2b72fead2a76b5ebe0661ffd0dace55c8f7817c6555186a15830bc29ae846599d04531da6b74028c53c69c3116aafb02a7fc4e6d8ceff0d61d3dc61a027e0fae91a46cecd65611a9e1d140ac82bcab4a6cfe26377c129823542d514f92a4e72db68a6b7b826d48fcda909cd93f0a66b1f5733979e1af3c50cac40d06672693a68ec9b0378d06a473b589d993e6d84e3237495d9817c4d7916dc4d5c5a82cc136f2423d2197959e6ba113e11daf6d8abebf562b2ac975564c8e7cbd379b3ed7ffb437bbbd3d5577624e5596a2e34aa5a63ef0d625542a9f0fe3bd42677fc47459ad99845fd64aee1fcf59dee781e8708492fdc5b7f3769acadfd0f9836b079f1bd5c916cdaecaf78ae67497a7aeb40d358ef49c4eda7a5ca1fa0b940456a6551335350233619e76f5147a0ffd5bab85c898c7df7e506f09ec8d2f58a9fa3eef9a5008bcccc41af5e04b66904bf203947585ade03c2bcef25a428a1b6c7a9e0c034d2d3c186a306c1d4d5ca22f8e7dbbf26e3502a53a9227b271b3a582cf2eb4116f8e2cf82962779373bbe8721a56defa527d36414a06564c14a21d6de036b5b4ddfa5b6f08add4a11e5dd7457f5198a53af33db2c487cc4ea1e04ed9971cdb26d7d6baabbd6995b4ffd33bf2082ec43067c666d420a9327c727e82d189e1c2b70a08fd5049e03b90fe44c52ad24dc568a328b2e1cf6a03a55e3f778ba440b7497b45bd36d601dd35947d3aa64c2a6fe4d0a10e314caa24f2fc8e3877e00667964b26f3433f521ff66499558c4bc3dfc1d567d875d86e3dedbb76465454b88f09a26eafd1600eaf47af7ef848e0ee417f2b75dca0f36eafead3a2ff269afaecf5586b2271b29024e4c93446548706896c951678d10d82ff035277161a7259cd02b41bd1f0ca1990efd7049ca081e17c897858267c29173954197c5ba4fd90df46343dd44dbbc1717a36bbe949618187c40168b2388955ef26c4c6559d2cce5fd39daba6dc9b176b260324b39d7fbef89a4bbb04017672cb342e63b6d9218caf2322cd46061bc780b0df013438dc4c248be7b2c6f9a6737a6ec8b747a0dbe339f81b7ff5c423c6cb16c0fdfcf661fc914ce5a9819a4d39c3c74eb02d751498d127b88c590ba8e7a1afa1d7d0f5c1b22d1963497d7f09ca60b93b0a731c5ba0e1f1b1a08a131b26c1d3e0f82c85d59cc63aad0a2f8f9c94c4e13d5f1063b7379dd9812e22863fc6776b86245d553131b32c683c6fe5745eb63c06cc82b5b1cb4270b4e5232696d644558ee8ca26b946cac3ff0c421f5463c4ce7ce1a4758c78b1d1de94bbe9669058f844f3cb1b6fc40c380b7a7ca0fc1c22f673f6f55f6bb8ca0d23d044322e40cbcb444e119196a116b942e00190d7b13d651792a26e1b1fad95c04e527a044d8179971fb0288e0701ec36730601bc4d6301cbd94dd526e6db2fe095d494d913551d34f6c2a988b11583f23eca6a4e7efce5e44d3710a007c5b0130e67829a866ff3e4e92635c33421ae278c12691cdf267263d472e92132ec7b8a4fbf9e1905717ca60301294fe586bf74ce1cd5970f354d4ae0534d619a02c988867058c31e477dd8269b229dc49d21ae28fbfea12c6148fea65f70a3b6487567143482ff0885e55eec54f012e58de231a9ed25560faca4269f6bde34faf16237d4364200b01f109096e0c178f6c9e22380c1155df36ba31398223195b4edce9e7676c2bb224b7e74a859dedce18296c357f3a9d631dcf145d33993f3db620a854fd698e2ad01e989ed5cd4c7cbd18b7fb814100678c18ccbe48e1ed9c3ceed03ce8d8c387bcf4b9fec9fa4f9995074816a4cb5f74e4479f974894333dae94c137942a1dc3f9eea9510d94c452a6172eac67b46f0ef4310e70129d5f3c0426460c84432d3c2924dbc500a1d8d4b16f8fd5988948bc4f503119b6bb16f5eefc2dbe6bfc02ecae93bf30a33c199755b6059e180fca252744aa417f03ba7b4a2ff009f2a233d5ce9a40327112c1b96d9b0a465ebacd691b4d2488375c1df2551f6000b374b57a137dc71e3ce3564eb04e7495f136291836d3642d3b028e2bb4ef71b4e1288a6769e6d5f1f3079ca534040251e9e28079e3dfebc79e04295bd1070f2df3663911135f2ecbe6e6cafc4376f8240950ea0ebe9f249b4ec681c64692fa0c114c1b9ff7d88cb8067f25246262ce9672c75e730ce62574c28098b63afec5a2aee87260d627efcd5ce2d3f8f509e9cffcc1fd080ea9022e9bbc2021887ed5527fc158fb97836dceeeb612cc5ab068532f6d1f1c9683aa3f41dc17c4ae8b748d394f759e4d09a3e702b4b1116d1f05f18b2e376600325af56591abad295ffac2057e8bbf6d38a641db29e2efd525fa864c1a861a3d179c371b65706acf78fe073530d33085749165b978558a72110465f97b9de68dbad8011033e8534c1b9d5bdfb82397e2869bbc3796ab22353a6c624552b190904477ea61a958b99ccfcbc1555fee8ab91ac0a9cd8c3168c77925f96ccfba1d5f048e5e5ecdf1dca9debda3e8e208eed93ff8ffa0f9ef9006aaf8f7edda6aa9e0eb2273807544ffd1d758285ff247405feb02d79d8e09162b2fc19dcd8eec59e10ffc6df2cd08f3300fb976a0b3e9fcaa75bd002c90692d0f6cb92fcbb877192b2c0068dcd534f3f31bc6147c3dd04a94190ca1bf59c25a904cd75ccd5cb3ffa31e27abd3e162b5e057d7d3321e8c89f67852aaf0d6dbb179bb38009131e8946a68faadd01788f27c6268fd5dd73685af157c40bb0a32a4bd29a0142020035903b0a5ce2bf4fadff0a0ddb1165a1d5badd99444098ae373070d01ebdfc86738ee40972f43c8c952d4b758abcb933a59e38ff18aab00f0a5d5601cf615fd92d86587b0579635618793129dd607dc8162dc69e87d77a9c60d601e2dbd9a458de69d96067856b482c7fd6104748886f9a12879192f54d6244c85c9a4c7125a2dd190a43279a4108b68dd1783b26557a59613394719a06f44dbdce5f7936daa2a99508b3232f8e808dc2debbcf6bc0741c2e604bf147f6b5a02d47d7aeb9adaffa0d948d96a7631a3cca157294040c2ca847c9a51404e59654a6d9d4c255f3f9da6997ecf8b4db24f81b01c485e4aa9ddee0da0dbe0b1da4b4ed3d5562aef63eb5038f4231e8b87d9004fbce5e79b50dc94f51d5e796f244b0071bd564c85861dfbb1126c7c3e9fb7afceff6f26b142ebac98ffa69d8c81b5beaa6bfb41701ad4a780687457273e3362186f5a67b578bb01c7948941f9ce00d2a4fe11da35460f46622881f0a07bde1ca0db926574e62484a911a78662fc242ebd17c2374365f1b146a71e2bf5c35afdfad805bd4eef9085c60fc74aa9934a917f5bdaa94c84511b13e081d8c4546f05f63b339a22eb34e5b908c0f8dd2ac959e4f22c6fefe71dbc33f078debcc36fc269a0d2174ea81cbafedeef5d91f075ad9b0bfcf95f848e08689beb1b6277f20acce687fc6ce604448f554486c02642ccff567684ef8627c3d0c6eb2c582bd74caeb1a7ca37da052d2f94d3e09fa329a80a884308fccb8b9e0afb557029709d25ece70b54f6ac0d66eba9042f104f711c54db20eb6d671f570be801f140280b3f4b34f8434cf92a28ba02480096a8355eaf8b8df23e1f7a6e8ae08214790d23aab2860e51c251a7e42cf45fbc42404980775a8750a6efa9f2f95878315c286b32ed91530953baf12dd537397e1c3c6324fc0c57db6d8545fb766b6e6ff65a83631f4b436a6e2b59e35467534138d79db3c8ec6cc2a4c34ec6a4574e92e2d60b3bb771f5b65b1297291185b923e8dd44b8b1464d525c41e59e18fe5e930da5dbc0a001523e9dcf29fa26758abe1530f432adeb8c995bc8c8f7d766d529872187fff7be5503fe367f538f7e11d71e4706057cb0dd00bfd8ab636d39f5a4977a361746b066793d11ef5358cd6eea50aa52ca13ee2a28492356554446c1b93d34cc6494a1b8c6e19c85c977f1cf556e773cbc8904c69ac21097d14efe3b2629a75bf745a0c13e95079e000360381d7ee01078f8d0a22c2639087d73f8374c417eefcdb482be0698f84cdb86f1d99285abb5c27b3aa41280ed9fafe56db825c938a097055c47163b069b7bd261fd60b1b1a7a3e6aaf80756ae137854bce1343caafaef810af4050e3f8f0ac6ce7ab8e15f4971498d861227b40ab9d0e77951127cb6510eac105e65a309669e3fc2a5833881a8b6d368b8116920ca6515f975b2a7bc39fe23625723a66dbfc51974ce1f50a8a9f6747bb8f7ebb646a30e2aeefefd7d349e98fa3f39b21c7568ab89190dd2c8b403e6f797868e99f4c1c25a890fa199cf48f61df62ba3c0b0eca40d04447c2cbf38a9219764576feca0c21cb2e08ad3a9c06b362b02496694f29764a4651e3bfc16bb02df6181fd6d93c5958df8055b1bd7ebd86067e96700b27e259ea71fa933672438faf5fc390adb256084453061301cadd9d17abd273c623482887cf8f53e456cceea81e92d0db55ffbd6c380ffef71ac70b9b56f9a0bd7fa3f897eb63a4855202e6fc71fa8511597cc1fca3c6e29e2276eaa90a2a1fba5f33f26587c48a4fb511848c6aabfe88312afe436ff8a4103217fe8136936eff5a7978f25ff1662f114b391b846263f16b9149a1b3aafba8de281f54ace6337928439e40e0883e9f803a68137e84aaa279cb6b9ebafd6708174eac4a74d11c0f9582d33aaf65c43c7ba461caa364c87486dd5cea8f715c45e263747be569d1bead8583b0a39c7e46f5bd5b2ff0abb55d6010a9afefe602b850d753f65ce4777551dd82b3dd8e417c20bc93c60f32c78d2d3a5aec481a1e9bd7ed494358e6cc2c922e6e664ecd75b10722cdeecb39e84d881a32be5971ddf56964d9295e38d920e47558980231056cb3f0a2de3c2a64e884d27723a252eb1f6b254c6f90c2f8e26d19738753ee92e33a2e90776c97715539d8ffb8f6845c280f79e74c9c07e68f0675879e293997323d05a0f7728b37f5e7b15b1947045b4f4cbf6cb60a5d1b75a97a290d48b70d7a68393147c720b4f1b15fd66379f266f325a2052ffdaec307d4f9bb17525656e91771b0f84ecb6f5403e565d982deee5f012ce370d6e2011f164c9f97471f43ad9ee886b3f11b2771aeb4ce874a7f4130327a58606e631c1710eee7df8165029c62d4dc50710d24174b809a2b46c7cec3b10525b87bb16fb256a6de995cedcd15bfd905d434ca7e0056122c8892f9836df08ad9d68d97efcf0f74672fbe4009d902b21e168db2fc1e5499aa66878618f928eeee898222f90d2199e23a9bd4222ff086b4f18085a6570f67232f4237f0c2fe5f39561e92bf8ab9ad2c0584cb7dcbfe98814c6d256b60f92cc35e0dffb38a99493191478b302b72429c3789bc08e02a85ea8456abc5e7a6c96afb3af6c6682e80129b08a08d49bc803346d491cefcf21c64419b978565675cf48486d678cdb6d4556efd10c2f597aaa651f07427915b6cb84ccd8930aa5c45601de4249304f79bb164771ab462292a3ccc31a127bbeccfafec795c2ca02124c769c304d0f2da1ac65de831362ec4c9c7ba3dcd3b9264cba2cfcf5c8668e3f00646588f2848f42f1742893c2dda549e103253b8448a423b9307aacac2541cb7545ee74b3e707f9a51dd2235f53f70c67bc463974693fc26a4e91a7b7809a5e7133316e0b564c2bf002f42663f2fe7e62b13a6a3795f09e932450834a4cc6401a6567c7cdad667ed29807859653ad6b71beda79e200e6b1e5fc58137f38cfe12af4e921cca7615e1181f19e59514a03539539a3993d63f7acc2d0dd9ad30253b1c687f5cc51567927f08fc0bfae2f5a30b3ab3a6fcbc6f28b72d09d517867cb5fc0190ed26009434a0ca0b07997f6e77486412392b92227481529c2d7d107236d9d600caf15fd737e78792690422c093747d259ccad9e9fa6977aecc4dfe25b051982e3efadf984bc7d1351ee41217d3044656851ed8a6758119674c6a382144a41cd590f9b93352584034fbc488ee946a6fdf2dc40a510f74ce4e421e39613e31ac88bfdf9230a46cea8b689729855a4ec8a2e21ce912f11a3117a07a674c41ef6ea68f604fdc86da8850e485536ad5fa306648540f3de467a90aab45e06b5a217d835a87961fd107eda5515681640b516967234dbde3976fe9b9966e28b16ac965007aa2deb753e87f379d688ee44cf04dd4a7b4ea2e2f7e044a31c9e8440e092a14c424b9ac623003ee1a1aa8b4f1e908c71776af27eeb33bad52ab1412bad23c7437df0bbc6a11c26e5f9f60fdf41f49f821509a33694b270739cd7e8f639a30c7f932a340ff129f351d7eb8cd480bfa6a95fc9f937c5080374664e2462e7368468a0877c82569053e683408ef1d192f2291c7686325eeba5016a1b575760b749b9a8b8d5c1e7a60ed9449b395e74aa7cd6bb312dddd713d3fa4663f05f3a5a2703f1fdbfb35f8b5e53d5615e2918b1dd9c98c1b7", + "0x4e7a3e46b68dc1b093e7eac2de62df5e0d90c714236243925dd6e7a34a2731e37b9e16f4fcc866cb2fce2b453b1281172da54e9c1dcb11b1ddf9a8f82dcdb62a1b033727213ad9197184ae16c6ef192e9641b6714c5290e23e5fb3705f4e0e16791a3a74ab1616d835d5be87c22c68829e2dddf879cb5905767f765635598a2094192ecec43242102a6f3ebfb7731cdc8eeb82f3506fb9dc8fa0518889e5479b9d1aff2abbb1d9c4530b863fef4c4e452182213de113556626e4d0f6376134a67d0f131d8146f5018ae3d4eefa9268040917460b20f5b548eda50d6fa1ecfc0d4c8481082d04c7ecf878c8082af77f066a597215650df281292a4cb42ca7f8bcdb31913d79beb0ea9faa96d3189645f75dbcd09eedfdf763349c3075c10b605d2b60650d42fa9503d01b04d11d9c07f86f81459b57873f5afc5c251a4c5d6383f41805e10b6e4bb5b5ea5068daf971e31f93a6102792e0ea82a1ccc34123f2351f2a26767b124688c8b695b3b1280150632f246446c752e35d61971112b645f54cf865a8dac2ebd75af74a3049ff580f24622c7b80b857a73495db71badb806e4d21da98986d276b0da2f48f0d96f1bcbd4f53760499d12647c503ce3574f6e3a9ee2299c7d422ac5a212ccbae3bcc0a804f0a54e8858815e7e7b15e0536e9f11a9869fa9cde47880d9b82e69d7922df31d62ff8a35e209efa8fef54af7ad6bf0f56f4c3f275eb43c386f58d922841028930c2ec912dc1ef786bc5ce3c1b9ede2b443a60c6fa43d77394efc808950110b40d3faf732034b4f011d43eb95c190cc413a182bc428dbce2e20f8ebeb3929cd3d97985ec1077b20423c807b7ecf2d4658e4ee399297c712d8631eb376684007be8f2a3059d08a0e8b4c38dcbedd1954ce8b7f1c6b16350435e6dcb3bcf460c356ff9e6a9cf6e69e71217690f142aadede2d849d4b4adcf693d102254b78ff7fc4f227f2a59ba08decbe2b69fd142c76dbf3c8bf22389a8b45ebf665201583dc2b3ddb8ba570857bf107dbd1d93470e2701432c79d8efdf922c45dcc72e63b9eb743576f3af44241063b43b2e0c73b02b004a0761f4652f4257c0108cf48248cf59fe0850f5ae46699349c3fb93a79eba4ba9aac9d214d5573b2f633adf08613c1f06dbb1e2e341fa0f3b70b191069ecbdca5e7738823653998911fb2071895f35208b9db626d9b0283bb2701f958c78a18cab745f46ed0a3961af096d7c8b427fe73a4f6281bf159c1ed4aa1d65a57d3a24b53c95f0377261f2df7cddd505201204cc70dd9a56be708c072c8ec3b43bb00693eadaff9c6a5801ce303b3a0be1ef8ac8491c05e362a8f805bb65fe75c080be92644249a9ad766ebb126ee29310f21c0a7d71eee3ab55f05a02a72e4f2b43026a604aae642c92083a8ea28bfb1d77a296295fd617eab8a8145ea51e2bf6e894f5f06baeeed59371d364614c08771e5362269990f2348a361623ff440ae18b8c97c89ca8ee2bc53d919f59c036648cb5c48525a0941588ec95b7602296c4a9dd942704f7dddf875b925f71f3247bd7bc96a355c2b7dbea08d4e60d6040dced90249bf4ac7b56b7b7e670daf81f2a555192559870085ef0dc139d2866cfd2221c4ee216d1e5142f51e554065066dc8c17569eb38025c74a6336a2604d75ef95b9bcb65c69ada034fd2d75acb083063fda8e77b7bf4b46ce67877b944a278ba9a7b2dfd05d2200445eab56b4c14d9a7b4f0657dcf6068075452dc6b81444cffd71e347d4b66faf1aaf4e846baaf2c386d99d6ca8371770c2e97d52282b882188bddba22876e924a82dfe201e2f1b0aec0ac8c1c9eaff0546af3bb47fa76d9860af60d496a5a88e26019a2793064d917673c319553657a4c04187e47f58eed80be6d5bf3e733e16127e8b9cb66e5b9731114023911a73c779b363a1353afc37123f6ea474560e2c3077021dc5e7e7a3714dc716f144563ea61e236a05433b4779c7f6b10ba4210d7db24b1d3df5a52cbe1f67884932776cf5ab0a468388472e61564103ba162b5c2cb9fb3998258a40c55a3c52876d754e2e830a3e8e661bfc37753cb5b39f788794413d460a6ddf3cacb2d81ee9d35b8f7ac1cfd20afe4f54ae86bab25f5fa454a3ed7011975eacc4b113a8fd0bea2bb72b4cef016134a0b69de274df45b284654d3c795fcf79566c7187003aac71915cdf7652353a4dec942040c52467a827e0a267023043c69bbe9871509badafe511629288e64f09607ade93e0a3ce24a8db3973be570864a0f54115e9f27d6a4a46ed2ffce5a7d2959b38674d51e3c87e3ed4e27a04499ea5e1c9f7c5c776ccb8c8bc42fc64ad6bb4a148ed743d5667876260eae30c607e600494dbfe016cd97eb37d595d4cea77477c28fdaaa7028a5cf225ae8af019b0cd5583440c2d6dcc9e1ceed165f83ec84f164eb1ab5a06e5ac478f01a4545c680bab903f5806afe2f2dc4690e7589297a4cd492bf6f3b1fc397158e2d45a52ba1a9526c2782e96a9b981dc5da9806bbeb43a19cfd7abc78f9ccb705c4367730eebafa5aa029521ad777f39ae1b2a330d5688ea6ac4ec102b47872a6f3aed8a15d98ff0210e6023c6317f4f3a4280dba2f78110815f78c0e70742ff2cebf2669ce52a1b87c6d3f3ff77de2e4c3ea75a39cfdd5d4614983c73b6f28a441df84508e59949bc275b16b0cdc117d000e11e232ad38af6052b1d3817a6e07f7c159d7235e82116eece309f38beb04a52c99b0c16fce6a79ad4284785b639d44a3d116ce4287107b10c71b34936f8ce25eca3b1a75dc7e07850b96169c401453d85ab66cceb339c3d72fa5412caec90212e75e32c0de487f38ff81af10908dff5929f0c1c48cc324b95584b7fd4e47876733703289011f0908bb5d9949b3342f26b3a5402e8934ac4b54daae4a07e38f0e781dc081a9327cb0fb4b7e325c258ff63484d80e98ed4a2aac03e695289c22bb83581880ed42e395227d3bf314a2facf2b3972879984e432c220bfe712b22e78a553ca55161ff5f5b7bf6f00b59a015bdcb60d62e0eebc865d2e5725bc126512338e259f24f92a9fe2a01b2cef8249cbcd88b454b77b91a92aae37ad2e1940c307f1ac2849885ed4f31cf570c678c2584938b2dbd99ee6bb3adf64bc069cd414fefa20206bfb1958dcdf502512bbeaf2e0c0c467f98a54147f86caf4f64b46b078fdf2a6a6bb0316b215c33cfd6f9ae3e51437c1399cdc6a524749bc4362f969db683384c8fe0f842fcbd94189bb118ceeb117edb3929160f08be611489fdb6710294da4d42962a033de92bb082643445845fd95f49c1c6df8fde0e4f1985eaf051220cd800308643f7e6fc4a25294a9c1600bf67b32e922ee8eabef4159fdc1295c4c6db6b6f89df83c47b3d2058f578c3e29843fbe014abc101197cc4c6730f230c1b516a5016daaae3cd8e97b3c1a60969c322619e7882c5e02543d81aa355a47e03c73098bfac29a757a8a0f2527a9817ae18fd4ec316f13d1bcd233f77c5e90c842526a5eab53bc78752c302ecf1670a0c3c954e45299d6d858dbafd62d7ef3994e6edcd8b69212530f9ca8d068192c27d999bb20542230d9073e7def3b411bc444371533f85ac1e6e2783561e76aef814eb8a21d4b66f381ecf6deb0c0ae51b2464d4dc9d8a9810504b46b65b18587bb8353a652a42637f4778fa17fd6d36c66a40af38c6521a238d519ef2ecd278a83bb8abffdee05de396aac393e0641cbd4e8f62c0afd88975861c1f83668d599fdf5f16eee640daff55982324ad98e601392502cab86481d566d9d2df41255ba844711b79b3f27fecd9b5aec488bd2d1ad568c4f23cff0e5d6e0efc424c832b5d40fe8e60e0ba6e4533012ab5d282aa2b0f1cf142c79b1db8796d0fec6fb3c8e4bd265346deebd0969b59df4a29d396f3d4f75dcfdece1f0461fabea397b06083514ed262a5104fb65367e3f0163a23dba9b8c7b2ed47c808685c07d40dd67385292d9d12c5bf714831c51f1bc6e8fd5ed27569edffa9e3e8ca8a2f9e09df92c0f53f6de718d77fb456f43ad55142d2f9b4ccbfa66e20ab96d59b9a25ac79d9f18970369f41747a2f50a95f290492def6d781553daeca667ecfdc1c6ab36f5ba436e36a6e7a090e556711d0bca8d45f3495b124829ccfd4c931f4913621fe9eef9c2b8628be85db2335fc449e158adee4fb2d5fbaecabb26b8f7353caf6f23d59a02244b251420bf6e5f09996488a316299024846596352e42bb3df2fb1a922586250c07e9712bd4a52a7c59cbbae7de6b1dfc2c2573df6858236c29731eebbabfbd7423d93638a4a4c04490dfe93fc62bb5098b991bd3885972a1af3f4823a75fdf55cdea0ee2342acf9a65aedef53206f22f5ed623515dbffe11137667f657402a1b5cf65629d7c2274cf3994a545f3eb80444b66339d3cf1fc3d8e48f64cb9cf828ac3e7ff2afb8bc3b63666a2e56ba89533a6dca93853d321303458a2ed490ba4f49996485d05cdbdd5d5c1959fff2789af1f8ff07de194d2fe8845e5d6eadd2596981650ddf2a20bbc8da232d3c29e08cef586465c5ba299d582723bc2313dc83b69f971c4f89eff4d4f1790814729a9181b84f1fe475b3b315f1e15980c41efee990c9242a2814b95de19bcaf06bdc417ff4f1ca7253ae1e985e6f0897221b6e36f5ebfe674082cf96943b59ebaef2eddc26d3a19a1ae65c269c87e095c5816c82121467d73525100b75971e284a1c160e22c202665961413bfa60bc6a23a1047393897e965d0beaea2e848743e06ff33706f1ee404a26763c1829bb77b64e38462d38481beb39deaa407483ce343af0335a1b8d09b939f5803f8fc05796957b7d366d2dcc45f102f26f0d09db3c8d2a6252d4a8b049a28fa7a893f2b2b400365878007828493080d87d05919804c7f34b2f872d6ac264663da5503d23302b461ec5e6da8031d31576b4109900fcaf5416de46af6d3ba073b4e757d0286f5d7c3a1db4e73f37c192c027a621937c7086c44445e446562b01aa638b9d2ef5611c256dc297c21a3a5fbac33e2f239a05784ae4ad25b6de55307d800edd9e23695e1e2e89c7c0227bf3f0817d4cb3900d4d6fbaaaf12077bc73359809890759c7f1b87331b6454fa15d4b6060066261bcdb7f8d8d6a92326e12b9fc7ee24e2095733430998838c3e4be28f3326c6670892cd10b73d64b3efea953fd5de9f761bdfaa7b9c7c674a607ccceac7c951c36af001369381fe5fc7da78ca655e776c9d18efcd94cdc7202195128348e192255e64a72634754fd34c6d04d36a6e795d011acb7f3229a805b7aaad364a29682a7ddaf8bda8f267b35e8bc597e5537e9226dc5950574b489086d4981d2c02cf414d10a2e62016c5d111a5512afb7eb534beebcf4961042708b4a34a2e9b002244449ebec7afa9f1b55f35d8f44335a9cdde66c0ed77e41f56bf183660756bf12797e13835a6e5e96d759e60410849f108e6a200379470f3157dee50b23be11813211f9046ef5ec978810d8799786193be92219b4168df39b85df1c7ce2052a6c58cb48e3ff97ade45e746ece45c2eba69d490c6e240a93a6a94e7c3b34f63d9a0de55fbdabe5addbc795b912257e7db489a3a163bf487be2e84370a7c8e8063776d8cf038ad719a73a871c2d1d29f97dffaaf5f7e0469dbaa142f68404123f800528e16a3d0ec3fcd06bced0f043cfcbf0b319d9c0c0ccbbff761edf46c82c82249b0e2d4c38a26e078b5bc472c83119f5b890ea6f0a3f6da0b98e359cc110e4435d841d6fd0504b07712378ad3e97a85bacd5fff5b815b9ca3401fb388ab5c4aa1ba88ac0ee8a0e1ceddaecf64d3da8bb9cd3667c5acbe4fab4c36355a7e9a694b68ef0f49ab461369206ea2a9da066b4b86b424f24c719c564378444f3fb6d705a837b07e952ac9e37858485420597cf41f1b4bfccd17d50f251bfe0c0426a52de845a042d903439da04f5d7d8f2a5b7caafda30be94dbece21d85a73d9675eb14c4e1dabdbbcffd2888be118db31d34b16194d96f22db842736611e5bd51f97552a7d6112c62285f9e924581cd61a9ea0b82105f86dcaeeda4f595b4160eb52e3d072f57ec672cddb52f325c8afd0be0dd78bdcdacff55d71ae9bcaed9b99b0ff8575607d76059906c3922dbbd51d4a09d9df02b083907686ac7d8b2a708715684c07ee33b41108e08f70f736a330677a49398e78292dc6e536cafe7bcd19d9b3dbabdae302405078deb47627b83bf9cea89c276646c6a25f4f6060fb213a148a1deb860206bbb3662c490e67773a9a73eaa15b63c156b27a8c218656e3e233eeb12318040ad0199bc82ec01288c579f1f9ee65e468029d1896301e560bbca0f2682d71497d1febe0562581cb55f791643182016769ceabb2ac7f065d97c70df9cacbac36705d13024ea1eaa68e60e418e2cc078fd9e955e91eaf974c081e404892f0833219a24ab37a12c5dea60cb181d29de8fc3186febfd33bfd1ae2ba61272ece4932534a08b57c7a24045396d969b8db44d2cb3f6504c4fdf4312f5931df40ba67811c68c1de46531198124ce230c20f365869168b0f7ef68f5dfd5fa1f91fe082a617c3541ca0c5f770a064432410c00c62aff50d44a46fceabdbdeb7d857c3b5a30869c6bfa52f57418243fc88369a8fd6a4cd3c6c6b69311f609ac145259287525aceaceb46fb6be97ecd9ab5be6d0541353b66601d599b7fa5282aeafb478b479c7ef144c5c4cdfa20cd28b1a4f6936ab2c0232c97371ae6c51d8bbb02a0d07cff5cc78c3cd13bfa3667b127d877bdc34f8ea33fcadf74d96448c44493d790fdda74f83d14d51179549f5029c02507d5a5da32183dbd95f225fe2e5ebd40c1f0275aedca8e0a1f1551ecfe14b36012052ecb8a3189ca2c0933783e57c3a475ab031a10a43e98d9cac8dc8a447fbfb2c1cceca1ffdcdf22dab93f1fcc9b763ce731bb6cc08a4728cb98cb728be3e9ca80423c04277751b8f26aaa27626fd5ded3984eb1fc2f8b3c3365a4905e1643fa1cb9bef32730de686cfa662b6e205f2e7fc18fef46bdd5369a15b8c9863e6465c93daad336f1edeeaea2190418bed2caf85a15c23716408f6553a13495fa6623373e1ea00a372000ffa008e1e6118309abb511b76bf37f7c3a0f3967ebd9ff198e106c7400932a9d19b5d82fc21499689d49a322aa5f2ed3affb9ade0ee168528a6bef61112c070f7da559305b742638b830b5baa8395e1799103ab32a091c1166eb7619be3c73eb49ba6285a3150863aca86f9e05b782bae007050b17be5d3a38913c29428fbdbad742bf546d8d9881d59238abe3dea5bfece19afbf96297cd15406ed11607e518320c2bc891a732a047f643416f0bef3ff6608fce99c88181944146b10b1a076cb4ef5e0103e283633d7db4d9736d7989918bbfd9c4ba1fcb43bfb3ce01521e8ae3442dd3fef0ae7446f54b1015887ad2e12eb65dc77388d9504c93baa3cc10e87567aed12f373e5fe9d1ab02b0b3b8ba9857201cc4258250d15a77d34bba0e2c34397d8bea53e64ae7a72527e49b5115efda5198e875eccb1fc300e9a7e1403dfda103fedc92183bf3b01bfdc4bed0b439cfd933e2fafa754c42c7c18f1cc72ac206d796767665be794bf13840f195339a0f2799adc13f3ae3f8d145f2d70684bfd724540737af37097a8b4dd6db8bf290ba3c26d6cc855f30e89f4fb39449fc92032fd6143f2c2b06636175dd772ec8e2b376497f8e7b92bb7ac065d26aab730d81d873acac39399ad01c9da996e1195a225e021e712dabe8fcfbde388059bfcaca41a489d1fdb037b0cad11d5b975968f18df89c5050b78c1c0c331c9720cba95a754fc0b5dae49e949b145ebdc6219250a7dac1fd5b13cd6fe479f77e4bee383224d83a92b0aa0d3234b69208b269dd3256f70ebc759ccdee8a5bbd9bd18d0b5972f0c357f0b124e68d9bf05cfd8b2ecd654208c62a458a7480f20969d565b756d38b84277e99192c670e842c95199e1ee537b7c8fa96b741b962caf47214e9b8f67fd6d863efff2744fb8dc1e4b256635b4f8561b2eaac7a2527065fdebf988ec4a60c7553844e1effbe9db55c61779f0cf108a795612aa6c957345ed2f1e8ef699359bdf9bc49f9e8e5f378492bcc194e1f2da35ae94332676acdbc4e02a374752c4ea120cba6c8797e24cff9dbebddea4530d0f3d4d9eeb42f98d7a6ab95b903bd81c9a1f88e3c91e16150353a6f3998e152a02ad4ce8f270f871fe0a153e0fb4ed510296e252c471253e6022783427af1b2f709549a2b4ac3d89a6047f10d5c606c04c71fd5124c17db53bf5e0c4db864bdae1892edc0a6189663edd869eb9545e56753c9f78cd9efc0a983d6f07621f6d21164ece0ad3e717426f9aa4525fbca93b19f24dadb3206bad0dbefdf1ce1273a615a388636930e9ba64252f4ee39e7808b79c3bc67b541f304cdfc1f6343513c53752acc043e64c738c3d10e7ae990ba557d373438791ad7542cce7cb089f05790b41856a319f5d245ed275f8226090fa1b871367f8150792445467031cfb2c633e8a14a03fa7cabcc3ad51bc43f2da7b51c84360b7d28c3accf290353fde3314ecb0323f8f46864dd0b363f8172a1130dc12eebd51650357637a9b14ad0385465ee2934ba3ae0261fd5c943feb6e648d8f5e2bf75d6cbd6e4315cd48ceb2474f171bf01667edf6b4b9ec1d7039dadb67626267ba99090b2a7a4a9ab56fe2e16de90cd6a7aee281aaed06f4b5f38f81e008c7e58d567aa1749dcd53026f8f4020dfbb0665dbd0ad8ab557397621ddd11c0af53af7e5c13aaa512313d3f4dd2c0d3ff6f58d5393e1f3705b8d8616dfdfab4bd6c43ce6d9b346945206d284b5aed7888bbf58e7761675b64a60935f3ff7d10a7f686144a84169b5cfa612d7d1877b9e2245e9a87cd09b6b31c91bc4fa377b9143c69408fb21911a1f3aadc204994475b5246ec40cb57f94d0bf957363959ca2979c86b9b9678f78291aa8aaa7b7746a83c0adc9868ba6856cebf6bb99cbc131675404ded2edd4db06043cc59512fcf23bf10a68b709960b79ec0e0a6f5fe9578cbdac514c62c677be7f3feddc9d26ed6042aea944735cb70b420a5f4da6807920f1955334e066b910e4fbf0ad017a4519c792db8ae95ad36f407293da6ea544733eca40c7cf3d6007a6b739cf8b5665a3c0c5719af2d9b5f42ade44b0abc1bf4db6ffaa6036ff88f8cf9c00ca5839c638370342530db3f23d567ccb93e3e2e0d8fabc77b980c73630f2d1177fc0fa3d83b89f349fa76d6282088e09952581393e02e1c389341c0f4b78c168d6c98cc37ef56aa3f2840b16533b4a135782586540d19300d5f87a9580607429ba49cdafcd1a5cfe0480cb74ba76494d95b35f500abffdc9010d3d0d535614c9d3c00885b5264c092b34be24770e8c1b1d7ce020b5833202ec8a727cb3932af627a9d01cad3e53d3ed19fbe90330737b6969d055b95149c25c25b76e6002129c3e668665b617ce9d75bf7ed44f7f286a778f388d13386171e3682d9aa780a3fe3a4c94cea60a3cc78d6e2a5d947bb431bc94ec999ff0dfc4468ce3f470b09b888bd963b13916cd306c01930d92cdd87989b263b4c93dfd8fe8d2eecbc91141e7fd03d30ffdbff4f6d42f76bf186dc70c4de1605e17ce0de27684ff755f416400cdef31bfec8c57265600b4752b10c9f9ef86581721eb063e4b433cd6bf3deb3741a7562f19643d5cee3bb4c5c80cfb9cdfd85becff4e06101db0cac7dd24f4c90fdc45d8649c7f5978e56119ff79ae7fbd5a3ffde2ddcf8e4700c2997df89a76e0094d84033c1b13650e4c52751075543df8e3ad0b85be90e8178ab06118da40bbb6c9455c60fceb08183a91f3000b6aae2439a1f3a021929aee6ed633304e413548ec554b69173346a0d94ba18f5beb16b2efe678d5b14a8982480e6617c50b9746695a4b409ad408e516e75878ea7edd4c37705bf7b88fb27fe460cc349939732f1a0cb51beec5d8b3fb5a441feadb59b73ce87a785c54e99c4f88fc3bf9ba8a1e1768bcd47846682eefb52b97a92dfcc08fbf4929d44d97533a2af49301c49005a1dcbdfac2e5f528f656f9ed61b8c9c80afdb9d2f1dbfd21222c39a5a0d4daf268d51c44684df25fd2e4cf76e90037b0acb35b2fc8f817cc0ac22ed8f282468e3315013e4880a15ce226d5adb40a2385ee71a4e147cffef9b485de0d86e0e632e6cbd30491d17de7b23a623e5fbd40ad5cc427ebcea05432b53bf55d4a1605f11127f5c7c8c68f67aa889be4b962584bafa57b64c83705eb1fa2863ddc9d8bf14eb64ad42013776dc392760c56b57d11a231a712b16da2bd8c2345a43b0022d0533f380d20cc8a065f419ca7cd693cdebae50c27114dd980303ae1d0466ac6f501dfd290721370bde0be7f005b9a6bfce358d443313e491dc68573f86bd6a75024b0fe85018cea3b344ac9f64f84ad2d007be0c0c4f8a56a57001a045cd2db1d758aa7133aded1bfa771e7349fe869980a7908d61248cc9f2f0f08b4272e5498e4e4d9b640186763914d8c51a371937674ba494b695479e788f958d48c935c99b3050e583171fbd759af767b894f4ef735e8ccb8dc8cc85b0499070cfb73b3cb1728efaf258711d58210e3c2a0acd4431fea26699887ebd46ed092f4e6261f8037be1698e108ef167d15d139313b4dfaa7eabeb61c242a1609f59c354b54276252a6b24e5ee9774d0696863d22bc5e8c3e5443a210843230456fb17a7e0a1f4504eb08a14880b2646b9cdae3854e2935d6e2c404a113d4b215fd68fe0d66bd5792d83129ed5971d3d287abb939280f9150650031937631f01d8d3e0dccecce611febdcf62b186d1c72f25f0a070848c97d2b0eb91f7cc982736c53a40c3540a736fcd69705cb51124db1f73a57a2ebf69a615778a75778508c09af4fdf42bec131f0b4872fb1c39324f73e484c117a9f38e8dc0b0f5d5794911ea39aa6457bc3325e8fe6816ebd7d0404fcd305a3ec0e949c2850a63f233ad9ac472b85b0d1c7587e747c1182a585d77c81eb4df21f7afc91a940fcc1d122f1dde5f85e319b1f4c4680e03d3f95e6853e7596fecefd151b4adc756e3307f47330325314c5311c44b425b18f957ec0244063b53a3c04492e60306c87d5c76ccc7dfbbdaa81ef855012c299ba4787be75180020929e36c3dedaade68158a8063991589c34f04f854c0f96bb0cfaea52893afb400263a77568b97bb24494ccd04bda20d3f5d541a92d2a5d4b5dae409fdb83beb4e49a845f43858cb645a5f49a11998ee172fdb1e357a2b1c6f0aa57ab681b8111dc28ca59f9e170fe7b0b9d497ea1fcd40eaa54d1c6b31df6e06b2b4f044942730c74f29ce1b6f3607542cfa473fd4a83cf4d60c664f84542e5b2f208a6a5661b30ffff6a4420933977593caba7d65c6a7798aac72416168a6f9595e07f22d43055afa1d875a14ae78e496bd0cd99054afe7ca1a4953900644b5d0a598eccf0ebfe7af4513dd84c96397fab9fde16649137295712d094f9dc0c56c2f16ffa59e8ffb68c71cfb27d7aa297fa7cef4e1318391ee9064dc0a23bf47aa35efe54c08cc612685dc1586ef5558522c5ec5ccedc37f063794b9eb280dbaa04835e962a0c9e58c0f0e429592a4860f7848dcf89111bb6d48eb7f2ec40e828bf8a36fa6392ed8e1ecedcd3bbcde3a503ea815c5ea9d88593a42854f582b68e218c36d64b9648f171316b4a216629ccc42f91ef458e16ef8d0af11058c0818021e08ea365b4de4e9e6052b583403fc0b1987fdd202b1b7d6a3a2e109f3ffa264572986133e12b30a52bb1742fc2d4ba5f9c489af93b2f3521a6ca6b73683fa6908acf2a914c25e5ec2229460b1aba00fcfe5ec9e03d37422d24d8571c71178b0a114731213f44a48244c70604098b402dc0d279421dbd3e5a18694de60fa59fd9c0663cc734160072a43adfdbcdb66679d818ec6d91969cda99063f4ea613cb5bd0fb00c2ed28d2272210336397039d8c94748687261d74d24be70d181f0a5e4b7d05c5cb79342e55e715b4b60d7d1b190ced0ac38427ee4e8a6b167ae147dd87fb3fb86eaf1f4ebb04055967f667ab37a46771f588208ecd2640ff719049046c46538d96d139dc03652c328e77aa12f8e8fdf49d64fdd807e71e55746800d0655dc50af32ac398723b62c40cc3b58cc98c781aaec8eaf750d14851515ed0a5878ba9553e8714abadeb04a88174ad6d3c0c228fb3af4ef57e6b1b3582776febf7096ec2c7c1f55f75e408c2dc9a1f514c0f974c78b4f55849f0128a260d7456cb5ba4f3d01be63db61c095bfdcfbb3536ac3595325895b4b8813105516dca02e9fb14df0989a81ef1226bbe3d632b14961019dd1e058c325825f8c11b6cfb2048c1f853937ea40a5f30b89d76687b73618c25dea81ab0df91b8c31dfece98430bb2d2e035c9d3563164f3dc3c5252e0189bc88910800026c216f8827993701e1630e92ec1b4f7aa1fe4e4adcbdf7a4e63cf4622df7c32c4b10dc8c8011a17b6ac8f08f58128c2c16b8f9d75783a24cbc8a46030dc7da5bfd25312f478a75240f481215cc16e7ebf1f6ad3f2dc98a7bbf2c1cd62e050a2108f737d509a4529657b177aa9ccf725d2c53a590a8bbdc2cf68ffc1b57d1f857a4c2dad6c26c564cfb5640e9ee7b40aae0f0080ccdcae07d1f7f4a6576b9ce9662f46301e35d492659a972fe048f7501ba270baa876e5930340b041c602b43bfdf8579142c21d5e97f56982cddf6621270fb6095b14e412b77d3f9fbd0f61b748932ca455b26ecbdc6327e472028ca9353773eace27804f8150f9493c599ae9c72af6ebca3533dadf56bf23a604925bcea3e8901148e3a4659fae5c72051f5e337595516f95aee2bfec86983a61759ca9de54c5a1212fb666589824ea2272e37f409abe4297ede8943f80ab2525eb07f73df9cb3c04620ce8a823f352d7dc74c4509182acacb6280732ebdee481c62a0dd1cf8ba2a3d309a2662d65a5ec092196048d4e0ed1ec4adee977d6f70b02c7695a3f25267062f0613aa1cf27254d359355c0a74b36bc60fc15e6d0582a7c14e88b661114b2e50f5a77e5f037fddc40ba6e7bc479e22288b2a47c0902605d7f9d35e87c1eae9586d4bb348ebf36ca1f3c767662bc1b45768b724f2856522b44cd367c2e2eda3871992a895d7764805173a94d7ebb88294d3e8a96f70637bf9a13a201827b1d000c6ef9dd24d0745cb4289c56cc376c04f5c6d542d6c70063455447285f5383414e6f7583fa375f02184a4138fe4da17e978e9777dad66ee8548ed2465e7f30329102e44fc852903a7af611e9af21e14d2fd4fa9d4f658ca4f604158614c4d8ec27e6667a17338d4cbdc11b2ab8510a0baa8ca0c122391ac4e06b88e56a70f52da8db6db6a40ccc9a2e425ba96ab1b21a89a32484fa1dea214a7a0d5462e97afbf40f59c3894d9ff7ae8e2332f6425f9bfd7181c32f134821a349fdefb4dd49dc8becbdab96b269f5cca2613692536791dc65ee537299a17eba2381c3f201e0d62d0552b3e94a09e8db13c4b5056f48e42b45e8979726518116b6f339ffcd4e179645241d13304e9c389c16db4d4eeb69151a48ef48bcd6b820c705492e6d4b0cf0ce4077840d2208f8198917e70b7fdc63035647c44c7a73c854d4c651ab8a77480e145a006977cd18bef730c6dcd19954b6919150434dba7dccd61cf86e94aa618b62a16a48075d4df5305980658e8627e53089f4460ff1d9a464f334c87f33a52d2661d8f4542a378d6d4a6e6b0d6a408ba346912d2aaa64c89eb8d4415370a52acb19d0e5b58da95400bb9aebe02750d9f61768f67df8f03e053d377ffa2165d50dfacbd7b6d083a58e8f3721f1cdc16591fff71c50d0ed519a903a5ec75c15d81e7220b7eb312ac34f44f3c2350b48e3b54018215a8765aa7b190c0e040fc6069804ebc7a48cbf9a256e78896ca2e47cf017c1f15def92fc7f2c56f2f9a3f19da2e536743150e6e9a065dc65c95cbf49a484cb9735cf976c212c58c3e4c095e1dee33f82894451ec1c3f9dcdae002ac7bec7e5881293b54399650a618aac7a855d10f30123a2e62000c08a131fff56e8ddb4f132df940727f4a0f80cff362966e40a020e27b0c54297f2c63489c3d97a379ff995392fd7d08ef2a90aef4086a9db29ab22eaa4e52a962f462a7fc516d51b21bab5d1ffba7e4ef2c813d457a8a71083220471dc1814e379853224d19988213d99f2e84c6234d43c4b112dbdb0075e7957b8a6b10481c93fcdd524ddfa3a3729edf62131dac40bcafb475d0fafb5cb9f8250ea452d12fb14f1fe3de58805adef368de3cebff2f6460cfd18d034cca30575794c7b58bb4693e28a8435d01cfde9b4cab0fa45cbaad077df8bee8ea9975f69cd2f93eaae8839f7e8c14ae608346bc3028a9da097a92adee33be196ec55a50540825bba63194a0984a3b7eb8bc15a2ce86eb4fcfe0ed9a83295fb398d33fef32e5099fb840d8f364f77867897b32da749a15d87b24a7dc538c4309c8d87f8dbfbff5996047c33ac25c43253804f70e84f615955e3b7ce4aa9f2341850790a6d51b990be13b2ced062403bb8cf7d858f25cb303cee87f548489b4bcfad02f8a2481b862c32d50497ad0fca232fbaa76c97ce442a3d99cd21675163a74954cecb0a1b1a751aa1a6dd9896e423bf23ab0a600f1cdbad0af594685f4e5e5e47ade50d00e1b19316695d6b6ac2699c54efc3bed359b76e30ade2e97c015644f271a31c7a2dd6fb826a49367477ea5bc4161ce4fa7323ac673439dd4b403abc5e08452bee60ce941b07a2a9082d89c65c46db73c69d8f028ef92951685b198895ee206d2949be47e8b692813ab741d0e8115e51d1a598523eb16ce17ea09acae23ba75b9b873fe848af30d9c1252accba6335a51a85e6ab29a84327770748f2ae2901acdb01c9a920f66cd49bcc033149d73ab17cd75154394a15f8a35528a75ffb7465dd9345fe3b7545229046a7ce6616681d286157e5005e528007c450bbbdc1f9c58dc8bb994dcdaf77fcba7b88254191a932c0ba20f0d6c145342b9259ac4cb9342df8f579a9ba10ee6f387fbb26e99c8f8f4a6042c1039de0b45d90d76a0c0f779090dabc25a0d5c313309bda32e6c715f0ae62794171ef3d3160e9e56d78969cf1cf46dcbf6a1982f8af55a4cb32d0d5e86a015568ce2f757381cd658f8b9da6b1afa188610a1ef30e83d9367cd312c95ee72db8be22c40fa593857af121f14072e686c0c2a228362c5e10cfc063c6dcd0cb40a580579595531bee732ddbc316e5960ea048668e7f8bd3ccc74e32008663c4938f295ec818e8cbaf0820f01225a9a305bf7fa06a52a780bbf49da68451387947dc34f2a2a788d2400b68e102996840b4ab12c76b8fa5e983738cedb03ed2a09f792235e7a8436754a9a4f7e5f768aa285badd1d12d3fb47670b033232cd632c46c2db9bcd87b347248610372f9e6daba0d94a7617eff82be7f4d30559fe91e9109a5b52314b08d087b84cefd916924f71a8c2d22096165b3375ac87113a182a7ea6cb05e8ee0e4192490bebf0b52de19538eb9afa259d8b2cd4056487f78a92bd2345bbea1cf0ad08ab6b89dcd38df7eac7673464ed15d595296bc1fe090b207f7ace80600b7f8ecdb811985952ed401385d0a294d6548d97f5c53a4b8fe52177ccba442a4f23d16c59d314f6f294edf8632ef0b3e11cec3d497540572ed3b4e090bebf5a7e3a5094ae49ae97fd3f9543026dc45c6fe97ff97ef158a1a57076f7404b8db7a21b9496d52706f436ffdce39b742e215ba6851d83fe4fb9a9caa07c1404ae3b7c2606e9377972182714f18d0fde8506e660e463acae81c613171f36ce5d989593881ca76b29bde2af7e1b36f3727804713be56624b8140160f5756c98bbaba81ca2910da4772b87f3365d9ab8ebca87072ebf26e0de25387cd08a6cf19a520aa9346dffb137e90e8b4df5b9e19d10f1b95db58828759c4ce63b6f07a8a06086aac580819402ced20c6c2e54450ca215c814d6d4b2349eb31a665613e898419bc5defb3f99b85404e36fa074638b66bc9ba55f3549f25ef752fac3e856bc5efaf315e8060df78727721951e4c96b992493c26f3d03ee5634940bd5e43fccb70b7707b0487c6398928f09c4b2885c8f7b9b14e95e0ec2c09e0de33ce7d0d70d699aab4f9d83eecbf2478717b2b6f7a4689b1a6a7206329ef9c6cb30d766bc256146b26f3c307077c5f5c7c0fb05abeb83ad9bc733de5c691f9f35071eeab2987862ce7886f03fbedfa7b35767686eded82a36bcc35713067e9ac9bf273b7c61e2071b9f7c14aae5e9d75f2717c4fa636985d565260d557d97814903e4aefed40b84040144de6424dd70bae5edb772a8a9f218b9c408368b80cf546b4b9b66fd122b5f38a82267f88c251f0a1170afe401e6f449e8edae0d63f06c0bd4f31b5f49fa95279679c2371817d1b76d8aa3fd4e5b19a843b119f1fdcfd245fdf51e07b70a1b60a1fe62437acb9216310b860261f1e61469e15c4d20b817f0c6e59d6296d3833a7ea1d6fcfd73d6404f61b7f47ed4fc87527f0705317f7bac36dad5c7d53cfb9b88067e62c18340a4007b92f0de78a9cedb66df5daa067226d49990c89681f36f3df7c8ff399676ce3dea9bc22d25c8114347a4b89909ea912e87d15eb1e24110bf6260b1ada574254619c1300c4dd534ae2b09c4203b2f66559d83c430290e3154ee5f97b991e2f71f8f99c390bb4350a5932645f3b481ce5f7c3a4fd1f83f69e7150172ccf523a70e44dca7c18d5c00941be7d5ddb5bcb3e48558f987f2531b84dc590faa4f1c6a1f067b541cfd33614bb530c83bb0a69382092c5af9a6c255e00c11e3eb75e14ca0ed15fe12fa7c577e70ccb27fa8c4935a81d5ae0259633dce092a5b795ed69ea5e1b8848796453545d34e0baee3ca5e90de083e2f9074b7cb2e4a071635e8f5852c15755340e6e09dc28296e3e50465cee5fbd0447b345473c01932d4c1e74a5b20a9eac4cbad63e4fa1867cac04e09c19b1334b82233ee096da21e9b1f397886cb879c1a4e142d61189e9825b2791d9bc122b2346bc80df45ccdb5a6c2539129bdb2220ac87e66ba2ff9f24b1236d290614b4517e857e33cd3621206cfcc1eabd9378e3ca0dd6a7bf6f428a492dce7596bd5c8f57d4c96115e2d041ebfe547393f85c2cdedafd4967b95722eccb07eb4608ccf13d5f5b944972255255ad9573f3aa59ace92359cde6f3cdafb1d775ee11176e2ed9bb1f4cc74b355a7fa60daf34954c9c226da6e8afeddb1b1db77ee266af4d3b1990a494329a6f704252cc0ca34238f24b122c0b935c84b08cc49604d4ca483c190b7fb67941b89f06d4499012d17d6df33a813e8febe4050f7fdc0217f8be735f1a3c49943a2f3f1b097f815057afed405e9a67da76e43e8c586bdf5a9676f575b6cd46102793de49622814b74ccac58fdfaf040f976bfc86e74e81c6130df25f2f83ae8fa62ed796c75f2296b0c35b36a6865dce29048f8b5603872421e8ed27d1f677c66afdbb2488dc7fb77c1d3a2e2c18663b0902c16fba347d121c98f455e77ca10ce56ed68833ba04f3b81c1d5d8ae9cc7d34651d5972d979d452fad984dc927b9da4f30c67b95ba79ecdd51720a8750623d81e5788e99b739b3b73b9af2c4b532b67dd2ccae263710eef0ba90b8be0a6f44af525b88ddc4908b81d04e43e60a59fbd976cd1ddfbf6f72f3d6bdb2af2a8e1fea4a6b2427128d7792866ab7b4bab036bc7ef104f86e3530972d7931891944ed63c5a895c53ca224b60ed94ac6a7dcf660f7b4e14880c52611d7b88070c8784c7f39aa91381e45d12008395030512a6d12fe65c9c66cc7720857647a1c61f884116f198fbe3e6fe926315e1350cd059e9497a80f288da532db61d9d075cff23f91c83454fc7a1bb39bd7cd4b15b78121b729f53ce6450f7beb9a682906527bd033024bd59788cd0aa990425f380ed4732e001655180c775be6bed406406e0c0c3bff4563e0e6083032a82a7406eed7d51688ad6ddf4796f23659d783e97cffb2f5641b2ade91d7a113e82a54ad0989bdc237ac945f36e59217189edd3382166934715bff627f450bd24f961e31108cd6b66ada067f7225f7f20e49ce492cf53d35b0a680f686e53f8a15faca7575a692f5d355b6e5b8d88607bb6db75ea2a3c547f43282b7d64a4834d1957b06a1424afc8a0b21f7d0c5aa7e6a919c88450dc1ab3748cd8c80907e8b03d99f842eecec13223f77c04178316abab4edeea383566cdfc72e3ffcd2ba2d42ede6e8bed941d7a60b12159fbfc3593cc52118a639da392c9fd556b4b18fc3322b0200d55db810e8d83953c82e697af82a21606dc82684845701d6d4d4964327a237cd5a72c851dee73c8b679c1c726d3a80e171aa8557a989002b9c62cda29d94c4bcb838e3e59ecbd5025da47069e3c3895b2dc127bed5607ff35f8900841df90fd0da6ff302d3ede14e882544f5638419df07d02da83e20266b50fb49b8eefbac2d1bfe6d594707687d8dc386d26cb4464c4a00419c679f879fc66c9ca2eb782dbfcc70f265caaaee09ca630da67f7adeea915dbbb246c45fc3921560d04284c4c60b727b263ab82296aab376320572aea79f57609d400f223b51341f5953e4b8968d571f1554eacda0f79f1fb6962e9fc06442a5bd9b11d83c468a42d7ef93a7d46394608a944b1db57cdd2763a4b39ee9ddd6898b27ef4f1da1dbdd0b3c4196f20a440ee934ba37cca26386239cf85a34a5af00cf7be39aa451728c7f09cfd5c7a6a4b435226d24db33eb2d1b286acc4422cee76d61bbdb03cb9a5db20fd4b47303989dfb976901c78276419ad86b909ce71691d0ac5865462926d1ac9c1b02f4cb2561a1e50a8a39a0c6587191ce13071bd0da1e103129582feae30363235f196bf5058fc682ed0f1ae2d4d95e5d8d70be27d8d731cd75fb7c3f2ca2da9d62c336d6b1c79f52f55d00964464ea54c8b14dad0986a24c05482d8306e841f28a8ed83bead8e7d27b3f90f0d89ea4e3be1a6dd5259222df5b8dc797d1f4acbb005e62b96441f8af32f2f1c4e965dcaf04c653767176074c76b20d5f3b2bb947296b208b67b18967b9f1ec298a10695101ff334ea8d4756bc86cbc459d426b1809c5050fbac626cf031052fa2ceb40d5fa44237d753094ab8be8c2b768777666766983472526f38e10c4205759b2513df0b4ea067c50d08e5dbcd0a5a3acab9a1b62b55984143f9fef281a216fff34fc43e4b751ef87cf282e425a04759097d4498f141065f181d3186789817bd9e67c3676ddacbb6aa8a47eaf5c4dc11567679b0a47583835804c128286611ddc789830f6b1c53eae92bfef863cfed6d40157664b3cc512d5930467c4ddf179a6d822dec022319038504b203d12182b25eae2fe767d0dfd2d4844ed4313244184245e1806c0e959a030aedb2a9a9f2502dbf4c9867d89d4d9bc2d5d38af30c282b585a02ddec8409fb6609826c61efe0c4cb11f2ec0b9bb0f8d32371e1d121064fa44aa28e80edd389570465fa020a83dfceffda9e1bd1a724b9cfadfec0836227b3a367a25e04298f0006e52c8b8cf1464b98ae4e4dc2f6cfc05ac7f32147cf4e07d3c0006c51ae68cc49df753fae56078cd6696b00130815bddabfa1580bb08ab16a7c77c2a4a99db88297b487f3de8761fd04f4f39f72e22e9dc616255c3624c801c7512e02b04a6a738222fe5368a8e54949359364946f9be1a6008e2cc93cb2d9a0c1f9958206a942432844d7da91448d36deccfa1da374a00a9153b003ca101df210a6effda5c5527f5dedb52f1a1889130b27e952b154cfe0998b708887ed5a5bb875cce636b025a36bb3aedc7e0d91a40cee0c1297dd7c1174072b91cd9f5af7387c26a40834b03cfbd15e2ff0faf3419f0394e7949d3eab15cc9c12296a39f9df2e47926dff0351f279fa39a3cb720fb6cedfb133b7c12d7f5e07164f292a27e656b39de1446bf8be70c0daefd4d6fdf0208c7ecb2e12183621f8fafd16becdfc6e3a7af26b9655b7316ffbe0d06a2a9d2b71637d266f891b2b138edf34b0186003c3d1ce944778d04790c2375289eb832cd7d335d4362e0aa04dca12a43d056224a33e7a3faa7837276363b192def43363f0ba475025f25df4b39c78dd79d38e9455eaef38140992854b9996c44d92e29a82a4a0404b83daaff7732db80bef3f94a959597929c010edbe864acd03b3bcbc6141073fde6e3625a4bf89f2a21a11fd7aac6047bf98762d71c898fe743c6c8fbcfbf2b744c0e30da268187b6a96f8453f5c74f9d940aad9bad8b8cd4ee78cacdc0692944b66d4dc4823f30795bca2a8467eb39ed19cbd97b0011e3955c967866cadccc1e36c6659f303a32bb5329e4163958f77762ee8f50a467665df2d1f914ffd10e05481ce6b5bfdc973a9417a21b1f7190d682c596f87daa9e134dd7c8cae0ad1cd048f0d195f1bfe5a49d374586149997be29badcd4044c36d203ee369e31f966ab3c02ae933e5cf220da50fdafb2984a734ef852498f1cd2673a63954954f32a96e5578c476ad83ac6d7afe4d219261d4f2f2f5a3faf1d62d603a3caaa3ce08ae5297f210a286616225363c08f69511840a003eea59eb4b1d6942b0b43f0f35abeca46107ccfde25b51120b66bc9d77047a90d16ebbb0d7e5046c489ba96fde29e6a6746012192a1748cd5574e019f34fa747b648616c3a1e367a235591a34f7d4e3d6593f1a79b3476a3d9c04a2dbf5028fb3736f0b18f563e265088f58c6f405efbf53a1da3ee08bcaef3abcbda3e89e729065a5f15b5a56aa17f96de21061a619583bd797d19d915fc6698c30f0fd1f690f60a6d6450e760294642a4d9b24850c0e0054a26d9a1d599828ea784e256ab88ce4fa4a5bbc318e0a9fa0123f9d4122ca17cf7954e3e71e991f3420c5047921e7a7a83eb4072c347e6dcc011a0dcd4d3b43c2f1a10e1ddbe3932ab3ac24daae2443bfedad30bcd06e59513f2e3ef1506a6fee65f1c7dfd4fd1c6f4a7fc32ed372adcfdc5e406bb8162cf6d5d18cc9420d99d5fec4a3c29a59950ba3e043abd79bf16de5ddaa790ae66124d74fed446655eb3f06e1e94efd2437ebc6606d9b9a4bfab352aea959d32512690b5deba6503111b64b0d1b80d9ebf56045bb86db9dbda1bd0de3a72fffec99f732421406603dd50999ee5249b3d9ec9cfb94a65d65ae6a2ddacaf9591cd15425d6ddb6d181dcb9cd36ea4a0c20a428386dfa75a625aa69a7a237c2e3edfcd0eda5df6645493328d78045af2401682bb1ac200650c212ef56d5b25711ce96376d6cdf3af755ff31c38af3ab5c8e0348e6d32a49891c777365d030b4d9e0a015668d314f4e0a85a770d4c2127530b7599c0cf63393b11521875e157a6616bd4cc0169bb105920d70820edd40a32b176cfa282e8d4289a41670439be196fd7eb60461477cad38afa8dfeecaf5101a989e0dcc2cf48174b8285ad8f0717d6635f0e03fa19028105a0a33156ea2583640ee452265b8cd9b657881b89bc1e0d455d8a7c2f1142fe7627d6cffa2520c764797f6295eb0b85df3aea77df599bbc2f381ce84e691ce8f068e3e0e7d382f74b06fd98b7d5d687dbd0f918cd3c1bcb2edc5708e614fe3759faa9f994e0cbc2b24f38803255015a19cda87f1ab63c512ba24cbc4345aa28587b14c15efe81d829ab70558e4ed8e2070aad84cc97b6eeefd5ec1eaaa6e1362e0594345f107b5a199a933e4c171b523a39454cf5ffb80715706583100de92ebbb6f4782bbc5582416be5cafdb3cfe10c7cfd04695557b3a064b3b582c674f165fb1600eb4a1ce0d3ebfa915e353f44b9d90a63acefb117d5b76365ea0e5cc1099585879f3825496b878ad003534b5432a9e3218d2e6a9f41bd5bdc1d9aa62ba68003e152f661ac524cfdbaf900171d1abd6566f98aadda63d506651ed51bc696aa4e77acdbdc5dae03d0b11af6beee68c80f73ed1bafc75ab956a8c6bde5903c8ec681e5739ef8b64cdf9a83c91078db0cb7d517a768983f87d289340020e60a5d69df3b45da20bb8d3c60bf8932832ae5857a91349b9622d4fa3a771788203430ea622ef53e1e5d1b775e5f687d448d9f475fd44b0f91a1998ff3dda7cb12251fd64cc5d9820aae57f6f9253e620362efbcc45063d67facfa2079d4a8b6afa2ca500df7dc0c765ed290048c5b135907ef3d6579db7543842e8aa0eaabad17502da65fadb61b2eef7acd7cce409d1ac761a0f930266c86714827aa0fe3add240c59c164c740b3fd05098ac11f00c67f5676799d7e14feb923532c747cb7db826b81080fbf510f1980fa10799c1f7ac977fd193093e8e31060821aa0fe9fe98c532c71a9cac4fd4e8fbd4561903f6695fb1c77f380369be1e5eec49f8ba77ca87f3ef7c731462bc0e2cc69fbcae59708399f226cfc89fde681774a54c717dbd93012d91643dc38faabaea16477b53080c78a2af7e3d212a4084bf49474f3a14a2bc61a9f1d4e3b22dcb1756e5624e6ff3d14a4d6082f99b62bfaab4f68443f206ed3021baecb3befebf45047f3f682f001262a4e5d1a86f9b6ae7d39905b77a29f089b5a52a3b474b82e04b394d2632ebf5258cf19e77f775fbf1c0fef3be2b1672f34b8d42d18bd3e7943d3ec89f96763405036ab3f5e2d8ed26065b0e36b8e322de29cb1bd4c3440cd2780c9a74bccb6ba37167c1cb29cd0e5c009b6a8d2ed1566fa14d94a27e219f5ab3047217209eca5b615eb073d2ed9daddf240682b62d28599745ec8f674587c2f7348071c9bc1fa7a5b00c37764399ef8c097db5c102b981c0cc88dfb1bd388f8f533850a690ecfb30ab45d09de3f9777ceccfda2b60d87a8ecf001e9315799ad1f3b7992b5d32e99cfd79d5428a4d364d005110c0345aaa3bcaec16ab72edddb37ab781d5c2e33e37bf51fe861ea4ced06e77bff39af11389cadd0999d0b37721f0b21aa5fc1554eb3b4f50dada8b8e5fd036ab02c3398d81934ff88e021054799072d4ac973781ca899a53d72189042dd77d4ad7fed9ab436c193bc717a77902270e2a2d69b7a92e72e58a7729d5e9d49075a55415065447bb673acf2c8946b5bc6146c78f17d7836ecaeaeaa2cf2b5d46d185bd02e00c31b807a453f4e0d57ff2126f620e22e9d7d6c396804bdbbecfdb88a4712f016b02ced6a69c891a2b86d6b26a1e21f7d51c6c4bd20da2b89c8c2d24af4f960134ee7a9ea6bbefb3957c22e6f63de8532e9460e91d5483fc574bf9d76135ee16524fe0d44940b9aa7e07d89e04602acbf3f7f750db952b0953cdf4463a71fe52c7f01b13ea21e9add63bef431e717c466306560cbb2d16682149da03b88a00314ebd3763b44854174d407ee9ff7229aa61ca17da3dc3951cc12d4d320e0890f50be2e06e59f566f6d8b9cc09dbe0fd26868dacea7042c823df01f8266b0e2f0128d36db31cc6df0adc565f11893b1bcffff1300322fd87d078bcd418e4c763bafb51f6829577430e6216c0f4a65115e71cd189edd1130e137665b2bb8db8abbe8d3e2f5d9c1bc118b23e0ea04350c7fe643f8fdc497e9cc66288aa858d8e7729c4c01373100edf50eb4b274f89941e455d692e79f5e51be8519fde425942cc0ffc659bef5fa7841c2a0bdc8543b5204ad8036557339edbf20a96a8259b176aa33ad0cccf30dede3a1167c24dc586ed7c83e4bda59aeee1bf7ea5c7295a8588bceaf70228c8a08afe12c53cc7942349a8a900f838c7a75fa8b118217f54420914b4017d53735a8862f596a2118dede9d35fb643f3c09a29532f98c1016256dd30417e14340c780b383f9136a9527c47f0c8aac2afcfe77ed249fa54e2e3f17f479af22b4de6ca9e2d1cdc50e65a92362d549b34275b1902567a76959975865862ac7d8393346f69b1578a14da106450086c9ae5fdcac9df694d67ce2908d93b638e3ece206e8223904038da60f75e6b7d9a0497f2b2ebbdd3995a90a5fcda9eb5dc8895619dbcca72559db81e03efbe1fce5bfb46fa892f3ff7591fa525ca25d7804805ace1c3e8034cc84d3c03fba14cab80b5095424d95d4a5edb0be52e0d91d63baf06b9c073b6d8eefbc2a6afc284fb8210efc5756491d7e5f284f1af62f2d7bc2febdbf6b8fe339486fc045eb1c718b3d64c5f4ed893af8d036caf3bb004d2255b1e0de98440c486ad0e268ff2d8f5a3e383f5d8b5fe13265c8b772b6e9a3f2060e27c5b3ff689b58a4a3034fc4f652139805890ff547eef85710fecc46dbccf8648f35b2d8aaf7453da9552c09d324384276a1c78fbc1233c7a4535004ab519c94fb6305c0af842df49736144304854111d9853f95012825f89500513bc26b88516f7714ff754dfbeb1b8eec50f4af799c3046e488b4de7bcadce94592ddc25de4ea0e875d80c444e1bbdb92de0ede8c9ffead762b19873f5e95c5029c4148bb0f15b95fb52c3b910834afba2cfdd445fb67b34d26dd9924be7aa1feae9cae4210cb7ce6ff2d6b323d36301c8626565a610c0769eccb2d6c53c25beaee88ecace8d94f6325b2f1ac021397f2bb3fad47fd958b53bbf58354c55027978284bdee6b98a1a819bbccb01afdb1ca43e5263fac7dd7d5e57f7b1926140e2d303b206db7d5d06d0fdae1a1b14f61a1d054922296c0b578d22f1c858f296ab1d969d9410f94b179ccca77b0637d1c52815cc790394ca3d757c5101091566cdd9379ed8f4e540f9d6864bb819c146b55fe7e1d023db654c36064269211499644512d2ae85d4a247d01f43d6813946dcf201df1f4966d2f3402a1d082860241cb5b629cbd61af212e2d5d722c66a052eefc2e252adff2cf0c6d3ca2c9a2cd196d16f119ea928aac9d354b3065148ae19869b79ef1dacd81ac6544d91edf1f9b53c130b742f3b55dcd665534605df9f36c5fa6c58696e6c9512b12d2fb7dd29e3c3a7e503c509840ddf9379f9ac203f50dc94f077d9da0dd4cf9988e1bed30c730f36a05a0450a56e6662a75c930e56ac39ef5553c249728028c8f358ba674138a99e6b84f322013a527eb1d72111567676725a58d3421c9bc53438f4af368514a27cb901a511fe1f33450e412c77516a578d26f372fd511513f4f8c7c311ba5c158b079a167b89c15c90a7adb55eb3387902730aa341b098f4803be2780ae0785c0d0a14bbdbe15d030d472f53abc9256a203eabc467ee9842c05da86f2a3c2b4f317fd4a4cf68f56b568c75cb4bd97c8f0f6a27935d4a291f9953be9ac2af5928826c2b05e404504e98c5248fb72bc7dcf5ee1f9a88456475df35f238d55156ae135ec910962e2e6e0d8552233f50fd0a5ef3453da2fda1ddc7e688f406669c3fd4aba3b38dc0719252cf3100fb0b1f10c96ac93cdb53bf55cb09b9de9b78dedcb142f7839d1c8ec617cb50e70bd585b23195fce1e273668b25ce4f4b635f0d2b42793e200c02fe6232806937df0cd8a6f51e537b478beee0b8451230eb456205c05f14b8ef1b8852816b8cafa6e6f11ec18db52e7eb79d078af93de2bf556bbce84972f2dd1d4e20db17e60da0daff21652642cf7fc44e7e6df80d45b9cdc8899bc98377e0c66166b3e6fd5528492521e85a3a8d551ab314734930b2ad5a98382854dd17c4448759b278a69f5ee3274849b42dfa1937235c2b76ad32ffece22de09cfd1f24cc79ac6892c94890a3d08d533ee8761550f32263c47455e393510bb9a7f2a0c742343efc99b0caf0474cb45e0d876cb2a2c23f9bf9054e85d182f5e317fadfc0f11f612f97f6288be2e755c64352935da2a93d8a2506f2e6a88f2c89837e2e99c3981a48b6326f0e3d2f5f3aebf61f524993d11d6b3ae4d3ee7034438d0e98a09b742eb4639a2fa4760053bdf33d5cdf9c181984a8e97341a6e3928ddbc73306d9e43114ed321c68de901861cd1e62d051da5d118d46a5f14a8dc5faf2cc226467022eae76bcbdb42121e0e6adf74607bdbe5c84122069e80f5405ab198bea38ba7cdbced1c08a33696dff7e826b5f6a85d5dce743454850808aa6bc93b1eb352300e9ad2667ca908c1ed3a2c7321024ebab29af76d4d6e096982d3579596d281ebe109daae90c19df52f455b1774ef083d9d67aa548824a6f4e1e2c9e72130132ca61964bb89396a293c73e168b4141ee536a624115aa6dc5964fd6fba53bcb13d12152c3a31ad456515b8513e5344b9e41e3d12f48698da9a4f6e1959bd8211da0174f63c0e34cb473a0ef77757f75e216c784cef824fbd8f0a4c9e5262fa3fb30fc771b32dee1e81038c43739ae0a2b66f15a5174290e465e3e38cf83c404dedffacfdf87a3150585235f19814fb61724714fd27996a011b2668a5e4d26d1ba1fa1aa248a8d975278fe430cf3965ae5740390cfc2dcf140483daab70d97dd55c9681c042a77c10daf7e4b405669b531d0968311af8c2a347c56c5d3bea708b9eb298ef6ab18534733e18beab59e359aeb442bf2551528162d9d103a847a4b55b22dc01aae0787c8977c19337c6fa37a88cb67b6995a5b0a32339365eb18ced7d26036ecc57e1c9c4584ff7a1ea5a72deb360745354d90bae26eed4c94847fe5fb8fc2f01fbab6962c7bf36e73fa33fd798f4dcf6107c8efa79d6319785b28b53a43ac05db8f046b5b676798935fd694d380e688892d35c531048a53d3a01f31e7455ee58606c75a356a2c40dfe8a0db02f1a6ee2c44be359cef18370a8f9b3772953434e0e2d83259286fd7c6b3304a19f3d410229b1b30071d087aca552a68bc81a0f002133afc8dd49e1e3db5cc777de67408cd518180fc46943b1cfe07a7cb2de6b12c308592f561d83d4356950bdfaf796450798ada128c82300d1858cddcf87518b0392bb8e2eda62e2f40409b20da01997412dbba66bf0da62b513d1388b6b4a577e974b316f6e9728469b2cc75d705c11ff7c6363eccbc9624e96ce889bd679c894cde0f303b3d9c3348114255134f1e4f14342ee12c125cea7b4d5bf9e366c11365a26c81a857553e6a9c825308bb866d4a080b3167423398c1c664184ec97ca371bae33d23c487ee7f5d6d5b7665393c997edf2146a657c192a8e67c7118d6f3e2f68d037dbfc6d886fe37a7cd90d874d71323e77884a31653d4bfe79ba91e135832ecc9689a74e49069c081c5f0f05b6d6ccffa9aa7d3731706cc51e7ecfe359668a671644bbd0569bbaac400838f342ce12f122c85431b09d3df25351469ece66d879a8c915aa167188437334d5dcbef826a3b76423065aee4cae4dfa6f1dc9f874eb472b8714c44fe6e0bdc3436dafb26df94345a162d059f19420aaded247aaaa398794cb4b1cf1344a1eeaa8f815fbc5aba0a2eb34d3d0d436dc84280f5be5b0f76e2767121b85997bc80e26f4bf4183c4e954742e4501a9987522218efd822849ac05352cc761022239614f7a277fe72315b1674940e659b38152b9ea7cb029690fe1c3e30e300022180e38cae337a7fdd812af3e3a9685f4bfacdc2372e924245aadcb84b4270011eb3d1ac4a94dd359e24cbb0d3901bdba74b84b1e4a088f5d5e4d21e14a2cb4ba97477c70dcbf5e925b79af7a179115db93b4c0235eaf8e896c558ecd41dd7d9bb6c0b776adbd58d9c2e4598bd9dddf1fbb4aa45d9c8ca732123ddca302eb8168b555f2a6cdabddb1100da60c11e8ebc4fcb6365ec039ae75289a33c01c43a186c993eb72adffb3712eefd70b528b9ff9792e59981bbb2583323fa90582e5f591b20e7e6f4d1284c6bc1cee5cb71a4863cd8e12e5edde85230c577456d37499d64c8c55d89e4c9c2e2a54fd1577597c9a45a081ff4dffcf2fe8d7d11dbdd36bd9f31f270b744f3d7d19953513874118adef742e09a2e845129fe70ac7636148d1b45fab0901f97b5c18eb8574514a589a71ae9304a8e60c514d0b6d46e0a69827511db6faeb69e1c5a568811b7921ded7b4b4475b0e3a05ff413c448dcc877bfb104d0aa7ed6b1389880c3d30ae07f5cc602765589c7824463d3c1017e047c89f6504f4ff01dcf9ca758b5b9d924340562514b1acea992fe5fec23f619cf70c195cba459228fa078107386192ae5c1a46d5bb84ebabb2c7ad245fb56c091a48a5df331119b5c08af90283b701751050e050f0af0d85a05a0359243b3c82958531ccc557ec2fa51f52efcd7c2258338e5d405560ef7528af62d180d35b9141b7e0d0d6f88ac664c1fffb895af1edefcd699e0d99d0d14972d61cd48656dda3198822cb58154cbe2a4837dd20ab241647a512a0edd4c7c7618142a1e63f25ae3534fec395d3c93ba9c91448d455876cf4261c1c02847b2b6e19307600294d8f18a2fbdca2ae9f6ddcf143052f35923582f40bcac94cadc0746878e2e3b07ae9aac52fd14db534394884d61d5557175b938ccfef9cfcf24e00cb6117306e41ff28441f320699371d131ab76b9f09b3f1a55f8b7405488091d5b4440b5787dfa99dfa809a38316f8dc39d6f04ef5f50068451056d91487fafee293a3a651e8a2aea74d08633f61ac851cf3fc6efb0bde7193adfda11f9f836ef421a5e26ddc9285576b0bdd687e3c66dc283010e16515ebf68a1286bb94d5c08aecab77072e76fd3761d72c1275b2d6b5e6a78a8f29c837d1b952c84cf3d80bb2fddc3390c683d3d1f70894e3a0e57dfdefb2e3567342c9f086fbcefe1813ee7197e74d8e299326bd02faf71cc23e79f5370c5a4da7f15e6d7c91ba47bf38611d7b24a82ac303bc61bb520730a8e7b7a1fd6564d78a14913a570cf728f4583ef66e8e8a128f2fa2d469c5a9bc6ca65b07c08160bb0696b0d83799ffaf04c4bc2d8d1f81e96729439cd07121bf7338bfbf3f52212b55bdcd3f52fd27cd5d8a93dd3967e103de1dabedeb223df37e0cea3e5365222fdc1ee9973cfe9555d1b74541052f39be4e4403cdbd3628b4313a7f606f4e06ac4d295d9eb0d6fd905a23574dcdfc0f45988163adcce718a7f3ec044dc1c4f718ae445e93d7692f733de32709afcf888ee36e8f72ab80efc6f91cf6344eed9bb91b2f6a4be92ae62af3d049a3eb36169f7c810c3c5a67d4e3f1af794eec850d560b17906b6e7f4e124d34b4cd31b31e44da0d023dfd6fa7a3c765d9adc573e7d4273961de2bdcf1da48e477af769121bced47ba65f9c5e305912dbb8e706a07cc81c9fb4f2bcc279210642ad5a4b4e16da70916660255db2abfbde5c3ac9a5a443e96e120c56d47ef5cd233743963078d8bdcda9af0c0cd7ed3fed1bd52f34f24bbf04b747fec9f05b61a7470a48057dafa089c950bc9757fddd58d60bd022ae3bd52ba43139c1e7f39af1ff9fd346654d06f960f99f529c5d461bcf04fa70a7b265e4bf4a73ef2e42bd909602c0d7c024601a3795278847b36beba93cbfea5113747e2287ac92b8300b241cc9966153a83069a3c299bd054963f6610249f8a806a198aecff25c2e88f02d779d223373d2a7a53c53b64a958e95db75fa7e9133f50e752581ace4847bbad2bbbcfd37d5a04f4379d028748a937eceb79cfd8f6b90565606edb2e3ff1de0851a7970e3b192c85089f1ca71108efeff6ab25cd917498bd6ebd63c4f44e7dae73eb89f28102f96ea1927b70acb5a3ab199dec51bded94f6ac6f79892ec338f561e730bdacc7efb8ae2132bb107f60b92d912db166eb9fa81477ab87692c344f2e3375d0aa68de7c8d40d3a48a002034d0615edaa2daacafa0c828980693b2f19dea786482beef157879e4ffd4c45f562d40582283a2e2bd2a0a321d053a2869b0ff82fd1f435675bfd0682dfa5291fb880d02b9ae80c094d2d64b8cad2e52f2a4d74760fed7b655e3bb7b41ec03dd4744bb9ae02accf3605dac471195454f5c19df7fa06c9de088333d78a1c26b2bf1bdfd977c96d48e18e22b2f8c622234f15eb75408105ffa7ba72c229b9e4dfb4f73e9c63cff10814a81b94e985b3ebbb36ed725a18e0822019a187cb858bbe0f435a40d4e5d4e74d2488c10c6a1a26a905a388eb78cc913395576621c7486ca5aaeb5918a211802506d307619e37b6eb1f97e57375d75af2c705588671bdac440edf5021c7bcb2fd788026f6e18f5ec859a7caefc4428c3a7da2870189c065c6a011df89bfd720ca9c6b5297d5d4478cfe020dc68665de4227aad1188f0c20aec9e296ece1acb2e35533b54564d87db55b9a9806e6868937877e4973e8bc8b5a6ab65a8a792612ed928cea82d00570ab5848e7f875f9c8e61c93b64b6494f8c5683be140cdf630c7bacc846b308274071d958efa21375f7d2ff213b34f41ded6a10337d19e34bf9534e385a162c5416d070fb1adca1e1253818e0da3be365740a5bc3b76dc44b5d33b25e706c6d373f376dd8b77eabd29c7008688e0f43da1f2dc2222cb7e87cf7772c317483e400b1c295fe74edb41f22c08f21bae18969d1b029bf401cd420b29e37c74364fc5ec5c2e5caada97c53fc8fe218f4e995353b701380a6a81b52b836527d5f258935f38b79147e011b2e4d96c256357f3b36cb0b2d59646880d396b96f100e83e698fe53b24490278503abcd45a4bd3bc45b790ffda1bf5523efd73d6d63495032c0e89c0d2cdce04ff9f0fe350ad342318a4c16528f163f9568952009aa02823f94ffd379c051e3132f4f6c7a7221845a0cc5cecb1c3d8a305ae62c9bfe9e9b69e292b47e6b6c0630d1d64cbc8fbd611a6678cf4451007f76a843bfe6da874abfb5af2ea1aba7e78e785746e3abae99855d47b850cad767c3de6530dc9eac2930902a2c2208065b88097ddab0f941af38415d8f55c413a4182f3b69165ae07e3382401010887661d0946692971f6872f5a50e014a2c7f524cd8fc8cfa76a59975728e745c4e645fb5686826c87fd76eebf4f06352710359310e0195677872c9f715c64e2d1c7d867d7d0d1631dfcf59382011fbad23e12a181d14d3481e09d83f96e7a4933e793fcd2a2e9d72afa4e3c83f7220d054a2cc9fa920d7a5f478d210ff364af49186acb9afd029516314adc28e77e170d80edbf94150df06001887be9e47119aac0faa012e5c95fe89140371b2df4a7e5fe211ae2931f3d584483ee3f1c6a60365810eed6e53907d33afe945e4509633938debf57065ce9cdc066530edb89e76fed6ef2ed888a25770675611a520a21fd77b565f1ac51f12c1367d73646090a30a1f2028de12b62fffc3e20b09b99db4a5540860e8a4cdb0553309553e43481b02bfe04fc04d346bfdef05d4b08d08c8942f395d9e7a9805089e03881221645145339790a8a96f94d9c3c89bea9eda15803456b48cc3cfda830d2380bd1aba96f779fafda121b6e2edfe3dd532f9ae3272d2515ea8bc276e0ba366da9a3b2baa40adefe00bacfdff67f7acb3471b5f5deaec299433567aede0b81106eb1fd17470f031916aa3aa7910df9812de9b7d07945a25772225a8ebdfc9f729af85ed420a27bd7e48955bca14a1f8edd35a3d609050503286d72253cd908e94fd71f19e06f62184d06fa774daea6afd99682651dd69e79d976e3c222e491c579920990eb391e87ce505e66b2e24453de747b092af49ce6265e0124f6d01c5e5cd2fdd55955506a6f9ea13c0d467e5af5d86db0376efcf0188e15e66346116fec231f788e2c13d15ca96843316c481b5df02481b5a830eecb3043ae2663a7627175893d0dbd88b9322d8ac8429b7cc1118e173813d9195387b47bb9bc380247fc9c9abfaa18b90a546ccb69c84d1a7c15aab82b748e4bdd0c4d83c62f491a7decd0ca925fe4c07b1baaac4a0fb15920f7dc575a9325a32e2072058c590f786a122e1582a9d94fc2f7b245878e2a8e2ca2e29123ba532ed5e45db92c8476beb7ff34f09e944777a2b64f32766ecdd8543620518f7d9f61f9b58f965b025f05e6bb49d6273c8ec8b95bd48e8b98e7aa03801b5e44d0e49e2c884a19225f1f044563335e87d1a4c31fe19504efbc751878aefd7f90d9d30b12bb16977a11ff0b942d9ee3edfd929535296ce6168babfa6b0f152d24ec6fb8db7d3ca33034bad2d7f89cbf47c1f7263f3a355dfaf26ee26beb54cb63e98f15d68e4e83b99e010d2fbc201192c7837a9f9552a4aca4d9da4a19d08070585fbb7b2b9db3f6dffad8af358215d08b7d5bd21d2756732cbcfb5b8244944a7adf7fcb7bc17b1408bdf897bdfe1023863e5c7d879fc8a9f918cc5b9c8e5dafae62dddaa01693f6e2d6dc596834c7c610b42432c3a5790357a47433d130c6948f11a9ded339d5e440c67e5088aa83f4a5e010bc26ac8bffda4bc2ffe7d1596443661924b08e066a2f820b242f45b2ee96581f135e28529f1facf805c6b9e657a8b11cb4d7bda89690f25d2986d407b762c62f4e5513eeb1a09974804958ae992597ff9a9f31df1953734946b4853a316167912e5e69fa4678981e6d93bf250a218d630e569863e2a956b4248f6e4ab48d8ce11ecdac481a5165adc7d02546cd526185eb01668a39065f82be84055a4cda1c3abf2a60ad0a4f6eb8d976636d0172b2d3473051578a43464f8c01a8162f9b10b058e090dceddd569a8af179ce410073d50d82d6a1466839f9e01617b12448f621d2f64756534f7223d9f50772d64b6c60e030b3499c9b58fb3b4cf565e70770560019186308f04f1ce905d4c6b31ab91fbeaf6b7bec7338989c554a96bb37b26a6b8b97206fc62a984e374bc2abd2496a1fe1c504378e61d41fe00370c2670691e334de9dfa7a761781f7f990725d606988194db9eb72d04073c57126c9124b1f7f24090862045a7aa05d11d75879158fc94ad2e6d3287695e6bdc6ba96ae72eddb3abae65c9130c3f593e880dda1d55c6841e6d9057bb61b26189b54fa8f0004bebd9668fad108a9d9067923793dde79ead2627214e3ebe8e7146d2a1c84909a65a6c5bfe53223faea51e1ec4448c519fd38dfc7ec3ce0e815441bfad2ee4e66366c768e29d578cebe57e4245f45f1b2b29a3dde13e656b83ea86a1100b47c388ae65963440d328a748b673d2fdb1d0551f2206a36ae824f577481e63330f1ecc8a12346a0fc2fb0d736f372eb20da6f69136ea53c0b8b7c17ef6d401d0b94a81fad0d54bf688384f97239fd014e0a993592d2335457102e7b669eef84bce6677177566caf4bf37e6c9c89cf472e666372b23c17a27ba18d32256816d83276dd5acbbcec96b97b8d8b4759e90e78fa3433515fb48e4e41ea0a0b840183286aa0635b077e6c9fc826771cc43686e3a48d67f232e7dd18eb729ac08c909e5bfcaab6987ff02b8fbf2cb28d080105ad98ed0cb8702705290ac1b87d822eb209fb28fcbf70281a46f49e880f07ef23fede0b470e18bd7118ff328e01495a8cc746962e21ad1aead9341daa51c795c593d25cd844ed04b16a9e1644aa2bbf730b552d85a80ad9d481fc39a2fff29870d9a4e8b423f6c4ac7ab1a39f9151dd3286b0a5cd97e1aef6c0ff9c18b8575b9d9cd671a9c5ff906d3e74c611334e42c0b57542cf308e4d834fa3f5023e673fd96cc1eb50a9173f154617ba0567955185f2d63091caf308a38084bd3262b877e1b71041d2f5106c037f4073786efe9c859699369e6cf5230b0bf0cae8c6866717b3426a2066031056b086da226145cde8c396b09f94fd2ca30a6ab3586a2d93f02d2cd4b62ac922385af7d6c08f8b1aa9be3de1e93b776ac9c928fe45d8b020447b75160c578250b09d92283f53d35468c30d8fd38b56570861952625fe35e897b919fa341d12bee116ce12da50867cadc31ef3f2f08e2f4f84cf6e6ae08714cfe4e7cf712f9fddf01f12d77672f0ea0c7698f79966998cffe42a82f0da9353dc450317a01c1553fec63affc1b1c00afdb63ac62be5f3116268abe7a0a9eb9659076473ca61a2e8e9dd1978dc5b8ca0594dd4a625d79e2954128d44c831466427f057f450383a93cfeef17ba1a24ba3d7c3cd2df5599fd040ecc06ec0e7feb57587faaa63dd1487708cfc4ccf27d9a4eb2e9dbaf5d87f73b660654fdab7906bd82fc290c92c2b5cfa69e7bf9cad76cae46454462f42cada2b7c5395b18c204a4919f5bd2deebe42dee15296853f47553e641282b0ad9327c643953754e8f28c394431f06c21d047aa1751a957f5d4ba69628d459ed1efdf31dbeac7e788f2051532e3609deba8a916adeee3cae9884d93438e4d5206750be1824495b6bc2dced849d1ebca83523cb916a40d2e1d3575230a734a23efc55f4090499ecedc56869f699185a1a31dde10f9e564f2c38d77fe22af3eb015fe7cb561d5539c60422745980f02808d1cfcda9a960920f0aad0c451462dc9e6453a78f8762b2b206c62844c0b2badaea526e5658e37fd9b871b966652184f8945029952ef01f6a572922f499926a941d4b5cca31a5172db848a18d5804fa5f8aa3fc6d7b64d71e4963b67a09f2dd519097e5e207cb9f460e6efc6ba930e8ea5a5d9a22b7521b93e3d1cf0095a92ebee6694881f677f02925456c7e0e06b8ca16bc0bf808cfe0c9773cd0a5bd91602145223102185d7781e5b29cccbd1962502b6898a178d77030166f36e9880931083f84e7d40f1664f6debedc1fa63669bba421dc3ecbfa29fc8e7fd4bcd87ed358bc929ef9bbd5d8238d98a4b0ba737faa351714abb9d5cb2baec78718c795d353df6b8c9106e6135615b214f99441c94cc28575c5d545a31fe10ed00c3b605e6e6f60870c97b47595c8f751555f358437190578649480c6e5912504b4ef1d88e8b06527c8bd19f5e97f4e6bdf902340e34559fed5f8f5056715205bc98b2d0684ca42c2872520fbfdbeef80884d213063dcafbb57c74f5286c576ef35bd473c12114d6d6c4517a6707466bbb4759ed7bf344e79b4cf60b48644b0b738808ad771adb84f3e517ff4c67a8e21b48a102e4e69ba513b1460a13437d2b7d3d51f1cc9446cd95ea62c0b6a024214d8647f10250ac707f994dbef2eede2d0aae86b6c488e4159e47e17f065daece86cefd103e4cd9b44e97231001338551f5c9d4398c09081c3c25b9080adb9ed16eeb08222996875d189b9994f6692b16c3843996a49848881156036a1f203137150dc24bab079e310239b0ef47c1b02ca39d0a2bc9c2019362a34b01b6c206ac549f196b55a30d40078b20079ddc94f78fde6e52ccc3d0b8061c1355f62ea18499c10eb1c33b445cef47d2040cbd7e9bade2e067e49b1a7f0b584ebf9ad5eb55511038912411b9aa09ee6629c212b99f4a96b11e231685483b2fe5e742ecb01d85763f003fe6643dfcf0ae6e048bb21e24cd832811bd7d39fa34350fcc4520fb5f4c6102921f42c03ab231fab13f7b86cf7dcf2ba89fb02c2b688f2878504e77a41df0896778d535f6aba95fb2284be96b6b600a251692b70eeab7c4ed76b45d5211d1a5f4baa2c3979e85b3f952fcddfc48d6776c6bda3e4e3b66cc5af8ad24ff11feffe0b1b28e18c1686d0cac8cf010ac25e0fb6c031ba572c80a44cbfae5a28405accf3a11a8c8eca81a2d649ca29576139ea068ccccd91cff87cb453ee7db918845c3fa5309577dd0e09d44f4fbfab9bd816f0cb841f9f99eb3771582b2eac3bb5e77b60aa12c261ed09fdafdaa087812a7b6f28f2806982e5fc587b1bee801e93e09ba516f6c4e06061a0345b50610569ce360db558edfac880e441da8fbbef0f0890c44b22a9dad9f1236ffb71b99a1d897e56c38d80209f58f5ef8f8868ac0a153658522ad3f6e7c63ec80b802e55e82650fd55d9ae4a99a971bdc819e0cdf4e3cfab93fc61b59d0549dc3847a68cc85ee6aec066ff7e5db25d144423be0e8c4ff4609ad9d90af86071de6a310d180fb5f544ecc75cb89918b1410e1f4aa07ee7adfa29d77a06774d997abd629a2e1de83edd852d5fb56e5cec805b541487f70923735514d5ead5a2d02f8276acdab14e3b62f100ff281fce0b14b5d7fdc249dde0c77a048425db94097578ddedc6dc1b1df391f57013272eee7ede9452ae1ad76c7a29974988c71f9ec77178aef0bf07f5da22462b006a254e55d94c792345475b8f32c35950038d535a9b2387b3c88e84159435ba48ec205f1ed073fc0ad9710962ae957bbb3d764856477b9800c95b8911021f483cecf6556563aae1773045ff60dc8cf275444fd4ec18ae2a15cdb4816bffac055bf45ea3235d46fb5be2924d3e50a6e07c57c88e1ff8e00535dc0033f21c95251cdaa06a189295de65e683e52fe262af39e3da05600a493331980512e3575c1d659ea2faf37c28ac5321190272cc2ca2fa9835c46cbf77b74eab3647abe1c9844387f00e18672dde4b2d37de641bf01d664de7f9408e7f7130129a1ffc46655b0326ec7efa303faac677c5c82985a4db88292ebd687ad15a2e006975f11e8f11984100c1f1e6c516f6d03680e8d5630746a8c8528b9a67a32e045cc6cb5971e8f5eaed0c06c984bfbf7ea1d870338937cb622fab6351ea21aac75ced083532dd766e99d7463c3d2e5cbed1410dc926013b6a803fd35b0f51dc4d346af9174d5ac34f7a043c05ec198c2fdab9a8466ae18ebd02166163a61b3fcb10ae6bc73463fd4ab66fba48bf4ad4a922a5b678a064e8cdfea0bdc5a4422fa2c62cf229e3ab04754fd0f13230510e4462ccb772aa02c04ad6058ab83e34ebb32ff18a6d9fb88016187dd744ee9d8a6c97139a7539cb57178f39b4f98ba300ed95e576f798cac6ce0885814b000edb9197110729097b3278a1c11b51f531717048f7a6922662164c9791ba31b4ddfdc153f0e549522bd2ba6ba5a70048014ce5c922ec2bf8029ba156747b5ded9c1df5aaca150fdf3e7b94e9a4535e5201d7e97dc7e6e879383b2acacdc429993232972af816916e584bfd6d3785ff5ceb3460aa1c9a40ec25c841d120826a612a33350765d28be0b6d5f44e9cb6b6d153b9b93ed2c606e276ede29d45fa2131a2c0b23b9341c4e83607103ce2c7d8b175fc4d0cb1cdf77f1fd60206533d92bcd2bd27028815698b6b7fe67425bda23c6605da4e2be25f9fdff1f07eedf548dddc53e8610dbe9f33c30c6002d426cc1066fd50c52fd7a112c5e2296da927ed3335b19358c2c70599ceebbb9db6241566ea4ef4ac3ffe895d384e801fa0229cfd480c0e2e0d7888f82e684ce56990c7c71b24558e7debf8514ace195fe6f084f05dca4e6dd6e516747bbfb8c2f7ca3442cbdc0adddf3128ff0faf01e66a73378ee36cc3859baf108cad2afe774bd7f9a236d215a3d1a38a3608df02515e5a6ae4487527023da1150fbc463d8b73d3f31a2c67c68ba984b9bd89a2bfa2e25c10db38ee1110d375e38a78a8d9249f5250693e8b896a129acecea76e48bf4e3c9700d333e2ed7d9095a4fced8851d739770fb6e105ca4c97d6dfee9cf16b457660b8baabc50297b4876288aa230f9739fc276d7943faf882529486c949c13e823928b1ec6bde649d3138dae7fc2dbff6c7955f0a97ec495d0447b214f2f4005f2f2a87559017df6672b77e4b48ec78ecffd410d85031524edf3e00f130ccc88a59d178c87cd050b46e4d29fbd4e57f1bff48c76b4abd194ae7ccaf162854579765c973ff52856f9b560bc9dc734c91cd51f834a96de6e868b4c8f2cb7bdd06080bc765a5ded54917d9afa9a36ce6985d1cd6ed2de735407bf1c89ecfc314e6643066b970d9632c36c4f498721b6886513db261f14ea332fca26c0211414d8ff24c63eae675e5caad1fd43bad117612a22424d9b14ed7ecfed68391d5275a064eae498975fb044df02f103b74601a043293c9f238e2cb8c0b1fa18db00417adb42505efc00e35af7d95dc3dbb28572bd75f1f81f8482988f60710a9ada0697a23d337013e748cceb338f17f3fbaf4560f8b9ee09ce6942f28a54a13c90954374cdbec806c68ee8d8702294fc3d45a28cc9ed1dc899c4fd7a82a2a3154765ad9b4b823857e3694329f653e9aa4657ceaca2459747e4f23573df64702c19d2fa23f453469c9696edc8ae5bcf0519a71ee161cb04c70139b4a6fb54f4ba902640eb67c9f36bce265f6e85d950566cd7217f875a6d591a76502c7790dea22f761b4a2940682c8d20ed5fed514604296f0f17bcb0b740aa2a92e6b55d07dce94701902176c40f676ce45d59ba1454f0ab24f6490e4fe200cffb8b5d003b6aa81084cb1cb2a0800714a482c41501049424d9879c668b42c079fa83d99dda3cc77d20354a7cf7d3abd050fb2b21aba09a3b158bc820bf2561d6b3cad8310577998f581abfe67e2ba3e9fb740e108108bd61d4cb02680c30af6b2c5bcf923a03e0832756f365b211d56257fbf3583efe6c28ddf4250c649f4a3280547386aa015690183b42390f7f3c7b51cfe391c7da4a2479182ff24f85267b272c40e6a194276d8a526d6345a6657b316dec5cf566ae9f56c2c2146bb80a2682c4f5d3c7ca75afe97b18335f1bf0d30f939d6420a6211dfebfa414a90f1128232c16fe1cebd3f3ebc54a5b21a8158cc3998c6880e2e2a985503f59cfdb2b62961f69f4ee32cbd815d3ef9b25661c009fdbd459b09c65006c1721c1c1fd9dc79a24798c312a58c915ba59fa7185e4ef95358f87e917cf7ac5017de2846a7dd40a3b1656f00e6c97bd19bb898e7c5ddda6e861dbc71c7cd52448a9db17683754edacd31fca7c6ce6a487adc35b3d0ebba142ed25a9347ac1e9da9eb387500b78687c878ba861af65be97ab702b708feaa57e5d7bf90f0b47dfd17b4ade328c3d914bcdb2258502db697a9620dea4108bf13ede9ffe0127f853eb03dace3b2225515f84db516426fdcc95313307e0d117dcda2184f47cf8f215c21a06426a8938dc8b4f3ccbe7511e7d8ea57059e8a856167ddcd18c415bb4fc244b7d23b65061716e15d15986a9a6c3eafd31de3e7e9689b74788238566baeae54529137a5b0f5f55823f81bacc5e07dbab19b9bad23d70c3a0a83aaadcf6708959efdba2622f869c85cbba4d4b8a24b9015c7a5734a9811da7f20e47bb117e7bfe00d2e16f71d511d05b49e02ad2bd7fb99741e3cb594b8f22b1571eaf7bc3d04ebc7ae164df762a5b8ed94062ffcfd16e3e33e0d07311005a96835e9c50ba27861c204673c3a96ee2dc5f9b6085122a218d021b118dd0989da804f4180a72ef8aba3116a4de828762d1e64283dcee70b414922e6fcb3ae0ba3e7dfbed0193355e5d950052ef0cc7a04a3fdea1ac188772d2ec6a6053ca74880ce0689cc43e20ae1a49d9ae8783d8a2d0c40b83c7104a85d8195c6d0643f45f3fd5c8d533b8634707f98e3b34a28333f9a72464f31c377f868c7bb5913d719caaf6990179fd569b776ace50f2411363dc70a476857e18d251336d69cc95902204b51bb8c7bdc542d0de8299f6befc0599abdd5dccf117581e67874e66d609d430f8984bf0544174e6cf6497c3e0da30e9f010b14ac028cb263d4b3ee6fbce1ca1cc243bc2b67d8ff0a7d21b903eacbfc6bcaf81c1effa4e75fde0a7f8289167bdaf77bf3e743a97065741cffd598ad11fc590cb0a5890e2ebbfa20a0e26b1a7624d1c439b4453b132e8acad1feabb499bc21f05c4a91bf2dc713d7d49c6ebd06ec062e413bcd6a711789385d0101a4f6ddd1e97c8af08c833c6f62abf8b3b5b5da8a1f48d1a6d67032f2f7c59743dcd3b30645e7c55ec152dd234ce02257ac5f3a5247c0a5cec84eb20d6886877cdf212131a2be63ba26d9f587a3b069e4511fe10c8b5e8f4b1b38134a1f5560999b369206d429ae70cc8d305a9d6475e8e421bf9a98ef8e33d503274bde3bfc8d54536263fdc74d1c403ee1d8119514efce299c3882a5d0496d78e6a15c56672ffa412756aa524e4815de55f041285be0a7f64f85f5f3fc92b6a4e6c52e36dd65610713f5d3e853032fa0c1f98e23ee95328fe0f943750cd5952def18fd9dccdec8be0fa58bcc9e27f642cd58040402a06f48e5486721be0117682627d1677ea7a5c61f56d2777c2ff0428af97f46f45e67b0028ba032a7bffe505f3145ee2da088ec9905ffc2ec760ad39d6e85ce856935b2a41cd8ff4c83553fb7980491dbd827239d6f9ac498cbc12b9773fea5546fab40eb264f1a5a77b938d5b3fc145d9f118a053051b41ad974b74cd82a3a5d707ac26c9d8b9ad516b22e0ee2288af7efeda4f75f221eb54385598a82da103b3b1edbe1fdaa82296e69cfffe40b04afdbed2a2cd890c8489b88e2941189329fe5f2264678235f5cad34462498e205af59c5faffc6a1d89ffa03d0c4c4238fd609a7d5fc8430bf2e2b281f81b6d167a7747a40c2ae806637de8089d9949e87e8f9c3443e3f18994515d5bcd741ea0f6ae3d09a742d872e019eb7bd9bebf0b08b31fff86c7af40a9a62e023745ae2172107bb8a46c4e7d80df4b88188b9f9fd94c379c3471e679c00be74897baa5d3db4633215a63c1388d9eba02534cb9b6fa6b994ca49f87ad700dd422acae883fb65859764ead112706f84620fc230bf566500b534917c90a695a2f2a70a1e5c6adbfe23050de09c25aeb40016aeea0178dd5f47b8ea034f553622e208bde891c7f6c5488995768f7f470a622ce7ec5681d3e4e92c255618289fef06452b03dc72df12cff04383ea693ebc4e9bd31054b283b35e71412ebfe918e587e59c246a48a4b2cd6516e7324757a041e4b18c0b58c4877d1a11345667832d4979215d1630a0a4f97781f8cb95176ca6cac3dd0afb6b848288f22d5edec0c5afdfe274906ecc48f8a0fd35f2226a3ffe575c916d7ad0931ca38cf5c7a37b718a3ef31a466af252741bf174f0fcee00d7b610099df735dee186d991627fa50e79ed59a8daedbf60f0dc791a8a66e641888a765340db32fb376b91215c3c3d51da9a20773de15f6098691a55afeb0c4c847e77ed7babca2aacec64d625172a24aa2b9a47249876233065930c3a5cc624a589ffc9ad3d7fd200dc62c168765542d0b6f8d41179481962edc006b1b62faf44036490d5bdf3607a5ec601a50816c7a8a19733ac4e193b5612202bf552562b6e792c080e730a1c90a012d9b4b00602e69b2e5e69fadf43444504a653b58c7821845123320eb1b9b35f73c34491601a21606e07f4c735d40458c7fa02915eef1043e90b2457c5967249d24c1d2626925a474791443e3872d10f34450726940b7bf186cfca6801a9858575759a133d0a14942df3f4e29a82b1b9ca181d83fb6d1c2f2246d2af175ba55edaa672497f6a5de77f7990f8379841bae932e161be02767d4a7c2caa188da2566b7fdfd3e134c62534f587726d7108d8341c057a09ec370a9e41d1410261dd6f4a57b8332689b774837e750781b082fdf7a23bbf1500881c9d927a98164b8f7f440654251ec62e3902e9db592bf3e83307cc3d9d8830da110583cbf721eed1ff756c576a5b20d114d000d951bf53d53e8258b38c16bbfbd8701c39f54c30c66ddc2d09486f99c8e3434e5336b345b27dd1921d482b385259d44ad289c11e8ea07ab92c28b0bc78cd6b4bda802f91bd1bf70efa0fc69f80ded55664a20943c4c91c94b5a4e5c35626acdae605226bfe29ff92bfe7e189a0e9a6a608cc8fcd7309bcfd66bfc8aff0930e10e99d0ceba3280350248064ca5a235b5d0878bb631c1aa35d438bb34cca1607e3ee75f575a5cfb80344b451bbbab38e71969bd482c2a150b98b7d9c073eaaeaefcb305316e3ff81d06c77f73a7ec0b39db73ae65891e7c96d412d3909ccb57a757b7f0a22b7e6e0f04f034367f8ea03a987b99be5c505ad9c42a213e8bcfc23af083cf5ef0013bf94ef09971139d98ee736be2f672fc9f482a0fdfcf4ca3b2adf0fc76d99a7204765c62e43d1489fff187c0a450335d5f4cc9893b12749a05d2c9d7d8a18dc12f95c2d9640945a692b2f60c92ecfb3489583093bb79de29068983224a3041a1e4728457715dd3ac99f5f57420b75948b9b07dda4c3c586b4b0f30bc19e87c08221c83d61f6638374f31b532095dc6e012298842288a829d29b4dbd87645edb3e2302ac3d0c60c48d97a311417e1c74b2d764761841012a3b2de247ea771d29f51f62b7d8985ddc2d10abffb44ad665810de9802183057824682820a8fb7ef910ecb24db1e1760ee5e9a4e5d2c39f0de405c85a46c9104e4b36421ab8492b98f822f4aa32fd65af7db1a3bc4c39fe536dd8afef900015497e8d72ae57951fd6544d4dd14ef6e366f118aba4d6dbec6bcc9e29f673bbdfc0e32c939107188e2228d60f95dbf0974c9fde4e22a55b72351ed24628a2ca0e9de0d48bdd643ca3398bce26b239c3e33dc2d7b922020f1ffdc7dfe56b021cf40428ae609b9b96451dfed1cceff541b8a66a524710aeaed1ac45c3a735b07da19983695e58bee180ed29b1fa7fe97c6b087571cae5494932477831126c39b7432e2a3dc6bf3080afb9055e4761fcc89e9422f81148064bf3be77f6cfc5271330d46759642ef405c55fd82dac0d9bb4b9dffa7bf8ea5f23e57080128d726c1f6288f0088394d363edd3e3998bc920fc65b0cf66537eb6788625473ae4b920ded6aa97e80993097565b411f21272898ff4d17bf24a4100dcce847ad789e9d94576828ccdc999116d07e336275cb6c69d530b662fe2de6283922e2ab476781927af8c2b992adbcb27d0b07ba5abda3c49c1cdfd2e697d22e90182c5f29572d54635ad0ec259bcf4bd104f67d91ed04d3273670fc559b4f3d5c61ac869ac8c4196e45d24f289d3e8a9e9ff9c8e7b23c30b7e4a8bf8e9069ec6d9df19d57ba1cc9b56ee812281b5215e44951aedc1fec44a24fac789c9e436c71860ad9ae954070d768593c2de5a5191505007ec5802a71c0b50318499d91f3b9d40e3165a9ef97b34610c9283ea71f9da44d19a72afc06dda71acb8d191e7e9cb0968080921a6617151a5df76b1c32983f445735d7e014c04ec23440bb48dbf3b33eb088e4699077122984d9f59c54f9493479aa26470096acad35fea07f0ca8b927f31143b71e278714828334124a99562faf688415f0bf38f4449a25caf352da7813a2c692fdb34355b326593eabe7788dac97972307574c94588ae841525cfed8ce42f7bc605316897d169b334d389a694c309dbe6eec94ec5d1be19416275ff64253dfadf587fbf4cfeacdd9f7e6db224628852531502a40426bba82fb292a026a6ab90ee66b69fa33423c6c6ccb4cdcf1af700ee468f3398b6bb463760d3a31a75c843faa48d8a76d8545fbbbb7cdfd1cb43b212366bd637f6ecc9ff528833c63b658d2ab669628ac4ee7eaedfafdb0ee15107cdad7c7aede00fe356ff961e1b83db30db83e08504a560d70f6216e65dc4a9d2d61748fee2a1203353f6b7361314d086c4277b1141f073d1afd70244fae5673bb6397505b80ad1846561100019119dc1e7757c60f5e1cf446f3ceb3e493512c9e9ec31112fec4f321b8a34c89b3344c831d9a90ff07ebdba97a1dc36148ec83c268b10591bed13f134a5f53c878df6eb44acaa546eb38c5ca1b37e84447a438090eb4bb3f604ab77ff120830dc1fc2cfbe393c86a34c33a84cc0d27d0109a96c5f97fe4e21d32245a025622af79b74356f1b151958ed65a88c6a33a8c7e3bd842b19b682677425daefd1bdd87b92debf8bf642815d49a92d9add80ac427341d3a9e052d1d6971a217a029d771edb237c9d499a5dd4ef4c74e07455707d655945fa9d829ba36d69149405b53cf147babe1ae2f3803891c7913ff9daca7096b99d4a4f96555c12e4c887dfca3050ec196115aff4340ad545b287f5b2f3c8e25f4b48617022a7187462e3e29a0fef2b9d45ad195807377530ce0959aa3211f9b198a7388bcd9adc7b428fedf4ba685e72b7331c70f1eb5507c642c765ff61b024ed798cd3ee8e6246f7a6d9fb96dac9b1847bb859fe755d0d02e0d50821c4da0c890d7c7143c2cbeb2b75ea96dcafebe1075a6a62d190c8fa28e3ac4e03cb81d889d3ee764a456e223890545b4b6612c60cfc37e6f207d32a328954092c184ad595c55df5f4ec0c2062f859a6d2db43395dbef807210029fe974d27af259f0beb11b36aae5508d94b9face01cbb18b1515555548c61ff8145e3dc33e3677532859a178e40c20846219cfd0de5ac6008ad8ab7fb86327a1770123ea4e68d435fe9da6eccb101c7611a1a8f36489778ba4807f3d1d9025945f15196251c0ea7288ab56246ba9043859c013eadb6dd0efa6ec2953742ebdbdda7ce71403cb786e07e9d2cebbf87b2ab41eb1ce3f55613a953933fd4a4cb3f0fb07a9412bc801593bc3aee2c9068952873cb89256fcc2cc9c9cdb42d93a73069cbe4e5309f84c84df107498213e1b02052b72bc94d4097aa0d9941845308a8feea81a07374fe5c78b562035127982108ce1bc756b0055b37b2f855237402a14cc0624e3382d9bf5ad8aa3a48ff7f0a2850d88ead9ec47c4ce7308672c76aae4d360d9fc363f005e8d9e61e4bc04fe8403185bf75b8f841f66c02c012bff047ac760770f98adec648afdb23d692a2911a182cf27905834bb8e843463ca9b5666c1e893e27810fb250c6864500a9050a968ab12052fdd867de9041699b20661d5297393003a6c0a29ce0b37edfc8938bfbf7d66b42d102ab98f54fd7a00970d9d8a5f35bd9da4be26807f60c0166d086d9b949fe525aad5b99a9ac87f3729e3dda472078c306afddce95307ccd271cd9d7fd8a8115d03c1606007885fab4491336a7aeca6f5a272f30441c9b2a2d1f7c50ab2fe0805372ad1f63406868b866a75bbb89d0492b40df0be9136d22e50da2b108033d28fdfd22cd1ce3a55fa96e3060f72259f6fe3813b5555542d8f112fc0821e6cd8301d7d608744d537da4f18b860bf640a932fc5357d091a27c7f59086b2f1e469e5e076001bfcb8833a4844360d8d8e5a1db5945acae4f60c0eb1ff8d9e1767869ea709354bf07b2c8eaa4c0c7b82a95ab49bec7504a54871ae7f5f795d17d8fd65ea07b7c9e7e74516173533b36812134b0d93e85fc9e45586a3fa97dea4abde988945dc627a7c562a57aa324b88f99f04828dfcc96c942672d0f98d85d56b3491621cb46ae9ec7948d177d14261e0572beca749bb8894832c4cef8c627035165910eb3301699e5317011056b711204276f4f029424514dc6ccd4f1c09db3b0541919073ffd72cd1c3b10b578eba63dd16843a3e371fbad84e15f1714782439b732cf3f99f0ce5bc645ca11b7a332b36494f9e02ce191d964cd5915a40842689e07b7c1934cc4c204ed7328cf9694a4d60f0f572f3e44baf55b350b2a9cf51e518f0985c783c97767e76beb235d968ce88685fbf2cde4418cd24316d31e247caf67c37025a1d31af8fd86ccbdea28116bc88c010e8157cc877689d2f4bce1c452a5f518a3f623800d6de06e56af3648a9dda3e5d710f5d35a61ee076e836fc9305145c5226d2ff8896ba7b115886353d3c1ec54cfdc5c39c22dea951dd7da2b422aed841272e8dc47f8c5d265451ebe6f256832d7c9d7e1faeab8ea8f377e142bcaac48634fe1dcccdce610d6c97d32ae0ae6cf8264ad3ab16698616ef971fa7d34c2562228c9c69c4a5e1a4a4e70b2eb12db765f865fbb72f286d5103a8d5947e4c86044dc52efa683d5d309fd4087eb85c5e11845fa3cc37cd83227fd710d9f559737a6db3aa20a68ef5582b8510478b77a2afdda96bdf7493edeead18f3783f8dfda86ffd19484341f1bde897c1da9eb586518299677d11d633d0318933208e5c395a5b693bf659e33a155a368886a08e4fb97526a1c584f6c03c58e599dfaf1cc159a2a802ee325adedb0b9e2bba81980abf05e094330f5966402bd5843b266031a165d01422b5438f96b0d8407e72c306c5e5bab3391637d7444138648ac1c2ab9483bf4d77d0fa25a254d6b33a4445553c9406e0ab68762d6a8d7340a3d9d0544f815c3b578e1418940b9f44cdee7a50393cc3f5f9b5cb636fb22a31dc7dc2d4ffa005a012b276062bb9db06f03164101885c53f3ac22dd92a9abce55836b4da54b7c5f413139c33cfd787e2ef8c22f6300292fd032106d49253511da930e096f991e0e1e11a3604a35e3812b30612239d349ee519819bfb5579452fb7f11b3d220112c5f1101e83232906a60f80a7000b51b1a0e4d2e8db03a3458406e7878928d66a334a1e74de5882d402728a3db8a23b734abdd37364c5a27a1b4271ef3638690f72f532dde896b55e5ed3fc5db9fa6bd4f307c8bc6ba591bd051b42d1860b783bfc43370c97cdc6314500c1e3371cabdd201e6e902669ece8e7762769beb76fd701df32268469b479172f9385a997dda24a0974dcb3f842027bee9d5da789739be2aa531c6ec4e45387e6adf74aa94b885d0dfaa591573c260f9cc4e40ef2b234b679fec9b725a12a1d349cd7996d19c63b03ec68242df1d6043a8c4d4482e021c88d5380e552c077b432ac02d925e11937833b7635ddde8a50913bdb9ef8db0316ecd0ab23b0e22efde0bbcc928ca1e29bdf44de7030f520fd37a3caf65ce1efd47efc6bbdf0e1f9fb475aca0e3a727722efe813e58c802ca79f9a29282dcfe8e7074048a757566485f17686dd18b0657ea725bc88bef2e10274a0e2969955056be360a8f787530dc8ae198951ea9367d387370db14fcccb5249b8ffa5d120f12e9a3d5a67e5bef8c2aedc8903db64503ad38db79d712855f29adfb03e6050673244bb39d484e123c8e422864c27b9df3f9b1b92eb74ada5ce19b4134e98cdfc2fbb0c03c1ac179301bf44b8cdcf7669649acf2a1fd2e340e84a2513461153110e9dbd72d5e5bf28e82c2d1ae85d86849cde3ceb22c23559d6754bf79b3337066f1e2b1a589bcbb7cdf5203344b8697ed043beb8c06619cd42e3bd6647d54bea24ad54baba4b93ee555faa6d4d0729265ebe9ed629832753696b02ac46e664a2b4622e8a0d49d0e8f623e317b1a9479d9475105870c420709d54f00a1a2d5836d946df888609de717cb9967de438b34139aefc9e0f9a2370c38120d348138852026295df0008a54287e7f6409d9dde6f0585f63b619e94c2d6f0c4a5d9814b3ed29fd9617834d1d00aaedc3357347bd02579da02278f7bc662898116dacdc47f9f818d6e92f43597ce7bcf78d1018221b8c6e44e04d6564b093b2068dcb4f925f4a0fcce13b48119edb44ca08ef77eee5491484001a1a7c8026c3aa774693e3a0f02acb46505a347578909cc5648507881de9134098bb89495b731cebcaf452a6336d1a11652814f501b299fb3cccb203c605cda6ed46031a0fc11efd0096814174f9bdb591beb5df0f5a0e77577fc0a760f2908622bc61b15bc369952f4f3bf869fb70083cadb49a2d3457a2fdae94493965ced7f045f6a79c7cdd1e73299b3bd4fbc818f117ba7a5b43ab0b7b91bbcec8bb04b4083b7ea673f91ffb82c414c01bf62049bdb774a8e45bc51aab24b724d7ca12686f2ba5e0be2521bf258e6ee46b6bb2d69cda0d1c495827fe5edf6e377c5a3bd13cd83efa8a9325046bb3c70b86ac7eadf55dc6f031e33590de5c1569f4029b51256f4e913bb9af76a703d9536501b12874ee2c8da169db40837e0d1edbcc1098dc1995f35a45a86954ae71fd2bb7f240f2c59622d1fba36828cf2d6ff49e0c7f6ec9b548cea7b91077ec6335256af05cabe38dcb332ad84698c0c8e63520f8a9fa7bbb9aae9a98a7f5d15feb25ea2c12e8394dd78f0391072e0d4fb20869d6e418ba18fb5014735c3268875a0bc0fd654822f655d316e389249f1042e950d8d7964ff36e615891e1cdf15b6ffe20d037cc27bf793ee771485c43076f9b9d2f2462b461f0a5b3794d73f50f56582fd588647e7f52478e1434abe2505e21324d68d8bf2bb0476e3aec5b21c4c9c0b281579a398456afbad8ca4582241bed1f0fc95fdb1e649eab705bb5ee09a2402bce10017fd4d965910e59bbec8b8552c3f4d8b6ee29a62d8358b1344719db01e1139e741ca412a4eb6c3f988a12ce430801b00792e456d0c7ce32a695edca5415effa36355977fe5e136ce326a839c5ba212662d48b89d5cf13de01661899e354be1c82b628f4043cb4fed9d0d592002ed80966a0436b6576c5d1b25097dea4108a9901acbabedb804e56ca7786d0b8eee6b4cc658e2924332034457f67b0c8dd5865b71a5015a2cdb8b28ccbcec6887070da905fe639e6b6762c8c830a23a4f243d29b3c2642dceeced3edd3286386f5c3fb125b96c5dbfca9a98697253dfd4bb3b22b5b1846320704d93c48f8cf06938f7cbf38c61e4c0d67aa98a73571a518cf80e3fa135cb4ce51f4e591de5f8b92a12443656615cc3a1f2757a8cd93d801940dd3bc64989cb2b24594489602d0a69aecc649476847917b279313edb4e1aa7ca217a27929559363ee3f4fb335f8840bff7f060d72dd46566b50e74498915911e8ffcf0d73a3fd7afe0a469add4cf9fc3bd1ed7b4bc30b7eb2fa4904cdcb879ab82dab0e197e65efb876d4feac3a3035bfa6c6e41abd793917093979b697e371578b01fe221c206dad36b4e4cda7950f4ef8d094407cb8441057a069308c6acd893a056001f83623503f556a3b9d462f9bfefbbc3f3e4d1f0ffed2e90c257f3cf18e394032da051001bdb5589756e60a9f3d4871625467547738a239a57b6859ef3e6f68eba2b2b2161c195371633144bf6fc96e364149ecffb0b8ab1b94150b93202c1c389fa1d5ce0804632180bdf7f9adcaf7710895c52347de4388f29d49186b21f93341aff51e89cdc82ee7507479266e9209a4f513f3e7323c7b32fc666c56d7f82a49700358cc73ade7af471b0f663df2407347a1e3f5a935eb43ad35f6a02de279a950aca2276d7ff97430c55c25ce94a71217614e0d1767255b874e51388b72d2ab3b0aac78550b79066756a561016e28670da72ce19e05d0cd0fe9802e070403bc2fd80d9ef1ea2a581acaef77deda0078673273a8e9bee846552ec9ec561e108ce8f237b8e5c4f8d84d0774d7d3bbb4ac18a9e5a343d6f1bebdc1bef6ee0bda171be0d14f1cd97efa43aebe3e66410b9ba8b55e656a32b6504d03825bdf0d26b7ec5acd040a248e8a87dbeab4c096351d2a2ec9b3280c3a7f8ba0411fd78589cf22d601d359bdb880114ec7742f320240e2fffbcb2bcbe5cf5ef9aa9371e29c03fefd830188fdb54b5c67481369960d748216c8c3dc6bfb4205f4789122a1e37e102b87edb76c0c61a179ee4d9b05f25b0a200d5901960107cd1756d401ca1b44264ea433c7a82c862351d201997fc5a939ca864ae9c3b8796ad57b881c986bff6b645fef7abdf3df34d459aa48e5ad881fb618ad899ef650fb0b9f1342a22343d0d56f31068547991379f1909171f95b9c7309d9e6ddaa6e8418640773a5fc2d98822a8228612c35ccc474a58de7c9be56c3b75f939397fa9569cf5d48da06e3ad0eb68c6d1d7da9877113e610f8f882ccb07ef7730d9d650fcf5028a780c0dee918cc3077b606d48c2ace778fe5d0b8feb8a6d7b45f2c51707957c52f0f0cd6a90310ce97056a297e80a9ed276446d96715e55845ee91b04834f1ecb86e7ac24f093daf7d70a9016c2c4a0682a53055324f88e8e4da8da4ad560c5611f6dfff3c1bd87f10efbc4c3868f8c7406bec3aa2831067e2bf2ba82b797f5d542b3edcb03a6b477f31ec0e63ab0e7776e55a6f7c6c32e9be39aa5a676145249328bf2c0919ec3d4584277bacbed98d49f8b46f6d5a77c1f02d139e81fce28e01b6d5d5fc1a35cd0e237d3e726b96cf5bf8c4b04255fe8d117b949528580e5f112c8d151a11ae893b68730d0d6219306577ef3ae7f546fb344725c3b443899c9adf9c8571770199fb358dea7edb4213e39119091246994bbbb3b2d88376d7df66a860b8c565860cc26b7a26049938eb4202f0884c9addaa451db29beff7e692c406e3bfb67237665290835647ae336cd79b35419870d4bc96895f4e58a725bb4f4c24c8abfb8d4471e6dc41ed742da2e24cd016e4562f40eccfee43dc602f76c29f8042d17513a19ff166e5986001e4c2addb246840366e44ab184bce371025b30bf816c0af32c8c6b0dc9648abc097cb1649b7e9861374d28741363dd0be6c915a3b03d2c0c70b4acb95e13177c87a2a4da08c6b8a87ffeaeb9036020f632fc7c03d727913d916b1e9a2884bc63ea68db0fd4b073b85b8b7c6b7a018abb176c327f0cbb07985fc5b0de19bd300f6506c01ef21469f56ea155dfd47720ffec9b9559bb5679116d9473539615c2ed9098b5c1e8b8609c5b5595761f6831e3aa763ce823402df292fe5deaf670bc21e70bc1514f5218474c7f89da9d4ec0fd704072a0da08e8556921c46906494b204b94369d54d462446e274e0046b16e26001774ee454521a2d0c62c418888a2b67fb56d3c3a0e733e7302fa1e4322480540028d9a2193c9ff6c29794aaf357828acdbbd08d6996b6b0efe2d8b74121c0dbb947322fdef5a7c24c99049a4ec18d3dd8345e0121a8e2d7add59fbeb734f771e1c8b17bd5f2d73a24f0351052aa11f84f43def6ac9a399f4e547106f2c50eabb61ea4419e34945d68452ce61652596f385dd4d725879d33c9bc11dfa5714af09fb491a1bbe35337253d6e4bdfbd292e47a0ae04e1c8891198c5f173b5b4fbd212a3c9ba50e70616edd6cea12ea5375f268600a388d2662d22ed63515c64671434e50dce9b29bad85a0684dcc57ff211e314afefd14da7db5cd51611e0671714fe403eaef7f8fffb7aa6ee74cf1a0534a883215802da40b9383b3ad21e947254d17a3cf12c8c62ec6de36c56712e18bc10f0df136cf64bd4248c13d9deff821e5e07a568331ec69b94860b7e6c09767adfdb9dea92fac931a0d9bb2436fdd1ce7b9feffc5dc784b5b82cb94047794bba0550645f6cf956979e906e57b85e446c5dac3af2fdba16bbc272df3f3bda4250cb14ac14edb86a23f576606e0d9586f140c74746df50d4daf5bca3e5798e3accb97eaf078d5e9f4527f666fbf30acef0f071ae100c20df74b5c9186c9bc9ba3976836cd4d9941d61b96bd529dcd322d14666972b90b506d6b27000655a0463c93d171ed3ba72d7e08488742aea5f8702425e48d42884c7a2e2f8b72fc50722ac0d800f9c3c339cf083612f75e621af167b2ffc295dedeee771e7656332098378974fd11fce592b51282300ecc334c2aa68eab1882fdcb8e6dad504f621d2eeb38b4b7060d76fbb49e6b5d8a4a737813d07ddb5b2ec22b5ffc8589da67607d447e78e2a6b6db98702afc49b1df15a0487547f7958feef0f05338c9761024070cefbb6eafc85c74f0b6c3a289c5ee66054e07520cf16f098f653f0745a4b08271836b575ea84bc94948a520a0ebc1f5aab30d0b6c73f5d0ec68158b005b16be8217cfdfe5d0857a186ab336ec73261c982350fa0f8bd6cf0e58584b19e1b7eb86ea8106a54e4249e9a71cefa43539dc4dc0698aa07e4900ad75fe5cf8d7a4267120fb2e414430a74d1128c9963b1fca35d02ba2a7e9e9133bc09a64fa52c4376c43a6437b66e53dd3be41aa134358e9e23dbeff143b8f731882b13b785acfe5f8bc8bd2e07f9c8582461734e640e1f1501650a7193873f326c61c3c4a6c1b5a375e89e647ec4305d947c411cad92627790c58473377a8752cda80e38ef93464bbdc1a9f5a1fdc156de10e0ecbe9c72a8ff664b4bae5e0f4f0d2d0c021e549a6ba4eb2c8551d26438a3bb40495fd27755b4d7edeca4184b1ff05e3dd1b0964f47ab1a0f78301a2a31efcc4002fd9d15d74b114e2df9d167b4f8e1517ebb17370a6638ee7ec77ddc142d2111ad4f4a9dd8962821620e3ee4fdbcc02130a1e2a2d92ab8321274112f17eefa7e39cf7f07493c71b3cdb4e3dcd61e245cc2605a461932f812a38b61427b2865d7d744116df72ebcf2b6eed612917384fdf910ee477367ba8bcf53e92b527536e9a64665a7e89fb58aa632393b212f8480e25561d808a81f4cc68d79f7cfa11280f9cab41a9d1c9fc405d2ad40ba6920bad6bedcdd2ba14825f499398705d01a7b7b38cd643484cdd3d098b3ba2993822e7bb59a9ebdf6c686cc8184c8dc269a2c99d37bc4ed61ed93d2da789147f63df111c1153c747a52157831e7d90221349e35b0e115675fcfbe196310f87e74c817c4303e94d753f83baaaf5af15d9ca2d69102921eafc4a7f9296b2e31d51736670c20f5e94bd9f468b1cfc48eda1e0430540d2e88be28c5a7182046c170c1c5253618aa4feb88d21d36f2bfbc845abeb58200767b738ee63dea1d830412dcdc01d13bca88cb5b46e86b68a86976d030f34a1fbbff564be002fcc3005c1e0d24c976b621bdcf626663608b8c629e5c64de375952f2158ec657bf7e57c6c15b9220b662c0ca9d7d5e5a1be6511fb4e553a67c4efcb448f9068a3ee22b32886d685666d4054d7cf1bca66abd8e436ec14a6a648d817c2c664deec67e7600c9cc064f302b6d04ef933d6557469e655a5edfdeda95365a614468eddbf87433e81d2fd2015196d34edbd2c2bb20831ecf0ceb64d7916085a12b8b032ae2ad3c901ab930c14ecfd49ba3e58ad63b5f3828f26caa9cf0c5813d9600018654c49e484af31bc1523eb7e449ee374c5056097546c428ccad383b7d7885a00ad3cf75b7e83803de8a6aafb94a882dea4a4e8185e98d70c373f3313f49fefc1b99eec2b3594aa1ac4d20a32818dcae9d2cdcf002da89b5f92d5f994fcb603d8a7e9ed6da19150d76df74cbc96617a0672d405dd0a1db7dc275199f32a033feccaeaba2471ed8d67f9db0f15699d5312789c5768097b35937c20146a5b618e093940a598f85e0dd30e350a72359b8209e421ed89b2cde1b868e78f73a7cf931a48dd7640f0612d768333954b501d972bd5f01756301e338937fa073146eda695058ba87067b3349357f4065bf7c70c97e7aa71ea4d004965e6e5cfe2ef8265780a65e84a40d99625ac0fdd19f2a0639df8854a3f3309f84624e7e51f85f8d3f46f59f0a7de994829110bb70be295c851bbca67482752e6d8027215b565de0d7213adacf5707f24c8a0e5205d43f64d14545812fff4f7b7c562ade955b66586c2ca77b2435f595f1fb88d2da1e5f7b31b8820752fc9994b1005f26f89cfe4d8b1a32406f8f9bb0c8fc268e1b71331c13feca74b2380df0687d350ca7c3355294cccf231e6767cb3c578cf6c27b91e2b86e487e08363f032a4620992a5b3d514814b75acc2a837f2f9288f367292a00e3434ee5b0d4afa686de7150a5ee227320444168f2ca2cc33041a68b633dd7af865541d62ede3af0e24dc9e21e58732228d158f9cc7a2dc734adf8e1f0e0cd67d70c5ea01e7bfc3e2d85682466c957f30d952709720425013b07f2bdbb2b9bd648b153ef3953e6f9934a5d5071dfcbc83102d9ee855c9d2bcfba5dbd28f75a25c896598256b3af18807195c8840e13bde70a7ce95be11525965ad2e8beb0bd8469eca899e3ca40a66721112c1f2e373ee5fa00e88090c82143e41290e7a9a170f760a36a882b57e10ba34a7930b8c7e2f477f3d228f485b71e472c5a5b419fb131ed5d94f9ca2976f187ffcac27859a59db208e27cf76966e769d6f667e02851f83ce4034b5e8a35e1c43a837fbfba962b16d09f254d734bbf32a8789df5e98ef856f4da4266c72a96a78765e584fb00e43e10af97b08f7fac152e197e1e37d4ee804740d6e9dd818f2bde59e93495b10c529c0a7ce6be61ac5354664d6a95fbb94d840ba12c4318fe444a6eb2f4278b970f3af83f99ecdb57d50f4d593b7d0a202e0cee01460d8340772229ffcda773b23e42fa38c28ba88df171a836edc4327b9205001c04baeb42b63f23d0f87f17774c6ea73058682f7d1b95d1bfd438f79325a8b94fae89a88e4ae650943ad1e61a7e562d1da3d3aa18c6656a2eec572c1a16a590a6d2e0356c6a4fd6128035dea15a6696b8575be04423c127a7d330c965d5228181ada585ac80cf2f98db0b088fa77a67cbed02d35caea903d49cb6006f1af7a57426888e795e4add70de73d43b95c17d16e0c6a9e3f69476ba18bd631150d6334adae8af0e2e14e2848dcce530a598a1c08dd9dd9bfa39ddf8a52bc70155b0e2cb125d7a5159127e2b5805257a85822a14215b091c2db711f0a9ac00c608b385b95f9eb21d7bf3f373de05a0e643ad82579ffd377b89192727c2678894547b35c26f8c7255d83d1d7f1d49dadbff5f83c1d21f947e43245ce092cda7c2868e577984f72e57e92ca04ab9774be730da0dafd5459dd9f72c38f7947c4f79ff7461f11dd73e4e6db4e7259c55e8f7fcc443b5a46ed567f2ab806f425757e4e2de6be717a59e2f33833fa46a37d34a71d2d1afbdbf64b04d9c6cf7ade12916f16e4da3d5434d71ade841eaac718188127f537cc0f7610d35a00ff21cf22c45d51f87db6d11900dcb1ff5b37cf171b75390c31b004b4099c466f1a54471269938deaf78402a1fb9c03984c9a738a454f0036a488e9bc122b6891e4aa67b3c6e74e18ec8ed66af6f933f499002a2307486b0ba9ac5ddcf04e33d4f62667b7e10ac9f4afcd9d95e75fc0efbf206cb607a4247696479829d88aab202cd0dc37d5818684f9426f46dd01cc169f66f1c0874d0337195a89f8ffc3294adb08c430bba5f4e1dd641f28597bb02edf2f69de500965619a578865475d9da2e11db1012567dcb81f9b5fe6bcb158ab2142ba513629f3dcf599e9cfe97262667ddd12ee23d845cccda779b3c6c6283a04e5668125deede48025015a43288b4cf83e6da0e1be42723115dbc31d2efe37f3497877c68bbc886077ae6ca53986fc216530a3c8b2a2130d034ed0ee376337cc2b3f61acbf2b2c30588a303b4461949a852ee73c86a1ad2aed4d9698a2698050d04a1116ae7307f8ec3416fe758122ed7eba40e4fe36533a4560566805c08c67d5327f3e56dca673800f51ba97912d7a2728e67e1ecda800fab95766267e8a317433433db09667a8bee25723a3902d329fbef64f7ec868d545c460328dd4dde923271b77862cffcb5c8f65f856600e202e2cee157f7ce0715e4440f0e4439b99c61b6b9edcbaf57a67ecf9387befb2c3793235934fdb710fe0024744ff400f9ac99cb8430605243fb1635669c71f6c3c1b9191a60b7011d60dd1ca5f8a3237e7e3ce2cf6ce503d661bb203e79cd38543e02baef375f7c99a41b3a21dcc8546425ca516f455e64228b36e4c4d0724baf640099e1b0e3a38ee24c9ad2ef42f232401cc676b7f000d1edda0c0e9b49bbc72d40c548585a00e7b8d454c56d751e97f3c5c354a1df5c70709bbb140d977af3dce4028b6d45992b41669e4b625dc6555ed163b9f315e71e3a7c4b7a12b5cab81ce18563a73d01dd5d2fb5d2e6e029b13f1a7578aec175e535e5b2dcc739b3e178f577e1d749a9d2cad33a6c2800342cb866b0cbd47f9b754ad78b2a35632e95f372826f3880613bf574e2f1e024e4331f648fe8a6147f6458b96aaf454d69ef0608b336f2de61533de666d1c42503d712479788af9056b3da7e2bb482e07490c176f748e7d3b4d1038385966a75204d0007be9c4b071baaf50ad50cb19e544ee5aa8174f78fff74d748ff11e42941e1ef30a6277ef225b663d26193e87aae0e4f68b32f9b04b67315829b69f578145fab5ad1a63929219c6a7c689fd590ce33baa133bf7b0d0817c8b982d45f943e7e34642eaadc1fb94657f7d5715d06f05f7f753903e8ca83fecab9a5e4bf81ea91dd619d25293e0bff3a5cffe6487d9725c2286f1476a432f07e2f358bac8fbe05fe04772225bc9626e72a33cd452b54b4f1d1101980562f23bd181ab622554165bdc379253ca3099a8f45b9797d11a257a81cbc8d763d0bf4ffdb7ece986288b0a26199aa340f15321b33dd384fafe8849ca27337d48d9dd1cff2034e7bf04b2d6115d1a07f1f1d429ddd37d770dd771b6681b930324392ca122d1a20f502caf87515644eabb44335c2b3264c59c8dd0e074581ab481ad9d5c48f0d47240e8e00715046d01e15fdd61e87c1ac3a04e0b7a08e161fe351cb5ff23a272c79a9851f6903690a9eaa0100adc157758c79b79ff8b12e560cfb30f6a329da4c7cd9b4609d585cad874d061b0122a16a5714ee8c4800685e10b55d7f800b2969d9056b5401c07df9eb1f036f3ba21d7b411a918cf918d0616550b4f25a05dfb5f17a7c9e80048b435cd3a4dba93a05b44da5d3e7ef5188fbc84584d735b43879eaad6606c3edad3a193d1338da45a8b95f27c82086a9d2de4739ebbaf101374fef3ac8ef7eaa5eae2f959ce393afe1254a09081c456da50a516ff167fc0f2fee691a018ea524b4cb46c5cd4ca61d9de8919cacb43dc764c6a26a2f03b32fbe73dc440fa19e0186edd060c51ce5baea3a3f005663ddd15dac79c6d6f25c5b8f43344dce2e5b67c6b1211d325ecc15f58854c9b49484ad994e580e4cbddc8ea6d219919b217f36481646dce84cc58bab7ae5e5de2653acc7c76c90dd338f7eca1727cad0297aeb49242d033744ec8a7c16fc9f2915c9a52764155fb695ae94f60a41e9c9beb3bcfa409e978520eb482382de8aa2ae27c0cc9393cc70125a2267f505f7afd8f3e3e6125dcf34d3cee1924b52b4577965592a127fba326f88778584a4af4da138ba298c0b097eac2be2d4fa3fcb2b4cda80e90e03beaf6be671847cb6b76990ef972ba0594617ebd78d7c9d5d5b8112bfa0009103ce5a14e5bda2eafcd37d4e190875def1306b73ed85864f18877340b0465e48f147ded14adc3f1c0af0ada4bbf12bda8b36f1467e24538f6de52b4be8110dd5063c4b5161359fb164d4a2dca7875367e7baa68cb41d921e4065f9f94165915d319dd653edba0b87f40f405cc764ecb5d66ea5b2b59883c6f847af5b41bfb8f2e729e80fae2c719fe597cccb4f83fa3e7ce74e97786996ec4907e2acb5ec9b4ab4ce41b2c74991356f731a1aeb22a860e3e57e1295094dd5d1f7ca8801be5d0eb77765f65612320a9311ed54cd40764483d0067e876e074e7f8cf4bc7b91c92a1a5040a78fbf0bc22721a70fe501fce4e0e01727f25ce64339ef4e3f31a9790d90dcaef53ba40e9b43f7fad50d4127b6f6a794f26b98e9d3ee55cb5a87f20c1d2020a7135b379ace4573379010c19c56cabf01c16dc5a5945824efb8f50450167f7bc0c2436ef8da66413f8e131d029eeffa94e70ec1f92e7eea75fe653e69003ba73cdc02cb21b4be1a20089ff41cb808dd32b75e993875d61b984d519199331e6acd56414c9667b00b79dd5750eef27a24a510a617c3bbcc5dc7d9ea9f692aece96d98fada88345a5548b412236817d57112d91174af649eb445494b971f814627ea5a6ba300c39c14abf03cca78e6249fc850d64e8c2e2579085e6fb6c9714ccf9940168c19d93a92adf02b388c93f4291ef9b7ac4ef6c7308803b4a11213bd5331a4b3737587d3520c597ca2907d6fe8957381f9e8f5dfd192a1bbad2b04c439b3b2e88bc6255b7d300209abfc39e6bf07dd47aa8fb4cfe7f5c29e4aa3f2cbc9f11551869640e23f05260ad3d9bbcfd5374be0cdf4c9ba7ce6330e8cd2e54ed1349b714990a9bf31f33b7be29d17b092a2557f237e224d3877efbf786c2def942a63896be876aa1534c1f05d6ca623805ca18ff89e10615a7640173f8a21e71c57d97a33110f5bbecfe01503592d280f273ed5e92af73919fbbdedc325bc74fa838ab122c5c58f8f8d9d9da66573741f484d5bc827897081aa2a03875dea5cd86d3f2e2af2b04c70025a5022beac8604635de27e6aa8cca5d28df9270fde8f9cd6273eb8fbc76420d5c2847ad41db97d01168307879608533d2a7c417f1f9677f89e6f53354098971ad004273f8be41ee77bdf7be5c271f3d1938b9dbd7e46e6e0239a1fabeccd3937b867dcbcb315a7d1cf92bd68e210e32e987c0332e51bd211b59a54cc675dc6adc7f55ca1d5f88f8873c2ade8eefe02b24a4b8f85a0a44393555528ebd5964a41ba34bbe7470593a9436c1ef9fd6e8321dd917692418b97646ca641df87aee7137e97908faad0c6af2f94d4a491538871ead21a33967354d58a2897251a5fec862b00c71fe2e937ca5232dafd64766b6e2aad001a601af2a08232b4fa49a6f7c82aeee62711aa5a68451ba82d6dccc6a1bfc3e1062d75184084c6199534fb2f4b3b310f56a770e17bce857589b992d05edd397b6c516f90c9d851f29c3360875c23cf74aa28d95524b2c3904be2ef57d71a9dbda09154b63219ff952dd9f0accb4d577a1f9d51c9586a3e82a98dc8bbf334201efd0c639f3821d1a6e8e2111063d4cd04fef7ae2ad93d0c48bca2766a7b58c3dcd9dc8e9bcc1d943ec471749384ab281202b69ffe6f036edf0b59dc71fea4a7cd259f7413175eff8db7d2d90c3783099a8f8ef87aaeab159c403a96950bb8c535ed098a55a45fb20d62afe637e9aa850afc3f1efc1271b16c71c7678b886fafbbe32149b1671a9c8694abd780d3628314b9ea4943e1d41dc4cb2e797209aef1717923a613b4a94d4115ff5c852092b2115c0e28d54982d86ab369be2b7bc6453fa6a1fb522b672c1a1ee5330437fad08b5030b29b338bc124360fd145ba4aa265515814a39ad96cbdf0086e3a23b0ff5166571af30f08036a0ab6e56f981f445b354c1b8e0bebb17b4a224572195c5e6ca875f5af189feb2c0d677524671b2871fca6dde278b25b7ed65b1670d17deb26c31a5968b1d2dee6d640e946d0abc4ba78058fd9b480ea11fdea2d462ff50a274ccb8f90d9c5084f71de95447d44aad02624011bb4065fb8027816042c123b97ce6678a354a1fce548be432a3cdc40902bf09235e50dd4c0d5d1228fe825bcfd9b2173f953f3895d97e777d99e356a628cd869ac86a4b725a209702c49ebfe5628595d3e9e6e9703788370d787d5f7e4b22d0d0e7145571bb1617fd97226c60645a7758577e48857a826dd7cbf3a884223c2d65b4e66e825067bd42c1523411084f0c1ed89c949e0d05baaf3c1174e179fb8c1695102bec954245040425d53bee26dddcb6a7f1e296f2c9e96c9852f717218e2319d1d789dc57763003c4f7fd4ec5bc3d885b6c94abeb1acdd2bdd1387cd917735e016e17d85cb10fed0f04c5beb66823ba47519deed7cf0c8ea9f418522d8207fe88cf9c18898c142617c3bb9ba8b957794fd3e02a6295b58ff77ea0d28f4e7e67e45592d51b8073fda5d1593dec637e602a028a5f7a964307380f725651709e2aa8b098ead4a25397b2e27e3af9476f1de410d381d380d2eb720947092c2537ccf713de467976aa20edd1c37de8525afc5eecfeec649999a49d512f07bd5dd1690db78a5953c414113886eb6af8ee5612c9217f16e8e0254825d61d2b03b6f59db7a2ce36af893eb72ba49d0b0b0441932f1580215e4804a66bea8b7de3fd08cdd5cf6a4a5ef4ab8c9010d514288805b9ea87555a8af5cd5244713d81a4510141df95cf6d366ff5d5e542ac99f79fc0842b6f81777297c83a78d76f9374c275405d692a218ebec8e4dd67716b484f4f8c741a4fbbe1ca8cd344defd33e18eca9b6eeafc77c62c41e9df532c7a8cb936f91eaa3cb6e78e64e1d935425160eb7b0142431703bdc668a0864500045af202d8d4d5ac7756c953e9dae7c2a2c95ac9c8a0d60fa359a8f4551f781305ec5d7fd916039b6f47dbfcd4e291efb4d89643c8613e92b703598e9f2e86e6249fa16ab1b7ab4b219445d301fc6f7c87ae08ff3bf3991f9128383cf0e99b4551772488506014330c5b5d4ef1293724874fd16cb5d62c1a64b9f9baa2bb793d52981f31520b538cdd81100e14debfda3a22621c8d224d363dac32da61c346bee5ce3ec71788a55a122cba23b68380ba3374a5e75400a2aaa078f52de65233d65c06d1aa36fb17cfae4807f1e6f5d736aef5b64b572cb2b98e9d7ea7d871ebad47d388960f5c7b4c9504eb4e5304285dda392cf0467ac26ea11af1e64958d9b078eacc82a0f6ab835452a3ee6cf6bf2ef038ed9edf4e04a8d8f5225896f8378b8aa69872e4e82762f96acd26e602975d0cce9c2e602214c872b7796cbf73f5e71f84eccb5ea7f5cc8e478a9e7dd6d6f5503c91217304c8a8e1edd6833a9e651847a8ce1dc27ada617a28b388511236beeca55cfb51154ea984a89456f686c40fc757db75fcfde0b8d2111e6176cb22597b92e58ead0b9bf151fe91f2dfe8885c9e7b65a7559f2fe02048f25d5909bd70a76f0fc72bb0284502874f9d80b78609a8222726b6232f0cbcd80c078b49a177170bf3ab196004ffa3e01b2d6699e1902dff81569f2301b6131175a5eafb82c8741ca7a6468f2d11b32b50abe76bcf4a28e84f75d88846a2c906e17ccf05972eccb99845dc414421f58d9c5180b92a02185643795513368a720d4a01b93ece209ede73036c90871c62af64346b46d5989fe8d78f67d802613143917a43f4df39b4eb9bd25a2a24dd523e2c2c628aeae58be0d217d9bd926f260634c89a6724b73825346f48d1d2ba086c13d0622fc23784a4533b310085c0d8791037694b3f089c34b8b90ed9c620626c63932494c223673e748bfdae889655033a9b4c4a9ab98ba3249c7badec8239f92a587b4a038e41dd793faa2d03e7bed0dd1f3080af439d64af3bf64a784c7dd0ea083a99bf12e15295f923b30613674e377f85fd238956491079d6c1c3a18831520b49fc983b3e94333338cc985865b294943c47b20ded8c590154ba7d0fa6620b9e8ca1a92a5e3cdeb26bd848b6c3716b7a84d5e42f6c48607198ec2781ee2c9873e7ea66a5d60aacadc88a163b04c77ca6d595a0eff1fdb44daea6e518e85c3e1c1eee53a9d25e4176f86aa8fcc0330ab680667f0b59102cd1bc499ac261430411a0f883f450bf60dbd654d22d97f919dc019ffa7ef648f6d33ecc579c0937bd714307ed2b59580b988ff76b0f639ecb23a58665ab0753494da9371d8e251026c8d04d8a890f763177405777b50f70bcf89bdab7b50d3f98314428e5aaa6ab1162d4b14e3ce20bf30c0d4c97dae2fc7ba7804a28e399015cafce510435896ba5148b4de7e3862e70278b01d63b3a9610c868fc96fefdf16b0ce6f7d75f14b3a57ae8f04dd2219929597175bb3625d48bc41307c810eb4ce6a50c75c428166dd2ffa49c2bfdbb2af13e7bfdb3a32213afed76f96df547b1a8d49cb783e1a886534bfa090bc91f626a6389c0c62690f19fcfe451049770a558b8e9c0c345696f35db34215b1850e91ae21c3a9c7005d1acb851067adb9d0ffc2a4e241536459ef5e28982414810080b2c71bad429eb5a21a4c3feab8b6dbc215ff08e2972340b1fbfb0ff3c055f2df68fa0e3ae821af82afbcf98afbf60dc99ea8e3c62ec3db3f68f971f9821596b0b68722ffea0375acddd2523ed99ae83be3fc27eae90251938cd2a9cabd7b4f73d0fac677166c6f2e6e587640a5bf8294cd7bb3aba98ffc0e1e48fe6f021e9ac2500002c2949ae7845964414a518432aca8cb26b6cc7afb21137639ee41220886fbf00729e38ff68cae73060dda01a4783efd99db5250cfcf100821bb956462dde73cfffd8c84e7f9fa66467b054e8240e8af873ae1af42fb508a9e8d848e561da4d98f1f51df2417b917cc0220358c865626f2206f92de1a21cb9443947f88e93205135fe51ae76f56cf2f13a0f1c209234cbf3c05b462a34b7c2a07c2d9942b0ce98110d4f36a9eb7c2ff9cb6a817be029c6c446ecfd28405a1225e52133b08e6c089ac657f2a8f5155ac70f300b0fac0ef788c16b0b7b3873572c171ee62e153ac13f1eb81a07ea3883c011e4bc73b64849c2cb1919c975daa7c3abdde8b512d6843c6d58249d726ac53de9abd1231010bf0e6fd2ed3b943f922f931c02652f4d2f28d92cdb04b1381a0ac4fe5d0091aced99727da3fedf14aa64474fa5fe6ce6fc680abb4b1df32028e9c09ec0cde0b919a4f9a8a5c4d1cbf78fce3eda6737cf9fb93230ca8a77c70e0d9ae2d6b30fb4d7057269f4409b74808d8d32da2a0509ccaa63c1fa3342b3439f1f9a9fbdbe4e9ba5d2d8d0aec312a871ea9138f6873a8a1f3550bcc20000e63d8217575dd858ae032acf8948d4388a02bf27801c6d4654d0bb8d3b26ffb78b766d271ee5d82e9eaf7cae98d214bd843a9b716913aec9b8c7cf1542142cc86f4ff201ed0fa7fd4cd0f35b9f0f589918c8d7a431f570e304e6a23c0a812dc013c1417eea76fc577a9f5bc02149d847f58f785325ff78e83d5fa7887d2985d0dc3837133f1b5ee0c4eaf16906cd232f7b25dfda241527e4863ac612c90cc5b8ef15b36e22e1a409dd928429036c19ef41554d06c43b0a09e8d2e546a0ebd397932dc5ad31101630df0de0c41bfcf4a0379d378fa91d00735058c0be5bcf41d0af49a77f13d60b8d91e48d1842d56b5cbeb16765fe88e5dc944f0a315f83ac728da487bd0ec12dc79036e342f855d993c5f6eee80fefd62b200ee9aed61534e0e07023417f4639214c345fb28e5c7b193d08e97fc3e700f20441b9a9e859ff9644513104043e5a8910a3593139d1bedf67340e321dab004b2168257bef66d05abae09bd2d863130b485d0149bf1b9cc684fe1534e698d4b310578c692a17a92b7c298c190dd8b66581d0aa95fda80308fc9de98c73b25cc0b9b5b7629b8a7fbc622d449d309e6ec9c97d6ee6c6695a15c07aa63ea81e6bd05f7de2e673a5025c6b61c91f9e20d5fc607a1742f55406f8d8b5709d91a66426437f0fde888c6e81732e5f42c3a81d6dd6f1612ba4e10a8721a015be6738710104e0af51c22c716f146fd12ba4e7ccea2b9f89be9e8eb50316417e264f673c9d2f95994461b41e9fa5f68ebd60710115b1552882055b5aef33d4f129f4e8453998ed4d234316f6e4d0069461b03e4cb5e87b6405114f202cd347289bfb17c2895b049086ff8bf581cfda24bb202b198eef886fa59ff1ddba90bd2cbe4f700a34c5514b42da0cbf925b1d58c46277a75d8a8b5414eecf05a85b0c10a483169e388d19cafa08d9cc8e9d7071221946921737a5167b73fba2f9f43f6b5ae24fb26c4cf93bbab8f6b5c9e1e80bbb6922e9965b8d1f515b8865b03b14b2984205536563608c4095a98228ae8e14d40b75d84af20afe428012bf2dee7e55d562471376fa12890751fe107de4dd9448ab0fe29fe37c74c21c330f91a224b6ec64c64da533a65835d2438939fa464d9c40a6a5279154d7199f0fe0dd97e0e6c3fb58f5b7210941f7358ce26df2af1ff86c5139c1f598bb1c30c932fda9423f910079f5b699f9bdfed0307741b3f04959000d12442460f5cf840bdceb220bbeb470c522907e8be71ab14aa95a8455707d8f387c6fdc5be6a28483f0a75bb23b4a487fbbb4b8a62828e93997e6ff1f78556619a420644b1c14276041af1fe26cdf480e78d7a58645d01d20e0328403320933562e11d1843fdbacd9e8208efab4f77e7a2b2c6f3ab2d45e67780b40a9d4d57c7b60a0757151f201a6e6d3c38cc84744f3f3ca5e2539dd55388e4e482e4751597ad96831103b18a785ccf4f1de1fd38f4bfb18ff80f10439027e68c1a23bdcd926daa4fc71aba6fab67afca46c3955a077c75889d7859fbcfad6a90b8b194d5ab71da3233a46d51980ec11e864aca070111bc4ea88caf074956fa90d61b81d314942ce4d2622c4dcaa1429a1280bdef0d965d17147a4d0b5108a242c10eaa5405cc1089a8197e7a002ca70fad095d4b22fc586079d3e7503e8080f3b79d52c9055785fd0ae5eafaedac3e1eda5bca6929b94fcb26492dd9462b3c5b7f020db62fcc054e7a1fe820885a60010a772ace8468e71074d3c963d048a94e8bfecd739fd1946e1668b6d5adf1f2587085055fc7e7b92075aa3d2511a2b0312a29d1ace675fae5498b41293c313d8b4af843cc33675d7fa646f14bd324799ce4a77bb552f9346c8ea23c76792d81a77b69ad87283b418ac964fdb90a0250dbada06cd57ae35476aa22be6a6b283a90fed08710e20f3bc8af01017c6fb380e0d6d5d08e91f2e4c9019c5bec40d468aaf559543e6eb5b2332c50456c99ec31d7b8e1ad66a22439ddb3cdfb1808ed87b5da58703f0660b2bed3db7e9ae288c27a0bd467ecd3c23ddd30efd5bd9a8f8146ec7ab1cfc3720fae5d4f57b99fca1cc8ff1fd88e555fd60482424e4c7cef4a60c5c24640ea85b66d4d925cef2c23192a411ea999b38a9b2ce271bca63fc483564340d218c2752a127f0ea9c93e46966817a8d509d1660ff4256f8cd212d4b14d0d8ed9684c72b0ada901de2dc126f2d547c5df7bc030575450100cbd9e2e7001c00fc7b14bef446588611ef11bf6048ccddac0b5d78fdcf4d0fd39f20a16ec3431d2e05c8e57d0727702c19f8a16d48e45466e81bcf999b1479ed7d4c746eaf52d01d72ea3bcd133d43ccf2dd34f83f920f971d73cb0de7bfcc743a2b66a292fb71ba42e5621e8859c67d4ab138cb63ae2ec93e250df97077ab567a0b0aeee44189cb802c207360f815836ab82f5eeee3452e32249f7f8bc24bb7d33af4694b155843c7b8e0b3b5e91eaa52d8e029774cde994a116ef23a58f6af3e843d80c0105061f1ba2f604efa2773e60ed70c306af54bb697c80751d8895d6f8b0319f3a697a49b083fcf648e468749ede2bfba917a8b0ca9e2a3863af53ef31ae6d6aee5898ee0bb6700c589e87ee46b955a8878d21004135431d69ec1e32b9c8d635fa23435fba3a0fba3624bf8cb66c7e7f48857409cfc9a89989086ea80f91fcc0052dba5b96f0ac2d2c603fe836e130a91d1d3344398956d26bc724f631ccbed0e077417e9ed65ce2ecd79bd595e58b04be1099ac2bf088e008dc60afc1140f245102aed255b99257247678dcd563ada6da62c57fd3d1d24c02858ff9fa235dc457bdb88b9772ef7c46a5d44c74f9e6c9a726609c841dd1952c1123963d1e2236b4e9aed6f0bd4cdb2af3fdf8e733216449a534e66d4bbc23e47717b654a85636ea52e328f90dd4f657cc577c3d8e3434bc283de76350a24001b0620b23fdf139dfc92c35afabe8f46e6fa8acafe6425b6d2fb7758ad82cda87af944cd95b458bdde7377ccee92ec6c9abe8f71a5aec1b4b1b49851bebf415d0f814b488a4fddeed9b56e6d56968272c644ddbb357a1b635e1b09059cc2ee612c6da6f72ffbc01a18efc778d8ae2b9aad94e116f7c965fbbe9036fd776eb6bf079ef8a3358b93c437ea21b2b4df0f64700aa86eb95d486a7ae75d58810c07c1728a83506dd3614e0a25ee996fd3c5f36ed5afdc713d347781ea85df6cc883c95ebbe570732cd201ad5493e9f05803ea987912eb8435c8f27fd44912fa313d4ac94e29a8a6f450700add5f8107e1dd93ef4efaa51e53459d4ad773f130bd79d47f7522eb590c4dfc31594c32c1039b9179fe68f5056b13b78298679203420e8d8bf51d20cc58849d1b198e0da8f91057e90b4ef9cd94556d14ae5cc5957e4682f9a9df95f94360325e9ff923c22197274246ed6125a98e94e9266958ac915da623fdf0ebcc3862f0162035df237d866fd95995fe48ca556326025cc1ac7e867094733f468e2aa0c5c009bb5e00334a9d2c3fa6fc4bd81a1f8ab5673825ad84661d220be6b00d51bd0277ac82660e00dc25c6e790fdfcfaec19a89c8d0c6cd410bf322582485a69b98cbd738e44faa85194143005b120a53810b93343c869631b8f617ef8808f4713f2e2368ddf8be9c2ce1f5a6412744e6327b7a8b68e3ad9a4df8105336cad70f511201ae2a6775abeb1348c3e7febb6acbae7a462ead56ffe88f7d5595bb85c80056752ae2f1769b16c71ce3f10bb3d88e482b983fa185c5e5d3eb6acc13b530cbcd707f72eebc788db4af1929de105d0b534eaa98c42c6467c62e69d50c1571a664908b57c136fbe7c07c44a8d9b2a88dd9f0701527852a371863e08965d26c68fc7493885d62cf76d459b4b28ec03249dd6d959424139dfca5e9d9ae62340cb53103d89111fc6913b71276f871b7b7fb1e21a3eb60bf07512b5a6d2c7ac076f6015f0b1fafba6c9b9509bdce7346ffeec414199e0a461c0f0e9d1205e96ede19f7f00192f1c234f907a22cf5a8529849b621ac017c1b600876ac80f9d02ade935265e586c5946779bdaa7445222e2346d2a35e1cc7aaeeef73e1489181598e62c9bdd39332c3565c830ec4e8163543391721c2828cc864677801e915f77f4859c9f9ac3c6321dcf9b8fec00e46163ccdd86611dff16751c28dc7d14bad767b34caa2a7e7aafb54025df9832887ccec25fa7760d429caef6871595a0fc64749bd7659f5e2f0750fdba5cda94ddd7f5ac6e8a59800c0701f022808121e65505d1153059fea14678e37c15eacfe8daae9670d80d0c3ce3fa64d38659ff24630be82f9da90a189925f4466ef7a5b2b02859cbace70bd020a4eddd26bb34b24a291709f345160ed37a5f6e9e1e54b1c7e05a1e18a6065c92c6a5d070aa38aa4c70b2d6ac8936c2e916395e32afabb752a7a9c3a05dcd8571c6052b0bc0d52cad2c91a0f78816db76f535eb88c29d2acab3a0c3bc329ddfda0ace79b0a7481638c2b01636f369f638df1500552233db69c98cda5be4cd6d4bf6c6c0acee3f95b898a6a081c5e99c916a9a16207f2ae8ad6b00ec5b26d7ce2b6f57c2622297ba8018b3cb22cd44f5078c2dcbc4f6b677db22ca4312ccb64b40f833f3c73ee720e4b6874417faad92c4b699bbf2ea18ef7ad0be50c8c2010e3759a8aee46c46b3be12125a9481f2e6168d75cbac270b8bd413ca193adc29581fd73d8e5811d16bea20de9e7ed04133f02025dbcb593ee178bef6891969c2e3eefcbf9dd42ad69bc968e19ef04d114e68c492f87bd55ce0bb5861d489a3cd78fbf3e1829d00c1f0c250c1c7baedc537376a0113baac505932b6469da2e95c68826c06960d211af2bd7ae691dd920d433c969a45dc15c6f9399aa049f3c70dd42316ec5711b03926a630efb010421289f9dd99de0a2224e56f6c02d3fad32d9364a840a6ac058564f0e052923e24f17c14f93763bec375c638fda7c1ad568f152a7b5c8f739c511d0fab48b906591fb5d861b7f24825fd4a3a5ae87af4c658db44afa8ab1050c788fdfb42973a99a66cb18534954c4f6b72e0b27ee62c1459f8e0e67171c0eb5bbfb63a925860a963d1b4851b35421ff606da4c5b89a5c0aaa0148e290ed408c2b7bb8400bd349cb0ef1487653cf58dc6dc9b88ee9825ccafeb56b357ee333d6507937a787c24e524efae93ff100546792ddaf51f36646eb0d10470bf43d799cd0b461c09e8d33a555f7e0afdf5658aab81117863f38ea1a6e7dee077874c7984d4e0b5d86f9649bd8628a07729dd6cce1f017b9e05c47c008487aefb2b349e54bef4dbd876fa353d0170ef3e718954bae42c37cf039b5e63c607267171c5a1ff3116784d653cefd47ec299b9aa58d4bcbf5a06a8e59be7b9734ce1ac9449b2c26160e5783bcf51871eabf7995c8dd11ac915c89005c1c416b7a4ffb05f9da14432ee1cfffdda198fb45d5948bb42fa400f2c56c046fd49369f44eeaa78b243c7b462f2d135b7a54f462fd7240be08b1cc434096024b5dca89fc4c0b1aa101db6b96060b8657688ab291bb202cea9695669024deb5a402ef073a119c7c94e61ec0b13e5c2c758ecaa803f447fb32f836af732453d116c461982baa2dcc19b414cd6a7ee3edd54c59b3d5c8116d6d98ad5c0a481fee2f95d9d41d415e0d6388b818ecc57fb5b95d315775a07176965fcd2fff9c264f21c89933a16d50f1afc9509813af4efcbf9758c96c2bed79d607365921acf7633fd317de88d131a9fcf82dac3272d9ab8944c58d7420bd130b051a365b25546773963372ba98dc8092fca43e6d2ada0b12bab629f2d8c7bc10bb68176afe4d15960e2daf7bed13aa3ae1ae22dfc1f9076badbdc75f96c16d27dc2971bc5ec8019781a95aa8518f1437187c0916af8c291ee30adbfbf45b70ee6329480ead56b8b78d6c3b198ad2906b30601ee6553c656ace87bf4be8b45457a435fd9db23e2d3cecbdd49f9e752e24040a61b39e1cdb088de89b2d791434a3fe722d896aae046daf4f1a88cb2930dfaab58b1b9e2086e4f0ebbf2121987e0924eb35eded269d871bbc74798a4ac3058004133b935eabc7ee67ea11971439ca2bd1139bbeef1d05af3e9ed4aaab353e2f051619371b560c86a800cb82807a4f4b203ecf79d510ed4a426c5313d6ca9b63c9b24a313e3ba932648e8634e8f24dd5df847a142f0f50fa74d00c32c3e3b060d8055cbbb2d277bef392cb04092460b65b67d8e851861ae0a3890d7f60cd598a3ea35f0785a50ce7798a6d80ee477fdfc8be7d3eaa8384b5462f929b071764459d7037a250e140fb178f53b6996e3864efb964c769229f386a39bda7c19fd7aecd079d8d3414474fece84d921f6064e2d1dfc1960d7d7a6fecaa4ed984ab2ba1f386cfa4a28156837004dd93c886b511e34a91cd9fb39d81a2f76cbf0d1e319a870f3d592964e097aa050069168b05eae294a7cdf1a53f3b8767cc049dbb6c26b4dbce3904168abcd49434cf8ab379918f06424231156d37e27587bfa75f173105629a0b462905395b4564010a8fef93c025d44fa6f5848f5c2bc9233c88dfcd9bfe80eb4953c3cd27be6968a4262cae67b81cf652a2098727c9bfcd73288c4d833843258014d5636379ea80daad22d6384a2fc252e43fad4d10595e5e77f4468bc3895591dfac206d5c0f6a41ac4936705c8c6de5ac41b0d91b39d6db56f89fd7316c34ca7bd57ce5d6ba0c18f7c4648e8286c4c89959d78143f391d07fbb645cf00cf9e982720e08b08eeca85b8e17e536ff18794ea930cc0f9f155608980949ca9cda12f18dca9e0adc93e2d83d280a2ab9d5b9715075009b231d6d0b0b0a2120a57a95d287dd621c63f62b108dfe511157aa7cfb8752694e3c8f1253ea59c882e09372c22a94068400282749b9ede59dcd7d5d9764d6a2e916b5ada7fcf80b1620537eb4a3cb52a76eac2639ffbfab0e1c95f36ee7457b4773378065735ce74ed704c3ae9c485ee1d6f82c490b640f114a5614bb9c3c527601b52d3f7f082be94f32d3fe104eb87eb2f471de6e291d9a3883f54608733841683063231ae6ae0123b129b79713714f26e411c1f6863a5dfcf59f1a6ff9f19f2b0d3d98930bd5e80792cf15bb8d91777915b9dec82c374f09fd14963e23578eb49b0ce7ecc0c4276e23810ac362f6aa9a2da310040b03e025e5df118d6c536f3db73f2b5eb844856301911a17e26d999cf8ecbbb06be4794382d04e6fa101e9c578f62058c7890b71f81fc63d7b1aee6eb936dac0c0e57f99bdf2aed5de382328f55a4c6bf40966ff1b2c917bc0982c6eca10475dd9423e4bb85784b84fed809bcd3e10a2b6b9f10eb4bc8d65abffe816bedc890d8b0b3100fb854d5e8d3c820fb39b9eb8a38edffd520c721159f8bf72798cb1eb210a9b8d2bae349760f523bcbd36062276b50777e2a8ab50363fb7682b191baf2e9b28583b29e680df2c439909021c56765f8de368261fb6f35b11e02c7de3f747fa02265e80d59037c9cc2141c6a493d9897ed536ef3515803e3e6d204113ae7f7cd60001fd720a167834c0187fcaeb34137e6ac7e8b3bef9ee3b23ee6b0a94f84e5249ef69178a2f30d35677ff886687b541c21b980171db29e133b7616bd83d62ef3cf61142cb87df2d73c19c45f0d9920a011d6846cfa80b0e1dc1f4613b0e7e600e529295707edca89d826157de7d6fe95e28ceef1577cc378de0e6722d40e5a257883e23ba8eca8f075219da9505899457cf0507635a41d291d2075654467bae2e4b2fa2328f60674b5a1191e3676275ecedbf1794cba87671c6210072687ec03c6c0f4ba062ce0641b68cb6f9b5dbf46486ef1d38544f85e82258cd9f885c4f9833eef923804f90d90f595f613fecc9260983401805facca979d9f8e07536d37c11a5b12a7c2a213e0b34921494808dc0db864cc0f61986acb105a4bf95bf44aec8508ddaec383693baedabc7abc84544f4596d6b94a5af730993ce744833354b2e63be79f962eacb4d98549f848b45ca58e6828380c1836fb749b5fb46693c987debcc53ee891dbc5ed2617a878774a9585b05bfb95f3af07e7a84ae9f55f2f225e117a443d8b4ac9cc400885f19457279b001ea5bbfe9b51a7cb5fd658a983fec956eedd7c2617817c7a891b43325f6aac9fc48ce6d8bd7de3227d4426eba5da2e6b902a4b54a690ae92810c0528abeefec06a3b98605650cf59ec4deaf3ee3a865800c033216dffd80bbc8f454b93494d0f9bf0bc22c734c52c0be1fcc682e40a349228a4b7c8bade1297ec47061a93e3dcd51fce7134b7f641e644a872a3639de3775db6b6c51048628b0193da02e9cb8a5dedc44e450cad37c78e9f147187387bc351cba77e370b247bc04fa618ed0af992b5dc8d1b88190a3129c58610e275241767f59c28c5e41393aef7c67a44ec11d48725e1c126b6324857416e274d22c2c3fa3242fc384064ef665373d1175fc23ea4e6b2980436232eaae8a6f961e2c14bd578ebe870b0272414c9e63a9362f1f203d1f9bde405fe698af24439ffe6cdbbba8c69662ff8403ffbfa379c6982486ed0017107ac5cae12b3ffa6c7c9b1500fdcafafc9a0a21bd8efb5f4c14e63df64e7d4dde9e6dbc110b470523ba6e9fce264199437cd2baf47dc2fdd657c5f1c0a5d874d9341c0a578700c94fb423fcb0bef4035b028b98e313d9658c02f335c15f8a974910ea229b0a1f61e288b6120450ef9cdb40362071da5ec7cc52ab932eeb2639a98c3c569cc50f6235035020d0dc45902b917088ffb3a3bc48e30b756543a84b9627bfc82575e0c9b3137ead9f10c7befe701c00520340dc9bb8aba8a877266c1297514b277ff59b9564c1e520851ff87c4c0c98b58633fa4c58704156cf2a220f391d9c0433a57cd6c73137dfef46d07d43919ee92a71ec659f7869868849203bed6a5e2ea6a59fb9c70f3ba42ca5d86d0b36eebb175d664d2b0f060c2a6a0f0a8ef816238c069940448f174039b6ff9d85cffd3ff592fdacb0aca730d0b6eac4ea8d5c4e5be6b01a8c9add35fa41825b3c2ad45f96e9d8aa762a1f8dd1ac38fed76a83e20bd937ce000ac2dfe163d507b5ad20601e89e2f869a47ca486d52b967ed71a4a0682d1352c0d51f61959abf0cfc9341ec8a6a9fe4971c43e9544bc5cd477a32b73fb2a9ec221082c0b902440564d0a13c30ee6b8fc26b961250bcf4f0e4cad0b61530fc57ffdfa9df90656585b394174c471df31288d8488b98c5ee6cc4aeb43d93ffd46f781ead561aacf4b5ed2540a4508fba26dada99b1979b85b40fc381f3b3caf3226fbd9608cc620eab7999b739616e30d4ae4bf02f6b5929f08d974c7745e35e1c0b9cbf0c0e34d873a4fdd449a3b52b427c019c7868a3f2e72fdf20626de9181c386bbd25bd3283051e129327d5bfc51fc17c7e1893196fc68430ed7423c274c925a299fca9f45c377b90a75ac72567a27fa46c90289a993c4456f642b1dd8116c48242bb187df934b3040b12e0ec21ecbb925bcd1554a872c92f34ec39ce4a014d2e684d42f7bfa2a23573119905b378fe70aa877ca99a3c91213ac52d2ee09cbbc93783d2406430891d82ef001ac5e0d5641bca35e2b03cbe158d1cd5d669d14db2a68d6b44177c8b72abb036ac4edc528c4da149ae37f9960c89a7cd66b82f07c23fd0212478f831bf1289f18425ee880aca7c7878516e033d38838318118a2ea4a4d0fc3390fee70ae4d5fb71218c1224f61ab488a74f13c5bd1fbde82dc1d039352079c463547c12e92cb15468e88c6b7cf1a4f62c0179ea35df120dac593a0e8f7808bde137a6105db78480bdb919fefee3226c5d490aeb2dab6cba62fb7fdbd6e78f063c6d7c1641eb7c69ee81dccf24c3bdb7a1e2415d15468c3b5cf1f81efed5e5c5f2e6faf3b21cb0a2b6da7f08547e382fc45cbc204ba886576b1ebfbd76e058661c5d80b0084fcf2cb542af6fab2a09e29e32bddea74a4008979f32b906062874b4905393b2239a144dbd9de90c02db9b6d93ab1aa8daf880d68276f3ad600947fb061bbc25c367618b597e034b450cb76d228ed29776bb84d78df203d0b7a57c30c0634b5122a0536c5d0c90cb7c30bfb5da96af613aef0cc90dd01b1489184332cc1d1b601542f31964045431eb8ce36e5894c6e397ca3f640e7ffaacc27273cba61b07c9365feefd36a6c2de259c39da037ee8ebafd8b6ad2333f2fa4d397cbaf497c5efc79cc7c08a38ca63af8dcfcbfdf0823da37915292763fcb9b5e41bbb91ac4fd856b354901283b02820c38e8538a610439d60ef78e64bde2da761eb1cdfdad9ae22f28c478d54ffe7e155ee1bdb041a4d2c15ffa4c6685dfec98fb8b0e9865c26efbba75189fd80c9c28c75cee88ec5805574ac80ccfe83b56ec5b0164d77acef34028b629dd14c30ad680efe2870f8d7b42ce3eb4f95f511e04a5bb7b15b23cb63d2895ebdabe38da11b28ab77f606d5e34139e8dc78539fb7da63f16140d8f638c8720b24685ccca78ba9a5f915f5cb538b65bc6a35b14672273546ba1b68fb0296ee640368a021ced4b3d82ae146e3c23506a01e1f19c9a556638f27444e190a822eaece11b85d73c4345c6015612e753eb7a944cf2056a47ee686fdf8ccd83ae4ea9a7a4c27060b5e4936238e798365fb78f9069f8db00f2d252cafd6657e9eabb12981065ad0415870f6bbd017efb3936659b02e0993d9e2cecfd963e26523d98409d0b1204de99c8c94627f25e7b182bccef4dfe546739486d02286ec85b503c9a409c03cd759cab73dc9e78e9f0e172fd5cf59f39e7a295d521f0c379eadd2832baa2efd160ab5e4f823767322d0f5903e050863c806001c7b5c2536d22b84ea36b3f8eaacf3e2514d623ce60df896c9f0369bbca3d3685ffd25e567b2086b40e0799e85d5fc0ccc540b723e19edc31bfcce84e297ee2681fcd7c42cf6a56d056514a60f1807a2c0e30ff0f7c3041dbcc3b27b261134f35293601e30680e8274b2ad196b52734720b1f1b523d0d298b732d1fb6d1ee1fca88714b460c7823a5272b60406b4e35211a8d162686a36fa293723c466deb861b4f4212a799ec7340b7384f9d679c44c72cd52bf92217761c4fda257cbaec1b62df6ba87185446a82285728b697dac742c63c235b60f26baa3a7137db74f6a844f9e89b86af559def027fcd5fae8f63e5633a153ddd6e14a777430c10c6dfbc9a0c01d0c617deeb5b19fa1f4a5a20fcf252d7d4a4a538e29f79afff1e63f96748f5bccb97a9aef1de34e9a88a040cc83b3bd057147250bc2aa4992a1203aa5eadaaae7561d35e29df36c7c388798d3688c8e68c18774f655ff8970a7e7ed8f84ce2c4e5f7d386ace40740a2bba3b86c014944f59178f9376aeff4ca061a3b70e4c240eb516606cdd65e1478fc9721283ba954cfbdb457f8b74be616a604e3e4aa661421bb50bf20dda1dd015f2895edaf799198da528765117b004a826d6dd6b4b5c5cba0c5cf333dfaf2b73a9803ca525e0d89ace031357bc4497423ce1219b3fe7c69de219b238c00989e13a6eeaf71d526acf6c4116818f67f2e25297aa75670a2c36c5295e9b5f92cf9d732d3b94ae97ff7e11107986b9f1d4773a0bbb8ba2caafd7548e52ec15c17c675f21e37adb35531e1a714973a615a8b6e53e3ae1b5ea203a1c3b5852e0661c0515254d55f1634ac890900e279c7c22947ef3797006ef77faf8390206df7e76c092f80b09688054bc9c083fd5a010f0cd8ab78aa423eefb1814e564d62320bee5aabc742c954f8eda82f22484b1ac896020e5a0df21f80b776a3720a3d06a264600502f882e6e8a2a36e76592482dd5112a8212f4c41edb5fe575f3e3858a43b6129f919e9ca1a3547851472d349bfbe6bb34c2ac7a6864fe02b3d620212887915b396b1e1df0e8298ab3b1d9bc6a20ab77bd5f4425387be20eefe476cbe4f8317abd7e71b5aa06186cc2e7ed1b094a6e01aac2edb5f32380ead6371958b8047a70ee462ff5d20ab9ae78e0154232d9038431c84b97f34fb1656334cdf24cda4fef83cda988868646d38235d1edc86181456d89f7e704af2f27dbad6c1eb2611ab3074a609b5a591d3ca7a1f5112b95c24b5f73fd8408881d25f9b26403013b48f051f78b0ad16640ad0b1d278c3c33e71079c65ee478717cad39cf360ecc97cbcf760e96675191d45c7abf652ba2a4d24794478fbfe051b7fe8f08f8dd73fe96fb361e9dca4f99a59308b37c06e7f5abb08f78f98d8c47187006e8d482bb30253b4506f5748beaa1ddc0ab922286685cfd018377cf00f6502a0b6a870c3680f21ff3b5a4438ff459ca328b9c6912b415c6b41bdb26ff3ef36f6bc9e36867d401c2166ee4f1dd66833d0a11e8f0f65ec88dd9096944249cf9753fb64d92b287558c3baea42b748c7a4f10bc958f894badd62aa959a068253fcc48b03f0e6f097819702507708a0dbcbd374916c569b3c0466bb259050ed0045685eac7bbbfe4f71f43f7e2c3c0916beb9690b4ef65503edcf4d10aebc3986cd2f85307f20465e46ec16542341e18cd7171da09d3605f2c324a187fa00c1b01f5ee1fb3ee039253fa8679e4288e5dcc40b328856ef17ed0d4db1cc1462d8f2d0e386e96941da7ddf73491bc86c555774f7f5bec23b72836a673bf4d9b3247c04322820d7a2e7a200bdfd96fa2b98d7fdcb389d52d9ca9ac52f8d09392d48a7059314d8a47f27f3c824192d802134abb3e86602d66800a46d57a9079c242215409d7f01266043d57a2d2a287f34557a44598dfb25c06505b0cc0d5d79c23ef69ecad40c0fdd7fb1b0401853de73accda29295179bd7cd5065eb8f6f97950ce0df3f83c40444191330031ac71aab0739d0d44f069071e4ca66c97f12073182c876d69f3541b6ad2d12b4ba3ce65c22b540d0e49be9220155edb7d29010d140a7da46d3253ff4b202be5edd9b3703b4e0ae0950186e750429522e70f44b2d3b47b018a01a5450916f9ef93acb1f3a21fec07c7632764308678744d6906fef2e273c77edf48abbff8f921428b115b2956cc9262b3d733d2c173b1b57757d65af6385b3c5d4e33ae006c1f8e424c99e104a16a1f152395f0abbc6c153abd56bcc8021ce8ca5d55c8f4962710539039f09a0536548e6970f441c800c51bb08a8ec3edcb73522d7c10db41f191f342429a31b5c8cc6e5d3ee950d4b36fe31cf81803798889090ed453b13a978cd276e75d171524ad48883e97695dec336de2f954eb0b53ce3a5f69213bd394c7eb790d7f61aa078474c4fd3d00a875e5bf56eaafe46b29bd64189716f360d22acf489bb1509d11ef01c12ca94d3bd4a359c21df8ed45ae9c3241c5da16bac11586169dcb803f6f72df84c699c462aa3624e2acfe4fa861510278776496bf8acddcca36a92e7f1d66f6e386bd93ab2ce25d670fb80689690e6070ab6168cf47d4357e66ac5a76b91af20ab1aeb96aa6a5e77486e56241ea263f6c87dd6651523b3501978231dce0976bf825b6a5360e16d6245791fe0bef819dc8587d602c9f428256021af08f22963d03cb493d6aaa46d602d5e75d87e272ad71e2ee7b4e2bd79533e4f06a137f96d650408163a5c571f48f3c377d3a97f89767fb61642978c20c837c287c0d7939795ce7facc4a735396bf5d201c0ce0a467427d27f731189d3ce5e105dfc7b5377d7639ebff016468077c1642cdc8b8aeb2aa82cf535f4bd6da2aa4ca6ab02d9ecd426e50dd34ca82c9229de9b09ffef028def56041b1ab625dda3e0f32d9ec2f13377284f5934e67f8019b9148a5b8d7402e6f84d4a7e9e35cb05b09c778630f34222da73790146473df163a0053f07ddc8163bc23c8985ba81ae567c869461114a1189b40e4ce132c732fe3e1031a7ee6d0a204a01b0cbbeabae8aee5a8ff5acba9268eab08e4beedeba5b466780d3794a9267359ae42e2bae7493dbdd8ae2edb01f8484bbda20c2d67389c80538e8731ad30b41013e4dfae2d446651bfb90643c562be208586f6f37bcc6cc69e64421812b97b77de4c8493c8bd4855c7ec62bae3489538278c2fcab169c8234605ddbb212d466b28ab99392d6a4e3d7f2be9bda1bea6562f96718e05045f8d99ca1a80b97d02470f2b536282bc7cd218b1bb901581aa7b6be1629167164c01ccbcb667ca7d7fa13433c53421aa0103e9e026cdabbc8bde6f8905e73d0d9d8a77ea4d86db90b6ef3bb1784e193da6cdeca608a2a42320e8121de3cfde804a1616510c8786a94d8b4e766bf1adf610713e68936491543b1def42664f17402ea78a55de87f697ea8e9ba30f0ad301027ba3834eb0db9058a8e56d1481aa2ac0dd96cc28ff6fa831d3d1261cc8b535f3eeff6176e93fc3546197a19902cbdba3d764934960c7918918a746404d34e8c57ede161e984ad6f2c6ed46d8d4a1245122fdb762b9e5b3fe12563f0c85609068bbed90b4bce15a245b91106f6acb5661dbd431329349a6df9e1aefa09101399e367e5acff0bc7e503873ef6636d85e4b203c2af8f18416edddb492f85811c351ca08ea5ce1e65213834617fbf1cdae989eedd4ad74bbf6365eeb91daa640f81e9da582a0713f622f910013adfca4f8dc6c83d80e3628fc00b5065ccc076f6dfb0693a499a0fa97ab3b5ee916aec7b8fa53ff463741996d4829535491f93535292cb40db91c1f7657d75e512d2d99907e574426d821ef41c522a4ce0b4e5d62ddff0d4a054c0a9c2fbcc3f6e364ed701b9b9b884456a18e8013cd1b91a5665a44634ad41071ea9c5c1994ce65fa8d9491ba3035d92f36465a7b27a602b602f8cd4039c6637f4326c6109d7b53bdb44a8a4892e080fcce461876101e3eac977debd64a193b246d7674baecc2b9e69491327037f5562a9ab8d8fd69b6b655c157a9e01677bf8212233abd5510b29fd2809ea4f5ebaa7460bc01ad167149e8ceafceedd5991525b42f609fef0adfb405843fe08a34e60ff8690854827b9e2e40ce6c07e63ceaad24744ecf953937103a65f73516ae1638d11ea928189ba9974f4d08b14b9d5be80c536aa966b7cf8e7327925c9caf1f7c6d1c6badcba91b28651bc6712a8a62ee67c0a56d46f8980c23b1b06c85a0d39de07689b18f22d794a04d46544d051d400398782c5b9d3f0cb4466e401c2178e555539bf2ddbdb9dd53c21637a3739cd006443e309059a33501d54ac312c37655897695fa331e4d988593e75abd5d193f66b3314d15e69501dc0b2408fc513c414e23ffcd928c30ba7059eb5652c0aead6fa081cfdd06d44d8948472ad0ab88680a4974dfffc44d1b033d0d7fbbecfee8412737741e9f6a404150e6d56c29b1de3502cf8602d32a1861dae6d277f963de50ace8f6d5d5f9d5b0da78d30f9797b3de6292eb29feeab460f39fbfa8c28db0e21273433f4a88b278ecd418debc578a279770eb86c6d0610bf2215a957aaf14954333486158d850ac0108b26077ed07c55106072df1520a213b493a26ca9e04d6027aba826d717855083b4b0360554a818a25c8b8a416689350feca6b81863c6a1734dcac6ccff6f12a2b449505ea66b98c4966c39560ab09c460b616d80e6de9c000772e236af4ef6a01fdcbb4ff44df550ea76f43cf6a5ef96d10fc3d1d853e7e30ce1ccd86e2340b937bbdd00008f943c519e343707420b9cd0597bb8df82924663ecda905eb99ca549f68bb8ca21f1481d6c6a0828a1193ae1f87e28773bd43d49e5ca09dff6aee8ad92b4e5b1a013133dac743784ea810dca00c4e51fce2e0503d29f43722e81c80c64ae2e67a5f51b4f21673089d91b7781b8eb3bf1fd478b97b55095e44c807cd136ee91e738e66d2eee85d656629dc05221683ac66a25861aa4939eb27b3e6fad62316a520fadabd6ff6b8e69d0344a3e1d2170cfdb04384b82fb774ffc4c10ad7591457999e20704afe6abb346598b08694788a25356af7b8778419290d8cab52e4d1265a8d8fe5e041497433cba83a8854a8cfcebeaf92065475ac42120e297cfc5683e06d94443c03e479ee637dde59aa86cd61a9410c093d456a024ca05d3bbe2ed459f72e4cfa0f63bf0190390c8f5540b9aaab7d40386cbbadb3a7b530c5a85fc98279c0a3513072443868ced32db64f92904b28200162df53f304366c3f21f48186542ae689b93d38c4367da5ca550d592964f3be9c613dc24bb8a8f2f6ef12cbeb7d3c8245fe7ecf34f829b0095bd0569ba7543cbff13ac19c0b2fa0a5bfa7f9640074cae4d9981f67e17dc74d179f192616ac80415c7b9ccfba4e60e4a09b20a57909ce1a26c49047d9d9fbaf7a6f05a08aba088e31543b34768c422d889da533994fd585474cb999f8184ed69af79caf2f6839a6c451230863d697c0ce7a7695a7619bbea0dbb3240f2329e3320ee40903dbf50aadcb96149abe6257ae076109fc219fda1cd842921f4f8b82219b7d095add71b045894105a785a4ccc9974f83868825cfa6cf5207df95090de71767045d947a6a2c7625150bf550cea2066c884641c77bb1f4adfc3a9416d42ba073e08686afebc666b9f3bb09f33521506b0cd29aa364b1aaf226cf5d37ee3792e88825f26587b9ec6b509f6e4ce014b98376d3c4924da0221f4d701f10457abfdd11de733063703bfc4e14c779baa987cf82885ef1f87a0744c5a391723a052d438829fd44aa9b1c5b436bc96542f64b1ecb4255df45c13a30ef243bd8f40f64aea7d11a3ba2adf40578672995e772b87660e6120ccbf9a0276d6183f246715251f1768bdc355dd70d6ec3529590780acb046efc69d42dfef60afc943a312bbbbce90b2602a825ac3cfaaaf39708cb02a2426840635b69e2f63b4d10ab2fdd3650955810b7a5c6620adf3d5705400d6eb6d675f5692a3da6cfd8de8d0de14fc479a578451cdcc237540711900f1a463dcf9dcb88fddd4077104eedf08518e9e8262b5c6cc68be1080852ae7290f8642e527fb47c7fde8b74ebbced8945153b61090d47fe8f50adb935f31160bc56b504539b0d7771bf3adba8a70509906f776191f251bd197af5a738cb2ae0738a6e512159c89ff6a9ef42a3a38f407c45f265bfcee47a73de4d30ebb85f0c3e3327cc96d16a4fb2994feade329ab71a55a7932fb8422ea7058d4216d808ca35f55d3ba8768d0d5e3c82138e57690cecfcb3a80046fc5a20ea4e068fd1f1d473ddefecfac75fdfb035b77014acf226d18eda7c783b7cc7294f708fb4dedb99bf34a2be805a22e671629ea05bca603bdffc011288e67d83fbdb97a23fe6fae090949db65c77aa4dd076ecba8a95929cc1aab23491378d3e13bfa98996247848acc9ed2b921ce28a5afddbec7289995e93199bac0f4392eed09a51f81626f18ee46e027f403847ea2e4da725438b3ec95a370ffd079042c691e180000876f5adca3131626d8d6b6e3f8712d354d7799a905683b55d50a97bc394e61626498ac4566230b29fcf74fec20be0ad2390fb185d3512527362a7dea98f7d27fb96a7d1d3c59cdecc289ae42d225c96c222a5f67407faabb5c570bfd023ffb97489ba3e98a476e25a8bac9c4bbfd2805f2d0f03c0281dfaf4fd0a2564d26b266ae6233a55b1a2cc38e88cf2536e1272a8d402ae33fa8161adbbd2d3e85a84d9041bb7e106b867d84f9fae701563f48b237dfe598b6dd015a101f7230f2d52a93cdd3e3dcff9f215cf469d1e8fa4ce29ccadb57ec8efd90966eafe279a889f39daebf40846bad2a21334778f9310ff0c87798e9ba4b50d30c9223c23953b7a70b1510c5007ca7d722f076c404fb268993f2d23fa5ee8034b29285f5051fcb8fa05b528d78ac9caa650d84247cc86ee21c028c34090d4f44d2b5ce6f7e5d16ee04ba8e3568e7675788b8cd450cd53fa4497b8f1d4ed073f4d6a09a4d62cdb7829b6a547869c959fafc8458eef99a6f8589c7fe30d273ee6fe048741d47409f691455b57f57af04bacdad7f3399669dbe8e47e0437461810cb2ac3b9096511c94e493187b78871e2fefaaa18b9bfc098403d1372623fdd856c0a9fdb17cae91ae283813ede579bb090327a26a76906a609764f800b97ed3521c4b0cacd47add4ff65c95bc30b7b655c6eeadb7dd2d284f718f335894a27b16a4132801f29992582113ead2346bb94b6420d09d56cf2338456ddcc506432b05e141e466cc830016e168d7a09adac37269f801691f50fb8bc3e443208e6918c87c0bd3e154a429f071c41f98653f029cdf4027b61b1a09c1d97288b68f25fc2540f37d963a3a6faf6e735d8408fefaa609101458f6b526c7fdf76aef060cf761b52f861c0271c517c75c3b6c80474dfb130dd971b10d438135806a46725e8eca6b33d70381688a7b40eccaac7f48150c6065f262efb52186f1a2f2d2f35771059fb4b7755e14043ee99a5baf8130e6980c41ebcd35770a2aa97003b66d4d5efda636739432bc0320d8dea65f37747f9d75868b50c28c3768b0d3a74db74ff3c5d67ff4d46b040c0ff389b1ac662f5b5a27086852bd034b3c1c406b4cf9068cc68a3029f82995903435f9cbe60f7d7b6ecf6342f833fa77e342a2889882b2c1a3f36d0ef11f29d5077438c2acf2012f7e01765cf65105d825e15a8b5b2e170c4ca37c6506a38a4c304ab1bab433662d841886a1273398d6bbacd65b094b3590c2030ffab14469fbccf7c9481f125569e711320b9362a656a3fa1d02411f371578dad6a3ab307df5dfdf2fb60b730b7f00ab28f1a176d7db4ed1deb6f79ff46b23b5c0f0d58bf240dc8904af29980205b09ab309e93286e036b40422430b9cd485f41ef882bcbb3f7634e88520e2413d08181dc44d319c213af29dc8a1bd744edf7fbb8e3622a6d8cf3ac37921438e121ebb0311d83e2ff26c02d421be8878096212d2ba9863a11fd8ba45e36224b7987f67939ce04c4e2817f4db2071b09efdff469d1390967f8c2499ea8b7dc42721ff841cc11ed2125ed856d34aff41d3184f7588c482dc5301575ec9002a44eb768df465e34d265703710dcc72a2390d4e81cdd285d3cd6f377b67241f6ecb0dac6bfa994986a1e1fb0fbf71dc344249a91567024540dead42b5b70d5e96b696503e9114133fb737fadd20a5f783aacb3a9b40f9fdcdadbddb6a99efc240f0a71c98f6a280f164c2d08e9a7467d4a21927f165b65f969230d6646158f62c9407828067d47c9a8b6ec9d88227db712f02e046bcaef8280744dc7a7a67e552ce0911684691e125b7e26ce2ded73424be0364f811a2ea4ab660c2f9ba6b621d37039eb7f40ea323df6c900d4f332ec584220196953f85d56df0a33d94ce7df9c955fe1963e9a80c65ee01c524375b7af4c0142630a09023038df30aa25ee1cb7ccbb9a056dbceb237c8f0ec78f2b5b05d3ee4a62c176b9e25be6c39a42895778574099b0a89374d637a249166cfbc153c1c6d81a86bc001a530e51401d47860a5320c7bc5107b1a167ef4274449a89ab048d37a4328424d9fbf9800d5e3192e54b0ff0b725234cca1320f1026ef385d6cbecd4a8f18ecb21e57abc36f984d619d6404451066c82a4d667537edde03cca4903c126e84a6bea8843b3a653e6a46af435d6a1ae64a5722fbbeaf856de68ea635436c026dfd0645e01d90262e4c03858952005993b9a93e2f03ba82887781bf6ac0a9c44b99a947ec3e5bff349e33cc4227d8197c15c01c1044fc1c2de0fa596c13ed645f2bc35d5af52469cb039121c69aec0e076771f71633365be5c83e4038c7380af32fef2178edf26ec04e390ead1569893b28ed912c0789d25755ecfa5c46e32eb177cecfd9c105fec2f76f868b47e22f3a6d511d975b3680edee145cd589b2a5c7f268e717baaad0de67bea505d1266dd4a975ff2e0fed6da237c359b6987fec7853eb6b6ac3bf7fdafed340330618f3effb11d5b6b7536b035578bb93265dbf47bdd2bbf638fba159ebe6ccdc8a1b8821d15c97243ba4ff773cdf64f338a569f8b6d6527cf3c954fbb525858776842487a49af6ed372b2f772eb7bde16f2cd294a309f951417d8fb40012a897f34bcd44de5ec031ac611e013f6d5e726b858a700b8417587bd2ba2c09a8a5f4ee55c0ee219bce2f5e3b0cdcee2a99581a14724036d98486c0c45c3f5db739a373e0bfcdb2413dd4e7adfa408db88c0ec92354e0b0bd80ac7a6a96cb5fada2d6067f60df5de92d2c84086cc17c0c205e016a8dd2c21755c487584d07d1f2bd3306dbeb07e2fc5bb556fc31e2ba308d54bd93f63a492ca736a218a537ce78f3e0bc12ced1895ab6e8d4497a09e4adf9fb62f795a7318100c349cedc27ce30fc303b57c169ba29df62a7fa0d269b1e194848efca376bca0cce49764a41817776f100234c94b7c779970e6e8ac3b86d390a10f7fc9665f91e2030a3cd2a97b11ee75458bbc2b5c18e47cc2c19788ac832f50f132adfb3597c6e6b07cd5f77d35b1397d6628450f3158cc60b0f346b97e269416c8863f453e69cb881fb0537d9e36088fddc1a77862953c916a02577791538985fc4ff7ea6f3f0e555209da50976b4dc25490f70cac17e72ae3429b661b29fce6bc02e95549e9d91fcceddfbef47b3444251d3b542ae51285669296393162c309d54ab208426debb031962204e095e3a3d5bfe36f25c54dffc6a4fd558f28ae5f308dd45ca241ab188ae52e53716c8f54e208e18d6fda767899a509555c16557faa6695fc499ee82ac391994f1a83f12f168dee7513bb25d681148288bbbdbfa36f045568c6d0f9fd45280d90e08b43f072933100535f62828f2e64712fa09b28edf70573b98ce16b9b60e724686221b8a967aa9bf58113e8a976c646ccbfb412526884c68f725e95206f1b0bce6d9a8b2353f3c9e64be2fc0c2f17723a347b859fc3a45b8746775dcb4953ba52734ad0997e459f246593b0d5d51c14896da44d4951f40206922beafe10d699d42389d43e3ec247fec4fe7f9ef62f7ed00e6257664850df3fa96d28700e8e851aee9e47768a8d7da2dbe0e62be3fdb6a48a3b36714baaea2d4f70451afca44feedf74bd1da75c15feeeb8e52825c4f857eb529f986b8b6dd4719f354385913a07a0642e653bba73eac4c982f3ba5c320d71c0ed9f15298ad9b8503090331d81c4caa476375c6711acf41a467971a3869aefbb9d4f8a29b36be0552f2a3adecfb73b4dd6324beffdc0790abe23edb4cb3b167ed375c48730781a2072f2d0dcc5ff0d167131ecb958ff6197fbd433480d150b1fd476ee609c31f010fcc611a077725dc3d06133a7d803b10f12f4c9eb0985043b8a6dc9d768e65dea15d789aaef9712a75fef0d8446f0d2349d89b43fb247cad003dca7a45727230dc707f182a97443c1ed3a8777017a383b396cf25daf6848a1f2ebdd5a003e81596268b9c11524f3ce30a32cdd7a48f642067d3e83da059e522d3fc9e650f3e113f9b6684019433a063fddf1dfb6a381082af42cb2c2e151bc2d50d24905a62024e3f4ed738c2a225616dd178fcf72e4954ebdf57a2ac6960d9162092434b16f633a0b652fbcf9bcbf154ed814738a02ae1fe47d4a88b6c9f19b03412dc32214725f7ffa88e97044c5819bd72c634bca84ce1072a387f29372b11ac859f0c171bb7437e15ec79b49fb02899ff6f6906a189114846c85c85a1add892509c86521e4e04e8c06004c3f7f235ba4c693efe72820861d0f1538e7c44e5e7747b19b0bdbcffa9e04b063e975d68f96a63a43ab5c386e197a7f646f9fd59057dce19dc12bb07e4448e7ef7abbed2603ccfc8de3991c04573c3bd76b146956689ce4998efdb530e2482b136d9ea27a846a7e26d5fd0f7a37d37a92e2c2a300ea341947fb5f568e5591f3bf58d510a805ed7b367024dbd958f99df3112c436efc7236cdbd22ce6030b82d435ddfb787dacf3f89c8a34df11f3abb65a575a90b6edac0fa4f7c9df1a480b99edda5fc35ae0b2caa48b8b64ee34e20e4dd795c633a3a94cba52f044f14e4ebb39e85a62b8a3f3953ba1f6b4dc9d2c84c5862873e1acf613fbeb68ca070100d3e90dc63e6778e6e2b7e0a4632abaae8825b357755c76e2b8008357f8be5fbda9ccad841217f7369d58cdb24588f166661d8101e90d528ca58d7996da7780a056f8b8c359d02a5dc4d1b29656c8cc25c7d854993d643c469fb5c68a9029466b0fc3a3a9779bd7e0c9afc106fbb275599b8c047907126830718e90fcab6ac19f571c462a41ce34f54c61a7d2b8d80e91fa420c7f3fa0ca0f942639c2b8d77a661e9ca5ffbab2359a034a1658791da9ba6b2df103dde050b66ab3bcc6ab35de27446853a2115973cf23ab277f25c59cf183b8be416696106ca214c46ec7f231022e04afffda5d01fe111c2c8e2f4fe1b134ba005c76b9665736e63bf5846f3c954fb1a055c359dc61513f167516c3fe46a4900d0be69ea5a07f8745c183c3e1d6815a97f6edb2d7bcc47ffaf3c90bb69a46867c80e5abff2fcb9a683db6c2557adfeb739473ab1ae5847b33523a4f4d87ce94ed9ecf7a8951f8bb79b16bf5c64e8c4cd845f569ddb9f65ce0f8c2e0b2c5f2de5cf33a3ab2c0eb477ee7e08ba53d36d8a4212ff2b599a31e8fe81d5daf4f19805b8e1d046cdbed54d008f32e27e98812b6b21c7cb7dd643cbac0d4b051788465ae9980b2d25f51f0234086fc6185a65069c308d87a4f65c2dd4c249be3aaf8811f31e84cb37d0d7497f6d7ce365ac8503084694a6672fd4dca236a16a49a53cd116dd3103623f2ecd4984fa74ae1751649b502c07a9ca55bd1181526495dcecd1ae6483b5028466a14dd8ce0e0f99025e439deaf5cea5f12d3fc0bc75667ac34baee49e0699b84c71753a994ea8213c5311637283f2b379b21196d9dd84db4c9f66b33277a346fccd413a3897521471b66039cd9a9a7730fa89a689ef040d0ae4deccd5370d6ef66134b25d08e7cb20df3d9b535a058dc79d341af19d0552d3c6564ef85781c388001d3c33246313e15b0b6a2571ef22ae2e1d1fe4874ca20ae200f963b28dae83cbe9b70ed5a8ab388bca6932833f77af717d666354aa269ef99bb44cb919e940e9c8c636c560c949857bc1d2d5f961e1de24a52872dabedac45509f1835704fa84ff50b73a91964ca0bf7defc666cce2c03d14438c217c0e304da7cabfffe36e13d70146e9cfadd919490fbbd064336a8da6f1c3454627fb3f1ddf4e675b3ddc1567c8366c91a004afa9caf91b752a24518ffc7a0ea0b9180115283f60581f42d5ce57805afd73462dc165dae22fd5e1486cfbc222e0e1a72c249c8963a868facfa7a7d026da1f3846647e5e26746e170298375e08e982946d0f78b9d0b34a9fd31671b13d98101d30d3155378d4c2aa9c30fe621a8132286f32a0f74efccf41fde6b5bc1340a83ddd3e0dd9db78b41108d51f38f6ecbc8c1ff1189b5d6552f0198737e1150bba11d4eaae7dfeebb9c055e871a1db869e1ed0fc8c4936bb028d2197fdb6adbb0f3bf27026e34b105be97aea4cdc51388c8f1dbdc9a7a2ba62f4c5f0d2e3cb5ce44fa44b03f99dc7b7881b470ecca353ebd8c97f429aa7cecc7350bbc78faaed6a755c12bac48baefec538b4973605ab57fef18d8c1528b3e98f4728ade9b9a245ca51c324ba98aaf7a0dcdbcd1073eb1da049e8e27ee12d3a1b97eb9bbbe8d00ea1d20cfba3c6f07cf01c9519dba031c25d4637a19c6319939c345f6e0fbb4cd18ab3c7621c4c98f8b00f62e90d85877a08656fcd16e60f9a057a8744e3e0029031a5bb5a9571c3f0a28a412c965679b1a5f2c48b871d1e4db9b0da00ee3ed4be027b554ef1d6e67739c824d9610d39864103cea51b720879e286c3ca739b4bc4a9ac2e88aba3bdb7d84b8268fcb7d74b91801c09c339d7431a69538c2a61977f5a9c24b99063076f649f90573b38f407667a2d4af1d790a35efa7e752e2a4ec0eb6b4575079242701ec4aca6fa38dff4ee22461deee442e458248c7a0605e9cbc16a07b4e815351fd570515be96e9c01cc20badeb5bebd26f4790ed0b8a58ad888661753e82f3af76177cdff65765950f02022096a25b0dc43e6eb74eff49e96bf6889918d9dfb0478eb98206be0eab954d23cc151c5224fbae168a32caf1aa311ab5e92bbf27168c2e4c1cd8b40a0467ab58f4c6ad0ad18afa728620f06a71582cc22e0c96bc6d952f66a1d004e48b5bc696094870925aa352663f7a775d1f46591d9e52cbaf62160b5bea8c1698ef974624aa804e3e0c643a24f6ddc3f6cbd2eb89571ae8de99d54e90c0cb81bf3b9eb2d883904933d04284ae815dd3fa8e104add83a36dcf8bf2c3fff69f55881d01bb8021d413f63515030b800a907154332264a57222ad58d259af4e602a50acb44335cd06ea2ec6b60685a85a279a0be5cf36dc52f550b1fbb5b9b2a3d60246e4d9077ee29cd8b679840aec13350e39d9089bde2f2a36424f73cd4e340d5582ff6b070ba78e45e2c8bd18912834584211b16f2f5df1bcf5e0f93c04367d7febadbbd949bdbff40f6245ee19c37cd3fff34225ba4e35f7a215419a07d5204f36b494aad99ed8805d3013eefc44d922edf7c11d57b8b995bd86e9acb4d8afafdd7db2fdce494be3629144ce5b7fb2a39de4105526cbe2e5980f012ab6d28170b43f34b594ec33da22e9b1316e4a5b4430d9eeeee4a0546f52c3027ff21958c732bf6889eccc6b1b86f6935517ee34980ef60d93d4d635b6c7f790637ac53e489bd63ddf1f8290e884a7bbf63fb928483ffc9b9c591be67e3358b15d5d8de3d425bb62ac89224f4e173dd704a97fe7d2a281347b796d85c6f9a65fa157395dc4b1d16262ffa9b251273e323a9d210ff1d4bcbac7dc1d6f7751169e326ccb6d6304ddbb447b8b3276324aed887ee98d2c2bd001d21da5a2c268ec423393a6ff718e9e066ddf5ed769136021a2b729f6bb3c63b8d688d2baa8c1c347faa95f4259d24a7f852ffdbee37ae6eb61aa9ca517322492847e96c3f17590fbf4abbb2e3b0e545076fc95e473262c3070f24d305e984d43e69e3681930f5a76a800d88b307462f600f6877c9ec7ed7428a3408504f0fd3c0a3d4e725f837f8bcafef117c8416c2966c97a79d9a01a0895871e42abbdbbd89a0f718170e78a131d04b09373158acc96234e255564196b90e36b2bb07769c0961ec0accbda53a438e0faf7ff5c21dc227c10b9542636e30e522400bf660df141838b41feac1ee34b0aa48d2c23fcad6f1e40af6dae41d01f998a570928d0ae56ac38b6081616b01b693ac8e356dbc3c56e76894c7133253134017e07de72f946058b1f2522e1fc9d5c2de0fba20f8af903882d8af9476e69384cb8f8dca399d2628a6deaa66c8598735bd6a1dddec9d79ea4669bbdeebf40014efa44f86052b5847954e2e5c53a9ca6dbca51160b83bab338b65aabe0ded0b62a9da67e14d40a52e2c3c12f4085e36eeb37b9516393239ece746b0d269be8f273155639265028e3703d1eb280dbea4c2bafb5fa3f0c969142b10870f86b22adcf01297c7c1b06525963b08852da006f71398685eb6c0124d58a9823c170c9b42bbadd8a05413f899ccfa6faeff377d1c2b7664d03933975d398bc67487e6f2da0f5e65b1b769fb9e12e277d84fd75cc8a0119a39554407af7e1c22a8cc0f0d6e6f7217842625f01e0158084ddffe23136784bc0b306c8dd06f62821b8fd66986c0ac1e1549f72e6a969191e97258c31bee05986d319928f22be759e49f06c0f4c337cc54ceffacb6fecbf9a03174cc81607339b9c28cad6c7af7d96fbf8d1b499926a7a7d6226d9aecc6b0f652633ee9eff2e2fee11d2d372b9a5afcb382585d53b0ea652ed2ac9281017a851d8ab07e3104907e844b287307e3d81fb08826cb9c99c35c58d3997fc67b6d7b35438d6b8a8f0331c9486ee05183053e09c985726c7e1e4b68ccc525b4fe24193b2ee763acc65a41fbec1b66d7b9f7173efddbf5c9ed9c69ada19babcb2c0a35b943351a22e8e78c6431f78d8f043b374d43553ca28953dc2ceed11d3fdd3fb96308ebc9eb37a826f0a64c05cd3598835bb641f1ab9c4743ec2035eda983af21a67973ae2bbf00d49c0d8820feceacb3aa0586045cd83e2d0c092b6e59a65901828d8e8ae2a48d91bf77fc53fdc21dd2df830228ea2c58a0b2da005825a5267dbd5f7221bc31b80d16a3b3b9f101f5c09968095365ed1093c5f66b47d8521bd061665abdebd07729a971a78fbf7083b0573e9a42d8b1cd7375ffa43c282303c6894760ac18a01a7c7fac7bb9082ef3aaafb61df27da9baa297032c1a3fef5741802a93bd5a6032d11f7aa93cbd46900ad55eca28064fdbf3d0ca932ad3926db72e9e43c746dacaa7e33211c23b3cb0ff6eeeafebe9b06d30908ca998cfe3adb2db6e63230b07dfaf197d121902fe0a0dbf2aa404d0bf5994d89bedf38cc6ff4f3905aa2d9c909a52f8da9db4ed384a8b1798f18501554152dcd198b199604ac0c328e7c6f07a552960142e280c1e8e26a273b53feee2e90c67c159a812ac63ca6f3f8fd54e0860836e263bb1fb02a95c76af4f4ac101255c18fd8b968bed9f47a96415c1a72aa5e2dfa283aadb7ddd0200eb2481054a114e6efaea9b87cea5a6a1f118f90414e27e42a97c18cddefcbfb5a137035a2f89e49f5ba9ba811e2166ee50c56c04b8b1c0f8e353200329de8f1f0acbb436cdd99147aa645c857c6c9e773704116550f3c80b33328d63ed47402d5f57b9c0d767bfddcca4cc566b5078b69c4b61a33623e8cdeed84bb7a891f8dc8d9400af22bd4903c175bb2b9284b2430ce2d8a5a415274dec46ee6a8773ad318145b63e7095019c6431bef32bb61cb62a6d77792e23c095adcd2cdfb0b5ab7986bbce377ae52bb957becb30e7741cd1877f451e073fa0c467e25f497cb212e583be8101678300544160c05fb88d2d0318a4c963629febe9c801042431e9566cfba3c9c61c0c2dd800b5dcf060095b34ef1692d5859877bba7303e2f3531bd0614e4e4aa24dd517e96a144d0ac3ac8e416f4afb75a0b4f1707ff5301ca77e4302369d70d107f8276ccc07f7ea8062b9b992637139350315617762e27bc543bc3702be9e091a8c9e2ea5cfbb851d74ca31dcbc3d2b3d9116e1f05dcd4a52c84182f68230bbe16a1a1001d86b28477891ca90aefee95d994e477540f26a7095884e1e7d7dd20d37ce88a55d5db276d555869abddaa3026969101e19eeeb5cda219ab551699a0243eae855b003cd844b38897b6b1e0be2da431c265031be7e322c13f9e38005b54c0e52e50045998a8bfbed49b165e914983c89064dba05320eb9f71aa58fef0a34e88069b40b043092539972bb75020f1a7d3fb916aff7a10e5cd948ed65af24e2a70d5aef8bec818a802839bc7c22d50bc4cd383145045984c5c3375d37d5b350703c5c5d59a6b519de0c7887a270b8b217c00c5e5e6065a2faccb20b84457d98eacd1f7631a934c6d91de9589f7538c689b955c0a832712f21493ddafe6b6aedc28226e928de2b9175b3fd2b25daf8fd8473fe9560f4fc1ccda762128e9d156029f0d7d3606a25dabe9eb9336f36abdebc481adbef2393a4a75d5e55624c047848bda1d8730b79bd07de6cb5a8c0013d00e6c4cddf0966aca25aafbb0d71f8adb7a8098a2bbb0ba3f6bf027e614d984eabcaa81719a908001de243870ced9acf393f62c0652a63845e72985a97cdebd4fb424d3dc4de4e07576e85c179495caadf2d8321722ef4145276d50f3b3ae2149aa8b15a4c7a8bb0435690ce7b8cf805ed26e759ef6f09734cf7e7219b881bed9768aa0f34226f05ca325f06726c4044e885b8947df89fc1bb06d4ff4af14ac2f377b3a172a62da80b5b373e3839e163b4e84782169d68499d6bb3162182ced3340cf16035740974940dc1ceaaaa26fd3dcf4672267560c5ee92a33c4007f4900e192bdcde35b46e3bf3e96ce2b3f6c3dd6cccaa14ab25fb1d745567f571dbe63f5b6552e8bf9d24c6e37f727e23b1f9100804cda0ba39cebd7010d7b46a31260480a970599b5d7d8a901b1519976af5b50f3db6ea2beb2fab510daa79fcbd9aec60c9cd46acf42afab50cee9c0dfdd1cc34028e00d2be7df71be13725933a4368106e74180347b4e8ed8df5331a9d5c9092c6f18ee79bb302e7410541b6074977f0c31971bade802a481053700d9f44a0392b4e4ab2e9e976e3a2e43da5b93a562dd044272cceb701d40010065b20ffc065d597231b15951a6d4373e8577bde6d6bfba576d86841000ca255cada6cd30ffc78fd832af4caf1650a3c6c1063f14d7cc2509fa8c20ad6ca540bf41c022aa53fa598d062e1598fd1f0760b826019dbe4f2635ead64ce6354954dfb9b99422a44697ec0dcf7d051421ec14f1e1b6262c2660d764f24fb1c64914390133efc6529623b8ad082b845c1ed4f13f435304b4498793e60405d358cc9a8b8bb646b6decb3393d655bcb741b1e587c129b1c162ed0f2dd29aa9687bbabb589980ae870e26e9851d9ed3d204972f6be7efdd9d0fd9921191a8b261e96faf678c3ad1c1eaed8c7c6458bb1f7cd5deb69437c80a7fece1cc435f2701b0dc8b444c1cb16188f904c6122a327d214914864a6d2c2f55f49b9002b77260a55528beba253058a3cdd898dd0439dd70763f7c64d47867d83a0ab4add016e82e8d95673862a50909688e8b20059fc496b8053d652e0bbf837e35324e912fdb576e48183968b0cfd2fc3c19c6926ccd6e27c6f2524f9a7b69386b2806193cca37d4736ae886b0757030f324c0863d24d2cebbc72331d691655cdf5791f7381fa957d23dde53c1bc8298f5701057100b3611996f3a58492c20fdb1a75540af954fad4e35e38ae2d8858de924618b0e599a4f389ef29a4e2ae07d63a103e0febaee4d8e38c571fdf34b97b74d2dfc58f5c730a78e3d9e7e9f2d3cadf3c6d5d47410635ff13b32cea947fe4f5b799ef060df21637b4e99505044dbc7f006327079fb317050dddb538ba64b83a31bde6a2937ea16275732ca39569b630eb7fc12d5f97e830822004e9c3bc2cfdb94c83e768a6c8a57548602089e66fa663765be68efa28a107a1a7bd7391a5ca0788a1e8177efbe53eaadec9f417eae37c5dd2365404dab237136bfa6be0957f36501ff194e87636a5151569604f19b637b0487d5072c3c40e385166c2c649ab88f64251d2e7be66c521d47b6ca455ef0e27b26129ef4302a41d93bfd54dabf36d545d10576bf692e532bf67fea038f881315a44c6f8643e8e42b372174a5cc9a6a6ddf5981dfc90a73ae5aa34f032df963edce072222654676b69c15faa6387311521037b7f0b75cb777f5896dae2fb6aa61249b0defa7535f39210926c75c37e12f73d1e868a0064823d1cb01a004550ef956b30049dee150714ca2709c43bd9fffd4edfff1b9ecbb00dfb8a646590f66a92ccf5790a209d7e77e7ac6a56ec1a9d0f863fd9420797508c7d235785d442a1710c2637657a4fd91349b92a161646b47cda347d652190f70f951fa1e9ff4f4b2c2342000f6d204ef690899cbaca96842c92c499dbfbdd7af509fb36aba4692d6b7213ab92b7725994d35a10bbef9d5e717165f01555a5f0bdbda672f5d05a143c35766d160b9657af489f05ef8a0c09d42891756296913ef7256065c871dc3a5effc071ebb847d179be39406704ec7ae9544c0106969ebb4a518dab285235efa8307273a1806cba21a127f443196629d92174561ad5925a2085ccc2ddfcbebff78c2b63e463357c99c5c6db12672bd6761695e98c03e1230840f77b8506fda0ee24f2ccd7742ea6b45f8a5758bbd1d3e58b20fb59ea3f2f14d55072afe8ffdfd161f65660d2d30b67d9481ee54b7dc6d5f0276b33114e3a94104f0a8324b8ef4be7cdd475335ed45c8cfc58a2685ef822d79e676e2a2d85e0a286ce265ebbb4b36003749c05d42548ac0cfe731afffe115cd5c699862ad85147dd1bfbe58cce12b1c0f7497ea0113026d8e79dca1135d6ac7392a2bee3c8f92f8b283f7a0cc80bc9325508be913b0b6554d47232ac7843ec551e69ae2906df53fd3785a75d13ac5fcd21d27a9eab00ae74e877cff13b8b13a4b339d601de21a2ce79c89afc7dd9f43cf784f3d07983d0937236639aa34c32a4d882d8d0da71b4e28f1e6c6d4e0fe28481d21fb8d061692456fe7d3d8a919affdadd911a0c51367b75abe58476d28be47c9d1ffeacba1cf609e0b2d06101676d0bf739b93ab77efce3cc5a9176562ed6a74fca98695f502f0bcc18cb8c6ff42a598ac5ba3d1888fc5361f1ef888fbf2e757ef1a8a309ade853c9e972e3b1668b6c4da86130545a8e0afdac1f51f00dae48027bcb38f610d5b5ab1db8799da52d752dbd64da6bbcaf61ac3c1a8c2520a1ee722b73b07b2aa98ea04497d4af2fd021f8b078e6e0c3de21b7aeef42b94badc41177cc870f2c772525bb3a93f997a3a70d05b9e8e737bc3f803415a31ff753d15e93e7329a6e812bb78526250b970b3038e17a438afb313015752d544209ac6b1f374dc1bf48652c796431f29629856df2104fce6ba4887d408e04f221ade4e20d0595048c88e4556a205748f8b408e8543ef26f25450c0b3e74da18afbc833344e6cfb7c7bdf941c8afc97fcc1c964642e29c6470316d144291f1f2e8434e03d40f02e30f1d0a81e34f27ed09b29f3990607a85454998e75db81bd2899d1a2178f6db5ae67a7a355a791819f9b6a1f684f63e473e90bb3656fbfbfb193a3d486492d3710cb232c0996ea955c7229abf11b1909757052d08289cef8e086814f2b07c0aea337f307a8bcf017626a18921a5c8b560b128a1240bdc19bab939834770479edc57c3c862978fe219b227cb8a5481e0c380380d2137e559c7a64e60269d2ee2f54dd17ba418e4d754fa7afe9e97abbc401d839f8a45a669ffcf3bffd01527bc22cff1085f2607ff253649f26b8ad4fe30aee692d528a787b15d54ce3b2f8c0b56ff7a87143ae17a2a1624d444d7e4b0fd9c5fddf7cf02f490d4c07f338081fa371a5d45d2a8cfe4c95c150da68c524c1df69921442fcd70361ab4144a5793f81921a7df5ee8700a559625081e349d4de9f12fb088b36ddb9d6909d6c88d88c886aa1fefc92af4dfd3d4a8b615e9f57686e0fbea69fe3534db7d192767c30b427ff12a96b09d3f892fb565311e6fc2f34b49b97c5a4d870c44f1fec27877c2b08f28c4256467a7b652b7e8dc3a2b8e1bbb8b0f53db0880e2a1caf4b980ebda822dc4782a971e4329f6ef733c6efde76f8491478cb5c582afe3d7ca2175af6a6e3464195b4c6e3db8d0b5fd350740cfb4ed3dc79bf077a6836200ab964d9dee45ff5a89d83ea901c2b01150fa3174c018db563828322f08dce6aeaac33acf1e5986f852d0ac39ffd34d3da1b73ea3a1df5f126d1eb41d603e9a7aa6b0424ef71d101d0ce1d19976ad690f842ac5f1d695b7a6bda59d5bc587f3c3838493a9212f2a15c7d408f4bb2dfd7ff627d6ee20252b889c2aeafb6bfa2963b2bdd346798fd6c3e2b3bb7c50b8fd6996bb7774a88651daee50dccb28d4cb365b1caf23c9695aefd3c88502a0be98dabe37b0889a169ce7f506ff8dfbdbe5d2d09629b9fe28ea4e0098ef95230a1d681653bd4c175d5bb8f470250236d74ca03c69fa928199670bc5ea9dd845a92eaa41d0480b23330b9aac15faf1d5fa26f9a50e38d3518e4e93ffc072a1a4cc774694e2019b48b8d6529e78c8cd779473d6e62f55fc38402416e185353022e136a53cc045100331af72099cddced45cd966e8d5e5bc343a0a70bda2976b40d3a2ce5828fd8cf63b83be8e846f2057238b040b40d203901766e12df6b5c8e5aa9b983ee95747858ac60bc9d717b6151e930528f4ef1d8ad3a4be3b853f1a167c0ebaea0c3a52ad4585371b15c0ea758ec3da828106da9f9a7b8c769612ea2eea805ebbfc8fd4f9c0bcd01d3bfe956a3da4d1a607b7561dd8ea289ea14cbf789bf155f83d87bd4f9d95b83e5ddd5ee6e4a68726bd946d814fccf57a97839053a8ceb59bc778ad6388dfa7a7f374f739ccfb2be50caf3e29d6cbdea077cb948e54aa4a54a9b78522a9f09cf6b0d65ef338c6dfa6acbc1673b12d9e1d61d8d5ad10310d0a216885fa446bb9b27b3f57fde50c116e90d2045f627539de26697bc2c347154505aeb7d009444ff66b132aa694d0156529d32e79856f46c6534f00f840659e16f824c469b9d658b8fb89610495142defbd52b0c3129acc890d2368c4e1ba2cb32b5b78455bc1a6a3d63b714129c6962902bee449491c96b0967ad8362e1cb1d5fd1026a14d8886bbdc89c97fe3d15c3913fb034d77c0f98672b67567d7e3899cf6c0c0841c4762393df88d56d080093d1479d6fd777177ab8771376bd470f6df0226cbe49ace5f4f5af584d5f0ec37cf9c4ab1db263b4a4fd9c2f0329cac55c43336e961d909a6a4e56e9befcb416a2028924344b3a47dda88fa91b2763918ede6f74ceb2d0aa83bdd52a8f0d54f52ebf0d942dc9e237ff24623d2a04694340ea7b16fe82cc5dab93baca4b80664185511b20a5181604914d8f176570e3512f265a9b4d0a8cf5ebd98ca09be74ad197b0be7b1f665396c1f4148631ffd30e97624ba6344a7e308cc71246a4f99302462990f398a7e4d6e85c5ec251a90e504605fd3015484596af4e6385d010e936cbdb494c2512f3a852c0fe1d994aa2097488072dd18d92e1c190c886eeaa76dc9f39ae6d0ba2abc50fcb3b1c6223d19ca8f9bc662aa613196e6272e8cfe9eee37b8bbe134c977327c41e6842295799dd4779478355a46e29a2d1f829f1131ac6846c410070f22cf7eecd0da97e6fcd1006be1734aa9d4e12a89aae153112f77a134d9966cffc8a2df4e2e897f7d7bc64d892a3f9c32980f8adb0c3114cf46b04e9f1ea8b41bf765a44d9b1b6e85e6ca6bf52740fb8e51daf2eb93783a26c866e1aef93d5488b83445b22b89c78ba5e35226f855b3ef3cc898c929caccc4f4c677734f1bf5c737352f2a34cc90902ed7748f0f27acc78098ad8c7a8b2a1191cd0b07e7577e8cecbf0af33fc4e12322f52f5eff745ab1d8339301b9ab0a2669dea0ee20f0ef2b67965d1209abb36aa746102183d65008f89c3540668062e7941031946e286238c86c3c8aa1a07e5af4cfe5d2d77d29e00891f1e32c64a7ab853bb2ae747321c72dcf08c863d93bbe91e47c784555e32a3965e35fef68a1b2d9a5495d52b1486cf1af0655b0886bfe353b52a87c09503330d6e11fb6dc2c00786a09572af4e68cf7ae053481109c58f0dff8f3368a0226d39e1897142b4ea17f47419f720cb94e1c365cb5d993773bf6f47209aa2f24091169473db719098547dc809f0419bdc37506a661d77c5fcad78dfe9619aece2e51a39a366f20e4a5757d890baddcceb49216d5402d1a8fd746919ad42cdc0db321424627795ea41dfc4f99d0cb0a94a5204cec9f9a750ed94bef02b8bda3b374514e4d922bae5a64f16f9ba6b9b9d07d1c6c969e231323c72b8882c9ea147ce6f6d7e3bb3cfc2fc2b3a2821b42f3dfa0a7b18ab1104b782d573c39c6fb043c406bf5c6f29a8da719fdd7ede9680266583cc5f83d00dd61e6b92730b09028d14e21140ebb69a3aa9f81c6ec5154cb6f98764eb39db62e13c4273eaf9090dcf28e004cbe3417674fc28c449d40971cbe5a65e5d1ee2d5528f4ffbe45e2122f8296309756fe4438aab461f69bb9db512a133cd48040a63a1e8eaed1812971aeb5eceaff8586dd99f140c5b612bd0dd94a4c54de8d06c6a698150d5e4bdc35648750b048f4fe13b5cd85775fb9ef7118114b6ad621c95ba71f4207be462940ce80107fa89dbf5d124c3abbdc76639956da9a79e4fe4056b57e1dff06b6f0ce6dfdf33ea1ffe94669c6eade570d611cc88d3fa7a6e91b086eab574282bebbfef2d56051e7aab5cfb0fd2a6a13096d0927427571ac11e80868555ac1c7c3d58d76215756c585e206bbb6307d9074519e4c5a128b67c04d09be934b7891da3157ae52f80e6dbdc67dc0f00df669cca63cf62331cde82a5f2ca6908a9355c7e46c3a928a9934ae6eb036687676adef17bbf3856a77c5462abd56e51fac8ec4ad1da7415733edee91c37c6057727d727ff10051f81ebb020b2f59def0737f824b1a3089be850f0169b4eb0430e774384e4f8295e2318530b34672c598eb61c81738ad03a15c1140fbf580dd2cdc7db93f0bac9e64db87e8953c32945364a65e9b7a3e9028b0df642131cb5fe7cae6bb64030a200838e4ff2a22acb6105d97951b51aa032e049048bd66931a285061b45c49d625e8bbefc4bab3f0128e8d689dab5efbbce2c3b49dd7940a96274a28a1fbeda75aff031827b69f1e2fc2e7db3ad960637728d84f31925be1ddb7d8ca6b047c77a09820c62a5ce15b7980d93e9e9488536e1a3e36ac833e36211f6d64ff6ca12e5f2d43070243ed4a61a1cc6998052826105147dff46b1247ec8d8fc3f99875280cdbdd4d96712e06247d79295424d03ef030939865fe4ce548842d2c7ac1168cfbcd825db3d178345301fbdff4c664b050faf2f746bc037d4a6f6044c40d13782e903fed48c0c78bbe7b758407ce079446db8254b3272c1fd39da2ca18680af7b30e4a7b4402795fdf6c8614189907896f3d7186975d7ac809d796ca9f9b11c22e15fb3df3e914665005de575fb5f3a9ed647dc8cac02bccb2180a1d58a45d3f32b21da1587e5d8e558e8b96d28cc49604a45c5a1cebaa4c08d41256ca3f4239a4719f4fa43b593746abcc7f70f67a7fedf9167a422f9527357331db771cba2f41ff9fb3a7205a4696090e1140257f8a1f2f261b2fc6efb9edb6f5b7cc2a8bdd697b9237af1ced623f6022d3da2d504eabdaf3a97fbfcfdba6635cf6070c0a2710315f982467d23793f121bba09af867fe9164c68d33998d995658519451a77a4860a9a64127106bee9a3f01681c647a16ef8c001f2f067ba7007398c0212ddac6f5df9724680ab6dc3fddee9869090c6bd2ba176529fbdbaa1c473412cd7caf17b14335b6972e8bc4f4eac77a096e6b0f307eec5a4fabe8d5b6a3eca13ecb0e231faf0bdd58507a2ca24ecf3bef71a87beeace66876659e6cf6b61fb9cabf024201fdf01b7e7611b49f4c75fdae4a8d34cb4cd7df07e047d955e352029bda289df563050ad3fcabe90975749c1226480414b23cd0c92541bff7d03871aa3ad852ab632ed6d25c7dbd8c889ed028b7729311914b2ca235d973026f6086c312c263a1af45e69a69dbae6a79c7e478db3619e895cc1ff69e3e8b15b996fea0d24bbdda1f6137dc12bc2dd38269160a92cc2c38dadd497cd60c25b41ebd9b7348cb26f2ef57bfaec928eabe5acf1d9f529dfbb1b399b846fd557bca4fc82e376a35ddfe9b7c4d98fb2422ff8cf64d99b637cc0ab4eff34a16a3d7e72218c0af5969a84bcf8acc287729e1a220014aa58919a4bbb07f33369e587ee3cb1ac28aa789c57d6571fb2a5dda312f7c7a866fe4838de4b04762e03e9987ab857e9f9e0854b742c6087672d0cd5c46fa458d3f22ce0116237e6085d0941e141f5b490b7bdf785f39b127158de547d676d639fae6a5e6387c3eddb9aad21de550f1d0ea2c757d527b94fa2d28674491e4ec6f3408937d648e79fa990c2784916d1e3bbe9290e3808beddfc3ce577d9b84d256bc987ba29b6f9965b4a3dc001ca9ba92228d02e0e984d1d97abb09a23bf672d4d004cc8d9e7762523866dcb775b278818cee17ecf1efc15d92772a0419d34f12dad60aa8e731ceca437204c61d832c12e9fe86867a5b3017c2d4f7921222202e02e0493f0f81567710492e9e8f2c462573347dfc37d2830152ea4c568043c48fef586a00c9739442cc73153ae80fc021675ffa688b95d34990e6f425a5a84da3007fa7d9a7454946c1033f90bfb70f51024c9c4cdb0398e30a58968a321dc59b67e2dfb7a398729d0a0f0546303239c625578062d7d2a42eb41b4c8b7b87b90a909ff35b993b2b4f4ee1eeba3d8fcb59cefb3e2277fda105d2270eec663fb57f167f82e31b4f37309a5ce71dce1e2cc092dfc281cd9f440f0fda9d368cbeb07c7f03de3bfd0308474243fc4682954255b20013c93f3f92cc97a342fd47bfeee450ccd458aa0b52797fd808e3add9ad19b2b49d0b4f7230769b61228d165be9884b90ab279e2df931476e8dacdcf8ccaf38527690b555b85dac29237a25cd8e14e09a2b185d6db171f0b50eb95f6db2f80ba020e963f3b6717223844cc98f31cb6a1b22fc4c270ae37ea2a0812ecf611482bebf1572e2608824e763ffe351aca523c4f738270dd4c7c75672f456e79671f898107345b6a6fc2343bd057b3b1a241264c7bdaabc48019c421cdfee02c101c5e2dbbe747769012b449d4f57703fc9bc25d9551c5292fb42026e83dc798071b84a34d65331dad092364c2fa4955c26905874a0e147d86a889436cfb4c2329b6abbc88a3a9eb0b43c9463740d5918ed1f8d7fa1c71b875cb316e7cd3c0c127f5d89bc835f18b74d06372377e2a819899397cc20bb78b3af4ffb1f65812399bf6e02493a49c3a2445a1c6effb3d9187e27a1982df4a99d8f30df593595bee44c8f1c2378cfe4a2c4aa9ecfecc672e6463017e24058dc28bc82b8a4dfc5347eea70a7f31fcabbb6c1992919135e3ab2b54279f7b6b6b8487cb5993f26ed89a82f07e66456f01db9cf0ea70db0e51bcc8a2d9e74e63cf63954f513417cb6eb14609764197f99efb138a312fb7ec367a72041ad7743c2b6a64a7fa94c7f5bad54fc76b992ef7e63844ed5c0477547a00b4f37fee11d8f5b19bd2f6b3a88006759cd3b00fa69a7e4b19755236308ce8929eb1b1f0569126030221150971fec14f70d2e603ff38d46dadbe72630b69b156e8eeef6f58efb97f4cf3e0f7e2cffc39d63a858ad3149450064f0c9d630ae99af9d789acd98b326066610f12b329ed6b69075ab360b8341fcc22e351be9e09b12add66c3247c14c043f6132a04f77062c8ab032023a369942c07b208e6266c55b4b67f2c4a526a7a91e18d356347814f530475eaff2cb01e5c8fa3eab1aad2a714d26289617e3f16d4f7d5ff6c2ac31a184877db3306c61467b6d91d447adfb3ea8cb0c3a57026c3c79974ac8736fcf10d5f24f182a830fa44c1e8efc8e59d898a5f9f7b865eb2651324aa095a7b966902616d356263b4d35fc157d0004df6e5cb5f78c608f6ffb3a0d8e9b2ea4b202dda6b95e4156ade8b012c251b1f873b6bd5521a3d119c28622b4b5703911fcb3f0772b3e3fd6f7d67595741b3c76aa069e6da755a710bce5ed93a50d821c4eecc561c33878aec238a0b52116d35adbd37612c102ad24b981fee6ae223023f8388785c55a99315a88a7c76ec48d3660e1b981b8446d600adfdea7c504f0906a79fe1d7ad100cfca7174b4fa07dd24a74c01e43ff270d033ba2ae06906d5dac1e39ede4a1264bfcffaba9deed528706b344a278c2c2910df482651fcd3db3bacc855c6eeefd66e053538a1e07cc964cf2cc89c4a3756e0c8c6e5d66e5fd9b2d3d6198b324a958a88b7ece9b18223fc73dafe1968c4820413c290e17eb0ccbff1e82568625e1e4e851e8ec62bb0e458c062b5302fa7ad3034219e915a65d7d39c13a8458aafb82179589bf1082e64fb4a0b12a5c7f6233615f03c20111b96c399dc99827be31bce60a9e6bbe7283be66c3beaebe4099e73557d7e23dd9d0f84ecc39b1144136bd0ba6b895ab82ff3e020b414991777c18b2758c1c99e22170488cd31743661c146326e853fe203fb30979924568f2fa9460040e67aec3a6a24bbf1c1969358ed46f87eb8facab4b2c24f000254492b373e6d737e25b455a282a6a6948590a539c9d8e76cba6f97d06ceb9e6cb76cd6349b1c2e249b5e789056639fc95ac14263283418678a8d37870500053093b2da64eb31e012fa75df89646fab6d89fd7dcb8a06cc557a675f3e63354423b59cf000f1e49cb87180dd0efb01e5bad29aaddb0b91e018faf0f546fa92b67110ae5437bc524fc68b8906513f23b5acd473ae641f829ad693a461a9b555b82b0a634387976931dfacd37cab44c8c363f850522877ca578f541b3199e7fa34bb89b979d4a1500e5f650842e66e76f7302c5e090d7d76df2ec4d638401e620eaed827a7965c9d99f4f49ac1462abe615196f72bd4439a03da27a55c5bd61d8fc8c3d5fb597d50eb0baf41c5358bf17b51038b6c3c9bd21d6dbdaff2ac50f333381675d0d90fc94184979f1e6e88ccc1a6ddd7da7e46b1865d519ca6149f07c750a829c4e267be41950fc7e96b6aaf473965beafa93df70a5d61791be45ca649d8dc2dae5fcb27cde39cdca633b9820112d54f4d4f29056581258265918a980be9388e9bd55995d370ff40fcfc8f307b7e495e717edecc049bf7acdf63379c6fe391c2e6e34df8b68ccdb3de95db6027f49f9e307c62ce4649daabfc4342014ff937c24b927919105d30074363d0c904710105c316bf6bcd858d9a9e2e1eba9d3c2b3d75a549efadd0a848d606c94d4b4d476989fcd54894c7de22abde55aaa8cc25c6a279b4fd9f9834392b9872c12c166f33463bb844d24eb30583847119e4e30c59179f43842a6aba1428e93f135dd09eca068f3674fd5004f3caaed41f3fa8a5b17f15a98ce9166748e48b5c94ca1472e9e9e6d2d9b4aeadd51a5b9f57768b0e85a81df661bf9a1ad1f62fe9d090d386ec76c11e38059c8cc0993fc5fdf2b9969cacfc0994ae32d2fcd26b36641586161067a54321046a24c481e59df43f0943c6ee29f327f6ef2e32947b74f6e5391da1ac37b7ea35753eae76d5661a05f89bb5e1e2cc7652cd2a8f43a0a86305852d6190179f8547de66b322f309e559bf54a4a96e019a78ecbc7a6737db2c7c9ddf9e85f9e018202128b6b70ad09a644bc5bf1a8ac3678632bc8e85e0ec19b25aea0c384a2635153c56a454b08653d15f6dbabefa1470c62e21e1a398e57b5a31237bbe4ae7927d1fab1695f3095a3074f19e07c01ff1dc74fdaceaf81494367664a336b72632fb73f8af41cf2bfcb0fb0258f6a4205670113bd4b54626a183fcd69637072c0d90ea45cf7deccb988633765c8b8eb522b6eb65b0bdeab5a29f697acd5ff133f58b4040cf6d5817d1253c10a327c5bbfb02545b93d3d5f4f1134b275eb6e1780226be1976ac2a5bd86b183ee865cd556bdd71d8f437de55e8eedbbd55743806c740231873f7fbf9f63cd7d581163723b21b894e435777c910165b0bfa0692321cc89e536565cbd570df9be0e3619cced2c7b36db5d5497cef2ba3c1ea4bb55006d95122c0449cba94da3c535eaf67cdb3362be9cb9e0dcc38a0e28ba11d7744fde92e7d592ced34fcfff78573721d0fa0f5811287dadad0d182e6fccea4344036b2df0bfbbda35dfa23f7f33b9783a0c9e1dd0528e035c3c8dd7f50808eb5803a3c24c11305a7912bc59f2d124f876d3418652b507a67fccff88efe896dc0c3ad8e6d45917a30c4a7463b5afbc62603b5dc41d5fb8640fcc29e161fe9466b53ba2f9551a88af54ae0679ecc1db42e2e0dac52722a27e2ab1ea8f6224567b152d5cca5f290f289a9c1336597c6e389bf2a7a079fb7cd4bbdac2d6f271026846d6a64c51122d3e9def1ebe9dfc79970aac340f03a031eb604e58999aef15db907ce15c97d0d756da430f55a8fa8f5663f4f6fcb07c60be3e8af6fd2432df3af032b6944fd5f584c98eb487c9245a4d5ed2e6221989db62aeac0b9e2027024c3ace8f2fc119e4d3a23f3be4361c19c3a57702b44c242879ebc6a8460592f727258f1dff5d1df56171a7ba42fc5c1d4db49fcb19a4d303702eeb044921f38983a5e1d06f3d12ec4a7f95a89d9dfa4bfd40dfc6c09523da96dc69f85ab0d357455f46629d4327816264ec617aeb409de0924afbf4e91a5000b8bc8407bebc566c22984d7766d3e2be4173a5e1cbf6a1cd558a79cedda8ba3439d248afb5704e46ae6450f5c2412f13f44d19e8f936f882ca0fd02d0737a5b47cc60c19c25958f634fdee5b7482fdd94656c4c6fd90d8156c9a95c80b104e4b6e9a38925e81664b5938ee905ff0d44f72079483df6a8bb064aae2457d9c28311c255c9fbbcfbbe6a09cdc7f6450b13d6eccd729566aeea06bccd36a6c8f5afe5b4eaa3cd9c36fb294cf878ea78a8593e348c2927502f3b6e6e40a5785fc3e6d2b9d77ae784feca709b38121e582b3d2c6a3eebd1c211ff368c12bd1c6f9e4ec7647bee1470474e64b8fa23001819648e5f1d5b9a65d0c85e84061a326df8c03303c9c5ce8499819260686eb44cff918ef9d591ca0f8e8194654d707b56e3081dd13d5beb3e6c22fff4f0a6efcaf9d18c8123e0b8372f57afff140251130f8810f6f4ed25fbfac608871d2846690b67729fcabd4bb7d077c27d9509b4012c340610d912be453e783b5adc681286b6e3cde28ad177896093afda8411f3cf7a5b9f2d24c5a432a56b7f9749120b8a0618d2479b57c029978a9bc634f28c324631c8405d2a9190ab0550278217b6d2820ccfd4a15feac45e67482ec3cac48b6f90e9d45987113a6013d6a512a0e2fe1ae7f778586c08bbf782b5d71cdeb0a1414c0692bb9f5ac1229651f6fa3cde9f4060f37bba47b82b969bfe5fb4a4fa82399c937fa73d7dd335bc67481474947b6934bd2db707266338554f9930253c35e1ce3bc90a815921da08f1abb14e1531cb5cbbe92cefb365faf5e6e79c583873c6a6491975e9d123d52ad769ad00907044315e2c1059bae845b10dffa688b2163ff9788f23f6abf03a19f17ca7fa1dfab04980c7d42a8ae7f1419e358454d7ce690ddd0a41a37bdb511a13be3ee5306723578e98a148947c4f7b352f6b812d571839c05ab60be78f1fa1ca6822c0fa8b906292db7f1785fa936066dcfa3c7f89972069dc9a88a217f07763d2d0b887a001dd70c31b0e1391997cdfbd2eb463cbeaca95bf12b577ef9b81c2bf7a3ce9c9911a348c80e4461adf35ece41f8b681ceb4d3b7a64800bdebe0f577bdd0f24537f0ab521a29b0b5a9b7f425aa39f6dc04c0c356cc0104201227115f07afb8f368b9e95ca807cea140664ded6d9e17a9213bad0d4c7d92ab8588afd051255d0b78e3d7575e1076b808149ad5031cef2001438a105d842e34bdd499df9c586a1e99d5ef2b4a90d93c92edbcb24c2daecc712cbe389106de70782ec71290339c453c6bf3b721373b5799acd7b0674d90560bfb878d6694eaf2db8e53d56fe7d4436378075ebd9837f867242a3d697e979865eb4478d5e531253f3ec67e6b652163483e9e29dcad9dac98bb40bc39c558f577ec824e375306b56f60a8ad80e4cd3d4df731d85d51d7e391ea7267aaaad84d191fe31bec5b9f0678656bee4d618ae51c50cf4e9ec5e16abfbeb1eb7fbc7726915bccd559211a9748979fe8b31a9f1a29e96f46c52cd61dc65aa6a3cb0befcceaabed623ae9096efe907a8c111231852ed62439ac0e0212ac7320876dac5c9143ce9020b19f9800e3c1adfa3c919622382111da73d98fba35d2d429023960649db6bccf4b503728acec8c2018a1bb58ae4534a2015bbfc986d66b63d14e476cd7092814e6afde0ef5ab8442c59296615ab4043c6549aed06befdf7a8b0d4a634ea3fbee6191df3263e7e0ee0c76ac00eb53dad794bcb0df8f242cefc39bd7d04e1265df4a7143e46c61e3127ca6a5b473f928b306af39a9478e4a3722a1f26ff319f992c4edbcdd402c2a2c1e3bf2d693f38a5c6d8253e989db821332cb9d54422de64f994728dbe03066d07c957e5b6f839b7e437aa81323cc084a964c58a25bfbf682d7e59b4f1ba96105bbd87722675ca13be33e1b8a30b7eae82159aae554e0641b31d1089db2a75623386a200e8b2809649c5cefdd7505506705a9c162ec6f7a9e3a396b6faa8c953b2377b44e1402b0119cc281dd2cb50740cefc1deb97ef051dbbf08a1d66917b3dcd6d5e96d2fcfd717f45917087d866df70914d0c93db9b7479eb4b31fd40b95355803b275b9bd0c81a1d1785381377fef5aeb9a97860a98656c68e79edfbe833802770edf45635f65467af8eff2075c5ad1b8353a4e2564f0f3da1471c74755a289d4c17b11af408f7a2915a604d9f4ffca76eec0f773a06b5b33ebaea33d06cba6181dddbc9e9a7f632193a67fb536aeca2e170a26adab2c4ae2038fb14f83b9eb6636df5b6325c11e1ddc5972080a9b661eef0ecbaffdeca581f7c28c64f2142244227af2a250686595cbbeac65d2b54be700f2398d850ab00e2d4184dc4afbbf5c8a2fde31b0759ab2eb70d8982a505963a98b4edeaf6f7971f7aca8043f395b9762b2c9010ead6cbd4cded1d3e95704950ff4dd1d66f3d346f19708b82b872c220a702560695f8110d45f4c648ad953c35db2d15e9d7ce90a8fcf66f149799a987187b4e444de3b9bcef42dfc1da6c5a48acadba7dc6658bd46b9a7dd0b76cc7fb2f38046018fe6468eeab547e7b648f3083947832a5dea5ad2cfadf889100bd119ceafa1744fd953cd61627a79f5a4c59584a38e9ca7485b041440f1116c1ed660c1723fe1ed435a68083eea770e8067f264b9a9a042576bc4a245e940924fe75183b68f22bb4107b05e1536d1701b74b1a4970f87548e54329556f3c7ee55b7b7c23266d5a2056b2a17d93f3bbf65c03694541e0fb0ce50ccae3b927ae30b5695e62ae990da21aad8cea002578f17540a087c79d7a2bab81366c08b0ad647dee8c38c440fcdcd60efecc7f0858c587c080c371fdc11f11914fdcfc00b0d96b86eaf021833396e625e63b0b40c1dd9d40b6ede22ef130171fd49188fed728faa176a1f163c6c108e41af830d7dba5c369fe37707784cc5e0595fb747bcffde9d9a6815623f4d1e266fb029061d66e8acd906da6b47611aba3f83fdcbf9e66bb33028ae368cf517c10ccd562691f5688f2d970c2ae20ec6a0030cdb05f7eeb387630dd213eb04cc22f4dc2ee2dee16d470dbeb383bc0ce2879bf2132619d75ea8def8e0dd9fa2203394ed312b2b4038e1ec35c2d2fd1e518033d8e7ab31531a101a1b998360534758e3fdac01a559d554c8b88fc21a2a290fb652bf5f48823f076617726852534aed804357d5d345fcf11b605b5ffce998988eec1e2891f26ad46dc3f105f331d2cef893de43e846025aa7501996b8bfe2289acebd402e44e74214d6022d50567cf50dc4221a15e5c84e0d3999ff2e6761c16004833d3b49a25c461bf1d49b89c5a2ccb6177228c8b9d8caa27f30d75a05f929b37ba5746d662bcede23618c072f5f84f91bb0b107c251f7f9b71f50260754b0d36fa2cef59123da23995151d39ae9e41bdd68ed3bb563e93a02e4245020aaaac91d6d53829e1023cffd7d42ee4f32e14d846550abd6c72bc91f060a74672f2ccf405b26e6cbd48d9ad8dc4f8ed192da7629d5e2ad429e2d46bb1d4a6a8239557ed9444a5075acc69d3bb18df00d9666407012f9190521fd7d12049649f360f306261caf347afe26a4e5a8526b4cd5c318cab4d30fa3003f7e61f755416ea5a03b0a120da3c779c6169d6c8c0a1f73af58c6813db6f109b493b46cd3a1521f064f95afb0c59b2fac408900630c43b61b5261bc90ffbc324ce475f06d868e2545b10ea6b226321334a235df18a5ae07b8af9391656ef1f1beafee867f620d53dbe417eb7d893cd04c50805c6eb87142cf0ad4bbf8c947c52aac694eebde3ca3e08359c7df1fc801c0e90c515d482654031786fb4c06c37255bcaca3e7a69320b7e059a2edbf84a89a120cd604f70487df2ead86f675f32b049f124673cefa446cdb324d2a270fe40e7b0c380def595f51dc84aa416b5521fc0f0f27202125ae58411ba1de83ab2b4573e3fe3752409f3b0659f3b1358000a8fdfb5cc4e4fb11c09522fdbcdb34375eef84d94189ec26e2eaa44a5513fa9dfb569a470595bade3e47e2b9f20f3cee79c57ee18dabec719b89abc74c1423e64fc422aef449872039b27aacf2db3380aaf8f961951217ef50ff31c50fed8b53c8fbf653f013dccb758c77cfa0410a8475475afdcc40d347c04468d2ec067868bf189a961c625a8df2b85c37b1dc4075dbe9f15919f42995909b3cee6a4e12e9dd545fbd150db99bd9e2577749a6c874d88c79968ef0b41b3fe53b00d2d65afa4ae8f97ca49195448db3ee510a7ac196757ba7f8200cf24016924982406720e880d316b5685ff340bb8022c1fa5bcf556e8eaffa559061e769b490018fc12d4bc1a9299330025b796503cbff5270f164efa98c7cca52970f89651f50d2c0c8e34bf68f985c7f6fe800b71e6a9f53abb35cac8777d54243daa9f349a8452b64d594e669459342851f62f6f3c968846e8f30fc623f6facc0e02cba3a5c04eb1271ac32c2af5247d99d96cf63231cbc6e3bfafbad526c0464f730875dd8b3501b407e224adfc1de2e574f3908b330800b78691f5097c5d55cfa666cba2438d7a9180d2e6c4637d99e5b90726de0e495db45f50da30797e73444397f065378d9be1ed00c7493029407212284918b49c1fed10b4162d2389eac545f3b22b577a11c70f5cc1cb0c648f04c12ecbf7a9001cb8a326a7db3a19424eea81810e327b32ed593f6d0dabb10c3ad10e9d8f73e6bb320998678447b81c3f24c46dbc447da500609cdc85f6f44b56980ea6c9468f39b9ce816a6b719cfedda646b1f697054b31523549de163203bec5a1c9df12b83e70e2fc13442c788ad07d3c5312af063bb589fa3a76429ef27d0345fbe2d64fa1be671b03b7b1a477a435a4107ac615554625dd62e160e78ebf26fde8344832f7cf9bf827e04b31e44894b9b72b629971a1b5a8bd647ddd6e58f05b770ec9201f11ca3001d26fa1ac91e1b5bd372ccbbb06fab5b27b09e8b83e5d2c04fbae73aab950b3df0fa86322b8bf20f44323a71dbbac88ca53eff02f0b8728275bd93d483cb5203c114f4bd1d89333e90a1922f0895faa495074af0a7c145b72e297dcefd6c8269dc5199703717e11add88041533d68547489eb7c73f4390e8616e12d8e06dd8c4a0b724e5be8e3d56b0f8eeeaa28ddba7f47381d6afa496aa6d4d8e6651008e20c37a1ff260485bb8aa5a29ebea0a10a3e8a2025c4b6d525e3cba6c4287a79ff8593ca280f7327debca40d2be37d826c62846fe833785de9cbff9c910c8fded042dbb5d55843ce58d2aa1972679d629fd21be819913191489e48ae38c4dfd61483bf693c416982c2da676b9b356077fbdb6b078719f92073d4d0346152bd7807d8649662e53dab4b9221b0193c2c95f04942979903871dfffd99084d20c0e52827e4cf15c0fcf6fdf6329cc3baea8b514ca3108987bce86ed6f5e5f2a042ef9152c998c00745d3e05189399e018793fed344ce657718b6549f0c248f0de4ca88c4963ce61c9d7504f62586328874c8c08c0f0f6899439b35de59bb247608d747603e7a4fc9eb73b5759e62888527b868e3a4c82c3b86308ec02d9ca875556f28e6abfe3147fcec5a149cd0205a98fd8197d649cadf4fc19a922b55d15637d1a3ad38afdce60041c1c95d81892ec5ed2d302aade67db10cc5e7ca09c55b5d10dcb337c4b2b00b5ad34133b463222e54f74b5b1b3a7ee195d94dd7b81f28391b9f616db37f90958404e20465f848593fb12bd8dd268eba8466a6f0d20b0283cf151891ea6d6efbd7ec03c9cab3794fddb208444151653a16e68b092167bcb71e9187d0592a19fb2eda420f2622ac1d6802bff64761d0039d967aebfa2da1924227104ccefe0b3cb057f079df473055224114772c58aedb1122cfb0cda6a0990113f0981cedeac4e6ed813bf66e958a636a6c06b423112c34770f49f2075f920307d03e1b1506806a9d10a1bec37ad7b4b70d1751595d853a765cf8d391770836e751396def54bf18d6d086f05ad659fd3b2dcf1543181713535dd6665771cb409aa27b1c2721b7dcecbfdd057b78b0be07de8a76a80e3834cf6f4eee2e6f6e0ae5b368041c08ff0752a22ce942b28261e8a456dcfca1e3fcac6aa0138599c84c82af590c5811133b0ad40cf40710f89114e37507de5437a5fec95f4c0c9e7339e8681b328157d4dd2b5baa3d050940ac5782df410c23f4be32aff3908266502e6e0f6d649228052863224939365f09398e4dbd6146cc014600b918630755017ac426862d6591cfb9be3fbea476ab0a7a8528ef9bb3fce84094595e24bce96e30f0d78c2dd6ff3ec446b2f3c6413b7b0690ea8826c52858f1a2fba7bca8b2410f3d011d650e06c1c1200f64feaaf6997761f74cabb905a3943ef9ab901ecc6a72d707ca4fbb50aebe412da59f697e272503d2398a2cc33db4952177c813059b58005297ce3f91bb31f1fcda231213e8f1f3cdfbeb5a8d4306fb4ce9e530f0cc770d7d7de2277486649e5e3da7d61f2628c5b276a4086bf1ddd84836ab8ac7b861a7d6e93669bb0f6ccafa9bb768742e66c69e40e52e3d2b2c72376551420e5fb8f75c3a7c3a3b39b108d3d772d652d29a92b523c0de81f50f9359d20e86488272b98d46928bc74c09588266f57c77e511902fa079017ffbf6921aacedabf72a305d98d5826817765e56e9d2186a2ac290b52f67abe0a40a4e4a2176f26045229fb31b254cd14245e810513882c73ac682265de136a04b95c1dd1a8a92266e78efcf73657bd0c62ef472e5c900297ed235789ea607146a310e81ee917a9808005814c13a97daea0a3e95c64c3cd80eca26b27c07a69b871961930b0ca534bcd1aa9a3d3c5ac0f994d86fd69ab3770d185e5ba48599edf5aa48b78dcfc09fd7c6f96a2a7abdbdffeca5b0d6210b971b29dc26b3579bfc52e834c80480e79f7bfe4a329af2d26fa61660b86062ab121eef151101e998606ef887cfc81ca447bd5c5d6ba31a70bb567c3100c074af58175d81005c5786edf0a4365be473490b37077d2b105aa8eeff68dd69bd7e23ed12ee313bbdf6006290daf8d7c9a798bafdeb6705768f17a7c28b783cf84093c72c1f8543d8ccc1572c2d0ad13ab1b798d33742b4bc8afc464579b1cf7f8be863b8f1deed0213e0dfec537a3702dc770cc1dd9a807e8f2303a72aa927ffc499a06c6876c15ebae3745ea50d136548eca2ef16809159d7a0d3dd7b5b03f26628c4420e32f65be4a72c92a2ad3e7768505ec1dba39b3d0e5bd1caab971f097def43687094a1a6660d547c6c6912d4843e8ba36d90a0fdd565ca77df88b0192b42263ca0b8e44e4d7dde2649061d9538369609cdecaff1412c17c09ece53b226da19d2b15e2d85563b53d023204fc3f3729b5144d1dc405a6bfa1d5525fdb538969cde3f08dc93758822bb09da39e97912ab11dd2bd97f9dfc1575d49e9f2bbe88cb40e424e1d74f958c44ac1e43df628bfb71e634e9ac7b70be79ce6a95c72a56b697c44e235abf4484d5e270f164997384c573f32036d87837c45d2f089281e34f720297c05355be3763274cb19cdd96bb87dbd11da38c2323b67df1db73de5456b248e27c57d2d028801715b609435d6e433942aeafe5e4ad178d8dde61ed5bccab4455ef12ad24ff71f599d841b281f1abec721921247241b9d1bf3d5471d6dd6325d1409a913e7e5b2823951f6518215f1713f963fb6bc875f2bc8536bebc491322808df9dc51494db8138be26de5ea5b2227d70c15d9cca87c5aaa823f60abb9f3713b5722e35efbd51920572d035d3637ed01aa8e70fb8a5ec7dc47f1f93c205648d84aa93a76e851ef28d0dcd87277c6d147f177b4d5ee6ed42ff4e688ed238bf34f2ceaa6a81321aab97706611a6401748d3854dc9c86e3cc4c56c400e47fd97e8e07168f1098df9c7f3e0cc02b9c60ba6f549d8fbf33d9debaf243c8c99a07edde908f5548394bc7467b9f2a4d9f1ff7636c407054dfd0137bf6b387760ae32499ee6a0af38ac6d68c1e491cfd4abb1c08101d756b022dd9fac67347d79abfedf06cf4edb83cd5b64338e4dd3cd2790295dd89144054b8189f6d7bde2aa6effbf7382ac36117a4b12570205c9584dfb8a455cc3e960b1de169e3d3b0ed754c0d25103ff2f66280203dfb024e70f739eebe0ca328ccbf6b9e7c8f1abe0e35b415f2691a7b17c15cac818b5fabffc915635d47bee56a3d98e27821000048b5877b6301d5b7e7014d1eadb065732d49c76e5a3143d33f91fabd014fcc18b4ea2c648acc3fef461d0ec0a92313c34daee693fb4d49d24824cfa7dfe1d651fb898a1054605bb734457d4c3c80bc3b8d90cd240a725e52fd01b6f688f20eeab1a68f493877df2790f91c70cb0289b955661bf8ab95022cbe4934e9102174b4c188addc98d1b6dc9a2091d966faf35923a1332dee0f2a4b765b313ebf1c9d06f9305828e4ee7fc8e96a26da6fc14cd28303bd00345abe29b686785dd2d035f7182e89b8cc2e0bd7adb44996853937163a4e23b1fb4d1a1ad4e23a102e1b77ecfc743ef327c2e25f7ea90dc696f92c4ec0461573abeb9161db7d8bc9f807b77ab5e7f7d44573bf680faba8053b97f61da2660676581de522543fe47e692bd992b0183bbdd3b510b87ddef3b5b5b6343b6938acf8b994d1182eb3a01048d9d60049a0114b9c9e77b71a4fed6c44d7db531684846dbad77f2058707f42e2a73e3a570c8749b65b4b26e24838f69a23b24460f24baf58cb1294cef5254477e2b17c9d0a2facf485189c03689be3aee8d49f33bb8645cb901e752aa89cc95b4d653c29f09d9ba92c1adb295e7ead34b732832c49fbb817552b67fb10ceb358e4a3e20329ea910ecdc6f269197163709e0fbf047936f88fc7357a76a00c49060a4adccc6c3487e37e423204cca5ec3b61824c304105cce7472fc543f98afd25f54bf816ce1c2e1780e8ea604f71d86400f713221bfc5bd4807bd0743de0cb3c072b16a3db46408af1c702f37fcebec377ae03f37cf2c2671073d0edea8a1df01d8424d213dcda3f072257ea7adc30af153b76650f82b39a13e4afcb946943e7de846fe8db0ceb8c26efeedf195b39ac6604e97e118b2cb6e68eea902e417e33746c3ffc0585aa186d58fde5a3336d7e49c6023288b13d8f30a53723ad3997802d12c7a9b1fe2bc0e33eb4a56eec8bf96111ead26ddadbc65a5304e4785e0890005f62e6fcb0f7ae30b1e6741536b036cbc7eb4f12b1c57fed33be6d8b1fb5c0f1d2248d8bd6b73ef4797b8dff63100f9ca171684226783ce1d8edbf1ad232a503fcb77e6534f56f1c90afd029e84efe8aaa485c99eb32d7dd4421e4622ea1ea6a028a6e0c8de30d63a628c08be05acec0c237cd95f90cc68971a65576cf12126a1e4cb7f32c3ecfda9cd796fa89e0aeb31ce6cca709191d81cc15b6fcb685be661ec1d0b55c3406e809abab20c4499ab6c01151731c9a0048b4ac986ec66b9980e4db407cf065b141b81188fa994e2ac30a1688eff447799000786eac48c30f30e42d2210bcefff9f284d5c4eb1153ee629c2c7e098a3dc77764eddc568bf6939a9a599f219889a8d0b94bbbddae413a2a17f1068d45b3bf4559b0b66b500ff8e509dd5ad65ab4369c704ca648761b88ac9c85e08b6c18786ccf8aaa0a55d89930b39704881d8a005f86746754d61ed5b4eef448f134d666a809acbca0f3bd88b9f154f6651dd3e7decc219df684aeac9ae3287c30031dae80a88c2a1af7466f5e6465a2b403323c125ba56e334049858be26b4995900402777a7ac41a5d594e54ea6a465b96b7c20dbc3d261b3772a97256af3f33d6248c8c6975854f6208b8b5971dfddafac4388782ac3cc0ea03938deac849f8fd6e4f86d5ba1700aaa016d1b3833ee163de1811adf07f10c2bbca0ba06a957778a580fd5d283d92c7d75fcbf1bd8a867212608141c0e2d9ca985b2dc9df012df3cdfb6d90679ab0d1889b5025d07e920c82c226dd7744351502ac93b9d26c5f7329cbe4b43df0d42b29302b63a20a242c6f2d35f05ddb1e1476a1a237b550db23cc30670017c2dc115a1cc41201aa2d1a3bd5cd9aa8f57a68d86edb48f9dfc47c92db37fa2609c680764bd1b249ec558b89cebfebfe3421d64216762fbd73fb00bcebe25fabb32763fdde854d6614d62179aeaa4e28daf69538cf973dd3f7b2e2fb24703a962b310f2b8ca0b5f9d9d028d6cc1d6d8439bd0b9a5e384da9b94c39b896f2f471846bde7a441f8ecb6314caabc7853e35dd93deca78a05f3a1fdb64ade78af5ee350eb252179e3737df7d9e14ef70ce05f39bde68be5b8a98fcd132b74dd0136f65868278d802abb8c9647b4a4aaa93c9427028de1a2367a309e28968076966af65ae9a473a43fbcb461b7ece64c05b9222ae37a3f2c6a9fccad0ad4ab73525bad7986ed567d28517ed14eed2a22aef94cc0da64ac2c132ababc0eb00eca0e636bf93ccf7f0dfe322770b40b657766eaba748408a4c946678a7a501d9ef816e3a73d6a0f91356e48af1098fd9965a4f0006725ad9950eb960d1c2febb67bac1da8e55473e13d3b44d103295521dc14eec92b21341ab53bf2a6e0cf89bb0d83e03634a458de30ba9300bf9e0d0bbd13134fa684b9efdd4802abe295def5de44ffb6a5e4ddf848549dc612b027fa66348107697bc4e8697546c28baf282f430c9e1af7049bdfc2074f199f1b560660bdbdb93ed9072547fa2a8a6b8af5afefec4b89e7dae906fbe6fc84ad21ba76f52af458b893b20932614feefb5a259ac868edbead9dbec1db948f43fa06b0678ca90858ff44503ff30c1df41395ffce68f9766d716a106d47cd029b3e95abad0f9d7a5cb7aa395bfeadadf2667857d3038b772b18c0d16f58de331d809924875f1c177b6d279516e5cb01717381c063fdff72b95c037911072800a3416593efe7717b68ee41e734ed448724b2f3d2aa96aa0ca876fc186903a1b31cb44d7da58a9a6747e022337cf9c5efc9aa55804b5dd501a98f5709e75752c791ee2b9135dacae0fe2718ab60e05457d2d1f377b19c3bf414e3231f3bb7daefe905dbd39c3be92342f516f1453dc7ba1eb75b9b59ee8e0470ab5675992ee97b5996bfdc53e40f68b4cb32e777c34abe431be282042af13cf7f047c59f53c6028bf13b22d5d20c71d28225103d1cddc30ff61d1205637fcb80e3324f5debca62e0ad3a56f0cfe4f18b01ce7fa463d4514d56681c1d54c30c39a9b8523f76e30f65c4a7d27c3f4bbfb66daf5bf16955c9fb4762199a973e6606735c17e40212b24bc4f5153d072dd2c5a26eebc5f9dd6c789b6fe9a34de5f09d3606851628ed1311e4984f051b291a6e0656397085bcb6517d35aaef5ea0f392a5844c740c1e619ee18afc764d1020233dd342fac794ffbe4b1f9b485ecc2debd704a080f0e1b404b4c793e3dc6b7895d3fab8df18de74f6fbdd11a127baf101a89c7b25c68af8ab0ad14228d4f3059dadfe508b6b655fdbaee27e9dbf2e0fc4ecc37de5fefd110f772cba94bf170c39eebca4fd35c8b9bec9e581cba2e08d8e96d54f40e034625fe7e3092f667911901730a33fc4fc162c05610ef7a7fe373a32929e0b5cbd93a9c9018ee62f71921955fe9082d0c8d8fc6814a04fd5a9f41d7d9fa2c2a039b955c819eb87a189835b3dea980f9248b62b1a837f4f0c73f2118403390e54dfbb1c92bf1a84dfffa3e5db60ec68d76b9222347516973ce7a1bd3eac8b07b0f619cd880d88dc7846a0747fed733e2a75a27ca474542ee20180bab7e849f7895ef578831f3cc6d38504679bc30f186e7ee476254f23deefb2b05599ec70939f0872e709971ad67516ffed063968d7e4f0e588009beb93ea5e69fa6551a4fd6579646390192ec80908f3a307494e73060cdadf372d2901e75d2b8fba911604fc4c504144d00434759eda72e011ac8e236600b612a10fe94e7dce4fb88e0167cfadb6b6eae81cc088ce79f4105305cd5c655bc0cdd73ececf7e5bee1a0caf24fbdeb4dc2c1261a6d5c360b60cf4870613c4b62c5e7087f29895b6048f32110e63b5f2f76c03b59bfb5cbe0bf580acbd9614fee9ca55bfda1aea1921940eeb25171ce15feaf4916c52aa0257cba566788738e3349d31a6c8ce1960f7940e898c9790489f8a24b3e02a7651f5a4b3e5de05e7d4a24ef2d9dc28b51e81e78709fa27a327a81751d2b702b8c435a523e5c1952d4525684cdbd2bbc1901616313509807be134244374d1ef217f06e50d8d6a4fea3fbf3a362289c13551ca29a8e7d4cb50bcb01042c5d136928e41fbb0e2d5c95151e7b76a42c7af7fe591aded07aa1ef1af41dc9a85d579a39ec38beec8bdf96bbccff4e91ff43cff1705c9e410d02f4084cd861e06072c1d7bb61ecd90911b92010f517533ae3c8922be20d429aa77b13f14caa23426ff8062b984f719c0a0f6b4620e16df7708e7a8a421eaceb289d0e539d980b855d07e28d1373a83f5021ba5866496d2e9bc5583adfbb50914d6b88559a7141fbf317e284a7c096b2e5259515ac105801d700359d9d7ab39ded39c98fbee4018e00e1a08f67ffabfc24c5bb0cef235a041aa970a7cc4a36c1ff341b089d5e9c29211a1496f594621cad2a146566d3ec78ad5a8ec166a5a475d9c8275198f7809235e96ae4c944dcf7b90fe8cd1befc08f20e44d24fdaee7d33f1cbf628d8590e03f52f6a6eea0f2c6ccd1aa731838cad73bd6be7ceb165dc18f89f4626747fa8f088d623cfe5b3cbc968f0694bddd3f5bf99915b0d5527df8c5b136adc20deef9de0acc982690415fc2c51b2948bf7ef8f5c20dc5e4780db2feb50971f98f0d92eeb0133cd8bef7145cf600bc62de35b101ef3debf7a20b8879b14c4524a31e61d87dd927abe06104b2215a59a35c79f148dddbc32fe9a3573d73284a075a3da599b7bbae3fd0031a43cba9a284a96cc0389209cb59fe8c68d940d38011f4b90ae8ac82b48a2360bd39670898b9a87b2b155f62a1beee5f905c2218b683bb2cfca39e8fb677a283a496eab76dbb9950596940c2a5086d26fa8577b42b408643d75d8b2858709f6be590db206aa23ff91136b02c7d7bed26521813c5b362f7456c25e2fec461ee8903af220038075c880c1c1ecc688936dcdb61f1979f4c5f77c5d371f6df77ae7bd7731663115bf38ace854d480d52a11f5fc22dea4f6bc841437e0738358f3011b7ada46793c085904a76235a8286d8cc04707e65a3f82bbae2963d4d9e636e9840397595bbe507b036b1f82e720ee9371da1ea5e946efbb4768681b0d277a74b0c2388bb79bdbb032b9bd9d4ab5d63f0018291f2014aea992c74cd73e96541d8b606a9ae3728c50be6dc260798c968b0336216e4c4c4e30563416ca772a74812ba9439a11017b771aec9218c210e2d729341c3f8ad433fcd8e8586cda8c3ae451b2127306faa582b7eea604f40aea68411a845561de613e5e332067a577f3ab7821466120b0db96c6e88bda09cec8e5d0befc05b479e62bb2dfb51906e216e074f30674ad4684190e2cf443a43dd8dc3f98c4b9fd05547dc695b315bbe3f4b2a667ba0e9268f637ce44605a5439033b8f5a726de11c47f05ebf21a2867a3cf1b9f056673fbd645eb53d8d32b6362cd7a163863508d070c6cdc6873a719b0996f64c310cfa953fc2e4bdb64d5b1472e8143865b54f54fe44c0c0b90ddc398a392128a95c708d1bda0433e825856f738ba892f6a7487480331bd3df7c632ed599ebe8e60aa113cbe169790ca6af06b03f38c852590564a65fe7eaab9e91274118f58bae9e11205e5648b427b2ebf2ce6843829e2c38d0381b4e93f2be600e653c5bae25f45484287cf9472b9c09c2dfd005127316a242c3bca5ffe3da8d88ee30da294dbbe198c4db4f2820ad93bba32120def721d13543198e9af226bb82a6407de4d8f6383e45bdfbecf7a398da8b6cd0ac1fea2e7205121dac0c8762ec4e61dfb5027f5c6c6fb2ff5d312d46465fa5bacc52235f8e93061be92e19980f80a6fb83ef7f95cae00c356aa17053536d24415e2d11eeac345b4ffd7daa9c2e4fcc8df93ff88a097e64e0b91d853b58c5256d3fdf0e4fd10df9dc62053c405153af0278703ba8f96013564f7af847de2d49675c29082b665fcfae18f287146c90d3f826be72d397c3baaee7474b6bf97b138066ea00ffceb64df409a0746f4becdc50436117748a12ba8b0d0571ebd07a6cc833ab8d0a1f2ce9ad3819a33dec1316ce0f0f7bc9c866bdeb0f0053dca2ca203a49a1568e4fed9a49fdb5e6a42c23ee4609e0409166232b0f4ffc4e6accfd5f70512c9b5a8f69604fed65c476fef3766540e9dffdbd59b66c91c9b3f4a0c13cf081e9adad8568ba1d3bc9f77285b5e5f7fa1124fd71e3cfb5526046f81910310131167262a23a2eb6a0aaee59cb4e15d1fef0adce02d72eeb3ec2c0c9a93e9a151e21e26ed5f8c599279a4ccff31b043928c76eeaee184e814bd24e20bb3d35c32ef88cb2477b8bb55f61670c1ac853ed2dff2f379a50ee9420940f70a783a84ba2d61215ef47135fd7c9c9624261cab1b4f40c917575912fc4c699142eedfbb4fd15a8f4173bf260e6b6b38e0947d2701427f49f207eff9bb99a744bb6541a7232ca99e43d1540171ee495d9fb3ff9eb70662cfe7f78c2ca06589dfee5c0549bc1bfc2bbcd6a1a9cf0b1970cbed472fc07fcc9ae0177aac6d124055f57d2dfb6ddc815f3aaab2204614a1433720b9263d74839e4894c493988c1104f77875111cd2418549219fdaace0f192d02c1542bfcd7bb16c20578ffc2fb179dd68428a60e3363f7b38dd48f2db8eb113a29d6966d6ce26ac46bd0cd57cde60d78cf4498039226931edfd4c13daf7e62dc71daa2f52316685da132e54a993e37e54d683a1f3fa019d694aedc935afe0b1a204616896312ff5d1940d792bc542a1474bca7df4ca9a7af4f179584a24a3a1883a42261e367e0b7b9e15ae0b450ee67354eec104929c34c01495545b374fa6d81a39478dbf8225efcc130dc73d0ca55b78cbd1c7c9ee9cf9681e9d34142adc31a94944e037c3a2444ce178d1162627946cbc268c09b6e24377f3c77c0b049fe31edf610d2003e1569bcd1d7f40d9d21bfc46d05cf43aaf3950924ebd66c6fa097ca1c902e627efdb482374bb5c962a0f111632f85d277a125683d892259494bd767649e88d76c2026db5daa6d0226e789b47265d41504ea23e8d900bb0d4089fea729bd2765d154d3c6c9e6f2193e3aa9912015c5ecebfa955dfb6f38527c4c6e905639556a5101ba07b57c67e31105b0f0bc1f32cfaa214a9960efffa839cbcbcd8319ea1346b313a46263ef281219adfc0cbaa9465969def7a1e36bc2e8a3502ba97fb3e6e2498e688303dd2584e1864683682e70bbc19cd35da5fd0522730d1c5e601239acef6663aae58b0a1c563a42081a697d9f89b60f7552260c68452d37aab135b83d5c7567d10a427d67b67ac852a33b348c960a9057da5c26ba8eebb5657350e36018aa8ded20dd1608589495d01c896ebf132abf609727d6f691b9f62933378d73be5fae9305c5e1bd11b4c81ee577997cd2c109440778520e6203fad1ede25e1e7124ebac4899df410d9c65124a6735abe5e65f8974370505e71fe98a7071525b024e263ba15385f0095ed5501a515ac5a206b719a32b0ec6903a8c749b5d39cc84c0862d86253b445aea6478a1553116626389dbd16abfc5a170d1d127d4356141ccf7445d2bde1f2622c2d8d0be77489818525fa36e1e743bef4ac9d33b3e4f4beda808f22b3ee9bba283bb96ddfd44239a159cbf75677f969aaeb51542a1562c848bca26ffa173faae9f3ca6c22a61e483d5bb404c87e610aa5706b9ff7d596354d8bb11e33eba1d73f2b231fa77dd01581bf83cc3a3dbfbafc3af06134542afb28a11f8fac36a785ebda85920f2b3697b7686ff178f7653b7142c5bdf413a60d2e038d96fd03fe4752364525abcb66f59f794c24b5837ca7c900b4c7c0c30298ede1b7c2e7a2bf350adff817e8bfea018b156fcf4bb58d24b2115bf4017ae2b5ec975300bc9512bebc71219fc29a926b43f209163abf28eb3d5f69440250138eaaf37b62739d3d79140eae760f2e7519e3e947c09cfecd61a5f86c985cdae7bccddfcfcd33d6738fece5072b25a5e2b4acedfc3f901c1b33594912b48fc3b18a6678fadc6b7c6191b88e783ad65d01f1b1507c3f7d00d0682f03e0ee970435c9ca37caf7682e6200c6a0ec7652d212443bc412701fff8393c0ffe95023ddc98b2aeb91c93e90153ccd45c20ad60a1ea0870672875046235b03408836c4c50cd39e55755132c75a4200baad020c0ad03c9626cd3fb8ae4e965c5709bb2d722a3bc6d49251d026898aab7a59fb8a19d03c6c8ed7718efaa346cccc5161bef667463ad352e0b12483b9e6400913a6e0108855ace8ae2c610f6ef7840ad05f66556c9cf5d0732791302fe0124e60324313605d5e28fb857158b609a852c1e259662a04291c59e47735846637c6e2ed42a0d9a7baedce01a9e129e29f6b39707e1b7503a32dded01a6e721c34f683726c1a491912f46f440892811be8ffa67fc39eef22f4a9085213ae0163c2774f3d1193419e0bb0b9f2a900017185d4044b784f6a35aae5af39198d01c4ec75cc9247c790335ed90bceff90ae09a76cdf3c1cba0353b340ee8345fd2b15eb8b5e3806fdd2de29db812db1d8dbac8922066f4c642ac16f690525e8b1855335f9247dc296b423af5f2f9eab5d7c5ce262fdd00b238cf70a76f65567428447ba5d784404ef87d1884500f51010536f9165966e9723a4f97f9b5e7db9547f74432ea024afb15f359712ca6f6b668a33bf7f1ce8710bfaa1810bf0d9c2ae8208332bbc2ac29a57b5db63f0ff3c71b5cabdb813b0479e8054705f03abf961ee390b175cdab5a282c8a6b2ff317f24d5103b91f8b6298b1a0ba7e8e795ba26985a8814e6da2962ca5c924e8ee64224705205587baf3be5873ce51252afd8357346ab438bc7dbb6310075e585892a742d286c7cc8cdf5740be2138296827bbd13b5ba3800a3f1b4af0b6f75b928b348efdda89cfd9a1efbf071694cfe5ccba19bc62888f1d7c6a712a49c3ea9eedb2964d6618cf048a8a9f175445498dd663c0104ca6594ddffecaddbb1fdcae8be5cc449822c3473d4b37fd478dd309a14f220049013915a65d8ba709a6d146ecda8bb6824b59b231696d129e0351777dea32516da736c3211a81f2b3e51a31cb2f6b265c7abaf533770c3bcb9a5cdb2f5ea0943089048f3604f9cd3f31a4dc9521a745feba7958e1f92b5586b408b7704c9ac5efe12988e0a68992b67a42f9ee7088ed67ae4e782f4ea5ec4a46bcf46d59c5e568302479ab16604c2540ee192c14f628398b7dd1e6dfcec8d70de0b1458625df42bf7e133a10e87b1e88bfe5dab99a3a39ae0e5e20b0f7d8aed54de88e5b09c683bd2277c266e93e34eebce8371b4810d4ba3701ce2b5d5998c9b3c7d1e33f0c18e7616d8cc2745d83bfcf65b51e823f954b98dd325295c720db5da30976235650bd7d7e76af390725276fa37aca5b7ab0322c27652ba762143617b528504369614fad5e73fb1f47bd6ad40ce20610677b4a157cd28e4b8008c5159a9301b61be292e30d07653e54f136ca29fb3000e8efd59e51b93910f6d2c5215ba1a55e424f4cd86bcb9988f0e8fb68df077d022d2b711c8dad3557320f6e6b051feeae5b898715f0ef84cef6d05952a4fe282a5af19186f2168f6c669d9fc055cffdaf1b53a00bacb3ede6125a9d3d53097f732b2898f6acb05b2c501fad14bce4125c0dd6da6dbbed651f603c4ce70e08a8fdbf586e64d70a11f3c67d2e8c09870193341e8c59cd86884b53aec1b53a0d4ebca231ba4796092bd22c61e57e6f567e33fb9ad2097ffd870de7eedaa4e3df0ecb39049dfe046222434abab12112df3823bba0de19d7e20c327abcb34a1578becc0048041cf423b3d2e73d96ca552ac64fe6e6ca974e5c643931de72077f87790056178aff372a737eaedfcc003a2c5bf2240a056a7ba4fe67f59d26b27def87f62caee55811acb8be745cebca895557a0c10c46c99d883df85c47b15416460f0fadf0eb780bb0d07623b417ed64039ff261cf1ad108e99247e1abc5c8ae57952c9de41f9286928545cba84c09aa0cc6cd599bfc689c3def18c9a0f34759a052448133d34a0680f5ef5741aed315390a95de9ef9074d0d8046167ec44058d554b679abd6424700b9e08c4aeecc7fc51dd2fe66ed140478be7c97a2e702185b719747beba6e106859f59ad1c03479e2c11b8a6849e5f9afcdd8f7ef6e143cce07575403a06aaf651714adaa6026b7343145047d6d9c0877298447481b42867b946a3eb49726117501443eec23111d545a205660906d5daaa4a70117b9bc4de712e9372f948e726d5a41e97120fff04eea5c2d3138025cb6b74f05c98cd5f44630407776e90fb7f34fc8a65ae05bbf23274ee4f442077e1c1f1c5050cf2b4c044e6d15ae5d1e8d0401101d8a262db8489aa159137f2277f2c9d48aa03a5d1a405464f8a3c91aab70d42fb826c3efdb258b5057d8d3d2eb62183ea132a68b0f4c548ed343493d99591f69c01b788a2298495607f4f9fc97296ac6af83b349442ffb89db1ffc64afb81b8f8898ed08e36f48f57bfbc326d818fde68a968ac00323d49785ed55ef27d82e071c8fb61027f1079580e6f6a226971b52056ea62009175b5c8e08fff86ad97f1b893965424156d082bf8fb22f441d9b48e395b1af882ddfe18eee44aaff2ede99018faff8f14a3c1fc8386ac971b9aab01a997205553d35049ac11a71e31ff8f890d1a317a26e9342a8056db4578cf1c79889c84931513ab0b7c7a94a6148e17d1403edddbfd7f4e19a7dfefef34dfd8a477cb785e92726a196eb717ee518e91b776b27ea158d513fc50dfffd30c3002c760a85591ab2ad857839fa6cb453c108f01545e6080d372e1b852486924fe23219d1e4a9a999f5b62f651154dd91f43e284f028b04c869374a98c2e3be5f9a2090f13416d2b754eb00459e2a3cbdac68b82d6aed04a24fa5fa6023d386fce1afbf90ca494b99e68e5e5200f6df96c9ec65066b4815742ac3ccd96ffb753d310d59584e7a8903eeabbe2c003bb5314718e3f57ab4d18a22d9376228aee3d10da017f428a5466b078d3f13506ce675f49d9b594c7f752521afd73f2dedf17aa93f9896ff5d887d2b836a6e9c78fe9d79e643559215c4f97aa0c41957f9e68cd0ec2d7440401d95817927482cda7bbaaeea7651d5b026b16a8a497c9febd372286bc146bf551d480241dfce11ca2c2f4292ab77573bad675b1faa57d91a892abe535aca610451dbe9bdddd2ea785f33afd02f36091c3d2c0369b380f94f6fc4e47a6941dc5482cafa60404b316fab5284faa4c38ddc1c864d837f2eef0afbe663c34def7da4a443909620d31b77dbecf90cae934fdb37ec15da2c7d0c5a154bf6b8d59e0d146fa8801535280eb249b5d8e11de3a47be94cb27348edfe05043f188cb11cb6457e11d037d8ab99bbd133b089f8300486db864d1252e3571411252649e2b8023c52c832c73ce40dfc56445d4608bf48aa87ef11361027a5e26ff1ca6434c9eb6b85cb5fe79dfc988cbf95e0df9b16075638cf234a6165195ca4afbef7bc27f3536a4d33086241f84e2e2b854d4181f150f9e36b86d6acc40bfffad44322b0502ad535a1097ca5b81a39de56edf48e4cd1c4db3150acf25c0d97855b5c31c42e74379d77fbd0400722d2d9e8c34a9173fa5ddd8623a38d961e8996c80be4caf6975b54f1220cca11f09d1c6c7e8c216df7b500804fd3bb0c532986b95083a9adbcfe5d18301622f7a279fa1531a4998f236dd2400fd51bba2c4342410c044f60883f6ef8cc57c94743079bd60bf19835f3fdd3d5c97d32011b7acd86bb142ea08f5872a1f00a67165b307b5f7fd081828e63f8de8202e844a25abcb35694ba0f886507fa9f2145982eb1e9798cbbfc36509a290ac6860811aeb2b832af53ecfe8f02016206b4d25538e989ad375573959a2cc35d97fec3d2cf55003ee713c2171d6de524107b1febca5fd3365bac9656b41a165332d12d216c88e4bddcadbd1a646e6fbcf0976258faa5924d5140d7ad9fd0e7c0a1d9bf9518eb4b77a12f61ab4bbf0ce33ecc77e22e8165bb300def5d1d89f0957a39d434ace52e8a5a86b82c3cc6607690515a83039441c2950157dd4d715c6343f12c66c43f1a4021fcd0ad5e87c229c0b2aeea510ded5231c5d08aa21c4bb752596b7dc0cab22abf6a38e61c60bb084764390e8e3f849398a4dcf1105d54472e659bd275bf2b925f858742f4ae8bc9535c654ad364f7b50ecc421fba5ffeeab412a66a1eb8cf339004d500eed8a4ef8996c112453e891e43b88e05780245669d85dd2f44fd7b502bd1405d4e362dbe92427f32a5af51da3de98ef102b31c04141774baaa32200b058469ce4c5080fae957f39c41f2bb65f470d60ea1cce500811003a9794f451776b1f451e781ac7e906c1ace9b7c07c340ec3dfc9155fac4c1df0689293383b71d810cc9227ef39b8ef710bb6b46c9e034d25e70a83128ef5e525e4ff516080c7503dc644a764d4d709b9952e0a2675004cb18eec35b2f2f89cccf60d29115b10d901723009be43925b0998d3f859e4cfeec0f891c7c43f0e67f802a31e380ad9538705a307b9687ee069c0f48a6fe0f525328ba923d8ed37c5d7e4a08bf33b1fa0523573a54777d44ce4f57f6aa697b977f11447518acfa3add3848ece3aba346466b07e0be4cf6dd8e047f8f1f980c565cb6276fe52d22f9bc04dd355a79820fab09b8ce4410a34376338d13d496240484cda88f6f168ceb8799cc7859c58f9459c4e0d252731d9986f35479e9439e38a54c629e6860bada0e934dcd77c6d0e256e30009ac56ca85ce85e655a9d2b4087aed6a2d9778f9a7f8f301aef44bdc9aebb58b9dfa508c677fca8fd1134b3acccdb1891bd2bdbae8399c7f6ca735f931b409e5ed5a2c463993c76c0cea0a1ec2795a7a786106bfa291d7687e57fa8cc813b66d1cc6692dd7b6288854dd3e434f16ef41fda819117320d014250b24daefa815a06911b8ec8a58bb8bcf756ba7d15b3c938a9435d0a9ce16c83127d00ef934813ce4cf8296090ef1007a35e8d841d34f435f1b89ca247d1f7de81030a3a71fde8542c460674d0060219e7662bd1c84fccdf852bae7f2ebc23c436109086162108ef6b8a158f5ae4337248757a84fc25aeacff661630ad9bb06189f36a5332f7f92cf84c7821428f88d5e8c9cc1201c442f63fe8bd79b182a4ae3e323284f199968baba0a509bc481f232cdd8bb4daddac741d73717cc4f14ee38c55222c8dd50fa7203d37ec49404c4c31a06dbdac9fd37081ddcd8de89e1e91d5bdaf7c02c98d2386842f42feb4b94fa31f74a4c08d6308135e0301c17dc6dcc41e31d52fcebb9d8e5a95e95e04558961acec543304f755c0b22dcfa03b69ba4032ba9cbffc5629d770fa8383d83289fba828abc7798ce2d3e715a59fe04cf4b6e842c2ad72726f969af388af0bc91610f5fa35fc6a410a68212d9cfadbc753cf453e7d86b18d0fa2c76099d22497553bf857caa6ba92e389a3eed645bbc78486213441bb91f7cdf0e88865cf6a979840268cae1d1a45f9c3da11e2f444334d0ded0a6b7efcb81533fbb41ac46ff0a7c314ec00a3dd352e391dd41ad197600b05ead8bbd7d2b71343c1a75db038feba6a4d496649239740b4405a3df01dc49267a5ef58004561fe6506355165a4454b6f06a621c7a1d414a3322006ce0e33934d2ae2b25b0e5c28c218a34bf742da592f6d23935ea8bac7ba6b15356d159ef3a05fbc950b57420be533474d985fca5c3afa5acde4ed1936965236f1885f346d787b51de5f224c77b463d48f0b38656701ace89b3110343ddb25c65229dc9333e95e2d4d2d61c5d8873324923b4454f582a0cf69a367909ad1035c50d3fd8a79bd09dfc65ae03fc6984d8d64221d9b1682e74d245224cde37ebfba30dd47f0c361f934fa37b889dab5da34a261482a9ceaced728263dc1401c6ed776551024b58b984d49042db972f633ffaa51ca87ba951b3a4e0854c215e47c1c2f0750b65446ec8cc8382312aa5000b0ae37d5428be2ed5046089046d688d1f8c0520249db09dc7f2cd3843197311990fc77bb49ace34b7a622982f3ba58a25ac3b3e3d2f91778008645bcf5ba91b3084e59a9b697681910a5ef83b9d15c5e1e5e2e42c9930a903b6573316d7cb714a0729effe27afd6ed6304065b77a0b6dad131c12873d8bcf7b73e605d2b88371671f6f878455e532d30e0340895083a8898777a4ed88c17155ee1966c90a8f5f7b4af1bc77e8e4e021d1cb97ccde0e3d77cda901d5f9caeaa59ca5e12c2d5e10394c06b4cde3609f63e7179353830e3a9366df0f9a1064519dc912b9efcf93e841f9f6d8f4cb1c4e497755b7871b809511da5beab57fb3e5705fe2f670957437b0b6a62b9b042ae7aedc4cfccee0fe818227bdfdffbf3df6da25232465ba1c118d10eea19a156fabeeffdc07b63027ebb9ac14ea4072a16fa3b6a7a173bb26a43a12116a0a3507c86afcdad1435e9dbebdb78b1f0b96bccaf7472ab3c04a3dd1727d18364fe1402fe6483c3ecffed35cca32c721a709119d1b765fc197163e4611aa0b62118abbc2686e643982b69567654a4525e8e158bba379ccb99f71c2b25a2ceb8b3689b09522d495e748fce1077fe6f9c5df89036573c0efba835f5781a879df99df9ea02a8cf10e91f27da52503b1c019a191e34abc121dcb66d01f12936d57c8576d655a5432f16fdd6eeb5f3d716cafe7de4a14b661db33a137d2af1923ab2b5cdae0299174652b440d9fe4c4f8e2f54fa4e57e1a99a032d6795ff469adbb69c6079d226386efbafa768ceb514d68cce64aefcaa7b91e88b245ccaaed45d554bc43581c5e6dd819ee58fe17fae19b07edd4a52f718d7b3d63cb367e398b8d5f911ebd54100e7d1f46e00a470a068b2dea62510b03b2af292a443c0531e059080c7de233993079c686771844026659c498eededcc9826baca2fd1c7a35f4e41dd3797faa2c6062d74c6046e1bbe1f9b7fe4e710daaeb9dd8a7e7ddb28cd8a54b38b8b1c4310580dd98b7c062283e9af2506d0537be4f22e62f9cb276ccf29adc951a32e38bb3e8c190432d5e95727954274ef9ae5f6488aeadd7847af19df03879fe7f470be6bb0fc1c0143fbe06f09c47cf0ac62b8aec1385b759c63cc95917dc1075b2fe30fc50cca9977514f7ed1f9722dd7cf1e11d56bbe9afcaf67b597dd7b93f98c3b9cdf1879e974dffac38816787efa1da2181e24afe62bee8d2250fcda0c43f4e8aa47b5968e7508cda2c7b4d3c77bd4ea4736087c52462d96a5f2d5933306a532ca9fb822887f247b9a3d4ddccaf98bd0d1673f7797abb0eea0c885f42b7d34ec230bbd5493500191f21cc36ffb9771a8c06af86272376d4f41bbd06463b3082c3b51a350e9455f4bab9cdafb5b24c7e34809e3ed37918fbc91639b7654a6dc513a2e0eeb4ea57342bf64b916a25c64fe6007b53fcc25f4581d6770868c27415d8b93e47da8b965e4ff6f6ea7251d30bdf852a8954fefb00809d7fdeb94301994b499d1cc8389d2bf164e679e5c52a9bc6913f8ee118688e3ce5a95baa10b1e79b349c3f9498a4a9e75b7f93de51b614ffba767c99f167877052bad11286e591250316e890b97d36e3f14dcf260ae7dac9306b9edf9c02edbdc4360fdbd64ab7f22ebc877189e640074eeacbca127386ef034394c4a958c903bc2ece6e5b947e144608e5cd6ec6b8ce8466a26ecb65e6000c833e9a7da2a37a5113395a753368eeb8ebe9f86bd4811d76bface4f31d19e386e78d9bb8cd10e556c3bbd18ded29a5d0e1bbeeeaecf7c0e3fa38158680804ff8add4e5905014a3632ae2237fb4baf075ead9d141acaa60dd192de995f8be783d2bbb45a976c30a4c65b48b61a252ea34a3ef280ce751b93d55693d7cb782ca5a671dc557879111cf8b3b0a20eb8aaab59ddb1b99900b66bbd6523cc1c01a0b4aedd39f9b6c2064b704daefc6bafaf9c385f99e622110b8a309640d0b0eca73bc5e72f24249686214e62c4acc889d5b1a2d9c0d10f3fa3b03aa6b3e4b7124116e0f76c0c0577c6d6d6519773f21b29230d2740b61c980539bcb3d4e0b9e04d7f087a57021d9ded051e1c6db74c0de217af69e38ecc1c92c197c493c7a9d934e8d1608aa61d72174fa0ea3d519d5869c92780efd69b3f2ccca43e1185ee11cfb5ffa161a2d41426260f8354bbb2ceaf901a95f6ee2b6bb597a670c696cfb3a63c33b396357ed764b9f7d77e437892d4d79593bc97b17c57be65093e60427d85968c16ed2a7cc0fa198277ce223f9b1b2affa82b350d429f62929c5c2e2b3f532b22c8ee05510a2d10411ae99c3d3634dc8bc858cb570267f54323392bc360440714d1b87b27a57145ee1ae9888781cf06032a98e75bf690dec27985c4fa595858c9b9d7885eb251aef9f4cde50df186cda2c9a1e765c89192c7df86465e3728ad970d34b68a081c5e06cc7c5c85cd122c88e4c550131bcbde81789ead381d05cfacde0e5f1db3672ecae750d16db0d0c3e57e31294d02b6768acc61f06ec0665195410e0a6b6f66e4482e3c67d70b9a63abdf42856587dd0b58494344d4e9a93023d059271a3107be0eb17796eba0ea43fd11eeba6426a97af0bdca1e86f71e1ac927c7c51b9fe890e122c438b3085731ff6331edee4ff7d555dd5df5345a6837b868161130931be55a563aad0c2f531f05ea99e1cee7875b9ec298fd1c1929972fb83eaba09cb5b500c8ab7547d248dd2ffbd7511fc7369bbd673670d84d038d75bfca324b7c33c1bd1693ef6408fee7d9b3632b403c065bc42c891023a4e6a2e42c45884eabab930d82940a90b64b91fd6f316f4185f901c45683fa1cdfaef54e2fb5a4add2d0b4cb728e1ef81924f8ea5476a33159bf93918c4ff998541217bcfd2a130351c4a358f03943dd41e98a39c87c09ca5e2c875b5c79e8886ce0ce2e505c5ff0bbb88ab22a5bcb4690130edef7880947b3850165b4a5e1a8269055b1e4500b4d5564d432f381c58e3e2861b34fcd86d7679b404069db3820921ee25ffb1ede389a430ddd405aa4a7d8ff7b91046f0df2ffb23d91b35b89ed573da58adab79d1db9abba8ead8c70c3bd5c5e438d9a0c0bf441d3b8af0a55992fd18b514ac4855c15ad11ebf62e26cea0d1eb4925a88e9b3278efc7dc67f8d865c0624d18910ddcc4c5b7907ec41fff09f8ed5e4b5021249b9a9dc19e16f5815e1136f3950bcfea1164f702cbceb09fd4f6b61842f0dfdb822df081bff6d46b0d59056016cea0f4fb3812b307ee5107b0581ee491ded10731ef1597e9cc27a57c792724753c3557b35a9bc1819100b8a032d2c785cf0e8b63a223f92d7b5dae4ab0f7768eb0d03b223703632a38b4777e9a3609aa495b1ccaa85cd47fc97e4328f5a5f4c3b6e8bb6156bf4d19410b3e736d4dd8562a2fb28a6d048937be069c5ba844a9795abebe3eedb73b074c91cf8166609d1e3a5822bc9f029b91865eee3d916db5998245eebe3fe553d42941eaf98467605fd1aaa6ec3ce48a2eefbd72bc2c184a105eebd995d34644005d24f905c36507b68c72f49c6b0379916c7217da4b7b124fe00ddeb0729eef332a325f1f1c36d6881195d8bf25e002a3b3ce962b021464cb4d36afacfd98d5b538d08b98e382af7be298d63eb3f30130e244a55ae42bb67ed868785c0e4fc7f6c29635126be113fb43021d77f488b268376d7ca49678f3644c1b54466a470d08573a4a06f94bc1b630b83db97c63505f5cfb1d5babae31ffcba487264565df2027bd5c3f0f7422205e637dc97c3f668c3ce44764d1213cd49c38516b536cf218ea499d5d01a772f050f9385f7d74e44e6e3639ba52cc27ec03be48b5ac04eaf04b5ab054db3e98a181e5d4aae94492622b6715e9e257d85432174c5d7e68b149ee0a0dea97d93cf29082e5c869a4946ed915ea93bd01f79d41a9afed8d2518e8f8bee43ca7d097678cd5c44f0d7f947a228819ef14745d5c4037f4a38b9c93393a75f839c5aab4c542bd95c745cb85729d603245d0ee5fab4e6293f33428b1cad7702a262082bc9aa807c92eb1f02fa506520b739a59b3a6ca608c02471698cb8e170d18cf98eeb24c1f9572b44d5f4908d14f6b4019e5ef8cbe3a2c41dcf59584272a7d989581a3dc4275fae5e516f4920689b25fc27b2b3538a97ef731d220a7a63f9408239c43b978b11e48833024c68414e36403e1838603033cf5fb138b9d2d3af0d7eaf02c9bb024aa53d498b96880682ada5f2624d416fe5daf2ff397487046f9a1274f3f47c5f25fd250bc76f1907bca05978fbf7d41190a871b2f2cd325ee6aeb46a61e5350a47289efc8831f392497d8cf8e0a7c2751239cbca3d452b2d6d4785590b0f9812a0cb4f61fee22baca7d2ce4873cfd717fb96f0cc43bf833621af52f74a0ff6ea1c84d71b22555f3d5f75265419511c7ef95567092b5cfd525f3e7b1b5dfa78643372d130a7d8150d298f33363d4675ad6b0bbb4ebb8118ae26cfc5c371eb822e55fee956fafbd0870863ac5c3bf19293cb9323e5c5d038e6f639732a6558d637b38add8f655d22f1cf9566f8e9f8832a5925a5a42e36659d00dbeb9a53f40caa52e904c3872335c26c149577ec149402dd38fdab32c7cdb81704c6bf7dbd942eea2227826e788e31abe03da82f6220f18466f62783f9127e5ea7bfe25ed979077697f9bbdffc6ef3765d48a231317ebd96928146dc422f38fa8b94f127a414e1e4b4bbf42e4d6eea9422821e37282106eef9f84d18b8c873530cddbfc508bf4a4857fb86627cf1e8a7097efb1704764683f622151054a09cdd84e094c7c8c985f4804ebe83cbc38702344be39ed0a5590f4657217c9c636944c6eba5cd14254f8371bd544fbf87bc61e89226ecf80f7fa5b9ee1e011bf00900c09e11f68278b51ed99ad8c21179cf53df8ad557fc8af8af85df2c43a309e36eb100f251ad37c3f75f49ed2cd5753eceda88e716ad9f9720189126a48d9fd0091423df708b3d7ced017696903b49b7cafd67a8281ff22dfe1976f6e5f4bb7bbfa2b425e14cd3d12731474d42c75d08699cf01abb9670623b76979144b8add91f582b32c6594edfcc6989d76945d3af1d4329c188cbc1eedd4e6fcacf93c55f6a7cb2bbfe7cd00a5a63b4beeeb60c8f81f7f156e77d27ec9417300ccfc6d90c2054f2e37c884f363e3968b94c5ecf67d4af128237a6483e53631cc1009dcd11b5d6123c9fd0e65b0c33150c41ac1278fbcb26bee9be04f6ca413c82c7bda59f2cef8262abb2145387d3b0a66c658ec97ee57de1763446804adc019e0d0c11e38ca93a347fef5deb6bf1534bb0ae2044beeaebf435f09faee26442cd629f0f23e9b6ff3f7057d743e29af918c09c71593dddd7adea021a6091c928ba7ce593a08dc0e8240d3a45b31d0ad31ad4cc6559471d1cad33b04de7b4cd9bdc9a8a991b2fc0f2823b0accff2bc69793b3f9bb60f74fb6ca4cac92529a9a504e1c6f1089cbf53bba1a789e86b6ab7c528b1364a464361fd3eea58cd19d9d22fbbd8ebd341bc730dcc065b6add4a826a575887e6d14ffad539bba2f2ebb94eec35b7c99160df88d239e0ee5e1b42371b0e4bd249c6a05e0b2d63efde06d5ab3876db958e5ae9412a478e56ab3b29ff0597869b41d44dc5e0f48b3a11bbf083e921e323a073eb49c5c72a8b13f54dc92ba0691e961605534d96e09f87b182aa67bf11918004cffee0a912225e68ee25bf593956bca689b86c5893d7190d352f12fbcb54c861cf77932f6b118ad1c0f0935e9e9690152f21f566dac2f6686830ee541ce1e9d4fcdb21fa9c8448ab6dcbe92924b49b6a61710cfb6d08976fac7d8ea430d3d0afb8085b20cec02c2311681b3dbabca45a1cd5169909c1b61d490a5df4dbb306363c8830ee73194459bca3fc1e354091fc729e586bf13328e5ba2fb07013487fd013d807b9bcf407caf370f10dce28d6610874852268a391cb2cc0558a72716ec39dff7d6921e0db6d30920795a023fb1d98cf960e3829685104e97df7b59ec9678d7697f8ddb4898d5d249d332b99f2f670cc83532ea3b96556e52ff13fcc56bc6c5b962370cc6d075df95deed43548aef245b4369baf97eb6e80b2e697146bfc14faf0061b4545c584c2a1ef6202681112464983d5b9355e4b6892e3e5d0bacc35a222266756d06e190b7554830c8045dbc394ecb4160cf11f5030107949dd78d3cd50a39fb5baf9db02d7e2459fbe91eab15a2715319221d1e2000845f665aec597fe0e510a7c937918f6ac9d0befc0f15cb52b5ac661107a85e83b5e4fb51c38824845d072228619647594e300b791361ab7b2e932d51febe95c3a7e2de3622b8d6243b5183925d2e104385475f6921146238ca9ce72462671368285ba64bff19c52bd5ad53c84317cd6148f1e0c387292d8d98859b73be15d5b78f3f14f07b23021815ee650b4b8e6b98c197a00e758a5c697f777112607d7ae3370b15e85e968fa6124b2258b5a48e910d965d9405b0789186c3f20b936baed1545591383e75df97a539c438101b6d0e89c4898ea23620148dfd286c3413e6393e0fca0684fc6971657ea2b0a097d5aeb92caa4abee0e8b964d0fe703af659f1e5423799298edfb6cdfb701e5c23d8a08cf1da6cc0ef5a1683848d5bc3a4199e8d617a1358efa9eb85dfbac48f1d570b0cbd60c4069b816c82614d7e75202e70841ca30eed28505d6899aa97a4f1bc3fbe354cf43f7372add1e29bf1798ddf5ac933f9ddd558084c0de8ef45309669df9d5ba1ada485c2a672e49f81263bd6b206e92b090e1694cc31c1ac9733eeb3dad4877faacfb356a05e73e91ee3ec41cdc9883513f90d73423c40a206485e7bf15425d38af486cafa2dfe91bfb689f3e4c7b9a7c5a534a025b9f1023c064992111b04cf71277fb6ebe2e5bb12452a9c3a9a6d510c76c5520c138210681da0b1f0be16acafc674373a0f101ad7f25dc07164aeb5196f4140a935decf8f1d6b0ab2f0beb4ab00866c5bccbe7f09b39943923bd19428756f4daefa2602270bdcb1448c5666ed1e1f5f3ae5ffdc4e09f222817fb87351ed2c4c140dd3fd807e8ab16818bc61fbc8bf4103dd776a3a3992f6281203641aafb2350ebabc3843423b76e173ebadce1332101c4603884e41cedcd30ef7d67223932e0eeea51ec843044b44fa1c159931c97f647ac52799a551925304e23a45e48998a3b3d41c5a94245822dddc46e9a1bbc30256e8fae4321d1fe33c8f439d3b7e266268badd38082c23b15fe3cce8e197f5b06e10d1efc933251d009fce39e6a1e105c805cfb028e24f5e273ec48de95e6275742ef8bb672cf94de663ecc6e19d9a7170bb2f997f54e4c089227a0171feff7e251139b53b8eff3b8520d6a75cf62d131deb4b936bc8a39f211ad2825deb9b7b0d4e40c3b14a42f52eae6a9736b655fd0f22274e5dc40234f8e0ec0ca0b0b3e7615367ecb69a824bd6ae6009e22cbad1c00960da1c184becc09a9d6e87418ce2e5f2d336d4d161a6ab6c44df9fbf4e16b08b8646fcc6e868c652d90bcfaa794798441c4548be7433bd268a9a552418bb1ce878264d246d4dceab83c93137e3a665a46be0aa14823956a08896f55e25dea58addeae9c7ee2bbc67dac2d491ce63e3989879d43bbaeba4bd8d3e98a04026a72de2953657c444987fb1f5eb8cf46b07ffd1bfbd6086c18e84cce454745319c2a53501c5f359d91a2c7d641940f83690c797250f504e69cd6eafc1739799cd6544aa6682e989e0ff0e57ed5a12b24efc6009d74f01f28e050a7603bdec2534e069e70e96bc79bd42cb1068ab94a59e51625f65548c929a7b3d8ae0e0af9aa201d683b1e2224388a765393ed4ab92b876a6eed1735a2534303b76659665dd4a4b7b6b0515428fd65d3ce9d72d5877e59b1d9441020808869656ce640eca2abe8b750e1217611e1b6aa9578dd7079f369e264d11a293f5c5fa3b5e1d76d446b50458a312af15a08ec48b3bfe645420f9375ab10cba26462c8ab12dcfc0b2b46ce4b295c39a0084cd35d84752f11163750e89225db9191bef01087886ebfa41f0cf9593d9a54c14e557dffcdb9a68661a53b070ed832c5602d88ea3037d4aadb2e41b3575a53b92a24a18deab769b2947f74c72373736f97cd6cc986d26a7801905b4b4525d56c02a9a37208a8d4c28bbc1d423a117753e1243bd57fbbf470aae743dc8640862afefbc5c5e363f5ba1db9c181eb27143a296717e51f62ba56f7e536f8626f076e80d92bfa50ffee953fdf7229e6b95474d56c468652e358d18528394ec70a6d0a9b565cf74e1073b5bb2d46814ecbf82d55f7b21c363f3d44a0cd92fe5d65c0240f8ec5c113414fa0f81cd59284f7f08f15ba6a937a342df521a44dff48a87efe619e36b3d5dadf106995bd55e169e4b2083f1f9db559c082491cb89035b11590d0186243534e95537fe51eec3c5bae6128b9a884ce87e0aaf3aae7c1b91e6cf32b7064605b9d76f53dc61fef4fdedeab9efa7e8de32a4f61f84531052ea45b9ee80d3557d8ee9dc2bf8667cb413535487e0f40e44a991f36a4fdb0d474f22e6dea72374c1f85b6145168a42df6222ac73471311f9122380c887cc56662ff267dd730ad4386c48371f40d087febaa68952062b54e9722d51f19649372b639f8d6fb9740ba82f65b796ca3c671bc7a4ecef4c3d79d3207075ddb117f04da434ce907ad7ccdd2fba62525099a9d96c86eded4a6c682efe031061056b662d3233fd3335950f4722e625796e33e2c38ca0ef651e2547fdac98aaa220aa7012273e17e91ce9247624aa1b5f9e5f6954608aa4bb444767170279e6c4e42858874fdb88b97c9795a775209dc6d11056e10ba702e3a48c673188fcd98350bc6e56a693c092fb021a3c70c52d9e0ea363f0c06c2e836c9044ec9decb8b6541a673d6fa5801ce8d0a7363e0ccfd5bdb5478a67bb8723beb9175bced1ee90016a52c2a3af0d26893997f6894d6f98a07b168305b9bf4b236f29d5013a4210a4105f00c51555c441196faacae684c98eca34c02496b199dfb53d97da40a4a08b74dd63f38d2f5f2d7ad3a85f68a01b9f9026a22d95a31503101497d72554100f5c9954a67233c068dedf365eedac0012fac3c03f94f246d5eef5d86475d27fc9a07f79f92f9aa3fc74c0065ed0b2c5f8302b32a9d64346f8f32a9c3584d239b1a5b592c2977074ab520b8dadf608dcb74687ad44069908105853ce1a6257a63b45c4780aeb89a45a9a7daa59c35d61bafc85be1b55eb68412c69ad65038f5d0db651b09c3473cb1228006d42a77edfd2610a8a57bfda56d8a7738ceeeae98595f15b409a8a42c7ad730c2b049264e0260afb468532de3684d3e8c4c2503aae25ecf384551c6bf3ccc9f147d0bdaf5cad51c68a71190486bb165aff8c2860660303bee8da294d7ffc298ad51593ca3b9a94fd66bbbf6a91afd5a8ea8e5dbc997cfc31aaa4b6b2ef5264c9eedc48864b7c746ed4bd7e84638b930a992d57a44445b17fb40d19b710823d0a173231176efad8231e1791e0df7581d64c77f2d420e6fa9c6c1b5ea2b47c09af5570abd7097e4878acbfd09abe79cfae753bb96a019df32c476610f806bc008c2006e85c81efc5f1f91874a72641fc692b0cea7351e772b6e365d38b31368d912db4ff79a5f991843ed6d390aa7ac23f85cfd280647e455a764af85877093b15fe69fb4cdaab04171605f5ff2f163d871cb3f34cc51de32ff35af8a66743f9aa4f833f27cc991715a13a6fcd477224d40fea9bccda8f98906676ed15bcd287e0a3dfdfab94dd0c1005f3b82a9ea63123b786f02037149e6b3d9ed56df3341ae1faf72ab99cc644de48b7417a7dc97581163e5208dc61d17d8caad0970d8825ea0947df692db9cb63f9af217075de6761a0d5e7f7ca1b7b0a291ce4ffef91826cf3713602deb90a254252790977a8165b6203b60e71cc188361be38226efeb825d640d83ff58e03bc8b330c51d96ec453e371e57501ab63a4e94ca6c3b2c5e53e468c18cfd5265ac0f0709ac88ae15d684a9b1ca5c7b2ea5f0f262d020106f5dec9e4bbf17666ba8ec3b0070f310b800e7bf1d76db6b286c3552aae1f58187c786bb83ef28d2b4e3f9cd47ef7716434beca3e0eb1a7606771952f1c98fa9eb9e756a140635fd439647d0e03cd1d96a6777b5690b905bf27063ed1424c44c2c51e4f53e83f79f6fff07ed981ece0e9ca686258b8fccebba4798775282839bf936b0fc69f7c18541df4bfee1909365c77d84f88e82c55310afffb42ce8c37468044179b887aaf980face51383faf235c0728d27ec3699f379eb83e054f3b6e1257f19a8c6d0a3b139ad4e97b0ffadcd482e52cf8888867ebd1dda48124ea287830073408774c938d0d144d19974a76eccfeedeb8d607e62446ba0090c775bcb4723cbe52860be7ed22b5b71ea0f7db6cf6c30eea0a6beaf5bf0de9e20c5343e066d737ab1181dc6fb05cbf62a92a168ca053f91153a968714661fa08bdc0d17638535b129f43f15d1049bcb16602a5f79bab2b7f35549cdda46b65d8159261b87798f3a75055198f9e7e898f3d854e015a3912f2070efa0fe88535c346c97c3d99c54eac5582c1fa3b046e7bc763c8db739aff43765069e0e62f41cdf401b1eb75871175740f4f6ece2f41cc558be7781ffd0ccd00838016b5a4f648b9ab150cc701ed8a85b876f8be021c2b69883f66bd1076547a61bd10307f76349f146f85af47f993f7fe04107a96296b38b95bf84f8652698bb2f3aa766eae0ca943b8223264b6a44cc8f1d4f19868fd2f50fc2ffb20cf1b2e4e6c966bfa65304aa31d5eb8f2f50f984cd90b1ad96f876b2601088b56483134746e6b35586f79eb7bb25f8c472fd40655349d6ee387343f5eec45ed7fe817c0722d39bf4e6e866a3e6bbe5f28005353cae97269aeab30b2d5267ab599ab10c99c543e392be74b969e2619c614dc15519313880c57425dfe6870989694ea409b90abc196c587e7b47dcfccb71e2c0166c310e05eeda3b712052674ed35d09e56ce8cb70c95dc5cfda4e1e31053617d0a193fe3e650bb19118a4777368859f66d9e28fe98d4e3d61d50dbda10b2bbcb4cccf550331d57f5d17d671e94dbc3962948ce7f77b73046b68765fcdcb7c7f24ead9b8f55a6fb6a5d8eee1e4d568a922498b577aead90b7db4b3de7fc74d46cc592f2a4610548a574e45ca04c1555deceb6026b84b8648b958e2747db36e4087a18f289f03440b20746739c9edc7b05ec4efe2402cf20ca62fe79e94ac0d93ccbadcbdea03d0e2cbf086e4df557fe9c1304bc2a7a52a32eb1a0021dfd11e47d2af4f13c92720ce374d4bb8c28eb13183139a9a7fd925623673c58bc0cc36a129d6d3d86eabd2a63b735da27b112b5230527bec9e3634edb5c94dd5874e9fc363d7b889953fd009f4900427c2d54c038a2424be147c0d3e4df7101bc9492045eb7ab5cc6786e2043a2818d1ee0be9ca6f0f39c5d897f100f2e7f855bb0cb40c8ce598b328c2b76346b8342ec2ffc7bf22b9cefecca19cd40fff1d56c723a48b2d69acb25c3b7d084041eeaaa23f09d0962ec6d9b737c72eafa05bcfa644596d93b7db7d8d79bdab8ff5a6042ede9376ff98b33caaeeec1113d47f5bf76cce429f896c2f584121c93a3a785b35c64e140280f8e3ceb05f591d7ac79907e71d4f920e403740bc5d5b76a17bc276856a8a6793df6465daa370f4d837acab370255c59f5ecd4b397c6658376dad8ab132f064ea87b607b2bae481727649f320903b15c6e481743862e30502c7f1ce3bc751a58919cf47f6479e8248f6c047a7523d177d419e38a90a01ee9edec90724031e42121c458eaf06aad52a778c1ef73bee20bad388bd8b675d79840db44deead14084ede835fe705bcef77a62645a5f9c260decc0828206f3815bcce4b651879bd82fd0058c43de54c35b2fead567d7bfd189b2b2cd61b674dd667e7db4191071fe280d67b202f002353bcedbec25f96b561b5d5bc5535330a39e7b9a7329ef350e45c9055dcd8f1baf48e033a38a27895574e26142b9fc5fa81ee375bd97cee6d0b2d06bbcf55db1d6a6d74c80ed63aacfdb8190dff8b0e85eb66018a41cf9cb6f6fadd9421246a2516d4a5f628a363513a9c1b591f8a9cd42678f9207974a678ad00da976802394402cfdde1002276e53ccbd3642a8c9027be82b10238ab0ff14fb7a257fdc75312961bd7ee8d8c46bca45c62c737816707424172f759b3aecbf6d5f55c68a259872020ce580f53f32c6aa4d2835dd473886ba28449a15bb00ca765d6d1f32582c22f7975b6324917907a427f3dfd06294be7cd1771a65f7bd4ab8f5e75e3f55415b9d8803c99732e0667217ec104f66d6cff08de4c09d682733ac7d7b365f7a4a40449858de60688ccb65aed56adb0765b5d22821ccf48b607e1c66687406408638b2fe0c39f9187e1c627a3274f97fc21090cde02b43c3734daad1d97aea4d55499f2b8804bd3513fc638488bab166f06ecdea920a89c5e4f3487b52e1889faf26375192e86cb380cbf61e261212a0c29edee42c15699ff04cbeec5fb79eb869da9bbef6d4ab1242aabc044263ac58f3005098874ea7439d0b28050ecdafe93b66600a27ac8178c1e3ebc690f614120a4360acfabeafabfa1975cfd4ba82a4bd900e0d293edc56ba83cd8ba99c63bf674681b51ffc0e883786e9a8fa1fa3e0c621a2ab59240aa518983f1dd45cb8f1090dda27e757f6806bee9bb7a4b3e18fe92e0c72ced540a856fd33471a91b114d765c5196981bf0639d6f8b00f52ce22f5bcb2fd5fbb174c9b702e86b676f6ba85ba52d61b8560b2a8d33ef0aa24431db6e7eb37a721090b1b09ca053a43affa70d1c13f5a65fa35e00a02dd0f61d9ba63f5856077a6f8667d2835ef03c008daeb8d0c0264f74edd9602aba10fe070a36d3740e89e26a8f14868b107e446b4cbe5b95b95414c419e6975f43151fbacaf9b5e511bf93f40e59708129f02bc673bf2ab8d1036b05fb970666ea139b573bdb1f4e09b1a33ce4c97ea43ce67ca5b2a052db6cba83656eab869fbc9182c709409028aac224fc0bc922fc105bc39ccdb76599bd2b0db762882c35442d4be93dad481df4a7b196b9b8e2b1eec1bad7c9120593827ac7f38f765bb85a48a168f18f92be519921287f9b278808c197c3058a4b23ad48c64b446c7426c24e97d5bceb747931cd44fb0fa089f1fd544a030e431ae86cfc55f29e42dd83d762d8cb29794ae57407622e7cd4cf2ca65d5e2cb7d5ab4b0ac01a7797a6f6300050e2f93602be391b7d4a91036d6fd63ae4f8fd1fdc5d5851f0df9aa22c8a01279028cc1a9e8231624737f72a2d9145e5d3ff117dadab0814e9fe766844493a08ea60643ddd5adad91e7a13ad78363461e61ccf741abba59f5e9317b861f612f3c31f7e5b2ebf795403a63f825b22b39a8d5cfcd4ab98873571b735d8ff5ee17293a41b6a49c8bfd3f84661f3649ae671c38be7b2c641969023ce39f55ef8803744708897389438bd8d6a7895d6ca096b4b1a5e58d10418a60128c7e4046eb72c9dd3474bb9125d6c6b520f28817f2a1c1640c76e15d52591bf61e5658c40539ca0c5a5398b2c1ec45aeda78b4dd19f4f9c8669ad1facf0c4ebd8b2ac721e8ffc1b1d0465a65fbcde9d42822f4cd0f1218d38642bdea760e882d9420e9615fc0adea8a2e4a7067ed493450550cc19f10c901f463444e387d9f9ada03ed91ee4b927337347e5bf4b67b761e609a91c117eba94577e400caad539d55c0048bf7c422e8c943befb67045d53cdf2cc0034e51b1caafaa49d4da3bf0ba6e9259a1a22b723628978c558a7ae8d189eac49ad4c977dbeeed3bc2d9a9c9d87355a2f0eb29239dafac5d9ade4fe889b5ef4a492b2656ebc58d27cb98254e677fe9ff671927abff7cd7eff5cf563c2620d7a3f4e90dad6cbc0f0a7367ce48ebac15afc6a379c645afd5efa118406b61cec266509f46276f8b55b091b5f8ff914a153bf28e8c30ec7c93af2a6347cfb7c1e80e2c6fea30de44718c3dd3660b9f6e54952cd40e3f75b3443dcd918f2a2332bbfde9766e93dcf8b10b759c07c87477613ef94b0e7858f855a18773a271d52817ab0ebf5e377fc1b30550aef47a0be624d9d83fae0d698c878b44516373816eedd6ec907b893c1939060846954b27a5c9cce51b7773b064c20085e1c34fbda27734118105cecd515b67d6c0a27c98c397d12cbd2b319d324e2993731926a5e457ab0f91347188cc6db9bd560c9dd4b74a543540b13f243a6f280a72e617fa243d2779f2c6f99af4f508b612e2cf791abf3d0d876ef802ceecdb43c6057db6e81719ef408981eb05ce252b6e95904771ff003f1f93536095cecfce306ac03e0446ed4e768f12f9d205d16db3e79dab838dd66add16c7d8212877281d7c12c8033975923a2056136d014a0d78a9f00c3ff57ac150d0a9085776cc63979a1e01cdc9bee8420f861fd2383df8160733334a388ba13121acc1bb6e4bc790b440aec2dc592b6de138ac8d9f3eebc079fcad2f5e2bb351536c98e40a691669cad2f9afb3d10dff0a9b5cd3141728dfa126a1ceb76576ca4caa53446da3546b1d7e48a7eeb987ffa3f917e70a0604f6618a90020d172ac1eae46753f319a9ac36bc1ebd3d5f539b60eacd8617e8b09af3399e1526b1f26360783366807771fbf4d633979200b6972d0ebfcd06b7453ebd656a8e3ac9594748376e23f99449684f6477dd492b22b8fdf3bfb0e1a448265e40d97597b5f05b4dd73a808485550689e86daaeb02ec003a591c07067f4d91c011c85df5a1457a4b4516e48ee43b3b437b5f6b162b8d4d856a0fed07bff4f41b73a5dc21e499a4ab10b254c4428882339826bee2ee9bfab06d6b50af52505bd68db08f42995717dfdf1d8a35443c26738cdb45901046a2d007cc380231efca8111f6f8b3fcf87670ae1e2a000168ea45448fe4a845e0ea677147797563ebbd3da13d143e3e33509a73b15d99413e6f370eccafd086de26d884fbb383974773f7c2298f849e77bb766a19cab6d629ee13ecaaf1300331e718331d0503e1b1fa46fd59e2eda448398579b91b3ab5cd5ed1802430f021ad8b38d44ed501d841bebf26317893c2efa2709b9e556f8c2fa0dadeceeda6771a4c98eef63ad5e3fe8b4daaa7655fcabbab5e2d76b3a5ad32b2977be90407318ef5d6f4c0361f87cafd1347d35ffb7f159e4c98e38cb19b6769f0b30a971071594aca7179068fa12f3c9ba76cd99e1d76e2d19f87cb7b5f2b3be31f56c81f11852081e931c444bfde95614ba115a0f9d985be6534b72e7de084bce0c32e7c03750575576ed7a7468a2e7e944e71cdc50910e993c6ab3b739d2ff9d338e02304f1691eb4562137f99281fc7c36bdd578ae13ad16778f5a264aa06c003fa8f1ce4054568ac081ce044eb54cd0fcd3e084c1da59d2d28f7cdec7a81108bf334107697155bae9b267526561136c06e077937ec6c0250473c4a560d0553626af9588b5e35cad330c690ec2394a5797ea15c72817ecfbc9c8c6a5b5b1a2d8fb6cab1f71cf0f0a03e1617c838514de5c29a3cdf911fc74363712712f3bef0ba7af67a1ffc234ef87833aa33ef6dde794425ba8b4967147b4dbb93a91fdf368899b3823959c00240b9bde6c3a0434c806a975e763bc1114c8cfd60b12be44911d5975dd16f4d8064495ab012dde35efe49ebfb0dc96c5fe2460d741dfe2560d9c6204f0c94628712f2328e17318e15712f3f9d0c09fd49f74f888977876ea6ba9d2ec2729c2f76c21d74177f993bd980df550790c7db80b3a94beaf0f0811a9b7684514091f3e66e3bd06fd3ba157f19a613c991d3c21ca196fb2f46439035f2334a607cb5869e104dfcd387c2fb1a900e03dc207041f6678b7f19a747c766696f8e425d84d0ca393730363964ffa1c00ad4d4fe693c4c4e52806f14b9c05d2180bef5b74b4f916af8a9eab5bee85c4d62d7a382046abab716f0f8e5780c2566972f697ea296edf86729649e14b02a6a7e82e5e2aad87f1cdc807f6a5db10cdca49a568e18c8dfa57d7500b12c0693dd09f1c249156415331928e4d35da7646f0a99aa522321eb396cd6e412decca821686062545b431446cda343e1525a0791272f7df9786de4c20a99ea27c59abcceb9b2e7df3f7b6cf06af02af93f2bb4896a3d9a40c28f104d218f9bcb5d39dfb9ffed0446dc69ebb960d2dba51cef39eee50e9a1ac9fc92312f8e3efdc72a3471f1bc1a6bb33d124edd51a1a5626e717e5fcc89ae103d2c542aedf3504c1d140047ece83f1f7a3c47aa37340139e507f96c082474117148ea870ce2b74d7aff2489efce98fd7716c89d942fdaf08519ae7a36996e2ac85da598ca7171b6db6063f65c9c7c7be0635d303b95e3acf29bda862ee8c7b6099b5ae30d9b3716901f9bae6cf14ce03516e2394362b678c49816f4adc64e9d0de681b23e41f897190210227f2f6a4449b35fb5863374c909386014d219991d412a267aca9fadadb0e00ab495f93431c40b25b125fa695dc19a8df5a1fecc9428f72015a2c627d1bda77e9cd6448f42a2418d3d02c0a4b461852f8783625272d76ebb19bc26d9005f2a5b570bf93e04b21e3142447caae851da2e69c42bef9a78840eaf8f2ef8afeac4775b2221d46f18bb7c9ed7f7c87d6ee4ae9114f20f07c78abc5d9bf687b963cf3f66adabf4a1cc73e3dfe9c1ace48871fe7f07473f7f9812de4fdffd198606e08a6463bb2f9819312c256e3432c7e5bca1e1958e0df84f193c5561f65afcc1dd4ae49e87ba0a1efd8f7b9d88a2e7bc29bf659a67eb34668731caaaa1bc04b6e2f905dcccb8bf50eaa41f72fbce4dbbcd78fa57a4b807ebfecd3047bdce60bdeef1173fcdf207f6494f912a02bcb982cbfcd6efd209b9fff913e549ff1857df6918610de11a6fac323357c98eced7267d5684eb5566e358396cd6c622883cdc7687233097040ce15660a39764ad7eaf6e4a8eb70c0152bf82a8995604c034a6151f8bb6656f47592b32c89e7c48539a28c7a4228cad4193af2f7896cee49ae415280f52ea4662ab5d9e912e7ab88b57cab4bde2e613b9450b2d5aa836ad6470d972c9d9ba7a7ec39a6b245a2fe82dcc742d360e06658bda01dd8ab1c8cf79d9e69b68c7c5cf6f62a50afa79313a13d0846809a29111ff6c1e515f5a441d6ae24b60aeb8424d2499bc0beda57d9c2eb19de2f2fe684500a95945b95009da2401d02bdeef32270652526a0f3f2dbc0eaf838cb867ab293d52b8e038c5932854e1f64a1bd2714853c7112931693a4b5a7ec60ae985502f88be397bb1ec0897c7e0d26a796b55de080936f8928a548a10c83b5011e450e4625416c31e80d321e992a7506de9de87ab7a30e03dcec488aca9491dcc735e15a2144edbe83e503d903c5cf35e1d7b0ae7539f2adea462cce531012e15072d3eb20f874dbf668ab8a65abe6059fe52aeba1f9403cd3e9853ade60821f9d94a8a21ea3be9b33e088bfb19941838252ca4a93e2a8d29147723323f5761120489e8ba603aea878fa7df4fdd7ec73c51d91631636d5f7f61dcd32c2abd9c4208f4f2abbd71004f268aee22bdad8babe53aca971790ae7da5a5cb6d864091bf4a5cade5631113a55412780102602de765cf6905337291af21f51eaeaa463bd9916e5c2649f7d8b46feff225ac37f589fdd3e8b16a7722fb5e8641efdd8eaed68b5cf7e0776ea0364f3abf06ed5b0a23faf495e7bdad74eaa612ff49dbfc23e64615f6848b3de05fd1a1f007ab6b82934e8ec4840444976689c56be956330664b70d7e7f37056c7558a781e602408d81107c2da46c50219a5ac1be1273fe06ac36992fadc0ee655347eb019bc07e66fbfa7a6915f4e6ff25b0b34887498e873e00d215da81aa47c788891162e8fcf62ee9182759ef7f80b0e679f8416681dd43b4117b5b66be9c0908863b5130f14f0e6135fee685aed11b9ad51f8e49bf3e5ed7f9a3c5712448fe3849015f82f669d40712039d3127745e31316ab9e9225e4a500cb33d39396f238e2c290d7eded1a025f37a5b4416560d5274372f2cf50206ecd336ee66fa63400217a2f4f7532dcc295054f961c6922467e8cc9f71372513db9c24b3369528f791298e4a724dc12a269444f0ff9610811f2d0ef207be58f531bd4128fc446654be7b4616aa4f642d516ead59ea4277caef3cb022b31a9136666d3de39b81f15a0ce869380e8086b485b2ab17c37638428c8118e02e578817d730fdc80f7e355185e8489341873974c0c9f14f7bb7a40972f859a6a57f528f42cedd1be4f620483683409d9a4362fba4b24fb0dc9846f66067025b37fde7644ed8ea16bd506eecb046d665a24b7ecbf7910a4f0044fef8daa0a9ec7bc0b0fc01c64ea8cf0661348956a79e9840a77123d3655bd74d9771a6d87446f73b5aeb489b7d23636952e5d9877c89f0f0bd3cb6d8ff3ca6ddd2854f0800fcaa2e827e7221dc9157aca73dbe8d15c5cf4ae7ffe33ce432832320b8a5635f6e833e0033b5afe59e9e450b49d8357dd2911ec54b00a275fdda1e7d873bdd2acfe762d87fa88312fbbb9b0386cdb4f8d444b114ac061391a0ebb439d7e8bac5522f1f2074c7a900774a04418dc602e47e2a1f9dc214f48cd54917973a473a5417278d6065f375a10678123d5cf0470d563b8e978bec82f5565c7a7d05374511c291373f53ef8b6d52863505befd58617aa030fbb275e728cae01bc2305b36f698a0c477b4e477e17a49a74a0ea043fbe1391757a537d434ad6499b7b59aade6ea7d707018ded6c438adaa113c15ebe88d18d423f2e2b69759cc960202a074d2ecc657f3674c0ffe922d1a9a8296b4369304edb6a8c778c7ded0b4ec895c737fce0a92d6968499f4f85d465bc8e74314f4f71d42945dcf9f317bd7af4c80b4edad4e1c9d473cd8c3ae61242df5cb47242da16b889ebe1c1af0acbc7353047a873c8b935a391281c01e73ccf8d98c56490be205332c27e0f0c298e2f7d0a4618f5d2dbf6357069512d260488a7577da81d654faeff87bb6103946be238d5d997ec196eb95e9fbe865880bb25d7b5d0ea51ebeb6c4d4c1eaf8d21142f7b4f423458699143fb3393ef324e9a18102140a137fa25b3ea7a2966dd62ab495fc6f2d9e30ffdff0c5eeea63ed84ede82bf4dea97eb0de6948ec521d6d14d5643e996feae60568c86ca81252e5f9b5c5605bc4914951fdbd1211781c8326567a6782a642b2dcd5f4dbdc6e67e779c6c7822954b2621dff608ca8ee57d40da0d18efd14b4ae28cc863f63a75c7bcb42580945d7e29265487429eb8f619a47e9038a2119d97f82a1d25bf83a5b4ec9a52c9016a2274caabc4ff438163856a89c7c2fc9d03f13f66aef30bbf783a1de0fcbcc0a818e6f23f1d6db919dec43d90f64bb14ce50b685d61cfab1039cf88fe5d93912357ce43c2f52831bb44720d489ba79e5dba7c9a4d51971417522d1efbd540824007db8114775b2a3facf0a6a995ded64d210e8bc17b674b87b503029a10010b841ea8ef7317eef1455d478bdbbf1287b7b9a2ba8542811c617c664f996b9894c23f7fff484956002ab5b60c652eaf3598771573a67f36fff63e56e33857357e054f62642b3dacc22381cfcd0eb29a3f3907511b63764645c6d1e213b5e087f7bd9ea07d020c678cf6cdccbfbd5f4417e32ba025476f220b79bad2f8c9f2d46a4e3b5a4c104cba4875edfbeba0830c5f62966aac2250e2152aa8e1532202b0fe9c17392ea1b63a86cc83ec8555a26889b8da2eaa1f5237a5130a6ea4f2f2daf5cdbd99f582beefec49b547768064e3f6f108cdb036de2953bb9630599024c7810bca7a5c8520f1f7a2096906284c8e2b956583cf4e409cf7d6d5e88da74a29aa0317dea2e2f72a09aa5820d07ae96cf845a21efee525189e74aaeca6f140ed1a977a79b2fcd2107d8c1875cef35bb8321e0084862e329242ced03e0ca8172874c74b7bca66bdb860a24fd33046ec5e6a1faa59c36646b9767e6c063f11d9ac9ad04f397220e0734aaf399cd085e7e055ba0ee6c427f33a091a79210fc080e537659f32967df3f6355c105ea0d2ab2846c4f0fb3d2c481230cf9519c9a707f095463023be963966b4e07678efbc84fd432c2e26327865ad31b0329c68d2e9c04794f09d9547cf69afb3911080d0b5959d0b3fbedf67f7a3267e6418329b76807191422ad06385bef6768b46454f05c5aaeb47291e754e5c97ce47fbcd95779f8ed0c1e389377ba12bf6cb037334f7677f60eeabe17d8d8c24918051e9ac5a477b3a79359415fd22ad5ac6d37e1ca08dc18bb79489627ef1ea4be860f7ffb0929ab2045a589994249a06addf7ea19b62546647513ea967977c40eb20a2b6983ae1c4ff2f29c699babbaa483c9ae9c4531f97c3e268b695e84c5a2232b5a71e191cd81e744dc8d4c86e186ac8ee143789b6a639461655d03aa2770b301583886938c6bdb995ef29dc8766aaf2a09c702c91a9614f159050f754f50176b88c23ceaab1fee7e6f331c2301676109032b28b64bf8dc82bbf30a3a05191e68de6265027d1edb3e0cf0229dab72191f7f98aea3842682a2d5b43006f54405bc6579d133de71b05b68ec6e31c212e8ab7f8228f410dbcb276399ebad2e2cab63bb81e8b6a9d99c986a04e23c389ce4fedc1ccc318062e9851651d90ca6cc9fce9071f0da3f08a7392ceee2052504b270c1225342252010ec1155537ab32256212b67932006ef5f477dcc024641409dce2eed9c439722b6946f22cb0c9311f8ade5a7fc64e81ae2946091d26a6b37f77976d90c6930c8da54bb448385e5db9e3fabee26bbd020b0fe8b30123624428c91c1ffde7692730f7976306fa52e2cf2c9800a36ea311a44d9e9a1a380143b5b958b39ed251d50324294ed433b56ad6f8df9ccf5c87e3162ce19b4eb26841fee1623789ecf79260de0ff9103722833ddc6bf48d8d7b33e8078ecae8a90e33ff6322d6bfa3e13414a9c138c8dc6d572a78e10600d8ccb73d4e3eac596d842000ec321771b699760710420bdfd91724b2fa33fa38db74719ddbcce5ac256d728c270c9fb781c7bc0de45ec63e445759e4777307f325bad5a735c0610182d7ec64415c7eac36b752be69a2ed7a04e3cb86504ddbb35f90723bb1134ab3689339b6b1b0dae4fb6ff1f949c1410690f8648468ed34ab22f60098202afc7367b991edceb625e41b5da04bf88be04c892f7ea08bcb56500fc4b4ddfba0359a49f760e87c5e449ffe1876d5a10c0d29c59993f0429b8fc06895ce3260d6cfd355d358fd5c681ca9adfd06e3e0ea4b9e4295693d4d52675dcd3ac9181335f202c2262dc29567c6c2e4e3d03d59a66e5d9dd7f1867b0dbb750c3591cbc3c02ed81e03289958aef646a94a07f5f4df60831fb48af03c0cb8f3a8803821faeaf105a03f850e7af4358c9b88a17c61fb9c87f49493e97607a58a23d514864ec754d513bb1777283b9702759d371235609f515b6fe9ac05e82fc23c96ad8126e97dca0ca79ba3151e4c4b52c164d7effb094d392480262b4114422ed7debe2f10ba13a6d14d027ab2d0e84413234632171bfc5a4eb20b91b6873a5573907ecf3fb29499466791f0f4eaf1a54ca425064804894860eac3fad5d39ff39550ab9644885bd6ffb212d71d70adf34c6f9242304390a9abe89d642daed8d9e09c9903502e2d42b8010944bad293c2cd02308149c1a43236a89fd685c20394393b985a5f102c0db4727f18686b1c9b3d8c9755dd711472f68ac193d74768138b4b01e5b0f81d6c5c834cd476e2beba7913767cebac81f976ffe0bb649da3de630aeaa3e0cdeff281ad4f870449aa14af10fc71c3f29b0c71bfe9a7a15f95f6052b991b9c9663c1e7edd53743d61890db571a381d0e7d8f56d957097a4115a2765cd3477dde577ecd566e2dd617a3e1eda2bd0c6d0ddb30d48a2ae1cd81200893cd62e0413261000255451df09fda01d2502ebdd1234f0faf50e5ce9270afed7abbc08b1ea44b9ba18784c0468f4b33f9d01f464605d99dfa07a2cb11be23d990b83b2ed14d5a97b7c444822fe85104f0be5eb10f5e0d26dd8716497d170d697ba7153ebf7d03893c40aa188266827b481892ad303f552e01337dc8f7bd65d89995343b22f5d575085cc31708aa8caadd0725fb22fe9a5fc281b6315de2bb98d8cc23e020a5b90f9fa9bc4aba9c2b95d10606ebc10618421d36505abd480c35efe8328430acb774e818cfea458062a291cf0992ab35ec6a234cef60bcc2a66755af5e98467ffb3211c33a9c33e4e85321356aecd1a1dbd9b508323e44563fcc29388440d8b9e0ab7f1b67b775606d95ed91d1e1cb8bafdef8fc4a96956361cdf9d50a63a94751bd4ca71c53e7182af6e930043c8f6b3e6693c0abe3529c11eb3f19d5393d51ab3dd96209c2eb1a44d2f2fc93499b22d6ac508bebb497cc001be0dab77b05560dfeee6a36fb310d48eaeda48e85cbb0fe7fc888364431f6f7c04f258ee544e962f927150257bd742d9a8875b882e56ef1a5db210906178b461a2a4fbd867af9dcaa890cf1cbc2785e41d6ffc3af8bcc976bc6496ce2002a3a9bbae3650bb9bca4416c28fc05673774c168b6ac40b998e60b1ddb8bfe5c946bc3c9be9c47fe8965ffb2ac583a104752a291c5dbae98f7a2bca42182061efc3d7727e2ce204a1241da50cfa6f0974de2e3e244839d3b141d1981b69cf172bc5ab066b5c02f18490d1d8542fa41333f0f45deab04d8e080ab6dbd31c51bf453a844cfb37896885141cd10e8d67b606e98a1f7a9283d91236012c3b9a89ed9b669d2ecc0bb5b649faf112efa2b1728280686723d24d673eff54610706baf0a03f7b2fffeeb8e9ac5d253dcb384a1195ad4db9f7c337de71e0ee494f9bfc82571b5e23b90f327c3cbf11181cafe268febcc3534ebf124784d07a6d1094c372dcae2e49a20f4a96bb66587682efca1cd0b73aa943c39186c34c2350a9a11c48db5c7b5c697018a9a095d6ea3ded23d6f319fd8f352b05fc6f33a8125ef5ba6417d460133d10152797893ff3b5b5b113a3d873af487328233d6e865bd9d8091be5fd773c55b6ade4fd4e04faf310af4eefb87446e20c3423d66c7a2ca4d6c9beae3c235a6aaf503c6563737d25b244dd3bf694632e43a589556fe7a6b072fabf71fad429387a7e6915283abd1ef885adbe38ba0d9c2f6e0bcca0edc8d07212773e8729ff0184b4ae8924b28ad33d15ae05dc63a85fbe7f0bbf0139dc3fb7c867bc47ee3b09f542c2ef18a43bdfbad17b6e856614eec2dfd1a622d3a616a3ef65a43370771b8d5faeaae06a4a00f430b6ae0a14ab831cbdd270ae816dd714253643a4ab18029007c9d024a0e197bb252e4ca809379fea3321fbc47b7ee5ee58fafc72374011c282a8acdebc6c2cc2b6fd23881e7b84d1b32d9d25804a09306cf8c46705e09c7499013caa574ae8b6a678e4972cadb94e3a3c9e299609ef9b6a0fa4f751c87da2cf2cb3e8eae71af8cfd092afad878a1dd392bb8e0388a6f3207e3b535d42901c37a8f9b24ce2b3d3153b0408673a86ab103da51141ff24be117439c5c78a36c6aa4b269c4241c9570d5c66019d8fff9c6e6580d8f7cdc0a00a44e560ab1ed6e1840d0a44db8718b3bfc5b83989108d61d0b165ad5179b647dcf59800cd57576d2226a9b9771e7c25285a4ef30cd18bd88dc4e00826a1a7def66240947e45a88ec518b7adae8e78804f784ecbd9cf9905c0ff72eccd771619edffdebf0c093910a9a820757324b23727f435c08a8518d5bfec108da8ddecca1ff308cad13d7fed560983db2acb740186fb52886752b1f00836a2cd9a77f410141f68da471e73ef93a9b1c597682d07e8344a38ccf7cfa3f2f5858913f7600936553b88b428145972d033a4c98aeea5d49692396f2f20d0f0380aaf5e51421c0afcd2b847ffe0a35de4c2b576f9eebe0bb1f890ffbf18f24ef6f42951d314d40e1214cec7205f4c319ccd196c9e0798dc621b75d5236d35976efe9d97d53146d19cfa2425e099aeac8af6b2fd43364c4844ee34aff39c9917d353f13155590bf64112e48eb29af2d56c95d99fdb1eccd159396eb4cc6326375614a7e5da31c838fefe19e384f5081e6433de145a866e1d051894395645308d48d609b1ebc045a4acf22b944a3eb757cd115cd8b9d610c2867ac5fd6009adecb2212689b3f419855639945d618fb4d3b59f5bb25f9ec7edcfa3f3dcd63b98d5f1f294ecba1be0d812aff061b604d6330805459cf0101fc0d4aa583057aa67fe323916153f6a013c9248618cd23f4bc76a9da261a381eb7b0afc3d57e9e88fe7595cfbd1337a0d985289364f15e4ea817176b3a63beca9f23ed7122224cd18abbcb361550dc5a214dc0af0196e1e8fe035d3cd3e276f70cb80d0d21986f5417a5e093d7e2f2ee70c57fa8a20d619824c9faa91fca9cb6e87624ebcdd7f3d377bc92132694776900b419a204ea585facfa626eb659fe8fe657c0c5711df4ad5f86d2f4152e3c87c0f05c1d47c9e1aa82da926e5f51c4f458ab39bca94dd027e16795b4011542edb9ac156144d380e50ad6abb4bd62aae610477dd84011610fd79694226bb4219e44e95da233639a0792fc8ae1e3bdc582fa0d58b30a503647c9d447424326cdd211661dcfda936912a5a31f7d3c94bc2959b09b1fb7481b188bb33f791aea332491f0d828166e8a6b3f0ef476ab6630769a6d92d2eb3f0ee25877bc2a58a94b4a12a0406f14d8a288da8f07f4b80e465dacdf83310414dd6f321364301dbba64feebc637c060b863430d3a37ff78d0be783561cb20d77a686202f3da0a9eb12646832ff4b2b2492a73457e38ad7e3d18c1bf7f519c9d8367f6bb645c188c44418c4d3bb54b75b051d6ca3c027094911d3f08e9f552df55da9ddb909169d2aae2b890f7028a714e326067b94777425a9c3d513a39cfd0cb8d144a8ab5f242ef99c1c37bf9f88afe296a09a66efae741060747bb76cca56d8f58e69afbf6c2d1d97175b2cc0d26cd18f040bd11fb6821f2b5ba4f57fd6e6bb22e4ae50573025d7cc3131041d68b7ae4dc77b37fd7e1cf9995b64a5b227ac10fb7eaf36d57c6023ec7153d30f7a4ebf56637d53bad4a1d5a128ebe57702e577f11075f40934f503d1d4a2709fba51eba7c0c617b8b3458373acbf7f2469f2d221217af7eeea83380fd4be44bf086922341dd2ba9750ada57cd1beb28374f60dc05ace59bb4e5596cd0604d0e5860512598c166e635805882de9f80c859ddcfd386f5a2012f9b65505740437a6407f73ac3b06d82ff1826a8033cd1f6f596cbf3605cb28cef1e9cdb6489164e87831ede0d965e85e1ef1e5a16d19ca97727f46a86e5e40ceb532fa025e5a75a50379a138a9ed82a092cba4f847b7a2eb6e0de2c144f84c763107999f81a71059cd6bbdedcd1ab5ed4ca9be12f3c86a38a55b670661956f4a36654a1d796cec71184bac71a487145b4a90d8ee0ac997db64032303dee1940885a40f94f248fb0f2aff65db48efcb6dff9f97743a26f031af2c5adf017ab4ddacd1ec40ae005e0379274b0720e57bad5875ce47bdd6cd03abcd1eab5fa702f7bad318ae5a1980d015a67d583847e11b080a3bd432f2a551a1cf92cf3c196ed5da96fb99a610b00536c106697e06fac459f23139cae46545c957c80a4b396065201691ffa579718264c87ff0a1a20341deb96950de57a66bd7c9b35d0db01e99d30bc72b1de32c5c40538c226cee4822f73981b79126076d92a8f5d0b02117b698289c8a4504d0e7a3707d469b976257aae321f78eae0444251a6510e1b7895f8d86b1fd76ca80c901114dee65d28df616ce13f4d6dd3e4e56b642a59a82984b5313cd6e2fde66c9ee7018db0682328e57edbbd64becd3cc5884e49e8b733880bb04c3202c8def1282d8c1256a87faa9e8813ff641ae289fadf3bcff875a4551139d7daa7ffb9f08df7e8a26fa6cec39798220fcf4e90da0ff69525dd82709403ea125ca7ca7ad3445f27f73a364706eb7d3a1b2f55e594a542f176e17ea9638ff3c2a6ed8d81976c5a48cd478a14ba36fd50f6dcf373ec6895cc30407eefd1eca3188dc9094d4daaea496634a36c59df51f0964c868b705ab312872657ec63c9a97149c486c99c57b8bd077a29fa1322a57c94ee4ed47f64e62ef2c8fbd39202dad2f709952a3d0175cd784904d649f76449afa0f442cc417922ac8752594b3002ff166220797e359fc088773fc512c5a48c49ae0d27dfb3590e34233e436dff91b00bb8dab5c0a28130877912b0b9e1f119e860daf293095b11cd00c8d14e5c25cc9d333faef9858718cb711a4f3ce645d1b620913c99f5d230ff7e9e6f376d395979e1af68336940da2b4c19dccfd000da0225de63f4b48a3e145a59c0e35c96adafeb6f5a0b32ad1d87eacb2b57f71415bdb478387c853e549c2036f804f5377f33627c703380b02f3e61a9f6f0c9ceacfef6eff85b6c258aeab73e8ebe08bf7f5d938552f05bbc21b6439d3e6865e24b7f531103924c3b0394f00bc62aafb5bb69f48a2d9c341777d7000fb0c1f5a8501d638a99754d4747f62a9642d54d3037f899dbc1252f529d904fc894b2e8b7445b70a8342b91d827b00bc6cf3e7395288d407d668dc4cac651ab8c6f27f03bfce08757ee2f3bb31a2440b7d45b8196c111e53b3268b051ff90e0739fbdd4c103f418c3bbd2c66709f952df6c1528a3ad50ede380612f517c44a9597a4718576e07263a51b6ad0e139b908afac7af614c7ae06899b58d0c3b6d59f4254c682ca92b0539bf545e62a2b8fb6021c313f635a3affa4fb605d3f88a9b641786e023b595b0ba117782b187c451e57bcdec21c6428e4b1d49ee3f72213d5089641df5091fa7337dbf95637b761f200b9e2b8742b65a884a6839e29f3a0bda68891ed171c95cd8ee20cc098b49e5e85362a397afbc96c57fa142e557e4be08324bf9af5f343b112860483678fc4b7f593a64fb8efaefe23896ed9455aff96ef4345bb29d25323ee79ca293fd12696629bbe57791785827637b14d7283152264185dc40b408d82b02c3bef6435313b4786e01a2bd22af17ac9b46f4f882706f13ae22d3156b1adcc019f3648e494746e74ebde4ab47f849d8d4d64957bf3a89ddd7d288ee7e7e8439b67e4849c49b90d94de6a63f1d2637cf163abf978a1191c35b54fe719af1e3e805504d3657c6f37dcf7a99b43a714de7e7b51846881c7eb6476307a5b7295244451ba063d82fd17e2ce578ee1c41c563e25e8158e2a68991e07239ecf4952a8d0bc189fae498cc163206cbb8a3a4fa033367e6b0c58b96941ae06f1b13df74bfbe04a1b658ceedb8a20f640b925a4dfa1dbdfd57e2b2699621f4b35df9f7ec0f1a930c04d96d9442af2ebc77116ac99e74f9119eee9cc511d4b6321033becc0fae588f584dba6fb98206609a2e4b1ab8239eedf62300bbc045912a966c2af9365e2859586080ecebb8fa05cb579f8a43a8a47ff7bd74c0d13ac0fa3ef8107547e1b1d5bc000bcbe6e249124de179123b935c13557f3163e2af96be924d723bb744c8f3c0e227cf1604f893f18538b6f60b9a35272bd8a2d352901ebd845be30f65f89e0bfb3bbc1916890473ddebb76c4834a1f60d524a3c06344159dc56affd786f65ae07680fb6868b54d2ec4f5dc21ad4cc5471bcd7b560c60595386cea99863184d305bd292db4f20ea493544c556112f4d02865c5802dccf27c9cb1b456e99fd323b880dc1f75419d8b1d36c0a392e6b52008d74505ea5c8245b36ba1d4d24f4ec2288289899184f619b42519403965a23b69f6c4854b45b6914cbec8d4c3302cf81f7e49ea451d43e4e981884a71ce51faa82dc0f0b5f91d0ad8ec2e6c1503cc51ad93ca94c25b3fee309fdbc16decde82a7a9c71fc358b812ee2aa397741ee5f9a5c8d838ace966736120a75af3c1de6d4ba6baf9c43d5b11c8fc77515d88bb951d9ec22f9b0433b139df5472dc882f18fdca90de3be38a81c327b754a75a50c2f2b40bc49d88f593d764d621960039072a97427b5e15eb05e332b3cbf779c89741821faab2ca1a0f3ff2fd69a20c789ec3dea2a49834b4c24c7718424a9c8345ef13f6234f43dc78da18c0f116a36fa6be563b200808d68fcac0df546f9f9dee23e5dcd5dc08ae78f4e2dfd41b0b594e93317e520060b2fc4a7ec4c48a2fd46bc7c2d526361af1f63d8cc78f706b2d63bfcbdea1868899b25f8220c293bd0a7d0ac03d232d79b40349ca8f2be5a8e26f4468a3fed68b727ebe534f83d5c5e641e03aae3c07158fd910a5776be194f55b27fd8167dd44392dc20dfb786f663e8680f049eefc84dcf86edf4ee3dd6b9be6f10f5a73c0413c72e9d0f4bdd645538ce521e840b892e6d6a4ef948ce7a3340e2fa29de05376444154c37ab251c913844fc8cf66db94c5c3d5874ea6200bdb0cf22d3beba3be10624ba10d0d7c9bdccbbfd9f42a7c9901798aaed3693e36251450b21ab26d31cf85b7dd370dc682746c7e9de9bba2603e3a2f6718650b3f795be1cf7f45a4427ed2a752e8e6f3873cff9610f66eca267c9093ea3119e4d2886542f5e20fefb55fabcc8142ef9a6cce52575a0774643fb76f6c6f1ad23a91d09a969b132b2861e778fc64068ea77183afd4506917567ff005d182f58a14ba34780093b5dbdebecf55b2cef178db6d9d92630d7c1a7777e889bef056188c2c159a2a5f6bddd4503ed28c5abd4847340c142191d7e0157f171f933c4ec04eb572ddc1a33f6280d22171cced9609d54a09f06c798fab708eac4b95a938de1cadffa9f6a01fa88d3b341fd8c73b03bff0035b67c488e03ce99c8c6cd39b2e4ce73539febf78cf59924aa6bb2214971675975b79a5136823990e4ba4d68ae548f0cb57932f4b2e778edc0aa163f2bc3cdd8563ce693b7f41b8a7d52c0958c00d9c23b0729043b32f0beed45edb57596adbf045d56c7ef9a68b8c07d94295d9ade48b25dbb1ad0cf949c480e81661622b154b76c01ce0d0d86d16f6e4b5a424cd187029145e522f060511b7d9bfbb8adfb9bbb0070f870f4e898d5568575c1c275ace3ce6369289b7517d77ee0c48f43969eec9e5245992f6626f44e5d77d5e096c8f011ea24fa72353be138ac2473ec1698969d9bf47e0b0340cd4c02b05a4d5d199580ec6794b96bc9db434c33c1d532fc4df27063e56d01785f4c0a38fc47f3dba0a09964a0c0c24a0251430d98c9f31d81b5537e333a0ff746193955d39124ebb63eaee894fba2433cf7a19a396a7124606ae10a3a9db83cecb4794b0e22b9e46f88ec3671c86518d1a58bf2d9a43152927c241aee4347bb8c4d13888a87c2269885559bf988af7a9f5c3610afea0e3128ee4f0e439cd6573dc8a7affed4bd8d491a594d52f95b00ad175a1d232bda52966ab4fddfcc0a791ffac97ccb4f0c339ae6755e450a9c5283c4e70eefbec67827e713f78449a930c5cd98da5bc5a3f504b88e3046c7e61c038cf91f70357d1f153d705b6dada4400ff95228be08b986ea3796b4b54fe925f789dabdcdc792acdd63f11bdd9774a18ebc77b3c721700c41eb08a2576c71fe3fa04e625aea1b3553c51cd44045721f79e3c48555aa9c7926e25ec4d61ac26cbef711cfdfd734bc8a87787d6bbd97e22e22478d8517ff003c5d6f4e6fd3492914ff79ddb3366654b64606396934c6b3e36938529a0e9096e8543808e641a5b6c5dcb7dffad4650359a805f86e2752ca179014db666ce5f29aaf2ac7cb9cb9a2525c8730a85b3cc64578f6975640e008a1fcb75d3a926794be6ecb8ff9aeb6df313ec4c6c63a1f3a59906830ced41a684e1b06a8df481e6e33a3eeee6abd0a679fed9eb7a28d76c5dc7a5f5ab6c31bcc3f454e26fab7e6094507a9fae8205505f4155d9596970f5f3d3f0970a0b71e67b9dc0f785e055369e6733347fcec9fe212dca6413445c36bcaaad21c9e78acb8971e0d214c14e0cbf19844551d38ef51099c7548563e0ea4c3767906b257adeecba03e1d28348ea767a8acac8767a169a4c7d27038512578987ee9b6a3f30f9e0315f9d9d14339a915be55499f7e9a552e942e3cf4a5e0ed210d53a4f5011c7a0b58be9ef9896560d9d3b5d8511e9dc65231277d1a8040a1817f3360ad976ff1ac203f69a4e0ac9b878b69f4ac0bc4b536109ab1fc3970fcc91e3d1f9ce2c702420a8ba8334bc5822ab81880d0c5a0c274feaa050a87f67e4af83794f32f2d7f0b43dff6663efc8b2344eb0154aecc4958c9be4a4eb78e37249798cc732fe90dc64ebf3e5fa78270d2fd368ed04527aa660a70c75c511358522a92ee5f4790bd1b4be595d0d400b0edc4859364f9e32d448baea820a2e9449e0c02d245efe17ce34253b4903c62204a5eb2ac59c9767d14c294c10fd87b5b1f6adf5d2ea1f0262c5763437859a12fc397c45d65d3749573b684addb427110ea222958674e07a1a79674c8919e3a33962c19b6d802dd0aa57912b709ded785b3517d25afc3a53382a965c8b49da423858038833ac5ca0c18ae4d248540eff3ca3484e7000990630dc030a9d4f4dcdccbc8fb860855abb30de41c1e102912cdc2cb2bb5aa05f15c1a7914d72061db14246372c8b83f2024fe2afa5a02ad187298f1a2171d85f2fae3f888cac0fc05a8e51ce3e66f1a28b35a4d97d18bbff6a37dc862e3268622e601316414eeebff3ee64b0c5c77a1ebf87038c463f359e2aa96bc1a12e8ca5e0fdb3c932cb1f39719984373c8446cb4e2d8b3b3c7990058c70f2dbba2b9059a3c267163fb7145ff246f34700f4f945f6676b7bab9b90e18b53dfa7c06f6222cd9dc6d6b15548f66ec099c39e332cd90defd68751493eb074f48e3c956abd99e864d2c42d8b9cd8b5c1d9153071bf0cedfacfbd4c4a3d464556c7755a2c31cabe223c0025f48d73bbcd01aac4d84e121d6a651e9dc1ce4c67173071265c52b7314d6f8fe121ca4838cef074e1f15f575b6a7bd2346267bcb5dc2913c8a098d3e6eb8ad81d40306d9798b9660c804efa6b4f7ea29805e466d3a67c829bad0287c1f9a7282da54a0c35b23ffc6838fa4dbc81c97c1046916fd10bd2aa6e656ab02d8bab2fb40edee2ecedd7b064de1557d5ae1ff367fe6ccd258fd5ba75c58f1f3a836a81f18c41c1f8bcf086739997529ea54cbd3ed142ccf19122a54f8a451883e11317965ed00e1f4da781dc95322d6f88ec33e919878c9895dca11ac1d6d3ecf2adcb2d3fed4331cef72b9642f20af33e5fd4e0e81d80a5caebaa98b6b0ff2deff1df17eabc6eda78e81133be07c1da5122c2c4ed8df002265d0064f6983a2acdf8770fd4f3b0bd30a845de449a5c5f9a2643ea707978807652a4334c3b9a1c58fb1a445dd1c0e4db1adb67b1f399946f3a417dbe9987a93444e02ff9a72792cfde3502fea8667ec9b66c6163b26b8b3b4ccb30a5e3e1eb0614bc568f6e5e349c6698eb2f2800edc1e7964a1cc27944a21c927feaed1e0e349489f0245eb063e3aaf7bf15de00259a6579cda5bd9e72a4f26d7cd62c28f67db55a14d29700a203e36ab523686b5b640d3b0b5303670d6807d5323918c1bf1e82863caa8c29cd43aaed604a0d5b0498d585f8ae3698b390aa69978bdbfb22e26928eba3b476293fa4e12e667f7f21cb6605cae921a7dd51936c080ec2bd2a95289f5e2048283cd8cd896bf5f096e0d6bbea70d7e940e0a46d425e062b453b46bd0e56050af475bcd68edb56abf88981ed6b27914fbfbe4c76f78b7f74a1680f7edde59a3c82adc2967ce412d80dbf07f7400d0c4bb9cd91e3b7cf2cf5341d6551365c9f2fef69ae114245f13dd3081fd227d436a27325dfeb577352d03810237b893543724cfd2183b65edd485cb64bc2617c704069e4ab76cb1cd628368cd1380821ff971c6fc99b0f0cdbd14d0ba40832216afac9415ae7aeaed8fa8f05dd9d2c1576abda360870690b8ec261be5a8264d5c51af56ff6fcbdb87badf700babd2e74d5de71c6b39744f615dee4c7aae5c48f048c054fff745c78b440f4492f378f4065c5c2e4a4a506ca40af3980fe69a42795b443efa2fa0f694ed5637940a190613a6622d8296d740056da550e6ca958611622ade318ef02657f2ff4cb722fbaf73cc4d860a3823d38fcd64126e172b90a1ef1766404c38255afbea948662058c1f40ba383d6036f6dfb649b179815a5271777854108ec827355a75b37fd2ef88ecd733324bdfb00c2dde4152cb0677c2e0914f4a4f6fc17180d4635e78b4beec7c5ffac6fdfa446d6b01bf555036ba5545a3a92a5460afc1c44a537c5ca57d1feb8c5261780647fb169cf942e93fc07ebdeaa62a9b94f0fcd2469b4c2847dfc95b8032f5a25984a3aad17df44276c90cac79b1a985affd2649dc7d40b3cfd0e74245647e148362c3fff34d9bbf632b2d04101a5dd403deb22a73c130e3fff6bc8759f626838d20d0f9a3e17397741e16bd876a13cc18ea4e82ecdc0cee706b8dfedbf6a3971cab8a170fd4223ab851638ed58e270f66e6b6a41d57f91ff2462089b0fbb7600485e501dd99930895c4fabd675eda1cb4d53f05c90c8ce80eb188765a9a535b23c141ebfd16c45579a0cd2775e7ea5f2f992a60ac5657a31724d9b16faee6819bd50900720a2a212b7d41b63c602127059017e213ff899cf70b7938bb24d9bbaea7017fb3a34643f75ae37da931d21a75f9f9c540e732bca90d3f28630f079e321330726b1b04fb90aa8003d3826620f630e5eefd09d5bc09d5ea3d1adf72ef9453d1f4879b7f25f6c547ab9a9a63cfe4f15e4e0ac940c4129dd3c9e09f68b47d698a3b81c7f11b8de46dd4edfdd422eb91c3779fb46ac848b165860cc77049bec2e0505645165dc5697b375003d54ee71b3f67916f65a1be895f3891a76782f66501a8cfc0cab57886505ff91ed8f22310b9a5c27bd61c90228e8e0a6e3cebd3e32e717e4a001c2b55195fcc9471781b77b40f05307f90b3e646d5e592460b2946cf6b74594983b7bff2cc4dc5aa0b416fc11b125125f00121daeca4b9030d6e47a415ed981ae1ed399f95f8568d84e02ae2f7b93723ea7a7f16c86f1f5faf4ca3da900c695df82864df8fd436996b48651347ba79064be09bfb834bc120b4afc79fe407c11c46b14ca7230cd87dd6d1dcd447e5526c8aa8928b136531ee8bd3f559addfdcbdebcdbc78b11eda0af83d9aab003b8c4df2c8c155b2b803fcf3edfde866c8caddb4cfd7ddb9bb1c8afd5519922b2944f48d9ee3085e54614febd6c833723c8341eb2fc281cca07c4949102e96012bb7dbb8f9c69bc893b2ccd9bbc9ad1acddf29fa29f89e64f178f6b361a129eb18a5a566ab47250c60d8d9a8ca6da0451800c1f01ed677efd90d8a9cd092e590db0c52fdfdb4468576c2e844075df73ed13bc9cf17509af20d4831044bb7bceeaf1f33e0ef2982649d87cf257ecaaac8398d02b8f44bdb77447245e0c04daf7fbbaec91755f6fdea9bbd9f26e731eb15d9f290f1de55548738287d175c5531df4e509d485aa8b579e1b18624944840f0bd03d28cdffa58d18ec2b7c602f8ff56d347c24d1cef3220a8a03e76971088bb84996b575e2064e6c44c16439c55c5645c3c83cce1173ff3d8fd5bc9d393954a47b5161d02ad6156226b27968182d7546c145e769b5194e5ea0c14d47648dd1b0e5a09f1c7bf673e2ef97539aa698b754a79ec5e0f5ba9673db699d7151dbf75790485d3fc44a460fa6bfc78fedd6136b3352679b356b1c572e6783f6ffdf3281f124feb9393d16155cac4a5d914601187236b006170882ed41c7b5418bb9ddfb61a0ab12753a851b5b96224465eaf85634f18ea289b07e617f8ba37a896e4ba03d3ef387a734c926cae6698f42e885e9697e03c17c46a250c9261f1f42665f594615b529fa1f39fcdcbce11edc0ae691faae75affff2291c0f02d958ececb598e84d62b16574e95ba16a9489283f3ad1e2a35b44149ee4cfb4faa99703b15cf78da48bb35cb158215af747029018470b8b56300b5e7a2751e6e0ad3a484a1b0541ecbf049cd72b1df89ec067c64bc5318a13ba882579d2c750f82d5231ad4b88838aba6b56ebfab9a84cd32a1d34425947f8a051dcd26473697b5bc46bb842b05ef9e1fab9752dbea22548f4234f90d9377955ed6b7f215e5d16da5e82aa48fc624516ab7e03e7bc51ff8c34a2bfc7dbc9df46bf1ec143a001681a9ff1a821d98391cf11c7a70308c1e537074fcad67765c46970df9a4325a087843bb93a263779918c4c1d752435af955914305ba2c350980e93e0512a25497c72b7f4cbeb9a9710917bbf07cc870303a059337fb675ad20087b7bf2f6c365c2fa8b232c7d6add6cf465c0f98ad276d448056be886fd38f121843acc1289a4cb8aaf901123794a150021ba6c3ca121e4e3cc4d6d3f33f2f9e64090f1d5a0fc7b5186b892bc137512ded4f18752be49c0e569818824014af7b74bb2b91b1a71ab7985a3aca70fb67b97f8d4f13265392d0a2600d683a80efe31b46b3fe79171a73413ebbe399e3300639fa959a3b3229f86a1dd9b3484d3f6e44280e217ff31b0946d850cc8e6886043b124ef452c12c20c3d8a3ca86a311b5a0d67c62d90177b37a2844040a9c6f3f5285ae8255cbbf59cd137c28a11de7c6a14b8511ecd64b1c0e0abe4506b0f2131b124fd53f57aca28a0ed5ef314437de5e6a5ae386fa36d24b21de921f21fe9323bb3ec92f0418805a3ecdf2484ef558782414d1aa1e6c1c1de6c229d0aab5b9f6864f613883da92eab403dde15f9913fed1361b398e4314d0d09ca46e28d1eafe2785f431df85c58f3bd123b66248fc740ce605bbd12368b6457faa57288ebadf86ef2a45b5f04d212361c24e0750489226e87f5cb63bcdab9c6343dc15310c91f0b7ac02a94b7387a62bd4f349f77d4e1395425ab03a48f16d6db12f6a5ed2d2e2a4a1e41a9bff9e3dd7bd27f97c367b6640a93e170431d9e53b8c98af27a786b7bb6536a7d1da56289803f848e9944d9003040e09fe1101f117749147bc071d029981fd2ae0110f7e41a599355fcd6712212ec92683bdcd8ea27f768935b1e104dcc96e63c5347d8363c51104bc36b91bb3f88e85a02704044be7d25d2ff1c44b4b460a3ce2e52d7d7fc99a8cf1af7b6c609bd453b5aa6cd0d9326d244f054563db40358bb5fc4889e1346a64e012b95ca087e13d45c7d1bfee2c12aa588f48175b7413be4ea201e2e60f9fdeccbdd149f97aedb7d9421e5e74c1f4bfbb5bf85b0a8845d25850c19e16569fa04a1c0cda055d6a5bb83c8a9fd5416c20e78ae611dfa5acca41c504223c86da7aefd656f2da6e5858d1e5b0163e31ecd8667dbb9a02104f98e4bab8e51d4a05eb72f98d458300a8fa74df0eba2c4793ea02bc23866170db4dfe776dba1f68f1795dcffba475e939c8f6d17a68129e9cfed03ce8a2bd8fc4faf7617ad27407c5d14791a5982e0e6a2c0cff2cb2724f9e3ad4038cd40e610bd1bb23f59c6e9aa0cbad4804cde29857a563622d5d32fd8f7dec7368a1bc509b04d090347c4ca4539148c7d9a54f01d57715d7d3316a5bf4762927a9c228007264a20b82ebee3cbe17f94f3bc35b0b45c746f9e9e1b46ec672a2ffe930a2276d7384cab83ecd4114f3bb494f5b228d5047f8d3c56b0b726d4a93f2476b33e0a6c8817a1710864d243f7086861a1dbd745054c566576ffdbb773f825f3f968cd81e1c12818a1fece5d7b7fa086b09036ae36342c30400cc67047a4d16a57ba3ad929bcbeed5c2f804a5c5dc3560bd3f0e5f8420bd79f2c248e8d20995a7d506b38f12fbf74762956b134b91edf7f7300489666e7378394834ea35ef00e52cc52d7817528acbe4489f54b009021d702de85e506c69823dd17de2fe3fbb1d5d30b67769b2de692777a3118709acffb5815879b7af844a781a3d724498f11808d340628e598ee7ee3a30d939ecde1eb10eaf6ac8e26a79263f0c9f9be7bb698295bb47e49feaab7491955ebf17b45360a0c32210329aa8d44d8c328842e27e4577a16aff2bd9e358e9869b724c11af3e75b867c0db46a114fdd28f06f9f6fc2cc859e38bed6fcf93e2af96ec8d83cba90bff6f3d6d183498e5250e46a8f4884c1066807c18831f40752979cbfc40e19b006f5f0fa2c80d37214b1e9f216784d75c85bf5c0c70d1139cf1beac243c66d35dfc3070a2b3a0e4fd19bc699844554a7946c06b77dfe374dede8e4dc17afdbd3d9726709d7345adde1c599848b1aaf1c00ffa3549df95d5b647b19ed9c2041817ea6f6f29b3703b8b12629eec1ab2a1f47cecb79040b61a2c9e5ef29af1fb5f9709ec42fcfb68ae1b7e92aa36f42d4fb39e09ebd2eab120490198596e1e6173ca52b32230bd3b13cff766086ac01fd83395afdecb749b287981f979104cfae0ca4883aa259f9f0103fd4990bcf407c8c4349e483aeb51cd552a27c4afc519971df4590742e6e028a83e07dbd2a55e06d0faf1235b64d20bd6d6b0a43e7212a3517bcd6d5314dc43a662c42b91e650e853a661368fa21b9b017b73bd5948ed468cdb61cf8dac7fd93d6705332741e8bb584af29b9f0717344cf7e6caa4bb36bdcca48e17fdaac826f72e64deb0c6a47e21c7ac674eb2fd6b5c31df744e026e6a9b3fc57055582c78a6eff8ac0e1765575fdb81c1c7c74825fc5f010751b28b6ababd35594edbc37020f46f81d51b65bda585723e9a50ba845c6d3d3e570800bff0ac44c2fa0dd86deaf61e185bda3f404169ed345e0858a8dea9e7c900597018a22aaff4a6c80c4835d84d50c7c716be85c1cbb4ee976150229050945066ed17210dd244ccfa53240fdc2d6de12f56efd3265085868cce9917b7689284e849ca2a4d901140fc1bcc4051a90b6c76c65c2273412686066e1cc9fe7ad305dd54a4b55b52671545575a2c72065677ef8043811cbf8b9725bc16a67a14eaa9e71435e434bd4a9952bafd445adcc57e7dfb564d89a693bf192b6c59879f4b4ff687c124f5544f3506b1e359eea8dfffdff0ccf5589bd0fc19e435a5f17aec3d5017c643ce3fefd1620ed0602a4256cd7f95d063e66a20c0dff794d4c25d21d15766a92e7e1a466e5f5d56a3ec6cfc1c0fcfd191e61403ec839b4e2e692a860d7b0409f89a41b45513627e9d4596fb3ad4551206892546100708905cd4757f931c675d30ca2d1a0815007f1a377d50bf7ad26b18fe9096a005b5ec363ead8ae5c1f4a3871d8e8f6f97573501ffab52869e3356c361272ff42dbcacf179c36152895f41e41886fb6341638bc18edee7aa223ce70682260fa348306fe2dcdb71ac4f28297153a74c50d43924b18fea508c294e4e2e8230fe9c7c7b1cb238a3d7dd69a34fc2a40aefdfc4740fb446f25eb6595ba6d8eca6e91d4c09cd49fe48852e14873660526a8a820fe862bdd4e50d1f99d45bdafe928674da39f5af259be7ff928533525c0d50918a718203ff5fb7b558d5b03a07a7215415f34c525591241cdbfb08dcbcdc3d3ad58d981810b7b3fab7a67743b4683fbac0b441e9f4a2da7fa5c98d4ce5e9bb0524334dc9b9c2c86c66614ca83831fac1f0a86944ebb7f15b611a0367f6f87bb675d141f1ff3ef4f9a66ecc14cfdf66d2b0ce2f86f8d71c3c06542219b6c2706593d9a1f7e45f4ab1f21649bf890bdb9a8648140db50113caf4415c953911d15882c5814e672793f84ba2b9d4418c9bfc84e9f07e524abe07fddeda56151f46106bd341ba752bdc5a886e7902510b1e2f714b30bcfc57862816e9ff028410ad71f6c13b32c587f8bef1ca441b48ee438904142aec8a76e4a89370829ee2df056b51b0a41868d3af25aa772012a5a6b0c5c4384777f4104737a0c8d931a58a935676c398c7f2674f0fb869b25ed320f5de82f048e3fe8b78e1b42f9b690018aba8f425541492e438fb0a7be87ada2fa5ca78d9843a4dff89e3deff5dc10c204a30d008a70b111846b321d0a0391e272f2e24f5c87d87e147a32bcf095ad5393a1de3cb20dec07013875e368fb6faab2387f6ecf71678dbd4f93ba573350c90bd98908c070eb9b363a55dc2cd421fb13fc8cc3e8ba9c39c71b57ff844f4d611f625afed3d548d841cc95644077d935a743ac18ae41754ab73339f99142096674c969b6bbddbcd7f3da2f1a5dd091120ec13e8eda891f6fe5be6fbd8fadaccec88f7a5d780b28bcfc66f0ad1e528a47f1636ac636360ccef737b2c44ef1e891cfa9a27dfd482b4e9e0667da0972d3f3afc5eb7d89948e35afef8fd2f5b8ccdc0600c6418f6050c75c6424dac828eb1ef8bdb87c72100d901f881601256aa89f99efe0bd0683c288b2bd48f7ef7169dfcfce720815bcc17da37bc82a47b902237bc82206cac596c0e163620e96cfbcfa36b5a94232cf0a361493e32c01169d964f4fd81e759ea43f9d3b9c1eeec7f60ff1e1ed1c37234b121170f7bb633988cc603d260f086aee0168403c41d862a89f38f2b2ccccb65a646c05ccc4a19d4892d2be93a0ede9992b39fe71a211adce82134102e9ad29877a251b989392010b5a86f3649555c0787c281775554439cfa2c158fd9bdd4424f3b1cc873b34e8e825a271c55f2cf7207ca5c2f31db99b840447753092e170acc1ba0893f8b71a3de77ac1c2a3717a95e00147d188d6ed5a78620cb5914a3b7187db13a4855f2108c4b6de160ece987ef1e58434eee94b7c815a4224e3aad8db2165050ea197cd64f4d7bac2491087f2e99b6be636f0570d46ea7359f6149c3d909e49533949b00c2a05b9781ea8ddcd9afd82007f35b6799a40ac04ed5f823093811e3cfc4fa3ecb3d033d7014e189ccf3561ebefab91d07973310df5baa887a77a193d42623fc9cff3f772a5c41810387537ad6bcb15317d02f9c39c8bd0cf3e46a12d907b65f3db6fc3b14b09a00cd8304688e3a4f34624032de68a2ee05f579f724e2908b70c5b4bcd74ed56d83c407e63e97395e0d6005aad6f44f562f9d5151ba06ba51cdcfb2c3d937a17ce3c11a877a69fae165b17f48a3deaa605f9420d8089f0474032176bb024bf3df0518b23008d447ad2af064c8d8018dd1a17cd9658ceabfd11de55c2b79bb78993b32ca69040233ad4cfc8a6afff51d117b8b393afd5824f43b170ca56b05de87063a0384d691424e2a01e5c9f2aa19218cd7a4f6640167bcd943c6c851a387721967fca7032456545d0f82e3ffc582659448a8baecfb75a6aad7410b21c37b3a9aba7f8c61815e84abf6f3227ad1fcabd091bc8919bc6d61a90f4fa3edea701e9b7266e32096ff1c27f1cf82136ad684a9793706999eb289e86544afb9548112c9b008629cfb7ab82e0e4ccaba2e755ab15b6736772f00effe31960b484c7889caa4e9a34d3ab9ee4898c9978334792ad0c42ba0daa2a480769ed09a6bf3617cae87bbb7229c6e4442a9d94ef50ac28c2a3ebe0b414b55dc6b889a0ffca3e422ace9f6013f00aa885b27753ab4d11b58172ca94079ef1c20fdd537566041a3d94a13900defd4e118aa2a0f0f9f8c1c523e1a1f3865f0dd1f8dacf5372dda2aac560ce66ace0565ebc6599ed5d0103940819a55b050781fd5e57639031e6fe6bdc382b0fea2b67448abfd82e0d275384308598282a8dc7f05e4b181aa3a7b084dd8e4eb61b17201ee547b4f0743eb0f9c3e272f6f23bc5cfddc851493d4e1aac319839e3546cbea4c0f74cdcb1028a4a8ae1df232c05991f02cfa4b16724bb5b24832c21bec61b1e96c5d07315b84c1173544679fc28d228b62e4711fedcb108662f0f39182108fae351a3e5a99eada510f2330b5a2c44a42b7fc694d3ad4dbe8b7608cd33b4d6d2aaa33ff6a534234719a550a9911ff3c85222f909293ab87e8b048657742538a6eef4e418fa483364e56c3b6dc034d28763595b493b4d02a642c036b55505bce4398f60ffc9dd8075f5cdf2465ca64edf59694a11b4641d0bf1c3b90fe39d93a718b886e1eadac3166ad2aab6acede0b573cfcfca350b8cc1bbe50335421170f59cad2c7d679014638a9a323e4c491e98b585ee33d202d32d29d0bd2525c89580dab2b557fd08351d3f7d4b76ab93040c6557a4b7953ff595a7aa1ceb56307fb16c2c851aa22cc2d797b8931e8c697ae88e451150fab184760452f79234cba822efcce7fbf9b2762445b2e6f089a03d4580fb762b71e111acf6201a87308c60eb83d14506dfe5e9cc1fc8547b8b0dba244e5302f1e05604f094481b534f87b2384e4eb0b7e333743a9eb014c6539b82ee4eea906e1ed7253fdab83152abefccbcf98a1be4c592237e616b1015f5b0662e9dc5e4ac796d6a7f2899d0acf265756e316fd8fcfeb1e9dcaac1efa658e85dd19906f8e33146bf21c3500984e59669eb27ff1ee038fd6d5fdf56c2edb714c44665af628dfb58ea8b531ff626da29c59111e8bb1bd26e2da80a49ab5f22999f81687704df7ee3c4cd6445afb43bffc60da71c331e5d32d23d5a6130a8fe0eecd2ceaf644cd9b35a84e5bc8c9b05bf8faaa681e9292117ed8aa0d40eb5813c23fb05387a491b43b8d4ab81b6fc4ab7b32d50aa27fe99d27a0fd393b7d3375b7e9e4282cd6dca9f7117ef694519af0aba66eba40712f212dfa38c2cd5d680aea97cfaa726435d282c25cc8e7694ef2ee3e43ed79fed91613f388a397d050f6ae469698e397fc215b533c244b38456bbd07617ebfca58ad5672e3063ef676ce8c60c0e1b0224d9d56eda36a46f034687e830c7cabcc02996a34702f003e0733129d12d78c206f6351f24f0a1212ab5188db8a3ad5ccc6d2d33232ce5ab5dd3d0e3554c69d589635d688b9bb7d230ad62857b85348cca88aa4a75fbb6246a91fc64d8b6afc6e9dc97765e481c0eb1ccd32d4c4a9617226094c1716189c136820b54c6fb7e635a11f0ac4deb8c2de6c2b44c9452dc3a2e11acde6075006c56d43bbdaa6e01b554279a5ad8dda44622d5d6a3f1032f70a9697fe9f7f1a03e4b85c97f21a5ec16e3372ec3e158c63a955f92999846320b226bcb6bdab3c0da1bea54f858fd25dc6cceb203f8fe92abf14f15934a0872335fcdae4c9c3c075c362a9921ef1477337f6c779ebd53f4d571a401da06bbde0f1d79ac2fb8347e0b01c172a5a44d523e5505bfb7753eb4953cf65b27ded25935cf107ec130e431349bfe3598754fa78b6d833a4dea8ca51331edc92d7a4852aa2862b6dcfeba61bb7a8555d82486c7684f4153f2c26d5ce0adc720bdfb1a711101f733b001c9405ec5cd584c2ca15ababe9145dbe9f5767dfed64359cbc855cdce896351e14646b77ea222795112634f01380b41cc9c7597b800535ed9d8622f56885264370c0e6de6a4872ad39152e084ed15681abf2372783e290c94539a035e9591c35c19c92cacc73428429a2e2c29ddd9d32a1d90491a1d2b138b478a0b3207e7516e0f3e52f1d2e5309ceac4e5ad2a28714b5a95a9c440657c5143493a7c69d15f76b4595f6ae0ebb52d05f062486759c11a7ff2fdd5dbfa06b0de82c385fad94e2b724fa554e1031114b3eb3f311e48507a78f3dc0d3ae454a330944f412bb75c5fd749c15e1a7d2ef77fb9680e4a1bffca95a9ce1838fd80f256b8e697253fc01016abce14a1afe5b637953a7adde0edea09b492fbc863f863f3446552402a820485dd70dbe2c279556f79af8c3bf80ddc6e9826b97026b1b7aaf68aa18da5bbf91db416071dc4fc5dfeb3c537bd4ca7113fab0ef5c9421897a54df7b64eb524cefd5a1927e50c8f627e8a957c30605a225d88a34101f4509c11faa41978671c60e7d7982ea2f9b4f3d0eec6fa532569038b1b664058519f6b9f58b66038d69495c21a38bf10f03c9f964359205caa5001f2389cb8a63c189b05ffa4c76bfa8cb2169e1a7cbeb56f1ab830ef4b7493fd609ec5b74ed4a0f0cd7b58269f244e02159397c5f5901685b8e0871088366525f4fe6f4a955e0006fa3f5257f62a3f847f8ab8c6713edb96b3fd381422349f8ef268f887c6d8537a47111801f87771d356727e428bd20f8c9bc456a44372a651199209999366387d5bb7e00860bad1369a6513cc6b2e9ab6732a2b0ee2e97f5c681aa1401d426e9c287aca5c1dd67770e9a0be282684201da5eb5bd0ca055bc3d50008965739a73590a8c7efac61597c9e06e5e08edc3fabf0071f195128eca7f5275bd5d02ea5e339109b96fa26cc82dc9e99c0c89112c2f93f7f26242597c1e4d7a3881196a8000789e4d79ca3d8a87811bea99dd406e3d69cb0ba22c569d0ba3e808b92fb2e98716b3d01118c5ca8cc2db359a628056f53e974169446e68469ea5bab937a0162f71465133546fd59d664990436e4e6b33234902b0bd69da6335038e6f34493a06a647d579d6cea9a824d21e8f8b43cc2d1514df95c1c9b83d749058a8a20b0fca34157af8b4e7038a522ec37371965c5fa5712457fb09cf21e9089b666e77ab89914cff23e6d5acbea417c05b8e4f2d799210521d99e1f72c645db03c907bcd3514b39ec080126ad04acb50552bf638e48cdbff28ae8392e946d684fa10180fb7dd5dec5197304716a89ee5552a426b2524115ec770145f7066f8ff1d8ec055fd1a989fa37e3ad8a4fa28fa20363f2e6eba1e527675258733c98c7ddb7effdc3493f211baca3030dd7e54451ca216c34cbda02dd66b893148d98596f41ca1774b61557fb7fb982aa22e5bd907cd41dae461b2559b8043a9ee303a8e47b4ee1ddc02b6317d16186619557fe6fd7c8bcb35656efb5ef7a9b4205d207cb33e0f4029c87d0445e895a7e85963e5f341cc0839dc4037a9e53d0a3d6df28ddf2fb770d49b25900a9541edda4205cbcec46471aad5e2898d43b4341296c0e1690abe9a6103ad5eafa9876959917da4c2b8b50964a657b7effd30b1cc49d97faf41241ea692e3247605f107a9cc171c745883f9f5bdab7273330199c29f9975b72e65b0b09a5848b306af315760933cf1aacb3847f068a60b55a2c0014ed7f1245f1bc0d393722570ea9a411defb34025bbbae1213f4f3b2b7cea2e2c049957ab9909a24f582ce5f60c4182a144bd6fd154c0b5483f2c1a988fd109debc1bba8b2353d966fa6f7272595762385cf8d7a5e4c43bd60140f5e29cbac94c56dcda338e5ad3cd5ca0290abaca96171014be15a7a867999b1d980201088b95249831f17bbb4fd2595a8942acac410d67e66fca1e820d49ee4a752981a9bc24fb6ed7b846327d4ebb561cc6a6634074d8922a6558031f8fe0c3c3b51299ff02ef77c0b3fa08744735ce375b42bc1cb3288bb96077db080294c59f3b6f2b861c7b599e18cc6f156e9bdab29fd786269258608b416eec592aa0c9872721df33f0a7ccdab10405b706c949e80e0dee0fad9b0ab84dd36707c25764a1327c78854703b7b57740b21a5ae9bb14147a648185ad8d2a8bc8f7a11bdfa709ea50100cad9c827868039e65e4116a9e8c0492c90f5f5877ac682c34065cabe31c44e1427495a52125670c26f0348e4977bf6b61698a191379370d39bce5eae31362971cc390ddd262568c0ec73fb39c7760f8fd4bd9ae3568f0dc3ca39f2a5b9337d3c7f516105abeb71ac69ddfde44105ac88fff4419febe7df712686032c3c7c2b71cad3bcec047bea3270669d8045f31628e7b51ea43713c30cf33bd62b45448809418de3b07443cb4e4c153215d4ad4df41e5e5ab0cfd569e4f427f14990eadcf9eae385148a291c0888be94348b988399b0464311f38ed393595ba048e5e4e4fa6659b0b776f87c82b0a6a12692579fdb7f40cce3f888da762f08717c6c3150248b125ae03eda9b5b3e59ba257133bb584a3d0ae5f404a970e5bfb8506dbd46578ee7d9d20a9dc059bbd743abe3e4a71bed8eb8d2f5ba40028d0e0cdca89edd7804176bba1a73436a7fcd26ccf70663fed9f1b45b7f92f2b0d84ac884c2b0a37c37f5b0211f4914f09ee551a50c26a8dce68a7fa02169e7bc10b88bb56824183fa7d82afbf7c43362e4b933d881e26096e01bc14350d79b2778c4b8a12fd23030ba13c4391c7d353aef1243172ae62ae28bf5c40adb055d0adc43f71950afd5cde80248f92bffc632d25a79c2d27bd7effd98f40daad0d13c4703b270bc9663eeed15e7366fca21d6ca34d3937270f0da768d65799fa56f4b14f8996e3db52bdbc541b61943799a5cec25d25bd1852ded27ab4dddc0c801bed7991f57894bf03a86782bcbb7f215dbd71bfacdba26ffb08ffe850e0ae929aedcabfafc86256ccc589ba4dfe0a38bc1db67555d0e3d07d455730c978b3bd8ad2dd8a7e62e1accf022dae04e9a6e8ca91476f1283e029dd9d0a884b6b6a4d8fd6303e382bc233006a49b83fcc331b87469215df80e634a9d9fadb3f2f8d14414b72d336d21242d9214d897d0358d45bb7c063048ab174ea500e3043809880b73060b5dc2ec354a3c90470660eec97c8aeda082665be11b45d1f3038a88d470ced738ed84187e8698d4e421253e9d3c73814f719f7477d78f5e9ee543d8438c83831eb1116fcfd0c11e0c1c48f1d376e811959e79518dde1a720bfde847b6cb5e09113da47a148ec431ed8ff7b9d0afed560dad0265033e9044904885fcf16bb2474968eb306117d9cf1ef6505d2f8115e995c92bbbc53a114004e29d339900bd8e98cdadccc1396e30e132d964cc1ad0141d1d367812c868bc468fb1c3bef35fca8c4b7e8758b3033d04078556e7bb0959615c2f29e3130e1f2c3349fcecfe25bce286802520bcd49e759c51b5133a19abad3a7ef7fbf9f608cd5a984715b199ffb9633d85b57b52e731fe6c4c3380fed947f07e11b48d3a7c1db1ad2f89f1ebd2fb9087a5de8c6e5db39cee86c20cf1aad7bc2fdae2968323c58b33a9cf73eaddcafa6fd32181b53900cc1fd6556f3e89865eedb17d0f53256d5dc0c5e34546719f544af2a35f395b2945546845ce78e3f89d3f6a5aa5122d1b42b72f2c462af8e897c10fb11d4cbf61a352b22a63f58f8bc0b5b63a3cf793bc77b81145a92196aa7cfcb5c6280a46d6e74c8d01fc9ad27016d32cbd6ab3d3b7e0a14b88764e2b8e04d2adb3e2b48d14f468eb747b00de616e0ba510fbf9ac35821f171a09f03856f10d23651eddee1e13d9641d54dbe99a9fcf0e4f6bd0abd607cc7d229139606c4ac55c45a65de34270841f3e12be38c102aa09356fb1f3b43de142c692787587dbba7ba4b62562669a3fd3dad226a723f36ad5836c7f7de597782264648b6109b2d3f07f7ed3f9c70795ecd7c6dd9d7f53656bbbfe463127aa5b8895b1a74bc2a39b9d21a31eb41c8e1d1034b3a3811509bbd20273d18511b1642074fb70c53bc5d9d07bbe120c8eeb6880507330fa607cb901054e0790df0a6fe2af145ff38bf33491dbdb1981593e7628ac7481aa3a1b46de40c422ace7b7d77b13a374ebf54de8e786fcd690ba8cbc4c6b38783482d55a2fcb42b22aebde8d382fa645c449b4871d2194d021573dc32484d3c8a1b0a19291c9e56aabac49b3cd04eb4d0e0c51d41a3b0deba89d9c4adf6e70388cdcf8c5c0fd00cb0fa7e7cca7b89597b1e90ea15f4a42b393635b04d3c5cc2b9fca56b7c8909a8c2f5249839e7f9db169e21bc7415d0579c1990cdcdd58b9854c9ebccfeeedede7b81d26f32f3a4ff659e16b2a66479a39151ca8cf34d59dd5ce9f31eb66e5e8a5e62dd78da570c921743034cea5ad3a5a6a780c582649f0d5d2553c35257fae02f6f0db89c4ad7f38ab5073f9d04c9232760877619179c23a62e26c155fde156086d755e3eb87babd2c46666b0213416760e10ed4123532d0e92bd02b8d5628c84cd589ecc102143a1a5510a074275d141ceb59ac2b8ff8e874dc7f5d005ba63fc5d2636ed355fd117d80b8240bc9efc7cbe8c3a3e133dc1c78aa12f15b4280e8cbe3ef58c68e39ac6eda6afc0100724cba5a1d699cd23c57c5af25bb86ef5ff447eae20302f860e8aed97414757b5843b2e91b6941f58a3583ccda5ae5511b67524710ffeea65de52276ebc8b197858fbe7ad526d076ccb541355586ef5645a98260f3723017f017f6c224798476d28f9d21482401331b358654416772579eea4a0a2b1179422cb1571a3b2cf4468b2971e7d35aa97624be6819490712439e548e5bf994dd36f9540eb48f451e56f2a275c2ba43e42eaaa71ca6a0ccdbccee0cdb09c2d3c6c793205cad43492447ba4dc92aa77046d302837e127a06fca3ee07f230925de5970901ed1dbfb05ddc8c018f6f24b49a8d955a01a09089e85330ab865396adc864bf59c9d22ecf3f108566f54e22daeb2f6140954da05c92bffb3f6076a1eafb2eecfa86adfec5add8b60fed5a75f0dc1f792c6133eb74704bc9354772a837ca931d6832736289a2d3a3659763551f927c802b6a6fb68275b2c93468fc46940c70b06eaa0bd3f46648c560b877de11ac6a32dd81b5c9cd42325d001770394da3ad5a0c68cf8befc55c0814b50a91ee17a0dc4216c6f3212a339d291b18e3fc7cefa2a5ec8608a1f0194d07e976d1dfb5ffdfddbc2883cbd0d0d391f090c91b4daa638c502c90b504e1e9615c62672c1853311e9388d1a385b0fdbca5e01821541a4ed6ab54a7b2663b24e52483ffdfdcf6db20cef9b32d9c624ff4410c1b33db70668353649a5b6287bcb6fbdfa803649c7cbe134108c25e24ae38dd45c667458682f42456f725c3dd5ffbd1f05866e419c4e976ee31cc69383505d4492e95d857ceb159eb13be56b134416ef266f520a0fa5d31bf93168233b4e1c0240fb29f9a4a819d8e839b8b1553ba5c570ea54093779d74421627388c2cc5256745c608b749cd6012a3a59d4d4847bc7ff1e88ab22940ec2ea9abea735448efbe536b2093f45aa1b712e802429451b2c892bc0a311192cb2fbbf6f97f17a83b0adfdc8cabc550a39734570abe2c768f93da3b5adfc5818031c48b3ef214980f3a3399aa1d0c8d54a0afa4dee3f8ffee1b94cb188defde655fbabb14801de5e2c6be916c6f6d4c54d0ee235f1955325bd3f2d1cd56cbe80e159c518f4fb8e72e0c91ebe1136020d944a1be80cc9463408006ff39abad2c06ffeb4ea382a1c6689be34f83e5b035eff83bf928d279e7388d4a25597179b419882cb85e104689117a8ecca911fdeac8ca7307b5cebcc9fbcc19a296de29858e7967717cdc4afac5498f44d13a3ab71b79c3f09e0b8b5878763356f63a4b6dd565ab2ae7f5025a788c897088e92f60c3cfecc4f259067fe8433d2e340780239b0e885cfda4fbe03d92436f30bef880252870e08525c2efe36e3e3b1cb7ffb44d789354a87a72125a2126e6ed3784600fb7174122a9471fbeba245b9d780f4471c6e55198e1dade7194c0b16d4f171808df6bea1748920eb9dd3d71584e90165e4d9cb137cb5a9610fe43265f96c80951e33b5ae66d94e5d660be2eae1a73f4417f592b27f24cabe8db06e0c50604a70ee51c0df0f8b05d547d406b8d163dd67e7bc11d55d4c0447a070324852f09875309e3126a2141fc15963d0d849589e3c010fcea01f7f6a009dd58d0c6f56ccd07042cb3f901121d92aa9882d4e683c165f33965433fe8470f05c6dc1fb593e0e608d721b263e4cc018812c991996d310fc3284bd929be0d8ce7356b94223c700d5185436433eb73e28cd60604681dff7a3b7ed4647557e5ea932e68ddf8f5cbd1f81f8272125150128aeeb2d7947d3ffa95754e5562c7825ad35fbb911ea189e0f650b19ac9b2c011accb4dd9920adf21b249c81b04d3cdc82e1b0815a9f97bd752060368009f5e335ec1a93f6656808e15bccf773f7724eaecd7fd6dd908f9d88ef50b3f801be9c4c888c3c64c87aad533923deff9606df66fae3866f2ae70d16c13d8357621ff7ae2bc2a1de0d547feb81612c3ae73fa05e6deb195911f5369d51d0f2a9b1caaa90c5efa65140f741ac29461f315443b38f249c03b076147ddab1129c7e56cb813d95261d12a179bdc08dd5024caa03f0ed0f5a80703d1b136c7b2b26e6ee8e75ae7dfba8dee61e74108c62176e2030aa3758cbf32ce9f8a9e1e08a2347957e05abf323793587900ac09a84fa24522b2ab64dd168e354d84c473ddba612ef6fdf82cdb130c057a1904dbe2bbef136357692d59c165383482946b40032e66f5eb32e94d645bbb974fc1a753eacfe560e3f62197a15b8bfe5eb4120648a510f90e764b626a04a89558ec0fe04d37c5689c9c5bd0ca9b002d03844044b1e72e9cbf8955d67ef4cd4f817a21f4a402b8fe8713ff63710cf193cb9928d6663807e95496abc789f1a231fc9949fb65fb69589de29f536b5bd4d83ff5afdc448c39e0fe12f13c0b2fc1be7fc9ace63b4d05e1c73fbec4400b50f81862c838a08a9ef870a4929bb34b160b35d595aa927e90b7b91e9e81cce127c297c529111b3267985c363c308c39fe41f612d5c0333e392d8e5721796c5aa45a2b503e528993c79cbbd919adafd2461edd77faa7f297cb4b3c0fe23ec2fd35b767cdfb2be55493d6ea3189a4921c2f7521614e5e69623549d9cb858403c156264c8cb18f53ee968b947a100fdc7b13a9472a4eeac4f75d18abde24a8daceecc5d99987b538d324f26a7047c9cd5a9e369fea3ad6a18bcad90a0ead27d75bbc09fa4789985cf941b9b2a6dd133d04032911f4f9aef8af7f6317a959226e68c838b53a9a771f70197f9d1311101bb5fea33eed1f831adb50c1376fb6e18a92dcf0b875a255bef9e25b74ddb6488d261a59efa0806abd0057b26df5254caf58dc9e2e24937aa7d8345492b26f299612ec17d0dc06fd1890972878738f74a470de08e214a3f0de42cde62e36c0814d75eb3881f9e8d81269fdc9c522ab08bb138dc4b7244706732d3c83f84b8d06a98cb630f5e5871d7b9aa57137995fe09b62bebe7311f8d100627a107f4cebced4d891031fd067f158fb29aeb2c9c576a842bab6cf6ecca6481067646e6c46d71b9f48cbf0c4bafc46f103438494b468eb562dbfe1b74aa2d24d59cc98e0a98060b18635aae1e6eddff559a5921128f898f65ac2d2b69c22a3356f8ad188520e257c390477f04af43aad8a8160fe738c1f43baf9e4bc7a4bff990851972bc928249d848d5d8a4546789f9034dff9f32ec8bfcc74ca64ba83417ae7cb8e8c775c79845c3a7d182c9d5de7e9511178d70ce70ca7974bd969f6bdaec413cde70a9859e2e7079d4e70b50268071f7d97baf99ba8569a3ddac512b77cc33bf29bfdb15be35e080af9abd08d5b67196f42f8eb22d70908c9f9250b620413c8130d51df507d3de1c537ac33004d676c0c46057bb414a14000cc2f58fbba3831770ad83fad4e444c0581dea712cf897c3549af68f6b21bf8c5023f34eb62f3631c41715080d2f197fe04b3f92182645f38cdcd14fc8323b503b0f51efa33624018853877fdead323084da17a2b3bab6053a2ce05d7b4d553302855599525201bbffb047b940450e606307d7fd95dd57e077a8a65b739c983263f956d238d4f3d9f7081099a5346ea2c76b3e29fbbaaea3a81f9839c6d3d484bd92ca4688226644b5fcb3180ee42cc07c6d67fe8899d8c2b2cb35095c74d79040b248efbbb683ff57bcce79ec6c53edfb49eb84f41377f319e9fe390c701437f40d57dc9d55ff3d7c471838cc1888563141cf2f07706915157e4f6be7c12a4c627b809ab334f9972667a41067591fbabd76e16c3086cc49f11e166804749f12957ae8e08f214bd92fcd7c268474a8e8529bb11051a5ed071f804b6e7b86d51f3e98ea98e96a5e02efa8089b8f6d43f118e7454bad4b79e61a35f8dc9b1d23f6e8d5bbff27254f81042257f3ac846a5b229575437dff4ce1f7f14335d23b50b3eb89e76c7eb66eb503a6c709ce284674e87900bbeec4732168e42186d13c95a0406f03a611545179fe4428cad9405c6d877aa752af4d351daaa854e17c683a257f180b9ca58b6cd5ec547e7a68ad11034e5c314afdf6fe56fb6f10a1e2fecaf0966e168c912fdd190a391f90334be2e5fb2846da1c7c45d5b5c4b27c80cfd21bee5e0fbf15e50dc8d6be51eebdb0017f4020389560ac75c84564da2514eeeebd0388ef0cc80271a91beee162636e85af68381750fd38238e85afc1feca70dd68ce5dc050b9d06ad12f93586aa62c099f18f87c2f5e1f47c1c1d67624f7628fcb1e764bec9b40028f2b95d76b2a9a3086848550528a73066a10db3d7d953eb4d4c6206e1e714ef147134a9d2647240f290fe1e58d602656904c1010c4101060dda45f8f969ab726efdd6ebe90d366b346785ccd76e3c69add2288e31d2835454c224eed6eef42f27cc10caf1e771a9c007473225da025c8a5b085c9f429bc88d1bb08e0a34745aa34340a28173d9c01c6037dbe4c7878611434ff74e10f150f7c196696eaae5903b36148c14604bbce12cfe83400b082683e4430c5d72a38527bec0f89b1aa13fbbece99b8d044bc63c48f258650753f6d784a7148ed90d7484fb20fe7259db3ae400f2feae6700af6f48c0e1042c235838553ef1c700f17dca4e97bc950cba06eb0726949fd800f2516ed646d38159b68545650a928d5ce288cc9c1feb7e6b4ff80c595d6e176296cae3ef450a476e5dd0a69f7d9d40fc30a26fb4e22085b467a8dbec82890dda51594a59bce69ba850e09d46f13bb6aa9acf0fda2e2272a6408c1af6ab4516eded8e99c826293fefc8af65c4e2e2b66bcc1ba869f1a51b6f31a835d91b5bd76c0c8f4de2d7985a44f1eb6105a7ab1730c467ed3865a0ee7412f418aa5d65a9c90e97e5c5ef7c5f3e25790109e0d52a05d9e434dde3ce1331a3dfbad8446690f81173b23b5022f30f6eee70bcdd43c091029caa571a2ea479eec776f4b13fc4efa603f55de25bebf03a141d893bf9b50246e9d7a12984ed2d65823790d93bc9fb2dbf4cd783fc5afa596c05410fa218c910fc79d410d5c676b3d87191c284186f812f7610db5faec706a6de52290dd4cb3357a8e2fbeff40ce906ef7350ab586eea7259e722e1d76e7c2a057039abf3ee23534b23b7df9e37693c674c752426db30b868c9b7628ca1d8923f0e261373121f9be2229578d2743b20ec9316c76b9ff5c84e4bd1c88f09462e516f887f9eead6af9b7789d318fec14a2306c7514bdb6c7bed975c7c1132547e5c180a4c03544d63b89118c91a9b8fc6501cb7e195b7fb3fac505deb18901bbc15e3537ef004a05d45c2017b5574129531ef247bd4de339516b99306027c4c50c5125a3987be9b9a20f235cbded70d2ba6892388e0de2492ca4768c2092e90591a1714495b5f11e94fc3c2e0392269f22cf6c8540cf50162b7f64599ea0fb32bcde6199ba379116ea716d7a63b3daec62c91b18fdb06a9c1abec9d0889f5e7cb111c34c2fa4e6521c02feb4cff66ae780f6a4ecd4bc9ad80345ac80fb00e1475da3ca773af53d64d3ef163c4ea32284b2cbda306ad582a06cba3d7b4dda37b17ead8e509a59b171168ebbd46c3f6f57a82d0f3160ac3bccc53333c801ff057d3b6676002c4d26ee20b376acdd11540b043bd513e2147c7e0ec8ac800ffa9d6811c105d7ffaa28c07b7560c9817dc6a8e2ef03ea1ec493f630c733e457e0dc42adfc31cc8cca95e1c3c98b5ab92dbfb28b96a45c8ba44150bef5d0f652479a88efd5816c6755f079089b00f4b92fd7e880b0ff81fd72d86a2565a63f819f0729fd38abb8897919226d08b25861bba872aca80e175c21d7584982fcb9b5513e2040d0d0fbf7b536f78f98b9ea95d27477fb064b180fb324225fc7c3b70d863bd97671a4e41e485326f6eafcdc736d3d36afb08675757f6718969f60f9cfadf98e7452913896b58a7cc2d5aeb39c8982cc6a3c04ff6e9c1deca6718dfc8c74d4db711b0a2357566bda332bb2d191be433dd687b6ebd7eec1b966bedd7a16bc4877d6e238687ae5176db2a0839c5d4155df2aa6449f2a0bb28af75be3c58ae46d3e43b9834e51efc8eaf7d098e62fbf889b91593293a345e8f6901c94e238180474a68b34b5ac8c3422fa2b03257ca7ca2da1a1390249d71922f4354a8ba9af9974393d1c612d86131c0c5b2cdce9624c5713cd6029e79d319feb6bf93db234f97148090b5e2664f2298c261d336c4df8a9127515b7ee9c1a5e7fe6467c67346623958242ebdc9d11a43663d2fc3c83bbdbc9ed26ffa668cad9211674fc1dcca4edfbd229b407210fe2108f70aec41220a6c34dd47302f5775b6b8c8379588286b6aaead0f275fd6b8e56fe1f0ed1895b48ed50d0b9f3ab394a25f64ba0f6516d2f1342800d51ce1cc170c078d43b71afe02245981acc50c1eb8319f0d80206158bdecde98d155dfe9937860bd324bcc081ca1a94a1f693295ec88f1f13e364921ce534eef43f380240855e576421c383e26a828eba3c276a949ac9e85210be67656edf0757bcd3a467a6b7142beef89dbdc38bc6849ad2ef66cde35b7061a20dc3b34bf6d6bec9fa2c126b8b9347dab1fee91837d050a8ee207bcb6c8503014ae995dcb8b285872d90859c079f8f24ebc819b5c52301825185fea72f662baf1d23eeba2ac6c79cdee4e52a275a08a1597ae21bc4b045e80edcf1507de2620a6e42d0e603a170a0c2de8468271892d449c02df62b22321ad90434005b38931e7fd1bd994ddaa954b56fd0501b35129b860fd56b9e8116fa4b3be5f2aa8fca26ed0f5427a2cca89afc509009da15bf40d959380dc6cb5b5defad44c3935f59978f358f90c4fc3d6c5425b9dbd264e022cd8ae40a51edceb91743001d50a6c49d769180302fa0220af7396e4621a96a8a34ba9b43420b6495ced1026f4965e9e2d37ba32bdb59a7cec0c3471b3eee2129a68d64ccf2e57915d0dc4f2c7f54efc227cf968b321c0c7f417feb9e219a4472bf8fab6108137e700c7325b300cbf09a2f944a7e2c74f81f3eb95a72973943c79becc98c20eb33af9c6558e1752bb8c740b3ef2491f453e53beed7acbd42dfbd85b791ae0a58a3e3243b9c44e844f57ce223e048b8f44a9f502cc0361da2fd5cf232341905760f1b7bc015fc60e0c449989cdcf1fa312133b2e5027e47f1ba9d22d5d1921973eb6d60662543b81884294bf2ad2cd1819933bcd66b635bbba36f9afb1b14ddc10fdf52b25f1b3c9db739712c9354130e8b7d352549417e7978317c81ae558b9267bef9628e5654123578f2bcfc4f960b0c7666a302dd5fb804fef338af5c61cb3f3e43d5ea2dfd10006012a98abf3a5c790781b663c141f09996b1d65f6bfe55190d6694b0b8f9918812990320bb6ab29ca808b35e387090832180c040765097bc97b1c8871ff7f940c0ab2df5bb179f2039ab5330f801e1a644741345da24612df200445e4681ba19cf391979f17a3e527ee01c5308fd61da59740b41f48cdd9e08a63c2ce6a22f1516315836498a6e8890241a841c04bb45bcb0aba10744cf9462452d5e60b66370642458397aae7868845316b1b174bc7b3249d6f0896937e1af43e676b59f9aee8d8dca9264e976bbd7f5ff21d554c0083b79b6e3f9950d7ad21aff7b23fbd932a0dc3bc736ff5ecbd0ae5f5253c164e3d63a94969fc7c5ae506c7150a7600a6bbb429b696568f7d6bef407ed3c9a266f966d4049fe2babd0f134be8e19744ae1616f74770cc8238d44d4b6f20250c3d85c1aa9819673a9e4e006ca94ec582f21de5cd4f8cdf585da3b00cfa4638e88f8acffd72bcbdbefd8e1de026d6647bc0074f8067d472becc212e1527f8307e5bc3d918f16fea01bd11af81408ee0b5e95ae7fa5912003c8dc678c951e260ae653e8532eb4b19052684a7e86d8b78d643fb87bca4423811485741fea987383ab3b3572d2892e1d266a83b3c369f84d9264676c0f9b66b84cd988c24b264565711e9c14fe678fdd70b8e12c7ba66bf94f03e5f58c008e4488e8fde3bc366e41d8d26627854c5403e8a5a14af2aa9749881cbfcd394db991a20505db988b2bd6ffbba70771736d8a4bca119904b06ad2bbf0076fcc36ff050be5f4d9581ba166b729088a2c7bd1b285c4efd9ef7f4b0a7147fcc59cf0461f5c6a489ba82a5a158ccd03d6c738d7dea8a1ad3689c117de8ebdee8f0ef0b40de39e7d8253205694a2a9a34c519ef5f374b984438bbbc01e1362d18a98f2a06693fe1421d8cdcda4d6ec3a9502ff0dbe706ca56a96a0948a3eb770cd0cb0cc7b2a1dfc60960f6bd28c0b09f021ddcc2e8084b1afad3fbd555826ab243f807c0984df215a8d38b0b160a382192c08664a001080835b317eca079fa6da11c8d285ed6ac3277db3ae7dc7c954c46e966e47985870c68db3e7617d023907a716bae8ff2761886c44c2fe908701809dc80270b8dc283b9b3dfc9008eb517f6e6e247a0fa6ccc03ad4c5fc2e7ed0457d220a521f38ca752b2738bb13a2e0f789e8645c66dd0793f0ceebe5a12d92a977765a481f98d32c5e74d555362a819df6eefcdd26d087c1826431736c9d35aa36c9ab04ac3c839c873b9f99317d700a9633e2d194032783898436854109d3eccc6624ec3d8b47ee60d687a366f1256d73a6fa2fed041e8d3d1a258222d65ae718db33bc5a5e6bbfe7c300fe9027478bde77a94762cb2b91795f6596e2c32ac5b3e9ec422fa47ae44211dd6146e0392f90f4a598205c6e1dc7b2dbb865b54b75c4aebf6248be0dcc76aca0695d4f25dba8d77f8c6325809b570552332ceea696a9584beb1702e61636015c36458ebc91bf0e2936e2c3cb2e533b22e29dc779245f7af34c0a50e32601a1adf5ba469c4d4fb1260d6922e7871d6232815a0853bffbe19ac808b35b30147823a04652acaa8256856fda7554fe143dd18dd795a53242aaf430565378baaa923856acda60410171f0b43cf51e219b56aa8378abde51df0480a47dc20024694ee888e10a10b51302351c916de712b3b08870d3acb1960b825fd1a7c9f6a28732c53c0e7c09bd704b195b6a800d8b438485c35b6d965569f346b0934ba57a7440ed7c81040d4ebd9c81daa5acb9024e50974776a6dab97b62f8701da19a140178be335cba6cd0d28718fee20aceadccebfa3948c3d2dd181863292a5e17745928e86825e989b2122c9705a954dc002510622419148910378184ba8b1170ea57077371e93af0b4829eb865976075e88228a4aa1b6f8602189bf05d27f9d92a0fde56286356bb3b8529f3e4d27df74d8ca3e88db7858b9da94aa1fae72b883e89cda31bf962a1f32eadd884d2c183d5f23e5dfbf1c571d66ee87f07c522a9ae14124a6790c3a349dee21d556b1542a12dee1d45a281d9c62df7fa7c0cdd9ce95f81e661e70ef1751918b131d0346d300fd63a286e870bd8324ff3c79f10a3d245cc2d1c59dd62dfdbad2e80e15edeeeb59db0233ea2ae6936d51e3cfb427e35820003bdff7edfe9e83097e8ffc6a89d91dbfff2882ba267ee00b00f56c1884738a725beae1f21b12bb2e96107361d29f49a4838547baa57c9447f88a572c2b0bf35a612f45be4cb86590d38158e3266a30a4a8029494183d17ac59371592146a48f02dd311b19e7037fe567d2df5384efa12fd6c0838fcc8e9492adb2860fcb38cfd9efeb43024941ccc22b5989d76212386384f06dc7f43ff4469827b2d16a754d0fd10a53377f7b2a4eb67e38512e1fa2a1bf436d5531b414f0a52d8392fce4977edfedddd5000cd2b410f7d2a5029236d715b027ace220bf3f59a7026bd88aa507210572dc8b6f270380c769bf56a15ed75a41a17191db0add8bf583edb63c7e8ec2997b6095add3102d307cd04c89dc60bbdf0f356b3f2d9caca064f78dd872822ad20719a68fcec16f908781ec35a278bda3d67f8708c6a1b67d81037d1e3d3aac8fd93773cf1c3e294788a30373e351a5e7afbab5aa874c7728d1fc37c685864bd3982a553132e1b91fa27525f1345cc4b68a39fef698a6882c9829c3fb9ebbc3a67c7ff1dee7a28f1523aef10f460016989fe03e963e5a38196c69bf80bfaf4731a245cb1be244d87eb91a5accf1ec06ba4ad03d81e616411dea3b029a8e4aff96eaa5215f8f27448549675b4eac6036245b7a0d696456964f2389dd86d106eb47eea3cf0c2ecd53cbe8628685bca389d3afc29dcbee1f32106d2af794b44ca95eb2e3e3f761bcd07804a0e438f8961fb17bc3aeaf8f59d45b241bd0fc95794b75cc9666b231da12494d174b8c46a9d5cb32976339eeea20a72c9dd12803123a9f86e447e0c87144117057b168e400c71a90f71917dee25b02792ae9d9e15789ceda471702718f291cc472109560048d0d8847b1b55a93e4b95b419d764440dfeed3cf68c9ebbfc989a86b9d1d6c8ee78e4b03c745a0ed7eae3d1e68ca8e869c3ace18aac525bed960ad918e99e38f76bb2a05270b6c2a3081e3c96795456d56563b3119c538268cfcab12c6d9314c914f02a680c046cc1a1b5ae48bee598c30f50f4d55969cf15d82c9fd56c6a3e54948ae47245d7cac058fe96b5afec51d5fc34c564f58e374367a79b29df31fb9fd236250b4a31a52bb2b0ec713391e7846dd3f110c67218be7955ee7fd5c7898c6fea1b10a80c81ccd3679a09910b03dbd878cd735cf61acc32749be8415f09c14860f3098ed52e432e2476adc8295fc4376e1f7d0bb1e56d8ce564f17d01b0ff4f9906fcf3eb23b01fcac97737cce6e25e881fe4256e9f55c9b05ada9709515ada5725998325a580eda26b898f6a23f45c9a820b15ac413b9d7efb9b4ea6330166a1e80b6449c1a56ad86681f08dfb26bdfd96aa3e1dbb782b1de5608f5c39a6114317c5a1961bc03efb33113b52c1fa5d0f71cd4627e2174f001555398354aea54b1a02c73b860a0a8181af90eb908146b127fe9b6637bc1abdb8ece6c54eab1c8d81fd5ddd6c0d91418cab4e1dff1f85c720a963287812228d8e047ea4dfd70d2098fb81150f65b2f70723bac31724acbb6d0ecdef00b0e9cfd57d52f2129039df08a558f08a2428c3979c0049accdf1fb375289f3ff8bcd85cf37b956ffffbce99261496db79ffdaad6482731f2a152773d7ea79e777cc9d5ce8803cecc821f22cea40c02cfa53114f02b0192712456245d865b0e1161d289d998fd280b6c81b0ff5e3918ea76344cc8b14a94434f3f7b33a24796bee5d990d83f34875835b17efe03cb8a49fecf04b56e97f5a06483fac68db73d2e072a7b584979e4574ad1bc27da362a711b90cec50ed587c0f35aa24483dd3d0cc38000da3f578bf7ec855d63830b3d1204f0a39cb5c4af052b2277ccff8885159e377bb221689a07ec579738f2c1fac5086960d650f2e87ed106044ea5ff38fae9cd687ca1cc8520261667f23c5b0e9846fe44039f5f3eb48133d474cb982c10f55fea17d45395d912850ad400a31a610f08742fed4ed4c5ff40faa4917c6cd58df0483b6e3d644fcc98855d477233f112d178fbcc575edac4378a07846fb64284ed6a93f3e262fa52cb1fa01f1b620a930ebb444536a7dd19d51da725e4feed1203607479fe53d505dee2a25d39222b2c5c0e5e3f930d8f5b18519cf1a3e9fc5925db19dfb7cfd3887a1dd73181e528fdaa25d8325b00e04156474aa54153e755b2b2779d1bc1a893b4e49c8ac88f9a370318da511686a2443123abe52eca09fcb15f9a9020e9dc62638ed77174f912630ee409b81bba8777df90ac91bf1008678580975cec5a35c5a63792d8a76f2bdd9fe8045e67496e7717399c539d9cff3cc9560e5098fc69ffb03cb4820d335e60d86968d350f30043d751a4432e1a8ab9ca4938e6520b2c001cc1c504dbf8b09b900e6a015f10a518f90c58ad39e78f05b261894a5c967c9ea52ec405b7672f256e640078fb08b9b33324504aa696eac66fcfe07f060153dc2bad0637819d3551655b9b07d6da2283b455d783856dd7118f62490d9483936727ae32b496ab8ab871c76ca95f962eb3fbe0a68dbfe8392648134a528aa955d3af6440bd11154b77fee040f8e1e3bc24030cb36b9c35aea29379c6e4ced17a434a468ffcaf54a36ecec2e6bb5e7ac1ab02a0073516b76b1789556f9ab1b09484608f0acb7e545a1334ee284991a8112f556bb4255984f7220708c31fd7cd1bca43bd5d2429f62b930fc755b821d082831bbdc95116e7a6827e189e3ed203f68c0b15393dc78ff35a5916583458e7581c3beb640b56def1c0bcaf5b361c034d44761ea6ed5b68a647f6875fe464f704eb3fcecc4d479c956bbe1c86c706cfb4f22e226c61c03c1e0c322a19329f9c33087a449ebf210887fbe34f17d53441a2c17fb084c09abcb39583f2776ef58a2b0069ae081e903db5d85f6149bd20823125871ca0c1200ea9792e390d1724057cdc27711a2341089c23570af7cb39933c427afeb958d34a64b5eb3af13d3267fb4416751d392d6da62efa298c682cc7c1905cafbdf314fc794b03963bd61e9d15526ca9038dd72361d1cc4086e1fa479af4d9cf3af777a5878727d00be7a0aa6aeabf7de35151137dff71f684f7a68d80c69dc2296de73adef2f1d121e75a23bdc5c36684470edda14d9193ea894ee96687962ec01758a3fc43196406c3e7b2306fb15dfbd5a952104ed8870c07c8ff1d38137e555a843ddad256bbc34fb694d8e0e060575094fb14eface3f381fd474b8f8c6257aa5159015c79e82d2cbe1a969209f05d3040914a45e1dead8f7f8caf87394d4e7ae2bb791c5265bb52b72c47168a92575dcf83ac6b9c512c4e0b6ebd0044f6f1d0031b8390008deddda3c1449bdc4eeccf70737963b73cb63609e07f6b8fd74dfe99a71f5fa02049c1296831f30f33102597b9e51d003fe89d5caad0bd88b1f520ec7f6e3c84c3de7870c217f2b5d1fff1f0de9d193021450336e8de2564064a6d3238d6ccf77e63f1f405d94339bd4ceb9323193ee74d5692fc890538829ecc68975affd2f93cd92a0c7beb10f611fa301cf8bbdea6505c77cdd1f1907303858bf0e29e327f4ec7579b01690cc2e9a8519985ca0f9c5d8fe981d71926370475f9cec1109296e8027be2886dc5c9e7d4d602242bb703c9ef0ca70883bedc361d462d5ac2a433a307c61498c555caaf206c96e4f802168ea60d55a2d84daa6e1174eb086d6880f9df39e0c8ecc7b76cb2f3f108e62fb2ccf5165d3ad22b40489da27e9620df51cd9d4cf4475cced149a019f4866ec97644b907d836ea61fda3781bb6c51d10c5e062950d5629a601f96c386e89dacd8ddb7606ba54648912238cb23bca8059185df9c00accf33e1d3094a07af01060371dff56b121a4f346aec5a981cdbb5c8c4efc501591240255282795dacc39f108b89d134183d31671effc8a246ae10f772490e7f6237cd3a21d798f17e6300ceafcd9abba30d97808d7e7a96334bfbdba33ab214a14f1248ad1db9b4336c82c1362c74a73349f9204161f40372dc8fe8133ee415489de37da096ce11c6dda4cb602e686546fa96571a63255b750cff478c00c2efbbd82e56c0deea6086c2d11841b93fdb115fcbdbf41cee4fa089253bbdbc580797ccd880d2cba66d2cb24c0f38f09bc1f2c525adce6edf452b6120056686cb228a87ee3cc36b9c35b53446c0f64f297df11a4748658228ec92ec3508aaeff99f7b8941808007171728482fc884485d95df3fd64339fe5c7183a7f38f8dad3c8e9340b1652e42061d1106bfc07fe38d91f57a6580a85ff5ae21657e6737cca824a3ae907403eeec5ea5e115ef3030473799294572819fa6bccf229a492071b5514fc9faed2f020c27808d39775e92c71585237126a30a67f4c7410fee955ab8d6c40b9b2d7df6fcffa5deac71cecaa5077168b316edfafcb5533977c9322f814f8dfd54f27735d3436e0d0c74368160153b1802360024355d43dc97bc68c8d6c3d46fcf0131ba41888c771596460298251cbb39d60b9bf8fda910ae9409a0fd43df83698bac7b20a587c2cd88dfacf80a16071500ee57e6daba6c2f1c6b2d2d6ed09832b246c39084220a7177f01c9557d3f0e84c6afa61457e3d6ec382004c43ba40e015184c55b9f03715a4d62d607a68c8d9ab2020faa7424f5089e9662d3e087c744598b6ee1ed2d758a15af7d331d3e97af9c0c36e49f3cae8909a686f84f823911c683928435d93c1df09f58fa5ea2bed0d2c14458c56d609d6f4abba6b3fcbc552871a208f4f4014e438cf55b9fd61888155823b3f4f1f115565d6607126ef5e3bbddfe6e47a291979af3479ad84f23b3abcc9d5064755b8ecc2001655de59f3e9656e48b07bafe975df8a88bca53fadf3a5c98e28d9902c73eb6a0cc6c84b1037aec679c3f4524c81bdf67fc6480dfaaf00b541ad071e44283a70e289700c60be9b483ef0003f8b0a594ea81794310d6de20c385cd07906fff617152f122de98784833f4d7e5ac88d7245e61fb62ec1529a8ed12d5d6f0e1d9b284e9fd496e2ebc44a03e4594a561cc42f76b86736ccbc8ef65ebfc50e971fa5062ddf3e5bcec54ca5e567ce936552cc3c2f25f62e826380bcd993c5abd3e0751da009ffd9089d4ffb95f52733a546b220634a7ef2d6d4b5167abbfcb4ce6a4b35b1c44aa30402c8c10f2b6f4708719fd2fe4f42de758dcddc03fdef01d79ffd56c45e09aaf52511d41ad49e4b469d99558b43b0551d2b00f6238a50b38f508fcb37c918e8df699e526609fedfc052b5252f855b14177330994fa9bcfcd51e9cf8fd4f4dca4c6161926d2916d2e03ff3d4ace4e417fad293235f581e6b765d3dc3fa2cced6814d670c88185f7bf67ef85f8691f19663990b59d5c126bbf32d1119d7b4fc074b28faa69eae8d22b3f0ffb60654b71df922c0394ce7870b85f2143620317656912b106f4225178328b7d95233981d4a7722e4d51d0057a6ceb6eaa04c6c3831cd022caace77f", + "0x15175046d6aa23e2b31eb54063c8a1f7fa86ca5eff07c963d4521d4bbb040b43b43fc4d70da6c50159856240e5ba556467d801e08a34530d4da5331b89eefd73213bfbf24326f76f4dcae119e91b2b3f41c1d813d39ff9148fc1ccc89eda49b61632fb027a3b44da26e79c14867790ebc687b24332b6486e83cf6aebfcb9de10719ea12304dafcb13e85f9264a48b86e95318b0c9739fa08165f30715b5f1ce6b3cb260e0991a57b36b24d4bb4d1f4db328c627601e02ac9bae41b98a581014a84e76055049158ee70a40606bbcac46d87c5cf2d0842353ce245867f788e482d2da228b44602d1b2948f33ab45d8dac25e943f2654198cdb89753651a74c5cbf1c5f815a72ab1a0f0c89e6c5b1d7a995e8f09e7923cf2dc0ac209cd9b94e4efc64f56658ffe71fb1877c1d204ef93fcc395d7470c75a8ba2cb6a0307683539173a00637fbaee8f177930254ee1aa7aedc9bda93b2670fce36cbad32f24c2b85479bf4b564168d7cd9a5aa84c2352dddff4c1880f39fe1a2898952b308eb961f41f88ce04885525cd63c4dcb441d794557bdcabfd8dfd9fb55c8e6b67fd9563fbcec4a76e5846b6d9947f80465aff717001cce521c58e9b6f4a3f825efc09be0d4c86aa10cbdfdfa0b12a990b0597e4f78fb36174156922b9f5570b68ca52b40603a4f993d2b296b180452726c86c41f211c37dd9c998cafe78b993dbd85a68ac816c1476af6268268c953f6ca21bdd91d76f22d6bc8d91f2f0a294a54facc7adf9e598967b1b24fda59a3c5382a5c52d153d98a5e17905c0fdedf7c588333415c19eddf5a158aba55e13fa4ecddd246d63141e4cbeffcb9f465b37ff91d1927dd20dc57161fba4468e914cb6dca395e33d2ec2a7ec30e03af2ee6868afbea9a24b836cd84eb10c94d01e27727bedf51b848a3f6f98dc213f2f5dcaccd6bcf858eea8983ad0aad8d802f120396ca17f76fbf8e184052e1060ae869dc3331a7594a2920102a3a12f02ca2e4ddde241324ecbb1b201089bc9bf25056833a383d3e8ef5ee0f1562fe90f0cc4963e0667d790ff7d6fe38b22ab65ccc7e78339a749d9856760e2ce73524b754612c876092c5409700e560adb28f9e1bf4e1abca6f160b501d6b9c00b710af4e9f7fac19cf8f93b2cd02719d1b970249d97db265a3958f6cedce03a573e933b85376eecf921244fc12215db35f1c55b9a0559266207bf629dbf301a1095e742a6d8d5f019fd10e010d73f8cdd1e09cf5921fb9f0a807e36d8cb259530cbdfc5b6981939a06ff7eec76a53f90d1160cdd1c4f727fd93e8568872f1b22932ffc130793e2835a7a15ee7688e039dd1942749082089c3c216c6e458e2cd69f7dafbe22feb93b071d478dc2227205f78dab063229b431abb4c3273ba7a15331fc17945ab9b4014800867294448dae56c57c43e8d730913c3ae67b8be770dc2938a06de1c2c6d561e9abd9d02304e8eb1d5bd9d0274400712efd778a4fe0ec48228b2b43b404bfc29dbec1eedd2addf11b37f262132845a86101a89e41ec41d838a50d8b02f7e845162cd009bc1be394eccedadcc4c220d6100672eaedaad013df0f7f2df8c9fa1e6891deebdf65ad39ea771949bd49e1ef1931f0f5ff19e568e9682ee7d0fba44cd4ffb6058a1ef0828947832e38c2fc0586a43b3d8b93d6e65f510a9a7a8d07751af6cab1af5fefa39cdf45435343e57d64df994d574870bcc7084b96aca5608ee1cd88f28899e7c75f1d8c9604beb4f3bf30bc19fa14cb9dc740544f278b5014e038a69c9d3f6513047a0fc46e288bf7a616707cb09ae709c7180dec98fc8f7120033e5c4dfc6beb258c6a218ca1bd779dea0bbd46aa68ff2102185e8c161212a2667496e6edf64286c4e78cb2ce0258cf96b05cbde7f1f394ede9e753fc342baba1e4fa057a6725e3c3b0cdbf1c5ab452f23c15d67596b1fccec117a982968f4b8358a2b1f9521a920179da688edbb8cad46f0fa48a7e6d8e24768ef673e7051e8eb617965ba848a836f05fea82eaf15f2f6b9d835b163d2652f04df8ea46606786499650f37a7f42055b8af5a9366b25879fb0ea3139a670da564834b6daeb9e1296890bfc0fa4006ddcd291dda9d1f32ba6822043cfd52c6f3799d44a5fcc24ca622ab81201637b7a01f8058f60d3aa7c53ca313f0e2d1e5210a70b5c62280caab728156b4c3bc2c3c7569598e5fc57f4e7ac1c1c7f9b6668025134341a9888bec1fc1a5ee5f099bd1c005fa7ded2edf2bbcf8dbac0fe5e023ab11a8fc39ca9c8168c278d387760e856b7fc15057f62cd69535035e28ece161dd824fcfdad7d266e9d2c77e1748f702b2d9b4cbe3a5a9ec831610f2e3c2aa5506122d06f8f548fc16c5119b7805aef3107e4b64b384a4b06c2a974f35d61b5e2ca69be23ead408745c6ebec403ed38ac15afac6c26ce189b04ed9b068e9c59fd69bd01848ee3dad41bd35c820d42efd45a49050bd6e817fca8e0e267a80ab80e1c27d501210f3fd78b3259721245c04068c31949f2dacc28027a414bcce3b2b639290a74c33ef66b20a6b5734a9215dfb7d0ed8291c4b23a58fb8b1cd637510a044992d71d408bc5681401a10f2cb496eb725982206639965a8da89e110ec610fcd4868af962d36494762866004450cc2483102698ffbbe2c77d3fc53c0a2976fdaa0d0a69197f24fa583534487ea7051d4a278d7920f50120b0cbe913947ebea56e551f1ab67700cf90dd11b4f56425b9c0012f68ab4b0db6ff3554e0b63de4b181bcc7dcc4b138407a95fa72466d4feb138197d6e82668cd0a29f0a1682b141b2e395baec26a438e84af575e1d07a4857878da7aa489b862be049eb7024eeb49cd2f68f55a8ced00a549ba33b800d4ee65da05525489d3b3a8a58dfa28edd2b20ecab2a915ea350198af0e7dab76b5bcf4f39ff707d5f6c6e6aa4166a300f3fbada6596db1915e2b89aa4f490cbf42e806b73769c01f6f9266458c88b67d71dec8b47281c617e2d6b2dfd23cfc70f46468d1b7a482b1d467efa744966d9cc22a5516cb9b153194212725677b3f8a3397e2a3518ede4b22354304b733f7b4978bb595fb19b91860ed9879ce546ad9e2aa2cb77e078a0365775d8055a89a6edcc2449a1e0c9aa4a69820ed0f9c6ed723e09eccce6b36b51a702861e5397431c18e10c262b9d254ca960b287c1141d932b6a3ed29510ec4d7d796fe54b7d2a7b6ec97ed802e3635ace77896d0ba3a6fad572655d51d473961500c1fe6f135778e6b45013b2d58ca2398ca6bdf57deba5fb0608f2e8c1f54040d70ce11f5872bf8ca5cc2776eb2939f61f5dcbcc459a14f1f7c84cdaaf5781b113c35937aa80c668ef5cda697e539891a04f7a39377fce6d4712db63b48732e200dc05a4953942918b7be33f972119844787c6bf9aa2da6847d44067d1c25280cf2ada4b2cabb050099c70cd64947e296f833c8d353d46052951d31b4aaf836f71209f432550cd59cfdfa1642a4f6b495e647d9795a3a48ecccd1d910c488b59c5206f553cad1e0c9fe80affae4fe72fcc13bf0a53ca8885e4885e01d919d5ce73ee3bd78bdf69c88be935387743df559f934b08a16e0bbcbda908f410feedf61f1c46d1da423a55d82a1e18543ba399a86900b5c73f4b823ef04130585208d1cde3a774197c5f536c91b5ad104567075d75cf97619fe9e2eecf667f71a77904a03fcae185c16dc2d35e5f7948e2c431d05a3d4876af89ef1b48833f01053d414fa1ef3e332f3995fa4a76a7b06a341a7114e46ccc6e551d683bdbc51f2b7030fd2faa1eed535f56164dc41a5e2799a94b2bf2090d957bb15a416691e5add6f444066136b1e7bedc6fe50c47d25bb6b8d08ba81f92b9aa3dc0ec4e4d5b62533bab84d16439caf90fff7d82dbd880b4a866ebdc98fa10992cee4971a3775773dbcf6e8a0850fdf8bc0a844d3d80ac9f8b44397789ddb6815e3be8e2de1481e30703346ea6e84b657a3e310cd2b681e7dc59a3f8bc360a9ed53f1a685e084ef60e207636e036b4309de8964e1a5709e0c9444ef094661cb172ad38fed6c59d21abcf9bedba3d780c3d5262189cac85420a99fd8437df9381c1d39b516638ed7fe393fd733591edef4863fd649dbba8a948f98fee0dd9ac55d520b04575bb1d4d7c3f07fb2e44c296ab04239caed594161bc560fc92a8337b353102716a5dec6ff7ba798d9d3c72fe7ff2ba230545b66c8b5d5790718f6dc5d9405f9e2cd60aea2439d385146815ec55f0d4cca518d4f42f42aa1ef322e607370f2f4b75dbce68433dc6129b8a84668691e7615f5badd9d3882231bea1009a5b88fc2cf3bc97b7b01492b8d2a10f3898070b1d953f17adaf71fae6e4d2fddc1bc5baa73c725d4a2aa601ce6d16a671b4a8c432d909d8e2311a486e4348e0ae4e34b455928457b69db8cf01f6355ee32a201c4557c46952579043912e1e3af519ff3987717e4d36891332cfe2aebea6067b1fed0e0567b893c89d26729278194ffa19bff6caed28ec1a570d00090a95b282af37de50a3354a388c9c9f0cb388d7b69932102f7b8ec7c8b362245411cfad176a255ce5d7ccd5162375ac715c343183354d80463c8e2e261ac93787c037507ecc2a83f35ce5218716c5e0dc7611fb6faa2db0ae5bf2e6a5b2138a49acf59ecf33af2b959eced22b01b71518139891a9e22552c952a999021d63792066f3300036925607dc35fee7dc08446df647bbb8333cd4408c4493822fb0683b4161232feaa247f346af73ce708a62ab3a1f657cfeaca2b8a67a14c3054606587f321e2f1b2470d0c735958115a394789d256fee28653a53a3a4326d5245e278929d687b0b5129a983a2bf8557cba84bfde188051a870bf856424876312155683d9c0d0b66d53eccbe364348ad12e7a633e21d46d8ec2b83a874f5cd0a20b641e27010b433524935df16ecdcac972f6e153752d4ab9cd9488181b09b6fdfe17a3b1bb11031dbd8b520c91ab4eb126972e3f70e192d56cd96d854e66d3ece102811e4c018ad796f2904bc6ccbf84b3f8cdebb1e4cf90e5d1deef9aafcc4affd7339d706e12caa4b3ea2bff41ab0a031e0031f5a755e696e6a9a25fa61081b5c865843b4326ddd029dd18703417c83f1252f44e4b6304239e097ac87e9d6fd9e52613ae9ecfef7eb787f2a80aef9fa100d025177f2a229dad1c90820dac8140f09ce144962a7d159d3b0a5d0d5d41e0119f9edc01b6ddfb4afd2d998dadf753124e4ec9e24e2b7a5fb6159521eab9c608e07c7cec9c2dca66dbd6051d406087e4c1d2192f05dea0916e18a629e2c379a4bed0f8bd99cc9098d190243754e06668cfbd76aab121f4cb34fdff6ddba44d3a63afa4833a1068674accba1b36481aa8e2474e6a49aff37c3aee5c523472c2aab9f4161058425b5ffc5e80cf56fdc02e19c231c8fcda5e96b378cff0e41ed444fb5a2de05166d9470592c4fbb284f1375615471de3723e88fcaa8957ffc9a2f7fe85e3a8d5358c72c378caff8c664b3d96a3a9e83edfd0f0df071140f14d68a1390b9289cb015aaf026a3d16d1a7d84e65a4bc23163ab4dfe35030b9cf35d0a10807e751e8e0734622d2f26b3ef4bd8d3b2c488a26d1c288abfdf03aae47c43c39d79f0fc3c43aa2dfb92ebcfb558e7f874235d8a422e1b087a690d98ac94cba111fa69d0331622165f51be80327f57aa82abaf2e5b37c286be68d2ef0a9ba6f6b458bf47247dd3a39799b98ff56e12f3dbe349d0647fd2fc1c88424f2c9a05c3426cf7926dac3b5a8cb527e0252b6c212417b35bffc3e5aeaddbcaae74305567a4126f6501880fa04999c20f358c996273d6a411e7b414948c541e06da0d9cef6bac1561312cfec2955a84cf00bd76e68a728f194a7661c3114b8e916678291d2f9eb9fc026843c118b40756ebbe9d45f6832e307722f233f1fcf23960ca9387ffd36437983d0ac35b83788d7ee3cc2382642de4c6441b5aab0724e100f1066fad36c9aaf3629f6dd84a14df3f529d48b5b5db129d5d3a6b9ff10095a1eee219dc3abdcedec2737a6baf3abe748889a8a6d7f196a46260529fa209ebb857aad72f53c87f01fcee3bc1fc0d55bad54318a073655bf33bcc9f1ce6860613d64003077bbf1a4ae211fabda0a3f47cdb5ca47af34d44994535fde4ec420b38a7799e40ae71bf9dfae85077acc42a8e133ac78608d99f38d1e5f0ebcad1fe0b1ef6608c6e648c6800cffa0e573e9f52485cf71f224f11aba2a5f9cef6695a511f5454a13fa0e50d627fb0a27bc21a4319f647c0fb27286273744d98ce4ccfdda4ac57812c8d1869c3f80890155859c67bd215860d2f15276f14c5c312bffffe3b6224a141dfee86782f837ec85b8abb358bfaa217b82f19b764beb064912ec3853fae650e9302810e9023fd5b10a067630f80189ce33c4fe08bff7acf382798b8e5f8e82afae4ebc2514f0437bfd0d9f4794e7c63f3aa4b72f2e4ab3d77e0f81e8bbc61aed76a990799cf57ea68eb452c38ce3af8ae32886a0d645400949bb0940974dab68caf88046a2698a6056245228078f42ad890b9b8f8ace74a2482900c3dae1de454a1bd136b9fcdc2552b6a4317501f8baf4910c2e1749db46304530bb2bcdedd9228624477c65a3842de10cd683c0bf388a8a7df41333abb1c7ace2ca4192fc92c3c03d8002e8f26cda8e955ec40c5fd6f6d88dde8dbda3e21c8869b4c1f42d7f874f4c643af864d92044242dcca1a89dcda207cd7dfc802530c249a80ea59b739f2e439488e9c95d74ab34f3c8f2b387715d8f1e97e6a2e3c9252ff9f82791e2ba1780fb52b7d872d8a7c0d30b38df3ed076f6452b41acf379216b4d3a021469e39495c722eccd19f3f785ea1380565d83c3572e34713552a7dac369cb0ee6ba6810ae51b4f68c675d550fc36e9347cac60b4ab2ace9a14cad6a417b0e3674f55aaada6432f91db820951f09a397cecc25d59155ba157c477e0087d2a73b0b687d7474c84e6962b079def1b11df6aac6b44cea7071d0002a796fba0096815ebc12430bc632f46f41ff0ffb05d11d07612712ccfada69fcdd6c2784ffd84a33a1cb9418a055ef718c86a43b8fbb2704b73a2eaed0f4d4f091a248a6c852b0a733fbc6e83ad8a019d68d5f18da3d9dceedef16ed65f0890ff2ff0886b6056116e713ed924129a562ef902b15f2171b2648fdf785139e56bdb2c2fc8d74903d281b16577207f0d3897b06e5eb27bf2d77a0ce52b9d6ca4222db2b352ce08a6b10be571e0ddc7c4474c45afffde6969df3fa03f5fea98996d69b7b13d80ce7edaed136a40f7091cb3e3bde1288e1a42cf85dbe4fbdb96d25567e2356fb3e4ed8b0cb58498bc3f0fda95d16d2a414a9903642ad39d0ab3d12ee36fff9d42ac1e27d10a9d62afa24d9fc1d8c561cca908b8b878306284b86487feab7ebe99eba34da88f476606de66816a4d041bd794290f9ee6e8c749cb62c9bbfaf9063b6ddfc08472570e2c117cb8b4db888b5b18481afb8cbfcccd125bd083701b333dee4ef25a23e7d53fa21ed76a02f78f2a490079f55103fd7a347ef6a2fa68b5c85c185ea1ef357493e046d87b43380267eabfa577cd59002c9e4cf6c71769139a666fdad8aeec462d778c1779e463ae0a6466e9b23d524ab3a0d386882076bf8657aeff007f9b1a48af0a6c183fae275d097d3d978bb2f9555a83c7dc1f8261ef473cae1e9182d9d4829a81b5a1c10081afc1195d5fb09d4971e7679f3b4da6519b9a80bb05f8d8f27e4c97cdbf2235ea93fd460145888c3c9eccf611add05ab9ce33a964d9fc7579764cfd81b282e3df926256c1e024b3d0069deb5749e0cf4797c5542ae1d27174049907198920d3fbade849a033c8491968fdcbf9994440b350802b22d7a507a2de38ae7d699ca0afe2654fe6efe8a51e11f5466285cf39c6bb35f4e5769904f5f7d7bebe40ded8bd505a2d9dddb5755ead2a3e64872dd8dc0c31ae12aace431373f6568b03f2babeb0aa25154ff10d48dfff7cb17975f6694a92afc8c431d0d8641359bc7efbd39e1ac39f60a51617c1aa954c63ecb85a71fb46772cd22396d2667db2cbb7a32a1b1cdce0d7e4fbd2a2af032b740e17450d26faeae9f050ffc4f9b29256dda139491f5c769359616838344cab472614baed9d95aaabbf450b24b87c289fc7418b10218fbbf44b211ec3ffd6ea1e9a3756d1a22efca3d995779c582b140c090a62acb72e111ec5f133f7047d18a18832770fcf77940663a5528c80a381a78ee37c2d6974f27763ea127ddc6e405df1100d115612298ea567e4866621c89ed064aff551b0102b3f40e4730f80ef426d3774d392584bf7bca430d144de80c49222b93c1b9e03a8dee938e831a14725772f4f69e67b8383539876e89b01410f3528818f41f2e9223b1d5161cd92ce3c44847577e60f05776efbf9f84488861894f99c4dabd98a10d5d9be571b1b97a52c32b3b7db5c9f9c4acb1165540bf39e79c0d4298f6526add8f092b78f4864dfa36a42779013bdbf485ff145cc90a2039d8728abaa1d2878523d0060338b0d4ec1ae9f186f3c6031ea9fe0e31ed047cd33a5b4afc8325cb473fe64a8ceaeb9bb58829690f07b0847dd70a03e8194ba2612b7b5e4970b1de9e685f6d8e3ff7dd2a2392be95a065bdb19a088870d27d05d5bd2d64dd1252c6134acdfab79258ea375a354c0cfdc34c90dec84a7b5eaa863c2c8e6c4ae858eac36bd7ed3b57970220d924ec7aa2d8973d9f276b60594194f5aa50b72b12dd21c9fce937447eb99a76384ac4330f20e3e9c1cab85b6a679dbf6c28d59b858974a8ab29ca7a1b16b6f1af2398e8b234a13d1d2fe151023ece41c1e5eca6670158f24f84ff9055ecc19f2fb23961d21eedeba960e1e1c8d2aed82c48defdaf9988c5eac24e95e137d29d382de5c1b22f013e1c84289a8b7f59d21840642b4f2a4a3b1cc186deaeeda8866e7b4777ccce1249c33daf619fd923cd43bf7146a58777bf49d746eb4ebf3023ef4fc8e394b550cb2aa21370ed0273a896f9007f2d32d7f3f591d47e1cab5c68cb470e1da7d1dc70252e0d3cecd58a90202e094b6c3ac60e1e0254ac8ca84ea6f394ac1561b36d7445da08493bc4cbe2636d587dd1db88f636fb03bde36b7e5c68f5a1440e200c1d15ae4b9941f1754e059b87ddee462c49e72e0d36f1a4a139c687bd244304e8e825b8915ee4a99688fbcab6d6928177adf04903e2ca0a2351d36698afc9a584b9c898eee50211c9e09d31d1c9dccfd701ab6b89d7fe856ee23bf49de06647489cc003bcf86e53fbb2aab6ea78d917a2931970385bd60c8474e6be1027ae2b4dd35f922f6c3c96228f5106dfd1a15c66d46b9c07f1be5d02ba7c9bf41a13b33618c97ddd7c9264a764207ba6317c96cc622939a867b37e3ecde137a780b05f33142f45497d984add4037693eebd179f04a9feb58c0695c6bc13b06099e9a99aefc32b7a9176e03d9b1230010c7930ccb95ac093f5967484352af3fa2abdad5640c589cfd5f8d4e6c390b2e1fcf836f6beeccaf419f3b736d2b5a5fac35626484d9d21aba4ef96526bd93fde519ace8bacebb036c6d7d92373710d47942407d043b3654cf553e82c550138e0731c3c586470f619bdd2e2fddd477d35dcd017e2d3fa8fdff48a703c67e7d03b1da8974888e434a831ed2e2838ecad037330b04bb380ed517d38222d2bd58f66e025c959ffd642fc4b264e9f8f02612e418193831a075f6aa5e198d14faf26ba9fe4480075e0d102a8bd897d53d8104dc4f8842948b2a0f1325f98b426b696761190debfd89734e6d94dd81dd9acaeb18fa26fd5fcc42ad61e20180f26d6baf04377d876dc963ebce1b64a8ed789b129c58e3b37fc6cbd1f183c849a68889b9c13237515788e7039bbd83b5aebabf7e3a250aad1919fe93602561e422b432e6db63c7917676be2a0d21dcdb3147b3cadf2ccd4cb0806297d744ea869527a62d532c42b1ba98a9de487d579ab3713256b9858246e32fa567238c6c25ae12f9e90e596325efffd58eeaf5ecb739b5c25fc0927e1e0e4929caccc70a96d83140c3bfc4509be72e0c954122278a66db4bf68ce08b0ab78c021b8e33637ad07385dacfd3c0c17ccbaf955ed5c771f3d25e1a0067a99464b79158ce4285c09df49e0f93e3852821df854cb71bbd3497f2f5cd6e10074c63df6dea269416fa69f6910ff6b0bceff386a63f042c346a90c22c4e326dccb4f34ff89ebc2f7057b8487fd4d04b8728f33de5c41f80de7029e022b15ae01a2849947c0ba70a23b39eb543073dcd35399ebc00b6ba15373c657068416e66c9c92d9dae199aaa99273d5c4eb8a9b3ffcc97dd3af413d4504413b9aacc151bd81e0e5980e53db89d908691cee3f3d2d7535ceefd2f841372fb1b1fb5d0404251a9bb2c232e121a6bd257293136e9176b7a805dd4162159ce38b0661891c29a7cf8aba9668fbd0eaf595dd847ccdbc43818e0b349bce964e8d20eab1e0f77ca6a7ac7afd40cbed3f2fb23d2f193db301cab11254264694ac4552f0cf8d99d1c36f02f245c5fdb4cb24f34705bd7dc4a84e750b67e43455811d4b126f5a078c0c38ef28f243c713058e15568e1b710e53f0cc2e760d5111c0c9e52c7eca652779743ea5933aa22c96ccc5e8d6503a0423df62768e6b77730e3d097c1feb98b0bb5fa5f6b7ee89d70e84fd1e71d7efed79cbd722f545751e1ff8582931d8f5485e79272ce587311d67859840050ee9677e97fa366cce3b26dc1a6cb9653a4fa53139485ca6bc40be51b8293772ae13e0f24229f88642c59361803498ec3fed910b525d20a864efac5eecc3127ed8271c5c0bca730e3308e2c76f5e98aad1cf68d51da615e581718eedbb3d82169203b277faf0f775a3b183beab386c0207f09eea0c065be292853ef0ea725d21dff08f025dd3975ff3025cf6ea232b2d1a1437c7326118fc3f1f4b7deb281eddd21b71cfdb9fa930c41c445c03a0d4225f2f4d064aa3f5c1b5987832728763d13c086c2d31af4ab64c34892352ccc412ff358eb0c96a9f633e0d3b6744896e4fd368699eb4c6d8d9ccac6ba02a98416c7ac2bcdae52a472dec7f3f2faa64a582fd53a2dd3653766513d39ef255eff37633e92b94955823146739e22c2eae13119f742836e8178bd84705cc7fede5657b831c4525f8dfeb522f58b83395e3e44b877f5d2943ca434c6a65113e1a46897b1c12099eb3b05c16e7e606bb3720edef65e87a6535790c683bd17dce82e9317bb93088b426a9b93975ec482027f72176678b0a0c016b1b667ebe966772f797585f2b68f38789451313d2abb9c8d21df4dac26d489052e527c7c6d38f0278d634b01561384ce1ca50972b93b8d0c49d8c832a5636355aa65a462222a8d1ab6e6c136bc2826e1a15e48f6617dcc664047077244e181087ddab450d6346103fc41fb438ec1173df77fffc2480f37e36d96cae0d2fde9565ce0d4618ea5fefbd9f4b98d8d6d33f1a4522bf10ce302f154410a2f2a9fbf0c4ff0bf2ae0144b9a7ac715272882324b359350ac5334b0e4b9556a17ec08e3684bb2f56b663661f1dfcd00fc4a0d7a90890b76f039571a350beebb9d24cd6a919927411ffc3f9866d812e058dd0a009d24afa51ca100d32aad4fb58eb77f88789d7cc6f6c435a5eb6942d7c505db85cbfed6dd20a7253ebfc9193053e431916f720b6a01dfd47c55e7238030fa2dee5b362fe8cacbea9cf40d590d64202c1ebd7cadd7b9a7ef11179baf881018ba90be8977fb245aad669e7212386afdc92b31673d5850145cefcfaf05f34581b23de99fb29546e2005ceea1adc44444c53dc1f7ed7267949497d4cfe3fce7de6b741340427f2ddc09686fb0c50ae2ca33ef4e7929b45b2703ba1e4ae734965977519feac2d9f925dc6586f6446812184afa8781b3bb81e1936e98a319720f76c990a74f02e4b197c1a0b26357afda96615a476c8253d9a939df35a9b50f8c8b56eb368501207afd8a79754b4ea0816163bc45f0b26eea8a39380d76428f9e8587d6fe85382535be123740abcbb7e0c32dd62f69c755f1a02b21831e8f15bac500803a700c9cc5337c7d94f4ba649d3ae90aa6bf7e1dcd4dd94e063e8c3ea1e29dcc76e65bcc5f1340037ef03f92bc953f93160d90077c8543563f7078178e7866d35a213bba34260f53457aa2857e33b5057bfc774d28dfb135dfa4ff090339c47de61a0b80dc4fad7fa85aaf03463573a16cf8741eb005b33d24ba965e382b4ca3c52245a402d7606999992030463e9ee518ba4303e3c72e2f86168fa29f9ac3ae94dbc22193ff9fec574934b2a4a0aaecd88ee450ab52f57c386bf558f33771d138a0bb0aa74df2157e203bb5eb425874d29f8439cddf71812f14605d57c98e957d4b4066c1636441fc5deac0cd97a6f99df9940d69e233bd9387965bca1ab04519ae1ee54a240121d2d40d5920a9ca85c9f6b49652e8067c263391a7495dd11735cbf6079b3f541239eecc13f77f3761b5a4f185743cdb8152f49170c8c6f901807ff00f6937f95646fc8ea2df03b28b997e7d7016f4065f34ad238322f37cad16d57ad3f6cbcad8dee5f52611c036a48ce1bf86f6c023928f2df6bb9171e1254ceff182893bfac56dc5db6c8282ff01f1a9512c28caee026a9e266adc4a352a2d1357929da4ea8b6eb175004b8776b6d5c44df3803d603f0f52df2f4de56ec48fbb941cbd166ec22280125148fe6cfc093dd38d9b77e2ff3917ac0c4b65ee4c6d751f131eab30d848a35e74f3e5beb49775531dc739f9032ee64d7648ef4627e8447ee2b0419ccca8ff3654ad00b4cc2fa68365dafa57e33e1eb870a74e681c65ce6724d7f2ec54e571b8e825afd763d661646f803f2d585fdf4f6c822156bf8b0008aed11bdf660aab5fa03268d6e591a20334a4c5922ec5ec735daa0f7c6916d6b1b16c04411bc5169155908e98889ee8ff984c4a3996eb38feac217157bc6817f08b916769abc4807c7706f979675542e238a140de6e2e4de8812b18eb81ba69a58bc68bbdf8ab101b85995ed58a7100b3c3d08c8c0b20e261ac218935ae6dc9c75af2babb8a0e8ec20f54a98480066fa5600df785ceb5a409673a4e994c6a76b783bba971955b9032b03cb16acb10612a28c87b69fdff8e9cb13056af27a767085a0b200765780a4e02a113bfeb0fa2e0b99d18e2fe79e40d9a0d684a3a4441939d2df1df344fcd0addf42b0a4e2f06df4009b024a04f04a341758b81c57b55524051c5a6ac1a7af7046d26ff6741db2f85c4285707aad6f43c7131c058d3c1b59bfe3d43bbebb0a1a7c25499225dd24c03f3580e29fd3fa859546da74dc0fe306be60ddf0d863cfdddfb660056bd2afe48844d0e773a09c4ce762af8304a92b27428c7eaefb4191f342d5adc1bc1682e67f8546ebc309e9013e226c272e9ef33996a8f077a91906e71f657b6473678f30a9ea2665e957d902c3367962fa744112dfb92241a05e87783b46ea4cfbea0f2d876ba8956a71490746d44dc2b7de9eb289d637d1ba6d930d514b6d825348fb69b9867b0f08e3781a70f6f72d597d9839e81f05753c6a4cb1ac034ceb125094cd2b263d1201d78a232d80980408ea3edecff39681f014f8a4d4f023d36d63dbda477104b598fd08fe8d0ee68b6b37a7fc4970aaa6c7758180a42461c1f51a19065ae5d8e025e05e22a59fabaeff926b32aab23411dddbf6e27baeca9f0d6c59199d20361b38375cde1ffc440b15fa288b9b53d95d0d8b08b362b0f6304cb1e9a89d288f209ba3b61d9e2823525430febcf681745b89698eef446fcfd64687dd97e798c64e439984c20a024ef4de46147573c6959d0e230110a83317a97e648cac2f13b6df6c62c38d768edd21670c11b486eafddeaf8200f57b5ae0db693011356b7eaaf377e0d197377a7f18d9afa33a00b523345737ce68e9871276d3e2cbbb871ee36b4b17f5584faff6c16fb8fc05392fb20d6cd2cf2f4088e8570b62ddcbb4521695489fd54159f396a24e374fdce4ed090b47930fa9660d7391a06bafc571d4eba119d1fde383feca17fbbf58e9d868b99c5d7dbbfe6c211609a0506bc3d1a57ff5e4dd5faa568c90e64e46d16a59c50b774f4aa5e625d9087291b3818da779e33daf0dce21467df819be79fe6cc09678d43f04c4f2e68bd592ac43239f8b449a5ef60c81d1583ea8310a9722978f012e882478b271d297dddb00a6c93aeed11f2bcf8997a35e525ba0bcf207083f5d92e0f43a2cdf4c84d44d895aaf8ea7ac5df10f608ddd7c065d9a02b07b425be9b859e2af96e47f2640b0667052e9b76635d4513bc9a810121134c430cd29c46aed1f055974e90c46ff17ba49f7fd2950fbf5d2e4132b2a206bd010cd540e1f8e2e6226bff2335122bebdd984243949f9f972836a162f220777df3a49e8c9cdbcae7492685d99dd228224da5d25259e70eb2bc7ebe45c0cc1d0ec3c5367ecfca954c31caaa8be03f02390a58088de62098260b61f6f02080e29fe410932f89a3d3a94bf98e8e89a2acccb1b51a198619be119e797116cb107c8416b2cadae4aab2f9a8105d85d5efc7d40f42307326f992365095a05cd35d3060d2d2cc26ca27336578b38565487c4895b5cc015d9f30fd35de0a9ebb7cb0dd02adda75f974ac6054f9613e474843618458cc76ac03399720862c448279285297a4c5df317cd3b8709205f28eaf05aa6e6cb4c69e34999f4fc07dc0316184fa6dc85bcf5e827265be50a496c012d058241a2fdbada06a043e19addeaa70e4ef0740c825db274c752ba96861f5b3a7a501529b7c7c025a3bbb302642be2e7d5463533ca29763796f44bdb1e52abbd3788d6be4a402689dface5e5c8dbf3631df8bd6709da4c2657fc8b2e9e3b0a4804f4f4908198167294dc45216f730e4fdeed8b8a36f4317c3cd8ac2056b5d449b43672b823852ce37702bb623b4dcef1a01e77ae3d81e0286b2a04f858be1c515940c8e2e484b6a1b74cce70ae2b33f6e01881d9828fbf6f3e49bdd612f9a975e3da1fc19d52eb8696da05e93bb128c36f7ef3a0d5addec762c15bf4bd2a8a14971fd7b726742e133a400f7f47e69e903685cebab772020f69cf0d9572bc313d1b0058887db064750808ba06aab732b6c07787de41f7c061c3e5cea83e3e2c724fbf3eef9c9258780b2ec2d2be7466f6c431178f4357ae2a352c5a3c84e15c9f8976d07092e82e0829a26a32c1516ac83aa458a87336993aa0fdec25d9fcce67578ec1cdeb46eb41a6cae717b1e774e26657b7c9a837d7fbc067d997c589162d60484cda8a83043f56fd99310db0ab86b0e32df81985a112dcade8820aa540728f3897b14b3a090f0a091800708e9b54ff769411994b81fc97c58df28b13547c41c46b7fae4a549153ad09b3844441a1d7513feb913ccc803dd9e7cc96ba6152c6a93c5ae357d1207120d2d6d7fba197694aed355a0c310462ca94a0fc23257f31777ce72b47d14344880a1dbfbff3a34d4b068107f453118fa8536a6bfc3436171044c483c5eed18984ccc9f20056ebb6d129f791327ba8d23b777c7a97c3be892d49ece5c1024226a3cc8f7a121ad27a6d0dae83874b28447e28f2206bef4564d9249952ed28123deb44e53ead9bd26a46aba3d5b794e1711e7958ad92a37ab2f3e953ee42d47bf653af1be76da9262496c0c2e40c2ea85bff4577e14a0895ceb10b333079f3e54a4850c4ab537d05a7299c889ad4e2f216b7e963887483aba118947e1a9325c7e72c912b6c424578bde13c26fede6e5c7911bf47b81849774c85aa34e652fee945d22af5a4833b077834c03664018b972e8c7384f4df7bea60276a285fbd5a4555042023dd414fc1ccac20655c9609286fda29209097dd39bf8208b56ba0c5dab6fd8711be0e5d60b366449b4df9027325616ca303b30f3c1bed4b3fe009ec4c59ef2831525cf78bef945b946a0b12f8aebdefd264c96340291552ffcbcc2120717fe28ad505bf7c18fb8eec49b3a0c58f3c25efd1123cbf7378a6cce101f6d63144e8551ac44b825376fe07f658447a5e609d636dedfb85e5eba8e67c81d75c614bcc2ac3baa42da5710f6bba692a65e7613a107a5c8840261544f3066cc970db96599d7bea4822b36e0b5e4dd5949705a932964385588201f1f3ad31a527025f983e47e7bcc7cf4e840ef6359366f9f856e352c13216b132501c018c547bb18bbb878d367ee99527da45dd771cc0b210bb72f24d52ce721a55af8377635fe7c9dae9aa2fde671591317e749fecab7c59df42c46076b18114f7239568027533f4c7dcc8017136af605802284204dbaa9ffc333bf15464075f82bc91a82468e5fcc6853167305b7483b5c911e86b71007d01b7431048e0e1c6161dd986ff0312771072e472f6560814c3f6421da8e2a15a11b0594ecee373962632a102905776de522118e5031e38668ea54e1a4adeb547022988b809f3e296fb66cf7c15eaeab52b6072097ca047b4390af00c604c8745dfd3bc9140e8e44d2f2c52ee91ff5818b17201f1e8e237d878dfe58a015a3a32675d19715b147f0432ceb4744bed6324ed0e4051b4a687c116255d22c69566cb8b8f2c196aef588dc99be7c34f7e38bf5a27ae70b0a23026712e854c4b1c285af3433d2f1e5984338a5c7631eb6734876a85c850914be343f9002740b2d4797a7a2611f54e69ddb46017a79a34ce5773013469b46d2cc364b4025a431fbdea17ae47d94a74d063ad0d293b5c7fd8b288f8b9dab842cf2541bdf8af243d47002a517f2e8a2ec82f63a3aaccefe85541439b2428776f351646c0557275b7c4d7f2db9e473ebd93e4740a280288ce71e6cb2be2738a38e09e3e80d8caf7c0e3d882f573d3588990c2867ea6123255787ad95d6c5f6746691cdc527af1748c3b8b0cff9a20469ad6baac0efb5398e2aa1c27dac2cd2725ab1a209fadb9d8d4e8e0238b217d2e216926fa1e71cd7ea3243bbebdb58acdc5797eb866ec1801563a885cdff8f7c5edf60252e6c0087805cf02ef1800a105faeafdf4b7968029536d16db7738ee46f72ad74cf0559b1d3c6629b66f326925fc2e291b3921253b107a1d5582300e97d78ca0cb9ee5214dbe8d437b3b6d9b71e8f88584a5938c9455f07eac604cba214bf16c99a155a887c8f4188768ebedbe3c777f204857fe0bf1e38dca2ac5f5a5b77a814f83f2b796d88aa84dd75c0a235fdc2caa8555ae0934e9d19f2a244511a029318a1ff6850731c4ceabdd10e4bb177730205166bd9773217d355e952c8430fdc45e235efce15aeebf84c2f0b88a105b31d3b50e692f8757e78dfa0936c8b6a317ed9512973e9f94c8bf434a47ff5c99b1ad508f04dc4e2ca0a9e32aa9d222bbc6d94b5c4f038ef40583116a0217ee08432ed34295052953ea66341b5f6a8da11b7871ab0f1d7c8208ac500650e31e9f5ceb824c2cd67ddeb119bd0a5caaafd50d6d07ae6900fe7d92f3197918e12858525eba9657b6329c4faa7f9818e667e7009f61b688197096e4ddf8ca33cbacaf3121652144ce3782abc13105a56737f81f58a5719a18719f4a956e8d7d782fa984c187a06bd2fb2a9009be35109bc6cb789b50ee27b56555da10708599e599683dc8b56ae7a3f66141d0c585bc7d5c6838cfb2f21898f2319675e625b3c1b65a4c9d99b7c2751ec0a76e186a8c936947ab086da35b99835066742ddac1b4b5eda27b702ee6397258a3a83de31037fe15e378fa796a63c862998396201c1dacd9a4c08bc47611737457dff0bf23d5520524b3238b2adc34b5df36e474633111f94980d1ebc15da66081559faf97873eab7bc88a1ddc677e43f2a4d20a134b42b1726d3c1111d813492cf6ec24e88dc272237e2190173821dd57be8b583b9dffea30d4586bfec7c92554062f0813567e9c9036b090105edb59fab4307134c2eb9a079ac718250958b749eaf239062339cf537f53a2994431de7d18562f515a0eda62f6bf8e46125593e9af73e54ae15e382a98f9f3a18bea2f8c17852fdd6c558ecadb8a573f99d940f85e25a3d8657a3ce2b1e68627fc901a866aba9aef5b11a391d8052165c0026535292f6b3a26c0b7f51531a5d770f2e34cc8e5c0dc0274d1038c211b28f371fff773eb576f7485cefbe147a8d71ca5d0156a6c83500617f953ab66a611b9cbb6655d6838316cc34d5484660f708f7eb8790fa78f5b747708cdf76b527acf393597cfe9f28a0a9a9baeb123e6933019ab32286269fd91737507765f2c91cbe7943b6c64b7e85bcb374e1de57a7eb756a439455e45f51ad04525ac835d8e5f88dc8c9b04020c483bcc2ed86765e149d65036b7cfb3e347b5a756abae192b1fd08ba7d1a86d8d4676cd69dd3add5c8782e2724cdf1a07a62f1a292fc8ddb848f93797ad6156d6312aab7ffc40603cc205f5c5742a011d2bae25632b4ffe71a93f38aaedf84bbc81a790660432a9b10b4d8224ae402832f786a46eb7d585dd2c6462de546554287266b580cc1cf607870ee7cd0027776be5709b93647f6360082dd7788559fe73fd7f3ddc7adc9e89ac3ff7437ed7b4116406a285b288e955bde2de1a85b543661d31aa5e31a6fb11c29a22812abb126a0b4adb0584bc9b495dd2d5e516113cfa785edabd1d829b85d420a91e73368725121f7e9b2bfd4d2c95cd288058369f59800c9b68c2cdcaaaea93df5c5c1cf8700dceeda4e6c2929e05a8610d17a417b5fbe5c7c030b4691cfffb833fd83535f061836243639379aa57bd436b210d65e43cb8fb48d7bc12518c22223050bdc22d6ace21e33b8e9d864e68f84575d84ef876f6d0a7783d91f01a1888d845e773499e23476229e5833cd08b4bd5849f66283a35b2a2dae2a7f14faf4a271455d5eff75a1c180b5e4a4c800af854fbb19ac6b5b13a72be2a273a6dff59b045a267e4642f023fcad1a5a71050048a569198222dc62612beea53bb14e4a5dba9d8a9a859c3e8828cae309edec92ee76375ff86ff77d46ebcc99d44637bd2934efaf3097d1958b69f740995ca666a2230c862babeea5392b0c3a58625a9fc66c87c21a0f49a08f0063bc1a37a1c6b4d40a81cae12ea0733b6a79400ff948e4bbfc50b8711920b93972b9a70616542c3fb68f0449464d6457899c1d1d727247b8ab4d4dcfbb08303230316e6f3bd0b7d060f7d5b5ceae8753c90a8a9cb927f15c21801cf828aed094093d49b7126a99febd87f7cbf33fda310d9305021c88d7d113763406617f826e542c20c85a48f54e0b0e6ea919945cfdd92438087007ba24148d5514633ed592b8996f4c9c2a33f97bcb2eb5a99d9096e30b20ef135d7a666f9c357e41eaa1b3f75a26ef90c262415d0aa791157b65ac5fa6c97efa6ca9758e9880688fd2790bb29efaf1493af8a37f8ddcc57174faf878b092b59565a26232f95df2a5894306a5aac76686c3e7a26f3f55faec5ad3e885499b65a8dbc94e4d16b29839af96fa7d1ee88ac3152963ab3595dc26e23000917d01fd655bd49a84e6cfc2695771c7bedbedcd37e1834f9de1f9ecec58817a36d7a4f10fe32bc25156d2ec7fb0b7fc91e77435b75a938a850d1a4019f0e594b4144a4409a82a8f00b2627f1e6ea7be06b72b2053b54d2a397fb3dfe779e466853cf87888134c2930a6be7dd5167350aed0a83fe78fb5e107593b0d7ebca2879b7192037cf9853435c36cd939c6bf3bc52e8434bdb8111bb6227a85d3c50256053345702e17b7d514483de070c8251765b9ef54f944628fc08e24227d22475fb6449b30bdcea085275f8a4fa486df54d5e9bcce9d9b1c635c55ced8fb6191c5cf9f2b81c2608fde79962e403dd5050d2c466d24d61d1c31a2c42f6c3170bc49277e1d183ebef6a8bcbfeb59fbb692cd08c2f006aec04004184c0030ec6a09dbd13d2f15f99ac21321d95d216b756093cc6aaac00b9ba13a347ccd4d1b99e68bc5bd573f6643b3caa136315cb07f18892194267170d3c699da532f8038bc505b2aee5e9e3c3a0bba126d681c8c9b46eab3f929a9bb38913a3ff7b6379fa423445bfcdd895f10c9fca4316567a7cb9f328833990507748f45e6c9e131d68b25c64165f9a806d102c474960f40a843a716349f6af33aabd0236378021f55cad8b2a8ff8dff17ae0588e8f30ad44aaafa3ef87151485a1dbc5275e4af4e3feebfd65d85c8f35a0ab8a445b3db4c09a7508a44431cd8b365e53da158b7b3d9ef5df2af7d8f3ff29fe19196b41cad064061850203f6ffe45f7653741289b9b2d6123cfc3ba7db5a5364f95709665d7fcc15e2ecceec1b1308b5c60fe2133d8c2a58ba666178a35660ac9ed8f9f63b1ba46b6788d58aed05c7d34e71a256db6167b54d8e1e1ec42051a7f53de038d6bdb59216cbdfbc369b20cd12a97ed399008ca13b288513782db95d2f5edb876bdfe5f0c784a0def8f1fc0216d2d7928501b2db9ed8298f44a89f25ee33add89aaa765f44a36163aa514e3f9b9c509011bf300cd7a4aea563670ad7c3bbb623c39bfb7b6ec15e2b4a70612abfdfff7cd4fdc04517d31d20e6b3a21a8ae5989c467120c0b1d92bdda81efd6b4baad553cf0438be45ed9d946234f6a3e206f29d164cf39eabaea041271cb551ba656607e163a3a0e01bb7ffdce615b42584fce109a0c82e30f6f021f8e1c093712b4c319d9f85bcd59a27d3782e1811b18bda091454068a278061da464678e0f7836ac4be057bfd4052e5fc413873a819172214436c71a270aa9560950b582939f7fa9ecfb552811a653688f6ecdd503339ab32abf626b7381e71a6505136f3fdfe560fe3b93505d30d7cbb61c75cce5f956f7ff1bb457ae015f5d404b12c505acf30f4d69d97785b5d731e300ff0337fd3bf45d51c62100e34808506147eb893ae7dece3e9084fc80428e9987342364b2d213b00983f8a81aecba7d03cc5900433403ab6f46b4e4e05c4781579ef6ab7f16ec790f3d30149329d8d944bec6451101b212592edc4d573dacd8ac0de52c8df9d9bccc260bea20efe450b8bd62ffeaa9e2553a9d39cb6f50bb911913747c69df6b86a6d81162a0c4363e7e6f25d67d3ae1ddf08ed2c2f6d538d15889dcfa02209cf122cefb572c43f235d7fc291f78f6b0f7801f6618da5f15ca4108af54ab8bdb2487e827e54e9859a0cd931b83a6d43e982712ed158d56242fab7188e456deeb1602eba48081066b0061e4b176f1ff63844c4daab3637522b53d66d6e60d4f8a2488ffc9e75061cfff5ea53d965d56b8866f5acba1fb4d0c5fc9ceabb19106eac03a2f5f51ff94189abf0e4536c2eb349d16e898b573c1c48eae55a5628ca0feca96ed55ad8d1d5001eb5c30bb4184a648d648379ce4880b1451e9ddb43dae9651ab8b11f3aa8cd515c951068aaf1df067c8f0f6f447afc3b3583ef3f07b3446d049c23fc026088d8bdbb238a4f7641d4929fc3435bd148ae1b74b1a290c2a212f782f41ca2ac95d16edc880404c3c45da5da8cbf7e5ec9ba50ecb4333c9fe450f6cd121e4ac9f003811e0cbf2553b3c2459d7129ae53d0de904bd5013cd11382efe8d219b416a1e89c9cb3735e32b1779328f70486a654fa2a4e556c7d4350aead3aaccabb59fbe97265e1f649c8c7d00c17b79dc0791079c9149f5a7623559307455a4d19aca05b5a3f3367f1111cc8b3c68a12e174735d039b4b8ceb74d16621c1e57b34206444c4ee7b8410f1f07dc36c87bbd3edda891be36903499ae21f6707a89ed7887539d821aa26389519dc3bb328cccc3ffc9fd63a1517af9fcb4e4143f2e7eab1047f42872fe1590f6f9cd09e0a65cc52dae70c90e4e8d0ccf9d25ca2a6f12177d68b8e758450cb791e756202fe19f8c3a7ff50a56f699fe3548cbfc5c25f9fa3b87ec2f39c6a40c58c23b532212cb30ce31ed309a8ffe832e998481d9e1bbcecb96fa6206250240b77a902fe0e266e6e58b6500bcf72fbc2f998fdf0886a0f1439de491b4e627ddca670240326f82744e7bda53e379c26da0ee66b5366c9552ccf1347fbd0d6c96e6e9d2aa067669742dbc5ba1fbb208765e28b4a613204a1d25cb479e9ec6cf6a10dd9336ee19c0327acf50383386fa623ad850c932a7768f1e1ec8c35724111984db0ffea23126438041550e7d215692777d60b68d5993b71ecc791ceeec87b7305008ff7a28c4195e40e7a711122ddd503fcd3b004a83049e21abc8ec751f793659b3baf46e63488982e2c6ea684fcb7077b129ca3ef33baca4e72bde90ff9f6e7a2352347bf44e487d010e47ef4686780c78de0f3a6fa36933c699d587b65ee11f03e47f59a44937ebdeb52c6bd4477c9cbd03589270e68b72ec89e729f6f04ff04d74bfcce328c5a231c5def320cc86773c65109be689dc8ba1e6ace73585aaeff15102ff018ab6bc3cfb6b561564126a4dea09ddfb8bb93c8a5ac1ffcba8997182c1fbc13cb9a10aaec0208a89a09057c781f6de1925933468bb48bb4fc8f6db66af805f68e072dd640010353e33e6a4473fee7d6d7d72c3f6d066ba56fe50392f4f0afa90e7ea1bdbbe9440d28eeb722d00f0d56d906dd83ec0c450dfda6a9bf8d8387d37171aa92aa4c67d2603eda8d1ad59ba27663350fc540ff2f905ba4d0b094c1e0c1eec1ae971045ae18f2ccfc5996fbe4f408593ee3b79ae83a0ebd71ca1ac6c48b69ac0538b73a3046b5db92380dacd5c57b9852e0235bf030e5bd0dfed62f20ac935f9854b7a5dc7452701387325552d4a39c3e356fe22fe629e7ecb3e9d6456981fdab3e243a525aea950115342faf8700230f39d914a4d0bf94d45512e64962a9125a3d83da6d887f27cbe7a03e590da26d6805b2ed5545ce70f96eb0ccecbec1691dc1f9c9ea87b887045fca29730d94a145f611b5d1faf980e5547d09bc2420e5c4fdad8f34a68e2e59c1b3a5761aa281cc5f02154b94e6def32763a54f3862c36618d2a573e54eef132b84b24b2f30ec1e6330df05aff7d654e9faa0bf2cdf975a48812fa561c8c5ecafb3a4346845e96478c3027332314b47ccea7f48c9b4f9faeafd3d2ec1e10d5b8f4ce547c090c5ee333e0bce5892e0130125c80fc99de39c9acf5f0dd6fc4d8cfb8b4fe2f2b23c78598f55d0ec80078e5cf160fc74daaf776cfc3e1d6b563917a4dfd2358d2407ceba94ccd5a8c703b458ac7303ab38a2b077fcb2493ada065dad89bad03331582860c48200ec898285ecf86759bacab8fb13661b007749d65ec8ee7e2f690e8e5ffc34c0bffa84769a7a80dce722a0c5cf4751b86a924748501651e526b9c11bcd071423e63537fd6b1b13a7c900100ad2eed5657420db2a713d5df48b4b27f6e8cb517d1f901f82ab3ed8e93b074af39b173b03905b5d777c1e1aedcc944345bb6953cc066b39c05558fb109de91945abf018c6bd538d714fb1a7583fc23c5c23c192779d1d309bc7129ec56f7a500603afe9128f10a9c8ba99afe3b537bdb06f362d076186212fda82aada6f6329638f1ac2b8e72f88121dbcf7a4656cab438a5b134ee2be83e43f6180798df07cd67ce6f09905873d86e3e76fd6c484ca2f79ea0d68a613e4817b3bd2f8e7453714c5eda9dfc09846649f646ffdb10d58b9fbfe5393bd3799d22af55009115cd23b7674c9f918471e27e10c7dc8a575367c77593670d1b96e11148e478bd6a59d4d090e58a20aa23795f2917553496d5c60f3c966d1bfe626a47abfb3946bce24e514a291ec35d7f4d1806cf0edf1f26474171bedc87d8fec35daba709041a77ab057b97dc1f6380f1dd2fbf0ef660d022bba5284a8adcae2b7ad3ab5296b420dca6a5d38dbe31a1efe6d9e941f1d9a79f31b83fcf8b7636146fa2f0a2130a57230083b1bc6c2e3542369c23f98d96b79dbc5be5895368e7a4ae17cf2c4ac85999654aa337b2fcb5dc35cd93699723d70c36e18618436d84370dfce446908640a97a22939255daa8212184bb293f450073e85d0522a379b8db53903fe924b90c93487426a3f036ad6a3f8ec1b505f0e66b8d8961d0ffe654d2a28bf534208095eaa41ac70795f97984eee080ee324643219ced0c4f951fc114a493bceaf333b716e8a7939c80260b2e7d523e97de9bb3d8e73f9b51cc9a06ca8d98a1ef7bd1cad3f33b8505e2d6059ed5a3f9d988c31a658e025089c63cacd4f4becece9ea70bb089a4ae2aadb464fdf72405bf4225e5b136c3ad32fb6a24446fc134367ee83b91f1c175b57f6cd3e6447eeebb6662ad3b9f93bd89e367e9e106f4007837008b2ef0690d9595c7bbeb9768ca1fe1874f937c953e4eb7c783a57b53040b34d37a920d43437fcd5feb10325ea4a5081198e0a7b34e4839109f3f564a93090a46439c2b52ea68bd1fe54e748e2ae8063d625b9de266be93d50092ca15f1afecb0fd816c34c80cd70066116a9eade8d07827d24a82b6fe44e6ae346af40ce1ac20b448693ff06b9cb960bb2300338aafdfb7262ebb02d91b58d1f0a68832a349874a4cb801e546e44db81fe1eaa716581412cdc3f02f254488e545251952a1103e1abec3ddada62eb34d060c3e3ab794f4165145a3843a6360a7e4de98b0a84e7b0221f0b84b5609fb88ae02d97bff7ce923ceb75a8676c472ae3515a1222a909da2cc12f99c6484b56245b2313c603ed674784a750ab995bf1cd313c770bf716e6d6c384acea4b67d16720134f3b474e78c1305f3b5e93335e50bc3f7269e00bf467fbbe6ea2d52e213cd0ab42fb512c5cb79c698b070873d20620ac3db28abff66d9aa5bfcd9481c776227fdba85dae8c2189304c1b970ea9c0c03c1ef5ec1b5522380036fc980454f33c9470a28661bd571338d60b644935d75fa7ae06685f0cd5726b11ddf98013cb325202606c059289a2207975d59f5f6bc44828d0acc1fd64650457c43bdca784bb007676a8ba5f8bdccc89726a229d933df9e39382deed6121f28d6df8b5440d864db4505bd81e8971d882a8f5c0162e1e23fa583c40081b418e17ae308b78e2be2c8056be31d02fa5eebe398cc9b3800c7975aa081bee3776e470041a353ad8854dc2c94ff71ba4b67e712480947da7f730e27ea0881ad7b9304773249a69f283071975dedcc6d0418451126d9fd708023f3c8df23d1bf3323638baf8c747cb7bb0f72055c977b332ce856c09e1404db17980ba1c19097e717a411f8d70cfbd66a818cb0564d5dfa56b1482755e7d39a1942e7768734633351546a11b287009a082648e75cf0d20db2153d719c9a397bcc95bd49f16e03866a5c8040133dc50bb2d3da160b7485377cc59936d641b471d16c762602ef9ca4e1c4df91c9df3ea6a0cbbe0d53e74dd527fc3e1452fce423b93c14c28414d4258d688952edf0d7dcc48def80445ca659b953ae2c8adb1b6cc67952f0dbbb45f3620fb597657d21913095028765d0a7c875357ca26fa4bfd9809f032d638352d08eaba8b77c57189d5147421f9b975e3de141a420c7bd4a2e17c92f155f2cdcced8b228cd843ecb4efc9fb0a6a10b2d640d4a4a5395ddcfe2910368eb7df926d55bceca388ca6abe445643e6315826aff37b44a6d9b47f99ed5c35d16e82cab208c5aa11b221297142fe692fc0acb6a65b965bea2e3ae3dc1752a919ee00745c08d714bdd2a30b3861ea377fd37baa0fe428c3fab5d0c96df56ffd3b3f5eddb18db7972abc42f8b572b475a58ab7c9cc86de04d468bfc573d218f7226c18d4b5f3b7323f13bfc789837df5ee015bd3cd5983baab33c76f85783d40eee38311421097c3fe50f5349ccda432bcca2d887cb179be2385dec625b44979da58f9719bec84874fc06e6356e1c07ec3b60a64862b1ea909fcf2c41ab266b8009a5fa81ea0e88ca7353fbc469fe6e12aa3793b8ea6d3000b35a8e085f9ab86a7b0622992bb76cddc7c73dda9ed746f27f761437c2b5f304c7a53fe1c13f399b837fa5755e6ad83b3d1baf48627e91b582e6b24ce2bff9d62e45c984cf3992f64a3ac1003375e0485b3eee81fd4266135e7630fe5250b1a3c4d61401bc50f6ba1e705debaceea62e6dbf43932cba82d625728ac2b0c6e761632e8be56fe4f9d7f2a92b0da22ec21b013f267d9f575b87c94bda44af7ca1286f921bc002af0271db90fba44094ac106bf428167cd8b47ca4f3567992742fec4b083ef84457fdb3944ea9f3869cf6f742428616da7d102df1c0f872b557dc0de2b0420638d342f9fb7d47b5c74835a1e15ab89d471775da50ea81d505c5ca9b1f3580bd949ad71492ab660e2bd5e67be7f4d17f43dd5e99468eedb582efde77744233e043a96edcfe659c9d2ebfc79cb70f89ecc21be042ba4b8739c48ccddd5717217ce351da288cdeab831f1c52adf9c7258eaeac3c197a6a2d4a7313aae9c11f4f9f48e0d404a719f25ea23f61e2173cc71263428ac5b4937f44ce498ed1ada161ccf70b4b4e63aff7682fb233fcc180b02e32821fdc7d1afc9a2524357e9f797336ac3a92caf61b4a1f9077459f69a58f8adeeedb444ed44d075ff3a20f1ae77834d492349139a0fe2267a5bc0ac8c8f0bc21a392bb81814c0975e334a429697f8c14de3cbc2bb28044a649624e573d4f6228dc211cd8c57121f5c9b169d7aa5c2fc03b2c806efd8d0314a161a7d7bd76a313540155f7b0c46a80443699b77f9ebd64a30329c8f38125cf9d4798cab126fe776c51aae5d67df64c2716805cf0cdb63f370bfda4ed5266c5bdfca5f78129f0db28b56a8ff8e591a23b0d21e2565784c36641b18edae2b23931b360eafc51393ef98056453c316d614e594a648ba9a917e19beebb8185cd4551038571cb10c58f5408c13bf65870798e973683205e43955784627f52deb75266b08e20f593f0342314e30a0136e9713b7fefe6af7ca74c103bf8d4c477bfa1becf0bce74a2ce84f9cbec2ca65da4e3a3d3b2b4362b697e480924da49b694c5144c5c16dda53e4d229c2483168370fa73278b1b825d3a23676d9c51cc08662746ff4ed70c94284e79e2c7d2725f82fa534b27cdab552665ffaa7820c178938159dc3ab5f3aaf3be156c714264622db9d681bc7ea6076822a3686fd2c7fb3064d5e3c79566305ac4c40d81df44adeb1eb8d26867dab1af6e8545db14db2838b266dc982504a810fc53e15e19d81abea96b171cc6d13c030eed903e391133fc24d7096c51293153f8abf17b44935583ebfa9a875cf53385fd768d3ab6ec4b2dc5535c16cff5fe4fbdba5fa118763e03093467f5ed586956eb28ea51a63ccf7a7403d2f195601c92422e4a76317326123d289931c4979676b9535b59468ddaad67ed04f55d5cee03f4fe012490689c5d55fa56e12cc18c00fe457d2c7a2832e8a32f1faf280c26dd35ca55a718a8d12a32fd40bcf854c55e85ce6a1847a6958d8485afd0b80715d4d8fcfdac1210d78c4b22781efc4f661dcd8eb170570de63f3c1e18bf14b09536a7cd73cea9b3345f27b8935291480bcf871d8eee7883bf404cc391ed0894f922de07bda36f139e9fe67820c4159be5111cf999cd1d8e687d0c4ffd5ba2e4aff5ada5f665d7e5c497b9e8820469a60523254a5514dbe238842973fda8b6f99524b93aa8cdb86f8ca66604572d7118df95f175361aedc7d9a421cf129a5be6232d9b2e2a6fd06c1f5ec53fa7b4974a5ab602812928b1040287c956b4d96c1de7ee5fc7a8163f88aa1a45d4943849ae04d49041a90329628f95c8089ef00926fdc707048e8c0865bd2b685f4b21774932350462dc4f7bbb1fb619f5cf2c1360800d06475cba9336942842d15939164322b97e3360f3729e8be78d93f73db3d81806c6d0435f2ee9cb0dfeaaca859f7f78405150ab1cfa7be48b466a3dccd32e2361220afd6287da4251598d95b8904d9ecb810e3212a768d8543e04b133a3871f41ec9eb15c3322282f25174491ea21dcde4cc2b6b62f6d9d03be37cddb16935a546868fe122b6a7b11c813e460b1643e249ed06f8deb66c66fe7bcce5762a00223cf2758914a577f19baf9a0af704d97739b91ed145b78a3922c14d79984c21aaece105deed081e0800ab99eb3b2cf2f611903ea829f0910a7d6bc1508ba04feb60424dd05e2fd92bedad9efe18a97f933234b6c46fe58d0c77fbb713006af648b8759a3380774a819deeac0630c1654ac770aea38639be0d897706d2cb29a1dfe609b49bbacc9a09ae23f13a3d19db654097f5012dbac57f2e3be3e84c796ed480a90a11ca259f7194100a173778fd12d7e761f871851bff5f881558594dc46f0f7347c739bbcee806e85c4951f96f867b2100073f1030471c454ca8d2d94ca650b49da12b021dd2f6f097d72edf3e78332528195e0595e7406a86fc3e968c6121f87cfbade367be35ca5eaf88cde36a5c386e4b182f0d78ad1287f0ae42d20a87fb0a2fb84a1f760e59fdb76a7eb0819d97323561bef4d970d771dd57b92610d6d67f4e7e606d1a6ca0b451f718dd013215b9a280f1713f2f62b2e92d2e6d50c9cd9f641ada4b85e60b6c0b21e9f3471f7ccff5e6a6493c59b30321751f0ebe6b53a00076579ffd213666a6768016bd1f04a94ec593e9b5260642a5e23ce4d4bd50e029cfefc4fb8de68b6be0b479ac752bab308af3724777d93b855b6ed60d20d45afe44c69b6b2d4721b71487114ed97a632ea615fc98c7cbdf84e3d0f20f6e1215b3e8792399b9bcca9f866bc7c95ee5331f70a214576beabccc9315a81b5caf9daaecc4f8631ecd1e98c2d7c2a90baa14e3468b59a7df7d793fdcc81da81b4bbf49699736f1315c09b9369085bdb11bd6471dd22cd76aea289818cf9f4d1804b24df5554448a77d432a36db9046e3ea3398defcd4575bed943e5b639c4ba83acc1e4c6e43ffc07bb25358df45c453f74cd2cc8994c44d88e0bdfd113f03905fcd164985c9296d14c6e0fa24863b34795306eb69833bdff3d0af32717a572c43b0d41dd70c712709ed23d8a9a03843da30b72ac4c18080a44851b47055df96eece242881c8b50985ed12ca661a1ee3c354312c0775cce25a5a1078556916f2a7887eff1f80edb8d844b195bf41d72116f61bfab7c386850236afb79ce891c106d541754269257a94e459191e4aba9c063af494c4f0919dfa411397c20b9e4ac87050a51c4cd48da905833376c01e10048284e25f53b80f8eaab202ea459fd7f8d9c406dfa47892153b233bde9bbaeba74b01adc95f87e1898d6e0f3193cfe7ef7f5dc9090cf5c14c0b56e986c06248d393a20bb1beff48e860ca8717ffa7f916c58968617a2ff5c639efac151d5304d7fc2743164e7e0ff6e9dc313f40049150c89897ea1fe2738b8bb3a37f048b4803a4f7a4f00f7a3e0de83fe89ad1e285b882eea8e0a2705f907207078550951e0ad597b4c857e60ff7e93df46fc90ff27118dc22cd111e58498dca40c12ad85db7c4ef0026d50b0fba9b91b0160ba2f310ee5c5b67e4ed0d32a2598fa157db9168e0d2d6e86a337c7524aae34acf784a7a9feb8ec9fde1974c9f402519d27e6e6bd936833f6b2ec2b3b938ea03c4508a92aac1b714d051708e70d26a12c3447d560386c18c72d46437a2fe7c739a696cc1f4d8d4d444ff1c5cc6f137f9d4a00239628bb860ad8e4fe52d50871ed7fef98599cdd6d8e55cbf5589b8e053b9ffb436a0aae0b89ffb6a05a980f28275bfe0ab552da22bbfc3e750d41b04fee155a59c9f1d1d902a60640efd956bbb0bd8013b668b19ea73292376e32b3ff7aeeaec34111d54700835d4bfe6165bfd20dcd16f2002f7ad76cddc0afb071b9cb0be98d96d06e4f323facff1a5af009e9b16b6e4a4535335d69c5aab57223a84e283cfb2133fc0f638bacf1e424f13507de67e6f6c08ba852f4572361fcddf76189940308b8fc48f6f40788be4b8f22adc1b93f60018b9ee1b3116d2f213259d00320d0381e37e2f999677fd3fccc748b07f0adca87383cdc3c115c28cc02825d633f4043b61066c61e33676fd3791158d94a5ad0551e8fe5f101db1c675aac6287c367f72b8d822f876f22a4e4eca5b2d9cee2ab9e88072a6f5767357b95137bc6b10ad9f17f8944d5e069404a6c1e19c672d65267dbf8a7840892d064b279406beb2562b8b3f0a08f4b4816a6f530ecb26e39601f611b08011782b134f7a3175cfc66159b2fd24c91759d915750d18313e006cf7c4a0a06cfd76f7e1868d90c4005af60ed4c6d2dc54f9c9e5defbe53006aa7842497c768271d288fe4b96ac0b22d984fd103a305af844de01e2ef51f6d357fabe945358bd91a8f0b99852663594bea0d02b07a06e4810c3792e0394141b962ddad7a9e74ec1a185afc82e2c2ea72253a7c929defd4f40997810492f983fe181e2c3f2b811adf4edea479f8667cf8fb07ee7fd8bf8b9dc62ee19ecad80ea9dea538236f9ae9d94f070c69c4bca6fcd332197f9ff53e4c9cdd7475f03078e9e47b3f48ddff61404bae84212854520447c09095885fdcd836fa3d62d99a27a1cfe00b534d9fa55308c52e29092c4041a6927ca4cc7cede513696b739a8ac66d398922567bfde92761544251cf0e9f2173cb4c02ca6d774a0803c6e70ff47e052ca8380688ae969cc2ca4bd1e9fe3f75e3fd86718574b810bc4bd35c58ffb949abc99171775e8a2fae9a331747b33bf7633117302105e5112b78283156cd50ba2a7d4e02b169c8d33a292bbcde231b5311b4ce1d6966465924c5a732324c617f11d0f5ca820511fa8f0cd9372826d5cc3ebdfa634ce25ca3cb1da22dd71b39143c98c3fb99f825886b9a5efca119338bf2df3c9b5c86e77f171217d7738208ba7d8e85e68ce3bd91a0c6109f4ba46e24684d0f284e74f3d7551d8dd9fa704f3d19391126521968449451fe922b7f1a758de79e697cc254dba33c3c81a397364547a69c55c707e39dc0469dc3c952a8f98523e56166ec2aa376d584a1698a4658b5f683432b30a73231cb390fb4a31ddb27bc2bb12cd3522915ececd28bf52efe02b845b2a3afa8800a3c003afccec99f7c34641a164ee88e1baa1d160ce28fea450fc089b7579108009dbc73b6160ff9432afd480d4b390ef9349b3d340af7e885b3f8d1d256f5addc56a9f37cbe907770781f3c1f7fcc5e71d4303d0d3e83563eb8f9efc67044adfd45e77eea375807a9297d8efea65dc41c694ba3e6d7df51e2278d6445c779ccd31879e7225fc3f5c83a1ccd8257f17be532bc0dd4408a6e566ee1bb6932cc4965fedbb249c74deb5c2dc732225e62bc8ce79d602c8593a4719360742d29e171cca49720081787b3276a0d697fb10a0a251956e30bf94f6a80454462f13944b5b6875fba0c75c8e5a173fd62daf1692f96ecec2cceeca661c5b3b07cfa12258be48e9f7085047b8173e802019979ebc61c2035f69a71f4c6f3386010ef1a9e6dacfc8d07ab710159fe5592f0c6fd2de4c6617e7dd52dafdbb4d5290b5d9905c277ac1c42358e96b6d2da8c258fbe6e15f9f5cb24aa4144db237bec72346f0b8e44a163c9e0fdb2fe3799855ec747faa7eaadc9588a3bdba45225a921495fa57024e45e48eef2cb33a7f9526064c1c4d4272ef99ba61cf428c6c5d58fd2e60b74bcb21995a4fa7c2751bd95f8ffcf8b3c0f85d1c6766d11d6f6fd32cdeda549f4c6fda009cad96ed598e01f62570524e55511cb2a3562e0b3cfa9aec719581f04903757602f798ddc924d6559cee0d3bb81b8914b620f9198333a1da7ba5c3e707b72838023e25e4b8a5e600aea5fde7a6e6dd74e40ae50e875dfd35399cf1bbf7dcf35a9fb4a8dfc7f309404d61e9fb2cd06811856f1179bde836d356231de51a03cdb519133f690a3c5168dde08daa0a1652746f1683fd92c9644d625a0271981831ae9c291d0acdcf7ccf9f6982073c2eb26e29df78b5b0ea46b5fd69fbe26d1a7d453ee0dbc7d463b423c34aa6e8b5a42b7b3b056a5dfa9c42ed0cd7257c3d89562af7a4fcbb7ae30c66552d860606a70c586bfaa286e16d3676b47020096ed206a635159db271908bab92d70a69c46418aa32728c9e3e1782f14e356f0d8ff51e4005ff6c9b13bb337d648f0903315fb16f385c7302b8b08b53a25a1c18d0f062fc515365d1101e87c964a19e33a526552fb3e0a93d90a284789f6d14d21b3dc43d9e8f8edfc08f3c3957b8e417c4e1f20f2f8ce236c444bd7b822c3b9f595766e8ed28c2759235a74a44b06e7daab46aca41f36e43897fe81d3d8ef6bd7f2031cebd0596e05d84ed514cc0a7edce26d15d5619677415401e6b22ebdf1771c239ed3629ebf68e4f0ab7f334a42debee2eefd3281f27a3f3054b79b5215a8f80efbfb0d3c1c4fb3606f845b77cbc1df44552049d7d5c91140228c7b02a630811d2599dc93d0d7e8a1fc1341ba2327396c8f5e21eda7e5f647aa4c8f42b5d7438e3379db722b2ddb4df40789b00b9c929f75aa79bfdd93101cc1847a344a56e0a876c39b0e767e16162c24f8fd8d82071b19bcd537062ef277ad5645becdc08f2b8122b2113f3dd816de22f76c44d387e665dafa80693325f9e987db32b12a9809818337b84aef92f97f17179ff04956fcb8bc766b8ebaa6e93b558e8a111cd97981e74afcb9fe6ce76b47874d4afd8cbfa4f115e257f366dae8b5902b59c6445570fc8ad23ad2c14bc592a01925dd94c25dc46d6eac8ec90d15257b4222c35fc500559d76531f9e6643ab5aed4f14addd898f54cdd9cc28b2941fcaaadb8ec242c51facc71ad947afcba1d4ebcfd56c956bc9649326284fecb9435d67f2de9de31a2fe4b4ef55b30606c7d0f158af38d1a3da7ee1430dffb1e967f9aa81692ffabffcf6b901470bba547634a62515cde103fe432991d76d74010cc670cbb250033015976bbce42f55da258a1a917dbad729fd9d016453c19ad740cfa4fbfae8e41e00011468433045770180fb130de329e19a340bc65c98cc608086dcf774757cad4c705f911bd74ae96969518785ffab81e1fae45acd830c44f83d9f3d85897d31e1a6180a721dbd76ecbbd0cee51bd5c658a03060d086a2e777ad3e11e64aa0aa0f68f59473b19bcfaa8fba4ce91556d95b1ea7f9df99d6408a733f7f34f11f3f39ff728e8875710eb6254dc160210085652f3d3b232b7bf0428e51f2974b8959fcb8c2241d010703935dc4773048fbd42dd257a3a09a4776ede3d85fec3bd9410264c6f0da1fe530f93eeae299e44c90e1cb10f7bcbb02851cb9054d1536eb4b82d91c02194da72be172370b5926ae50911f8bb2ca597dc18e3d7d2ee6c537f5796f3eb0173e1e3b22c883700890b22d339c577f02ae5c76fdff91e45a07e38b6a83a9c23559427132b24641307b3e36374ee96219ebb40631740c56b12c1b3926f71ec2ac39f69b17c4670960934d32bc0b1a97cdb67329a672836b53fbc688d7b0ee848a2b99bc3a3b9f3ab4550967e7e9be3e2fa79a37a6b644ed664d84c8f71754488eb369ef9a74663033982f57bfc24c681eca4917f461cd05478ff6d75999e2e84707b8eccf7078917f01c9b92eb78c1074209a8d1677d26a21446544c827020c5892e88d6757e230788d2f2182aa6017901d4801d85fd96e6f81aac9f6b77b4cf87346006df1a3d07f0b650cc8c29758922b2ef8ca66607d09707192b0c115bc02fba58f532ee067519fb95cf8ebd25a59268fd9813c97c321cdc4d13dc2404c8833d73212a09dce7741c269ad5379467ddf30bfaf74a707896ced8ff4bcd3efa553e843f8fc16f1b93c9f2d86efbc16e299465f97098df03eb1a0c4c9b4d887b04c380ea79d9bec0eaf9243fef4ae36288f2b5904d47e4075167f18813369edff40591ca70100b8f70fe7b2a55e64fc366ced6e8a17e7c3dba9e2e7cac69aaa9904c36f434a9e396ea325c0276c2ab458d1a675edf5ebf6408bfd60397e7b34bca5550cb0bde6ecf3079d3e7d21cb2de4d2a90664f787a3517248d776711eb8d3e0ab8104468079acaa371cfcc5e1fd3b797a3bde8832fa872741a69037b8ccb1a83d5c3ef3f8ddda50a221b3633fe5ff4299fe987a18e72809793d7b6dcb9cf9a352a8527506108a90c220a6495f10a99e1dbb0d80e4a58489f32f2d36655892aec4f050a25634a4567d0b0c8aeb206e702075bdb117d68dacd460d0b569029a559263bdf5efcf3d63cdaca57f51333892f6946d0cf291408c5fa79194f0eac25c4106930c229564c829fea0416652a6513bef2beeea4941d744848880b1683e391124d22906ae536f3c5342311b0b99edaad3d69db966914e41c209aa80a35796fd5f1ab28fa68992e8d5b9714212841bcd2cf5c1edf335480c1c7947db81a9d4901493b22c58de42a10c2169632ed0836ffa61e517d5322c96415711840b6b8386eb4f55f67861e10f6599429fd7eb41f0b0adfb81474bfa96d6dac52fd3a5eb3dd7727071b07ca80afde96ea53f456858471fd577b28ec36c44dca341394a87fcd787f6de538e22db23c81eb8b34c7a46feedad1f08d72c4a793df19799fd850037fa841c2cf4afd44d2bcac08acaf1a829a49ee23804f0b4ee3f7868b62e4763210ed614e747023b74aaad741148ba48879a28657bee5b54916c052df274e4cbcc7c4fc01661a3781be647892607b523ec22b00f6bbfcf0f64cae99f2a7fa7f18fac76b5df8a6ea5796fd9f8780836975248fd263fa0437df8217ac846df8fee98817349b93d135d7772ec569aec875a9301bc749c71bf9f16f59017cacfce612bef9640e19794e584a5cb34571064495353fe7fc38fe1f52da30994fea84b6290c4d10e65c1c9a57da7049607217dfeef24b5551d7c5bd869ec4517881b204122ac39a8e262dfeb1301ea74c989f73d757b3ae168a3722883a6aa99726e1c1c1ef689e16258d5037f741657d786eb2fe564cad40a5e814ea9ff218f0def414025949e60efd3fe9d6523e2f16c60e66a5d1d042242b674881c1d97532679475c989dfc1cc63581853e58eddeeb4a68cee2de6c0243764d88533c7da7737e188336d047704cfadca6a16d9a6032ae652dde5bec8f7a7ea362c6be493c443c52fea9c3cbb623405d66436390365622c7c8931b4eed7c6a1ecdb8b1f350c2dec8f0ecf1f57f0193a846942d3b823544e9991fcfc3fe5f19fcac9d74795e5e2901c9af49d84e2dda34df3eb249bb8fa01d6dc03c5fb284c48ff5ed195bd432dcb7832bbbaaeac583cd22feb02fb4985828cc7b8e9ad810eebdd68cff1fe572765abe0913443f304813f6858da2ae37cfc1b864a8d08c9b967f3b13e5ce6236268b994c82a4cd512bfa15780c1e8064a215370faac22dced762989c7775ab34aea16b60656eac78b3494e9f9a63c6547046a8fae514e6fb37090aefe3a6a540ca2743c137671813a81b00eba2f22b6b6ce7f4fc68cdc4f1c8a8c31881f4cc97235c39de24f994980c60f8e4cc94bc1a948287f8a2d965816a8bcddc0e7a4e5636b1942452b39c46765d969bbad4493068121767e18a2a88578d1389545535a2a14fbb5cd1c6e1924d28423a0280df336b894183131302757aa2c30f2625a75f3c8ff5c225881e75062d33caac2b48d4494bf61abf0cc28ee44dfc7df6903080f07f008669f575eadcac86d578aea18e7eb1b05424f10e7d292acb2928bf213fcf6470956c2964542d38a6e67ca30104768882f14da3d4d54e667b313ce0fadc0832e3e998e73e951239fe1d8be929afb58feed532e54eb175413426dca2e8ab721603b10315460c8e6b0458e4234dec4afc92e31ce0a1866293e7fb79bc507f0eed5807d63e44d31f5d8e9d5e38e384d4f8a36d409f02d38d459098eb666ed096caee29230fbfdf5ff377d81fd48d31cd1e36d2ce946f4d76d3c09cf8ddfe296b74c24955dab7e9dae5990673e60cc459005902d611f9a883d1813f4ae4fdac58e5076b9516fc39303e10650b2043ebc1a20103eed09927e76380578e3e72c0a2cc3bfaf5dc05c22fddd04d3e7b4ac3e6fdc4b00c6c9f7f8dc38cebe7354a3e600c0601b36c6c1f82f791c159b098a37e7e6250d7e5a2d563be68e4f81648afb93bec248ea6e46c369300d842bf33dd99841eb6702011cde737e6b9e9b3fe67d524d4d92792d1026c0c4790f46cf65af8e5ec0d126543f138a35535d5dfdd98464556723ad864893093e3bb4cbde45504696b8eb3df27f9a78c44a3e7f54ea3a452e0f7c6484ffe94abcefdd17e908fda4eaca0a9207aa70e0f8c0e5252e14588b0a7f496540190eeabf117c3bd8dc4a4c3d046629a8b49115daf5eebd786718cfb6b99f1917b703240ed00cd4ef748af6d73cb5d279c16c93d8a73fa68e0d9188009e9053aaf015ee82f7c3a4703010fe4e2031581c2f13c894f982d6f9a92acc3dbd356ad6efde6775c2e4d85a72761372cafbecb64507cacd7e73459d94b17fbef6c69ebed7a41960068b5264e952a64f5bbcc064147262b3f7cce18b6ff8f9107a3101cd3f3a33f9b20cb0d9a78a0e1277f899d0500a519d583549fca22e0a56a27f509d7aa5343f3db3f623bb330166b2574da79196ca059950669cea9ea898a6c63a1f515eec4bd737e0fd44cf4e06ee9da6e36b4167f8cdd58f34276ae4374e6fc742e2e56bb94ffd244ecad521006d9b8eded2d58870b008d3e30fc830f13f7a43bd5c626733d55c2f3f69480ea10330c4f45cd501d81c5b94ef132bedb4230e54e724ecd0c3fdbad5466f731a737a8b1713ce0fdbc22f12fad102307cab2d50f2c339bbaf9c8a7fd63d040caf374085092260f2b707fd7dbe834a3c8b297c89af7eaa46982e925905d23a2926f702707d632e6805b9e90dc111d16b29e2e4788f5a24e564314bb1b47ea620230a90164c684d70a336ddf0a3bad3bf44c0f2a3610bba160abf8268467a166f13e706c93cedc37d5c27e2893020b671caf4e8997579a1c837ea897e2c91a58a116b3daebbed0f7116519121700caab906e71f3af7beff634540eac24bbf22ce6299600ae4a941b898e95a7045928d48e642ea02253817d4b17b4deb35114f35a5bdf5f4b8a5133f8430c1af2305b32381e0149cb588fe7af89d9128ce24d1a7c843007997b11566a9c5578d62feb9ea4608c91a129c247c9bcda3d8588f5abb4f2110e147b3461804857f8e80421362fa0cc299b09ac7a0c98e66659a49d22e8e5cc97c4d17a7e1709a3abc9de81a62f891a14dc5cd934be5805771d59d9d3c61216675b239d32ba3365b957f45b221b7afdb8472e7192950d6f93780c111e4721884cddfd7476ce31a37742fe62469805ceb270ac65ca971932fce2ea66ccf12feef98e51b59c8100cafdf3ba5c876970287bf8a834e737b629a99a62ab624c4d5e04dbf2320609b28c0aed68ddf831372f64ab1938a77f6d441fc9a7614390ff231f9b17bde6eced12570b4f147f00889d87089986e6c89f1a388b2fd4e109bd7ad984df859cb86a77b17c36a8bd3dc5a99570e563345900d5d528363972ef75186979c71a5c9a76967852eba3551106b8ade9614176031663bdcf3ce7c93a07884b1f35ed3232742c53c2c072449394dcaa41914ebacdbe01119283996116c853c87bf16aa20e58443c2209ed75266f2e8e5ba1999b7ba811253e92c4abb900009e39a6a6551b2df63e979f74db29c9e9f09fdebfd9c7d63da9e2b4fa30256cd563e96690b39491757b3f60219ac58962a8db3b2e060a21f25f777a60240bbc7b6acf23be4fe934704f59acfd21facac60553cdf168ffb421de2f35316255166425c237c47b505dbcbb8aea52403f59b15b734f187f708f5d0d737d530a2691036733dd1d7bc3645761f501067ff13a8cb3579fa0b476053b6a4fadfd28e4bbddf9bdb5a51b7539b4af34df03638423c3dc483ffb3b383e0a3989646a1fe2145f6078449eb4d9dc591ebdf6bd5bf0ffc53f7cd51a250ab6dc2a0d059dbe6f9187c5dc724acecfe3d18b54bab6751b6cdb1e98ab14160bbcdb2ca7383646b61965684d0a16f47ff7e61b85241e220c3dc32eef30514773f4ee5b5a6758b9900b5e0c1c3d4e731856332ffd327ea58dfa28b1f8754ca508d6b2569c429c3bafb74b38821f6a08a053ff4dc86477ff8d5be67a45b0e639602cbf67033b1568b8e0644e2729e3bcb8d26f202e418d5de5d1159015bc443fd8983d42ac0b66d4c741f8c6a8b59d7752cd04cecdd0026b67fdf43fbd98407e800cd04ab92be5319d04f7171885e101fbd1675e3d1fc70f173797ea3be469da784fc7a6d25cd1be0b4c4f13893de282af818af50dc07170150868dac167962da87fa98b7b2096f9bdad16c69ae4d7b3d112150597474f416db07ddb658b02d50f8a0889663e20c82dae84225c67a74e29ce24cd53cd7dbe2ba1bb7af6df01926ab3a8c6af414285c54ebdfe0c161b79a8915ac6ef7019db5001c516a6943fa03713f77009fa28a67a7c6b320325ab2e004f39cf57d17879002cbf2c4c018f23cd16d0cd73fadfe9d69e2bdd6a2dd6eaef8cd436479479be0631e48a19204c4f8ffa95b30f19e644510bc61fb0a80916a2e2cefed0e3dcd13150e552e80e4ce9f353975cf7f2d1fa0b9139d21f781af7547fa8ee56ecb39d3b821df6c38e5d0a8c8ac5d0ce64069889f09500b4604d2b06a45d52395edc5efef19395e087593ee859bb5fea1277bdae5ca6381089efe6d427557e4bf08c18777bce6ffc82c365cd5013e57ee47cf072ff6bf268ff7e8055f29e72c2dbf13ca9337446112dfafada540ed14c84bae0f674689d703263081f818237e45ad91ccfe0bfe54edaf79c751b8a2f9ce210d6524eb81c6c7635ef71685dcd373170f0627dc2379300a30183b147272db1a338548ffdbb3f8399fcf4cbd1c956240e8b74b7758df7b9aeb146f581abf5e7ed648d311ae79cf5a5182ce544fcca7b120c70729e0796430b30791cd4592241e63d8fa1ba2e78cddca97a81adb39384d01ef2457f495d7fe66e852e70bed5bd332fe03eb06396eeb3893984b27f07118c9b86f95adfa3753cb4b284a5788e1d729148df1bd34ea1add1a6611987c8f6859b360dc70230cef74fe350b7f9f16b86a2584a68ed971101033ca384cd6a8c18529b35cea69359a2c57a1503d8f66f0384a0be14e212d0d24a456782023d31e43cc3d7e2f50f86a54bf02b77f00e3b9ef1ee6a4ffa1151fde46adfeab35dc60b7d978ca1abaeee1ac28c3d59d0fea0b2a10ff35fbc846b69df3bd08efde72f816b97a563f4e2c92c83d5ca5c2185b6d781eef2e1214cdcf6bfaf1436108cd761bab0a4a1bcce7606af2fa70912d2588441b974cf6ab8c4f4ce021aee29592963b5b2be259a3cf754d5597b72f413a5c3dc94785b57d9262a084761a8d9d7184f735b600eb97972571e74413b8d0b81f918c1749cd2d86a6ef4810029a8d498900a46a7a0767eb17f5571caefccaf12b72590d10658cfded1ed352145806422d01a11e6ea933fa3a277f538aaed65439fd36c6ab79d60305690c3817170bd34a03ded24372a95d9b8a6d884092f38445b1346118e4df6f5365926f2a09f77cf3930639b4dcbdf092fa5bffa77aac2079fae1a0b18d79d26c2b62dda728fabf748c8893b8777778fc63a7db8c1f942c53d6d0c8e4aa4659ec00a7ab2b1052c37c9051424b053fbe705253a32fba954784e18564a0d3b959d6e6133872137cb1af2d39730ba48cc343975b3b1b7b4695e600dbcdd9415434804dfa57b9e0d34b3334b2e663ff757bd027e39cf8f79fb7cbf53935d8d3b9a26ce25ae458ba3611643861688d4a85c6a7bb27bfcf7f1c519c96547d314e698a4d53626ad8f4e28dc365c54862b29fa4be31898fd66191c3e50205bba85b83093198f5111a7d394a4b3915c0906b13611e2325767ccc3893d128a3d84115878a556839de47e9e1f8c2853c0e9f74c9a93577df728575c84273b65ef152b6c0df35f1ce9292516d3bc1b0a72b7f969a64bbce96dff8b46e154fabc6246c151dd7a07f6edfc06698ddb86dfad34cb713ad711f38affabdb25df26e1b163490b4a9996e251093f6a7798437dc8d825a16978633006106b3e8a28f481c7ae99370894d6545f13345aa32288e0264cbf81e196d6860c6ef67eb550b6ddd5da93192214a9d2606f87b487b0734f6af01bb2c33a4b5d8f284bc9cec0b63207909ffa42a530f22186535db3fbaac36b5631e5c0928c733da2dc977ca218e725edf471cd3789a32657bac7a9bf045cfac5d8435670113fc0138b24d066cd189702b75a469e10c9bff2c3ef4e3e46a770b7119a49cc4cef9208ea91e83f9987e653de824d123f6042fe8c41acbcefd91c5b14fae33e8e7b8adfd6864ea4270b4f59f35cb4b00fbd4c33c5c720041941281434bff584725cf04d5f36a6cf2f071f00993e42f6f89933e17d3b40e15d8422f7911a6202e4d2e3d9f70d5b41a98f9429e7f55c4b75fe666848cfbda6da8895519f93cb3dabde8f5e0284553c102fd12995bf1b751b3eddbea4cfc0a738070f1f7026fe5f8f46a68da4c0a048ba80d149f4e74120479258ecbf72eabeca26dd95dde9deb706547a69ee1a23ae3a11e944baa03d5e5110aa91827125c7b9af53987867fc36772408c950a43100d7361fcb9bd58e2259feea5def43112441a6cf434c0f56f206b22fd9633cd48f0bd4ed04b709e9c49bc80397d11a7c39fb60d766707194a6fcf56c99fde604f31f364f07ce87fa805d19be98bbf0e7f13d6ca5026c27b730b0c6605c985e1288cb81bc60516f02f661d50d4e554c883787cc24ce679730120b53904b091d93ebe95fba903a6846acf4fe32bafa8d7f7ef971e5b530fb82f3985ddbe0865403803fdcd58cb607088781c1d472aae2633ae8eed7560a55b51b28994b6bff923def4da87f3ca02fd156bd273c2044363d6574c3af83513c62faf9c80991bf097ba3383408fdcaf2cd475e3e630117bf3efb38d0a3c2eeabb5a1838677c768b36d4ab94f1b201dc8717064a5a366c0fc777e07c2e4cf983c6a47becea6db37d2535824457e697a16d547f2d16d365a449a72b4888918e774b9c507b9aa6c9b8099837da07f907e630f2ab582986af933b9e2f32ae24034193e1b93f9866d1a4eba489c147cc307af51d9dd2886907ca79dd94589199c50a5fae96811d6a68a229a656030182291c5abf7a847944aaa08dceaf2e1ceb9045a11f6f74d983397e1795df6d552425d93368c770c07cc9f1460a91828d8d463883ead35faff03978801f72ba660ab70c2d48577a1e9608f708930c67fae60ee04d19b4e63795ab3c096bfd4d1545a5c2dda33dcfc29e5cea7459b28711e8484ecaff3e6929f4f5e1f5c843e03f840d8f0b1c8a62e8d4c366dcd8cc7a4b59a2825f80aebe0484f198fc2d8b551d2c02d260addfe6ef71ace39cca8d13a10b29144dfdbefbe58988b9a8b941a715935729023ef1a6fe9eacda2c217790f980d8ec6d483235f8ebfe8937851848f686a91c6a2ddb8ae02e8ea006508607e80a235bd4dc6cd181a2ba7d2a7eff692a32028a4a76c26d8ce56f642912b1577c99cec64428960ac5d978681ce1227a92b8c2e0bffc3d964220bcc053835a0f4dcd93546285518c9dd94e6b612a04e5b17d57240faef990cd1ee904b3e5f1e2aea6d55cf1edb2c7615046dd146441198749ae36cd66037c19680416ceee86ef6791dc38f176b91418ea0fc52acee7065376baa0da66ad438a2509019088eef70d8e56c7ffe7b45565a74fbb33151d22c5c4b165d5dc6bd484e841490e01949a1d772c9fb492635dccf5ee9e8536411d3b03556fef90ed3923d56c84f4dd14bb41fa9ba64e5aaa9432f92469469e2a50e2c940376bd447f473a95d7f54402dc3fb91e40831ce9495eb018ca1e23cad7ad76c97c39194b41fef120be113b7fee67be9ef92309e9aa674c4ce82f78df03bf4ea80f5f3a6dc4e6e36fb60f3d1c95f627a6798f0754705f7d5ea9401028f0ccb8fbf3381ad388d49d0a7892bf331bb97be967cae1f9fc5615d0cf42717130a187fe156598101ce7b20f46d6dc2032b4b9cd73c7b449b39442fb4e96e4c99a3e9fe1b01b6a97e1d0acb04df77dc52d0146ee16f50ddac5aecf8a11c70f02cc057c4ab9c699406bfe96b354358a075166b59a27d162e897ffb0fc0fcdb335bc35f3d0172ce9c76120a9f0b78ec04f2afc52543b6ccfcfad15fb26b7c8e23b633ad681b3b4a74dfdd904d7b94c51090072ed52d906fc922d0170af9e7541346d7b1e5c4c9a75d50d9670e7205ba6284dc3faff7c322557efa0eb938fcd9604ff9c8bd82506fcc893c4773826850aa04d706979682085e91d5119a1da9501d18a642a5c816ad972e8025ff2b3f108eb9a8b86144708c835679d07fdfed0a887b4b30ec4e8a0e08276f0e8d4f3786f85d82e38d59fd0c8cdbcd8609ea04ea154464ba7e34897508e02b2feae2dadd77070286cf717638e68a4bc49d1ced30f2c354876fbdb95d98d8365ede7f5b07bb15ff4026a85566560187229b49a954446b58ca546e4671c5b8b0810f7ab34e5d11252af4fd1d8fc32f8a5e8bcfdffa99d5e87e27136f1ce383f936bee4835b65c52093b7daa02a102098b872f1003e670610a291c94fad849e049f9ec7d5664653fb061ff07ff071486eb44ab8f607ac2ca24a95bd63e8b16e48619a722f240016084fa947bb0aa5441acf29db5b385dad82fc038e8028a0a9d7fefe8f33691c7bba87a2e54be4ccf53637ecb5d2d04c45f82112e91c223f772c5340da2f0ca57085bf17390332b385ee426cb7c3e14cf3d7c27af0fbc938fab8569892fd343d0e5f17f3fa119446459e45189e6aa500ee0dba9a083641fecc2c924609f63c2572bb6f720fcb84ccef61677c564be46d7d68f22d8280f1509543aaeacf3d7689743e9b7d97d693714916720931d9e6c467a767ea4615171469126f91a7c88633c998a1ee09c1c9d78ac2f91d949f0c0bb9ebdf34691ed57e84cd28e6d74cc9d7713aededf6b0bfa5f078d40d43b546a5859d4bb71c64e9c96914cf4faf25b817da27557366c3270d53a39f593b5644284d4201bcf35df4cddca509e2b27916d08dcff96773085ad08eb84fb7a8f3e356a34ec847b84c393ad7df493fde72225d4a7dd0ce9ce03a7c98758a0c1aec5c37b8b364687e2c446db902377819232ea23fce00f07241c150e9d5cd6f34b22c4e8de640678f5732f9d252dc85e38c7613aaa5643fee4000172b3abac708930b1283bfb98c592ce6b1100e3df4d1e10a1e23afd973282e03db4c0af08eb59dc7678d8d40f5b4af246b67f0d4a9c8a08f8e7da4a1db9d9255c34280de7ecb6a3ae564f8cb91cc1a590f02736e0ace356269c57d417deb92c80794bbd414e27b9ac06dd05bc5bdbc2c988b80a43731e81a8562be7d9a0331489adaaba9bc29580930db84d4761b7cb722ad6da16fb7cd0b4ed99a8ab30bd981f1f95e01c4b7760e0b8743cf1ec773469e642f2b5e19c7e503edd4ba877242098c069e01ac041218a967993a6abde2b87b0a6d1e1d7d5059fab6131d68d51610ea7676ee64e3255d6fa8383c2c3b6eca8e0e7875a22e8ae2e991201e843d951c48d0e08b6f36382807a3ccf494d0fe2d1b313ae291cfbb58ef0b611059a5f4399520ff691043609ab73dbfbfad545286bc8d6c7dcb3eba0ec9f5dafaf4aca5a6176cc6b37a802015782dd41e1dde0347ca3850ae1e8eaa0cf16da12603c43cb00a06ae6025a2585cd0cc82f5c583aaf4d2db5ccb0526c194acb501cb3100b7f711b712d146b512c7ab7fd301a2ffac31d326320899964a622b6d3221c981b184554fa96087d38a433efa26a58bf607d6ce2ae59ecfbd73b87d40e6be15b9a72c85d7471da0981abd46292a0d65961eaed5021844ccab838d6a70417cb131b13a96df1b4aeda0ce45484611452c18c1e5ff68508d7eb1587eab4daa0542fb22ae05e085e9c908f37460c759006b0cb54522f5305815899232104b6326152d71ab22e4514c31f75c8b8752511a952e9be85bca21b229f56a6ffa3a76d6bd217a3c47e29fe584d18a90c7ef3bd8bc9edcb7f40bab2a162e9a6fc25a971e93a9922a916bde4b13749d325aacc241fa848effac423f4f8d5e3156c1ca93826c86b97bb5fae08a4cc231accc15fe9d078cb322233560212438de5faa3a79621f0ac45e2e7024b19503610be4d815a5c36741dbfdfed2b5b8af09b76d6e27020d779308de1578b0ddbf71b231ea09ffdd307b940fa741d3b9a3aa8d65713fe76d8b1ce4fa2b25db5d88e3496c749709cb37cc0f21ebc5371f968959ecbb821bf0389a59225e1790a86e700f81ebf87ef2f3541d3c6c250d4424874b95b76341d99eab225886a86857a1a5394c09846ce130a3934d22f55cda1c216e0347fcb6d91abd1ef8d0f215f1b233aec8a7b34622025fbbd075aa067597ef67407135137178d81921adb464c25e623a321dd53ae8bab65768de078c73ecce081890a8002070fbd9cb9c27d4c2788c9a26bd879ee7c3832286fd37f633be6c12cf473144d7612c7d219d761ca0514e08614121ca59027ebe41f6c1069ce7d298a853f43a22a4c1a248b0478017671c7c60bad46ca58af4f63ef55ae4a879a622dfcfbca841d87e4238663685686abb1e0024fac72d8cb30ab9886c4958dc838371fa3afbefeb6b73b231902111687fcfef134027209f910d7b7a636d31897c4ed3776f35aafda5a5ba1c7aab15769b72d93571af057bd10b34b0a8764f866d91890eade05c8aee49be28e1bee538e8f3be79f6da42304f2a7393993050c89ee77fea5a9d013308a27ed9c8d3b648f9cceb02b087042483cb0c80729d9ccac9da7538b965d0eeecaba6a4eb8aebb39c70af6a1095a7c8ecb0c253ff6acc19e10b6ead6d4496c2de53e29df42e4dab4c46483972b870e30540de0d5946f0757f8761f4bb84294dabb509baa8b961af9dfe1670300a12875a5886eb8b5a9d157e760d56c1a94204c980257fce67f26960b1275c3d94570ffb48fa521ac29e55b295feecff62560d571ca9770b72a7ec9f586c33091867e04bd7d4283dbf61c55728cd67394cfd528a559b8e4015bf6e418682ec4962b5e58f7c666fec910e4bafe3bf92fce9eb68a450ebef75ecf34050209d4ca05771148bfce156cd973be28ff0f49304c326ed371c9cd1a6c3135184814982aa95d0b44249db6f5e85bc04c691db981c08d1b425739b1311e30c833edf2a13624bdb65a3783963d61c313268846c4ae78df111fcc1057c397e8113c2495db93b1e9ee829d9c65176dab7693e506e66bd686552eac3952ba64f408dab4a6742d2a0a84b630a4b7d060d0b93167e42254814b23f260ca57b53daef8c177866039461dbcdcb9c08409920b438ab89a7bb5631d69bd3f6ac1e7b480004aa50dd64c4a2fce840dc6a81c22ca8d915cdf7a6dc4e54996a7db0d8a6e5c9550f050d280923b687015e664187daea575004eaed50fea9be808965fdac6c5fe72a70a91a6ad712aee90f4db468fa8acbce9a528c02101680841b5fcac0744d793564a178cfa192904962f9646f38e58b39902fb8322647084f306ce8c8f5e8fb1a25bac50f9216c6a1df600b39a89732b0023c2194934a548cba9e36b8cbee90c5a935ac9c26c725523f5eb5cb36c5a8ad7231a4814e7ae90cd85eee32b7e7f9ff2d671f55760ab10271b0a13cb787e27044b23e0ccaa65aa28e0c50663283ae2f03f0483bbccfa68131175fa73d3e6fa10a3030a637d59882870e1beaf6edbe3f0316a6307363ae7d90e2877eb71ac9b232f63a1f81f4d243ba6e1bf752476af4b97bd6ff0beb5da4aa183a4851d7b8e0171f0a1aa49b7b12e490707d9a1f20293bd5e1d6a6dae33f45dcb5ddfaf18e400d4dba36b7c42a01329b9eb374a8a555d786f425c47d92d1191a8d618a3d627fe505a6801a74c6e6c6a01c0a6944e2e1cc657ea9cd1decad4a8a5c39a98209eb1482576774f694b95d70e010f9fa3caf62f423aa0cfd91c9980b4122887f3d2fd22f9c59859de8a8db9b117d406bf14e3829f6590bedd60bdb5a7333ed7617811bb187f429d27e68cf4e1a81f7c2eea764da0b2bf6a6ce93cdfb8f005d30f957601c7c3a168718f0e883776374750b22bc3bd8ea62a01d948d802d75675b7026986cf8daeba20143c1d73ce7ec1d8440e4331b3dfbe86ac6e4d052f8fd1a73c0ed0fe9a757a4b0fe201f58d05964e2015c57c59d492de95156326854204417e6879a36903303bac58c944afc6778ef096dedf7f0a1e5ca65c9b2cc200db79311f18144502ccf0f809d08b6bf8dd48659be3e33d47724ac9a318c4d3b7275aad76d02b625ddb9c08800917eb0f417e5800e8d228f796648e49f9ffe4710281441150c50b7b1c25e624d4da855a450845ad083cc88e2e5ac467d0cf267212a0a353a142dfdfcba7561e09eb934e3a130d4f72741ad50651e3982e8d28f255fd7f86ea08194d26f06bef2104cef5579e10561011294aa1634710c576c001c6f0950fb500f1ab8e03e7c918033e132efb9330ac6dad1b751a3b8fec29844ba268f75bca1707587e966ab99b69bfe6ca5476fb8929c559a8f9d100412bd1bf2667aa550dbfdf9ae6937d1246de0fb0392438233da7b65d42f392c691636568eb81977ef86b706af29a5dcfd6ab6f531bba51af848fc59465f2f2ff9d9e87e63461c80a9216bcbc277ea1c4c53ed2c145bad9317c4b1721f3519f56f30cc05d0a45f693b8bd7f02c0c4abd72caa9e06899b7b95538aa70217639819cdc120cdfb7d6840a4e0ee9aaf27eda0b524001df329be430dc14cba9fea1bb100351e1922ef2277590580523c16f7231f87c6ee2d049a5d77a5cc98b0a05fb5dbc4f7470896647b9335c93e33345e87fad1d61edd206000b2b2002c52b11b32572fb0b2dbff75895e7e6c89c6d86cf670a42b813344f0d019a70a7ca03fe5e02a1a962c77cac74e326f14fcdb8ba51640c66562528b3f475b08990adbdd58641a8c5c639b2f61d7de9e805f1d8c15bb9da1ec0067e52e74c89b3bc6661515ce4d71c3f9ec769e4a0726a2ff6b4f77bf5ec39ed9e497b13bc8ebc763e6e284f9a51bd01e1f7e3f113721c8e670f92435905f12aaadb7433d5bc8cdcfe9367a85c4bd95a30737c63ed733dca1e3e6da4badcb654a72b1b0e43fc51baa59769876eeef8dd1372825586bffae9fc9244aa0bf00a0c019c5295d34b953fdaff98ecc072d81831be9bdd185af547d60f57ada021da12f8686ac60323f8fa4438c2394a558ff428eaaafded57091d19d51ffc517e5a283a15cb91d4636141168f00c409b33686c4cab756b89f355492f62f54d6e3c49fe35035aadce411962e75b9d5277e7839ba4c2d55dffee4b27ae05da0651ad4204b90a78d38b479a0069f33ca21a7fabe253d81e746f99727849502b30e8e778ced8558303daf43c31ab56b4c2f46d818e856cb75dbe32cb8f8206db579d3bd1e04f9c68e3e237454e1215475d77033a78850efce62d79159bb725910984207d683be9d7c655c2999bf4349e8101fb7328d2e56d52fa349c622059be33cfb0dae3f31edbdc708dd8e635ac8239dbf0a04ce22a31393fac118691867e2ce628e5b5316dbc09c1547b653aea67e9d8e3fd401fabdb8caf2f7cc8d2424b805f6c358719de3ca703140c83f44dc647e5b61bb14c499394c58c323d95577ef402809296a6cc1aa502926991d5ab45f5ffb4f790d37a7cff109ae8671e46a467f710125bcb68e8c318d41b8db5cdb7ff3507a4f02cc7786632b1cba18dbf9e796ce9c8198b3532e448a5b8675aeee2d9b841806cf74f35d7e42eaf55392b9725637d0b51418af5a37815588a23401c927fd4013c184389422ff448e50122c1b7b3643e1b461367c46bf718828267b251cd9a0c21a76824e878e67d49a0f5ecc812d636eb205109129362b50856fb276f8f4ddbb94a988d19c56ebebfe625ea29a2312b44851513c99e3127dbf00b3e9dc41078f7184171eecbf97216a2e9b9e88d79334f670926b009835c109295ce0006e4c4ba05e43fc4fe79786a4aad91d950d35970902755637f3bfce1580f7737da3414da67971ca3c8e2ac67fa8ead4d7f093b3d3e3f7b8915813a194ae11299b14a511123841be283ad8b5e34def2e1610937778076e1edcc3fbd91d1e8053e4ad7b89e9368d0a4af57dac0d4a6628f3d6631eb3cc235b8b4a4908446f55694c16f218e6e152d0ce9e364d7311f5c67e1d5e158fa6fd13c57a52b8d5d4c9a8dc80ad4f467f0af340d54cac2d038afa5f5b2b4c3d59d4f1fcd77849a1f26acaf4685f49f9673e25bb234591948147f0293793bcf4fbf73c1f016353ef12f3b92371f7af73aac27c7d711fcb3e089f46ddc4c2d09f21d6038b1c2af0b72082393b5fcb717c5bcda4545fa357c45a1c09fb074f74226531c42717d83f97fc696cbf3a67563b45abd6894062f4d1b1c6f240cd8dd5cfcd06bf5b38eb0f676711b9060869710314eb6c846cdd039aaed88d25f87ab240558f42516000d26d9865205496f57710ef6dff69dedf2c9d9b986d1f235f329db83b4b6b824b971e87694931d140dfc3ac4e6ef22869700a25b939c62b5dfa96c3bca54cd0aa4685e255b43e68d865381bdb72cecbe373dbb631eab768494f49b428954ec0c20985b6b7c4c8dd7f0d1e3fb7eaaba3f204ac7923ea9c83e1eee55aae1aa374487d3db96346265505058ca2df683f7b4dd29665fe4693526f38cd05a163d1411f01b79e70086b83f8964b01203f6744fb975a975dcfca5a303783d90c3007096f1190b104a6b3b4af8afff02a6e99646455f2133a29283bd5a26df5a35a6203b785bbdbcdeb5f8fd9ad84965385d3051f9a64e2a021814a44e22191b0ec7e32aaac78a073e9da64ac8d62139fb46f42edf199da38cb3102a4152c60d3dd3eed3dbfaa802b2be600479416c90f5cad11e4f682a17d88e0244f068dab94436ca68947c52313a286f6220a31b0f23def465bc6785b49395558c56df1580d16e6862a2018b0c46e61a831461f471f2b06dcd911142df69149cc21b1a5e16a01207fa3f2ced813f9e8fe486f72102147bb2241ed1b6acb2613146959c1d01b4f86cb1477c4d70e5ff70eb0c8c1d25988248b990f27768f6f944a0566bea1ede0386c87861022e76171a60b818a4cf5d78e2e305452e1040ba5af95100931d934732c9cba1ed03aaca73eebfb14009d1832b7aa34136d73f22789f88729c0012815bfcd685f7ac7d0aefa7b7a73d71f997475cc5490da43dc889854bb32ea0da1e09f3427d88d9cc83767d5988a5b9d8ebcaea39cef291db6807c00b036628745038ff4e2db2b0bcd81acadd3f5b2719b08b888e714b6da83c800bbbff029883d8b2b8651b2548f6acd3c9e3dc36140c5c3a206c77443b827d8444bcee7c43329bfc78c165c42fb10eef1aeab8826df82b1e9f0313eeb1c84554ed63248c51e422b5e0203ca5e58d06b04257072b35b9aaac778a6683ba5f33d7ac08ab5c3e3f9577538b0a8c5f40582c29120d7001ac60f41cc745dff58178a3cba38bbb5980d25876258885850abeb09aaa82f17aef01fc87ad0d2d33634446b8015abb4623b9a0b7151c0eb30629d2c611e377dff1b548b60b23bdfca2ad928682e67e7dd8c740c2784a563c42d0d9c1e2a8f6804f52b72a46ea840b8f88776b6a3713c8cb97d70d661b97e2a71869043bbce04401a3b567244a3ace35d3bf40c22b84c93ae9c54d04ae1560ba9f09e922930e24db19b277ad0b2be748a12c04c869a1715b3cf7ffad6969e11ef3dc3286c623ae5a7f496814a9e8adcfb18a59ef7a3b8a923085e1257fd485f7bec683bc1d9883c57e53c9b45da1aca918c1057237fb2ffa234a75dbab02e30d7d3be3a15246d9972770311f898720e1a5597370e3574f38cdcc853f714e82cdee543f3f10a9f942be21b835b7f87ecdf4ae30a29f9a2da5c9ab992832c15e0eecece702eebcc23b76cf7c58df2dec054dbf6e960f50e2c159d58347e85e6aaf50460f8969d42459ef461ea2ac1ec423bf9e84845703dafec564d4ab63f20801133b50f42089a68290734234e1e9155527a66bacd39f53d225f46458467b92ffccfd24d6cf5be1ae190c1394268522bfffc743472b61e11e838ecee72d93d55d423c6da7d082033207e8bc16ddaee1b02ce7cc07a1cbede99333f140bd9b915fadd7eed024dd4d5ca087f05dbc1c7ca52ca7ed2ac3c03162840b705b784bfa83dc76d04345fe9568cb1a62e456aad41656f03118dd663d368bfe3314a43b3a006bed1fa23dcdc5ba00fc4e9ad2daf91f0d4e4592cc43f63a4261e4119c6dec099ed24bf7d33f5a6ef725ef916859b3ef1a607c771c9e1162fdcb73b9505aa3f1b0a9a800bf50e634e5a306bc7d44fd0a91d34b1287f19c009a009332df02610d9aacee052d6e8e846b5d5ab466f7845fe2bacdf94106766580f73a7c75a5207392a1b9411d448c168ce8329e28b72c261ca83f82b504d2bfd1c92591f42d4d83ea220ada4df4aeb53e3ddd10c91e8b95689f85bd81b1b855fc33519c02364743f567c468c083d55c823f2a14ff676c6445d3a40bf3d7840a30d9833d7f6ce58714ed3014178477a50316f02c57b54e1c181f463b48cb65356d45c1dd8b88edef2f5079374cc51e86b22c88791c53e33b0a60393a6cd1dfc727e9d7139a809eae2056319b862ae760e1934ede987c9129571ff055053c4ac4b8eed418329a2726dc54cb3d0c930462c72523427e93f4f5757c000cfcee500418d78a4c630b2d52672d1eac95263a2e807deeda8adf5aeec8e8a46adb15734f984011ca10534902dd97e8e9833a64e1e253168abadc45ffbc113a01add385c19f17440c8c2188e410c349eaba73ee5cca47094997d6ede68249c46032cb2d8196b642a22fa7e95f9930449822bf5ae6a870b9a57a0fbc37ccd9682c9e7769c68527eff3eb62e33e4a45416f1039bf15815b1a4fd2fad02a36eff1b92e70073121cf7016f816dc296a3d8ea31b2245149e3ba6b1b9217c424c374b424cdb2a6f3446b3b0185eb2f12c13d9da1d8eaa2aa529d9a37a21c7bc4cde0aa20c88cb33af0be5ef2e7836aa3c6db8746290c09fda44b422c7d3ebd51855e4a93e5f367dc906f98b0149ad945bda21634646ece6b36b3e1ebe18d7dafa2a32ff5e1f892bfa8528dc71304eda6876f292ca47a91e110afe550debae0b2c52748c18a138e7b9846bfb8e57c61652946ae4dab303dfb72c8345c25e464e4459ca8132348c574c8703fd384ab6b2bb2faeb34b441d58e9a2dc209cebaab0fd7e7be50dff1fa90949f2304639340e6ab845f1cf93abc02d7820e1f0eb99bbf50872b414ad6164e2ce7f785c0d467bb5409cca69067814af79e8607789049556f1bc92bc221694172db6aaf0866a08933784e21793e222bdcbd088886993f291d20b0cff5fd63b6174e6081e04111bfc9daf19c10359ed54cdf98ba94a21dc97f3366469348c1efdc721c347291fdabe1636e7a01ee455c5a88a34716d3c3e337ab7f725eaf8d45f93bf8cb6956d6801471641b6929b1dcbf92a401a13a64c76142b2ca1972d348233db40a40148ef01bdae14f76e2e33bee288cc5494d7b460ddd6f0ab591304052dd496679fef78ddf9424f4a625c51aac3d4d3289378a029dc1ccf3d52e605a535cee6b15d189b674a7b768a007ded6c8743b9fb92e987d740098b38eab54ab9ec2ffe10b56bf15cd2e5d012cff97532248ee50ad2bcd40f6cca53cf7ee4d9b51b220427ff06687a8c701e99e9cfe0ec7d7373ed97375448e332847355aaa7ecbc176e4af2f7554309f0e055a60f8a9d5233ecee4cd679c48d36f3686b94db06d4410480c0c56780659d34bdbe60628c3913145596c87108fa71d463780067f05816f60085e859c14894384a287b6dc607dbc6e2636d03acf6a128d245a3eb2f13d3febe1f4c836bbb53071ff7ad907d1d5ae42953de43b77c28beb24e04f2e448f699985ad32f1f4b413f7b5a59b12339df4c7e0d6518f3c48cc11b76fe6fe691c2472f38cfca7d43241b4b0174235b6ec1ed9b4d0089d764f7ddd284429fbbf4bee191988cd99ab8a81a51fb086816c8d9dd510ae2e2017bb7ed9808d32369b036ff2cf4c4c5a1bfdf3aac79b13b81ee038ac4dbf3aa5c46bf3a0b2288824cbbb969b3c929787a79bcbebca723f58ce2a1f118114b6063fe254f3cc88de77f0c99a1f07fdec276829787a933a2333a8217f39a14bb0e2c66a255660be23c803a6e72b7e8fe9b52f1acfd070488ddf91150a8b0ac44b1205f150a59eada900fd793975e461428114f9b886806c26ebf7838d32c609d6492b3003a85609ecc8d35a8707db1a19480d8ea97c9f854979e353f5ad2c4b169906c09d5c76ca8ba41f60ec6da009ac26ee97e3b338ed1290e57dcd41ac71ff8ac497b8d56f3485d4cc66e9dbfe1e7c0d8a8264cfd54e3592ae50828920ab9e0995cc208708722954041331e20a3e6169fec10248253c94a9041bf32595a0500c75df29fb15bae1799c60b864c52e5de88d252e73f66d4edacf8838aa1c1bf806c0a41b034d2b7b58662692d1c2cabb09fbb625caa08e9309961d847344c55eeaabf897bd567ddf1d09e069cc411f05b2e2e9e542f58027ddd32c9e2559f6917ab91c798450013e7c22d5cadcea4e072eca1c6a42fcfad84b6e3621f999353c0e7509ff4cbea217f5ee62ac5dbe99ca420617dadee6b8b62b54a330a73b89d250b4bd561d45123f94f76f3132dd6b8e7c378cb73bab5d207d56bd404a232854e0a18d5b9b02908c05b837eeb1ef8be74ef289d49ce58ccfa5ed15be2b9b67e2f686f2c8d2d1d149140b357230a7faa901f664406b2df5665391ce7136779af9ccad40c64dc685ef247364d8d3d436d2715c3f2ce1767627378b119e53acf720c4be6cc8e351053f9fefdf27901136b36608a406f7a0775014d8c96c812ded6292d3a6686f3593161d1be1e4dd775fc06dde5ab41fe15299baa4486b46c321e37e504f8dc490b8df180386d22674bee38aeb112a8564cacc93e4c188f3a434040983343bed96bcd34b306bc81cd27019d7dff3a14b25d40b2933cfcaa06ef671d80422f0086b6af7e0f68b0233b136adf0d5e4aa0ee7cb90478d2e7537bc57245ddd945c3883dc142a7ff2fc6185f510267b04f3799de023a06dc136b9f807270602733a36c32e6baa291e410219753a827bfb94d794f9822e5efbc135a69300a36fd4c77cbb4d7dd6b21bf892231002fc5b5dc29ab8e0dc59b3da46f0f83a4741dfb05a3f4849fa5d1a473995b825e99c46c71bc8a38868c12288f6b68427f1a36697af6dc791ea6ddb4f79fa2ad644a36b91209f1b53ec79ba4c89b9743a2516cf7e61efaa388f355420619ccb1808ffef8c11e86d101751d8a9b28adeca50db0472ea7ebd8e35825599ed0007c12fbb4ba61a0294bb2653615d9cacb2851625f045788133e8cde236b8527f6e5ee8e24af3cddb3ffc5a778e757d8507126d68e470c4a804ab3a0f96fbf673ad4deb6b6097b799101c54613b16e60412ad684194319b3caa2daf515651929073d1e135314b1a6fb4ccf5985857d588eefc811a36cf209c9235ae5f45da2c54bbcde127e0251ecce981562349562d801d1966af5eb2de5396bdded2c622cdee17dc45ec0fe338042235df9ffa60567e7a28f5964ad038cc82fe51bffcbd0ee1db36713a104132f024080d02c36ce56c17936e82045d4e60cc4447063b767f32d7dd5cbbc5812d56cdbebfd408a2a329d1fc191a6c3a0ff6832a296cb56111cf8310e7cc3573366f91c219cab770938d9d19b45acb68e12e679fbeb15b0b2916b25861b67e4df8604d136b851b963e86cdee23943d5682e73961ed56a59704a75ada71f85f362b4884856905afcaea006c8e98d0d411d6527292f65fe4a37ee0aeb4dc614956bfd82eb3c22d5c86a489070b7bcb6d93f8c69c72554f0bf35cbfdfe4830a45f904a06d1bb09116b960ded6987df17db838d1f324d45c46d5eda87b5dd4b6e53c8363f4e39afc4e2373102f546c0b1e1434747f8c55d2c0fe9d3c45f458f5321ef77ea932fc65aa6d8e35c6718bc667cfffc9a52022b205cd05389862d833f4145d7ff1faa1b01ba053207a8d4759ea5d75723584ad9790e540e4a5e351dc56aefb993ffcdb45233cf005e3483583dd913f7d8053bba937f7814056871eafbd17539319b4d3db7c34b1afaa5e5e919009c90b7f5421ba0c081285f77eb09e80142cc2e0ef3c5d14c134afe02ececd91480a1e40b256cb5cc7c22676a1ef7f64c287ebfd71ed398d3c3895c3a3e54613971aecbd27ab5c898b864b13b7d245b93d9b8c20a3ebbf15f7d3de40db7043def471452b92d5f10534760bdbbea65508e6f9c94ff5a55e97766802b54e567b3487a6884e8fe4689188229d72a3f2b93e6e5e760f18bf7e3ee2681a5ec8ace6433a8695ff0002798c4821ce720c98a941b9b71bade7fc55eb26cee77f81ea3a5701580961d1c4c0144a891e1acc71b35a8d62f797bf74e1c176873e1ea4b6cfc6a26ce79e48c9cb00115a2c859efa010e13dd12000497ed6ea4f4443cc6f9f6ddbe5d05d6f60ee0b9932fc71d3ea82a4bf5de55129ded6cf37dbba1f9b1d437f1c80902609fcadc9f62ac88239d41adb2c269507c8b503de38c802a00e9c611e1cca60d8ce98d485766b9c53cbbdccc5646deba3d9dfb5c77558d6721e664bd018b93150cdbf2e8f582982ae7b2af28fbc68ad0c3d01d30f61d04a169caba9d9b9e66f8572d1f2a620db0999279494f46a35c35ac0d5f38719f9acded9cc60459d1075f70381a7ac0bbc6f9c9fe7f7c0f25330de70a9324423a06d4cd4e042f5299988289e575a70cf4bd03d6f05f52d76269c78cdde49ca04161e83923292264f0770481b2e262545cb6c985241241a89776a90b96a0296b6b07cf37ac05314de858f7021b7092e74c4ff4b96e5d76e0ff2631ed557f24cbc48918a29be71a1555f9a1383f50d3fb080213132ace63954a7ee972c418b3b90bad9f7ec11ae344b89d3820ebfbc0c238fbc854b484646cd8ad6b709dc78f5c26886dc70d564301719deaae342e70327439283efdd753deef3a5670c6c4f33d2b7c6f542d81eb00ec91d6a697cbcc34d35cf924384b89b051f8e4b994c8a4743902594d11cf4755f76a72206c22f54cabeaf8a1cc91f015daddfb21968dac4fee0f5f13959be3196a3c169d13baf523c7f34b2ea2e66a9bd2113ef7ec2c42f4418cf3abd781b8cf2f7f4f68e622a8f86dae6722ca6991409646153f9f090d5cdad1956fb19409fefbaac34658768d37076adef251a962acd42ec5ed99c8722e699abc6220e9ac7d25c6714ec4fafce51bfb0f16fe84f639aeb76d31f03811141d874311dde42f6a5ef76086330b95fe3634fdd0c5eeebd6972aeba5777c38e65ec3b5d604342efbda8514517f6fbb6b0d622a11643b6908f51029cf3dd31e8535a6abd73aca01dd06272ac45413f0b43cf13d1c44fc47b8fe30c658d30caa4df2be9d96abc49e7a61ac9020e0483da4ec97e5f7eaf9708a5e98bc616fc735de46c0d268dc9beaab674bb545f0836f1a88368a6e6826cc0fb06e9073ee31e7116ae9418245e99d03035b5a91f67bcb1b780c2b2595e66c360435293091c31aeb186b196f0b9dd9ab5c74869331146566a88bf0318cb8a2aaf8b62bcf2ef454bb10e2804194d1d9c70b8df13734af5267d25383076c68bbe57305a83963a3cc98d627a8a794169003f3bfb30102a55def6271f24c14062cd2b64e75669ef9498b624256920f014127aa50495641c20b6582106e82b9db82802c17e16b993219c1ef9eb60686748a423f1ad60a95f56d6efe9b12408362597e4c243d7aec102e33b0a368c93eb624d7d3de25b9d88a420141cbfd4bed734423348812df0a5f633cc847a3601702d9b864b468eb4fe1992e59756d67a4145eb9215b2fcf582f7438918bd841922ddaa79014937057d2fb546fff14e3ba92ff1895419102d2d2ab2b87c1a01d2e0e5ce20e9c387c8941dde673a30131037c370670febfd7a8f1c232de7645b3ebc9c2ccbb12bbfef27832b34f4b98496890f0a6fb80417d0265415df99d0f0f87caa7bb9ac508e00ed5b85561b3698692d7f144ba1356505842c49bd51b0ec4e1c4e511750afe125f246145a644ef51b2ac24b768317fa63cf05d6b5d54114044a6fa1f8b6507524171deb9ec4c3627f78883fa5fb7610d940c346426e8a8f32e9805f5e1e3bd4ac8dd7dc78f792f070830c1037084cc208a49957f2694341438f3369f86872a5565ec6b8d3fc28921dac6d415c8f425527de2d2f8a97d67f3b06f824369b88686be416672596a71ab7c8daaff1d7d25fbf63032d4acd6a41a5ce517e3a62be038950aa9f4bcd39cddd9f8cee040dea4851bc3aa7df65000d279af9297389b3c50e243c35306b78f3966e909b96c222e40607a0314fbc9d4279cfcf5be685a7bc39b9d82eb480de2b8566627276688d2c8c770948e2b28b8cc6089f58c5ea4985cfbaa3296fdf4d623b2a582704d808607cd00576c32da28bad94ae8d75f21af338a7eebc459ea3a4ef55db5537ce2afdb8ecda557d96a4100af624180dfd5b34f8549fdab69a5c4587f2730b906bb8656e38d400025aae7464643ae6320b90537867e66505f049fef102a3b978b3ae278037e1ca396aafe265493bdc6d448c384edd457a108555050efa8c98310ddb2e95fe836359bbf8a3f8c45aa73170188b2585e71cc2805645db4274c494c6036102b60fb668c7d8c1cb275528637f1f19be83435279cbf52c98b703a0e18ea066601e3723750b488ec978e29fa10370a290cf16d2b995a2c57e29694545f922a2af07ebede287a5e5b0f3f8065db10c2cecb4a9d3b8d296043dde3f1005ffce978bd688f53241833b6986df3ca5e40c3d9f5166ac13b9eb87ef0d4b8a077c2348150559175bc282c4d95310f5a81a0da78a1bbf3a1a45be315a640045f7b1d23eeaa15dd18097414f0432eb8e0e752fbccd5965579cb563535683e26962c14a58b4cd70007fd1559ee42c3841ac3aac1496a7cfc6160dae5af27fab0b0935ce7f9c3fb3d320855a551d017a43a855f245ff741065719340338b60478203781ce830be4a4f654d0ccbcba310dfb4d4572dd983fc853d52f4cd3ba29e5b895caa801daa70f86fc67552f4b92b92ef685ab09d6ea1c3889a4c805bb830abe8946aa96b74d08404102ccdd81d8daee5e76f14591e0cb5e57efb2d68847ec2ac382667dc2136a78c519b98335e1b1e64cc6650ca545f474154766ea5e1449c0a44659a56cb8c53b0326328c13f443703b556f98a243ab378399a20ee1a87846818e7fa50202d147a60c3dfba362fcbd2e420ada0756e48698b601eb26f69c73df9aad995e17b4ada0c18fce5eebfd725c0801c7482078a606da302de97db70968f88ebbc64d8741d6c66a2a1c568874051ac16cc5ba0546846f232773913673e65589e3d13dbd39238f961ef4fcd6896c7843815650a09e842769f0a72d669f66dacba0aebe308322d0dbec9d134085af35621f1d643f578cfe6eaa85296c01c7918543efef887878e8d903cc6cc545acb2b4fc23abe7599228eec0e5e59a1e2c30a4a7bf1f4f6909ee0579b5ebb7b8deba804acf1f4881fb05dbec510769a7e6634db4f7f05d47b27c4c1e1fa0123340f81da47ae53cfe8b512c979521d89cbe2810d13f479fd69f63905c3b12f2e339a74de24f96c314bb06a808407b5e66a9ca3ec6cb2e1f4785c84dd2ccfe3761d13e261feae80a636e567c1a8830277d05b26e1f7af7af749af32380b5020236aa2e6d97a7c52d5cddaa5044e0d25a194cc1ba22ff5ef4532c73de8e9696c837f970e732d68508978dabdd61a6460fd09005383302268350c8134f0a900c7a28de4953a874709361875bb48ab37b7e159e92022a0e5e3e35a3f7835e02f69f2ae9e38ff5e47f30214fea04a44ac55f75ae0b8b27687eca9136789ae9bc558bb6880934bb9668219670cfc21d1dacb22ec221570465f92a3e9e0635e41c4ca3f7067141c84f98e2fb9f9896e2c4e1849dd4e6ff00c5dbbea6898ebaee4e455b68cd77a320c270c88ce66ec6eb28a82bb56e948609080c15c880069fc020ff5888974e8280c6c0ee449b56d775e8145543fda03e6c86061059a8e1564d1e3d9816f8a81a65717221ed08ed5cc411d0a8e58ee0ab0dca5f888ab3ab8275c330fd0a6879d574fcbf1691a5a4d55f6ba3120a7558a6fc38d1428790152388f86eb0d377b878b7c023d7269cb54d1cba8f0e94523b841bc6a50360f66dab9df9753b3159fce99ed851ecf1852c68ed2ac3836f0d0ac495f22841e17ec0b92b6d3cc9d56cb26712ef5a28ec7a8ebc7927f73a267b8cb7c3aae424e969d4054ecde5f981dfdd8f10246afc9a746a220344e0d32599cbb63979ba8a296865e1c9f0e4b0d63d9c3f55a3e377f0cec8ff31438cf588c20efd13d8c7a30c938d42a6bee844bf924ec2752fbc32f3a1e676155d30906f64bbdd5c5b59381b549a55397bd0e0ac3489d0d706a4af3d3a23b54a6a88ffac0090a635162a4a170d1869216ed1613b7d419e3c6d15103fc03e7e8c0b27ff37bac7e7a546e409428ed0b5658a4eb4020f9db2d02466af363117df046e3df73656752cf68cc3d0e0a40e253c13ebd36840e6626f035f311165fd07b71a007373cd2a22d0802638c276d1ef84ec9307fbe0ca35b93dd31abb6c406a3de40da9512695c236fa96521129e98c15787c2fa2812d73154d4b72859db3dfb0390d168620db3add7ee3895c500591d9370f8c71de21f1f7c7f1947ca823f6c4752d83006812aedb114acaf6245149393ad640fba6285c7be9bf4db5d5e465884b9f490cbee2e227ff058c8f320b854a61e785d8c1d9a5a37b746e6e356d247cfeec2620a5f3d74796ce2f520cc07839bd52474c4c0abd4eab713e365148d8b9e8fbfef0a469c45410483764a8648b9529950be8d9d830592535ca0b2883e861a2b62190df5a3155f4ceb2bf90efeb1076417cf782bb77e289564088c64d1903cc7077a7126973387687044f62bb71643e5dd963b8388cb7f5f4a9f7fa067aa8f5cadc8dc740bc432928a6ba424eacc03ff33389be55694e0e3ebac0ff77e66da567a092de0e1da4f97a31b6647e1512d4887a605319f8f95291e4dd86925cbb5161b55bf4ccfab805a35ebf565b7f7878ba5783c6f8c62168c33e0c8b83d111971eb40d4037513a05038ef96546415a8470f99754718d36a3dd2955febd3782e30f131d82f09fb0703e28cec6cd97be12d1abe8189bbed48bf1a0c12cd81a3598ea624f4628f586490b3541a0b2ec204a5e3d3dba7ae0063691e3db36ee32634bd94b3920ea1cdb328d8c08511dc3a044a13c2ff36ba8e54e7a534b4a11b496961be66740dc6267592d3f034640ca4c6696d370a71979b9fba4748927d6819c613da9585195d3de7a780bc4e6df3e45d8735656eb6e0f335b3cecba2ddc75687df5c67e75514feaed55fb8b19a3d6a90d860d4810692521c7cf07bb1e0abd6eac654b684c2f1952d9d3505f1da8bf323c898beb9891986cf0f54199469bf5d4e3d13e91acbeb074f16f904472400e4a0760d95b808f8f6353ce8edea9fba1cb2aca702d6ba11ad9f67124f37f0d9675534189fb572f13112288a36c36e474349f129797e4044610550e97daabc22013809aeda5b57cd571dc9fbaab505f65adfdad49abef17d5e8fa2c3af47886a4de92fa288f870a7942a6b2a9e6857415c3daef08b34c5ab086ec2f3d4b05a94167d95b80eb515d000f72dc570129aa3af65a58d27dd99152c4a2a572510bcb200e35d8819a3c53c8d93852350b6caba8c726b0e4de3ac5670e1e824571639f466bf5f2e2895a288dda8b87b7b5a277d691ea182640622e601041e0c7122e39f3945a5cfeb18f284312f63698964b27d6b825cd1239a852fb4cd80a251cdd021ef29edeb246c9f59c096f5c3679db4400d63a4b3de983e3b1e3bd922467c9827da1c2a80e8efb83527c732c50f1c38a06977f67eeb6020e77309867b4aefd9cc764303f97671ee8fcdceb17f287b8c40df73c3bfe67cdeae1d26f9acccf8b3d7801c53f50e9b18f760955fa5114bc414fe44efa3df45900451d137780dae4d05e5d3a7d86502af72ca66fb9d10a737f3f0d35335b74533392bfd5b5d78684e66df81c32db09553733fb697ed9931003ad5e13b643cff25f5106111ea8ce164cbd8071ed9639b4453500b1debf0807e83b203e8e1ce28ad40542f1b58338cc141d53d611b1e14e96616a5c8c69732d46a048d0fcb9275711c6359d07b960f989f85ebeb6357114d9de301a7e049716a60084358227fc0fda900d59802dd70a5204e9850f3ce7e9db015241d6f7ab66a8e4107e01ad1cb43e44a6371015c0aa312d495d54dd8efabe6ee1e647591f544cde443b732aece16e88ef06dd31ce8d391e4c8f67df43c6e619630050a612c2aa81ec9631dffb9aecc2dc23248d0827b55c69ce126612180ffa17061ed8c89957165f65b7ecd74270c144e7822891b658c483df86687939ecccbe42b70def6be67497f8d73ae4f017c85c58fe6d72b5cc920ac538a74462c02b59feca9beda25e974d7d9ef0396a1d53f13d6f82177b2ff69863c8dc69dae97d8677eff50510eb9ce5594e51e73cfce354b450c4e4bbd8f5657b16eb66050630f4792f9e7f2ff53f06a06418c5836c26450e4e01f6855636725e5522aa460ca474d2a6bce7a445462dbecb216b2e8e786c35252ddd5581aba7fbf75f9b6ce0153c31fe89e466be650caf64a47fbd71da4233fb616ad274740b159edcb56b2dee9049c8ba3b3c84daa854ae26e395d40c367f28aac7226bbf1e7823c4017c6364b3ba10ef8d4f278d97000568274b5123e3fc3756c343fe34b0e3db540b0e8d0153c812e68da44a68e1fa39153087fb77994a291df036034b0cd40abb2db9ae53fe2646344c55d1848aeb669f18e40b905e48f0d24c6f8a773b07676e985822f4e51c6e6a6b5a1da8caa2d4638b4e0a263781f1bec907e48b1a27d458757ea8b2cb5f609e32fb5950b69f09cdd792a28f9a0fe2cfcf5eacd312129c0b50a412b4a3b98dc183706740f7c5c3c80524fdeee886785c2af3a4afa3dff79e0909851db33232327ff4316fd18c16587016384fd68ae14e21aefe55342bb345bc925a76284649d7545df97c99fe5b7da5cdfdb6b6db6a7cac98dac5e1ecaf29d6cc318e4d6fa9c511590a39d237fe9bce41d11bfcf7b66b8481f698106d1d900db7148633bd7ebd6d9d39716c8bd5353a5dfb3df518aa2b4d9b092489724e521b1cf8d8f43c5029f2465bbd702be4ca4fcc93fb57e84f57189d24886984f685e5fa486bffadf8fb07dcb815d55195216afe2347ad29faf1d7f1b60c50091610a855a379e7e134d69e6cbdf44df5503ba2b17c04a33249680d2a47e612a5c9c4f7b80bb2b67a7265c76f1af783d6fece800b8f3aff0f2f108858948d643d7a3de4e4786f39eb1b15d9e0b27f78657200349f98f29d7faed97736b9c17e55c85db6206339ac69ef2382bad5821dc72a35546735bf8c2c1452c38f1df045cfa62b01ab7e524c1ac73c616aecbc6e919a6737ca00bab83e143c4fb425c49b2f3d5af33773b9c906fab5f93a91e5ff5198f8c5462bd2fd08810112a8caa3ba73f21b1ea09cbec3c50b3e8827ebc238432d688c17cfd6b81f74fd5d181308ed8083410a554352719094eeab7cea0fb7298aef76718619d470411093ed5ace21c2c7cbb97e1c5815d2a3e76f4822c6b61758117853fae0495980b1dfdc1d392a3bf8839d25ea3bdb698eccf97440afaa56538832f64949d86322ff71c83fb3fc5867cd0261d90d11d085f13510423c19ef8574e93daf4e429638182dbdcd8fb907c5039a4953afc04887e54fa74a2121533ea997a59bbef9c504cec6c904b1c0a51e688b8e01da0a9f7adf0f48d0b6e970f39ecca7d46542c339de8c1e93a0cbbe6ea38a03cf28a2488b00cfd085d3221f958d59e4760a8c0da1298693582abb9d2887a778bad8aa443e0786fe645c0235183aa4a9ac695a327fce8c344ed0f7ae0ea3c1fd213721984b4756ae969fe08eb4062eabf43c7e28ec68dbaea44b9d48f8e912abdd7ee777a98120718b671939064db0de156305d9abce21f836b8a75906658341a4bd3a8a91121263fc55b147ed518b8926c71d568145da46a8919814ccd5d50599fb5286936f6f06c54914ce4293c2d45a75a3a2a4e5d0c8049299e5c4754c613b606576474743b74c7faf0671149fad137cfb4a5e27ef1ac255db90f1654e8808102761ca7176a6cbdf037a08ffb38f4458bf0b341bfe355c37ac9e799caa1fff41b67637efd5b30b5e6889c063b51ce688e83c2201630ea5fca921c85034f9285c641e034241edfc115645a11f46062af2c4e541959eb5a4d68e817deb5885f3abffc919659da5c4f19dc512e63021839082c7d9784219c7e9932f8d13ed2304d378444579489cff6af87e7391a603e5e75546818c4322924751111577484f45a82c11cb9b16e226312a6fbb84a6582680b57d2b8d3787d5875cb699f39e23c242a4b1283d1438545924c5cf31e607adb63b78d13954899dcc0d73b5b3fffbfdd89ae7247ca51eb5973d84fde2b9b1c4d4ac9ff6ff14484e43f3c74cb9904d61053865afa6f5e8b7b308c0dd7454a46cede94a04063c1c5f3cda738a4166a000c9edb3ed8a67b5fc99e33422d42a637e36c3880f1c0a3ebc91a295dbf7cee5fe367a1679c7c46a8daa0e6907d6f3a140cf973be0623ce065f0c23ee9e1f743a01a0746f07c21268035c860adcce3564ddc6c8128bff9a2bf0b3a7a9bf706a7946272dc6b5ded4e6a8215db9ce570994a859dd44ced45ef31b28b382bb78182cbb62363046d9582ea67e5d1b18d1bb75b4b1a4b273fd33fc0ed6d71e3c62ef05cf431845d0cd7a8ec022d99e510823b905c81dced0878e67c01bce59bd8007d829e813f0aa4ca21b2c922c2a5672a179b78a5e9e9b2a37583e3d01c01f7d0d220c3339f1825bb72a20d3c8947c7e1eb2e3db033be9b0557a0a07a4180b9230803f02e55bc11225d77b89382ca226afc31b550e527c77247886af0fd52002163397e02916421143817a323a300586cbf070d1a9a663d5bf8570c92fa4fe3171a300583f5e5a40ac4c7872cd56ef80fde20c005c8ce88945d56f5986e11010a3d92345b6422fa29e9ec6a61d4630c7ab255a819c6dcd892122b160e32135b4ae0394ceda265c247da2902d881e68bb03a9bc50e747dcc5f628936e43aa2c61e4f38fe15e41e9b0f1c8cf1599ec21090c42da7cf02dc5c40b28630b69f6de51dfa15256222092f7fa435029bd37bef398287370bec24c2a8469290ead346cfcd5a5f31db0215ca96689c58294772da83278ca4d16c2ca85f9b2852f32c70fb5c7bdd71bd2f97c20d6d7ee2145987a1bfdb09e1ed47af80137d29b6b20c5d2dac54db18c6f2f91ae70abcb2fe97c25405837b2da7e4b0fd0f4191005cd790ef871da101dc49e220bd448e0e438764d9c3ed3e386a62b376871dc133bbce1be80cd8e8511e0f77e9ca8358a43dccfab8a5f30d7ee602345f9aff481043a30a518a3b84d224c3cde947cbe641865445eb091602dbb87d2c9a1f43f0b62df4d3a8b244997ec9d47d91d2e72bdf2cd86817181564de630e86f4cd01e7319ba5371dfd357501bc441300c3aa318077fb99b6e6e6abcd138acaa49aff6dbebf40f4a31719d87a9d32be1d5b9e9c52d46f5d65462d8067e9b77b40067af2399ce85333b72f95ce029588ec4b89f846f63c80b8b8a4038a7c837dd51b0385042666c3eb97bee81f2c8f1349ecd6438d2c7b39b854528e4c714ed2884d5010cfd63ad1f1070204a57ef70333e939cad57e8a81bcb0375be44e72f3ed81b7f32aacce702e2e9da4b470c25a0d8afed6d601393cef353f6c3424ca7a41a9aab6c6160ee2c7b648b90fc5db4efe197c2a4e40aceef2d50d9f2e91e9153cf3e83dd03bb486e40e7445598b895ebd41ecb1335c2aacd102b349316174190d0c188dec70eaf6589c43c5bd02e93f850357b173682edb3c8c87d0fbba39b1c7b1e3fcccfb8919290df4cc8c5974ead4ae989bb46634fa6e528125d74a199b5c1fcb0e21d20933763f87497a737b9b848da70df4500fcea56e4b3f412abc9e1c120ea2977470a0dfbaf549902239c18e7d8ee6a678215655d2a035b1af8cc0fb4917d72073b80c3eb51b404e14e13a01a568992cba92fbf7e760a39797bd90451aafe61d80a35564ef4fc961ba20dceee9b052c0a43d265c3b0b504fc3a379b06ae868f6d539c2dd429bc447ec6cef3b786ef12248efb51c98855393ca6c6d095cf34b0176ed9112c55267aa2ea6dabf39a169d8c779aa375a31c200e0a7725f4cea6d3d0424aed22a88feba01f579e51e10c1f3d28150c4fa2a328af1bcf498a7584b0b35dfb5e2afcf2f5fc7fca9b9ee7a980045ec308cb2267d136fd691d2a41f600605a301d2ffd6c8f6bd75bff8ba288e1843172ed179347200c0b71fd557f28efddefdf27e992c1c7571570678db1894d916be2be2d2108ab61382963b3f3cd91d2e733cb0f10d6d8466ec7bb46b34d81dd4f48dd2f18d12ffabe67d2c2e5997817140a721b7235c77db2ed8344eebdbe31cfcc7e69b7afbdb76c1518371bc64807e678487fe78c928a0ac88df88e84b194670bfa6eed126db7e7b0d885d5906911a342ae84e52ef692fc0ee4342190631d9595e02d694ea8fbd7ca6e8b62b9c066526479325290b98a57cb149fb895415f9a70e9f5211c04e70389195c31067fd1678c08eaa9cd90b363dfc7d5708a2fa29393abc4ce16a80913257b9ca5bffc09e09c25a493238d08827ea5428b29ad583c6c285ec43e4703d96d67fb1433a61afb2cb8f709741d7736ae8cd275730a868a5b26fc5878a87bc04302a77332f8a4010548541ac69e0773cc190e732aac0648345b9e3b0bbf732c1b2ed735918c198aa74f1a3fc37c57dc077d4c715660ec1dc16645242353716c804ac7d5aa363583c45e7b843ae206aae4a0fadbc1c2601a3e9da2e1523a472e9042b93ed92f55e1c30c4cfb9cf9fbb7b8a030d77bb1bf95dba106100b207c2e7bebdb160054742c3ebb31787fbd9d57318f0f6356d1db7f3ed198b426de914607b32e83036ee3548428d6401f596872ce8ca1596a229f8afe7b218f5f65afde0f9ebc894d940e2517d20a14d8187d99622e361793a4795b29f1f033d7356f36ff96c8a74a95e15e2f2706edadea0fb0953375e2ee0b50e9bf58ade69167d4ee5a0cc58aeb739d13368b24fdc56ed4f8638da1d66085dc70345e11bef642a8bd35df301c25f4300d4b28d79ae897cc709bb4c6270f8bb3f5f2aae5cf5269c238b9a1b33972376630bf91aa4f06dc1a8c6150ca15e6c85e1ad530bf03548dfd35a42513844e6977979a368fc2b0f4b99bac2c9cc816114036ad444cb292bbda52c95adca8bb7bdcc417a4cdf69d2f3c5dc980fe9c8f602ef4bf883a66033315d58b7dd96bbef363b62398503b274ff477d685a01e8bf3fe7045a7ffea83cda83b6695af7edfc5e8d0e2e32e31cbfa29f5485d8509046a6cc5e9dc0e5552f80c8667433de6ad4237952a1e9f83adbf3b136547f13139fc0d234e5345d6953ca66dafe094463813f3ce0726bf4611a1d02dcb29571f2dbf5030874b9700d457b08bf3ecabef954590763575d975e3387bd7e765007c28f9a41b9e1848907ae422acffcc19ee5e69b1cfa94212b5306870ab7fff6838348651f20fea36f65992525c2ed97fb42fbc7c650975a64dab9733d029138a66a14c9f234a660aa223ef501af4bb742b2a66ba662f65265729885a9ed19c8c5e81c14ebd3415457bf2be4c6855200d1774c6cd8baa70562325b3ca60378e9eb32d7d89daa69a8c0fc1e4746d6bb05bcab6cfdb203c5c9f4d3d3b12ae6e35e4dcbedfc1f2edc0adbbf0da1fbce36382129c74b0065d863842b36cbe6c5ff3bf3b94c532324853277cc4bb394b801e2f1c5924357db6e975aceccdd12e4442ea55d34bf1c96ec84521e4d93aaf979e9dd722578a52a8efe3fef4bfbb322d0c14afe1a4c23105bd195adde8282592bb7808ae2a16a2c3121b33f9ae73027e510dabeafc27aa2c3ed368a0b564106df434c0bd0e1aa74f5175f2ccd2995b6f1faa465c6e52e9f2e34b5aff6e46223c4ebe7a8e81a146c66f0f94637fbfc58bd6df426b06f1c1dcbbc949337eca80a382937666dcdbdc570bc0bf5a0539fe31c1d4928ed90abf6303459159efd0e75c7ea82a1030338a657cee106d221b2b16fadb7a0028572473b2bac5f069b1eeb52faaed5831b2b4068973c7ff014699c1a297d34092c57eeed555065cb925520fa57dfb8f358bb285e7ed6f96cd9fa30e6abb51915d28f527ba797466e5cc60607b14070a3fd29ae19034705ccde043ac6229887bc832d568e5f6a1bbdac86eb29cf06fa319bc094ce3d08fa01893b79f296397486f3d6d6ce2f46168a33883a24ef1033687f43dac94aae753d62796be5c892288c0821fe5da5ab0642f9148e29043ef257cdd541d754f1f8c0d44af3661632f8d81c5bff701c15207ad16a7b7cb8f1dd56bc9936c0181810406a70a057a290cf06293b8bbce346d8b71f8567bcebed82fa5829c9ec5f13c9b384c6d802e0b330aa59529bd065a849271d1251c1ef0e220bfb123678f5c19d1cfaad9cd00ac687ccca12c7f98b24d9f498fa19b937ba21915f53fb4705f044db8349b6a741000a7667cb3f445173e9bd601598f4a18388f53bbb02292c41c5a41778fa464b54335de7ffc051fabfd525e95e89fdf82807c14338c84d5224e654d7f8921abcb808e5f997010ccd3c7f447f9970bff3c14dc8be19b60480022801263de5716d21664cd4dd964a800459464b563244340513144b24f7366e026e26a136412b0073b28c5b841c6ac4a9bacc7efebd062be5b00eb9197292ce83065b5d66df25370d492b3b781ee29374a972fe5e707b048cc522de62325f901c307460f9cea9565f21df9b2660b5327e516fed56b58e6f87234a47485bf42ab2269662fa7c3f8ede4881eb7a93b983ee7ccc069856549753037d18a658116d6f353e6fca7977454eb5619d06614d1c9aac249cb706213ea66f02a7997a96c88bd2e3c86c1564dbac24fa0d8951e377105e457ffee9a3352ee7939b314ab4a236388356b7b44399d1bfd8f2f195730bf2981cf3714ea5ca9c8efc2260dacb57b7194375b8d79d78b22305f0553ade9c535cf82253b4464e10bf2079c1508752f1aa70feb56607682d57aa333d687c1ed45648a8aa82eefb49828103126cca4dfdabc5324c1382aaad4b4a5d0b33d8236fabe2d8fd04072b13eb906428b3c183b19f15270d1963374ba7706f11a9b6c751bbd5b9b1daa7f12dfd4a650234f8c02700896c0c7e1b54bcca472497c62125a7523b3b68eab6548f929b8bc442eaa7004e7ef163cd5bd5702dd67a227c70044091b1bb1811b1d44cd6e9b5f6eb9d9affe181ecf51019807fa09095065f33a3375afeb9583e287e2e8dbe65c7601e4472b4af94bc149776364d402206281845dc951a62b107eff1087ad12ba42cf65addece35ea2a646b5be62c806fe0027c320e533e82bf823385a0a6358f371c125d6f1bb45ae05ea78e2ec52e5b857c85d86b6ef1d17e115822ef8bd1e26e97c42cfe4a61c6131818453996533bc5e7846c3b3fb02c1867a4656ea5af827e2264bccf9aa75d26c34a95585aefdde6af688e49c516c47a5121741441cd6b085595302ded6e35a269a3f09b10f3305135840439e5f4c5ebafc7a39830589392fa3ca19d4aad934564e38f9f7c844e5b4eba7f43e6661186f9ee991d48bb222b8fd2e54c59870d68e5ff79a1a4521d23c277ca8df67d4635b70b597ee0ba782ec782a99fea0019ec6e481ff753faf682ce7dece3a378f2a608bed7ce58a1811c0922f1476e3df4e158ddc2a3997a061ba37c0df9628bda821c30fb598f7b38cbf0ee7ca87c5004fb4e762cdd48b95087e47d20360b39a799bac40e086b65636cc924b0f84e9e0defd0785cc1791799472c1fa2b95a3b729fbb1513a255e6dccc185ee86541cce7feb15e3c5d06169492869cf36970fbf8758d427ed7ba5dfceb13c76e6259418fd29a6c85690d0a1a4af3aa1ce3519a7500b08e47458b7fef8925206d6dba36b60a85b857d073e14b8ae822fe97648960f93c5058febee016946d9090e23058370042803b235ef7dbd9cd7a3fb6f6b29c485a2ebc3eca93b7663c4844cba8f40b56f5cf86a6baf8ecd57f11813bb732d0e6c6af2a042fd593b39bf3ad3eb5bea7349678617cb6d83850ce489d313b9eeb705419c43fecc73c7dc2fcd5980c1ddc3f7056e1c644d5713a007002377add212d689c1b3607422fffa29ea5b4080ba59aa2e7f84d9c8b0f664c7e6f4f5093d2687cd5e86b09a90d8b5dc7a45f26898196a1323253b91cfa13609d9d78fe1529c59e9afa2e7fde885bc8caa1718a9d39feb4fc6fc2da61c58bdc83a0a5a7f7713eef1945647a3cca1df0e4ac4d79e4334677502fdc03316e76d59f0793d41e6978254825c510a2707a928c1115ddb0bc4e595403cb7ab1cb8453110a5df16e02200a9f331fd98f7237a1953780c4bce0ce1d7145534ac026fed37447e0cd006f01fa2b407b725477a4c3239624e169bdf05dc833f1c364a92fc57de7b41eeb60c769ee5149fd4879e3d56c22ea0a92682202fbf746f85498590f612203fb9acf365b86c3d09f1dc347634be495b8e7d1a0cd3f50b13f8a88a3880f7c8760bcbe20ea32d72c01369a7530a19a9a8ae63fccd2c9d436b5e502d57e403cdcadb2c931c4205c0fd0152825b48999d3c2534ae8f77e13cbb8e4470c314ced8427a1753dab083f5c3edd746b995c4c69c64e74837afefb0b6b65257155d6eb4776038ca1f31d20727ed584343e8005e2a0f1c76468f75535357b10ee9448511925d6ffe3074d489d4b0deb29340c064d7f81158827cf3b034253f54d0a1dc339264f1fbce4c997c362056399c33be788342fb863ed97d3a100296fb9c7f8f0324b26144e9bee47d1036d430f66b0cfe1b667026d4657c095a44a5a725196cb0ace6df47dd4699acf74eedb404b841ea79eb4b392929c05bea32df2d81f80be5dcafae5e546bdcfd77e0b1093d42c76e3ac2c1a2f8467572d3993ed391f9b760fbf5d1629400cff45ee09c101182d51154074c1c5a45e109ee5bc4aa13081ffe8126b8913233aa9a815f0d86c62988aa1e14dd1bace5548b1ebb0bdf1a9ab41ca8a530035e65821eb49910858b16484bcbaba7d14b124c5fed08ef2ccd06d2b0cd54c7b6b9167242262aa8afa378dd5b118ab2a4151cdbf38e2f3156d64bf0e5001ca1720c2603a333d0e7e14db04aac5ed3e25cf86f2b74bae6f556c14d7fd3f03444dcf2b99ba483de2a85fb7783e66509614fd7b9ecf6f88084a9b069530b33392cad3116e8da5c5eab6999ae22107fb31840c2f59699606d07e7351bdbc40ced27551cf4305f5bfe7441686eb26cbcce3294af78e027c8587856783022b8a73e3508c51d468a418014b7f331e2f15444fc9d1fa4684eba3544b4e1be0b26ea76944ed9acd082d4143b8ea8be939330bfad62db429846dc3859f6b104527e7516b13753ec0fa76b02b51b42c73619a6aec3c1574d72fb38c661e24480ede813e77f963e85dd3a55d45239be939af95cfe1e2b3dd8edc896a24f23e22511c559e5db56ad607fab145d51f7a4988f2dc4d09dc1c692375090cc31bb4ed75d1c5857802d058ad6f2aeb96af9306b7024419565cbfe14340fde420366a6e22abaf6b84c29354fa225cd28851d0903f17960e60d7f9e610b93baa0be5f25ef4cb52ac085abfc5d52be504c99680889e1fbc2ad4ea306c0374bfda646249ea0bafea095001c13730886b8e810d2b450645800f75f62139234ad83156dbd2316602f926f10be64d2234c801e5ecae52e1ff9b83ab83836b8d44b933968f64ca07821e0ae768c63c5bb778f33a948cee246b41f0a6de67ef4a02fda8bce4df3bf71dd3a239ddb94ddf81927cfc2e758a73bffbe40d83400b7792771ba7df088307f56d3d36bb3d5e16b2c4ba00105b4f0f2096923e3ed3d4b5fcd15aedb5979172eeb411381888622a1e2e4db9951c969c23b3501f29ecb9faf1f8f965692aca43fc9ab500c363dcb5baeedb7ea98b6db4c2e2177fdb19f69e5f5dcfba9fa7879250eba5a07cd668c2b8648ded2b041947964f07067b4b22c8de62760d28d8948c0f5fc2ef35013317f5f69051e0fb8ece8f8fe0b587baa21e3a1dcfabe078b3504802cf9553207ed792279623a9f6f95095bf89fa872433d483ab7cd4eeca17993edcf5a23a901f71db6a529527123733abd48c4af6fa64fa7514658b7ab4e9354f863fb8a740ffdabde7002e10ec5bdb95f8985712da19291785347e60d8c757f9bb1fc0920f9d2387d8da76c6fe2c231ddbfece77490a75dd37d8f88ba740aad6f5e736a11a894faebba4b711b0a49a5b1c35aa9c8341b6c91706eaea52593e8cd051036934ea87cde521c3fc35729ac357570f99c3a01e3568b3f72db10b45fe57f8de0551f998224f9bd332267926c4e2a1c1da6259204b579ba3c69fc299504edd4ec3eb84c030a85f776bfc4fa03705f721a6e274a46966be7fd522df1c7e2de32bdd1d6ccc5dda3e8db724bf49064d5dbf86d74c91e100dd72fa8b37de90f152bb985c2789a41a0e51c11e4797a6a17f77118f12a1d16e010d393c9317c5b05857389b3e80b69d2778511f9b5265e72a279a324988158ff5eb62292ef720a683a78bdbd00627cee75dab2d208d9f55d1eabe1b486c8368c72fba2b3a3a4b9a48691e0e0e9c799e2e40921a7262581e09efea09bba9f1af4bffbd3c5b97aa8580c84781bd972d32e38b09d7de8ad4a80dd132ea22ebbed5981c533c2af917dee5479c04b72821a26d3922a1e8bd256c3a8f2ced518fd60a8989ba85b388ad419a3984546aa3e5113a396735c7e4cf699409a5b8ef5f6bf23c3c089af7877c17a0c7f8575720dfa43bf0bab3e41cf2634012559df797e26297e30b6a6bfc334e628ca938946a492366c4b72e5f8a9d2d080ef8da393aa9adbebbdd55782902982abb0c644b3e7c4833b9e5ec8afa43dfda246627dab7ed629e7281ccf9da3a62a9d81b1239d708c5201c573b6b56684c490294dfcfe6776b661c5192c07f8c4e7303bf042fcf8af82d417e513ee5fad20a269a83674819a0083822191014ce2280cc28d1954c4648614f4e2ef15e0b8079c42561be9f6fbbbdc3560124dcaffbad9fa42ae280edc0431df986a7ceba901237f5994bd8f39f7e614ccfa7eed80d39bc995425772763611ddcd736459789f8fc4106533c8f718b8bdb1c3a8f3b6848bdc4177f32b213cd5a6e68a95bcb79714b3acd73fb30efe8d8d812f258aaf964b2e954a71c3aa99a85419bbe85cb82672eecef1a011ecedb51cac2d838f892f7c7809564c440fb640f683368346b68e938446d0c1bf59570d4420d67382dbed17f1fc916ecac26c557d2504ec883c0a8c50118e06fa1a1f588951d10189a0aa879a0b42ee8dd75e1e874c54a5497547ac7c2b18345b5767e66d327b9b9d4dc93cb4b76b24d5c7bdbc3490dec2f196bdb298960b317e79962c744023a5be7e88fea81e8baf081f75dbd7ea3f55946f967c15b1e85feaa64bc0dd167dfa03c3cfa22ab9af532b31215ea62a7dcaab73161cce454e0642225eb57062de96f12241ba16d8e25a2034f321be5c34cd7177f30033071000fdcfe1245b3750d997d4c98096ce59ee65f55eb6ab514a442a7bddc38eaddf4701e9899c94405f352482bfda10e32cb01976bf8d85b5476a17771958bc47c1f55b69caa135a18b88435293c09192caadcdcf117f7d5f6086c89ca2d25dd69bad28384b47f40d26ce0720328800e204b26a0bf88a58df4d6203583998b4f8e51943fd9ec9c492d95cd438ef9c1a68e5482cd9892dfbaf10e578a0873814e49426e326cc7412d89ab232f59cb6cd5178007da3dfc97821e12a18ee77b7669414145d98982b0e9669ab439b41efa25fb1b0e2fca94a564a4fa3e862d1188df41d744af3e9acbd39d43a7f73c57476e2d884ed12dacbfcab50fa1b044bd1122e2de65982d545ac959faa17e693eae1942bb4f5d90978aca5c51ba22daa8cde8970745a64d365db77e09c5827e7fad8e2cc025b35431b46cf6f222a984208579be544931228c72e6a12c7528fd2921712c3280eb4555200be0d90adc37185105109e1a80a5e44abfa514f654dc310bc30dc408702f6425983c20fcce09a56a3d081068772b922df928e4d487d0f0eb2544bc1151c3c4d8e0df976d0675828b81a9aafe0bf72d8d6466b722877ca1aabe4e7394323b5f6b1c5e3f259d0b8dde4928bf2f711a10acc3d6187f68a4e40d7e40d67f6a9120965af6cf6ac3834880ae1277873d7fda5063e287f2c0633ec4cf3ee8562a897a16a38e310a0221598f2ea44ed3ffa0ee8a6534fb9805f797fcf1463e1fcefde03ad8400626ebc00acd18189378fe99f486f0cd5b1c67dfba8e7790819faa1a4e7fae071eda223dc9cd37f7ea1a1b9f5673b3cb04ffb107d8b3b671f0edf42dbf394bf302aee967a9b9a38fca9214edc47473ec46b6fd17054f26c1db4e9dc2b4565ced6ad792a3e09cdbff0034a176b1aa924be7943455bac5eb4c2963378eb325bb7cc74c90f8474888802a641b58d343c36e9e85be4051681b28d3a64989c635ec28baa7fe98ddc18ae23d81ba32a6a258ba9995d8ab8d6a6d3b663f9e39f8410e169bd7daf34445388900189216ea91e89bf84e63190f6c69bd851a6fcfdc2d0a32f3a34bd542d4e5828f6ad18f21892e3f4fe33118e1904af4655c8737061216d402ffa894425725c4d846fdc01201636d282624b7f0291eea501eb4ad8f58ddff3a282bfcd14d56f4212d1e3149d8784b7f5795538aedde89237d1eac95e9df95c19e6b69210f6cac80c61c1a94c7f20744bee9c9e4bf8ef2cff7684db867da9af3e321a1899a0b8362abc69087e6422ddc12457f960b91abdb1daa589f7c4968de0dc6f302f862c3057a35d5f93fe639a1b9b3d21caac7cbe08d9e3771355a08c529039cac285c36fd3c92778576ae535dcd5043575c34130c44ac085d6fd9379e6e23b347a70df8b3216fc20a79eb67d3f932000ad3206da03891d71254f488943fe0b2bb788aede17e31092c4767ce36262aa65f470f4f724ed7c847e6dbe985fe3f3f90cc7311172b460ed0c56591b0ef97a65fa3f5ee6c9167ad349e9d6284ae6bde762dee7739231ab2a4a31ad1ddf3ec317d3a85590bc5d6041716c3355866a657bf41dc9cff801181954d47554deb94870c128107e04245eeb1c68aaffc92d0ade01b814974c1f68356f3f24305945b3cc4b964af1329ece8c6d3cbd71d0a210df41aec20785b9cebe09b6e20fe6b945f41b4ddb6dbd8b18ea1e8d6ea9fecfd8e385bd0ac3ea6aacdec4917aaa53b8f66846fd9d507c55fa48d24e6f519591f6a90b6a996ce0fd42d7b3088ee5a70236d70cd2933789053f45d17ee3354ee65000155519384a3e9fb4ff72ee7f1465ca94e3c0281a47cc569e5cde1cfcf1d0f3f35cd63698fe089846f0f744634c68fe74a5fcf651528fecb7eeebb813e4e31f1fad41a6573e0630fa717e9ac5e896a83f3462bcce89c154a86e5de1307cea9f7c3817c7e88cd480b05512f5ba15aba99bf39f08a4faf15c1de219e3ec395e6d42519027178a985355d238899a29d011e840cac340fac99476a610270c3da359e5b711806c5633f9fc6b1417af8891d16000bf6c303574513950d1b068971852fc3e11bde4040cb501b7f7150b035897d537069489739ad3dcaa76e3a4a00bc715fc3b115938d3d907c22af30cc6f0739806f46ae4d418a47fc455c7d7301169f5581a13fb9aba87dca0bc115bf6abd12efcbfb383cae527a1f1f8048219630b470398f4d8062c6cc2e586dcff23608eeee011b4f8c519271ac276d7fa728aca79cec392c0e8805e192b6e0b5430d97412bff78c4fb1b9c2621be4d4e0cdf90956d3f1f0a59f73576265c5d388169946d3c6b7de55bfc6ed27f673d168adddec699caa679aed64c4ddd0824c2f1f4e7b21780e224110ee8daca9b6d5f1159f46079fb36e22b2efb09ed1bc91ccc40db679a72677398179cc98da267f9c179b3938d84d5fd44ce108b53b8676bbe50ab85046b37f7fc58f2fb537ffd69730d9250f55d35734186e58c4df9641669f5d0d17a0d070f60aa5a552feebb8b310afdeff85554f6bfaa4252de36b583e0f609b583922a4b78eab8bd3570efc4bae0b9ad81310abc2bec86654d5ad5432c0f6d498d6f264d0fbd5f9ffe678e90ff9e2f909d5c2b774a7dfe40a642ea6fcbb41248668f7c4c839934e928469a2aa9e2c121fe2a2188b489a9d23739b8512cb51c46c31ab8554429d752d4c5c911909ba75e7ba8198254fcea5c14766412349f2620bcd0f93658f6e5c127398eb8459ee75c8ef930abea95d92a95b43219bcfd688a4eef8673da69bab8c9e5c52f8906657fd44b36a789532decd3d7b0f71062197bd8ab1c86761a36a86971adcdd46925789156ee0e192503522e9f023d713ed18b9e3b0a30ef6a7bd7365ee2d3cfd93af9296bf54fd6f3f0b2c96a3f4e9490057e496c53919a78ab55679788dfdab6fbb6a815a3d3cff823120c10146e225cd9c565cc5d4ce0590313b50de57e875272493b4d9115686383e222be1a7236f5d45de263ea05c0acf2cfdc63ff9f1d622e8eb534a904d84f114479f29a40e21a4c2d94fc5d284a75050a1eab1cac1641e2660b6bd7c3ac0d0447447da315aae17cfab3fa99ef254cbb6fbf2f250ca1037614d8ebc9a142b651f5fc95b0ba066eb1385cc5e7680adda5ad8a55478220597af9da7f59e94f13a880dbff4f50e57eee010dbfb84046b568984a84693dab3e254273bd80fe5ad50af85f3e750525c8f8322dce3cee3c6274d052243dcb8c8142cb299902163e1a9255cdd96f1c1c1dbbef8275110be1df96fdf6aa0416c111c2a4268622b8ac43038aacb3b5e9126b57cdb97c8b6b3e57bba910b75e6b7e24ceb7b8261029a61d3e69466bf30cc4836c7ee1285ddaf22c73937c3da821a826936bd28ce8c30555b8ff2ad21401e3b75a25f0049b30ae5f220a9bc5c7d15a7f239f8a0a6f4ff53d81e6ad7037449341915f3d3a61e1b736e986d4b57343642221f29992df5574ea87a0641ab9c4ec7e2eb404799bf66740a53e0fb0451ac7f21621dea87c93d6901de9ab92d4f47dfc7c4fe570b1eaaba0a3da38fe2c0a3af5ab2ddbe2baa14442ee2021417ee2c44f17dc66d919c186afdedec20e12daa8521a2636f82b1f38f1e9b32af672f5b7c1bcd96c0a163e8de7e0852101bdc3b02a94a23a638bb602c8d7676cbfaa813ec92009c62418246a24a7034f4251d02436807a53918e9146cf8d0052cca130b6553f63a2ca95eb5a311c324839f0a88a39b8c696a35af67ce4068c8c6229606fe9ff9916684980aea707a38d0355f39e47330136bfc1086f00d1f58de2b2f92f84314f980b242d4d1d8af4a5417bbaced3c5f510eea9eabfcd8d360cdc46f1ae5d290686ce710631a3800e98f3a293bd94e142208f3fc15f8f7f9183329a8f18708e53a0cdf2cfe69369a072654328c0367f5c0a57d57617575cd7b351f3e68ed21bf689b1ea920eb2a4d0c62bbf8d64de9b5e92e0936b038ce1921e72d156a5e3635249c768d6df96288f2830eb5be67af47f24cd5aa912c1e1588ced87cee543de42cea84ab2a3700767b2cdbac3b9e8e8a04d75759987dbc63287a33f934ba0ca4c6675bbc337115dfb80fda2ff04e4b0453f2905ad7c89c23fde6d10aac74cb211469a31608c4c80953493865721cb4c46510143e35a08273626a524abbfae9244062b2d422aa7914b72893d9a2031dca17d3efb9a633ba26334b518af8a77fa8023ca3851a854c14f655e095f4240442ee13ae4a629125528a4c1083cf6aea3217c21ef143586e6e9398088997eec4f503eeab22e133f01ae565afe93c38d549bd6ea06d9120942769ec9fa0afff5b3837cea0e81df3dc7c9eb3fb08a262811f05888a786163586854c0ee9e3a3bba03d2424c89c1aaa2e8c4c38c61447e8e7850f2d88bd292b7ee379b781797eddcb9fe4faefe1aae5720024f31217c3d8e20b6b959bc5c963eeda64703c4a55af1b850f0eb80d450f4e0161fe75982abfe71ec04f4a88888d8886cee296ad247b5eac1b89385ef748bcd6b7ca575d8206910fc7947dde8bbb0c607c83fc729893b7282104807da04e71851cc0f11fc27949811ab0fc260de4f187b76e2b649636acca60f48e9d745cfa554d62d40c58ce349abbf8de46daae2f71cb54a817b23ffae7b9ac20017965c61e48855de7a4feae228e5914ecd49303b68b7613c0b9aaa2c334ee63070c9a8e49d091103e7b746c42da6946287249cbdbcbb170ad28e6d1da7b0805b35c3ed961edd90263a4038580cc1594403c834eb5e59db405b2f58f865a8a2b8feed0903769fdcd705eb4f34af3d6e9dc500012e435b828d2bd6462b545824dc71781e945535eba80d95d5591c57cf897e0e98db29da078dfe5084afbd24efa4085f50e1c80a5135bb810f0ed19850c4fb281612202667a167894c6d93afffe88b76254fa0557d95695514d6fab0448779e20de92cce203e4f9f8c9ecdd43866f80f1e0b3be763dd27d23f1539c1f012c148583d56a295ffe9e99c59cbbee15418875122acb3ca3a970e2f7f0ef1147a0947147dfcc003057d24d3b11fb038ca4cb7310640eda0f57e2eda48b0dc8cf1b339bc286e770dc50b3337c62685a7d481879495aae4c3ff03d232c254207d0b11ce89ce8355fca5e95527f74eecb97b493c0d40a9644cf0d5d2840173d26806e0dfed21c323b04107d0dfa7722f6e9c5332af250f61732c212862fe794554fced620afe0e0ba1624a66524cab88a329744812247c1c75b2ba2929ae43e7807f0de608fba44a739b2000dd3ce0a3099d8e71292b02e145bd6442c0c00178c63199e19d3e5e7b8159bac48d16b98f172e48d94cf0338a15020a543ffc45fa2dad323c089065584b97581a3a4ff8240f430805a09361e2b76fc67361b8a3b68a11d9001bd3da1768fe88a7024091084f2185bde4a53e3ca270b9df9b0b9333f24e99a3170b8dfe166e7861d8f382b3a17588c957445cf4a21ba5114c38bb3e57b6b0a09af3ca919e29f6755074ee1a72601d917e8e8ec8a613aff6922aa8aaf9e883fb445899b9fdbf5d3f2a2fce4193c27d89522b389f5657417d569fe6d4e5002a931fc95d75f9451a6c275040cb51ded759fbfbcbb03b0c77e91e258752a12ed4f006fe382fdbc296e1642d9d1d60930703a9ef5d7d1c64e0d779bb69d4a96544a1edf12452fac23ee26b976d105a08ddc4822a7fac3269511043dac45cd76e7485793efcd2b54dc9b4675765072c716a23fcc2d813ad128c93764e2b2f033f80ae3a4ec4b26c96c22e41717b306b59bfc2ca10091566e35ec3c8e9f8babba1fe65351dbf4da6a85e05c35a70408731ffa0e1db290ce326320e4de125dd5f55345d52b47822b038b689ff8b171468cab007aa993aad2fb8784ee4b7219df2b5326bac776b1cb6b79019ea85ecdddbc6e468fd2094d0153552728f705911b2bdb995bb688c3fd8c6f269179af0e86cacb5743b46cad6b4c128e52c1e9fe9786414547f285fd5ec7b0040a54afcd73e6bf92f4598541aa709c32df5fa57d8465a8e4bd118c27c41a98ffd47b29c9c83ad2ac510a564401255f007a7fba8d2ca739c181da6210269c712dac4039649485902c90b9e0359543add763bdef927f5d8841f510ea089e0c6fd9b922db2464e376eef21b0c57afd5ec0d9d816e5629e07657899ccd6572a3f402eb14ac34642b03a1a0129d32122251ebdf03c1833afac50d7c5bd7fe325d4bd911c72ee00f7f9e49ca6c77105e81732c6b055d2961f4bf02e73f07b3e5615e47d821421d72eff9bd2137fe8185aaf7829c09af3eb17d48e71d9053e342548964825eeffef559752aa01379d751698c115b17891afdb4f8015d6494f4019ca50181645940c7de298e9c53d9aaf7f005f2514d6ff7bdd4d4aac7bba6ce35fd741fd45662bfc2923b3e32ce1656bb3c03b2fad27b778c4397d0b6c24460b90e40763d7b8ffef64e2860f7aca178a5308cd077f07a1d290b837557246a1aac61ffef42e5cea4b4bfe37203a91375476c5a423f576fd214f82d2d99815c72fe6bae2a018f05f92e15b3c1457260f38f010bf194e5e562b9e3b8a36c67995f0e8877f9cdc9b76dacf7e4f32b3b425eaf814b38d56e5ffd21eb7a14525efce1539b40e3aa30b11247a1b47e98a284640c1231698f529eb643943ad237ed68771d36c0a287864c1d3d3fe12e29761d79487b4c4870ecd407d623aec2a8a925a75c3eaba5542adf69d1fcc4a3cd06b8545464ba8efc26894bbba522df4aafde798277bb8fe50ad7f3bb5901d0ad097570942b63671bbb8043f969d7b5ad18f7fc6b7947b6a3444d5f2aae287e603f268c1510daf470e6309241f8d1e668536ac05ee8e4a510d32a7250fe26c7715b3a2cd19ccfca88a2fb410abcaca98a69ff5b1500169a18008096887f8e9b39e6e2160288d772d0a6fb3c36eb2846569af9e5dbc35309357b5a590471563e0213bbd5887856e761bf3fd24d691a9b52dcc27bbc65de175f4239ee0c2a0dc87ec45b396063c81b9e421d3947a99a9aa82246bfbbb69d1fd2c638aad37ff8a39139d6d42173347197afb007dfcf4dc8d17fd05625b203319ef73488d2e42111631c047f9aab8f444cbfbaba8098ebc0967f5969e875538e0a1c6aa6bce3d5a4c7edf8d36ebb035fb172c732bfbe2bae5d520425043ae72dc8a790c6fed7b0c4f606a6b1cfad8b848ce7f3315deeabd5c8a3843b0419103af4720bcecf05ed2d91abefbb3e6e1ce61efeb6e2e57b6309a536d3608dbbf291eaff8248d173486ef7e506d862509bae9f19c84fd567bf3628a047cef9385447e8b833e33f28836af027d9b4ec0d397986859eea506e8fd77fbcbdc105bfa2227e4f48f0b3ab28db9fe9cb3d8bec63d8a5490b057025837fafb6e6fc8bd2a51cd3a7d4e571f311caccc0c727f0fd67ce15771e59146c1454bfbd4642523b2ae4b6f968dd4a15cf1878aacb69e4ab0056ee37e08352ab628e3ac1a9dce5ecad5c8411c0170d67f2f9c280debe6c0293dbd12b65826aacb0fdfdce0a19887e881cd4dabe7384eb087425d73925fe6984be47db6c3b5005ed8156ec02c92a044deefe9ed6f80a2fe6e4f4b6f662c2c325d4e64b08f5c35deb8f6f84d5c27c5a2a5070a1de51a9f5cb7a3af6597aec19f7e54fffbddefa0ebbb311c6195c0638dff5c803a54ac75ce0b8d9221b3b1d569c2ef8e63f84d7dfd508b18ad1f455956f44d11bca586c5257f7063ca6b2d7afb7e0c3160f5cb2dfb7c2cba0776c3c3e29d73ba5f40f1084aee20db465b205c5029f7040583eb2a1cfa4989330a9199eadfe377910a9fa265df9677497548c8e6b03d041ebe6b45a9c8a054ad2143919a73ad4b51486353c630f23de0c71f0a2ae1ad24f6f75c7a33de10517e81a3e8588c2307fc1a60b3236cd97007b2a0b79e4e45f88dcef2ee3ae2a311532aca092350182c4e0311a05a32d7080ad61ce9cbbd605f5d2bb009e667bb1e75fc03939bb15e3b2d8eff04260fffde8033d1908a6586e489e264b3418fd813af0cedf794f52f8bfc9d142903467e1611eaa9c111447ace094e0cdc9e46ffd9b2f531307a8bd61760566a694c85dff0284d7cfa3f37355d8077d425d5ea1bc894a51bba65792fd6d6666e66d752bc8405ab6f4ad0e226d3029f534505efac4ca47cdf15e4abffa19f52be20ca3f3cd2afa7f2c01908c1e5d24246ce1d6f306718950e0bfa866bb565033fe1d9427ab764d2d9c0bea5c47bf244be25b759a2c1c2467acdc625f87e183a0245fcf0f399162ffa0239735d2d42c8d4dfc2010b857f52474c563b30e2452b85585b047163094f91455af2be129707338cf200b722ee39a5a94f622bcfd7965c8130d3d7d1df660a3e21b46c8545969aa09f955284d1864a45f369ed7742cb59ac643b76a3876422ded4403d886843e609ede4bbc4e611ee4a27ace7879b95b12737f4c14e345ec3df371d2f77bbea89411f65e810b09eb36f1918c4924762c6d7f70e6ae59ad718f1aba9910d386be58cd7096eb05b3ee90024567181b02a34154424685ab5f2a9f754d2f4719ac7c7c78020a8e4ebcd1196e0c223b055d5e6f691c805e50c33152b714e2061257420712166969799c4199a31b33c139b09f9fd0107a349468e4a90621f2db05425540d3a0748a7e996ff3f5e34576114ccd555ff4723a53146888e429131e22e85d471a6f81f89fe290b5c8fab6b4861bf08fda3e7533c05a24855563ef6a3330e53cdf4dfaf3aecf5eb232de1a080dbc38f7c5bbe9182fc342d1c14aa2f04475dffa7581dc844a9396aea76bb69fca7a76a0b88604111ed3312c3da53c88eed61d5d9e903959f127781d7bfc06919db3a05c598852b5f62b25e828ce43a05b6ad9192589b6f300a14aed4d0437ea96715299646b33a9411c95fe61a12ef7543c2e2a97890d2afc51d563b9bdad94d5bb48d15dcb5a8046a2bd346dc0eb25d7139cc2c9898cf3b26fe60ac9e97f07ebace68cce304ff551e31a5053ae59faff8b88db3812958725e8cfac15e7f6c9334eb0f23449ee6f1c88f05a1f42cfa15c6bb9497ed01ccc3c2fe360936d12c6cd33d2e703abe6db0a44c7f8303c94a3e215dd6663bd2c14b2a7fda7640c056b160198c056603bcf430aeacad45e64ab1d96024a4fd7622ec020fa98441fb59fda50f7803a65c500d318e7e4d446f1235c011d90134a70c3779a3a1d5a513e85a2f703adae40af0e550f1151f36460a1e4e986b4593b9c04d123233d86eb6e09c33977a9bfe1f894e5bb01a580e5c81b7e297af932593eaad42e9e7c7f1c48491f5a30ac5cf4f593492611a68007b7f9d48d98e08cb64542762898474c2182c3c3d9b23ccbf3cd2690a6e0fd0e61acea86d765338c77b3cef97a836eeeb4065bc5dba144da5afc89a381d1fef5d29e91df0bc89b104e1db4fe62d2b2517674290e6449b03674d171849b8b78a97973ff8f508ecce2cc2cf889288063cf039f210293189f8377efb0294c7a9c17be8afdea67e7394f261ed0a95e8a09d9630c8225931e2418d2d02e3e494df201c53228706be7612f01457f8cc570249cf276172fa9949684b43d2e37e4765cd0df30d9af9106a5a3ad8785244cb8f6b0744c4f30ba52724140d7e37c91ad2c104e3de2d1a3a0aeff28dc1db4776b62261f311abda657c829fb925c9fca6d48119386174946766dab0ed40cda2896d57c5d7c9e3d0d443fa38034b4d1e2765d53df2baa7d5f2c9cfac90ebff94ecb4662deb6bad360e1a395c2db9b25524926b591c05278b6c9d93c1bc2b7189c9d4141f81e587ec59709948e74304151afbe97a0ce4bd85a3a528848384f8bb42703f5c6288d64cdf57ad9754421895c330868cf531c9e86cef600214fc10aa786a6347cf98f72062c3afba86326f95aa31e40f13e329571bb469e4ff78b0eb35a61873ced78b242939172d23cc724b293dc921df44c66fd98a7b158b71d83844ad0d38a12d50aa92334607d0f711a86d96f13a8ceb79c38e14daf0328d437157d53dcb4aa084de7fb2d2b2070dd22c112fe4ae19854287677b5fbe0774a9e55217b3aebad81bd51dd64dd74c5c896441c598e211476261e1daabf11e7f7b497e783abaf44ba7f57afa85f63cbf844d19ac34564758afb6bfcdf04764d1e377885e3bf0c4f0b9076fc53f763119322cb74c5b8c5e59507051f1c9deb92086cab33e53f9ae14e35c5717ca7ea7bc33ff95410d089ff7c7fb2f8ec955635992fa42f56d7a9be52143a60b3571ec0b23ac829747fee551f3590d9f23ac2c6280e853942da17e41a4f174056e2d8edccaa62a8e3c9f0eb4158b17cb8e8076cb48d2c17c03424fff359402a6f6cafe1573e28c6889157ba497a937c1b320f605cfe7612ced767f35570cd5e25a98ccf5984a93fe9a5cb2ec65eb7da441ae970326c01773e35735696d3e2bcbdea38becf9c53121bc280a9cb625e793165be7d588cd218b49ce2f26a3dad4c2b23060c34496403096df7fe1d85baa1ca40c7fd6ebf4fc8ae8bbd483c3068b62f36b8e754179418c7edabf62a59d6808ec8487a5383cde3a742c608480f7ecb0b3facd37aa0211df7c51aced46e19a4c825e3102feedbc33e31f79b932825fabfab3327df168e203d645fb70cf994825a4e51f3d40c294c750bcc99ae1a58dbdc4f128f729b68f5c300d6553dbd33f313a419e7703e7461fc991c534540aba8e3d0108bf315fbb3d1d5954185957fb19bf694c685e7966c90973f4a830b4cbf360e9fef548988346c264d87c10feedfe7a91ffe3b1618da652de4b5457b6a229a669461741e12990dc5042868f38c7e46033f1000f2199da5e090001e1468f643fd35df205f45c4680c959932b876f9f5de02127110b1a8f902ff4724076b077d60cd36715b4bdd3d7c22439837ae9a4d50f22e9f09df7729f899df99705f43d133448c6ab3adce3e6ccc011923e01276ee5f219ae57a84c6e241ce5bd8033bd0bf6bd6f6be6bc70387d4a5570910f5b1cf18bd4f3d4bd3e889114e255e59a55d89d1622b4ea7ba0fffe97304f4653b3675ff67ba287767fb894f4ea23bb3dc9152444fdfbb05dfe4afefa397e828c192294a995f543cca9822e3f15186ac5e2a277710924cff32299d88e3dbd571c6aa93ca611ed8898977339d0c395b7e4d8a5682eea113dcf0da81f2d448b8496e3d80dae14da9b8b6663a66ac64de8bef4a7d5c83d2d80a1e95613a892dffb443fe2348cd2bc21b655a64ea8e3cb87c2e5c00c83f23b8d302e44da30bab7ca5af3d58e2f09a588b2f8803ada6a5fae919b59b9be6f57525a8a9d12bd77e6aeb82219413a731be5fb293fc8499f497746194e6be0f85c1615e92b47a5d9d4d05726da4506498c3890ecbfc6342b0d517dd50efada7aadf9938990820839cc21d96db63fe2c38b99769738bf2312465ad06ba50d96cf677a28d9cb30321ee7c9deb04f6d71a39677f6d2548fb27c30be47c0863c273147ec27802e70e83ea0277cfd946cddad096f6c539e8d79b59055d7f5e6a45a3837186586d379aeaaaf0b889aad0c72ee106fda345c51238108a3f76d8e41d389c6d6e508046ee0bb4cb02bfbfeac16de6e5fb3da70e385d3e22556c2d5a5340e6c3c2c7b330318e70b12ffd822223ff352b884b22f0619b0cb2ac8edf4ee721c01ad8ea39316f907b6ae935376162e28c69668b8c3f633be766d5aefc3ccf11554a7125f32d0921bbacdd3a41e08428eef4e73e8a8394b6c0f0fdc36eb4ff9de371baae721db8c74a96fe44002e2f77d1751aa85a652f3a24b1a767dc04102354ff8dfa127980fa35ab8e6f36c5a387a1438c93b4dfd42c18ca28571913c8571fa351461a2d65a602e0b73b01f938a88a2099ccb2bc52a0d036ebf7263cbcc2846abe0fefb865ac0b7b140d6237863999304ca5d034fde3315832ccc467f53e117a549a5c715760abd6dfad56e4c6322846e572f6c0f9f2229f33ff90ac857b7522106de716760c364e7cc7814fb79b9fddf80c9671a800b03e7ae1b827d47eac4933d431321c6cc4df9a6a63867e128362f351d75cf1f4fc0fe16139ea5c1d72629b5d70e8ef31ce4c988b21050e4ad09781a1d4f59be80712e998af1d9c84096c295cee39f57e94c39283e087be86ad3d0163e75efeab3b2fd63eb9c2ddb253b43668a2dc626e5c5b528dab7ed722684ea67e04094340d232c731e5aab5fd3556eedcd224cb8c79ed5d49ede51c0bc36c72e028323b5d0718f1f53390f58a50aea857caad265928157d3c78857541955d75fbd51435ed1a1d412f286c11d60440133c9cb492c93860774e1fd8395cb8a60e439eda948f2344ec2967700430ccc40433f95621c688fa174ade1dc20447ad11b1c1a3ff14b12bde52e942f33cde5f5aa61328eeac4e5e5c61925a58782bedbe43da35c0043f698cbbba5ffa712730204594cdc5cb33d33ba74243c908fe237e799823ad1a77cf6e9a4bc2d19c8fba94829e9613e93ec6a495f85b6d9b338926da8f7f40c4434a40cb5038315b90e64b16e53e74bd8e44248528c8a92a9c6d6b6d136cc1a4b23a374a34002ba31b87d37ace4f4175e4222b3aaa8f964331dcb440221a5811a77c97ba1595043bd2a9c06fa9d1a431fe9b0b55415aae87341645e56309a5975c805be15aca6f3f8a26fa77f13e4985c16f99e0b5e3292c9e040df0349bfc72b9213529d098689d25296a59a3eb85fb35cdcdc87caaef7bdbf8fa7ac34ab8177127d221593f669bb8affda1a152fc8f4f91ef5bf09ace53dd56e0a13b1c27acf69323fa3099004f0037fe1d29fbf63189a487ce18b910a4760244060415878b3f32620bbbcba425290f5f6155e87e474f81d8b9040b51f50aaa984d0acf19c35508ae4ee3ad765ee5128d44b5c408283a2da798b145e6e08c4857a01f79d697ba9971e00e8b068bd3baac61ef3bcfa1182fe34c84fe2190cc786f2d65d673fd982325859c23151535c7f79776346c74ca4b229851631a49167458a3c80e851fc83ca921f50c3ab9f4f918894edb06d5ea13f4a6f6bab2e120d6ceb990622cde9d8333402cd3e204fd9af91fe0b378eb4a8cc87f81301d3f4c80f4a8f912774a9143b38f307ecbdbdec07103de1d20553c7b8496e9aa1ee32f3619ace111ce2bad3ca7608c5cc3f6c797b1253903b3a2ab24e53e58b3f35e79cdeb86854a077bd2f6982ab6354b60c920073825a048d70a7f842f01acd3d51a0b35fd4c958beaca4ad507f1455cf96d23d9322d97fdee0b2ba6058bd9b582c9878658a7a8b5592b0b8535bda571f4a04b4dd057c309512bb8f4c107012a33cc3579e5f798065f06f7fb96d8febf59e4ad14105c7adb630a00fe467d9cccc91962307692b90cc76e60ef2fcfb06184d72b47b5e530d0f799a28cddfde71cbbc74ad7dfc7f0e110ca3049ac1bc71fa40d730bc6e9b26ed714edf3b250494190c8a4b87902d1f6ecf23477dbd7626a3d3490060f0b629b3ecab502542ad49468faaa60a2f20878c12bdb692cfd7905a78950339e0e2c1b5eb8f69839f5ecae748590f33bcbfcfb2be1ccf038350ee98ca3ebce47602bdedcf630cb372a4cf47a8a7083288e9a4e783c0ec7373a3dd66e85af7d21a723f74ff1e2150c39e4a6522115bad468bb212a868d6b88c7cc2c1e07a9a7076a4cd9c4719b62d8006cd86ba72f9caa20a42079584cd62d1a149f468b825218c41b723d7b73879ed88f99475edc849d8f7665cfa18c354c01657ce105136b382903f92df4f878c7270b3efa598bb9a130a6974a77ab21af7e566cbd5257868d3a50dbfe20d49d9e8e2c94afbfa81f2fbcc10a3db7932145f7929f00dccf9e02aba3fe8beeb192d49e867c23549eaec5d4230daf7bf2ec9ff30bada0907c38c733b0b0a60c3d34fe23cf64285a083264c35c36da5c97947470b58ce92af1a2cf9833ff93d82ff412fc2ec724c137d1114467edad83aa9c1dbf2a63fbc63bc650bd5bdf8b17c955ee7f84f58fa35b9a5462fa8e4b8ca21f19f6de1b4ac9970447c809803a812dedd17b5a267815ec00bb658a948a3824448af1ba211c152740f158a55e421a8064e0b795ef014330d858cecadc75f235abb7e34ae00f932b0153cb713ab65ebbd8a2101b19dfdef9d33f61c3becb1e71ff8875dd1990077b0eb48c97ce9f3c9557851ff0f7dbe0ef020a45cae07d3f1b790d773689643927871e80534f7bdef7665773985053940207552ef5e433e650fef81fb7b7236894b1e072fe02b945d945cd58b115b9f6e209419cd3dcc876ac811ee01d6bb81278410ea1def33eb57b05ff320e361366978cf524841ecab91265f9bf3f90e30d7acbff49f5a3e3eb60b1ea63d713799f873a18d27685fb3e8ff129515d12b7ea717ace543ae0f42e7a7bedc46d2c9b0d9ad9598d6e61d28f6a68ee2ef5a01cad7adfdb04f84cb2245f494caf14ef39673c4ae89c9356fb31e4ccb00e36004ed256e347be3809d27e950eb094a4bea89d714bfa2fa939d3793a49786072225ca7de747bda78d3fd743317a527c8a0541b3f6048fbb783ed2ceafc747f37f3aaef728da18c0e6e4e0f67c51b14862b385213c590e5bf508ff44f157672ea6e6fdbad8929d6f99dd740ac4be64719d8679affdc13c442fd35a0154d763c0c5c384ecca1468b0e031cd2bb9c3ecb59008760dfdf1527ba5e0d3815520cbd87bd637589826f67aa34961b7d214029387251a4c6db61364a437adf9b1cf720abdfa5ae66a4de316902319084c46a680db313c7514dc29d435d928736f698e2aeb385be990414f28874ce17e9892393c1c22eaab0ab8b8946ffa07172c9775aec07de561b505334f02bc2397a3931d00a6d971d874610b31816a2813b57bddf250d61ed8f66235e080e5517a198410b47fd5a9efcbc2b7d809dcb60c219b978828310e20458ce12debc44367650622db27713659526b820b765037014f05c1b1fdcc4f5bba5e3a73938401bd6e38ae5fa5073c4aebf19e9435f628acf28bc7d5796a9107f9bb6a9a1286db47e08100178fbc1d7b88cb28052cbb9979b2594762822bd58360cdf6f79c1e4937f4d30548087568187f06e4dd69e09ef539cc3ed4d9b5498ba99b7c1addb31fa86388b32a70220b954a338dd0c1f09890a6ec95cfec297f41df5de8aa1e6d5b0d5eaa477df37202b4ed18362313ea4024f274ddf65b800f4e431b89f4c91c5b4e3ed631fc7f0ec25c868c3407387796f638099d34212dfd4e95beb91be99e9b0fffe966e9dde2dd96fc9f2a881795afc489f1c0b4626d833e4fce29477059e4873906baba5df22e416170c463e07cd61ce70e78a187d6302cf234d7249213532f63df865f86b1c34f26b93f968968e260a2931dc28ac4bcda6cd9f8eb20b71217aa1b4500593003366070ba8563c0bb2eaded3eca11030533a448ffde4380d8299ccfaa84719c845ba5f7f150529e62ec641cd7f2d31056b072597a6eb533402332a8d2feff3029b4daefbd11d29773d149bbf2d64de923a5e4778799f1c07edfbb20fb17f964f4927270f36bae74876bba971f50c84f2bc44a6b4b25e661b55132f881ea944e5bdfb8d526ffa2097bc9c674b5c8e7f1699d4c71330b827f80ee0b5e635dae00e7b0144dd9cc146d7604675dd1e33ba41480dd91fd57c9f9b7bc3bc77ba4f7ea7262f3bccfb28312f13f9ba597124388b8c54daa7ffe8eff4226bcc703da253a2e8bc74c1237c54f9a568c914d03bc75e371fc63f0cd834691ecb6369761489841903d26153d09e44a0e2a709600e7bfc3f7c90bfea330652530ba7df2b24c4e7401008d4cc888f53a0c40855dfd32df6297c3bc0c2128c7b7df137b1ab1f40f963907749425a531c8e6c50bc250bd0b6bbae0122a834c6a50992fca4d3c1b9fca3df8370529fafca9d0c762335feeaf70431c5895fd36c04c051a8dfa91672c42c62c5fe1410503c220d8914da875c47b50587db32f6dcc23e82926f852a133c737b1c2db72e9a832fe6903ddcbcfc8cc2b1a7c3d5bbd67b4423c5c4c6454fe1c3be3b3928fb81680d9b90f1be5a907c5f5717325a4c70bfca92353320b7a9452133b9e4d5bffbe37941b2a5111e252342c968d834658494f035c8726e6ef68e72c417f278098fa5bb3e02745062b7613a50f0af51b10ff1b464171e21eac3f4013c83aef11b3f8f8424ad9c54adca6a181db471385f64448122f538333911464b5a2a6434767539a45766ff54087144e3a0f91d41a7d7ed836d46a4b31368661aec3be44537db6c8aea78a37648174c5f45a876d83391c1da2e26a9dd4bb1c8f9f48c06487616a899550732eda84eb1e43f8f84d49d70888d153574c119e0f7f048d72096df309f49f7297bab58b6f88578d911d96e917e58e69a947c03df11932f5191f12805b81986efefa3dd197686bf9f2ccc5bd2d6460a857f0264ff465dea173abe2e718d53debd25996fd3d920cb96aa5aa9e8321d66dd0c75d28a5c653888004fcc326d9dd534567eac83a09db74ba08cecf42d94c48bf70cecfb2e5831294c42c145db5cfe7fe167483a9eb9033fea699942d1625dd3619242d228c8113f8aee35510de984f7c80b9b3d7b5c4373a8ae11d8211943454d6571ebcdcbd274addeb0336e8d900b32d22cb9339f02b2bb8f25c191cac14f24169bc932eca64caa5e8f041c5cd2b8e775a5bd952293de4c8f388a8888f8a9328ed1358063b630f81753f26ad02b30d734be26c4b5bd2b46617c36e5ac37ba27c82a3b75abb40e16be563d5f4197ee9390192eba4c92eed7dff31777f4ed9c9618848de35b296205cbbb2e3624bc3dd29e22acc046d015f30f305484692ea17906360d30598672ca4ba353dc1ed9f8eee9554af804a102d135f98c431e19e7abb33a3fd5526553eebc037575eaed7c64e19534d3d09e9c6cf9551862b7b04b6cd5883fdf9186e6fef6adbcd8054fde58da6c299b126200039ba26f80c6e6f4e13ca5e971176bb80a2b53380e380dd90ea05e23ead70e159937aa01b4f4e89f92efacb1400ba4112aef9d73d7e2da747294ab3731aa9caa751df45f04fdf84aebcf59ee167a3100f45ab03225255900916027b133b5d27fa430b7d3ef7659f3bbd5c3224f648a6d0834996e9ecdf6da1e3505e0873d32b4725f25c3e47019e7b7d6e02c5f1c288f852a92951e1dcb7fee9abb91196749b7f52601f4c8dac899f8de041c49f5ae20902519b9335916677cd361a6a94b28bc8227afa474c05f027919e5d829410ee0d49f36c49f2e529f66c928c34a61f21435c935a93554e2479a48dfb6ac9f31b5fd13830cdae3fb71ee90d1b3e530c69f6ef0dc354bc98be9a0ce877c939c1dc83c79bd908e5b8203797843a7b45c759b4fc25fc56afe899e3246c06f349e9189c6cf040019e701a114a9a315c7f6c6cf3f79e2943cf893e0ddaad877f823895b55bd06350ee9b759ea5690c882273ef269491e84dc2be57392117d76de543618a539b528b4475895cf8161301d249f953e5575c45c99674623f1718ef7dd4f2ff84a558085afae93b84591eb2375acbfefb1e0a540b616afc9fa602de820cc7293d2f8c2b1a5352541bbad27f38cd675f47beafc0128e56da18238546bb263f53f69b5f2996a8d772668764d42aed72e87fb25118c4eafcb2a78dfc7ce28758ec94b2abe54acfc83ca3f073c9722761c29d9d7bfc09e04e1c8ee3f8a723a24b0825727bf2d096589b3333331cec0e6ad1d62c082f3ccd1594536ea394d2cce3dbf168743226255fe0b54705f96c38980e8dc39576ec735034b83d2bc69902dfa5add8ded67fd23932180f71bf3effb31d8ed1c16ec800b10ea27ebe86354c7f52ff55f11e1783a2fe6a6f981bc0bb62b790b1da91f8bf247185c9db3ec1f7b1fa0da6015ac8cfd4f71970c621ea4b48d21038fae2b81e0432d9662cf4c0351ba12898d43969dfad27b6131571724e2d2658dcb882942857263730085da75de046ed7236aa11f4500e44516e5fc3a3da7a2f29f8aa6fb0bde5c30290485a4dccfa0e4286285c82d9d2c377695f392f5ac75bf7eee210403949bb1825d4e10ca1a1b94a0122b92bdeafae9b7247ad7f89a4389628a9085741f091c56d6cb7cb10e541a88cf338d9eb699752ef0de0baa34b2c294bedcf779bc72fd694ca62e70d84399e5036f835c1076849d02c531bd172ea0caf1606bd4cb0605c9ee1c7a15f5e5cc7eee666a27c8a314e34da53f7142650c4a096ea35394d84b77a67fa1357cbcc708d9d2a5819758c8e8da4a67a281cbac08b0ca00168f622d5828b4034ad54dbfe299221a84b76cc63efb54ac6eab17f6f6eb2d3ceb52ffafc6cfb69a780ea1e8ad60f90ea2b3e02a02d2b6ca66a8c450e974c3f063b2707da20f11ca5cbcc56454c6ade1167b5507f1db386d85d2914dd17cadf657c7586bd37d687dabe34a3d51d9c887670e90f3cd78f6b3661e02ea381d808ded75c093853bef96cceec5704b678be1a1a9fd2d75dae00a7ad8dce4316ac5566b6894fd9fc2f1adc31a500f561566dc43f7294c45283850287dad222b3f77205fa423d537ef4b1d0218076767f08165f4aa477bbd17174b285841225e36887fe3a0a3340272ef61fcd48c40d9ff372c78deac5073b5e7717b242e81c6df5c3a0e35aa7c06b763c99c89842b040c95348cae542ac29bea00cddb4990d5384b83d1ccb63c13b23f70ed2318db473be03990e05a1fd65eb2602d412ff8539a2403da11a7abb7f0b3909327759212600ce12acd8380f487a7dc6378be6d23cea5b3339d40b0c3c7fe20f6ea4ca1b9d245bb5167b4e8231485a950289876d2c2048abf55a9799070f8c129de52f0347a6a185ffa78dd950cdb3b193ca73d345f69f1c3d6efa7937089fdfb30c19d0f378da91f257bff73798cee185493776e4c711522998304ffb32fd5b7bed6a91f3c74f301ab11cbf2a152f9cf5c4e572f29adfcf9a0b7ca6e5a7ca07d9f51b3d6001b91d1efb0e8cb4636b74a8f8992fd7c2173c7204480e852963b4820f8c33d613046a855710d8246193dbb533c76d4eec5c441dac75dac8ab685f92b142dee2f96e1fe3f936b10e52f403f1c220b7eb6074888043f479ba0a92f0861f27399f6e3ef0732f8b2e7c27f4c0c533a4a5dfc47b86526915433c552daa828634ef2e1e13dbe59a7a15a69644b7ce447619adf5a60b4a204ea64ad26858c253caf08de102b51dc4824dc340f5ab4c25107e32608152dacc660c244ae4c8e39d7e26ab823ccd863ab06b14f02f0dffd22e130348eff2af5653fcc190979ea3291bb9db57fdd7bc14134f76196553ab1caf547b01d382eb756025c5567dcd8ea4acebd67bf8571f2a1882496766a60121c33df865930279d71746f6c8f81a440e8be5bbc32e8887905305f9322bca4652f02a538daedd4b27297d6a15aaa9ae5d49ce5275b8720caca9751196dec5f77ddeb913cae14c0ba7a1c86db351e6b5f7a4f2f8d7077b774f4ee5bfb0068777f474d3b26d5c19c338d6c9045a3c8d3ffce12ecffdc6082e0a7364553d56c94014f1c188bc4351de5124107bbb9a7b1d1c2032bc9be52aea0afe2cde5bc60c5511cbce92ce34e7f0356cc47f3a10ad1a4d1bc282568653bdff909c6ddd97783e29ae1bac30fd45ed809727300172017737802080ae02c99ea1827893424ab5666f78726de198f9666bf0f17c2efd4de52b77f43e762fb6eaec1680159e7fe911c27f5d8b244373aae70d5428d8d02a30b9492eab5dcf339c34f9294e84419e25562ce7c6acb2bf30cf8ad94716bed4f2b9828fbe170ecaacb3f6c9c97ad28a85aa13c865d59fe49b69837f7309713d62b50ab6a8df520ee09b5c44cb96a1a5b6224218efd8fcda666734c1736324bd8d1cdfcaf6d77b54672f6ff283116216938ee592fa6816f1243121bd293f2308f6e2484e00cb308a803ec386bfa228b53804716985d396c024fe1ce1d5ea0e63b18ef49b2879cd636daa5f1fedb51e9fe47393b41a133c8b900afc82e7b9b21c43dcb24f5f9d92adc42d453f1513a8571bc14d87db7df9e08443267db6154895133d8f554ab442354124f01792fca277a62ebaad4a2238d74aa815f8018d0650e773cf576b66c8262a58f74f7febf2ff92915b555c0d6eb139f98a5e72d299e5976a00ec4541412173b33f195af2ef8c50facdf5d4e46daa533d7e4f3530d070c8db14d7231b2d54bcd7d0460b2fd8e6ac711b07a95b318b183838812ba3d01a9d1a05a9f26f10cc726d395fd426abb2f13660c6031d1b2b3b94454b64310689402a3068e8f2f06abb93f876e3a82543306121022044a7aad79a58c5c3dedcfa79172e858ebffc01da4f0e56974abe7826941f024b23a518fd398afde40d414c15cca08ace3a9605264b7aa42821baf74e262f07421b14459e7efbc1290d638241bee9e57eba56e5ef88b0a74205ed8b845a766785b3577f113e40efc4a9892cae821ddcd9024ed8489055737a6d31addb788d02d5c3ddbfde092c20e8dd54bf9a12dcddd508739e14de56ec570309e3cd940f767ceb7bd4ad379b047abd92fb9f2df3c3d2ee5be9bfe8bbe251efa3096404f24ba7083208802fef41a8306ca091788bab3928a78121c7ed0ac450ecfc2f4f66506e3f5e46796e8087b0853d4e9497da1f80672449f3ce96d8c3e1b78466bbee3dfe857c66648e5697a07c8f58eca9836961ed205e6cd194f176f2556b5cef14233c16424caa603d3495c03d16630b6d4638d9097d403005c9a91043427f51f1be70fcf9d9c1c370595bab662bb7f372969bcc68ebe2bb57ced55e343337c9b7a66faba7ab3b1d91f807b26b0141281803c5c43cd3e3df2f91dc9c1352ef5fc7a47843fe7060d2689c7cfaec5b1ee7d222e6309e4c84d956dd4f6f39da4e99de57fedebfde682bd66c4213a05b3a019bfd29dd045147f1f43584aa0ab4bc51ce8d9cf3ea2d7df23a65769ccc4cff1c4eabe788249cb1b38c8524f442fe25fded89afd2c2b1d303f95fdb1fb3cb131f4aa85f2bdfc27d929cdb3942df1bbf68a0b8eaf9edd43fbde0a8c196fc74cdba3124cb554c6689f60d5599e0158f1e28ab5e564f2362c4a301f5d1c666dd77aceee832fced846cef0d75f04365f6d3e8de2a3f3770766554974e81932c62cb0f5829f23e674d8ad0e90321999dd53f708797dacf25ce4e8a10e0d9bb925c30a9e55d08e09fc889f955dcfb1c81b7a86b04e69211d3d546194bd8d09f41a8745d30c23f7dbd210ae83b5cef5b8baeb9a014d4d122230a0a6e3138236703e381a9f5a8a29b213974e7a221c6f2feab591baa57b3f249b6aae32f0bd43d050217d94f9aa301911678040d57deb4aef727e5f17f265b6ea88e08895714249a9459348b97ad54fa8e3fb3fc54d24f9fa4fdeb6418d75618dc92ed253841f24f45d1ed39a044bc663a2cc0661068b7e5087cc4a0aa22523be8ed05fc06b443f413e6b52fde3bea46dd885c6ce840bf2bb88b4ec10af68eb1e085a657e81a98d627f0868da48684552833bd5bc220fc0584a0b2c3418e41e2315567b9719f5919a85acb8129757b792f78d2ec2098e28a87b8ee4251e7d154a1aa11d64dba8e79a3ebb6ccaf2b83c07bf60f04e6286bdf794e5ae0f84409d2953822c041f4dbcd230cdb1d54b74cc11f148db2c40c3e817fd456947956675486be86b675100510db6723835ba1590a06e5ad68f6e776362bfe8b8137df9d3c8673d03e6a0ce7b607b2fb7a23db16800acbe6bb67dd2be108cb5828022b0e0e22bfdff6874bc266ba053662d3205667ff26a491ab460dde2fc837343fae3372f2299d1226f7ccde30fe983e60b7751df435fc130c5b8771558b97ab080246ac1d43accd702600477eb64ce9d2ba6239849124abb6fb499a84bd649be4dcf7d127ea6a7b6d22feff5242e0daede388beaf911fea7653322f65abdd91af53f69bbdcd500c1683fc8d49e5389d9db376cc2dc6b1a821f324498f817e34f249f9affd3e2d7c3ff3d5cf96dfd9036cfc45c691a2382727dd009a0864567f7b0147227a3800fe063fc8ed9163ef12bc7382609bed53ad057becc1bb7ac29008924c4aabd91f0a22b9ed3e9dfe9837d94bf48fed5b5ee406166bced061d2f02b74a592b8e5fa8aecb72b55b93039e686f5576fa5b266b69fc195cf24c2b44a3ec7e6e3fae98c5f24601512c4a1fa0d073a415f70e9f242ee77206779719790b4524340c5d81bc747da7d8821ad5697bc69fc1f7a8f5ae83dd196300d2e79f69310e4fb03eb166a85b8c115fc3fedf5d75e2c79c1ace44cf9523f460ed9fcd87c1af587eae507d586c8ad697af046bf864c8ac85b6be43d7b83f8d1f84cde06fba3e5b072e07241f8f269229eaef7bc3dcefa48376a8af43b707d42d3556f61f2d905af5bab35c6ed59ccad4dd4ffeab84521b9cc4deadae9ed5c7ee2e95f24e7fb8c8b515979028c88b910cfa43eb9fe56c30db71fd074550ad338da4b1fc4018050ef442cf0ac997cc11359722ba2abffb35f6c4b6abf6baec3da227a5feab23ba09e4d1e27b1cf9940932b447e921c4ae31beca762c37fba9dd2b204c27ac1c1b8a5cb1a17789b0154a45678f786190d05e6252743f4e82e05ed3dc276cc812a9d5c19dd0f6e80d67393d1ce16d98e94bab823fab4038a7d0e083f52e0207db2d22c071ebd5eedaba51f3f9f951259da63a121c47ab16433fd650fa25e6119f1f20d6e3c953227e799e1a0956b2028d82e3091438a3303b9589aca87f556b7c246daf7a1994665426425ef6b09fc3bdf5b0eac4076e831a3992ee20b154b225021f4fc26e221383a5f3cf89182fa077925f108b86f6e21cdf642ad63b29f7b7113e0a0c27679cc4c37ba62df4fa91cc48e3d336954aaa4df6c055326cdf1f36644752437333ccf1ae374c1eb69e801563e37d53221bfc9bcb3ebf28f1c75c5c20ab4fa1ab3c8a496499bd1d243b7e38bf3a096a6d3f930676cbd430fef2acbd464d4c497b9934b9f7a737c446f813ca0e75b5e9c532234121253a639eb7725df508ee178a4788a7fd7936c8177c9e5b585869a046904875d6612fb33c3318377827412f0aa419044fbec3d7f875ba882c59e5ec819c09017566477e2ac4c365f0eb9209f6f75c9dd53815ddd515c1950124c614aebde65427706eec1a8e1cde1f091c1ddbe63eff0c3b7bc8968f54b1f0155768a4fb7a53428d40da1ef61eecf3297b5ac4fd4c5c6a329f392e9ffc2aa0c1341ef186acd42723b047aa2901e7bc68ff0f372e6e43ec1a12a223ffd2307e6dbf1045306d2e7768fc84919627cd9dd7c2fb3b4c2b24a9062bbbf0f33fe68f955dc7d5ee0ae590e9f797b97029baa2f994961d8f87e351993569ebbec6e500678e759b5a10e534049f936c2de5681949b5e1db136903448ff065be2ae27f4f45ccd9e734b5e8cc6dfedbdf09a5333bb25d415558911ef5345c4ca405f1486a473f2684dcdeeac6ad69907f845344f4151d2ecbc325bb37ebd8dfb19e32c853b73f5d5fdab0c93d9e0196ffe0bfe697c701c7b81cc8b517a895a87d4cd359e993a8cbd957ad7a10f08afc07a4f22e9e10948ee80f3fc7d2764e3f5ce708963a0efa8ae5a1657272a894b78f1b92651baca0dc55abaee6bff35ae2394d3fcf760f4c3587abba21f29ceee59dd656ec7d4ed3ceade5608acecf0c2ed3df5479d6b01035bd8aadaaecf86f213726908c431921c232161e09a5515e12b001e78b0ec0a65a77f9bf2e68bb0d91b1a3b861c325039f5c79159e4bd2f05fcd9dae31cc42bca113d6e458583b41b787a81ad2dd008182cfae55d1bf3f5b8652a1ec566fec8050c8a30005639dbe3607d48447602a0b8e293ad546c29bc85d0a7ce6e8baa9a8da7e06fa26555e7b07e68a0e9a2e9725e8b7050b36af7be61597a572d879173e32e6495a539acd04d6dd72ec5ed031e2375ada160c388823a482149531280a4570eeda7d8b338e2687eaf6548dd4542b25bbea79fa62003e4b5ec72bda87072dff72cc542fdc18e119aec6742b9a50dea78b495f744b3622161d3fabc9a8ca13b19355b3364638b061c95473f570ebb52f9e7074dcbc0e1960b600ebcb54c0d76b204e3214998c2153ae598730b1dc04ef95b951e5e68246c4e6140221ff8dfa5486b69fe3a809bbdc8d4e1b1c5e5140d25de77266191f780e9789338c508853a7e02fffc5ad76318688f401b3226a5aeec19bbfa7ab8843070aeeeaa3283a929c2a7f1a8d9deeee4f36ccbaaefcbbec6f55e0a365f1f2743573dac87475e390141311a218ac62e98cefa0c6feb5ce325546a0b80f66a7cdee0165bfc992f576e49d72dd06e115c9b0fdf80b26619fd47cdf2cfc0305831252bdad3eabfa97abf791d4eb9a231e5f4c00a64b30691e81d340b89ac81b7a6a04c75371e7f02398acae8e94fa97e96bb25f3ba5316ab158aa44dc4686c1100dccbbfb88b57ba83a17c699a725abb6b5fe9b8f2b82f3af2780a014224585df4062f2d01ac66b6888132515ee48b5196f79a43d892789e670c70e4135aed215aa164afd8b526e5ba05125c2aa4eac78ed902824b51eb6154873b627795303f3e81d14358efd23abcdc56088aacefa91afe300e7b677c573fc5414ed6ec0104f88a5632cac96ff365a26c1efe4bf31f1b314646e7b75c4269394619f48d561133c07ba1be6124010316191a7ac8df57d1f649863b923c4cd11ced1afa12e3cbb6fb595405e4cb1fe5033ca02707239ed334638b6e514edf7989d0a70c79bf8db24bbe35c155bfffb0e4c0e75093a964c9672ed1a383adcaa4ea4e59a91e5379721e9b433b79850b728a62d1ba0cd4b7ae525bb85bf07ecdd1850e5c9ca67fb2a6f0ae10f77a18a13a7009331182b47aaa08f8db4865681fd27f0c3fe283fb36028ba733efce31ea690a1b19b13aa58e45da6c9a4c8b62f6c51e02b1cd60d0a1b98b4d78f5e927b3b6ccc645e82b0a08450dc051a35248dfd39d5f66c889874d1a7bdb6d93206465193963524c3381bb91f6ee91d454ed97a5093491a2bbe510c9e766d75a7e953995403a7bb53cb1c070d466d769fe6301e989a80b5168cb5e92cbdc3bfb0b7f07ce691fb9611ce85c56aad5e378da7e11c439129b3d970d09ad06d539845655d9329a7624a0a4b6ba0624611317e0498161d7734ea90cf41e47da3a8e7ab45a02d3b7d1f13dc90f6160c08a37c9db68ba6c5eb1e18d0758ba1a0ceaf13d57babccd782064ca64e47fcd23612f3759784d8ba111b5d1ab649406a3d778bca8a98a88d54a1fa890d36f92d93aab5a67b8dae33d81abcea28ca4070efa23e2ad7372abfb96442ba29ef09a538fca6a7ff6e9bcab5379e4c5619b89ace3223b32b7b72754fa7ef1cad80fa27e7a3eb9d789809f81d264e04caa5d262a764b3e19252d202cb72ed7aad9ff2b4b0a972407bf1d35c3b437d4754254c617a8c6a9c176b5175fedcd040101ce74e452068ccaa2acbdcb852c005797ff62c01b749f03edf2ad908514ecfd5b3254457fcc009c2883589a3310dc14f1e368980cb57dd4c514a4b5c14c15b4e39ccc4d1d0b35f08d14a5baf9a42f6552d87e441ab1b33a617d5db835ea660da4950c9db393bf9a4f2b7be68979e15f6fbf5264e7e247de11ba140d38d209e1825f748e14596f981441bec1c61460bc5efa2d043f681ff58cdb9576a5e75aaa38e5ec01c19c9c0b1b38c138343c157b830456862d149c34f10db79368c9012c106f5075b5d1b40880a1357708a7db8d67fa639255115b3fb62fb9cdbf37e0aa4107e7af3cc955eda8c2b9520a348602577236407a981c7068abe46af19f1ad25af926b2e4d896d15824603de60d7bfd3c72f394ba3af4359f6004f2ff9c0d014bb1cee939908ad20ea489811c442dee7e9cdeadedac3013fbe4e729e22655f7f38dceadc766ae03a860a4706ba8641ed16198ab8f268cf39746db4b0777d4f975ae58680c1caf24593d808e90a02676857bf55432449da125ed192714b4c2015781fda177188ab320ff4b7cf12facb10e18258b857992cfd8e2607ce4436eb39ccc6f511d7c5727e2711bad0f117861302b7577cba8c39db2fcb596c264704d382e93a72f4ea25f57ad87a7596e56be05bc711dd70db79f9d052c4bb89ac2ae137ec0093bf21fc282d66b6116554cd433eb1ccc7914418d0f802e465ae3849c5c5068c2698da7a5266cc93c94538bcce898534531408ae9d4355fc8bbae0c614f7c453f0f4487a8abe8e8f5092c9e4cf9eea8936b86c0fed4f7a097a2b3f6777738499f08be239903f2536abb324f65e849920883b38285864d4a2b9c113bb3009fb4efcd2e2848d1c7dae7d3fc89a3ca1df2d5d613be8193379adaee6be203747af4cfbbbc9e68afb7714b10b190189161fe72466c53f4160b3de2765c654fa357ed846fdd9ef85b068a379fee0f3920a4ef0d87f2b2c9777830e8d5155923bdf167ce20b99895b9698b00758c98241f8751a5df146d489cf195a9529b943993f7a2b892a555bf845c5756dd2e33ada653372a809f4b4ae6e5d16af86e542b02e83bbc8959c3e81489dab833b24ef253c389e912096ddad696a928339efa9f4c45da8a5e2c0c3658547f4d61be3103655cb8d5844913ca8570daa40489033a4c8062c811a59c68e99db15e8945c984cc0457747d4cdfb6a6b4a289214a72b74b5d2a43bfcc3111bf9e50449e0307da8a6942605b639ed0178d8f974e1b6efdc04e94bcd0f9b155cb9e6be60c0e2be38b3b99b722c44077ba7a02f4e0c63ff2477c83bcfe645aa0425d3f4dfc25afd775d4af92d9866f1ecf241d1ef8ff99c8d3fbcc6aef969e5bbc89485306c66a1f27df1c2149395a0127b8f7f75d3e4fd42206a1d850e72fe857a86c8694234953921eb6b5fe9d0030eb910e7225a390bf2b44a45cdfb0e43b5fafaa79335da8c43a4893530ec98c0231f7e02aea42bb22565275f72e6b11b5531b48b4212cfde7ec3b25daf7a72ff8129472d9f7797c4cdb9a03df0cf112041b76c13d6826eec156c5f9d0ee86648640f1006b1c57969911bab4b8066ab3b5a4e50a1e4a27a1a28cd1ef70d96836f263d2e215ab0751dcf510dc38c8e3de28b2880b49d4f9559f95c91d5dbb4599118802b8bea6b4f436c74e232e4094a54936191132d2fc73e5a44ec796a1a7d1f2655471be7577344d6641b5667f699f3badb0bc768e0feabcae879ba948c08fda11bf4958c476e41d74cfb392b9bb6a7fbc3ebe353e38808191c1711ac2a18abc905599fa4c9725220149ab449207052365e222640929a0980ceb7f949dc4e85d180d17d163ad657ab37622bda5a5954775e135b98f2cd0a85fedea07ecc4f0e8c7669acdd8a945a56f095a9cccb4a217600199c9d3b9bf6180827e2b601444cfe3a653d50fdca7c5a20c446a14ddce4c242ff58a1b0e6bebd62be96f31359357330bb0cdf77397a801159dd35b2ef365427863286d37265b254e5332cdc412ce02c96c2b9bfc9b834a80f1124bf27e0669fe2a491036694671f73b9f6b8b08cac73d4a500a103e9dc5174a5698c6aaee1d43d82d853cfc6beaf4ff0ceade0472ea7893e6efb9536119f6e2455466359afd7333dd0c31d01d6eafaf896330d916d6d7ac8a2bcd2089b2cb3d4f0b80277c0515503cf0ba5196246032a2b0af99901a4a3757b0c30535b384f0066d8fa7fa7c8a6a784de1d91d979903e23bc695f18e7b2801f53c8757a01228b12af42e40020215db6d722fbf1bbdbd41acfa585fbdf890fad4bd9ad83dd5fd94ab7952f19843041c74fb5f6312eb33c1bccfc44a447c0e5af0945164ebe0f0602acf23d83a036b6d7f2bab699cef79500653e6630ca20e7cbb21238d5be8c69d2481c80900a078e8549781aa4851f3ff4fc404f4a00296a45b1ea2a632f067020471a50dd136b0497581c5622adb39356c35c1fd6838d5a514f9b45ae8301c05123b85563cd9f891a1c352bb4bad1fab161eedb75bdb32b57fe985ecc77d5b052da05fbc3dfd35cc5e939b1de8eab4591f6d8acb668359b8e08779c1dbb2d11e4dcd3f0bc01acf69ab5ffad0348075e53b8fe28f9f46243a30e71d69072893d6beb3bc3f841c44327cb437ebb5ebd445624cbb266d9bcfd477ee684e3edbc863e6a167ead0d25afd5cc268e533f3d601310abe485aa7b15e421d641bffd6ee8a7038461bbd9d2fc2eb2ab61738a061b074b8f0d4040094ac40468d9d6729b0f181a69a63d983ff4070d3b2d2aa530d27dc16cbd698384a1792a67ea647011b143a2eb52bfb0d3daea1422fee646e313a039bb61208a400b5003bf16ae66f62f257af61e86056dbe45d710731d42de2d58d5fbf18e8242d2061b05c468bc41941c37b868a5acdc8f2772980499daf10beb7c2baceb8bc6df343aed6b2c683cd1a7b22539cb67660d966eb4ddc09a83665e3750e1c005b9cd0216d17c4afd095c6d527458f991427dc6263f444ebf0c41063ff5d1d20d3fc924b531cab2f9191293259f729c2e1e38c3a3799137ff9cb8d351a69a34dd2e453ee42d8dc574b66f9b76e74bb3019903488587bad1ab53223f5674305e75927c196f0df534a97a16435e4f05f81cca3cdf55f1686ae3e779e7ee746d559627c55c57ba475836d6a318391c713d1ab7d2892423a3dcd621204100402d3c47e2b1a7ec4292925f8dd7c89e5b77724fdf107c5cec04e2f05fe9ed7c7479d5526905427d57e9ae02360a599f5b8afda4b139b99a01882204147c980632c6d3f99674c651d1395478bdf3c9972f2b625b13f197b07bdc448344ff6c129f3e02c5f83873c928a9f213e2c1dce42d7e62f9dc7679195551812c0919894963219bd151730ab8fa85cc82b87ef41771ef0ed059b13de9ef4c7980103dfdce2d2d5d2a195e6c998bc8fcdb27c74d175be775fecc073ea08e5555d21c4b39ee2d1d32c0f94f55ca40239dcd6cd106c00c8fe5a2e80cd960d9a96bbd827dfe759835785d528ee9b823a36df594c3b135eea4f1f357f9d8b95d69f152aca730ad28e0407fb4eff8ea63e09f1d045a6b082961af4f34f63e980b4d786097c4206099581658674e24cbd0bea7c8f4ddafbf2e6ad9eb91373dfab5ef3ac654d52afe2d691a60e5ca4e6963be3331ef6b682530d9cdb5f2e669ac94a679f28a0fc120293790be5dde04beb4dbaea5548aeae1a64e981dd0dd74b1c5e9693df25b3e1e561f2389323dc38b8200eef0d80fe496cb167afb1830eaf3c74c7a0fda241a7c81a27c4d7a8947ac2f04eb53025a6dac1e5ea27ba986cb88fe06ed71a374572dfb61fb9980d55473413caf6eaed3bb70e2750800da490a19340c0be84364498b192c9d4243f695d3e39ccf588bcb2e009f289a34f19b2cff13b57135c4d906e0b5186eeff5a5871d61691c149d9ab0a89f1e3026ad23a745acf73c04c396272babb50e1a7c769483b0746676bb1aa6207252fa08bda6b5f9f22f1034f296a4825d432300f493cc09e3f17ba1126de6f66b95567f4674bc3540783ff996bef5123001be382a57e32ab7d4be22a01075162024439e619f7cddcf919bd909d9c64a0d8a168b23a85c4708c2f6ddb948f815ed4adfa09a09a545415da20239e7dd2fe140205d933014e75a9040f986d32550721aac38723d8ae719e3156b27be0c341dcdd190675e88f051583d1a81f09f6f112c7facde180fd140ec3bb06af5472236a72fef3c36933c3915e366fbb6fc2d71765984c74708b8822a48a5aa253de526b56b50e5f57a587fd590e697bcf182fe319454888ea4770ff1b219257702fae9f6ab88e88684db357b4812cc0bde6566cd155773e4a345fa7c7e712d80b95a01434ac101c17170920c309d666a2c911df280e54c5e671cbdcdac48a7733f8ef3129f4e9f7c95967094bcc005f0476cda988f93cce823aeb40d68818d9f4453c85fa94262756729cc9228a29cec1c5e182e0c9d1fd3c1b49d8a9fca6d3b650e8d8e25f5a3fcc1f04afd17b9f31e604f96c61a97672933991e3e1be3e9861dbcd36ce579ec7b33d7afcf8b79263b1611d763c4d837df4a3c3fe6479b3538b3a82f3d7b867bc70de7652c87e525c115b1a348f6da18ca5e22ecad3dde9c3a6e99bbd38998c4401ddafa0c081532237d83845d67e4076c3e627465c3d8fcbcba6394c24b46ecc831dba1823535653c57cd4aa515b2f58d487f0d4b50ab45900e285a9623834f83e313af86e5f92b17e88988c14d7146aaa9c54d634ef2fdd5ab87b322474afa673dc41f5bdcfec3035cb914876e4c53270dd7b2611fd6bffe9a35c7ded79131a637ed0f7b6720c0fed2048ba2daffe8614bd51c21a642b7187634c551faa0ebd62b0a411b36658a670249ca4cca68c687deff4eac565c286edfeb5d8fbee351ffacf09b3a91addc06e7c5760fefc3224228a870d60e47e673bd0145c4eb1f43636db1a74255fe4765414775991b5e2430d2178f6339d9dc07968cb5d2007ed2271c4014384fe8ae71d69673a361cd6931d3631cc1fde388ffa2c5eafefb31c7c564bb337bdf3ec977aeee5fe457658280e32d694e7e4f7a067adaa6abbbaf1b4c7a697a18040ba266cceeeb157a7d739d690530356768d9cc61dfae260a3f7d72d8e005a92c6a1a6717cf0f09d54c34082a700bd24f62dd85ae2c4b85a673cf7b246010c379d265c2702386ca709233cb43a2fcacb04056b6bfa2ca90dc85a9e8570b7efa49088a18308d4fd72afed1d54394e701700e24537969fcc27dc8d5f99e9f557136ebe4e67f222d61f251e026597513d9468abc2f52c1b6524d81d102953240f8e022a35e542928a3987f2cc7f36eaeaf8034aabc516552503139508cc8bc0bbf359e4c8bf6000a46a79bef93584e46b0d7f8091697ce2dd2ba31b946b1822b9502ca35c95dbae3d4ee595ad9f3ef507b6f850c6243632731d70da7cc81ea34ba055e0a8cd1ec8641bfec13bd7437a47f30be797fe13b2655bce367357ff0603ed6a14b758dc90979fc8bb178fbf6ffe205a22904a5b3931162de7d77c8360ff34715cbba614e4908819d4264e4667ffabf658a8b1a69db911a4d1f9bb7a041eb2c7a33dd89bc64d08074c7d0f9b62b539d7e1d5523aeefd51b80b8bc46851e8c96577cae33263dcbdde1b2b216d1694abcd4f83256a7c43e0c1967df22c76f2df83079a870fafbdfa05b6e1c849c8636f75b44c81f84d42ae4867d8f568c224acdd54b938bf48ac70856d7889bf0321feddfc0173c4a9ca2b63c0355b6e2c940a560ea7bfcb81801e184bef577ec010639e63c6263a81c1533d331f678591ba4b6b6a3fa74b799d6122066cebf98ebbe19281f5544255a24f2acf889a57b721b5c9b95c9be9e4471a2f20aa6d18fcc580c4be28825c9df81dfe57a5a41224cd31cb533ab66cc14fe89ef55c2dde7e5151b2e934fc81138db524e8c9767c8cb7d2234c5a06da749e22444e875b6c159f4e25753d3669976d6a9f23bd9b46635e33e24e6707ac2e4ff1c64d74a61aeb1c691cfd884e75aaf1e75384472b0de7402e3d6077e45f72e0a0c572cfdb29459dc5ef1ecd99fe67b808aea9a921daa96c1a93bebec386a31ea42a4634580df203a409dec5b402c77168ea5e3395e554e2e5870291b7f8a3d336995ec722d84bc62de744906c4b7c585c4f6fcf95147714e754bae65f9af65a7e62cadd6a6e044af08bc0af57c608a4a402771895a7c7b80db26383fd9ed00cc48197dfd0b87b4372cd5496398726f14bc1d05267025086ce5b9dc96d50d288e1623aaba97cc6c4b8f41b2f9b34c2133b4f930c76f8f5b821865808e366d3ef7c30e74028f58b1795383076d5e44d212910a9c200d52da0e6feb618131a264f1b7b0909440ff2b2a803d9e6c9d65b5c8f48da87412898fd7a3378f5a4f65011c96fda5765fec65c59774e1e0d24a85af7d30e536d8c5a94d21766c3bd73741b03e35d23e427f516d79e0cd799bdbff1390a49b7e1e7af94d767e317277a5937536e3272ed142c14591d6748d803a63f1f8c24549b2d8767172416ac0a6cc29c66853271b2d1aef4c99717b46978af7bd7b91108d888bb9ed4bb374f1770e7ba375464c2c5912f6c36c429c22677f84479d3b611b392a8105717306c1d963c4dafd24836271485627b00325c1b1dad79f3d824c53030f3109e745a5117ddb83399fadacf337fb74b74f807801f6144119d3661da4c6034de7584c2e73db30fcd1921d1b75032e1791161b8971c86e185358dfd3df9843014d37cf50f91742b54f1f201ad6573aed55e02b630c5b9234563f30a05de4789a568c510f62b467f95b5165652ab44c046527b5a348cebd72c1fb216bec37b30ad0649c438c54565812ac9cac445f1051a3f1cafb7625283506f6a74e9532cb6805f168173e0a402585c3b414213dbd2cd45d62b170f8f3e0b4f9b6172e354e6e23bf528a3be35ff751f3acb61ff751d28153271d963c8c5dd970f9cbbbc3d6f927b1c5f1acb3f72846a3fa1f0f0104e27517642e1dbfb89967fec71fa5c0a98d6290ad73d5560d5913cc7fcf0645d6e1c1c6fce6af2a1105b8494dfeb4eb8bcf8460c78b19e0e1ec13ae54ba1180d6b657fafed95ab2b617140d0406ed4e060843d4968a557632891fec32caa899b82e32154cb2cbbb65c752b9ce0a2883bba984852c1384d3cf9a6f7c245afd7f66790dff72afdf2202128540c0918cf602c124d31b9db4a2fece932135bc1353a2abaf4de42082f0b97bb2d94d55cf9eba89428639f551366099765d49b5ade8073cc11e4aebda9ebb85a5cf09c645c122d921a1feb9b850d8b37110eafc04f391893524f30bcd44463ac8ac3785c8baa2b09bf9b4de1df901957236c8be5554465043a5ee0dc5428ba7105682e965f188af1e81e52ac5964aff2e74f81d3969d438ed75ad91d74a725dfde6dc7de459339e3f5cdaba87ccb77569666aaccf53bf471a27bacf2fded1f2a1601f80153b91e7d92b697eaaceb1bd45e5ebf5bb91256a3ef1600fce99177ec37d4063f7189a16c029a4b8042de962adad1cf3ec6656f0921bee3096ecac1f053e264fa8f1285ffcfa8281764b9434c422139838e72c0fdfe17f22ae109e7524fae69d2836a618a1590e44af02cec66c191748c6a8975ed01a476c2c622a264613fd5bed280e3a29f81b414423d4efdcdfc35c4969cb59e32078a7166dee5b528f5fce428c2ce46840320b17d5414a42f316a10b305ee1dbbf1b00b04c49416134aaea7eca59d80dd0bd0b0c0d27b576156dd6c7b6efb9cd2866ba1736788a37f57fdc0302a1fcafd45cfa10930bd6c4b433315423130ab52e38aa3748a4e9d2c01a81129ff9db71a9a66b73528191bcd720db1c5ce5df9e4df5b902fbc79906078cec6c6d2a223158803f87eee69317ff176f6e811aaa613ee76603c8e2d7278489e4c84bff2347e0c02e9dd560cbadaf7e7f905554bee518fe413ae66a63ca25c26312ebb555d964a245494cdceb7996a70fb09d42d2fd46da714c334e048d1a9f187e43e9d1b9a43f62f92a25ebad7827189ac56584cfc9b32f02a41c01f65e05e66ba9ced7d75d27badb47b487d7615b0746504bd4cb93e04915d627a85f59246319ac4a47407ee15415c7e1bc14c2233b30dfc2a537f971a04f9d7ccaf4569e5a24283f29ae441c8c48cb934f586edc8a84dad93f44799faaf9a59c3dbdfb5f49dd377726abb219916b405746beb4e5bc180463d0b7617bf09886c759baf74be469ebc00c40f2dfe6eeba0d6cf0f6a60f377f6ee6250fbc91feda737c13937890b7f2174d3591a1e533a500d19a7ccfb138175ef6b7cb3abea542528652e31ce83da33f80e3b3cc3753353748f06fbe49f0ce30d9858e273c625cd55db0bb733c9103cedf93a1325d33e561e83e36676fe402384a7e1dd7e55e19c36b71aaca0dc5c674c8704cc32bef668b8c9496bb305aa8a769df537f276c01c51b5295ab939e61483d06b76a478c4f04537360a18b2f735a3a3f8f2b839e42465f03c78f3797a3e0635259b8ae01f2ab209684bdf685ecb1272485b10f3da62f2db77fd319af7d710666e71a308e24ce1bc5d1ead93cc4b17a2d0375f5ffc43afdbc5ab18b0fe16514951ba5ef5eea4a2ebac706113ce754e4cb5b57f29e14a74d2e1be5937ddf991e376682e4853ba2881532db6f8e24a2f9898145d8afa8141dabb1356d9c770cdaf7a47c5a4065cb1e627d4f374c6b35b1e412760cd5c02974268d8e0700b7c4a3b74336718dbc74252af8b8a255ebc9e9b3d88e083c7e71d9c28880840f1cb1f7fb68069c149d65991b72155cdda2d0e0227997da6b5a93dabe08fbbab7617bf8ef0fb7235cee41ba3ceb3706c32246ba3861d5a363399c887118ceb4ed1ea6ecf431bfa24fa9db8a304573b5bd93c901f1266b1a093193f9569b0e3001e4ccbdc261f588161894508b281b7156466e1fe4e5db07e75ffdc52ce3c521bfbf8a7a187a21993aca0b17379047b7b257e0e47f5861c83b6d458a1e3d6e2e64565ed4fc41466d1e77852fe8aca3f82e353c06d0af59cf578c346902489e315ff4dda28e28f6efc348edaba112b518c908689cd66bf0214c1dcc86a525edbae346b15d657a88dee2486be24962f4ef5a58d5a374b68bd8e844d88b28d9898a4ca411a581b28e4f4feac4ef4ee144cba461507ae20276a30b1685256c6438184e0e05bacdc87b29b0e896315bb1d4ec27fde965b8f3b1413e2619868d76670ff95723032ea009a785f89dcb199a3307d111180d87c9e40aa5a7b9e272bdd9ce8c19788b21f68ada7f01da250b977ac472e3dffdffdbc9663d62c5f2672ceee7195cff7ff275022525dd5469699bb24010c63c27aedfaf536c26e574cac9eaa0f4264eb176d189bfc8d3ba071d3e458cf7fffc5e3efa16e3dc9269a8c6d5cd75f758331860014e34d151c031c13f262cace4fdda57e7a4bbae47efd4235c11949577804e1d0f28e54e8f8560b81c9198a17207b704b04a96f4e08bc220837d5fbd5db5104a0aa483e223c6cd501daabec5fd8675aab6a5c08252f73d60299eee8af4fcc2af0b1a98f3c0a7f9f8950e7edbb00f7992195c9c0d7f3e97e5a4b08aca5fc4e9d56757fe368c68258449642da5efd68b02ae721f98248d2621b5e6334b4839ae2273386585d402db7e1f4413dfe35957e5156152327886c30cfaab1b012e27628b797dd2011b196393a070ed09bff8ec02b2f6d3070b754958823329f8ebfef4d4cb171a90aa224efeea246b057b9b3fc972f954bed2531ca642f37716d84e7d6404266b9b37def012116db37a2363a9a4c9c51b246f539fd787dbd5ae2895b59fe5d8c42c4285ddcf13e5dc16f20165e83c1d812e0708bd69b60843e389217add7384785134187383ebef7495c793134760bf734857dd61e1e8657bd70cae50e62c33b0d1766050805074fb9acbb738db335ff4f0cac7fd473f3764b3da72dc047f2be536f6f2d8e13571665f3d3bbcbf2b0599a9bb6a07b8f1caa07555bb68a6e1f96a22d292b06028489c28bfdc6a3862f40b352f1578f977a0ff95906e638b31bce0f330d146370370fc94a68e736ab6b78925af074b2e582d0a784b90de87329dbfbf71ac4616ad5ed6b51b26eba4d91163bb136f048f6e0779add77a0fd458a9d495363e2629cfdcedf910944b398d2980135c612637c0a4bd089575d2ec3b68bd17013d9b2ab8a2fce75d9ceee39271d9a5edf2bc012b11777fed56230455f06f5f5b332289dd112da9867e94c4117afc13d52bd17584f2ffdcfa13a501eb7cb135c7d3789bac1aa363fa2ae1e6710f8a47e23df8c2f9f3de44407b1e134ee89e98edbd22e59de2f264d26edf5af0c8b9e0b9ddc4cdc239548521dbf8ccc4ce2792c85ee66abc8aa11c5cf778dd6d6fd2f4350a514c7aced3390200c2dacc888f5ec1525017138bafe6f72dfd103a73b41cb0debaf2ac1381bd36c9ad3f919dede2fcd52f2fb2730ba616b4a245ddfd4fd30e46a0af711fbaed308f1027b8c8ad73505c15d63e881b2f60b6ffd1220b2a24b085aaf81c998cbc92b8e544ea300feb985fdaa23e9736824c6590fbe55adea98ba0ff2661173a93102749c6b5f6a70f6ed0194491a22ad6b9a0366f63fb99dc2584cde36d3aba844d9800d2aed5db4a6c5ab134ca6ab772494bb54911a29cb02ecac6a4e0bc37501bb2ee98ef2b68af8eda45805cb3115b8dc934b03f07bd84e59a9e38987e8f33c8349ff6595ede4f53fbbd97ca2162c850e8bff803ffe6609ce58e63bd1cd58d64b9c0a13c3a1fe5a3e7c3354cee457485c4c86230189484f4b5d48b9202d0512a75a3ec3da7e4c4bc6a47539c384cb39f56a25f5a205945aee53176dcfe7b4870b6bf15aeb638288ca0fc2be1b77c5f6bf2056b310a5a3d26cc6912f6518323d3322e28a3dffbc1438fd852e0a8cc92a3638d73a859d1c9d9d5c757e1d8cc5f7ec92e6c800160a516a098d6f051aa31d74e3bd3b3678cd98c1f9631e771edf7be0fa167cb986f7c5df239765d3075456425f2d79d856c0beb49a97b98f7afe649d98c6e706c840e9bf180e528e70327944afbdb3346e71cbebbd40e42379179e0f09bc3d8dbce161b6c732166531d7922ff82ee4df987a8137270dd251847733c619c4874e0d16a25a5ded496befff2b847160c73b46934ec4edb1f0bc137fe6d0100bf98c7e470ff82d0ccc103d9fa294a2de79b19bf904d90f690f7e9fa6e15735d98d8a3b4e635061b7d33a05010748c9d40566b4e86d2baa5ba23b0e1d62264ee563377bff7e8acd7941a15fd06d81725d0ca63f1d411cc52527c326e6605b1117ec121daa31442dfa272b3ed108cc1e2bc67b2148276fa6ba542f5d69f74f7c812be32ac750fde52caeee71f99d5c1daa531fa397763a1e0159e8b86593d4539ac0fd43089b98a1387d66009ee9351753afda87770bc39a6a6304e9b90bcd12e14b32a37e215134a8206f414bc853dfe621306f63a2e68369800f6680bf21b9677a9b0e4124803e27687ff1b58d33d26f901657443d03b0e1549cbf4cb545a02274c3f2e3230c308266d1bf0d9a76782109b7fc374f9b02fee03b87952d3e429e727bb61221f03b25bef57d706e33d08cf64984866626d9d673ef6e7afa92464d1c1949d275d671603efee090c2ebd96d5fb2c7edaee73e3148b425e68f7a032c4e79b56ce7c7c2e4b59443309fd3e6b382aae718db83f8cc52273b7253ff2b6636ef5d221b4833bdb1a4df46a4736ac07b5e94453354fab818614fc393ac234aa7e5dae32b6933f1795f862150198e0672290ab8692a95496b434ecf1a9809708d5425aedc6df8174c704865e9e38753afa8671c79f5120b242d678b71021ee1694b1984003b40dde9eb9dbd82c8739564386f408e3eaad11ef9c49047d08ebd48c76019417db32291d64d3edcad5e14f3fd6a4f0af0e1cbc7a253724d04d637a1e5e808edeae029a4a0e524888ce85d2a6e088845cf091cfde22d3c72a92d0d70ff4d42ca20ad57723dd310ff9ca2288e8aeb829edf8b7dd2ecbde666902d24604b41328f9b2c6b1f3b1bcef058417922c5de4f2d1f33958ba56d072da85a92a6e2c22ac7a8c3493d22835f8c2f6a8911e00cb3e8f3f4a0d3f54525998b9bd0021303d5ec227438830d24f42576a7f40c079c5a66b361eb43e5dc456311b1701e5d475b37ebe59f2a891b36d3f3a2599c63f3a3d7dac6f89c945b81887b0e54eaea72d9783baa10c8a607eea74678d8f4324291cb0f1f9fb4f3b7530108efab859319d611b458be0c44ec11344fa8a599ec7a243a03ffd684d667555e5d74b0a11a14f1e102a4a4a3781001adbed54471c794cc860dcc2e8dd8ae777443d73eab833a522278f540d8218b4bddbb5082c7cf1e0518a840f2b91d42da37379304e0aba51f4089ee6f8dc5fc9d9796d25566681abe92ae0b3630c725fb02d18e3773971da7fcf437e1c9b5f20bef0660f18b303101971dffe464de5c7c8029714884c3c1e9fb4965f0c51f30e5a59218fe0c92104582cdd4516a0f563b85600ec9d832ecbef9a471036cfcfdc362ba251e39a3e91cb7c4e61bc9a006710e747ba877441e4f96ac2dd4462794542f2ce6451f5aa53544c9830faaeffb81903046f03bc0342a67e4555960b07fa6803abbe213c9cfeec6a5c13a325f87197df99218f660710059545cabea3b321013a4cb669bbbcd65868316fe994b36259b0968bc972d94e6408e9d41d19aad20408f188452013352285412cbb238f8c9e71ba8c620f5650b64042ce823c2e991c63e1d550d56c08e954be392e2ce8a6478b2ca49b763f3c489c3658e1cd3ff77958ab20af456d5301ec6f06fd0e2d9bd9b76d7a5889178fc848acd315bb19e18151db51a448e2a961b2e708134ae10a50d9dd58bf8b5e999dc6aee8b9c27b3f47538736bd3704b4e13508382924f4c5bfa517ad69a583fc8b10b70109ed806ed5c2e3fd8771d6b3c895a494727fa152c955f78a24070631ada129cfd48ce1bf4a789fbcdc4af3f7ab61f39d58a5b46ddbbedc2641d87f03b6d369c289bae3f6c22af4eab5b0ac659d0572d8471d6d8445839c5a754d96118d4f9794437be9cb117f2fe398fc90f7a91d9f4d8ce0753a1a429f264c8b1450318a27bff105806c4d43f8678ebd113ba84aa30b3e7d57e4e1f0e02a2636c988f08712028cd80ff928a1ba1bab7740d2566299a23dfa8d0f1dc9dd2ecad118d2ed5f37e0568fd1071f517506289c53f2ca14a8a7408ef3f89673fd9a85529920f839f22038b0771e6c1899160b3cece52e618834ee7b8112885bb8fedc8175b5b0c09a4e1bdc113bd91bcb995f37e388d07365650ba580848853868ccc18c9a90142c73966180a4f56d121c4feeabacd7fc73bdcb7a623a852f6a09998b1a066e4f7bd737d22c1bd649ae330e89eb0393da4fe3dba902c8e556dc7202ef3ca2e783373d458ff3ae05151e5572a37cf663855d4b3dc89b07617877c3e139832926864d0f8273981834153661b5be952821eb0aa6959f3435a6847abb7e7320bfca336c5bc067ddc6708d1ae40a0f823cfb8c73e1257ddd962645b397075d2b4266240d1c4c18acbc0d670c4ed47ba2c21dbe3736275de696d461bd2f350e7dca17afa49f8aaa8a9b8b28a402ff164d563a2187f9369a0ff8f0a0420ee090d0d500bfd9d037e0d4bebc289b277446cfe120317fee1aab32f8de0d2bdb4eb988aea6eba3bd354f271ea683c00173c6b68c0a710890e2f7c0d636eac63ba4d10247b83328f1cac3ee3b82b1de5c8fcde96921fc9b0df3649a6bee2f9371b74e84be34058bfd577000e5072de08263e34e1c35c2ea39c2aeab583d7e5b6150032aa559f2371b94722ad1d0ec3243243e9931f8312e2948652c14604a3568af01121dacd89dbc67b11877f958d56d062c6b98906e19097d71e04d4c0e6e980322a1accb8d5e4c28846734d8e100f47206f63751969df7ac70ca6a95741c5a1c153d55be01ad7b14ce1194e68a901c4d3cd096e6b17019739b87d7a283ed7bc584c5b0b7fbc766073cb75bf473019d6e21bf6913739f14a772f3ead9a753642b239a9340043ebdeea12fed09f26bef388887010a322fe756c304ddcdffa23ca5824a481c6f9f7fd676e7f279d2ea9f22fc0d4b16b52b6fdf320a85686cf238d07cc6572420f77d5fa1d1b5b6015149058d6914de6ec5b4a34142e9edb4698ea9a777eda5831e742b399947a08fa5aeb125489514d2874cb0b6f5dea1e8340e390a2d96119e0206155c013838d5b0609076d37405f8461708dfd13a58376159f19aa0d02c5f0f5171e78c5ed6a17c6520d9d8c2e4de7382e8d8b28ed031244e6b7db008e24fb928a97f3501f1aa31c1257306747f9f92a7f3c52c516038c6ea87187f8282fabf7a57d0cecf55c0a59f926782946855decdfd6cc4225c0e8f17690f758c80031c099b266f542587c059a19aefffe309480505ec6e255982ea807f26f97b82049c757434d5f487e711feffdc706d588b7acd767b2339619f082b5e896211a1897dd167c7be24149b445d33dbeab44e45520fcf7a21409e51565fdabe9475f584cf0d30c44e4dac5d68787d60649583411144e6f6d4a856112d603591e8bd171557ecc3dc837b3eddea92ee1463e3422d9b6dd86d056153ee9830b8395060a9a872804343166e0d1337e50ab7c7c8d7dda43be5cadca78c4b40c01543d147b82887ec3451df66b95156f5b5f24c72cfb7d048b90a59ca0fb9233f23c88b0e67e6ae7135fb33ecf372a701d3d19b9704310d3e06fb025339a247891365997e5fb36aa44760eaf7e2fe9574b6235f2c950edebdf3279450dc90703b391078d6145e1a76810f3165dd4ef0ffe22f2b03e1e49fcad4898d8bcb5f8fcd357dcc81b9d5b4dd8d5006a439a882231f28a81e8a5ef66f3b3f91a03f581b18f3bab0026a1c8a1ad36d2aa7d1befea44da649a752f96a85d7702c957b56651291969276a02031a471fbc274df31a157c85bcf3a6ee979e1e1247d265c130c40707e28a238bf507cabc1ff766681b2980d6dc26d1f137346b0ce5388a528cbb33f6f09e61757d119c5180ad72e74d95de1060a75f60c2a3fb93d14859b35b26dbe2da6e8611d117e919cf9b8c4df90984913df74f09270a8e28afaa19b2ac34d294af5fcbbca45d1f409f80c60218004717a60cb241e7846358fcf545e3f9580df0d1a8ba27888772e1337ba5e45af45f9bf03e2d137173c08cad4e0ab4611628d509aab5ec354759229a3ba000af36e9b919b67aba41be6de6834acc4cbdf6df91c1106e76cf1f0f5341dfa41ed02d64aa9786e7756937392ab3d2a143c1b695e150906d363fb61324c3a5931bb29534c88459d5a34a4174bda8f6d41e9291d07d77cb8e2b3b8ea8eacdadc013cb8e23ab62bf3a31aee973b205ad64a77698ba3e69ef80b8a1e956f56236745d884bdbcff7112058879010e51d50820b922ea2cb0d6b47ca2abd67f0da746d5378c86dd0091823ae000328278e3b17d1cf1379db551fba4ea7526b5a62ec5aeff242cd2cf673f782acac1b7dbb503b986be55605c85f05fb483eb408e05760344b1153a36b44e08ef2214e6a4d50bfadbe9df220a71c2962acc1dbbb77a39869d3163b19c64439f114d0ac4df5e6a46d3d682d37549a775b9f9439c41a278e243e4d2613cf28ee7e661021ce1404a275ce118702ce2b19b9dd506fb6d84fc42326c497bde4e501618c351e571591a2a7e578a7ff6f80894e3e6bdf2fe2292df9c6067785c9190803e56a18a582e844fc0ca4d80d533718470aba30ab6fc9b284300f92409ec5ad516e6709623a7c5a25c590879ff19469cc7805cd64fe64b03e7fcd18e6c8212d49c506eed142f26b00e85fc77af169f3fc8804674f950f7852e3d01cd7c965dad318d4478f1aa031d9f63fcd0935748232b4756f180466ce8880cf18b741fd99f82974995793b41b7cfe58733b96c5b69832b89d3c4e2e6b0271a168d4a9c96559b3a4efe78990cc18fb08b9f3ec058213cc676c2cb4dc7bc274c2ca2081beca01d23855e90cc79af4e5f2400c43b8ae756f029b800c2e20091895e4b9ef5b6a8549135cedc4fd10edd6bdcde4570556070a8cad3e5f8bed7d5a71be01234a7c6ebda09a7aaf6e6ccae3e4cc83d5ef6a5c597a6a2df5b66b2a21004447e49d48fc39bd26297f1c2262a7a3ca46d9402c7bb1ef5c394d579744fd83c5fe2b1dac31a64120cf32e357899adefa22b2edb452f17053e9a95062c91177778ab3309a33f9ae27bdb56e66d7a8e1b275f6316f811fd0e2e2288230e72155f092c70d97f74c8ee10a9bc95f38abf2eb64531b9c6b69fadf7e96675a381280aeefdc093e42282677f345a6834fb200c4cfb7cecea17eb5e66d6f55accd66ec911faaf7bbf59916164211bdc9a94a2cfecebc606d97821dd76cc280e70888aa5c51c7e351b0ff466fce479a5dc0248081c56db534a90ee25409e4c84047d87037fc1685d5ba9151370900ff1bcbcaf4d700d27db473fed544762645df5be4013008793b30470e42a8982c8818634ec5ace9d913d0790063537007ed61da38a9b5868a85e0fe1d0efe0474a71af5172e54c491a73f1b25d76f32864d5731a6101bfb736c77e14ba7fb74a1191b0442ea4501bcea0edbe54f4c7a9322c594fd5e1b3308831b73aae7647ac0eeca3b2a27981d352a1bf65e3be19ccdd7a4b890e84fafb5bb053b80e382ee35e8095322318c13c38e9b49b505e9aafa67605bfeb8b99b0c870292955ba2de676970be6acf035b32119489e28d64a5f2ce5aa015e53d58db62f5c0fd249588c677c932e120047ae28764c7616a13c2eb45673adae222912340536f755c3167484f92f70cce37252416384876dbffbf5ace4f66f31c96e769eca561b024ce4eabe07e0973906cf00a3096ab0686f24bd9234fb50f96272a22f909883080c9990c27f40c5c62148f9457d46146b7fc74c40997a707b84a1d3a72b25c80900465aaa28e107625c6a447b29e72a7fef030850dcd16c959d7d304136492ea2564dcdf6e9c1ffc31bc25ac987493ce60e4f0b4428970559e8b97088ff91209145297ae599fa44d0b53473f4b298e8343b5459032d7c05c8e846171f2de4dc5303b05671bce9b1f6a8f00c50a65f7d77780946934b88c3f35c9e2291496d6a33c10ea414d9495b1e7941a19ec2435fe742adb0da9a07c8199c01cdd9136537534c7eafc050f89b0d82ed1e1e136d58aebda844d1ff9d6f61fb68962d4e7bac6b5d829cc139376b1514a03c6a0bd331a56794e1b3c9fca36c85bd5562968e4aa30c0f332a325da6de27bf30835b1719411393bf35c63891c384325e3148a64b79a817b95c201ee2b507698ad5a5fbb89d40b997b4f893261bb66f1f49cb2bc4e3820a7959a15bdfc7a967d83ebe6de601227159225498d9833a06c68755ad991da26ec8c638305baa45933bf00b93252f488e0362151931a74327de7a28fe092a1203cb51823ebed83e04f00b820cc68176de407f041cba3ac3f457f607450a3eb1f01d3a9fe790ee873ffe6e5b605042cda063ef22d73b654503b2ed2bf6dd79b392a72f4d4f8b637fb249b62ec5593e8157f5e151f7b0681d1d2ec543702194b0648081e970bc9bc870ae7068575867e293a12df934f7aab91b4f20a3c6b634823b98d00eea59f85c7a1c7e218d6abe5664fd5a0fa738abd46873a993ff80286b3e65f3bb3cdbd9d945494b0926877dfdf84707137ed099c074886e94599f1b2d9907e22752da3836665200ab1b3eb88eae36e75257ca18ad032662a68ddaac83f2b7636f776b00cdcdf776f893a1fafa45d01340ea8877c013b04355641114792498907af95455b38191ac1033398df6b7f023235993fcfdf13b6f6d0cd3e31031ceb6648b18326e0c0d369598cf85a62370cd14ec368fb12c9977a2c065b9fc7fb1c9120005d56df809a169c45b4a5f0a8d17c0160e97e26e7b0b5d426d0629807c18ccb69dce1612e0c852e14cc6f41112f856ab9fda20a346646c5b379cb33d073518ef9cef03a8a73a3485ac6f1c3bba19f9c44f6c793f739ee1157a615d8147f6ae520397d609174f7756d60aaab061aef198cae8ffad31cab5d0f076acd8f77b1fdc941146d5dc202152db29d6e77599d5bea06975a2ed1fb64aee5a1dbd2176d3a3a7de11e958027dce8bdd348df4e854f14eb6d3327230972a73c33cf33ea98b3c4c1e2d66c32605097a6d9b88f222ad573af24ea22f723e92d8ac1fac8935ab14cf0fd1c3759f94e5c0676029fe43a4152cf1446e27046bfa378d1b275d2b134985ab51885245d855f1f96ac3c0f2fddd25582f52ab50cfe57b606cf0680406e72b1621ad7d5ebf9f2e0b601164f1c65bd7b52050008e8449596242f5f2ca0459ea43313ddb9cd8209fbb191ca43c28918445b6b6a4925410056c332b4201bd5989e9e1b47d9a54afd79e4af702aed6e9421bf7fd112be3b461c4d3edaddc6ec2b46a9e925c30e53a6a419f229a4bc2ec5ee5e7ee3f6d18c1b155f3ca167ee8dd0af255edb12d5efc01682b4c70a10532dc3ab070ea613238a3a1c1941ef726ee168fefa9a93f546a45144967f055660186f099f86f96bff8faa5846d6ae49799dc6c4657a237fd3483de1faaf4f414845a8812de32693b80da2c539ee07864efa22f8e811b89ae79e53bc87b4e370f56031bf7e429e66f604776fea23376fc046f1e7f1ac262625357094a9cafbedc2508627c2045550f7262cf057cc2ef9549dd4a5930a9280042f7e9f0f069b7e014dd7700d147f2a0db377b200b36a98c526223803ae9f61518b7e482b55902f77cb5c41d7bcf8a81ea557826be6ced0822c79201cbfd6d6aabaa044b5952525db394e3c7d16e37723348d71a194e30f2efb5a55dc7acacc038667d129b9ecb55a880560bdfb34eda9a099c7aff7ff5a2095ec00e533f2db2545147344f95c0f168419c03e9342615353164e2752361ae1344cb2fde2506b2a65d2778b1c3228a201797506687d00554b82cb9cfb12d1b09f24328e474e9d033f5dd9c4cabf9088d7d0150212ef2efbdcdee7297d80e6014868d6279863e5f23d1ad47af1aac5c3a8c622816e306420c0b507ebbd62b5f93f5e04f9c27d971056e1af7d38bb05457fd2a8b968dfbcb76e62e3823fbbfff4fb6a8b5a3e373cc8caedc36086b64f7236c1b44152d55c46d3b8c1946a688600e53ea645694bf75a45b1b4fa947819a3b5295e95cb9f23664763464aebd1f75fbb54bbd97be5d7593b8347e595b885a5fa5ee4963cfe2244e291b5d21d14a009c9e968d607ad7c2da566ed02e72e5a37f4a8c207dd65bd2317d567db8a7c4527e4d9032309b20f92046053f3d60cbc902cceaf114dce50d8a33dea1c746964994109744a869a4018bb15dca079f8c4d6433834c0bd48d84dcf1bf0cd70de8d72174644fac0b38da1b0b4e3b38cfe56a73a3de183a923fdfef7f7cc2b1a6004760fccce85f6c8dee54953141c6c2c32948c573bb01c9da67f729ea6f9c7e8d2a389d3aa5fb0e12ef1ae4cde8d16c432a11a5718fd8d6535f4b758f0fa5c0882a5aed6e2a5a449c4a3614e5dfe413ccbc7e5d4890847753e97e4ad097823813f6052760693268440302412902a807e417399736bd15cf6c63586440cc0b9f3c46aa628de0d270da49f2ffecd117315f304e6b6533b3845b9b1babfeda40e6c8a8dbc1b6217c5093c4cba25d374113de850ab7bf58eae4989809eb11bf76de1d94ad9f5985d6e4a5266ce63905cfb064a1ff35af7f8a9aac42c0bfda0149dfb2851965d2eac8f406270708a2a94de04e4afbb81e507629e99d2a540b55807afb60bd573e477d5c987c415e0382aeb2ab62f92c72930245935a33d2550a4fa81ca1081a97e53fcf2d60b6b6560f257dcbf44fd0de54cac5c39667aa9fbdcf38c1bb1229b677b31144ec66a9dde03f7539986b7321c160d2a6df4dac4a96afb87d56f41dc1e4c03e91dc9c3d17338dada2404ba1eeaae281840bb03fcc2bb11776a8196dc6ecae18515ba8f0d62b0077f9dbc16bc4f18b950a53c5dc0fcc1abc7df530f51861a2f4d1a965948e34e3e3c8d24a3dcc9bee835528e02b5c76f3ff18d01a0ca5306e045b62d747b8e39cac8c0a4725b0cea7ab26dd8ff324f40e0ea59e0e564ed7cac75f1a1a09ba05d697823192103214d84364ddae0a614b1eb0748f699b6610fd020ddeb04b103e93fe78954ed02b07bb362f2658fa12ac3c50de87dd36d0a755a11725672873bcfdc5ed699a3fc666c29a49ade81b6f47aa59482641a425c071048a502fcb014484e278e2158f54afde142d8c039811a60710520ce49263b44dab8e062ddd40f4d4636eb98f1b2406daca45a17126c0d02acc6799042e40c4ec8f45fbeb084081f4feeb19f83503ee1b3c6c1055e121a72706aa6b76d8c1f6b9fe34ab2f51184bf0fe0964b791368e0972f9740d7577fc37eefd9000f637c85fbeecaade71d6a76a0bfcca48fcbd1d714dccc925c8f6e915867e35f6735ebabff40c173a4dda54fefff6627a047bd963ce8f058004b29766d932979a740bd8e96f8369ca24c549834c699453ba9f5d03ef79a0467afaa96574bc829b214f20443751a1378c7b065772784e212a1569fc19b769b75646b1428be18ffae1c6c89801c5f97f0c8e60d22e21dd634dea5ffc942b438507dd89ac3e05ebc6cb735b9b33a1f3d74c34caba605166f153aa44f34639887a8f106d64e9b8ed793094bd7aae1f1ecbd50519e333aecee696ba3d3bcf3564b5c8206f7aa871bfba8f3f74aaee640dfe1319109789a5205d349fc34986967d86323f83402538e86dfd59c1a21620d27a4d921547851f25f57ec78fe9bc103991045b54564142b0cbc0b9877b1523b271f7b19a9726e0118ae2c2520f755938b9b9666e8722a4cd38649253319462f16bad6c278d3a0b4415959ff707a8258c0031ce25d1e7235548e453f436e2943806f3fb8f339ce7b5e9020b2257159d6de3cb109eb71e80bc03957f34103a359c6639256928cb424e7fafdd75b09eb099dad54ac5970094e79ebf521edd797a199cb1a96911d0a73ca3ab547924ce1c04dfed29d75007ea194b3415aa899be6d83229c5c6ddfcd79e746a3902fa8720d4d37aed191e9ea0a5ed2ff59f73362de5eb1fcc86ba9b9059395f01cfa05ed15952f5a4701e0f2acd40ab5be06f1b5fdda644ace118c08b51617ee669f745b442d4b287f9ea1bdfb29c5c79f222a5dd9fcf313b1ab3503ed2d00274e2d600829b4897c00462296ea4401d41c3e8808169956509fc76604ba8864f1df9a5ade38dae4253359c871f93f199b666fd44a74df8b4ea8b976e7ca4da187d63c74e9eee6fef36e3eb97230e953396c705807c0cdb067cf18e812259397f4a851247bbe3021e4addc35b70745478b211fcf1baeb6666dd13f0d91e2e8b65c4578c1b2b1a88a7fbe210708f2090bed46fee4273ec3890e7acdbce847ccd76d76368a6c864e0e452d7ffa37c1203bbdb5b34894506d37ac132516a8c334e6ff83733dd999b701385d6a6e466329ca4d78884b3b4306255991ef55d3f5085c30d6fa4240f98f7bee70dbee9687f5a32c5feb1155913146fd8f95baa9b1a48b8241fc63ae7c11e2b8b6d0e1cf930c20ee58ef5389a566c3d730c77872085bbace298d1393e691c9bc43c94332f02944e38ccaad48477040d91cf8bf43d0ef0a0ad926478ea1f3221d4b4d747c1bbad6651c5580cf4eee7290b5decef5c51b38313e22dff0db30ba89876312aa266141a4798f617495d508a395f617b45d091fe0c7419fb16ed804d0be19e92231754317761a1d246aecde0c08fd75de91dc19603527b7d8338b40470001ec2a3e82740b86bd442d2c4e879f0a78702c84282a3708dedaa32e7fe131c0af43a544c496e839e050bd10ec1f7cc52d90449175f381b750ebe42dfd506e5b3c6a7caab0b920991351b1810979811ea8c3398bbf85a2e5ce2e5d5fe4fb10e0c65741756c2cf1dd872c9cf6bc8be834b7d3a02bf9f70da08c1917a125b1c130eebed35952405f0c937224a37140891eeee72f7285d2422022a6003c4550f6b95859257d71db1a0230bb1bd868858135241b1a91bd49329c0c3e4819dec764f92e446a280cdb30e87e97f17e35b538a2f41f993c6e48a6732b323e721e6446099e6c48eb1946b7623d1264a93e4df9923df556af584a6e6f43c3bc70466d463a570cd8a6c24fdd7555c08fc940f49abfa3aaa979af065dd67bba58342c163688103687c4e82909db4e61c1c8cbd0f66c0c35d33d9dea60d3e091dc36b9badf5e0272326c9ba7ed6bd80fabddc12f20212353b7cfbd634107e12cd0186c6e93b5686a04e5a3afc15c4502dfb4db7a9b9ed881b9caa2faca27d4200f75d6da460106a8ee6cfa7e033a0adbb138247f0d8add00b5944e3d743d708daf781c6e62de9f5ecdba50bb71014289e6077c031d532be740f1bb79c5675185bba278d9959c7e49880f865524392bb9c57416af80967b47b2bc56480d1078067f3db8df4d08ee97c232333cef9aa6d482b8fa3f7334ce648e227ee62b19c8826cd9be73a5e6c2e9ebf722de78c5bb9310e1841108c4e6f65ea70a617fea8af8d94ffe26ec99ce5bc4f0d27cae67131dc7e1e3f219e1ca7e1aaac08e3a2bea9a189a03e81b4e6ba4a5c2f54e80867cb67d199b4dce0f46ab9295dfdab0a2770aa917ea10d8ddf73f232cf1720fd06905fa92039ce69568cd9ad696df60f9a71d8eb4e5c5cf5953add32862b1b76a6fdfd63ec82f5ab7055dd8cf8ad0c705513900bfb9a39dbd63ba54c9960f9f51caaa44686848f238328d6f7054b547e73139032240be7ee692e0dc450f32b51bd64e45b0b879e2e8cbf0fdc60174aa7067e8a028e8ee7a514bb1eb89058f4cfd95b445ed5f629732ef2e95e690ab0b4bf809cae33373d87f8152ebf7e270b7ef30d7366758b2357081c7a7b7775e33c94cf11fcb35dbf421280bd56bc4c8922d6e64880a748183c1a9e719db1f6dab9aaeaa28371948dd51b9df2a94fed0a89d3eeda656d6f535ad514ee89963e0196dcfb3afe19cfa3f38b23ed890977f955933a6dffe753addb6a94017f81504aa11444455af9031916f14bdcb67c9c8963803b8cb6e9dc5e860a48edb657a518eeb03268ea35b587d5ae3e25b4783b1322a0820a5a56eef7dc779a72f36c929e543ea1d96067585026caa07c9bee8319d37bf2027265cd81a1e22be46f6af608a9e38e41673ee48cb10f43e6e0dcee707364b42dc0aad9f3fdfe0fd8ffdcd969f5212ad85b7e5caa482d45473694099458ff2e2fba8fee9976ab5ce3b123964d578ff407935123a2a505eda11a7fd866b099f57398ebfb75e23e82975caf952bfb86da57aaf3d8affcb2b42bff9f68e5a215f9c2610b28bf6dd85fec0668ba9bc9d2a551244c48235e8d90ccea0d31e5a5fe4940c1670e1ef90daa5353e600540e3eb0814ab191db13b890558316ff62e0805dd5a40e4f3f7cafc677c795cc57f97c80f6ba84233b010608e83d758ba57b03c291113cdd369644010cfc55844d90abe37e90d587ec56406fd7559505659822637c45240ce7b40c29163dda0e370412c46da9308e5e5b32a0785dece2f457c074e2056252343b7e1bbf73e76e5d80356005e46151a6141fb3e797d7e28e383434f0ba8b50b086fc1fe6e328d17c9bae6c3ca43d48adf52b09ff35cbd7029f4e656c8f80211a400c73fb4448e4d31f966af9a0eae9dbf7a022a48c11e2aec311decbe066fb2e4bf21be51b996ab30f7c65aa5c3a1406ca0ad905fbbe7d9eee8bbc1c7d9345c2c663c07710cb6c0bb47dc1fa81bc0c786eef3f4714c94abc1cdb5062166dbadcb2a4cfb34847271fbc1dff25e3dae1bfe2f18b3acba53831424a6466c6ec610cd09c7e19ffc43b2aeeeeccaaf0b27386d6ee73e158387e069d44cda5746a79e2c97ea8d778d15121949829aaac978fa5ad52b103bcd4690538f09e8d5e90558b6c13393d965c914484a05d85fa4024035f7379f8a85db2fa35763f402b7beaa0456e589713db45db9843e96cff0bb5421925f71534b447f38d084021efb7f4859e7876383071faaab0dd92c73b2acb1fbdb7d35d32fb48357d5ba44346d4e4d4a0165cf3b28c59ba410e570234d740b212e6df0d7db137ab03cf85c62a301b67d2a0daff8485853f5b0587d5d1bc3b0daa29139cb1179998312542dcd89c426ed4dd49a7b0cfbda474c890b2800e03888d74d8738aab6a58a4d8738b4e497016c954f763850c9607fc8b45b1bf22482e08f8c8b2019ce5192be70923ff1cecc699dda14325c4d4175d67aad4deb7d00e46739a0ab427572edf39160eb4a8fe92a2f14ee165f08e25cfa5e4826a0ec5b5a1bc7430de697002ce490eab255579af15b61e28fd8ef5bd8b9481459dd075ff52aaaa5aa2dd3ebbf76b83a5d8f7659d1e8670ff31feaf5078706c28c73783573d0dc42d603fabc796c754e8d548e7f267891b4cc09566f1edfc6836d257bfa59445992b2a3950807bddcd677d8183aecc28f27f0ca841a449a9e552e2364972651a3c10d7e5db1dc3920896048dfd16a81d4d8029c38c7d29905d6ba3c17f208113e8148f2c1fa362a1eff40568241f8571768b34c2a7d34d957ae1b1a8e6b877c35e1998b636b199fd2273bb0f61bc539d3c80eea8806ef64548bcf7757aea321933d426b9b7f7871e047b93c02c3ef38c676a5d7734aa6e2a1a51a9b13cd5af4eb3a7f48f32bf7370c8a5d4dc2ed57a875ba723f7d771f2445da8ef0f9b09aaad1d252f7a92fe204c21f235d257fecc8a7fdb78831fe8eb62e534e0d50d8067f5f706fb7303753688ff152586fac6df9e62f3e9a8b5bbb7eaabfca19f8642687b11cdba4afcea505a5df2ddfb873dd84013baf087cb3be39ee1c0303e27ad50269bb1b848024a8065b926e6e6a6218b98d87f9f5683b7129930e82ad93ee132c2b57fecbb29b31daabda04dbc6ab50e45f91ef52a774c64a13c79ecba6438b17227e4b3f882e09f7b3a2ac18608f6535138c95680737a7335080c2e647fb65277aaefaa0f8a045cf356e42d59f0f51408917cf0a488b121d0e84b4a1b832526be4d2b60d2d8391bb166bf70c3ef8251562045f9a9f558fad74c42e38cf91c90915cfc54d0604fd68e211c75dce34586d87286b0834d038cf90043dc67689f877461ca5029493473f4756d08a32774970a343f661a3d5ef3bd09028f02ae2ded6b675edeba055cb4895677452212e54f5a4f301067ffb7a718987f2197d9a834523954f9f2264746045015d74a7cbcef63eb94a8dcb7c9f6e73b19e7b9515565955ffbbf7cbe16dcd6f4bcc86a45bc11e680cd0967ff47cf12aead005aa99163794e007307cdc6eff524bd8044b6a47f3dc809a2009e8b5eeaf187f388b1ee0f72cf9a015cdffd0d1d0e373d1a53ad82d9bfa71d0c9212fa0e6b7b9c31a6c2d1ff09922008717db96ef6567450c4def3567f2759493db6fd916efcc08cb88f3e7b4b0dd422a62e92f59b19ac0b035cf8c48cac94f31b9ec466c3a3c582a782b18d2e4a59d68b35da2dce452a115c358350832c7dbdf92c7dc77a35a17524965dba6c375caa86681eceb9e4576937430c8b79b6882cd0fce00ad8981ce76753ede12fdbba58421c3581ccea33ad540acf127c0dd3aa110c1eae5fa277f5b8ed585fbaf63974b66fa30a8117e6d5bac438c70337c5df2e92e4ddc9b5c87dc3c95a7cac6e9d280f69a7eefa924e0f82f7c676e097e38ce6e6a98b02064c6658ff096eb6311bd59050278f1f8642954ef8b103e8a40eb35cb681067557eac7998eab7515e0946403a4756d592c6c56abf2c9fc5f6f4319b2e907d69b6135e2d5d8306f0cd144f56833b9266de290f0b7d599e295df5576a46c1770299cd18aa13642c42a80843ebb77ff291456a605ab3efa5557d2f5b7d88252ae2e35a97aeb164cfc36c30e1070bdd67e8f5e5eb4f926f1f79bd5767a74d8cf59c57e3460ccbc4bc75e16bdae54d497022310d06343554fd882ed6332abc60862a676bbf27c031765ddf97487202419c982d5be72a39bee1b9a09f7b408282ca67a0aa167b3cf46e042f9438d23d61ddca865a33a5a36a4e07c86cba96608bb294a416531505dff8f6747877dc5a6b78d83d97e4ec1830fdb1700197cc844bd1d4b0247b1617d979462eca93997c1cd00a4aa0979a627c6dbac375e6f6b386bbafb6037b33161d0409bdc58bc9e082c149b97a9120468c086a9bb3001e453c8193045161380b88d4d6840cf25d02bbf5a360284840ab57fbcbe79932bfeb03b94e7e89418072918b4d174a6afe8b3e60cb1c24a693126c0a2d2378764c52495d956539617f9ac62e8d70a23f851a2f1c96a2f5bb055c2f31a2d6d33fa784702a81b22c333952e321bb43fb7e81cf46fe7fdf3e1554dd44d3822eaa13aa2a2d440dfc210ac8e7e14f8257726fb4b3587c23eae47094c80ea4e99e9fdaa29296a799f0c15ad9769cad8ef2927b96e98afec682362eade2852d3498cf56ce8bc2566a5eddda2f87d91810581c9ed1afb449cd23325bdb89e10c884b2eebe410f13927cc33ca1ffbdd573d546b2dc3338a7542a24df22e0cca904b7faeee8dc292695ea14437134edea6cfd8d870ff3380cc545e6180084e0f62a9739d19e431b4f3fddeec200723e9d182a99fc3cc729106d303991da1c01d4510d7e637fcfa9736d967d3eb0f23255398181b29a4f84f8bb8da8b5e86a8abcfb4ca322f57af89992ad9e5c0cf2b7c4e56d3701eb726ecca9ba7dea416b458230cf70f946f9033c40df3671001ce0d8d85bef72566991b493b1c110104e2395b53b09b7d301a0174019157a3f31b03ccf1e2ed00c8da09a8fad758a9d8b78b5f082b5a037c5d58b66a32275b06c89dcbed694fcc28e5bcdc5ef8abe36ec804406ec030d5a62ab49d121311fe30939c8ccea9e03d847597b992395d23758a820a0d43b4a9f70be97ea3d384347b0b4f136b42bd0e102ee326e2a6eb04f07e0a512f633dd32d101f632eb2712a849af2d8a449fe38b1888cb443dbe7c4b9a7593764237528f7644aa2a7526f1dfde332cdd887490e83997aabc8d110c9f94d7cedfe5c4b917ac12c896617077f2b74e76a6dc45b5554a12c682e460ad5b21828f2965489f5cfa02985a709a03868be68ec4b22e08c2670879351a54e8e3573d254855e72fe824c778f0b52cf0ca26b161d618c262ab197fcc1b58d3e05ac43bd746c93241915b7767815410f08daf8e89e1f328b2ade6d751cfedf6f1391f17367ac94ab6b7b263c43aee71e71a7a528bcfb13a1964ddfabf9785f9e8135bc7246ef60f7fa9dae92f8a23f8cafb0b2a306ec9f71a6d011dbb990e2df113a61f2209d382914d87b043821e42a2d35f0fd16f25d630eeed6f1c95813febc191312346892e8277dedb1543e5a794d879cf3b78cac999c61eeb06e07c017ac9ebfd958c11fb2aa508001fb73e936348c92a9aa408ddfb698185fdb77bbebb967a6ce4c60e152390a8972331c04ac3a3cc864fa17816f7936f9fc22a64d6f91683f1497c04b0135d8be1c16f73f67a1261d43871d752a2f91c922c6353492d169715351a07bc646d995a6a9aade7042ec78cf08e5be0f9c33dbf1faec3252f88618e208837a29bea369bc373de636c6c2398b4a0429081b5deac34f34348039aedce44131934e8bbe7752d89cc9b323f3f2c6cd920f56e07f4082f49bf9d8cf265865e334b6fca827aa3b1416a191025c7b644dac8c3ccac1a6cec9545c53c9038e96f85cee3a27cf31df46e1f24becef4b5cd9f4b4af097e286850b41dc6c9b3b0c1c03be577ab1af116d6930b9217322e20610fe41f95c3a575b6b64747c1753895fcaa776d2761b6806eaae66bffbd3a358d2619b2c7d535a08b781de71ddc49d0c4425a32bc7046cc3106a7e3e5c0279fb9666377c7a8592718bc9ba892506c84fbe4cd2b3b0837d02b6a9f35d87ae7f6bb805e754d68fe58ee6889d9278c9067963264d17a5e996f72feeac8c8c39646e129bf9132f44f171106182ceb2167f09513d474c19a749a0bd09572d983bb04399befb2b45e5b56f545143440f206377a33de7fdc5a10f3134e55c5fe38d3c8d313bca7bf6c81bbb776a62984b6e3d36b8041da162c0fe2a7cdd06fbb75319315510fa8a51ab9c81a0fa313727a14371caebf6925175923c0067aebd05d2ec29c1bbf809b16a23d452c6bbb761cea3196b431de4c13d6158a93f5fd682ca50e88ba68bcfc436798c3095d0ceed1d5acd44dac3b788cf857c37613cf69afc229177a5d5bd43771e00289d4c0159f9fc3fa78b4d4b3e3177b479357955cc623d6ba2f9fec66bce82456b2bb7e5be4ecc175f983a684ed9ad74d32121b8de94396aaabec19835209599b2fabc58ecd16ba26d65d49e072f2cbcc7e089ecea03b4aff49def82dac4378bfcd9a5069e050b0eedaf2e61daf63f01608adcba00acf56236512b3d82f301cb5fe21cdd2731f949d15d6e814d4a2090e44e8db4557cc2f22e16957ad7651eeeb59480a3f321e8251590151c2873dc4360a710cb94eba5f02a254e6a8d0a69ffa17e600889d1608c9bf69ee3960d5828f17b5fe5ac8d666de112eeb28c00e50f8989457af8766650820a4df5c6b2ac94b8a51ba9733650be29ba9344b7c798ff5dc2e440598b601f79d9915cba9f50d7d671b56c00f4df5aa314f7efe6feb62200be2ec4ccc009447184cc8c98f93fd4017b889d07408afccc9071debb84ff761eecdaa98f3e6b312b8aa0f65857e7744e6c5a9de8be26561dbb9006ba91aecaf7335d0c22f59cf08697612e76899d0498494d082118603a2e4f59ca048bc5fde2c3fd499788cbe055a367ddb084a24e8856d3598d7db7a79e7b28a5cd1e2277bd04506111b41701d7d3c333aab63bee8e16cf459443962e8e71af5e9318ddf1db9b82a09375968ee0aba6b0088e1e77e74e9c802d1de34d76d67230a8dedb4a3658ca38e3fbf0a24fce3ac734d71a0157f6d7cc58cc6d5a608ceb15fb91b2101f63a06bd7b9cec97922757869acd0e96253f0c2a96c22d68c97c4b4ac297f3aeb25441d286dfa56ed06eb25984e8b1d8ef78c799a5ebfe24c3a6f7bb659c5b3b83a0b35dd112dde1fb74afa513e69c6a49b2e72a835f470d91a04be19541d93277ccd6e11f838726212bcfe2c3e647ef0238668a8c4fcdadd00c148ef96e406841ae5fb107b697038f2ce26e07a2bf2ed0d40f39345fae8da01847406b9e379eb613f64a7630943a59439289c1d03d4fca29192f7f520cb227c851337a6edcb75223e6f82a8dd0d8d5fce7f1cc6774d0ec96b55f870c31900e53126ee90478e1b14c6d0437e342e5204e3e2273a2159e96b37284faddc3e7029111ee2e416d9516c9845e867c2fa4974856a4f6dc62f60d575a0e9a23ead73476cd12f4becafce7ab4b3a51dc24d75fde7cbb0c3fccf0f9301d19bb346d43da9f263499a82aee2e8372b7a91502f5dfb6f4ae5c36eb27e6f1c7c2c8a13f41acf042dfb059cab81a884a65f07101534113165303c16169c303c558bec2fbe7673d778d81d103fd7c5f5a195f67019df4c2d60b1188685565d22c61ae95353c4d090ac984f5920e4b6a9a4e81df85c82c28ac670bca158705a4a6a540edb96aa352e19beaa350c020a6ba04b6cd2be3614cf99d6b15a735be015c0b2bef14c1326f6dd414964d04ba1d14e1b11589bacc047bb01bd3573e10b0c031bee2f907c7f862251913777e7ce92725fbc1b260ed2664abfea08e2d603731885a4f66fcb4c9156545722f03eabfcde86e8ae3fd08cd1b84687c6b2d75fca9c8f66a9aa54c098739946d84fe301674e8baaafc34a2aacf62a0bc00b7fde8188c9ad8402f6a48784e3b44edeb9bd01322e308db9d09714cb765ddc08206a40bfbe4b65fc0ebad15cb20adba591d83b96dc1abba7dca43ce556619eb7b855abc7386feec802f33091d5d99a26ecd41c6387e8122f3393dbbfcc9d4006ad217bf5cc53020a19cf00857c1c6118b65014a8d1c761240ec027a10a5d78d9a2aaed141fc55dbbe1b7a32514e222d6bc2871999edd96dba406ad60e8758cd142c2f90c6174cc576994bc571bcfaac2168ec81fa1918dc2fd32ca637f1d6f5c75df40ff11965ef4788450e85f502fc5efca8bb321bbd993708ad9f2cd6c535b4a437a3cc965520325b399653972444bbc8397fc044cdf30186ca94d62006ab45ce3b476b39731ea00d86e5b5752253253a4e5d8f376b67b2b9c683b22b31dff70b057fda404393409bc46ebd160b812b6489bc9a6bce9f36503930c547b392df6fa19cb6fb5862698584722a357b028f7ed29eddad89ccd9bd1436d839b6e0e77201bba550848d825118eece3fb05075603590ea9b210a89b8bac84fbadb05677160ea293a5000bf0872e7aed86a9196095361d129f3d6dabc2090dcf7c7532e2a3d51e845d1dc1ab70fa8a656a128fb1b628f4a206ace70890456890f7c1b6044e243b914c42330f0f7b81f4402de355bbf7b7a9a872438a030752898809825c57e9493dcfbd1f346c6b1e5e146408b360ed50088b89b62cad03cf11be026d69ace9dabe620cdd6d5c72c7c9f55302237e9d3722cfceeae92d6b93193f14d401253caec10bf3917b727726fa434be2c92222dd19f5aeabcc66d9855f2f2698c631b9a4a4da414488f2bacf94cccc1f39d94db044cababb6fa800f279d73fe9f241d6944218f29360380b6fea579d9d2518223f073abc58d044e081beb8efbffd11c785d252dc15a3a95dad0f170b87dcd87712ba7643f68810af4ada9f67fef4b26fa388969a0fd620b0b6928f0ee5ad31af71750e3a99e4f98015399cde1ef559528808d0b33012c2f70bd7341965b4a9b268c2a3dc6d9114aa53bee5108d618ae9fb607a5fb144e8657a9b28d8a7abaf37000c4e77573afb7a449d1576060a0c585a7e0d0a2b3006cd869f77e1cf9d3c9e6cc035fef3bd3a218d2e093f5975cfa3e2497c13fe380bdbf0a09b36482e63e9fba9c1b71296ceb1674a9b57a4ea27caf63bc1fb4278e96943fe2fda2996a4006e69dd9ec452f94f62934524aba28674e6f76383578f01dc80c317c531b796874b1e42e656311d75fe8769eaa888c278bb1fe7b5c52ef616255d975e323506eb251a671f7bcce499a92dff9ddbdce7647e7224c5936d944bed970103062d2264a50eaeecbaf6612cbc7cd48ca61d1e1676cc31a1ef17d792674c1d138b70615c7390c7166249a2b1511161f4147dde1bc1957d8a21ab28f65684af2af07958a48903a16111673b9cd4483ba32332085c6b067b29617d0109b6bbf7f524f4d580705fa765be3bc6d36874fcd554828a7142012221bbf34ace7a1854f3259a00eb1eda21ce8b783fc6f2dac180ee36ab945c1894a627ec173c22f38c15bfb25cebae4df47026d9ca096eb3ed79b00bf1be60f91a74a755a2809252551815716a80d862f07b6b31eb03a239ef7dde3e204b23e040c529069961d78d1fa966dd18eae43679d6438e340a7dbd82631e9f3fafb7e50f079155b02a27f706b874058d643602d380fb50cdda8e9edaa3562f6db39c4f610f77222a5a6d96e046de8d0449a377ef6d1947c47c610520d86e15576fa4b0c5dc65fb2385af7eaadf83005b38b1f2a3f49e058501d746f95a8955ab1c538bc34818784948f943679f0cde53ce9555367dba78db955812293c531b645a91cc3f70a0c155aaa3a5913f0c201024ba2f2a820064a2b5c9c3979ec69fd057466f2e3f12068b1c48e8d07d5560f76e78c5269e3218138d736fbc7f13728b7e142b1439de580152093c1d180ce6a41d44d93cf724c6b7388aaa0c72ff5117939a977eca26ce730333417c1da3590b152e228ab417601920b22d412b4d4fabe20f9530dde8f2bcae67167aa3bb1a3b9090859aa0bb983a2a51738f1a37007d8a4c5664d21ca5bc0d335bb6aad2ce9824f38c2e0faa3f54f1676e181e1ecbf07bd27673a9ed08e17946fd139a8c14d8de41fd29d874b9d369d33d7b53ba88f2ec7381d075c0f5c1579609ccc37d7db5fc2794d930cdc8748a553971ab3944702c123e999577d636d3818c347b2d347c9dfa5cb4b49930142c89792749d169ad63f9239eb2676c37d620421026b3267b00ccf37f14c921f2e1ccdac29b2b9a2f5681816b43968a29bb31c43170bf3b47447f5506383ee38fbfc8ebe7b49225b886ca9976c1130aa6f92a6edc979a3cede2dbc2b9edec5671fc48c14935860240f450c6b9a0aea86624dc295b67eb8f5a06b6faf7056df0b4d20dcef58f430416abdbe546f91dd6819e9f4e7d58784906748491783388e4737ffa5032265ca5b72ffb2a6b7dbe5860292a93f4f3ddfaa79b7a974ad022483663b88fb281586fe202ddacc18826598f10236321bcd7b70e98a96299ec139e91c805af1d8e31a1949c67cc49f92635ccc7245057618ffb454ac8f6dd02d7fe84a15a1f6e7a72182dfdcf79e9ff6e91347dbad34222d226d357d7cccd2008bb59385dc9041ea4c70d3599400e0451e01b1aa9bed7ab49035c2c039a6dd3c5dc561501136c12314ff76d4d3a51b61d7f0d032b0925642beca5eb119afb960e1550b1a57d6bc0792af77bebcd9ce6da3aed166273bb9ada08d9c237a6df6c1c3e2060cfb505fa5fce566e665ff550d4b8a3eba593257dd1806cbd86ebe70875ab12f57c5f9d2696d69d2923f0b5ce9dfdb0f33f775e7b1d65e1863604f29fe37481a0a3e193c4da6e7ecb75e0999ef4d79c700293746f8afe3413d6a256b4239f378ad616d83b4206ec6095d94e0d637429d2a5f5f678db587d4f7341842778940905812a5f0d1f9f414ed365f80c7a096bb26f007191ecd62fd9d035341061f83bb2fb6e7948e3fcf8c88eeb0ee4086dc8b6cd8fe952c392ceab3add699a1ad53017fe04a8546b83dc978a1e0c89616fb1254d847e84544c4b97049f48002e50bb8e2965ce5e17eddc4e82cdc219fa1e15dd4e6981b9137abfc155cd5e69d194a3a30c09dc114b434e21072a7206cba00fef26fdc3f22e089c58680f57cc92173ab108f02bacf142a845ecbd6ee2a42cc95f61db13bbb29a7498096a30c0b472ecc7f46737c2b7d8a36c64812f7813d3e75aefceb6ee4c0741116b7831d8ca8e5dea08a4d0f593e856602d89a7308675446619e0f25874101b9535d0deceb50489c9b8ce0eb60b52fabc093be4cb16a8fc9348ad9d773328440266c0cb0e98ec93773c4f1e8babf019eff126547439773a220a4b6417ef1d9eceefc1f33a1d5217409983af5088256431fb88883389c0a34be6e4a4019bffcb7612c3bb75386c9c7bf42e6a17e74ee0266adb44a9f9b628d87ffec869c4b9051916d272df78a8291688d157dbfcf6d30fc728c2ed6700a66573e25219e835baf4a45feba0596ce5c7a6a5e3c3e44dd23a0a045773d8e992a3c9135c509dcc72d22b2b19247317436b75648b7665d28e294c329e2373d2719f0658ef6df096340d4ef831891820011ba72cfb11c119f558d0f15b0145dd26d882257f8c6e461b2dbb68b59afd240391ca6e67659c3761696effa03bdf63b9f2de7ea8fd72e15775f9335d2fc6fc8da24c1ef42f27445c33f625f913e1c06abee3256974f1f7c0ada70c184587b6f94347e447ed1eb88e98b72dd9a8d945e7201eedd5f14d9b2611c02c35f798bd01c5f78b2c72c62207e5e0da24018c56e26029477e42e697b6b8e3fa1f4d7d7caf6e4a8f9ce81b1d1e575e9ef1e0524e9c403394eccab84bb20cfcf187ea8c901367fc14dff63fdc28d2b369a3c373f82a483ec403d8900fe2416d1b8369f665a53afc5d8f9649900147f4b8d49710d7511928d617e9ce9f1f6f82363ff78068311859936e0a144faff2da4452d32d0fdf9c17b766a9935e6b0750ad255822968718cd8f76ebfdc060bda0053e52446dbaab1b07ab2a541555965a8109b9613bfb6d52b20e85e59dbf87fb1dfb33d4fd69b3eb61df021b655c3b7b4fda951047e7c4982aacd55381500c1a8209ede6c354cb69d408892f227ff1a75ccbd6d825fd9ba02026c3282b5c2c02ae53a9db9472f96947a5dd2d7ac5af0ef85a887356394694b8734d7359ed6999f0fd1830ddba8acf39652f9a1e9f1b01a8459c3364c69e69610e8363919deaa4f14c6e704c819adad139da0868acf23adf8b30a96215d8baa63917be452303e967e5c2f8967fc88d2a2e76ef75d9d072c65b5e00eae22fa06bf4f22dcd8114e656ac2204c13112075ac4416bcd3e411b022ec028d018f52af53f1d535217d67cb0a70945fb09a19a1caf02d9282df65e8dc3d532eee1d1300c45d12d3047bed8a23d6a4b422abf8364be591a4a5d7e4d911fec3e48c86d57aabd0da733d0b3fb8905cb5d6d17fbd74b13a32f79a18fae6965440b8b65f592015e40c43ec9c81c2bdb0eaa72beea5a9345b7cd7636fc4bd12f4caed8cd48eee016b1a85161712412c64ee3d22e0de133d05c87c263bbfe480204d06ef68935ce61b34a12371de5df4da173faae0382fec1d7247ad0d4dc0b105d09c08ced23a2a0b2ff45edb29bb3d8a54493db831cc93538f78e7dbc515c85d1aa9c1c6bd31acf5aebb78777d41c58669fd5719e51e399060cf65beea42bc67ec904a1cc9353b5b5fef06a1c7585e636842f95cb695193cf334de41e19ad92d54bf96a2a6ab1c69450dfec5ebad6d5f71362a4fc5af20509781ab47189c3f1cd42edb4ceaa388b474b53ecf44cc6de51c0b710b803b723815734b76b8fc62e7557016528d892bc5b0700519dc806a5926bd5de9e35de586cd1de13982dd88c2233e856101dba76fc52478fb563387373230fd783f8384752c7eb1543bcd4ee661972be7c5090f00a0881ee3dc1e7882c9b8688f87e20d391b53a6ff0da92467c2b54f60b1686c34736165f9779b0882e4873763918c74235915cf9a7bd0cc5b6decfdbf60253b0770711b5db27695d19ebc06b9c3185e96e6b2deedc495df5357a483e37ea5ed49ddc7f5ea71b08fbeee19f61f11e1a7c5ebb0a8f8e94d481e8037f516d644660f98910b9654cffcf6797f2e3e4d67dc49c579a753a3e5c6dfd361aba95d5d7fe646a05a500f66f787e14d552d2feec28220e87b20f76a6e79a85bbe92b5b685e4c99d418391512d2c1fd01ae79288cdc95193648a4b8d273f11778e25c2f6b77fb1480418efad5eeacd9cadc1cbe1a9744efccad618b02dfe82463ed65971cb39c6254d10537ee20378a343fc19cab5a7f47db6059dce8f5382e8360e37c1691aebc9a6ae7c8a21334443955b952283f88ace56023319b1525611a110a0e8aff9e43eff2e89021a3a9c5961d61e1c5ae0a1f37d632fe7cb7bf9d0edee7654ab9ad00c2e0f0c10ddc0a6b0e8512bddb4fec0c420bc64526702c3e04d8da300e49551216ae7b7991184ae966f6e798ac02b8a7cda7bb193e76382793ab70929d213c424d0d219256fd3d0b0be63045fe15a3c63695f3902fc4d0750ee437d666157fbccdf6729f044608d4ca4edc5f72d4dc0502e712c6930d54f5be74a66d373185764fb40af12f35b118d70481938ee13a99fb1993d425efbd6746a6807d85bae390bed14c4b571e657d2793dd1332563d22d1bc02a453486bdb8fe11988a620a2931615fea35c7cc79a1983f535c02b48632bb7af8a6b825c7c8edfaa42345822462669984529497c626a99749c66d375705824fc355c0ea65bac68868e3b56af9cbf201aa6389e980230ea1bebd81980f6c86844878780d4e85de570de9d681a0ce5cf69bedeb2d58ba2b16b3060b8f6fa98380887ae0034c3dcacf0ce9c029ee81e0da5dcf1497f916eb6c81180f42945155bb24fb4ce8563fe6c71b6401731f5a1f9331b8f16c525e3a43a05a447a3bdc7f3e5bffe22f19bfd13b57fc1af70dfc9c8afa8585ab5dae88db95e993a44a08a7b5c1ed1fb169cfef0fa3cafd8214e1404dc9ac65f196354ca92eb39ba44367170f22f253fa6e15e6e56c229691eea1d6af11ce3bbe6c937fed48c9307791d23eac1a9720f866d3210145063f961c9f90884d3444014cc41d63c7a2d8a4d61f2d226494ffeb4cdd503bffab4917974480f70dfed1f71ed5a8fb7ca24d84a7241b8ade0abbb2d756e6084ed37a98da55203fbd61ca5b597ba4ab23a4fd4c5afde261c8a9f35a8acf9a8d095e8a559686cb2c939926e2eb771c47b07f8df9d6957ffcc0829c0bd16ee6c0948da5cc872341117eb57409b95c1c6e956b52fa90a6958278a47d3a64678ba21285ec184db6274902c7553865e53489c7e6d6b714b3eb822feeb2326cd60b7f5d34f31c385e84555299ff2b9c95fcd5935b59e5d21ae91268f02aeb1e882e44f29b457d6c0f4684216ebcb625b88a839cfc4da313f81f7f6a19292dd2d87ee5416edb6ad208bb28f30569ce632bfdde8b75d9713b5cbf8b7fdec60abc0ecad01a6fa93da8981864e890f7ea13a1f68f50e958f3cb731e45020d6ea5db15a7721c9612dfbcb6f67d4e03eeb46d181ae5f45fd77eca3f3760abf05f44c47ceaca66e56e049d12cfcc6fafe503f962913063369a8276dd272bb8862ebb44ee2f11f8198b393df3852e69f40b2db5758a34a95a97b679c8b20dcf874220252955696ad729bbeaacdc100648a1a16b21b59f8c1ff91efc1ebd99c3ac56d374a400a803b57d218d81fb09e5df7edd478ec799823a9ede45b2d22b9c34fbd322a41627499eafda8276f00067c48aa50e80fa5f5c0f9ad9d8999f1b7b5c1368da7e43aa894d5c75a20a29e62a2643968ef98af13ac5b2272c12777c4d2c58125e3b75530f4314bb2abefbfb17653b02244f39cc9bc0e25673abcf6d61b5d3d8da7860a7eb7fdd9aab0d1eaf385697206a19cbb89006d87d1b30c2fb45a265dbedcafaa18f77aee331d82effe7fb928b73c28ba774bd761ee8358e8f96c1413a564f00dba11ff5ce3f282c771312f80e2499c59caf7754d8d9ff15f09307704c8d4870bac4c1125b5cfefcb59386abc6856f4aad5b353beb48325dd2ac5c4c26bff50dbd3e37d975430be586dd33228d33caef0add11ab89dddd10fa57710570ddb5dfc8b68214f7003f148a8dfae5b932900d21bf6256fb4f91fde9e1b91f8cc6c0b0917650ff6a80b1186d90a41230d6fb03c168a5a38f1a75952410a7f20dbb668f0de5c1caac5bb067b3e9d2dbbc8446af5e79f92c6087ef6ffcbb2a29809bd351f92a0d1b51f2acd80e5b9506c67c2af95ce10d40e3c3f2c4f4c699437ba8c80b6d33e689e0135d28486e316c48efde496a0757614ee4e1f3b10a07150cbf9c99807a5a22e2c69f75b7a30c7a260ca40ced8c1cc7c800edfe792645476a4b181b005cc5e6b5f69ec64cc7a3b3c6d94d3280836ddc6dd6df0c454cd7d2fe6b6f7230d4c6493f12368028aef72b02f27db37f2552be1f96a1e55d6f3b88bafeb1c7a3e4b2b55fe5dcf2c3dedd0d637e6505a563a2c129cb0f799276228cbc9286051e0fc406413735cba9e53117b30dfaa8b3d9c0eab2837159f4535dd54878ea5a8998770c70f7e09ebe58fa19da1c819a35fc197400257b3c292480b00e69febafa85de0cc703766519cb327a0c6d37e34791af4f8895be7c4bb77e3bbf829c5cc6855a4028d13bfb6b3312b34981a20b77c6289cd3a66e965a25d0ebf38d913ba43632520881dea1fb8653d12addcb9fab75d73231e98fae3b50f90765cbd896e47ea4e5c82d6a7a298b3cf700df3eb0266be31d38530c094a75b82a70c12670b4e5a60ce377b00e8b1fddda434f23538ebe54191a67a29077306ec5eec36411722047d1e19db1cb9282474350ff37220a91061bc6bf5353fd92ca9a5c307c831146bcb02ca9c17fc85250917611c2b96fc2a3c9da2fca049c2f37424e98f515915a9019a279e9df914ebb3459c4be3a7f6faffd68dc25786c3ef1a937547ddc7d24eff101ba72048b1498339bdbc6ca2f4b434686fdc92a403a498c8238542d887e13112807a5e96e66f8a7deff1b110c259e66af2e09b891990702f5661025289700c616d479ee8fb0173e13b049be9e2ed5d5fa780564058588f06776d72152d0304fd1d47358e0d781b9149e9c01efd1fa3c1b81b39479adba93cd6a68463b31a86306fad5ce8a90c56e9990740f0d2bd6fb3183b352a7a3cffb8737e1fa2d9ce4a88a472dde1abfc4c670241ea2ae76d6a571069ecc5253168a0fc628696e3a7a3da30f807635a6c3c011077376db07467f907275d50b842a78e9ba4b012fd0c631205d7c6be1e2ed6c7984f8cda996e0040bf128627e815e52ee72e7f694ea0a094796aef55f792671598295ec0afad8633644780f534d0677e0f2f3bfcc19643e8da2203195749e899642429ca79e0aff227e13989ffc159a52c3da972ea997bc221dc19e00dadbff168745aacc4c8bee4ec18460e7225743def2cdfd728759654c5e99a045f49038e1f0ab67670f127b28754dedab6c534eaab8bf34f750bf8c8e6528014436e2278ab4a728124eb0a56098a3698dcbf46a417130c311aedb7ba7ee2f6bc0387fd6f3fd6fc7306c2a9d0d1b6723fbd5c59ab8ef45f7767712ed593be0ef9c9441e45b9d08201d7fd54c9d6a3a0c743cafb8255d445cad529294075c9681a19bda02bad7139563ed3fcb9799243b577609ed65208e4892b884941b015079d43177756e74718b0f0913e831cdc6694408dc3b3488c550ee97f106451f8f13634927974062f7eb07f78ba8afdaf9760c062ef38f3188d11906087681f0a6f019c34456ad8d01a27b75a2bf963e9ce231b25d3f73648168b1af7966f71b53936db50bb485c2ef215e53741ab1d77355f95c8f99d9e03d7a5afbdac9a00e09e5125c1445ddb2e9ddf3aad456df0f4a170ae5655216d640ad97108688c5ceaab2273265b4487d6ad06e31ee46bb5cd4989e7b610c7bfe566dad34530146d4212aebf8613e6c4c26f69a2dc0700a428eea448e73404e190a68962f9583b5afef6106adf235dae9d5d19ae7dd90004065422ff890b9113d641208ab2cd3448af1ce64acdb7e415e55e6b3a340155257fa7a14dd4d1719bce72287bd31a97cc86ad09c8e6614ecf84b3e2b7a2c9f160d4892a0cfd84e7095bd138c13a734c859ea24e87129838d5845e6319e20877b18af2b7525fd2412aca1a4b768e692cf7ec570acbef06d614fbc6fe1e58b574624c70aba9a2eb66e3e01591743fa59a210b2bc93a38d099abc196e48a5864d274ed49b3da702f3415815f77922e511b29281f434cc919f1eb512fd862e23dddb4d6d6c2527e620ba38800cd495eab89c991d674c14cf0d9a952238fb88fe2c216eb1ad2e395052eee61964b4e84a3cc750ad4b8439c845d9d716c17d319b9676c168b77e742df7a46e2595c85a8604c8283b36cdcd1dcc79c5c33daef5b728b03c8c8203d8c04e6a7f1d7571132968a1f848a646ec683de86102d54f3c452659a1fe2d6415c2eaf667a49e67435534cc1b807bb772e3c4ae2509b6b54cd387e661b27981191333e6a7e8f16f26bd291257127896c1b3a413650a913f675474b9e9134e86f400e4bc91fc1020d7827c388e6fc5a244b0b1077cc41ce6c0d5cdf1f252368883a68e3fb734e2b22680567a94ab700c46f5d76419598ed7b362a310d410ddb77db114191a9e12edeacc52d3a14ee72cceb5917c43522724b79dbf6aef0c9721c77c2dd15a02911174f6011a37527fcf914672f6ef34a67aefba1a6baea3dafd2a2de61260bd10e61c3f69ea7abbf1093180a0fe4862d1f46a7063a5b257bf91df3f1d4330dd87c726698260599bd7a4483c53c4f951f1f359207cb82628859f75c40767f7a1b1ce5304b8a2f03b341418df5b481c61530dd7f9fd00592a0e67154eaa5a73798d04f1f16c3c14eae9ffbd95987ba28ac806100db01b0ab861362b82645740fedfa642d77348f118415c4d2f7fad545f25e3e15713381987268ae50c62cabf58ac7c8482956b1d9566123d3d9c4abf7cc4fe39a0d93a782a2dbe26ae2a7b939cc23af0da0f9f9a1be938f4750aeba993023cce8969b091cfe74dcc031202e7622ef87bd012cb99f03edc742afdb0f1c7bf3ffeb45e8f8a86eba46db0c68e01efc3b242e4413106013d5767fe38f7e0d4e1bdefdc05cb0907737ff47fc6fed99f9ae3c84e37a723b1a33b08f8974f5eead1d537dbe2b56faedcdab035e543a74e8c238f7dffa0c9b98fcaba6b87d18ca8fc7ea32f2b34a7672a76cac1cb1aa77fbadfa49d9a0b055d05fd413d89b8b7f85305f12a4bbefa4781e231b6741195f7061e2d2d7df72aca6e1ce26eb352a3c3cb958c23613397efad2373f5afdd8b5d9751071a1013a6c016ebecfc2e3f9daededaa12bbe7ba6279be00bc0a1034b0e593f0ec830f50860ad5c7a92b9fce51909a914986bfb2bcbde2327773fcc1a2b7af29e75ad372f9bc7de4fba24c84d944cbb3248a0d40cc32bace0a5d78bc83befc059d9cd6177f35c3138cdd6ca1ed9ad7f30064efaedc0ddcc712488387570ed5f4f80c7a25ff848cf4d054899ae36b5f3c2889712d26f72dee972c45030ad70080c68495c0f87cce6f9cb880131edf19068965029a1040b3f54bbd511990eb7ab328cf37c97ec0be2a98eb729a6ae7249338b86320474f0e26d4556feff83c5379aa3daaaf3dc8e7f7d248bfefde94d94250af65c3e160a754c88b6b4c270e2eb1e15063e16a8c17a6f15cef1caf41c8a74f39334ee2c68079970b915dc0319bd9940f40a893573c4bae1dd081e787c1141d10395e091ba5340e4f6bae219b8caaf9414fd6c165a4b7ebe293b66be8d1b9acc236c5fd1d98bba0659bdef0ad2e26b8e4c81e26c8d54e11aba206da175f0d9e47f4ca6153dba4c43a3cb27bbc016d4ab73c0247f08643aa7a7f0cae0dd8bb093dacf669485b2e5ace590e0a19c5fed8ed7a9e18b2bb5fa859fcf6b9a72096d40acc986a2f39178d5096b9c40c452df0ab8cd98dc3b4360c4636e0078652158e59f49822dedcff6d8497156b05de62999ca070b22e061303749f873e5ecb43112126e1b1d7ede4bfab6cad880ce451fc1b7f904dea6e5fc5dbb51c14dbf6a23079606420bd25afcdab254172340b613509b550efd7cdcb5fdb6a6c1ec9b5bbafb73065dd3bdcd4a087699c87c258bf5dc86f8c7c937d689b94c49ce3dc3ceb9c524c75fb535fc03538d16b710ae2a3ff6fdd4021310bd560f22e04f707a06d9fbd61a552cd4c7542957d3845c532275857aadd9b4223e2dc3f2e494948a1cbe60ee2e4a23579f4bf48747dba94f4ba267e79e57b4edc1a8f30a738964c0eec7da803ec3e6217fe74ca691419622ff83f6277b75c4d6f41dc7cc652aa56d1b797dd814240cb981d6b68efd12020d5c58428ef3775aa4dfe1df2cc7cd1ee70d9631f55fb68b47004671efda4fec999980086393f86e05902b8c358e9a13061b485909d337751b4366d8cda342fe116d6907658a23a8075152f484adc9eca7add765fb181afa27c283c4ff72332f037e6b2c4347f4f09f736a60cb718a902c83cfb4e496de0380f5d74db2caa3f5c2ea953c23e27a7025a7820c5030a473fbf79a3295fe3730e0b5735ee5aaccf0e7dc94051c57746bd6e103e96b452f03fb63f13010b1dbd7272de585ebf758d2cc2d26d8bb90bfd951d9f5120c63ff731a87a0970bf12cb8d5567b94ec309695101bce09824279601b0b2ac6322f995ec905881671e52bf39210499e637695be160bbe7f6493c8f01b558f097532cdcf7ef5d747e06b525ca7ba4928a1e0f67085611fd14b98a6821e1e305c7d16529f3179e4c12bbb48748268496c492659abc9633463939e2a42540e9d378834f8eedf6d20f0d9d59b0836a172d2d292a7d9912d01fe8c46250dd157c652e87350ae0a27112ba4ccdf27f8afa3f9084dc03d4fb56ebcfb6d144e0d8f852e8378e0df383b4deffcd0e7fda384ede98ced2c63bbe019e799eab91865135a9b51213e267060d8438217fe363524de564f65e7ef50a9403d9314dfeb97071a96e256acd0c0586e588d8a45bc50a978291b3465a9ce507f6b08210fa34ada990fd5291338b9ee8e24a84caff6bad4fce30aef6272b6a54ff48f4c52f2845e8cf162416dbef1015d58120b2e49dd2de0d30d172a5bd1577c9aaed5333d32741df9d199042c80a3a2403c20111e48b39a70663f4b9baa5cfa7164c79cb9a34009ce0193187783428c574f86b1b62c1b29b82e8406710f64da17a0934d960df73113e24ec73b9de8ec1ba399dae7dfa366d4d050dc6f945c4436c77d004c0731f60bfb5f544b71861d7149ab98105d74a0d68c7600bd0f08af6532d57e570dd7c9d7e5c726c32950c939836357e4c28c04e1f592a9151da0c5b0adff325a0099d333cd45180df229391846f47914d146cea773c676409c8aad7cfa530106a3f69028f6f4ef037e24f03ebf1bd780706652cec2ba65b82f1e9e5b4cc471481fd8c207353b22388009ab04cbf6c2592aba4c4671f912f5bd76fc5bcc5874e080b624a5730730fa33f8147f7da39089ab4b118264923eb1f2596dba187a4ae93554b0c22f603f61d411c3bf9cb3b5ce482083fc5312cff5bd2b8f79bf0b5fec9405703ff941c7fd2336496f226ff92a7489f25349c9cc7cd0f24d46c65617bb538921b6f8cd6849e6cf796abee659af4c0545f725610f35246d033c26c4e6a810712bdf65c84f2e67b122b653d690370caf082f1cc4974c7234d58f4b672fbdcb19a7370e67b431f100d9957757625b983f551e3553d02cbaf202e79658b91b67348125d46f58e65635a6d2f5631fb7f49d9c31cc6c2d41c0a61620dcdfca312cdef20e2da7194d6c22a8464b2806b0ccffcc530f43e8358af828a3e66e2b2d4849d5a1a38ef3b28b15f6922d266a04ed99662c8402ce99e49dabe1ef6b9be149f591d552730a6d11025d7d0027cecacae0669b81485d73dcce6b8a29cc8a88a477b1086ecc998cdebdc4d35ffe59fef8582ba2b3e9ab6646cabe1a387e18b632d44af9bbe9df45d84d50db9a1c565ab2f7adea9808cf7e386a0ae2b5a4a475ae65d53d13f2604e68428b4132f196115513bd28047cbf8a8fc81b41aca07fbf38561f52e4311be8fc23363e5f1d02e2e5e310a3a085f44269f3fdea1eec7f60d5a76a42afb986a883ef83148a76971f8793604c66d82e1aa9b1423180c488fbecccf27c8a4c7a4bf4a2da6ad3d8a79505dfd8f627ef2db17757eff13ba54b04cad05c589f9e4f0bc7d968008cc923884d46965605b34962bdaa7f912a92ce711f10d46babe3e0087a792220bbe92bb2f2cc04baf9712a3fabd7b0871e32816e7f81d5eb80ad39470d6ef6d09c384ddaaa4a47994e2519283375066a5db9ea7ae38debdc831a15a086764f2b1d261378ce4b08602408a2598d993b0b1fa43a4f2579dc132e5483df6f01326c6175d9f1dd81561fee7d83eab5fe113b10414647875a0da98f5d50e6531989563eef072df9c36e27f4482339e83631eed10bbd4b2da51bbbc831064c44617433bee42186689f95e3d21004352bf1071a77d79dfa9e40ef1a8d32a47a5821a94aa28153c9147862b4f738f5c5c44de15c0ac936484731c7c1a9e665a7276338fcdaee666f0c391eef2707f74fbf42a09e08223af1f8d002c07908335d4f1e4cbd0e454b360195179bfa190d786a10d332dfdab1dd6497a9a96fe49286f074ad19184f9727cad60e005a2f79dbd9c510a9760ddc03a672f36390073d0631002684881cb242e0411b9b093b186063d5d264a52f3a71b7af539df73da1f6b92c0e301f648b4be202ac9919cddb2122b93c4ab81d5ddff972c82750e1009a36a79a6654b60db213b0868c72c899c677a78349f0f437a1afc070e35d77f3dddad8bacad27fb421d759e59e4f69ac2e8557e85602be03c58215abe575a07016d8739ac6f8dbef0b392b1640c19b1c0eb1d5746996e7fdfdfe8e3e0f0056b93dec0f18ee5837406b689a3ed82ba250f72868f06ec9908b4812a45052fc78ba97d0d6c27938c23310362924d3c40b79c55983bbbfaba38b42946d297f7bb0c210c840311e14b3af0498b51c0618fb352277ce8581c2bfe1e0bb7e088d2398a51017e1c26b1a592ff5285a883887bc2e17f837109486f48382a34d8cfaac3ea6c488421f93acfee21aa6de7660c5ac9539181a6d17e24b9560cc2b6e0f66f4c213e6d303e3e29bd8d473b85af7586fd202576f7057ba2457029bce947fb0693c8a83e43294055998f9149beba41e75cc56f71642ec5f5dfbaad867bf2d821d728ab5b0958015e1deedb5989a60c4d28f0d7f29442c1c4ea1ae2f4e4b92e41b6efa547ee33244845fb8a3d239144f6746933b5dbf9fad93073baf35d698740cba763ec95f54792ab89dd1b9b9bc9752bf56b97a0703c3a9bc674ef8be9de59057ccd47f81dece15014b54df1d00c7bbfecb4de109888155d85062eec6927af3f51c7a4f959e1375a238e7540b32dfe78f3d8e1b787402e0879629d755388f25bf991a01ad8948c659ba689d92ca32a09384d78300eed120f7da425122c7110e5632a2e56d1727099924592d1765e8e8c404c7f846c26e5860bf32e3405c0028e0ee8152905a97c1a98a607b76777d07eef6c1a18f3cd0da4c70e193dbf7f47034ed2e2e22d63aca3ddcc7a0d01340d987216dc34da7de8950081a1314e596a78922a18cde1ee0f65794fc899431d5797d9c35a408ecf51fcaef0e72d2ef22da3d14d85b2c301287b6be12b7b12cb4394e22c98048e0654a72e7d26b82e3eb4491b3542096fc886829d43f8c1164a7e407be9b907d32f493c39adc3d016cd7806e6999c1cc29b3497ed15c32ba225058d35a641a1396591f856e8a103e98df019a28b1668718347cecf768073d49a16a0dd79d9820c2c23102bf9bef4eec91e5e20daa62d25063a72ad9059f527f622026c207ee6a124f8db8e8b352fc268e112faf13319f2bc94a98acfa52c60fae33c0d924aaa71e949b8745dc35059d0ca27cbb8382a71aa610256eaf6313f376eacaafbb5d34681b68aabf00c29d5254a832f71359f53f6cf0dff2b4a855f7fc3c90a058ffb352e06a06bb7085eac945395bf1df34a21e412158f23ad16f665a4cf164c95f44f8d32299dc603c7ad3d0cba00788509f0e81dc39ff98348905f9284b1aa2ae3d0e59800ea76829008c7ae72870b4ed98c53af0d08cc73245cb1ae9bd8eba0eaefbcc1fcafa04fed018dd22a6098db146b7af215b6ae7245634510fd0fdac3a0377f653ed461553e4a226723ba33e11bb47d65f5490b8dd4db00441a82e5739947c9a0024a05fb15c8699c50a477ace83cadac526b722bacd3af04c57125e22fd33eb444201092ad8aa09f888d3f583ad11996de8f1ad4178d7a581ec95a9f27e6613f6fcb0207f0b7f600df1d8e841fcdf261211730957465105544e59e270d57caee9462713dc69201dc17041913aebe9488251b488f82150c9551161f92135974c101dd4381edbcdd164e8c3b17e4531fae2f6759f90e891fc7bc7a6a14d6336f25fcbd846adc2e2a10e58820cca696fe9c1836d69d636d67db581a0d0121a19998ef41bd9e3d83dc717547eec5f8bf2f9f76806243ea0d682d17d75438c2a65ae9ce61ff207992511eb1abf9ff781cac15b084bb1f9337710b63a9bf8040ff0912f06aa74d345726023261ef4b8fa610a446be71889713584e66c03b13cdf7e16bc5a99a88cc6032bfa50b0c2481ca953da563a02db0ebe0d5a8dd878bcd82107818541baaede4ff905eeaa62e5efc6503da8943dfd317c2fa2fc03163bed639f51ad3e39228223ea486675309321df6773221a3c5d00e74161f45d9a1109e3103029fe9b0548882f8f3b510d59e9d9312d18329598a54cf010c174d8bf030afeb7f326b7053e1d8e1d88a3e08c2f44ff579b1981dd33dcba18fe4de7806c11035931a449469e18dfaf557410303e4e53801cf45fdbffb97434ce61a2efa4202961535371da299691c765290c5c91a76204a4aa31435afcc52a4a5528bbfb6473d7a13e34cd29cc264a45dbc3be987699160f051dd8c888a8d39fa65d6bb938542636dcfab9583fb26fc5e42c277cf31590faabed0f21ecee6e9b92673551003596b0000ef5361460013476c021353d2993452d8f432672ba4a95f831e02738f497321421448b2aede7ec06fba48fd8dcfd55b0976f8df303bafde6ebb8a24960df679fc82612c62b0a1f79decde3e868ac88c2b884880b155b01c888977022be4da875f9ae9d25807bdea470ac9a9abc8b77874f483ba810aeffda3ef33e3547ac7c9892e9279064faddc83820d067fb7bffa3d8c4bb3367fbcdc40a074d7fa7361070d2d6990de6be6910c5c4a3d7fb02306e764a80e5638a008629068f6a80f5581bdef2483728997df727ee0a19c7ce8e476fff5c269e27b413a06053e8e5e8006a3e4e6d4adf5f10d773b535621e08598aae00735388fb9124b6179cecdf025a895d3612edd4aeee4c4215d94df174ac1d4012b396e6b0078174229e86ecf1e68c0c6e43e465f5be833216f087e96ac297d7dfd5fd4debed4a2ce2182f7bbb42c2fff5785004d50899640bc6fbde91a6d04acdeb72ab0d173eefa677897126712f4e6583e3b7cf5980fcde5b5d617613eb1357e6bbbf5080e01544efc0a6f5e1b1f6d17ae99746e1cba56e7a5833ec5e24cf02bd309c291ff6b9b409df69f2b0f3564972ec51c81db40af803e8cc40a02fc2df0f6a2a0085513bd051f5f8c6ecd3b2d8f130a8af75915e955658d53d7a7b519769c4a535d347bc0e11b809a9eeedb4257947f011d5bbd5c9d13faefb3285850d83361c7bb9a3a55d513444d40ca3e6968c7595fdaa6d291ed148e98303478f912aa3f37778f02004959fc7d43169380c0fc79208e0d816cdad00cd43c9e23e9eb08162c0225b9d97f6dba1a122288027ea2efa2ea015dd7f99ffd44e83e58a2afc71f31b96354f00a32f57877d1ef524473c730112f4c51a64a52d7145e30d8aa813081ce75bad8ddfda61e2bb1eb443da8fb623550395997e573a128bb685ddce415202395af11a0eacaea9c0f33cbe026b111b62511cfccca413e7136154135da75bf73b369c43616d1cc9bd63f152c168e56ca580aa4219f40275b46700781c7afe90cb2cf0a7320c014c7a979c5cc7ae270d70d1947a396a0564c485b3d6c90ce9a8678975412da6a55743a3e97a20abe31c97a6b3da3a8550a114c0bb29e1d2228381fa74c7bd3cc5f5118ee7ca38c1b5f8dcdde5ef2382c85197320bdbfe627f44d76a7f237bab12afaf7a8caf411f4e97fd0d8bd91f038894236fb994f8fe2cb95775e7f578a2b0f5e3852f2a3753f537785d0a9624946015ffe67ea10f2b296b48fe442ab6d1b75ff4830cc3071d0361702e4a5f669c516f17a439dddee7ca08a859f29b1927b6b10107c401a169662e404d3a172a03125f158a6c35e634351b07ac8ecaaefc2bb90bffda75e2581ff095a84ac4c84e8ec5b372bdb9d59be70c51e07c9e14590cf7a5d3374fb9aec41837dbef1df64c647a04bc773cfaa630803fa2643d50f0411aa70ea686e615fe7bc2f822299c6366ee8c4a07836d4fb2f5714ab1ee7567274a5d8e599631290cdd0b20e1e4dd811a9e64947f06eca1e6c2638e1110da790e4111bd62c2094e3fcdea4ead0613493c54bf05164472139658ba13f819bc02bc36e27a3bf1d7097cda96d40bc7ce6d3a3c8df2a59d034164d9a5bb1cb49d9ae99a443e3f1483a1bd0deb8803be4381b7c41a542bca3c2042004e98fad9b76bc19fad6e2e20e98090b92aa0a4cf964b0852dac44bd693f8f8568503500f401d65943524ad954e1e9698218c7e28f39fbac0c187c9b467d7a2bc3c3ba1a46f396a0f3b46c39906cc053cb9dc264a711b0ab8e5eb115f41932f3c713db40b7f3e58e9507a5e9ed53027ca5d7bb52723906bcc3c08b085e8dce3328e5a153c079f2c070174cc9ad0edd90ccced4a52d7f50472b49ed8d02d4fd5c67d1a93277b52d6f42dfd42d4ba4e0dd022868335659a2fbf01f1e1b08ce872ade19dc03eab3abc4f1d7e593624c048905187086494f3fcfed774c2be06dcf8412e9a7505858f350175e38b3bca2c24793e4e01f4f0e4ab136fa09cacda30fceba16c4bb780b60f49b57fba65fd51cfb33d819aeb1e8436a9837b30c6f83ae5d5528522fc6e670a98f9ecaa460d918b05b42086bd7e66c5373b3c630157906ef3cc989eac98c45b3a0a038218fdc12cbefe1479d5344b37d695fac19e86c12858fa9ba5a662182ad208ad50e602129df6fa7ead34e684a0dc5770f8592dc6f5dd4f8be2b1e73e14a241c9824493065b1fc6a15e1ebcdec55695ce582a44c08e1b786345743a5ea9a7eb446d99fb53f8de91b54ed480d8a24649ed5a933d73ffaaf67e81764174ef85e154c9f5cc549a40a5544263e7fde4b6a27c1685758e26c07dc18d385f6ddd3f9d03327d99957932e57c827f50cd709df16acbcc8cb4370ff096245658ebe1c2004ca95ec61664547e515d719e1ada8d5d655b1592fb3a0349d145bb29a05b41b59f125d749c3d168ae1a311ea1aef3bd034cc771a7c8c44e5ddb3e8c024205d2b07b4e7c0a27826c93929d62a4e2bcebdbbc89bab675a8fe59f7548c87ff7218600bcc2e152a030cdf049ee234c4300b5841d68190929daa57a5792f9241fd0fae1ba3fdd23d3eb2b2e5f6f28129d15e1243f43b90351cc82bc6840a811c7766fcb2106e1a7417995e64d9188cfd39be730c1e38c207d8467a77b1376cf955e6222cb6b7965b012e8a7f7fab95634fdcb25e0b0c6fa2cafddc9a6a763922044642a745d2b82fb089bd9c81e8d4943e3c272f8b249e733ed9938c518af5b7662af8b3ad732728e121bc72ca701cf36691fc40c140785398abe7df8b63207974da58024ed67d7ece9f12214f38b21781ec4ca42305b7e3a834ec020cb356df79c3df297638c372a3cd3f275a2dd8c27d9c1fe6536cc2505dd8abb666be14e0066af02e2d7833871e7e8fdc932838297580e476258ccc2be4a349bb55fcb978e86df64b478389f7f89f8e78cabe844cdb77c03cb8b61955c24ebb63b16499b71bf5d66a04e2e64265e3c1dc05a974804b061b157dad4d12cad2774eca77c58ee9efac0a01407cfcc6d09946aa1bed32cab8d466042cb174caa844bffec4d7c3f3b40208fa078b0ea0b9d3212d0599466a6866963276a323149560b6fa1c1cc0ebd57c6aedb77808ea5ab58471385dd89e42be1835269412256c7f67b9960e5feb925e3204b9a5cd8df8aa51970d3fca0702df1078334c5bac2f64d2606a1b0225fa7ff6d28f0a0800611959dd0b7a06a7001dcd88e7e6a6a7ccf20b7c983d6846bda56030ad91b4fca83f66d205399d946416e0413e8dbf492940b3adcd76ca0fab914b01b95aba14f3092257939559386984a3eb49b52f1ae5ba1febfd591e61e1a3b29e7946aea8c868be75e005c74b4afa85bef01194cd8efd51606053e3b4c6c5b87acc96d2df9d12ed80ca8b00adabc5cd679eeb4c58cd6add8e29d867892b66bc54a787e868ae9e2a1d1317618e8a3484d32e9f8702671d860d2d8bdeaa747bc43b85027a20471e8ee7bf56813e9d0ca01a174ce3392749d0e4dde5ad0c3f17a460bcce242978569f2d687bfa803365a5a0874254b5631b4048c4857e148d63f75121337bcccef1de23644ce344d174261051317c7e86530a95d69bcc33f0cd75e7def117ac834717515cb584a6c8e5b45c0d0f40c5695ad280ac66e95a1abd9ef9489c578d520a96bbe07d5310bf0b5d7ac90ae4f371c47f2477be2667207b0fd83f49cca44a504030c8f03641a7d5a0ddbd2b41ef97db838407b47bbab2046c02fcb1d149c232c8233692910e309bb82d7753ed871a43671a3d7e80df79b1255a05fb210148095b3a198e799e984e6f41ba4a330c80b30dacd89ee4938c40f3bf93ea60c6795af62e7ef2415a08751c50fcf51aea91427f1fb6a6d4ee863edd6010c1569efe3c1e0b508bfcfe85adc7b98d9b62ed1f646fa8e4eb5723f7f11f03df2a91d16966e82eb6dbfc66819c3413ad4635edd0d297a617019fe2f39f5339633d4321134ae22b04aa22baad94f64c8ec9144777a7dbe2ba903ad306d0ab090926345f2a0ed9ca130d4e70e0a7ad6a57326b7c851ef55f81aff31d7c79d5b199b5507053bb05210c7ec12936819ad95184de142d5a992a8478bae4268188cda0bfbc07d39b9a94b75547d5f40f6a51bc1c1c3b46c590b89c3f43d56549b7f25e282c777a1488afe59f3292cd7cb9a6c9aedb1b15c601df6f5246bc3492ed56aca660b446c69e29b2140ce72344510ef480dd247733c65109a56b7e4b5a21143f72a8d07b9a722db8d855571ac17ab4b57b0a10625c84881f1e01768deda1c07a161e3a923c7bf44c07d5efcd8a1b70d47046f55d4166c4fdbd773c9845cc2f8afe8b7139b3ab3ce9972bb21eae0a1d3e487de193d293dc34013299d8ef533fb52e646bd5030fa88c1eaf39a78217b0fc2f567ae3e9c695b8a4c88aa7cc083db841fe28c9bfd165a248bc00f448c7c57f66ed5287ec164d10e6555d6ba052929c2e17105e8978ccbff3c912887927e468a31c8f09a46e52dae9449dd124e849e71dfebc40f9165e6c9d80971cb487fec2d7034a6efac67ed0a3490decb795119c10cdf52b2beae1f888e7e0a67f220cf1c33df571959a93413124bb640d73623f9c0ef3e694df85467047b2e0e5b297a5184e609bfee2e15ccc80f28f7023b0a891e4f8ff181d8d8a6ac3e81221f03a06a8b388c5302bee1905164d981d24c894d0a4a7fa4d3688f28243b34aaae3ccae3a719a1cbe7e392382d481cb7aab800d4c8bd8dd95cc51a388397f818aa079a830aa173828a6d3bd3d0a9890669b53e9cae9adb0bd78f175b6aadc15433b99821c93b5ec6c7ef8cf1abee6bf776d9d79a2e67dadc796c693c3d8d57a0f04d9825ea2601c8ba3f6ca8096ff919b6a20f7ef8bc4a4e1d8497046e78b955cae1a3626ff7a8e5c5fa95c241f85ef5b1f05077c6c98acdf00639b1f365509adf37802ffa15058deafd52d22b4b9abcec86368bf0cd34eaf1a2713d067ff176c935bcde3c3c2e2d2eed3c158a9a24d42a8c23aad9a00dd20e0e7ead03a5b0fd066551f80ffbfcf25fb1125c2e116d7258106c13d12a43ec8982504ff1e982675876d4d6ab36b04990f29c68ef4a23e503800dc510e9fa2dc53b3dc26412b153e2b9358a39a4e359f0a2a27321d651456e31f7f91770300215fbb697c01a1a932da41122a852d6009d72edcc28bb48a4e3dce2f8bee2e3de9b871b9f98b045297b5391c1751e01fa0d5a5ec7e9f157fb621bbdb5077b98e17828902ec2b6466d6f02db1ee63dfd347f1512634de459689df19d07dd07230dc52beefa0cc46d74ca941250f2b5ba91afa29567cef50d81fb3f5175a869c802f461bf50e1a3cb30bf0fea0718e3067dbdc42ae006f942c7a6506fdae416ac502ea04ac008d483ed7d1ec2a310f76227bf831c2c82b8d1878c4e05679a978eaf243fb08eb607ef12b28e5aad62742a50f1a92315ac6f67aeeecacdbbfe0bdcc9ac9e167e7da48d5c06d112b2b2b109dffc46db9d914f20585e38f9244aa20a66319ce6be4045caea3d7eba91b25ac4c5e02d457a4cfcf12eeb7086353123490ea11f181c563a8cda13cef1a690ef4be482755e645e0ee6d7e92f2b4558677d8f0f908eb4ff039a4cde211a6bd24326e9c7f8c3bef59324fef294cc9284db92e9af5c85d31bdacb06e577d67798fe236857d76637118bcec4a3a3870d4502198b25740cba69270e1977f81b08641c67a1def4505cbc6ba8a937c549064bf131f26cce946b0a0934300e6dd25a986cb9b2b97679542b9b94224b46f94bb1d2d00cc5e18ccff4d4998039c404991c12332d6849a92e50f8dd7ff5d62d74fe6148f2132d0dbaec8d97729d8fa121b5063149179b6f78a05252ddef097952c57229d03ab194ad2c70c37a1085cb5ce5939b32d960260f26ef2c2caed73ee064697124ae73d5675a6b04c8c000ba786dd87c27d6cf065da206d19f261c1e178fc0089f70fc908b8ea074b1597e29b2c14ae762e1e44d747f4554078319e97fec85914440d984f92fe7130e53215c0a2b302c0e61dc70ba864cd9dd1ef12d7868d985ac5e1b67aa23494ae0ef2faa8c9b2662b265bb6115d930ba1b042d4f707072a674ded8f21b5a863afff492a285a29b3be422c9e3cc70f9821290392ca4b619b943c9a804a31390e4a7cb58bb4d57532d24b810f0918924bcdd08e45910d72d97f5c228c7344d0e18209734928983e5e42c5ee0295ea7218532b3e4eaa5931f8cca077aef78a7da36d5bffbbc01d03d0f2a9a4c631d99d6fe976750c8fe3af403b4c4c30937c283c7a099292a74391c6f910dab3153c01a8652bd249a1433c68918d2acd57076ccd71c165a11019d934398d617922e1b3bbe8ba0c03fbc8f4316a9cae2b2bb912b2f32e7d17315be8cfe7e3af19dbd0a796b819069d8e7122cae2151971dabb54b514a11f42cf5c1414b2d805b4f3393881dc5d1c75bf1f2d8500f19fe3a5ec68a50cfafcd9246bfc364d876bc5571e012aad69766c26f49ae36f5efd27582e37c70e3998ba641aa74bcad2140fa472d3377a38835be581bae5f6b95d02a5d3f66987aa8ffd464988df0bb6656141ec8fb95b40309037181e97110aa3865ae47c4953f9a2047d1109912946c300ef3d3f0ac15461b1f4d9604e8685e50ab7e7cc32eeff487c2b0e0f83d5d8746f9ec9089b23edb86e36475ba8f05d4e1da2901c70413cff31947b55d7e5433d3b2e46bb4778acaca5cfbc457588b54b815396ce7464620c72d918f5106f39f5718a2d0500204984c5bddfa3d71769b26bedd9a6c346e11877c93ffadb534bc134cbabeb4b7947ed38b38ca63b8b27081831f55566f90c95f43baf724f0b8899009426d2757dd400d200defd17863bba17e0f60d71e315f9c2eedf2b7c3b7b9180ac6dd65c4438d0807fcd925797405635e9233d5e162e9309a381a3e5f053c3b793b1b20a2ff38b9b57395115ace212aa493e96c91f22632622e11e6d89d754c79da057dbc2f85787f7d9bda44484859f0b3246ad358d55c436012ae447349e2b714f993434238827ead39dbe9b083da5ec49cd27c5b9c8bcb950fe91a78fb58121a4df0d53995760cf78e00cf88bf9af3a0b75ac4886643da9f9bbfee1f3b4c4a9db1135b9921d9ca67254bee471c0a173c15ec44f61929b1eb7dab74d04f23cacaa3f3ad00ba923b0ba853a44872a022ed3d28d0ede7879437f2fed8fc768479a3cd7617c4ac6ee9783bc0eeb11454fd53b2e11072d5cbfb0ac15b66e500d9a12df1fb9808719d20cf8dd0fafaf623c863749cfdc4b10852d48f397c359ed1e22d1ed1062f1833371cc9d603e250909a66c1141b5a6b7346ce0164d5f99de1365a55bdf297c6a8657831b581f0bd1e4f0c1db88ede96e7ac0e857d1ea990be07396878660a58592f525e69a7e69ed75fd6fd2b01410762ee60f175dc38e2e4521ed92f6e47d3045bafac7e31a834c8d27263c450e3888609ce7016a3788212def8ba01739477507b64be978484858236d85f0c14602d1923f4837a9b2da0cc7be114856546fe43078598e91bf49e9bae342442ec8d1885a68f56915aa8d0d85f9e1941b89721ca028e39bd47252f2b100273daa7aa6a58f6d702a007cfbac1838c97342a539934370d4ef13bf2c2500ed170f934d8b6c5ac91d4bdd2d581571ba1614d611d85b7fbc600786e1a2eaa769dadfb635570226cf81654bb1fb92d197516f15467abea8d9cc1d545d9c4df7dbde8ee791cdc683fe27aa5a601a01ac38c967988530b49fab444a4173417181cbe811493d15fb68abeac43c661c1b9564dafb11518ffb594aae9127799cf8279bec065d52a7ace8b5244964e6dd8e9bd52fc5b87a793f100bf3060d3ab2fcf6a1c210a733c4c976a55d25a7dde084d5317c5aa83aac926cb57e263665167b2fd8391e37c525e99d94d721ef08c0eccb61fa9c746142b60904513077363ab6715b42c02854236844653f1c64a420512b21c4150eddb7f0eb7973ec7d3968228178a462e115f68a99a944c0a2e0dcf0e2db577d48ea47386b7fe4337d97738b9a626c961dd76077f8bc604f57d8cec7232ea4058285ead7ef4fe377b7893c7dd723dc64bee89bb207bdb8566f8eccf36044783d556293194237699cdc927d5de11e2d0cc731e52c9e8a6ac921b935016404f7ab7e107e4c84535aefad6f58909ee632c7e7b5f4e5d714e46805cabea0f14dd95601524b0fd2fb17ee5b90e2d2f420b1d28736fdae35faa3f8bad1ae3e68261dea3edb8177ba30b27030bb6662626c9af4c7b987e04cef71ce454893da1b838324910e5fb70f6f6f9de9fb3fa46ab2c1e9a89442e8e547e3c0e1382af0b6f84448f97f2fb6a4c36409399ae9aed082f8c7b5be78df34b0b596099df6034623e22a6acdd18de5ebc3553c36b2afbd8a83d873844d0ca9c64bb87500257efd4742632f22338a5d5aa43e5400971576482890f85b92c4d20158c016f88dd5325e3b2ccbe26b87a2fb45c238d91bb68fff0c094247cbbda9034c1a25f821c3b7158b68027aa877d3aa2cf78c87f669c7653f94dacec77730a0d3613785d51c64a9e064fda3a19b31c03da69570f9de48a7f27a66570443d1bc0944efffeccd77cd1d7aec8841a83ec3ec309d170de367e9243bb20780e05644ddc2484c9ee96df5e2706a2e40e3ad9974e833d3e020ab0963ce1d69e9cb6c89c77b78386d1ed3c16c5321ebecb88e3d6e093a4c886de49905b1e1d0a24e4306e0c00606e440b4505c10418615c0126a7cc0dec18edb2fbc255ac66767d44d850634aa6c8f7e5920c69c07787029eade1d65506bec78dc842b67a1799b5312f040cb5a5de79b0c060ad9eedb5df39e24b2ae670c2eaf6e22177ab66c2bf294be4abb4553abe688c69b74c7c0953147f8aa0cc0263dc7b99cd9a1411e9444ee743368f8c6b6e4d0cb1ba6bd33b3e531b4b7c290b613f2e536c56c2db89e4e6f4d5a8e285cd3061f3d48b0d7ae8337d42e66eb3bf0971229c4ee672e604c0dcbb88481cb90667ebe5ab553ec95c08ff1cfc0934fb4cfef241c57518ce62d43c8b74c501003da3f6dd10d978b67c5da9a8cd8b094c7de43b80ee9b599fab79baf9bf1e290d3838d39f06002c6e86892e81544ba45293cb1e3d4ccf1099395a2cb69b997e32ecd5933e253140bebea7a9385be70b700e89bf5535daccbeb1570ce8b7a0c27727198db083bc8c5050b9134018c256c4cc43c8fa73ca513b8c1ef71fd5eb07015b52de738fef5cb5e77bce5f0d41347d7482e61ca30e1393569c30d852e135c5ba8ce44284d9f13dd6021dc02dbf677448474be91c74bea619281d85ddbd87942d0cc2d8758e00a7c52ea9818c1d431e821d2b568c80b0858defc9359eb00e6fc70de0c51dc3319346d7fee5156533c88aa53fbf73327d10052761c48dc42d2bc8936854dfefa1d5c3d80b0815fa3427aebe45923a8c6b6b3b8db796cd211b6c586bca7cb3c5608ca440a6248878593620e67d0b946df3406d0fc2ee27ec64e87e6738eaeea3f40aa7800673856e456570c42e02512746d467bd1ccb19c6680008022b0f14ead594bee9478d32d0b416c42b1fc5eee5c6e377c8835708cadba45930dc492375efe7fdade968102ff26e72fa1e077587885b62fb58ed839d438d6d3fcc181b542397585051df9d746272db6e7ddb74b1d9d7d0f423a4ba1c7dbe6bf73d5f9ac3c53445b847c6921ef873947a8fc23a04b6f7db700d727cfe39619f1cb6b9d6cc1f4d8a16779835c1bfd3438c30c68518527f9d1964dc72bb79e8bfa082e25878ed30c067f0ad8de2550dc6183ba6558d944af4a91a386ef51688c87c32263161e08f51a8a80474176a1676e51115a2cb960fe4a8477aea953bfbd73817e895991be304bdf598c4a9450db3b618040d4e27f13aa7a3982ddde89ad29cc9361e3eb9a758aa154e32f53f37fd8e3a00e22a4ae166b40d7aa1a570c4c0e1a2700ac945693cf4a7667f16454f441c629ef456b5d3a4b206774b31fb8f230144f84c33409cf0e6308d1c7f5a24414a03f82f9853c0f34d366a83f105d7b96c0ff944359e481719986c707d1388f4319037e966c375759ce6504cdbdd8a6f8eab3b5d8549843faeaad849d0198da5c70535470dd63b27da857bf004275b71ed850a01c79dbd75c097863eeaaa15f9b95d22512c14461c45244ec37b5bac9eba492699f8ead5a2de7455f89f19b2fced1948766e38f6a3daf9902a7b43ded3d36dca8293f60bc4bcb726b39a4acf3ee5bfd1a097b0ee0599e050517081e2c602a7c1323d78b6450abe466d0e37354e2459aa25531ef5bdf4d54f268007237059718af6dc9ece0ae248658ce16dd53a61f2682318d9a461637b0588979cb839138c8b0526884aeb6ef91df9a98fe9f1da1d4d223d6df19939982fc0675ef16e4f7958d429ca47b32edb10f3a1d2618fbb6e4b07dc1679da9c97f2b0133b27a64e0206dc52ee05edb4d88a1ffd80a3fed0fe29ac7749a7c0f4048a55bc76e61e9aaf8e473cf0b0ffed41be94d475978438ebacae6c2ca7441b1489788d29644ea152473937c0fb6caa4a8be336a5080dd3d5d24817192626861aabc165bd4414e77c639af2c38a37a98bd861c794525579632144401fe63ec713347db773b251cd058aa6a6532ebc6f807b37bedc5f4ef0bc015ad38120a50c1be1bec9dec3dc6a8879a5593aed87fc0ab1ef08abf84f8f0f2d931935b8c7bcf668c21367320a9de4bc844f3bdff4c9ed2591c14261f7620b2978b2653ceee5888cab06c86047b3bc6f437a8ad797a4508f7e307748cb5867d4244ff2bac6fb5db7073c91b17ea8f81262cd4edfc89040d3a1133406ffa85b0391c2ec62eb482230b3a9a72d40db4271c8aa2680d0592cc1a3f3f629ef44252ca0521bf7898d29d9032ec07ae89a8a93d33ba1de836c6a5a32e64e59318a8623ca557910977fea805b81e82140ad83c57d6dc4a4594eb1aa973a637e51db42e96e11b63037447cc2835cfe254d2523aad27289bc41599d3023346f469608a484277db3a447852076756d37ea5081276021255adac9632fd627243ef066a4f7f0a50707373179b7b16d869b682c0b8cb69e559ad758a44a7990ebb26a2c780e1af6b97db26e0e4759724d83b8a4e3177169281cdd8a6d37044d2a41c3c74fbde8311e9434716f7a3fa89422e541f6cf9c22ddaa5df85822161a2975e4f73a5d5ffa1efe4fcc3e1ed61c6ef813c2507df48bfd7fe0f1149a3b65d86ba448354cc647ad21ffd33ea66ee5ff60fb5afe3355dec6cd9bfa5015b74f15552365de6be8625a99661693a70ab61704a94394c242cac639df0b346ad911c4f879e78d9e5f193cb4675b6d5cbc517f63984012427c54115a4eeb5e55ea40352eb8ff9650f17e61f40214c32397761d52192c978ea000293deb1dbcf6a0b9b966338c01ecfacdd6918a639bfe2f27017806b5aec5e2fbaee4f04146522c313f1f257d5765ee38b7f5a42ca113ae738fd0cbcdaacbce3935c27dd97cd1cbae4d70999d66afdebe133e1fcce72c6b242e2bbd8590c51db518400ed076bef76fc483ad1b00431c5586bf8f6b3c3824e8efabbc469da19a461e3cc74461ca19f942161e6ad09fe1f7207fc815f1c8b9e7f84a31b14e8c16c4a8859063c08ad55441f9255563c40f7408b819f7c99380e18c514d9024796d59c360ff56f7f4e0c37892ac6449b6fafb7259647398f2212efae1a4a009a19a4de706119d73e66c5f645cc4e51c0046d9f285fcfb1a640c51df6d14236dfddca55823b548579f1d704f637935d62dd1cded125ccfeb0c74f69a3ef7759cceeb58315928faa444937b9dc9ef267850b4f5e10ba50ca42ee38010eead2ed9163b04b7bb1e98bf5d824ab645d29e9e7d4c3ca12ef4c4dbb65a884ded746dfd1c50556352be1387555c69469f10bee24d58b6fc6f83f45ab002ed06008b653dec25991b9c69c17afd87e55235ee35595e247371739c8da2d16a5f56bca753bad5a12370085a1011092a49f57a609fa8d1c79648165bffefed5a809b0fc25c28e91781607b0aabe3917d177371bdef56cb70cf44e63fe2007e33fae5b8260fbe80dfa30dce714a6692bc4bca36ba64f6f4c07767a592b42724de35d8cade7f01b5f77ff74d0dc69d6b989cba75b981cbfb39f88fca94d0b51f4e8d842d663ecce7bbc6df39bb2ab4604286c9f169f85e0fba39b80184065ad7901d611db2980c3aa8b42f4765e2551b045dbdffb4962f67083b59a76c84d6556e9a10a987e95f142e23cb207b367b2668ea9108fd9361bc711b134fccf55bc799c5683522eb9ea098508fdf3cb7a072f256f70bacd7d9ca742c0c3f0405eb00726bd1f82948da4e01105896d55178d2686202181213add37edc9af39ba858f55107d17ffae4125154534ac9451fcc81ab2cd3d693c82b1bb88cb69953e6f44171715e28399b2e2065414ff01d36a3981d119efe289a1d6de0a35b9406f65ea2543859a8bb6147f5124a1ffa0809b8999d56b0dd2a79ef943b7087fa5deec479ce875c86be1a78517deaf8c5261cf7e70db6c0d67291b1e38daab0165365a84e8fbffa9d6b82b776481323a7361b0c4b6df919dec809c3ae28aca9e681ae444a461b529eb0f726ebf162a7e8919afa717f35f4fea1f3f2cf06aaa99d4ba1debc510ed58c651978fc34a64445f60c5f6805609fd52e04af22f986d223c9109995ff34133ec371b1387f50766f20b83b268644f813baf09108e30ee9908d5fe4eb5dfd49e029aaa7f174de918a36b22402a719ffff568844e806ad1db438d9427a9b6986723701f6bf855467af0232353814394df2dfe42da962efb393d9bbe61ef88d2b482efd1dfd904b866afdbb7769f9bb95da444de03a1c690fe1201ba25a45acc388ab94bb4b9a3d453c28f651180afe52b829a3890bfec52c8a6307bcd4f60e1cafad47680a8e04ed1ab82c142e1a494122d575ef910321d62d6da281d6c205ce0cebe2fce315bdf6ec8fd10376462b4dc26e14a8c5f5eff19b220cd5cfd2a5814478e75e417d7f1e0f8b801722ad392ad58d3953a61716245df4508fd0832f69ccbed0ebd2a5a029d497522244b641ddac172a8eb2e2ef982c21c44510b73bae72c3b2e10a0c6da3fea1895b56ec2a232e6e614071d3693a77c86fe669b212ccd5bcead99fdb8f7f484ddf06b3640bc454ee24a7eb4574bfe0cc84aad890ce1ce8f9db870e149885dd7f00811bb83090acbe98372c6266febf86f41000432b317318f37215bd4da5debcff1a338b1ffbd8ed2f08c71822ab9d469eeea81f26e5928b6950372bc9d7e04ec8fe02a7cb060ce191f3502f0b32bba7ba243804cf85347283f63b547efd6b42dccd76a18a7793124f10e15c23b189b26e394005edc69dbd41a0ad33ae3d7c30e7cadd1583174920ff699676dd282fcfb0e1f2ae58b9e4a7c25d5c3ff0c703d9ef256c6d9a26222aa22111ac79de0788e986a3d52d6d767aca1adaebc57c668d3272bc3723f2a3805f3cf6d3fc91201cfaf54ef6366d91a42e9aff406aeefd6aee634713cef564a3fb7070c8149abde192b0112734cbca211d22677e4f5f9365afb3f0259fd5948f9f35abd37b30d47803cdad97df0688307a5aefcffcdfeb21df6b7825eaf6745ecb28572cad3990cdeeeb0aa2d1b38658ce0b3c123e7239a0a6f40af0967cdb338eb12c82fc9ad0ea8c8eb16aa66455c17e0234a7d723a5b66ae9b0b430f1b07c5d5c609a62c2a59c64035011070cd7d84957825a3067cc5b6d22dbab81f7747d250b32fc905bd8e2a6323a7178b6c54942c31656a38c3ec15d64df5fbdf0b6306d8863ad1e4e613396cee471113a2b42c272a3266c23013ee1d674857ba59c75a76eb8fedf08f18ca3cf69e77a3be709110020d05e350c095fba366405a5608e0b9e7a68bbce69592baf0703dbb12de9b4db48f2ddc4cdc398d426cfb73cd1ee8eacf5768d316120fc86a0538ee5055fab6d1afdc0b0a4d4d9b228ad7b9fce5adad4fcc6ed27a20911173a56d0bfcba701a859751c266691c72f83119713cf5454ea6312e732ac2f2ab67f96b523af9387980c491e14db391ca264e458c35cdc9ac1844cf4d831c22c5d3e5f19f333ad96c4ff3370aa3fc2d6b85b1b611b937c064ebbced45398f87450e8fa6054b0af27bf4134d2c6c56da950db818777a6aa106eea9409af7bd48365148436c8d14db076a40edf5a0f39b17dbe11a33d5b74b701f6890dbd29b4b286fb459da01548832d41e32c3fb714c09bc0dbb36b8a7e386f47e49a3925b5d6e1fcac017551d3acecf1d13b9dcaefc376ff7f310da353bd2b4c928f27a5e6fd2119c726412c4f8586d4aee41548921484823680012502d336f5b642f9134cb02f795413f7a24c74ebcec6390ea547b2b4ae67cefb280bc7b837365d5a90af5e36e467606e82e49da805b40b194b59bf9fd2d4dcaad4a0431d8c5187826c44e9184a978bc5f05d74e5654284471659bea39d507385e834c51470547dd0af1968123cbc2e7ce324681a1c648947d63b5f24a20784ce3457c3e0e5505d0d945c9ffb71443fc7a81030081e36da9ad143e539db583f021fe4a62ff0eb3f20086bc9904312b7e25dfa632ca21418de3ebb6ffe233e9a032183e796193a6e2a2fb6a01e30ed486e77a3630da2bf2d0bca7eaf24bb4409104a75ea6aefabc6fce074d330598202353decc33c5f8fc6de1758d3aac61572b5bab37c4d820a239724264b3706f5fd194a5abcdcdcb8c70c3928b54bcc8e95c4275e024de783d1eabbe3f19a1fff84460fef4eca5ea2fdbb37e291c73b6a74805a79b5d7b8c772699684df65b5a147204e4e244bf2476fd59055d63ce1777019b2fd8d179133cf015e8f187677658800a0345643e7af0910b3c8ca9074652cd99f35ad84940f750cecfc482d3d2b601ff03da2844f6f9545856327570a176c42286c669de6da3152cfca24b3818c7ba8fefbbebd833e288adf69dbbea18f77ce66eb3ebc30a8b8c6c95d582be1cbf378de5ccded9c9d84b30e4691c99869c2df064b7ff51f8a07ca52b432b39f55259876612005fb88197a5263b97a34dfd9f7cb0e30bfe40f5ec31469739621d0a5170324d589c13d94215fd825ba1c63db3c0a959be7b4d1d6b06d85e6ed71bcbba8942ef5ab570e36a3dee1805ddec8f5e02d55af07490df6d6f023b8c5bda6f9df8e211d32e84660a8ed2c282b68fdb60c316ed62f5f52bf13e4e2a9fcd8e6ded126aae10ce22108409bf136b08f4f288327852707383f2479c3269448b8f09f6deac86c2c79cc041e6dddc8728b48fb54b6f3fff5194ddebabd2cdd2ff63478bd39680d69247b695fdccdbf607914499e9746663ecaac05ac33edcf52519127fec642b3ec1e8e5d43d55a965ad87aa678180cce151a33f7803ccefc122b517d51191a9190e6c52404373109610d678e019af216ed59555bca23260e820abe12aa0d3d5f0fbf874900583da13bdf0065931337e114dd356026e68dba8418409770535ef8c131321bb081a56865fb5495158d6391d57dc07875b903bf41a40e504deeba4ad98681f2776d9454ac718d8b96a55d9de319d732f881dd0a489f70ad72b690d7ad4e04ee43ced32d3735ba8d380dc5fcd1108ef61b5a8b8752208d17c0d5e43acadc9f18fec83602959f29b5d80aa2d6c5c878c0e4122a2633e1cb54164c9a75cbc6242c5c74d46810eb508abdf663c637290629d2abe51c3abfc52b416fd8f30e68f361365f1223c0ba440509bf2f520022ed4ad6dc2b7e613dc522ec65c1896b62b00395087fe4b58fc1f49f677e6c4623a95a7591ae93a002d77e32a978e0df1609aee6657c4b3b53c40db7820b1b28a206016d6736a70d566ae47c8c790d362b88775d5fba5444d2b2253cbb139d1e96bfca52314523e0a9813b89b03d4e190d7a6d455181d31d3c1459e04fe3aa30ff273f71768835f80d73b9ab8e3322006ae118438dccb8e5a5d9209e90b4a8fe5cea6fcbf01b5d4cb7383292f1043d9ab67bfdccd734338a8436983463dee69533d413970e9c8e8081511315792d0b27a8d544dfe8aaf1e338097537c25249c18cb27ead7308d8f56b31aaeb1ae1c236bb6f07ddec0113ff7ed374013b6df03e763e086c7576aed41642986b9a423bddaef2e5ce044a8ccdfc42400d7011bddb8119b43c9e934fef477396d516ea034b0474e4b2c5fa0f4dba4907f79519caf643da2c882ff8e0dc6a5bea137dbb761685cab95db8edbfa1a4c657aff5143558d4286422984937590de82e39130dbe3bbbf20482d82834c609bef0356e56d09751eb695b012d6fc8609e5280f01d090076831ace1779a0381f229489f05298895c824cbec509c2b8bc6bed087fdc687149325cb5d9dc227c7c2b1958015006479a151430f19b40601906500dfffc0e320a684c6676be845c9e4141603c629a7534f02a91ca565d5f96dceed90560e99a56e5cfa2bcfef8a165731165cdbb365c57edc43b44977084f5970a60f8c8d3060a774fac6ccfa049947fb208f74a2632b4f417ba8ba6a0e71b2bb8d794e4d944cbbaab39b95de166536d19e38ea8e8d3008777d77e8cd7799573aa87689f43c57ff33479cc4cd488b0b4faae7d561db3755aa5bf2fb2b00c0e6a5f7358cc6512d2ed187542005dde19f7c975424e28684f07e937645488ecdae292621b1b718bb2f4f8ccacb6ac5ae347c8396ddf69c551c4c01d19c616616fde186fbe5eb924d4d5999b0e743fcbc70463bb25de23ad3d333d3ffc8241cce66981081f242f262df6df8b60bc9b275f3e659da22166345f3d5a51f0110caa7e0f28277298057e79768994101e5f62aeb0bd59b4529cce0300e7408ab7d2671ad7903ac0bfbe42b767588e7e8c61aa954bdb2e3b0a9756fac8ce5a97f838e4bed6343963fb176daa0f9fdc7f8af9595f4be26bac3f2acb1a23d5d094ec756c1553201a8ce090a75a3d60acdb24abc936e13b489307bb7ebbf216f03560e836ee6f04ebbd5e864e91ad75e2cfbccbdaab6b42c10ba2564a3aa2e2f6dfc71caeba709ea74f361c615f7f6ead8ca2e455323f0ccf47d92c0e795eb9d72d02af5a108996f1eebe6e3097b817d4b67fde27a3fe969f0db0876a5d638b5f6eeab1dd2a3d38ca17fec60f4fdae045e5913f20bb83d56d36609a254f58812525bb86386552a679a10dcb2564858e2627b50612995762f830a9c123bcbce46288404e92c54f6ce131d2e4c3f32eed8a7c3eed1f41bbd8917c6e0f319564f95102db5dc66e8e8f92c4015956e1e4756059a6198c1c40164330a63b1cd004dafab251624a2cda8121297ac8145522178626038d9a76f0e67d759754cce5cfa965ea741a66eca1975c84e7151839b493f0c053d5f4ff07de6c0a69c80b5122ad01b090d34941b8e33bcdbae95fbcad29d1f799ce844b3c5d03bfffa1bc163f1bb140af114ce0a39a9b4f704e9fd26c731911c57ceb52950c8ffb2c130b391cbb5187ab0d7a24805f1429261f5db2aeb463466c4890f0d544b2372da6fc433f9dcaaa13f3b18b6d1c8fd082421257b4053b425928c466742e5d8176b06bc1a9849f7ddb07b1369248848bebeb7401770efba5e2819bd7229791fad6e017c4d5d0ca0ddf27db6daabd30f60a5d0db1ec43038616caf0cce7bf7b58e302f662c2fa2617353e0419297f6c80a7e185b05cd9c5ecb43179b1c6a5b065b551523310f7008e51a62f49e8143aedc9ffe408c4d74e54fae5f355f886307efaf3a9d42d0f8519f89e0cae695b97d4331606094a0d3c2e3ab0436eb3a62214527b596894039892fe38f21ea7eb922126e331c6c4c6c26049feb11385911d2efc805f1214895688df6b4014737c2b9577adad954d854cc1b89db140396435e6d7b97b7c3073e5be1c3a572e69df0841fb097593e521689fdfb3365553d7f7e8b11be4538d1d75aa710fc8ae6e7bb00f3777171e2a11493ab6bc20971611f4f6e2eda2c86ae65af7d5c200fac26671396a49e05919b9d246809a42ae1e806a663edf711032cceb0350e6721da082e6d0e3a004abe60a3a6d47004c26884047a2507b8fe511805361974e25436b3a9736a9649040dfd29bcb25c136eea8cd97a7ed989d04ab7ffb5987fcb04075c8f1a46c7b30875e70827060cee1db580243870f9c10adcc07366361d2e50a4b2294a5d3bcc5b2d2e739e251ee3226caa9e8e704a5182641f2c8b0dfbeb63b96ee9a990d55e139d180fd9824766feaf1227481ef063738aad0a4a1174898908d267833ba94e8573b627e805d907ba780d81ba3929fe3b06dd68c4d2ca02f6cf544a5fb1f67a38b72defe7a36da56c26a8f3daf71eabee0b163b400d1ad0b56b0245fcdb2e865199d6142dac8617c0201cec5993ee9ce1b6a435fb69bb22476dff07b59ead7da87fa33deea074fc31599dd966c983b2e3c73ee61a427790a1c93c855a168dab12048820b658bc1fc09c628b2c519006620c065f7b00735fc3a0bf8b67d70d01974355ef7fe29add2d320f8bc56b75864279675c2f4887ea0e587e9ae1aacb0fcd6e8a8b1d763bf5acca0cfd7656eaca2b7d973f83f4514b7d7a92f397743a667dd9319480a9d97672e84eea54a430098b96acba393854ce9f0624baae6426b67e317d24e2428dce19bc8b3d0f48f01051a91e6a4a87460d1b1760fe8915119e689ba3314a420f6599733e94865a29b004b794a986821fb6bbf8ac38df3b7eac431eae50181157e9209eb360631ab32edc2c0f5107151b66a66c7683e5bb6a58183124139a183a3fabe9d410b03fcdda7771254a696236f491308c2916d2bac34e9808f4d632019efe63b350319963b5468d3582d5e829c9bd99b013ba08ae9991259d61a16f44f1f953fbee3c308b72015df9214846611c2ed953e42c02219247299181c7f440ba44385b39ce89f5d4004544b4375e9d41c2aae136c6db41ecfc12f4650584f972b4db4f20480e299203e70010cd527fad78eb109359b586b83781d49b1cbd42c1f723731e21b617092d07dd5bafaf3a1a5bb82af1811b7a86157ace27cfb714bcc56c5c31f58d417384ccfb4086f58901277aa8136ea8c243be2b24a137bcb146c02799e066f8b060945cc584473eaffa52c7803c91683b6d0dfe8c2fbd487f259627a0f8fa82acf27d60d6b5278ec9ca869b2ab4dda541a2fd94b90b3041a11eac536f6b2e2b966961c8b60bea440d2415fd786ae4c46f8a4a0930c48fa5b7917612979fd0d03ae8eb7d5ddf5532bd29564edb038d8ea155cc7b6c1601bf9d2b0cd337c73b04058664d66b67093e504b274e308adbe3b6994257fc14ac0a819c285865956641c89ee08f9d8f7a6ffc660ab81bf4291fe07dd552eabcab638cfb86a199f3056fdc33013faba758493a170cce9a305b97b2d6c353211f7bc6774273fb4d212c9a60644200215bb56476696bda74f94f284d0e46be930210890521c2d877ee4922629b6e562026bfc1fd9d4095294e4cbcb836ddb772edec321e0b6405308349a13ddae9ac3d5d18823d23f5cbacc5e28889af932ab469788ed4906e72215fe601ce6827dcd34c2c1cb00040baef352c16ecb0a5fefa8a3e93eeb4278927b7b74e565e74ee84cb4a148bbd78a46a284a1f7cbfe1453ebd2eac6be23a9a80623fd375556d306334bd792835cf3c9574da7f49d31499c4a7b84561268183f8bb23480847e5583c014464e2c84861bad9e087889daba6c2893236907adc5fa1141e79bbdca210c7fd0847cc7bf23bc5500cb0afd8e64767919297faa4d93d41712f7f8e02409a075ca5cffc899d15a10804b33cec30cc015156948ab5bca312720da03181be09ae8de4ceb06603bf5e86bb94b947ab8f91cbfac9effb5988c4b1b19e6767602d25e8c08aa81ad2e886e9998a8178633e1e0002f50fbe18bac21e6d394a723c9c07d11f5ec1df71d50beee3f0f0f768db6074a23baa692186f8672392f780719c58ef4af6fbab99d9986dc5b7ca54799c0d8e72c335eb91820263d10ad66fad56bbf7a838a4b8be921637a6a3a826d6ee1e472e345049246626e8d32dd83af67cd6e85f694e61b5f07350140484d9fe73a7d9c54bb505cc2a7a40d0db447bc3cfa19043c18e726004a5871860fea2523e3a9a18175065b913a234522ea30504677b9a9c1d1976ff4dbd84c366be20605a992eddd191a411ad5fefc87ea496c78caa1dca48509280442097020febb86b4e88b01d18b136caaca969d6611ed934e1739e837a1018c1ec41c3d69d931f71c70398d3a37342af1bfd1217c3a620142cb135081ad2a0dd52da78107738cab6c7379bde92a2cd283f308539b9f2f62585a4ac4bc91f028df1e24b746ec913a9791092d220368a15916e49e28073800930b1a9fd7a5b2e395ebe78146a8c8ead3e8178e1da4412d4db4a7fe9d4200067dd52204f49435f0760d1c9c7a3206431c3b321889c49db2a12cb81508fdb53da34ad4b1eb0f7fbda423a9ac2a75843eb22245020448c0b6793a53e38ad9d1431796db55c64f8500658330e4f23ff79096569dd4a469613b5c0dc221dae16ea7ed87a4bd43685cd2a358779c411e5cbc12ff1c2b71b64d3fb7f185b3c044b1dbbeb13f8c556acb266d56e5a0db7d7e772e1a1794e8d71a645a89414d9a64d62e28933f37a356733274f7f83858256a093bf082947a2ebb58f99360e1da35c8344bd65eec08e0f1528f4ed387a2fa45cb4c98797e0a3cfa17ac47c03085ed4d344d9c01aa11fea92e37673d567b1951f7b88c2fb373de2b216f39da49b5ff332fd7d9e344824f1c0d0b36c9e6f539fc489a4fdc1d005a9890a3d533ae196e050f97c3864dd14cf9db4e19f005f76659b7511f4231f2336f648b68144c70663059bc4a2fc8aa4a57f064e95022bf045cc000bbc775fedc4a4ad0b6c3781231b08e7da98772694cb65659996fdb5b27a3500f3756c2cc2b8f08fe25d39d676f960492ff35e2a3a6bb6f5967981f2e39c850a8e16c8e79a72cf60475335a6daa0d94b9fef91f9d71cfaa399dc8a372f16b463b371d6816a292fab804196e3631aff933a72383d3cb056bede0be3ab09a7b44fae6e07c2623da3e51b0f0e66747461d4414757973ecfd851015955249a9689b5ee77b5024a27310eb35e7a6bba35ac4b658c197df05a1575fc985aaf1a14c57a09a5c31fb90e174062fc5917e3e1c63566bdac72ff8ea183e3bbf242e50339f41032cb68cb649950899215f13708ad87623a0a8add3260331e66572dd4c0576820880942c59e777b6ed2c506f5ff0e36a45423d572b49cc64a4283aaed4cc32eccae16c2239a874bfcb96cd9bc0100b0b9f07d960375234245f0844a3ee4e43ca089abc2d5b7e71312f504035e39a7937342ccdafc7e1ae644f352795e23271aa92f501fda2303a023a2c4eef10c31b4e7ba8be5e0667af39ce23f1afff31efe0cff343b63db436888ca1010f3c18d7b7a9f3b13c0a96c15eb53a3ff1b209e90353919a70dc585a012e2e4aeefdf04d591013cb4c390d63b14fbd4eaeed292e6e7e2009b9be51650c0520b179e5090b22888878447b5486b4d9d2980edc59d4c03862f8118d65792ee0c314b3152f4c84eef13f0f3ca0c20d92cdaa8debcc5c5db150e26c03cf914f0e3dba31340be4f3b16bab4b3e0277065a130d7a2162fbea34ce4db46b98a53a87870c9ca775d4686e08e7cc3df2920de6493579c1071dd411aa0c45e8fb1a20a466ed3326da53e199ef7517625849357ea8b202447d2fca8cadca6f8e92b916684293469493e9de40f506e88083aeb44e91fddf9cedf93fe5a260f8505c789258358dbc32542ee6d2bcd8ac30b5246348d495b2d11b8be969880a97baea5bf2e5ccac8e1df58600ffb84d07ab2d8641913d656de01bdf459d61947a783818f5633e434a1a47e13aa09a48507fe12ef08451aed7f5d1e3106a58cdc1b4f7503f92125691b6be1326ba00aa10154363374558290ef4b170cf67201500416122dab4892d99b6150258857bd087fec9147eda1a540049791b482fcea3c190ce13b03c3ae5abd33b12e98b344c271b22b055e4f362f014dd9007bf94400084a8b41200ac75a6ca30cef7d5cd0f178a2c74edd915b4f7a0663ddaef1a78ad0175eb3403f2037abaa1c823264a48b16c3ccc9dda28208125f89f56f95a072e620d6eaed08422aed263fb114610ae0479394b5e0ea205cce0b3944f063e1cdaa947f1fc61df14db5126e0eb625b91525c9230509676766c7d3f4463d965417f939c5dff97a0152fd4f574df79aa1c93ed28d3330d0c82cac89d287181d646dc6a94bd7b433315ebf16a379cd40048f12fa2e9ef97882fa0b918c61a1e723d28b704aa97bd3e65e52d9ee2d99509c04a25c46a0c86e45e7ec6f54b47b478a789b568af6010624b07343b65cf557094b270cbab3b825f71498cee4da2127e549ea3de8645affb83ce674d16bace00d9eec8e275cb523b4cb7c4a72c1bc687fbf6d993049cbfff53ccc29fa85b995f85f93a2607342ade02d48ca090641e458a97b6a94c1cf11ee72603cabd79f96dc7823cdc569087be377ffb53907642934c7857dd3661e6bf5d162a45435bbaaaac6d8ece7f1da7ba0ded0787b70a55bf8306257cc86c2d8d1c6a4a21f54f1b227f4eefece6bc82bd5526c0fc2a21a938c1a32c6f5320c899a503a7367b27ccbe72f19da38f7562d37e83cf0a917d06a55c224b6718c6445e815721ec96b7f90d48d5ab8f12f1fc0fb13655c83c25fe88a94d2774418a661084f0f7ecc0586ac859ab1f7bd6fe27e865c20ad156e54ef6245ffc8fa9fb5d170aebd4676768aab222dce7ca7e0f19e1c27fbad663cb59f2af8b34ea2c8f919e9c7a2cb1b6c848a6a9019dc8fdba35b7f518067b96aca6860f73d3fa2c1df688cd62eb62775c23d6696914725c38745ed30c7d2bcf9d78ad57b1b0a88a61f746007e7553168fc39f3d96c2b814e84b7e053003fa097a728c9a51820c987bf050433af4fd5bccca7b8ac0ed5acecc354b242b87ab3f624baf3155b79a6a7034485418f535b2066fdf6c50b0c0690abddf34f808776c3893343b3022be85a8a600672f584018310721eb66cb86876c1f772668f02e8424871e714c732d0d6ee3f44da78eab0ec6a7b1465449a126e17d2b139db3ce9810f639558483858d73f8e6303e2981d543cf3d5b21f03f86fa9c193b90cda65d2c354dc8aa6ef2f04cadaf14c6b6aa50a922879b0884de336d350ceb8d04a17e6b248187027ef164ef5b7e15a4f2a3c7fd3909a4f6d92a1196d410c2b20057f8044336b7c5e275cd3a590b5b5343d47ec77cbb8b0fbaaa28f14c98137332f5baf1d3b796a040fae06ced7e7cdf8829da950e821329924b5ba1b604761909246773127fb432084930aadc0e406b3bce5179cb1f954ff8454cecffc6e73e7971e18c76f87e91a1052c7c7f9460abd914038754bb1a3ffdfe73bd0d6e5752d3f4cd8309fdd9c66640b14d6b9d496aa7f210592c4958ed4ed1ed216c49c51aea26c364ca71754c6e9fc5eeaab88806bca3588be36c58fe2ae867ca8e81a72b8928287e22bffd9525e6f213870209ef6052383e55a38e4e2196978fa1c7b3733bf13fe36912e385bbe520d4de300c2cc0db4699f3c7a86aa6d1b7eae8feb3b16120d8eb7b9b60f55a20e42e10a23ad5e20be5432447ea1776c1e278b28195f8986a6fb15b38a13135a9f6807030129affea81ebac8f13c9c5828a7dd5e3743071dd6c94e8405b7a5c0bf80e55cc713a19f644c12f95d82c4793f05ec354029573732eb8a26401856e41a082ab1efe0ded5c92fab775b19ffa883e2428033d3679b24a837fccb2fb0e08496622b6a17b319f864f569460b4d101ce001b242e77514e5e20cef268f7311510abe18079832423187ecdbae1b221f540c1de7ffe8fb80924ff2be37d8b36fedb24d39414356a9f06c84e149613e6d0465f32a67b0b9e4f625389d4893bd1d63c0c7b880c383b72217146136906d30c4e74312ce449bb3e6f923d4fc380c6d2787c60dea145e33fb74438945aee371dedbec4959cfe7921a9f92b518146757414f6054536aa8f72320caccf52e1b1ef809fa2cc40b12a8c4606f8213b6e3112cddd71ad34c76d75ff1c2aed6429ae5b5a9ddf46603d8b9b4efc49c9654d6ebc4bfa467a359419c5dac84749adc7bc30d7e20e3f15539d0d5f622359db2bb9cecdf96c49f31a5c2f8eeac3c0c8ebb2cceebcf29f91f6cc2e2384437e0cc583b59fe9481af3f539dcf55eb3927a7d9d630d1ebd85aefd66d503f19b0819ccbeb28dc085d298d951fade86bdab76988363941ee07685945fe5a5fbd45d106444ab5dd56c63bf0a8b28f3c6686c6e09f99df9756eb61cbb6816423ae20707a61247fc64ce11d2e213f76c09773c6ed480214a020c523ac558f6bd09a7d1621e56ee460e7aa2d24fb019c33a527d52afbfecc8476ecd83dbe061b307ab23bb4d446d4356476dae525825d1cc88ad9a867ee57cea6c8d2a7793ed4098de92ef28c6482525ae98c28126f345335acf29f57cbdc436a26487e93af992626fd3a297f20db846efff758596024969536493d113af72989be331d67f6792d0ac811cf75826a5ebcc855d9d1375596afb8f6ca0a73b85229a4e52b3df330b92fc72b0991bfb9226d3d5751ad77c62b88f33b91ceb554d0be35a274ef360ea1bdf802e40da704a7130d69be11659e2d7d014f5b3f1a1b52ca015fb4605f9e72204008aa76c06e7271e4c93ec8339cad2de61690a12b5698550960c8ef81a0f226f55dcf96c209508d97499c918a36eb425247776987fcfb6c85e46ee7e4d1bdaab5b2257924b89b92995b719383079105a743f81494a2086c38af3829f928fcd128a9856db7faa417dc1c7121bc64d7a85819a6bb4f17160023108398df5c0c21d10667e88aee08e8d6064fe8f99be0c23bd9ea655492cd1fd97fb57cd8ccb45cc565bcce62418ee992ac9ba089d3be24bbe115989d0390b2620a5f3ad2a8e25189ae430ea8dd1962fa70238f931e39ef3adfcdf4d233e66b305077a0c3656f4798cf510989c851f826ba7fd8537fbe5344e4645d6d03fd9065c742a6c65da8a7d369fc441a93a03549bbca382d062dfadeea4cfec817e859ae409985c568082668435188fcb69256f6e5558c07a7ebbecdf72732599a12b82a3032b303baebce43366cd583bb846adbcf35eac51f929ec37f05ce0b606b07b53139e021917d9d81367175302199190d2ad893e9677de9ff944681ccbbaa08f1b7e820f5085c228c86d208848a2106c10a4c437d6ff1391f126ab199f93a9412872b95868a422a483f784a2c5c0341c165f8cb04c71078bd95eeacb00f31b510ab7fc9c5cb0e7f86903d407217b514f7d4573f755d779579588211dfaf76f09fd95569eddbdc5b78b4613c34a261f5e64769ebf10cb2e8b9a52feffbd45bd227699a7b84784b368ae8c3c3f17433ab44bfc489f865d7162d530635235134432a18d23c8442f6baf52edb9d1a73ca3c8077a3ddef5358dad9cefe78f55e9e6aaa8fdd05f54c3ee7faa38ed146a663ea6c929609416a955cd86d35654ab51a96dee430b50b40dfe627104ac12b8e7520480442518758f9ebf31fb2daec2b937ea9525047d63eda3cad80cbe3e633a0cef12ae17bd3b8abf3b50881f4157fb5fcf01dc3d053900a776fa315f41b480fcff3b1153e2053717df8dad9238764c924b27610fb849641ae98236c291a93e9526fd6b0c51968c87691c1f230afcd566ddd8cd24dc154bceea858889e07ef1b100f86b05eb8a3bf409fc8b1e0818d217b46a9bfe453991db1fafc94f52c7970cc327e01aa96777c7ba50b606c4bfdf01a052a46fbe976a1dac40801e8aa47bc4b1bff3b7e992fd6cae567913413c2b2793a5d11fb93f78b1e79156f983e477e02830dc5f0f1d89d6cbc78baff63a27afb1947d0a5b7d4a7c230093543f1080c5349422266f6d23fa3ac415f8a20cd564f24bb5ffd0d766a47d83fe9639b56ac2ba09b7388f2eeb4f01904142edfb05334fd4ae22f6f26614c659449eb873dc8631b68a50b513fc54aeb7c692d8e592ae85dbf96a4a8faafd7279f13be59bb9a4e9798341c5511b0a186e0f23067e428c67832c2439226450a5be9eb3b563b316e6933a716fe5ad76273500e5c7e8f927bb9a0f6eafc07c443d047d3da8ff5cb744b81d59af004721b5239af90295defcabe197bd0256e9d6fe9a6e874d28b4c8365b38069a39ce98755aa836e27f432fcb3b4c5727619044c6d01530a3d62f6c8932219b7c54d6ebf57969a8584c9704a0f112da36b2cc91cc79c44f3e41372bbe2f46cd4ac33e32a82bae0b74d80b67c863c2b346e2ee05fcad04ea45645a73b37417655d34a303001036547f3a5b65a9d13ba88e7fdcaa542c87803d9ec412dd0460c280ca6dfe9ea32c29f54fe1b1af15494fdf2711d06016a0809f2b29be0c35715453d8994291ed876442483c202079f094680bd389b9f51ecf478bd88dca1ba422f43856f49908b39358d5c92d78017437d091612e9b3d3b47ae15c57d3d841a4501a0bfbf8fd95e7b10eca1765ed9bb4c981b42d889ba8232f150fceda325976be67adc4fc9848b915c3e233c23b77db9d51994e705a233d3afcb81225c21bb557b3dddd59974dd7f4bd9c0e7d0620dbb36f6827f503430ddb48887c37c09f559f2336586dd0219a5da908380ccbd6461598581064022c6fa7045b75efdf1f3e01634491c9617309698239d3606ee9b0f72fdf7a82429d84545259fe16e4e7fe9dbc7c253974ea59717407edab98ebcfd41ab72d3bc9694d09d8b5b21449e2a853aab8f6d4376282330d61b62bf0895b65ddf2cbb39a7c71fdc2e4756aa297a5960b7d6af57793869135e73696b74f39ac3cd08d753ef04ab11aed19df150b41f2e95f4e2c80547cc2dffe8adffa6795cc259a2626f4457618a339c758530c92506d183d3af825262d9c0cd90ab4d0e842f0830dbd0d4e22027eea243759b70ccea290dd345272b76e02e37991c38c9eded915285e161e93f886b89ce8caedc0aed35ce37f144a007d01b55f09e341b48c4d0c8e883ceec04081d17c3fc7d25e9eab5edd96116a3461a6b9de5cd1fdc9883003b4e7873402d85919032939fe0059e324695bda5041c090d7969d409dcb47d8ef547d1eb356bfd2de10f84932d12fabca8cddc9bd4a2809698933d938ec94bf17825784b36e3f76e78b2c14dde54dbeb1ae6960a8fa6911eba1c55e369d5e4423981c1f184acbffc5457e561492605711cc91e84372ddc4b75e317da9c2d0497c5b4116a1d536e1cf79fa793c17470df71626f1138ebc1bb956bb45fd2f8df47d45f910c1a59c647db0de9cda440ea7c4b24c8d95acd682da7589bf3d1b12fb35ee3f15055b3ddf5ac8a4ac272200239e084398d7d6f8d1a9af61fddefa982210cea4105844a98de98e255b361be4823be7a41e4ada725a8d2b2a89f6982e6d1a8dcd1dada79f2420545362b7657defa220378c636f8d218879e6f94fdb5dd634b6b28fb6d921b047ec700a1383d51b1a8a14beac51f252b0ef1d2cb460da61918080797dd596093d1e08c4ec255ccfa72d9cdff398bac0da1853598a82acfac466b7ea18e87e50433ecdcb8009a9545d4b48fb8d9dcdcd21f586f64dfff20af2c0f1329a34832cfb4ab16adbd98dcb2113f8e3eac6bbf8e9a0bceb79e55d2b193b3f10022bd8a0197c20bb42ff1d8ea860b2fec6bc27588bc66a589fe460fad8fda33ac417b1afbb239523e95dc38e6ebad4c57141f8c29bad26f46dcc2cf615f4c34bd960befecc5fcec0aa3a1df06e83f53015df61b950ddd7e28be0dfeaf9d93f31afa68c2b07a5a848a5c1ef4196fdd6c3e8a6cbe1021ba3bc6393fed1a307f8cde578495beda892e4143453f1d9e29be25dedd4ea901bef7f758c31ff6eba2b8ba3bc31a4b3d1fc868a89cdae1eec8b29c9b567dbd57e44c77fad85df4e0d5641fdc7df0d8e29adc5552bb2ee6a2e359cffd1b31582e4a0edab5131c1395b1558b9981abc62ada1e6195d1410137a7d2a7be23bb8485b2c8ca5cdb311c4317dcbd638db1a3b7a27157762056b98ac5c816c797d8064702d3a0cdecdf375aa999ba3ad7e355e61a80b26a7dd85f27f2003f6c578520f8c4eeb96dd52649124e55d10d87195ab350e61bd1d19e4cbc68f5d52c749e4f6ea778374c7a6d0ee6b2df1b8f3a6aa988b2e9fc4a9a76d27664824b3ab7542de0fc2801a092774029c307242e81480d7695c11cb66a03c755a6a28a39196fd9e639642f0e29ac29be359fa350606cec04b26f8fa367edb7f9f43b658f495d9b677a1b3fe820ac6f23ff8e900ccf8dda2fa32877cfca5f27bc97fbfc3c291aa3e8fb3cb15ba83809b0dcfbe61a3cef74056b4c5a4b60d76909dc42bbc851de13879fb4f75ecb699ad8cc7ae37608b85525ebee0fc30c41ff119423aaf08ba2c29f6cfcd101e334b1c690559f21051f28956ef08482436881e9946c40eb5572523f0d3d7ba921439c5f31df40cefe6427631ea6dba88eb5811236c6f2cb628e98994ffe4bab0718d61579d831cf309f922a8c12a8430c3df047d6de1b39195f721ba467b1aaee873e8578e40d79c951dfd52cae4ae3ed1ce60d57a70d0115377725a3109c19817e9ce7010d3b5470dab4e9d6bfab97f82bed349c9f5d44a3e52f218561c83c401522e42a575ee2bcaafa3a4745d92a06f81e040e33bedb4719be6daa83821ffff9ec19d0671e71bb5283319e6b49dd8414b52f1c25f75737921d9412e2c7f46425bd0a1038e66f6d5b1ea0df97c3ddf5b8e41ab70dcf7ade24694ee539e87d6ce15bb8cfd9990247f11aca73ff31356eaf1f25d2e5f74f5b8ccd30ec3a0831e61f6d5c344c6f17b15e8565a6d0dde4189314ece8a3501dff0c142e15b82704f620a51f28605d1a8856a94828ebd783b25e087d75e80d3ad3e6eec4f2678df394699c9addacd27c9d0ea3f88d2890be0d4b63697cba9b7c0f98715e3b35ba940b0abc374494a6ac332a097ecd34ddb98efd8a9300544a57a4ef5e49471f46497a34fc42955776c18574f9bbc4f6f680af0664528bfe17ecb3ef36c997aa48ef56236f91cb3be01b3e6b1205b38825547db0143baaff295814802ee34ce12e3fe64fd22f25be4e6eff9823d1bdc026e41c1de3796e95c637d1f07aeeace32061c6f89f74a7d8452bdcbf9e456b498c443fb54824ec02e2eba74c9b70a10859a665f85a2797566421dfd313ba294a94a5b0e69457beac907a8c7b8979398e0ebd86eb0e2c00398b2184c54181c69f3eb4ce32b9488145f0fb2335fd8627dad527c3a73e47322bdde73b1c8606f8a4a0d50a8d18a3550a5a6549c32af1414a983b0502bb1b40078824ea60b5bed68ab950690974b5600ff02c8d94a706009585690de51b79806a8a6d6858a6825c4149e005db4ef54b9cd7afaf9e5e4803baa024efb7d56e0f5ae716030efaa8eaef6b148ca26352c398b27d2891bea98c82ca449214255d4bf7f96afbadea9bc5fdfb61bf0c05adf9082aaca2d78b5401926b6331ce4a6a5744db8005302bb795aafcbbf4c08383239a9b1d7c6c00336c062050dc47d2579af80bfbc8d121f1e6368f19959ff393f93e3c36477b236efca80666f81adcb04065d44c63610732a79c34599f50eac038dc41d34bd3822182ae953cbb0da7afb7690cc1e557b542add75d88242211012205e677032ab8c0f50717e9b159d10534783d61d4c32cec31be8cb4c936a482fdc7538c9c2d640eee422ec83a420ce82caa5008a70320384e69871149043975908ad23a7b67890f2cfa099109fb3b5bdbe43a604c5009c2842d606ef021661da9f6bfefb4ee701912d62246a6de3dc6c00d5946a31798af382354a9206726ef99f62ac193ea82f3241daa71edf4ce381f4f6e1600277f36323fc210cf59116db5c1210b17e5bc098ed409fe8dc94cad7e6c76a8ada5ed8c1dfbbc6507edc273d7f8045e72edafd79d7018e58b924ac82827be6166df3cc10a8ef882668f0c6adcd271748a8a30074315e2e2bca6343eadb2f395dbde9c3cedb417819c89c987245995467b7d2239976629534e447c146039219931d8c9a31f0b998fefac700615b4fa7813540a1253e901633fa70569d770c34f81631460daf2e69fb951bd979887265555cb4eef55f325cae46fd2476f3e6ebe5887465ac00d4c6ee9a509f09a5f9132f701549d1e2cea516459225cc66bb11636932f585545ce6a7e4b348b8d2cd3b6e37ada81569df0893b4084f73f6b2f030fcae0fc8063328210472b14e4cf119cbaef4bf14653fd2cb87891fe812c1881cddce4a20e3baacd473e76009ab804bd4cf3dfd05c8d8ee27f754dc8f8007a69cb34fc262f60efbd61065a02ac8f1ffe2164c23aab7e1a3c07be63e253901ae95b0e2841f770cc6cb0826fed9af4b54bf3aea594689e14071c35bef904ddc98942630e39deed565e1ad3c78aea492a4d32e16a6c6e881c4f5eaf2ddcc358611c37a5009a41a25b2198d2f7a2a591799d7f8bc979bb6df8b5c1d91ea50c09e1c667482f0adf9cbfecb7e5a435d959b65131742157f1143d190c7095ac9cbb5cb6f41dd48f5cb8d78d1a196d6f15b94456d319e0ded66ac5d75ac3e7bcf74aab78717e5d5ec1b3f8b9f58f4470f05ae9b3a405249ed4a25b6b9b90f468e5f209ce6844e4bcfadac11b9442a25d829cfd1d15ee877879e735751427cd19f1b425d7d49676b6573fe442d20c168de8b85a434fa93f6cf89a28cedbde0d90e9cc3ce0a783010c0b8068f3a20c22cdc505ce3baaeff060a727b0a55cdf5e2261354aae456ae34eb022b52f8a5071f3bc3f281437eef10e7f60343dd735d7f7303c6d1f07367122c17bd7be23d6c5e0f7e639eb38a9d7579f712757df3b3cdaf026ff23ba68f8611f27d1de9bd8371ca3ab4e4aa22e7edcc960e203dc4d570182e708921df507508d10ec48326fa00071eaf963a298f437e41d61108ad1db6588e00a1966e90903340c57acc07b4938173946ac15e0f609782340fd788c97bfeab948a8bee977fa20ff8c492ee93ceccd029acd0e7fdfe635a79d0e8a4ae74f52450beec07a3427c0974867f839cd9dd134e35554e33a566c5ac0b778d4a9feaf728a32fe1bd3b86a9606f0b266311ae3fadb97e1b0664494baa55f4c362b1db65471b57c32d9b0d4a558a5800c4e59c98b7a2464d4e6aec7f1d93de855c2575c352ee133c341949cc38afc9ceb0562cc05def0c0655ade42473bd97ed91afc5dba801b8ffdcd92c2385de6d3b5ab7f3a5b4ab58b5a3a34e81f8b84165e65bfb919f8b6f295ec222922d579082d6f2de24e05529008cc6dc08eee0e0bfee79c315e538d2ff04160198965b8b091df1d9b80260f4d78f1407375c0c08e27a93acebbf5160f1a1b72c00bf3675561ddadbd89ac5c7687c162cf3457a722c32e7f5bf4e067d09555deac15744d146595e3a629695070db115b46ed9f241eaa8ba8e6cbe756a0f485f452a82fe91e105fd33682967fd6a35c036f4fb1b12e6d3542438d0a382641676c8bb3dc333a2e98e5536427faf82cac3284fcb7c5d36a5ccc899e2ffffa39dde912fe23c241e2d70166ac241e574276e3e376dedcde35c0c49325aa54285c1358079e4622a1f41215ddaea9b12b6191138ea212adf94b3a067fbc4021b2bd82f46f01eb3ddb718bc1a7b45132ddbaadb9abd5cab01e1c79213336a65b0bb8e871b18652080699a548bb8728918d07fc6e04792c521d5da566d372966d9c6278d21aa579c7491afce7910f70a28d28ecd68738362b1bb4ebd44c44095b42ddd0775aa5e4d464a54df4a7fdcc60e39a2d62c7c3cf010eab240acd622df2ce6a826e05ea1ac928c81df6fd89acc3cbb95bc5791ee16042f7149a48711daf845b2c2a14c812a3fa1c23ed993ff55033d1ff5ef880d3f1d60f00eaf61181aa9dc77dbe61ef0fa355c9dca804d954c23e00d3d3c2c81d04401487cad00a8cdec519a3202e63b63e454ce9d5cc2cbd0ec2eb695bf978be02c5020e8f177a0d4a9d69ea239f0254caec9cf8f8002ae2e8c940b492e34ac5f1023f214fcc1a81fd3aa6a8b33ba1a23100997311b7e4ca4b1407fa2c6b4e4e7066689553389954eaa490a9436faf84604bc3320789b2c7fe93c340879d9a9025b5805b6e66f7d2605886b48f0b737eca2a52de5714575f12ee6a42f52d8ee2f186624321a4016885c71bf089c3cfedd50f8ed1b178400538ff23609af19fd5b6c687260506d32daad5862ec7af9f42ceff7f9b4bdcd3aa7e56da3ac463bfcb0b342035d8e369f6655ad96ccfcb9bb96615f076d0e7c97d6eb4a0db072045a8bee2775ff7564c4376a40b0f7878d45bc5fdb353ab479b65b690e395d56b737e92baad15ccbe3cddf5f3d6a2d4f9b944847a4d4b532efd119e956b0dd3aa865f48f7b9d7e43efefd35fc5f335af7b47015e0d89afdcf6dac3722300a0ee855aaa0a8c44f043e293e9467b17788fe4e967b9a4b7cc2e6d07edcc8f9030652837ead30ccf06fe80fb9fb510666cbfdeacb58a50279d32d1c21d8d0d48f9dba3c3581c99b532cacb2185ccbe4f54eca0dfce913a10fdbe8130046b3531940178c01fefc11cca2bcc47b4558081b2e9c366aa48a3ec7fe5a174f0da0a191eb03381a4e2ab7f06090c06704731c43bd8f47cad0c2e509464dfdb697f964fe583c340f5607a40e40640c390d0747e0af237eacad0b6360598f005457d671123223a22c4519b8c347b52ec342f582ca7fbefb3f59c462e9a66fbcd470804c3a1d40610d423d20390cc81213a892ca81cc25dead00e5df25fa4439cce6f77bc66cbc2fbf13232db81d235d855926129b5f07e88e9976e2747ee60889736dac1d69e55a1a92cd79935c12d0a23d6e12e22272b93db8168ed8f4337303d7c9a12081aeff2e9a14629ea923c074ba1ae3f99b5c9807ec7580de9e8cb2b4be25fa29272cdbe93d23c9ac78aa9843e0506586701bc97d68da7fc5015540699551c053c41aab52e8fa2fd53f3e70f1e6277e280ded7669a99d793a2e783160794dceecf6561e063aec1b6f9b3aad628f2d21d7c8722c242daed046aae3a2494fd2ff47446155cd7321cd07443dbaa6f6e22a5fc52cdc56570dfc49740536f668ca344f81e3f2745f1545c7a0aacad2ac3a0b145d0679610c4f7518d7559dc97ed423847826bc45c9179dffd529afc06d1f40fb24ca1eed9b20f799f0cb3842cbc1fc58bf96c9c0c6cbace0ac24ba23aeed9ffc69a9ca6a1fbb0b81dd65c227f01adb0a4047478139a9008a964bb4a54bf573e196b8a3808774ebf575a40a33ed970868b86fc565377b20f55911e1fd12fa622c206dd3a7312fab4e680cc540d8a90f2c51e7186343e32572b12c13347bb62b146a26ee7c05e5ba2e48a7646137f19ddb7caecba28cd2a2b03919d181e9562f2b9ca2eb84c726b4a7d9830858d5c7364a80661dcfbb12d88e999589830dfacb7d7d85af6885927835792f785aa9b4b53362d593ae30be3b29b725d8ab6937873143d921e9bd5fa0af02423024f3f8a09382661b71f4c54fe4238fd92ae89408efb288d70d2dd6388a02d47eaefc054ca4c5a5b7500f6ac86aa65f90bb7010e4a019e34a50f3d6d2ff4d03b01f0b01caaf11c7c36762c602daee635909d09a34515e1ea4c52450e1fe57704ac3e848b01cda1fc3dea045cb960e2f709fe5980630e8d11189abc967f4b9bf5b1d1ae8a86095aac1d385257484429a8394f961920c2678b1e8cedbf8cd701bd56a4024d5c24684449deefa3b98fb3f5a644fc346cb44f407179fb404cd3faff72064f2ff17b871ca4a132d0403d7fd86a9877da3a209090a63fb957705842ed13de27da0e29a55dc84b178576b64782da926c6e328d4deb438e754a8a1844cc87b7fa3ac808bbcad2ea06bc0f12d95d6e2a1c5787c8380366c68da9645f54239bab4773b51dc534d6beceb6ff972025516ab165411595ea69137a67a2bf14e222da0c0f7fb216d65e852ad33ef6bacb9710b4b02edface4d632149a1d32e30e02527796244b57f8c90a2bfbc88ba4658d94569955b6687807816e89c618daffa86bc4fe512c2a4250758003636dfc9db7b63675f67fb2505cf8cbdc20066120135f026b59d0619d18f8ba32ac029ee6a24c2b27c9dc8a90de90496f9e93ca87616649484db18c26c431db0bc4ba0b6dcfc77ac2ee9e5f6bf813a55d8e48640cf74036506aae3a4a4b4e5832b3fc5e3fcb1e4280690fc554e1ac76e145e39b17bd06115405210691366934baac0f97ce02b54f0dd9811f29fe1c26c406dc454067af659ac543cdff2b3c78c86c9774d4a4c2b40a527475c89b83e6cda63e7853f8282962da72e795c13f89e9e0784641f65f348fa979009955448a0aabf89257ad34e68d0cebacc19c9922b28078595eb58bdad946044d05bc387cd719a631bd885181d5e7fa313057ae8b5c65e22f77597c10880090e6d6dd06bcde7f0c9cea6c07138bfaa99acf936660ef2d76b656568d66526bf0100c90f490e0a5b64adcbba15ee2d2a689954e6bdddaccd4dfff43552c62a4c7a8ee58ec512ba0feba740ac2eac386b7700052db5208b3b45a6b8c9339e1384f97f4a6e69edab4d4db3a0c2d48f94ca17ab2c3975a508375b8371adf657c5687a1eb8e532caa483c94ac46a1deabf866c895010608f2fcdec80f2214ecccc94831de0749a6609d291e86d81eac47474642b1943a2d78e7ea9cd145e1dcf79b4cf0eae428a93bcbf908e063d4957ebdee848a328f2c980d37f5dbc0768a4c91791ea1fed69b74d3cc3436ae29892ec3d4e3960033083c1c2e466ec18a28421a72c8eae4b864a7749668ec496e198b4ab1d7d86b1e47955e4ffe5eba2ba1cd9c4c73946e6ca5cede5e7fe7ce0bb3fa544813712cbeef4bfaacb187a21790b95e52b10cf22f90c7c1324a233a9e992c8daf8ab554f088e891c26021350496771e9519b456b47127612f891cdd2495023a77fc5194431b716c823ea43b35d39fc7f5e4563ce9836732c9f6491b11f6ad7e2f6914ee87533ceebb3dc0f4825fcff20f8dfd6dc4bd65ea89db753fdbf8916727cc44b5cf99a8f0cca26640b6d221e64a61d0dc5f564d6c137acb30b9585e40a5032a1e1a7d77974cedd9c4b2a8f39c1591789ef3ce6d7bd9367676514efa9810c55771476aa01540c5619f6d61cb10352cacc9d6c75c076af939808b088962546cd7fc09c26587f31ade0527d156afa5895d14d49be9af942db50ea05c8d35612db7533d3332102b94156e00cbcaa2eaebc10e42384bd0e8372f688905887c097e42e2f240d7a034735fe4056c4c4ab0fe91bde271cbac7778cd8a1e398a5e089f43add9bc34fb491f1516d18d68f2103a6c50f67ef9a6c44e2cb5b101a94c75d381566b7b9054270a0a49bdd0fb4ebe1e4d9ac33fb71624f32d77824259c391983e40d31266c070eb017900280c4c7317766a1ef5337e5b1bdef60d8332d9cd8cacbf87d9706760d549f4627ad29448397937a969af7aeb8c8c5176873ef588ba8caf8146aa2719b051729740fdc3166600c62ed8c52e6871ba16f4347a6a0f1db2d0760543d1811fd65439392eea20353f7ed727649ee25854d0bbac7e2b799c58f4b0cdc3b30c7bab327f917e93f94d37ec7deb95df149551701083d863776eb68d246ddefb62b82ac741df3f2fd38a9e9693f4bff414ce3d73030a714eba97a305556086f49ffd9d52f8f6ecd7fb381437c8a354bea7f05129fe139d73651bd0cb6ec60b961dd0cf36565469eab1a6a9587c2161a050e9a1e673dd8ce2f64a813117dbc2fa2d7a979c368298a3fef5aae0bab9e5eba24036916b39f76cf47501b85dd485aa9f9051617773e1f6fe3a87b346214d4f8eca5bb82515e56ed47711a167e04ff2700b53ff00d9d8fd33f90f1b11dd1fc4643689c6dda1665e8fee7184b884388336b15decb9dd2bb380fb38374b6c37045a13bb9869f7e3b2aa335b0694d2ebb0e59c4fc80435e0d1122942d50a5eb7bbcfe8d649faf8116ee4d011c71833fbee2432690dfc936219a891c0bc890df0c4fb2d6212123bea9f59195da36f3c66f22d2e149b3614242fc611681849249f32c830c42196707c2152460dd4664670c9266607d9c52dfb3eea1b4f535e9656e5e2e2e906b3ee2b7c4ea734969c59a252d02531471035eccaa2d0819e6e1870b839bbd0dfed00bb2148505c8efca2ae864572d93171d83df379a8cbdf96193d41dde3ebfef88f0b7c33cf0662c7eb7b270a3a52d0e3706f959e59b4065a183cec8e9b9882cae34944b623109b48334fcaaff35eb0f711567ade5f582d552e5c7e9903d1af0a82c871b456b674e30698a34629edb8999d014b95d3f71cfad5a77c2fe5aec099465c9655565a0b5de72f85772625bd204ccb4016c801c088d19eaf55ea54cf44f1cde2a808859875a3e8d67aa4968540591bb6789a66277196942ddcd377a1098c4b56c81626f099f11620ffedd0521091c2a5a66ff26e7482ac645fe2ed299b384a0b3bb2536a49a02d95561edb198bd5e28a8bec01a01cd4d3d723a2b0c223cb6104f1f284a34227e63c4190ee91e3eba6ffbaa82151dee57a07987d386a81b6a2dfcce65f095c1c39872b815bb093f8b85450ebffd5133e3165dbb4ea49e54e034dc7afa060ca1669cedf89e6f3f5a9cc5a97c5a418ba71d466f47cb366b5e12afe4dda8856449cdd43586893a341fae3cae6014dea40147efe651fafc3ee128703365578efcaab6f14cd477003a4cf552bd3218facff337deb67a902e4c64016bf0cb900d066eaf420ed2512b54a39b46424e700cc26cd7270551c718b311b153a76101ebb03c9b5d4b34c28e01213c76ea4e8d9570a3a4b8db0fdbcab50bfd1143c4fdc9196a33156780b85caef7697bd5e7c3675b5c3033ecb18ed204efe1031512f959201382bfe8c9e729c0962515bed5ca7fa7f5a11e81cda40837060a1092fb1037879868ccc14b45026e306be265e43e6d8c6d2f65f6f2686dbe625d88afa7805aff1b19ac3fa38f8dd6a5a6eccdfe204bd6c4a92253792615ec876edc09112b1b017c9b05e477c343067d360206e954487ed5f1c2debdaf24d5940a1c3f5d17be94244b3d9dc8a4b1df88f2e09c9121c09bf37b70cbdcd8dd2ae2ad4927b3ee966ced594b19ec3acd1737a130fbdfb4e22f75d3d24fd2fabb57d90c7dd43f7fb8f22747e22c8f4f5ab80c804d33849ded8d8b141dcac474a073628dd5846d3b352cf26ee588a1f25edab5bfe20f944ff461af716cc6f1250fe1a6ca3cf0cab9ef93dd782f382ef8a78a3103556bb0a438983eaf760259f27aa50e12f99bc432fb4efbe7a89f92765d0a0fe6fc19055813a7d1a988c8c946a2ce4ee80f1e1d058c5c698daefa6348a7dd657331f1b4896cfd3bcbd43b688dfb761782787a043578a38e12c88d988e615a2eaa22b52a3ec4972198117019b8313b704b1e04cae647ff4d72ae09372ae1a8e40284f756ddcafd8925686686bcb0321a61b36b67e3d5ae9a7ca2d8e343c868ece206311ab2892adf9bb2498f1242bd5e1753e68e1b80c60254135021c4ea6bff26a59ff96f1b2155b80a841939b9b78a75f4957920e887f6f19400fddd42390ea0bbb3c4a6f42fcd4fa8871c30b0e9f5b3ac9d6ea643c1cda0269e3181f5495d95f4150051bc24e6c30f65b2fc53bedec2c18bde0a3d96ce7fc93a7ae76632563c0290c24bb4f210909088ba28419a92c38c03fac96354c30367cdf00a5f29784329622fd5b18d2fc313394e407060538d2cd1dd042d35ff72073fd7293e9f0f499bcfe012a6fb797d3ab2df5532f82a2b08d1c903842f0c6a5878174741d7e065a1eb648ab6de2373ccf35d7c3de6655c21555baeea3a9e5883291cacd6b4bd9e96f165abe5f9827176a0204fc94abe1237f26e162aa6d20254466162022f1370b2b136434b7245d2d885b06abbd658f3b7de20ea926334feae7040b8d21bd74da3dc4208ddce9c0ae6a7baefe38995db844d5e02ce6c783858cb0ac3e445e31af9375210c7f8201d91e99c034a4c5e58836e9dd83ca0677009ef76d8f8fdb6ae5f05a55954be9425ccac044e88b40d2d00ff9c0aeab9f5b9d8fbc614979acc56a926af42679aa3cfd603097f398d40cfe1937fda094a17fcee00d0d4c3972c54a9c89e1082c226dedc4d03c674ebe4ebaa0732ae0acb82738e34393dc448ac5bde9eea6a5fbd7da7e4582a585ae8a1de4cb6cf9035392b2e69b6deb5f24d5215edf9dade1a040d940d639defaf4f433bca70a2aedecdec9147d64068a340af9dea42605ae96f03a11e951d478dd52c49a9526fdb25c096d4fe184ec41847950577a590b361761de264d02da218a5f88336e3fc0d472d3782b775a3fd87827dd2a7f2d52155763bfbe1e9b145535a4d16972c22dd7a8a50fa8385938a2d89167bc2062cc1379746a6caac6ff9f5b8a766abb2390a67426af2469fe2a6715eebedc63bcf1219fd0d31553e058b5db24c89c17386f61e6040efe9192bd01c9bce0acab261792c537cfdd7bc014c878cd8ca175df427b469b0cde32e4a4b9cb7b925207eddbde1eec3003834ce911d3ce8282fdda0c756cc633d0f370b9f56aa1c8757f6a08b8d0de644a741fe3494432ad4ed7dc325067c2242d13b8416104c2eee02c481f3a1ee4766b300711155a9bcb691b0e132d1a8aab38f163c405f34aa0954681ae976ccde18a41b648afcd61de97235b405a7abe4bd77983f6f31008dfd854e75c5a2f5d99f29193c04a6731e3b96c9c758b78c4c5e9474c03b5f34cce317b0cfc3e28898555b414e68488b32ae0f04ae0863c574eb34e6b500512ebb47d7d56d849395262806b469a3229538fa348d8698bc1f988ba34d3c5bb3d4caaaba7f618bb9a273194b8a3626382b4d08a019c4af98d54ab92b3d1eb13bfa95028c7db2c199def2bf8d1dc366dd848a7801d353952e517dc570b006a87ca4b83563c290f2e1785bc1b2cdc05d5406a31cc318b9ba48312d54146859accaa8c4a1f07c164e61e9cd60aee0020779771e7b7ac24230057353dcaca3936b3051c29797fea7e95025b9ea6255cbe67db3a14f2b4e3a2c26e3d8290cb4645a73fb0fdb587b2e3b2c057948cfc3527fb8e310075aa4d089f2389cdbd51f632d28e41f268dec41a0195dcd718da4c1db7d978c46ee5b9744a67cdfe565546062d78f87a46fa0d5d8e289f7f4a09982070f4b4262e5a78801739bc410071de2b731841077784022887d74827395926e94952fc9e6d458fb84104bdb76795a36b05443fe32875857b8234e7722ede5d41730464c103d9c6339dd9e2407c9b4ea131fbb895edda81554fc86074cdfb9caaa0e201353ab636cae8ef05a0774412f6b959aa6f8e8ccd2ab53c182ce66567e699fd512d7ac9dc81372febe8ee157d088563f83f1de000ef363c3c59aa03a84f7ca0611f490aa16c13c612507280e01fc1f2dd8ad2510adc3ada92d367a0f35f640f68abbfbb653b06cbb81b1231825a0624108858fb6ef96e0db803bb0d13c92d411036d48e6a7ff3844b721dd02260de714474565fe264f53862dd61ccd6cf7e8798f01bc76c770129008be3f06a524823d77ae4065c5b00c9ab3495643bbd6ed5984a28749c0e9b3b81a4420e78787d96136f5b6d16be15b950e6b9dd71ce5eb23dd2f9b78cef4c246224293a3f41d38519942d3a34ef0009779241c1a8d5c210198ba47e4bd3f007f7a9c93e3cc9272916e32616aad4be57df6f373cc2c78ae098f0ab2e2711d08f59909f9671fd4db147a5607071f47641797689cb9d5fb51157b19157b6704a3851195bef1d297490a01b2314b239d239ea5a9113be5aa3537b495d4d6690da61a0521995b03d228f9283ecc57c2e77b0b70f152c547ceca36f4635fd23b7763da57dedddf2640a29b2169cd49012871fda70db11501b4b697d718e2d7ac25aba497d6b8c416e0ce28cd9190fd9a413b33ffdd6cdb852dcf021a7ec96d6a1b5bff8d63b3e88376fc009f8c00f3ba7d5ee2e6d925f63c0e272293161523e30480d43eb68ae9340702eeb422929c6f0654661e8998a367b12a42c99079c3baaf05a4075156dfa861a469c3900ea3286dc20c0c0cad368173cc49875453fda28df70a848dfee55e910a9c49062ee8dc264600b192d531e034c1db43fc68e3e63551c2d61503ef0f6a4204a62a02526309ca9367e2bcde03daccb24fd87df49ae15e77f86991959d05d5fc109430a920d36f7081d544bd82ce1e8bb168b4922eeead1fb85debee553b6b8e3650fd136ca3086849d9d463ff7dbe2a4ee6c0140f608daa2a971d91712d8242255f25f8f27d1deee26ff8aae2d8075b7bbaebda275b1e326214064a5ebd2fe88b35894df4ca8779ffac4d3edbd437e56403e4114eabf40d67a3aa407e12f77ccc3ca7ab62d6995068bcc3ec4beb08e4ba15620d123d47699768df7a8018adab3e50e69bdb51d781e95b2952e39a5ffcf8f5996403a4b03ec45b3d015dfe6c931842b0fae9cf3d0b415a0bb490e1064f36df7d3a30957fdb9cc7681b4cb69cc8d8555c7138481d725320e32bebc67c35d6c1d05b8b6b974c3ccba75ec57801c2b8c4e9523098804d0d269578e9d2ce1ba2bd081df0a4e056f6dcc888b03fe423a33a8a6500002685077a3f117a928609cdab0122ae6149ddd3415961774a469b6558fc622ea307473a3d58532417a6ab21947f79e2ea55d688962b1b959d253b5a32b639a50a74f5c8251ce65c77b4f1233881b666284133104a2ef0947dd18d90d2df58a9a1b68f37fc4cada04ada8f3f8962f1c92aad5a842092f12ef84ecc92b41d913b375057281e40e5ba2d0ef8342ecfda9aa1e3183db24046575bcded3f492b543a82bfb316ff3c42d442519cd601854a4563a627b6e9a251a1b92a81d774455d0099d99662a32b2d0aaefb8bd091e6f3e8eb8faf4386b77c4d6b88824010650c5778b2e365249377561a19bea4a15d2adad70365249d799bb58bef9ec86749fe517f159a3b30e8208133d59a3ea78ddff069af22131597289177059815bc52ab10f48dc856892b07af2af895804e564565079a23142977d1b754d0b9c6c32c17727cff860583d89ce13573ecf6f4a5bdbcbcc53edce9900c9e898b94502449db7da6ce7b828923fe640cfdd66a2d1c0235b45fc6daba11b4c4408c6cf1fb2916a56099ad459888ffba6dbec3693e7cad2ec480eca0d2d3deb9e83512395b7c0905807fa3dbc1a90f0b980e69f4a3ef9053df7dcf1bbda47116b5fe1383c60271843cfb15a8ac7d0680d33fc37189187f98a2c88fd8dbdb22191e847ceeb64fdcfbb249b29f10ce3b46e77b4fb254f476c5c95f1154df40ea1c5faf8ed2185095986163b2323c067f0da1b015481b8e58e2b7cf4a2a5142172ef5e9316ccca5dd50ae844b589251ca0b528c53b827818dc1f3c243d30d7c876e2462008426d28c8f614635e9060acb7e508ada13784b4fe5a522257ec28db7ce745f2919703059342546cb3da3769993730f735340707527" ] } } \ No newline at end of file From 39b3df861558c708288d70677565fd7da4553733 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Thu, 8 May 2025 15:40:06 +1200 Subject: [PATCH 29/33] Adding DataColumnsByRootIdentifier container --- .../phase0/ssz_static/SszTestExecutor.java | 10 +-- .../libp2p/rpc/DataColumnIdentifier.java | 65 ------------------- ...ataColumnSidecarsByRootRequestMessage.java | 8 +-- ...umnSidecarsByRootRequestMessageSchema.java | 11 ++-- .../rpc/DataColumnsByRootIdentifier.java | 61 +++++++++++++++++ .../DataColumnsByRootIdentifierSchema.java | 53 +++++++++++++++ .../util/DataColumnIdentifier.java | 24 +++++++ .../util/DataColumnSlotAndIdentifier.java | 5 +- .../spec/schemas/SchemaDefinitionsFulu.java | 12 +++- .../registry/SchemaRegistryBuilder.java | 15 ++++- .../spec/schemas/registry/SchemaTypes.java | 3 + 11 files changed, 184 insertions(+), 83 deletions(-) delete mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnIdentifier.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifier.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifierSchema.java create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnIdentifier.java diff --git a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java index 6720edd17f2..800e7207df3 100644 --- a/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java +++ b/eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/ssz_static/SszTestExecutor.java @@ -29,7 +29,6 @@ import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockHeader; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.BeaconBlockBodySchemaAltair; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.BlobIdentifier; -import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnIdentifier; import tech.pegasys.teku.spec.datastructures.operations.AttestationData; import tech.pegasys.teku.spec.datastructures.operations.Deposit; import tech.pegasys.teku.spec.datastructures.operations.DepositData; @@ -139,8 +138,6 @@ public class SszTestExecutor implements TestExecutor { schemas -> SchemaDefinitionsAltair.required(schemas) .getSyncAggregatorSelectionDataSchema())) - // TODO-fulu remove ignore after we add DataColumnsByRootIdentifier container - .put("ssz_static/DataColumnsByRootIdentifier", IGNORE_TESTS) .put("ssz_static/LightClientBootstrap", IGNORE_TESTS) .put("ssz_static/LightClientFinalityUpdate", IGNORE_TESTS) .put("ssz_static/LightClientHeader", IGNORE_TESTS) @@ -232,8 +229,11 @@ public class SszTestExecutor implements TestExecutor { // Fulu types .put( - "ssz_static/DataColumnIdentifier", - new SszTestExecutor<>(schemas -> DataColumnIdentifier.SSZ_SCHEMA)) + "ssz_static/DataColumnsByRootIdentifier", + new SszTestExecutor<>( + schemas -> + SchemaDefinitionsFulu.required(schemas) + .getDataColumnsByRootIdentifierSchema())) .put( "ssz_static/DataColumnSidecar", new SszTestExecutor<>( diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnIdentifier.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnIdentifier.java deleted file mode 100644 index 826cb6168d7..00000000000 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnIdentifier.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2025 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc; - -import org.apache.tuweni.bytes.Bytes32; -import tech.pegasys.teku.infrastructure.ssz.containers.Container2; -import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema2; -import tech.pegasys.teku.infrastructure.ssz.primitive.SszBytes32; -import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; -import tech.pegasys.teku.infrastructure.ssz.schema.SszPrimitiveSchemas; -import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecar; - -public class DataColumnIdentifier extends Container2 { - - public static class DataColumnIdentifierSchema - extends ContainerSchema2 { - - private DataColumnIdentifierSchema() { - super( - "DataColumnIdentifier", - namedSchema("block_root", SszPrimitiveSchemas.BYTES32_SCHEMA), - namedSchema("index", SszPrimitiveSchemas.UINT64_SCHEMA)); - } - - @Override - public DataColumnIdentifier createFromBackingNode(final TreeNode node) { - return new DataColumnIdentifier(node); - } - } - - public static final DataColumnIdentifierSchema SSZ_SCHEMA = new DataColumnIdentifierSchema(); - - public static DataColumnIdentifier createFromSidecar(final DataColumnSidecar sidecar) { - return new DataColumnIdentifier(sidecar.getBlockRoot(), sidecar.getIndex()); - } - - private DataColumnIdentifier(final TreeNode node) { - super(SSZ_SCHEMA, node); - } - - public DataColumnIdentifier(final Bytes32 root, final UInt64 index) { - super(SSZ_SCHEMA, SszBytes32.of(root), SszUInt64.of(index)); - } - - public Bytes32 getBlockRoot() { - return getField0().get(); - } - - public UInt64 getIndex() { - return getField1().get(); - } -} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessage.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessage.java index d8854dd6f35..f26d9ec24db 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessage.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessage.java @@ -18,13 +18,13 @@ import tech.pegasys.teku.infrastructure.ssz.impl.SszListImpl; import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; -public class DataColumnSidecarsByRootRequestMessage extends SszListImpl - implements SszList, RpcRequest { +public class DataColumnSidecarsByRootRequestMessage extends SszListImpl + implements SszList, RpcRequest { public DataColumnSidecarsByRootRequestMessage( final DataColumnSidecarsByRootRequestMessageSchema schema, - final List dataColumnIdentifiers) { - super(schema, schema.createTreeFromElements(dataColumnIdentifiers)); + final List dataColumnsByRootIdentifiers) { + super(schema, schema.createTreeFromElements(dataColumnsByRootIdentifiers)); } DataColumnSidecarsByRootRequestMessage( diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java index d7aa219b1a7..7acee1258cc 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java @@ -1,5 +1,5 @@ /* - * Copyright Consensys Software Inc., 2025 + * Copyright Consensys Software Inc., 2023 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -18,10 +18,13 @@ import tech.pegasys.teku.spec.config.SpecConfigFulu; public class DataColumnSidecarsByRootRequestMessageSchema - extends AbstractSszListSchema { + extends AbstractSszListSchema< + DataColumnsByRootIdentifier, DataColumnSidecarsByRootRequestMessage> { - public DataColumnSidecarsByRootRequestMessageSchema(final SpecConfigFulu specConfig) { - super(DataColumnIdentifier.SSZ_SCHEMA, specConfig.getMaxRequestDataColumnSidecars()); + public DataColumnSidecarsByRootRequestMessageSchema( + final SpecConfigFulu specConfig, + final DataColumnsByRootIdentifierSchema byRootIdentifierSchema) { + super(byRootIdentifierSchema, specConfig.getMaxRequestDataColumnSidecars()); } @Override diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifier.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifier.java new file mode 100644 index 00000000000..81dfd107518 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifier.java @@ -0,0 +1,61 @@ +/* + * Copyright Consensys Software Inc., 2023 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc; + +import java.util.List; +import org.apache.tuweni.bytes.Bytes32; +import tech.pegasys.teku.infrastructure.ssz.collections.SszUInt64List; +import tech.pegasys.teku.infrastructure.ssz.containers.Container2; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszBytes32; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszUInt64; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecar; + +public class DataColumnsByRootIdentifier + extends Container2 { + + public static DataColumnsByRootIdentifier createFromSidecar( + final DataColumnSidecar sidecar, final DataColumnsByRootIdentifierSchema schema) { + return new DataColumnsByRootIdentifier( + sidecar.getBlockRoot(), List.of(sidecar.getIndex()), schema); + } + + DataColumnsByRootIdentifier(final TreeNode node, final DataColumnsByRootIdentifierSchema schema) { + super(schema, node); + } + + public DataColumnsByRootIdentifier( + final Bytes32 root, final UInt64 index, final DataColumnsByRootIdentifierSchema schema) { + this(root, List.of(index), schema); + } + + public DataColumnsByRootIdentifier( + final Bytes32 root, + final List indices, + final DataColumnsByRootIdentifierSchema schema) { + super( + schema, + SszBytes32.of(root), + schema.getColumnsSchema().createFromElements(indices.stream().map(SszUInt64::of).toList())); + } + + public Bytes32 getBlockRoot() { + return getField0().get(); + } + + public List getColumns() { + return getField1().asListUnboxed(); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifierSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifierSchema.java new file mode 100644 index 00000000000..4d473465c13 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifierSchema.java @@ -0,0 +1,53 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc; + +import java.util.List; +import org.apache.tuweni.bytes.Bytes32; +import tech.pegasys.teku.infrastructure.ssz.collections.SszUInt64List; +import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema2; +import tech.pegasys.teku.infrastructure.ssz.primitive.SszBytes32; +import tech.pegasys.teku.infrastructure.ssz.schema.SszPrimitiveSchemas; +import tech.pegasys.teku.infrastructure.ssz.schema.collections.SszUInt64ListSchema; +import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.config.SpecConfigFulu; + +public class DataColumnsByRootIdentifierSchema + extends ContainerSchema2 { + + public DataColumnsByRootIdentifierSchema(final SpecConfigFulu specConfig) { + super( + "DataColumnIdentifier", + namedSchema("block_root", SszPrimitiveSchemas.BYTES32_SCHEMA), + namedSchema("columns", SszUInt64ListSchema.create(specConfig.getNumberOfColumns()))); + } + + public DataColumnsByRootIdentifier create(final Bytes32 root, final UInt64 index) { + return create(root, List.of(index)); + } + + public DataColumnsByRootIdentifier create(final Bytes32 root, final List indices) { + return new DataColumnsByRootIdentifier(root, indices, this); + } + + @Override + public DataColumnsByRootIdentifier createFromBackingNode(final TreeNode node) { + return new DataColumnsByRootIdentifier(node, this); + } + + public SszUInt64ListSchema getColumnsSchema() { + return (SszUInt64ListSchema) getFieldSchema1(); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnIdentifier.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnIdentifier.java new file mode 100644 index 00000000000..790188a7ec5 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnIdentifier.java @@ -0,0 +1,24 @@ +/* + * Copyright Consensys Software Inc., 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package tech.pegasys.teku.spec.datastructures.util; + +import org.apache.tuweni.bytes.Bytes32; +import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecar; + +public record DataColumnIdentifier(Bytes32 blockRoot, UInt64 columnId) { + public static DataColumnIdentifier createFromSidecar(final DataColumnSidecar sidecar) { + return new DataColumnIdentifier(sidecar.getBlockRoot(), sidecar.getIndex()); + } +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java index c9752652fe7..19be52a9d36 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java @@ -1,5 +1,5 @@ /* - * Copyright Consensys Software Inc., 2025 + * Copyright Consensys Software Inc., 2024 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -19,14 +19,13 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecar; import tech.pegasys.teku.spec.datastructures.blocks.SlotAndBlockRoot; -import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnIdentifier; public record DataColumnSlotAndIdentifier(UInt64 slot, Bytes32 blockRoot, UInt64 columnIndex) implements Comparable { public DataColumnSlotAndIdentifier( final UInt64 slot, final DataColumnIdentifier dataColumnIdentifier) { - this(slot, dataColumnIdentifier.getBlockRoot(), dataColumnIdentifier.getIndex()); + this(slot, dataColumnIdentifier.blockRoot(), dataColumnIdentifier.columnId()); } public static DataColumnSlotAndIdentifier fromDataColumn( diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java index 7b9c96e2172..b53ea7d03f6 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsFulu.java @@ -1,5 +1,5 @@ /* - * Copyright Consensys Software Inc., 2025 + * Copyright Consensys Software Inc., 2024 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -15,6 +15,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.CELL_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_BY_ROOT_IDENTIFIER_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECARS_BY_RANGE_REQUEST_MESSAGE_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECARS_BY_ROOT_REQUEST_MESSAGE_SCHEMA; @@ -28,6 +29,7 @@ import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.MatrixEntrySchema; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRangeRequestMessage; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRootRequestMessageSchema; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnsByRootIdentifierSchema; import tech.pegasys.teku.spec.schemas.registry.SchemaRegistry; public class SchemaDefinitionsFulu extends SchemaDefinitionsElectra { @@ -35,7 +37,9 @@ public class SchemaDefinitionsFulu extends SchemaDefinitionsElectra { private final CellSchema cellSchema; private final DataColumnSchema dataColumnSchema; private final DataColumnSidecarSchema dataColumnSidecarSchema; + private final DataColumnsByRootIdentifierSchema dataColumnsByRootIdentifierSchema; private final MatrixEntrySchema matrixEntrySchema; + private final DataColumnSidecarsByRootRequestMessageSchema dataColumnSidecarsByRootRequestMessageSchema; private final DataColumnSidecarsByRangeRequestMessage @@ -47,6 +51,8 @@ public SchemaDefinitionsFulu(final SchemaRegistry schemaRegistry) { this.cellSchema = schemaRegistry.get(CELL_SCHEMA); this.dataColumnSchema = schemaRegistry.get(DATA_COLUMN_SCHEMA); this.dataColumnSidecarSchema = schemaRegistry.get(DATA_COLUMN_SIDECAR_SCHEMA); + this.dataColumnsByRootIdentifierSchema = + schemaRegistry.get(DATA_COLUMN_BY_ROOT_IDENTIFIER_SCHEMA); this.matrixEntrySchema = schemaRegistry.get(MATRIX_ENTRY_SCHEMA); this.dataColumnSidecarsByRootRequestMessageSchema = schemaRegistry.get(DATA_COLUMN_SIDECARS_BY_ROOT_REQUEST_MESSAGE_SCHEMA); @@ -75,6 +81,10 @@ public DataColumnSidecarSchema getDataColumnSidecarSchema() { return dataColumnSidecarSchema; } + public DataColumnsByRootIdentifierSchema getDataColumnsByRootIdentifierSchema() { + return dataColumnsByRootIdentifierSchema; + } + public MatrixEntrySchema getMatrixEntrySchema() { return matrixEntrySchema; } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java index d848ecef599..230aed8d32a 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java @@ -43,6 +43,7 @@ import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.BUILDER_BID_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.CELL_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.CONSOLIDATION_REQUEST_SCHEMA; +import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_BY_ROOT_IDENTIFIER_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECARS_BY_RANGE_REQUEST_MESSAGE_SCHEMA; import static tech.pegasys.teku.spec.schemas.registry.SchemaTypes.DATA_COLUMN_SIDECARS_BY_ROOT_REQUEST_MESSAGE_SCHEMA; @@ -127,6 +128,7 @@ import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.BlobSidecarsByRootRequestMessageSchema; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRangeRequestMessage; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRootRequestMessageSchema; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnsByRootIdentifierSchema; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.altair.MetadataMessageSchemaAltair; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.fulu.MetadataMessageSchemaFulu; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.versions.phase0.MetadataMessageSchemaPhase0; @@ -216,6 +218,7 @@ public static SchemaRegistryBuilder create() { .addProvider(createCellSchemaProvider()) .addProvider(createDataColumnSchemaProvider()) .addProvider(createDataColumnSidecarSchemaProvider()) + .addProvider(createDataColumnsByRootIdentifierSchemaProvider()) .addProvider(createMatrixEntrySchemaProvider()) .addProvider(createDataColumnSidecarsByRootRequestMessageSchemaProvider()) .addProvider(createDataColumnSidecarsByRangeRequestMessageSchemaProvider()); @@ -721,6 +724,15 @@ private static SchemaProvider createDataColumnSidecarSchemaProvider() { .build(); } + private static SchemaProvider createDataColumnsByRootIdentifierSchemaProvider() { + return providerBuilder(DATA_COLUMN_BY_ROOT_IDENTIFIER_SCHEMA) + .withCreator( + FULU, + (registry, specConfig, schemaName) -> + new DataColumnsByRootIdentifierSchema(SpecConfigFulu.required(specConfig))) + .build(); + } + private static SchemaProvider createMatrixEntrySchemaProvider() { return providerBuilder(MATRIX_ENTRY_SCHEMA) .withCreator( @@ -736,7 +748,8 @@ private static SchemaProvider createDataColumnSidecarsByRootRequestMessageSch FULU, (registry, specConfig, schemaName) -> new DataColumnSidecarsByRootRequestMessageSchema( - SpecConfigFulu.required(specConfig))) + SpecConfigFulu.required(specConfig), + registry.get(DATA_COLUMN_BY_ROOT_IDENTIFIER_SCHEMA))) .build(); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaTypes.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaTypes.java index dd080b9bee8..65c08d958c6 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaTypes.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaTypes.java @@ -57,6 +57,7 @@ import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.BlobSidecarsByRootRequestMessageSchema; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRangeRequestMessage; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnSidecarsByRootRequestMessageSchema; +import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.DataColumnsByRootIdentifierSchema; import tech.pegasys.teku.spec.datastructures.networking.libp2p.rpc.metadata.MetadataMessageSchema; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof.AggregateAndProofSchema; import tech.pegasys.teku.spec.datastructures.operations.Attestation; @@ -187,6 +188,8 @@ public class SchemaTypes { public static final SchemaId DATA_COLUMN_SCHEMA = create("DATA_COLUMN_SCHEMA"); public static final SchemaId DATA_COLUMN_SIDECAR_SCHEMA = create("DATA_COLUMN_SIDECAR_SCHEMA"); + public static final SchemaId + DATA_COLUMN_BY_ROOT_IDENTIFIER_SCHEMA = create("DATA_COLUMN_BY_ROOT_IDENTIFIER_SCHEMA"); public static final SchemaId MATRIX_ENTRY_SCHEMA = create("MATRIX_ENTRY_SCHEMA"); public static final SchemaId From bccab1bf6c6249571d7497fffc562c59c59ebc6a Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Thu, 8 May 2025 20:04:51 +1200 Subject: [PATCH 30/33] PR comments --- .../rpc/DataColumnSidecarsByRootRequestMessageSchema.java | 2 +- .../networking/libp2p/rpc/DataColumnsByRootIdentifier.java | 2 +- .../teku/spec/datastructures/util/DataColumnIdentifier.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java index 7acee1258cc..12a51f45900 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnSidecarsByRootRequestMessageSchema.java @@ -1,5 +1,5 @@ /* - * Copyright Consensys Software Inc., 2023 + * Copyright Consensys Software Inc., 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifier.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifier.java index 81dfd107518..c15b97027bd 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifier.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/networking/libp2p/rpc/DataColumnsByRootIdentifier.java @@ -1,5 +1,5 @@ /* - * Copyright Consensys Software Inc., 2023 + * Copyright Consensys Software Inc., 2025 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnIdentifier.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnIdentifier.java index 790188a7ec5..6c130134832 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnIdentifier.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnIdentifier.java @@ -17,7 +17,7 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.blobs.versions.fulu.DataColumnSidecar; -public record DataColumnIdentifier(Bytes32 blockRoot, UInt64 columnId) { +public record DataColumnIdentifier(Bytes32 blockRoot, UInt64 columnIndex) { public static DataColumnIdentifier createFromSidecar(final DataColumnSidecar sidecar) { return new DataColumnIdentifier(sidecar.getBlockRoot(), sidecar.getIndex()); } From 40e783905106adea3c15b110790c56958b4c828c Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Thu, 8 May 2025 20:51:39 +1200 Subject: [PATCH 31/33] need more coffee... --- .../spec/datastructures/util/DataColumnSlotAndIdentifier.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java index 19be52a9d36..211aff6194a 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/util/DataColumnSlotAndIdentifier.java @@ -25,7 +25,7 @@ public record DataColumnSlotAndIdentifier(UInt64 slot, Bytes32 blockRoot, UInt64 public DataColumnSlotAndIdentifier( final UInt64 slot, final DataColumnIdentifier dataColumnIdentifier) { - this(slot, dataColumnIdentifier.blockRoot(), dataColumnIdentifier.columnId()); + this(slot, dataColumnIdentifier.blockRoot(), dataColumnIdentifier.columnIndex()); } public static DataColumnSlotAndIdentifier fromDataColumn( From f13b314ebfb7aa7c48d0809b1d769c7202a4b84b Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Thu, 8 May 2025 11:52:29 +0200 Subject: [PATCH 32/33] uniforms the AggregatingAttestationPool interface (#9401) --- .../validator/coordinator/ValidatorApiHandler.java | 3 +-- .../coordinator/ValidatorApiHandlerTest.java | 2 +- .../attestation/AggregatingAttestationPool.java | 5 +++-- .../attestation/AggregatingAttestationPoolTest.java | 12 +++++------- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java index b0f3cff1e37..62a552122ad 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java @@ -505,8 +505,7 @@ public SafeFuture> createAggregate( return SafeFuture.completedFuture( attestationPool .createAggregateFor(attestationHashTreeRoot, committeeIndex) - .filter(attestation -> attestation.getData().getSlot().equals(slot)) - .map(ValidatableAttestation::getAttestation)); + .filter(attestation -> attestation.getData().getSlot().equals(slot))); } @Override diff --git a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java index 9c54fd626c8..033edc107b9 100644 --- a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java +++ b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java @@ -734,7 +734,7 @@ public void createAggregate_shouldReturnAggregateFromAttestationPool() { final Optional aggregate = Optional.of(dataStructureUtil.randomAttestation()); when(attestationPool.createAggregateFor( eq(attestationData.hashTreeRoot()), eq(Optional.empty()))) - .thenReturn(aggregate.map(attestation -> ValidatableAttestation.from(spec, attestation))); + .thenReturn(aggregate); assertThat( validatorApiHandler.createAggregate( diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPool.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPool.java index 53d50c5bb56..2998fa4eef6 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPool.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPool.java @@ -354,10 +354,11 @@ private boolean isValid( return spec.validateAttestation(stateAtBlockSlot, attestationData).isEmpty(); } - public synchronized Optional createAggregateFor( + public synchronized Optional createAggregateFor( final Bytes32 attestationHashTreeRoot, final Optional committeeIndex) { return Optional.ofNullable(attestationGroupByDataHash.get(attestationHashTreeRoot)) - .flatMap(attestations -> attestations.stream(committeeIndex).findFirst()); + .flatMap(attestations -> attestations.stream(committeeIndex).findFirst()) + .map(ValidatableAttestation::getAttestation); } public synchronized void onReorg(final UInt64 commonAncestorSlot) { diff --git a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPoolTest.java b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPoolTest.java index 897331c42a2..6288d870748 100644 --- a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPoolTest.java +++ b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPoolTest.java @@ -124,7 +124,7 @@ public void setUp(final SpecContext specContext) { @TestTemplate public void createAggregateFor_shouldReturnEmptyWhenNoAttestationsMatchGivenData() { - final Optional result = + final Optional result = aggregatingPool.createAggregateFor( dataStructureUtil.randomAttestationData().hashTreeRoot(), committeeIndex); assertThat(result).isEmpty(); @@ -136,10 +136,9 @@ public void createAggregateFor_shouldAggregateAttestationsWithMatchingData() { final Attestation attestation1 = addAttestationFromValidators(attestationData, 1, 3, 5); final Attestation attestation2 = addAttestationFromValidators(attestationData, 2, 4, 6); - final Optional result = + final Optional result = aggregatingPool.createAggregateFor(attestationData.hashTreeRoot(), committeeIndex); - assertThat(result.map(ValidatableAttestation::getAttestation)) - .contains(aggregateAttestations(attestation1, attestation2)); + assertThat(result).contains(aggregateAttestations(attestation1, attestation2)); } @TestTemplate @@ -149,10 +148,9 @@ public void createAggregateFor_shouldReturnBestAggregateForMatchingDataWhenSomeO final Attestation attestation2 = addAttestationFromValidators(attestationData, 2, 4, 6, 8); addAttestationFromValidators(attestationData, 2, 3, 9); - final Optional result = + final Optional result = aggregatingPool.createAggregateFor(attestationData.hashTreeRoot(), committeeIndex); - assertThat(result.map(ValidatableAttestation::getAttestation)) - .contains(aggregateAttestations(attestation1, attestation2)); + assertThat(result).contains(aggregateAttestations(attestation1, attestation2)); } @TestTemplate From 9d26d07be07a5d646897abdcca3275e0cfefaeda Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Thu, 8 May 2025 16:56:37 +0200 Subject: [PATCH 33/33] Avoids potential mutability of the result of getCommitteeBits (#9402) --- .../utils/AttestationBitsAggregator.java | 8 +-- .../AttestationBitsAggregatorElectra.java | 55 ++++++++++++++---- .../AttestationBitsAggregatorPhase0.java | 5 ++ .../AttestationBitsAggregatorElectraTest.java | 57 ++++++++++++++++++- 4 files changed, 105 insertions(+), 20 deletions(-) diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregator.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregator.java index d51567aa197..423c3744de5 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregator.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregator.java @@ -79,11 +79,5 @@ static AttestationBitsAggregator of( boolean requiresCommitteeBits(); /** Creates an independent copy of this instance */ - default AttestationBitsAggregator copy() { - if (requiresCommitteeBits()) { - return new AttestationBitsAggregatorElectra( - getAggregationBits(), getCommitteeBits(), getCommitteesSize()); - } - return new AttestationBitsAggregatorPhase0(getAggregationBits()); - } + AttestationBitsAggregator copy(); } diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectra.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectra.java index 13f5084d61c..a4b7c6d2893 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectra.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectra.java @@ -52,6 +52,19 @@ class AttestationBitsAggregatorElectra implements AttestationBitsAggregator { parseAggregationBits(initialAggregationBits, this.committeeBits, this.committeesSize); } + private AttestationBitsAggregatorElectra( + final SszBitlistSchema aggregationBitsSchema, + final SszBitvectorSchema committeeBitsSchema, + final Int2IntMap committeesSize, + final Int2ObjectMap committeeAggregationBitsMap, + final BitSet committeeBits) { + this.aggregationBitsSchema = aggregationBitsSchema; + this.committeeBitsSchema = committeeBitsSchema; + this.committeesSize = Objects.requireNonNull(committeesSize, "committeesSize cannot be null"); + this.committeeBits = committeeBits; + this.committeeAggregationBitsMap = committeeAggregationBitsMap; + } + static AttestationBitsAggregator fromAttestationSchema( final AttestationSchema attestationSchema, final Int2IntMap committeesSize) { final SszBitlist emptyAggregationBits = attestationSchema.createEmptyAggregationBits(); @@ -76,13 +89,14 @@ private static Int2ObjectMap parseAggregationBits( committeeIndex = committeeIndices.nextSetBit(committeeIndex + 1)) { final int committeeSize = committeesSizeMap.getOrDefault(committeeIndex, 0); - if (committeeSize > 0) { - int sliceEnd = - Math.min(currentOffset + committeeSize, aggregationBits.getLastSetBitIndex() + 1); - final BitSet committeeBits = aggregationBits.getAsBitSet(currentOffset, sliceEnd); - result.put(committeeIndex, committeeBits); + if (committeeSize == 0) { + throw new IllegalArgumentException( + "Committee size for committee " + committeeIndex + " not found"); } - currentOffset += committeeSize; // Always advance by the declared committee size + final BitSet committeeBits = + aggregationBits.getAsBitSet(currentOffset, currentOffset + committeeSize); + result.put(committeeIndex, committeeBits); + currentOffset += committeeSize; } return result; } @@ -113,6 +127,16 @@ public void or(final Attestation other) { performMerge(otherCommitteeBits, otherParsedAggregationMap, false); } + private static Int2ObjectMap cloneCommitteeAggregationBitsMap( + final Int2ObjectMap committeeAggregationBitsMap) { + final Int2ObjectMap clonedMap = new Int2ObjectOpenHashMap<>(); + for (final Int2ObjectMap.Entry entry : + committeeAggregationBitsMap.int2ObjectEntrySet()) { + clonedMap.put(entry.getIntKey(), (BitSet) entry.getValue().clone()); + } + return clonedMap; + } + private boolean performMerge( final BitSet otherCommitteeBits, final Int2ObjectMap otherCommitteeAggregationBitsMap, @@ -124,11 +148,7 @@ private boolean performMerge( if (isAggregation) { // If aggregating, we need to work on copies - targetAggregationBitsMap = new Int2ObjectOpenHashMap<>(); - for (final Int2ObjectMap.Entry entry : - this.committeeAggregationBitsMap.int2ObjectEntrySet()) { - targetAggregationBitsMap.put(entry.getIntKey(), (BitSet) entry.getValue().clone()); - } + targetAggregationBitsMap = cloneCommitteeAggregationBitsMap(this.committeeAggregationBitsMap); } else { // if not aggregating, we can modify in place targetAggregationBitsMap = this.committeeAggregationBitsMap; @@ -256,7 +276,8 @@ public SszBitlist getAggregationBits() { public SszBitvector getCommitteeBits() { if (cachedCommitteeBits == null) { cachedCommitteeBits = - committeeBitsSchema.wrapBitSet(committeeBitsSchema.getLength(), this.committeeBits); + committeeBitsSchema.wrapBitSet( + committeeBitsSchema.getLength(), (BitSet) this.committeeBits.clone()); } return cachedCommitteeBits; } @@ -276,6 +297,16 @@ public boolean requiresCommitteeBits() { return true; } + @Override + public AttestationBitsAggregator copy() { + return new AttestationBitsAggregatorElectra( + aggregationBitsSchema, + committeeBitsSchema, + committeesSize, + cloneCommitteeAggregationBitsMap(committeeAggregationBitsMap), + (BitSet) committeeBits.clone()); + } + @Override public String toString() { long totalSetBits = 0; diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorPhase0.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorPhase0.java index 65acd1e3aef..87b9ec1d135 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorPhase0.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorPhase0.java @@ -80,6 +80,11 @@ public boolean requiresCommitteeBits() { return false; } + @Override + public AttestationBitsAggregator copy() { + return new AttestationBitsAggregatorPhase0(aggregationBits); + } + @Override public String toString() { return MoreObjects.toStringHelper(this).add("aggregationBits", aggregationBits).toString(); diff --git a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectraTest.java b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectraTest.java index 586d159e421..34009aae4f6 100644 --- a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectraTest.java +++ b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/attestation/utils/AttestationBitsAggregatorElectraTest.java @@ -18,6 +18,7 @@ import static org.mockito.Mockito.when; import it.unimi.dsi.fastutil.ints.Int2IntMap; +import it.unimi.dsi.fastutil.ints.Int2IntMap.Entry; import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; import java.util.List; import java.util.Optional; @@ -643,6 +644,55 @@ void isSuperSetOf6() { assertThat(aggregator.isSuperSetOf(otherAttestation.getAttestation())).isTrue(); } + @Test + void getAggregationBits_shouldBeConsistent_singleCommittee() { + final ValidatableAttestation initialAttestation = createAttestation(List.of(0), 0); + final AttestationBitsAggregator aggregator = AttestationBitsAggregator.of(initialAttestation); + + assertThat(aggregator.getAggregationBits().size()).isEqualTo(committeeSizes.get(0)); + + assertThat(aggregator.getAggregationBits()) + .isEqualTo(initialAttestation.getAttestation().getAggregationBits()); + } + + @Test + void getAggregationBits_shouldBeConsistent_multiCommittee() { + final ValidatableAttestation initialAttestation = createAttestation(List.of(0, 1), 0, 3); + final AttestationBitsAggregator aggregator = AttestationBitsAggregator.of(initialAttestation); + + assertThat(aggregator.getAggregationBits().size()) + .isEqualTo(committeeSizes.get(0) + committeeSizes.get(1)); + + assertThat(aggregator.getAggregationBits()) + .isEqualTo(initialAttestation.getAttestation().getAggregationBits()); + } + + @Test + void copy_shouldNotModifyOriginal() { + final ValidatableAttestation initialAttestation = createAttestation(List.of(0), 0); + final AttestationBitsAggregator aggregator = AttestationBitsAggregator.of(initialAttestation); + + // check aggregator is initialized correctly + assertThat(aggregator.getCommitteeBits()) + .isEqualTo(initialAttestation.getAttestation().getCommitteeBitsRequired()); + assertThat(aggregator.getAggregationBits()) + .isEqualTo(initialAttestation.getAttestation().getAggregationBits()); + + final AttestationBitsAggregator copy = aggregator.copy(); + + assertThat(copy.getCommitteeBits()).isEqualTo(aggregator.getCommitteeBits()); + assertThat(copy.getAggregationBits()).isEqualTo(aggregator.getAggregationBits()); + assertThat(copy).isNotSameAs(aggregator); + + assertThat(copy.aggregateWith(createAttestation(List.of(1), 1).getAttestation())).isTrue(); + + // the original should not be modified + assertThat(aggregator.getCommitteeBits()) + .isEqualTo(initialAttestation.getAttestation().getCommitteeBitsRequired()); + assertThat(aggregator.getAggregationBits()) + .isEqualTo(initialAttestation.getAttestation().getAggregationBits()); + } + private ValidatableAttestation createAttestation(final String commBits, final String aggBits) { assertThat(commBits).matches(Pattern.compile("^[0-1]+$")); assertThat(aggBits).matches(Pattern.compile("^[0-1]+$")); @@ -664,7 +714,12 @@ private ValidatableAttestation createAttestation( final SszBitlist aggregationBits = attestationSchema .getAggregationBitsSchema() - .ofBits(committeeSizes.values().intStream().sum(), validators); + .ofBits( + committeeSizes.int2IntEntrySet().stream() + .filter(entry -> committeeIndices.contains(entry.getIntKey())) + .mapToInt(Entry::getIntValue) + .sum(), + validators); final Supplier committeeBits = () -> attestationSchema.getCommitteeBitsSchema().orElseThrow().ofBits(committeeIndices);